commit 0ecfebd2b52404ae0c54a878c872bb93363ada36 Author: Linus Torvalds Date: Sun Jul 7 15:41:56 2019 -0700 Linux 5.2 commit 46713c3d2f8da5e3d8ddd2249bcb1d9974fb5d28 Merge: bcc0e65f47de 7e41c3c9b6ce Author: Linus Torvalds Date: Sat Jul 6 11:48:39 2019 -0700 Merge tag 'for-linus-20190706' of git://git.kernel.dk/linux-block Pull block fix from Jens Axboe: "Just a single fix for a patch from Greg KH, which reportedly break block debugfs locations for certain setups. Trivial enough that I think we should include it now, rather than wait and release 5.2 with it, since it's a regression in this series" * tag 'for-linus-20190706' of git://git.kernel.dk/linux-block: blk-mq: fix up placement of debugfs directory of queue files commit bcc0e65f47def010d8d1c4cf09bdc698fe061b77 Merge: 2692982b0800 f2ff671f8941 Author: Linus Torvalds Date: Sat Jul 6 10:32:12 2019 -0700 Merge tag 'mips_fixes_5.2_2' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux Pull MIPS fixes from Paul Burton: "A few more MIPS fixes: - Fix a silly typo in virt_addr_valid which led to completely bogus behavior (that happened to stop tripping up hardened usercopy despite being broken). - Fix UART parity setup on AR933x systems. - A build fix for non-Linux build machines. - Have the 'all' make target build DTBs, primarily to fit in with the behavior of scripts/package/builddeb. - Handle an execution hazard in TLB exceptions that use KScratch registers, which could inadvertently clobber the $1 register on some generally higher-end out-of-order CPUs. - A MAINTAINERS update to fix the path to the NAND driver for Ingenic systems" * tag 'mips_fixes_5.2_2' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: MAINTAINERS: Correct path to moved files MIPS: Add missing EHB in mtc0 -> mfc0 sequence. MIPS: have "plain" make calls build dtbs for selected platforms MIPS: fix build on non-linux hosts MIPS: ath79: fix ar933x uart parity mode MIPS: Fix bounds check virt_addr_valid commit 2692982b0800c6f6446e9edd4743239666e69f2e Merge: 4f8b49092c37 f6034225442c Author: Linus Torvalds Date: Sat Jul 6 10:06:37 2019 -0700 Merge tag 'dmaengine-fix-5.2' of git://git.infradead.org/users/vkoul/slave-dma Pull dmaengine fixes from Vinod Koul: - bam_dma fix for completed descriptor count - fix for imx-sdma remove BD_INTR for channel0 and use-after-free on probe error path - endian bug fix in jz4780 IRQ handler * tag 'dmaengine-fix-5.2' of git://git.infradead.org/users/vkoul/slave-dma: dmaengine: qcom: bam_dma: Fix completed descriptors count dmaengine: imx-sdma: remove BD_INTR for channel0 dmaengine: imx-sdma: fix use-after-free on probe error path dmaengine: jz4780: Fix an endian bug in IRQ handler commit 4f8b49092c37cf0c87c43bb2698d43c71cf0e4e5 Merge: ceacbc0e145e 5dd6c4933912 Author: Linus Torvalds Date: Sat Jul 6 09:56:20 2019 -0700 Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fixes from James Bottomley: "Two iscsi fixes. One for an oops in the client which can be triggered by the server authentication protocol and the other in the target code which causes data corruption" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: iscsi: set auth_protocol back to NULL if CHAP_A value is not supported scsi: target/iblock: Fix overrun in WRITE SAME emulation commit ceacbc0e145e3b27d8b12eecb881f9d87702765a Merge: 69bf4b6b54fb 75f2d86b20bf Author: Linus Torvalds Date: Sat Jul 6 09:53:08 2019 -0700 Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull vfs fixlet from Al Viro: "Fix bogus default y in Kconfig (VALIDATE_FS_PARSER) That thing should not be turned on by default, especially since it's not quiet in case it finds no problems. Geert has sent the obvious fix quite a few times, but it fell through the cracks" * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: fs: VALIDATE_FS_PARSER should default to n commit 7e41c3c9b6ceb2da52ba9d2b328d1851f269a48e Author: Greg Kroah-Hartman Date: Sat Jul 6 17:50:32 2019 +0200 blk-mq: fix up placement of debugfs directory of queue files When the blk-mq debugfs file creation logic was "cleaned up" it was cleaned up too much, causing the queue file to not be created in the correct location. Turns out the check for the directory being present is needed as if that has not happened yet, the files should not be created, and the function will be called later on in the initialization code so that the files can be created in the correct location. Fixes: 6cfc0081b046 ("blk-mq: no need to check return value of debugfs_create functions") Reported-by: Stephen Rothwell Cc: linux-block@vger.kernel.org Signed-off-by: Greg Kroah-Hartman Signed-off-by: Jens Axboe commit 69bf4b6b54fb7f52b7ea9ce28d4a360cd5ec956d Author: Linus Torvalds Date: Fri Jul 5 19:55:18 2019 -0700 Revert "mm: page cache: store only head pages in i_pages" This reverts commit 5fd4ca2d84b249f0858ce28cf637cf25b61a398f. Mikhail Gavrilov reports that it causes the VM_BUG_ON_PAGE() in __delete_from_swap_cache() to trigger: page:ffffd6d34dff0000 refcount:1 mapcount:1 mapping:ffff97812323a689 index:0xfecec363 anon flags: 0x17fffe00080034(uptodate|lru|active|swapbacked) raw: 0017fffe00080034 ffffd6d34c67c508 ffffd6d3504b8d48 ffff97812323a689 raw: 00000000fecec363 0000000000000000 0000000100000000 ffff978433ace000 page dumped because: VM_BUG_ON_PAGE(entry != page) page->mem_cgroup:ffff978433ace000 ------------[ cut here ]------------ kernel BUG at mm/swap_state.c:170! invalid opcode: 0000 [#1] SMP NOPTI CPU: 1 PID: 221 Comm: kswapd0 Not tainted 5.2.0-0.rc2.git0.1.fc31.x86_64 #1 Hardware name: System manufacturer System Product Name/ROG STRIX X470-I GAMING, BIOS 2202 04/11/2019 RIP: 0010:__delete_from_swap_cache+0x20d/0x240 Code: 30 65 48 33 04 25 28 00 00 00 75 4a 48 83 c4 38 5b 5d 41 5c 41 5d 41 5e 41 5f c3 48 c7 c6 2f dc 0f 8a 48 89 c7 e8 93 1b fd ff <0f> 0b 48 c7 c6 a8 74 0f 8a e8 85 1b fd ff 0f 0b 48 c7 c6 a8 7d 0f RSP: 0018:ffffa982036e7980 EFLAGS: 00010046 RAX: 0000000000000021 RBX: 0000000000000040 RCX: 0000000000000006 RDX: 0000000000000000 RSI: 0000000000000086 RDI: ffff97843d657900 RBP: 0000000000000001 R08: ffffa982036e7835 R09: 0000000000000535 R10: ffff97845e21a46c R11: ffffa982036e7835 R12: ffff978426387120 R13: 0000000000000000 R14: ffffd6d34dff0040 R15: ffffd6d34dff0000 FS: 0000000000000000(0000) GS:ffff97843d640000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00002cba88ef5000 CR3: 000000078a97c000 CR4: 00000000003406e0 Call Trace: delete_from_swap_cache+0x46/0xa0 try_to_free_swap+0xbc/0x110 swap_writepage+0x13/0x70 pageout.isra.0+0x13c/0x350 shrink_page_list+0xc14/0xdf0 shrink_inactive_list+0x1e5/0x3c0 shrink_node_memcg+0x202/0x760 shrink_node+0xe0/0x470 balance_pgdat+0x2d1/0x510 kswapd+0x220/0x420 kthread+0xfb/0x130 ret_from_fork+0x22/0x40 and it's not immediately obvious why it happens. It's too late in the rc cycle to do anything but revert for now. Link: https://lore.kernel.org/lkml/CABXGCsN9mYmBD-4GaaeW_NrDu+FDXLzr_6x+XNxfmFV6QkYCDg@mail.gmail.com/ Reported-and-bisected-by: Mikhail Gavrilov Suggested-by: Jan Kara Cc: Michal Hocko Cc: Vlastimil Babka Cc: Matthew Wilcox Cc: Kirill Shutemov Cc: William Kucharski Cc: Andrew Morton Signed-off-by: Linus Torvalds commit 9fdb86c8cf9ae201d97334ecc2d1918800cac424 Merge: 0e63665a1bfd e644fa18e2ff Author: Linus Torvalds Date: Fri Jul 5 19:13:24 2019 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull kvm fixes from Paolo Bonzini: "x86 bugfix patches and one compilation fix for ARM" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM: arm64/sve: Fix vq_present() macro to yield a bool KVM: LAPIC: Fix pending interrupt in IRR blocked by software disable LAPIC KVM: nVMX: Change KVM_STATE_NESTED_EVMCS to signal vmcs12 is copied from eVMCS KVM: nVMX: Allow restore nested-state to enable eVMCS when vCPU in SMM KVM: x86: degrade WARN to pr_warn_ratelimited commit 0e63665a1bfd606f538da90473648ca5b827d60f Merge: 881ed91f7db5 c7a87ceb17ae Author: Linus Torvalds Date: Fri Jul 5 19:07:57 2019 -0700 Merge tag 'mtd/fixes-for-5.2-final' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux Pull mtf fixes from Miquel Raynal: - Fix the memory organization structure of a Macronix SPI-NAND chip. - Fix a build dependency wrongly described. - Fix the sunxi NAND driver for A23/A33 SoCs by (a) reverting the faulty commit introducing broken DMA support and (b) applying another commit bringing working DMA support. * tag 'mtd/fixes-for-5.2-final' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: mtd: rawnand: sunxi: Add A23/A33 DMA support with extra MBUS configuration Revert "mtd: rawnand: sunxi: Add A23/A33 DMA support" mtd: rawnand: ingenic: Fix ingenic_ecc dependency mtd: spinand: Fix max_bad_eraseblocks_per_lun info in memorg commit 881ed91f7db58fcbe8fdca056907991c3c9d8f2d Merge: a8f46b5afe1c f3a3ea28edd9 Author: Linus Torvalds Date: Fri Jul 5 19:04:57 2019 -0700 Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux Pull i2c fixlet from Wolfram Sang: "I2C has a MAINTAINERS update which will be benfitial for developers, so let's add it right away" * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: i2c: tegra: Add Dmitry as a reviewer commit a8f46b5afe1c0a83c3013a339e6aeccc2f37342d Merge: 3f9c4dc63309 3b2d4dcf71c4 Author: Linus Torvalds Date: Fri Jul 5 19:00:37 2019 -0700 Merge tag 'nfsd-5.2-2' of git://linux-nfs.org/~bfields/linux Pull nfsd fixes from Bruce Fields: "Two more quick bugfixes for nfsd: fixing a regression causing mount failures on high-memory machines and fixing the DRC over RDMA" * tag 'nfsd-5.2-2' of git://linux-nfs.org/~bfields/linux: nfsd: Fix overflow causing non-working mounts on 1 TB machines svcrdma: Ignore source port when computing DRC hash commit c7a87ceb17aee9222c069a97aee4647260c7b3a6 Author: Miquel Raynal Date: Mon Apr 8 09:41:46 2019 +0200 mtd: rawnand: sunxi: Add A23/A33 DMA support with extra MBUS configuration Allwinner NAND controllers can make use of DMA to enhance the I/O throughput thanks to ECC pipelining. DMA handling with A23/A33 NAND IP is a bit different than with the older SoCs, hence the introduction of a new compatible to handle: * the differences between register offsets, * the burst length change from 4 to minimum 8, * manage SRAM accesses through MBUS with extra configuration. Fixes: c49836f05aa1 ("mtd: rawnand: sunxi: Add A23/A33 DMA support") Signed-off-by: Miquel Raynal commit 4f032640bf5751ce792b69d2abdf18e0f379b3ce Author: Miquel Raynal Date: Fri Jul 5 11:25:29 2019 +0200 Revert "mtd: rawnand: sunxi: Add A23/A33 DMA support" This reverts commit c49836f05aa15282f7280e06ede3f6f8a6324833. The commit is wrong and its approach actually does not work. Let's revert it in order to add the feature with a clean patch. Fixes: c49836f05aa1 ("mtd: rawnand: sunxi: Add A23/A33 DMA support") Signed-off-by: Miquel Raynal commit f3a3ea28edd9a17588fede4ff53bc02d986cf4d1 Author: Dmitry Osipenko Date: Sun Jun 23 20:46:55 2019 +0300 i2c: tegra: Add Dmitry as a reviewer I'm contributing to Tegra's upstream development in general and happened to review the Tegra's I2C patches for awhile because I'm actively using upstream kernel on all of my Tegra-powered devices and initially some of the submitted patches were getting my attention since they were causing problems. Recently Wolfram Sang asked whether I'm interested in becoming a reviewer for the driver and I don't mind at all. Signed-off-by: Dmitry Osipenko [wsa: ack was expressed by Thierry Reding in a mail thread] Signed-off-by: Wolfram Sang commit 75f2d86b20bf6aec0392d6dd2ae3ffff26d2ae0e Author: Geert Uytterhoeven Date: Mon Apr 1 13:53:57 2019 +0200 fs: VALIDATE_FS_PARSER should default to n CONFIG_VALIDATE_FS_PARSER is a debugging tool to check that the parser tables are vaguely sane. It was set to default to 'Y' for the moment to catch errors in upcoming fs conversion development. Make sure it is not enabled by default in the final release of v5.1. Fixes: 31d921c7fb969172 ("vfs: Add configuration parser helpers") Signed-off-by: Geert Uytterhoeven Signed-off-by: Al Viro commit e644fa18e2ffc8895ca30dade503ae10128573a6 Author: Zhang Lei Date: Wed Jul 3 18:42:50 2019 +0100 KVM: arm64/sve: Fix vq_present() macro to yield a bool The original implementation of vq_present() relied on aggressive inlining in order for the compiler to know that the code is correct, due to some const-casting issues. This was causing sparse and clang to complain, while GCC compiled cleanly. Commit 0c529ff789bc addressed this problem, but since vq_present() is no longer a function, there is now no implicit casting of the returned value to the return type (bool). In set_sve_vls(), this uncast bit value is compared against a bool, and so may spuriously compare as unequal when both are nonzero. As a result, KVM may reject valid SVE vector length configurations as invalid, and vice versa. Fix it by forcing the returned value to a bool. Signed-off-by: Zhang Lei Fixes: 0c529ff789bc ("KVM: arm64: Implement vq_present() as a macro") Signed-off-by: Dave Martin [commit message rewrite] Cc: Viresh Kumar Signed-off-by: Paolo Bonzini commit f6034225442c4a87906d36e975fd9e99a8f95487 Author: Sricharan R Date: Fri Jun 28 17:39:46 2019 +0530 dmaengine: qcom: bam_dma: Fix completed descriptors count One space is left unused in circular FIFO to differentiate 'full' and 'empty' cases. So take that in to account while counting for the descriptors completed. Fixes the issue reported here, https://lkml.org/lkml/2019/6/18/669 Cc: stable@vger.kernel.org Reported-by: Srinivas Kandagatla Signed-off-by: Sricharan R Tested-by: Srinivas Kandagatla Signed-off-by: Vinod Koul commit 3f93a4f297961c12bb17aa16cb3a4d1291823cae Author: Robin Gong Date: Fri Jun 21 16:23:06 2019 +0800 dmaengine: imx-sdma: remove BD_INTR for channel0 It is possible for an irq triggered by channel0 to be received later after clks are disabled once firmware loaded during sdma probe. If that happens then clearing them by writing to SDMA_H_INTR won't work and the kernel will hang processing infinite interrupts. Actually, don't need interrupt triggered on channel0 since it's pollling SDMA_H_STATSTOP to know channel0 done rather than interrupt in current code, just clear BD_INTR to disable channel0 interrupt to avoid the above case. This issue was brought by commit 1d069bfa3c78 ("dmaengine: imx-sdma: ack channel 0 IRQ in the interrupt handler") which didn't take care the above case. Fixes: 1d069bfa3c78 ("dmaengine: imx-sdma: ack channel 0 IRQ in the interrupt handler") Cc: stable@vger.kernel.org #5.0+ Signed-off-by: Robin Gong Reported-by: Sven Van Asbroeck Tested-by: Sven Van Asbroeck Reviewed-by: Michael Olbrich Signed-off-by: Vinod Koul commit 2b8066c3deb9140fdf258417a51479b2aeaa7622 Author: Sven Van Asbroeck Date: Mon Jun 24 10:07:31 2019 -0400 dmaengine: imx-sdma: fix use-after-free on probe error path If probe() fails anywhere beyond the point where sdma_get_firmware() is called, then a kernel oops may occur. Problematic sequence of events: 1. probe() calls sdma_get_firmware(), which schedules the firmware callback to run when firmware becomes available, using the sdma instance structure as the context 2. probe() encounters an error, which deallocates the sdma instance structure 3. firmware becomes available, firmware callback is called with deallocated sdma instance structure 4. use after free - kernel oops ! Solution: only attempt to load firmware when we're certain that probe() will succeed. This guarantees that the firmware callback's context will remain valid. Note that the remove() path is unaffected by this issue: the firmware loader will increment the driver module's use count, ensuring that the module cannot be unloaded while the firmware callback is pending or running. Signed-off-by: Sven Van Asbroeck Reviewed-by: Robin Gong [vkoul: fixed braces for if condition] Signed-off-by: Vinod Koul commit 4c89cc73d1da42ae48b5c5dfbfd12304d0b86786 Author: Dan Carpenter Date: Mon Jun 24 16:49:40 2019 +0300 dmaengine: jz4780: Fix an endian bug in IRQ handler The "pending" variable was a u32 but we cast it to an unsigned long pointer when we do the for_each_set_bit() loop. The problem is that on big endian 64bit systems that results in an out of bounds read. Fixes: 4e4106f5e942 ("dmaengine: jz4780: Fix transfers being ACKed too soon") Signed-off-by: Dan Carpenter Signed-off-by: Vinod Koul commit 3f9c4dc63309286a6513a86aac35ffc445cb9d1a Merge: ee39d46dcaf8 a0b2cf792ac9 Author: Linus Torvalds Date: Fri Jul 5 14:10:30 2019 +0900 Merge tag 'drm-fixes-2019-07-05-1' of git://anongit.freedesktop.org/drm/drm Pull drm fixes from Dave Airlie: "I skipped last week because there wasn't much worth doing, this week got a few more fixes in. amdgpu: - default register value change - runpm regression fix - fan control fix i915: - fix Ironlake regression panfrost: - fix a double free virtio: - fix a locking bug imx: - crtc disable fixes" * tag 'drm-fixes-2019-07-05-1' of git://anongit.freedesktop.org/drm/drm: drm/imx: only send event on crtc disable if kept disabled drm/imx: notify drm core before sending event during crtc disable drm/i915/ringbuffer: EMIT_INVALIDATE *before* switch context drm/amdgpu/gfx9: use reset default for PA_SC_FIFO_SIZE drm/amdgpu: Don't skip display settings in hwmgr_resume() drm/amd/powerplay: use hardware fan control if no powerplay fan table drm/panfrost: Fix a double-free error drm/etnaviv: add missing failure path to destroy suballoc drm/virtio: move drm_connector_update_edid_property() call commit a0b2cf792ac9db7bb73e599e516adfb9dca8e60b Merge: b5252bdf099a 5aeab2bfc9ff Author: Dave Airlie Date: Fri Jul 5 12:54:48 2019 +1000 Merge tag 'imx-drm-fixes-2019-07-04' of git://git.pengutronix.de/git/pza/linux into drm-fixes drm/imx: fix stale vblank timestamp after a modeset This series fixes stale vblank timestamps in the first event sent after a crtc was disabled. The core now is notified via drm_crtc_vblank_off before sending the last pending event in atomic_disable. If the crtc is reenabled right away during to a modeset, the event is not sent at all, as the next vblank will take care of it. Signed-off-by: Dave Airlie From: Philipp Zabel Link: https://patchwork.freedesktop.org/patch/msgid/1562237119.6641.16.camel@pengutronix.de commit ee39d46dcaf8f25894f13236d3d984d9a4d2fd3e Merge: a5fff14a0c79 21d4120ec6f5 Author: Linus Torvalds Date: Fri Jul 5 13:31:19 2019 +0900 Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 Pull crypto fixes from Herbert Xu: "This fixes two memory leaks and a list corruption bug" * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: crypto: user - prevent operating on larval algorithms crypto: cryptd - Fix skcipher instance memory leak lib/mpi: Fix karactx leak in mpi_powm commit a5fff14a0c7989fbc8316a43f52aed1804f02ddd Merge: ecbe5086adc2 875185309199 Author: Linus Torvalds Date: Fri Jul 5 11:39:56 2019 +0900 Merge branch 'akpm' (patches from Andrew) Merge more fixes from Andrew Morton: "5 fixes" * emailed patches from Andrew Morton : swap_readpage(): avoid blk_wake_io_task() if !synchronous devres: allow const resource arguments mm/vmscan.c: prevent useless kswapd loops fs/userfaultfd.c: disable irqs for fault_pending and event locks mm/page_alloc.c: fix regression with deferred struct page init commit ecbe5086adc2876b22c898987d8a20f932de87a9 Merge: cde357c392e9 2659dc8d225c Author: Linus Torvalds Date: Fri Jul 5 11:35:45 2019 +0900 Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc Pull ARM SoC fixes from Olof Johansson: "Likely our final small batch of fixes for 5.2: - Some fixes for USB on davinci, regressions were due to the recent conversion of the OCHI driver to use GPIO regulators - A fixup of kconfig dependencies for a TI irq controller - A switch of armada-38x to avoid dropped characters on uart, caused by switch of base inherited platform description earlier this year" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: ARM: davinci: da830-evm: fix GPIO lookup for OHCI ARM: davinci: omapl138-hawk: add missing regulator constraints for OHCI ARM: davinci: da830-evm: add missing regulator constraints for OHCI soc: ti: fix irq-ti-sci link error ARM: dts: armada-xp-98dx3236: Switch to armada-38x-uart serial node commit cde357c392e93aa7fcfc019403e0d1792081d634 Merge: 2cd7cdc7e420 1571c029a2ff Author: Linus Torvalds Date: Fri Jul 5 11:32:11 2019 +0900 Merge tag 'dax-fix-5.2-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm Pull dax fix from Dan Williams: "A single dax fix that has been soaking awaiting other fixes under discussion to join it. As it is getting late in the cycle lets proceed with this fix and save follow-on changes for post-v5.3-rc1. - Fix xarray entry association for mixed mappings" * tag 'dax-fix-5.2-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: dax: Fix xarray entry association for mixed mappings commit 2cd7cdc7e420a343743db781484e801fd784a1f1 Merge: c212ddaee2fd 570d7a98e7d6 Author: Linus Torvalds Date: Fri Jul 5 11:21:36 2019 +0900 Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull do_move_mount() fix from Al Viro: "Regression fix" * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: vfs: move_mount: reject moving kernel internal mounts commit 8751853091998cd31e9e5f1e8206280155af8921 Author: Oleg Nesterov Date: Thu Jul 4 15:14:49 2019 -0700 swap_readpage(): avoid blk_wake_io_task() if !synchronous swap_readpage() sets waiter = bio->bi_private even if synchronous = F, this means that the caller can get the spurious wakeup after return. This can be fatal if blk_wake_io_task() does set_current_state(TASK_RUNNING) after the caller does set_special_state(), in the worst case the kernel can crash in do_task_dead(). Link: http://lkml.kernel.org/r/20190704160301.GA5956@redhat.com Fixes: 0619317ff8baa2d ("block: add polled wakeup task helper") Signed-off-by: Oleg Nesterov Reported-by: Qian Cai Acked-by: Hugh Dickins Reviewed-by: Jens Axboe Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit eef778c99c0239ed0a0696ddf22ae3673f28a489 Author: Arnd Bergmann Date: Thu Jul 4 15:14:45 2019 -0700 devres: allow const resource arguments devm_ioremap_resource() does not currently take 'const' arguments, which results in a warning from the first driver trying to do it anyway: drivers/gpio/gpio-amd-fch.c: In function 'amd_fch_gpio_probe': drivers/gpio/gpio-amd-fch.c:171:49: error: passing argument 2 of 'devm_ioremap_resource' discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers] priv->base = devm_ioremap_resource(&pdev->dev, &amd_fch_gpio_iores); ^~~~~~~~~~~~~~~~~~~ Change the prototype to allow it, as there is no real reason not to. Link: http://lkml.kernel.org/r/20190628150049.1108048-1-arnd@arndb.de Fixes: 9bb2e0452508 ("gpio: amd: Make resource struct const") Signed-off-by: Arnd Bergmann Acked-by: Greg Kroah-Hartman Reviewed-by: Enrico Weigelt Reviewed-by: Andrew Morton Cc: Greg Kroah-Hartman Cc: Linus Walleij Cc: Arnd Bergmann Cc: "Rafael J. Wysocki" Cc: Ulf Hansson Cc: Andy Shevchenko Cc: Heikki Krogerus Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit dffcac2cb88e4ec5906235d64a83d802580b119e Author: Shakeel Butt Date: Thu Jul 4 15:14:42 2019 -0700 mm/vmscan.c: prevent useless kswapd loops In production we have noticed hard lockups on large machines running large jobs due to kswaps hoarding lru lock within isolate_lru_pages when sc->reclaim_idx is 0 which is a small zone. The lru was couple hundred GiBs and the condition (page_zonenum(page) > sc->reclaim_idx) in isolate_lru_pages() was basically skipping GiBs of pages while holding the LRU spinlock with interrupt disabled. On further inspection, it seems like there are two issues: (1) If kswapd on the return from balance_pgdat() could not sleep (i.e. node is still unbalanced), the classzone_idx is unintentionally set to 0 and the whole reclaim cycle of kswapd will try to reclaim only the lowest and smallest zone while traversing the whole memory. (2) Fundamentally isolate_lru_pages() is really bad when the allocation has woken kswapd for a smaller zone on a very large machine running very large jobs. It can hoard the LRU spinlock while skipping over 100s of GiBs of pages. This patch only fixes (1). (2) needs a more fundamental solution. To fix (1), in the kswapd context, if pgdat->kswapd_classzone_idx is invalid use the classzone_idx of the previous kswapd loop otherwise use the one the waker has requested. Link: http://lkml.kernel.org/r/20190701201847.251028-1-shakeelb@google.com Fixes: e716f2eb24de ("mm, vmscan: prevent kswapd sleeping prematurely due to mismatched classzone_idx") Signed-off-by: Shakeel Butt Reviewed-by: Yang Shi Acked-by: Mel Gorman Cc: Johannes Weiner Cc: Michal Hocko Cc: Vlastimil Babka Cc: Hillf Danton Cc: Roman Gushchin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cbcfa130a911c613a1d9d921af2eea171c414172 Author: Eric Biggers Date: Thu Jul 4 15:14:39 2019 -0700 fs/userfaultfd.c: disable irqs for fault_pending and event locks When IOCB_CMD_POLL is used on a userfaultfd, aio_poll() disables IRQs and takes kioctx::ctx_lock, then userfaultfd_ctx::fd_wqh.lock. This may have to wait for userfaultfd_ctx::fd_wqh.lock to be released by userfaultfd_ctx_read(), which in turn can be waiting for userfaultfd_ctx::fault_pending_wqh.lock or userfaultfd_ctx::event_wqh.lock. But elsewhere the fault_pending_wqh and event_wqh locks are taken with IRQs enabled. Since the IRQ handler may take kioctx::ctx_lock, lockdep reports that a deadlock is possible. Fix it by always disabling IRQs when taking the fault_pending_wqh and event_wqh locks. Commit ae62c16e105a ("userfaultfd: disable irqs when taking the waitqueue lock") didn't fix this because it only accounted for the fd_wqh lock, not the other locks nested inside it. Link: http://lkml.kernel.org/r/20190627075004.21259-1-ebiggers@kernel.org Fixes: bfe4037e722e ("aio: implement IOCB_CMD_POLL") Signed-off-by: Eric Biggers Reported-by: syzbot+fab6de82892b6b9c6191@syzkaller.appspotmail.com Reported-by: syzbot+53c0b767f7ca0dc0c451@syzkaller.appspotmail.com Reported-by: syzbot+a3accb352f9c22041cfa@syzkaller.appspotmail.com Reviewed-by: Andrew Morton Cc: Christoph Hellwig Cc: Andrea Arcangeli Cc: [4.19+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b9705d8778e7adc97de38f405f835a2426e14d84 Author: Juergen Gross Date: Thu Jul 4 15:14:36 2019 -0700 mm/page_alloc.c: fix regression with deferred struct page init Commit 0e56acae4b4d ("mm: initialize MAX_ORDER_NR_PAGES at a time instead of doing larger sections") is causing a regression on some systems when the kernel is booted as Xen dom0. The system will just hang in early boot. Reason is an endless loop in get_page_from_freelist() in case the first zone looked at has no free memory. deferred_grow_zone() is always returning true due to the following code snipplet: /* If the zone is empty somebody else may have cleared out the zone */ if (!deferred_init_mem_pfn_range_in_zone(&i, zone, &spfn, &epfn, first_deferred_pfn)) { pgdat->first_deferred_pfn = ULONG_MAX; pgdat_resize_unlock(pgdat, &flags); return true; } This in turn results in the loop as get_page_from_freelist() is assuming forward progress can be made by doing some more struct page initialization. Link: http://lkml.kernel.org/r/20190620160821.4210-1-jgross@suse.com Fixes: 0e56acae4b4d ("mm: initialize MAX_ORDER_NR_PAGES at a time instead of doing larger sections") Signed-off-by: Juergen Gross Suggested-by: Alexander Duyck Acked-by: Alexander Duyck Cc: Michal Hocko Cc: Pavel Tatashin Cc: Mike Rapoport Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c212ddaee2fd21e8d756dbc3c6119e3259b38fd0 Merge: 6994eefb0053 3450121997ce Author: Linus Torvalds Date: Fri Jul 5 02:03:50 2019 +0900 Merge tag 'sound-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "Here are a collection of small fixes for: - A race with ASoC HD-audio registration - LINE6 usb-audio memory overwrite by malformed descriptor - FireWire MIDI handling - Missing cast for bit shifts in a few USB-audio quirks - The wrong function calls in minor OSS sequencer code paths - A couple of HD-audio quirks" * tag 'sound-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: line6: Fix write on zero-sized buffer ALSA: hda: Fix widget_mutex incomplete protection ALSA: firewire-lib/fireworks: fix miss detection of received MIDI messages ALSA: seq: fix incorrect order of dest_client/dest_ports arguments ALSA: hda/realtek - Change front mic location for Lenovo M710q ALSA: usb-audio: fix sign unintended sign extension on left shifts ALSA: hda/realtek: Add quirks for several Clevo notebook barebones commit 6994eefb0053799d2e07cd140df6c2ea106c41ee Author: Jann Horn Date: Thu Jul 4 17:32:23 2019 +0200 ptrace: Fix ->ptracer_cred handling for PTRACE_TRACEME Fix two issues: When called for PTRACE_TRACEME, ptrace_link() would obtain an RCU reference to the parent's objective credentials, then give that pointer to get_cred(). However, the object lifetime rules for things like struct cred do not permit unconditionally turning an RCU reference into a stable reference. PTRACE_TRACEME records the parent's credentials as if the parent was acting as the subject, but that's not the case. If a malicious unprivileged child uses PTRACE_TRACEME and the parent is privileged, and at a later point, the parent process becomes attacker-controlled (because it drops privileges and calls execve()), the attacker ends up with control over two processes with a privileged ptrace relationship, which can be abused to ptrace a suid binary and obtain root privileges. Fix both of these by always recording the credentials of the process that is requesting the creation of the ptrace relationship: current_cred() can't change under us, and current is the proper subject for access control. This change is theoretically userspace-visible, but I am not aware of any code that it will actually break. Fixes: 64b875f7ac8a ("ptrace: Capture the ptracer's creds not PT_PTRACE_CAP") Signed-off-by: Jann Horn Acked-by: Oleg Nesterov Cc: stable@vger.kernel.org Signed-off-by: Linus Torvalds commit 5aeab2bfc9ffa72d3ca73416635cb3785dfc076f Author: Robert Beckett Date: Tue Jun 25 18:59:15 2019 +0100 drm/imx: only send event on crtc disable if kept disabled The event will be sent as part of the vblank enable during the modeset if the crtc is not being kept disabled. Fixes: 5f2f911578fb ("drm/imx: atomic phase 3 step 1: Use atomic configuration") Signed-off-by: Robert Beckett Reviewed-by: Daniel Vetter Signed-off-by: Philipp Zabel commit 78c68e8f5cd24bd32ba4ca1cdfb0c30cf0642685 Author: Robert Beckett Date: Tue Jun 25 18:59:13 2019 +0100 drm/imx: notify drm core before sending event during crtc disable Notify drm core before sending pending events during crtc disable. This fixes the first event after disable having an old stale timestamp by having drm_crtc_vblank_off update the timestamp to now. This was seen while debugging weston log message: Warning: computed repaint delay is insane: -8212 msec This occurred due to: 1. driver starts up 2. fbcon comes along and restores fbdev, enabling vblank 3. vblank_disable_fn fires via timer disabling vblank, keeping vblank seq number and time set at current value (some time later) 4. weston starts and does a modeset 5. atomic commit disables crtc while it does the modeset 6. ipu_crtc_atomic_disable sends vblank with old seq number and time Fixes: a474478642d5 ("drm/imx: fix crtc vblank state regression") Signed-off-by: Robert Beckett Reviewed-by: Daniel Vetter Signed-off-by: Philipp Zabel commit 550d1f5bda33fa3b203d8cf8df1396825dbfd213 Merge: 179c96d9f715 074376ac0e1d Author: Linus Torvalds Date: Thu Jul 4 10:26:17 2019 +0900 Merge tag 'trace-v5.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull tracing fixes from Steven Rostedt: "This includes three fixes: - Fix a deadlock from a previous fix to keep module loading and function tracing text modifications from stepping on each other (this has a few patches to help document the issue in comments) - Fix a crash when the snapshot buffer gets out of sync with the main ring buffer - Fix a memory leak when reading the memory logs" * tag 'trace-v5.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: ftrace/x86: Anotate text_mutex split between ftrace_arch_code_modify_post_process() and ftrace_arch_code_modify_prepare() tracing/snapshot: Resize spare buffer if size changed tracing: Fix memory leak in tracing_err_log_open() ftrace/x86: Add a comment to why we take text_mutex in ftrace_arch_code_modify_prepare() ftrace/x86: Remove possible deadlock between register_kprobe() and ftrace_run_update_code() commit b5252bdf099a465e6b707e7cf11b7ef0b1e4cf09 Merge: a956c56b6ad3 be132e1375c1 Author: Dave Airlie Date: Thu Jul 4 11:19:23 2019 +1000 Merge branch 'etnaviv/fixes' of https://git.pengutronix.de/git/lst/linux into drm-fixes Fix a kernel nullptr deref on module unload when any etnaviv GPU failed to initialize properly. Signed-off-by: Dave Airlie From: Lucas Stach Link: https://patchwork.freedesktop.org/patch/msgid/1561974148.2321.1.camel@pengutronix.de commit a956c56b6ad3c2812cf6158eaa579c4f4012e7ab Merge: 5ee5d30a814d 2f040d27080d Author: Dave Airlie Date: Thu Jul 4 11:17:44 2019 +1000 Merge tag 'drm-misc-fixes-2019-07-03' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes panfrost- Avoid double free by deleting GEM handle in create_bo failure path (Boris) Cc: Boris Brezillon Signed-off-by: Dave Airlie From: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190704001302.GA260390@art_vandelay commit 5ee5d30a814d1310276cc023df1cf503d4c8d10f Merge: c84c9029d782 25f09f858835 Author: Dave Airlie Date: Thu Jul 4 11:17:23 2019 +1000 Merge tag 'drm-fixes-5.2-2019-07-02' of git://people.freedesktop.org/~agd5f/linux into drm-fixes drm-fixes-5.2-2019-07-02: Fixes for stable amdgpu: - stability fix for gfx9 - regression fix for HG on some polaris boards - crash fix for some new OEM boards Signed-off-by: Dave Airlie From: Alex Deucher Link: https://patchwork.freedesktop.org/patch/msgid/20190703015705.3162-1-alexander.deucher@amd.com commit 179c96d9f715a619811ded5dcbd35b1fee8caf69 Merge: eca94432934f fbbf145a0e0a Author: Linus Torvalds Date: Thu Jul 4 09:59:08 2019 +0900 Merge tag 'gpio-v5.2-4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio Pull GPIO fix from Linus Walleij: "A single fixup for the SPI CS gpios that regressed in the current kernel cycle" * tag 'gpio-v5.2-4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: gpio/spi: Fix spi-gpio regression on active high CS commit 3b2d4dcf71c4a91b420f835e52ddea8192300a3b Author: Paul Menzel Date: Wed Jul 3 13:28:15 2019 +0200 nfsd: Fix overflow causing non-working mounts on 1 TB machines Since commit 10a68cdf10 (nfsd: fix performance-limiting session calculation) (Linux 5.1-rc1 and 4.19.31), shares from NFS servers with 1 TB of memory cannot be mounted anymore. The mount just hangs on the client. The gist of commit 10a68cdf10 is the change below. -avail = clamp_t(int, avail, slotsize, avail/3); +avail = clamp_t(int, avail, slotsize, total_avail/3); Here are the macros. #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <) #define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi) `total_avail` is 8,434,659,328 on the 1 TB machine. `clamp_t()` casts the values to `int`, which for 32-bit integers can only hold values −2,147,483,648 (−2^31) through 2,147,483,647 (2^31 − 1). `avail` (in the function signature) is just 65536, so that no overflow was happening. Before the commit the assignment would result in 21845, and `num = 4`. When using `total_avail`, it is causing the assignment to be 18446744072226137429 (printed as %lu), and `num` is then 4164608182. My next guess is, that `nfsd_drc_mem_used` is then exceeded, and the server thinks there is no memory available any more for this client. Updating the arguments of `clamp_t()` and `min_t()` to `unsigned long` fixes the issue. Now, `avail = 65536` (before commit 10a68cdf10 `avail = 21845`), but `num = 4` remains the same. Fixes: c54f24e338ed (nfsd: fix performance-limiting session calculation) Cc: stable@vger.kernel.org Signed-off-by: Paul Menzel Signed-off-by: J. Bruce Fields commit 21d4120ec6f5b5992b01b96ac484701163917b63 Author: Eric Biggers Date: Tue Jul 2 14:17:00 2019 -0700 crypto: user - prevent operating on larval algorithms Michal Suchanek reported [1] that running the pcrypt_aead01 test from LTP [2] in a loop and holding Ctrl-C causes a NULL dereference of alg->cra_users.next in crypto_remove_spawns(), via crypto_del_alg(). The test repeatedly uses CRYPTO_MSG_NEWALG and CRYPTO_MSG_DELALG. The crash occurs when the instance that CRYPTO_MSG_DELALG is trying to unregister isn't a real registered algorithm, but rather is a "test larval", which is a special "algorithm" added to the algorithms list while the real algorithm is still being tested. Larvals don't have initialized cra_users, so that causes the crash. Normally pcrypt_aead01 doesn't trigger this because CRYPTO_MSG_NEWALG waits for the algorithm to be tested; however, CRYPTO_MSG_NEWALG returns early when interrupted. Everything else in the "crypto user configuration" API has this same bug too, i.e. it inappropriately allows operating on larval algorithms (though it doesn't look like the other cases can cause a crash). Fix this by making crypto_alg_match() exclude larval algorithms. [1] https://lkml.kernel.org/r/20190625071624.27039-1-msuchanek@suse.de [2] https://github.com/linux-test-project/ltp/blob/20190517/testcases/kernel/crypto/pcrypt_aead01.c Reported-by: Michal Suchanek Fixes: a38f7907b926 ("crypto: Add userspace configuration API") Cc: # v3.2+ Cc: Steffen Klassert Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 1a0fad630e0b7cff38e7691b28b0517cfbb0633f Author: Vincent Whitchurch Date: Tue Jul 2 09:53:25 2019 +0200 crypto: cryptd - Fix skcipher instance memory leak cryptd_skcipher_free() fails to free the struct skcipher_instance allocated in cryptd_create_skcipher(), leading to a memory leak. This is detected by kmemleak on bootup on ARM64 platforms: unreferenced object 0xffff80003377b180 (size 1024): comm "cryptomgr_probe", pid 822, jiffies 4294894830 (age 52.760s) backtrace: kmem_cache_alloc_trace+0x270/0x2d0 cryptd_create+0x990/0x124c cryptomgr_probe+0x5c/0x1e8 kthread+0x258/0x318 ret_from_fork+0x10/0x1c Fixes: 4e0958d19bd8 ("crypto: cryptd - Add support for skcipher") Cc: Signed-off-by: Vincent Whitchurch Signed-off-by: Herbert Xu commit c8ea9fce2baf7b643384f36f29e4194fa40d33a6 Author: Herbert Xu Date: Mon Jun 24 18:32:26 2019 +0800 lib/mpi: Fix karactx leak in mpi_powm Sometimes mpi_powm will leak karactx because a memory allocation failure causes a bail-out that skips the freeing of karactx. This patch moves the freeing of karactx to the end of the function like everything else so that it can't be skipped. Reported-by: syzbot+f7baccc38dcc1e094e77@syzkaller.appspotmail.com Fixes: cdec9cb5167a ("crypto: GnuPG based MPI lib - source files...") Cc: Signed-off-by: Herbert Xu Reviewed-by: Eric Biggers Signed-off-by: Herbert Xu commit eca94432934fe5f141d084f2e36ee2c0e614cc04 Author: Matias Karhumaa Date: Tue Jul 2 16:35:09 2019 +0200 Bluetooth: Fix faulty expression for minimum encryption key size check Fix minimum encryption key size check so that HCI_MIN_ENC_KEY_SIZE is also allowed as stated in the comment. This bug caused connection problems with devices having maximum encryption key size of 7 octets (56-bit). Fixes: 693cd8ce3f88 ("Bluetooth: Fix regression with minimum encryption key size alignment") Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203997 Signed-off-by: Matias Karhumaa Cc: stable@vger.kernel.org Signed-off-by: Marcel Holtmann Signed-off-by: Linus Torvalds commit 6e692c3b721f30485a9124f93e27a0cb6569116c Merge: 8d68d9325522 5de254dca87a Author: Linus Torvalds Date: Wed Jul 3 16:06:36 2019 +0800 Merge tag '5.2-rc6-smb3-fix' of git://git.samba.org/sfrench/cifs-2.6 Pull cifs fix from Steve French: "SMB3 fix (for stable as well) for crash mishandling one of the Windows reparse point symlink tags" * tag '5.2-rc6-smb3-fix' of git://git.samba.org/sfrench/cifs-2.6: cifs: fix crash querying symlinks stored as reparse-points commit 8d68d93255227da660c63b9162f7001e2f5d470a Merge: 4b1fe9b58e9d 28dd29c06d0d Author: Linus Torvalds Date: Wed Jul 3 16:00:21 2019 +0800 Merge tag 'for-linus-20190701' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux Pull pidfd fork() fix from Christian Brauner: "A single small fix for copy_process() in kernel/fork.c: With Al's removal of ksys_close() from cleanup paths in copy_process() a bug was introduced. When anon_inode_getfile() failed the cleanup was correctly performed but the error code was not propagated to callers of copy_process() causing them to operate on a nonsensical pointer. The fix is a simple on-liner which makes sure that a proper negative error code is returned from copy_process(). syzkaller has also verified that the bug is not reproducible with this fix" * tag 'for-linus-20190701' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux: fork: return proper negative error code commit 4b1fe9b58e9d20f23f6b07d1c2e0dbd921da67bf Merge: 6fbc7275c7a9 aa69fb62bea1 Author: Linus Torvalds Date: Wed Jul 3 15:57:30 2019 +0800 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fixes from Will Deacon: "Fix a build failure with the LLVM linker and a module allocation failure when KASLR is active: - Fix module allocation when running with KASLR enabled - Fix broken build due to bug in LLVM linker (ld.lld)" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64/efi: Mark __efistub_stext_offset as an absolute symbol explicitly arm64: kaslr: keep modules inside module region when KASAN is enabled commit 2659dc8d225c956b91d8a8e4ef05d91b2e985c02 Merge: 521a503f5247 4f2fe6467707 Author: Olof Johansson Date: Tue Jul 2 15:13:20 2019 -0700 Merge tag 'davinci-fixes-for-v5.2-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci into arm/fixes This set of patches fixes regressions introduced in v5.2 kernel when DA8xx OHCI driver was converted over to use GPIO regulators. * tag 'davinci-fixes-for-v5.2-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci: ARM: davinci: da830-evm: fix GPIO lookup for OHCI ARM: davinci: omapl138-hawk: add missing regulator constraints for OHCI ARM: davinci: da830-evm: add missing regulator constraints for OHCI + Linux 5.2-rc7 Signed-off-by: Olof Johansson commit 5dd6c49339126c2c8df2179041373222362d6e49 Author: Maurizio Lombardi Date: Wed Jun 26 19:27:34 2019 +0200 scsi: iscsi: set auth_protocol back to NULL if CHAP_A value is not supported If the CHAP_A value is not supported, the chap_server_open() function should free the auth_protocol pointer and set it to NULL, or we will leave a dangling pointer around. [ 66.010905] Unsupported CHAP_A value [ 66.011660] Security negotiation failed. [ 66.012443] iSCSI Login negotiation failed. [ 68.413924] general protection fault: 0000 [#1] SMP PTI [ 68.414962] CPU: 0 PID: 1562 Comm: targetcli Kdump: loaded Not tainted 4.18.0-80.el8.x86_64 #1 [ 68.416589] Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2011 [ 68.417677] RIP: 0010:__kmalloc_track_caller+0xc2/0x210 Signed-off-by: Maurizio Lombardi Reviewed-by: Chris Leech Signed-off-by: Martin K. Petersen commit 5676234f20fef02f6ca9bd66c63a8860fce62645 Author: Roman Bolshakov Date: Tue Jul 2 22:16:38 2019 +0300 scsi: target/iblock: Fix overrun in WRITE SAME emulation WRITE SAME corrupts data on the block device behind iblock if the command is emulated. The emulation code issues (M - 1) * N times more bios than requested, where M is the number of 512 blocks per real block size and N is the NUMBER OF LOGICAL BLOCKS specified in WRITE SAME command. So, for a device with 4k blocks, 7 * N more LBAs gets written after the requested range. The issue happens because the number of 512 byte sectors to be written is decreased one by one while the real bios are typically from 1 to 8 512 byte sectors per bio. Fixes: c66ac9db8d4a ("[SCSI] target: Add LIO target core v4.0.0-rc6") Cc: Signed-off-by: Roman Bolshakov Reviewed-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit fbbf145a0e0a0177e089c52275fbfa55763e7d1d Author: Linus Walleij Date: Tue Jul 2 21:39:59 2019 +0200 gpio/spi: Fix spi-gpio regression on active high CS I ran into an intriguing bug caused by commit ""spi: gpio: Don't request CS GPIO in DT use-case" affecting all SPI GPIO devices with an active high chip select line. The commit switches the CS gpio handling over to the GPIO core, which will parse and handle "cs-gpios" from the OF node without even calling down to the driver to get the job done. However the GPIO core handles the standard bindings in Documentation/devicetree/bindings/spi/spi-controller.yaml that specifies that active high CS needs to be specified using "spi-cs-high" in the DT node. The code in drivers/spi/spi-gpio.c never respected this and never tried to inspect subnodes to see if they contained "spi-cs-high" like the gpiolib OF quirks does. Instead the only way to get an active high CS was to tag it in the device tree using the flags cell such as cs-gpios = <&gpio 4 GPIO_ACTIVE_HIGH>; This alters the quirks to not inspect the subnodes of SPI masters on "spi-gpio" for the standard attribute "spi-cs-high", making old device trees work as expected. This semantic is a bit ambigous, but just allowing the flags on the GPIO descriptor to modify polarity is what the kernel at large mostly uses so let's encourage that. Fixes: 249e2632dcd0 ("spi: gpio: Don't request CS GPIO in DT use-case") Cc: Andrey Smirnov Cc: linux-gpio@vger.kernel.org Cc: linux-spi@vger.kernel.org Signed-off-by: Linus Walleij commit 074376ac0e1d1fcd4fafebca86ee6158e7c20680 Author: Jiri Kosina Date: Sat Jun 29 23:22:33 2019 +0200 ftrace/x86: Anotate text_mutex split between ftrace_arch_code_modify_post_process() and ftrace_arch_code_modify_prepare() ftrace_arch_code_modify_prepare() is acquiring text_mutex, while the corresponding release is happening in ftrace_arch_code_modify_post_process(). This has already been documented in the code, but let's also make the fact that this is intentional clear to the semantic analysis tools such as sparse. Link: http://lkml.kernel.org/r/nycvar.YFH.7.76.1906292321170.27227@cbobk.fhfr.pm Fixes: 39611265edc1a ("ftrace/x86: Add a comment to why we take text_mutex in ftrace_arch_code_modify_prepare()") Fixes: d5b844a2cf507 ("ftrace/x86: Remove possible deadlock between register_kprobe() and ftrace_run_update_code()") Signed-off-by: Jiri Kosina Signed-off-by: Steven Rostedt (VMware) commit 3450121997ce872eb7f1248417225827ea249710 Author: Takashi Iwai Date: Tue Jul 2 20:07:21 2019 +0200 ALSA: line6: Fix write on zero-sized buffer LINE6 drivers allocate the buffers based on the value returned from usb_maxpacket() calls. The manipulated device may return zero for this, and this results in the kmalloc() with zero size (and it may succeed) while the other part of the driver code writes the packet data with the fixed size -- which eventually overwrites. This patch adds a simple sanity check for the invalid buffer size for avoiding that problem. Reported-by: syzbot+219f00fb49874dcaea17@syzkaller.appspotmail.com Cc: Signed-off-by: Takashi Iwai commit bb34e690e9340bc155ebed5a3d75fc63ff69e082 Author: Wanpeng Li Date: Tue Jul 2 17:25:02 2019 +0800 KVM: LAPIC: Fix pending interrupt in IRR blocked by software disable LAPIC Thomas reported that: | Background: | | In preparation of supporting IPI shorthands I changed the CPU offline | code to software disable the local APIC instead of just masking it. | That's done by clearing the APIC_SPIV_APIC_ENABLED bit in the APIC_SPIV | register. | | Failure: | | When the CPU comes back online the startup code triggers occasionally | the warning in apic_pending_intr_clear(). That complains that the IRRs | are not empty. | | The offending vector is the local APIC timer vector who's IRR bit is set | and stays set. | | It took me quite some time to reproduce the issue locally, but now I can | see what happens. | | It requires apicv_enabled=0, i.e. full apic emulation. With apicv_enabled=1 | (and hardware support) it behaves correctly. | | Here is the series of events: | | Guest CPU | | goes down | | native_cpu_disable() | | apic_soft_disable(); | | play_dead() | | .... | | startup() | | if (apic_enabled()) | apic_pending_intr_clear() <- Not taken | | enable APIC | | apic_pending_intr_clear() <- Triggers warning because IRR is stale | | When this happens then the deadline timer or the regular APIC timer - | happens with both, has fired shortly before the APIC is disabled, but the | interrupt was not serviced because the guest CPU was in an interrupt | disabled region at that point. | | The state of the timer vector ISR/IRR bits: | | ISR IRR | before apic_soft_disable() 0 1 | after apic_soft_disable() 0 1 | | On startup 0 1 | | Now one would assume that the IRR is cleared after the INIT reset, but this | happens only on CPU0. | | Why? | | Because our CPU0 hotplug is just for testing to make sure nothing breaks | and goes through an NMI wakeup vehicle because INIT would send it through | the boots-trap code which is not really working if that CPU was not | physically unplugged. | | Now looking at a real world APIC the situation in that case is: | | ISR IRR | before apic_soft_disable() 0 1 | after apic_soft_disable() 0 1 | | On startup 0 0 | | Why? | | Once the dying CPU reenables interrupts the pending interrupt gets | delivered as a spurious interupt and then the state is clear. | | While that CPU0 hotplug test case is surely an esoteric issue, the APIC | emulation is still wrong, Even if the play_dead() code would not enable | interrupts then the pending IRR bit would turn into an ISR .. interrupt | when the APIC is reenabled on startup. From SDM 10.4.7.2 Local APIC State After It Has Been Software Disabled * Pending interrupts in the IRR and ISR registers are held and require masking or handling by the CPU. In Thomas's testing, hardware cpu will not respect soft disable LAPIC when IRR has already been set or APICv posted-interrupt is in flight, so we can skip soft disable APIC checking when clearing IRR and set ISR, continue to respect soft disable APIC when attempting to set IRR. Reported-by: Rong Chen Reported-by: Feng Tang Reported-by: Thomas Gleixner Tested-by: Thomas Gleixner Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Thomas Gleixner Cc: Rong Chen Cc: Feng Tang Cc: stable@vger.kernel.org Signed-off-by: Wanpeng Li Signed-off-by: Paolo Bonzini commit 323d73a8ecad22bf3284f11112a7cce576ade6af Author: Liran Alon Date: Wed Jun 26 16:09:27 2019 +0300 KVM: nVMX: Change KVM_STATE_NESTED_EVMCS to signal vmcs12 is copied from eVMCS Currently KVM_STATE_NESTED_EVMCS is used to signal that eVMCS capability is enabled on vCPU. As indicated by vmx->nested.enlightened_vmcs_enabled. This is quite bizarre as userspace VMM should make sure to expose same vCPU with same CPUID values in both source and destination. In case vCPU is exposed with eVMCS support on CPUID, it is also expected to enable KVM_CAP_HYPERV_ENLIGHTENED_VMCS capability. Therefore, KVM_STATE_NESTED_EVMCS is redundant. KVM_STATE_NESTED_EVMCS is currently used on restore path (vmx_set_nested_state()) only to enable eVMCS capability in KVM and to signal need_vmcs12_sync such that on next VMEntry to guest nested_sync_from_vmcs12() will be called to sync vmcs12 content into eVMCS in guest memory. However, because restore nested-state is rare enough, we could have just modified vmx_set_nested_state() to always signal need_vmcs12_sync. From all the above, it seems that we could have just removed the usage of KVM_STATE_NESTED_EVMCS. However, in order to preserve backwards migration compatibility, we cannot do that. (vmx_get_nested_state() needs to signal flag when migrating from new kernel to old kernel). Returning KVM_STATE_NESTED_EVMCS when just vCPU have eVMCS enabled have a bad side-effect of userspace VMM having to send nested-state from source to destination as part of migration stream. Even if guest have never used eVMCS as it doesn't even run a nested hypervisor workload. This requires destination userspace VMM and KVM to support setting nested-state. Which make it more difficult to migrate from new host to older host. To avoid this, change KVM_STATE_NESTED_EVMCS to signal eVMCS is not only enabled but also active. i.e. Guest have made some eVMCS active via an enlightened VMEntry. i.e. vmcs12 is copied from eVMCS and therefore should be restored into eVMCS resident in memory (by copy_vmcs12_to_enlightened()). Reviewed-by: Vitaly Kuznetsov Reviewed-by: Maran Wilson Reviewed-by: Krish Sadhukhan Signed-off-by: Liran Alon Signed-off-by: Paolo Bonzini commit 65b712f1560abdd9ebec005e9bd17c21ecacc849 Author: Liran Alon Date: Tue Jun 25 14:26:42 2019 +0300 KVM: nVMX: Allow restore nested-state to enable eVMCS when vCPU in SMM As comment in code specifies, SMM temporarily disables VMX so we cannot be in guest mode, nor can VMLAUNCH/VMRESUME be pending. However, code currently assumes that these are the only flags that can be set on kvm_state->flags. This is not true as KVM_STATE_NESTED_EVMCS can also be set on this field to signal that eVMCS should be enabled. Therefore, fix code to check for guest-mode and pending VMLAUNCH/VMRESUME explicitly. Reviewed-by: Joao Martins Signed-off-by: Liran Alon Signed-off-by: Paolo Bonzini commit 3f16a5c318392cbb5a0c7a3d19dff8c8ef3c38ee Author: Paolo Bonzini Date: Wed Jun 26 14:16:13 2019 +0200 KVM: x86: degrade WARN to pr_warn_ratelimited This warning can be triggered easily by userspace, so it should certainly not cause a panic if panic_on_warn is set. Reported-by: syzbot+c03f30b4f4c46bdf8575@syzkaller.appspotmail.com Suggested-by: Alexander Potapenko Acked-by: Alexander Potapenko Signed-off-by: Paolo Bonzini commit 4f2fe646770774d02d52a514849c181c9e0970f6 Author: Bartosz Golaszewski Date: Tue Jun 25 17:16:12 2019 +0200 ARM: davinci: da830-evm: fix GPIO lookup for OHCI The fixed regulator driver doesn't specify any con_id for gpio lookup so it must be NULL in the table entry. Fixes: 274e4c336192 ("ARM: davinci: da830-evm: add a fixed regulator for ohci-da8xx") Cc: stable@vger.kernel.org Signed-off-by: Bartosz Golaszewski Signed-off-by: Sekhar Nori commit ed667776d6e652819f3f44d28cd79bdffac15141 Author: Bartosz Golaszewski Date: Tue Jun 25 18:49:15 2019 +0200 ARM: davinci: omapl138-hawk: add missing regulator constraints for OHCI We need to enable status changes for the fixed power supply for the USB controller. Fixes: 1d272894ec4f ("ARM: davinci: omapl138-hawk: add a fixed regulator for ohci-da8xx") Signed-off-by: Bartosz Golaszewski Signed-off-by: Sekhar Nori commit 018ad0523208ad86ec85d47ebb59abd91d3f0d8b Author: Bartosz Golaszewski Date: Tue Jun 25 18:49:14 2019 +0200 ARM: davinci: da830-evm: add missing regulator constraints for OHCI We need to enable status changes for the fixed power supply for the USB controller. Fixes: 274e4c336192 ("ARM: davinci: da830-evm: add a fixed regulator for ohci-da8xx") Signed-off-by: Bartosz Golaszewski Signed-off-by: Sekhar Nori commit c84c9029d782a3a0d2a7f0522ecb907314d43e2c Author: Chris Wilson Date: Fri Apr 19 12:17:47 2019 +0100 drm/i915/ringbuffer: EMIT_INVALIDATE *before* switch context Despite what I think the prm recommends, commit f2253bd9859b ("drm/i915/ringbuffer: EMIT_INVALIDATE after switch context") turned out to be a huge mistake when enabling Ironlake contexts as the GPU would hang on either a MI_FLUSH or PIPE_CONTROL immediately following the MI_SET_CONTEXT of an active mesa context (more vanilla contexts, e.g. simple rendercopies with igt, do not suffer). Ville found the following clue, "[DevCTG+]: For the invalidate operation of the pipe control, the following pointers are affected. The invalidate operation affects the restore of these packets. If the pipe control invalidate operation is completed before the context save, the indirect pointers will not be restored from memory. 1. Pipeline State Pointer 2. Media State Pointer 3. Constant Buffer Packet" which suggests by us emitting the INVALIDATE prior to the MI_SET_CONTEXT, we prevent the context-restore from chasing the dangling pointers within the image, and explains why this likely prevents the GPU hang. Signed-off-by: Chris Wilson Reviewed-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190419111749.3910-1-chris@chris-wilson.co.uk (cherry picked from commit 928f8f42310f244501a7c70daac82c196112c190 in drm-intel-next) Cc: stable@vger.kernel.org Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111014 Fixes: f2253bd9859b ("drm/i915/ringbuffer: EMIT_INVALIDATE after switch context") Signed-off-by: Daniel Vetter commit 521a503f5247de9a5cbc381f15c466a6c6f2793c Author: Arnd Bergmann Date: Mon Jun 17 15:01:05 2019 +0200 soc: ti: fix irq-ti-sci link error The irqchip driver depends on the SoC specific driver, but we want to be able to compile-test it elsewhere: WARNING: unmet direct dependencies detected for TI_SCI_INTA_MSI_DOMAIN Depends on [n]: SOC_TI [=n] Selected by [y]: - TI_SCI_INTA_IRQCHIP [=y] && TI_SCI_PROTOCOL [=y] drivers/irqchip/irq-ti-sci-inta.o: In function `ti_sci_inta_irq_domain_probe': irq-ti-sci-inta.c:(.text+0x204): undefined reference to `ti_sci_inta_msi_create_irq_domain' Rearrange the Kconfig and Makefile so we build the soc driver whenever its users are there, regardless of the SOC_TI option. Fixes: 49b323157bf1 ("soc: ti: Add MSI domain bus support for Interrupt Aggregator") Fixes: f011df6179bd ("irqchip/ti-sci-inta: Add msi domain support") Signed-off-by: Arnd Bergmann Reviewed-by: Lokesh Vutla Acked-by: Santosh Shilimkar Signed-off-by: Olof Johansson commit 180ae5095246402ed47d57568d8c31568c3c4f18 Merge: e73f65930f88 80031361747a Author: Olof Johansson Date: Mon Jul 1 15:14:09 2019 -0700 Merge tag 'mvebu-fixes-5.2-2' of git://git.infradead.org/linux-mvebu into arm/fixes mvebu fixes for 5.2 (part 2) Use the armada-38x-uart compatible strings for Armada XP 98dx3236 SoCs in order to not loose character anymore. * tag 'mvebu-fixes-5.2-2' of git://git.infradead.org/linux-mvebu: ARM: dts: armada-xp-98dx3236: Switch to armada-38x-uart serial node Signed-off-by: Olof Johansson commit 98482377dc7295d0c70e251925b7cc14aff4c5ac Author: Evan Green Date: Mon Jul 1 10:30:30 2019 -0700 ALSA: hda: Fix widget_mutex incomplete protection The widget_mutex was introduced to serialize callers to hda_widget_sysfs_{re}init. However, its protection of the sysfs widget array is incomplete. For example, it is acquired around the call to hda_widget_sysfs_reinit(), which actually creates the new array, but isn't still acquired when codec->num_nodes and codec->start_nid is updated. So the lock ensures one thread sets up the new array at a time, but doesn't ensure which thread's value will end up in codec->num_nodes. If a larger num_nodes wins but a smaller array was set up, the next call to refresh_widgets() will touch free memory as it iterates over codec->num_nodes that aren't there. The widget_lock really protects both the tree as well as codec->num_nodes, start_nid, and end_nid, so make sure it's held across that update. It should also be held during snd_hdac_get_sub_nodes(), so that a very old read from that function doesn't end up clobbering a later update. Fixes: ed180abba7f1 ("ALSA: hda: Fix race between creating and refreshing sysfs entries") Signed-off-by: Evan Green Signed-off-by: Takashi Iwai commit 25f09f858835b0e9a06213811031190a17d8ab78 Author: Alex Deucher Date: Mon Jul 1 08:38:12 2019 -0500 drm/amdgpu/gfx9: use reset default for PA_SC_FIFO_SIZE Recommended by the hw team. Reviewed-and-Tested-by: Huang Rui Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org commit 7fbd1753b64eafe21cf842348a40a691d0dee440 Author: Takashi Sakamoto Date: Mon Jul 1 23:43:53 2019 +0900 ALSA: firewire-lib/fireworks: fix miss detection of received MIDI messages In IEC 61883-6, 8 MIDI data streams are multiplexed into single MIDI conformant data channel. The index of stream is calculated by modulo 8 of the value of data block counter. In fireworks, the value of data block counter in CIP header has a quirk with firmware version v5.0.0, v5.7.3 and v5.8.0. This brings ALSA IEC 61883-1/6 packet streaming engine to miss detection of MIDI messages. This commit fixes the miss detection to modify the value of data block counter for the modulo calculation. For maintainers, this bug exists since a commit 18f5ed365d3f ("ALSA: fireworks/firewire-lib: add support for recent firmware quirk") in Linux kernel v4.2. There're many changes since the commit. This fix can be backported to Linux kernel v4.4 or later. I tagged a base commit to the backport for your convenience. Besides, my work for Linux kernel v5.3 brings heavy code refactoring and some structure members are renamed in 'sound/firewire/amdtp-stream.h'. The content of this patch brings conflict when merging -rc tree with this patch and the latest tree. I request maintainers to solve the conflict to replace 'tx_first_dbc' with 'ctx_data.tx.first_dbc'. Fixes: df075feefbd3 ("ALSA: firewire-lib: complete AM824 data block processing layer") Cc: # v4.4+ Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai commit 570d7a98e7d6d5d8706d94ffd2d40adeaa318332 Author: Eric Biggers Date: Sat Jun 29 13:27:44 2019 -0700 vfs: move_mount: reject moving kernel internal mounts sys_move_mount() crashes by dereferencing the pointer MNT_NS_INTERNAL, a.k.a. ERR_PTR(-EINVAL), if the old mount is specified by fd for a kernel object with an internal mount, such as a pipe or memfd. Fix it by checking for this case and returning -EINVAL. [AV: what we want is is_mounted(); use that instead of making the condition even more convoluted] Reproducer: #include #define __NR_move_mount 429 #define MOVE_MOUNT_F_EMPTY_PATH 0x00000004 int main() { int fds[2]; pipe(fds); syscall(__NR_move_mount, fds[0], "", -1, "/", MOVE_MOUNT_F_EMPTY_PATH); } Reported-by: syzbot+6004acbaa1893ad013f0@syzkaller.appspotmail.com Fixes: 2db154b3ea8e ("vfs: syscall: Add move_mount(2) to move mounts around") Signed-off-by: Eric Biggers Signed-off-by: Al Viro commit 28dd29c06d0dede4b32b2c559cff21955a830928 Author: Christian Brauner Date: Mon Jul 1 16:01:46 2019 +0200 fork: return proper negative error code Make sure to return a proper negative error code from copy_process() when anon_inode_getfile() fails with CLONE_PIDFD. Otherwise _do_fork() will not detect an error and get_task_pid() will operator on a nonsensical pointer: R10: 0000000000000000 R11: 0000000000000246 R12: 00000000006dbc2c R13: 00007ffc15fbb0ff R14: 00007ff07e47e9c0 R15: 0000000000000000 kasan: CONFIG_KASAN_INLINE enabled kasan: GPF could be caused by NULL-ptr deref or user memory access general protection fault: 0000 [#1] PREEMPT SMP KASAN CPU: 1 PID: 7990 Comm: syz-executor290 Not tainted 5.2.0-rc6+ #9 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 RIP: 0010:__read_once_size include/linux/compiler.h:194 [inline] RIP: 0010:get_task_pid+0xe1/0x210 kernel/pid.c:372 Code: 89 ff e8 62 27 5f 00 49 8b 07 44 89 f1 4c 8d bc c8 90 01 00 00 eb 0c e8 0d fe 25 00 49 81 c7 38 05 00 00 4c 89 f8 48 c1 e8 03 <80> 3c 18 00 74 08 4c 89 ff e8 31 27 5f 00 4d 8b 37 e8 f9 47 12 00 RSP: 0018:ffff88808a4a7d78 EFLAGS: 00010203 RAX: 00000000000000a7 RBX: dffffc0000000000 RCX: ffff888088180600 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000 RBP: ffff88808a4a7d90 R08: ffffffff814fb3a8 R09: ffffed1015d66bf8 R10: ffffed1015d66bf8 R11: 1ffff11015d66bf7 R12: 0000000000041ffc R13: 1ffff11011494fbc R14: 0000000000000000 R15: 000000000000053d FS: 00007ff07e47e700(0000) GS:ffff8880aeb00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00000000004b5100 CR3: 0000000094df2000 CR4: 00000000001406e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: _do_fork+0x1b9/0x5f0 kernel/fork.c:2360 __do_sys_clone kernel/fork.c:2454 [inline] __se_sys_clone kernel/fork.c:2448 [inline] __x64_sys_clone+0xc1/0xd0 kernel/fork.c:2448 do_syscall_64+0xfe/0x140 arch/x86/entry/common.c:301 entry_SYSCALL_64_after_hwframe+0x49/0xbe Link: https://lore.kernel.org/lkml/000000000000e0dc0d058c9e7142@google.com Reported-and-tested-by: syzbot+002e636502bc4b64eb5c@syzkaller.appspotmail.com Fixes: 6fd2fe494b17 ("copy_process(): don't use ksys_close() on cleanups") Cc: Jann Horn Cc: Al Viro Signed-off-by: Christian Brauner commit 688f3d1ebedffa310b6591bd1b63fa0770d945fe Author: Lyude Paul Date: Thu Jun 20 19:21:26 2019 -0400 drm/amdgpu: Don't skip display settings in hwmgr_resume() I'm not entirely sure why this is, but for some reason: 921935dc6404 ("drm/amd/powerplay: enforce display related settings only on needed") Breaks runtime PM resume on the Radeon PRO WX 3100 (Lexa) in one the pre-production laptops I have. The issue manifests as the following messages in dmesg: [drm] UVD and UVD ENC initialized successfully. amdgpu 0000:3b:00.0: [drm:amdgpu_ring_test_helper [amdgpu]] *ERROR* ring vce1 test failed (-110) [drm:amdgpu_device_ip_resume_phase2 [amdgpu]] *ERROR* resume of IP block failed -110 [drm:amdgpu_device_resume [amdgpu]] *ERROR* amdgpu_device_ip_resume failed (-110). And happens after about 6-10 runtime PM suspend/resume cycles (sometimes sooner, if you're lucky!). Unfortunately I can't seem to pin down precisely which part in psm_adjust_power_state_dynamic that is causing the issue, but not skipping the display setting setup seems to fix it. Hopefully if there is a better fix for this, this patch will spark discussion around it. Fixes: 921935dc6404 ("drm/amd/powerplay: enforce display related settings only on needed") Cc: Evan Quan Cc: Alex Deucher Cc: Huang Rui Cc: Rex Zhu Cc: Likun Gao Cc: # v5.1+ Signed-off-by: Lyude Paul Signed-off-by: Alex Deucher commit f78c581e22d4b33359ac3462e8d0504735df01f4 Author: Evan Quan Date: Thu Jun 27 11:01:04 2019 +0800 drm/amd/powerplay: use hardware fan control if no powerplay fan table Otherwise, you may get divided-by-zero error or corrput the SMU fan control feature. Signed-off-by: Evan Quan Reviewed-by: Alex Deucher Tested-by: Slava Abramov Acked-by: Slava Abramov Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org commit c403ec33b613a15d9fd8dde37f246b79cd56b5df Author: Paul Cercueil Date: Sat Jun 29 03:22:48 2019 +0200 mtd: rawnand: ingenic: Fix ingenic_ecc dependency If MTD_NAND_JZ4780 is y and MTD_NAND_JZ4780_BCH is m, which select CONFIG_MTD_NAND_INGENIC_ECC to m, building fails: drivers/mtd/nand/raw/ingenic/ingenic_nand.o: In function `ingenic_nand_remove': ingenic_nand.c:(.text+0x177): undefined reference to `ingenic_ecc_release' drivers/mtd/nand/raw/ingenic/ingenic_nand.o: In function `ingenic_nand_ecc_correct': ingenic_nand.c:(.text+0x2ee): undefined reference to `ingenic_ecc_correct' To fix that, the ingenic_nand and ingenic_ecc modules have been fused into one single module. - The ingenic_ecc.c code is now compiled in only if $(CONFIG_MTD_NAND_INGENIC_ECC) is set. This is now a boolean instead of tristate. - To avoid changing the module name, the ingenic_nand.c file is moved to ingenic_nand_drv.c. Then the module name is still ingenic_nand. - Since ingenic_ecc.c is no more a module, the module-specific macros have been dropped, and the functions are no more exported for use by the ingenic_nand driver. Fixes: 15de8c6efd0e ("mtd: rawnand: ingenic: Separate top-level and SoC specific code") Signed-off-by: Paul Cercueil Reported-by: Arnd Bergmann Reported-by: Hulk Robot Cc: YueHaibing Cc: stable@vger.kernel.org Signed-off-by: Miquel Raynal commit a126483e82957172b8a93ebb1d30fb2b1df3cbbc Author: Frieder Schrempf Date: Thu Jun 6 17:07:55 2019 +0000 mtd: spinand: Fix max_bad_eraseblocks_per_lun info in memorg The 1Gb Macronix chip can have a maximum of 20 bad blocks, while the 2Gb version has twice as many blocks and therefore the maximum number of bad blocks is 40. The 4Gb GigaDevice GD5F4GQ4xA has twice as many blocks as its 2Gb counterpart and therefore a maximum of 80 bad blocks. Fixes: 377e517b5fa5 ("mtd: nand: Add max_bad_eraseblocks_per_lun info to memorg") Reported-by: Emil Lenngren Signed-off-by: Frieder Schrempf Signed-off-by: Miquel Raynal commit 6fbc7275c7a9ba97877050335f290341a1fd8dbf Author: Linus Torvalds Date: Sun Jun 30 11:25:36 2019 +0800 Linux 5.2-rc7 commit 39132f746eceed6beecb16c7b79600fb54eb8b2b Merge: 7c15f41e8743 e13e7cd4c0c1 Author: Linus Torvalds Date: Sun Jun 30 11:20:52 2019 +0800 Merge tag 'powerpc-5.2-7' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc fix from Michael Ellerman: "One fix for a regression in my commit adding KUAP (Kernel User Access Prevention) on Radix, which incorrectly touched the AMR in the early machine check handler. Thanks to Nicholas Piggin" * tag 'powerpc-5.2-7' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: powerpc/64s/exception: Fix machine check early corrupting AMR commit 7c15f41e8743df676f6cb0615e74e8ba30994d6a Merge: 728254541ebc 33d4a5a7a5b4 Author: Linus Torvalds Date: Sun Jun 30 11:19:17 2019 +0800 Merge branch 'smp-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull SMP fixes from Thomas Gleixner: "Two small changes for the cpu hotplug code: - Prevent out of bounds access which actually might crash the machine caused by a missing bounds check in the fail injection code - Warn about unsupported migitation mode command line arguments to make people aware that they typoed the paramater. Not necessarily a fix but quite some people tripped over that" * 'smp-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: cpu/hotplug: Fix out-of-bounds read when setting fail state cpu/speculation: Warn on unsupported mitigations= parameter commit 728254541ebcc7fee869c3c4c3f36f96be791edb Merge: 57103eb7c6ca ae6a45a08689 Author: Linus Torvalds Date: Sat Jun 29 19:42:30 2019 +0800 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 fixes from Ingo Molnar: "Misc fixes all over the place: - might_sleep() atomicity fix in the microcode loader - resctrl boundary condition fix - APIC arithmethics bug fix for frequencies >= 4.2 GHz - three 5-level paging crash fixes - two speculation fixes - a perf/stacktrace fix" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/unwind/orc: Fall back to using frame pointers for generated code perf/x86: Always store regs->ip in perf_callchain_kernel() x86/speculation: Allow guests to use SSBD even if host does not x86/mm: Handle physical-virtual alignment mismatch in phys_p4d_init() x86/boot/64: Add missing fixup_pointer() for next_early_pgt access x86/boot/64: Fix crash if kernel image crosses page table boundary x86/apic: Fix integer overflow on 10 bit left shift of cpu_khz x86/resctrl: Prevent possible overrun during bitmap operations x86/microcode: Fix the microcode load on CPU hotplug for real commit 57103eb7c6cad04c0611b7a5767a381b34b8b0ab Merge: eed7d30e126d 8b12b812f536 Author: Linus Torvalds Date: Sat Jun 29 19:39:17 2019 +0800 Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull perf fixes from Ingo Molnar: "Various fixes, most of them related to bugs perf fuzzing found in the x86 code" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf/x86/regs: Use PERF_REG_EXTENDED_MASK perf/x86: Remove pmu->pebs_no_xmm_regs perf/x86: Clean up PEBS_XMM_REGS perf/x86/regs: Check reserved bits perf/x86: Disable extended registers for non-supported PMUs perf/ioctl: Add check for the sample_period value perf/core: Fix perf_sample_regs_user() mm check commit eed7d30e126dc5b883b77f3e26bbca6c5b0f4222 Merge: a7211bc9f3d5 a52548dd0491 Author: Linus Torvalds Date: Sat Jun 29 19:36:53 2019 +0800 Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull irq fixes from Ingo Molnar: "Diverse irqchip driver fixes" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/gic-v3-its: Fix command queue pointer comparison bug irqchip/mips-gic: Use the correct local interrupt map registers irqchip/ti-sci-inta: Fix kernel crash if irq_create_fwspec_mapping fail irqchip/irq-csky-mpintc: Support auto irq deliver to all cpus commit a7211bc9f3d50d77efe77c332b269458a94fcfd2 Merge: 2407e486066b 48c7d73b2362 Author: Linus Torvalds Date: Sat Jun 29 19:32:09 2019 +0800 Merge branch 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull EFI fixes from Ingo Molnar: "Four fixes: - fix a kexec crash on arm64 - fix a reboot crash on some Android platforms - future-proof the code for upcoming ACPI 6.2 changes - fix a build warning on x86" * 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: efibc: Replace variable set function in notifier call x86/efi: fix a -Wtype-limits compilation warning efi/bgrt: Drop BGRT status field reserved bits check efi/memreserve: deal with memreserve entries in unmapped memory commit 2407e486066b8ce00dabd7e2b3a2cbcc59ea6186 Merge: 01305db842e1 471a739a47aa Author: Linus Torvalds Date: Sat Jun 29 19:29:45 2019 +0800 Merge tag 'pm-5.2-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull power management fix from Rafael Wysocki: "Avoid skipping bus-level PCI power management during system resume for PCIe ports left in D0 during the preceding suspend transition on platforms where the power states of those ports can change out of the PCI layer's control" * tag 'pm-5.2-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: PCI: PM: Avoid skipping bus-level PM on platforms without ACPI commit 01305db842e1e637944090a3de7e4259c4a3a029 Merge: 0839c537628d 12fd2aee6db7 Author: Linus Torvalds Date: Sat Jun 29 17:14:57 2019 +0800 Merge tag 'xarray-5.2-rc6' of git://git.infradead.org/users/willy/linux-dax Pull XArray fixes from Matthew Wilcox: - Account XArray nodes for the page cache to the appropriate cgroup (Johannes Weiner) - Fix idr_get_next() when called under the RCU lock (Matthew Wilcox) - Add a test for xa_insert() (Matthew Wilcox) * tag 'xarray-5.2-rc6' of git://git.infradead.org/users/willy/linux-dax: XArray tests: Add check_insert idr: Fix idr_get_next race with idr_remove mm: fix page cache convergence regression commit 0839c537628df5a3b713d0f619b2dcc8469f08c0 Merge: f8b5c7222761 8f9fab480c7a Author: Linus Torvalds Date: Sat Jun 29 17:11:01 2019 +0800 Merge branch 'akpm' (patches from Andrew) Merge misc fixes from Andrew Morton: "15 fixes" * emailed patches from Andrew Morton : linux/kernel.h: fix overflow for DIV_ROUND_UP_ULL mm, swap: fix THP swap out fork,memcg: alloc_thread_stack_node needs to set tsk->stack MAINTAINERS: add CLANG/LLVM BUILD SUPPORT info mm/vmalloc.c: avoid bogus -Wmaybe-uninitialized warning mm/page_idle.c: fix oops because end_pfn is larger than max_pfn initramfs: fix populate_initrd_image() section mismatch mm/oom_kill.c: fix uninitialized oc->constraint mm: hugetlb: soft-offline: dissolve_free_huge_page() return zero on !PageHuge mm: soft-offline: return -EBUSY if set_hwpoison_free_buddy_page() fails signal: remove the wrong signal_pending() check in restore_user_sigmask() fs/binfmt_flat.c: make load_flat_shared_library() work mm/mempolicy.c: fix an incorrect rebind node in mpol_rebind_nodemask fs/proc/array.c: allow reporting eip/esp for all coredumping threads mm/dev_pfn: exclude MEMORY_DEVICE_PRIVATE while computing virtual address commit f8b5c72227618780f49e53fb77b0e7ddb2996552 Merge: c57582adfda3 ec9b4feb1e41 Author: Linus Torvalds Date: Sat Jun 29 17:05:58 2019 +0800 Merge tag 'arc-5.2-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc Pull ARC fixes from Vineet Gupta: - hsdk platform unifying apertures - build system CROSS_COMPILE prefix * tag 'arc-5.2-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: ARC: [plat-hsdk]: unify memory apertures configuration ARC: build: Try to guess CROSS_COMPILE with cc-cross-prefix commit c57582adfda3e7026796fbde81e951ea72edbb66 Merge: c949c30b2640 0db7f5cd4aeb Author: Linus Torvalds Date: Sat Jun 29 17:04:21 2019 +0800 Merge tag 'riscv-for-v5.2/fixes-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux Pull RISC-V fixes from Paul Walmsley: "Minor RISC-V fixes and one defconfig update. The fixes have no functional impact: - Fix some comment text in the memory management vmalloc_fault path. - Fix some warnings from the DT compiler in our newly-added DT files. - Change the newly-added DT bindings such that SoC IP blocks with external I/O are marked as "disabled" by default, then enable them explicitly in board DT files when the devices are used on the board. This aligns the bindings with existing upstream practice. - Add the MIT license as an option for a minor header file, at the request of one of the U-Boot maintainers. The RISC-V defconfig update builds the SiFive SPI driver and the MMC-SPI driver by default. The intention here is to make v5.2 more usable for testers and users with RISC-V hardware" * tag 'riscv-for-v5.2/fixes-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: riscv: mm: Fix code comment dt-bindings: clock: sifive: add MIT license as an option for the header file dt-bindings: riscv: resolve 'make dt_binding_check' warnings riscv: dts: Re-organize the DT nodes RISC-V: defconfig: enable MMC & SPI for RISC-V commit c949c30b2640e52b580e1a230e3561d1662195ba Merge: 43251dbd6ac2 68f461593f76 Author: Linus Torvalds Date: Sat Jun 29 17:02:22 2019 +0800 Merge tag 'nfs-for-5.2-4' of git://git.linux-nfs.org/projects/anna/linux-nfs Pull two more NFS client fixes from Anna Schumaker: "These are both stable fixes. One to calculate the correct client message length in the case of partial transmissions. And the other to set the proper TCP timeout for flexfiles" * tag 'nfs-for-5.2-4' of git://git.linux-nfs.org/projects/anna/linux-nfs: NFS/flexfiles: Use the correct TCP timeout for flexfiles I/O SUNRPC: Fix up calculation of client message length commit 43251dbd6ac278a8bdaaee43ec5e299c1a5dafdd Merge: 5b607ba862f3 d6b8bd679c9c Author: Linus Torvalds Date: Sat Jun 29 17:01:02 2019 +0800 Merge tag 'ceph-for-5.2-rc7' of git://github.com/ceph/ceph-client Pull ceph fix from Ilya Dryomov: "A small fix for a potential -rc1 regression from Jeff" * tag 'ceph-for-5.2-rc7' of git://github.com/ceph/ceph-client: ceph: fix ceph_mdsc_build_path to not stop on first component commit 5b607ba862f30364aef0b0d40cab8afccf339616 Merge: 9dda12b6fa0e 240b4cc8fd5d Author: Linus Torvalds Date: Sat Jun 29 16:59:45 2019 +0800 Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fix from James Bottomley: "One simple fix for a driver use after free" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: vmw_pscsi: Fix use-after-free in pvscsi_queue_lck() commit 9dda12b6fa0eba6b1fd32399b599d05765893dae Merge: 061913712d6a e6feaf215f07 Author: Linus Torvalds Date: Sat Jun 29 16:58:35 2019 +0800 Merge tag 'for-linus-20190628' of git://git.kernel.dk/linux-block Pull block fixes from Jens Axboe: "Just two small fixes. One from Paolo, fixing a silly mistake in BFQ. The other one is from me, ensuring that we have ->file cleared in the io_uring request a bit earlier. That avoids a use-before-free, if we encounter an error before ->file is assigned" * tag 'for-linus-20190628' of git://git.kernel.dk/linux-block: block, bfq: fix operator in BFQQ_TOTALLY_SEEKY io_uring: ensure req->file is cleared on allocation commit 061913712d6ab77c77192584912afdbd8267c54c Merge: 556e2f6020bf 9d957a959bc8 Author: Linus Torvalds Date: Sat Jun 29 16:51:10 2019 +0800 Merge tag 'pinctrl-v5.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl Pull pin control fixes from Linus Walleij: "Sorry to bomb in fixes this late. Maybe I can comfort you by saying it is only driver fixes, and mostly IRQ handling which is something GPIO and pin control drivers never get right. You think it works and then it doesn't. Summary: - Fix IRQ setup in the MCP23s08. - Fix pin setup on pins > 31 in the Ocelot driver. - Fix IRQs in the Mediatek driver" * tag 'pinctrl-v5.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: pinctrl: mediatek: Update cur_mask in mask/mask ops pinctrl: mediatek: Ignore interrupts that are wake only during resume pinctrl: ocelot: fix pinmuxing for pins after 31 pinctrl: ocelot: fix gpio direction for pins after 31 pinctrl: mcp23s08: Fix add_data and irqchip_add_nested call order commit 8f9fab480c7a87b10bb5440b5555f370272a5d59 Author: Vinod Koul Date: Fri Jun 28 12:07:21 2019 -0700 linux/kernel.h: fix overflow for DIV_ROUND_UP_ULL DIV_ROUND_UP_ULL adds the two arguments and then invokes DIV_ROUND_DOWN_ULL. But on a 32bit system the addition of two 32 bit values can overflow. DIV_ROUND_DOWN_ULL does it correctly and stashes the addition into a unsigned long long so cast the result to unsigned long long here to avoid the overflow condition. [akpm@linux-foundation.org: DIV_ROUND_UP_ULL must be an rval] Link: http://lkml.kernel.org/r/20190625100518.30753-1-vkoul@kernel.org Signed-off-by: Vinod Koul Reviewed-by: Andrew Morton Cc: Bjorn Andersson Cc: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1a5f439c7c02837d943e528d46501564d4226757 Author: Huang Ying Date: Fri Jun 28 12:07:18 2019 -0700 mm, swap: fix THP swap out 0-Day test system reported some OOM regressions for several THP (Transparent Huge Page) swap test cases. These regressions are bisected to 6861428921b5 ("block: always define BIO_MAX_PAGES as 256"). In the commit, BIO_MAX_PAGES is set to 256 even when THP swap is enabled. So the bio_alloc(gfp_flags, 512) in get_swap_bio() may fail when swapping out THP. That causes the OOM. As in the patch description of 6861428921b5 ("block: always define BIO_MAX_PAGES as 256"), THP swap should use multi-page bvec to write THP to swap space. So the issue is fixed via doing that in get_swap_bio(). BTW: I remember I have checked the THP swap code when 6861428921b5 ("block: always define BIO_MAX_PAGES as 256") was merged, and thought the THP swap code needn't to be changed. But apparently, I was wrong. I should have done this at that time. Link: http://lkml.kernel.org/r/20190624075515.31040-1-ying.huang@intel.com Fixes: 6861428921b5 ("block: always define BIO_MAX_PAGES as 256") Signed-off-by: "Huang, Ying" Reviewed-by: Ming Lei Cc: Michal Hocko Cc: Johannes Weiner Cc: Hugh Dickins Cc: Minchan Kim Cc: Rik van Riel Cc: Daniel Jordan Cc: Jens Axboe Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1bf4580e00a248a2c86269125390eb3648e1877c Author: Andrea Arcangeli Date: Fri Jun 28 12:07:14 2019 -0700 fork,memcg: alloc_thread_stack_node needs to set tsk->stack Commit 5eed6f1dff87 ("fork,memcg: fix crash in free_thread_stack on memcg charge fail") corrected two instances, but there was a third instance of this bug. Without setting tsk->stack, if memcg_charge_kernel_stack fails, it'll execute free_thread_stack() on a dangling pointer. Enterprise kernels are compiled with VMAP_STACK=y so this isn't critical, but custom VMAP_STACK=n builds should have some performance advantage, with the drawback of risking to fail fork because compaction didn't succeed. So as long as VMAP_STACK=n is a supported option it's worth fixing it upstream. Link: http://lkml.kernel.org/r/20190619011450.28048-1-aarcange@redhat.com Fixes: 9b6f7e163cd0 ("mm: rework memcg kernel stack accounting") Signed-off-by: Andrea Arcangeli Reviewed-by: Rik van Riel Acked-by: Roman Gushchin Acked-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8708e13c6a0600625eea3aebd027c0715a5d2bb2 Author: Nick Desaulniers Date: Fri Jun 28 12:07:12 2019 -0700 MAINTAINERS: add CLANG/LLVM BUILD SUPPORT info Add keyword support so that our mailing list gets cc'ed for clang/llvm patches. We're pretty active on our mailing list so far as code review. There are numerous Googlers like myself that are paid to support building the Linux kernel with Clang and LLVM. Link: http://lkml.kernel.org/r/20190620001907.255803-1-ndesaulniers@google.com Signed-off-by: Nick Desaulniers Reviewed-by: Nathan Chancellor Cc: Joe Perches Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2c9292336a09f7bf019689580ceea9a2d116b999 Author: Arnd Bergmann Date: Fri Jun 28 12:07:09 2019 -0700 mm/vmalloc.c: avoid bogus -Wmaybe-uninitialized warning gcc gets confused in pcpu_get_vm_areas() because there are too many branches that affect whether 'lva' was initialized before it gets used: mm/vmalloc.c: In function 'pcpu_get_vm_areas': mm/vmalloc.c:991:4: error: 'lva' may be used uninitialized in this function [-Werror=maybe-uninitialized] insert_vmap_area_augment(lva, &va->rb_node, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ &free_vmap_area_root, &free_vmap_area_list); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ mm/vmalloc.c:916:20: note: 'lva' was declared here struct vmap_area *lva; ^~~ Add an intialization to NULL, and check whether this has changed before the first use. [akpm@linux-foundation.org: tweak comments] Link: http://lkml.kernel.org/r/20190618092650.2943749-1-arnd@arndb.de Fixes: 68ad4a330433 ("mm/vmalloc.c: keep track of free blocks for vmap allocation") Signed-off-by: Arnd Bergmann Reviewed-by: Uladzislau Rezki (Sony) Cc: Joel Fernandes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7298e3b0a149c91323b3205d325e942c3b3b9ef6 Author: Colin Ian King Date: Fri Jun 28 12:07:05 2019 -0700 mm/page_idle.c: fix oops because end_pfn is larger than max_pfn Currently the calcuation of end_pfn can round up the pfn number to more than the actual maximum number of pfns, causing an Oops. Fix this by ensuring end_pfn is never more than max_pfn. This can be easily triggered when on systems where the end_pfn gets rounded up to more than max_pfn using the idle-page stress-ng stress test: sudo stress-ng --idle-page 0 BUG: unable to handle kernel paging request at 00000000000020d8 #PF error: [normal kernel read fault] PGD 0 P4D 0 Oops: 0000 [#1] SMP PTI CPU: 1 PID: 11039 Comm: stress-ng-idle- Not tainted 5.0.0-5-generic #6-Ubuntu Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014 RIP: 0010:page_idle_get_page+0xc8/0x1a0 Code: 0f b1 0a 75 7d 48 8b 03 48 89 c2 48 c1 e8 33 83 e0 07 48 c1 ea 36 48 8d 0c 40 4c 8d 24 88 49 c1 e4 07 4c 03 24 d5 00 89 c3 be <49> 8b 44 24 58 48 8d b8 80 a1 02 00 e8 07 d5 77 00 48 8b 53 08 48 RSP: 0018:ffffafd7c672fde8 EFLAGS: 00010202 RAX: 0000000000000005 RBX: ffffe36341fff700 RCX: 000000000000000f RDX: 0000000000000284 RSI: 0000000000000275 RDI: 0000000001fff700 RBP: ffffafd7c672fe00 R08: ffffa0bc34056410 R09: 0000000000000276 R10: ffffa0bc754e9b40 R11: ffffa0bc330f6400 R12: 0000000000002080 R13: ffffe36341fff700 R14: 0000000000080000 R15: ffffa0bc330f6400 FS: 00007f0ec1ea5740(0000) GS:ffffa0bc7db00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00000000000020d8 CR3: 0000000077d68000 CR4: 00000000000006e0 Call Trace: page_idle_bitmap_write+0x8c/0x140 sysfs_kf_bin_write+0x5c/0x70 kernfs_fop_write+0x12e/0x1b0 __vfs_write+0x1b/0x40 vfs_write+0xab/0x1b0 ksys_write+0x55/0xc0 __x64_sys_write+0x1a/0x20 do_syscall_64+0x5a/0x110 entry_SYSCALL_64_after_hwframe+0x44/0xa9 Link: http://lkml.kernel.org/r/20190618124352.28307-1-colin.king@canonical.com Fixes: 33c3fc71c8cf ("mm: introduce idle page tracking") Signed-off-by: Colin Ian King Reviewed-by: Andrew Morton Acked-by: Vladimir Davydov Cc: Michal Hocko Cc: Mike Rapoport Cc: Mel Gorman Cc: Stephen Rothwell Cc: Andrey Ryabinin Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4ada1e810038e9dbc20e40b524e05ee1a9d31f98 Author: Geert Uytterhoeven Date: Fri Jun 28 12:07:03 2019 -0700 initramfs: fix populate_initrd_image() section mismatch With gcc-4.6.3: WARNING: vmlinux.o(.text.unlikely+0x140): Section mismatch in reference from the function populate_initrd_image() to the variable .init.ramfs.info:__initramfs_size The function populate_initrd_image() references the variable __init __initramfs_size. This is often because populate_initrd_image lacks a __init annotation or the annotation of __initramfs_size is wrong. WARNING: vmlinux.o(.text.unlikely+0x14c): Section mismatch in reference from the function populate_initrd_image() to the function .init.text:unpack_to_rootfs() The function populate_initrd_image() references the function __init unpack_to_rootfs(). This is often because populate_initrd_image lacks a __init annotation or the annotation of unpack_to_rootfs is wrong. WARNING: vmlinux.o(.text.unlikely+0x198): Section mismatch in reference from the function populate_initrd_image() to the function .init.text:xwrite() The function populate_initrd_image() references the function __init xwrite(). This is often because populate_initrd_image lacks a __init annotation or the annotation of xwrite is wrong. Indeed, if the compiler decides not to inline populate_initrd_image(), a warning is generated. Fix this by adding the missing __init annotations. Link: http://lkml.kernel.org/r/20190617074340.12779-1-geert@linux-m68k.org Fixes: 7c184ecd262fe64f ("initramfs: factor out a helper to populate the initrd image") Signed-off-by: Geert Uytterhoeven Reviewed-by: Christoph Hellwig Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 432b1de0de02a83f64695e69a2d83cbee10c236f Author: Yafang Shao Date: Fri Jun 28 12:06:59 2019 -0700 mm/oom_kill.c: fix uninitialized oc->constraint In dump_oom_summary() oc->constraint is used to show oom_constraint_text, but it hasn't been set before. So the value of it is always the default value 0. We should inititialize it before. Bellow is the output when memcg oom occurs, before this patch: oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null), cpuset=/,mems_allowed=0,oom_memcg=/foo,task_memcg=/foo,task=bash,pid=7997,uid=0 after this patch: oom-kill:constraint=CONSTRAINT_MEMCG,nodemask=(null), cpuset=/,mems_allowed=0,oom_memcg=/foo,task_memcg=/foo,task=bash,pid=13681,uid=0 Link: http://lkml.kernel.org/r/1560522038-15879-1-git-send-email-laoar.shao@gmail.com Fixes: ef8444ea01d7 ("mm, oom: reorganize the oom report in dump_header") Signed-off-by: Yafang Shao Acked-by: Michal Hocko Cc: Wind Yu Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit faf53def3b143df11062d87c12afe6afeb6f8cc7 Author: Naoya Horiguchi Date: Fri Jun 28 12:06:56 2019 -0700 mm: hugetlb: soft-offline: dissolve_free_huge_page() return zero on !PageHuge madvise(MADV_SOFT_OFFLINE) often returns -EBUSY when calling soft offline for hugepages with overcommitting enabled. That was caused by the suboptimal code in current soft-offline code. See the following part: ret = migrate_pages(&pagelist, new_page, NULL, MPOL_MF_MOVE_ALL, MIGRATE_SYNC, MR_MEMORY_FAILURE); if (ret) { ... } else { /* * We set PG_hwpoison only when the migration source hugepage * was successfully dissolved, because otherwise hwpoisoned * hugepage remains on free hugepage list, then userspace will * find it as SIGBUS by allocation failure. That's not expected * in soft-offlining. */ ret = dissolve_free_huge_page(page); if (!ret) { if (set_hwpoison_free_buddy_page(page)) num_poisoned_pages_inc(); } } return ret; Here dissolve_free_huge_page() returns -EBUSY if the migration source page was freed into buddy in migrate_pages(), but even in that case we actually has a chance that set_hwpoison_free_buddy_page() succeeds. So that means current code gives up offlining too early now. dissolve_free_huge_page() checks that a given hugepage is suitable for dissolving, where we should return success for !PageHuge() case because the given hugepage is considered as already dissolved. This change also affects other callers of dissolve_free_huge_page(), which are cleaned up together. [n-horiguchi@ah.jp.nec.com: v3] Link: http://lkml.kernel.org/r/1560761476-4651-3-git-send-email-n-horiguchi@ah.jp.nec.comLink: http://lkml.kernel.org/r/1560154686-18497-3-git-send-email-n-horiguchi@ah.jp.nec.com Fixes: 6bc9b56433b76 ("mm: fix race on soft-offlining") Signed-off-by: Naoya Horiguchi Reported-by: Chen, Jerry T Tested-by: Chen, Jerry T Reviewed-by: Mike Kravetz Reviewed-by: Oscar Salvador Cc: Michal Hocko Cc: Xishi Qiu Cc: "Chen, Jerry T" Cc: "Zhuo, Qiuxu" Cc: [4.19+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b38e5962f8ed0d2a2b28a887fc2221f7f41db119 Author: Naoya Horiguchi Date: Fri Jun 28 12:06:53 2019 -0700 mm: soft-offline: return -EBUSY if set_hwpoison_free_buddy_page() fails The pass/fail of soft offline should be judged by checking whether the raw error page was finally contained or not (i.e. the result of set_hwpoison_free_buddy_page()), but current code do not work like that. It might lead us to misjudge the test result when set_hwpoison_free_buddy_page() fails. Without this fix, there are cases where madvise(MADV_SOFT_OFFLINE) may not offline the original page and will not return an error. Link: http://lkml.kernel.org/r/1560154686-18497-2-git-send-email-n-horiguchi@ah.jp.nec.com Signed-off-by: Naoya Horiguchi Fixes: 6bc9b56433b76 ("mm: fix race on soft-offlining") Reviewed-by: Mike Kravetz Reviewed-by: Oscar Salvador Cc: Michal Hocko Cc: Xishi Qiu Cc: "Chen, Jerry T" Cc: "Zhuo, Qiuxu" Cc: [4.19+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 97abc889ee296faf95ca0e978340fb7b942a3e32 Author: Oleg Nesterov Date: Fri Jun 28 12:06:50 2019 -0700 signal: remove the wrong signal_pending() check in restore_user_sigmask() This is the minimal fix for stable, I'll send cleanups later. Commit 854a6ed56839 ("signal: Add restore_user_sigmask()") introduced the visible change which breaks user-space: a signal temporary unblocked by set_user_sigmask() can be delivered even if the caller returns success or timeout. Change restore_user_sigmask() to accept the additional "interrupted" argument which should be used instead of signal_pending() check, and update the callers. Eric said: : For clarity. I don't think this is required by posix, or fundamentally to : remove the races in select. It is what linux has always done and we have : applications who care so I agree this fix is needed. : : Further in any case where the semantic change that this patch rolls back : (aka where allowing a signal to be delivered and the select like call to : complete) would be advantage we can do as well if not better by using : signalfd. : : Michael is there any chance we can get this guarantee of the linux : implementation of pselect and friends clearly documented. The guarantee : that if the system call completes successfully we are guaranteed that no : signal that is unblocked by using sigmask will be delivered? Link: http://lkml.kernel.org/r/20190604134117.GA29963@redhat.com Fixes: 854a6ed56839a40f6b5d02a2962f48841482eec4 ("signal: Add restore_user_sigmask()") Signed-off-by: Oleg Nesterov Reported-by: Eric Wong Tested-by: Eric Wong Acked-by: "Eric W. Biederman" Acked-by: Arnd Bergmann Acked-by: Deepa Dinamani Cc: Michael Kerrisk Cc: Jens Axboe Cc: Davidlohr Bueso Cc: Jason Baron Cc: Thomas Gleixner Cc: Al Viro Cc: David Laight Cc: [5.0+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 867bfa4a5fcee66f2b25639acae718e8b28b25a5 Author: Jann Horn Date: Fri Jun 28 12:06:46 2019 -0700 fs/binfmt_flat.c: make load_flat_shared_library() work load_flat_shared_library() is broken: It only calls load_flat_file() if prepare_binprm() returns zero, but prepare_binprm() returns the number of bytes read - so this only happens if the file is empty. Instead, call into load_flat_file() if the number of bytes read is non-negative. (Even if the number of bytes is zero - in that case, load_flat_file() will see nullbytes and return a nice -ENOEXEC.) In addition, remove the code related to bprm creds and stop using prepare_binprm() - this code is loading a library, not a main executable, and it only actually uses the members "buf", "file" and "filename" of the linux_binprm struct. Instead, call kernel_read() directly. Link: http://lkml.kernel.org/r/20190524201817.16509-1-jannh@google.com Fixes: 287980e49ffc ("remove lots of IS_ERR_VALUE abuses") Signed-off-by: Jann Horn Cc: Alexander Viro Cc: Kees Cook Cc: Nicolas Pitre Cc: Arnd Bergmann Cc: Geert Uytterhoeven Cc: Russell King Cc: Greg Ungerer Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 29b190fa774dd1b72a1a6f19687d55dc72ea83be Author: zhong jiang Date: Fri Jun 28 12:06:43 2019 -0700 mm/mempolicy.c: fix an incorrect rebind node in mpol_rebind_nodemask mpol_rebind_nodemask() is called for MPOL_BIND and MPOL_INTERLEAVE mempoclicies when the tasks's cpuset's mems_allowed changes. For policies created without MPOL_F_STATIC_NODES or MPOL_F_RELATIVE_NODES, it works by remapping the policy's allowed nodes (stored in v.nodes) using the previous value of mems_allowed (stored in w.cpuset_mems_allowed) as the domain of map and the new mems_allowed (passed as nodes) as the range of the map (see the comment of bitmap_remap() for details). The result of remapping is stored back as policy's nodemask in v.nodes, and the new value of mems_allowed should be stored in w.cpuset_mems_allowed to facilitate the next rebind, if it happens. However, 213980c0f23b ("mm, mempolicy: simplify rebinding mempolicies when updating cpusets") introduced a bug where the result of remapping is stored in w.cpuset_mems_allowed instead. Thus, a mempolicy's allowed nodes can evolve in an unexpected way after a series of rebinding due to cpuset mems_allowed changes, possibly binding to a wrong node or a smaller number of nodes which may e.g. overload them. This patch fixes the bug so rebinding again works as intended. [vbabka@suse.cz: new changlog] Link: http://lkml.kernel.org/r/ef6a69c6-c052-b067-8f2c-9d615c619bb9@suse.cz Link: http://lkml.kernel.org/r/1558768043-23184-1-git-send-email-zhongjiang@huawei.com Fixes: 213980c0f23b ("mm, mempolicy: simplify rebinding mempolicies when updating cpusets") Signed-off-by: zhong jiang Reviewed-by: Vlastimil Babka Cc: Oscar Salvador Cc: Anshuman Khandual Cc: Michal Hocko Cc: Mel Gorman Cc: Andrea Arcangeli Cc: Ralph Campbell Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cb8f381f1613cafe3aec30809991cd56e7135d92 Author: John Ogness Date: Fri Jun 28 12:06:40 2019 -0700 fs/proc/array.c: allow reporting eip/esp for all coredumping threads 0a1eb2d474ed ("fs/proc: Stop reporting eip and esp in /proc/PID/stat") stopped reporting eip/esp and fd7d56270b52 ("fs/proc: Report eip/esp in /prod/PID/stat for coredumping") reintroduced the feature to fix a regression with userspace core dump handlers (such as minicoredumper). Because PF_DUMPCORE is only set for the primary thread, this didn't fix the original problem for secondary threads. Allow reporting the eip/esp for all threads by checking for PF_EXITING as well. This is set for all the other threads when they are killed. coredump_wait() waits for all the tasks to become inactive before proceeding to invoke a core dumper. Link: http://lkml.kernel.org/r/87y32p7i7a.fsf@linutronix.de Link: http://lkml.kernel.org/r/20190522161614.628-1-jlu@pengutronix.de Fixes: fd7d56270b526ca3 ("fs/proc: Report eip/esp in /prod/PID/stat for coredumping") Signed-off-by: John Ogness Reported-by: Jan Luebbe Tested-by: Jan Luebbe Cc: Alexey Dobriyan Cc: Andy Lutomirski Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 36d6cb73d5e60cdb2724c21ccba93c964e6a16f9 Author: Anshuman Khandual Date: Fri Jun 28 12:06:37 2019 -0700 mm/dev_pfn: exclude MEMORY_DEVICE_PRIVATE while computing virtual address The presence of struct page does not guarantee linear mapping for the pfn physical range. Device private memory which is non-coherent is excluded from linear mapping during devm_memremap_pages() though they will still have struct page coverage. Change pfn_t_to_virt() to just check for device private memory before giving out virtual address for a given pfn. pfn_t_to_virt() actually has no callers. Let's fix it for the 5.2 kernel and remove it in 5.3. Link: http://lkml.kernel.org/r/1558089514-25067-1-git-send-email-anshuman.khandual@arm.com Signed-off-by: Anshuman Khandual Cc: Dan Williams Cc: Jérôme Glisse Cc: Laurent Dufour Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2f040d27080ddfffecff2be1a77107c494d0e4f4 Author: Boris Brezillon Date: Thu Jun 27 19:24:14 2019 +0200 drm/panfrost: Fix a double-free error drm_gem_shmem_create_with_handle() returns a GEM object and attach a handle to it. When the user closes the DRM FD, the core releases all GEM handles along with their backing GEM objs, which can lead to a double-free issue if panfrost_ioctl_create_bo() failed and went through the err_free path where drm_gem_object_put_unlocked() is called without deleting the associate handle. Replace this drm_gem_object_put_unlocked() call by a drm_gem_handle_delete() one to fix that. Fixes: f3ba91228e8e ("drm/panfrost: Add initial panfrost driver") Cc: Signed-off-by: Boris Brezillon Signed-off-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/20190627172414.27231-1-boris.brezillon@collabora.com commit 46cc0b44428d0f0e81f11ea98217fc0edfbeab07 Author: Eiichi Tsukata Date: Tue Jun 25 10:29:10 2019 +0900 tracing/snapshot: Resize spare buffer if size changed Current snapshot implementation swaps two ring_buffers even though their sizes are different from each other, that can cause an inconsistency between the contents of buffer_size_kb file and the current buffer size. For example: # cat buffer_size_kb 7 (expanded: 1408) # echo 1 > events/enable # grep bytes per_cpu/cpu0/stats bytes: 1441020 # echo 1 > snapshot // current:1408, spare:1408 # echo 123 > buffer_size_kb // current:123, spare:1408 # echo 1 > snapshot // current:1408, spare:123 # grep bytes per_cpu/cpu0/stats bytes: 1443700 # cat buffer_size_kb 123 // != current:1408 And also, a similar per-cpu case hits the following WARNING: Reproducer: # echo 1 > per_cpu/cpu0/snapshot # echo 123 > buffer_size_kb # echo 1 > per_cpu/cpu0/snapshot WARNING: WARNING: CPU: 0 PID: 1946 at kernel/trace/trace.c:1607 update_max_tr_single.part.0+0x2b8/0x380 Modules linked in: CPU: 0 PID: 1946 Comm: bash Not tainted 5.2.0-rc6 #20 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-2.fc30 04/01/2014 RIP: 0010:update_max_tr_single.part.0+0x2b8/0x380 Code: ff e8 dc da f9 ff 0f 0b e9 88 fe ff ff e8 d0 da f9 ff 44 89 ee bf f5 ff ff ff e8 33 dc f9 ff 41 83 fd f5 74 96 e8 b8 da f9 ff <0f> 0b eb 8d e8 af da f9 ff 0f 0b e9 bf fd ff ff e8 a3 da f9 ff 48 RSP: 0018:ffff888063e4fca0 EFLAGS: 00010093 RAX: ffff888066214380 RBX: ffffffff99850fe0 RCX: ffffffff964298a8 RDX: 0000000000000000 RSI: 00000000fffffff5 RDI: 0000000000000005 RBP: 1ffff1100c7c9f96 R08: ffff888066214380 R09: ffffed100c7c9f9b R10: ffffed100c7c9f9a R11: 0000000000000003 R12: 0000000000000000 R13: 00000000ffffffea R14: ffff888066214380 R15: ffffffff99851060 FS: 00007f9f8173c700(0000) GS:ffff88806d000000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000714dc0 CR3: 0000000066fa6000 CR4: 00000000000006f0 Call Trace: ? trace_array_printk_buf+0x140/0x140 ? __mutex_lock_slowpath+0x10/0x10 tracing_snapshot_write+0x4c8/0x7f0 ? trace_printk_init_buffers+0x60/0x60 ? selinux_file_permission+0x3b/0x540 ? tracer_preempt_off+0x38/0x506 ? trace_printk_init_buffers+0x60/0x60 __vfs_write+0x81/0x100 vfs_write+0x1e1/0x560 ksys_write+0x126/0x250 ? __ia32_sys_read+0xb0/0xb0 ? do_syscall_64+0x1f/0x390 do_syscall_64+0xc1/0x390 entry_SYSCALL_64_after_hwframe+0x49/0xbe This patch adds resize_buffer_duplicate_size() to check if there is a difference between current/spare buffer sizes and resize a spare buffer if necessary. Link: http://lkml.kernel.org/r/20190625012910.13109-1-devel@etsukata.com Cc: stable@vger.kernel.org Fixes: ad909e21bbe69 ("tracing: Add internal tracing_snapshot() functions") Signed-off-by: Eiichi Tsukata Signed-off-by: Steven Rostedt (VMware) commit d122ed6288d9821b405b0f84a3937955b9df545f Author: Takeshi Misawa Date: Fri Jun 28 19:56:40 2019 +0900 tracing: Fix memory leak in tracing_err_log_open() When tracing_err_log_open() calls seq_open(), allocated memory is not freed. kmemleak report: unreferenced object 0xffff92c0781d1100 (size 128): comm "tail", pid 15116, jiffies 4295163855 (age 22.704s) hex dump (first 32 bytes): 00 f0 08 e5 c0 92 ff ff 00 10 00 00 00 00 00 00 ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [<000000000d0687d5>] kmem_cache_alloc+0x11f/0x1e0 [<000000003e3039a8>] seq_open+0x2f/0x90 [<000000008dd36b7d>] tracing_err_log_open+0x67/0x140 [<000000005a431ae2>] do_dentry_open+0x1df/0x3a0 [<00000000a2910603>] vfs_open+0x2f/0x40 [<0000000038b0a383>] path_openat+0x2e8/0x1690 [<00000000fe025bda>] do_filp_open+0x9b/0x110 [<00000000483a5091>] do_sys_open+0x1ba/0x260 [<00000000c558b5fd>] __x64_sys_openat+0x20/0x30 [<000000006881ec07>] do_syscall_64+0x5a/0x130 [<00000000571c2e94>] entry_SYSCALL_64_after_hwframe+0x44/0xa9 Fix this by calling seq_release() in tracing_err_log_fops.release(). Link: http://lkml.kernel.org/r/20190628105640.GA1863@DESKTOP Fixes: 8a062902be725 ("tracing: Add tracing error log") Reviewed-by: Tom Zanussi Signed-off-by: Takeshi Misawa Signed-off-by: Steven Rostedt (VMware) commit 39611265edc1af3d574178202e19c31e187e7cf2 Author: Steven Rostedt (VMware) Date: Thu Jun 27 21:18:19 2019 -0400 ftrace/x86: Add a comment to why we take text_mutex in ftrace_arch_code_modify_prepare() Taking the text_mutex in ftrace_arch_code_modify_prepare() is to fix a race against module loading and live kernel patching that might try to change the text permissions while ftrace has it as read/write. This really needs to be documented in the code. Add a comment that does such. Link: http://lkml.kernel.org/r/20190627211819.5a591f52@gandalf.local.home Suggested-by: Josh Poimboeuf Reviewed-by: Josh Poimboeuf Reviewed-by: Petr Mladek Signed-off-by: Steven Rostedt (VMware) commit d5b844a2cf507fc7642c9ae80a9d585db3065c28 Author: Petr Mladek Date: Thu Jun 27 10:13:34 2019 +0200 ftrace/x86: Remove possible deadlock between register_kprobe() and ftrace_run_update_code() The commit 9f255b632bf12c4dd7 ("module: Fix livepatch/ftrace module text permissions race") causes a possible deadlock between register_kprobe() and ftrace_run_update_code() when ftrace is using stop_machine(). The existing dependency chain (in reverse order) is: -> #1 (text_mutex){+.+.}: validate_chain.isra.21+0xb32/0xd70 __lock_acquire+0x4b8/0x928 lock_acquire+0x102/0x230 __mutex_lock+0x88/0x908 mutex_lock_nested+0x32/0x40 register_kprobe+0x254/0x658 init_kprobes+0x11a/0x168 do_one_initcall+0x70/0x318 kernel_init_freeable+0x456/0x508 kernel_init+0x22/0x150 ret_from_fork+0x30/0x34 kernel_thread_starter+0x0/0xc -> #0 (cpu_hotplug_lock.rw_sem){++++}: check_prev_add+0x90c/0xde0 validate_chain.isra.21+0xb32/0xd70 __lock_acquire+0x4b8/0x928 lock_acquire+0x102/0x230 cpus_read_lock+0x62/0xd0 stop_machine+0x2e/0x60 arch_ftrace_update_code+0x2e/0x40 ftrace_run_update_code+0x40/0xa0 ftrace_startup+0xb2/0x168 register_ftrace_function+0x64/0x88 klp_patch_object+0x1a2/0x290 klp_enable_patch+0x554/0x980 do_one_initcall+0x70/0x318 do_init_module+0x6e/0x250 load_module+0x1782/0x1990 __s390x_sys_finit_module+0xaa/0xf0 system_call+0xd8/0x2d0 Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(text_mutex); lock(cpu_hotplug_lock.rw_sem); lock(text_mutex); lock(cpu_hotplug_lock.rw_sem); It is similar problem that has been solved by the commit 2d1e38f56622b9b ("kprobes: Cure hotplug lock ordering issues"). Many locks are involved. To be on the safe side, text_mutex must become a low level lock taken after cpu_hotplug_lock.rw_sem. This can't be achieved easily with the current ftrace design. For example, arm calls set_all_modules_text_rw() already in ftrace_arch_code_modify_prepare(), see arch/arm/kernel/ftrace.c. This functions is called: + outside stop_machine() from ftrace_run_update_code() + without stop_machine() from ftrace_module_enable() Fortunately, the problematic fix is needed only on x86_64. It is the only architecture that calls set_all_modules_text_rw() in ftrace path and supports livepatching at the same time. Therefore it is enough to move text_mutex handling from the generic kernel/trace/ftrace.c into arch/x86/kernel/ftrace.c: ftrace_arch_code_modify_prepare() ftrace_arch_code_modify_post_process() This patch basically reverts the ftrace part of the problematic commit 9f255b632bf12c4dd7 ("module: Fix livepatch/ftrace module text permissions race"). And provides x86_64 specific-fix. Some refactoring of the ftrace code will be needed when livepatching is implemented for arm or nds32. These architectures call set_all_modules_text_rw() and use stop_machine() at the same time. Link: http://lkml.kernel.org/r/20190627081334.12793-1-pmladek@suse.com Fixes: 9f255b632bf12c4dd7 ("module: Fix livepatch/ftrace module text permissions race") Acked-by: Thomas Gleixner Reported-by: Miroslav Benes Reviewed-by: Miroslav Benes Reviewed-by: Josh Poimboeuf Signed-off-by: Petr Mladek [ As reviewed by Miroslav Benes , removed return value of ftrace_run_update_code() as it is a void function. ] Signed-off-by: Steven Rostedt (VMware) commit 68f461593f76bd5f17e87cdd0bea28f4278c7268 Author: Trond Myklebust Date: Tue Jun 25 16:41:16 2019 -0400 NFS/flexfiles: Use the correct TCP timeout for flexfiles I/O Fix a typo where we're confusing the default TCP retrans value (NFS_DEF_TCP_RETRANS) for the default TCP timeout value. Fixes: 15d03055cf39f ("pNFS/flexfiles: Set reasonable default ...") Cc: stable@vger.kernel.org # 4.8+ Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 7e3d3620974b743b91b1f9d0660061b1de20174c Author: Trond Myklebust Date: Mon Jun 24 19:15:44 2019 -0400 SUNRPC: Fix up calculation of client message length In the case where a record marker was used, xs_sendpages() needs to return the length of the payload + record marker so that we operate correctly in the case of a partial transmission. When the callers check return value, they therefore need to take into account the record marker length. Fixes: 06b5fc3ad94e ("Merge tag 'nfs-rdma-for-5.1-1'...") Cc: stable@vger.kernel.org # 5.1+ Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit c3ea60c231446663afd6ea1054da6b7f830855ca Author: Colin Ian King Date: Fri Jun 28 10:54:29 2019 +0100 ALSA: seq: fix incorrect order of dest_client/dest_ports arguments There are two occurrances of a call to snd_seq_oss_fill_addr where the dest_client and dest_port arguments are in the wrong order. Fix this by swapping them around. Addresses-Coverity: ("Arguments in wrong order") Signed-off-by: Colin Ian King Cc: Signed-off-by: Takashi Iwai commit bef33e19203dde434bcdf21c449e3fb4f06c2618 Author: Dennis Wassenberg Date: Fri Jun 28 10:54:53 2019 +0200 ALSA: hda/realtek - Change front mic location for Lenovo M710q On M710q Lenovo ThinkCentre machine, there are two front mics, we change the location for one of them to avoid conflicts. Signed-off-by: Dennis Wassenberg Cc: Signed-off-by: Takashi Iwai commit be132e1375c1fffe48801296279079f8a59a9ed3 Author: Lucas Stach Date: Thu Jun 27 16:42:00 2019 +0200 drm/etnaviv: add missing failure path to destroy suballoc When something goes wrong in the GPU init after the cmdbuf suballocator has been constructed, we fail to destroy it properly. This causes havok later when the GPU is unbound due to a module unload or similar. Fixes: e66774dd6f6a (drm/etnaviv: add cmdbuf suballocator) Signed-off-by: Lucas Stach Tested-by: Russell King commit 2acf5a3e6e9371e63c9e4ff54d84d08f630467a0 Author: Colin Ian King Date: Thu Jun 27 17:43:08 2019 +0100 ALSA: usb-audio: fix sign unintended sign extension on left shifts There are a couple of left shifts of unsigned 8 bit values that first get promoted to signed ints and hence get sign extended on the shift if the top bit of the 8 bit values are set. Fix this by casting the 8 bit values to unsigned ints to stop the unintentional sign extension. Addresses-Coverity: ("Unintended sign extension") Signed-off-by: Colin Ian King Cc: Signed-off-by: Takashi Iwai commit 5de254dca87ab614b9c058246ee94c58a840e358 Author: Ronnie Sahlberg Date: Thu Jun 27 14:57:02 2019 +1000 cifs: fix crash querying symlinks stored as reparse-points We never parsed/returned any data from .get_link() when the object is a windows reparse-point containing a symlink. This results in the VFS layer oopsing accessing an uninitialized buffer: ... [ 171.407172] Call Trace: [ 171.408039] readlink_copy+0x29/0x70 [ 171.408872] vfs_readlink+0xc1/0x1f0 [ 171.409709] ? readlink_copy+0x70/0x70 [ 171.410565] ? simple_attr_release+0x30/0x30 [ 171.411446] ? getname_flags+0x105/0x2a0 [ 171.412231] do_readlinkat+0x1b7/0x1e0 [ 171.412938] ? __ia32_compat_sys_newfstat+0x30/0x30 ... Fix this by adding code to handle these buffers and make sure we do return a valid buffer to .get_link() CC: Stable Signed-off-by: Ronnie Sahlberg Signed-off-by: Steve French commit 556e2f6020bf90f63c5dd65e9a2254be6db3185b Merge: 65ee21eb633c 74684cce5ebd Author: Linus Torvalds Date: Fri Jun 28 08:50:09 2019 +0800 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 handful of clk driver fixes and one core framework fix - Do a DT/firmware lookup in clk_core_get() even when the DT index is a nonsensical value - Fix some clk data typos in the Amlogic DT headers/code - Avoid returning junk in the TI clk driver when an invalid clk is looked for - Fix dividers for the emac clks on Stratix10 SoCs - Fix default HDA rates on Tegra210 to correct distorted audio" * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: clk: socfpga: stratix10: fix divider entry for the emac clocks clk: Do a DT parent lookup even when index < 0 clk: tegra210: Fix default rates for HDA clocks clk: ti: clkctrl: Fix returning uninitialized data clk: meson: meson8b: fix a typo in the VPU parent names array variable clk: meson: fix MPLL 50M binding id typo commit 65ee21eb633c644501185502d51831c4dee22c7b Merge: 7a702b4e82d8 2eba4e640b2c Author: Linus Torvalds Date: Fri Jun 28 08:48:21 2019 +0800 Merge tag 'for-5.2/dm-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm Pull device mapper fixes from Mike Snitzer: - Fix incorrect uses of kstrndup and DM logging macros in DM's early init code. - Fix DM log-writes target's handling of super block sectors so updates are made in order through use of completion. - Fix DM core's argument splitting code to avoid undefined behaviour reported as a side-effect of UBSAN analysis on ppc64le. - Fix DM verity target to limit the amount of error messages that can result from a corrupt block being found. * tag 'for-5.2/dm-fixes-2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: dm verity: use message limit for data block corruption message dm table: don't copy from a NULL pointer in realloc_argv() dm log writes: make sure super sector log updates are written in order dm init: remove trailing newline from calls to DMERR() and DMINFO() dm init: fix incorrect uses of kstrndup() commit 7a702b4e82d8730d6964bfd98b3b024c126e9846 Merge: 763cf1f2d9bf 30d158b143b6 Author: Linus Torvalds Date: Fri Jun 28 08:41:18 2019 +0800 Merge tag 'for-linus-20190627' of gitolite.kernel.org:pub/scm/linux/kernel/git/brauner/linux Pull pidfd fixes from Christian Brauner: "Userspace tools and libraries such as strace or glibc need a cheap and reliable way to tell whether CLONE_PIDFD is supported. The easiest way is to pass an invalid fd value in the return argument, perform the syscall and verify the value in the return argument has been changed to a valid fd. However, if CLONE_PIDFD is specified we currently check if pidfd == 0 and return EINVAL if not. The check for pidfd == 0 was originally added to enable us to abuse the return argument for passing additional flags along with CLONE_PIDFD in the future. However, extending legacy clone this way would be a terrible idea and with clone3 on the horizon and the ability to reuse CLONE_DETACHED with CLONE_PIDFD there's no real need for this clutch. So remove the pidfd == 0 check and help userspace out. Also, accordig to Al, anon_inode_getfd() should only be used past the point of no failure and ksys_close() should not be used at all since it is far too easy to get wrong. Al's motto being "basically, once it's in descriptor table, it's out of your control". So Al's patch switches back to what we already had in v1 of the original patchset and uses a anon_inode_getfile() + put_user() + fd_install() sequence in the success path and a fput() + put_unused_fd() in the failure path. The other two changes should be trivial" * tag 'for-linus-20190627' of gitolite.kernel.org:pub/scm/linux/kernel/git/brauner/linux: proc: remove useless d_is_dir() check copy_process(): don't use ksys_close() on cleanups samples: make pidfd-metadata fail gracefully on older kernels fork: don't check parent_tidptr with CLONE_PIDFD commit 763cf1f2d9bfc8349c5791689074c8c17edf660d Merge: fe2da896fd94 b12bbdc5dd88 Author: Linus Torvalds Date: Fri Jun 28 08:39:18 2019 +0800 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid Pull HID fixes from Jiri Kosina: - fix for one corner case in HID++ protocol with respect to handling very long reports, from Hans de Goede - power management fix in Intel-ISH driver, from Hyungwoo Yang - use-after-free fix in Intel-ISH driver, from Dan Carpenter - a couple of new device IDs/quirks from Kai-Heng Feng, Kyle Godbey and Oleksandr Natalenko * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid: HID: intel-ish-hid: fix wrong driver_data usage HID: multitouch: Add pointstick support for ALPS Touchpad HID: logitech-dj: Fix forwarding of very long HID++ reports HID: uclogic: Add support for Huion HS64 tablet HID: chicony: add another quirk for PixArt mouse HID: intel-ish-hid: Fix a use after free in load_fw_from_host() commit fe2da896fd9469317ff693fb08a86d9c435e101a Merge: cd0f3aaebc5b e73f65930f88 Author: Linus Torvalds Date: Fri Jun 28 08:37:04 2019 +0800 Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc Pull ARM SoC fixes from Olof Johansson: "A smaller batch of fixes, nothing that stands out as risky or scary. Mostly DTS tweaks for a few issues: - GPU fixlets for Meson - CPU idle fix for LS1028A - PWM interrupt fixes for i.MX6UL Also, enable a driver (FSL_EDMA) on arm64 defconfig, and a warning and two MAINTAINER tweaks" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: ARM: dts: imx6ul: fix PWM[1-4] interrupts ARM: omap2: remove incorrect __init annotation ARM: dts: gemini Fix up DNS-313 compatible string ARM: dts: Blank D-Link DIR-685 console arm64: defconfig: Enable FSL_EDMA driver arm64: dts: ls1028a: Fix CPU idle fail. MAINTAINERS: BCM53573: Add internal Broadcom mailing list MAINTAINERS: BCM2835: Add internal Broadcom mailing list ARM: dts: meson8b: fix the operating voltage of the Mali GPU ARM: dts: meson8b: drop undocumented property from the Mali GPU node ARM: dts: meson8: fix GPU interrupts and drop an undocumented property commit cd0f3aaebc5b17e0ccb1b9ef9ae43042d075d767 Merge: 139ca2580550 2cd42d19cffa Author: Linus Torvalds Date: Fri Jun 28 08:34:12 2019 +0800 Merge tag 'afs-fixes-20190620' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs Pull AFS fixes from David Howells: "The in-kernel AFS client has been undergoing testing on opendev.org on one of their mirror machines. They are using AFS to hold data that is then served via apache, and Ian Wienand had reported seeing oopses, spontaneous machine reboots and updates to volumes going missing. This patch series appears to have fixed the problem, very probably due to patch (2), but it's not 100% certain. (1) Fix the printing of the "vnode modified" warning to exclude checks on files for which we don't have a callback promise from the server (and so don't expect the server to tell us when it changes). Without this, for every file or directory for which we still have an in-core inode that gets changed on the server, we may get a message logged when we next look at it. This can happen in bulk if, for instance, someone does "vos release" to update a R/O volume from a R/W volume and a whole set of files are all changed together. We only really want to log a message if the file changed and the server didn't tell us about it or we failed to track the state internally. (2) Fix accidental corruption of either afs_vlserver struct objects or the the following memory locations (which could hold anything). The issue is caused by a union that points to two different structs in struct afs_call (to save space in the struct). The call cleanup code assumes that it can simply call the cleanup for one of those structs if not NULL - when it might be actually pointing to the other struct. This means that every Volume Location RPC op is going to corrupt something. (3) Fix an uninitialised spinlock. This isn't too bad, it just causes a one-off warning if lockdep is enabled when "vos release" is called, but the spinlock still behaves correctly. (4) Fix the setting of i_block in the inode. This causes du, for example, to produce incorrect results, but otherwise should not be dangerous to the kernel" * tag 'afs-fixes-20190620' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs: afs: Fix setting of i_blocks afs: Fix uninitialised spinlock afs_volume::cb_break_lock afs: Fix vlserver record corruption afs: Fix over zealous "vnode modified" warnings commit 139ca258055057e64d59ec92b6fd1ad3ca3a9fbc Merge: c84afab02c31 19e5e2ae9c88 Author: Linus Torvalds Date: Fri Jun 28 08:31:57 2019 +0800 Merge tag 'csky-for-linus-5.2-fixup-gcc-unwind' of git://github.com/c-sky/csky-linux Pull arch/csky fixup from Guo Ren: "A fixup patch for rt_sigframe in signal.c" * tag 'csky-for-linus-5.2-fixup-gcc-unwind' of git://github.com/c-sky/csky-linux: csky: Fixup libgcc unwind error commit c84afab02c311b08b5cb8ea758cc177f81c95d11 Merge: 249155c20f9b 89ed5b519004 Author: Linus Torvalds Date: Fri Jun 28 08:24:37 2019 +0800 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: 1) Fix ppp_mppe crypto soft dependencies, from Takashi Iawi. 2) Fix TX completion to be finite, from Sergej Benilov. 3) Use register_pernet_device to avoid a dst leak in tipc, from Xin Long. 4) Double free of TX cleanup in Dirk van der Merwe. 5) Memory leak in packet_set_ring(), from Eric Dumazet. 6) Out of bounds read in qmi_wwan, from Bjørn Mork. 7) Fix iif used in mcast/bcast looped back packets, from Stephen Suryaputra. 8) Fix neighbour resolution on raw ipv6 sockets, from Nicolas Dichtel. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (25 commits) af_packet: Block execution of tasks waiting for transmit to complete in AF_PACKET sctp: change to hold sk after auth shkey is created successfully ipv6: fix neighbour resolution with raw socket ipv6: constify rt6_nexthop() net: dsa: microchip: Use gpiod_set_value_cansleep() net: aquantia: fix vlans not working over bridged network ipv4: reset rt_iif for recirculated mcast/bcast out pkts team: Always enable vlan tx offload net/smc: Fix error path in smc_init net/smc: hold conns_lock before calling smc_lgr_register_conn() bonding: Always enable vlan tx offload net/ipv6: Fix misuse of proc_dointvec "skip_notify_on_dev_down" ipv4: Use return value of inet_iif() for __raw_v4_lookup in the while loop qmi_wwan: Fix out-of-bounds read tipc: check msg->req data len in tipc_nl_compat_bearer_disable net: macb: do not copy the mac address if NULL net/packet: fix memory leak in packet_set_ring() net/tls: fix page double free on TX cleanup net/sched: cbs: Fix error path of cbs_module_init tipc: change to use register_pernet_device ... commit ae6a45a0868986f69039a2150d3b2b9ca294c378 Author: Josh Poimboeuf Date: Wed Jun 26 19:33:55 2019 -0500 x86/unwind/orc: Fall back to using frame pointers for generated code The ORC unwinder can't unwind through BPF JIT generated code because there are no ORC entries associated with the code. If an ORC entry isn't available, try to fall back to frame pointers. If BPF and other generated code always do frame pointer setup (even with CONFIG_FRAME_POINTERS=n) then this will allow ORC to unwind through most generated code despite there being no corresponding ORC entries. Fixes: d15d356887e7 ("perf/x86: Make perf callchains work without CONFIG_FRAME_POINTER") Reported-by: Song Liu Signed-off-by: Josh Poimboeuf Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra (Intel) Cc: Kairui Song Cc: Steven Rostedt Cc: Borislav Petkov Link: https://lkml.kernel.org/r/b6f69208ddff4343d56b7bfac1fc7cfcd62689e8.1561595111.git.jpoimboe@redhat.com commit 83f44ae0f8afcc9da659799db8693f74847e66b3 Author: Song Liu Date: Wed Jun 26 19:33:52 2019 -0500 perf/x86: Always store regs->ip in perf_callchain_kernel() The stacktrace_map_raw_tp BPF selftest is failing because the RIP saved by perf_arch_fetch_caller_regs() isn't getting saved by perf_callchain_kernel(). This was broken by the following commit: d15d356887e7 ("perf/x86: Make perf callchains work without CONFIG_FRAME_POINTER") With that change, when starting with non-HW regs, the unwinder starts with the current stack frame and unwinds until it passes up the frame which called perf_arch_fetch_caller_regs(). So regs->ip needs to be saved deliberately. Fixes: d15d356887e7 ("perf/x86: Make perf callchains work without CONFIG_FRAME_POINTER") Signed-off-by: Song Liu Signed-off-by: Josh Poimboeuf Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra (Intel) Cc: Kairui Song Cc: Steven Rostedt Cc: Borislav Petkov Link: https://lkml.kernel.org/r/3975a298fa52b506fea32666d8ff6a13467eee6d.1561595111.git.jpoimboe@redhat.com commit d6b8bd679c9c8856fa04b80490765c43a4cb613b Author: Jeff Layton Date: Thu May 9 07:58:38 2019 -0400 ceph: fix ceph_mdsc_build_path to not stop on first component When ceph_mdsc_build_path is handed a positive dentry, it will return a zero-length path string with the base set to that dentry. This is not what we want. Always include at least one path component in the string. ceph_mdsc_build_path has behaved this way for a long time but it didn't matter until recent d_name handling rework. Fixes: 964fff7491e4 ("ceph: use ceph_mdsc_build_path instead of clone_dentry_name") Signed-off-by: Jeff Layton Reviewed-by: "Yan, Zheng" Signed-off-by: Ilya Dryomov commit 80031361747aec92163464f2ee08870fec33bcb0 Author: Joshua Scott Date: Wed Jun 26 10:11:08 2019 +1200 ARM: dts: armada-xp-98dx3236: Switch to armada-38x-uart serial node Switch to the "marvell,armada-38x-uart" driver variant to empty the UART buffer before writing to the UART_LCR register. Signed-off-by: Joshua Scott Tested-by: Andrew Lunn Acked-by: Gregory CLEMENT . Cc: stable@vger.kernel.org Fixes: 43e28ba87708 ("ARM: dts: Use armada-370-xp as a base for armada-xp-98dx3236") Signed-off-by: Gregory CLEMENT commit 9d957a959bc8c3dfe37572ac8e99affb5a885965 Author: Nicolas Boichat Date: Wed Jun 26 11:54:45 2019 +0800 pinctrl: mediatek: Update cur_mask in mask/mask ops During suspend/resume, mtk_eint_mask may be called while wake_mask is active. For example, this happens if a wake-source with an active interrupt handler wakes the system: irq/pm.c:irq_pm_check_wakeup would disable the interrupt, so that it can be handled later on in the resume flow. However, this may happen before mtk_eint_do_resume is called: in this case, wake_mask is loaded, and cur_mask is restored from an older copy, re-enabling the interrupt, and causing an interrupt storm (especially for level interrupts). Step by step, for a line that has both wake and interrupt enabled: 1. cur_mask[irq] = 1; wake_mask[irq] = 1; EINT_EN[irq] = 1 (interrupt enabled at hardware level) 2. System suspends, resumes due to that line (at this stage EINT_EN == wake_mask) 3. irq_pm_check_wakeup is called, and disables the interrupt => EINT_EN[irq] = 0, but we still have cur_mask[irq] = 1 4. mtk_eint_do_resume is called, and restores EINT_EN = cur_mask, so it reenables EINT_EN[irq] = 1 => interrupt storm as the driver is not yet ready to handle the interrupt. This patch fixes the issue in step 3, by recording all mask/unmask changes in cur_mask. This also avoids the need to read the current mask in eint_do_suspend, and we can remove mtk_eint_chip_read_mask function. The interrupt will be re-enabled properly later on, sometimes after mtk_eint_do_resume, when the driver is ready to handle it. Fixes: 58a5e1b64bb0 ("pinctrl: mediatek: Implement wake handler and suspend resume") Signed-off-by: Nicolas Boichat Acked-by: Sean Wang Signed-off-by: Linus Walleij commit 30d158b143b6575261ab610ae7b1b4f7fe3830b3 Author: Christian Brauner Date: Thu Jun 27 11:35:14 2019 +0200 proc: remove useless d_is_dir() check Remove the d_is_dir() check from tgid_pidfd_to_pid(). It is pointless since you should never get &proc_tgid_base_operations for f_op on a non-directory. Suggested-by: Al Viro Signed-off-by: Christian Brauner commit 6fd2fe494b17bf2dec37b610d23a43a72b16923a Author: Al Viro Date: Wed Jun 26 22:22:09 2019 -0400 copy_process(): don't use ksys_close() on cleanups anon_inode_getfd() should be used *ONLY* in situations when we are guaranteed to be past the last failure point (including copying the descriptor number to userland, at that). And ksys_close() should not be used for cleanups at all. anon_inode_getfile() is there for all nontrivial cases like that. Just use that... Fixes: b3e583825266 ("clone: add CLONE_PIDFD") Signed-off-by: Al Viro Reviewed-by: Jann Horn Signed-off-by: Christian Brauner commit 33d4a5a7a5b4d02915d765064b2319e90a11cbde Author: Eiichi Tsukata Date: Thu Jun 27 11:47:32 2019 +0900 cpu/hotplug: Fix out-of-bounds read when setting fail state Setting invalid value to /sys/devices/system/cpu/cpuX/hotplug/fail can control `struct cpuhp_step *sp` address, results in the following global-out-of-bounds read. Reproducer: # echo -2 > /sys/devices/system/cpu/cpu0/hotplug/fail KASAN report: BUG: KASAN: global-out-of-bounds in write_cpuhp_fail+0x2cd/0x2e0 Read of size 8 at addr ffffffff89734438 by task bash/1941 CPU: 0 PID: 1941 Comm: bash Not tainted 5.2.0-rc6+ #31 Call Trace: write_cpuhp_fail+0x2cd/0x2e0 dev_attr_store+0x58/0x80 sysfs_kf_write+0x13d/0x1a0 kernfs_fop_write+0x2bc/0x460 vfs_write+0x1e1/0x560 ksys_write+0x126/0x250 do_syscall_64+0xc1/0x390 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x7f05e4f4c970 The buggy address belongs to the variable: cpu_hotplug_lock+0x98/0xa0 Memory state around the buggy address: ffffffff89734300: fa fa fa fa 00 00 00 00 00 00 00 00 00 00 00 00 ffffffff89734380: fa fa fa fa 00 00 00 00 00 00 00 00 00 00 00 00 >ffffffff89734400: 00 00 00 00 fa fa fa fa 00 00 00 00 fa fa fa fa ^ ffffffff89734480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffffffff89734500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Add a sanity check for the value written from user space. Fixes: 1db49484f21ed ("smp/hotplug: Hotplug state fail injection") Signed-off-by: Eiichi Tsukata Signed-off-by: Thomas Gleixner Cc: peterz@infradead.org Link: https://lkml.kernel.org/r/20190627024732.31672-1-devel@etsukata.com commit 89ed5b519004a7706f50b70f611edbd3aaacff2c Author: Neil Horman Date: Tue Jun 25 17:57:49 2019 -0400 af_packet: Block execution of tasks waiting for transmit to complete in AF_PACKET When an application is run that: a) Sets its scheduler to be SCHED_FIFO and b) Opens a memory mapped AF_PACKET socket, and sends frames with the MSG_DONTWAIT flag cleared, its possible for the application to hang forever in the kernel. This occurs because when waiting, the code in tpacket_snd calls schedule, which under normal circumstances allows other tasks to run, including ksoftirqd, which in some cases is responsible for freeing the transmitted skb (which in AF_PACKET calls a destructor that flips the status bit of the transmitted frame back to available, allowing the transmitting task to complete). However, when the calling application is SCHED_FIFO, its priority is such that the schedule call immediately places the task back on the cpu, preventing ksoftirqd from freeing the skb, which in turn prevents the transmitting task from detecting that the transmission is complete. We can fix this by converting the schedule call to a completion mechanism. By using a completion queue, we force the calling task, when it detects there are no more frames to send, to schedule itself off the cpu until such time as the last transmitted skb is freed, allowing forward progress to be made. Tested by myself and the reporter, with good results Change Notes: V1->V2: Enhance the sleep logic to support being interruptible and allowing for honoring to SK_SNDTIMEO (Willem de Bruijn) V2->V3: Rearrage the point at which we wait for the completion queue, to avoid needing to check for ph/skb being null at the end of the loop. Also move the complete call to the skb destructor to avoid needing to modify __packet_set_status. Also gate calling complete on packet_read_pending returning zero to avoid multiple calls to complete. (Willem de Bruijn) Move timeo computation within loop, to re-fetch the socket timeout since we also use the timeo variable to record the return code from the wait_for_complete call (Neil Horman) V3->V4: Willem has requested that the control flow be restored to the previous state. Doing so lets us eliminate the need for the po->wait_on_complete flag variable, and lets us get rid of the packet_next_frame function, but introduces another complexity. Specifically, but using the packet pending count, we can, if an applications calls sendmsg multiple times with MSG_DONTWAIT set, each set of transmitted frames, when complete, will cause tpacket_destruct_skb to issue a complete call, for which there will never be a wait_on_completion call. This imbalance will lead to any future call to wait_for_completion here to return early, when the frames they sent may not have completed. To correct this, we need to re-init the completion queue on every call to tpacket_snd before we enter the loop so as to ensure we wait properly for the frames we send in this iteration. Change the timeout and interrupted gotos to out_put rather than out_status so that we don't try to free a non-existant skb Clean up some extra newlines (Willem de Bruijn) Reviewed-by: Willem de Bruijn Signed-off-by: Neil Horman Reported-by: Matteo Croce Signed-off-by: David S. Miller commit 25bff6d5478b2a02368097015b7d8eb727c87e16 Author: Xin Long Date: Tue Jun 25 00:21:45 2019 +0800 sctp: change to hold sk after auth shkey is created successfully Now in sctp_endpoint_init(), it holds the sk then creates auth shkey. But when the creation fails, it doesn't release the sk, which causes a sk defcnf leak, Here to fix it by only holding the sk when auth shkey is created successfully. Fixes: a29a5bd4f5c3 ("[SCTP]: Implement SCTP-AUTH initializations.") Reported-by: syzbot+afabda3890cc2f765041@syzkaller.appspotmail.com Reported-by: syzbot+276ca1c77a19977c0130@syzkaller.appspotmail.com Signed-off-by: Xin Long Acked-by: Neil Horman Signed-off-by: David S. Miller commit 665d6d4e32313a7952bb3339647f74c3a6b0d78a Merge: 4b972a01a7da 41de4be6f6ef Author: Dave Airlie Date: Thu Jun 27 11:31:56 2019 +1000 Merge tag 'drm-misc-fixes-2019-06-26' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes virtio- Don't call drm_connector_update_edid_property() while holding spinlock Cc: Gerd Hoffmann Signed-off-by: Dave Airlie From: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190626205615.GA123489@art_vandelay commit 0db7f5cd4aeba4cc63d0068598b3350eba8bb4cd Author: ShihPo Hung Date: Tue Jun 18 17:39:15 2019 +0800 riscv: mm: Fix code comment Fix the comment since vmalloc_fault doesn't reach flush_tlb_fix_spurious_fault. Signed-off-by: ShihPo Hung Cc: Palmer Dabbelt Cc: Albert Ou Cc: Paul Walmsley Cc: linux-riscv@lists.infradead.org Reviewed-by: Palmer Dabbelt Signed-off-by: Paul Walmsley commit e3f9dada0abe1864bf467e84d201144eddb9ef88 Author: Paul Walmsley Date: Fri Jun 21 13:45:42 2019 -0700 dt-bindings: clock: sifive: add MIT license as an option for the header file At Bin Meng's request, add the MIT license as an option for the SiFive FU540 PRCI header file. Signed-off-by: Paul Walmsley Cc: Bin Meng commit 471a739a47aa7d582f0cdf9d392957d04632bae2 Author: Rafael J. Wysocki Date: Wed Jun 26 00:20:23 2019 +0200 PCI: PM: Avoid skipping bus-level PM on platforms without ACPI There are platforms that do not call pm_set_suspend_via_firmware(), so pm_suspend_via_firmware() returns 'false' on them, but the power states of PCI devices (PCIe ports in particular) are changed as a result of powering down core platform components during system-wide suspend. Thus the pm_suspend_via_firmware() checks in pci_pm_suspend_noirq() and pci_pm_resume_noirq() introduced by commit 3e26c5feed2a ("PCI: PM: Skip devices in D0 for suspend-to- idle") are not sufficient to determine that devices left in D0 during suspend will remain in D0 during resume and so the bus-level power management can be skipped for them. For this reason, introduce a new global suspend flag, PM_SUSPEND_FLAG_NO_PLATFORM, set it for suspend-to-idle only and replace the pm_suspend_via_firmware() checks mentioned above with checks against this flag. Fixes: 3e26c5feed2a ("PCI: PM: Skip devices in D0 for suspend-to-idle") Reported-by: Jon Hunter Tested-by: Jon Hunter Signed-off-by: Rafael J. Wysocki Tested-by: Mika Westerberg Reviewed-by: Mika Westerberg commit 13696531dc90d2bd54d143aabcb766d228240e06 Merge: 22e72b5e049b 2c6b55f45d53 Author: David S. Miller Date: Wed Jun 26 13:26:08 2019 -0700 Merge branch 'ipv6-fix-neighbour-resolution-with-raw-socket' Nicolas Dichtel says: ==================== ipv6: fix neighbour resolution with raw socket The first patch prepares the fix, it constify rt6_nexthop(). The detail of the bug is explained in the second patch. v1 -> v2: - fix compilation warnings - split the initial patch ==================== Signed-off-by: David S. Miller commit 2c6b55f45d53420d8310d41310e0e2cd41fe073f Author: Nicolas Dichtel Date: Mon Jun 24 16:01:09 2019 +0200 ipv6: fix neighbour resolution with raw socket The scenario is the following: the user uses a raw socket to send an ipv6 packet, destinated to a not-connected network, and specify a connected nh. Here is the corresponding python script to reproduce this scenario: import socket IPPROTO_RAW = 255 send_s = socket.socket(socket.AF_INET6, socket.SOCK_RAW, IPPROTO_RAW) # scapy # p = IPv6(src='fd00:100::1', dst='fd00:200::fa')/ICMPv6EchoRequest() # str(p) req = b'`\x00\x00\x00\x00\x08:@\xfd\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xfd\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfa\x80\x00\x81\xc0\x00\x00\x00\x00' send_s.sendto(req, ('fd00:175::2', 0, 0, 0)) fd00:175::/64 is a connected route and fd00:200::fa is not a connected host. With this scenario, the kernel starts by sending a NS to resolve fd00:175::2. When it receives the NA, it flushes its queue and try to send the initial packet. But instead of sending it, it sends another NS to resolve fd00:200::fa, which obvioulsy fails, thus the packet is dropped. If the user sends again the packet, it now uses the right nh (fd00:175::2). The problem is that ip6_dst_lookup_neigh() uses the rt6i_gateway, which is :: because the associated route is a connected route, thus it uses the dst addr of the packet. Let's use rt6_nexthop() to choose the right nh. Signed-off-by: Nicolas Dichtel Signed-off-by: David S. Miller commit 9b1c1ef13b35fa35051b635ca9fbda39fe6bbc70 Author: Nicolas Dichtel Date: Mon Jun 24 16:01:08 2019 +0200 ipv6: constify rt6_nexthop() There is no functional change in this patch, it only prepares the next one. rt6_nexthop() will be used by ip6_dst_lookup_neigh(), which uses const variables. Signed-off-by: Nicolas Dichtel Reported-by: kbuild test robot Acked-by: Nick Desaulniers Signed-off-by: David S. Miller commit 22e72b5e049b95789b34a4cef316c791e7c2fed5 Author: Marek Vasut Date: Sun Jun 23 17:12:57 2019 +0200 net: dsa: microchip: Use gpiod_set_value_cansleep() Replace gpiod_set_value() with gpiod_set_value_cansleep(), as the switch reset GPIO can be connected to e.g. I2C GPIO expander and it is perfectly fine for the kernel to sleep for a bit in ksz_switch_register(). Signed-off-by: Marek Vasut Cc: Andrew Lunn Cc: Florian Fainelli Cc: Linus Walleij Cc: Tristram Ha Cc: Woojung Huh Reviewed-by: Andrew Lunn Reviewed-by: Linus Walleij Signed-off-by: David S. Miller commit 48dd73d08d4dda47ee31cc8611fb16840fc16803 Author: Dmitry Bogdanov Date: Sat Jun 22 08:46:37 2019 +0000 net: aquantia: fix vlans not working over bridged network In configuration of vlan over bridge over aquantia device it was found that vlan tagged traffic is dropped on chip. The reason is that bridge device enables promisc mode, but in atlantic chip vlan filters will still apply. So we have to corellate promisc settings with vlan configuration. The solution is to track in a separate state variable the need of vlan forced promisc. And also consider generic promisc configuration when doing vlan filter config. Fixes: 7975d2aff5af ("net: aquantia: add support of rx-vlan-filter offload") Signed-off-by: Dmitry Bogdanov Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit 5b18f1289808fee5d04a7e6ecf200189f41a4db6 Author: Stephen Suryaputra Date: Wed Jun 26 02:21:16 2019 -0400 ipv4: reset rt_iif for recirculated mcast/bcast out pkts Multicast or broadcast egress packets have rt_iif set to the oif. These packets might be recirculated back as input and lookup to the raw sockets may fail because they are bound to the incoming interface (skb_iif). If rt_iif is not zero, during the lookup, inet_iif() function returns rt_iif instead of skb_iif. Hence, the lookup fails. v2: Make it non vrf specific (David Ahern). Reword the changelog to reflect it. Signed-off-by: Stephen Suryaputra Reviewed-by: David Ahern Signed-off-by: David S. Miller commit 3cdb0157884344c7b40998f31ce43c4ded593cdd Author: Paul Walmsley Date: Wed Jun 26 08:19:29 2019 -0700 dt-bindings: riscv: resolve 'make dt_binding_check' warnings Rob pointed out that one of the examples in the RISC-V 'cpus' YAML schema results in warnings from 'make dt_binding_check'. Fix these. While here, make the whitespace in the second example consistent with the first example. Signed-off-by: Paul Walmsley Cc: Rob Herring Reviewed-by: Rob Herring # for fixing the dtc warnings commit 45b03df2864aa4c67f6a648f0a7951116e1ef069 Author: Yash Shah Date: Tue Jun 25 15:01:31 2019 +0530 riscv: dts: Re-organize the DT nodes As per the convention for any SOC device with external connection, define only device DT node in SOC DTSi file with status = "disabled" and enable device in Board DTS file with status = "okay" Reported-by: Anup Patel Signed-off-by: Yash Shah Signed-off-by: Paul Walmsley commit ff8391e1b7d2f04aa3e520b3e839fd202de7d9b3 Author: Atish Patra Date: Tue Jun 25 15:56:36 2019 -0700 RISC-V: defconfig: enable MMC & SPI for RISC-V Currently, riscv upstream defconfig doesn't let you boot through userspace if rootfs is on the SD card. Let's enable MMC & SPI drivers as well so that one can boot to the user space using default config in upstream kernel. While here, enable automatic mounting of devtmpfs to simplify kernel testing with minimal root filesystems. (pjw) Signed-off-by: Atish Patra Reviewed-by: Palmer Dabbelt [paul.walmsley@sifive.com: mention the DEVTMPFS_MOUNT change in the patch description] Signed-off-by: Paul Walmsley commit ee4297420d56a0033a8593e80b33fcc93fda8509 Author: YueHaibing Date: Thu Jun 27 00:03:39 2019 +0800 team: Always enable vlan tx offload We should rather have vlan_tci filled all the way down to the transmitting netdevice and let it do the hw/sw vlan implementation. Suggested-by: Jiri Pirko Signed-off-by: YueHaibing Signed-off-by: David S. Miller commit 8a53058bd9bae9a4381209a8122c60ac346622ef Merge: 30d8177e8ac7 8c33bf1b0a96 Author: David S. Miller Date: Wed Jun 26 10:10:16 2019 -0700 Merge branch 'smc-fixes' Ursula Braun says: ==================== net/smc: fixes 2019-06-26 here are 2 small smc fixes for the net tree. ==================== Signed-off-by: David S. Miller commit 8c33bf1b0a9663d1742cb19ee71da46a1d8670dd Author: YueHaibing Date: Wed Jun 26 17:47:50 2019 +0200 net/smc: Fix error path in smc_init If register_pernet_subsys success in smc_init, we should cleanup it in case any other error. Fixes: 64e28b52c7a6 (net/smc: add pnet table namespace support") Signed-off-by: YueHaibing Signed-off-by: Ursula Braun Signed-off-by: David S. Miller commit 4480879251fb89b1c5585112b1ccc8c3333b41af Author: Huaping Zhou Date: Wed Jun 26 17:47:49 2019 +0200 net/smc: hold conns_lock before calling smc_lgr_register_conn() After smc_lgr_create(), the newly created link group is added to smc_lgr_list, thus is accessible from other context. Although link group creation is serialized by smc_create_lgr_pending, the new link group may still be accessed concurrently. For example, if ib_device is no longer active, smc_ib_port_event_work() will call smc_port_terminate(), which in turn will call __smc_lgr_terminate() on every link group of this device. So conns_lock is required here. Signed-off-by: Huaping Zhou Signed-off-by: Ursula Braun Signed-off-by: David S. Miller commit 30d8177e8ac776d89d387fad547af6a0f599210e Author: YueHaibing Date: Wed Jun 26 16:08:44 2019 +0800 bonding: Always enable vlan tx offload We build vlan on top of bonding interface, which vlan offload is off, bond mode is 802.3ad (LACP) and xmit_hash_policy is BOND_XMIT_POLICY_ENCAP34. Because vlan tx offload is off, vlan tci is cleared and skb push the vlan header in validate_xmit_vlan() while sending from vlan devices. Then in bond_xmit_hash, __skb_flow_dissect() fails to get information from protocol headers encapsulated within vlan, because 'nhoff' is points to IP header, so bond hashing is based on layer 2 info, which fails to distribute packets across slaves. This patch always enable bonding's vlan tx offload, pass the vlan packets to the slave devices with vlan tci, let them to handle vlan implementation. Fixes: 278339a42a1b ("bonding: propogate vlan_features to bonding master") Suggested-by: Jiri Pirko Signed-off-by: YueHaibing Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit 1bf72720281770162c87990697eae1ba2f1d917a Author: Geert Uytterhoeven Date: Thu May 16 09:09:35 2019 +0200 cpu/speculation: Warn on unsupported mitigations= parameter Currently, if the user specifies an unsupported mitigation strategy on the kernel command line, it will be ignored silently. The code will fall back to the default strategy, possibly leaving the system more vulnerable than expected. This may happen due to e.g. a simple typo, or, for a stable kernel release, because not all mitigation strategies have been backported. Inform the user by printing a message. Fixes: 98af8452945c5565 ("cpu/speculation: Add 'mitigations=' cmdline option") Signed-off-by: Geert Uytterhoeven Signed-off-by: Thomas Gleixner Acked-by: Josh Poimboeuf Cc: Peter Zijlstra Cc: Jiri Kosina Cc: Greg Kroah-Hartman Cc: Ben Hutchings Cc: stable@vger.kernel.org Link: https://lkml.kernel.org/r/20190516070935.22546-1-geert@linux-m68k.org commit c1f7fec1eb6a2c86d01bc22afce772c743451d88 Author: Alejandro Jimenez Date: Mon Jun 10 13:20:10 2019 -0400 x86/speculation: Allow guests to use SSBD even if host does not The bits set in x86_spec_ctrl_mask are used to calculate the guest's value of SPEC_CTRL that is written to the MSR before VMENTRY, and control which mitigations the guest can enable. In the case of SSBD, unless the host has enabled SSBD always on mode (by passing "spec_store_bypass_disable=on" in the kernel parameters), the SSBD bit is not set in the mask and the guest can not properly enable the SSBD always on mitigation mode. This has been confirmed by running the SSBD PoC on a guest using the SSBD always on mitigation mode (booted with kernel parameter "spec_store_bypass_disable=on"), and verifying that the guest is vulnerable unless the host is also using SSBD always on mode. In addition, the guest OS incorrectly reports the SSB vulnerability as mitigated. Always set the SSBD bit in x86_spec_ctrl_mask when the host CPU supports it, allowing the guest to use SSBD whether or not the host has chosen to enable the mitigation in any of its modes. Fixes: be6fcb5478e9 ("x86/bugs: Rework spec_ctrl base and mask logic") Signed-off-by: Alejandro Jimenez Signed-off-by: Thomas Gleixner Reviewed-by: Liam Merwick Reviewed-by: Mark Kanda Reviewed-by: Paolo Bonzini Cc: bp@alien8.de Cc: rkrcmar@redhat.com Cc: kvm@vger.kernel.org Cc: stable@vger.kernel.org Link: https://lkml.kernel.org/r/1560187210-11054-1-git-send-email-alejandro.j.jimenez@oracle.com commit 35594bc7cecf3a78504b590e350570e8f4d7779e Author: Nicolas Boichat Date: Mon Apr 29 11:55:14 2019 +0800 pinctrl: mediatek: Ignore interrupts that are wake only during resume Before suspending, mtk-eint would set the interrupt mask to the one in wake_mask. However, some of these interrupts may not have a corresponding interrupt handler, or the interrupt may be disabled. On resume, the eint irq handler would trigger nevertheless, and irq/pm.c:irq_pm_check_wakeup would be called, which would try to call irq_disable. However, if the interrupt is not enabled (irqd_irq_disabled(&desc->irq_data) is true), the call does nothing, and the interrupt is left enabled in the eint driver. Especially for level-sensitive interrupts, this will lead to an interrupt storm on resume. If we detect that an interrupt is only in wake_mask, but not in cur_mask, we can just mask it out immediately (as mtk_eint_resume would do anyway at a later stage in the resume sequence, when restoring cur_mask). Fixes: bf22ff45bed6 ("genirq: Avoid unnecessary low level irq function calls") Signed-off-by: Nicolas Boichat Acked-by: Sean Wang Signed-off-by: Linus Walleij commit b12bbdc5dd883f6575f57e529af26cd2c521b320 Author: Hyungwoo Yang Date: Wed Jun 5 21:52:27 2019 -0700 HID: intel-ish-hid: fix wrong driver_data usage Currently, in suspend() and resume(), ishtp client drivers are using driver_data to get "struct ishtp_cl_device" object which is set by bus driver. It's wrong since the driver_data should not be owned bus. driver_data should be owned by the corresponding ishtp client driver. Due to this, some ishtp client driver like cros_ec_ishtp which uses its driver_data to transfer its data to its child doesn't work correctly. So this patch removes setting driver_data in bus drier and instead of using driver_data to get "struct ishtp_cl_device", since "struct device" is embedded in "struct ishtp_cl_device", we introduce a helper function that returns "struct ishtp_cl_device" from "struct device". Signed-off-by: Hyungwoo Yang Acked-by: Srinivas Pandruvada Signed-off-by: Jiri Kosina commit 0a95fc733da375de0688d0f1fd3a2869a1c1d499 Author: Kai-Heng Feng Date: Fri Jun 14 16:56:55 2019 +0800 HID: multitouch: Add pointstick support for ALPS Touchpad There's a new ALPS touchpad/pointstick combo device that requires MT_CLS_WIN_8_DUAL to make its pointsitck work as a mouse. The device can be found on HP ZBook 17 G5. Signed-off-by: Kai-Heng Feng Signed-off-by: Jiri Kosina commit 3a9a2c86ce6e06dda23fb1e7f7745acaf6d5d0eb Author: Hans de Goede Date: Fri Jun 14 10:20:27 2019 +0200 HID: logitech-dj: Fix forwarding of very long HID++ reports The HID++ spec also defines very long HID++ reports, with a reportid of 0x12. The MX5000 and MX5500 keyboards use 0x12 output reports for sending messages to display on their buildin LCD. Userspace (libmx5000) supports this, in order for this to work when talking to the HID devices instantiated for the keyboard by hid-logitech-dj, we need to properly forward these reports to the device. This commit fixes logi_dj_ll_raw_request not forwarding these reports. Fixes: f2113c3020ef ("HID: logitech-dj: add support for Logitech Bluetooth Mini-Receiver") Signed-off-by: Hans de Goede Signed-off-by: Jiri Kosina commit 315ffcc9a1e054bb460f9203058b52dc26b1173d Author: Kyle Godbey Date: Sat Jun 15 18:15:06 2019 -0500 HID: uclogic: Add support for Huion HS64 tablet Add support for Huion HS64 drawing tablet to hid-uclogic Signed-off-by: Kyle Godbey Signed-off-by: Jiri Kosina commit dcf768b0ac868630e7bdb6f2f1c9fe72788012fa Author: Oleksandr Natalenko Date: Fri Jun 21 11:17:36 2019 +0200 HID: chicony: add another quirk for PixArt mouse I've spotted another Chicony PixArt mouse in the wild, which requires HID_QUIRK_ALWAYS_POLL quirk, otherwise it disconnects each minute. USB ID of this device is 0x04f2:0x0939. We've introduced quirks like this for other models before, so lets add this mouse too. Link: https://github.com/sriemer/fix-linux-mouse#usb-mouse-disconnectsreconnects-every-minute-on-linux Signed-off-by: Oleksandr Natalenko Acked-by: Sebastian Parschauer Signed-off-by: Jiri Kosina commit 21acee4ecf9c3d9eff545f50e79c321a0c35d9b3 Author: Dan Carpenter Date: Wed Jun 26 13:10:41 2019 +0300 HID: intel-ish-hid: Fix a use after free in load_fw_from_host() We have to print the filename first before we can kfree it. Fixes: 91b228107da3 ("HID: intel-ish-hid: ISH firmware loader client driver") Signed-off-by: Dan Carpenter Signed-off-by: Jiri Kosina commit aa69fb62bea15126e744af2e02acc0d6cf3ed4da Author: Nathan Chancellor Date: Tue Jun 25 21:20:17 2019 -0700 arm64/efi: Mark __efistub_stext_offset as an absolute symbol explicitly After r363059 and r363928 in LLVM, a build using ld.lld as the linker with CONFIG_RANDOMIZE_BASE enabled fails like so: ld.lld: error: relocation R_AARCH64_ABS32 cannot be used against symbol __efistub_stext_offset; recompile with -fPIC Fangrui and Peter figured out that ld.lld is incorrectly considering __efistub_stext_offset as a relative symbol because of the order in which symbols are evaluated. _text is treated as an absolute symbol and stext is a relative symbol, making __efistub_stext_offset a relative symbol. Adding ABSOLUTE will force ld.lld to evalute this expression in the right context and does not change ld.bfd's behavior. ld.lld will need to be fixed but the developers do not see a quick or simple fix without some research (see the linked issue for further explanation). Add this simple workaround so that ld.lld can continue to link kernels. Link: https://github.com/ClangBuiltLinux/linux/issues/561 Link: https://github.com/llvm/llvm-project/commit/025a815d75d2356f2944136269aa5874721ec236 Link: https://github.com/llvm/llvm-project/commit/249fde85832c33f8b06c6b4ac65d1c4b96d23b83 Acked-by: Ard Biesheuvel Debugged-by: Fangrui Song Debugged-by: Peter Smith Suggested-by: Fangrui Song Signed-off-by: Nathan Chancellor [will: add comment] Signed-off-by: Will Deacon commit 6f496a555d93db7a11d4860b9220d904822f586a Author: Ard Biesheuvel Date: Tue Jun 25 19:08:54 2019 +0200 arm64: kaslr: keep modules inside module region when KASAN is enabled When KASLR and KASAN are both enabled, we keep the modules where they are, and randomize the placement of the kernel so it is within 2 GB of the module region. The reason for this is that putting modules in the vmalloc region (like we normally do when KASLR is enabled) is not possible in this case, given that the entire vmalloc region is already backed by KASAN zero shadow pages, and so allocating dedicated KASAN shadow space as required by loaded modules is not possible. The default module allocation window is set to [_etext - 128MB, _etext] in kaslr.c, which is appropriate for KASLR kernels booted without a seed or with 'nokaslr' on the command line. However, as it turns out, it is not quite correct for the KASAN case, since it still intersects the vmalloc region at the top, where attempts to allocate shadow pages will collide with the KASAN zero shadow pages, causing a WARN() and all kinds of other trouble. So cap the top end to MODULES_END explicitly when running with KASAN. Cc: # 4.9+ Acked-by: Catalin Marinas Tested-by: Catalin Marinas Signed-off-by: Ard Biesheuvel Signed-off-by: Will Deacon commit 41de4be6f6efa4132b29af51158cd672d93f2543 Author: Gerd Hoffmann Date: Fri Apr 5 06:46:02 2019 +0200 drm/virtio: move drm_connector_update_edid_property() call drm_connector_update_edid_property can sleep, we must not call it while holding a spinlock. Move the callsite. Fixes: b4b01b4995fb ("drm/virtio: add edid support") Reported-by: Max Filippov Signed-off-by: Gerd Hoffmann Tested-by: Max Filippov Tested-by: Cornelia Huck Acked-by: Cornelia Huck Link: http://patchwork.freedesktop.org/patch/msgid/20190405044602.2334-1-kraxel@redhat.com commit 19e5e2ae9c883f5651eaaeab2f258e2c4b78fda3 Author: Guo Ren Date: Wed Jun 26 11:27:03 2019 +0800 csky: Fixup libgcc unwind error The struct rt_sigframe is also defined in libgcc/config/csky/linux-unwind.h of gcc. Although there is no use for the first three word space, we must keep them the same with linux-unwind.h for member position. The BUG is found in glibc test with the tst-cancel02. The BUG is from commit:bf2416829362 of linux-5.2-rc1 merge window. Signed-off-by: Guo Ren Signed-off-by: Mao Han Cc: Arnd Bergmann commit 432c833218dd0f75e7b56bd5e8658b72073158d2 Author: Kirill A. Shutemov Date: Mon Jun 24 15:31:50 2019 +0300 x86/mm: Handle physical-virtual alignment mismatch in phys_p4d_init() Kyle has reported occasional crashes when booting a kernel in 5-level paging mode with KASLR enabled: WARNING: CPU: 0 PID: 0 at arch/x86/mm/init_64.c:87 phys_p4d_init+0x1d4/0x1ea RIP: 0010:phys_p4d_init+0x1d4/0x1ea Call Trace: __kernel_physical_mapping_init+0x10a/0x35c kernel_physical_mapping_init+0xe/0x10 init_memory_mapping+0x1aa/0x3b0 init_range_memory_mapping+0xc8/0x116 init_mem_mapping+0x225/0x2eb setup_arch+0x6ff/0xcf5 start_kernel+0x64/0x53b ? copy_bootdata+0x1f/0xce x86_64_start_reservations+0x24/0x26 x86_64_start_kernel+0x8a/0x8d secondary_startup_64+0xb6/0xc0 which causes later: BUG: unable to handle page fault for address: ff484d019580eff8 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page BAD Oops: 0000 [#1] SMP NOPTI RIP: 0010:fill_pud+0x13/0x130 Call Trace: set_pte_vaddr_p4d+0x2e/0x50 set_pte_vaddr+0x6f/0xb0 __native_set_fixmap+0x28/0x40 native_set_fixmap+0x39/0x70 register_lapic_address+0x49/0xb6 early_acpi_boot_init+0xa5/0xde setup_arch+0x944/0xcf5 start_kernel+0x64/0x53b Kyle bisected the issue to commit b569c1843498 ("x86/mm/KASLR: Reduce randomization granularity for 5-level paging to 1GB") Before this commit PAGE_OFFSET was always aligned to P4D_SIZE when booting 5-level paging mode. But now only PUD_SIZE alignment is guaranteed. In the case I was able to reproduce the following vaddr/paddr values were observed in phys_p4d_init(): Iteration vaddr paddr 1 0xff4228027fe00000 0x033fe00000 2 0xff42287f40000000 0x8000000000 'vaddr' in both cases belongs to the same p4d entry. But due to the original assumption that PAGE_OFFSET is aligned to P4D_SIZE this overlap cannot be handled correctly. The code assumes strictly aligned entries and unconditionally increments the index into the P4D table, which creates false duplicate entries. Once the index reaches the end, the last entry in the page table is missing. Aside of that the 'paddr >= paddr_end' condition can evaluate wrong which causes an P4D entry to be cleared incorrectly. Change the loop in phys_p4d_init() to walk purely based on virtual addresses like __kernel_physical_mapping_init() does. This makes it work correctly with unaligned virtual addresses. Fixes: b569c1843498 ("x86/mm/KASLR: Reduce randomization granularity for 5-level paging to 1GB") Reported-by: Kyle Pelton Signed-off-by: Kirill A. Shutemov Signed-off-by: Thomas Gleixner Tested-by: Kyle Pelton Acked-by: Baoquan He Cc: Borislav Petkov Cc: "H. Peter Anvin" Cc: Dave Hansen Cc: Andy Lutomirski Cc: Peter Zijlstra Link: https://lkml.kernel.org/r/20190624123150.920-1-kirill.shutemov@linux.intel.com commit c1887159eb48ba40e775584cfb2a443962cf1a05 Author: Kirill A. Shutemov Date: Thu Jun 20 14:24:22 2019 +0300 x86/boot/64: Add missing fixup_pointer() for next_early_pgt access __startup_64() uses fixup_pointer() to access global variables in a position-independent fashion. Access to next_early_pgt was wrapped into the helper, but one instance in the 5-level paging branch was missed. GCC generates a R_X86_64_PC32 PC-relative relocation for the access which doesn't trigger the issue, but Clang emmits a R_X86_64_32S which leads to an invalid memory access and system reboot. Fixes: 187e91fe5e91 ("x86/boot/64/clang: Use fixup_pointer() to access 'next_early_pgt'") Signed-off-by: Kirill A. Shutemov Signed-off-by: Thomas Gleixner Cc: Borislav Petkov Cc: "H. Peter Anvin" Cc: Dave Hansen Cc: Andy Lutomirski Cc: Peter Zijlstra Cc: Alexander Potapenko Link: https://lkml.kernel.org/r/20190620112422.29264-1-kirill.shutemov@linux.intel.com commit 81c7ed296dcd02bc0b4488246d040e03e633737a Author: Kirill A. Shutemov Date: Thu Jun 20 14:23:45 2019 +0300 x86/boot/64: Fix crash if kernel image crosses page table boundary A kernel which boots in 5-level paging mode crashes in a small percentage of cases if KASLR is enabled. This issue was tracked down to the case when the kernel image unpacks in a way that it crosses an 1G boundary. The crash is caused by an overrun of the PMD page table in __startup_64() and corruption of P4D page table allocated next to it. This particular issue is not visible with 4-level paging as P4D page tables are not used. But the P4D and the PUD calculation have similar problems. The PMD index calculation is wrong due to operator precedence, which fails to confine the PMDs in the PMD array on wrap around. The P4D calculation for 5-level paging and the PUD calculation calculate the first index correctly, but then blindly increment it which causes the same issue when a kernel image is located across a 512G and for 5-level paging across a 46T boundary. This wrap around mishandling was introduced when these parts moved from assembly to C. Restore it to the correct behaviour. Fixes: c88d71508e36 ("x86/boot/64: Rewrite startup_64() in C") Signed-off-by: Kirill A. Shutemov Signed-off-by: Thomas Gleixner Cc: Borislav Petkov Cc: "H. Peter Anvin" Cc: Dave Hansen Cc: Andy Lutomirski Cc: Peter Zijlstra Link: https://lkml.kernel.org/r/20190620112345.28833-1-kirill.shutemov@linux.intel.com commit 74684cce5ebd567b01e9bc0e9a1945c70a32f32f Author: Dinh Nguyen Date: Fri Jun 7 10:12:46 2019 -0500 clk: socfpga: stratix10: fix divider entry for the emac clocks The fixed dividers for the emac clocks should be 2 not 4. Cc: stable@vger.kernel.org Signed-off-by: Dinh Nguyen Signed-off-by: Stephen Boyd commit b8e8a86337c25941cb06e9a1c8ee01ab9aab0cc2 Author: Eiichi Tsukata Date: Tue Jun 25 12:08:01 2019 +0900 net/ipv6: Fix misuse of proc_dointvec "skip_notify_on_dev_down" /proc/sys/net/ipv6/route/skip_notify_on_dev_down assumes given value to be 0 or 1. Use proc_dointvec_minmax instead of proc_dointvec. Fixes: 7c6bb7d2faaf ("net/ipv6: Add knob to skip DELROUTE message ondevice down") Signed-off-by: Eiichi Tsukata Signed-off-by: David S. Miller commit 38c73529de13e1e10914de7030b659a2f8b01c3b Author: Stephen Suryaputra Date: Mon Jun 24 20:14:06 2019 -0400 ipv4: Use return value of inet_iif() for __raw_v4_lookup in the while loop In commit 19e4e768064a8 ("ipv4: Fix raw socket lookup for local traffic"), the dif argument to __raw_v4_lookup() is coming from the returned value of inet_iif() but the change was done only for the first lookup. Subsequent lookups in the while loop still use skb->dev->ifIndex. Fixes: 19e4e768064a8 ("ipv4: Fix raw socket lookup for local traffic") Signed-off-by: Stephen Suryaputra Reviewed-by: David Ahern Signed-off-by: David S. Miller commit 2eba4e640b2c4161e31ae20090a53ee02a518657 Author: Milan Broz Date: Thu Jun 20 13:00:19 2019 +0200 dm verity: use message limit for data block corruption message DM verity should also use DMERR_LIMIT to limit repeat data block corruption messages. Signed-off-by: Milan Broz Signed-off-by: Mike Snitzer commit a0651926553cfe7992166432e418987760882652 Author: Jerome Marchand Date: Wed Jun 12 18:22:26 2019 +0200 dm table: don't copy from a NULL pointer in realloc_argv() For the first call to realloc_argv() in dm_split_args(), old_argv is NULL and size is zero. Then memcpy is called, with the NULL old_argv as the source argument and a zero size argument. AFAIK, this is undefined behavior and generates the following warning when compiled with UBSAN on ppc64le: In file included from ./arch/powerpc/include/asm/paca.h:19, from ./arch/powerpc/include/asm/current.h:16, from ./include/linux/sched.h:12, from ./include/linux/kthread.h:6, from drivers/md/dm-core.h:12, from drivers/md/dm-table.c:8: In function 'memcpy', inlined from 'realloc_argv' at drivers/md/dm-table.c:565:3, inlined from 'dm_split_args' at drivers/md/dm-table.c:588:9: ./include/linux/string.h:345:9: error: argument 2 null where non-null expected [-Werror=nonnull] return __builtin_memcpy(p, q, size); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/md/dm-table.c: In function 'dm_split_args': ./include/linux/string.h:345:9: note: in a call to built-in function '__builtin_memcpy' Signed-off-by: Jerome Marchand Signed-off-by: Mike Snitzer commit 211ad4b733037f66f9be0a79eade3da7ab11cbb8 Author: zhangyi (F) Date: Wed Jun 5 21:27:08 2019 +0800 dm log writes: make sure super sector log updates are written in order Currently, although we submit super bios in order (and super.nr_entries is incremented by each logged entry), submit_bio() is async so each super sector may not be written to log device in order and then the final nr_entries may be smaller than it should be. This problem can be reproduced by the xfstests generic/455 with ext4: QA output created by 455 -Silence is golden +mark 'end' does not exist Fix this by serializing submission of super sectors to make sure each is written to the log disk in order. Fixes: 0e9cebe724597 ("dm: add log writes target") Cc: stable@vger.kernel.org Signed-off-by: zhangyi (F) Suggested-by: Josef Bacik Reviewed-by: Josef Bacik Signed-off-by: Mike Snitzer commit 10c9c8e7c09b4d32b31df1bd14673bd6dbfc50be Author: Stephen Boyd Date: Tue Jun 4 18:27:29 2019 -0700 dm init: remove trailing newline from calls to DMERR() and DMINFO() These printing macros already add a trailing newline, so having another one here just makes for blank lines when these prints are enabled. Remove these needless newlines. Fixes: 6bbc923dfcf5 ("dm: add support to directly boot to a mapped device") Signed-off-by: Stephen Boyd Signed-off-by: Mike Snitzer commit e6feaf215f07dd98d03ee783c9dd4c7f7e55b74d Author: Paolo Valente Date: Sat Jun 22 22:44:16 2019 +0200 block, bfq: fix operator in BFQQ_TOTALLY_SEEKY By mistake, there is a '&' instead of a '==' in the definition of the macro BFQQ_TOTALLY_SEEKY. This commit replaces the wrong operator with the correct one. Fixes: 7074f076ff15 ("block, bfq: do not tag totally seeky queues as soft rt") Signed-off-by: Paolo Valente Signed-off-by: Jens Axboe commit dec7e6494e1aea6bf676223da3429cd17ce0af79 Author: Gen Zhang Date: Wed May 29 09:33:20 2019 +0800 dm init: fix incorrect uses of kstrndup() Fix 2 kstrndup() calls with incorrect argument order. Fixes: 6bbc923dfcf5 ("dm: add support to directly boot to a mapped device") Cc: stable@vger.kernel.org # v5.1 Signed-off-by: Gen Zhang Signed-off-by: Mike Snitzer commit 4b36082e2e09c2769710756390d54cfca563ed96 Author: Alexandre Belloni Date: Thu Jun 20 20:30:37 2019 +0200 pinctrl: ocelot: fix pinmuxing for pins after 31 The actual layout for OCELOT_GPIO_ALT[01] when there are more than 32 pins is interleaved, i.e. OCELOT_GPIO_ALT0[0], OCELOT_GPIO_ALT1[0], OCELOT_GPIO_ALT0[1], OCELOT_GPIO_ALT1[1]. Introduce a new REG_ALT macro to facilitate the register offset calculation and use it where necessary. Fixes: da801ab56ad8 pinctrl: ocelot: add MSCC Jaguar2 support Signed-off-by: Alexandre Belloni Signed-off-by: Linus Walleij commit f2818ba3a0125670cb9999bb5a65ebb631a8da2f Author: Alexandre Belloni Date: Thu Jun 20 20:30:36 2019 +0200 pinctrl: ocelot: fix gpio direction for pins after 31 The third argument passed to REG is not the correct one and ocelot_gpio_set_direction is not working for pins after 31. Fix that by passing the pin number instead of the modulo 32 value. Fixes: da801ab56ad8 pinctrl: ocelot: add MSCC Jaguar2 support Signed-off-by: Alexandre Belloni Signed-off-by: Linus Walleij commit 6dbc6e6f58556369bf999cd7d9793586f1b0e4b4 Author: Phil Reid Date: Thu Jun 13 12:10:23 2019 +0800 pinctrl: mcp23s08: Fix add_data and irqchip_add_nested call order Currently probing of the mcp23s08 results in an error message "detected irqchip that is shared with multiple gpiochips: please fix the driver" This is due to the following: Call to mcp23s08_irqchip_setup() with call hierarchy: mcp23s08_irqchip_setup() gpiochip_irqchip_add_nested() gpiochip_irqchip_add_key() gpiochip_set_irq_hooks() Call to devm_gpiochip_add_data() with call hierarchy: devm_gpiochip_add_data() gpiochip_add_data_with_key() gpiochip_add_irqchip() gpiochip_set_irq_hooks() The gpiochip_add_irqchip() returns immediately if there isn't a irqchip but we added a irqchip due to the previous mcp23s08_irqchip_setup() call. So it calls gpiochip_set_irq_hooks() a second time. Fix this by moving the call to devm_gpiochip_add_data before the call to mcp23s08_irqchip_setup Fixes: 02e389e63e35 ("pinctrl: mcp23s08: fix irq setup order") Suggested-by: Marco Felsch Signed-off-by: Phil Reid Signed-off-by: Linus Walleij commit 503d90b30602a3295978e46d844ccc8167400fe6 Author: Richard Sailer Date: Wed Jun 19 13:33:11 2019 +0200 ALSA: hda/realtek: Add quirks for several Clevo notebook barebones This adds 4 SND_PCI_QUIRK(...) lines for several barebone models of the ODM Clevo. The model names are written in regex syntax to describe/match all clevo models that are similar enough and use the same PCI SSID that this fixup works for them. Additionally the lines regarding SSID 0x96e1 and 0x97e1 didn't fix audio for the all our Clevo notebooks using these SSIDs (models Clevo P960* and P970*) since ALC1220_FIXP_CLEVO_PB51ED_PINS swapped pins that are not necesarry to be swapped. This patch initiates ALC1220_FIXUP_CLEVO_P950 instead for these model and fixes the audio. Fixes: 80690a276f44 ("ALSA: hda/realtek - Add quirk for Tuxedo XC 1509") Signed-off-by: Richard Sailer Cc: Signed-off-by: Takashi Iwai commit e73f65930f8880fafaccf2cc1e5c44272e9523ec Merge: 4232db2e2abe 3cf10132ac8d Author: Olof Johansson Date: Tue Jun 25 04:20:08 2019 -0700 Merge tag 'imx-fixes-5.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/fixes i.MX fixes for 5.2, round 3: - A recent testing by Sébastien discovers that the PWM interrupts of i.MX6UL were wrongly coded in device tree. It's a fix for it. * tag 'imx-fixes-5.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: ARM: dts: imx6ul: fix PWM[1-4] interrupts Signed-off-by: Olof Johansson commit 4232db2e2abed8bfec318031e0754b6b631eb0eb Merge: 2f7da158cc79 26d65140e92a Author: Olof Johansson Date: Tue Jun 25 04:19:26 2019 -0700 Merge tag 'amlogic-fixes' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into arm/fixes ARM: dts: Amlogic fixes for v5.2-rc - fix GPU interrupts and operating voltage * tag 'amlogic-fixes' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic: ARM: dts: meson8b: fix the operating voltage of the Mali GPU ARM: dts: meson8b: drop undocumented property from the Mali GPU node ARM: dts: meson8: fix GPU interrupts and drop an undocumented property Signed-off-by: Olof Johansson commit e13e7cd4c0c1cc9984d9b6a8663e10d76b53f2aa Author: Nicholas Piggin Date: Sat Jun 22 08:55:54 2019 +1000 powerpc/64s/exception: Fix machine check early corrupting AMR The early machine check runs in real mode, so locking is unnecessary. Worse, the windup does not restore AMR, so this can result in a false KUAP fault after a recoverable machine check hits inside a user copy operation. Fix this similarly to HMI by just avoiding the kuap lock in the early machine check handler (it will be set by the late handler that runs in virtual mode if that runs). If the virtual mode handler is reached, it will lock and restore the AMR. Fixes: 890274c2dc4c0 ("powerpc/64s: Implement KUAP for Radix MMU") Cc: Russell Currey Signed-off-by: Nicholas Piggin Signed-off-by: Michael Ellerman commit 249155c20f9b0754bc1b932a33344cfb4e0c2101 Merge: c88e40e07cd9 d2ba3b1714d7 Author: Linus Torvalds Date: Tue Jun 25 05:52:31 2019 +0800 Merge branch 'parisc-5.2-4' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux Pull parisc fix from Helge Deller: "Add missing PCREL64 relocation in module loader to fix module load errors when the static branch and JUMP_LABEL feature is enabled on a 64-bit kernel" * 'parisc-5.2-4' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: parisc: Fix module loading error with JUMP_LABEL feature commit f2ff671f894151a611eae246a1f25b61d6c0354b Author: Paul Cercueil Date: Mon Jun 24 23:27:51 2019 +0200 MAINTAINERS: Correct path to moved files The driver was moved in commit 1838a7b31fcb ("mtd: rawnand: Move drivers for Ingenic SoCs to subfolder"). Signed-off-by: Paul Cercueil Signed-off-by: Paul Burton Cc: Greg Kroah-Hartman Cc: linux-kernel@vger.kernel.org Cc: linux-mips@vger.kernel.org commit 0b24cae4d535045f4c9e177aa228d4e97bad212c Author: Dmitry Korotin Date: Mon Jun 24 19:05:27 2019 +0000 MIPS: Add missing EHB in mtc0 -> mfc0 sequence. Add a missing EHB (Execution Hazard Barrier) in mtc0 -> mfc0 sequence. Without this execution hazard barrier it's possible for the value read back from the KScratch register to be the value from before the mtc0. Reproducible on P5600 & P6600. The hazard is documented in the MIPS Architecture Reference Manual Vol. III: MIPS32/microMIPS32 Privileged Resource Architecture (MD00088), rev 6.03 table 8.1 which includes: Producer | Consumer | Hazard ----------|----------|---------------------------- mtc0 | mfc0 | any coprocessor 0 register Signed-off-by: Dmitry Korotin [paul.burton@mips.com: - Commit message tweaks. - Add Fixes tags. - Mark for stable back to v3.15 where P5600 support was introduced.] Signed-off-by: Paul Burton Fixes: 3d8bfdd03072 ("MIPS: Use C0_KScratch (if present) to hold PGD pointer.") Fixes: 829dcc0a956a ("MIPS: Add MIPS P5600 probe support") Cc: linux-mips@vger.kernel.org Cc: stable@vger.kernel.org # v3.15+ commit c88e40e07cd967dcdf37321a63ab6e8b0d881100 Merge: 39071cf828b4 63b2de12b7ee Author: Linus Torvalds Date: Tue Jun 25 03:41:03 2019 +0800 Merge tag 'mfd-fixes-5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd Pull mfd bugfix from Lee Jones. Fix stmfx type confusion between regmap_read() (which takes an "u32") and the bitmap operations (which take an "unsigned long" array). * tag 'mfd-fixes-5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: mfd: stmfx: Fix an endian bug in stmfx_irq_handler() mfd: stmfx: Uninitialized variable in stmfx_irq_handler() commit 8b12b812f5367c2469fb937da7e28dd321ad8d7b Author: Kan Liang Date: Tue May 28 15:08:34 2019 -0700 perf/x86/regs: Use PERF_REG_EXTENDED_MASK Use the macro defined in kernel ABI header to replace the local name. No functional change. Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Link: https://lkml.kernel.org/r/1559081314-9714-5-git-send-email-kan.liang@linux.intel.com Signed-off-by: Ingo Molnar commit cd6b984f6d8cd615755b5404a51b7efe45215f28 Author: Kan Liang Date: Tue May 28 15:08:33 2019 -0700 perf/x86: Remove pmu->pebs_no_xmm_regs We don't need pmu->pebs_no_xmm_regs anymore, the capabilities PERF_PMU_CAP_EXTENDED_REGS can be used to check if XMM registers collection is supported. Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Link: https://lkml.kernel.org/r/1559081314-9714-4-git-send-email-kan.liang@linux.intel.com Signed-off-by: Ingo Molnar commit dce86ac75d772047e9bc606154704aa73bfd4c83 Author: Kan Liang Date: Tue May 28 15:08:32 2019 -0700 perf/x86: Clean up PEBS_XMM_REGS Use generic macro PERF_REG_EXTENDED_MASK to replace PEBS_XMM_REGS to avoid duplication. Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Link: https://lkml.kernel.org/r/1559081314-9714-3-git-send-email-kan.liang@linux.intel.com Signed-off-by: Ingo Molnar commit 90d424915ab6550826d297fd62df8ee255345b95 Author: Kan Liang Date: Tue May 28 15:08:31 2019 -0700 perf/x86/regs: Check reserved bits The perf fuzzer triggers a warning which map to: if (WARN_ON_ONCE(idx >= ARRAY_SIZE(pt_regs_offset))) return 0; The bits between XMM registers and generic registers are reserved. But perf_reg_validate() doesn't check these bits. Add PERF_REG_X86_RESERVED for reserved bits on X86. Check the reserved bits in perf_reg_validate(). Reported-by: Vince Weaver Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Fixes: 878068ea270e ("perf/x86: Support outputting XMM registers") Link: https://lkml.kernel.org/r/1559081314-9714-2-git-send-email-kan.liang@linux.intel.com Signed-off-by: Ingo Molnar commit e321d02db87af7840da29ef833a2a71fc0eab198 Author: Kan Liang Date: Tue May 28 15:08:30 2019 -0700 perf/x86: Disable extended registers for non-supported PMUs The perf fuzzer caused Skylake machine to crash: [ 9680.085831] Call Trace: [ 9680.088301] [ 9680.090363] perf_output_sample_regs+0x43/0xa0 [ 9680.094928] perf_output_sample+0x3aa/0x7a0 [ 9680.099181] perf_event_output_forward+0x53/0x80 [ 9680.103917] __perf_event_overflow+0x52/0xf0 [ 9680.108266] ? perf_trace_run_bpf_submit+0xc0/0xc0 [ 9680.113108] perf_swevent_hrtimer+0xe2/0x150 [ 9680.117475] ? check_preempt_wakeup+0x181/0x230 [ 9680.122091] ? check_preempt_curr+0x62/0x90 [ 9680.126361] ? ttwu_do_wakeup+0x19/0x140 [ 9680.130355] ? try_to_wake_up+0x54/0x460 [ 9680.134366] ? reweight_entity+0x15b/0x1a0 [ 9680.138559] ? __queue_work+0x103/0x3f0 [ 9680.142472] ? update_dl_rq_load_avg+0x1cd/0x270 [ 9680.147194] ? timerqueue_del+0x1e/0x40 [ 9680.151092] ? __remove_hrtimer+0x35/0x70 [ 9680.155191] __hrtimer_run_queues+0x100/0x280 [ 9680.159658] hrtimer_interrupt+0x100/0x220 [ 9680.163835] smp_apic_timer_interrupt+0x6a/0x140 [ 9680.168555] apic_timer_interrupt+0xf/0x20 [ 9680.172756] The XMM registers can only be collected by PEBS hardware events on the platforms with PEBS baseline support, e.g. Icelake, not software/probe events. Add capabilities flag PERF_PMU_CAP_EXTENDED_REGS to indicate the PMU which support extended registers. For X86, the extended registers are XMM registers. Add has_extended_regs() to check if extended registers are applied. The generic code define the mask of extended registers as 0 if arch headers haven't overridden it. Originally-by: Peter Zijlstra (Intel) Reported-by: Vince Weaver Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Fixes: 878068ea270e ("perf/x86: Support outputting XMM registers") Link: https://lkml.kernel.org/r/1559081314-9714-1-git-send-email-kan.liang@linux.intel.com Signed-off-by: Ingo Molnar commit 913a90bc5a3a06b1f04c337320e9aeee2328dd77 Author: Ravi Bangoria Date: Tue Jun 4 09:59:53 2019 +0530 perf/ioctl: Add check for the sample_period value perf_event_open() limits the sample_period to 63 bits. See: 0819b2e30ccb ("perf: Limit perf_event_attr::sample_period to 63 bits") Make ioctl() consistent with it. Also on PowerPC, negative sample_period could cause a recursive PMIs leading to a hang (reported when running perf-fuzzer). Signed-off-by: Ravi Bangoria Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: acme@kernel.org Cc: linuxppc-dev@lists.ozlabs.org Cc: maddy@linux.vnet.ibm.com Cc: mpe@ellerman.id.au Fixes: 0819b2e30ccb ("perf: Limit perf_event_attr::sample_period to 63 bits") Link: https://lkml.kernel.org/r/20190604042953.914-1-ravi.bangoria@linux.ibm.com Signed-off-by: Ingo Molnar commit 904d88d743b0c94092c5117955eab695df8109e8 Author: Bjørn Mork Date: Mon Jun 24 18:45:11 2019 +0200 qmi_wwan: Fix out-of-bounds read The syzbot reported Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0xca/0x13e lib/dump_stack.c:113 print_address_description+0x67/0x231 mm/kasan/report.c:188 __kasan_report.cold+0x1a/0x32 mm/kasan/report.c:317 kasan_report+0xe/0x20 mm/kasan/common.c:614 qmi_wwan_probe+0x342/0x360 drivers/net/usb/qmi_wwan.c:1417 usb_probe_interface+0x305/0x7a0 drivers/usb/core/driver.c:361 really_probe+0x281/0x660 drivers/base/dd.c:509 driver_probe_device+0x104/0x210 drivers/base/dd.c:670 __device_attach_driver+0x1c2/0x220 drivers/base/dd.c:777 bus_for_each_drv+0x15c/0x1e0 drivers/base/bus.c:454 Caused by too many confusing indirections and casts. id->driver_info is a pointer stored in a long. We want the pointer here, not the address of it. Thanks-to: Hillf Danton Reported-by: syzbot+b68605d7fadd21510de1@syzkaller.appspotmail.com Cc: Kristian Evensen Fixes: e4bf63482c30 ("qmi_wwan: Add quirk for Quectel dynamic config") Signed-off-by: Bjørn Mork Signed-off-by: David S. Miller commit 4f07b80c973348a99b5d2a32476a2e7877e94a05 Author: Xin Long Date: Tue Jun 25 00:28:19 2019 +0800 tipc: check msg->req data len in tipc_nl_compat_bearer_disable This patch is to fix an uninit-value issue, reported by syzbot: BUG: KMSAN: uninit-value in memchr+0xce/0x110 lib/string.c:981 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x191/0x1f0 lib/dump_stack.c:113 kmsan_report+0x130/0x2a0 mm/kmsan/kmsan.c:622 __msan_warning+0x75/0xe0 mm/kmsan/kmsan_instr.c:310 memchr+0xce/0x110 lib/string.c:981 string_is_valid net/tipc/netlink_compat.c:176 [inline] tipc_nl_compat_bearer_disable+0x2a1/0x480 net/tipc/netlink_compat.c:449 __tipc_nl_compat_doit net/tipc/netlink_compat.c:327 [inline] tipc_nl_compat_doit+0x3ac/0xb00 net/tipc/netlink_compat.c:360 tipc_nl_compat_handle net/tipc/netlink_compat.c:1178 [inline] tipc_nl_compat_recv+0x1b1b/0x27b0 net/tipc/netlink_compat.c:1281 TLV_GET_DATA_LEN() may return a negtive int value, which will be used as size_t (becoming a big unsigned long) passed into memchr, cause this issue. Similar to what it does in tipc_nl_compat_bearer_enable(), this fix is to return -EINVAL when TLV_GET_DATA_LEN() is negtive in tipc_nl_compat_bearer_disable(), as well as in tipc_nl_compat_link_stat_dump() and tipc_nl_compat_link_reset_stats(). v1->v2: - add the missing Fixes tags per Eric's request. Fixes: 0762216c0ad2 ("tipc: fix uninit-value in tipc_nl_compat_bearer_enable") Fixes: 8b66fee7f8ee ("tipc: fix uninit-value in tipc_nl_compat_link_reset_stats") Reported-by: syzbot+30eaa8bf392f7fafffaf@syzkaller.appspotmail.com Signed-off-by: Xin Long Signed-off-by: David S. Miller commit 2bf4ecbcc7d837903c5967c9274f41b1ad29d530 Author: Antoine Tenart Date: Fri Jun 21 17:26:35 2019 +0200 net: macb: do not copy the mac address if NULL This patch fixes the MAC address setup in the probe. The MAC address retrieved using of_get_mac_address was checked for not containing an error, but it may also be NULL which wasn't tested. Fix it by replacing IS_ERR with IS_ERR_OR_NULL. Fixes: 541ddc66d665 ("net: macb: support of_get_mac_address new ERR_PTR error") Signed-off-by: Antoine Tenart Acked-by: Nicolas Ferre Signed-off-by: David S. Miller commit 55655e3d1197fff16a7a05088fb0e5eba50eac55 Author: Eric Dumazet Date: Mon Jun 24 02:38:20 2019 -0700 net/packet: fix memory leak in packet_set_ring() syzbot found we can leak memory in packet_set_ring(), if user application provides buggy parameters. Fixes: 7f953ab2ba46 ("af_packet: TX_RING support for TPACKET_V3") Signed-off-by: Eric Dumazet Cc: Sowmini Varadhan Reported-by: syzbot Signed-off-by: David S. Miller commit 9354544cbccf68da1b047f8fb7b47630e3c8a59d Author: Dirk van der Merwe Date: Sun Jun 23 21:26:58 2019 -0700 net/tls: fix page double free on TX cleanup With commit 94850257cf0f ("tls: Fix tls_device handling of partial records") a new path was introduced to cleanup partial records during sk_proto_close. This path does not handle the SW KTLS tx_list cleanup. This is unnecessary though since the free_resources calls for both SW and offload paths will cleanup a partial record. The visible effect is the following warning, but this bug also causes a page double free. WARNING: CPU: 7 PID: 4000 at net/core/stream.c:206 sk_stream_kill_queues+0x103/0x110 RIP: 0010:sk_stream_kill_queues+0x103/0x110 RSP: 0018:ffffb6df87e07bd0 EFLAGS: 00010206 RAX: 0000000000000000 RBX: ffff8c21db4971c0 RCX: 0000000000000007 RDX: ffffffffffffffa0 RSI: 000000000000001d RDI: ffff8c21db497270 RBP: ffff8c21db497270 R08: ffff8c29f4748600 R09: 000000010020001a R10: ffffb6df87e07aa0 R11: ffffffff9a445600 R12: 0000000000000007 R13: 0000000000000000 R14: ffff8c21f03f2900 R15: ffff8c21f03b8df0 Call Trace: inet_csk_destroy_sock+0x55/0x100 tcp_close+0x25d/0x400 ? tcp_check_oom+0x120/0x120 tls_sk_proto_close+0x127/0x1c0 inet_release+0x3c/0x60 __sock_release+0x3d/0xb0 sock_close+0x11/0x20 __fput+0xd8/0x210 task_work_run+0x84/0xa0 do_exit+0x2dc/0xb90 ? release_sock+0x43/0x90 do_group_exit+0x3a/0xa0 get_signal+0x295/0x720 do_signal+0x36/0x610 ? SYSC_recvfrom+0x11d/0x130 exit_to_usermode_loop+0x69/0xb0 do_syscall_64+0x173/0x180 entry_SYSCALL_64_after_hwframe+0x3d/0xa2 RIP: 0033:0x7fe9b9abc10d RSP: 002b:00007fe9b19a1d48 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca RAX: fffffffffffffe00 RBX: 0000000000000006 RCX: 00007fe9b9abc10d RDX: 0000000000000002 RSI: 0000000000000080 RDI: 00007fe948003430 RBP: 00007fe948003410 R08: 00007fe948003430 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00005603739d9080 R13: 00007fe9b9ab9f90 R14: 00007fe948003430 R15: 0000000000000000 Fixes: 94850257cf0f ("tls: Fix tls_device handling of partial records") Signed-off-by: Dirk van der Merwe Signed-off-by: Jakub Kicinski Signed-off-by: David S. Miller commit 63b2de12b7eeacfb2edbe005f5c3cff17a2a02e2 Author: Dan Carpenter Date: Mon Jun 17 22:06:05 2019 +0300 mfd: stmfx: Fix an endian bug in stmfx_irq_handler() It's not okay to cast a "u32 *" to "unsigned long *" when you are doing a for_each_set_bit() loop because that will break on big endian systems. Fixes: 386145601b82 ("mfd: stmfx: Uninitialized variable in stmfx_irq_handler()") Reported-by: Linus Torvalds Signed-off-by: Dan Carpenter Tested-by: Amelie Delaunay Signed-off-by: Lee Jones commit bee19cd8f241ab3cd1bf79e03884e5371f9ef514 Author: Dmitry V. Levin Date: Sun Jun 23 14:28:00 2019 +0300 samples: make pidfd-metadata fail gracefully on older kernels Initialize pidfd to an invalid descriptor, to fail gracefully on those kernels that do not implement CLONE_PIDFD and leave pidfd unchanged. Signed-off-by: Dmitry V. Levin Signed-off-by: Christian Brauner commit 9014143bab2f3bc0b9e5db3bc8d00e2a43e50fbd Author: Dmitry V. Levin Date: Sun Jun 23 14:27:17 2019 +0300 fork: don't check parent_tidptr with CLONE_PIDFD Give userspace a cheap and reliable way to tell whether CLONE_PIDFD is supported by the kernel or not. The easiest way is to pass an invalid file descriptor value in parent_tidptr, perform the syscall and verify that parent_tidptr has been changed to a valid file descriptor value. CLONE_PIDFD uses parent_tidptr to return pidfds. CLONE_PARENT_SETTID will use parent_tidptr to return the tid of the parent. The two flags cannot be used together. Old kernels that only support CLONE_PARENT_SETTID will not verify the value pointed to by parent_tidptr. This behavior is unchanged even with the introduction of CLONE_PIDFD. However, if CLONE_PIDFD is specified the kernel will currently check the value pointed to by parent_tidptr before placing the pidfd in the memory pointed to. EINVAL will be returned if the value in parent_tidptr is not 0. If CLONE_PIDFD is supported and fd 0 is closed, then the returned pidfd can and likely will be 0 and parent_tidptr will be unchanged. This means userspace must either check CLONE_PIDFD support beforehand or check that fd 0 is not closed when invoking CLONE_PIDFD. The check for pidfd == 0 was introduced during the v5.2 merge window by commit b3e583825266 ("clone: add CLONE_PIDFD") to ensure that CLONE_PIDFD could be potentially extended by passing in flags through the return argument. However, that extension would look horrible, and with the upcoming introduction of the clone3 syscall in v5.3 there is no need to extend legacy clone syscall this way. (Even if it would need to be extended, CLONE_DETACHED can be reused with CLONE_PIDFD.) So remove the pidfd == 0 check. Userspace that needs to be portable to kernels without CLONE_PIDFD support can then be advised to initialize pidfd to -1 and check the pidfd value returned by CLONE_PIDFD. Fixes: b3e583825266 ("clone: add CLONE_PIDFD") Signed-off-by: Dmitry V. Levin Signed-off-by: Christian Brauner commit 39071cf828b42fa62336849dc910d7b74c905698 Merge: 26df62aaae9f 191f5c2ed4b6 Author: Linus Torvalds Date: Mon Jun 24 21:23:55 2019 +0800 Merge tag 'mtd/fixes-for-5.2-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux Pull mtd fixes from Miquel Raynal: - Set the raw NAND number of targets to the right value - Fix a bug uncovered by a recent patch on Spansion SPI-NOR flashes * tag 'mtd/fixes-for-5.2-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux: mtd: spi-nor: use 16-bit WRR command when QE is set on spansion flashes mtd: rawnand: initialize ntargets with maxchips commit 26df62aaae9f85e900cd5f1a5c28e44488f60de6 Merge: 9216514602ac 65565a68c582 Author: Linus Torvalds Date: Mon Jun 24 21:20:39 2019 +0800 Merge tag 'powerpc-5.2-6' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc fixes from Michael Ellerman: "One fix for a bug in our context id handling on 64-bit hash CPUs, which can lead to unrelated processes being able to read/write to each other's virtual memory. See the commit for full details. That is the fix for CVE-2019-12817. This also adds a kernel selftest for the bug" * tag 'powerpc-5.2-6' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: selftests/powerpc: Add test of fork with mapping above 512TB powerpc/mm/64s/hash: Reallocate context ids on fork commit 3cf10132ac8d536565f2c02f60a3aeb315863a52 Author: Sébastien Szymanski Date: Tue Jun 18 17:58:34 2019 +0200 ARM: dts: imx6ul: fix PWM[1-4] interrupts According to the i.MX6UL/L RM, table 3.1 "ARM Cortex A7 domain interrupt summary", the interrupts for the PWM[1-4] go from 83 to 86. Fixes: b9901fe84f02 ("ARM: dts: imx6ul: add pwm[1-4] nodes") Signed-off-by: Sébastien Szymanski Reviewed-by: Fabio Estevam Signed-off-by: Shawn Guo commit 9216514602ac436c116664ac9eaf18127ccf34df Merge: 4b972a01a7da f4bb1f895aa0 Author: Linus Torvalds Date: Mon Jun 24 21:11:01 2019 +0800 Merge tag 'auxdisplay-for-linus-v5.2-rc7' of git://github.com/ojeda/linux Pull auxdisplay cleanup from Miguel Ojeda: "A cleanup for two drivers in auxdisplay: convert them to use vm_map_pages_zero() (Souptick Joarder)" * tag 'auxdisplay-for-linus-v5.2-rc7' of git://github.com/ojeda/linux: auxdisplay/ht16k33.c: Convert to use vm_map_pages_zero() auxdisplay/cfag12864bfb.c: Convert to use vm_map_pages_zero() commit 45d5cb137c3638b3a310f41b31d8e79daf647f14 Author: YueHaibing Date: Fri Jun 21 21:44:37 2019 +0800 net/sched: cbs: Fix error path of cbs_module_init If register_qdisc fails, we should unregister netdevice notifier. Reported-by: Hulk Robot Fixes: e0a7683d30e9 ("net/sched: cbs: fix port_rate miscalculation") Signed-off-by: YueHaibing Signed-off-by: David S. Miller commit 191f5c2ed4b6fabacf1f3500242047bd844d0c3a Author: Tudor Ambarus Date: Mon Jun 10 06:24:04 2019 +0000 mtd: spi-nor: use 16-bit WRR command when QE is set on spansion flashes SPI memory devices from different manufacturers have widely different configurations for Status, Control and Configuration registers. JEDEC 216C defines a new map for these common register bits and their functions, and describes how the individual bits may be accessed for a specific device. For the JEDEC 216B compliant flashes, we can partially deduce Status and Configuration registers functions by inspecting the 16th DWORD of BFPT. Older flashes that don't declare the SFDP tables (SPANSION FL512SAIFG1 311QQ063 A ©11 SPANSION) let the software decide how to interact with these registers. The commit dcb4b22eeaf4 ("spi-nor: s25fl512s supports region locking") uncovered a probe error for s25fl512s, when the Quad Enable bit CR[1] was set to one in the bootloader. When this bit is one, only the Write Status (01h) command with two data byts may be used, the 01h command with one data byte is not recognized and hence the error when trying to clear the block protection bits. Fix the above by using the Write Status (01h) command with two data bytes when the Quad Enable bit is one. Backward compatibility should be fine. The newly introduced spi_nor_spansion_clear_sr_bp() is tightly coupled with the spansion_quad_enable() function. Both assume that the Write Register with 16 bits, together with the Read Configuration Register (35h) instructions are supported. Fixes: dcb4b22eeaf44f91 ("spi-nor: s25fl512s supports region locking") Reported-by: Geert Uytterhoeven Signed-off-by: Tudor Ambarus Tested-by: Jonas Bonn Tested-by: Geert Uytterhoeven Reviewed-by: Vignesh Raghavendra Tested-by: Vignesh Raghavendra Signed-off-by: Miquel Raynal commit c492d4c74dd3f87559883ffa0f94a8f1ae3fe5f5 Author: Xin Long Date: Thu Jun 20 18:39:28 2019 +0800 tipc: change to use register_pernet_device This patch is to fix a dst defcnt leak, which can be reproduced by doing: # ip net a c; ip net a s; modprobe tipc # ip net e s ip l a n eth1 type veth peer n eth1 netns c # ip net e c ip l s lo up; ip net e c ip l s eth1 up # ip net e s ip l s lo up; ip net e s ip l s eth1 up # ip net e c ip a a 1.1.1.2/8 dev eth1 # ip net e s ip a a 1.1.1.1/8 dev eth1 # ip net e c tipc b e m udp n u1 localip 1.1.1.2 # ip net e s tipc b e m udp n u1 localip 1.1.1.1 # ip net d c; ip net d s; rmmod tipc and it will get stuck and keep logging the error: unregister_netdevice: waiting for lo to become free. Usage count = 1 The cause is that a dst is held by the udp sock's sk_rx_dst set on udp rx path with udp_early_demux == 1, and this dst (eventually holding lo dev) can't be released as bearer's removal in tipc pernet .exit happens after lo dev's removal, default_device pernet .exit. "There are two distinct types of pernet_operations recognized: subsys and device. At creation all subsys init functions are called before device init functions, and at destruction all device exit functions are called before subsys exit function." So by calling register_pernet_device instead to register tipc_net_ops, the pernet .exit() will be invoked earlier than loopback dev's removal when a netns is being destroyed, as fou/gue does. Note that vxlan and geneve udp tunnels don't have this issue, as the udp sock is released in their device ndo_stop(). This fix is also necessary for tipc dst_cache, which will hold dsts on tx path and I will introduce in my next patch. Reported-by: Li Shuang Signed-off-by: Xin Long Acked-by: Jon Maloy Signed-off-by: David S. Miller commit 8ac8a01092b2added0749ef937037bf1912e13e3 Author: Sergej Benilov Date: Thu Jun 20 11:02:18 2019 +0200 sis900: fix TX completion Since commit 605ad7f184b60cfaacbc038aa6c55ee68dee3c89 "tcp: refine TSO autosizing", outbound throughput is dramatically reduced for some connections, as sis900 is doing TX completion within idle states only. Make TX completion happen after every transmitted packet. Test: netperf before patch: > netperf -H remote -l -2000000 -- -s 1000000 MIGRATED TCP STREAM TEST from 0.0.0.0 () port 0 AF_INET to 95.223.112.76 () port 0 AF_INET : demo Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec 87380 327680 327680 253.44 0.06 after patch: > netperf -H remote -l -10000000 -- -s 1000000 MIGRATED TCP STREAM TEST from 0.0.0.0 () port 0 AF_INET to 95.223.112.76 () port 0 AF_INET : demo Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec 87380 327680 327680 5.38 14.89 Thx to Dave Miller and Eric Dumazet for helpful hints Signed-off-by: Sergej Benilov Signed-off-by: David S. Miller commit d0bb82fd60183868f46c8ccc595a3d61c3334a18 Author: Roland Hii Date: Wed Jun 19 22:41:48 2019 +0800 net: stmmac: set IC bit when transmitting frames with HW timestamp When transmitting certain PTP frames, e.g. SYNC and DELAY_REQ, the PTP daemon, e.g. ptp4l, is polling the driver for the frame transmit hardware timestamp. The polling will most likely timeout if the tx coalesce is enabled due to the Interrupt-on-Completion (IC) bit is not set in tx descriptor for those frames. This patch will ignore the tx coalesce parameter and set the IC bit when transmitting PTP frames which need to report out the frame transmit hardware timestamp to user space. Fixes: f748be531d70 ("net: stmmac: Rework coalesce timer and fix multi-queue races") Signed-off-by: Roland Hii Signed-off-by: Ong Boon Leong Signed-off-by: Voon Weifeng Signed-off-by: David S. Miller commit a1e5388b4d5fc78688e5e9ee6641f779721d6291 Author: Roland Hii Date: Wed Jun 19 22:13:48 2019 +0800 net: stmmac: fixed new system time seconds value calculation When ADDSUB bit is set, the system time seconds field is calculated as the complement of the seconds part of the update value. For example, if 3.000000001 seconds need to be subtracted from the system time, this field is calculated as 2^32 - 3 = 4294967296 - 3 = 0x100000000 - 3 = 0xFFFFFFFD Previously, the 0x100000000 is mistakenly written as 100000000. This is further simplified from sec = (0x100000000ULL - sec); to sec = -sec; Fixes: ba1ffd74df74 ("stmmac: fix PTP support for GMAC4") Signed-off-by: Roland Hii Signed-off-by: Ong Boon Leong Signed-off-by: Voon Weifeng Signed-off-by: David S. Miller commit 4b972a01a7da614b4796475f933094751a295a2f Author: Linus Torvalds Date: Sat Jun 22 16:01:36 2019 -0700 Linux 5.2-rc6 commit 6698a71a1e360d89514aafcea15ccff837f59038 Merge: b253d5f3ecc9 0aafc8ae665f Author: Linus Torvalds Date: Sat Jun 22 14:08:47 2019 -0700 Merge tag 'iommu-fix-v5.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu Pull iommu fix from Joerg Roedel: "Revert a commit from the previous pile of fixes which causes new lockdep splats. It is better to revert it for now and work on a better and more well tested fix" * tag 'iommu-fix-v5.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: Revert "iommu/vt-d: Fix lock inversion between iommu->lock and device_domain_lock" commit 0aafc8ae665f89b9031a914f80f5e58825b33021 Author: Peter Xu Date: Fri Jun 21 10:32:05 2019 +0800 Revert "iommu/vt-d: Fix lock inversion between iommu->lock and device_domain_lock" This reverts commit 7560cc3ca7d9d11555f80c830544e463fcdb28b8. With 5.2.0-rc5 I can easily trigger this with lockdep and iommu=pt: ====================================================== WARNING: possible circular locking dependency detected 5.2.0-rc5 #78 Not tainted ------------------------------------------------------ swapper/0/1 is trying to acquire lock: 00000000ea2b3beb (&(&iommu->lock)->rlock){+.+.}, at: domain_context_mapping_one+0xa5/0x4e0 but task is already holding lock: 00000000a681907b (device_domain_lock){....}, at: domain_context_mapping_one+0x8d/0x4e0 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (device_domain_lock){....}: _raw_spin_lock_irqsave+0x3c/0x50 dmar_insert_one_dev_info+0xbb/0x510 domain_add_dev_info+0x50/0x90 dev_prepare_static_identity_mapping+0x30/0x68 intel_iommu_init+0xddd/0x1422 pci_iommu_init+0x16/0x3f do_one_initcall+0x5d/0x2b4 kernel_init_freeable+0x218/0x2c1 kernel_init+0xa/0x100 ret_from_fork+0x3a/0x50 -> #0 (&(&iommu->lock)->rlock){+.+.}: lock_acquire+0x9e/0x170 _raw_spin_lock+0x25/0x30 domain_context_mapping_one+0xa5/0x4e0 pci_for_each_dma_alias+0x30/0x140 dmar_insert_one_dev_info+0x3b2/0x510 domain_add_dev_info+0x50/0x90 dev_prepare_static_identity_mapping+0x30/0x68 intel_iommu_init+0xddd/0x1422 pci_iommu_init+0x16/0x3f do_one_initcall+0x5d/0x2b4 kernel_init_freeable+0x218/0x2c1 kernel_init+0xa/0x100 ret_from_fork+0x3a/0x50 other info that might help us debug this: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(device_domain_lock); lock(&(&iommu->lock)->rlock); lock(device_domain_lock); lock(&(&iommu->lock)->rlock); *** DEADLOCK *** 2 locks held by swapper/0/1: #0: 00000000033eb13d (dmar_global_lock){++++}, at: intel_iommu_init+0x1e0/0x1422 #1: 00000000a681907b (device_domain_lock){....}, at: domain_context_mapping_one+0x8d/0x4e0 stack backtrace: CPU: 2 PID: 1 Comm: swapper/0 Not tainted 5.2.0-rc5 #78 Hardware name: LENOVO 20KGS35G01/20KGS35G01, BIOS N23ET50W (1.25 ) 06/25/2018 Call Trace: dump_stack+0x85/0xc0 print_circular_bug.cold.57+0x15c/0x195 __lock_acquire+0x152a/0x1710 lock_acquire+0x9e/0x170 ? domain_context_mapping_one+0xa5/0x4e0 _raw_spin_lock+0x25/0x30 ? domain_context_mapping_one+0xa5/0x4e0 domain_context_mapping_one+0xa5/0x4e0 ? domain_context_mapping_one+0x4e0/0x4e0 pci_for_each_dma_alias+0x30/0x140 dmar_insert_one_dev_info+0x3b2/0x510 domain_add_dev_info+0x50/0x90 dev_prepare_static_identity_mapping+0x30/0x68 intel_iommu_init+0xddd/0x1422 ? printk+0x58/0x6f ? lockdep_hardirqs_on+0xf0/0x180 ? do_early_param+0x8e/0x8e ? e820__memblock_setup+0x63/0x63 pci_iommu_init+0x16/0x3f do_one_initcall+0x5d/0x2b4 ? do_early_param+0x8e/0x8e ? rcu_read_lock_sched_held+0x55/0x60 ? do_early_param+0x8e/0x8e kernel_init_freeable+0x218/0x2c1 ? rest_init+0x230/0x230 kernel_init+0xa/0x100 ret_from_fork+0x3a/0x50 domain_context_mapping_one() is taking device_domain_lock first then iommu lock, while dmar_insert_one_dev_info() is doing the reverse. That should be introduced by commit: 7560cc3ca7d9 ("iommu/vt-d: Fix lock inversion between iommu->lock and device_domain_lock", 2019-05-27) So far I still cannot figure out how the previous deadlock was triggered (I cannot find iommu lock taken before calling of iommu_flush_dev_iotlb()), however I'm pretty sure that that change should be incomplete at least because it does not fix all the places so we're still taking the locks in different orders, while reverting that commit is very clean to me so far that we should always take device_domain_lock first then the iommu lock. We can continue to try to find the real culprit mentioned in 7560cc3ca7d9, but for now I think we should revert it to fix current breakage. CC: Joerg Roedel CC: Lu Baolu CC: dave.jiang@intel.com Signed-off-by: Peter Xu Tested-by: Chris Wilson Signed-off-by: Joerg Roedel commit b253d5f3ecc95c2b4e8d4a525fd754c9e32b0f6e Merge: f4102766463a 6dbbd053e6ae Author: Linus Torvalds Date: Sat Jun 22 09:42:29 2019 -0700 Merge tag 'pci-v5.2-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci Pull PCI fix from Bjorn Helgaas: "If an IOMMU is present, ignore the P2PDMA whitelist we added for v5.2 because we don't yet know how to support P2PDMA in that case (Logan Gunthorpe)" * tag 'pci-v5.2-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: PCI/P2PDMA: Ignore root complex whitelist when an IOMMU is present commit f4102766463a66026bd4af6c30cbbd01f10e6c42 Merge: a8282bf087bc 5589b08e5be4 Author: Linus Torvalds Date: Sat Jun 22 09:39:03 2019 -0700 Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fixes from James Bottomley: "Three driver fixes (and one version number update): a suspend hang in ufs, a qla hard lock on module removal and a qedi panic during discovery" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: qla2xxx: Fix hardlockup in abort command during driver remove scsi: ufs: Avoid runtime suspend possibly being blocked forever scsi: qedi: update driver version to 8.37.0.20 scsi: qedi: Check targetname while finding boot target information commit a8282bf087bcfb348ad97c8ed1f457bc11fd9709 Merge: 693cd8ce3f88 500871125920 Author: Linus Torvalds Date: Sat Jun 22 09:09:42 2019 -0700 Merge tag 'powerpc-5.2-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc fixes from Michael Ellerman: "This is a frustratingly large batch at rc5. Some of these were sent earlier but were missed by me due to being distracted by other things, and some took a while to track down due to needing manual bisection on old hardware. But still we clearly need to improve our testing of KVM, and of 32-bit, so that we catch these earlier. Summary: seven fixes, all for bugs introduced this cycle. - The commit to add KASAN support broke booting on 32-bit SMP machines, due to a refactoring that moved some setup out of the secondary CPU path. - A fix for another 32-bit SMP bug introduced by the fast syscall entry implementation for 32-bit BOOKE. And a build fix for the same commit. - Our change to allow the DAWR to be force enabled on Power9 introduced a bug in KVM, where we clobber r3 leading to a host crash. - The same commit also exposed a previously unreachable bug in the nested KVM handling of DAWR, which could lead to an oops in a nested host. - One of the DMA reworks broke the b43legacy WiFi driver on some people's powermacs, fix it by enabling a 30-bit ZONE_DMA on 32-bit. - A fix for TLB flushing in KVM introduced a new bug, as it neglected to also flush the ERAT, this could lead to memory corruption in the guest. Thanks to: Aaro Koskinen, Christoph Hellwig, Christophe Leroy, Larry Finger, Michael Neuling, Suraj Jitindar Singh" * tag 'powerpc-5.2-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: KVM: PPC: Book3S HV: Invalidate ERAT when flushing guest TLB entries powerpc: enable a 30-bit ZONE_DMA for 32-bit pmac KVM: PPC: Book3S HV: Only write DAWR[X] when handling h_set_dawr in real mode KVM: PPC: Book3S HV: Fix r3 corruption in h_set_dabr() powerpc/32: fix build failure on book3e with KVM powerpc/booke: fix fast syscall entry on SMP powerpc/32s: fix initial setup of segment registers on secondary CPU commit 693cd8ce3f882524a5d06f7800dd8492411877b3 Author: Marcel Holtmann Date: Sat Jun 22 15:47:01 2019 +0200 Bluetooth: Fix regression with minimum encryption key size alignment When trying to align the minimum encryption key size requirement for Bluetooth connections, it turns out doing this in a central location in the HCI connection handling code is not possible. Original Bluetooth version up to 2.0 used a security model where the L2CAP service would enforce authentication and encryption. Starting with Bluetooth 2.1 and Secure Simple Pairing that model has changed into that the connection initiator is responsible for providing an encrypted ACL link before any L2CAP communication can happen. Now connecting Bluetooth 2.1 or later devices with Bluetooth 2.0 and before devices are causing a regression. The encryption key size check needs to be moved out of the HCI connection handling into the L2CAP channel setup. To achieve this, the current check inside hci_conn_security() has been moved into l2cap_check_enc_key_size() helper function and then called from four decisions point inside L2CAP to cover all combinations of Secure Simple Pairing enabled devices and device using legacy pairing and legacy service security model. Fixes: d5bb334a8e17 ("Bluetooth: Align minimum encryption key size for LE and BR/EDR connections") Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203643 Signed-off-by: Marcel Holtmann Cc: stable@vger.kernel.org Signed-off-by: Linus Torvalds commit aad1dcc4f011ea409850e040363dff1e59aa4175 Author: Takashi Iwai Date: Wed Jun 19 15:34:07 2019 +0200 ppp: mppe: Add softdep to arc4 The arc4 crypto is mandatory at ppp_mppe probe time, so let's put a softdep line, so that the corresponding module gets prepared gracefully. Without this, a simple inclusion to initrd via dracut failed due to the missing dependency, for example. Signed-off-by: Takashi Iwai Signed-off-by: David S. Miller commit 2e5db6eb3c23e5dc8171eb8f6af7a97ef9fcf3a9 Author: Petr Oros Date: Wed Jun 19 14:29:42 2019 +0200 be2net: fix link failure after ethtool offline test Certain cards in conjunction with certain switches need a little more time for link setup that results in ethtool link test failure after offline test. Patch adds a loop that waits for a link setup finish. Changes in v2: - added fixes header Fixes: 4276e47e2d1c ("be2net: Add link test to list of ethtool self tests.") Signed-off-by: Petr Oros Reviewed-by: Ivan Vecera Signed-off-by: David S. Miller commit ea136a112d89bade596314a1ae49f748902f4727 Author: Colin Ian King Date: Wed Jun 19 19:14:46 2019 +0100 x86/apic: Fix integer overflow on 10 bit left shift of cpu_khz The left shift of unsigned int cpu_khz will overflow for large values of cpu_khz, so cast it to a long long before shifting it to avoid overvlow. For example, this can happen when cpu_khz is 4194305, i.e. ~4.2 GHz. Addresses-Coverity: ("Unintentional integer overflow") Fixes: 8c3ba8d04924 ("x86, apic: ack all pending irqs when crashed/on kexec") Signed-off-by: Colin Ian King Signed-off-by: Thomas Gleixner Cc: Borislav Petkov Cc: "H . Peter Anvin" Cc: kernel-janitors@vger.kernel.org Link: https://lkml.kernel.org/r/20190619181446.13635-1-colin.king@canonical.com commit 48c7d73b2362ce61503551ad70052617b3e8857d Merge: 88447c5b93d9 975a6166a858 Author: Thomas Gleixner Date: Sat Jun 22 11:16:25 2019 +0200 Merge tag 'efi-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi into efi/urgent Pull another handful of EFI fixes for v5.2 from Arnd: - Fix a potential crash after kexec on arm64 with GICv3 - Fix a build warning on x86 - Stop policing the BGRT feature flags - Use a non-blocking version of SetVariable() in the boot control driver commit 975a6166a8584ee4a1b8bd93098e49dc101d7171 Author: Tian Baofeng Date: Wed Jun 12 16:18:10 2019 +0800 efibc: Replace variable set function in notifier call Replace the variable set function from "efivar_entry_set" to "efivar_entry_set_safe" in efibc panic notifier. In safe function parameter "block" will set to false and will call "efivar_entry_set_nonblocking"to set efi variables. efivar_entry_set_nonblocking is guaranteed to not block and is suitable for calling from crash/panic handlers. In UEFI android platform, when warm reset happens, with this change, efibc will not block the reboot process. Otherwise, set variable will call queue work and send to other offlined cpus then cause another panic, finally will cause reboot failure. Signed-off-by: Tian Baofeng Signed-off-by: Luo XinanX Signed-off-by: Ard Biesheuvel commit c356dc4b540edd6c02b409dd8cf3208ba2804c38 Merge: 121bddf39a8e b6653b3629e5 Author: Linus Torvalds Date: Fri Jun 21 22:23:35 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: 1) Fix leak of unqueued fragments in ipv6 nf_defrag, from Guillaume Nault. 2) Don't access the DDM interface unless the transceiver implements it in bnx2x, from Mauro S. M. Rodrigues. 3) Don't double fetch 'len' from userspace in sock_getsockopt(), from JingYi Hou. 4) Sign extension overflow in lio_core, from Colin Ian King. 5) Various netem bug fixes wrt. corrupted packets from Jakub Kicinski. 6) Fix epollout hang in hvsock, from Sunil Muthuswamy. 7) Fix regression in default fib6_type, from David Ahern. 8) Handle memory limits in tcp_fragment more appropriately, from Eric Dumazet. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (24 commits) tcp: refine memory limit test in tcp_fragment() inet: clear num_timeout reqsk_alloc() net: mvpp2: debugfs: Add pmap to fs dump ipv6: Default fib6_type to RTN_UNICAST when not set net: hns3: Fix inconsistent indenting net/af_iucv: always register net_device notifier net/af_iucv: build proper skbs for HiperTransport net/af_iucv: remove GFP_DMA restriction for HiperTransport net: dsa: mv88e6xxx: fix shift of FID bits in mv88e6185_g1_vtu_loadpurge() hvsock: fix epollout hang from race condition net/udp_gso: Allow TX timestamp with UDP GSO net: netem: fix use after free and double free with packet corruption net: netem: fix backlog accounting for corrupted GSO frames net: lio_core: fix potential sign-extension overflow on large shift tipc: pass tunnel dev as NULL to udp_tunnel(6)_xmit_skb ip6_tunnel: allow not to count pkts on tstats by passing dev as NULL ip_tunnel: allow not to count pkts on tstats by setting skb's dev to NULL tun: wake up waitqueues after IFF_UP is set net: remove duplicate fetch in sock_getsockopt tipc: fix issues with early FAILOVER_MSG from peer ... commit b6653b3629e5b88202be3c9abc44713973f5c4b4 Author: Eric Dumazet Date: Fri Jun 21 06:09:55 2019 -0700 tcp: refine memory limit test in tcp_fragment() tcp_fragment() might be called for skbs in the write queue. Memory limits might have been exceeded because tcp_sendmsg() only checks limits at full skb (64KB) boundaries. Therefore, we need to make sure tcp_fragment() wont punish applications that might have setup very low SO_SNDBUF values. Fixes: f070ef2ac667 ("tcp: tcp_fragment() should apply sane memory limits") Signed-off-by: Eric Dumazet Reported-by: Christoph Paasch Tested-by: Christoph Paasch Signed-off-by: David S. Miller commit 121bddf39a8e39baf0df9ef1d688392c179935cd Merge: c036f7dabc34 7a5834e456f7 Author: Linus Torvalds Date: Fri Jun 21 14:47:09 2019 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma Pull rdma fixes from Doug Ledford: "This is probably our last -rc pull request. We don't have anything else outstanding at the moment anyway, and with the summer months on us and people taking trips, I expect the next weeks leading up to the merge window to be pretty calm and sedate. This has two simple, no brainer fixes for the EFA driver. Then it has ten not quite so simple fixes for the hfi1 driver. The problem with them is that they aren't simply one liner typo fixes. They're still fixes, but they're more complex issues like livelock under heavy load where the answer was to change work queue usage and spinlock usage to resolve the problem, or issues with orphaned requests during certain types of failures like link down which required some more complex work to fix too. They all look like legitimate fixes to me, they just aren't small like I wish they were. Summary: - 2 minor EFA fixes - 10 hfi1 fixes related to scaling issues" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: RDMA/efa: Handle mmap insertions overflow RDMA/efa: Fix success return value in case of error IB/hfi1: Handle port down properly in pio IB/hfi1: Handle wakeup of orphaned QPs for pio IB/hfi1: Wakeup QPs orphaned on wait list after flush IB/hfi1: Use aborts to trigger RC throttling IB/hfi1: Create inline to get extended headers IB/hfi1: Silence txreq allocation warnings IB/hfi1: Avoid hardlockup with flushlist_lock IB/hfi1: Correct tid qp rcd to match verbs context IB/hfi1: Close PSM sdma_progress sleep window IB/hfi1: Validate fault injection opcode user input commit c036f7dabc34ff14fb8a4a04cf3d53afb435715a Merge: ff17bbe0bb40 19d55046cd82 Author: Linus Torvalds Date: Fri Jun 21 13:45:41 2019 -0700 Merge tag 'nfs-for-5.2-3' of git://git.linux-nfs.org/projects/anna/linux-nfs Pull more NFS client fixes from Anna Schumaker: "These are mostly refcounting issues that people have found recently. The revert fixes a suspend recovery performance issue. - SUNRPC: Fix a credential refcount leak - Revert "SUNRPC: Declare RPC timers as TIMER_DEFERRABLE" - SUNRPC: Fix xps refcount imbalance on the error path - NFS4: Only set creation opendata if O_CREAT" * tag 'nfs-for-5.2-3' of git://git.linux-nfs.org/projects/anna/linux-nfs: SUNRPC: Fix a credential refcount leak Revert "SUNRPC: Declare RPC timers as TIMER_DEFERRABLE" net :sunrpc :clnt :Fix xps refcount imbalance on the error path NFS4: Only set creation opendata if O_CREAT commit ff17bbe0bb405ad8b36e55815d381841f9fdeebc Author: Andy Lutomirski Date: Fri Jun 21 08:43:04 2019 -0700 x86/vdso: Prevent segfaults due to hoisted vclock reads GCC 5.5.0 sometimes cleverly hoists reads of the pvclock and/or hvclock pages before the vclock mode checks. This creates a path through vclock_gettime() in which no vclock is enabled at all (due to disabled TSC on old CPUs, for example) but the pvclock or hvclock page nevertheless read. This will segfault on bare metal. This fixes commit 459e3a21535a ("gcc-9: properly declare the {pv,hv}clock_page storage") in the sense that, before that commit, GCC didn't seem to generate the offending code. There was nothing wrong with that commit per se, and -stable maintainers should backport this to all supported kernels regardless of whether the offending commit was present, since the same crash could just as easily be triggered by the phase of the moon. On GCC 9.1.1, this doesn't seem to affect the generated code at all, so I'm not too concerned about performance regressions from this fix. Cc: stable@vger.kernel.org Cc: x86@kernel.org Cc: Borislav Petkov Reported-by: Duncan Roe Signed-off-by: Andy Lutomirski Signed-off-by: Linus Torvalds commit 60c112b0ada09826cc4ae6a4e55df677f76f1313 Author: Jens Axboe Date: Fri Jun 21 10:20:18 2019 -0600 io_uring: ensure req->file is cleared on allocation Stephen reports: I hit the following General Protection Fault when testing io_uring via the io_uring engine in fio. This was on a VM running 5.2-rc5 and the latest version of fio. The issue occurs for both null_blk and fake NVMe drives. I have not tested bare metal or real NVMe SSDs. The fio script used is given below. [io_uring] time_based=1 runtime=60 filename=/dev/nvme2n1 (note /dev/nullb0 also fails) ioengine=io_uring bs=4k rw=readwrite direct=1 fixedbufs=1 sqthread_poll=1 sqthread_poll_cpu=0 general protection fault: 0000 [#1] SMP PTI CPU: 0 PID: 872 Comm: io_uring-sq Not tainted 5.2.0-rc5-cpacket-io-uring #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014 RIP: 0010:fput_many+0x7/0x90 Code: 01 48 85 ff 74 17 55 48 89 e5 53 48 8b 1f e8 a0 f9 ff ff 48 85 db 48 89 df 75 f0 5b 5d f3 c3 0f 1f 40 00 0f 1f 44 00 00 89 f6 48 29 77 38 74 01 c3 55 48 89 e5 53 48 89 fb 65 48 \ RSP: 0018:ffffadeb817ebc50 EFLAGS: 00010246 RAX: 0000000000000004 RBX: ffff8f46ad477480 RCX: 0000000000001805 RDX: 0000000000000000 RSI: 0000000000000001 RDI: f18b51b9a39552b5 RBP: ffffadeb817ebc58 R08: ffff8f46b7a318c0 R09: 000000000000015d R10: ffffadeb817ebce8 R11: 0000000000000020 R12: ffff8f46ad4cd000 R13: 00000000fffffff7 R14: ffffadeb817ebe30 R15: 0000000000000004 FS: 0000000000000000(0000) GS:ffff8f46b7a00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000055828f0bbbf0 CR3: 0000000232176004 CR4: 00000000003606f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: ? fput+0x13/0x20 io_free_req+0x20/0x40 io_put_req+0x1b/0x20 io_submit_sqe+0x40a/0x680 ? __switch_to_asm+0x34/0x70 ? __switch_to_asm+0x40/0x70 io_submit_sqes+0xb9/0x160 ? io_submit_sqes+0xb9/0x160 ? __switch_to_asm+0x40/0x70 ? __switch_to_asm+0x34/0x70 ? __schedule+0x3f2/0x6a0 ? __switch_to_asm+0x34/0x70 io_sq_thread+0x1af/0x470 ? __switch_to_asm+0x34/0x70 ? wait_woken+0x80/0x80 ? __switch_to+0x85/0x410 ? __switch_to_asm+0x40/0x70 ? __switch_to_asm+0x34/0x70 ? __schedule+0x3f2/0x6a0 kthread+0x105/0x140 ? io_submit_sqes+0x160/0x160 ? kthread+0x105/0x140 ? io_submit_sqes+0x160/0x160 ? kthread_destroy_worker+0x50/0x50 ret_from_fork+0x35/0x40 which occurs because using a kernel side submission thread isn't valid without using fixed files (registered through io_uring_register()). This causes io_uring to put the request after logging an error, but before the file field is set in the request. If it happens to be non-zero, we attempt to fput() garbage. Fix this by ensuring that req->file is initialized when the request is allocated. Cc: stable@vger.kernel.org # 5.1+ Reported-by: Stephen Bates Tested-by: Stephen Bates Signed-off-by: Jens Axboe commit 19d55046cd824baab53534ba7e7f99945c6fdcb1 Author: Trond Myklebust Date: Thu Jun 20 10:47:40 2019 -0400 SUNRPC: Fix a credential refcount leak All callers of __rpc_clone_client() pass in a value for args->cred, meaning that the credential gets assigned and referenced in the call to rpc_new_client(). Reported-by: Ido Schimmel Fixes: 79caa5fad47c ("SUNRPC: Cache cred of process creating the rpc_client") Signed-off-by: Trond Myklebust Tested-by: Ido Schimmel Signed-off-by: Anna Schumaker commit 502980e84e4025d82e81f7d9684a708a3b31bcde Author: Anna Schumaker Date: Tue Jun 18 14:57:33 2019 -0400 Revert "SUNRPC: Declare RPC timers as TIMER_DEFERRABLE" Jon Hunter reports: "I have been noticing intermittent failures with a system suspend test on some of our machines that have a NFS mounted root file-system. Bisecting this issue points to your commit 431235818bc3 ("SUNRPC: Declare RPC timers as TIMER_DEFERRABLE") and reverting this on top of v5.2-rc3 does appear to resolve the problem. The cause of the suspend failure appears to be a long delay observed sometimes when resuming from suspend, and this is causing our test to timeout." This reverts commit 431235818bc3a919ca7487500c67c3144feece80. Reported-by: Jon Hunter Signed-off-by: Anna Schumaker commit b96226148491505318228ac52624956bd98f9e0c Author: Lin Yi Date: Mon Jun 10 10:16:56 2019 +0800 net :sunrpc :clnt :Fix xps refcount imbalance on the error path rpc_clnt_add_xprt take a reference to struct rpc_xprt_switch, but forget to release it before return, may lead to a memory leak. Signed-off-by: Lin Yi Signed-off-by: Anna Schumaker commit 909105199a682cb09c500acd443d34b182846c9c Author: Benjamin Coddington Date: Fri Jun 7 06:37:30 2019 -0400 NFS4: Only set creation opendata if O_CREAT We can end up in nfs4_opendata_alloc during task exit, in which case current->fs has already been cleaned up. This leads to a crash in current_umask(). Fix this by only setting creation opendata if we are actually doing an open with O_CREAT. We can drop the check for NULL nfs4_open_createattrs, since O_CREAT will never be set for the recovery path. Suggested-by: Trond Myklebust Signed-off-by: Benjamin Coddington Signed-off-by: Anna Schumaker commit a4c33bbb660b89fc7f21957386fb3a0b38e43f98 Merge: 0728f6c3cab1 c5d0e49e8d8f Author: Linus Torvalds Date: Fri Jun 21 11:11:30 2019 -0700 Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm Pull ARM fix from Russell King: "Just one ARM fix this time around for Jason Donenfeld, fixing a problem with the VDSO generation on big endian" * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: ARM: 8867/1: vdso: pass --be8 to linker if necessary commit 0728f6c3cab107f0aab2c8ded1292dd2cc41a228 Merge: db54615e2141 5eab9cf87b6c Author: Linus Torvalds Date: Fri Jun 21 11:03:33 2019 -0700 Merge tag 'drm-fixes-2019-06-21' of git://anongit.freedesktop.org/drm/drm Pull drm fixes from Dave Airlie: "Just catching up on the week since back from holidays, everything seems quite sane. core: - copy_to_user fix for really legacy codepaths. vmwgfx: - two dma fixes - one virt hw interaction fix i915: - modesetting fix - gvt fix panfrost: - BO unmapping fix imx: - image converter fixes" * tag 'drm-fixes-2019-06-21' of git://anongit.freedesktop.org/drm/drm: drm/i915: Don't clobber M/N values during fastset check drm: return -EFAULT if copy_to_user() fails drm/panfrost: Make sure a BO is only unmapped when appropriate drm/i915/gvt: ignore unexpected pvinfo write gpu: ipu-v3: image-convert: Fix image downsize coefficients gpu: ipu-v3: image-convert: Fix input bytesperline for packed formats gpu: ipu-v3: image-convert: Fix input bytesperline width/height align drm/vmwgfx: fix a warning due to missing dma_parms drm/vmwgfx: Honor the sg list segment size limitation drm/vmwgfx: Use the backdoor port if the HB port is not available commit db54615e21419c3cb4d699a0b0aa16cc44d0e9da Merge: b7b8a44f3aba 9b9410766f54 Author: Linus Torvalds Date: Fri Jun 21 10:20:19 2019 -0700 Merge tag 'staging-5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging/IIO/counter fixes from Greg KH: "Here are some small driver bugfixes for some staging/iio/counter drivers. Staging and IIO have been lumped together for a while, as those subsystems cross the areas a log, and counter is used by IIO, so that's why they are all in one pull request here. These are small fixes for reported issues in some iio drivers, the erofs filesystem, and a build issue for counter code. All have been in linux-next with no reported issues" * tag 'staging-5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: staging: erofs: add requirements field in superblock counter/ftm-quaddec: Add missing dependencies in Kconfig staging: iio: adt7316: Fix build errors when GPIOLIB is not set iio: temperature: mlx90632 Relax the compatibility check iio: imu: st_lsm6dsx: fix PM support for st_lsm6dsx i2c controller staging:iio:ad7150: fix threshold mode config bit commit b7b8a44f3abab51cc2772c5ced2fe2f51a1ad2b8 Merge: cf24242189b9 6f828c55e267 Author: Linus Torvalds Date: Fri Jun 21 10:18:16 2019 -0700 Merge tag 'char-misc-5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc Pull char/misc driver fixes from Greg KH: "Here are a number of small driver fixes for 5.2-rc6 Nothing major, just fixes for reported issues: - soundwire fixes - thunderbolt fixes - MAINTAINERS update for fpga maintainer change - binder bugfix - habanalabs 64bit pointer fix - documentation updates All of these have been in linux-next with no reported issues" * tag 'char-misc-5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: habanalabs: use u64_to_user_ptr() for reading user pointers doc: fix documentation about UIO_MEM_LOGICAL using MAINTAINERS / Documentation: Thorsten Scherer is the successor of Gavin Schenk docs: fb: Add TER16x32 to the available font names MAINTAINERS: fpga: hand off maintainership to Moritz thunderbolt: Implement CIO reset correctly for Titan Ridge binder: fix possible UAF when freeing buffer thunderbolt: Make sure device runtime resume completes before taking domain lock soundwire: intel: set dai min and max channels correctly soundwire: stream: fix bad unlock balance soundwire: stream: fix out of boundary access on port properties commit cf24242189b935826a88feedb64761cbf483e42c Merge: c884d8ac7ffc d28bdaff5e26 Author: Linus Torvalds Date: Fri Jun 21 10:16:41 2019 -0700 Merge tag 'usb-5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb Pull USB fixes from Greg KH: "Here are four small USB fixes for 5.2-rc6. They include two xhci bugfixes, a chipidea fix, and a small dwc2 fix. Nothing major, just nice things to get resolved for reported issues. All have been in linux-next with no reported issues" * tag 'usb-5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: xhci: detect USB 3.2 capable host controllers correctly usb: xhci: Don't try to recover an endpoint if port is in error state. usb: dwc2: Use generic PHY width in params setup usb: chipidea: udc: workaround for endpoint conflict issue commit c884d8ac7ffccc094e9674a3eb3be90d3b296c0a Merge: 05512b0f4652 c891f3b97964 Author: Linus Torvalds Date: Fri Jun 21 09:58:42 2019 -0700 Merge tag 'spdx-5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/spdx Pull still more SPDX updates from Greg KH: "Another round of SPDX updates for 5.2-rc6 Here is what I am guessing is going to be the last "big" SPDX update for 5.2. It contains all of the remaining GPLv2 and GPLv2+ updates that were "easy" to determine by pattern matching. The ones after this are going to be a bit more difficult and the people on the spdx list will be discussing them on a case-by-case basis now. Another 5000+ files are fixed up, so our overall totals are: Files checked: 64545 Files with SPDX: 45529 Compared to the 5.1 kernel which was: Files checked: 63848 Files with SPDX: 22576 This is a huge improvement. Also, we deleted another 20000 lines of boilerplate license crud, always nice to see in a diffstat" * tag 'spdx-5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/spdx: (65 commits) treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 507 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 506 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 505 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 504 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 503 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 502 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 501 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 499 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 498 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 497 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 496 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 495 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 491 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 490 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 489 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 488 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 487 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 486 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 485 ... commit 05512b0f46526c4e248b1da9386d73a84b7d327b Merge: 4ae004a9bca8 61cabc7b0a5c Author: Linus Torvalds Date: Fri Jun 21 09:51:44 2019 -0700 Merge tag '5.2-rc5-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6 Pull cifs fixes from Steve French: "Four small SMB3 fixes, all for stable" * tag '5.2-rc5-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6: cifs: fix GlobalMid_Lock bug in cifs_reconnect SMB3: retry on STATUS_INSUFFICIENT_RESOURCES instead of failing write cifs: add spinlock for the openFileList to cifsInodeInfo cifs: fix panic in smb2_reconnect commit 919aef44d73d5d0c04213cb1bc31149cc074e65e Author: Qian Cai Date: Wed Jun 19 13:47:44 2019 -0400 x86/efi: fix a -Wtype-limits compilation warning Compiling a kernel with W=1 generates this warning, arch/x86/platform/efi/quirks.c:731:16: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits] Fixes: 3425d934fc03 ("efi/x86: Handle page faults occurring while running ...") Signed-off-by: Qian Cai Acked-by: "Prakhya, Sai Praneeth" Signed-off-by: Ard Biesheuvel commit 5eab9cf87b6c261f4e2f6c7623171cc2f5ea1a9c Merge: 91cbf5d2365c 912bbf7e9ca4 Author: Dave Airlie Date: Fri Jun 21 11:44:20 2019 +1000 Merge tag 'imx-drm-fixes-2019-06-20' of git://git.pengutronix.de/git/pza/linux into drm-fixes drm/imx: ipu-v3 image converter fixes This series fixes input buffer alignment and downsizer configuration to adhere to IPU mem2mem CSC/scaler hardware restrictions in certain downscaling ratios. Signed-off-by: Dave Airlie From: Philipp Zabel Link: https://patchwork.freedesktop.org/patch/msgid/1561040798.14349.20.camel@pengutronix.de commit 91cbf5d2365c980b0abdd0924f7fdd38bbf55c78 Merge: ea37e1a35c88 475df5d0f3eb Author: Dave Airlie Date: Fri Jun 21 11:39:14 2019 +1000 Merge tag 'drm-intel-fixes-2019-06-20' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes drm/i915 fixes for v5.2-rc6: - GVT: Fix reserved PVINFO register write (Weinan) - Avoid clobbering M/N values in fastset fuzzy checks (Ville) Signed-off-by: Dave Airlie From: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/87pnn8sbdp.fsf@intel.com commit ea37e1a35c88923837f7c03a3ee17da81dccda67 Merge: 47e3c4c96460 74b67efa8d7b Author: Dave Airlie Date: Fri Jun 21 11:35:12 2019 +1000 Merge tag 'drm-misc-fixes-2019-06-19' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes panfrost- Only unmap BO's if they're mapped (Boris) core- Handle buffer desc copy_to_user failure properly (Dan) Cc: Boris Brezillon Cc: Dan Carpenter Signed-off-by: Dave Airlie From: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190619192745.GA145841@art_vandelay commit 47e3c4c96460073120577869f17b274264ca9788 Merge: 9e0babf2c06c 39916897cd81 Author: Dave Airlie Date: Fri Jun 21 11:26:59 2019 +1000 Merge branch 'vmwgfx-fixes-5.2' of git://people.freedesktop.org/~thomash/linux into drm-fixes A couple of fixes for vmwgfx. Two fixes for a DMA sg-list debug warning message. These are not cc'd stable since there is no evidence of actual breakage. On fix for the high-bandwidth backdoor port which is cc'd stable due to upcoming hardware, on which the code would otherwise break. Signed-off-by: Dave Airlie From: Thomas Hellstrom Link: https://patchwork.freedesktop.org/patch/msgid/20190618072255.2720-1-thomas@shipmail.org commit 637dfa0fad6d91a9a709dc70549a6d20fa77f615 Author: Cedric Hombourger Date: Thu Jun 13 10:52:50 2019 +0200 MIPS: have "plain" make calls build dtbs for selected platforms scripts/package/builddeb calls "make dtbs_install" after executing a plain make (i.e. no build targets specified). It will fail if dtbs were not built beforehand. Match the arm64 architecture where DTBs get built by the "all" target. Signed-off-by: Cedric Hombourger [paul.burton@mips.com: s/builddep/builddeb] Signed-off-by: Paul Burton Cc: linux-mips@vger.kernel.org Cc: stable@vger.kernel.org # v4.1+ commit c5d0e49e8d8f1a23034fdf8e935afc0c8f7ae27d Author: Jason A. Donenfeld Date: Mon Jun 17 13:29:19 2019 +0100 ARM: 8867/1: vdso: pass --be8 to linker if necessary The commit fe00e50b2db8 ("ARM: 8858/1: vdso: use $(LD) instead of $(CC) to link VDSO") removed the passing of CFLAGS, since ld doesn't take those directly. However, prior, big-endian ARM was relying on gcc to translate its -mbe8 option into ld's --be8 option. Lacking this, ld generated be32 code, making the VDSO generate SIGILL when called by userspace. This commit passes --be8 if CONFIG_CPU_ENDIAN_BE8 is enabled. Signed-off-by: Jason A. Donenfeld Cc: Masahiro Yamada Cc: Arnd Bergmann Cc: Ard Biesheuvel Signed-off-by: Russell King commit 4ae004a9bca8bef118c2b4e76ee31c7df4514f18 Merge: b910f6a7ccab 6dde1e42f497 Author: Linus Torvalds Date: Thu Jun 20 14:19:34 2019 -0700 Merge tag 'ovl-fixes-5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs Pull overlayfs fixes from Miklos Szeredi: "Fix two regressions in this cycle, and a couple of older bugs" * tag 'ovl-fixes-5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs: ovl: make i_ino consistent with st_ino in more cases ovl: fix typo in MODULE_PARM_DESC ovl: fix bogus -Wmaybe-unitialized warning ovl: don't fail with disconnected lower NFS ovl: fix wrong flags check in FS_IOC_FS[SG]ETXATTR ioctls commit b910f6a7ccab60b4d930b438a97a265bb2b33135 Merge: b3e978337b25 766741fcaa1f Author: Linus Torvalds Date: Thu Jun 20 14:16:16 2019 -0700 Merge tag 'fuse-fixes-5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse Pull fuse fix from Miklos Szeredi: "Just a single revert, fixing a regression in -rc1" * tag 'fuse-fixes-5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse: Revert "fuse: require /dev/fuse reads to have enough buffer capacity" commit b3e978337b25b042aa653652a029e3d798814c12 Merge: e929387449cf b21e31b25304 Author: Linus Torvalds Date: Thu Jun 20 13:50:37 2019 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull kvm fixes from Paolo Bonzini: "Fixes for ARM and x86, plus selftest patches and nicer structs for nested state save/restore" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM: nVMX: reorganize initial steps of vmx_set_nested_state KVM: arm/arm64: Fix emulated ptimer irq injection tests: kvm: Check for a kernel warning kvm: tests: Sort tests in the Makefile alphabetically KVM: x86/mmu: Allocate PAE root array when using SVM's 32-bit NPT KVM: x86: Modify struct kvm_nested_state to have explicit fields for data KVM: fix typo in documentation KVM: nVMX: use correct clean fields when copying from eVMCS KVM: arm/arm64: vgic: Fix kvm_device leak in vgic_its_destroy KVM: arm64: Filter out invalid core register IDs in KVM_GET_REG_LIST KVM: arm64: Implement vq_present() as a macro commit 240b4cc8fd5db138b675297d4226ec46594d9b3b Author: Jan Kara Date: Wed Jun 19 09:05:41 2019 +0200 scsi: vmw_pscsi: Fix use-after-free in pvscsi_queue_lck() Once we unlock adapter->hw_lock in pvscsi_queue_lck() nothing prevents just queued scsi_cmnd from completing and freeing the request. Thus cmd->cmnd[0] dereference can dereference already freed request leading to kernel crashes or other issues (which one of our customers observed). Store cmd->cmnd[0] in a local variable before unlocking adapter->hw_lock to fix the issue. CC: Signed-off-by: Jan Kara Reviewed-by: Ewan D. Milne Signed-off-by: Martin K. Petersen commit e929387449cf631e96840296a01922be1ef3c832 Merge: a409de616259 615c48ad8f42 Author: Linus Torvalds Date: Thu Jun 20 12:04:57 2019 -0700 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fixes from Will Deacon: "This is mainly a couple of email address updates to MAINTAINERS, but we've also fixed a UAPI build issue with musl libc and an accidental double-initialisation of our pgd_cache due to a naming conflict with a weak symbol. There are a couple of outstanding issues that have been reported, but it doesn't look like they're new and we're still a long way off from fully debugging them. Summary: - Fix use of #include in UAPI headers for compatability with musl libc - Update email addresses in MAINTAINERS - Fix initialisation of pgd_cache due to name collision with weak symbol" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64/mm: don't initialize pgd_cache twice MAINTAINERS: Update my email address arm64/sve: should not depend on arm64: ssbd: explicitly depend on MAINTAINERS: Update my email address to use @kernel.org commit a409de616259c520cc864f3a2bba69dde208c8be Merge: d72558b2b331 11aff183225c Author: Linus Torvalds Date: Thu Jun 20 12:03:41 2019 -0700 Merge tag 's390-5.2-5' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull s390 fixes from Heiko Carstens: - Disable address-of-packed-member warning in s390 specific boot code to get rid of a gcc9 warning which otherwise is already disabled for the whole kernel. - Fix yet another compiler error seen with CONFIG_OPTIMIZE_INLINING enabled. - Fix memory leak in vfio-ccw code on module exit. * tag 's390-5.2-5' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: vfio-ccw: Destroy kmem cache region on module exit s390/ctl_reg: mark __ctl_set_bit and __ctl_clear_bit as __always_inline s390/boot: disable address-of-packed-member warning commit d72558b2b33128363e5af7f57c59766a256e8434 Merge: 6331d118ac61 c285a2f01d69 Author: Linus Torvalds Date: Thu Jun 20 10:12:53 2019 -0700 Merge tag 'for_v5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs Pull two misc vfs fixes from Jan Kara: "One small quota fix fixing spurious EDQUOT errors and one fanotify fix fixing a bug in the new fanotify FID reporting code" * tag 'for_v5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs: fanotify: update connector fsid cache on add mark quota: fix a problem about transfer quota commit 2cd42d19cffa0ec3dfb57b1b3e1a07a9bf4ed80a Author: David Howells Date: Thu Jun 20 18:12:02 2019 +0100 afs: Fix setting of i_blocks The setting of i_blocks, which is calculated from i_size, has got accidentally misordered relative to the setting of i_size when initially setting up an inode. Further, i_blocks isn't updated by afs_apply_status() when the size is updated. To fix this, break the i_size/i_blocks setting out into a helper function and call it from both places. Fixes: a58823ac4589 ("afs: Fix application of status and callback to be under same lock") Signed-off-by: David Howells commit 6331d118ac61454ee52d5f9be098e9ddab6d6572 Merge: 41a247d896d2 83293386bc95 Author: Linus Torvalds Date: Thu Jun 20 10:08:38 2019 -0700 Merge tag 'mmc-v5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc Pull MMC fixes from Ulf Hansson: "Here's quite a few MMC fixes intended for v5.2-rc6. This time it also contains fixes for a WiFi driver, which device is attached to the SDIO interface. Patches for the WiFi driver have been acked by the corresponding maintainers. Summary: MMC core: - Make switch to eMMC HS400 more robust for some controllers - Add two SDIO func API to manage re-tuning constraints - Prevent processing SDIO IRQs when the card is suspended MMC host: - sdhi: Disallow broken HS400 for M3-W ES1.2, RZ/G2M and V3H - mtk-sd: Fixup support for SDIO IRQs - sdhci-pci-o2micro: Fixup support for tuning Wireless BRCMFMAC (SDIO): - Deal with expected transmission errors related to the idle states (handled by the Always-On-Subsystem or AOS) on the SDIO-based WiFi on rk3288-veyron-minnie, rk3288-veyron-speedy and rk3288-veyron-mickey" * tag 'mmc-v5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: mmc: core: Prevent processing SDIO IRQs when the card is suspended mmc: sdhci: sdhci-pci-o2micro: Correctly set bus width when tuning brcmfmac: sdio: Don't tune while the card is off mmc: core: Add sdio_retune_hold_now() and sdio_retune_release() brcmfmac: sdio: Disable auto-tuning around commands expected to fail mmc: core: API to temporarily disable retuning for SDIO CRC errors Revert "brcmfmac: disable command decode in sdio_aos" mmc: mediatek: fix SDIO IRQ detection issue mmc: mediatek: fix SDIO IRQ interrupt handle flow mmc: core: complete HS400 before checking status mmc: sdhi: disallow HS400 for M3-W ES1.2, RZ/G2M, and V3H commit 41a247d896d20b2b7c73ec40523d7caf058c0698 Merge: 241e39004581 440078db7a55 Author: Linus Torvalds Date: Thu Jun 20 09:58:35 2019 -0700 Merge tag 'for-linus-20190620' of git://git.kernel.dk/linux-block Pull block fixes from Jens Axboe: "Three fixes that should go into this series. One is a set of two patches from Christoph, fixing a page leak on same page merges. Boiled down version of a bigger fix, but this one is more appropriate for this late in the cycle (and easier to backport to stable). The last patch is for a divide error in MD, from Mariusz (via Song)" * tag 'for-linus-20190620' of git://git.kernel.dk/linux-block: md: fix for divide error in status_resync block: fix page leak when merging to same page block: return from __bio_try_merge_page if merging occured in the same page commit b21e31b253048b7f9768ca7cc270e67765fd6ba2 Merge: 9fd588772636 e4e5a865e9a9 Author: Paolo Bonzini Date: Thu Jun 20 18:24:18 2019 +0200 Merge tag 'kvmarm-fixes-for-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD KVM/arm fixes for 5.2, take #2 - SVE cleanup killing a warning with ancient GCC versions - Don't report non-existent system registers to userspace - Fix memory leak when freeing the vgic ITS - Properly lower the interrupt on the emulated physical timer commit 9fd588772636bcbe48669d880efa2e1cc0575ebd Author: Paolo Bonzini Date: Wed Jun 19 16:52:27 2019 +0200 KVM: nVMX: reorganize initial steps of vmx_set_nested_state Commit 332d079735f5 ("KVM: nVMX: KVM_SET_NESTED_STATE - Tear down old EVMCS state before setting new state", 2019-05-02) broke evmcs_test because the eVMCS setup must be performed even if there is no VMXON region defined, as long as the eVMCS bit is set in the assist page. While the simplest possible fix would be to add a check on kvm_state->flags & KVM_STATE_NESTED_EVMCS in the initial "if" that covers kvm_state->hdr.vmx.vmxon_pa == -1ull, that is quite ugly. Instead, this patch moves checks earlier in the function and conditionalizes them on kvm_state->hdr.vmx.vmxon_pa, so that vmx_set_nested_state always goes through vmx_leave_nested and nested_enable_evmcs. Fixes: 332d079735f5 ("KVM: nVMX: KVM_SET_NESTED_STATE - Tear down old EVMCS state before setting new state") Cc: Aaron Lewis Reviewed-by: Vitaly Kuznetsov Signed-off-by: Paolo Bonzini commit 90fa9b64523a645a97edc0bdcf2d74759957eeee Author: David Howells Date: Thu Jun 20 16:49:35 2019 +0100 afs: Fix uninitialised spinlock afs_volume::cb_break_lock Fix the cb_break_lock spinlock in afs_volume struct by initialising it when the volume record is allocated. Also rename the lock to cb_v_break_lock to distinguish it from the lock of the same name in the afs_server struct. Without this, the following trace may be observed when a volume-break callback is received: INFO: trying to register non-static key. the code is fine but needs lockdep annotation. turning off the locking correctness validator. CPU: 2 PID: 50 Comm: kworker/2:1 Not tainted 5.2.0-rc1-fscache+ #3045 Hardware name: ASUS All Series/H97-PLUS, BIOS 2306 10/09/2014 Workqueue: afs SRXAFSCB_CallBack Call Trace: dump_stack+0x67/0x8e register_lock_class+0x23b/0x421 ? check_usage_forwards+0x13c/0x13c __lock_acquire+0x89/0xf73 lock_acquire+0x13b/0x166 ? afs_break_callbacks+0x1b2/0x3dd _raw_write_lock+0x2c/0x36 ? afs_break_callbacks+0x1b2/0x3dd afs_break_callbacks+0x1b2/0x3dd ? trace_event_raw_event_afs_server+0x61/0xac SRXAFSCB_CallBack+0x11f/0x16c process_one_work+0x2c5/0x4ee ? worker_thread+0x234/0x2ac worker_thread+0x1d8/0x2ac ? cancel_delayed_work_sync+0xf/0xf kthread+0x11f/0x127 ? kthread_park+0x76/0x76 ret_from_fork+0x24/0x30 Fixes: 68251f0a6818 ("afs: Fix whole-volume callback handling") Signed-off-by: David Howells commit a6853b9ce81a8f32f3c13c30ae951bb6830a896a Author: David Howells Date: Thu Jun 20 16:49:35 2019 +0100 afs: Fix vlserver record corruption Because I made the afs_call struct share pointers to an afs_server object and an afs_vlserver object to save space, afs_put_call() calls afs_put_server() on afs_vlserver object (which is only meant for the afs_server object) because it sees that call->server isn't NULL. This means that the afs_vlserver object gets unpredictably and randomly modified, depending on what config options are set (such as lockdep). Fix this by getting rid of the union and having two non-overlapping pointers in the afs_call struct. Fixes: ffba718e9354 ("afs: Get rid of afs_call::reply[]") Signed-off-by: David Howells commit 3647e42b55dcbf3b93457eb750660676e8df5010 Author: David Howells Date: Wed Jun 19 10:56:03 2019 +0100 afs: Fix over zealous "vnode modified" warnings Occasionally, warnings like this: vnode modified 2af7 on {10000b:1} [exp 2af2] YFS.FetchStatus(vnode) are emitted into the kernel log. This indicates that when we were applying the updated vnode (file) status retrieved from the server to an inode we saw that the data version number wasn't what we were expecting (in this case it's 0x2af7 rather than 0x2af2). We've usually received a callback from the server prior to this point - or the callback promise has lapsed - so the warning is merely informative and the state is to be expected. Fix this by only emitting the warning if the we still think that we have a valid callback promise and haven't received a callback. Also change the format slightly so so that the new data version doesn't look like part of the text, the like is prefixed with "kAFS: " and the message is ranked as a warning. Fixes: 31143d5d515e ("AFS: implement basic file write support") Reported-by: Ian Wienand Signed-off-by: David Howells commit 32f010deab575199df4ebe7b6aec20c17bb7eccd Author: Reinette Chatre Date: Wed Jun 19 13:27:16 2019 -0700 x86/resctrl: Prevent possible overrun during bitmap operations While the DOC at the beginning of lib/bitmap.c explicitly states that "The number of valid bits in a given bitmap does _not_ need to be an exact multiple of BITS_PER_LONG.", some of the bitmap operations do indeed access BITS_PER_LONG portions of the provided bitmap no matter the size of the provided bitmap. For example, if find_first_bit() is provided with an 8 bit bitmap the operation will access BITS_PER_LONG bits from the provided bitmap. While the operation ensures that these extra bits do not affect the result, the memory is still accessed. The capacity bitmasks (CBMs) are typically stored in u32 since they can never exceed 32 bits. A few instances exist where a bitmap_* operation is performed on a CBM by simply pointing the bitmap operation to the stored u32 value. The consequence of this pattern is that some bitmap_* operations will access out-of-bounds memory when interacting with the provided CBM. This same issue has previously been addressed with commit 49e00eee0061 ("x86/intel_rdt: Fix out-of-bounds memory access in CBM tests") but at that time not all instances of the issue were fixed. Fix this by using an unsigned long to store the capacity bitmask data that is passed to bitmap functions. Fixes: e651901187ab ("x86/intel_rdt: Introduce "bit_usage" to display cache allocations details") Fixes: f4e80d67a527 ("x86/intel_rdt: Resctrl files reflect pseudo-locked information") Fixes: 95f0b77efa57 ("x86/intel_rdt: Initialize new resource group with sane defaults") Signed-off-by: Reinette Chatre Signed-off-by: Borislav Petkov Cc: Fenghua Yu Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: stable Cc: Thomas Gleixner Cc: Tony Luck Cc: x86-ml Link: https://lkml.kernel.org/r/58c9b6081fd9bf599af0dfc01a6fdd335768efef.1560975645.git.reinette.chatre@intel.com commit f4bb1f895aa07dfcb96169192ff7c9154620df87 Author: Souptick Joarder Date: Sun May 26 21:41:10 2019 +0530 auxdisplay/ht16k33.c: Convert to use vm_map_pages_zero() While using mmap, the incorrect values of length and vm_pgoff are ignored and this driver goes ahead with mapping fbdev.buffer to user vma. Convert vm_insert_pages() to use vm_map_pages_zero(). We could later "fix" these drivers to behave according to the normal vm_pgoff offsetting simply by removing the _zero suffix on the function name and if that causes regressions, it gives us an easy way to revert. Signed-off-by: Souptick Joarder Acked-by: Robin van der Gracht Signed-off-by: Miguel Ojeda commit 461e274b2821901ca9c084f43074ad099848199f Author: Souptick Joarder Date: Sun May 26 21:40:27 2019 +0530 auxdisplay/cfag12864bfb.c: Convert to use vm_map_pages_zero() While using mmap, the incorrect values of length and vm_pgoff are ignored and this driver goes ahead with mapping cfag12864b_buffer to user vma. Convert vm_insert_pages() to use vm_map_pages_zero(). We could later "fix" these drivers to behave according to the normal vm_pgoff offsetting simply by removing the _zero suffix on the function name and if that causes regressions, it gives us an easy way to revert. Signed-off-by: Souptick Joarder Signed-off-by: Miguel Ojeda commit 50087112592016a3fc10b394a55f1f1a1bde6908 Author: Suraj Jitindar Singh Date: Thu Jun 20 11:46:49 2019 +1000 KVM: PPC: Book3S HV: Invalidate ERAT when flushing guest TLB entries When a guest vcpu moves from one physical thread to another it is necessary for the host to perform a tlb flush on the previous core if another vcpu from the same guest is going to run there. This is because the guest may use the local form of the tlb invalidation instruction meaning stale tlb entries would persist where it previously ran. This is handled on guest entry in kvmppc_check_need_tlb_flush() which calls flush_guest_tlb() to perform the tlb flush. Previously the generic radix__local_flush_tlb_lpid_guest() function was used, however the functionality was reimplemented in flush_guest_tlb() to avoid the trace_tlbie() call as the flushing may be done in real mode. The reimplementation in flush_guest_tlb() was missing an erat invalidation after flushing the tlb. This lead to observable memory corruption in the guest due to the caching of stale translations. Fix this by adding the erat invalidation. Fixes: 70ea13f6e609 ("KVM: PPC: Book3S HV: Flush TLB on secondary radix threads") Signed-off-by: Suraj Jitindar Singh Signed-off-by: Michael Ellerman commit 6f828c55e26769666e0ae56b037f948dc26fe0d4 Merge: 6ad805b82dc5 f99bc332c713 Author: Greg Kroah-Hartman Date: Thu Jun 20 13:30:47 2019 +0200 Merge tag 'misc-habanalabs-fixes-2019-06-20' of git://people.freedesktop.org/~gabbayo/linux into char-misc-linus Oded writes: This tag contains the following fix: - Casting warning of a 64-bit integer in 32-bit architecture. Use the macro that was defined for this purpose. * tag 'misc-habanalabs-fixes-2019-06-20' of git://people.freedesktop.org/~gabbayo/linux: habanalabs: use u64_to_user_ptr() for reading user pointers commit d28bdaff5e260852621d45edd3af017cc5d16925 Merge: ddd57980a0fd 42de8afc40c9 Author: Greg Kroah-Hartman Date: Thu Jun 20 11:56:35 2019 +0200 Merge tag 'fixes-for-v5.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus Felipe writes: usb: fixes for v5.2-rc5 A single fix to take into account the PHY width during initialization of dwc2 driver. This change allows deviceTree to pass PHY width if necessary. Signed-off-by: Felipe Balbi * tag 'fixes-for-v5.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb: usb: dwc2: Use generic PHY width in params setup commit f99bc332c713b7672bad5236060b02f0c41c7242 Author: Arnd Bergmann Date: Mon Jun 17 14:41:33 2019 +0200 habanalabs: use u64_to_user_ptr() for reading user pointers We cannot cast a 64-bit integer to a pointer on 32-bit architectures without a warning: drivers/misc/habanalabs/habanalabs_ioctl.c: In function 'debug_coresight': drivers/misc/habanalabs/habanalabs_ioctl.c:143:23: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] input = memdup_user((const void __user *) args->input_ptr, Use the macro that was defined for this purpose. Fixes: 315bc055ed56 ("habanalabs: add new IOCTL for debug, tracing and profiling") Signed-off-by: Arnd Bergmann Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay commit 241e39004581475b2802cd63c111fec43bb0123e Author: J. Bruce Fields Date: Wed Jun 19 17:06:24 2019 -0400 nfsd: replace Jeff by Chuck as nfsd co-maintainer Jeff's picking up more responsibilities elsewhere, and Chuck's agreed to take over. For now, as before, nothing's changing day-to-day, but I want to have a co-maintainer if only for bus factor. Acked-by: Jeff Layton Signed-off-by: J. Bruce Fields Signed-off-by: Linus Torvalds commit 1196364f21ffe5d1e6d83cafd6a2edb89404a3ae Author: Kevin Darbyshire-Bryant Date: Wed Jun 19 15:08:18 2019 +0100 MIPS: fix build on non-linux hosts calc_vmlinuz_load_addr.c requires SZ_64K to be defined for alignment purposes. It included "../../../../include/linux/sizes.h" to define that size, however "sizes.h" tries to include which assumes linux system headers. These may not exist eg. the following error was encountered when building Linux for OpenWrt under macOS: In file included from arch/mips/boot/compressed/calc_vmlinuz_load_addr.c:16: arch/mips/boot/compressed/../../../../include/linux/sizes.h:11:10: fatal error: 'linux/const.h' file not found ^~~~~~~~~~ Change makefile to force building on local linux headers instead of system headers. Also change eye-watering relative reference in include file spec. Thanks to Jo-Philip Wich & Petr Štetiar for assistance in tracking this down & fixing. Suggested-by: Jo-Philipp Wich Signed-off-by: Petr Štetiar Signed-off-by: Kevin Darbyshire-Bryant Signed-off-by: Paul Burton Cc: linux-mips@vger.kernel.org commit 85f9aa7565bd79b039325f2c01af7ffa717924df Author: Eric Dumazet Date: Wed Jun 19 09:38:38 2019 -0700 inet: clear num_timeout reqsk_alloc() KMSAN caught uninit-value in tcp_create_openreq_child() [1] This is caused by a recent change, combined by the fact that TCP cleared num_timeout, num_retrans and sk fields only when a request socket was about to be queued. Under syncookie mode, a temporary request socket is used, and req->num_timeout could contain garbage. Lets clear these three fields sooner, there is really no point trying to defer this and risk other bugs. [1] BUG: KMSAN: uninit-value in tcp_create_openreq_child+0x157f/0x1cc0 net/ipv4/tcp_minisocks.c:526 CPU: 1 PID: 13357 Comm: syz-executor591 Not tainted 5.2.0-rc4+ #3 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x191/0x1f0 lib/dump_stack.c:113 kmsan_report+0x162/0x2d0 mm/kmsan/kmsan.c:611 __msan_warning+0x75/0xe0 mm/kmsan/kmsan_instr.c:304 tcp_create_openreq_child+0x157f/0x1cc0 net/ipv4/tcp_minisocks.c:526 tcp_v6_syn_recv_sock+0x761/0x2d80 net/ipv6/tcp_ipv6.c:1152 tcp_get_cookie_sock+0x16e/0x6b0 net/ipv4/syncookies.c:209 cookie_v6_check+0x27e0/0x29a0 net/ipv6/syncookies.c:252 tcp_v6_cookie_check net/ipv6/tcp_ipv6.c:1039 [inline] tcp_v6_do_rcv+0xf1c/0x1ce0 net/ipv6/tcp_ipv6.c:1344 tcp_v6_rcv+0x60b7/0x6a30 net/ipv6/tcp_ipv6.c:1554 ip6_protocol_deliver_rcu+0x1433/0x22f0 net/ipv6/ip6_input.c:397 ip6_input_finish net/ipv6/ip6_input.c:438 [inline] NF_HOOK include/linux/netfilter.h:305 [inline] ip6_input+0x2af/0x340 net/ipv6/ip6_input.c:447 dst_input include/net/dst.h:439 [inline] ip6_rcv_finish net/ipv6/ip6_input.c:76 [inline] NF_HOOK include/linux/netfilter.h:305 [inline] ipv6_rcv+0x683/0x710 net/ipv6/ip6_input.c:272 __netif_receive_skb_one_core net/core/dev.c:4981 [inline] __netif_receive_skb net/core/dev.c:5095 [inline] process_backlog+0x721/0x1410 net/core/dev.c:5906 napi_poll net/core/dev.c:6329 [inline] net_rx_action+0x738/0x1940 net/core/dev.c:6395 __do_softirq+0x4ad/0x858 kernel/softirq.c:293 do_softirq_own_stack+0x49/0x80 arch/x86/entry/entry_64.S:1052 do_softirq kernel/softirq.c:338 [inline] __local_bh_enable_ip+0x199/0x1e0 kernel/softirq.c:190 local_bh_enable+0x36/0x40 include/linux/bottom_half.h:32 rcu_read_unlock_bh include/linux/rcupdate.h:682 [inline] ip6_finish_output2+0x213f/0x2670 net/ipv6/ip6_output.c:117 ip6_finish_output+0xae4/0xbc0 net/ipv6/ip6_output.c:150 NF_HOOK_COND include/linux/netfilter.h:294 [inline] ip6_output+0x5d3/0x720 net/ipv6/ip6_output.c:167 dst_output include/net/dst.h:433 [inline] NF_HOOK include/linux/netfilter.h:305 [inline] ip6_xmit+0x1f53/0x2650 net/ipv6/ip6_output.c:271 inet6_csk_xmit+0x3df/0x4f0 net/ipv6/inet6_connection_sock.c:135 __tcp_transmit_skb+0x4076/0x5b40 net/ipv4/tcp_output.c:1156 tcp_transmit_skb net/ipv4/tcp_output.c:1172 [inline] tcp_write_xmit+0x39a9/0xa730 net/ipv4/tcp_output.c:2397 __tcp_push_pending_frames+0x124/0x4e0 net/ipv4/tcp_output.c:2573 tcp_send_fin+0xd43/0x1540 net/ipv4/tcp_output.c:3118 tcp_close+0x16ba/0x1860 net/ipv4/tcp.c:2403 inet_release+0x1f7/0x270 net/ipv4/af_inet.c:427 inet6_release+0xaf/0x100 net/ipv6/af_inet6.c:470 __sock_release net/socket.c:601 [inline] sock_close+0x156/0x490 net/socket.c:1273 __fput+0x4c9/0xba0 fs/file_table.c:280 ____fput+0x37/0x40 fs/file_table.c:313 task_work_run+0x22e/0x2a0 kernel/task_work.c:113 tracehook_notify_resume include/linux/tracehook.h:185 [inline] exit_to_usermode_loop arch/x86/entry/common.c:168 [inline] prepare_exit_to_usermode+0x39d/0x4d0 arch/x86/entry/common.c:199 syscall_return_slowpath+0x90/0x5c0 arch/x86/entry/common.c:279 do_syscall_64+0xe2/0xf0 arch/x86/entry/common.c:305 entry_SYSCALL_64_after_hwframe+0x63/0xe7 RIP: 0033:0x401d50 Code: 01 f0 ff ff 0f 83 40 0d 00 00 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 83 3d dd 8d 2d 00 00 75 14 b8 03 00 00 00 0f 05 <48> 3d 01 f0 ff ff 0f 83 14 0d 00 00 c3 48 83 ec 08 e8 7a 02 00 00 RSP: 002b:00007fff1cf58cf8 EFLAGS: 00000246 ORIG_RAX: 0000000000000003 RAX: 0000000000000000 RBX: 0000000000000004 RCX: 0000000000401d50 RDX: 000000000000001c RSI: 0000000000000000 RDI: 0000000000000003 RBP: 00000000004a9050 R08: 0000000020000040 R09: 000000000000001c R10: 0000000020004004 R11: 0000000000000246 R12: 0000000000402ef0 R13: 0000000000402f80 R14: 0000000000000000 R15: 0000000000000000 Uninit was created at: kmsan_save_stack_with_flags mm/kmsan/kmsan.c:201 [inline] kmsan_internal_poison_shadow+0x53/0xa0 mm/kmsan/kmsan.c:160 kmsan_kmalloc+0xa4/0x130 mm/kmsan/kmsan_hooks.c:177 kmem_cache_alloc+0x534/0xb00 mm/slub.c:2781 reqsk_alloc include/net/request_sock.h:84 [inline] inet_reqsk_alloc+0xa8/0x600 net/ipv4/tcp_input.c:6384 cookie_v6_check+0xadb/0x29a0 net/ipv6/syncookies.c:173 tcp_v6_cookie_check net/ipv6/tcp_ipv6.c:1039 [inline] tcp_v6_do_rcv+0xf1c/0x1ce0 net/ipv6/tcp_ipv6.c:1344 tcp_v6_rcv+0x60b7/0x6a30 net/ipv6/tcp_ipv6.c:1554 ip6_protocol_deliver_rcu+0x1433/0x22f0 net/ipv6/ip6_input.c:397 ip6_input_finish net/ipv6/ip6_input.c:438 [inline] NF_HOOK include/linux/netfilter.h:305 [inline] ip6_input+0x2af/0x340 net/ipv6/ip6_input.c:447 dst_input include/net/dst.h:439 [inline] ip6_rcv_finish net/ipv6/ip6_input.c:76 [inline] NF_HOOK include/linux/netfilter.h:305 [inline] ipv6_rcv+0x683/0x710 net/ipv6/ip6_input.c:272 __netif_receive_skb_one_core net/core/dev.c:4981 [inline] __netif_receive_skb net/core/dev.c:5095 [inline] process_backlog+0x721/0x1410 net/core/dev.c:5906 napi_poll net/core/dev.c:6329 [inline] net_rx_action+0x738/0x1940 net/core/dev.c:6395 __do_softirq+0x4ad/0x858 kernel/softirq.c:293 do_softirq_own_stack+0x49/0x80 arch/x86/entry/entry_64.S:1052 do_softirq kernel/softirq.c:338 [inline] __local_bh_enable_ip+0x199/0x1e0 kernel/softirq.c:190 local_bh_enable+0x36/0x40 include/linux/bottom_half.h:32 rcu_read_unlock_bh include/linux/rcupdate.h:682 [inline] ip6_finish_output2+0x213f/0x2670 net/ipv6/ip6_output.c:117 ip6_finish_output+0xae4/0xbc0 net/ipv6/ip6_output.c:150 NF_HOOK_COND include/linux/netfilter.h:294 [inline] ip6_output+0x5d3/0x720 net/ipv6/ip6_output.c:167 dst_output include/net/dst.h:433 [inline] NF_HOOK include/linux/netfilter.h:305 [inline] ip6_xmit+0x1f53/0x2650 net/ipv6/ip6_output.c:271 inet6_csk_xmit+0x3df/0x4f0 net/ipv6/inet6_connection_sock.c:135 __tcp_transmit_skb+0x4076/0x5b40 net/ipv4/tcp_output.c:1156 tcp_transmit_skb net/ipv4/tcp_output.c:1172 [inline] tcp_write_xmit+0x39a9/0xa730 net/ipv4/tcp_output.c:2397 __tcp_push_pending_frames+0x124/0x4e0 net/ipv4/tcp_output.c:2573 tcp_send_fin+0xd43/0x1540 net/ipv4/tcp_output.c:3118 tcp_close+0x16ba/0x1860 net/ipv4/tcp.c:2403 inet_release+0x1f7/0x270 net/ipv4/af_inet.c:427 inet6_release+0xaf/0x100 net/ipv6/af_inet6.c:470 __sock_release net/socket.c:601 [inline] sock_close+0x156/0x490 net/socket.c:1273 __fput+0x4c9/0xba0 fs/file_table.c:280 ____fput+0x37/0x40 fs/file_table.c:313 task_work_run+0x22e/0x2a0 kernel/task_work.c:113 tracehook_notify_resume include/linux/tracehook.h:185 [inline] exit_to_usermode_loop arch/x86/entry/common.c:168 [inline] prepare_exit_to_usermode+0x39d/0x4d0 arch/x86/entry/common.c:199 syscall_return_slowpath+0x90/0x5c0 arch/x86/entry/common.c:279 do_syscall_64+0xe2/0xf0 arch/x86/entry/common.c:305 entry_SYSCALL_64_after_hwframe+0x63/0xe7 Fixes: 336c39a03151 ("tcp: undo init congestion window on false SYNACK timeout") Signed-off-by: Eric Dumazet Cc: Yuchung Cheng Cc: Neal Cardwell Cc: Soheil Hassas Yeganeh Reported-by: syzbot Acked-by: Soheil Hassas Yeganeh Acked-by: Yuchung Cheng Signed-off-by: David S. Miller commit 6dbbd053e6aea827abde89ac9b9d6855dab1a66b Author: Logan Gunthorpe Date: Wed Jun 19 12:56:26 2019 -0600 PCI/P2PDMA: Ignore root complex whitelist when an IOMMU is present Presently, there is no path to DMA map P2PDMA memory, so if a TLP targeting this memory hits the root complex and an IOMMU is present, the IOMMU will reject the transaction, even if the RC would support P2PDMA. So until the kernel knows to map these DMA addresses in the IOMMU, we should not enable the whitelist when an IOMMU is present. Link: https://lore.kernel.org/linux-pci/20190522201252.2997-1-logang@deltatee.com/ Fixes: 0f97da831026 ("PCI/P2PDMA: Allow P2P DMA between any devices under AMD ZEN Root Complex") Signed-off-by: Logan Gunthorpe Reviewed-by: Christian König Signed-off-by: Bjorn Helgaas Cc: Christoph Hellwig commit 8110a7a7d295b08433dfa7e692e347a43e63f475 Author: Nathan Huckleberry Date: Wed Jun 19 11:17:15 2019 -0700 net: mvpp2: debugfs: Add pmap to fs dump There was an unused variable 'mvpp2_dbgfs_prs_pmap_fops' Added a usage consistent with other fops to dump pmap to userspace. Cc: clang-built-linux@googlegroups.com Link: https://github.com/ClangBuiltLinux/linux/issues/529 Signed-off-by: Nathan Huckleberry Tested-by: Nick Desaulniers Reviewed-by: Nick Desaulniers Signed-off-by: David S. Miller commit c7036d97acd2527cef145b5ef9ad1a37ed21bbe6 Author: David Ahern Date: Wed Jun 19 10:50:24 2019 -0700 ipv6: Default fib6_type to RTN_UNICAST when not set A user reported that routes are getting installed with type 0 (RTN_UNSPEC) where before the routes were RTN_UNICAST. One example is from accel-ppp which apparently still uses the ioctl interface and does not set rtmsg_type. Another is the netlink interface where ipv6 does not require rtm_type to be set (v4 does). Prior to the commit in the Fixes tag the ipv6 stack converted type 0 to RTN_UNICAST, so restore that behavior. Fixes: e8478e80e5a7 ("net/ipv6: Save route type in rt6_info") Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 1e091c3bbf51d34d5d96337a59ce5ab2ac3ba2cc Author: Chuck Lever Date: Tue Jun 11 11:01:16 2019 -0400 svcrdma: Ignore source port when computing DRC hash The DRC appears to be effectively empty after an RPC/RDMA transport reconnect. The problem is that each connection uses a different source port, which defeats the DRC hash. Clients always have to disconnect before they send retransmissions to reset the connection's credit accounting, thus every retransmit on NFS/RDMA will miss the DRC. An NFS/RDMA client's IP source port is meaningless for RDMA transports. The transport layer typically sets the source port value on the connection to a random ephemeral port. The server already ignores it for the "secure port" check. See commit 16e4d93f6de7 ("NFSD: Ignore client's source port on RDMA transports"). The Linux NFS server's DRC resolves XID collisions from the same source IP address by using the checksum of the first 200 bytes of the RPC call header. Signed-off-by: Chuck Lever Cc: stable@vger.kernel.org # v4.14+ Signed-off-by: J. Bruce Fields commit db13a5ba2732755cf13320f3987b77cf2a71e790 Author: Stefan Hellermann Date: Mon Jun 17 15:43:59 2019 +0200 MIPS: ath79: fix ar933x uart parity mode While trying to get the uart with parity working I found setting even parity enabled odd parity insted. Fix the register settings to match the datasheet of AR9331. A similar patch was created by 8devices, but not sent upstream. https://github.com/8devices/openwrt-8devices/commit/77c5586ade3bb72cda010afad3f209ed0c98ea7c Signed-off-by: Stefan Hellermann Signed-off-by: Paul Burton Cc: linux-mips@vger.kernel.org commit bf6de2315362473e14817ccbdbd00ade6de2756e Author: Krzysztof Kozlowski Date: Tue Jun 18 20:54:22 2019 +0200 net: hns3: Fix inconsistent indenting Fix wrong indentation of goto return. Signed-off-by: Krzysztof Kozlowski Signed-off-by: David S. Miller commit 99838e602bc8e96e452319d4ad2b4fbd7b7a1e3c Merge: 48620e341659 06996c1d4088 Author: David S. Miller Date: Wed Jun 19 16:26:33 2019 -0400 Merge branch 'af_iucv-fixes' Julian Wiedmann says: ==================== net/af_iucv: fixes 2019-06-18 I spent a few cycles on transmit problems for af_iucv over regular netdevices - please apply the following fixes to -net. The first patch allows for skb allocations outside of GFP_DMA, while the second patch respects that drivers might use skb_cow_head() and/or want additional dev->needed_headroom. Patch 3 is for a separate issue, where we didn't setup some of the netdevice-specific infrastructure when running as a z/VM guest. ==================== Signed-off-by: David S. Miller commit 06996c1d4088a0d5f3e7789d7f96b4653cc947cc Author: Julian Wiedmann Date: Tue Jun 18 20:43:01 2019 +0200 net/af_iucv: always register net_device notifier Even when running as VM guest (ie pr_iucv != NULL), af_iucv can still open HiperTransport-based connections. For robust operation these connections require the af_iucv_netdev_notifier, so register it unconditionally. Also handle any error that register_netdevice_notifier() returns. Fixes: 9fbd87d41392 ("af_iucv: handle netdev events") Signed-off-by: Julian Wiedmann Reviewed-by: Ursula Braun Signed-off-by: David S. Miller commit 238965b71b968dc5b3c0fe430e946f488322c4b5 Author: Julian Wiedmann Date: Tue Jun 18 20:43:00 2019 +0200 net/af_iucv: build proper skbs for HiperTransport The HiperSockets-based transport path in af_iucv is still too closely entangled with qeth. With commit a647a02512ca ("s390/qeth: speed-up L3 IQD xmit"), the relevant xmit code in qeth has begun to use skb_cow_head(). So to avoid unnecessary skb head expansions, af_iucv must learn to 1) respect dev->needed_headroom when allocating skbs, and 2) drop the header reference before cloning the skb. While at it, also stop hard-coding the LL-header creation stage and just use the appropriate helper. Fixes: a647a02512ca ("s390/qeth: speed-up L3 IQD xmit") Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit fdbf6326912d578a31ac4ca0933c919eadf1d54c Author: Julian Wiedmann Date: Tue Jun 18 20:42:59 2019 +0200 net/af_iucv: remove GFP_DMA restriction for HiperTransport af_iucv sockets over z/VM IUCV require that their skbs are allocated in DMA memory. This restriction doesn't apply to connections over HiperSockets. So only set this limit for z/VM IUCV sockets, thereby increasing the likelihood that the large (and linear!) allocations for HiperTransport messages succeed. Fixes: 3881ac441f64 ("af_iucv: add HiperSockets transport") Signed-off-by: Julian Wiedmann Reviewed-by: Ursula Braun Reviewed-by: Hendrik Brueckner Signed-off-by: David S. Miller commit abf02e2964b3aaf1d5197c5d7c671e771b0e109e Merge: c3c0d546d73a 3e26c5feed2a Author: Linus Torvalds Date: Wed Jun 19 11:44:04 2019 -0700 Merge tag 'pm-5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull power management fix from Rafael Wysocki: "Prevent PCI bridges in general (and PCIe ports in particular) from being put into low-power states during system-wide suspend transitions if there are any devices in D0 below them and refine the handling of PCI devices in D0 during suspend-to-idle cycles" * tag 'pm-5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: PCI: PM: Skip devices in D0 for suspend-to-idle commit c3c0d546d73ad53c85789154872b8c92d1f96ba1 Merge: 4b6920ba26e1 156e42996bd8 Author: Linus Torvalds Date: Wed Jun 19 11:39:00 2019 -0700 Merge tag 'apparmor-pr-2019-06-18' of git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor Pull apparmor bug fixes from John Johansen: - fix PROFILE_MEDIATES for untrusted input - enforce nullbyte at end of tag string - reset pos on failure to unpack for various functions * tag 'apparmor-pr-2019-06-18' of git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor: apparmor: reset pos on failure to unpack for various functions apparmor: enforce nullbyte at end of tag string apparmor: fix PROFILE_MEDIATES for untrusted input commit 4b6920ba26e1f24b949b9ca3bb782c7fac8be633 Merge: bed3c0d84e7e 9843f3e08e21 Author: Linus Torvalds Date: Wed Jun 19 11:26:09 2019 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input Pull input updates from Dmitry Torokhov: "Just a few small fixups and switching a couple of Thinkpads to SMBus for touchpads as PS/2 emulation is not working well" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: synaptics - enable SMBus on ThinkPad E480 and E580 Input: imx_keypad - make sure keyboard can always wake up system Input: iqs5xx - get axis info before calling input_mt_init_slots() Input: uinput - add compat ioctl number translation for UI_*_FF_UPLOAD Input: silead - add MSSL0017 to acpi_device_id Input: elantech - enable middle button support on 2 ThinkPads Input: elan_i2c - increment wakeup count if wake source commit 6ad805b82dc5fc0ffd2de1d1f0de47214a050278 Author: Yang Yingliang Date: Sat Jun 15 17:41:29 2019 +0800 doc: fix documentation about UIO_MEM_LOGICAL using After commit d4fc5069a394 ("mm: switch s_mem and slab_cache in struct page") page->mapping will be re-used by slab allocations and page->mapping->host will be used in balance_dirty_pages_ratelimited() as an inode member but it's not an inode in fact and leads an oops. [ 159.906493] Unable to handle kernel paging request at virtual address ffff200012d90be8 [ 159.908029] Mem abort info: [ 159.908552] ESR = 0x96000007 [ 159.909138] Exception class = DABT (current EL), IL = 32 bits [ 159.910155] SET = 0, FnV = 0 [ 159.910690] EA = 0, S1PTW = 0 [ 159.911241] Data abort info: [ 159.911846] ISV = 0, ISS = 0x00000007 [ 159.912567] CM = 0, WnR = 0 [ 159.913105] swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000042acd000 [ 159.914269] [ffff200012d90be8] pgd=000000043ffff003, pud=000000043fffe003, pmd=000000043fffa003, pte=0000000000000000 [ 159.916280] Internal error: Oops: 96000007 [#1] SMP [ 159.917195] Dumping ftrace buffer: [ 159.917845] (ftrace buffer empty) [ 159.918521] Modules linked in: uio_dev(OE) [ 159.919276] CPU: 1 PID: 295 Comm: uio_test Tainted: G OE 5.2.0-rc4+ #46 [ 159.920859] Hardware name: linux,dummy-virt (DT) [ 159.921815] pstate: 60000005 (nZCv daif -PAN -UAO) [ 159.922809] pc : balance_dirty_pages_ratelimited+0x68/0xc38 [ 159.923965] lr : fault_dirty_shared_page.isra.8+0xe4/0x100 [ 159.925134] sp : ffff800368a77ae0 [ 159.925824] x29: ffff800368a77ae0 x28: 1ffff0006d14ce1a [ 159.926906] x27: ffff800368a670d0 x26: ffff800368a67120 [ 159.927985] x25: 1ffff0006d10f5fe x24: ffff200012d90be8 [ 159.929089] x23: ffff200013732000 x22: ffff80036ec03200 [ 159.930172] x21: ffff200012d90bc0 x20: 1fffe400025b217d [ 159.931253] x19: ffff80036ec03200 x18: 0000000000000000 [ 159.932348] x17: 0000000000000000 x16: 0ffffe0000010208 [ 159.933439] x15: 0000000000000000 x14: 0000000000000000 [ 159.934518] x13: 0000000000000000 x12: 0000000000000000 [ 159.935596] x11: 1fffefc001b452c0 x10: ffff0fc001b452c0 [ 159.936697] x9 : dfff200000000000 x8 : dfff200000000001 [ 159.937781] x7 : ffff7e000da29607 x6 : ffff0fc001b452c1 [ 159.938859] x5 : ffff0fc001b452c1 x4 : ffff0fc001b452c1 [ 159.939944] x3 : ffff200010523ad4 x2 : 1fffe400026e659b [ 159.941065] x1 : dfff200000000000 x0 : ffff200013732cd8 [ 159.942205] Call trace: [ 159.942732] balance_dirty_pages_ratelimited+0x68/0xc38 [ 159.943797] fault_dirty_shared_page.isra.8+0xe4/0x100 [ 159.944867] do_fault+0x608/0x1250 [ 159.945571] __handle_mm_fault+0x93c/0xfb8 [ 159.946412] handle_mm_fault+0x1c0/0x360 [ 159.947224] do_page_fault+0x358/0x8d0 [ 159.947993] do_translation_fault+0xf8/0x124 [ 159.948884] do_mem_abort+0x70/0x190 [ 159.949624] el0_da+0x24/0x28 According another commit 5e901d0b15c0 ("scsi: qedi: Fix bad pte call trace when iscsiuio is stopped."), using kmalloc also cause other problem. But the documentation about UIO_MEM_LOGICAL allows using kmalloc(), remove and don't allow using kmalloc() in documentation. Signed-off-by: Yang Yingliang Signed-off-by: Greg Kroah-Hartman commit 75d7627f49c54e2eed4b785112d0104e2954d27c Author: Gavin Schenk Date: Tue Jun 18 08:04:12 2019 +0200 MAINTAINERS / Documentation: Thorsten Scherer is the successor of Gavin Schenk Due to new challenges in my life I can no longer take care of SIOX. Thorsten takes over my SIOX tasks. Signed-off-by: Gavin Schenk Acked-by: Thorsten Scherer Signed-off-by: Uwe Kleine-König Signed-off-by: Greg Kroah-Hartman commit fce677d7e8f0cab84864674d7fc74d1f389eee6f Author: Takashi Iwai Date: Wed Jun 19 07:39:43 2019 +0200 docs: fb: Add TER16x32 to the available font names The new font is available since recently. Signed-off-by: Takashi Iwai Acked-by: Randy Dunlap Signed-off-by: Greg Kroah-Hartman commit c61802ee54f2275c0adcce6a17bb06cd5baf991d Merge: 7c464359be81 0d53827d7c17 Author: Greg Kroah-Hartman Date: Wed Jun 19 19:02:52 2019 +0200 Merge tag 'thunderbolt-fixes-for-v5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt into char-misc-linus Mika writes: thunderbolt: Fixes for v5.2-rc6 This includes two fixes for issues found during the current release cycle: - Fix runtime PM regression when device is authorized after the controller is runtime suspended. - Correct CIO reset flow for Titan Ridge. * tag 'thunderbolt-fixes-for-v5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt: thunderbolt: Implement CIO reset correctly for Titan Ridge thunderbolt: Make sure device runtime resume completes before taking domain lock commit 2f7da158cc79444ddcd221ed0bcf567a2e3a5190 Merge: 27e23d897527 64f35709d573 Author: Olof Johansson Date: Wed Jun 19 09:11:04 2019 -0700 Merge tag 'arm-soc/for-5.3/maintainers' of https://github.com/Broadcom/stblinux into arm/fixes This pull request contains MAINTAINERS file updates for Broadcom SoCs entries for 5.3, please pull the following: - Florian adds the Broadcom internal mailing-list which has a patchwork instance behind for the BCM2835 and BCM53573 SoCs entries * tag 'arm-soc/for-5.3/maintainers' of https://github.com/Broadcom/stblinux: MAINTAINERS: BCM53573: Add internal Broadcom mailing list MAINTAINERS: BCM2835: Add internal Broadcom mailing list Signed-off-by: Olof Johansson commit 7c464359be81f9f4628d2d965812d9e2c2908e6b Author: Alan Tull Date: Sun Jun 16 22:11:13 2019 -0500 MAINTAINERS: fpga: hand off maintainership to Moritz I'm moving on to a new position and stepping down as FPGA subsystem maintainer. Moritz has graciously agreed to take over the maintainership. Signed-off-by: Alan Tull Acked-by: Moritz Fischer Signed-off-by: Greg Kroah-Hartman commit c891f3b97964a07c5797569126c90a3865a6ba18 Author: Thomas Gleixner Date: Tue Jun 4 10:11:40 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 507 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of version 2 of the gnu general public license as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa the full gnu general public license is included in this distribution in the file called license extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 8 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081207.801261482@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4cb2acc0df04cfad7bd9d7b01a205234cc5f9a2a Author: Thomas Gleixner Date: Tue Jun 4 10:11:39 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 506 Based on 1 normalized pattern(s): this software program is licensed subject to the gnu general public license gpl version 2 june 1991 available at http www fsf org copyleft gpl html extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 4 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Reviewed-by: Daniel German Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081207.687420463@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 7f904d7e1f3ec7c2de47c024a5a5c30988b54703 Author: Thomas Gleixner Date: Tue Jun 4 10:11:38 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 505 Based on 1 normalized pattern(s): gplv2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 58 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Enrico Weigelt Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081207.556988620@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 775c8a3d7187b82e15ebfdae486d8ab32e017b4b Author: Thomas Gleixner Date: Tue Jun 4 10:11:37 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 504 Based on 1 normalized pattern(s): this file is free software you can redistribute it and or modify it under the terms of version 2 of the gnu general public license as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin st fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 8 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081207.443595178@linutronix.de Signed-off-by: Greg Kroah-Hartman commit cd93f165c9f15f17944daf00a404b5964cc3cd29 Author: Thomas Gleixner Date: Tue Jun 4 10:11:36 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 503 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation 51 franklin street fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081207.308909165@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 0e0869949666286aa441ada8e65ab51a1b95d8aa Author: Thomas Gleixner Date: Tue Jun 4 10:11:35 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 502 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 of the license this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin st fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Enrico Weigelt Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081207.195075312@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 21042e414273280d151359deded226548e6b4828 Author: Thomas Gleixner Date: Tue Jun 4 10:11:34 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 501 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation see readme and copying for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 9 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Enrico Weigelt Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081207.060259192@linutronix.de Signed-off-by: Greg Kroah-Hartman commit d2912cb15bdda8ba4a5dd73396ad62641af2f520 Author: Thomas Gleixner Date: Tue Jun 4 10:11:33 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 Based on 2 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation # extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 4122 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Enrico Weigelt Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081206.933168790@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 20c8ccb1975b8d5639789d1025ad6ada38bd6f48 Author: Thomas Gleixner Date: Tue Jun 4 10:11:32 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 499 Based on 1 normalized pattern(s): this work is licensed under the terms of the gnu gpl version 2 see the copying file in the top level directory extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 35 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Enrico Weigelt Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081206.797835076@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 0c94efabe00ed97415c48361b5fecaa2f2117d57 Author: Thomas Gleixner Date: Tue Jun 4 10:11:31 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 498 Based on 1 normalized pattern(s): gplv2 only extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 4 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Enrico Weigelt Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081206.666840552@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 97873a3daf611594a7f92cc88bd8c5c8c526e1a3 Author: Thomas Gleixner Date: Tue Jun 4 10:11:30 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 497 Based on 1 normalized pattern(s): this file is part of the linux kernel and is made available under the terms of the gnu general public license version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 28 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Enrico Weigelt Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081206.534229504@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f8a889172d52d00baf6c28587324aea0f9f11250 Author: Thomas Gleixner Date: Tue Jun 4 10:11:29 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 496 Based on 1 normalized pattern(s): licensed under gpl v2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Enrico Weigelt Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081206.395945938@linutronix.de Signed-off-by: Greg Kroah-Hartman commit aaa7cb268cc4255ffdfbe60e63bf7cf4a6a511f7 Author: Thomas Gleixner Date: Tue Jun 4 10:11:28 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 495 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the version 2 of the gnu general public license as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 10 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081206.259525894@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4c3dd9cd769b5d15ea92d443cc23b3d13932cce2 Author: Thomas Gleixner Date: Tue Jun 4 10:11:24 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 491 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms and conditions of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Enrico Weigelt Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081205.739216165@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 47d7195dbcef6efe81967bedc47d84474baf0cfb Author: Thomas Gleixner Date: Tue Jun 4 10:11:23 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 490 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 13 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081205.608593891@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 81c9859b5129448544c4c73ec100e92b856eead0 Author: Thomas Gleixner Date: Tue Jun 4 10:11:22 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 489 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 gpl v2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081205.495444859@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 0a151468f9ca375bdc574e0888e28d0e9f018fda Author: Thomas Gleixner Date: Tue Jun 4 10:11:21 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 488 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Enrico Weigelt Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081205.379537898@linutronix.de Signed-off-by: Greg Kroah-Hartman commit e84acbaec7d47a5713b3e41731fdafb78ee2cec0 Author: Thomas Gleixner Date: Tue Jun 4 10:11:20 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 487 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see http www gnu org licenses gpl 2 0 html for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081205.243665028@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f2e3bd9a5a03da45ed45b513e76298187a0a96b6 Author: Thomas Gleixner Date: Tue Jun 4 10:11:19 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 486 Based on 1 normalized pattern(s): this package is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Enrico Weigelt Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081205.116017757@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 910751a782b54dabc3e00a72e5912fcb9af2f602 Author: Thomas Gleixner Date: Tue Jun 4 10:11:18 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 485 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it would be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081204.982710800@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f361c4dc5e2fb14a4441b08b29520864a74078f6 Author: Thomas Gleixner Date: Tue Jun 4 10:11:17 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 484 Based on 1 normalized pattern(s): this source code is licensed under general public license version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 5 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081204.871734026@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 7a338472f225f18694cc4d9ad1f6f9428f4a88d0 Author: Thomas Gleixner Date: Tue Jun 4 10:11:15 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 482 Based on 1 normalized pattern(s): this work is licensed under the terms of the gnu gpl version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 48 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081204.624030236@linutronix.de Signed-off-by: Greg Kroah-Hartman commit e500db3fa2d58f7091280db35d6bf6d4b717f20e Author: Thomas Gleixner Date: Tue Jun 4 10:11:14 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 481 Based on 1 normalized pattern(s): use of this source code is governed by the gplv2 license extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Enrico Weigelt Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081204.507272547@linutronix.de Signed-off-by: Greg Kroah-Hartman commit b15f321b9f27389f427ab572da5d50a223294b15 Author: Thomas Gleixner Date: Tue Jun 4 10:11:13 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 480 Based on 1 normalized pattern(s): adapted from oprofile gplv2 support extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to add the SPDX license identifier to 1 file(s) Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081204.397687630@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 6d8a639adefe1766155662c615ad0d4cf05f543d Author: Thomas Gleixner Date: Tue Jun 4 10:11:12 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 479 Based on 1 normalized pattern(s): released under the gpl v2 based on gplv2 source code extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081204.281377867@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f9724741de5bcc2f788a1abfd104b162533c8f31 Author: Thomas Gleixner Date: Tue Jun 4 10:11:10 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 477 Based on 1 normalized pattern(s): subject to gplv2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Enrico Weigelt Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081204.018005938@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 7268a4f81d67e7cc31d78426227f8c8b16f490b2 Author: Thomas Gleixner Date: Tue Jun 4 10:11:08 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 475 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foudation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081203.770334822@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 3f520cd2de7e9b77effcbd44e46caf297a2e66ab Author: Thomas Gleixner Date: Tue Jun 4 10:11:07 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 474 Based on 1 normalized pattern(s): subject to the gnu public license v 2 no warranty of any kind extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Enrico Weigelt Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081203.641025917@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4e5b937a3287008cc827fd2a4d6169096ee06783 Author: Thomas Gleixner Date: Tue Jun 4 10:11:06 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 473 Based on 1 normalized pattern(s): this file is subject to the terms and conditions of the gnu general public license v2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081203.508532280@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 63307d015b91e626c97bb82e88054af3d0b74643 Author: Thomas Gleixner Date: Tue Jun 4 10:11:05 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 472 Based on 1 normalized pattern(s): released under the terms of the gpl v2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 5 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081203.398003637@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 714c29cf98be844578c922e8bb202210600e0cb0 Author: Thomas Gleixner Date: Tue Jun 4 10:11:04 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 471 Based on 1 normalized pattern(s): released under the gplv2 only spdx license identifier gpl 2 0 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081203.262169268@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 6b99076ceda935f3032d023bbab7c1c966c2cbbd Author: Thomas Gleixner Date: Tue Jun 4 10:11:02 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 469 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of mergchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081202.997941624@linutronix.de Signed-off-by: Greg Kroah-Hartman commit fc7669c6594fb85f048edc36a057b10282c46620 Author: Thomas Gleixner Date: Tue Jun 4 10:11:01 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 468 Based on 1 normalized pattern(s): based on gpl code from [dibcom] which has [copyright] [c] [2004] [amaury] [demol] [for] [dibcom] this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 4 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Enrico Weigelt Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081202.886876323@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 957ec138d7666a96fc1e06ae4038dfc9e1f1bed2 Author: Thomas Gleixner Date: Tue Jun 4 10:11:00 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 467 Based on 1 normalized pattern(s): licensed under version 2 of the gnu general public licence extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081202.750147367@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 6c8f392ce8dac61bbb59f737dfc092752c480ece Author: Thomas Gleixner Date: Tue Jun 4 10:10:59 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 466 Based on 1 normalized pattern(s): license__ = gpl version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to add the SPDX identifier to this file. Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081202.640009675@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 912d0f0bd6f4d97793b681383a0e221a179f3aeb Author: Thomas Gleixner Date: Tue Jun 4 10:10:58 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 465 Based on 1 normalized pattern(s): released under the gpl version 2 only extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 4 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081202.506564860@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 1f67b599f8b8f976d2ea1a447c0f5e768a78ae8e Author: Thomas Gleixner Date: Tue Jun 4 10:10:57 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 464 Based on 1 normalized pattern(s): license terms gnu general public license version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 11 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081202.373849232@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 38cf0d46f42ed90acc74d2139d7bae8a9451888f Author: Thomas Gleixner Date: Tue Jun 4 10:10:56 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 463 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of version 2 of the gnu general public license as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses the full gnu general public license is included in this distribution in the file called copying extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 4 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081202.258730266@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 887490a7618650f673cf6877641d20a6548fe766 Author: Thomas Gleixner Date: Tue Jun 4 10:10:55 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 462 Based on 1 normalized pattern(s): license gpl v2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081202.146070292@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 89ee7f4f33ad6bb993b605cf73c4b914c81ef3e8 Author: Thomas Gleixner Date: Tue Jun 4 10:10:54 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 461 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 only as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details to obtain the license point your browser to http www gnu org copyleft gpl html extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 12 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081202.028166291@linutronix.de Signed-off-by: Greg Kroah-Hartman commit acee2e8d66f50a0e7ac780c5b06f46bf33f84d59 Author: Thomas Gleixner Date: Tue Jun 4 10:10:53 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 460 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation http www opensource org licenses gpl license html http www gnu org copyleft gpl html extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Enrico Weigelt Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081201.897982733@linutronix.de Signed-off-by: Greg Kroah-Hartman commit cb849fc5f0c7a09e9033cad6c42efe40ce85545a Author: Thomas Gleixner Date: Tue Jun 4 10:10:52 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 459 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation the gpl this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license version 2 gplv2 for more details you should have received a copy of the gnu general public license version 2 gplv2 along with this source code extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 16 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Enrico Weigelt Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081201.771169395@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 071fb96b83f6ff6e04e5a82b3d372d391dc43337 Author: Thomas Gleixner Date: Tue Jun 4 10:10:51 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 457 Based on 2 normalized pattern(s): this file is licensed under gplv2 this file is part of the [aic94xx] driver the [aic94xx] driver is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 of the license the [aic94xx] driver is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with [aic94xx] driver if not write to the free software foundation inc 51 franklin st fifth floor boston ma 02110 1301 usa this file is licensed under gplv2 this file is part of the [88se64xx] [88se94xx] driver the [88se64xx] [88se94xx] driver is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 of the license the [88se64xx] [88se94xx] driver is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with [88se64xx] [88se94xx] driver if not write to the free software foundation inc 51 franklin st fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081201.638289549@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 023b915e1f6985f2c21edca9c898a6cf49154b22 Author: Thomas Gleixner Date: Tue Jun 4 10:10:50 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 456 Based on 1 normalized pattern(s): driver is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 the [audiowerk2] [alsa] driver is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with the [audiowerk2] [alsa] driver if not write to the free software foundation inc 51 franklin street fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 5 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Enrico Weigelt Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081201.505559553@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f71e7375c9cbe52720bcf38f71f3d82d29d5db8a Author: Thomas Gleixner Date: Tue Jun 4 10:10:49 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 455 Based on 1 normalized pattern(s): this package is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 and only version 2 as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081201.371541790@linutronix.de Signed-off-by: Greg Kroah-Hartman commit ea65cc9bfb678aabd4a066883963aa9c8a6d4338 Author: Thomas Gleixner Date: Tue Jun 4 10:10:48 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 454 Based on 1 normalized pattern(s): this program is free software you can distribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 of the license extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 8 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081201.231815901@linutronix.de Signed-off-by: Greg Kroah-Hartman commit d690ec537163a384aa1ff25b2be37df6a582412c Author: Thomas Gleixner Date: Tue Jun 4 10:10:46 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 452 Based on 1 normalized pattern(s): this program is free software void you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http void www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081201.003433009@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f85d208658468b1a298f31daddb05a7684969cd4 Author: Thomas Gleixner Date: Tue Jun 4 10:10:45 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 451 Based on 1 normalized pattern(s): this file is subject to the terms and conditions of version 2 of the gnu general public license see the file copying in the main directory of the linux distribution for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 5 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Enrico Weigelt Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190604081200.872755311@linutronix.de Signed-off-by: Greg Kroah-Hartman commit d6869352cb3c3cf3450637a52349e2e87c1354aa Author: Thomas Gleixner Date: Mon Jun 3 07:45:06 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 250 Based on 1 normalized pattern(s): gpl v2 can be found in copying extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 20 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190602204655.283615864@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 8092f73c51567470bd79472c6eb25d2e1841fac3 Author: Thomas Gleixner Date: Mon Jun 3 07:45:04 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 248 Based on 1 normalized pattern(s): this file is released under the gpl v2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190602204655.103854853@linutronix.de Signed-off-by: Greg Kroah-Hartman commit ddceed9d11ee097f95b7a7d02fcce0d5e4b71df3 Author: Thomas Gleixner Date: Mon Jun 3 07:45:03 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 247 Based on 1 normalized pattern(s): gnu gpl v2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 5 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190602204655.013483115@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 2c162f9b41722a87b13723cec435f0f4d33a3dbb Author: Thomas Gleixner Date: Mon Jun 3 07:45:02 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 246 Based on 1 normalized pattern(s): released under the term of the gnu gpl v2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 16 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190602204654.922331175@linutronix.de Signed-off-by: Greg Kroah-Hartman commit d82444d2a9d010c08c423bf5c6102d43a14b8739 Author: Thomas Gleixner Date: Mon Jun 3 07:45:01 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 245 Based on 1 normalized pattern(s): gpl v2 only extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190602204654.833758402@linutronix.de Signed-off-by: Greg Kroah-Hartman commit e311edbc45de6163a278fd5a8be0dabe2efd9b9b Author: Thomas Gleixner Date: Mon Jun 3 07:45:00 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 244 Based on 1 normalized pattern(s): this file is rleased under the gpl v2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190602204654.725819457@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 82c73e0a3868e580da56b559d4940c9be8359c06 Author: Thomas Gleixner Date: Mon Jun 3 07:44:59 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 243 Based on 1 normalized pattern(s): this file is licensed under the gpl v2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190602204654.634736654@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 077e6e51c889ca13982b82218612cfe5f94f7cc4 Author: Thomas Gleixner Date: Mon Jun 3 07:44:55 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 239 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 675 mass ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Enrico Weigelt Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190602204654.276825629@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4ba774edce179a885edc23762cd0a44ea2c8107a Author: Thomas Gleixner Date: Mon Jun 3 07:44:54 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 238 Based on 2 normalized pattern(s): the original driver s license is gpl as declared with module_license this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation under version 2 of the license this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details the original driver s license is gpl as declared with module_license [copyright] [c] [2010] [2012] [mauro] [carvalho] [chehab] [driver] [modified] [by] [in] [order] [to] [work] [with] [upstream] [drxk] [driver] [and] [tons] [of] [bugs] [got] [fixed] [and] [converted] [to] [use] [dvb] [usb] [v2] this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation under version 2 of the license this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190602204654.186977917@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 77512baaea9ae397ec36767b9cd3e3a3920bb6d3 Author: Thomas Gleixner Date: Mon Jun 3 07:44:53 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 237 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 8 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Enrico Weigelt Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190602204654.096873163@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 2504ba9f5970299a33ca7802c60359f849146d78 Author: Thomas Gleixner Date: Mon Jun 3 07:44:51 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 235 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 53 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190602204653.904365654@linutronix.de Signed-off-by: Greg Kroah-Hartman commit caab277b1de0a22b675c4c95fc7b285ec2eb5bf5 Author: Thomas Gleixner Date: Mon Jun 3 07:44:50 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 503 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190602204653.811534538@linutronix.de Signed-off-by: Greg Kroah-Hartman commit ac1dc6b2e7d34dd608d082d1735e5c95f42beb77 Author: Thomas Gleixner Date: Mon Jun 3 07:44:49 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 233 Based on 1 normalized pattern(s): this software is licensed under the terms of the gnu general public license version 2 as published by the free software foundation and may be copied distributed and modified under those terms extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 6 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190602204653.720704315@linutronix.de Signed-off-by: Greg Kroah-Hartman commit a7d7a39274654d404857c2b2982793eded0e3130 Author: Thomas Gleixner Date: Mon Jun 3 07:44:48 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 232 Based on 1 normalized pattern(s): licensed under the gnu general public license version 2 0 gplv2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190602204653.630925848@linutronix.de Signed-off-by: Greg Kroah-Hartman commit b6a3d1b71a326e1194202f67b9989335c07498b4 Author: Thomas Gleixner Date: Mon Jun 3 07:44:47 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 231 Based on 1 normalized pattern(s): this library is free software you can redistribute it and or modify it under the terms of the gnu general public license v2 as published by the free software foundation this library is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu lesser general public license for more details you should have received a copy of the gnu lesser general public license along with this library if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Reviewed-by: Enrico Weigelt Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190602204653.539286961@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 40b0b3f8fb2d8f55d13ceed41593d46689a6b496 Author: Thomas Gleixner Date: Mon Jun 3 07:44:46 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 230 Based on 2 normalized pattern(s): this source code is licensed under the gnu general public license version 2 see the file copying for more details this source code is licensed under general public license version 2 see extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 52 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Enrico Weigelt Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190602204653.449021192@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 33eea064b2b183a8eb351fe867db49c3dbcee545 Author: Thomas Gleixner Date: Mon Jun 3 07:44:42 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 226 Based on 1 normalized pattern(s): licensed under the terms of the gplv2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Enrico Weigelt Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190602204653.087533673@linutronix.de Signed-off-by: Greg Kroah-Hartman commit e4e5a865e9a9e8e47ac1959b629e9f3ae3b062f2 Author: Andrew Jones Date: Mon May 27 13:46:19 2019 +0200 KVM: arm/arm64: Fix emulated ptimer irq injection The emulated ptimer needs to track the level changes, otherwise the the interrupt will never get deasserted, resulting in the guest getting stuck in an interrupt storm if it enables ptimer interrupts. This was found with kvm-unit-tests; the ptimer tests hung as soon as interrupts were enabled. Typical Linux guests don't have a problem as they prefer using the virtual timer. Fixes: bee038a674875 ("KVM: arm/arm64: Rework the timer code to use a timer_map") Signed-off-by: Andrew Jones [Simplified the patch to res we only care about emulated timers here] Signed-off-by: Marc Zyngier commit 27e23d8975270df6999f8b5b3156fc0c04927451 Author: Arnd Bergmann Date: Wed Jun 19 15:04:54 2019 +0200 ARM: omap2: remove incorrect __init annotation omap3xxx_prm_enable_io_wakeup() is marked __init, but its caller is not, so we get a warning with clang-8: WARNING: vmlinux.o(.text+0x343c8): Section mismatch in reference from the function omap3xxx_prm_late_init() to the function .init.text:omap3xxx_prm_enable_io_wakeup() The function omap3xxx_prm_late_init() references the function __init omap3xxx_prm_enable_io_wakeup(). This is often because omap3xxx_prm_late_init lacks a __init annotation or the annotation of omap3xxx_prm_enable_io_wakeup is wrong. When building with gcc, omap3xxx_prm_enable_io_wakeup() is always inlined, so we never noticed in the past. Signed-off-by: Arnd Bergmann Reviewed-by: Nathan Chancellor Acked-by: Tony Lindgren Reviewed-by: Andrew Murray Signed-off-by: Olof Johansson commit ef51ea44a96f6d7a770a4210a04d93ec820df077 Merge: c91476761094 36558020128b Author: Olof Johansson Date: Wed Jun 19 07:26:35 2019 -0700 Merge tag 'gemini-dts-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik into arm/fixes This fixes up two issues with the Gemini DTS files: - Blank console after a while on the DIR-685 so as not to waste power - Fix up the erroneous compatible string on the DNS-313 * tag 'gemini-dts-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik: ARM: dts: gemini Fix up DNS-313 compatible string ARM: dts: Blank D-Link DIR-685 console Signed-off-by: Olof Johansson commit c914767610946845bd3054341f4636b702fd7632 Merge: cd3967bee004 a019ab406797 Author: Olof Johansson Date: Wed Jun 19 07:26:01 2019 -0700 Merge tag 'imx-fixes-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/fixes i.MX fixes for 5.2, round 2: - A fix on LS1028A device tree CPU state to get CPU idle work. - Enable FSL_EDMA driver support in defconfig to fix a indefinite deferring probe on Layerscape platforms. * tag 'imx-fixes-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: arm64: defconfig: Enable FSL_EDMA driver arm64: dts: ls1028a: Fix CPU idle fail. Signed-off-by: Olof Johansson commit 48620e341659f6e4b978ec229f6944dabe6df709 Author: Rasmus Villemoes Date: Wed Jun 19 10:02:13 2019 +0000 net: dsa: mv88e6xxx: fix shift of FID bits in mv88e6185_g1_vtu_loadpurge() The comment is correct, but the code ends up moving the bits four places too far, into the VTUOp field. Fixes: 11ea809f1a74 (net: dsa: mv88e6xxx: support 256 databases) Signed-off-by: Rasmus Villemoes Signed-off-by: David S. Miller commit 9dba988edb31d013003b7f00e82dd56f01db70c3 Author: Aaron Lewis Date: Fri May 31 14:14:52 2019 +0000 tests: kvm: Check for a kernel warning When running with /sys/module/kvm_intel/parameters/unrestricted_guest=N, test that a kernel warning does not occur informing us that vcpu->mmio_needed=1. This can happen when KVM_RUN is called after a triple fault. This test was made to detect a bug that was reported by Syzkaller (https://groups.google.com/forum/#!topic/syzkaller/lHfau8E3SOE) and fixed with commit bbeac2830f4de ("KVM: X86: Fix residual mmio emulation request to userspace"). Signed-off-by: Aaron Lewis Reviewed-by: Jim Mattson Reviewed-by: Peter Shier Signed-off-by: Paolo Bonzini commit 61cfcd545e4291d3130022e6f5f684b5d011374b Author: Aaron Lewis Date: Tue May 21 17:13:58 2019 +0000 kvm: tests: Sort tests in the Makefile alphabetically Signed-off-by: Aaron Lewis Reviewed-by: Peter Shier Signed-off-by: Paolo Bonzini commit b6b80c78af838bef17501416d5d383fedab0010a Author: Sean Christopherson Date: Thu Jun 13 10:22:23 2019 -0700 KVM: x86/mmu: Allocate PAE root array when using SVM's 32-bit NPT SVM's Nested Page Tables (NPT) reuses x86 paging for the host-controlled page walk. For 32-bit KVM, this means PAE paging is used even when TDP is enabled, i.e. the PAE root array needs to be allocated. Fixes: ee6268ba3a68 ("KVM: x86: Skip pae_root shadow allocation if tdp enabled") Cc: stable@vger.kernel.org Reported-by: Jiri Palecek Signed-off-by: Sean Christopherson Signed-off-by: Paolo Bonzini commit 6ca00dfafda731d6eafdc164326e7336cdf42d74 Author: Liran Alon Date: Sun Jun 16 15:03:10 2019 +0300 KVM: x86: Modify struct kvm_nested_state to have explicit fields for data Improve the KVM_{GET,SET}_NESTED_STATE structs by detailing the format of VMX nested state data in a struct. In order to avoid changing the ioctl values of KVM_{GET,SET}_NESTED_STATE, there is a need to preserve sizeof(struct kvm_nested_state). This is done by defining the data struct as "data.vmx[0]". It was the most elegant way I found to preserve struct size while still keeping struct readable and easy to maintain. It does have a misfortunate side-effect that now it has to be accessed as "data.vmx[0]" rather than just "data.vmx". Because we are already modifying these structs, I also modified the following: * Define the "format" field values as macros. * Rename vmcs_pa to vmcs12_pa for better readability. Signed-off-by: Liran Alon [Remove SVM stubs, add KVM_STATE_NESTED_VMX_VMCS12_SIZE. - Paolo] Reviewed-by: Liran Alon Signed-off-by: Paolo Bonzini commit c285a2f01d692ef48d7243cf1072897bbd237407 Author: Amir Goldstein Date: Wed Jun 19 13:34:44 2019 +0300 fanotify: update connector fsid cache on add mark When implementing connector fsid cache, we only initialized the cache when the first mark added to object was added by FAN_REPORT_FID group. We forgot to update conn->fsid when the second mark is added by FAN_REPORT_FID group to an already attached connector without fsid cache. Reported-and-tested-by: syzbot+c277e8e2f46414645508@syzkaller.appspotmail.com Fixes: 77115225acc6 ("fanotify: cache fsid in fsnotify_mark_connector") Signed-off-by: Amir Goldstein Signed-off-by: Jan Kara commit c6d9c35d16f1bafd3fec64b865e569e48cbcb514 Author: yangerkun Date: Tue Mar 26 22:00:02 2019 +0800 quota: fix a problem about transfer quota Run below script as root, dquot_add_space will return -EDQUOT since __dquot_transfer call dquot_add_space with flags=0, and dquot_add_space think it's a preallocation. Fix it by set flags as DQUOT_SPACE_WARN. mkfs.ext4 -O quota,project /dev/vdb mount -o prjquota /dev/vdb /mnt setquota -P 23 1 1 0 0 /dev/vdb dd if=/dev/zero of=/mnt/test-file bs=4K count=1 chattr -p 23 test-file Fixes: 7b9ca4c61bc2 ("quota: Reduce contention on dq_data_lock") Signed-off-by: yangerkun Signed-off-by: Jan Kara commit 475df5d0f3eb2d031e4505f84d8fba75baaf2e80 Author: Ville Syrjälä Date: Wed Jun 19 15:09:29 2019 +0300 drm/i915: Don't clobber M/N values during fastset check We're now calling intel_pipe_config_compare(..., true) uncoditionally which means we're always going clobber the calculated M/N values with the old values if the fuzzy M/N check passes. That causes problems because the fuzzy check allows for a huge difference in the values. I'm actually tempted to just make the M/N checks exact, but that might prevent fastboot from kicking in when people want it. So for now let's overwrite the computed values with the old values only if decide to skip the modeset. v2: Copy has_drrs along with M/N M2/N2 values Cc: stable@vger.kernel.org Cc: Blubberbub@protonmail.com Cc: Maarten Lankhorst Cc: Hans de Goede Tested-by: Blubberbub@protonmail.com Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110782 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110675 Fixes: d19f958db23c ("drm/i915: Enable fastset for non-boot modesets.") Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190612172423.25231-1-ville.syrjala@linux.intel.com Reviewed-by: Imre Deak (cherry picked from commit f0521558a2a89d58a08745e225025d338572e60a) Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190619120929.4057-1-ville.syrjala@linux.intel.com commit 9739ab7eda459f0669ec9807e0d9be5020bab88c Author: Christoph Hellwig Date: Thu Jun 13 10:24:46 2019 +0200 powerpc: enable a 30-bit ZONE_DMA for 32-bit pmac With the strict dma mask checking introduced with the switch to the generic DMA direct code common wifi chips on 32-bit powerbooks stopped working. Add a 30-bit ZONE_DMA to the 32-bit pmac builds to allow them to reliably allocate dma coherent memory. Fixes: 65a21b71f948 ("powerpc/dma: remove dma_nommu_dma_supported") Reported-by: Aaro Koskinen Signed-off-by: Christoph Hellwig Tested-by: Larry Finger Acked-by: Larry Finger Tested-by: Aaro Koskinen Signed-off-by: Michael Ellerman commit 36558020128b1a48b7bddd5792ee70e3f64b04b0 Author: Linus Walleij Date: Sun Jun 16 23:40:13 2019 +0200 ARM: dts: gemini Fix up DNS-313 compatible string It's a simple typo in the DNS file, which was pretty serious. No scripts were working properly. Fix it up. Signed-off-by: Linus Walleij commit cf18ea7593adbfe68b594e45467379d4ee8ca8ba Author: Linus Walleij Date: Mon Aug 27 00:10:39 2018 +0200 ARM: dts: Blank D-Link DIR-685 console Leaving this NAS with display and backlight on heats it up and dissipates power. Turn off the screen after 4 minutes, it comes back on when a user touches the keys. Signed-off-by: Linus Walleij commit 5423f5ce5ca410b3646f355279e4e937d452e622 Author: Thomas Gleixner Date: Tue Jun 18 22:31:40 2019 +0200 x86/microcode: Fix the microcode load on CPU hotplug for real A recent change moved the microcode loader hotplug callback into the early startup phase which is running with interrupts disabled. It missed that the callbacks invoke sysfs functions which might sleep causing nice 'might sleep' splats with proper debugging enabled. Split the callbacks and only load the microcode in the early startup phase and move the sysfs handling back into the later threaded and preemptible bringup phase where it was before. Fixes: 78f4e932f776 ("x86/microcode, cpuhotplug: Add a microcode loader CPU hotplug callback") Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: stable@vger.kernel.org Cc: x86-ml Link: https://lkml.kernel.org/r/alpine.DEB.2.21.1906182228350.1766@nanos.tec.linutronix.de commit 6dde1e42f497b2d4e22466f23019016775607947 Author: Amir Goldstein Date: Sun Jun 9 19:03:44 2019 +0300 ovl: make i_ino consistent with st_ino in more cases Relax the condition that overlayfs supports nfs export, to require that i_ino is consistent with st_ino/d_ino. It is enough to require that st_ino and d_ino are consistent. This fixes the failure of xfstest generic/504, due to mismatch of st_ino to inode number in the output of /proc/locks. Fixes: 12574a9f4c9c ("ovl: consistent i_ino for non-samefs with xino") Cc: # v4.19 Signed-off-by: Amir Goldstein Signed-off-by: Miklos Szeredi commit f5633efcedb43b87b9fa81695335feb7b2e20f3c Merge: 9e0babf2c06c 971afec3a537 Author: Jani Nikula Date: Wed Jun 19 09:59:58 2019 +0300 Merge tag 'gvt-fixes-2019-06-19' of https://github.com/intel/gvt-linux into drm-intel-fixes gvt-fixes-2019-06-19 - Fix reserved PVINFO register write (Weinan) Signed-off-by: Jani Nikula From: Zhenyu Wang Link: https://patchwork.freedesktop.org/patch/msgid/20190619062240.GM9684@zhen-hp.sh.intel.com commit 5589b08e5be47e426158f659a892153b4a831921 Author: Arun Easi Date: Fri Jun 14 07:36:27 2019 -0700 scsi: qla2xxx: Fix hardlockup in abort command during driver remove [436194.555537] NMI watchdog: Watchdog detected hard LOCKUP on cpu 5 [436194.555558] RIP: 0010:native_queued_spin_lock_slowpath+0x63/0x1e0 [436194.555563] Call Trace: [436194.555564] _raw_spin_lock_irqsave+0x30/0x40 [436194.555564] qla24xx_async_abort_command+0x29/0xd0 [qla2xxx] [436194.555565] qla24xx_abort_command+0x208/0x2d0 [qla2xxx] [436194.555565] __qla2x00_abort_all_cmds+0x16b/0x290 [qla2xxx] [436194.555565] qla2x00_abort_all_cmds+0x42/0x60 [qla2xxx] [436194.555566] qla2x00_abort_isp_cleanup+0x2bd/0x3a0 [qla2xxx] [436194.555566] qla2x00_remove_one+0x1ad/0x360 [qla2xxx] [436194.555566] pci_device_remove+0x3b/0xb0 Fixes: 219d27d7147e (scsi: qla2xxx: Fix race conditions in the code for aborting SCSI commands) Cc: stable@vger.kernel.org # 5.2 Signed-off-by: Arun Easi Signed-off-by: Himanshu Madhani Reviewed-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit 24e2e7a19f7e4b83d0d5189040d997bce3596473 Author: Stanley Chu Date: Wed Jun 12 23:19:05 2019 +0800 scsi: ufs: Avoid runtime suspend possibly being blocked forever UFS runtime suspend can be triggered after pm_runtime_enable() is invoked in ufshcd_pltfrm_init(). However if the first runtime suspend is triggered before binding ufs_hba structure to ufs device structure via platform_set_drvdata(), then UFS runtime suspend will be no longer triggered in the future because its dev->power.runtime_error was set in the first triggering and does not have any chance to be cleared. To be more clear, dev->power.runtime_error is set if hba is NULL in ufshcd_runtime_suspend() which returns -EINVAL to rpm_callback() where dev->power.runtime_error is set as -EINVAL. In this case, any future rpm_suspend() for UFS device fails because rpm_check_suspend_allowed() fails due to non-zero dev->power.runtime_error. To resolve this issue, make sure the first UFS runtime suspend get valid "hba" in ufshcd_runtime_suspend(): Enable UFS runtime PM only after hba is successfully bound to UFS device structure. Fixes: 62694735ca95 ([SCSI] ufs: Add runtime PM support for UFS host controller driver) Cc: stable@vger.kernel.org Signed-off-by: Stanley Chu Reviewed-by: Avri Altman Signed-off-by: Martin K. Petersen commit 8cf4c5403aeb8d3921c174ad1c72c9753cfb5f5f Author: Nilesh Javali Date: Wed Jun 12 01:05:42 2019 -0700 scsi: qedi: update driver version to 8.37.0.20 Update qedi driver version to 8.37.0.20 Signed-off-by: Nilesh Javali Reviewed-by: Lee Duncan Reviewed-by: Chris Leech Signed-off-by: Martin K. Petersen commit 1ac3549ed58cdfdaf43bbf31ac260e2381cc0dae Author: Nilesh Javali Date: Wed Jun 12 01:05:41 2019 -0700 scsi: qedi: Check targetname while finding boot target information The kernel panic was observed during iSCSI discovery via offload with below call trace, [ 2115.646901] BUG: unable to handle kernel NULL pointer dereference at (null) [ 2115.646909] IP: [] strncmp+0xc/0x60 [ 2115.646927] PGD 0 [ 2115.646932] Oops: 0000 [#1] SMP [ 2115.647107] CPU: 24 PID: 264 Comm: kworker/24:1 Kdump: loaded Tainted: G OE ------------ 3.10.0-957.el7.x86_64 #1 [ 2115.647133] Workqueue: slowpath-13:00. qed_slowpath_task [qed] [ 2115.647135] task: ffff8d66af80b0c0 ti: ffff8d66afb80000 task.ti: ffff8d66afb80000 [ 2115.647136] RIP: 0010:[] [] strncmp+0xc/0x60 [ 2115.647141] RSP: 0018:ffff8d66afb83c68 EFLAGS: 00010206 [ 2115.647143] RAX: 0000000000000001 RBX: 0000000000000007 RCX: 000000000000000a [ 2115.647144] RDX: 0000000000000100 RSI: 0000000000000000 RDI: ffff8d632b3ba040 [ 2115.647145] RBP: ffff8d66afb83c68 R08: 0000000000000000 R09: 000000000000ffff [ 2115.647147] R10: 0000000000000007 R11: 0000000000000800 R12: ffff8d66a30007a0 [ 2115.647148] R13: ffff8d66747a3c10 R14: ffff8d632b3ba000 R15: ffff8d66747a32f8 [ 2115.647149] FS: 0000000000000000(0000) GS:ffff8d66aff00000(0000) knlGS:0000000000000000 [ 2115.647151] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 2115.647152] CR2: 0000000000000000 CR3: 0000000509610000 CR4: 00000000007607e0 [ 2115.647153] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 2115.647154] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 2115.647155] PKRU: 00000000 [ 2115.647157] Call Trace: [ 2115.647165] [] qedi_get_protocol_tlv_data+0x2c5/0x510 [qedi] [ 2115.647184] [] ? qed_mfw_process_tlv_req+0x245/0xbe0 [qed] [ 2115.647195] [] qed_mfw_fill_tlv_data+0x4b/0xb0 [qed] [ 2115.647206] [] qed_mfw_process_tlv_req+0x261/0xbe0 [qed] [ 2115.647215] [] ? dequeue_task_fair+0x41e/0x660 [ 2115.647221] [] ? __switch_to+0xce/0x580 [ 2115.647230] [] qed_slowpath_task+0xa3/0x160 [qed] [ 2115.647278] RIP [] strncmp+0xc/0x60 Fix kernel panic by validating the session targetname before providing TLV data and confirming the presence of boot targets. Signed-off-by: Nilesh Javali Reviewed-by: Lee Duncan Reviewed-by: Chris Leech Signed-off-by: Martin K. Petersen commit d470e720ef27786d97b18e7cf50230610e4e6b17 Merge: cb359b604167 8a3dca632538 Author: David S. Miller Date: Tue Jun 18 21:43:40 2019 -0400 Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf Pablo Neira Ayuso says: ==================== Netfilter fixes for net 1) Module autoload for masquerade and redirection does not work. 2) Leak in unqueued packets in nf_ct_frag6_queue(). Ignore duplicated fragments, pretend they are placed into the queue. Patches from Guillaume Nault. ==================== Signed-off-by: David S. Miller commit cb359b60416701c8bed82fec79de25a144beb893 Author: Sunil Muthuswamy Date: Mon Jun 17 19:26:25 2019 +0000 hvsock: fix epollout hang from race condition Currently, hvsock can enter into a state where epoll_wait on EPOLLOUT will not return even when the hvsock socket is writable, under some race condition. This can happen under the following sequence: - fd = socket(hvsocket) - fd_out = dup(fd) - fd_in = dup(fd) - start a writer thread that writes data to fd_out with a combination of epoll_wait(fd_out, EPOLLOUT) and - start a reader thread that reads data from fd_in with a combination of epoll_wait(fd_in, EPOLLIN) - On the host, there are two threads that are reading/writing data to the hvsocket stack: hvs_stream_has_space hvs_notify_poll_out vsock_poll sock_poll ep_poll Race condition: check for epollout from ep_poll(): assume no writable space in the socket hvs_stream_has_space() returns 0 check for epollin from ep_poll(): assume socket has some free space < HVS_PKT_LEN(HVS_SEND_BUF_SIZE) hvs_stream_has_space() will clear the channel pending send size host will not notify the guest because the pending send size has been cleared and so the hvsocket will never mark the socket writable Now, the EPOLLOUT will never return even if the socket write buffer is empty. The fix is to set the pending size to the default size and never change it. This way the host will always notify the guest whenever the writable space is bigger than the pending size. The host is already optimized to *only* notify the guest when the pending size threshold boundary is crossed and not everytime. This change also reduces the cpu usage somewhat since hv_stream_has_space() is in the hotpath of send: vsock_stream_sendmsg()->hv_stream_has_space() Earlier hv_stream_has_space was setting/clearing the pending size on every call. Signed-off-by: Sunil Muthuswamy Reviewed-by: Dexuan Cui Signed-off-by: David S. Miller commit 76e21533a48bb42d1fa894f93f6233bf4554f45e Author: Fred Klassen Date: Mon Jun 17 12:05:07 2019 -0700 net/udp_gso: Allow TX timestamp with UDP GSO Fixes an issue where TX Timestamps are not arriving on the error queue when UDP_SEGMENT CMSG type is combined with CMSG type SO_TIMESTAMPING. This can be illustrated with an updated updgso_bench_tx program which includes the '-T' option to test for this condition. It also introduces the '-P' option which will call poll() before reading the error queue. ./udpgso_bench_tx -4ucTPv -S 1472 -l2 -D 172.16.120.18 poll timeout udp tx: 0 MB/s 1 calls/s 1 msg/s The "poll timeout" message above indicates that TX timestamp never arrived. This patch preserves tx_flags for the first UDP GSO segment. Only the first segment is timestamped, even though in some cases there may be benefital in timestamping both the first and last segment. Factors in deciding on first segment timestamp only: - Timestamping both first and last segmented is not feasible. Hardware can only have one outstanding TS request at a time. - Timestamping last segment may under report network latency of the previous segments. Even though the doorbell is suppressed, the ring producer counter has been incremented. - Timestamping the first segment has the upside in that it reports timestamps from the application's view, e.g. RTT. - Timestamping the first segment has the downside that it may underreport tx host network latency. It appears that we have to pick one or the other. And possibly follow-up with a config flag to choose behavior. v2: Remove tests as noted by Willem de Bruijn Moving tests from net to net-next v3: Update only relevant tx_flag bits as per Willem de Bruijn v4: Update comments and commit message as per Willem de Bruijn Fixes: ee80d1ebe5ba ("udp: add udp gso") Signed-off-by: Fred Klassen Acked-by: Willem de Bruijn Signed-off-by: David S. Miller commit e11e1007a177fe4abc12b620dcf9e36eb8027f40 Merge: 9476274093a0 3e14c383de34 Author: David S. Miller Date: Tue Jun 18 21:30:39 2019 -0400 Merge branch 'net-netem-fix-issues-with-corrupting-GSO-frames' Jakub Kicinski says: ==================== net: netem: fix issues with corrupting GSO frames Corrupting GSO frames currently leads to crashes, due to skb use after free. These stem from the skb list handling - the segmented skbs come back on a list, and this list is not properly unlinked before enqueuing the segments. Turns out this condition is made very likely to occur because of another bug - in backlog accounting. Segments are counted twice, which means qdisc's limit gets reached leading to drops and making the use after free very likely to happen. The bugs are fixed in order in which they were added to the tree. ==================== Signed-off-by: David S. Miller commit 3e14c383de349a86895b8c6c410b9222646574f6 Author: Jakub Kicinski Date: Mon Jun 17 11:11:11 2019 -0700 net: netem: fix use after free and double free with packet corruption Brendan reports that the use of netem's packet corruption capability leads to strange crashes. This seems to be caused by commit d66280b12bd7 ("net: netem: use a list in addition to rbtree") which uses skb->next pointer to construct a fast-path queue of in-order skbs. Packet corruption code has to invoke skb_gso_segment() in case of skbs in need of GSO. skb_gso_segment() returns a list of skbs. If next pointers of the skbs on that list do not get cleared fast path list may point to freed skbs or skbs which are also on the RB tree. Let's say skb gets segmented into 3 frames: A -> B -> C A gets hooked to the t_head t_tail list by tfifo_enqueue(), but it's next pointer didn't get cleared so we have: h t |/ A -> B -> C Now if B and C get also get enqueued successfully all is fine, because tfifo_enqueue() will overwrite the list in order. IOW: Enqueue B: h t | | A -> B C Enqueue C: h t | | A -> B -> C But if B and C get reordered we may end up with: h t RB tree |/ | A -> B -> C B \ C Or if they get dropped just: h t |/ A -> B -> C where A and B are already freed. To reproduce either limit has to be set low to cause freeing of segs or reorders have to happen (due to delay jitter). Note that we only have to mark the first segment as not on the list, "finish_segs" handling of other frags already does that. Another caveat is that qdisc_drop_all() still has to free all segments correctly in case of drop of first segment, therefore we re-link segs before calling it. v2: - re-link before drop, v1 was leaking non-first segs if limit was hit at the first seg - better commit message which lead to discovering the above :) Reported-by: Brendan Galloway Fixes: d66280b12bd7 ("net: netem: use a list in addition to rbtree") Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Acked-by: Cong Wang Signed-off-by: David S. Miller commit 177b8007463c4f36c9a2c7ce7aa9875a4cad9bd5 Author: Jakub Kicinski Date: Mon Jun 17 11:11:10 2019 -0700 net: netem: fix backlog accounting for corrupted GSO frames When GSO frame has to be corrupted netem uses skb_gso_segment() to produce the list of frames, and re-enqueues the segments one by one. The backlog length has to be adjusted to account for new frames. The current calculation is incorrect, leading to wrong backlog lengths in the parent qdisc (both bytes and packets), and incorrect packet backlog count in netem itself. Parent backlog goes negative, netem's packet backlog counts all non-first segments twice (thus remaining non-zero even after qdisc is emptied). Move the variables used to count the adjustment into local scope to make 100% sure they aren't used at any stage in backports. Fixes: 6071bd1aa13e ("netem: Segment GSO packets on enqueue") Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Acked-by: Cong Wang Signed-off-by: David S. Miller commit 9476274093a0e79b905f4cd6cf6d149f65e02c17 Author: Colin Ian King Date: Mon Jun 17 17:12:49 2019 +0100 net: lio_core: fix potential sign-extension overflow on large shift Left shifting the signed int value 1 by 31 bits has undefined behaviour and the shift amount oq_no can be as much as 63. Fix this by using BIT_ULL(oq_no) instead. Addresses-Coverity: ("Bad shift operation") Fixes: f21fb3ed364b ("Add support of Cavium Liquidio ethernet adapters") Signed-off-by: Colin Ian King Reviewed-by: Dan Carpenter Signed-off-by: David S. Miller commit 55458d2f4074307c2aa787300c9272ff668a3ac3 Merge: 72b319dc08b4 c3bcde026684 Author: David S. Miller Date: Tue Jun 18 20:48:45 2019 -0400 Merge branch 'net-fix-quite-a-few-dst_cache-crashes-reported-by-syzbot' Xin Long says: ==================== net: fix quite a few dst_cache crashes reported by syzbot There are two kinds of crashes reported many times by syzbot with no reproducer. Call Traces are like: BUG: KASAN: slab-out-of-bounds in rt_cache_valid+0x158/0x190 net/ipv4/route.c:1556 rt_cache_valid+0x158/0x190 net/ipv4/route.c:1556 __mkroute_output net/ipv4/route.c:2332 [inline] ip_route_output_key_hash_rcu+0x819/0x2d50 net/ipv4/route.c:2564 ip_route_output_key_hash+0x1ef/0x360 net/ipv4/route.c:2393 __ip_route_output_key include/net/route.h:125 [inline] ip_route_output_flow+0x28/0xc0 net/ipv4/route.c:2651 ip_route_output_key include/net/route.h:135 [inline] ... or: kasan: GPF could be caused by NULL-ptr deref or user memory access RIP: 0010:dst_dev_put+0x24/0x290 net/core/dst.c:168 rt_fibinfo_free_cpus net/ipv4/fib_semantics.c:200 [inline] free_fib_info_rcu+0x2e1/0x490 net/ipv4/fib_semantics.c:217 __rcu_reclaim kernel/rcu/rcu.h:240 [inline] rcu_do_batch kernel/rcu/tree.c:2437 [inline] invoke_rcu_callbacks kernel/rcu/tree.c:2716 [inline] rcu_process_callbacks+0x100a/0x1ac0 kernel/rcu/tree.c:2697 ... They were caused by the fib_nh_common percpu member 'nhc_pcpu_rth_output' overwritten by another percpu variable 'dev->tstats' access overflow in tipc udp media xmit path when counting packets on a non tunnel device. The fix is to make udp tunnel work with no tunnel device by allowing not to count packets on the tstats when the tunnel dev is NULL in Patches 1/3 and 2/3, then pass a NULL tunnel dev in tipc_udp_tunnel() in Patch 3/3. ==================== Signed-off-by: David S. Miller commit c3bcde026684c62d7a2b6f626dc7cf763833875c Author: Xin Long Date: Mon Jun 17 21:34:15 2019 +0800 tipc: pass tunnel dev as NULL to udp_tunnel(6)_xmit_skb udp_tunnel(6)_xmit_skb() called by tipc_udp_xmit() expects a tunnel device to count packets on dev->tstats, a perpcu variable. However, TIPC is using udp tunnel with no tunnel device, and pass the lower dev, like veth device that only initializes dev->lstats(a perpcu variable) when creating it. Later iptunnel_xmit_stats() called by ip(6)tunnel_xmit() thinks the dev as a tunnel device, and uses dev->tstats instead of dev->lstats. tstats' each pointer points to a bigger struct than lstats, so when tstats->tx_bytes is increased, other percpu variable's members could be overwritten. syzbot has reported quite a few crashes due to fib_nh_common percpu member 'nhc_pcpu_rth_output' overwritten, call traces are like: BUG: KASAN: slab-out-of-bounds in rt_cache_valid+0x158/0x190 net/ipv4/route.c:1556 rt_cache_valid+0x158/0x190 net/ipv4/route.c:1556 __mkroute_output net/ipv4/route.c:2332 [inline] ip_route_output_key_hash_rcu+0x819/0x2d50 net/ipv4/route.c:2564 ip_route_output_key_hash+0x1ef/0x360 net/ipv4/route.c:2393 __ip_route_output_key include/net/route.h:125 [inline] ip_route_output_flow+0x28/0xc0 net/ipv4/route.c:2651 ip_route_output_key include/net/route.h:135 [inline] ... or: kasan: GPF could be caused by NULL-ptr deref or user memory access RIP: 0010:dst_dev_put+0x24/0x290 net/core/dst.c:168 rt_fibinfo_free_cpus net/ipv4/fib_semantics.c:200 [inline] free_fib_info_rcu+0x2e1/0x490 net/ipv4/fib_semantics.c:217 __rcu_reclaim kernel/rcu/rcu.h:240 [inline] rcu_do_batch kernel/rcu/tree.c:2437 [inline] invoke_rcu_callbacks kernel/rcu/tree.c:2716 [inline] rcu_process_callbacks+0x100a/0x1ac0 kernel/rcu/tree.c:2697 ... The issue exists since tunnel stats update is moved to iptunnel_xmit by Commit 039f50629b7f ("ip_tunnel: Move stats update to iptunnel_xmit()"), and here to fix it by passing a NULL tunnel dev to udp_tunnel(6)_xmit_skb so that the packets counting won't happen on dev->tstats. Reported-by: syzbot+9d4c12bfd45a58738d0a@syzkaller.appspotmail.com Reported-by: syzbot+a9e23ea2aa21044c2798@syzkaller.appspotmail.com Reported-by: syzbot+c4c4b2bb358bb936ad7e@syzkaller.appspotmail.com Reported-by: syzbot+0290d2290a607e035ba1@syzkaller.appspotmail.com Reported-by: syzbot+a43d8d4e7e8a7a9e149e@syzkaller.appspotmail.com Reported-by: syzbot+a47c5f4c6c00fc1ed16e@syzkaller.appspotmail.com Fixes: 039f50629b7f ("ip_tunnel: Move stats update to iptunnel_xmit()") Signed-off-by: Xin Long Signed-off-by: David S. Miller commit 6f6a8622057c92408930c31698394fae1557b188 Author: Xin Long Date: Mon Jun 17 21:34:14 2019 +0800 ip6_tunnel: allow not to count pkts on tstats by passing dev as NULL A similar fix to Patch "ip_tunnel: allow not to count pkts on tstats by setting skb's dev to NULL" is also needed by ip6_tunnel. Signed-off-by: Xin Long Signed-off-by: David S. Miller commit 5684abf7020dfc5f0b6ba1d68eda3663871fce52 Author: Xin Long Date: Mon Jun 17 21:34:13 2019 +0800 ip_tunnel: allow not to count pkts on tstats by setting skb's dev to NULL iptunnel_xmit() works as a common function, also used by a udp tunnel which doesn't have to have a tunnel device, like how TIPC works with udp media. In these cases, we should allow not to count pkts on dev's tstats, so that udp tunnel can work with no tunnel device safely. Signed-off-by: Xin Long Signed-off-by: David S. Miller commit 156e42996bd84eccb6acf319f19ce0cb140d00e3 Author: Mike Salvatore Date: Wed Jun 12 14:55:14 2019 -0700 apparmor: reset pos on failure to unpack for various functions Each function that manipulates the aa_ext struct should reset it's "pos" member on failure. This ensures that, on failure, no changes are made to the state of the aa_ext struct. There are paths were elements are optional and the error path is used to indicate the optional element is not present. This means instead of just aborting on error the unpack stream can become unsynchronized on optional elements, if using one of the affected functions. Cc: stable@vger.kernel.org Fixes: 736ec752d95e ("AppArmor: policy routines for loading and unpacking policy") Signed-off-by: Mike Salvatore Signed-off-by: John Johansen commit 8404d7a674c49278607d19726e0acc0cae299357 Author: Jann Horn Date: Tue May 28 17:32:26 2019 +0200 apparmor: enforce nullbyte at end of tag string A packed AppArmor policy contains null-terminated tag strings that are read by unpack_nameX(). However, unpack_nameX() uses string functions on them without ensuring that they are actually null-terminated, potentially leading to out-of-bounds accesses. Make sure that the tag string is null-terminated before passing it to strcmp(). Cc: stable@vger.kernel.org Fixes: 736ec752d95e ("AppArmor: policy routines for loading and unpacking policy") Signed-off-by: Jann Horn Signed-off-by: John Johansen commit 23375b13f98c5464c2b4d15f983cc062940f1f4e Author: John Johansen Date: Sun May 26 06:42:23 2019 -0700 apparmor: fix PROFILE_MEDIATES for untrusted input While commit 11c236b89d7c2 ("apparmor: add a default null dfa") ensure every profile has a policy.dfa it does not resize the policy.start[] to have entries for every possible start value. Which means PROFILE_MEDIATES is not safe to use on untrusted input. Unforunately commit b9590ad4c4f2 ("apparmor: remove POLICY_MEDIATES_SAFE") did not take into account the start value usage. The input string in profile_query_cb() is user controlled and is not properly checked to be within the limited start[] entries, even worse it can't be as userspace policy is allowed to make us of entries types the kernel does not know about. This mean usespace can currently cause the kernel to access memory up to 240 entries beyond the start array bounds. Cc: stable@vger.kernel.org Fixes: b9590ad4c4f2 ("apparmor: remove POLICY_MEDIATES_SAFE") Signed-off-by: John Johansen commit 7a5834e456f7fb3eca9b63af2a6bc7f460ae482f Author: Gal Pressman Date: Tue Jun 18 16:07:32 2019 +0300 RDMA/efa: Handle mmap insertions overflow When inserting a new mmap entry to the xarray we should check for 'mmap_page' overflow as it is limited to 32 bits. Fixes: 40909f664d27 ("RDMA/efa: Add EFA verbs implementation") Signed-off-by: Gal Pressman Signed-off-by: Doug Ledford commit 440078db7a5539b36bd780a826cb6e2cf2cce0d0 Merge: 456918049560 9642fa73d073 Author: Jens Axboe Date: Tue Jun 18 13:53:06 2019 -0600 Merge branch 'md-fixes' of https://github.com/liu-song-6/linux into for-linus Pull MD fix from Song. * 'md-fixes' of https://github.com/liu-song-6/linux: md: fix for divide error in status_resync commit bed3c0d84e7e25c8e0964d297794f4c215b01f33 Merge: 7b306892cc57 3763771cf602 Author: Linus Torvalds Date: Tue Jun 18 11:20:24 2019 -0700 Merge tag 'for-5.2-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux Pull btrfs fixes from David Sterba: - regression where properties stored as xattrs are not properly persisted - a small readahead fix (the fstests testcase for that fix hangs on unpatched kernel, so we'd like get it merged to ease future testing) - fix a race during block group creation and deletion * tag 'for-5.2-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: Btrfs: fix failure to persist compression property xattr deletion on fsync btrfs: start readahead also in seed devices Btrfs: fix race between block group removal and block group allocation commit 7b306892cc57e27959b5232c1b8415cf09b7571c Merge: 915ed9320cba cd3967bee004 Author: Linus Torvalds Date: Tue Jun 18 10:59:59 2019 -0700 Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc Pull ARM SoC fixes from Olof Johansson: "I've been bad at collecting fixes this release cycle, so this is a fairly large batch that's been trickling in for a while. It's the usual mix, more or less. Some of the bigger things fixed: - Voltage fix for MMC on TI DRA7 that sometimes would overvoltage cards - Regression fixes for D_CAN on am355x - i.MX6SX cpuidle fix to deal with wakeup latency (dropped uart chars) - DT fixes for some DRA7 variants that don't share the superset of blocks on the chip plus the usual mix of stuff: minor build/warning fixes, Kconfig dependencies, and some DT fixlets" * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (28 commits) soc: ixp4xx: npe: Fix an IS_ERR() vs NULL check in probe ARM: ixp4xx: include irqs.h where needed ARM: ixp4xx: mark ixp4xx_irq_setup as __init ARM: ixp4xx: don't select SERIAL_OF_PLATFORM firmware: trusted_foundations: add ARMv7 dependency MAINTAINERS: Change QCOM repo location ARM: davinci: da8xx: specify dma_coherent_mask for lcdc ARM: davinci: da850-evm: call regulator_has_full_constraints() ARM: mvebu_v7_defconfig: fix Ethernet on Clearfog ARM: dts: am335x phytec boards: Fix cd-gpios active level ARM: dts: dra72x: Disable usb4_tm target module arm64: arch_k3: Fix kconfig dependency warning ARM: dts: Drop bogus CLKSEL for timer12 on dra7 MAINTAINERS: Update Stefan Wahren email address ARM: dts: bcm: Add missing device_type = "memory" property soc: bcm: brcmstb: biuctrl: Register writes require a barrier soc: brcmstb: Fix error path for unsupported CPUs ARM: dts: dra71x: Disable usb4_tm target module ARM: dts: dra71x: Disable rtc target module ARM: dts: dra76x: Disable usb4_tm target module ... commit 72b319dc08b4924a29f5e2560ef6d966fa54c429 Author: Fei Li Date: Mon Jun 17 21:26:36 2019 +0800 tun: wake up waitqueues after IFF_UP is set Currently after setting tap0 link up, the tun code wakes tx/rx waited queues up in tun_net_open() when .ndo_open() is called, however the IFF_UP flag has not been set yet. If there's already a wait queue, it would fail to transmit when checking the IFF_UP flag in tun_sendmsg(). Then the saving vhost_poll_start() will add the wq into wqh until it is waken up again. Although this works when IFF_UP flag has been set when tun_chr_poll detects; this is not true if IFF_UP flag has not been set at that time. Sadly the latter case is a fatal error, as the wq will never be waken up in future unless later manually setting link up on purpose. Fix this by moving the wakeup process into the NETDEV_UP event notifying process, this makes sure IFF_UP has been set before all waited queues been waken up. Signed-off-by: Fei Li Acked-by: Jason Wang Signed-off-by: David S. Miller commit 915ed9320cba9ddb5da3f3ee49a8ceeed85fb5cc Merge: 29f785ff76b6 8c30d32b1a32 Author: Linus Torvalds Date: Tue Jun 18 10:42:08 2019 -0700 Merge tag 'meminit-v5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux Pull stack init fix from Kees Cook: "This is a small update to the stack auto-initialization self-test code to deal with the Clang initialization pattern. It's been in linux-next for a couple weeks; I had waited a bit wondering if anything more substantial was going to show up, but nothing has, so I'm sending this now before it gets too late" * tag 'meminit-v5.2-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: lib/test_stackinit: Handle Clang auto-initialization pattern commit 74b67efa8d7b4f90137f0ab9a80dd319da050350 Author: Dan Carpenter Date: Tue Jun 18 16:18:43 2019 +0300 drm: return -EFAULT if copy_to_user() fails The copy_from_user() function returns the number of bytes remaining to be copied but we want to return a negative error code. Otherwise the callers treat it as a successful copy. Signed-off-by: Dan Carpenter Signed-off-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190618131843.GA29463@mwanda commit d0bae4a0e3d8c5690a885204d7eb2341a5b4884d Author: JingYi Hou Date: Mon Jun 17 14:56:05 2019 +0800 net: remove duplicate fetch in sock_getsockopt In sock_getsockopt(), 'optlen' is fetched the first time from userspace. 'len < 0' is then checked. Then in condition 'SO_MEMINFO', 'optlen' is fetched the second time from userspace. If change it between two fetches may cause security problems or unexpected behaivor, and there is no reason to fetch it a second time. To fix this, we need to remove the second fetch. Signed-off-by: JingYi Hou Signed-off-by: David S. Miller commit d0f84d0856c11fbafadae3d580f6a9c98d818ccd Author: Tuong Lien Date: Mon Jun 17 11:56:12 2019 +0700 tipc: fix issues with early FAILOVER_MSG from peer It appears that a FAILOVER_MSG can come from peer even when the failure link is resetting (i.e. just after the 'node_write_unlock()'...). This means the failover procedure on the node has not been started yet. The situation is as follows: node1 node2 linkb linka linka linkb | | | | | | x failure | | | RESETTING | | | | | | x failure RESET | | RESETTING FAILINGOVER | | | (FAILOVER_MSG) | | |<-------------------------------------------------| | *FAILINGOVER | | | | | (dummy FAILOVER_MSG) | | |------------------------------------------------->| | RESET | | FAILOVER_END | FAILINGOVER RESET | . . . . . . . . . . . . Once this happens, the link failover procedure will be triggered wrongly on the receiving node since the node isn't in FAILINGOVER state but then another link failover will be carried out. The consequences are: 1) A peer might get stuck in FAILINGOVER state because the 'sync_point' was set, reset and set incorrectly, the criteria to end the failover would not be met, it could keep waiting for a message that has already received. 2) The early FAILOVER_MSG(s) could be queued in the link failover deferdq but would be purged or not pulled out because the 'drop_point' was not set correctly. 3) The early FAILOVER_MSG(s) could be dropped too. 4) The dummy FAILOVER_MSG could make the peer leaving FAILINGOVER state shortly, but later on it would be restarted. The same situation can also happen when the link is in PEER_RESET state and a FAILOVER_MSG arrives. The commit resolves the issues by forcing the link down immediately, so the failover procedure will be started normally (which is the same as when receiving a FAILOVER_MSG and the link is in up state). Also, the function "tipc_node_link_failover()" is toughen to avoid such a situation from happening. Acked-by: Jon Maloy Signed-off-by: Tuong Lien Signed-off-by: David S. Miller commit cf18cecca911c0db96b868072665347efe6df46f Author: Mauro S. M. Rodrigues Date: Thu Jun 13 16:25:40 2019 -0300 bnx2x: Check if transceiver implements DDM before access Some transceivers may comply with SFF-8472 even though they do not implement the Digital Diagnostic Monitoring (DDM) interface described in the spec. The existence of such area is specified by the 6th bit of byte 92, set to 1 if implemented. Currently, without checking this bit, bnx2x fails trying to read sfp module's EEPROM with the follow message: ethtool -m enP5p1s0f1 Cannot get Module EEPROM data: Input/output error Because it fails to read the additional 256 bytes in which it is assumed to exist the DDM data. This issue was noticed using a Mellanox Passive DAC PN 01FT738. The EEPROM data was confirmed by Mellanox as correct and similar to other Passive DACs from other manufacturers. Signed-off-by: Mauro S. M. Rodrigues Acked-by: Sudarsana Reddy Kalluru Signed-off-by: David S. Miller commit ddd57980a0fde30f7b5d14b888a2cc84d01610e8 Author: Mathias Nyman Date: Tue Jun 18 17:27:48 2019 +0300 xhci: detect USB 3.2 capable host controllers correctly USB 3.2 capability in a host can be detected from the xHCI Supported Protocol Capability major and minor revision fields. If major is 0x3 and minor 0x20 then the host is USB 3.2 capable. For USB 3.2 capable hosts set the root hub lane count to 2. The Major Revision and Minor Revision fields contain a BCD version number. The value of the Major Revision field is JJh and the value of the Minor Revision field is MNh for version JJ.M.N, where JJ = major revision number, M - minor version number, N = sub-minor version number, e.g. version 3.1 is represented with a value of 0310h. Also fix the extra whitespace printed out when announcing regular SuperSpeed hosts. Cc: # v4.18+ Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman commit b8c3b718087bf7c3c8e388eb1f72ac1108a4926e Author: Mathias Nyman Date: Tue Jun 18 17:27:47 2019 +0300 usb: xhci: Don't try to recover an endpoint if port is in error state. A USB3 device needs to be reset and re-enumarated if the port it connects to goes to a error state, with link state inactive. There is no use in trying to recover failed transactions by resetting endpoints at this stage. Tests show that in rare cases, after multiple endpoint resets of a roothub port the whole host controller might stop completely. Several retries to recover from transaction error can happen as it can take a long time before the hub thread discovers the USB3 port error and inactive link. We can't reliably detect the port error from slot or endpoint context due to a limitation in xhci, see xhci specs section 4.8.3: "There are several cases where the EP State field in the Output Endpoint Context may not reflect the current state of an endpoint" and "Software should maintain an accurate value for EP State, by tracking it with an internal variable that is driven by Events and Doorbell accesses" Same appears to be true for slot state. set a flag to the corresponding slot if a USB3 roothub port link goes inactive to prevent both queueing new URBs and resetting endpoints. Reported-by: Rapolu Chiranjeevi Tested-by: Rapolu Chiranjeevi Cc: Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman commit 76e3bcdb61cad2c58ad88b2e4c70c69769026d37 Author: Dennis Restle Date: Tue Apr 30 01:01:49 2019 +0200 KVM: fix typo in documentation The documentation mentions a non-existing capability KVM_CAP_USER_MEM.s The right name is KVM_CAP_USER_MEMORY. Signed-off-by: Dennis Restle Signed-off-by: Paolo Bonzini commit 9870dc39dc53c0ab0534e1d8311a4abed7db570e Author: Boris Brezillon Date: Tue Jun 18 10:13:43 2019 +0200 drm/panfrost: Make sure a BO is only unmapped when appropriate mmu_ops->unmap() will fail when called on a BO that has not been previously mapped, and the error path in panfrost_ioctl_create_bo() can call drm_gem_object_put_unlocked() (which in turn calls panfrost_mmu_unmap()) on a BO that has not been mapped yet. Keep track of the mapped/unmapped state to avoid such issues. Fixes: f3ba91228e8e ("drm/panfrost: Add initial panfrost driver") Cc: Signed-off-by: Boris Brezillon Signed-off-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/20190618081343.16927-1-boris.brezillon@collabora.com commit 9642fa73d073527b0cbc337cc17a47d545d82cd2 Author: Mariusz Tkaczyk Date: Thu Jun 13 16:11:41 2019 +0200 md: fix for divide error in status_resync Stopping external metadata arrays during resync/recovery causes retries, loop of interrupting and starting reconstruction, until it hit at good moment to stop completely. While these retries curr_mark_cnt can be small- especially on HDD drives, so subtraction result can be smaller than 0. However it is casted to uint without checking. As a result of it the status bar in /proc/mdstat while stopping is strange (it jumps between 0% and 99%). The real problem occurs here after commit 72deb455b5ec ("block: remove CONFIG_LBDAF"). Sector_div() macro has been changed, now the divisor is casted to uint32. For db = -8 the divisior(db/32-1) becomes 0. Check if db value can be really counted and replace these macro by div64_u64() inline. Signed-off-by: Mariusz Tkaczyk Signed-off-by: Song Liu commit cd3967bee004bcbd142403698d658166fa618c9e Author: Dan Carpenter Date: Tue Jun 18 14:54:10 2019 +0300 soc: ixp4xx: npe: Fix an IS_ERR() vs NULL check in probe The devm_ioremap_resource() function doesn't return NULL, it returns error pointers. Fixes: 0b458d7b10f8 ("soc: ixp4xx: npe: Pass addresses as resources") Signed-off-by: Dan Carpenter Reviewed-by: Linus Walleij Signed-off-by: Olof Johansson commit 615c48ad8f4275b4d39fa57df68d4015078be201 Author: Mike Rapoport Date: Tue Jun 18 10:32:29 2019 +0300 arm64/mm: don't initialize pgd_cache twice When PGD_SIZE != PAGE_SIZE, arm64 uses kmem_cache for allocation of PGD memory. That cache was initialized twice: first through pgtable_cache_init() alias and then as an override for weak pgd_cache_init(). Remove the alias from pgtable_cache_init() and keep the only pgd_cache initialization in pgd_cache_init(). Fixes: caa841360134 ("x86/mm: Initialize PGD cache during mm initialization") Signed-off-by: Mike Rapoport Signed-off-by: Will Deacon commit 2a081968b1e5b69e8181f926b0b6c9ca4830cf86 Author: Hanjun Guo Date: Mon Jun 17 19:02:15 2019 +0800 MAINTAINERS: Update my email address The @linaro.org address is not working and bonucing, so update the references. Signed-off-by: Hanjun Guo Signed-off-by: Will Deacon commit 35341ca0614ab13e1ef34ad4f29a39e15ef31fa8 Author: Anisse Astier Date: Mon Jun 17 15:22:22 2019 +0200 arm64/sve: should not depend on Pulling linux/prctl.h into asm/ptrace.h in the arm64 UAPI headers causes userspace build issues for any program (e.g. strace and qemu) that includes both and when using musl libc: | error: redefinition of 'struct prctl_mm_map' | struct prctl_mm_map { See https://github.com/foundriesio/meta-lmp/commit/6d4a106e191b5d79c41b9ac78fd321316d3013c0 for a public example of people working around this issue. Although it's a bit grotty, fix this breakage by duplicating the prctl constant definitions. Since these are part of the kernel ABI, they cannot be changed in future and so it's not the end of the world to have them open-coded. Fixes: 43d4da2c45b2 ("arm64/sve: ptrace and ELF coredump support") Cc: stable@vger.kernel.org Acked-by: Dave Martin Signed-off-by: Anisse Astier Signed-off-by: Will Deacon commit 253e7483391190c93696bc9710a31b2db9b63d77 Author: Nicolas Schier Date: Mon Jun 17 09:39:00 2019 +0200 ovl: fix typo in MODULE_PARM_DESC Change first argument to MODULE_PARM_DESC() calls, that each of them matched the actual module parameter name. The matching results in changing (the 'parm' section from) the output of `modinfo overlay` from: parm: ovl_check_copy_up:Obsolete; does nothing parm: redirect_max:ushort parm: ovl_redirect_max:Maximum length of absolute redirect xattr value parm: redirect_dir:bool parm: ovl_redirect_dir_def:Default to on or off for the redirect_dir feature parm: redirect_always_follow:bool parm: ovl_redirect_always_follow:Follow redirects even if redirect_dir feature is turned off parm: index:bool parm: ovl_index_def:Default to on or off for the inodes index feature parm: nfs_export:bool parm: ovl_nfs_export_def:Default to on or off for the NFS export feature parm: xino_auto:bool parm: ovl_xino_auto_def:Auto enable xino feature parm: metacopy:bool parm: ovl_metacopy_def:Default to on or off for the metadata only copy up feature into: parm: check_copy_up:Obsolete; does nothing parm: redirect_max:Maximum length of absolute redirect xattr value (ushort) parm: redirect_dir:Default to on or off for the redirect_dir feature (bool) parm: redirect_always_follow:Follow redirects even if redirect_dir feature is turned off (bool) parm: index:Default to on or off for the inodes index feature (bool) parm: nfs_export:Default to on or off for the NFS export feature (bool) parm: xino_auto:Auto enable xino feature (bool) parm: metacopy:Default to on or off for the metadata only copy up feature (bool) Signed-off-by: Nicolas Schier Signed-off-by: Miklos Szeredi commit 1dac6f5b0ed2601be21bb4e27a44b0c3e667b7f4 Author: Arnd Bergmann Date: Mon Jun 17 14:39:29 2019 +0200 ovl: fix bogus -Wmaybe-unitialized warning gcc gets a bit confused by the logic in ovl_setup_trap() and can't figure out whether the local 'trap' variable in the caller was initialized or not: fs/overlayfs/super.c: In function 'ovl_fill_super': fs/overlayfs/super.c:1333:4: error: 'trap' may be used uninitialized in this function [-Werror=maybe-uninitialized] iput(trap); ^~~~~~~~~~ fs/overlayfs/super.c:1312:17: note: 'trap' was declared here Reword slightly to make it easier for the compiler to understand. Fixes: 146d62e5a586 ("ovl: detect overlapping layers") Signed-off-by: Arnd Bergmann Signed-off-by: Miklos Szeredi commit 9179c21dc6ed1c993caa5fe4da876a6765c26af7 Author: Miklos Szeredi Date: Tue Jun 18 15:06:16 2019 +0200 ovl: don't fail with disconnected lower NFS NFS mounts can be disconnected from fs root. Don't fail the overlapping layer check because of this. The check is not authoritative anyway, since topology can change during or after the check. Reported-by: Antti Antinoja Signed-off-by: Miklos Szeredi Fixes: 146d62e5a586 ("ovl: detect overlapping layers") commit 83293386bc95cf5e9f0c0175794455835bd1cb4a Author: Ulf Hansson Date: Tue Jun 18 14:05:17 2019 +0200 mmc: core: Prevent processing SDIO IRQs when the card is suspended Processing of SDIO IRQs must obviously be prevented while the card is system suspended, otherwise we may end up trying to communicate with an uninitialized SDIO card. Reports throughout the years shows that this is not only a theoretical problem, but a real issue. So, let's finally fix this problem, by keeping track of the state for the card and bail out before processing the SDIO IRQ, in case the card is suspended. Cc: stable@vger.kernel.org Reported-by: Douglas Anderson Tested-by: Douglas Anderson Signed-off-by: Ulf Hansson commit 0f7b79a44e7d7dd3ef1f59758c1a341f217ff5e5 Author: Raul E Rangel Date: Mon Jun 17 14:10:12 2019 -0600 mmc: sdhci: sdhci-pci-o2micro: Correctly set bus width when tuning The O2Micro controller only supports tuning at 4-bits. So the host driver needs to change the bus width while tuning and then set it back when done. There was a bug in the original implementation in that mmc->ios.bus_width also wasn't updated. Thus setting the incorrect blocksize in sdhci_send_tuning which results in a tuning failure. Signed-off-by: Raul E Rangel Fixes: 0086fc217d5d7 ("mmc: sdhci: Add support for O2 hardware tuning") Acked-by: Adrian Hunter Cc: stable@vger.kernel.org Signed-off-by: Ulf Hansson commit 65dade6044079a5c206fd1803642ff420061417a Author: Douglas Anderson Date: Mon Jun 17 10:56:53 2019 -0700 brcmfmac: sdio: Don't tune while the card is off When Broadcom SDIO cards are idled they go to sleep and a whole separate subsystem takes over their SDIO communication. This is the Always-On-Subsystem (AOS) and it can't handle tuning requests. Specifically, as tested on rk3288-veyron-minnie (which reports having BCM4354/1 in dmesg), if I force a retune in brcmf_sdio_kso_control() when "on = 1" (aka we're transition from sleep to wake) by whacking: bus->sdiodev->func1->card->host->need_retune = 1 ...then I can often see tuning fail. In this case dw_mmc reports "All phases bad!"). Note that I don't get 100% failure, presumably because sometimes the card itself has already transitioned away from the AOS itself by the time we try to wake it up. If I force retuning when "on = 0" (AKA force retuning right before sending the command to go to sleep) then retuning is always OK. NOTE: we need _both_ this patch and the patch to avoid triggering tuning due to CRC errors in the sleep/wake transition, AKA ("brcmfmac: sdio: Disable auto-tuning around commands expected to fail"). Though both patches handle issues with Broadcom's AOS, the problems are distinct: 1. We want to defer (but not ignore) asynchronous (like timer-requested) tuning requests till the card is awake. However, we want to ignore CRC errors during the transition, we don't want to queue deferred tuning request. 2. You could imagine that the AOS could implement retuning but we could still get errors while transitioning in and out of the AOS. Similarly you could imagine a seamless transition into and out of the AOS (with no CRC errors) even if the AOS couldn't handle tuning. ALSO NOTE: presumably there is never a desperate need to retune in order to wake up the card, since doing so is impossible. Luckily the only way the card can get into sleep state is if we had a good enough tuning to send it the command to put it into sleep, so presumably that "good enough" tuning is enough to wake us up, at least with a few retries. Cc: stable@vger.kernel.org #v4.18+ Signed-off-by: Douglas Anderson Acked-by: Adrian Hunter Reviewed-by: Arend van Spriel Acked-by: Kalle Valo Signed-off-by: Ulf Hansson commit b4c9f938d542d5f88c501744d2d12fad4fd2915f Author: Douglas Anderson Date: Mon Jun 17 10:56:52 2019 -0700 mmc: core: Add sdio_retune_hold_now() and sdio_retune_release() We want SDIO drivers to be able to temporarily stop retuning when the driver knows that the SDIO card is not in a state where retuning will work (maybe because the card is asleep). We'll move the relevant functions to a place where drivers can call them. Cc: stable@vger.kernel.org #v4.18+ Signed-off-by: Douglas Anderson Acked-by: Adrian Hunter Acked-by: Kalle Valo Signed-off-by: Ulf Hansson commit 2de0b42da263c97d330d276f5ccf7c4470e3324f Author: Douglas Anderson Date: Mon Jun 17 10:56:51 2019 -0700 brcmfmac: sdio: Disable auto-tuning around commands expected to fail There are certain cases, notably when transitioning between sleep and active state, when Broadcom SDIO WiFi cards will produce errors on the SDIO bus. This is evident from the source code where you can see that we try commands in a loop until we either get success or we've tried too many times. The comment in the code reinforces this by saying "just one write attempt may fail" Unfortunately these failures sometimes end up causing an "-EILSEQ" back to the core which triggers a retuning of the SDIO card and that blocks all traffic to the card until it's done. Let's disable retuning around the commands we expect might fail. Cc: stable@vger.kernel.org #v4.18+ Signed-off-by: Douglas Anderson Acked-by: Adrian Hunter Reviewed-by: Arend van Spriel Acked-by: Kalle Valo Signed-off-by: Ulf Hansson commit 0a55f4ab9678413a01e740c86e9367ba0c612b36 Author: Douglas Anderson Date: Mon Jun 17 10:56:50 2019 -0700 mmc: core: API to temporarily disable retuning for SDIO CRC errors Normally when the MMC core sees an "-EILSEQ" error returned by a host controller then it will trigger a retuning of the card. This is generally a good idea. However, if a command is expected to sometimes cause transfer errors then these transfer errors shouldn't cause a re-tuning. This re-tuning will be a needless waste of time. One example case where a transfer is expected to cause errors is when transitioning between idle (sometimes referred to as "sleep" in Broadcom code) and active state on certain Broadcom WiFi SDIO cards. Specifically if the card was already transitioning between states when the command was sent it could cause an error on the SDIO bus. Let's add an API that the SDIO function drivers can call that will temporarily disable the auto-tuning functionality. Then we can add a call to this in the Broadcom WiFi driver and any other driver that might have similar needs. NOTE: this makes the assumption that the card is already tuned well enough that it's OK to disable the auto-retuning during one of these error-prone situations. Presumably the driver code performing the error-prone transfer knows how to recover / retry from errors. ...and after we can get back to a state where transfers are no longer error-prone then we can enable the auto-retuning again. If we truly find ourselves in a case where the card needs to be retuned sometimes to handle one of these error-prone transfers then we can always try a few transfers first without auto-retuning and then re-try with auto-retuning if the first few fail. Without this change on rk3288-veyron-minnie I periodically see this in the logs of a machine just sitting there idle: dwmmc_rockchip ff0d0000.dwmmc: Successfully tuned phase to XYZ Cc: stable@vger.kernel.org #v4.18+ Signed-off-by: Douglas Anderson Acked-by: Adrian Hunter Acked-by: Kalle Valo Signed-off-by: Ulf Hansson commit abdd5dcc00207e7c38680f3754d1bfffafff1093 Author: Douglas Anderson Date: Mon Jun 17 10:56:49 2019 -0700 Revert "brcmfmac: disable command decode in sdio_aos" This reverts commit 29f6589140a10ece8c1d73f58043ea5b3473ab3e. After that patch landed I find that my kernel log on rk3288-veyron-minnie and rk3288-veyron-speedy is filled with: brcmfmac: brcmf_sdio_bus_sleep: error while changing bus sleep state -110 This seems to happen every time the Broadcom WiFi transitions out of sleep mode. Reverting the commit fixes the problem for me, so that's what this patch does. Note that, in general, the justification in the original commit seemed a little weak. It looked like someone was testing on a SD card controller that would sometimes die if there were CRC errors on the bus. This used to happen back in early days of dw_mmc (the controller on my boards), but we fixed it. Disabling a feature on all boards just because one SD card controller is broken seems bad. Fixes: 29f6589140a1 ("brcmfmac: disable command decode in sdio_aos") Cc: Wright Feng Cc: Double Lo Cc: Madhan Mohan R Cc: Chi-Hsien Lin Signed-off-by: Douglas Anderson Cc: stable@vger.kernel.org Acked-by: Kalle Valo Signed-off-by: Ulf Hansson commit 140d90098fed269eac61551b4e84fdbcc917843e Author: Arnd Bergmann Date: Mon Jun 17 14:24:32 2019 +0200 ARM: ixp4xx: include irqs.h where needed Multiple ixp4xx specific files require macros from irqs.h that were moved out from mach/irqs.h, e.g.: arch/arm/mach-ixp4xx/vulcan-pci.c:41:19: error: this function declaration is not a prototype [-Werror,-Wstrict-prototypes] arch/arm/mach-ixp4xx/vulcan-pci.c:49:10: error: implicit declaration of function 'IXP4XX_GPIO_IRQ' [-Werror,-Wimplicit-function-declaration] return IXP4XX_GPIO_IRQ(INTA); Include this header in all files that failed to build because of that. Fixes: dc8ef8cd3a05 ("ARM: ixp4xx: Convert to SPARSE_IRQ") Signed-off-by: Arnd Bergmann Signed-off-by: Olof Johansson commit 4ea10150ea00ec4b111b441797199a177fbd05f4 Author: Arnd Bergmann Date: Mon Jun 17 14:24:31 2019 +0200 ARM: ixp4xx: mark ixp4xx_irq_setup as __init Kbuild complains about ixp4xx_irq_setup not being __init itself in some configurations: WARNING: vmlinux.o(.text+0x85bae4): Section mismatch in reference from the function ixp4xx_irq_setup() to the function .init.text:set_handle_irq() The function ixp4xx_irq_setup() references the function __init set_handle_irq(). This is often because ixp4xx_irq_setup lacks a __init annotation or the annotation of set_handle_irq is wrong. I suspect it normally gets inlined, so we get no such warning, but clang makes this obvious when the function is left out of line. Signed-off-by: Arnd Bergmann Signed-off-by: Olof Johansson commit 6d8df60218416d6919c174b87786e4c3b06323ce Author: Arnd Bergmann Date: Mon Jun 17 14:24:30 2019 +0200 ARM: ixp4xx: don't select SERIAL_OF_PLATFORM Platforms should not normally select all the device drivers, leave that up to the user and the defconfig file. In this case, we get a warning for randconfig builds: WARNING: unmet direct dependencies detected for SERIAL_OF_PLATFORM Depends on [n]: TTY [=y] && HAS_IOMEM [=y] && SERIAL_8250 [=n] && OF [=y] Selected by [y]: - MACH_IXP4XX_OF [=y] && ARCH_IXP4XX [=y] Fixes: 9540724ca29d ("ARM: ixp4xx: Add device tree boot support") Signed-off-by: Arnd Bergmann Signed-off-by: Olof Johansson commit cad47b322da0b67d864180b6fc8e92561890ccec Author: Arnd Bergmann Date: Mon Jun 17 14:33:23 2019 +0200 firmware: trusted_foundations: add ARMv7 dependency The "+sec" extension is invalid for older ARM architectures, but the code can now be built on any ARM configuration: /tmp/trusted_foundations-2d0882.s: Assembler messages: /tmp/trusted_foundations-2d0882.s:194: Error: architectural extension `sec' is not allowed for the current base architecture /tmp/trusted_foundations-2d0882.s:201: Error: selected processor does not support `smc #0' in ARM mode /tmp/trusted_foundations-2d0882.s:213: Error: architectural extension `sec' is not allowed for the current base architecture /tmp/trusted_foundations-2d0882.s:220: Error: selected processor does not support `smc #0' in ARM mode Add a dependency on ARMv7 for the build. Fixes: 4cb5d9eca143 ("firmware: Move Trusted Foundations support") Signed-off-by: Arnd Bergmann Signed-off-by: Olof Johansson commit 42de8afc40c97002fceb500e2331f6a722be3c14 Author: Jules Maselbas Date: Thu May 9 11:15:28 2019 +0200 usb: dwc2: Use generic PHY width in params setup Setting params.phy_utmi_width in dwc2_lowlevel_hw_init() is pointless since it's value will be overwritten by dwc2_init_params(). This change make sure to take in account the generic PHY width information during paraminitialisation, done in dwc2_set_param_phy_utmi_width(). By doing so, the phy_utmi_width params can still be overrided by devicetree specific params and will also be checked against hardware capabilities. Fixes: 707d80f0a3c5 ("usb: dwc2: gadget: Replace phyif with phy_utmi_width") Acked-by: Minas Harutyunyan Tested-by: Marek Szyprowski Signed-off-by: Jules Maselbas Signed-off-by: Felipe Balbi commit a019ab40679715ea680cc8561a02888be70bc4e9 Author: Li Yang Date: Mon Apr 22 13:30:56 2019 -0500 arm64: defconfig: Enable FSL_EDMA driver Enables the FSL EDMA driver by default. This also works around an issue that imx-i2c driver keeps deferring the probe because of the DMA is not ready. And currently the DMA engine framework can not correctly tell if the DMA channels will truly become available later (it will never be available if the DMA driver is not enabled). This will cause indefinite messages like below: [ 3.335829] imx-i2c 2180000.i2c: can't get pinctrl, bus recovery not supported [ 3.344455] ina2xx 0-0040: power monitor ina220 (Rshunt = 1000 uOhm) [ 3.350917] lm90 0-004c: 0-004c supply vcc not found, using dummy regulator [ 3.362089] imx-i2c 2180000.i2c: can't get pinctrl, bus recovery not supported [ 3.370741] ina2xx 0-0040: power monitor ina220 (Rshunt = 1000 uOhm) [ 3.377205] lm90 0-004c: 0-004c supply vcc not found, using dummy regulator [ 3.388455] imx-i2c 2180000.i2c: can't get pinctrl, bus recovery not supported ..... Signed-off-by: Li Yang Signed-off-by: Shawn Guo commit 529254340c7f16d59b928e36568597c603bae917 Author: Gal Pressman Date: Wed Jun 12 10:28:41 2019 +0300 RDMA/efa: Fix success return value in case of error Existing code would mistakenly return success in case of error instead of a proper return value. Fixes: e9c6c5373088 ("RDMA/efa: Add common command handlers") Reviewed-by: Firas JahJah Reviewed-by: Yossi Leybovich Signed-off-by: Gal Pressman Signed-off-by: Doug Ledford commit 942a899335707fc9cfc97cb382a60734b2ff4e03 Author: Mike Marciniszyn Date: Fri Jun 14 12:33:06 2019 -0400 IB/hfi1: Handle port down properly in pio The call to sc_buffer_alloc currently returns NULL (no buffer) or a buffer descriptor. There is a third case when the port is down. Currently that returns NULL and this prevents the caller from properly handling the sc_buffer_alloc() failure. A verbs code link test after the call is racy so the indication needs to come from the state check inside the allocation routine to be valid. Fix by encoding the ECOMM failure like SDMA. IS_ERR_OR_NULL() tests are added at all call sites. For verbs send, this needs to treat any error by returning a completion without any MMIO copy. Fixes: 7724105686e7 ("IB/hfi1: add driver files") Reviewed-by: Dennis Dalessandro Signed-off-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Doug Ledford commit 099a884ba4c00145cef283d36e050726311c2e95 Author: Mike Marciniszyn Date: Fri Jun 14 12:33:00 2019 -0400 IB/hfi1: Handle wakeup of orphaned QPs for pio Once a send context is taken down due to a link failure, any QPs waiting for pio credits will stay on the waitlist indefinitely. Fix by wakeing up all QPs linked to piowait list. Fixes: 7724105686e7 ("IB/hfi1: add driver files") Reviewed-by: Dennis Dalessandro Signed-off-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Doug Ledford commit f972775b1cc0441ae22c9f8d06dd16b118463632 Author: Mike Marciniszyn Date: Fri Jun 14 12:32:50 2019 -0400 IB/hfi1: Wakeup QPs orphaned on wait list after flush Once an SDMA engine is taken down due to a link failure, any waiting QPs that do not have outstanding descriptors in the ring will stay on the dmawait list as long as the port is down. Since there is no timer running, they will stay there for a long time. The fix is to wake up all iowaits linked to dmawait. The send engine will build and post packets that get flushed back. Fixes: 7724105686e7 ("IB/hfi1: add driver files") Reviewed-by: Kaike Wan Signed-off-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Doug Ledford commit 4bb02e9572af1383038d83ad196d7166c515f2ee Author: Mike Marciniszyn Date: Fri Jun 14 12:32:44 2019 -0400 IB/hfi1: Use aborts to trigger RC throttling SDMA and pio flushes will cause a lot of packets to be transmitted after a link has gone down, using a lot of CPU to retransmit packets. Fix for RC QPs by recognizing the flush status and: - Forcing a timer start - Putting the QP into a "send one" mode Fixes: 7724105686e7 ("IB/hfi1: add driver files") Reviewed-by: Kaike Wan Signed-off-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Doug Ledford commit 9755f72496664eec70bc804104118b5797b6bf63 Author: Mike Marciniszyn Date: Fri Jun 14 12:32:38 2019 -0400 IB/hfi1: Create inline to get extended headers This paves the way for another patch that reacts to a flush sdma completion for RC. Fixes: 81cd3891f021 ("IB/hfi1: Add support for 16B Management Packets") Reviewed-by: Dennis Dalessandro Signed-off-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Doug Ledford commit 3230f4a8d44e4a0bb7afea814b280b5129521f52 Author: Mike Marciniszyn Date: Fri Jun 14 12:32:32 2019 -0400 IB/hfi1: Silence txreq allocation warnings The following warning can happen when a memory shortage occurs during txreq allocation: [10220.939246] SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC) [10220.939246] Hardware name: Intel Corporation S2600WT2R/S2600WT2R, BIOS SE5C610.86B.01.01.0018.C4.072020161249 07/20/2016 [10220.939247] cache: mnt_cache, object size: 384, buffer size: 384, default order: 2, min order: 0 [10220.939260] Workqueue: hfi0_0 _hfi1_do_send [hfi1] [10220.939261] node 0: slabs: 1026568, objs: 43115856, free: 0 [10220.939262] Call Trace: [10220.939262] node 1: slabs: 820872, objs: 34476624, free: 0 [10220.939263] dump_stack+0x5a/0x73 [10220.939265] warn_alloc+0x103/0x190 [10220.939267] ? wake_all_kswapds+0x54/0x8b [10220.939268] __alloc_pages_slowpath+0x86c/0xa2e [10220.939270] ? __alloc_pages_nodemask+0x2fe/0x320 [10220.939271] __alloc_pages_nodemask+0x2fe/0x320 [10220.939273] new_slab+0x475/0x550 [10220.939275] ___slab_alloc+0x36c/0x520 [10220.939287] ? hfi1_make_rc_req+0x90/0x18b0 [hfi1] [10220.939299] ? __get_txreq+0x54/0x160 [hfi1] [10220.939310] ? hfi1_make_rc_req+0x90/0x18b0 [hfi1] [10220.939312] __slab_alloc+0x40/0x61 [10220.939323] ? hfi1_make_rc_req+0x90/0x18b0 [hfi1] [10220.939325] kmem_cache_alloc+0x181/0x1b0 [10220.939336] hfi1_make_rc_req+0x90/0x18b0 [hfi1] [10220.939348] ? hfi1_verbs_send_dma+0x386/0xa10 [hfi1] [10220.939359] ? find_prev_entry+0xb0/0xb0 [hfi1] [10220.939371] hfi1_do_send+0x1d9/0x3f0 [hfi1] [10220.939372] process_one_work+0x171/0x380 [10220.939374] worker_thread+0x49/0x3f0 [10220.939375] kthread+0xf8/0x130 [10220.939377] ? max_active_store+0x80/0x80 [10220.939378] ? kthread_bind+0x10/0x10 [10220.939379] ret_from_fork+0x35/0x40 [10220.939381] SLUB: Unable to allocate memory on node -1, gfp=0xa20(GFP_ATOMIC) The shortage is handled properly so the message isn't needed. Silence by adding the no warn option to the slab allocation. Fixes: 45842abbb292 ("staging/rdma/hfi1: move txreq header code") Cc: Reviewed-by: Dennis Dalessandro Signed-off-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Doug Ledford commit cf131a81967583ae737df6383a0893b9fee75b4e Author: Mike Marciniszyn Date: Fri Jun 14 12:32:26 2019 -0400 IB/hfi1: Avoid hardlockup with flushlist_lock Heavy contention of the sde flushlist_lock can cause hard lockups at extreme scale when the flushing logic is under stress. Mitigate by replacing the item at a time copy to the local list with an O(1) list_splice_init() and using the high priority work queue to do the flushes. Fixes: 7724105686e7 ("IB/hfi1: add driver files") Cc: Reviewed-by: Dennis Dalessandro Signed-off-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Doug Ledford commit 84b028243ef07a3f65c1857343ada2b1022f8bed Author: Suraj Jitindar Singh Date: Mon Jun 17 17:16:19 2019 +1000 KVM: PPC: Book3S HV: Only write DAWR[X] when handling h_set_dawr in real mode The hcall H_SET_DAWR is used by a guest to set the data address watchpoint register (DAWR). This hcall is handled in the host in kvmppc_h_set_dawr() which can be called in either real mode on the guest exit path from hcall_try_real_mode() in book3s_hv_rmhandlers.S, or in virtual mode when called from kvmppc_pseries_do_hcall() in book3s_hv.c. The function kvmppc_h_set_dawr() updates the dawr and dawrx fields in the vcpu struct accordingly and then also writes the respective values into the DAWR and DAWRX registers directly. It is necessary to write the registers directly here when calling the function in real mode since the path to re-enter the guest won't do this. However when in virtual mode the host DAWR and DAWRX values have already been restored, and so writing the registers would overwrite these. Additionally there is no reason to write the guest values here as these will be read from the vcpu struct and written to the registers appropriately the next time the vcpu is run. This also avoids the case when handling h_set_dawr for a nested guest where the guest hypervisor isn't able to write the DAWR and DAWRX registers directly and must rely on the real hypervisor to do this for it when it calls H_ENTER_NESTED. Fixes: c1fe190c0672 ("powerpc: Add force enable of DAWR on P9 option") Signed-off-by: Suraj Jitindar Singh Signed-off-by: Michael Ellerman commit fabb2efcf0846e28b4910fc20bdc203d3d0170af Author: Michael Neuling Date: Mon Jun 17 17:16:18 2019 +1000 KVM: PPC: Book3S HV: Fix r3 corruption in h_set_dabr() Commit c1fe190c0672 ("powerpc: Add force enable of DAWR on P9 option") screwed up some assembler and corrupted a pointer in r3. This resulted in crashes like the below: BUG: Kernel NULL pointer dereference at 0x000013bf Faulting instruction address: 0xc00000000010b044 Oops: Kernel access of bad area, sig: 11 [#1] LE PAGE_SIZE=64K MMU=Radix MMU=Hash SMP NR_CPUS=2048 NUMA pSeries CPU: 8 PID: 1771 Comm: qemu-system-ppc Kdump: loaded Not tainted 5.2.0-rc4+ #3 NIP: c00000000010b044 LR: c0080000089dacf4 CTR: c00000000010aff4 REGS: c00000179b397710 TRAP: 0300 Not tainted (5.2.0-rc4+) MSR: 800000000280b033 CR: 42244842 XER: 00000000 CFAR: c00000000010aff8 DAR: 00000000000013bf DSISR: 42000000 IRQMASK: 0 GPR00: c0080000089dd6bc c00000179b3979a0 c008000008a04300 ffffffffffffffff GPR04: 0000000000000000 0000000000000003 000000002444b05d c0000017f11c45d0 ... NIP kvmppc_h_set_dabr+0x50/0x68 LR kvmppc_pseries_do_hcall+0xa3c/0xeb0 [kvm_hv] Call Trace: 0xc0000017f11c0000 (unreliable) kvmppc_vcpu_run_hv+0x694/0xec0 [kvm_hv] kvmppc_vcpu_run+0x34/0x48 [kvm] kvm_arch_vcpu_ioctl_run+0x2f4/0x400 [kvm] kvm_vcpu_ioctl+0x460/0x850 [kvm] do_vfs_ioctl+0xe4/0xb40 ksys_ioctl+0xc4/0x110 sys_ioctl+0x28/0x80 system_call+0x5c/0x70 Instruction dump: 4082fff4 4c00012c 38600000 4e800020 e96280c0 896b0000 2c2b0000 3860ffff 4d820020 50852e74 508516f6 78840724 f8a313c8 7c942ba6 7cbc2ba6 Fix the bug by only changing r3 when we are returning immediately. Fixes: c1fe190c0672 ("powerpc: Add force enable of DAWR on P9 option") Signed-off-by: Michael Neuling Signed-off-by: Suraj Jitindar Singh Reported-by: Cédric Le Goater Signed-off-by: Michael Ellerman commit 29f785ff76b65696800b75c3d8e0b58e603bb1d0 Merge: da0f38202986 d728cf79164b Author: Linus Torvalds Date: Mon Jun 17 16:28:28 2019 -0700 Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull vfs fixes from Al Viro: "MS_MOVE regression fix + breakage in fsmount(2) (also introduced in this cycle, along with fsmount(2) itself). I'm still digging through the piles of mail, so there might be more fixes to follow, but these two are obvious and self-contained, so there's no point delaying those..." * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: fs/namespace: fix unprivileged mount propagation vfs: fsmount: add missing mntget() commit da0f382029868806e88c046eb2560fdee7a9457c Merge: eb7c825bf747 4fddbf8a99ee Author: Linus Torvalds Date: Mon Jun 17 15:55:34 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: "Lots of bug fixes here: 1) Out of bounds access in __bpf_skc_lookup, from Lorenz Bauer. 2) Fix rate reporting in cfg80211_calculate_bitrate_he(), from John Crispin. 3) Use after free in psock backlog workqueue, from John Fastabend. 4) Fix source port matching in fdb peer flow rule of mlx5, from Raed Salem. 5) Use atomic_inc_not_zero() in fl6_sock_lookup(), from Eric Dumazet. 6) Network header needs to be set for packet redirect in nfp, from John Hurley. 7) Fix udp zerocopy refcnt, from Willem de Bruijn. 8) Don't assume linear buffers in vxlan and geneve error handlers, from Stefano Brivio. 9) Fix TOS matching in mlxsw, from Jiri Pirko. 10) More SCTP cookie memory leak fixes, from Neil Horman. 11) Fix VLAN filtering in rtl8366, from Linus Walluij. 12) Various TCP SACK payload size and fragmentation memory limit fixes from Eric Dumazet. 13) Use after free in pneigh_get_next(), also from Eric Dumazet. 14) LAPB control block leak fix from Jeremy Sowden" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (145 commits) lapb: fixed leak of control-blocks. tipc: purge deferredq list for each grp member in tipc_group_delete ax25: fix inconsistent lock state in ax25_destroy_timer neigh: fix use-after-free read in pneigh_get_next tcp: fix compile error if !CONFIG_SYSCTL hv_sock: Suppress bogus "may be used uninitialized" warnings be2net: Fix number of Rx queues used for flow hashing net: handle 802.1P vlan 0 packets properly tcp: enforce tcp_min_snd_mss in tcp_mtu_probing() tcp: add tcp_min_snd_mss sysctl tcp: tcp_fragment() should apply sane memory limits tcp: limit payload size of sacked skbs Revert "net: phylink: set the autoneg state in phylink_phy_change" bpf: fix nested bpf tracepoints with per-cpu data bpf: Fix out of bounds memory access in bpf_sk_storage vsock/virtio: set SOCK_DONE on peer shutdown net: dsa: rtl8366: Fix up VLAN filtering net: phylink: set the autoneg state in phylink_phy_change net: add high_order_alloc_disable sysctl/static key tcp: add tcp_tx_skb_cache sysctl ... commit d728cf79164bb38e9628d15276e636539f857ef1 Author: Christian Brauner Date: Mon Jun 17 23:22:14 2019 +0200 fs/namespace: fix unprivileged mount propagation When propagating mounts across mount namespaces owned by different user namespaces it is not possible anymore to move or umount the mount in the less privileged mount namespace. Here is a reproducer: sudo mount -t tmpfs tmpfs /mnt sudo --make-rshared /mnt # create unprivileged user + mount namespace and preserve propagation unshare -U -m --map-root --propagation=unchanged # now change back to the original mount namespace in another terminal: sudo mkdir /mnt/aaa sudo mount -t tmpfs tmpfs /mnt/aaa # now in the unprivileged user + mount namespace mount --move /mnt/aaa /opt Unfortunately, this is a pretty big deal for userspace since this is e.g. used to inject mounts into running unprivileged containers. So this regression really needs to go away rather quickly. The problem is that a recent change falsely locked the root of the newly added mounts by setting MNT_LOCKED. Fix this by only locking the mounts on copy_mnt_ns() and not when adding a new mount. Fixes: 3bd045cc9c4b ("separate copying and locking mount tree on cross-userns copies") Cc: Linus Torvalds Cc: Al Viro Cc: Tested-by: Christian Brauner Acked-by: Christian Brauner Signed-off-by: "Eric W. Biederman" Signed-off-by: Christian Brauner Signed-off-by: Al Viro commit 1b0b9cc8d3793e31b313e6c9685513b08cd883c4 Author: Eric Biggers Date: Wed Jun 12 11:43:13 2019 -0700 vfs: fsmount: add missing mntget() sys_fsmount() needs to take a reference to the new mount when adding it to the anonymous mount namespace. Otherwise the filesystem can be unmounted while it's still in use, as found by syzkaller. Reported-by: Mark Rutland Reported-by: syzbot+99de05d099a170867f22@syzkaller.appspotmail.com Reported-by: syzbot+7008b8b8ba7df475fdc8@syzkaller.appspotmail.com Fixes: 93766fbd2696 ("vfs: syscall: Add fsmount() to create a mount for a superblock") Signed-off-by: Eric Biggers Signed-off-by: Al Viro commit 61cabc7b0a5cf0d3c532cfa96594c801743fe7f6 Author: Ronnie Sahlberg Date: Fri Jun 14 13:02:29 2019 +1000 cifs: fix GlobalMid_Lock bug in cifs_reconnect We can not hold the GlobalMid_Lock spinlock during the dfs processing in cifs_reconnect since it invokes things that may sleep and thus trigger : BUG: sleeping function called from invalid context at kernel/locking/rwsem.c:23 Thus we need to drop the spinlock during this code block. RHBZ: 1716743 Cc: stable@vger.kernel.org Signed-off-by: Ronnie Sahlberg Acked-by: Pavel Shilovsky Signed-off-by: Steve French commit 8d526d62db907e786fd88948c75d1833d82bd80e Author: Steve French Date: Mon Jun 17 14:49:07 2019 -0500 SMB3: retry on STATUS_INSUFFICIENT_RESOURCES instead of failing write Some servers such as Windows 10 will return STATUS_INSUFFICIENT_RESOURCES as the number of simultaneous SMB3 requests grows (even though the client has sufficient credits). Return EAGAIN on STATUS_INSUFFICIENT_RESOURCES so that we can retry writes which fail with this status code. This (for example) fixes large file copies to Windows 10 on fast networks. Signed-off-by: Steve French CC: Stable Reviewed-by: Ronnie Sahlberg Reviewed-by: Pavel Shilovsky commit 9b9410766f5422d1e736783dc0c3a053eefedac4 Merge: d7a5417b8947 5efe5137f05b Author: Greg Kroah-Hartman Date: Mon Jun 17 22:59:28 2019 +0200 Merge branch 'erofs_fix' into staging-linus A branch is needed here to get the fix into staging-next as well. Signed-off-by: Greg Kroah-Hartman commit 5efe5137f05bbb4688890620934538c005e7d1d6 Author: Gao Xiang Date: Thu Jun 13 16:35:41 2019 +0800 staging: erofs: add requirements field in superblock There are some backward incompatible features pending for months, mainly due to on-disk format expensions. However, we should ensure that it cannot be mounted with old kernels. Otherwise, it will causes unexpected behaviors. Fixes: ba2b77a82022 ("staging: erofs: add super block operations") Cc: # 4.19+ Reviewed-by: Chao Yu Signed-off-by: Gao Xiang Signed-off-by: Greg Kroah-Hartman commit d7a5417b89470d353118a451630ed71f119f58b8 Merge: f2c7c76c5d0a 0c75376fa395 Author: Greg Kroah-Hartman Date: Mon Jun 17 22:28:29 2019 +0200 Merge tag 'iio-fixes-for-5.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 5.2 cycle. * ad7150 - sense of bit for controlling adaptive vs fixed threshold was flipped. * adt7316 - Fix a build issue due to wrong headers for gpio usage. * lsm6dsx - correctly suspend / resume i2c slaves when the host goes to sleep. * mlx90632 - relax a compatability check to allow for newer devices. Also one counters fix * counter/ftm-quaddec - missing dependencies in Kconfig. * tag 'iio-fixes-for-5.2b' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio: counter/ftm-quaddec: Add missing dependencies in Kconfig staging: iio: adt7316: Fix build errors when GPIOLIB is not set iio: temperature: mlx90632 Relax the compatibility check iio: imu: st_lsm6dsx: fix PM support for st_lsm6dsx i2c controller staging:iio:ad7150: fix threshold mode config bit commit 4fddbf8a99ee5a65bdd31b3ebbf5a84b9395d496 Merge: 6be8e297f9bc 967c05aee439 Author: David S. Miller Date: Mon Jun 17 10:39:56 2019 -0700 Merge branch 'tcp-fixes' Eric Dumazet says: ==================== tcp: make sack processing more robust Jonathan Looney brought to our attention multiple problems in TCP stack at the sender side. SACK processing can be abused by malicious peers to either cause overflows, or increase of memory usage. First two patches fix the immediate problems. Since the malicious peers abuse senders by advertizing a very small MSS in their SYN or SYNACK packet, the last two patches add a new sysctl so that admins can chose a higher limit for MSS clamping. ==================== Signed-off-by: David S. Miller commit adeaa21a4b6954e878f3f7d1c5659ed9c1fe567a Author: Anisse Astier Date: Mon Jun 17 15:22:21 2019 +0200 arm64: ssbd: explicitly depend on Fix ssbd.c which depends implicitly on asm/ptrace.h including linux/prctl.h (through for example linux/compat.h, then linux/time.h, linux/seqlock.h, linux/spinlock.h and linux/irqflags.h), and uses PR_SPEC* defines. This is an issue since we'll soon be removing the include from asm/ptrace.h. Fixes: 9cdc0108baa8 ("arm64: ssbd: Add prctl interface for per-thread mitigation") Cc: stable@vger.kernel.org Signed-off-by: Anisse Astier Signed-off-by: Will Deacon commit eb7c825bf74755a9ea975b7a463c6d13ffa7f447 Merge: 9e0babf2c06c 259931fd3b96 Author: Linus Torvalds Date: Mon Jun 17 10:34:03 2019 -0700 Merge tag 'riscv-for-v5.2/fixes-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux Pull RISC-V fixes from Paul Walmsley: "This contains fixes, defconfig, and DT data changes for the v5.2-rc series. The fixes are relatively straightforward: - Addition of a TLB fence in the vmalloc_fault path, so the CPU doesn't enter an infinite page fault loop - Readdition of the pm_power_off export, so device drivers that reassign it can now be built as modules - A udelay() fix for RV32, fixing a miscomputation of the delay time - Removal of deprecated smp_mb__*() barriers This also adds initial DT data infrastructure for arch/riscv, along with initial data for the SiFive FU540-C000 SoC and the corresponding HiFive Unleashed board. We also update the RV64 defconfig to include some core drivers for the FU540 in the build" * tag 'riscv-for-v5.2/fixes-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: riscv: remove unused barrier defines riscv: mm: synchronize MMU after pte change riscv: dts: add initial board data for the SiFive HiFive Unleashed riscv: dts: add initial support for the SiFive FU540-C000 SoC dt-bindings: riscv: convert cpu binding to json-schema dt-bindings: riscv: sifive: add YAML documentation for the SiFive FU540 arch: riscv: add support for building DTB files from DT source data riscv: Fix udelay in RV32. riscv: export pm_power_off again RISC-V: defconfig: enable clocks, serial console commit 4569180495600ac59f5cd27f67242a6cb51254f3 Author: Christoph Hellwig Date: Mon Jun 17 11:14:12 2019 +0200 block: fix page leak when merging to same page When multiple iovecs reference the same page, each get_user_page call will add a reference to the page. But once we've created the bio that information gets lost and only a single reference will be dropped after I/O completion. Use the same_page information returned from __bio_try_merge_page to drop additional references to pages that were already present in the bio. Based on a patch from Ming Lei. Link: https://lkml.org/lkml/2019/4/23/64 Fixes: 576ed913 ("block: use bio_add_page in bio_iov_iter_get_pages") Reported-by: David Gibson Signed-off-by: Christoph Hellwig Reviewed-by: Ming Lei Signed-off-by: Jens Axboe commit ff896738be381efa6e50ba9a3b6cdc94f69ada42 Author: Christoph Hellwig Date: Mon Jun 17 11:14:11 2019 +0200 block: return from __bio_try_merge_page if merging occured in the same page We currently have an input same_page parameter to __bio_try_merge_page to prohibit merging in the same page. The rationale for that is that some callers need to account for every page added to a bio. Instead of letting these callers call twice into the merge code to account for the new vs existing page cases, just turn the paramter into an output one that returns if a merge in the same page occured and let them act accordingly. Signed-off-by: Christoph Hellwig Reviewed-by: Ming Lei Signed-off-by: Jens Axboe commit 3763771cf60236caaf7ccc79cea244c63d7c49a0 Author: Filipe Manana Date: Wed Jun 12 15:14:11 2019 +0100 Btrfs: fix failure to persist compression property xattr deletion on fsync After the recent series of cleanups in the properties and xattrs modules that landed in the 5.2 merge window, we ended up with a regression where after deleting the compression xattr property through the setflags ioctl, we don't set the BTRFS_INODE_COPY_EVERYTHING flag in the inode anymore. As a consequence, if the inode was fsync'ed when it had the compression property set, after deleting the compression property through the setflags ioctl and fsync'ing again the inode, the log will still contain the compression xattr, because the inode did not had that bit set, which made the fsync not delete all xattrs from the log and copy all xattrs from the subvolume tree to the log tree. This regression happens due to the fact that that series of cleanups made btrfs_set_prop() call the old function do_setxattr() (which is now named btrfs_setxattr()), and not the old version of btrfs_setxattr(), which is now called btrfs_setxattr_trans(). Fix this by setting the BTRFS_INODE_COPY_EVERYTHING bit in the current btrfs_setxattr() function and remove it from everywhere else, including its setup at btrfs_ioctl_setflags(). This is cleaner, avoids similar regressions in the future, and centralizes the setup of the bit. After all, the need to setup this bit should only be in the xattrs module, since it is an implementation of xattrs. Fixes: 04e6863b19c722 ("btrfs: split btrfs_setxattr calls regarding transaction") CC: stable@vger.kernel.org # 4.4+ Signed-off-by: Filipe Manana Signed-off-by: David Sterba commit c8edb316b9bb6149193436dfbd240994733e27be Author: Stephen Boyd Date: Fri Jun 14 10:46:06 2019 -0700 clk: Do a DT parent lookup even when index < 0 We want to allow the parent lookup to happen even if the index is some value less than 0. This may be the case if a clk provider only specifies the .name member to match a string in the "clock-names" DT property. We shouldn't require that the index be >= 0 to make this use case work. Fixes: 601b6e93304a ("clk: Allow parents to be specified via clkspec index") Reported-by: Alexandre Mergnat Cc: Jerome Brunet Cc: Chen-Yu Tsai Reviewed-by: Chen-Yu Tsai Signed-off-by: Stephen Boyd commit 259931fd3b96e4386b361b7f80c1d89b266234c8 Author: Rolf Eike Beer Date: Mon Jun 17 14:25:59 2019 +0200 riscv: remove unused barrier defines They were introduced in commit fab957c11efe ("RISC-V: Atomic and Locking Code") long after commit 2e39465abc4b ("locking: Remove deprecated smp_mb__() barriers") removed the remnants of all previous instances from the tree. Signed-off-by: Rolf Eike Beer [paul.walmsley@sifive.com: stripped spurious mbox header from patch description; fixed commit references in patch header] Signed-off-by: Paul Walmsley commit c19dffc0a9511a7d7493ec21019aefd97e9a111b Author: Peter Chen Date: Mon Jun 17 09:49:07 2019 +0800 usb: chipidea: udc: workaround for endpoint conflict issue An endpoint conflict occurs when the USB is working in device mode during an isochronous communication. When the endpointA IN direction is an isochronous IN endpoint, and the host sends an IN token to endpointA on another device, then the OUT transaction may be missed regardless the OUT endpoint number. Generally, this occurs when the device is connected to the host through a hub and other devices are connected to the same hub. The affected OUT endpoint can be either control, bulk, isochronous, or an interrupt endpoint. After the OUT endpoint is primed, if an IN token to the same endpoint number on another device is received, then the OUT endpoint may be unprimed (cannot be detected by software), which causes this endpoint to no longer respond to the host OUT token, and thus, no corresponding interrupt occurs. There is no good workaround for this issue, the only thing the software could do is numbering isochronous IN from the highest endpoint since we have observed most of device number endpoint from the lowest. Cc: #v3.14+ Cc: Fabio Estevam Cc: Greg KH Cc: Sergei Shtylyov Cc: Jun Li Signed-off-by: Peter Chen Signed-off-by: Greg Kroah-Hartman commit 4b576d15df5c8cbe9cf427093c1c0f5f58fbf8fa Author: Andy Gross Date: Fri Jun 7 14:44:51 2019 -0500 MAINTAINERS: Change QCOM repo location This patch updates the Qualcomm SoC repo to a new location. Signed-off-by: Andy Gross Reviewed-by: Bjorn Andersson Signed-off-by: Olof Johansson commit 20314ce30af197963b0c239f0952db6aaef73f99 Author: jjian zhou Date: Mon Jun 17 19:04:08 2019 +0800 mmc: mediatek: fix SDIO IRQ detection issue If cmd19 timeout or response crcerr occurs during execute_tuning(), it need invoke msdc_reset_hw(). Otherwise SDIO IRQ can't be detected. Signed-off-by: jjian zhou Signed-off-by: Chaotian Jing Signed-off-by: Yong Mao Fixes: 5215b2e952f3 ("mmc: mediatek: Add MMC_CAP_SDIO_IRQ support") Cc: stable@vger.kernel.org Signed-off-by: Ulf Hansson commit 8a5df8ac628f4febea1e6cd3044bff2d536dd096 Author: jjian zhou Date: Mon Jun 17 19:04:07 2019 +0800 mmc: mediatek: fix SDIO IRQ interrupt handle flow SDIO IRQ is triggered by low level. It need disable SDIO IRQ detected function. Otherwise the interrupt register can't be cleared. It will process the interrupt more. Signed-off-by: Jjian Zhou Signed-off-by: Chaotian Jing Signed-off-by: Yong Mao Fixes: 5215b2e952f3 ("mmc: mediatek: Add MMC_CAP_SDIO_IRQ support") Cc: stable@vger.kernel.org Signed-off-by: Ulf Hansson commit b0e370b95a3b231d0fb5d1958cce85ef57196fe6 Author: Wolfram Sang Date: Tue Jun 11 22:03:43 2019 +0200 mmc: core: complete HS400 before checking status We don't have a reproducible error case, yet our BSP team suggested that the mmc_switch_status() command in mmc_select_hs400() should come after the callback into the driver completing HS400 setup. It makes sense to me because we want the status of a fully setup HS400, so it will increase the reliability of the mmc_switch_status() command. Reported-by: Yoshihiro Shimoda Signed-off-by: Wolfram Sang Fixes: ba6c7ac3a2f4 ("mmc: core: more fine-grained hooks for HS400 tuning") Signed-off-by: Ulf Hansson commit bf587caae305ae3b4393077fb22c98478ee55755 Author: ShihPo Hung Date: Mon Jun 17 12:26:17 2019 +0800 riscv: mm: synchronize MMU after pte change Because RISC-V compliant implementations can cache invalid entries in TLB, an SFENCE.VMA is necessary after changes to the page table. This patch adds an SFENCE.vma for the vmalloc_fault path. Signed-off-by: ShihPo Hung [paul.walmsley@sifive.com: reversed tab->whitespace conversion, wrapped comment lines] Signed-off-by: Paul Walmsley Cc: Palmer Dabbelt Cc: Albert Ou Cc: Paul Walmsley Cc: linux-riscv@lists.infradead.org Cc: stable@vger.kernel.org commit c584b1202f2d0a04eaa66c29aaee9f6c172b5aa3 Author: Will Deacon Date: Fri May 31 12:59:15 2019 +0100 MAINTAINERS: Update my email address to use @kernel.org My @arm.com address will stop working at the end of August, so update to my @kernel.org address where you'll still be able to reach me. When I say "stop working" I really mean "will go to my line manager", so send patches there at your peril because they may reply with roadmaps and spreadsheets. You have been warned. Cc: Will Deacon Cc: Catalin Marinas Cc: Marc Zyngier Cc: Russell King Cc: "Paul E . McKenney" Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Bjorn Helgaas Cc: Andrew Morton Cc: Stephen Rothwell Cc: Greg Kroah-Hartman Cc: Linus Torvalds Cc: Joerg Roedel Cc: arm-soc Signed-off-by: Will Deacon commit 085ebfe937d7a7a5df1729f35a12d6d655fea68c Author: Peter Zijlstra Date: Wed May 29 14:37:24 2019 +0200 perf/core: Fix perf_sample_regs_user() mm check perf_sample_regs_user() uses 'current->mm' to test for the presence of userspace, but this is insufficient, consider use_mm(). A better test is: '!(current->flags & PF_KTHREAD)', exec() clears PF_KTHREAD after it sets the new ->mm but before it drops to userspace for the first time. Possibly obsoletes: bf05fc25f268 ("powerpc/perf: Fix oops when kthread execs user process") Reported-by: Ravi Bangoria Reported-by: Young Xiao <92siuyang@gmail.com> Signed-off-by: Peter Zijlstra (Intel) Acked-by: Will Deacon Cc: Arnaldo Carvalho de Melo Cc: Frederic Weisbecker Cc: Jiri Olsa Cc: Linus Torvalds Cc: Michael Ellerman Cc: Naveen N. Rao Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Fixes: 4018994f3d87 ("perf: Add ability to attach user level registers dump to sample") Signed-off-by: Ingo Molnar commit cd49b84d61b2dfc0360c76d9e6be49f5116ba1a5 Author: Dan Carpenter Date: Thu Jun 6 15:41:27 2019 +0300 mfd: stmfx: Uninitialized variable in stmfx_irq_handler() The problem is that on 64bit systems then we don't clear the higher bits of the "pending" variable. So when we do: ack = pending & ~BIT(STMFX_REG_IRQ_SRC_EN_GPIO); if (ack) { the if (ack) condition relies on uninitialized data. The fix it that I've changed "pending" from an unsigned long to a u32. I changed "n" as well, because that's a number in the 0-10 range and it fits easily inside an int. We do need to add a cast to "pending" when we use it in the for_each_set_bit() loop, but that doesn't cause a problem, it's fine. Fixes: 06252ade9156 ("mfd: Add ST Multi-Function eXpander (STMFX) core driver") Signed-off-by: Dan Carpenter Acked-by: Amelie Delaunay Signed-off-by: Lee Jones commit c35f1b87fc595807ff15d2834d241f9771497205 Author: Paul Walmsley Date: Mon May 20 09:19:41 2019 -0700 riscv: dts: add initial board data for the SiFive HiFive Unleashed Add initial board data for the SiFive HiFive Unleashed A00. Currently the data populated in this DT file describes the board DRAM configuration and the external clock sources that supply the PRCI. Signed-off-by: Paul Walmsley Signed-off-by: Paul Walmsley Tested-by: Loys Ollivier Tested-by: Kevin Hilman Cc: Rob Herring Cc: Mark Rutland Cc: Palmer Dabbelt Cc: Albert Ou Cc: Antony Pavlov Cc: devicetree@vger.kernel.org Cc: linux-riscv@lists.infradead.org Cc: linux-kernel@vger.kernel.org commit 72296bde4f4207566872ee355950a59cbc29f852 Author: Paul Walmsley Date: Mon May 27 23:34:09 2019 -0700 riscv: dts: add initial support for the SiFive FU540-C000 SoC Add initial support for the SiFive FU540-C000 SoC. This is a 28nm SoC based around the SiFive U54-MC core complex and a TileLink interconnect. This file is expected to grow as more device drivers are added to the kernel. This patch includes a fix to the QSPI memory map due to a documentation bug, found by ShihPo Hung , adds entries for the I2C controller, and merges all DT changes that formerly were made dynamically by the riscv-pk BBL proxy kernel. Signed-off-by: Paul Walmsley Signed-off-by: Paul Walmsley Tested-by: Loys Ollivier Tested-by: Kevin Hilman Cc: Rob Herring Cc: Mark Rutland Cc: Palmer Dabbelt Cc: Albert Ou Cc: ShihPo Hung Cc: devicetree@vger.kernel.org Cc: linux-riscv@lists.infradead.org Cc: linux-kernel@vger.kernel.org commit 4fd669a8c4873b6ad54e77bc45aa37b03edc5587 Author: Paul Walmsley Date: Mon May 20 09:19:40 2019 -0700 dt-bindings: riscv: convert cpu binding to json-schema At Rob's request, we're starting to migrate our DT binding documentation to json-schema YAML format. Start by converting our cpu binding documentation. While doing so, document more properties and nodes. This includes adding binding documentation support for the E51 and U54 CPU cores ("harts") that are present on this SoC. These cores are described in: https://static.dev.sifive.com/FU540-C000-v1.0.pdf This cpus.yaml file is intended to be a starting point and to evolve over time. It passes dt-doc-validate as of the yaml-bindings commit 4c79d42e9216. This patch was originally based on the ARM json-schema binding documentation as added by commit 672951cbd1b7 ("dt-bindings: arm: Convert cpu binding to json-schema"). Signed-off-by: Paul Walmsley Signed-off-by: Paul Walmsley Reviewed-by: Rob Herring Cc: Mark Rutland Cc: Lorenzo Pieralisi Cc: devicetree@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-riscv@lists.infradead.org commit c7af55981789299547c51caf5db38e6872e7841f Author: Paul Walmsley Date: Mon May 20 09:19:40 2019 -0700 dt-bindings: riscv: sifive: add YAML documentation for the SiFive FU540 Add YAML DT binding documentation for the SiFive FU540 SoC. This SoC is documented at: https://static.dev.sifive.com/FU540-C000-v1.0.pdf Passes dt-doc-validate, as of yaml-bindings commit 4c79d42e9216. Signed-off-by: Paul Walmsley Signed-off-by: Paul Walmsley Reviewed-by: Rob Herring Cc: Rob Herring Cc: Mark Rutland Cc: Palmer Dabbelt Cc: Albert Ou Cc: devicetree@vger.kernel.org Cc: linux-riscv@lists.infradead.org Cc: linux-kernel@vger.kernel.org commit 8d4e048d60bd03c29ce6bb9615a18f08b8eb5c89 Author: Paul Walmsley Date: Mon May 20 09:19:40 2019 -0700 arch: riscv: add support for building DTB files from DT source data Similar to ARM64, add support for building DTB files from DT source data for RISC-V boards. This patch starts with the infrastructure needed for SiFive boards. Boards from other vendors would add support here in a similar form. Signed-off-by: Paul Walmsley Signed-off-by: Paul Walmsley Tested-by: Loys Ollivier Tested-by: Kevin Hilman Cc: Palmer Dabbelt Cc: Albert Ou commit 971afec3a5373f96684ad899579f6a4d51462410 Author: Weinan Li Date: Fri Jun 14 09:35:19 2019 +0800 drm/i915/gvt: ignore unexpected pvinfo write There is pvinfo writing come from vgpu might be unexpected, like writing to one unknown address, GVT-g should do as reserved register to discard any invalid write. Now GVT-g lets it write to the vreg without prompt error message, should ignore the unexpected pvinfo write access and leave the vreg as the default value. For possible guest query GVT-g host feature, this returned proper value instead of wrong guest setting. v2: ignore unexpected pvinfo write instead of return predefined value Fixes: e39c5add3221 ("drm/i915/gvt: vGPU MMIO virtualization") Cc: Zhenyu Wang Reviewed-by: Zhenyu Wang Signed-off-by: Weinan Li Signed-off-by: Zhenyu Wang commit 6be8e297f9bcea666ea85ac7a6cd9d52d6deaf92 Author: Jeremy Sowden Date: Sun Jun 16 16:54:37 2019 +0100 lapb: fixed leak of control-blocks. lapb_register calls lapb_create_cb, which initializes the control- block's ref-count to one, and __lapb_insert_cb, which increments it when adding the new block to the list of blocks. lapb_unregister calls __lapb_remove_cb, which decrements the ref-count when removing control-block from the list of blocks, and calls lapb_put itself to decrement the ref-count before returning. However, lapb_unregister also calls __lapb_devtostruct to look up the right control-block for the given net_device, and __lapb_devtostruct also bumps the ref-count, which means that when lapb_unregister returns the ref-count is still 1 and the control-block is leaked. Call lapb_put after __lapb_devtostruct to fix leak. Reported-by: syzbot+afb980676c836b4a0afa@syzkaller.appspotmail.com Signed-off-by: Jeremy Sowden Signed-off-by: David S. Miller commit 5cf02612b33f104fe1015b2dfaf1758ad3675588 Author: Xin Long Date: Sun Jun 16 17:24:07 2019 +0800 tipc: purge deferredq list for each grp member in tipc_group_delete Syzbot reported a memleak caused by grp members' deferredq list not purged when the grp is be deleted. The issue occurs when more(msg_grp_bc_seqno(hdr), m->bc_rcv_nxt) in tipc_group_filter_msg() and the skb will stay in deferredq. So fix it by calling __skb_queue_purge for each member's deferredq in tipc_group_delete() when a tipc sk leaves the grp. Fixes: b87a5ea31c93 ("tipc: guarantee group unicast doesn't bypass group broadcast") Reported-by: syzbot+78fbe679c8ca8d264a8d@syzkaller.appspotmail.com Signed-off-by: Xin Long Acked-by: Ying Xue Signed-off-by: David S. Miller commit d6ed083f5cc621e15c15b56c3b585fd524dbcb0f Author: Hauke Mehrtens Date: Mon Jun 17 00:30:39 2019 +0200 MIPS: Fix bounds check virt_addr_valid The bounds check used the uninitialized variable vaddr, it should use the given parameter kaddr instead. When using the uninitialized value the compiler assumed it to be 0 and optimized this function to just return 0 in all cases. This should make the function check the range of the given address and only do the page map check in case it is in the expected range of virtual addresses. Fixes: 074a1e1167af ("MIPS: Bounds check virt_addr_valid") Cc: stable@vger.kernel.org # v4.12+ Cc: Paul Burton Signed-off-by: Hauke Mehrtens Signed-off-by: Paul Burton Cc: ralf@linux-mips.org Cc: jhogan@kernel.org Cc: f4bug@amsat.org Cc: linux-mips@vger.kernel.org Cc: ysu@wavecomp.com Cc: jcristau@debian.org commit a52548dd0491a544558e971cd5963501e1a2024d Merge: fb4e0592654a a050fa5476d4 Author: Thomas Gleixner Date: Mon Jun 17 00:40:01 2019 +0200 Merge tag 'irqchip-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/urgent Pull irqchip fixes for 5.2 from Marc Zyngier: - CSky mpintc: allow interrupts to be broadcast - TI sci-inta: fix error handling - MIPS GIC: Fix local interrupt mapping - ITS: Fix command queue wrapping commit d4d5d8e83c9616aeef28a2869cea49cc3fb35526 Author: Eric Dumazet Date: Sat Jun 15 16:40:52 2019 -0700 ax25: fix inconsistent lock state in ax25_destroy_timer Before thread in process context uses bh_lock_sock() we must disable bh. sysbot reported : WARNING: inconsistent lock state 5.2.0-rc3+ #32 Not tainted inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage. blkid/26581 [HC0[0]:SC1[1]:HE1:SE0] takes: 00000000e0da85ee (slock-AF_AX25){+.?.}, at: spin_lock include/linux/spinlock.h:338 [inline] 00000000e0da85ee (slock-AF_AX25){+.?.}, at: ax25_destroy_timer+0x53/0xc0 net/ax25/af_ax25.c:275 {SOFTIRQ-ON-W} state was registered at: lock_acquire+0x16f/0x3f0 kernel/locking/lockdep.c:4303 __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline] _raw_spin_lock+0x2f/0x40 kernel/locking/spinlock.c:151 spin_lock include/linux/spinlock.h:338 [inline] ax25_rt_autobind+0x3ca/0x720 net/ax25/ax25_route.c:429 ax25_connect.cold+0x30/0xa4 net/ax25/af_ax25.c:1221 __sys_connect+0x264/0x330 net/socket.c:1834 __do_sys_connect net/socket.c:1845 [inline] __se_sys_connect net/socket.c:1842 [inline] __x64_sys_connect+0x73/0xb0 net/socket.c:1842 do_syscall_64+0xfd/0x680 arch/x86/entry/common.c:301 entry_SYSCALL_64_after_hwframe+0x49/0xbe irq event stamp: 2272 hardirqs last enabled at (2272): [] trace_hardirqs_on_thunk+0x1a/0x1c hardirqs last disabled at (2271): [] trace_hardirqs_off_thunk+0x1a/0x1c softirqs last enabled at (1522): [] __do_softirq+0x654/0x94c kernel/softirq.c:320 softirqs last disabled at (2267): [] invoke_softirq kernel/softirq.c:374 [inline] softirqs last disabled at (2267): [] irq_exit+0x180/0x1d0 kernel/softirq.c:414 other info that might help us debug this: Possible unsafe locking scenario: CPU0 ---- lock(slock-AF_AX25); lock(slock-AF_AX25); *** DEADLOCK *** 1 lock held by blkid/26581: #0: 0000000010fd154d ((&ax25->dtimer)){+.-.}, at: lockdep_copy_map include/linux/lockdep.h:175 [inline] #0: 0000000010fd154d ((&ax25->dtimer)){+.-.}, at: call_timer_fn+0xe0/0x720 kernel/time/timer.c:1312 stack backtrace: CPU: 1 PID: 26581 Comm: blkid Not tainted 5.2.0-rc3+ #32 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x172/0x1f0 lib/dump_stack.c:113 print_usage_bug.cold+0x393/0x4a2 kernel/locking/lockdep.c:2935 valid_state kernel/locking/lockdep.c:2948 [inline] mark_lock_irq kernel/locking/lockdep.c:3138 [inline] mark_lock+0xd46/0x1370 kernel/locking/lockdep.c:3513 mark_irqflags kernel/locking/lockdep.c:3391 [inline] __lock_acquire+0x159f/0x5490 kernel/locking/lockdep.c:3745 lock_acquire+0x16f/0x3f0 kernel/locking/lockdep.c:4303 __raw_spin_lock include/linux/spinlock_api_smp.h:142 [inline] _raw_spin_lock+0x2f/0x40 kernel/locking/spinlock.c:151 spin_lock include/linux/spinlock.h:338 [inline] ax25_destroy_timer+0x53/0xc0 net/ax25/af_ax25.c:275 call_timer_fn+0x193/0x720 kernel/time/timer.c:1322 expire_timers kernel/time/timer.c:1366 [inline] __run_timers kernel/time/timer.c:1685 [inline] __run_timers kernel/time/timer.c:1653 [inline] run_timer_softirq+0x66f/0x1740 kernel/time/timer.c:1698 __do_softirq+0x25c/0x94c kernel/softirq.c:293 invoke_softirq kernel/softirq.c:374 [inline] irq_exit+0x180/0x1d0 kernel/softirq.c:414 exiting_irq arch/x86/include/asm/apic.h:536 [inline] smp_apic_timer_interrupt+0x13b/0x550 arch/x86/kernel/apic/apic.c:1068 apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:806 RIP: 0033:0x7f858d5c3232 Code: 8b 61 08 48 8b 84 24 d8 00 00 00 4c 89 44 24 28 48 8b ac 24 d0 00 00 00 4c 8b b4 24 e8 00 00 00 48 89 7c 24 68 48 89 4c 24 78 <48> 89 44 24 58 8b 84 24 e0 00 00 00 89 84 24 84 00 00 00 8b 84 24 RSP: 002b:00007ffcaf0cf5c0 EFLAGS: 00000206 ORIG_RAX: ffffffffffffff13 RAX: 00007f858d7d27a8 RBX: 00007f858d7d8820 RCX: 00007f858d3940d8 RDX: 00007ffcaf0cf798 RSI: 00000000f5e616f3 RDI: 00007f858d394fee RBP: 0000000000000000 R08: 00007ffcaf0cf780 R09: 00007f858d7db480 R10: 0000000000000000 R11: 0000000009691a75 R12: 0000000000000005 R13: 00000000f5e616f3 R14: 0000000000000000 R15: 00007ffcaf0cf798 Signed-off-by: Eric Dumazet Reported-by: syzbot Signed-off-by: David S. Miller commit f3e92cb8e2eb8c27d109e6fd73d3a69a8c09e288 Author: Eric Dumazet Date: Sat Jun 15 16:28:48 2019 -0700 neigh: fix use-after-free read in pneigh_get_next Nine years ago, I added RCU handling to neighbours, not pneighbours. (pneigh are not commonly used) Unfortunately I missed that /proc dump operations would use a common entry and exit point : neigh_seq_start() and neigh_seq_stop() We need to read_lock(tbl->lock) or risk use-after-free while iterating the pneigh structures. We might later convert pneigh to RCU and revert this patch. sysbot reported : BUG: KASAN: use-after-free in pneigh_get_next.isra.0+0x24b/0x280 net/core/neighbour.c:3158 Read of size 8 at addr ffff888097f2a700 by task syz-executor.0/9825 CPU: 1 PID: 9825 Comm: syz-executor.0 Not tainted 5.2.0-rc4+ #32 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x172/0x1f0 lib/dump_stack.c:113 print_address_description.cold+0x7c/0x20d mm/kasan/report.c:188 __kasan_report.cold+0x1b/0x40 mm/kasan/report.c:317 kasan_report+0x12/0x20 mm/kasan/common.c:614 __asan_report_load8_noabort+0x14/0x20 mm/kasan/generic_report.c:132 pneigh_get_next.isra.0+0x24b/0x280 net/core/neighbour.c:3158 neigh_seq_next+0xdb/0x210 net/core/neighbour.c:3240 seq_read+0x9cf/0x1110 fs/seq_file.c:258 proc_reg_read+0x1fc/0x2c0 fs/proc/inode.c:221 do_loop_readv_writev fs/read_write.c:714 [inline] do_loop_readv_writev fs/read_write.c:701 [inline] do_iter_read+0x4a4/0x660 fs/read_write.c:935 vfs_readv+0xf0/0x160 fs/read_write.c:997 kernel_readv fs/splice.c:359 [inline] default_file_splice_read+0x475/0x890 fs/splice.c:414 do_splice_to+0x127/0x180 fs/splice.c:877 splice_direct_to_actor+0x2d2/0x970 fs/splice.c:954 do_splice_direct+0x1da/0x2a0 fs/splice.c:1063 do_sendfile+0x597/0xd00 fs/read_write.c:1464 __do_sys_sendfile64 fs/read_write.c:1525 [inline] __se_sys_sendfile64 fs/read_write.c:1511 [inline] __x64_sys_sendfile64+0x1dd/0x220 fs/read_write.c:1511 do_syscall_64+0xfd/0x680 arch/x86/entry/common.c:301 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x4592c9 Code: fd b7 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 cb b7 fb ff c3 66 2e 0f 1f 84 00 00 00 00 RSP: 002b:00007f4aab51dc78 EFLAGS: 00000246 ORIG_RAX: 0000000000000028 RAX: ffffffffffffffda RBX: 0000000000000004 RCX: 00000000004592c9 RDX: 0000000000000000 RSI: 0000000000000004 RDI: 0000000000000005 RBP: 000000000075bf20 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000080000000 R11: 0000000000000246 R12: 00007f4aab51e6d4 R13: 00000000004c689d R14: 00000000004db828 R15: 00000000ffffffff Allocated by task 9827: save_stack+0x23/0x90 mm/kasan/common.c:71 set_track mm/kasan/common.c:79 [inline] __kasan_kmalloc mm/kasan/common.c:489 [inline] __kasan_kmalloc.constprop.0+0xcf/0xe0 mm/kasan/common.c:462 kasan_kmalloc+0x9/0x10 mm/kasan/common.c:503 __do_kmalloc mm/slab.c:3660 [inline] __kmalloc+0x15c/0x740 mm/slab.c:3669 kmalloc include/linux/slab.h:552 [inline] pneigh_lookup+0x19c/0x4a0 net/core/neighbour.c:731 arp_req_set_public net/ipv4/arp.c:1010 [inline] arp_req_set+0x613/0x720 net/ipv4/arp.c:1026 arp_ioctl+0x652/0x7f0 net/ipv4/arp.c:1226 inet_ioctl+0x2a0/0x340 net/ipv4/af_inet.c:926 sock_do_ioctl+0xd8/0x2f0 net/socket.c:1043 sock_ioctl+0x3ed/0x780 net/socket.c:1194 vfs_ioctl fs/ioctl.c:46 [inline] file_ioctl fs/ioctl.c:509 [inline] do_vfs_ioctl+0xd5f/0x1380 fs/ioctl.c:696 ksys_ioctl+0xab/0xd0 fs/ioctl.c:713 __do_sys_ioctl fs/ioctl.c:720 [inline] __se_sys_ioctl fs/ioctl.c:718 [inline] __x64_sys_ioctl+0x73/0xb0 fs/ioctl.c:718 do_syscall_64+0xfd/0x680 arch/x86/entry/common.c:301 entry_SYSCALL_64_after_hwframe+0x49/0xbe Freed by task 9824: save_stack+0x23/0x90 mm/kasan/common.c:71 set_track mm/kasan/common.c:79 [inline] __kasan_slab_free+0x102/0x150 mm/kasan/common.c:451 kasan_slab_free+0xe/0x10 mm/kasan/common.c:459 __cache_free mm/slab.c:3432 [inline] kfree+0xcf/0x220 mm/slab.c:3755 pneigh_ifdown_and_unlock net/core/neighbour.c:812 [inline] __neigh_ifdown+0x236/0x2f0 net/core/neighbour.c:356 neigh_ifdown+0x20/0x30 net/core/neighbour.c:372 arp_ifdown+0x1d/0x21 net/ipv4/arp.c:1274 inetdev_destroy net/ipv4/devinet.c:319 [inline] inetdev_event+0xa14/0x11f0 net/ipv4/devinet.c:1544 notifier_call_chain+0xc2/0x230 kernel/notifier.c:95 __raw_notifier_call_chain kernel/notifier.c:396 [inline] raw_notifier_call_chain+0x2e/0x40 kernel/notifier.c:403 call_netdevice_notifiers_info+0x3f/0x90 net/core/dev.c:1749 call_netdevice_notifiers_extack net/core/dev.c:1761 [inline] call_netdevice_notifiers net/core/dev.c:1775 [inline] rollback_registered_many+0x9b9/0xfc0 net/core/dev.c:8178 rollback_registered+0x109/0x1d0 net/core/dev.c:8220 unregister_netdevice_queue net/core/dev.c:9267 [inline] unregister_netdevice_queue+0x1ee/0x2c0 net/core/dev.c:9260 unregister_netdevice include/linux/netdevice.h:2631 [inline] __tun_detach+0xd8a/0x1040 drivers/net/tun.c:724 tun_detach drivers/net/tun.c:741 [inline] tun_chr_close+0xe0/0x180 drivers/net/tun.c:3451 __fput+0x2ff/0x890 fs/file_table.c:280 ____fput+0x16/0x20 fs/file_table.c:313 task_work_run+0x145/0x1c0 kernel/task_work.c:113 tracehook_notify_resume include/linux/tracehook.h:185 [inline] exit_to_usermode_loop+0x273/0x2c0 arch/x86/entry/common.c:168 prepare_exit_to_usermode arch/x86/entry/common.c:199 [inline] syscall_return_slowpath arch/x86/entry/common.c:279 [inline] do_syscall_64+0x58e/0x680 arch/x86/entry/common.c:304 entry_SYSCALL_64_after_hwframe+0x49/0xbe The buggy address belongs to the object at ffff888097f2a700 which belongs to the cache kmalloc-64 of size 64 The buggy address is located 0 bytes inside of 64-byte region [ffff888097f2a700, ffff888097f2a740) The buggy address belongs to the page: page:ffffea00025fca80 refcount:1 mapcount:0 mapping:ffff8880aa400340 index:0x0 flags: 0x1fffc0000000200(slab) raw: 01fffc0000000200 ffffea000250d548 ffffea00025726c8 ffff8880aa400340 raw: 0000000000000000 ffff888097f2a000 0000000100000020 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff888097f2a600: 00 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc ffff888097f2a680: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc >ffff888097f2a700: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc ^ ffff888097f2a780: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc ffff888097f2a800: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc Fixes: 767e97e1e0db ("neigh: RCU conversion of struct neighbour") Signed-off-by: Eric Dumazet Reported-by: syzbot Signed-off-by: David S. Miller commit 2e05fcae83c41eb2df10558338dc600dc783af47 Author: Eric Dumazet Date: Sat Jun 15 13:19:55 2019 -0700 tcp: fix compile error if !CONFIG_SYSCTL tcp_tx_skb_cache_key and tcp_rx_skb_cache_key must be available even if CONFIG_SYSCTL is not set. Fixes: 0b7d7f6b2208 ("tcp: add tcp_tx_skb_cache sysctl") Fixes: ede61ca474a0 ("tcp: add tcp_rx_skb_cache sysctl") Signed-off-by: Eric Dumazet Reported-by: Willem de Bruijn Signed-off-by: David S. Miller commit d424a2afd7da136a98e9485bfd6c5d5506bd77f8 Author: Dexuan Cui Date: Sat Jun 15 05:00:57 2019 +0000 hv_sock: Suppress bogus "may be used uninitialized" warnings gcc 8.2.0 may report these bogus warnings under some condition: warning: ‘vnew’ may be used uninitialized in this function warning: ‘hvs_new’ may be used uninitialized in this function Actually, the 2 pointers are only initialized and used if the variable "conn_from_host" is true. The code is not buggy here. Signed-off-by: Dexuan Cui Signed-off-by: David S. Miller commit 718f4a2537089ea41903bf357071306163bc7c04 Author: Ivan Vecera Date: Fri Jun 14 17:48:36 2019 +0200 be2net: Fix number of Rx queues used for flow hashing Number of Rx queues used for flow hashing returned by the driver is incorrect and this bug prevents user to use the last Rx queue in indirection table. Let's say we have a NIC with 6 combined queues: [root@sm-03 ~]# ethtool -l enp4s0f0 Channel parameters for enp4s0f0: Pre-set maximums: RX: 5 TX: 5 Other: 0 Combined: 6 Current hardware settings: RX: 0 TX: 0 Other: 0 Combined: 6 Default indirection table maps all (6) queues equally but the driver reports only 5 rings available. [root@sm-03 ~]# ethtool -x enp4s0f0 RX flow hash indirection table for enp4s0f0 with 5 RX ring(s): 0: 0 1 2 3 4 5 0 1 8: 2 3 4 5 0 1 2 3 16: 4 5 0 1 2 3 4 5 24: 0 1 2 3 4 5 0 1 ... Now change indirection table somehow: [root@sm-03 ~]# ethtool -X enp4s0f0 weight 1 1 [root@sm-03 ~]# ethtool -x enp4s0f0 RX flow hash indirection table for enp4s0f0 with 6 RX ring(s): 0: 0 0 0 0 0 0 0 0 ... 64: 1 1 1 1 1 1 1 1 ... Now it is not possible to change mapping back to equal (default) state: [root@sm-03 ~]# ethtool -X enp4s0f0 equal 6 Cannot set RX flow hash configuration: Invalid argument Fixes: 594ad54a2c3b ("be2net: Add support for setting and getting rx flow hash options") Reported-by: Tianhao Signed-off-by: Ivan Vecera Signed-off-by: David S. Miller commit 36b2f61a42c29add695f3bd192ce44d5c113c1eb Author: Govindarajulu Varadarajan Date: Fri Jun 14 06:13:54 2019 -0700 net: handle 802.1P vlan 0 packets properly When stack receives pkt: [802.1P vlan 0][802.1AD vlan 100][IPv4], vlan_do_receive() returns false if it does not find vlan_dev. Later __netif_receive_skb_core() fails to find packet type handler for skb->protocol 801.1AD and drops the packet. 801.1P header with vlan id 0 should be handled as untagged packets. This patch fixes it by checking if vlan_id is 0 and processes next vlan header. Signed-off-by: Govindarajulu Varadarajan Signed-off-by: David S. Miller commit 80d1d46525459df73b670b72328d04e9f8d7e0da Merge: d5d3652af157 8a0098c05a27 Author: Olof Johansson Date: Sun Jun 16 13:33:51 2019 -0700 Merge tag 'omap-for-v5.2/fixes-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes Fixes for omap variants Three fixes mostly for dra7 SoC variants that have some devices disabled compared to the base SoC. These got broken by the change of making devices probe with ti-sysc interconnect target module and went unnnoticed for a while. And there is no clkcel bit for timer12 unlike timer1. Also included is a GPIO direction fix for phytec SDIO card detection. * tag 'omap-for-v5.2/fixes-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: dts: am335x phytec boards: Fix cd-gpios active level ARM: dts: dra72x: Disable usb4_tm target module ARM: dts: Drop bogus CLKSEL for timer12 on dra7 Signed-off-by: Olof Johansson commit d5d3652af15704cda84036d69076c1107a2f4bcf Merge: 75d91ba4750e 68f2515bb31a Author: Olof Johansson Date: Sun Jun 16 13:33:13 2019 -0700 Merge tag 'davinci-fixes-for-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci into fixes DaVinci fixes for v5.2 kernel. This addresses an issue with probe of IO expander on DA850 EVM. There is also a WARN_ON() fix on DA850 and DA830 devices. * tag 'davinci-fixes-for-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci: ARM: davinci: da8xx: specify dma_coherent_mask for lcdc ARM: davinci: da850-evm: call regulator_has_full_constraints() Signed-off-by: Olof Johansson commit 75d91ba4750ee036204e985e2568e10cbc88869d Merge: 5a55a1612373 cc538ca43083 Author: Olof Johansson Date: Sun Jun 16 13:32:47 2019 -0700 Merge tag 'mvebu-fixes-5.2-1' of git://git.infradead.org/linux-mvebu into fixes mvebu fixes for 5.2 (part 1) Fixing defconfig allowing to use Ethernet again on Armada 38x based boards * tag 'mvebu-fixes-5.2-1' of git://git.infradead.org/linux-mvebu: ARM: mvebu_v7_defconfig: fix Ethernet on Clearfog Signed-off-by: Olof Johansson commit 5a55a16123734d44eac907a41b0b80a7840b2d3b Merge: 9f22081ea221 a6b112b04355 Author: Olof Johansson Date: Sun Jun 16 13:30:30 2019 -0700 Merge tag 'am654-fixes-for-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/kristo/linux into fixes Texas Instruments AM65x fixes for v5.2 - Fix up a Kbuild warning when SOC_TI is not set * tag 'am654-fixes-for-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/kristo/linux: arm64: arch_k3: Fix kconfig dependency warning Signed-off-by: Olof Johansson commit 9f22081ea221554d2ed8bb7f2abdbd312fce6436 Merge: 6515a2ceac76 e8bd76dccd79 Author: Olof Johansson Date: Sun Jun 16 13:29:08 2019 -0700 Merge tag 'arm-soc/for-5.2/devicetree-fixes' of https://github.com/Broadcom/stblinux into fixes This pull request contains Broadcom ARM-based SoCs Device Tree fixes for 5.2-rc1, please pull the following: - Florian fixes the remaining Broadcom DTS files to have a valid device_type = "memory" property which was missed during the removal of skeleton.dtsi * tag 'arm-soc/for-5.2/devicetree-fixes' of https://github.com/Broadcom/stblinux: ARM: dts: bcm: Add missing device_type = "memory" property Signed-off-by: Olof Johansson commit 6515a2ceac76aa557ac91c7cb315a6f153870dfe Merge: 4bded299838f 4ee23cd76c0c Author: Olof Johansson Date: Sun Jun 16 13:27:36 2019 -0700 Merge tag 'omap-for-v5.2/fixes-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into fixes Fixes for omap variants for dra7 mmc voltage and boot issues This series contains dra7 mmc voltage fixes, and fixes to the recent changes to probe devices with device tree data insteas of legacy platform data: - Two fixes for dra7 mmc that needs 1.8V mode disabled as in case of a reset, the bootrom will try to access the mmc card at 3.3V potentially damaging the card - Two regression fixes for am335x d_can. We must allow devices with no control registers for ti-sysc interconnect target module driver for at least d_can, and we remove the incorrect control registers for d_can. And we must configure the osc clock for d_can as otherwise register access may fail depending on the bootloader version - Four regression fixes for dra7 variant dts files to tag rtc and usb4 as disabled for dra71x and dra76x. These SoC variants do not have these devices, and got accidentally enabled when the L4 interconnect got defined in the dra7-l4.dtsi for the dra7 SoC family * tag 'omap-for-v5.2/fixes-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: dts: dra71x: Disable usb4_tm target module ARM: dts: dra71x: Disable rtc target module ARM: dts: dra76x: Disable usb4_tm target module ARM: dts: dra76x: Disable rtc target module ARM: dts: dra76x: Update MMC2_HS200_MANUAL1 iodelay values ARM: dts: am57xx-idk: Remove support for voltage switching for SD card bus: ti-sysc: Handle devices with no control registers ARM: dts: Configure osc clock for d_can on am335x Signed-off-by: Olof Johansson commit 4bded299838ffb2735b73598ed5a008bd03023f3 Merge: 9925a6d9b794 b25af2ff7c07 Author: Olof Johansson Date: Sun Jun 16 13:26:55 2019 -0700 Merge tag 'imx-fixes-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into fixes i.MX fixes for 5.2: - A build fix for soc-imx8 driver which needs SOC_BUS support. To avoid dealing with the dependency for every single i.MX SoC bus driver, we selects at from architecture level. - A fix on i.MX SCU firmware driver to ensure SCU irq is enabled only after IPC is ready. - A regression fix on cpuidle-imx6sx driver, which causes some characters loss on serial communication. * tag 'imx-fixes-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: ARM: imx: cpuidle-imx6sx: Restrict the SW2ISO increase to i.MX6SX firmware: imx: SCU irq should ONLY be enabled after SCU IPC is ready arm64: imx: Fix build error without CONFIG_SOC_BUS Signed-off-by: Olof Johansson commit 9925a6d9b794a67db360c1be300a598fa8a83470 Merge: c1d6f4adf465 b2279bcffa72 Author: Olof Johansson Date: Sun Jun 16 13:25:50 2019 -0700 Merge tag 'arm-soc/for-5.2/maintainers' of https://github.com/Broadcom/stblinux into fixes This pull request contains MAINTAINERS file update for Broadcom ARM/ARM64 SoCs, please pull the following: - Stefan updates his email address under the BCM2835 entry * tag 'arm-soc/for-5.2/maintainers' of https://github.com/Broadcom/stblinux: MAINTAINERS: Update Stefan Wahren email address Signed-off-by: Olof Johansson commit c1d6f4adf46592e825b77c43408cd929a80e9aba Merge: 9e0babf2c06c 6b23af0783a5 Author: Olof Johansson Date: Sun Jun 16 13:24:59 2019 -0700 Merge tag 'arm-soc/for-5.2/drivers-fixes' of https://github.com/Broadcom/stblinux into fixes This pull request contains Broadcom ARM/ARM64/MIPS SoCs device drivers fixes for 5.2-rc1, please pull the following: - Florian fixes the biuctrl driver not to create an error condition/path upon unsupported CPU and also fixes the biuctrl driver writes to used a data barrier which is necessary given the HW block design * tag 'arm-soc/for-5.2/drivers-fixes' of https://github.com/Broadcom/stblinux: soc: bcm: brcmstb: biuctrl: Register writes require a barrier soc: brcmstb: Fix error path for unsupported CPUs Signed-off-by: Olof Johansson commit 9e0babf2c06c73cda2c0cd37a1653d823adb40ec Author: Linus Torvalds Date: Sun Jun 16 08:49:45 2019 -1000 Linux 5.2-rc5 commit 963172d9c7e862654d3d24cbcafb33f33ae697a8 Merge: efba92d58fa3 78f4e932f776 Author: Linus Torvalds Date: Sun Jun 16 07:28:14 2019 -1000 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 accumulated fixes from this and last week: - Fix vmalloc TLB flush and map range calculations which lead to stale TLBs, spurious faults and other hard to diagnose issues. - Use fault_in_pages_writable() for prefaulting the user stack in the FPU code as it's less fragile than the current solution - Use the PF_KTHREAD flag when checking for a kernel thread instead of current->mm as the latter can give the wrong answer due to use_mm() - Compute the vmemmap size correctly for KASLR and 5-Level paging. Otherwise this can end up with a way too small vmemmap area. - Make KASAN and 5-level paging work again by making sure that all invalid bits are masked out when computing the P4D offset. This worked before but got broken recently when the LDT remap area was moved. - Prevent a NULL pointer dereference in the resource control code which can be triggered with certain mount options when the requested resource is not available. - Enforce ordering of microcode loading vs. perf initialization on secondary CPUs. Otherwise perf tries to access a non-existing MSR as the boot CPU marked it as available. - Don't stop the resource control group walk early otherwise the control bitmaps are not updated correctly and become inconsistent. - Unbreak kgdb by returning 0 on success from kgdb_arch_set_breakpoint() instead of an error code. - Add more Icelake CPU model defines so depending changes can be queued in other trees" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/microcode, cpuhotplug: Add a microcode loader CPU hotplug callback x86/kasan: Fix boot with 5-level paging and KASAN x86/fpu: Don't use current->mm to check for a kthread x86/kgdb: Return 0 from kgdb_arch_set_breakpoint() x86/resctrl: Prevent NULL pointer dereference when local MBM is disabled x86/resctrl: Don't stop walking closids when a locksetup group is found x86/fpu: Update kernel's FPU state before using for the fsave header x86/mm/KASLR: Compute the size of the vmemmap section properly x86/fpu: Use fault_in_pages_writeable() for pre-faulting x86/CPU: Add more Icelake model numbers mm/vmalloc: Avoid rare case of flushing TLB with weird arguments mm/vmalloc: Fix calculation of direct map addr range commit efba92d58fa37d714d665deddb5cc6458b39bb88 Merge: f763cf8e47d3 e3ff9c3678b4 Author: Linus Torvalds Date: Sun Jun 16 07:22:56 2019 -1000 Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull timer fixes from Thomas Gleixner: "A set of small fixes: - Repair the ktime_get_coarse() functions so they actually deliver what they are supposed to: tick granular time stamps. The current code missed to add the accumulated nanoseconds part of the timekeeper so the resulting granularity was 1 second. - Prevent the tracer from infinitely recursing into time getter functions in the arm architectured timer by marking these functions notrace - Fix a trivial compiler warning caused by wrong qualifier ordering" * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: timekeeping: Repair ktime_get_coarse*() granularity clocksource/drivers/arm_arch_timer: Don't trace count reader functions clocksource/drivers/timer-ti-dm: Change to new style declaration commit f763cf8e47d3aa4b081e0537d060c12818de8d0f Merge: e01e060fe00d 0ade0b6240c4 Author: Linus Torvalds Date: Sun Jun 16 07:19:15 2019 -1000 Merge branch 'ras-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull RAS fixes from Thomas Gleixner: "Two small fixes for RAS: - Use a proper search algorithm to find the correct element in the CEC array. The replacement was a better choice than fixing the crash causes by the original search function with horrible duct tape. - Move the timer based decay function into thread context so it can actually acquire the mutex which protects the CEC array to prevent corruption" * 'ras-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: RAS/CEC: Convert the timer callback to a workqueue RAS/CEC: Fix binary search function commit 967c05aee439e6e5d7d805e195b3a20ef5c433d6 Author: Eric Dumazet Date: Sat Jun 8 10:22:49 2019 -0700 tcp: enforce tcp_min_snd_mss in tcp_mtu_probing() If mtu probing is enabled tcp_mtu_probing() could very well end up with a too small MSS. Use the new sysctl tcp_min_snd_mss to make sure MSS search is performed in an acceptable range. CVE-2019-11479 -- tcp mss hardcoded to 48 Signed-off-by: Eric Dumazet Reported-by: Jonathan Lemon Cc: Jonathan Looney Acked-by: Neal Cardwell Cc: Yuchung Cheng Cc: Tyler Hicks Cc: Bruce Curtis Signed-off-by: David S. Miller commit 5f3e2bf008c2221478101ee72f5cb4654b9fc363 Author: Eric Dumazet Date: Thu Jun 6 09:15:31 2019 -0700 tcp: add tcp_min_snd_mss sysctl Some TCP peers announce a very small MSS option in their SYN and/or SYN/ACK messages. This forces the stack to send packets with a very high network/cpu overhead. Linux has enforced a minimal value of 48. Since this value includes the size of TCP options, and that the options can consume up to 40 bytes, this means that each segment can include only 8 bytes of payload. In some cases, it can be useful to increase the minimal value to a saner value. We still let the default to 48 (TCP_MIN_SND_MSS), for compatibility reasons. Note that TCP_MAXSEG socket option enforces a minimal value of (TCP_MIN_MSS). David Miller increased this minimal value in commit c39508d6f118 ("tcp: Make TCP_MAXSEG minimum more correct.") from 64 to 88. We might in the future merge TCP_MIN_SND_MSS and TCP_MIN_MSS. CVE-2019-11479 -- tcp mss hardcoded to 48 Signed-off-by: Eric Dumazet Suggested-by: Jonathan Looney Acked-by: Neal Cardwell Cc: Yuchung Cheng Cc: Tyler Hicks Cc: Bruce Curtis Cc: Jonathan Lemon Signed-off-by: David S. Miller commit f070ef2ac66716357066b683fb0baf55f8191a2e Author: Eric Dumazet Date: Sat May 18 05:12:05 2019 -0700 tcp: tcp_fragment() should apply sane memory limits Jonathan Looney reported that a malicious peer can force a sender to fragment its retransmit queue into tiny skbs, inflating memory usage and/or overflow 32bit counters. TCP allows an application to queue up to sk_sndbuf bytes, so we need to give some allowance for non malicious splitting of retransmit queue. A new SNMP counter is added to monitor how many times TCP did not allow to split an skb if the allowance was exceeded. Note that this counter might increase in the case applications use SO_SNDBUF socket option to lower sk_sndbuf. CVE-2019-11478 : tcp_fragment, prevent fragmenting a packet when the socket is already using more than half the allowed space Signed-off-by: Eric Dumazet Reported-by: Jonathan Looney Acked-by: Neal Cardwell Acked-by: Yuchung Cheng Reviewed-by: Tyler Hicks Cc: Bruce Curtis Cc: Jonathan Lemon Signed-off-by: David S. Miller commit 3b4929f65b0d8249f19a50245cd88ed1a2f78cff Author: Eric Dumazet Date: Fri May 17 17:17:22 2019 -0700 tcp: limit payload size of sacked skbs Jonathan Looney reported that TCP can trigger the following crash in tcp_shifted_skb() : BUG_ON(tcp_skb_pcount(skb) < pcount); This can happen if the remote peer has advertized the smallest MSS that linux TCP accepts : 48 An skb can hold 17 fragments, and each fragment can hold 32KB on x86, or 64KB on PowerPC. This means that the 16bit witdh of TCP_SKB_CB(skb)->tcp_gso_segs can overflow. Note that tcp_sendmsg() builds skbs with less than 64KB of payload, so this problem needs SACK to be enabled. SACK blocks allow TCP to coalesce multiple skbs in the retransmit queue, thus filling the 17 fragments to maximal capacity. CVE-2019-11477 -- u16 overflow of TCP_SKB_CB(skb)->tcp_gso_segs Fixes: 832d11c5cd07 ("tcp: Try to restore large SKBs while SACK processing") Signed-off-by: Eric Dumazet Reported-by: Jonathan Looney Acked-by: Neal Cardwell Reviewed-by: Tyler Hicks Cc: Yuchung Cheng Cc: Bruce Curtis Cc: Jonathan Lemon Signed-off-by: David S. Miller commit 1eb4169c1e6b3c95f3a99c2c7f91b10e6c98e848 Merge: 5db2e7c7917f 9594dc3c7e71 Author: David S. Miller Date: Sat Jun 15 18:19:47 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf Alexei Starovoitov says: ==================== pull-request: bpf 2019-06-15 The following pull-request contains BPF updates for your *net* tree. The main changes are: 1) fix stack layout of JITed x64 bpf code, from Alexei. 2) fix out of bounds memory access in bpf_sk_storage, from Arthur. 3) fix lpm trie walk, from Jonathan. 4) fix nested bpf_perf_event_output, from Matt. 5) and several other fixes. ==================== Signed-off-by: David S. Miller commit 5db2e7c7917f40236a021959893121c4e496f609 Author: David S. Miller Date: Sat Jun 15 18:10:30 2019 -0700 Revert "net: phylink: set the autoneg state in phylink_phy_change" This reverts commit ef7bfa84725d891bbdb88707ed55b2cbf94942bb. Russell King espressed some strong opposition to this change, explaining that this is trying to make phylink behave outside of how it has been designed. Signed-off-by: David S. Miller commit 9594dc3c7e71b9f52bee1d7852eb3d4e3aea9e99 Author: Matt Mullins Date: Tue Jun 11 14:53:04 2019 -0700 bpf: fix nested bpf tracepoints with per-cpu data BPF_PROG_TYPE_RAW_TRACEPOINTs can be executed nested on the same CPU, as they do not increment bpf_prog_active while executing. This enables three levels of nesting, to support - a kprobe or raw tp or perf event, - another one of the above that irq context happens to call, and - another one in nmi context (at most one of which may be a kprobe or perf event). Fixes: 20b9d7ac4852 ("bpf: avoid excessive stack usage for perf_sample_data") Signed-off-by: Matt Mullins Acked-by: Andrii Nakryiko Acked-by: Daniel Borkmann Signed-off-by: Alexei Starovoitov commit 85749218e3a6a1ab4fb3c698394f40f07b80be5e Author: Arthur Fabre Date: Sat Jun 15 14:36:27 2019 -0700 bpf: Fix out of bounds memory access in bpf_sk_storage bpf_sk_storage maps use multiple spin locks to reduce contention. The number of locks to use is determined by the number of possible CPUs. With only 1 possible CPU, bucket_log == 0, and 2^0 = 1 locks are used. When updating elements, the correct lock is determined with hash_ptr(). Calling hash_ptr() with 0 bits is undefined behavior, as it does: x >> (64 - bits) Using the value results in an out of bounds memory access. In my case, this manifested itself as a page fault when raw_spin_lock_bh() is called later, when running the self tests: ./tools/testing/selftests/bpf/test_verifier 773 775 [ 16.366342] BUG: unable to handle page fault for address: ffff8fe7a66f93f8 Force the minimum number of locks to two. Signed-off-by: Arthur Fabre Fixes: 6ac99e8f23d4 ("bpf: Introduce bpf sk local storage") Acked-by: Andrii Nakryiko Signed-off-by: Alexei Starovoitov commit 42f5cda5eaf4396a939ae9bb43bb8d1d09c1b15c Author: Stephen Barber Date: Fri Jun 14 23:42:37 2019 -0700 vsock/virtio: set SOCK_DONE on peer shutdown Set the SOCK_DONE flag to match the TCP_CLOSING state when a peer has shut down and there is nothing left to read. This fixes the following bug: 1) Peer sends SHUTDOWN(RDWR). 2) Socket enters TCP_CLOSING but SOCK_DONE is not set. 3) read() returns -ENOTCONN until close() is called, then returns 0. Signed-off-by: Stephen Barber Signed-off-by: David S. Miller commit 760c80b70bed2cd01630e8595d1bbde910339f31 Author: Linus Walleij Date: Fri Jun 14 00:25:20 2019 +0200 net: dsa: rtl8366: Fix up VLAN filtering We get this regression when using RTL8366RB as part of a bridge with OpenWrt: WARNING: CPU: 0 PID: 1347 at net/switchdev/switchdev.c:291 switchdev_port_attr_set_now+0x80/0xa4 lan0: Commit of attribute (id=7) failed. (...) realtek-smi switch lan0: failed to initialize vlan filtering on this port This is because it is trying to disable VLAN filtering on VLAN0, as we have forgot to add 1 to the port number to get the right VLAN in rtl8366_vlan_filtering(): when we initialize the VLAN we associate VLAN1 with port 0, VLAN2 with port 1 etc, so we need to add 1 to the port offset. Fixes: d8652956cf37 ("net: dsa: realtek-smi: Add Realtek SMI driver") Signed-off-by: Linus Walleij Signed-off-by: David S. Miller commit ef7bfa84725d891bbdb88707ed55b2cbf94942bb Author: Ioana Ciornei Date: Thu Jun 13 09:37:51 2019 +0300 net: phylink: set the autoneg state in phylink_phy_change The phy_state field of phylink should carry only valid information especially when this can be passed to the .mac_config callback. Update the an_enabled field with the autoneg state in the phylink_phy_change function. Fixes: 9525ae83959b ("phylink: add phylink infrastructure") Signed-off-by: Ioana Ciornei Signed-off-by: David S. Miller commit e01e060fe00dca46959bbf055b75d9f57ba6e7be Merge: ff39074b1d4e 8c2eb7b6468a Author: Linus Torvalds Date: Sat Jun 15 07:38:54 2019 -1000 Merge tag 'platform-drivers-x86-v5.2-3' of git://git.infradead.org/linux-platform-drivers-x86 Pull x86 platform driver fixes from Andy Shevchenko: - fix a couple of Mellanox driver enumeration issues - fix ASUS laptop regression with backlight - fix Dell computers that got a wrong mode (tablet versus laptop) after resume * tag 'platform-drivers-x86-v5.2-3' of git://git.infradead.org/linux-platform-drivers-x86: platform/mellanox: mlxreg-hotplug: Add devm_free_irq call to remove flow platform/x86: mlx-platform: Fix parent device in i2c-mux-reg device registration platform/x86: intel-vbtn: Report switch events when event wakes device platform/x86: asus-wmi: Only Tell EC the OS will handle display hotkeys from asus_nb_wmi commit ff39074b1d4e727c299ccfd1588f9cca17a59c86 Merge: fa1827d7731a 5f54a85db5df Author: Linus Torvalds Date: Sat Jun 15 07:34:23 2019 -1000 Merge tag 'usb-5.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb Pull USB fixes from Greg KH: "Here are some small USB driver fixes for 5.2-rc5 Nothing major, just some small gadget fixes, usb-serial new device ids, a few new quirks, and some small fixes for some regressions that have been found after the big 5.2-rc1 merge. All of these have been in linux-next for a while with no reported issues" * tag 'usb-5.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: usb: typec: Make sure an alt mode exist before getting its partner usb: gadget: udc: lpc32xx: fix return value check in lpc32xx_udc_probe() usb: gadget: dwc2: fix zlp handling usb: dwc2: Set actual frame number for completed ISOC transfer for none DDMA usb: gadget: udc: lpc32xx: allocate descriptor with GFP_ATOMIC usb: gadget: fusb300_udc: Fix memory leak of fusb300->ep[i] usb: phy: mxs: Disable external charger detect in mxs_phy_hw_init() usb: dwc2: Fix DMA cache alignment issues usb: dwc2: host: Fix wMaxPacketSize handling (fix webcam regression) USB: Fix chipmunk-like voice when using Logitech C270 for recording audio. USB: usb-storage: Add new ID to ums-realtek usb: typec: ucsi: ccg: fix memory leak in do_flash USB: serial: option: add Telit 0x1260 and 0x1261 compositions USB: serial: pl2303: add Allied Telesis VT-Kit3 USB: serial: option: add support for Simcom SIM7500/SIM7600 RNDIS mode commit fa1827d7731ac24f44309ddc2ca806650912bf0e Merge: 6a71398c6aea c21f5a9ed85c Author: Linus Torvalds Date: Sat Jun 15 07:29:32 2019 -1000 Merge tag 'powerpc-5.2-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc fixes from Michael Ellerman: "One fix for a regression introduced by our 32-bit KASAN support, which broke booting on machines with "bootx" early debugging enabled. A fix for a bug which broke kexec on 32-bit, introduced by changes to the 32-bit STRICT_KERNEL_RWX support in v5.1. Finally two fixes going to stable for our THP split/collapse handling, discovered by Nick. The first fixes random crashes and/or corruption in guests under sufficient load. Thanks to: Nicholas Piggin, Christophe Leroy, Aaro Koskinen, Mathieu Malaterre" * tag 'powerpc-5.2-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: powerpc/32s: fix booting with CONFIG_PPC_EARLY_DEBUG_BOOTX powerpc/64s: __find_linux_pte() synchronization vs pmdp_invalidate() powerpc/64s: Fix THP PMD collapse serialisation powerpc: Fix kexec failure on book3s/32 commit 6a71398c6aead255efe445ea96d52b33f0d5f0b2 Merge: 0011572c8830 04e03d9a616c Author: Linus Torvalds Date: Sat Jun 15 07:24:11 2019 -1000 Merge tag 'trace-v5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull tracing fixes from Steven Rostedt: - Out of range read of stack trace output - Fix for NULL pointer dereference in trace_uprobe_create() - Fix to a livepatching / ftrace permission race in the module code - Fix for NULL pointer dereference in free_ftrace_func_mapper() - A couple of build warning clean ups * tag 'trace-v5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: ftrace: Fix NULL pointer dereference in free_ftrace_func_mapper() module: Fix livepatch/ftrace module text permissions race tracing/uprobe: Fix obsolete comment on trace_uprobe_create() tracing/uprobe: Fix NULL pointer dereference in trace_uprobe_create() tracing: Make two symbols static tracing: avoid build warning with HAVE_NOP_MCOUNT tracing: Fix out-of-range read in trace_stack_print() commit 82f6e266f8123d7938713c0e10c03aa655b3e68a Author: Christophe Leroy Date: Thu May 23 08:39:27 2019 +0000 powerpc/32: fix build failure on book3e with KVM Build failure was introduced by the commit identified below, due to missed macro expension leading to wrong called function's name. arch/powerpc/kernel/head_fsl_booke.o: In function `SystemCall': arch/powerpc/kernel/head_fsl_booke.S:416: undefined reference to `kvmppc_handler_BOOKE_INTERRUPT_SYSCALL_SPRN_SRR1' Makefile:1052: recipe for target 'vmlinux' failed The called function should be kvmppc_handler_8_0x01B(). This patch fixes it. Reported-by: Paul Mackerras Fixes: 1a4b739bbb4f ("powerpc/32: implement fast entry for syscalls on BOOKE") Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit e8732ffa2e096d433c3f2349b871d43ed0d39f5c Author: Christophe Leroy Date: Thu Jun 13 13:52:30 2019 +0000 powerpc/booke: fix fast syscall entry on SMP Use r10 instead of r9 to calculate CPU offset as r9 contains the value from SRR1 which is used later. Fixes: 1a4b739bbb4f ("powerpc/32: implement fast entry for syscalls on BOOKE") Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit b7f8b440f3001cc1775c028f0a783786113c2ae3 Author: Christophe Leroy Date: Tue Jun 11 15:47:20 2019 +0000 powerpc/32s: fix initial setup of segment registers on secondary CPU The patch referenced below moved the loading of segment registers out of load_up_mmu() in order to do it earlier in the boot sequence. However, the secondary CPU still needs it to be done when loading up the MMU. Reported-by: Erhard F. Fixes: 215b823707ce ("powerpc/32s: set up an early static hash table for KASAN") Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 78f4e932f7760d965fb1569025d1576ab77557c5 Author: Borislav Petkov Date: Thu Jun 13 15:49:02 2019 +0200 x86/microcode, cpuhotplug: Add a microcode loader CPU hotplug callback Adric Blake reported the following warning during suspend-resume: Enabling non-boot CPUs ... x86: Booting SMP configuration: smpboot: Booting Node 0 Processor 1 APIC 0x2 unchecked MSR access error: WRMSR to 0x10f (tried to write 0x0000000000000000) \ at rIP: 0xffffffff8d267924 (native_write_msr+0x4/0x20) Call Trace: intel_set_tfa intel_pmu_cpu_starting ? x86_pmu_dead_cpu x86_pmu_starting_cpu cpuhp_invoke_callback ? _raw_spin_lock_irqsave notify_cpu_starting start_secondary secondary_startup_64 microcode: sig=0x806ea, pf=0x80, revision=0x96 microcode: updated to revision 0xb4, date = 2019-04-01 CPU1 is up The MSR in question is MSR_TFA_RTM_FORCE_ABORT and that MSR is emulated by microcode. The log above shows that the microcode loader callback happens after the PMU restoration, leading to the conjecture that because the microcode hasn't been updated yet, that MSR is not present yet, leading to the #GP. Add a microcode loader-specific hotplug vector which comes before the PERF vectors and thus executes earlier and makes sure the MSR is present. Fixes: 400816f60c54 ("perf/x86/intel: Implement support for TSX Force Abort") Reported-by: Adric Blake Signed-off-by: Borislav Petkov Reviewed-by: Thomas Gleixner Cc: Peter Zijlstra Cc: Cc: x86@kernel.org Link: https://bugzilla.kernel.org/show_bug.cgi?id=203637 commit 0011572c883082a95e02d47f45fc4a42dc0e8634 Merge: 6aa7a22b9790 d477f8c202d1 Author: Linus Torvalds Date: Fri Jun 14 17:46:14 2019 -1000 Merge branch 'for-5.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup Pull cgroup fixes from Tejun Heo: "This has an unusually high density of tricky fixes: - task_get_css() could deadlock when it races against a dying cgroup. - cgroup.procs didn't list thread group leaders with live threads. This could mislead readers to think that a cgroup is empty when it's not. Fixed by making PROCS iterator include dead tasks. I made a couple mistakes making this change and this pull request contains a couple follow-up patches. - When cpusets run out of online cpus, it updates cpusmasks of member tasks in bizarre ways. Joel improved the behavior significantly" * 'for-5.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: cpuset: restore sanity to cpuset_cpus_allowed_fallback() cgroup: Fix css_task_iter_advance_css_set() cset skip condition cgroup: css_task_iter_skip()'d iterators must be advanced before accessed cgroup: Include dying leaders with live threads in PROCS iterations cgroup: Implement css_task_iter_skip() cgroup: Call cgroup_release() before __exit_signal() docs cgroups: add another example size for hugetlb cgroup: Use css_tryget() instead of css_tryget_online() in task_get_css() commit 6aa7a22b97907851972d7f39aae79dc105eba78b Merge: 406652440172 e14c5873d2a3 Author: Linus Torvalds Date: Fri Jun 14 17:34:45 2019 -1000 Merge tag 'drm-fixes-2019-06-14' of git://anongit.freedesktop.org/drm/drm Pull drm fixes from Daniel Vetter: "Nothing unsettling here, also not aware of anything serious still pending. The edid override regression fix took a bit longer since this seems to be an area with an overabundance of bad options. But the fix we have now seems like a good path forward. Next week it should be back to Dave. Summary: - fix regression on amdgpu on SI - fix edid override regression - driver fixes: amdgpu, i915, mediatek, meson, panfrost - fix writecombine for vmap in gem-shmem helper (used by panfrost) - add more panel quirks" * tag 'drm-fixes-2019-06-14' of git://anongit.freedesktop.org/drm/drm: (25 commits) drm/amdgpu: return 0 by default in amdgpu_pm_load_smu_firmware drm/amdgpu: Fix bounds checking in amdgpu_ras_is_supported() drm: add fallback override/firmware EDID modes workaround drm/edid: abstract override/firmware EDID retrieval drm/i915/perf: fix whitelist on Gen10+ drm/i915/sdvo: Implement proper HDMI audio support for SDVO drm/i915: Fix per-pixel alpha with CCS drm/i915/dmc: protect against reading random memory drm/i915/dsi: Use a fuzzy check for burst mode clock check drm/amdgpu/{uvd,vcn}: fetch ring's read_ptr after alloc drm/panfrost: Require the simple_ondemand governor drm/panfrost: make devfreq optional again drm/gem_shmem: Use a writecombine mapping for ->vaddr drm: panel-orientation-quirks: Add quirk for GPD MicroPC drm: panel-orientation-quirks: Add quirk for GPD pocket2 drm/meson: fix G12A primary plane disabling drm/meson: fix primary plane disabling drm/meson: fix G12A HDMI PLL settings for 4K60 1000/1001 variations drm/mediatek: call mtk_dsi_stop() after mtk_drm_crtc_atomic_disable() drm/mediatek: clear num_pipes when unbind driver ... commit 4066524401724babc5710b0a6be88021a081874a Merge: 1ed1fa5f9c31 2741b6723bf6 Author: Linus Torvalds Date: Fri Jun 14 17:27:12 2019 -1000 Merge tag 'gfs2-v5.2.fixes2' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 Pull gfs2 fix from Andreas Gruenbacher: "Fix rounding error in gfs2_iomap_page_prepare" * tag 'gfs2-v5.2.fixes2' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2: gfs2: Fix rounding error in gfs2_iomap_page_prepare commit 35fc07aee8f6d55aeacdbfdccc425e684737f741 Merge: 9a33629ba6b2 ce27ec60648d Author: David S. Miller Date: Fri Jun 14 20:18:28 2019 -0700 Merge branch 'tcp-add-three-static-keys' Eric Dumazet says: ==================== tcp: add three static keys Recent addition of per TCP socket rx/tx cache brought regressions for some workloads, as reported by Feng Tang. It seems better to make them opt-in, before we adopt better heuristics. The last patch adds high_order_alloc_disable sysctl to ask TCP sendmsg() to exclusively use order-0 allocations, as mm layer has specific optimizations. ==================== Signed-off-by: David S. Miller commit ce27ec60648d8e066227cb2f58b1d3d4f7253d08 Author: Eric Dumazet Date: Fri Jun 14 16:22:21 2019 -0700 net: add high_order_alloc_disable sysctl/static key >From linux-3.7, (commit 5640f7685831 "net: use a per task frag allocator") TCP sendmsg() has preferred using order-3 allocations. While it gives good results for most cases, we had reports that heavy uses of TCP over loopback were hitting a spinlock contention in page allocations/freeing. This commits adds a sysctl so that admins can opt-in for order-0 allocations. Hopefully mm layer might optimize order-3 allocations in the future since it could give us a nice boost (see 8 lines of following benchmark) The following benchmark shows a win when more than 8 TCP_STREAM threads are running (56 x86 cores server in my tests) for thr in {1..30} do sysctl -wq net.core.high_order_alloc_disable=0 T0=`./super_netperf $thr -H 127.0.0.1 -l 15` sysctl -wq net.core.high_order_alloc_disable=1 T1=`./super_netperf $thr -H 127.0.0.1 -l 15` echo $thr:$T0:$T1 done 1: 49979: 37267 2: 98745: 76286 3: 141088: 110051 4: 177414: 144772 5: 197587: 173563 6: 215377: 208448 7: 241061: 234087 8: 267155: 263373 9: 295069: 297402 10: 312393: 335213 11: 340462: 368778 12: 371366: 403954 13: 412344: 443713 14: 426617: 473580 15: 474418: 507861 16: 503261: 538539 17: 522331: 563096 18: 532409: 567084 19: 550824: 605240 20: 525493: 641988 21: 564574: 665843 22: 567349: 690868 23: 583846: 710917 24: 588715: 736306 25: 603212: 763494 26: 604083: 792654 27: 602241: 796450 28: 604291: 797993 29: 611610: 833249 30: 577356: 841062 Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 0b7d7f6b22084a3156f267c85303908a8f4c9a08 Author: Eric Dumazet Date: Fri Jun 14 16:22:20 2019 -0700 tcp: add tcp_tx_skb_cache sysctl Feng Tang reported a performance regression after introduction of per TCP socket tx/rx caches, for TCP over loopback (netperf) There is high chance the regression is caused by a change on how well the 32 KB per-thread page (current->task_frag) can be recycled, and lack of pcp caches for order-3 pages. I could not reproduce the regression myself, cpus all being spinning on the mm spinlocks for page allocs/freeing, regardless of enabling or disabling the per tcp socket caches. It seems best to disable the feature by default, and let admins enabling it. MM layer either needs to provide scalable order-3 pages allocations, or could attempt a trylock on zone->lock if the caller only attempts to get a high-order page and is able to fallback to order-0 ones in case of pressure. Tests run on a 56 cores host (112 hyper threads) - 35.49% netperf [kernel.vmlinux] [k] queued_spin_lock_slowpath - 35.49% queued_spin_lock_slowpath - 18.18% get_page_from_freelist - __alloc_pages_nodemask - 18.18% alloc_pages_current skb_page_frag_refill sk_page_frag_refill tcp_sendmsg_locked tcp_sendmsg inet_sendmsg sock_sendmsg __sys_sendto __x64_sys_sendto do_syscall_64 entry_SYSCALL_64_after_hwframe __libc_send + 17.31% __free_pages_ok + 31.43% swapper [kernel.vmlinux] [k] intel_idle + 9.12% netperf [kernel.vmlinux] [k] copy_user_enhanced_fast_string + 6.53% netserver [kernel.vmlinux] [k] copy_user_enhanced_fast_string + 0.69% netserver [kernel.vmlinux] [k] queued_spin_lock_slowpath + 0.68% netperf [kernel.vmlinux] [k] skb_release_data + 0.52% netperf [kernel.vmlinux] [k] tcp_sendmsg_locked 0.46% netperf [kernel.vmlinux] [k] _raw_spin_lock_irqsave Fixes: 472c2e07eef0 ("tcp: add one skb cache for tx") Signed-off-by: Eric Dumazet Reported-by: Feng Tang Signed-off-by: David S. Miller commit ede61ca474a0348b975d9824565b66c7595461de Author: Eric Dumazet Date: Fri Jun 14 16:22:19 2019 -0700 tcp: add tcp_rx_skb_cache sysctl Instead of relying on rps_needed, it is safer to use a separate static key, since we do not want to enable TCP rx_skb_cache by default. This feature can cause huge increase of memory usage on hosts with millions of sockets. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit a8e11e5c5611a9f70470aebeb2c1dd6132f609d7 Author: Eric Dumazet Date: Fri Jun 14 16:22:18 2019 -0700 sysctl: define proc_do_static_key() Convert proc_dointvec_minmax_bpf_stats() into a more generic helper, since we are going to use jump labels more often. Note that sysctl_bpf_stats_enabled is removed, since it is no longer needed/used. Signed-off-by: Eric Dumazet Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller commit 9a33629ba6b26caebd73e3c581ba1e6068c696a7 Author: Haiyang Zhang Date: Thu Jun 13 21:06:53 2019 +0000 hv_netvsc: Set probe mode to sync For better consistency of synthetic NIC names, we set the probe mode to PROBE_FORCE_SYNCHRONOUS. So the names can be aligned with the vmbus channel offer sequence. Fixes: af0a5646cb8d ("use the new async probing feature for the hyperv drivers") Signed-off-by: Haiyang Zhang Signed-off-by: David S. Miller commit 99815f5031db36414178f45e3009fb5f0e219dd4 Author: Vlad Buslov Date: Thu Jun 13 17:54:04 2019 +0300 net: sched: flower: don't call synchronize_rcu() on mask creation Current flower mask creating code assumes that temporary mask that is used when inserting new filter is stack allocated. To prevent race condition with data patch synchronize_rcu() is called every time fl_create_new_mask() replaces temporary stack allocated mask. As reported by Jiri, this increases runtime of creating 20000 flower classifiers from 4 seconds to 163 seconds. However, this design is no longer necessary since temporary mask was converted to be dynamically allocated by commit 2cddd2014782 ("net/sched: cls_flower: allocate mask dynamically in fl_change()"). Remove synchronize_rcu() calls from mask creation code. Instead, refactor fl_change() to always deallocate temporary mask with rcu grace period. Fixes: 195c234d15c9 ("net: sched: flower: handle concurrent mask insertion") Reported-by: Jiri Pirko Signed-off-by: Vlad Buslov Tested-by: Jiri Pirko Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit f0c03ee0ec664e07e0ec1ead7091cbe53f0f321c Author: Anders Roxell Date: Thu Jun 13 13:35:03 2019 +0200 net: dsa: fix warning same module names When building with CONFIG_NET_DSA_REALTEK_SMI and CONFIG_REALTEK_PHY enabled as loadable modules, we see the following warning: warning: same module names found: drivers/net/phy/realtek.ko drivers/net/dsa/realtek.ko Rework so the driver name is realtek-smi instead of realtek. Reviewed-by: Linus Walleij Reviewed-by: Andrew Lunn Signed-off-by: Anders Roxell Signed-off-by: David S. Miller commit ce950f1050cece5e406a5cde723c69bba60e1b26 Author: Neil Horman Date: Thu Jun 13 06:35:59 2019 -0400 sctp: Free cookie before we memdup a new one Based on comments from Xin, even after fixes for our recent syzbot report of cookie memory leaks, its possible to get a resend of an INIT chunk which would lead to us leaking cookie memory. To ensure that we don't leak cookie memory, free any previously allocated cookie first. Change notes v1->v2 update subsystem tag in subject (davem) repeat kfree check for peer_random and peer_hmacs (xin) v2->v3 net->sctp also free peer_chunks v3->v4 fix subject tags v4->v5 remove cut line Signed-off-by: Neil Horman Reported-by: syzbot+f7e9153b037eac9b1df8@syzkaller.appspotmail.com CC: Marcelo Ricardo Leitner CC: Xin Long CC: "David S. Miller" CC: netdev@vger.kernel.org Acked-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller commit 6bb9e376c2a4cc5120c3bf5fd3048b9a0a6ec1f8 Author: Robert Hancock Date: Wed Jun 12 14:33:32 2019 -0600 net: dsa: microchip: Don't try to read stats for unused ports If some of the switch ports were not listed in the device tree, due to being unused, the ksz_mib_read_work function ended up accessing a NULL dp->slave pointer and causing an oops. Skip checking statistics for any unused ports. Fixes: 7c6ff470aa867f53 ("net: dsa: microchip: add MIB counter reading support") Signed-off-by: Robert Hancock Reviewed-by: Vivien Didelot Reviewed-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 2309f51797106b3643b22abced39ff443df2407d Merge: 2a2af5e6e6f5 36815b416fa4 Author: David S. Miller Date: Fri Jun 14 19:05:58 2019 -0700 Merge branch 'qmi_wwan-fix-QMAP-handling' Reinhard Speyerer says: ==================== qmi_wwan: fix QMAP handling This series addresses the following issues observed when using the QMAP support of the qmi_wwan driver: 1. The QMAP code in the qmi_wwan driver is based on the CodeAurora GobiNet driver ([1], [2]) which does not process QMAP padding in the RX path correctly. This causes qmimux_rx_fixup() to pass incorrect data to the IP stack when padding is used. 2. qmimux devices currently lack proper network device usage statistics. 3. RCU stalls on device disconnect with QMAP activated like this # echo Y > /sys/class/net/wwan0/qmi/raw_ip # echo 1 > /sys/class/net/wwan0/qmi/add_mux # echo 2 > /sys/class/net/wwan0/qmi/add_mux # echo 3 > /sys/class/net/wwan0/qmi/add_mux have been observed in certain setups: [ 2273.676593] option1 ttyUSB16: GSM modem (1-port) converter now disconnected from ttyUSB16 [ 2273.676617] option 6-1.2:1.0: device disconnected [ 2273.676774] WARNING: CPU: 1 PID: 141 at kernel/rcu/tree_plugin.h:342 rcu_note_context_switch+0x2a/0x3d0 [ 2273.676776] Modules linked in: option qmi_wwan cdc_mbim cdc_ncm qcserial cdc_wdm usb_wwan sierra sierra_net usbnet mii edd coretemp iptable_mangle ip6_tables iptable_filter ip_tables cdc_acm dm_mod dax iTCO_wdt evdev iTCO_vendor_support sg ftdi_sio usbserial e1000e ptp pps_core i2c_i801 ehci_pci button lpc_ich i2c_core mfd_core uhci_hcd ehci_hcd rtc_cmos usbcore usb_common sd_mod fan ata_piix thermal [ 2273.676817] CPU: 1 PID: 141 Comm: kworker/1:1 Not tainted 4.19.38-rsp-1 #1 [ 2273.676819] Hardware name: Not Applicable Not Applicable /CX-GS/GM45-GL40 , BIOS V1.11 03/23/2011 [ 2273.676828] Workqueue: usb_hub_wq hub_event [usbcore] [ 2273.676832] EIP: rcu_note_context_switch+0x2a/0x3d0 [ 2273.676834] Code: 55 89 e5 57 56 89 c6 53 83 ec 14 89 45 f0 e8 5d ff ff ff 89 f0 64 8b 3d 24 a6 86 c0 84 c0 8b 87 04 02 00 00 75 7a 85 c0 7e 7a <0f> 0b 80 bf 08 02 00 00 00 0f 84 87 00 00 00 e8 b2 e2 ff ff bb dc [ 2273.676836] EAX: 00000001 EBX: f614bc00 ECX: 00000001 EDX: c0715b81 [ 2273.676838] ESI: 00000000 EDI: f18beb40 EBP: f1a3dc20 ESP: f1a3dc00 [ 2273.676840] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 EFLAGS: 00010002 [ 2273.676842] CR0: 80050033 CR2: b7e97230 CR3: 2f9c4000 CR4: 000406b0 [ 2273.676843] Call Trace: [ 2273.676847] ? preempt_count_add+0xa5/0xc0 [ 2273.676852] __schedule+0x4e/0x4f0 [ 2273.676855] ? __queue_work+0xf1/0x2a0 [ 2273.676858] ? _raw_spin_lock_irqsave+0x14/0x40 [ 2273.676860] ? preempt_count_add+0x52/0xc0 [ 2273.676862] schedule+0x33/0x80 [ 2273.676865] _synchronize_rcu_expedited+0x24e/0x280 [ 2273.676867] ? rcu_accelerate_cbs_unlocked+0x70/0x70 [ 2273.676871] ? wait_woken+0x70/0x70 [ 2273.676873] ? rcu_accelerate_cbs_unlocked+0x70/0x70 [ 2273.676875] ? _synchronize_rcu_expedited+0x280/0x280 [ 2273.676877] synchronize_rcu_expedited+0x22/0x30 [ 2273.676881] synchronize_net+0x25/0x30 [ 2273.676885] dev_deactivate_many+0x133/0x230 [ 2273.676887] ? preempt_count_add+0xa5/0xc0 [ 2273.676890] __dev_close_many+0x4d/0xc0 [ 2273.676892] ? skb_dequeue+0x40/0x50 [ 2273.676895] dev_close_many+0x5d/0xd0 [ 2273.676898] rollback_registered_many+0xbf/0x4c0 [ 2273.676901] ? raw_notifier_call_chain+0x1a/0x20 [ 2273.676904] ? call_netdevice_notifiers_info+0x23/0x60 [ 2273.676906] ? netdev_master_upper_dev_get+0xe/0x70 [ 2273.676908] rollback_registered+0x1f/0x30 [ 2273.676911] unregister_netdevice_queue+0x47/0xb0 [ 2273.676915] qmimux_unregister_device+0x1f/0x30 [qmi_wwan] [ 2273.676917] qmi_wwan_disconnect+0x5d/0x90 [qmi_wwan] ... [ 2273.677001] ---[ end trace 0fcc5f88496b485a ]--- [ 2294.679136] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks: [ 2294.679140] rcu: Tasks blocked on level-0 rcu_node (CPUs 0-1): P141 [ 2294.679144] rcu: (detected by 0, t=21002 jiffies, g=265857, q=8446) [ 2294.679148] kworker/1:1 D 0 141 2 0x80000000 In addition the permitted QMAP mux_id value range is extended for compatibility with ip(8) and the rmnet driver. Reinhard [1]: https://portland.source.codeaurora.org/patches/quic/gobi [2]: https://portland.source.codeaurora.org/quic/qsdk/oss/lklm/gobinet/ ==================== Tested-by: Daniele Palmas Acked-by: Bjørn Mork Signed-off-by: David S. Miller commit 36815b416fa48766ac5a98e4b2dc3ebc5887222e Author: Reinhard Speyerer Date: Wed Jun 12 19:03:50 2019 +0200 qmi_wwan: extend permitted QMAP mux_id value range Permit mux_id values up to 254 to be used in qmimux_register_device() for compatibility with ip(8) and the rmnet driver. Fixes: c6adf77953bc ("net: usb: qmi_wwan: add qmap mux protocol support") Cc: Daniele Palmas Signed-off-by: Reinhard Speyerer Signed-off-by: David S. Miller commit a8fdde1cb830e560208af42b6c10750137f53eb3 Author: Reinhard Speyerer Date: Wed Jun 12 19:03:15 2019 +0200 qmi_wwan: avoid RCU stalls on device disconnect when in QMAP mode Switch qmimux_unregister_device() and qmi_wwan_disconnect() to use unregister_netdevice_queue() and unregister_netdevice_many() instead of unregister_netdevice(). This avoids RCU stalls which have been observed on device disconnect in certain setups otherwise. Fixes: c6adf77953bc ("net: usb: qmi_wwan: add qmap mux protocol support") Cc: Daniele Palmas Signed-off-by: Reinhard Speyerer Signed-off-by: David S. Miller commit 44f82312fe9113bab6642f4d0eab6b1b7902b6e1 Author: Reinhard Speyerer Date: Wed Jun 12 19:02:46 2019 +0200 qmi_wwan: add network device usage statistics for qmimux devices Add proper network device usage statistics for qmimux devices instead of reporting all-zero values for them. Fixes: c6adf77953bc ("net: usb: qmi_wwan: add qmap mux protocol support") Cc: Daniele Palmas Signed-off-by: Reinhard Speyerer Signed-off-by: David S. Miller commit 61356088ace1866a847a727d4d40da7bf00b67fc Author: Reinhard Speyerer Date: Wed Jun 12 19:02:13 2019 +0200 qmi_wwan: add support for QMAP padding in the RX path The QMAP code in the qmi_wwan driver is based on the CodeAurora GobiNet driver which does not process QMAP padding in the RX path correctly. Add support for QMAP padding to qmimux_rx_fixup() according to the description of the rmnet driver. Fixes: c6adf77953bc ("net: usb: qmi_wwan: add qmap mux protocol support") Cc: Daniele Palmas Signed-off-by: Reinhard Speyerer Signed-off-by: David S. Miller commit 1ed1fa5f9c311a74f031cabb18a415b4defdfa03 Merge: 7b10315128c6 625d7d351887 Author: Linus Torvalds Date: Fri Jun 14 15:52:51 2019 -1000 Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fix from James Bottomley: "A single bug fix for hpsa. The user visible consequences aren't clear, but the ioaccel2 raid acceleration may misfire on the malformed request assuming the payload is big enough to require chaining (more than 31 sg entries)" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: hpsa: correct ioaccel2 chaining commit 7b10315128c697b32c3a920cd79a8301c7466637 Merge: 5dcedf4600f8 1d0c06513bd4 Author: Linus Torvalds Date: Fri Jun 14 15:41:18 2019 -1000 Merge tag 'for-linus-20190614' of git://git.kernel.dk/linux-block Pull block fixes from Jens Axboe: - Remove references to old schedulers for the scheduler switching and blkio controller documentation (Andreas) - Kill duplicate check for report zone for null_blk (Chaitanya) - Two bcache fixes (Coly) - Ensure that mq-deadline is selected if zoned block device is enabled, as we need that to support them (Damien) - Fix io_uring memory leak (Eric) - ps3vram fallout from LBDAF removal (Geert) - Redundant blk-mq debugfs debugfs_create return check cleanup (Greg) - Extend NOPLM quirk for ST1000LM024 drives (Hans) - Remove error path warning that can now trigger after the queue removal/addition fixes (Ming) * tag 'for-linus-20190614' of git://git.kernel.dk/linux-block: block/ps3vram: Use %llu to format sector_t after LBDAF removal libata: Extend quirks for the ST1000LM024 drives with NOLPM quirk bcache: only set BCACHE_DEV_WB_RUNNING when cached device attached bcache: fix stack corruption by PRECEDING_KEY() blk-mq: remove WARN_ON(!q->elevator) from blk_mq_sched_free_requests blkio-controller.txt: Remove references to CFQ block/switching-sched.txt: Update to blk-mq schedulers null_blk: remove duplicate check for report zone blk-mq: no need to check return value of debugfs_create functions io_uring: fix memory leak of UNIX domain socket inode block: force select mq-deadline for zoned block devices commit 5dcedf4600f8708150b89485d25cead88bff08a4 Merge: 6e7739fc938c a0cac264a86f Author: Linus Torvalds Date: Fri Jun 14 15:25:27 2019 -1000 Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux Pull i2c fixes from Wolfram Sang: "I2C has two simple but wanted driver fixes for you" * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: i2c: pca-platform: Fix GPIO lookup code i2c: acorn: fix i2c warning commit fe8d9571dc50232b569242fac7ea6332a654f186 Author: Alexei Starovoitov Date: Fri Jun 14 15:43:28 2019 -0700 bpf, x64: fix stack layout of JITed bpf code Since commit 177366bf7ceb the %rbp stopped pointing to %rbp of the previous stack frame. That broke frame pointer based stack unwinding. This commit is a partial revert of it. Note that the location of tail_call_cnt is fixed, since the verifier enforces MAX_BPF_STACK stack size for programs with tail calls. Fixes: 177366bf7ceb ("bpf: change x86 JITed program stack layout") Signed-off-by: Alexei Starovoitov commit 6e7739fc938c1ec58d321f70ea41d9548a4cca0f Author: Casey Schaufler Date: Fri May 31 11:53:33 2019 +0100 Smack: Restore the smackfsdef mount option and add missing prefixes The 5.1 mount system rework changed the smackfsdef mount option to smackfsdefault. This fixes the regression by making smackfsdef treated the same way as smackfsdefault. Also fix the smack_param_specs[] to have "smack" prefixes on all the names. This isn't visible to a user unless they either: (a) Try to mount a filesystem that's converted to the internal mount API and that implements the ->parse_monolithic() context operation - and only then if they call security_fs_context_parse_param() rather than security_sb_eat_lsm_opts(). There are no examples of this upstream yet, but nfs will probably want to do this for nfs2 or nfs3. (b) Use fsconfig() to configure the filesystem - in which case security_fs_context_parse_param() will be called. This issue is that smack_sb_eat_lsm_opts() checks for the "smack" prefix on the options, but smack_fs_context_parse_param() does not. Fixes: c3300aaf95fb ("smack: get rid of match_token()") Fixes: 2febd254adc4 ("smack: Implement filesystem context security hooks") Cc: stable@vger.kernel.org Reported-by: Jose Bollo Signed-off-by: Casey Schaufler Signed-off-by: David Howells Tested-by: Casey Schaufler Signed-off-by: Linus Torvalds commit 86723c8640633bee4b4588d3c7784ee7a0032f65 Author: Toshiaki Makita Date: Fri Jun 14 17:20:15 2019 +0900 bpf, devmap: Add missing RCU read lock on flush .ndo_xdp_xmit() assumes it is called under RCU. For example virtio_net uses RCU to detect it has setup the resources for tx. The assumption accidentally broke when introducing bulk queue in devmap. Fixes: 5d053f9da431 ("bpf: devmap prepare xdp frames for bulking") Reported-by: David Ahern Signed-off-by: Toshiaki Makita Signed-off-by: Daniel Borkmann commit edabf4d9dd905acd60048ea1579943801e3a4876 Author: Toshiaki Makita Date: Fri Jun 14 17:20:14 2019 +0900 bpf, devmap: Add missing bulk queue free dev_map_free() forgot to free bulk queue when freeing its entries. Fixes: 5d053f9da431 ("bpf: devmap prepare xdp frames for bulking") Signed-off-by: Toshiaki Makita Acked-by: Jesper Dangaard Brouer Signed-off-by: Daniel Borkmann commit d4dd153d551634683fccf8881f606fa9f3dfa1ef Author: Toshiaki Makita Date: Fri Jun 14 17:20:13 2019 +0900 bpf, devmap: Fix premature entry free on destroying map dev_map_free() waits for flush_needed bitmap to be empty in order to ensure all flush operations have completed before freeing its entries. However the corresponding clear_bit() was called before using the entries, so the entries could be used after free. All access to the entries needs to be done before clearing the bit. It seems commit a5e2da6e9787 ("bpf: netdev is never null in __dev_map_flush") accidentally changed the clear_bit() and memory access order. Note that the problem happens only in __dev_map_flush(), not in dev_map_flush_old(). dev_map_flush_old() is called only after nulling out the corresponding netdev_map entry, so dev_map_free() never frees the entry thus no such race happens there. Fixes: a5e2da6e9787 ("bpf: netdev is never null in __dev_map_flush") Signed-off-by: Toshiaki Makita Signed-off-by: Daniel Borkmann commit 04e03d9a616c19a47178eaca835358610e63a1dd Author: Wei Li Date: Thu Jun 6 11:17:54 2019 +0800 ftrace: Fix NULL pointer dereference in free_ftrace_func_mapper() The mapper may be NULL when called from register_ftrace_function_probe() with probe->data == NULL. This issue can be reproduced as follow (it may be covered by compiler optimization sometime): / # cat /sys/kernel/debug/tracing/set_ftrace_filter #### all functions enabled #### / # echo foo_bar:dump > /sys/kernel/debug/tracing/set_ftrace_filter [ 206.949100] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 [ 206.952402] Mem abort info: [ 206.952819] ESR = 0x96000006 [ 206.955326] Exception class = DABT (current EL), IL = 32 bits [ 206.955844] SET = 0, FnV = 0 [ 206.956272] EA = 0, S1PTW = 0 [ 206.956652] Data abort info: [ 206.957320] ISV = 0, ISS = 0x00000006 [ 206.959271] CM = 0, WnR = 0 [ 206.959938] user pgtable: 4k pages, 48-bit VAs, pgdp=0000000419f3a000 [ 206.960483] [0000000000000000] pgd=0000000411a87003, pud=0000000411a83003, pmd=0000000000000000 [ 206.964953] Internal error: Oops: 96000006 [#1] SMP [ 206.971122] Dumping ftrace buffer: [ 206.973677] (ftrace buffer empty) [ 206.975258] Modules linked in: [ 206.976631] Process sh (pid: 281, stack limit = 0x(____ptrval____)) [ 206.978449] CPU: 10 PID: 281 Comm: sh Not tainted 5.2.0-rc1+ #17 [ 206.978955] Hardware name: linux,dummy-virt (DT) [ 206.979883] pstate: 60000005 (nZCv daif -PAN -UAO) [ 206.980499] pc : free_ftrace_func_mapper+0x2c/0x118 [ 206.980874] lr : ftrace_count_free+0x68/0x80 [ 206.982539] sp : ffff0000182f3ab0 [ 206.983102] x29: ffff0000182f3ab0 x28: ffff8003d0ec1700 [ 206.983632] x27: ffff000013054b40 x26: 0000000000000001 [ 206.984000] x25: ffff00001385f000 x24: 0000000000000000 [ 206.984394] x23: ffff000013453000 x22: ffff000013054000 [ 206.984775] x21: 0000000000000000 x20: ffff00001385fe28 [ 206.986575] x19: ffff000013872c30 x18: 0000000000000000 [ 206.987111] x17: 0000000000000000 x16: 0000000000000000 [ 206.987491] x15: ffffffffffffffb0 x14: 0000000000000000 [ 206.987850] x13: 000000000017430e x12: 0000000000000580 [ 206.988251] x11: 0000000000000000 x10: cccccccccccccccc [ 206.988740] x9 : 0000000000000000 x8 : ffff000013917550 [ 206.990198] x7 : ffff000012fac2e8 x6 : ffff000012fac000 [ 206.991008] x5 : ffff0000103da588 x4 : 0000000000000001 [ 206.991395] x3 : 0000000000000001 x2 : ffff000013872a28 [ 206.991771] x1 : 0000000000000000 x0 : 0000000000000000 [ 206.992557] Call trace: [ 206.993101] free_ftrace_func_mapper+0x2c/0x118 [ 206.994827] ftrace_count_free+0x68/0x80 [ 206.995238] release_probe+0xfc/0x1d0 [ 206.995555] register_ftrace_function_probe+0x4a8/0x868 [ 206.995923] ftrace_trace_probe_callback.isra.4+0xb8/0x180 [ 206.996330] ftrace_dump_callback+0x50/0x70 [ 206.996663] ftrace_regex_write.isra.29+0x290/0x3a8 [ 206.997157] ftrace_filter_write+0x44/0x60 [ 206.998971] __vfs_write+0x64/0xf0 [ 206.999285] vfs_write+0x14c/0x2f0 [ 206.999591] ksys_write+0xbc/0x1b0 [ 206.999888] __arm64_sys_write+0x3c/0x58 [ 207.000246] el0_svc_common.constprop.0+0x408/0x5f0 [ 207.000607] el0_svc_handler+0x144/0x1c8 [ 207.000916] el0_svc+0x8/0xc [ 207.003699] Code: aa0003f8 a9025bf5 aa0103f5 f946ea80 (f9400303) [ 207.008388] ---[ end trace 7b6d11b5f542bdf1 ]--- [ 207.010126] Kernel panic - not syncing: Fatal exception [ 207.011322] SMP: stopping secondary CPUs [ 207.013956] Dumping ftrace buffer: [ 207.014595] (ftrace buffer empty) [ 207.015632] Kernel Offset: disabled [ 207.017187] CPU features: 0x002,20006008 [ 207.017985] Memory Limit: none [ 207.019825] ---[ end Kernel panic - not syncing: Fatal exception ]--- Link: http://lkml.kernel.org/r/20190606031754.10798-1-liwei391@huawei.com Signed-off-by: Wei Li Signed-off-by: Steven Rostedt (VMware) commit 9f255b632bf12c4dd7fc31caee89aa991ef75176 Author: Josh Poimboeuf Date: Thu Jun 13 20:07:22 2019 -0500 module: Fix livepatch/ftrace module text permissions race It's possible for livepatch and ftrace to be toggling a module's text permissions at the same time, resulting in the following panic: BUG: unable to handle page fault for address: ffffffffc005b1d9 #PF: supervisor write access in kernel mode #PF: error_code(0x0003) - permissions violation PGD 3ea0c067 P4D 3ea0c067 PUD 3ea0e067 PMD 3cc13067 PTE 3b8a1061 Oops: 0003 [#1] PREEMPT SMP PTI CPU: 1 PID: 453 Comm: insmod Tainted: G O K 5.2.0-rc1-a188339ca5 #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-20181126_142135-anatol 04/01/2014 RIP: 0010:apply_relocate_add+0xbe/0x14c Code: fa 0b 74 21 48 83 fa 18 74 38 48 83 fa 0a 75 40 eb 08 48 83 38 00 74 33 eb 53 83 38 00 75 4e 89 08 89 c8 eb 0a 83 38 00 75 43 <89> 08 48 63 c1 48 39 c8 74 2e eb 48 83 38 00 75 32 48 29 c1 89 08 RSP: 0018:ffffb223c00dbb10 EFLAGS: 00010246 RAX: ffffffffc005b1d9 RBX: 0000000000000000 RCX: ffffffff8b200060 RDX: 000000000000000b RSI: 0000004b0000000b RDI: ffff96bdfcd33000 RBP: ffffb223c00dbb38 R08: ffffffffc005d040 R09: ffffffffc005c1f0 R10: ffff96bdfcd33c40 R11: ffff96bdfcd33b80 R12: 0000000000000018 R13: ffffffffc005c1f0 R14: ffffffffc005e708 R15: ffffffff8b2fbc74 FS: 00007f5f447beba8(0000) GS:ffff96bdff900000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffffffffc005b1d9 CR3: 000000003cedc002 CR4: 0000000000360ea0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: klp_init_object_loaded+0x10f/0x219 ? preempt_latency_start+0x21/0x57 klp_enable_patch+0x662/0x809 ? virt_to_head_page+0x3a/0x3c ? kfree+0x8c/0x126 patch_init+0x2ed/0x1000 [livepatch_test02] ? 0xffffffffc0060000 do_one_initcall+0x9f/0x1c5 ? kmem_cache_alloc_trace+0xc4/0xd4 ? do_init_module+0x27/0x210 do_init_module+0x5f/0x210 load_module+0x1c41/0x2290 ? fsnotify_path+0x3b/0x42 ? strstarts+0x2b/0x2b ? kernel_read+0x58/0x65 __do_sys_finit_module+0x9f/0xc3 ? __do_sys_finit_module+0x9f/0xc3 __x64_sys_finit_module+0x1a/0x1c do_syscall_64+0x52/0x61 entry_SYSCALL_64_after_hwframe+0x44/0xa9 The above panic occurs when loading two modules at the same time with ftrace enabled, where at least one of the modules is a livepatch module: CPU0 CPU1 klp_enable_patch() klp_init_object_loaded() module_disable_ro() ftrace_module_enable() ftrace_arch_code_modify_post_process() set_all_modules_text_ro() klp_write_object_relocations() apply_relocate_add() *patches read-only code* - BOOM A similar race exists when toggling ftrace while loading a livepatch module. Fix it by ensuring that the livepatch and ftrace code patching operations -- and their respective permissions changes -- are protected by the text_mutex. Link: http://lkml.kernel.org/r/ab43d56ab909469ac5d2520c5d944ad6d4abd476.1560474114.git.jpoimboe@redhat.com Reported-by: Johannes Erdfelt Fixes: 444d13ff10fb ("modules: add ro_after_init support") Acked-by: Jessica Yu Reviewed-by: Petr Mladek Reviewed-by: Miroslav Benes Signed-off-by: Josh Poimboeuf Signed-off-by: Steven Rostedt (VMware) commit a4158345ec5acb44cc0a9ef4381e0784c1bc7722 Author: Eiichi Tsukata Date: Fri Jun 14 16:40:26 2019 +0900 tracing/uprobe: Fix obsolete comment on trace_uprobe_create() Commit 0597c49c69d5 ("tracing/uprobes: Use dyn_event framework for uprobe events") cleaned up the usage of trace_uprobe_create(), and the function has been no longer used for removing uprobe/uretprobe. Link: http://lkml.kernel.org/r/20190614074026.8045-2-devel@etsukata.com Reviewed-by: Srikar Dronamraju Signed-off-by: Eiichi Tsukata Signed-off-by: Steven Rostedt (VMware) commit f01098c74b5219f3969d4750eeed1a36bfc038e3 Author: Eiichi Tsukata Date: Fri Jun 14 16:40:25 2019 +0900 tracing/uprobe: Fix NULL pointer dereference in trace_uprobe_create() Just like the case of commit 8b05a3a7503c ("tracing/kprobes: Fix NULL pointer dereference in trace_kprobe_create()"), writing an incorrectly formatted string to uprobe_events can trigger NULL pointer dereference. Reporeducer: # echo r > /sys/kernel/debug/tracing/uprobe_events dmesg: BUG: kernel NULL pointer dereference, address: 0000000000000000 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 8000000079d12067 P4D 8000000079d12067 PUD 7b7ab067 PMD 0 Oops: 0000 [#1] PREEMPT SMP PTI CPU: 0 PID: 1903 Comm: bash Not tainted 5.2.0-rc3+ #15 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-2.fc30 04/01/2014 RIP: 0010:strchr+0x0/0x30 Code: c0 eb 0d 84 c9 74 18 48 83 c0 01 48 39 d0 74 0f 0f b6 0c 07 3a 0c 06 74 ea 19 c0 83 c8 01 c3 31 c0 c3 0f 1f 84 00 00 00 00 00 <0f> b6 07 89 f2 40 38 f0 75 0e eb 13 0f b6 47 01 48 83 c RSP: 0018:ffffb55fc0403d10 EFLAGS: 00010293 RAX: ffff993ffb793400 RBX: 0000000000000000 RCX: ffffffffa4852625 RDX: 0000000000000000 RSI: 000000000000002f RDI: 0000000000000000 RBP: ffffb55fc0403dd0 R08: ffff993ffb793400 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000 R13: ffff993ff9cc1668 R14: 0000000000000001 R15: 0000000000000000 FS: 00007f30c5147700(0000) GS:ffff993ffda00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000000 CR3: 000000007b628000 CR4: 00000000000006f0 Call Trace: trace_uprobe_create+0xe6/0xb10 ? __kmalloc_track_caller+0xe6/0x1c0 ? __kmalloc+0xf0/0x1d0 ? trace_uprobe_create+0xb10/0xb10 create_or_delete_trace_uprobe+0x35/0x90 ? trace_uprobe_create+0xb10/0xb10 trace_run_command+0x9c/0xb0 trace_parse_run_command+0xf9/0x1eb ? probes_open+0x80/0x80 __vfs_write+0x43/0x90 vfs_write+0x14a/0x2a0 ksys_write+0xa2/0x170 do_syscall_64+0x7f/0x200 entry_SYSCALL_64_after_hwframe+0x49/0xbe Link: http://lkml.kernel.org/r/20190614074026.8045-1-devel@etsukata.com Cc: stable@vger.kernel.org Fixes: 0597c49c69d5 ("tracing/uprobes: Use dyn_event framework for uprobe events") Reviewed-by: Srikar Dronamraju Signed-off-by: Eiichi Tsukata Signed-off-by: Steven Rostedt (VMware) commit ff585c5b9a27e64084c84e2ddf24fd00bf8dcfc1 Author: YueHaibing Date: Fri Jun 14 23:32:10 2019 +0800 tracing: Make two symbols static Fix sparse warnings: kernel/trace/trace.c:6927:24: warning: symbol 'get_tracing_log_err' was not declared. Should it be static? kernel/trace/trace.c:8196:15: warning: symbol 'trace_instance_dir' was not declared. Should it be static? Link: http://lkml.kernel.org/r/20190614153210.24424-1-yuehaibing@huawei.com Acked-by: Tom Zanussi Reported-by: Hulk Robot Signed-off-by: YueHaibing Signed-off-by: Steven Rostedt (VMware) commit cbdaeaf050b730ea02e9ab4ff844ce54d85dbe1d Author: Vasily Gorbik Date: Wed Jun 5 13:11:58 2019 +0200 tracing: avoid build warning with HAVE_NOP_MCOUNT Selecting HAVE_NOP_MCOUNT enables -mnop-mcount (if gcc supports it) and sets CC_USING_NOP_MCOUNT. Reuse __is_defined (which is suitable for testing CC_USING_* defines) to avoid conditional compilation and fix the following gcc 9 warning on s390: kernel/trace/ftrace.c:2514:1: warning: ‘ftrace_code_disable’ defined but not used [-Wunused-function] Link: http://lkml.kernel.org/r/patch.git-1a82d13f33ac.your-ad-here.call-01559732716-ext-6629@work.hours Fixes: 2f4df0017baed ("tracing: Add -mcount-nop option support") Signed-off-by: Vasily Gorbik Signed-off-by: Steven Rostedt (VMware) commit becf33f694dc50656766e0fde8883437d5c8d4b4 Author: Eiichi Tsukata Date: Mon Jun 10 13:00:16 2019 +0900 tracing: Fix out-of-range read in trace_stack_print() Puts range check before dereferencing the pointer. Reproducer: # echo stacktrace > trace_options # echo 1 > events/enable # cat trace > /dev/null KASAN report: ================================================================== BUG: KASAN: use-after-free in trace_stack_print+0x26b/0x2c0 Read of size 8 at addr ffff888069d20000 by task cat/1953 CPU: 0 PID: 1953 Comm: cat Not tainted 5.2.0-rc3+ #5 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-2.fc30 04/01/2014 Call Trace: dump_stack+0x8a/0xce print_address_description+0x60/0x224 ? trace_stack_print+0x26b/0x2c0 ? trace_stack_print+0x26b/0x2c0 __kasan_report.cold+0x1a/0x3e ? trace_stack_print+0x26b/0x2c0 kasan_report+0xe/0x20 trace_stack_print+0x26b/0x2c0 print_trace_line+0x6ea/0x14d0 ? tracing_buffers_read+0x700/0x700 ? trace_find_next_entry_inc+0x158/0x1d0 s_show+0xea/0x310 seq_read+0xaa7/0x10e0 ? seq_escape+0x230/0x230 __vfs_read+0x7c/0x100 vfs_read+0x16c/0x3a0 ksys_read+0x121/0x240 ? kernel_write+0x110/0x110 ? perf_trace_sys_enter+0x8a0/0x8a0 ? syscall_slow_exit_work+0xa9/0x410 do_syscall_64+0xb7/0x390 ? prepare_exit_to_usermode+0x165/0x200 entry_SYSCALL_64_after_hwframe+0x44/0xa9 RIP: 0033:0x7f867681f910 Code: b6 fe ff ff 48 8d 3d 0f be 08 00 48 83 ec 08 e8 06 db 01 00 66 0f 1f 44 00 00 83 3d f9 2d 2c 00 00 75 10 b8 00 00 00 00 04 RSP: 002b:00007ffdabf23488 EFLAGS: 00000246 ORIG_RAX: 0000000000000000 RAX: ffffffffffffffda RBX: 0000000000020000 RCX: 00007f867681f910 RDX: 0000000000020000 RSI: 00007f8676cde000 RDI: 0000000000000003 RBP: 00007f8676cde000 R08: ffffffffffffffff R09: 0000000000000000 R10: 0000000000000871 R11: 0000000000000246 R12: 00007f8676cde000 R13: 0000000000000003 R14: 0000000000020000 R15: 0000000000000ec0 Allocated by task 1214: save_stack+0x1b/0x80 __kasan_kmalloc.constprop.0+0xc2/0xd0 kmem_cache_alloc+0xaf/0x1a0 getname_flags+0xd2/0x5b0 do_sys_open+0x277/0x5a0 do_syscall_64+0xb7/0x390 entry_SYSCALL_64_after_hwframe+0x44/0xa9 Freed by task 1214: save_stack+0x1b/0x80 __kasan_slab_free+0x12c/0x170 kmem_cache_free+0x8a/0x1c0 putname+0xe1/0x120 do_sys_open+0x2c5/0x5a0 do_syscall_64+0xb7/0x390 entry_SYSCALL_64_after_hwframe+0x44/0xa9 The buggy address belongs to the object at ffff888069d20000 which belongs to the cache names_cache of size 4096 The buggy address is located 0 bytes inside of 4096-byte region [ffff888069d20000, ffff888069d21000) The buggy address belongs to the page: page:ffffea0001a74800 refcount:1 mapcount:0 mapping:ffff88806ccd1380 index:0x0 compound_mapcount: 0 flags: 0x100000000010200(slab|head) raw: 0100000000010200 dead000000000100 dead000000000200 ffff88806ccd1380 raw: 0000000000000000 0000000000070007 00000001ffffffff 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff888069d1ff00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff888069d1ff80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >ffff888069d20000: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ^ ffff888069d20080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff888069d20100: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ================================================================== Link: http://lkml.kernel.org/r/20190610040016.5598-1-devel@etsukata.com Fixes: 4285f2fcef80 ("tracing: Remove the ULONG_MAX stack trace hackery") Signed-off-by: Eiichi Tsukata Signed-off-by: Steven Rostedt (VMware) commit 9caec6620f25b6d15646bbdb93062c872ba3b56f Author: Jon Hunter Date: Wed Jun 5 15:01:39 2019 +0100 clk: tegra210: Fix default rates for HDA clocks Currently the default clock rates for the HDA and HDA2CODEC_2X clocks are both 19.2MHz. However, the default rates for these clocks should actually be 51MHz and 48MHz, respectively. The current clock settings results in a distorted output during audio playback. Correct the default clock rates for these clocks by specifying them in the clock init table for Tegra210. Cc: stable@vger.kernel.org Signed-off-by: Jon Hunter Acked-by: Thierry Reding Signed-off-by: Stephen Boyd commit 2741b6723bf6f7d92d07c44bd6a09c6e37f3f949 Author: Andreas Gruenbacher Date: Sat Jun 8 13:09:02 2019 +0100 gfs2: Fix rounding error in gfs2_iomap_page_prepare The pos and len arguments to the iomap page_prepare callback are not block aligned, so we need to take that into account when computing the number of blocks. Fixes: d0a22a4b03b8 ("gfs2: Fix iomap write page reclaim deadlock") Signed-off-by: Andreas Gruenbacher commit 2a2af5e6e6f55e8ec381f710b8765ffe2838e313 Merge: 4add700968c7 b65842025335 Author: David S. Miller Date: Fri Jun 14 09:36:51 2019 -0700 Merge tag 'mac80211-for-davem-2019-06-14' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211 Johannes Berg says: ==================== Various fixes, all over: * a few memory leaks * fixes for management frame protection security and A2/A3 confusion (affecting TDLS as well) * build fix for certificates * etc. ==================== Signed-off-by: David S. Miller commit 4add700968c7761acba88e70a0aa3f44e5ad359d Author: Russell King - ARM Linux admin Date: Fri Jun 14 11:37:49 2019 +0100 net: phylink: further mac_config documentation improvements While reviewing the DPAA2 work, it has become apparent that we need better documentation about which members of the phylink link state structure are valid in the mac_config call. Improve this documentation. Signed-off-by: Russell King Signed-off-by: David S. Miller commit 72a20cee5d99d231809ee4d3d2c09a96a25451e2 Merge: fd6b99fa41dd 41040cf7c5f0 Author: Linus Torvalds Date: Fri Jun 14 06:16:47 2019 -1000 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fixes from Will Deacon: "Here are some arm64 fixes for -rc5. The only non-trivial change (in terms of the diffstat) is fixing our SVE ptrace API for big-endian machines, but the majority of this is actually the addition of much-needed comments and updates to the documentation to try to avoid this mess biting us again in future. There are still a couple of small things on the horizon, but nothing major at this point. Summary: - Fix broken SVE ptrace API when running in a big-endian configuration - Fix performance regression due to off-by-one in TLBI range checking - Fix build regression when using Clang" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64/sve: Fix missing SVE/FPSIMD endianness conversions arm64: tlbflush: Ensure start/end of address range are aligned to stride arm64: Don't unconditionally add -Wno-psabi to KBUILD_CFLAGS commit fd6b99fa41ddee9699cff1d0e04e90afa452b24d Merge: c78ad1be4b4d 50f44ee7248a Author: Linus Torvalds Date: Fri Jun 14 06:08:46 2019 -1000 Merge branch 'akpm' (patches from Andrew) Merge misc fixes from Andrew Morton: "16 fixes" * emailed patches from Andrew Morton : mm/devm_memremap_pages: fix final page put race PCI/P2PDMA: track pgmap references per resource, not globally lib/genalloc: introduce chunk owners PCI/P2PDMA: fix the gen_pool_add_virt() failure path mm/devm_memremap_pages: introduce devm_memunmap_pages drivers/base/devres: introduce devm_release_action() mm/vmscan.c: fix trying to reclaim unevictable LRU page coredump: fix race condition between collapse_huge_page() and core dumping mm/mlock.c: change count_mm_mlocked_page_nr return type mm: mmu_gather: remove __tlb_reset_range() for force flush fs/ocfs2: fix race in ocfs2_dentry_attach_lock() mm/vmscan.c: fix recent_rotated history mm/mlock.c: mlockall error for flag MCL_ONFAULT scripts/decode_stacktrace.sh: prefix addr2line with $CROSS_COMPILE mm/list_lru.c: fix memory leak in __memcg_init_list_lru_node mm: memcontrol: don't batch updates of local VM stats and events commit e14c5873d2a311e1fb78572b3aefa3880100bc9c Merge: 744ed8cb8a47 f3a5231c8f14 Author: Daniel Vetter Date: Fri Jun 14 17:46:54 2019 +0200 Merge branch 'drm-fixes-5.2' of git://people.freedesktop.org/~agd5f/linux into drm-fixes Fixes for 5.2: - Extend previous vce fix for resume to uvd and vcn - Fix bounds checking in ras debugfs interface - Fix a regression on SI using amdgpu Signed-off-by: Daniel Vetter From: Alex Deucher Link: https://patchwork.freedesktop.org/patch/msgid/20190613021856.3307-1-alexander.deucher@amd.com commit c78ad1be4b4d65eb214421b90a788abf3c85c3ea Merge: 7617c9a087d2 4e4abae311e4 Author: Linus Torvalds Date: Fri Jun 14 05:49:35 2019 -1000 Merge tag 'iommu-fixes-v5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu Pull iommu fixes from Joerg Roedel: - three fixes for Intel VT-d to fix a potential dead-lock, a formatting fix and a bit setting fix - one fix for the ARM-SMMU to make it work on some platforms with sub-optimal SMMU emulation * tag 'iommu-fixes-v5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: iommu/arm-smmu: Avoid constant zero in TLBI writes iommu/vt-d: Set the right field for Page Walk Snoop iommu/vt-d: Fix lock inversion between iommu->lock and device_domain_lock iommu: Add missing new line for dma type commit 7617c9a087d2036e12e1524a03d064884730f4a1 Merge: bcb46a0e0e5c 3b00691cc46a Author: Linus Torvalds Date: Fri Jun 14 05:48:29 2019 -1000 Merge tag 'gpio-v5.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio Pull GPIO fix from Linus Walleij: "A single fix for the PCA953x driver affecting some fringe variants of the chip" * tag 'gpio-v5.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: gpio: pca953x: hack to fix 24 bit gpio expanders commit 385097a3675749cbc9e97c085c0e5dfe4269ca51 Author: Young Xiao <92siuyang@gmail.com> Date: Fri Jun 14 15:13:02 2019 +0800 nfc: Ensure presence of required attributes in the deactivate_target handler Check that the NFC_ATTR_TARGET_INDEX attributes (in addition to NFC_ATTR_DEVICE_INDEX) are provided by the netlink client prior to accessing them. This prevents potential unhandled NULL pointer dereference exceptions which can be triggered by malicious user-mode programs, if they omit one or both of these attributes. Signed-off-by: Young Xiao <92siuyang@gmail.com> Signed-off-by: David S. Miller commit bcb46a0e0e5c79291ffbc1e4b5d1d3d119e0f984 Merge: c11fb13a117e 17d304604a88 Author: Linus Torvalds Date: Fri Jun 14 05:37:06 2019 -1000 Merge tag 'sound-5.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "It might feel like deja vu to receive a bulk of changes at rc5, and it happens again; we've got a collection of fixes for ASoC. Most of fixes are targeted for the newly merged SOF (Sound Open Firmware) stuff and the relevant fixes for Intel platforms. Other than that, there are a few regression fixes for the recent ASoC core changes and HD-audio quirk, as well as a couple of FireWire fixes and for other ASoC codecs" * tag 'sound-5.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (54 commits) Revert "ALSA: hda/realtek - Improve the headset mic for Acer Aspire laptops" ALSA: ice1712: Check correct return value to snd_i2c_sendbytes (EWS/DMX 6Fire) ALSA: oxfw: allow PCM capture for Stanton SCS.1m ALSA: firewire-motu: fix destruction of data for isochronous resources ASoC: Intel: sst: fix kmalloc call with wrong flags ASoC: core: Fix deadlock in snd_soc_instantiate_card() SoC: rt274: Fix internal jack assignment in set_jack callback ALSA: hdac: fix memory release for SST and SOF drivers ASoC: SOF: Intel: hda: use the defined ppcap functions ASoC: core: move DAI pre-links initiation to snd_soc_instantiate_card ASoC: Intel: cht_bsw_rt5672: fix kernel oops with platform_name override ASoC: Intel: cht_bsw_nau8824: fix kernel oops with platform_name override ASoC: Intel: bytcht_es8316: fix kernel oops with platform_name override ASoC: Intel: cht_bsw_max98090: fix kernel oops with platform_name override ASoC: sun4i-i2s: Add offset to RX channel select ASoC: sun4i-i2s: Fix sun8i tx channel offset mask ASoC: max98090: remove 24-bit format support if RJ is 0 ASoC: da7219: Fix build error without CONFIG_I2C ASoC: SOF: Intel: hda: Fix COMPILE_TEST build error ASoC: SOF: fix DSP oops definitions in FW ABI ... commit c4e0540d0ad49c8ceab06cceed1de27c4fe29f6e Author: Naohiro Aota Date: Thu Jun 6 16:54:44 2019 +0900 btrfs: start readahead also in seed devices Currently, btrfs does not consult seed devices to start readahead. As a result, if readahead zone is added to the seed devices, btrfs_reada_wait() indefinitely wait for the reada_ctl to finish. You can reproduce the hung by modifying btrfs/163 to have larger initial file size (e.g. xfs_io pwrite 4M instead of current 256K). Fixes: 7414a03fbf9e ("btrfs: initial readahead code and prototypes") Cc: stable@vger.kernel.org # 3.2+: ce7791ffee1e: Btrfs: fix race between readahead and device replace/removal Cc: stable@vger.kernel.org # 3.2+ Reviewed-by: Filipe Manana Signed-off-by: Naohiro Aota Signed-off-by: David Sterba commit f3176ec9420de0c385023afa3e4970129444ac2f Author: Andrey Ryabinin Date: Fri Jun 14 17:31:49 2019 +0300 x86/kasan: Fix boot with 5-level paging and KASAN Since commit d52888aa2753 ("x86/mm: Move LDT remap out of KASLR region on 5-level paging") kernel doesn't boot with KASAN on 5-level paging machines. The bug is actually in early_p4d_offset() and introduced by commit 12a8cc7fcf54 ("x86/kasan: Use the same shadow offset for 4- and 5-level paging") early_p4d_offset() tries to convert pgd_val(*pgd) value to a physical address. This doesn't make sense because pgd_val() already contains the physical address. It did work prior to commit d52888aa2753 because the result of "__pa_nodebug(pgd_val(*pgd)) & PTE_PFN_MASK" was the same as "pgd_val(*pgd) & PTE_PFN_MASK". __pa_nodebug() just set some high bits which were masked out by applying PTE_PFN_MASK. After the change of the PAGE_OFFSET offset in commit d52888aa2753 __pa_nodebug(pgd_val(*pgd)) started to return a value with more high bits set and PTE_PFN_MASK wasn't enough to mask out all of them. So it returns a wrong not even canonical address and crashes on the attempt to dereference it. Switch back to pgd_val() & PTE_PFN_MASK to cure the issue. Fixes: 12a8cc7fcf54 ("x86/kasan: Use the same shadow offset for 4- and 5-level paging") Reported-by: Kirill A. Shutemov Signed-off-by: Andrey Ryabinin Signed-off-by: Thomas Gleixner Cc: Borislav Petkov Cc: "H. Peter Anvin" Cc: Alexander Potapenko Cc: Dmitry Vyukov Cc: kasan-dev@googlegroups.com Cc: stable@vger.kernel.org Cc: Link: https://lkml.kernel.org/r/20190614143149.2227-1-aryabinin@virtuozzo.com commit b65842025335711e2a0259feb4dbadb0c9ffb6d9 Author: Avraham Stern Date: Wed May 29 15:25:28 2019 +0300 cfg80211: report measurement start TSF correctly Instead of reporting the AP's TSF, host time was reported. Fix it. Signed-off-by: Avraham Stern Signed-off-by: Luca Coelho Signed-off-by: Johannes Berg commit 4f488fbca2a86cc7714a128952eead92cac279ab Author: Eric Biggers Date: Mon Jun 10 13:02:19 2019 -0700 cfg80211: fix memory leak of wiphy device name In wiphy_new_nm(), if an error occurs after dev_set_name() and device_initialize() have already been called, it's necessary to call put_device() (via wiphy_free()) to avoid a memory leak. Reported-by: syzbot+7fddca22578bc67c3fe4@syzkaller.appspotmail.com Fixes: 1f87f7d3a3b4 ("cfg80211: add rfkill support") Cc: stable@vger.kernel.org Signed-off-by: Eric Biggers Signed-off-by: Johannes Berg commit 1a473d6092d5d182914bea854ce0b21e6d12519d Author: Mordechay Goodstein Date: Wed May 29 15:25:31 2019 +0300 cfg80211: util: fix bit count off by one The bits of Rx MCS Map in VHT capability were enumerated with index transform - index i -> (i + 1) bit => nss i. BUG! while it should be - index i -> (i + 1) bit => (i + 1) nss. The bug was exposed in commit a53b2a0b1245 ("iwlwifi: mvm: implement VHT extended NSS support in rs.c"), where iwlwifi started using the function. Signed-off-by: Mordechay Goodstein Fixes: b0aa75f0b1b2 ("ieee80211: add new VHT capability fields/parsing") Signed-off-by: Luca Coelho Signed-off-by: Johannes Berg commit f8891461a277ec0afc493fd30cd975a38048a038 Author: Naftali Goldstein Date: Wed May 29 15:25:30 2019 +0300 mac80211: do not start any work during reconfigure flow It is not a good idea to try to perform any work (e.g. send an auth frame) during reconfigure flow. Prevent this from happening, and at the end of the reconfigure flow requeue all the works. Signed-off-by: Naftali Goldstein Signed-off-by: Luca Coelho Signed-off-by: Johannes Berg commit ebb3ca3b4477bbc118976c77fe1913507df718ec Author: Luca Coelho Date: Wed May 29 15:25:29 2019 +0300 cfg80211: use BIT_ULL in cfg80211_parse_mbssid_data() The seen_indices variable is u64 and in other parts of the code we assume mbssid_index_ie[2] can be up to 45, so we should use the 64-bit versions of BIT, namely, BIT_ULL(). Reported-by: Dan Carpented Signed-off-by: Luca Coelho Signed-off-by: Johannes Berg commit 563572340173865a9a356e6bb02579e6998a876d Author: Yibo Zhao Date: Fri Jun 14 19:01:52 2019 +0800 mac80211: only warn once on chanctx_conf being NULL In multiple SSID cases, it takes time to prepare every AP interface to be ready in initializing phase. If a sta already knows everything it needs to join one of the APs and sends authentication to the AP which is not fully prepared at this point of time, AP's channel context could be NULL. As a result, warning message occurs. Even worse, if the AP is under attack via tools such as MDK3 and massive authentication requests are received in a very short time, console will be hung due to kernel warning messages. WARN_ON_ONCE() could be a better way for indicating warning messages without duplicate messages to flood the console. Johannes: We still need to address the underlying problem, but we don't really have a good handle on it yet. Suppress the worst side-effects for now. Signed-off-by: Zhi Chen Signed-off-by: Yibo Zhao [johannes: add note, change subject] Signed-off-by: Johannes Berg commit 588f7d39b3592a36fb7702ae3b8bdd9be4621e2f Author: Johannes Berg Date: Wed Feb 13 15:13:30 2019 +0100 mac80211: drop robust management frames from unknown TA When receiving a robust management frame, drop it if we don't have rx->sta since then we don't have a security association and thus couldn't possibly validate the frame. Cc: stable@vger.kernel.org Signed-off-by: Johannes Berg commit 912bbf7e9ca422099935dd69d3ff0fd62db24882 Author: Steve Longerbeam Date: Tue Jun 11 18:16:57 2019 -0700 gpu: ipu-v3: image-convert: Fix image downsize coefficients The output of the IC downsizer unit in both dimensions must be <= 1024 before being passed to the IC resizer unit. This was causing corrupted images when: input_dim > 1024, and input_dim / 2 < output_dim < input_dim Some broken examples were 1920x1080 -> 1024x768 and 1920x1080 -> 1280x1080. Fixes: 70b9b6b3bcb21 ("gpu: ipu-v3: image-convert: calculate per-tile resize coefficients") Signed-off-by: Steve Longerbeam Signed-off-by: Philipp Zabel commit bca4d70cf1b8f6478a711c448a3a1e47b794b162 Author: Steve Longerbeam Date: Tue Jun 11 18:16:56 2019 -0700 gpu: ipu-v3: image-convert: Fix input bytesperline for packed formats The input bytesperline calculation for packed pixel formats was incorrect. The min/max clamping values must be multiplied by the packed bits-per-pixel. This was causing corrupted converted images when the input format was RGB4 (probably also other input packed formats). Fixes: d966e23d61a2c ("gpu: ipu-v3: image-convert: fix bytesperline adjustment") Reported-by: Harsha Manjula Mallikarjun Suggested-by: Harsha Manjula Mallikarjun Signed-off-by: Steve Longerbeam Signed-off-by: Philipp Zabel commit ff391ecd65a1b8324c49046c3db98d9c8ab29af9 Author: Steve Longerbeam Date: Tue Jun 11 18:16:55 2019 -0700 gpu: ipu-v3: image-convert: Fix input bytesperline width/height align The output width and height alignment values were being used in the input bytesperline calculation. Fix by separating local vars w_align and h_align into w_align_in, h_align_in, w_align_out, and h_align_out. Fixes: d966e23d61a2c ("gpu: ipu-v3: image-convert: fix bytesperline adjustment") Signed-off-by: Steve Longerbeam Signed-off-by: Philipp Zabel commit 0d53827d7c172f1345140f7638fe658bda1bb25d Author: Mika Westerberg Date: Fri May 31 13:31:54 2019 +0300 thunderbolt: Implement CIO reset correctly for Titan Ridge When starting ICM firmware on Apple systems we need to perform CIO reset as part of the flow. However, it turns out that the reset register has changed to another location in Titan Ridge. Fix this by introducing ->cio_reset() callback with corresponding implementations for Alpine and Titan Ridge. Fixes: c4630d6ae6e3 ("thunderbolt: Start firmware on Titan Ridge Apple systems") Reported-by: Peter Bowen Signed-off-by: Mika Westerberg commit 68f2515bb31a664ba3e2bc1eb78dd9f529b10067 Author: Bartosz Golaszewski Date: Fri Jun 7 16:33:50 2019 +0200 ARM: davinci: da8xx: specify dma_coherent_mask for lcdc The lcdc device is missing the dma_coherent_mask definition causing the following warning on da850-evm: da8xx_lcdc da8xx_lcdc.0: found Sharp_LK043T1DG01 panel ------------[ cut here ]------------ WARNING: CPU: 0 PID: 1 at kernel/dma/mapping.c:247 dma_alloc_attrs+0xc8/0x110 Modules linked in: CPU: 0 PID: 1 Comm: swapper Not tainted 5.2.0-rc3-00077-g16d72dd4891f #18 Hardware name: DaVinci DA850/OMAP-L138/AM18x EVM [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [] (show_stack) from [] (__warn+0xec/0x114) [] (__warn) from [] (warn_slowpath_null+0x3c/0x48) [] (warn_slowpath_null) from [] (dma_alloc_attrs+0xc8/0x110) [] (dma_alloc_attrs) from [] (fb_probe+0x228/0x5a8) [] (fb_probe) from [] (platform_drv_probe+0x48/0x9c) [] (platform_drv_probe) from [] (really_probe+0x1d8/0x2d4) [] (really_probe) from [] (driver_probe_device+0x5c/0x168) [] (driver_probe_device) from [] (device_driver_attach+0x58/0x60) [] (device_driver_attach) from [] (__driver_attach+0x80/0xbc) [] (__driver_attach) from [] (bus_for_each_dev+0x64/0xb4) [] (bus_for_each_dev) from [] (bus_add_driver+0xe4/0x1d8) [] (bus_add_driver) from [] (driver_register+0x78/0x10c) [] (driver_register) from [] (do_one_initcall+0x48/0x1bc) [] (do_one_initcall) from [] (kernel_init_freeable+0x10c/0x1d8) [] (kernel_init_freeable) from [] (kernel_init+0x8/0xf4) [] (kernel_init) from [] (ret_from_fork+0x14/0x34) Exception stack(0xc6837fb0 to 0xc6837ff8) 7fa0: 00000000 00000000 00000000 00000000 7fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 7fe0: 00000000 00000000 00000000 00000000 00000013 00000000 ---[ end trace 8a8073511be81dd2 ]--- Add a 32-bit mask to the platform device's definition. Signed-off-by: Bartosz Golaszewski Signed-off-by: Sekhar Nori commit 0c0c9b5753cd04601b17de09da1ed2885a3b42fe Author: Bartosz Golaszewski Date: Fri Jun 7 11:02:01 2019 +0200 ARM: davinci: da850-evm: call regulator_has_full_constraints() The BB expander at 0x21 i2c bus 1 fails to probe on da850-evm because the board doesn't set has_full_constraints to true in the regulator API. Call regulator_has_full_constraints() at the end of board registration just like we do in da850-lcdk and da830-evm. Reviewed-by: Linus Walleij Signed-off-by: Bartosz Golaszewski Signed-off-by: Sekhar Nori commit e3ff9c3678b4d80e22d2557b68726174578eaf52 Author: Thomas Gleixner Date: Thu Jun 13 21:40:45 2019 +0200 timekeeping: Repair ktime_get_coarse*() granularity Jason reported that the coarse ktime based time getters advance only once per second and not once per tick as advertised. The code reads only the monotonic base time, which advances once per second. The nanoseconds are accumulated on every tick in xtime_nsec up to a second and the regular time getters take this nanoseconds offset into account, but the ktime_get_coarse*() implementation fails to do so. Add the accumulated xtime_nsec value to the monotonic base time to get the proper per tick advancing coarse tinme. Fixes: b9ff604cff11 ("timekeeping: Add ktime_get_coarse_with_offset") Reported-by: Jason A. Donenfeld Signed-off-by: Thomas Gleixner Tested-by: Jason A. Donenfeld Cc: Arnd Bergmann Cc: Peter Zijlstra Cc: Clemens Ladisch Cc: Sultan Alsawaf Cc: Waiman Long Cc: stable@vger.kernel.org Link: https://lkml.kernel.org/r/alpine.DEB.2.21.1906132136280.1791@nanos.tec.linutronix.de commit 744ed8cb8a4707f04a79904a45cf8f951a28abd6 Merge: febe80307d2c 48eaeb7664c7 Author: Daniel Vetter Date: Thu Jun 13 22:44:21 2019 +0200 Merge tag 'drm-misc-fixes-2019-06-13' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes Sean writes: meson: A few G12A fixes across the driver (Neil) quirks: A couple quirks for GPD devices (Hans) gem_shmem: Use writecombine when vmapping non-dmabuf BOs (Boris) panfrost: A couple tweaks to requiring devfreq (Neil & Ezequiel) edid: Ensure we return the override mode when ddc probe fails (Jani) Cc: Hans de Goede Cc: Neil Armstrong Cc: Boris Brezillon Cc: Ezequiel Garcia Cc: Jani Nikula Signed-off-by: Daniel Vetter From: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190613143946.GA24233@art_vandelay commit 17d304604a88cf20c8dfd2c95d3decb9c4f8bca4 Author: Hui Wang Date: Fri Jun 14 16:44:12 2019 +0800 Revert "ALSA: hda/realtek - Improve the headset mic for Acer Aspire laptops" This reverts commit 9cb40eb184c4220d244a532bd940c6345ad9dbd9. This patch introduces noise and headphone playback issue after rebooting or suspending/resuming. Let us revert it. BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=203831 Fixes: 9cb40eb184c4 ("ALSA: hda/realtek - Improve the headset mic for Acer Aspire laptops") Cc: Signed-off-by: Hui Wang Signed-off-by: Takashi Iwai commit 50f44ee7248ad2f7984ef081974a6ecd09724b3e Author: Dan Williams Date: Thu Jun 13 15:56:33 2019 -0700 mm/devm_memremap_pages: fix final page put race Logan noticed that devm_memremap_pages_release() kills the percpu_ref drops all the page references that were acquired at init and then immediately proceeds to unplug, arch_remove_memory(), the backing pages for the pagemap. If for some reason device shutdown actually collides with a busy / elevated-ref-count page then arch_remove_memory() should be deferred until after that reference is dropped. As it stands the "wait for last page ref drop" happens *after* devm_memremap_pages_release() returns, which is obviously too late and can lead to crashes. Fix this situation by assigning the responsibility to wait for the percpu_ref to go idle to devm_memremap_pages() with a new ->cleanup() callback. Implement the new cleanup callback for all devm_memremap_pages() users: pmem, devdax, hmm, and p2pdma. Link: http://lkml.kernel.org/r/155727339156.292046.5432007428235387859.stgit@dwillia2-desk3.amr.corp.intel.com Fixes: 41e94a851304 ("add devm_memremap_pages") Signed-off-by: Dan Williams Reported-by: Logan Gunthorpe Reviewed-by: Ira Weiny Reviewed-by: Logan Gunthorpe Cc: Bjorn Helgaas Cc: "Jérôme Glisse" Cc: Christoph Hellwig Cc: Greg Kroah-Hartman Cc: "Rafael J. Wysocki" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1570175abd164b32ea1cc677f9dfd2dc6bd093f5 Author: Dan Williams Date: Thu Jun 13 15:56:30 2019 -0700 PCI/P2PDMA: track pgmap references per resource, not globally In preparation for fixing a race between devm_memremap_pages_release() and the final put of a page from the device-page-map, allocate a percpu-ref per p2pdma resource mapping. Link: http://lkml.kernel.org/r/155727338646.292046.9922678317501435597.stgit@dwillia2-desk3.amr.corp.intel.com Signed-off-by: Dan Williams Reviewed-by: Ira Weiny Reviewed-by: Logan Gunthorpe Cc: Bjorn Helgaas Cc: Christoph Hellwig Cc: Greg Kroah-Hartman Cc: "Jérôme Glisse" Cc: "Rafael J. Wysocki" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 795ee30648c708502da9df637f83c33361d68dcc Author: Dan Williams Date: Thu Jun 13 15:56:27 2019 -0700 lib/genalloc: introduce chunk owners The p2pdma facility enables a provider to publish a pool of dma addresses for a consumer to allocate. A genpool is used internally by p2pdma to collect dma resources, 'chunks', to be handed out to consumers. Whenever a consumer allocates a resource it needs to pin the 'struct dev_pagemap' instance that backs the chunk selected by pci_alloc_p2pmem(). Currently that reference is taken globally on the entire provider device. That sets up a lifetime mismatch whereby the p2pdma core needs to maintain hacks to make sure the percpu_ref is not released twice. This lifetime mismatch also stands in the way of a fix to devm_memremap_pages() whereby devm_memremap_pages_release() must wait for the percpu_ref ->release() callback to complete before it can proceed to teardown pages. So, towards fixing this situation, introduce the ability to store a 'chunk owner' at gen_pool_add() time, and a facility to retrieve the owner at gen_pool_{alloc,free}() time. For p2pdma this will be used to store and recall individual dev_pagemap reference counter instances per-chunk. Link: http://lkml.kernel.org/r/155727338118.292046.13407378933221579644.stgit@dwillia2-desk3.amr.corp.intel.com Signed-off-by: Dan Williams Reviewed-by: Ira Weiny Reviewed-by: Logan Gunthorpe Cc: Bjorn Helgaas Cc: "Jérôme Glisse" Cc: Christoph Hellwig Cc: Greg Kroah-Hartman Cc: "Rafael J. Wysocki" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e615a191216e3fb4e9c0d239007f2b0cd48f28bf Author: Dan Williams Date: Thu Jun 13 15:56:24 2019 -0700 PCI/P2PDMA: fix the gen_pool_add_virt() failure path The pci_p2pdma_add_resource() implementation immediately frees the pgmap if gen_pool_add_virt() fails. However, that means that when @dev triggers a devres release devm_memremap_pages_release() will crash trying to access the freed @pgmap. Use the new devm_memunmap_pages() to manually free the mapping in the error path. Link: http://lkml.kernel.org/r/155727337603.292046.13101332703665246702.stgit@dwillia2-desk3.amr.corp.intel.com Signed-off-by: Dan Williams Fixes: 52916982af48 ("PCI/P2PDMA: Support peer-to-peer memory") Reviewed-by: Ira Weiny Acked-by: Bjorn Helgaas Reviewed-by: Logan Gunthorpe Cc: Christoph Hellwig Cc: Greg Kroah-Hartman Cc: "Jérôme Glisse" Cc: "Rafael J. Wysocki" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2e3f139e8ecebf177fe01299285a56855e93fb84 Author: Dan Williams Date: Thu Jun 13 15:56:21 2019 -0700 mm/devm_memremap_pages: introduce devm_memunmap_pages Use the new devm_release_action() facility to allow devm_memremap_pages_release() to be manually triggered. Link: http://lkml.kernel.org/r/155727337088.292046.5774214552136776763.stgit@dwillia2-desk3.amr.corp.intel.com Signed-off-by: Dan Williams Reviewed-by: Ira Weiny Reviewed-by: Logan Gunthorpe Cc: Bjorn Helgaas Cc: Christoph Hellwig Cc: Greg Kroah-Hartman Cc: "Jérôme Glisse" Cc: "Rafael J. Wysocki" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2374b682255184d7ef75fcb507ce5af4995ead32 Author: Dan Williams Date: Thu Jun 13 15:56:18 2019 -0700 drivers/base/devres: introduce devm_release_action() Patch series "mm/devm_memremap_pages: Fix page release race", v2. Logan audited the devm_memremap_pages() shutdown path and noticed that it was possible to proceed to arch_remove_memory() before all potential page references have been reaped. Introduce a new ->cleanup() callback to do the work of waiting for any straggling page references and then perform the percpu_ref_exit() in devm_memremap_pages_release() context. For p2pdma this involves some deeper reworks to reference count resources on a per-instance basis rather than a per pci-device basis. A modified genalloc api is introduced to convey a driver-private pointer through gen_pool_{alloc,free}() interfaces. Also, a devm_memunmap_pages() api is introduced since p2pdma does not auto-release resources on a setup failure. The dax and pmem changes pass the nvdimm unit tests, and the p2pdma changes should now pass testing with the pci_p2pdma_release() fix. Jrme, how does this look for HMM? This patch (of 6): The devm_add_action() facility allows a resource allocation routine to add custom devm semantics. One such user is devm_memremap_pages(). There is now a need to manually trigger devm_memremap_pages_release(). Introduce devm_release_action() so the release action can be triggered via a new devm_memunmap_pages() api in a follow-on change. Link: http://lkml.kernel.org/r/155727336530.292046.2926860263201336366.stgit@dwillia2-desk3.amr.corp.intel.com Signed-off-by: Dan Williams Reviewed-by: Ira Weiny Reviewed-by: Logan Gunthorpe Cc: Bjorn Helgaas Cc: Christoph Hellwig Cc: Greg Kroah-Hartman Cc: "Rafael J. Wysocki" Cc: "Jérôme Glisse" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a58f2cef26e1ca44182c8b22f4f4395e702a5795 Author: Minchan Kim Date: Thu Jun 13 15:56:15 2019 -0700 mm/vmscan.c: fix trying to reclaim unevictable LRU page There was the below bug report from Wu Fangsuo. On the CMA allocation path, isolate_migratepages_range() could isolate unevictable LRU pages and reclaim_clean_page_from_list() can try to reclaim them if they are clean file-backed pages. page:ffffffbf02f33b40 count:86 mapcount:84 mapping:ffffffc08fa7a810 index:0x24 flags: 0x19040c(referenced|uptodate|arch_1|mappedtodisk|unevictable|mlocked) raw: 000000000019040c ffffffc08fa7a810 0000000000000024 0000005600000053 raw: ffffffc009b05b20 ffffffc009b05b20 0000000000000000 ffffffc09bf3ee80 page dumped because: VM_BUG_ON_PAGE(PageLRU(page) || PageUnevictable(page)) page->mem_cgroup:ffffffc09bf3ee80 ------------[ cut here ]------------ kernel BUG at /home/build/farmland/adroid9.0/kernel/linux/mm/vmscan.c:1350! Internal error: Oops - BUG: 0 [#1] PREEMPT SMP Modules linked in: CPU: 0 PID: 7125 Comm: syz-executor Tainted: G S 4.14.81 #3 Hardware name: ASR AQUILAC EVB (DT) task: ffffffc00a54cd00 task.stack: ffffffc009b00000 PC is at shrink_page_list+0x1998/0x3240 LR is at shrink_page_list+0x1998/0x3240 pc : [] lr : [] pstate: 60400045 sp : ffffffc009b05940 .. shrink_page_list+0x1998/0x3240 reclaim_clean_pages_from_list+0x3c0/0x4f0 alloc_contig_range+0x3bc/0x650 cma_alloc+0x214/0x668 ion_cma_allocate+0x98/0x1d8 ion_alloc+0x200/0x7e0 ion_ioctl+0x18c/0x378 do_vfs_ioctl+0x17c/0x1780 SyS_ioctl+0xac/0xc0 Wu found it's due to commit ad6b67041a45 ("mm: remove SWAP_MLOCK in ttu"). Before that, unevictable pages go to cull_mlocked so that we can't reach the VM_BUG_ON_PAGE line. To fix the issue, this patch filters out unevictable LRU pages from the reclaim_clean_pages_from_list in CMA. Link: http://lkml.kernel.org/r/20190524071114.74202-1-minchan@kernel.org Fixes: ad6b67041a45 ("mm: remove SWAP_MLOCK in ttu") Signed-off-by: Minchan Kim Reported-by: Wu Fangsuo Debugged-by: Wu Fangsuo Tested-by: Wu Fangsuo Reviewed-by: Andrew Morton Acked-by: Michal Hocko Cc: Pankaj Suryawanshi Cc: [4.12+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 59ea6d06cfa9247b586a695c21f94afa7183af74 Author: Andrea Arcangeli Date: Thu Jun 13 15:56:11 2019 -0700 coredump: fix race condition between collapse_huge_page() and core dumping When fixing the race conditions between the coredump and the mmap_sem holders outside the context of the process, we focused on mmget_not_zero()/get_task_mm() callers in 04f5866e41fb70 ("coredump: fix race condition between mmget_not_zero()/get_task_mm() and core dumping"), but those aren't the only cases where the mmap_sem can be taken outside of the context of the process as Michal Hocko noticed while backporting that commit to older -stable kernels. If mmgrab() is called in the context of the process, but then the mm_count reference is transferred outside the context of the process, that can also be a problem if the mmap_sem has to be taken for writing through that mm_count reference. khugepaged registration calls mmgrab() in the context of the process, but the mmap_sem for writing is taken later in the context of the khugepaged kernel thread. collapse_huge_page() after taking the mmap_sem for writing doesn't modify any vma, so it's not obvious that it could cause a problem to the coredump, but it happens to modify the pmd in a way that breaks an invariant that pmd_trans_huge_lock() relies upon. collapse_huge_page() needs the mmap_sem for writing just to block concurrent page faults that call pmd_trans_huge_lock(). Specifically the invariant that "!pmd_trans_huge()" cannot become a "pmd_trans_huge()" doesn't hold while collapse_huge_page() runs. The coredump will call __get_user_pages() without mmap_sem for reading, which eventually can invoke a lockless page fault which will need a functional pmd_trans_huge_lock(). So collapse_huge_page() needs to use mmget_still_valid() to check it's not running concurrently with the coredump... as long as the coredump can invoke page faults without holding the mmap_sem for reading. This has "Fixes: khugepaged" to facilitate backporting, but in my view it's more a bug in the coredump code that will eventually have to be rewritten to stop invoking page faults without the mmap_sem for reading. So the long term plan is still to drop all mmget_still_valid(). Link: http://lkml.kernel.org/r/20190607161558.32104-1-aarcange@redhat.com Fixes: ba76149f47d8 ("thp: khugepaged") Signed-off-by: Andrea Arcangeli Reported-by: Michal Hocko Acked-by: Michal Hocko Acked-by: Kirill A. Shutemov Cc: Oleg Nesterov Cc: Jann Horn Cc: Hugh Dickins Cc: Mike Rapoport Cc: Mike Kravetz Cc: Peter Xu Cc: Jason Gunthorpe Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 0874bb49bb21bf24deda853e8bf61b8325e24bcb Author: swkhack Date: Thu Jun 13 15:56:08 2019 -0700 mm/mlock.c: change count_mm_mlocked_page_nr return type On a 64-bit machine the value of "vma->vm_end - vma->vm_start" may be negative when using 32 bit ints and the "count >> PAGE_SHIFT"'s result will be wrong. So change the local variable and return value to unsigned long to fix the problem. Link: http://lkml.kernel.org/r/20190513023701.83056-1-swkhack@gmail.com Fixes: 0cf2f6f6dc60 ("mm: mlock: check against vma for actual mlock() size") Signed-off-by: swkhack Acked-by: Michal Hocko Reviewed-by: Andrew Morton Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7a30df49f63ad92318ddf1f7498d1129a77dd4bd Author: Yang Shi Date: Thu Jun 13 15:56:05 2019 -0700 mm: mmu_gather: remove __tlb_reset_range() for force flush A few new fields were added to mmu_gather to make TLB flush smarter for huge page by telling what level of page table is changed. __tlb_reset_range() is used to reset all these page table state to unchanged, which is called by TLB flush for parallel mapping changes for the same range under non-exclusive lock (i.e. read mmap_sem). Before commit dd2283f2605e ("mm: mmap: zap pages with read mmap_sem in munmap"), the syscalls (e.g. MADV_DONTNEED, MADV_FREE) which may update PTEs in parallel don't remove page tables. But, the forementioned commit may do munmap() under read mmap_sem and free page tables. This may result in program hang on aarch64 reported by Jan Stancek. The problem could be reproduced by his test program with slightly modified below. ---8<--- static int map_size = 4096; static int num_iter = 500; static long threads_total; static void *distant_area; void *map_write_unmap(void *ptr) { int *fd = ptr; unsigned char *map_address; int i, j = 0; for (i = 0; i < num_iter; i++) { map_address = mmap(distant_area, (size_t) map_size, PROT_WRITE | PROT_READ, MAP_SHARED | MAP_ANONYMOUS, -1, 0); if (map_address == MAP_FAILED) { perror("mmap"); exit(1); } for (j = 0; j < map_size; j++) map_address[j] = 'b'; if (munmap(map_address, map_size) == -1) { perror("munmap"); exit(1); } } return NULL; } void *dummy(void *ptr) { return NULL; } int main(void) { pthread_t thid[2]; /* hint for mmap in map_write_unmap() */ distant_area = mmap(0, DISTANT_MMAP_SIZE, PROT_WRITE | PROT_READ, MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); munmap(distant_area, (size_t)DISTANT_MMAP_SIZE); distant_area += DISTANT_MMAP_SIZE / 2; while (1) { pthread_create(&thid[0], NULL, map_write_unmap, NULL); pthread_create(&thid[1], NULL, dummy, NULL); pthread_join(thid[0], NULL); pthread_join(thid[1], NULL); } } ---8<--- The program may bring in parallel execution like below: t1 t2 munmap(map_address) downgrade_write(&mm->mmap_sem); unmap_region() tlb_gather_mmu() inc_tlb_flush_pending(tlb->mm); free_pgtables() tlb->freed_tables = 1 tlb->cleared_pmds = 1 pthread_exit() madvise(thread_stack, 8M, MADV_DONTNEED) zap_page_range() tlb_gather_mmu() inc_tlb_flush_pending(tlb->mm); tlb_finish_mmu() if (mm_tlb_flush_nested(tlb->mm)) __tlb_reset_range() __tlb_reset_range() would reset freed_tables and cleared_* bits, but this may cause inconsistency for munmap() which do free page tables. Then it may result in some architectures, e.g. aarch64, may not flush TLB completely as expected to have stale TLB entries remained. Use fullmm flush since it yields much better performance on aarch64 and non-fullmm doesn't yields significant difference on x86. The original proposed fix came from Jan Stancek who mainly debugged this issue, I just wrapped up everything together. Jan's testing results: v5.2-rc2-24-gbec7550cca10 -------------------------- mean stddev real 37.382 2.780 user 1.420 0.078 sys 54.658 1.855 v5.2-rc2-24-gbec7550cca10 + "mm: mmu_gather: remove __tlb_reset_range() for force flush" ---------------------------------------------------------------------------------------_ mean stddev real 37.119 2.105 user 1.548 0.087 sys 55.698 1.357 [akpm@linux-foundation.org: coding-style fixes] Link: http://lkml.kernel.org/r/1558322252-113575-1-git-send-email-yang.shi@linux.alibaba.com Fixes: dd2283f2605e ("mm: mmap: zap pages with read mmap_sem in munmap") Signed-off-by: Yang Shi Signed-off-by: Jan Stancek Reported-by: Jan Stancek Tested-by: Jan Stancek Suggested-by: Will Deacon Tested-by: Will Deacon Acked-by: Will Deacon Cc: Peter Zijlstra Cc: Nick Piggin Cc: "Aneesh Kumar K.V" Cc: Nadav Amit Cc: Minchan Kim Cc: Mel Gorman Cc: [4.20+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit be99ca2716972a712cde46092c54dee5e6192bf8 Author: Wengang Wang Date: Thu Jun 13 15:56:01 2019 -0700 fs/ocfs2: fix race in ocfs2_dentry_attach_lock() ocfs2_dentry_attach_lock() can be executed in parallel threads against the same dentry. Make that race safe. The race is like this: thread A thread B (A1) enter ocfs2_dentry_attach_lock, seeing dentry->d_fsdata is NULL, and no alias found by ocfs2_find_local_alias, so kmalloc a new ocfs2_dentry_lock structure to local variable "dl", dl1 ..... (B1) enter ocfs2_dentry_attach_lock, seeing dentry->d_fsdata is NULL, and no alias found by ocfs2_find_local_alias so kmalloc a new ocfs2_dentry_lock structure to local variable "dl", dl2. ...... (A2) set dentry->d_fsdata with dl1, call ocfs2_dentry_lock() and increase dl1->dl_lockres.l_ro_holders to 1 on success. ...... (B2) set dentry->d_fsdata with dl2 call ocfs2_dentry_lock() and increase dl2->dl_lockres.l_ro_holders to 1 on success. ...... (A3) call ocfs2_dentry_unlock() and decrease dl2->dl_lockres.l_ro_holders to 0 on success. .... (B3) call ocfs2_dentry_unlock(), decreasing dl2->dl_lockres.l_ro_holders, but see it's zero now, panic Link: http://lkml.kernel.org/r/20190529174636.22364-1-wen.gang.wang@oracle.com Signed-off-by: Wengang Wang Reported-by: Daniel Sobe Tested-by: Daniel Sobe Reviewed-by: Changwei Ge Reviewed-by: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Cc: Junxiao Bi Cc: Gang He Cc: Jun Piao Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b17f18aff2876ceb3f1fde580c96cd489babf28e Author: Kirill Tkhai Date: Thu Jun 13 15:55:58 2019 -0700 mm/vmscan.c: fix recent_rotated history Johannes pointed out that after commit 886cf1901db9 ("mm: move recent_rotated pages calculation to shrink_inactive_list()") we lost all zone_reclaim_stat::recent_rotated history. This fixes it. Link: http://lkml.kernel.org/r/155905972210.26456.11178359431724024112.stgit@localhost.localdomain Fixes: 886cf1901db9 ("mm: move recent_rotated pages calculation to shrink_inactive_list()") Signed-off-by: Kirill Tkhai Reported-by: Johannes Weiner Acked-by: Michal Hocko Acked-by: Johannes Weiner Cc: Daniel Jordan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit dedca63504a204dc8410d98883fdc16dffa8cb80 Author: Potyra, Stefan Date: Thu Jun 13 15:55:55 2019 -0700 mm/mlock.c: mlockall error for flag MCL_ONFAULT If mlockall() is called with only MCL_ONFAULT as flag, it removes any previously applied lockings and does nothing else. This behavior is counter-intuitive and doesn't match the Linux man page. For mlockall(): EINVAL Unknown flags were specified or MCL_ONFAULT was specified without either MCL_FUTURE or MCL_CURRENT. Consequently, return the error EINVAL, if only MCL_ONFAULT is passed. That way, applications will at least detect that they are calling mlockall() incorrectly. Link: http://lkml.kernel.org/r/20190527075333.GA6339@er01809n.ebgroup.elektrobit.com Fixes: b0f205c2a308 ("mm: mlock: add mlock flags to enable VM_LOCKONFAULT usage") Signed-off-by: Stefan Potyra Reviewed-by: Daniel Jordan Acked-by: Michal Hocko Acked-by: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c04e32e911653442fc834be6e92e072aeebe01a1 Author: Manuel Traut Date: Thu Jun 13 15:55:52 2019 -0700 scripts/decode_stacktrace.sh: prefix addr2line with $CROSS_COMPILE At least for ARM64 kernels compiled with the crosstoolchain from Debian/stretch or with the toolchain from kernel.org the line number is not decoded correctly by 'decode_stacktrace.sh': $ echo "[ 136.513051] f1+0x0/0xc [kcrash]" | \ CROSS_COMPILE=/opt/gcc-8.1.0-nolibc/aarch64-linux/bin/aarch64-linux- \ ./scripts/decode_stacktrace.sh /scratch/linux-arm64/vmlinux \ /scratch/linux-arm64 \ /nfs/debian/lib/modules/4.20.0-devel [ 136.513051] f1 (/linux/drivers/staging/kcrash/kcrash.c:68) kcrash If addr2line from the toolchain is used the decoded line number is correct: [ 136.513051] f1 (/linux/drivers/staging/kcrash/kcrash.c:57) kcrash Link: http://lkml.kernel.org/r/20190527083425.3763-1-manut@linutronix.de Signed-off-by: Manuel Traut Acked-by: Konstantin Khlebnikov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3510955b327176fd4cbab5baa75b449f077722a2 Author: Shakeel Butt Date: Thu Jun 13 15:55:49 2019 -0700 mm/list_lru.c: fix memory leak in __memcg_init_list_lru_node Syzbot reported following memory leak: ffffffffda RBX: 0000000000000003 RCX: 0000000000441f79 BUG: memory leak unreferenced object 0xffff888114f26040 (size 32): comm "syz-executor626", pid 7056, jiffies 4294948701 (age 39.410s) hex dump (first 32 bytes): 40 60 f2 14 81 88 ff ff 40 60 f2 14 81 88 ff ff @`......@`...... 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: slab_post_alloc_hook mm/slab.h:439 [inline] slab_alloc mm/slab.c:3326 [inline] kmem_cache_alloc_trace+0x13d/0x280 mm/slab.c:3553 kmalloc include/linux/slab.h:547 [inline] __memcg_init_list_lru_node+0x58/0xf0 mm/list_lru.c:352 memcg_init_list_lru_node mm/list_lru.c:375 [inline] memcg_init_list_lru mm/list_lru.c:459 [inline] __list_lru_init+0x193/0x2a0 mm/list_lru.c:626 alloc_super+0x2e0/0x310 fs/super.c:269 sget_userns+0x94/0x2a0 fs/super.c:609 sget+0x8d/0xb0 fs/super.c:660 mount_nodev+0x31/0xb0 fs/super.c:1387 fuse_mount+0x2d/0x40 fs/fuse/inode.c:1236 legacy_get_tree+0x27/0x80 fs/fs_context.c:661 vfs_get_tree+0x2e/0x120 fs/super.c:1476 do_new_mount fs/namespace.c:2790 [inline] do_mount+0x932/0xc50 fs/namespace.c:3110 ksys_mount+0xab/0x120 fs/namespace.c:3319 __do_sys_mount fs/namespace.c:3333 [inline] __se_sys_mount fs/namespace.c:3330 [inline] __x64_sys_mount+0x26/0x30 fs/namespace.c:3330 do_syscall_64+0x76/0x1a0 arch/x86/entry/common.c:301 entry_SYSCALL_64_after_hwframe+0x44/0xa9 This is a simple off by one bug on the error path. Link: http://lkml.kernel.org/r/20190528043202.99980-1-shakeelb@google.com Fixes: 60d3fd32a7a9 ("list_lru: introduce per-memcg lists") Reported-by: syzbot+f90a420dfe2b1b03cb2c@syzkaller.appspotmail.com Signed-off-by: Shakeel Butt Acked-by: Michal Hocko Reviewed-by: Kirill Tkhai Cc: [4.0+] Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 815744d75152078cde5391fc1e3c2d4424323fb6 Author: Johannes Weiner Date: Thu Jun 13 15:55:46 2019 -0700 mm: memcontrol: don't batch updates of local VM stats and events The kernel test robot noticed a 26% will-it-scale pagefault regression from commit 42a300353577 ("mm: memcontrol: fix recursive statistics correctness & scalabilty"). This appears to be caused by bouncing the additional cachelines from the new hierarchical statistics counters. We can fix this by getting rid of the batched local counters instead. Originally, there were *only* group-local counters, and they were fully maintained per cpu. A reader of a stats file high up in the cgroup tree would have to walk the entire subtree and collect each level's per-cpu counters to get the recursive view. This was prohibitively expensive, and so we switched to per-cpu batched updates of the local counters during a983b5ebee57 ("mm: memcontrol: fix excessive complexity in memory.stat reporting"), reducing the complexity from nr_subgroups * nr_cpus to nr_subgroups. With growing machines and cgroup trees, the tree walk itself became too expensive for monitoring top-level groups, and this is when the culprit patch added hierarchy counters on each cgroup level. When the per-cpu batch size would be reached, both the local and the hierarchy counters would get batch-updated from the per-cpu delta simultaneously. This makes local and hierarchical counter reads blazingly fast, but it unfortunately makes the write-side too cache line intense. Since local counter reads were never a problem - we only centralized them to accelerate the hierarchy walk - and use of the local counters are becoming rarer due to replacement with hierarchical views (ongoing rework in the page reclaim and workingset code), we can make those local counters unbatched per-cpu counters again. The scheme will then be as such: when a memcg statistic changes, the writer will: - update the local counter (per-cpu) - update the batch counter (per-cpu). If the batch is full: - spill the batch into the group's atomic_t - spill the batch into all ancestors' atomic_ts - empty out the batch counter (per-cpu) when a local memcg counter is read, the reader will: - collect the local counter from all cpus when a hiearchy memcg counter is read, the reader will: - read the atomic_t We might be able to simplify this further and make the recursive counters unbatched per-cpu counters as well (batch upward propagation, but leave per-cpu collection to the readers), but that will require a more in-depth analysis and testing of all the callsites. Deal with the immediate regression for now. Link: http://lkml.kernel.org/r/20190521151647.GB2870@cmpxchg.org Fixes: 42a300353577 ("mm: memcontrol: fix recursive statistics correctness & scalabilty") Signed-off-by: Johannes Weiner Reported-by: kernel test robot Tested-by: kernel test robot Cc: Michal Hocko Cc: Shakeel Butt Cc: Roman Gushchin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3e26c5feed2add218046ecf91bab3cfa9bf762a6 Author: Rafael J. Wysocki Date: Thu Jun 13 23:59:45 2019 +0200 PCI: PM: Skip devices in D0 for suspend-to-idle Commit d491f2b75237 ("PCI: PM: Avoid possible suspend-to-idle issue") attempted to avoid a problem with devices whose drivers want them to stay in D0 over suspend-to-idle and resume, but it did not go as far as it should with that. Namely, first of all, the power state of a PCI bridge with a downstream device in D0 must be D0 (based on the PCI PM spec r1.2, sec 6, table 6-1, if the bridge is not in D0, there can be no PCI transactions on its secondary bus), but that is not actively enforced during system-wide PM transitions, so use the skip_bus_pm flag introduced by commit d491f2b75237 for that. Second, the configuration of devices left in D0 (whatever the reason) during suspend-to-idle need not be changed and attempting to put them into D0 again by force is pointless, so explicitly avoid doing that. Fixes: d491f2b75237 ("PCI: PM: Avoid possible suspend-to-idle issue") Reported-by: Kai-Heng Feng Signed-off-by: Rafael J. Wysocki Reviewed-by: Mika Westerberg Tested-by: Kai-Heng Feng commit 09f6ac2c31f391f754a7bd382e4c0a378662f998 Merge: 0e265747491c 758f2046ea04 Author: Daniel Borkmann Date: Thu Jun 13 23:07:01 2019 +0200 Merge branch 'bpf-ppc-div-fix' Naveen N. Rao says: ==================== The first patch updates DIV64 overflow tests to properly detect error conditions. The second patch fixes powerpc64 JIT to generate the proper unsigned division instruction for BPF_ALU64. ==================== Acked-by: Sandipan Das Signed-off-by: Daniel Borkmann commit 758f2046ea040773ae8ea7f72dd3bbd8fa984501 Author: Naveen N. Rao Date: Thu Jun 13 00:21:40 2019 +0530 powerpc/bpf: use unsigned division instruction for 64-bit operations BPF_ALU64 div/mod operations are currently using signed division, unlike BPF_ALU32 operations. Fix the same. DIV64 and MOD64 overflow tests pass with this fix. Fixes: 156d0e290e969c ("powerpc/ebpf/jit: Implement JIT compiler for extended BPF") Cc: stable@vger.kernel.org # v4.8+ Signed-off-by: Naveen N. Rao Signed-off-by: Daniel Borkmann commit 3e0682695199bad51dd898fe064d1564637ff77a Author: Naveen N. Rao Date: Thu Jun 13 00:21:39 2019 +0530 bpf: fix div64 overflow tests to properly detect errors If the result of the division is LLONG_MIN, current tests do not detect the error since the return value is truncated to a 32-bit value and ends up being 0. Signed-off-by: Naveen N. Rao Signed-off-by: Daniel Borkmann commit 0e265747491cb182429adfbef7d002164566f25c Author: Martynas Pumputis Date: Wed Jun 12 18:05:41 2019 +0200 bpf: sync BPF_FIB_LOOKUP flag changes with BPF uapi Sync the changes to the flags made in "bpf: simplify definition of BPF_FIB_LOOKUP related flags" with the BPF UAPI headers. Doing in a separate commit to ease syncing of github/libbpf. Signed-off-by: Martynas Pumputis Acked-by: Andrii Nakryiko Signed-off-by: Daniel Borkmann commit b1d6c15b9d824a58c5415673f374fac19e8eccdf Author: Martynas Pumputis Date: Wed Jun 12 18:05:40 2019 +0200 bpf: simplify definition of BPF_FIB_LOOKUP related flags Previously, the BPF_FIB_LOOKUP_{DIRECT,OUTPUT} flags in the BPF UAPI were defined with the help of BIT macro. This had the following issues: - In order to use any of the flags, a user was required to depend on . - No other flag in bpf.h uses the macro, so it seems that an unwritten convention is to use (1 << (nr)) to define BPF-related flags. Fixes: 87f5fc7e48dd ("bpf: Provide helper to do forwarding lookups in kernel FIB table") Signed-off-by: Martynas Pumputis Acked-by: Andrii Nakryiko Signed-off-by: Daniel Borkmann commit 487317c99477d00f22370625d53be3239febabbe Author: Ronnie Sahlberg Date: Wed Jun 5 10:38:38 2019 +1000 cifs: add spinlock for the openFileList to cifsInodeInfo We can not depend on the tcon->open_file_lock here since in multiuser mode we may have the same file/inode open via multiple different tcons. The current code is race prone and will crash if one user deletes a file at the same time a different user opens/create the file. To avoid this we need to have a spinlock attached to the inode and not the tcon. RHBZ: 1580165 CC: Stable Signed-off-by: Ronnie Sahlberg Signed-off-by: Steve French Reviewed-by: Pavel Shilovsky commit 0ff2b018b02f89da26a616e0148582321a00fd99 Author: Ronnie Sahlberg Date: Wed Jun 5 10:15:34 2019 +1000 cifs: fix panic in smb2_reconnect RH Bugzilla: 1702264 We need to protect so that the call to smb2_reconnect() in smb2_reconnect_server() does not end up freeing the session because it can lead to a use after free and crash. Reviewed-by: Aurelien Aptel Cc: Signed-off-by: Ronnie Sahlberg Signed-off-by: Steve French Reviewed-by: Pavel Shilovsky commit 8d3289f2fa1e0c7e2f72c7352f1efb75d2ad7c76 Author: Christoph Hellwig Date: Tue Jun 4 19:54:12 2019 +0200 x86/fpu: Don't use current->mm to check for a kthread current->mm can be non-NULL if a kthread calls use_mm(). Check for PF_KTHREAD instead to decide when to store user mode FP state. Fixes: 2722146eb784 ("x86/fpu: Remove fpu->initialized") Reported-by: Peter Zijlstra Signed-off-by: Christoph Hellwig Signed-off-by: Borislav Petkov Acked-by: Sebastian Andrzej Siewior Cc: Aubrey Li Cc: Dave Hansen Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: Nicolai Stange Cc: Rik van Riel Cc: Thomas Gleixner Cc: x86-ml Link: https://lkml.kernel.org/r/20190604175411.GA27477@lst.de commit 6cb3dd75b00e987f5aaa515a4977d3f3ffd0b651 Merge: 4dde821e4296 5d6168fc61b7 Author: Thomas Gleixner Date: Thu Jun 13 18:34:54 2019 +0200 Merge tag 'timers-v5.2-rc1' of https://git.linaro.org/people/daniel.lezcano/linux into timers/urgent Pull timer fixes from Daniel Lezcano: - Fix missing notrace leading to deadlock on arch_arm_timer (Julien Thierry) - Fix compilation warning on timer-ti-dm (Philippe Mazenauer) commit c11fb13a117e5a6736481c779cb971249ed96016 Merge: b076173a309e 3ed224e273ac Author: Linus Torvalds Date: Thu Jun 13 05:59:05 2019 -1000 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid Pull HID fixes from Jiri Kosina: - regression fixes (reverts) for module loading changes that turned out to be incompatible with some userspace, from Benjamin Tissoires - regression fix for special Logitech unifiying receiver 0xc52f, from Hans de Goede - a few device ID additions to logitech driver, from Hans de Goede - fix for Bluetooth support on 2nd-gen Wacom Intuos Pro, from Jason Gerecke * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid: HID: logitech-dj: Fix 064d:c52f receiver support Revert "HID: core: Call request_module before doing device_add" Revert "HID: core: Do not call request_module() in async context" Revert "HID: Increase maximum report size allowed by hid_field_extract()" HID: a4tech: fix horizontal scrolling HID: hyperv: Add a module description line HID: logitech-hidpp: Add support for the S510 remote control HID: multitouch: handle faulty Elo touch device HID: wacom: Sync INTUOSP2_BT touch state after each frame if necessary HID: wacom: Correct button numbering 2nd-gen Intuos Pro over Bluetooth HID: wacom: Send BTN_TOUCH in response to INTUOSP2_BT eraser contact HID: wacom: Don't report anything prior to the tool entering range HID: wacom: Don't set tool type until we're in range HID: rmi: Use SET_REPORT request on control endpoint for Acer Switch 3 and 5 HID: logitech-hidpp: add support for the MX5500 keyboard HID: logitech-dj: add support for the Logitech MX5500's Bluetooth Mini-Receiver HID: i2c-hid: add iBall Aer3 to descriptor override commit 84396d141894c52f55c1276630587862f5ced7dd Merge: 352bcae97f9b 3da428ff2aa5 Author: Takashi Iwai Date: Thu Jun 13 17:33:34 2019 +0200 Merge tag 'asoc-fix-v5.2-rc4' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Fixes for v5.2 There's an awful lot of fixes here, almost all for the newly introduced SoF DSP drivers (including a few things it turned up in shared code). This is a large and complex piece of code so it's not surprising that there have been quite a few issues here, fortunately things seem to have mostly calmed down now. Otherwise there's just a smattering of small fixes. commit f9bc5227652df4900eff12a9b8b38e9a8c7c78ea Author: Vitaly Kuznetsov Date: Thu Jun 13 13:35:02 2019 +0200 KVM: nVMX: use correct clean fields when copying from eVMCS Unfortunately, a couple of mistakes were made while implementing Enlightened VMCS support, in particular, wrong clean fields were used in copy_enlightened_to_vmcs12(): - exception_bitmap is covered by CONTROL_EXCPN; - vm_exit_controls/pin_based_vm_exec_control/secondary_vm_exec_control are covered by CONTROL_GRP1. Fixes: 945679e301ea0 ("KVM: nVMX: add enlightened VMCS state") Signed-off-by: Vitaly Kuznetsov Signed-off-by: Paolo Bonzini commit 11aff183225c5cf48fae074cd99d8f18ba84ed34 Author: Farhan Ali Date: Mon Jun 3 11:42:47 2019 -0400 vfio-ccw: Destroy kmem cache region on module exit Free the vfio_ccw_cmd_region on module exit. Fixes: d5afd5d135c8 ("vfio-ccw: add handling for async channel instructions") Signed-off-by: Farhan Ali Message-Id: Signed-off-by: Cornelia Huck Signed-off-by: Heiko Carstens commit febe80307d2ca42157a346507c10d9a81fc28abf Merge: 76509d6b103b c5cc0bf870cf Author: Daniel Vetter Date: Thu Jun 13 11:49:15 2019 +0200 Merge tag 'drm-intel-fixes-2019-06-13' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes drm/i915 fixes for v5.2-rc5: - Fix DMC firmware input validation to avoid buffer overflow - Fix perf register access whitelist for userspace - Fix DSI panel on GPD MicroPC - Fix per-pixel alpha with CCS - Fix HDMI audio for SDVO Signed-off-by: Daniel Vetter From: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/87y325x22w.fsf@intel.com commit 1d0c06513bd44e724f572ef9c932d0c889d183c6 Author: Geert Uytterhoeven Date: Thu Jun 13 09:30:06 2019 +0200 block/ps3vram: Use %llu to format sector_t after LBDAF removal The removal of CONFIG_LBDAF changed the type of sector_t from "unsigned long" to "u64" aka "unsigned long long" on 64-bit platforms, leading to a compiler warning regression: drivers/block/ps3vram.c: In function ‘ps3vram_probe’: drivers/block/ps3vram.c:770:23: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘sector_t {aka long long unsigned int}’ [-Wformat=] Fix this by using "%llu" instead. Fixes: 72deb455b5ec619f ("block: remove CONFIG_LBDAF") Signed-off-by: Geert Uytterhoeven Signed-off-by: Jens Axboe commit 31f6264e225fb92cf6f4b63031424f20797c297d Author: Hans de Goede Date: Tue Jun 11 16:32:59 2019 +0200 libata: Extend quirks for the ST1000LM024 drives with NOLPM quirk We've received a bugreport that using LPM with ST1000LM024 drives leads to system lockups. So it seems that these models are buggy in more then 1 way. Add NOLPM quirk to the existing quirks entry for BROKEN_FPDMA_AA. BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1571330 Cc: stable@vger.kernel.org Reviewed-by: Martin K. Petersen Signed-off-by: Hans de Goede Signed-off-by: Jens Axboe commit 1f0ffa67349c56ea54c03ccfd1e073c990e7411e Author: Coly Li Date: Mon Jun 10 06:13:35 2019 +0800 bcache: only set BCACHE_DEV_WB_RUNNING when cached device attached When people set a writeback percent via sysfs file, /sys/block/bcache/bcache/writeback_percent current code directly sets BCACHE_DEV_WB_RUNNING to dc->disk.flags and schedules kworker dc->writeback_rate_update. If there is no cache set attached to, the writeback kernel thread is not running indeed, running dc->writeback_rate_update does not make sense and may cause NULL pointer deference when reference cache set pointer inside update_writeback_rate(). This patch checks whether the cache set point (dc->disk.c) is NULL in sysfs interface handler, and only set BCACHE_DEV_WB_RUNNING and schedule dc->writeback_rate_update when dc->disk.c is not NULL (it means the cache device is attached to a cache set). This problem might be introduced from initial bcache commit, but commit 3fd47bfe55b0 ("bcache: stop dc->writeback_rate_update properly") changes part of the original code piece, so I add 'Fixes: 3fd47bfe55b0' to indicate from which commit this patch can be applied. Fixes: 3fd47bfe55b0 ("bcache: stop dc->writeback_rate_update properly") Reported-by: Bjørn Forsman Signed-off-by: Coly Li Reviewed-by: Bjørn Forsman Cc: stable@vger.kernel.org Signed-off-by: Jens Axboe commit 31b90956b124240aa8c63250243ae1a53585c5e2 Author: Coly Li Date: Mon Jun 10 06:13:34 2019 +0800 bcache: fix stack corruption by PRECEDING_KEY() Recently people report bcache code compiled with gcc9 is broken, one of the buggy behavior I observe is that two adjacent 4KB I/Os should merge into one but they don't. Finally it turns out to be a stack corruption caused by macro PRECEDING_KEY(). See how PRECEDING_KEY() is defined in bset.h, 437 #define PRECEDING_KEY(_k) \ 438 ({ \ 439 struct bkey *_ret = NULL; \ 440 \ 441 if (KEY_INODE(_k) || KEY_OFFSET(_k)) { \ 442 _ret = &KEY(KEY_INODE(_k), KEY_OFFSET(_k), 0); \ 443 \ 444 if (!_ret->low) \ 445 _ret->high--; \ 446 _ret->low--; \ 447 } \ 448 \ 449 _ret; \ 450 }) At line 442, _ret points to address of a on-stack variable combined by KEY(), the life range of this on-stack variable is in line 442-446, once _ret is returned to bch_btree_insert_key(), the returned address points to an invalid stack address and this address is overwritten in the following called bch_btree_iter_init(). Then argument 'search' of bch_btree_iter_init() points to some address inside stackframe of bch_btree_iter_init(), exact address depends on how the compiler allocates stack space. Now the stack is corrupted. Fixes: 0eacac22034c ("bcache: PRECEDING_KEY()") Signed-off-by: Coly Li Reviewed-by: Rolf Fokkens Reviewed-by: Pierre JUHEN Tested-by: Shenghui Wang Tested-by: Pierre JUHEN Cc: Kent Overstreet Cc: Nix Cc: stable@vger.kernel.org Signed-off-by: Jens Axboe commit 41040cf7c5f0f26c368bc5d3016fed3a9ca6dba4 Author: Dave Martin Date: Wed Jun 12 17:00:32 2019 +0100 arm64/sve: Fix missing SVE/FPSIMD endianness conversions The in-memory representation of SVE and FPSIMD registers is different: the FPSIMD V-registers are stored as single 128-bit host-endian values, whereas SVE registers are stored in an endianness-invariant byte order. This means that the two representations differ when running on a big-endian host. But we blindly copy data from one representation to another when converting between the two, resulting in the register contents being unintentionally byteswapped in certain situations. Currently this can be triggered by the first SVE instruction after a syscall, for example (though the potential trigger points may vary in future). So, fix the conversion functions fpsimd_to_sve(), sve_to_fpsimd() and sve_sync_from_fpsimd_zeropad() to swab where appropriate. There is no common swahl128() or swab128() that we could use here. Maybe it would be worth making this generic, but for now add a simple local hack. Since the byte order differences are exposed in ABI, also clarify the documentation. Cc: Alex Bennée Cc: Peter Maydell Cc: Alan Hayward Cc: Julien Grall Fixes: bc0ee4760364 ("arm64/sve: Core task context handling") Fixes: 8cd969d28fd2 ("arm64/sve: Signal handling support") Fixes: 43d4da2c45b2 ("arm64/sve: ptrace and ELF coredump support") Signed-off-by: Dave Martin [will: Fix typos in comments and docs spotted by Julien] Signed-off-by: Will Deacon commit c326f846ebc2a30eca386b85dffba96e23803d81 Author: Ming Lei Date: Tue Jun 11 17:31:53 2019 +0800 blk-mq: remove WARN_ON(!q->elevator) from blk_mq_sched_free_requests blk_mq_sched_free_requests() may be called in failure path in which q->elevator may not be setup yet, so remove WARN_ON(!q->elevator) from blk_mq_sched_free_requests for avoiding the false positive. This function is actually safe to call in case of !q->elevator because hctx->sched_tags is checked. Cc: Bart Van Assche Cc: Christoph Hellwig Cc: Yi Zhang Fixes: c3e2219216c9 ("block: free sched's request pool in blk_cleanup_queue") Reported-by: syzbot+b9d0d56867048c7bcfde@syzkaller.appspotmail.com Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit fb5772cbfe48575711bf789767d561582376f7f1 Author: Andreas Herrmann Date: Wed Jun 12 08:17:32 2019 +0200 blkio-controller.txt: Remove references to CFQ CFQ is gone. No need anymore to document its "proportional weight time based division of disk policy". Signed-off-by: Andreas Herrmann Signed-off-by: Jens Axboe commit 8614b0085d98482a065f0a308d715b9d4212aebf Author: Andreas Herrmann Date: Wed Jun 12 08:50:09 2019 +0200 block/switching-sched.txt: Update to blk-mq schedulers Remove references to CFQ and legacy block layer which are gone. Update example with what's available under blk-mq. Signed-off-by: Andreas Herrmann Signed-off-by: Jens Axboe commit 154085ffdcc6875851b80a5d2bd759bbf687b001 Author: Chaitanya Kulkarni Date: Tue Jun 11 15:10:17 2019 -0700 null_blk: remove duplicate check for report zone This patch removes the check in the null_blk_zoned for report zone command, where it checks for the dev-,>zoned before executing the report zone. The null_zone_report() function is a block_device operation callback which is initialized in the null_blk_main.c and gets called as a part of blkdev for report zone IOCTL (BLKREPORTZONE). blkdev_ioctl() blkdev_report_zones_ioctl() blkdev_report_zones() blk_report_zones() disk->fops->report_zones() nullb_zone_report(); The null_zone_report() will never get executed on the non-zoned block device, in the non zoned block device blk_queue_is_zoned() will always be false which is first check the blkdev_report_zones_ioctl() before actual low level driver report zone callback is executed. Here is the detailed scenario:- 1. modprobe null_blk null_init null_alloc_dev dev->zoned = 0 null_add_dev dev->zoned == 0 so we don't set the q->limits.zoned = BLK_ZONED_HR 2. blkzone report /dev/nullb0 blkdev_ioctl() blkdev_report_zones_ioctl() blk_queue_is_zoned() blk_queue_is_zoned q->limits.zoned == 0 return false if (!blk_queue_is_zoned(q)) <--- true return -ENOTTY; Reviewed-by: Damien Le Moal Reviewed-by: Bob Liu Signed-off-by: Chaitanya Kulkarni Signed-off-by: Jens Axboe commit 6cfc0081b046ebf50dd38c38e688c8de143614f3 Author: Greg Kroah-Hartman Date: Wed Jun 12 14:30:19 2019 +0200 blk-mq: no need to check return value of debugfs_create functions When calling debugfs functions, there is no need to ever check the return value. The function can work or not, but the code logic should never do something different based on this. When all of these checks are cleaned up, lots of the functions used in the blk-mq-debugfs code can now return void, as no need to check the return value of them either. Overall, this ends up cleaning up the code and making it smaller, always a nice win. Cc: Jens Axboe Cc: linux-block@vger.kernel.org Signed-off-by: Greg Kroah-Hartman Signed-off-by: Jens Axboe commit 355e8d26f719c207aa2e00e6f3cfab3acf21769b Author: Eric Biggers Date: Wed Jun 12 14:58:43 2019 -0700 io_uring: fix memory leak of UNIX domain socket inode Opening and closing an io_uring instance leaks a UNIX domain socket inode. This is because the ->file of the io_uring instance's internal UNIX domain socket is set to point to the io_uring file, but then sock_release() sees the non-NULL ->file and assumes the inode reference is held by the file so doesn't call iput(). That's not the case here, since the reference is still meant to be held by the socket; the actual inode of the io_uring file is different. Fix this leak by NULL-ing out ->file before releasing the socket. Reported-by: syzbot+111cb28d9f583693aefa@syzkaller.appspotmail.com Fixes: 2b188cc1bb85 ("Add io_uring IO interface") Cc: # v5.1+ Signed-off-by: Eric Biggers Signed-off-by: Jens Axboe commit b9aef63aca772a25ffcfaedf4bd29fb36b919a93 Author: Damien Le Moal Date: Tue Jun 4 16:23:40 2019 +0900 block: force select mq-deadline for zoned block devices In most use cases of zoned block devices (aka SMR disks), the mq-deadline scheduler is mandatory as it implements sequential write command processing guarantees with zone write locking. So make sure that this scheduler is always enabled if CONFIG_BLK_DEV_ZONED is selected. Tested-by: Chaitanya Kulkarni Reviewed-by: Chaitanya Kulkarni Signed-off-by: Damien Le Moal Reviewed-by: Ming Lei Signed-off-by: Jens Axboe commit a370003cc301d4361bae20c9ef615f89bf8d1e8a Author: Todd Kjos Date: Wed Jun 12 13:29:27 2019 -0700 binder: fix possible UAF when freeing buffer There is a race between the binder driver cleaning up a completed transaction via binder_free_transaction() and a user calling binder_ioctl(BC_FREE_BUFFER) to release a buffer. It doesn't matter which is first but they need to be protected against running concurrently which can result in a UAF. Signed-off-by: Todd Kjos Cc: stable Signed-off-by: Greg Kroah-Hartman commit 65565a68c582fec2f2a8f5aaa399118ab1209103 Merge: c21f5a9ed85c 16391bfc8623 Author: Michael Ellerman Date: Thu Jun 13 15:00:34 2019 +1000 Merge branch 'context-id-fix' into fixes This merges a fix for a bug in our context id handling on 64-bit hash CPUs. The fix was written against v5.1 to ease backporting to stable releases. Here we are merging it up to a v5.2-rc2 base, which involves a bit of manual resolution. It also adds a test case for the bug. Signed-off-by: Michael Ellerman commit b076173a309e2ceae84257d1d52cd3cc53b00e39 Merge: 35110e38e6c5 fec6375320c6 Author: Linus Torvalds Date: Wed Jun 12 16:10:57 2019 -1000 Merge tag 'selinux-pr-20190612' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux Pull selinux fixes from Paul Moore: "Three patches for v5.2. One fixes a problem where we weren't correctly logging raw SELinux labels, the other two fix problems where we weren't properly checking calls to kmemdup()" * tag 'selinux-pr-20190612' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux: selinux: fix a missing-check bug in selinux_sb_eat_lsm_opts() selinux: fix a missing-check bug in selinux_add_mnt_opt( ) selinux: log raw contexts as untrusted strings commit 16391bfc862342f285195013b73c1394fab28b97 Author: Michael Ellerman Date: Thu Jun 13 12:07:59 2019 +1000 selftests/powerpc: Add test of fork with mapping above 512TB This tests that when a process with a mapping above 512TB forks we correctly separate the parent and child address spaces. This exercises the bug in the context id handling fixed in the previous commit. Signed-off-by: Michael Ellerman commit f3a5231c8f14acd42845e9e60f506b4e948f0e68 Author: Alex Deucher Date: Tue Jun 11 09:45:51 2019 -0500 drm/amdgpu: return 0 by default in amdgpu_pm_load_smu_firmware Fixes SI cards running on amdgpu. Fixes: 1929059893022 ("drm/amd/amdgpu: add RLC firmware to support raven1 refresh") Bug: https://bugs.freedesktop.org/show_bug.cgi?id=110883 Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit 99f304beb82a86713dc4bc1fd65b8dfda25b1f5e Author: Dan Carpenter Date: Sat Jun 8 12:23:57 2019 +0300 drm/amdgpu: Fix bounds checking in amdgpu_ras_is_supported() The "block" variable can be set by the user through debugfs, so it can be quite large which leads to shift wrapping here. This means we report a "block" as supported when it's not, and that leads to array overflows later on. This bug is not really a security issue in real life, because debugfs is generally root only. Fixes: 36ea1bd2d084 ("drm/amdgpu: add debugfs ctrl node") Signed-off-by: Dan Carpenter Signed-off-by: Alex Deucher commit f18d43046ad2d14ea62b0b4c2b47dd48453cf446 Merge: 41b3588dba6e 3ff46efbcd90 Author: Stephen Boyd Date: Wed Jun 12 15:58:11 2019 -0700 Merge tag 'clk-meson-5.2-1-fixes' of https://github.com/BayLibre/clk-meson into clk-fixes Pull Meson clk driver fixes from Jerome Brunet: - MPLL50M DT bindings typo fix - Meson9 VPU typo fixes * tag 'clk-meson-5.2-1-fixes' of https://github.com/BayLibre/clk-meson: clk: meson: meson8b: fix a typo in the VPU parent names array variable clk: meson: fix MPLL 50M binding id typo commit 9843f3e08e2144724be7148e08d77a195dea257a Author: Alexander Mikhaylenko Date: Wed Jun 12 14:59:46 2019 -0700 Input: synaptics - enable SMBus on ThinkPad E480 and E580 They are capable of using intertouch and it works well with psmouse.synaptics_intertouch=1, so add them to the list. Without it, scrolling and gestures are jumpy, three-finger pinch gesture doesn't work and three- or four-finger swipes sometimes get stuck. Signed-off-by: Alexander Mikhaylenko Reviewed-by: Benjamin Tissoires Cc: stable@vger.kernel.org Signed-off-by: Dmitry Torokhov commit b8003cef2e639fbf462a05ff739aae524d72ca3c Merge: 1d63f0e3274f 6b7a3430c163 Author: David S. Miller Date: Wed Jun 12 11:12:58 2019 -0700 Merge branch 'net-mvpp2-prs-Fixes-for-VID-filtering' Maxime Chevallier says: ==================== net: mvpp2: prs: Fixes for VID filtering This series fixes some issues with VID filtering offload, mainly due to the wrong ranges being used in the TCAM header parser. The first patch fixes a bug where removing a VLAN from a port's whitelist would also remove it from other port's, if they are on the same PPv2 instance. The second patch makes so that we don't invalidate the wrong TCAM entries when clearing the whole whitelist. ==================== Signed-off-by: David S. Miller commit 6b7a3430c163455cf8a514d636bda52b04654972 Author: Maxime Chevallier Date: Tue Jun 11 11:51:43 2019 +0200 net: mvpp2: prs: Use the correct helpers when removing all VID filters When removing all VID filters, the mvpp2_prs_vid_entry_remove would be called with the TCAM id incorrectly used as a VID, causing the wrong TCAM entries to be invalidated. Fix this by directly invalidating entries in the VID range. Fixes: 56beda3db602 ("net: mvpp2: Add hardware offloading for VLAN filtering") Suggested-by: Yuri Chipchev Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit 46b0090a6636cf34c0e856f15dd03e15ba4cdda6 Author: Maxime Chevallier Date: Tue Jun 11 11:51:42 2019 +0200 net: mvpp2: prs: Fix parser range for VID filtering VID filtering is implemented in the Header Parser, with one range of 11 vids being assigned for each no-loopback port. Make sure we use the per-port range when looking for existing entries in the Parser. Since we used a global range instead of a per-port one, this causes VIDs to be removed from the whitelist from all ports of the same PPv2 instance. Fixes: 56beda3db602 ("net: mvpp2: Add hardware offloading for VLAN filtering") Suggested-by: Yuri Chipchev Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit 1d63f0e3274f54e41d2fe35af3076891761e4371 Merge: 648ee6cea7dd 4b14cc313f07 Author: David S. Miller Date: Wed Jun 12 11:08:15 2019 -0700 Merge branch 'mlxsw-Various-fixes' Ido Schimmel says: ==================== mlxsw: Various fixes This patchset contains various fixes for mlxsw. Patch #1 fixes an hash polarization problem when a nexthop device is a LAG device. This is caused by the fact that the same seed is used for the LAG and ECMP hash functions. Patch #2 fixes an issue in which the driver fails to refresh a nexthop neighbour after it becomes dead. This prevents the nexthop from ever being written to the adjacency table and used to forward traffic. Patch Patch #4 fixes a wrong extraction of TOS value in flower offload code. Patch #5 is a test case. Patch #6 works around a buffer issue in Spectrum-2 by reducing the default sizes of the shared buffer pools. Patch #7 prevents prio-tagged packets from entering the switch when PVID is removed from the bridge port. Please consider patches #2, #4 and #6 for 5.1.y ==================== Signed-off-by: David S. Miller commit 4b14cc313f076c37b646cee06a85f0db59cf216c Author: Ido Schimmel Date: Tue Jun 11 10:19:46 2019 +0300 mlxsw: spectrum: Disallow prio-tagged packets when PVID is removed When PVID is removed from a bridge port, the Linux bridge drops both untagged and prio-tagged packets. Align mlxsw with this behavior. Fixes: 148f472da5db ("mlxsw: reg: Add the Switch Port Acceptable Frame Types register") Acked-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit e891ce1dd2a54c41a3b70d822cd832735c03b892 Author: Petr Machata Date: Tue Jun 11 10:19:45 2019 +0300 mlxsw: spectrum_buffers: Reduce pool size on Spectrum-2 Due to an issue on Spectrum-2, in front-panel ports split four ways, 2 out of 32 port buffers cannot be used. To work around this, the next FW release will mark them as unused, and will report correspondingly lower total shared buffer size. mlxsw will pick up the new value through a query to cap_total_buffer_size resource. However the initial size for shared buffer pool 0 is hard-coded and therefore needs to be updated. Thus reduce the pool size by 2.7 MiB (which corresponds to 2/32 of the total size of 42 MiB), and round down to the whole number of cells. Fixes: fe099bf682ab ("mlxsw: spectrum_buffers: Add Spectrum-2 shared buffer configuration") Signed-off-by: Petr Machata Acked-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit 0b0c0098348f61e864d85269614bce15f6bbfde7 Author: Jiri Pirko Date: Tue Jun 11 10:19:44 2019 +0300 selftests: tc_flower: Add TOS matching test Signed-off-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit e49f9adffb28c5acbaea46ddfe2d17b1373c2473 Author: Jiri Pirko Date: Tue Jun 11 10:19:43 2019 +0300 mlxsw: spectrum_flower: Fix TOS matching The TOS value was not extracted correctly. Fix it. Fixes: 87996f91f739 ("mlxsw: spectrum_flower: Add support for ip tos") Reported-by: Alexander Petrovskiy Signed-off-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit 45a69b70f54854a043530cc0f86fc30d77bc9620 Author: Ido Schimmel Date: Tue Jun 11 10:19:42 2019 +0300 selftests: mlxsw: Test nexthop offload indication Test that IPv4 and IPv6 nexthops are correctly marked with offload indication in response to neighbour events. Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit 83d5782681cc12b3d485a83cb34c46b2445f510c Author: Ido Schimmel Date: Tue Jun 11 10:19:41 2019 +0300 mlxsw: spectrum_router: Refresh nexthop neighbour when it becomes dead The driver tries to periodically refresh neighbours that are used to reach nexthops. This is done by periodically calling neigh_event_send(). However, if the neighbour becomes dead, there is nothing we can do to return it to a connected state and the above function call is basically a NOP. This results in the nexthop never being written to the device's adjacency table and therefore never used to forward packets. Fix this by dropping our reference from the dead neighbour and associating the nexthop with a new neigbhour which we will try to refresh. Fixes: a7ff87acd995 ("mlxsw: spectrum_router: Implement next-hop routing") Signed-off-by: Ido Schimmel Reported-by: Alex Veber Tested-by: Alex Veber Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit ee02c26993262c96cc39d0f831f7589b10a44fd7 Author: Ido Schimmel Date: Tue Jun 11 10:19:40 2019 +0300 mlxsw: spectrum: Use different seeds for ECMP and LAG hash The same hash function and seed are used for both ECMP and LAG hash. Therefore, when a LAG device is used as a nexthop device as part of an ECMP group, hash polarization can occur and all the traffic will be hashed to a single LAG slave. Fix this by using a different seed for the LAG hash. Fixes: fa73989f2697 ("mlxsw: spectrum: Use a stable ECMP/LAG seed") Signed-off-by: Ido Schimmel Reported-by: Alex Veber Tested-by: Alex Veber Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit 648ee6cea7dde4a5cdf817e5d964fd60b22006a4 Author: John Fastabend Date: Wed Jun 12 17:23:57 2019 +0000 net: tls, correctly account for copied bytes with multiple sk_msgs tls_sw_do_sendpage needs to return the total number of bytes sent regardless of how many sk_msgs are allocated. Unfortunately, copied (the value we return up the stack) is zero'd before each new sk_msg is allocated so we only return the copied size of the last sk_msg used. The caller (splice, etc.) of sendpage will then believe only part of its data was sent and send the missing chunks again. However, because the data actually was sent the receiver will get multiple copies of the same data. To reproduce this do multiple sendfile calls with a length close to the max record size. This will in turn call splice/sendpage, sendpage may use multiple sk_msg in this case and then returns the incorrect number of bytes. This will cause splice to resend creating duplicate data on the receiver. Andre created a C program that can easily generate this case so we will push a similar selftest for this to bpf-next shortly. The fix is to _not_ zero the copied field so that the total sent bytes is returned. Reported-by: Steinar H. Gunderson Reported-by: Andre Tomt Tested-by: Andre Tomt Fixes: d829e9c4112b ("tls: convert to generic sk_msg interface") Signed-off-by: John Fastabend Signed-off-by: David S. Miller commit e1ae5c2ea4783b1fd87be250f9fcc9d9e1a6ba3f Author: Stephen Suryaputra Date: Mon Jun 10 10:32:50 2019 -0400 vrf: Increment Icmp6InMsgs on the original netdev Get the ingress interface and increment ICMP counters based on that instead of skb->dev when the the dev is a VRF device. This is a follow up on the following message: https://www.spinics.net/lists/netdev/msg560268.html v2: Avoid changing skb->dev since it has unintended effect for local delivery (David Ahern). Signed-off-by: Stephen Suryaputra Reviewed-by: David Ahern Signed-off-by: David S. Miller commit d477f8c202d1f0d4791ab1263ca7657bbe5cf79e Author: Joel Savitz Date: Wed Jun 12 11:50:48 2019 -0400 cpuset: restore sanity to cpuset_cpus_allowed_fallback() In the case that a process is constrained by taskset(1) (i.e. sched_setaffinity(2)) to a subset of available cpus, and all of those are subsequently offlined, the scheduler will set tsk->cpus_allowed to the current value of task_cs(tsk)->effective_cpus. This is done via a call to do_set_cpus_allowed() in the context of cpuset_cpus_allowed_fallback() made by the scheduler when this case is detected. This is the only call made to cpuset_cpus_allowed_fallback() in the latest mainline kernel. However, this is not sane behavior. I will demonstrate this on a system running the latest upstream kernel with the following initial configuration: # grep -i cpu /proc/$$/status Cpus_allowed: ffffffff,fffffff Cpus_allowed_list: 0-63 (Where cpus 32-63 are provided via smt.) If we limit our current shell process to cpu2 only and then offline it and reonline it: # taskset -p 4 $$ pid 2272's current affinity mask: ffffffffffffffff pid 2272's new affinity mask: 4 # echo off > /sys/devices/system/cpu/cpu2/online # dmesg | tail -3 [ 2195.866089] process 2272 (bash) no longer affine to cpu2 [ 2195.872700] IRQ 114: no longer affine to CPU2 [ 2195.879128] smpboot: CPU 2 is now offline # echo on > /sys/devices/system/cpu/cpu2/online # dmesg | tail -1 [ 2617.043572] smpboot: Booting Node 0 Processor 2 APIC 0x4 We see that our current process now has an affinity mask containing every cpu available on the system _except_ the one we originally constrained it to: # grep -i cpu /proc/$$/status Cpus_allowed: ffffffff,fffffffb Cpus_allowed_list: 0-1,3-63 This is not sane behavior, as the scheduler can now not only place the process on previously forbidden cpus, it can't even schedule it on the cpu it was originally constrained to! Other cases result in even more exotic affinity masks. Take for instance a process with an affinity mask containing only cpus provided by smt at the moment that smt is toggled, in a configuration such as the following: # taskset -p f000000000 $$ # grep -i cpu /proc/$$/status Cpus_allowed: 000000f0,00000000 Cpus_allowed_list: 36-39 A double toggle of smt results in the following behavior: # echo off > /sys/devices/system/cpu/smt/control # echo on > /sys/devices/system/cpu/smt/control # grep -i cpus /proc/$$/status Cpus_allowed: ffffff00,ffffffff Cpus_allowed_list: 0-31,40-63 This is even less sane than the previous case, as the new affinity mask excludes all smt-provided cpus with ids less than those that were previously in the affinity mask, as well as those that were actually in the mask. With this patch applied, both of these cases end in the following state: # grep -i cpu /proc/$$/status Cpus_allowed: ffffffff,ffffffff Cpus_allowed_list: 0-63 The original policy is discarded. Though not ideal, it is the simplest way to restore sanity to this fallback case without reinventing the cpuset wheel that rolls down the kernel just fine in cgroup v2. A user who wishes for the previous affinity mask to be restored in this fallback case can use that mechanism instead. This patch modifies scheduler behavior by instead resetting the mask to task_cs(tsk)->cpus_allowed by default, and cpu_possible mask in legacy mode. I tested the cases above on both modes. Note that the scheduler uses this fallback mechanism if and only if _every_ other valid avenue has been traveled, and it is the last resort before calling BUG(). Suggested-by: Waiman Long Suggested-by: Phil Auld Signed-off-by: Joel Savitz Acked-by: Phil Auld Acked-by: Waiman Long Acked-by: Peter Zijlstra (Intel) Signed-off-by: Tejun Heo commit f0d2ca1531377e7da888913e277eefac05a59b6f Author: Maxime Chevallier Date: Wed Jun 12 17:18:38 2019 +0200 net: ethtool: Allow matching on vlan DEI bit Using ethtool, users can specify a classification action matching on the full vlan tag, which includes the DEI bit (also previously called CFI). However, when converting the ethool_flow_spec to a flow_rule, we use dissector keys to represent the matching patterns. Since the vlan dissector key doesn't include the DEI bit, this information was silently discarded when translating the ethtool flow spec in to a flow_rule. This commit adds the DEI bit into the vlan dissector key, and allows propagating the information to the driver when parsing the ethtool flow spec. Fixes: eca4205f9ec3 ("ethtool: add ethtool_rx_flow_spec to flow_rule structure translator") Reported-by: Michał Mirosław Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit bb2e05e0c8dcc2c93a97410ce362da998b83155f Author: Masanari Iida Date: Wed Jun 12 21:29:34 2019 +0900 linux-next: DOC: RDS: Fix a typo in rds.txt This patch fixes a spelling typo in rds.txt Signed-off-by: Masanari Iida Acked-by: Santosh Shilimkar Signed-off-by: David S. Miller commit 71ab8323cc357c68985a2d6fc6cfc22b1dbbc1c3 Author: Matt Mullins Date: Fri May 31 12:47:54 2019 -0700 x86/kgdb: Return 0 from kgdb_arch_set_breakpoint() err must be nonzero in order to reach text_poke(), which caused kgdb to fail to set breakpoints: (gdb) break __x64_sys_sync Breakpoint 1 at 0xffffffff81288910: file ../fs/sync.c, line 124. (gdb) c Continuing. Warning: Cannot insert breakpoint 1. Cannot access memory at address 0xffffffff81288910 Command aborted. Fixes: 86a22057127d ("x86/kgdb: Avoid redundant comparison of patched code") Signed-off-by: Matt Mullins Signed-off-by: Borislav Petkov Reviewed-by: Nadav Amit Cc: Andy Lutomirski Cc: Christophe Leroy Cc: Daniel Thompson Cc: Douglas Anderson Cc: "Gustavo A. R. Silva" Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: "Peter Zijlstra (Intel)" Cc: Rick Edgecombe Cc: Thomas Gleixner Cc: x86-ml Link: https://lkml.kernel.org/r/20190531194755.6320-1-mmullins@fb.com commit ec66854c832c95f612756192d42ac1158593800f Author: Matteo Croce Date: Wed Jun 12 11:50:37 2019 +0200 mpls: fix af_mpls dependencies for real Randy reported that selecting MPLS_ROUTING without PROC_FS breaks the build, because since commit c1a9d65954c6 ("mpls: fix af_mpls dependencies"), MPLS_ROUTING selects PROC_SYSCTL, but Kconfig's select doesn't recursively handle dependencies. Change the select into a dependency. Fixes: c1a9d65954c6 ("mpls: fix af_mpls dependencies") Reported-by: Randy Dunlap Signed-off-by: Matteo Croce Signed-off-by: David S. Miller commit fec6375320c6399c708fa9801f8cfbf950fee623 Author: Gen Zhang Date: Wed Jun 12 21:55:38 2019 +0800 selinux: fix a missing-check bug in selinux_sb_eat_lsm_opts() In selinux_sb_eat_lsm_opts(), 'arg' is allocated by kmemdup_nul(). It returns NULL when fails. So 'arg' should be checked. And 'mnt_opts' should be freed when error. Signed-off-by: Gen Zhang Fixes: 99dbbb593fe6 ("selinux: rewrite selinux_sb_eat_lsm_opts()") Cc: Signed-off-by: Paul Moore commit 76509d6b103b8cbbbb4021be3a024efa23e01cf2 Merge: d1fdb6d8f6a4 2458d9d6d94b Author: Daniel Vetter Date: Wed Jun 12 18:22:28 2019 +0200 Merge branch 'mediatek-drm-fixes-5.2' of https://github.com/ckhu-mediatek/linux.git-tags into drm-fixes CK writes: This include unbind error fix, clock control flow refinement, and PRIME mmap with page offset. Signed-off-by: Daniel Vetter From: CK Hu Link: https://patchwork.freedesktop.org/patch/msgid/1560325868.3259.6.camel@mtksdaap41 commit 35110e38e6c59b0db9618701d75c7c2a36f98d55 Merge: aa7235483a83 a200c721956c Author: Linus Torvalds Date: Wed Jun 12 05:57:05 2019 -1000 Merge tag 'media/v5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media Pull media fixes from Mauro Carvalho Chehab: - a debug warning for satellite tuning at dvb core was producing too much noise - a regression at hfi_parser on Venus driver * tag 'media/v5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: media: venus: hfi_parser: fix a regression in parser media: dvb: warning about dvb frequency limits produces too much noise commit e2e0e09758a6f7597de0f9b819647addfb71b6bd Author: Gen Zhang Date: Wed Jun 12 21:28:21 2019 +0800 selinux: fix a missing-check bug in selinux_add_mnt_opt( ) In selinux_add_mnt_opt(), 'val' is allocated by kmemdup_nul(). It returns NULL when fails. So 'val' should be checked. And 'mnt_opts' should be freed when error. Signed-off-by: Gen Zhang Fixes: 757cbe597fe8 ("LSM: new method: ->sb_add_mnt_opt()") Cc: [PM: fixed some indenting problems] Signed-off-by: Paul Moore commit 01d57485fcdb9f9101a10a18e32d5f8b023cab86 Author: Will Deacon Date: Tue Jun 11 12:47:34 2019 +0100 arm64: tlbflush: Ensure start/end of address range are aligned to stride Since commit 3d65b6bbc01e ("arm64: tlbi: Set MAX_TLBI_OPS to PTRS_PER_PTE"), we resort to per-ASID invalidation when attempting to perform more than PTRS_PER_PTE invalidation instructions in a single call to __flush_tlb_range(). Whilst this is beneficial, the mmu_gather code does not ensure that the end address of the range is rounded-up to the stride when freeing intermediate page tables in pXX_free_tlb(), which defeats our range checking. Align the bounds passed into __flush_tlb_range(). Cc: Catalin Marinas Cc: Peter Zijlstra Reported-by: Hanjun Guo Tested-by: Hanjun Guo Reviewed-by: Hanjun Guo Signed-off-by: Will Deacon commit 5f54a85db5df67df8161739a4b2f9c2b7ab219fe Author: Heikki Krogerus Date: Wed Jun 12 17:15:40 2019 +0300 usb: typec: Make sure an alt mode exist before getting its partner Adding check to typec_altmode_get_partner() to prevent potential NULL pointer dereference. Reported-by: Vladimir Yerilov Fixes: ad74b8649bea ("usb: typec: ucsi: Preliminary support for alternate modes") Signed-off-by: Heikki Krogerus Signed-off-by: Greg Kroah-Hartman commit 4729ec8c1e1145234aeeebad5d96d77f4ccbb00a Author: Dave Martin Date: Thu Jun 6 11:58:07 2019 +0100 KVM: arm/arm64: vgic: Fix kvm_device leak in vgic_its_destroy kvm_device->destroy() seems to be supposed to free its kvm_device struct, but vgic_its_destroy() is not currently doing this, resulting in a memory leak, resulting in kmemleak reports such as the following: unreferenced object 0xffff800aeddfe280 (size 128): comm "qemu-system-aar", pid 13799, jiffies 4299827317 (age 1569.844s) [...] backtrace: [<00000000a08b80e2>] kmem_cache_alloc+0x178/0x208 [<00000000dcad2bd3>] kvm_vm_ioctl+0x350/0xbc0 Fix it. Cc: Andre Przywara Fixes: 1085fdc68c60 ("KVM: arm64: vgic-its: Introduce new KVM ITS device") Signed-off-by: Dave Martin Signed-off-by: Marc Zyngier commit df205b5c63281e4f32caac22adda18fd68795e80 Author: Dave Martin Date: Wed Jun 12 13:44:49 2019 +0100 KVM: arm64: Filter out invalid core register IDs in KVM_GET_REG_LIST Since commit d26c25a9d19b ("arm64: KVM: Tighten guest core register access from userspace"), KVM_{GET,SET}_ONE_REG rejects register IDs that do not correspond to a single underlying architectural register. KVM_GET_REG_LIST was not changed to match however: instead, it simply yields a list of 32-bit register IDs that together cover the whole kvm_regs struct. This means that if userspace tries to use the resulting list of IDs directly to drive calls to KVM_*_ONE_REG, some of those calls will now fail. This was not the intention. Instead, iterating KVM_*_ONE_REG over the list of IDs returned by KVM_GET_REG_LIST should be guaranteed to work. This patch fixes the problem by splitting validate_core_offset() into a backend core_reg_size_from_offset() which does all of the work except for checking that the size field in the register ID matches, and kvm_arm_copy_reg_indices() and num_core_regs() are converted to use this to enumerate the valid offsets. kvm_arm_copy_reg_indices() now also sets the register ID size field appropriately based on the value returned, so the register ID supplied to userspace is fully qualified for use with the register access ioctls. Cc: stable@vger.kernel.org Fixes: d26c25a9d19b ("arm64: KVM: Tighten guest core register access from userspace") Signed-off-by: Dave Martin Reviewed-by: Andrew Jones Tested-by: Andrew Jones Signed-off-by: Marc Zyngier commit 0c529ff789bc7a3efbc732753e0b0fd9f4d9a4a4 Author: Viresh Kumar Date: Mon Jun 10 15:30:03 2019 +0530 KVM: arm64: Implement vq_present() as a macro This routine is a one-liner and doesn't really need to be function and can be implemented as a macro. Suggested-by: Dave Martin Reviewed-by: Dave Martin Signed-off-by: Viresh Kumar Signed-off-by: Marc Zyngier commit 01d76b5317003e019ace561a9b775f51aafdfdc4 Author: Ilya Maximets Date: Fri Jun 7 20:27:32 2019 +0300 xdp: check device pointer before clearing We should not call 'ndo_bpf()' or 'dev_put()' with NULL argument. Fixes: c9b47cc1fabc ("xsk: fix bug when trying to use both copy and zero-copy on one queue id") Signed-off-by: Ilya Maximets Acked-by: Jonathan Lemon Signed-off-by: Daniel Borkmann commit f12dd75959b0138f94da8ddcf43f2f3cf277216d Author: Martin KaFai Lau Date: Tue Jun 11 14:45:57 2019 -0700 bpf: net: Set sk_bpf_storage back to NULL for cloned sk The cloned sk should not carry its parent-listener's sk_bpf_storage. This patch fixes it by setting it back to NULL. Fixes: 6ac99e8f23d4 ("bpf: Introduce bpf sk local storage") Signed-off-by: Martin KaFai Lau Acked-by: Andrii Nakryiko Signed-off-by: Daniel Borkmann commit 8eaf40c0e24e98899a0f3ac9d25a33aafe13822a Author: Filipe Manana Date: Wed Jun 12 11:05:42 2019 +0100 Btrfs: fix race between block group removal and block group allocation If a task is removing the block group that currently has the highest start offset amongst all existing block groups, there is a short time window where it races with a concurrent block group allocation, resulting in a transaction abort with an error code of EEXIST. The following diagram explains the race in detail: Task A Task B btrfs_remove_block_group(bg offset X) remove_extent_mapping(em offset X) -> removes extent map X from the tree of extent maps (fs_info->mapping_tree), so the next call to find_next_chunk() will return offset X btrfs_alloc_chunk() find_next_chunk() --> returns offset X __btrfs_alloc_chunk(offset X) btrfs_make_block_group() btrfs_create_block_group_cache() --> creates btrfs_block_group_cache object with a key corresponding to the block group item in the extent, the key is: (offset X, BTRFS_BLOCK_GROUP_ITEM_KEY, 1G) --> adds the btrfs_block_group_cache object to the list new_bgs of the transaction handle btrfs_end_transaction(trans handle) __btrfs_end_transaction() btrfs_create_pending_block_groups() --> sees the new btrfs_block_group_cache in the new_bgs list of the transaction handle --> its call to btrfs_insert_item() fails with -EEXIST when attempting to insert the block group item key (offset X, BTRFS_BLOCK_GROUP_ITEM_KEY, 1G) because task A has not removed that key yet --> aborts the running transaction with error -EEXIST btrfs_del_item() -> removes the block group's key from the extent tree, key is (offset X, BTRFS_BLOCK_GROUP_ITEM_KEY, 1G) A sample transaction abort trace: [78912.403537] ------------[ cut here ]------------ [78912.403811] BTRFS: Transaction aborted (error -17) [78912.404082] WARNING: CPU: 2 PID: 20465 at fs/btrfs/extent-tree.c:10551 btrfs_create_pending_block_groups+0x196/0x250 [btrfs] (...) [78912.405642] CPU: 2 PID: 20465 Comm: btrfs Tainted: G W 5.0.0-btrfs-next-46 #1 [78912.405941] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.11.2-0-gf9626ccb91-prebuilt.qemu-project.org 04/01/2014 [78912.406586] RIP: 0010:btrfs_create_pending_block_groups+0x196/0x250 [btrfs] (...) [78912.407636] RSP: 0018:ffff9d3d4b7e3b08 EFLAGS: 00010282 [78912.407997] RAX: 0000000000000000 RBX: ffff90959a3796f0 RCX: 0000000000000006 [78912.408369] RDX: 0000000000000007 RSI: 0000000000000001 RDI: ffff909636b16860 [78912.408746] RBP: ffff909626758a58 R08: 0000000000000000 R09: 0000000000000000 [78912.409144] R10: ffff9095ff462400 R11: 0000000000000000 R12: ffff90959a379588 [78912.409521] R13: ffff909626758ab0 R14: ffff9095036c0000 R15: ffff9095299e1158 [78912.409899] FS: 00007f387f16f700(0000) GS:ffff909636b00000(0000) knlGS:0000000000000000 [78912.410285] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [78912.410673] CR2: 00007f429fc87cbc CR3: 000000014440a004 CR4: 00000000003606e0 [78912.411095] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [78912.411496] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [78912.411898] Call Trace: [78912.412318] __btrfs_end_transaction+0x5b/0x1c0 [btrfs] [78912.412746] btrfs_inc_block_group_ro+0xcf/0x160 [btrfs] [78912.413179] scrub_enumerate_chunks+0x188/0x5b0 [btrfs] [78912.413622] ? __mutex_unlock_slowpath+0x100/0x2a0 [78912.414078] btrfs_scrub_dev+0x2ef/0x720 [btrfs] [78912.414535] ? __sb_start_write+0xd4/0x1c0 [78912.414963] ? mnt_want_write_file+0x24/0x50 [78912.415403] btrfs_ioctl+0x17fb/0x3120 [btrfs] [78912.415832] ? lock_acquire+0xa6/0x190 [78912.416256] ? do_vfs_ioctl+0xa2/0x6f0 [78912.416685] ? btrfs_ioctl_get_supported_features+0x30/0x30 [btrfs] [78912.417116] do_vfs_ioctl+0xa2/0x6f0 [78912.417534] ? __fget+0x113/0x200 [78912.417954] ksys_ioctl+0x70/0x80 [78912.418369] __x64_sys_ioctl+0x16/0x20 [78912.418812] do_syscall_64+0x60/0x1b0 [78912.419231] entry_SYSCALL_64_after_hwframe+0x49/0xbe [78912.419644] RIP: 0033:0x7f3880252dd7 (...) [78912.420957] RSP: 002b:00007f387f16ed68 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 [78912.421426] RAX: ffffffffffffffda RBX: 000055f5becc1df0 RCX: 00007f3880252dd7 [78912.421889] RDX: 000055f5becc1df0 RSI: 00000000c400941b RDI: 0000000000000003 [78912.422354] RBP: 0000000000000000 R08: 00007f387f16f700 R09: 0000000000000000 [78912.422790] R10: 00007f387f16f700 R11: 0000000000000246 R12: 0000000000000000 [78912.423202] R13: 00007ffda49c266f R14: 0000000000000000 R15: 00007f388145e040 [78912.425505] ---[ end trace eb9bfe7c426fc4d3 ]--- Fix this by calling remove_extent_mapping(), at btrfs_remove_block_group(), only at the very end, after removing the block group item key from the extent tree (and removing the free space tree entry if we are using the free space tree feature). Fixes: 04216820fe83d5 ("Btrfs: fix race between fs trimming and block group remove/allocation") CC: stable@vger.kernel.org # 4.4+ Signed-off-by: Filipe Manana Signed-off-by: David Sterba commit 5d6168fc61b7f13baf27ae5567be7ea1fccb463e Author: Julien Thierry Date: Fri May 24 10:10:25 2019 +0100 clocksource/drivers/arm_arch_timer: Don't trace count reader functions With v5.2-rc1, The ftrace functions_graph tracer locks up whenever it is enabled on arm64. Since commit 0ea415390cd3 ("clocksource/arm_arch_timer: Use arch_timer_read_counter to access stable counters") a function pointer is consistently used to read the counter instead of potentially referencing an inlinable function. The graph tracers relies on accessing the timer counters to compute the time spent in functions which causes the lockup when attempting to trace these code paths. Annotate the arm arch timer counter accessors as notrace. Fixes: 0ea415390cd3 ("clocksource/arm_arch_timer: Use arch_timer_read_counter to access stable counters") Signed-off-by: Julien Thierry Cc: Marc Zyngier Cc: Mark Rutland Cc: Daniel Lezcano Cc: Thomas Gleixner Cc: Steven Rostedt Acked-by: Marc Zyngier Signed-off-by: Daniel Lezcano commit ca72d88378b2f2444d3ec145dd442d449d3fefbc Author: Michael Ellerman Date: Wed Jun 12 23:35:07 2019 +1000 powerpc/mm/64s/hash: Reallocate context ids on fork When using the Hash Page Table (HPT) MMU, userspace memory mappings are managed at two levels. Firstly in the Linux page tables, much like other architectures, and secondly in the SLB (Segment Lookaside Buffer) and HPT. It's the SLB and HPT that are actually used by the hardware to do translations. As part of the series adding support for 4PB user virtual address space using the hash MMU, we added support for allocating multiple "context ids" per process, one for each 512TB chunk of address space. These are tracked in an array called extended_id in the mm_context_t of a process that has done a mapping above 512TB. If such a process forks (ie. clone(2) without CLONE_VM set) it's mm is copied, including the mm_context_t, and then init_new_context() is called to reinitialise parts of the mm_context_t as appropriate to separate the address spaces of the two processes. The key step in ensuring the two processes have separate address spaces is to allocate a new context id for the process, this is done at the beginning of hash__init_new_context(). If we didn't allocate a new context id then the two processes would share mappings as far as the SLB and HPT are concerned, even though their Linux page tables would be separate. For mappings above 512TB, which use the extended_id array, we neglected to allocate new context ids on fork, meaning the parent and child use the same ids and therefore share those mappings even though they're supposed to be separate. This can lead to the parent seeing writes done by the child, which is essentially memory corruption. There is an additional exposure which is that if the child process exits, all its context ids are freed, including the context ids that are still in use by the parent for mappings above 512TB. One or more of those ids can then be reallocated to a third process, that process can then read/write to the parent's mappings above 512TB. Additionally if the freed id is used for the third process's primary context id, then the parent is able to read/write to the third process's mappings *below* 512TB. All of these are fundamental failures to enforce separation between processes. The only mitigating factor is that the bug only occurs if a process creates mappings above 512TB, and most applications still do not create such mappings. Only machines using the hash page table MMU are affected, eg. PowerPC 970 (G5), PA6T, Power5/6/7/8/9. By default Power9 bare metal machines (powernv) use the Radix MMU and are not affected, unless the machine has been explicitly booted in HPT mode (using disable_radix on the kernel command line). KVM guests on Power9 may be affected if the host or guest is configured to use the HPT MMU. LPARs under PowerVM on Power9 are affected as they always use the HPT MMU. Kernels built with PAGE_SIZE=4K are not affected. The fix is relatively simple, we need to reallocate context ids for all extended mappings on fork. Fixes: f384796c40dc ("powerpc/mm: Add support for handling > 512TB address in SLB miss") Cc: stable@vger.kernel.org # v4.17+ Signed-off-by: Michael Ellerman commit a0cac264a86fbf4d6cb201fbbb73c1d335e3248a Author: Linus Walleij Date: Thu May 30 22:24:24 2019 +0200 i2c: pca-platform: Fix GPIO lookup code The devm_gpiod_request_gpiod() call will add "-gpios" to any passed connection ID before looking it up. I do not think the reset GPIO on this platform is named "reset-gpios-gpios" but rather "reset-gpios" in the device tree, so fix this up so that we get a proper reset GPIO handle. Also drop the inclusion of the legacy GPIO header. Fixes: 0e8ce93bdceb ("i2c: pca-platform: add devicetree awareness") Signed-off-by: Linus Walleij Reviewed-by: Chris Packham Signed-off-by: Wolfram Sang commit 4f7c2e0d8765a0266b920c66ffc495fde44c1ec8 Author: Mika Westerberg Date: Tue May 28 18:56:20 2019 +0300 thunderbolt: Make sure device runtime resume completes before taking domain lock When a device is authorized from userspace by writing to authorized attribute we first take the domain lock and then runtime resume the device in question. There are two issues with this. First is that the device connected notifications are blocked during this time which means we get them only after the authorization operation is complete. Because of this the authorization needed flag from the firmware notification is not reflecting the real authorization status anymore. So what happens is that the "authorized" keeps returning 0 even if the device was already authorized properly. Second issue is that each time the controller is runtime resumed the connection_id field of device connected notification may be different than in the previous resume. We need to use the latest connection_id otherwise the firmware rejects the authorization command. Fix these by moving runtime resume operations to happen before the domain lock is taken, and waiting for the updated device connected notification from the firmware before we allow runtime resume of a device to complete. While there add missing locking to tb_switch_nvm_read(). Fixes: 09f11b6c99fe ("thunderbolt: Take domain lock in switch sysfs attribute callbacks") Reported-by: Pengfei Xu Signed-off-by: Mika Westerberg commit 48eaeb7664c76139438724d520a1ea4a84a3ed92 Author: Jani Nikula Date: Mon Jun 10 12:30:54 2019 +0300 drm: add fallback override/firmware EDID modes workaround We've moved the override and firmware EDID (simply "override EDID" from now on) handling to the low level drm_do_get_edid() function in order to transparently use the override throughout the stack. The idea is that you get the override EDID via the ->get_modes() hook. Unfortunately, there are scenarios where the DDC probe in drm_get_edid() called via ->get_modes() fails, although the preceding ->detect() succeeds. In the case reported by Paul Wise, the ->detect() hook, intel_crt_detect(), relies on hotplug detect, bypassing the DDC. In the case reported by Ilpo Järvinen, there is no ->detect() hook, which is interpreted as connected. The subsequent DDC probe reached via ->get_modes() fails, and we don't even look at the override EDID, resulting in no modes being added. Because drm_get_edid() is used via ->detect() all over the place, we can't trivially remove the DDC probe, as it leads to override EDID effectively meaning connector forcing. The goal is that connector forcing and override EDID remain orthogonal. Generally, the underlying problem here is the conflation of ->detect() and ->get_modes() via drm_get_edid(). The former should just detect, and the latter should just get the modes, typically via reading the EDID. As long as drm_get_edid() is used in ->detect(), it needs to retain the DDC probe. Or such users need to have a separate DDC probe step first. The EDID caching between ->detect() and ->get_modes() done by some drivers is a further complication that prevents us from making drm_do_get_edid() adapt to the two cases. Work around the regression by falling back to a separate attempt at getting the override EDID at drm_helper_probe_single_connector_modes() level. With a working DDC and override EDID, it'll never be called; the override EDID will come via ->get_modes(). There will still be a failing DDC probe attempt in the cases that require the fallback. v2: - Call drm_connector_update_edid_property (Paul) - Update commit message about EDID caching (Daniel) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107583 Reported-by: Paul Wise Cc: Paul Wise References: http://mid.mail-archive.com/alpine.DEB.2.20.1905262211270.24390@whs-18.cs.helsinki.fi Reported-by: Ilpo Järvinen Cc: Ilpo Järvinen Suggested-by: Daniel Vetter References: 15f080f08d48 ("drm/edid: respect connector force for drm_get_edid ddc probe") Fixes: 53fd40a90f3c ("drm: handle override and firmware EDID at drm_do_get_edid() level") Cc: # v4.15+ 56a2b7f2a39a drm/edid: abstract override/firmware EDID retrieval Cc: # v4.15+ Cc: Daniel Vetter Cc: Ville Syrjälä Cc: Harish Chegondi Tested-by: Paul Wise Reviewed-by: Daniel Vetter Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190610093054.28445-1-jani.nikula@intel.com commit ca21f851cc9643af049226d57fabc3c883ea648e Author: Russell King Date: Tue Jun 11 17:48:18 2019 +0100 i2c: acorn: fix i2c warning The Acorn i2c driver (for RiscPC) triggers the "i2c adapter has no name" warning in the I2C core driver, resulting in the RTC being inaccessible. Fix this. Fixes: 2236baa75f70 ("i2c: Sanity checks on adapter registration") Signed-off-by: Russell King Signed-off-by: Wolfram Sang Cc: stable@kernel.org commit fa63da2ab046b885a7f70291aafc4e8ce015429b Author: Nathan Chancellor Date: Tue Jun 11 10:19:32 2019 -0700 arm64: Don't unconditionally add -Wno-psabi to KBUILD_CFLAGS This is a GCC only option, which warns about ABI changes within GCC, so unconditionally adding it breaks Clang with tons of: warning: unknown warning option '-Wno-psabi' [-Wunknown-warning-option] and link time failures: ld.lld: error: undefined symbol: __efistub___stack_chk_guard >>> referenced by arm-stub.c:73 (/home/nathan/cbl/linux/drivers/firmware/efi/libstub/arm-stub.c:73) >>> arm-stub.stub.o:(__efistub_install_memreserve_table) in archive ./drivers/firmware/efi/libstub/lib.a These failures come from the lack of -fno-stack-protector, which is added via cc-option in drivers/firmware/efi/libstub/Makefile. When an unknown flag is added to KBUILD_CFLAGS, clang will noisily warn that it is ignoring the option like above, unlike gcc, who will just error. $ echo "int main() { return 0; }" > tmp.c $ clang -Wno-psabi tmp.c; echo $? warning: unknown warning option '-Wno-psabi' [-Wunknown-warning-option] 1 warning generated. 0 $ gcc -Wsometimes-uninitialized tmp.c; echo $? gcc: error: unrecognized command line option ‘-Wsometimes-uninitialized’; did you mean ‘-Wmaybe-uninitialized’? 1 For cc-option to work properly with clang and behave like gcc, -Werror is needed, which was done in commit c3f0d0bc5b01 ("kbuild, LLVMLinux: Add -Werror to cc-option to support clang"). $ clang -Werror -Wno-psabi tmp.c; echo $? error: unknown warning option '-Wno-psabi' [-Werror,-Wunknown-warning-option] 1 As a consequence of this, when an unknown flag is unconditionally added to KBUILD_CFLAGS, it will cause cc-option to always fail and those flags will never get added: $ clang -Werror -Wno-psabi -fno-stack-protector tmp.c; echo $? error: unknown warning option '-Wno-psabi' [-Werror,-Wunknown-warning-option] 1 This can be seen when compiling the whole kernel as some warnings that are normally disabled (see below) show up. The full list of flags missing from drivers/firmware/efi/libstub are the following (gathered from diffing .arm64-stub.o.cmd): -fno-delete-null-pointer-checks -Wno-address-of-packed-member -Wframe-larger-than=2048 -Wno-unused-const-variable -fno-strict-overflow -fno-merge-all-constants -fno-stack-check -Werror=date-time -Werror=incompatible-pointer-types -ffreestanding -fno-stack-protector Use cc-disable-warning so that it gets disabled for GCC and does nothing for Clang. Fixes: ebcc5928c5d9 ("arm64: Silence gcc warnings about arch ABI drift") Link: https://github.com/ClangBuiltLinux/linux/issues/511 Reported-by: Qian Cai Acked-by: Dave Martin Reviewed-by: Nick Desaulniers Signed-off-by: Nathan Chancellor Signed-off-by: Will Deacon commit 56a2b7f2a39a8d4b16a628e113decde3d7400879 Author: Jani Nikula Date: Fri Jun 7 14:05:12 2019 +0300 drm/edid: abstract override/firmware EDID retrieval Abstract the debugfs override and the firmware EDID retrieval function. We'll be needing it in the follow-up. No functional changes. Cc: Daniel Vetter Cc: Harish Chegondi Reviewed-by: Daniel Vetter Tested-by: Tested-by: Paul Wise Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190607110513.12072-1-jani.nikula@intel.com commit 8c2eb7b6468ad4aa5600aed01aa0715f921a3f8b Author: Vadim Pasternak Date: Thu May 23 16:41:52 2019 +0000 platform/mellanox: mlxreg-hotplug: Add devm_free_irq call to remove flow Add devm_free_irq() call to mlxreg-hotplug remove() for clean release of devices irq resource. Fix debugobjects warning triggered by rmmod It prevents of use-after-free memory, related to mlxreg_hotplug_work_handler. Issue has been reported as debugobjects warning triggered by 'rmmod mlxtreg-hotplug' flow, while running kernel with CONFIG_DEBUG_OBJECTS* options. [ 2489.623551] ODEBUG: free active (active state 0) object type: work_struct hint: mlxreg_hotplug_work_handler+0x0/0x7f0 [mlxreg_hotplug] [ 2489.637097] WARNING: CPU: 5 PID: 3924 at lib/debugobjects.c:328 debug_print_object+0xfe/0x180 [ 2489.637165] RIP: 0010:debug_print_object+0xfe/0x180 ? [ 2489.637214] Call Trace: [ 2489.637225] __debug_check_no_obj_freed+0x25e/0x320 [ 2489.637231] kfree+0x82/0x110 [ 2489.637238] release_nodes+0x33c/0x4e0 [ 2489.637242] ? devres_remove_group+0x1b0/0x1b0 [ 2489.637247] device_release_driver_internal+0x146/0x270 [ 2489.637251] driver_detach+0x73/0xe0 [ 2489.637254] bus_remove_driver+0xa1/0x170 [ 2489.637261] __x64_sys_delete_module+0x29e/0x320 [ 2489.637265] ? __ia32_sys_delete_module+0x320/0x320 [ 2489.637268] ? blkcg_exit_queue+0x20/0x20 [ 2489.637273] ? task_work_run+0x7d/0x100 [ 2489.637278] ? exit_to_usermode_loop+0x5b/0xf0 [ 2489.637281] do_syscall_64+0x73/0x160 [ 2489.637287] entry_SYSCALL_64_after_hwframe+0x44/0xa9 [ 2489.637290] RIP: 0033:0x7f95c3596fd7 The difference in release flow with and with no devm_free_irq is listed below: bus: 'platform': remove driver mlxreg-hotplug mlxreg_hotplug_remove(start) -> devm_free_irq (with new code) mlxreg_hotplug_remove (end) release_nodes (start) mlxreg-hotplug: DEVRES REL devm_hwmon_release (8 bytes) device: 'hwmon3': device_unregister PM: Removing info for No Bus:hwmon3 mlxreg-hotplug: DEVRES REL devm_kzalloc_release (88 bytes) mlxreg-hotplug: DEVRES REL devm_kzalloc_release (6 bytes) mlxreg-hotplug: DEVRES REL devm_kzalloc_release (5 bytes) mlxreg-hotplug: DEVRES REL devm_kzalloc_release (5 bytes) mlxreg-hotplug: DEVRES REL devm_kzalloc_release (5 bytes) mlxreg-hotplug: DEVRES REL devm_kzalloc_release (5 bytes) mlxreg-hotplug: DEVRES REL devm_kzalloc_release (5 bytes) mlxreg-hotplug: DEVRES REL devm_kzalloc_release (5 bytes) mlxreg-hotplug: DEVRES REL devm_kzalloc_release (5 bytes) mlxreg-hotplug: DEVRES REL devm_kzalloc_release (5 bytes) mlxreg-hotplug: DEVRES REL devm_kzalloc_release (5 bytes) mlxreg-hotplug: DEVRES REL devm_kzalloc_release (5 bytes) mlxreg-hotplug: DEVRES REL devm_irq_release (16 bytes) (no new code) mlxreg-hotplug: DEVRES REL devm_kzalloc_release (1376 bytes) ------------[ cut here ]------------ (no new code): ODEBUG: free active (active state 0) object type: work_struct hint: mlxreg_hotplug_work_handler release_nodes(end) driver: 'mlxreg-hotplug': driver_release Fixes: 1f976f6978bf ("platform/x86: Move Mellanox platform hotplug driver to platform/mellanox") Signed-off-by: Vadim Pasternak Signed-off-by: Andy Shevchenko commit 160da20b254dd4bfc5828f12c208fa831ad4be6c Author: Vadim Pasternak Date: Wed Jun 5 07:51:03 2019 +0000 platform/x86: mlx-platform: Fix parent device in i2c-mux-reg device registration Fix the issue found while running kernel with the option CONFIG_DEBUG_TEST_DRIVER_REMOVE. Driver 'mlx-platform' registers 'i2c_mlxcpld' device and then registers few underlying 'i2c-mux-reg' devices: priv->pdev_i2c = platform_device_register_simple("i2c_mlxcpld", nr, NULL, 0); ... for (i = 0; i < ARRAY_SIZE(mlxplat_mux_data); i++) { priv->pdev_mux[i] = platform_device_register_resndata( &mlxplat_dev->dev, "i2c-mux-reg", i, NULL, 0, &mlxplat_mux_data[i], sizeof(mlxplat_mux_data[i])); But actual parent of "i2c-mux-reg" device is priv->pdev_i2c->dev and not mlxplat_dev->dev. Patch fixes parent device parameter in a call to platform_device_register_resndata() for "i2c-mux-reg". It solves the race during initialization flow while 'i2c_mlxcpld.1' is removing after probe, while 'i2c-mux-reg.0' is still in probing flow: 'i2c_mlxcpld.1' flow: probe -> remove -> probe. 'i2c-mux-reg.0' flow: probe -> ... [ 12:621096] Registering platform device 'i2c_mlxcpld.1'. Parent at platform [ 12:621117] device: 'i2c_mlxcpld.1': device_add [ 12:621155] bus: 'platform': add device i2c_mlxcpld.1 [ 12:621384] Registering platform device 'i2c-mux-reg.0'. Parent at mlxplat [ 12:621395] device: 'i2c-mux-reg.0': device_add [ 12:621425] bus: 'platform': add device i2c-mux-reg.0 [ 12:621806] Registering platform device 'i2c-mux-reg.1'. Parent at mlxplat [ 12:621828] device: 'i2c-mux-reg.1': device_add [ 12:621892] bus: 'platform': add device i2c-mux-reg.1 [ 12:621906] bus: 'platform': add driver i2c_mlxcpld [ 12:621996] bus: 'platform': driver_probe_device: matched device i2c_mlxcpld.1 with driver i2c_mlxcpld [ 12:622003] bus: 'platform': really_probe: probing driver i2c_mlxcpld with device i2c_mlxcpld.1 [ 12:622100] i2c_mlxcpld i2c_mlxcpld.1: no default pinctrl state [ 12:622293] device: 'i2c-1': device_add [ 12:627280] bus: 'i2c': add device i2c-1 [ 12:627692] device: 'i2c-1': device_add [ 12.629639] bus: 'platform': add driver i2c-mux-reg [ 12.629718] bus: 'platform': driver_probe_device: matched device i2c-mux-reg.0 with driver i2c-mux-reg [ 12.629723] bus: 'platform': really_probe: probing driver i2c-mux-reg with device i2c-mux-reg.0 [ 12.629818] i2c-mux-reg i2c-mux-reg.0: no default pinctrl state [ 12.629981] platform i2c-mux-reg.0: Driver i2c-mux-reg requests probe deferral [ 12.629986] platform i2c-mux-reg.0: Added to deferred list [ 12.629992] bus: 'platform': driver_probe_device: matched device i2c-mux-reg.1 with driver i2c-mux-reg [ 12.629997] bus: 'platform': really_probe: probing driver i2c-mux-reg with device i2c-mux-reg.1 [ 12.630091] i2c-mux-reg i2c-mux-reg.1: no default pinctrl state [ 12.630247] platform i2c-mux-reg.1: Driver i2c-mux-reg requests probe deferral [ 12.630252] platform i2c-mux-reg.1: Added to deferred list [ 12.640892] devices_kset: Moving i2c-mux-reg.0 to end of list [ 12.640900] platform i2c-mux-reg.0: Retrying from deferred list [ 12.640911] bus: 'platform': driver_probe_device: matched device i2c-mux-reg.0 with driver i2c-mux-reg [ 12.640919] bus: 'platform': really_probe: probing driver i2c-mux-reg with device i2c-mux-reg.0 [ 12.640999] i2c-mux-reg i2c-mux-reg.0: no default pinctrl state [ 12.641177] platform i2c-mux-reg.0: Driver i2c-mux-reg requests probe deferral [ 12.641187] platform i2c-mux-reg.0: Added to deferred list [ 12.641198] devices_kset: Moving i2c-mux-reg.1 to end of list [ 12.641219] platform i2c-mux-reg.1: Retrying from deferred list [ 12.641237] bus: 'platform': driver_probe_device: matched device i2c-mux-reg.1 with driver i2c-mux-reg [ 12.641247] bus: 'platform': really_probe: probing driver i2c-mux-reg with device i2c-mux-reg.1 [ 12.641331] i2c-mux-reg i2c-mux-reg.1: no default pinctrl state [ 12.641465] platform i2c-mux-reg.1: Driver i2c-mux-reg requests probe deferral [ 12.641469] platform i2c-mux-reg.1: Added to deferred list [ 12.646427] device: 'i2c-1': device_add [ 12.646647] bus: 'i2c': add device i2c-1 [ 12.647104] device: 'i2c-1': device_add [ 12.669231] devices_kset: Moving i2c-mux-reg.0 to end of list [ 12.669240] platform i2c-mux-reg.0: Retrying from deferred list [ 12.669258] bus: 'platform': driver_probe_device: matched device i2c-mux-reg.0 with driver i2c-mux-reg [ 12.669263] bus: 'platform': really_probe: probing driver i2c-mux-reg with device i2c-mux-reg.0 [ 12.669343] i2c-mux-reg i2c-mux-reg.0: no default pinctrl state [ 12.669585] device: 'i2c-2': device_add [ 12.669795] bus: 'i2c': add device i2c-2 [ 12.670201] device: 'i2c-2': device_add [ 12.671427] i2c i2c-1: Added multiplexed i2c bus 2 [ 12.671514] device: 'i2c-3': device_add [ 12.671724] bus: 'i2c': add device i2c-3 [ 12.672136] device: 'i2c-3': device_add [ 12.673378] i2c i2c-1: Added multiplexed i2c bus 3 [ 12.673472] device: 'i2c-4': device_add [ 12.673676] bus: 'i2c': add device i2c-4 [ 12.674060] device: 'i2c-4': device_add [ 12.675861] i2c i2c-1: Added multiplexed i2c bus 4 [ 12.675941] device: 'i2c-5': device_add [ 12.676150] bus: 'i2c': add device i2c-5 [ 12.676550] device: 'i2c-5': device_add [ 12.678103] i2c i2c-1: Added multiplexed i2c bus 5 [ 12.678193] device: 'i2c-6': device_add [ 12.678395] bus: 'i2c': add device i2c-6 [ 12.678774] device: 'i2c-6': device_add [ 12.679969] i2c i2c-1: Added multiplexed i2c bus 6 [ 12.680065] device: 'i2c-7': device_add [ 12.680275] bus: 'i2c': add device i2c-7 [ 12.680913] device: 'i2c-7': device_add [ 12.682506] i2c i2c-1: Added multiplexed i2c bus 7 [ 12.682600] device: 'i2c-8': device_add [ 12.682808] bus: 'i2c': add device i2c-8 [ 12.683189] device: 'i2c-8': device_add [ 12.683907] device: 'i2c-1': device_unregister [ 12.683945] device: 'i2c-1': device_unregister [ 12.684387] device: 'i2c-1': device_create_release [ 12.684536] bus: 'i2c': remove device i2c-1 [ 12.686019] i2c i2c-8: Failed to create compatibility class link [ 12.686086] ------------[ cut here ]------------ [ 12.686087] can't create symlink to mux device [ 12.686224] Workqueue: events deferred_probe_work_func [ 12.686135] WARNING: CPU: 7 PID: 436 at drivers/i2c/i2c-mux.c:416 i2c_mux_add_adapter+0x729/0x7d0 [i2c_mux] [ 12.686232] RIP: 0010:i2c_mux_add_adapter+0x729/0x7d0 [i2c_mux] [ 0x190/0x190 [i2c_mux] [ 12.686300] ? i2c_mux_alloc+0xac/0x110 [i2c_mux] [ 12.686306] ? i2c_mux_reg_set+0x200/0x200 [i2c_mux_reg] [ 12.686313] i2c_mux_reg_probe+0x22c/0x731 [i2c_mux_reg] [ 12.686322] ? i2c_mux_reg_deselect+0x60/0x60 [i2c_mux_reg] [ 12.686346] platform_drv_probe+0xa8/0x110 [ 12.686351] really_probe+0x185/0x720 [ 12.686358] driver_probe_device+0xdf/0x1f0 ... [ 12.686522] i2c i2c-1: Added multiplexed i2c bus 8 [ 12.686621] device: 'i2c-9': device_add [ 12.686626] kobject_add_internal failed for i2c-9 (error: -2 parent: i2c-1) [ 12.694729] i2c-core: adapter 'i2c-1-mux (chan_id 8)': can't register device (-2) [ 12.705726] i2c i2c-1: failed to add mux-adapter 8 as bus 9 (error=-2) [ 12.714494] device: 'i2c-8': device_unregister [ 12.714537] device: 'i2c-8': device_unregister Fixes: 6613d18e9038 ("platform/x86: mlx-platform: Move module from arch/x86") Signed-off-by: Vadim Pasternak Signed-off-by: Andy Shevchenko commit cb1921b17adbe6509538098ac431033378cd7165 Author: Mathew King Date: Mon May 20 16:41:24 2019 -0600 platform/x86: intel-vbtn: Report switch events when event wakes device When a switch event, such as tablet mode/laptop mode or docked/undocked, wakes a device make sure that the value of the swich is reported. Without when a device is put in tablet mode from laptop mode when it is suspended or vice versa the device will wake up but mode will be incorrect. Tested by suspending a device in laptop mode and putting it in tablet mode, the device resumes and is in tablet mode. When suspending the device in tablet mode and putting it in laptop mode the device resumes and is in laptop mode. Signed-off-by: Mathew King Reviewed-by: Jett Rink Reviewed-by: Mario Limonciello Signed-off-by: Andy Shevchenko commit 401fee8195d401b2b94dee57383f627050724d5b Author: Hans de Goede Date: Wed Jun 12 09:02:02 2019 +0200 platform/x86: asus-wmi: Only Tell EC the OS will handle display hotkeys from asus_nb_wmi Commit 78f3ac76d9e5 ("platform/x86: asus-wmi: Tell the EC the OS will handle the display off hotkey") causes the backlight to be permanently off on various EeePC laptop models using the eeepc-wmi driver (Asus EeePC 1015BX, Asus EeePC 1025C). The asus_wmi_set_devstate(ASUS_WMI_DEVID_BACKLIGHT, 2, NULL) call added by that commit is made conditional in this commit and only enabled in the quirk_entry structs in the asus-nb-wmi driver fixing the broken display / backlight on various EeePC laptop models. Cc: João Paulo Rechi Vita Fixes: 78f3ac76d9e5 ("platform/x86: asus-wmi: Tell the EC the OS will handle the display off hotkey") Signed-off-by: Hans de Goede Signed-off-by: Andy Shevchenko commit cc538ca4308372e81b824be08561c466b1d73b72 Author: Jan Kundrát Date: Fri May 17 17:01:42 2019 +0200 ARM: mvebu_v7_defconfig: fix Ethernet on Clearfog Compared to kernel 5.0, patches merged for 5.1 added support for A38x' PHY guarded by a config option which was not enabled by default. As a result, there was no eth1 and eth2 on a Solid Run Clearfog Base. Ensure that A38x PHY is enabled on mvebu. [gregory: issue appeared in 5.1 not in 5.2 and added Fixes tag] Signed-off-by: Jan Kundrát Cc: Baruch Siach Cc: Gregory CLEMENT Cc: Russell King Cc: David S. Miller Cc: Maxime Chevallier Fixes: a10c1c8191e0 ("net: marvell: neta: add comphy support") Cc: stable@kernel.org Signed-off-by: Gregory CLEMENT commit c7563e62a6d720aa3b068e26ddffab5f0df29263 Author: Prarit Bhargava Date: Mon Jun 10 13:15:44 2019 -0400 x86/resctrl: Prevent NULL pointer dereference when local MBM is disabled Booting with kernel parameter "rdt=cmt,mbmtotal,memlocal,l3cat,mba" and executing "mount -t resctrl resctrl -o mba_MBps /sys/fs/resctrl" results in a NULL pointer dereference on systems which do not have local MBM support enabled.. BUG: kernel NULL pointer dereference, address: 0000000000000020 PGD 0 P4D 0 Oops: 0000 [#1] SMP PTI CPU: 0 PID: 722 Comm: kworker/0:3 Not tainted 5.2.0-0.rc3.git0.1.el7_UNSUPPORTED.x86_64 #2 Workqueue: events mbm_handle_overflow RIP: 0010:mbm_handle_overflow+0x150/0x2b0 Only enter the bandwith update loop if the system has local MBM enabled. Fixes: de73f38f7680 ("x86/intel_rdt/mba_sc: Feedback loop to dynamically update mem bandwidth") Signed-off-by: Prarit Bhargava Signed-off-by: Thomas Gleixner Cc: Fenghua Yu Cc: Reinette Chatre Cc: Borislav Petkov Cc: "H. Peter Anvin" Cc: stable@vger.kernel.org Link: https://lkml.kernel.org/r/20190610171544.13474-1-prarit@redhat.com commit 87d3aa28f345bea77c396855fa5d5fec4c24461f Author: James Morse Date: Mon Jun 3 18:25:31 2019 +0100 x86/resctrl: Don't stop walking closids when a locksetup group is found When a new control group is created __init_one_rdt_domain() walks all the other closids to calculate the sets of used and unused bits. If it discovers a pseudo_locksetup group, it breaks out of the loop. This means any later closid doesn't get its used bits added to used_b. These bits will then get set in unused_b, and added to the new control group's configuration, even if they were marked as exclusive for a later closid. When encountering a pseudo_locksetup group, we should continue. This is because "a resource group enters 'pseudo-locked' mode after the schemata is written while the resource group is in 'pseudo-locksetup' mode." When we find a pseudo_locksetup group, its configuration is expected to be overwritten, we can skip it. Fixes: dfe9674b04ff6 ("x86/intel_rdt: Enable entering of pseudo-locksetup mode") Signed-off-by: James Morse Signed-off-by: Thomas Gleixner Acked-by: Reinette Chatre Cc: Fenghua Yu Cc: Borislav Petkov Cc: H Peter Avin Cc: Link: https://lkml.kernel.org/r/20190603172531.178830-1-james.morse@arm.com commit 4e4abae311e4b44aaf61f18a826fd7136037f199 Author: Robin Murphy Date: Mon Jun 3 14:15:37 2019 +0200 iommu/arm-smmu: Avoid constant zero in TLBI writes Apparently, some Qualcomm arm64 platforms which appear to expose their SMMU global register space are still, in fact, using a hypervisor to mediate it by trapping and emulating register accesses. Sadly, some deployed versions of said trapping code have bugs wherein they go horribly wrong for stores using r31 (i.e. XZR/WZR) as the source register. While this can be mitigated for GCC today by tweaking the constraints for the implementation of writel_relaxed(), to avoid any potential arms race with future compilers more aggressively optimising register allocation, the simple way is to just remove all the problematic constant zeros. For the write-only TLB operations, the actual value is irrelevant anyway and any old nearby variable will provide a suitable GPR to encode. The one point at which we really do need a zero to clear a context bank happens before any of the TLB maintenance where crashes have been reported, so is apparently not a problem... :/ Reported-by: AngeloGioacchino Del Regno Tested-by: Marc Gonzalez Signed-off-by: Robin Murphy Signed-off-by: Marc Gonzalez Acked-by: Will Deacon Cc: stable@vger.kernel.org Signed-off-by: Joerg Roedel commit c5cc0bf870cfb80b27899e916b4397ce11c61d96 Author: Lionel Landwerlin Date: Sun Jun 2 01:58:45 2019 +0300 drm/i915/perf: fix whitelist on Gen10+ Gen10 added an additional NOA_WRITE register (high bits) and we forgot to whitelist it for userspace. Fixes: 95690a02fb5d96 ("drm/i915/perf: enable perf support on CNL") Signed-off-by: Lionel Landwerlin Reviewed-by: Kenneth Graunke Link: https://patchwork.freedesktop.org/patch/msgid/20190601225845.12600-1-lionel.g.landwerlin@intel.com (cherry picked from commit bf210f6c9e6fd8dc0d154ad18f741f20e64a3fce) Signed-off-by: Jani Nikula commit d74408f528261f900dddb9778f61b5c5a7a6249c Author: Ville Syrjälä Date: Tue Apr 9 17:40:49 2019 +0300 drm/i915/sdvo: Implement proper HDMI audio support for SDVO Our SDVO audio support is pretty bogus. We can't push audio over the SDVO bus, so trying to enable audio in the SDVO control register doesn't do anything. In fact it looks like the SDVO encoder will always mix in the audio coming over HDA, and there's no (at least documented) way to disable that from our side. So HDMI audio does work currently on gen4 but only by luck really. On gen3 it got broken by the referenced commit. And what has always been missing on every platform is the ELD. To pass the ELD to the audio driver we need to write it to magic buffer in the SDVO encoder hardware which then gets pulled out via HDA in the other end. Ie. pretty much the same thing we had for native HDMI before we started to just pass the ELD between the drivers. This sort of explains why we even have that silly hardware buffer with native HDMI. $ cat /proc/asound/card0/eld#1.0 -monitor_present 0 -eld_valid 0 +monitor_present 1 +eld_valid 1 +monitor_name LG TV +connection_type HDMI +... This also fixes our state readout since we can now query the SDVO encoder about the state of the "ELD valid" and "presence detect" bits. As mentioned those don't actually control whether audio gets sent over the HDMI cable, but it's the best we can do. And with the state checker appeased we can re-enable HDMI audio for gen3. Cc: stable@vger.kernel.org Cc: Daniel Vetter Cc: zardam@gmail.com Tested-by: zardam@gmail.com Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108976 Fixes: de44e256b92c ("drm/i915/sdvo: Shut up state checker with hdmi cards on gen3") Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190409144054.24561-3-ville.syrjala@linux.intel.com Reviewed-by: Imre Deak (cherry picked from commit dc49a56bd43bb04982e64b44436831da801d0237) Signed-off-by: Jani Nikula commit 77ce94dbe586c1a6a26cf021c08109c9ce71b3e0 Author: Ville Syrjälä Date: Mon Jun 3 17:25:00 2019 +0300 drm/i915: Fix per-pixel alpha with CCS We forgot to set .has_alpha=true for the A+CCS formats when the code started to consult .has_alpha. This manifests as A+CCS being treated as X+CCS which means no per-pixel alpha blending. Fix the format list appropriately. Cc: stable@vger.kernel.org Cc: Maarten Lankhorst Cc: Matt Roper Cc: Heinrich Fink Reported-by: Heinrich Fink Tested-by: Heinrich Fink Fixes: b20815255693 ("drm/i915: Add plane alpha blending support, v2.") Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190603142500.25680-1-ville.syrjala@linux.intel.com Reviewed-by: Maarten Lankhorst (cherry picked from commit 38f300410f3e15b6fec76c8d8baed7111b5ea4e4) Signed-off-by: Jani Nikula commit 326fb6dd1483c985a6ef47db3fa8788bb99e8b83 Author: Lucas De Marchi Date: Wed Jun 5 16:55:35 2019 -0700 drm/i915/dmc: protect against reading random memory While loading the DMC firmware we were double checking the headers made sense, but in no place we checked that we were actually reading memory we were supposed to. This could be wrong in case the firmware file is truncated or malformed. Before this patch: # ls -l /lib/firmware/i915/icl_dmc_ver1_07.bin -rw-r--r-- 1 root root 25716 Feb 1 12:26 icl_dmc_ver1_07.bin # truncate -s 25700 /lib/firmware/i915/icl_dmc_ver1_07.bin # modprobe i915 # dmesg| grep -i dmc [drm:intel_csr_ucode_init [i915]] Loading i915/icl_dmc_ver1_07.bin [drm] Finished loading DMC firmware i915/icl_dmc_ver1_07.bin (v1.7) i.e. it loads random data. Now it fails like below: [drm:intel_csr_ucode_init [i915]] Loading i915/icl_dmc_ver1_07.bin [drm:csr_load_work_fn [i915]] *ERROR* Truncated DMC firmware, rejecting. i915 0000:00:02.0: Failed to load DMC firmware i915/icl_dmc_ver1_07.bin. Disabling runtime power management. i915 0000:00:02.0: DMC firmware homepage: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915 Before reading any part of the firmware file, validate the input first. Fixes: eb805623d8b1 ("drm/i915/skl: Add support to load SKL CSR firmware.") Cc: stable@vger.kernel.org Signed-off-by: Lucas De Marchi Reviewed-by: Rodrigo Vivi Link: https://patchwork.freedesktop.org/patch/msgid/20190605235535.17791-1-lucas.demarchi@intel.com (cherry picked from commit bc7b488b1d1c71dc4c5182206911127bc6c410d6) Signed-off-by: Jani Nikula commit f9a99131ce18d9dddcaa14ec2c436e42f0bbee5e Author: Hans de Goede Date: Fri May 24 19:40:27 2019 +0200 drm/i915/dsi: Use a fuzzy check for burst mode clock check Prior to this commit we fail to init the DSI panel on the GPD MicroPC: https://www.indiegogo.com/projects/gpd-micropc-6-inch-handheld-industry-laptop#/ The problem is intel_dsi_vbt_init() failing with the following error: *ERROR* Burst mode freq is less than computed The pclk in the VBT panel modeline is 70000, together with 24 bpp and 4 lines this results in a bitrate value of 70000 * 24 / 4 = 420000. But the target_burst_mode_freq in the VBT is 418000. This commit works around this problem by adding an intel_fuzzy_clock_check when target_burst_mode_freq < bitrate and setting target_burst_mode_freq to bitrate when that checks succeeds, fixing the panel not working. Cc: stable@vger.kernel.org Reviewed-by: Ville Syrjälä Signed-off-by: Hans de Goede Link: https://patchwork.freedesktop.org/patch/msgid/20190524174028.21659-2-hdegoede@redhat.com (cherry picked from commit 2c1c55252647abd989b94f725b190c700312d053) Signed-off-by: Jani Nikula commit 53f2ac9d3aa881ed419054076042898b77c27ee4 Author: Ran Wang Date: Fri May 17 12:57:53 2019 +0800 arm64: dts: ls1028a: Fix CPU idle fail. PSCI spec define 1st parameter's bit 16 of function CPU_SUSPEND to indicate CPU State Type: 0 for standby, 1 for power down. In this case, we want to select standby for CPU idle feature. But current setting wrongly select power down and cause CPU SUSPEND fail every time. Need this fix. Fixes: 8897f3255c9c ("arm64: dts: Add support for NXP LS1028A SoC") Signed-off-by: Ran Wang Signed-off-by: Shawn Guo commit 64f35709d5735ddbf8ab52d60ab3d62550b544d7 Author: Florian Fainelli Date: Tue Mar 12 10:45:29 2019 -0700 MAINTAINERS: BCM53573: Add internal Broadcom mailing list There is a patchwork instance behind bcm-kernel-feedback-list that is helpful to track submissions, add this list for the Broadcom BCM53573 architecture. Signed-off-by: Florian Fainelli commit 9c8434516bd96062266232c62343c32b99160d51 Author: Florian Fainelli Date: Tue Mar 12 10:43:30 2019 -0700 MAINTAINERS: BCM2835: Add internal Broadcom mailing list There is a patchwork instance behind bcm-kernel-feedback-list that is helpful to track submissions for the Broadcom ARM-SoC maintainers and make sure there are no patches missed, add this list for the Broadcom BCM2835 architecture. Signed-off-by: Florian Fainelli commit aa7235483a838be79b7c22a86b0dc4cb12ee5dd6 Merge: 4d8f5f91b8a6 f6581f5b5514 Author: Linus Torvalds Date: Tue Jun 11 15:44:45 2019 -1000 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace Pull ptrace fixes from Eric Biederman: "This is just two very minor fixes: - prevent ptrace from reading unitialized kernel memory found twice by syzkaller - restore a missing smp_rmb in ptrace_may_access and add comment tp it so it is not removed by accident again. Apologies for being a little slow about getting this to you, I am still figuring out how to develop with a little baby in the house" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: ptrace: restore smp_rmb() in __ptrace_may_access() signal/ptrace: Don't leak unitialized kernel memory with PTRACE_PEEK_SIGINFO commit 4d8f5f91b8a608980b173ef3382913c7405f82c3 Merge: c23b07125f8a 4e7372e0dc5d Author: Linus Torvalds Date: Tue Jun 11 15:38:34 2019 -1000 Merge branch 'stable/for-linus-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb Pull swiotlb fix from Konrad Rzeszutek Wilk: "One tiny fix for ARM64 where we could allocate the SWIOTLB twice" * 'stable/for-linus-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb: xen/swiotlb: don't initialize swiotlb twice on arm64 commit c23b07125f8aebf8b39fffa325145826098f7d8f Merge: 6fa425a26515 5715c4dd66a3 Author: Linus Torvalds Date: Tue Jun 11 15:27:57 2019 -1000 Merge tag 'vfio-v5.2-rc5' of git://github.com/awilliam/linux-vfio Pull VFIO fixes from Alex Williamson: "Fix mdev device create/remove paths to provide initialized device for parent driver create callback and correct ordering of device removal from bus prior to initiating removal by parent. Also resolve races between parent removal and device create/remove paths (all from Parav Pandit)" * tag 'vfio-v5.2-rc5' of git://github.com/awilliam/linux-vfio: vfio/mdev: Synchronize device create/remove with parent removal vfio/mdev: Avoid creating sysfs remove file on stale device removal vfio/mdev: Improve the create/remove sequence commit 6fa425a2651515f8d262f2c1d972c6632e7c941d Merge: 01ccc3ad4413 8103d10b7161 Author: Linus Torvalds Date: Tue Jun 11 15:10:15 2019 -1000 Merge tag 'for-5.2-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux Pull btrfs fix from David Sterba: "One regression fix to TRIM ioctl. The range cannot be used as its meaning can be confusing regarding physical and logical addresses. This confusion in code led to potential corruptions when the range overlapped data. The original patch made it to several stable kernels and was promptly reverted, the version for master branch is different due to additional changes but the change is effectively the same" * tag 'for-5.2-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: btrfs: Always trim all unallocated space in btrfs_trim_free_extents commit ce9a53eb3dbca89e7ad86673d94ab886e9bea704 Author: Anson Huang Date: Tue Jun 11 17:50:44 2019 -0700 Input: imx_keypad - make sure keyboard can always wake up system There are several scenarios that keyboard can NOT wake up system from suspend, e.g., if a keyboard is depressed between system device suspend phase and device noirq suspend phase, the keyboard ISR will be called and both keyboard depress and release interrupts will be disabled, then keyboard will no longer be able to wake up system. Another scenario would be, if a keyboard is kept depressed, and then system goes into suspend, the expected behavior would be when keyboard is released, system will be waked up, but current implementation can NOT achieve that, because both depress and release interrupts are disabled in ISR, and the event check is still in progress. To fix these issues, need to make sure keyboard's depress or release interrupt is enabled after noirq device suspend phase, this patch moves the suspend/resume callback to noirq suspend/resume phase, and enable the corresponding interrupt according to current keyboard status. Signed-off-by: Anson Huang Signed-off-by: Dmitry Torokhov commit aff7ed4851680d0d28ad9f52cd2f99213e1371b2 Author: Ondrej Mosnacek Date: Tue Jun 11 10:07:19 2019 +0200 selinux: log raw contexts as untrusted strings These strings may come from untrusted sources (e.g. file xattrs) so they need to be properly escaped. Reproducer: # setenforce 0 # touch /tmp/test # setfattr -n security.selinux -v 'kuřecí řízek' /tmp/test # runcon system_u:system_r:sshd_t:s0 cat /tmp/test (look at the generated AVCs) Actual result: type=AVC [...] trawcon=kuřecí řízek Expected result: type=AVC [...] trawcon=6B75C5996563C3AD20C599C3AD7A656B Fixes: fede148324c3 ("selinux: log invalid contexts in AVCs") Cc: stable@vger.kernel.org # v5.1+ Signed-off-by: Ondrej Mosnacek Acked-by: Richard Guy Briggs Signed-off-by: Paul Moore commit f6581f5b55141a95657ef5742cf6a6bfa20a109f Author: Jann Horn Date: Wed May 29 13:31:57 2019 +0200 ptrace: restore smp_rmb() in __ptrace_may_access() Restore the read memory barrier in __ptrace_may_access() that was deleted a couple years ago. Also add comments on this barrier and the one it pairs with to explain why they're there (as far as I understand). Fixes: bfedb589252c ("mm: Add a user_ns owner to mm_struct and fix ptrace permission checks") Cc: stable@vger.kernel.org Acked-by: Kees Cook Acked-by: Oleg Nesterov Signed-off-by: Jann Horn Signed-off-by: Eric W. Biederman commit cc78076af14e1478c1a8fb18997674b5f8cbe3c8 Author: Mike Marciniszyn Date: Mon Jun 10 12:28:18 2019 -0400 IB/hfi1: Correct tid qp rcd to match verbs context The qp priv rcd pointer doesn't match the context being used for verbs causing issues when 9B and kdeth packets are processed by different receive contexts and hence different CPUs. When running on different CPUs the following panic can occur: WARNING: CPU: 3 PID: 2584 at lib/list_debug.c:59 __list_del_entry+0xa1/0xd0 list_del corruption. prev->next should be ffff9a7ac31f7a30, but was ffff9a7c3bc89230 CPU: 3 PID: 2584 Comm: z_wr_iss Kdump: loaded Tainted: P OE ------------ 3.10.0-862.2.3.el7_lustre.x86_64 #1 Call Trace: [] dump_stack+0x19/0x1b [] __warn+0xd8/0x100 [] warn_slowpath_fmt+0x5f/0x80 [] __list_del_entry+0xa1/0xd0 [] process_rcv_qp_work+0xb5/0x160 [hfi1] [] handle_receive_interrupt_nodma_rtail+0x20b/0x2b0 [hfi1] [] receive_context_interrupt+0x23/0x40 [hfi1] [] __handle_irq_event_percpu+0x44/0x1c0 [] handle_irq_event_percpu+0x32/0x80 [] handle_irq_event+0x3c/0x60 [] handle_edge_irq+0x7f/0x150 [] handle_irq+0xe4/0x1a0 [] do_IRQ+0x4d/0xf0 [] common_interrupt+0x162/0x162 [] ? memcpy+0x6/0x110 [] ? abd_copy_from_buf_off_cb+0x1d/0x30 [zfs] [] ? abd_copy_to_buf_off_cb+0x30/0x30 [zfs] [] abd_iterate_func+0x97/0x120 [zfs] [] abd_copy_from_buf_off+0x39/0x60 [zfs] [] arc_write_ready+0x178/0x300 [zfs] [] ? mutex_lock+0x12/0x2f [] ? mutex_lock+0x12/0x2f [] zio_ready+0x65/0x3d0 [zfs] [] ? tsd_get_by_thread+0x2e/0x50 [spl] [] ? taskq_member+0x18/0x30 [spl] [] zio_execute+0xa2/0x100 [zfs] [] taskq_thread+0x2ac/0x4f0 [spl] [] ? wake_up_state+0x20/0x20 [] ? zio_taskq_member.isra.7.constprop.10+0x80/0x80 [zfs] [] ? taskq_thread_spawn+0x60/0x60 [spl] [] kthread+0xd1/0xe0 [] ? insert_kthread_work+0x40/0x40 [] ret_from_fork_nospec_begin+0x21/0x21 [] ? insert_kthread_work+0x40/0x40 Fix by reading the map entry in the same manner as the hardware so that the kdeth and verbs contexts match. Cc: Fixes: 5190f052a365 ("IB/hfi1: Allow the driver to initialize QP priv struct") Reviewed-by: Kaike Wan Signed-off-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit da9de5f8527f4b9efc82f967d29a583318c034c7 Author: Mike Marciniszyn Date: Fri Jun 7 08:25:31 2019 -0400 IB/hfi1: Close PSM sdma_progress sleep window The call to sdma_progress() is called outside the wait lock. In this case, there is a race condition where sdma_progress() can return false and the sdma_engine can idle. If that happens, there will be no more sdma interrupts to cause the wakeup and the user_sdma xmit will hang. Fix by moving the lock to enclose the sdma_progress() call. Also, delete busycount. The need for this was removed by: commit bcad29137a97 ("IB/hfi1: Serve the most starved iowait entry first") Cc: Fixes: 7724105686e7 ("IB/hfi1: add driver files") Reviewed-by: Gary Leshner Signed-off-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit 5f90677ed31963abb184ee08ebee4a4a68225dd8 Author: Kaike Wan Date: Fri Jun 7 08:25:25 2019 -0400 IB/hfi1: Validate fault injection opcode user input The opcode range for fault injection from user should be validated before it is applied to the fault->opcodes[] bitmap to avoid out-of-bound error. Cc: Fixes: a74d5307caba ("IB/hfi1: Rework fault injection machinery") Reported-by: Dan Carpenter Reviewed-by: Mike Marciniszyn Signed-off-by: Kaike Wan Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit 93c65f83f25bd5e072a42c9659a85fdc4fb47c27 Merge: 309b66970ee2 eccc73a6b2cb Author: David S. Miller Date: Tue Jun 11 12:07:33 2019 -0700 Merge branch 'vxlan-geneve-linear' Stefano Brivio says: ==================== Don't assume linear buffers in error handlers for VXLAN and GENEVE Guillaume noticed the same issue fixed by commit 26fc181e6cac ("fou, fou6: do not assume linear skbs") for fou and fou6 is also present in VXLAN and GENEVE error handlers: we can't assume linear buffers there, we need to use pskb_may_pull() instead. ==================== Acked-by: Guillaume Nault Signed-off-by: David S. Miller commit eccc73a6b2cb6c04bfbc40a0769f3c428dfba232 Author: Stefano Brivio Date: Tue Jun 11 00:27:06 2019 +0200 geneve: Don't assume linear buffers in error handler In commit a07966447f39 ("geneve: ICMP error lookup handler") I wrongly assumed buffers from icmp_socket_deliver() would be linear. This is not the case: icmp_socket_deliver() only guarantees we have 8 bytes of linear data. Eric fixed this same issue for fou and fou6 in commits 26fc181e6cac ("fou, fou6: do not assume linear skbs") and 5355ed6388e2 ("fou, fou6: avoid uninit-value in gue_err() and gue6_err()"). Use pskb_may_pull() instead of checking skb->len, and take into account the fact we later access the GENEVE header with udp_hdr(), so we also need to sum skb_transport_header() here. Reported-by: Guillaume Nault Fixes: a07966447f39 ("geneve: ICMP error lookup handler") Signed-off-by: Stefano Brivio Signed-off-by: David S. Miller commit 8399a6930d12f5965230f4ff058228a4cc80c0b9 Author: Stefano Brivio Date: Tue Jun 11 00:27:05 2019 +0200 vxlan: Don't assume linear buffers in error handler In commit c3a43b9fec8a ("vxlan: ICMP error lookup handler") I wrongly assumed buffers from icmp_socket_deliver() would be linear. This is not the case: icmp_socket_deliver() only guarantees we have 8 bytes of linear data. Eric fixed this same issue for fou and fou6 in commits 26fc181e6cac ("fou, fou6: do not assume linear skbs") and 5355ed6388e2 ("fou, fou6: avoid uninit-value in gue_err() and gue6_err()"). Use pskb_may_pull() instead of checking skb->len, and take into account the fact we later access the VXLAN header with udp_hdr(), so we also need to sum skb_transport_header() here. Reported-by: Guillaume Nault Fixes: c3a43b9fec8a ("vxlan: ICMP error lookup handler") Signed-off-by: Stefano Brivio Signed-off-by: David S. Miller commit 309b66970ee2abf721ecd0876a48940fa0b99a35 Author: Taehee Yoo Date: Sun Jun 9 23:26:21 2019 +0900 net: openvswitch: do not free vport if register_netdevice() is failed. In order to create an internal vport, internal_dev_create() is used and that calls register_netdevice() internally. If register_netdevice() fails, it calls dev->priv_destructor() to free private data of netdev. actually, a private data of this is a vport. Hence internal_dev_create() should not free and use a vport after failure of register_netdevice(). Test command ovs-dpctl add-dp bonding_masters Splat looks like: [ 1035.667767] kasan: GPF could be caused by NULL-ptr deref or user memory access [ 1035.675958] general protection fault: 0000 [#1] SMP DEBUG_PAGEALLOC KASAN PTI [ 1035.676916] CPU: 1 PID: 1028 Comm: ovs-vswitchd Tainted: G B 5.2.0-rc3+ #240 [ 1035.676916] RIP: 0010:internal_dev_create+0x2e5/0x4e0 [openvswitch] [ 1035.676916] Code: 48 c1 ea 03 80 3c 02 00 0f 85 9f 01 00 00 4c 8b 23 48 b8 00 00 00 00 00 fc ff df 49 8d bc 24 60 05 00 00 48 89 fa 48 c1 ea 03 <80> 3c 02 00 0f 85 86 01 00 00 49 8b bc 24 60 05 00 00 e8 e4 68 f4 [ 1035.713720] RSP: 0018:ffff88810dcb7578 EFLAGS: 00010206 [ 1035.713720] RAX: dffffc0000000000 RBX: ffff88810d13fe08 RCX: ffffffff84297704 [ 1035.713720] RDX: 00000000000000ac RSI: 0000000000000000 RDI: 0000000000000560 [ 1035.713720] RBP: 00000000ffffffef R08: fffffbfff0d3b881 R09: fffffbfff0d3b881 [ 1035.713720] R10: 0000000000000001 R11: fffffbfff0d3b880 R12: 0000000000000000 [ 1035.768776] R13: 0000607ee460b900 R14: ffff88810dcb7690 R15: ffff88810dcb7698 [ 1035.777709] FS: 00007f02095fc980(0000) GS:ffff88811b400000(0000) knlGS:0000000000000000 [ 1035.777709] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 1035.777709] CR2: 00007ffdf01d2f28 CR3: 0000000108258000 CR4: 00000000001006e0 [ 1035.777709] Call Trace: [ 1035.777709] ovs_vport_add+0x267/0x4f0 [openvswitch] [ 1035.777709] new_vport+0x15/0x1e0 [openvswitch] [ 1035.777709] ovs_vport_cmd_new+0x567/0xd10 [openvswitch] [ 1035.777709] ? ovs_dp_cmd_dump+0x490/0x490 [openvswitch] [ 1035.777709] ? __kmalloc+0x131/0x2e0 [ 1035.777709] ? genl_family_rcv_msg+0xa54/0x1030 [ 1035.777709] genl_family_rcv_msg+0x63a/0x1030 [ 1035.777709] ? genl_unregister_family+0x630/0x630 [ 1035.841681] ? debug_show_all_locks+0x2d0/0x2d0 [ ... ] Fixes: cf124db566e6 ("net: Fix inconsistent teardown and release of private netdev state.") Signed-off-by: Taehee Yoo Reviewed-by: Greg Rose Signed-off-by: David S. Miller commit ec9b4feb1e41587c15d43d237844193318389dc3 Author: Eugeniy Paltsev Date: Wed Jun 5 20:32:50 2019 +0300 ARC: [plat-hsdk]: unify memory apertures configuration HSDK SoC has memory bridge which allows to configure memory map for different AXI masters in runtime. As of today we adjust memory apertures configuration in U-boot so we have different configuration in case of loading kernel via U-boot and JTAG. It isn't really critical in case of existing platform configuration as configuration differs for unused address space regions or unused AXI masters. However we may face with this issue when we'll bringup new peripherals or touch their address space. Fix that by perform full configuration of memory bridge in HSDK platform code. Basically we simply copy memory bridge configuration code from U-boot. Acked-by: Alexey Brodkin Signed-off-by: Eugeniy Paltsev Signed-off-by: Vineet Gupta commit 2bc42bfba9b247abd93991195b71f35a484531d1 Author: Alexey Brodkin Date: Mon Jun 3 09:31:19 2019 +0300 ARC: build: Try to guess CROSS_COMPILE with cc-cross-prefix For a long time we used to hard-code CROSS_COMPILE prefix for ARC until it started to cause problems, so we decided to solely rely on CROSS_COMPILE externally set by a user: commit 40660f1fcee8 ("ARC: build: Don't set CROSS_COMPILE in arch's Makefile"). While it works perfectly fine for build-systems where the prefix gets defined anyways for us human beings it's quite an annoying requirement especially given most of time the same one prefix "arc-linux-" is all what we need. It looks like finally we're getting the best of both worlds: 1. W/o cross-toolchain we still may install headers, build .dtb etc 2. W/ cross-toolchain get the kerne built with only ARCH=arc Inspired by [1] & [2]. [1] http://lists.infradead.org/pipermail/linux-snps-arc/2019-May/005788.html [2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fc2b47b55f17 A side note: even though "cc-cross-prefix" does its job it pollutes console with output of "which" for all the prefixes it didn't manage to find a matching cross-compiler for like that: | # ARCH=arc make defconfig | which: no arceb-linux-gcc in (~/.local/bin:~/bin:/usr/bin:/usr/sbin) | *** Default configuration is based on 'nsim_hs_defconfig' Suggested-by: Vineet Gupta Reviewed-by: Masahiro Yamada Signed-off-by: Alexey Brodkin Signed-off-by: Vineet Gupta commit 522924b583082f51b8a2406624a2f27c22119b20 Author: Willem de Bruijn Date: Fri Jun 7 17:57:48 2019 -0400 net: correct udp zerocopy refcnt also when zerocopy only on append The below patch fixes an incorrect zerocopy refcnt increment when appending with MSG_MORE to an existing zerocopy udp skb. send(.., MSG_ZEROCOPY | MSG_MORE); // refcnt 1 send(.., MSG_ZEROCOPY | MSG_MORE); // refcnt still 1 (bar frags) But it missed that zerocopy need not be passed at the first send. The right test whether the uarg is newly allocated and thus has extra refcnt 1 is not !skb, but !skb_zcopy. send(.., MSG_MORE); // send(.., MSG_ZEROCOPY); // refcnt 1 Fixes: 100f6d8e09905 ("net: correct zerocopy refcnt with udp MSG_MORE") Reported-by: syzbot Signed-off-by: Willem de Bruijn Signed-off-by: David S. Miller commit 517b91f4cde3043d77b2178548473e8545ef07cb Author: Shirish S Date: Tue Jun 4 21:25:03 2019 +0530 drm/amdgpu/{uvd,vcn}: fetch ring's read_ptr after alloc [What] readptr read always returns zero, since most likely these blocks are either power or clock gated. [How] fetch rptr after amdgpu_ring_alloc() which informs the power management code that the block is about to be used and hence the gating is turned off. Signed-off-by: Louis Li Signed-off-by: Shirish S Reviewed-by: Christian König Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org commit 941d935ac7636911a3fd8fa80e758e52b0b11e20 Author: Amir Goldstein Date: Tue Jun 11 18:09:28 2019 +0300 ovl: fix wrong flags check in FS_IOC_FS[SG]ETXATTR ioctls The ioctl argument was parsed as the wrong type. Fixes: b21d9c435f93 ("ovl: support the FS_IOC_FS[SG]ETXATTR ioctls") Signed-off-by: Amir Goldstein Signed-off-by: Miklos Szeredi commit d0e1f2110a5eeb6e410b2dd37d98bc5b30da7bc7 Author: Nick Hu Date: Thu May 30 15:01:17 2019 +0800 riscv: Fix udelay in RV32. In RV32, udelay would delay the wrong cycle. When it shifts right "UDELAY_SHIFT" bits, it either delays 0 cycle or 1 cycle. It only works correctly in RV64. Because the 'ucycles' always needs to be 64 bits variable. Signed-off-by: Nick Hu Reviewed-by: Palmer Dabbelt [paul.walmsley@sifive.com: fixed minor spelling error] Signed-off-by: Paul Walmsley commit 39916897cd815a0ee07ba1f6820cf88a63e459fc Author: Qian Cai Date: Mon Jun 3 16:44:15 2019 -0400 drm/vmwgfx: fix a warning due to missing dma_parms Booting up with DMA_API_DEBUG_SG=y generates a warning due to the driver forgot to set dma_parms appropriately. Set it just after vmw_dma_masks() in vmw_driver_load(). DMA-API: vmwgfx 0000:00:0f.0: mapping sg segment longer than device claims to support [len=2097152] [max=65536] WARNING: CPU: 2 PID: 261 at kernel/dma/debug.c:1232 debug_dma_map_sg+0x360/0x480 Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 04/13/2018 RIP: 0010:debug_dma_map_sg+0x360/0x480 Call Trace: vmw_ttm_map_dma+0x3b1/0x5b0 [vmwgfx] vmw_bo_map_dma+0x25/0x30 [vmwgfx] vmw_otables_setup+0x2a8/0x750 [vmwgfx] vmw_request_device_late+0x78/0xc0 [vmwgfx] vmw_request_device+0xee/0x4e0 [vmwgfx] vmw_driver_load.cold+0x757/0xd84 [vmwgfx] drm_dev_register+0x1ff/0x340 [drm] drm_get_pci_dev+0x110/0x290 [drm] vmw_probe+0x15/0x20 [vmwgfx] local_pci_probe+0x7a/0xc0 pci_device_probe+0x1b9/0x290 really_probe+0x1b5/0x630 driver_probe_device+0xa3/0x1a0 device_driver_attach+0x94/0xa0 __driver_attach+0xdd/0x1c0 bus_for_each_dev+0xfe/0x150 driver_attach+0x2d/0x40 bus_add_driver+0x290/0x350 driver_register+0xdc/0x1d0 __pci_register_driver+0xda/0xf0 vmwgfx_init+0x34/0x1000 [vmwgfx] do_one_initcall+0xe5/0x40a do_init_module+0x10f/0x3a0 load_module+0x16a5/0x1a40 __se_sys_finit_module+0x183/0x1c0 __x64_sys_finit_module+0x43/0x50 do_syscall_64+0xc8/0x606 entry_SYSCALL_64_after_hwframe+0x44/0xa9 Fixes: fb1d9738ca05 ("drm/vmwgfx: Add DRM driver for VMware Virtual GPU") Co-developed-by: Thomas Hellstrom Signed-off-by: Qian Cai Signed-off-by: Thomas Hellstrom commit 405945588feedac8d7609113de9c62e72575a0ef Author: Andreas Schwab Date: Tue Jun 11 12:28:40 2019 +0200 riscv: export pm_power_off again Commit bf0102a0fdd9 ("riscv: call pm_power_off from machine_halt / machine_power_off") removed the export of pm_power_off, but it is used by several modules: ERROR: "pm_power_off" [drivers/mfd/rk808.ko] undefined! ERROR: "pm_power_off" [drivers/mfd/max8907.ko] undefined! ERROR: "pm_power_off" [drivers/mfd/axp20x.ko] undefined! ERROR: "pm_power_off" [drivers/char/ipmi/ipmi_poweroff.ko] undefined! Signed-off-by: Andreas Schwab Fixes: bf0102a0fdd9 ("riscv: call pm_power_off from machine_halt / machine_power_off") Signed-off-by: Paul Walmsley commit bde15555ba61c7f664f40fd3c6fdbdb63f784c9b Author: Thomas Hellstrom Date: Tue Jun 4 13:54:26 2019 +0200 drm/vmwgfx: Honor the sg list segment size limitation When building sg tables, honor the device sg list segment size limitation. Signed-off-by: Thomas Hellstrom Reviewed-by: Deepak Rawat commit 3b025f2bc98973f181d926192b0ceb6ced0f86d2 Author: Kevin Hilman Date: Wed Jun 5 10:50:42 2019 -0700 RISC-V: defconfig: enable clocks, serial console Enable PRCI clock driver and serial console by default, so the default upstream defconfig is bootable to a serial console. Signed-off-by: Kevin Hilman Reviewed-by: Christoph Hellwig Signed-off-by: Paul Walmsley commit cc0ba0d8624f210995924bb57a8b181ce8976606 Author: Thomas Hellstrom Date: Wed May 29 08:15:19 2019 +0200 drm/vmwgfx: Use the backdoor port if the HB port is not available The HB port may not be available for various reasons. Either it has been disabled by a config option or by the hypervisor for other reasons. In that case, make sure we have a backup plan and use the backdoor port instead with a performance penalty. Cc: stable@vger.kernel.org Fixes: 89da76fde68d ("drm/vmwgfx: Add VMWare host messaging capability") Signed-off-by: Thomas Hellstrom Reviewed-by: Deepak Rawat commit a483fcab38b43fb34a7f12ab1daadd3907f150e2 Author: Hans de Goede Date: Wed May 29 15:28:28 2019 +0200 efi/bgrt: Drop BGRT status field reserved bits check Starting with ACPI 6.2 bits 1 and 2 of the BGRT status field are no longer reserved. These bits are now used to indicate if the image needs to be rotated before being displayed. The first device using these bits has now shown up (the GPD MicroPC) and the reserved bits check causes us to reject the valid BGRT table on this device. Rather then changing the reserved bits check, allowing only the 2 new bits, instead just completely remove it so that we do not end up with a similar problem when more bits are added in the future. Signed-off-by: Hans de Goede Signed-off-by: Ard Biesheuvel commit 18df7577adae6c6c778bf774b3aebcacbc1fb439 Author: Ard Biesheuvel Date: Sun Jun 9 20:17:44 2019 +0200 efi/memreserve: deal with memreserve entries in unmapped memory Ensure that the EFI memreserve entries can be accessed, even if they are located in memory that the kernel (e.g., a crashkernel) omits from the linear map. Fixes: 80424b02d42b ("efi: Reduce the amount of memblock reservations ...") Cc: # 5.0+ Reported-by: Jonathan Richardson Reviewed-by: Jonathan Richardson Tested-by: Jonathan Richardson Signed-off-by: Ard Biesheuvel commit da2577fdd0932ea4eefe73903f1130ee366767d2 Author: Jonathan Lemon Date: Sat Jun 8 12:54:19 2019 -0700 bpf: lpm_trie: check left child of last leftmost node for NULL If the leftmost parent node of the tree has does not have a child on the left side, then trie_get_next_key (and bpftool map dump) will not look at the child on the right. This leads to the traversal missing elements. Lookup is not affected. Update selftest to handle this case. Reproducer: bpftool map create /sys/fs/bpf/lpm type lpm_trie key 6 \ value 1 entries 256 name test_lpm flags 1 bpftool map update pinned /sys/fs/bpf/lpm key 8 0 0 0 0 0 value 1 bpftool map update pinned /sys/fs/bpf/lpm key 16 0 0 0 0 128 value 2 bpftool map dump pinned /sys/fs/bpf/lpm Returns only 1 element. (2 expected) Fixes: b471f2f1de8b ("bpf: implement MAP_GET_NEXT_KEY command for LPM_TRIE") Signed-off-by: Jonathan Lemon Acked-by: Martin KaFai Lau Signed-off-by: Daniel Borkmann commit 766741fcaa1fe5da2cb1e33ae458a5630ff7f667 Author: Miklos Szeredi Date: Tue Jun 11 13:35:22 2019 +0200 Revert "fuse: require /dev/fuse reads to have enough buffer capacity" This reverts commit d4b13963f217dd947da5c0cabd1569e914d21699. The commit introduced a regression in glusterfs-fuse. Reported-by: Sander Eikelenboom Signed-off-by: Miklos Szeredi commit 352bcae97f9ba87801f497571cdec20af190efe1 Author: Rui Nuno Capela Date: Fri Jun 7 15:13:37 2019 +0100 ALSA: ice1712: Check correct return value to snd_i2c_sendbytes (EWS/DMX 6Fire) Check for exact and correct return value to snd_i2c_sendbytes call for EWS/DMX 6Fire (snd_ice1712). Fixes a systemic error on every boot starting from kernel 5.1 onwards to snd_ice1712 driver ("cannot send pca") on Terratec EWS/DMX 6Fire PCI soundcards. Check for exact and correct return value to snd_i2c_sendbytes call for EWS/DMX 6Fire (snd_ice1712). Fixes a systemic error on every boot to snd_ice1712 driver ("cannot send pca") on Terratec EWS/DMX 6Fire PCI soundcards. Fixes: c99776cc4018 ("ALSA: ice1712: fix a missing check of snd_i2c_sendbytes") Signed-off-by: Rui Nuno Capela Cc: Signed-off-by: Takashi Iwai commit d8fa87c368f5b4096c4746894fdcc195da285df1 Author: Takashi Sakamoto Date: Sun Jun 9 19:29:12 2019 +0900 ALSA: oxfw: allow PCM capture for Stanton SCS.1m Stanton SCS.1m can transfer isochronous packet with Multi Bit Linear Audio data channels, therefore it allows software to capture PCM substream. However, ALSA oxfw driver doesn't. This commit changes the driver to add one PCM substream for capture direction. Fixes: de5126cc3c0b ("ALSA: oxfw: add stream format quirk for SCS.1 models") Cc: # v4.5+ Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai commit 0e3fb6995bfabb23c172e8b883bf5ac57102678e Author: Takashi Sakamoto Date: Sat Jun 1 12:08:01 2019 +0900 ALSA: firewire-motu: fix destruction of data for isochronous resources The data for isochronous resources is not destroyed in expected place. This commit fixes the bug. Cc: # v4.12+ Fixes: 9b2bb4f2f4a2 ("ALSA: firewire-motu: add stream management functionality") Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai commit 93c2f55ffc89247079e4eb616c70ecc3c9614b05 Author: Guenter Roeck Date: Sun Jun 9 13:35:44 2019 -0700 s390/ctl_reg: mark __ctl_set_bit and __ctl_clear_bit as __always_inline s390:tinyconfig fails to build with gcc 8.3.0. arch/s390/include/asm/ctl_reg.h:52:2: error: impossible constraint in 'asm' asm volatile( \ ^~~ arch/s390/include/asm/ctl_reg.h:62:2: note: in expansion of macro '__ctl_store' __ctl_store(reg, cr, cr); ^~~~~~~~~~~ s390/include/asm/ctl_reg.h:41:2: error: impossible constraint in 'asm' asm volatile( \ ^~~ arch/s390/include/asm/ctl_reg.h:64:2: note: in expansion of macro '__ctl_load' __ctl_load(reg, cr, cr); ^~~~~~~~~~ Marking __ctl_set_bit and __ctl_clear_bit as __always_inline fixes the problem. Fixes: 9012d011660e ("compiler: allow all arches to enable CONFIG_OPTIMIZE_INLINING") Signed-off-by: Guenter Roeck Signed-off-by: Heiko Carstens commit f9364df30420987e77599c4789ec0065c609a507 Author: Heiko Carstens Date: Tue Jun 4 13:10:51 2019 +0200 s390/boot: disable address-of-packed-member warning Get rid of gcc9 warnings like this: arch/s390/boot/ipl_report.c: In function 'find_bootdata_space': arch/s390/boot/ipl_report.c:42:26: warning: taking address of packed member of 'struct ipl_rb_components' may result in an unaligned pointer value [-Waddress-of-packed-member] 42 | for_each_rb_entry(comp, comps) | ^~~~~ This is effectively the s390 variant of commit 20c6c1890455 ("x86/boot: Disable the address-of-packed-member compiler warning"). Reviewed-by: Vasily Gorbik Signed-off-by: Heiko Carstens commit 01ccc3ad44130458769646204449e2e4124f15da Merge: 5e3b6b8ecc53 cf8929885de3 Author: Linus Torvalds Date: Mon Jun 10 07:43:30 2019 -1000 Merge tag 'for-linus-20190610' of git://git.kernel.dk/linux-block Pull block cgroup symlink revert from Jens Axboe: "I talked to Tejun about this offline, and he's not a huge fan of the symlink. So let's revert this for now, and Paolo can do this properly for 5.3 instead" * tag 'for-linus-20190610' of git://git.kernel.dk/linux-block: cgroup/bfq: revert bfq.weight symlink change commit 5e3b6b8ecc53ffec9472ce5468307061072a5ded Merge: e59bf4282c8b 7d293f564561 Author: Linus Torvalds Date: Mon Jun 10 07:35:55 2019 -1000 Merge tag 'regulator-fix-v5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator Pull regulator fix from Mark Brown: "Just one driver specific fix here, for a boot regression introduced during some modernization work on the tps6507x driver" * tag 'regulator-fix-v5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: regulator: tps6507x: Fix boot regression due to testing wrong init_data pointer commit e59bf4282c8b0abd27cc4d550e20ec5b85ccaa19 Merge: d1fdb6d8f6a4 f3440d9a0da2 Author: Linus Torvalds Date: Mon Jun 10 07:19:56 2019 -1000 Merge tag 'spi-fix-v5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi Pull spi fixes from Mark Brown: "A small set of fixes here. One core fix for error handling when we fail to set up the hardware before initiating a transfer and another one reverting a change in the core which broke Raspberry Pi in common use cases as part of some optimization work. There's also a couple of driver specific fixes" * tag 'spi-fix-v5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: spi: abort spi_sync if failed to prepare_transfer_hardware spi: spi-fsl-spi: call spi_finalize_current_message() at the end spi: bitbang: Fix NULL pointer dereference in spi_unregister_master spi: Fix Raspberry Pi breakage commit c596687a008b579c503afb7a64fcacc7270fae9e Author: Tejun Heo Date: Mon Jun 10 09:08:27 2019 -0700 cgroup: Fix css_task_iter_advance_css_set() cset skip condition While adding handling for dying task group leaders c03cd7738a83 ("cgroup: Include dying leaders with live threads in PROCS iterations") added an inverted cset skip condition to css_task_iter_advance_css_set(). It should skip cset if it's completely empty but was incorrectly testing for the inverse condition for the dying_tasks list. Fix it. Signed-off-by: Tejun Heo Fixes: c03cd7738a83 ("cgroup: Include dying leaders with live threads in PROCS iterations") Reported-by: syzbot+d4bba5ccd4f9a2a68681@syzkaller.appspotmail.com commit b7108486d2d60357dec274276e2f69128f29dcdc Merge: d1fdb6d8f6a4 39194128701b Author: Greg Kroah-Hartman Date: Mon Jun 10 18:07:39 2019 +0200 Merge tag 'soundwire-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire into char-misc-linus Vinod writes: soundwire fixes for v5.2-rc4 Srinivas Kandagatla fixed by bunch of issues, two in core for locking and out of bound access and one in intel driver copy-paste * tag 'soundwire-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire: soundwire: intel: set dai min and max channels correctly soundwire: stream: fix bad unlock balance soundwire: stream: fix out of boundary access on port properties commit de060de333eff20c1c2dad0139983f19150f776b Author: Ezequiel Garcia Date: Wed Jun 5 15:48:59 2019 -0300 drm/panfrost: Require the simple_ondemand governor Panfrost depends on the simple_ondemand governor, and therefore it's a required configuration. Select it. Fixes: f3617b449d0b ("drm/panfrost: Select devfreq") Signed-off-by: Ezequiel Garcia Reviewed-by: Tomeu Vizoso Signed-off-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/20190605184859.9432-1-ezequiel@collabora.com commit 1c3b526e559deada4506732acec4af1879fc1fa0 Author: Neil Armstrong Date: Wed Jun 5 17:02:33 2019 +0200 drm/panfrost: make devfreq optional again Devfreq runtime usage was made mandatory, thus making panfrost fail to probe on Amlogic S912 SoCs missing the "operating-points-v2" property. Make it optional again, leaving PM_DEVFREQ selected by default. Fixes: f3617b449d0b ("drm/panfrost: Select devfreq") Signed-off-by: Neil Armstrong Reviewed-by: Ezequiel Garcia Signed-off-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/20190605150233.32722-1-narmstrong@baylibre.com commit be7d9f05c53e6fc88525f8e55cf2dae937761799 Author: Boris Brezillon Date: Wed May 29 08:51:21 2019 +0200 drm/gem_shmem: Use a writecombine mapping for ->vaddr Right now, the BO is mapped as a cached region when ->vmap() is called and the underlying object is not a dmabuf. Doing that makes cache management a bit more complicated (you'd need to call dma_map/unmap_sg() on the ->sgt field everytime the BO is about to be passed to the GPU/CPU), so let's map the BO with writecombine attributes instead (as done in most drivers). Fixes: 2194a63a818d ("drm: Add library for shmem backed GEM objects") Signed-off-by: Boris Brezillon Reviewed-by: Daniel Vetter Reviewed-by: Eric Anholt Signed-off-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/20190529065121.13485-1-boris.brezillon@collabora.com commit 97bf85b6ec9e6597ce81c79b26a28f7918fc4eaf Author: Wolfram Sang Date: Thu Jun 6 13:35:35 2019 +0200 mmc: sdhi: disallow HS400 for M3-W ES1.2, RZ/G2M, and V3H Our HW engineers informed us that HS400 is not working on these SoC revisions. Fixes: 0f4e2054c971 ("mmc: renesas_sdhi: disable HS400 on H3 ES1.x and M3-W ES1.[012]") Signed-off-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Reviewed-by: Fabrizio Castro Reviewed-by: Niklas Söderlund Cc: stable@vger.kernel.org Signed-off-by: Ulf Hansson commit 3da428ff2aa5a5191ba2f1630eea75f03242f3f2 Author: Alex Levin Date: Fri Jun 7 15:19:11 2019 -0700 ASoC: Intel: sst: fix kmalloc call with wrong flags When calling kmalloc with GFP_KERNEL in case CONFIG_SLOB is unset, kmem_cache_alloc_trace is called. In case CONFIG_TRACING is set, kmem_cache_alloc_trace will ball slab_alloc, which will call slab_pre_alloc_hook which might_sleep_if. The context in which it is called in this case, the intel_sst_interrupt_mrfld, calling a sleeping kmalloc generates a BUG(): Fixes: 972b0d456e64 ("ASoC: Intel: remove GFP_ATOMIC, use GFP_KERNEL") [ 20.250671] BUG: sleeping function called from invalid context at mm/slab.h:422 [ 20.250683] in_atomic(): 1, irqs_disabled(): 1, pid: 1791, name: Chrome_IOThread [ 20.250690] CPU: 0 PID: 1791 Comm: Chrome_IOThread Tainted: G W 4.19.43 #61 [ 20.250693] Hardware name: GOOGLE Kefka, BIOS Google_Kefka.7287.337.0 03/02/2017 [ 20.250697] Call Trace: [ 20.250704] [ 20.250716] dump_stack+0x7e/0xc3 [ 20.250725] ___might_sleep+0x12a/0x140 [ 20.250731] kmem_cache_alloc_trace+0x53/0x1c5 [ 20.250736] ? update_cfs_rq_load_avg+0x17e/0x1aa [ 20.250740] ? cpu_load_update+0x6c/0xc2 [ 20.250746] sst_create_ipc_msg+0x2d/0x88 [ 20.250752] intel_sst_interrupt_mrfld+0x12a/0x22c [ 20.250758] __handle_irq_event_percpu+0x133/0x228 [ 20.250764] handle_irq_event_percpu+0x35/0x7a [ 20.250768] handle_irq_event+0x36/0x55 [ 20.250773] handle_fasteoi_irq+0xab/0x16c [ 20.250779] handle_irq+0xd9/0x11e [ 20.250785] do_IRQ+0x54/0xe0 [ 20.250791] common_interrupt+0xf/0xf [ 20.250795] [ 20.250800] RIP: 0010:__lru_cache_add+0x4e/0xad [ 20.250806] Code: 00 01 48 c7 c7 b8 df 01 00 65 48 03 3c 25 28 f1 00 00 48 8b 48 08 48 89 ca 48 ff ca f6 c1 01 48 0f 44 d0 f0 ff 42 34 0f b6 0f <89> ca fe c2 88 17 48 89 44 cf 08 80 fa 0f 74 0e 48 8b 08 66 85 c9 [ 20.250809] RSP: 0000:ffffa568810bfd98 EFLAGS: 00000202 ORIG_RAX: ffffffffffffffd6 [ 20.250814] RAX: ffffd3b904eb1940 RBX: ffffd3b904eb1940 RCX: 0000000000000004 [ 20.250817] RDX: ffffd3b904eb1940 RSI: ffffa10ee5c47450 RDI: ffffa10efba1dfb8 [ 20.250821] RBP: ffffa568810bfda8 R08: ffffa10ef9c741c1 R09: dead000000000100 [ 20.250824] R10: 0000000000000000 R11: 0000000000000000 R12: ffffa10ee8d52a40 [ 20.250827] R13: ffffa10ee8d52000 R14: ffffa10ee5c47450 R15: 800000013ac65067 [ 20.250835] lru_cache_add_active_or_unevictable+0x4e/0xb8 [ 20.250841] handle_mm_fault+0xd98/0x10c4 [ 20.250848] __do_page_fault+0x235/0x42d [ 20.250853] ? page_fault+0x8/0x30 [ 20.250858] do_page_fault+0x3d/0x17a [ 20.250862] ? page_fault+0x8/0x30 [ 20.250866] page_fault+0x1e/0x30 [ 20.250872] RIP: 0033:0x7962fdea9304 [ 20.250875] Code: 0f 11 4c 17 f0 c3 48 3b 15 f1 26 31 00 0f 83 e2 00 00 00 48 39 f7 72 0f 74 12 4c 8d 0c 16 4c 39 cf 0f 82 63 01 00 00 48 89 d1 a4 c3 80 fa 08 73 12 80 fa 04 73 1e 80 fa 01 77 26 72 05 0f b6 [ 20.250879] RSP: 002b:00007962f4db5468 EFLAGS: 00010206 [ 20.250883] RAX: 00003c8cc9d47008 RBX: 0000000000000000 RCX: 0000000000001b48 [ 20.250886] RDX: 0000000000002b40 RSI: 00003c8cc9551000 RDI: 00003c8cc9d48000 [ 20.250890] RBP: 00007962f4db5820 R08: 0000000000000000 R09: 00003c8cc9552b48 [ 20.250893] R10: 0000562dd1064d30 R11: 00003c8cc825b908 R12: 00003c8cc966d3c0 [ 20.250896] R13: 00003c8cc9e280c0 R14: 0000000000000000 R15: 0000000000000000 Signed-off-by: Alex Levin Signed-off-by: Mark Brown commit 495f926c68ddb905a7a0192963096138c6a934e1 Author: Ranjani Sridharan Date: Fri Jun 7 22:07:06 2019 -0700 ASoC: core: Fix deadlock in snd_soc_instantiate_card() Move the client_mutex lock to snd_soc_unbind_card() before removing link components. This prevents the deadlock in the error path in snd_soc_instantiate_card(). Fixes: 34ac3c3eb8 (ASoC: core: lock client_mutex while removing link components) Reported-by: kernelci.org bot Signed-off-by: Ranjani Sridharan Signed-off-by: Mark Brown commit c2ed3d474fac61ab46468c5365f84f59dc6e173f Merge: 01fb49ff124a f3dfd4072c3e Author: Greg Kroah-Hartman Date: Mon Jun 10 16:30:56 2019 +0200 Merge tag 'usb-serial-5.2-rc5' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-linus Johan writes: USB-serial fixes for 5.2-rc5 Here are some new device ids for option and pl2303. All have been in linux-next with no reported issues. Signed-off-by: Johan Hovold * tag 'usb-serial-5.2-rc5' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial: USB: serial: option: add Telit 0x1260 and 0x1261 compositions USB: serial: pl2303: add Allied Telesis VT-Kit3 USB: serial: option: add support for Simcom SIM7500/SIM7600 RNDIS mode commit cf8929885de318c0bf73438c9e5dde59d6536f7c Author: Jens Axboe Date: Mon Jun 10 03:35:41 2019 -0600 cgroup/bfq: revert bfq.weight symlink change There's some discussion on how to do this the best, and Tejun prefers that BFQ just create the file itself instead of having cgroups support a symlink feature. Hence revert commit 54b7b868e826 and 19e9da9e86c4 for 5.2, and this can be done properly for 5.3. Signed-off-by: Jens Axboe commit 8a0098c05a272c9a68f6885e09755755b612459c Author: Teresa Remmet Date: Fri May 24 15:19:57 2019 +0200 ARM: dts: am335x phytec boards: Fix cd-gpios active level Active level of the mmc1 cd gpio needs to be low instead of high. Fix PCM-953 and phyBOARD-WEGA. Signed-off-by: Teresa Remmet Signed-off-by: Tony Lindgren commit cbdce1418894c4da804fd89555376863aa956a12 Author: Keerthy Date: Tue Jun 4 11:43:35 2019 +0530 ARM: dts: dra72x: Disable usb4_tm target module usb4_tm is unsed on dra72 and accessing the module with ti,sysc is causing a boot crash hence disable its target module. Fixes: 549fce068a3112 ("ARM: dts: dra7: Add l4 interconnect hierarchy and ti-sysc data") Reported-by: Vignesh Raghavendra Signed-off-by: Keerthy Signed-off-by: Tony Lindgren commit dce5ccccd1231c6eaec5ede80bce85f2ae536826 Author: John Hurley Date: Sat Jun 8 17:48:03 2019 -0700 nfp: ensure skb network header is set for packet redirect Packets received at the NFP driver may be redirected to egress of another netdev (e.g. in the case of OvS internal ports). On the egress path, some processes, like TC egress hooks, may expect the network header offset field in the skb to be correctly set. If this is not the case there is potential for abnormal behaviour and even the triggering of BUG() calls. Set the skb network header field before the mac header pull when doing a packet redirect. Fixes: 27f54b582567 ("nfp: allow fallback packets from non-reprs") Signed-off-by: John Hurley Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit fcc2202a9d6e4578aca1af4f1954f61dc986ef74 Author: Yuchung Cheng Date: Fri Jun 7 18:26:33 2019 -0700 tcp: fix undo spurious SYNACK in passive Fast Open Commit 794200d66273 ("tcp: undo cwnd on Fast Open spurious SYNACK retransmit") may cause tcp_fastretrans_alert() to warn about pending retransmission in Open state. This is triggered when the Fast Open server both sends data and has spurious SYNACK retransmission during the handshake, and the data packets were lost or reordered. The root cause is a bit complicated: (1) Upon receiving SYN-data: a full socket is created with snd_una = ISN + 1 by tcp_create_openreq_child() (2) On SYNACK timeout the server/sender enters CA_Loss state. (3) Upon receiving the final ACK to complete the handshake, sender does not mark FLAG_SND_UNA_ADVANCED since (1) Sender then calls tcp_process_loss since state is CA_loss by (2) (4) tcp_process_loss() does not invoke undo operations but instead mark REXMIT_LOST to force retransmission (5) tcp_rcv_synrecv_state_fastopen() calls tcp_try_undo_loss(). It changes state to CA_Open but has positive tp->retrans_out (6) Next ACK triggers the WARN_ON in tcp_fastretrans_alert() The step that goes wrong is (4) where the undo operation should have been invoked because the ACK successfully acknowledged the SYN sequence. This fixes that by specifically checking undo when the SYN-ACK sequence is acknowledged. Then after tcp_process_loss() the state would be further adjusted based in tcp_fastretrans_alert() to avoid triggering the warning in (6). Fixes: 794200d66273 ("tcp: undo cwnd on Fast Open spurious SYNACK retransmit") Signed-off-by: Yuchung Cheng Signed-off-by: Neal Cardwell Signed-off-by: David S. Miller commit c1a9d65954c68e13a6adc0225b0d38188fff68ca Author: Matteo Croce Date: Sat Jun 8 14:50:19 2019 +0200 mpls: fix af_mpls dependencies MPLS routing code relies on sysctl to work, so let it select PROC_SYSCTL. Reported-by: Randy Dunlap Suggested-by: David Ahern Signed-off-by: Matteo Croce Signed-off-by: David S. Miller commit 7f0b44a42e22edc15f8f189f8dc12b867b1bef04 Merge: 4172eadb0864 7c940b1a5291 Author: David S. Miller Date: Sun Jun 9 19:51:28 2019 -0700 Merge branch 'ibmvnic-Fixes-for-device-reset-handling' Thomas Falcon says: ==================== ibmvnic: Fixes for device reset handling This series contains three unrelated fixes to issues seen during device resets. The first patch fixes an error when the driver requests to deactivate the link of an uninitialized device, resulting in a failure to reset. Next, a patch to fix multicast transmission failures seen after a driver reset. The final patch fixes mishandling of memory allocation failures during device initialization, which caused a kernel oops. ==================== Signed-off-by: David S. Miller commit 7c940b1a5291e5069d561f5b8f0e51db6b7a259a Author: Thomas Falcon Date: Fri Jun 7 16:03:55 2019 -0500 ibmvnic: Fix unchecked return codes of memory allocations The return values for these memory allocations are unchecked, which may cause an oops if the driver does not handle them after a failure. Fix by checking the function's return code. Signed-off-by: Thomas Falcon Signed-off-by: David S. Miller commit be32a24372cf162e825332da1a7ccef058d4f20b Author: Thomas Falcon Date: Fri Jun 7 16:03:54 2019 -0500 ibmvnic: Refresh device multicast list after reset It was observed that multicast packets were no longer received after a device reset. The fix is to resend the current multicast list to the backing device after recovery. Signed-off-by: Thomas Falcon Signed-off-by: David S. Miller commit 1f94608b0ce141be5286dde31270590bdf35b86a Author: Thomas Falcon Date: Fri Jun 7 16:03:53 2019 -0500 ibmvnic: Do not close unopened driver during reset Check driver state before halting it during a reset. If the driver is not running, do nothing. Otherwise, a request to deactivate a down link can cause an error and the reset will fail. Signed-off-by: Thomas Falcon Signed-off-by: David S. Miller commit 4172eadb086407ac571f5e5be640b07b1a66ae87 Merge: 62f42a114b92 45e7d4c0c172 Author: David S. Miller Date: Sun Jun 9 19:45:54 2019 -0700 Merge tag 'mlx5-fixes-2019-06-07' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux Saeed Mahameed says: ==================== Mellanox, mlx5 fixes 2019-06-07 This series introduces some fixes to mlx5 driver. Please pull and let me know if there is any problem. For -stable v4.17 ('net/mlx5: Avoid reloading already removed devices') For -stable v5.0 ('net/mlx5e: Avoid detaching non-existing netdev under switchdev mode') For -stable v5.1 ('net/mlx5e: Fix source port matching in fdb peer flow rule') ('net/mlx5e: Support tagged tunnel over bond') ('net/mlx5e: Add ndo_set_feature for uplink representor') ('net/mlx5: Update pci error handler entries and command translation') ==================== Signed-off-by: David S. Miller commit 62f42a114b920548bbb536b3a8363bc1310f3cd7 Merge: 2f3f7d1fa0d1 fd704bd5ee74 Author: David S. Miller Date: Sun Jun 9 19:44:01 2019 -0700 Merge tag 'linux-can-fixes-for-5.2-20190607' of git://git.kernel.org/pub/scm/linux/kernel/git/mkl/linux-can Marc Kleine-Budde says: ==================== pull-request: can 2019-06-07 this is a pull reqeust of 9 patches for net/master. The first patch is by Alexander Dahl and removes a duplicate menu entry from the Kconfig. The next patch by Joakim Zhang fixes the timeout in the flexcan driver when setting small bit rates. Anssi Hannula's patch for the xilinx_can driver fixes the bittiming_const for CAN FD core. The two patches by Sean Nyekjaer bring mcp25625 to the existing mcp251x driver. The patch by Eugen Hristev implements an errata for the m_can driver. YueHaibing's patch fixes the error handling ing can_init(). The patch by Fabio Estevam for the flexcan driver removes an unneeded registration message during flexcan_probe(). And the last patch is by Willem de Bruijn and adds the missing purging the socket error queue on sock destruct. ==================== Signed-off-by: David S. Miller commit 2f3f7d1fa0d1039b24a55d127ed190f196fc3e79 Author: George Wilkie Date: Fri Jun 7 11:49:41 2019 +0100 mpls: fix warning with multi-label encap If you configure a route with multiple labels, e.g. ip route add 10.10.3.0/24 encap mpls 16/100 via 10.10.2.2 dev ens4 A warning is logged: kernel: [ 130.561819] netlink: 'ip': attribute type 1 has an invalid length. This happens because mpls_iptunnel_policy has set the type of MPLS_IPTUNNEL_DST to fixed size NLA_U32. Change it to a minimum size. nla_get_labels() does the remaining validation. Fixes: e3e4712ec096 ("mpls: ip tunnel support") Signed-off-by: George Wilkie Reviewed-by: David Ahern Signed-off-by: David S. Miller commit a9520543b123bbd7275a0ab8d0375a5412683b41 Author: Michael Schmitz Date: Fri Jun 7 17:37:34 2019 +1200 net: phy: rename Asix Electronics PHY driver [Resent to net instead of net-next - may clash with Anders Roxell's patch series addressing duplicate module names] Commit 31dd83b96641 ("net-next: phy: new Asix Electronics PHY driver") introduced a new PHY driver drivers/net/phy/asix.c that causes a module name conflict with a pre-existiting driver (drivers/net/usb/asix.c). The PHY driver is used by the X-Surf 100 ethernet card driver, and loaded by that driver via its PHY ID. A rename of the driver looks unproblematic. Rename PHY driver to ax88796b.c in order to resolve name conflict. Signed-off-by: Michael Schmitz Tested-by: Michael Schmitz Fixes: 31dd83b96641 ("net-next: phy: new Asix Electronics PHY driver") Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 65a3c497c0e965a552008db8bc2653f62bc925a1 Author: Eric Dumazet Date: Thu Jun 6 14:32:34 2019 -0700 ipv6: flowlabel: fl6_sock_lookup() must use atomic_inc_not_zero Before taking a refcount, make sure the object is not already scheduled for deletion. Same fix is needed in ipv6_flowlabel_opt() Fixes: 18367681a10b ("ipv6 flowlabel: Convert np->ipv6_fl_list to RCU.") Signed-off-by: Eric Dumazet Cc: Willem de Bruijn Signed-off-by: David S. Miller commit c3fee640bcf52c34a25b767f2b0eda82e97a1f3b Author: Enrico Weigelt Date: Thu Jun 6 16:43:17 2019 +0200 net: ipv4: fib_semantics: fix uninitialized variable fix an uninitialized variable: CC net/ipv4/fib_semantics.o net/ipv4/fib_semantics.c: In function 'fib_check_nh_v4_gw': net/ipv4/fib_semantics.c:1027:12: warning: 'err' may be used uninitialized in this function [-Wmaybe-uninitialized] if (!tbl || err) { ^~ Signed-off-by: Enrico Weigelt Signed-off-by: David S. Miller commit a876697b0ad1cba4d56c72395b330691aafa1593 Author: Jeff LaBundy Date: Sun Jun 9 10:16:51 2019 -0700 Input: iqs5xx - get axis info before calling input_mt_init_slots() Calling input_mt_init_slots() copies ABS_MT_POSITION_X to ABS_X and so on, but doing so before calling touchscreen_parse_properties() leaves ABS_X min = max = 0 which may prompt an X server to ignore the device. To solve this problem, wait to call input_mt_init_slots() until all absolute axis information has been resolved (whether that's through device tree via touchscreen_parse_properties() or from reading from the device directly). Signed-off-by: Jeff LaBundy Signed-off-by: Dmitry Torokhov commit d1fdb6d8f6a4109a4263176c84b899076a5f8008 Author: Linus Torvalds Date: Sat Jun 8 20:24:46 2019 -0700 Linux 5.2-rc4 commit 2759e05cdb2577a0e8970a9fa80a7f5ff092596f Merge: 8e61f6f7c308 7b2f936fc828 Author: Linus Torvalds Date: Sat Jun 8 15:57:35 2019 -0700 Merge tag 'ceph-for-5.2-rc4' of git://github.com/ceph/ceph-client Pull ceph fixes from Ilya Dryomov: "A change to call iput() asynchronously to avoid a possible deadlock when iput_final() needs to wait for in-flight I/O (e.g. readahead) and a fixup for a cleanup that went into -rc1" * tag 'ceph-for-5.2-rc4' of git://github.com/ceph/ceph-client: ceph: fix error handling in ceph_get_caps() ceph: avoid iput_final() while holding mutex or in dispatch thread ceph: single workqueue for inode related works commit 8e61f6f7c308a828f8402db6651f6e38ba66c009 Merge: 3d4645bf7a76 1d5c76e66433 Author: Linus Torvalds Date: Sat Jun 8 13:16:05 2019 -0700 Merge tag 'for-linus-5.2b-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip Pull xen fix from Juergen Gross: "Just one fix for the Xen block frontend driver avoiding allocations with order > 0" * tag 'for-linus-5.2b-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: xen-blkfront: switch kcalloc to kvcalloc for large array allocation commit 3d4645bf7a76886c70a482a1c6742bac98553f47 Merge: d0cc617affbf 0ab0d7ac2090 Author: Linus Torvalds Date: Sat Jun 8 13:12:54 2019 -0700 Merge tag 's390-5.2-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull s390 fixes from Heiko Carstens: - fix stack unwinder: the stack unwinder rework has on off-by-one bug which prevents following stack backchains over more than one context (e.g. irq -> process). - fix address space detection in exception handler: if user space switches to access register mode, which is not supported anymore, the exception handler may resolve to the wrong address space. * tag 's390-5.2-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390/unwind: correct stack switching during unwind s390/mm: fix address space detection in exception handling commit d0cc617affbf2e31696adf37d153c550c5bef662 Merge: 9331b6740f86 f532beeeff0c Author: Linus Torvalds Date: Sat Jun 8 13:09:31 2019 -0700 Merge tag 'mips_fixes_5.2_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux Pull MIPS fixes from Paul Burton: - Declare ginvt() __always_inline due to its use of an argument as an inline asm immediate. - A VDSO build fix following Kbuild changes made this cycle. - A fix for boot failures on txx9 systems following memory initialization changes made this cycle. - Bounds check virt_addr_valid() to prevent it spuriously indicating that bogus addresses are valid, in turn fixing hardened usercopy failures that have been present since v4.12. - Build uImage.gz for pistachio systems by default, since this is the image we need in order to actually boot on a board. - Remove an unused variable in our uprobes code. * tag 'mips_fixes_5.2_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: MIPS: uprobes: remove set but not used variable 'epc' MIPS: pistachio: Build uImage.gz by default MIPS: Make virt_addr_valid() return bool MIPS: Bounds check virt_addr_valid MIPS: TXx9: Fix boot crash in free_initmem() MIPS: remove a space after -I to cope with header search paths for VDSO MIPS: mark ginvt() as __always_inline commit 9331b6740f86163908de69f4008e434fe0c27691 Merge: 1ce2c85137b1 d925da5c7b09 Author: Linus Torvalds Date: Sat Jun 8 12:52:42 2019 -0700 Merge tag 'spdx-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core Pull yet more SPDX updates from Greg KH: "Another round of SPDX header file fixes for 5.2-rc4 These are all more "GPL-2.0-or-later" or "GPL-2.0-only" tags being added, based on the text in the files. We are slowly chipping away at the 700+ different ways people tried to write the license text. All of these were reviewed on the spdx mailing list by a number of different people. We now have over 60% of the kernel files covered with SPDX tags: $ ./scripts/spdxcheck.py -v 2>&1 | grep Files Files checked: 64533 Files with SPDX: 40392 Files with errors: 0 I think the majority of the "easy" fixups are now done, it's now the start of the longer-tail of crazy variants to wade through" * tag 'spdx-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (159 commits) treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 450 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 449 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 448 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 446 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 445 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 444 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 443 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 442 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 440 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 438 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 437 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 436 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 435 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 434 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 433 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 432 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 431 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 430 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 429 ... commit 1ce2c85137b1db5b0e4158d558cb93dcff7674df Merge: 902b2edfca34 e7bf2ce83747 Author: Linus Torvalds Date: Sat Jun 8 12:50:36 2019 -0700 Merge tag 'char-misc-5.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 small char and misc driver fixes for 5.2-rc4 to resolve a number of reported issues. The most "notable" one here is the kernel headers in proc^Wsysfs fixes. Those changes move the header file info into sysfs and fixes the build issues that you reported. Other than that, a bunch of small habanalabs driver fixes, some fpga driver fixes, and a few other tiny driver fixes. All of these have been in linux-next for a while with no reported issues" * tag 'char-misc-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: habanalabs: Read upper bits of trace buffer from RWPHI habanalabs: Fix virtual address access via debugfs for 2MB pages fpga: zynqmp-fpga: Correctly handle error pointer habanalabs: fix bug in checking huge page optimization habanalabs: Avoid using a non-initialized MMU cache mutex habanalabs: fix debugfs code uapi/habanalabs: add opcode for enable/disable device debug mode habanalabs: halt debug engines on user process close test_firmware: Use correct snprintf() limit genwqe: Prevent an integer overflow in the ioctl parport: Fix mem leak in parport_register_dev_model fpga: dfl: expand minor range when registering chrdev region fpga: dfl: Add lockdep classes for pdata->lock fpga: dfl: afu: Pass the correct device to dma_mapping_error() fpga: stratix10-soc: fix use-after-free on s10_init() w1: ds2408: Fix typo after 49695ac46861 (reset on output_write retry with readback) kheaders: Do not regenerate archive if config is not changed kheaders: Move from proc to sysfs lkdtm/bugs: Adjust recursion test to avoid elision lkdtm/usercopy: Moves the KERNEL_DS test to non-canonical commit 902b2edfca34f88b04b86e605087e200e7e79880 Merge: 66b59f2b5e48 8f77293cca1f Author: Linus Torvalds Date: Sat Jun 8 12:48:49 2019 -0700 Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux Pull i2c fixes from Wolfram Sang: "I2C has a driver bugfix and a MAINTAINERS fix" * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: MAINTAINERS: Karthikeyan Ramasubramanian is MIA i2c: xiic: Add max_read_len quirk commit 66b59f2b5e48969de862908c2d32c8b3d3724738 Merge: 8d72e5bd86cb 9bb9fe0cfbe0 Author: Linus Torvalds Date: Sat Jun 8 12:46:31 2019 -0700 Merge tag 'dmaengine-fix-5.2-rc4' of git://git.infradead.org/users/vkoul/slave-dma Pull dmaengine fixes from Vinod Koul: - jz4780 transfer fix for acking descriptors early - fsl-qdma: clean registers on error - dw-axi-dmac: null pointer dereference fix - mediatek-cqdma: fix sleeping in atomic context - tegra210-adma: fix bunch os issues like crashing in driver probe, channel FIFO configuration etc. - sprd: Fixes for possible crash on descriptor status, block length overflow. For 2-stage transfer fix incorrect start, configuration and interrupt handling. * tag 'dmaengine-fix-5.2-rc4' of git://git.infradead.org/users/vkoul/slave-dma: dmaengine: sprd: Add interrupt support for 2-stage transfer dmaengine: sprd: Fix the right place to configure 2-stage transfer dmaengine: sprd: Fix block length overflow dmaengine: sprd: Fix the incorrect start for 2-stage destination channels dmaengine: sprd: Add validation of current descriptor in irq handler dmaengine: sprd: Fix the possible crash when getting descriptor status dmaengine: tegra210-adma: Fix spelling dmaengine: tegra210-adma: Fix channel FIFO configuration dmaengine: tegra210-adma: Fix crash during probe dmaengine: mediatek-cqdma: sleeping in atomic context dmaengine: dw-axi-dmac: fix null dereference when pointer first is null dmaengine: fsl-qdma: Add improvement dmaengine: jz4780: Fix transfers being ACKed too soon commit 8d72e5bd86cb405d8d8b9e92905d8cfffd08dde8 Merge: 1b02caa319cf 6c70f899b808 Author: Linus Torvalds Date: Sat Jun 8 12:12:11 2019 -0700 Merge tag 'for-linus-20190608' of git://git.kernel.dk/linux-block Pull block fixes from Jens Axboe: - Allow symlink from the bfq.weight cgroup parameter to the general weight (Angelo) - Damien is new skd maintainer (Bart) - NVMe pull request from Sagi, with a few small fixes. - Ensure we set DMA segment size properly, dma-debug is now tripping on these (Christoph) - Remove useless debugfs_create() return check (Greg) - Remove redundant unlikely() check on IS_ERR() (Kefeng) - Fixup request freeing on exit (Ming) * tag 'for-linus-20190608' of git://git.kernel.dk/linux-block: block, bfq: add weight symlink to the bfq.weight cgroup parameter cgroup: let a symlink too be created with a cftype file block: free sched's request pool in blk_cleanup_queue nvme-rdma: use dynamic dma mapping per command nvme: Fix u32 overflow in the number of namespace list calculation mmc: also set max_segment_size in the device mtip32xx: also set max_segment_size in the device rsxx: don't call dma_set_max_seg_size nvme-pci: don't limit DMA segement size block: Drop unlikely before IS_ERR(_OR_NULL) block: aoe: no need to check return value of debugfs_create functions nvmet: fix data_len to 0 for bdev-backed write_zeroes MAINTAINERS: Hand over skd maintainership nvme-tcp: fix queue mapping when queue count is limited nvme-rdma: fix queue mapping when queue count is limited commit 1b02caa319cf73ae89aced8714066a3a5bbe648b Merge: 0ad43e29b6e8 cc8f52609bb4 Author: Linus Torvalds Date: Sat Jun 8 11:54:17 2019 -0700 Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fixes from James Bottomley: "Two bug fixes, both for fairly serious problems; the UFS one looks like it could be used to exfiltrate data from the kernel, although probably only a privileged user has access to the command management interface and the missing unlock in smartpqi is long standing and probably a little used error path" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: smartpqi: unlock on error in pqi_submit_raid_request_synchronous() scsi: ufs: Check that space was properly alloced in copy_query_response commit d2ba3b1714d754f190ac0527713f9b44513b5857 Author: Helge Deller Date: Sat Jun 8 20:04:46 2019 +0200 parisc: Fix module loading error with JUMP_LABEL feature Commit 62217beb394e ("parisc: Add static branch and JUMP_LABEL feature") missed to add code to handle PCREL64 relocations which are generated when creating a jump label on a 64-bit kernel. This patch fixes module load errors like this one: # modprobe -v ipv6 insmod /lib/modules/5.2.0-rc1-JeR/kernel/net/ipv6/ipv6.ko modprobe: ERROR: could not insert 'ipv6': Exec format error dmesg reports: module ipv6: Unknown relocation: 72 Reported-by: Jeroen Roovers Tested-by: Jeroen Roovers Fixes: 62217beb394e ("parisc: Add static branch and JUMP_LABEL feature") Signed-off-by: Helge Deller commit 0ad43e29b6e845758f0ceb80e3c1d1a9cebfad06 Merge: 79c3ba3206c7 e2e88325f4bc Author: Linus Torvalds Date: Sat Jun 8 10:57:32 2019 -0700 Merge tag 'linux-kselftest-5.2-rc4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest Pull Kselftest fix from Shuah Khan: "This consists of a single fix for a vm test build failure regression when it is built by itself" * tag 'linux-kselftest-5.2-rc4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: selftests: vm: Fix test build failure when built by itself commit 652b8b086538c8a10de5aa5cbdaef79333b46358 Author: Hans de Goede Date: Fri May 24 14:57:59 2019 +0200 drm: panel-orientation-quirks: Add quirk for GPD MicroPC GPD has done it again, make a nice device (good), use way too generic DMI strings (bad) and use a portrait screen rotated 90 degrees (ugly). Because of the too generic DMI strings this entry is also doing bios-date matching, so the gpd_micropc data struct may very well need to be updated with some extra bios-dates in the future. Acked-by: Maxime Ripard Signed-off-by: Hans de Goede Link: https://patchwork.freedesktop.org/patch/msgid/20190524125759.14131-2-hdegoede@redhat.com (cherry picked from commit f2f2bb60d998abde10de7e483ef9e17639892450) commit 15abc7110a77555d3bf72aaef46d1557db0a4ac5 Author: Hans de Goede Date: Fri May 24 14:57:58 2019 +0200 drm: panel-orientation-quirks: Add quirk for GPD pocket2 GPD has done it again, make a nice device (good), use way too generic DMI strings (bad) and use a portrait screen rotated 90 degrees (ugly). Because of the too generic DMI strings this entry is also doing bios-date matching, so the gpd_pocket2 data struct may very well need to be updated with some extra bios-dates in the future. Changes in v2: -Add one more known BIOS date to the list of BIOS dates Cc: Jurgen Kramer Reported-by: Jurgen Kramer Acked-by: Maxime Ripard Signed-off-by: Hans de Goede Link: https://patchwork.freedesktop.org/patch/msgid/20190524125759.14131-1-hdegoede@redhat.com (cherry picked from commit 6dab9102dd7b144e5723915438e0d6c473018cd0) commit 0c75376fa3950b9875559dd79f73c36a5498a969 Author: Patrick Havelange Date: Tue Jun 4 16:03:26 2019 +0200 counter/ftm-quaddec: Add missing dependencies in Kconfig This driver uses devm_ioremap and of* functions. This fixes a linking failure with e.g. ARCH=um. Reported-by: kbuild test robot Signed-off-by: Patrick Havelange Fixes: a3b9a99 ("counter: add FlexTimer Module Quadrature decoder counter driver") Signed-off-by: William Breathitt Gray Signed-off-by: Jonathan Cameron commit 767e52f045e1fc080e81a754cc31a39b6cf47b99 Author: Fabio Estevam Date: Wed Jun 5 23:05:32 2019 -0300 staging: iio: adt7316: Fix build errors when GPIOLIB is not set On x86_64 when GPIOLIB is not set the following build errors are seen: drivers/staging/iio/addac/adt7316.c:947:3: error: implicit declaration of function 'gpiod_set_value' [-Werror=implicit-function-declaration] drivers/staging/iio/addac/adt7316.c:1805:2: error: implicit declaration of function 'irqd_get_trigger_type' [-Werror=implicit-function-declaration] These functions are provided by the and headers, so include them to fix these build errors. While at it, remove as this driver is a GPIO consumer and not a GPIO driver. Reported-by: Randy Dunlap Signed-off-by: Fabio Estevam Acked-by: Randy Dunlap # build-tested Signed-off-by: Jonathan Cameron commit aab8445c4e1cceeb3f739352041ec1c2586bc923 Author: Sebastian Andrzej Siewior Date: Fri Jun 7 16:29:16 2019 +0200 x86/fpu: Update kernel's FPU state before using for the fsave header In commit 39388e80f9b0c ("x86/fpu: Don't save fxregs for ia32 frames in copy_fpstate_to_sigframe()") I removed the statement | if (ia32_fxstate) | copy_fxregs_to_kernel(fpu); and argued that it was wrongly merged because the content was already saved in kernel's state. This was wrong: It is required to write it back because it is only saved on the user-stack and save_fsave_header() reads it from task's FPU-state. I missed that part… Save x87 FPU state unless thread's FPU registers are already up to date. Fixes: 39388e80f9b0c ("x86/fpu: Don't save fxregs for ia32 frames in copy_fpstate_to_sigframe()") Reported-by: Eric Biggers Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Tested-by: Eric Biggers Cc: Andy Lutomirski Cc: Dave Hansen Cc: "H. Peter Anvin" Cc: Hugh Dickins Cc: Ingo Molnar Cc: Jann Horn Cc: "Jason A. Donenfeld" Cc: kvm ML Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Rik van Riel Cc: Thomas Gleixner Cc: x86-ml Link: https://lkml.kernel.org/r/20190607142915.y52mfmgk5lvhll7n@linutronix.de commit 01fb49ff124a5117b5bfe8e9443a5f26101f014f Merge: bd21f0222ada 42cc68868ce9 Author: Greg Kroah-Hartman Date: Sat Jun 8 11:40:41 2019 +0200 Merge tag 'fixes-for-v5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-linus Felipe writes: USB: fixes for v5.2-rc4 DWC2 gets a fix for zlp handling which allows DWC2 to pass USBCV MSC tests. A memory leak in fusb300 was plugged. DWC2 also got a fix for wMaxPacketSize handling while acting as host which fixes a regression with USB Cameras. Apart from these, the usual set of minor fixes. Signed-off-by: Felipe Balbi * tag 'fixes-for-v5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb: usb: gadget: udc: lpc32xx: fix return value check in lpc32xx_udc_probe() usb: gadget: dwc2: fix zlp handling usb: dwc2: Set actual frame number for completed ISOC transfer for none DDMA usb: gadget: udc: lpc32xx: allocate descriptor with GFP_ATOMIC usb: gadget: fusb300_udc: Fix memory leak of fusb300->ep[i] usb: phy: mxs: Disable external charger detect in mxs_phy_hw_init() usb: dwc2: Fix DMA cache alignment issues usb: dwc2: host: Fix wMaxPacketSize handling (fix webcam regression) commit 79c3ba3206c7680027f61fd4e3d6956a4154bf31 Merge: d4425649c630 671e2ee5ee21 Author: Linus Torvalds Date: Fri Jun 7 17:39:31 2019 -0700 Merge tag 'drm-fixes-2019-06-07-1' of git://anongit.freedesktop.org/drm/drm Pull drm fixes from Dave Airlie: "A small bit more lively this week but not majorly so. I'm away in Japan next week for family holiday, so I'll be pretty disconnected, I've asked Daniel to do fixes for the week while I'm out. The nouveau firmware changes are a bit large, but they address a big problem where a whole set of boards don't load with the driver, and the new firmware fixes that, so I think it's worth trying to land it now. core: - Allow fb changes in async commits (drivers as well) udmabuf: - Unmap scatterlist when unmapping udmabuf nouveau: - firmware loading fixes for secboot firmware on new GPU revision. komeda: - oops, dma mapping and warning fixes arm-hdlcd: - clock fixes - mode validation fix i915: - Add a missing Icelake workaround - GVT - DMA map fault fix and enforcement fixes amdgpu: - DCE resume fix - New raven variation updates" * tag 'drm-fixes-2019-06-07-1' of git://anongit.freedesktop.org/drm/drm: (33 commits) drm/nouveau/secboot/gp10[2467]: support newer FW to fix SEC2 failures on some boards drm/nouveau/secboot: enable loading of versioned LS PMU/SEC2 ACR msgqueue FW drm/nouveau/secboot: split out FW version-specific LS function pointers drm/nouveau/secboot: pass max supported FW version to LS load funcs drm/nouveau/core: support versioned firmware loading drm/nouveau/core: pass subdev into nvkm_firmware_get, rather than device drm/komeda: Potential error pointer dereference drm/komeda: remove set but not used variable 'kcrtc' drm/amd/amdgpu: add RLC firmware to support raven1 refresh drm/amd/powerplay: add set_power_profile_mode for raven1_refresh drm/amdgpu: fix ring test failure issue during s3 in vce 3.0 (V2) udmabuf: actually unmap the scatterlist drm/arm/hdlcd: Allow a bit of clock tolerance drm/arm/hdlcd: Actually validate CRTC modes drm/arm/mali-dp: Add a loop around the second set CVAL and try 5 times drm/komeda: fixing of DMA mapping sg segment warning drm: don't block fb changes for async plane updates drm/vc4: fix fb references in async update drm/msm: fix fb references in async update drm/amd: fix fb references in async update ... commit 8f77293cca1f5116edc98d7a0e36c6da3917fc08 Author: Wolfram Sang Date: Mon May 27 21:45:45 2019 +0200 MAINTAINERS: Karthikeyan Ramasubramanian is MIA A mail just bounced back with "user unknown": 550 5.1.1 User doesn't exist I also couldn't find a more recent address in git history. So, remove this stale entry. Signed-off-by: Wolfram Sang commit 49b809586730a77b57ce620b2f9689de765d790b Author: Robert Hancock Date: Tue Jun 4 15:55:51 2019 -0600 i2c: xiic: Add max_read_len quirk This driver does not support reading more than 255 bytes at once because the register for storing the number of bytes to read is only 8 bits. Add a max_read_len quirk to enforce this. This was found when using this driver with the SFP driver, which was previously reading all 256 bytes in the SFP EEPROM in one transaction. This caused a bunch of hard-to-debug errors in the xiic driver since the driver/logic was treating the number of bytes to read as zero. Rejecting transactions that aren't supported at least allows the problem to be diagnosed more easily. Signed-off-by: Robert Hancock Reviewed-by: Michal Simek Signed-off-by: Wolfram Sang Cc: stable@kernel.org commit 3b00691cc46a4089368a008b30655a8343411715 Author: H. Nikolaus Schaller Date: Tue Jun 4 14:35:58 2019 +0200 gpio: pca953x: hack to fix 24 bit gpio expanders 24 bit expanders use REG_ADDR_AI in combination with register addressing. This conflicts with regmap which takes this bit as part of the register number, i.e. a second cache entry is defined for accessed with REG_ADDR_AI being set although on the chip it is the same register as with REG_ADDR_AI being cleared. The problem was introduced by commit b32cecb46bdc ("gpio: pca953x: Extract the register address mangling to single function") but only became visible by commit 8b9f9d4dc511 ("regmap: verify if register is writeable before writing operations") because before, the regmap size was effectively ignored and pca953x_writeable_register() did know to ignore REG_ADDR_AI. Still, there were two separate cache entries created. Since the use of REG_ADDR_AI seems to be static we can work around this issue by simply increasing the size of the regmap to cover the "virtual" registers with REG_ADDR_AI being set. This only means that half of the regmap buffer will be unused. Reported-by: H. Nikolaus Schaller Suggested-by: Linus Walleij Signed-off-by: H. Nikolaus Schaller Signed-off-by: Linus Walleij commit 38e406f600a2b6dca9c262603f6e2a31cfb792b8 Merge: c7e3c93abbc1 4aeba328019a Author: David S. Miller Date: Fri Jun 7 14:46:47 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf Daniel Borkmann says: ==================== pull-request: bpf 2019-06-07 The following pull-request contains BPF updates for your *net* tree. The main changes are: 1) Fix several bugs in riscv64 JIT code emission which forgot to clear high 32-bits for alu32 ops, from Björn and Luke with selftests covering all relevant BPF alu ops from Björn and Jiong. 2) Two fixes for UDP BPF reuseport that avoid calling the program in case of __udp6_lib_err and UDP GRO which broke reuseport_select_sock() assumption that skb->data is pointing to transport header, from Martin. 3) Two fixes for BPF sockmap: a use-after-free from sleep in psock's backlog workqueue, and a missing restore of sk_write_space when psock gets dropped, from Jakub and John. 4) Fix unconnected UDP sendmsg hook API which is insufficient as-is since it breaks standard applications like DNS if reverse NAT is not performed upon receive, from Daniel. 5) Fix an out-of-bounds read in __bpf_skc_lookup which in case of AF_INET6 fails to verify that the length of the tuple is long enough, from Lorenz. 6) Fix libbpf's libbpf__probe_raw_btf to return an fd instead of 0/1 (for {un,}successful probe) as that is expected to be propagated as an fd to load_sk_storage_btf() and thus closing the wrong descriptor otherwise, from Michal. 7) Fix bpftool's JSON output for the case when a lookup fails, from Krzesimir. 8) Minor misc fixes in docs, samples and selftests, from various others. ==================== Signed-off-by: David S. Miller commit 45e7d4c0c1727d362012a62eb57254ea71a2d591 Author: Eli Britstein Date: Sun Jun 2 13:47:59 2019 +0000 net/mlx5e: Support tagged tunnel over bond Stacked devices like bond interface may have a VLAN device on top of them. Detect lag state correctly under this condition, and return the correct routed net device, according to it the encap header is built. Fixes: e32ee6c78efa ("net/mlx5e: Support tunnel encap over tagged Ethernet") Signed-off-by: Eli Britstein Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit 47c9d2c99ddeecca61c97618857b70fc7901658b Author: Alaa Hleihel Date: Sun May 26 11:56:27 2019 +0300 net/mlx5e: Avoid detaching non-existing netdev under switchdev mode After introducing dedicated uplink representor, the netdev instance set over the esw manager vport (PF) became no longer in use, so it was removed in the cited commit once we're on switchdev mode. However, the mlx5e_detach function was not updated accordingly, and it still tries to detach a non-existing netdev, causing a kernel crash. This patch fixes this issue. Fixes: aec002f6f82c ("net/mlx5e: Uninstantiate esw manager vport netdev on switchdev mode") Signed-off-by: Alaa Hleihel Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit b83c0730167c7ea6c03bffceefb86ae710ab30e2 Author: Raed Salem Date: Sun Jun 2 12:04:08 2019 +0300 net/mlx5e: Fix source port matching in fdb peer flow rule The cited commit changed the initialization placement of the eswitch attributes so it is done prior to parse tc actions function call, including among others the in_rep and in_mdev fields which are mistakenly reassigned inside the parse actions function. This breaks the source port matching criteria of the peer redirect rule. Fix by removing the now redundant reassignment of the already initialized fields. Fixes: 988ab9c7363a ("net/mlx5e: Introduce mlx5e_flow_esw_attr_init() helper") Signed-off-by: Raed Salem Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit 57c70d8740f740498a52f9c0c0d7295829b944de Author: Shay Agroskin Date: Sun Apr 28 10:14:23 2019 +0300 net/mlx5e: Replace reciprocal_scale in TX select queue function The TX queue index returned by the fallback function ranges between [0,NUM CHANNELS - 1] if QoS isn't set and [0, (NUM CHANNELS)*(NUM TCs) -1] otherwise. Our HW uses different TC mapping than the fallback function (which is denoted as 'up', user priority) so we only need to extract a channel number out of the returned value. Since (NUM CHANNELS)*(NUM TCs) is a relatively small number, using reciprocal scale almost always returns zero. We instead access the 'txq2sq' table to extract the sq (and with it the channel number) associated with the tx queue, thus getting a more evenly distributed channel number. Perf: Rx/Tx side with Intel(R) Xeon(R) Silver 4108 CPU @ 1.80GHz and ConnectX-5. Used 'iperf' UDP traffic, 10 threads, and priority 5. Before: 0.566Mpps After: 2.37Mpps As expected, releasing the existing bottleneck of steering all traffic to TX queue zero significantly improves transmission rates. Fixes: 7ccdd0841b30 ("net/mlx5e: Fix select queue callback") Signed-off-by: Shay Agroskin Reviewed-by: Tariq Toukan Signed-off-by: Saeed Mahameed commit d3cbd4254df881777e2efb68ee10ede0d9dc0647 Author: Chris Mi Date: Thu May 16 17:36:43 2019 +0800 net/mlx5e: Add ndo_set_feature for uplink representor After we have a dedicated uplink representor, the new netdev ops doesn't support ndo_set_feature. Because of that, we can't change some features, eg. rxvlan. Now add it back. In this patch, I also do a cleanup for the features flag handling, eg. remove duplicate NETIF_F_HW_TC flag setting. Fixes: aec002f6f82c ("net/mlx5e: Uninstantiate esw manager vport netdev on switchdev mode") Signed-off-by: Chris Mi Reviewed-by: Roi Dayan Reviewed-by: Vlad Buslov Signed-off-by: Saeed Mahameed commit dd80857bf388abd0c64dd3aa4fbf7d407deba819 Author: Alaa Hleihel Date: Sun May 19 11:11:49 2019 +0300 net/mlx5: Avoid reloading already removed devices Prior to reloading a device we must first verify that it was not already removed. Otherwise, the attempt to remove the device will do nothing, and in that case we will end up proceeding with adding an new device that no one was expecting to remove, leaving behind used resources such as EQs that causes a failure to destroy comp EQs and syndrome (0x30f433). Fix that by making sure that we try to remove and add a device (based on a protocol) only if the device is already added. Fixes: c5447c70594b ("net/mlx5: E-Switch, Reload IB interface when switching devlink modes") Signed-off-by: Alaa Hleihel Signed-off-by: Saeed Mahameed commit 6a6fabbfa3e8c656ff906ae999fb6856410fa4cd Author: Edward Srouji Date: Thu May 23 19:45:38 2019 +0300 net/mlx5: Update pci error handler entries and command translation Add missing entries for create/destroy UCTX and UMEM commands. This could get us wrong "unknown FW command" error in flows where we unbind the device or reset the driver. Also the translation of these commands from opcodes to string was missing. Fixes: 6e3722baac04 ("IB/mlx5: Use the correct commands for UMEM and UCTX allocation") Signed-off-by: Edward Srouji Signed-off-by: Saeed Mahameed commit 0ade0b6240c4853cf9725924c46c10f4251639d7 Author: Cong Wang Date: Tue Apr 16 14:33:51 2019 -0700 RAS/CEC: Convert the timer callback to a workqueue cec_timer_fn() is a timer callback which reads ce_arr.array[] and updates its decay values. However, it runs in interrupt context and the mutex protection the CEC uses for that array, is inadequate. Convert the used timer to a workqueue to keep the tasks the CEC performs preemptible and thus low-prio. [ bp: Rewrite commit message. s/timer/decay/gi to make it agnostic as to what facility is used. ] Fixes: 011d82611172 ("RAS: Add a Corrected Errors Collector") Signed-off-by: Cong Wang Signed-off-by: Borislav Petkov Cc: Thomas Gleixner Cc: Tony Luck Cc: linux-edac Cc: Link: https://lkml.kernel.org/r/20190416213351.28999-2-xiyou.wangcong@gmail.com commit f3c74b38a55aefe1004200d15a83f109b510068c Author: Borislav Petkov Date: Sat Apr 20 13:27:51 2019 +0200 RAS/CEC: Fix binary search function Switch to using Donald Knuth's binary search algorithm (The Art of Computer Programming, vol. 3, section 6.2.1). This should've been done from the very beginning but the author must've been smoking something very potent at the time. The problem with the current one was that it would return the wrong element index in certain situations: https://lkml.kernel.org/r/CAM_iQpVd02zkVJ846cj-Fg1yUNuz6tY5q1Vpj4LrXmE06dPYYg@mail.gmail.com and the noodling code after the loop was fishy at best. So switch to using Knuth's binary search. The final result is much cleaner and straightforward. Fixes: 011d82611172 ("RAS: Add a Corrected Errors Collector") Reported-by: Cong Wang Signed-off-by: Borislav Petkov Cc: Tony Luck Cc: linux-edac Cc: commit 00e5a2bbcc31d5fea853f8daeba0f06c1c88c3ff Author: Baoquan He Date: Thu May 23 10:57:44 2019 +0800 x86/mm/KASLR: Compute the size of the vmemmap section properly The size of the vmemmap section is hardcoded to 1 TB to support the maximum amount of system RAM in 4-level paging mode - 64 TB. However, 1 TB is not enough for vmemmap in 5-level paging mode. Assuming the size of struct page is 64 Bytes, to support 4 PB system RAM in 5-level, 64 TB of vmemmap area is needed: 4 * 1000^5 PB / 4096 bytes page size * 64 bytes per page struct / 1000^4 TB = 62.5 TB. This hardcoding may cause vmemmap to corrupt the following cpu_entry_area section, if KASLR puts vmemmap very close to it and the actual vmemmap size is bigger than 1 TB. So calculate the actual size of the vmemmap region needed and then align it up to 1 TB boundary. In 4-level paging mode it is always 1 TB. In 5-level it's adjusted on demand. The current code reserves 0.5 PB for vmemmap on 5-level. With this change, the space can be saved and thus used to increase entropy for the randomization. [ bp: Spell out how the 64 TB needed for vmemmap is computed and massage commit message. ] Fixes: eedb92abb9bb ("x86/mm: Make virtual memory layout dynamic for CONFIG_X86_5LEVEL=y") Signed-off-by: Baoquan He Signed-off-by: Borislav Petkov Reviewed-by: Kees Cook Acked-by: Kirill A. Shutemov Cc: Andy Lutomirski Cc: Dave Hansen Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: kirill.shutemov@linux.intel.com Cc: Peter Zijlstra Cc: stable Cc: Thomas Gleixner Cc: x86-ml Link: https://lkml.kernel.org/r/20190523025744.3756-1-bhe@redhat.com commit fd704bd5ee749d560e86c4f1fd2ef486d8abf7cf Author: Willem de Bruijn Date: Fri Jun 7 16:46:07 2019 -0400 can: purge socket error queue on sock destruct CAN supports software tx timestamps as of the below commit. Purge any queued timestamp packets on socket destroy. Fixes: 51f31cabe3ce ("ip: support for TX timestamps on UDP and RAW sockets") Reported-by: syzbot+a90604060cb40f5bdd16@syzkaller.appspotmail.com Signed-off-by: Willem de Bruijn Cc: linux-stable Signed-off-by: Marc Kleine-Budde commit eb503004a7e563d543c9cb869907156de7efe720 Author: Fabio Estevam Date: Tue Jun 4 15:49:42 2019 -0300 can: flexcan: Remove unneeded registration message Currently the following message is observed when the flexcan driver is probed: flexcan 2090000.flexcan: device registered (reg_base=(ptrval), irq=23) The reason for printing 'ptrval' is explained at Documentation/core-api/printk-formats.rst: "Pointers printed without a specifier extension (i.e unadorned %p) are hashed to prevent leaking information about the kernel memory layout. This has the added benefit of providing a unique identifier. On 64-bit machines the first 32 bits are zeroed. The kernel will print ``(ptrval)`` until it gathers enough entropy." Instead of passing %pK, which can print the correct address, simply remove the entire message as it is not really that useful. Signed-off-by: Fabio Estevam Signed-off-by: Marc Kleine-Budde commit c5a3aed1cd3152429348ee1fe5cdcca65fe901ce Author: YueHaibing Date: Thu May 16 22:36:26 2019 +0800 can: af_can: Fix error path of can_init() This patch add error path for can_init() to avoid possible crash if some error occurs. Fixes: 0d66548a10cb ("[CAN]: Add PF_CAN core module") Signed-off-by: YueHaibing Acked-by: Oliver Hartkopp Signed-off-by: Marc Kleine-Budde commit 3e82f2f34c930a2a0a9e69fdc2de2f2f1388b442 Author: Eugen Hristev Date: Mon Mar 4 14:44:13 2019 +0000 can: m_can: implement errata "Needless activation of MRAF irq" During frame reception while the MCAN is in Error Passive state and the Receive Error Counter has thevalue MCAN_ECR.REC = 127, it may happen that MCAN_IR.MRAF is set although there was no Message RAM access failure. If MCAN_IR.MRAF is enabled, an interrupt to the Host CPU is generated. Work around: The Message RAM Access Failure interrupt routine needs to check whether MCAN_ECR.RP = '1' and MCAN_ECR.REC = '127'. In this case, reset MCAN_IR.MRAF. No further action is required. This affects versions older than 3.2.0 Errata explained on Sama5d2 SoC which includes this hardware block: http://ww1.microchip.com/downloads/en/DeviceDoc/SAMA5D2-Family-Silicon-Errata-and-Data-Sheet-Clarification-DS80000803B.pdf chapter 6.2 Reproducibility: If 2 devices with m_can are connected back to back, configuring different bitrate on them will lead to interrupt storm on the receiving side, with error "Message RAM access failure occurred". Another way is to have a bad hardware connection. Bad wire connection can lead to this issue as well. This patch fixes the issue according to provided workaround. Signed-off-by: Eugen Hristev Reviewed-by: Ludovic Desroches Signed-off-by: Marc Kleine-Budde commit 35b7fa4d07c43ad79b88e6462119e7140eae955c Author: Sean Nyekjaer Date: Tue May 7 11:34:36 2019 +0200 can: mcp251x: add support for mcp25625 Fully compatible with mcp2515, the mcp25625 have integrated transceiver. This patch adds support for the mcp25625 to the existing mcp251x driver. Signed-off-by: Sean Nyekjaer Signed-off-by: Marc Kleine-Budde commit 0df82dcd55832a99363ab7f9fab954fcacdac3ae Author: Sean Nyekjaer Date: Tue May 7 11:34:37 2019 +0200 dt-bindings: can: mcp251x: add mcp25625 support Fully compatible with mcp2515, the mcp25625 have integrated transceiver. This patch add the mcp25625 to the device tree bindings documentation. Signed-off-by: Sean Nyekjaer Signed-off-by: Marc Kleine-Budde commit 904044dd8fff43e289c11a2f90fa532e946a1d8b Author: Anssi Hannula Date: Tue Sep 11 14:47:46 2018 +0300 can: xilinx_can: use correct bittiming_const for CAN FD core Commit 9e5f1b273e6a ("can: xilinx_can: add support for Xilinx CAN FD core") added a new can_bittiming_const structure for CAN FD cores that support larger values for tseg1, tseg2, and sjw than previous Xilinx CAN cores, but the commit did not actually take that into use. Fix that. Tested with CAN FD core on a ZynqMP board. Fixes: 9e5f1b273e6a ("can: xilinx_can: add support for Xilinx CAN FD core") Reported-by: Shubhrajyoti Datta Signed-off-by: Anssi Hannula Cc: Michal Simek Reviewed-by: Shubhrajyoti Datta Cc: linux-stable Signed-off-by: Marc Kleine-Budde commit 247e5356a709eb49a0d95ff2a7f07dac05c8252c Author: Joakim Zhang Date: Thu Jan 31 09:37:22 2019 +0000 can: flexcan: fix timeout when set small bitrate Current we can meet timeout issue when setting a small bitrate like 10000 as follows on i.MX6UL EVK board (ipg clock = 66MHZ, per clock = 30MHZ): | root@imx6ul7d:~# ip link set can0 up type can bitrate 10000 A link change request failed with some changes committed already. Interface can0 may have been left with an inconsistent configuration, please check. | RTNETLINK answers: Connection timed out It is caused by calling of flexcan_chip_unfreeze() timeout. Originally the code is using usleep_range(10, 20) for unfreeze operation, but the patch (8badd65 can: flexcan: avoid calling usleep_range from interrupt context) changed it into udelay(10) which is only a half delay of before, there're also some other delay changes. After double to FLEXCAN_TIMEOUT_US to 100 can fix the issue. Meanwhile, Rasmus Villemoes reported that even with a timeout of 100, flexcan_probe() fails on the MPC8309, which requires a value of at least 140 to work reliably. 250 works for everyone. Signed-off-by: Joakim Zhang Reviewed-by: Dong Aisheng Cc: linux-stable Signed-off-by: Marc Kleine-Budde commit 0ed89d777dd6ed3110f1c64c898f84b4ce685e57 Author: Alexander Dahl Date: Tue Jan 22 14:55:42 2019 +0100 can: usb: Kconfig: Remove duplicate menu entry This seems to have slipped in by accident when sorting the entries. Fixes: ffbdd9172ee2f53020f763574b4cdad8d9760a4f Signed-off-by: Alexander Dahl Signed-off-by: Marc Kleine-Budde commit d4425649c63018e96e5402807c9e7bc5272f7b3b Merge: 893a7d32e8e0 4a60570dce65 Author: Linus Torvalds Date: Fri Jun 7 13:38:53 2019 -0700 Merge tag 'hwmon-for-v5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging Pull hwmon fixes from Guenter Roeck: - Fix a couple of inconsistencies and locking problems in pmbus driver - Register with thermal subsystem only on systems supporting devicetree * tag 'hwmon-for-v5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: hwmon: (pmbus/core) Treat parameters as paged if on multiple pages hwmon: (pmbus/core) mutex_lock write in pmbus_set_samples hwmon: (core) add thermal sensors only if dev->of_node is present commit 893a7d32e8e04ca4d6c882336b26ed660ca0a48d Author: Jan Glauber Date: Wed Jun 5 15:48:49 2019 +0200 lockref: Limit number of cmpxchg loop retries The lockref cmpxchg loop is unbound as long as the spinlock is not taken. Depending on the hardware implementation of compare-and-swap a high number of loop retries might happen. Add an upper bound to the loop to force the fallback to spinlocks after some time. A retry value of 100 should not impact any hardware that does not have this issue. With the retry limit the performance of an open-close testcase improved between 60-70% on ThunderX2. Suggested-by: Linus Torvalds Signed-off-by: Jan Glauber Signed-off-by: Linus Torvalds commit d93445225cd3c8eb0bf1350c04875576428b45b4 Author: Andrey Konovalov Date: Tue Jun 4 14:04:47 2019 +0200 uaccess: add noop untagged_addr definition Architectures that support memory tagging have a need to perform untagging (stripping the tag) in various parts of the kernel. This patch adds an untagged_addr() macro, which is defined as noop for architectures that do not support memory tagging. The oncoming patch series will define it at least for sparc64 and arm64. Acked-by: Catalin Marinas Reviewed-by: Khalid Aziz Signed-off-by: Andrey Konovalov Signed-off-by: Linus Torvalds commit d18c7e9d6e4e0ba358459e812bf115b4ccef54ce Merge: 33de0d1c68a5 adefd051a670 Author: Linus Torvalds Date: Fri Jun 7 13:06:00 2019 -0700 Merge tag 'xtensa-20190607' of git://github.com/jcmvbkbc/linux-xtensa Pull xtensa fix from Max Filippov: "Fix a section mismatch between memblock_reserve and mem_reserve. This fixes tinyconfig xtensa builds" * tag 'xtensa-20190607' of git://github.com/jcmvbkbc/linux-xtensa: xtensa: Fix section mismatch between memblock_reserve and mem_reserve commit 6c70f899b8089ae23cdb4aa63050e3df4e20c71e Merge: 19e9da9e86c4 62f99b62e5e3 Author: Jens Axboe Date: Fri Jun 7 14:04:28 2019 -0600 Merge branch 'nvme-5.2-rc-next' of git://git.infradead.org/nvme into for-linus Pull NVMe fixes from Sagi. * 'nvme-5.2-rc-next' of git://git.infradead.org/nvme: nvme-rdma: use dynamic dma mapping per command nvme: Fix u32 overflow in the number of namespace list calculation nvmet: fix data_len to 0 for bdev-backed write_zeroes nvme-tcp: fix queue mapping when queue count is limited nvme-rdma: fix queue mapping when queue count is limited commit c7e3c93abbc1382923c7f4fe5ba9ea6aa0fa8d0e Merge: 1e1d92636954 69ae4f6aac15 Author: David S. Miller Date: Fri Jun 7 12:16:26 2019 -0700 Merge tag 'wireless-drivers-for-davem-2019-06-07' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers Kalle Valo says: ==================== wireless-drivers fixes for 5.2 First set of fixes for 5.2. Most important here are buffer overflow fixes for mwifiex. rtw88 * fix out of bounds compiler warning * fix rssi handling to get 4x more throughput * avoid circular locking rsi * fix unitilised data warning, these are hopefully the last ones so that the warning can be enabled by default mwifiex * fix buffer overflows iwlwifi * remove not used debugfs file * various fixes ==================== Signed-off-by: David S. Miller commit 33de0d1c68a5127e923363349c349d90c7da06a1 Merge: 91f152e75bcd 913ab9780fc0 Author: Linus Torvalds Date: Fri Jun 7 11:59:20 2019 -0700 Merge tag 'kbuild-fixes-v5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild Pull more Kbuild fixes from Masahiro Yamada: - fix kselftest-merge to find config fragments in deeper directories - fix kconfig unit test, which was broken by SPDX tag addition - add + prefix to buildtar to suppress jobserver unavailable warning - fix checkstack.pl to recognize arch=arm64 - suppress noisy warning from cc-cross-prefix * tag 'kbuild-fixes-v5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: kbuild: use more portable 'command -v' for cc-cross-prefix scripts/checkstack.pl: Fix arm64 wrong or unknown architecture kbuild: tar-pkg: enable communication with jobserver kconfig: tests: fix recursive inclusion unit test kbuild: teach kselftest-merge to find nested config files commit 91f152e75bcdba95130ec5fdb1010e91a48d9a11 Merge: a373ec23ab52 739799314587 Author: Linus Torvalds Date: Fri Jun 7 11:52:31 2019 -0700 Merge tag 'mmc-v5.2-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc Pull MMC fixes from Ulf Hansson: "Here's a couple of MMC and MEMSTICK fixes: MMC host: - sdhci: Fix SDIO IRQ thread deadlock - sdhci-tegra: Fix a warning message - sdhci_am654: Fix SLOTTYPE write - meson-gx: Fix IRQ ack - tmio: Fix SCC error handling to avoid false positive CRC error MEMSTICK core: - mspro_block: Fix returning a correct error code" * tag 'mmc-v5.2-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: mmc: sdhci_am654: Fix SLOTTYPE write mmc: sdhci: Fix SDIO IRQ thread deadlock mmc: meson-gx: fix irq ack mmc: tmio: fix SCC error handling to avoid false positive CRC error mmc: tegra: Fix a warning message memstick: mspro_block: Fix an error code in mspro_block_issue_req() commit a373ec23ab527c3202eb05e4f9d0eba2d83a7b27 Merge: de9f869616dd a964d23c94e8 Author: Linus Torvalds Date: Fri Jun 7 11:36:17 2019 -0700 Merge tag 'pm-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull power management fixes from Rafael Wysocki: "These fix a crash during resume from hibernation introduced during the 4.19 cycle, cause the new Performance and Energy Bias Hint (EPB) code to be built only if CONFIG_PM is set and add a few missing kerneldoc comments. Specifics: - Fix a crash that occurs when a kernel with 'nosmt' in the command line is used to resume the system from hibernation (as the "restore" kernel), because memory mapping differences between the restore and image kernels cause SMT siblings to be woken up from idle states and subsequently they try to fetch instructions from incorrect memory locations (Jiri Kosina). - Cause the new Performance and Energy Bias Hint (EPB) code to be built only if CONFIG_PM is set, because that code is not really necessary otherwise (Rafael Wysocki). - Add kerneldoc comments to documents some helper functions related to system-wide suspend to avoid possible confusion regarding their purpose (Rafael Wysocki)" * tag 'pm-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: x86/power: Fix 'nosmt' vs hibernation triple fault during resume PM: sleep: Add kerneldoc comments to some functions x86: intel_epb: Do not build when CONFIG_PM is unset commit de9f869616dd95e95c00bdd6b0fcd3421e8a4323 Author: Jann Horn Date: Sun Jun 2 03:15:58 2019 +0200 x86/insn-eval: Fix use-after-free access to LDT entry get_desc() computes a pointer into the LDT while holding a lock that protects the LDT from being freed, but then drops the lock and returns the (now potentially dangling) pointer to its caller. Fix it by giving the caller a copy of the LDT entry instead. Fixes: 670f928ba09b ("x86/insn-eval: Add utility function to get segment descriptor") Cc: stable@vger.kernel.org Signed-off-by: Jann Horn Signed-off-by: Linus Torvalds commit 1e1d926369545ea09c98c6c7f5d109aa4ee0cd0b Merge: 6e38335dcc70 720f1de4021f Author: Linus Torvalds Date: Fri Jun 7 09:29:14 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: 1) Free AF_PACKET po->rollover properly, from Willem de Bruijn. 2) Read SFP eeprom in max 16 byte increments to avoid problems with some SFP modules, from Russell King. 3) Fix UDP socket lookup wrt. VRF, from Tim Beale. 4) Handle route invalidation properly in s390 qeth driver, from Julian Wiedmann. 5) Memory leak on unload in RDS, from Zhu Yanjun. 6) sctp_process_init leak, from Neil HOrman. 7) Fix fib_rules rule insertion semantic change that broke Android, from Hangbin Liu. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (33 commits) pktgen: do not sleep with the thread lock held. net: mvpp2: Use strscpy to handle stat strings net: rds: fix memory leak in rds_ib_flush_mr_pool ipv6: fix EFAULT on sendto with icmpv6 and hdrincl ipv6: use READ_ONCE() for inet->hdrincl as in ipv4 Revert "fib_rules: return 0 directly if an exactly same rule exists when NLM_F_EXCL not supplied" net: aquantia: fix wol configuration not applied sometimes ethtool: fix potential userspace buffer overflow Fix memory leak in sctp_process_init net: rds: fix memory leak when unload rds_rdma ipv6: fix the check before getting the cookie in rt6_get_cookie ipv4: not do cache for local delivery if bc_forwarding is enabled s390/qeth: handle error when updating TX queue count s390/qeth: fix VLAN attribute in bridge_hostnotify udev event s390/qeth: check dst entry before use s390/qeth: handle limited IPv4 broadcast in L3 TX path net: fix indirect calls helpers for ptype list hooks. net: ipvlan: Fix ipvlan device tso disabled while NETIF_F_IP_CSUM is set udp: only choose unbound UDP socket for multicast when not in a VRF net/tls: replace the sleeping lock around RX resync with a bit lock ... commit 6e38335dcc70f03faba26bf1260ee024d930afe1 Merge: a02a532c2a6c 4f240dfec6bc Author: Linus Torvalds Date: Fri Jun 7 09:25:27 2019 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma Pull rdma fixes from Jason Gunthorpe: "Things are looking pretty quiet here in RDMA, not too many bug fixes rolling in right now. The usual driver bug fixes and fixes for a couple of regressions introduced in 5.2: - Fix a race on bootup with RDMA device renaming and srp. SRP also needs to rename its internal sys files - Fix a memory leak in hns - Don't leak resources in efa on certain error unwinds - Don't panic in certain error unwinds in ib_register_device - Various small user visible bug fix patches for the hfi and efa drivers - Fix the 32 bit compilation break" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: RDMA/efa: Remove MAYEXEC flag check from mmap flow mlx5: avoid 64-bit division IB/hfi1: Validate page aligned for a given virtual address IB/{qib, hfi1, rdmavt}: Correct ibv_devinfo max_mr value IB/hfi1: Insure freeze_work work_struct is canceled on shutdown IB/rdmavt: Fix alloc_qpn() WARN_ON() RDMA/core: Fix panic when port_data isn't initialized RDMA/uverbs: Pass udata on uverbs error unwind RDMA/core: Clear out the udata before error unwind RDMA/hns: Fix PD memory leak for internal allocation RDMA/srp: Rename SRP sysfs name after IB device rename trigger commit a02a532c2a6c79a898cd6c430fe3ad011d9aece3 Merge: 16d72dd4891f ebcc5928c5d9 Author: Linus Torvalds Date: Fri Jun 7 09:21:48 2019 -0700 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fixes from Will Deacon: "Another round of mostly-benign fixes, the exception being a boot crash on SVE2-capable CPUs (although I don't know where you'd find such a thing, so maybe it's benign too). We're in the process of resolving some big-endian ptrace breakage, so I'll probably have some more for you next week. Summary: - Fix boot crash on platforms with SVE2 due to missing register encoding - Fix architected timer accessors when CONFIG_OPTIMIZE_INLINING=y - Move cpu_logical_map into smp.h for use by upcoming irqchip drivers - Trivial typo fix in comment - Disable some useless, noisy warnings from GCC 9" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: Silence gcc warnings about arch ABI drift ARM64: trivial: s/TIF_SECOMP/TIF_SECCOMP/ comment typo fix arm64: arch_timer: mark functions as __always_inline arm64: smp: Moved cpu_logical_map[] to smp.h arm64: cpufeature: Fix missing ZFR0 in __read_sysreg_by_encoding() commit 913ab9780fc021298949cc5514d6255a008e69f9 Author: Masahiro Yamada Date: Thu Jun 6 13:13:58 2019 +0900 kbuild: use more portable 'command -v' for cc-cross-prefix To print the pathname that will be used by shell in the current environment, 'command -v' is a standardized way. [1] 'which' is also often used in scripts, but it is less portable. When I worked on commit bd55f96fa9fc ("kbuild: refactor cc-cross-prefix implementation"), I was eager to use 'command -v' but it did not work. (The reason is explained below.) I kept 'which' as before but got rid of '> /dev/null 2>&1' as I thought it was no longer needed. Sorry, I was wrong. It works well on my Ubuntu machine, but Alexey Brodkin reports noisy warnings on CentOS7 when 'which' fails to find the given command in the PATH environment. $ which foo which: no foo in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin) Given that behavior of 'which' depends on system (and it may not be installed by default), I want to try 'command -v' once again. The specification [1] clearly describes the behavior of 'command -v' when the given command is not found: Otherwise, no output shall be written and the exit status shall reflect that the name was not found. However, we need a little magic to use 'command -v' from Make. $(shell ...) passes the argument to a subshell for execution, and returns the standard output of the command. Here is a trick. GNU Make may optimize this by executing the command directly instead of forking a subshell, if no shell special characters are found in the command and omitting the subshell will not change the behavior. In this case, no shell special character is used. So, Make will try to run it directly. However, 'command' is a shell-builtin command, then Make would fail to find it in the PATH environment: $ make ARCH=m68k defconfig make: command: Command not found make: command: Command not found make: command: Command not found In fact, Make has a table of shell-builtin commands because it must ask the shell to execute them. Until recently, 'command' was missing in the table. This issue was fixed by the following commit: | commit 1af314465e5dfe3e8baa839a32a72e83c04f26ef | Author: Paul Smith | Date: Sun Nov 12 18:10:28 2017 -0500 | | * job.c: Add "command" as a known shell built-in. | | This is not a POSIX shell built-in but it's common in UNIX shells. | Reported by Nick Bowler . Because the latest release is GNU Make 4.2.1 in 2016, this commit is not included in any released versions. (But some distributions may have back-ported it.) We need to trick Make to spawn a subshell. There are various ways to do so: 1) Use a shell special character '~' as dummy $(shell : ~; command -v $(c)gcc) 2) Use a variable reference that always expands to the empty string (suggested by David Laight) $(shell command$${x:+} -v $(c)gcc) 3) Use redirect $(shell command -v $(c)gcc 2>/dev/null) I chose 3) to not confuse people. The stderr would not be polluted anyway, but it will provide extra safety, and is easy to understand. Tested on Make 3.81, 3.82, 4.0, 4.1, 4.2, 4.2.1 [1] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/command.html Fixes: bd55f96fa9fc ("kbuild: refactor cc-cross-prefix implementation") Cc: linux-stable # 5.1 Reported-by: Alexey Brodkin Signed-off-by: Masahiro Yamada Tested-by: Alexey Brodkin commit 0ab0d7ac2090eae30f1c0b01ae981bb7a368f598 Author: Vasily Gorbik Date: Thu Jun 6 16:58:45 2019 +0200 s390/unwind: correct stack switching during unwind Adjust conditions in on_stack function. That fixes backchain unwinder which was unable to read pt_regs at the very bottom of the stack and hence couldn't follow stacks (e.g. from async stack to a task stack). Fixes: 78c98f907413 ("s390/unwind: introduce stack unwind API") Reported-by: Julian Wiedmann Reviewed-by: Heiko Carstens Signed-off-by: Vasily Gorbik Signed-off-by: Heiko Carstens commit 625d7d3518875c4d303c652a198feaa13d9f52d9 Author: Don Brace Date: Mon Jun 3 16:43:29 2019 -0500 scsi: hpsa: correct ioaccel2 chaining - set ioaccel2_sg_element member 'chain_indicator' to IOACCEL2_LAST_SG for the last s/g element. - set ioaccel2_sg_element member 'chain_indicator' to IOACCEL2_CHAIN when chaining. Reviewed-by: Bader Ali - Saleh Reviewed-by: Scott Teel Reviewed-by: Matt Perricone Signed-off-by: Don Brace Signed-off-by: Martin K. Petersen commit 8103d10b71610aa65a65d6611cd3ad3f3bd7beeb Author: Nikolay Borisov Date: Mon Jun 3 13:06:00 2019 +0300 btrfs: Always trim all unallocated space in btrfs_trim_free_extents This patch removes support for range parameters of FITRIM ioctl when trimming unallocated space on devices. This is necessary since ranges passed from user space are generally interpreted as logical addresses, whereas btrfs_trim_free_extents used to interpret them as device physical extents. This could result in counter-intuitive behavior for users so it's best to remove that support altogether. Additionally, the existing range support had a bug where if an offset was passed to FITRIM which overflows u64 e.g. -1 (parsed as u64 18446744073709551615) then wrong data was fed into btrfs_issue_discard, which in turn leads to wrap-around when aligning the passed range and results in wrong regions being discarded which leads to data corruption. Fixes: c2d1b3aae336 ("btrfs: Honour FITRIM range constraints during free space trim") Reviewed-by: Qu Wenruo Signed-off-by: Nikolay Borisov Signed-off-by: David Sterba commit 8a3dca632538c550930ce8bafa8c906b130d35cf Author: Guillaume Nault Date: Thu Jun 6 18:04:00 2019 +0200 netfilter: ipv6: nf_defrag: accept duplicate fragments again When fixing the skb leak introduced by the conversion to rbtree, I forgot about the special case of duplicate fragments. The condition under the 'insert_error' label isn't effective anymore as nf_ct_frg6_gather() doesn't override the returned value anymore. So duplicate fragments now get NF_DROP verdict. To accept duplicate fragments again, handle them specially as soon as inet_frag_queue_insert() reports them. Return -EINPROGRESS which will translate to NF_STOLEN verdict, like any accepted fragment. However, such packets don't carry any new information and aren't queued, so we just drop them immediately. Fixes: a0d56cb911ca ("netfilter: ipv6: nf_defrag: fix leakage of unqueued fragments") Signed-off-by: Guillaume Nault Signed-off-by: Pablo Neira Ayuso commit c21f5a9ed85ca3e914ca11f421677ae9ae0d04b0 Author: Christophe Leroy Date: Mon Jun 3 13:00:51 2019 +0000 powerpc/32s: fix booting with CONFIG_PPC_EARLY_DEBUG_BOOTX When booting through OF, setup_disp_bat() does nothing because disp_BAT are not set. By change, it used to work because BOOTX buffer is mapped 1:1 at address 0x81000000 by the bootloader, and btext_setup_display() sets virt addr same as phys addr. But since commit 215b823707ce ("powerpc/32s: set up an early static hash table for KASAN."), a temporary page table overrides the bootloader mapping. This 0x81000000 is also problematic with the newly implemented Kernel Userspace Access Protection (KUAP) because it is within user address space. This patch fixes those issues by properly setting disp_BAT through a call to btext_prepare_BAT(), allowing setup_disp_bat() to properly setup BAT3 for early bootx screen buffer access. Reported-by: Mathieu Malaterre Fixes: 215b823707ce ("powerpc/32s: set up an early static hash table for KASAN.") Signed-off-by: Christophe Leroy Tested-by: Mathieu Malaterre Signed-off-by: Michael Ellerman commit a964d23c94e8177c501fc9a37dcf1f0dd2750527 Merge: a61373476127 ec527c318036 Author: Rafael J. Wysocki Date: Fri Jun 7 10:48:57 2019 +0200 Merge branch 'pm-x86' * pm-x86: x86/power: Fix 'nosmt' vs hibernation triple fault during resume x86: intel_epb: Do not build when CONFIG_PM is unset commit 0b84933db7f2d1349d77d6db2d6ba17f06da1208 Author: Neil Armstrong Date: Wed Jun 5 16:12:53 2019 +0200 drm/meson: fix G12A primary plane disabling The G12A Primary plane was disabled by writing in the OSD1 configuration registers, but this caused the plane blender to stall instead of continuing to blend only the overlay plane. Fix this by disabling the OSD1 plane in the blender registers, and also enabling it back using the same register. Fixes: 490f50c109d1 ("drm/meson: Add G12A support for OSD1 Plane") Signed-off-by: Neil Armstrong Reviewed-by: Kevin Hilman [narmstrong: fixed nit in commit log] Link: https://patchwork.freedesktop.org/patch/msgid/20190605141253.24165-3-narmstrong@baylibre.com commit c03ea50e27ec44c2ed6adda48f2a495ce424ce46 Author: Neil Armstrong Date: Wed Jun 5 16:12:52 2019 +0200 drm/meson: fix primary plane disabling The primary plane disable logic is flawed, when the primary plane is disabled, it is re-enabled in the vsync irq when another plane is updated. Handle the plane disabling correctly by handling the primary plane enable flag in the primary plane update & disable callbacks. Fixes: 490f50c109d1 ("drm/meson: Add G12A support for OSD1 Plane") Signed-off-by: Neil Armstrong Reviewed-by: Kevin Hilman Link: https://patchwork.freedesktop.org/patch/msgid/20190605141253.24165-2-narmstrong@baylibre.com commit e98c7952db1a832c671ef70d00bfe0365069e5ff Author: Neil Armstrong Date: Wed Jun 5 14:53:20 2019 +0200 drm/meson: fix G12A HDMI PLL settings for 4K60 1000/1001 variations The Amlogic G12A HDMI PLL needs some specific settings to lock with different fractional values for the 5,4GHz mode. Handle the 1000/1001 variation fractional case here to avoid having the PLL in an non lockable state. Fixes: 202b9808f8ed ("drm/meson: Add G12A Video Clock setup") Signed-off-by: Neil Armstrong Reviewed-by: Kevin Hilman Link: https://patchwork.freedesktop.org/patch/msgid/20190605125320.8708-1-narmstrong@baylibre.com commit 19e9da9e86c43687ed6a56bd39a52c6649973a35 Author: Angelo Ruocco Date: Tue May 21 10:01:55 2019 +0200 block, bfq: add weight symlink to the bfq.weight cgroup parameter Many userspace tools and services use the proportional-share policy of the blkio/io cgroups controller. The CFQ I/O scheduler implemented this policy for the legacy block layer. To modify the weight of a group in case CFQ was in charge, the 'weight' parameter of the group must be modified. On the other hand, the BFQ I/O scheduler implements the same policy in blk-mq, but, with BFQ, the parameter to modify has a different name: bfq.weight (forced choice until legacy block was present, because two different policies cannot share a common parameter in cgroups). Due to CFQ legacy, most if not all userspace configurations still use the parameter 'weight', and for the moment do not seem likely to be changed. But, when CFQ went away with legacy block, such a parameter ceased to exist. So, a simple workaround has been proposed [1] to make all configurations work: add a symlink, named weight, to bfq.weight. This commit adds such a symlink. [1] https://lkml.org/lkml/2019/4/8/555 Suggested-by: Johannes Thumshirn Signed-off-by: Angelo Ruocco Signed-off-by: Paolo Valente Signed-off-by: Jens Axboe commit 54b7b868e826b294687c439b68ec55fe20cafe5b Author: Angelo Ruocco Date: Tue May 21 10:01:54 2019 +0200 cgroup: let a symlink too be created with a cftype file This commit enables a cftype to have a symlink (of any name) that points to the file associated with the cftype. Signed-off-by: Angelo Ruocco Signed-off-by: Paolo Valente Signed-off-by: Jens Axboe commit 671e2ee5ee2127179ca884b439ab6001a623edd6 Merge: e659b4122cf9 ab4bec16d4bc Author: Dave Airlie Date: Fri Jun 7 17:14:19 2019 +1000 Merge branch 'linux-5.2' of git://github.com/skeggsb/linux into drm-fixes " This is a bit more than I'd like to be pushing at this point in a cycle, but it's a fairly important issue. There's been numerous reports of more recent GP10[2467] boards failing to load, and I've worked with NVIDIA FW engineers and tracked this down to the FW we've been using not properly supporting the boards in question. I've pushed an update to linux-firmware with the new FW version, which unfortunately contains API changes vs the older firmware. This series teaches the ACR subsystem inside nouveau enough to be able to deal with supporting multiple incompatible FW revisions, and adds support to the relevant chipsets for loading the newer FW revision, if it's available." Signed-off-by: Dave Airlie From: Ben Skeggs Link: https://patchwork.freedesktop.org/patch/msgid/CACAvsv7pG+vur0Kn_TyU3ainnkvJVw07upnnaQNOToF+kzQtDQ@mail.gmail.com commit a00196a272161338d4b1d66ec69e3d57c6b280e0 Author: Nicholas Piggin Date: Fri Jun 7 13:56:36 2019 +1000 powerpc/64s: __find_linux_pte() synchronization vs pmdp_invalidate() The change to pmdp_invalidate() to mark the pmd with _PAGE_INVALID broke the synchronisation against lock free lookups, __find_linux_pte()'s pmd_none() check no longer returns true for such cases. Fix this by adding a check for this condition as well. Fixes: da7ad366b497 ("powerpc/mm/book3s: Update pmd_present to look at _PAGE_PRESENT bit") Cc: stable@vger.kernel.org # v4.20+ Suggested-by: Aneesh Kumar K.V Signed-off-by: Nicholas Piggin Reviewed-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit 33258a1db165cf43a9e6382587ad06e9b7f8187c Author: Nicholas Piggin Date: Fri Jun 7 13:56:35 2019 +1000 powerpc/64s: Fix THP PMD collapse serialisation Commit 1b2443a547f9 ("powerpc/book3s64: Avoid multiple endian conversion in pte helpers") changed the actual bitwise tests in pte_access_permitted by using pte_write() and pte_present() helpers rather than raw bitwise testing _PAGE_WRITE and _PAGE_PRESENT bits. The pte_present() change now returns true for PTEs which are !_PAGE_PRESENT and _PAGE_INVALID, which is the combination used by pmdp_invalidate() to synchronize access from lock-free lookups. pte_access_permitted() is used by pmd_access_permitted(), so allowing GUP lock free access to proceed with such PTEs breaks this synchronisation. This bug has been observed on a host using the hash page table MMU, with random crashes and corruption in guests, usually together with bad PMD messages in the host. Fix this by adding an explicit check in pmd_access_permitted(), and documenting the condition explicitly. The pte_write() change should be okay, and would prevent GUP from falling back to the slow path when encountering savedwrite PTEs, which matches what x86 (that does not implement savedwrite) does. Fixes: 1b2443a547f9 ("powerpc/book3s64: Avoid multiple endian conversion in pte helpers") Cc: stable@vger.kernel.org # v4.20+ Signed-off-by: Nicholas Piggin Reviewed-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit 6c284228eb356a1ec62a704b4d2329711831eaed Author: Christophe Leroy Date: Mon Jun 3 08:20:28 2019 +0000 powerpc: Fix kexec failure on book3s/32 In the old days, _PAGE_EXEC didn't exist on 6xx aka book3s/32. Therefore, allthough __mapin_ram_chunk() was already mapping kernel text with PAGE_KERNEL_TEXT and the rest with PAGE_KERNEL, the entire memory was executable. Part of the memory (first 512kbytes) was mapped with BATs instead of page table, but it was also entirely mapped as executable. In commit 385e89d5b20f ("powerpc/mm: add exec protection on powerpc 603"), we started adding exec protection to some 6xx, namely the 603, for pages mapped via pagetables. Then, in commit 63b2bc619565 ("powerpc/mm/32s: Use BATs for STRICT_KERNEL_RWX"), the exec protection was extended to BAT mapped memory, so that really only the kernel text could be executed. The problem here is that kexec is based on copying some code into upper part of memory then executing it from there in order to install a fresh new kernel at its definitive location. However, the code is position independant and first part of it is just there to deactivate the MMU and jump to the second part. So it is possible to run this first part inplace instead of running the copy. Once the MMU is off, there is no protection anymore and the second part of the code will just run as before. Reported-by: Aaro Koskinen Fixes: 63b2bc619565 ("powerpc/mm/32s: Use BATs for STRICT_KERNEL_RWX") Cc: stable@vger.kernel.org # v5.1+ Signed-off-by: Christophe Leroy Tested-by: Aaro Koskinen Signed-off-by: Michael Ellerman commit 1571c029a2ff289683ddb0a32253850363bcb8a7 Author: Jan Kara Date: Thu Jun 6 11:10:28 2019 +0200 dax: Fix xarray entry association for mixed mappings When inserting entry into xarray, we store mapping and index in corresponding struct pages for memory error handling. When it happened that one process was mapping file at PMD granularity while another process at PTE granularity, we could wrongly deassociate PMD range and then reassociate PTE range leaving the rest of struct pages in PMD range without mapping information which could later cause missed notifications about memory errors. Fix the problem by calling the association / deassociation code if and only if we are really going to update the xarray (deassociating and associating zero or empty entries is just no-op so there's no reason to complicate the code with trying to avoid the calls for these cases). Cc: Fixes: d2c997c0f145 ("fs, dax: use page->mapping to warn if truncate...") Signed-off-by: Jan Kara Signed-off-by: Dan Williams commit ab4bec16d4bc21e7b500e519c90e82b063c0df15 Author: Ben Skeggs Date: Thu Jun 6 16:28:35 2019 +1000 drm/nouveau/secboot/gp10[2467]: support newer FW to fix SEC2 failures on some boards Some newer boards with these chipsets aren't compatible with the prior version of the SEC2 FW, and fail to load as a result. This newer FW is actually the one we already use on >=GP108. Unfortunately, there are interface differences in GP108's FW, making it impossible to simply move files around in linux-firmware to solve this. We need to be able to keep compatibility with all linux-firmware/kernel combinations, which means supporting both firmwares. Signed-off-by: Ben Skeggs commit 9352ce3775123603119419f8c44a6afe4c44e27e Author: Ben Skeggs Date: Thu Jun 6 16:32:31 2019 +1000 drm/nouveau/secboot: enable loading of versioned LS PMU/SEC2 ACR msgqueue FW Some chipsets will be switching to updated SEC2 LS firmware, so we need to plumb that through. Signed-off-by: Ben Skeggs commit 5f0f8b573a792805b9ea326cd4a81f6414f7ddc5 Author: Ben Skeggs Date: Thu Jun 6 15:57:14 2019 +1000 drm/nouveau/secboot: split out FW version-specific LS function pointers It's not enough to have per-falcon structures anymore, we have multiple versions of some firmware now that have interface differences. Signed-off-by: Ben Skeggs commit c26f3061fe514d4fa27e9ef33a3da799deb3930a Author: Ben Skeggs Date: Thu Jun 6 15:38:25 2019 +1000 drm/nouveau/secboot: pass max supported FW version to LS load funcs Will be passed to the FW loader function as an upper bound on the supported FW version to attempt to load. Signed-off-by: Ben Skeggs commit 475cf02b834599c8a7a21a1e2d11449b7217d856 Author: Ben Skeggs Date: Wed May 22 16:15:54 2019 +1000 drm/nouveau/core: support versioned firmware loading We have a need for this now with updated SEC2 LS FW images that have an incompatible interface from the previous version. Signed-off-by: Ben Skeggs commit 8854eed1a4f588d75b96ae13c38d41156dbd3e54 Author: Ben Skeggs Date: Thu Jun 6 17:08:12 2019 +1000 drm/nouveau/core: pass subdev into nvkm_firmware_get, rather than device It'd be nice to have FW loading debug messages to appear for the relevant subsystem, when enabled. Signed-off-by: Ben Skeggs commit c3e2219216c92919a6bd1711f340f5faa98695e6 Author: Ming Lei Date: Tue Jun 4 21:08:02 2019 +0800 block: free sched's request pool in blk_cleanup_queue In theory, IO scheduler belongs to request queue, and the request pool of sched tags belongs to the request queue too. However, the current tags allocation interfaces are re-used for both driver tags and sched tags, and driver tags is definitely host wide, and doesn't belong to any request queue, same with its request pool. So we need tagset instance for freeing request of sched tags. Meantime, blk_mq_free_tag_set() often follows blk_cleanup_queue() in case of non-BLK_MQ_F_TAG_SHARED, this way requires that request pool of sched tags to be freed before calling blk_mq_free_tag_set(). Commit 47cdee29ef9d94e ("block: move blk_exit_queue into __blk_release_queue") moves blk_exit_queue into __blk_release_queue for simplying the fast path in generic_make_request(), then causes oops during freeing requests of sched tags in __blk_release_queue(). Fix the above issue by move freeing request pool of sched tags into blk_cleanup_queue(), this way is safe becasue queue has been frozen and no any in-queue requests at that time. Freeing sched tags has to be kept in queue's release handler becasue there might be un-completed dispatch activity which might refer to sched tags. Cc: Bart Van Assche Cc: Christoph Hellwig Fixes: 47cdee29ef9d94e485eb08f962c74943023a5271 ("block: move blk_exit_queue into __blk_release_queue") Tested-by: Yi Zhang Reported-by: kernel test robot Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit e659b4122cf9e0938b80215de6c06823fb4cf796 Merge: bcc9d0e346f9 fa2eb819ddf9 Author: Dave Airlie Date: Fri Jun 7 10:41:32 2019 +1000 Merge tag 'drm-intel-fixes-2019-06-06' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes - Include gvt-fixes-2019-06-05 Signed-off-by: Dave Airlie From: Joonas Lahtinen Link: https://patchwork.freedesktop.org/patch/msgid/20190606120401.GA16071@jlahtine-desk.ger.corp.intel.com commit 4aeba328019ab9fbaad725b923b4c11c3725b24e Merge: 1884c066579a b714560f7b38 Author: Alexei Starovoitov Date: Thu Jun 6 16:53:13 2019 -0700 Merge branch 'fix-unconnected-udp' Daniel Borkmann says: ==================== Please refer to the patch 1/6 as the main patch with the details on the current sendmsg hook API limitations and proposal to fix it in order to work with basic applications like DNS. Remaining patches are the usual uapi and tooling updates as well as test cases. Thanks a lot! v2 -> v3: - Add attach types to test_section_names.c and libbpf (Andrey) - Added given Acks, rest as-is v1 -> v2: - Split off uapi header sync and bpftool bits (Martin, Alexei) - Added missing bpftool doc and bash completion as well ==================== Signed-off-by: Alexei Starovoitov commit b714560f7b38de9f03b8670890ba130d4cc5604e Author: Daniel Borkmann Date: Fri Jun 7 01:49:02 2019 +0200 bpf: expand section tests for test_section_names Add cgroup/recvmsg{4,6} to test_section_names as well. Test run output: # ./test_section_names libbpf: failed to guess program type based on ELF section name 'InvAliD' libbpf: supported section(type) names are: [...] libbpf: failed to guess attach type based on ELF section name 'InvAliD' libbpf: attachable section(type) names are: [...] libbpf: failed to guess program type based on ELF section name 'cgroup' libbpf: supported section(type) names are: [...] libbpf: failed to guess attach type based on ELF section name 'cgroup' libbpf: attachable section(type) names are: [...] Summary: 38 PASSED, 0 FAILED Signed-off-by: Daniel Borkmann Signed-off-by: Alexei Starovoitov commit 1812291e7661673cc29f52b38d9cc39540dee08e Author: Daniel Borkmann Date: Fri Jun 7 01:49:01 2019 +0200 bpf: more msg_name rewrite tests to test_sock_addr Extend test_sock_addr for recvmsg test cases, bigger parts of the sendmsg code can be reused for this. Below are the strace view of the recvmsg rewrites; the sendmsg side does not have a BPF prog connected to it for the context of this test: IPv4 test case: [pid 4846] bpf(BPF_PROG_ATTACH, {target_fd=3, attach_bpf_fd=4, attach_type=0x13 /* BPF_??? */, attach_flags=BPF_F_ALLOW_OVERRIDE}, 112) = 0 [pid 4846] socket(AF_INET, SOCK_DGRAM, IPPROTO_IP) = 5 [pid 4846] bind(5, {sa_family=AF_INET, sin_port=htons(4444), sin_addr=inet_addr("127.0.0.1")}, 128) = 0 [pid 4846] socket(AF_INET, SOCK_DGRAM, IPPROTO_IP) = 6 [pid 4846] sendmsg(6, {msg_name={sa_family=AF_INET, sin_port=htons(4444), sin_addr=inet_addr("127.0.0.1")}, msg_namelen=128, msg_iov=[{iov_base="a", iov_len=1}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 1 [pid 4846] select(6, [5], NULL, NULL, {tv_sec=2, tv_usec=0}) = 1 (in [5], left {tv_sec=1, tv_usec=999995}) [pid 4846] recvmsg(5, {msg_name={sa_family=AF_INET, sin_port=htons(4040), sin_addr=inet_addr("192.168.1.254")}, msg_namelen=128->16, msg_iov=[{iov_base="a", iov_len=64}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 1 [pid 4846] close(6) = 0 [pid 4846] close(5) = 0 [pid 4846] bpf(BPF_PROG_DETACH, {target_fd=3, attach_type=0x13 /* BPF_??? */}, 112) = 0 IPv6 test case: [pid 4846] bpf(BPF_PROG_ATTACH, {target_fd=3, attach_bpf_fd=4, attach_type=0x14 /* BPF_??? */, attach_flags=BPF_F_ALLOW_OVERRIDE}, 112) = 0 [pid 4846] socket(AF_INET6, SOCK_DGRAM, IPPROTO_IP) = 5 [pid 4846] bind(5, {sa_family=AF_INET6, sin6_port=htons(6666), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=htonl(0), sin6_scope_id=0}, 128) = 0 [pid 4846] socket(AF_INET6, SOCK_DGRAM, IPPROTO_IP) = 6 [pid 4846] sendmsg(6, {msg_name={sa_family=AF_INET6, sin6_port=htons(6666), inet_pton(AF_INET6, "::1", &sin6_addr), sin6_flowinfo=htonl(0), sin6_scope_id=0}, msg_namelen=128, msg_iov=[{iov_base="a", iov_len=1}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 1 [pid 4846] select(6, [5], NULL, NULL, {tv_sec=2, tv_usec=0}) = 1 (in [5], left {tv_sec=1, tv_usec=999996}) [pid 4846] recvmsg(5, {msg_name={sa_family=AF_INET6, sin6_port=htons(6060), inet_pton(AF_INET6, "face:b00c:1234:5678::abcd", &sin6_addr), sin6_flowinfo=htonl(0), sin6_scope_id=0}, msg_namelen=128->28, msg_iov=[{iov_base="a", iov_len=64}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 1 [pid 4846] close(6) = 0 [pid 4846] close(5) = 0 [pid 4846] bpf(BPF_PROG_DETACH, {target_fd=3, attach_type=0x14 /* BPF_??? */}, 112) = 0 test_sock_addr run w/o strace view: # ./test_sock_addr.sh [...] Test case: recvmsg4: return code ok .. [PASS] Test case: recvmsg4: return code !ok .. [PASS] Test case: recvmsg6: return code ok .. [PASS] Test case: recvmsg6: return code !ok .. [PASS] Test case: recvmsg4: rewrite IP & port (asm) .. [PASS] Test case: recvmsg6: rewrite IP & port (asm) .. [PASS] [...] Signed-off-by: Daniel Borkmann Acked-by: Andrey Ignatov Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit 000aa1250d572171807b47fb9cd3fadfbcc36ad0 Author: Daniel Borkmann Date: Fri Jun 7 01:49:00 2019 +0200 bpf, bpftool: enable recvmsg attach types Trivial patch to bpftool in order to complete enabling attaching programs to BPF_CGROUP_UDP{4,6}_RECVMSG. Signed-off-by: Daniel Borkmann Acked-by: Andrey Ignatov Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit 9bb59ac1f6c362f14b58187bc56e737780c52c19 Author: Daniel Borkmann Date: Fri Jun 7 01:48:59 2019 +0200 bpf, libbpf: enable recvmsg attach types Another trivial patch to libbpf in order to enable identifying and attaching programs to BPF_CGROUP_UDP{4,6}_RECVMSG by section name. Signed-off-by: Daniel Borkmann Signed-off-by: Alexei Starovoitov commit 3dbc6adac1f3b83fd4c39899c747da7b417e3ffc Author: Daniel Borkmann Date: Fri Jun 7 01:48:58 2019 +0200 bpf: sync tooling uapi header Sync BPF uapi header in order to pull in BPF_CGROUP_UDP{4,6}_RECVMSG attach types. This is done and preferred as an extra patch in order to ease sync of libbpf. Signed-off-by: Daniel Borkmann Acked-by: Andrey Ignatov Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit 983695fa676568fc0fe5ddd995c7267aabc24632 Author: Daniel Borkmann Date: Fri Jun 7 01:48:57 2019 +0200 bpf: fix unconnected udp hooks Intention of cgroup bind/connect/sendmsg BPF hooks is to act transparently to applications as also stated in original motivation in 7828f20e3779 ("Merge branch 'bpf-cgroup-bind-connect'"). When recently integrating the latter two hooks into Cilium to enable host based load-balancing with Kubernetes, I ran into the issue that pods couldn't start up as DNS got broken. Kubernetes typically sets up DNS as a service and is thus subject to load-balancing. Upon further debugging, it turns out that the cgroupv2 sendmsg BPF hooks API is currently insufficient and thus not usable as-is for standard applications shipped with most distros. To break down the issue we ran into with a simple example: # cat /etc/resolv.conf nameserver 147.75.207.207 nameserver 147.75.207.208 For the purpose of a simple test, we set up above IPs as service IPs and transparently redirect traffic to a different DNS backend server for that node: # cilium service list ID Frontend Backend 1 147.75.207.207:53 1 => 8.8.8.8:53 2 147.75.207.208:53 1 => 8.8.8.8:53 The attached BPF program is basically selecting one of the backends if the service IP/port matches on the cgroup hook. DNS breaks here, because the hooks are not transparent enough to applications which have built-in msg_name address checks: # nslookup 1.1.1.1 ;; reply from unexpected source: 8.8.8.8#53, expected 147.75.207.207#53 ;; reply from unexpected source: 8.8.8.8#53, expected 147.75.207.208#53 ;; reply from unexpected source: 8.8.8.8#53, expected 147.75.207.207#53 [...] ;; connection timed out; no servers could be reached # dig 1.1.1.1 ;; reply from unexpected source: 8.8.8.8#53, expected 147.75.207.207#53 ;; reply from unexpected source: 8.8.8.8#53, expected 147.75.207.208#53 ;; reply from unexpected source: 8.8.8.8#53, expected 147.75.207.207#53 [...] ; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> 1.1.1.1 ;; global options: +cmd ;; connection timed out; no servers could be reached For comparison, if none of the service IPs is used, and we tell nslookup to use 8.8.8.8 directly it works just fine, of course: # nslookup 1.1.1.1 8.8.8.8 1.1.1.1.in-addr.arpa name = one.one.one.one. In order to fix this and thus act more transparent to the application, this needs reverse translation on recvmsg() side. A minimal fix for this API is to add similar recvmsg() hooks behind the BPF cgroups static key such that the program can track state and replace the current sockaddr_in{,6} with the original service IP. From BPF side, this basically tracks the service tuple plus socket cookie in an LRU map where the reverse NAT can then be retrieved via map value as one example. Side-note: the BPF cgroups static key should be converted to a per-hook static key in future. Same example after this fix: # cilium service list ID Frontend Backend 1 147.75.207.207:53 1 => 8.8.8.8:53 2 147.75.207.208:53 1 => 8.8.8.8:53 Lookups work fine now: # nslookup 1.1.1.1 1.1.1.1.in-addr.arpa name = one.one.one.one. Authoritative answers can be found from: # dig 1.1.1.1 ; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> 1.1.1.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 51550 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;1.1.1.1. IN A ;; AUTHORITY SECTION: . 23426 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2019052001 1800 900 604800 86400 ;; Query time: 17 msec ;; SERVER: 147.75.207.207#53(147.75.207.207) ;; WHEN: Tue May 21 12:59:38 UTC 2019 ;; MSG SIZE rcvd: 111 And from an actual packet level it shows that we're using the back end server when talking via 147.75.207.20{7,8} front end: # tcpdump -i any udp [...] 12:59:52.698732 IP foo.42011 > google-public-dns-a.google.com.domain: 18803+ PTR? 1.1.1.1.in-addr.arpa. (38) 12:59:52.698735 IP foo.42011 > google-public-dns-a.google.com.domain: 18803+ PTR? 1.1.1.1.in-addr.arpa. (38) 12:59:52.701208 IP google-public-dns-a.google.com.domain > foo.42011: 18803 1/0/0 PTR one.one.one.one. (67) 12:59:52.701208 IP google-public-dns-a.google.com.domain > foo.42011: 18803 1/0/0 PTR one.one.one.one. (67) [...] In order to be flexible and to have same semantics as in sendmsg BPF programs, we only allow return codes in [1,1] range. In the sendmsg case the program is called if msg->msg_name is present which can be the case in both, connected and unconnected UDP. The former only relies on the sockaddr_in{,6} passed via connect(2) if passed msg->msg_name was NULL. Therefore, on recvmsg side, we act in similar way to call into the BPF program whenever a non-NULL msg->msg_name was passed independent of sk->sk_state being TCP_ESTABLISHED or not. Note that for TCP case, the msg->msg_name is ignored in the regular recvmsg path and therefore not relevant. For the case of ip{,v6}_recv_error() paths, picked up via MSG_ERRQUEUE, the hook is not called. This is intentional as it aligns with the same semantics as in case of TCP cgroup BPF hooks right now. This might be better addressed in future through a different bpf_attach_type such that this case can be distinguished from the regular recvmsg paths, for example. Fixes: 1cedee13d25a ("bpf: Hooks for sys_sendmsg") Signed-off-by: Daniel Borkmann Acked-by: Andrey Ignatov Acked-by: Martin KaFai Lau Acked-by: Martynas Pumputis Signed-off-by: Alexei Starovoitov commit bcc9d0e346f9fc0b6d4463ccc9dc76ef2fcedecc Merge: dbd9f78ed237 6d10dc617b41 Author: Dave Airlie Date: Fri Jun 7 07:31:49 2019 +1000 Merge branch 'malidp-fixes' of git://linux-arm.org/linux-ld into drm-fixes Assorted set of patches for Arm DRM drivers that I maintain in my tree. Signed-off-by: Dave Airlie From: Liviu Dudau Link: https://patchwork.freedesktop.org/patch/msgid/20190604144205.GO15316@e110455-lin.cambridge.arm.com commit 16d72dd4891fecc1e1bf7ca193bb7d5b9804c038 Merge: ae8766042bee 527a1d1ede98 Author: Linus Torvalds Date: Thu Jun 6 13:13:09 2019 -0700 Merge branch 'parisc-5.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux Pull parisc fixes from Helge Deller: - Fix crashes when accessing PCI devices on some machines like C240 and J5000. The crashes were triggered because we replaced cache flushes by nops in the alternative coding where we shouldn't for some machines. - Dave fixed a race in the usage of the sr1 space register when used to load the coherence index. - Use the hardware lpa instruction to to load the physical address of kernel virtual addresses in the iommu driver code. - The kernel may fail to link when CONFIG_MLONGCALLS isn't set. Solve that by rearranging functions in the final vmlinux executeable. - Some defconfig cleanups and removal of compiler warnings. * 'parisc-5.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: parisc: Fix crash due alternative coding for NP iopdir_fdc bit parisc: Use lpa instruction to load physical addresses in driver code parisc: configs: Remove useless UEVENT_HELPER_PATH parisc: Use implicit space register selection for loading the coherence index of I/O pdirs parisc: Fix compiler warnings in float emulation code parisc/slab: cleanup after /proc/slab_allocators removal parisc: Allow building 64-bit kernel without -mlong-calls compiler option parisc: Kconfig: remove ARCH_DISCARD_MEMBLOCK commit ae8766042beee814c9e16e9ae1e84cd6eaa7ffaa Merge: 01047631df81 7829a0c1cb9c Author: Linus Torvalds Date: Thu Jun 6 13:10:49 2019 -0700 Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 Pull crypto fixes from Herbert Xu: "This fixes a regression that breaks the jitterentropy RNG and a potential memory leak in hmac" * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: crypto: hmac - fix memory leak in hmac_init_tfm() crypto: jitterentropy - change back to module_init() commit 01047631df813f6247185547c3778c80af088a20 Merge: dc8ca9cc6e23 025197ebb08a Author: Linus Torvalds Date: Thu Jun 6 12:36:54 2019 -0700 Merge tag 'xfs-5.2-fixes-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux Pull xfs fixes from Darrick Wong: "Here are a couple more bug fixes for 5.2. Changes since last update: - Fix some forgotten strings in a log debugging function - Fix incorrect unit conversion in online fsck code" * tag 'xfs-5.2-fixes-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: xfs: inode btree scrubber should calculate im_boffset correctly xfs: fix broken log reservation debugging commit dc8ca9cc6e23054eb85599c9417ef2416848e7e8 Merge: 5d6b501fe542 638803d45681 Author: Linus Torvalds Date: Thu Jun 6 12:33:52 2019 -0700 Merge tag 'gfs2-v5.2.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 Pull gfs2 fix from Andreas Gruenbacher: "A revert for a patch that turned out to be broken" * tag 'gfs2-v5.2.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2: Revert "gfs2: Replace gl_revokes with a GLF flag" commit 5d6b501fe5421c5df662e2935f55f5e3d2b5e012 Merge: 211758573b01 5d3211b651a0 Author: Linus Torvalds Date: Thu Jun 6 12:31:15 2019 -0700 Merge tag 'ovl-fixes-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs Pull overlayfs fixes from Miklos Szeredi: "Here's one fix for a class of bugs triggered by syzcaller, and one that makes xfstests fail less" * tag 'ovl-fixes-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs: ovl: doc: add non-standard corner cases ovl: detect overlapping layers ovl: support the FS_IOC_FS[SG]ETXATTR ioctls commit 211758573b01f4cd27308464573d112ef85e0e1a Merge: 459aa077a2f2 26eb3bae5003 Author: Linus Torvalds Date: Thu Jun 6 12:25:56 2019 -0700 Merge tag 'fuse-fixes-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse Pull fuse fixes from Miklos Szeredi: "This fixes a leaked inode lock in an error cleanup path and a data consistency issue with copy_file_range(). It also adds a new flag for the WRITE request that allows userspace filesystems to clear suid/sgid bits on the file if necessary" * tag 'fuse-fixes-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse: fuse: extract helper for range writeback fuse: fix copy_file_range() in the writeback case fuse: add FUSE_WRITE_KILL_PRIV fuse: fallocate: fix return with locked inode commit 459aa077a2f21e21bb0849007bc6909b0d20b1f6 Merge: 44e843eb5cc3 ba851a39c970 Author: Linus Torvalds Date: Thu Jun 6 12:19:37 2019 -0700 Merge tag 'nfs-for-5.2-2' of git://git.linux-nfs.org/projects/anna/linux-nfs Pull NFS client fixes from Anna Schumaker: "These are mostly stable bugfixes found during testing, many during the recent NFS bake-a-thon. Stable bugfixes: - SUNRPC: Fix regression in umount of a secure mount - SUNRPC: Fix a use after free when a server rejects the RPCSEC_GSS credential - NFSv4.1: Again fix a race where CB_NOTIFY_LOCK fails to wake a waiter - NFSv4.1: Fix bug only first CB_NOTIFY_LOCK is handled Other bugfixes: - xprtrdma: Use struct_size() in kzalloc()" * tag 'nfs-for-5.2-2' of git://git.linux-nfs.org/projects/anna/linux-nfs: NFSv4.1: Fix bug only first CB_NOTIFY_LOCK is handled NFSv4.1: Again fix a race where CB_NOTIFY_LOCK fails to wake a waiter SUNRPC: Fix a use after free when a server rejects the RPCSEC_GSS credential SUNRPC fix regression in umount of a secure mount xprtrdma: Use struct_size() in kzalloc() commit 5715c4dd66a315515eedef3fc4cbe1bf4620f009 Author: Parav Pandit Date: Thu Jun 6 10:52:33 2019 -0600 vfio/mdev: Synchronize device create/remove with parent removal In following sequences, child devices created while removing mdev parent device can be left out, or it may lead to race of removing half initialized child mdev devices. issue-1: -------- cpu-0 cpu-1 ----- ----- mdev_unregister_device() device_for_each_child() mdev_device_remove_cb() mdev_device_remove() create_store() mdev_device_create() [...] device_add() parent_remove_sysfs_files() /* BUG: device added by cpu-0 * whose parent is getting removed * and it won't process this mdev. */ issue-2: -------- Below crash is observed when user initiated remove is in progress and mdev_unregister_driver() completes parent unregistration. cpu-0 cpu-1 ----- ----- remove_store() mdev_device_remove() active = false; mdev_unregister_device() parent device removed. [...] parents->ops->remove() /* * BUG: Accessing invalid parent. */ This is similar race like create() racing with mdev_unregister_device(). BUG: unable to handle kernel paging request at ffffffffc0585668 PGD e8f618067 P4D e8f618067 PUD e8f61a067 PMD 85adca067 PTE 0 Oops: 0000 [#1] SMP PTI CPU: 41 PID: 37403 Comm: bash Kdump: loaded Not tainted 5.1.0-rc6-vdevbus+ #6 Hardware name: Supermicro SYS-6028U-TR4+/X10DRU-i+, BIOS 2.0b 08/09/2016 RIP: 0010:mdev_device_remove+0xfa/0x140 [mdev] Call Trace: remove_store+0x71/0x90 [mdev] kernfs_fop_write+0x113/0x1a0 vfs_write+0xad/0x1b0 ksys_write+0x5a/0xe0 do_syscall_64+0x5a/0x210 entry_SYSCALL_64_after_hwframe+0x49/0xbe Therefore, mdev core is improved as below to overcome above issues. Wait for any ongoing mdev create() and remove() to finish before unregistering parent device. This continues to allow multiple create and remove to progress in parallel for different mdev devices as most common case. At the same time guard parent removal while parent is being accessed by create() and remove() callbacks. create()/remove() and unregister_device() are synchronized by the rwsem. Refactor device removal code to mdev_device_remove_common() to avoid acquiring unreg_sem of the parent. Fixes: 7b96953bc640 ("vfio: Mediated device Core driver") Signed-off-by: Parav Pandit Reviewed-by: Cornelia Huck Signed-off-by: Alex Williamson commit 26c9e3988eec6b858c08b0fc352d8eb13832d828 Author: Parav Pandit Date: Thu Jun 6 10:52:33 2019 -0600 vfio/mdev: Avoid creating sysfs remove file on stale device removal If device is removal is initiated by two threads as below, mdev core attempts to create a syfs remove file on stale device. During this flow, below [1] call trace is observed. cpu-0 cpu-1 ----- ----- mdev_unregister_device() device_for_each_child mdev_device_remove_cb mdev_device_remove user_syscall remove_store() mdev_device_remove() [..] unregister device(); /* not found in list or * active=false. */ sysfs_create_file() ..Call trace Now that mdev core follows correct device removal sequence of the linux bus model, remove shouldn't fail in normal cases. If it fails, there is no point of creating a stale file or checking for specific error status. kernel: WARNING: CPU: 2 PID: 9348 at fs/sysfs/file.c:327 sysfs_create_file_ns+0x7f/0x90 kernel: CPU: 2 PID: 9348 Comm: bash Kdump: loaded Not tainted 5.1.0-rc6-vdevbus+ #6 kernel: Hardware name: Supermicro SYS-6028U-TR4+/X10DRU-i+, BIOS 2.0b 08/09/2016 kernel: RIP: 0010:sysfs_create_file_ns+0x7f/0x90 kernel: Call Trace: kernel: remove_store+0xdc/0x100 [mdev] kernel: kernfs_fop_write+0x113/0x1a0 kernel: vfs_write+0xad/0x1b0 kernel: ksys_write+0x5a/0xe0 kernel: do_syscall_64+0x5a/0x210 kernel: entry_SYSCALL_64_after_hwframe+0x49/0xbe Reviewed-by: Cornelia Huck Signed-off-by: Parav Pandit Signed-off-by: Alex Williamson commit 720f1de4021f09898b8c8443f3b3e995991b6e3a Author: Paolo Abeni Date: Thu Jun 6 15:45:03 2019 +0200 pktgen: do not sleep with the thread lock held. Currently, the process issuing a "start" command on the pktgen procfs interface, acquires the pktgen thread lock and never release it, until all pktgen threads are completed. The above can blocks indefinitely any other pktgen command and any (even unrelated) netdevice removal - as the pktgen netdev notifier acquires the same lock. The issue is demonstrated by the following script, reported by Matteo: ip -b - <<'EOF' link add type dummy link add type veth link set dummy0 up EOF modprobe pktgen echo reset >/proc/net/pktgen/pgctrl { echo rem_device_all echo add_device dummy0 } >/proc/net/pktgen/kpktgend_0 echo count 0 >/proc/net/pktgen/dummy0 echo start >/proc/net/pktgen/pgctrl & sleep 1 rmmod veth Fix the above releasing the thread lock around the sleep call. Additionally we must prevent racing with forcefull rmmod - as the thread lock no more protects from them. Instead, acquire a self-reference before waiting for any thread. As a side effect, running rmmod pktgen while some thread is running now fails with "module in use" error, before this patch such command hanged indefinitely. Note: the issue predates the commit reported in the fixes tag, but this fix can't be applied before the mentioned commit. v1 -> v2: - no need to check for thread existence after flipping the lock, pktgen threads are freed only at net exit time - Fixes: 6146e6a43b35 ("[PKTGEN]: Removes thread_{un,}lock() macros.") Reported-and-tested-by: Matteo Croce Signed-off-by: Paolo Abeni Signed-off-by: David S. Miller commit 41b3588dba6ef4b7995735a97e47ff0aeea6c276 Author: Tony Lindgren Date: Wed May 29 23:55:57 2019 -0700 clk: ti: clkctrl: Fix returning uninitialized data If we do a clk_get() for a clock that does not exists, we have _ti_omap4_clkctrl_xlate() return uninitialized data if no match is found. This can be seen in some cases with SLAB_DEBUG enabled: Unable to handle kernel paging request at virtual address 5a5a5a5a ... clk_hw_create_clk.part.33 sysc_notifier_call notifier_call_chain blocking_notifier_call_chain device_add Let's fix this by setting a found flag only when we find a match. Reported-by: Tomi Valkeinen Fixes: 88a172526c32 ("clk: ti: add support for clkctrl clocks") Signed-off-by: Tony Lindgren Tested-by: Peter Ujfalusi Tested-by: Tomi Valkeinen Signed-off-by: Stephen Boyd commit 44e843eb5cc383fe58fc8ec17dba0ab1dc45db2d Merge: 156c05917e09 fc722a0429f4 Author: Linus Torvalds Date: Thu Jun 6 11:02:54 2019 -0700 Merge tag 'for-rc-adfs' of git://git.armlinux.org.uk/~rmk/linux-arm Pull ADFS cleanups/fixes from Russell King: "As a result of some of Al Viro's great work, here are a few cleanups with fixes for adfs: - factor out filename comparison, so we can be sure that adfs_compare() (used for namei compare) and adfs_match() (used for lookup) have the same behaviour. - factor out filename lowering (which is not the same as tolower() which will lower top-bit-set characters) to ensure that we have the same behaviour when comparing filenames as when we hash them. - factor out the object fixups, so we are applying all fixups to directory objects in the same way, independent of the disk format. - factor out the object name fixup (into the previously factored out function) to ensure that filenames are appropriately translated - for example, adfs allows '/' in filenames, which being the Unix path separator, need to be translated to a different character, which is normally '.' (DOS 8.3 filenames represent the . as a / on adfs, so this is the expected reverse translation.) - remove filename truncation; Al asked about this and apparently the decision is to remove it. In any case, adfs's truncation was buggy, so this rids us of that bug by removing the truncation feature. - we now have only one location which adds the "filetype" suffix to the filename, so there's no point that code being out of line. - since we translate '/' into '.', an adfs filename of "/" or "//" would end up being translated to "." and ".." which have special meanings. In this case, change the first character to "^" to avoid these special directory names being abused" * tag 'for-rc-adfs' of git://git.armlinux.org.uk/~rmk/linux-arm: fs/adfs: fix filename fixup handling for "/" and "//" names fs/adfs: move append_filetype_suffix() into adfs_object_fixup() fs/adfs: remove truncated filename hashing fs/adfs: factor out filename fixup fs/adfs: factor out object fixups fs/adfs: factor out filename case lowering fs/adfs: factor out filename comparison commit d37acd5aa99c57505b64913e0e2624ec3daed8c5 Author: Maxime Chevallier Date: Thu Jun 6 10:42:56 2019 +0200 net: mvpp2: Use strscpy to handle stat strings Use a safe strscpy call to copy the ethtool stat strings into the relevant buffers, instead of a memcpy that will be accessing out-of-bound data. Fixes: 118d6298f6f0 ("net: mvpp2: add ethtool GOP statistics") Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit 85cb928787eab6a2f4ca9d2a798b6f3bed53ced1 Author: Zhu Yanjun Date: Thu Jun 6 04:00:03 2019 -0400 net: rds: fix memory leak in rds_ib_flush_mr_pool When the following tests last for several hours, the problem will occur. Server: rds-stress -r 1.1.1.16 -D 1M Client: rds-stress -r 1.1.1.14 -s 1.1.1.16 -D 1M -T 30 The following will occur. " Starting up.... tsks tx/s rx/s tx+rx K/s mbi K/s mbo K/s tx us/c rtt us cpu % 1 0 0 0.00 0.00 0.00 0.00 0.00 -1.00 1 0 0 0.00 0.00 0.00 0.00 0.00 -1.00 1 0 0 0.00 0.00 0.00 0.00 0.00 -1.00 1 0 0 0.00 0.00 0.00 0.00 0.00 -1.00 " >From vmcore, we can find that clean_list is NULL. >From the source code, rds_mr_flushd calls rds_ib_mr_pool_flush_worker. Then rds_ib_mr_pool_flush_worker calls " rds_ib_flush_mr_pool(pool, 0, NULL); " Then in function " int rds_ib_flush_mr_pool(struct rds_ib_mr_pool *pool, int free_all, struct rds_ib_mr **ibmr_ret) " ibmr_ret is NULL. In the source code, " ... list_to_llist_nodes(pool, &unmap_list, &clean_nodes, &clean_tail); if (ibmr_ret) *ibmr_ret = llist_entry(clean_nodes, struct rds_ib_mr, llnode); /* more than one entry in llist nodes */ if (clean_nodes->next) llist_add_batch(clean_nodes->next, clean_tail, &pool->clean_list); ... " When ibmr_ret is NULL, llist_entry is not executed. clean_nodes->next instead of clean_nodes is added in clean_list. So clean_nodes is discarded. It can not be used again. The workqueue is executed periodically. So more and more clean_nodes are discarded. Finally the clean_list is NULL. Then this problem will occur. Fixes: 1bc144b62524 ("net, rds, Replace xlist in net/rds/xlist.h with llist") Signed-off-by: Zhu Yanjun Acked-by: Santosh Shilimkar Signed-off-by: David S. Miller commit 8d037f92de5f34b44312c4df6c115c6df92d7085 Merge: 4970b42d5c36 b9aa52c4cb45 Author: David S. Miller Date: Thu Jun 6 10:29:21 2019 -0700 Merge branch 'ipv6-fix-EFAULT-on-sendto-with-icmpv6-and-hdrincl' Olivier Matz says: ==================== ipv6: fix EFAULT on sendto with icmpv6 and hdrincl The following code returns EFAULT (Bad address): s = socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6); setsockopt(s, SOL_IPV6, IPV6_HDRINCL, 1); sendto(ipv6_icmp6_packet, addr); /* returns -1, errno = EFAULT */ The problem is fixed in the second patch. The first one aligns the code to ipv4, to avoid a race condition in the second patch. ==================== Signed-off-by: David S. Miller commit b9aa52c4cb457e7416cc0c95f475e72ef4a61336 Author: Olivier Matz Date: Thu Jun 6 09:15:19 2019 +0200 ipv6: fix EFAULT on sendto with icmpv6 and hdrincl The following code returns EFAULT (Bad address): s = socket(AF_INET6, SOCK_RAW, IPPROTO_ICMPV6); setsockopt(s, SOL_IPV6, IPV6_HDRINCL, 1); sendto(ipv6_icmp6_packet, addr); /* returns -1, errno = EFAULT */ The IPv4 equivalent code works. A workaround is to use IPPROTO_RAW instead of IPPROTO_ICMPV6. The failure happens because 2 bytes are eaten from the msghdr by rawv6_probe_proto_opt() starting from commit 19e3c66b52ca ("ipv6 equivalent of "ipv4: Avoid reading user iov twice after raw_probe_proto_opt""), but at that time it was not a problem because IPV6_HDRINCL was not yet introduced. Only eat these 2 bytes if hdrincl == 0. Fixes: 715f504b1189 ("ipv6: add IPV6_HDRINCL option for raw sockets") Signed-off-by: Olivier Matz Acked-by: Nicolas Dichtel Signed-off-by: David S. Miller commit 59e3e4b52663a9d97efbce7307f62e4bc5c9ce91 Author: Olivier Matz Date: Thu Jun 6 09:15:18 2019 +0200 ipv6: use READ_ONCE() for inet->hdrincl as in ipv4 As it was done in commit 8f659a03a0ba ("net: ipv4: fix for a race condition in raw_sendmsg") and commit 20b50d79974e ("net: ipv4: emulate READ_ONCE() on ->hdrincl bit-field in raw_sendmsg()") for ipv4, copy the value of inet->hdrincl in a local variable, to avoid introducing a race condition in the next commit. Signed-off-by: Olivier Matz Signed-off-by: David S. Miller commit 39194128701bf2af9bbc420ffe6e3cb5d2c16061 Author: Srinivas Kandagatla Date: Thu Jun 6 12:23:04 2019 +0100 soundwire: intel: set dai min and max channels correctly Looks like there is a copy paste error. This patch fixes it! Signed-off-by: Srinivas Kandagatla Signed-off-by: Vinod Koul commit 9315d904c7e8f38886e2820fa6cb8d0fa723ea21 Author: Srinivas Kandagatla Date: Thu Jun 6 12:22:22 2019 +0100 soundwire: stream: fix bad unlock balance the msg lock is taken for multi-link cases only but released unconditionally, leading to an unlock balance warning for single-link usages This patch fixes this. ===================================== WARNING: bad unlock balance detected! 5.1.0-16506-gc1c383a6f0a2-dirty #1523 Tainted: G W ------------------------------------- aplay/2954 is trying to release lock (&bus->msg_lock) at: do_bank_switch+0x21c/0x480 but there are no more locks to release! Signed-off-by: Srinivas Kandagatla Acked-by: Pierre-Louis Bossart Acked-by: Sanyog Kale [vkoul: edited the change log as suggested by Pierre] Signed-off-by: Vinod Koul commit b81ff1013eb8eef2934ca7e8cf53d553c1029e84 Author: Hugh Dickins Date: Wed May 29 09:25:40 2019 +0200 x86/fpu: Use fault_in_pages_writeable() for pre-faulting Since commit d9c9ce34ed5c8 ("x86/fpu: Fault-in user stack if copy_fpstate_to_sigframe() fails") get_user_pages_unlocked() pre-faults user's memory if a write generates a page fault while the handler is disabled. This works in general and uncovered a bug as reported by Mike Rapoport¹. It has been pointed out that this function may be fragile and a simple pre-fault as in fault_in_pages_writeable() would be a better solution. Better as in taste and simplicity: that write (as performed by the alternative function) performs exactly the same faulting of memory as before. This was suggested by Hugh Dickins and Andrew Morton. Use fault_in_pages_writeable() for pre-faulting user's stack. [ bigeasy: Write commit message. ] [ bp: Massage some. ] ¹ https://lkml.kernel.org/r/1557844195-18882-1-git-send-email-rppt@linux.ibm.com Fixes: d9c9ce34ed5c8 ("x86/fpu: Fault-in user stack if copy_fpstate_to_sigframe() fails") Suggested-by: Andrew Morton Signed-off-by: Hugh Dickins Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Tested-by: Chris Wilson Cc: Andrea Arcangeli Cc: Andrew Morton Cc: Dave Hansen Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: linux-mm Cc: Mike Rapoport Cc: Pavel Machek Cc: Rik van Riel Cc: Thomas Gleixner Cc: x86-ml Link: https://lkml.kernel.org/r/20190529072540.g46j4kfeae37a3iu@linutronix.de Link: https://lkml.kernel.org/r/1557844195-18882-1-git-send-email-rppt@linux.ibm.com commit 62f99b62e5e3b88d23b6ced4380199e8386965af Author: Max Gurtovoy Date: Thu Jun 6 12:27:36 2019 +0300 nvme-rdma: use dynamic dma mapping per command Commit 87fd125344d6 ("nvme-rdma: remove redundant reference between ib_device and tagset") caused a kernel panic when disconnecting from an inaccessible controller (disconnect during re-connection). -- nvme nvme0: Removing ctrl: NQN "testnqn1" nvme_rdma: nvme_rdma_exit_request: hctx 0 queue_idx 1 BUG: unable to handle kernel paging request at 0000000080000228 PGD 0 P4D 0 Oops: 0000 [#1] SMP PTI ... Call Trace: blk_mq_exit_hctx+0x5c/0xf0 blk_mq_exit_queue+0xd4/0x100 blk_cleanup_queue+0x9a/0xc0 nvme_rdma_destroy_io_queues+0x52/0x60 [nvme_rdma] nvme_rdma_shutdown_ctrl+0x3e/0x80 [nvme_rdma] nvme_do_delete_ctrl+0x53/0x80 [nvme_core] nvme_sysfs_delete+0x45/0x60 [nvme_core] kernfs_fop_write+0x105/0x180 vfs_write+0xad/0x1a0 ksys_write+0x5a/0xd0 do_syscall_64+0x55/0x110 entry_SYSCALL_64_after_hwframe+0x44/0xa9 RIP: 0033:0x7fa215417154 -- The reason for this crash is accessing an already freed ib_device for performing dma_unmap during exit_request commands. The root cause for that is that during re-connection all the queues are destroyed and re-created (and the ib_device is reference counted by the queues and freed as well) but the tagset stays alive and all the DMA mappings (that we perform in init_request) kept in the request context. The original commit fixed a different bug that was introduced during bonding (aka nic teaming) tests that for some scenarios change the underlying ib_device and caused memory leakage and possible segmentation fault. This commit is a complementary commit that also changes the wrong DMA mappings that were saved in the request context and making the request sqe dma mappings dynamic with the command lifetime (i.e. mapped in .queue_rq and unmapped in .complete). It also fixes the above crash of accessing freed ib_device during destruction of the tagset. Fixes: 87fd125344d6 ("nvme-rdma: remove redundant reference between ib_device and tagset") Reported-by: Jim Harris Suggested-by: Sagi Grimberg Tested-by: Jim Harris Reviewed-by: Christoph Hellwig Signed-off-by: Max Gurtovoy Signed-off-by: Sagi Grimberg commit c8e8c77b3bdbade6e26e8e76595f141ede12b692 Author: Jaesoo Lee Date: Mon Jun 3 16:42:28 2019 -0700 nvme: Fix u32 overflow in the number of namespace list calculation The Number of Namespaces (nn) field in the identify controller data structure is defined as u32 and the maximum allowed value in NVMe specification is 0xFFFFFFFEUL. This change fixes the possible overflow of the DIV_ROUND_UP() operation used in nvme_scan_ns_list() by casting the nn to u64. Signed-off-by: Jaesoo Lee Reviewed-by: Christoph Hellwig Signed-off-by: Sagi Grimberg commit 522ecce08ab20b57342d65b05601818e0f95fb2c Author: Parav Pandit Date: Thu Jun 6 10:52:32 2019 -0600 vfio/mdev: Improve the create/remove sequence This patch addresses below two issues and prepares the code to address 3rd issue listed below. 1. mdev device is placed on the mdev bus before it is created in the vendor driver. Once a device is placed on the mdev bus without creating its supporting underlying vendor device, mdev driver's probe() gets triggered. However there isn't a stable mdev available to work on. create_store() mdev_create_device() device_register() ... vfio_mdev_probe() [...] parent->ops->create() vfio_ap_mdev_create() mdev_set_drvdata(mdev, matrix_mdev); /* Valid pointer set above */ Due to this way of initialization, mdev driver who wants to use the mdev, doesn't have a valid mdev to work on. 2. Current creation sequence is, parent->ops_create() groups_register() Remove sequence is, parent->ops->remove() groups_unregister() However, remove sequence should be exact mirror of creation sequence. Once this is achieved, all users of the mdev will be terminated first before removing underlying vendor device. (Follow standard linux driver model). At that point vendor's remove() ops shouldn't fail because taking the device off the bus should terminate any usage. 3. When remove operation fails, mdev sysfs removal attempts to add the file back on already removed device. Following call trace [1] is observed. [1] call trace: kernel: WARNING: CPU: 2 PID: 9348 at fs/sysfs/file.c:327 sysfs_create_file_ns+0x7f/0x90 kernel: CPU: 2 PID: 9348 Comm: bash Kdump: loaded Not tainted 5.1.0-rc6-vdevbus+ #6 kernel: Hardware name: Supermicro SYS-6028U-TR4+/X10DRU-i+, BIOS 2.0b 08/09/2016 kernel: RIP: 0010:sysfs_create_file_ns+0x7f/0x90 kernel: Call Trace: kernel: remove_store+0xdc/0x100 [mdev] kernel: kernfs_fop_write+0x113/0x1a0 kernel: vfs_write+0xad/0x1b0 kernel: ksys_write+0x5a/0xe0 kernel: do_syscall_64+0x5a/0x210 kernel: entry_SYSCALL_64_after_hwframe+0x49/0xbe Therefore, mdev core is improved in following ways. 1. Split the device registration/deregistration sequence so that some things can be done between initialization of the device and hooking it up to the bus respectively after deregistering it from the bus but before giving up our final reference. In particular, this means invoking the ->create() and ->remove() callbacks in those new windows. This gives the vendor driver an initialized mdev device to work with during creation. At the same time, a bus driver who wish to bind to mdev driver also gets initialized mdev device. This follows standard Linux kernel bus and device model. 2. During remove flow, first remove the device from the bus. This ensures that any bus specific devices are removed. Once device is taken off the mdev bus, invoke remove() of mdev from the vendor driver. 3. The driver core device model provides way to register and auto unregister the device sysfs attribute groups at dev->groups. Make use of dev->groups to let core create the groups and eliminate code to avoid explicit groups creation and removal. To ensure, that new sequence is solid, a below stack dump of a process is taken who attempts to remove the device while device is in use by vfio driver and user application. This stack dump validates that vfio driver guards against such device removal when device is in use. cat /proc/21962/stack [<0>] vfio_del_group_dev+0x216/0x3c0 [vfio] [<0>] mdev_remove+0x21/0x40 [mdev] [<0>] device_release_driver_internal+0xe8/0x1b0 [<0>] bus_remove_device+0xf9/0x170 [<0>] device_del+0x168/0x350 [<0>] mdev_device_remove_common+0x1d/0x50 [mdev] [<0>] mdev_device_remove+0x8c/0xd0 [mdev] [<0>] remove_store+0x71/0x90 [mdev] [<0>] kernfs_fop_write+0x113/0x1a0 [<0>] vfs_write+0xad/0x1b0 [<0>] ksys_write+0x5a/0xe0 [<0>] do_syscall_64+0x5a/0x210 [<0>] entry_SYSCALL_64_after_hwframe+0x49/0xbe [<0>] 0xffffffffffffffff This prepares the code to eliminate calling device_create_file() in subsequent patch. Reviewed-by: Cornelia Huck Signed-off-by: Parav Pandit Signed-off-by: Alex Williamson commit 04268bf2757a125616b6c2140e6250f43b7b737a Author: Amadeusz Sławiński Date: Wed Jun 5 15:45:52 2019 +0200 SoC: rt274: Fix internal jack assignment in set_jack callback When we call snd_soc_component_set_jack(component, NULL, NULL) we should set rt274->jack to passed jack, so when interrupt is triggered it calls snd_soc_jack_report(rt274->jack, ...) with proper value. This fixes problem in machine where in register, we call snd_soc_register(component, &headset, NULL), which just calls rt274_mic_detect via callback. Now when machine driver is removed "headset" will be gone, so we need to tell codec driver that it's gone with: snd_soc_register(component, NULL, NULL), but we also need to be able to handle NULL jack argument here gracefully. If we don't set it to NULL, next time the rt274_irq runs it will call snd_soc_jack_report with first argument being invalid pointer and there will be Oops. Signed-off-by: Amadeusz Sławiński Signed-off-by: Mark Brown commit 6d647b736a6b1cbf2f8deab0e6a94c34a6ea9d60 Author: Amadeusz Sławiński Date: Wed May 22 11:21:41 2019 -0500 ALSA: hdac: fix memory release for SST and SOF drivers During the integration of HDaudio support, we changed the way in which we get hdev in snd_hdac_ext_bus_device_init() to use one preallocated with devm_kzalloc(), however it still left kfree(hdev) in snd_hdac_ext_bus_device_exit(). It leads to oopses when trying to rmmod and modprobe. Fix it, by just removing kfree call. SOF also uses some of the snd_hdac_ functions for HDAudio support but allocated the memory with kzalloc. A matching fix is provided separately to align all users of the snd_hdac_ library. Fixes: 6298542fa33b ("ALSA: hdac: remove memory allocation from snd_hdac_ext_bus_device_init") Reviewed-by: Takashi Iwai Signed-off-by: Amadeusz Sławiński Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 1f5253b08e06bc798e5254ede22d4238e9a52af8 Author: Zhu Yingjiang Date: Wed May 22 11:21:40 2019 -0500 ASoC: SOF: Intel: hda: use the defined ppcap functions There are already defined ppcap and ppcap interrupt functions, use the already defined functions for easy code read. Fixes: 8a300c8fb17 ("ASoC: SOF: Intel: Add HDA controller for Intel DSP") Reviewed-by: Takashi Iwai Signed-off-by: Zhu Yingjiang Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 70fc53734e71ce51f46dfcfd1a1c319e1cfe080c Author: Tzung-Bi Shih Date: Tue Jun 4 11:31:02 2019 +0800 ASoC: core: move DAI pre-links initiation to snd_soc_instantiate_card Kernel crashes when an ASoC component rebinding. The dai_link->platforms has been reset to NULL by soc_cleanup_platform() in soc_cleanup_card_resources() when un-registering component. However, it has no chance to re-allocate the dai_link->platforms when registering the component again. Move the DAI pre-links initiation from snd_soc_register_card() to snd_soc_instantiate_card() to make sure all DAI pre-links get initiated when component rebinding. As an example, by using the following commands: - echo -n max98357a > /sys/bus/platform/drivers/max98357a/unbind - echo -n max98357a > /sys/bus/platform/drivers/max98357a/bind Got the error message: "Unable to handle kernel NULL pointer dereference at virtual address". The call trace: snd_soc_is_matching_component+0x30/0x6c soc_bind_dai_link+0x16c/0x240 snd_soc_bind_card+0x1e4/0xb10 snd_soc_add_component+0x270/0x300 snd_soc_register_component+0x54/0x6c Signed-off-by: Tzung-Bi Shih Signed-off-by: Mark Brown commit 9bbc799318a34061703f2a980e2b6df7fc6760f0 Author: Pierre-Louis Bossart Date: Tue Jun 4 15:08:58 2019 -0500 ASoC: Intel: cht_bsw_rt5672: fix kernel oops with platform_name override The platform override code uses devm_ functions to allocate memory for the new name but the card device is not initialized. Fix by moving the init earlier. Fixes: f403906da05cd ("ASoC: Intel: cht_bsw_rt5672: platform name fixup support") Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 096701e8131425044d2054a0c210d6ea24ee7386 Author: Pierre-Louis Bossart Date: Tue Jun 4 15:08:57 2019 -0500 ASoC: Intel: cht_bsw_nau8824: fix kernel oops with platform_name override The platform override code uses devm_ functions to allocate memory for the new name but the card device is not initialized. Fix by moving the init earlier. Fixes: 4506db8043341 ("ASoC: Intel: cht_bsw_nau8824: platform name fixup support") Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 79136a016add1acb690fe8d96be50dd22a143d26 Author: Pierre-Louis Bossart Date: Tue Jun 4 15:08:56 2019 -0500 ASoC: Intel: bytcht_es8316: fix kernel oops with platform_name override The platform override code uses devm_ functions to allocate memory for the new name but the card device is not initialized. Fix by moving the init earlier. Fixes: e4bc6b1195f64 ("ASoC: Intel: bytcht_es8316: platform name fixup support") Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit fb54555134b9b17835545e4d096b5550c27eed64 Author: Pierre-Louis Bossart Date: Tue Jun 4 15:08:55 2019 -0500 ASoC: Intel: cht_bsw_max98090: fix kernel oops with platform_name override The platform override code uses devm_ functions to allocate memory for the new name but the card device is not initialized. Fix by moving the init earlier. Fixes: 7e7e24d7c7ff0 ("ASoC: Intel: cht_bsw_max98090_ti: platform name fixup support") Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 638803d4568121d73a266e440530f880ffa2dacc Author: Bob Peterson Date: Thu Jun 6 07:33:38 2019 -0500 Revert "gfs2: Replace gl_revokes with a GLF flag" Commit 73118ca8baf7 introduced a glock reference counting bug in gfs2_trans_remove_revoke. Given that, replacing gl_revokes with a GLF flag is no longer useful, so revert that commit. Signed-off-by: Bob Peterson Signed-off-by: Andreas Gruenbacher commit e7bf2ce837475445bfd44ac1193ced0684a70d96 Merge: 8aa75b72e3e6 1f65105ffc47 Author: Greg Kroah-Hartman Date: Thu Jun 6 15:13:22 2019 +0200 Merge tag 'misc-habanalabs-fixes-2019-06-06' of git://people.freedesktop.org/~gabbayo/linux into char-misc-linus Oded writes: This tag contains the following fixes: - Fix the code that checks whether we can use 2MB page size when mapping memory in the ASIC's MMU. The current code had a "hole" which happened in architectures other then x86-64. - Fix the debugfs interface to read/write from/to the device using device virtual addresses. There was a bug in the translation regarding addresses that were mapped using 2MB page size. - Fix a bug in the debug/profiling code, where the code didn't read the full address but only the lower 32-bits of the address. * tag 'misc-habanalabs-fixes-2019-06-06' of git://people.freedesktop.org/~gabbayo/linux: habanalabs: Read upper bits of trace buffer from RWPHI habanalabs: Fix virtual address access via debugfs for 2MB pages habanalabs: fix bug in checking huge page optimization commit ebcc5928c5d925b1c8d968d9c89cdb0d0186db17 Author: Dave Martin Date: Thu Jun 6 11:33:43 2019 +0100 arm64: Silence gcc warnings about arch ABI drift Since GCC 9, the compiler warns about evolution of the platform-specific ABI, in particular relating for the marshaling of certain structures involving bitfields. The kernel is a standalone binary, and of course nobody would be so stupid as to expose structs containing bitfields as function arguments in ABI. (Passing a pointer to such a struct, however inadvisable, should be unaffected by this change. perf and various drivers rely on that.) So these warnings do more harm than good: turn them off. We may miss warnings about future ABI drift, but that's too bad. Future ABI breaks of this class will have to be debugged and fixed the traditional way unless the compiler evolves finer-grained diagnostics. Signed-off-by: Dave Martin Signed-off-by: Will Deacon commit 527a1d1ede98479bf90c31a64822107ac7e6d276 Author: Helge Deller Date: Mon May 27 21:20:00 2019 +0200 parisc: Fix crash due alternative coding for NP iopdir_fdc bit According to the found documentation, data cache flushes and sync instructions are needed on the PCX-U+ (PA8200, e.g. C200/C240) platforms, while PCX-W (PA8500, e.g. C360) platforms aparently don't need those flushes when changing the IO PDIR data structures. We have no documentation for PCX-W+ (PA8600) and PCX-W2 (PA8700) CPUs, but Carlo Pisani reported that his C3600 machine (PA8600, PCX-W+) fails when the fdc instructions were removed. His firmware didn't set the NIOP bit, so one may assume it's a firmware bug since other C3750 machines had the bit set. Even if documentation (as mentioned above) states that PCX-W (PA8500, e.g. J5000) does not need fdc flushes, Sven could show that an Adaptec 29320A PCI-X SCSI controller reliably failed on a dd command during the first five minutes in his J5000 when fdc flushes were missing. Going forward, we will now NOT replace the fdc and sync assembler instructions by NOPS if: a) the NP iopdir_fdc bit was set by firmware, or b) we find a CPU up to and including a PCX-W+ (PA8600). This fixes the HPMC crashes on a C240 and C36XX machines. For other machines we rely on the firmware to set the bit when needed. In case one finds HPMC issues, people could try to boot their machines with the "no-alternatives" kernel option to turn off any alternative patching. Reported-by: Sven Schnelle Reported-by: Carlo Pisani Tested-by: Sven Schnelle Fixes: 3847dab77421 ("parisc: Add alternative coding infrastructure") Signed-off-by: Helge Deller Cc: stable@vger.kernel.org # 5.0+ commit 116d753308cf032159c7b7aa87c9605bb5354784 Author: John David Anglin Date: Sun Jun 2 19:12:40 2019 -0400 parisc: Use lpa instruction to load physical addresses in driver code Most I/O in the kernel is done using the kernel offset mapping. However, there is one API that uses aliased kernel address ranges: > The final category of APIs is for I/O to deliberately aliased address > ranges inside the kernel. Such aliases are set up by use of the > vmap/vmalloc API. Since kernel I/O goes via physical pages, the I/O > subsystem assumes that the user mapping and kernel offset mapping are > the only aliases. This isn't true for vmap aliases, so anything in > the kernel trying to do I/O to vmap areas must manually manage > coherency. It must do this by flushing the vmap range before doing > I/O and invalidating it after the I/O returns. For this reason, we should use the hardware lpa instruction to load the physical address of kernel virtual addresses in the driver code. I believe we only use the vmap/vmalloc API with old PA 1.x processors which don't have a sba, so we don't hit this problem. Tested on c3750, c8000 and rp3440. Signed-off-by: John David Anglin Signed-off-by: Helge Deller commit ec13c82d261b5a10e6f6e3273b60329d1146edbb Author: Krzysztof Kozlowski Date: Tue Jun 4 09:57:39 2019 +0200 parisc: configs: Remove useless UEVENT_HELPER_PATH Remove the CONFIG_UEVENT_HELPER_PATH because: 1. It is disabled since commit 1be01d4a5714 ("driver: base: Disable CONFIG_UEVENT_HELPER by default") as its dependency (UEVENT_HELPER) was made default to 'n', 2. It is not recommended (help message: "This should not be used today [...] creates a high system load") and was kept only for ancient userland, 3. Certain userland specifically requests it to be disabled (systemd README: "Legacy hotplug slows down the system and confuses udev"). Signed-off-by: Krzysztof Kozlowski Acked-by: Geert Uytterhoeven Signed-off-by: Helge Deller commit 63923d2c3800919774f5c651d503d1dd2adaddd5 Author: John David Anglin Date: Mon May 27 20:15:14 2019 -0400 parisc: Use implicit space register selection for loading the coherence index of I/O pdirs We only support I/O to kernel space. Using %sr1 to load the coherence index may be racy unless interrupts are disabled. This patch changes the code used to load the coherence index to use implicit space register selection. This saves one instruction and eliminates the race. Tested on rp3440, c8000 and c3750. Signed-off-by: John David Anglin Cc: stable@vger.kernel.org Signed-off-by: Helge Deller commit 42cc68868ce9d5f5277f561bb17b4746a332bb28 Author: Wei Yongjun Date: Sat May 4 07:04:07 2019 +0000 usb: gadget: udc: lpc32xx: fix return value check in lpc32xx_udc_probe() In case of error, the function devm_ioremap_resource() returns ERR_PTR() and never returns NULL. The NULL test in the return value check should be replaced with IS_ERR(). This issue was detected by using the Coccinelle software. Fixes: 408b56ca5c8e ("usb: gadget: udc: lpc32xx: simplify probe") Acked-by: Sylvain Lemieux Acked-by: Vladimir Zapolskiy Signed-off-by: Wei Yongjun Signed-off-by: Felipe Balbi commit 066cfd0770aba8a9ac79b59d99530653885d919d Author: Andrzej Pietrasiewicz Date: Mon Apr 1 12:50:45 2019 +0200 usb: gadget: dwc2: fix zlp handling The patch 10209abe87f5ebfd482a00323f5236d6094d0865 usb: dwc2: gadget: Add scatter-gather mode avoided a NULL pointer dereference (hs_ep->req == NULL) by calling dwc2_gadget_fill_nonisoc_xfer_dma_one() directly instead of through the dwc2_gadget_config_nonisoc_xfer_ddma() wrapper, which unconditionally dereferenced the said pointer. However, this was based on an incorrect assumption that in the context of dwc2_hsotg_program_zlp() the pointer is always NULL, which is not the case. The result were SB CV MSC tests failing starting from Test Case 6. Instead, this patch reverts to calling the wrapper and adds a check for the pointer being NULL inside the wrapper. Fixes: 10209abe87f5 (usb: dwc2: gadget: Add scatter-gather mode) Acked-by: Minas Harutyunyan Signed-off-by: Andrzej Pietrasiewicz Signed-off-by: Felipe Balbi commit 4faf3b36553a0a5304f58ee3a620e659739a2e20 Author: Minas Harutyunyan Date: Mon Apr 29 15:23:43 2019 +0400 usb: dwc2: Set actual frame number for completed ISOC transfer for none DDMA On ISOC OUT transfer completion, in none DDMA mode, set actual frame number returning to function driver in usb_request. Signed-off-by: Minas Harutyunyan Signed-off-by: Felipe Balbi commit fbc318afadd6e7ae2252d6158cf7d0c5a2132f7d Author: Alexandre Belloni Date: Wed May 22 14:07:36 2019 +0200 usb: gadget: udc: lpc32xx: allocate descriptor with GFP_ATOMIC Gadget drivers may queue request in interrupt context. This would lead to a descriptor allocation in that context. In that case we would hit BUG_ON(in_interrupt()) in __get_vm_area_node. Also remove the unnecessary cast. Acked-by: Sylvain Lemieux Tested-by: James Grant Signed-off-by: Alexandre Belloni Signed-off-by: Felipe Balbi commit 62fd0e0a24abeebe2c19fce49dd5716d9b62042d Author: Young Xiao <92siuyang@gmail.com> Date: Tue May 28 20:17:54 2019 +0800 usb: gadget: fusb300_udc: Fix memory leak of fusb300->ep[i] There is no deallocation of fusb300->ep[i] elements, allocated at fusb300_probe. The patch adds deallocation of fusb300->ep array elements. Signed-off-by: Young Xiao <92siuyang@gmail.com> Signed-off-by: Felipe Balbi commit b5bbe22353614d6a4d7a4b33f326e3009ec38052 Author: Andrey Smirnov Date: Tue May 28 23:59:48 2019 -0700 usb: phy: mxs: Disable external charger detect in mxs_phy_hw_init() Since this driver already handles changer detction state, copy the workaround code currently residing in arch/arm/mach-imx/anatop.c into this drier to consolidate the places modifying it. Signed-off-by: Andrey Smirnov Cc: Chris Healy Cc: Felipe Balbi Cc: Shawn Guo Cc: Fabio Estevam Cc: NXP Linux Team Cc: linux-usb@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Reviewed-by: Peter Chen Signed-off-by: Felipe Balbi commit 4a4863bf2e7932e584a3a462d3c6daf891142ddc Author: Martin Schiller Date: Mon Feb 18 07:37:30 2019 +0100 usb: dwc2: Fix DMA cache alignment issues Insert a padding between data and the stored_xfer_buffer pointer to ensure they are not on the same cache line. Otherwise, the stored_xfer_buffer gets corrupted for IN URBs on non-cache-coherent systems. (In my case: Lantiq xRX200 MIPS) Fixes: 3bc04e28a030 ("usb: dwc2: host: Get aligned DMA in a more supported way") Fixes: 56406e017a88 ("usb: dwc2: Fix DMA alignment to start at allocated boundary") Cc: Tested-by: Douglas Anderson Reviewed-by: Douglas Anderson Acked-by: Minas Harutyunyan Signed-off-by: Martin Schiller Signed-off-by: Felipe Balbi commit babd183915e91a64e976b9e8ab682bb56624df76 Author: Douglas Anderson Date: Fri May 31 13:04:12 2019 -0700 usb: dwc2: host: Fix wMaxPacketSize handling (fix webcam regression) In commit abb621844f6a ("usb: ch9: make usb_endpoint_maxp() return only packet size") the API to usb_endpoint_maxp() changed. It used to just return wMaxPacketSize but after that commit it returned wMaxPacketSize with the high bits (the multiplier) masked off. If you wanted to get the multiplier it was now up to your code to call the new usb_endpoint_maxp_mult() which was introduced in commit 541b6fe63023 ("usb: add helper to extract bits 12:11 of wMaxPacketSize"). Prior to the API change most host drivers were updated, but no update was made to dwc2. Presumably it was assumed that dwc2 was too simplistic to use the multiplier and thus just didn't support a certain class of USB devices. However, it turns out that dwc2 did use the multiplier and many devices using it were working quite nicely. That means that many USB devices have been broken since the API change. One such device is a Logitech HD Pro Webcam C920. Specifically, though dwc2 didn't directly call usb_endpoint_maxp(), it did call usb_maxpacket() which in turn called usb_endpoint_maxp(). Let's update dwc2 to work properly with the new API. Fixes: abb621844f6a ("usb: ch9: make usb_endpoint_maxp() return only packet size") Cc: stable@vger.kernel.org Acked-by: Minas Harutyunyan Reviewed-by: Matthias Kaehlcke Signed-off-by: Douglas Anderson Signed-off-by: Felipe Balbi commit 2b55d83e9a8ca36ab9e108dab52902a67f573f6f Author: George G. Davis Date: Wed Jun 5 16:30:09 2019 -0400 ARM64: trivial: s/TIF_SECOMP/TIF_SECCOMP/ comment typo fix Fix a s/TIF_SECOMP/TIF_SECCOMP/ comment typo Cc: Jiri Kosina Reviewed-by: Kees Cook Signed-off-by: Will Deacon commit 6d10dc617b4128c06fc2a88b47fda0a183ffe36c Author: Dan Carpenter Date: Fri May 3 15:25:25 2019 +0300 drm/komeda: Potential error pointer dereference We need to check whether drm_atomic_get_crtc_state() returns an error pointer before dereferencing "crtc_st". Fixes: 9e5603094176 ("drm/komeda: Add komeda_plane/plane_helper_funcs") Signed-off-by: Dan Carpenter Reviewed-by: "james qian wang (Arm Technology China)" Signed-off-by: Liviu Dudau commit 7cb8bec205258601af2810f4f1998a207340e73c Author: YueHaibing Date: Sat Apr 27 00:42:02 2019 +0800 drm/komeda: remove set but not used variable 'kcrtc' Fixes gcc '-Wunused-but-set-variable' warning: drivers/gpu/drm/arm/display/komeda/komeda_plane.c: In function komeda_plane_atomic_check: drivers/gpu/drm/arm/display/komeda/komeda_plane.c:49:22: warning: variable kcrtc set but not used [-Wunused-but-set-variable] It is never used since introduction in commit 9e5603094176 ("drm/komeda: Add komeda_plane/plane_helper_funcs") Signed-off-by: YueHaibing Reviewed-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit e35faeb64146f2015f2aec14b358ae508e4066db Author: Kan Liang Date: Mon Jun 3 06:41:20 2019 -0700 x86/CPU: Add more Icelake model numbers Add the CPUID model numbers of Icelake (ICL) desktop and server processors to the Intel family list. [ Qiuxu: Sort the macros by model number. ] Signed-off-by: Kan Liang Signed-off-by: Borislav Petkov Cc: "H. Peter Anvin" Cc: Andy Shevchenko Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Qiuxu Zhuo Cc: Rajneesh Bhardwaj Cc: rui.zhang@intel.com Cc: Thomas Gleixner Cc: Tony Luck Cc: x86-ml Link: https://lkml.kernel.org/r/20190603134122.13853-1-kan.liang@linux.intel.com commit dbd9f78ed23746e9708f773224eec2c8b33206e7 Merge: 75cb3776fdff 283f1e383e91 Author: Dave Airlie Date: Thu Jun 6 11:56:00 2019 +1000 Merge tag 'drm-misc-fixes-2019-06-05' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes - Allow fb changes in async commits (fixes igt failures) (Helen) - Actually unmap the scatterlist when unmapping udmabuf (Lucas) Cc: Lucas Stach Cc: Helen Koike Signed-off-by: Dave Airlie From: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190605210335.GA35431@art_vandelay commit 75cb3776fdffa94b424406aeb0efb76b122990f5 Merge: 351212f69dc6 192905989302 Author: Dave Airlie Date: Thu Jun 6 11:53:13 2019 +1000 Merge branch 'drm-fixes-5.2' of git://people.freedesktop.org/~agd5f/linux into drm-fixes - A fix to make VCE resume more reliable - Updates for new raven variants Signed-off-by: Dave Airlie From: Alex Deucher Link: https://patchwork.freedesktop.org/patch/msgid/20190605182332.4073-1-alexander.deucher@amd.com commit 351212f69dc6be69228567d0e954a7e97d0e4e04 Merge: f2c7c76c5d0a afb286bcae85 Author: Dave Airlie Date: Thu Jun 6 11:46:08 2019 +1000 Merge tag 'drm-intel-fixes-2019-06-03' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes - Add missing Icelake W/A to disable GPU hang on cache ECC error - GVT a fix for recently seen arbitrary DMA map fault and more enforcement fixes. Signed-off-by: Dave Airlie From: Joonas Lahtinen Link: https://patchwork.freedesktop.org/patch/msgid/20190603132928.GA4866@jlahtine-desk.ger.corp.intel.com commit 4a60570dce658e3f8885bbcf852430b99f65aca5 Author: Robert Hancock Date: Wed Jun 5 13:49:00 2019 -0600 hwmon: (pmbus/core) Treat parameters as paged if on multiple pages Some chips have attributes which exist on more than one page but the attribute is not presently marked as paged. This causes the attributes to be generated with the same label, which makes it impossible for userspace to tell them apart. Marking all such attributes as paged would result in the page suffix being added regardless of whether they were present on more than one page or not, which might break existing setups. Therefore, we add a second check which treats the attribute as paged, even if not marked as such, if it is present on multiple pages. Fixes: b4ce237b7f7d ("hwmon: (pmbus) Introduce infrastructure to detect sensors and limit registers") Signed-off-by: Robert Hancock Signed-off-by: Guenter Roeck commit 38463721ec3c39acdabed3a89016ce6bb32a7543 Author: Adamski, Krzysztof (Nokia - PL/Wroclaw) Date: Wed May 29 14:33:52 2019 +0000 hwmon: (pmbus/core) mutex_lock write in pmbus_set_samples update_lock is a mutex intended to protect write operations. It was not taken, however, when _pmbus_write_word_data is called from pmbus_set_samples() function which may cause problems especially when some PMBUS_VIRT_* operation is implemented as a read-modify-write cycle. This patch makes sure the lock is held during the operation. Fixes: 49c4455dccf2 ("hwmon: (pmbus) Introduce PMBUS_VIRT_*_SAMPLES registers") Signed-off-by: Krzysztof Adamski Reviewed-by: Alexander Sverdlin [groeck: Declared and initialized missing 'data' variable] Signed-off-by: Guenter Roeck commit c41dd48e21fae3e55b3670ccf2eb562fc1f6a67d Author: Eduardo Valentin Date: Wed May 29 19:56:04 2019 -0700 hwmon: (core) add thermal sensors only if dev->of_node is present Drivers may register to hwmon and request for also registering with the thermal subsystem (HWMON_C_REGISTER_TZ). However, some of these driver, e.g. marvell phy, may be probed from Device Tree or being dynamically allocated, and in the later case, it will not have a dev->of_node entry. Registering with hwmon without the dev->of_node may result in different outcomes depending on the device tree, which may be a bit misleading. If the device tree blob has no 'thermal-zones' node, the *hwmon_device_register*() family functions are going to gracefully succeed, because of-thermal, *thermal_zone_of_sensor_register() return -ENODEV in this case, and the hwmon error path handles this error code as success to cover for the case where CONFIG_THERMAL_OF is not set. However, if the device tree blob has the 'thermal-zones' entry, the *hwmon_device_register*() will always fail on callers with no dev->of_node, propagating -EINVAL. If dev->of_node is not present, calling of-thermal does not make sense. For this reason, this patch checks first if the device has a of_node before going over the process of registering with the thermal subsystem of-thermal interface. And in this case, when a caller of *hwmon_device_register*() with HWMON_C_REGISTER_TZ and no dev->of_node will still register with hwmon, but not with the thermal subsystem. If all the hwmon part bits are in place, the registration will succeed. Fixes: d560168b5d0f ("hwmon: (core) New hwmon registration API") Cc: Jean Delvare Cc: Guenter Roeck Cc: linux-hwmon@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Eduardo Valentin Signed-off-by: Guenter Roeck commit 4970b42d5c362bf873982db7d93245c5281e58f4 Author: Hangbin Liu Date: Wed Jun 5 12:27:14 2019 +0800 Revert "fib_rules: return 0 directly if an exactly same rule exists when NLM_F_EXCL not supplied" This reverts commit e9919a24d3022f72bcadc407e73a6ef17093a849. Nathan reported the new behaviour breaks Android, as Android just add new rules and delete old ones. If we return 0 without adding dup rules, Android will remove the new added rules and causing system to soft-reboot. Fixes: e9919a24d302 ("fib_rules: return 0 directly if an exactly same rule exists when NLM_F_EXCL not supplied") Reported-by: Nathan Chancellor Reported-by: Yaro Slav Reported-by: Maciej Żenczykowski Signed-off-by: Hangbin Liu Reviewed-by: Nathan Chancellor Tested-by: Nathan Chancellor Signed-off-by: David S. Miller commit 930b9a0543385d4eb8ef887e88cf84d95a844577 Author: Nikita Danilov Date: Tue Jun 4 13:23:49 2019 +0000 net: aquantia: fix wol configuration not applied sometimes WoL magic packet configuration sometimes does not work due to couple of leakages found. Mainly there was a regression introduced during readx_poll refactoring. Next, fw request waiting time was too small. Sometimes that caused sleep proxy config function to return with an error and to skip WoL configuration. At last, WoL data were passed to FW from not clean buffer. That could cause FW to accept garbage as a random configuration data. Fixes: 6a7f2277313b ("net: aquantia: replace AQ_HW_WAIT_FOR with readx_poll_timeout_atomic") Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit 0ee4e76937d69128a6a66861ba393ebdc2ffc8a2 Author: Vivien Didelot Date: Mon Jun 3 16:57:13 2019 -0400 ethtool: fix potential userspace buffer overflow ethtool_get_regs() allocates a buffer of size ops->get_regs_len(), and pass it to the kernel driver via ops->get_regs() for filling. There is no restriction about what the kernel drivers can or cannot do with the open ethtool_regs structure. They usually set regs->version and ignore regs->len or set it to the same size as ops->get_regs_len(). But if userspace allocates a smaller buffer for the registers dump, we would cause a userspace buffer overflow in the final copy_to_user() call, which uses the regs.len value potentially reset by the driver. To fix this, make this case obvious and store regs.len before calling ops->get_regs(), to only copy as much data as requested by userspace, up to the value returned by ops->get_regs_len(). While at it, remove the redundant check for non-null regbuf. Signed-off-by: Vivien Didelot Reviewed-by: Michal Kubecek Signed-off-by: David S. Miller commit 0a8dd9f67cd0da7dc284f48b032ce00db1a68791 Author: Neil Horman Date: Mon Jun 3 16:32:59 2019 -0400 Fix memory leak in sctp_process_init syzbot found the following leak in sctp_process_init BUG: memory leak unreferenced object 0xffff88810ef68400 (size 1024): comm "syz-executor273", pid 7046, jiffies 4294945598 (age 28.770s) hex dump (first 32 bytes): 1d de 28 8d de 0b 1b e3 b5 c2 f9 68 fd 1a 97 25 ..(........h...% 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [<00000000a02cebbd>] kmemleak_alloc_recursive include/linux/kmemleak.h:55 [inline] [<00000000a02cebbd>] slab_post_alloc_hook mm/slab.h:439 [inline] [<00000000a02cebbd>] slab_alloc mm/slab.c:3326 [inline] [<00000000a02cebbd>] __do_kmalloc mm/slab.c:3658 [inline] [<00000000a02cebbd>] __kmalloc_track_caller+0x15d/0x2c0 mm/slab.c:3675 [<000000009e6245e6>] kmemdup+0x27/0x60 mm/util.c:119 [<00000000dfdc5d2d>] kmemdup include/linux/string.h:432 [inline] [<00000000dfdc5d2d>] sctp_process_init+0xa7e/0xc20 net/sctp/sm_make_chunk.c:2437 [<00000000b58b62f8>] sctp_cmd_process_init net/sctp/sm_sideeffect.c:682 [inline] [<00000000b58b62f8>] sctp_cmd_interpreter net/sctp/sm_sideeffect.c:1384 [inline] [<00000000b58b62f8>] sctp_side_effects net/sctp/sm_sideeffect.c:1194 [inline] [<00000000b58b62f8>] sctp_do_sm+0xbdc/0x1d60 net/sctp/sm_sideeffect.c:1165 [<0000000044e11f96>] sctp_assoc_bh_rcv+0x13c/0x200 net/sctp/associola.c:1074 [<00000000ec43804d>] sctp_inq_push+0x7f/0xb0 net/sctp/inqueue.c:95 [<00000000726aa954>] sctp_backlog_rcv+0x5e/0x2a0 net/sctp/input.c:354 [<00000000d9e249a8>] sk_backlog_rcv include/net/sock.h:950 [inline] [<00000000d9e249a8>] __release_sock+0xab/0x110 net/core/sock.c:2418 [<00000000acae44fa>] release_sock+0x37/0xd0 net/core/sock.c:2934 [<00000000963cc9ae>] sctp_sendmsg+0x2c0/0x990 net/sctp/socket.c:2122 [<00000000a7fc7565>] inet_sendmsg+0x64/0x120 net/ipv4/af_inet.c:802 [<00000000b732cbd3>] sock_sendmsg_nosec net/socket.c:652 [inline] [<00000000b732cbd3>] sock_sendmsg+0x54/0x70 net/socket.c:671 [<00000000274c57ab>] ___sys_sendmsg+0x393/0x3c0 net/socket.c:2292 [<000000008252aedb>] __sys_sendmsg+0x80/0xf0 net/socket.c:2330 [<00000000f7bf23d1>] __do_sys_sendmsg net/socket.c:2339 [inline] [<00000000f7bf23d1>] __se_sys_sendmsg net/socket.c:2337 [inline] [<00000000f7bf23d1>] __x64_sys_sendmsg+0x23/0x30 net/socket.c:2337 [<00000000a8b4131f>] do_syscall_64+0x76/0x1a0 arch/x86/entry/common.c:3 The problem was that the peer.cookie value points to an skb allocated area on the first pass through this function, at which point it is overwritten with a heap allocated value, but in certain cases, where a COOKIE_ECHO chunk is included in the packet, a second pass through sctp_process_init is made, where the cookie value is re-allocated, leaking the first allocation. Fix is to always allocate the cookie value, and free it when we are done using it. Signed-off-by: Neil Horman Reported-by: syzbot+f7e9153b037eac9b1df8@syzkaller.appspotmail.com CC: Marcelo Ricardo Leitner CC: "David S. Miller" CC: netdev@vger.kernel.org Acked-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller commit b50e058746ba29f517e27299447831ab3d93f896 Author: Zhu Yanjun Date: Mon Jun 3 08:48:19 2019 -0400 net: rds: fix memory leak when unload rds_rdma When KASAN is enabled, after several rds connections are created, then "rmmod rds_rdma" is run. The following will appear. " BUG rds_ib_incoming (Not tainted): Objects remaining in rds_ib_incoming on __kmem_cache_shutdown() Call Trace: dump_stack+0x71/0xab slab_err+0xad/0xd0 __kmem_cache_shutdown+0x17d/0x370 shutdown_cache+0x17/0x130 kmem_cache_destroy+0x1df/0x210 rds_ib_recv_exit+0x11/0x20 [rds_rdma] rds_ib_exit+0x7a/0x90 [rds_rdma] __x64_sys_delete_module+0x224/0x2c0 ? __ia32_sys_delete_module+0x2c0/0x2c0 do_syscall_64+0x73/0x190 entry_SYSCALL_64_after_hwframe+0x44/0xa9 " This is rds connection memory leak. The root cause is: When "rmmod rds_rdma" is run, rds_ib_remove_one will call rds_ib_dev_shutdown to drop the rds connections. rds_ib_dev_shutdown will call rds_conn_drop to drop rds connections as below. " rds_conn_path_drop(&conn->c_path[0], false); " In the above, destroy is set to false. void rds_conn_path_drop(struct rds_conn_path *cp, bool destroy) { atomic_set(&cp->cp_state, RDS_CONN_ERROR); rcu_read_lock(); if (!destroy && rds_destroy_pending(cp->cp_conn)) { rcu_read_unlock(); return; } queue_work(rds_wq, &cp->cp_down_w); rcu_read_unlock(); } In the above function, destroy is set to false. rds_destroy_pending is called. This does not move rds connections to ib_nodev_conns. So destroy is set to true to move rds connections to ib_nodev_conns. In rds_ib_unregister_client, flush_workqueue is called to make rds_wq finsh shutdown rds connections. The function rds_ib_destroy_nodev_conns is called to shutdown rds connections finally. Then rds_ib_recv_exit is called to destroy slab. void rds_ib_recv_exit(void) { kmem_cache_destroy(rds_ib_incoming_slab); kmem_cache_destroy(rds_ib_frag_slab); } The above slab memory leak will not occur again. >From tests, 256 rds connections [root@ca-dev14 ~]# time rmmod rds_rdma real 0m16.522s user 0m0.000s sys 0m8.152s 512 rds connections [root@ca-dev14 ~]# time rmmod rds_rdma real 0m32.054s user 0m0.000s sys 0m15.568s To rmmod rds_rdma with 256 rds connections, about 16 seconds are needed. And with 512 rds connections, about 32 seconds are needed. >From ftrace, when one rds connection is destroyed, " 19) | rds_conn_destroy [rds]() { 19) 7.782 us | rds_conn_path_drop [rds](); 15) | rds_shutdown_worker [rds]() { 15) | rds_conn_shutdown [rds]() { 15) 1.651 us | rds_send_path_reset [rds](); 15) 7.195 us | } 15) + 11.434 us | } 19) 2.285 us | rds_cong_remove_conn [rds](); 19) * 24062.76 us | } " So if many rds connections will be destroyed, this function rds_ib_destroy_nodev_conns uses most of time. Suggested-by: Håkon Bugge Signed-off-by: Zhu Yanjun Signed-off-by: David S. Miller commit b7999b07726c16974ba9ca3bb9fe98ecbec5f81c Author: Xin Long Date: Sun Jun 2 19:10:46 2019 +0800 ipv6: fix the check before getting the cookie in rt6_get_cookie In Jianlin's testing, netperf was broken with 'Connection reset by peer', as the cookie check failed in rt6_check() and ip6_dst_check() always returned NULL. It's caused by Commit 93531c674315 ("net/ipv6: separate handling of FIB entries from dst based routes"), where the cookie can be got only when 'c1'(see below) for setting dst_cookie whereas rt6_check() is called when !'c1' for checking dst_cookie, as we can see in ip6_dst_check(). Since in ip6_dst_check() both rt6_dst_from_check() (c1) and rt6_check() (!c1) will check the 'from' cookie, this patch is to remove the c1 check in rt6_get_cookie(), so that the dst_cookie can always be set properly. c1: (rt->rt6i_flags & RTF_PCPU || unlikely(!list_empty(&rt->rt6i_uncached))) Fixes: 93531c674315 ("net/ipv6: separate handling of FIB entries from dst based routes") Reported-by: Jianlin Shi Signed-off-by: Xin Long Signed-off-by: David S. Miller commit 0a90478b93a46bdcd56ba33c37566a993e455d54 Author: Xin Long Date: Sun Jun 2 19:10:24 2019 +0800 ipv4: not do cache for local delivery if bc_forwarding is enabled With the topo: h1 ---| rp1 | | route rp3 |--- h3 (192.168.200.1) h2 ---| rp2 | If rp1 bc_forwarding is set while rp2 bc_forwarding is not, after doing "ping 192.168.200.255" on h1, then ping 192.168.200.255 on h2, and the packets can still be forwared. This issue was caused by the input route cache. It should only do the cache for either bc forwarding or local delivery. Otherwise, local delivery can use the route cache for bc forwarding of other interfaces. This patch is to fix it by not doing cache for local delivery if all.bc_forwarding is enabled. Note that we don't fix it by checking route cache local flag after rt_cache_valid() in "local_input:" and "ip_mkroute_input", as the common route code shouldn't be touched for bc_forwarding. Fixes: 5cbf777cfdf6 ("route: add support for directed broadcast forwarding") Reported-by: Jianlin Shi Signed-off-by: Xin Long Signed-off-by: David S. Miller commit e2e88325f4bcaea51f454723971f7b5ee0e1aa80 Author: Shuah Khan Date: Wed Jun 5 15:16:00 2019 -0600 selftests: vm: Fix test build failure when built by itself vm test build fails when test is built by itself using make -C tools/testing/selftests/vm or cd tools/testing/selftests/vm; make When the test is built invoking its Makefile directly, it defines OUTPUT which conflicts with lib.mk's logic to install headers. make --no-builtin-rules INSTALL_HDR_PATH=$OUTPUT/usr \ ARCH=x86 -C ../../../.. headers_install make[1]: Entering directory '/mnt/data/lkml/linux_5.2' REMOVE shmparam.h rm: cannot remove '/usr/include/asm-generic/shmparam.h': Permission denied scripts/Makefile.headersinst:96: recipe for target '/usr/include/asm-generic/.install' failed make[3]: *** [/usr/include/asm-generic/.install] Error 1 scripts/Makefile.headersinst:32: recipe for target 'asm-generic' failed make[2]: *** [asm-generic] Error 2 Makefile:1199: recipe for target 'headers_install' failed make[1]: *** [headers_install] Error 2 make[1]: Leaving directory '/mnt/data/lkml/linux_5.2' ../lib.mk:52: recipe for target 'khdr' failed make: *** [khdr] Error 2 Fixes: 8ce72dc32578 ("selftests: fix headers_install circular dependency") Signed-off-by: Shuah Khan commit 156c05917e0920ef5643eb54c0ea71aae5d60c3d Merge: db309f2aedb8 bc2cce3f2ebc Author: Linus Torvalds Date: Wed Jun 5 13:09:55 2019 -0700 Merge tag 'linux-kselftest-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest Pull Kselftest fixes from Shuah Khan: - fixes to cgroup tests (Alex Shi) - fix to userfaultfd compiler warning (Alakesh Haloi) - fix to vm install to include test script to run the test (Naresh Kamboju) * tag 'linux-kselftest-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: selftests: vm: install test_vmalloc.sh for run_vmtests userfaultfd: selftest: fix compiler warning kselftest/cgroup: fix incorrect test_core skip kselftest/cgroup: fix unexpected testing failure on test_core kselftest/cgroup: fix unexpected testing failure on test_memcontrol commit 1884c066579a7a274dd981a4d9639ca63db66a23 Author: Krzesimir Nowak Date: Wed Jun 5 21:17:06 2019 +0200 tools: bpftool: Fix JSON output when lookup fails In commit 9a5ab8bf1d6d ("tools: bpftool: turn err() and info() macros into functions") one case of error reporting was special cased, so it could report a lookup error for a specific key when dumping the map element. What the code forgot to do is to wrap the key and value keys into a JSON object, so an example output of pretty JSON dump of a sockhash map (which does not support looking up its values) is: [ "key": ["0x0a","0x41","0x00","0x02","0x1f","0x78","0x00","0x00" ], "value": { "error": "Operation not supported" }, "key": ["0x0a","0x41","0x00","0x02","0x1f","0x78","0x00","0x01" ], "value": { "error": "Operation not supported" } ] Note the key-value pairs inside the toplevel array. They should be wrapped inside a JSON object, otherwise it is an invalid JSON. This commit fixes this, so the output now is: [{ "key": ["0x0a","0x41","0x00","0x02","0x1f","0x78","0x00","0x00" ], "value": { "error": "Operation not supported" } },{ "key": ["0x0a","0x41","0x00","0x02","0x1f","0x78","0x00","0x01" ], "value": { "error": "Operation not supported" } } ] Fixes: 9a5ab8bf1d6d ("tools: bpftool: turn err() and info() macros into functions") Cc: Quentin Monnet Signed-off-by: Krzesimir Nowak Acked-by: Andrii Nakryiko Signed-off-by: Daniel Borkmann commit db309f2aedb88a938e37a6eac02be7a7e0e850b1 Merge: 47358b647550 1fcd0eb356ad Author: Linus Torvalds Date: Wed Jun 5 13:03:36 2019 -0700 Merge tag 'pidfd-fixes-v5.2-rc4' of gitolite.kernel.org:pub/scm/linux/kernel/git/brauner/linux Pull pidfd fixes from Christian Brauner: "The contains two small patches to the pidfd samples and test binaries respectively. They were lacking appropriate ifdefines for __NR_pidfd_send_signal and could hence lead to compilation errors when that was not defined. This was spotted on mips independently by Guenter Roeck (who was kind enough to send a fix for the samples binary) and Arnd who spotted it in linux-next. Apart from these two patches, there's also a patch to update the comments for the pidfd_send_signal() syscall which were slightly wrong/inconsistenly worded" * tag 'pidfd-fixes-v5.2-rc4' of gitolite.kernel.org:pub/scm/linux/kernel/git/brauner/linux: tests: fix pidfd-test compilation signal: improve comments samples: fix pidfd-metadata compilation commit 47358b647550d99d68b0d6c546355ea96e010efa Merge: 788a024921c4 8880fa32c557 Author: Linus Torvalds Date: Wed Jun 5 12:42:26 2019 -0700 Merge tag 'pstore-v5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux Pull pstore fixes from Kees Cook: - Avoid NULL deref when unloading/reloading ramoops module (Pi-Hsun Shih) - Run ramoops without crash dump region * tag 'pstore-v5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: pstore/ram: Run without kernel crash dump region pstore: Set tfm to NULL on free_buf_for_compression commit cf1db7fc8c2d31222701bd5c01b9cbaf89d8e7ce Author: Christoph Hellwig Date: Wed Jun 5 21:08:27 2019 +0200 mmc: also set max_segment_size in the device If we only set the max_segment_size on the queue an IOMMU merge might create bigger segments again, so limit the IOMMU merges as well. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit bb6f59af309c69643b6b07d9372c01a1cc0792e7 Author: Christoph Hellwig Date: Wed Jun 5 21:08:26 2019 +0200 mtip32xx: also set max_segment_size in the device If we only set the max_segment_size on the queue an IOMMU merge might create bigger segments again, so limit the IOMMU merges as well. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit 84f3fc7aec42cefba34839d541d8bf8a3087e123 Author: Christoph Hellwig Date: Wed Jun 5 21:08:25 2019 +0200 rsxx: don't call dma_set_max_seg_size This driver does never uses dma_map_sg, so the setting is rather pointless. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit a48bc520011ea7a701826a9e3a770b128f283328 Author: Christoph Hellwig Date: Wed Jun 5 21:08:24 2019 +0200 nvme-pci: don't limit DMA segement size NVMe uses PRPs (or optionally unlimited SGLs) for data transfers and has no specific limit for a single DMA segement. Limiting the size will cause problems because the block layer assumes PRP-ish devices using a virt boundary mask don't have a segment limit. And while this is true, we also really need to tell the DMA mapping layer about it, otherwise dma-debug will trip over it. Signed-off-by: Christoph Hellwig Reported-by: Sebastian Ott Signed-off-by: Jens Axboe commit e7a9fe7b0df74fa95d18e59e0f5430817cd40837 Merge: fdf71426e7c5 bd966839bdf9 Author: David S. Miller Date: Wed Jun 5 11:48:57 2019 -0700 Merge branch 's390-qeth-fixes' Julian Wiedmann says: ==================== s390/qeth: fixes 2019-06-05 one more shot... now with patch 2 fixed up so that it uses the dst entry returned from dst_check(). From the v1 cover letter: Please apply the following set of qeth fixes to -net. - The first two patches fix issues in the L3 driver's cast type selection for transmitted skbs. - Alexandra adds a sanity check when retrieving VLAN information from neighbour address events. - The last patch adds some missing error handling for qeth's new multiqueue code. ==================== Signed-off-by: David S. Miller commit bd966839bdf9165ee0aefa57132e87e9caf55982 Author: Julian Wiedmann Date: Wed Jun 5 13:48:51 2019 +0200 s390/qeth: handle error when updating TX queue count netif_set_real_num_tx_queues() can return an error, deal with it. Fixes: 73dc2daf110f ("s390/qeth: add TX multiqueue support for OSA devices") Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 335726195e460cb6b3f795b695bfd31f0ea70ef0 Author: Alexandra Winter Date: Wed Jun 5 13:48:50 2019 +0200 s390/qeth: fix VLAN attribute in bridge_hostnotify udev event Enabling sysfs attribute bridge_hostnotify triggers a series of udev events for the MAC addresses of all currently connected peers. In case no VLAN is set for a peer, the device reports the corresponding MAC addresses with VLAN ID 4096. This currently results in attribute VLAN=4096 for all non-VLAN interfaces in the initial series of events after host-notify is enabled. Instead, no VLAN attribute should be reported in the udev event for non-VLAN interfaces. Only the initial events face this issue. For dynamic changes that are reported later, the device uses a validity flag. This also changes the code so that it now sets the VLAN attribute for MAC addresses with VID 0. On Linux, no qeth interface will ever be registered with VID 0: Linux kernel registers VID 0 on all network interfaces initially, but qeth will drop .ndo_vlan_rx_add_vid for VID 0. Peers with other OSs could register MACs with VID 0. Fixes: 9f48b9db9a22 ("qeth: bridgeport support - address notifications") Signed-off-by: Alexandra Winter Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 0cd6783d3c7d40be165d1f3c811cedf0e3dfcdf1 Author: Julian Wiedmann Date: Wed Jun 5 13:48:49 2019 +0200 s390/qeth: check dst entry before use While qeth_l3 uses netif_keep_dst() to hold onto the dst, a skb's dst may still have been obsoleted (via dst_dev_put()) by the time that we end up using it. The dst then points to the loopback interface, which means the neighbour lookup in qeth_l3_get_cast_type() determines a bogus cast type of RTN_BROADCAST. For IQD interfaces this causes us to place such skbs on the wrong HW queue, resulting in TX errors. Fix-up the various call sites to first validate the dst entry with dst_check(), and fall back accordingly. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 72c87976c5abbf8a834ad85f10d03c0cd58b985c Author: Julian Wiedmann Date: Wed Jun 5 13:48:48 2019 +0200 s390/qeth: handle limited IPv4 broadcast in L3 TX path When selecting the cast type of a neighbourless IPv4 skb (eg. on a raw socket), qeth_l3 falls back to the packet's destination IP address. For this case we should classify traffic sent to 255.255.255.255 as broadcast. This fixes DHCP requests, which were misclassified as unicast (and for IQD interfaces thus ended up on the wrong HW queue). Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 7b2f936fc8282ab56d4d21247f2f9c21607c085c Author: Yan, Zheng Date: Mon May 20 09:50:09 2019 +0800 ceph: fix error handling in ceph_get_caps() The function return 0 even when interrupted or try_get_cap_refs() return error. Fixes: 1199d7da2d ("ceph: simplify arguments and return semantics of try_get_cap_refs") Signed-off-by: "Yan, Zheng" Reviewed-by: Jeff Layton Signed-off-by: Ilya Dryomov commit 3e1d0452edceebb903d23db53201013c940bf000 Author: Yan, Zheng Date: Sat May 18 20:39:55 2019 +0800 ceph: avoid iput_final() while holding mutex or in dispatch thread iput_final() may wait for reahahead pages. The wait can cause deadlock. For example: Workqueue: ceph-msgr ceph_con_workfn [libceph] Call Trace: schedule+0x36/0x80 io_schedule+0x16/0x40 __lock_page+0x101/0x140 truncate_inode_pages_range+0x556/0x9f0 truncate_inode_pages_final+0x4d/0x60 evict+0x182/0x1a0 iput+0x1d2/0x220 iterate_session_caps+0x82/0x230 [ceph] dispatch+0x678/0xa80 [ceph] ceph_con_workfn+0x95b/0x1560 [libceph] process_one_work+0x14d/0x410 worker_thread+0x4b/0x460 kthread+0x105/0x140 ret_from_fork+0x22/0x40 Workqueue: ceph-msgr ceph_con_workfn [libceph] Call Trace: __schedule+0x3d6/0x8b0 schedule+0x36/0x80 schedule_preempt_disabled+0xe/0x10 mutex_lock+0x2f/0x40 ceph_check_caps+0x505/0xa80 [ceph] ceph_put_wrbuffer_cap_refs+0x1e5/0x2c0 [ceph] writepages_finish+0x2d3/0x410 [ceph] __complete_request+0x26/0x60 [libceph] handle_reply+0x6c8/0xa10 [libceph] dispatch+0x29a/0xbb0 [libceph] ceph_con_workfn+0x95b/0x1560 [libceph] process_one_work+0x14d/0x410 worker_thread+0x4b/0x460 kthread+0x105/0x140 ret_from_fork+0x22/0x40 In above example, truncate_inode_pages_range() waits for readahead pages while holding s_mutex. ceph_check_caps() waits for s_mutex and blocks OSD dispatch thread. Later OSD replies (for readahead) can't be handled. ceph_check_caps() also may lock snap_rwsem for read. So similar deadlock can happen if iput_final() is called while holding snap_rwsem. In general, it's not good to call iput_final() inside MDS/OSD dispatch threads or while holding any mutex. The fix is introducing ceph_async_iput(), which calls iput_final() in workqueue. Signed-off-by: "Yan, Zheng" Reviewed-by: Jeff Layton Signed-off-by: Ilya Dryomov commit 1cf89a8dee5e6e9d4fcb81b571a54d40068dfbb7 Author: Yan, Zheng Date: Sat May 18 11:18:44 2019 +0800 ceph: single workqueue for inode related works We have three workqueue for inode works. Later patch will introduce one more work for inode. It's not good to introcuce more workqueue and add more 'struct work_struct' to 'struct ceph_inode_info'. Signed-off-by: "Yan, Zheng" Reviewed-by: Jeff Layton Signed-off-by: Ilya Dryomov commit cee0c33c546a93957a52ae9ab6bebadbee765ec5 Author: Tejun Heo Date: Wed Jun 5 09:54:34 2019 -0700 cgroup: css_task_iter_skip()'d iterators must be advanced before accessed b636fd38dc40 ("cgroup: Implement css_task_iter_skip()") introduced css_task_iter_skip() which is used to fix task iterations skipping dying threadgroup leaders with live threads. Skipping is implemented as a subportion of full advancing but css_task_iter_next() forgot to fully advance a skipped iterator before determining the next task to visit causing it to return invalid task pointers. Fix it by making css_task_iter_next() fully advance the iterator if it has been skipped since the previous iteration. Signed-off-by: Tejun Heo Reported-by: syzbot Link: http://lkml.kernel.org/r/00000000000097025d058a7fd785@google.com Fixes: b636fd38dc40 ("cgroup: Implement css_task_iter_skip()") commit 1929059893022a3bbed43934c7313e66aad7346b Author: Prike Liang Date: Mon May 27 16:05:50 2019 +0800 drm/amd/amdgpu: add RLC firmware to support raven1 refresh Use SMU firmware version to indentify the raven1 refresh device and then load homologous RLC FW. Signed-off-by: Prike Liang Suggested-by: Huang Rui Reviewed-by: Huang Rui Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit 1019fe047a483ecfdc82661802e56871f649c46e Author: Chengming Gui Date: Mon May 13 17:41:19 2019 +0800 drm/amd/powerplay: add set_power_profile_mode for raven1_refresh add gfxoff_state_changed_by_workload to control gfxoff when set power_profile_mode Signed-off-by: Chengming Gui Reviewed-by: Huang Rui Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit ce0e22f5d886d1b56c7ab4347c45b9ac5fcc058d Author: Louis Li Date: Sat May 25 06:39:47 2019 +0800 drm/amdgpu: fix ring test failure issue during s3 in vce 3.0 (V2) [What] vce ring test fails consistently during resume in s3 cycle, due to mismatch read & write pointers. On debug/analysis its found that rptr to be compared is not being correctly updated/read, which leads to this failure. Below is the failure signature: [drm:amdgpu_vce_ring_test_ring] *ERROR* amdgpu: ring 12 test failed [drm:amdgpu_device_ip_resume_phase2] *ERROR* resume of IP block failed -110 [drm:amdgpu_device_resume] *ERROR* amdgpu_device_ip_resume failed (-110). [How] fetch rptr appropriately, meaning move its read location further down in the code flow. With this patch applied the s3 failure is no more seen for >5k s3 cycles, which otherwise is pretty consistent. V2: remove reduntant fetch of rptr Signed-off-by: Louis Li Reviewed-by: Christian König Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org commit d925da5c7b09a27b7b775647925207a383f6524e Author: Thomas Gleixner Date: Sat Jun 1 10:09:04 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 450 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published bythe free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 5 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190116.345887520@linutronix.de Signed-off-by: Greg Kroah-Hartman commit acc15900ee9d70902ae28b6d7df71f5470dda1b2 Author: Thomas Gleixner Date: Sat Jun 1 10:09:03 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 449 Based on 1 normalized pattern(s): this file is licensed under the terms of the gnu general public license version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190116.254216506@linutronix.de Signed-off-by: Greg Kroah-Hartman commit c637ffb5180c9057642685707cea727cfe95d14a Author: Thomas Gleixner Date: Sat Jun 1 10:09:02 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 448 Based on 1 normalized pattern(s): this program is free software you may redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 of the license extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190116.162794791@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 3c910ecbdda4227abd145967774f92b1a3341493 Author: Thomas Gleixner Date: Sat Jun 1 10:09:00 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 446 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 30 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190115.962665879@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 04dc82e1160ebd9ef0de90874cce1b5a0554deaa Author: Thomas Gleixner Date: Sat Jun 1 10:08:59 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 445 Based on 1 normalized pattern(s): this program is free software you can distribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 24 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190115.872212424@linutronix.de Signed-off-by: Greg Kroah-Hartman commit eeac88ac304a72dc87d43ffa2b38fd7ef91e231c Author: Thomas Gleixner Date: Sat Jun 1 10:08:58 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 444 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms and conditions of the gnu general public license version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190115.780600873@linutronix.de Signed-off-by: Greg Kroah-Hartman commit e559355a9da60a2388893d9e9da66c79fd604b9a Author: Thomas Gleixner Date: Sat Jun 1 10:08:57 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 443 Based on 1 normalized pattern(s): this program is free software and is provided to you under the terms of the gnu general public license version 2 as published by the free software foundation and any use by you of this program is subject to the terms of such gnu licence extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 13 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190115.691558990@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 27ba4deb4e26cc23d97f558df8c2968bc4a18aae Author: Thomas Gleixner Date: Sat Jun 1 10:08:56 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 442 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundations version 2 only this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability of fitness for a particupar purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 675 mass ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190115.600052164@linutronix.de Signed-off-by: Greg Kroah-Hartman commit b886d83c5b621abc84ff9616f14c529be3f6b147 Author: Thomas Gleixner Date: Sat Jun 1 10:08:55 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 of the license extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 315 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190115.503150771@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 3287e96af0d8b964639f15a6bd1724179db5c2c2 Author: Thomas Gleixner Date: Sat Jun 1 10:08:54 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 440 Based on 1 normalized pattern(s): this software is available under the terms of the gnu general public license gpl version 2 available from the file copying in the main directory of this source tree extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 35 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190115.411886531@linutronix.de Signed-off-by: Greg Kroah-Hartman commit acf147074cb2a6725f58ced1185e3eeb3fe3f8b0 Author: Thomas Gleixner Date: Sat Jun 1 10:08:52 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 438 Based on 1 normalized pattern(s): gpl 2 0 applies extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190115.220546219@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 82664963ee5f03b5c604f4c593a5e43f26193610 Author: Thomas Gleixner Date: Sat Jun 1 10:08:51 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 437 Based on 1 normalized pattern(s): this file is licensed under gplv2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 22 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190115.129548190@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 3e45610181bcc2c68d343a62c1d028890160ef79 Author: Thomas Gleixner Date: Sat Jun 1 10:08:50 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 436 Based on 1 normalized pattern(s): distributed under the terms of the gnu gpl version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190115.032570679@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 31e12cb6792c831597f83a986a779b6852b6f4e4 Author: Thomas Gleixner Date: Sat Jun 1 10:08:49 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 435 Based on 1 normalized pattern(s): all code subject to the gpl version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190114.938134445@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 28b665f6b867e1db8470dcfce215725b404e97b5 Author: Thomas Gleixner Date: Sat Jun 1 10:08:48 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 434 Based on 1 normalized pattern(s): under gplv2 only extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190114.847550565@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 1c6bec5b3dbe8bce16ab50967e2c1c55d251d678 Author: Thomas Gleixner Date: Sat Jun 1 10:08:47 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 433 Based on 1 normalized pattern(s): released under the gpl v2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190114.749096322@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 28c61a66abd6925b574adfd48811254bb6a211b2 Author: Thomas Gleixner Date: Sat Jun 1 10:08:46 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 432 Based on 1 normalized pattern(s): this file is gplv2 as found in copying extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 4 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190114.657082701@linutronix.de Signed-off-by: Greg Kroah-Hartman commit bb9b83dfc91aa0a72438d0f53b0bc25a0a9c4951 Author: Thomas Gleixner Date: Sat Jun 1 10:08:45 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 431 Based on 1 normalized pattern(s): as should be obvious for linux kernel code license is gplv2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190114.565827206@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 767a67b0b35520348dc3b28dcba06454b0f9023d Author: Thomas Gleixner Date: Sat Jun 1 10:08:44 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 430 Based on 1 normalized pattern(s): distribute under gplv2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 8 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190114.475576622@linutronix.de Signed-off-by: Greg Kroah-Hartman commit dbf5ebee09fc29636bda72a37d489835911539f1 Author: Thomas Gleixner Date: Sat Jun 1 10:08:43 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 429 Based on 1 normalized pattern(s): this code is licenced under the gplv2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190114.383521217@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 55716d26439f5c4008b0bcb7f17d1f7c0d8fbcfc Author: Thomas Gleixner Date: Sat Jun 1 10:08:42 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 428 Based on 1 normalized pattern(s): this file is released under the gplv2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 68 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190114.292346262@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 1623de843dd23da23e139b03453f2f5822473bfb Author: Thomas Gleixner Date: Sat Jun 1 10:08:41 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 426 Based on 1 normalized pattern(s): this software may be used and distributed according to the terms of the gnu general public license version 2 incorporated herein by reference extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 5 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190114.200440917@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 722d94a3ad0fa4b1030b7b76ea9f8825448e7181 Author: Thomas Gleixner Date: Sat Jun 1 10:08:39 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 424 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license 2 as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190114.019014114@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 9f06080f861ccd67e15228d30177614a49b039dc Author: Thomas Gleixner Date: Sat Jun 1 10:08:38 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 423 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundationr extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 7 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190113.913773588@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 75a6faf617d107bdbc74d36ccf89f2280b96ac26 Author: Thomas Gleixner Date: Sat Jun 1 10:08:37 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 422 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms and conditions of the gnu general public license version 2 as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 101 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190113.822954939@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 579d8b5c8d61462fe44831ce79ee76f1d566b0c4 Author: Thomas Gleixner Date: Sat Jun 1 10:08:36 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 421 Based on 1 normalized pattern(s): this package is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190113.723488978@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 8d36fe1e9e1f8cf4a32ca4941fd3eb8cc472bf47 Author: Thomas Gleixner Date: Sat Jun 1 10:08:35 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 420 Based on 1 normalized pattern(s): this code is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 6 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190113.627158185@linutronix.de Signed-off-by: Greg Kroah-Hartman commit ad1d7d7c106961af43404a44da40369045fc69a2 Author: Thomas Gleixner Date: Sat Jun 1 10:08:34 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 419 Based on 1 normalized pattern(s): this is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 9 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190113.515971893@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 25d5bf4764f9a0855180cd52559186dd16c0c39f Author: Thomas Gleixner Date: Sat Jun 1 10:08:33 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 418 Based on 1 normalized pattern(s): this file is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 9 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190113.419778592@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 8fba24537d31b18a2cd1443a6ab09476aec20bdf Author: Thomas Gleixner Date: Sat Jun 1 10:08:32 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 417 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 of the license as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190113.328655274@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 808cb5dc7be7033a8d8aa1f972bb73aeac58c284 Author: Thomas Gleixner Date: Sat Jun 1 10:08:31 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 416 Based on 1 normalized pattern(s): this driver is free software you can redistribute it and or modify it under the terms of version 2 only of the gnu general public license as published by the free software foundation it is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190113.237458590@linutronix.de Signed-off-by: Greg Kroah-Hartman commit b1fb60d7dff6db82058c2c965d70a2267e81764b Author: Thomas Gleixner Date: Sat Jun 1 10:08:29 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 414 Based on 1 normalized pattern(s): you can redistribute and or modify this program under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190113.054726165@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4d8bc5106988ce98c579d51e4fdbacba37e15185 Author: Thomas Gleixner Date: Sat Jun 1 10:08:27 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 412 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 of the license this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190112.858563475@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 65c85c83788202a6dcd375d1c324dc22304f1d71 Author: Thomas Gleixner Date: Sat Jun 1 10:08:26 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 411 Based on 1 normalized pattern(s): this file is licensed under gplv2 this file is part of the [aic94xx] driver the [aic94xx] driver is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 of the license the [aic94xx] driver is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with the [aic94xx] driver if not write to the free software foundation inc 51 franklin st fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 19 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190112.766909183@linutronix.de Signed-off-by: Greg Kroah-Hartman commit a98c5b1965465052de942cb02e0036b208933004 Author: Thomas Gleixner Date: Sat Jun 1 10:08:25 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 410 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program see the file copying if not write to the free software foundation 675 mass ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190112.675111872@linutronix.de Signed-off-by: Greg Kroah-Hartman commit ce718dfb2c0139b3c9beae94b887fc540e11703a Author: Thomas Gleixner Date: Sat Jun 1 10:08:24 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 409 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license rev 2 and only rev 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190112.583753585@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 0ebc04719c97bada1a2c0e2eb2192877603a2d75 Author: Thomas Gleixner Date: Sat Jun 1 10:08:23 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 408 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license v2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190112.493982682@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 1514e851175616428f8c65261a632d7e677ad756 Author: Thomas Gleixner Date: Sat Jun 1 10:08:22 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 407 Based on 1 normalized pattern(s): this application is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 this application is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190112.401137591@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 0b0191aeda69a3d8fbbde39d10fcc9ff535ffbcd Author: Thomas Gleixner Date: Sat Jun 1 10:08:21 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 406 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 of the license this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190112.312783289@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 921a3d4d311d3b78998d4d8de24b23777cbd0571 Author: Thomas Gleixner Date: Sat Jun 1 10:08:20 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 405 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 021110 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 5 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190112.221098808@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 9c9cf6bee838c077114e6487854c10d1734d8d96 Author: Thomas Gleixner Date: Sat Jun 1 10:08:19 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 404 Based on 1 normalized pattern(s): this driver is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 this driver is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this driver if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 6 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190112.130218438@linutronix.de Signed-off-by: Greg Kroah-Hartman commit b2139ce04f005c8f2cbfd3a51298d4b47693d8db Author: Thomas Gleixner Date: Sat Jun 1 10:08:18 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 403 Based on 1 normalized pattern(s): this software may be redistributed and or modified under the terms of the gnu general public license gpl version 2 as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190112.039124428@linutronix.de Signed-off-by: Greg Kroah-Hartman commit a6377d905913cf3bc855408373ff2022386f586f Author: Thomas Gleixner Date: Sat Jun 1 10:08:17 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 402 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the smems of the gnu general public license as published by the free software foundation version 2 of the license extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 5 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190111.946565886@linutronix.de Signed-off-by: Greg Kroah-Hartman commit dc1a8bc16c50a6f482e83f80d9a609c4e843cf37 Author: Thomas Gleixner Date: Sat Jun 1 10:08:16 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 401 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license v2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531190111.856624369@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 41597408fd9a634a9fb44cb3d692ed74ca187da2 Author: Thomas Gleixner Date: Fri May 31 01:09:58 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 400 Based on 1 normalized pattern(s): this program is free software you can distribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081038.839345787@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 46fe7771647f220451ae20c001072e7a7de36f1a Author: Thomas Gleixner Date: Fri May 31 01:09:57 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 399 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms and conditions of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 33 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081038.745679586@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 7336d0e654f7acc0ecee33a8ae68c4fd1c1c44b5 Author: Thomas Gleixner Date: Fri May 31 01:09:56 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 398 Based on 1 normalized pattern(s): this copyrighted material is made available to anyone wishing to use modify copy or redistribute it subject to the terms and conditions of the gnu general public license version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 44 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081038.653000175@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 9d5a634946f5efd64e4acbcb67c22e63234bc233 Author: Thomas Gleixner Date: Fri May 31 01:09:55 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 397 Based on 1 normalized pattern(s): this program is free software you can distribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin st fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 33 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081038.563233189@linutronix.de Signed-off-by: Greg Kroah-Hartman commit d9df6c32909dbf87e250fec4a72478ab7b56f289 Author: Thomas Gleixner Date: Fri May 31 01:09:54 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 396 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 of the license as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081038.470437358@linutronix.de Signed-off-by: Greg Kroah-Hartman commit d2d19cfa8988a3f5b7c92d137382520ca65ed34f Author: Thomas Gleixner Date: Fri May 31 01:09:53 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 395 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation in version 2 of the license this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081038.380093078@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 90832ef1c035dab7f5f05fcd8660a3dc0fb2afad Author: Thomas Gleixner Date: Fri May 31 01:09:52 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 394 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 of the license only this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081038.287952587@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 5a8e0ff9b3f756759492f5e7ba3c4ae3f5641bfe Author: Thomas Gleixner Date: Fri May 31 01:09:51 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 393 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 of the license not later! this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081038.198919026@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 67d0ae42b8d0c49b887d5ecb880ec0920f4f1bc0 Author: Thomas Gleixner Date: Fri May 31 01:09:50 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 392 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as publicshed by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081038.107748302@linutronix.de Signed-off-by: Greg Kroah-Hartman commit c2e30119fe8876c6593349534e07baedcd5cb512 Author: Thomas Gleixner Date: Fri May 31 01:09:49 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 391 Based on 1 normalized pattern(s): this program file is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 of the license this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program in a file named copying if not write to the free software foundation inc 51 franklin street fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081038.017566012@linutronix.de Signed-off-by: Greg Kroah-Hartman commit c9fd3ce16100d67b99201fbc533b159f01e5300e Author: Thomas Gleixner Date: Fri May 31 01:09:48 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 390 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 and only version 2 as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081037.927746163@linutronix.de Signed-off-by: Greg Kroah-Hartman commit e46bd7099dc628c2b59a9e0f9fe7c94419e4b58f Author: Thomas Gleixner Date: Fri May 31 01:09:47 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 389 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license v2 as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081037.837563564@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 58751759a6f278209bed375908129f14dd0a4915 Author: Thomas Gleixner Date: Fri May 31 01:09:46 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 388 Based on 1 normalized pattern(s): this program is free software you may redistribute and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for complete details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081037.747331493@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 28ad9e6d182ff91a06fdeba8f3e0412589915c36 Author: Thomas Gleixner Date: Fri May 31 01:09:45 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 387 Based on 1 normalized pattern(s): this code is released under the gnu general public license version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081037.657778837@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f097dcba1d4a46a1b3b43a94cf9adafc8f4f859a Author: Thomas Gleixner Date: Fri May 31 01:09:39 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 380 Based on 1 normalized pattern(s): license as part of this driver was derived from the slram c driver it falls under the same license which is gnu general public license v2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081037.083494189@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4317cf95ca02411cf788d10c1972a38582e8c34d Author: Thomas Gleixner Date: Fri May 31 01:09:38 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 378 Based on 1 normalized pattern(s): licensed under the gnu general public license version 2 gplv2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 5 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081036.993848054@linutronix.de Signed-off-by: Greg Kroah-Hartman commit c51669eafb457a071eb1573a723c03b836af5316 Author: Thomas Gleixner Date: Fri May 31 01:09:37 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 377 Based on 1 normalized pattern(s): this file is subject to the terms and conditions of the gnu general public license version 2 see the file copying in the main directory of this archive for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 9 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081036.888539456@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 55766568587b3821877b571608e1465dbe58036e Author: Thomas Gleixner Date: Fri May 31 01:09:36 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 376 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 only as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 4 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081036.798138318@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f797118391ce5142ebbf73358eec213707d0d326 Author: Thomas Gleixner Date: Fri May 31 01:09:35 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 375 Based on 1 normalized pattern(s): released under the terms of the gnu gpl v2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081036.708437866@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 76e692f501a37636d1e889fe11b9f718d34c8f61 Author: Thomas Gleixner Date: Fri May 31 01:09:33 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 373 Based on 1 normalized pattern(s): this program file is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 of the license extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081036.527324761@linutronix.de Signed-off-by: Greg Kroah-Hartman commit a10e763b87134a9a4ca3a38b5c4b533e75ec63a3 Author: Thomas Gleixner Date: Fri May 31 01:09:32 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 372 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 135 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081036.435762997@linutronix.de Signed-off-by: Greg Kroah-Hartman commit b8f9f700961655569d6fd4452f67e79f0be5203a Author: Thomas Gleixner Date: Fri May 31 01:09:31 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 371 Based on 1 normalized pattern(s): this file is distributed under the gnu general public license gpl version 2 june 1991 see the copying file distributed with this software for more info extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081036.343650482@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 63682fb024709935e7eabf184b7ae9976a582cb5 Author: Thomas Gleixner Date: Fri May 31 01:09:30 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 370 Based on 1 normalized pattern(s): this program is distributed under the gnu general public license gpl version 2 june 1991 see the copying file distributed with this software for more info extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081036.252732216@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 003cc6434e3fbdc6dc4753ba64047beb2a06a170 Author: Thomas Gleixner Date: Fri May 31 01:09:28 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 367 Based on 1 normalized pattern(s): licensed under the gpl version 2 see copying for details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081036.055393719@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 52a6e82ac27288f591c750f201de5c3e6ef24385 Author: Thomas Gleixner Date: Fri May 31 01:09:26 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 365 Based on 1 normalized pattern(s): this file is released under the gplv2 see the file copying for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081035.872590698@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 5765e78e84023ced0c719aaea2ef59b9b34f626a Author: Thomas Gleixner Date: Fri May 31 01:09:25 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 364 Based on 1 normalized pattern(s): this source file is released under gpl v2 license no other versions see the copying file included in the main directory of this source distribution for the license terms and conditions extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 28 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081035.780831265@linutronix.de Signed-off-by: Greg Kroah-Hartman commit ddc64d0ac97814fcc42ed90a2ea0c69658806c67 Author: Thomas Gleixner Date: Fri May 31 01:09:24 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 363 Based on 1 normalized pattern(s): released under terms in gpl version 2 see copying extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 5 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081035.689962394@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 754460a47fac50504f6495fad7c7db60daad26ba Author: Thomas Gleixner Date: Fri May 31 01:09:23 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 362 Based on 1 normalized pattern(s): this software may be used and distributed according to the terms of the gnu public license version 2 incorporated herein by reference extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081035.599594316@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4c89e549fe109d677d1fda57add6ff89b1023a67 Author: Thomas Gleixner Date: Fri May 31 01:09:22 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 354 Based on 1 normalized pattern(s): distributable under the terms of the gnu general public license version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081035.495262081@linutronix.de Signed-off-by: Greg Kroah-Hartman commit fc01b568f760ced13430851c82c297de1415aa18 Author: Thomas Gleixner Date: Fri May 31 01:09:21 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 353 Based on 1 normalized pattern(s): licensed under the terms of the gnu general public license version 2 see file copying for details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081035.403801661@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 7876981a65f33e4185fa1b84b160f04bfbb0436b Author: Thomas Gleixner Date: Fri May 31 01:09:20 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 352 Based on 1 normalized pattern(s): this program is free software you can distribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081035.310807637@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 42bd2d91f3f6364341cafa4ac582cbb72431e08d Author: Thomas Gleixner Date: Fri May 31 01:09:19 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 351 Based on 1 normalized pattern(s): this file is subject to the terms and conditions of the gnu general public license version 2 as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190531081035.220801321@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 00b46d22a47b0b6d0dea8b481f389f4830c45d94 Author: Thomas Gleixner Date: Wed May 29 16:58:04 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 350 Based on 1 normalized pattern(s): this program may be used under the terms of version 2 of the gnu general public license extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Alexios Zavras Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000437.975825562@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 1949739ac5f05f8d5ee717f6d8075b9b43360564 Author: Thomas Gleixner Date: Wed May 29 16:58:03 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 349 Based on 1 normalized pattern(s): this driver is released to the public under the terms of the gnu general public license version 2 see the file copying for details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000437.884937603@linutronix.de Signed-off-by: Greg Kroah-Hartman commit b4cda052c2b41704cb4eb3d5a23c35f3727d587d Author: Thomas Gleixner Date: Wed May 29 16:58:02 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 348 Based on 1 normalized pattern(s): release under the terms of the gnu general public license version 2 see the file copying extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Armijn Hemel Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000437.794032501@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 3817d2b8c7a035b10f9d0e480e1abe56905029cf Author: Thomas Gleixner Date: Wed May 29 16:58:01 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 347 Based on 1 normalized pattern(s): your use of this code is subject to the terms and conditions of the gnu general public license version 2 see copying or http www gnu org licenses gpl html extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000437.701946635@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 61790d5bbba7f6c8dd22db6effa6fa984089cbde Author: Thomas Gleixner Date: Wed May 29 16:58:00 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 346 Based on 1 normalized pattern(s): use of this code is subject to the terms and conditions of the gnu general public license version 2 see copying or http www gnu org licenses gpl html extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000437.611918838@linutronix.de Signed-off-by: Greg Kroah-Hartman commit da607e1969ffbf7a1ba06280ade768f4f5fee8c3 Author: Thomas Gleixner Date: Wed May 29 16:57:59 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 345 Based on 1 normalized pattern(s): licensed under the terms of the gnu general public license version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 88 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000437.521539229@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 35e62ae830f950cfb09d2386412e09cc6d0e34b2 Author: Thomas Gleixner Date: Wed May 29 16:57:58 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 344 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the version 2 of the gnu general public license as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 15 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000437.427740574@linutronix.de Signed-off-by: Greg Kroah-Hartman commit b7c320ff088a2aa7d4c11a5819abbad48c6da7c3 Author: Thomas Gleixner Date: Wed May 29 16:57:57 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 343 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of version 2 of the gnu general public license as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Armijn Hemel Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000437.338011816@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 5dfa3c2f105a31446c2db82d5d5051868501df58 Author: Thomas Gleixner Date: Wed May 29 16:57:56 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 342 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 15 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000437.237481593@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 6b1baefec065042ae3abe2b50f449f721ec83d8f Author: Thomas Gleixner Date: Wed May 29 16:57:55 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 341 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 of the license as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 8 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Alexios Zavras Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000437.144869442@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 2b72c9e36c286abc78605e08d2985ee967986b89 Author: Thomas Gleixner Date: Wed May 29 16:57:54 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 340 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 of the license this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 15 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000437.052642892@linutronix.de Signed-off-by: Greg Kroah-Hartman commit eee1cba5edf140fd9b429fd90e282802f024134a Author: Thomas Gleixner Date: Wed May 29 16:57:53 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 339 Based on 1 normalized pattern(s): released under gplv2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000436.946199729@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 6e9ef5098c12b53a4df060c8f1fda83f4112f08a Author: Thomas Gleixner Date: Wed May 29 16:57:52 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 338 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation the full gnu general public license is included in this distribution in the file called copying extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 14 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000436.856338015@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 2b27bdcc20958d644d04f9f12d683e52b37a5427 Author: Thomas Gleixner Date: Wed May 29 16:57:50 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 336 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin st fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 246 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000436.674189849@linutronix.de Signed-off-by: Greg Kroah-Hartman commit a61127c2130236168321cc76c5a58e15c00ad154 Author: Thomas Gleixner Date: Wed May 29 16:57:49 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 335 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms and conditions of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin st fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 111 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000436.567572064@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4b3d69535dd0569e84b9fc374a43ad3eb58ab1fc Author: Thomas Gleixner Date: Wed May 29 16:57:48 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 334 Based on 1 normalized pattern(s): gpl license summary [copyright] [c] [2010] [intel] [corporation] [all] [rights] [reserved] this program is free software you can redistribute it and or modify it under the terms of version 2 of the gnu general public license as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin st fifth floor boston ma 02110 1301 usa the full gnu general public license is included in this distribution in the file called license gpl extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000436.477146092@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4505153954fdb1465d2b178288a9bf646f2a2166 Author: Thomas Gleixner Date: Wed May 29 16:57:47 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 333 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 136 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000436.384967451@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 1d0ea0692ae3f909b22e99af3121bcf3142a5c5f Author: Thomas Gleixner Date: Wed May 29 16:57:46 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 332 Based on 2 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as publishhed by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 48 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000436.292339952@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 36edc93958e06dfc15b61d1cfa7f33929bc26fe4 Author: Thomas Gleixner Date: Wed May 29 16:57:44 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 330 Based on 1 normalized pattern(s): this file is subject to the terms and conditions of version 2 of the gnu general public license see the file copying in the main directory of this archive for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 55 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000436.108941081@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 0fc479b1ad6358d2440faf79a43d422065b77dc0 Author: Thomas Gleixner Date: Wed May 29 16:57:42 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 328 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license v2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see https www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Armijn Hemel Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000435.923873561@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4cd10358d64a066ce31047e7704163c7c02d4bca Author: Thomas Gleixner Date: Wed May 29 16:57:41 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 326 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program see the file copying if not write to the free software foundation 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 9 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000435.832876118@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 7be2e6dcda26a7440f96aed66a6cd28ef42cff4e Author: Thomas Gleixner Date: Wed May 29 16:57:40 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 325 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program see the file copying if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Armijn Hemel Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000435.742096485@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 0b156947b88956cc97015c91a37529073416381b Author: Thomas Gleixner Date: Wed May 29 16:57:39 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 324 Based on 1 normalized pattern(s): this file is provided under the gplv2 license gpl license summary [copyright] [c] [2015] [intel] [deutschland] [gmbh] this program is free software you can redistribute it and or modify it under the terms of version 2 of the gnu general public license as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details the full gnu general public license is included in this distribution in the file called copying extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Reviewed-by: Alexios Zavras Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000435.636161379@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 2a2786edacfe929346f1dbddb4dc646178076ee2 Author: Thomas Gleixner Date: Wed May 29 16:57:38 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 323 Based on 3 normalized pattern(s): gpl license summary [copyright] [c] [2008] [2014] [intel] [corporation] [all] [rights] [reserved] [copyright] [c] [2018] [intel] [corporation] this program is free software you can redistribute it and or modify it under the terms of version 2 of the gnu general public license as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details the full gnu general public license is included in this distribution in the file called copying gpl license summary [copyright] [c] [2008] [2014] [intel] [corporation] [all] [rights] [reserved] this program is free software you can redistribute it and or modify it under the terms of version 2 of the gnu general public license as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details the full gnu general public license is included in this distribution in the file called copying gpl license summary [copyright] [c] [2008] [2014] [intel] [corporation] [all] [rights] [reserved] [copyright] [c] [2015] [intel] [deutschland] [gmbh] this program is free software you can redistribute it and or modify it under the terms of version 2 of the gnu general public license as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details the full gnu general public license is included in this distribution in the file called copying extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 5 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000435.531621107@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4273a380f2edbcfc39f5215c8dca77c3038fe6b9 Author: Thomas Gleixner Date: Wed May 29 16:57:37 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 322 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of version 2 of the gnu general public license as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details the full gnu general public license is included in this distribution in the file called license extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 29 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000435.438503728@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 685a6bf8485e6319c4dd070c02491f9163c23083 Author: Thomas Gleixner Date: Wed May 29 16:57:36 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 321 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 and no later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 33 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000435.345978407@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 3b20eb23724d493eca79f02b1e062bd5432e29d0 Author: Thomas Gleixner Date: Wed May 29 16:57:35 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 320 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms and conditions of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 33 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000435.254582722@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4b44398e38b65ae19e3c294a579f51d4b3fa4360 Author: Thomas Gleixner Date: Wed May 29 16:57:31 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 316 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 this program is distributed without any warranty of any kind whether express or implied without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Kate Stewart Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000434.889824453@linutronix.de Signed-off-by: Greg Kroah-Hartman commit cc7feb7f4f85ee01d34788e228f6abc587b95b4a Author: Thomas Gleixner Date: Wed May 29 16:57:30 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 315 Based on 1 normalized pattern(s): license gplv2 as published by the fsf extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000434.797597276@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 1237a75addc781baa3a37355e520d1db01a34210 Author: Thomas Gleixner Date: Wed May 29 16:57:29 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 314 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms and conditions of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin st fifth floor boston ma 02110 1301 usa the full gnu general public license is included in this distribution in the file called copying extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Reviewed-by: Armijn Hemel Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000434.706787045@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 06776077412d6a068c7fc3ce43eab7912c27b77a Author: Thomas Gleixner Date: Wed May 29 16:57:28 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 313 Based on 1 normalized pattern(s): this software program is licensed subject to the gnu general public license gpl version 2 june 1991 available at http www gnu org licenses old licenses gpl 2 0 html extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000434.615718144@linutronix.de Signed-off-by: Greg Kroah-Hartman commit aecd8454c0fa0f0a16c91bae9b92739b61676151 Author: Thomas Gleixner Date: Wed May 29 16:57:27 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 312 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the version 2 of the gnu general public license as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Reviewed-by: Kate Stewart Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000434.524820338@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 49833cbeafa48f070199956b95051f71b6a13e10 Author: Thomas Gleixner Date: Wed May 29 16:57:26 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 311 Based on 1 normalized pattern(s): this is free software you can redistribute it and or modify it under the terms of version 2 of the gnu general public license as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Alexios Zavras Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000434.434198430@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f3949fd021ffdf4dd72ce2fb4ed96f44485729a6 Author: Thomas Gleixner Date: Wed May 29 16:57:25 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 310 Based on 1 normalized pattern(s): may be copied or modified under the terms of the gnu general public license version 2 [0] [only] see linux copying for more information extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000434.341514676@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f6cc69f1f384f91eda7d7aca81f92f5538b8a50c Author: Thomas Gleixner Date: Wed May 29 16:57:24 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 309 Based on 2 normalized pattern(s): it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program this program is free software you can redistribute it and or modify it under the terms and conditions of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 11 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000434.249870634@linutronix.de Signed-off-by: Greg Kroah-Hartman commit dcc4086d9e1abaf0c5477eaf14fec5ca903eb57d Author: Thomas Gleixner Date: Wed May 29 16:57:23 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 308 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms and conditions of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses the full gnu general public license is included in this distribution in the file called copying extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 12 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000434.160381502@linutronix.de Signed-off-by: Greg Kroah-Hartman commit fc9c69249e8dadb3b120c85132664e77b0239424 Author: Thomas Gleixner Date: Wed May 29 16:57:22 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 307 Based on 1 normalized pattern(s): this driver is licensed under the terms of gplv2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Armijn Hemel Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000434.051516995@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 5efdfe759aae603496ad31861d800a1ea8508f3e Author: Thomas Gleixner Date: Wed May 29 16:57:21 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 305 Based on 1 normalized pattern(s): licensed under the gplv2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 6 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000433.961827334@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 38e1884df76301b85ab43ba8a000847984e544db Author: Thomas Gleixner Date: Wed May 29 16:57:17 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 301 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 675 mass ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Kate Stewart Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190530000433.566744158@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 432d4130f5bbd2edb6ac67dbd511287cd6da156a Author: Thomas Gleixner Date: Wed May 29 07:18:14 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 300 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program see the file copying if not write to the free software foundation 675 mass ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141902.366626771@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 64d85cc99980ed45dccd38ed4d109157df377fcf Author: Thomas Gleixner Date: Wed May 29 07:18:13 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 299 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 only this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 675 mass ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 15 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141902.274594435@linutronix.de Signed-off-by: Greg Kroah-Hartman commit a32dd67d8a3038a7b3f2331b1483f4b480f9bf8c Author: Thomas Gleixner Date: Wed May 29 07:18:11 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 297 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms and conditions of the gnu general public license version 2 as published by the free software foundation you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin st fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141902.078500636@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 41a1c9ecc38ce63f261f34a26cce05e1df5628b7 Author: Thomas Gleixner Date: Wed May 29 07:18:10 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 296 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gplv2 this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141901.986607096@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 5b497af42fab12cadc0e29bcb7052cf9963603f5 Author: Thomas Gleixner Date: Wed May 29 07:18:09 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 295 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of version 2 of the gnu general public license as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 64 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141901.894819585@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 9f8068503d6373c20b83c346d9ab69955420113c Author: Thomas Gleixner Date: Wed May 29 07:18:08 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 294 Based on 2 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation this program is distributed in the hope that it [would] be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 9 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141901.804956444@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 52fa7bf9eadac744eff74d71234c785aade6032f Author: Thomas Gleixner Date: Wed May 29 07:18:06 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 292 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license gpl version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 66 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141901.606369721@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4fa9c49f4d596edf89a6364a92af7b8102231d73 Author: Thomas Gleixner Date: Wed May 29 07:18:05 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 291 Based on 2 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms and conditions of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details the full gnu general public license is included in this distribution in the file called copying this program is free software you can redistribute it and or modify it under the terms and conditions of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope [that] it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details the full gnu general public license is included in this distribution in the file called copying extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 57 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141901.515993066@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4e43d779e5dc190a20c8677244193bb50d41fca2 Author: Thomas Gleixner Date: Wed May 29 07:18:04 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 290 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details the full gnu general public license is included in this distribution in the file called copying extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 39 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141901.397680977@linutronix.de Signed-off-by: Greg Kroah-Hartman commit eb3ae0aa382e03a99a34edc7b42302ea342f1f60 Author: Thomas Gleixner Date: Wed May 29 07:18:03 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 289 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 only as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 8 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141901.300923465@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 2025cf9e193de05b0654570dd639acb49ebd3adf Author: Thomas Gleixner Date: Wed May 29 07:18:02 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 288 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms and conditions of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 263 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141901.208660670@linutronix.de Signed-off-by: Greg Kroah-Hartman commit d95236782b8d6535d5a9f3fce15af8e29c195b34 Author: Thomas Gleixner Date: Wed May 29 07:18:01 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 287 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license v2 0 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 23 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141901.115786599@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 50acfb2b76e19f73270fef9a32726c7e18d08ec3 Author: Thomas Gleixner Date: Wed May 29 07:18:00 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 286 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 97 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141901.025053186@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 8e8e69d67e5fad1a1edf97acebd649a6c8f1febd Author: Thomas Gleixner Date: Wed May 29 07:17:59 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 285 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 of the license this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 100 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141900.918357685@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 97fb5e8d9b57f10f294303c9a5d1bd033eded6bf Author: Thomas Gleixner Date: Wed May 29 07:17:58 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 284 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 and only version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 294 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141900.825281744@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 880a13c40be81b938e0da9c831061786e99fc26d Author: Thomas Gleixner Date: Wed May 29 07:17:57 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 283 Based on 1 normalized pattern(s): this file is part of the linux kernel and is made available under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141900.734365435@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 9c92ab61914157664a2fbdf926df0eb937838e45 Author: Thomas Gleixner Date: Wed May 29 07:17:56 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 282 Based on 1 normalized pattern(s): this software is licensed under the terms of the gnu general public license version 2 as published by the free software foundation and may be copied distributed and modified under those terms this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 285 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141900.642774971@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 0e9facca1b882b4034acc8f38a4f2ab6797f270a Author: Thomas Gleixner Date: Wed May 29 07:17:55 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 281 Based on 1 normalized pattern(s): this program can be redistributed or modified under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed without any warranty or implied warranty of merchantability or fitness for a particular purpose see the gnu general public license version 2 for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141900.551133917@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 43aa31327bb36002f52026b13d5f1bde35a1fc14 Author: Thomas Gleixner Date: Wed May 29 07:17:54 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 280 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose good title or non infringement see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 9 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141900.459653302@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 75d67a54909ba58d5d69acf5a13e31297d0181b7 Author: Thomas Gleixner Date: Wed May 29 07:17:52 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 278 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of version 2 of the gnu general public license as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa the full gnu general public license is included in this distribution in the file called copying extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141900.257093620@linutronix.de Signed-off-by: Greg Kroah-Hartman commit e26441b693e1e332db1fd27846e9bb7466e0c35c Author: Thomas Gleixner Date: Wed May 29 07:17:51 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 277 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 of the licence this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141900.166949334@linutronix.de Signed-off-by: Greg Kroah-Hartman commit af7c5f890859cea10e66a692fc5799be25212154 Author: Thomas Gleixner Date: Wed May 29 07:17:50 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 276 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should find a copy of v2 of the gnu general public license somewhere on your linux system if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141900.073926682@linutronix.de Signed-off-by: Greg Kroah-Hartman commit e47ca509053e4d65a4bafabd368135246f2ad2df Author: Thomas Gleixner Date: Wed May 29 07:12:49 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 275 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 of the license this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 021110 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141334.789682544@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 7614a55ea29445d77f6922c616934c5a927b1c8e Author: Thomas Gleixner Date: Wed May 29 07:12:48 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 274 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141334.697148568@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 07d7fe7bd6a56f20d57e708c508bf29bea16aa40 Author: Thomas Gleixner Date: Wed May 29 07:12:47 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 273 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of version 2 of the gnu general public license as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 24 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141334.606756275@linutronix.de Signed-off-by: Greg Kroah-Hartman commit ff7924b02467ea07f9b48e2e437d1df80de0f767 Author: Thomas Gleixner Date: Wed May 29 07:12:46 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 272 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin street fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141334.517214694@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 21eb0be9ace70fc8bccf767617ba018e02d0bb82 Author: Thomas Gleixner Date: Wed May 29 07:12:45 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 271 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license v2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin street fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 4 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141334.424952652@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 16da78b7b580e804d02b4ec441c0042723416a94 Author: Thomas Gleixner Date: Wed May 29 07:12:44 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 270 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of version 2 of the gnu general public license as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin street fifth floor boston ma 02110 usa the full gnu general public license is included in this distribution in the file called license extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 9 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141334.333998390@linutronix.de Signed-off-by: Greg Kroah-Hartman commit c942299924a70b458320846e53b742ba11e985b3 Author: Thomas Gleixner Date: Wed May 29 07:12:43 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 269 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of version 2 of the gnu general public license as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin street fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 21 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141334.228102212@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 04672fe6d69835f67ff6ffdbeb16db9fa21c10bb Author: Thomas Gleixner Date: Wed May 29 07:12:42 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 268 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin street fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 46 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141334.135501091@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 08dbd0f8ef8d2a02319aec1e6c2aeb084468309e Author: Thomas Gleixner Date: Wed May 29 07:12:41 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 267 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 and only version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin street fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 94 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141334.043630402@linutronix.de Signed-off-by: Greg Kroah-Hartman commit d94d71cb45fda694a7189839f1c6aacb4f615f95 Author: Thomas Gleixner Date: Wed May 29 07:12:40 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 266 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation 51 franklin street fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 67 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141333.953658117@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 24c9d96ddb9cd13b5b409c4e0e20ad6b18e56df6 Author: Thomas Gleixner Date: Wed May 29 07:12:39 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 265 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 of the license this driver is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this software if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 8 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141333.861653206@linutronix.de Signed-off-by: Greg Kroah-Hartman commit b67eb1520b39f7b56c17d452040f5371fb1104dc Author: Thomas Gleixner Date: Wed May 29 07:12:38 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 264 Based on 1 normalized pattern(s): this driver is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 this driver is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this driver if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 9 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141333.769845457@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 1439f94c548919ab6b7720b70b951461f1fcb16d Author: Thomas Gleixner Date: Wed May 29 07:12:37 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 263 Based on 1 normalized pattern(s): this software may be redistributed and or modified under the terms of the gnu general public license gpl version 2 only as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141333.676969322@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 12eb90f1eda1b91e6f339eb85d2ebbe2311348fd Author: Thomas Gleixner Date: Wed May 29 07:12:36 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 262 Based on 1 normalized pattern(s): this file is subject to the terms and conditions of the gnu general public license v2 see the file copying in the main directory of this archive for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 11 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141333.582369016@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f45e350b16f937a25e9acb931371d37fdabac9a5 Author: Thomas Gleixner Date: Wed May 29 07:12:34 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 260 Based on 1 normalized pattern(s): distributable under version 2 of the gnu general public license extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Reviewed-by: Richard Fontana Reviewed-by: Steve Winslow Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141333.385647094@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 2d31bf953bed50a77a07e32c652e3939aebd2596 Author: Thomas Gleixner Date: Wed May 29 07:12:32 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 258 Based on 1 normalized pattern(s): this code is placed under the terms of the gnu general public license v2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Reviewed-by: Alexios Zavras Reviewed-by: Steve Winslow Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141333.202410757@linutronix.de Signed-off-by: Greg Kroah-Hartman commit fb9e53cce71919bdc621489eb1069a5dd131649d Author: Thomas Gleixner Date: Wed May 29 07:12:31 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 257 Based on 1 normalized pattern(s): gpl v2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 19 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Steve Winslow Reviewed-by: Kate Stewart Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141333.108140152@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f7be8ec10428b0649953da25615ba0ebec399758 Author: Thomas Gleixner Date: Wed May 29 07:12:30 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 256 Based on 1 normalized pattern(s): the contents of this file may be used under the terms of the gnu public license version 2 the gpl extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Reviewed-by: Alexios Zavras Reviewed-by: Steve Winslow Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141333.014369811@linutronix.de Signed-off-by: Greg Kroah-Hartman commit adf77481fbe5055677ba55803ae0e16a7cd94e76 Author: Thomas Gleixner Date: Wed May 29 07:12:28 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 254 Based on 1 normalized pattern(s): this file is released under the gnu gpl v2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 4 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Steve Winslow Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141332.816211035@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 3e5580c465853423ce4ff97da410441895b8e5b2 Author: Thomas Gleixner Date: Wed May 29 07:12:27 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 253 Based on 1 normalized pattern(s): license gplv2 and 1 additional normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms and conditions of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 5 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Steve Winslow Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141332.723143934@linutronix.de Signed-off-by: Greg Kroah-Hartman commit c9af7f315d3f78c2cc81a5d600dab8c4c916996f Author: Thomas Gleixner Date: Wed May 29 07:12:26 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 252 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed as is without any warranty of any kind whether express or implied without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141332.617181045@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 910070454e64d23396839f1f08ee84b7b9dc9bc5 Author: Thomas Gleixner Date: Wed May 29 07:12:25 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 251 Based on 1 normalized pattern(s): released under the gpl v2 and only v2 not any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 12 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Steve Winslow Reviewed-by: Alexios Zavras Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190529141332.526460839@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 8c30d32b1a326bb120635a8b4836ec61cba454fa Author: Kees Cook Date: Tue Jun 4 22:13:59 2019 -0700 lib/test_stackinit: Handle Clang auto-initialization pattern While the gcc plugin for automatic stack variable initialization (i.e. CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL) performs initialization with 0x00 bytes, the Clang automatic stack variable initialization (i.e. CONFIG_INIT_STACK_ALL) uses various type-specific patterns that are typically 0xAA. Therefore the stackinit selftest has been fixed to check that bytes are no longer the test fill pattern of 0xFF (instead of looking for bytes that have become 0x00). This retains the test coverage for the 0x00 pattern of the gcc plugin while adding coverage for the mostly 0xAA pattern of Clang. Signed-off-by: Kees Cook Acked-by: Ard Biesheuvel commit 98d669b49120bad6a09c361daa71c92e6a9f8fbb Author: Kefeng Wang Date: Wed Jun 5 22:24:27 2019 +0800 block: Drop unlikely before IS_ERR(_OR_NULL) IS_ERR(_OR_NULL) already contain an 'unlikely' compiler flag, so no need to do that again from its callers. Drop it. Cc: Jens Axboe Cc: linux-block@vger.kernel.org Signed-off-by: Kefeng Wang Signed-off-by: Jens Axboe commit 4e7372e0dc5d7d2078fbdb13505635cd5b11f93d Author: Stefano Stabellini Date: Tue May 28 15:48:22 2019 -0700 xen/swiotlb: don't initialize swiotlb twice on arm64 On arm64 swiotlb is often (not always) already initialized by mem_init. We don't want to initialize it twice, which would trigger a second memory allocation. Moreover, the second memory pool is typically made of high pages and ends up replacing the original memory pool of low pages. As a side effect of this change, it is possible to have low pages in swiotlb-xen on arm64. Signed-off-by: Stefano Stabellini Reviewed-by: Boris Ostrovsky Signed-off-by: Konrad Rzeszutek Wilk commit 962f0af83c239c0aef05639631e871c874b00f99 Author: Gerald Schaefer Date: Mon May 27 18:40:19 2019 +0200 s390/mm: fix address space detection in exception handling Commit 0aaba41b58bc ("s390: remove all code using the access register mode") removed access register mode from the kernel, and also from the address space detection logic. However, user space could still switch to access register mode (trans_exc_code == 1), and exceptions in that mode would not be correctly assigned. Fix this by adding a check for trans_exc_code == 1 to get_fault_type(), and remove the wrong comment line before that function. Fixes: 0aaba41b58bc ("s390: remove all code using the access register mode") Reviewed-by: Janosch Frank Reviewed-by: Heiko Carstens Cc: # v4.15+ Signed-off-by: Gerald Schaefer Signed-off-by: Heiko Carstens commit a050fa5476d418fc16b25abe168b3d38ba11e13c Author: Heyi Guo Date: Mon May 13 19:42:06 2019 +0800 irqchip/gic-v3-its: Fix command queue pointer comparison bug When we run several VMs with PCI passthrough and GICv4 enabled, not pinning vCPUs, we will occasionally see below warnings in dmesg: ITS queue timeout (65440 65504 480) ITS cmd its_build_vmovp_cmd failed The reason for the above issue is that in BUILD_SINGLE_CMD_FUNC: 1. Post the write command. 2. Release the lock. 3. Start to read GITS_CREADR to get the reader pointer. 4. Compare the reader pointer to the target pointer. 5. If reader pointer does not reach the target, sleep 1us and continue to try. If we have several processors running the above concurrently, other CPUs will post write commands while the 1st CPU is waiting the completion. So we may have below issue: phase 1: ---rd_idx-----from_idx-----to_idx--0--------- wait 1us: phase 2: --------------from_idx-----to_idx--0-rd_idx-- That is the rd_idx may fly ahead of to_idx, and if in case to_idx is near the wrap point, rd_idx will wrap around. So the below condition will not be met even after 1s: if (from_idx < to_idx && rd_idx >= to_idx) There is another theoretical issue. For a slow and busy ITS, the initial rd_idx may fall behind from_idx a lot, just as below: ---rd_idx---0--from_idx-----to_idx----------- This will cause the wait function exit too early. Actually, it does not make much sense to use from_idx to judge if to_idx is wrapped, but we need a initial rd_idx when lock is still acquired, and it can be used to judge whether to_idx is wrapped and the current rd_idx is wrapped. We switch to a method of calculating the delta of two adjacent reads and accumulating it to get the sum, so that we can get the real rd_idx from the wrapped value even when the queue is almost full. Cc: Thomas Gleixner Cc: Jason Cooper Signed-off-by: Heyi Guo Signed-off-by: Marc Zyngier commit 3ed224e273ac5880eeab4c3043a6b06b0478dd56 Author: Hans de Goede Date: Wed Jun 5 14:44:08 2019 +0200 HID: logitech-dj: Fix 064d:c52f receiver support The c52f nano receiver is a mouse only receiver. This means that it needs some special handling compared to the c534 nano receiver: 1) It sends unnumbered mouse reports with a size of 8 bytes, so we need to extend the unnumbered mouse report handling to support reports upto 8 bytes large 2) It mouse reports have the same high-resolution format as those from the gaming mouse receivers 3) It can report consumer/multimedia buttons on its second interface, since this is a mouse-only receiver these must be forwarded to the mouse child device and not to the keyboard child-device (which will not exist) Link: https://bugzilla.kernel.org/show_bug.cgi?id=203619 Signed-off-by: Hans de Goede Acked-by: Jiri Kosina Signed-off-by: Benjamin Tissoires commit f9482dabfd1686987cc6044e06ae0e4c05915518 Author: Benjamin Tissoires Date: Wed Jun 5 14:44:07 2019 +0200 Revert "HID: core: Call request_module before doing device_add" This reverts commit a025a18fecd4429f4ca66b1746001263c052ecbb. This patch and 4ceabaf79 are giving extended timeouts on boot for at least Ubuntu and openSUSE. Revert them until we get a better fix. Link: https://bugzilla.kernel.org/show_bug.cgi?id=203741 Acked-by: Jiri Kosina Signed-off-by: Benjamin Tissoires commit e0b7f9bc0246bc642d1de2ff3ff133730584c956 Author: Benjamin Tissoires Date: Wed Jun 5 14:44:06 2019 +0200 Revert "HID: core: Do not call request_module() in async context" This reverts commit 4ceabaf7909d109db6afbffc4ed182741fc32043. This patch and a025a18fe are giving extended timeouts on boot for at least Ubuntu and openSUSE. Revert them until we get a better fix. Acked-by: Jiri Kosina Signed-off-by: Benjamin Tissoires commit 15fc1b5c86128f91c8c6699c3b0d9615740b13f1 Author: Benjamin Tissoires Date: Wed Jun 5 14:44:05 2019 +0200 Revert "HID: Increase maximum report size allowed by hid_field_extract()" This reverts commit 94a9992f7dbdfb28976b565af220e0c4a117144a. The commit allows for more than 32 bits in hid_field_extract(), but the return value is a 32 bits int. So basically what this commit is doing is just silencing those legitimate errors. Revert to a previous situation in the hope that a proper fix will be impletemented. Fixes: 94a9992f7dbd ("HID: Increase maximum report size allowed by hid_field_extract()") Cc: stable@vger.kernel.org # v5.1 Acked-by: Jiri Kosina Signed-off-by: Benjamin Tissoires commit 1fcd0eb356ad56c4e405f06e31dd9fde2109d5ab Author: Christian Brauner Date: Wed Jun 5 15:06:32 2019 +0200 tests: fix pidfd-test compilation Define __NR_pidfd_send_signal if it isn't to prevent a potential compilation error. To make pidfd-test compile on all arches, irrespective of whether or not syscall numbers are assigned, define the syscall number to -1. If it isn't defined this will cause the kernel to return -ENOSYS. Fixes: 575a0ae9744d ("selftests: add tests for pidfd_send_signal()") Signed-off-by: Christian Brauner commit c732327f04a3818f35fa97d07b1d64d31b691d78 Author: Christian Brauner Date: Tue Jun 4 15:18:43 2019 +0200 signal: improve comments Improve the comments for pidfd_send_signal(). First, the comment still referred to a file descriptor for a process as a "task file descriptor" which stems from way back at the beginning of the discussion. Replace this with "pidfd" for consistency. Second, the wording for the explanation of the arguments to the syscall was a bit inconsistent, e.g. some used the past tense some used present tense. Make the wording more consistent. Signed-off-by: Christian Brauner commit 7c33277b9a9ada187f805b41ffbebe6c51622fb6 Author: Guenter Roeck Date: Thu May 30 04:40:47 2019 -0700 samples: fix pidfd-metadata compilation Define __NR_pidfd_send_signal if it isn't to prevent a compilation error. To make pidfd-metadata compile on all arches, irrespective of whether or not syscall numbers are assigned, define the syscall number to -1. If it isn't defined this will cause the kernel to return -ENOSYS. Fixes: 43c6afee48d4 ("samples: show race-free pidfd metadata access") Reported-by: Arnd Bergmann Reported-by: Guenter Roeck Cc: Christian Brauner Signed-off-by: Guenter Roeck [christian@brauner.io: tweak commit message] Signed-off-by: Christian Brauner commit f31e98bfae1c8792701ef03acd47344866cb2e14 Author: Anders Roxell Date: Mon Jun 3 11:14:02 2019 +0200 arm64: arch_timer: mark functions as __always_inline If CONFIG_FUNCTION_GRAPH_TRACER is enabled function arch_counter_get_cntvct() is marked as notrace. However, function __arch_counter_get_cntvct is marked as inline. If CONFIG_OPTIMIZE_INLINING is set that will make the two functions tracable which they shouldn't. Rework so that functions __arch_counter_get_* are marked with __always_inline so they will be inlined even if CONFIG_OPTIMIZE_INLINING is turned on. Fixes: 0ea415390cd3 ("clocksource/arm_arch_timer: Use arch_timer_read_counter to access stable counters") Acked-by: Marc Zyngier Signed-off-by: Anders Roxell Signed-off-by: Will Deacon commit 262afe92fa8c7d64118948d98667c102c7d16174 Author: Florian Fainelli Date: Mon Jun 3 16:18:29 2019 -0700 arm64: smp: Moved cpu_logical_map[] to smp.h asm/smp.h is included by linux/smp.h and some drivers, in particular irqchip drivers can access cpu_logical_map[] in order to perform SMP affinity tasks. Make arm64 consistent with other architectures here. Signed-off-by: Florian Fainelli Signed-off-by: Will Deacon commit 78ed70bf3a923f1965e3c19f544677d418397108 Author: Dave Martin Date: Mon Jun 3 16:35:02 2019 +0100 arm64: cpufeature: Fix missing ZFR0 in __read_sysreg_by_encoding() In commit 06a916feca2b ("arm64: Expose SVE2 features for userspace"), new hwcaps are added that are detected via fields in the SVE-specific ID register ID_AA64ZFR0_EL1. In order to check compatibility of secondary cpus with the hwcaps established at boot, the cpufeatures code uses __read_sysreg_by_encoding() to read this ID register based on the sys_reg field of the arm64_elf_hwcaps[] table. This leads to a kernel splat if an hwcap uses an ID register that __read_sysreg_by_encoding() doesn't explicitly handle, as now happens when exercising cpu hotplug on an SVE2-capable platform. So fix it by adding the required case in there. Fixes: 06a916feca2b ("arm64: Expose SVE2 features for userspace") Signed-off-by: Dave Martin Signed-off-by: Will Deacon commit 25a7991c84f6cf68cd1ea2ed3ba5674fb9e8c8be Author: Hangbin Liu Date: Tue Jun 4 10:35:05 2019 +0800 selftests/bpf: move test_lirc_mode2_user to TEST_GEN_PROGS_EXTENDED test_lirc_mode2_user is included in test_lirc_mode2.sh test and should not be run directly. Fixes: 6bdd533cee9a ("bpf: add selftest for lirc_mode2 type program") Signed-off-by: Hangbin Liu Signed-off-by: Daniel Borkmann commit bd21f0222adab64974b7d1b4b8c7ce6b23e9ea4d Author: Marco Zatta Date: Sat Jun 1 09:52:57 2019 +0200 USB: Fix chipmunk-like voice when using Logitech C270 for recording audio. This patch fixes the chipmunk-like voice that manifets randomly when using the integrated mic of the Logitech Webcam HD C270. The issue was solved initially for this device by commit 2394d67e446b ("USB: add RESET_RESUME for webcams shown to be quirky") but it was then reintroduced by e387ef5c47dd ("usb: Add USB_QUIRK_RESET_RESUME for all Logitech UVC webcams"). This patch is to have the fix back. Signed-off-by: Marco Zatta Signed-off-by: Greg Kroah-Hartman Cc: stable Signed-off-by: Greg Kroah-Hartman commit 1a6dd3fea131276a4fc44ae77b0f471b0b473577 Author: Kai-Heng Feng Date: Tue Jun 4 00:20:49 2019 +0800 USB: usb-storage: Add new ID to ums-realtek There is one more Realtek card reader requires ums-realtek to work correctly. Add the device ID to support it. Signed-off-by: Kai-Heng Feng Cc: stable Signed-off-by: Greg Kroah-Hartman commit fa2eb819ddf9bf671077f3711441208532118a5c Merge: afb286bcae85 15e7f52a4596 Author: Joonas Lahtinen Date: Wed Jun 5 12:27:49 2019 +0300 Merge tag 'gvt-fixes-2019-06-05' of https://github.com/intel/gvt-linux into drm-intel-fixes gvt-fixes-2019-06-05 - Fix i915 guest debug build for register command access (Weinan) - Fix guest ring state after execution for hangcheck (Xiaolin) - klocwork static check fixes (Alek) Signed-off-by: Joonas Lahtinen From: Zhenyu Wang Link: https://patchwork.freedesktop.org/patch/msgid/20190605084903.GX9684@zhen-hp.sh.intel.com commit 283f1e383e91d96fe652fad549537ae15cf31d60 Author: Lucas Stach Date: Tue Jun 4 22:23:31 2019 +0200 udmabuf: actually unmap the scatterlist unmap_udmabuf fails to actually unmap the scatterlist, leaving dangling mappings around. Fixes: fbb0de795078 ("Add udmabuf misc device") Signed-off-by: Lucas Stach Link: http://patchwork.freedesktop.org/patch/msgid/20190604202331.17482-1-l.stach@pengutronix.de Signed-off-by: Gerd Hoffmann commit 6d4d367d0e9ffab4d64a3436256a6a052dc1195d Author: Paul Burton Date: Wed Jun 5 09:34:10 2019 +0100 irqchip/mips-gic: Use the correct local interrupt map registers The MIPS GIC contains a block of registers used to map local interrupts to a particular CPU interrupt pin. Since these registers are found at a consecutive range of addresses we access them using an index, via the (read|write)_gic_v[lo]_map accessor functions. We currently use values from enum mips_gic_local_interrupt as those indices. Unfortunately whilst enum mips_gic_local_interrupt provides the correct offsets for bits in the pending & mask registers, the ordering of the map registers is subtly different... Compared with the ordering of pending & mask bits, the map registers move the FDC from the end of the list to index 3 after the timer interrupt. As a result the performance counter & software interrupts are therefore at indices 4-6 rather than indices 3-5. Notably this causes problems with performance counter interrupts being incorrectly mapped on some systems, and presumably will also cause problems for FDC interrupts. Introduce a function to map from enum mips_gic_local_interrupt to the index of the corresponding map register, and use it to ensure we access the map registers for the correct interrupts. Signed-off-by: Paul Burton Fixes: a0dc5cb5e31b ("irqchip: mips-gic: Simplify gic_local_irq_domain_map()") Fixes: da61fcf9d62a ("irqchip: mips-gic: Use irq_cpu_online to (un)mask all-VP(E) IRQs") Reported-and-tested-by: Archer Yan Cc: Thomas Gleixner Cc: Jason Cooper Cc: stable@vger.kernel.org # v4.14+ Signed-off-by: Marc Zyngier commit eb737b8f446044df327b30f24416be0cae35d4aa Author: Peter Ujfalusi Date: Tue Jun 4 13:17:51 2019 +0300 irqchip/ti-sci-inta: Fix kernel crash if irq_create_fwspec_mapping fail irq_create_fwspec_mapping() can fail, returning 0 as parent_virq. In this case vint_desc is going to be NULL in ti_sci_inta_alloc_irq() which will cause NULL pointer dereference. Also note that irq_create_fwspec_mapping() returns 'unsigned int' so the check '<=' was wrong. Use -EINVAL if irq_create_fwspec_mapping() returned with 0. Signed-off-by: Peter Ujfalusi Signed-off-by: Marc Zyngier commit db56c5128e6625cb16efc4910b60627e46f608e3 Author: Guo Ren Date: Tue May 21 15:54:05 2019 +0800 irqchip/irq-csky-mpintc: Support auto irq deliver to all cpus The csky,mpintc could deliver a external irq to one cpu or all cpus, but it couldn't deliver a external irq to a group of cpus with cpu_mask. So we only use auto deliver mode when affinity mask_val is equal to cpu_present_mask. There is no limitation for only two cpus in SMP system. Signed-off-by: Guo Ren Cc: Marc Zyngier Signed-off-by: Marc Zyngier commit fdf71426e7c548d6e4f5e51e0238732d60e05f5f Author: Paolo Abeni Date: Tue Jun 4 11:44:06 2019 +0200 net: fix indirect calls helpers for ptype list hooks. As Eric noted, the current wrapper for ptype func hook inside __netif_receive_skb_list_ptype() has no chance of avoiding the indirect call: we enter such code path only for protocols other than ipv4 and ipv6. Instead we can wrap the list_func invocation. v1 -> v2: - use the correct fix tag Fixes: f5737cbadb7d ("net: use indirect calls helpers for ptype hook") Suggested-by: Eric Dumazet Signed-off-by: Paolo Abeni Acked-by: Edward Cree Reviewed-by: Eric Dumazet Signed-off-by: David S. Miller commit ceae266bf0ae6564ac16d086bf749a096fa90ded Author: Miaohe Lin Date: Tue Jun 4 06:07:34 2019 +0000 net: ipvlan: Fix ipvlan device tso disabled while NETIF_F_IP_CSUM is set There's some NICs, such as hinic, with NETIF_F_IP_CSUM and NETIF_F_TSO on but NETIF_F_HW_CSUM off. And ipvlan device features will be NETIF_F_TSO on with NETIF_F_IP_CSUM and NETIF_F_IP_CSUM both off as IPVLAN_FEATURES only care about NETIF_F_HW_CSUM. So TSO will be disabled in netdev_fix_features. For example: Features for enp129s0f0: rx-checksumming: on tx-checksumming: on tx-checksum-ipv4: on tx-checksum-ip-generic: off [fixed] tx-checksum-ipv6: on Fixes: a188222b6ed2 ("net: Rename NETIF_F_ALL_CSUM to NETIF_F_CSUM_MASK") Signed-off-by: Miaohe Lin Signed-off-by: David S. Miller commit cc8f52609bb4177febade24d11713e20c0893b0a Author: Dan Carpenter Date: Wed May 29 14:07:39 2019 +0300 scsi: smartpqi: unlock on error in pqi_submit_raid_request_synchronous() We need to drop the "ctrl_info->sync_request_sem" lock before returning. Fixes: 6c223761eb54 ("smartpqi: initial commit of Microsemi smartpqi driver") Signed-off-by: Dan Carpenter Acked-by: Don Brace Signed-off-by: Martin K. Petersen commit 1c90836f70f9a8ef7b7ad9e1fdd8961903e6ced6 Author: Avri Altman Date: Tue May 21 11:24:22 2019 +0300 scsi: ufs: Check that space was properly alloced in copy_query_response struct ufs_dev_cmd is the main container that supports device management commands. In the case of a read descriptor request, we assume that the proper space was allocated in dev_cmd to hold the returning descriptor. This is no longer true, as there are flows that doesn't use dev_cmd for device management requests, and was wrong in the first place. Fixes: d44a5f98bb49 (ufs: query descriptor API) Signed-off-by: Avri Altman Reviewed-by: Alim Akhtar Acked-by: Bean Huo Signed-off-by: Martin K. Petersen commit 82ba25c6de200d7a9e9c970c998cdd6dfa8637ae Author: Tim Beale Date: Tue Jun 4 13:56:23 2019 +1200 udp: only choose unbound UDP socket for multicast when not in a VRF By default, packets received in another VRF should not be passed to an unbound socket in the default VRF. This patch updates the IPv4 UDP multicast logic to match the unicast VRF logic (in compute_score()), as well as the IPv6 mcast logic (in __udp_v6_is_mcast_sock()). The particular case I noticed was DHCP discover packets going to the 255.255.255.255 address, which are handled by __udp4_lib_mcast_deliver(). The previous code meant that running multiple different DHCP server or relay agent instances across VRFs did not work correctly - any server/relay agent in the default VRF received DHCP discover packets for all other VRFs. Fixes: 6da5b0f027a8 ("net: ensure unbound datagram socket to be chosen when not in a VRF") Signed-off-by: Tim Beale Reviewed-by: David Ahern Signed-off-by: David S. Miller commit 2b66552eb2a466646ffc3bde218db537977dfedd Merge: f4cfcfbdf03c e52972c11d6b Author: David S. Miller Date: Tue Jun 4 13:34:38 2019 -0700 Merge branch 'net-tls-redo-the-RX-resync-locking' Jakub Kicinski says: ==================== net/tls: redo the RX resync locking Take two of making sure we don't use a NULL netdev pointer for RX resync. This time using a bit and an open coded wait loop. v2: - fix build warning (DaveM). ==================== Signed-off-by: David S. Miller commit e52972c11d6b1262964db96d65934196db621685 Author: Jakub Kicinski Date: Tue Jun 4 12:00:12 2019 -0700 net/tls: replace the sleeping lock around RX resync with a bit lock Commit 38030d7cb779 ("net/tls: avoid NULL-deref on resync during device removal") tried to fix a potential NULL-dereference by taking the context rwsem. Unfortunately the RX resync may get called from soft IRQ, so we can't use the rwsem to protect from the device disappearing. Because we are guaranteed there can be only one resync at a time (it's called from strparser) use a bit to indicate resync is busy and make device removal wait for the bit to get cleared. Note that there is a leftover "flags" field in struct tls_context already. Fixes: 4799ac81e52a ("tls: Add rx inline crypto offload") Signed-off-by: Jakub Kicinski Signed-off-by: David S. Miller commit 27393f8c6efc03b8e0b64134721b0d337fca0a80 Author: Jakub Kicinski Date: Tue Jun 4 12:00:11 2019 -0700 Revert "net/tls: avoid NULL-deref on resync during device removal" This reverts commit 38030d7cb77963ba84cdbe034806e2b81245339f. Unfortunately the RX resync may get called from soft IRQ, so we can't take the rwsem to protect from the device disappearing. Signed-off-by: Jakub Kicinski Signed-off-by: David S. Miller commit e0241fb0b94399bb4131da7f29dc92cf5dc1ae71 Author: Greg Kroah-Hartman Date: Mon Jun 3 21:47:54 2019 +0200 block: aoe: no need to check return value of debugfs_create functions When calling debugfs functions, there is no need to ever check the return value. The function can work or not, but the code logic should never do something different based on this. Cc: "Ed L. Cashin" Cc: linux-block@vger.kernel.org Cc: Omar Sandoval Acked-by: Justin Sanders Signed-off-by: Greg Kroah-Hartman Signed-off-by: Jens Axboe commit f4cfcfbdf03cf7cf5f9097803415dfdcf965676c Author: Vladimir Oltean Date: Mon Jun 3 02:31:37 2019 +0300 net: dsa: sja1105: Fix link speed not working at 100 Mbps and below The hardware values for link speed are held in the sja1105_speed_t enum. However they do not increase in the order that sja1105_get_speed_cfg was iterating over them (basically from SJA1105_SPEED_AUTO - 0 - to SJA1105_SPEED_1000MBPS - 1 - skipping the other two). Another bug is that the code in sja1105_adjust_port_config relies on the fact that an invalid link speed is detected by sja1105_get_speed_cfg and returned as -EINVAL. However storing this into an enum that only has positive members will cast it into an unsigned value, and it will miss the negative check. So take the simplest approach and remove the sja1105_get_speed_cfg function and replace it with a simple switch-case statement. Fixes: 8aa9ebccae87 ("net: dsa: Introduce driver for NXP SJA1105 5-port L2 switch") Signed-off-by: Vladimir Oltean Suggested-by: Andrew Lunn Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 77316763321ee4050f0576ffd472183aa90dcb30 Author: Russell King Date: Sun Jun 2 15:12:54 2019 +0100 net: phylink: avoid reducing support mask Avoid reducing the support mask as a result of the interface type selected for SFP modules, or when setting the link settings through ethtool - this should only change when the supported link modes of the hardware combination change. Signed-off-by: Russell King Signed-off-by: David S. Miller commit 4f45d62a52297b10ded963412a158685647ecdec Author: George G. Davis Date: Mon Jun 3 10:30:39 2019 -0400 scripts/checkstack.pl: Fix arm64 wrong or unknown architecture The following error occurs for the `make ARCH=arm64 checkstack` case: aarch64-linux-gnu-objdump -d vmlinux $(find . -name '*.ko') | \ perl ./scripts/checkstack.pl arm64 wrong or unknown architecture "arm64" As suggested by Masahiro Yamada, fix the above error using regular expressions in the same way it was fixed for the `ARCH=x86` case via commit fda9f9903be6 ("scripts/checkstack.pl: automatically handle 32-bit and 64-bit mode for ARCH=x86"). Suggested-by: Masahiro Yamada Signed-off-by: George G. Davis Signed-off-by: Masahiro Yamada commit a6e0487709ded7cd1ba0c390d9771e5cb76a8453 Author: Trevor Bourget Date: Mon May 27 16:54:23 2019 -0700 kbuild: tar-pkg: enable communication with jobserver The buildtar script might want to invoke a make, so tell the parent make to pass the jobserver token pipe to the subcommand by prefixing the command with a +. This addresses the issue seen here: /bin/sh ../scripts/package/buildtar tar-pkg make[3]: warning: jobserver unavailable: using -j1. Add '+' to parent make rule. See https://www.gnu.org/software/make/manual/html_node/Job-Slots.html for more information. Signed-off-by: Trevor Bourget Signed-off-by: Masahiro Yamada commit 8dde5715b280738505199023034397a15dc7bfbb Author: Masahiro Yamada Date: Sat May 25 20:49:19 2019 +0900 kconfig: tests: fix recursive inclusion unit test Adding SPDX license identifier is pretty safe; however, here is one exception. Since commit ec8f24b7faaf ("treewide: Add SPDX license identifier - Makefile/Kconfig"), "make testconfig" would not pass. When Kconfig detects a circular file inclusion, it displays error messages with a file name and a line number prefixed to each line. The unit test checks if Kconfig emits the error messages correctly (this also checks the line number correctness). Now that the test input has the SPDX license identifier at the very top, the line numbers in the expected stderr should be incremented by 1. Fixes: ec8f24b7faaf ("treewide: Add SPDX license identifier - Makefile/Kconfig") Signed-off-by: Masahiro Yamada commit 6d3db46c8e331908775b0135dc7d2e5920bf6d90 Author: Dan Rue Date: Mon May 20 10:16:14 2019 -0500 kbuild: teach kselftest-merge to find nested config files Current implementation of kselftest-merge only finds config files that are one level deep using `$(srctree)/tools/testing/selftests/*/config`. Often, config files are added in nested directories, and do not get picked up by kselftest-merge. Use `find` to catch all config files under `$(srctree)/tools/testing/selftests` instead. Signed-off-by: Dan Rue Signed-off-by: Masahiro Yamada commit 3562f5d9f21e7779ae442a45197fed6cb247fd22 Author: Minwoo Im Date: Sun Jun 2 12:43:39 2019 +0900 nvmet: fix data_len to 0 for bdev-backed write_zeroes The WRITE ZEROES command has no data transfer so that we need to initialize the struct (nvmet_req *req)->data_len to 0x0. While (nvmet_req *req)->transfer_len is initialized in nvmet_req_init(), data_len will be initialized by nowhere which might cause the failure with status code NVME_SC_SGL_INVALID_DATA | NVME_SC_DNR randomly. It's because nvmet_req_execute() checks like: if (unlikely(req->data_len != req->transfer_len)) { req->error_loc = offsetof(struct nvme_common_command, dptr); nvmet_req_complete(req, NVME_SC_SGL_INVALID_DATA | NVME_SC_DNR); } else req->execute(req); This patch fixes req->data_len not to be a randomly assigned by initializing it to 0x0 when preparing the command in nvmet_bdev_parse_io_cmd(). nvmet_file_parse_io_cmd() which is for file-backed I/O has already initialized the data_len field to 0x0, though. Cc: Christoph Hellwig Cc: Sagi Grimberg Cc: Chaitanya Kulkarni Signed-off-by: Minwoo Im Reviewed-by: Chaitanya Kulkarni Reviewed-by: Christoph Hellwig Signed-off-by: Sagi Grimberg commit ca09720657fce27f0289dc5082e2cc0c5466eb6d Author: Bart Van Assche Date: Mon Jun 3 16:40:19 2019 -0700 MAINTAINERS: Hand over skd maintainership Since I do no longer have access to any STEC SSDs, hand over maintainership of the skd driver to Damien who still has access to STEC SSDs. Cc: Bart Van Assche Cc: Christoph Hellwig Cc: Hannes Reinecke Acked-by: Damien Le Moal Signed-off-by: Bart Van Assche Signed-off-by: Jens Axboe commit f9927000cb35f250051f0f1878db12ee2626eea1 Author: Marcus Cooper Date: Mon Jun 3 19:47:28 2019 +0200 ASoC: sun4i-i2s: Add offset to RX channel select Whilst testing the capture functionality of the i2s on the newer SoCs it was noticed that the recording was somewhat distorted. This was due to the offset not being set correctly on the receiver side. Signed-off-by: Marcus Cooper Acked-by: Maxime Ripard Acked-by: Chen-Yu Tsai Signed-off-by: Mark Brown commit 7e46169a5f35762f335898a75d1b8a242f2ae0f5 Author: Marcus Cooper Date: Mon Jun 3 19:47:27 2019 +0200 ASoC: sun4i-i2s: Fix sun8i tx channel offset mask Although not causing any noticeable issues, the mask for the channel offset is covering too many bits. Signed-off-by: Marcus Cooper Acked-by: Maxime Ripard Acked-by: Chen-Yu Tsai Signed-off-by: Mark Brown commit 5628c8979642a076f91ee86c3bae5ad251639af0 Author: Yu-Hsuan Hsu Date: Tue Jun 4 18:49:09 2019 +0800 ASoC: max98090: remove 24-bit format support if RJ is 0 The supported formats are S16_LE and S24_LE now. However, by datasheet of max98090, S24_LE is only supported when it is in the right justified mode. We should remove 24-bit format if it is not in that mode to avoid triggering error. Signed-off-by: Yu-Hsuan Hsu Signed-off-by: Mark Brown commit cbc0fa7b6e8c6180c18fd951d28197281a526330 Author: YueHaibing Date: Sat Jun 1 16:51:44 2019 +0800 ASoC: da7219: Fix build error without CONFIG_I2C Fix gcc build error while CONFIG_I2C is not set sound/soc/codecs/da7219.c:2640:1: warning: data definition has no type or storage class module_i2c_driver(da7219_i2c_driver); ^~~~~~~~~~~~~~~~~ sound/soc/codecs/da7219.c:2640:1: error: type defaults to int in declaration of module_i2c_driver [-Werror=implicit-int] sound/soc/codecs/da7219.c:2640:1: warning: parameter names (without types) in function declaration sound/soc/codecs/da7219.c:2629:26: warning: da7219_i2c_driver defined but not used [-Wunused-variable] Reported-by: Hulk Robot Fixes: 6d817c0e9fd7 ("ASoC: codecs: Add da7219 codec driver") Signed-off-by: YueHaibing Signed-off-by: Mark Brown commit ad169f9f0dbb531cd68db921b351ccafcf684ae4 Author: YueHaibing Date: Fri May 31 22:25:26 2019 +0800 ASoC: SOF: Intel: hda: Fix COMPILE_TEST build error while building without PCI: sound/soc/sof/intel/hda.o: In function `hda_dsp_probe': hda.c:(.text+0x79c): undefined reference to `pci_ioremap_bar' hda.c:(.text+0x79c): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `pci_ioremap_bar' hda.c:(.text+0x7c4): undefined reference to `pci_ioremap_bar' hda.c:(.text+0x7c4): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `pci_ioremap_bar' Reported-by: Hulk Robot Fixes: e13ef82a9ab8 ("ASoC: SOF: add COMPILE_TEST for PCI options") Signed-off-by: YueHaibing Acked-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 1c810739097fdeb31b393b67a0a1e3d7ffdd9f63 Author: Robin Murphy Date: Fri May 17 17:37:22 2019 +0100 drm/arm/hdlcd: Allow a bit of clock tolerance On the Arm Juno platform, the HDLCD pixel clock is constrained to 250KHz resolution in order to avoid the tiny System Control Processor spending aeons trying to calculate exact PLL coefficients. This means that modes like my oddball 1600x1200 with 130.89MHz clock get rejected since the rate cannot be matched exactly. In practice, though, this mode works quite happily with the clock at 131MHz, so let's relax the check to allow a little bit of slop. Signed-off-by: Robin Murphy Signed-off-by: Liviu Dudau commit b96151edced4edb6a18aa89a5fa02c7066efff45 Author: Robin Murphy Date: Fri May 17 17:37:21 2019 +0100 drm/arm/hdlcd: Actually validate CRTC modes Rather than allowing any old mode through, then subsequently refusing unmatchable clock rates in atomic_check when it's too late to back out and pick a different mode, let's do that validation up-front where it will cause unsupported modes to be correctly pruned in the first place. This also eliminates an issue whereby a perceived clock rate of 0 would cause atomic disable to fail and prevent the module from being unloaded. Signed-off-by: Robin Murphy Signed-off-by: Liviu Dudau commit 6a88e0c14813d00f8520d0e16cd4136c6cf8b4d4 Author: Wen He Date: Wed May 8 10:58:18 2019 +0000 drm/arm/mali-dp: Add a loop around the second set CVAL and try 5 times This patch trying to fix monitor freeze issue caused by drm error 'flip_done timed out' on LS1028A platform. this set try is make a loop around the second setting CVAL and try like 5 times before giveing up. Signed-off-by: Wen He Signed-off-by: Liviu Dudau commit a260e0b847f079b7eda85a76fc066a6537f34951 Author: Lowry Li (Arm Technology China) Date: Thu Apr 11 09:37:13 2019 +0100 drm/komeda: fixing of DMA mapping sg segment warning Fixing the DMA mapping sg segment warning, which shows "DMA-API: mapping sg segment longer than device claims to support [len=921600] [max=65536]". Fixed by setting the max segment size at Komeda driver. This patch depends on: - https://patchwork.freedesktop.org/series/54448/ - https://patchwork.freedesktop.org/series/54449/ - https://patchwork.freedesktop.org/series/54450/ - https://patchwork.freedesktop.org/series/58976/ Changes since v1: - Adds member description - Adds patch denpendency in the comment Signed-off-by: Lowry Li (Arm Technology China) Reviewed-by: James Qian Wang (Arm Technology China) Reviewed-by: Ayan Kumar Halder Signed-off-by: Liviu Dudau commit a0d56cb911ca301de81735f1d73c2aab424654ba Author: Guillaume Nault Date: Sun Jun 2 15:13:47 2019 +0200 netfilter: ipv6: nf_defrag: fix leakage of unqueued fragments With commit 997dd9647164 ("net: IP6 defrag: use rbtrees in nf_conntrack_reasm.c"), nf_ct_frag6_reasm() is now called from nf_ct_frag6_queue(). With this change, nf_ct_frag6_queue() can fail after the skb has been added to the fragment queue and nf_ct_frag6_gather() was adapted to handle this case. But nf_ct_frag6_queue() can still fail before the fragment has been queued. nf_ct_frag6_gather() can't handle this case anymore, because it has no way to know if nf_ct_frag6_queue() queued the fragment before failing. If it didn't, the skb is lost as the error code is overwritten with -EINPROGRESS. Fix this by setting -EINPROGRESS directly in nf_ct_frag6_queue(), so that nf_ct_frag6_gather() can propagate the error as is. Fixes: 997dd9647164 ("net: IP6 defrag: use rbtrees in nf_conntrack_reasm.c") Signed-off-by: Guillaume Nault Signed-off-by: Pablo Neira Ayuso commit 1f65105ffc472624b45aff8bedb819c10a85944d Author: Tomer Tayar Date: Tue Jun 4 11:35:30 2019 +0000 habanalabs: Read upper bits of trace buffer from RWPHI The trace buffer address is 40 bits wide. The end of the buffer is set in the RWP register (lower 32 bits), and in the RWPHI register (upper 8 bits). Currently only the lower 32 bits are read, and this patch fixes it and concatenates the upper 8 bits to the output address. Signed-off-by: Tomer Tayar Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay commit a6b112b04355b87a2baee448165bd00889ac523f Author: YueHaibing Date: Fri May 10 11:52:55 2019 +0800 arm64: arch_k3: Fix kconfig dependency warning Fix Kbuild warning when SOC_TI is not set WARNING: unmet direct dependencies detected for TI_SCI_INTA_IRQCHIP Depends on [n]: TI_SCI_PROTOCOL [=y] && SOC_TI [=n] Selected by [y]: - ARCH_K3 [=y] Fixes: 009669e74813 ("arm64: arch_k3: Enable interrupt controller drivers") Signed-off-by: YueHaibing Reviewed-by: Lokesh Vutla Signed-off-by: Tero Kristo commit 89a4aac0ab0e6f5eea10d7bf4869dd15c3de2cd4 Author: Helen Koike Date: Mon Jun 3 13:56:10 2019 -0300 drm: don't block fb changes for async plane updates In the case of a normal sync update, the preparation of framebuffers (be it calling drm_atomic_helper_prepare_planes() or doing setups with drm_framebuffer_get()) are performed in the new_state and the respective cleanups are performed in the old_state. In the case of async updates, the preparation is also done in the new_state but the cleanups are done in the new_state (because updates are performed in place, i.e. in the current state). The current code blocks async udpates when the fb is changed, turning async updates into sync updates, slowing down cursor updates and introducing regressions in igt tests with errors of type: "CRITICAL: completed 97 cursor updated in a period of 30 flips, we expect to complete approximately 15360 updates, with the threshold set at 7680" Fb changes in async updates were prevented to avoid the following scenario: - Async update, oldfb = NULL, newfb = fb1, prepare fb1, cleanup fb1 - Async update, oldfb = fb1, newfb = fb2, prepare fb2, cleanup fb2 - Non-async commit, oldfb = fb2, newfb = fb1, prepare fb1, cleanup fb2 (wrong) Where we have a single call to prepare fb2 but double cleanup call to fb2. To solve the above problems, instead of blocking async fb changes, we place the old framebuffer in the new_state object, so when the code performs cleanups in the new_state it will cleanup the old_fb and we will have the following scenario instead: - Async update, oldfb = NULL, newfb = fb1, prepare fb1, no cleanup - Async update, oldfb = fb1, newfb = fb2, prepare fb2, cleanup fb1 - Non-async commit, oldfb = fb2, newfb = fb1, prepare fb1, cleanup fb2 Where calls to prepare/cleanup are balanced. Cc: # v4.14+ Fixes: 25dc194b34dd ("drm: Block fb changes for async plane updates") Suggested-by: Boris Brezillon Signed-off-by: Helen Koike Reviewed-by: Boris Brezillon Reviewed-by: Nicholas Kazlauskas Signed-off-by: Boris Brezillon Link: https://patchwork.freedesktop.org/patch/msgid/20190603165610.24614-6-helen.koike@collabora.com commit c16b85559dcfb5a348cc085a7b4c75ed49b05e2c Author: Helen Koike Date: Mon Jun 3 13:56:09 2019 -0300 drm/vc4: fix fb references in async update Async update callbacks are expected to set the old_fb in the new_state so prepare/cleanup framebuffers are balanced. Calling drm_atomic_set_fb_for_plane() (which gets a reference of the new fb and put the old fb) is not required, as it's taken care by drm_mode_cursor_universal() when calling drm_atomic_helper_update_plane(). Cc: # v4.19+ Fixes: 539c320bfa97 ("drm/vc4: update cursors asynchronously through atomic") Suggested-by: Boris Brezillon Signed-off-by: Helen Koike Reviewed-by: Boris Brezillon Signed-off-by: Boris Brezillon Link: https://patchwork.freedesktop.org/patch/msgid/20190603165610.24614-5-helen.koike@collabora.com commit 474d952b4870cfbdc55d3498f4d498775fe77e81 Author: Helen Koike Date: Mon Jun 3 13:56:08 2019 -0300 drm/msm: fix fb references in async update Async update callbacks are expected to set the old_fb in the new_state so prepare/cleanup framebuffers are balanced. Cc: # v4.14+ Fixes: 224a4c970987 ("drm/msm: update cursors asynchronously through atomic") Suggested-by: Boris Brezillon Signed-off-by: Helen Koike Acked-by: Rob Clark Signed-off-by: Boris Brezillon Link: https://patchwork.freedesktop.org/patch/msgid/20190603165610.24614-4-helen.koike@collabora.com commit 332af874db929f92931727bfe191b2c666438c81 Author: Helen Koike Date: Mon Jun 3 13:56:07 2019 -0300 drm/amd: fix fb references in async update Async update callbacks are expected to set the old_fb in the new_state so prepare/cleanup framebuffers are balanced. Calling drm_atomic_set_fb_for_plane() (which gets a reference of the new fb and put the old fb) is not required, as it's taken care by drm_mode_cursor_universal() when calling drm_atomic_helper_update_plane(). Cc: # v4.20+ Fixes: 674e78acae0d ("drm/amd/display: Add fast path for cursor plane updates") Suggested-by: Boris Brezillon Signed-off-by: Helen Koike Reviewed-by: Nicholas Kazlauskas Signed-off-by: Boris Brezillon Link: https://patchwork.freedesktop.org/patch/msgid/20190603165610.24614-3-helen.koike@collabora.com commit d985a3533274ef7dd1ccb25cb05a72259b25268f Author: Helen Koike Date: Mon Jun 3 13:56:06 2019 -0300 drm/rockchip: fix fb references in async update In the case of async update, modifications are done in place, i.e. in the current plane state, so the new_state is prepared and the new_state is cleaned up (instead of the old_state, unlike what happens in a normal sync update). To cleanup the old_fb properly, it needs to be placed in the new_state in the end of async_update, so cleanup call will unreference the old_fb correctly. Also, the previous code had a: plane_state = plane->funcs->atomic_duplicate_state(plane); ... swap(plane_state, plane->state); if (plane->state->fb && plane->state->fb != new_state->fb) { ... } Which was wrong, as the fb were just assigned to be equal, so this if statement nevers evaluates to true. Another details is that the function drm_crtc_vblank_get() can only be called when vop->is_enabled is true, otherwise it has no effect and trows a WARN_ON(). Calling drm_atomic_set_fb_for_plane() (which get a referent of the new fb and pus the old fb) is not required, as it is taken care by drm_mode_cursor_universal() when calling drm_atomic_helper_update_plane(). Fixes: 15609559a834 ("drm/rockchip: update cursors asynchronously through atomic.") Cc: # v4.20+ Signed-off-by: Helen Koike Signed-off-by: Boris Brezillon Link: https://patchwork.freedesktop.org/patch/msgid/20190603165610.24614-2-helen.koike@collabora.com commit 1d5c76e66433382a1e170d1d5845bb0fed7467aa Author: Roger Pau Monne Date: Fri May 3 17:04:01 2019 +0200 xen-blkfront: switch kcalloc to kvcalloc for large array allocation There's no reason to request physically contiguous memory for those allocations. [boris: added CC to stable] Cc: stable@vger.kernel.org Reported-by: Ian Jackson Signed-off-by: Roger Pau Monné Reviewed-by: Juergen Gross Acked-by: Konrad Rzeszutek Wilk Signed-off-by: Boris Ostrovsky commit 2458d9d6d94be982b917e93c61a89b4426f32e31 Author: Hsin-Yi Wang Date: Thu May 30 17:18:47 2019 +0800 drm/mediatek: call mtk_dsi_stop() after mtk_drm_crtc_atomic_disable() mtk_dsi_stop() should be called after mtk_drm_crtc_atomic_disable(), which needs ovl irq for drm_crtc_wait_one_vblank(), since after mtk_dsi_stop() is called, ovl irq will be disabled. If drm_crtc_wait_one_vblank() is called after last irq, it will timeout with this message: "vblank wait timed out on crtc 0". This happens sometimes when turning off the screen. In drm_atomic_helper.c#disable_outputs(), the calling sequence when turning off the screen is: 1. mtk_dsi_encoder_disable() --> mtk_output_dsi_disable() --> mtk_dsi_stop(); /* sometimes make vblank timeout in atomic_disable */ --> mtk_dsi_poweroff(); 2. mtk_drm_crtc_atomic_disable() --> drm_crtc_wait_one_vblank(); ... --> mtk_dsi_ddp_stop() --> mtk_dsi_poweroff(); mtk_dsi_poweroff() has reference count design, change to make mtk_dsi_stop() called in mtk_dsi_poweroff() when refcount is 0. Fixes: 0707632b5bac ("drm/mediatek: update DSI sub driver flow for sending commands to panel") Signed-off-by: Hsin-Yi Wang Signed-off-by: CK Hu commit a4cd1d2b016d5d043ab2c4b9c4ec50a5805f5396 Author: Hsin-Yi Wang Date: Wed May 29 18:25:55 2019 +0800 drm/mediatek: clear num_pipes when unbind driver num_pipes is used for mutex created in mtk_drm_crtc_create(). If we don't clear num_pipes count, when rebinding driver, the count will be accumulated. From mtk_disp_mutex_get(), there can only be at most 10 mutex id. Clear this number so it starts from 0 in every rebind. Fixes: 119f5173628a ("drm/mediatek: Add DRM Driver for Mediatek SoC MT8173.") Signed-off-by: Hsin-Yi Wang Signed-off-by: CK Hu commit cf49b24ffa62766f8f04cd1c4cf17b75d29b240a Author: Hsin-Yi Wang Date: Wed May 29 18:25:54 2019 +0800 drm/mediatek: call drm_atomic_helper_shutdown() when unbinding driver shutdown all CRTC when unbinding drm driver. Fixes: 119f5173628a ("drm/mediatek: Add DRM Driver for Mediatek SoC MT8173.") Signed-off-by: Hsin-Yi Wang Signed-off-by: CK Hu commit f0fd848342802bc0f74620d387eead53e8905804 Author: Hsin-Yi Wang Date: Wed May 29 18:25:53 2019 +0800 drm/mediatek: unbind components in mtk_drm_unbind() Unbinding components (i.e. mtk_dsi and mtk_disp_ovl/rdma/color) will trigger master(mtk_drm)'s .unbind(), and currently mtk_drm's unbind won't actually unbind components. During the next bind, mtk_drm_kms_init() is called, and the components are added back. .unbind() should call mtk_drm_kms_deinit() to unbind components. And since component_master_del() in .remove() will trigger .unbind(), which will also unregister device, it's fine to remove original functions called here. Fixes: 119f5173628a ("drm/mediatek: Add DRM Driver for Mediatek SoC MT8173.") Signed-off-by: Hsin-Yi Wang Signed-off-by: CK Hu commit 8fd7a37b191f93737f6280a9b5de65f98acc12c9 Author: Hsin-Yi Wang Date: Wed May 29 18:25:52 2019 +0800 drm/mediatek: fix unbind functions detatch panel in mtk_dsi_destroy_conn_enc(), since .bind will try to attach it again. Fixes: 2e54c14e310f ("drm/mediatek: Add DSI sub driver") Signed-off-by: Hsin-Yi Wang Signed-off-by: CK Hu commit 28e74a7cfd6403f0d1c0f8b10b45d6fae37b227e Author: Russell King Date: Sun Jun 2 15:13:00 2019 +0100 net: sfp: read eeprom in maximum 16 byte increments Some SFP modules do not like reads longer than 16 bytes, so read the EEPROM in chunks of 16 bytes at a time. This behaviour is not specified in the SFP MSAs, which specifies: "The serial interface uses the 2-wire serial CMOS E2PROM protocol defined for the ATMEL AT24C01A/02/04 family of components." and "As long as the SFP+ receives an acknowledge, it shall serially clock out sequential data words. The sequence is terminated when the host responds with a NACK and a STOP instead of an acknowledge." We must avoid breaking a read across a 16-bit quantity in the diagnostic page, thankfully all 16-bit quantities in that page are naturally aligned. Signed-off-by: Russell King Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 67c0aaa1eaec60e9dab301012bdebe6726ae04bd Author: Xin Long Date: Sun Jun 2 19:09:55 2019 +0800 selftests: set sysctl bc_forwarding properly in router_broadcast.sh sysctl setting bc_forwarding for $rp2 is needed when ping_test_from h2, otherwise the bc packets from $rp2 won't be forwarded. This patch is to add this setting for $rp2. Also, as ping_test_from does grep "$from" only, which could match some unexpected output, some test case doesn't really work, like: # ping_test_from $h2 198.51.200.255 198.51.200.2 PING 198.51.200.255 from 198.51.100.2 veth3: 56(84) bytes of data. 64 bytes from 198.51.100.1: icmp_seq=1 ttl=64 time=0.336 ms When doing grep $form (198.51.200.2), the output could still match. So change to grep "bytes from $from" instead. Fixes: 40f98b9af943 ("selftests: add a selftest for directed broadcast forwarding") Signed-off-by: Xin Long Signed-off-by: David S. Miller commit 880c2d4b2fdfd580ebcd6bb7240a8027a1d34751 Author: Sean Wang Date: Sat Jun 1 08:16:27 2019 +0800 net: ethernet: mediatek: Use NET_IP_ALIGN to judge if HW RX_2BYTE_OFFSET is enabled Should only enable HW RX_2BYTE_OFFSET function in the case NET_IP_ALIGN equals to 2. Signed-off-by: Mark Lee Signed-off-by: Sean Wang Signed-off-by: David S. Miller commit 9e4f56f1a7f3287718d0083b5cb85298dc05a5fd Author: Sean Wang Date: Sat Jun 1 08:16:26 2019 +0800 net: ethernet: mediatek: Use hw_feature to judge if HWLRO is supported Should hw_feature as hardware capability flags to check if hardware LRO got support. Signed-off-by: Mark Lee Signed-off-by: Sean Wang Signed-off-by: David S. Miller commit 788a024921c48985939f8241c1ff862a7374d8f9 Merge: 66be4e66a7f4 46e04c25e72f Author: Linus Torvalds Date: Mon Jun 3 14:45:48 2019 -0700 Merge tag 'arc-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc Pull ARC fixes from Vineet Gupta: - Fix for userspace trying to access kernel vaddr space - HSDK platform DT updates - Cleanup some build warnings * tag 'arc-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc: ARC: [plat-hsdk] Get rid of inappropriate PHY settings ARC: [plat-hsdk]: Add support of Vivante GPU ARC: [plat-hsdk]: enable creg-gpio controller ARC: [plat-hsdk]: Add missing FIFO size entry in GMAC node ARC: [plat-hsdk]: Add missing multicast filter bins number to GMAC node ARC: mm: SIGSEGV userspace trying to access kernel virtual memory ARC: fix build warnings commit 09faf5a7d7c0bcb07faba072f611937af9dd5788 Author: Ivan Khoronzhuk Date: Fri May 31 16:47:25 2019 +0300 net: ethernet: ti: cpsw_ethtool: fix ethtool ring param set Fix ability to set RX descriptor number, the reason - initially "tx_max_pending" was set incorrectly, but the issue appears after adding sanity check, so fix is for "sanity" patch. Fixes: 37e2d99b59c476 ("ethtool: Ensure new ring parameters are within bounds during SRINGPARAM") Signed-off-by: Ivan Khoronzhuk Reviewed-by: Grygorii Strashko Signed-off-by: David S. Miller commit e7f3dd281cf916fe1231eca1a967c09d8f1a1fad Merge: 1e692f09e091 257a525fe2e4 Author: Alexei Starovoitov Date: Mon Jun 3 13:38:49 2019 -0700 Merge branch 'reuseport-fixes' Martin Lau says: ==================== s series has fixes when running reuseport's bpf_prog for udp lookup. If there is reuseport's bpf_prog, the common issue is the reuseport code path expects skb->data pointing to the transport header (udphdr here). A couple of commits broke this expectation. The issue is specific to running bpf_prog, so bpf tag is used for this series. Please refer to the individual commit message for details. ==================== Signed-off-by: Alexei Starovoitov commit 257a525fe2e49584842c504a92c27097407f778f Author: Martin KaFai Lau Date: Fri May 31 15:29:13 2019 -0700 bpf: udp: Avoid calling reuseport's bpf_prog from udp_gro When the commit a6024562ffd7 ("udp: Add GRO functions to UDP socket") added udp[46]_lib_lookup_skb to the udp_gro code path, it broke the reuseport_select_sock() assumption that skb->data is pointing to the transport header. This patch follows an earlier __udp6_lib_err() fix by passing a NULL skb to avoid calling the reuseport's bpf_prog. Fixes: a6024562ffd7 ("udp: Add GRO functions to UDP socket") Cc: Tom Herbert Signed-off-by: Martin KaFai Lau Acked-by: Song Liu Signed-off-by: Alexei Starovoitov commit 4ac30c4b3659efac031818c418beb51e630d512d Author: Martin KaFai Lau Date: Fri May 31 15:29:11 2019 -0700 bpf: udp: ipv6: Avoid running reuseport's bpf_prog from __udp6_lib_err __udp6_lib_err() may be called when handling icmpv6 message. For example, the icmpv6 toobig(type=2). __udp6_lib_lookup() is then called which may call reuseport_select_sock(). reuseport_select_sock() will call into a bpf_prog (if there is one). reuseport_select_sock() is expecting the skb->data pointing to the transport header (udphdr in this case). For example, run_bpf_filter() is pulling the transport header. However, in the __udp6_lib_err() path, the skb->data is pointing to the ipv6hdr instead of the udphdr. One option is to pull and push the ipv6hdr in __udp6_lib_err(). Instead of doing this, this patch follows how the original commit 538950a1b752 ("soreuseport: setsockopt SO_ATTACH_REUSEPORT_[CE]BPF") was done in IPv4, which has passed a NULL skb pointer to reuseport_select_sock(). Fixes: 538950a1b752 ("soreuseport: setsockopt SO_ATTACH_REUSEPORT_[CE]BPF") Cc: Craig Gallek Signed-off-by: Martin KaFai Lau Acked-by: Song Liu Acked-by: Craig Gallek Signed-off-by: Alexei Starovoitov commit 66be4e66a7f422128748e3c3ef6ee72b20a6197b Author: Linus Torvalds Date: Mon Jun 3 13:26:20 2019 -0700 rcu: locking and unlocking need to always be at least barriers Herbert Xu pointed out that commit bb73c52bad36 ("rcu: Don't disable preemption for Tiny and Tree RCU readers") was incorrect in making the preempt_disable/enable() be conditional on CONFIG_PREEMPT_COUNT. If CONFIG_PREEMPT_COUNT isn't enabled, the preemption enable/disable is a no-op, but still is a compiler barrier. And RCU locking still _needs_ that compiler barrier. It is simply fundamentally not true that RCU locking would be a complete no-op: we still need to guarantee (for example) that things that can trap and cause preemption cannot migrate into the RCU locked region. The way we do that is by making it a barrier. See for example commit 386afc91144b ("spinlocks and preemption points need to be at least compiler barriers") from back in 2013 that had similar issues with spinlocks that become no-ops on UP: they must still constrain the compiler from moving other operations into the critical region. Now, it is true that a lot of RCU operations already use READ_ONCE() and WRITE_ONCE() (which in practice likely would never be re-ordered wrt anything remotely interesting), but it is also true that that is not globally the case, and that it's not even necessarily always possible (ie bitfields etc). Reported-by: Herbert Xu Fixes: bb73c52bad36 ("rcu: Don't disable preemption for Tiny and Tree RCU readers") Cc: stable@kernel.org Cc: Boqun Feng Cc: Paul E. McKenney Signed-off-by: Linus Torvalds commit 30d1d92a888d03681b927c76a35181b4eed7071f Merge: 01e7a841b434 932296120543 Author: Linus Torvalds Date: Mon Jun 3 10:23:41 2019 -0700 Merge tag 'nds32-for-linux-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/greentime/linux Pull nds32 fixes from Greentime Hu: - fix warning for math-emu - fix nds32 fpu exception handling - fix nds32 fpu emulation implementation * tag 'nds32-for-linux-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/greentime/linux: nds32: add new emulations for floating point instruction nds32: Avoid IEX status being incorrectly modified math-emu: Use statement expressions to fix Wshift-count-overflow warning commit 01e7a841b4346836f19b40677e1fef4657cc0d0d Merge: f340208fe273 56cd0aefa475 Author: Linus Torvalds Date: Mon Jun 3 10:21:52 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc Pull sparc fixes from David Miller: "Three bug fixes, and TLB flushing one is of particular brown paper bag quality..." * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc: sparc: perf: fix updated event period in response to PERF_EVENT_IOC_PERIOD mdesc: fix a missing-check bug in get_vdev_port_node_info() sparc64: Fix regression in non-hypervisor TLB flush xcall commit f340208fe27319b1420bf19e96f9cf8eec85cccc Merge: f2c7c76c5d0a c1ea02f15ab5 Author: Linus Torvalds Date: Mon Jun 3 10:04:05 2019 -0700 Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost Pull virtio fixes from Michael Tsirkin: "Several fixes, some of them for CVEs" * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: vhost: scsi: add weight support vhost: vsock: add weight support vhost_net: fix possible infinite loop vhost: introduce vhost_exceeds_weight() virtio: Fix indentation of VIRTIO_MMIO virtio: add unlikely() to WARN_ON_ONCE() commit 14104eb6a351a5bad21fdd2cf05ca46ad5e5beab Author: Kai Vehmanen Date: Mon Jun 3 11:18:15 2019 -0500 ASoC: SOF: fix DSP oops definitions in FW ABI The definitions for DSP oops structures were not aligned correctly to current FW ABI version 3.6.0, leading to invalid data being printed out to debug logs. Fix the structs and update related platform code accordingly. Signed-off-by: Kai Vehmanen Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit d6947bb234dcc86e878d502516d0fb9d635aa2ae Author: Ranjani Sridharan Date: Fri May 31 09:01:37 2019 -0700 ASoC: hda: fix unbalanced codec dev refcount for HDA_DEV_ASOC HDA_DEV_ASOC type codec device refcounts are managed differently from HDA_DEV_LEGACY devices. The refcount is released explicitly in snd_hdac_ext_bus_device_remove() for ASOC type devices. So, remove the put_device() call in snd_hda_codec_dev_free() for such devices to make the refcount balanced. This will prevent the NULL pointer exception when the codec driver is released after the card is freed. Signed-off-by: Ranjani Sridharan Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit 347d1c4b0779cbeabaebb9b8e9967afe28db22f1 Author: Slawomir Blauciak Date: Mon Jun 3 11:20:32 2019 -0500 ASoC: SOF: ipc: replace fw ready bitfield with explicit bit ordering Previously the structure used bitfields, which do not guarantee bit ordering. This change makes sure the order is clearly defined. It also renames and repurposes the field for general use. Signed-off-by: Slawomir Blauciak Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit f86588302360e01fd0e0a4fc1a8d1b05e85e5173 Author: Pierre-Louis Bossart Date: Mon Jun 3 11:18:16 2019 -0500 ASoC: SOF: bump to ABI 3.6 We had a couple of misses with ABI changes, e.g. for Xtensa oops information and the integration of sound trigger, before we set-up a formal process to track evolutions. With this patch, the SOF kernel patches are officially aligned with the firmware 3.6 level. Changing this level has no impact on existing users and is fully backwards-compatible. Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit ca6c6f1850498ff2325e6092e37644a7e6000af0 Author: Pan Xiuli Date: Mon Jun 3 11:18:14 2019 -0500 ASoC: SOF: soundwire: add initial soundwire support Add soundwire dai type and update ABI version. Signed-off-by: Pan Xiuli Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 59be197354496b87869792bfa15477e8798462da Author: Pierre-Louis Bossart Date: Mon Jun 3 11:18:13 2019 -0500 ASoC: SOF: uapi: mirror firmware changes We missed these two definitions for GDB support and component notifications, they are defined for the SOF firmware. Since they are not used by the kernel so far, we can still add them without any ABI change. Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 3e951e7914408aee196db77a5cb377801c85692a Author: Kovács Tamás Date: Fri May 31 19:22:26 2019 +0200 ASoC: Intel: Baytrail: add quirk for Aegex 10 (RU2) tablet This tablet has an incorrect acpi identifier just like Thinkpad10 tablet, which is why it is trying to load the RT5640 driver instead of the RT5762 driver. The RT5640 driver, on the other hand, checks the hardware ID, so no driver are loaded during boot. This fix resolves to load the RT5672 driver on this tablet during boot. It also provides the correct IO configuration, like the jack detect mode 3, for 1.8V pullup. I would like to thank Pierre-Louis Bossart for helping with this patch. Signed-off-by: Kovács Tamás Signed-off-by: Mark Brown commit 025197ebb08a77eea702011c479ece1229a9525b Author: Darrick J. Wong Date: Mon Jun 3 09:18:26 2019 -0700 xfs: inode btree scrubber should calculate im_boffset correctly The im_boffset field is in units of bytes, whereas XFS_INO_OFFSET returns a value in units of inodes. Convert the units so that scrub on a 64k-block filesystem works correctly. Signed-off-by: Darrick J. Wong Reviewed-by: Brian Foster commit 7397993145872c74871ab2aa7fa26a427144088a Author: Faiz Abbas Date: Tue May 28 15:29:26 2019 +0530 mmc: sdhci_am654: Fix SLOTTYPE write In the call to regmap_update_bits() for SLOTTYPE, the mask and value fields are exchanged. Fix this. Signed-off-by: Faiz Abbas Fixes: 41fd4caeb00b ("mmc: sdhci_am654: Add Initial Support for AM654 SDHCI driver") Cc: stable@vger.kernel.org Signed-off-by: Ulf Hansson commit 2649939ad750db48f94d3cdab26e3a0115672e6b Author: Gustavo A. R. Silva Date: Mon May 27 13:10:50 2019 -0500 usb: typec: ucsi: ccg: fix memory leak in do_flash In case memory resources for *fw* were successfully allocated, release them before return. Addresses-Coverity-ID: 1445499 ("Resource leak") Fixes: 5c9ae5a87573 ("usb: typec: ucsi: ccg: add firmware flashing support") Signed-off-by: Gustavo A. R. Silva Acked-by: Heikki Krogerus Signed-off-by: Greg Kroah-Hartman commit e4c814aa7105a6a8320f64ecc48f13bc089eea88 Author: Tomer Tayar Date: Mon Jun 3 11:25:04 2019 +0000 habanalabs: Fix virtual address access via debugfs for 2MB pages The debugfs interface for accessing DRAM virtual addresses currently uses the 12 LSBs of a virtual address as an offset. However, it should use the 20 LSBs in case the device MMU page size is 2MB instead of 4KB. This patch fixes the offset calculation to be based on the page size. Signed-off-by: Tomer Tayar Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay commit ba1b9f8c4658663dd66e992bef31f6f8747b6c8c Author: james qian wang (Arm Technology China) Date: Thu Apr 25 07:12:09 2019 +0100 drm/komeda: Constify the usage of komeda_component/pipeline/dev_funcs Depends on: - https://patchwork.freedesktop.org/series/58976/ - https://patchwork.freedesktop.org/series/59855/ Reported-by: Emil Velikov Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit ec527c318036a65a083ef68d8ba95789d2212246 Author: Jiri Kosina Date: Thu May 30 00:09:39 2019 +0200 x86/power: Fix 'nosmt' vs hibernation triple fault during resume As explained in 0cc3cd21657b ("cpu/hotplug: Boot HT siblings at least once") we always, no matter what, have to bring up x86 HT siblings during boot at least once in order to avoid first MCE bringing the system to its knees. That means that whenever 'nosmt' is supplied on the kernel command-line, all the HT siblings are as a result sitting in mwait or cpudile after going through the online-offline cycle at least once. This causes a serious issue though when a kernel, which saw 'nosmt' on its commandline, is going to perform resume from hibernation: if the resume from the hibernated image is successful, cr3 is flipped in order to point to the address space of the kernel that is being resumed, which in turn means that all the HT siblings are all of a sudden mwaiting on address which is no longer valid. That results in triple fault shortly after cr3 is switched, and machine reboots. Fix this by always waking up all the SMT siblings before initiating the 'restore from hibernation' process; this guarantees that all the HT siblings will be properly carried over to the resumed kernel waiting in resume_play_dead(), and acted upon accordingly afterwards, based on the target kernel configuration. Symmetricaly, the resumed kernel has to push the SMT siblings to mwait again in case it has SMT disabled; this means it has to online all the siblings when resuming (so that they come out of hlt) and offline them again to let them reach mwait. Cc: 4.19+ # v4.19+ Debugged-by: Thomas Gleixner Fixes: 0cc3cd21657b ("cpu/hotplug: Boot HT siblings at least once") Signed-off-by: Jiri Kosina Acked-by: Pavel Machek Reviewed-by: Thomas Gleixner Reviewed-by: Josh Poimboeuf Signed-off-by: Rafael J. Wysocki commit 31e67340cc65edfd9dac5ef26f81de8414ce5906 Author: Rick Edgecombe Date: Mon May 27 14:10:58 2019 -0700 mm/vmalloc: Avoid rare case of flushing TLB with weird arguments In a rare case, flush_tlb_kernel_range() could be called with a start higher than the end. In vm_remove_mappings(), in case page_address() returns 0 for all pages (for example they were all in highmem), _vm_unmap_aliases() will be called with start = ULONG_MAX, end = 0 and flush = 1. If at the same time, the vmalloc purge operation is triggered by something else while the current operation is between remove_vm_area() and _vm_unmap_aliases(), then the vm mapping just removed will be already purged. In this case the call of vm_unmap_aliases() may not find any other mappings to flush and so end up flushing start = ULONG_MAX, end = 0. So only set flush = true if we find something in the direct mapping that we need to flush, and this way this can't happen. Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: David S. Miller Cc: Linus Torvalds Cc: Meelis Roos Cc: Nadav Amit Cc: Peter Zijlstra Cc: Andrew Morton Cc: Thomas Gleixner Fixes: 868b104d7379 ("mm/vmalloc: Add flag for freeing of special permsissions") Link: https://lkml.kernel.org/r/20190527211058.2729-3-rick.p.edgecombe@intel.com Signed-off-by: Ingo Molnar commit 8e41f8726dcf423621e2b6938d015b9796f6f676 Author: Rick Edgecombe Date: Mon May 27 14:10:57 2019 -0700 mm/vmalloc: Fix calculation of direct map addr range The calculation of the direct map address range to flush was wrong. This could cause the RO direct map alias to not get flushed. Today this shouldn't be a problem because this flush is only needed on x86 right now and the spurious fault handler will fix cached RO->RW translations. In the future though, it could cause the permissions to remain RO in the TLB for the direct map alias, and then the page would return from the page allocator to some other component as RO and cause a crash. So fix fix the address range calculation so the flush will include the direct map range. Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: David S. Miller Cc: Linus Torvalds Cc: Meelis Roos Cc: Nadav Amit Cc: Andrew Morton Cc: Peter Zijlstra Cc: Thomas Gleixner Fixes: 868b104d7379 ("mm/vmalloc: Add flag for freeing of special permsissions") Link: https://lkml.kernel.org/r/20190527211058.2729-2-rick.p.edgecombe@intel.com Signed-off-by: Ingo Molnar commit a61373476127edac8bcc5ee9d68a74dc1b864f53 Author: Rafael J. Wysocki Date: Mon May 27 12:45:18 2019 +0200 PM: sleep: Add kerneldoc comments to some functions Add kerneldoc comments to pm_suspend_via_firmware(), pm_resume_via_firmware() and pm_suspend_via_s2idle() to explain what they do. Signed-off-by: Rafael J. Wysocki commit 15e7f52a4596b496ce3da2fa4c1f94c6fb0023f2 Author: Xiaolin Zhang Date: Mon Jun 3 10:55:53 2019 +0800 drm/i915/gvt: save RING_HEAD into vreg when vgpu switched out Save RING_HEAD into vgpu reg when vgpu switched out and report it's value back to guest. v6: addressed comment for ring head wrap count support. (Zhenyu) v5: ring head wrap count support. v4: updated HEAD/TAIL with guest value, not host value. (Yan Zhao) v3: save RING HEAD/TAIL vgpu reg in save_ring_hw_state. (Zhenyu Wang) v2: save RING_TAIL as well during vgpu mmio switch to meet ring_is_idle condition. (Fred Gao) v1: based on input from Weinan. (Weinan Li) [zhenyuw: Include this fix for possible future guest kernel that would utilize RING_HEAD for hangcheck.] Reviewed-by: Zhenyu Wang Signed-off-by: Xiaolin Zhang Signed-off-by: Zhenyu Wang commit 56cd0aefa475079e9613085b14a0f05037518fed Author: Young Xiao <92siuyang@gmail.com> Date: Wed May 29 10:21:48 2019 +0800 sparc: perf: fix updated event period in response to PERF_EVENT_IOC_PERIOD The PERF_EVENT_IOC_PERIOD ioctl command can be used to change the sample period of a running perf_event. Consequently, when calculating the next event period, the new period will only be considered after the previous one has overflowed. This patch changes the calculation of the remaining event ticks so that they are offset if the period has changed. See commit 3581fe0ef37c ("ARM: 7556/1: perf: fix updated event period in response to PERF_EVENT_IOC_PERIOD") for details. Signed-off-by: Young Xiao <92siuyang@gmail.com> Signed-off-by: David S. Miller commit 80caf43549e7e41a695c6d1e11066286538b336f Author: Gen Zhang Date: Fri May 31 09:24:18 2019 +0800 mdesc: fix a missing-check bug in get_vdev_port_node_info() In get_vdev_port_node_info(), 'node_info->vdev_port.name' is allcoated by kstrdup_const(), and it returns NULL when fails. So 'node_info->vdev_port.name' should be checked. Signed-off-by: Gen Zhang Signed-off-by: David S. Miller commit 3fcb01f8ab9d1c1cdd68142078243b675e17041d Author: Weinan Li Date: Fri May 31 15:33:48 2019 +0800 drm/i915/gvt: add F_CMD_ACCESS flag for wa regs Instead of updating by MMIO write, all of the wa regs are initialized by wa_ctx. From host side, it should make this behavior as expected, add 'F_CMD_ACCESS' flag to these regs and allow access by commands. [ 123.557608] gvt: vgpu 2: srm access to non-render register (b11c) [ 123.563728] gvt: vgpu 2: MI_STORE_REGISTER_MEM handler error [ 123.569409] gvt: vgpu 2: cmd parser error [ 123.573424] 0x0 [ 123.573425] 0x24 [ 123.578686] gvt: vgpu 2: scan workload error [ 123.582958] GVT Internal error for the guest [ 123.587317] Now vgpu 2 will enter failsafe mode. [ 123.591938] gvt: vgpu 2: failed to submit desc 0 [ 123.596557] gvt: vgpu 2: fail submit workload on ring 0 [ 123.601786] gvt: vgpu 2: fail to emulate MMIO write 00002230 len 4 Acked-by: Yan Zhao Signed-off-by: Weinan Li Signed-off-by: Zhenyu Wang commit d3c976c14ad8af421134c428b0a89ff8dd3bd8f8 Author: James Clarke Date: Wed May 29 22:31:31 2019 +0100 sparc64: Fix regression in non-hypervisor TLB flush xcall Previously, %g2 would end up with the value PAGE_SIZE, but after the commit mentioned below it ends up with the value 1 due to being reused for a different purpose. We need it to be PAGE_SIZE as we use it to step through pages in our demap loop, otherwise we set different flags in the low 12 bits of the address written to, thereby doing things other than a nucleus page flush. Fixes: a74ad5e660a9 ("sparc64: Handle extremely large kernel TLB range flushes more gracefully.") Reported-by: Meelis Roos Tested-by: Meelis Roos Signed-off-by: James Clarke Signed-off-by: David S. Miller commit 12fd2aee6db765ab4e97c4a37e6d1f6c10e74ee6 Author: Matthew Wilcox Date: Sat Mar 9 22:25:27 2019 -0500 XArray tests: Add check_insert A simple test which just checks that inserting an entry into an empty array succeeds. Try various different interesting indices. Signed-off-by: Matthew Wilcox commit 5c089fd0c73411f2170ab795c9ffc16718c7d007 Author: Matthew Wilcox (Oracle) Date: Tue May 14 16:05:45 2019 -0400 idr: Fix idr_get_next race with idr_remove If the entry is deleted from the IDR between the call to radix_tree_iter_find() and rcu_dereference_raw(), idr_get_next() will return NULL, which will end the iteration prematurely. We should instead continue to the next entry in the IDR. This only happens if the iteration is protected by the RCU lock. Most IDR users use a spinlock or semaphore to exclude simultaneous modifications. It was noticed once the PID allocator was converted to use the IDR, as it uses the RCU lock, but there may be other users elsewhere in the kernel. We can't use the normal pattern of calling radix_tree_deref_retry() (which catches both a retry entry in a leaf node and a node entry in the root) as the IDR supports storing entries which are unaligned, which will trigger an infinite loop if they are encountered. Instead, we have to explicitly check whether the entry is a retry entry. Fixes: 0a835c4f090a ("Reimplement IDR and IDA using the radix tree") Reported-by: Brendan Gregg Tested-by: Brendan Gregg Signed-off-by: Matthew Wilcox (Oracle) commit afa0925c6fcc6a8f610e996ca09bc3215048033c Author: Willem de Bruijn Date: Fri May 31 12:37:23 2019 -0400 packet: unconditionally free po->rollover Rollover used to use a complex RCU mechanism for assignment, which had a race condition. The below patch fixed the bug and greatly simplified the logic. The feature depends on fanout, but the state is private to the socket. Fanout_release returns f only when the last member leaves and the fanout struct is to be freed. Destroy rollover unconditionally, regardless of fanout state. Fixes: 57f015f5eccf2 ("packet: fix crash in fanout_demux_rollover()") Reported-by: syzbot Diagnosed-by: Dmitry Vyukov Signed-off-by: Willem de Bruijn Signed-off-by: David S. Miller commit 8c268598192df9a07ca967f6a8d5f12c3c1b3888 Author: Wei Liu Date: Fri May 31 08:31:02 2019 +0100 Update my email address Signed-off-by: Wei Liu Acked-by: Paul Durrant Signed-off-by: David S. Miller commit 2e1f164861e500f4e068a9d909bbd3fcc7841483 Author: Yonglong Liu Date: Fri May 31 16:59:50 2019 +0800 net: hns: Fix loopback test failed at copper ports When doing a loopback test at copper ports, the serdes loopback and the phy loopback will fail, because of the adjust link had not finished, and phy not ready. Adds sleep between adjust link and test process to fix it. Signed-off-by: Yonglong Liu Signed-off-by: David S. Miller commit f2c7c76c5d0a443053e94adb9f0918fa2fb85c3a Author: Linus Torvalds Date: Sun Jun 2 13:55:33 2019 -0700 Linux 5.2-rc3 commit 62394708f3e01c9f2be6be74eb6305bae1ed924f Author: Nikita Yushchenko Date: Fri May 31 10:35:14 2019 +0300 net: dsa: mv88e6xxx: avoid error message on remove from VLAN 0 When non-bridged, non-vlan'ed mv88e6xxx port is moving down, error message is logged: failed to kill vid 0081/0 for device eth_cu_1000_4 This is caused by call from __vlan_vid_del() with vin set to zero, over call chain this results into _mv88e6xxx_port_vlan_del() called with vid=0, and mv88e6xxx_vtu_get() called from there returns -EINVAL. On symmetric path moving port up, call goes through mv88e6xxx_port_vlan_prepare() that calls mv88e6xxx_port_check_hw_vlan() that returns -EOPNOTSUPP for zero vid. This patch changes mv88e6xxx_vtu_get() to also return -EOPNOTSUPP for zero vid, then this error code is explicitly cleared in dsa_slave_vlan_rx_kill_vid() and error message is no longer logged. Signed-off-by: Nikita Yushchenko Reviewed-by: Vivien Didelot Signed-off-by: David S. Miller commit 7bd1d5edd0160b615ab8748cf94dabcab1fb01cb Merge: 6751b8d91af5 2ac44ab60870 Author: Linus Torvalds Date: Sun Jun 2 11:10:01 2019 -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 fixes: a quirk for KVM guests running on certain AMD CPUs, and a KASAN related build fix" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/CPU/AMD: Don't force the CPB cap when running under a hypervisor x86/boot: Provide KASAN compatible aliases for string routines commit 6751b8d91af515a5dc5196fe305eee0a635e2ea2 Merge: af0424522dbb 849e96f30068 Author: Linus Torvalds Date: Sun Jun 2 11:08:12 2019 -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: "On the kernel side there's a bunch of ring-buffer ordering fixes for a reproducible bug, plus a PEBS constraints regression fix. Plus tooling fixes" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: tools headers UAPI: Sync kvm.h headers with the kernel sources perf record: Fix s390 missing module symbol and warning for non-root users perf machine: Read also the end of the kernel perf test vmlinux-kallsyms: Ignore aliases to _etext when searching on kallsyms perf session: Add missing swap ops for namespace events perf namespace: Protect reading thread's namespace tools headers UAPI: Sync drm/drm.h with the kernel tools headers UAPI: Sync drm/i915_drm.h with the kernel tools headers UAPI: Sync linux/fs.h with the kernel tools headers UAPI: Sync linux/sched.h with the kernel tools arch x86: Sync asm/cpufeatures.h with the with the kernel tools include UAPI: Update copy of files related to new fspick, fsmount, fsconfig, fsopen, move_mount and open_tree syscalls perf arm64: Fix mksyscalltbl when system kernel headers are ahead of the kernel perf data: Fix 'strncat may truncate' build failure with recent gcc perf/ring-buffer: Use regular variables for nesting perf/ring-buffer: Always use {READ,WRITE}_ONCE() for rb->user_page data perf/ring_buffer: Add ordering to rb->nest increment perf/ring_buffer: Fix exposing a temporarily decreased data_head perf/x86/intel/ds: Fix EVENT vs. UEVENT PEBS constraints commit af0424522dbb235ee7f1eb84bce074004c9d8b51 Merge: 4fb5741c7c5d 88447c5b93d9 Author: Linus Torvalds Date: Sun Jun 2 11:06:13 2019 -0700 Merge branch 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull EFI fixes from Ingo Molnar: "Two EFI fixes: a quirk for weird systabs, plus add more robust error handling in the old 1:1 mapping code" * 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: efi: Allow the number of EFI configuration tables entries to be zero efi/x86/Add missing error handling to old_memmap 1:1 mapping code commit 4fb5741c7c5defd88046f570694fc3249479f36f Merge: a68dc6188242 7eaf51a2e094 Author: Linus Torvalds Date: Sun Jun 2 11:04:42 2019 -0700 Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull stacktrace fix from Ingo Molnar: "Fix a stack_trace_save_tsk_reliable() regression" * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: stacktrace: Unbreak stack_trace_save_tsk_reliable() commit a68dc6188242e1cc6f72eb3361e71633b4bc02a7 Merge: 460b48a0fefc 8e82fe2ab65a Author: Linus Torvalds Date: Sun Jun 2 10:22:38 2019 -0700 Merge tag 'spdx-5.2-rc3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core Pull SPDX fixes from Greg KH: "Here are just two small patches, that fix up some found SPDX identifier issues. The first patch fixes an error in a previous SPDX fixup patch, that causes build errors when doing 'make clean' on the tree (the fact that almost no one noticed it reflects the fact that kernel developers don't like doing that option very often...) The second patch fixes up a number of places in the tree where people mistyped the string "SPDX-License-Identifier". Given that people can not even type their own name all the time without mistakes, this was bound to happen, and odds are, we will have to add some type of check for this to checkpatch.pl to catch this happening in the future. Both of these have passed testing by 0-day" * tag 'spdx-5.2-rc3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: treewide: fix typos of SPDX-License-Identifier crypto: ux500 - fix license comment syntax error commit 460b48a0fefce25beb0fc0139e721c5691d65d7f Merge: b44a1dd3f648 8b909e354870 Author: Linus Torvalds Date: Sun Jun 2 10:21:04 2019 -0700 Merge tag 'powerpc-5.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc fixes from Michael Ellerman: "A minor fix to our IMC PMU code to print a less confusing error message when the driver can't initialise properly. A fix for a bug where a user requesting an unsupported branch sampling filter can corrupt PMU state, preventing the PMU from counting properly. And finally a fix for a bug in our support for kexec_file_load(), which prevented loading a kernel and initramfs. Most versions of kexec don't yet use kexec_file_load(). Thanks to: Anju T Sudhakar, Dave Young, Madhavan Srinivasan, Ravi Bangoria, Thiago Jung Bauermann" * tag 'powerpc-5.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: powerpc/kexec: Fix loading of kernel + initramfs with kexec_file_load() powerpc/perf: Fix MMCRA corruption by bhrb_filter powerpc/powernv: Return for invalid IMC domain commit b44a1dd3f648a433c525efcdd6ba95ad89d50e27 Merge: 38baf0bb79f5 f8d221d2e0e1 Author: Linus Torvalds Date: Sun Jun 2 10:19:39 2019 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull KVM fixes from Paolo Bonzini: "Fixes for PPC and s390" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: KVM: PPC: Book3S HV: Restore SPRG3 in kvmhv_p9_guest_entry() KVM: PPC: Book3S HV: Fix lockdep warning when entering guest on POWER9 KVM: PPC: Book3S HV: XIVE: Fix page offset when clearing ESB pages KVM: PPC: Book3S HV: XIVE: Take the srcu read lock when accessing memslots KVM: PPC: Book3S HV: XIVE: Do not clear IRQ data of passthrough interrupts KVM: PPC: Book3S HV: XIVE: Introduce a new mutex for the XIVE device KVM: PPC: Book3S HV: XIVE: Fix the enforced limit on the vCPU identifier KVM: PPC: Book3S HV: XIVE: Do not test the EQ flag validity when resetting KVM: PPC: Book3S HV: XIVE: Clear file mapping when device is released KVM: PPC: Book3S HV: Don't take kvm->lock around kvm_for_each_vcpu KVM: PPC: Book3S: Use new mutex to synchronize access to rtas token list KVM: PPC: Book3S HV: Use new mutex to synchronize MMU setup KVM: PPC: Book3S HV: Avoid touching arch.mmu_ready in XIVE release functions KVM: s390: Do not report unusabled IDs via KVM_CAP_MAX_VCPU_ID kvm: fix compile on s390 part 2 commit 38baf0bb79f51b4fcbf6df8fd181441d7b5c7913 Merge: 378e853f68e9 c8552db31d5e Author: Linus Torvalds Date: Sun Jun 2 10:18:11 2019 -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 memleak fix for the core, two driver bugfixes, as well as fixing missing file patterns to MAINTAINERS" * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: MAINTAINERS: add I2C DT bindings to ARM platforms MAINTAINERS: add DT bindings to i2c drivers i2c: synquacer: fix synquacer_i2c_doxfer() return value i2c: mlxcpld: Fix wrong initialization order in probe i2c: dev: fix potential memory leak in i2cdev_ioctl_rdwr commit 378e853f68e9a9548c64687880715ac3cca31c22 Merge: f58c356ea74f ca657468a0d4 Author: Linus Torvalds Date: Sun Jun 2 10:16:09 2019 -0700 Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal Pull thermal SoC fix from Eduardo Valentin: "A single revert, detected to cause issues on the tsens driver" * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal: Revert "drivers: thermal: tsens: Add new operation to check if a sensor is enabled" commit f58c356ea74feef8c2bb774dd19ded91567a5cf2 Merge: 9221dced3069 8c0f693c6eff Author: Linus Torvalds Date: Sun Jun 2 10:14:25 2019 -0700 Merge tag 'led-fixes-for-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds Pull LED fix from Jacek Anaszewski: "Fix for a recent change in LED core, that didn't take into account the possibility of calling led_blink_setup() from atomic context" * tag 'led-fixes-for-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds: leds: avoid flush_work in atomic context commit 9221dced3069cc9ae2986ba1191b02dae560df28 Merge: 1975b337ce26 61939b12dc24 Author: Linus Torvalds Date: Sun Jun 2 09:27:44 2019 -0700 Merge tag 'for-linus-20190601' of git://git.kernel.dk/linux-block Pull block fixes from Jens Axboe: - A set of patches fixing code comments / kerneldoc (Bart) - Don't allow loop file change for exclusive open (Jan) - Fix revalidate of hidden genhd (Jan) - Init queue failure memory free fix (Jes) - Improve rq limits failure print (John) - Fixup for queue removal/addition (Ming) - Missed error progagation for io_uring buffer registration (Pavel) * tag 'for-linus-20190601' of git://git.kernel.dk/linux-block: block: print offending values when cloned rq limits are exceeded blk-mq: Document the blk_mq_hw_queue_to_node() arguments blk-mq: Fix spelling in a source code comment block: Fix bsg_setup_queue() kernel-doc header block: Fix rq_qos_wait() kernel-doc header block: Fix blk_mq_*_map_queues() kernel-doc headers block: Fix throtl_pending_timer_fn() kernel-doc header block: Convert blk_invalidate_devt() header into a non-kernel-doc header block/partitions/ldm: Convert a kernel-doc header into a non-kernel-doc header blk-mq: Fix memory leak in error handling block: don't protect generic_make_request_checks with blk_queue_enter block: move blk_exit_queue into __blk_release_queue block: Don't revalidate bdev of hidden gendisk loop: Don't change loop device under exclusive opener io_uring: Fix __io_uring_register() false success commit 1975b337ce26b53814f1b5c55b260649a7115393 Merge: 7b3064f0e8de 3b0541791453 Author: Linus Torvalds Date: Sun Jun 2 09:26:34 2019 -0700 Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fixes from James Bottomley: "Six minor fixes to device drivers and one to the multipath alua handler. The most extensive fix is the zfcp port remove prevention one, but it's impact is only s390" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: libsas: delete sas port if expander discover failed scsi: libsas: only clear phy->in_shutdown after shutdown event done scsi: scsi_dh_alua: Fix possible null-ptr-deref scsi: smartpqi: properly set both the DMA mask and the coherent DMA mask scsi: zfcp: fix to prevent port_remove with pure auto scan LUNs (only sdevs) scsi: zfcp: fix missing zfcp_port reference put on -EBUSY from port_remove scsi: libcxgbi: add a check for NULL pointer in cxgbi_check_route() commit 7b3064f0e8deb55b8655dd8d36d9d1e8fb62b71b Merge: 3ab4436f688c e577c8b64d58 Author: Linus Torvalds Date: Sun Jun 2 08:51:30 2019 -0700 Merge branch 'akpm' (patches from Andrew) Merge misc fixes from Andrew Morton: "Various fixes and followups" * emailed patches from Andrew Morton : mm, compaction: make sure we isolate a valid PFN include/linux/generic-radix-tree.h: fix kerneldoc comment kernel/signal.c: trace_signal_deliver when signal_group_exit drivers/iommu/intel-iommu.c: fix variable 'iommu' set but not used spdxcheck.py: fix directory structures kasan: initialize tag to 0xff in __kasan_kmalloc z3fold: fix sheduling while atomic scripts/gdb: fix invocation when CONFIG_COMMON_CLK is not set mm/gup: continue VM_FAULT_RETRY processing even for pre-faults ocfs2: fix error path kobject memory leak memcg: make it work on sparse non-0-node systems mm, memcg: consider subtrees in memory.events prctl_set_mm: downgrade mmap_sem to read lock prctl_set_mm: refactor checks from validate_prctl_map kernel/fork.c: make max_threads symbol static arch/arm/boot/compressed/decompress.c: fix build error due to lz4 changes arch/parisc/configs/c8000_defconfig: remove obsoleted CONFIG_DEBUG_SLAB_LEAK mm/vmalloc.c: fix typo in comment lib/sort.c: fix kernel-doc notation warnings mm: fix Documentation/vm/hmm.rst Sphinx warnings commit e577c8b64d58fe307ea4d5149d31615df2d90861 Author: Suzuki K Poulose Date: Fri May 31 22:30:59 2019 -0700 mm, compaction: make sure we isolate a valid PFN When we have holes in a normal memory zone, we could endup having cached_migrate_pfns which may not necessarily be valid, under heavy memory pressure with swapping enabled ( via __reset_isolation_suitable(), triggered by kswapd). Later if we fail to find a page via fast_isolate_freepages(), we may end up using the migrate_pfn we started the search with, as valid page. This could lead to accessing NULL pointer derefernces like below, due to an invalid mem_section pointer. Unable to handle kernel NULL pointer dereference at virtual address 0000000000000008 [47/1825] Mem abort info: ESR = 0x96000004 Exception class = DABT (current EL), IL = 32 bits SET = 0, FnV = 0 EA = 0, S1PTW = 0 Data abort info: ISV = 0, ISS = 0x00000004 CM = 0, WnR = 0 user pgtable: 4k pages, 48-bit VAs, pgdp = 0000000082f94ae9 [0000000000000008] pgd=0000000000000000 Internal error: Oops: 96000004 [#1] SMP ... CPU: 10 PID: 6080 Comm: qemu-system-aar Not tainted 510-rc1+ #6 Hardware name: AmpereComputing(R) OSPREY EV-883832-X3-0001/OSPREY, BIOS 4819 09/25/2018 pstate: 60000005 (nZCv daif -PAN -UAO) pc : set_pfnblock_flags_mask+0x58/0xe8 lr : compaction_alloc+0x300/0x950 [...] Process qemu-system-aar (pid: 6080, stack limit = 0x0000000095070da5) Call trace: set_pfnblock_flags_mask+0x58/0xe8 compaction_alloc+0x300/0x950 migrate_pages+0x1a4/0xbb0 compact_zone+0x750/0xde8 compact_zone_order+0xd8/0x118 try_to_compact_pages+0xb4/0x290 __alloc_pages_direct_compact+0x84/0x1e0 __alloc_pages_nodemask+0x5e0/0xe18 alloc_pages_vma+0x1cc/0x210 do_huge_pmd_anonymous_page+0x108/0x7c8 __handle_mm_fault+0xdd4/0x1190 handle_mm_fault+0x114/0x1c0 __get_user_pages+0x198/0x3c0 get_user_pages_unlocked+0xb4/0x1d8 __gfn_to_pfn_memslot+0x12c/0x3b8 gfn_to_pfn_prot+0x4c/0x60 kvm_handle_guest_abort+0x4b0/0xcd8 handle_exit+0x140/0x1b8 kvm_arch_vcpu_ioctl_run+0x260/0x768 kvm_vcpu_ioctl+0x490/0x898 do_vfs_ioctl+0xc4/0x898 ksys_ioctl+0x8c/0xa0 __arm64_sys_ioctl+0x28/0x38 el0_svc_common+0x74/0x118 el0_svc_handler+0x38/0x78 el0_svc+0x8/0xc Code: f8607840 f100001f 8b011401 9a801020 (f9400400) ---[ end trace af6a35219325a9b6 ]--- The issue was reported on an arm64 server with 128GB with holes in the zone (e.g, [32GB@4GB, 96GB@544GB]), with a swap device enabled, while running 100 KVM guest instances. This patch fixes the issue by ensuring that the page belongs to a valid PFN when we fallback to using the lower limit of the scan range upon failure in fast_isolate_freepages(). Link: http://lkml.kernel.org/r/1558711908-15688-1-git-send-email-suzuki.poulose@arm.com Fixes: 5a811889de10f1eb ("mm, compaction: use free lists to quickly locate a migration target") Signed-off-by: Suzuki K Poulose Reported-by: Marc Zyngier Reviewed-by: Mel Gorman Reviewed-by: Anshuman Khandual Cc: Michal Hocko Cc: Qian Cai Cc: Marc Zyngier Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 590ba22ba0aa0680a41fb7e51ec5395a4e2c4a85 Author: Jonathan Corbet Date: Fri May 31 22:30:55 2019 -0700 include/linux/generic-radix-tree.h: fix kerneldoc comment The DOC comment block section in include/linux/generic-radix-tree.h contained a spurious colon, causing this warning in the documentation build: include/linux/generic-radix-tree.h:1: warning: no structured comments found Remove the colon and make the docs build happy. Link: http://lkml.kernel.org/r/20190524141933.74ae9050@lwn.net Signed-off-by: Jonathan Corbet Reviewed-by: Andrew Morton Cc: Kent Overstreet Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 98af37d624ed8c83f1953b1b6b2f6866011fc064 Author: Zhenliang Wei Date: Fri May 31 22:30:52 2019 -0700 kernel/signal.c: trace_signal_deliver when signal_group_exit In the fixes commit, removing SIGKILL from each thread signal mask and executing "goto fatal" directly will skip the call to "trace_signal_deliver". At this point, the delivery tracking of the SIGKILL signal will be inaccurate. Therefore, we need to add trace_signal_deliver before "goto fatal" after executing sigdelset. Note: SEND_SIG_NOINFO matches the fact that SIGKILL doesn't have any info. Link: http://lkml.kernel.org/r/20190425025812.91424-1-weizhenliang@huawei.com Fixes: cf43a757fd4944 ("signal: Restore the stop PTRACE_EVENT_EXIT") Signed-off-by: Zhenliang Wei Reviewed-by: Christian Brauner Reviewed-by: Oleg Nesterov Cc: Eric W. Biederman Cc: Ivan Delalande Cc: Arnd Bergmann Cc: Thomas Gleixner Cc: Deepa Dinamani Cc: Greg Kroah-Hartman Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d3ed71e5cc50e0df8362af295cbc906acef75558 Author: Qian Cai Date: Fri May 31 22:30:49 2019 -0700 drivers/iommu/intel-iommu.c: fix variable 'iommu' set but not used Commit cf04eee8bf0e ("iommu/vt-d: Include ACPI devices in iommu=pt") added for_each_active_iommu() in iommu_prepare_static_identity_mapping() but never used the each element, i.e, "drhd->iommu". drivers/iommu/intel-iommu.c: In function 'iommu_prepare_static_identity_mapping': drivers/iommu/intel-iommu.c:3037:22: warning: variable 'iommu' set but not used [-Wunused-but-set-variable] struct intel_iommu *iommu; Fixed the warning by appending a compiler attribute __maybe_unused for it. Link: http://lkml.kernel.org/r/20190523013314.2732-1-cai@lca.pw Signed-off-by: Qian Cai Suggested-by: Andrew Morton Cc: Joerg Roedel Cc: David Woodhouse Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8d7a7abfc6b42621adc070c7c29b013d7727ed6f Author: Vincenzo Frascino Date: Fri May 31 22:30:45 2019 -0700 spdxcheck.py: fix directory structures The LICENSE directory has recently changed structure and this makes spdxcheck fails as per below: FAIL: "Blob or Tree named 'other' not found" Traceback (most recent call last): File "scripts/spdxcheck.py", line 240, in spdx = read_spdxdata(repo) File "scripts/spdxcheck.py", line 41, in read_spdxdata for el in lictree[d].traverse(): [...] KeyError: "Blob or Tree named 'other' not found" Fix the script to restore the correctness on checkpatch License checking. References: 62be257e986d ("LICENSES: Rename other to deprecated") References: 8ea8814fcdcb ("LICENSES: Clearly mark dual license only licenses") Link: http://lkml.kernel.org/r/20190523084755.56739-1-vincenzo.frascino@arm.com Signed-off-by: Vincenzo Frascino Cc: Joe Perches Cc: Christoph Hellwig Cc: Thomas Gleixner Cc: Jeremy Cline Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 0600597c854e53d2f9b7a6a718c1da2b8b4cb4db Author: Nathan Chancellor Date: Fri May 31 22:30:42 2019 -0700 kasan: initialize tag to 0xff in __kasan_kmalloc When building with -Wuninitialized and CONFIG_KASAN_SW_TAGS unset, Clang warns: mm/kasan/common.c:484:40: warning: variable 'tag' is uninitialized when used here [-Wuninitialized] kasan_unpoison_shadow(set_tag(object, tag), size); ^~~ set_tag ignores tag in this configuration but clang doesn't realize it at this point in its pipeline, as it points to arch_kasan_set_tag as being the point where it is used, which will later be expanded to (void *)(object) without a use of tag. Initialize tag to 0xff, as it removes this warning and doesn't change the meaning of the code. Link: https://github.com/ClangBuiltLinux/linux/issues/465 Link: http://lkml.kernel.org/r/20190502163057.6603-1-natechancellor@gmail.com Fixes: 7f94ffbc4c6a ("kasan: add hooks implementation for tag-based mode") Signed-off-by: Nathan Chancellor Reviewed-by: Andrey Konovalov Reviewed-by: Andrey Ryabinin Cc: Alexander Potapenko Cc: Dmitry Vyukov Cc: Nick Desaulniers Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit bb9f6f63f32da40ca34a921e377ad3181a4f9023 Author: Vitaly Wool Date: Fri May 31 22:30:39 2019 -0700 z3fold: fix sheduling while atomic kmem_cache_alloc() may be called from z3fold_alloc() in atomic context, so we need to pass correct gfp flags to avoid "scheduling while atomic" bug. Link: http://lkml.kernel.org/r/20190523153245.119dfeed55927e8755250ddd@gmail.com Fixes: 7c2b8baa61fe5 ("mm/z3fold.c: add structure for buddy handles") Signed-off-by: Vitaly Wool Reviewed-by: Andrew Morton Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ef7a77c6de2f98c25ca97541f111f14bb74fc13d Author: Fabiano Rosas Date: Fri May 31 22:30:36 2019 -0700 scripts/gdb: fix invocation when CONFIG_COMMON_CLK is not set CLK_GET_RATE_NOCACHE depends on CONFIG_COMMON_CLK. Importing constants.py when CONFIG_COMMON_CLK is not defined causes: (gdb) lx-symbols (...) File "scripts/gdb/linux/proc.py", line 15, in from linux import constants File "scripts/gdb/linux/constants.py", line 2, in LX_CLK_GET_RATE_NOCACHE = gdb.parse_and_eval("CLK_GET_RATE_NOCACHE") gdb.error: No symbol "CLK_GET_RATE_NOCACHE" in current context. Link: http://lkml.kernel.org/r/20190523195313.24701-1-farosas@linux.ibm.com Fixes: e7e6f462c1be ("scripts/gdb: print cached rate in lx-clk-summary") Signed-off-by: Fabiano Rosas Reviewed-by: Stephen Boyd Cc: Jan Kiszka Cc: Kieran Bingham Cc: Leonard Crestez Cc: Jackie Liu Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit df17277b2a85c00f5710e33ce238ba4114687a28 Author: Mike Rapoport Date: Fri May 31 22:30:33 2019 -0700 mm/gup: continue VM_FAULT_RETRY processing even for pre-faults When get_user_pages*() is called with pages = NULL, the processing of VM_FAULT_RETRY terminates early without actually retrying to fault-in all the pages. If the pages in the requested range belong to a VMA that has userfaultfd registered, handle_userfault() returns VM_FAULT_RETRY *after* user space has populated the page, but for the gup pre-fault case there's no actual retry and the caller will get no pages although they are present. This issue was uncovered when running post-copy memory restore in CRIU after d9c9ce34ed5c ("x86/fpu: Fault-in user stack if copy_fpstate_to_sigframe() fails"). After this change, the copying of FPU state to the sigframe switched from copy_to_user() variants which caused a real page fault to get_user_pages() with pages parameter set to NULL. In post-copy mode of CRIU, the destination memory is managed with userfaultfd and lack of the retry for pre-fault case in get_user_pages() causes a crash of the restored process. Making the pre-fault behavior of get_user_pages() the same as the "normal" one fixes the issue. Link: http://lkml.kernel.org/r/1557844195-18882-1-git-send-email-rppt@linux.ibm.com Fixes: d9c9ce34ed5c ("x86/fpu: Fault-in user stack if copy_fpstate_to_sigframe() fails") Signed-off-by: Mike Rapoport Tested-by: Andrei Vagin [https://travis-ci.org/avagin/linux/builds/533184940] Tested-by: Hugh Dickins Cc: Andrea Arcangeli Cc: Sebastian Andrzej Siewior Cc: Borislav Petkov Cc: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b9fba67b3806e21b98bd5a98dc3921a8e9b42d61 Author: Tobin C. Harding Date: Fri May 31 22:30:29 2019 -0700 ocfs2: fix error path kobject memory leak If a call to kobject_init_and_add() fails we should call kobject_put() otherwise we leak memory. Add call to kobject_put() in the error path of call to kobject_init_and_add(). Please note, this has the side effect that the release method is called if kobject_init_and_add() fails. Link: http://lkml.kernel.org/r/20190513033458.2824-1-tobin@kernel.org Signed-off-by: Tobin C. Harding Reviewed-by: Greg Kroah-Hartman Reviewed-by: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Cc: Junxiao Bi Cc: Changwei Ge Cc: Gang He Cc: Jun Piao Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3e8589963773a5c23e2f1fe4bcad0e9a90b7f471 Author: Jiri Slaby Date: Fri May 31 22:30:26 2019 -0700 memcg: make it work on sparse non-0-node systems We have a single node system with node 0 disabled: Scanning NUMA topology in Northbridge 24 Number of physical nodes 2 Skipping disabled node 0 Node 1 MemBase 0000000000000000 Limit 00000000fbff0000 NODE_DATA(1) allocated [mem 0xfbfda000-0xfbfeffff] This causes crashes in memcg when system boots: BUG: unable to handle kernel NULL pointer dereference at 0000000000000008 #PF error: [normal kernel read fault] ... RIP: 0010:list_lru_add+0x94/0x170 ... Call Trace: d_lru_add+0x44/0x50 dput.part.34+0xfc/0x110 __fput+0x108/0x230 task_work_run+0x9f/0xc0 exit_to_usermode_loop+0xf5/0x100 It is reproducible as far as 4.12. I did not try older kernels. You have to have a new enough systemd, e.g. 241 (the reason is unknown -- was not investigated). Cannot be reproduced with systemd 234. The system crashes because the size of lru array is never updated in memcg_update_all_list_lrus and the reads are past the zero-sized array, causing dereferences of random memory. The root cause are list_lru_memcg_aware checks in the list_lru code. The test in list_lru_memcg_aware is broken: it assumes node 0 is always present, but it is not true on some systems as can be seen above. So fix this by avoiding checks on node 0. Remember the memcg-awareness by a bool flag in struct list_lru. Link: http://lkml.kernel.org/r/20190522091940.3615-1-jslaby@suse.cz Fixes: 60d3fd32a7a9 ("list_lru: introduce per-memcg lists") Signed-off-by: Jiri Slaby Acked-by: Michal Hocko Suggested-by: Vladimir Davydov Acked-by: Vladimir Davydov Reviewed-by: Shakeel Butt Cc: Johannes Weiner Cc: Raghavendra K T Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9852ae3fe5293264f01c49f2571ef7688f7823ce Author: Chris Down Date: Fri May 31 22:30:22 2019 -0700 mm, memcg: consider subtrees in memory.events memory.stat and other files already consider subtrees in their output, and we should too in order to not present an inconsistent interface. The current situation is fairly confusing, because people interacting with cgroups expect hierarchical behaviour in the vein of memory.stat, cgroup.events, and other files. For example, this causes confusion when debugging reclaim events under low, as currently these always read "0" at non-leaf memcg nodes, which frequently causes people to misdiagnose breach behaviour. The same confusion applies to other counters in this file when debugging issues. Aggregation is done at write time instead of at read-time since these counters aren't hot (unlike memory.stat which is per-page, so it does it at read time), and it makes sense to bundle this with the file notifications. After this patch, events are propagated up the hierarchy: [root@ktst ~]# cat /sys/fs/cgroup/system.slice/memory.events low 0 high 0 max 0 oom 0 oom_kill 0 [root@ktst ~]# systemd-run -p MemoryMax=1 true Running as unit: run-r251162a189fb4562b9dabfdc9b0422f5.service [root@ktst ~]# cat /sys/fs/cgroup/system.slice/memory.events low 0 high 0 max 7 oom 1 oom_kill 1 As this is a change in behaviour, this can be reverted to the old behaviour by mounting with the `memory_localevents' flag set. However, we use the new behaviour by default as there's a lack of evidence that there are any current users of memory.events that would find this change undesirable. akpm: this is a behaviour change, so Cc:stable. THis is so that forthcoming distros which use cgroup v2 are more likely to pick up the revised behaviour. Link: http://lkml.kernel.org/r/20190208224419.GA24772@chrisdown.name Signed-off-by: Chris Down Acked-by: Johannes Weiner Reviewed-by: Shakeel Butt Cc: Michal Hocko Cc: Tejun Heo Cc: Roman Gushchin Cc: Dennis Zhou Cc: Suren Baghdasaryan Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit bc81426f5beef7da863d3365bc9d45e820448745 Author: Michal Koutný Date: Fri May 31 22:30:19 2019 -0700 prctl_set_mm: downgrade mmap_sem to read lock The commit a3b609ef9f8b ("proc read mm's {arg,env}_{start,end} with mmap semaphore taken.") added synchronization of reading argument/environment boundaries under mmap_sem. Later commit 88aa7cc688d4 ("mm: introduce arg_lock to protect arg_start|end and env_start|end in mm_struct") avoided the coarse use of mmap_sem in similar situations. But there still remained two places that (mis)use mmap_sem. get_cmdline should also use arg_lock instead of mmap_sem when it reads the boundaries. The second place that should use arg_lock is in prctl_set_mm. By protecting the boundaries fields with the arg_lock, we can downgrade mmap_sem to reader lock (analogous to what we already do in prctl_set_mm_map). [akpm@linux-foundation.org: coding style fixes] Link: http://lkml.kernel.org/r/20190502125203.24014-3-mkoutny@suse.com Fixes: 88aa7cc688d4 ("mm: introduce arg_lock to protect arg_start|end and env_start|end in mm_struct") Signed-off-by: Michal Koutný Signed-off-by: Laurent Dufour Co-developed-by: Laurent Dufour Reviewed-by: Cyrill Gorcunov Acked-by: Michal Hocko Cc: Yang Shi Cc: Mateusz Guzik Cc: Kirill Tkhai Cc: Konstantin Khlebnikov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 11bbd8b416f8abf40900dc5041152892f873d915 Author: Michal Koutný Date: Fri May 31 22:30:16 2019 -0700 prctl_set_mm: refactor checks from validate_prctl_map Despite comment of validate_prctl_map claims there are no capability checks, it is not completely true since commit 4d28df6152aa ("prctl: Allow local CAP_SYS_ADMIN changing exe_file"). Extract the check out of the function and make the function perform purely arithmetic checks. This patch should not change any behavior, it is mere refactoring for following patch. [akpm@linux-foundation.org: coding style fixes] Link: http://lkml.kernel.org/r/20190502125203.24014-2-mkoutny@suse.com Signed-off-by: Michal Koutný Reviewed-by: Kirill Tkhai Reviewed-by: Cyrill Gorcunov Cc: Kirill Tkhai Cc: Laurent Dufour Cc: Mateusz Guzik Cc: Michal Hocko Cc: Yang Shi Cc: Konstantin Khlebnikov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8856ae4df3e9b5295ea2da7ad3b00796386454ec Author: Kefeng Wang Date: Fri May 31 22:30:12 2019 -0700 kernel/fork.c: make max_threads symbol static Fix build warning, kernel/fork.c:125:5: warning: symbol 'max_threads' was not declared. Should it be static? Link: http://lkml.kernel.org/r/20190516015118.140561-1-wangkefeng.wang@huawei.com Signed-off-by: Kefeng Wang Reported-by: Hulk Robot Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fb092eb63d3aba5b876a51cbe743c1c8a8b37d5b Author: Sebastian Andrzej Siewior Date: Fri May 31 22:30:09 2019 -0700 arch/arm/boot/compressed/decompress.c: fix build error due to lz4 changes include/linux/cpumask.h: In function 'cpumask_parse': include/linux/cpumask.h:636:21: error: implicit declaration of function 'strchrnul'; did you mean 'strchr'? [-Werror=implicit-function-declaration] Because arch/arm/boot/compressed/decompress.c does #define _LINUX_STRING_H_ preventing linux/string.h from providing strchrnul. It also #includes asm/string.h, which for arm has a declaration of strchr(), explaining why this didn't use to fail. Link: http://lkml.kernel.org/r/20190528115346.f5a7kn3hdnuf5rts@linutronix.de Fixes: 3713a4e1fdb8d ("include/linux/cpumask.h: fix double string traverse in cpumask_parse") Suggested-by: Rasmus Villemoes Cc: Yury Norov Cc: Thomas Gleixner Cc: Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 461071b09e29160c3d179def1b01f49e14df52de Author: David Rientjes Date: Fri May 31 22:30:06 2019 -0700 arch/parisc/configs/c8000_defconfig: remove obsoleted CONFIG_DEBUG_SLAB_LEAK CONFIG_DEBUG_SLAB_LEAK has been removed, so remove it from defconfig. Link: http://lkml.kernel.org/r/alpine.DEB.2.21.1905201015460.96074@chino.kir.corp.google.com Fixes: 7878c231dae0 ("slab: remove /proc/slab_allocators") Signed-off-by: David Rientjes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3806b04144e5e030aa17835ac1bb42473af4b957 Author: Andrew Morton Date: Fri May 31 22:30:03 2019 -0700 mm/vmalloc.c: fix typo in comment Reported-by: Nicholas Joll Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit aa52619ccbe056999d7c7231c8a1a11cedfccc6a Author: Randy Dunlap Date: Fri May 31 22:30:00 2019 -0700 lib/sort.c: fix kernel-doc notation warnings Fix kernel-doc notation in lib/sort.c by using correct function parameter names. lib/sort.c:59: warning: Excess function parameter 'size' description in 'swap_words_32' lib/sort.c:83: warning: Excess function parameter 'size' description in 'swap_words_64' lib/sort.c:110: warning: Excess function parameter 'size' description in 'swap_bytes' Link: http://lkml.kernel.org/r/60e25d3d-68d1-bde2-3b39-e4baa0b14907@infradead.org Fixes: 37d0ec34d111a ("lib/sort: make swap functions more generic") Signed-off-by: Randy Dunlap Cc: George Spelvin Cc: Andrew Morton Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 91173c6e18ab410fac12667656ab7cc3363687cc Author: Randy Dunlap Date: Fri May 31 22:29:57 2019 -0700 mm: fix Documentation/vm/hmm.rst Sphinx warnings Fix Sphinx warnings in Documentation/vm/hmm.rst by using "::" notation and inserting a blank line. Also add a missing ';'. Documentation/vm/hmm.rst:292: WARNING: Unexpected indentation. Documentation/vm/hmm.rst:300: WARNING: Unexpected indentation. Link: http://lkml.kernel.org/r/c5995359-7c82-4e47-c7be-b58a4dda0953@infradead.org Fixes: 023a019a9b4e ("mm/hmm: add default fault flags to avoid the need to pre-fill pfns arrays") Signed-off-by: Randy Dunlap Reviewed-by: Jérôme Glisse Reviewed-by: Mike Rapoport Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8e82fe2ab65a80b1526b285c661ab88cc5891e3a Author: Masahiro Yamada Date: Sat Jun 1 12:22:42 2019 +0900 treewide: fix typos of SPDX-License-Identifier Prior to the adoption of SPDX, it was difficult for tools to determine the correct license due to incomplete or badly formatted license text. The SPDX solves this issue, assuming people can correctly spell "SPDX-License-Identifier" although this assumption is broken in some places. Since scripts/spdxcheck.py parses only lines that exactly matches to the correct tag, it cannot (should not) detect this kind of error. If the correct tag is missing, scripts/checkpatch.pl warns like this: WARNING: Missing or malformed SPDX-License-Identifier tag in line * So, people should notice it before the patch submission, but in reality broken tags sometimes slip in. The checkpatch warning is not useful for checking the committed files globally since large number of files still have no SPDX tag. Also, I am not sure about the legal effect when the SPDX tag is broken. Anyway, these typos are absolutely worth fixing. It is pretty easy to find suspicious lines by grep. $ git grep --not -e SPDX-License-Identifier --and -e SPDX- -- \ :^LICENSES :^scripts/spdxcheck.py :^*/license-rules.rst arch/arm/kernel/bugs.c:// SPDX-Identifier: GPL-2.0 drivers/phy/st/phy-stm32-usbphyc.c:// SPDX-Licence-Identifier: GPL-2.0 drivers/pinctrl/sh-pfc/pfc-r8a77980.c:// SPDX-Lincense-Identifier: GPL 2.0 lib/test_stackinit.c:// SPDX-Licenses: GPLv2 sound/soc/codecs/max9759.c:// SPDX-Licence-Identifier: GPL-2.0 Signed-off-by: Masahiro Yamada Signed-off-by: Greg Kroah-Hartman commit 62e139eba33988bee0b6e5bc91f78b811d152a86 Author: Alex Xu (Hello71) Date: Sat Jun 1 10:49:43 2019 -0400 crypto: ux500 - fix license comment syntax error Causes error: drivers/crypto/ux500/cryp/Makefile:5: *** missing separator. Stop. Fixes: af873fcecef5 ("treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194") Signed-off-by: Alex Xu (Hello71) Signed-off-by: Greg Kroah-Hartman commit c8552db31d5e70f0311be031b22292bf256791da Author: Wolfram Sang Date: Tue May 21 10:21:30 2019 +0200 MAINTAINERS: add I2C DT bindings to ARM platforms Reviewed-by: Michal Simek Acked-by: Sekhar Nori Acked-by: Vladimir Zapolskiy Reviewed-by: Linus Walleij Reviewed-by: Heiko Stuebner Acked-by: Patrice Chotard Signed-off-by: Wolfram Sang commit a0c3200ae7b1bb3a4680fce1db1c3159b16698fa Author: Wolfram Sang Date: Tue May 21 10:15:04 2019 +0200 MAINTAINERS: add DT bindings to i2c drivers Acked-by: Gregory CLEMENT Reviewed-by: Andrew Lunn Signed-off-by: Wolfram Sang commit 69ae4f6aac1578575126319d3f55550e7e440449 Author: Takashi Iwai Date: Fri May 31 15:18:41 2019 +0200 mwifiex: Fix heap overflow in mwifiex_uap_parse_tail_ies() A few places in mwifiex_uap_parse_tail_ies() perform memcpy() unconditionally, which may lead to either buffer overflow or read over boundary. This patch addresses the issues by checking the read size and the destination size at each place more properly. Along with the fixes, the patch cleans up the code slightly by introducing a temporary variable for the token size, and unifies the error path with the standard goto statement. Reported-by: huangwen Signed-off-by: Takashi Iwai Signed-off-by: Kalle Valo commit 5f4d55d5791a8b7150dbaba239e92719ae0f94d4 Author: Lior Cohen Date: Wed May 29 16:39:55 2019 +0300 iwlwifi: mvm: change TLC config cmd sent by rs to be async The TLC_MNG_CONFIG sync cmd sent by the rs leads to a kernel warning of sleeping while in rcu read-side critical section. The fix is to change the command to be ASYNC (not blocking for the response anymore). Signed-off-by: Lior Cohen Signed-off-by: Luca Coelho Signed-off-by: Kalle Valo commit a8627176b0de7ba3f4524f641ddff4abf23ae4e4 Author: Jia-Ju Bai Date: Wed May 29 16:39:54 2019 +0300 iwlwifi: Fix double-free problems in iwl_req_fw_callback() In the error handling code of iwl_req_fw_callback(), iwl_dealloc_ucode() is called to free data. In iwl_drv_stop(), iwl_dealloc_ucode() is called again, which can cause double-free problems. To fix this bug, the call to iwl_dealloc_ucode() in iwl_req_fw_callback() is deleted. This bug is found by a runtime fuzzing tool named FIZZER written by us. Signed-off-by: Jia-Ju Bai Signed-off-by: Luca Coelho Signed-off-by: Kalle Valo commit b17dc0632a17fbfe66b34ee7c24e1cc10cfc503e Author: Matt Chen Date: Wed May 29 16:39:53 2019 +0300 iwlwifi: fix AX201 killer sku loading firmware issue When try to bring up the AX201 2 killer sku, we run into: [81261.392463] iwlwifi 0000:01:00.0: loaded firmware version 46.8c20f243.0 op_mode iwlmvm [81261.407407] iwlwifi 0000:01:00.0: Detected Intel(R) Dual Band Wireless AX 22000, REV=0x340 [81262.424778] iwlwifi 0000:01:00.0: Collecting data: trigger 16 fired. [81262.673359] iwlwifi 0000:01:00.0: Start IWL Error Log Dump: [81262.673365] iwlwifi 0000:01:00.0: Status: 0x00000000, count: -906373681 [81262.673368] iwlwifi 0000:01:00.0: Loaded firmware version: 46.8c20f243.0 [81262.673371] iwlwifi 0000:01:00.0: 0x507C015D | ADVANCED_SYSASSERT Fix this issue by adding 2 more cfg to avoid modifying the original cfg configuration. Signed-off-by: Matt Chen Signed-off-by: Luca Coelho Signed-off-by: Kalle Valo commit cc5470df4495049170d49466415680ee3c2a9a42 Author: Shahar S Matityahu Date: Wed May 29 16:39:52 2019 +0300 iwlwifi: print fseq info upon fw assert Read fseq info from FW registers and print it upon fw assert. The print is needed since the fseq version coming from the TLV might not be the actual version that is used. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho Signed-off-by: Kalle Valo commit 44f61b5c832c4085fcf476484efeaeef96dcfb8b Author: Shahar S Matityahu Date: Wed May 29 16:39:51 2019 +0300 iwlwifi: clear persistence bit according to device family The driver attempts to clear persistence bit on any device familiy even though only 9000 and 22000 families require it. Clear the bit only on the relevant device families. Each HW has different address to the write protection register. Use the right register for each HW Signed-off-by: Shahar S Matityahu Fixes: 8954e1eb2270 ("iwlwifi: trans: Clear persistence bit when starting the FW") Signed-off-by: Luca Coelho Signed-off-by: Kalle Valo commit b3500b472c880b5abe90ffd5c4a25aa736f906ad Author: Emmanuel Grumbach Date: Wed May 29 16:39:50 2019 +0300 iwlwifi: fix load in rfkill flow for unified firmware When we have a single image (same firmware image for INIT and OPERATIONAL), we couldn't load the driver and register to the stack if we had hardware RF-Kill asserted. Fix this. This required a few changes: 1) Run the firmware as part of the INIT phase even if its ucode_type is not IWL_UCODE_INIT. 2) Send the commands that are sent to the unified image in INIT flow even in RF-Kill. 3) Don't ask the transport to stop the hardware upon RF-Kill interrupt if the RF-Kill is asserted. 4) Allow the RF-Kill interrupt to take us out of L1A so that the RF-Kill interrupt will be received by the host (to enable the radio). Signed-off-by: Emmanuel Grumbach Signed-off-by: Luca Coelho Signed-off-by: Kalle Valo commit 23f57bfac7c283746ffba5caf4046b152074b2d9 Author: Johannes Berg Date: Wed May 29 16:39:49 2019 +0300 iwlwifi: mvm: remove d3_sram debugfs file This debugfs file is really old, and cannot work properly since the unified image support. Rather than trying to make it work, which is difficult now due to multiple images (LMAC/UMAC etc.) just remove it - we no longer need it since we properly do a FW coredump even in D3 cases. Signed-off-by: Johannes Berg Signed-off-by: Luca Coelho Signed-off-by: Kalle Valo commit 1e692f09e091bf5c8b38384f297d6dae5dbf0f12 Author: Luke Nelson Date: Thu May 30 15:29:22 2019 -0700 bpf, riscv: clear high 32 bits for ALU32 add/sub/neg/lsh/rsh/arsh In BPF, 32-bit ALU operations should zero-extend their results into the 64-bit registers. The current BPF JIT on RISC-V emits incorrect instructions that perform sign extension only (e.g., addw, subw) on 32-bit add, sub, lsh, rsh, arsh, and neg. This behavior diverges from the interpreter and JITs for other architectures. This patch fixes the bugs by performing zero extension on the destination register of 32-bit ALU operations. Fixes: 2353ecc6f91f ("bpf, riscv: add BPF JIT for RV64G") Cc: Xi Wang Signed-off-by: Luke Nelson Acked-by: Song Liu Acked-by: Björn Töpel Reviewed-by: Palmer Dabbelt Signed-off-by: Alexei Starovoitov commit cfd4921049269ee6765b4a1cb820b95d0df5dda5 Author: Michal Rostecki Date: Wed May 29 20:31:09 2019 +0200 libbpf: Return btf_fd for load_sk_storage_btf Before this change, function load_sk_storage_btf expected that libbpf__probe_raw_btf was returning a BTF descriptor, but in fact it was returning an information about whether the probe was successful (0 or 1). load_sk_storage_btf was using that value as an argument of the close function, which was resulting in closing stdout and thus terminating the process which called that function. That bug was visible in bpftool. `bpftool feature` subcommand was always exiting too early (because of closed stdout) and it didn't display all requested probes. `bpftool -j feature` or `bpftool -p feature` were not returning a valid json object. This change renames the libbpf__probe_raw_btf function to libbpf__load_raw_btf, which now returns a BTF descriptor, as expected in load_sk_storage_btf. v2: - Fix typo in the commit message. v3: - Simplify BTF descriptor handling in bpf_object__probe_btf_* functions. - Rename libbpf__probe_raw_btf function to libbpf__load_raw_btf and return a BTF descriptor. v4: - Fix typo in the commit message. Fixes: d7c4b3980c18 ("libbpf: detect supported kernel BTF features and sanitize BTF") Signed-off-by: Michal Rostecki Acked-by: Andrii Nakryiko Acked-by: Song Liu Signed-off-by: Alexei Starovoitov commit f8d221d2e0e1572d0d60174c118e3554d1aa79fa Merge: 24e8a2ca1f74 a86cb413f4bf Author: Paolo Bonzini Date: Sat Jun 1 00:49:02 2019 +0200 Merge tag 'kvm-s390-master-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into kvm-master KVM: s390: Fixes - fix compilation for !CONFIG_PCI - fix the output of KVM_CAP_MAX_VCPU_ID commit 24e8a2ca1f74574ad2ed1ac7af0260dd90fd911e Merge: 66f61c92889f d724c9e54939 Author: Paolo Bonzini Date: Sat Jun 1 00:48:45 2019 +0200 Merge tag 'kvm-ppc-fixes-5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc into kvm-master PPC KVM fixes for 5.2 - Several bug fixes for the new XIVE-native code. - Replace kvm->lock by other mutexes in several places where we hold a vcpu mutex, to avoid lock order inversions. - Fix a lockdep warning on guest entry for radix-mode guests. - Fix a bug causing user-visible corruption of SPRG3 on the host. commit abf82e8f7e9af40a49e3d905187c662a43c96c8f Author: Błażej Szczygieł Date: Sun May 12 22:33:13 2019 +0200 HID: a4tech: fix horizontal scrolling Since recent high resolution scrolling changes the A4Tech driver must check for the "REL_WHEEL_HI_RES" usage code. Link: https://bugzilla.kernel.org/show_bug.cgi?id=203369 Fixes: 2dc702c991e3774af9d7ce410eef410ca9e2357e ("HID: input: use the Resolution Multiplier for high-resolution scrolling") Signed-off-by: Błażej Szczygieł Signed-off-by: Jiri Kosina commit 64caea53e07f0a3bc4af74f4123b258c1ceb4d67 Author: Joseph Salisbury Date: Thu May 30 13:37:20 2019 -0400 HID: hyperv: Add a module description line This patch only adds a MODULE_DESCRIPTION statement to the driver. This change is only cosmetic, so there should be no runtime impact. Signed-off-by: Joseph Salisbury Reviewed-by: Michael Kelley Signed-off-by: Sasha Levin Signed-off-by: Jiri Kosina commit e8d67fa5696e2fcaf956dae36d11e6eff5246101 Author: Vladimir Oltean Date: Thu May 30 00:51:26 2019 +0300 net: dsa: sja1105: Don't store frame type in skb->cb Due to a confusion I thought that eth_type_trans() was called by the network stack whereas it can actually be called by network drivers to figure out the skb protocol and next packet_type handlers. In light of the above, it is not safe to store the frame type from the DSA tagger's .filter callback (first entry point on RX path), since GRO is yet to be invoked on the received traffic. Hence it is very likely that the skb->cb will actually get overwritten between eth_type_trans() and the actual DSA packet_type handler. Of course, what this patch fixes is the actual overwriting of the SJA1105_SKB_CB(skb)->type field from the GRO layer, which made all frames be seen as SJA1105_FRAME_TYPE_NORMAL (0). Fixes: 227d07a07ef1 ("net: dsa: sja1105: Add support for traffic through standalone ports") Signed-off-by: Vladimir Oltean Signed-off-by: David S. Miller commit 61939b12dc24d0ac958020f261046c35a16e0c48 Author: John Pittman Date: Thu May 23 17:49:39 2019 -0400 block: print offending values when cloned rq limits are exceeded While troubleshooting issues where cloned request limits have been exceeded, it is often beneficial to know the actual values that have been breached. Print these values, assisting in ease of identification of root cause of the breach. Reviewed-by: Chaitanya Kulkarni Reviewed-by: Ming Lei Signed-off-by: John Pittman Signed-off-by: Jens Axboe commit cd669f88b13474b7b65396d6413be973b7074ba1 Author: Bart Van Assche Date: Thu May 30 17:00:53 2019 -0700 blk-mq: Document the blk_mq_hw_queue_to_node() arguments Document the meaning of the blk_mq_hw_queue_to_node() arguments. Reviewed-by: Chaitanya Kulkarni Signed-off-by: Bart Van Assche Signed-off-by: Jens Axboe commit ef025d7ec2fc433e7db76afd74493aaa9a59d921 Author: Bart Van Assche Date: Thu May 30 17:00:52 2019 -0700 blk-mq: Fix spelling in a source code comment Change one occurrence of 'performace' into 'performance'. Cc: Max Gurtovoy Fixes: fe631457ff3e ("blk-mq: map all HWQ also in hyperthreaded system") # v4.13. Reviewed-by: Chaitanya Kulkarni Signed-off-by: Bart Van Assche Signed-off-by: Jens Axboe commit a0b77e36e1da77bfade26f2f32c326b9a2f3fbb9 Author: Bart Van Assche Date: Thu May 30 17:00:51 2019 -0700 block: Fix bsg_setup_queue() kernel-doc header Document all bsg_setup_queue() arguments as required. Fixes: aae3b069d5ce ("bsg: pass in desired timeout handler") # v5.0. Reviewed-by: Chaitanya Kulkarni Signed-off-by: Bart Van Assche Signed-off-by: Jens Axboe commit 83826a506632e9ec5a0ed011d9fd8e5ca768b384 Author: Bart Van Assche Date: Thu May 30 17:00:50 2019 -0700 block: Fix rq_qos_wait() kernel-doc header Add documentation for the @rqw argument and change " - " into ": ". Fixes: 84f603246db9 ("block: add rq_qos_wait to rq_qos") # v5.0-rc1~52^2~140. Reviewed-by: Chaitanya Kulkarni Signed-off-by: Bart Van Assche Signed-off-by: Jens Axboe commit 0542cd57d266074114d70791ab245e18f750cd32 Author: Bart Van Assche Date: Thu May 30 17:00:49 2019 -0700 block: Fix blk_mq_*_map_queues() kernel-doc headers This patch avoids that the kernel-doc script complains about these function headers when building with W=1. Cc: Hannes Reinecke Cc: Keith Busch Fixes: ed76e329d74a ("blk-mq: abstract out queue map") # v5.0. Fixes: e42b3867de4b ("blk-mq-rdma: pass in queue map to blk_mq_rdma_map_queues") # v5.0. Reviewed-by: Chaitanya Kulkarni Signed-off-by: Bart Van Assche Signed-off-by: Jens Axboe commit 216382dccb2e0c101671cc5444e307fef24290dd Author: Bart Van Assche Date: Thu May 30 17:00:48 2019 -0700 block: Fix throtl_pending_timer_fn() kernel-doc header Commit e99e88a9d2b0 renamed a function argument without updating the corresponding kernel-doc header. Update the kernel-doc header. Reviewed-by: Chaitanya Kulkarni Reviewed-by: Kees Cook Fixes: e99e88a9d2b0 ("treewide: setup_timer() -> timer_setup()") # v4.15. Signed-off-by: Bart Van Assche Signed-off-by: Jens Axboe commit 33c826ef19df9bf662e3a12a649e081e2fdf9084 Author: Bart Van Assche Date: Thu May 30 17:00:47 2019 -0700 block: Convert blk_invalidate_devt() header into a non-kernel-doc header This patch avoids that the kernel-doc tool warns about this function header when building with W=1. Reviewed-by: Chaitanya Kulkarni Signed-off-by: Bart Van Assche Signed-off-by: Jens Axboe commit 210eaaaea805a2fb8bb42dade49c294d9a94f13a Author: Bart Van Assche Date: Thu May 30 17:00:46 2019 -0700 block/partitions/ldm: Convert a kernel-doc header into a non-kernel-doc header This patch avoids that the kernel-doc tool warns about this function header when building with W=1. Reviewed-by: Chaitanya Kulkarni Signed-off-by: Bart Van Assche Signed-off-by: Jens Axboe commit 3ab4436f688c2d2f221793953cd05435ca84261c Merge: 41e7231fab9d 141731d15d6e Author: Linus Torvalds Date: Fri May 31 13:51:16 2019 -0700 Merge tag 'nfsd-5.2-1' of git://linux-nfs.org/~bfields/linux Pull nfsd fix from Bruce Fields: "This reverts a minor fix which could cause us to treat conflicting NLM locks as nonconflicting. We have proper fix queued up for 5.3. In the meantime, a quick revert seems best for 5.2 and stable" * tag 'nfsd-5.2-1' of git://linux-nfs.org/~bfields/linux: Revert "lockd: Show pid of lockd for remote locks" commit 41e7231fab9d76e906b6d8abe09c44c7b9656d33 Merge: d266b3f5cac0 31fad7d41e73 Author: Linus Torvalds Date: Fri May 31 13:49:50 2019 -0700 Merge tag 'v5.2-rc2-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6 Pull cifs fixes from Steve French: "Four small smb3 fixes, one for stable" * tag 'v5.2-rc2-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6: CIFS: cifs_read_allocate_pages: don't iterate through whole page array on ENOMEM dfs_cache: fix a wrong use of kfree in flush_cache_ent() fs/cifs/smb2pdu.c: fix buffer free in SMB2_ioctl_free cifs: fix memory leak of pneg_inbuf on -EOPNOTSUPP ioctl case commit 8c0f693c6effbc3f42f77a9e81209af9af20910c Author: Pavel Machek Date: Sun May 26 09:38:55 2019 +0200 leds: avoid flush_work in atomic context It turns out that various triggers use led_blink_setup() from atomic context, so we can't do a flush_work there. Flush is still needed for slow LEDs, but we can move it to sysfs code where it is safe. WARNING: inconsistent lock state 5.2.0-rc1 #1 Tainted: G W -------------------------------- inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage. swapper/1/0 [HC0[0]:SC1[1]:HE1:SE0] takes: 000000006e30541b ((work_completion)(&led_cdev->set_brightness_work)){+.?.}, at: +__flush_work+0x3b/0x38a {SOFTIRQ-ON-W} state was registered at: lock_acquire+0x146/0x1a1 __flush_work+0x5b/0x38a flush_work+0xb/0xd led_blink_setup+0x1e/0xd3 led_blink_set+0x3f/0x44 tpt_trig_timer+0xdb/0x106 ieee80211_mod_tpt_led_trig+0xed/0x112 Fixes: 0db37915d912 ("leds: avoid races with workqueue") Signed-off-by: Pavel Machek Tested-by: Hugh Dickins Signed-off-by: Jacek Anaszewski commit d266b3f5cac09434eb624af202f9a31307b34a88 Merge: 8164c5719b86 8cdc23a3d9ec Author: Linus Torvalds Date: Fri May 31 11:08:44 2019 -0700 Merge branch 'next-fixes-for-5.2-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity Pull integrity subsystem fixes from Mimi Zohar: "Four bug fixes, none 5.2-specific, all marked for stable. The first two are related to the architecture specific IMA policy support. The other two patches, one is related to EVM signatures, based on additional hash algorithms, and the other is related to displaying the IMA policy" * 'next-fixes-for-5.2-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity: ima: show rules with IMA_INMASK correctly evm: check hash algorithm passed to init_desc() ima: fix wrong signed policy requirement when not appraising x86/ima: Check EFI_RUNTIME_SERVICES before using commit 8164c5719b864da3bcfee97ad8af8cfd7ee5ad8c Merge: 27a03b1a71b9 d10e0cc113c9 Author: Linus Torvalds Date: Fri May 31 10:53:34 2019 -0700 Merge tag 'for-linus-5.2b-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip Pull xen fixes from Juergen Gross: "One minor cleanup patch and a fix for handling of live migration when running as Xen guest" * tag 'for-linus-5.2b-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: xenbus: Avoid deadlock during suspend due to open transactions xen/pvcalls: Remove set but not used variable commit 7b785645e8f13e17cbce492708cf6e7039d32e46 Author: Johannes Weiner Date: Fri May 24 10:12:46 2019 -0400 mm: fix page cache convergence regression Since a28334862993 ("page cache: Finish XArray conversion"), on most major Linux distributions, the page cache doesn't correctly transition when the hot data set is changing, and leaves the new pages thrashing indefinitely instead of kicking out the cold ones. On a freshly booted, freshly ssh'd into virtual machine with 1G RAM running stock Arch Linux: [root@ham ~]# ./reclaimtest.sh + dd of=workingset-a bs=1M count=0 seek=600 + cat workingset-a + cat workingset-a + cat workingset-a + cat workingset-a + cat workingset-a + cat workingset-a + cat workingset-a + cat workingset-a + ./mincore workingset-a 153600/153600 workingset-a + dd of=workingset-b bs=1M count=0 seek=600 + cat workingset-b + cat workingset-b + cat workingset-b + cat workingset-b + ./mincore workingset-a workingset-b 104029/153600 workingset-a 120086/153600 workingset-b + cat workingset-b + cat workingset-b + cat workingset-b + cat workingset-b + ./mincore workingset-a workingset-b 104029/153600 workingset-a 120268/153600 workingset-b workingset-b is a 600M file on a 1G host that is otherwise entirely idle. No matter how often it's being accessed, it won't get cached. While investigating, I noticed that the non-resident information gets aggressively reclaimed - /proc/vmstat::workingset_nodereclaim. This is a problem because a workingset transition like this relies on the non-resident information tracked in the page cache tree of evicted file ranges: when the cache faults are refaults of recently evicted cache, we challenge the existing active set, and that allows a new workingset to establish itself. Tracing the shrinker that maintains this memory revealed that all page cache tree nodes were allocated to the root cgroup. This is a problem, because 1) the shrinker sizes the amount of non-resident information it keeps to the size of the cgroup's other memory and 2) on most major Linux distributions, only kernel threads live in the root cgroup and everything else gets put into services or session groups: [root@ham ~]# cat /proc/self/cgroup 0::/user.slice/user-0.slice/session-c1.scope As a result, we basically maintain no non-resident information for the workloads running on the system, thus breaking the caching algorithm. Looking through the code, I found the culprit in the above-mentioned patch: when switching from the radix tree to xarray, it dropped the __GFP_ACCOUNT flag from the tree node allocations - the flag that makes sure the allocated memory gets charged to and tracked by the cgroup of the calling process - in this case, the one doing the fault. To fix this, allow xarray users to specify per-tree flag that makes xarray allocate nodes using __GFP_ACCOUNT. Then restore the page cache tree annotation to request such cgroup tracking for the cache nodes. With this patch applied, the page cache correctly converges on new workingsets again after just a few iterations: [root@ham ~]# ./reclaimtest.sh + dd of=workingset-a bs=1M count=0 seek=600 + cat workingset-a + cat workingset-a + cat workingset-a + cat workingset-a + cat workingset-a + cat workingset-a + cat workingset-a + cat workingset-a + ./mincore workingset-a 153600/153600 workingset-a + dd of=workingset-b bs=1M count=0 seek=600 + cat workingset-b + ./mincore workingset-a workingset-b 124607/153600 workingset-a 87876/153600 workingset-b + cat workingset-b + ./mincore workingset-a workingset-b 81313/153600 workingset-a 133321/153600 workingset-b + cat workingset-b + ./mincore workingset-a workingset-b 63036/153600 workingset-a 153600/153600 workingset-b Cc: stable@vger.kernel.org # 4.20+ Signed-off-by: Johannes Weiner Reviewed-by: Shakeel Butt Signed-off-by: Matthew Wilcox (Oracle) commit 27a03b1a71b9adfa7f4ef3f61452fb3bc5b195b1 Merge: 702c31e8564c 674459be1169 Author: Linus Torvalds Date: Fri May 31 10:49:25 2019 -0700 Merge tag 's390-5.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull s390 fixes from Heiko Carstens: - Farewell Martin Schwidefsky: add Martin to CREDITS and remove him from MAINTAINERS - Vasily Gorbik and Christian Borntraeger join as maintainers for s390 - Fix locking bug in ctr(aes) and ctr(des) s390 specific ciphers - A rather large patch which fixes gcm-aes-s390 scatter gather handling - Fix zcrypt wrong dispatching for control domain CPRBs - Fix assignment of bus resources in PCI code - Fix structure definition for set PCI function - Fix one compile error and one compile warning seen when CONFIG_OPTIMIZE_INLINING is enabled * tag 's390-5.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: MAINTAINERS: add Vasily Gorbik and Christian Borntraeger for s390 MAINTAINERS: Farewell Martin Schwidefsky s390/crypto: fix possible sleep during spinlock aquired s390/crypto: fix gcm-aes-s390 selftest failures s390/zcrypt: Fix wrong dispatching for control domain CPRBs s390/pci: fix assignment of bus resources s390/pci: fix struct definition for set PCI function s390: mark __cpacf_check_opcode() and cpacf_query_func() as __always_inline s390: add unreachable() to dump_fault_info() to fix -Wmaybe-uninitialized commit c03cd7738a83b13739f00546166969342c8ff014 Author: Tejun Heo Date: Fri May 31 10:38:58 2019 -0700 cgroup: Include dying leaders with live threads in PROCS iterations CSS_TASK_ITER_PROCS currently iterates live group leaders; however, this means that a process with dying leader and live threads will be skipped. IOW, cgroup.procs might be empty while cgroup.threads isn't, which is confusing to say the least. Fix it by making cset track dying tasks and include dying leaders with live threads in PROCS iteration. Signed-off-by: Tejun Heo Reported-and-tested-by: Topi Miettinen Cc: Oleg Nesterov commit b636fd38dc40113f853337a7d2a6885ad23b8811 Author: Tejun Heo Date: Fri May 31 10:38:58 2019 -0700 cgroup: Implement css_task_iter_skip() When a task is moved out of a cset, task iterators pointing to the task are advanced using the normal css_task_iter_advance() call. This is fine but we'll be tracking dying tasks on csets and thus moving tasks from cset->tasks to (to be added) cset->dying_tasks. When we remove a task from cset->tasks, if we advance the iterators, they may move over to the next cset before we had the chance to add the task back on the dying list, which can allow the task to escape iteration. This patch separates out skipping from advancing. Skipping only moves the affected iterators to the next pointer rather than fully advancing it and the following advancing will recognize that the cursor has already been moved forward and do the rest of advancing. This ensures that when a task moves from one list to another in its cset, as long as it moves in the right direction, it's always visible to iteration. This doesn't cause any visible behavior changes. Signed-off-by: Tejun Heo Cc: Oleg Nesterov commit 6b115bf58e6f013ca75e7115aabcbd56c20ff31d Author: Tejun Heo Date: Fri May 31 10:38:57 2019 -0700 cgroup: Call cgroup_release() before __exit_signal() cgroup_release() calls cgroup_subsys->release() which is used by the pids controller to uncharge its pid. We want to use it to manage iteration of dying tasks which requires putting it before __unhash_process(). Move cgroup_release() above __exit_signal(). While this makes it uncharge before the pid is freed, pid is RCU freed anyway and the window is very narrow. Signed-off-by: Tejun Heo Cc: Oleg Nesterov commit 702c31e8564c386dd5e304e46cf22fcaa40b1a66 Merge: 72cea7ac5f14 d491f2b75237 Author: Linus Torvalds Date: Fri May 31 10:38:35 2019 -0700 Merge tag 'pm-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull power management fixes from Rafael Wysocki: "These fix three issues in the system-wide suspend and hibernation area related to PCI device PM handling by suspend-to-idle, device wakeup optimizations and arbitrary differences between suspend and hiberantion. Specifics: - Modify the PCI bus type's PM code to avoid putting devices left by their drivers in D0 on purpose during suspend to idle into low-power states as doing that may confuse the system resume callbacks of the drivers in question (Rafael Wysocki). - Avoid checking ACPI wakeup configuration during system-wide suspend for suspended devices that do not use ACPI-based wakeup to allow them to stay in suspend more often (Rafael Wysocki). - The last phase of hibernation is analogous to system-wide suspend also because on platforms with ACPI it passes control to the platform firmware to complete the transision, so make it indicate that by calling pm_set_suspend_via_firmware() to allow the drivers that care about this to do the right thing (Rafael Wysocki)" * tag 'pm-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: PCI: PM: Avoid possible suspend-to-idle issue ACPI: PM: Call pm_set_suspend_via_firmware() during hibernation ACPI/PCI: PM: Add missing wakeup.flags.valid checks commit 72cea7ac5f14ee25cb96c7863a05223ba5a2c9a9 Merge: 2f4c53349961 7210e060155b Author: Linus Torvalds Date: Fri May 31 10:26:05 2019 -0700 Merge tag 'gcc-plugins-v5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux Pull gcc-plugins fix from Kees Cook: "Handle unusual header environment, fixing a redefined macro error under a Darwin build host" * tag 'gcc-plugins-v5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: gcc-plugins: Fix build failures under Darwin host commit 5142967ab524eb8e5c1f6122e46e2df81bae178b Author: Pablo Neira Ayuso Date: Fri May 24 22:26:34 2019 +0200 netfilter: nf_tables: fix module autoload with inet family Use MODULE_ALIAS_NFT_EXPR() to make happy the inet family with nat. Fixes: 63ce3940f3ab ("netfilter: nft_redir: add inet support") Fixes: 071657d2c38c ("netfilter: nft_masq: add inet support") Signed-off-by: Pablo Neira Ayuso commit 8aa75b72e3e6f0f566cd963606ec5da11b195c0b Merge: 498ddaa3b4e7 8d45f1de3994 Author: Greg Kroah-Hartman Date: Fri May 31 09:19:42 2019 -0700 Merge tag 'misc-habanalabs-fixes-2019-05-24' of git://people.freedesktop.org/~gabbayo/linux into char-misc-linus Oded writes: This tag contains the following fixes: - Halt debug engines when user process closes the FD. We can't allow the device to issue transactions for a user which doesn't exists anymore. - Fix various security holes in debugfs API. - Add a new opcode to the DEBUG IOCTL API. The opcode is designed for setting the device into and out of debug mode. Although not a fix per-se, because this is a new IOCTL which is upstreamed in kernel 5.2, I think this is justified at this point because we won't be able to change the API later. - Fix a bug where the code used an uninitialized mutex * tag 'misc-habanalabs-fixes-2019-05-24' of git://people.freedesktop.org/~gabbayo/linux: habanalabs: Avoid using a non-initialized MMU cache mutex habanalabs: fix debugfs code uapi/habanalabs: add opcode for enable/disable device debug mode habanalabs: halt debug engines on user process close commit 2f4c53349961c8ca480193e47da4d44fdb8335a8 Merge: 2209a3055d6f 96ac6d435100 Author: Linus Torvalds Date: Fri May 31 08:34:32 2019 -0700 Merge tag 'spdx-5.2-rc3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core Pull yet more SPDX updates from Greg KH: "Here is another set of reviewed patches that adds SPDX tags to different kernel files, based on a set of rules that are being used to parse the comments to try to determine that the license of the file is "GPL-2.0-or-later" or "GPL-2.0-only". Only the "obvious" versions of these matches are included here, a number of "non-obvious" variants of text have been found but those have been postponed for later review and analysis. There is also a patch in here to add the proper SPDX header to a bunch of Kbuild files that we have missed in the past due to new files being added and forgetting that Kbuild uses two different file names for Makefiles. This issue was reported by the Kbuild maintainer. These patches have been out for review on the linux-spdx@vger mailing list, and while they were created by automatic tools, they were hand-verified by a bunch of different people, all whom names are on the patches are reviewers" * tag 'spdx-5.2-rc3-1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (82 commits) treewide: Add SPDX license identifier - Kbuild treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 225 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 224 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 223 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 222 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 221 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 220 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 218 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 217 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 216 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 215 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 214 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 213 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 211 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 210 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 209 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 207 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 206 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 203 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 ... commit 2209a3055d6f366eeb070c217491afe855d3f389 Merge: dbde71df810c e61ff0fba72d Author: Linus Torvalds Date: Fri May 31 08:31:45 2019 -0700 Merge tag 'staging-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging and IIO driver fixes from Greg KH: "Here are some Staging and IIO driver fixes to resolve some reported problems for 5.2-rc3. Nothing major here, just some tiny changes, full details are in the shortlog. All have been in linux-next for a while with no reported issues" * tag 'staging-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: staging: kpc2000: Add dependency on MFD_CORE to kconfig symbol 'KPC2000' staging: wilc1000: Fix some double unlock bugs in wilc_wlan_cleanup() staging: vc04_services: prevent integer overflow in create_pagelist() Staging: vc04_services: Fix a couple error codes staging: wlan-ng: fix adapter initialization failure staging: kpc2000: double unlock in error handling in kpc_dma_transfer() staging: kpc2000: Fix build error without CONFIG_UIO staging: kpc2000: fix build error on xtensa staging: erofs: set sb->s_root to NULL when failing from __getname() iio: adc: ti-ads8688: fix timestamp is not updated in buffer iio: dac: ds4422/ds4424 fix chip verification iio: imu: mpu6050: Fix FIFO layout for ICM20602 iio: adc: ads124: avoid buffer overflow iio: adc: modify NPCM ADC read reference voltage commit dbde71df810c62e72e2aa6d88a0686a6092956cd Merge: e49c8547fb94 a1ad1cc9704f Author: Linus Torvalds Date: Fri May 31 08:28:44 2019 -0700 Merge tag 'tty-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty Pull tty/serial driver fixes from Greg KH: "Here are some small serial and TTY driver fixes for 5.2-rc3. Nothing major, just a number of fixes for reported issues. The fbcon core fix also resolves an issue, and was acked by the relevant maintainer to go through this tree. All of these have been in linux-next with no reported issues" * tag 'tty-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: vt/fbcon: deinitialize resources in visual_init() after failed memory allocation tty: max310x: Fix external crystal register setup serial: sh-sci: disable DMA for uart_console serial: imx: remove log spamming error message tty: serial: msm_serial: Fix XON/XOFF commit e49c8547fb940982a04c98377bf5468a3b4a3fd4 Merge: ca1918049673 3ea3091f1bd8 Author: Linus Torvalds Date: Fri May 31 08:16:31 2019 -0700 Merge tag 'usb-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb Pull USB fixes from Greg KH: "Here are some tiny USB fixes for a number of reported issues for 5.2-rc3. Nothing huge here, just a small collection of xhci and other driver bugs that syzbot has been finding in some drivers. There is also a usbip fix and a fix for the usbip fix in here :) All have been in linux-next with no reported issues" * tag 'usb-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: usbip: usbip_host: fix stub_dev lock context imbalance regression media: smsusb: better handle optional alignment xhci: Use %zu for printing size_t type xhci: Convert xhci_handshake() to use readl_poll_timeout_atomic() xhci: Fix immediate data transfer if buffer is already DMA mapped usb: xhci: avoid null pointer deref when bos field is NULL usb: xhci: Fix a potential null pointer dereference in xhci_debugfs_create_endpoint() xhci: update bounce buffer with correct sg num media: usb: siano: Fix false-positive "uninitialized variable" warning USB: rio500: update Documentation USB: rio500: simplify locking USB: rio500: fix memory leak in close after disconnect USB: rio500: refuse more than one device at a time usbip: usbip_host: fix BUG: sleeping function called from invalid context USB: sisusbvga: fix oops in error path of sisusb_probe USB: Add LPM quirk for Surface Dock GigE adapter media: usb: siano: Fix general protection fault in smsusb usb: mtu3: fix up undefined reference to usb_debug_root USB: Fix slab-out-of-bounds write in usb_get_bos_descriptor commit ca1918049673a9be507c41fb7e4a69a57601a017 Merge: 036e34310931 2a3e0b716296 Author: Linus Torvalds Date: Fri May 31 08:14:16 2019 -0700 Merge tag 'drm-fixes-2019-05-31' of git://anongit.freedesktop.org/drm/drm Pull drm fixes from Dave Airlie: "Nothing too crazy, pretty quiet, maybe too quiet. amdgpu: - a fixed version of the raven firmware fix we previously reverted - stolen memory fix imx: - regression fix qxl: - remove a bad warning etnaviv: - VM locking fix" * tag 'drm-fixes-2019-05-31' of git://anongit.freedesktop.org/drm/drm: drm/amdgpu: reserve stollen vram for raven series drm/etnaviv: lock MMU while dumping core drm/imx: ipuv3-plane: fix atomic update status query for non-plus i.MX6Q drm/qxl: drop WARN_ONCE() drm/amd/display: Don't load DMCU for Raven 1 (v2) commit 141731d15d6eb2fd9aaefbf9b935ce86ae243074 Author: Benjamin Coddington Date: Mon May 20 10:33:07 2019 -0400 Revert "lockd: Show pid of lockd for remote locks" This reverts most of commit b8eee0e90f97 ("lockd: Show pid of lockd for remote locks"), which caused remote locks to not be differentiated between remote processes for NLM. We retain the fixup for setting the client's fl_pid to a negative value. Fixes: b8eee0e90f97 ("lockd: Show pid of lockd for remote locks") Cc: stable@vger.kernel.org Signed-off-by: Benjamin Coddington Reviewed-by: XueWei Zhang Signed-off-by: J. Bruce Fields commit 717f43d81afc1250300479075952a0e36d74ded3 Author: Kailang Yang Date: Fri May 31 17:16:53 2019 +0800 ALSA: hda/realtek - Update headset mode for ALC256 ALC255 and ALC256 were some difference for hidden register. This update was suitable for ALC256. Fixes: e69e7e03ed22 ("ALSA: hda/realtek - ALC256 speaker noise issue") Signed-off-by: Kailang Yang Cc: Signed-off-by: Takashi Iwai commit fc722a0429f4e8a316e1992dcff6c78f45a25158 Author: Russell King Date: Sun Mar 24 14:00:35 2019 +0000 fs/adfs: fix filename fixup handling for "/" and "//" names Avoid translating "/" and "//" directory entry names to the special "." and ".." names by instead converting the first character to "^". Acked-by: Al Viro Signed-off-by: Russell King commit 5f8de4875c3522addcde6e98f978e0414c16478d Author: Russell King Date: Sun Mar 24 13:08:41 2019 +0000 fs/adfs: move append_filetype_suffix() into adfs_object_fixup() append_filetype_suffix() is now only used in adfs_object_fixup(), so move it there. Acked-by: Al Viro Signed-off-by: Russell King commit 2eb0684f977123bfa5a565a57d219870085b78e8 Author: Russell King Date: Sun Mar 24 11:02:02 2019 +0000 fs/adfs: remove truncated filename hashing fs/adfs support for truncated filenames is broken, and there is a desire not to support this into the future. Let's remove the fs/adfs support for this. Viro says: "FWIW, the word from Linus had been basically "kill it off" on truncation." That being: "Make it so. Make the rule be that d_hash() can only change the hash itself, rather than the subtle special case for len that we had because of legacy reasons.." Acked-by: Al Viro Signed-off-by: Russell King commit adb514a4e0f6d87ff43d1bc0a948c38530a0dc83 Author: Russell King Date: Sun Mar 24 13:22:28 2019 +0000 fs/adfs: factor out filename fixup Move the filename fixup to adfs_object_fixup() so we only have one implementation of this. Acked-by: Al Viro Signed-off-by: Russell King commit 411c49bcf32d36b9988dc27968a92f3edf8ebed1 Author: Russell King Date: Sun Mar 24 12:57:32 2019 +0000 fs/adfs: factor out object fixups Factor out the directory object fixups, which parse the filetype and optionally apply the filetype suffix to the filename. Acked-by: Al Viro Signed-off-by: Russell King commit 525715d0161f360df5f9f7ba8d9b77f60068dec5 Author: Russell King Date: Sun Mar 24 12:22:04 2019 +0000 fs/adfs: factor out filename case lowering Factor out the filename case lowering of directory names when comparing or hashing filenames. Acked-by: Al Viro Signed-off-by: Russell King commit 1e504cf85dddb9dd2f4c262a72277d2f9564cbea Author: Russell King Date: Sun Mar 24 10:54:03 2019 +0000 fs/adfs: factor out filename comparison We have essentially the same code in adfs_compare() as adfs_match(), so arrange to use a common implementation. Acked-by: Al Viro Signed-off-by: Russell King commit 5d3211b651a012bc77410ebf097b7271a7ce5c95 Author: Miklos Szeredi Date: Fri May 31 11:27:25 2019 +0200 ovl: doc: add non-standard corner cases While most corner cases have already been dealt with, some remain and should be documented. Signed-off-by: Miklos Szeredi commit 8880fa32c557600f5f624084152668ed3c2ea51e Author: Kees Cook Date: Thu May 30 23:37:29 2019 -0700 pstore/ram: Run without kernel crash dump region The ram pstore backend has always had the crash dumper frontend enabled unconditionally. However, it was possible to effectively disable it by setting a record_size=0. All the machinery would run (storing dumps to the temporary crash buffer), but 0 bytes would ultimately get stored due to there being no przs allocated for dumps. Commit 89d328f637b9 ("pstore/ram: Correctly calculate usable PRZ bytes"), however, assumed that there would always be at least one allocated dprz for calculating the size of the temporary crash buffer. This was, of course, not the case when record_size=0, and would lead to a NULL deref trying to find the dprz buffer size: BUG: unable to handle kernel NULL pointer dereference at (null) ... IP: ramoops_probe+0x285/0x37e (fs/pstore/ram.c:808) cxt->pstore.bufsize = cxt->dprzs[0]->buffer_size; Instead, we need to only enable the frontends based on the success of the prz initialization and only take the needed actions when those zones are available. (This also fixes a possible error in detecting if the ftrace frontend should be enabled.) Reported-and-tested-by: Yaro Slav Fixes: 89d328f637b9 ("pstore/ram: Correctly calculate usable PRZ bytes") Cc: stable@vger.kernel.org Signed-off-by: Kees Cook commit 674459be116955e025d6a5e6142e2d500103de8e Author: Heiko Carstens Date: Fri May 31 09:51:35 2019 +0200 MAINTAINERS: add Vasily Gorbik and Christian Borntraeger for s390 Add Vasily Gorbik and Christian Borntraeger as additional maintainers for s390. Acked-by: Vasily Gorbik Acked-by: Christian Borntraeger Signed-off-by: Heiko Carstens commit 2850ef62e13e135be8d979e9c0f057728f39d348 Author: Heiko Carstens Date: Wed May 29 16:58:44 2019 +0200 MAINTAINERS: Farewell Martin Schwidefsky After two decades of significant contributions to the s390 architecture, we must say goodbye to our dear colleague. Blue skies, Martin! Signed-off-by: Heiko Carstens commit afb286bcae85ee816e8497596bf8e7f83347f47b Merge: a6315005a2d4 3035e8cd6c31 Author: Joonas Lahtinen Date: Fri May 31 10:51:59 2019 +0300 Merge tag 'gvt-fixes-2019-05-30' of https://github.com/intel/gvt-linux into drm-intel-fixes gvt-fixes-2019-05-30 - Fix gtt entry update with sane initialization (Tina) - Fix force-to-nonpriv warning from recent guest (Colin) - Fix GFX_MODE and CSFE_CHICKEN1_REG handler for host only control (Colin) - GGTT range validation enforced (Xiong) - Fix cmd length for VEB_DI_IECP (Fred) Signed-off-by: Joonas Lahtinen From: Zhenyu Wang Link: https://patchwork.freedesktop.org/patch/msgid/20190530034137.GE3211@zhen-hp.sh.intel.com commit a9fb94a99bb515d8720ba8440ce3aba84aec80f8 Author: Pi-Hsun Shih Date: Mon May 20 14:51:19 2019 +0800 pstore: Set tfm to NULL on free_buf_for_compression Set tfm to NULL on free_buf_for_compression() after crypto_free_comp(). This avoid a use-after-free when allocate_buf_for_compression() and free_buf_for_compression() are called twice. Although free_buf_for_compression() freed the tfm, allocate_buf_for_compression() won't reinitialize the tfm since the tfm pointer is not NULL. Fixes: 95047b0519c1 ("pstore: Refactor compression initialization") Signed-off-by: Pi-Hsun Shih Cc: stable@vger.kernel.org Signed-off-by: Kees Cook commit 932296120543149e3397af252e7daee7af37eb05 Author: Vincent Chen Date: Mon May 20 09:21:13 2019 +0800 nds32: add new emulations for floating point instruction The existing floating point emulations is only available for floating instruction that possibly issue denormalized input and underflow exceptions. These existing FPU emulations are not sufficient when IEx Trap is enabled because some floating point instructions only issue inexact exception. This patch adds the emulations of such floating point instructions. Signed-off-by: Vincent Chen Acked-by: Greentime Hu Signed-off-by: Greentime Hu commit ed32949e0acb73e7bc054bb02e0453d4d561ceda Author: Vincent Chen Date: Mon May 20 09:21:12 2019 +0800 nds32: Avoid IEX status being incorrectly modified In order for kernel to capture each denormalized output, the UDF trapping enable bit is always raised in $fpcsr. Because underflow case will issue not an underflow exception but also an inexact exception, it causes that the IEX, IEX cumulative exception, flag in $fpcsr to be raised in each denormalized output handling. To make the emulation transparent to the user, the emulator needs to clear the IEX flag in $fpcsr if the result is a denormalized number. However, if the IEX flag has been raised before this floating point emulation, this cleanup may be incorrect. To avoid the IEX flags in $fpcsr be raised in each denormalized output handling, the IEX trap shall be always enabled. Signed-off-by: Vincent Chen Acked-by: Greentime Hu Signed-off-by: Greentime Hu commit 8183db10db6377ac58ad048a4c827425a614695c Author: Vincent Chen Date: Mon May 27 14:17:21 2019 +0800 math-emu: Use statement expressions to fix Wshift-count-overflow warning To avoid "shift count >= width of type" warning, using statement expressions to implement the conditional controlling before constant shift The modification in op-2.h is taken from the glibc commit 'sysdeps/unix/sysv/lin ("fe0b1e854ad32")'. Signed-off-by: Vincent Chen Acked-by: Greentime Hu Signed-off-by: Greentime Hu commit 036e34310931e64ce4f1edead435708cd517db10 Merge: adc3f554fa1e 100f6d8e0990 Author: Linus Torvalds Date: Thu May 30 21:11:22 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: 1) Fix OOPS during nf_tables rule dump, from Florian Westphal. 2) Use after free in ip_vs_in, from Yue Haibing. 3) Fix various kTLS bugs (NULL deref during device removal resync, netdev notification ignoring, etc.) From Jakub Kicinski. 4) Fix ipv6 redirects with VRF, from David Ahern. 5) Memory leak fix in igmpv3_del_delrec(), from Eric Dumazet. 6) Missing memory allocation failure check in ip6_ra_control(), from Gen Zhang. And likewise fix ip_ra_control(). 7) TX clean budget logic error in aquantia, from Igor Russkikh. 8) SKB leak in llc_build_and_send_ui_pkt(), from Eric Dumazet. 9) Double frees in mlx5, from Parav Pandit. 10) Fix lost MAC address in r8169 during PCI D3, from Heiner Kallweit. 11) Fix botched register access in mvpp2, from Antoine Tenart. 12) Use after free in napi_gro_frags(), from Eric Dumazet. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (89 commits) net: correct zerocopy refcnt with udp MSG_MORE ethtool: Check for vlan etype or vlan tci when parsing flow_rule net: don't clear sock->sk early to avoid trouble in strparser net-gro: fix use-after-free read in napi_gro_frags() net: dsa: tag_8021q: Create a stable binary format net: dsa: tag_8021q: Change order of rx_vid setup net: mvpp2: fix bad MVPP2_TXQ_SCHED_TOKEN_CNTR_REG queue value ipv4: tcp_input: fix stack out of bounds when parsing TCP options. mlxsw: spectrum: Prevent force of 56G mlxsw: spectrum_acl: Avoid warning after identical rules insertion net: dsa: mv88e6xxx: fix handling of upper half of STATS_TYPE_PORT r8169: fix MAC address being lost in PCI D3 net: core: support XDP generic on stacked devices. netvsc: unshare skb in VF rx handler udp: Avoid post-GRO UDP checksum recalculation net: phy: dp83867: Set up RGMII TX delay net: phy: dp83867: do not call config_init twice net: phy: dp83867: increase SGMII autoneg timer duration net: phy: dp83867: fix speed 10 in sgmii mode net: phy: marvell10g: report if the PHY fails to boot firmware ... commit adc3f554fa1e0f1c7b76007150814e1d8a5fcd2b Merge: 318adf8e4bfd 1e29ab3186e3 Author: Linus Torvalds Date: Thu May 30 21:05:23 2019 -0700 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fixes from Will Deacon: "The fixes are still trickling in for arm64, but the only really significant one here is actually fixing a regression in the botched module relocation range checking merged for -rc2. Hopefully we've nailed it this time. - Fix implementation of our set_personality() system call, which wasn't being wrapped properly - Fix system call function types to keep CFI happy - Fix siginfo layout when delivering SIGKILL after a kernel fault - Really fix module relocation range checking" * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: use the correct function type for __arm64_sys_ni_syscall arm64: use the correct function type in SYSCALL_DEFINE0 arm64: fix syscall_fn_t type signal/arm64: Use force_sig not force_sig_fault for SIGKILL arm64/module: revert to unsigned interpretation of ABS16/32 relocations arm64: Fix the arm64_personality() syscall wrapper redirection commit 318adf8e4bfdcb0bce1833824564b1f24278927b Merge: 8cb7104d03dd 06989c799f04 Author: Linus Torvalds Date: Thu May 30 20:52:40 2019 -0700 Merge tag 'for-5.2-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux Pull btrfs fixes from David Sterba: "A few more fixes for bugs reported by users, fuzzing tools and regressions: - fix crashes in relocation: + resuming interrupted balance operation does not properly clean up orphan trees + with enabled qgroups, resuming needs to be more careful about block groups due to limited context when updating qgroups - fsync and logging fixes found by fuzzing - incremental send fixes for no-holes and clone - fix spin lock type used in timer function for zstd" * tag 'for-5.2-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: Btrfs: fix race updating log root item during fsync Btrfs: fix wrong ctime and mtime of a directory after log replay Btrfs: fix fsync not persisting changed attributes of a directory btrfs: qgroup: Check bg while resuming relocation to avoid NULL pointer dereference btrfs: reloc: Also queue orphan reloc tree for cleanup to avoid BUG_ON() Btrfs: incremental send, fix emission of invalid clone operations Btrfs: incremental send, fix file corruption when no-holes feature is enabled btrfs: correct zstd workspace manager lock to use spin_lock_bh() btrfs: Ensure replaced device doesn't have pending chunk allocation commit 8cb7104d03dddeb2f28e590b2d1fab7bf0eef284 Merge: c5ba17126612 f6122ed2a4f9 Author: Linus Torvalds Date: Thu May 30 20:35:48 2019 -0700 Merge tag 'configfs-for-5.2-2' of git://git.infradead.org/users/hch/configfs Pull configs fix from Christoph Hellwig: - fix a use after free in configfs_d_iput (Sahitya Tummala) * tag 'configfs-for-5.2-2' of git://git.infradead.org/users/hch/configfs: configfs: Fix use-after-free when accessing sd->s_dentry commit c5ba1712661233ce0f4666b8c3dee5bb78d380f2 Merge: 20f944965601 6954158a1640 Author: Linus Torvalds Date: Thu May 30 19:58:59 2019 -0700 Merge tag 'sound-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "No big surprises here, just a few device-specific fixes. HD-audio received several fixes for Acer, Dell, Huawei and other laptops as well as the workaround for the new Intel chipset. One significant one-liner fix is the disablement of the node-power saving on Realtek codecs, which may potentially cover annoying bugs like the background noises or click noises on many devices. Other than that, a fix for FireWire bit definitions, and another fix for LINE6 USB audio bug that was discovered by syzkaller" * tag 'sound-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: fireface: Use ULL suffixes for 64-bit constants ALSA: hda/realtek - Improve the headset mic for Acer Aspire laptops ALSA: line6: Assure canceling delayed work at disconnection ALSA: hda - Force polling mode on CNL for fixing codec communication ALSA: hda/realtek - Enable micmute LED for Huawei laptops ALSA: hda/realtek - Set default power save node to 0 ALSA: hda/realtek - Check headset type by unplug and resume commit 20f944965601c59e68865d4ee12225fbabb5652b Merge: bec7550cca10 1cc54078d104 Author: Linus Torvalds Date: Thu May 30 16:33:37 2019 -0700 Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux Pull clk driver fixes from Stephen Boyd: - Don't expose the SiFive clk driver on non-RISCV architectures - Fix some bits describing clks in the imx8mm driver - Always call clk domain code in the TI driver so non-legacy platforms work * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: clk: ti: clkctrl: Fix clkdm_clk handling clk: imx: imx8mm: fix int pll clk gate clk: sifive: restrict Kconfig scope for the FU540 PRCI driver commit 2a3e0b716296a504d9e65fea7acb379c86fe4283 Merge: 93c52e7800ba 137caa702f23 Author: Dave Airlie Date: Fri May 31 09:15:14 2019 +1000 Merge tag 'imx-drm-fixes-2019-05-29' of git://git.pengutronix.de/git/pza/linux into drm-fixes drm/imx: ipuv3-plane: fix frame rate regression on non-plus i.MX6Q Fix a regression introduced by 70e8a0c71e9 ("drm/imx: ipuv3-plane: add function to query atomic update status") that halves the frame rate on non-plus i.MX6Q, because the pending check always returns "pending" even if an update is actually applied. Signed-off-by: Dave Airlie From: Philipp Zabel Link: https://patchwork.freedesktop.org/patch/msgid/1559128738.3651.4.camel@pengutronix.de commit 100f6d8e09905c59be45b6316f8f369c0be1b2d8 Author: Willem de Bruijn Date: Thu May 30 18:01:21 2019 -0400 net: correct zerocopy refcnt with udp MSG_MORE TCP zerocopy takes a uarg reference for every skb, plus one for the tcp_sendmsg_locked datapath temporarily, to avoid reaching refcnt zero as it builds, sends and frees skbs inside its inner loop. UDP and RAW zerocopy do not send inside the inner loop so do not need the extra sock_zerocopy_get + sock_zerocopy_put pair. Commit 52900d22288ed ("udp: elide zerocopy operation in hot path") introduced extra_uref to pass the initial reference taken in sock_zerocopy_alloc to the first generated skb. But, sock_zerocopy_realloc takes this extra reference at the start of every call. With MSG_MORE, no new skb may be generated to attach the extra_uref to, so refcnt is incorrectly 2 with only one skb. Do not take the extra ref if uarg && !tcp, which implies MSG_MORE. Update extra_uref accordingly. This conditional assignment triggers a false positive may be used uninitialized warning, so have to initialize extra_uref at define. Changes v1->v2: fix typo in Fixes SHA1 Fixes: 52900d22288e7 ("udp: elide zerocopy operation in hot path") Reported-by: syzbot Diagnosed-by: Eric Dumazet Signed-off-by: Willem de Bruijn Signed-off-by: David S. Miller commit b73484b2fc0d0ba84a13e9d86eb4adcae718163b Author: Maxime Chevallier Date: Thu May 30 16:08:40 2019 +0200 ethtool: Check for vlan etype or vlan tci when parsing flow_rule When parsing an ethtool flow spec to build a flow_rule, the code checks if both the vlan etype and the vlan tci are specified by the user to add a FLOW_DISSECTOR_KEY_VLAN match. However, when the user only specified a vlan etype or a vlan tci, this check silently ignores these parameters. For example, the following rule : ethtool -N eth0 flow-type udp4 vlan 0x0010 action -1 loc 0 will result in no error being issued, but the equivalent rule will be created and passed to the NIC driver : ethtool -N eth0 flow-type udp4 action -1 loc 0 In the end, neither the NIC driver using the rule nor the end user have a way to know that these keys were dropped along the way, or that incorrect parameters were entered. This kind of check should be left to either the driver, or the ethtool flow spec layer. This commit makes so that ethtool parameters are forwarded as-is to the NIC driver. Since none of the users of ethtool_rx_flow_rule_create are using the VLAN dissector, I don't think this qualifies as a regression. Fixes: eca4205f9ec3 ("ethtool: add ethtool_rx_flow_spec to flow_rule structure translator") Signed-off-by: Maxime Chevallier Acked-by: Pablo Neira Ayuso Signed-off-by: David S. Miller commit 2b81f8161dfeda4017cef4f2498ccb64b13f0d61 Author: Jakub Kicinski Date: Wed May 29 16:33:23 2019 -0700 net: don't clear sock->sk early to avoid trouble in strparser af_inet sets sock->sk to NULL which trips strparser over: BUG: kernel NULL pointer dereference, address: 0000000000000012 PGD 0 P4D 0 Oops: 0000 [#1] SMP PTI CPU: 7 PID: 0 Comm: swapper/7 Not tainted 5.2.0-rc1-00139-g14629453a6d3 #21 RIP: 0010:tcp_peek_len+0x10/0x60 RSP: 0018:ffffc02e41c54b98 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff9cf924c4e030 RCX: 0000000000000051 RDX: 0000000000000000 RSI: 000000000000000c RDI: ffff9cf97128f480 RBP: ffff9cf9365e0300 R08: ffff9cf94fe7d2c0 R09: 0000000000000000 R10: 000000000000036b R11: ffff9cf939735e00 R12: ffff9cf91ad9ae40 R13: ffff9cf924c4e000 R14: ffff9cf9a8fcbaae R15: 0000000000000020 FS: 0000000000000000(0000) GS:ffff9cf9af7c0000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000012 CR3: 000000013920a003 CR4: 00000000003606e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: strp_data_ready+0x48/0x90 tls_data_ready+0x22/0xd0 [tls] tcp_rcv_established+0x569/0x620 tcp_v4_do_rcv+0x127/0x1e0 tcp_v4_rcv+0xad7/0xbf0 ip_protocol_deliver_rcu+0x2c/0x1c0 ip_local_deliver_finish+0x41/0x50 ip_local_deliver+0x6b/0xe0 ? ip_protocol_deliver_rcu+0x1c0/0x1c0 ip_rcv+0x52/0xd0 ? ip_rcv_finish_core.isra.20+0x380/0x380 __netif_receive_skb_one_core+0x7e/0x90 netif_receive_skb_internal+0x42/0xf0 napi_gro_receive+0xed/0x150 nfp_net_poll+0x7a2/0xd30 [nfp] ? kmem_cache_free_bulk+0x286/0x310 net_rx_action+0x149/0x3b0 __do_softirq+0xe3/0x30a ? handle_irq_event_percpu+0x6a/0x80 irq_exit+0xe8/0xf0 do_IRQ+0x85/0xd0 common_interrupt+0xf/0xf RIP: 0010:cpuidle_enter_state+0xbc/0x450 To avoid this issue set sock->sk after sk_prot->close. My grepping and testing did not discover any code which would depend on the current behaviour. Fixes: c46234ebb4d1 ("tls: RX path for ktls") Reported-by: David Beckett Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Signed-off-by: David S. Miller commit a4270d6795b0580287453ea55974d948393e66ef Author: Eric Dumazet Date: Wed May 29 15:36:10 2019 -0700 net-gro: fix use-after-free read in napi_gro_frags() If a network driver provides to napi_gro_frags() an skb with a page fragment of exactly 14 bytes, the call to gro_pull_from_frag0() will 'consume' the fragment by calling skb_frag_unref(skb, 0), and the page might be freed and reused. Reading eth->h_proto at the end of napi_frags_skb() might read mangled data, or crash under specific debugging features. BUG: KASAN: use-after-free in napi_frags_skb net/core/dev.c:5833 [inline] BUG: KASAN: use-after-free in napi_gro_frags+0xc6f/0xd10 net/core/dev.c:5841 Read of size 2 at addr ffff88809366840c by task syz-executor599/8957 CPU: 1 PID: 8957 Comm: syz-executor599 Not tainted 5.2.0-rc1+ #32 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x172/0x1f0 lib/dump_stack.c:113 print_address_description.cold+0x7c/0x20d mm/kasan/report.c:188 __kasan_report.cold+0x1b/0x40 mm/kasan/report.c:317 kasan_report+0x12/0x20 mm/kasan/common.c:614 __asan_report_load_n_noabort+0xf/0x20 mm/kasan/generic_report.c:142 napi_frags_skb net/core/dev.c:5833 [inline] napi_gro_frags+0xc6f/0xd10 net/core/dev.c:5841 tun_get_user+0x2f3c/0x3ff0 drivers/net/tun.c:1991 tun_chr_write_iter+0xbd/0x156 drivers/net/tun.c:2037 call_write_iter include/linux/fs.h:1872 [inline] do_iter_readv_writev+0x5f8/0x8f0 fs/read_write.c:693 do_iter_write fs/read_write.c:970 [inline] do_iter_write+0x184/0x610 fs/read_write.c:951 vfs_writev+0x1b3/0x2f0 fs/read_write.c:1015 do_writev+0x15b/0x330 fs/read_write.c:1058 Fixes: a50e233c50db ("net-gro: restore frag0 optimization") Signed-off-by: Eric Dumazet Reported-by: syzbot Signed-off-by: David S. Miller commit c3bc6debb4c7555e7fb1b104ffda416e89570b50 Merge: 218084372146 0471dd429cea Author: David S. Miller Date: Thu May 30 14:47:14 2019 -0700 Merge branch 'Fixes-for-DSA-tagging-using-802-1Q' Vladimir Oltean says: ==================== Fixes for DSA tagging using 802.1Q During the prototyping for the "Decoupling PHYLINK from struct net_device" patchset, the CPU port of the sja1105 driver was moved to a different spot. This uncovered an issue in the tag_8021q DSA code, which used to work by mistake - the CPU port was the last hardware port numerically, and this was masking an ordering issue which is very likely to be seen in other drivers that make use of 802.1Q tags. A question was also raised whether the VID numbers bear any meaning, and the conclusion was that they don't, at least not in an absolute sense. The second patch defines bit fields inside the DSA 802.1Q VID so that tcpdump can decode it unambiguously (although the meaning is now clear even by visual inspection). ==================== Signed-off-by: David S. Miller commit 0471dd429cea6507a4000169ff6a33f41ba371b3 Author: Vladimir Oltean Date: Thu May 30 00:42:31 2019 +0300 net: dsa: tag_8021q: Create a stable binary format Tools like tcpdump need to be able to decode the significance of fake VLAN headers that DSA uses to separate switch ports. But currently these have no global significance - they are simply an ordered list of DSA_MAX_SWITCHES x DSA_MAX_PORTS numbers ending at 4095. The reason why this is submitted as a fix is that the existing mapping of VIDs should not enter into a stable kernel, so we can pretend that only the new format exists. This way tcpdump won't need to try to make something out of the VLAN tags on 5.2 kernels. Fixes: f9bbe4477c30 ("net: dsa: Optional VLAN-based port separation for switches without tagging") Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit d34d2baa9173f6e0c0f22d005d18e83d1cb54d8d Author: Ioana Ciornei Date: Thu May 30 00:42:30 2019 +0300 net: dsa: tag_8021q: Change order of rx_vid setup The 802.1Q tagging performs an unbalanced setup in terms of RX VIDs on the CPU port. For the ingress path of a 802.1Q switch to work, the RX VID of a port needs to be seen as tagged egress on the CPU port. While configuring the other front-panel ports to be part of this VID, for bridge scenarios, the untagged flag is applied even on the CPU port in dsa_switch_vlan_add. This happens because DSA applies the same flags on the CPU port as on the (bridge-controlled) slave ports, and the effect in this case is that the CPU port tagged settings get deleted. Instead of fixing DSA by introducing a way to control VLAN flags on the CPU port (and hence stop inheriting from the slave ports) - a hard, perhaps intractable problem - avoid this situation by moving the setup part of the RX VID on the CPU port after all the other front-panel ports have been added to the VID. Fixes: f9bbe4477c30 ("net: dsa: Optional VLAN-based port separation for switches without tagging") Signed-off-by: Ioana Ciornei Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 21808437214637952b61beaba6034d97880fbeb3 Author: Antoine Tenart Date: Wed May 29 15:59:48 2019 +0200 net: mvpp2: fix bad MVPP2_TXQ_SCHED_TOKEN_CNTR_REG queue value MVPP2_TXQ_SCHED_TOKEN_CNTR_REG() expects the logical queue id but the current code is passing the global tx queue offset, so it ends up writing to unknown registers (between 0x8280 and 0x82fc, which seemed to be unused by the hardware). This fixes the issue by using the logical queue id instead. Fixes: 3f518509dedc ("ethernet: Add new driver for Marvell Armada 375 network unit") Signed-off-by: Antoine Tenart Signed-off-by: David S. Miller commit 8cfeb385e9ebda784dccd447fe0f784464ca6ee1 Author: Odin Ugedal Date: Thu May 30 00:24:25 2019 +0200 docs cgroups: add another example size for hugetlb Add another example to clarify that HugePages smaller than 1MB will be displayed using "KB", with an uppercased K (eg. 20KB), and not the normal SI prefix kilo (small k). Because of a misunderstanding/copy-paste error inside runc (see https://github.com/opencontainers/runc/pull/2065), it tried accessing the cgroup control file of a 64kB HugePage using "hugetlb.64kB._____" instead of the correct "hugetlb.64KB._____". Adding a new example will make it clear how sizes smaller than 1MB are handled. Signed-off-by: Odin Ugedal Signed-off-by: Tejun Heo commit ba851a39c9703f09684a541885ed176f8fb7c868 Author: Yihao Wu Date: Mon May 13 14:58:22 2019 +0800 NFSv4.1: Fix bug only first CB_NOTIFY_LOCK is handled When a waiter is waked by CB_NOTIFY_LOCK, it will retry nfs4_proc_setlk(). The waiter may fail to nfs4_proc_setlk() and sleep again. However, the waiter is already removed from clp->cl_lock_waitq when handling CB_NOTIFY_LOCK in nfs4_wake_lock_waiter(). So any subsequent CB_NOTIFY_LOCK won't wake this waiter anymore. We should put the waiter back to clp->cl_lock_waitq before retrying. Cc: stable@vger.kernel.org #4.9+ Signed-off-by: Yihao Wu Reviewed-by: Jeff Layton Signed-off-by: Anna Schumaker commit 52b042ab9948cc367b61f9ca9c18603aa7813c3a Author: Yihao Wu Date: Wed May 22 01:57:10 2019 +0800 NFSv4.1: Again fix a race where CB_NOTIFY_LOCK fails to wake a waiter Commit b7dbcc0e433f "NFSv4.1: Fix a race where CB_NOTIFY_LOCK fails to wake a waiter" found this bug. However it didn't fix it. This commit replaces schedule_timeout() with wait_woken() and default_wake_function() with woken_wake_function() in function nfs4_retry_setlk() and nfs4_wake_lock_waiter(). wait_woken() uses memory barriers in its implementation to avoid potential race condition when putting a process into sleeping state and then waking it up. Fixes: a1d617d8f134 ("nfs: allow blocking locks to be awoken by lock callbacks") Cc: stable@vger.kernel.org #4.9+ Signed-off-by: Yihao Wu Reviewed-by: Jeff Layton Signed-off-by: Anna Schumaker commit 9609dad263f8bea347f41fddca29353dbf8a7d37 Author: Young Xiao <92siuyang@gmail.com> Date: Wed May 29 16:10:59 2019 +0800 ipv4: tcp_input: fix stack out of bounds when parsing TCP options. The TCP option parsing routines in tcp_parse_options function could read one byte out of the buffer of the TCP options. 1 while (length > 0) { 2 int opcode = *ptr++; 3 int opsize; 4 5 switch (opcode) { 6 case TCPOPT_EOL: 7 return; 8 case TCPOPT_NOP: /* Ref: RFC 793 section 3.1 */ 9 length--; 10 continue; 11 default: 12 opsize = *ptr++; //out of bound access If length = 1, then there is an access in line2. And another access is occurred in line 12. This would lead to out-of-bound access. Therefore, in the patch we check that the available data length is larger enough to pase both TCP option code and size. Signed-off-by: Young Xiao <92siuyang@gmail.com> Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 62851d71e771e4fc099de16bb27f696c343516d9 Merge: 84b3fd1fc959 275e928f1911 Author: David S. Miller Date: Thu May 30 12:30:47 2019 -0700 Merge branch 'mlxsw-Two-small-fixes' Ido Schimmel says: ==================== mlxsw: Two small fixes Patch #1 from Jiri fixes an issue specific to Spectrum-2 where the insertion of two identical flower filters with different priorities would trigger a warning. Patch #2 from Amit prevents the driver from trying to configure a port with a speed of 56Gb/s and autoneg off as this is not supported and results in error messages from firmware. Please consider patch #1 for stable. ==================== Signed-off-by: David S. Miller commit 275e928f19117d22f6d26dee94548baf4041b773 Author: Amit Cohen Date: Wed May 29 10:59:45 2019 +0300 mlxsw: spectrum: Prevent force of 56G Force of 56G is not supported by hardware in Ethernet devices. This configuration fails with a bad parameter error from firmware. Add check of this case. Instead of trying to set 56G with autoneg off, return a meaningful error. Fixes: 56ade8fe3fe1 ("mlxsw: spectrum: Add initial support for Spectrum ASIC") Signed-off-by: Amit Cohen Acked-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit ef74422020aa8c224b00a927e3e47faac4d8fae3 Author: Jiri Pirko Date: Wed May 29 10:59:44 2019 +0300 mlxsw: spectrum_acl: Avoid warning after identical rules insertion When identical rules are inserted, the latter one goes to C-TCAM. For that, a second eRP with the same mask is created. These 2 eRPs by the nature cannot be merged and also one cannot be parent of another. Teach mlxsw_sp_acl_erp_delta_fill() about this possibility and handle it gracefully. Reported-by: Alex Kushnarov Fixes: c22291f7cf45 ("mlxsw: spectrum: acl: Implement delta for ERP") Signed-off-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit 7987b694ade8cc465ce10fb3dceaa614f13ceaf3 Author: Trond Myklebust Date: Wed May 29 12:49:52 2019 -0400 SUNRPC: Fix a use after free when a server rejects the RPCSEC_GSS credential The addition of rpc_check_timeout() to call_decode causes an Oops when the RPCSEC_GSS credential is rejected. The reason is that rpc_decode_header() will call xprt_release() in order to free task->tk_rqstp, which is needed by rpc_check_timeout() to check whether or not we should exit due to a soft timeout. The fix is to move the call to xprt_release() into call_decode() so we can perform it after rpc_check_timeout(). Reported-by: Olga Kornievskaia Reported-by: Nick Bowler Fixes: cea57789e408 ("SUNRPC: Clean up") Cc: stable@vger.kernel.org # v5.1+ Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 84b3fd1fc9592d431e23b077e692fa4e3fd0f086 Author: Rasmus Villemoes Date: Wed May 29 07:02:11 2019 +0000 net: dsa: mv88e6xxx: fix handling of upper half of STATS_TYPE_PORT Currently, the upper half of a 4-byte STATS_TYPE_PORT statistic ends up in bits 47:32 of the return value, instead of bits 31:16 as they should. Fixes: 6e46e2d821bb ("net: dsa: mv88e6xxx: Fix u64 statistics") Signed-off-by: Rasmus Villemoes Reviewed-by: Vivien Didelot Signed-off-by: David S. Miller commit ec6017d9035986a36de064f48a63245930bfad6f Author: Olga Kornievskaia Date: Wed May 29 10:46:00 2019 -0400 SUNRPC fix regression in umount of a secure mount If call_status returns ENOTCONN, we need to re-establish the connection state after. Otherwise the client goes into an infinite loop of call_encode, call_transmit, call_status (ENOTCONN), call_encode. Fixes: c8485e4d63 ("SUNRPC: Handle ECONNREFUSED correctly in xprt_transmit()") Signed-off-by: Olga Kornievskaia Cc: stable@vger.kernel.org # v2.6.29+ Signed-off-by: Anna Schumaker commit 59715171fbd0172a579576f46821031800a63bc5 Author: Heiner Kallweit Date: Wed May 29 07:44:01 2019 +0200 r8169: fix MAC address being lost in PCI D3 (At least) RTL8168e forgets its MAC address in PCI D3. To fix this set the MAC address when resuming. For resuming from runtime-suspend we had this in place already, for resuming from S3/S5 it was missing. The commit referenced as being fixed isn't wrong, it's just the first one where the patch applies cleanly. Fixes: 0f07bd850d36 ("r8169: use dev_get_drvdata where possible") Signed-off-by: Heiner Kallweit Reported-by: Albert Astals Cid Tested-by: Albert Astals Cid Signed-off-by: David S. Miller commit 200c6758631f8c1a77764cf5f5ce13588f8c17d7 Merge: 4b280531e84c c0194e2d0ef0 Author: David S. Miller Date: Thu May 30 11:34:38 2019 -0700 Merge tag 'mlx5-fixes-2019-05-28' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux Saeed Mahameed says: ==================== Mellanox, mlx5 fixes 2019-05-28 This series introduces some fixes to mlx5 driver. Please pull and let me know if there is any problem. For -stable v4.13: ('net/mlx5: Allocate root ns memory using kzalloc to match kfree') For -stable v4.16: ('net/mlx5: Avoid double free in fs init error unwinding path') For -stable v4.18: ('net/mlx5e: Disable rxhash when CQE compress is enabled') ==================== Signed-off-by: David S. Miller commit 96ac6d435100450f0565708d9b885ea2a7400e0a Author: Greg Kroah-Hartman Date: Thu May 30 05:03:44 2019 -0700 treewide: Add SPDX license identifier - Kbuild Add SPDX license identifiers to all Make/Kconfig files which: - Have no license information of any form These files fall under the project license, GPL v2 only. The resulting SPDX license identifier is: GPL-2.0 Reported-by: Masahiro Yamada Signed-off-by: Greg Kroah-Hartman Reviewed-by: Kate Stewart Signed-off-by: Greg Kroah-Hartman commit 46aeb7e6c17d8caa6828b864eb5b0423f0401e9d Author: Thomas Gleixner Date: Tue May 28 10:10:27 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 225 Based on 1 normalized pattern(s): subject to the gnu public license version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Steve Winslow Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528171440.319650492@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 3fc2175113a9fceccac739f394b5a0425445a5f3 Author: Thomas Gleixner Date: Tue May 28 10:10:26 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 224 Based on 1 normalized pattern(s): subject to the gnu public license v2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Reviewed-by: Steve Winslow Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528171440.222651153@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 7e300dabb7e74097137b4ed28a1f9887a7f2ac5b Author: Thomas Gleixner Date: Tue May 28 10:10:25 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 223 Based on 1 normalized pattern(s): subject to the gnu public license v 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 9 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Reviewed-by: Steve Winslow Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528171440.130801526@linutronix.de Signed-off-by: Greg Kroah-Hartman commit fc44ef5aa0dd987ac89f93fd3ada12c983dda836 Author: Thomas Gleixner Date: Tue May 28 10:10:24 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 222 Based on 1 normalized pattern(s): license gplv2 this program is free software you can redistribute it and or modify it under the terms and conditions of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin st fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 4 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Steve Winslow Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528171440.038486796@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f0aa4fa4fe1a1b35ddd6222f56c64f68f2d74269 Author: Thomas Gleixner Date: Tue May 28 10:10:23 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 221 Based on 1 normalized pattern(s): gpl version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Reviewed-by: Steve Winslow Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528171439.945432253@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 68cf618c62946085d64f0cc237e01cd6d238dbb5 Author: Thomas Gleixner Date: Tue May 28 10:10:22 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 220 Based on 1 normalized pattern(s): distributed under the gnu gpl license version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Reviewed-by: Steve Winslow Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528171439.854676954@linutronix.de Signed-off-by: Greg Kroah-Hartman commit a63a5fa97e86909c3b1c96d1ed09d91aacd76c8c Author: Thomas Gleixner Date: Tue May 28 10:10:21 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 218 Based on 1 normalized pattern(s): you may use this code as per gpl version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 5 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Steve Winslow Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528171439.762454146@linutronix.de Signed-off-by: Greg Kroah-Hartman commit c88a15c6f19621bf523e6d7e877f90e0b7a202e1 Author: Thomas Gleixner Date: Tue May 28 10:10:20 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 217 Based on 1 normalized pattern(s): distributed under the terms of the gpl version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Steve Winslow Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528171439.671734884@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 658af820172c4ec2dd777547ad46d22c24c46490 Author: Thomas Gleixner Date: Tue May 28 10:10:19 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 216 Based on 1 normalized pattern(s): this file distributed under the gpl version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Steve Winslow Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528171439.580924717@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 7925f8f78f0190e96d9bfaf767b52e4f1176334c Author: Thomas Gleixner Date: Tue May 28 10:10:18 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 215 Based on 1 normalized pattern(s): this code is licenced under the gpl version 2 as described in the copying file that acompanies the linux kernel extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Reviewed-by: Steve Winslow Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528171439.466585205@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 003ba957919b1634b437615c86d68459e8450c10 Author: Thomas Gleixner Date: Tue May 28 10:10:17 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 214 Based on 1 normalized pattern(s): subject to the gpl v 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Steve Winslow Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528171439.372657724@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 0920654fd68f4bca4a0dbde722d6e7a71a8ac235 Author: Thomas Gleixner Date: Tue May 28 10:10:16 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 213 Based on 1 normalized pattern(s): subject to the gnu general public license v2 only extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Reviewed-by: Steve Winslow Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528171439.275006521@linutronix.de Signed-off-by: Greg Kroah-Hartman commit c456cfc2e52bff3540614ac85e0a1da95248f637 Author: Thomas Gleixner Date: Tue May 28 10:10:14 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 211 Based on 1 normalized pattern(s): released under the terms of the gnu gpl v2 0 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 9 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Steve Winslow Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528171439.076212120@linutronix.de Signed-off-by: Greg Kroah-Hartman commit d1d24ed481f5355f04cbdfb8d29114961a057e14 Author: Thomas Gleixner Date: Tue May 28 10:10:13 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 210 Based on 1 normalized pattern(s): this code is released under the gpl version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 4 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Steve Winslow Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528171438.985972314@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 59bd9ded4d7803d9f1f4d947064693513d18e724 Author: Thomas Gleixner Date: Tue May 28 10:10:12 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 209 Based on 1 normalized pattern(s): released under gpl v2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 15 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Steve Winslow Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528171438.895196075@linutronix.de Signed-off-by: Greg Kroah-Hartman commit eace21fa1e491382bc89142abbecaa51bc86a29f Author: Thomas Gleixner Date: Tue May 28 10:10:10 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 207 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of version 2 of the gnu general public license as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Steve Winslow Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528171438.709316650@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 25763b3c864cf517d686661012d184ee47a49b4c Author: Thomas Gleixner Date: Tue May 28 10:10:09 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 206 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of version 2 of the gnu general public license as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 107 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Steve Winslow Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528171438.615055994@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 02956874a853dd43b3f638e9e7ce1d7cbb220815 Author: Thomas Gleixner Date: Tue May 28 10:10:06 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 203 Based on 1 normalized pattern(s): the code contained herein is licensed under the gnu general public license v2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Reviewed-by: Richard Fontana Reviewed-by: Steve Winslow Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528171438.324426348@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 9952f6918daa4ab5fc81307a9f90e31a4df3b200 Author: Thomas Gleixner Date: Tue May 28 10:10:04 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms and conditions of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 228 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Steve Winslow Reviewed-by: Richard Fontana Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528171438.107155473@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f3d080a2082f3bc513010deeb8a4b4dd61b8a2d9 Author: Thomas Gleixner Date: Tue May 28 09:57:27 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 200 Based on 1 normalized pattern(s): this code is licenced under the general public licence version 2 and additional 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of version 2 of the gnu general public license as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program; if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111-1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Steve Winslow Reviewed-by: Alexios Zavras Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528170028.004542325@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 958349ccb03ba0e7be9a833b1f4b8392b3235172 Author: Thomas Gleixner Date: Tue May 28 09:57:26 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 199 Based on 1 normalized pattern(s): licensed under the terms of the gnu gpl version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Reviewed-by: Richard Fontana Reviewed-by: Steve Winslow Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528170027.911569875@linutronix.de Signed-off-by: Greg Kroah-Hartman commit dd2878aaceaf5d184c67b2c91c576bcfa0363118 Author: Thomas Gleixner Date: Tue May 28 09:57:25 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 198 Based on 1 normalized pattern(s): this software may be distributed under the terms of the gnu general public license gpl version 2 as distributed in the copying file from the main directory of the linux kernel source extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Steve Winslow Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528170027.816396794@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 0376148f303c7e87ff3577dac7d76b93e3a5779a Author: Thomas Gleixner Date: Tue May 28 09:57:24 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 197 Based on 1 normalized pattern(s): license terms gnu general public license v2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 37 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Steve Winslow Reviewed-by: Alexios Zavras Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528170027.724130665@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 8fe76f5a53718b20514fbf6a4a0ce1d4b1b93618 Author: Thomas Gleixner Date: Tue May 28 09:57:22 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 195 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 675 mass ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 4 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Steve Winslow Reviewed-by: Richard Fontana Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528170027.538300784@linutronix.de Signed-off-by: Greg Kroah-Hartman commit af873fcecef567abf8a3468b06dd4e4aab46da6d Author: Thomas Gleixner Date: Tue May 28 09:57:21 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 194 Based on 1 normalized pattern(s): license terms gnu general public license gpl version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 161 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Reviewed-by: Steve Winslow Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528170027.447718015@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 2522fe45a186e6276583e02723b78e1d1987cdd5 Author: Thomas Gleixner Date: Tue May 28 09:57:20 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 193 Based on 1 normalized pattern(s): this copyrighted material is made available to anyone wishing to use modify copy or redistribute it subject to the terms and conditions of the gnu general public license v 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 45 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Reviewed-by: Steve Winslow Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528170027.342746075@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f50a7f3d9225dd374455f28138f79ae3074a7a3d Author: Thomas Gleixner Date: Tue May 28 09:57:18 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 191 Based on 1 normalized pattern(s): licensed under gplv2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 99 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Reviewed-by: Steve Winslow Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528170027.163048684@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 84e56536107264ee54297e479ff4f4de9e050853 Author: Thomas Gleixner Date: Tue May 28 09:57:17 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 190 Based on 1 normalized pattern(s): licensed under gplv2 only extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 10 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Steve Winslow Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528170027.071422096@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 1f327613224e3a811d01d66d3c38762b3822057c Author: Thomas Gleixner Date: Tue May 28 09:57:16 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 188 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to free software foundation 51 franklin street fifth floor boston ma 02111 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 27 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Alexios Zavras Reviewed-by: Steve Winslow Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528170026.981318839@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 5a5ef56869cd20366c4eedddff97c369b2c524dc Author: Thomas Gleixner Date: Tue May 28 09:57:14 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 185 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation software distributed under the license is distributed on an as is basis without warranty of any kind either express or implied see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Alexios Zavras Reviewed-by: Steve Winslow Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528170026.802279667@linutronix.de Signed-off-by: Greg Kroah-Hartman commit ad306d686e211e2769baf33e0ae0e3df500faae8 Author: Thomas Gleixner Date: Tue May 28 09:57:12 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 183 Based on 1 normalized pattern(s): gpl license summary [copyright] [c] [2008] [2011] [intel] [corporation] [all] [rights] [reserved] this program is free software you can redistribute it and or modify it under the terms of version 2 of the gnu general public license as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin street fifth floor boston ma 02110 usa the full gnu general public license is included in this distribution in the file called license gpl extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 5 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Steve Winslow Reviewed-by: Alexios Zavras Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528170026.622254531@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 41173abc577b71e5ffa9d1f09b0c1a983526fa51 Author: Thomas Gleixner Date: Tue May 28 09:57:11 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 182 Based on 1 normalized pattern(s): this program is free software you can distribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 32 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Steve Winslow Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528170026.531157061@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 6776e83edbf79de2dec017f1a0594dbc09564ffd Author: Thomas Gleixner Date: Tue May 28 09:57:09 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 180 Based on 1 normalized pattern(s): subject to the gnu general public license version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 4 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Steve Winslow Reviewed-by: Richard Fontana Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528170026.343113277@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 0b7121833d5bbf96d17f0ca417768e181fcdf451 Author: Thomas Gleixner Date: Tue May 28 09:57:08 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 179 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Steve Winslow Reviewed-by: Alexios Zavras Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528170026.251475812@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 84a14ae8c44fb4828a05f363a09c3261472de00e Author: Thomas Gleixner Date: Tue May 28 09:57:07 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 178 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 24 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Alexios Zavras Reviewed-by: Steve Winslow Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528170026.162703968@linutronix.de Signed-off-by: Greg Kroah-Hartman commit fda8d26e61fc518499ddc78ae74ec1aaa89c4134 Author: Thomas Gleixner Date: Tue May 28 09:57:06 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 177 Based on 1 normalized pattern(s): licensed under the gpl 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 135 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Alexios Zavras Reviewed-by: Steve Winslow Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528170026.071193225@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 82c298100a2db7e4241e0fee73d94dc5ee573837 Author: Thomas Gleixner Date: Tue May 28 09:57:05 2019 -0700 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 176 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 675 mass ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 44 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Steve Winslow Reviewed-by: Alexios Zavras Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190528170025.980374610@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 6e75fc04010450a307087793e83317dc99432d26 Author: Thomas Gleixner Date: Mon May 27 08:55:22 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 175 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070034.665915326@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 1802d0beecafe581ad584634ba92f8a471d8a63a Author: Thomas Gleixner Date: Mon May 27 08:55:21 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 655 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070034.575739538@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f2cde8957d32fa69f3c2e838e860cc835e9a0485 Author: Thomas Gleixner Date: Mon May 27 08:55:20 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 173 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license v2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 021110 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070034.485313544@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 122375508ba37bdb0a99bf9c78f54500368aad2a Author: Thomas Gleixner Date: Mon May 27 08:55:19 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 172 Based on 1 normalized pattern(s): this file may be distributed under the terms of the gnu general public license version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 9 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070034.395589349@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4d3f18bb73d9f08ca85ea2ac24e6de2aa3144b0f Author: Thomas Gleixner Date: Mon May 27 08:55:18 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 171 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Armijn Hemel Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070034.307127850@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 468e15fdc2ec7048ab1ae93e200559151c84647e Author: Thomas Gleixner Date: Mon May 27 08:55:17 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 170 Based on 1 normalized pattern(s): this file is release under the gplv2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070034.216732358@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 873e65bc09078e56eaa51af2c9c60da2fad6fdbf Author: Thomas Gleixner Date: Mon May 27 08:55:15 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 167 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 of the license this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 83 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070034.021731668@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4f19048fd0a0036e02443237952db5bfa5b5cdf0 Author: Thomas Gleixner Date: Mon May 27 08:55:14 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 166 Based on 1 normalized pattern(s): licensed under the terms of the gnu gpl license version 2 extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 62 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070033.929121379@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4a27fd1501a5dc2d13233736990beafd115735dc Author: Thomas Gleixner Date: Mon May 27 08:55:13 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 165 Based on 1 normalized pattern(s): licensed under gpl version 2 only extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070033.838202816@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 935912c538f15de4f28bbaa1a7aaadc7fe0fb118 Author: Thomas Gleixner Date: Mon May 27 08:55:12 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 164 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation version 2 of the license this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin street fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-only has been chosen to replace the boilerplate/reference in 12 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070033.745497013@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 37fa65d0fd8a795cf838922462d3a7a2c3c90c5d Author: Thomas Gleixner Date: Mon May 27 08:55:11 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 162 Based on 1 normalized pattern(s): gplv2 or later extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Armijn Hemel Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070033.654888175@linutronix.de Signed-off-by: Greg Kroah-Hartman commit cfcf6e707ef6834d6cd1510296ee4f75a8e9bd99 Author: Thomas Gleixner Date: Mon May 27 08:55:10 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 161 Based on 1 normalized pattern(s): this library is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this library is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this library if not write to the free software foundation inc 51 franklin st fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070033.564858142@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 736e67ba238fd6935cde5bb9d3ee9d0fc4c1c144 Author: Thomas Gleixner Date: Mon May 27 08:55:09 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 160 Based on 1 normalized pattern(s): this file is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this file is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this library if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070033.475087903@linutronix.de Signed-off-by: Greg Kroah-Hartman commit fcaf20360a5992b88603271ab814a200e28d0088 Author: Thomas Gleixner Date: Mon May 27 08:55:08 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 159 Based on 1 normalized pattern(s): the code contained herein is licensed under the gnu general public license you may obtain a copy of the gnu general public license version 2 or later at the following locations http www opensource org licenses gpl license html http www gnu org copyleft gpl html extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 161 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070033.383790741@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 3cfa958b08a4f81645903a364825b2b18f41c117 Author: Thomas Gleixner Date: Mon May 27 08:55:07 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 158 Based on 1 normalized pattern(s): is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070033.293907437@linutronix.de Signed-off-by: Greg Kroah-Hartman commit c942fddf8793b2013be8c901b47d0a8dc02bf99f Author: Thomas Gleixner Date: Mon May 27 08:55:06 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 157 Based on 3 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version [author] [kishon] [vijay] [abraham] [i] [kishon]@[ti] [com] this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version [author] [graeme] [gregory] [gg]@[slimlogic] [co] [uk] [author] [kishon] [vijay] [abraham] [i] [kishon]@[ti] [com] [based] [on] [twl6030]_[usb] [c] [author] [hema] [hk] [hemahk]@[ti] [com] this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1105 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070033.202006027@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 1a59d1b8e05ea6ab45f7e18897de1ef0e6bc3da6 Author: Thomas Gleixner Date: Mon May 27 08:55:05 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1334 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070033.113240726@linutronix.de Signed-off-by: Greg Kroah-Hartman commit e78d0eabefb7cabd5f168754a2d890624897f6a1 Author: Thomas Gleixner Date: Mon May 27 08:55:04 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 155 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin street fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070033.022316957@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 3bf4200603f5d27447e9958f25db459089b415b0 Author: Thomas Gleixner Date: Mon May 27 08:55:03 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 154 Based on 1 normalized pattern(s): this package is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this package is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this package if not write to the free software foundation inc 51 franklin st fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070032.930071175@linutronix.de Signed-off-by: Greg Kroah-Hartman commit de6cc6515a445d5d81cad2dee899a0be1a6317f8 Author: Thomas Gleixner Date: Mon May 27 08:55:02 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 153 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 675 mass ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 77 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070032.837555891@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 2874c5fd284268364ece81a7bd936f3c8168e567 Author: Thomas Gleixner Date: Mon May 27 08:55:01 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 152 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 3029 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070032.746973796@linutronix.de Signed-off-by: Greg Kroah-Hartman commit a912e80bd0bbfec053ccfdca625c2c760a8b08e8 Author: Thomas Gleixner Date: Mon May 27 08:55:00 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 151 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 675 mass ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 35 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Armijn Hemel Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070032.655028468@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 660662f857bc342b287572789b2494d0614e001d Author: Thomas Gleixner Date: Fri May 24 12:04:10 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 150 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 42 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190524100845.259718220@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 80503b23b23b5b2228d8750b786eb182f2fa28d2 Author: Thomas Gleixner Date: Fri May 24 12:04:09 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 149 Based on 1 normalized pattern(s): licensed under the gpl 2 or later extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 82 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190524100845.150836982@linutronix.de Signed-off-by: Greg Kroah-Hartman commit db73570c1cc2bf9baee546bd17e3eee5c515cfcd Author: Thomas Gleixner Date: Fri May 24 12:04:08 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 148 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this kernel if not write to the free software foundation inc 675 mass ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190524100845.038326898@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 53c8ab3584148acb61426cd5af0450045855c35b Author: Thomas Gleixner Date: Fri May 24 12:04:07 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 147 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the [therms] of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190524100844.941364072@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 328970de0e39d596e0ef44080e7642224b29ecde Author: Thomas Gleixner Date: Fri May 24 12:04:05 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 145 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 021110 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 84 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190524100844.756442981@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 2b4f7350c2cc760a854c398569491010cf4e65a4 Author: Thomas Gleixner Date: Fri May 24 12:04:04 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 144 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the therms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190524100844.655184195@linutronix.de Signed-off-by: Greg Kroah-Hartman commit e9483576d02cb03fc5574a4806c821511baf914f Author: Thomas Gleixner Date: Fri May 24 12:04:03 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 143 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190524100844.561472061@linutronix.de Signed-off-by: Greg Kroah-Hartman commit a94da204fded9dccd545782c17959469519ef3a8 Author: Thomas Gleixner Date: Fri May 24 12:04:02 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 142 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation inc 675 mass ave cambridge ma 02139 usa either version 2 of the license or at your option any later version incorporated herein by reference extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 4 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190524100844.465381181@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 1cc6582eeff2b897d5fa69707d9e56cc32eefe04 Author: Thomas Gleixner Date: Fri May 24 12:04:00 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 140 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190524100844.276644418@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 6db657ddbd845eb0ffb834937a590760b19e5352 Author: Thomas Gleixner Date: Fri May 24 12:03:59 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 139 Based on 1 normalized pattern(s): this code is free software you may copy modify and distribute it subject to the terms and conditions of the gnu general public license version 2 or any later version at your convenience extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190524100844.176622298@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 7cb22cc3ec6243285f62599fc886db5aaed19304 Author: Thomas Gleixner Date: Fri May 24 12:03:58 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 138 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190524100844.067492367@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 3ef9dff4aea19bdc98fa588ea79ac1306a1edbda Author: Thomas Gleixner Date: Fri May 24 12:03:57 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 137 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190524100843.971812365@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 2fe68aa345c58e0c41e6d9c90db15ff38f318b40 Author: Thomas Gleixner Date: Fri May 24 12:03:56 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 136 Based on 1 normalized pattern(s): is available under the gpl v2 or later this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190524100843.876362585@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 5fca9e5c694b8c1e6b0346d45677dadbe9bf59ec Author: Thomas Gleixner Date: Fri May 24 12:03:55 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 135 Based on 1 normalized pattern(s): this source code is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190524100843.782742400@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4ffda6361f1d4b60a1d993bd6f6b766457484cc7 Author: Thomas Gleixner Date: Fri May 24 12:03:53 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 133 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details the full gnu general public license is in this distribution in the file called copying extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190524100843.594454135@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 7931287d4719efb647917e25f34d9baf501ed035 Author: Thomas Gleixner Date: Fri May 24 12:03:52 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 132 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 675 mass ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 4 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190524100843.499675784@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 372e8ee96fd4127427eccab0abef6dfd807403a9 Author: Thomas Gleixner Date: Fri May 24 12:03:51 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 131 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Daniel M German Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190524100843.397682032@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 005fdd53d673375cb24c7d63b707d9b5793a170d Author: Thomas Gleixner Date: Fri May 24 12:03:50 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 130 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu library general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 10 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527063114.579638220@linutronix.de Link: https://lkml.kernel.org/r/20190524100843.303899865@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 2e97506ac44c6c32bf7470c43841074369c77825 Author: Thomas Gleixner Date: Fri May 24 12:03:49 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 129 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Reviewed-by: Daniel M German Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527063114.489565842@linutronix.de Link: https://lkml.kernel.org/r/20190524100843.207819312@linutronix.de Signed-off-by: Greg Kroah-Hartman commit bb522f7305d6d91342d20c964dbc60984da89474 Author: Thomas Gleixner Date: Fri May 24 12:03:48 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 128 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Reviewed-by: Daniel M German Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527063114.385641227@linutronix.de Link: https://lkml.kernel.org/r/20190524100843.113522467@linutronix.de Signed-off-by: Greg Kroah-Hartman commit eb1fe3bfe8bf49a07d30d8a547c508f4dc3254e8 Author: Thomas Gleixner Date: Fri May 24 12:03:47 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 127 Based on 1 normalized pattern(s): this file is released under gplv2 or later extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527063114.295960793@linutronix.de Link: https://lkml.kernel.org/r/20190524100843.018830140@linutronix.de Signed-off-by: Greg Kroah-Hartman commit b78bbafe1562a0776bac077beaa8db83b8776ce5 Author: Thomas Gleixner Date: Fri May 24 12:03:46 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 126 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527063114.206914251@linutronix.de Link: https://lkml.kernel.org/r/20190524100842.915521339@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4b280531e84cd6350c3b611de600ef2d47351bbb Merge: f2696099c6c6 458bf2f224f0 Author: David S. Miller Date: Thu May 30 11:12:21 2019 -0700 Merge branch 'XDP-generic-fixes' Stephen Hemminger says: ==================== XDP generic fixes This set of patches came about while investigating XDP generic on Azure. The split brain nature of the accelerated networking exposed issues with the stack device model. ==================== Signed-off-by: David S. Miller commit 458bf2f224f04a513b0be972f8708e78ee2c986e Author: Stephen Hemminger Date: Tue May 28 11:47:31 2019 -0700 net: core: support XDP generic on stacked devices. When a device is stacked like (team, bonding, failsafe or netvsc) the XDP generic program for the parent device was not called. Move the call to XDP generic inside __netif_receive_skb_core where it can be done multiple times for stacked case. Fixes: d445516966dc ("net: xdp: support xdp generic on virtual devices") Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit 996ed04741467f6d1552440c92988b132a9487ec Author: Stephen Hemminger Date: Tue May 28 11:47:30 2019 -0700 netvsc: unshare skb in VF rx handler The netvsc VF skb handler should make sure that skb is not shared. Similar logic already exists in bonding and team device drivers. This is not an issue in practice because the VF devicex does not send up shared skb's. But the netvsc driver should do the right thing if it did. Fixes: 0c195567a8f6 ("netvsc: transparent VF management") Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit f2696099c6c619aec4fe2b9691f0a81429957e65 Author: Sean Tranchetti Date: Tue May 28 12:22:54 2019 -0600 udp: Avoid post-GRO UDP checksum recalculation Currently, when resegmenting an unexpected UDP GRO packet, the full UDP checksum will be calculated for every new SKB created by skb_segment() because the netdev features passed in by udp_rcv_segment() lack any information about checksum offload capabilities. Usually, we have no need to perform this calculation again, as 1) The GRO implementation guarantees that any packets making it to the udp_rcv_segment() function had correct checksums, and, more importantly, 2) Upon the successful return of udp_rcv_segment(), we immediately pull the UDP header off and either queue the segment to the socket or hand it off to a new protocol handler. Unless userspace has set the IP_CHECKSUM sockopt to indicate that they want the final checksum values, we can pass the needed netdev feature flags to __skb_gso_segment() to avoid checksumming each segment in skb_segment(). Fixes: cf329aa42b66 ("udp: cope with UDP GRO packet misdirection") Cc: Paolo Abeni Cc: Subash Abhinov Kasiviswanathan Signed-off-by: Sean Tranchetti Acked-by: Paolo Abeni Signed-off-by: David S. Miller commit 6486199378a505c58fddc47459631235c9fb7638 Author: Sagi Grimberg Date: Tue May 28 22:49:05 2019 -0700 nvme-tcp: fix queue mapping when queue count is limited When the controller supports less queues than requested, we should make sure that queue mapping does the right thing and not assume that all queues are available. This fixes a crash when the controller supports less queues than requested. The rules are: 1. if no write queues are requested, we assign the available queues to the default queue map. The default and read queue maps share the existing queues. 2. if write queues are requested: - first make sure that read queue map gets the requested nr_io_queues count - then grant the default queue map the minimum between the requested nr_write_queues and the remaining queues. If there are no available queues to dedicate to the default queue map, fallback to (1) and share all the queues in the existing queue map. Also, provide a log indication on how we constructed the different queue maps. Reported-by: Harris, James R Tested-by: Jim Harris Cc: # v5.0+ Suggested-by: Roy Shterman Signed-off-by: Sagi Grimberg commit 5651cd3c43368873d0787b52acb2e0e08f3c5da4 Author: Sagi Grimberg Date: Tue May 28 22:49:04 2019 -0700 nvme-rdma: fix queue mapping when queue count is limited When the controller supports less queues than requested, we should make sure that queue mapping does the right thing and not assume that all queues are available. This fixes a crash when the controller supports less queues than requested. The rules are: 1. if no write/poll queues are requested, we assign the available queues to the default queue map. The default and read queue maps share the existing queues. 2. if write queues are requested: - first make sure that read queue map gets the requested nr_io_queues count - then grant the default queue map the minimum between the requested nr_write_queues and the remaining queues. If there are no available queues to dedicate to the default queue map, fallback to (1) and share all the queues in the existing queue map. 3. if poll queues are requested: - map the remaining queues to the poll queue map. Also, provide a log indication on how we constructed the different queue maps. Reported-by: Harris, James R Reviewed-by: Max Gurtovoy Tested-by: Jim Harris Cc: # v5.0+ Signed-off-by: Sagi Grimberg commit 498ddaa3b4e72152ae42dab2d4ebe93092885422 Author: Moritz Fischer Date: Thu May 30 09:52:59 2019 -0500 fpga: zynqmp-fpga: Correctly handle error pointer Fixes the following static checker errors: drivers/fpga/zynqmp-fpga.c:50 zynqmp_fpga_ops_write() error: 'eemi_ops' dereferencing possible ERR_PTR() drivers/fpga/zynqmp-fpga.c:84 zynqmp_fpga_ops_state() error: 'eemi_ops' dereferencing possible ERR_PTR() Note: This does not handle the EPROBE_DEFER value in a special manner. Fixes commit c09f7471127e ("fpga manager: Adding FPGA Manager support for Xilinx zynqmp") Reported-by: Dan Carpenter Signed-off-by: Moritz Fischer Acked-by: Alan Tull Signed-off-by: Greg Kroah-Hartman commit bc2cce3f2ebcae02aa4bb29e3436bf75ee674c32 Author: Naresh Kamboju Date: Tue May 28 13:18:09 2019 +0100 selftests: vm: install test_vmalloc.sh for run_vmtests Add test_vmalloc.sh to TEST_FILES to make sure it gets installed for run_vmtests. Fixed below error: ./run_vmtests: line 217: ./test_vmalloc.sh: No such file or directory Tested with: make TARGETS=vm install INSTALL_PATH=$PWD/x Signed-off-by: Naresh Kamboju Signed-off-by: Shuah Khan commit 98a13a8d253999cf25eb16d901c35fbd2a8455c4 Author: Alakesh Haloi Date: Mon May 27 15:18:59 2019 +0000 userfaultfd: selftest: fix compiler warning Fixes following compiler warning userfaultfd.c: In function ‘usage’: userfaultfd.c:126:2: warning: format not a string literal and no format arguments [-Wformat-security] fprintf(stderr, examples); Signed-off-by: Alakesh Haloi Reviewed-by: Peter Xu Reviewed-by: Mike Rapoport Signed-off-by: Shuah Khan commit f97f3f8839eb9de5843066d80819884f7722c8c5 Author: Alex Shi Date: Mon May 27 14:28:07 2019 +0800 kselftest/cgroup: fix incorrect test_core skip The test_core will skip the test_cgcore_no_internal_process_constraint_on_threads test case if the 'cpu' controller missing in root's subtree_control. In fact we need to set the 'cpu' in subtree_control, to make the testing meaningful. ./test_core ... ok 4 # skip test_cgcore_no_internal_process_constraint_on_threads ... Signed-off-by: Alex Shi Cc: Shuah Khan Cc: Tejun Heo Cc: Roman Gushchin Cc: Claudio Zumbo Cc: Claudio Cc: linux-kselftest@vger.kernel.org Cc: linux-kernel@vger.kernel.org Reviewed-by: Roman Gushchin Acked-by: Tejun Heo Signed-off-by: Shuah Khan commit 00e38a5d753d7788852f81703db804a60a84c26e Author: Alex Shi Date: Mon May 27 14:28:06 2019 +0800 kselftest/cgroup: fix unexpected testing failure on test_core The cgroup testing relys on the root cgroup's subtree_control setting, If the 'memory' controller isn't set, some test cases will be failed as following: $sudo ./test_core not ok 1 test_cgcore_internal_process_constraint ok 2 test_cgcore_top_down_constraint_enable not ok 3 test_cgcore_top_down_constraint_disable ... To correct this unexpected failure, this patch write the 'memory' to subtree_control of root to get a right result. Signed-off-by: Alex Shi Cc: Shuah Khan Cc: Tejun Heo Cc: Roman Gushchin Cc: Claudio Zumbo Cc: Claudio Cc: linux-kselftest@vger.kernel.org Cc: linux-kernel@vger.kernel.org Reviewed-by: Roman Gushchin Acked-by: Tejun Heo Signed-off-by: Shuah Khan commit f6131f28057d4fd8922599339e701a2504e0f23d Author: Alex Shi Date: Mon May 27 14:28:05 2019 +0800 kselftest/cgroup: fix unexpected testing failure on test_memcontrol The cgroup testing relies on the root cgroup's subtree_control setting, If the 'memory' controller isn't set, all test cases will be failed as following: $ sudo ./test_memcontrol not ok 1 test_memcg_subtree_control not ok 2 test_memcg_current ok 3 # skip test_memcg_min not ok 4 test_memcg_low not ok 5 test_memcg_high not ok 6 test_memcg_max not ok 7 test_memcg_oom_events ok 8 # skip test_memcg_swap_max not ok 9 test_memcg_sock not ok 10 test_memcg_oom_group_leaf_events not ok 11 test_memcg_oom_group_parent_events not ok 12 test_memcg_oom_group_score_events To correct this unexpected failure, this patch write the 'memory' to subtree_control of root to get a right result. Signed-off-by: Alex Shi Cc: Shuah Khan Cc: Roman Gushchin Cc: Tejun Heo Cc: Mike Rapoport Cc: Jay Kamat Cc: linux-kselftest@vger.kernel.org Cc: linux-kernel@vger.kernel.org Reviewed-by: Roman Gushchin Acked-by: Tejun Heo Signed-off-by: Shuah Khan commit adefd051a6707a6ca0ebad278d3c1c05c960fc3b Author: Guenter Roeck Date: Thu May 30 05:41:38 2019 -0700 xtensa: Fix section mismatch between memblock_reserve and mem_reserve Since commit 9012d011660ea5cf2 ("compiler: allow all arches to enable CONFIG_OPTIMIZE_INLINING"), xtensa:tinyconfig fails to build with section mismatch errors. WARNING: vmlinux.o(.text.unlikely+0x68): Section mismatch in reference from the function ___pa() to the function .meminit.text:memblock_reserve() WARNING: vmlinux.o(.text.unlikely+0x74): Section mismatch in reference from the function mem_reserve() to the function .meminit.text:memblock_reserve() FATAL: modpost: Section mismatches detected. This was not seen prior to the above mentioned commit because mem_reserve() was always inlined. Mark mem_reserve(() as __init_memblock to have it reside in the same section as memblock_reserve(). Signed-off-by: Guenter Roeck Message-Id: <1559220098-9955-1-git-send-email-linux@roeck-us.net> Signed-off-by: Max Filippov commit f6e2aa91a46d2bc79fce9b93a988dbe7655c90c0 Author: Eric W. Biederman Date: Tue May 28 18:46:37 2019 -0500 signal/ptrace: Don't leak unitialized kernel memory with PTRACE_PEEK_SIGINFO Recently syzbot in conjunction with KMSAN reported that ptrace_peek_siginfo can copy an uninitialized siginfo to userspace. Inspecting ptrace_peek_siginfo confirms this. The problem is that off when initialized from args.off can be initialized to a negaive value. At which point the "if (off >= 0)" test to see if off became negative fails because off started off negative. Prevent the core problem by adding a variable found that is only true if a siginfo is found and copied to a temporary in preparation for being copied to userspace. Prevent args.off from being truncated when being assigned to off by testing that off is <= the maximum possible value of off. Convert off to an unsigned long so that we should not have to truncate args.off, we have well defined overflow behavior so if we add another check we won't risk fighting undefined compiler behavior, and so that we have a type whose maximum value is easy to test for. Cc: Andrei Vagin Cc: stable@vger.kernel.org Reported-by: syzbot+0d602a1b0d8c95bdf299@syzkaller.appspotmail.com Fixes: 84c751bd4aeb ("ptrace: add ability to retrieve signals without removing from a queue (v4)") Signed-off-by: "Eric W. Biederman" commit 685c9b7750bfacd6fc1db50d86579980593b7869 Author: Takashi Iwai Date: Wed May 29 14:52:20 2019 +0200 mwifiex: Abort at too short BSS descriptor element Currently mwifiex_update_bss_desc_with_ie() implicitly assumes that the source descriptor entries contain the enough size for each type and performs copying without checking the source size. This may lead to read over boundary. Fix this by putting the source size check in appropriate places. Signed-off-by: Takashi Iwai Signed-off-by: Kalle Valo commit 13ec7f10b87f5fc04c4ccbd491c94c7980236a74 Author: Takashi Iwai Date: Wed May 29 14:52:19 2019 +0200 mwifiex: Fix possible buffer overflows at parsing bss descriptor mwifiex_update_bss_desc_with_ie() calls memcpy() unconditionally in a couple places without checking the destination size. Since the source is given from user-space, this may trigger a heap buffer overflow. Fix it by putting the length check before performing memcpy(). This fix addresses CVE-2019-3846. Reported-by: huangwen Signed-off-by: Takashi Iwai Signed-off-by: Kalle Valo commit 0b32e1974969bfe09ef0f15338785b2cfde91893 Author: Aleksei Gimbitskii Date: Thu May 2 12:59:22 2019 +0300 drm/i915/gvt: Assign NULL to the pointer after memory free. The klocwork static code analyzer complains about using pointer after being freed, because further we pass it to the gvt_vgpu_err() function. Assign pointer to be NULL intentionaly, to meet requirements of the code analyzer. This patch fixed the issue #648 reported as error by klocwork. Acked-by: Colin Xu Signed-off-by: Aleksei Gimbitskii Cc: Zhenyu Wang Cc: Zhi Wang Signed-off-by: Zhenyu Wang commit 27348cc9c8ec5588cd5fd66250cf846e35c25055 Author: Aleksei Gimbitskii Date: Thu May 2 12:59:21 2019 +0300 drm/i915/gvt: Check if cur_pt_type is valid Static code analyzer warns that index value for scratch_pt may be equal to -1. Index value type is intel_gvt_gtt_type_t, so it may be any number at range -1 to 17. Check first if cur_pt_type and cur_pt_type+1 is valid values. v2: - Print some error messages if page table type is invalid. (Colin Xu) v4: - Print cur_pt_type in error message. (Colin Xu) This patch fixed the critial issue #422 reported by klocwork. Acked-by: Colin Xu Signed-off-by: Aleksei Gimbitskii Cc: Zhenyu Wang Cc: Zhi Wang Cc: Colin Xu Signed-off-by: Zhenyu Wang commit be1fcde604e429691771ce70230668af8097e29b Author: Rafael J. Wysocki Date: Mon May 27 12:56:07 2019 +0200 x86: intel_epb: Do not build when CONFIG_PM is unset Commit 9ed0985332a6 ("x86: intel_epb: Take CONFIG_PM into account") prevented the majority of the Performance and Energy Bias Hint (EPB) handling code from being built when CONFIG_PM is unset to fix a regression introduced by commit b9c273babce7 ("PM / arch: x86: MSR_IA32_ENERGY_PERF_BIAS sysfs interface"). In hindsight, however, it would be better to skip all of the EPB handling code for CONFIG_PM unset as there really is no reason for it to be there in that case. Namely, if the EPB is not touched by the kernel at all with CONFIG_PM unset, there is no need to worry about modifying the EPB inadvertently on CPU online and since the system will not suspend or hibernate then, there is no need to worry about possible modifications of the EPB by the platform firmware during system-wide PM transitions. For this reason, revert the changes made by commit 9ed0985332a6 and only allow intel_epb.o to be built when CONFIG_PM is set. Note that this changes the behavior of the kernels built with CONFIG_PM unset as they will not modify the EPB on boot if it is zero initially any more, so it is not a fix strictly speaking, but users building their kernels with CONFIG_PM unset really should not expect them to take energy efficiency into account. Moreover, if CONFIG_PM is unset for performance reasons, leaving EPB as set initially by the platform firmware will actually be consistent with the user's expectations. Signed-off-by: Rafael J. Wysocki Acked-by: Ingo Molnar commit 7829a0c1cb9c80debfb4fdb49b4d90019f2ea1ac Author: Eric Biggers Date: Wed May 22 12:42:29 2019 -0700 crypto: hmac - fix memory leak in hmac_init_tfm() When I added the sanity check of 'descsize', I missed that the child hash tfm needs to be freed if the sanity check fails. Of course this should never happen, hence the use of WARN_ON(), but it should be fixed. Fixes: e1354400b25d ("crypto: hash - fix incorrect HASH_MAX_DESCSIZE") Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 9c5b34c2f7eb01976a5aa29ccdb786a634e3d1e0 Author: Eric Biggers Date: Tue May 21 11:46:22 2019 -0700 crypto: jitterentropy - change back to module_init() "jitterentropy_rng" doesn't have any other implementations, nor is it tested by the crypto self-tests. So it was unnecessary to change it to subsys_initcall. Also it depends on the main clocksource being initialized, which may happen after subsys_initcall, causing this error: jitterentropy: Initialization failed with host not compliant with requirements: 2 Change it back to module_init(). Fixes: c4741b230597 ("crypto: run initcalls for generic implementations earlier") Reported-by: Geert Uytterhoeven Signed-off-by: Eric Biggers Tested-by: Geert Uytterhoeven Signed-off-by: Herbert Xu commit 34f61de87017aff3c8306280d196dddb1e168a88 Author: Tony Lindgren Date: Thu May 30 00:25:23 2019 -0700 ARM: dts: Drop bogus CLKSEL for timer12 on dra7 There is no CLKSEL for timer12 on dra7 unlike for timer1. This causes issues on booting the device that Tomi noticed if DEBUG_SLAB is enabled and the clkctrl clock does not properly handle non-existing clock. Let's drop the bogus CLKSEL clock, the clkctrl clock handling gets fixed separately. Cc: Peter Ujfalusi Cc: Tero Kristo Cc: Tomi Valkeinen Reported-by: Tomi Valkeinen Tested-by: Tomi Valkeinen Tested-by: Peter Ujfalusi Fixes: 4ed0dfe3cf39 ("ARM: dts: dra7: Move l4 child devices to probe them with ti-sysc") Signed-off-by: Tony Lindgren commit d724c9e54939a597592de3659541da11fc7aa112 Author: Suraj Jitindar Singh Date: Thu May 30 12:17:18 2019 +1000 KVM: PPC: Book3S HV: Restore SPRG3 in kvmhv_p9_guest_entry() The sprgs are a set of 4 general purpose sprs provided for software use. SPRG3 is special in that it can also be read from userspace. Thus it is used on linux to store the cpu and numa id of the process to speed up syscall access to this information. This register is overwritten with the guest value on kvm guest entry, and so needs to be restored on exit again. Thus restore the value on the guest exit path in kvmhv_p9_guest_entry(). Cc: stable@vger.kernel.org # v4.20+ Fixes: 95a6432ce9038 ("KVM: PPC: Book3S HV: Streamlined guest entry/exit path on P9 for radix guests") Signed-off-by: Suraj Jitindar Singh Signed-off-by: Paul Mackerras commit 1b28d5531e446a87bbefa5ced191c4cbd316576c Author: Paul Mackerras Date: Tue May 28 15:01:59 2019 +1000 KVM: PPC: Book3S HV: Fix lockdep warning when entering guest on POWER9 Commit 3309bec85e60 ("KVM: PPC: Book3S HV: Fix lockdep warning when entering the guest") moved calls to trace_hardirqs_{on,off} in the entry path used for HPT guests. Similar code exists in the new streamlined entry path used for radix guests on POWER9. This makes the same change there, so as to avoid lockdep warnings such as this: [ 228.686461] DEBUG_LOCKS_WARN_ON(current->hardirqs_enabled) [ 228.686480] WARNING: CPU: 116 PID: 3803 at ../kernel/locking/lockdep.c:4219 check_flags.part.23+0x21c/0x270 [ 228.686544] Modules linked in: vhost_net vhost xt_CHECKSUM iptable_mangle xt_MASQUERADE iptable_nat nf_nat +xt_conntrack nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 ipt_REJECT nf_reject_ipv4 tun bridge stp llc ebtable_filter +ebtables ip6table_filter ip6_tables iptable_filter fuse kvm_hv kvm at24 ipmi_powernv regmap_i2c ipmi_devintf +uio_pdrv_genirq ofpart ipmi_msghandler uio powernv_flash mtd ibmpowernv opal_prd ip_tables ext4 mbcache jbd2 btrfs +zstd_decompress zstd_compress raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx libcrc32c xor +raid6_pq raid1 raid0 ses sd_mod enclosure scsi_transport_sas ast i2c_opal i2c_algo_bit drm_kms_helper syscopyarea +sysfillrect sysimgblt fb_sys_fops ttm drm i40e e1000e cxl aacraid tg3 drm_panel_orientation_quirks i2c_core [ 228.686859] CPU: 116 PID: 3803 Comm: qemu-system-ppc Kdump: loaded Not tainted 5.2.0-rc1-xive+ #42 [ 228.686911] NIP: c0000000001b394c LR: c0000000001b3948 CTR: c000000000bfad20 [ 228.686963] REGS: c000200cdb50f570 TRAP: 0700 Not tainted (5.2.0-rc1-xive+) [ 228.687001] MSR: 9000000002823033 CR: 48222222 XER: 20040000 [ 228.687060] CFAR: c000000000116db0 IRQMASK: 1 [ 228.687060] GPR00: c0000000001b3948 c000200cdb50f800 c0000000015e7600 000000000000002e [ 228.687060] GPR04: 0000000000000001 c0000000001c71a0 000000006e655f73 72727563284e4f5f [ 228.687060] GPR08: 0000200e60680000 0000000000000000 c000200cdb486180 0000000000000000 [ 228.687060] GPR12: 0000000000002000 c000200fff61a680 0000000000000000 00007fffb75c0000 [ 228.687060] GPR16: 0000000000000000 0000000000000000 c0000000017d6900 c000000001124900 [ 228.687060] GPR20: 0000000000000074 c008000006916f68 0000000000000074 0000000000000074 [ 228.687060] GPR24: ffffffffffffffff ffffffffffffffff 0000000000000003 c000200d4b600000 [ 228.687060] GPR28: c000000001627e58 c000000001489908 c000000001627e58 c000000002304de0 [ 228.687377] NIP [c0000000001b394c] check_flags.part.23+0x21c/0x270 [ 228.687415] LR [c0000000001b3948] check_flags.part.23+0x218/0x270 [ 228.687466] Call Trace: [ 228.687488] [c000200cdb50f800] [c0000000001b3948] check_flags.part.23+0x218/0x270 (unreliable) [ 228.687542] [c000200cdb50f870] [c0000000001b6548] lock_is_held_type+0x188/0x1c0 [ 228.687595] [c000200cdb50f8d0] [c0000000001d939c] rcu_read_lock_sched_held+0xdc/0x100 [ 228.687646] [c000200cdb50f900] [c0000000001dd704] rcu_note_context_switch+0x304/0x340 [ 228.687701] [c000200cdb50f940] [c0080000068fcc58] kvmhv_run_single_vcpu+0xdb0/0x1120 [kvm_hv] [ 228.687756] [c000200cdb50fa20] [c0080000068fd5b0] kvmppc_vcpu_run_hv+0x5e8/0xe40 [kvm_hv] [ 228.687816] [c000200cdb50faf0] [c0080000071797dc] kvmppc_vcpu_run+0x34/0x48 [kvm] [ 228.687863] [c000200cdb50fb10] [c0080000071755dc] kvm_arch_vcpu_ioctl_run+0x244/0x420 [kvm] [ 228.687916] [c000200cdb50fba0] [c008000007165ccc] kvm_vcpu_ioctl+0x424/0x838 [kvm] [ 228.687957] [c000200cdb50fd10] [c000000000433a24] do_vfs_ioctl+0xd4/0xcd0 [ 228.687995] [c000200cdb50fdb0] [c000000000434724] ksys_ioctl+0x104/0x120 [ 228.688033] [c000200cdb50fe00] [c000000000434768] sys_ioctl+0x28/0x80 [ 228.688072] [c000200cdb50fe20] [c00000000000b888] system_call+0x5c/0x70 [ 228.688109] Instruction dump: [ 228.688142] 4bf6342d 60000000 0fe00000 e8010080 7c0803a6 4bfffe60 3c82ff87 3c62ff87 [ 228.688196] 388472d0 3863d738 4bf63405 60000000 <0fe00000> 4bffff4c 3c82ff87 3c62ff87 [ 228.688251] irq event stamp: 205 [ 228.688287] hardirqs last enabled at (205): [] kvmhv_run_single_vcpu+0x30c/0x1120 [kvm_hv] [ 228.688344] hardirqs last disabled at (204): [] kvmhv_run_single_vcpu+0x148/0x1120 [kvm_hv] [ 228.688412] softirqs last enabled at (180): [] __do_softirq+0x4ac/0x5d4 [ 228.688464] softirqs last disabled at (169): [] irq_exit+0x1f8/0x210 [ 228.688513] ---[ end trace eb16f6260022a812 ]--- [ 228.688548] possible reason: unannotated irqs-off. [ 228.688571] irq event stamp: 205 [ 228.688607] hardirqs last enabled at (205): [] kvmhv_run_single_vcpu+0x30c/0x1120 [kvm_hv] [ 228.688664] hardirqs last disabled at (204): [] kvmhv_run_single_vcpu+0x148/0x1120 [kvm_hv] [ 228.688719] softirqs last enabled at (180): [] __do_softirq+0x4ac/0x5d4 [ 228.688758] softirqs last disabled at (169): [] irq_exit+0x1f8/0x210 Cc: stable@vger.kernel.org # v4.20+ Fixes: 95a6432ce903 ("KVM: PPC: Book3S HV: Streamlined guest entry/exit path on P9 for radix guests") Signed-off-by: Paul Mackerras Reviewed-by: Cédric Le Goater Tested-by: Cédric Le Goater Signed-off-by: Paul Mackerras commit bcaa3110d584f982a17e9ddbfc03e1130bca2bc9 Author: Cédric Le Goater Date: Tue May 28 23:13:24 2019 +0200 KVM: PPC: Book3S HV: XIVE: Fix page offset when clearing ESB pages Under XIVE, the ESB pages of an interrupt are used for interrupt management (EOI) and triggering. They are made available to guests through a mapping of the XIVE KVM device. When a device is passed-through, the passthru_irq helpers, kvmppc_xive_set_mapped() and kvmppc_xive_clr_mapped(), clear the ESB pages of the guest IRQ number being mapped and let the VM fault handler repopulate with the correct page. The ESB pages are mapped at offset 4 (KVM_XIVE_ESB_PAGE_OFFSET) in the KVM device mapping. Unfortunately, this offset was not taken into account when clearing the pages. This lead to issues with the passthrough devices for which the interrupts were not functional under some guest configuration (tg3 and single CPU) or in any configuration (e1000e adapter). Reviewed-by: Greg Kurz Tested-by: Greg Kurz Signed-off-by: Cédric Le Goater Signed-off-by: Paul Mackerras commit aedb5b19429c807331e8387bcb98cb5dc4c2a75e Author: Cédric Le Goater Date: Tue May 28 14:17:16 2019 +0200 KVM: PPC: Book3S HV: XIVE: Take the srcu read lock when accessing memslots According to Documentation/virtual/kvm/locking.txt, the srcu read lock should be taken when accessing the memslots of the VM. The XIVE KVM device needs to do so when configuring the page of the OS event queue of vCPU for a given priority and when marking the same page dirty before migration. This avoids warnings such as : [ 208.224882] ============================= [ 208.224884] WARNING: suspicious RCU usage [ 208.224889] 5.2.0-rc2-xive+ #47 Not tainted [ 208.224890] ----------------------------- [ 208.224894] ../include/linux/kvm_host.h:633 suspicious rcu_dereference_check() usage! [ 208.224896] other info that might help us debug this: [ 208.224898] rcu_scheduler_active = 2, debug_locks = 1 [ 208.224901] no locks held by qemu-system-ppc/3923. [ 208.224902] stack backtrace: [ 208.224907] CPU: 64 PID: 3923 Comm: qemu-system-ppc Kdump: loaded Not tainted 5.2.0-rc2-xive+ #47 [ 208.224909] Call Trace: [ 208.224918] [c000200cdd98fa30] [c000000000be1934] dump_stack+0xe8/0x164 (unreliable) [ 208.224924] [c000200cdd98fa80] [c0000000001aec80] lockdep_rcu_suspicious+0x110/0x180 [ 208.224935] [c000200cdd98fb00] [c0080000075933a0] gfn_to_memslot+0x1c8/0x200 [kvm] [ 208.224943] [c000200cdd98fb40] [c008000007599600] gfn_to_pfn+0x28/0x60 [kvm] [ 208.224951] [c000200cdd98fb70] [c008000007599658] gfn_to_page+0x20/0x40 [kvm] [ 208.224959] [c000200cdd98fb90] [c0080000075b495c] kvmppc_xive_native_set_attr+0x8b4/0x1480 [kvm] [ 208.224967] [c000200cdd98fca0] [c00800000759261c] kvm_device_ioctl_attr+0x64/0xb0 [kvm] [ 208.224974] [c000200cdd98fcf0] [c008000007592730] kvm_device_ioctl+0xc8/0x110 [kvm] [ 208.224979] [c000200cdd98fd10] [c000000000433a24] do_vfs_ioctl+0xd4/0xcd0 [ 208.224981] [c000200cdd98fdb0] [c000000000434724] ksys_ioctl+0x104/0x120 [ 208.224984] [c000200cdd98fe00] [c000000000434768] sys_ioctl+0x28/0x80 [ 208.224988] [c000200cdd98fe20] [c00000000000b888] system_call+0x5c/0x70 legoater@boss01:~$ Fixes: 13ce3297c576 ("KVM: PPC: Book3S HV: XIVE: Add controls for the EQ configuration") Fixes: e6714bd1671d ("KVM: PPC: Book3S HV: XIVE: Add a control to dirty the XIVE EQ pages") Signed-off-by: Cédric Le Goater Signed-off-by: Paul Mackerras commit ef9740204051d0e00f5402fe96cf3a43ddd2bbbf Author: Cédric Le Goater Date: Tue May 28 14:17:15 2019 +0200 KVM: PPC: Book3S HV: XIVE: Do not clear IRQ data of passthrough interrupts The passthrough interrupts are defined at the host level and their IRQ data should not be cleared unless specifically deconfigured (shutdown) by the host. They differ from the IPI interrupts which are allocated by the XIVE KVM device and reserved to the guest usage only. This fixes a host crash when destroying a VM in which a PCI adapter was passed-through. In this case, the interrupt is cleared and freed by the KVM device and then shutdown by vfio at the host level. [ 1007.360265] BUG: Kernel NULL pointer dereference at 0x00000d00 [ 1007.360285] Faulting instruction address: 0xc00000000009da34 [ 1007.360296] Oops: Kernel access of bad area, sig: 7 [#1] [ 1007.360303] LE PAGE_SIZE=64K MMU=Radix MMU=Hash SMP NR_CPUS=2048 NUMA PowerNV [ 1007.360314] Modules linked in: vhost_net vhost iptable_mangle ipt_MASQUERADE iptable_nat nf_nat xt_conntrack nf_conntrack nf_defrag_ipv4 ipt_REJECT nf_reject_ipv4 tun bridge stp llc kvm_hv kvm xt_tcpudp iptable_filter squashfs fuse binfmt_misc vmx_crypto ib_iser rdma_cm iw_cm ib_cm libiscsi scsi_transport_iscsi nfsd ip_tables x_tables autofs4 btrfs zstd_decompress zstd_compress lzo_compress raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq multipath mlx5_ib ib_uverbs ib_core crc32c_vpmsum mlx5_core [ 1007.360425] CPU: 9 PID: 15576 Comm: CPU 18/KVM Kdump: loaded Not tainted 5.1.0-gad7e7d0ef #4 [ 1007.360454] NIP: c00000000009da34 LR: c00000000009e50c CTR: c00000000009e5d0 [ 1007.360482] REGS: c000007f24ccf330 TRAP: 0300 Not tainted (5.1.0-gad7e7d0ef) [ 1007.360500] MSR: 900000000280b033 CR: 24002484 XER: 00000000 [ 1007.360532] CFAR: c00000000009da10 DAR: 0000000000000d00 DSISR: 00080000 IRQMASK: 1 [ 1007.360532] GPR00: c00000000009e62c c000007f24ccf5c0 c000000001510600 c000007fe7f947c0 [ 1007.360532] GPR04: 0000000000000d00 0000000000000000 0000000000000000 c000005eff02d200 [ 1007.360532] GPR08: 0000000000400000 0000000000000000 0000000000000000 fffffffffffffffd [ 1007.360532] GPR12: c00000000009e5d0 c000007fffff7b00 0000000000000031 000000012c345718 [ 1007.360532] GPR16: 0000000000000000 0000000000000008 0000000000418004 0000000000040100 [ 1007.360532] GPR20: 0000000000000000 0000000008430000 00000000003c0000 0000000000000027 [ 1007.360532] GPR24: 00000000000000ff 0000000000000000 00000000000000ff c000007faa90d98c [ 1007.360532] GPR28: c000007faa90da40 00000000000fe040 ffffffffffffffff c000007fe7f947c0 [ 1007.360689] NIP [c00000000009da34] xive_esb_read+0x34/0x120 [ 1007.360706] LR [c00000000009e50c] xive_do_source_set_mask.part.0+0x2c/0x50 [ 1007.360732] Call Trace: [ 1007.360738] [c000007f24ccf5c0] [c000000000a6383c] snooze_loop+0x15c/0x270 (unreliable) [ 1007.360775] [c000007f24ccf5f0] [c00000000009e62c] xive_irq_shutdown+0x5c/0xe0 [ 1007.360795] [c000007f24ccf630] [c00000000019e4a0] irq_shutdown+0x60/0xe0 [ 1007.360813] [c000007f24ccf660] [c000000000198c44] __free_irq+0x3a4/0x420 [ 1007.360831] [c000007f24ccf700] [c000000000198dc8] free_irq+0x78/0xe0 [ 1007.360849] [c000007f24ccf730] [c00000000096c5a8] vfio_msi_set_vector_signal+0xa8/0x350 [ 1007.360878] [c000007f24ccf7f0] [c00000000096c938] vfio_msi_set_block+0xe8/0x1e0 [ 1007.360899] [c000007f24ccf850] [c00000000096cae0] vfio_msi_disable+0xb0/0x110 [ 1007.360912] [c000007f24ccf8a0] [c00000000096cd04] vfio_pci_set_msi_trigger+0x1c4/0x3d0 [ 1007.360922] [c000007f24ccf910] [c00000000096d910] vfio_pci_set_irqs_ioctl+0xa0/0x170 [ 1007.360941] [c000007f24ccf930] [c00000000096b400] vfio_pci_disable+0x80/0x5e0 [ 1007.360963] [c000007f24ccfa10] [c00000000096b9bc] vfio_pci_release+0x5c/0x90 [ 1007.360991] [c000007f24ccfa40] [c000000000963a9c] vfio_device_fops_release+0x3c/0x70 [ 1007.361012] [c000007f24ccfa70] [c0000000003b5668] __fput+0xc8/0x2b0 [ 1007.361040] [c000007f24ccfac0] [c0000000001409b0] task_work_run+0x140/0x1b0 [ 1007.361059] [c000007f24ccfb20] [c000000000118f8c] do_exit+0x3ac/0xd00 [ 1007.361076] [c000007f24ccfc00] [c0000000001199b0] do_group_exit+0x60/0x100 [ 1007.361094] [c000007f24ccfc40] [c00000000012b514] get_signal+0x1a4/0x8f0 [ 1007.361112] [c000007f24ccfd30] [c000000000021cc8] do_notify_resume+0x1a8/0x430 [ 1007.361141] [c000007f24ccfe20] [c00000000000e444] ret_from_except_lite+0x70/0x74 [ 1007.361159] Instruction dump: [ 1007.361175] 38422c00 e9230000 712a0004 41820010 548a2036 7d442378 78840020 71290020 [ 1007.361194] 4082004c e9230010 7c892214 7c0004ac 0c090000 4c00012c 792a0022 Cc: stable@vger.kernel.org # v4.12+ Fixes: 5af50993850a ("KVM: PPC: Book3S HV: Native usage of the XIVE interrupt controller") Signed-off-by: Cédric Le Goater Signed-off-by: Greg Kurz Signed-off-by: Paul Mackerras commit 7e10b9a6da619bcee243980d9c45112761a86e11 Author: Cédric Le Goater Date: Fri May 24 15:20:30 2019 +0200 KVM: PPC: Book3S HV: XIVE: Introduce a new mutex for the XIVE device The XICS-on-XIVE KVM device needs to allocate XIVE event queues when a priority is used by the OS. This is referred as EQ provisioning and it is done under the hood when : 1. a CPU is hot-plugged in the VM 2. the "set-xive" is called at VM startup 3. sources are restored at VM restore The kvm->lock mutex is used to protect the different XIVE structures being modified but in some contexts, kvm->lock is taken under the vcpu->mutex which is not permitted by the KVM locking rules. Introduce a new mutex 'lock' for the KVM devices for them to synchronize accesses to the XIVE device structures. Reviewed-by: Greg Kurz Signed-off-by: Cédric Le Goater Signed-off-by: Paul Mackerras commit 3035e8cd6c316cb633b45bc9b38052ba2dfd299b Author: Gao, Fred Date: Tue May 28 09:36:15 2019 +0800 drm/i915/gvt: Fix cmd length of VEB_DI_IECP Fix the length value of VEB_DI_IECP. Fixes: be1da7070aea ("drm/i915/gvt: vGPU command scanner") Reviewed-by: Zhenyu Wang Signed-off-by: Gao, Fred Signed-off-by: Zhenyu Wang commit 5e0b3f3b27731f660612249b74b520f1bce6c198 Author: Xiong Zhang Date: Mon May 27 13:45:50 2019 +0800 drm/i915/gvt: refine ggtt range validation The vgpu ggtt range should be in vgpu aperture or hidden range. This patch enforce begin and end address check and guarantee both of them are in the valid range. For size=0, it will regress to vgpu_gmadr_is_valid(), will refine this usage in a later fix. Fixes: 2707e4446688 ("drm/i915/gvt: vGPU graphics memory virtualization") Reviewed-by: Zhenyu Wang Signed-off-by: Xiong Zhang Signed-off-by: Zhenyu Wang commit cb2808da74f07c0763edfa63f8e397f97c7a87a3 Author: Colin Xu Date: Tue May 28 11:27:18 2019 +0800 drm/i915/gvt: Fix vGPU CSFE_CHICKEN1_REG mmio handler Enter failsafe if vgpu tries to change CSFE_CHICKEN1_REG setting which is controlled by host. Reviewed-by: Zhenyu Wang Signed-off-by: Colin Xu Signed-off-by: Zhenyu Wang commit 888c0094b2e2892b5916475d6f53356a7b53732b Author: Colin Xu Date: Tue May 28 11:20:34 2019 +0800 drm/i915/gvt: Fix GFX_MODE handling Enter failsafe if vgpu tries to change GFX_MODE controlled by host. Reviewed-by: Zhenyu Wang Signed-off-by: Colin Xu Signed-off-by: Zhenyu Wang commit 1fd45b09b10f8ea56b14c0cf128c21ad5dd3c496 Author: Colin Xu Date: Wed May 22 14:20:18 2019 +0800 drm/i915/gvt: Update force-to-nonpriv register whitelist Host prints below warning message when guest running some application: "gvt: vgpu(1) Invalid FORCE_NONPRIV write 2754 at 24f0". "gvt: vgpu(1) Invalid FORCE_NONPRIV write 28a0 at 24f0". Registers 0x2754 and 0x28a0 are required by guest so add to whitelist. Signed-off-by: Colin Xu Signed-off-by: Zhenyu Wang commit 387a4c2b55291b37e245c840813bd8a8bd06ed49 Author: Tina Zhang Date: Thu May 23 06:18:36 2019 +0800 drm/i915/gvt: Initialize intel_gvt_gtt_entry in stack Stack struct intel_gvt_gtt_entry value needs to be initialized before being used, as the fields may contain garbage values. W/o this patch, set_ggtt_entry prints: ------------------------------------- 274.046840: set_ggtt_entry: vgpu1:set ggtt entry 0x9bed8000ffffe900 274.046846: set_ggtt_entry: vgpu1:set ggtt entry 0xe55df001 274.046852: set_ggtt_entry: vgpu1:set ggtt entry 0x9bed8000ffffe900 0x9bed8000 is the stack grabage. W/ this patch, set_ggtt_entry prints: ------------------------------------ 274.046840: set_ggtt_entry: vgpu1:set ggtt entry 0xffffe900 274.046846: set_ggtt_entry: vgpu1:set ggtt entry 0xe55df001 274.046852: set_ggtt_entry: vgpu1:set ggtt entry 0xffffe900 v2: - Initialize during declaration. (Zhenyu) Fixes: 7598e8700e9a ("drm/i915/gvt: Missed to cancel dma map for ggtt entries") Cc: stable@vger.kernel.org # v4.20+ Cc: Zhenyu Wang Reviewed-by: Zhenyu Wang Signed-off-by: Tina Zhang Signed-off-by: Zhenyu Wang commit 8cdc23a3d9ec0944000ad43bad588e36afdc38cd Author: Roberto Sassu Date: Wed May 29 15:30:35 2019 +0200 ima: show rules with IMA_INMASK correctly Show the '^' character when a policy rule has flag IMA_INMASK. Fixes: 80eae209d63ac ("IMA: allow reading back the current IMA policy") Signed-off-by: Roberto Sassu Cc: stable@vger.kernel.org Signed-off-by: Mimi Zohar commit 221be106d75c1b511973301542f47d6000d0b63e Author: Roberto Sassu Date: Wed May 29 15:30:33 2019 +0200 evm: check hash algorithm passed to init_desc() This patch prevents memory access beyond the evm_tfm array by checking the validity of the index (hash algorithm) passed to init_desc(). The hash algorithm can be arbitrarily set if the security.ima xattr type is not EVM_XATTR_HMAC. Fixes: 5feeb61183dde ("evm: Allow non-SHA1 digital signatures") Signed-off-by: Roberto Sassu Cc: stable@vger.kernel.org Signed-off-by: Mimi Zohar commit 3b0541791453fbe7f42867e310e0c9eb6295364d Author: Jason Yan Date: Tue May 14 10:42:39 2019 +0800 scsi: libsas: delete sas port if expander discover failed The sas_port(phy->port) allocated in sas_ex_discover_expander() will not be deleted when the expander failed to discover. This will cause resource leak and a further issue of kernel BUG like below: [159785.843156] port-2:17:29: trying to add phy phy-2:17:29 fails: it's already part of another port [159785.852144] ------------[ cut here ]------------ [159785.856833] kernel BUG at drivers/scsi/scsi_transport_sas.c:1086! [159785.863000] Internal error: Oops - BUG: 0 [#1] SMP [159785.867866] CPU: 39 PID: 16993 Comm: kworker/u96:2 Tainted: G W OE 4.19.25-vhulk1901.1.0.h111.aarch64 #1 [159785.878458] Hardware name: Huawei Technologies Co., Ltd. Hi1620EVBCS/Hi1620EVBCS, BIOS Hi1620 CS B070 1P TA 03/21/2019 [159785.889231] Workqueue: 0000:74:02.0_disco_q sas_discover_domain [159785.895224] pstate: 40c00009 (nZcv daif +PAN +UAO) [159785.900094] pc : sas_port_add_phy+0x188/0x1b8 [159785.904524] lr : sas_port_add_phy+0x188/0x1b8 [159785.908952] sp : ffff0001120e3b80 [159785.912341] x29: ffff0001120e3b80 x28: 0000000000000000 [159785.917727] x27: ffff802ade8f5400 x26: ffff0000681b7560 [159785.923111] x25: ffff802adf11a800 x24: ffff0000680e8000 [159785.928496] x23: ffff802ade8f5728 x22: ffff802ade8f5708 [159785.933880] x21: ffff802adea2db40 x20: ffff802ade8f5400 [159785.939264] x19: ffff802adea2d800 x18: 0000000000000010 [159785.944649] x17: 00000000821bf734 x16: ffff00006714faa0 [159785.950033] x15: ffff0000e8ab4ecf x14: 7261702079646165 [159785.955417] x13: 726c612073277469 x12: ffff00006887b830 [159785.960802] x11: ffff00006773eaa0 x10: 7968702079687020 [159785.966186] x9 : 0000000000002453 x8 : 726f702072656874 [159785.971570] x7 : 6f6e6120666f2074 x6 : ffff802bcfb21290 [159785.976955] x5 : ffff802bcfb21290 x4 : 0000000000000000 [159785.982339] x3 : ffff802bcfb298c8 x2 : 337752b234c2ab00 [159785.987723] x1 : 337752b234c2ab00 x0 : 0000000000000000 [159785.993108] Process kworker/u96:2 (pid: 16993, stack limit = 0x0000000072dae094) [159786.000576] Call trace: [159786.003097] sas_port_add_phy+0x188/0x1b8 [159786.007179] sas_ex_get_linkrate.isra.5+0x134/0x140 [159786.012130] sas_ex_discover_expander+0x128/0x408 [159786.016906] sas_ex_discover_dev+0x218/0x4c8 [159786.021249] sas_ex_discover_devices+0x9c/0x1a8 [159786.025852] sas_discover_root_expander+0x134/0x160 [159786.030802] sas_discover_domain+0x1b8/0x1e8 [159786.035148] process_one_work+0x1b4/0x3f8 [159786.039230] worker_thread+0x54/0x470 [159786.042967] kthread+0x134/0x138 [159786.046269] ret_from_fork+0x10/0x18 [159786.049918] Code: 91322300 f0004402 91178042 97fe4c9b (d4210000) [159786.056083] Modules linked in: hns3_enet_ut(OE) hclge(OE) hnae3(OE) hisi_sas_test_hw(OE) hisi_sas_test_main(OE) serdes(OE) [159786.067202] ---[ end trace 03622b9e2d99e196 ]--- [159786.071893] Kernel panic - not syncing: Fatal exception [159786.077190] SMP: stopping secondary CPUs [159786.081192] Kernel Offset: disabled [159786.084753] CPU features: 0x2,a2a00a38 Fixes: 2908d778ab3e ("[SCSI] aic94xx: new driver") Reported-by: Jian Luo Signed-off-by: Jason Yan CC: John Garry Signed-off-by: Martin K. Petersen commit 04cf8b32bc6d3fbc640d5f62b3a14df207d3e1db Author: Jason Yan Date: Tue May 14 10:42:38 2019 +0800 scsi: libsas: only clear phy->in_shutdown after shutdown event done When the event queue is full of phy up and down events and reached the threshold, we will queue a shutdown-event, and set phy->in_shutdown so that we will not queue a shutdown-event again. But before the shutdown-event can be executed, every phy-down event will clear phy->in_shutdown and a new shutdown-event will be queued. The queue will be full of these shutdown-events. Fix this by only clear phy->in_shutdown in sas_phye_shutdown(), that is after the first shutdown-event has been executed. Fixes: f12486e06ae8 ("scsi: libsas: shut down the PHY if events reached the threshold") Signed-off-by: Jason Yan CC: John Garry CC: Johannes Thumshirn CC: Ewan Milne CC: Christoph Hellwig CC: Tomas Henzl CC: Dan Williams CC: Hannes Reinecke Reviewed-by: John Garry Signed-off-by: Martin K. Petersen commit 12e750bc62044de096ab9a95201213fd912b9994 Author: YueHaibing Date: Mon May 27 22:22:09 2019 +0800 scsi: scsi_dh_alua: Fix possible null-ptr-deref If alloc_workqueue fails in alua_init, it should return -ENOMEM, otherwise it will trigger null-ptr-deref while unloading module which calls destroy_workqueue dereference wq->lock like this: BUG: KASAN: null-ptr-deref in __lock_acquire+0x6b4/0x1ee0 Read of size 8 at addr 0000000000000080 by task syz-executor.0/7045 CPU: 0 PID: 7045 Comm: syz-executor.0 Tainted: G C 5.1.0+ #28 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 Call Trace: dump_stack+0xa9/0x10e __kasan_report+0x171/0x18d ? __lock_acquire+0x6b4/0x1ee0 kasan_report+0xe/0x20 __lock_acquire+0x6b4/0x1ee0 lock_acquire+0xb4/0x1b0 __mutex_lock+0xd8/0xb90 drain_workqueue+0x25/0x290 destroy_workqueue+0x1f/0x3f0 __x64_sys_delete_module+0x244/0x330 do_syscall_64+0x72/0x2a0 entry_SYSCALL_64_after_hwframe+0x49/0xbe Reported-by: Hulk Robot Fixes: 03197b61c5ec ("scsi_dh_alua: Use workqueue for RTPG") Signed-off-by: YueHaibing Reviewed-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit 1d94f06e7f5df4064ef336b7b710f50143b64a53 Author: Lianbo Jiang Date: Mon May 27 08:59:34 2019 +0800 scsi: smartpqi: properly set both the DMA mask and the coherent DMA mask When SME is enabled, the smartpqi driver won't work on the HP DL385 G10 machine, which causes the failure of kernel boot because it fails to allocate pqi error buffer. Please refer to the kernel log: .... [ 9.431749] usbcore: registered new interface driver uas [ 9.441524] Microsemi PQI Driver (v1.1.4-130) [ 9.442956] i40e 0000:04:00.0: fw 6.70.48768 api 1.7 nvm 10.2.5 [ 9.447237] smartpqi 0000:23:00.0: Microsemi Smart Family Controller found Starting dracut initqueue hook... [ OK ] Started Show Plymouth Boot Scre[ 9.471654] Broadcom NetXtreme-C/E driver bnxt_en v1.9.1 en. [ OK ] Started Forward Password Requests to Plymouth Directory Watch. [[0;[ 9.487108] smartpqi 0000:23:00.0: failed to allocate PQI error buffer .... [ 139.050544] dracut-initqueue[949]: Warning: dracut-initqueue timeout - starting timeout scripts [ 139.589779] dracut-initqueue[949]: Warning: dracut-initqueue timeout - starting timeout scripts Basically, the fact that the coherent DMA mask value wasn't set caused the driver to fall back to SWIOTLB when SME is active. For correct operation, lets call the dma_set_mask_and_coherent() to properly set the mask for both streaming and coherent, in order to inform the kernel about the devices DMA addressing capabilities. Signed-off-by: Lianbo Jiang Acked-by: Don Brace Tested-by: Don Brace Signed-off-by: Martin K. Petersen commit ef4021fe5fd77ced0323cede27979d80a56211ca Author: Steffen Maier Date: Thu May 23 15:23:46 2019 +0200 scsi: zfcp: fix to prevent port_remove with pure auto scan LUNs (only sdevs) When the user tries to remove a zfcp port via sysfs, we only rejected it if there are zfcp unit children under the port. With purely automatically scanned LUNs there are no zfcp units but only SCSI devices. In such cases, the port_remove erroneously continued. We close the port and this implicitly closes all LUNs under the port. The SCSI devices survive with their private zfcp_scsi_dev still holding a reference to the "removed" zfcp_port (still allocated but invisible in sysfs) [zfcp_get_port_by_wwpn in zfcp_scsi_slave_alloc]. This is not a problem as long as the fc_rport stays blocked. Once (auto) port scan brings back the removed port, we unblock its fc_rport again by design. However, there is no mechanism that would recover (open) the LUNs under the port (no "ersfs_3" without zfcp_unit [zfcp_erp_strategy_followup_success]). Any pending or new I/O to such LUN leads to repeated: Done: NEEDS_RETRY Result: hostbyte=DID_IMM_RETRY driverbyte=DRIVER_OK See also v4.10 commit 6f2ce1c6af37 ("scsi: zfcp: fix rport unblock race with LUN recovery"). Even a manual LUN recovery (echo 0 > /sys/bus/scsi/devices/H:C:T:L/zfcp_failed) does not help, as the LUN links to the old "removed" port which remains to lack ZFCP_STATUS_COMMON_RUNNING [zfcp_erp_required_act]. The only workaround is to first ensure that the fc_rport is blocked (e.g. port_remove again in case it was re-discovered by (auto) port scan), then delete the SCSI devices, and finally re-discover by (auto) port scan. The port scan includes an fc_rport unblock, which in turn triggers a new scan on the scsi target to freshly get new pure auto scan LUNs. Fix this by rejecting port_remove also if there are SCSI devices (even without any zfcp_unit) under this port. Re-use mechanics from v3.7 commit d99b601b6338 ("[SCSI] zfcp: restore refcount check on port_remove"). However, we have to give up zfcp_sysfs_port_units_mutex earlier in unit_add to prevent a deadlock with scsi_host scan taking shost->scan_mutex first and then zfcp_sysfs_port_units_mutex now in our zfcp_scsi_slave_alloc(). Signed-off-by: Steffen Maier Fixes: b62a8d9b45b9 ("[SCSI] zfcp: Use SCSI device data zfcp scsi dev instead of zfcp unit") Fixes: f8210e34887e ("[SCSI] zfcp: Allow midlayer to scan for LUNs when running in NPIV mode") Cc: #2.6.37+ Reviewed-by: Benjamin Block Signed-off-by: Martin K. Petersen commit d27e5e07f9c49bf2a6a4ef254ce531c1b4fb5a38 Author: Steffen Maier Date: Thu May 23 15:23:45 2019 +0200 scsi: zfcp: fix missing zfcp_port reference put on -EBUSY from port_remove With this early return due to zfcp_unit child(ren), we don't use the zfcp_port reference from the earlier zfcp_get_port_by_wwpn() anymore and need to put it. Signed-off-by: Steffen Maier Fixes: d99b601b6338 ("[SCSI] zfcp: restore refcount check on port_remove") Cc: #3.7+ Reviewed-by: Jens Remus Reviewed-by: Benjamin Block Signed-off-by: Martin K. Petersen commit cc555759117e8349088e0c5d19f2f2a500bafdbd Author: Varun Prakash Date: Wed May 22 20:10:55 2019 +0530 scsi: libcxgbi: add a check for NULL pointer in cxgbi_check_route() ip_dev_find() can return NULL so add a check for NULL pointer. Signed-off-by: Varun Prakash Signed-off-by: Martin K. Petersen commit 93c52e7800ba6d1b618c89895ab1eff7e52ad154 Merge: 6a0193393290 02122753f1d0 Author: Dave Airlie Date: Thu May 30 10:58:17 2019 +1000 Merge branch 'drm-fixes-5.2' of git://people.freedesktop.org/~agd5f/linux into drm-fixes - Respin the Raven DMCU patch with the ifdef fixed - Fix for a clean display when loading the driver on Raven Signed-off-by: Dave Airlie From: Alex Deucher Link: https://patchwork.freedesktop.org/patch/msgid/20190529170347.3272-1-alexander.deucher@amd.com commit 6a01933932900fa1681c3f22645c6397f058cfa7 Merge: b077dc23b548 95b74ce88943 Author: Dave Airlie Date: Thu May 30 10:51:07 2019 +1000 Merge tag 'drm-misc-fixes-2019-05-29' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes qxl: Drop WARN when u/s tries to mmap a prime buffer (Gerd) Cc: Gerd Hoffmann Signed-off-by: Dave Airlie From: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190529211833.GA195708@art_vandelay commit b077dc23b548cbcac64040cae1e2d2658d4a5bfd Merge: cd6c84d8f0cd 1396500d673b Author: Dave Airlie Date: Thu May 30 10:48:09 2019 +1000 Merge branch 'etnaviv/fixes' of https://git.pengutronix.de/git/lst/linux into drm-fixes etnaviv core dump locking fix Signed-off-by: Dave Airlie From: Lucas Stach Link: https://patchwork.freedesktop.org/patch/msgid/1558966666.4039.4.camel@pengutronix.de commit bec7550cca106c3ccc061e3e625516af63054fe4 Merge: 2b28601d62b0 551bd3368a7b Author: Linus Torvalds Date: Wed May 29 14:36:41 2019 -0700 Merge tag 'docs-5.2-fixes2' of git://git.lwn.net/linux Pull documentation fixes from Jonathan Corbet: "The Sphinx 2.0 release contained a few incompatible API changes that broke our extensions and, thus, the documentation build in general. Who knew that those deprecation warnings it was outputting actually meant we should change something? This set of fixes makes the build work again with Sphinx 2.0 and eliminates the warnings for 1.8. As part of that, we also need a few fixes to the docs for places where the new Sphinx is more strict. It is a bit late in the cycle for this kind of change, but it does fix problems that people are experiencing now. There has been some talk of raising the minimum version of Sphinx we support. I don't want to do that abruptly, though, so these changes add some glue to continue to support versions back to 1.3. We will be adding some infrastructure soon to nudge users of old versions forward, with the idea of maybe increasing our minimum version (and removing this glue) sometime in the future" * tag 'docs-5.2-fixes2' of git://git.lwn.net/linux: drm/i915: Maintain consistent documentation subsection ordering scripts/sphinx-pre-install: make it handle Sphinx versions docs: Fix conf.py for Sphinx 2.0 docs: fix multiple doc build warnings in enumeration.rst lib/list_sort: fix kerneldoc build error docs: fix numaperf.rst and add it to the doc tree doc: Cope with the deprecation of AutoReporter doc: Cope with Sphinx logging deprecations commit 58e8b37069ff2609c4c972c2f127a73a0855c6aa Merge: 3d3ced2ec5d7 2b892649254f Author: David S. Miller Date: Wed May 29 14:28:48 2019 -0700 Merge branch 'net-phy-dp83867-add-some-fixes' Max Uvarov says: ==================== net: phy: dp83867: add some fixes v3: use phy_modify_mmd() v2: fix minor comments by Heiner Kallweit and Florian Fainelli ==================== Signed-off-by: David S. Miller commit 2b892649254fec01678c64f16427622b41fa27f4 Author: Max Uvarov Date: Tue May 28 13:00:52 2019 +0300 net: phy: dp83867: Set up RGMII TX delay PHY_INTERFACE_MODE_RGMII_RXID is less then TXID so code to set tx delay is never called. Fixes: 2a10154abcb75 ("net: phy: dp83867: Add TI dp83867 phy") Signed-off-by: Max Uvarov Cc: Florian Fainelli Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit c8081fc397fa04675e410900693a57085ef4b760 Author: Max Uvarov Date: Tue May 28 13:00:51 2019 +0300 net: phy: dp83867: do not call config_init twice Phy state machine calls _config_init just after reset. Signed-off-by: Max Uvarov Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 1a97a477e666cbdededab93bd3754e508f0c09d7 Author: Max Uvarov Date: Tue May 28 13:00:50 2019 +0300 net: phy: dp83867: increase SGMII autoneg timer duration After reset SGMII Autoneg timer is set to 2us (bits 6 and 5 are 01). That is not enough to finalize autonegatiation on some devices. Increase this timer duration to maximum supported 16ms. Signed-off-by: Max Uvarov Cc: Heiner Kallweit Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 333061b924539c0de081339643f45514f5f1c1e6 Author: Max Uvarov Date: Tue May 28 13:00:49 2019 +0300 net: phy: dp83867: fix speed 10 in sgmii mode For supporting 10Mps speed in SGMII mode DP83867_10M_SGMII_RATE_ADAPT bit of DP83867_10M_SGMII_CFG register has to be cleared by software. That does not affect speeds 100 and 1000 so can be done on init. Signed-off-by: Max Uvarov Cc: Heiner Kallweit Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 3d3ced2ec5d71b99d72ae6910fbdf890bc2eccf0 Author: Russell King Date: Tue May 28 10:34:42 2019 +0100 net: phy: marvell10g: report if the PHY fails to boot firmware Some boards do not have the PHY firmware programmed in the 3310's flash, which leads to the PHY not working as expected. Warn the user when the PHY fails to boot the firmware and refuse to initialise. Fixes: 20b2af32ff3f ("net: phy: add Marvell Alaska X 88X3310 10Gigabit PHY support") Signed-off-by: Russell King Tested-by: Maxime Chevallier Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit c678726305b9425454be7c8a7624290b602602fc Author: Russell King Date: Tue May 28 10:27:21 2019 +0100 net: phylink: ensure consistent phy interface mode Ensure that we supply the same phy interface mode to mac_link_down() as we did for the corresponding mac_link_up() call. This ensures that MAC drivers that use the phy interface mode in these methods can depend on mac_link_down() always corresponding to a mac_link_up() call for the same interface mode. Signed-off-by: Russell King Signed-off-by: David S. Miller commit 18fa84a2db0e15b02baa5d94bdb5bd509175d2f6 Author: Tejun Heo Date: Wed May 29 13:46:25 2019 -0700 cgroup: Use css_tryget() instead of css_tryget_online() in task_get_css() A PF_EXITING task can stay associated with an offline css. If such task calls task_get_css(), it can get stuck indefinitely. This can be triggered by BSD process accounting which writes to a file with PF_EXITING set when racing against memcg disable as in the backtrace at the end. After this change, task_get_css() may return a css which was already offline when the function was called. None of the existing users are affected by this change. INFO: rcu_sched self-detected stall on CPU INFO: rcu_sched detected stalls on CPUs/tasks: ... NMI backtrace for cpu 0 ... Call Trace: dump_stack+0x46/0x68 nmi_cpu_backtrace.cold.2+0x13/0x57 nmi_trigger_cpumask_backtrace+0xba/0xca rcu_dump_cpu_stacks+0x9e/0xce rcu_check_callbacks.cold.74+0x2af/0x433 update_process_times+0x28/0x60 tick_sched_timer+0x34/0x70 __hrtimer_run_queues+0xee/0x250 hrtimer_interrupt+0xf4/0x210 smp_apic_timer_interrupt+0x56/0x110 apic_timer_interrupt+0xf/0x20 RIP: 0010:balance_dirty_pages_ratelimited+0x28f/0x3d0 ... btrfs_file_write_iter+0x31b/0x563 __vfs_write+0xfa/0x140 __kernel_write+0x4f/0x100 do_acct_process+0x495/0x580 acct_process+0xb9/0xdb do_exit+0x748/0xa00 do_group_exit+0x3a/0xa0 get_signal+0x254/0x560 do_signal+0x23/0x5c0 exit_to_usermode_loop+0x5d/0xa0 prepare_exit_to_usermode+0x53/0x80 retint_user+0x8/0x8 Signed-off-by: Tejun Heo Cc: stable@vger.kernel.org # v4.2+ Fixes: ec438699a9ae ("cgroup, block: implement task_get_css() and use it in bio_associate_current()") commit 41de54c64811bf087c8464fdeb43c6ad8be2686b Author: Jes Sorensen Date: Fri Apr 19 16:35:44 2019 -0400 blk-mq: Fix memory leak in error handling If blk_mq_init_allocated_queue() fails, make sure to free the poll stat callback struct allocated. Signed-off-by: Jes Sorensen Signed-off-by: Jens Axboe commit 3ea3091f1bd8586125848c62be295910e9802af0 Author: Shuah Khan Date: Wed May 29 13:46:15 2019 -0600 usbip: usbip_host: fix stub_dev lock context imbalance regression Fix the following sparse context imbalance regression introduced in a patch that fixed sleeping function called from invalid context bug. kbuild test robot reported on: tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-linus Regressions in current branch: drivers/usb/usbip/stub_dev.c:399:9: sparse: sparse: context imbalance in 'stub_probe' - different lock contexts for basic block drivers/usb/usbip/stub_dev.c:418:13: sparse: sparse: context imbalance in 'stub_disconnect' - different lock contexts for basic block drivers/usb/usbip/stub_dev.c:464:1-10: second lock on line 476 Error ids grouped by kconfigs: recent_errors ├── i386-allmodconfig │ └── drivers-usb-usbip-stub_dev.c:second-lock-on-line ├── x86_64-allmodconfig │ ├── drivers-usb-usbip-stub_dev.c:sparse:sparse:context-imbalance-in-stub_disconnect-different-lock-contexts-for-basic-block │ └── drivers-usb-usbip-stub_dev.c:sparse:sparse:context-imbalance-in-stub_probe-different-lock-contexts-for-basic-block └── x86_64-allyesconfig └── drivers-usb-usbip-stub_dev.c:second-lock-on-line This is a real problem in an error leg where spin_lock() is called on an already held lock. Fix the imbalance in stub_probe() and stub_disconnect(). Signed-off-by: Shuah Khan Fixes: 0c9e8b3cad65 ("usbip: usbip_host: fix BUG: sleeping function called from invalid context") Cc: stable Signed-off-by: Greg Kroah-Hartman commit 315ca92dd863fecbffc0bb52ae0ac11e0398726a Author: Yoshihiro Shimoda Date: Tue May 28 13:10:46 2019 +0900 net: sh_eth: fix mdio access in sh_eth_close() for R-Car Gen2 and RZ/A1 SoCs The sh_eth_close() resets the MAC and then calls phy_stop() so that mdio read access result is incorrect without any error according to kernel trace like below: ifconfig-216 [003] .n.. 109.133124: mdio_access: ee700000.ethernet-ffffffff read phy:0x01 reg:0x00 val:0xffff According to the hardware manual, the RMII mode should be set to 1 before operation the Ethernet MAC. However, the previous code was not set to 1 after the driver issued the soft_reset in sh_eth_dev_exit() so that the mdio read access result seemed incorrect. To fix the issue, this patch adds a condition and set the RMII mode register in sh_eth_dev_exit() for R-Car Gen2 and RZ/A1 SoCs. Note that when I have tried to move the sh_eth_dev_exit() calling after phy_stop() on sh_eth_close(), but it gets worse (kernel panic happened and it seems that a register is accessed while the clock is off). Signed-off-by: Yoshihiro Shimoda Signed-off-by: David S. Miller commit f532beeeff0c0a3586cc15538bc52d249eb19e7c Author: YueHaibing Date: Sat May 25 20:20:24 2019 +0800 MIPS: uprobes: remove set but not used variable 'epc' Fixes gcc '-Wunused-but-set-variable' warning: arch/mips/kernel/uprobes.c: In function 'arch_uprobe_pre_xol': arch/mips/kernel/uprobes.c:115:17: warning: variable 'epc' set but not used [-Wunused-but-set-variable] It's never used since introduction in commit 40e084a506eb ("MIPS: Add uprobes support.") Signed-off-by: YueHaibing Signed-off-by: Paul Burton Cc: Cc: Cc: Cc: commit 2b28601d62b01429d12e999fe3712aaf57ca2e26 Merge: 9e82b4a91d46 eff82a263b5c Author: Linus Torvalds Date: Wed May 29 13:20:02 2019 -0700 Merge tag 'linux-kselftest-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest Pull Kselftest fixes from Shuah Khan: - Alexandre Belloni's fixes to rtc regressions introduced in kselftest Makefile test run output refactoring work from Kees Cook. - ftrace test checkbashisms fixes from Masami Hiramatsu * tag 'linux-kselftest-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: selftests: rtc: rtctest: specify timeouts selftests/harness: Allow test to configure timeout selftests/ftrace: Add checkbashisms meta-testcase selftests/ftrace: Make a script checkbashisms clean commit 1c2c7029c008922d4d48902cc386250502e73d51 Author: Harald Freudenberger Date: Mon May 27 15:24:20 2019 +0200 s390/crypto: fix possible sleep during spinlock aquired This patch fixes a complain about possible sleep during spinlock aquired "BUG: sleeping function called from invalid context at include/crypto/algapi.h:426" for the ctr(aes) and ctr(des) s390 specific ciphers. Instead of using a spinlock this patch introduces a mutex which is save to be held in sleeping context. Please note a deadlock is not possible as mutex_trylock() is used. Signed-off-by: Harald Freudenberger Reported-by: Julian Wiedmann Cc: stable@vger.kernel.org Signed-off-by: Heiko Carstens commit e4f2d1af7163becb181419af9dece9206001e0a6 Author: Paul Burton Date: Tue May 28 17:21:26 2019 +0000 MIPS: pistachio: Build uImage.gz by default The pistachio platform uses the U-Boot bootloader & generally boots a kernel in the uImage format. As such it's useful to build one when building the kernel, but to do so currently requires the user to manually specify a uImage target on the make command line. Make uImage.gz the pistachio platform's default build target, so that the default is to build a kernel image that we can actually boot on a board such as the MIPS Creator Ci40. Marked for stable backport as far as v4.1 where pistachio support was introduced. This is primarily useful for CI systems such as kernelci.org which will benefit from us building a suitable image which can then be booted as part of automated testing, extending our test coverage to the affected stable branches. Signed-off-by: Paul Burton Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Kevin Hilman Tested-by: Kevin Hilman URL: https://groups.io/g/kernelci/message/388 Cc: stable@vger.kernel.org # v4.1+ Cc: linux-mips@vger.kernel.org commit 31875a5432248e7b0fff2f4f4e8cd96e5d82ceb0 Author: Paul Burton Date: Tue May 28 17:05:04 2019 +0000 MIPS: Make virt_addr_valid() return bool virt_addr_valid() really returns a boolean value, but currently uses an integer to represent it. Switch to the bool type to make it clearer that we really are returning a true or false value. Signed-off-by: Paul Burton Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé Cc: linux-mips@vger.kernel.org commit 074a1e1167afd82c26f6d03a9a8b997d564bb241 Author: Paul Burton Date: Tue May 28 17:05:03 2019 +0000 MIPS: Bounds check virt_addr_valid The virt_addr_valid() function is meant to return true iff virt_to_page() will return a valid struct page reference. This is true iff the address provided is found within the unmapped address range between PAGE_OFFSET & MAP_BASE, but we don't currently check for that condition. Instead we simply mask the address to obtain what will be a physical address if the virtual address is indeed in the desired range, shift it to form a PFN & then call pfn_valid(). This can incorrectly return true if called with a virtual address which, after masking, happens to form a physical address corresponding to a valid PFN. For example we may vmalloc an address in the kernel mapped region starting a MAP_BASE & obtain the virtual address: addr = 0xc000000000002000 When masked by virt_to_phys(), which uses __pa() & in turn CPHYSADDR(), we obtain the following (bogus) physical address: addr = 0x2000 In a common system with PHYS_OFFSET=0 this will correspond to a valid struct page which should really be accessed by virtual address PAGE_OFFSET+0x2000, causing virt_addr_valid() to incorrectly return 1 indicating that the original address corresponds to a struct page. This is equivalent to the ARM64 change made in commit ca219452c6b8 ("arm64: Correctly bounds check virt_addr_valid"). This fixes fallout when hardened usercopy is enabled caused by the related commit 517e1fbeb65f ("mm/usercopy: Drop extra is_vmalloc_or_module() check") which removed a check for the vmalloc range that was present from the introduction of the hardened usercopy feature. Signed-off-by: Paul Burton References: ca219452c6b8 ("arm64: Correctly bounds check virt_addr_valid") References: 517e1fbeb65f ("mm/usercopy: Drop extra is_vmalloc_or_module() check") Reported-by: Julien Cristau Reviewed-by: Philippe Mathieu-Daudé Tested-by: YunQiang Su URL: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=929366 Cc: stable@vger.kernel.org # v4.12+ Cc: linux-mips@vger.kernel.org Cc: Yunqiang Su commit 31fad7d41e73731f05b8053d17078638cf850fa6 Author: Roberto Bergantinos Corpas Date: Tue May 28 09:38:14 2019 +0200 CIFS: cifs_read_allocate_pages: don't iterate through whole page array on ENOMEM In cifs_read_allocate_pages, in case of ENOMEM, we go through whole rdata->pages array but we have failed the allocation before nr_pages, therefore we may end up calling put_page with NULL pointer, causing oops Signed-off-by: Roberto Bergantinos Corpas Acked-by: Pavel Shilovsky Signed-off-by: Steve French CC: Stable commit 9e82b4a91d46a690de3cbbe6960667caa508b27a Merge: 9fb67d643f6f dfb4a6f2191a Author: Linus Torvalds Date: Wed May 29 11:26:40 2019 -0700 Merge tag 'trace-v5.2-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull tracing fix from Steven Rostedt: "This fixes a memory leak from the error path in the event filter logic" * tag 'trace-v5.2-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: tracing: Avoid memory leak in predicate_parse() commit 4f240dfec6bcc852b124ea7c419fb590949fbd4c Author: Gal Pressman Date: Tue May 28 15:46:13 2019 +0300 RDMA/efa: Remove MAYEXEC flag check from mmap flow MAYEXEC test was mistakenly added, remove it. Checking MAYEXEC in the driver prevents it from working with userspace that uses things like EXEC STACK. (ie some Fortran and other runtimes) Fixes: 40909f664d27 ("RDMA/efa: Add EFA verbs implementation") Reported-by: Jason Gunthorpe Reviewed-by: Firas JahJah Reviewed-by: Yossi Leybovich Signed-off-by: Gal Pressman Signed-off-by: Jason Gunthorpe commit 37eb86c4507abcb14fc346863e83aa8751aa4675 Author: Michal Kubecek Date: Mon May 20 13:19:02 2019 +0200 mlx5: avoid 64-bit division Commit 25c13324d03d ("IB/mlx5: Add steering SW ICM device memory type") breaks i386 build by introducing three 64-bit divisions. As the divisor is MLX5_SW_ICM_BLOCK_SIZE() which is always a power of 2, we can replace the division with bit operations. Fixes: 25c13324d03d ("IB/mlx5: Add steering SW ICM device memory type") Signed-off-by: Michal Kubecek Reviewed-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 97736f36dbebf2cda2799db3b54717ba5b388255 Author: Kamenee Arumugam Date: Fri May 24 11:45:04 2019 -0400 IB/hfi1: Validate page aligned for a given virtual address User applications can register memory regions for TID buffers that are not aligned on page boundaries. Hfi1 is expected to pin those pages in memory and cache the pages with mmu_rb. The rb tree will fail to insert pages that are not aligned correctly. Validate whether a given virtual address is page aligned before pinning. Fixes: 7e7a436ecb6e ("staging/hfi1: Add TID entry program function body") Reviewed-by: Michael J. Ruhl Signed-off-by: Kamenee Arumugam Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit 35164f5259a47ea756fa1deb3e463ac2a4f10dc9 Author: Mike Marciniszyn Date: Fri May 24 11:44:51 2019 -0400 IB/{qib, hfi1, rdmavt}: Correct ibv_devinfo max_mr value The command 'ibv_devinfo -v' reports 0 for max_mr. Fix by assigning the query values after the mr lkey_table has been built rather than early on in the driver. Fixes: 7b1e2099adc8 ("IB/rdmavt: Move memory registration into rdmavt") Reviewed-by: Josh Collier Signed-off-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit 6d517353c70bb0818b691ca003afdcb5ee5ea44e Author: Mike Marciniszyn Date: Fri May 24 11:44:45 2019 -0400 IB/hfi1: Insure freeze_work work_struct is canceled on shutdown By code inspection, the freeze_work is never canceled. Fix by adding a cancel_work_sync in the shutdown path to insure it is no longer running. Fixes: 7724105686e7 ("IB/hfi1: add driver files") Reviewed-by: Michael J. Ruhl Reviewed-by: Dennis Dalessandro Signed-off-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit 2abae62a26a265129b364d8c1ef3be55e2c01309 Author: Mike Marciniszyn Date: Fri May 24 11:44:38 2019 -0400 IB/rdmavt: Fix alloc_qpn() WARN_ON() The qpn allocation logic has a WARN_ON() that intends to detect the use of an index that will introduce bits in the lower order bits of the QOS bits in the QPN. Unfortunately, it has the following bugs: - it misfires when wrapping QPN allocation for non-QOS - it doesn't correctly detect low order QOS bits (despite the comment) The WARN_ON() should not be applied to non-QOS (qos_shift == 1). Additionally, it SHOULD test the qpn bits per the table below: 2 data VLs: [qp7, qp6, qp5, qp4, qp3, qp2, qp1] ^ [ 0, 0, 0, 0, 0, 0, sc0], qp bit 1 always 0* 3-4 data VLs: [qp7, qp6, qp5, qp4, qp3, qp2, qp1] ^ [ 0, 0, 0, 0, 0, sc1, sc0], qp bits [21] always 0 5-8 data VLs: [qp7, qp6, qp5, qp4, qp3, qp2, qp1] ^ [ 0, 0, 0, 0, sc2, sc1, sc0] qp bits [321] always 0 Fix by qualifying the warning for qos_shift > 1 and producing the correct mask to insure the above bits are zero without generating a superfluous warning. Fixes: 501edc42446e ("IB/rdmavt: Correct warning during QPN allocation") Reviewed-by: Kaike Wan Signed-off-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit 1f2675f6655838aaf910f911fd0abc821e3ff3df Author: Georgii Staroselskii Date: Tue May 28 13:47:39 2019 +0300 ASoC: sun4i-codec: fix first delay on Speaker Allwinner DAC seems to have a delay in the Speaker audio routing. When playing a sound for the first time, the sound gets chopped. On a second play the sound is played correctly. After some time (~5s) the issue gets back. This commit seems to be fixing the same issue as bf14da7 but for another codepath. This is the DTS that was used to debug the problem. &codec { allwinner,pa-gpios = <&r_pio 0 11 GPIO_ACTIVE_HIGH>; /* PL11 */ allwinner,audio-routing = "Speaker", "LINEOUT"; status = "okay"; } Signed-off-by: Georgii Staroselskii Reviewed-by: Chen-Yu Tsai Signed-off-by: Mark Brown commit 02122753f1d0ac39d8c89f20f541a519a3002e92 Author: Flora Cui Date: Tue May 28 15:52:42 2019 +0800 drm/amdgpu: reserve stollen vram for raven series to avoid screen corruption during modprobe. Signed-off-by: Flora Cui Reviewed-by: Huang Rui Signed-off-by: Alex Deucher commit a200c721956ca026f44416acccc8efcca41109c5 Author: Stanimir Varbanov Date: Mon May 27 11:34:17 2019 -0400 media: venus: hfi_parser: fix a regression in parser This fixes the following data abort: Unable to handle kernel paging request at virtual address 0000078000000040 Mem abort info: ESR = 0x96000004 Exception class = DABT (current EL), IL = 32 bits SET = 0, FnV = 0 EA = 0, S1PTW = 0 Data abort info: ISV = 0, ISS = 0x00000004 CM = 0, WnR = 0 user pgtable: 4k pages, 48-bit VAs, pgdp = (____ptrval____) [0000078000000040] pgd=0000000000000000 Internal error: Oops: 96000004 [#1] PREEMPT SMP Process irq/28-venus (pid: 292, stack limit = 0x(____ptrval____)) CPU: 0 PID: 292 Comm: irq/28-venus Not tainted 5.2.0-rc1+ #60 Hardware name: Qualcomm Technologies, Inc. APQ 8016 SBC (DT) pstate: 60000005 (nZCv daif -PAN -UAO) pc : __memcpy+0x100/0x180 lr : parse_caps+0x94/0xc0 [venus_core] sp : ffff0000114e3990 x29: ffff0000114e3990 x28: ffff80003a7d0148 x27: 00000000000df018 x26: ffff000008bd4618 x25: 0000000000020003 x24: 0000078000000040 x23: 0000000000000002 x22: 0000000000000002 x21: ffff80003b9b8080 x20: 0000000000000008 x19: ffff000010f59000 x18: 0000000000000000 x17: 0000000000000000 x16: ffff80003c0f9b80 x15: 0000000000000000 x14: 0100000100000002 x13: 000000010020100b x12: 000000010000100a x11: 0000100000000040 x10: 0000100000000004 x9 : 0000000000000000 x8 : ffff0000114e3bd8 x7 : 0000000000000000 x6 : ffff0000114e39d8 x5 : 0000000000000040 x4 : 0000000000000000 x3 : 0000000000000010 x2 : 0000000000000000 x1 : 0000078000000040 x0 : ffff0000114e39d8 Call trace: __memcpy+0x100/0x180 hfi_parser+0x23c/0x3b8 [venus_core] hfi_session_init_done+0x40/0x60 [venus_core] hfi_process_msg_packet+0xd4/0x1d8 [venus_core] venus_isr_thread+0x1e0/0x230 [venus_core] hfi_isr_thread+0x18/0x20 [venus_core] irq_thread_fn+0x28/0x78 irq_thread+0x124/0x1c0 kthread+0x124/0x128 ret_from_fork+0x10/0x18 Code: d503201f d503201f d503201f d503201f (a8c12027) ---[ end trace fd253ebaeea05ffc ]--- genirq: exiting task "irq/28-venus" (292) is an active IRQ thread (irq 28) by modifying structure members to flexible array members. Fixes: ded716267196862809e5926072adc962a611a1e3 media: hfi_parser: don't trick gcc with a wrong expected size Signed-off-by: Stanimir Varbanov Signed-off-by: Mauro Carvalho Chehab commit 5fac1718e706d94a7078addee9075cfaea00ca8c Author: Alakesh Haloi Date: Tue May 28 19:02:18 2019 +0000 selftests: bpf: fix compiler warning in flow_dissector test Add missing header file following compiler warning: prog_tests/flow_dissector.c: In function ‘tx_tap’: prog_tests/flow_dissector.c:175:9: warning: implicit declaration of function ‘writev’; did you mean ‘write’? [-Wimplicit-function-declaration] return writev(fd, iov, ARRAY_SIZE(iov)); ^~~~~~ write Fixes: 0905beec9f52 ("selftests/bpf: run flow dissector tests in skb-less mode") Signed-off-by: Alakesh Haloi Acked-by: Song Liu Signed-off-by: Daniel Borkmann commit 1e29ab3186e33c77dbb2d7566172a205b59fa390 Author: Sami Tolvanen Date: Fri May 24 15:11:18 2019 -0700 arm64: use the correct function type for __arm64_sys_ni_syscall Calling sys_ni_syscall through a syscall_fn_t pointer trips indirect call Control-Flow Integrity checking due to a function type mismatch. Use SYSCALL_DEFINE0 for __arm64_sys_ni_syscall instead and remove the now unnecessary casts. Signed-off-by: Sami Tolvanen Signed-off-by: Will Deacon commit 0e358bd7b7ebd27e491dabed938eae254c17fe3b Author: Sami Tolvanen Date: Fri May 24 15:11:17 2019 -0700 arm64: use the correct function type in SYSCALL_DEFINE0 Although a syscall defined using SYSCALL_DEFINE0 doesn't accept parameters, use the correct function type to avoid indirect call type mismatches with Control-Flow Integrity checking. Signed-off-by: Sami Tolvanen Signed-off-by: Will Deacon commit 8ef8f368ce72b5e17f7c1f1ef15c38dcfd0fef64 Author: Sami Tolvanen Date: Fri May 24 15:11:16 2019 -0700 arm64: fix syscall_fn_t type Syscall wrappers in use const struct pt_regs * as the argument type. Use const in syscall_fn_t as well to fix indirect call type mismatches with Control-Flow Integrity checking. Signed-off-by: Sami Tolvanen Reviewed-by: Mark Rutland Signed-off-by: Will Deacon commit fe2008640ae36e3920cf41507a84fb5d3227435a Author: Ming Lei Date: Wed May 15 11:03:09 2019 +0800 block: don't protect generic_make_request_checks with blk_queue_enter Now a063057d7c73 ("block: Fix a race between request queue removal and the block cgroup controller") has been reverted, and blkcg_exit_queue() won't be called in blk_cleanup_queue() any more. So don't need to protect generic_make_request_checks() with blk_queue_enter(), then the total mess can be cleaned. 37f9579f4c31 ("blk-mq: Avoid that submitting a bio concurrently with device removal triggers a crash") is reverted. Cc: Bart Van Assche Reviewed-by: Christoph Hellwig Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit 47cdee29ef9d94e485eb08f962c74943023a5271 Author: Ming Lei Date: Wed May 15 11:03:08 2019 +0800 block: move blk_exit_queue into __blk_release_queue Commit 498f6650aec8 ("block: Fix a race between the cgroup code and request queue initialization") moves what blk_exit_queue does into blk_cleanup_queue() for fixing issue caused by changing back queue lock. However, after legacy request IO path is killed, driver queue lock won't be used at all, and there isn't story for changing back queue lock. Then the issue addressed by Commit 498f6650aec8 doesn't exist any more. So move move blk_exit_queue into __blk_release_queue. This patch basically reverts the following two commits: 498f6650aec8 block: Fix a race between the cgroup code and request queue initialization 24ecc3585348 block: Ensure that a request queue is dissociated from the cgroup controller Cc: Bart Van Assche Reviewed-by: Christoph Hellwig Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit 10b3c44131982e0aa889016890ada36a514a58ca Merge: bd95e678e0f6 c25d60c12534 Author: Daniel Borkmann Date: Wed May 29 13:31:06 2019 +0200 Merge branch 'bpf-subreg-tests' Jiong Wang says: ==================== JIT back-ends need to guarantee high 32-bit cleared whenever one eBPF insn write low 32-bit sub-register only. It is possible that some JIT back-ends have failed doing this and are silently generating wrong image. This set completes the unit tests, so bug on this could be exposed in JITs. ==================== Signed-off-by: Daniel Borkmann commit c25d60c12534ada10312a43f1c584fa7384aa2e7 Author: Jiong Wang Date: Wed May 29 10:57:09 2019 +0100 selftests: bpf: complete sub-register zero extension checks eBPF ISA specification requires high 32-bit cleared when only low 32-bit sub-register is written. JIT back-ends must guarantee this semantics when doing code-gen. This patch complete unit tests for all of those insns that could be visible to JIT back-ends and defining sub-registers, if JIT back-ends failed to guarantee the mentioned semantics, these unit tests will fail. Acked-by: Jakub Kicinski Reviewed-by: Quentin Monnet Signed-off-by: Jiong Wang Signed-off-by: Daniel Borkmann commit 9e084bb9805226a3e53e9e28dcd9f3a8d4af35c8 Author: Jiong Wang Date: Wed May 29 10:57:08 2019 +0100 selftests: bpf: move sub-register zero extension checks into subreg.c It is better to centralize all sub-register zero extension checks into an independent file. This patch takes the first step to move existing sub-register zero extension checks into subreg.c. Acked-by: Jakub Kicinski Reviewed-by: Quentin Monnet Signed-off-by: Jiong Wang Signed-off-by: Daniel Borkmann commit 146d62e5a5867fbf84490d82455718bfb10fe824 Author: Amir Goldstein Date: Thu Apr 18 17:42:08 2019 +0300 ovl: detect overlapping layers Overlapping overlay layers are not supported and can cause unexpected behavior, but overlayfs does not currently check or warn about these configurations. User is not supposed to specify the same directory for upper and lower dirs or for different lower layers and user is not supposed to specify directories that are descendants of each other for overlay layers, but that is exactly what this zysbot repro did: https://syzkaller.appspot.com/x/repro.syz?x=12c7a94f400000 Moving layer root directories into other layers while overlayfs is mounted could also result in unexpected behavior. This commit places "traps" in the overlay inode hash table. Those traps are dummy overlay inodes that are hashed by the layers root inodes. On mount, the hash table trap entries are used to verify that overlay layers are not overlapping. While at it, we also verify that overlay layers are not overlapping with directories "in-use" by other overlay instances as upperdir/workdir. On lookup, the trap entries are used to verify that overlay layers root inodes have not been moved into other layers after mount. Some examples: $ ./run --ov --samefs -s ... ( mkdir -p base/upper/0/u base/upper/0/w base/lower lower upper mnt mount -o bind base/lower lower mount -o bind base/upper upper mount -t overlay none mnt ... -o lowerdir=lower,upperdir=upper/0/u,workdir=upper/0/w) $ umount mnt $ mount -t overlay none mnt ... -o lowerdir=base,upperdir=upper/0/u,workdir=upper/0/w [ 94.434900] overlayfs: overlapping upperdir path mount: mount overlay on mnt failed: Too many levels of symbolic links $ mount -t overlay none mnt ... -o lowerdir=upper/0/u,upperdir=upper/0/u,workdir=upper/0/w [ 151.350132] overlayfs: conflicting lowerdir path mount: none is already mounted or mnt busy $ mount -t overlay none mnt ... -o lowerdir=lower:lower/a,upperdir=upper/0/u,workdir=upper/0/w [ 201.205045] overlayfs: overlapping lowerdir path mount: mount overlay on mnt failed: Too many levels of symbolic links $ mount -t overlay none mnt ... -o lowerdir=lower,upperdir=upper/0/u,workdir=upper/0/w $ mv base/upper/0/ base/lower/ $ find mnt/0 mnt/0 mnt/0/w find: 'mnt/0/w/work': Too many levels of symbolic links find: 'mnt/0/u': Too many levels of symbolic links Reported-by: syzbot+9c69c282adc4edd2b540@syzkaller.appspotmail.com Signed-off-by: Amir Goldstein Signed-off-by: Miklos Szeredi commit a6315005a2d4f65b2f010763f4badd69059ba175 Author: Tvrtko Ursulin Date: Mon May 20 12:04:42 2019 +0100 drm/i915/icl: Add WaDisableBankHangMode Disable GPU hang by default on unrecoverable ECC cache errors. v2: * Rebase. v3: * Use intel_uncore_read. (Chris) Fixes: cc38cae7c4e9 ("drm/i915/icl: Introduce initial Icelake Workarounds") Signed-off-by: Tvrtko Ursulin Acked-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190520110442.403-2-tvrtko.ursulin@linux.intel.com (cherry picked from commit cbe3e1d103793705204b29c6952faed537c41fe1) Signed-off-by: Joonas Lahtinen commit 6954158a16404e7091cea494cd0a435ca2f90388 Author: Geert Uytterhoeven Date: Tue May 28 16:24:23 2019 +0200 ALSA: fireface: Use ULL suffixes for 64-bit constants With gcc 4.1: sound/firewire/fireface/ff-protocol-latter.c: In function ‘latter_switch_fetching_mode’: sound/firewire/fireface/ff-protocol-latter.c:97: warning: integer constant is too large for ‘long’ type sound/firewire/fireface/ff-protocol-latter.c: In function ‘latter_begin_session’: sound/firewire/fireface/ff-protocol-latter.c:170: warning: integer constant is too large for ‘long’ type sound/firewire/fireface/ff-protocol-latter.c:197: warning: integer constant is too large for ‘long’ type sound/firewire/fireface/ff-protocol-latter.c:205: warning: integer constant is too large for ‘long’ type sound/firewire/fireface/ff-protocol-latter.c: In function ‘latter_finish_session’: sound/firewire/fireface/ff-protocol-latter.c:214: warning: integer constant is too large for ‘long’ type Fix this by adding the missing "ULL" suffixes. Add the same suffix to the last constant, to maintain consistency. Fixes: fd1cc9de64c2ca6c ("ALSA: fireface: add support for Fireface UCX") Signed-off-by: Geert Uytterhoeven Reviewed-by: Takashi Sakamoto Signed-off-by: Takashi Iwai commit d76cac67db40c172791ce07948367b96a758e45b Author: Eric W. Biederman Date: Thu May 23 11:11:19 2019 -0500 signal/arm64: Use force_sig not force_sig_fault for SIGKILL I don't think this is userspace visible but SIGKILL does not have any si_codes that use the fault member of the siginfo union. Correct this the simple way and call force_sig instead of force_sig_fault when the signal is SIGKILL. The two know places where synchronous SIGKILL are generated are do_bad_area and fpsimd_save. The call paths to force_sig_fault are: do_bad_area arm64_force_sig_fault force_sig_fault force_signal_inject arm64_notify_die arm64_force_sig_fault force_sig_fault Which means correcting this in arm64_force_sig_fault is enough to ensure the arm64 code is not misusing the generic code, which could lead to maintenance problems later. Cc: stable@vger.kernel.org Cc: Dave Martin Cc: James Morse Cc: Will Deacon Fixes: af40ff687bc9 ("arm64: signal: Ensure si_code is valid for all fault signals") Signed-off-by: "Eric W. Biederman" Signed-off-by: Will Deacon commit 180aa422ef2701bd466bb9ade1923a17adfc6299 Author: Johannes Berg Date: Tue May 28 14:19:07 2019 +0200 nl80211: fill all policy .type entries For old commands, it's fine to have .type = NLA_UNSPEC and it behaves the same as NLA_MIN_LEN. However, for new commands with strict validation this is no longer true, and for policy export to userspace these are also ignored. Fix up the remaining ones that don't have a type. Signed-off-by: Johannes Berg commit 0112fa557c3bb3a002bc85760dc3761d737264d3 Author: Pradeep Kumar Chitrapu Date: Tue May 28 16:36:16 2019 -0700 mac80211: free peer keys before vif down in mesh freeing peer keys after vif down is resulting in peer key uninstall to fail due to interface lookup failure. so fix that. Signed-off-by: Pradeep Kumar Chitrapu Signed-off-by: Johannes Berg commit 46a3b9fce29386704a56fbfb22e0dcdbd813b4b5 Author: Yongqiang Niu Date: Wed Mar 27 14:19:20 2019 +0800 drm/mediatek: respect page offset for PRIME mmap calls Respect page offset for PRIME mmap calls Signed-off-by: Yongqiang Niu Signed-off-by: CK Hu commit 937f861def1a1d49abb92e041efaa5c259281fbf Author: Yongqiang Niu Date: Wed Mar 27 14:19:18 2019 +0800 drm/mediatek: adjust ddp clock control flow display hardware clock will not unprepare when crtc is disable, until crtc is destroyed. with this patch, hard clock will disable and unprepare at the same time. Signed-off-by: Yongqiang Niu Signed-off-by: Hsin-Yi Wang Signed-off-by: CK Hu commit 9cb40eb184c4220d244a532bd940c6345ad9dbd9 Author: Hui Wang Date: Wed May 29 12:41:38 2019 +0800 ALSA: hda/realtek - Improve the headset mic for Acer Aspire laptops We met another Acer Aspire laptop which has the problem on the headset-mic, the Pin 0x19 is not set the corret configuration for a mic and the pin presence can't be detected too after plugging a headset. Kailang suggested that we should set the coeff to enable the mic and apply the ALC269_FIXUP_LIFEBOOK_EXTMIC. After doing that, both headset-mic presence and headset-mic work well. The existing ALC255_FIXUP_ACER_MIC_NO_PRESENCE set the headset-mic jack to be a phantom jack. Now since the jack can support presence unsol event, let us imporve it to set the jack to be a normal jack. https://bugs.launchpad.net/bugs/1821269 Fixes: 5824ce8de7b1c ("ALSA: hda/realtek - Add support for Acer Aspire E5-475 headset mic") Cc: Chris Chiu CC: Daniel Drake Cc: Signed-off-by: Kailang Yang Signed-off-by: Hui Wang Signed-off-by: Takashi Iwai commit e717d0ae10041d18fa97da1e6bb4942b5eb9f77c Author: Cédric Le Goater Date: Mon May 20 09:15:14 2019 +0200 KVM: PPC: Book3S HV: XIVE: Fix the enforced limit on the vCPU identifier When a vCPU is connected to the KVM device, it is done using its vCPU identifier in the guest. Fix the enforced limit on the vCPU identifier by taking into account the SMT mode. Reported-by: Satheesh Rajendran Tested-by: Satheesh Rajendran Signed-off-by: Cédric Le Goater Reviewed-by: Greg Kurz Signed-off-by: Paul Mackerras commit c468bc4e8468cb4b85ad61294ddd88efb2e47d8d Author: Cédric Le Goater Date: Mon May 20 09:15:13 2019 +0200 KVM: PPC: Book3S HV: XIVE: Do not test the EQ flag validity when resetting When a CPU is hot-unplugged, the EQ is deconfigured using a zero size and a zero address. In this case, there is no need to check the flag and queue size validity. Move the checks after the queue reset code section to fix CPU hot-unplug. Reported-by: Satheesh Rajendran Tested-by: Satheesh Rajendran Signed-off-by: Cédric Le Goater Reviewed-by: Greg Kurz Signed-off-by: Paul Mackerras commit d47aacdb8e0bc03dcaa1a5630a3c633cdcd4cfa7 Author: Cédric Le Goater Date: Mon May 20 09:15:12 2019 +0200 KVM: PPC: Book3S HV: XIVE: Clear file mapping when device is released Improve the release of the XIVE KVM device by clearing the file address_space, which is used to unmap the interrupt ESB pages when a device is passed-through. Suggested-by: Paul Mackerras Signed-off-by: Cédric Le Goater Signed-off-by: Paul Mackerras commit 5a3f49364c3ffa1107bd88f8292406e98c5d206c Author: Paul Mackerras Date: Thu May 23 16:36:32 2019 +1000 KVM: PPC: Book3S HV: Don't take kvm->lock around kvm_for_each_vcpu Currently the HV KVM code takes the kvm->lock around calls to kvm_for_each_vcpu() and kvm_get_vcpu_by_id() (which can call kvm_for_each_vcpu() internally). However, that leads to a lock order inversion problem, because these are called in contexts where the vcpu mutex is held, but the vcpu mutexes nest within kvm->lock according to Documentation/virtual/kvm/locking.txt. Hence there is a possibility of deadlock. To fix this, we simply don't take the kvm->lock mutex around these calls. This is safe because the implementations of kvm_for_each_vcpu() and kvm_get_vcpu_by_id() have been designed to be able to be called locklessly. Signed-off-by: Paul Mackerras Reviewed-by: Cédric Le Goater Signed-off-by: Paul Mackerras commit 1659e27d2bc1ef47b6d031abe01b467f18cb72d9 Author: Paul Mackerras Date: Wed May 29 11:54:00 2019 +1000 KVM: PPC: Book3S: Use new mutex to synchronize access to rtas token list Currently the Book 3S KVM code uses kvm->lock to synchronize access to the kvm->arch.rtas_tokens list. Because this list is scanned inside kvmppc_rtas_hcall(), which is called with the vcpu mutex held, taking kvm->lock cause a lock inversion problem, which could lead to a deadlock. To fix this, we add a new mutex, kvm->arch.rtas_token_lock, which nests inside the vcpu mutexes, and use that instead of kvm->lock when accessing the rtas token list. This removes the lockdep_assert_held() in kvmppc_rtas_tokens_free(). At this point we don't hold the new mutex, but that is OK because kvmppc_rtas_tokens_free() is only called when the whole VM is being destroyed, and at that point nothing can be looking up a token in the list. Signed-off-by: Paul Mackerras commit 0d4ee88d92884c661fcafd5576da243aa943dc24 Author: Paul Mackerras Date: Thu May 23 16:35:34 2019 +1000 KVM: PPC: Book3S HV: Use new mutex to synchronize MMU setup Currently the HV KVM code uses kvm->lock in conjunction with a flag, kvm->arch.mmu_ready, to synchronize MMU setup and hold off vcpu execution until the MMU-related data structures are ready. However, this means that kvm->lock is being taken inside vcpu->mutex, which is contrary to Documentation/virtual/kvm/locking.txt and results in lockdep warnings. To fix this, we add a new mutex, kvm->arch.mmu_setup_lock, which nests inside the vcpu mutexes, and is taken in the places where kvm->lock was taken that are related to MMU setup. Additionally we take the new mutex in the vcpu creation code at the point where we are creating a new vcore, in order to provide mutual exclusion with kvmppc_update_lpcr() and ensure that an update to kvm->arch.lpcr doesn't get missed, which could otherwise lead to a stale vcore->lpcr value. Signed-off-by: Paul Mackerras commit c395fe1d8e49a5aa03504fcacfb7c95b5a4c6e04 Author: Paul Mackerras Date: Thu May 23 16:35:07 2019 +1000 KVM: PPC: Book3S HV: Avoid touching arch.mmu_ready in XIVE release functions Currently, kvmppc_xive_release() and kvmppc_xive_native_release() clear kvm->arch.mmu_ready and call kick_all_cpus_sync() as a way of ensuring that no vcpus are executing in the guest. However, future patches will change the mutex associated with kvm->arch.mmu_ready to a new mutex that nests inside the vcpu mutexes, making it difficult to continue to use this method. In fact, taking the vcpu mutex for a vcpu excludes execution of that vcpu, and we already take the vcpu mutex around the call to kvmppc_xive_[native_]cleanup_vcpu(). Once the cleanup function is done and we release the vcpu mutex, the vcpu can execute once again, but because we have cleared vcpu->arch.xive_vcpu, vcpu->arch.irq_type, vcpu->arch.xive_esc_vaddr and vcpu->arch.xive_esc_raddr, that vcpu will not be going into XIVE code any more. Thus, once we have cleaned up all of the vcpus, we are safe to clean up the rest of the XIVE state, and we don't need to use kvm->arch.mmu_ready to hold off vcpu execution. Signed-off-by: Paul Mackerras commit ca657468a0d4bcc25445f6636485a19a525267bd Author: Eduardo Valentin Date: Tue May 28 18:04:17 2019 -0700 Revert "drivers: thermal: tsens: Add new operation to check if a sensor is enabled" This reverts commit 3e6a8fb3308419129c7a52de6eb42feef5a919a0. Cc: Andy Gross Cc: David Brown Cc: Amit Kucheria Cc: Zhang Rui Cc: Daniel Lezcano Suggested-by: Amit Kucheria Reported-by: Andy Gross Signed-off-by: Eduardo Valentin commit c0194e2d0ef0e5ce5e21a35640d23a706827ae28 Author: Saeed Mahameed Date: Thu May 23 12:55:10 2019 -0700 net/mlx5e: Disable rxhash when CQE compress is enabled When CQE compression is enabled (Multi-host systems), compressed CQEs might arrive to the driver rx, compressed CQEs don't have a valid hash offload and the driver already reports a hash value of 0 and invalid hash type on the skb for compressed CQEs, but this is not good enough. On a congested PCIe, where CQE compression will kick in aggressively, gro will deliver lots of out of order packets due to the invalid hash and this might cause a serious performance drop. The only valid solution, is to disable rxhash offload at all when CQE compression is favorable (Multi-host systems). Fixes: 7219ab34f184 ("net/mlx5e: CQE compression") Signed-off-by: Saeed Mahameed commit 24bcd210e272c1e5fc712fbc5e5c21f59a21abf7 Author: wenxu Date: Wed May 15 17:25:45 2019 +0800 net/mlx5e: restrict the real_dev of vlan device is the same as uplink device When register indr block for vlan device, it should check the real_dev of vlan device is same as uplink device. Or it will set offload rule to mlx5e which will never hit. Fixes: 35a605db168c ("net/mlx5e: Offload TC e-switch rules with ingress VLAN device") Signed-off-by: wenxu Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit 25fa506b70cadb580c1e9cbd836d6417276d4bcd Author: Parav Pandit Date: Fri May 10 10:40:08 2019 -0500 net/mlx5: Allocate root ns memory using kzalloc to match kfree root ns is yet another fs core node which is freed using kfree() by tree_put_node(). Rest of the other fs core objects are also allocated using kmalloc variants. However, root ns memory is allocated using kvzalloc(). Hence allocate root ns memory using kzalloc(). Fixes: 2530236303d9e ("net/mlx5_core: Flow steering tree initialization") Signed-off-by: Parav Pandit Reviewed-by: Daniel Jurgens Reviewed-by: Mark Bloch Signed-off-by: Saeed Mahameed commit 9414277a5df3669c67e818708c0f881597e0118e Author: Parav Pandit Date: Fri May 10 10:26:23 2019 -0500 net/mlx5: Avoid double free in fs init error unwinding path In below code flow, for ingress acl table root ns memory leads to double free. mlx5_init_fs init_ingress_acls_root_ns() init_ingress_acl_root_ns kfree(steering->esw_ingress_root_ns); /* steering->esw_ingress_root_ns is not marked NULL */ mlx5_cleanup_fs cleanup_ingress_acls_root_ns steering->esw_ingress_root_ns non NULL check passes. kfree(steering->esw_ingress_root_ns); /* double free */ Similar issue exist for other tables. Hence zero out the pointers to not process the table again. Fixes: 9b93ab981e3bf ("net/mlx5: Separate ingress/egress namespaces for each vport") Fixes: 40c3eebb49e51 ("net/mlx5: Add support in RDMA RX steering") Signed-off-by: Parav Pandit Reviewed-by: Mark Bloch Signed-off-by: Saeed Mahameed commit 905f6bd30bb6c244f97cdf5fb5d55cf263844490 Author: Parav Pandit Date: Thu May 9 17:23:24 2019 -0500 net/mlx5: Avoid double free of root ns in the error flow path When root ns setup for rdma, sniffer tx and sniffer rx fails, such root ns cleanup is done by the error unwinding path of mlx5_cleanup_fs(). Below call graph shows an example for sniffer_rx_root_ns. mlx5_init_fs() init_sniffer_rx_root_ns() cleanup_root_ns(steering->sniffer_rx_root_ns); mlx5_cleanup_fs() cleanup_root_ns(steering->sniffer_rx_root_ns); /* double free of sniffer_rx_root_ns */ Hence, use the existing cleanup_fs to cleanup. Fixes: d83eb50e29de3 ("net/mlx5: Add support in RDMA RX steering") Fixes: 87d22483ce68e ("net/mlx5: Add sniffer namespaces") Signed-off-by: Parav Pandit Signed-off-by: Saeed Mahameed commit 8788392995e7f1ea87d4efa03c14d872b05f9f25 Author: Saeed Mahameed Date: Thu May 16 11:11:11 2019 -0700 net/mlx5: Fix error handling in mlx5_load() In case mlx5_core_set_hca_defaults fails, it should jump to mlx5_cleanup_fs, fix that. Fixes: c85023e153e3 ("IB/mlx5: Add raw ethernet local loopback support") Signed-off-by: Saeed Mahameed Reviewed-by: Huy Nguyen Signed-off-by: Saeed Mahameed commit a6cd0d2d493ab7806b49f738b4f66362437cc09e Author: Florian Fainelli Date: Mon May 27 19:06:38 2019 -0700 Documentation: net-sysfs: Remove duplicate PHY device documentation Both sysfs-bus-mdio and sysfs-class-net-phydev contain the same duplication information. There is not currently any MDIO bus specific attribute, but there are PHY device (struct phy_device) specific attributes. Use the more precise description from sysfs-bus-mdio and carry that over to sysfs-class-net-phydev. Fixes: 86f22d04dfb5 ("net: sysfs: Document PHY device sysfs attributes") Signed-off-by: Florian Fainelli Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 8fb44d60d4142cd2a440620cd291d346e23c131e Author: Eric Dumazet Date: Mon May 27 17:35:52 2019 -0700 llc: fix skb leak in llc_build_and_send_ui_pkt() If llc_mac_hdr_init() returns an error, we must drop the skb since no llc_build_and_send_ui_pkt() caller will take care of this. BUG: memory leak unreferenced object 0xffff8881202b6800 (size 2048): comm "syz-executor907", pid 7074, jiffies 4294943781 (age 8.590s) hex dump (first 32 bytes): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 1a 00 07 40 00 00 00 00 00 00 00 00 00 00 00 00 ...@............ backtrace: [<00000000e25b5abe>] kmemleak_alloc_recursive include/linux/kmemleak.h:55 [inline] [<00000000e25b5abe>] slab_post_alloc_hook mm/slab.h:439 [inline] [<00000000e25b5abe>] slab_alloc mm/slab.c:3326 [inline] [<00000000e25b5abe>] __do_kmalloc mm/slab.c:3658 [inline] [<00000000e25b5abe>] __kmalloc+0x161/0x2c0 mm/slab.c:3669 [<00000000a1ae188a>] kmalloc include/linux/slab.h:552 [inline] [<00000000a1ae188a>] sk_prot_alloc+0xd6/0x170 net/core/sock.c:1608 [<00000000ded25bbe>] sk_alloc+0x35/0x2f0 net/core/sock.c:1662 [<000000002ecae075>] llc_sk_alloc+0x35/0x170 net/llc/llc_conn.c:950 [<00000000551f7c47>] llc_ui_create+0x7b/0x140 net/llc/af_llc.c:173 [<0000000029027f0e>] __sock_create+0x164/0x250 net/socket.c:1430 [<000000008bdec225>] sock_create net/socket.c:1481 [inline] [<000000008bdec225>] __sys_socket+0x69/0x110 net/socket.c:1523 [<00000000b6439228>] __do_sys_socket net/socket.c:1532 [inline] [<00000000b6439228>] __se_sys_socket net/socket.c:1530 [inline] [<00000000b6439228>] __x64_sys_socket+0x1e/0x30 net/socket.c:1530 [<00000000cec820c1>] do_syscall_64+0x76/0x1a0 arch/x86/entry/common.c:301 [<000000000c32554f>] entry_SYSCALL_64_after_hwframe+0x44/0xa9 BUG: memory leak unreferenced object 0xffff88811d750d00 (size 224): comm "syz-executor907", pid 7074, jiffies 4294943781 (age 8.600s) hex dump (first 32 bytes): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 00 f0 0c 24 81 88 ff ff 00 68 2b 20 81 88 ff ff ...$.....h+ .... backtrace: [<0000000053026172>] kmemleak_alloc_recursive include/linux/kmemleak.h:55 [inline] [<0000000053026172>] slab_post_alloc_hook mm/slab.h:439 [inline] [<0000000053026172>] slab_alloc_node mm/slab.c:3269 [inline] [<0000000053026172>] kmem_cache_alloc_node+0x153/0x2a0 mm/slab.c:3579 [<00000000fa8f3c30>] __alloc_skb+0x6e/0x210 net/core/skbuff.c:198 [<00000000d96fdafb>] alloc_skb include/linux/skbuff.h:1058 [inline] [<00000000d96fdafb>] alloc_skb_with_frags+0x5f/0x250 net/core/skbuff.c:5327 [<000000000a34a2e7>] sock_alloc_send_pskb+0x269/0x2a0 net/core/sock.c:2225 [<00000000ee39999b>] sock_alloc_send_skb+0x32/0x40 net/core/sock.c:2242 [<00000000e034d810>] llc_ui_sendmsg+0x10a/0x540 net/llc/af_llc.c:933 [<00000000c0bc8445>] sock_sendmsg_nosec net/socket.c:652 [inline] [<00000000c0bc8445>] sock_sendmsg+0x54/0x70 net/socket.c:671 [<000000003b687167>] __sys_sendto+0x148/0x1f0 net/socket.c:1964 [<00000000922d78d9>] __do_sys_sendto net/socket.c:1976 [inline] [<00000000922d78d9>] __se_sys_sendto net/socket.c:1972 [inline] [<00000000922d78d9>] __x64_sys_sendto+0x2a/0x30 net/socket.c:1972 [<00000000cec820c1>] do_syscall_64+0x76/0x1a0 arch/x86/entry/common.c:301 [<000000000c32554f>] entry_SYSCALL_64_after_hwframe+0x44/0xa9 Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Signed-off-by: Eric Dumazet Reported-by: syzbot Signed-off-by: David S. Miller commit 73f51d151e6c760d74d7d4bde75337ebe5693b3e Author: Stefano Brivio Date: Mon May 27 19:42:23 2019 +0200 selftests: pmtu: Fix encapsulating device in pmtu_vti6_link_change_mtu In the pmtu_vti6_link_change_mtu test, both local and remote addresses for the vti6 tunnel are assigned to the same address given to the dummy interface that we use as encapsulating device with a known MTU. This works as long as the dummy interface is actually selected, via rt6_lookup(), as encapsulating device. But if the remote address of the tunnel is a local address too, the loopback interface could also be selected, and there's nothing wrong with it. This is what some older -stable kernels do (3.18.z, at least), and nothing prevents us from subtly changing FIB implementation to revert back to that behaviour in the future. Define an IPv6 prefix instead, and use two separate addresses as local and remote for vti6, so that the encapsulating device can't be a loopback interface. Reported-by: Xiumei Mu Fixes: 1fad59ea1c34 ("selftests: pmtu: Add pmtu_vti6_link_change_mtu test") Signed-off-by: Stefano Brivio Signed-off-by: David S. Miller commit 50fbc13dc12666f3604dc2555a47fc8c4e29162b Author: Gen Zhang Date: Tue May 28 09:12:39 2019 +0800 dfs_cache: fix a wrong use of kfree in flush_cache_ent() In flush_cache_ent(), 'ce->ce_path' is allocated by kstrdup_const(). It should be freed by kfree_const(), rather than kfree(). Signed-off-by: Gen Zhang Reviewed-by: Paulo Alcantara Signed-off-by: Steve French commit 6457c20e336867fc90286d35bddcc9c0b0aaa936 Author: Murphy Zhou Date: Thu May 23 12:12:43 2019 +0800 fs/cifs/smb2pdu.c: fix buffer free in SMB2_ioctl_free The 2nd buffer could be NULL even if iov_len is not zero. This can trigger a panic when handling symlinks. It's easy to reproduce with LTP fs_racer scripts[1] which are randomly craete/delete/link files and dirs. Fix this panic by checking if the 2nd buffer is padding before kfree, like what we do in SMB2_open_free. [1] https://github.com/linux-test-project/ltp/tree/master/testcases/kernel/fs/racer Fixes: 2c87d6a94d16 ("cifs: Allocate memory for all iovs in smb2_ioctl") Signed-off-by: Murphy Zhou Signed-off-by: Steve French Reviewed-by: Ronnie sahlberg commit 210782038b54ec8e9059a3c12d6f6ae173efa3a9 Author: Colin Ian King Date: Fri May 17 09:12:33 2019 +0100 cifs: fix memory leak of pneg_inbuf on -EOPNOTSUPP ioctl case Currently in the case where SMB2_ioctl returns the -EOPNOTSUPP error there is a memory leak of pneg_inbuf. Fix this by returning via the out_free_inbuf exit path that will perform the relevant kfree. Addresses-Coverity: ("Resource leak") Fixes: 969ae8e8d4ee ("cifs: Accept validate negotiate if server return NT_STATUS_NOT_SUPPORTED") CC: Stable # v5.1+ Signed-off-by: Colin Ian King Signed-off-by: Steve French commit d10e0cc113c9e1b64b5c6e3db37b5c839794f3df Author: Ross Lagerwall Date: Mon May 13 14:56:35 2019 +0100 xenbus: Avoid deadlock during suspend due to open transactions During a suspend/resume, the xenwatch thread waits for all outstanding xenstore requests and transactions to complete. This does not work correctly for transactions started by userspace because it waits for them to complete after freezing userspace threads which means the transactions have no way of completing, resulting in a deadlock. This is trivial to reproduce by running this script and then suspending the VM: import pyxs, time c = pyxs.client.Client(xen_bus_path="/dev/xen/xenbus") c.connect() c.transaction() time.sleep(3600) Even if this deadlock were resolved, misbehaving userspace should not prevent a VM from being migrated. So, instead of waiting for these transactions to complete before suspending, store the current generation id for each transaction when it is started. The global generation id is incremented during resume. If the caller commits the transaction and the generation id does not match the current generation id, return EAGAIN so that they try again. If the transaction was instead discarded, return OK since no changes were made anyway. This only affects users of the xenbus file interface. In-kernel users of xenbus are assumed to be well-behaved and complete all transactions before freezing. Signed-off-by: Ross Lagerwall Reviewed-by: Juergen Gross Signed-off-by: Boris Ostrovsky commit 41349672e3cbc2e8349831f21253509c3415aa2b Author: YueHaibing Date: Sat May 25 22:21:51 2019 +0800 xen/pvcalls: Remove set but not used variable Fixes gcc '-Wunused-but-set-variable' warning: drivers/xen/pvcalls-front.c: In function pvcalls_front_sendmsg: drivers/xen/pvcalls-front.c:543:25: warning: variable bedata set but not used [-Wunused-but-set-variable] drivers/xen/pvcalls-front.c: In function pvcalls_front_recvmsg: drivers/xen/pvcalls-front.c:638:25: warning: variable bedata set but not used [-Wunused-but-set-variable] They are never used since introduction. Signed-off-by: YueHaibing Reviewed-by: Juergen Gross Signed-off-by: Boris Ostrovsky commit 849e96f30068d4f6f8352715e02a10533a46deba Merge: 5322ea58a06d a7350998a25a Author: Ingo Molnar Date: Tue May 28 23:16:22 2019 +0200 Merge tag 'perf-urgent-for-mingo-5.2-20190528' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent Pull perf/urgent fixes: BPF: Jiri Olsa: - Fixup determination of end of kernel map, to avoid having BPF programs, that are after the kernel headers and just before module texts mixed up in the kernel map. tools UAPI header copies: Arnaldo Carvalho de Melo: - Update copy of files related to new fspick, fsmount, fsconfig, fsopen, move_mount and open_tree syscalls. - Sync cpufeatures.h, sched.h, fs.h, drm.h, i915_drm.h and kvm.h headers. Namespaces: Namhyung Kim: - Add missing byte swap ops for namespace events when processing records from perf.data files that could have been recorded in a arch with a different endianness. - Fix access to the thread namespaces list by using the namespaces_lock. perf data: Shawn Landden: - Fix 'strncat may truncate' build failure with recent gcc. s/390 Thomas Richter: - Fix s390 missing module symbol and warning for non-root users in 'perf record'. arm64: Vitaly Chikunov: - Fix mksyscalltbl when system kernel headers are ahead of the kernel. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit dfb4a6f2191a80c8b790117d0ff592fd712d3296 Author: Tomas Bortoli Date: Tue May 28 17:43:38 2019 +0200 tracing: Avoid memory leak in predicate_parse() In case of errors, predicate_parse() goes to the out_free label to free memory and to return an error code. However, predicate_parse() does not free the predicates of the temporary prog_stack array, thence leaking them. Link: http://lkml.kernel.org/r/20190528154338.29976-1-tomasbortoli@gmail.com Cc: stable@vger.kernel.org Fixes: 80765597bc587 ("tracing: Rewrite filter logic to be simpler and faster") Reported-by: syzbot+6b8e0fb820e570c59e19@syzkaller.appspotmail.com Signed-off-by: Tomas Bortoli [ Added protection around freeing prog_stack[i].pred ] Signed-off-by: Steven Rostedt (VMware) commit d724170160f800fa8dfd3c0cdebb8b093570b504 Author: Oded Gabbay Date: Tue May 28 23:03:54 2019 +0300 habanalabs: fix bug in checking huge page optimization This patch fix a bug in the mmu code that checks whether we can use huge page mappings for host pages. The code is supposed to enable huge page mappings only if ALL DMA addresses are aligned to 2MB AND the number of pages in each DMA chunk is a modulo of the number of pages in 2MB. However, the code ignored the first requirement for the first DMA chunk. This patch fix that issue by making sure the requirement of address alignment is validated against all DMA chunks. Signed-off-by: Oded Gabbay commit 89f3c365f3e113d087f105c3acbbb5a71eee84e3 Author: Adrian Hunter Date: Mon May 27 14:45:55 2019 +0300 mmc: sdhci: Fix SDIO IRQ thread deadlock Since commit c07a48c26519 ("mmc: sdhci: Remove finish_tasklet"), the IRQ thread might be used to complete requests, but the IRQ thread is also used to process SDIO card interrupts. This can cause a deadlock when the SDIO processing tries to access the card since that would also require the IRQ thread. Change SDHCI to use sdio_signal_irq() to schedule a work item instead. That also requires implementing the ->ack_sdio_irq() mmc host op. Signed-off-by: Adrian Hunter Fixes: c07a48c26519 ("mmc: sdhci: Remove finish_tasklet") Reported-by: Brian Masney Tested-by: Brian Masney Signed-off-by: Ulf Hansson commit 7aae703f8096d21e34ce5f34f16715587bc30902 Author: Madalin Bucur Date: Mon May 27 15:24:05 2019 +0300 dpaa_eth: use only online CPU portals Make sure only the portals for the online CPUs are used. Without this change, there are issues when someone boots with maxcpus=n, with n < actual number of cores available as frames either received or corresponding to the transmit confirmation path would be offered for dequeue to the offline CPU portals, getting lost. Signed-off-by: Madalin Bucur Signed-off-by: David S. Miller commit d484e06e25ebb937d841dac02ac1fe76ec7d4ddd Author: Jisheng Zhang Date: Mon May 27 11:04:17 2019 +0000 net: mvneta: Fix err code path of probe Fix below issues in err code path of probe: 1. we don't need to unregister_netdev() because the netdev isn't registered. 2. when register_netdev() fails, we also need to destroy bm pool for HWBM case. Fixes: dc35a10f68d3 ("net: mvneta: bm: add support for hardware buffer management") Signed-off-by: Jisheng Zhang Signed-off-by: David S. Miller commit 54ed6fd2e03fd38819afa60a5b4cb61874230d34 Author: Thierry Reding Date: Mon May 27 12:52:51 2019 +0200 net: stmmac: Do not output error on deferred probe If the subdriver defers probe, do not show an error message. It's perfectly fine for this error to occur since the driver will get another chance to probe after some time and will usually succeed after all of the resources that it requires have been registered. Signed-off-by: Thierry Reding Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 06989c799f04810f6876900d4760c0edda369cf7 Author: Filipe Manana Date: Wed May 15 16:03:17 2019 +0100 Btrfs: fix race updating log root item during fsync When syncing the log, the final phase of a fsync operation, we need to either create a log root's item or update the existing item in the log tree of log roots, and that depends on the current value of the log root's log_transid - if it's 1 we need to create the log root item, otherwise it must exist already and we update it. Since there is no synchronization between updating the log_transid and checking it for deciding whether the log root's item needs to be created or updated, we end up with a tiny race window that results in attempts to update the item to fail because the item was not yet created: CPU 1 CPU 2 btrfs_sync_log() lock root->log_mutex set log root's log_transid to 1 unlock root->log_mutex btrfs_sync_log() lock root->log_mutex sets log root's log_transid to 2 unlock root->log_mutex update_log_root() sees log root's log_transid with a value of 2 calls btrfs_update_root(), which fails with -EUCLEAN and causes transaction abort Until recently the race lead to a BUG_ON at btrfs_update_root(), but after the recent commit 7ac1e464c4d47 ("btrfs: Don't panic when we can't find a root key") we just abort the current transaction. A sample trace of the BUG_ON() on a SLE12 kernel: ------------[ cut here ]------------ kernel BUG at ../fs/btrfs/root-tree.c:157! Oops: Exception in kernel mode, sig: 5 [#1] SMP NR_CPUS=2048 NUMA pSeries (...) Supported: Yes, External CPU: 78 PID: 76303 Comm: rtas_errd Tainted: G X 4.4.156-94.57-default #1 task: c00000ffa906d010 ti: c00000ff42b08000 task.ti: c00000ff42b08000 NIP: d000000036ae5cdc LR: d000000036ae5cd8 CTR: 0000000000000000 REGS: c00000ff42b0b860 TRAP: 0700 Tainted: G X (4.4.156-94.57-default) MSR: 8000000002029033 CR: 22444484 XER: 20000000 CFAR: d000000036aba66c SOFTE: 1 GPR00: d000000036ae5cd8 c00000ff42b0bae0 d000000036bda220 0000000000000054 GPR04: 0000000000000001 0000000000000000 c00007ffff8d37c8 0000000000000000 GPR08: c000000000e19c00 0000000000000000 0000000000000000 3736343438312079 GPR12: 3930373337303434 c000000007a3a800 00000000007fffff 0000000000000023 GPR16: c00000ffa9d26028 c00000ffa9d261f8 0000000000000010 c00000ffa9d2ab28 GPR20: c00000ff42b0bc48 0000000000000001 c00000ff9f0d9888 0000000000000001 GPR24: c00000ffa9d26000 c00000ffa9d261e8 c00000ffa9d2a800 c00000ff9f0d9888 GPR28: c00000ffa9d26028 c00000ffa9d2aa98 0000000000000001 c00000ffa98f5b20 NIP [d000000036ae5cdc] btrfs_update_root+0x25c/0x4e0 [btrfs] LR [d000000036ae5cd8] btrfs_update_root+0x258/0x4e0 [btrfs] Call Trace: [c00000ff42b0bae0] [d000000036ae5cd8] btrfs_update_root+0x258/0x4e0 [btrfs] (unreliable) [c00000ff42b0bba0] [d000000036b53610] btrfs_sync_log+0x2d0/0xc60 [btrfs] [c00000ff42b0bce0] [d000000036b1785c] btrfs_sync_file+0x44c/0x4e0 [btrfs] [c00000ff42b0bd80] [c00000000032e300] vfs_fsync_range+0x70/0x120 [c00000ff42b0bdd0] [c00000000032e44c] do_fsync+0x5c/0xb0 [c00000ff42b0be10] [c00000000032e8dc] SyS_fdatasync+0x2c/0x40 [c00000ff42b0be30] [c000000000009488] system_call+0x3c/0x100 Instruction dump: 7f43d378 4bffebb9 60000000 88d90008 3d220000 e8b90000 3b390009 e87a01f0 e8898e08 e8f90000 4bfd48e5 60000000 <0fe00000> e95b0060 39200004 394a0ea0 ---[ end trace 8f2dc8f919cabab8 ]--- So fix this by doing the check of log_transid and updating or creating the log root's item while holding the root's log_mutex. Fixes: 7237f1833601d ("Btrfs: fix tree logs parallel sync") CC: stable@vger.kernel.org # 4.4+ Signed-off-by: Filipe Manana Signed-off-by: David Sterba commit 5338e43abbab13791144d37fd8846847062351c6 Author: Filipe Manana Date: Wed May 15 16:02:47 2019 +0100 Btrfs: fix wrong ctime and mtime of a directory after log replay When replaying a log that contains a new file or directory name that needs to be added to its parent directory, we end up updating the mtime and the ctime of the parent directory to the current time after we have set their values to the correct ones (set at fsync time), efectivelly losing them. Sample reproducer: $ mkfs.btrfs -f /dev/sdb $ mount /dev/sdb /mnt $ mkdir /mnt/dir $ touch /mnt/dir/file # fsync of the directory is optional, not needed $ xfs_io -c fsync /mnt/dir $ xfs_io -c fsync /mnt/dir/file $ stat -c %Y /mnt/dir 1557856079 $ sleep 3 $ mount /dev/sdb /mnt $ stat -c %Y /mnt/dir 1557856082 --> should have been 1557856079, the mtime is updated to the current time when replaying the log Fix this by not updating the mtime and ctime to the current time at btrfs_add_link() when we are replaying a log tree. This could be triggered by my recent fsync fuzz tester for fstests, for which an fstests patch exists titled "fstests: generic, fsync fuzz tester with fsstress". Fixes: e02119d5a7b43 ("Btrfs: Add a write ahead tree log to optimize synchronous operations") CC: stable@vger.kernel.org # 4.4+ Reviewed-by: Nikolay Borisov Signed-off-by: Filipe Manana Signed-off-by: David Sterba commit 46e04c25e72f002d0d14be072300c2dd827d99b6 Author: Alexey Brodkin Date: Wed May 15 18:33:40 2019 +0300 ARC: [plat-hsdk] Get rid of inappropriate PHY settings Initial bring-up of the platform was done on FPGA prototype where TI's DP83867 PHY was used. And so some specific PHY options were added. Just to confirm this is what we get on FPGA prototype in the bootlog: | TI DP83867 stmmac-0:00: attached PHY driver [TI DP83867] ... On real board though we have Micrel KZS9031 PHY and we even have CONFIG_MICREL_PHY=y set in hsdk_defconfig. That's what we see in the bootlog: | Micrel KSZ9031 Gigabit PHY stmmac-0:00: ... So essentially all TI-related bits have to go away. Cc: Rob Herring Acked-by: Trent Piepho Signed-off-by: Alexey Brodkin Signed-off-by: Vineet Gupta commit b04700645d78e14b2ac50b438f4fee68690b4680 Author: Eugeniy Paltsev Date: Tue May 21 20:54:39 2019 +0300 ARC: [plat-hsdk]: Add support of Vivante GPU HSDK board has built-in Vivante GPU IP which works perfectly fine with Etnaviv driver, so let's use it. Signed-off-by: Eugeniy Paltsev Signed-off-by: Vineet Gupta commit 780b35b6aafcbbe24c36fa9ad6ba80e2dbe96632 Author: Eugeniy Paltsev Date: Tue May 28 12:40:52 2019 +0300 ARC: [plat-hsdk]: enable creg-gpio controller HSDK SOC has CREG GPIO controller which can be used to control SPI chip select lines. Enable it in preparation of enabling SPI peripherals. Acked-by: Alexey Brodkin Signed-off-by: Eugeniy Paltsev Signed-off-by: Vineet Gupta commit 60d9f50308e5df19bc18c2fefab0eba4a843900a Author: Filipe Manana Date: Thu May 16 15:48:55 2019 +0100 Btrfs: fix fsync not persisting changed attributes of a directory While logging an inode we follow its ancestors and for each one we mark it as logged in the current transaction, even if we have not logged it. As a consequence if we change an attribute of an ancestor, such as the UID or GID for example, and then explicitly fsync it, we end up not logging the inode at all despite returning success to user space, which results in the attribute being lost if a power failure happens after the fsync. Sample reproducer: $ mkfs.btrfs -f /dev/sdb $ mount /dev/sdb /mnt $ mkdir /mnt/dir $ chown 6007:6007 /mnt/dir $ sync $ chown 9003:9003 /mnt/dir $ touch /mnt/dir/file $ xfs_io -c fsync /mnt/dir/file # fsync our directory after fsync'ing the new file, should persist the # new values for the uid and gid. $ xfs_io -c fsync /mnt/dir $ mount /dev/sdb /mnt $ stat -c %u:%g /mnt/dir 6007:6007 --> should be 9003:9003, the uid and gid were not persisted, despite the explicit fsync on the directory prior to the power failure Fix this by not updating the logged_trans field of ancestor inodes when logging an inode, since we have not logged them. Let only future calls to btrfs_log_inode() to mark inodes as logged. This could be triggered by my recent fsync fuzz tester for fstests, for which an fstests patch exists titled "fstests: generic, fsync fuzz tester with fsstress". Fixes: 12fcfd22fe5b ("Btrfs: tree logging unlink/rename fixes") CC: stable@vger.kernel.org # 4.4+ Signed-off-by: Filipe Manana Signed-off-by: David Sterba commit 57949d033a09c57d77be218b5bec07af6878ab32 Author: Qu Wenruo Date: Tue May 21 19:28:08 2019 +0800 btrfs: qgroup: Check bg while resuming relocation to avoid NULL pointer dereference [BUG] When mounting a fs with reloc tree and has qgroup enabled, it can cause NULL pointer dereference at mount time: BUG: kernel NULL pointer dereference, address: 00000000000000a8 #PF: supervisor read access in kernel mode #PF: error_code(0x0000) - not-present page PGD 0 P4D 0 Oops: 0000 [#1] PREEMPT SMP NOPTI RIP: 0010:btrfs_qgroup_add_swapped_blocks+0x186/0x300 [btrfs] Call Trace: replace_path.isra.23+0x685/0x900 [btrfs] merge_reloc_root+0x26e/0x5f0 [btrfs] merge_reloc_roots+0x10a/0x1a0 [btrfs] btrfs_recover_relocation+0x3cd/0x420 [btrfs] open_ctree+0x1bc8/0x1ed0 [btrfs] btrfs_mount_root+0x544/0x680 [btrfs] legacy_get_tree+0x34/0x60 vfs_get_tree+0x2d/0xf0 fc_mount+0x12/0x40 vfs_kern_mount.part.12+0x61/0xa0 vfs_kern_mount+0x13/0x20 btrfs_mount+0x16f/0x860 [btrfs] legacy_get_tree+0x34/0x60 vfs_get_tree+0x2d/0xf0 do_mount+0x81f/0xac0 ksys_mount+0xbf/0xe0 __x64_sys_mount+0x25/0x30 do_syscall_64+0x65/0x240 entry_SYSCALL_64_after_hwframe+0x49/0xbe [CAUSE] In btrfs_recover_relocation(), we don't have enough info to determine which block group we're relocating, but only to merge existing reloc trees. Thus in btrfs_recover_relocation(), rc->block_group is NULL. btrfs_qgroup_add_swapped_blocks() hasn't taken this into consideration, and causes a NULL pointer dereference. The bug is introduced by commit 3d0174f78e72 ("btrfs: qgroup: Only trace data extents in leaves if we're relocating data block group"), and later qgroup refactoring still keeps this optimization. [FIX] Thankfully in the context of btrfs_recover_relocation(), there is no other progress can modify tree blocks, thus those swapped tree blocks pair will never affect qgroup numbers, no matter whatever we set for block->trace_leaf. So we only need to check if @bg is NULL before accessing @bg->flags. Reported-by: Juan Erbes Link: https://bugzilla.opensuse.org/show_bug.cgi?id=1134806 Fixes: 3d0174f78e72 ("btrfs: qgroup: Only trace data extents in leaves if we're relocating data block group") CC: stable@vger.kernel.org # 4.20+ Signed-off-by: Qu Wenruo Signed-off-by: David Sterba commit 30d40577e322b670551ad7e2faa9570b6e23eb2b Author: Qu Wenruo Date: Wed May 22 16:33:11 2019 +0800 btrfs: reloc: Also queue orphan reloc tree for cleanup to avoid BUG_ON() [BUG] When a fs has orphan reloc tree along with unfinished balance: ... item 16 key (TREE_RELOC ROOT_ITEM FS_TREE) itemoff 12090 itemsize 439 generation 12 root_dirid 256 bytenr 300400640 level 1 refs 0 <<< lastsnap 8 byte_limit 0 bytes_used 1359872 flags 0x0(none) uuid 7c48d938-33a3-4aae-ab19-6e5c9d406e46 item 17 key (BALANCE TEMPORARY_ITEM 0) itemoff 11642 itemsize 448 temporary item objectid BALANCE offset 0 balance status flags 14 Then at mount time, we can hit the following kernel BUG_ON(): BTRFS info (device dm-3): relocating block group 298844160 flags metadata|dup ------------[ cut here ]------------ kernel BUG at fs/btrfs/relocation.c:1413! invalid opcode: 0000 [#1] PREEMPT SMP NOPTI CPU: 1 PID: 897 Comm: btrfs-balance Tainted: G O 5.2.0-rc1-custom #15 RIP: 0010:create_reloc_root+0x1eb/0x200 [btrfs] Call Trace: btrfs_init_reloc_root+0x96/0xb0 [btrfs] record_root_in_trans+0xb2/0xe0 [btrfs] btrfs_record_root_in_trans+0x55/0x70 [btrfs] select_reloc_root+0x7e/0x230 [btrfs] do_relocation+0xc4/0x620 [btrfs] relocate_tree_blocks+0x592/0x6a0 [btrfs] relocate_block_group+0x47b/0x5d0 [btrfs] btrfs_relocate_block_group+0x183/0x2f0 [btrfs] btrfs_relocate_chunk+0x4e/0xe0 [btrfs] btrfs_balance+0x864/0xfa0 [btrfs] balance_kthread+0x3b/0x50 [btrfs] kthread+0x123/0x140 ret_from_fork+0x27/0x50 [CAUSE] In btrfs, reloc trees are used to record swapped tree blocks during balance. Reloc tree either get merged (replace old tree blocks of its parent subvolume) in next transaction if its ref is 1 (fresh). Or is already merged and will be cleaned up if its ref is 0 (orphan). After commit d2311e698578 ("btrfs: relocation: Delay reloc tree deletion after merge_reloc_roots"), reloc tree cleanup is delayed until one block group is balanced. Since fresh reloc roots are recorded during merge, as long as there is no power loss, those orphan reloc roots converted from fresh ones are handled without problem. However when power loss happens, orphan reloc roots can be recorded on-disk, thus at next mount time, we will have orphan reloc roots from on-disk data directly, and ignored by clean_dirty_subvols() routine. Then when background balance starts to balance another block group, and needs to create new reloc root for the same root, btrfs_insert_item() returns -EEXIST, and trigger that BUG_ON(). [FIX] For orphan reloc roots, also queue them to rc->dirty_subvol_roots, so all reloc roots no matter orphan or not, can be cleaned up properly and avoid above BUG_ON(). And to cooperate with above change, clean_dirty_subvols() will check if the queued root is a reloc root or a subvol root. For a subvol root, do the old work, and for a orphan reloc root, clean it up. Fixes: d2311e698578 ("btrfs: relocation: Delay reloc tree deletion after merge_reloc_roots") CC: stable@vger.kernel.org # 5.1 Signed-off-by: Qu Wenruo Signed-off-by: David Sterba commit 3c850b45110950ee8b6eeba587b4bca8cb5c9793 Author: Filipe Manana Date: Mon May 20 09:57:00 2019 +0100 Btrfs: incremental send, fix emission of invalid clone operations When doing an incremental send we can now issue clone operations with a source range that ends at the source's file eof and with a destination range that ends at an offset smaller then the destination's file eof. If the eof of the source file is not aligned to the sector size of the filesystem, the receiver will get a -EINVAL error when trying to do the operation or, on older kernels, silently corrupt the destination file. The corruption happens on kernels without commit ac765f83f1397646 ("Btrfs: fix data corruption due to cloning of eof block"), while the failure to clone happens on kernels with that commit. Example reproducer: $ mkfs.btrfs -f /dev/sdb $ mount /dev/sdb /mnt/sdb $ xfs_io -f -c "pwrite -S 0xb1 0 2M" /mnt/sdb/foo $ xfs_io -f -c "pwrite -S 0xc7 0 2M" /mnt/sdb/bar $ xfs_io -f -c "pwrite -S 0x4d 0 2M" /mnt/sdb/baz $ xfs_io -f -c "pwrite -S 0xe2 0 2M" /mnt/sdb/zoo $ btrfs subvolume snapshot -r /mnt/sdb /mnt/sdb/base $ btrfs send -f /tmp/base.send /mnt/sdb/base $ xfs_io -c "reflink /mnt/sdb/bar 1560K 500K 100K" /mnt/sdb/bar $ xfs_io -c "reflink /mnt/sdb/bar 1560K 0 100K" /mnt/sdb/zoo $ xfs_io -c "truncate 550K" /mnt/sdb/bar $ btrfs subvolume snapshot -r /mnt/sdb /mnt/sdb/incr $ btrfs send -f /tmp/incr.send -p /mnt/sdb/base /mnt/sdb/incr $ mkfs.btrfs -f /dev/sdc $ mount /dev/sdc /mnt/sdc $ btrfs receive -f /tmp/base.send /mnt/sdc $ btrfs receive -vv -f /tmp/incr.send /mnt/sdc (...) truncate bar size=563200 utimes bar clone zoo - source=bar source offset=512000 offset=0 length=51200 ERROR: failed to clone extents to zoo Invalid argument The failure happens because the clone source range ends at the eof of file bar, 563200, which is not aligned to the filesystems sector size (4Kb in this case), and the destination range ends at offset 0 + 51200, which is less then the size of the file zoo (2Mb). So fix this by detecting such case and instead of issuing a clone operation for the whole range, do a clone operation for smaller range that is sector size aligned followed by a write operation for the block containing the eof. Here we will always be pessimistic and assume the destination filesystem of the send stream has the largest possible sector size (64Kb), since we have no way of determining it. This fixes a recent regression introduced in kernel 5.2-rc1. Fixes: 040ee6120cb6706 ("Btrfs: send, improve clone range") Signed-off-by: Filipe Manana Signed-off-by: David Sterba commit 6b1f72e5b82a5c2a4da4d1ebb8cc01913ddbea21 Author: Filipe Manana Date: Mon May 20 09:55:42 2019 +0100 Btrfs: incremental send, fix file corruption when no-holes feature is enabled When using the no-holes feature, if we have a file with prealloc extents with a start offset beyond the file's eof, doing an incremental send can cause corruption of the file due to incorrect hole detection. Such case requires that the prealloc extent(s) exist in both the parent and send snapshots, and that a hole is punched into the file that covers all its extents that do not cross the eof boundary. Example reproducer: $ mkfs.btrfs -f -O no-holes /dev/sdb $ mount /dev/sdb /mnt/sdb $ xfs_io -f -c "pwrite -S 0xab 0 500K" /mnt/sdb/foobar $ xfs_io -c "falloc -k 1200K 800K" /mnt/sdb/foobar $ btrfs subvolume snapshot -r /mnt/sdb /mnt/sdb/base $ btrfs send -f /tmp/base.snap /mnt/sdb/base $ xfs_io -c "fpunch 0 500K" /mnt/sdb/foobar $ btrfs subvolume snapshot -r /mnt/sdb /mnt/sdb/incr $ btrfs send -p /mnt/sdb/base -f /tmp/incr.snap /mnt/sdb/incr $ md5sum /mnt/sdb/incr/foobar 816df6f64deba63b029ca19d880ee10a /mnt/sdb/incr/foobar $ mkfs.btrfs -f /dev/sdc $ mount /dev/sdc /mnt/sdc $ btrfs receive -f /tmp/base.snap /mnt/sdc $ btrfs receive -f /tmp/incr.snap /mnt/sdc $ md5sum /mnt/sdc/incr/foobar cf2ef71f4a9e90c2f6013ba3b2257ed2 /mnt/sdc/incr/foobar --> Different checksum, because the prealloc extent beyond the file's eof confused the hole detection code and it assumed a hole starting at offset 0 and ending at the offset of the prealloc extent (1200Kb) instead of ending at the offset 500Kb (the file's size). Fix this by ensuring we never cross the file's size when issuing the write operations for a hole. Fixes: 16e7549f045d33 ("Btrfs: incompatible format change to remove hole extents") CC: stable@vger.kernel.org # 3.14+ Signed-off-by: Filipe Manana Signed-off-by: David Sterba commit fee13fe96529523a709d1fff487f14a5e0d56d34 Author: Dennis Zhou Date: Fri May 17 19:16:26 2019 -0400 btrfs: correct zstd workspace manager lock to use spin_lock_bh() The btrfs zstd workspace manager uses a background timer to reclaim not recently used workspaces. I used spin_lock() from this context which should have been caught with lockdep, but was not. This deadlock was reported in bugzilla. The fix is to switch the zstd wsm lock to use spin_lock_bh() from the softirq context. This happened quite relibably on ppc64, unlike on other architectures. [ 313.402874] ================================ [ 313.402875] WARNING: inconsistent lock state [ 313.402879] 5.1.0-rc7 #1 Not tainted [ 313.402880] -------------------------------- [ 313.402882] inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage. [ 313.402885] swapper/5/0 [HC0[0]:SC1[1]:HE1:SE0] takes: [ 313.402888] 0000000080d1120c (&(&wsm.lock)->rlock){+.?.}, at: .zstd_reclaim_timer_fn+0x40/0x230 [ 313.402895] {SOFTIRQ-ON-W} state was registered at: [ 313.402899] .lock_acquire+0xd0/0x240 [ 313.402903] ._raw_spin_lock+0x34/0x60 [ 313.402906] .zstd_get_workspace+0xd0/0x360 [ 313.402908] .end_compressed_bio_read+0x3b8/0x540 [ 313.402911] .bio_endio+0x174/0x2c0 [ 313.402914] .end_workqueue_fn+0x4c/0x70 [ 313.402917] .normal_work_helper+0x138/0x7e0 [ 313.402920] .process_one_work+0x324/0x790 [ 313.402922] .worker_thread+0x68/0x570 [ 313.402925] .kthread+0x19c/0x1b0 [ 313.402928] .ret_from_kernel_thread+0x58/0x78 [ 313.402930] irq event stamp: 2629216 [ 313.402933] hardirqs last enabled at (2629216): [] ._raw_spin_unlock_irq+0x38/0x60 [ 313.402936] hardirqs last disabled at (2629215): [] ._raw_spin_lock_irq+0x24/0x70 [ 313.402939] softirqs last enabled at (2629212): [] .irq_enter+0x8c/0xd0 [ 313.402942] softirqs last disabled at (2629213): [] .irq_exit+0x118/0x170 [ 313.402944] other info that might help us debug this: [ 313.402945] Possible unsafe locking scenario: [ 313.402947] CPU0 [ 313.402948] ---- [ 313.402949] lock(&(&wsm.lock)->rlock); [ 313.402951] [ 313.402952] lock(&(&wsm.lock)->rlock); [ 313.402954] *** DEADLOCK *** [ 313.402957] 1 lock held by swapper/5/0: [ 313.402958] #0: 000000004b612042 ((&wsm.timer)){+.-.}, at: .call_timer_fn+0x0/0x3c0 [ 313.402963] stack backtrace: [ 313.402967] CPU: 5 PID: 0 Comm: swapper/5 Not tainted 5.1.0-rc7 #1 [ 313.402968] Call Trace: [ 313.402972] [c0000007fa262e70] [c0000000009b3294] .dump_stack+0xe0/0x15c (unreliable) [ 313.402975] [c0000007fa262f10] [c000000000125548] .print_usage_bug+0x348/0x390 [ 313.402978] [c0000007fa262fd0] [c000000000125cb4] .mark_lock+0x724/0x930 [ 313.402981] [c0000007fa263080] [c000000000126c20] .__lock_acquire+0xc90/0x16a0 [ 313.402984] [c0000007fa2631b0] [c000000000128040] .lock_acquire+0xd0/0x240 [ 313.402987] [c0000007fa263280] [c0000000009da2b4] ._raw_spin_lock+0x34/0x60 [ 313.402990] [c0000007fa263300] [c00000000054b0b0] .zstd_reclaim_timer_fn+0x40/0x230 [ 313.402993] [c0000007fa2633d0] [c000000000158b38] .call_timer_fn+0xc8/0x3c0 [ 313.402996] [c0000007fa2634a0] [c000000000158f74] .expire_timers+0x144/0x260 [ 313.402999] [c0000007fa263550] [c000000000159178] .run_timer_softirq+0xe8/0x230 [ 313.403002] [c0000007fa263680] [c0000000009db288] .__do_softirq+0x188/0x5d4 [ 313.403004] [c0000007fa263790] [c0000000000afb58] .irq_exit+0x118/0x170 [ 313.403008] [c0000007fa263800] [c000000000028d88] .timer_interrupt+0x158/0x430 [ 313.403012] [c0000007fa2638b0] [c0000000000091d4] decrementer_common+0x134/0x140 [ 313.403017] --- interrupt: 901 at replay_interrupt_return+0x0/0x4 LR = .arch_local_irq_restore.part.0+0x68/0x80 [ 313.403020] [c0000007fa263bb0] [c00000000001a3ac] .arch_local_irq_restore.part.0+0x2c/0x80 (unreliable) [ 313.403024] [c0000007fa263c30] [c0000000007bbbcc] .cpuidle_enter_state+0xec/0x670 [ 313.403027] [c0000007fa263d00] [c0000000000f5130] .call_cpuidle+0x40/0x90 [ 313.403031] [c0000007fa263d70] [c0000000000f554c] .do_idle+0x2dc/0x3a0 [ 313.403034] [c0000007fa263e30] [c0000000000f59ac] .cpu_startup_entry+0x2c/0x30 [ 313.403037] [c0000007fa263ea0] [c000000000045674] .start_secondary+0x644/0x650 [ 313.403041] [c0000007fa263f90] [c00000000000ad5c] start_secondary_prolog+0x10/0x14 Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203517 Fixes: 3f93aef535c8 ("btrfs: add zstd compression level support") CC: stable@vger.kernel.org # 5.1+ Signed-off-by: Dennis Zhou Reviewed-by: David Sterba Signed-off-by: David Sterba commit debd1c065d2037919a7da67baf55cc683fee09f0 Author: Nikolay Borisov Date: Fri May 17 10:44:25 2019 +0300 btrfs: Ensure replaced device doesn't have pending chunk allocation Recent FITRIM work, namely bbbf7243d62d ("btrfs: combine device update operations during transaction commit") combined the way certain operations are recoded in a transaction. As a result an ASSERT was added in dev_replace_finish to ensure the new code works correctly. Unfortunately I got reports that it's possible to trigger the assert, meaning that during a device replace it's possible to have an unfinished chunk allocation on the source device. This is supposed to be prevented by the fact that a transaction is committed before finishing the replace oepration and alter acquiring the chunk mutex. This is not sufficient since by the time the transaction is committed and the chunk mutex acquired it's possible to allocate a chunk depending on the workload being executed on the replaced device. This bug has been present ever since device replace was introduced but there was never code which checks for it. The correct way to fix is to ensure that there is no pending device modification operation when the chunk mutex is acquire and if there is repeat transaction commit. Unfortunately it's not possible to just exclude the source device from btrfs_fs_devices::dev_alloc_list since this causes ENOSPC to be hit in transaction commit. Fixing that in another way would need to add special cases to handle the last writes and forbid new ones. The looped transaction fix is more obvious, and can be easily backported. The runtime of dev-replace is long so there's no noticeable delay caused by that. Reported-by: David Sterba Fixes: 391cd9df81ac ("Btrfs: fix unprotected alloc list insertion during the finishing procedure of replace") CC: stable@vger.kernel.org # 4.4+ Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit 9fb67d643f6f1892a08ee3a04ea54022d1060bb0 Merge: ca6584a3316c b1fa7d8592c7 Author: Linus Torvalds Date: Tue May 28 09:35:04 2019 -0700 Merge tag 'pinctrl-v5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl Pull pin control fixes from Linus Walleij: "The commits that stand out are the Intel fixes that arrived during the merge window and I got relayed by pull request from Andy. Apart from that a minor Kconfig noise. - Interrupt clearing fix for the Intel pin controllers affecting touchpads on some laptops. - Compile Kconfig fix for the STMFX expander pin controller" * tag 'pinctrl-v5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: pinctrl: stmfx: Fix compile issue when CONFIG_OF_GPIO is not defined pinctrl: intel: Clear interrupt status in mask/unmask callback pinctrl: intel: Use GENMASK() consistently commit ca6584a3316c445d72e9795dc0765a0f30d83293 Merge: 9a626c4a6326 e9646f0f5bb6 Author: Linus Torvalds Date: Tue May 28 09:33:05 2019 -0700 Merge tag 'gpio-v5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio Pull GPIO fix from Linus Walleij: "Fix a build error in gpio-adp5588" * tag 'gpio-v5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: gpio: fix gpio-adp5588 build errors commit 9a626c4a6326da4433a0d4d4a8a7d1571caf1ed3 Author: Randy Dunlap Date: Tue May 28 09:14:30 2019 -0700 ia64: fix build errors by exporting paddr_to_nid() Fix build errors on ia64 when DISCONTIGMEM=y and NUMA=y by exporting paddr_to_nid(). Fixes these build errors: ERROR: "paddr_to_nid" [sound/core/snd-pcm.ko] undefined! ERROR: "paddr_to_nid" [net/sunrpc/sunrpc.ko] undefined! ERROR: "paddr_to_nid" [fs/cifs/cifs.ko] undefined! ERROR: "paddr_to_nid" [drivers/video/fbdev/core/fb.ko] undefined! ERROR: "paddr_to_nid" [drivers/usb/mon/usbmon.ko] undefined! ERROR: "paddr_to_nid" [drivers/usb/core/usbcore.ko] undefined! ERROR: "paddr_to_nid" [drivers/md/raid1.ko] undefined! ERROR: "paddr_to_nid" [drivers/md/dm-mod.ko] undefined! ERROR: "paddr_to_nid" [drivers/md/dm-crypt.ko] undefined! ERROR: "paddr_to_nid" [drivers/md/dm-bufio.ko] undefined! ERROR: "paddr_to_nid" [drivers/ide/ide-core.ko] undefined! ERROR: "paddr_to_nid" [drivers/ide/ide-cd_mod.ko] undefined! ERROR: "paddr_to_nid" [drivers/gpu/drm/drm.ko] undefined! ERROR: "paddr_to_nid" [drivers/char/agp/agpgart.ko] undefined! ERROR: "paddr_to_nid" [drivers/block/nbd.ko] undefined! ERROR: "paddr_to_nid" [drivers/block/loop.ko] undefined! ERROR: "paddr_to_nid" [drivers/block/brd.ko] undefined! ERROR: "paddr_to_nid" [crypto/ccm.ko] undefined! Reported-by: kbuild test robot Signed-off-by: Randy Dunlap Cc: Tony Luck Cc: Fenghua Yu Cc: linux-ia64@vger.kernel.org Signed-off-by: Tony Luck Signed-off-by: Linus Torvalds commit be1b577d01787c67acc6dd1257588183386a08f4 Author: Zhu Yingjiang Date: Fri May 24 14:09:24 2019 -0500 ASoC: SOF: Intel: hda: fix the hda init chip re-write hda_init_caps and remove the HDA reset, clean HDA streams and clear interrupt steps in hda_dsp_probe so the HDA init steps will not be called twice if the CONFIG_SND_SOC_SOF_HDA is true. Fixes: 8a300c8fb17 ("ASoC: SOF: Intel: Add HDA controller for Intel DSP") Reviewed-by: Takashi Iwai Signed-off-by: Zhu Yingjiang Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 1183e9a634db06825da7faba566bce50afde4357 Author: Guennadi Liakhovetski Date: Fri May 24 14:09:23 2019 -0500 ASoC: SOF: ipc: fix a race, leading to IPC timeouts Currently on all supported platforms the IPC IRQ thread first signals the sender when an IPC response is received from the DSP, then unmasks the IPC interrupt. Those actions are performed without holding any locks, so the thread can be interrupted between them. IPC timeouts have been observed in such scenarios: if the sender is woken up and it proceeds with sending the next message without unmasking the IPC interrupt, it can miss the next response. This patch takes a spin-lock to prevent the IRQ thread from being preempted at that point. It also makes sure, that the next IPC transmission by the host cannot take place before the IRQ thread has finished updating all the required IPC registers. Fixes: 53e0c72d98b ("ASoC: SOF: Add support for IPC IO between DSP and Host") Reviewed-by: Takashi Iwai Signed-off-by: Guennadi Liakhovetski Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 5661ad9490ee4abdb27295880e524acc656c89e7 Author: Keyon Jie Date: Fri May 24 14:09:22 2019 -0500 ASoC: SOF: control: correct the copy size for bytes kcontrol put The size for the bytes kcontrol should include the abi header, that is, data->size + sizeof(*data), it is also aligned with get method after this change. Fixes: c3078f53970 ("ASoC: SOF: Add Sound Open Firmware KControl support") Reviewed-by: Takashi Iwai Signed-off-by: Keyon Jie Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit fab4edf42d2d68d0aa67822650174dcd0ee25ffa Author: Pierre-Louis Bossart Date: Fri May 24 14:09:21 2019 -0500 ASoC: SOF: pcm: remove warning - initialize workqueue on open If the SOF hw_params() fail, typically with an IPC error thrown by the firmware, the period_elapsed workqueue is not initialized, but we still cancel it in hw_free(), which results in a kernel warning. Move the initialization to the .open callback. Tested on Broadwell (Samus) and IceLake. Fixes: e2803e610ae ("ASoC: SOF: PCM: add period_elapsed work to fix race condition in interrupt context") GitHub issue: https://github.com/thesofproject/linux/issues/932 Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 04ea642ff62a2b2da3d5844283991a41328f49b1 Author: Libin Yang Date: Fri May 24 14:09:20 2019 -0500 ASoC: SOF: pcm: clear hw_params_upon_resume flag correctly sof_pcm_hw_params() can only be called once to setup the FW hw_params. So after calling sof_pcm_hw_params(), hw_params_upon_resume flag must be cleared to avoid multiple invoking sof_pcm_hw_params() by prepare. For example, after resume, there is an xrun happened, prepare() will be called. As the hw_params_upon_resume flag is not cleared, sof_pcm_hw_params() will be called and this will cause IPC timeout. This patch fixes such issues. Fixes: 868bd00f495 ("ASoC: SOF: Add PCM operations support") Reviewed-by: Takashi Iwai Signed-off-by: Libin Yang Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 0bce512e784d137700275f7839c4547eddbd4b6a Author: Pierre-Louis Bossart Date: Fri May 24 14:09:19 2019 -0500 ASoC: SOF: core: fix error handling with the probe workqueue In some configurations, it's a requirement to split the probe in two, with a second part handled in a workqueue (e.g. for HDMI support which depends on the DRM modules). SOF already handles these configurations but the error flow is incorrect. When an error occurs in the workqueue, the probe has technically already completed. If we release the resources on errors, this generates kernel oops/use-after-free when the resources are released a second time on module removal. GitHub issue: https://github.com/thesofproject/linux/issues/945 Fixes: c16211d6226 ("ASoC: SOF: Add Sound Open Firmware driver core") Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 13931ae31b67a8a26a4cd417088fc43e3d4a8591 Author: Ranjani Sridharan Date: Fri May 24 14:09:18 2019 -0500 ASoC: SOF: core: remove snd_soc_unregister_component in case of error No need to call snd_soc_unregister_component in case of error because the component device is resource-managed. Fixes: c16211d6226 ("ASoC: SOF: Add Sound Open Firmware driver core") Reviewed-by: Takashi Iwai Signed-off-by: Ranjani Sridharan Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit b85459aafae63f250606bd406d4f7537fda33b51 Author: Ranjani Sridharan Date: Fri May 24 14:09:17 2019 -0500 ASoC: SOF: core: remove DSP after unregistering machine driver snd_sof_remove() disables the DSP and unmaps the DSP BAR. Removing topology after disabling the DSP results in a kernel panic while unloading the pipeline widget. This is because pipeline widget unload attempts to power down the core it is scheduled on by accessing the DSP registers. So, the suggested fix here is to unregister the machine driver first to remove the topology and then disable the DSP to avoid the situation described above. Note that the kernel panic only happens in cases where the HDaudio link is not managed by the hdac library, e.g. no codec or when HDMI is not supported. When the hdac library is used, snd_sof_remove() calls snd_hdac_ext_bus_device_remove() to remove the codec which unregisters the component driver thereby also removing the topology before the DSP is disabled. Fixes: c16211d6226 ("ASoC: SOF: Add Sound Open Firmware driver core") Reviewed-by: Takashi Iwai Signed-off-by: Ranjani Sridharan Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 29040d1ac569606fece70966179de272cfc0d4db Author: Kuninori Morimoto Date: Mon May 27 16:51:34 2019 +0900 ASoC: soc-core: fixup references at soc_cleanup_card_resources() commit 53e947a0e1f7 ("ASoC: soc-core: merge card resources cleanup method") merged cleanup method of snd_soc_instantiate_card() and soc_cleanup_card_resources(). But, after this commit, if user uses unbind/bind to Component factor drivers, Kernel might indicates refcount error at soc_cleanup_card_resources(). The 1st reason is card->snd_card is still exist even though snd_card_free() was called, but it is already cleaned. We need to set NULL to it. 2nd is card->dapm and card create debugfs, but its dentry is still exist even though it was removed. We need to set NULL to it. Fixes: 53e947a0e1f7 ("ASoC: soc-core: merge card resources cleanup method") Cc: stable@vger.kernel.org # for v5.1 Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown commit 3fd00beb14a56c5ca10c3f67e5b8156f4f9223b5 Author: Ard Biesheuvel Date: Tue May 28 16:13:16 2019 +0200 arm64/module: revert to unsigned interpretation of ABS16/32 relocations Commit 1cf24a2cc3fd ("arm64/module: deal with ambiguity in PRELxx relocation ranges") updated the overflow checking logic in the relocation handling code to ensure that PREL16/32 relocations don't overflow signed quantities. However, the same code path is used for absolute relocations, where the interpretation is the opposite: the only current use case for absolute relocations operating on non-native word size quantities is the CRC32 handling in the CONFIG_MODVERSIONS code, and these CRCs are unsigned 32-bit quantities, which are now being rejected by the module loader if bit 31 happens to be set. So let's use different ranges for quanties subject to absolute vs. relative relocations: - ABS16/32 relocations should be in the range [0, Uxx_MAX) - PREL16/32 relocations should be in the range [Sxx_MIN, Sxx_MAX) - otherwise, print an error since no other 16 or 32 bit wide data relocations are currently supported. Signed-off-by: Ard Biesheuvel Signed-off-by: Will Deacon commit a86cb413f4bf273a9d341a3ab2c2ca44e12eb317 Author: Thomas Huth Date: Thu May 23 18:43:08 2019 +0200 KVM: s390: Do not report unusabled IDs via KVM_CAP_MAX_VCPU_ID KVM_CAP_MAX_VCPU_ID is currently always reporting KVM_MAX_VCPU_ID on all architectures. However, on s390x, the amount of usable CPUs is determined during runtime - it is depending on the features of the machine the code is running on. Since we are using the vcpu_id as an index into the SCA structures that are defined by the hardware (see e.g. the sca_add_vcpu() function), it is not only the amount of CPUs that is limited by the hard- ware, but also the range of IDs that we can use. Thus KVM_CAP_MAX_VCPU_ID must be determined during runtime on s390x, too. So the handling of KVM_CAP_MAX_VCPU_ID has to be moved from the common code into the architecture specific code, and on s390x we have to return the same value here as for KVM_CAP_MAX_VCPUS. This problem has been discovered with the kvm_create_max_vcpus selftest. With this change applied, the selftest now passes on s390x, too. Reviewed-by: Andrew Jones Reviewed-by: Cornelia Huck Reviewed-by: David Hildenbrand Signed-off-by: Thomas Huth Message-Id: <20190523164309.13345-9-thuth@redhat.com> Cc: stable@vger.kernel.org Signed-off-by: Christian Borntraeger commit eb1f2f387db8c0d084581fb26e7faffde700bc8e Author: Christian Borntraeger Date: Mon May 27 10:28:25 2019 +0200 kvm: fix compile on s390 part 2 We also need to fence the memunmap part. Fixes: e45adf665a53 ("KVM: Introduce a new guest mapping API") Fixes: d30b214d1d0a (kvm: fix compilation on s390) Cc: Michal Kubecek Cc: KarimAllah Ahmed Signed-off-by: Christian Borntraeger commit 66d4218f9902132a48f29607ca741076ab3671a1 Author: Gustavo A. R. Silva Date: Wed Jan 30 18:46:22 2019 -0600 xprtrdma: Use struct_size() in kzalloc() One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example: struct foo { int stuff; struct boo entry[]; }; instance = kzalloc(sizeof(struct foo) + count * sizeof(struct boo), GFP_KERNEL); Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper: instance = kzalloc(struct_size(instance, entry, count), GFP_KERNEL); This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Reviewed-by: Chuck Lever Signed-off-by: Anna Schumaker commit a7350998a25ac10cdca5b33dee1d343a74debbfe Author: Arnaldo Carvalho de Melo Date: Fri May 24 14:04:15 2019 -0300 tools headers UAPI: Sync kvm.h headers with the kernel sources dd53f6102c30 ("Merge tag 'kvmarm-for-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD") 59c5c58c5b93 ("Merge tag 'kvm-ppc-next-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc into HEAD") d7547c55cbe7 ("KVM: Introduce KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2") 6520ca64cde7 ("KVM: PPC: Book3S HV: XIVE: Add a mapping for the source ESB pages") 39e9af3de5ca ("KVM: PPC: Book3S HV: XIVE: Add a TIMA mapping") e4945b9da52b ("KVM: PPC: Book3S HV: XIVE: Add get/set accessors for the VP XIVE state") e6714bd1671d ("KVM: PPC: Book3S HV: XIVE: Add a control to dirty the XIVE EQ pages") 7b46b6169ab8 ("KVM: PPC: Book3S HV: XIVE: Add a control to sync the sources") 5ca806474859 ("KVM: PPC: Book3S HV: XIVE: Add a global reset control") 13ce3297c576 ("KVM: PPC: Book3S HV: XIVE: Add controls for the EQ configuration") e8676ce50e22 ("KVM: PPC: Book3S HV: XIVE: Add a control to configure a source") 4131f83c3d64 ("KVM: PPC: Book3S HV: XIVE: add a control to initialize a source") eacc56bb9de3 ("KVM: PPC: Book3S HV: XIVE: Introduce a new capability KVM_CAP_PPC_IRQ_XIVE") 90c73795afa2 ("KVM: PPC: Book3S HV: Add a new KVM device for the XIVE native exploitation mode") 4f45b90e1c03 ("KVM: s390: add deflate conversion facilty to cpu model") a243c16d18be ("KVM: arm64: Add capability to advertise ptrauth for guest") a22fa321d13b ("KVM: arm64: Add userspace flag to enable pointer authentication") 4bd774e57b29 ("KVM: arm64/sve: Simplify KVM_REG_ARM64_SVE_VLS array sizing") 8ae6efdde451 ("KVM: arm64/sve: Clean up UAPI register ID definitions") 173aec2d5a9f ("KVM: s390: add enhanced sort facilty to cpu model") 555f3d03e7fb ("KVM: arm64: Add a capability to advertise SVE support") 9033bba4b535 ("KVM: arm64/sve: Add pseudo-register for the guest's vector lengths") 7dd32a0d0103 ("KVM: arm/arm64: Add KVM_ARM_VCPU_FINALIZE ioctl") e1c9c98345b3 ("KVM: arm64/sve: Add SVE support to register access ioctl interface") 2b953ea34812 ("KVM: Allow 2048-bit register access via ioctl interface") None entails changes in tooling, the closest to that were some new arch specific ioctls, that are still not handled by the tools/perf/trace/beauty/ library, that needs to create per-arch tables to convert ioctl cmd->string (and back). From a quick look the arch specific kvm-stat.c files at: $ ls -1 tools/perf/arch/*/util/kvm-stat.c tools/perf/arch/powerpc/util/kvm-stat.c tools/perf/arch/s390/util/kvm-stat.c tools/perf/arch/x86/util/kvm-stat.c $ Are not affected. This silences these perf building warnings: Warning: Kernel ABI header at 'tools/include/uapi/linux/kvm.h' differs from latest version at 'include/uapi/linux/kvm.h' diff -u tools/include/uapi/linux/kvm.h include/uapi/linux/kvm.h Warning: Kernel ABI header at 'tools/arch/powerpc/include/uapi/asm/kvm.h' differs from latest version at 'arch/powerpc/include/uapi/asm/kvm.h' diff -u tools/arch/powerpc/include/uapi/asm/kvm.h arch/powerpc/include/uapi/asm/kvm.h Warning: Kernel ABI header at 'tools/arch/s390/include/uapi/asm/kvm.h' differs from latest version at 'arch/s390/include/uapi/asm/kvm.h' diff -u tools/arch/s390/include/uapi/asm/kvm.h arch/s390/include/uapi/asm/kvm.h Warning: Kernel ABI header at 'tools/arch/arm64/include/uapi/asm/kvm.h' differs from latest version at 'arch/arm64/include/uapi/asm/kvm.h' diff -u tools/arch/arm64/include/uapi/asm/kvm.h arch/arm64/include/uapi/asm/kvm.h Cc: Adrian Hunter Cc: Amit Daniel Kachhap Cc: Brendan Gregg Cc: Cédric Le Goater Cc: Christian Borntraeger Cc: Dave Martin Cc: Jiri Olsa Cc: Luis Cláudio Gonçalves Cc: Marc Zyngier Cc: Namhyung Kim Cc: Paolo Bonzini Cc: Paul Mackerras Cc: Peter Xu Link: https://lkml.kernel.org/n/tip-3msmqjenlmb7eygcdnmlqaq1@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit 6738028dd57df064b969d8392c943ef3b3ae705d Author: Thomas Richter Date: Wed May 22 16:46:01 2019 +0200 perf record: Fix s390 missing module symbol and warning for non-root users Command 'perf record' and 'perf report' on a system without kernel debuginfo packages uses /proc/kallsyms and /proc/modules to find addresses for kernel and module symbols. On x86 this works for root and non-root users. On s390, when invoked as non-root user, many of the following warnings are shown and module symbols are missing: proc/{kallsyms,modules} inconsistency while looking for "[sha1_s390]" module! Command 'perf record' creates a list of module start addresses by parsing the output of /proc/modules and creates a PERF_RECORD_MMAP record for the kernel and each module. The following function call sequence is executed: machine__create_kernel_maps machine__create_module modules__parse machine__create_module --> for each line in /proc/modules arch__fix_module_text_start Function arch__fix_module_text_start() is s390 specific. It opens file /sys/module//sections/.text to extract the module's .text section start address. On s390 the module loader prepends a header before the first section, whereas on x86 the module's text section address is identical the the module's load address. However module section files are root readable only. For non-root the read operation fails and machine__create_module() returns an error. Command perf record does not generate any PERF_RECORD_MMAP record for loaded modules. Later command perf report complains about missing module maps. To fix this function arch__fix_module_text_start() always returns success. For root users there is no change, for non-root users the module's load address is used as module's text start address (the prepended header then counts as part of the text section). This enable non-root users to use module symbols and avoid the warning when perf report is executed. Output before: [tmricht@m83lp54 perf]$ ./perf report -D | fgrep MMAP 0 0x168 [0x50]: PERF_RECORD_MMAP ... x [kernel.kallsyms]_text Output after: [tmricht@m83lp54 perf]$ ./perf report -D | fgrep MMAP 0 0x168 [0x50]: PERF_RECORD_MMAP ... x [kernel.kallsyms]_text 0 0x1b8 [0x98]: PERF_RECORD_MMAP ... x /lib/modules/.../autofs4.ko.xz 0 0x250 [0xa8]: PERF_RECORD_MMAP ... x /lib/modules/.../sha_common.ko.xz 0 0x2f8 [0x98]: PERF_RECORD_MMAP ... x /lib/modules/.../des_generic.ko.xz Signed-off-by: Thomas Richter Reviewed-by: Hendrik Brueckner Cc: Heiko Carstens Link: http://lkml.kernel.org/r/20190522144601.50763-4-tmricht@linux.ibm.com Signed-off-by: Arnaldo Carvalho de Melo commit ed9adb2035b5be5896d465b19040262be5f4a824 Author: Jiri Olsa Date: Wed May 8 15:20:03 2019 +0200 perf machine: Read also the end of the kernel We mark the end of kernel based on the first module, but that could cover some bpf program maps. Reading _etext symbol if it's present to get precise kernel map end. Signed-off-by: Jiri Olsa Acked-by: Song Liu Cc: Adrian Hunter Cc: Alexander Shishkin Cc: Andi Kleen Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stanislav Fomichev Cc: Thomas Richter Link: http://lkml.kernel.org/r/20190508132010.14512-6-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit 93f678b9ae8feb7f7cec29c2dcbb5756ad22d9a1 Author: Arnaldo Carvalho de Melo Date: Fri May 24 15:39:00 2019 -0300 perf test vmlinux-kallsyms: Ignore aliases to _etext when searching on kallsyms No need to search for aliases for the symbol that marks the end of the kernel text segment, the following patch will make such symbols not to be found when searching in the kallsyms maps causing this test to fail. So as a prep patch to avoid breaking bisection, ignore such symbols. Tested-by: Jiri Olsa Cc: Adrian Hunter Cc: Alexander Shishkin Cc: Andi Kleen Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Song Liu Cc: Stanislav Fomichev Cc: Thomas Richter Link: https://lkml.kernel.org/n/tip-qfwuih8cvmk9doh7k5k244eq@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit acd244b84b80d53fa2cee98659b55d3f09b4f5a7 Author: Namhyung Kim Date: Wed May 22 14:32:49 2019 +0900 perf session: Add missing swap ops for namespace events In case it's recorded in a different arch. Signed-off-by: Namhyung Kim Cc: Hari Bathini Cc: Jiri Olsa Cc: Krister Johansen Fixes: f3b3614a284d ("perf tools: Add PERF_RECORD_NAMESPACES to include namespaces related info") Link: http://lkml.kernel.org/r/20190522053250.207156-3-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit 6584140ba9e6762dd7ec73795243289b914f31f9 Author: Namhyung Kim Date: Wed May 22 14:32:48 2019 +0900 perf namespace: Protect reading thread's namespace It seems that the current code lacks holding the namespace lock in thread__namespaces(). Otherwise it can see inconsistent results. Signed-off-by: Namhyung Kim Cc: Hari Bathini Cc: Jiri Olsa Cc: Krister Johansen Link: http://lkml.kernel.org/r/20190522053250.207156-2-namhyung@kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit 9903c64f0fe7fa4829c948fa0e742f578e084548 Author: Arnaldo Carvalho de Melo Date: Wed May 22 10:26:12 2019 -0300 tools headers UAPI: Sync drm/drm.h with the kernel To pick up the changes in these csets: 060cebb20cdb ("drm: introduce a capability flag for syncobj timeline support") 50d1ebef79ef ("drm/syncobj: add timeline signal ioctl for syncobj v5") ea569910cbab ("drm/syncobj: add transition iotcls between binary and timeline v2") 27b575a9aa2f ("drm/syncobj: add timeline payload query ioctl v6") 01d6c3578379 ("drm/syncobj: add support for timeline point wait v8") 783195ec1cad ("drm/syncobj: disable the timeline UAPI for now v2") 48197bc564c7 ("drm: add syncobj timeline support v9") Which automagically results in the following new ioctls being recognized by the 'perf trace' ioctl cmd arg beautifier: $ tools/perf/trace/beauty/drm_ioctl.sh > /tmp/before $ cp include/uapi/drm/drm.h tools/include/uapi/drm/drm.h $ tools/perf/trace/beauty/drm_ioctl.sh > /tmp/after $ diff -u /tmp/before /tmp/after --- /tmp/before 2019-05-22 10:25:31.443151182 -0300 +++ /tmp/after 2019-05-22 10:25:46.449354819 -0300 @@ -103,6 +103,10 @@ [0xC7] = "MODE_LIST_LESSEES", [0xC8] = "MODE_GET_LEASE", [0xC9] = "MODE_REVOKE_LEASE", + [0xCA] = "SYNCOBJ_TIMELINE_WAIT", + [0xCB] = "SYNCOBJ_QUERY", + [0xCC] = "SYNCOBJ_TRANSFER", + [0xCD] = "SYNCOBJ_TIMELINE_SIGNAL", [DRM_COMMAND_BASE + 0x00] = "I915_INIT", [DRM_COMMAND_BASE + 0x01] = "I915_FLUSH", [DRM_COMMAND_BASE + 0x02] = "I915_FLIP", $ I.e. the strace like raw_tracepoint:sys_enter handler in 'perf trace' will get the cmd integer value and map it to the string. At some point it should be possible to translate from string to integer and use to filter using expressions such as: # perf trace -e ioctl/cmd==DRM_IOCTL_SYNCOBJ*/ Or some more suitable syntax to express that only these ioctls when acting on DRM fds should be shown. Acked-by: Lionel Landwerlin Cc: Adrian Hunter Cc: Brendan Gregg Cc: Christian König Cc: Chunming Zhou Cc: Dave Airlie Cc: Jiri Olsa Cc: Luis Cláudio Gonçalves Cc: Namhyung Kim Link: https://lkml.kernel.org/n/tip-jrc9ogw33w4zgqc3pu7o1l3g@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit bef9f0ba300a55d79a69aa172156072182176515 Author: Harald Freudenberger Date: Thu May 23 16:18:25 2019 +0200 s390/crypto: fix gcm-aes-s390 selftest failures The current kernel uses improved crypto selftests. These tests showed that the current implementation of gcm-aes-s390 is not able to deal with chunks of output buffers which are not a multiple of 16 bytes. This patch introduces a rework of the gcm aes s390 scatter walk handling which now is able to handle any input and output scatter list chunk sizes correctly. Code has been verified by the crypto selftests, the tcrypt kernel module and additional tests ran via the af_alg interface. Cc: Reported-by: Julian Wiedmann Reviewed-by: Patrick Steuer Signed-off-by: Harald Freudenberger Signed-off-by: Heiko Carstens commit 7379e652797c0b9b5f6caea1576f2dff9ce6a708 Author: Harald Freudenberger Date: Tue May 21 13:50:09 2019 +0200 s390/zcrypt: Fix wrong dispatching for control domain CPRBs The zcrypt device driver does not handle CPRBs which address a control domain correctly. This fix introduces a workaround: The domain field of the request CPRB is checked if there is a valid domain value in there. If this is true and the value is a control only domain (a domain which is enabled in the crypto config ADM mask but disabled in the AQM mask) the CPRB is forwarded to the default usage domain. If there is no default domain, the request is rejected with an ENODEV. This fix is important for maintaining crypto adapters. For example one LPAR can use a crypto adapter domain ('Control and Usage') but another LPAR needs to be able to maintain this adapter domain ('Control'). Scenarios like this did not work properly and the patch enables this. Signed-off-by: Harald Freudenberger Signed-off-by: Heiko Carstens commit dcd33b23c9f322274efb94d6e86370bac2b3c68f Author: Sebastian Ott Date: Thu May 16 14:19:51 2019 +0200 s390/pci: fix assignment of bus resources Adjust bus resources depending on the usage of MIO instructions. Fixes: 71ba41c9b1d9 ("s390/pci: provide support for MIO instructions") Signed-off-by: Sebastian Ott Signed-off-by: Heiko Carstens commit 1354b38b3ddf47e0612d21f401d2bfeb8acd9b80 Author: Sebastian Ott Date: Thu May 16 13:28:17 2019 +0200 s390/pci: fix struct definition for set PCI function Recent firmware will store PCI MIO information also when enabling MIO instructions via set PCI function. We do not use this information but currently calling enable MIO will fail because of insufficient response block length. Fix this by putting a struct mio_info at the end of the affected response block struct. Fixes: 71ba41c9b1d9 ("s390/pci: provide support for MIO instructions") Signed-off-by: Sebastian Ott Signed-off-by: Heiko Carstens commit d83623c5eab25f5a83e308f24b1e6a4cb8628eb5 Author: Masahiro Yamada Date: Fri May 17 15:54:24 2019 +0900 s390: mark __cpacf_check_opcode() and cpacf_query_func() as __always_inline Commit e60fb8bf68d4 ("s390/cpacf: mark scpacf_query() as __always_inline") was not enough to make sure to meet the 'i' (immediate) constraint for the asm operands. With CONFIG_OPTIMIZE_INLINING enabled, Laura Abbott reported error with gcc 9.1.1: In file included from arch/s390/crypto/prng.c:29: ./arch/s390/include/asm/cpacf.h: In function 'cpacf_query_func': ./arch/s390/include/asm/cpacf.h:170:2: warning: asm operand 3 probably doesn't match constraints 170 | asm volatile( | ^~~ ./arch/s390/include/asm/cpacf.h:170:2: error: impossible constraint in 'asm' Add more __always_inline to force inlining. Fixes: 9012d011660e ("compiler: allow all arches to enable CONFIG_OPTIMIZE_INLINING") Reported-by: Laura Abbott Signed-off-by: Masahiro Yamada Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit bf2f1eeed0b5461ecda385f1716c2b65add54579 Author: Masahiro Yamada Date: Fri May 17 15:49:22 2019 +0900 s390: add unreachable() to dump_fault_info() to fix -Wmaybe-uninitialized When CONFIG_OPTIMIZE_INLINING is enabled for s390, I see this warning: arch/s390/mm/fault.c:127:15: warning: 'asce' may be used uninitialized in this function [-Wmaybe-uninitialized] switch (asce & _ASCE_TYPE_MASK) { arch/s390/mm/fault.c:177:16: note: 'asce' was declared here unsigned long asce; ^~~~ If get_fault_type() is not inlined, the compiler cannot deduce that all the possible paths in the 'switch' statement are covered. Of course, we could mark get_fault_type() as __always_inline to get back the original behavior, but I do not think it sensible to force inlining just for the purpose of suppressing the warning. Since this is just a matter of warning, I want to keep as much room for compiler optimization as possible. I added unreachable() to teach the compiler that the 'default' label is unreachable. I got rid of the 'inline' marker. Even without the 'inline' hint, the compiler inlines functions based on its inlining heuristic. Fixes: 9012d011660e ("compiler: allow all arches to enable CONFIG_OPTIMIZE_INLINING") Signed-off-by: Masahiro Yamada Signed-off-by: Martin Schwidefsky Signed-off-by: Heiko Carstens commit e6aff9f8bfbecd4610ce0e2f4811cea42494dc62 Author: Arnaldo Carvalho de Melo Date: Wed May 22 07:58:44 2019 -0300 tools headers UAPI: Sync drm/i915_drm.h with the kernel To pick up the changes from: d1172ab3d443 ("drm/i915: Introduce struct class_instance for engines across the uAPI") 96fd2c6633b0 ("drm/i915: Drop new chunks of context creation ABI (for now)") ea593dbba4c8 ("drm/i915: Allow contexts to share a single timeline across all engines") b91715417244 ("drm/i915: Extend CONTEXT_CREATE to set parameters upon construction") e0695db7298e ("drm/i915: Create/destroy VM (ppGTT) for use with contexts") 9d1305ef80b9 ("drm/i915: Introduce the i915_user_extension_method") c8b502422bfe ("drm/i915: Remove last traces of exec-id (GEM_BUSY)") d90c06d57027 ("drm/i915: Fix I915_EXEC_RING_MASK") e88619646971 ("drm/i915: Use HW semaphores for inter-engine synchronisation on gen8+") be03564bd7b6 ("drm/i915: Include reminders about leaving no holes in uAPI enums") ba4fda620a5f ("drm/i915: Optionally disable automatic recovery after a GPU reset") We still don't take into account the _IOC_SIZE() to differentiate ioctl cmds, so more work is needed to support the extension mechanism that is being used here so that we can differentiate DRM_IOCTL_I915_GEM_CONTEXT_CREATE from the newly introduced DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT cmd. This silences this perf build warning: Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs from latest version at 'include/uapi/drm/i915_drm.h' diff -u tools/include/uapi/drm/i915_drm.h include/uapi/drm/i915_drm.h Cc: Adrian Hunter Cc: Brendan Gregg Cc: Jiri Olsa Cc: Luis Cláudio Gonçalves Cc: Namhyung Kim Cc: Chris Wilson Link: https://lkml.kernel.org/n/tip-csn0vanmc7pevyka5qcg0xyw@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit b5b999dca673bd7b2d4c267faf3478dca7baff7f Author: Arnaldo Carvalho de Melo Date: Tue May 21 17:07:20 2019 -0300 tools headers UAPI: Sync linux/fs.h with the kernel To pick up the changes in: c553ea4fdf27 ("fs/sync.c: sync_file_range(2) may use WB_SYNC_ALL writeback") That should be used to beautify the 'sync_file_range' syscall 'flags' arg. This silences this perf build warning: Warning: Kernel ABI header at 'tools/include/uapi/linux/fs.h' differs from latest version at 'include/uapi/linux/fs.h' diff -u tools/include/uapi/linux/fs.h include/uapi/linux/fs.h Cc: Adrian Hunter Cc: Amir Goldstein Cc: Brendan Gregg Cc: Jiri Olsa Cc: Linus Torvalds Cc: Luis Cláudio Gonçalves Cc: Namhyung Kim Link: https://lkml.kernel.org/n/tip-at3uoqcvmqdkwaysmvbj1wpv@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit c27de2b8911db7624be9bde1b5d58067dd58371d Author: Arnaldo Carvalho de Melo Date: Tue May 21 16:43:32 2019 -0300 tools headers UAPI: Sync linux/sched.h with the kernel To pick up the change in: b3e583825266 ("clone: add CLONE_PIDFD") This requires changes in the 'perf trace' beautification routines for the 'clone' syscall args, which is done in a followup patch. This silences the following perf build warning: Warning: Kernel ABI header at 'tools/include/uapi/linux/sched.h' differs from latest version at 'include/uapi/linux/sched.h' diff -u tools/include/uapi/linux/sched.h include/uapi/linux/sched.h Cc: Adrian Hunter Cc: Brendan Gregg Cc: Christian Brauner Cc: Jiri Olsa Cc: Luis Cláudio Gonçalves Cc: Namhyung Kim Link: https://lkml.kernel.org/n/tip-lenja6gmy26dkt0ybk747qgq@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit b979540a7522617e190636621e7c5ffae469f8f0 Author: Arnaldo Carvalho de Melo Date: Tue May 21 16:39:42 2019 -0300 tools arch x86: Sync asm/cpufeatures.h with the with the kernel To pick up the changes in: ed5194c2732c ("x86/speculation/mds: Add basic bug infrastructure for MDS") e261f209c366 ("x86/speculation/mds: Add BUG_MSBDS_ONLY") That don't affect anything in tools/. This silences this perf build warning: Warning: Kernel ABI header at 'tools/arch/x86/include/asm/cpufeatures.h' differs from latest version at 'arch/x86/include/asm/cpufeatures.h' diff -u tools/arch/x86/include/asm/cpufeatures.h arch/x86/include/asm/cpufeatures.h Cc: Adrian Hunter Cc: Andi Kleen Cc: Brendan Gregg Cc: Jiri Olsa Cc: Luis Cláudio Gonçalves Cc: Namhyung Kim Cc: Thomas Gleixner Link: https://lkml.kernel.org/n/tip-jp1afecx3ql1jkuirpgkqfad@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit fba29f1820ddd42e63c38049028422dac2d86596 Author: Arnaldo Carvalho de Melo Date: Mon May 20 12:03:30 2019 -0300 tools include UAPI: Update copy of files related to new fspick, fsmount, fsconfig, fsopen, move_mount and open_tree syscalls Copy the headers changed by these csets: d8076bdb56af ("uapi: Wire up the mount API syscalls on non-x86 arches [ver #2]") 9c8ad7a2ff0b ("uapi, x86: Fix the syscall numbering of the mount API syscalls [ver #2]") cf3cba4a429b ("vfs: syscall: Add fspick() to select a superblock for reconfiguration") 93766fbd2696 ("vfs: syscall: Add fsmount() to create a mount for a superblock") ecdab150fddb ("vfs: syscall: Add fsconfig() for configuring and managing a context") 24dcb3d90a1f ("vfs: syscall: Add fsopen() to prepare for superblock creation") 2db154b3ea8e ("vfs: syscall: Add move_mount(2) to move mounts around") a07b20004793 ("vfs: syscall: Add open_tree(2) to reference or clone a mount") We need to create tables for all the flags argument in the new syscalls, in followup patches. This silences these perf build warnings: Warning: Kernel ABI header at 'tools/include/uapi/linux/mount.h' differs from latest version at 'include/uapi/linux/mount.h' diff -u tools/include/uapi/linux/mount.h include/uapi/linux/mount.h Warning: Kernel ABI header at 'tools/perf/arch/x86/entry/syscalls/syscall_64.tbl' differs from latest version at 'arch/x86/entry/syscalls/syscall_64.tbl' diff -u tools/perf/arch/x86/entry/syscalls/syscall_64.tbl arch/x86/entry/syscalls/syscall_64.tbl Warning: Kernel ABI header at 'tools/include/uapi/asm-generic/unistd.h' differs from latest version at 'include/uapi/asm-generic/unistd.h' diff -u tools/include/uapi/asm-generic/unistd.h include/uapi/asm-generic/unistd.h Cc: Adrian Hunter Cc: Al Viro Cc: David Howells Cc: Jiri Olsa Cc: Luis Cláudio Gonçalves Cc: Namhyung Kim Cc: Wang Nan Link: https://lkml.kernel.org/n/tip-knpqr1u2ffvz6641056z2mwu@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit f95d050cdc5d34f9a4417e06c392ccbf146037bb Author: Vitaly Chikunov Date: Tue May 21 06:02:03 2019 +0300 perf arm64: Fix mksyscalltbl when system kernel headers are ahead of the kernel When a host system has kernel headers that are newer than a compiling kernel, mksyscalltbl fails with errors such as: : In function 'main': :271:44: error: '__NR_kexec_file_load' undeclared (first use in this function) :271:44: note: each undeclared identifier is reported only once for each function it appears in :272:46: error: '__NR_pidfd_send_signal' undeclared (first use in this function) :273:43: error: '__NR_io_uring_setup' undeclared (first use in this function) :274:43: error: '__NR_io_uring_enter' undeclared (first use in this function) :275:46: error: '__NR_io_uring_register' undeclared (first use in this function) tools/perf/arch/arm64/entry/syscalls//mksyscalltbl: line 48: /tmp/create-table-xvUQdD: Permission denied mksyscalltbl is compiled with default host includes, but run with compiling kernel tree includes, causing some syscall numbers to being undeclared. Committer testing: Before this patch, in my cross build environment, no build problems, but these new syscalls were not in the syscalls.c generated from the unistd.h file, which is a bug, this patch fixes it: perfbuilder@6e20056ed532:/git/perf$ tail /tmp/build/perf/arch/arm64/include/generated/asm/syscalls.c [292] = "io_pgetevents", [293] = "rseq", [294] = "kexec_file_load", [424] = "pidfd_send_signal", [425] = "io_uring_setup", [426] = "io_uring_enter", [427] = "io_uring_register", [428] = "syscalls", }; perfbuilder@6e20056ed532:/git/perf$ strings /tmp/build/perf/perf | egrep '^(io_uring_|pidfd_|kexec_file)' kexec_file_load pidfd_send_signal io_uring_setup io_uring_enter io_uring_register perfbuilder@6e20056ed532:/git/perf$ $ Well, there is that last "syscalls" thing, but that looks like some other bug. Signed-off-by: Vitaly Chikunov Tested-by: Arnaldo Carvalho de Melo Tested-by: Michael Petlan Cc: Alexander Shishkin Cc: Hendrik Brueckner Cc: Jiri Olsa Cc: Kim Phillips Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Ravi Bangoria Link: http://lkml.kernel.org/r/20190521030203.1447-1-vt@altlinux.org Signed-off-by: Arnaldo Carvalho de Melo commit 97acec7df172cd1e450f81f5e293c0aa145a2797 Author: Shawn Landden Date: Sat May 18 15:32:38 2019 -0300 perf data: Fix 'strncat may truncate' build failure with recent gcc This strncat() is safe because the buffer was allocated with zalloc(), however gcc doesn't know that. Since the string always has 4 non-null bytes, just use memcpy() here. CC /home/shawn/linux/tools/perf/util/data-convert-bt.o In file included from /usr/include/string.h:494, from /home/shawn/linux/tools/lib/traceevent/event-parse.h:27, from util/data-convert-bt.c:22: In function ‘strncat’, inlined from ‘string_set_value’ at util/data-convert-bt.c:274:4: /usr/include/powerpc64le-linux-gnu/bits/string_fortified.h:136:10: error: ‘__builtin_strncat’ output may be truncated copying 4 bytes from a string of length 4 [-Werror=stringop-truncation] 136 | return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Signed-off-by: Shawn Landden Cc: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Cc: Wang Nan LPU-Reference: 20190518183238.10954-1-shawn@git.icu Link: https://lkml.kernel.org/n/tip-289f1jice17ta7tr3tstm9jm@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit 00377277166bac6939d8f72b429301369acaf2d8 Author: Catalin Marinas Date: Tue May 28 12:39:34 2019 +0100 arm64: Fix the arm64_personality() syscall wrapper redirection Following commit 4378a7d4be30 ("arm64: implement syscall wrappers"), the syscall function names gained the '__arm64_' prefix. Ensure that we have the correct #define for redirecting a default syscall through a wrapper. Fixes: 4378a7d4be30 ("arm64: implement syscall wrappers") Cc: # 4.19.x- Acked-by: Mark Rutland Signed-off-by: Catalin Marinas Signed-off-by: Will Deacon commit 6aca09771db4277a78853d6ac680d8d5f0d915e3 Author: YueHaibing Date: Sat May 4 18:32:24 2019 +0800 rtw88: Make some symbols static Fix sparse warnings: drivers/net/wireless/realtek/rtw88/phy.c:851:4: warning: symbol 'rtw_cck_size' was not declared. Should it be static? drivers/net/wireless/realtek/rtw88/phy.c:852:4: warning: symbol 'rtw_ofdm_size' was not declared. Should it be static? drivers/net/wireless/realtek/rtw88/phy.c:853:4: warning: symbol 'rtw_ht_1s_size' was not declared. Should it be static? drivers/net/wireless/realtek/rtw88/phy.c:854:4: warning: symbol 'rtw_ht_2s_size' was not declared. Should it be static? drivers/net/wireless/realtek/rtw88/phy.c:855:4: warning: symbol 'rtw_vht_1s_size' was not declared. Should it be static? drivers/net/wireless/realtek/rtw88/phy.c:856:4: warning: symbol 'rtw_vht_2s_size' was not declared. Should it be static? drivers/net/wireless/realtek/rtw88/fw.c:11:6: warning: symbol 'rtw_fw_c2h_cmd_handle_ext' was not declared. Should it be static? drivers/net/wireless/realtek/rtw88/fw.c:50:6: warning: symbol 'rtw_fw_send_h2c_command' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing Signed-off-by: Kalle Valo commit 5b0efb4d670c8b53b25c166967efd2a02b309e05 Author: Stanislaw Gruszka Date: Fri May 3 14:29:07 2019 +0200 rtw88: avoid circular locking between local->iflist_mtx and rtwdev->mutex Remove circular lock dependency by using atomic version of interfaces iterate in watch_dog_work(), hence avoid taking local->iflist_mtx (rtw_vif_watch_dog_iter() only update some data, it can be called from atomic context). Fixes below LOCKDEP warning: [ 1157.219415] ====================================================== [ 1157.225772] [ INFO: possible circular locking dependency detected ] [ 1157.232150] 3.10.0-1043.el7.sgruszka1.x86_64.debug #1 Not tainted [ 1157.238346] ------------------------------------------------------- [ 1157.244635] kworker/u4:2/14490 is trying to acquire lock: [ 1157.250194] (&rtwdev->mutex){+.+.+.}, at: [] rtw_ops_config+0x2b/0x90 [rtw88] [ 1157.259151] but task is already holding lock: [ 1157.265085] (&local->iflist_mtx){+.+...}, at: [] ieee80211_mgd_probe_ap.part.28+0xca/0x160 [mac80211] [ 1157.276169] which lock already depends on the new lock. [ 1157.284488] the existing dependency chain (in reverse order) is: [ 1157.292101] -> #2 (&local->iflist_mtx){+.+...}: [ 1157.296919] [] lock_acquire+0x99/0x1e0 [ 1157.302955] [] mutex_lock_nested+0x93/0x410 [ 1157.309416] [] ieee80211_iterate_interfaces+0x2f/0x60 [mac80211] [ 1157.317730] [] rtw_watch_dog_work+0xcb/0x130 [rtw88] [ 1157.325003] [] process_one_work+0x22c/0x720 [ 1157.331481] [] worker_thread+0x126/0x3b0 [ 1157.337589] [] kthread+0xef/0x100 [ 1157.343260] [] ret_from_fork_nospec_end+0x0/0x39 [ 1157.350091] -> #1 ((&(&rtwdev->watch_dog_work)->work)){+.+...}: [ 1157.356314] [] lock_acquire+0x99/0x1e0 [ 1157.362427] [] flush_work+0x5b/0x310 [ 1157.368287] [] __cancel_work_timer+0xae/0x170 [ 1157.374940] [] cancel_delayed_work_sync+0x13/0x20 [ 1157.381930] [] rtw_core_stop+0x29/0x50 [rtw88] [ 1157.388679] [] rtw_enter_ips+0x16/0x20 [rtw88] [ 1157.395428] [] rtw_ops_config+0x42/0x90 [rtw88] [ 1157.402173] [] ieee80211_hw_config+0xc3/0x680 [mac80211] [ 1157.409854] [] ieee80211_do_open+0x69b/0x9c0 [mac80211] [ 1157.417418] [] ieee80211_open+0x69/0x70 [mac80211] [ 1157.424496] [] __dev_open+0xe2/0x160 [ 1157.430356] [] __dev_change_flags+0xa3/0x180 [ 1157.436922] [] dev_change_flags+0x29/0x60 [ 1157.443224] [] devinet_ioctl+0x794/0x890 [ 1157.449331] [] inet_ioctl+0x75/0xa0 [ 1157.455087] [] sock_do_ioctl+0x2b/0x60 [ 1157.461178] [] sock_ioctl+0x233/0x310 [ 1157.467109] [] do_vfs_ioctl+0x410/0x6c0 [ 1157.473233] [] SyS_ioctl+0xa1/0xc0 [ 1157.478914] [] system_call_fastpath+0x25/0x2a [ 1157.485569] -> #0 (&rtwdev->mutex){+.+.+.}: [ 1157.490022] [] __lock_acquire+0xec1/0x1630 [ 1157.496305] [] lock_acquire+0x99/0x1e0 [ 1157.502413] [] mutex_lock_nested+0x93/0x410 [ 1157.508890] [] rtw_ops_config+0x2b/0x90 [rtw88] [ 1157.515724] [] ieee80211_hw_config+0xc3/0x680 [mac80211] [ 1157.523370] [] ieee80211_recalc_ps.part.27+0x9a/0x180 [mac80211] [ 1157.531685] [] ieee80211_mgd_probe_ap.part.28+0x115/0x160 [mac80211] [ 1157.540353] [] ieee80211_beacon_connection_loss_work+0x4d/0x80 [mac80211] [ 1157.549513] [] process_one_work+0x22c/0x720 [ 1157.555886] [] worker_thread+0x126/0x3b0 [ 1157.562170] [] kthread+0xef/0x100 [ 1157.567765] [] ret_from_fork_nospec_end+0x0/0x39 [ 1157.574579] other info that might help us debug this: [ 1157.582788] Chain exists of: &rtwdev->mutex --> (&(&rtwdev->watch_dog_work)->work) --> &local->iflist_mtx [ 1157.593024] Possible unsafe locking scenario: [ 1157.599046] CPU0 CPU1 [ 1157.603653] ---- ---- [ 1157.608258] lock(&local->iflist_mtx); [ 1157.612180] lock((&(&rtwdev->watch_dog_work)->work)); [ 1157.620074] lock(&local->iflist_mtx); [ 1157.626555] lock(&rtwdev->mutex); [ 1157.630124] *** DEADLOCK *** [ 1157.636148] 4 locks held by kworker/u4:2/14490: [ 1157.640755] #0: (%s#6){.+.+.+}, at: [] process_one_work+0x1ba/0x720 [ 1157.648965] #1: ((&ifmgd->beacon_connection_loss_work)){+.+.+.}, at: [] process_one_work+0x1ba/0x720 [ 1157.659950] #2: (&wdev->mtx){+.+.+.}, at: [] ieee80211_mgd_probe_ap.part.28+0x25/0x160 [mac80211] [ 1157.670901] #3: (&local->iflist_mtx){+.+...}, at: [] ieee80211_mgd_probe_ap.part.28+0xca/0x160 [mac80211] [ 1157.682466] Fixes: e3037485c68e ("rtw88: new Realtek 802.11ac driver") Signed-off-by: Stanislaw Gruszka Acked-by: Yan-Hsuan Chuang Signed-off-by: Kalle Valo commit f57b5d85ed5865f0cd0a6dc4726c995b9e57e28a Author: Nathan Chancellor Date: Thu May 23 08:30:08 2019 -0700 rsi: Properly initialize data in rsi_sdio_ta_reset When building with -Wuninitialized, Clang warns: drivers/net/wireless/rsi/rsi_91x_sdio.c:940:43: warning: variable 'data' is uninitialized when used here [-Wuninitialized] put_unaligned_le32(TA_HOLD_THREAD_VALUE, data); ^~~~ drivers/net/wireless/rsi/rsi_91x_sdio.c:930:10: note: initialize the variable 'data' to silence this warning u8 *data; ^ = NULL 1 warning generated. Using Clang's suggestion of initializing data to NULL wouldn't work out because data will be dereferenced by put_unaligned_le32. Use kzalloc to properly initialize data, which matches a couple of other places in this driver. Fixes: e5a1ecc97e5f ("rsi: add firmware loading for 9116 device") Link: https://github.com/ClangBuiltLinux/linux/issues/464 Signed-off-by: Nathan Chancellor Signed-off-by: Kalle Valo commit a24bad74737f4c8814e0669d38dba5f2ddb86514 Author: Yan-Hsuan Chuang Date: Tue May 7 10:28:18 2019 +0800 rtw88: fix unassigned rssi_level in rtw_sta_info The new rssi_level should be stored in si, otherwise the rssi_level will never be updated and get a wrong RA mask, which is calculated by the rssi level If a wrong RA mask is chosen, the firmware will pick some *bad rates*. The most hurtful scene will be in *noisy environment*, such as office or public area with many APs and users. The latency would be high and the overall throughput would be only half or less. Tested in 2.4G in office area, with this patch the throughput increased from such as "1x Mbps -> 4x Mbps". Signed-off-by: Yan-Hsuan Chuang Signed-off-by: Kalle Valo commit 8a03447dd311da2ad2df74dcf730a1a15f673379 Author: Stanislaw Gruszka Date: Mon May 6 09:39:17 2019 +0200 rtw88: fix subscript above array bounds compiler warning My compiler complains about: drivers/net/wireless/realtek/rtw88/phy.c: In function ‘rtw_phy_rf_power_2_rssi’: drivers/net/wireless/realtek/rtw88/phy.c:430:26: warning: array subscript is above array bounds [-Warray-bounds] linear = db_invert_table[i][j]; According to comment power_db should be in range 1 ~ 96 . To fix add check for boundaries before access the array. Signed-off-by: Stanislaw Gruszka Acked-by: Yan-Hsuan Chuang Signed-off-by: Kalle Valo commit 26eb3bae5003585806124c880bba5bef82c80a23 Author: Miklos Szeredi Date: Tue May 28 13:22:50 2019 +0200 fuse: extract helper for range writeback The fuse_writeback_range() helper flushes dirty data to the userspace filesystem. When the function returns, the WRITE requests for the data in the given range have all been completed. This is not equivalent to fsync() on the given range, since the userspace filesystem may not yet have the data on stable storage. Signed-off-by: Miklos Szeredi commit a2bc92362941006830afa3dfad6caec1f99acbf5 Author: Miklos Szeredi Date: Tue May 28 13:22:50 2019 +0200 fuse: fix copy_file_range() in the writeback case Prior to sending COPY_FILE_RANGE to userspace filesystem, we must flush all dirty pages in both the source and destination files. This patch adds the missing flush of the source file. Tested on libfuse-3.5.0 with: libfuse/example/passthrough_ll /mnt/fuse/ -o writeback libfuse/test/test_syscalls /mnt/fuse/tmp/test Fixes: 88bc7d5097a1 ("fuse: add support for copy_file_range()") Cc: # v4.20 Signed-off-by: Miklos Szeredi commit c2c1e63a80d6e9bb9981fc958cd2dac5346212be Author: Jerome Brunet Date: Thu May 23 16:59:50 2019 +0200 mmc: meson-gx: fix irq ack While cleaning the ISR of the meson-gx and acking only raised irqs, the ack of the irq was moved at the very last stage of the function. This was stable during the initial tests but it triggered issues with hs200, under specific loads (like booting android). Acking the irqs after calling the mmc_request_done() causes the problem. Moving the ack back to the original place solves the issue. Since the irq is edge triggered, it does not hurt to ack irq even earlier, so let's do it early in the ISR. Fixes: 9c5fdb07a28d ("mmc: meson-gx: ack only raised irq") Tested-by: Neil Armstrong Tested-by: Kevin Hilman Signed-off-by: Jerome Brunet Reviewed-by: Kevin Hilman Tested-by: Brad Harper Signed-off-by: Ulf Hansson commit 51b72656bb39fdcb8f3174f4007bcc83ad1d275f Author: Takeshi Saito Date: Wed May 15 20:23:46 2019 +0200 mmc: tmio: fix SCC error handling to avoid false positive CRC error If an SCC error occurs during a read/write command execution, a false positive CRC error message is output. mmcblk0: response CRC error sending r/w cmd command, card status 0x900 check_scc_error() checks SCC_RVSREQ.RVSERR bit. RVSERR detects a correction error in the next (up or down) delay tap position. However, since the command is successful, only retuning needs to be executed. This has been confirmed by HW engineers. Thus, on SCC error, set retuning flag instead of setting an error code. Fixes: b85fb0a1c8ae ("mmc: tmio: Fix SCC error detection") Signed-off-by: Takeshi Saito [wsa: updated comment and commit message, removed some braces] Signed-off-by: Wolfram Sang Reviewed-by: Simon Horman Reviewed-by: Yoshihiro Shimoda Cc: stable@vger.kernel.org Signed-off-by: Ulf Hansson commit d96dc68e9890b121665bfe44599c98ada044a523 Author: Dan Carpenter Date: Wed May 15 12:35:14 2019 +0300 mmc: tegra: Fix a warning message The WARN_ON() macro takes a condition, not a warning message. I've changed this to use WARN(1, "msg... Fixes: ea8fc5953e8b ("mmc: tegra: update hw tuning process") Signed-off-by: Dan Carpenter Signed-off-by: Ulf Hansson commit 61009f82a93f7c0b33cd9b3b263a6ab48f8b49d4 Author: Dan Carpenter Date: Fri May 10 14:24:41 2019 +0300 memstick: mspro_block: Fix an error code in mspro_block_issue_req() We accidentally changed the error code from -EAGAIN to 1 when we did the blk-mq conversion. Maybe a contributing factor to this mistake is that it wasn't obvious that the "while (chunk) {" condition is always true. I have cleaned that up as well. Fixes: d0be12274dad ("mspro_block: convert to blk-mq") Cc: stable@vger.kernel.org Signed-off-by: Dan Carpenter Signed-off-by: Ulf Hansson commit 551842446ed695641a00782cd118cbb064a416a1 Author: Thomas Pedersen Date: Fri May 24 21:16:24 2019 -0700 mac80211: mesh: fix RCU warning ifmsh->csa is an RCU-protected pointer. The writer context in ieee80211_mesh_finish_csa() is already mutually exclusive with wdev->sdata.mtx, but the RCU checker did not know this. Use rcu_dereference_protected() to avoid a warning. fixes the following warning: [ 12.519089] ============================= [ 12.520042] WARNING: suspicious RCU usage [ 12.520652] 5.1.0-rc7-wt+ #16 Tainted: G W [ 12.521409] ----------------------------- [ 12.521972] net/mac80211/mesh.c:1223 suspicious rcu_dereference_check() usage! [ 12.522928] other info that might help us debug this: [ 12.523984] rcu_scheduler_active = 2, debug_locks = 1 [ 12.524855] 5 locks held by kworker/u8:2/152: [ 12.525438] #0: 00000000057be08c ((wq_completion)phy0){+.+.}, at: process_one_work+0x1a2/0x620 [ 12.526607] #1: 0000000059c6b07a ((work_completion)(&sdata->csa_finalize_work)){+.+.}, at: process_one_work+0x1a2/0x620 [ 12.528001] #2: 00000000f184ba7d (&wdev->mtx){+.+.}, at: ieee80211_csa_finalize_work+0x2f/0x90 [ 12.529116] #3: 00000000831a1f54 (&local->mtx){+.+.}, at: ieee80211_csa_finalize_work+0x47/0x90 [ 12.530233] #4: 00000000fd06f988 (&local->chanctx_mtx){+.+.}, at: ieee80211_csa_finalize_work+0x51/0x90 Signed-off-by: Thomas Pedersen Signed-off-by: Johannes Berg commit f77bf4863dc2218362f4227d56af4a5f3f08830c Author: Andy Strohman Date: Fri May 24 23:27:29 2019 -0700 nl80211: fix station_info pertid memory leak When dumping stations, memory allocated for station_info's pertid member will leak if the nl80211 header cannot be added to the sk_buff due to insufficient tail room. I noticed this leak in the kmalloc-2048 cache. Cc: stable@vger.kernel.org Fixes: 8689c051a201 ("cfg80211: dynamically allocate per-tid stats for station info") Signed-off-by: Andy Strohman Signed-off-by: Johannes Berg commit a71fd9dac23613d96ba3c05619a8ef4fd6cdf9b9 Author: Jouni Malinen Date: Tue May 28 01:46:43 2019 +0300 mac80211: Do not use stack memory with scatterlist for GMAC ieee80211_aes_gmac() uses the mic argument directly in sg_set_buf() and that does not allow use of stack memory (e.g., BUG_ON() is hit in sg_set_buf() with CONFIG_DEBUG_SG). BIP GMAC TX side is fine for this since it can use the skb data buffer, but the RX side was using a stack variable for deriving the local MIC value to compare against the received one. Fix this by allocating heap memory for the mic buffer. This was found with hwsim test case ap_cipher_bip_gmac_128 hitting that BUG_ON() and kernel panic. Cc: stable@vger.kernel.org Signed-off-by: Jouni Malinen Signed-off-by: Johannes Berg commit 0b074ab7fc0d575247b9cc9f93bb7e007ca38840 Author: Takashi Iwai Date: Tue May 28 08:39:44 2019 +0200 ALSA: line6: Assure canceling delayed work at disconnection The current code performs the cancel of a delayed work at the late stage of disconnection procedure, which may lead to the access to the already cleared state. This patch assures to call cancel_delayed_work_sync() at the beginning of the disconnection procedure for avoiding that race. The delayed work object is now assigned in the common line6 object instead of its derivative, so that we can call cancel_delayed_work_sync(). Along with the change, the startup function is called via the new callback instead. This will make it easier to port other LINE6 drivers to use the delayed work for startup in later patches. Reported-by: syzbot+5255458d5e0a2b10bbb9@syzkaller.appspotmail.com Fixes: 7f84ff68be05 ("ALSA: line6: toneport: Fix broken usage of timer for delayed execution") Cc: Signed-off-by: Takashi Iwai commit f6122ed2a4f9c9c1c073ddf6308d1b2ac10e0781 Author: Sahitya Tummala Date: Thu Jan 3 16:48:15 2019 +0530 configfs: Fix use-after-free when accessing sd->s_dentry In the vfs_statx() context, during path lookup, the dentry gets added to sd->s_dentry via configfs_attach_attr(). In the end, vfs_statx() kills the dentry by calling path_put(), which invokes configfs_d_iput(). Ideally, this dentry must be removed from sd->s_dentry but it doesn't if the sd->s_count >= 3. As a result, sd->s_dentry is holding reference to a stale dentry pointer whose memory is already freed up. This results in use-after-free issue, when this stale sd->s_dentry is accessed later in configfs_readdir() path. This issue can be easily reproduced, by running the LTP test case - sh fs_racer_file_list.sh /config (https://github.com/linux-test-project/ltp/blob/master/testcases/kernel/fs/racer/fs_racer_file_list.sh) Fixes: 76ae281f6307 ('configfs: fix race between dentry put and lookup') Signed-off-by: Sahitya Tummala Signed-off-by: Christoph Hellwig commit fa763f1b2858752e6150ffff46886a1b7faffc82 Author: Bard Liao Date: Mon May 27 00:58:32 2019 +0800 ALSA: hda - Force polling mode on CNL for fixing codec communication We observed the same issue as reported by commit a8d7bde23e7130686b7662 ("ALSA: hda - Force polling mode on CFL for fixing codec communication") We don't have a better solution. So apply the same workaround to CNL. Signed-off-by: Bard Liao Signed-off-by: Takashi Iwai commit ff9378904d9d7a3fcb8406604e089e535e357b1d Author: Masahisa Kojima Date: Tue May 21 10:33:50 2019 +0900 i2c: synquacer: fix synquacer_i2c_doxfer() return value master_xfer should return the number of messages successfully processed. Fixes: 0d676a6c4390 ("i2c: add support for Socionext SynQuacer I2C controller") Cc: # v4.19+ Signed-off-by: Okamoto Satoru Signed-off-by: Masahisa Kojima Acked-by: Ard Biesheuvel Signed-off-by: Wolfram Sang commit 13067ef73f337336e3149f5bb9f3fd05fe7f87a0 Author: Vadim Pasternak Date: Thu May 16 17:15:41 2019 +0000 i2c: mlxcpld: Fix wrong initialization order in probe Fix wrong order in probing routine initialization - field `base_addr' is used before it's initialized. Move assignment of 'priv->base_addr` to the beginning, prior the call to mlxcpld_i2c_read_comm(). Wrong order caused the first read of capability register to be executed at wrong offset 0x0 instead of 0x2000. By chance it was a "good garbage" at 0x0 offset. Fixes: 313ce648b5a4 ("i2c: mlxcpld: Add support for extended transaction length for i2c-mlxcpld") Signed-off-by: Vadim Pasternak Signed-off-by: Wolfram Sang Cc: stable@kernel.org commit a0692f0eef91354b62c2b4c94954536536be5425 Author: Yingjoe Chen Date: Tue May 7 22:20:32 2019 +0800 i2c: dev: fix potential memory leak in i2cdev_ioctl_rdwr If I2C_M_RECV_LEN check failed, msgs[i].buf allocated by memdup_user will not be freed. Pump index up so it will be freed. Fixes: 838bfa6049fb ("i2c-dev: Add support for I2C_M_RECV_LEN") Signed-off-by: Yingjoe Chen Signed-off-by: Wolfram Sang commit 46bdf370f671c90573e8b683d9a14bb335057a36 Author: Kamal Heib Date: Thu May 23 10:12:51 2019 +0300 RDMA/core: Fix panic when port_data isn't initialized This happens if assign_name() returns failure when called from ib_register_device(), that will lead to the following panic in every time that someone touches the port_data's data members. BUG: unable to handle kernel NULL pointer dereference at 00000000000000c0 PGD 0 P4D 0 Oops: 0002 [#1] SMP PTI CPU: 19 PID: 1994 Comm: systemd-udevd Not tainted 5.1.0-rc5+ #1 Hardware name: HP ProLiant DL360p Gen8, BIOS P71 12/20/2013 RIP: 0010:_raw_spin_lock_irqsave+0x1e/0x40 Code: 85 ff 66 2e 0f 1f 84 00 00 00 00 00 66 66 66 66 90 53 9c 58 66 66 90 66 90 48 89 c3 fa 66 66 90 66 66 90 31 c0 ba 01 00 00 00 0f b1 17 0f 94 c2 84 d2 74 05 48 89 d8 5b c3 89 c6 e8 b4 85 8a RSP: 0018:ffffa8d7079a7c08 EFLAGS: 00010046 RAX: 0000000000000000 RBX: 0000000000000202 RCX: ffffa8d7079a7bf8 RDX: 0000000000000001 RSI: ffff93607c990000 RDI: 00000000000000c0 RBP: 0000000000000001 R08: 0000000000000000 R09: ffffffffc08c4dd8 R10: 0000000000000000 R11: 0000000000000001 R12: 00000000000000c0 R13: ffff93607c990000 R14: ffffffffc05a9740 R15: ffffa8d7079a7e98 FS: 00007f1c6ee438c0(0000) GS:ffff93609f6c0000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00000000000000c0 CR3: 0000000819fca002 CR4: 00000000000606e0 Call Trace: free_netdevs+0x4d/0xe0 [ib_core] ib_dealloc_device+0x51/0xb0 [ib_core] __mlx5_ib_add+0x5e/0x70 [mlx5_ib] mlx5_add_device+0x57/0xe0 [mlx5_core] mlx5_register_interface+0x85/0xc0 [mlx5_core] ? 0xffffffffc0474000 do_one_initcall+0x4e/0x1d4 ? _cond_resched+0x15/0x30 ? kmem_cache_alloc_trace+0x15f/0x1c0 do_init_module+0x5a/0x218 load_module+0x186b/0x1e40 ? m_show+0x1c0/0x1c0 __do_sys_finit_module+0x94/0xe0 do_syscall_64+0x5b/0x180 entry_SYSCALL_64_after_hwframe+0x44/0xa9 Fixes: 8ceb1357b337 ("RDMA/device: Consolidate ib_device per_port data into one place") Signed-off-by: Kamal Heib Signed-off-by: Jason Gunthorpe commit 6876aaedc8a11ed182aba1942dac44e9940bfe6c Author: Gal Pressman Date: Wed May 22 11:06:43 2019 +0300 RDMA/uverbs: Pass udata on uverbs error unwind When destroy_* is called as a result of uverbs create cleanup flow a cleared udata should be passed instead of NULL to indicate that it is called under user flow. Fixes: c4367a26357b ("IB: Pass uverbs_attr_bundle down ib_x destroy path") Signed-off-by: Gal Pressman Signed-off-by: Jason Gunthorpe commit 6875cb175ca7e0c24aa4460ac2b3257fdf662832 Author: Jason Gunthorpe Date: Tue May 21 17:55:22 2019 +0000 RDMA/core: Clear out the udata before error unwind The core code should not pass a udata to the driver destroy function that contains the input from the create command. Otherwise the driver will attempt to interpret the create udata as destroy udata, and at least in the case of EFA, will leak resources. Zero this stuff out before invoking destroy. Reported-by: Leon Romanovsky Fixes: c4367a26357b ("IB: Pass uverbs_attr_bundle down ib_x destroy path") Reviewed-by: Gal Pressman Signed-off-by: Jason Gunthorpe commit c3cf73c7a2c6f278cf5be380c753c129fa03bb2b Merge: 3e66b7cc50ef 76f254d4afe2 Author: David S. Miller Date: Mon May 27 10:24:14 2019 -0700 Merge branch 'aquantia-fixes' Igor Russkikh says: ==================== net: aquantia: various fixes May, 2019 Here is a set of various bug fixes found on recent verification stage. ==================== Signed-off-by: David S. Miller commit 76f254d4afe2f9c5860922d5304821b4ef05b712 Author: Nikita Danilov Date: Sat May 25 09:58:05 2019 +0000 net: aquantia: tcp checksum 0xffff being handled incorrectly Thats a known quirk in windows tcp stack it can produce 0xffff checksum. Thats incorrect but it is. Atlantic HW with LRO enabled handles that incorrectly and changes csum to 0xfffe - but indicates that csum is invalid. This causes driver to pass packet to linux networking stack with CSUM_NONE, stack eventually drops the packet. There is a quirk in atlantic HW to enable correct processing of 0xffff incorrect csum. Enable it. The visible bug is that windows link partner with software generated csums caused TCP connection to be unstable since all packets that csum value are dropped. Reported-by: Dmitry Bezrukov Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit eaeb3b7494ba9159323814a8ce8af06a9277d99b Author: Dmitry Bogdanov Date: Sat May 25 09:58:03 2019 +0000 net: aquantia: fix LRO with FCS error Driver stops producing skbs on ring if a packet with FCS error was coalesced into LRO session. Ring gets hang forever. Thats a logical error in driver processing descriptors: When rx_stat indicates MAC Error, next pointer and eop flags are not filled. This confuses driver so it waits for descriptor 0 to be filled by HW. Solution is fill next pointer and eop flag even for packets with FCS error. Fixes: bab6de8fd180b ("net: ethernet: aquantia: Atlantic A0 and B0 specific functions.") Signed-off-by: Igor Russkikh Signed-off-by: Dmitry Bogdanov Signed-off-by: David S. Miller commit f38f1ee8aeb2c19f65fc29de49bed231a868198c Author: Dmitry Bogdanov Date: Sat May 25 09:58:01 2019 +0000 net: aquantia: check rx csum for all packets in LRO session Atlantic hardware does not aggregate nor breaks LRO sessions with bad csum packets. This means driver should take care of that. If in LRO session there is a non-first descriptor with invalid checksum (L2/L3/L4), the driver must account this information in csum application logic. Fixes: 018423e90bee8 ("net: ethernet: aquantia: Add ring support code") Signed-off-by: Igor Russkikh Signed-off-by: Dmitry Bogdanov Signed-off-by: David S. Miller commit 31bafc49a7736989e4c2d9f7280002c66536e590 Author: Igor Russkikh Date: Sat May 25 09:57:59 2019 +0000 net: aquantia: tx clean budget logic error In case no other traffic happening on the ring, full tx cleanup may not be completed. That may cause socket buffer to overflow and tx traffic to stuck until next activity on the ring happens. This is due to logic error in budget variable decrementor. Variable is compared with zero, and then post decremented, causing it to become MAX_INT. Solution is remove decrementor from the `for` statement and rewrite it in a clear way. Fixes: b647d3980948e ("net: aquantia: Add tx clean budget and valid budget handling logic") Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit c1ea02f15ab5efb3e93fc3144d895410bf79fcf2 Author: Jason Wang Date: Fri May 17 00:29:52 2019 -0400 vhost: scsi: add weight support This patch will check the weight and exit the loop if we exceeds the weight. This is useful for preventing scsi kthread from hogging cpu which is guest triggerable. This addresses CVE-2019-3900. Cc: Paolo Bonzini Cc: Stefan Hajnoczi Fixes: 057cbf49a1f0 ("tcm_vhost: Initial merge for vhost level target fabric driver") Signed-off-by: Jason Wang Reviewed-by: Stefan Hajnoczi Signed-off-by: Michael S. Tsirkin Reviewed-by: Stefan Hajnoczi commit e79b431fb901ba1106670bcc80b9b617b25def7d Author: Jason Wang Date: Fri May 17 00:29:51 2019 -0400 vhost: vsock: add weight support This patch will check the weight and exit the loop if we exceeds the weight. This is useful for preventing vsock kthread from hogging cpu which is guest triggerable. The weight can help to avoid starving the request from on direction while another direction is being processed. The value of weight is picked from vhost-net. This addresses CVE-2019-3900. Cc: Stefan Hajnoczi Fixes: 433fc58e6bf2 ("VSOCK: Introduce vhost_vsock.ko") Signed-off-by: Jason Wang Reviewed-by: Stefan Hajnoczi Signed-off-by: Michael S. Tsirkin commit e2412c07f8f3040593dfb88207865a3cd58680c0 Author: Jason Wang Date: Fri May 17 00:29:50 2019 -0400 vhost_net: fix possible infinite loop When the rx buffer is too small for a packet, we will discard the vq descriptor and retry it for the next packet: while ((sock_len = vhost_net_rx_peek_head_len(net, sock->sk, &busyloop_intr))) { ... /* On overrun, truncate and discard */ if (unlikely(headcount > UIO_MAXIOV)) { iov_iter_init(&msg.msg_iter, READ, vq->iov, 1, 1); err = sock->ops->recvmsg(sock, &msg, 1, MSG_DONTWAIT | MSG_TRUNC); pr_debug("Discarded rx packet: len %zd\n", sock_len); continue; } ... } This makes it possible to trigger a infinite while..continue loop through the co-opreation of two VMs like: 1) Malicious VM1 allocate 1 byte rx buffer and try to slow down the vhost process as much as possible e.g using indirect descriptors or other. 2) Malicious VM2 generate packets to VM1 as fast as possible Fixing this by checking against weight at the end of RX and TX loop. This also eliminate other similar cases when: - userspace is consuming the packets in the meanwhile - theoretical TOCTOU attack if guest moving avail index back and forth to hit the continue after vhost find guest just add new buffers This addresses CVE-2019-3900. Fixes: d8316f3991d20 ("vhost: fix total length when packets are too short") Fixes: 3a4d5c94e9593 ("vhost_net: a kernel-level virtio server") Signed-off-by: Jason Wang Reviewed-by: Stefan Hajnoczi Signed-off-by: Michael S. Tsirkin commit e82b9b0727ff6d665fff2d326162b460dded554d Author: Jason Wang Date: Fri May 17 00:29:49 2019 -0400 vhost: introduce vhost_exceeds_weight() We used to have vhost_exceeds_weight() for vhost-net to: - prevent vhost kthread from hogging the cpu - balance the time spent between TX and RX This function could be useful for vsock and scsi as well. So move it to vhost.c. Device must specify a weight which counts the number of requests, or it can also specific a byte_weight which counts the number of bytes that has been processed. Signed-off-by: Jason Wang Reviewed-by: Stefan Hajnoczi Signed-off-by: Michael S. Tsirkin commit 6166e5330c3828699859a6ec1af21eef7c58778c Author: Fabrizio Castro Date: Wed Apr 3 16:04:09 2019 +0100 virtio: Fix indentation of VIRTIO_MMIO VIRTIO_MMIO config option block starts with a space, fix that. Signed-off-by: Fabrizio Castro Signed-off-by: Michael S. Tsirkin commit 3d840e0636be64502f1d3da2e077dab390c04091 Author: Igor Stoppa Date: Fri Sep 7 20:48:02 2018 +0300 virtio: add unlikely() to WARN_ON_ONCE() The condition to test is unlikely() to be true. Add the hint. Signed-off-by: Igor Stoppa Cc: "Michael S. Tsirkin" Cc: Jason Wang Cc: Virtualization@lists.linux-foundation.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Michael S. Tsirkin commit 66d78ad316b0e1ca5ae19663468554e2c0e31c26 Author: Lu Baolu Date: Tue May 21 15:30:16 2019 +0800 iommu/vt-d: Set the right field for Page Walk Snoop Set the page walk snoop to the right bit, otherwise the domain id field will be overlapped. Reported-by: Dave Jiang Fixes: 6f7db75e1c469 ("iommu/vt-d: Add second level page table interface") Signed-off-by: Lu Baolu Signed-off-by: Joerg Roedel commit 7560cc3ca7d9d11555f80c830544e463fcdb28b8 Author: Dave Jiang Date: Tue May 21 15:30:15 2019 +0800 iommu/vt-d: Fix lock inversion between iommu->lock and device_domain_lock Lockdep debug reported lock inversion related with the iommu code caused by dmar_insert_one_dev_info() grabbing the iommu->lock and the device_domain_lock out of order versus the code path in iommu_flush_dev_iotlb(). Expanding the scope of the iommu->lock and reversing the order of lock acquisition fixes the issue. [ 76.238180] dsa_bus wq0.0: dsa wq wq0.0 disabled [ 76.248706] [ 76.250486] ======================================================== [ 76.257113] WARNING: possible irq lock inversion dependency detected [ 76.263736] 5.1.0-rc5+ #162 Not tainted [ 76.267854] -------------------------------------------------------- [ 76.274485] systemd-journal/521 just changed the state of lock: [ 76.280685] 0000000055b330f5 (device_domain_lock){..-.}, at: iommu_flush_dev_iotlb.part.63+0x29/0x90 [ 76.290099] but this lock took another, SOFTIRQ-unsafe lock in the past: [ 76.297093] (&(&iommu->lock)->rlock){+.+.} [ 76.297094] [ 76.297094] [ 76.297094] and interrupts could create inverse lock ordering between them. [ 76.297094] [ 76.314257] [ 76.314257] other info that might help us debug this: [ 76.321448] Possible interrupt unsafe locking scenario: [ 76.321448] [ 76.328907] CPU0 CPU1 [ 76.333777] ---- ---- [ 76.338642] lock(&(&iommu->lock)->rlock); [ 76.343165] local_irq_disable(); [ 76.349422] lock(device_domain_lock); [ 76.356116] lock(&(&iommu->lock)->rlock); [ 76.363154] [ 76.366134] lock(device_domain_lock); [ 76.370548] [ 76.370548] *** DEADLOCK *** Fixes: 745f2586e78e ("iommu/vt-d: Simplify function get_domain_for_dev()") Signed-off-by: Dave Jiang Reviewed-by: Lu Baolu Signed-off-by: Joerg Roedel commit 24f307d8abf79486dd3c1b645037df7d91602aaa Author: Lu Baolu Date: Fri May 24 14:30:56 2019 +0800 iommu: Add missing new line for dma type So that all types are printed in the same format. Fixes: c52c72d3dee81 ("iommu: Add sysfs attribyte for domain type") Signed-off-by: Lu Baolu Signed-off-by: Joerg Roedel commit 1396500d673bd027683a0609ff84dca7eb6ea2e7 Author: Lucas Stach Date: Tue May 21 14:53:40 2019 +0200 drm/etnaviv: lock MMU while dumping core The devcoredump needs to operate on a stable state of the MMU while it is writing the MMU state to the coredump. The missing lock allowed both the userspace submit, as well as the GPU job finish paths to mutate the MMU state while a coredump is under way. Fixes: a8c21a5451d8 (drm/etnaviv: add initial etnaviv DRM driver) Reported-by: David Jander Signed-off-by: Lucas Stach Tested-by: David Jander Reviewed-by: Philipp Zabel commit 31cb1d64da4ebd214348cad9d86e663c831c45fc Author: Jan Kara Date: Wed May 15 08:57:40 2019 +0200 block: Don't revalidate bdev of hidden gendisk When hidden gendisk is revalidated, there's no point in revalidating associated block device as there's none. We would thus just create new bdev inode, report "detected capacity change from 0 to XXX" message and evict the bdev inode again. Avoid this pointless dance and confusing message in the kernel log. Reviewed-by: Hannes Reinecke Reviewed-by: Christoph Hellwig Signed-off-by: Jan Kara Signed-off-by: Jens Axboe commit 33ec3e53e7b1869d7851e59e126bdb0fe0bd1982 Author: Jan Kara Date: Thu May 16 16:01:27 2019 +0200 loop: Don't change loop device under exclusive opener Loop module allows calling LOOP_SET_FD while there are other openers of the loop device. Even exclusive ones. This can lead to weird consequences such as kernel deadlocks like: mount_bdev() lo_ioctl() udf_fill_super() udf_load_vrs() sb_set_blocksize() - sets desired block size B udf_tread() sb_bread() __bread_gfp(bdev, block, B) loop_set_fd() set_blocksize() - now __getblk_slow() indefinitely loops because B != bdev block size Fix the problem by disallowing LOOP_SET_FD ioctl when there are exclusive openers of a loop device. [Deliberately chosen not to CC stable as a user with priviledges to trigger this race has other means of taking the system down and this has a potential of breaking some weird userspace setup] Reported-and-tested-by: syzbot+10007d66ca02b08f0e60@syzkaller.appspotmail.com Signed-off-by: Jan Kara Signed-off-by: Jens Axboe commit 137caa702f2308f7ef03876e164b0d0f3300712a Author: Philipp Zabel Date: Thu May 9 11:01:39 2019 +0200 drm/imx: ipuv3-plane: fix atomic update status query for non-plus i.MX6Q The current buffer check halves the frame rate on non-plus i.MX6Q, as the IDMAC current buffer pointer is not yet updated when ipu_plane_atomic_update_pending is called from the EOF irq handler. Fixes: 70e8a0c71e9 ("drm/imx: ipuv3-plane: add function to query atomic update status") Tested-by: Marco Felsch Signed-off-by: Philipp Zabel Cc: stable@vger.kernel.org commit 95b74ce88943747fff0a3a8a6f04eecbe7b1c3ce Author: Gerd Hoffmann Date: Fri May 24 12:42:50 2019 +0200 drm/qxl: drop WARN_ONCE() There is no good reason to flood the kernel log with a WARN stacktrace just because someone tried to mmap a prime buffer. Signed-off-by: Gerd Hoffmann Reviewed-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/20190524104251.22761-1-kraxel@redhat.com commit 389fc70b60f534d679aea9a3f05146040ce20d77 Author: Crt Mori Date: Thu May 23 14:07:22 2019 +0200 iio: temperature: mlx90632 Relax the compatibility check Register EE_VERSION contains mixture of calibration information and DSP version. So far, because calibrations were definite, the driver compatibility depended on whole contents, but in the newer production process the calibration part changes. Because of that, value in EE_VERSION will be changed and to avoid that calibration value is same as DSP version the MSB in calibration part was fixed to 1. That means existing calibrations (medical and consumer) will now have hex values (bits 8 to 15) of 83 and 84 respectively. Driver compatibility should be based only on DSP version part of the EE_VERSION (bits 0 to 7) register. Signed-off-by: Crt Mori Cc: Signed-off-by: Jonathan Cameron commit bce0d57db388cdb1c1931d0aa7d31c77b590e0f0 Author: Lorenzo Bianconi Date: Sun May 19 10:58:23 2019 +0200 iio: imu: st_lsm6dsx: fix PM support for st_lsm6dsx i2c controller Properly suspend/resume i2c slaves connected to st_lsm6dsx master controller if the CPU goes in suspended state Fixes: c91c1c844ebd ("imu: st_lsm6dsx: add i2c embedded controller support") Signed-off-by: Lorenzo Bianconi Cc: Signed-off-by: Jonathan Cameron commit df4d737ee4d7205aaa6275158aeebff87fd14488 Author: Melissa Wen Date: Sat May 18 22:04:56 2019 -0300 staging:iio:ad7150: fix threshold mode config bit According to the AD7150 configuration register description, bit 7 assumes value 1 when the threshold mode is fixed and 0 when it is adaptive, however, the operation that identifies this mode was considering the opposite values. This patch renames the boolean variable to describe it correctly and properly replaces it in the places where it is used. Fixes: 531efd6aa0991 ("staging:iio:adc:ad7150: chan_spec conv + i2c_smbus commands + drop unused poweroff timeout control.") Signed-off-by: Melissa Wen Signed-off-by: Jonathan Cameron commit 4a2abf99f9c2877039006b8dfb3ec4e0d1278fe8 Author: Miklos Szeredi Date: Mon May 27 09:08:12 2019 +0200 fuse: add FUSE_WRITE_KILL_PRIV In the FOPEN_DIRECT_IO case the write path doesn't call file_remove_privs() and that means setuid bit is not cleared if unpriviliged user writes to a file with setuid bit set. pjdfstest chmod test 12.t tests this and fails. Fix this by adding a flag to the FUSE_WRITE message that requests clearing privileges on the given file. This needs This better than just calling fuse_remove_privs(), because the attributes may not be up to date, so in that case a write may miss clearing the privileges. Test case: $ passthrough_ll /mnt/pasthrough-mnt -o default_permissions,allow_other,cache=never $ mkdir /mnt/pasthrough-mnt/testdir $ cd /mnt/pasthrough-mnt/testdir $ prove -rv pjdfstests/tests/chmod/12.t Reported-by: Vivek Goyal Signed-off-by: Miklos Szeredi Tested-by: Vivek Goyal commit 35d6fcbb7c3e296a52136347346a698a35af3fda Author: Miklos Szeredi Date: Mon May 27 11:42:07 2019 +0200 fuse: fallocate: fix return with locked inode Do the proper cleanup in case the size check fails. Tested with xfstests:generic/228 Reported-by: kbuild test robot Reported-by: Dan Carpenter Fixes: 0cbade024ba5 ("fuse: honor RLIMIT_FSIZE in fuse_file_fallocate") Cc: Liu Bo Cc: # v3.5 Signed-off-by: Miklos Szeredi commit b1fa7d8592c730d1b44536b5cacadeb318d369fd Merge: ec2e0f4f00c0 670784fb4ebe Author: Linus Walleij Date: Mon May 27 11:07:31 2019 +0200 Merge tag 'intel-pinctrl-v5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/intel into fixes intel-pinctrl for v5.2-2 Fix a laggish ELAN touchpad responsiveness due to an odd interrupt masking. The following is an automated git shortlog grouped by driver: intel: - Clear interrupt status in mask/unmask callback - Use GENMASK() consistently commit d491f2b75237ef37d8867830ab7fad8d9659e853 Author: Rafael J. Wysocki Date: Fri May 17 11:08:50 2019 +0200 PCI: PM: Avoid possible suspend-to-idle issue If a PCI driver leaves the device handled by it in D0 and calls pci_save_state() on the device in its ->suspend() or ->suspend_late() callback, it can expect the device to stay in D0 over the whole s2idle cycle. However, that may not be the case if there is a spurious wakeup while the system is suspended, because in that case pci_pm_suspend_noirq() will run again after pci_pm_resume_noirq() which calls pci_restore_state(), via pci_pm_default_resume_early(), so state_saved is cleared and the second iteration of pci_pm_suspend_noirq() will invoke pci_prepare_to_sleep() which may change the power state of the device. To avoid that, add a new internal flag, skip_bus_pm, that will be set by pci_pm_suspend_noirq() when it runs for the first time during the given system suspend-resume cycle if the state of the device has been saved already and the device is still in D0. Setting that flag will cause the next iterations of pci_pm_suspend_noirq() to set state_saved for pci_pm_resume_noirq(), so that it always restores the device state from the originally saved data, and avoid calling pci_prepare_to_sleep() for the device. Fixes: 33e4f80ee69b ("ACPI / PM: Ignore spurious SCI wakeups from suspend-to-idle") Signed-off-by: Rafael J. Wysocki Reviewed-by: Keith Busch Reviewed-by: Mika Westerberg commit bb1869012d7b78d1474808cb4c8bd8b272645876 Author: Rafael J. Wysocki Date: Thu May 16 12:43:19 2019 +0200 ACPI: PM: Call pm_set_suspend_via_firmware() during hibernation On systems with ACPI platform firmware the last stage of hibernation is analogous to system suspend to S3 (suspend-to-RAM), so it should be handled analogously. In particular, pm_suspend_via_firmware() should return 'true' in that stage to let the callers of it know that control will be passed to the platform firmware going forward, so pm_set_suspend_via_firmware() needs to be called then in analogy with acpi_suspend_begin(). However, the platform hibernation ->begin() callback is invoked during the "freeze" transition (before creating a snapshot image of system memory) as well as during the "hibernate" transition which is the last stage of it and pm_set_suspend_via_firmware() should be invoked by that callback in the latter stage only. In order to implement that redefine the hibernation ->begin() callback to take a pm_message_t argument to indicate which stage of hibernation is taking place and rework acpi_hibernation_begin() and acpi_hibernation_begin_old() to take it into account as needed. Signed-off-by: Rafael J. Wysocki commit 9a51c6b1f9e0239a9435db036b212498a2a3b75c Author: Rafael J. Wysocki Date: Thu May 16 12:42:20 2019 +0200 ACPI/PCI: PM: Add missing wakeup.flags.valid checks Both acpi_pci_need_resume() and acpi_dev_needs_resume() check if the current ACPI wakeup configuration of the device matches what is expected as far as system wakeup from sleep states is concerned, as reflected by the device_may_wakeup() return value for the device. However, they only should do that if wakeup.flags.valid is set for the device's ACPI companion, because otherwise the wakeup.prepare_count value for it is meaningless. Add the missing wakeup.flags.valid checks to these functions. Signed-off-by: Rafael J. Wysocki Reviewed-by: Mika Westerberg commit b21d9c435f935014d3e3fa6914f2e4fbabb0e94d Author: Amir Goldstein Date: Sun May 26 09:28:25 2019 +0300 ovl: support the FS_IOC_FS[SG]ETXATTR ioctls They are the extended version of FS_IOC_FS[SG]ETFLAGS ioctls. xfs_io -c "chattr " uses the new ioctls for setting flags. This used to work in kernel pre v4.19, before stacked file ops introduced the ovl_ioctl whitelist. Reported-by: Dave Chinner Fixes: d1d04ef8572b ("ovl: stack file ops") Cc: # v4.19 Signed-off-by: Amir Goldstein Signed-off-by: Miklos Szeredi commit 03ecad90d3798be11b033248bbd4bbff4425a1c7 Author: Srinivas Kandagatla Date: Wed May 22 17:24:43 2019 +0100 soundwire: stream: fix out of boundary access on port properties Assigning local iterator to array element and using it again for indexing would cross the array boundary. Fix this by directly referring array element without using the local variable. Signed-off-by: Srinivas Kandagatla Acked-by: Pierre-Louis Bossart Signed-off-by: Vinod Koul commit 3e66b7cc50ef921121babc91487e1fb98af1ba6e Author: Kees Cook Date: Fri May 24 13:20:19 2019 -0700 net: tulip: de4x5: Drop redundant MODULE_DEVICE_TABLE() Building with Clang reports the redundant use of MODULE_DEVICE_TABLE(): drivers/net/ethernet/dec/tulip/de4x5.c:2110:1: error: redefinition of '__mod_eisa__de4x5_eisa_ids_device_table' MODULE_DEVICE_TABLE(eisa, de4x5_eisa_ids); ^ ./include/linux/module.h:229:21: note: expanded from macro 'MODULE_DEVICE_TABLE' extern typeof(name) __mod_##type##__##name##_device_table \ ^ :90:1: note: expanded from here __mod_eisa__de4x5_eisa_ids_device_table ^ drivers/net/ethernet/dec/tulip/de4x5.c:2100:1: note: previous definition is here MODULE_DEVICE_TABLE(eisa, de4x5_eisa_ids); ^ ./include/linux/module.h:229:21: note: expanded from macro 'MODULE_DEVICE_TABLE' extern typeof(name) __mod_##type##__##name##_device_table \ ^ :85:1: note: expanded from here __mod_eisa__de4x5_eisa_ids_device_table ^ This drops the one further from the table definition to match the common use of MODULE_DEVICE_TABLE(). Fixes: 07563c711fbc ("EISA bus MODALIAS attributes support") Signed-off-by: Kees Cook Signed-off-by: David S. Miller commit b933dc367a1d85edf2db8e6edd5783ae9604813d Merge: 66a04abf2bda 043556d0917a Author: David S. Miller Date: Sun May 26 21:47:13 2019 -0700 Merge branch 'net-tls-two-fixes-for-rx_list-pre-handling' Jakub Kicinski says: ==================== net/tls: two fixes for rx_list pre-handling tls_sw_recvmsg() had been modified to cater better to async decrypt. Partially read records now live on the rx_list. Data is copied from this list before the old do {} while loop, and the not included correctly in deciding whether to sleep or not and lowat threshold handling. These modifications, unfortunately, added some bugs. First patch fixes lowat - we need to calculate the threshold early and make sure all copied data is compared to the threshold, not just the freshly decrypted data. Third patch fixes sleep - if data is picked up from rx_list and no flags are set, we should not put the process to sleep, but rather return the partial read. Patches 2 and 4 add test cases for these bugs, both will cause a sleep and test timeout before the fix. ==================== Signed-off-by: David S. Miller commit 043556d0917a1a5ea58795fe1656a2bce06d2649 Author: Jakub Kicinski Date: Fri May 24 10:34:33 2019 -0700 selftests/tls: add test for sleeping even though there is data Add a test which sends 15 bytes of data, and then tries to read 10 byes twice. Previously the second read would sleep indifinitely, since the record was already decrypted and there is only 5 bytes left, not full 10. Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Signed-off-by: David S. Miller commit 04b25a5411f966c2e586909a8496553b71876fae Author: Jakub Kicinski Date: Fri May 24 10:34:32 2019 -0700 net/tls: fix no wakeup on partial reads When tls_sw_recvmsg() partially copies a record it pops that record from ctx->recv_pkt and places it on rx_list. Next iteration of tls_sw_recvmsg() reads from rx_list via process_rx_list() before it enters the decryption loop. If there is no more records to be read tls_wait_data() will put the process on the wait queue and got to sleep. This is incorrect, because some data was already copied in process_rx_list(). In case of RPC connections process may never get woken up, because peer also simply blocks in read(). I think this may also fix a similar issue when BPF is at play, because after __tcp_bpf_recvmsg() returns some data we subtract it from len and use continue to restart the loop, but len could have just reached 0, so again we'd sleep unnecessarily. That's added by: commit d3b18ad31f93 ("tls: add bpf support to sk_msg handling") Fixes: 692d7b5d1f91 ("tls: Fix recvmsg() to be able to peek across multiple records") Reported-by: David Beckett Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Tested-by: David Beckett Signed-off-by: David S. Miller commit 7718a855cd7ae9fc27a2aa1532ee105d52eb7634 Author: Jakub Kicinski Date: Fri May 24 10:34:31 2019 -0700 selftests/tls: test for lowat overshoot with multiple records Set SO_RCVLOWAT and test it gets respected when gathering data from multiple records. Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Signed-off-by: David S. Miller commit 46a1695960d0600d58da7af33c65f24f3d839674 Author: Jakub Kicinski Date: Fri May 24 10:34:30 2019 -0700 net/tls: fix lowat calculation if some data came from previous record If some of the data came from the previous record, i.e. from the rx_list it had already been decrypted, so it's not counted towards the "decrypted" variable, but the "copied" variable. Take that into account when checking lowat. When calculating lowat target we need to pass the original len. E.g. if lowat is at 80, len is 100 and we had 30 bytes on rx_list target would currently be incorrectly calculated as 70, even though we only need 50 more bytes to make up the 80. Fixes: 692d7b5d1f91 ("tls: Fix recvmsg() to be able to peek across multiple records") Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Tested-by: David Beckett Signed-off-by: David S. Miller commit cd6c84d8f0cdc911df435bb075ba22ce3c605b07 Author: Linus Torvalds Date: Sun May 26 16:49:19 2019 -0700 Linux 5.2-rc2 commit c5b440951a19fdd068090d38dcbe72ea28e5e0d0 Merge: 862f0a3227b3 0c97bf863efc Author: Linus Torvalds Date: Sun May 26 13:49:40 2019 -0700 Merge tag 'trace-v5.2-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull tracing warning fix from Steven Rostedt: "Make the GCC 9 warning for sub struct memset go away. GCC 9 now warns about calling memset() on partial structures when it goes across multiple fields. This adds a helper for the place in tracing that does this type of clearing of a structure" * tag 'trace-v5.2-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: tracing: Silence GCC 9 array bounds warning commit 862f0a3227b337cea11d0488b0345dc2670fc297 Merge: 128f2bfafcf2 66f61c92889f Author: Linus Torvalds Date: Sun May 26 13:45:15 2019 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull KVM fixes from Paolo Bonzini: "The usual smattering of fixes and tunings that came in too late for the merge window, but should not wait four months before they appear in a release. I also travelled a bit more than usual in the first part of May, which didn't help with picking up patches and reports promptly" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (33 commits) KVM: x86: fix return value for reserved EFER tools/kvm_stat: fix fields filter for child events KVM: selftests: Wrap vcpu_nested_state_get/set functions with x86 guard kvm: selftests: aarch64: compile with warnings on kvm: selftests: aarch64: fix default vm mode kvm: selftests: aarch64: dirty_log_test: fix unaligned memslot size KVM: s390: fix memory slot handling for KVM_SET_USER_MEMORY_REGION KVM: x86/pmu: do not mask the value that is written to fixed PMUs KVM: x86/pmu: mask the result of rdpmc according to the width of the counters x86/kvm/pmu: Set AMD's virt PMU version to 1 KVM: x86: do not spam dmesg with VMCS/VMCB dumps kvm: Check irqchip mode before assign irqfd kvm: svm/avic: fix off-by-one in checking host APIC ID KVM: selftests: do not blindly clobber registers in guest asm KVM: selftests: Remove duplicated TEST_ASSERT in hyperv_cpuid.c KVM: LAPIC: Expose per-vCPU timer_advance_ns to userspace KVM: LAPIC: Fix lapic_timer_advance_ns parameter overflow kvm: vmx: Fix -Wmissing-prototypes warnings KVM: nVMX: Fix using __this_cpu_read() in preemptible context kvm: fix compilation on s390 ... commit 66a04abf2bda0aa7b1ab7ac14af265426ac7d401 Merge: 334031219a84 4ca6dee5220f Author: David S. Miller Date: Sun May 26 13:41:33 2019 -0700 Merge branch 'dpaa2-eth-Fix-smatch-warnings' Ioana Radulescu says: ==================== dpaa2-eth: Fix smatch warnings Fix a couple of warnings reported by smatch. ==================== Signed-off-by: David S. Miller commit 4ca6dee5220fe2377bf12b354ef85978425c9ec7 Author: Ioana Radulescu Date: Fri May 24 18:15:17 2019 +0300 dpaa2-eth: Make constant 64-bit long Function dpaa2_eth_cls_key_size() expects a 64bit argument, but DPAA2_ETH_DIST_ALL is defined as UINT_MAX. Fix this. Signed-off-by: Ioana Radulescu Reported-by: Dan Carpenter Signed-off-by: David S. Miller commit bd8460fa4de46e9d6177af4fe33bf0763a7af4b7 Author: Ioana Radulescu Date: Fri May 24 18:15:16 2019 +0300 dpaa2-eth: Use PTR_ERR_OR_ZERO where appropriate Use PTR_ERR_OR_ZERO instead of PTR_ERR in cases where zero is a valid input. Reported by smatch. Signed-off-by: Ioana Radulescu Signed-off-by: David S. Miller commit 5a20a093d965560f632b2ec325f8876918f78165 Author: Ioana Radulescu Date: Fri May 24 18:15:15 2019 +0300 dpaa2-eth: Fix potential spectre issue Smatch reports a potential spectre vulnerability in the dpaa2-eth driver, where the value of rxnfc->fs.location (which is provided from user-space) is used as index in an array. Add a call to array_index_nospec() to sanitize the access. Signed-off-by: Ioana Radulescu Signed-off-by: David S. Miller commit 334031219a84b9994594015aab85ed7754c80176 Author: Jarod Wilson Date: Fri May 24 09:49:28 2019 -0400 bonding/802.3ad: fix slave link initialization transition states Once in a while, with just the right timing, 802.3ad slaves will fail to properly initialize, winding up in a weird state, with a partner system mac address of 00:00:00:00:00:00. This started happening after a fix to properly track link_failure_count tracking, where an 802.3ad slave that reported itself as link up in the miimon code, but wasn't able to get a valid speed/duplex, started getting set to BOND_LINK_FAIL instead of BOND_LINK_DOWN. That was the proper thing to do for the general "my link went down" case, but has created a link initialization race that can put the interface in this odd state. The simple fix is to instead set the slave link to BOND_LINK_DOWN again, if the link has never been up (last_link_up == 0), so the link state doesn't bounce from BOND_LINK_DOWN to BOND_LINK_FAIL -- it hasn't failed in this case, it simply hasn't been up yet, and this prevents the unnecessary state change from DOWN to FAIL and getting stuck in an init failure w/o a partner mac. Fixes: ea53abfab960 ("bonding/802.3ad: fix link_failure_count tracking") CC: Jay Vosburgh CC: Veaceslav Falico CC: Andy Gospodarek CC: "David S. Miller" CC: netdev@vger.kernel.org Tested-by: Heesoon Kim Signed-off-by: Jarod Wilson Acked-by: Jay Vosburgh Signed-off-by: David S. Miller commit 128f2bfafcf2e65504013934202f460a3b2e378c Merge: 35efb51eee22 58be0106c530 Author: Linus Torvalds Date: Sun May 26 08:30:16 2019 -0700 Merge tag 'random_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random Pull /dev/random fix from Ted Ts'o: "Fix a soft lockup regression when reading from /dev/random in early boot" * tag 'random_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random: random: fix soft lockup when trying to read from an uninitialized blocking pool commit a278682dad37fd2f8d2f30d8e84e376a856ab472 Author: Pavel Begunkov Date: Sun May 26 12:35:47 2019 +0300 io_uring: Fix __io_uring_register() false success If io_copy_iov() fails, it will break the loop and report success, albeit partially completed operation. Signed-off-by: Pavel Begunkov Signed-off-by: Jens Axboe commit 58be0106c5306b939b07b4b8bf00669a20593f4b Author: Theodore Ts'o Date: Wed May 22 12:02:16 2019 -0400 random: fix soft lockup when trying to read from an uninitialized blocking pool Fixes: eb9d1bf079bb: "random: only read from /dev/random after its pool has received 128 bits" Reported-by: kernel test robot Signed-off-by: Theodore Ts'o commit 0c97bf863efce63d6ab7971dad811601e6171d2f Author: Miguel Ojeda Date: Thu May 23 14:45:35 2019 +0200 tracing: Silence GCC 9 array bounds warning Starting with GCC 9, -Warray-bounds detects cases when memset is called starting on a member of a struct but the size to be cleared ends up writing over further members. Such a call happens in the trace code to clear, at once, all members after and including `seq` on struct trace_iterator: In function 'memset', inlined from 'ftrace_dump' at kernel/trace/trace.c:8914:3: ./include/linux/string.h:344:9: warning: '__builtin_memset' offset [8505, 8560] from the object at 'iter' is out of the bounds of referenced subobject 'seq' with type 'struct trace_seq' at offset 4368 [-Warray-bounds] 344 | return __builtin_memset(p, c, size); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ In order to avoid GCC complaining about it, we compute the address ourselves by adding the offsetof distance instead of referring directly to the member. Since there are two places doing this clear (trace.c and trace_kdb.c), take the chance to move the workaround into a single place in the internal header. Link: http://lkml.kernel.org/r/20190523124535.GA12931@gmail.com Signed-off-by: Miguel Ojeda [ Removed unnecessary parenthesis around "iter" ] Signed-off-by: Steven Rostedt (VMware) commit f4bcf14e3997a422169e5a661fa811868ca221d8 Author: Maxime Chevallier Date: Fri May 24 12:05:30 2019 +0200 net: ethtool: Document get_rxfh_context and set_rxfh_context ethtool ops ethtool ops get_rxfh_context and set_rxfh_context are used to create, remove and access parameters associated to RSS contexts, in a similar fashion to get_rxfh and set_rxfh. Add a small descritopn of these callbacks in the struct ethtool_ops doc. Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit 35efb51eee2241a970dcf70ed950f9db7e5351f7 Merge: b2ad81363f12 66883da1eee8 Author: Linus Torvalds Date: Sat May 25 15:03:12 2019 -0700 Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 Pull ext4 fixes from Ted Ts'o: "Bug fixes (including a regression fix) for ext4" * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: ext4: fix dcache lookup of !casefolded directories ext4: do not delete unlinked inode from orphan list on failed truncate ext4: wait for outstanding dio during truncate in nojournal mode ext4: don't perform block validity checks on the journal inode commit 3d92410a22e241397110346b447215bb162a5f3a Merge: 425aa0e1d015 f4ca7a9260df Author: David S. Miller Date: Sat May 25 11:02:31 2019 -0700 Merge branch 'fix-some-bugs-in-stmmac' Biao Huang says: ==================== fix some bugs in stmmac changes in v4: since MTL_OPERATION_MODE write back issue has be fixed in the latest driver, remove original patch#3 changes in v3: add a Fixes:tag for each patch changes in v2: 1. update rx_tail_addr as Jose's comment 2. changes clk_csr condition as Alex's proposition 3. remove init lines in dwmac-mediatek, get clk_csr from dts instead. v1: This series fix some bugs in stmmac driver 3 patches are for common stmmac or dwmac4: 1. update rx tail pointer to fix rx dma hang issue. 2. change condition for mdc clock to fix csr_clk can't be zero issue. 3. write the modified value back to MTL_OPERATION_MODE. 1 patch is for dwmac-mediatek: modify csr_clk value to fix mdio read/write fail issue for dwmac-mediatek ==================== Signed-off-by: David S. Miller commit f4ca7a9260dfe700f2a16f0881825de625067515 Author: Biao Huang Date: Fri May 24 14:26:09 2019 +0800 net: stmmac: dwmac-mediatek: modify csr_clk value to fix mdio read/write fail 1. the frequency of csr clock is 66.5MHz, so the csr_clk value should be 0 other than 5. 2. the csr_clk can be got from device tree, so remove initialization here. Fixes: 9992f37e346b ("stmmac: dwmac-mediatek: add support for mt2712") Signed-off-by: Biao Huang Signed-off-by: David S. Miller commit 5e7f7fc538d894b2d9aa41876b8dcf35f5fe11e6 Author: Biao Huang Date: Fri May 24 14:26:08 2019 +0800 net: stmmac: fix csr_clk can't be zero issue The specific clk_csr value can be zero, and stmmac_clk is necessary for MDC clock which can be set dynamically. So, change the condition from plat->clk_csr to plat->stmmac_clk to fix clk_csr can't be zero issue. Fixes: cd7201f477b9 ("stmmac: MDC clock dynamically based on the csr clock input") Signed-off-by: Biao Huang Acked-by: Alexandre TORGUE Signed-off-by: David S. Miller commit 4523a5611526709ec9b4e2574f1bb7818212651e Author: Biao Huang Date: Fri May 24 14:26:07 2019 +0800 net: stmmac: update rx tail pointer register to fix rx dma hang issue. Currently we will not update the receive descriptor tail pointer in stmmac_rx_refill. Rx dma will think no available descriptors and stop once received packets exceed DMA_RX_SIZE, so that the rx only test will fail. Update the receive tail pointer in stmmac_rx_refill to add more descriptors to the rx channel, so packets can be received continually Fixes: 54139cf3bb33 ("net: stmmac: adding multiple buffers for rx") Signed-off-by: Biao Huang Signed-off-by: David S. Miller commit 425aa0e1d01513437668fa3d4a971168bbaa8515 Author: Gen Zhang Date: Fri May 24 11:24:26 2019 +0800 ip_sockglue: Fix missing-check bug in ip_ra_control() In function ip_ra_control(), the pointer new_ra is allocated a memory space via kmalloc(). And it is used in the following codes. However, when there is a memory allocation error, kmalloc() fails. Thus null pointer dereference may happen. And it will cause the kernel to crash. Therefore, we should check the return value and handle the error. Signed-off-by: Gen Zhang Signed-off-by: David S. Miller commit 95baa60a0da80a0143e3ddd4d3725758b4513825 Author: Gen Zhang Date: Fri May 24 11:19:46 2019 +0800 ipv6_sockglue: Fix a missing-check bug in ip6_ra_control() In function ip6_ra_control(), the pointer new_ra is allocated a memory space via kmalloc(). And it is used in the following codes. However, when there is a memory allocation error, kmalloc() fails. Thus null pointer dereference may happen. And it will cause the kernel to crash. Therefore, we should check the return value and handle the error. Signed-off-by: Gen Zhang Signed-off-by: David S. Miller commit b2ad81363f12261f8b6a97ed7723960ea6450f31 Merge: a2c48d98fc07 52f476a323f9 Author: Linus Torvalds Date: Sat May 25 10:11:23 2019 -0700 Merge tag 'libnvdimm-fixes-5.2-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm Pull libnvdimm fixes from Dan Williams: - Fix a regression that disabled device-mapper dax support - Remove unnecessary hardened-user-copy overhead (>30%) for dax read(2)/write(2). - Fix some compilation warnings. * tag 'libnvdimm-fixes-5.2-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: libnvdimm/pmem: Bypass CONFIG_HARDENED_USERCOPY overhead dax: Arrange for dax_supported check to span multiple devices libnvdimm: Fix compilation warnings with W=1 commit a2c48d98fc0770f7993cf61c71659a99e1d2857e Merge: 2409207a73cc 4eebe38a37f9 Author: Linus Torvalds Date: Sat May 25 10:08:14 2019 -0700 Merge tag 'trace-v5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull tracing fixes from Steven Rostedt: "Tom Zanussi sent me some small fixes and cleanups to the histogram code and I forgot to incorporate them. I also added a small clean up patch that was sent to me a while ago and I just noticed it" * tag 'trace-v5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: kernel/trace/trace.h: Remove duplicate header of trace_seq.h tracing: Add a check_val() check before updating cond_snapshot() track_val tracing: Check keys for variable references in expressions too tracing: Prevent hist_field_var_ref() from accessing NULL tracing_map_elts commit 88447c5b93d98be847f428c39ba589779a59eb83 Author: Rob Bradford Date: Sat May 25 13:25:59 2019 +0200 efi: Allow the number of EFI configuration tables entries to be zero Only try and access the EFI configuration tables if there there are any reported. This allows EFI to be continued to used on systems where there are no configuration table entries. Signed-off-by: Rob Bradford Signed-off-by: Ard Biesheuvel Cc: Gen Zhang Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/20190525112559.7917-3-ard.biesheuvel@linaro.org Signed-off-by: Ingo Molnar commit 4e78921ba4dd0aca1cc89168f45039add4183f8e Author: Gen Zhang Date: Sat May 25 13:25:58 2019 +0200 efi/x86/Add missing error handling to old_memmap 1:1 mapping code The old_memmap flow in efi_call_phys_prolog() performs numerous memory allocations, and either does not check for failure at all, or it does but fails to propagate it back to the caller, which may end up calling into the firmware with an incomplete 1:1 mapping. So let's fix this by returning NULL from efi_call_phys_prolog() on memory allocation failures only, and by handling this condition in the caller. Also, clean up any half baked sets of page tables that we may have created before returning with a NULL return value. Note that any failure at this level will trigger a panic() two levels up, so none of this makes a huge difference, but it is a nice cleanup nonetheless. [ardb: update commit log, add efi_call_phys_epilog() call on error path] Signed-off-by: Gen Zhang Signed-off-by: Ard Biesheuvel Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rob Bradford Cc: Thomas Gleixner Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/20190525112559.7917-2-ard.biesheuvel@linaro.org Signed-off-by: Ingo Molnar commit 66883da1eee8ad4b38eeff7fa1c86a097d9670fc Author: Gabriel Krisman Bertazi Date: Fri May 24 23:48:23 2019 -0400 ext4: fix dcache lookup of !casefolded directories Found by visual inspection, this wasn't caught by my xfstest, since it's effect is ignoring positive dentries in the cache the fallback just goes to the disk. it was introduced in the last iteration of the case-insensitive patch. d_compare should return 0 when the entries match, so make sure we are correctly comparing the entire string if the encoding feature is set and we are on a case-INsensitive directory. Fixes: b886ee3e778e ("ext4: Support case-insensitive file name lookups") Signed-off-by: Gabriel Krisman Bertazi Signed-off-by: Theodore Ts'o commit 2409207a73cc8e4aff75ceccf6fe5c3ce4d391bc Merge: 7fbc78e3155a 8acf608e602f Author: Linus Torvalds Date: Fri May 24 17:30:28 2019 -0700 Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fixes from James Bottomley: "This is the same set of patches sent in the merge window as the final pull except that Martin's read only rework is replaced with a simple revert of the original change that caused the regression. Everything else is an obvious fix or small cleanup" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: Revert "scsi: sd: Keep disk read-only when re-reading partition" scsi: bnx2fc: fix incorrect cast to u64 on shift operation scsi: smartpqi: Reporting unhandled SCSI errors scsi: myrs: Fix uninitialized variable scsi: lpfc: Update lpfc version to 12.2.0.2 scsi: lpfc: add check for loss of ndlp when sending RRQ scsi: lpfc: correct rcu unlock issue in lpfc_nvme_info_show scsi: lpfc: resolve lockdep warnings scsi: qedi: remove set but not used variables 'cdev' and 'udev' scsi: qedi: remove memset/memcpy to nfunc and use func instead scsi: qla2xxx: Add cleanup for PCI EEH recovery commit 7fbc78e3155a0c464bd832efc07fb3c2355fe9bd Merge: 7f8b40e3dbcd 096c7a6d9008 Author: Linus Torvalds Date: Fri May 24 16:02:14 2019 -0700 Merge tag 'for-linus-20190524' of git://git.kernel.dk/linux-block Pull block fixes from Jens Axboe: - NVMe pull request from Keith, with fixes from a few folks. - bio and sbitmap before atomic barrier fixes (Andrea) - Hang fix for blk-mq freeze and unfreeze (Bob) - Single segment count regression fix (Christoph) - AoE now has a new maintainer - tools/io_uring/ Makefile fix, and sync with liburing (me) * tag 'for-linus-20190524' of git://git.kernel.dk/linux-block: (23 commits) tools/io_uring: sync with liburing tools/io_uring: fix Makefile for pthread library link blk-mq: fix hang caused by freeze/unfreeze sequence block: remove the bi_seg_{front,back}_size fields in struct bio block: remove the segment size check in bio_will_gap block: force an unlimited segment size on queues with a virt boundary block: don't decrement nr_phys_segments for physically contigous segments sbitmap: fix improper use of smp_mb__before_atomic() bio: fix improper use of smp_mb__before_atomic() aoe: list new maintainer for aoe driver nvme-pci: use blk-mq mapping for unmanaged irqs nvme: update MAINTAINERS nvme: copy MTFA field from identify controller nvme: fix memory leak for power latency tolerance nvme: release namespace SRCU protection before performing controller ioctls nvme: merge nvme_ns_ioctl into nvme_ioctl nvme: remove the ifdef around nvme_nvm_ioctl nvme: fix srcu locking on error return in nvme_get_ns_from_disk nvme: Fix known effects nvme-pci: Sync queues on reset ... commit 7f8b40e3dbcd7dbeabe6be8f157376ef0b890e06 Merge: e7bd3e248bc3 fe48319243a6 Author: Linus Torvalds Date: Fri May 24 15:21:05 2019 -0700 Merge tag 'linux-kselftest-5.2-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest Pull Kselftest fixes from Shuah Khan: - Two fixes to regressions introduced in kselftest Makefile test run output refactoring work (Kees Cook) - Adding Atom support to syscall_arg_fault test (Tong Bo) * tag 'linux-kselftest-5.2-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: selftests/timers: Add missing fflush(stdout) calls selftests: Remove forced unbuffering for test running selftests/x86: Support Atom for syscall_arg_fault test commit e7bd3e248bc36451fdbf2a2e3a3c5a23cd0b1f6f Merge: 86c2f5d65305 852d095d16a6 Author: Linus Torvalds Date: Fri May 24 15:16:46 2019 -0700 Merge tag 'devicetree-fixes-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux Pull Devicetree fixes from Rob Herring: - Update checkpatch.pl to use DT vendor-prefixes.yaml - Fix DT binding references to files converted to DT schema - Clean-up Arm CPU binding examples to match schema - Add Sifive block versioning scheme documentation - Pass binding directory base to validation tools for reference lookups * tag 'devicetree-fixes-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: checkpatch.pl: Update DT vendor prefix check dt: bindings: mtd: replace references to nand.txt with nand-controller.yaml dt-bindings: interrupt-controller: arm,gic: Fix schema errors in example dt-bindings: arm: Clean up CPU binding examples dt: fix refs that were renamed to json with the same file name dt-bindings: Pass binding directory to validation tools dt-bindings: sifive: describe sifive-blocks versioning commit 6b98d9134e14f5ef4bcf64b27eedf484ed19a1ec Author: Helge Deller Date: Fri May 24 23:16:25 2019 +0200 parisc: Fix compiler warnings in float emulation code Avoid such compiler warnings: arch/parisc/math-emu/cnv_float.h:71:27: warning: ‘<<’ in boolean context, did you mean ‘<’ ? [-Wint-in-bool-context] ((Dintp1(dint_valueA) << 33 - SGL_EXP_LENGTH) || Dintp2(dint_valueB)) arch/parisc/math-emu/fcnvxf.c:257:6: note: in expansion of macro ‘Dint_isinexact_to_sgl’ if (Dint_isinexact_to_sgl(srcp1,srcp2)) { Signed-off-by: Helge Deller commit bf8c2f2305b4a6969c9ea70e8bf406bb095f257a Author: Yury Norov Date: Tue May 21 17:36:04 2019 -0700 parisc/slab: cleanup after /proc/slab_allocators removal The commit 7878c231dae0 ("slab: remove /proc/slab_allocators") removes DEBUG_SLAB_LEAK config everywhere but a parisc config. It doesn't look intentional. Fix it. Signed-off-by: Yury Norov Signed-off-by: Helge Deller commit 86c2f5d653058798703549e1be39a819fcac0d5d Merge: 51816e9e1139 060358de993f Author: Linus Torvalds Date: Fri May 24 14:31:58 2019 -0700 Merge tag 'spdx-5.2-rc2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core Pule more SPDX updates from Greg KH: "Here is another set of reviewed patches that adds SPDX tags to different kernel files, based on a set of rules that are being used to parse the comments to try to determine that the license of the file is "GPL-2.0-or-later". Only the "obvious" versions of these matches are included here, a number of "non-obvious" variants of text have been found but those have been postponed for later review and analysis. These patches have been out for review on the linux-spdx@vger mailing list, and while they were created by automatic tools, they were hand-verified by a bunch of different people, all whom names are on the patches are reviewers" * tag 'spdx-5.2-rc2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (85 commits) treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 125 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 123 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 122 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 121 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 120 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 119 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 118 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 116 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 114 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 113 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 112 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 111 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 110 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 106 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 105 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 104 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 103 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 102 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 101 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 98 ... commit bd95e678e0f6e18351ecdc147ca819145db9ed7b Author: John Fastabend Date: Fri May 24 08:01:00 2019 -0700 bpf: sockmap, fix use after free from sleep in psock backlog workqueue Backlog work for psock (sk_psock_backlog) might sleep while waiting for memory to free up when sending packets. However, while sleeping the socket may be closed and removed from the map by the user space side. This breaks an assumption in sk_stream_wait_memory, which expects the wait queue to be still there when it wakes up resulting in a use-after-free shown below. To fix his mark sendmsg as MSG_DONTWAIT to avoid the sleep altogether. We already set the flag for the sendpage case but we missed the case were sendmsg is used. Sockmap is currently the only user of skb_send_sock_locked() so only the sockmap paths should be impacted. ================================================================== BUG: KASAN: use-after-free in remove_wait_queue+0x31/0x70 Write of size 8 at addr ffff888069a0c4e8 by task kworker/0:2/110 CPU: 0 PID: 110 Comm: kworker/0:2 Not tainted 5.0.0-rc2-00335-g28f9d1a3d4fe-dirty #14 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-2.fc27 04/01/2014 Workqueue: events sk_psock_backlog Call Trace: print_address_description+0x6e/0x2b0 ? remove_wait_queue+0x31/0x70 kasan_report+0xfd/0x177 ? remove_wait_queue+0x31/0x70 ? remove_wait_queue+0x31/0x70 remove_wait_queue+0x31/0x70 sk_stream_wait_memory+0x4dd/0x5f0 ? sk_stream_wait_close+0x1b0/0x1b0 ? wait_woken+0xc0/0xc0 ? tcp_current_mss+0xc5/0x110 tcp_sendmsg_locked+0x634/0x15d0 ? tcp_set_state+0x2e0/0x2e0 ? __kasan_slab_free+0x1d1/0x230 ? kmem_cache_free+0x70/0x140 ? sk_psock_backlog+0x40c/0x4b0 ? process_one_work+0x40b/0x660 ? worker_thread+0x82/0x680 ? kthread+0x1b9/0x1e0 ? ret_from_fork+0x1f/0x30 ? check_preempt_curr+0xaf/0x130 ? iov_iter_kvec+0x5f/0x70 ? kernel_sendmsg_locked+0xa0/0xe0 skb_send_sock_locked+0x273/0x3c0 ? skb_splice_bits+0x180/0x180 ? start_thread+0xe0/0xe0 ? update_min_vruntime.constprop.27+0x88/0xc0 sk_psock_backlog+0xb3/0x4b0 ? strscpy+0xbf/0x1e0 process_one_work+0x40b/0x660 worker_thread+0x82/0x680 ? process_one_work+0x660/0x660 kthread+0x1b9/0x1e0 ? __kthread_create_on_node+0x250/0x250 ret_from_fork+0x1f/0x30 Fixes: 20bf50de3028c ("skbuff: Function to send an skbuf on a socket") Reported-by: Jakub Sitnicki Tested-by: Jakub Sitnicki Signed-off-by: John Fastabend Signed-off-by: Daniel Borkmann commit 51816e9e113934281b44f1a352852ef7631e75ea Author: Waiman Long Date: Fri May 24 15:42:22 2019 -0400 locking/lock_events: Use this_cpu_add() when necessary The kernel test robot has reported that the use of __this_cpu_add() causes bug messages like: BUG: using __this_cpu_add() in preemptible [00000000] code: ... Given the imprecise nature of the count and the possibility of resetting the count and doing the measurement again, this is not really a big problem to use the unprotected __this_cpu_*() functions. To make the preemption checking code happy, the this_cpu_*() functions will be used if CONFIG_DEBUG_PREEMPT is defined. The imprecise nature of the locking counts are also documented with the suggestion that we should run the measurement a few times with the counts reset in between to get a better picture of what is going on under the hood. Fixes: a8654596f0371 ("locking/rwsem: Enable lock event counting") Suggested-by: Linus Torvalds Signed-off-by: Waiman Long Signed-off-by: Linus Torvalds commit 4097e9d250fb17958c1d9b94538386edd3f20144 Author: Vlad Buslov Date: Thu May 23 09:32:31 2019 +0300 net: sched: don't use tc_action->order during action dump Function tcf_action_dump() relies on tc_action->order field when starting nested nla to send action data to userspace. This approach breaks in several cases: - When multiple filters point to same shared action, tc_action->order field is overwritten each time it is attached to filter. This causes filter dump to output action with incorrect attribute for all filters that have the action in different position (different order) from the last set tc_action->order value. - When action data is displayed using tc action API (RTM_GETACTION), action order is overwritten by tca_action_gd() according to its position in resulting array of nl attributes, which will break filter dump for all filters attached to that shared action that expect it to have different order value. Don't rely on tc_action->order when dumping actions. Set nla according to action position in resulting array of actions instead. Signed-off-by: Vlad Buslov Acked-by: Jamal Hadi Salim Signed-off-by: David S. Miller commit ab0610efabb4c4f419a531455708caf1dd29357e Author: Vishal Kulkarni Date: Thu May 23 08:07:21 2019 +0530 cxgb4: Revert "cxgb4: Remove SGE_HOST_PAGE_SIZE dependency on page size" This reverts commit 2391b0030e241386d710df10e53e2cfc3c5d4fc1 which has introduced regression. Now SGE's BAR2 Doorbell/GTS Page Size is interpreted correctly in the firmware itself by using actual host page size. Hence previous commit needs to be reverted. Signed-off-by: Vishal Kulkarni Signed-off-by: David S. Miller commit ce8d24f9a5965a58c588f9342689702a1024433c Author: Andy Duan Date: Thu May 23 01:55:28 2019 +0000 net: fec: fix the clk mismatch in failed_reset path Fix the clk mismatch in the error path "failed_reset" because below error path will disable clk_ahb and clk_ipg directly, it should use pm_runtime_put_noidle() instead of pm_runtime_put() to avoid to call runtime resume callback. Reported-by: Baruch Siach Signed-off-by: Fugang Duan Tested-by: Baruch Siach Signed-off-by: David S. Miller commit 66f61c92889ff3ca365161fb29dd36d6354682ba Author: Paolo Bonzini Date: Fri May 24 21:52:46 2019 +0200 KVM: x86: fix return value for reserved EFER Commit 11988499e62b ("KVM: x86: Skip EFER vs. guest CPUID checks for host-initiated writes", 2019-04-02) introduced a "return false" in a function returning int, and anyway set_efer has a "nonzero on error" conventon so it should be returning 1. Reported-by: Pavel Machek Fixes: 11988499e62b ("KVM: x86: Skip EFER vs. guest CPUID checks for host-initiated writes") Cc: Sean Christopherson Cc: stable@vger.kernel.org Signed-off-by: Paolo Bonzini commit 8d45f1de3994c566cb5ce9b3cb07ff1518e68ddb Author: Tomer Tayar Date: Mon May 13 12:13:39 2019 +0300 habanalabs: Avoid using a non-initialized MMU cache mutex The MMU cache mutex is used in the ASIC hw_init() functions, but it is initialized only later in hl_mmu_init(). This patch prevents it by moving the initialization to the device_early_init() function. Signed-off-by: Tomer Tayar Signed-off-by: Oded Gabbay commit 8438846cce61e284a22316c13aa4b63772963070 Author: Jann Horn Date: Sat May 4 15:56:08 2019 +0200 habanalabs: fix debugfs code This fixes multiple things in the habanalabs debugfs code, in particular: - mmu_write() was unnecessarily verbose, copying around between multiple buffers - mmu_write() could write a user-specified, unbounded amount of userspace memory into a kernel buffer (out-of-bounds write) - multiple debugfs read handlers ignored the user-supplied count, potentially corrupting out-of-bounds userspace data - hl_device_read() was unnecessarily verbose - hl_device_write() could read uninitialized stack memory - multiple debugfs read handlers copied terminating null characters to userspace Signed-off-by: Jann Horn Reviewed-by: Oded Gabbay Signed-off-by: Oded Gabbay Cc: stable@vger.kernel.org commit 2add64ebaea25dfada27b3332b1c982f9fc5ae64 Author: Oded Gabbay Date: Sat May 4 16:30:00 2019 +0300 uapi/habanalabs: add opcode for enable/disable device debug mode This patch defines a new opcode in the DEBUG IOCTL that is used by the user to notify the driver when the user wants to start or stop using the debug and profile infrastructure of the device. i.e. set the device to debug mode or to non-debug mode. There are a couple of restrictions that this new opcode introduces: 1. The user can't configure the debug/profiling infrastructure before he sets the device to debug mode, by using this new opcode. 2. The user can't set the device to debug mode unless he is the only user that is currently using (has an open FD) the device. 3. Other users can't use the device (open a new FD) in case an existing user has set the device into debug mode. These restrictions are needed because the debug and profiling infrastructure is a shared component in the ASIC and therefore, can't be used while multiple users are working on the device. Because the driver currently does NOT support multiple users, the implementation of the restrictions is not required at this point. However, the interface definition is needed in order to avoid changing the user API later on. Signed-off-by: Oded Gabbay commit 89225ce4fc43da2db968923fc94e1469dbcdbd5a Author: Omer Shpigelman Date: Wed May 1 14:38:38 2019 +0300 habanalabs: halt debug engines on user process close This patch fix a potential bug where a user's process has closed unexpectedly without disabling the debug engines. In that case, the debug engines might continue running but because the user's MMU mappings are going away, we will get page fault errors. This behavior is also opposed to the general rule where nothing runs on the device after the user process closes. The patch stops the debug H/W engines upon process termination and thus makes sure nothing runs on the device after the process goes away. Signed-off-by: Omer Shpigelman Signed-off-by: Oded Gabbay commit eff82a263b5cfa3427fd9dbfedd96da94fdc9f19 Author: Alexandre Belloni Date: Fri May 24 00:42:23 2019 +0200 selftests: rtc: rtctest: specify timeouts uie_read is a commonly failing test that will block forever on buggy rtc drivers. Shorten its timeout so it fails earlier. Also increase the timeout for the two alarm test on a minute boundary. Signed-off-by: Alexandre Belloni Signed-off-by: Shuah Khan commit d51f1f14870a3401dbcab0b737773bdc70f54a25 Author: Alexandre Belloni Date: Fri May 24 00:42:22 2019 +0200 selftests/harness: Allow test to configure timeout Commit a745f7af3cbd ("selftests/harness: Add 30 second timeout per test") adds an hardcoded 30s timeout to all tests. Unfortunately, rtctest has two tests taking up to 60s. Allow for individual tests to define their own timeout. Signed-off-by: Alexandre Belloni Reviewed-by: Kees Cook Signed-off-by: Shuah Khan commit 4a075bd4e13f6dd07a8438e0580629a3fba3f58e Author: Masami Hiramatsu Date: Fri Feb 22 10:27:25 2019 +0900 selftests/ftrace: Add checkbashisms meta-testcase Add a meta-testcase which tests ftracetest itself with checkbasisms. This helps us to keep our test script bashisms clean. Signed-off-by: Masami Hiramatsu Signed-off-by: Shuah Khan commit 3fda9b33d60820eb2e3cc6f1c18fa5327c1c1921 Author: Masami Hiramatsu Date: Fri Feb 22 10:26:57 2019 +0900 selftests/ftrace: Make a script checkbashisms clean Make kprobe_ftrace.tc checkbashisms clean. Since "grep function available_tracers" causes an error on checkbashisms, fix it by explicitly escaping with double-quotations. Signed-off-by: Masami Hiramatsu Signed-off-by: Shuah Khan commit 883d25e70b2f699fed9017e509d1ef8e36229b89 Author: Stefan Raspl Date: Sun Apr 21 15:26:24 2019 +0200 tools/kvm_stat: fix fields filter for child events The fields filter would not work with child fields, as the respective parents would not be included. No parents displayed == no childs displayed. To reproduce, run on s390 (would work on other platforms, too, but would require a different filter name): - Run 'kvm_stat -d' - Press 'f' - Enter 'instruct' Notice that events like instruction_diag_44 or instruction_diag_500 are not displayed - the output remains empty. With this patch, we will filter by matching events and their parents. However, consider the following example where we filter by instruction_diag_44: kvm statistics - summary regex filter: instruction_diag_44 Event Total %Total CurAvg/s exit_instruction 276 100.0 12 instruction_diag_44 256 92.8 11 Total 276 12 Note that the parent ('exit_instruction') displays the total events, but the childs listed do not match its total (256 instead of 276). This is intended (since we're filtering all but one child), but might be confusing on first sight. Signed-off-by: Stefan Raspl Signed-off-by: Paolo Bonzini commit c795720629ae1bfcbaef7a934a4cc1ce8c2e2834 Author: Thomas Huth Date: Thu May 23 11:31:14 2019 +0200 KVM: selftests: Wrap vcpu_nested_state_get/set functions with x86 guard struct kvm_nested_state is only available on x86 so far. To be able to compile the code on other architectures as well, we need to wrap the related code with #ifdefs. Signed-off-by: Thomas Huth Signed-off-by: Paolo Bonzini commit 98e683443ba298685205c0c5157df49e42c1c0b1 Author: Andrew Jones Date: Thu May 23 12:16:34 2019 +0200 kvm: selftests: aarch64: compile with warnings on aarch64 fixups needed to compile with warnings as errors. Reviewed-by: Thomas Huth Signed-off-by: Andrew Jones Signed-off-by: Paolo Bonzini commit 55eda003f02f075bab0223a188e548dbf3ac8dfe Author: Andrew Jones Date: Thu May 23 13:05:46 2019 +0200 kvm: selftests: aarch64: fix default vm mode VM_MODE_P52V48_4K is not a valid mode for AArch64. Replace its use in vm_create_default() with a mode that works and represents a good AArch64 default. (We didn't ever see a problem with this because we don't have any unit tests using vm_create_default(), but it's good to get it fixed in advance.) Reported-by: Thomas Huth Signed-off-by: Andrew Jones Signed-off-by: Paolo Bonzini commit bffed38d4fb536c5d5d6c37846a7fb8fde1452fa Author: Andrew Jones Date: Thu May 23 11:34:05 2019 +0200 kvm: selftests: aarch64: dirty_log_test: fix unaligned memslot size The memory slot size must be aligned to the host's page size. When testing a guest with a 4k page size on a host with a 64k page size, then 3 guest pages are not host page size aligned. Since we just need a nearly arbitrary number of extra pages to ensure the memslot is not aligned to a 64 host-page boundary for this test, then we can use 16, as that's 64k aligned, but not 64 * 64k aligned. Fixes: 76d58e0f07ec ("KVM: fix KVM_CLEAR_DIRTY_LOG for memory slots of unaligned size", 2019-04-17) Signed-off-by: Andrew Jones Signed-off-by: Paolo Bonzini commit 19ec166c3f39fe1d3789888a74cc95544ac266d4 Author: Christian Borntraeger Date: Fri May 24 16:06:23 2019 +0200 KVM: s390: fix memory slot handling for KVM_SET_USER_MEMORY_REGION kselftests exposed a problem in the s390 handling for memory slots. Right now we only do proper memory slot handling for creation of new memory slots. Neither MOVE, nor DELETION are handled properly. Let us implement those. Signed-off-by: Christian Borntraeger Signed-off-by: Paolo Bonzini commit 2924b52117b2812e9633d5ea337333299166d373 Author: Paolo Bonzini Date: Mon May 20 17:34:30 2019 +0200 KVM: x86/pmu: do not mask the value that is written to fixed PMUs According to the SDM, for MSR_IA32_PERFCTR0/1 "the lower-order 32 bits of each MSR may be written with any value, and the high-order 8 bits are sign-extended according to the value of bit 31", but the fixed counters in real hardware are limited to the width of the fixed counters ("bits beyond the width of the fixed-function counter are reserved and must be written as zeros"). Fix KVM to do the same. Reported-by: Nadav Amit Signed-off-by: Paolo Bonzini commit 0e6f467ee28ec97f68c7b74e35ec1601bb1368a7 Author: Paolo Bonzini Date: Mon May 20 17:20:40 2019 +0200 KVM: x86/pmu: mask the result of rdpmc according to the width of the counters This patch will simplify the changes in the next, by enforcing the masking of the counters to RDPMC and RDMSR. Signed-off-by: Paolo Bonzini commit a80c4ec10ed9632c44c829452dc40a0443ff4e85 Author: Borislav Petkov Date: Wed May 8 19:02:48 2019 +0200 x86/kvm/pmu: Set AMD's virt PMU version to 1 After commit: 672ff6cff80c ("KVM: x86: Raise #GP when guest vCPU do not support PMU") my AMD guests started #GPing like this: general protection fault: 0000 [#1] PREEMPT SMP CPU: 1 PID: 4355 Comm: bash Not tainted 5.1.0-rc6+ #3 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 RIP: 0010:x86_perf_event_update+0x3b/0xa0 with Code: pointing to RDPMC. It is RDPMC because the guest has the hardware watchdog CONFIG_HARDLOCKUP_DETECTOR_PERF enabled which uses perf. Instrumenting kvm_pmu_rdpmc() some, showed that it fails due to: if (!pmu->version) return 1; which the above commit added. Since AMD's PMU leaves the version at 0, that causes the #GP injection into the guest. Set pmu->version arbitrarily to 1 and move it above the non-applicable struct kvm_pmu members. Signed-off-by: Borislav Petkov Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Janakarajan Natarajan Cc: kvm@vger.kernel.org Cc: Liran Alon Cc: Mihai Carabas Cc: Paolo Bonzini Cc: Peter Zijlstra Cc: "Radim Krčmář" Cc: Thomas Gleixner Cc: Tom Lendacky Cc: x86@kernel.org Cc: stable@vger.kernel.org Fixes: 672ff6cff80c ("KVM: x86: Raise #GP when guest vCPU do not support PMU") Signed-off-by: Paolo Bonzini commit 6f2f84532c153d32a5e53b6083b06a3e24368d30 Author: Paolo Bonzini Date: Mon May 20 15:34:35 2019 +0200 KVM: x86: do not spam dmesg with VMCS/VMCB dumps Userspace can easily set up invalid processor state in such a way that dmesg will be filled with VMCS or VMCB dumps. Disable this by default using a module parameter. Signed-off-by: Paolo Bonzini commit 654f1f13ea56b92bacade8ce2725aea0457f91c0 Author: Peter Xu Date: Sun May 5 16:56:42 2019 +0800 kvm: Check irqchip mode before assign irqfd When assigning kvm irqfd we didn't check the irqchip mode but we allow KVM_IRQFD to succeed with all the irqchip modes. However it does not make much sense to create irqfd even without the kernel chips. Let's provide a arch-dependent helper to check whether a specific irqfd is allowed by the arch. At least for x86, it should make sense to check: - when irqchip mode is NONE, all irqfds should be disallowed, and, - when irqchip mode is SPLIT, irqfds that are with resamplefd should be disallowed. For either of the case, previously we'll silently ignore the irq or the irq ack event if the irqchip mode is incorrect. However that can cause misterious guest behaviors and it can be hard to triage. Let's fail KVM_IRQFD even earlier to detect these incorrect configurations. CC: Paolo Bonzini CC: Radim Krčmář CC: Alex Williamson CC: Eduardo Habkost Signed-off-by: Peter Xu Cc: stable@vger.kernel.org Signed-off-by: Paolo Bonzini commit c9bcd3e3335d0a29d89fabd2c385e1b989e6f1b0 Author: Suthikulpanit, Suravee Date: Tue May 14 15:49:52 2019 +0000 kvm: svm/avic: fix off-by-one in checking host APIC ID Current logic does not allow VCPU to be loaded onto CPU with APIC ID 255. This should be allowed since the host physical APIC ID field in the AVIC Physical APIC table entry is an 8-bit value, and APIC ID 255 is valid in system with x2APIC enabled. Instead, do not allow VCPU load if the host APIC ID cannot be represented by an 8-bit value. Also, use the more appropriate AVIC_PHYSICAL_ID_ENTRY_HOST_PHYSICAL_ID_MASK instead of AVIC_MAX_PHYSICAL_ID_COUNT. Signed-off-by: Suravee Suthikulpanit Cc: stable@vger.kernel.org Signed-off-by: Paolo Bonzini commit 204c91eff798a78498cc7cbf1bc76892badfa96d Author: Paolo Bonzini Date: Mon May 20 13:31:02 2019 +0200 KVM: selftests: do not blindly clobber registers in guest asm The guest_code of sync_regs_test is assuming that the compiler will not touch %r11 outside the asm that increments it, which is a bit brittle. Instead, we can increment a variable and use a dummy asm to ensure the increment is not optimized away. However, we also need to use a callee-save register or the compiler will insert a save/restore around the vmexit, breaking the whole idea behind the test. (Yes, "if it ain't broken...", but I would like the test to be clean before it is copied into the upcoming s390 selftests). Signed-off-by: Paolo Bonzini commit 12e9612cae0c272e0dabfc570a6d855f07361914 Author: Thomas Huth Date: Mon May 20 12:55:11 2019 +0200 KVM: selftests: Remove duplicated TEST_ASSERT in hyperv_cpuid.c The check for entry->index == 0 is done twice. One time should be sufficient. Suggested-by: Vitaly Kuznetsov Signed-off-by: Thomas Huth Signed-off-by: Paolo Bonzini commit 16ba3ab4e15ca031270deb3cbfd38416c719e291 Author: Wanpeng Li Date: Mon May 20 16:18:07 2019 +0800 KVM: LAPIC: Expose per-vCPU timer_advance_ns to userspace Expose per-vCPU timer_advance_ns to userspace, so it is able to query the auto-adjusted value. Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Sean Christopherson Cc: Liran Alon Signed-off-by: Wanpeng Li Signed-off-by: Paolo Bonzini commit 0e6edceb8f18a4e31526d83e6099fef1f29c3af5 Author: Wanpeng Li Date: Mon May 20 16:18:06 2019 +0800 KVM: LAPIC: Fix lapic_timer_advance_ns parameter overflow After commit c3941d9e0 (KVM: lapic: Allow user to disable adaptive tuning of timer advancement), '-1' enables adaptive tuning starting from default advancment of 1000ns. However, we should expose an int instead of an overflow uint module parameter. Before patch: /sys/module/kvm/parameters/lapic_timer_advance_ns:4294967295 After patch: /sys/module/kvm/parameters/lapic_timer_advance_ns:-1 Fixes: c3941d9e0 (KVM: lapic: Allow user to disable adaptive tuning of timer advancement) Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Sean Christopherson Cc: Liran Alon Reviewed-by: Sean Christopherson Signed-off-by: Wanpeng Li Signed-off-by: Paolo Bonzini commit 4d259965655c92053f3255aca14d81aab1e21219 Author: Yi Wang Date: Mon May 20 12:27:47 2019 +0800 kvm: vmx: Fix -Wmissing-prototypes warnings We get a warning when build kernel W=1: arch/x86/kvm/vmx/vmx.c:6365:6: warning: no previous prototype for ‘vmx_update_host_rsp’ [-Wmissing-prototypes] void vmx_update_host_rsp(struct vcpu_vmx *vmx, unsigned long host_rsp) Add the missing declaration to fix this. Signed-off-by: Yi Wang Signed-off-by: Paolo Bonzini commit 541e886f7972cc647804dbb4909189e67987a945 Author: Wanpeng Li Date: Fri May 17 16:49:50 2019 +0800 KVM: nVMX: Fix using __this_cpu_read() in preemptible context BUG: using __this_cpu_read() in preemptible [00000000] code: qemu-system-x86/4590 caller is nested_vmx_enter_non_root_mode+0xebd/0x1790 [kvm_intel] CPU: 4 PID: 4590 Comm: qemu-system-x86 Tainted: G OE 5.1.0-rc4+ #1 Call Trace: dump_stack+0x67/0x95 __this_cpu_preempt_check+0xd2/0xe0 nested_vmx_enter_non_root_mode+0xebd/0x1790 [kvm_intel] nested_vmx_run+0xda/0x2b0 [kvm_intel] handle_vmlaunch+0x13/0x20 [kvm_intel] vmx_handle_exit+0xbd/0x660 [kvm_intel] kvm_arch_vcpu_ioctl_run+0xa2c/0x1e50 [kvm] kvm_vcpu_ioctl+0x3ad/0x6d0 [kvm] do_vfs_ioctl+0xa5/0x6e0 ksys_ioctl+0x6d/0x80 __x64_sys_ioctl+0x1a/0x20 do_syscall_64+0x6f/0x6c0 entry_SYSCALL_64_after_hwframe+0x49/0xbe Accessing per-cpu variable should disable preemption, this patch extends the preemption disable region for __this_cpu_read(). Cc: Paolo Bonzini Cc: Radim Krčmář Signed-off-by: Wanpeng Li Fixes: 52017608da33 ("KVM: nVMX: add option to perform early consistency checks via H/W") Cc: stable@vger.kernel.org Reviewed-by: Sean Christopherson Signed-off-by: Paolo Bonzini commit d30b214d1d0addb7b2c9c78178d1501cd39a01fb Author: Paolo Bonzini Date: Mon May 20 12:06:36 2019 +0200 kvm: fix compilation on s390 s390 does not have memremap, even though in this particular case it would be useful. Signed-off-by: Paolo Bonzini commit 382409b4c43e5b44ae4a869ff793d3cf01d12004 Author: Jim Mattson Date: Wed Mar 27 13:15:37 2019 -0700 kvm: x86: Include CPUID leaf 0x8000001e in kvm's supported CPUID Kvm now supports extended CPUID functions through 0x8000001f. CPUID leaf 0x8000001e is AMD's Processor Topology Information leaf. This contains similar information to CPUID leaf 0xb (Intel's Extended Topology Enumeration leaf), and should be included in the output of KVM_GET_SUPPORTED_CPUID, even though userspace is likely to override some of this information based upon the configuration of the particular VM. Cc: Brijesh Singh Cc: Borislav Petkov Fixes: 8765d75329a38 ("KVM: X86: Extend CPUID range to include new leaf") Signed-off-by: Jim Mattson Reviewed-by: Marc Orr Reviewed-by: Borislav Petkov Signed-off-by: Paolo Bonzini commit 32a243df82c8dc04ccba7fc6c6564ae9261cb738 Author: Jim Mattson Date: Wed Mar 27 13:15:36 2019 -0700 kvm: x86: Include multiple indices with CPUID leaf 0x8000001d Per the APM, "CPUID Fn8000_001D_E[D,C,B,A]X reports cache topology information for the cache enumerated by the value passed to the instruction in ECX, referred to as Cache n in the following description. To gather information for all cache levels, software must repeatedly execute CPUID with 8000_001Dh in EAX and ECX set to increasing values beginning with 0 until a value of 00h is returned in the field CacheType (EAX[4:0]) indicating no more cache descriptions are available for this processor." The termination condition is the same as leaf 4, so we can reuse that code block for leaf 0x8000001d. Fixes: 8765d75329a38 ("KVM: X86: Extend CPUID range to include new leaf") Cc: Brijesh Singh Cc: Borislav Petkov Signed-off-by: Jim Mattson Reviewed-by: Marc Orr Reviewed-by: Borislav Petkov Signed-off-by: Paolo Bonzini commit 319f6f97e3a16c38795168753db8740f77b156c9 Author: Thomas Huth Date: Fri May 17 11:04:45 2019 +0200 KVM: selftests: Compile code with warnings enabled So far the KVM selftests are compiled without any compiler warnings enabled. That's quite bad, since we miss a lot of possible bugs this way. Let's enable at least "-Wall" and some other useful warning flags now, and fix at least the trivial problems in the code (like unused variables). Signed-off-by: Thomas Huth Signed-off-by: Paolo Bonzini commit 3b339e2527a6db257fa8f2a4cab3c510432a98d5 Author: Paolo Bonzini Date: Mon May 20 12:02:16 2019 +0200 kvm: selftests: avoid type punning Avoid warnings from -Wstrict-aliasing by using memcpy. Reviewed-by: Thomas Huth Signed-off-by: Paolo Bonzini commit be7fcf1d1701a5266dd36eab4978476f63d1bd57 Author: Dan Carpenter Date: Tue May 14 13:34:51 2019 +0300 KVM: selftests: Fix a condition in test_hv_cpuid() The code is trying to check that all the padding is zeroed out and it does this: entry->padding[0] == entry->padding[1] == entry->padding[2] == 0 Assume everything is zeroed correctly, then the first comparison is true, the next comparison is false and false is equal to zero so the overall condition is true. This bug doesn't affect run time very badly, but the code should instead just check that all three paddings are zero individually. Also the error message was copy and pasted from an earlier error and it wasn't correct. Fixes: 7edcb7343327 ("KVM: selftests: Add hyperv_cpuid test") Signed-off-by: Dan Carpenter Reviewed-by: Vitaly Kuznetsov Reviewed-by: Thomas Huth Signed-off-by: Paolo Bonzini commit 2eb06c306a579853346d22eda73332ed4f3e81e3 Author: Wanpeng Li Date: Fri May 17 16:49:49 2019 +0800 KVM: Fix spinlock taken warning during host resume WARNING: CPU: 0 PID: 13554 at kvm/arch/x86/kvm//../../../virt/kvm/kvm_main.c:4183 kvm_resume+0x3c/0x40 [kvm] CPU: 0 PID: 13554 Comm: step_after_susp Tainted: G OE 5.1.0-rc4+ #1 RIP: 0010:kvm_resume+0x3c/0x40 [kvm] Call Trace: syscore_resume+0x63/0x2d0 suspend_devices_and_enter+0x9d1/0xa40 pm_suspend+0x33a/0x3b0 state_store+0x82/0xf0 kobj_attr_store+0x12/0x20 sysfs_kf_write+0x4b/0x60 kernfs_fop_write+0x120/0x1a0 __vfs_write+0x1b/0x40 vfs_write+0xcd/0x1d0 ksys_write+0x5f/0xe0 __x64_sys_write+0x1a/0x20 do_syscall_64+0x6f/0x6c0 entry_SYSCALL_64_after_hwframe+0x49/0xbe Commit ca84d1a24 (KVM: x86: Add clock sync request to hardware enable) mentioned that "we always hold kvm_lock when hardware_enable is called. The one place that doesn't need to worry about it is resume, as resuming a frozen CPU, the spinlock won't be taken." However, commit 6706dae9 (virt/kvm: Replace spin_is_locked() with lockdep) introduces a bug, it asserts when the lock is not held which is contrary to the original goal. This patch fixes it by WARN_ON when the lock is held. Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Paul E. McKenney Signed-off-by: Wanpeng Li Fixes: 6706dae9 ("virt/kvm: Replace spin_is_locked() with lockdep") [Wrap with #ifdef CONFIG_LOCKDEP - Paolo] Signed-off-by: Paolo Bonzini commit 21be4ca1ea685ab3ccc2fd18babb89bc477a9e5c Author: Sean Christopherson Date: Wed May 8 11:04:32 2019 -0700 KVM: nVMX: Clear nested_run_pending if setting nested state fails VMX's nested_run_pending flag is subtly consumed when stuffing state to enter guest mode, i.e. needs to be set according before KVM knows if setting guest state is successful. If setting guest state fails, clear the flag as a nested run is obviously not pending. Reported-by: Aaron Lewis Signed-off-by: Sean Christopherson Signed-off-by: Paolo Bonzini commit db80927ea1977a845230a161df643b48fd1e1ea4 Author: Paolo Bonzini Date: Mon May 20 11:55:36 2019 +0200 KVM: nVMX: really fix the size checks on KVM_SET_NESTED_STATE The offset for reading the shadow VMCS is sizeof(*kvm_state)+VMCS12_SIZE, so the correct size must be that plus sizeof(*vmcs12). This could lead to KVM reading garbage data from userspace and not reporting an error, but is otherwise not sensitive. Signed-off-by: Paolo Bonzini commit 6bff2a3dc9ba6ef1054da1094554cc0c87f377ed Merge: 94830f188a80 623e1528d409 Author: Paolo Bonzini Date: Fri May 24 21:27:00 2019 +0200 Merge tag 'kvmarm-fixes-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD KVM/arm updates for 5.2-rc2 - Correctly annotate HYP-callable code to be non-traceable - Remove Christoffer from the MAINTAINERS file as his request commit a47686636d84eaec5c9c6e84bd5f96bed34d526d Author: Mauro Carvalho Chehab Date: Fri May 24 10:59:43 2019 -0400 media: smsusb: better handle optional alignment Most Siano devices require an alignment for the response. Changeset f3be52b0056a ("media: usb: siano: Fix general protection fault in smsusb") changed the logic with gets such aligment, but it now produces a sparce warning: drivers/media/usb/siano/smsusb.c: In function 'smsusb_init_device': drivers/media/usb/siano/smsusb.c:447:37: warning: 'in_maxp' may be used uninitialized in this function [-Wmaybe-uninitialized] 447 | dev->response_alignment = in_maxp - sizeof(struct sms_msg_hdr); | ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ The sparse message itself is bogus, but a broken (or fake) USB eeprom could produce a negative value for response_alignment. So, change the code in order to check if the result is not negative. Fixes: 31e0456de5be ("media: usb: siano: Fix general protection fault in smsusb") CC: Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Greg Kroah-Hartman commit bd17cc5a20ae9aaa3ed775f360b75ff93cd66a1d Author: Dan Carpenter Date: Wed May 15 12:33:22 2019 +0300 test_firmware: Use correct snprintf() limit The limit here is supposed to be how much of the page is left, but it's just using PAGE_SIZE as the limit. The other thing to remember is that snprintf() returns the number of bytes which would have been copied if we had had enough room. So that means that if we run out of space then this code would end up passing a negative value as the limit and the kernel would print an error message. I have change the code to use scnprintf() which returns the number of bytes that were successfully printed (not counting the NUL terminator). Fixes: c92316bf8e94 ("test_firmware: add batched firmware tests") Signed-off-by: Dan Carpenter Cc: stable Signed-off-by: Greg Kroah-Hartman commit 110080cea0d0e4dfdb0b536e7f8a5633ead6a781 Author: Dan Carpenter Date: Tue May 7 11:36:34 2019 +0300 genwqe: Prevent an integer overflow in the ioctl There are a couple potential integer overflows here. round_up(m->size + (m->addr & ~PAGE_MASK), PAGE_SIZE); The first thing is that the "m->size + (...)" addition could overflow, and the second is that round_up() overflows to zero if the result is within PAGE_SIZE of the type max. In this code, the "m->size" variable is an u64 but we're saving the result in "map_size" which is an unsigned long and genwqe_user_vmap() takes an unsigned long as well. So I have used ULONG_MAX as the upper bound. From a practical perspective unsigned long is fine/better than trying to change all the types to u64. Fixes: eaf4722d4645 ("GenWQE Character device and DDCB queue") Signed-off-by: Dan Carpenter Cc: stable Signed-off-by: Greg Kroah-Hartman commit 1c7ebeabc9e5ee12e42075a597de40fdb9059530 Author: YueHaibing Date: Tue May 14 23:24:37 2019 +0800 parport: Fix mem leak in parport_register_dev_model BUG: memory leak unreferenced object 0xffff8881df48cda0 (size 16): comm "syz-executor.0", pid 5077, jiffies 4295994670 (age 22.280s) hex dump (first 16 bytes): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [<00000000d2d0d5fe>] parport_register_dev_model+0x141/0x6e0 [parport] [<00000000782f6dab>] 0xffffffffc15d1196 [<00000000d2ca6ae4>] platform_drv_probe+0x7e/0x100 [<00000000628c2a94>] really_probe+0x342/0x4d0 [<000000006874f5da>] driver_probe_device+0x8c/0x170 [<00000000424de37a>] __device_attach_driver+0xda/0x100 [<000000002acab09a>] bus_for_each_drv+0xfe/0x170 [<000000003d9e5f31>] __device_attach+0x190/0x230 [<0000000035d32f80>] bus_probe_device+0x123/0x140 [<00000000a05ba627>] device_add+0x7cc/0xce0 [<000000003f7560bf>] platform_device_add+0x230/0x3c0 [<000000002a0be07d>] 0xffffffffc15d0949 [<000000007361d8d2>] port_check+0x3b/0x50 [parport] [<000000004d67200f>] bus_for_each_dev+0x115/0x180 [<000000003ccfd11c>] __parport_register_driver+0x1f0/0x210 [parport] [<00000000987f06fc>] 0xffffffffc15d803e After commit 4e5a74f1db8d ("parport: Revert "parport: fix memory leak""), free_pardevice do not free par_dev->state, we should free it in error path of parport_register_dev_model before return. Reported-by: Hulk Robot Fixes: 4e5a74f1db8d ("parport: Revert "parport: fix memory leak"") Signed-off-by: YueHaibing Signed-off-by: Greg Kroah-Hartman commit de9a7f6f5f1967d275311cca9163b4a3ffe9b0ae Author: Chengguang Xu Date: Thu May 9 16:08:29 2019 -0500 fpga: dfl: expand minor range when registering chrdev region Actually, total amount of available minor number for a single major is MINORMASK + 1. So expand minor range when registering chrdev region. Signed-off-by: Chengguang Xu Acked-by: Wu Hao Acked-by: Alan Tull Signed-off-by: Greg Kroah-Hartman commit dfe3de8d397bf878b31864d4e489d41118ec475f Author: Scott Wood Date: Thu May 9 16:08:28 2019 -0500 fpga: dfl: Add lockdep classes for pdata->lock struct dfl_feature_platform_data (and it's mutex) is used by both fme and port devices, and when lockdep is enabled it complains about nesting between these locks. Tell lockdep about the difference so it can track each class separately. Here's the lockdep complaint: [ 409.680668] WARNING: possible recursive locking detected [ 409.685983] 5.1.0-rc3.fpga+ #1 Tainted: G E [ 409.691469] -------------------------------------------- [ 409.696779] fpgaconf/9348 is trying to acquire lock: [ 409.701746] 00000000a443fe2e (&pdata->lock){+.+.}, at: port_enable_set+0x24/0x60 [dfl_afu] [ 409.710006] [ 409.710006] but task is already holding lock: [ 409.715837] 0000000063b78782 (&pdata->lock){+.+.}, at: fme_pr_ioctl+0x21d/0x330 [dfl_fme] [ 409.724012] [ 409.724012] other info that might help us debug this: [ 409.730535] Possible unsafe locking scenario: [ 409.730535] [ 409.736457] CPU0 [ 409.738910] ---- [ 409.741360] lock(&pdata->lock); [ 409.744679] lock(&pdata->lock); [ 409.747999] [ 409.747999] *** DEADLOCK *** [ 409.747999] [ 409.753920] May be due to missing lock nesting notation [ 409.753920] [ 409.760704] 4 locks held by fpgaconf/9348: [ 409.764805] #0: 0000000063b78782 (&pdata->lock){+.+.}, at: fme_pr_ioctl+0x21d/0x330 [dfl_fme] [ 409.773408] #1: 00000000213c8a66 (®ion->mutex){+.+.}, at: fpga_region_program_fpga+0x24/0x200 [fpga_region] [ 409.783489] #2: 00000000fe63afb9 (&mgr->ref_mutex){+.+.}, at: fpga_mgr_lock+0x15/0x40 [fpga_mgr] [ 409.792354] #3: 000000000b2285c5 (&bridge->mutex){+.+.}, at: __fpga_bridge_get+0x26/0xa0 [fpga_bridge] [ 409.801740] [ 409.801740] stack backtrace: [ 409.806102] CPU: 45 PID: 9348 Comm: fpgaconf Kdump: loaded Tainted: G E 5.1.0-rc3.fpga+ #1 [ 409.815658] Hardware name: Intel Corporation S2600BT/S2600BT, BIOS SE5C620.86B.01.00.0763.022420181017 02/24/2018 [ 409.825911] Call Trace: [ 409.828369] dump_stack+0x5e/0x8b [ 409.831686] __lock_acquire+0xf3d/0x10e0 [ 409.835612] ? find_held_lock+0x3c/0xa0 [ 409.839451] lock_acquire+0xbc/0x1d0 [ 409.843030] ? port_enable_set+0x24/0x60 [dfl_afu] [ 409.847823] ? port_enable_set+0x24/0x60 [dfl_afu] [ 409.852616] __mutex_lock+0x86/0x970 [ 409.856195] ? port_enable_set+0x24/0x60 [dfl_afu] [ 409.860989] ? port_enable_set+0x24/0x60 [dfl_afu] [ 409.865777] ? __mutex_unlock_slowpath+0x4b/0x290 [ 409.870486] port_enable_set+0x24/0x60 [dfl_afu] [ 409.875106] fpga_bridges_disable+0x36/0x50 [fpga_bridge] [ 409.880502] fpga_region_program_fpga+0xea/0x200 [fpga_region] [ 409.886338] fme_pr_ioctl+0x13e/0x330 [dfl_fme] [ 409.890870] fme_ioctl+0x66/0xe0 [dfl_fme] [ 409.894973] do_vfs_ioctl+0xa9/0x720 [ 409.898548] ? lockdep_hardirqs_on+0xf0/0x1a0 [ 409.902907] ksys_ioctl+0x60/0x90 [ 409.906225] __x64_sys_ioctl+0x16/0x20 [ 409.909981] do_syscall_64+0x5a/0x220 [ 409.913644] entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 409.918698] RIP: 0033:0x7f9d31b9b8d7 [ 409.922276] Code: 44 00 00 48 8b 05 b9 15 2d 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 89 15 2d 00 f7 d8 64 89 01 48 [ 409.941020] RSP: 002b:00007ffe4cae0d68 EFLAGS: 00000202 ORIG_RAX: 0000000000000010 [ 409.948588] RAX: ffffffffffffffda RBX: 00007f9d32ade6a0 RCX: 00007f9d31b9b8d7 [ 409.955719] RDX: 00007ffe4cae0df0 RSI: 000000000000b680 RDI: 0000000000000003 [ 409.962852] RBP: 0000000000000003 R08: 00007f9d2b70a177 R09: 00007ffe4cae0e40 [ 409.969984] R10: 00007ffe4cae0160 R11: 0000000000000202 R12: 00007ffe4cae0df0 [ 409.977115] R13: 000000000000b680 R14: 0000000000000000 R15: 00007ffe4cae0f60 Signed-off-by: Scott Wood Acked-by: Wu Hao Acked-by: Alan Tull Signed-off-by: Greg Kroah-Hartman commit 13069847a475b60069918dc9971f5adb42811ce3 Author: Scott Wood Date: Thu May 9 16:08:27 2019 -0500 fpga: dfl: afu: Pass the correct device to dma_mapping_error() dma_mapping_error() was being called on a different device struct than what was passed to map/unmap. Besides rendering the error checking ineffective, it caused a debug splat with CONFIG_DMA_API_DEBUG. Signed-off-by: Scott Wood Acked-by: Wu Hao Acked-by: Moritz Fischer Acked-by: Alan Tull Signed-off-by: Greg Kroah-Hartman commit f5dd87326fefe42a4b1a4b1a1a695060c33a88d6 Author: Wen Yang Date: Thu May 9 16:08:26 2019 -0500 fpga: stratix10-soc: fix use-after-free on s10_init() The refcount of fw_np has already been decreased by of_find_matching_node() so it shouldn't be used anymore. This patch adds an of_node_get() before of_find_matching_node() to avoid the use-after-free problem. Fixes: e7eef1d7633a ("fpga: add intel stratix10 soc fpga manager driver") Signed-off-by: Wen Yang Cc: Alan Tull Cc: Moritz Fischer Cc: Nicolas Saenz Julienne Cc: linux-fpga@vger.kernel.org Cc: linux-kernel@vger.kernel.org Reviewed-by: Moritz Fischer Reviewed-by: Nicolas Saenz Julienne Acked-by: Alan Tull Signed-off-by: Greg Kroah-Hartman commit 02bd610e858d764fb32ebfa123083fdbadd88a08 Merge: 6660a04feb7e 24cccab42c41 Author: Greg Kroah-Hartman Date: Fri May 24 20:30:04 2019 +0200 Merge tag 'lkdtm-next' of https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux into char-misc-linus Kees writes: lkdtm: various fixes - Move KERNEL_DS test to non-canonical range - Make stack exhaustion test more robust * tag 'lkdtm-next' of https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: lkdtm/bugs: Adjust recursion test to avoid elision lkdtm/usercopy: Moves the KERNEL_DS test to non-canonical commit 6660a04feb7ef648e50c792e19084d675fa6f3a2 Author: Mariusz Bialonczyk Date: Thu May 16 14:39:21 2019 +0200 w1: ds2408: Fix typo after 49695ac46861 (reset on output_write retry with readback) Fix a typo in commit: 49695ac46861 w1: ds2408: reset on output_write retry with readback Fixes: 49695ac46861 ("w1: ds2408: reset on output_write retry with readback") Reported-by: Phil Elwell Cc: Jean-Francois Dagenais Signed-off-by: Mariusz Bialonczyk Signed-off-by: Greg Kroah-Hartman commit 1457dc9ed8da871fbbc0a2ebdaed0405eeeed0cf Author: Joel Fernandes (Google) Date: Wed May 15 17:35:52 2019 -0400 kheaders: Do not regenerate archive if config is not changed Linus reported an issue that doing an allmodconfig was causing the kheaders archive to be regenerated even though the config is the same. This patch fixes the issue by ignoring the config-related header files for "knowing when to regenerate based on timestamps". Instead, if the CONFIG_X_Y option really changes, then we there are the include/config/X/Y.h which will already tells us "if a config really changed". So we don't really need these files for regeneration detection anyway, and ignoring them fixes Linus's issue. Reported-by: Linus Torvalds Signed-off-by: Joel Fernandes (Google) Signed-off-by: Greg Kroah-Hartman commit f7b101d33046a837c2aa4526cef28a3c785d7af2 Author: Joel Fernandes (Google) Date: Wed May 15 17:35:51 2019 -0400 kheaders: Move from proc to sysfs The kheaders archive consisting of the kernel headers used for compiling bpf programs is in /proc. However there is concern that moving it here will make it permanent. Let us move it to /sys/kernel as discussed [1]. [1] https://lore.kernel.org/patchwork/patch/1067310/#1265969 Suggested-by: Steven Rostedt Signed-off-by: Joel Fernandes (Google) Signed-off-by: Greg Kroah-Hartman commit 0a72ef89901409847036664c23ba6eee7cf08e0e Merge: c50bbf615f2f edbcf50eb8ae Author: Linus Torvalds Date: Fri May 24 11:03:26 2019 -0700 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull more arm64 fixes from Will Deacon: - Fix incorrect LDADD instruction encoding in our disassembly macros - Disable the broken ARM64_PSEUDO_NMI support for now - Add workaround for Cortex-A76 CPU erratum #1463225 - Handle Cortex-A76/Neoverse-N1 erratum #1418040 w/ existing workaround - Fix IORT build failure if IOMMU_SUPPORT=n - Fix place-relative module relocation range checking and its interaction with KASLR * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: insn: Add BUILD_BUG_ON() for invalid masks arm64: insn: Fix ldadd instruction encoding arm64: Kconfig: Make ARM64_PSEUDO_NMI depend on BROKEN for now arm64: Handle erratum 1418040 as a superset of erratum 1188873 arm64/module: deal with ambiguity in PRELxx relocation ranges ACPI/IORT: Fix build error when IOMMU_SUPPORT is disabled arm64/kernel: kaslr: reduce module randomization range to 2 GB arm64: errata: Add workaround for Cortex-A76 erratum #1463225 arm64: Remove useless message during oops commit c50bbf615f2f0028ad1771506ef8807130ccc2ce Merge: 49bbd8bb34a4 d6423bd03031 Author: Linus Torvalds Date: Fri May 24 10:19:26 2019 -0700 Merge tag 'platform-drivers-x86-v5.2-2' of git://git.infradead.org/linux-platform-drivers-x86 Pull x86 platform driver fixes from Andy Shevchenko: "Some of Intel Cherrytrail based platforms depend on PMC clock to be always on. Here are a couple of quirks to the driver to support affected hardware" * tag 'platform-drivers-x86-v5.2-2' of git://git.infradead.org/linux-platform-drivers-x86: platform/x86: pmc_atom: Add several Beckhoff Automation boards to critclk_systems DMI table platform/x86: pmc_atom: Add Lex 3I380D industrial PC to critclk_systems DMI table commit 49bbd8bb34a48267afb116c3dcfe0cb30b6638cb Merge: e50e6798f1e2 6a310f8f97bb Author: Linus Torvalds Date: Fri May 24 10:04:17 2019 -0700 Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal Pull thermal SoC fixes from Eduardo Valentin: - revert pinctrl settings on rockchip which causes boot failure on rk3288. The proper follow-up patch is being discussed, meanwhile the revert gets those booting again. - minor fixes on rcar and tegra * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal: thermal: rcar_gen3_thermal: Update temperature conversion method thermal: rcar_gen3_thermal: Update calculation formula of IRQTEMP thermal: rcar_gen3_thermal: Update value of Tj_1 thermal: tegra: Make tegra210_tsensor_thermtrips static Revert "thermal: rockchip: fix up the tsadc pinctrl setting error" commit e50e6798f1e29e57bc83ba546a9bbbdabe1104a4 Merge: a3b25d157d5a ec0970e0a1b2 Author: Linus Torvalds Date: Fri May 24 09:57:11 2019 -0700 Merge tag 'mmc-v5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc Pull MMC fixes from Ulf Hansson: "Fix HS50 data hold time problem for a few variants of sdhci-iproc" * tag 'mmc-v5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: mmc: sdhci-iproc: Set NO_HISPD bit to fix HS50 data hold time problem mmc: sdhci-iproc: cygnus: Set NO_HISPD bit to fix HS50 data hold time problem commit a3b25d157d5a52ef3f9296a739ee28f5d36e8968 Merge: 4dde821e4296 c07498917180 Author: Linus Torvalds Date: Fri May 24 09:12:46 2019 -0700 Merge tag 'drm-fixes-2019-05-24-1' of git://anongit.freedesktop.org/drm/drm Pull drm fixes from Dave Airlie: "Nothing too unusual here for rc2. Except the amdgpu DMCU firmware loading fix caused build breakage with a different set of Kconfig options. I've just reverted it for now until the AMD folks can rewrite it to avoid that problem. i915: - boosting fix - bump ready task fixes - GVT - reset fix, error return, TRTT handling fix amdgpu: - DMCU firmware loading fix - Polaris 10 pci id for kfd - picasso screen corruption fix - SR-IOV fixes - vega driver reload fixes - SMU locking fix - compute profile fix for kfd vmwgfx: - integer overflow fixes - dma sg fix sun4i: - HDMI phy fixes gma500: - LVDS detection fix panfrost: - devfreq selection fix" * tag 'drm-fixes-2019-05-24-1' of git://anongit.freedesktop.org/drm/drm: (32 commits) Revert "drm/amd/display: Don't load DMCU for Raven 1" drm/panfrost: Select devfreq drm/gma500/cdv: Check vbt config bits when detecting lvds panels drm/vmwgfx: integer underflow in vmw_cmd_dx_set_shader() leading to an invalid read drm/vmwgfx: NULL pointer dereference from vmw_cmd_dx_view_define() drm/vmwgfx: Use the dma scatter-gather iterator to get dma addresses drm/vmwgfx: Fix compat mode shader operation drm/vmwgfx: Fix user space handle equal to zero drm/vmwgfx: Don't send drm sysfs hotplug events on initial master set drm/i915/gvt: Fix an error code in ppgtt_populate_spt_by_guest_entry() drm/i915/gvt: do not let TRTTE and 0x4dfc write passthrough to hardware drm/i915/gvt: add 0x4dfc to gen9 save-restore list drm/i915/gvt: Tiled Resources mmios are in-context mmios for gen9+ drm/i915/gvt: use cmd to restore in-context mmios to hw for gen9 platform drm/i915/gvt: emit init breadcrumb for gvt request drm/amdkfd: Fix compute profile switching drm/amdgpu: skip fw pri bo alloc for SRIOV drm/amd/powerplay: fix locking in smu_feature_set_supported() drm/amdgpu/gmc9: set vram_width properly for SR-IOV drm/amdgpu/soc15: skip reset on init ... commit 060358de993f24562e884e265c4c57864a3a4141 Author: Thomas Gleixner Date: Thu May 23 11:15:02 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 125 Based on 1 normalized pattern(s): osl gpl code release authorized by [jalil] [fadavi] this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program see the file copying if not write to the free software foundation 675 mass ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190523091651.689335553@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 9dd0abd232e0d42a3fce844983f641b99dea6a67 Author: Thomas Gleixner Date: Thu May 23 11:15:00 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 123 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms and conditions of the gnu general public license version 2 or later as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 7 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190523091651.504392586@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 236b83a3dd13606c73ac9db1ceb2e1e560bfebf4 Author: Thomas Gleixner Date: Thu May 23 11:14:59 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 122 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190523091651.414247666@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 10145f7cb3071c71b7039fdb436416bda4c3f88a Author: Thomas Gleixner Date: Thu May 23 11:14:58 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 121 Based on 1 normalized pattern(s): licensed under the gplv2 or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190523091651.323272658@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 588cb88cedd56cb8272c312aac59b5e204f036a7 Author: Thomas Gleixner Date: Thu May 23 11:14:57 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 120 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see the file copying or write to the free software foundation inc extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 12 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190523091651.231300438@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4c694f289f2d02ec57459366c8b38436ad74e668 Author: Thomas Gleixner Date: Thu May 23 11:14:56 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 119 Based on 1 normalized pattern(s): released under the gpl this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190523091651.124582774@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 3e0a4e85803345e31ae2d0009bedf252e43278cb Author: Thomas Gleixner Date: Thu May 23 11:14:55 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 118 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 44 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190523091651.032047323@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 778ddf54470b668697bcc2856283218f2504887c Author: Thomas Gleixner Date: Thu May 23 11:14:53 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 116 Based on 1 normalized pattern(s): gpl license this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190523091650.847878191@linutronix.de Signed-off-by: Greg Kroah-Hartman commit d5bb994bcdf9b7751a89357d996e3c9296814db0 Author: Thomas Gleixner Date: Thu May 23 11:14:51 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 114 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 8 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190523091650.663497195@linutronix.de Signed-off-by: Greg Kroah-Hartman commit a0c7056fda3ff4a6c06127bbb86c2e8641e5f7a8 Author: Thomas Gleixner Date: Thu May 23 11:14:50 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 113 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details to obtain the license point your browser to http www gnu org copyleft gpl html extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 26 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190523091650.572604764@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f4344b19fa2d081a24d802dbab99223751e19bcd Author: Thomas Gleixner Date: Thu May 23 11:14:49 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 112 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 4 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190523091650.480557885@linutronix.de Signed-off-by: Greg Kroah-Hartman commit fe963fd8d170471332a8cb20858b5c47e95935b7 Author: Thomas Gleixner Date: Thu May 23 11:14:48 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 111 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify i t under the terms of the gnu general public license as published by th e free software foundation either version 2 of the license or at you r option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190523091650.375638818@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 226b0b0a841b02eb1cf96cf9fe80e91ca589cd1b Author: Thomas Gleixner Date: Thu May 23 11:14:47 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 110 Based on 1 normalized pattern(s): this file is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this file is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190523091650.284757242@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f4f6a4a48b7c9b87a99a5518c1ef191674db8337 Author: Thomas Gleixner Date: Thu May 23 11:14:43 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 106 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this software is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with atmel wireless lan drivers if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190523091649.881590905@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 9ba3dd0b527006c1f41b87273cef676817f6e0aa Author: Thomas Gleixner Date: Thu May 23 11:14:42 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 105 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version author [hema] [hk] [hemahk]@[ti] [com] this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 675 mass ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190523091649.791555110@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 47505b8bcfcffffe878ea1fee412922f3bfd7262 Author: Thomas Gleixner Date: Thu May 23 11:14:41 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 104 Based on 1 normalized pattern(s): this sctp implementation is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 or at your option any later version this sctp implementation is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with gnu cc see the file copying if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 42 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190523091649.683323110@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 8e8caf97b23082b210b5062cfe4963a4a87da5cb Author: Thomas Gleixner Date: Thu May 23 11:14:40 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 103 Based on 1 normalized pattern(s): the sctp implementation is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 or at your option any later version the sctp implementation is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with gnu cc see the file copying if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190523091649.592169384@linutronix.de Signed-off-by: Greg Kroah-Hartman commit fd534e9b5fdcf9bab33c03cb3ade1a1ae5b23c20 Author: Thomas Gleixner Date: Thu May 23 11:14:39 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 102 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin st fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 50 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190523091649.499889647@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 1924af04455cd9572c46c523991a61c3ea8c8615 Author: Thomas Gleixner Date: Thu May 23 11:14:38 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 101 Based on 1 normalized pattern(s): the sctp reference implementation is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 or at your option any later version the sctp reference implementation is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with gnu cc see the file copying if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190523091649.408473526@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 8607a96520b602f49f2c8cd1399dd83e64c524b9 Author: Thomas Gleixner Date: Wed May 22 09:51:44 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 98 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your optional any later version of the license extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520075212.713472955@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 84514eae4c954efd609ebe46cb0dc380fb7caeea Author: Thomas Gleixner Date: Wed May 22 09:51:43 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 97 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program in the main directory of the linux [ntfs] source in the file copying if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520075212.609299512@linutronix.de Signed-off-by: Greg Kroah-Hartman commit a1d312de7780edc972e7fc3dec913304412da11e Author: Thomas Gleixner Date: Wed May 22 09:51:42 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 96 Based on 1 normalized pattern(s): this program include file is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program include file is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program in the main directory of the linux [ntfs] distribution in the file copying if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 43 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520075212.517001706@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 45a46873f0143703b65ee6646564345d82c7935e Author: Thomas Gleixner Date: Wed May 22 09:51:41 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 95 Based on 1 normalized pattern(s): library are free software you can redistribute them and or modify them under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program see the file copying if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520075212.429390570@linutronix.de Signed-off-by: Greg Kroah-Hartman commit ee8ff16bec849440f5a3b875cb23814e9fe5ece3 Author: Thomas Gleixner Date: Wed May 22 09:51:40 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 94 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the smems of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520075212.338332327@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f17b7eec80350977486f9467c49b11697cc272ba Author: Thomas Gleixner Date: Wed May 22 09:51:39 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 93 Based on 1 normalized pattern(s): this code is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520075212.233647300@linutronix.de Signed-off-by: Greg Kroah-Hartman commit c6ae4c04a861dac4d174fd3e90128d5232c8661b Author: Thomas Gleixner Date: Wed May 22 09:51:37 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 91 Based on 1 normalized pattern(s): is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 or at your option any later version [drbd] is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with [drbd] see the file copying if not write to the free software foundation 675 mass ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 16 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520075212.050796421@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 9e567af4f0fc3bfa77462c87246ceb82896cdebc Author: Thomas Gleixner Date: Wed May 22 09:51:36 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 90 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa the full gnu general public license is included in this distribution in the file called license extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 4 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520075211.959886972@linutronix.de Signed-off-by: Greg Kroah-Hartman commit cd5e85f52dc9075e0190ba6e2631392e3cb4c576 Author: Thomas Gleixner Date: Wed May 22 09:51:35 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 89 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 or later as published by the free software foundation this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 6 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520075211.856638608@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 954d796a9197c8edc547d0df9c1fa8655c6eda4c Author: Thomas Gleixner Date: Wed May 22 09:51:34 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 88 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public lcodecnse as published by the free software foundation either version 2 of the lcodecnse or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public lcodecnse for more details you should have received a copy of the gnu general public lcodecnse along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520075211.767520558@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 2ff54cf3dd259f3c5f275b181df6717fbe1d0712 Author: Thomas Gleixner Date: Wed May 22 09:51:32 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 86 Based on 1 normalized pattern(s): this source code is public free you can distribute it and or modify it under terms of the gnu general public license published by the free software foundation either version two of this license or any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520075211.593137457@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 7371efe10915629fde501f7c163f57cb29708748 Author: Thomas Gleixner Date: Wed May 22 09:51:30 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 84 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version author [bill] [dirks] [bill]@[thedirks] [org] [based] [on] [code] [by] [alan] [cox] [alan]@[cymru] [net] video capture interface for linux a generic video device interface for the linux operating system using a set of device structures vectors for low level operations this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520075211.410073327@linutronix.de Signed-off-by: Greg Kroah-Hartman commit d691005856b059758b0d2d8454c2a6b251def18d Author: Thomas Gleixner Date: Wed May 22 09:51:29 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 83 Based on 1 normalized pattern(s): this file is part of the linux kernel and is made available under the terms of the gnu general public license version 2 or at your option any later version incorporated herein by reference extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 18 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Reviewed-by: Armijn Hemel Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520075211.321157221@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 9ff554e9be1f78d47cc77ad563e57e6c0612dbb3 Author: Thomas Gleixner Date: Wed May 22 09:51:28 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 82 Based on 1 normalized pattern(s): this code is released under the gnu general public license version 2 or later extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520075211.232210963@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 495e00222668c384cdce6a53cfbedcf00448b1ce Author: Thomas Gleixner Date: Wed May 22 09:51:27 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 81 Based on 1 normalized pattern(s): this source code is licensed under the gnu general public license version 2 or later see the file copying for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Reviewed-by: Armijn Hemel Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520075211.129205147@linutronix.de Signed-off-by: Greg Kroah-Hartman commit ff206db4fd11692a341421d3bd244ed4e32e88c2 Author: Thomas Gleixner Date: Wed May 22 09:51:25 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 79 Based on 1 normalized pattern(s): licensed under the gpl v2 or later extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520075210.947402145@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f33f5fe256d3c909347baa3cc4c587ac9b1ab538 Author: Thomas Gleixner Date: Wed May 22 09:51:24 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 78 Based on 1 normalized pattern(s): this work is licensed under the terms of the gnu gpl version 2 or later see the copying file in the top level directory extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 6 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520075210.858783702@linutronix.de Signed-off-by: Greg Kroah-Hartman commit e97150df89a3e7b16f1399659a499119bb0cef94 Author: Thomas Gleixner Date: Wed May 22 09:51:23 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 77 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation or any later at your option extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 5 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Armijn Hemel Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520075210.769496418@linutronix.de Signed-off-by: Greg Kroah-Hartman commit d135b9cf600d0161a568fdf4da31098eeb3d2be9 Author: Thomas Gleixner Date: Wed May 22 09:51:22 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 76 Based on 1 normalized pattern(s): gdb gas and the gnu binutils are free software you can redistribute them and or modify them under the terms of the gnu general public license as published by the free software foundation either version 2 or at your option any later version gdb gas and the gnu binutils are distributed in the hope that they will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this file see the file copying if not write to the free software foundation 51 franklin street fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Armijn Hemel Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520075210.666183009@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 6fa41b31f9d04ef0010c802416b574b72d3659ff Author: Thomas Gleixner Date: Mon May 20 09:19:16 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 75 Based on 1 normalized pattern(s): derived from gplv2+ licensed source [copyright] [c] [2008] [wondermedia] [technologies] [inc] this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 or at your option any later version as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071900.028616342@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 6253c22ee3ace2dd7afbc272bde36234b722957e Author: Thomas Gleixner Date: Mon May 20 09:19:15 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 74 Based on 1 normalized pattern(s): you may copy modify and redistribute this file under the terms of the gnu general public license version 2 or any later version at your convenience extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071859.937199252@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 7de31d0d217f791c5305f5769de11cfc4b8c2491 Author: Thomas Gleixner Date: Mon May 20 09:19:14 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 73 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 or any later version as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071859.849348737@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 1b402f7ebf771b316deee75e988de421ae1f91d9 Author: Thomas Gleixner Date: Mon May 20 09:19:13 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 72 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 or any later at your option as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071859.749329557@linutronix.de Signed-off-by: Greg Kroah-Hartman commit c51cb3f554ec1297d92ad9c0bb626a204d4f8a39 Author: Thomas Gleixner Date: Mon May 20 09:19:12 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 71 Based on 1 normalized pattern(s): licensed under the gplv2 or later extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 5 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071859.659568621@linutronix.de Signed-off-by: Greg Kroah-Hartman commit fd26084ebbc0091bd42b4475019c2660dc9c9abd Author: Thomas Gleixner Date: Mon May 20 09:19:11 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 70 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with the program if not write to the free software foundation inc 675 mass ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071859.572421635@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 3f5296f0e86d6acc92535e44b71945255c28ce5f Author: Thomas Gleixner Date: Mon May 20 09:19:10 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 69 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 675 mass ave cambridge ma 02139 usa please note that the gpl allows you to use the driver not the radio in order to use the radio you need a license from the communications authority of your country extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 7 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071859.472520794@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 112a73283485efca9aa26702f362a181dcadc5f9 Author: Thomas Gleixner Date: Mon May 20 09:19:09 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 68 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license vs published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 675 mvss ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071859.384981802@linutronix.de Signed-off-by: Greg Kroah-Hartman commit a62525146229bf06ea24fa1b707cb2a4f504c979 Author: Thomas Gleixner Date: Mon May 20 09:19:08 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 67 Based on 1 normalized pattern(s): this code is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this code is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 675 mass ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071859.296827251@linutronix.de Signed-off-by: Greg Kroah-Hartman commit a112cc39660b9e980fc3d5999565040cf937f0c0 Author: Thomas Gleixner Date: Mon May 20 09:19:06 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 65 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 6 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071859.105288849@linutronix.de Signed-off-by: Greg Kroah-Hartman commit b7b06f8b90b0b26163a942a21b78238a7f282a88 Author: Thomas Gleixner Date: Mon May 20 09:19:05 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 64 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see the file copying or write to the free software foundation inc 51 franklin st fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 4 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071859.003492977@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4ad917507fc82b53246da37d6fd6abe3503a2a89 Author: Thomas Gleixner Date: Mon May 20 09:19:04 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 63 Based on 2 normalized pattern(s): driver is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version the [carillo] [ranch] [video] [subsystem] driver is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this driver if not write to the free software foundation inc 51 franklin st fifth floor boston ma 02110 1301 usa driver is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version the [vermilion] [range] [fb] driver is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this driver if not write to the free software foundation inc 51 franklin st fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 4 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071858.916314029@linutronix.de Signed-off-by: Greg Kroah-Hartman commit a85036f66fc40ab66a4d953c3aa032cec10dbee9 Author: Thomas Gleixner Date: Mon May 20 09:19:03 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 62 Based on 1 normalized pattern(s): released under the gpl version 2 or later and 1 additional normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071858.828691433@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 74ba9207e1adf1966c57450340534ae9742d00af Author: Thomas Gleixner Date: Mon May 20 09:19:02 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 675 mass ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 441 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Michael Ellerman (powerpc) Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071858.739733335@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4319c7f77a7a6d1f3c54493a8fe91db500f3e990 Author: Thomas Gleixner Date: Mon May 20 09:19:01 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 60 Based on 1 normalized pattern(s): released according to the gnu gpl version 2 or any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 10 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071858.650321694@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 5078709e89eff421d49c02392623da68ae356c3e Author: Thomas Gleixner Date: Mon May 20 09:19:00 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 59 Based on 1 normalized pattern(s): this file is licensed under gplv2 this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 5 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071858.561902672@linutronix.de Signed-off-by: Greg Kroah-Hartman commit fbf80cd3b90ab743ab6c66910420a462afa6414c Author: Thomas Gleixner Date: Mon May 20 09:18:58 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 57 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program see the file copying if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071858.384204437@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 6e7c1094436d22e8ca793c7b004c244c422f697e Author: Thomas Gleixner Date: Mon May 20 09:18:57 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 56 Based on 1 normalized pattern(s): this driver is free software you can redistribute it and or modify it under the terms of the gnu general public license either version 2 of the license or at your option any later version this driver is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this driver if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071858.296418152@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 83cde38357a0ad784d570545dd18f61690be08c5 Author: Thomas Gleixner Date: Mon May 20 09:18:56 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 55 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version of 2 of the license or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 4 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071858.207758043@linutronix.de Signed-off-by: Greg Kroah-Hartman commit a25d83eb202f89a34a8dc1bcc8db116e58f27d41 Author: Thomas Gleixner Date: Mon May 20 09:18:55 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 54 Based on 1 normalized pattern(s): this program is a part of the linux kernel and may be freely copied under the terms of the gnu general public license gpl version 2 or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071858.118952876@linutronix.de Signed-off-by: Greg Kroah-Hartman commit e14ca9783609fe54ee68935e1432fceff9094fba Author: Thomas Gleixner Date: Mon May 20 09:18:54 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 53 Based on 1 normalized pattern(s): this code may be copied under the gpl v 2 or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071858.029737698@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 8e8ccf4338416b1f3daa6837801591ce6106363d Author: Thomas Gleixner Date: Mon May 20 09:18:53 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 52 Based on 1 normalized pattern(s): this file is released under gnu general public licence version 2 or at your option any later version see the file copying for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071857.941092988@linutronix.de Signed-off-by: Greg Kroah-Hartman commit aec89d292c33e4caa13c133db7f004eec5a44331 Author: Thomas Gleixner Date: Mon May 20 09:18:52 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 51 Based on 1 normalized pattern(s): this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 or later as publishhed by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Reviewed-by: Richard Fontana Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520071857.852833887@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 64b70da0389ecf678ff8d0ecaf61a0b0fa1c7449 Author: Thomas Gleixner Date: Mon May 20 19:08:15 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 50 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 or at your option any later version this program is distributed in the hope that it will be useful but without any warranties or representations without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 43 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170858.826676366@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 8116125d6f261d5becfc7f624a22179f3304fabc Author: Thomas Gleixner Date: Mon May 20 19:08:14 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 49 Based on 1 normalized pattern(s): this file is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 or at your option any later version this file is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this file if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170858.735098607@linutronix.de Signed-off-by: Greg Kroah-Hartman commit dd165a658d9018cf31f87d2ea2f26293f215d91d Author: Thomas Gleixner Date: Mon May 20 19:08:13 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 48 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation inc 53 temple place ste 330 boston ma 02111 1307 usa either version 2 of the license or at your option any later version incorporated herein by reference extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 13 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170858.645641371@linutronix.de Signed-off-by: Greg Kroah-Hartman commit af1a8899d22c8acda5514999cd797d7139e47e56 Author: Thomas Gleixner Date: Mon May 20 19:08:12 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 47 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 or at your option any later version you should have received a copy of the gnu general public license for example usr src linux copying if not write to the free software foundation inc 675 mass ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 20 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170858.552543146@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 62810dbdc7b92462118d693b74087357f3ab7f94 Author: Thomas Gleixner Date: Mon May 20 19:08:11 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 46 Based on 1 normalized pattern(s): this driver is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 5 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170858.461662648@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 8d7c56d08fafd55887de16bf7f9c2817a1257bab Author: Thomas Gleixner Date: Mon May 20 19:08:10 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 45 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 11 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170858.370933192@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 6979193bdbc424066a2e2ad6c6ee44a9be758c17 Author: Thomas Gleixner Date: Mon May 20 19:08:09 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 44 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170858.279640225@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 59e0b61cd46fbde258d49f03ec4cc729c76e65f7 Author: Thomas Gleixner Date: Mon May 20 19:08:07 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 42 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170858.098509240@linutronix.de Signed-off-by: Greg Kroah-Hartman commit ee5d8f4d89eef00f3659f0327038fd64927ed17a Author: Thomas Gleixner Date: Mon May 20 19:08:06 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 41 Based on 1 normalized pattern(s): this module is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 18 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170858.008906948@linutronix.de Signed-off-by: Greg Kroah-Hartman commit ea2305f6a84e87b9398e043297f7982c462abf9f Author: Thomas Gleixner Date: Mon May 20 19:08:05 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 40 Based on 1 normalized pattern(s): this is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 14 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Michael Ellerman (powerpc) Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170857.915677517@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 59899843fc869c29ea920171b9e832522c89c866 Author: Thomas Gleixner Date: Mon May 20 19:08:04 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 39 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 as published by the free software foundation either version 2 of the license or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170857.824091446@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 6ff3f917e06625f9612f0dbcda10bef45b099b00 Author: Thomas Gleixner Date: Mon May 20 19:08:03 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 38 Based on 1 normalized pattern(s): this file is released under the gplv2 and any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170857.732920462@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 8a618bfca4a52d83712a5419dfd472c85c569257 Author: Thomas Gleixner Date: Mon May 20 19:08:02 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 37 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa the gnu gpl is contained in usr doc copyright gpl on a debian system and in the file copying in the linux kernel source extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 6 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170857.643862682@linutronix.de Signed-off-by: Greg Kroah-Hartman commit b4d0d230ccfb5d1a9ea85da64aa584df7c148ee9 Author: Thomas Gleixner Date: Mon May 20 19:08:01 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 36 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public licence as published by the free software foundation either version 2 of the licence or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 114 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170857.552531963@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 68252eb5f8413a5bdaac8644be9067916e58df8c Author: Thomas Gleixner Date: Mon May 20 19:08:00 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 35 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation 51 franklin street fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 23 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170857.458548087@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 28c8eea7c62441ff0ef1dc53636016f07c6065a2 Author: Thomas Gleixner Date: Mon May 20 19:07:59 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 34 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa or point your browser to http www gnu org copyleft gpl html extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170857.367248213@linutronix.de Signed-off-by: Greg Kroah-Hartman commit e62d9491030613a29400f68f63f1b67c46cf2559 Author: Thomas Gleixner Date: Mon May 20 19:07:58 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 33 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa the full gnu general public license is included in this distribution in the file called copying extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 7 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Richard Fontana Reviewed-by: Kate Stewart Reviewed-by: Michael Ellerman (powerpc) Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170857.277062491@linutronix.de Signed-off-by: Greg Kroah-Hartman commit d0fa1179e3fa54b184b42eb0c01a43851bda14aa Author: Thomas Gleixner Date: Mon May 20 19:07:57 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 32 Based on 1 normalized pattern(s): this driver is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this driver is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 18 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170857.186505395@linutronix.de Signed-off-by: Greg Kroah-Hartman commit e8fc982834c146ea008a3bbd8dc818e11be6e3fd Author: Thomas Gleixner Date: Mon May 20 19:07:56 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 31 Based on 1 normalized pattern(s): this program is free warftware you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170857.095407238@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 1b9391e3497ce25101912ce8ed79cf7332a00168 Author: Thomas Gleixner Date: Mon May 20 19:07:55 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 30 Based on 1 normalized pattern(s): this module is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this module is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this module if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170857.003536767@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 77f5075a43fb0395b03220d0a97a00129002da2c Author: Thomas Gleixner Date: Mon May 20 19:07:54 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 29 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program see the file copying if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 5 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170856.913346514@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 1568b83c4a3e57fcb5bc88cc3ae9ecc8db16a0c6 Author: Thomas Gleixner Date: Mon May 20 19:07:53 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 28 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the term of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170856.822819340@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 5e0f8ad07b46cf96b2542fbc6b226e206bc5f1b0 Author: Thomas Gleixner Date: Mon May 20 19:07:52 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 27 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the named license or any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 7 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170856.731149235@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 465ae83692027b3dfa5571c4c908d8acef468f56 Author: Thomas Gleixner Date: Mon May 20 19:07:51 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 26 Based on 1 normalized pattern(s): gnupg is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version gnupg is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 59 temple place suite 330 boston ma 02111 1307 usa note this code is heavily based on the gnu mp library actually it s the same code with only minor changes in the way the data is stored this is to support the abstraction of an optional secure memory allocation which may be used to avoid revealing of sensitive data due to paging etc the gnu mp library itself is published under the lgpl however i decided to publish this code under the plain gpl extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 14 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170856.639982569@linutronix.de Signed-off-by: Greg Kroah-Hartman commit c08e56c647ba8e4964ffc9e43360f16c9740337e Author: Harry Wentland Date: Mon Apr 29 09:39:15 2019 -0400 drm/amd/display: Don't load DMCU for Raven 1 (v2) [WHY] Some early Raven boards had a bad SBIOS that doesn't play nicely with the DMCU FW. We thought the issues were fixed by ignoring errors on DMCU load but that doesn't seem to be the case. We've still seen reports of users unable to boot their systems at all. [HOW] Disable DMCU load on Raven 1. Only load it for Raven 2 and Picasso. v2: Fix ifdef (Alex) Signed-off-by: Harry Wentland Reviewed-by: Nicholas Kazlauskas Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org commit 551bd3368a7b3cfef01edaade8970948d178d40a Author: Jonathan Corbet Date: Thu May 23 10:06:46 2019 -0600 drm/i915: Maintain consistent documentation subsection ordering With Sphinx 2.0 (or prior versions with the deprecation warnings fixed) the docs build fails with: Documentation/gpu/i915.rst:403: WARNING: Title level inconsistent: Global GTT Fence Handling ~~~~~~~~~~~~~~~~~~~~~~~~~ reST markup error: Documentation/gpu/i915.rst:403: (SEVERE/4) Title level inconsistent: I "fixed" it by changing the subsections in i915.rst, but that didn't seem like the correct change. It turns out that a couple of i915 files create their own subsections in kerneldoc comments using apostrophes as the heading marker: Layout '''''' That breaks the normal subsection marker ordering, and newer Sphinx is rather more strict about enforcing that ordering. So fix the offending comments to make Sphinx happy. (This is unfortunate, in that kerneldoc comments shouldn't need to be aware of where they might be included in the heading hierarchy, but I don't see a better way around it). Cc: stable@vger.kernel.org # v4.14+ Acked-by: Jani Nikula Signed-off-by: Jonathan Corbet commit 77d09ad9dc515c719f83f3b8489b0abc43563769 Author: Mauro Carvalho Chehab Date: Wed May 22 18:43:46 2019 -0300 scripts/sphinx-pre-install: make it handle Sphinx versions As we want to switch to a newer Sphinx version in the future, add some version detected logic, checking if the current version meets the requirement and suggesting upgrade it the version is supported but too old. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 3bc8088464712fdcb078eefb68837ccfcc413c88 Author: Jonathan Corbet Date: Wed May 22 14:30:45 2019 -0600 docs: Fix conf.py for Sphinx 2.0 Our version check in Documentation/conf.py never envisioned a world where Sphinx moved beyond 1.x. Now that the unthinkable has happened, fix our version check to handle higher version numbers correctly. Cc: stable@vger.kernel.org Signed-off-by: Jonathan Corbet commit a1ad1cc9704f64c169261a76e1aee1cf1ae51832 Author: Grzegorz Halat Date: Fri Apr 26 16:59:46 2019 +0200 vt/fbcon: deinitialize resources in visual_init() after failed memory allocation After memory allocation failure vc_allocate() doesn't clean up data which has been initialized in visual_init(). In case of fbcon this leads to divide-by-0 in fbcon_init() on next open of the same tty. memory allocation in vc_allocate() may fail here: 1097: vc->vc_screenbuf = kzalloc(vc->vc_screenbuf_size, GFP_KERNEL); on next open() fbcon_init() skips vc_font.data initialization: 1088: if (!p->fontdata) { division by zero in fbcon_init() happens here: 1149: new_cols /= vc->vc_font.width; Additional check is needed in fbcon_deinit() to prevent usage of uninitialized vc_screenbuf: 1251: if (vc->vc_hi_font_mask && vc->vc_screenbuf) 1252: set_vc_hi_font(vc, false); Crash: #6 [ffffc90001eafa60] divide_error at ffffffff81a00be4 [exception RIP: fbcon_init+463] RIP: ffffffff814b860f RSP: ffffc90001eafb18 RFLAGS: 00010246 ... #7 [ffffc90001eafb60] visual_init at ffffffff8154c36e #8 [ffffc90001eafb80] vc_allocate at ffffffff8154f53c #9 [ffffc90001eafbc8] con_install at ffffffff8154f624 ... Signed-off-by: Grzegorz Halat Reviewed-by: Oleksandr Natalenko Acked-by: Bartlomiej Zolnierkiewicz Cc: stable Signed-off-by: Greg Kroah-Hartman commit d31d718528dd3686bf2163af5ef6d3afb65bb7aa Author: Darrick J. Wong Date: Thu May 23 08:45:21 2019 -0700 xfs: fix broken log reservation debugging xlog_print_tic_res() is supposed to print a human readable string for each element of the log ticket reservation array. Unfortunately, I forgot to update the string array when we added rmap & reflink support, so the debug message prints "region[3]: (null) - 352 bytes" which isn't useful at all. Add the missing elements and add a build check so that we don't forget again to add a string when adding a new XLOG_REG_TYPE. Signed-off-by: Darrick J. Wong Reviewed-by: Brian Foster commit edbcf50eb8aea5f81ae6d83bb969cb0bc02805a1 Author: Jean-Philippe Brucker Date: Fri May 24 13:52:20 2019 +0100 arm64: insn: Add BUILD_BUG_ON() for invalid masks Detect invalid instruction masks at build time. Some versions of GCC can warn about the situation, but not all of them, it seems. Suggested-by: Will Deacon Signed-off-by: Jean-Philippe Brucker Signed-off-by: Will Deacon commit c5e2edeb01ae9ffbdde95bdcdb6d3614ba1eb195 Author: Jean-Philippe Brucker Date: Fri May 24 13:52:19 2019 +0100 arm64: insn: Fix ldadd instruction encoding GCC 8.1.0 reports that the ldadd instruction encoding, recently added to insn.c, doesn't match the mask and couldn't possibly be identified: linux/arch/arm64/include/asm/insn.h: In function 'aarch64_insn_is_ldadd': linux/arch/arm64/include/asm/insn.h:280:257: warning: bitwise comparison always evaluates to false [-Wtautological-compare] Bits [31:30] normally encode the size of the instruction (1 to 8 bytes) and the current instruction value only encodes the 4- and 8-byte variants. At the moment only the BPF JIT needs this instruction, and doesn't require the 1- and 2-byte variants, but to be consistent with our other ldr and str instruction encodings, clear the size field in the insn value. Fixes: 34b8ab091f9ef57a ("bpf, arm64: use more scalable stadd over ldxr / stxr loop in xadd") Acked-by: Daniel Borkmann Reported-by: Kuninori Morimoto Signed-off-by: Yoshihiro Shimoda Signed-off-by: Jean-Philippe Brucker Signed-off-by: Will Deacon commit 96a13f57b946be7a6c10405e4bd780c0b6b6fe63 Author: Will Deacon Date: Fri May 24 14:15:34 2019 +0100 arm64: Kconfig: Make ARM64_PSEUDO_NMI depend on BROKEN for now Although we merged support for pseudo-nmi using interrupt priority masking in 5.1, we've since uncovered a number of non-trivial issues with the implementation. Although there are patches pending to address these problems, we're facing issues that prevent us from merging them at this current time: https://lkml.kernel.org/r/1556553607-46531-1-git-send-email-julien.thierry@arm.com For now, simply mark this optional feature as BROKEN in the hope that we can fix things properly in the near future. Cc: # 5.1 Cc: Julien Thierry Acked-by: Marc Zyngier Signed-off-by: Will Deacon commit 623e1528d4090bd1abaf93ec46f047dee9a6fb32 Author: James Morse Date: Wed May 22 18:47:05 2019 +0100 KVM: arm/arm64: Move cc/it checks under hyp's Makefile to avoid instrumentation KVM has helpers to handle the condition codes of trapped aarch32 instructions. These are marked __hyp_text and used from HYP, but they aren't built by the 'hyp' Makefile, which has all the runes to avoid ASAN and KCOV instrumentation. Move this code to a new hyp/aarch32.c to avoid a hyp-panic when starting an aarch32 guest on a host built with the ASAN/KCOV debug options. Fixes: 021234ef3752f ("KVM: arm64: Make kvm_condition_valid32() accessible from EL2") Fixes: 8cebe750c4d9a ("arm64: KVM: Make kvm_skip_instr32 available to HYP") Signed-off-by: James Morse Signed-off-by: Marc Zyngier commit b7c50fab66ab66e2d3e00f809a09578d78232836 Author: James Morse Date: Wed May 22 18:47:04 2019 +0100 KVM: arm64: Move pmu hyp code under hyp's Makefile to avoid instrumentation KVM's pmu.c contains the __hyp_text needed to switch the pmu registers between host and guest. Because this isn't covered by the 'hyp' Makefile, it can be built with kasan and friends when these are enabled in Kconfig. When starting a guest, this results in: | Kernel panic - not syncing: HYP panic: | PS:a00003c9 PC:000083000028ada0 ESR:86000007 | FAR:000083000028ada0 HPFAR:0000000029df5300 PAR:0000000000000000 | VCPU:000000004e10b7d6 | CPU: 0 PID: 3088 Comm: qemu-system-aar Not tainted 5.2.0-rc1 #11026 | Hardware name: ARM LTD ARM Juno Development Platform/ARM Juno Development Plat | Call trace: | dump_backtrace+0x0/0x200 | show_stack+0x20/0x30 | dump_stack+0xec/0x158 | panic+0x1ec/0x420 | panic+0x0/0x420 | SMP: stopping secondary CPUs | Kernel Offset: disabled | CPU features: 0x002,25006082 | Memory Limit: none | ---[ end Kernel panic - not syncing: HYP panic: This is caused by functions in pmu.c calling the instrumented code, which isn't mapped to hyp. From objdump -r: | RELOCATION RECORDS FOR [.hyp.text]: | OFFSET TYPE VALUE | 0000000000000010 R_AARCH64_CALL26 __sanitizer_cov_trace_pc | 0000000000000018 R_AARCH64_CALL26 __asan_load4_noabort | 0000000000000024 R_AARCH64_CALL26 __asan_load4_noabort Move the affected code to a new file under 'hyp's Makefile. Fixes: 3d91befbb3a0 ("arm64: KVM: Enable !VHE support for :G/:H perf event modifiers") Cc: Andrew Murray Signed-off-by: James Morse Signed-off-by: Marc Zyngier commit 493fcbc8435e00db1643852cbdfe0dd6398c57ae Author: Christoffer Dall Date: Tue May 21 15:25:40 2019 +0200 MAINTAINERS: KVM: arm/arm64: Remove myself as maintainer I no longer have time to actively review patches and manage the tree and it's time to make that official. Huge thanks to the incredible Linux community and all the contributors who have put up with me over the past years. I also take this opportunity to remove the website link to the Columbia web page, as that information is no longer up to date and I don't know who manages that anymore. Signed-off-by: Christoffer Dall Signed-off-by: Marc Zyngier commit cda03a9a7be6b94c637cffae5be1d269c538661b Author: Philippe Mazenauer Date: Tue May 21 12:26:04 2019 +0000 clocksource/drivers/timer-ti-dm: Change to new style declaration Variable 'dmtimer_ops' was declared const static instead of static const. ../drivers/clocksource/timer-ti-dm.c:899:1: warning: ‘static’ is not at beginning of declaration [-Wold-style-declaration] const static struct omap_dm_timer_ops dmtimer_ops = { ^~~~~ Signed-off-by: Philippe Mazenauer Signed-off-by: Daniel Lezcano commit 34ac3c3eb8f0c07252ceddf0a22dd240e5c91ccb Author: Ranjani Sridharan Date: Thu May 23 10:12:01 2019 -0700 ASoC: core: lock client_mutex while removing link components Removing link components results in topology unloading. So, acquire the client_mutex before removing components in soc_remove_link_components. This will prevent the lockdep warning seen when dai links are removed during topology removal. Signed-off-by: Ranjani Sridharan Signed-off-by: Mark Brown commit 4819d06292c9b57eabdd6d1603e49a27baf183be Author: Jon Hunter Date: Fri May 24 09:54:04 2019 +0100 ASoC: simple-card: Restore original configuration of DAI format Revert commit 069d037aea98 ("ASoC: simple-card: Fix configuration of DAI format"). During further review, it turns out that the actual issue was caused by an incorrectly formatted device-tree node describing the soundcard. The following is incorrect because the simple-audio-card 'bitclock-master' and 'frame-master' properties should not reference the actual codec phandle ... sound { compatible = "simple-audio-card"; ... => simple-audio-card,bitclock-master = <&codec>; => simple-audio-card,frame-master = <&codec>; ... simple-audio-card,cpu { sound-dai = <&xxx>; }; simple-audio-card,codec { => sound-dai = <&codec>; }; }; Rather, these properties should reference the phandle to the 'simple-audio-card,codec' property as shown below ... sound { compatible = "simple-audio-card"; ... => simple-audio-card,bitclock-master = <&codec>; => simple-audio-card,frame-master = <&codec>; ... simple-audio-card,cpu { sound-dai = <&xxx>; }; => codec: simple-audio-card,codec { /* simple-card wants here */ sound-dai = <&xxx>; /* not here */ }; }; Signed-off-by: Jon Hunter Signed-off-by: Mark Brown commit c074989171801171af6c5f53dd16b27f36b31deb Author: Dave Airlie Date: Fri May 24 19:55:32 2019 +1000 Revert "drm/amd/display: Don't load DMCU for Raven 1" This reverts commit 55143dc23ca4792868ea8c17bce65ca7b3d3e8c4. This causes build breakags with some Kconfigs so revert for now. Fixes: 55143dc23ca4 ("drm/amd/display: Don't load DMCU for Raven 1") Signed-off-by: Dave Airlie commit 33d915d9e8ce811d8958915ccd18d71a66c7c495 Author: Manikanta Pubbisetty Date: Wed May 8 14:55:33 2019 +0530 {nl,mac}80211: allow 4addr AP operation on crypto controlled devices As per the current design, in the case of sw crypto controlled devices, it is the device which advertises the support for AP/VLAN iftype based on it's ability to tranmsit packets encrypted in software (In VLAN functionality, group traffic generated for a specific VLAN group is always encrypted in software). Commit db3bdcb9c3ff ("mac80211: allow AP_VLAN operation on crypto controlled devices") has introduced this change. Since 4addr AP operation also uses AP/VLAN iftype, this conditional way of advertising AP/VLAN support has broken 4addr AP mode operation on crypto controlled devices which do not support VLAN functionality. In the case of ath10k driver, not all firmwares have support for VLAN functionality but all can support 4addr AP operation. Because AP/VLAN support is not advertised for these devices, 4addr AP operations are also blocked. Fix this by allowing 4addr operation on devices which do not support AP/VLAN iftype but can support 4addr AP operation (decision is based on the wiphy flag WIPHY_FLAG_4ADDR_AP). Cc: stable@vger.kernel.org Fixes: db3bdcb9c3ff ("mac80211: allow AP_VLAN operation on crypto controlled devices") Signed-off-by: Manikanta Pubbisetty Signed-off-by: Johannes Berg commit 85a55ff2cf6b73aab01732cc827f645563b7f3d1 Author: Gustavo A. R. Silva Date: Mon Apr 29 13:19:50 2019 -0500 mac80211_hwsim: mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warning: drivers/net/wireless/mac80211_hwsim.c: In function ‘init_mac80211_hwsim’: drivers/net/wireless/mac80211_hwsim.c:3853:21: warning: this statement may fall through [-Wimplicit-fallthrough=] param.reg_strict = true; ~~~~~~~~~~~~~~~~~^~~~~~ drivers/net/wireless/mac80211_hwsim.c:3854:3: note: here case HWSIM_REGTEST_DRIVER_REG_ALL: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Johannes Berg commit 25d16d124a5e249e947c0487678b61dcff25cf8b Author: John Crispin Date: Thu May 23 10:27:24 2019 +0200 mac80211: fix rate reporting inside cfg80211_calculate_bitrate_he() The reported rate is not scaled down correctly. After applying this patch, the function will behave just like the v/ht equivalents. Signed-off-by: Shashidhar Lakkavalli Signed-off-by: John Crispin Signed-off-by: Johannes Berg commit 818e9dfa2c145c7b0d241c5c419f4b897a1af564 Author: YueHaibing Date: Mon Apr 29 14:07:54 2019 +0000 mac80211: remove set but not used variable 'old' Fixes gcc '-Wunused-but-set-variable' warning: net/mac80211/key.c: In function 'ieee80211_set_tx_key': net/mac80211/key.c:271:24: warning: variable 'old' set but not used [-Wunused-but-set-variable] It is not used since introduction in commit 96fc6efb9ad9 ("mac80211: IEEE 802.11 Extended Key ID support") Signed-off-by: YueHaibing Signed-off-by: Johannes Berg commit 79c92ca42b5a3e0ea172ea2ce8df8e125af237da Author: Yu Wang Date: Fri May 10 17:04:52 2019 +0800 mac80211: handle deauthentication/disassociation from TDLS peer When receiving a deauthentication/disassociation frame from a TDLS peer, a station should not disconnect the current AP, but only disable the current TDLS link if it's enabled. Without this change, a TDLS issue can be reproduced by following the steps as below: 1. STA-1 and STA-2 are connected to AP, bidirection traffic is running between STA-1 and STA-2. 2. Set up TDLS link between STA-1 and STA-2, stay for a while, then teardown TDLS link. 3. Repeat step #2 and monitor the connection between STA and AP. During the test, one STA may send a deauthentication/disassociation frame to another, after TDLS teardown, with reason code 6/7, which means: Class 2/3 frame received from nonassociated STA. On receive this frame, the receiver STA will disconnect the current AP and then reconnect. It's not a expected behavior, purpose of this frame should be disabling the TDLS link, not the link with AP. Cc: stable@vger.kernel.org Signed-off-by: Yu Wang Signed-off-by: Johannes Berg commit e9646f0f5bb62b7d43f0968f39d536cfe7123b53 Author: Randy Dunlap Date: Thu May 23 15:00:41 2019 -0700 gpio: fix gpio-adp5588 build errors The gpio-adp5588 driver uses interfaces that are provided by GPIOLIB_IRQCHIP, so select that symbol in its Kconfig entry. Fixes these build errors: ../drivers/gpio/gpio-adp5588.c: In function ‘adp5588_irq_handler’: ../drivers/gpio/gpio-adp5588.c:266:26: error: ‘struct gpio_chip’ has no member named ‘irq’ dev->gpio_chip.irq.domain, gpio)); ^ ../drivers/gpio/gpio-adp5588.c: In function ‘adp5588_irq_setup’: ../drivers/gpio/gpio-adp5588.c:298:2: error: implicit declaration of function ‘gpiochip_irqchip_add_nested’ [-Werror=implicit-function-declaration] ret = gpiochip_irqchip_add_nested(&dev->gpio_chip, ^ ../drivers/gpio/gpio-adp5588.c:307:2: error: implicit declaration of function ‘gpiochip_set_nested_irqchip’ [-Werror=implicit-function-declaration] gpiochip_set_nested_irqchip(&dev->gpio_chip, ^ Fixes: 459773ae8dbb ("gpio: adp5588-gpio: support interrupt controller") Reported-by: kbuild test robot Signed-off-by: Randy Dunlap Cc: linux-gpio@vger.kernel.org Reviewed-by: Bartosz Golaszewski Acked-by: Michael Hennerich Signed-off-by: Linus Walleij commit ec2e0f4f00c0b9260533555c69363454dfd3bd73 Author: Amelie Delaunay Date: Fri May 24 09:32:05 2019 +0200 pinctrl: stmfx: Fix compile issue when CONFIG_OF_GPIO is not defined When CONFIG_GPIO_OF is not defined, struct gpio_chip 'of_node' member does not exist: drivers/pinctrl/pinctrl-stmfx.c: In function 'stmfx_pinctrl_probe': drivers/pinctrl/pinctrl-stmfx.c:652:17: error: 'struct gpio_chip' has no member named 'of_node' pctl->gpio_chip.of_node = np; Fixes: 1490d9f841b1 ("pinctrl: Add STMFX GPIO expander Pinctrl/GPIO driver") Reported-by: kbuild test robot Signed-off-by: Amelie Delaunay Signed-off-by: Linus Walleij commit e61ff0fba72d981449c90b5299cebb74534b6f7c Author: Geordan Neukum Date: Fri May 24 02:36:36 2019 +0000 staging: kpc2000: Add dependency on MFD_CORE to kconfig symbol 'KPC2000' The kpc2000 core makes calls against functions conditionally exported upon selection of the kconfig symbol MFD_CORE. Therefore, the kpc2000 core depends upon the mfd_core, and that dependency must be tracked in Kconfig to avoid potential build issues. Signed-off-by: Geordan Neukum Signed-off-by: Greg Kroah-Hartman commit 5322ea58a06da2e69c5ef36a9b4d4b9255edd423 Author: Peter Zijlstra Date: Fri May 17 13:52:34 2019 +0200 perf/ring-buffer: Use regular variables for nesting While the IRQ/NMI will nest, the nest-count will be invariant over the actual exception, since it will decrement equal to increment. This means we can -- carefully -- use a regular variable since the typical LOAD-STORE race doesn't exist (similar to preempt_count). This optimizes the ring-buffer for all LOAD-STORE architectures, since they need to use atomic ops to implement local_t. Suggested-by: Alexander Shishkin Signed-off-by: Peter Zijlstra (Intel) Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: acme@kernel.org Cc: mark.rutland@arm.com Cc: namhyung@kernel.org Cc: yabinc@google.com Link: http://lkml.kernel.org/r/20190517115418.481392777@infradead.org Signed-off-by: Ingo Molnar commit 4d839dd9e4356bbacf3eb0ab13a549b83b008c21 Author: Peter Zijlstra Date: Fri May 17 13:52:33 2019 +0200 perf/ring-buffer: Always use {READ,WRITE}_ONCE() for rb->user_page data We must use {READ,WRITE}_ONCE() on rb->user_page data such that concurrent usage will see whole values. A few key sites were missing this. Suggested-by: Yabin Cui Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: acme@kernel.org Cc: mark.rutland@arm.com Cc: namhyung@kernel.org Fixes: 7b732a750477 ("perf_counter: new output ABI - part 1") Link: http://lkml.kernel.org/r/20190517115418.394192145@infradead.org Signed-off-by: Ingo Molnar commit 3f9fbe9bd86c534eba2faf5d840fd44c6049f50e Author: Peter Zijlstra Date: Fri May 17 13:52:32 2019 +0200 perf/ring_buffer: Add ordering to rb->nest increment Similar to how decrementing rb->next too early can cause data_head to (temporarily) be observed to go backward, so too can this happen when we increment too late. This barrier() ensures the rb->head load happens after the increment, both the one in the 'goto again' path, as the one from perf_output_get_handle() -- albeit very unlikely to matter for the latter. Suggested-by: Yabin Cui Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: acme@kernel.org Cc: mark.rutland@arm.com Cc: namhyung@kernel.org Fixes: ef60777c9abd ("perf: Optimize the perf_output() path by removing IRQ-disables") Link: http://lkml.kernel.org/r/20190517115418.309516009@infradead.org Signed-off-by: Ingo Molnar commit 1b038c6e05ff70a1e66e3e571c2e6106bdb75f53 Author: Yabin Cui Date: Fri May 17 13:52:31 2019 +0200 perf/ring_buffer: Fix exposing a temporarily decreased data_head In perf_output_put_handle(), an IRQ/NMI can happen in below location and write records to the same ring buffer: ... local_dec_and_test(&rb->nest) ... <-- an IRQ/NMI can happen here rb->user_page->data_head = head; ... In this case, a value A is written to data_head in the IRQ, then a value B is written to data_head after the IRQ. And A > B. As a result, data_head is temporarily decreased from A to B. And a reader may see data_head < data_tail if it read the buffer frequently enough, which creates unexpected behaviors. This can be fixed by moving dec(&rb->nest) to after updating data_head, which prevents the IRQ/NMI above from updating data_head. [ Split up by peterz. ] Signed-off-by: Yabin Cui Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: mark.rutland@arm.com Fixes: ef60777c9abd ("perf: Optimize the perf_output() path by removing IRQ-disables") Link: http://lkml.kernel.org/r/20190517115418.224478157@infradead.org Signed-off-by: Ingo Molnar commit 2ac44ab608705948564791ce1d15d43ba81a1e38 Author: Frank van der Linden Date: Wed May 22 22:17:45 2019 +0000 x86/CPU/AMD: Don't force the CPB cap when running under a hypervisor For F17h AMD CPUs, the CPB capability ('Core Performance Boost') is forcibly set, because some versions of that chip incorrectly report that they do not have it. However, a hypervisor may filter out the CPB capability, for good reasons. For example, KVM currently does not emulate setting the CPB bit in MSR_K7_HWCR, and unchecked MSR access errors will be thrown when trying to set it as a guest: unchecked MSR access error: WRMSR to 0xc0010015 (tried to write 0x0000000001000011) at rIP: 0xffffffff890638f4 (native_write_msr+0x4/0x20) Call Trace: boost_set_msr+0x50/0x80 [acpi_cpufreq] cpuhp_invoke_callback+0x86/0x560 sort_range+0x20/0x20 cpuhp_thread_fun+0xb0/0x110 smpboot_thread_fn+0xef/0x160 kthread+0x113/0x130 kthread_create_worker_on_cpu+0x70/0x70 ret_from_fork+0x35/0x40 To avoid this issue, don't forcibly set the CPB capability for a CPU when running under a hypervisor. Signed-off-by: Frank van der Linden Acked-by: Borislav Petkov Cc: Andy Lutomirski Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: bp@alien8.de Cc: jiaxun.yang@flygoat.com Fixes: 0237199186e7 ("x86/CPU/AMD: Set the CPB bit unconditionally on F17h") Link: http://lkml.kernel.org/r/20190522221745.GA15789@dev-dsk-fllinden-2c-c1893d73.us-west-2.amazon.com [ Minor edits to the changelog. ] Signed-off-by: Ingo Molnar commit c3ee82ce47af63eca2075d8af956d468f508942e Author: Ard Biesheuvel Date: Sat May 18 18:11:13 2019 +0200 x86/boot: Provide KASAN compatible aliases for string routines The KASAN subsystem wraps calls to memcpy(), memset() and memmove() to sanitize the arguments before invoking the actual routines, which have been renamed to __memcpy(), __memset() and __memmove(), respectively. When CONFIG_KASAN is enabled for the kernel build but KASAN code generation is disabled for the compilation unit (which is needed for things like the EFI stub or the decompressor), the string routines are just #define'd to their __ prefixed names so that they are simply invoked directly. This does however rely on those __ prefixed names to exist in the symbol namespace, which is not currently the case for the x86 decompressor, which may lead to errors like drivers/firmware/efi/libstub/tpm.o: In function `efi_retrieve_tpm2_eventlog': tpm.c:(.text+0x2a8): undefined reference to `__memcpy' So let's expose the __ prefixed symbols in the decompressor when KASAN is enabled. Signed-off-by: Ard Biesheuvel Acked-by: Jarkko Sakkinen Cc: Andrey Konovalov Cc: Borislav Petkov Cc: Linus Torvalds Cc: Matthew Garrett Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-efi@vger.kernel.org Signed-off-by: Ingo Molnar commit 0fbf21c3b36a9921467aa7525d2768b07f9f8fbb Author: Ayman Bagabas Date: Thu May 23 05:30:11 2019 -0400 ALSA: hda/realtek - Enable micmute LED for Huawei laptops Since this LED is found on all Huawei laptops, we can hook it to huawei-wmi platform driver to control it. Also, some renames have been made to use product name instead of common name to avoid confusions. Fixes: 8ac51bbc4cfe ("ALSA: hda: fix front speakers on Huawei MBXP") Signed-off-by: Ayman Bagabas Signed-off-by: Takashi Iwai commit 6a310f8f97bb8bc2e2bb9db6f49a1b8678c8d144 Author: Yoshihiro Kaneko Date: Tue May 14 05:03:55 2019 +0900 thermal: rcar_gen3_thermal: Update temperature conversion method Update the formula to calculate temperature: Currently, current TEMP is calculated as average of val1 (is calculated by formula 1) and val2 (is calculated by formula 2). But, as description in HWM (chapter 10A.3.1.2 Normal Mode.) If (TEMP_CODE < THCODE2[11:0]) CTEMP value should be val1. If (TEMP_CODE > THCODE2[11:0]) CTEMP value should be val2. Signed-off-by: Yoshihiro Kaneko Signed-off-by: Eduardo Valentin commit bdc4480a669d476814061b4da6bb006f7048c8e5 Author: Yoshihiro Kaneko Date: Tue May 14 05:03:54 2019 +0900 thermal: rcar_gen3_thermal: Update calculation formula of IRQTEMP Update the formula to calculate CTEMP: Currently, the CTEMP is average of val1 (is calculated by formula 1) and val2 (is calculated by formula 2). But, as description in HWM (chapter 10A.3.1.1 Setting of Normal Mode) If (STEMP < Tj_T) CTEMP value should be val1. If (STEMP > Tj_T) CTEMP value should be val2. Signed-off-by: Yoshihiro Kaneko Signed-off-by: Eduardo Valentin commit 4eb39f79ef443fa566d36bd43f1f578d5c140305 Author: Yoshihiro Kaneko Date: Tue May 14 05:03:53 2019 +0900 thermal: rcar_gen3_thermal: Update value of Tj_1 As evaluation of hardware team, temperature calculation formula of M3-W is difference from all other SoCs as below: - M3-W: Tj_1: 116 (so Tj_1 - Tj_3 = 157) - Others: Tj_1: 126 (so Tj_1 - Tj_3 = 167) Signed-off-by: Yoshihiro Kaneko Signed-off-by: Eduardo Valentin commit 2380a792dec059338c8d989e64c5d933c553949c Author: YueHaibing Date: Mon May 13 21:55:59 2019 +0800 thermal: tegra: Make tegra210_tsensor_thermtrips static Fix sparse warning: drivers/thermal/tegra/tegra210-soctherm.c:211:33: warning: symbol 'tegra210_tsensor_thermtrips' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing Signed-off-by: Eduardo Valentin commit 0f5ee062d87e69028ea38a50fdd66859ea0dbb11 Author: Heiko Stuebner Date: Wed May 22 16:12:36 2019 +0200 Revert "thermal: rockchip: fix up the tsadc pinctrl setting error" This reverts commit 28694e009e512451ead5519dd801f9869acb1f60. The commit causes multiple issues in that: - the added call to ->control does potentially run unclocked causing a hang of the machine - the added pinctrl-states are undocumented in the binding - the added pinctrl-states are not backwards compatible, breaking old devicetrees. Fixes: 28694e009e51 ("thermal: rockchip: fix up the tsadc pinctrl setting error") Signed-off-by: Heiko Stuebner Reported-by: kernelci.org bot Reported-by: Enric Balletbo Serra Reported-by: Vicente Bergas Reported-by: Jack Mitchell Reported-by: Douglas Anderson Tested-by: Douglas Anderson Signed-off-by: Eduardo Valentin commit e1e52981f292b4e321781794eaf6e8a087f4f300 Merge: 6b0538da5a6c 57cb853d1d5b Author: Dave Airlie Date: Fri May 24 14:01:00 2019 +1000 Merge tag 'drm-intel-fixes-2019-05-23' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes - Fix boosting of new client to be non-preemptive - Fix to actually bump ready tasks ahead of busywaits - Includes gvt-fixes-2019-05-21 Signed-off-by: Dave Airlie From: Joonas Lahtinen Link: https://patchwork.freedesktop.org/patch/msgid/20190523094221.GA26026@jlahtine-desk.ger.corp.intel.com commit ee0ed02ca93ef1ecf8963ad96638795d55af2c14 Author: Jan Kara Date: Thu May 23 23:35:28 2019 -0400 ext4: do not delete unlinked inode from orphan list on failed truncate It is possible that unlinked inode enters ext4_setattr() (e.g. if somebody calls ftruncate(2) on unlinked but still open file). In such case we should not delete the inode from the orphan list if truncate fails. Note that this is mostly a theoretical concern as filesystem is corrupted if we reach this path anyway but let's be consistent in our orphan handling. Reviewed-by: Ira Weiny Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o Cc: stable@kernel.org commit 82a25b027ca48d7ef197295846b352345853dfa8 Author: Jan Kara Date: Thu May 23 23:07:08 2019 -0400 ext4: wait for outstanding dio during truncate in nojournal mode We didn't wait for outstanding direct IO during truncate in nojournal mode (as we skip orphan handling in that case). This can lead to fs corruption or stale data exposure if truncate ends up freeing blocks and these get reallocated before direct IO finishes. Fix the condition determining whether the wait is necessary. CC: stable@vger.kernel.org Fixes: 1c9114f9c0f1 ("ext4: serialize unlocked dio reads with truncate") Reviewed-by: Ira Weiny Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o commit 71e15f76f8df7ca01cfa87ed895b194feee90dd4 Merge: b5730061d105 2de03b45236f Author: David S. Miller Date: Thu May 23 14:45:36 2019 -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 Netfilter/IPVS fixes for your net tree: 1) Fix crash when dumping rules after conversion to RCU, from Florian Westphal. 2) Fix incorrect hook reinjection from nf_queue in case NF_REPEAT, from Jagdish Motwani. 3) Fix check for route existence in fib extension, from Phil Sutter. 4) Fix use after free in ip_vs_in() hook, from YueHaibing. 5) Check for veth existence from netfilter selftests, from Jeffrin Jose T. 6) Checksum corruption in UDP NAT helpers due to typo, from Florian Westphal. 7) Pass up packets to classic forwarding path regardless of IPv4 DF bit, patch for the flowtable infrastructure from Florian. 8) Set liberal TCP tracking for flows that are placed in the flowtable, in case they need to go back to classic forwarding path, also from Florian. 9) Don't add flow with sequence adjustment to flowtable, from Florian. 10) Skip IPv4 options from IPv6 datapath in flowtable, from Florian. 11) Add selftest for the flowtable infrastructure, from Florian. ==================== Signed-off-by: David S. Miller commit 7c7da40da1640ce6814dab1e8031b44e19e5a3f6 Author: Andrey Smirnov Date: Thu May 23 12:55:26 2019 -0700 Input: uinput - add compat ioctl number translation for UI_*_FF_UPLOAD In the case of compat syscall ioctl numbers for UI_BEGIN_FF_UPLOAD and UI_END_FF_UPLOAD need to be adjusted before being passed on uinput_ioctl_handler() since code built with -m32 will be passing slightly different values. Extend the code already covering UI_SET_PHYS to cover UI_BEGIN_FF_UPLOAD and UI_END_FF_UPLOAD as well. Reported-by: Pierre-Loup A. Griffais Signed-off-by: Andrey Smirnov Cc: stable@vger.kernel.org Signed-off-by: Dmitry Torokhov commit 0e658060e5fc50dc282885dc424a94b5d95547e5 Author: Daniel Smith Date: Thu May 23 12:54:18 2019 -0700 Input: silead - add MSSL0017 to acpi_device_id On Chuwi Hi10 Plus, the Silead device id is MSSL0017. Signed-off-by: Daniel Smith Reviewed-by: Hans de Goede Cc: stable@vger.kernel.org Signed-off-by: Dmitry Torokhov commit 4dde821e4296e156d133b98ddc4c45861935a4fb Merge: 61686afe1ff3 5cd213b0fec6 Author: Linus Torvalds Date: Thu May 23 11:18:18 2019 -0700 Merge tag 'xfs-5.2-fixes-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux Pull xfs fix from Darrick Wong: "Fix an accounting mistake where we included the log space when calculating the reserve space for metadata expansion" * tag 'xfs-5.2-fixes-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: xfs: don't reserve per-AG space for an internal log commit b5730061d1056abf317caea823b94d6e12b5b4f6 Author: Raju Rangoju Date: Thu May 23 20:41:44 2019 +0530 cxgb4: offload VLAN flows regardless of VLAN ethtype VLAN flows never get offloaded unless ivlan_vld is set in filter spec. It's not compulsory for vlan_ethtype to be set. So, always enable ivlan_vld bit for offloading VLAN flows regardless of vlan_ethtype is set or not. Fixes: ad9af3e09c (cxgb4: add tc flower match support for vlan) Signed-off-by: Raju Rangoju Signed-off-by: David S. Miller commit d2daa127ed51ac41217962d2b8f9c00be6e9c0d9 Author: Andreas Oetken Date: Thu May 23 13:57:14 2019 +0200 hsr: fix don't prune the master node from the node_db Don't prune the master node in the hsr_prune_nodes function. Neither time_in[HSR_PT_SLAVE_A] nor time_in[HSR_PT_SLAVE_B] will ever be updated by hsr_register_frame_in for the master port. Thus, the master node will be repeatedly pruned leading to repeated packet loss. This bug never appeared because the hsr_prune_nodes function was only called once. Since commit 5150b45fd355 ("net: hsr: Fix node prune function for forget time expiry") this issue is fixed unveiling the issue described above. Fixes: 5150b45fd355 ("net: hsr: Fix node prune function for forget time expiry") Signed-off-by: Andreas Oetken Tested-by: Murali Karicheri Signed-off-by: David S. Miller commit 096c7a6d90082586ff265d99e8e4a052dee3a403 Merge: 004d564f9087 cb9e0e500606 Author: Jens Axboe Date: Thu May 23 10:27:04 2019 -0600 Merge branch 'nvme-5.2-rc2' of git://git.infradead.org/nvme into for-linus Pull NVMe changes from Keith. * 'nvme-5.2-rc2' of git://git.infradead.org/nvme: nvme-pci: use blk-mq mapping for unmanaged irqs nvme: update MAINTAINERS nvme: copy MTFA field from identify controller nvme: fix memory leak for power latency tolerance nvme: release namespace SRCU protection before performing controller ioctls nvme: merge nvme_ns_ioctl into nvme_ioctl nvme: remove the ifdef around nvme_nvm_ioctl nvme: fix srcu locking on error return in nvme_get_ns_from_disk nvme: Fix known effects nvme-pci: Sync queues on reset nvme-pci: Unblock reset_work on IO failure nvme-pci: Don't disable on timeout in reset state nvme-pci: Fix controller freeze wait disabling commit 004d564f908790efe815a6510a542ac1227ef2a2 Author: Jens Axboe Date: Wed May 22 08:59:12 2019 -0600 tools/io_uring: sync with liburing Various fixes and changes have been applied to liburing since we copied some select bits to the kernel testing/examples part, sync up with liburing to get those changes. Most notable is the change that split the CQE reading into the peek and seen event, instead of being just a single function. Also fixes an unsigned wrap issue in io_uring_submit(), leak of 'fd' in setup if we fail, and various other little issues. Signed-off-by: Jens Axboe commit 486f069253c3c738dec62daeb16f7232b2cca065 Author: Jens Axboe Date: Wed May 22 08:47:54 2019 -0600 tools/io_uring: fix Makefile for pthread library link Currently fails with: io_uring-bench.o: In function `main': /home/axboe/git/linux-block/tools/io_uring/io_uring-bench.c:560: undefined reference to `pthread_create' /home/axboe/git/linux-block/tools/io_uring/io_uring-bench.c:588: undefined reference to `pthread_join' collect2: error: ld returned 1 exit status Makefile:11: recipe for target 'io_uring-bench' failed make: *** [io_uring-bench] Error 1 Move -lpthread to the end. Signed-off-by: Jens Axboe commit 7996a8b5511a72465b0b286763c2d8f412b8874a Author: Bob Liu Date: Tue May 21 11:25:55 2019 +0800 blk-mq: fix hang caused by freeze/unfreeze sequence The following is a description of a hang in blk_mq_freeze_queue_wait(). The hang happens on attempt to freeze a queue while another task does queue unfreeze. The root cause is an incorrect sequence of percpu_ref_resurrect() and percpu_ref_kill() and as a result those two can be swapped: CPU#0 CPU#1 ---------------- ----------------- q1 = blk_mq_init_queue(shared_tags) q2 = blk_mq_init_queue(shared_tags): blk_mq_add_queue_tag_set(shared_tags): blk_mq_update_tag_set_depth(shared_tags): list_for_each_entry() blk_mq_freeze_queue(q1) > percpu_ref_kill() > blk_mq_freeze_queue_wait() blk_cleanup_queue(q1) blk_mq_freeze_queue(q1) > percpu_ref_kill() ^^^^^^ freeze_depth can't guarantee the order blk_mq_unfreeze_queue() > percpu_ref_resurrect() > blk_mq_freeze_queue_wait() ^^^^^^ Hang here!!!! This wrong sequence raises kernel warning: percpu_ref_kill_and_confirm called more than once on blk_queue_usage_counter_release! WARNING: CPU: 0 PID: 11854 at lib/percpu-refcount.c:336 percpu_ref_kill_and_confirm+0x99/0xb0 But the most unpleasant effect is a hang of a blk_mq_freeze_queue_wait(), which waits for a zero of a q_usage_counter, which never happens because percpu-ref was reinited (instead of being killed) and stays in PERCPU state forever. How to reproduce: - "insmod null_blk.ko shared_tags=1 nr_devices=0 queue_mode=2" - cpu0: python Script.py 0; taskset the corresponding process running on cpu0 - cpu1: python Script.py 1; taskset the corresponding process running on cpu1 Script.py: ------ #!/usr/bin/python3 import os import sys while True: on = "echo 1 > /sys/kernel/config/nullb/%s/power" % sys.argv[1] off = "echo 0 > /sys/kernel/config/nullb/%s/power" % sys.argv[1] os.system(on) os.system(off) ------ This bug was first reported and fixed by Roman, previous discussion: [1] Message id: 1443287365-4244-7-git-send-email-akinobu.mita@gmail.com [2] Message id: 1443563240-29306-6-git-send-email-tj@kernel.org [3] https://patchwork.kernel.org/patch/9268199/ Reviewed-by: Hannes Reinecke Reviewed-by: Ming Lei Reviewed-by: Bart Van Assche Reviewed-by: Christoph Hellwig Signed-off-by: Roman Pen Signed-off-by: Bob Liu Signed-off-by: Jens Axboe commit 6869875fbc04042ad01654591da60862706e86e3 Author: Christoph Hellwig Date: Tue May 21 09:01:43 2019 +0200 block: remove the bi_seg_{front,back}_size fields in struct bio At this point these fields aren't used for anything, so we can remove them. Reviewed-by: Ming Lei Reviewed-by: Hannes Reinecke Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit 200a9aff7b02feea30b01141b0df9bc19457a232 Author: Christoph Hellwig Date: Tue May 21 09:01:42 2019 +0200 block: remove the segment size check in bio_will_gap We fundamentally do not have a maximum segement size for devices with a virt boundary. So don't bother checking it, especially given that the existing checks didn't properly work to start with as we never fully update the front/back segment size and miss the bi_seg_front_size that wuld have been required for some cases. Signed-off-by: Christoph Hellwig Reviewed-by: Ming Lei Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe commit 09324d32d2a0843e66652a087da6f77924358e62 Author: Christoph Hellwig Date: Tue May 21 09:01:41 2019 +0200 block: force an unlimited segment size on queues with a virt boundary We currently fail to update the front/back segment size in the bio when deciding to allow an otherwise gappy segement to a device with a virt boundary. The reason why this did not cause problems is that devices with a virt boundary fundamentally don't use segments as we know it and thus don't care. Make that assumption formal by forcing an unlimited segement size in this case. Fixes: f6970f83ef79 ("block: don't check if adjacent bvecs in one bio can be mergeable") Signed-off-by: Christoph Hellwig Reviewed-by: Ming Lei Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe commit eded341c085bebdd653f8086c02179098cb81748 Author: Christoph Hellwig Date: Tue May 21 09:01:40 2019 +0200 block: don't decrement nr_phys_segments for physically contigous segments Currently ll_merge_requests_fn, unlike all other merge functions, reduces nr_phys_segments by one if the last segment of the previous, and the first segment of the next segement are contigous. While this seems like a nice solution to avoid building smaller than possible requests it causes a mismatch between the segments actually present in the request and those iterated over by the bvec iterators, including __rq_for_each_bio. This can for example mistrigger the single segment optimization in the nvme-pci driver, and might lead to mismatching nr_phys_segments number when recalculating the number of request when inserting a cloned request. We could possibly work around this by making the bvec iterators take the front and back segment size into account, but that would require moving them from the bio to the bio_iter and spreading this mess over all users of bvecs. Or we could simply remove this optimization under the assumption that most users already build good enough bvecs, and that the bio merge patch never cared about this optimization either. The latter is what this patch does. dff824b2aadb ("nvme-pci: optimize mapping of small single segment requests"). Reviewed-by: Ming Lei Reviewed-by: Hannes Reinecke Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit a0934fd2b1208458e55fc4b48f55889809fce666 Author: Andrea Parri Date: Mon May 20 19:23:57 2019 +0200 sbitmap: fix improper use of smp_mb__before_atomic() This barrier only applies to the read-modify-write operations; in particular, it does not apply to the atomic_set() primitive. Replace the barrier with an smp_mb(). Fixes: 6c0ca7ae292ad ("sbitmap: fix wakeup hang after sbq resize") Cc: stable@vger.kernel.org Reported-by: "Paul E. McKenney" Reported-by: Peter Zijlstra Signed-off-by: Andrea Parri Reviewed-by: Ming Lei Cc: Jens Axboe Cc: Omar Sandoval Cc: Ming Lei Cc: linux-block@vger.kernel.org Cc: "Paul E. McKenney" Cc: Peter Zijlstra Signed-off-by: Jens Axboe commit f381c6a4bd0ae0fde2d6340f1b9bb0f58d915de6 Author: Andrea Parri Date: Mon May 20 19:23:56 2019 +0200 bio: fix improper use of smp_mb__before_atomic() This barrier only applies to the read-modify-write operations; in particular, it does not apply to the atomic_set() primitive. Replace the barrier with an smp_mb(). Fixes: dac56212e8127 ("bio: skip atomic inc/dec of ->bi_cnt for most use cases") Cc: stable@vger.kernel.org Reported-by: "Paul E. McKenney" Reported-by: Peter Zijlstra Signed-off-by: Andrea Parri Reviewed-by: Ming Lei Cc: Jens Axboe Cc: Ming Lei Cc: linux-block@vger.kernel.org Cc: "Paul E. McKenney" Cc: Peter Zijlstra Signed-off-by: Jens Axboe commit 389468e76b6778c714af49f590de9efe3415c162 Author: Ed Cashin Date: Fri May 17 16:29:18 2019 -0400 aoe: list new maintainer for aoe driver Justin Sanders, who has extensive experience with ATA over Ethernet in general and AoE SCSI and block-device drivers in particular, is ready to take on the role of aoe maintainer. The driver needs a more active maintainer. Signed-off-by: Ed Cashin Signed-off-by: Jens Axboe commit 3f6f7a175ad4cf9a6a3dda72d7f5d122107f4b9e Author: Maxime Chevallier Date: Thu May 23 10:47:24 2019 +0200 net: mvpp2: cls: Fix leaked ethtool_rx_flow_rule The flow_rule is only used when configuring the classification tables, and should be free'd once we're done using it. The current code only frees it in the error path. Fixes: 90b509b39ac9 ("net: mvpp2: cls: Add Classification offload support") Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit bbb30909e0fd9ec01c25b88f635085bf481a7ea9 Author: Jonathan Corbet Date: Wed May 22 13:47:23 2019 -0600 docs: fix multiple doc build warnings in enumeration.rst The conversion of acpi/enumeration.txt to RST included one markup error, leading to many warnings like: .../firmware-guide/acpi/enumeration.rst:430: WARNING: Unexpected indentation. Add the missing colon and create some peace. Fixes: c24bc66e8157 ("Documentation: ACPI: move enumeration.txt to firmware-guide/acpi and convert to reST") Cc: Changbin Du Signed-off-by: Jonathan Corbet commit f35a1abd9e7a0d37a1bcc1149eaf2aa737d7ea21 Author: Jonathan Corbet Date: Wed May 22 13:41:45 2019 -0600 lib/list_sort: fix kerneldoc build error Commit 043b3f7b6388 ("lib/list_sort: simplify and remove MAX_LIST_LENGTH_BITS") added some useful kerneldoc info, but also broke the docs build: ./lib/list_sort.c:128: WARNING: Definition list ends without a blank line; unexpected unindent. ./lib/list_sort.c:161: WARNING: Unexpected indentation. ./lib/list_sort.c:162: WARNING: Block quote ends without a blank line; unexpected unindent. Fix the offending literal block and make the error go away. Fixes: 043b3f7b6388 ("lib/list_sort: simplify and remove MAX_LIST_LENGTH_BITS") Cc: George Spelvin Signed-off-by: Jonathan Corbet commit 8867f6109b84f50d959af2b26440a7faacc7633a Author: Jonathan Corbet Date: Wed May 22 13:35:13 2019 -0600 docs: fix numaperf.rst and add it to the doc tree Commit 13bac55ef7ae ("doc/mm: New documentation for memory performance") added numaperf.rst, but did not add it to the TOC tree. There was also an incorrectly marked literal block leading to this warning sequence: numaperf.rst:24: WARNING: Unexpected indentation. numaperf.rst:24: WARNING: Inline substitution_reference start-string without end-string. numaperf.rst:25: WARNING: Block quote ends without a blank line; unexpected unindent. Fix the block and add the file to the document tree. Fixes: 13bac55ef7ae ("doc/mm: New documentation for memory performance") Cc: Keith Busch Reviewed-by: Mike Rapoport Signed-off-by: Jonathan Corbet commit 2404dad1f67f8917e30fc22a85e0dbcc85b99955 Author: Jonathan Corbet Date: Tue May 21 14:42:34 2019 -0600 doc: Cope with the deprecation of AutoReporter AutoReporter is going away; recent versions of sphinx emit a warning like: Documentation/sphinx/kerneldoc.py:125: RemovedInSphinx20Warning: AutodocReporter is now deprecated. Use sphinx.util.docutils.switch_source_input() instead. Make the switch. But switch_source_input() only showed up in 1.7, so we have to do ugly version checks to keep things working in older versions. Cc: stable@vger.kernel.org Signed-off-by: Jonathan Corbet commit 096ea522e84ea68f8e6c41e5e7294731a81e29bc Author: Jonathan Corbet Date: Tue May 21 14:23:43 2019 -0600 doc: Cope with Sphinx logging deprecations Recent versions of sphinx will emit messages like: Documentation/sphinx/kerneldoc.py:103: RemovedInSphinx20Warning: app.warning() is now deprecated. Use sphinx.util.logging instead. Switch to sphinx.util.logging to make this unsightly message go away. Alas, that interface was only added in version 1.6, so we have to add a version check to keep things working with older sphinxes. Cc: stable@vger.kernel.org Signed-off-by: Jonathan Corbet commit 61686afe1ff378021da4e5509d081fb5196212d5 Merge: 54dee406374c a65fd4f0def5 Author: Linus Torvalds Date: Thu May 23 08:13:07 2019 -0700 Merge tag 'docs-5.2-fixes' of git://git.lwn.net/linux Pull documentation fixes from Jonathan Corbet: "A handful of fixes for a docs build problem, along with catching the spdxcheck.py script up with the current state of affairs" * tag 'docs-5.2-fixes' of git://git.lwn.net/linux: Documentation: kdump: fix minor typo scripts/spdxcheck.py: Add dual license subdirectory scripts/spdxcheck.py: Fix path to deprecated licenses counter: fix Documentation build error due to incorrect source file name commit a5325089bd05a7b0259cc4038479d36308edbda2 Author: Marc Zyngier Date: Thu May 23 11:24:50 2019 +0100 arm64: Handle erratum 1418040 as a superset of erratum 1188873 We already mitigate erratum 1188873 affecting Cortex-A76 and Neoverse-N1 r0p0 to r2p0. It turns out that revisions r0p0 to r3p1 of the same cores are affected by erratum 1418040, which has the same workaround as 1188873. Let's expand the range of affected revisions to match 1418040, and repaint all occurences of 1188873 to 1418040. Whilst we're there, do a bit of reformating in silicon-errata.txt and drop a now unnecessary dependency on ARM_ARCH_TIMER_OOL_WORKAROUND. Signed-off-by: Marc Zyngier Signed-off-by: Will Deacon commit 1cf24a2cc3fd40942b0f9e6199aaec579e89a832 Author: Ard Biesheuvel Date: Thu May 23 11:38:54 2019 +0100 arm64/module: deal with ambiguity in PRELxx relocation ranges The R_AARCH64_PREL16 and R_AARCH64_PREL32 relocations are documented as permitting a range of [-2^15 .. 2^16), resp. [-2^31 .. 2^32). It is also documented that this means we cannot detect overflow in some cases, which is bad. Since we always interpret the targets of these relocations as signed quantities (e.g., in the ksymtab handling code), let's tighten the overflow checks so that targets that are out of range for our signed interpretation of the relocated quantity get flagged. Signed-off-by: Ard Biesheuvel Signed-off-by: Will Deacon commit 186bcc3dcd106dc52d706117f912054b616666e1 Author: Jakub Sitnicki Date: Wed May 22 12:01:42 2019 +0200 bpf: sockmap, restore sk_write_space when psock gets dropped Once psock gets unlinked from its sock (sk_psock_drop), user-space can still trigger a call to sk->sk_write_space by setting TCP_NOTSENT_LOWAT socket option. This causes a null-ptr-deref because we try to read psock->saved_write_space from sk_psock_write_space: ================================================================== BUG: KASAN: null-ptr-deref in sk_psock_write_space+0x69/0x80 Read of size 8 at addr 00000000000001a0 by task sockmap-echo/131 CPU: 0 PID: 131 Comm: sockmap-echo Not tainted 5.2.0-rc1-00094-gf49aa1de9836 #81 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS ?-20180724_192412-buildhw-07.phx2.fedoraproject.org-1.fc29 04/01/2014 Call Trace: ? sk_psock_write_space+0x69/0x80 __kasan_report.cold.2+0x5/0x3f ? sk_psock_write_space+0x69/0x80 kasan_report+0xe/0x20 sk_psock_write_space+0x69/0x80 tcp_setsockopt+0x69a/0xfc0 ? tcp_shutdown+0x70/0x70 ? fsnotify+0x5b0/0x5f0 ? remove_wait_queue+0x90/0x90 ? __fget_light+0xa5/0xf0 __sys_setsockopt+0xe6/0x180 ? sockfd_lookup_light+0xb0/0xb0 ? vfs_write+0x195/0x210 ? ksys_write+0xc9/0x150 ? __x64_sys_read+0x50/0x50 ? __bpf_trace_x86_fpu+0x10/0x10 __x64_sys_setsockopt+0x61/0x70 do_syscall_64+0xc5/0x520 ? vmacache_find+0xc0/0x110 ? syscall_return_slowpath+0x110/0x110 ? handle_mm_fault+0xb4/0x110 ? entry_SYSCALL_64_after_hwframe+0x3e/0xbe ? trace_hardirqs_off_caller+0x4b/0x120 ? trace_hardirqs_off_thunk+0x1a/0x3a entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x7f2e5e7cdcce Code: d8 64 89 02 48 c7 c0 ff ff ff ff eb b1 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 f3 0f 1e fa 49 89 ca b8 36 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 8a 11 0c 00 f7 d8 64 89 01 48 RSP: 002b:00007ffed011b778 EFLAGS: 00000206 ORIG_RAX: 0000000000000036 RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 00007f2e5e7cdcce RDX: 0000000000000019 RSI: 0000000000000006 RDI: 0000000000000007 RBP: 00007ffed011b790 R08: 0000000000000004 R09: 00007f2e5e84ee80 R10: 00007ffed011b788 R11: 0000000000000206 R12: 00007ffed011b78c R13: 00007ffed011b788 R14: 0000000000000007 R15: 0000000000000068 ================================================================== Restore the saved sk_write_space callback when psock is being dropped to fix the crash. Signed-off-by: Jakub Sitnicki Signed-off-by: Daniel Borkmann commit 00d8304553de529802430799d2b2566fd32859d4 Author: Björn Töpel Date: Wed May 22 11:23:23 2019 +0200 selftests: bpf: add zero extend checks for ALU32 and/or/xor Add three tests to test_verifier/basic_instr that make sure that the high 32-bits of the destination register is cleared after an ALU32 and/or/xor. Signed-off-by: Björn Töpel Acked-by: Yonghong Song Signed-off-by: Daniel Borkmann commit fe121ee531d1362810bfd30f38a1b88b1d3d376c Author: Björn Töpel Date: Tue May 21 15:46:22 2019 +0200 bpf, riscv: clear target register high 32-bits for and/or/xor on ALU32 When using 32-bit subregisters (ALU32), the RISC-V JIT would not clear the high 32-bits of the target register and therefore generate incorrect code. E.g., in the following code: $ cat test.c unsigned int f(unsigned long long a, unsigned int b) { return (unsigned int)a & b; } $ clang-9 -target bpf -O2 -emit-llvm -S test.c -o - | \ llc-9 -mattr=+alu32 -mcpu=v3 .text .file "test.c" .globl f .p2align 3 .type f,@function f: r0 = r1 w0 &= w2 exit .Lfunc_end0: .size f, .Lfunc_end0-f The JIT would not clear the high 32-bits of r0 after the and-operation, which in this case might give an incorrect return value. After this patch, that is not the case, and the upper 32-bits are cleared. Reported-by: Jiong Wang Fixes: 2353ecc6f91f ("bpf, riscv: add BPF JIT for RV64G") Signed-off-by: Björn Töpel Signed-off-by: Daniel Borkmann commit f3440d9a0da292dc4998d9393162fcfb996fd671 Author: Super Liu Date: Wed May 22 14:30:14 2019 +0800 spi: abort spi_sync if failed to prepare_transfer_hardware There is no chance to wait spi message complete if failed to prepare_transfer_hardware(). Therefore, finalize this message and abort transfer with corresponding return status to release this block case. Logs: [17400.283005] c7 3267 PM: PM: suspend entry 2019-05-04 03:01:14.403097147 UTC [17400.283013] c7 3267 PM: suspend entry (deep) [17400.283016] c6 3267 PM: Syncing filesystems ... done. [17400.584395] c1 753 spi_geni 890000.spi: spi_geni_prepare_transfer_hardware:Error enabling SE resources -13 [17400.584404] c1 753 spi_master spi1: failed to prepare transfer hardware [17400.664611] c4 3267 PM: PM: suspend exit 2019-05-04 03:01:15.235273018 UTC Flow: __spi_sync@spi.c | if (status == 0) { | /* Push out the messages in the calling context if we | * can. | */ | if (ctlr->transfer == spi_queued_transfer) { | SPI_STATISTICS_INCREMENT_FIELD(&ctlr->statistics, | spi_sync_immediate); | SPI_STATISTICS_INCREMENT_FIELD(&spi->statistics, | spi_sync_immediate); | __spi_pump_messages(ctlr, false); | } | | wait_for_completion(&done); <== stuck here!!! | status = message->status; | } | message->context = NULL; | return status; | --> __spi_pump_messages@spi.c | if (!was_busy && ctlr->prepare_transfer_hardware) { | ret = ctlr->prepare_transfer_hardware(ctlr); | if (ret) { | dev_err(&ctlr->dev, | "failed to prepare transfer hardware\n"); | | if (ctlr->auto_runtime_pm) | pm_runtime_put(ctlr->dev.parent); | mutex_unlock(&ctlr->io_mutex); | return; | } | } | --> spi_geni_prepare_transfer_hardware@spi-geni-qcom.c | ret = pm_runtime_get_sync(mas->dev); | if (ret < 0) { | dev_err(mas->dev, | "%s:Error enabling SE resources %d\n", | __func__, ret); | pm_runtime_put_noidle(mas->dev); | goto exit_prepare_transfer_hardware; Signed-off-by: Super Liu Signed-off-by: Mark Brown commit 8212688600edcb4a147ab7e4634c448938f9121a Author: Lorenzo Pieralisi Date: Thu May 16 16:52:58 2019 +0100 ACPI/IORT: Fix build error when IOMMU_SUPPORT is disabled If IOMMU_SUPPORT is not enabled (and therefore IOMMU_API is not selected), struct iommu_fwspec is an empty struct and IOMMU_FWSPEC_PCI_RC_ATS is not defined, resulting in the following compilation errors: drivers/acpi/arm64/iort.c: In function iort_iommu_configure: drivers/acpi/arm64/iort.c:1079:21: error: struct iommu_fwspec has no member named flag: dev->iommu_fwspec->flags |= IOMMU_FWSPEC_PCI_RC_ATS; ^~ drivers/acpi/arm64/iort.c:1079:32: error: IOMMU_FWSPEC_PCI_RC_ATS undeclared (first use in this function) dev->iommu_fwspec->flags |= IOMMU_FWSPEC_PCI_RC_ATS; ^~~~~~~~~~~~~~~~~~~~~~~ drivers/acpi/arm64/iort.c:1079:32: note: each undeclared identifier is reported only once for each function it appears in Move iort_iommu_configure() (and the helpers functions it relies on) into CONFIG_IOMMU_API preprocessor guarded code so that when CONFIG_IOMMU_SUPPORT is not enabled we prevent compiling code that is basically equivalent to no-OP, fixing the build errors. Cc: Jean-Philippe Brucker Cc: Will Deacon Cc: Robin Murphy Link: https://lore.kernel.org/linux-arm-kernel/20190515034253.79348-1-wangkefeng.wang@huawei.com/ Fixes: 5702ee24182f ("ACPI/IORT: Check ATS capability in root complex nodes") Signed-off-by: Lorenzo Pieralisi Signed-off-by: Will Deacon commit b2eed9b58811283d00fa861944cb75797d4e52a7 Author: Ard Biesheuvel Date: Thu May 23 10:17:37 2019 +0100 arm64/kernel: kaslr: reduce module randomization range to 2 GB The following commit 7290d5809571 ("module: use relative references for __ksymtab entries") updated the ksymtab handling of some KASLR capable architectures so that ksymtab entries are emitted as pairs of 32-bit relative references. This reduces the size of the entries, but more importantly, it gets rid of statically assigned absolute addresses, which require fixing up at boot time if the kernel is self relocating (which takes a 24 byte RELA entry for each member of the ksymtab struct). Since ksymtab entries are always part of the same module as the symbol they export, it was assumed at the time that a 32-bit relative reference is always sufficient to capture the offset between a ksymtab entry and its target symbol. Unfortunately, this is not always true: in the case of per-CPU variables, a per-CPU variable's base address (which usually differs from the actual address of any of its per-CPU copies) is allocated in the vicinity of the ..data.percpu section in the core kernel (i.e., in the per-CPU reserved region which follows the section containing the core kernel's statically allocated per-CPU variables). Since we randomize the module space over a 4 GB window covering the core kernel (based on the -/+ 4 GB range of an ADRP/ADD pair), we may end up putting the core kernel out of the -/+ 2 GB range of 32-bit relative references of module ksymtab entries that refer to per-CPU variables. So reduce the module randomization range a bit further. We lose 1 bit of randomization this way, but this is something we can tolerate. Cc: # v4.19+ Signed-off-by: Ard Biesheuvel Signed-off-by: Will Deacon commit 969f5ea627570e91c9d54403287ee3ed657f58fe Author: Will Deacon Date: Mon Apr 29 13:03:57 2019 +0100 arm64: errata: Add workaround for Cortex-A76 erratum #1463225 Revisions of the Cortex-A76 CPU prior to r4p0 are affected by an erratum that can prevent interrupts from being taken when single-stepping. This patch implements a software workaround to prevent userspace from effectively being able to disable interrupts. Cc: Cc: Marc Zyngier Cc: Catalin Marinas Signed-off-by: Will Deacon commit 3e29ead500137fe0733eecb901707f986aaf3e30 Author: Will Deacon Date: Tue May 14 12:57:54 2019 +0100 arm64: Remove useless message during oops During an oops, we print the name of the current task and its pid twice. We also helpfully advertise its stack limit as "0x(____ptrval____)". Drop these useless messages. Signed-off-by: Will Deacon commit 317d9313925cd8388304286c0d3c8dda7f060a2d Author: Kailang Yang Date: Thu May 23 14:43:04 2019 +0800 ALSA: hda/realtek - Set default power save node to 0 I measured power consumption between power_save_node=1 and power_save_node=0. It's almost the same. Codec will enter to runtime suspend and suspend. That pin also will enter to D3. Don't need to enter to D3 by single pin. So, Disable power_save_node as default. It will avoid more issues. Windows Driver also has not this option at runtime PM. Signed-off-by: Kailang Yang Cc: Signed-off-by: Takashi Iwai commit 903869bd10e6719b9df6718e785be7ec725df59f Author: Eric Dumazet Date: Wed May 22 18:35:16 2019 -0700 ipv4/igmp: fix build error if !CONFIG_IP_MULTICAST ip_sf_list_clear_all() needs to be defined even if !CONFIG_IP_MULTICAST Fixes: 3580d04aa674 ("ipv4/igmp: fix another memory leak in igmpv3_del_delrec()") Signed-off-by: Eric Dumazet Reported-by: kbuild test robot Signed-off-by: David S. Miller commit 8b909e3548706cbebc0a676067b81aadda57f47e Author: Thiago Jung Bauermann Date: Wed May 22 19:01:58 2019 -0300 powerpc/kexec: Fix loading of kernel + initramfs with kexec_file_load() Commit b6664ba42f14 ("s390, kexec_file: drop arch_kexec_mem_walk()") changed kexec_add_buffer() to skip searching for a memory location if kexec_buf.mem is already set, and use the address that is there. In powerpc code we reuse a kexec_buf variable for loading both the kernel and the initramfs by resetting some of the fields between those uses, but not mem. This causes kexec_add_buffer() to try to load the kernel at the same address where initramfs will be loaded, which is naturally rejected: # kexec -s -l --initrd initramfs vmlinuz kexec_file_load failed: Invalid argument Setting the mem field before every call to kexec_add_buffer() fixes this regression. Fixes: b6664ba42f14 ("s390, kexec_file: drop arch_kexec_mem_walk()") Cc: stable@vger.kernel.org # v5.0+ Signed-off-by: Thiago Jung Bauermann Reviewed-by: Dave Young Signed-off-by: Michael Ellerman commit 6b0538da5a6ca2129b93cea5afc997226875c402 Merge: eab007dd1b04 43d8107f0bdc Author: Dave Airlie Date: Thu May 23 12:04:00 2019 +1000 Merge branch 'drm-fixes-5.2' of git://people.freedesktop.org/~agd5f/linux into drm-fixes Fixes for 5.2: - Fix for DMCU firmware issues for stable - Add missing polaris10 pci id to kfd - Screen corruption fix on picasso - Fix for driver reload on vega10 - SR-IOV fixes - Locking fix in new SMU code - Compute profile switching fix for KFD Signed-off-by: Dave Airlie From: Alex Deucher Link: https://patchwork.freedesktop.org/patch/msgid/20190522205425.3657-1-alexander.deucher@amd.com commit eab007dd1b04015d12cb3dc9d3496fd21e8436a7 Merge: 27e248c46782 f3617b449d0b Author: Dave Airlie Date: Thu May 23 12:03:35 2019 +1000 Merge tag 'drm-misc-fixes-2019-05-22' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes - sun4i fixes to hdmi phy as well as u16 overflow in dsi (left from -next-fixes) - gma500 fix to make lvds detection more reliable - select devfreq for panfrost since it can't probe without it Signed-off-by: Dave Airlie From: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190522194440.GA22359@art_vandelay commit 27e248c467826cc9a35609aaefdf5cb08681badc Merge: a188339ca5a3 5ed7f4b5eca1 Author: Dave Airlie Date: Thu May 23 12:02:30 2019 +1000 Merge branch 'vmwgfx-fixes-5.2' of git://people.freedesktop.org/~thomash/linux into drm-fixes A set of misc fixes for various issues that have surfaced recently. All Cc'd stable except the dma iterator fix which shouldn't really cause any real issues on older kernels. Signed-off-by: Dave Airlie From: "Thomas Hellstrom (VMware)" Link: https://patchwork.freedesktop.org/patch/msgid/20190522115408.33185-1-thomas@shipmail.org commit c5eac1f5326b0b67e50ad5d560d7e68e6c95ef14 Author: Geert Uytterhoeven Date: Wed May 22 10:15:35 2019 +0200 MIPS: TXx9: Fix boot crash in free_initmem() On rbtx4927: BUG: Bad page state in process swapper pfn:00001 page:804b7820 refcount:0 mapcount:-128 mapping:00000000 index:0x1 flags: 0x0() raw: 00000000 00000100 00000200 00000000 00000001 00000000 ffffff7f 00000000 page dumped because: nonzero mapcount Modules linked in: CPU: 0 PID: 1 Comm: swapper Not tainted 5.2.0-rc1-rbtx4927-00468-g3c05ea3d4077b756 #141 Stack : 00000000 10008400 8040dc4c 87c1b974 8044af63 8040dc4c 00000001 804a3490 00000001 81000000 0030f231 80148558 00000003 10008400 87c1dd80 3d0f9a2c 00000000 00000000 804b0000 00000000 00000007 00000000 00000081 00000000 62722d31 00000080 804b0000 39347874 00000000 804b7820 8040ce18 81000010 00000001 00000007 00000001 81000000 00000018 8021de24 00000000 804a0000 ... Call Trace: [<8010adec>] show_stack+0x74/0x104 [<801a5e44>] bad_page+0x130/0x138 [<801a654c>] free_pcppages_bulk+0x17c/0x3b0 [<801a789c>] free_unref_page+0x40/0x68 [<801120f4>] free_init_pages+0xec/0x104 [<803bdde8>] free_initmem+0x10/0x58 [<803bdb8c>] kernel_init+0x20/0x100 [<801057c8>] ret_from_kernel_thread+0x14/0x1c As of commit b93ddc4f9156205e ("mips: Reserve memory for the kernel image resources"), bootmem_init() no longer reserves the memory below the kernel, while prom_free_prom_memory() still frees it. Fix this by reverting commit b6263ff2d6e58cc2 ("MIPS: TXx9: Implement prom_free_prom_memory"). Suggested-by: Serge Semin Fixes: b93ddc4f9156205e ("mips: Reserve memory for the kernel image resources") Signed-off-by: Geert Uytterhoeven Reviewed-by: Atsushi Nemoto Signed-off-by: Paul Burton Cc: Ralf Baechle Cc: James Hogan Cc: Mike Rapoport Cc: Maciej W . Rozycki Cc: linux-mips@vger.kernel.org Cc: linux-kernel@vger.kernel.org commit 3dd0aade5911d21abb35fbd4f71c3f52c25891d1 Author: Masahiro Yamada Date: Tue May 21 13:03:27 2019 +0900 MIPS: remove a space after -I to cope with header search paths for VDSO Commit 9cc342f6c4a0 ("treewide: prefix header search paths with $(srctree)/") caused a build error for MIPS VDSO. CC arch/mips/vdso/gettimeofday.o In file included from ../arch/mips/vdso/vdso.h:26, from ../arch/mips/vdso/gettimeofday.c:11: ../arch/mips/include/asm/page.h:12:10: fatal error: spaces.h: No such file or directory #include ^~~~~~~~~~ The cause of the error is a missing space after the compiler flag -I . Kbuild used to have a global restriction "no space after -I", but commit 48f6e3cf5bc6 ("kbuild: do not drop -I without parameter") got rid of it. Having a space after -I is no longer a big deal as far as Kbuild is concerned. It is still a big deal for MIPS because arch/mips/vdso/Makefile filters the header search paths, like this: ccflags-vdso := \ $(filter -I%,$(KBUILD_CFLAGS)) \ ..., which relies on the assumption that there is no space after -I . Fixes: 9cc342f6c4a0 ("treewide: prefix header search paths with $(srctree)/") Reported-by: kbuild test robot Signed-off-by: Masahiro Yamada Signed-off-by: Paul Burton Cc: Ralf Baechle Cc: James Hogan Cc: linux-mips@vger.kernel.org Cc: linux-kernel@vger.kernel.org commit 6074c33c6b2eabc70867ef76d57ca256e9ea9da7 Author: Masahiro Yamada Date: Tue May 21 15:20:39 2019 +0900 MIPS: mark ginvt() as __always_inline To meet the 'i' (immediate) constraint for the asm operands, this function must be always inlined. Signed-off-by: Masahiro Yamada Signed-off-by: Paul Burton Cc: linux-mips@vger.kernel.org Cc: Ralf Baechle Cc: James Hogan Cc: linux-kernel@vger.kernel.org commit 3580d04aa674383c42de7b635d28e52a1e5bc72c Author: Eric Dumazet Date: Wed May 22 16:51:22 2019 -0700 ipv4/igmp: fix another memory leak in igmpv3_del_delrec() syzbot reported memory leaks [1] that I have back tracked to a missing cleanup from igmpv3_del_delrec() when (im->sfmode != MCAST_INCLUDE) Add ip_sf_list_clear_all() and kfree_pmc() helpers to explicitely handle the cleanups before freeing. [1] BUG: memory leak unreferenced object 0xffff888123e32b00 (size 64): comm "softirq", pid 0, jiffies 4294942968 (age 8.010s) hex dump (first 32 bytes): 00 00 00 00 00 00 00 00 e0 00 00 01 00 00 00 00 ................ 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ backtrace: [<000000006105011b>] kmemleak_alloc_recursive include/linux/kmemleak.h:55 [inline] [<000000006105011b>] slab_post_alloc_hook mm/slab.h:439 [inline] [<000000006105011b>] slab_alloc mm/slab.c:3326 [inline] [<000000006105011b>] kmem_cache_alloc_trace+0x13d/0x280 mm/slab.c:3553 [<000000004bba8073>] kmalloc include/linux/slab.h:547 [inline] [<000000004bba8073>] kzalloc include/linux/slab.h:742 [inline] [<000000004bba8073>] ip_mc_add1_src net/ipv4/igmp.c:1961 [inline] [<000000004bba8073>] ip_mc_add_src+0x36b/0x400 net/ipv4/igmp.c:2085 [<00000000a46a65a0>] ip_mc_msfilter+0x22d/0x310 net/ipv4/igmp.c:2475 [<000000005956ca89>] do_ip_setsockopt.isra.0+0x1795/0x1930 net/ipv4/ip_sockglue.c:957 [<00000000848e2d2f>] ip_setsockopt+0x3b/0xb0 net/ipv4/ip_sockglue.c:1246 [<00000000b9db185c>] udp_setsockopt+0x4e/0x90 net/ipv4/udp.c:2616 [<000000003028e438>] sock_common_setsockopt+0x38/0x50 net/core/sock.c:3130 [<0000000015b65589>] __sys_setsockopt+0x98/0x120 net/socket.c:2078 [<00000000ac198ef0>] __do_sys_setsockopt net/socket.c:2089 [inline] [<00000000ac198ef0>] __se_sys_setsockopt net/socket.c:2086 [inline] [<00000000ac198ef0>] __x64_sys_setsockopt+0x26/0x30 net/socket.c:2086 [<000000000a770437>] do_syscall_64+0x76/0x1a0 arch/x86/entry/common.c:301 [<00000000d3adb93b>] entry_SYSCALL_64_after_hwframe+0x44/0xa9 Fixes: 9c8bb163ae78 ("igmp, mld: Fix memory leak in igmpv3/mld_del_delrec()") Signed-off-by: Eric Dumazet Cc: Hangbin Liu Reported-by: syzbot Signed-off-by: David S. Miller commit db51a73282bbed61209b1c071e0a4f62e8918b0a Merge: 31680ac26580 2e9217d1e8b7 Author: David S. Miller Date: Wed May 22 18:02:14 2019 -0700 Merge branch 'bnxt_en-Bug-fixes' Michael Chan says: =================== bnxt_en: Bug fixes. There are 4 driver fixes in this series: 1. Fix RX buffer leak during OOM condition. 2. Call pci_disable_msix() under correct conditions to prevent hitting BUG. 3. Reduce unneeded mmeory allocation in kdump kernel to prevent OOM. 4. Don't read device serial number on VFs because it is not supported. Please queue #1, #2, #3 for -stable as well. Thanks. =================== Signed-off-by: David S. Miller commit 2e9217d1e8b72dde2c7e3e2338cc1830f68cb58d Author: Vasundhara Volam Date: Wed May 22 19:12:57 2019 -0400 bnxt_en: Device serial number is supported only for PFs. Don't read DSN on VFs that do not have the PCI capability. Fixes: 03213a996531 ("bnxt: move bp->switch_id initialization to PF probe") Signed-off-by: Vasundhara Volam Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit d629522e1d66561f38e5c8d4f52bb6d254ec0707 Author: Michael Chan Date: Wed May 22 19:12:56 2019 -0400 bnxt_en: Reduce memory usage when running in kdump kernel. Skip RDMA context memory allocations, reduce to 1 ring, and disable TPA when running in the kdump kernel. Without this patch, the driver fails to initialize with memory allocation errors when running in a typical kdump kernel. Fixes: cf6daed098d1 ("bnxt_en: Increase context memory allocations on 57500 chips for RDMA.") Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 1b3f0b75c39f534278a895c117282014e9d0ae1f Author: Michael Chan Date: Wed May 22 19:12:55 2019 -0400 bnxt_en: Fix possible BUG() condition when calling pci_disable_msix(). When making configuration changes, the driver calls bnxt_close_nic() and then bnxt_open_nic() for the changes to take effect. A parameter irq_re_init is passed to the call sequence to indicate if IRQ should be re-initialized. This irq_re_init parameter needs to be included in the bnxt_reserve_rings() call. bnxt_reserve_rings() can only call pci_disable_msix() if the irq_re_init parameter is true, otherwise it may hit BUG() because some IRQs may not have been freed yet. Fixes: 41e8d7983752 ("bnxt_en: Modify the ring reservation functions for 57500 series chips.") Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 296d5b54163964b7ae536b8b57dfbd21d4e868e1 Author: Michael Chan Date: Wed May 22 19:12:54 2019 -0400 bnxt_en: Fix aggregation buffer leak under OOM condition. For every RX packet, the driver replenishes all buffers used for that packet and puts them back into the RX ring and RX aggregation ring. In one code path where the RX packet has one RX buffer and one or more aggregation buffers, we missed recycling the aggregation buffer(s) if we are unable to allocate a new SKB buffer. This leads to the aggregation ring slowly running out of buffers over time. Fix it by properly recycling the aggregation buffers. Fixes: c0c050c58d84 ("bnxt_en: New Broadcom ethernet driver.") Reported-by: Rakesh Hemnani Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 31680ac265802397937d75461a2809a067b9fb93 Author: David Ahern Date: Wed May 22 15:12:18 2019 -0700 ipv6: Fix redirect with VRF IPv6 redirect is broken for VRF. __ip6_route_redirect walks the FIB entries looking for an exact match on ifindex. With VRF the flowi6_oif is updated by l3mdev_update_flow to the l3mdev index and the FLOWI_FLAG_SKIP_NH_OIF set in the flags to tell the lookup to skip the device match. For redirects the device match is requires so use that flag to know when the oif needs to be reset to the skb device index. Fixes: ca254490c8df ("net: Add VRF support to IPv6 stack") Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 49ce881c0d4c4a7a35358d9dccd5f26d0e56fc61 Author: Jisheng Zhang Date: Wed May 22 10:05:09 2019 +0000 net: stmmac: fix reset gpio free missing Commit 984203ceff27 ("net: stmmac: mdio: remove reset gpio free") removed the reset gpio free, when the driver is unbinded or rmmod, we miss the gpio free. This patch uses managed API to request the reset gpio, so that the gpio could be freed properly. Fixes: 984203ceff27 ("net: stmmac: mdio: remove reset gpio free") Signed-off-by: Jisheng Zhang Signed-off-by: David S. Miller commit ccfb62f27beb295103e9392462b20a6ed807d0ea Author: Dan Carpenter Date: Wed May 22 11:45:13 2019 +0300 mISDN: make sure device name is NUL terminated The user can change the device_name with the IMSETDEVNAME ioctl, but we need to ensure that the user's name is NUL terminated. Otherwise it could result in a buffer overflow when we copy the name back to the user with IMGETDEVINFO ioctl. I also changed two strcpy() calls which handle the name to strscpy(). Hopefully, there aren't any other ways to create a too long name, but it's nice to do this as a kernel hardening measure. Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller commit c1e85c6ce57ef1eb73966152993a341c8123a8ea Author: Claudiu Beznea Date: Wed May 22 08:24:43 2019 +0000 net: macb: save/restore the remaining registers and features SAMA5D2 SoC has a suspend mode where SoC's power is cut off. Due to this the registers content is lost after a suspend/resume cycle. The current suspend/resume implementation covers some of these registers. However there are few which were not treated (e.g. SCRT2 and USRIO). Apart from this, netdev features are not restored. Treat these issues. Signed-off-by: Claudiu Beznea Signed-off-by: David S. Miller commit 852d095d16a6298834839f441593f59d58a31978 Author: Rob Herring Date: Wed May 22 09:55:34 2019 -0500 checkpatch.pl: Update DT vendor prefix check In commit 8122de54602e ("dt-bindings: Convert vendor prefixes to json-schema"), vendor-prefixes.txt has been converted to a DT schema. Update the checkpatch.pl DT check to extract vendor prefixes from the new vendor-prefixes.yaml file. Fixes: 8122de54602e ("dt-bindings: Convert vendor prefixes to json-schema") Cc: Joe Perches Signed-off-by: Rob Herring commit 4eebe38a37f9397ffecd4bd3afbdf36838a97969 Author: Jagadeesh Pagadala Date: Thu Mar 28 03:49:46 2019 +0530 kernel/trace/trace.h: Remove duplicate header of trace_seq.h Remove duplicate header which is included twice. Link: http://lkml.kernel.org/r/1553725186-41442-1-git-send-email-jagdsh.linux@gmail.com Reviewed-by: Mukesh Ojha Signed-off-by: Jagadeesh Pagadala Signed-off-by: Steven Rostedt (VMware) commit eb96e57b913ff668b8b804178cdc509f9b3d4472 Author: Sean Young Date: Mon May 20 15:43:49 2019 -0400 media: dvb: warning about dvb frequency limits produces too much noise This can be a debug message. Favour dev_dbg() over dprintk() as this is already used much more than dprintk(). dvb_frontend: dvb_frontend_get_frequency_limits: frequency interval: tuner: 45000000...860000000, frontend: 44250000...867250000 Fixes: 00ecd6bc7128 ("media: dvb_frontend: add debug message for frequency intervals") Cc: # 5.0 Signed-off-by: Sean Young Signed-off-by: Mauro Carvalho Chehab commit 8f073036bf357867a612912eb4b7e58a9b768019 Merge: 0d18c7bd931f c3f4a6c39cf2 Author: David S. Miller Date: Wed May 22 12:21:44 2019 -0700 Merge branch 'net-tls-fix-device-surprise-removal-with-offload' Jakub Kicinski says: ==================== net/tls: fix device surprise removal with offload This series fixes two issues with device surprise removal. First we need to take a read lock around resync, otherwise netdev notifier handler may clear the structures from under our feet. Secondly we need to be careful about the interpretation of device features. Offload has to be properly cleaned up even if the TLS device features got cleared after connection state was installed. ==================== Signed-off-by: David S. Miller commit c3f4a6c39cf269a40d45f813c05fa830318ad875 Author: Jakub Kicinski Date: Tue May 21 19:02:02 2019 -0700 net/tls: don't ignore netdev notifications if no TLS features On device surprise removal path (the notifier) we can't bail just because the features are disabled. They may have been enabled during the lifetime of the device. This bug leads to leaking netdev references and use-after-frees if there are active connections while device features are cleared. Fixes: e8f69799810c ("net/tls: Add generic NIC offload infrastructure") Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Signed-off-by: David S. Miller commit 3686637e507b48525fcea6fb91e1988bdbc14530 Author: Jakub Kicinski Date: Tue May 21 19:02:01 2019 -0700 net/tls: fix state removal with feature flags off TLS offload drivers shouldn't (and currently don't) block the TLS offload feature changes based on whether there are active offloaded connections or not. This seems to be a good idea, because we want the admin to be able to disable the TLS offload at any time, and there is no clean way of disabling it for active connections (TX side is quite problematic). So if features are cleared existing connections will stay offloaded until they close, and new connections will not attempt offload to a given device. However, the offload state removal handling is currently broken if feature flags get cleared while there are active TLS offloads. RX side will completely bail from cleanup, even on normal remove path, leaving device state dangling, potentially causing issues when the 5-tuple is reused. It will also fail to release the netdev reference. Remove the RX-side warning message, in next release cycle it should be printed when features are disabled, rather than when connection dies, but for that we need a more efficient method of finding connection of a given netdev (a'la BPF offload code). Fixes: 4799ac81e52a ("tls: Add rx inline crypto offload") Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Signed-off-by: David S. Miller commit 38030d7cb77963ba84cdbe034806e2b81245339f Author: Jakub Kicinski Date: Tue May 21 19:02:00 2019 -0700 net/tls: avoid NULL-deref on resync during device removal When netdev with active kTLS sockets in unregistered notifier callback walks the offloaded sockets and cleans up offload state. RX data may still be processed, however, and if resync was requested prior to device removal we would hit a NULL pointer dereference on ctx->netdev use. Make sure resync is under the device offload lock and NULL-check the netdev pointer. This should be safe, because the pointer is set to NULL either in the netdev notifier (under said lock) or when socket is completely dead and no resync can happen. The other access to ctx->netdev in tls_validate_xmit_skb() does not dereference the pointer, it just checks it against other device pointer, so it should be pretty safe (perhaps we can add a READ_ONCE/WRITE_ONCE there, if paranoid). Fixes: 4799ac81e52a ("tls: Add rx inline crypto offload") Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Signed-off-by: David S. Miller commit 0d18c7bd931f86ccc6a1ab1d8b3b7b0a19b2598a Merge: d008b3d2be4b f42c104f2ec9 Author: David S. Miller Date: Wed May 22 12:18:20 2019 -0700 Merge branch 'Documentation-tls--add-offload-documentation' Jakub Kicinski says: ==================== Documentation: tls: add offload documentation This set adds documentation for TLS offload. It starts by making the networking documentation a little easier to navigate by hiding driver docs a little deeper. It then RSTifys the existing Kernel TLS documentation. Last but not least TLS offload documentation is added. This should help vendors navigate the TLS offload, and help ensure different implementations stay aligned from user perspective. v2: - address Alexei's and Boris'es commands on patch 3. ==================== Signed-off-by: David S. Miller commit f42c104f2ec94a9255a835cd4cd1bd76279d4d06 Author: Jakub Kicinski Date: Tue May 21 18:57:14 2019 -0700 Documentation: add TLS offload documentation Describe existing kernel TLS offload (added back in Linux 4.19) - the mechanism, the expected behavior and the notable corner cases. This documentation is mostly targeting hardware vendors who want to implement offload, to ensure consistency between implementations. v2: - add emphasis around TLS_SW/TLS_HW/TLS_HW_RECORD; - remove mentions of ongoing work (Boris); - split the flow of data in SW vs. HW cases in TX overview (Boris); - call out which fields are updated by the device and which are filled by the stack (Boris); - move error handling into it's own section (Boris); - add more words about fallback (Boris); - note that checksum validation is required (Alexei); - note that drivers shouldn't pay attention to the TLS device features. Signed-off-by: Jakub Kicinski Acked-by: Dave Watson Acked-by: Alexei Starovoitov Acked-by: Boris Pismenny Signed-off-by: David S. Miller commit f3c0f3c6c2013e6caa7ab9c3c6a9fb12f6832c43 Author: Jakub Kicinski Date: Tue May 21 18:57:13 2019 -0700 Documentation: tls: RSTify the ktls documentation Convert the TLS doc to RST. Use C code blocks for the code samples, and mark hyperlinks. Signed-off-by: Jakub Kicinski Acked-by: Dave Watson Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller commit b0d8d4363e523e952254619ae24dd0dfd7ea1181 Author: Jakub Kicinski Date: Tue May 21 18:57:12 2019 -0700 Documentation: net: move device drivers docs to a submenu Some of the device drivers have really long document titles making the networking table of contents hard to look through. Place vendor drivers under a submenu. Signed-off-by: Jakub Kicinski Acked-by: Dave Watson Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller commit d008b3d2be4b00267e7af5c21269e7af4f65c6e2 Author: Dan Carpenter Date: Tue May 21 12:42:56 2019 +0300 mISDN: Fix indenting in dsp_cmx.c We used a script to indent this code back in 2012, but I guess it got confused by the ifdefs and added some extra tabs. This patch removes them. Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller commit 40a1578d631a8ac1cf0ef797c435114107747859 Author: Claudiu Manoil Date: Tue May 21 19:52:55 2019 +0300 ocelot: Dont allocate another multicast list, use __dev_mc_sync Doing kmalloc in atomic context is always an issue, more so for a list that can grow significantly. Turns out that the driver only uses the duplicated list of multicast mac addresses to keep track of what addresses to delete from h/w before committing the new list from kernel to h/w back again via set_rx_mode, every time this list gets updated by the kernel. Given that the h/w knows how to add and delete mac addresses based on the mac address value alone, __dev_mc_sync should be the much better choice of kernel API for these operations avoiding the considerable overhead of maintaining a duplicated list in the driver. Signed-off-by: Claudiu Manoil Tested-by: Alexandre Belloni Acked-by: Alexandre Belloni Signed-off-by: David S. Miller commit 7dc2bccab0ee37ac28096b8fcdc390a679a15841 Author: Maxim Mikityanskiy Date: Tue May 21 06:40:04 2019 +0000 Validate required parameters in inet6_validate_link_af inet6_set_link_af requires that at least one of IFLA_INET6_TOKEN or IFLA_INET6_ADDR_GET_MODE is passed. If none of them is passed, it returns -EINVAL, which may cause do_setlink() to fail in the middle of processing other commands and give the following warning message: A link change request failed with some changes committed already. Interface eth0 may have been left with an inconsistent configuration, please check. Check the presence of at least one of them in inet6_validate_link_af to detect invalid parameters at an early stage, before do_setlink does anything. Also validate the address generation mode at an early stage. Signed-off-by: Maxim Mikityanskiy Signed-off-by: David S. Miller commit f3617b449d0bcf3b5d80a97f51498dcf7463cf7e Author: Ezequiel Garcia Date: Fri May 17 12:00:42 2019 -0300 drm/panfrost: Select devfreq Currently, there is some logic for the driver to work without devfreq. However, the driver actually fails to probe if !CONFIG_PM_DEVFREQ. Fix this by selecting devfreq, and drop the additional checks for devfreq. Signed-off-by: Ezequiel Garcia Signed-off-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/20190517150042.776-1-ezequiel@collabora.com commit c1a145a3ed9a40f3b6145feb97789e8eb49c5566 Author: Fabio Estevam Date: Wed May 22 10:35:29 2019 -0300 xhci: Use %zu for printing size_t type Commit 597c56e372da ("xhci: update bounce buffer with correct sg num") caused the following build warnings: drivers/usb/host/xhci-ring.c:676:19: warning: format '%ld' expects argument of type 'long int', but argument 3 has type 'size_t {aka unsigned int}' [-Wformat=] Use %zu for printing size_t type in order to fix the warnings. Fixes: 597c56e372da ("xhci: update bounce buffer with correct sg num") Reported-by: kbuild test robot Signed-off-by: Fabio Estevam Cc: stable Acked-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman commit cb9e0e5006064a807b5d722c7e3c42f307193792 Author: Keith Busch Date: Tue May 21 10:56:43 2019 -0600 nvme-pci: use blk-mq mapping for unmanaged irqs If a device is providing a single IRQ vector, the IO queue will share that vector with the admin queue. This is an unmanaged vector, so does not have a valid PCI IRQ affinity. Avoid trying to extract a managed affinity in this case and let blk-mq set up the cpu:queue mapping instead. Otherwise we'd hit the following warning when the device is using MSI: WARNING: CPU: 4 PID: 7 at drivers/pci/msi.c:1272 pci_irq_get_affinity+0x66/0x80 Modules linked in: nvme nvme_core serio_raw CPU: 4 PID: 7 Comm: kworker/u16:0 Tainted: G W 5.2.0-rc1+ #494 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.1-0-ga5cab58e9a3f-prebuilt.qemu.org 04/01/2014 Workqueue: nvme-reset-wq nvme_reset_work [nvme] RIP: 0010:pci_irq_get_affinity+0x66/0x80 Code: 0b 31 c0 c3 83 e2 10 48 c7 c0 b0 83 35 91 74 2a 48 8b 87 d8 03 00 00 48 85 c0 74 0e 48 8b 50 30 48 85 d2 74 05 39 70 14 77 05 <0f> 0b 31 c0 c3 48 63 f6 48 8d 04 76 48 8d 04 c2 f3 c3 48 8b 40 30 RSP: 0000:ffffb5abc01d3cc8 EFLAGS: 00010246 RAX: ffff9536786a39c0 RBX: 0000000000000000 RCX: 0000000000000080 RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff9536781ed000 RBP: ffff95367346a008 R08: ffff95367d43f080 R09: ffff953678c07800 R10: ffff953678164800 R11: 0000000000000000 R12: 0000000000000000 R13: ffff9536781ed000 R14: 00000000ffffffff R15: ffff95367346a008 FS: 0000000000000000(0000) GS:ffff95367d400000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fdf814a3ff0 CR3: 000000001a20f000 CR4: 00000000000006e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: blk_mq_pci_map_queues+0x37/0xd0 nvme_pci_map_queues+0x80/0xb0 [nvme] blk_mq_alloc_tag_set+0x133/0x2f0 nvme_reset_work+0x105d/0x1590 [nvme] process_one_work+0x291/0x530 worker_thread+0x218/0x3d0 ? process_one_work+0x530/0x530 kthread+0x111/0x130 ? kthread_park+0x90/0x90 ret_from_fork+0x1f/0x30 ---[ end trace 74587339d93c83c0 ]--- Fixes: 22b5560195bd6 ("nvme-pci: Separate IO and admin queue IRQ vectors") Reported-by: Iván Chavero Reviewed-by: Ming Lei Signed-off-by: Keith Busch commit 54dee406374ce8adb352c48e175176247cb8db7c Merge: 651bae980e3f 7a0a93c51799 Author: Linus Torvalds Date: Wed May 22 08:36:16 2019 -0700 Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 fixes from Will Deacon: - Fix SPE probe failure when backing auxbuf with high-order pages - Fix handling of DMA allocations from outside of the vmalloc area - Fix generation of build-id ELF section for vDSO object - Disable huge I/O mappings if kernel page table dumping is enabled - A few other minor fixes (comments, kconfig etc) * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: arm64: vdso: Explicitly add build-id option arm64/mm: Inhibit huge-vmap with ptdump arm64: Print physical address of page table base in show_pte() arm64: don't trash config with compat symbol if COMPAT is disabled arm64: assembler: Update comment above cond_yield_neon() macro drivers/perf: arm_spe: Don't error on high-order pages for aux buf arm64/iommu: handle non-remapped addresses in ->mmap and ->get_sgtable commit 651bae980e3f3e6acf0d297ced08f9d7af71a8c9 Merge: f75b6f303bd8 5a5ec83d6ac9 Author: Linus Torvalds Date: Wed May 22 08:31:09 2019 -0700 Merge tag 'gfs2-5.1.fixes2' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 Pull gfs2 fix from Andreas Gruenbacher: "Fix a gfs2 sign extension bug introduced in v4.3" * tag 'gfs2-5.1.fixes2' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2: gfs2: Fix sign extension bug in gfs2_update_stats commit f75b6f303bd80249a56cce9028954b4f731270e3 Merge: 86f9e56d0885 ad70411a978d Author: Linus Torvalds Date: Wed May 22 08:28:16 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: 1) Clear up some recent tipc regressions because of registration ordering. Fix from Junwei Hu. 2) tipc's TLV_SET() can read past the end of the supplied buffer during the copy. From Chris Packham. 3) ptp example program doesn't match the kernel, from Richard Cochran. 4) Outgoing message type fix in qrtr, from Bjorn Andersson. 5) Flow control regression in stmmac, from Tan Tee Min. 6) Fix inband autonegotiation in phylink, from Russell King. 7) Fix sk_bound_dev_if handling in rawv6_bind(), from Mike Manning. 8) Fix usbnet crash after disconnect, from Kloetzke Jan. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (21 commits) usbnet: fix kernel crash after disconnect selftests: fib_rule_tests: use pre-defined DEV_ADDR net-next: net: Fix typos in ip-sysctl.txt ipv6: Consider sk_bound_dev_if when binding a raw socket to an address net: phylink: ensure inband AN works correctly usbnet: ipheth: fix racing condition net: stmmac: dma channel control register need to be init first net: stmmac: fix ethtool flow control not able to get/set net: qrtr: Fix message type of outgoing packets networking: : fix typos in code comments ptp: Fix example program to match kernel. fddi: fix typos in code comments selftests: fib_rule_tests: enable forwarding before ipv4 from/iif test selftests: fib_rule_tests: fix local IPv4 address typo tipc: Avoid copying bytes beyond the supplied data 2/2] net: xilinx_emaclite: use readx_poll_timeout() in mdio wait function 1/2] net: axienet: use readx_poll_timeout() in mdio wait function vlan: Mark expected switch fall-through macvlan: Mark expected switch fall-through net/mlx4_en: ethtool, Remove unsupported SFP EEPROM high pages query ... commit 86f9e56d08852961a1b9e062d59b71491d8c793a Merge: 9c7db5004280 51b86f9a8d1c Author: Linus Torvalds Date: Wed May 22 08:10:35 2019 -0700 Merge tag 'for-5.2/dm-fix-1' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm Pull device mapper fix from Mike Snitzer: "Fix a particularly glaring oversight in a DM core commit from 5.1 that doesn't properly trim special IOs (e.g. discards) relative to corresponding target's max_io_len_target_boundary()" * tag 'for-5.2/dm-fix-1' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: dm: make sure to obey max_io_len_target_boundary commit 0a944e8a6c66ca04c7afbaa17e22bf208a8b37f0 Author: Theodore Ts'o Date: Wed May 22 10:27:01 2019 -0400 ext4: don't perform block validity checks on the journal inode Since the journal inode is already checked when we added it to the block validity's system zone, if we check it again, we'll just trigger a failure. This was causing failures like this: [ 53.897001] EXT4-fs error (device sda): ext4_find_extent:909: inode #8: comm jbd2/sda-8: pblk 121667583 bad header/extent: invalid extent entries - magic f30a, entries 8, max 340(340), depth 0(0) [ 53.931430] jbd2_journal_bmap: journal block not found at offset 49 on sda-8 [ 53.938480] Aborting journal on device sda-8. ... but only if the system was under enough memory pressure that logical->physical mapping for the journal inode gets pushed out of the extent cache. (This is why it wasn't noticed earlier.) Fixes: 345c0dbf3a30 ("ext4: protect journal inode's blocks using block_validity") Reported-by: Dan Rue Signed-off-by: Theodore Ts'o Tested-by: Naresh Kamboju commit a5f2246fb9137dfa714dc9d7f593b3f3db5c9b80 Author: Kamal Dasu Date: Tue May 21 15:27:57 2019 -0400 dt: bindings: mtd: replace references to nand.txt with nand-controller.yaml nand-controller.yaml replaced nand.txt however the references to it were not updated. This change updates these references wherever it appears in bindings documentation. Fixes: 212e49693592 ("dt-bindings: mtd: Add YAML schemas for the generic NAND options") Signed-off-by: Kamal Dasu Signed-off-by: Rob Herring commit 8d665693c28c88d38e4b7e015d3135c1875c89f6 Author: Rob Herring Date: Tue May 21 13:09:26 2019 -0500 dt-bindings: interrupt-controller: arm,gic: Fix schema errors in example Validating the examples against the schema have a few errors: arm,gic.example.dt.yaml: 'ranges' does not match any of the regexes: '^v2m@[0-9a-f]+$', 'pinctrl-[0-9]+' arm,gic.example.dt.yaml: #address-cells:0:0: 2 is not one of [0, 1] arm,gic.example.dt.yaml: #size-cells:0:0: 1 was expected 'ranges' is valid, but missing from the schema, so add it. The reg addresses and sizes don't match the schema requirements and the example template. We could just override the example template to use 64-bit addresses, but there's not really any value showing that in the example. Cc: Thomas Gleixner Cc: Jason Cooper Cc: Marc Zyngier Signed-off-by: Rob Herring commit 31910f4476ce8b231164e7c0c17a87a8654bb5f2 Author: Robin Murphy Date: Tue May 21 17:44:27 2019 +0100 dt-bindings: arm: Clean up CPU binding examples Following commit 31af04cd60d3 ("arm64: dts: Remove inconsistent use of 'arm,armv8' compatible string"), clean up these binding examples in case anyone is tempted to copy them. CC: Linus Walleij Signed-off-by: Robin Murphy Signed-off-by: Rob Herring commit dfab99544c55378c1692c585e5e4df88dc7944c3 Author: Mauro Carvalho Chehab Date: Mon May 20 11:47:37 2019 -0300 dt: fix refs that were renamed to json with the same file name These files were converted to json-schema, but the references weren't renamed. Fixes: 66ed144f147a ("dt-bindings: interrupt-controller: Convert ARM GIC to json-schema") (and other similar commits) Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Rob Herring commit 05aeca7cb0a2f53a307c329ba758f1e88972a360 Author: Rob Herring Date: Thu May 9 08:53:44 2019 -0500 dt-bindings: Pass binding directory to validation tools In order to have $ref's to schema files within the kernel, we need to pass the base path of bindings to the schema validation tools. Cc: Masahiro Yamada Cc: Michal Marek Cc: devicetree@vger.kernel.org Cc: linux-kbuild@vger.kernel.org Signed-off-by: Rob Herring commit f08ff9c525b1d87668409d018cc236b1e4e41bb5 Author: Paul Walmsley Date: Mon May 13 14:51:53 2019 -0700 dt-bindings: sifive: describe sifive-blocks versioning For IP blocks that are generated from the public, open-source sifive-blocks repository, describe the version numbering policy that its maintainers intend to use, upon request from Rob Herring . Signed-off-by: Paul Walmsley Signed-off-by: Paul Walmsley Reviewed-by: Palmer Dabbelt Cc: Rob Herring Cc: Palmer Dabbelt Cc: Megan Wachs Cc: Wesley Terpstra Cc: Mark Rutland Cc: devicetree@vger.kernel.org Cc: linux-riscv@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Rob Herring commit f7fac17ca925faa03fc5eb854c081a24075f8bad Author: Andrey Smirnov Date: Wed May 22 14:34:01 2019 +0300 xhci: Convert xhci_handshake() to use readl_poll_timeout_atomic() Xhci_handshake() implements the algorithm already captured by readl_poll_timeout_atomic(). Convert the former to use the latter to avoid repetition. Turned out this patch also fixes a bug on the AMD Stoneyridge platform where usleep(1) sometimes takes over 10ms. This means a 5 second timeout can easily take over 15 seconds which will trigger the watchdog and reboot the system. [Add info about patch fixing a bug to commit message -Mathias] Signed-off-by: Andrey Smirnov Tested-by: Raul E Rangel Reviewed-by: Raul E Rangel Cc: Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman commit 13b82b746310b51b064bc855993a1c84bf862726 Author: Mathias Nyman Date: Wed May 22 14:34:00 2019 +0300 xhci: Fix immediate data transfer if buffer is already DMA mapped xhci immediate data transfer (IDT) support in 5.2-rc1 caused regression on various Samsung Exynos boards with ASIX USB 2.0 ethernet dongle. If the transfer buffer in the URB is already DMA mapped then IDT should not be used. urb->transfer_dma will already contain a valid dma address, and there is no guarantee the data in urb->transfer_buffer is valid. The IDT support patch used urb->transfer_dma as a temporary storage, copying data from urb->transfer_buffer into it. Issue was solved by preventing IDT if transfer buffer is already dma mapped, and by not using urb->transfer_dma as temporary storage. Fixes: 33e39350ebd2 ("usb: xhci: add Immediate Data Transfer support") Reported-by: Marek Szyprowski Tested-by: Marek Szyprowski CC: Nicolas Saenz Julienne Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman commit 7aa1bb2ffd84d6b9b5f546b079bb15cd0ab6e76e Author: Carsten Schmid Date: Wed May 22 14:33:59 2019 +0300 usb: xhci: avoid null pointer deref when bos field is NULL With defective USB sticks we see the following error happen: usb 1-3: new high-speed USB device number 6 using xhci_hcd usb 1-3: device descriptor read/64, error -71 usb 1-3: device descriptor read/64, error -71 usb 1-3: new high-speed USB device number 7 using xhci_hcd usb 1-3: device descriptor read/64, error -71 usb 1-3: unable to get BOS descriptor set usb 1-3: New USB device found, idVendor=0781, idProduct=5581 usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3 ... BUG: unable to handle kernel NULL pointer dereference at 0000000000000008 This comes from the following place: [ 1660.215380] IP: xhci_set_usb2_hardware_lpm+0xdf/0x3d0 [xhci_hcd] [ 1660.222092] PGD 0 P4D 0 [ 1660.224918] Oops: 0000 [#1] PREEMPT SMP NOPTI [ 1660.425520] CPU: 1 PID: 38 Comm: kworker/1:1 Tainted: P U W O 4.14.67-apl #1 [ 1660.434277] Workqueue: usb_hub_wq hub_event [usbcore] [ 1660.439918] task: ffffa295b6ae4c80 task.stack: ffffad4580150000 [ 1660.446532] RIP: 0010:xhci_set_usb2_hardware_lpm+0xdf/0x3d0 [xhci_hcd] [ 1660.453821] RSP: 0018:ffffad4580153c70 EFLAGS: 00010046 [ 1660.459655] RAX: 0000000000000000 RBX: ffffa295b4d7c000 RCX: 0000000000000002 [ 1660.467625] RDX: 0000000000000002 RSI: ffffffff984a55b2 RDI: ffffffff984a55b2 [ 1660.475586] RBP: ffffad4580153cc8 R08: 0000000000d6520a R09: 0000000000000001 [ 1660.483556] R10: ffffad4580a004a0 R11: 0000000000000286 R12: ffffa295b4d7c000 [ 1660.491525] R13: 0000000000010648 R14: ffffa295a84e1800 R15: 0000000000000000 [ 1660.499494] FS: 0000000000000000(0000) GS:ffffa295bfc80000(0000) knlGS:0000000000000000 [ 1660.508530] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 1660.514947] CR2: 0000000000000008 CR3: 000000025a114000 CR4: 00000000003406a0 [ 1660.522917] Call Trace: [ 1660.525657] usb_set_usb2_hardware_lpm+0x3d/0x70 [usbcore] [ 1660.531792] usb_disable_device+0x242/0x260 [usbcore] [ 1660.537439] usb_disconnect+0xc1/0x2b0 [usbcore] [ 1660.542600] hub_event+0x596/0x18f0 [usbcore] [ 1660.547467] ? trace_preempt_on+0xdf/0x100 [ 1660.552040] ? process_one_work+0x1c1/0x410 [ 1660.556708] process_one_work+0x1d2/0x410 [ 1660.561184] ? preempt_count_add.part.3+0x21/0x60 [ 1660.566436] worker_thread+0x2d/0x3f0 [ 1660.570522] kthread+0x122/0x140 [ 1660.574123] ? process_one_work+0x410/0x410 [ 1660.578792] ? kthread_create_on_node+0x60/0x60 [ 1660.583849] ret_from_fork+0x3a/0x50 [ 1660.587839] Code: 00 49 89 c3 49 8b 84 24 50 16 00 00 8d 4a ff 48 8d 04 c8 48 89 ca 4c 8b 10 45 8b 6a 04 48 8b 00 48 89 45 c0 49 8b 86 80 03 00 00 <48> 8b 40 08 8b 40 03 0f 1f 44 00 00 45 85 ff 0f 84 81 01 00 00 [ 1660.608980] RIP: xhci_set_usb2_hardware_lpm+0xdf/0x3d0 [xhci_hcd] RSP: ffffad4580153c70 [ 1660.617921] CR2: 0000000000000008 Tracking this down shows that udev->bos is NULL in the following code: (xhci.c, in xhci_set_usb2_hardware_lpm) field = le32_to_cpu(udev->bos->ext_cap->bmAttributes); <<<<<<< here xhci_dbg(xhci, "%s port %d USB2 hardware LPM\n", enable ? "enable" : "disable", port_num + 1); if (enable) { /* Host supports BESL timeout instead of HIRD */ if (udev->usb2_hw_lpm_besl_capable) { /* if device doesn't have a preferred BESL value use a * default one which works with mixed HIRD and BESL * systems. See XHCI_DEFAULT_BESL definition in xhci.h */ if ((field & USB_BESL_SUPPORT) && (field & USB_BESL_BASELINE_VALID)) hird = USB_GET_BESL_BASELINE(field); else hird = udev->l1_params.besl; The failing case is when disabling LPM. So it is sufficient to avoid access to udev->bos by moving the instruction into the "enable" clause. Cc: Stable Signed-off-by: Carsten Schmid Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman commit 5bce256f0b528624a34fe907db385133bb7be33e Author: Jia-Ju Bai Date: Wed May 22 14:33:58 2019 +0300 usb: xhci: Fix a potential null pointer dereference in xhci_debugfs_create_endpoint() In xhci_debugfs_create_slot(), kzalloc() can fail and dev->debugfs_private will be NULL. In xhci_debugfs_create_endpoint(), dev->debugfs_private is used without any null-pointer check, and can cause a null pointer dereference. To fix this bug, a null-pointer check is added in xhci_debugfs_create_endpoint(). This bug is found by a runtime fuzzing tool named FIZZER written by us. [subjet line change change, add potential -Mathais] Signed-off-by: Jia-Ju Bai Reviewed-by: Greg Kroah-Hartman Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman commit 597c56e372dab2c7f79b8d700aad3a5deebf9d1b Author: Henry Lin Date: Wed May 22 14:33:57 2019 +0300 xhci: update bounce buffer with correct sg num This change fixes a data corruption issue occurred on USB hard disk for the case that bounce buffer is used during transferring data. While updating data between sg list and bounce buffer, current implementation passes mapped sg number (urb->num_mapped_sgs) to sg_pcopy_from_buffer() and sg_pcopy_to_buffer(). This causes data not get copied if target buffer is located in the elements after mapped sg elements. This change passes sg number for full list to fix issue. Besides, for copying data from bounce buffer, calling dma_unmap_single() on the bounce buffer before copying data to sg list can avoid cache issue. Fixes: f9c589e142d0 ("xhci: TD-fragment, align the unsplittable case with a bounce buffer") Cc: # v4.8+ Signed-off-by: Henry Lin Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman commit 45457c01171fd1488a7000d1751c06ed8560ee38 Author: Alan Stern Date: Tue May 21 11:38:07 2019 -0400 media: usb: siano: Fix false-positive "uninitialized variable" warning GCC complains about an apparently uninitialized variable recently added to smsusb_init_device(). It's a false positive, but to silence the warning this patch adds a trivial initialization. Signed-off-by: Alan Stern Reported-by: kbuild test robot CC: Signed-off-by: Greg Kroah-Hartman commit 44a042182cb1e9f7916e015c836967bf638b33c4 Author: Christophe Leroy Date: Wed May 22 11:00:36 2019 +0000 spi: spi-fsl-spi: call spi_finalize_current_message() at the end spi_finalize_current_message() shall be called once all actions are finished, otherwise the last actions might step over a newly started transfer. Fixes: c592becbe704 ("spi: fsl-(e)spi: migrate to generic master queueing") Signed-off-by: Christophe Leroy Signed-off-by: Mark Brown commit 5a5ec83d6ac974b12085cd99b196795f14079037 Author: Andreas Gruenbacher Date: Fri May 17 19:18:43 2019 +0100 gfs2: Fix sign extension bug in gfs2_update_stats Commit 4d207133e9c3 changed the types of the statistic values in struct gfs2_lkstats from s64 to u64. Because of that, what should be a signed value in gfs2_update_stats turned into an unsigned value. When shifted right, we end up with a large positive value instead of a small negative value, which results in an incorrect variance estimate. Fixes: 4d207133e9c3 ("gfs2: Make statistics unsigned, suitable for use with do_div()") Signed-off-by: Andreas Gruenbacher Cc: stable@vger.kernel.org # v4.4+ commit aeac1a0dadb4ab699a61136a5729d048abe6ee5f Author: Kailang Yang Date: Thu May 16 16:10:44 2019 +0800 ALSA: hda/realtek - Check headset type by unplug and resume When system enable HDA power save mode. This issue will happen on new platform which DMIC connect to PCH. In Dell headset mode, it will recheck during runtime resume when headset was plugged. This patch will move check headset type on unplug and system resume. [ A few minor code cleanups by tiwai ] Signed-off-by: Kailang Yang Signed-off-by: Takashi Iwai commit 3202e35ec1c8fc19cea24253ff83edf702a60a02 Author: Ravi Bangoria Date: Sat May 11 08:12:17 2019 +0530 powerpc/perf: Fix MMCRA corruption by bhrb_filter Consider a scenario where user creates two events: 1st event: attr.sample_type |= PERF_SAMPLE_BRANCH_STACK; attr.branch_sample_type = PERF_SAMPLE_BRANCH_ANY; fd = perf_event_open(attr, 0, 1, -1, 0); This sets cpuhw->bhrb_filter to 0 and returns valid fd. 2nd event: attr.sample_type |= PERF_SAMPLE_BRANCH_STACK; attr.branch_sample_type = PERF_SAMPLE_BRANCH_CALL; fd = perf_event_open(attr, 0, 1, -1, 0); It overrides cpuhw->bhrb_filter to -1 and returns with error. Now if power_pmu_enable() gets called by any path other than power_pmu_add(), ppmu->config_bhrb(-1) will set MMCRA to -1. Fixes: 3925f46bb590 ("powerpc/perf: Enable branch stack sampling framework") Cc: stable@vger.kernel.org # v3.10+ Signed-off-by: Ravi Bangoria Reviewed-by: Madhavan Srinivasan Signed-off-by: Michael Ellerman commit b59bd3527fe3c1939340df558d7f9d568fc9f882 Author: Anju T Sudhakar Date: Mon May 20 14:27:53 2019 +0530 powerpc/powernv: Return for invalid IMC domain Currently init_imc_pmu() can fail either because we try to register an IMC unit with an invalid domain (i.e an IMC node not supported by the kernel) or something went wrong while registering a valid IMC unit. In both the cases kernel provides a 'Register failed' error message. For example when trace-imc node is not supported by the kernel, but skiboot advertises a trace-imc node we print: IMC Unknown Device type IMC PMU (null) Register failed To avoid confusion just print the unknown device type message, before attempting PMU registration, so the second message isn't printed. Fixes: 8f95faaac56c ("powerpc/powernv: Detect and create IMC device") Reported-by: Pavaman Subramaniyam Signed-off-by: Anju T Sudhakar Reviewed-by: Madhavan Srinivasan [mpe: Reword change log a bit] Signed-off-by: Michael Ellerman commit 2409877d386de709606ca7eecf7c10d2838525a1 Author: Hans de Goede Date: Sun May 12 12:36:02 2019 +0200 HID: logitech-hidpp: Add support for the S510 remote control The S510 remote-control shows up as a second keyboard (keypad) on the receiver. It has a scroll-wheel, which normally sends wheel event originating from the mouse's evdev node. Add a HIDPP_QUIRK_KBD_SCROLL_WHEEL quirk for it, so that the wheel events properly originate from the evdev node of the remote control itself. Signed-off-by: Hans de Goede Signed-off-by: Jiri Kosina commit 81bcbad53bab4bf9f200eda303d7a05cdb9bd73b Author: Benjamin Tissoires Date: Tue May 21 15:38:31 2019 +0200 HID: multitouch: handle faulty Elo touch device Since kernel v5.0, one single win8 touchscreen device failed. And it turns out this is because it reports 2 InRange usage per touch. It's a first, and I *really* wonder how this was allowed by Microsoft in the first place. But IIRC, Breno told me this happened *after* a firmware upgrade... Anyway, better be safe for those crappy devices, and make sure we have a full slot before jumping to the next. This won't prevent all crappy devices to fail here, but at least we will have a safeguard as long as the contact ID and the X and Y coordinates are placed in the report after the grabage. Fixes: 01eaac7e5713 ("HID: multitouch: remove one copy of values") CC: stable@vger.kernel.org # v5.0+ Reported-and-tested-by: Breno Leitao Signed-off-by: Benjamin Tissoires Signed-off-by: Jiri Kosina commit 2de03b45236f3af1800755614fd434d347adf046 Author: Florian Westphal Date: Tue May 21 13:24:34 2019 +0200 selftests: netfilter: add flowtable test script Exercises 3 cases: 1. no pmtu discovery (need to frag) 2. no PMTUd + NAT (don't flag packets as invalid from conntrack) 3. PMTU + NAT (need to send icmp error) The first two cases make sure we handle fragments correctly, i.e. pass them to classic forwarding path. Third case checks we offload everything (in the test case, PMTUd will kick in so all packets should be within link mtu). Nftables rules will filter packets that are supposed to be handled by the fast-path. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit 69aeb538587e087bfc81dd1f465eab3558ff3158 Author: Florian Westphal Date: Tue May 21 13:24:33 2019 +0200 netfilter: nft_flow_offload: IPCB is only valid for ipv4 family Guard this with a check vs. ipv4, IPCB isn't valid in ipv6 case. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit 91a9048f238063dde7feea752b9dd386f7e3808b Author: Florian Westphal Date: Tue May 21 13:24:32 2019 +0200 netfilter: nft_flow_offload: don't offload when sequence numbers need adjustment We can't deal with tcp sequence number rewrite in flow_offload. While at it, simplify helper check, we only need to know if the extension is present, we don't need the helper data. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit 8437a6209f76f85a2db1abb12a9bde2170801617 Author: Florian Westphal Date: Tue May 21 13:24:31 2019 +0200 netfilter: nft_flow_offload: set liberal tracking mode for tcp Without it, whenever a packet has to be pushed up the stack (e.g. because of mtu mismatch), then conntrack will flag packets as invalid, which in turn breaks NAT. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit e75b3e1c9bc5b997d09bdf8eb72ab3dd3c1a7072 Author: Florian Westphal Date: Tue May 21 13:24:30 2019 +0200 netfilter: nf_flow_table: ignore DF bit setting Its irrelevant if the DF bit is set or not, we must pass packet to stack in either case. If the DF bit is set, we must pass it to stack so the appropriate ICMP error can be generated. If the DF is not set, we must pass it to stack for fragmentation. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit 51b86f9a8d1c4bb4e3862ee4b4c5f46072f7520d Author: Michael Lass Date: Tue May 21 21:58:07 2019 +0200 dm: make sure to obey max_io_len_target_boundary Commit 61697a6abd24 ("dm: eliminate 'split_discard_bios' flag from DM target interface") incorrectly removed code from __send_changing_extent_only() that is required to impose a per-target IO boundary on IO that exceeds max_io_len_target_boundary(). Otherwise "special" IO (e.g. DISCARD, WRITE SAME, WRITE ZEROES) can write beyond where allowed. Fix this by restoring the max_io_len_target_boundary() limit in __send_changing_extent_only() Fixes: 61697a6abd24 ("dm: eliminate 'split_discard_bios' flag from DM target interface") Cc: stable@vger.kernel.org # 5.1+ Signed-off-by: Michael Lass Signed-off-by: Mike Snitzer commit ad70411a978d1e6e97b1e341a7bde9a79af0c93d Author: Kloetzke Jan Date: Tue May 21 13:18:40 2019 +0000 usbnet: fix kernel crash after disconnect When disconnecting cdc_ncm the kernel sporadically crashes shortly after the disconnect: [ 57.868812] Unable to handle kernel NULL pointer dereference at virtual address 00000000 ... [ 58.006653] PC is at 0x0 [ 58.009202] LR is at call_timer_fn+0xec/0x1b4 [ 58.013567] pc : [<0000000000000000>] lr : [] pstate: 00000145 [ 58.020976] sp : ffffff8008003da0 [ 58.024295] x29: ffffff8008003da0 x28: 0000000000000001 [ 58.029618] x27: 000000000000000a x26: 0000000000000100 [ 58.034941] x25: 0000000000000000 x24: ffffff8008003e68 [ 58.040263] x23: 0000000000000000 x22: 0000000000000000 [ 58.045587] x21: 0000000000000000 x20: ffffffc68fac1808 [ 58.050910] x19: 0000000000000100 x18: 0000000000000000 [ 58.056232] x17: 0000007f885aff8c x16: 0000007f883a9f10 [ 58.061556] x15: 0000000000000001 x14: 000000000000006e [ 58.066878] x13: 0000000000000000 x12: 00000000000000ba [ 58.072201] x11: ffffffc69ff1db30 x10: 0000000000000020 [ 58.077524] x9 : 8000100008001000 x8 : 0000000000000001 [ 58.082847] x7 : 0000000000000800 x6 : ffffff8008003e70 [ 58.088169] x5 : ffffffc69ff17a28 x4 : 00000000ffff138b [ 58.093492] x3 : 0000000000000000 x2 : 0000000000000000 [ 58.098814] x1 : 0000000000000000 x0 : 0000000000000000 ... [ 58.205800] [< (null)>] (null) [ 58.210521] [] expire_timers+0xa0/0x14c [ 58.215937] [] run_timer_softirq+0xe8/0x128 [ 58.221702] [] __do_softirq+0x298/0x348 [ 58.227118] [] irq_exit+0x74/0xbc [ 58.232009] [] __handle_domain_irq+0x78/0xac [ 58.237857] [] gic_handle_irq+0x80/0xac ... The crash happens roughly 125..130ms after the disconnect. This correlates with the 'delay' timer that is started on certain USB tx/rx errors in the URB completion handler. The problem is a race of usbnet_stop() with usbnet_start_xmit(). In usbnet_stop() we call usbnet_terminate_urbs() to cancel all URBs in flight. This only makes sense if no new URBs are submitted concurrently, though. But the usbnet_start_xmit() can run at the same time on another CPU which almost unconditionally submits an URB. The error callback of the new URB will then schedule the timer after it was already stopped. The fix adds a check if the tx queue is stopped after the tx list lock has been taken. This should reliably prevent the submission of new URBs while usbnet_terminate_urbs() does its job. The same thing is done on the rx side even though it might be safe due to other flags that are checked there. Signed-off-by: Jan Klötzke Signed-off-by: David S. Miller commit 34632975cafdd07ce80e85c2eda4e9c16b5f2faa Author: Hangbin Liu Date: Tue May 21 14:40:47 2019 +0800 selftests: fib_rule_tests: use pre-defined DEV_ADDR DEV_ADDR is defined but not used. Use it in address setting. Do the same with IPv6 for consistency. Reported-by: David Ahern Fixes: fc82d93e57e3 ("selftests: fib_rule_tests: fix local IPv4 address typo") Signed-off-by: Hangbin Liu Signed-off-by: David S. Miller commit 2bcd9d842b500a2f0c9338e75fdd23ece24ac687 Author: Masanari Iida Date: Tue May 21 12:41:15 2019 +0900 net-next: net: Fix typos in ip-sysctl.txt This patch fixes some spelling typos found in ip-sysctl.txt Signed-off-by: Masanari Iida Signed-off-by: David S. Miller commit 72f7cfab6f93a8ea825fab8ccfb016d064269f7f Author: Mike Manning Date: Mon May 20 19:57:17 2019 +0100 ipv6: Consider sk_bound_dev_if when binding a raw socket to an address IPv6 does not consider if the socket is bound to a device when binding to an address. The result is that a socket can be bound to eth0 and then bound to the address of eth1. If the device is a VRF, the result is that a socket can only be bound to an address in the default VRF. Resolve by considering the device if sk_bound_dev_if is set. Signed-off-by: Mike Manning Reviewed-by: David Ahern Tested-by: David Ahern Signed-off-by: David S. Miller commit 406cb0c4d16ac5b80c2c802b09fe71f1b1ff8eec Author: Russell King Date: Mon May 20 16:07:20 2019 +0100 net: phylink: ensure inband AN works correctly Do not update the link interface mode while the link is down to avoid spurious link interface changes. Always call mac_config if we have a PHY to propagate the pause mode settings to the MAC. Signed-off-by: Russell King Signed-off-by: David S. Miller commit 94d250fae48e6f873d8362308f5c4d02cd1b1fd2 Author: Bernd Eckstein <3erndeckstein@gmail.com> Date: Mon May 20 17:31:09 2019 +0200 usbnet: ipheth: fix racing condition Fix a racing condition in ipheth.c that can lead to slow performance. Bug: In ipheth_tx(), netif_wake_queue() may be called on the callback ipheth_sndbulk_callback(), _before_ netif_stop_queue() is called. When this happens, the queue is stopped longer than it needs to be, thus reducing network performance. Fix: Move netif_stop_queue() in front of usb_submit_urb(). Now the order is always correct. In case, usb_submit_urb() fails, the queue is woken up again as callback will not fire. Testing: This racing condition is usually not noticeable, as it has to occur very frequently to slowdown the network. The callback from the USB is usually triggered slow enough, so the situation does not appear. However, on a Ubuntu Linux on VMWare Workstation, running on Windows 10, the we loose the race quite often and the following speedup can be noticed: Without this patch: Download: 4.10 Mbit/s, Upload: 4.01 Mbit/s With this patch: Download: 36.23 Mbit/s, Upload: 17.61 Mbit/s Signed-off-by: Oliver Zweigle Signed-off-by: Bernd Eckstein <3ernd.Eckstein@gmail.com> Signed-off-by: David S. Miller commit 9c7db5004280767566e91a33445bf93aa479ef02 Merge: 2c1212de6f97 05174c95b83f Author: Linus Torvalds Date: Tue May 21 12:51:20 2019 -0700 Merge tag 'selinux-pr-20190521' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux Pull SELinux fix from Paul Moore: "One small SELinux patch to fix a problem when disconnecting a SCTP socket with connect(AF_UNSPEC)" * tag 'selinux-pr-20190521' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux: selinux: do not report error on connect(AF_UNSPEC) commit 2c1212de6f9794a7becba5f219fa6ce8a8222c90 Merge: d53e860fd46f 7170066ecd28 Author: Linus Torvalds Date: Tue May 21 12:33:38 2019 -0700 Merge tag 'spdx-5.2-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core Pull SPDX update from Greg KH: "Here is a series of patches that add SPDX tags to different kernel files, based on two different things: - SPDX entries are added to a bunch of files that we missed a year ago that do not have any license information at all. These were either missed because the tool saw the MODULE_LICENSE() tag, or some EXPORT_SYMBOL tags, and got confused and thought the file had a real license, or the files have been added since the last big sweep, or they were Makefile/Kconfig files, which we didn't touch last time. - Add GPL-2.0-only or GPL-2.0-or-later tags to files where our scan tools can determine the license text in the file itself. Where this happens, the license text is removed, in order to cut down on the 700+ different ways we have in the kernel today, in a quest to get rid of all of these. These patches have been out for review on the linux-spdx@vger mailing list, and while they were created by automatic tools, they were hand-verified by a bunch of different people, all whom names are on the patches are reviewers. The reason for these "large" patches is if we were to continue to progress at the current rate of change in the kernel, adding license tags to individual files in different subsystems, we would be finished in about 10 years at the earliest. There will be more series of these types of patches coming over the next few weeks as the tools and reviewers crunch through the more "odd" variants of how to say "GPLv2" that developers have come up with over the years, combined with other fun oddities (GPL + a BSD disclaimer?) that are being unearthed, with the goal for the whole kernel to be cleaned up. These diffstats are not small, 3840 files are touched, over 10k lines removed in just 24 patches" * tag 'spdx-5.2-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (24 commits) treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 25 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 23 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 22 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 21 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 20 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 19 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 17 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 15 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 14 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 12 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 11 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 10 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 9 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 7 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 5 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 4 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 3 ... commit d53e860fd46f3d95c437bb67518f7374500de467 Merge: 5bdd9ad875b6 357d065a44cd Author: Linus Torvalds Date: Tue May 21 12:24:24 2019 -0700 Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 Pull crypto fixes from Herbert Xu: - Two long-standing bugs in the powerpc assembly of vmx - Stack overrun caused by HASH_MAX_DESCSIZE being too small - Regression in caam * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: crypto: vmx - ghash: do nosimd fallback manually crypto: vmx - CTR: always increment IV as quadword crypto: hash - fix incorrect HASH_MAX_DESCSIZE crypto: caam - fix typo in i.MX6 devices list for errata commit df9366131a452296d040a7a496d93108f1fc240c Author: Sathya Prakash M R Date: Mon May 20 14:46:42 2019 -0500 ASoC: Intel: sof-rt5682: fix AMP quirk support The use of BIT/GENMASK was incorrect, fix. Signed-off-by: Sathya Prakash M R Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit d5952f34ade5e6034e5eca3617fb77d4395bf492 Author: Sathya Prakash M R Date: Mon May 20 14:46:41 2019 -0500 ASoC: Intel: sof-rt5682: fix for codec button mapping The RT5682 codec button mapping, initially copied from the DA7219 one, needs to be corrected. Signed-off-by: Sathya Prakash M R Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 1cc54078d104f5b4d7e9f8d55362efa5a8daffdb Author: Tony Lindgren Date: Mon May 6 14:08:54 2019 -0700 clk: ti: clkctrl: Fix clkdm_clk handling We need to always call clkdm_clk_enable() and clkdm_clk_disable() even the clkctrl clock(s) enabled for the domain do not have any gate register bits. Otherwise clockdomains may never get enabled except when devices get probed with the legacy "ti,hwmods" devicetree property. Fixes: 88a172526c32 ("clk: ti: add support for clkctrl clocks") Signed-off-by: Tony Lindgren Signed-off-by: Stephen Boyd commit b3fddd5b100e4aee4f7ec58360435024971dea47 Author: Peng Fan Date: Mon May 20 02:03:19 2019 +0000 clk: imx: imx8mm: fix int pll clk gate To Frac pll, the gate shift is 13, however to Int PLL the gate shift is 11. Cc: Fixes: ba5625c3e27 ("clk: imx: Add clock driver support for imx8mm") Signed-off-by: Peng Fan Reviewed-by: Fabio Estevam Reviewed-by: Jacky Bai Signed-off-by: Stephen Boyd commit f7df8c92b4b90a891972fb782b3eaac836efa601 Author: Paul Walmsley Date: Mon May 13 14:30:04 2019 -0700 clk: sifive: restrict Kconfig scope for the FU540 PRCI driver Restrict Kconfig scope for SiFive clock and reset IP block drivers such that they won't appear on most configurations that are unlikely to support them. This is based on a suggestion from Pavel Machek . Ideally this should be dependent on CONFIG_ARCH_SIFIVE, but since that Kconfig directive does not yet exist, add dependencies on RISCV or COMPILE_TEST for now. Signed-off-by: Paul Walmsley Signed-off-by: Paul Walmsley Reported-by: Pavel Machek Cc: Michael Turquette Acked-by: Pavel Machek Signed-off-by: Stephen Boyd commit 619122be3d40c835eb5fad9e326780909926495d Author: Leon Romanovsky Date: Mon May 20 09:43:53 2019 +0300 RDMA/hns: Fix PD memory leak for internal allocation free_pd is allocated internally by the driver hence needs to be freed internally too or it leaks. Fixes: 21a428a019c9 ("RDMA: Handle PD allocations by IB/core") Signed-off-by: Leon Romanovsky Acked-by: Lijun Ou Signed-off-by: Jason Gunthorpe commit 6bac76db1da3cb162c425d58ae421486f8e43955 Author: Florian Westphal Date: Mon May 20 13:48:10 2019 +0200 netfilter: nat: fix udp checksum corruption Due to copy&paste error nf_nat_mangle_udp_packet passes IPPROTO_TCP, resulting in incorrect udp checksum when payload had to be mangled. Fixes: dac3fe72596f9 ("netfilter: nat: remove csum_recalc hook") Reported-by: Marc Haber Tested-by: Marc Haber Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit 82ce6eb1dd13fd12e449b2ee2c2ec051e6f52c43 Author: Jeffrin Jose T Date: Wed May 15 12:14:04 2019 +0530 selftests: netfilter: missing error check when setting up veth interface A test for the basic NAT functionality uses ip command which needs veth device. There is a condition where the kernel support for veth is not compiled into the kernel and the test script breaks. This patch contains code for reasonable error display and correct code exit. Signed-off-by: Jeffrin Jose T Acked-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit dc1435c00fcd102c9803cd6120701ba5547138d5 Author: Leon Romanovsky Date: Fri May 17 15:43:10 2019 +0300 RDMA/srp: Rename SRP sysfs name after IB device rename trigger SRP logic used device name and port index as symlink to relevant kobject. If the IB device is renamed then the prior name will be re-used by the next device plugged in and sysfs will panic as SRP will try to re-use the same name. mlx5_ib: Mellanox Connect-IB Infiniband driver v5.0-0 sysfs: cannot create duplicate filename '/class/infiniband_srp/srp-mlx5_0-1' CPU: 3 PID: 1107 Comm: modprobe Not tainted 5.1.0-for-upstream-perf-2019-05-12_15-09-52-87 #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014 Call Trace: dump_stack+0x5a/0x73 sysfs_warn_dup+0x58/0x70 sysfs_do_create_link_sd.isra.2+0xa3/0xb0 device_add+0x33f/0x660 srp_add_one+0x301/0x4f0 [ib_srp] add_client_context+0x99/0xe0 [ib_core] enable_device_and_get+0xd1/0x1b0 [ib_core] ib_register_device+0x533/0x710 [ib_core] ? mutex_lock+0xe/0x30 __mlx5_ib_add+0x23/0x70 [mlx5_ib] mlx5_add_device+0x4e/0xd0 [mlx5_core] mlx5_register_interface+0x85/0xc0 [mlx5_core] ? 0xffffffffa0791000 do_one_initcall+0x4b/0x1cb ? kmem_cache_alloc_trace+0xc6/0x1d0 ? do_init_module+0x22/0x21f do_init_module+0x5a/0x21f load_module+0x17f2/0x1ca0 ? m_show+0x1c0/0x1c0 __do_sys_finit_module+0x94/0xe0 do_syscall_64+0x48/0x120 entry_SYSCALL_64_after_hwframe+0x44/0xa9 RIP: 0033:0x7f157cce10d9 The module load/unload sequence was used to trigger such kernel panic: sudo modprobe ib_srp sudo modprobe -r mlx5_ib sudo modprobe -r mlx5_core sudo modprobe mlx5_core Have SRP track the name of the core device so that it can't have a name collision. Fixes: d21943dd19b5 ("RDMA/core: Implement IB device rename function") Signed-off-by: Leon Romanovsky Reviewed-by: Bart Van Assche Signed-off-by: Jason Gunthorpe commit 9b2ca371b1505a547217b244f903ad3fb86fa5b4 Author: Tom Zanussi Date: Thu Apr 18 10:18:52 2019 -0500 tracing: Add a check_val() check before updating cond_snapshot() track_val Without this check a snapshot is taken whenever a bucket's max is hit, rather than only when the global max is hit, as it should be. Before: In this example, we do a first run of the workload (cyclictest), examine the output, note the max ('triggering value') (347), then do a second run and note the max again. In this case, the max in the second run (39) is below the max in the first run, but since we haven't cleared the histogram, the first max is still in the histogram and is higher than any other max, so it should still be the max for the snapshot. It isn't however - the value should still be 347 after the second run. # echo 'hist:keys=pid:ts0=common_timestamp.usecs if comm=="cyclictest"' >> /sys/kernel/debug/tracing/events/sched/sched_waking/trigger # echo 'hist:keys=next_pid:wakeup_lat=common_timestamp.usecs-$ts0:onmax($wakeup_lat).save(next_prio,next_comm,prev_pid,prev_prio,prev_comm):onmax($wakeup_lat).snapshot() if next_comm=="cyclictest"' >> /sys/kernel/debug/tracing/events/sched/sched_switch/trigger # cyclictest -p 80 -n -s -t 2 -D 2 # cat /sys/kernel/debug/tracing/events/sched/sched_switch/hist { next_pid: 2143 } hitcount: 199 max: 44 next_prio: 120 next_comm: cyclictest prev_pid: 0 prev_prio: 120 prev_comm: swapper/4 { next_pid: 2145 } hitcount: 1325 max: 38 next_prio: 19 next_comm: cyclictest prev_pid: 0 prev_prio: 120 prev_comm: swapper/2 { next_pid: 2144 } hitcount: 1982 max: 347 next_prio: 19 next_comm: cyclictest prev_pid: 0 prev_prio: 120 prev_comm: swapper/6 Snapshot taken (see tracing/snapshot). Details: triggering value { onmax($wakeup_lat) }: 347 triggered by event with key: { next_pid: 2144 } # cyclictest -p 80 -n -s -t 2 -D 2 # cat /sys/kernel/debug/tracing/events/sched/sched_switch/hist { next_pid: 2143 } hitcount: 199 max: 44 next_prio: 120 next_comm: cyclictest prev_pid: 0 prev_prio: 120 prev_comm: swapper/4 { next_pid: 2148 } hitcount: 199 max: 16 next_prio: 120 next_comm: cyclictest prev_pid: 0 prev_prio: 120 prev_comm: swapper/1 { next_pid: 2145 } hitcount: 1325 max: 38 next_prio: 19 next_comm: cyclictest prev_pid: 0 prev_prio: 120 prev_comm: swapper/2 { next_pid: 2150 } hitcount: 1326 max: 39 next_prio: 19 next_comm: cyclictest prev_pid: 0 prev_prio: 120 prev_comm: swapper/4 { next_pid: 2144 } hitcount: 1982 max: 347 next_prio: 19 next_comm: cyclictest prev_pid: 0 prev_prio: 120 prev_comm: swapper/6 { next_pid: 2149 } hitcount: 1983 max: 130 next_prio: 19 next_comm: cyclictest prev_pid: 0 prev_prio: 120 prev_comm: swapper/0 Snapshot taken (see tracing/snapshot). Details: triggering value { onmax($wakeup_lat) }: 39 triggered by event with key: { next_pid: 2150 } After: In this example, we do a first run of the workload (cyclictest), examine the output, note the max ('triggering value') (375), then do a second run and note the max again. In this case, the max in the second run is still 375, the highest in any bucket, as it should be. # cyclictest -p 80 -n -s -t 2 -D 2 # cat /sys/kernel/debug/tracing/events/sched/sched_switch/hist { next_pid: 2072 } hitcount: 200 max: 28 next_prio: 120 next_comm: cyclictest prev_pid: 0 prev_prio: 120 prev_comm: swapper/5 { next_pid: 2074 } hitcount: 1323 max: 375 next_prio: 19 next_comm: cyclictest prev_pid: 0 prev_prio: 120 prev_comm: swapper/2 { next_pid: 2073 } hitcount: 1980 max: 153 next_prio: 19 next_comm: cyclictest prev_pid: 0 prev_prio: 120 prev_comm: swapper/6 Snapshot taken (see tracing/snapshot). Details: triggering value { onmax($wakeup_lat) }: 375 triggered by event with key: { next_pid: 2074 } # cyclictest -p 80 -n -s -t 2 -D 2 # cat /sys/kernel/debug/tracing/events/sched/sched_switch/hist { next_pid: 2101 } hitcount: 199 max: 49 next_prio: 120 next_comm: cyclictest prev_pid: 0 prev_prio: 120 prev_comm: swapper/6 { next_pid: 2072 } hitcount: 200 max: 28 next_prio: 120 next_comm: cyclictest prev_pid: 0 prev_prio: 120 prev_comm: swapper/5 { next_pid: 2074 } hitcount: 1323 max: 375 next_prio: 19 next_comm: cyclictest prev_pid: 0 prev_prio: 120 prev_comm: swapper/2 { next_pid: 2103 } hitcount: 1325 max: 74 next_prio: 19 next_comm: cyclictest prev_pid: 0 prev_prio: 120 prev_comm: swapper/4 { next_pid: 2073 } hitcount: 1980 max: 153 next_prio: 19 next_comm: cyclictest prev_pid: 0 prev_prio: 120 prev_comm: swapper/6 { next_pid: 2102 } hitcount: 1981 max: 84 next_prio: 19 next_comm: cyclictest prev_pid: 12 prev_prio: 120 prev_comm: kworker/0:1 Snapshot taken (see tracing/snapshot). Details: triggering value { onmax($wakeup_lat) }: 375 triggered by event with key: { next_pid: 2074 } Link: http://lkml.kernel.org/r/95958351329f129c07504b4d1769c47a97b70d65.1555597045.git.tom.zanussi@linux.intel.com Cc: stable@vger.kernel.org Fixes: a3785b7eca8fd ("tracing: Add hist trigger snapshot() action") Signed-off-by: Tom Zanussi Signed-off-by: Steven Rostedt (VMware) commit c8d94a1878342fdffedaaf15201d951dfc147065 Author: Tom Zanussi Date: Thu Apr 18 10:18:51 2019 -0500 tracing: Check keys for variable references in expressions too There's an existing check for variable references in keys, but it doesn't go far enough. It checks whether a key field is a variable reference but doesn't check whether it's an expression containing variable references, which can cause the same problems for callers. Use the existing field_has_hist_vars() function rather than a direct top-level flag check to catch all possible variable references. Link: http://lkml.kernel.org/r/e8c3d3d53db5ca90ceea5a46e5413103a6902fc7.1555597045.git.tom.zanussi@linux.intel.com Cc: stable@vger.kernel.org Fixes: 067fe038e70f6 ("tracing: Add variable reference handling to hist triggers") Reported-by: Vincent Bernat Signed-off-by: Tom Zanussi Signed-off-by: Steven Rostedt (VMware) commit 55267c88c003a3648567beae7c90512d3e2ab15e Author: Tom Zanussi Date: Thu Apr 18 10:18:50 2019 -0500 tracing: Prevent hist_field_var_ref() from accessing NULL tracing_map_elts hist_field_var_ref() is an implementation of hist_field_fn_t(), which can be called with a null tracing_map_elt elt param when assembling a key in event_hist_trigger(). In the case of hist_field_var_ref() this doesn't make sense, because a variable can only be resolved by looking it up using an already assembled key i.e. a variable can't be used to assemble a key since the key is required in order to access the variable. Upper layers should prevent the user from constructing a key using a variable in the first place, but in case one slips through, it shouldn't cause a NULL pointer dereference. Also if one does slip through, we want to know about it, so emit a one-time warning in that case. Link: http://lkml.kernel.org/r/64ec8dc15c14d305295b64cdfcc6b2b9dd14753f.1555597045.git.tom.zanussi@linux.intel.com Reported-by: Vincent Bernat Signed-off-by: Tom Zanussi Signed-off-by: Steven Rostedt (VMware) commit 719c7d563c17b150877cee03a4b812a424989dfa Author: YueHaibing Date: Fri May 17 22:31:49 2019 +0800 ipvs: Fix use-after-free in ip_vs_in BUG: KASAN: use-after-free in ip_vs_in.part.29+0xe8/0xd20 [ip_vs] Read of size 4 at addr ffff8881e9b26e2c by task sshd/5603 CPU: 0 PID: 5603 Comm: sshd Not tainted 4.19.39+ #30 Hardware name: Red Hat KVM, BIOS 0.5.1 01/01/2011 Call Trace: dump_stack+0x71/0xab print_address_description+0x6a/0x270 kasan_report+0x179/0x2c0 ip_vs_in.part.29+0xe8/0xd20 [ip_vs] ip_vs_in+0xd8/0x170 [ip_vs] nf_hook_slow+0x5f/0xe0 __ip_local_out+0x1d5/0x250 ip_local_out+0x19/0x60 __tcp_transmit_skb+0xba1/0x14f0 tcp_write_xmit+0x41f/0x1ed0 ? _copy_from_iter_full+0xca/0x340 __tcp_push_pending_frames+0x52/0x140 tcp_sendmsg_locked+0x787/0x1600 ? tcp_sendpage+0x60/0x60 ? inet_sk_set_state+0xb0/0xb0 tcp_sendmsg+0x27/0x40 sock_sendmsg+0x6d/0x80 sock_write_iter+0x121/0x1c0 ? sock_sendmsg+0x80/0x80 __vfs_write+0x23e/0x370 vfs_write+0xe7/0x230 ksys_write+0xa1/0x120 ? __ia32_sys_read+0x50/0x50 ? __audit_syscall_exit+0x3ce/0x450 do_syscall_64+0x73/0x200 entry_SYSCALL_64_after_hwframe+0x44/0xa9 RIP: 0033:0x7ff6f6147c60 Code: 73 01 c3 48 8b 0d 28 12 2d 00 f7 d8 64 89 01 48 83 c8 ff c3 66 0f 1f 44 00 00 83 3d 5d 73 2d 00 00 75 10 b8 01 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 31 c3 48 83 RSP: 002b:00007ffd772ead18 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 0000000000000034 RCX: 00007ff6f6147c60 RDX: 0000000000000034 RSI: 000055df30a31270 RDI: 0000000000000003 RBP: 000055df30a31270 R08: 0000000000000000 R09: 0000000000000000 R10: 00007ffd772ead70 R11: 0000000000000246 R12: 00007ffd772ead74 R13: 00007ffd772eae20 R14: 00007ffd772eae24 R15: 000055df2f12ddc0 Allocated by task 6052: kasan_kmalloc+0xa0/0xd0 __kmalloc+0x10a/0x220 ops_init+0x97/0x190 register_pernet_operations+0x1ac/0x360 register_pernet_subsys+0x24/0x40 0xffffffffc0ea016d do_one_initcall+0x8b/0x253 do_init_module+0xe3/0x335 load_module+0x2fc0/0x3890 __do_sys_finit_module+0x192/0x1c0 do_syscall_64+0x73/0x200 entry_SYSCALL_64_after_hwframe+0x44/0xa9 Freed by task 6067: __kasan_slab_free+0x130/0x180 kfree+0x90/0x1a0 ops_free_list.part.7+0xa6/0xc0 unregister_pernet_operations+0x18b/0x1f0 unregister_pernet_subsys+0x1d/0x30 ip_vs_cleanup+0x1d/0xd2f [ip_vs] __x64_sys_delete_module+0x20c/0x300 do_syscall_64+0x73/0x200 entry_SYSCALL_64_after_hwframe+0x44/0xa9 The buggy address belongs to the object at ffff8881e9b26600 which belongs to the cache kmalloc-4096 of size 4096 The buggy address is located 2092 bytes inside of 4096-byte region [ffff8881e9b26600, ffff8881e9b27600) The buggy address belongs to the page: page:ffffea0007a6c800 count:1 mapcount:0 mapping:ffff888107c0e600 index:0x0 compound_mapcount: 0 flags: 0x17ffffc0008100(slab|head) raw: 0017ffffc0008100 dead000000000100 dead000000000200 ffff888107c0e600 raw: 0000000000000000 0000000080070007 00000001ffffffff 0000000000000000 page dumped because: kasan: bad access detected while unregistering ipvs module, ops_free_list calls __ip_vs_cleanup, then nf_unregister_net_hooks be called to do remove nf hook entries. It need a RCU period to finish, however net->ipvs is set to NULL immediately, which will trigger NULL pointer dereference when a packet is hooked and handled by ip_vs_in where net->ipvs is dereferenced. Another scene is ops_free_list call ops_free to free the net_generic directly while __ip_vs_cleanup finished, then calling ip_vs_in will triggers use-after-free. This patch moves nf_unregister_net_hooks from __ip_vs_cleanup() to __ip_vs_dev_cleanup(), where rcu_barrier() is called by unregister_pernet_device -> unregister_pernet_operations, that will do the needed grace period. Reported-by: Hulk Robot Fixes: efe41606184e ("ipvs: convert to use pernet nf_hook api") Suggested-by: Julian Anastasov Signed-off-by: YueHaibing Acked-by: Julian Anastasov Signed-off-by: Simon Horman Signed-off-by: Pablo Neira Ayuso commit 4c70850aeb2e40016722cd1abd43c679666d3ca0 Author: Jose Abreu Date: Mon May 20 15:43:13 2019 +0200 ARC: [plat-hsdk]: Add missing FIFO size entry in GMAC node Add the binding for RX/TX fifo size of GMAC node. Cc: Joao Pinto Cc: Rob Herring Cc: Mark Rutland Cc: Vineet Gupta Tested-by: Eugeniy Paltsev Acked-by: Alexey Brodkin Signed-off-by: Jose Abreu Signed-off-by: Vineet Gupta commit ecc906a11c2a0940e1a380debd8bd5bc09faf454 Author: Jose Abreu Date: Mon May 20 15:43:12 2019 +0200 ARC: [plat-hsdk]: Add missing multicast filter bins number to GMAC node GMAC controller on HSDK boards supports 256 Hash Table size so we need to add the multicast filter bins property. This allows for the Hash filter to work properly using stmmac driver. Cc: Joao Pinto Cc: Rob Herring Cc: Mark Rutland Cc: Eugeniy Paltsev Acked-by: Alexey Brodkin Signed-off-by: Jose Abreu Signed-off-by: Vineet Gupta commit a65fd4f0def56f59822b2c49522d36319bc8da8b Author: Cengiz Can Date: Tue May 14 19:17:25 2019 +0300 Documentation: kdump: fix minor typo kdump.txt had a minor typo. Signed-off-by: Cengiz Can Signed-off-by: Jonathan Corbet commit 29077bc5b7a4644dd8b536a327fa63c88e6f872e Author: Sven Eckelmann Date: Sat May 11 22:19:17 2019 +0200 scripts/spdxcheck.py: Add dual license subdirectory The licenses from the other directory were partially moved to the dual directory in commit 8ea8814fcdcb ("LICENSES: Clearly mark dual license only licenses"). checkpatch therefore rejected files like drivers/staging/android/ashmem.h with WARNING: 'SPDX-License-Identifier: GPL-2.0 OR Apache-2.0 */' is not supported in LICENSES/... #1: FILE: drivers/staging/android/ashmem.h:1: +/* SPDX-License-Identifier: GPL-2.0 OR Apache-2.0 */ Fixes: 8ea8814fcdcb ("LICENSES: Clearly mark dual license only licenses") Signed-off-by: Sven Eckelmann Reviewed-by: Christoph Hellwig Signed-off-by: Jonathan Corbet commit fe48319243a626c860fd666ca032daacc2ba84a5 Author: Kees Cook Date: Mon May 20 15:37:49 2019 -0700 selftests/timers: Add missing fflush(stdout) calls When running under a pipe, some timer tests would not report output in real-time because stdout flushes were missing after printf()s that lacked a newline. This adds them to restore real-time status output that humans can enjoy. Signed-off-by: Kees Cook Signed-off-by: Shuah Khan commit e8108866cac5058ae5aff5fa601f91bda29128f2 Author: Kees Cook Date: Mon May 20 15:37:48 2019 -0700 selftests: Remove forced unbuffering for test running As it turns out, the "stdbuf" command will actually force all subprocesses into unbuffered output, and some implementations of "echo" turn into single-character writes, which utterly wrecks writes to /sys and /proc files. Instead, drop the "stdbuf" usage, and for any tests that want explicit flushing between newlines, they'll have to add "fflush(stdout);" as needed. Reported-by: Takashi Iwai Fixes: 5c069b6dedef ("selftests: Move test output to diagnostic lines") Signed-off-by: Kees Cook Tested-by: Takashi Iwai Signed-off-by: Shuah Khan commit a20d452a2db7e092a9b214976306a36857b88ade Author: Tong Bo Date: Fri Apr 19 15:10:55 2019 +0800 selftests/x86: Support Atom for syscall_arg_fault test Atom-based CPUs trigger stack fault when invoke 32-bit SYSENTER instruction with invalid register values. So we also need SIGBUS handling in this case. Following is assembly when the fault exception happens. (gdb) disassemble $eip Dump of assembler code for function __kernel_vsyscall: 0xf7fd8fe0 <+0>: push %ecx 0xf7fd8fe1 <+1>: push %edx 0xf7fd8fe2 <+2>: push %ebp 0xf7fd8fe3 <+3>: mov %esp,%ebp 0xf7fd8fe5 <+5>: sysenter 0xf7fd8fe7 <+7>: int $0x80 => 0xf7fd8fe9 <+9>: pop %ebp 0xf7fd8fea <+10>: pop %edx 0xf7fd8feb <+11>: pop %ecx 0xf7fd8fec <+12>: ret End of assembler dump. According to Intel SDM, this could also be a Stack Segment Fault(#SS, 12), except a normal Page Fault(#PF, 14). Especially, in section 6.9 of Vol.3A, both stack and page faults are within the 10th(lowest priority) class, and as it said, "exceptions within each class are implementation-dependent and may vary from processor to processor". It's expected for processors like Intel Atom to trigger stack fault(SIGBUS), while we get page fault(SIGSEGV) from common Core processors. Signed-off-by: Tong Bo Acked-by: Andy Lutomirski Signed-off-by: Shuah Khan commit 0decfd8bd8237eb470f699a0ecfa126c4befb03b Author: Keith Busch Date: Tue May 21 09:04:57 2019 -0600 nvme: update MAINTAINERS Use my kernel.org email for nvme. This forwards to all my accounts. Signed-off-by: Keith Busch commit 2d466c7a574d0b893a233735f133c60115013c0e Author: Laine Walker-Avina Date: Mon May 20 10:13:04 2019 -0700 nvme: copy MTFA field from identify controller We use the controller's reported maximum firmware activation time as our timeout before resetting a controller for a failed activation notice, but this value was never being read so we could only use the default timeout. Copy the Identify Controller MTFA field to the corresponding nvme_ctrl's mtfa field. Fixes: b6dccf7fae433 (“nvme: add support for FW activation without reset”). Reviewed-by: Max Gurtovoy Reviewed-by: Christoph Hellwig Reviewed-by: Minwoo Im Signed-off-by: Laine Walker-Avina [changelog, fix endian] Signed-off-by: Keith Busch commit a195cefff49f60054998333e81ee95170ce8bf92 Author: Matteo Croce Date: Mon May 20 23:49:38 2019 +0200 samples, bpf: suppress compiler warning GCC 9 fails to calculate the size of local constant strings and produces a false positive: samples/bpf/task_fd_query_user.c: In function ‘test_debug_fs_uprobe’: samples/bpf/task_fd_query_user.c:242:67: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 215 [-Wformat-truncation=] 242 | snprintf(buf, sizeof(buf), "/sys/kernel/debug/tracing/events/%ss/%s/id", | ^~ 243 | event_type, event_alias); | ~~~~~~~~~~~ samples/bpf/task_fd_query_user.c:242:2: note: ‘snprintf’ output between 45 and 300 bytes into a destination of size 256 242 | snprintf(buf, sizeof(buf), "/sys/kernel/debug/tracing/events/%ss/%s/id", | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 243 | event_type, event_alias); | ~~~~~~~~~~~~~~~~~~~~~~~~ Workaround this by lowering the buffer size to a reasonable value. Related GCC Bugzilla: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83431 Signed-off-by: Matteo Croce Signed-off-by: Daniel Borkmann commit f7c2d64bac1be2ff32f8e4f500c6e5429c1003e0 Author: Chang-Hsien Tsai Date: Sun May 19 09:05:44 2019 +0000 samples, bpf: fix to change the buffer size for read() If the trace for read is larger than 4096, the return value sz will be 4096. This results in off-by-one error on buf: static char buf[4096]; ssize_t sz; sz = read(trace_fd, buf, sizeof(buf)); if (sz > 0) { buf[sz] = 0; puts(buf); } Signed-off-by: Chang-Hsien Tsai Signed-off-by: Daniel Borkmann commit f7355a6c049711ecfbeed573e43d48bee7acb83a Author: Martin KaFai Lau Date: Fri May 17 14:21:17 2019 -0700 bpf: Check sk_fullsock() before returning from bpf_sk_lookup() The BPF_FUNC_sk_lookup_xxx helpers return RET_PTR_TO_SOCKET_OR_NULL. Meaning a fullsock ptr and its fullsock's fields in bpf_sock can be accessed, e.g. type, protocol, mark and priority. Some new helper, like bpf_sk_storage_get(), also expects ARG_PTR_TO_SOCKET is a fullsock. bpf_sk_lookup() currently calls sk_to_full_sk() before returning. However, the ptr returned from sk_to_full_sk() is not guaranteed to be a fullsock. For example, it cannot get a fullsock if sk is in TCP_TIME_WAIT. This patch checks for sk_fullsock() before returning. If it is not a fullsock, sock_gen_put() is called if needed and then returns NULL. Fixes: 6acc9b432e67 ("bpf: Add helper to retrieve socket in BPF") Cc: Joe Stringer Signed-off-by: Martin KaFai Lau Acked-by: Joe Stringer Signed-off-by: Daniel Borkmann commit 9b28ae243ef3b13d8a88b5451d025475c75ebdef Author: Lorenz Bauer Date: Tue May 21 08:52:38 2019 +0100 bpf: fix out-of-bounds read in __bpf_skc_lookup __bpf_skc_lookup takes a socket tuple and the length of the tuple as an argument. Based on the length, it decides which address family to pass to the helper function sk_lookup. In case of AF_INET6, it fails to verify that the length of the tuple is long enough. sk_lookup may therefore access data past the end of the tuple. Fixes: 6acc9b432e67 ("bpf: Add helper to retrieve socket in BPF") Signed-off-by: Lorenz Bauer Signed-off-by: Daniel Borkmann commit 221fb7268d67c0867a93f23586bd53c3c3969eee Author: Randy Dunlap Date: Mon May 20 14:22:25 2019 -0700 Documentation/networking: fix af_xdp.rst Sphinx warnings Fix Sphinx warnings in Documentation/networking/af_xdp.rst by adding indentation: Documentation/networking/af_xdp.rst:319: WARNING: Literal block expected; none found. Documentation/networking/af_xdp.rst:326: WARNING: Literal block expected; none found. Fixes: 0f4a9b7d4ecb ("xsk: add FAQ to facilitate for first time users") Signed-off-by: Randy Dunlap Cc: Magnus Karlsson Cc: Daniel Borkmann Acked-by: Björn Töpel Signed-off-by: Daniel Borkmann commit e633508a95289489d28faacb68b32c3e7e68ef6f Author: Phil Sutter Date: Wed May 15 20:15:32 2019 +0200 netfilter: nft_fib: Fix existence check support NFTA_FIB_F_PRESENT flag was not always honored since eval functions did not call nft_fib_store_result in all cases. Given that in all callsites there is a struct net_device pointer available which holds the interface data to be stored in destination register, simplify nft_fib_store_result() to just accept that pointer instead of the nft_pktinfo pointer and interface index. This also allows to drop the index to interface lookup previously needed to get the name associated with given index. Fixes: 055c4b34b94f6 ("netfilter: nft_fib: Support existence check") Signed-off-by: Phil Sutter Signed-off-by: Pablo Neira Ayuso commit 946c0d8e6ed43dae6527e878d0077c1e11015db0 Author: Jagdish Motwani Date: Mon May 13 23:47:40 2019 +0530 netfilter: nf_queue: fix reinject verdict handling This patch fixes netfilter hook traversal when there are more than 1 hooks returning NF_QUEUE verdict. When the first queue reinjects the packet, 'nf_reinject' starts traversing hooks with a proper hook_index. However, if it again receives a NF_QUEUE verdict (by some other netfilter hook), it queues the packet with a wrong hook_index. So, when the second queue reinjects the packet, it re-executes hooks in between. Fixes: 960632ece694 ("netfilter: convert hook list to an array") Signed-off-by: Jagdish Motwani Signed-off-by: Pablo Neira Ayuso commit 9bb9fe0cfbe0aa72fed906ade0590e1702815e5d Author: Baolin Wang Date: Mon May 6 15:28:33 2019 +0800 dmaengine: sprd: Add interrupt support for 2-stage transfer For 2-stage transfer, some users like Audio still need transaction interrupt to notify when the 2-stage transfer is completed. Thus we should enable 2-stage transfer interrupt to support this feature. Signed-off-by: Baolin Wang Signed-off-by: Vinod Koul commit c434e377dad1dec05cad1870ce21bc539e1e024f Author: Eric Long Date: Mon May 6 15:28:32 2019 +0800 dmaengine: sprd: Fix the right place to configure 2-stage transfer Move the 2-stage configuration before configuring the link-list mode, since we will use some 2-stage configuration to fill the link-list configuration. Signed-off-by: Eric Long Signed-off-by: Baolin Wang Signed-off-by: Vinod Koul commit 89d03b3c126d683f7b2cd5b07178493993d12448 Author: Eric Long Date: Mon May 6 15:28:31 2019 +0800 dmaengine: sprd: Fix block length overflow The maximum value of block length is 0xffff, so if the configured transfer length is more than 0xffff, that will cause block length overflow to lead a configuration error. Thus we can set block length as the maximum burst length to avoid this issue, since the maximum burst length will not be a big value which is more than 0xffff. Signed-off-by: Eric Long Signed-off-by: Baolin Wang Signed-off-by: Vinod Koul commit 3d626a97f0303e9c30d063434b749de3f0f91fb5 Author: Eric Long Date: Mon May 6 15:28:30 2019 +0800 dmaengine: sprd: Fix the incorrect start for 2-stage destination channels The 2-stage destination channel will be triggered by source channel automatically, which means we should not trigger it by software request. Signed-off-by: Eric Long Signed-off-by: Baolin Wang Signed-off-by: Vinod Koul commit 58152b0e573e5581c4b9ef7cf06d2e9fafae27d4 Author: Baolin Wang Date: Mon May 6 15:28:29 2019 +0800 dmaengine: sprd: Add validation of current descriptor in irq handler When user terminates one DMA channel to free all its descriptors, but at the same time one transaction interrupt was triggered possibly, now we should not handle this interrupt by validating if the 'schan->cur_desc' was set as NULL to avoid crashing the kernel. Signed-off-by: Baolin Wang Signed-off-by: Vinod Koul commit 16d0f85e45b99411ac10cb12cdd9279204a72381 Author: Baolin Wang Date: Mon May 6 15:28:28 2019 +0800 dmaengine: sprd: Fix the possible crash when getting descriptor status We will get a NULL virtual descriptor by vchan_find_desc() when the descriptor has been submitted, that will crash the kernel when getting the descriptor status. In this case, since the descriptor has been submitted to process, but it is not completed now, which means the descriptor is listed into the 'vc->desc_submitted' list now. So we can not get current processing descriptor by vchan_find_desc(), but the pointer 'schan->cur_desc' will point to the current processing descriptor, then we can use 'schan->cur_desc' to get current processing descriptor's status to avoid this issue. Signed-off-by: Baolin Wang Signed-off-by: Vinod Koul commit 57cb853d1d5b07ed4e4647ad61b0c16a9c21996e Merge: a491cc8e1597 591c39ffac4a Author: Joonas Lahtinen Date: Tue May 21 14:37:37 2019 +0300 Merge tag 'gvt-fixes-2019-05-21' of https://github.com/intel/gvt-linux into drm-intel-fixes gvt-fixes-2019-05-21 - vGPU reset fix with sane init breadcrumb (Weinan) - Fix TRTT handling to use context state (Yan) - Fix one error return (Dan) Signed-off-by: Joonas Lahtinen From: Zhenyu Wang Link: https://patchwork.freedesktop.org/patch/msgid/20190521062408.GH12913@zhen-hp.sh.intel.com commit 5d24f455c182d5116dd5db8e1dc501115ecc9c2c Author: Joe Burmeister Date: Mon May 13 11:23:57 2019 +0100 tty: max310x: Fix external crystal register setup The datasheet states: Bit 4: ClockEnSet the ClockEn bit high to enable an external clocking (crystal or clock generator at XIN). Set the ClockEn bit to 0 to disable clocking Bit 1: CrystalEnSet the CrystalEn bit high to enable the crystal oscillator. When using an external clock source at XIN, CrystalEn must be set low. The bit 4, MAX310X_CLKSRC_EXTCLK_BIT, should be set and was not. This was required to make the MAX3107 with an external crystal on our board able to send or receive data. Signed-off-by: Joe Burmeister Cc: stable Signed-off-by: Greg Kroah-Hartman commit 099506cbbc79c0bd52b19cb6b930f256dabc3950 Author: George G. Davis Date: Tue May 14 23:29:34 2019 -0400 serial: sh-sci: disable DMA for uart_console As noted in commit 84b40e3b57ee ("serial: 8250: omap: Disable DMA for console UART"), UART console lines use low-level PIO only access functions which will conflict with use of the line when DMA is enabled, e.g. when the console line is also used for systemd messages. So disable DMA support for UART console lines. Reported-by: Michael Rodin Link: https://patchwork.kernel.org/patch/10929511/ Tested-by: Eugeniu Rosca Reviewed-by: Simon Horman Reviewed-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Cc: stable@vger.kernel.org Signed-off-by: George G. Davis Signed-off-by: Greg Kroah-Hartman commit 8178eeb3e8007d29b1e9dfd3c4d0f90de0f6ce55 Author: Sascha Hauer Date: Fri May 17 12:01:38 2019 +0200 serial: imx: remove log spamming error message Each time the DMA engine signals a transaction error the driver prints a message at error level. Getting transaction errors is pretty much expected on baudrate mismatches and the correspoding error counters are increased in this case properly. Remove the error message which is possibly repeated at a very high rate which can lock up the whole system. Signed-off-by: Sascha Hauer Reviewed-by: Fabio Estevam Signed-off-by: Greg Kroah-Hartman commit 61c0e37950b88bad590056286c1d766b1f167f4e Author: Jorge Ramirez-Ortiz Date: Mon May 20 20:38:48 2019 +0200 tty: serial: msm_serial: Fix XON/XOFF When the tty layer requests the uart to throttle, the current code executing in msm_serial will trigger "Bad mode in Error Handler" and generate an invalid stack frame in pstore before rebooting (that is if pstore is indeed configured: otherwise the user shall just notice a reboot with no further information dumped to the console). This patch replaces the PIO byte accessor with the word accessor already used in PIO mode. Fixes: 68252424a7c7 ("tty: serial: msm: Support big-endian CPUs") Cc: stable@vger.kernel.org Signed-off-by: Jorge Ramirez-Ortiz Reviewed-by: Bjorn Andersson Reviewed-by: Stephen Boyd Signed-off-by: Greg Kroah-Hartman commit 7170066ecd289cd8560695b6f86ba8dc723b6505 Author: Thomas Gleixner Date: Sun May 19 15:51:55 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 25 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it would be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 6 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Steve Winslow Reviewed-by: Kate Stewart Reviewed-by: Jilayne Lovejoy Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154043.007767574@linutronix.de Signed-off-by: Greg Kroah-Hartman commit fd9871f70c3ae52b3ea199069ad6879645402952 Author: Thomas Gleixner Date: Sun May 19 15:51:54 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 24 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 50 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Jilayne Lovejoy Reviewed-by: Kate Stewart Reviewed-by: Steve Winslow Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154042.917228456@linutronix.de Signed-off-by: Greg Kroah-Hartman commit d9c981619ec137ff60e64f3b0ca363b299c3345b Author: Thomas Gleixner Date: Sun May 19 15:51:53 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 23 Based on 1 normalized pattern(s): this software may be redistributed and or modified under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Steve Winslow Reviewed-by: Kate Stewart Reviewed-by: Jilayne Lovejoy Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154042.800979546@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4415d92d030c7b4fbd2d00f4f931d04b9cefcb32 Author: Thomas Gleixner Date: Sun May 19 15:51:52 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 22 Based on 1 normalized pattern(s): the code contained herein is licensed under the gnu general public license you may obtain a copy of the gnu general public license version 2 or later at the following locations extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 4 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Jilayne Lovejoy Reviewed-by: Steve Winslow Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154042.707528683@linutronix.de Signed-off-by: Greg Kroah-Hartman commit b2b5921fe4b363ff29fea9183aca089231a6bafc Author: Sascha Hauer Date: Tue May 21 10:43:35 2019 +0200 mtd: rawnand: initialize ntargets with maxchips memorg->ntargets is initialized with '1'. It should be initialized with the maxchips argument from nand_scan() instead. Otherwise multi chip support errors out on the secondary chip selects when trying to call nand_reset() on them: WARNING: CPU: 0 PID: 1 at drivers/mtd/nand/raw/internals.h:114 nand_reset_op+0x194/0x1c4 With this memorg->ntargets is initialized with the maximum number of chip selects supported by the driver. After having detected the number of actually connected chips memory->ntargets is updated with that number. Fixes: 32813e288414 ("mtd: rawnand: Get rid of chip->numchips") Signed-off-by: Sascha Hauer Reviewed-by: Boris Brezillon Signed-off-by: Miquel Raynal commit 8b9844d7e8fbfd3796e6904976b09bf4ab27e43a Author: Thomas Gleixner Date: Sun May 19 15:51:51 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 21 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Steve Winslow Reviewed-by: Kate Stewart Reviewed-by: Jilayne Lovejoy Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154042.615184352@linutronix.de Signed-off-by: Greg Kroah-Hartman commit ca47d34458b4dec2236966086eb430361fdec69b Author: Thomas Gleixner Date: Sun May 19 15:51:50 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 20 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program see the file copying if not write to the free software foundation inc 51 franklin steet fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 41 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Jilayne Lovejoy Reviewed-by: Steve Winslow Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154042.524645346@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f6ce7f2022447590f5c8b04c8fff5768c1371000 Author: Thomas Gleixner Date: Sun May 19 15:51:49 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 19 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation 51 franklin street fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Steve Winslow Reviewed-by: Jilayne Lovejoy Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154042.432790911@linutronix.de Signed-off-by: Greg Kroah-Hartman commit c82ee6d3beaa489058c1fe1ca710042a07df9d40 Author: Thomas Gleixner Date: Sun May 19 15:51:48 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 18 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program see the file copying if not write to the free software foundation 675 mass ave cambridge ma 02139 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 52 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Jilayne Lovejoy Reviewed-by: Steve Winslow Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154042.342335923@linutronix.de Signed-off-by: Greg Kroah-Hartman commit aaf4989bd4b1963493d7ee14eccff62d79555347 Author: Thomas Gleixner Date: Sun May 19 15:51:47 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 17 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 13 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Steve Winslow Reviewed-by: Jilayne Lovejoy Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154042.236620792@linutronix.de Signed-off-by: Greg Kroah-Hartman commit d0ae6124e5ac163f2aed3d79a92c5edda24e26fe Author: Thomas Gleixner Date: Sun May 19 15:51:45 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 15 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses the full gnu general public license is included in this distribution in the file called copying extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 9 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Steve Winslow Reviewed-by: Allison Randal Reviewed-by: Jilayne Lovejoy Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154042.045106120@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f8739b71f480dace39a15f40edbaac33c962138b Author: Thomas Gleixner Date: Sun May 19 15:51:44 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 14 Based on 1 normalized pattern(s): gnu cc is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 or at your option any later version gnu cc is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with gnu cc see the file copying if not write to the free software foundation 59 temple place suite 330 boston ma 02111 1307 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Steve Winslow Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Reviewed-by: Jilayne Lovejoy Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154041.940713800@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 1ccea77e2a2687cae171b7987eb44730ec8c6d5f Author: Thomas Gleixner Date: Sun May 19 15:51:43 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 13 Based on 2 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details [based] [from] [clk] [highbank] [c] you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 355 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Jilayne Lovejoy Reviewed-by: Steve Winslow Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154041.837383322@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 4359375c31677ea4f7c2a8200165afdfb0d10a6b Author: Thomas Gleixner Date: Sun May 19 15:51:42 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 12 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose good title or non infringement see the gnu general public license for more details extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 7 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Steve Winslow Reviewed-by: Jilayne Lovejoy Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154041.727898173@linutronix.de Signed-off-by: Greg Kroah-Hartman commit ef65e43121593d2b0897f5f37ec53eb49c6efa89 Author: Thomas Gleixner Date: Sun May 19 15:51:41 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 11 Based on 1 normalized pattern(s): this program is free software you can distribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Steve Winslow Reviewed-by: Jilayne Lovejoy Reviewed-by: Kate Stewart Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154041.622608495@linutronix.de Signed-off-by: Greg Kroah-Hartman commit aded9cb8783c35becea1ef46f608d2a230651459 Author: Thomas Gleixner Date: Sun May 19 15:51:40 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 10 Based on 1 normalized pattern(s): licensed under the fsf s gnu public license v2 or later extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 2 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Jilayne Lovejoy Reviewed-by: Steve Winslow Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154041.526489261@linutronix.de Signed-off-by: Greg Kroah-Hartman commit d6cd1e9b9ff4f5e2d6b7085ad8601f86177fd300 Author: Thomas Gleixner Date: Sun May 19 15:51:39 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 9 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not you can access it online at http www gnu org licenses gpl 2 0 html extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 1 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Kate Stewart Reviewed-by: Jilayne Lovejoy Reviewed-by: Steve Winslow Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154041.430943677@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 9ab65aff02e842b09fbdcd7a7df02b63ed63442a Author: Thomas Gleixner Date: Sun May 19 15:51:37 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 7 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details the full gnu general public license is included in this distribution in the file called copying extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 9 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Steve Winslow Reviewed-by: Kate Stewart Reviewed-by: Jilayne Lovejoy Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154041.244154651@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 0a65089ec50836d5686c7cdaa1639080eb456a21 Author: Thomas Gleixner Date: Sun May 19 15:51:35 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 5 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not see http www gnu org licenses the full gnu general public license is included in this distribution in the file called license extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 3 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Steve Winslow Reviewed-by: Kate Stewart Reviewed-by: Jilayne Lovejoy Reviewed-by: Allison Randal Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154041.052102771@linutronix.de Signed-off-by: Greg Kroah-Hartman commit a636cd6c422865a74ff305039ff0f85adbe3a7bf Author: Thomas Gleixner Date: Sun May 19 15:51:34 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 4 Based on 1 normalized pattern(s): licensed under gplv2 or later extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 118 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Jilayne Lovejoy Reviewed-by: Steve Winslow Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154040.961286471@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 3a63cbb8db7178550c7b428c98532b35853d1f40 Author: Thomas Gleixner Date: Sun May 19 15:51:33 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 3 Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license version 2 or later as published by the free software foundation extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 9 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Steve Winslow Reviewed-by: Jilayne Lovejoy Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154040.848507137@linutronix.de Signed-off-by: Greg Kroah-Hartman commit 16216333235adf51093d0330a934a7e4a03134fe Author: Thomas Gleixner Date: Sun May 19 15:51:31 2019 +0200 treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 1 Based on 2 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin street fifth floor boston ma 02110 1301 usa this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option [no]_[pad]_[ctrl] any later version this program is distributed in the hope that it will be useful but without any warranty without even the implied warranty of merchantability or fitness for a particular purpose see the gnu general public license for more details you should have received a copy of the gnu general public license along with this program if not write to the free software foundation inc 51 franklin street fifth floor boston ma 02110 1301 usa extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 176 file(s). Signed-off-by: Thomas Gleixner Reviewed-by: Jilayne Lovejoy Reviewed-by: Steve Winslow Reviewed-by: Allison Randal Reviewed-by: Kate Stewart Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190519154040.652910950@linutronix.de Signed-off-by: Greg Kroah-Hartman commit f3dfd4072c3ee6e287f501a18b5718b185d6a940 Author: Daniele Palmas Date: Wed May 15 17:27:49 2019 +0200 USB: serial: option: add Telit 0x1260 and 0x1261 compositions Added support for Telit LE910Cx 0x1260 and 0x1261 compositions. Signed-off-by: Daniele Palmas Cc: stable Signed-off-by: Johan Hovold commit c5f81656a18b271976a86724dadd8344e54de74e Author: Chris Packham Date: Tue May 14 17:35:42 2019 +1200 USB: serial: pl2303: add Allied Telesis VT-Kit3 This is adds the vendor and device id for the AT-VT-Kit3 which is a pl2303-based device. Signed-off-by: Chris Packham Cc: stable Signed-off-by: Johan Hovold commit 5417a7e482962952e622eabd60cd3600dd65dedf Author: Jörgen Storvist Date: Mon May 13 18:37:52 2019 +0200 USB: serial: option: add support for Simcom SIM7500/SIM7600 RNDIS mode Added IDs for Simcom SIM7500/SIM7600 series cellular module in RNDIS mode. Reserved the interface for ADB. T: Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 7 Spd=480 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1 P: Vendor=1e0e ProdID=9011 Rev=03.18 S: Manufacturer=SimTech, Incorporated S: Product=SimTech, Incorporated S: SerialNumber=0123456789ABCDEF C: #Ifs= 8 Cfg#= 1 Atr=a0 MxPwr=500mA I: If#=0x0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=02 Prot=ff Driver=rndis_host I: If#=0x1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=rndis_host I: If#=0x2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option I: If#=0x3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I: If#=0x4 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I: If#=0x5 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I: If#=0x6 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=00 Driver=option I: If#=0x7 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none) Signed-off-by: Jörgen Storvist Cc: stable Signed-off-by: Johan Hovold commit 7c420636860a719049fae9403e2c87804f53bdde Author: Patrik Jakobsson Date: Tue Apr 16 13:46:07 2019 +0200 drm/gma500/cdv: Check vbt config bits when detecting lvds panels Some machines have an lvds child device in vbt even though a panel is not attached. To make detection more reliable we now also check the lvds config bits available in the vbt. Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1665766 Cc: stable@vger.kernel.org Reviewed-by: Hans de Goede Signed-off-by: Patrik Jakobsson Link: https://patchwork.freedesktop.org/patch/msgid/20190416114607.1072-1-patrik.r.jakobsson@gmail.com commit 492252493ea382d12cb61c52295fc2d088bba28f Author: Jon Hunter Date: Thu May 16 16:53:54 2019 +0100 dmaengine: tegra210-adma: Fix spelling Correct spelling of 'register' in Tegra210 ADMA driver. Fixes: ded1f3db4cd6 ("dmaengine: tegra210-adma: prepare for supporting newer Tegra chips") Signed-off-by: Jon Hunter Signed-off-by: Vinod Koul commit 9ab59bf5dd6380a56e2897c92c5cd920ae4b0f8b Author: Jon Hunter Date: Thu May 16 16:53:53 2019 +0100 dmaengine: tegra210-adma: Fix channel FIFO configuration Commit ded1f3db4cd6 ("dmaengine: tegra210-adma: prepare for supporting newer Tegra chips") removed the default settings DMA channel RX and TX FIFO sizes and this is breaking DMA transfers. The intention was to move the default settings to the chip specific data structure because this commit was preparing for adding support for Tegra186 where the fields for the FIFO CTRL register are slightly different. Fix the configuration of the FIFO sizes by adding default values for the FIFO CTRL register for both Tegra210 and Tegra186 and store the values in the chip specific structure. Fixes: ded1f3db4cd6 ("dmaengine: tegra210-adma: prepare for supporting newer Tegra chips") Signed-off-by: Jon Hunter Signed-off-by: Vinod Koul commit b53611fb1ce9b1786bd18205473e0c1d6bfa8934 Author: Jon Hunter Date: Thu May 16 16:53:52 2019 +0100 dmaengine: tegra210-adma: Fix crash during probe Commit f33e7bb3eb92 ("dmaengine: tegra210-adma: restore channel status") added support to save and restore the DMA channel registers when runtime suspending the ADMA. This change is causing the kernel to crash when probing the ADMA, if the device is probed deferred when looking up the channel interrupts. The crash occurs because not all of the channel base addresses have been setup at this point and in the clean-up path of the probe, pm_runtime_suspend() is called invoking its callback which expects all the channel base addresses to be initialised. Although this could be fixed by simply checking for a NULL address, on further review of the driver it seems more appropriate that we only call pm_runtime_get_sync() after all the channel interrupts and base addresses have been configured. Therefore, fix this crash by moving the calls to pm_runtime_enable(), pm_runtime_get_sync() and tegra_adma_init() after the DMA channels have been initialised. Fixes: f33e7bb3eb92 ("dmaengine: tegra210-adma: restore channel status") Signed-off-by: Jon Hunter Signed-off-by: Vinod Koul commit 069b3c4214f27b130d0642f32438560db30f452e Author: Dan Carpenter Date: Thu May 9 13:09:23 2019 +0300 dmaengine: mediatek-cqdma: sleeping in atomic context The mtk_cqdma_poll_engine_done() function takes a true/false parameter where true means it's called from atomic context. There are a couple places where it was set to false but it's actually in atomic context so it should be true. All the callers for mtk_cqdma_hard_reset() are holding a spin_lock and in mtk_cqdma_free_chan_resources() we take a spin_lock before calling the mtk_cqdma_poll_engine_done() function. Fixes: b1f01e48df5a ("dmaengine: mediatek: Add MediaTek Command-Queue DMA controller for MT6765 SoC") Signed-off-by: Dan Carpenter Signed-off-by: Vinod Koul commit 0788611c9a0925c607de536b2449de5ed98ef8df Author: Colin Ian King Date: Wed May 8 23:33:29 2019 +0100 dmaengine: dw-axi-dmac: fix null dereference when pointer first is null In the unlikely event that axi_desc_get returns a null desc in the very first iteration of the while-loop the error exit path ends up calling axi_desc_put on a null pointer 'first' and this causes a null pointer dereference. Fix this by adding a null check on pointer 'first' before calling axi_desc_put. Addresses-Coverity: ("Explicit null dereference") Fixes: 1fe20f1b8454 ("dmaengine: Introduce DW AXI DMAC driver") Signed-off-by: Colin Ian King Signed-off-by: Vinod Koul commit ec8f24b7faaf3d4799a7c3f4c1b87f6b02778ad1 Author: Thomas Gleixner Date: Sun May 19 13:07:45 2019 +0100 treewide: Add SPDX license identifier - Makefile/Kconfig Add SPDX license identifiers to all Make/Kconfig files which: - Have no license information of any form These files fall under the project license, GPL v2 only. The resulting SPDX license identifier is: GPL-2.0-only Signed-off-by: Thomas Gleixner Signed-off-by: Greg Kroah-Hartman commit 09c434b8a0047c69e48499de0107de312901e798 Author: Thomas Gleixner Date: Sun May 19 13:08:20 2019 +0100 treewide: Add SPDX license identifier for more missed files Add SPDX license identifiers to all files which: - Have no license information of any form - Have MODULE_LICENCE("GPL*") inside which was used in the initial scan/conversion to ignore the file These files fall under the project license, GPL v2 only. The resulting SPDX license identifier is: GPL-2.0-only Signed-off-by: Thomas Gleixner Signed-off-by: Greg Kroah-Hartman commit 457c89965399115e5cd8bf38f9c597293405703d Author: Thomas Gleixner Date: Sun May 19 13:08:55 2019 +0100 treewide: Add SPDX license identifier for missed files Add SPDX license identifiers to all files which: - Have no license information of any form - Have EXPORT_.*_SYMBOL_GPL inside which was used in the initial scan/conversion to ignore the file These files fall under the project license, GPL v2 only. The resulting SPDX license identifier is: GPL-2.0-only Signed-off-by: Thomas Gleixner Signed-off-by: Greg Kroah-Hartman commit 23e3983a466cd540ffdd2bbc6e0c51e31934f941 Author: Stephane Eranian Date: Mon May 20 17:52:46 2019 -0700 perf/x86/intel/ds: Fix EVENT vs. UEVENT PEBS constraints This patch fixes an bug revealed by the following commit: 6b89d4c1ae85 ("perf/x86/intel: Fix INTEL_FLAGS_EVENT_CONSTRAINT* masking") That patch modified INTEL_FLAGS_EVENT_CONSTRAINT() to only look at the event code when matching a constraint. If code+umask were needed, then the INTEL_FLAGS_UEVENT_CONSTRAINT() macro was needed instead. This broke with some of the constraints for PEBS events. Several of them, including the one used for cycles:p, cycles:pp, cycles:ppp fell in that category and caused the event to be rejected in PEBS mode. In other words, on some platforms a cmdline such as: $ perf top -e cycles:pp would fail with -EINVAL. This patch fixes this bug by properly using INTEL_FLAGS_UEVENT_CONSTRAINT() when needed in the PEBS constraint tables. Reported-by: Ingo Molnar Signed-off-by: Stephane Eranian Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Vince Weaver Cc: kan.liang@intel.com Link: http://lkml.kernel.org/r/20190521005246.423-1-eranian@google.com Signed-off-by: Ingo Molnar commit 5ed7f4b5eca11c3c69e7c8b53e4321812bc1ee1e Author: Murray McAllister Date: Mon May 20 21:57:34 2019 +1200 drm/vmwgfx: integer underflow in vmw_cmd_dx_set_shader() leading to an invalid read If SVGA_3D_CMD_DX_SET_SHADER is called with a shader ID of SVGA3D_INVALID_ID, and a shader type of SVGA3D_SHADERTYPE_INVALID, the calculated binding.shader_slot will be 4294967295, leading to an out-of-bounds read in vmw_binding_loc() when the offset is calculated. Cc: Fixes: d80efd5cb3de ("drm/vmwgfx: Initial DX support") Signed-off-by: Murray McAllister Reviewed-by: Thomas Hellstrom Signed-off-by: Thomas Hellstrom commit bcd6aa7b6cbfd6f985f606c6f76046d782905820 Author: Murray McAllister Date: Sat May 11 18:01:37 2019 +1200 drm/vmwgfx: NULL pointer dereference from vmw_cmd_dx_view_define() If SVGA_3D_CMD_DX_DEFINE_RENDERTARGET_VIEW is called with a surface ID of SVGA3D_INVALID_ID, the srf struct will remain NULL after vmw_cmd_res_check(), leading to a null pointer dereference in vmw_view_add(). Cc: Fixes: d80efd5cb3de ("drm/vmwgfx: Initial DX support") Signed-off-by: Murray McAllister Reviewed-by: Thomas Hellstrom Signed-off-by: Thomas Hellstrom commit 8dc39cfca32c9a4e6deddaa0e76bd47d56f1876b Author: Thomas Hellstrom Date: Wed May 15 17:45:23 2019 +0200 drm/vmwgfx: Use the dma scatter-gather iterator to get dma addresses Use struct sg_dma_page_iter in favour struct of sg_page_iter, which fairly recently was declared useless for obtaining dma addresses. With a struct sg_dma_page_iter we can't call sg_page_iter_page() so when the page is needed, use the same page lookup mechanism as for the non-sg dma modes instead of calling sg_dma_page_iter. Note, the fixes tag doesn't really point to a commit introducing a failure / regression, but rather to a commit that implemented a simple workaround for this problem. Cc: Jason Gunthorpe Fixes: d901b2760dc6 ("lib/scatterlist: Provide a DMA page iterator") Signed-off-by: Thomas Hellstrom Reviewed-by: Jason Gunthorpe commit e41c20cf50a8a7d0dfa337a7530590aacef4193b Author: Thomas Hellstrom Date: Thu Apr 4 13:25:43 2019 +0000 drm/vmwgfx: Fix compat mode shader operation In compat mode, we allowed host-backed user-space with guest-backed kernel / device. In this mode, set shader commands was broken since no relocations were emitted. Fix this. Cc: Fixes: e8c66efbfe3a ("drm/vmwgfx: Make user resource lookups reference-free during validation") Signed-off-by: Thomas Hellstrom Reviewed-by: Brian Paul commit 8407f8a1d940fe28c4243ad4f0cb6a44dcee88f6 Author: Thomas Hellstrom Date: Tue May 7 11:10:10 2019 +0200 drm/vmwgfx: Fix user space handle equal to zero User-space handles equal to zero are interpreted as uninitialized or illegal by some drm systems (most notably kms). This means that a dumb buffer or surface with a zero user-space handle can never be used as a kms frame-buffer. Cc: Fixes: c7eae62666ad ("drm/vmwgfx: Make the object handles idr-generated") Signed-off-by: Thomas Hellstrom Reviewed-by: Deepak Rawat commit 63cb44441826e842b7285575b96db631cc9f2505 Author: Thomas Hellstrom Date: Tue May 7 11:07:53 2019 +0200 drm/vmwgfx: Don't send drm sysfs hotplug events on initial master set This may confuse user-space clients like plymouth that opens a drm file descriptor as a result of a hotplug event and then generates a new event... Cc: Fixes: 5ea1734827bb ("drm/vmwgfx: Send a hotplug event at master_set") Signed-off-by: Thomas Hellstrom Reviewed-by: Deepak Rawat commit 53c7b63f797c96a30c21dd3b781fafaae096a12b Author: Oliver Neukum Date: Thu May 9 11:31:01 2019 +0200 USB: rio500: update Documentation Added the newly added limit and updated the text a bit Signed-off-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman commit d710734b06770814de2bfa2819420fb5df7f3a81 Author: Oliver Neukum Date: Thu May 9 11:31:00 2019 +0200 USB: rio500: simplify locking Admitting that there can be only one device allows us to drop any pretense about locking one device or a table of devices. Signed-off-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman commit e0feb73428b69322dd5caae90b0207de369b5575 Author: Oliver Neukum Date: Thu May 9 11:30:59 2019 +0200 USB: rio500: fix memory leak in close after disconnect If a disconnected device is closed, rio_close() must free the buffers. Signed-off-by: Oliver Neukum Cc: stable Signed-off-by: Greg Kroah-Hartman commit 3864d33943b4a76c6e64616280e98d2410b1190f Author: Oliver Neukum Date: Thu May 9 11:30:58 2019 +0200 USB: rio500: refuse more than one device at a time This driver is using a global variable. It cannot handle more than one device at a time. The issue has been existing since the dawn of the driver. Signed-off-by: Oliver Neukum Reported-by: syzbot+35f04d136fc975a70da4@syzkaller.appspotmail.com Cc: stable Signed-off-by: Greg Kroah-Hartman commit 0c9e8b3cad654bfc499c10b652fbf8f0b890af8f Author: Shuah Khan Date: Thu May 2 13:47:02 2019 -0600 usbip: usbip_host: fix BUG: sleeping function called from invalid context stub_probe() and stub_disconnect() call functions which could call sleeping function in invalid context whil holding busid_lock. Fix the problem by refining the lock holds to short critical sections to change the busid_priv fields. This fix restructures the code to limit the lock holds in stub_probe() and stub_disconnect(). stub_probe(): [15217.927028] BUG: sleeping function called from invalid context at mm/slab.h:418 [15217.927038] in_atomic(): 1, irqs_disabled(): 0, pid: 29087, name: usbip [15217.927044] 5 locks held by usbip/29087: [15217.927047] #0: 0000000091647f28 (sb_writers#6){....}, at: vfs_write+0x191/0x1c0 [15217.927062] #1: 000000008f9ba75b (&of->mutex){....}, at: kernfs_fop_write+0xf7/0x1b0 [15217.927072] #2: 00000000872e5b4b (&dev->mutex){....}, at: __device_driver_lock+0x3b/0x50 [15217.927082] #3: 00000000e74ececc (&dev->mutex){....}, at: __device_driver_lock+0x46/0x50 [15217.927090] #4: 00000000b20abbe0 (&(&busid_table[i].busid_lock)->rlock){....}, at: get_busid_priv+0x48/0x60 [usbip_host] [15217.927103] CPU: 3 PID: 29087 Comm: usbip Tainted: G W 5.1.0-rc6+ #40 [15217.927106] Hardware name: Dell Inc. OptiPlex 790/0HY9JP, BIOS A18 09/24/2013 [15217.927109] Call Trace: [15217.927118] dump_stack+0x63/0x85 [15217.927127] ___might_sleep+0xff/0x120 [15217.927133] __might_sleep+0x4a/0x80 [15217.927143] kmem_cache_alloc_trace+0x1aa/0x210 [15217.927156] stub_probe+0xe8/0x440 [usbip_host] [15217.927171] usb_probe_device+0x34/0x70 stub_disconnect(): [15279.182478] BUG: sleeping function called from invalid context at kernel/locking/mutex.c:908 [15279.182487] in_atomic(): 1, irqs_disabled(): 0, pid: 29114, name: usbip [15279.182492] 5 locks held by usbip/29114: [15279.182494] #0: 0000000091647f28 (sb_writers#6){....}, at: vfs_write+0x191/0x1c0 [15279.182506] #1: 00000000702cf0f3 (&of->mutex){....}, at: kernfs_fop_write+0xf7/0x1b0 [15279.182514] #2: 00000000872e5b4b (&dev->mutex){....}, at: __device_driver_lock+0x3b/0x50 [15279.182522] #3: 00000000e74ececc (&dev->mutex){....}, at: __device_driver_lock+0x46/0x50 [15279.182529] #4: 00000000b20abbe0 (&(&busid_table[i].busid_lock)->rlock){....}, at: get_busid_priv+0x48/0x60 [usbip_host] [15279.182541] CPU: 0 PID: 29114 Comm: usbip Tainted: G W 5.1.0-rc6+ #40 [15279.182543] Hardware name: Dell Inc. OptiPlex 790/0HY9JP, BIOS A18 09/24/2013 [15279.182546] Call Trace: [15279.182554] dump_stack+0x63/0x85 [15279.182561] ___might_sleep+0xff/0x120 [15279.182566] __might_sleep+0x4a/0x80 [15279.182574] __mutex_lock+0x55/0x950 [15279.182582] ? get_busid_priv+0x48/0x60 [usbip_host] [15279.182587] ? reacquire_held_locks+0xec/0x1a0 [15279.182591] ? get_busid_priv+0x48/0x60 [usbip_host] [15279.182597] ? find_held_lock+0x94/0xa0 [15279.182609] mutex_lock_nested+0x1b/0x20 [15279.182614] ? mutex_lock_nested+0x1b/0x20 [15279.182618] kernfs_remove_by_name_ns+0x2a/0x90 [15279.182625] sysfs_remove_file_ns+0x15/0x20 [15279.182629] device_remove_file+0x19/0x20 [15279.182634] stub_disconnect+0x6d/0x180 [usbip_host] [15279.182643] usb_unbind_device+0x27/0x60 Signed-off-by: Shuah Khan Cc: stable Signed-off-by: Greg Kroah-Hartman commit 9a5729f68d3a82786aea110b1bfe610be318f80a Author: Oliver Neukum Date: Thu May 9 14:41:50 2019 +0200 USB: sisusbvga: fix oops in error path of sisusb_probe The pointer used to log a failure of usb_register_dev() must be set before the error is logged. v2: fix that minor is not available before registration Signed-off-by: oliver Neukum Reported-by: syzbot+a0cbdbd6d169020c8959@syzkaller.appspotmail.com Fixes: 7b5cd5fefbe02 ("USB: SisUSB2VGA: Convert printk to dev_* macros") Cc: stable Signed-off-by: Greg Kroah-Hartman commit ea261113385ac0a71c2838185f39e8452d54b152 Author: Maximilian Luz Date: Thu May 16 17:08:31 2019 +0200 USB: Add LPM quirk for Surface Dock GigE adapter Without USB_QUIRK_NO_LPM ethernet will not work and rtl8152 will complain with r8152 : Stop submitting intr, status -71 Adding the quirk resolves this. As the dock is externally powered, this should not have any drawbacks. Signed-off-by: Maximilian Luz Cc: stable Signed-off-by: Greg Kroah-Hartman commit 31e0456de5be379b10fea0fa94a681057114a96e Author: Alan Stern Date: Tue May 7 12:39:47 2019 -0400 media: usb: siano: Fix general protection fault in smsusb The syzkaller USB fuzzer found a general-protection-fault bug in the smsusb part of the Siano DVB driver. The fault occurs during probe because the driver assumes without checking that the device has both IN and OUT endpoints and the IN endpoint is ep1. By slightly rearranging the driver's initialization code, we can make the appropriate checks early on and thus avoid the problem. If the expected endpoints aren't present, the new code safely returns -ENODEV from the probe routine. Signed-off-by: Alan Stern Reported-and-tested-by: syzbot+53f029db71c19a47325a@syzkaller.appspotmail.com CC: Reviewed-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman commit 9610450ea31eb061b9914de2bf6ced424956182d Author: Chunfeng Yun Date: Sun May 5 14:02:49 2019 +0800 usb: mtu3: fix up undefined reference to usb_debug_root When CONFIG_USB is not set, and CONFIG_USB_GADGET is set, there is an issue: ld: drivers/usb/mtu3/mtu3_debugfs.o: in function 'ssusb_debugfs_create_root': mtu3_debugfs.c:(.text+0xba3): undefined reference to 'usb_debug_root' usb_debug_root is only built when CONFIG_USB is enabled, so here drop it and use NULL instead. Reported-by: Randy Dunlap Signed-off-by: Chunfeng Yun Acked-by: Randy Dunlap # build-tested Signed-off-by: Greg Kroah-Hartman commit a03ff54460817c76105f81f3aa8ef655759ccc9a Author: Alan Stern Date: Mon May 13 13:14:29 2019 -0400 USB: Fix slab-out-of-bounds write in usb_get_bos_descriptor The syzkaller USB fuzzer found a slab-out-of-bounds write bug in the USB core, caused by a failure to check the actual size of a BOS descriptor. This patch adds a check to make sure the descriptor is at least as large as it is supposed to be, so that the code doesn't inadvertently access memory beyond the end of the allocated region when assigning to dev->bos->desc->bNumDeviceCaps later on. Signed-off-by: Alan Stern Reported-and-tested-by: syzbot+71f1e64501a309fcc012@syzkaller.appspotmail.com CC: Signed-off-by: Greg Kroah-Hartman commit aa440de3058a3ef530851f9ef373fbb5f694dbc3 Author: Aaron Ma Date: Mon May 20 22:09:10 2019 -0700 Input: elantech - enable middle button support on 2 ThinkPads Adding 2 new touchpad PNPIDs to enable middle button support. Signed-off-by: Aaron Ma Signed-off-by: Dmitry Torokhov commit 827484912e824b7c8c2e1866272084e0e1d3a2c4 Author: Peng Ma Date: Mon May 6 10:21:11 2019 +0800 dmaengine: fsl-qdma: Add improvement When an error occurs we should clean the error register then to return Signed-off-by: Peng Ma Signed-off-by: Vinod Koul commit 4e4106f5e942bff65548e82fc330d40385c89220 Author: Paul Cercueil Date: Sat May 4 23:37:57 2019 +0200 dmaengine: jz4780: Fix transfers being ACKed too soon When a multi-descriptor DMA transfer is in progress, the "IRQ pending" flag will apparently be set for that channel as soon as the last descriptor loads, way before the IRQ actually happens. This behaviour has been observed on the JZ4725B, but maybe other SoCs are affected. In the case where another DMA transfer is running into completion on a separate channel, the IRQ handler would then run the completion handler for our previous channel even if the transfer didn't actually finish. Fix this by checking in the completion handler that we're indeed done; if not the interrupted DMA transfer will simply be resumed. Signed-off-by: Paul Cercueil Signed-off-by: Vinod Koul commit 52f476a323f9efc959be1c890d0cdcf12e1582e0 Author: Dan Williams Date: Thu May 16 17:05:21 2019 -0700 libnvdimm/pmem: Bypass CONFIG_HARDENED_USERCOPY overhead Jeff discovered that performance improves from ~375K iops to ~519K iops on a simple psync-write fio workload when moving the location of 'struct page' from the default PMEM location to DRAM. This result is surprising because the expectation is that 'struct page' for dax is only needed for third party references to dax mappings. For example, a dax-mapped buffer passed to another system call for direct-I/O requires 'struct page' for sending the request down the driver stack and pinning the page. There is no usage of 'struct page' for first party access to a file via read(2)/write(2) and friends. However, this "no page needed" expectation is violated by CONFIG_HARDENED_USERCOPY and the check_copy_size() performed in copy_from_iter_full_nocache() and copy_to_iter_mcsafe(). The check_heap_object() helper routine assumes the buffer is backed by a slab allocator (DRAM) page and applies some checks. Those checks are invalid, dax pages do not originate from the slab, and redundant, dax_iomap_actor() has already validated that the I/O is within bounds. Specifically that routine validates that the logical file offset is within bounds of the file, then it does a sector-to-pfn translation which validates that the physical mapping is within bounds of the block device. Bypass additional hardened usercopy overhead and call the 'no check' versions of the copy_{to,from}_iter operations directly. Fixes: 0aed55af8834 ("x86, uaccess: introduce copy_from_iter_flushcache...") Cc: Cc: Jeff Moyer Cc: Ingo Molnar Cc: Christoph Hellwig Cc: Al Viro Cc: Thomas Gleixner Cc: Matthew Wilcox Reported-and-tested-by: Jeff Smits Acked-by: Kees Cook Acked-by: Jan Kara Signed-off-by: Dan Williams commit 591c39ffac4ab1ddf2ea6d49331cb614e0682b28 Author: Dan Carpenter Date: Mon May 13 12:22:44 2019 +0300 drm/i915/gvt: Fix an error code in ppgtt_populate_spt_by_guest_entry() "ret" is uninitialized on this path but it should be -EINVAL. Fixes: 930c8dfea4b8 ("drm/i915/gvt: Check if get_next_pt_type() always returns a valid value") Signed-off-by: Dan Carpenter Signed-off-by: Zhenyu Wang commit e175a2520c7788a323ae93f04013b8fdaa552c69 Author: Yan Zhao Date: Tue May 7 22:16:44 2019 -0400 drm/i915/gvt: do not let TRTTE and 0x4dfc write passthrough to hardware the vGPU write on TRTTE and 0x4dfc is now write to vreg first. their values all be restored hardware when context switching. Fixes: e39c5add3221 ("drm/i915/gvt: vGPU MMIO virtualization") Acked-by: Zhenyu Wang Signed-off-by: Yan Zhao Signed-off-by: Zhenyu Wang commit b6241002039118d6bea78f50f8f19195b41ab602 Author: Yan Zhao Date: Tue May 7 22:16:33 2019 -0400 drm/i915/gvt: add 0x4dfc to gen9 save-restore list 0x4dfc is in-context mmio for gen9+, but each vm have different settings need to add it to save-restore list along with other trtt registers Fixes: 178657139307 ("drm/i915/gvt: vGPU context switch") Acked-by: Zhenyu Wang Signed-off-by: Yan Zhao Signed-off-by: Zhenyu Wang commit 39947afc6c063940cbd80824e75eb0cf84591c3c Author: Yan Zhao Date: Tue May 7 22:15:00 2019 -0400 drm/i915/gvt: Tiled Resources mmios are in-context mmios for gen9+ TRVATTL3PTRDW(0x4de0-0x4de4), TRNULLDETCT(0x4de8), TRINVTILEDETCT(0x4dec), TRTTE(0x4df0), TRVADR(0x4df4) are in-context mmios for gen9+ Fixes: 178657139307 ("drm/i915/gvt: vGPU context switch") Acked-by: Zhenyu Wang Signed-off-by: Yan Zhao Signed-off-by: Zhenyu Wang commit df2ea3c296b1f3d66f297d240124c2ebd74c3db3 Author: Yan Zhao Date: Tue May 7 22:14:04 2019 -0400 drm/i915/gvt: use cmd to restore in-context mmios to hw for gen9 platform for restore-inhibit context, hardware will not load in-context mmios (engine context part) to hardware, but hardware will save the mmio values in hardware back to context image. So, in order to save correct values of vGPU back to context image, values of vGPU mmios have to be loaded into hardware first for restore-inhibit context. In this patch, the mechanism is applied to all gen9 platform. The reason excluding gen8 platforms is only because of lacking of testing on those platforms. v3: for mocs registers, goto in-context mmios save-restore path for skl platform as well (weinan li) v2: update vreg when scanning indirect context for inhibit context for gen9 Cc: Weinan Li Acked-by: Weinan Li Signed-off-by: Yan Zhao Signed-off-by: Zhenyu Wang commit a8c2d5ab9e71be3f9431c47bd45329a36e1fc650 Author: Weinan Date: Fri May 10 15:57:20 2019 +0800 drm/i915/gvt: emit init breadcrumb for gvt request "To track whether a request has started on HW, we can emit a breadcrumb at the beginning of the request and check its timeline's HWSP to see if the breadcrumb has advanced past the start of this request." It means all the request which timeline's has_init_breadcrumb is true, then the emit_init_breadcrumb process must have before emitting the real commands, otherwise, the scheduler might get a wrong state of this request during reset. If the request is exactly the guilty one, the scheduler won't terminate it with the wrong state. To avoid this, do emit_init_breadcrumb for all the requests from gvt. v2: cc to stable kernel Fixes: 8547444137ec ("drm/i915: Identify active requests") Cc: stable@vger.kernel.org Acked-by: Zhenyu Wang Signed-off-by: Weinan Signed-off-by: Zhenyu Wang commit 43d8107f0bdcaa4300e40231cc45ecbd1f77f73f Author: Harish Kasiviswanathan Date: Fri Jan 25 16:35:35 2019 -0500 drm/amdkfd: Fix compute profile switching Fix compute profile switching on process termination. Add a dedicated reference counter to keep track of entry/exit to/from compute profile. This enables switching compute profiles for other reasons than process creation or termination. Signed-off-by: Harish Kasiviswanathan Signed-off-by: Eric Huang Reviewed-by: Felix Kuehling Signed-off-by: Felix Kuehling Signed-off-by: Alex Deucher commit 05174c95b83f8aca0c47b87115abb7a6387aafa5 Author: Paolo Abeni Date: Fri May 10 19:12:33 2019 +0200 selinux: do not report error on connect(AF_UNSPEC) calling connect(AF_UNSPEC) on an already connected TCP socket is an established way to disconnect() such socket. After commit 68741a8adab9 ("selinux: Fix ltp test connect-syscall failure") it no longer works and, in the above scenario connect() fails with EAFNOSUPPORT. Fix the above explicitly early checking for AF_UNSPEC family, and returning success in that case. Reported-by: Tom Deseyn Cc: stable@vger.kernel.org Fixes: 68741a8adab9 ("selinux: Fix ltp test connect-syscall failure") Suggested-by: Paul Moore Signed-off-by: Paolo Abeni Signed-off-by: Paul Moore commit af8f3fb7fb077c9df9fed97113a031e792163def Author: Weifeng Voon Date: Tue May 21 13:38:38 2019 +0800 net: stmmac: dma channel control register need to be init first stmmac_init_chan() needs to be called before stmmac_init_rx_chan() and stmmac_init_tx_chan(). This is because if PBLx8 is to be used, "DMA_CH(#i)_Control.PBLx8" needs to be set before programming "DMA_CH(#i)_TX_Control.TxPBL" and "DMA_CH(#i)_RX_Control.RxPBL". Fixes: 47f2a9ce527a ("net: stmmac: dma channel init prepared for multiple queues") Reviewed-by: Zhang, Baoli Signed-off-by: Ong Boon Leong Signed-off-by: Weifeng Voon Signed-off-by: David S. Miller commit 46dfc3a54b4dcf9e8ff204280800f60618ec783b Author: Tan, Tee Min Date: Tue May 21 12:55:42 2019 +0800 net: stmmac: fix ethtool flow control not able to get/set Currently ethtool was not able to get/set the flow control due to a missing "!". It will always return -EOPNOTSUPP even the device is flow control supported. This patch fixes the condition check for ethtool flow control get/set function for ETHTOOL_LINK_MODE_Asym_Pause_BIT. Fixes: 3c1bcc8614db (“net: ethernet: Convert phydev advertize and supported from u32 to link mode”) Signed-off-by: Tan, Tee Min Reviewed-by: Ong Boon Leong Signed-off-by: Voon, Weifeng Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 7036e621455f4e62781b69bb76c71fddcc8664bf Author: Bjorn Andersson Date: Mon May 20 16:51:56 2019 -0700 net: qrtr: Fix message type of outgoing packets QRTR packets has a message type in the header, which is repeated in the control header. For control packets we therefor copy the type from beginning of the outgoing payload and use that as message type. For non-control messages an endianness fix introduced in v5.2-rc1 caused the type to be 0, rather than QRTR_TYPE_DATA, causing all messages to be dropped by the receiver. Fix this by converting and using qrtr_type, which will remain QRTR_TYPE_DATA for non-control messages. Fixes: 8f5e24514cbd ("net: qrtr: use protocol endiannes variable") Signed-off-by: Bjorn Andersson Signed-off-by: David S. Miller commit ba3c43851f1a3439b449593bc8b9fc100951d84c Author: Weitao Hou Date: Mon May 20 13:23:17 2019 +0800 networking: : fix typos in code comments fix accelleration to acceleration Signed-off-by: Weitao Hou Signed-off-by: David S. Miller commit e3d8e588c7cb185759994e22953e599a918e3cc3 Author: Richard Cochran Date: Sun May 19 22:15:05 2019 -0700 ptp: Fix example program to match kernel. Ever since commit 3a06c7ac24f9 ("posix-clocks: Remove interval timer facility and mmap/fasync callbacks") the possibility of PHC based posix timers has been removed. In addition it will probably never make sense to implement this functionality. This patch removes the misleading example code which seems to suggest that posix timers for PHC devices will ever be a thing. Signed-off-by: Richard Cochran Signed-off-by: David S. Miller commit 5bdd9ad875b6edf213f54ec3986ed9e8640c5cf9 Merge: f49aa1de9836 4a33d4f17a19 Author: Linus Torvalds Date: Mon May 20 17:22:17 2019 -0700 Merge tag 'kbuild-fixes-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild Pull Kbuild fixes from Masahiro Yamada: - remove unused cc-ldoption - do not check the name uniquness of builtin modules to avoid false positives * tag 'kbuild-fixes-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: kbuild: do not check name uniqueness of builtin modules kbuild: drop support for cc-ldoption commit d97c6f6830881864b29f6fd4ce80a5c409a3e1f0 Author: Weitao Hou Date: Mon May 20 12:49:38 2019 +0800 fddi: fix typos in code comments fix abord to abort Signed-off-by: Weitao Hou Signed-off-by: David S. Miller commit c0f8fa21b3dc0c6595b56bfb3e69d75274b5a0ed Merge: 9bbcdb07a535 d1abf388604f Author: David S. Miller Date: Mon May 20 20:20:20 2019 -0400 Merge branch 'kselftests-fib_rule_tests-fix' Hangbin Liu says: ==================== kselftests: fib_rule_tests: fix "from $SRC_IP iif $DEV" match testing As all the IPv4 testing addresses are in the same subnet and egress device == ingress device, to pass "from $SRC_IP iif $DEV" match test, we need enable forwarding to get the route entry. ==================== Signed-off-by: David S. Miller commit d1abf388604fffd0386ba0e4204d84451a7de9c2 Author: Hangbin Liu Date: Mon May 20 12:36:55 2019 +0800 selftests: fib_rule_tests: enable forwarding before ipv4 from/iif test As all the testing addresses are in the same subnet and egress device == ingress device. We need enable forwarding to get the route entry. Also disable rp_filer separately as some distributions enable it in startup scripts. Fixes: 65b2b4939a64 ("selftests: net: initial fib rule tests") Signed-off-by: Hangbin Liu Signed-off-by: David S. Miller commit fc82d93e57e3d41f79eff19031588b262fc3d0b6 Author: Hangbin Liu Date: Mon May 20 12:36:54 2019 +0800 selftests: fib_rule_tests: fix local IPv4 address typo The IPv4 testing address are all in 192.51.100.0 subnet. It doesn't make sense to set a 198.51.100.1 local address. Should be a typo. Fixes: 65b2b4939a64 ("selftests: net: initial fib rule tests") Signed-off-by: Hangbin Liu Reviewed-by: David Ahern Signed-off-by: David S. Miller commit 9bbcdb07a53549ed072f03a88a5012e939a64c01 Author: Chris Packham Date: Mon May 20 15:45:36 2019 +1200 tipc: Avoid copying bytes beyond the supplied data TLV_SET is called with a data pointer and a len parameter that tells us how many bytes are pointed to by data. When invoking memcpy() we need to careful to only copy len bytes. Previously we would copy TLV_LENGTH(len) bytes which would copy an extra 4 bytes past the end of the data pointer which newer GCC versions complain about. In file included from test.c:17: In function 'TLV_SET', inlined from 'test' at test.c:186:5: /usr/include/linux/tipc_config.h:317:3: warning: 'memcpy' forming offset [33, 36] is out of the bounds [0, 32] of object 'bearer_name' with type 'char[32]' [-Warray-bounds] memcpy(TLV_DATA(tlv_ptr), data, tlv_len); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ test.c: In function 'test': test.c::161:10: note: 'bearer_name' declared here char bearer_name[TIPC_MAX_BEARER_NAME]; ^~~~~~~~~~~ We still want to ensure any padding bytes at the end are initialised, do this with a explicit memset() rather than copy bytes past the end of data. Apply the same logic to TCM_SET. Signed-off-by: Chris Packham Signed-off-by: David S. Miller commit 13af14d06a876358a370c7ef6efd9fce575cc40e Merge: fa2c52be7129 563ecb8a3ccf Author: David S. Miller Date: Mon May 20 20:00:47 2019 -0400 Merge branch 'net-readx_poll_timeout' Benedikt Spranger says: ==================== Convert mdio wait function to use readx_poll_timeout() On loaded systems with a preemptible kernel both functions axienet_mdio_wait_until_ready() and xemaclite_mdio_wait() may report a false positive error return. Convert both functions to use readx_poll_timeout() to handle the situation in a safe manner. ==================== Signed-off-by: David S. Miller commit 563ecb8a3ccf041bb00d3404dee77c7f50c60039 Author: Kurt Kanzenbach Date: Sun May 19 19:59:37 2019 +0200 2/2] net: xilinx_emaclite: use readx_poll_timeout() in mdio wait function On loaded systems with a preemptible kernel the mdio_wait() function may report an error while everything is working fine: xemaclite_mdio_wait(): xemaclite_readl() -> chip not ready --> interrupt here (other work for some time / chip become ready) if (time_before_eq(end, jiffies)) --> false positive error report Replace the current code with readx_poll_timeout() which takes care of the situation. Signed-off-by: Kurt Kanzenbach Signed-off-by: Benedikt Spranger Signed-off-by: David S. Miller commit 882119ff969da4ec308d1161c78d22bc9b4a1f01 Author: Kurt Kanzenbach Date: Sun May 19 19:59:36 2019 +0200 1/2] net: axienet: use readx_poll_timeout() in mdio wait function On loaded systems with a preemptible kernel the mdio_wait() function may report an error while everything is working fine: axienet_mdio_wait_until_ready(): axienet_ior() -> chip not ready --> interrupt here (other work for some time / chip become ready) if (time_before_eq(end, jiffies)) --> false positive error report Replace the current code with readx_poll_timeout() which take care of the situation. Signed-off-by: Kurt Kanzenbach Signed-off-by: Benedikt Spranger Signed-off-by: David S. Miller commit 4a33d4f17a19ece50ccf5ccbb8bc4ee539fb492e Author: Masahiro Yamada Date: Mon May 20 11:54:37 2019 +0900 kbuild: do not check name uniqueness of builtin modules I just thought it was a good idea to scan builtin.modules in the name uniqueness checking, but a couple of false positives were found. Stephen reported a false positive for ppc64_defconfig: warning: same basename if the following are built as modules: arch/powerpc/platforms/powermac/nvram.ko drivers/char/nvram.ko The former is never built as a module as you see in arch/powerpc/platforms/powermac/Makefile: # CONFIG_NVRAM is an arch. independent tristate symbol, for pmac32 we really # need this to be a bool. Cheat here and pretend CONFIG_NVRAM=m is really # CONFIG_NVRAM=y obj-$(CONFIG_NVRAM:m=y) += nvram.o Another example of false positive is arm64 defconfig: warning: same basename if the following are built as modules: arch/arm64/lib/crc32.ko lib/crc32.ko It is true CONFIG_CRC32 is a tristate option but it is always 'y' since it is select'ed by ARM64. Hence, neither of them is built as a module for the arm64 build. From the above, modules.builtin essentially contains false positives. I do not think it is a big deal as far as kmod is concerned, but false positive warnings in the kernel build make people upset. It is better to not check it. Even without builtin.modules checked, we have enough (and more solid) test coverage with allmodconfig. While I touched this part, I replaced the sed code with neater one provided by Stephen. Link: https://lkml.org/lkml/2019/5/19/120 Link: https://lkml.org/lkml/2019/5/19/123 Fixes: 3a48a91901c5 ("kbuild: check uniqueness of module names") Reported-by: Stephen Rothwell Signed-off-by: Masahiro Yamada Acked-by: Arnd Bergmann Reviewed-by: Greg Kroah-Hartman commit 7bf7eac8d648057519adb6fce1e31458c902212c Author: Dan Williams Date: Thu May 16 13:26:29 2019 -0700 dax: Arrange for dax_supported check to span multiple devices Pankaj reports that starting with commit ad428cdb525a "dax: Check the end of the block-device capacity with dax_direct_access()" device-mapper no longer allows dax operation. This results from the stricter checks in __bdev_dax_supported() that validate that the start and end of a block-device map to the same 'pagemap' instance. Teach the dax-core and device-mapper to validate the 'pagemap' on a per-target basis. This is accomplished by refactoring the bdev_dax_supported() internals into generic_fsdax_supported() which takes a sector range to validate. Consequently generic_fsdax_supported() is suitable to be used in a device-mapper ->iterate_devices() callback. A new ->dax_supported() operation is added to allow composite devices to split and route upper-level bdev_dax_supported() requests. Fixes: ad428cdb525a ("dax: Check the end of the block-device...") Cc: Cc: Ira Weiny Cc: Dave Jiang Cc: Keith Busch Cc: Matthew Wilcox Cc: Vishal Verma Cc: Heiko Carstens Cc: Martin Schwidefsky Reviewed-by: Jan Kara Reported-by: Pankaj Gupta Reviewed-by: Pankaj Gupta Tested-by: Pankaj Gupta Tested-by: Vaibhav Jain Reviewed-by: Mike Snitzer Signed-off-by: Dan Williams commit c01dafad77fea8d64c4fdca0a6031c980842ad65 Author: Qian Cai Date: Thu May 16 12:04:53 2019 -0400 libnvdimm: Fix compilation warnings with W=1 Several places (dimm_devs.c, core.c etc) include label.h but only label.c uses NSINDEX_SIGNATURE, so move its definition to label.c instead. In file included from drivers/nvdimm/dimm_devs.c:23: drivers/nvdimm/label.h:41:19: warning: 'NSINDEX_SIGNATURE' defined but not used [-Wunused-const-variable=] Also, some places abuse "/**" which is only reserved for the kernel-doc. drivers/nvdimm/bus.c:648: warning: cannot understand function prototype: 'struct attribute_group nd_device_attribute_group = ' drivers/nvdimm/bus.c:677: warning: cannot understand function prototype: 'struct attribute_group nd_numa_attribute_group = ' Those are just some member assignments for the "struct attribute_group" instances and it can't be expressed in the kernel-doc. Reviewed-by: Vishal Verma Signed-off-by: Qian Cai Signed-off-by: Dan Williams commit 7210e060155b9cf557fb13128353c3e494fa5ed3 Author: Kees Cook Date: Mon May 20 11:50:42 2019 -0700 gcc-plugins: Fix build failures under Darwin host The gcc-common.h file did not take into account certain macros that might have already been defined in the build environment. This updates the header to avoid redefining the macros, as seen on a Darwin host using gcc 4.9.2: HOSTCXX -fPIC scripts/gcc-plugins/arm_ssp_per_task_plugin.o - due to: scripts/gcc-plugins/gcc-common.h In file included from scripts/gcc-plugins/arm_ssp_per_task_plugin.c:3:0: scripts/gcc-plugins/gcc-common.h:153:0: warning: "__unused" redefined ^ In file included from /usr/include/stdio.h:64:0, from /Users/hns/Documents/Projects/QuantumSTEP/System/Library/Frameworks/System.framework/Versions-jessie/x86_64-apple-darwin15.0.0/gcc/arm-linux-gnueabi/bin/../lib/gcc/arm-linux-gnueabi/4.9.2/plugin/include/system.h:40, from /Users/hns/Documents/Projects/QuantumSTEP/System/Library/Frameworks/System.framework/Versions-jessie/x86_64-apple-darwin15.0.0/gcc/arm-linux-gnueabi/bin/../lib/gcc/arm-linux-gnueabi/4.9.2/plugin/include/gcc-plugin.h:28, from /Users/hns/Documents/Projects/QuantumSTEP/System/Library/Frameworks/System.framework/Versions-jessie/x86_64-apple-darwin15.0.0/gcc/arm-linux-gnueabi/bin/../lib/gcc/arm-linux-gnueabi/4.9.2/plugin/include/plugin.h:23, from scripts/gcc-plugins/gcc-common.h:9, from scripts/gcc-plugins/arm_ssp_per_task_plugin.c:3: /usr/include/sys/cdefs.h:161:0: note: this is the location of the previous definition ^ Reported-and-tested-by: "H. Nikolaus Schaller" Fixes: 189af4657186 ("ARM: smp: add support for per-task stack canaries") Cc: stable@vger.kernel.org Signed-off-by: Kees Cook commit e6d319f68d4dcf355e89a7b21368c47c004a14c2 Author: Sven Eckelmann Date: Sat May 11 22:19:16 2019 +0200 scripts/spdxcheck.py: Fix path to deprecated licenses The directory name for other licenses was changed to "deprecated" in commit 62be257e986d ("LICENSES: Rename other to deprecated"). But it was not changed for spdxcheck.py. As result, checkpatch failed with FAIL: "Blob or Tree named 'other' not found" Traceback (most recent call last): File "scripts/spdxcheck.py", line 240, in spdx = read_spdxdata(repo) File "scripts/spdxcheck.py", line 41, in read_spdxdata for el in lictree[d].traverse(): File "/usr/lib/python2.7/dist-packages/git/objects/tree.py", line 298, in __getitem__ return self.join(item) File "/usr/lib/python2.7/dist-packages/git/objects/tree.py", line 244, in join raise KeyError(msg % file) KeyError: "Blob or Tree named 'other' not found" Fixes: 62be257e986d ("LICENSES: Rename other to deprecated") Signed-off-by: Sven Eckelmann Reviewed-by: Christoph Hellwig Signed-off-by: Jonathan Corbet commit fba388032cf260761e5e9b05e8c0dd93417a00b4 Author: Randy Dunlap Date: Sat May 18 21:29:58 2019 -0700 counter: fix Documentation build error due to incorrect source file name Fix kernel-doc build error in Documentation/driver-api/generic-counter.rst of incorrect source file name. Fixes this warning and error: Error: Cannot open file ../drivers/counter/generic-counter.c WARNING: kernel-doc '../scripts/kernel-doc -rst -enable-lineno -export ../drivers/counter/generic-counter.c' failed with return code 2 Fixes: 09e7d4ed8991 ("docs: Add Generic Counter interface documentation") Signed-off-by: Randy Dunlap Acked-by: William Breathitt Gray Signed-off-by: Jonathan Corbet commit fa2c52be7129c7370e6089a8162c7119a78b9a1c Author: Gustavo A. R. Silva Date: Mon May 20 09:51:05 2019 -0500 vlan: Mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warning: net/8021q/vlan_dev.c: In function ‘vlan_dev_ioctl’: net/8021q/vlan_dev.c:374:6: warning: this statement may fall through [-Wimplicit-fallthrough=] if (!net_eq(dev_net(dev), &init_net)) ^ net/8021q/vlan_dev.c:376:2: note: here case SIOCGMIIPHY: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Signed-off-by: David S. Miller commit 02596252db782334eac73a14415b1c940a13e420 Author: Gustavo A. R. Silva Date: Mon May 20 09:44:49 2019 -0500 macvlan: Mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warning: drivers/net/macvlan.c: In function ‘macvlan_do_ioctl’: drivers/net/macvlan.c:839:6: warning: this statement may fall through [-Wimplicit-fallthrough=] if (!net_eq(dev_net(dev), &init_net)) ^ drivers/net/macvlan.c:841:2: note: here case SIOCGHWTSTAMP: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Signed-off-by: David S. Miller commit 135dd9594f127c8a82d141c3c8430e9e2143216a Author: Erez Alfasi Date: Mon May 20 17:42:52 2019 +0300 net/mlx4_en: ethtool, Remove unsupported SFP EEPROM high pages query Querying EEPROM high pages data for SFP module is currently not supported by our driver but is still tried, resulting in invalid FW queries. Set the EEPROM ethtool data length to 256 for SFP module to limit the reading for page 0 only and prevent invalid FW queries. Fixes: 7202da8b7f71 ("ethtool, net/mlx4_en: Cable info, get_module_info/eeprom ethtool support") Signed-off-by: Erez Alfasi Signed-off-by: Tariq Toukan Signed-off-by: David S. Miller commit 5cd213b0fec640a46adc5e6e4dfc7763aa54b3b2 Author: Darrick J. Wong Date: Mon May 20 11:25:39 2019 -0700 xfs: don't reserve per-AG space for an internal log It turns out that the log can consume nearly all the space in an AG, and when this happens this it's possible that there will be less free space in the AG than the reservation would try to hide. On a debug kernel this can trigger an ASSERT in xfs/250: XFS: Assertion failed: xfs_perag_resv(pag, XFS_AG_RESV_METADATA)->ar_reserved + xfs_perag_resv(pag, XFS_AG_RESV_RMAPBT)->ar_reserved <= pag->pagf_freeblks + pag->pagf_flcount, file: fs/xfs/libxfs/xfs_ag_resv.c, line: 319 The log is permanently allocated, so we know we're never going to have to expand the btrees to hold any records associated with the log space. We therefore can treat the space as if it doesn't exist. Signed-off-by: Darrick J. Wong Reviewed-by: Eric Sandeen commit 057f91645cef412fe460b17fa50726c8a1c5921c Author: Yintian Tao Date: Thu May 16 13:07:26 2019 +0800 drm/amdgpu: skip fw pri bo alloc for SRIOV PSP fw primary buffer is not used under SRIOV. Under SRIOV, VBIOS or hypervisor driver will load psp sos and psp sysdrv. Therefore, we don't need to allocate memory for it. v2: remove superfluous check for amdgpu_bo_free_kernel(). Signed-off-by: Yintian Tao Signed-off-by: Monk Liu Acked-by: Christian König Signed-off-by: Alex Deucher commit 029f41535ac5e07e1fa17ca963a9f9fd05fb665f Author: Dan Carpenter Date: Wed May 15 12:51:30 2019 +0300 drm/amd/powerplay: fix locking in smu_feature_set_supported() There is a typo so the code unlocks twice instead of taking the lock and then releasing it. Fixes: f14a323db5b0 ("drm/amd/powerplay: implement update enabled feature state to smc for smu11") Signed-off-by: Dan Carpenter Reviewed-by: Huang Rui Signed-off-by: Alex Deucher commit 067e75b3d786b6bd7863e86f9a8025284be87ac8 Author: Alex Deucher Date: Fri May 17 09:31:43 2019 -0500 drm/amdgpu/gmc9: set vram_width properly for SR-IOV For SR-IOV, vram_width can't be read from ATOM as RAVEN, and DF related registers is not readable, so hardcord is the only way to set the correct vram_width. Reviewed-by: Yintian Tao Signed-off-by: Trigger Huang Signed-off-by: Yintian Tao Signed-off-by: Alex Deucher commit b2279bcffa72304de8ff591cb60446322570c0b5 Author: Stefan Wahren Date: Wed May 1 21:47:35 2019 +0200 MAINTAINERS: Update Stefan Wahren email address I2SE has been acquired, so i decided to use my private address now. Signed-off-by: Stefan Wahren Signed-off-by: Florian Fainelli commit 5887a59961e2295c5b02f39dbc0ecf9212709b7b Author: Alex Deucher Date: Fri May 17 09:21:13 2019 -0500 drm/amdgpu/soc15: skip reset on init Not necessary on soc15 and breaks driver reload on server cards. Acked-by: Amber Lin Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org commit 379109351f4f6f2405cf54e7a296055f589c3ad1 Author: Flora Cui Date: Fri May 17 11:33:56 2019 +0800 drm/amdgpu: keep stolen memory on picasso otherwise screen corrupts during modprobe. Signed-off-by: Flora Cui Reviewed-by: Feifei Xu Signed-off-by: Alex Deucher commit 526f5b851a96566803ee4bee60d0a34df56c77f8 Author: Junwei Hu Date: Mon May 20 14:43:59 2019 +0800 tipc: fix modprobe tipc failed after switch order of device registration Error message printed: modprobe: ERROR: could not insert 'tipc': Address family not supported by protocol. when modprobe tipc after the following patch: switch order of device registration, commit 7e27e8d6130c ("tipc: switch order of device registration to fix a crash") Because sock_create_kern(net, AF_TIPC, ...) called by tipc_topsrv_create_listener() in the initialization process of tipc_init_net(), so tipc_socket_init() must be execute before that. Meanwhile, tipc_net_id need to be initialized when sock_create() called, and tipc_socket_init() is no need to be called for each namespace. I add a variable tipc_topsrv_net_ops, and split the register_pernet_subsys() of tipc into two parts, and split tipc_socket_init() with initialization of pernet params. By the way, I fixed resources rollback error when tipc_bcast_init() failed in tipc_init_net(). Fixes: 7e27e8d6130c ("tipc: switch order of device registration to fix a crash") Signed-off-by: Junwei Hu Reported-by: Wang Wang Reported-by: syzbot+1e8114b61079bfe9cbc5@syzkaller.appspotmail.com Reviewed-by: Kang Zhou Reviewed-by: Suanming Mou Signed-off-by: David S. Miller commit 2c82c7e724ff51cab78e1afd5c2aaa31994fe41e Author: Florian Westphal Date: Tue Apr 30 14:53:11 2019 +0200 netfilter: nf_tables: fix oops during rule dump We can oops in nf_tables_fill_rule_info(). Its not possible to fetch previous element in rcu-protected lists when deletions are not prevented somehow: list_del_rcu poisons the ->prev pointer value. Before rcu-conversion this was safe as dump operations did hold nfnetlink mutex. Pass previous rule as argument, obtained by keeping a pointer to the previous rule during traversal. Fixes: d9adf22a291883 ("netfilter: nf_tables: use call_rcu in netlink dumps") Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit 0a5a9c276c335870a1cecc4f02b76d6d6f663c8b Author: Kent Russell Date: Mon May 13 09:00:05 2019 -0400 drm/amdkfd: Add missing Polaris10 ID This was added to amdgpu but was missed in amdkfd Signed-off-by: Kent Russell Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher Cc: stable@vger.kernel.rg commit 55143dc23ca4792868ea8c17bce65ca7b3d3e8c4 Author: Harry Wentland Date: Mon Apr 29 09:39:15 2019 -0400 drm/amd/display: Don't load DMCU for Raven 1 [WHY] Some early Raven boards had a bad SBIOS that doesn't play nicely with the DMCU FW. We thought the issues were fixed by ignoring errors on DMCU load but that doesn't seem to be the case. We've still seen reports of users unable to boot their systems at all. [HOW] Disable DMCU load on Raven 1. Only load it for Raven 2 and Picasso. Signed-off-by: Harry Wentland Reviewed-by: Nicholas Kazlauskas Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org commit ada637e70f96862ff5ba20a169506b58cf567db9 Author: Harry Wentland Date: Tue May 14 09:05:37 2019 -0400 drm/amd/display: Add ASICREV_IS_PICASSO [WHY] We only want to load DMCU FW on Picasso and Raven 2, not on Raven 1. Signed-off-by: Harry Wentland Reviewed-by: Nicholas Kazlauskas Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org commit a8c715b4dd73c26a81a9cc8dc792aa715d8b4bb2 Author: Eugeniy Paltsev Date: Mon May 13 20:28:00 2019 +0300 ARC: mm: SIGSEGV userspace trying to access kernel virtual memory As of today if userspace process tries to access a kernel virtual addres (0x7000_0000 to 0x7ffff_ffff) such that a legit kernel mapping already exists, that process hangs instead of being killed with SIGSEGV Fix that by ensuring that do_page_fault() handles kenrel vaddr only if in kernel mode. And given this, we can also simplify the code a bit. Now a vmalloc fault implies kernel mode so its failure (for some reason) can reuse the @no_context label and we can remove @bad_area_nosemaphore. Reproduce user test for original problem: ------------------------>8----------------- #include #include int main(int argc, char *argv[]) { volatile uint32_t temp; temp = *(uint32_t *)(0x70000000); } ------------------------>8----------------- Cc: Signed-off-by: Eugeniy Paltsev Signed-off-by: Vineet Gupta commit 89c92142f75eb80064f5b9f1111484b1b4d81790 Author: Vineet Gupta Date: Tue May 7 10:45:24 2019 -0700 ARC: fix build warnings | arch/arc/mm/tlb.c:914:2: warning: variable length array 'pd0' is used [-Wvla] | arch/arc/include/asm/cmpxchg.h:95:29: warning: value computed is not used [-Wunused-value] Signed-off-by: Vineet Gupta commit 26d65140e92a626e39c73c9abf769fd174bf5076 Author: Martin Blumenstingl Date: Sun May 12 21:39:36 2019 +0200 ARM: dts: meson8b: fix the operating voltage of the Mali GPU Amlogic's vendor kernel defines an OPP for the GPU on Meson8b boards with a voltage of 1.15V. It turns out that the vendor kernel relies on the bootloader to set up the voltage. The bootloader however sets a fixed voltage of 1.10V. Amlogic's patched u-boot sources (uboot-2015-01-15-23a3562521) confirm this: $ grep -oiE "VDD(EE|AO)_VOLTAGE[ ]+[0-9]+" board/amlogic/configs/m8b_* board/amlogic/configs/m8b_m100_v1.h:VDDAO_VOLTAGE 1100 board/amlogic/configs/m8b_m101_v1.h:VDDAO_VOLTAGE 1100 board/amlogic/configs/m8b_m102_v1.h:VDDAO_VOLTAGE 1100 board/amlogic/configs/m8b_m200_v1.h:VDDAO_VOLTAGE 1100 board/amlogic/configs/m8b_m201_v1.h:VDDEE_VOLTAGE 1100 board/amlogic/configs/m8b_m201_v1.h:VDDEE_VOLTAGE 1100 board/amlogic/configs/m8b_m202_v1.h:VDDEE_VOLTAGE 1100 Another hint at this is the VDDEE voltage on the EC-100 and Odroid-C1 boards. The VDDEE regulator supplies the Mali GPU. It's basically a copy of the VCCK (CPU supply) which means it's limited to 0.86V to 1.14V. Update the operating voltage of the Mali GPU on Meson8b to 1.10V so it matches with what the vendor u-boot sets. Fixes: c3ea80b6138cae ("ARM: dts: meson8b: add the Mali-450 MP2 GPU") Signed-off-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit f3b7cbe2200f867e167ae701d7164b58406e9c90 Author: Martin Blumenstingl Date: Sat Apr 20 11:32:58 2019 +0200 ARM: dts: meson8b: drop undocumented property from the Mali GPU node Drop the undocumented "switch-delay" which is a left-over from my experiments with an early lima kernel driver when it was still out-of-tree and required this property on Amlogic SoCs. Fixes: c3ea80b6138cae ("ARM: dts: meson8b: add the Mali-450 MP2 GPU") Signed-off-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit 01dfdd7b4693496854ac92d1ebfb18d7b108f777 Author: Martin Blumenstingl Date: Sat Apr 20 11:32:57 2019 +0200 ARM: dts: meson8: fix GPU interrupts and drop an undocumented property The interrupts in Amlogic's vendor kernel sources are all contiguous. There are two typos leading to pp2 and pp4 as well as ppmmu2 and ppmmu4 incorrectly sharing the same interrupt line. Fix this by using interrupt 170 for pp2 and 171 for ppmmu2. Also drop the undocumented "switch-delay" which is a left-over from my experiments with an early lima kernel driver when it was still out-of-tree and required this property on Amlogic SoCs. Fixes: 7d3f6b536e72c9 ("ARM: dts: meson8: add the Mali-450 MP6 GPU") Signed-off-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit f49aa1de98363b6c5fba4637678d6b0ba3d18065 Merge: 78e03651849f 4e9845eff5a8 Author: Linus Torvalds Date: Mon May 20 09:52:35 2019 -0700 Merge tag 'for-5.2-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux Pull btrfs fixes from David Sterba: "Notable highlights: - fixes for some long-standing bugs in fsync that were quite hard to catch but now finaly fixed - some fixups to error handling paths that did not properly clean up (locking, memory) - fix to space reservation for inheriting properties" * tag 'for-5.2-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: Btrfs: tree-checker: detect file extent items with overlapping ranges Btrfs: fix race between ranged fsync and writeback of adjacent ranges Btrfs: avoid fallback to transaction commit during fsync of files with holes btrfs: extent-tree: Fix a bug that btrfs is unable to add pinned bytes btrfs: sysfs: don't leak memory when failing add fsid btrfs: sysfs: Fix error path kobject memory leak Btrfs: do not abort transaction at btrfs_update_root() after failure to COW path btrfs: use the existing reserved items for our first prop for inheritance btrfs: don't double unlock on error in btrfs_punch_hole btrfs: Check the compression level before getting a workspace commit e8bd76dccd792b371a934336c3e7d8c389755d9f Author: Florian Fainelli Date: Thu May 9 10:11:35 2019 -0700 ARM: dts: bcm: Add missing device_type = "memory" property During the removal of the skeleton.dtsi file with commit abe60a3a7afb ("ARM: dts: Kill off skeleton{64}.dtsi") a number of Broadcom SoCs were converted, but a few were left unoticed, now causing boot failures with v5.1 since the kernel cannot find suitable memory. Updating the .dtsi files with the property will be done next, since there are some memory nodes that do not follow the proper naming convention and lack an unit name. Fixes: abe60a3a7afb ("ARM: dts: Kill off skeleton{64}.dtsi") Reported-by: Kevin Hilman Signed-off-by: Florian Fainelli commit 6b23af0783a54efb348f0bd781b7850636023dbb Author: Florian Fainelli Date: Fri Apr 12 10:15:26 2019 -0700 soc: bcm: brcmstb: biuctrl: Register writes require a barrier The BIUCTRL register writes require that a data barrier be inserted after comitting the write to the register for the block to latch in the recently written values. Reads have no such requirement and are not changed. Fixes: 34642650e5bc ("soc: Move brcmstb to bcm/brcmstb") Signed-off-by: Florian Fainelli commit 490cad5a3ad6ef0bfd3168a5063140b982f3b22a Author: Florian Fainelli Date: Sun Apr 7 14:19:07 2019 -0700 soc: brcmstb: Fix error path for unsupported CPUs In case setup_hifcpubiuctrl_regs() returns an error, because of e.g: an unsupported CPU type, just catch that error and return instead of blindly continuing with the initialization. This fixes a NULL pointer de-reference with the code continuing without having a proper array of registers to use. Fixes: 22f7a9116eba ("soc: brcmstb: Correct CPU_CREDIT_REG offset for Brahma-B53 CPUs") Signed-off-by: Florian Fainelli commit 4ee23cd76c0ce8622976b3da0e2bc89e6d94f6d4 Merge: f29f24b5568f e4f50c8d1047 Author: Tony Lindgren Date: Mon May 20 08:33:03 2019 -0700 Merge branch 'omap-for-v5.2/ti-sysc' into fixes commit f29f24b5568fd6169e0363c78f1a80db38d0e7e9 Merge: 1ba12322e2f0 34b1b8061de3 Author: Tony Lindgren Date: Mon May 20 08:32:11 2019 -0700 Merge branch 'fixes-dra7' into fixes commit a491cc8e1597ea25803191cded49d3686702a406 Author: Chris Wilson Date: Wed May 15 14:00:49 2019 +0100 drm/i915: Truly bump ready tasks ahead of busywaits In commit b7404c7ecb38 ("drm/i915: Bump ready tasks ahead of busywaits"), I tried cutting a corner in order to not install a signal for each of our dependencies, and only listened to requests on which we were intending to busywait. The compromise that was made was that instead of then being able to promote the request with a full NOSEMAPHORE like its non-busywaiting brethren, as we had not ensured we had cleared the semaphore chain, we settled for only using the NEWCLIENT boost. With an over saturated system with multiple NEWCLIENTS in flight at any time, this was found to be an inadequate promotion and left us with a much poorer scheduling order than prior to using semaphores. The outcome of this patch, is that all requests have NOSEMAPHORE priority when they have no dependencies and are ready to run and not busywait, restoring the pre-semaphore ordering on saturated systems. We can demonstrate the effect of poor scheduling order by oversaturating the system using gem_wsim on a system with multiple vcs engines (i.e running the same workloads across more clients than required for peak throughput, e.g. media_load_balance_17i7.wsim -c4 -b context): x v5.1 (normalized) + tip * fix +------------------------------------------------------------------------+ | x | | x | | x | | x | | %x | | %%x | | %%x | | %%x | | %%x | | %%x | | %%x | | %%x | | %%x | | %%x | | %%x | | %#x | | %#x | | %#x | | %#x | | %#x | | + %#xx | | + %#xx | | + %%#xx | | + %%#xx | | + %%#xx | | + %%#xx | | + %%##x | | +++ %%##x | | +++ %%##x | | +++ %%##x | | ++++ %%##x | | ++++ %%##x | | ++++ %%##xx | | ++++ %###xx | | ++++ %###xx | | ++++ %###xx | | ++++ %###xx | | ++++ + %#O#xx | | ++++ + %#O#xx | | ++++++ + %#O#xx | | ++++++++++ %OOOxxx| | ++++++++++ + %#OOO#xx| | + ++++++++++++ ++ +++++ + ++ @@OOOO#xx| | |A_| | ||__________M_______A____________________| | | |A_| | +------------------------------------------------------------------------+ N Min Max Median Avg Stddev x 120 0.99456 1.00628 0.999985 1.0001545 0.0024387139 + 120 0.873021 1.00037 0.884134 0.90148752 0.039190862 Difference at 99.5% confidence -0.098667 +/- 0.0110762 -9.86517% +/- 1.10745% (Student's t, pooled s = 0.0277657) % 120 0.990207 1.00165 0.9970265 0.99699748 0.0021024 Difference at 99.5% confidence -0.003157 +/- 0.000908245 -0.315651% +/- 0.0908105% (Student's t, pooled s = 0.00227678) Fixes: b7404c7ecb38 ("drm/i915: Bump ready tasks ahead of busywaits") Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Cc: Dmitry Rogozhkin Cc: Dmitry Ermilov Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190515130052.4475-2-chris@chris-wilson.co.uk (cherry picked from commit 17db337f5098d29415314c4a588b842fc684394b) Signed-off-by: Joonas Lahtinen commit 34b1b8061de3215208db9accfe60cc3f5b40178f Author: Keerthy Date: Fri May 17 06:44:09 2019 +0530 ARM: dts: dra71x: Disable usb4_tm target module usb4_tm is unsed on dra71 and accessing the module with ti,sysc is causing a boot crash hence disable its target module. Fixes: 549fce068a3112 ("ARM: dts: dra7: Add l4 interconnect hierarchy and ti-sysc data") Signed-off-by: Keerthy Signed-off-by: Tony Lindgren commit c80274bb5882ea1493551df7768977c5a43aa9d9 Author: Chris Wilson Date: Wed May 15 14:00:51 2019 +0100 drm/i915: Downgrade NEWCLIENT to non-preemptive Commit 1413b2bc0717 ("drm/i915: Trim NEWCLIENT boosting") had the intended consequence of not allowing a sequence of work that merely crossed into a new engine the privilege to be promoted to NEWCLIENT status. It also had the unintended consequence of actually making NEWCLIENT effective on heavily oversubscribed transcode machines and impacting upon their throughput. If we consider a client packet composed of (rcsA, rcsB, vcs) and 30 of those clients, using the NEWCLIENT boost that will be scheduled as rcsA x 30, (rcsB, vcs) x 30 where as before it would have been (rcsA, rcsB, vcs) x 30 That is with NEWCLIENT only boosting the first request of each client, we would execute all rcsA requests prior to running on the vcs engines; acruing a lot of dead time as compared to the previous case where the vcs engine would be started in parallel to processing the second client. The previous patch has the effect of delaying submission until it is required by a third party (either the user with an explicit wait, or by another client/engine). We reduce the NEWCLIENT bump to a mere WAIT, which has the effect of removing its preemptive grant and reducing it to the same level as any other user interaction -- that it will not be promoted above the interengine dependencies, and so preventing NEWCLIENTS from starving other engines. This a large nerf to the rrul properties of the current NEWCLIENT, but it still does give prioritised submission to new requests from light workloads. References: b16c765122f9 ("drm/i915: Priority boost for new clients") Fixes: 1413b2bc0717 ("drm/i915: Trim NEWCLIENT boosting") # customer impact Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Cc: Dmitry Rogozhkin Cc: Dmitry Ermilov Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190515130052.4475-4-chris@chris-wilson.co.uk (cherry picked from commit 68fc728b01fcc93b26d52f6e884e738962a49a66) Signed-off-by: Joonas Lahtinen commit fe9edfe648ac444150ec95da1fb10e2728cc9789 Author: Keerthy Date: Fri May 17 06:44:08 2019 +0530 ARM: dts: dra71x: Disable rtc target module Introduce dra71x.dtsi to include dra71x specific changes. rtc is fused out on dra71 and accessing target module register is causing a boot crash hence disable it. Fixes: 549fce068a3112 ("ARM: dts: dra7: Add l4 interconnect hierarchy and ti-sysc data") Signed-off-by: Keerthy Signed-off-by: Tony Lindgren commit 9981927cc9e10fb4dbc24b2a5f8c17ab133859a0 Author: Chris Wilson Date: Wed May 15 14:00:50 2019 +0100 drm/i915: Bump signaler priority on adding a waiter The handling of the no-preemption priority level imposes the restriction that we need to maintain the implied ordering even though preemption is disabled. Otherwise we may end up with an AB-BA deadlock across multiple engine due to a real preemption event reordering the no-preemption WAITs. To resolve this issue we currently promote all requests to WAIT on unsubmission, however this interferes with the timeslicing requirement that we do not apply any implicit promotion that will defeat the round-robin timeslice list. (If we automatically promote the active request it will go back to the head of the queue and not the tail!) So we need implicit promotion to prevent reordering around semaphores where we are not allowed to preempt, and we must avoid implicit promotion on unsubmission. So instead of at unsubmit, if we apply that implicit promotion on adding the dependency, we avoid the semaphore deadlock and we also reduce the gains made by the promotion for user space waiting. Furthermore, by keeping the earlier dependencies at a higher level, we reduce the search space for timeslicing without altering runtime scheduling too badly (no dependencies at all will be assigned a higher priority for rrul). v2: Limit the bump to external edges (as originally intended) i.e. between contexts and out to the user. Testcase: igt/gem_concurrent_blit Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190515130052.4475-3-chris@chris-wilson.co.uk (cherry picked from commit 6e7eb7a80769e7250e31652b96918cf7f3e0d285) Signed-off-by: Joonas Lahtinen commit b07bd27e02b9108ce8412cc2dc6faf621f57d224 Author: Keerthy Date: Fri May 17 06:44:07 2019 +0530 ARM: dts: dra76x: Disable usb4_tm target module usb4_tm is unsed on dra76 and accessing the module with ti,sysc is causing a boot crash hence disable its target module. Fixes: 549fce068a3112 ("ARM: dts: dra7: Add l4 interconnect hierarchy and ti-sysc data") Signed-off-by: Keerthy Signed-off-by: Tony Lindgren commit f312c23ff92319f5f242b69d93885c53f92030b5 Author: Chris Wilson Date: Mon May 13 13:01:01 2019 +0100 drm/i915: Pass i915_sched_node around internally To simplify the next patch, update bump_priority and schedule to accept the internal i915_sched_ndoe directly and not expect a request pointer. add/remove: 0/0 grow/shrink: 2/1 up/down: 8/-15 (-7) Function old new delta i915_schedule_bump_priority 109 113 +4 i915_schedule 50 54 +4 __i915_schedule 922 907 -15 v2: Adopt node for the old rq local, since it no longer is a request but the origin node. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190513120102.29660-2-chris@chris-wilson.co.uk (cherry picked from commit 52c76fb18a34fc08dd06f32b9fc83f1375f083ee) Signed-off-by: Joonas Lahtinen commit 06b2b1a40e3a9a1ea80b4c51885d863ca194ef3f Author: Chris Wilson Date: Mon May 13 13:01:00 2019 +0100 drm/i915: Rearrange i915_scheduler.c To avoid pulling in a forward declaration in the next patch, move the i915_sched_node handling to after the main dfs of the scheduler. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190513120102.29660-1-chris@chris-wilson.co.uk (cherry picked from commit 5ae87063c162679a61f2141041d0918cc3045daf) Signed-off-by: Joonas Lahtinen commit f7b9cb944a5d41fdede4e928a47e9d5fce5169d7 Author: Keerthy Date: Fri May 17 06:44:06 2019 +0530 ARM: dts: dra76x: Disable rtc target module rtc is fused out on dra76 and accessing target module register is causing a boot crash hence disable it. Fixes: 549fce068a3112 ("ARM: dts: dra7: Add l4 interconnect hierarchy and ti-sysc data") Signed-off-by: Keerthy Signed-off-by: Tony Lindgren commit 78e03651849fd3e8aa9ab3288bc1d3726c4c6129 Merge: a188339ca5a3 6a0a923dfa14 Author: Linus Torvalds Date: Mon May 20 08:21:07 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller:1) Use after free in __dev_map_entry_free(), from Eric Dumazet. 1) Use after free in __dev_map_entry_free(), from Eric Dumazet. 2) Fix TCP retransmission timestamps on passive Fast Open, from Yuchung Cheng. 3) Orphan NFC, we'll take the patches directly into my tree. From Johannes Berg. 4) We can't recycle cloned TCP skbs, from Eric Dumazet. 5) Some flow dissector bpf test fixes, from Stanislav Fomichev. 6) Fix RCU marking and warnings in rhashtable, from Herbert Xu. 7) Fix some potential fib6 leaks, from Eric Dumazet. 8) Fix a _decode_session4 uninitialized memory read bug fix that got lost in a merge. From Florian Westphal. 9) Fix ipv6 source address routing wrt. exception route entries, from Wei Wang. 10) The netdev_xmit_more() conversion was not done %100 properly in mlx5 driver, fix from Tariq Toukan. 11) Clean up botched merge on netfilter kselftest, from Florian Westphal. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (74 commits) of_net: fix of_get_mac_address retval if compiled without CONFIG_OF net: fix kernel-doc warnings for socket.c net: Treat sock->sk_drops as an unsigned int when printing kselftests: netfilter: fix leftover net/net-next merge conflict mlxsw: core: Prevent reading unsupported slave address from SFP EEPROM mlxsw: core: Prevent QSFP module initialization for old hardware vsock/virtio: Initialize core virtio vsock before registering the driver net/mlx5e: Fix possible modify header actions memory leak net/mlx5e: Fix no rewrite fields with the same match net/mlx5e: Additional check for flow destination comparison net/mlx5e: Add missing ethtool driver info for representors net/mlx5e: Fix number of vports for ingress ACL configuration net/mlx5e: Fix ethtool rxfh commands when CONFIG_MLX5_EN_RXNFC is disabled net/mlx5e: Fix wrong xmit_more application net/mlx5: Fix peer pf disable hca command net/mlx5: E-Switch, Correct type to u16 for vport_num and int for vport_index net/mlx5: Add meaningful return codes to status_to_err function net/mlx5: Imply MLXFW in mlx5_core Revert "tipc: fix modprobe tipc failed after switch order of device registration" vsock/virtio: free packets during the socket release ... commit 055efab3120bae7ab1ed841317774f3c953f6e1b Author: Nick Desaulniers Date: Tue Apr 23 14:27:41 2019 -0700 kbuild: drop support for cc-ldoption If you want to see if your linker supports a certain flag, then ask the linker directly with ld-option (not the compiler with cc-ldoption). Checking for linker flag support is an antipattern that complicates the usage of various linkers other than bfd via -fuse-ld={bfd|gold|lld}. Cc: clang-built-linux@googlegroups.com Suggested-by: Masahiro Yamada Signed-off-by: Nick Desaulniers Signed-off-by: Masahiro Yamada commit 243c4b78923d5067b0071e285d6a90c45369ffe0 Merge: a188339ca5a3 51a0d1a90bff Author: Sean Paul Date: Mon May 20 11:02:53 2019 -0400 Merge drm-misc-next-fixes-2019-05-20 into drm-misc-fixes Picking up 3 sun4i patches that missed the last drm-misc-next-fixes pull request for 5.2 Signed-off-by: Sean Paul commit 8acf608e602f6ec38b7cc37b04c80f1ce9a1a6cc Author: Martin K. Petersen Date: Mon May 20 10:57:18 2019 -0400 Revert "scsi: sd: Keep disk read-only when re-reading partition" This reverts commit 20bd1d026aacc5399464f8328f305985c493cde3. This patch introduced regressions for devices that come online in read-only state and subsequently switch to read-write. Given how the partition code is currently implemented it is not possible to persist the read-only flag across a device revalidate call. This may need to get addressed in the future since it is common for user applications to proactively call BLKRRPART. Reverting this commit will re-introduce a regression where a device-initiated revalidate event will cause the admin state to be forgotten. A separate patch will address this issue. Fixes: 20bd1d026aac ("scsi: sd: Keep disk read-only when re-reading partition") Cc: Signed-off-by: Martin K. Petersen commit d0c0d902339249c75da85fd9257a86cbb98dfaa5 Author: Colin Ian King Date: Sat May 4 17:48:29 2019 +0100 scsi: bnx2fc: fix incorrect cast to u64 on shift operation Currently an int is being shifted and the result is being cast to a u64 which leads to undefined behaviour if the shift is more than 31 bits. Fix this by casting the integer value 1 to u64 before the shift operation. Addresses-Coverity: ("Bad shift operation") Fixes: 7b594769120b ("[SCSI] bnx2fc: Handle REC_TOV error code from firmware") Signed-off-by: Colin Ian King Acked-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 8ef860ae55e96c9e8999a12c800d9fd1a91f66d7 Author: Erwan Velu Date: Thu Mar 21 10:49:27 2019 +0100 scsi: smartpqi: Reporting unhandled SCSI errors When a HARDWARE_ERROR is triggered for ASC=0x3e, the existing code is only considering the case where ASCQ=0x1. According to the http://www.t10.org/lists/asc-num.htm#ASC_3E specification, other values may occur like a timeout (ASCQ=0x2). This patch prints an error message when a non-handled message is received. This can help diagnose a possible misbehavior of the controller or a missing implementation in the Linux kernel. This patch keeps the exact same error handling but prints a message if an ASCQ != 1 is reported. [mkp: clarified commit message] Signed-off-by: Erwan Velu Acked-by: Don Brace Signed-off-by: Martin K. Petersen commit 41552199b5518fe26bee0829a28dd1880441b430 Author: YueHaibing Date: Thu May 9 23:22:47 2019 +0800 scsi: myrs: Fix uninitialized variable drivers/scsi/myrs.c: In function 'myrs_log_event': drivers/scsi/myrs.c:821:24: warning: 'sshdr.sense_key' may be used uninitialized in this function [-Wmaybe-uninitialized] struct scsi_sense_hdr sshdr; If ev->ev_code is not 0x1C, sshdr.sense_key may be used uninitialized. Fix this by initializing variable 'sshdr' to 0. Fixes: 77266186397c ("scsi: myrs: Add Mylex RAID controller (SCSI interface)") Signed-off-by: YueHaibing Reviewed-by: Hannes Reinecke Signed-off-by: Martin K. Petersen commit 069d037aea98ffa64c26d4b1dc958fb8f39f5c2b Author: Jon Hunter Date: Thu May 16 18:51:26 2019 +0100 ASoC: simple-card: Fix configuration of DAI format When configuring a codec to be both bit-clock and frame-master, it was found that the codec was always configured as bit-clock and frame-slave. Looking at the simple_dai_link_of() function there appears to be two problems with the configuration of the DAI format, which are ... 1. The function asoc_simple_parse_daifmt() is called before the function asoc_simple_parse_codec() and this means that the device-tree node for the codec has not been parsed yet, which is needed by the function asoc_simple_parse_daifmt() to determine who is the codec. 2. The phandle passed to asoc_simple_parse_daifmt() is the phandle to the 'codec' node and not the phandle of the actual codec defined by the 'sound-dai' property under the 'codec' node. Fix the above by moving the call to asoc_simple_parse_daifmt() after the the call to asoc_simple_parse_codec() and pass the phandle for the codec to asoc_simple_parse_daifmt(). Signed-off-by: Jon Hunter Signed-off-by: Mark Brown commit d6423bd03031c020121da26c41a26bd5cc6d0da3 Author: Steffen Dirkwinkel Date: Thu May 2 15:03:51 2019 +0200 platform/x86: pmc_atom: Add several Beckhoff Automation boards to critclk_systems DMI table There are several Beckhoff Automation industrial PC boards which use pmc_plt_clk* clocks for ethernet controllers. This adds affected boards to critclk_systems DMI table so the clocks are marked as CLK_CRITICAL and not turned off. Fixes: 648e921888ad ("clk: x86: Stop marking clocks as CLK_IS_CRITICAL") Signed-off-by: Steffen Dirkwinkel Signed-off-by: Andy Shevchenko commit 3d0818f5eba80fbe4c0addbfe6ddb2d19dc82cd4 Author: Hans de Goede Date: Mon Apr 29 17:01:35 2019 +0200 platform/x86: pmc_atom: Add Lex 3I380D industrial PC to critclk_systems DMI table The Lex 3I380D industrial PC has 4 ethernet controllers on board which need pmc_plt_clk0 - 3 to function, add it to the critclk_systems DMI table, so that drivers/clk/x86/clk-pmc-atom.c will mark the clocks as CLK_CRITICAL and they will not get turned off. Fixes: 648e921888ad ("clk: x86: Stop marking clocks as CLK_IS_CRITICAL") Reported-and-tested-by: Semyon Verchenko Signed-off-by: Hans de Goede Acked-by: Andy Shevchenko Signed-off-by: Andy Shevchenko commit 30d9d4ff53532087bc13ed29d7715df868794b5e Author: Sathya Prakash M R Date: Sat May 18 13:30:08 2019 -0500 ASoC: Intel: soc-acpi: Fix machine selection order The selection order of m/c in match table is corrected to use common codec as last in the list. Signed-off-by: Sathya Prakash M R Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 7b8164c1a29ce8ef91672c50ceac5c14475f5601 Author: Curtis Malainey Date: Thu May 16 18:43:40 2019 -0700 ASoC: rt5677-spi: Handle over reading when flipping bytes There is a case when a we want to read a large number of bytes that require a burst but is not a multiple of the word size (8). When this happens rt5677_spi_reverse will run off the end of the buffer. The solution is to tell spi_reverse the actual size of the destination and stop if we reach it even if we have data left that we read. Cc: Ben Zhang Signed-off-by: Curtis Malainey Signed-off-by: Mark Brown commit f7c4842abfa1a219554a3ffd8c317e8fdd979bec Author: Kuninori Morimoto Date: Fri May 17 10:21:12 2019 +0900 ASoC: soc-dpm: fixup DAI active unbalance snd_soc_dai_link_event() is updating snd_soc_dai :: active, but it is unbalance. It counts up if it has startup callback. case SND_SOC_DAPM_PRE_PMU: ... snd_soc_dapm_widget_for_each_source_path(w, path) { ... if (source->driver->ops->startup) { ... => source->active++; } ... } ... But, always counts down case SND_SOC_DAPM_PRE_PMD: ... snd_soc_dapm_widget_for_each_source_path(w, path) { ... => source->active--; ... } This patch always counts up when SND_SOC_DAPM_PRE_PMD. Signed-off-by: Kuninori Morimoto Reviewed-by: Vinod Koul Signed-off-by: Mark Brown commit 670784fb4ebe54434e263837390e358405031d9e Author: Kai-Heng Feng Date: Tue Apr 30 16:37:53 2019 +0800 pinctrl: intel: Clear interrupt status in mask/unmask callback Commit a939bb57cd47 ("pinctrl: intel: implement gpio_irq_enable") was added because clearing interrupt status bit is required to avoid unexpected behavior. Turns out the unmask callback also needs the fix, which can solve weird IRQ triggering issues on I2C touchpad ELAN1200. Signed-off-by: Kai-Heng Feng Signed-off-by: Andy Shevchenko commit e58926e781d81bb4efc90fada08183c3f04478de Author: Andy Shevchenko Date: Mon Apr 1 15:06:44 2019 +0300 pinctrl: intel: Use GENMASK() consistently Use GENMASK() macro for all definitions. No functional change intended. Signed-off-by: Andy Shevchenko commit 94830f188a80ffc8b57d540a78a7b19dc2dded97 Merge: a188339ca5a3 6e9b622d1c36 Author: Paolo Bonzini Date: Mon May 20 13:41:51 2019 +0200 Merge tag 'kvm-s390-master-5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD KVM: s390: Fixes for s390 - Fix typo in module parameter description - Change default poll timer to improve cpu consumption commit 3ff46efbcd90d3d469de8eddaf03d12293aaa50c Author: Martin Blumenstingl Date: Sun May 12 21:43:00 2019 +0200 clk: meson: meson8b: fix a typo in the VPU parent names array variable The variable which holds the parent names for the VPU clocks has a typo in it. Fix this typo to make the variable naming in the driver consistent. No functional changes. Fixes: 41785ce562491d ("clk: meson: meson8b: add the VPU clock trees") Signed-off-by: Martin Blumenstingl Signed-off-by: Jerome Brunet commit e63b063ecd248ad9f54a961ddf2a6d97da944456 Author: Jerome Brunet Date: Sun May 12 22:57:43 2019 +0200 clk: meson: fix MPLL 50M binding id typo MPLL_5OM (the capital letter o) should indeed be MPLL_50M (the number) Fix this before it gets used. Fixes: 25db146aa726 ("dt-bindings: clk: meson: add g12a periph clock controller bindings") Reported-by: Martin Blumenstingl Acked-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Signed-off-by: Jerome Brunet commit 200036a8e802dee09103031eeeaea91dd212ec99 Author: Helge Deller Date: Tue May 14 21:40:53 2019 +0200 parisc: Allow building 64-bit kernel without -mlong-calls compiler option A 64-bit kernel built without CONFIG_MLONGCALLS (-mlong-calls compiler option) usually fails to link because of unreachable functions. Try to work around that linking issue by moving the *.init and *.exit text segments closer to the main text segment. With that change those segments now don't get freed at runtime any longer, but since we in most cases run with huge-page enabled, we ignore the lost memory in preference of better performance. This change will not guarantee that every kernel config will now sucessfully build with short calls and without linking issues. Signed-off-by: Helge Deller commit 7a95aab57b79b2d5b83b4ac7abceb14c91da0d36 Author: Mike Rapoport Date: Wed May 15 08:41:22 2019 +0300 parisc: Kconfig: remove ARCH_DISCARD_MEMBLOCK Since commit 350e88bad496 ("mm: memblock: make keeping memblock memory opt-in rather than opt-out") the default behaviour is to discard memblock data after init and the ARCH_DISCARD_MEMBLOCK is obsolete. Remove it. Signed-off-by: Mike Rapoport Signed-off-by: Helge Deller commit 6e9b622d1c3628fae65217465a148b157a361c2a Author: Christian Borntraeger Date: Wed May 15 09:59:08 2019 +0200 KVM: s390: change default halt poll time to 50us Recent measurements indicate that using 50us results in a reduced CPU consumption, while still providing the benefit of halt polling. Let's use 50us instead. Acked-by: David Hildenbrand Acked-by: Janosch Frank Acked-by: Cornelia Huck Signed-off-by: Christian Borntraeger commit b41fb528dd8784a87414e3af5579674badefa76b Author: Wei Yongjun Date: Sat May 4 06:51:45 2019 +0000 KVM: s390: fix typo in parameter description Fix typo in parameter description. Fixes: 8b905d28ee17 ("KVM: s390: provide kvm_arch_no_poll function") Signed-off-by: Wei Yongjun Message-Id: <20190504065145.53665-1-weiyongjun1@huawei.com> Reviewed-by: Cornelia Huck Reviewed-by: David Hildenbrand Signed-off-by: Christian Borntraeger commit fea69916360468e364a4988db25a5afa835f3406 Author: Dan Carpenter Date: Wed May 15 12:52:23 2019 +0300 staging: wilc1000: Fix some double unlock bugs in wilc_wlan_cleanup() If ->hif_read_reg() or ->hif_write_reg() fail then the code unlocks and keeps executing. It should just return. Fixes: c5c77ba18ea6 ("staging: wilc1000: Add SDIO/SPI 802.11 driver") Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman commit ca641bae6da977d638458e78cd1487b6160a2718 Author: Dan Carpenter Date: Wed May 15 12:38:33 2019 +0300 staging: vc04_services: prevent integer overflow in create_pagelist() The create_pagelist() "count" parameter comes from the user in vchiq_ioctl() and it could overflow. If you look at how create_page() is called in vchiq_prepare_bulk_data(), then the "size" variable is an int so it doesn't make sense to allow negatives or larger than INT_MAX. I don't know this code terribly well, but I believe that typical values of "count" are typically quite low and I don't think this check will affect normal valid uses at all. The "pagelist_size" calculation can also overflow on 32 bit systems, but not on 64 bit systems. I have added an integer overflow check for that as well. The Raspberry PI doesn't offer the same level of memory protection that x86 does so these sorts of bugs are probably not super critical to fix. Fixes: 71bad7f08641 ("staging: add bcm2708 vchiq driver") Signed-off-by: Dan Carpenter Cc: stable Signed-off-by: Greg Kroah-Hartman commit ca4e4efbefbbdde0a7bb3023ea08d491f4daf9b9 Author: Dan Carpenter Date: Mon May 13 14:07:18 2019 +0300 Staging: vc04_services: Fix a couple error codes These are accidentally returning positive EINVAL instead of negative -EINVAL. Some of the callers treat positive values as success. Fixes: 7b3ad5abf027 ("staging: Import the BCM2835 MMAL-based V4L2 camera driver.") Signed-off-by: Dan Carpenter Acked-by: Stefan Wahren Signed-off-by: Greg Kroah-Hartman commit a67fedd788182764dc8ed59037c604b7e60349f1 Author: Tim Collier Date: Sat May 11 18:40:46 2019 +0100 staging: wlan-ng: fix adapter initialization failure Commit e895f00a8496 ("Staging: wlan-ng: hfa384x_usb.c Fixed too long code line warnings.") moved the retrieval of the transfer buffer from the URB from the top of function hfa384x_usbin_callback to a point after reposting of the URB via a call to submit_rx_urb. The reposting of the URB allocates a new transfer buffer so the new buffer is retrieved instead of the buffer containing the response passed into the callback. This results in failure to initialize the adapter with an error reported in the system log (something like "CTLX[1] error: state(Request failed)"). This change moves the retrieval to just before the point where the URB is reposted so that the correct transfer buffer is retrieved and initialization of the device succeeds. Signed-off-by: Tim Collier Fixes: e895f00a8496 ("Staging: wlan-ng: hfa384x_usb.c Fixed too long code line warnings.") Cc: stable Signed-off-by: Greg Kroah-Hartman commit c85aa326f5c5cc73bad4381498fd2bda1bb41c27 Author: Dan Carpenter Date: Wed May 15 12:52:46 2019 +0300 staging: kpc2000: double unlock in error handling in kpc_dma_transfer() The goto err_descr_too_many; calls unlock_engine() so this unlocks twice. Fixes: 7df95299b94a ("staging: kpc2000: Add DMA driver") Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman commit d4c596ebf62760b89ec3d0a2cbc94e2632395eec Author: YueHaibing Date: Fri May 10 21:47:24 2019 +0800 staging: kpc2000: Fix build error without CONFIG_UIO Fix gcc build error while CONFIG_UIO is not set ERROR: "uio_unregister_device" [drivers/staging/kpc2000/kpc2000/kpc2000.ko] undefined! ERROR: "__uio_register_device" [drivers/staging/kpc2000/kpc2000/kpc2000.ko] undefined! Add UIO Kconfig dependency to fix this. Reported-by: Hulk Robot Reported-by: kbuild test robot Fixes: 7dc7967fc39a ("staging: kpc2000: add initial set of Daktronics drivers") Signed-off-by: YueHaibing Signed-off-by: Greg Kroah-Hartman commit e00839f38823e7e4a38d2e2703c624a16f08dac8 Author: Max Filippov Date: Wed May 8 13:55:13 2019 -0700 staging: kpc2000: fix build error on xtensa kpc2000/kpc_dma/fileops.c includes asm/uaccess.h instead of linux/uaccess.h, which results in the following build error on xtensa architecture: In file included from drivers/staging/kpc2000/kpc_dma/fileops.c:11: arch/xtensa/include/asm/uaccess.h: In function ‘clear_user’: arch/xtensa/include/asm/uaccess.h:40:22: error: implicit declaration of function ‘uaccess_kernel’; ... #define __kernel_ok (uaccess_kernel()) ^~~~~~~~~~~~~~ Include linux/uaccess.h to fix that. Signed-off-by: Max Filippov Signed-off-by: Greg Kroah-Hartman commit f2dcb8841e6b155da098edae09125859ef7e853d Author: Chengguang Xu Date: Mon May 6 19:01:02 2019 +0800 staging: erofs: set sb->s_root to NULL when failing from __getname() Set sb->s_root to NULL when failing from __getname(), so that we can avoid double dput and unnecessary operations in generic_shutdown_super(). Signed-off-by: Chengguang Xu Reviewed-by: Chao Yu Reviewed-by: Gao Xiang Signed-off-by: Greg Kroah-Hartman commit 083a685c2ee035dd6c47242ea2de6d9eed3bf929 Merge: a188339ca5a3 e6d12298310f Author: Greg Kroah-Hartman Date: Mon May 20 09:15:14 2019 +0200 Merge tag 'iio-fixes-for-5.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 5.2 cycle. * ads124 - Avoid a buffer overrun when setting an array to 0. * ads8688 - Don't use the pollfunc timestamp as it isn't set and would be wrong anyway for a device that does sampling on demand. * ds4422 - Fix masking on register used for chip verification. Wrong address was being read. * mpu6050 - Fix the fifo layout for ICM20602 to avoid underreading and hence failure to move on to the next record in the fifo. * NPCM ADC - Make sure there is actually a valid regulator before reading its voltage. * tag 'iio-fixes-for-5.2a' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio: iio: adc: ti-ads8688: fix timestamp is not updated in buffer iio: dac: ds4422/ds4424 fix chip verification iio: imu: mpu6050: Fix FIFO layout for ICM20602 iio: adc: ads124: avoid buffer overflow iio: adc: modify NPCM ADC read reference voltage commit b25af2ff7c07bd19af74e3f64ff82e2880d13d81 Author: Fabio Estevam Date: Mon May 13 00:15:31 2019 -0300 ARM: imx: cpuidle-imx6sx: Restrict the SW2ISO increase to i.MX6SX Since commit 1e434b703248 ("ARM: imx: update the cpu power up timing setting on i.mx6sx") some characters loss is noticed on i.MX6ULL UART as reported by Christoph Niedermaier. The intention of such commit was to increase the SW2ISO field for i.MX6SX only, but since cpuidle-imx6sx is also used on i.MX6UL/i.MX6ULL this caused unintended side effects on other SoCs. Fix this problem by keeping the original SW2ISO value for i.MX6UL/i.MX6ULL and only increase SW2ISO in the i.MX6SX case. Cc: stable@vger.kernel.org Fixes: 1e434b703248 ("ARM: imx: update the cpu power up timing setting on i.mx6sx") Reported-by: Christoph Niedermaier Signed-off-by: Fabio Estevam Tested-by: Sébastien Szymanski Tested-by: Christoph Niedermaier Signed-off-by: Shawn Guo commit a0b14e6585b97b52765f9cbd86cedb7bb382159b Author: Anson Huang Date: Sun May 12 08:38:22 2019 +0000 firmware: imx: SCU irq should ONLY be enabled after SCU IPC is ready The imx_scu_irq_group_enable() is normally called during module driver probe phase to enable SCU group irq, if SCU IPC is NOT ready, below dump will show out: [ 0.933001] Hardware name: Freescale i.MX8QXP MEK (DT) [ 0.938129] pstate: 60000005 (nZCv daif -PAN -UAO) [ 0.942907] pc : imx_scu_call_rpc+0x114/0x158 [ 0.947251] lr : imx_scu_irq_group_enable+0x74/0xc4 [ 0.952113] sp : ffff00001005bae0 [ 0.955415] x29: ffff00001005bae0 x28: ffff0000111bb0a0 [ 0.960712] x27: ffff00001140b000 x26: ffff00001111068c [ 0.966011] x25: ffff0000111bb100 x24: 0000000000000000 [ 0.971311] x23: ffff0000113d9cd8 x22: 0000000000000001 [ 0.976610] x21: 0000000000000001 x20: ffff80083b51a410 [ 0.981909] x19: ffff000011259000 x18: 0000000000000480 [ 0.987209] x17: 000000000023ffb8 x16: 0000000000000010 [ 0.992508] x15: 000000000000023f x14: ffffffffffffffff [ 0.997807] x13: 0000000000000018 x12: 0000000000000030 [ 1.003107] x11: 0000000000000003 x10: 0101010101010101 [ 1.008406] x9 : ffffffffffffffff x8 : 7f7f7f7f7f7f7f7f [ 1.013706] x7 : fefefeff646c606d x6 : 0000000000000000 [ 1.019005] x5 : ffff0000112596c8 x4 : 0000000000000008 [ 1.024304] x3 : 0000000000000003 x2 : 0000000000000001 [ 1.029604] x1 : ffff00001005bb58 x0 : 0000000000000000 [ 1.034905] Call trace: [ 1.037341] imx_scu_call_rpc+0x114/0x158 [ 1.041334] imx_scu_irq_group_enable+0x74/0xc4 [ 1.045856] imx_sc_wdt_probe+0x24/0x150 [ 1.049766] platform_drv_probe+0x4c/0xb0 [ 1.053762] really_probe+0x1f8/0x2c8 [ 1.057407] driver_probe_device+0x58/0xfc [ 1.061490] device_driver_attach+0x68/0x70 [ 1.065660] __driver_attach+0x94/0xdc [ 1.069397] bus_for_each_dev+0x64/0xc0 [ 1.073220] driver_attach+0x20/0x28 [ 1.076782] bus_add_driver+0x148/0x1fc [ 1.080601] driver_register+0x68/0x120 [ 1.084424] __platform_driver_register+0x4c/0x54 [ 1.089120] imx_sc_wdt_driver_init+0x18/0x20 [ 1.093463] do_one_initcall+0x58/0x1b8 [ 1.097287] kernel_init_freeable+0x1cc/0x288 [ 1.101630] kernel_init+0x10/0x100 [ 1.105101] ret_from_fork+0x10/0x18 [ 1.108669] ---[ end trace 9e03302114457de9 ]--- [ 1.113296] enable irq failed, group 1, mask 1, ret -22 To avoid such scenario, return -EPROBE_DEFER in imx_scu_irq_group_enable() API if SCU IPC is NOT ready, then module driver which calls this API in probe phase will defer probe after SCU IPC ready. Fixes: 851826c7566e ("firmware: imx: enable imx scu general irq function") Signed-off-by: Anson Huang Signed-off-by: Shawn Guo commit fafaa0a27675e7f4d1b58ef44cdc142883f311fe Author: YueHaibing Date: Wed Apr 24 17:15:17 2019 +0800 arm64: imx: Fix build error without CONFIG_SOC_BUS During randconfig builds, I occasionally run into an invalid configuration drivers/soc/imx/soc-imx8.o: In function `imx8_soc_init': soc-imx8.c:(.init.text+0x144): undefined reference to `soc_device_register' while CONFIG_SOC_BUS is not set, the building failed like this. This patch selects SOC_BUS to fix it. Reported-by: Hulk Robot Fixes: a7e26f356ca1 ("soc: imx: Add generic i.MX8 SoC driver") Suggested-by: Leonard Crestez Signed-off-by: YueHaibing Signed-off-by: Shawn Guo commit f40019475bbbe9b455e7fd4385fcf13896c492ca Author: Petr Vorel Date: Wed May 15 08:18:07 2019 +0200 ima: fix wrong signed policy requirement when not appraising Kernel booted just with ima_policy=tcb (not with ima_policy=appraise_tcb) shouldn't require signed policy. Regression found with LTP test ima_policy.sh. Fixes: c52657d93b05 ("ima: refactor ima_init_policy()") Cc: stable@vger.kernel.org (linux-5.0) Signed-off-by: Petr Vorel Signed-off-by: Mimi Zohar commit 558b523d46289f111d53d7c42211069063be5985 Author: Scott Wood Date: Tue Apr 23 17:48:07 2019 -0500 x86/ima: Check EFI_RUNTIME_SERVICES before using Checking efi_enabled(EFI_BOOT) is not sufficient to ensure that EFI runtime services are available, e.g. if efi=noruntime is used. Without this, I get an oops on a PREEMPT_RT kernel where efi=noruntime is the default. Fixes: 399574c64eaf94e8 ("x86/ima: retry detecting secure boot mode") Cc: stable@vger.kernel.org (linux-5.0) Signed-off-by: Scott Wood Signed-off-by: Mimi Zohar commit a188339ca5a396acc588e5851ed7e19f66b0ebd9 Author: Linus Torvalds Date: Sun May 19 15:47:09 2019 -0700 Linux 5.2-rc1 commit 2e2c12200153e63749f836109cef8150f9c61ed8 Merge: cb6f8739fbf9 4dd0481584d0 Author: Linus Torvalds Date: Sun May 19 15:22:03 2019 -0700 Merge tag 'upstream-5.2-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs Pull UBIFS fixes from Richard Weinberger: - build errors wrt xattrs - mismerge which lead to a wrong Kconfig ifdef - missing endianness conversion * tag 'upstream-5.2-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs: ubifs: Convert xattr inum to host order ubifs: Use correct config name for encryption ubifs: Fix build error without CONFIG_UBIFS_FS_XATTR commit cb6f8739fbf98203d0fb0bc2c2dbbec0ddfe978a Merge: ff8583d6e4e3 de6da1e8bcf0 Author: Linus Torvalds Date: Sun May 19 12:15:32 2019 -0700 Merge branch 'akpm' (patches from Andrew) Merge yet more updates from Andrew Morton: "A few final bits: - large changes to vmalloc, yielding large performance benefits - tweak the console-flush-on-panic code - a few fixes" * emailed patches from Andrew Morton : panic: add an option to replay all the printk message in buffer initramfs: don't free a non-existent initrd fs/writeback.c: use rcu_barrier() to wait for inflight wb switches going into workqueue when umount mm/compaction.c: correct zone boundary handling when isolating pages from a pageblock mm/vmap: add DEBUG_AUGMENT_LOWEST_MATCH_CHECK macro mm/vmap: add DEBUG_AUGMENT_PROPAGATE_CHECK macro mm/vmalloc.c: keep track of free blocks for vmap allocation commit ff8583d6e4e33fe3856a609095c683d5dbe39120 Merge: f23d8719e76f fc2694ec1ab7 Author: Linus Torvalds Date: Sun May 19 11:53:58 2019 -0700 Merge tag 'kbuild-v5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild Pull more Kbuild updates from Masahiro Yamada: - remove unneeded use of cc-option, cc-disable-warning, cc-ldoption - exclude tracked files from .gitignore - re-enable -Wint-in-bool-context warning - refactor samples/Makefile - stop building immediately if syncconfig fails - do not sprinkle error messages when $(CC) does not exist - move arch/alpha/defconfig to the configs subdirectory - remove crappy header search path manipulation - add comment lines to .config to clarify the end of menu blocks - check uniqueness of module names (adding new warnings intentionally) * tag 'kbuild-v5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (24 commits) kconfig: use 'else ifneq' for Makefile to improve readability kbuild: check uniqueness of module names kconfig: Terminate menu blocks with a comment in the generated config kbuild: add LICENSES to KBUILD_ALLDIRS kbuild: remove 'addtree' and 'flags' magic for header search paths treewide: prefix header search paths with $(srctree)/ media: prefix header search paths with $(srctree)/ media: remove unneeded header search paths alpha: move arch/alpha/defconfig to arch/alpha/configs/defconfig kbuild: terminate Kconfig when $(CC) or $(LD) is missing kbuild: turn auto.conf.cmd into a mandatory include file .gitignore: exclude .get_maintainer.ignore and .gitattributes kbuild: add all Clang-specific flags unconditionally kbuild: Don't try to add '-fcatch-undefined-behavior' flag kbuild: add some extra warning flags unconditionally kbuild: add -Wvla flag unconditionally arch: remove dangling asm-generic wrappers samples: guard sub-directories with CONFIG options kbuild: re-enable int-in-bool-context warning MAINTAINERS: kbuild: Add pattern for scripts/*vmlinux* ... commit f23d8719e76fd32828ae6f1b55e4659144467742 Merge: c4d36b63b28b b8f5fe3bc5b9 Author: Linus Torvalds Date: Sun May 19 11:47:03 2019 -0700 Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux Pull i2c updates from Wolfram Sang: "Some I2C core API additions which are kind of simple but enhance error checking for users a lot, especially by returning errno now. There are wrappers to still support the old API but it will be removed once all users are converted" * 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: i2c: core: add device-managed version of i2c_new_dummy i2c: core: improve return value handling of i2c_new_device and i2c_new_dummy commit c4d36b63b28b76cd584bec48af7b562b4513b87b Merge: d8848eefc1d5 2c1d0e3631e5 Author: Linus Torvalds Date: Sun May 19 11:43:16 2019 -0700 Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 Pull ext4 fixes from Ted Ts'o: "Some bug fixes, and an update to the URL's for the final version of Unicode 12.1.0" * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: ext4: avoid panic during forced reboot due to aborted journal ext4: fix block validity checks for journal inodes using indirect blocks unicode: update to Unicode 12.1.0 final unicode: add missing check for an error return from utf8lookup() ext4: fix miscellaneous sparse warnings ext4: unsigned int compared against zero ext4: fix use-after-free in dx_release() ext4: fix data corruption caused by overlapping unaligned and aligned IO jbd2: fix potential double free ext4: zero out the unused memory region in the extent tree block commit d8848eefc1d541dd0e3ae175e09fb5c66f1d4de6 Merge: 1ba3b5dc1492 dece44e381ab Author: Linus Torvalds Date: Sun May 19 11:38:18 2019 -0700 Merge tag '5.2-rc-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6 Pull cifs fixes from Steve French: "Minor cleanup and fixes, one for stable, four rdma (smbdirect) related. Also adds SEEK_HOLE support" * tag '5.2-rc-smb3-fixes' of git://git.samba.org/sfrench/cifs-2.6: cifs: add support for SEEK_DATA and SEEK_HOLE Fixed https://bugzilla.kernel.org/show_bug.cgi?id=202935 allow write on the same file cifs: Allocate memory for all iovs in smb2_ioctl cifs: Don't match port on SMBDirect transport cifs:smbd Use the correct DMA direction when sending data cifs:smbd When reconnecting to server, call smbd_destroy() after all MIDs have been called cifs: use the right include for signal_pending() smb3: trivial cleanup to smb2ops.c cifs: cleanup smb2ops.c and normalize strings smb3: display session id in debug data commit 1ba3b5dc14923021f7815ea0b63baa34a3e1a998 Merge: a13f950ef13f 62e1c09418fc Author: Linus Torvalds Date: Sun May 19 11:20:22 2019 -0700 Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull perf tooling updates from Ingo Molnar: "perf.data: - Streaming compression of perf ring buffer into PERF_RECORD_COMPRESSED user space records, resulting in ~3-5x perf.data file size reduction on variety of tested workloads what saves storage space on larger server systems where perf.data size can easily reach several tens or even hundreds of GiBs, especially when profiling with DWARF-based stacks and tracing of context switches. perf record: - Improve -user-regs/intr-regs suggestions to overcome errors perf annotate: - Remove hist__account_cycles() from callback, speeding up branch processing (perf record -b) perf stat: - Add a 'percore' event qualifier, e.g.: -e cpu/event=0,umask=0x3,percore=1/, that sums up the event counts for both hardware threads in a core. We can already do this with --per-core, but it's often useful to do this together with other metrics that are collected per hardware thread. I.e. now its possible to do this per-event, and have it mixed with other events not aggregated by core. arm64: - Map Brahma-B53 CPUID to cortex-a53 events. - Add Cortex-A57 and Cortex-A72 events. csky: - Add DWARF register mappings for libdw, allowing --call-graph=dwarf to work on the C-SKY arch. x86: - Add support for recording and printing XMM registers, available, for instance, on Icelake. - Add uncore_upi (Intel's "Ultra Path Interconnect" events) JSON support. UPI replaced the Intel QuickPath Interconnect (QPI) in Xeon Skylake-SP. Intel PT: - Fix instructions sampling rate. - Timestamp fixes. - Improve exported-sql-viewer GUI, allowing, for instance, to copy'n'paste the trees, useful for e-mailing" * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (73 commits) perf stat: Support 'percore' event qualifier perf stat: Factor out aggregate counts printing perf tools: Add a 'percore' event qualifier perf docs: Add description for stderr perf intel-pt: Fix sample timestamp wrt non-taken branches perf intel-pt: Fix improved sample timestamp perf intel-pt: Fix instructions sampling rate perf regs x86: Add X86 specific arch__intr_reg_mask() perf parse-regs: Add generic support for arch__intr/user_reg_mask() perf parse-regs: Split parse_regs perf vendor events arm64: Add Cortex-A57 and Cortex-A72 events perf vendor events arm64: Map Brahma-B53 CPUID to cortex-a53 events perf vendor events arm64: Remove [[:xdigit:]] wildcard perf jevents: Remove unused variable perf test zstd: Fixup verbose mode output perf tests: Implement Zstd comp/decomp integration test perf inject: Enable COMPRESSED record decompression perf report: Implement perf.data record decompression perf record: Implement -z,--compression_level[=] option perf report: Add stub processing of compressed events for -D ... commit a13f950ef13ff1eaf2ce14f5462ca59c4b60fdd0 Merge: d9351ea14ddc ea7a5f90f103 Author: Linus Torvalds Date: Sun May 19 11:11:20 2019 -0700 Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull clocksource updates from Ingo Molnar: "Misc clocksource/clockevent driver updates that came in a bit late but are ready for v5.2" * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: misc: atmel_tclib: Do not probe already used TCBs clocksource/drivers/timer-atmel-tcb: Convert tc_clksrc_suspend|resume() to static clocksource/drivers/tcb_clksrc: Rename the file for consistency clocksource/drivers/timer-atmel-pit: Rework Kconfig option clocksource/drivers/tcb_clksrc: Move Kconfig option ARM: at91: Implement clocksource selection clocksource/drivers/tcb_clksrc: Use tcb as sched_clock clocksource/drivers/tcb_clksrc: Stop depending on atmel_tclib ARM: at91: move SoC specific definitions to SoC folder clocksource/drivers/timer-milbeaut: Cleanup common register accesses clocksource/drivers/timer-milbeaut: Add shutdown function clocksource/drivers/timer-milbeaut: Fix to enable one-shot timer clocksource/drivers/tegra: Rework for compensation of suspend time clocksource/drivers/sp804: Add COMPILE_TEST to CONFIG_ARM_TIMER_SP804 clocksource/drivers/sun4i: Add a compatible for suniv dt-bindings: timer: Add Allwinner suniv timer commit d9351ea14ddca708d3cb384f828af4bf82fcc772 Merge: 39feaa3ff445 fb4e0592654a Author: Linus Torvalds Date: Sun May 19 10:58:45 2019 -0700 Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull IRQ chip updates from Ingo Molnar: "A late irqchips update: - New TI INTR/INTA set of drivers - Rewrite of the stm32mp1-exti driver as a platform driver - Update the IOMMU MSI mapping API to be RT friendly - A number of cleanups and other low impact fixes" * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (34 commits) iommu/dma-iommu: Remove iommu_dma_map_msi_msg() irqchip/gic-v3-mbi: Don't map the MSI page in mbi_compose_m{b, s}i_msg() irqchip/ls-scfg-msi: Don't map the MSI page in ls_scfg_msi_compose_msg() irqchip/gic-v3-its: Don't map the MSI page in its_irq_compose_msi_msg() irqchip/gicv2m: Don't map the MSI page in gicv2m_compose_msi_msg() iommu/dma-iommu: Split iommu_dma_map_msi_msg() in two parts genirq/msi: Add a new field in msi_desc to store an IOMMU cookie arm64: arch_k3: Enable interrupt controller drivers irqchip/ti-sci-inta: Add msi domain support soc: ti: Add MSI domain bus support for Interrupt Aggregator irqchip/ti-sci-inta: Add support for Interrupt Aggregator driver dt-bindings: irqchip: Introduce TISCI Interrupt Aggregator bindings irqchip/ti-sci-intr: Add support for Interrupt Router driver dt-bindings: irqchip: Introduce TISCI Interrupt router bindings gpio: thunderx: Use the default parent apis for {request,release}_resources genirq: Introduce irq_chip_{request,release}_resource_parent() apis firmware: ti_sci: Add helper apis to manage resources firmware: ti_sci: Add RM mapping table for am654 firmware: ti_sci: Add support for IRQ management firmware: ti_sci: Add support for RM core ops ... commit 6a0a923dfa1480df41fb486323b8375e387d516f Author: Petr Štetiar Date: Sun May 19 14:18:44 2019 +0200 of_net: fix of_get_mac_address retval if compiled without CONFIG_OF of_get_mac_address prior to commit d01f449c008a ("of_net: add NVMEM support to of_get_mac_address") could return only valid pointer or NULL, after this change it could return only valid pointer or ERR_PTR encoded error value, but I've forget to change the return value of of_get_mac_address in case where the kernel is compiled without CONFIG_OF, so I'm doing so now. Cc: Mirko Lindner Cc: Stephen Hemminger Fixes: d01f449c008a ("of_net: add NVMEM support to of_get_mac_address") Reported-by: Octavio Alvarez Signed-off-by: Petr Štetiar Signed-off-by: David S. Miller commit 39feaa3ff4453594297574e116a55bd6d5371f37 Merge: 1335d9a1fb2a f8585539df0a Author: Linus Torvalds Date: Sun May 19 10:33:26 2019 -0700 Merge branch 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull EFI fix from Ingo Molnar: "Fix an EFI-fb regression that affects certain x86 systems" * 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: fbdev/efifb: Ignore framebuffer memmap entries that lack any memory types commit 85806af0c6bac0feb777e255a25fd5d0cf6ad38e Author: Randy Dunlap Date: Sat May 18 21:23:07 2019 -0700 net: fix kernel-doc warnings for socket.c Fix kernel-doc warnings by moving the kernel-doc notation to be immediately above the functions that it describes. Fixes these warnings for sock_sendmsg() and sock_recvmsg(): ../net/socket.c:658: warning: Excess function parameter 'sock' description in 'INDIRECT_CALLABLE_DECLARE' ../net/socket.c:658: warning: Excess function parameter 'msg' description in 'INDIRECT_CALLABLE_DECLARE' ../net/socket.c:889: warning: Excess function parameter 'sock' description in 'INDIRECT_CALLABLE_DECLARE' ../net/socket.c:889: warning: Excess function parameter 'msg' description in 'INDIRECT_CALLABLE_DECLARE' ../net/socket.c:889: warning: Excess function parameter 'flags' description in 'INDIRECT_CALLABLE_DECLARE' Signed-off-by: Randy Dunlap Signed-off-by: David S. Miller commit ea9a03791a73e853897eda93e139018ca38f3c94 Author: Patrick Talbert Date: Fri May 17 17:11:28 2019 +0200 net: Treat sock->sk_drops as an unsigned int when printing Currently, procfs socket stats format sk_drops as a signed int (%d). For large values this will cause a negative number to be printed. We know the drop count can never be a negative so change the format specifier to %u. Signed-off-by: Patrick Talbert Signed-off-by: David S. Miller commit 1335d9a1fb2abbe5022de3c517989cc7c7161dee Merge: 4c4a5c99af7f 8ea58f1e8b11 Author: Linus Torvalds Date: Sun May 19 10:23:24 2019 -0700 Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull core fixes from Ingo Molnar: "This fixes a particularly thorny munmap() bug with MPX, plus fixes a host build environment assumption in objtool" * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: objtool: Allow AR to be overridden with HOSTAR x86/mpx, mm/core: Fix recursive munmap() corruption commit 4c4a5c99af7f479a14759196f8df9467128f3baf Merge: 86a78a8b8d04 15d574fbd3f8 Author: Linus Torvalds Date: Sun May 19 10:16:39 2019 -0700 Merge tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc Pull ARM SoC late updates from Olof Johansson: "This is some material that we picked up into our tree late. Most of it are smaller fixes and additions, some defconfig updates due to recent development, etc. Code-wise the largest portion is a series of PM updates for the at91 platform, and those have been in linux-next a while through the at91 tree before we picked them up" * tag 'armsoc-late' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (29 commits) arm64: dts: sprd: Add clock properties for serial devices Opt out of scripts/get_maintainer.pl ARM: ixp4xx: Remove duplicated include from common.c soc: ixp4xx: qmgr: Fix an NULL vs IS_ERR() check in probe arm64: tegra: Disable XUSB support on Jetson TX2 arm64: tegra: Enable SMMU translation for PCI on Tegra186 arm64: tegra: Fix insecure SMMU users for Tegra186 arm64: tegra: Select ARM_GIC_PM amba: tegra-ahb: Mark PM functions as __maybe_unused ARM: dts: logicpd-som-lv: Fix MMC1 card detect ARM: mvebu: drop return from void function ARM: mvebu: prefix coprocessor operand with p ARM: mvebu: drop unnecessary label ARM: mvebu: fix a leaked reference by adding missing of_node_put ARM: socfpga_defconfig: enable LTC2497 ARM: mvebu: kirkwood: remove error message when retrieving mac address ARM: at91: sama5: make ov2640 as a module ARM: OMAP1: ams-delta: fix early boot crash when LED support is disabled ARM: at91: remove HAVE_FB_ATMEL for sama5 SoC as they use DRM soc/fsl/qe: Fix an error code in qe_pin_request() ... commit 86a78a8b8d0414455c2174852968ce54205add82 Merge: bcd1739788e2 672eaf37db9f Author: Linus Torvalds Date: Sun May 19 10:10:15 2019 -0700 Merge tag 'powerpc-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc fixes from Michael Ellerman: "One fix going back to stable, for a bug on 32-bit introduced when we added support for THREAD_INFO_IN_TASK. A fix for a typo in a recent rework of our hugetlb code that leads to crashes on 64-bit when using hugetlbfs with a 4K PAGE_SIZE. Two fixes for our recent rework of the address layout on 64-bit hash CPUs, both only triggered when userspace tries to access addresses outside the user or kernel address ranges. Finally a fix for a recently introduced double free in an error path in our cacheinfo code. Thanks to: Aneesh Kumar K.V, Christophe Leroy, Sachin Sant, Tobin C. Harding" * tag 'powerpc-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: powerpc/cacheinfo: Remove double free powerpc/mm/hash: Fix get_region_id() for invalid addresses powerpc/mm: Drop VM_BUG_ON in get_region_id() powerpc/mm: Fix crashes with hugepages & 4K pages powerpc/32s: fix flush_hash_pages() on SMP commit bcd1739788e2ea111d0d2efe1ed6633d9f6a20da Merge: b0bb1269b978 b1e479e3dcbc Author: Linus Torvalds Date: Sun May 19 10:05:28 2019 -0700 Merge tag 'mips_5.2_2' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux Pull a few more MIPS updates from Paul Burton: "Some SGI IP27 specific PCI rework and a batch of fixes: - A build fix for BMIPS5000 configurations with CONFIG_HW_PERF_EVENTS=y, which also neatly removes some #ifdefery. - A fix to report supported ISAs correctly on older Ingenic SoCs which incorrectly indicate MIPSr2 support in their cop0 Config register. - Some PCI modernization for SGI IP27 systems as part of ongoing work to support some other SGI systems. - A fix allowing use of appended DTB files with generic kernels. - DMA mask fixes for SGI IP22 & Alchemy systems" * tag 'mips_5.2_2' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: MIPS: Alchemy: add DMA masks for on-chip ethernet MIPS: SGI-IP22: provide missing dma_mask/coherent_dma_mask generic: fix appended dtb support MIPS: SGI-IP27: abstract chipset irq from bridge MIPS: SGI-IP27: use generic PCI driver MIPS: Fix Ingenic SoCs sometimes reporting wrong ISA MIPS: perf: Fix build with CONFIG_CPU_BMIPS5000 enabled commit b0bb1269b9788a35af68587505d8df90498df75f Merge: 72cf0b07418a 8fef9900d43f Author: Linus Torvalds Date: Sun May 19 09:56:36 2019 -0700 Merge tag 'riscv-for-linus-5.2-mw2' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux Pull RISC-V updates from Palmer Dabbelt: "This contains an assortment of RISC-V related patches that I'd like to target for the 5.2 merge window. Most of the patches are cleanups, but there are a handful of user-visible changes: - The nosmp and nr_cpus command-line arguments are now supported, which work like normal. - The SBI console no longer installs itself as a preferred console, we rely on standard mechanisms (/chosen, command-line, hueristics) instead. - sfence_remove_sfence_vma{,_asid} now pass their arguments along to the SBI call. - Modules now support BUG(). - A missing sfence.vma during boot has been added. This bug only manifests during boot. - The arch/riscv support for SiFive's L2 cache controller has been merged, which should un-block the EDAC framework work. I've only tested this on QEMU again, as I didn't have time to get things running on the Unleashed. The latest master from this morning merges in cleanly and passes the tests as well" * tag 'riscv-for-linus-5.2-mw2' of git://git.kernel.org/pub/scm/linux/kernel/git/palmer/riscv-linux: (31 commits) riscv: fix locking violation in page fault handler RISC-V: sifive_l2_cache: Add L2 cache controller driver for SiFive SoCs RISC-V: Add DT documentation for SiFive L2 Cache Controller RISC-V: Avoid using invalid intermediate translations riscv: Support BUG() in kernel module riscv: Add the support for c.ebreak check in is_valid_bugaddr() riscv: support trap-based WARN() riscv: fix sbi_remote_sfence_vma{,_asid}. riscv: move switch_mm to its own file riscv: move flush_icache_{all,mm} to cacheflush.c tty: Don't force RISCV SBI console as preferred console RISC-V: Access CSRs using CSR numbers RISC-V: Add interrupt related SCAUSE defines in asm/csr.h RISC-V: Use tabs to align macro values in asm/csr.h RISC-V: Fix minor checkpatch issues. RISC-V: Support nr_cpus command line option. RISC-V: Implement nosmp commandline option. RISC-V: Add RISC-V specific arch_match_cpu_phys_id riscv: vdso: drop unnecessary cc-ldoption riscv: call pm_power_off from machine_halt / machine_power_off ... commit 7eaf51a2e094229b75cc0c315f1cbbe2f3960058 Author: Joe Lawrence Date: Fri May 17 14:51:17 2019 -0400 stacktrace: Unbreak stack_trace_save_tsk_reliable() Miroslav reported that the livepatch self-tests were failing, specifically a case in which the consistency model ensures that a current executing function is not allowed to be patched, "TEST: busy target module". Recent renovations of stack_trace_save_tsk_reliable() left it returning only an -ERRNO success indication in some configuration combinations: klp_check_stack() ret = stack_trace_save_tsk_reliable() #ifdef CONFIG_ARCH_STACKWALK && CONFIG_HAVE_RELIABLE_STACKTRACE stack_trace_save_tsk_reliable() ret = arch_stack_walk_reliable() return 0 return -EINVAL ... return ret; ... if (ret < 0) /* stack_trace_save_tsk_reliable error */ nr_entries = ret; << 0 Previously (and currently for !CONFIG_ARCH_STACKWALK && CONFIG_HAVE_RELIABLE_STACKTRACE) stack_trace_save_tsk_reliable() returned the number of entries that it consumed in the passed storage array. In the case of the above config and trace, be sure to return the stacktrace_cookie.len on stack_trace_save_tsk_reliable() success. Fixes: 25e39e32b0a3f ("livepatch: Simplify stack trace retrieval") Reported-by: Miroslav Benes Signed-off-by: Joe Lawrence Signed-off-by: Thomas Gleixner Reviewed-by: Kamalesh Babulal Acked-by: Josh Poimboeuf Cc: live-patching@vger.kernel.org Cc: jikos@kernel.org Cc: pmladek@suse.com Link: https://lkml.kernel.org/r/20190517185117.24642-1-joe.lawrence@redhat.com commit c50a42b8f61f3492a0d3a1c7fb4932e19cf3e626 Author: Florian Westphal Date: Sat May 18 23:33:35 2019 +0200 kselftests: netfilter: fix leftover net/net-next merge conflict In nf-next, I had extended this script to also cover NAT support for the inet family. In nf, I extended it to cover a regression with 'fully-random' masquerade. Make this script work again by resolving the conflicts as needed. Fixes: 8b4483658364f0 ("Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net") Signed-off-by: Florian Westphal Signed-off-by: David S. Miller commit fc2694ec1ab7c805505bef2752aca56977a22abd Author: Masahiro Yamada Date: Sat May 18 17:07:48 2019 +0900 kconfig: use 'else ifneq' for Makefile to improve readability 'ifeq ... else ifneq ... endif' notation is supported by GNU Make 3.81 or later, which is the requirement for building the kernel since commit 37d69ee30808 ("docs: bump minimal GNU Make version to 3.81"). Use it to improve the readability. Signed-off-by: Masahiro Yamada commit de6da1e8bcf0dd2058b950b127491821207679dc Author: Feng Tang Date: Fri May 17 14:31:50 2019 -0700 panic: add an option to replay all the printk message in buffer Currently on panic, kernel will lower the loglevel and print out pending printk msg only with console_flush_on_panic(). Add an option for users to configure the "panic_print" to replay all dmesg in buffer, some of which they may have never seen due to the loglevel setting, which will help panic debugging . [feng.tang@intel.com: keep the original console_flush_on_panic() inside panic()] Link: http://lkml.kernel.org/r/1556199137-14163-1-git-send-email-feng.tang@intel.com [feng.tang@intel.com: use logbuf lock to protect the console log index] Link: http://lkml.kernel.org/r/1556269868-22654-1-git-send-email-feng.tang@intel.com Link: http://lkml.kernel.org/r/1556095872-36838-1-git-send-email-feng.tang@intel.com Signed-off-by: Feng Tang Reviewed-by: Petr Mladek Cc: Aaro Koskinen Cc: Petr Mladek Cc: Steven Rostedt Cc: Sergey Senozhatsky Cc: Kees Cook Cc: Borislav Petkov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5d59aa8f9ce972b472201aed86e904bb75879ff0 Author: Steven Price Date: Fri May 17 14:31:47 2019 -0700 initramfs: don't free a non-existent initrd Since commit 54c7a8916a88 ("initramfs: free initrd memory if opening /initrd.image fails"), the kernel has unconditionally attempted to free the initrd even if it doesn't exist. In the non-existent case this causes a boot-time splat if CONFIG_DEBUG_VIRTUAL is enabled due to a call to virt_to_phys() with a NULL address. Instead we should check that the initrd actually exists and only attempt to free it if it does. Link: http://lkml.kernel.org/r/20190516143125.48948-1-steven.price@arm.com Fixes: 54c7a8916a88 ("initramfs: free initrd memory if opening /initrd.image fails") Signed-off-by: Steven Price Reported-by: Mark Rutland Tested-by: Mark Rutland Reviewed-by: Mike Rapoport Cc: Christoph Hellwig Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ec084de929e419e51bcdafaafe567d9e7d0273b7 Author: Jiufei Xue Date: Fri May 17 14:31:44 2019 -0700 fs/writeback.c: use rcu_barrier() to wait for inflight wb switches going into workqueue when umount synchronize_rcu() didn't wait for call_rcu() callbacks, so inode wb switch may not go to the workqueue after synchronize_rcu(). Thus previous scheduled switches was not finished even flushing the workqueue, which will cause a NULL pointer dereferenced followed below. VFS: Busy inodes after unmount of vdd. Self-destruct in 5 seconds. Have a nice day... BUG: unable to handle kernel NULL pointer dereference at 0000000000000278 evict+0xb3/0x180 iput+0x1b0/0x230 inode_switch_wbs_work_fn+0x3c0/0x6a0 worker_thread+0x4e/0x490 ? process_one_work+0x410/0x410 kthread+0xe6/0x100 ret_from_fork+0x39/0x50 Replace the synchronize_rcu() call with a rcu_barrier() to wait for all pending callbacks to finish. And inc isw_nr_in_flight after call_rcu() in inode_switch_wbs() to make more sense. Link: http://lkml.kernel.org/r/20190429024108.54150-1-jiufei.xue@linux.alibaba.com Signed-off-by: Jiufei Xue Acked-by: Tejun Heo Suggested-by: Tejun Heo Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 60fce36afa9c77c7ccbf980c4f670f3be3651fce Author: Mel Gorman Date: Fri May 17 14:31:41 2019 -0700 mm/compaction.c: correct zone boundary handling when isolating pages from a pageblock syzbot reported the following error from a tree with a head commit of baf76f0c58ae ("slip: make slhc_free() silently accept an error pointer") BUG: unable to handle kernel paging request at ffffea0003348000 #PF error: [normal kernel read fault] PGD 12c3f9067 P4D 12c3f9067 PUD 12c3f8067 PMD 0 Oops: 0000 [#1] PREEMPT SMP KASAN CPU: 1 PID: 28916 Comm: syz-executor.2 Not tainted 5.1.0-rc6+ #89 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 RIP: 0010:constant_test_bit arch/x86/include/asm/bitops.h:314 [inline] RIP: 0010:PageCompound include/linux/page-flags.h:186 [inline] RIP: 0010:isolate_freepages_block+0x1c0/0xd40 mm/compaction.c:579 Code: 01 d8 ff 4d 85 ed 0f 84 ef 07 00 00 e8 29 00 d8 ff 4c 89 e0 83 85 38 ff ff ff 01 48 c1 e8 03 42 80 3c 38 00 0f 85 31 0a 00 00 <4d> 8b 2c 24 31 ff 49 c1 ed 10 41 83 e5 01 44 89 ee e8 3a 01 d8 ff RSP: 0018:ffff88802b31eab8 EFLAGS: 00010246 RAX: 1ffffd4000669000 RBX: 00000000000cd200 RCX: ffffc9000a235000 RDX: 000000000001ca5e RSI: ffffffff81988cc7 RDI: 0000000000000001 RBP: ffff88802b31ebd8 R08: ffff88805af700c0 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: ffffea0003348000 R13: 0000000000000000 R14: ffff88802b31f030 R15: dffffc0000000000 FS: 00007f61648dc700(0000) GS:ffff8880ae900000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffffea0003348000 CR3: 0000000037c64000 CR4: 00000000001426e0 Call Trace: fast_isolate_around mm/compaction.c:1243 [inline] fast_isolate_freepages mm/compaction.c:1418 [inline] isolate_freepages mm/compaction.c:1438 [inline] compaction_alloc+0x1aee/0x22e0 mm/compaction.c:1550 There is no reproducer and it is difficult to hit -- 1 crash every few days. The issue is very similar to the fix in commit 6b0868c820ff ("mm/compaction.c: correct zone boundary handling when resetting pageblock skip hints"). When isolating free pages around a target pageblock, the boundary handling is off by one and can stray into the next pageblock. Triggering the syzbot error requires that the end of pageblock is section or zone aligned, and that the next section is unpopulated. A more subtle consequence of the bug is that pageblocks were being improperly used as migration targets which potentially hurts fragmentation avoidance in the long-term one page at a time. A debugging patch revealed that it's definitely possible to stray outside of a pageblock which is not intended. While syzbot cannot be used to verify this patch, it was confirmed that the debugging warning no longer triggers with this patch applied. It has also been confirmed that the THP allocation stress tests are not degraded by this patch. Link: http://lkml.kernel.org/r/20190510182124.GI18914@techsingularity.net Fixes: e332f741a8dd ("mm, compaction: be selective about what pageblocks to clear skip hints") Signed-off-by: Mel Gorman Reported-by: syzbot+d84c80f9fe26a0f7a734@syzkaller.appspotmail.com Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: Qian Cai Cc: Michal Hocko Cc: Vlastimil Babka Cc: # v5.1+ Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a6cf4e0fe3e740ed7af39fdda721e1ac12247dd3 Author: Uladzislau Rezki (Sony) Date: Fri May 17 14:31:37 2019 -0700 mm/vmap: add DEBUG_AUGMENT_LOWEST_MATCH_CHECK macro This macro adds some debug code to check that vmap allocations are happened in ascending order. By default this option is set to 0 and not active. It requires recompilation of the kernel to activate it. Set to 1, compile the kernel. [urezki@gmail.com: v4] Link: http://lkml.kernel.org/r/20190406183508.25273-4-urezki@gmail.com Link: http://lkml.kernel.org/r/20190402162531.10888-4-urezki@gmail.com Signed-off-by: Uladzislau Rezki (Sony) Reviewed-by: Roman Gushchin Cc: Ingo Molnar Cc: Joel Fernandes Cc: Matthew Wilcox Cc: Michal Hocko Cc: Oleksiy Avramchenko Cc: Steven Rostedt Cc: Tejun Heo Cc: Thomas Garnier Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit bb850f4dae4abb18c5ee727bb2d6df9ca47ede49 Author: Uladzislau Rezki (Sony) Date: Fri May 17 14:31:34 2019 -0700 mm/vmap: add DEBUG_AUGMENT_PROPAGATE_CHECK macro This macro adds some debug code to check that the augment tree is maintained correctly, meaning that every node contains valid subtree_max_size value. By default this option is set to 0 and not active. It requires recompilation of the kernel to activate it. Set to 1, compile the kernel. [urezki@gmail.com: v4] Link: http://lkml.kernel.org/r/20190406183508.25273-3-urezki@gmail.com Link: http://lkml.kernel.org/r/20190402162531.10888-3-urezki@gmail.com Signed-off-by: Uladzislau Rezki (Sony) Reviewed-by: Roman Gushchin Cc: Ingo Molnar Cc: Joel Fernandes Cc: Matthew Wilcox Cc: Michal Hocko Cc: Oleksiy Avramchenko Cc: Steven Rostedt Cc: Tejun Heo Cc: Thomas Garnier Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 68ad4a3304335358f95a417f2a2b0c909e5119c4 Author: Uladzislau Rezki (Sony) Date: Fri May 17 14:31:31 2019 -0700 mm/vmalloc.c: keep track of free blocks for vmap allocation Patch series "improve vmap allocation", v3. Objective --------- Please have a look for the description at: https://lkml.org/lkml/2018/10/19/786 but let me also summarize it a bit here as well. The current implementation has O(N) complexity. Requests with different permissive parameters can lead to long allocation time. When i say "long" i mean milliseconds. Description ----------- This approach organizes the KVA memory layout into free areas of the 1-ULONG_MAX range, i.e. an allocation is done over free areas lookups, instead of finding a hole between two busy blocks. It allows to have lower number of objects which represent the free space, therefore to have less fragmented memory allocator. Because free blocks are always as large as possible. It uses the augment tree where all free areas are sorted in ascending order of va->va_start address in pair with linked list that provides O(1) access to prev/next elements. Since the tree is augment, we also maintain the "subtree_max_size" of VA that reflects a maximum available free block in its left or right sub-tree. Knowing that, we can easily traversal toward the lowest (left most path) free area. Allocation: ~O(log(N)) complexity. It is sequential allocation method therefore tends to maximize locality. The search is done until a first suitable block is large enough to encompass the requested parameters. Bigger areas are split. I copy paste here the description of how the area is split, since i described it in https://lkml.org/lkml/2018/10/19/786 A free block can be split by three different ways. Their names are FL_FIT_TYPE, LE_FIT_TYPE/RE_FIT_TYPE and NE_FIT_TYPE, i.e. they correspond to how requested size and alignment fit to a free block. FL_FIT_TYPE - in this case a free block is just removed from the free list/tree because it fully fits. Comparing with current design there is an extra work with rb-tree updating. LE_FIT_TYPE/RE_FIT_TYPE - left/right edges fit. In this case what we do is just cutting a free block. It is as fast as a current design. Most of the vmalloc allocations just end up with this case, because the edge is always aligned to 1. NE_FIT_TYPE - Is much less common case. Basically it happens when requested size and alignment does not fit left nor right edges, i.e. it is between them. In this case during splitting we have to build a remaining left free area and place it back to the free list/tree. Comparing with current design there are two extra steps. First one is we have to allocate a new vmap_area structure. Second one we have to insert that remaining free block to the address sorted list/tree. In order to optimize a first case there is a cache with free_vmap objects. Instead of allocating from slab we just take an object from the cache and reuse it. Second one is pretty optimized. Since we know a start point in the tree we do not do a search from the top. Instead a traversal begins from a rb-tree node we split. De-allocation. ~O(log(N)) complexity. An area is not inserted straight away to the tree/list, instead we identify the spot first, checking if it can be merged around neighbors. The list provides O(1) access to prev/next, so it is pretty fast to check it. Summarizing. If merged then large coalesced areas are created, if not the area is just linked making more fragments. There is one more thing that i should mention here. After modification of VA node, its subtree_max_size is updated if it was/is the biggest area in its left or right sub-tree. Apart of that it can also be populated back to upper levels to fix the tree. For more details please have a look at the __augment_tree_propagate_from() function and the description. Tests and stressing ------------------- I use the "test_vmalloc.sh" test driver available under "tools/testing/selftests/vm/" since 5.1-rc1 kernel. Just trigger "sudo ./test_vmalloc.sh" to find out how to deal with it. Tested on different platforms including x86_64/i686/ARM64/x86_64_NUMA. Regarding last one, i do not have any physical access to NUMA system, therefore i emulated it. The time of stressing is days. If you run the test driver in "stress mode", you also need the patch that is in Andrew's tree but not in Linux 5.1-rc1. So, please apply it: http://git.cmpxchg.org/cgit.cgi/linux-mmotm.git/commit/?id=e0cf7749bade6da318e98e934a24d8b62fab512c After massive testing, i have not identified any problems like memory leaks, crashes or kernel panics. I find it stable, but more testing would be good. Performance analysis -------------------- I have used two systems to test. One is i5-3320M CPU @ 2.60GHz and another is HiKey960(arm64) board. i5-3320M runs on 4.20 kernel, whereas Hikey960 uses 4.15 kernel. I have both system which could run on 5.1-rc1 as well, but the results have not been ready by time i an writing this. Currently it consist of 8 tests. There are three of them which correspond to different types of splitting(to compare with default). We have 3 ones(see above). Another 5 do allocations in different conditions. a) sudo ./test_vmalloc.sh performance When the test driver is run in "performance" mode, it runs all available tests pinned to first online CPU with sequential execution test order. We do it in order to get stable and repeatable results. Take a look at time difference in "long_busy_list_alloc_test". It is not surprising because the worst case is O(N). # i5-3320M How many cycles all tests took: CPU0=646919905370(default) cycles vs CPU0=193290498550(patched) cycles # See detailed table with results here: ftp://vps418301.ovh.net/incoming/vmap_test_results_v2/i5-3320M_performance_default.txt ftp://vps418301.ovh.net/incoming/vmap_test_results_v2/i5-3320M_performance_patched.txt # Hikey960 8x CPUs How many cycles all tests took: CPU0=3478683207 cycles vs CPU0=463767978 cycles # See detailed table with results here: ftp://vps418301.ovh.net/incoming/vmap_test_results_v2/HiKey960_performance_default.txt ftp://vps418301.ovh.net/incoming/vmap_test_results_v2/HiKey960_performance_patched.txt b) time sudo ./test_vmalloc.sh test_repeat_count=1 With this configuration, all tests are run on all available online CPUs. Before running each CPU shuffles its tests execution order. It gives random allocation behaviour. So it is rough comparison, but it puts in the picture for sure. # i5-3320M vs real 101m22.813s real 0m56.805s user 0m0.011s user 0m0.015s sys 0m5.076s sys 0m0.023s # See detailed table with results here: ftp://vps418301.ovh.net/incoming/vmap_test_results_v2/i5-3320M_test_repeat_count_1_default.txt ftp://vps418301.ovh.net/incoming/vmap_test_results_v2/i5-3320M_test_repeat_count_1_patched.txt # Hikey960 8x CPUs vs real unknown real 4m25.214s user unknown user 0m0.011s sys unknown sys 0m0.670s I did not manage to complete this test on "default Hikey960" kernel version. After 24 hours it was still running, therefore i had to cancel it. That is why real/user/sys are "unknown". This patch (of 3): Currently an allocation of the new vmap area is done over busy list iteration(complexity O(n)) until a suitable hole is found between two busy areas. Therefore each new allocation causes the list being grown. Due to over fragmented list and different permissive parameters an allocation can take a long time. For example on embedded devices it is milliseconds. This patch organizes the KVA memory layout into free areas of the 1-ULONG_MAX range. It uses an augment red-black tree that keeps blocks sorted by their offsets in pair with linked list keeping the free space in order of increasing addresses. Nodes are augmented with the size of the maximum available free block in its left or right sub-tree. Thus, that allows to take a decision and traversal toward the block that will fit and will have the lowest start address, i.e. it is sequential allocation. Allocation: to allocate a new block a search is done over the tree until a suitable lowest(left most) block is large enough to encompass: the requested size, alignment and vstart point. If the block is bigger than requested size - it is split. De-allocation: when a busy vmap area is freed it can either be merged or inserted to the tree. Red-black tree allows efficiently find a spot whereas a linked list provides a constant-time access to previous and next blocks to check if merging can be done. In case of merging of de-allocated memory chunk a large coalesced area is created. Complexity: ~O(log(N)) [urezki@gmail.com: v3] Link: http://lkml.kernel.org/r/20190402162531.10888-2-urezki@gmail.com [urezki@gmail.com: v4] Link: http://lkml.kernel.org/r/20190406183508.25273-2-urezki@gmail.com Link: http://lkml.kernel.org/r/20190321190327.11813-2-urezki@gmail.com Signed-off-by: Uladzislau Rezki (Sony) Reviewed-by: Roman Gushchin Cc: Michal Hocko Cc: Matthew Wilcox Cc: Thomas Garnier Cc: Oleksiy Avramchenko Cc: Steven Rostedt Cc: Joel Fernandes Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ee8a2b95b737d5989efeb477d5a1ef5e6955b830 Merge: ba95e5dfd366 f1436c8036fa Author: David S. Miller Date: Sat May 18 13:13:40 2019 -0700 Merge branch 'mlxsw-Two-port-module-fixes' Ido Schimmel says: ==================== mlxsw: Two port module fixes Patch #1 fixes driver initialization failure on old ASICs due to unsupported register access. This is fixed by first testing if the register is supported. Patch #2 fixes reading of certain modules' EEPROM. The problem and solution are explained in detail in the commit message. Please consider both patches for stable. ==================== Signed-off-by: David S. Miller commit f1436c8036fa3632b2ee78841cf5184b7ef0ad87 Author: Vadim Pasternak Date: Sat May 18 18:58:29 2019 +0300 mlxsw: core: Prevent reading unsupported slave address from SFP EEPROM Prevent reading unsupported slave address from SFP EEPROM by testing Diagnostic Monitoring Type byte in EEPROM. Read only page zero of EEPROM, in case this byte is zero. If some SFP transceiver does not support Digital Optical Monitoring (DOM), reading SFP EEPROM slave address 0x51 could return an error. Availability of DOM support is verified by reading from zero page Diagnostic Monitoring Type byte describing how diagnostic monitoring is implemented by transceiver. If bit 6 of this byte is set, it indicates that digital diagnostic monitoring has been implemented. Otherwise it is not and transceiver could fail to reply to transaction for slave address 0x51 [1010001X (A2h)], which is used to access measurements page. Such issue has been observed when reading cable MCP2M00-xxxx, MCP7F00-xxxx, and few others. Fixes: 2ea109039cd3 ("mlxsw: spectrum: Add support for access cable info via ethtool") Fixes: 4400081b631a ("mlxsw: spectrum: Fix EEPROM access in case of SFP/SFP+") Signed-off-by: Vadim Pasternak Acked-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit c52ecff7e6439ca8c9b03282e8869a005aa94831 Author: Vadim Pasternak Date: Sat May 18 18:58:28 2019 +0300 mlxsw: core: Prevent QSFP module initialization for old hardware Old Mellanox silicons, like switchx-2, switch-ib do not support reading QSFP modules temperature through MTMP register. Attempt to access this register on systems equipped with the this kind of silicon will cause initialization flow failure. Test for hardware resource capability is added in order to distinct between old and new silicon - old silicons do not have such capability. Fixes: 6a79507cfe94 ("mlxsw: core: Extend thermal module with per QSFP module thermal zones") Fixes: 5c42eaa07bd0 ("mlxsw: core: Extend hwmon interface with QSFP module temperature attributes") Reported-by: Jiri Pirko Signed-off-by: Vadim Pasternak Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit ba95e5dfd36647622d8897a2a0470dde60e59ffd Author: Jorge E. Moreira Date: Thu May 16 13:51:07 2019 -0700 vsock/virtio: Initialize core virtio vsock before registering the driver Avoid a race in which static variables in net/vmw_vsock/af_vsock.c are accessed (while handling interrupts) before they are initialized. [ 4.201410] BUG: unable to handle kernel paging request at ffffffffffffffe8 [ 4.207829] IP: vsock_addr_equals_addr+0x3/0x20 [ 4.211379] PGD 28210067 P4D 28210067 PUD 28212067 PMD 0 [ 4.211379] Oops: 0000 [#1] PREEMPT SMP PTI [ 4.211379] Modules linked in: [ 4.211379] CPU: 1 PID: 30 Comm: kworker/1:1 Not tainted 4.14.106-419297-gd7e28cc1f241 #1 [ 4.211379] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014 [ 4.211379] Workqueue: virtio_vsock virtio_transport_rx_work [ 4.211379] task: ffffa3273d175280 task.stack: ffffaea1800e8000 [ 4.211379] RIP: 0010:vsock_addr_equals_addr+0x3/0x20 [ 4.211379] RSP: 0000:ffffaea1800ebd28 EFLAGS: 00010286 [ 4.211379] RAX: 0000000000000002 RBX: 0000000000000000 RCX: ffffffffb94e42f0 [ 4.211379] RDX: 0000000000000400 RSI: ffffffffffffffe0 RDI: ffffaea1800ebdd0 [ 4.211379] RBP: ffffaea1800ebd58 R08: 0000000000000001 R09: 0000000000000001 [ 4.211379] R10: 0000000000000000 R11: ffffffffb89d5d60 R12: ffffaea1800ebdd0 [ 4.211379] R13: 00000000828cbfbf R14: 0000000000000000 R15: ffffaea1800ebdc0 [ 4.211379] FS: 0000000000000000(0000) GS:ffffa3273fd00000(0000) knlGS:0000000000000000 [ 4.211379] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 4.211379] CR2: ffffffffffffffe8 CR3: 000000002820e001 CR4: 00000000001606e0 [ 4.211379] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 4.211379] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 4.211379] Call Trace: [ 4.211379] ? vsock_find_connected_socket+0x6c/0xe0 [ 4.211379] virtio_transport_recv_pkt+0x15f/0x740 [ 4.211379] ? detach_buf+0x1b5/0x210 [ 4.211379] virtio_transport_rx_work+0xb7/0x140 [ 4.211379] process_one_work+0x1ef/0x480 [ 4.211379] worker_thread+0x312/0x460 [ 4.211379] kthread+0x132/0x140 [ 4.211379] ? process_one_work+0x480/0x480 [ 4.211379] ? kthread_destroy_worker+0xd0/0xd0 [ 4.211379] ret_from_fork+0x35/0x40 [ 4.211379] Code: c7 47 08 00 00 00 00 66 c7 07 28 00 c7 47 08 ff ff ff ff c7 47 04 ff ff ff ff c3 0f 1f 00 66 2e 0f 1f 84 00 00 00 00 00 8b 47 08 <3b> 46 08 75 0a 8b 47 04 3b 46 04 0f 94 c0 c3 31 c0 c3 90 66 2e [ 4.211379] RIP: vsock_addr_equals_addr+0x3/0x20 RSP: ffffaea1800ebd28 [ 4.211379] CR2: ffffffffffffffe8 [ 4.211379] ---[ end trace f31cc4a2e6df3689 ]--- [ 4.211379] Kernel panic - not syncing: Fatal exception in interrupt [ 4.211379] Kernel Offset: 0x37000000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff) [ 4.211379] Rebooting in 5 seconds.. Fixes: 22b5c0b63f32 ("vsock/virtio: fix kernel panic after device hot-unplug") Cc: Stefan Hajnoczi Cc: Stefano Garzarella Cc: "David S. Miller" Cc: kvm@vger.kernel.org Cc: virtualization@lists.linux-foundation.org Cc: netdev@vger.kernel.org Cc: kernel-team@android.com Cc: stable@vger.kernel.org [4.9+] Signed-off-by: Jorge E. Moreira Reviewed-by: Stefano Garzarella Reviewed-by: Stefan Hajnoczi Acked-by: Stefan Hajnoczi Signed-off-by: David S. Miller commit 62e1c09418fc16d27720b128275cac61367e2c1b Merge: 01be377c6221 4fc4d8dfa056 Author: Ingo Molnar Date: Sat May 18 10:24:43 2019 +0200 Merge tag 'perf-core-for-mingo-5.2-20190517' 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: perf.data: Alexey Budankov: - Streaming compression of perf ring buffer into PERF_RECORD_COMPRESSED user space records, resulting in ~3-5x perf.data file size reduction on variety of tested workloads what saves storage space on larger server systems where perf.data size can easily reach several tens or even hundreds of GiBs, especially when profiling with DWARF-based stacks and tracing of context switches. perf record: Arnaldo Carvalho de Melo - Improve -user-regs/intr-regs suggestions to overcome errors. perf annotate: Jin Yao: - Remove hist__account_cycles() from callback, speeding up branch processing (perf record -b). perf stat: - Add a 'percore' event qualifier, e.g.: -e cpu/event=0,umask=0x3,percore=1/, that sums up the event counts for both hardware threads in a core. We can already do this with --per-core, but it's often useful to do this together with other metrics that are collected per hardware thread. I.e. now its possible to do this per-event, and have it mixed with other events not aggregated by core. core libraries: Donald Yandt: - Check for errors when doing fgets(/proc/version). Jiri Olsa: - Speed up report for perf compiled with linbunwind. tools headers: Arnaldo Carvalho de Melo - Update memcpy_64.S, x86's kvm.h and pt_regs.h. arm64: Florian Fainelli: - Map Brahma-B53 CPUID to cortex-a53 events. - Add Cortex-A57 and Cortex-A72 events. csky: Mao Han: - Add DWARF register mappings for libdw, allowing --call-graph=dwarf to work on the C-SKY arch. x86: Andi Kleen/Kan Liang: - Add support for recording and printing XMM registers, available, for instance, on Icelake. Kan Liang: - Add uncore_upi (Intel's "Ultra Path Interconnect" events) JSON support. UPI replaced the Intel QuickPath Interconnect (QPI) in Xeon Skylake-SP. Intel PT: Adrian Hunter . Fix instructions sampling rate. . Timestamp fixes. . Improve exported-sql-viewer GUI, allowing, for instance, to copy'n'paste the trees, useful for e-mailing. Documentation: Thomas Richter: - Add description for 'perf --debug stderr=1', which redirects stderr to stdout. libtraceevent: Tzvetomir Stoyanov: - Add man pages for the various APIs. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: Ingo Molnar commit 3a48a91901c516a46a3406ea576798538a8d94d2 Author: Masahiro Yamada Date: Sat May 18 01:07:15 2019 +0900 kbuild: check uniqueness of module names In the recent build test of linux-next, Stephen saw a build error caused by a broken .tmp_versions/*.mod file: https://lkml.org/lkml/2019/5/13/991 drivers/net/phy/asix.ko and drivers/net/usb/asix.ko have the same basename, and there is a race in generating .tmp_versions/asix.mod Kbuild has not checked this before, and it suddenly shows up with obscure error messages when this kind of race occurs. Non-unique module names cause various sort of problems, but it is not trivial to catch them by eyes. Hence, this script. It checks not only real modules, but also built-in modules (i.e. controlled by tristate CONFIG option, but currently compiled with =y). Non-unique names for built-in modules also cause problems because /sys/modules/ would fall over. For the latest kernel, I tested "make allmodconfig all" (or more quickly "make allyesconfig modules"), and it detected the following: warning: same basename if the following are built as modules: drivers/regulator/88pm800.ko drivers/mfd/88pm800.ko warning: same basename if the following are built as modules: drivers/gpu/drm/bridge/adv7511/adv7511.ko drivers/media/i2c/adv7511.ko warning: same basename if the following are built as modules: drivers/net/phy/asix.ko drivers/net/usb/asix.ko warning: same basename if the following are built as modules: fs/coda/coda.ko drivers/media/platform/coda/coda.ko warning: same basename if the following are built as modules: drivers/net/phy/realtek.ko drivers/net/dsa/realtek.ko Reported-by: Stephen Rothwell Signed-off-by: Masahiro Yamada Reviewed-by: Kees Cook Reviewed-by: Stephen Rothwell Reviewed-by: Lucas De Marchi commit aff11cd983ec0850651ee9b1c2a88b33358cb2f2 Author: Alexander Popov Date: Fri May 17 22:42:22 2019 +0300 kconfig: Terminate menu blocks with a comment in the generated config Currently menu blocks start with a pretty header but end with nothing in the generated config. So next config options stick together with the options from the menu block. Let's terminate menu blocks in the generated config with a comment and a newline if needed. Example: ... CONFIG_BPF_STREAM_PARSER=y CONFIG_NET_FLOW_LIMIT=y # # Network testing # CONFIG_NET_PKTGEN=y CONFIG_NET_DROP_MONITOR=y # end of Network testing # end of Networking options CONFIG_HAMRADIO=y ... Signed-off-by: Alexander Popov Reviewed-by: Kees Cook Signed-off-by: Masahiro Yamada commit 233c741dcbb135aeaeab89b74ab9681e4ca2e921 Author: Masahiro Yamada Date: Thu May 16 01:18:54 2019 +0900 kbuild: add LICENSES to KBUILD_ALLDIRS For *-pkg targets, the LICENSES directory should be included in the source tarball. Signed-off-by: Masahiro Yamada commit cdd750bfb1f76fe9be8cfb53cbe77b2e811081ab Author: Masahiro Yamada Date: Mon May 13 15:22:17 2019 +0900 kbuild: remove 'addtree' and 'flags' magic for header search paths The 'addtree' and 'flags' in scripts/Kbuild.include are so compilecated and ugly. As I mentioned in [1], Kbuild should stop automatic prefixing of header search path options. I fixed up (almost) all Makefiles in the kernel. Now 'addtree' and 'flags' have been removed. Kbuild still caters to add $(srctree)/$(src) and $(objtree)/$(obj) to the header search path for O= building, but never touches extra compiler options from ccflags-y etc. [1]: https://patchwork.kernel.org/patch/9632347/ Signed-off-by: Masahiro Yamada commit 9cc342f6c4a06ea613ddef1bcaa25409260aec63 Author: Masahiro Yamada Date: Mon May 13 15:22:16 2019 +0900 treewide: prefix header search paths with $(srctree)/ Currently, the Kbuild core manipulates header search paths in a crazy way [1]. To fix this mess, I want all Makefiles to add explicit $(srctree)/ to the search paths in the srctree. Some Makefiles are already written in that way, but not all. The goal of this work is to make the notation consistent, and finally get rid of the gross hacks. Having whitespaces after -I does not matter since commit 48f6e3cf5bc6 ("kbuild: do not drop -I without parameter"). [1]: https://patchwork.kernel.org/patch/9632347/ Signed-off-by: Masahiro Yamada commit 14340de506c9aa08baa9540ee6250c9d978c16b7 Author: Masahiro Yamada Date: Mon May 13 15:22:15 2019 +0900 media: prefix header search paths with $(srctree)/ Currently, the Kbuild core manipulates header search paths in a crazy way [1]. To fix this mess, I want all Makefiles to add explicit $(srctree)/ to the search paths in the srctree. Some Makefiles are already written in that way, but not all. The goal of this work is to make the notation consistent, and finally get rid of the gross hacks. Having whitespaces after -I does not matter since commit 48f6e3cf5bc6 ("kbuild: do not drop -I without parameter"). [1]: https://patchwork.kernel.org/patch/9632347/ Signed-off-by: Masahiro Yamada Reviewed-by: Sakari Ailus commit cc966c92c1d40e53074a3aed1d15b4a306161605 Author: Masahiro Yamada Date: Mon May 13 15:22:14 2019 +0900 media: remove unneeded header search paths I was able to build without these extra header search paths. Signed-off-by: Masahiro Yamada commit 986a13769c4bd00f1b894b08af2f1068f88d3d5e Author: Masahiro Yamada Date: Mon May 13 11:14:05 2019 +0900 alpha: move arch/alpha/defconfig to arch/alpha/configs/defconfig As of Linux 5.1, alpha and s390 are the last architectures that have defconfig in arch/*/ instead of arch/*/configs/. $ find arch -name defconfig | sort arch/alpha/defconfig arch/arm64/configs/defconfig arch/csky/configs/defconfig arch/nds32/configs/defconfig arch/riscv/configs/defconfig arch/s390/defconfig The arch/$(ARCH)/defconfig is the hard-coded default in Kconfig, and I want to deprecate it after evacuating the remaining defconfig into the standard location, arch/*/configs/. Define KBUILD_DEFCONFIG like other architectures, and move defconfig into the configs/ subdirectory. Signed-off-by: Masahiro Yamada Reviewed-by: Paul Walmsley commit 902a6898bfb4878eb186d9223d12c903a5f60fa5 Author: Masahiro Yamada Date: Thu May 9 16:35:55 2019 +0900 kbuild: terminate Kconfig when $(CC) or $(LD) is missing If the compiler specified by $(CC) is not present, the Kconfig stage sprinkles 'not found' messages, then succeeds. $ make CROSS_COMPILE=foo defconfig /bin/sh: 1: foogcc: not found /bin/sh: 1: foogcc: not found *** Default configuration is based on 'x86_64_defconfig' ./scripts/gcc-version.sh: 17: ./scripts/gcc-version.sh: foogcc: not found ./scripts/gcc-version.sh: 18: ./scripts/gcc-version.sh: foogcc: not found ./scripts/gcc-version.sh: 19: ./scripts/gcc-version.sh: foogcc: not found ./scripts/gcc-version.sh: 17: ./scripts/gcc-version.sh: foogcc: not found ./scripts/gcc-version.sh: 18: ./scripts/gcc-version.sh: foogcc: not found ./scripts/gcc-version.sh: 19: ./scripts/gcc-version.sh: foogcc: not found ./scripts/clang-version.sh: 11: ./scripts/clang-version.sh: foogcc: not found ./scripts/gcc-plugin.sh: 11: ./scripts/gcc-plugin.sh: foogcc: not found init/Kconfig:16:warning: 'GCC_VERSION': number is invalid # # configuration written to .config # Terminate parsing files immediately if $(CC) or $(LD) is not found. "make *config" will fail more nicely. $ make CROSS_COMPILE=foo defconfig *** Default configuration is based on 'x86_64_defconfig' scripts/Kconfig.include:34: compiler 'foogcc' not found make[1]: *** [scripts/kconfig/Makefile;82: defconfig] Error 1 make: *** [Makefile;557: defconfig] Error 2 Signed-off-by: Masahiro Yamada commit d2f8ae0e4c5c754f1b2a7b8388d19a1a977e698a Author: Masahiro Yamada Date: Sun May 12 11:13:48 2019 +0900 kbuild: turn auto.conf.cmd into a mandatory include file syncconfig is responsible for keeping auto.conf up-to-date, so if it fails for any reason, the build must be terminated immediately. However, since commit 9390dff66a52 ("kbuild: invoke syncconfig if include/config/auto.conf.cmd is missing"), Kbuild continues running even after syncconfig fails. You can confirm this by intentionally making syncconfig error out: diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c index 08ba146..307b9de 100644 --- a/scripts/kconfig/confdata.c +++ b/scripts/kconfig/confdata.c @@ -1023,6 +1023,9 @@ int conf_write_autoconf(int overwrite) FILE *out, *tristate, *out_h; int i; + if (overwrite) + return 1; + if (!overwrite && is_present(autoconf_name)) return 0; Then, syncconfig fails, but Make would not stop: $ make -s mrproper allyesconfig defconfig $ make scripts/kconfig/conf --syncconfig Kconfig *** Error during sync of the configuration. make[2]: *** [scripts/kconfig/Makefile;69: syncconfig] Error 1 make[1]: *** [Makefile;557: syncconfig] Error 2 make: *** [include/config/auto.conf.cmd] Deleting file 'include/config/tristate.conf' make: Failed to remake makefile 'include/config/auto.conf'. SYSTBL arch/x86/include/generated/asm/syscalls_32.h SYSHDR arch/x86/include/generated/asm/unistd_32_ia32.h SYSHDR arch/x86/include/generated/asm/unistd_64_x32.h SYSTBL arch/x86/include/generated/asm/syscalls_64.h [ continue running ... ] The reason is in the behavior of a pattern rule with multi-targets. %/auto.conf %/auto.conf.cmd %/tristate.conf: $(KCONFIG_CONFIG) $(Q)$(MAKE) -f $(srctree)/Makefile syncconfig GNU Make knows this rule is responsible for making all the three files simultaneously. As far as examined, auto.conf.cmd is the target in question when this rule is invoked. It is probably because auto.conf.cmd is included below the inclusion of auto.conf. The inclusion of auto.conf is mandatory, while that of auto.conf.cmd is optional. GNU Make does not care about the failure in the process of updating optional include files. I filed this issue (https://savannah.gnu.org/bugs/?56301) in case this behavior could be improved somehow in future releases of GNU Make. Anyway, it is quite easy to fix our Makefile. Given that auto.conf is already a mandatory include file, there is no reason to stick auto.conf.cmd optional. Make it mandatory as well. Cc: linux-stable # 5.0+ Fixes: 9390dff66a52 ("kbuild: invoke syncconfig if include/config/auto.conf.cmd is missing") Signed-off-by: Masahiro Yamada commit f46e65da48b21bef5ad6297f429ea5b51436021f Author: Masahiro Yamada Date: Sat May 11 12:13:54 2019 +0900 .gitignore: exclude .get_maintainer.ignore and .gitattributes Also, sort the patterns alphabetically. Update the comment since we have non-git files here. Signed-off-by: Masahiro Yamada commit a1494304346a3c15fb7a42b39e891f112844c1c7 Author: Masahiro Yamada Date: Fri May 10 23:10:09 2019 +0900 kbuild: add all Clang-specific flags unconditionally We do not support old Clang versions. Upgrade your clang version if any of these flags is unsupported. Let's add all flags inside ifdef CONFIG_CC_IS_CLANG unconditionally. Signed-off-by: Masahiro Yamada Reviewed-by: Sedat Dilek Reviewed-by: Nathan Chancellor Tested-by: Nick Desaulniers commit 7eb8e5f073051eebbf55fa6b90ed2246c2274552 Author: Nathan Chancellor Date: Thu May 9 04:48:25 2019 -0700 kbuild: Don't try to add '-fcatch-undefined-behavior' flag This is no longer a valid option in clang, it was removed in 3.5, which we don't support. https://github.com/llvm/llvm-project/commit/cb3f812b6b9fab8f3b41414f24e90222170417b4 Signed-off-by: Nathan Chancellor Reviewed-by: Nick Desaulniers Signed-off-by: Masahiro Yamada commit 4c8dd95a723d9cccf8810be54aa62be82885c9d8 Author: Masahiro Yamada Date: Thu May 9 15:46:35 2019 +0900 kbuild: add some extra warning flags unconditionally These flags are documented in the GCC 4.6 manual, and recognized by Clang as well. Let's rip off the cc-option / cc-disable-warning switches. Signed-off-by: Masahiro Yamada Reviewed-by: Nathan Chancellor Tested-by: Nick Desaulniers commit 8289f913fe12644a9358c12df3da5bd4e7767df0 Author: Masahiro Yamada Date: Thu May 9 15:45:49 2019 +0900 kbuild: add -Wvla flag unconditionally This flag is documented in the GCC 4.6 manual, and recognized by Clang as well. Let's rip off the cc-option switch. Signed-off-by: Masahiro Yamada Reviewed-by: Sedat Dilek Reviewed-by: Nathan Chancellor Acked-by: Kees Cook Tested-by: Nick Desaulniers commit 33ff99fb0915a2225897d0bf072ec271e81ad8e0 Author: Masahiro Yamada Date: Thu May 9 16:59:34 2019 +0900 arch: remove dangling asm-generic wrappers These generic-y defines do not have the corresponding generic header in include/asm-generic/, so they are definitely invalid. Signed-off-by: Masahiro Yamada commit 6944a06d141b9afea38b15da08bd773d90abef0c Author: Masahiro Yamada Date: Thu May 9 10:00:19 2019 +0900 samples: guard sub-directories with CONFIG options Do not descend to sub-directories when unneeded. I used subdir-$(CONFIG_...) for hidraw, seccomp, and vfs because they only contain host programs. While we are here, let's add SPDX License tag, and sort the directories alphabetically. Signed-off-by: Masahiro Yamada commit a3bc88645e9293f5aaac9c05a185d9f1c0594c6c Author: Masahiro Yamada Date: Thu May 9 09:58:01 2019 +0900 kbuild: re-enable int-in-bool-context warning This warning was disabled by commit bd664f6b3e37 ("disable new gcc-7.1.1 warnings for now") just because it was too noisy. Thanks to Arnd Bergmann, all warnings have been fixed. Now, we are ready to re-enable it. Signed-off-by: Masahiro Yamada Cc: Arnd Bergmann commit 593e0fd97ef11eacc5055c83ebb652602dba0a77 Author: Krzysztof Kozlowski Date: Mon May 6 14:47:00 2019 +0200 MAINTAINERS: kbuild: Add pattern for scripts/*vmlinux* scripts/link-vmlinux.sh is part of kbuild so extend the pattern to match any vmlinux related scripts. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Masahiro Yamada commit 178aa03bbe6c0bc2f4b7535b1d06f5c0f8453a0b Author: Masahiro Yamada Date: Wed May 1 22:56:01 2019 +0900 sh: exclude vmlinux.scr from .gitignore pattern arch/sh/boot/.gitignore has the pattern "vmlinux*"; this is effective not only for the current directory, but also for any sub-directories. So, from the point of .gitignore grammar, the following check-in files are also considered to be ignored: arch/sh/boot/compressed/vmlinux.scr arch/sh/boot/romimage/vmlinux.scr As the manual gitignore(5) says "Files already tracked by Git are not affected", this is not a problem as far as Git is concerned. However, Git is not the only program that parses .gitignore because .gitignore is useful to distinguish build artifacts from source files. For example, tar(1) supports the --exclude-vcs-ignore option. As of writing, this option does not work perfectly, but it intends to create a tarball excluding files specified by .gitignore. So, I believe it is better to fix this issue. Signed-off-by: Masahiro Yamada commit 5b13f841b37ffa72a66e6209914993f9c9d2287f Author: Nick Desaulniers Date: Wed Apr 24 11:02:21 2019 -0700 sh: vsyscall: drop unnecessary cc-ldoption Towards the goal of removing cc-ldoption, it seems that --hash-style= was added to binutils 2.17.50.0.2 in 2006. The minimal required version of binutils for the kernel according to Documentation/process/changes.rst is 2.20. Link: https://gcc.gnu.org/ml/gcc/2007-01/msg01141.html Cc: clang-built-linux@googlegroups.com Suggested-by: Masahiro Yamada Signed-off-by: Nick Desaulniers Acked-by: Yoshinori Sato Signed-off-by: Masahiro Yamada commit 861fde319134d4aaaa94ac6d976e4d8a329ab889 Author: Nick Desaulniers Date: Tue Apr 23 13:48:20 2019 -0700 ia64: require -Wl,--hash-style=sysv Towards the goal of removing cc-ldoption, it seems that --hash-style= was added to binutils 2.17.50.0.2 in 2006. The minimal required version of binutils for the kernel according to Documentation/process/changes.rst is 2.20. Link: https://gcc.gnu.org/ml/gcc/2007-01/msg01141.html Cc: clang-built-linux@googlegroups.com Suggested-by: Masahiro Yamada Signed-off-by: Nick Desaulniers Signed-off-by: Masahiro Yamada commit 901b5732fbcc5a7f48c3ebf3f9ed51e07e10abd9 Author: Masahiro Yamada Date: Mon Feb 4 16:56:01 2019 +0900 csky: remove deprecated arch/csky/boot/dts/include/dt-bindings Having a symbolic link arch/*/boot/dts/include/dt-bindings was deprecated by commit d5d332d3f7e8 ("devicetree: Move include prefixes from arch to separate directory"). Signed-off-by: Masahiro Yamada commit 5a35c8ea7c403871d5c533f8872f5b61f7c0d293 Merge: 45c20ebb82e9 9c3ddee12464 Author: David S. Miller Date: Fri May 17 16:33:06 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf Daniel Borkmann says: ==================== pull-request: bpf 2019-05-18 The following pull-request contains BPF updates for your *net* tree. The main changes are: 1) Fix bpftool's raw BTF dump in relation to forward declarations of union/ structs, and another fix to unexport logging helpers, from Andrii. 2) Fix inode permission check for retrieving bpf programs, from Chenbo. 3) Fix bpftool to raise rlimit earlier as otherwise libbpf's feature probing can fail and subsequently it refuses to load an object, from Yonghong. 4) Fix declaration of bpf_get_current_task() in kselftests, from Alexei. 5) Fix up BPF kselftest .gitignore to add generated files, from Stanislav. ==================== Signed-off-by: David S. Miller commit 45c20ebb82e9164b7751fdb19dbf2859d173e9ba Merge: 5593530e5694 e7739a60712a Author: David S. Miller Date: Fri May 17 15:16:03 2019 -0700 Merge tag 'mlx5-fixes-2019-05-17' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux Saeed Mahameed says: ==================== Mellanox, mlx5 fixes 2019-05-17 This series introduces some fixes to mlx5 driver. For more information please see tag log below. Please pull and let me know if there is any problem. For -stable v4.19 net/mlx5e: Fix ethtool rxfh commands when CONFIG_MLX5_EN_RXNFC is disabled net/mlx5: Imply MLXFW in mlx5_core For -stable v5.0 net/mlx5e: Add missing ethtool driver info for representors net/mlx5e: Additional check for flow destination comparison For -stable v5.1 net/mlx5: Fix peer pf disable hca command ==================== Signed-off-by: David S. Miller commit 2c1d0e3631e5732dba98ef49ac0bec1388776793 Author: Jan Kara Date: Fri May 17 17:37:18 2019 -0400 ext4: avoid panic during forced reboot due to aborted journal Handling of aborted journal is a special code path different from standard ext4_error() one and it can call panic() as well. Commit 1dc1097ff60e ("ext4: avoid panic during forced reboot") forgot to update this path so fix that omission. Fixes: 1dc1097ff60e ("ext4: avoid panic during forced reboot") Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o Cc: stable@kernel.org # 5.1 commit 72cf0b07418a9c8349aa9137194b1ccba6e54a9d Merge: 0ef0fd351550 56df90b631fc Author: Linus Torvalds Date: Fri May 17 13:57:54 2019 -0700 Merge tag 'sound-fix-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "Just a few HD-audio fixes, most of which are specific to Realtek codecs" * tag 'sound-fix-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: hda/realtek - Fix for Lenovo B50-70 inverted internal microphone bug ALSA: hda: Fix race between creating and refreshing sysfs entries ALSA: hda/realtek - Corrected fixup for System76 Gazelle (gaze14) ALSA: hda/realtek - Avoid superfluous COEF EAPD setups ALSA: hda/realtek - Fixup headphone noise via runtime suspend commit e7739a60712a041516f74c8917a0b3e5f1e4f01e Author: Eli Britstein Date: Sun May 12 11:50:58 2019 +0000 net/mlx5e: Fix possible modify header actions memory leak The cited commit could disable the modify header flag, but did not free the allocated memory for the modify header actions. Fix it. Fixes: 27c11b6b844cd ("net/mlx5e: Do not rewrite fields with the same match") Signed-off-by: Eli Britstein Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit 2ef86872d98d5558bfc852b47b1140e838d601d2 Author: Eli Britstein Date: Wed Apr 10 19:42:20 2019 +0000 net/mlx5e: Fix no rewrite fields with the same match With commit 27c11b6b844c ("net/mlx5e: Do not rewrite fields with the same match") there are no rewrites if the rewrite value is the same as the matched value. However, if the field is not matched, the rewrite is also wrongly skipped. Fix it. Fixes: 27c11b6b844c ("net/mlx5e: Do not rewrite fields with the same match") Signed-off-by: Eli Britstein Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit c979c445a88e1c9dd7d8f90838c10456ae4ecd09 Author: Dmytro Linkin Date: Thu May 2 15:21:38 2019 +0000 net/mlx5e: Additional check for flow destination comparison Flow destination comparison has an inaccuracy: code see no difference between same vf ports, which belong to different pfs. Example: If start ping from VF0 (PF1) to VF1 (PF1) and mirror all traffic to VF0 (PF2), icmp reply to VF0 (PF1) and mirrored flow to VF0 (PF2) would be determined as same destination. It lead to creating flow handler with rule nodes, which not added to node tree. When later driver try to delete this flow rules we got kernel crash. Add comparison of vhca_id field to avoid this. Fixes: 1228e912c934 ("net/mlx5: Consider encapsulation properties when comparing destinations") Signed-off-by: Dmytro Linkin Reviewed-by: Roi Dayan Reviewed-by: Vlad Buslov Signed-off-by: Saeed Mahameed commit cf83c8fdcd4756644595521f48748ec22f7efede Author: Dmytro Linkin Date: Thu Apr 25 08:52:02 2019 +0000 net/mlx5e: Add missing ethtool driver info for representors For all representors added firmware version info to show in ethtool driver info. For uplink representor, because only it is tied to the pci device sysfs, added pci bus info. Fixes: ff9b85de5d5d ("net/mlx5e: Add some ethtool port control entries to the uplink rep netdev") Signed-off-by: Dmytro Linkin Reviewed-by: Gavi Teitz Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit 955858009708326b26f47b6f99939489bb88a0dc Author: Eli Britstein Date: Mon May 13 09:06:02 2019 +0000 net/mlx5e: Fix number of vports for ingress ACL configuration With the cited commit, ACLs are configured for the VF ports. The loop for the number of ports had the wrong number. Fix it. Fixes: 184867373d8c ("net/mlx5e: ACLs for priority tag mode") Signed-off-by: Eli Britstein Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit 8f0916c6dc5cd5e3bc52416fa2a9ff4075080180 Author: Saeed Mahameed Date: Tue May 7 12:59:38 2019 -0700 net/mlx5e: Fix ethtool rxfh commands when CONFIG_MLX5_EN_RXNFC is disabled ethtool user spaces needs to know ring count via ETHTOOL_GRXRINGS when executing (ethtool -x) which is retrieved via ethtool get_rxnfc callback, in mlx5 this callback is disabled when CONFIG_MLX5_EN_RXNFC=n. This patch allows only ETHTOOL_GRXRINGS command on mlx5e_get_rxnfc() when CONFIG_MLX5_EN_RXNFC is disabled, so ethtool -x will continue working. Fixes: fe6d86b3c316 ("net/mlx5e: Add CONFIG_MLX5_EN_RXNFC for ethtool rx nfc") Signed-off-by: Saeed Mahameed commit 299a11957a5f2408cd8d9261cc45688bb5541ae7 Author: Tariq Toukan Date: Wed May 15 15:57:13 2019 +0300 net/mlx5e: Fix wrong xmit_more application Cited patch refactored the xmit_more indication while not preserving its functionality. Fix it. Fixes: 3c31ff22b25f ("drivers: mellanox: use netdev_xmit_more() helper") Signed-off-by: Tariq Toukan Signed-off-by: Saeed Mahameed commit dd06486710d251140edc86ec3bbef0c25dcec1cb Author: Bodong Wang Date: Mon Apr 29 09:56:18 2019 -0500 net/mlx5: Fix peer pf disable hca command The command was mistakenly using enable_hca in embedded CPU field. Fixes: 22e939a91dcb (net/mlx5: Update enable HCA dependency) Signed-off-by: Bodong Wang Reported-by: Alex Rosenbaum Signed-off-by: Alex Rosenbaum Reviewed-by: Daniel Jurgens Signed-off-by: Saeed Mahameed commit 02f3afd97556017872a2d01d03d4ce66f8421a65 Author: Parav Pandit Date: Fri Apr 5 01:07:19 2019 -0500 net/mlx5: E-Switch, Correct type to u16 for vport_num and int for vport_index To avoid any ambiguity between vport index and vport number, rename functions that had vport, to vport_num or vport_index appropriately. vport_num is u16 hence change mlx5_eswitch_index_to_vport_num() return type to u16. vport_index is an int in vport array. Hence change input type of vport index in mlx5_eswitch_index_to_vport_num() to int. Correct multiple eswitch representor interfaces use type u16 of rep->vport as type int vport_index. Send vport FW commands with correct eswitch u16 vport_num instead host int vport_index. Fixes: 5ae5162066d8 ("net/mlx5: E-Switch, Assign a different position for uplink rep and vport") Signed-off-by: Parav Pandit Signed-off-by: Vu Pham Reviewed-by: Bodong Wang Signed-off-by: Saeed Mahameed commit 661f0312eb3e8325e92c4a9c8d5561ed21527257 Author: Valentine Fatiev Date: Wed May 1 11:46:05 2019 +0300 net/mlx5: Add meaningful return codes to status_to_err function Current version of function status_to_err return -1 for any status returned by mlx5_cmd_invoke function. In case status is MLX5_DRIVER_STATUS_ABORTED we should return 0 to the caller as we assume command completed successfully on FW. If error returned we are getting confusing messages in dmesg. In addition, currently returned value -1 is confusing with -EPERM. New implementation actually fix original commit and return meaningful codes for commands delivery status and print message in case of failure. Fixes: e126ba97dba9 ("mlx5: Add driver for Mellanox Connect-IB adapters") Signed-off-by: Valentine Fatiev Signed-off-by: Saeed Mahameed commit bad861f31bb15a99becef31aab59640eaeb247e2 Author: Saeed Mahameed Date: Tue May 7 13:15:20 2019 -0700 net/mlx5: Imply MLXFW in mlx5_core mlxfw can be compiled as external module while mlx5_core can be builtin, in such case mlx5 will act like mlxfw is disabled. Since mlxfw is just a service library for mlx* drivers, imply it in mlx5_core to make it always reachable if it was enabled. Fixes: 3ffaabecd1a1 ("net/mlx5e: Support the flash device ethtool callback") Signed-off-by: Saeed Mahameed commit 5593530e56943182ebb6d81eca8a3be6db6dbba4 Author: David S. Miller Date: Fri May 17 12:15:05 2019 -0700 Revert "tipc: fix modprobe tipc failed after switch order of device registration" This reverts commit 532b0f7ece4cb2ffd24dc723ddf55242d1188e5e. More revisions coming up. Signed-off-by: David S. Miller commit ac03046ece2b158ebd204dfc4896fd9f39f0e6c8 Author: Stefano Garzarella Date: Fri May 17 16:45:43 2019 +0200 vsock/virtio: free packets during the socket release When the socket is released, we should free all packets queued in the per-socket list in order to avoid a memory leak. Signed-off-by: Stefano Garzarella Signed-off-by: David S. Miller commit 532b0f7ece4cb2ffd24dc723ddf55242d1188e5e Author: Junwei Hu Date: Fri May 17 19:27:34 2019 +0800 tipc: fix modprobe tipc failed after switch order of device registration Error message printed: modprobe: ERROR: could not insert 'tipc': Address family not supported by protocol. when modprobe tipc after the following patch: switch order of device registration, commit 7e27e8d6130c ("tipc: switch order of device registration to fix a crash") Because sock_create_kern(net, AF_TIPC, ...) is called by tipc_topsrv_create_listener() in the initialization process of tipc_net_ops, tipc_socket_init() must be execute before that. I move tipc_socket_init() into function tipc_init_net(). Fixes: 7e27e8d6130c ("tipc: switch order of device registration to fix a crash") Signed-off-by: Junwei Hu Reported-by: Wang Wang Reviewed-by: Kang Zhou Reviewed-by: Suanming Mou Signed-off-by: David S. Miller commit 38a04b83ab3033905114d608737504e66350088b Author: Philippe Mazenauer Date: Fri May 17 10:44:44 2019 +0000 lib: Correct comment of prandom_seed Variable 'entropy' was wrongly documented as 'seed', changed comment to reflect actual variable name. ../lib/random32.c:179: warning: Function parameter or member 'entropy' not described in 'prandom_seed' ../lib/random32.c:179: warning: Excess function parameter 'seed' description in 'prandom_seed' Signed-off-by: Philippe Mazenauer Acked-by: Lee Jones Signed-off-by: David S. Miller commit 34dcf6a1902ac214149a2742250ff03aa5346f3e Author: swkhack Date: Fri May 17 15:59:22 2019 +0800 net: caif: fix the value of size argument of snprintf Because the function snprintf write at most size bytes(including the null byte).So the value of the argument size need not to minus one. Signed-off-by: swkhack Signed-off-by: David S. Miller commit 0ef0fd351550130129bbdb77362488befd7b69d2 Merge: 4489da718309 c011d23ba046 Author: Linus Torvalds Date: Fri May 17 10:33:30 2019 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm Pull KVM updates from Paolo Bonzini: "ARM: - support for SVE and Pointer Authentication in guests - PMU improvements POWER: - support for direct access to the POWER9 XIVE interrupt controller - memory and performance optimizations x86: - support for accessing memory not backed by struct page - fixes and refactoring Generic: - dirty page tracking improvements" * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (155 commits) kvm: fix compilation on aarch64 Revert "KVM: nVMX: Expose RDPMC-exiting only when guest supports PMU" kvm: x86: Fix L1TF mitigation for shadow MMU KVM: nVMX: Disable intercept for FS/GS base MSRs in vmcs02 when possible KVM: PPC: Book3S: Remove useless checks in 'release' method of KVM device KVM: PPC: Book3S HV: XIVE: Fix spelling mistake "acessing" -> "accessing" KVM: PPC: Book3S HV: Make sure to load LPID for radix VCPUs kvm: nVMX: Set nested_run_pending in vmx_set_nested_state after checks complete tests: kvm: Add tests for KVM_SET_NESTED_STATE KVM: nVMX: KVM_SET_NESTED_STATE - Tear down old EVMCS state before setting new state tests: kvm: Add tests for KVM_CAP_MAX_VCPUS and KVM_CAP_MAX_CPU_ID tests: kvm: Add tests to .gitignore KVM: Introduce KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2 KVM: Fix kvm_clear_dirty_log_protect off-by-(minus-)one KVM: Fix the bitmap range to copy during clear dirty KVM: arm64: Fix ptrauth ID register masking logic KVM: x86: use direct accessors for RIP and RSP KVM: VMX: Use accessors for GPRs outside of dedicated caching logic KVM: x86: Omit caching logic for always-available GPRs kvm, x86: Properly check whether a pfn is an MMIO or not ... commit b8f5fe3bc5b9318d95770a09a480c31aced20cd2 Author: Heiner Kallweit Date: Thu May 16 23:13:09 2019 +0200 i2c: core: add device-managed version of i2c_new_dummy i2c_new_dummy is typically called from the probe function of the driver for the primary i2c client. It requires calls to i2c_unregister_device in the error path of the probe function and in the remove function. This can be simplified by introducing a device-managed version. Note the changed error case return value type: i2c_new_dummy returns NULL whilst devm_i2c_new_dummy_device returns an ERR_PTR. Signed-off-by: Heiner Kallweit [wsa: rename new functions and fix minor kdoc issues] Signed-off-by: Wolfram Sang Reviewed-by: Peter Rosin Reviewed-by: Kieran Bingham Reviewed-by: Bartosz Golaszewski Signed-off-by: Wolfram Sang commit 7159dbdae3c58d0200ae2550fab977a19a3c497a Author: Heiner Kallweit Date: Thu May 16 23:13:08 2019 +0200 i2c: core: improve return value handling of i2c_new_device and i2c_new_dummy Currently i2c_new_device and i2c_new_dummy return just NULL in error case although they have more error details internally. Therefore move the functionality into new functions returning detailed errors and add wrappers for compatibility with the current API. This allows to use these functions with detailed error codes within the i2c core or for API extensions. Signed-off-by: Heiner Kallweit [wsa: rename new functions and fix minor kdoc issues] Signed-off-by: Wolfram Sang Reviewed-by: Peter Rosin Reviewed-by: Kieran Bingham Reviewed-by: Bartosz Golaszewski Signed-off-by: Wolfram Sang commit 4489da7183099f569a7d3dd819c975073c04bc72 Merge: 80111bfb672d af9abd65983c Author: Linus Torvalds Date: Fri May 17 10:17:29 2019 -0700 Merge tag 'nds32-for-linus-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/greentime/linux Pull nds32 updates from Greentime Hu: - Clean up codes and Makefile - Fix a vDSO bug - Remove useless functions/header files - Update git repo path in MAINTAINERS * tag 'nds32-for-linus-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/greentime/linux: nds32: Fix vDSO clock_getres() MAINTAINERS: update nds32 git repo path nds32: don't export low-level cache flushing routines arch: nds32: Kconfig: pedantic formatting nds32: fix semicolon code style issue nds32: vdso: drop unnecessary cc-ldoption nds32: remove unused generic-y += cmpxchg-local.h nds32: Use the correct style for SPDX License Identifier nds32: remove __virt_to_bus and __bus_to_virt nds32: vdso: fix and clean-up Makefile nds32: add vmlinux.lds and vdso.so to .gitignore nds32: ex-exit: Remove unneeded need_resched() loop nds32/io: Remove useless definition of mmiowb() nds32: Removed unused thread flag TIF_USEDFPU commit 80111bfb672d8c04d60c25559243554f732f2848 Merge: bf8a9a475573 f3e20ad67b4c Author: Linus Torvalds Date: Fri May 17 10:08:59 2019 -0700 Merge tag 's390-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull more s390 updates from Martin Schwidefsky: - Enhancements for the QDIO layer - Remove the RCP trace event - Avoid three build issues - Move the defconfig to the configs directory * tag 's390-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390: move arch/s390/defconfig to arch/s390/configs/defconfig s390/qdio: optimize state inspection of HW-owned SBALs s390/qdio: use get_buf_state() in debug_get_buf_state() s390/qdio: allow to scan all Output SBALs in one go s390/cio: Remove tracing for rchp instruction s390/kasan: adapt disabled_wait usage to avoid build error latent_entropy: avoid build error when plugin cflags are not set s390/boot: fix compiler error due to missing awk strtonum commit 510a405d945bc985abc513fafe45890cac34fafa Author: Yufen Yu Date: Thu May 16 19:30:07 2019 -0700 nvme: fix memory leak for power latency tolerance Unconditionally hide device pm latency tolerance when uninitializing the controller to ensure all qos resources are released so that we're not leaking this memory. This is safe to call if none were allocated in the first place, or were previously freed. Fixes: c5552fde102fc("nvme: Enable autonomous power state transitions") Suggested-by: Keith Busch Tested-by: David Milburn Signed-off-by: Yufen Yu [changelog] Signed-off-by: Keith Busch commit 5fb4aac756acacf260b9ebd88747251effa3a2f2 Author: Christoph Hellwig Date: Fri May 17 11:47:36 2019 +0200 nvme: release namespace SRCU protection before performing controller ioctls Holding the SRCU critical section protecting the namespace list can cause deadlocks when using the per-namespace admin passthrough ioctl to delete as namespace. Release it earlier when performing per-controller ioctls to avoid that. Reported-by: Kenneth Heitke Reviewed-by: Chaitanya Kulkarni Reviewed-by: Keith Busch Signed-off-by: Christoph Hellwig commit 90ec611adcf20b96d0c2b7166497d53e4301a57f Author: Christoph Hellwig Date: Fri May 17 02:47:35 2019 -0700 nvme: merge nvme_ns_ioctl into nvme_ioctl Merge the two functions to make future changes a little easier. Signed-off-by: Christoph Hellwig Reviewed-by: Keith Busch Reviewed-by: Chaitanya Kulkarni commit 3f98bcc58cd5f1e4668db289dcab771874cc0920 Author: Christoph Hellwig Date: Fri May 17 02:47:34 2019 -0700 nvme: remove the ifdef around nvme_nvm_ioctl We already have a proper stub if lightnvm is not enabled, so don't bother with the ifdef. Signed-off-by: Christoph Hellwig Reviewed-by: Keith Busch Reviewed-by: Chaitanya Kulkarni commit 100c815cbd56480b3e31518475b04719c363614a Author: Christoph Hellwig Date: Fri May 17 02:47:33 2019 -0700 nvme: fix srcu locking on error return in nvme_get_ns_from_disk If we can't get a namespace don't leak the SRCU lock. nvme_ioctl was working around this, but nvme_pr_command wasn't handling this properly. Just do what callers would usually expect. Signed-off-by: Christoph Hellwig Reviewed-by: Keith Busch Reviewed-by: Chaitanya Kulkarni commit 6fa0321a96043b5a983bbefa785859d664645840 Author: Keith Busch Date: Fri May 17 10:08:19 2019 -0600 nvme: Fix known effects We're trying to append known effects to the ones reported in the controller's log. The original patch accomplished this, but something went wrong when patch was merged causing the effects log to override the known effects. Link: http://lists.infradead.org/pipermail/linux-nvme/2019-May/023710.html Fixes: f4524cc45626 ("nvme-pci: add known admin effects to augument admin effects log page") Cc: Maxim Levitsky Signed-off-by: Keith Busch commit d6135c3a1ec0cddda7b8b8e1b5b4abeeafd98289 Author: Keith Busch Date: Tue May 14 14:46:09 2019 -0600 nvme-pci: Sync queues on reset A controller with multiple namespaces may have multiple request_queues with their own timeout work. If a controller fails with IO outstanding to diffent namespaces, each request queue may attempt to handle it, so ensure there is no previously scheduled timeout work executing prior to starting controller initialization by synchronizing with each queue. Reviewed-by: Minwoo Im Reviewed-by: Ming Lei Reviewed-by: Christoph Hellwig Signed-off-by: Keith Busch commit 2036f7263d70e67d70a67899a468588cb7356bc9 Author: Keith Busch Date: Tue May 14 14:27:53 2019 -0600 nvme-pci: Unblock reset_work on IO failure The reset_work waits for queued IO to complete before setting the controller to live. If any of these times out and requeues, we won't be able to restart the controller because the reset_work is already running. Flush all entered requests to a failed completion if a timeout occurs in the connecting state, and ensure the controller can't transition to the live state after we've unblocked it from waiting for completions. Reviewed-by: Ming Lei Reviewed-by: Christoph Hellwig Signed-off-by: Keith Busch commit 39a9dd81f864aa20be896bb34b4bbc2501a2453d Author: Keith Busch Date: Tue May 14 14:10:41 2019 -0600 nvme-pci: Don't disable on timeout in reset state The reset state doesn't dispatch commands that it needs to wait for anymore. If a timeout occurs in this state, the reset work is already disabling the controller, so just reset the request's timer. Reviewed-by: Christoph Hellwig Signed-off-by: Keith Busch commit e43269e6e5c49d7fec599e6bba71963935b0e4ba Author: Keith Busch Date: Tue May 14 14:07:38 2019 -0600 nvme-pci: Fix controller freeze wait disabling If a controller disabling didn't start a freeze, don't wait for the operation to complete. Reviewed-by: Ming Lei Reviewed-by: Christoph Hellwig Signed-off-by: Keith Busch commit bf8a9a4755737f6630756f0d87bea9b38f0ed369 Merge: a6a4b66bd8f4 d8076bdb56af Author: Linus Torvalds Date: Fri May 17 09:46:31 2019 -0700 Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull more vfs mount updates from Al Viro: "Propagation of new syscalls to other architectures + cosmetic change from Christian (fscontext didn't follow the convention for anon inode names)" * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: uapi: Wire up the mount API syscalls on non-x86 arches [ver #2] uapi, x86: Fix the syscall numbering of the mount API syscalls [ver #2] uapi, fsopen: use square brackets around "fscontext" [ver #2] commit 69dbdfffef20c715df9f381b2cee4e9e0a4efd93 Author: Jason Gerecke Date: Tue May 7 11:53:22 2019 -0700 HID: wacom: Sync INTUOSP2_BT touch state after each frame if necessary The Bluetooth interface of the 2nd-gen Intuos Pro batches together four independent "frames" of finger data into a single report. Each frame is essentially equivalent to a single USB report, with the up-to-10 fingers worth of information being spread across two frames. At the moment the driver only calls `input_sync` after processing all four frames have been processed, which can result in the driver sending multiple updates for a single slot within the same SYN_REPORT. This can confuse userspace, so modify the driver to sync more often if necessary (i.e., after reporting the state of all fingers). Fixes: 4922cd26f03c ("HID: wacom: Support 2nd-gen Intuos Pro's Bluetooth classic interface") Cc: # 4.11+ Signed-off-by: Jason Gerecke Signed-off-by: Benjamin Tissoires commit 6441fc781c344df61402be1fde582c4491fa35fa Author: Jason Gerecke Date: Tue May 7 11:53:21 2019 -0700 HID: wacom: Correct button numbering 2nd-gen Intuos Pro over Bluetooth The button numbering of the 2nd-gen Intuos Pro is not consistent between the USB and Bluetooth interfaces. Over USB, the HID_GENERIC codepath enumerates the eight ExpressKeys first (BTN_0 - BTN_7) followed by the center modeswitch button (BTN_8). The Bluetooth codepath, however, has the center modeswitch button as BTN_0 and the the eight ExpressKeys as BTN_1 - BTN_8. To ensure userspace button mappings do not change depending on how the tablet is connected, modify the Bluetooth codepath to report buttons in the same order as USB. To ensure the mode switch LED continues to toggle in response to the mode switch button, the `wacom_is_led_toggled` function also requires a small update. Link: https://github.com/linuxwacom/input-wacom/pull/79 Fixes: 4922cd26f03c ("HID: wacom: Support 2nd-gen Intuos Pro's Bluetooth classic interface") Cc: # 4.11+ Signed-off-by: Jason Gerecke Reviewed-by: Aaron Skomra Signed-off-by: Benjamin Tissoires commit fe7f8d73d1af19b678171170e4e5384deb57833d Author: Jason Gerecke Date: Tue May 7 11:53:20 2019 -0700 HID: wacom: Send BTN_TOUCH in response to INTUOSP2_BT eraser contact The Bluetooth reports from the 2nd-gen Intuos Pro have separate bits for indicating if the tip or eraser is in contact with the tablet. At the moment, only the tip contact bit controls the state of the BTN_TOUCH event. This prevents the eraser from working as expected. This commit changes the driver to send BTN_TOUCH whenever either the tip or eraser contact bit is set. Fixes: 4922cd26f03c ("HID: wacom: Support 2nd-gen Intuos Pro's Bluetooth classic interface") Cc: # 4.11+ Signed-off-by: Jason Gerecke Reviewed-by: Aaron Skomra Signed-off-by: Benjamin Tissoires commit e92a7be7fe5b2510fa60965eaf25f9e3dc08b8cc Author: Jason Gerecke Date: Wed Apr 24 15:12:58 2019 -0700 HID: wacom: Don't report anything prior to the tool entering range If the tool spends some time in prox before entering range, a series of events (e.g. ABS_DISTANCE, MSC_SERIAL) can be sent before we or userspace have any clue about the pen whose data is being reported. We need to hold off on reporting anything until the pen has entered range. Since we still want to report events that occur "in prox" after the pen has *left* range we use 'wacom-tool[0]' as the indicator that the pen did at one point enter range and provide us/userspace with tool type and serial number information. Fixes: a48324de6d4d ("HID: wacom: Bluetooth IRQ for Intuos Pro should handle prox/range") Cc: # 4.11+ Signed-off-by: Jason Gerecke Reviewed-by: Aaron Armstrong Skomra Signed-off-by: Benjamin Tissoires commit 2cc08800a6b9fcda7c7afbcf2da1a6e8808da725 Author: Jason Gerecke Date: Wed Apr 24 15:12:57 2019 -0700 HID: wacom: Don't set tool type until we're in range The serial number and tool type information that is reported by the tablet while a pen is merely "in prox" instead of fully "in range" can be stale and cause us to report incorrect tool information. Serial number, tool type, and other information is only valid once the pen comes fully in range so we should be careful to not use this information until that point. In particular, this issue may cause the driver to incorectly report BTN_TOOL_RUBBER after switching from the eraser tool back to the pen. Fixes: a48324de6d4d ("HID: wacom: Bluetooth IRQ for Intuos Pro should handle prox/range") Cc: # 4.11+ Signed-off-by: Jason Gerecke Reviewed-by: Aaron Armstrong Skomra Signed-off-by: Benjamin Tissoires commit ea7a5f90f103591f1f38dede52e731ec95ef3c55 Merge: 13e792a19d4e 8c9374068ef6 Author: Thomas Gleixner Date: Fri May 17 15:48:06 2019 +0200 Merge tag 'timers-v5.2' of http://git.linaro.org/people/daniel.lezcano/linux into timers/core Pull clockevent updates from Daniel Lezcano: - Add compatible string for suniv for sun4i (Mesih Kilinc) - Add COMPILE_TEST option for sp804 (David Abdurachmanov) - Replace the compensation time when suspend happens on tegra with the one provided by the generic framework (Joseph Lo) - Cleanup, shutdown and oneshot mode fix on milbeaut timer (Sugaya Taichi) - Atmel TCB rework to fix boot failure on boards without PIT or misfunction on system using a preempt-rt kernel (Alexandre Belloni) commit 672eaf37db9f99fd794eed2c68a8b3b05d484081 Author: Tobin C. Harding Date: Wed May 15 19:07:50 2019 +1000 powerpc/cacheinfo: Remove double free kfree() after kobject_put(). Who ever wrote this was on crack. Fixes: 7e8039795a80 ("powerpc/cacheinfo: Fix kobject memleak") Signed-off-by: Tobin C. Harding Signed-off-by: Michael Ellerman commit c179976cf4cbd2e65f29741d5bc07ccf8747a532 Author: Aneesh Kumar K.V Date: Thu May 16 17:20:54 2019 +0530 powerpc/mm/hash: Fix get_region_id() for invalid addresses Accesses by userspace to random addresses outside the user or kernel address range will generate an SLB fault. When we handle that fault we classify the effective address into several classes, eg. user, kernel linear, kernel virtual etc. For addresses that are completely outside of any valid range, we should not insert an SLB entry at all, and instead immediately an exception. In the past this was handled in two ways. Firstly we would check the top nibble of the address (using REGION_ID(ea)) and that would tell us if the address was user (0), kernel linear (c), kernel virtual (d), or vmemmap (f). If the address didn't match any of these it was invalid. Then for each type of address we would do a secondary check. For the user region we check against H_PGTABLE_RANGE, for kernel linear we would mask the top nibble of the address and then check the address against MAX_PHYSMEM_BITS. As part of commit 0034d395f89d ("powerpc/mm/hash64: Map all the kernel regions in the same 0xc range") we replaced REGION_ID() with get_region_id() and changed the masking of the top nibble to only mask the top two bits, which introduced a bug. Addresses less than (4 << 60) are still handled correctly, they are either less than (1 << 60) in which case they are subject to the H_PGTABLE_RANGE check, or they are correctly checked against MAX_PHYSMEM_BITS. However addresses from (4 << 60) to ((0xc << 60) - 1), are incorrectly treated as kernel linear addresses in get_region_id(). Then the top two bits are cleared by EA_MASK in slb_allocate_kernel() and the address is checked against MAX_PHYSMEM_BITS, which it passes due to the masking. The end result is we incorrectly insert SLB entries for those addresses. That is not actually catastrophic, having inserted the SLB entry we will then go on to take a page fault for the address and at that point we detect the problem and report it as a bad fault. Still we should not be inserting those entries, or treating them as kernel linear addresses in the first place. So fix get_region_id() to detect addresses in that range and return an invalid region id, which we cause use to not insert an SLB entry and directly report an exception. Fixes: 0034d395f89d ("powerpc/mm/hash64: Map all the kernel regions in the same 0xc range") Signed-off-by: Aneesh Kumar K.V [mpe: Drop change to EA_MASK for now, rewrite change log] Signed-off-by: Michael Ellerman commit 9c3ddee1246411a3c9c39bfa5457e49579027f0c Author: Andrii Nakryiko Date: Thu May 16 23:21:29 2019 -0700 bpftool: fix BTF raw dump of FWD's fwd_kind kflag bit determines whether FWD is for struct or union. Use that bit. Fixes: c93cc69004df ("bpftool: add ability to dump BTF types") Signed-off-by: Andrii Nakryiko Signed-off-by: Daniel Borkmann commit c011d23ba046826ccf8c4a4a6c1d01c9ccaa1403 Author: Paolo Bonzini Date: Fri May 17 14:08:53 2019 +0200 kvm: fix compilation on aarch64 Commit e45adf665a53 ("KVM: Introduce a new guest mapping API", 2019-01-31) introduced a build failure on aarch64 defconfig: $ make -j$(nproc) ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- O=out defconfig \ Image.gz ... ../arch/arm64/kvm/../../../virt/kvm/kvm_main.c: In function '__kvm_map_gfn': ../arch/arm64/kvm/../../../virt/kvm/kvm_main.c:1763:9: error: implicit declaration of function 'memremap'; did you mean 'memset_p'? ../arch/arm64/kvm/../../../virt/kvm/kvm_main.c:1763:46: error: 'MEMREMAP_WB' undeclared (first use in this function) ../arch/arm64/kvm/../../../virt/kvm/kvm_main.c: In function 'kvm_vcpu_unmap': ../arch/arm64/kvm/../../../virt/kvm/kvm_main.c:1795:3: error: implicit declaration of function 'memunmap'; did you mean 'vm_munmap'? because these functions are declared in rather than , and the former was being pulled in already on x86 but not on aarch64. Reported-by: Nathan Chancellor Signed-off-by: Paolo Bonzini commit 7ed4b4e60bb1dd3df7a45dfbde3a96efce9df7eb Author: Alexei Starovoitov Date: Thu May 16 21:34:11 2019 -0700 selftests/bpf: fix bpf_get_current_task Fix bpf_get_current_task() declaration. Signed-off-by: Alexei Starovoitov Acked-by: Andrii Nakryiko Signed-off-by: Daniel Borkmann commit ad6eecbfc01c987e0253371f274c3872042e4350 Author: S.j. Wang Date: Thu May 16 06:04:29 2019 +0000 ASoC: cs42xx8: Add regcache mask dirty Add regcache_mark_dirty before regcache_sync for power of codec may be lost at suspend, then all the register need to be reconfigured. Fixes: 0c516b4ff85c ("ASoC: cs42xx8: Add codec driver support for CS42448/CS42888") Cc: Signed-off-by: Shengjiu Wang Signed-off-by: Mark Brown commit 8ea58f1e8b11cca3087b294779bf5959bf89cc10 Author: Nathan Chancellor Date: Thu May 16 12:49:42 2019 -0500 objtool: Allow AR to be overridden with HOSTAR Currently, this Makefile hardcodes GNU ar, meaning that if it is not available, there is no way to supply a different one and the build will fail. $ make AR=llvm-ar CC=clang LD=ld.lld HOSTAR=llvm-ar HOSTCC=clang \ HOSTLD=ld.lld HOSTLDFLAGS=-fuse-ld=lld defconfig modules_prepare ... AR /out/tools/objtool/libsubcmd.a /bin/sh: 1: ar: not found ... Follow the logic of HOST{CC,LD} and allow the user to specify a different ar tool via HOSTAR (which is used elsewhere in other tools/ Makefiles). Signed-off-by: Nathan Chancellor Signed-off-by: Josh Poimboeuf Reviewed-by: Nick Desaulniers Reviewed-by: Mukesh Ojha Cc: Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/80822a9353926c38fd7a152991c6292491a9d0e8.1558028966.git.jpoimboe@redhat.com Link: https://github.com/ClangBuiltLinux/linux/issues/481 Signed-off-by: Ingo Molnar commit f8585539df0a1527c78b5d760665c89fe1c105a9 Author: Ard Biesheuvel Date: Thu May 16 23:31:59 2019 +0200 fbdev/efifb: Ignore framebuffer memmap entries that lack any memory types The following commit: 38ac0287b7f4 ("fbdev/efifb: Honour UEFI memory map attributes when mapping the FB") updated the EFI framebuffer code to use memory mappings for the linear framebuffer that are permitted by the memory attributes described by the EFI memory map for the particular region, if the framebuffer happens to be covered by the EFI memory map (which is typically only the case for framebuffers in shared memory). This is required since non-x86 systems may require cacheable attributes for memory mappings that are shared with other masters (such as GPUs), and this information cannot be described by the Graphics Output Protocol (GOP) EFI protocol itself, and so we rely on the EFI memory map for this. As reported by James, this breaks some x86 systems: [ 1.173368] efifb: probing for efifb [ 1.173386] efifb: abort, cannot remap video memory 0x1d5000 @ 0xcf800000 [ 1.173395] Trying to free nonexistent resource <00000000cf800000-00000000cf9d4bff> [ 1.173413] efi-framebuffer: probe of efi-framebuffer.0 failed with error -5 The problem turns out to be that the memory map entry that describes the framebuffer has no memory attributes listed at all, and so we end up with a mem_flags value of 0x0. So work around this by ensuring that the memory map entry's attribute field has a sane value before using it to mask the set of usable attributes. Reported-by: James Hilliard Tested-by: James Hilliard Signed-off-by: Ard Biesheuvel Cc: # v4.19+ Cc: Borislav Petkov Cc: James Morse Cc: Linus Torvalds Cc: Matt Fleming Cc: Peter Jones Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-efi@vger.kernel.org Fixes: 38ac0287b7f4 ("fbdev/efifb: Honour UEFI memory map attributes when ...") Link: http://lkml.kernel.org/r/20190516213159.3530-2-ard.biesheuvel@linaro.org Signed-off-by: Ingo Molnar commit 357d065a44cdd77ed5ff35155a989f2a763e96ef Author: Daniel Axtens Date: Fri May 17 01:40:02 2019 +1000 crypto: vmx - ghash: do nosimd fallback manually VMX ghash was using a fallback that did not support interleaving simd and nosimd operations, leading to failures in the extended test suite. If I understood correctly, Eric's suggestion was to use the same data format that the generic code uses, allowing us to call into it with the same contexts. I wasn't able to get that to work - I think there's a very different key structure and data layout being used. So instead steal the arm64 approach and perform the fallback operations directly if required. Fixes: cc333cd68dfa ("crypto: vmx - Adding GHASH routines for VMX module") Cc: stable@vger.kernel.org # v4.1+ Reported-by: Eric Biggers Signed-off-by: Daniel Axtens Acked-by: Ard Biesheuvel Tested-by: Michael Ellerman Signed-off-by: Herbert Xu commit 009b30ac7444c17fae34c4f435ebce8e8e2b3250 Author: Daniel Axtens Date: Wed May 15 20:24:50 2019 +1000 crypto: vmx - CTR: always increment IV as quadword The kernel self-tests picked up an issue with CTR mode: alg: skcipher: p8_aes_ctr encryption test failed (wrong result) on test vector 3, cfg="uneven misaligned splits, may sleep" Test vector 3 has an IV of FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD, so after 3 increments it should wrap around to 0. In the aesp8-ppc code from OpenSSL, there are two paths that increment IVs: the bulk (8 at a time) path, and the individual path which is used when there are fewer than 8 AES blocks to process. In the bulk path, the IV is incremented with vadduqm: "Vector Add Unsigned Quadword Modulo", which does 128-bit addition. In the individual path, however, the IV is incremented with vadduwm: "Vector Add Unsigned Word Modulo", which instead does 4 32-bit additions. Thus the IV would instead become FFFFFFFFFFFFFFFFFFFFFFFF00000000, throwing off the result. Use vadduqm. This was probably a typo originally, what with q and w being adjacent. It is a pretty narrow edge case: I am really impressed by the quality of the kernel self-tests! Fixes: 5c380d623ed3 ("crypto: vmx - Add support for VMS instructions by ASM") Cc: stable@vger.kernel.org Signed-off-by: Daniel Axtens Acked-by: Nayna Jain Tested-by: Nayna Jain Signed-off-by: Herbert Xu commit e1354400b25da645c4764ed6844d12f1582c3b66 Author: Eric Biggers Date: Tue May 14 16:13:15 2019 -0700 crypto: hash - fix incorrect HASH_MAX_DESCSIZE The "hmac(sha3-224-generic)" algorithm has a descsize of 368 bytes, which is greater than HASH_MAX_DESCSIZE (360) which is only enough for sha3-224-generic. The check in shash_prepare_alg() doesn't catch this because the HMAC template doesn't set descsize on the algorithms, but rather sets it on each individual HMAC transform. This causes a stack buffer overflow when SHASH_DESC_ON_STACK() is used with hmac(sha3-224-generic). Fix it by increasing HASH_MAX_DESCSIZE to the real maximum. Also add a sanity check to hmac_init(). This was detected by the improved crypto self-tests in v5.2, by loading the tcrypt module with CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y enabled. I didn't notice this bug when I ran the self-tests by requesting the algorithms via AF_ALG (i.e., not using tcrypt), probably because the stack layout differs in the two cases and that made a difference here. KASAN report: BUG: KASAN: stack-out-of-bounds in memcpy include/linux/string.h:359 [inline] BUG: KASAN: stack-out-of-bounds in shash_default_import+0x52/0x80 crypto/shash.c:223 Write of size 360 at addr ffff8880651defc8 by task insmod/3689 CPU: 2 PID: 3689 Comm: insmod Tainted: G E 5.1.0-10741-g35c99ffa20edd #11 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x86/0xc5 lib/dump_stack.c:113 print_address_description+0x7f/0x260 mm/kasan/report.c:188 __kasan_report+0x144/0x187 mm/kasan/report.c:317 kasan_report+0x12/0x20 mm/kasan/common.c:614 check_memory_region_inline mm/kasan/generic.c:185 [inline] check_memory_region+0x137/0x190 mm/kasan/generic.c:191 memcpy+0x37/0x50 mm/kasan/common.c:125 memcpy include/linux/string.h:359 [inline] shash_default_import+0x52/0x80 crypto/shash.c:223 crypto_shash_import include/crypto/hash.h:880 [inline] hmac_import+0x184/0x240 crypto/hmac.c:102 hmac_init+0x96/0xc0 crypto/hmac.c:107 crypto_shash_init include/crypto/hash.h:902 [inline] shash_digest_unaligned+0x9f/0xf0 crypto/shash.c:194 crypto_shash_digest+0xe9/0x1b0 crypto/shash.c:211 generate_random_hash_testvec.constprop.11+0x1ec/0x5b0 crypto/testmgr.c:1331 test_hash_vs_generic_impl+0x3f7/0x5c0 crypto/testmgr.c:1420 __alg_test_hash+0x26d/0x340 crypto/testmgr.c:1502 alg_test_hash+0x22e/0x330 crypto/testmgr.c:1552 alg_test.part.7+0x132/0x610 crypto/testmgr.c:4931 alg_test+0x1f/0x40 crypto/testmgr.c:4952 Fixes: b68a7ec1e9a3 ("crypto: hash - Remove VLA usage") Reported-by: Corentin Labbe Cc: # v4.20+ Cc: Kees Cook Signed-off-by: Eric Biggers Reviewed-by: Kees Cook Tested-by: Corentin Labbe Signed-off-by: Herbert Xu commit 4fa0b1f971fc0a3af08f2041b7feeeb024c08101 Author: Iuliana Prodan Date: Tue May 14 20:13:09 2019 +0300 crypto: caam - fix typo in i.MX6 devices list for errata Fix a typo in the list of i.MX6 devices affected by an issue wherein AXI bus transactions may not occur in the correct order. Fixes: 33d69455e402 ("crypto: caam - limit AXI pipeline to a depth of 1") Signed-off-by: Iuliana Prodan Reviewed-by: Horia Geantă Signed-off-by: Herbert Xu commit 8fef9900d43feb9d5017c72840966733085e3e82 Author: Andreas Schwab Date: Tue May 7 09:36:46 2019 +0200 riscv: fix locking violation in page fault handler When a user mode process accesses an address in the vmalloc area do_page_fault tries to unlock the mmap semaphore when it isn't locked. Signed-off-by: Andreas Schwab [Palmer: Duplicated code instead of a goto] Signed-off-by: Palmer Dabbelt commit a967a289f16969527a8a41e261695c639a69bee4 Author: Yash Shah Date: Mon May 6 16:18:40 2019 +0530 RISC-V: sifive_l2_cache: Add L2 cache controller driver for SiFive SoCs The driver currently supports only SiFive FU540-C000 platform. The initial version of L2 cache controller driver includes: - Initial configuration reporting at boot up. - Support for ECC related functionality. Signed-off-by: Yash Shah Signed-off-by: Palmer Dabbelt commit 5545b6d1ba25ce4a3a339b1edb760e666e693599 Author: Yash Shah Date: Mon May 6 16:18:39 2019 +0530 RISC-V: Add DT documentation for SiFive L2 Cache Controller Add device tree bindings for SiFive FU540 L2 cache controller driver Signed-off-by: Yash Shah Reviewed-by: Rob Herring Signed-off-by: Palmer Dabbelt commit 4c3aeb82a0f4612bf0d94fbf74c3738db2c32fe5 Author: Palmer Dabbelt Date: Tue Mar 26 17:40:24 2019 -0700 RISC-V: Avoid using invalid intermediate translations This is almost entirely a comment. Signed-off-by: Palmer Dabbelt Reviewed-by: Anup Patel commit 9a6e7af02f7fcc8c68e9d6ce167ee6ab0052cb60 Author: Vincent Chen Date: Tue Mar 5 11:23:35 2019 +0800 riscv: Support BUG() in kernel module The kernel module is loaded into vmalloc region which is located below to the PAGE_OFFSET. Hence the condition, pc < PAGE_OFFSET, in the is_valid_bugaddr() will filter out all trap exceptions triggered by kernel module. To support BUG() in kernel module, the condition is changed to pc < VMALLOC_START. Signed-off-by: Vincent Chen Signed-off-by: Christoph Hellwig Signed-off-by: Palmer Dabbelt commit ee72e0e70cf7c846a4e0b6160f771da8f68571dc Author: Vincent Chen Date: Tue Mar 5 11:23:34 2019 +0800 riscv: Add the support for c.ebreak check in is_valid_bugaddr() The macro __BUG_INSN currently is defined as the "ebreak" opcode. The is_valid_bugaddr() function compares the instruction pointed to by $sepc with macro __BUG_INSN to check whether the current trap exception is caused by an "ebreak" instruction. However, this check flow is possibly erroneous because if C extension is supported, the expected trap instruction "ebreak" is possibly translated to "c.ebreak" by the assembler. Therefore, it requires a mechanism to distinguish the length of the instruction in $spec and compare it to the correct trap instruction. Signed-off-by: Vincent Chen Signed-off-by: Christoph Hellwig Signed-off-by: Palmer Dabbelt commit d18ebc274ca78f61094fba39ec9f206d46be5a85 Author: Vincent Chen Date: Tue Mar 5 11:23:33 2019 +0800 riscv: support trap-based WARN() The WARN() related function will trigger a debug exception. This can help developers to analyze the cause of WARN() because if the debugger is connected, the control flow will be transferred to debugging environment. Signed-off-by: Vincent Chen Signed-off-by: Christoph Hellwig Signed-off-by: Palmer Dabbelt commit a21344dfc6adb78c291a48906478e76e1de08f6d Author: Gary Guo Date: Wed Mar 27 00:41:29 2019 +0000 riscv: fix sbi_remote_sfence_vma{,_asid}. Currently sbi_remote_sfence_vma{,_asid} does not pass their arguments to SBI at all, which is semantically incorrect. Neither BBL nor OpenSBI is using these arguments at the moment, and they just do a global flush instead. However we still need to provide correct arguments. Signed-off-by: Gary Guo Reviewed-by: Anup Patel Signed-off-by: Christoph Hellwig Signed-off-by: Palmer Dabbelt commit f6635f873a605576fa1983c605655a8721475c22 Author: Gary Guo Date: Wed Mar 27 00:41:29 2019 +0000 riscv: move switch_mm to its own file switch_mm is an expensive operations that has two users. flush_icache_deferred is only called within switch_mm and can be moved together. The function is expected to be more complicated when ASID support is added, so clean up eagerly. By moving them to a separate file we also removes some excessive dependency of tlbflush.h and cacheflush.h. Signed-off-by: Gary Guo Reviewed-by: Anup Patel Signed-off-by: Christoph Hellwig Signed-off-by: Palmer Dabbelt commit 58de77545e53b94cd6c816776197dade598632c5 Author: Gary Guo Date: Wed Mar 27 00:41:25 2019 +0000 riscv: move flush_icache_{all,mm} to cacheflush.c Currently, flush_icache_all is macro-expanded into a SBI call, yet no asm/sbi.h is included in asm/cacheflush.h. This could be moved to mm/cacheflush.c instead (SBI call will dominate performance-wise and there is no worry to not have it inlined. Currently, flush_icache_mm stays in kernel/smp.c, which looks like a hack to prevent it from being compiled when CONFIG_SMP=n. It should also be in mm/cacheflush.c. Signed-off-by: Gary Guo Signed-off-by: Christoph Hellwig Signed-off-by: Palmer Dabbelt commit f91253a3d005796404ae0e578b3394459b5f9b71 Author: Anup Patel Date: Thu Apr 25 06:35:06 2019 -0700 tty: Don't force RISCV SBI console as preferred console The Linux kernel will auto-disables all boot consoles whenever it gets a preferred real console. Currently on RISC-V systems, if we have a real console which is not RISCV SBI console then boot consoles (such as earlycon=sbi) are not auto-disabled when a real console (ttyS0 or ttySIF0) is available. This results in duplicate prints at boot-time after kernel starts using real console (i.e. ttyS0 or ttySIF0) if "earlycon=" kernel parameter was passed by bootloader. The reason for above issue is that RISCV SBI console always adds itself as preferred console which is causing other real consoles to be not used as preferred console. Ideally "console=" kernel parameter passed by bootloaders should be the one selecting a preferred real console. This patch fixes above issue by not forcing RISCV SBI console as preferred console. Fixes: afa6b1ccfad5 ("tty: New RISC-V SBI console driver") Cc: stable@vger.kernel.org Signed-off-by: Anup Patel Reviewed-by: Atish Patra Signed-off-by: Palmer Dabbelt commit a3182c91ef4e7dda90ff080a4132efd3ecb8786a Author: Anup Patel Date: Thu Apr 25 08:38:41 2019 +0000 RISC-V: Access CSRs using CSR numbers We should prefer accessing CSRs using their CSR numbers because: 1. It compiles fine with older toolchains. 2. We can use latest CSR names in #define macro names of CSR numbers as-per RISC-V spec. 3. We can access newly added CSRs even if toolchain does not recognize newly addes CSRs by name. Signed-off-by: Anup Patel Reviewed-by: Christoph Hellwig Signed-off-by: Palmer Dabbelt commit 6dcaf00487ca10d87e53fc8decb2e30f113c955d Author: Anup Patel Date: Thu Apr 25 08:38:37 2019 +0000 RISC-V: Add interrupt related SCAUSE defines in asm/csr.h This patch adds SCAUSE interrupt flag and SCAUSE interrupt related defines to asm/csr.h. We also use these defines in kernel/irq.c and express SIE/SIP flags in-terms of SCAUSE interrupt causes. Signed-off-by: Anup Patel Reviewed-by: Christoph Hellwig Signed-off-by: Palmer Dabbelt commit 196a14d45161b320ec8bddf5321b1c5ed89f2d7f Author: Anup Patel Date: Thu Apr 25 08:38:30 2019 +0000 RISC-V: Use tabs to align macro values in asm/csr.h The spacing between macro name and value is not consistent in asm/csr.h. This patch beautifies asm/csr.h by using tabs to align macro values instead of spaces. Signed-off-by: Anup Patel Reviewed-by: Christoph Hellwig Signed-off-by: Palmer Dabbelt commit f1f47c6ca34bb389f698cd80c77df4da0777e9c2 Author: Atish Patra Date: Wed Apr 24 14:48:01 2019 -0700 RISC-V: Fix minor checkpatch issues. While working on the patches, I found some minor checkpatch issues. Signed-off-by: Atish Patra Signed-off-by: Palmer Dabbelt commit 8b4302a442afffef6bb955202d27c69f1e7e2fbf Author: Atish Patra Date: Wed Apr 24 14:48:00 2019 -0700 RISC-V: Support nr_cpus command line option. If nr_cpus command line option is set, maximum possible cpu should be set to that value. Signed-off-by: Atish Patra Reviewed-by: Christoph Hellwig Signed-off-by: Palmer Dabbelt commit a6a4b66bd8f41922c543f7a820c66ed59c25995e Merge: 1718de78e623 fdb288a679cd Author: Linus Torvalds Date: Thu May 16 19:10:37 2019 -0700 Merge tag 'for-linus-20190516' of git://git.kernel.dk/linux-block Pull io_uring fixes from Jens Axboe: "A small set of fixes for io_uring. This contains: - smp_rmb() cleanup for io_cqring_events() (Jackie) - io_cqring_wait() simplification (Jackie) - removal of dead 'ev_flags' passing (me) - SQ poll CPU affinity verification fix (me) - SQ poll wait fix (Roman) - SQE command prep cleanup and fix (Stefan)" * tag 'for-linus-20190516' of git://git.kernel.dk/linux-block: io_uring: use wait_event_interruptible for cq_wait conditional wait io_uring: adjust smp_rmb inside io_cqring_events io_uring: fix infinite wait in khread_park() on io_finish_async() io_uring: remove 'ev_flags' argument io_uring: fix failure to verify SQ_AFF cpu io_uring: fix race condition reading SQE data commit 1718de78e6235c04ecb7f87a6875fdf90aafe382 Merge: 815d469d8c9a 7a102d9044e7 Author: Linus Torvalds Date: Thu May 16 19:08:15 2019 -0700 Merge tag 'for-5.2/block-post-20190516' of git://git.kernel.dk/linux-block Pull more block updates from Jens Axboe: "This is mainly some late lightnvm changes that came in just before the merge window, as well as fixes that have been queued up since the initial pull request was frozen. This contains: - lightnvm changes, fixing race conditions, improving memory utilization, and improving pblk compatability (Chansol, Igor, Marcin) - NVMe pull request with minor fixes all over the map (via Christoph) - remove redundant error print in sata_rcar (Geert) - struct_size() cleanup (Jackie) - dasd CONFIG_LBADF warning fix (Ming) - brd cond_resched() improvement (Mikulas)" * tag 'for-5.2/block-post-20190516' of git://git.kernel.dk/linux-block: (41 commits) block/bio-integrity: use struct_size() in kmalloc() nvme: validate cntlid during controller initialisation nvme: change locking for the per-subsystem controller list nvme: trace all async notice events nvme: fix typos in nvme status code values nvme-fabrics: remove unused argument nvme-multipath: avoid crash on invalid subsystem cntlid enumeration nvme-fc: use separate work queue to avoid warning nvme-rdma: remove redundant reference between ib_device and tagset nvme-pci: mark expected switch fall-through nvme-pci: add known admin effects to augument admin effects log page nvme-pci: init shadow doorbell after each reset brd: add cond_resched to brd_free_pages sata_rcar: Remove ata_host_alloc() error printing s390/dasd: fix build warning in dasd_eckd_build_cp_raw lightnvm: pblk: use nvm_rq_to_ppa_list() lightnvm: pblk: simplify partial read path lightnvm: do not remove instance under global lock lightnvm: track inflight target creations lightnvm: pblk: recover only written metadata ... commit 815d469d8c9a3360ee0a8b7857dd95352a6c7bde Merge: 5f3ab27b9eb7 62e59c4e69b3 Author: Linus Torvalds Date: Thu May 16 19:05:35 2019 -0700 Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux Pull more clk framework updates from Stephen Boyd: "One more patch to remove io.h from clk-provider.h. We used to need this include when we had clk_readl() and clk_writel(), but those are gone now so this patch pushes the dependency out to the users of clk-provider.h" * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: clk: Remove io.h from clk-provider.h commit 5f3ab27b9eb7f1b97e6d4460ac4e494588e09f0c Merge: 4c7b63a32d54 05b289263772 Author: Linus Torvalds Date: Thu May 16 19:01:23 2019 -0700 Merge branch 'for-5.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup Pull cgroup fix from Tejun Heo: "The cgroup2 freezer pulled in this cycle broke strace. This pull request includes a workaround for the problem. It's not a complete fix in that it may cause spurious frozen state flip-flops which is fairly minor. Will push a full fix once it's ready" * 'for-5.2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: signal: unconditionally leave the frozen state in ptrace_stop() commit 4c7b63a32d54850a31a00f22131db417face70e4 Merge: 9cbda1bddb4c 61c2018c0743 Author: Linus Torvalds Date: Thu May 16 18:57:58 2019 -0700 Merge tag 'linux-kselftest-5.2-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest Pull more kselftest updates from Shuah Khan: - kselftest framework bpf build/test workflow regression fix - Fix to kselftest install to use default install path - Fix to kselftest KBUILD_OUTPUT builds to not clutter main KBUILD_OUTPUT directory with selftest objects - .gitignore fixes (Kelsey Skunberg) - rseq selftests updates (Mathieu Desnoyers and Martin Schwidefsky) They change the per-architecture pre-abort signatures to ensure those are valid trap instructions. The way exit points are presented to debuggers is enhanced, ensuring all exit points are present, so debuggers don't have to disassemble rseq critical section to properly skip over them. Discussions with the glibc community is reaching a consensus of exposing a __rseq_handled symbol from glibc to coexist with rseq early adopters. Update the rseq selftest code to expose and use this symbol. Support for compiling asm goto with clang is added with the "-no-integrated-as" compiler switch, similarly to the top level kernel Makefile. - kselftest Makefile test run output refactoring and making test output TAP13 compliant from Kees Cook: This re-factors the selftest Makefiles to extract the test running logic to be reused between "run_tests" and "emit_tests", while also fixing up the test output to be TAP version 13 compliant: - added "plan" line - fixed result line syntax - moved all test output to be "# "-prefixed as TAP "diagnostic" lines The prefixing code includes a fallback mode for limited execution environments. Additionally, the plan lines are fixed for all callers of kselftest.h. * tag 'linux-kselftest-5.2-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (25 commits) selftests: avoid KBUILD_OUTPUT dir cluttering with selftest objects selftests: drivers: Create .gitignore to include /dma-buf/udmabuf selftests: pidfd: Create .gitignore to include pidfd_test selftests: fix bpf build/test workflow regression when KBUILD_OUTPUT is set selftests: fix install target to use default install path rseq/selftests: add -no-integrated-as for clang rseq/selftests: mips: use break instruction for RSEQ_SIG rseq/selftests: powerpc code signature: generate valid instructions rseq/selftests: aarch64 code signature: handle big-endian environment rseq/selftests: arm: use udf instruction for RSEQ_SIG rseq/selftests: s390: use trap4 for RSEQ_SIG rseq/selftests: x86: use ud1 instruction as RSEQ_SIG opcode rseq/selftests: s390: use jg instruction for jumps outside of the asm rseq/selftests: Use __rseq_handled symbol to coexist with glibc rseq/selftests: Introduce __rseq_cs_ptr_array, rename __rseq_table to __rseq_cs rseq/selftests: Add __rseq_exit_point_array section for debuggers rseq/selftests: x86: Work-around bogus gcc-8 optimisation selftests: Add test plan API to kselftest.h and adjust callers selftests: Remove KSFT_TAP_LEVEL selftests: Move test output to diagnostic lines ... commit 9cbda1bddb4c561f3a7360d36ce13a73bb02bfeb Merge: 0d74471924f2 8122de54602e Author: Linus Torvalds Date: Thu May 16 18:54:13 2019 -0700 Merge tag 'devicetree-for-5.2-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux Pull Devicetree vendor prefix conversion from Rob Herring: "Conversion of vendor-prefixes.txt to json-schema" * tag 'devicetree-for-5.2-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: dt-bindings: Convert vendor prefixes to json-schema commit 0d74471924f2a01dcd32d154510c0500780b531a Merge: 227747fb9eab 39db9815da48 Author: Linus Torvalds Date: Thu May 16 17:18:41 2019 -0700 Merge tag 'afs-fixes-b-20190516' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs Pull AFS callback promise fixes from David Howells: "This series fixes a bunch of problems in callback promise handling, where a callback promise indicates a promise on the part of the server to notify the client in the event of some sort of change to a file or volume. In the event of a break, the client has to go and refetch the client status from the server and discard any cached permission information as the ACL might have changed. The problem in the current code is that changes made by other clients aren't always noticed, primarily because the file status information and the callback information aren't updated in the same critical section, even if these are carried in the same reply from an RPC operation, and so the AFS_VNODE_CB_PROMISED flag is unreliable. Arranging for them to be done in the same critical section during reply decoding is tricky because of the FS.InlineBulkStatus op - which has all the statuses in the reply arriving and then all the callbacks, so they have to be buffered. It simplifies things a lot to move the critical section out of the decode phase and do it after the RPC function returns. Also new inodes (either newly fetched or newly created) aren't properly managed against a callback break happening before we get the local inode up and running. Fix this by: - There's now a combined file status and callback record (struct afs_status_cb) to carry both plus some flags. - Each operation wrapper function allocates sufficient afs_status_cb records for all the vnodes it is interested in and passes them into RPC operations to be filled in from the reply. - The FileStatus and CallBack record decoders no longer apply the new/revised status and callback information to the inode/vnode at the point of decoding and instead store the information into the record from (2). - afs_vnode_commit_status() then revises the file status, detects deletion and notes callback information inside of a single critical section. It also checks the callback break counters and cancels the callback promise if they changed during the operation. [*] Note that "callback break counters" are counters of server events that cancel one or more callback promises that the client thinks it has. The client counts the events and compares the counters before and after an operation to see if the callback promise it thinks it just got evaporated before it got recorded under lock. - Volume and server callback break counters are passed into afs_iget() allowing callback breaks concurrent with inode set up to be detected and the callback promise thence to be cancelled. - AFS validation checks are now done under RCU conditions using a read lock on cb_lock. This requires vnode->cb_interest to be made RCU safe. - If the checks in (6) fail, the callback breaker is then called under write lock on the cb_lock - but only if the callback break counter didn't change from the value read before the checks were made. - Results from FS.InlineBulkStatus that correspond to inodes we currently have in memory are now used to update those inodes' status and callback information rather than being discarded. This requires those inodes to be looked up before the RPC op is made and all their callback break values saved. To aid in this, the following changes have also been made: - Don't pass the vnode into the reply delivery functions or the decoders. The vnode shouldn't be altered anywhere in those paths. The only exception, for the moment, is for the call done hook for file lock ops that wants access to both the vnode and the call - this can be fixed at a later time. - Get rid of the call->reply[] void* array and replace it with named and typed members. This avoids confusion since different ops were mapping different reply[] members to different things. - Fix an order-1 kmalloc allocation in afs_do_lookup() and replace it with kvcalloc(). - Always get the reply time. Since callback, lock and fileserver record expiry times are calculated for several RPCs, make this mandatory. - Call afs_pages_written_back() from the operation wrapper rather than from the delivery function. - Don't store the version and type from a callback promise in a reply as the information in them is of very limited use" * tag 'afs-fixes-b-20190516' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs: afs: Fix application of the results of a inline bulk status fetch afs: Pass pre-fetch server and volume break counts into afs_iget5_set() afs: Fix unlink to handle YFS.RemoveFile2 better afs: Clear AFS_VNODE_CB_PROMISED if we detect callback expiry afs: Make vnode->cb_interest RCU safe afs: Split afs_validate() so first part can be used under LOOKUP_RCU afs: Don't save callback version and type fields afs: Fix application of status and callback to be under same lock afs: Always get the reply time afs: Fix order-1 allocation in afs_do_lookup() afs: Get rid of afs_call::reply[] afs: Don't pass the vnode pointer through into the inline bulk status op commit 227747fb9eab37aaeb360aeba795362c01889427 Merge: 1d9d7cbf28a1 fd711586bb7d Author: Linus Torvalds Date: Thu May 16 17:00:13 2019 -0700 Merge tag 'afs-fixes-20190516' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs Pull misc AFS fixes from David Howells: "This fixes a set of miscellaneous issues in the afs filesystem, including: - leak of keys on file close. - broken error handling in xattr functions. - missing locking when updating VL server list. - volume location server DNS lookup whereby preloaded cells may not ever get a lookup and regular DNS lookups to maintain server lists consume power unnecessarily. - incorrect error propagation and handling in the fileserver iteration code causes operations to sometimes apparently succeed. - interruption of server record check/update side op during fileserver iteration causes uninterruptible main operations to fail unexpectedly. - callback promise expiry time miscalculation. - over invalidation of the callback promise on directories. - double locking on callback break waking up file locking waiters. - double increment of the vnode callback break counter. Note that it makes some changes outside of the afs code, including: - an extra parameter to dns_query() to allow the dns_resolver key just accessed to be immediately invalidated. AFS is caching the results itself, so the key can be discarded. - an interruptible version of wait_var_event(). - an rxrpc function to allow the maximum lifespan to be set on a call. - a way for an rxrpc call to be marked as non-interruptible" * tag 'afs-fixes-20190516' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs: afs: Fix double inc of vnode->cb_break afs: Fix lock-wait/callback-break double locking afs: Don't invalidate callback if AFS_VNODE_DIR_VALID not set afs: Fix calculation of callback expiry time afs: Make dynamic root population wait uninterruptibly for proc_cells_lock afs: Make some RPC operations non-interruptible rxrpc: Allow the kernel to mark a call as being non-interruptible afs: Fix error propagation from server record check/update afs: Fix the maximum lifespan of VL and probe calls rxrpc: Provide kernel interface to set max lifespan on a call afs: Fix "kAFS: AFS vnode with undefined type 0" afs: Fix cell DNS lookup Add wait_var_event_interruptible() dns_resolver: Allow used keys to be invalidated afs: Fix afs_cell records to always have a VL server list record afs: Fix missing lock when replacing VL server list afs: Fix afs_xattr_get_yfs() to not try freeing an error value afs: Fix incorrect error handling in afs_xattr_get_acl() afs: Fix key leak in afs_release() and afs_evict_inode() commit 1d9d7cbf28a1c2f84f2a0224466f8eb5f0a62ace Merge: 2c45e7fbc962 00abf69dd24f Author: Linus Torvalds Date: Thu May 16 16:24:01 2019 -0700 Merge tag 'ceph-for-5.2-rc1' of git://github.com/ceph/ceph-client Pull ceph updates from Ilya Dryomov: "On the filesystem side we have: - a fix to enforce quotas set above the mount point (Luis Henriques) - support for exporting snapshots through NFS (Zheng Yan) - proper statx implementation (Jeff Layton). statx flags are mapped to MDS caps, with AT_STATX_{DONT,FORCE}_SYNC taken into account. - some follow-up dentry name handling fixes, in particular elimination of our hand-rolled helper and the switch to __getname() as suggested by Al (Jeff Layton) - a set of MDS client cleanups in preparation for async MDS requests in the future (Jeff Layton) - a fix to sync the filesystem before remounting (Jeff Layton) On the rbd side, work is on-going on object-map and fast-diff image features" * tag 'ceph-for-5.2-rc1' of git://github.com/ceph/ceph-client: (29 commits) ceph: flush dirty inodes before proceeding with remount ceph: fix unaligned access in ceph_send_cap_releases libceph: make ceph_pr_addr take an struct ceph_entity_addr pointer libceph: fix unaligned accesses in ceph_entity_addr handling rbd: don't assert on writes to snapshots rbd: client_mutex is never nested ceph: print inode number in __caps_issued_mask debugging messages ceph: just call get_session in __ceph_lookup_mds_session ceph: simplify arguments and return semantics of try_get_cap_refs ceph: fix comment over ceph_drop_caps_for_unlink ceph: move wait for mds request into helper function ceph: have ceph_mdsc_do_request call ceph_mdsc_submit_request ceph: after an MDS request, do callback and completions ceph: use pathlen values returned by set_request_path_attr ceph: use __getname/__putname in ceph_mdsc_build_path ceph: use ceph_mdsc_build_path instead of clone_dentry_name ceph: fix potential use-after-free in ceph_mdsc_build_path ceph: dump granular cap info in "caps" debugfs file ceph: make iterate_session_caps a public symbol ceph: fix NULL pointer deref when debugging is enabled ... commit 2c45e7fbc962be1b03f2c2af817a76f5ba810af2 Merge: 311f71281ff4 6df24c3e81b9 Author: Linus Torvalds Date: Thu May 16 16:16:18 2019 -0700 Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux Pull thermal management updates from Zhang Rui: - Remove the 'module' Kconfig option for thermal subsystem framework because the thermal framework are required to be ready as early as possible to avoid overheat at boot time (Daniel Lezcano) - Fix a bug that thermal framework pokes disabled thermal zones upon resume (Wei Wang) - A couple of cleanups and trivial fixes on int340x thermal drivers (Srinivas Pandruvada, Zhang Rui, Sumeet Pawnikar) * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux: drivers: thermal: processor_thermal: Downgrade error message mlxsw: Remove obsolete dependency on THERMAL=m hwmon/drivers/core: Simplify complex dependency thermal/drivers/core: Fix typo in the option name thermal/drivers/core: Remove depends on THERMAL in Kconfig thermal/drivers/core: Remove module unload code thermal/drivers/core: Remove the module Kconfig's option thermal: core: skip update disabled thermal zones after suspend thermal: make device_register's type argument const thermal: intel: int340x: processor_thermal_device: simplify to get driver data thermal/int3403_thermal: favor _TMP instead of PTYP commit 311f71281ff4b24f86a39c60c959f485c68a6d36 Merge: 7878c231dae0 8454fca4f53b Author: Linus Torvalds Date: Thu May 16 15:55:48 2019 -0700 Merge tag 'for-5.2/dm-changes-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm Pull device mapper updates from Mike Snitzer: - Improve DM snapshot target's scalability by using finer grained locking. Requires some list_bl interface improvements. - Add ability for DM integrity to use a bitmap mode, that tracks regions where data and metadata are out of sync, instead of using a journal. - Improve DM thin provisioning target to not write metadata changes to disk if the thin-pool and associated thin devices are merely activated but not used. This avoids metadata corruption due to concurrent activation of thin devices across different OS instances (e.g. split brain scenarios, which ultimately would be avoided if proper device filters were used -- but not having proper filtering has proven a very common configuration mistake) - Fix missing call to path selector type->end_io in DM multipath. This fixes reported performance problems due to inaccurate path selector IO accounting causing an imbalance of IO (e.g. avoiding issuing IO to particular path due to it seemingly being heavily used). - Fix bug in DM cache metadata's loading of its discard bitset that could lead to all cache blocks being discarded if the very first cache block was discarded (thankfully in practice the first cache block is generally in use; be it FS superblock, partition table, disk label, etc). - Add testing-only DM dust target which simulates a device that has failing sectors and/or read failures. - Fix a DM init error path reference count hang that caused boot hangs if user supplied malformed input on kernel commandline. - Fix a couple issues with DM crypt target's logging being overly verbose or lacking context. - Various other small fixes to DM init, DM multipath, DM zoned, and DM crypt. * tag 'for-5.2/dm-changes-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (42 commits) dm: fix a couple brace coding style issues dm crypt: print device name in integrity error message dm crypt: move detailed message into debug level dm ioctl: fix hang in early create error condition dm integrity: whitespace, coding style and dead code cleanup dm integrity: implement synchronous mode for reboot handling dm integrity: handle machine reboot in bitmap mode dm integrity: add a bitmap mode dm integrity: introduce a function add_new_range_and_wait() dm integrity: allow large ranges to be described dm ingerity: pass size to dm_integrity_alloc_page_list() dm integrity: introduce rw_journal_sectors() dm integrity: update documentation dm integrity: don't report unused options dm integrity: don't check null pointer before kvfree and vfree dm integrity: correctly calculate the size of metadata area dm dust: Make dm_dust_init and dm_dust_exit static dm dust: remove redundant unsigned comparison to less than zero dm mpath: always free attached_handler_name in parse_path() dm init: fix max devices/targets checks ... commit 7878c231dae05bae9dcf2ad4d309f02e51625033 Author: Qian Cai Date: Thu May 16 15:57:41 2019 -0400 slab: remove /proc/slab_allocators It turned out that DEBUG_SLAB_LEAK is still broken even after recent recue efforts that when there is a large number of objects like kmemleak_object which is normal on a debug kernel, # grep kmemleak /proc/slabinfo kmemleak_object 2243606 3436210 ... reading /proc/slab_allocators could easily loop forever while processing the kmemleak_object cache and any additional freeing or allocating objects will trigger a reprocessing. To make a situation worse, soft-lockups could easily happen in this sitatuion which will call printk() to allocate more kmemleak objects to guarantee an infinite loop. Also, since it seems no one had noticed when it was totally broken more than 2-year ago - see the commit fcf88917dd43 ("slab: fix a crash by reading /proc/slab_allocators"), probably nobody cares about it anymore due to the decline of the SLAB. Just remove it entirely. Suggested-by: Vlastimil Babka Suggested-by: Linus Torvalds Signed-off-by: Qian Cai Signed-off-by: Linus Torvalds commit 15d574fbd3f8ec7705896ed14b74eae482cadd4e Author: Baolin Wang Date: Wed Apr 10 15:22:50 2019 +0800 arm64: dts: sprd: Add clock properties for serial devices We've introduced power management logics for the Spreadtrum serial controller by commit 062ec2774c8a ("serial: sprd: Add power management for the Spreadtrum serial controller"), thus add related clock properties to support this feature. Signed-off-by: Baolin Wang Signed-off-by: Olof Johansson commit 510e2ceda031eed97a7a0f9aad65d271a58b460d Author: Wei Wang Date: Thu May 16 13:30:54 2019 -0700 ipv6: fix src addr routing with the exception table When inserting route cache into the exception table, the key is generated with both src_addr and dest_addr with src addr routing. However, current logic always assumes the src_addr used to generate the key is a /128 host address. This is not true in the following scenarios: 1. When the route is a gateway route or does not have next hop. (rt6_is_gw_or_nonexthop() == false) 2. When calling ip6_rt_cache_alloc(), saddr is passed in as NULL. This means, when looking for a route cache in the exception table, we have to do the lookup twice: first time with the passed in /128 host address, second time with the src_addr stored in fib6_info. This solves the pmtu discovery issue reported by Mikael Magnusson where a route cache with a lower mtu info is created for a gateway route with src addr. However, the lookup code is not able to find this route cache. Fixes: 2b760fcf5cfb ("ipv6: hook up exception table to store dst cache") Reported-by: Mikael Magnusson Bisected-by: David Ahern Signed-off-by: Wei Wang Cc: Martin Lau Cc: Eric Dumazet Acked-by: Martin KaFai Lau Signed-off-by: David S. Miller commit 9a6c8bf91b6025b1bb95d4fb454a16019ad22fc4 Author: David Ahern Date: Thu May 16 10:41:31 2019 -0700 selftests: pmtu.sh: Remove quotes around commands in setup_xfrm The first command in setup_xfrm is failing resulting in the test getting skipped: + ip netns exec ns-B ip -6 xfrm state add src fd00:1::a dst fd00:1::b spi 0x1000 proto esp aead 'rfc4106(gcm(aes))' 0x0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f 128 mode tunnel + out=RTNETLINK answers: Function not implemented ... xfrm6 not supported TEST: vti6: PMTU exceptions [SKIP] xfrm4 not supported TEST: vti4: PMTU exceptions [SKIP] ... The setup command started failing when the run_cmd option was added. Removing the quotes fixes the problem: ... TEST: vti6: PMTU exceptions [ OK ] TEST: vti4: PMTU exceptions [ OK ] ... Fixes: 56490b623aa0 ("selftests: Add debugging options to pmtu.sh") Signed-off-by: David Ahern Signed-off-by: David S. Miller commit d7c04b05c9ca14c55309eb139430283a45c4c25f Author: Eric Dumazet Date: Thu May 16 08:09:57 2019 -0700 net: avoid weird emergency message When host is under high stress, it is very possible thread running netdev_wait_allrefs() returns from msleep(250) 10 seconds late. This leads to these messages in the syslog : [...] unregister_netdevice: waiting for syz_tun to become free. Usage count = 0 If the device refcount is zero, the wait is over. Signed-off-by: Eric Dumazet Reported-by: syzbot Signed-off-by: David S. Miller commit 39db9815da489b47b50b8e6e4fc7566a77bd18bf Author: David Howells Date: Tue May 14 12:33:10 2019 +0100 afs: Fix application of the results of a inline bulk status fetch Fix afs_do_lookup() such that when it does an inline bulk status fetch op, it will update inodes that are already extant (something that afs_iget() doesn't do) and to cache permits for each inode created (thereby avoiding a follow up FS.FetchStatus call to determine this). Extant inodes need looking up in advance so that their cb_break counters before and after the operation can be compared. To this end, the inode pointers are cached so that they don't need looking up again after the op. Fixes: 5cf9dd55a0ec ("afs: Prospectively look up extra files when doing a single lookup") Signed-off-by: David Howells commit b8359153252d4465cb74f8de6c50e8c6295cbe2e Author: David Howells Date: Tue May 14 12:23:43 2019 +0100 afs: Pass pre-fetch server and volume break counts into afs_iget5_set() Pass the server and volume break counts from before the status fetch operation that queried the attributes of a file into afs_iget5_set() so that the new vnode's break counters can be initialised appropriately. This allows detection of a volume or server break that happened whilst we were fetching the status or setting up the vnode. Fixes: c435ee34551e ("afs: Overhaul the callback handling") Signed-off-by: David Howells commit a38a75581e6e2f783e7b8658e9ca5d4243279f55 Author: David Howells Date: Tue May 14 12:29:11 2019 +0100 afs: Fix unlink to handle YFS.RemoveFile2 better Make use of the status update for the target file that the YFS.RemoveFile2 RPC op returns to correctly update the vnode as to whether the file was actually deleted or just had nlink reduced. Fixes: 30062bd13e36 ("afs: Implement YFS support in the fs client") Signed-off-by: David Howells commit 61c347ba551162edb1c6abfa60ce6907baf7a1af Author: David Howells Date: Thu May 9 14:15:11 2019 +0100 afs: Clear AFS_VNODE_CB_PROMISED if we detect callback expiry Fix afs_validate() to clear AFS_VNODE_CB_PROMISED on a vnode if we detect any condition that causes the callback promise to be broken implicitly, including server break (cb_s_break), volume break (cb_v_break) or callback expiry. Fixes: ae3b7361dc0e ("afs: Fix validation/callback interaction") Reported-by: Marc Dionne Signed-off-by: David Howells commit f642404a0436a50912c218009ccc7856d48d784c Author: David Howells Date: Mon May 13 16:14:32 2019 +0100 afs: Make vnode->cb_interest RCU safe Use RCU-based freeing for afs_cb_interest struct objects and use RCU on vnode->cb_interest. Use that change to allow afs_check_validity() to use read_seqbegin_or_lock() instead of read_seqlock_excl(). This also requires the caller of afs_check_validity() to hold the RCU read lock across the call. Signed-off-by: David Howells commit c925bd0ac4741badb567f594c41c8cba5e9e9732 Author: David Howells Date: Thu May 9 14:31:11 2019 +0100 afs: Split afs_validate() so first part can be used under LOOKUP_RCU Split afs_validate() so that the part that decides if the vnode is still valid can be used under LOOKUP_RCU conditions from afs_d_revalidate(). Signed-off-by: David Howells commit 7c712458669f203fb2c59af8aafea4c4767b4bc9 Author: David Howells Date: Tue May 14 15:35:44 2019 +0100 afs: Don't save callback version and type fields Don't save callback version and type fields as the version is about the format of the callback information and the type is relative to the particular RPC call. Signed-off-by: David Howells commit e3a9f61b7ec3fd49227c3558d5ea897b75212871 Merge: 858e5400e682 6ae6d33280b8 Author: David S. Miller Date: Thu May 16 14:22:14 2019 -0700 Merge branch 'aqc111-revert-endianess-fixes-and-cleanup-mtu-logic' Igor Russkikh says: ==================== aqc111: revert endianess fixes and cleanup mtu logic This reverts no-op commits as it was discussed: https://lore.kernel.org/netdev/1557839644.11261.4.camel@suse.com/ First and second original patches are already dropped from stable, No need to stable-queue the third patch as it has no functional impact, just a logic cleanup. ==================== Signed-off-by: David S. Miller commit 6ae6d33280b839a05fd3daf5aef9c721aaa84a56 Author: Igor Russkikh Date: Thu May 16 14:52:25 2019 +0000 aqc111: cleanup mtu related logic Original fix b8b277525e9d was done under impression that invalid data could be written for mtu configuration higher that 16334. But the high limit will anyway be rejected my max_mtu check in caller. Thus, make the code cleaner and allow it doing the configuration without checking for maximum mtu value. Fixes: b8b277525e9d ("aqc111: fix endianness issue in aqc111_change_mtu") Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit 9e598a65b9f7ecf52fee0923747d18b1897270db Author: Igor Russkikh Date: Thu May 16 14:52:22 2019 +0000 Revert "aqc111: fix writing to the phy on BE" This reverts commit 369b46e9fbcfa5136f2cb5f486c90e5f7fa92630. The required temporary storage is already done inside of write32/16 helpers. Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit 5aee080f2cf18215dfc10ad2bb4be29fa7381050 Author: Igor Russkikh Date: Thu May 16 14:52:20 2019 +0000 Revert "aqc111: fix double endianness swap on BE" This reverts commit 2cf672709beb005f6e90cb4edbed6f2218ba953e. The required temporary storage is already done inside of write32/16 helpers. Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit 858e5400e682370d0f8d217fcd6fd6ae5b256f5f Author: Florian Westphal Date: Thu May 16 11:28:16 2019 +0200 xfrm: ressurrect "Fix uninitialized memory read in _decode_session4" This resurrects commit 8742dc86d0c7a9628 ("xfrm4: Fix uninitialized memory read in _decode_session4"), which got lost during a merge conflict resolution between ipsec-next and net-next tree. c53ac41e3720 ("xfrm: remove decode_session indirection from afinfo_policy") in ipsec-next moved the (buggy) _decode_session4 from net/ipv4/xfrm4_policy.c to net/xfrm/xfrm_policy.c. In mean time, 8742dc86d0c7a was applied to ipsec.git and fixed the problem in the "old" location. When the trees got merged, the moved, old function was kept. This applies the "lost" commit again, to the new location. Fixes: a658a3f2ecbab ("Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next") Reported-by: Stephen Rothwell Signed-off-by: Florian Westphal Signed-off-by: David S. Miller commit 8122de54602e30f0a73228ab6459a3654e652b92 Author: Rob Herring Date: Fri May 10 13:51:11 2019 -0500 dt-bindings: Convert vendor prefixes to json-schema Convert the vendor prefix registry to a schema. This will enable checking that new vendor prefixes are added (in addition to the less than perfect checkpatch.pl check) and will also check against adding other prefixes which are not vendors. Converted vendor-prefixes.txt using the following sed script: sed -e 's/\([a-zA-Z0-9\-]*\)[[:space:]]*\([a-zA-Z0-9].*\)/ "^\1,\.\*\":\n description: \2/' Signed-off-by: Rob Herring commit d72386fe7a8472f859333b078fd8bb9d254d51f2 Author: Andrii Nakryiko Date: Wed May 15 20:39:27 2019 -0700 libbpf: move logging helpers into libbpf_internal.h libbpf_util.h header was recently exposed as public as a dependency of xsk.h. In addition to memory barriers, it contained logging helpers, which are not supposed to be exposed. This patch moves those into libbpf_internal.h, which is kept as an internal header. Cc: Stanislav Fomichev Cc: Daniel Borkmann Fixes: 7080da890984 ("libbpf: add libbpf_util.h to header install.") Signed-off-by: Andrii Nakryiko Signed-off-by: Alexei Starovoitov commit 7e27e8d6130c5e88fac9ddec4249f7f2337fe7f8 Author: Junwei Hu Date: Thu May 16 10:51:15 2019 +0800 tipc: switch order of device registration to fix a crash When tipc is loaded while many processes try to create a TIPC socket, a crash occurs: PANIC: Unable to handle kernel paging request at virtual address "dfff20000000021d" pc : tipc_sk_create+0x374/0x1180 [tipc] lr : tipc_sk_create+0x374/0x1180 [tipc] Exception class = DABT (current EL), IL = 32 bits Call trace: tipc_sk_create+0x374/0x1180 [tipc] __sock_create+0x1cc/0x408 __sys_socket+0xec/0x1f0 __arm64_sys_socket+0x74/0xa8 ... This is due to race between sock_create and unfinished register_pernet_device. tipc_sk_insert tries to do "net_generic(net, tipc_net_id)". but tipc_net_id is not initialized yet. So switch the order of the two to close the race. This can be reproduced with multiple processes doing socket(AF_TIPC, ...) and one process doing module removal. Fixes: a62fbccecd62 ("tipc: make subscriber server support net namespace") Signed-off-by: Junwei Hu Reported-by: Wang Wang Reviewed-by: Xiaogang Wang Signed-off-by: David S. Miller commit 61fb0d01680771f72cc9d39783fb2c122aaad51e Author: Eric Dumazet Date: Wed May 15 19:39:52 2019 -0700 ipv6: prevent possible fib6 leaks At ipv6 route dismantle, fib6_drop_pcpu_from() is responsible for finding all percpu routes and set their ->from pointer to NULL, so that fib6_ref can reach its expected value (1). The problem right now is that other cpus can still catch the route being deleted, since there is no rcu grace period between the route deletion and call to fib6_drop_pcpu_from() This can leak the fib6 and associated resources, since no notifier will take care of removing the last reference(s). I decided to add another boolean (fib6_destroying) instead of reusing/renaming exception_bucket_flushed to ease stable backports, and properly document the memory barriers used to implement this fix. This patch has been co-developped with Wei Wang. Fixes: 93531c674315 ("net/ipv6: separate handling of FIB entries from dst based routes") Signed-off-by: Eric Dumazet Reported-by: syzbot Cc: Wei Wang Cc: David Ahern Cc: Martin Lau Acked-by: Wei Wang Acked-by: Martin KaFai Lau Reviewed-by: David Ahern Signed-off-by: David S. Miller commit 185ce5c38ea76f29b6bd9c7c8c7a5e5408834920 Author: Willem de Bruijn Date: Wed May 15 13:29:16 2019 -0400 net: test nouarg before dereferencing zerocopy pointers Zerocopy skbs without completion notification were added for packet sockets with PACKET_TX_RING user buffers. Those signal completion through the TP_STATUS_USER bit in the ring. Zerocopy annotation was added only to avoid premature notification after clone or orphan, by triggering a copy on these paths for these packets. The mechanism had to define a special "no-uarg" mode because packet sockets already use skb_uarg(skb) == skb_shinfo(skb)->destructor_arg for a different pointer. Before deferencing skb_uarg(skb), verify that it is a real pointer. Fixes: 5cd8d46ea1562 ("packet: copy user buffers before orphan or clone") Signed-off-by: Willem de Bruijn Signed-off-by: David S. Miller commit b4e467c82f8c12af78b6f6fa5730cb7dea7af1b4 Author: Daniele Palmas Date: Wed May 15 17:29:43 2019 +0200 net: usb: qmi_wwan: add Telit 0x1260 and 0x1261 compositions Added support for Telit LE910Cx 0x1260 and 0x1261 compositions. Signed-off-by: Daniele Palmas Acked-by: Bjørn Mork Signed-off-by: David S. Miller commit ee04a5fa9f3f5b956321177b0853716e1a2253b8 Author: Madalin-cristian Bucur Date: Wed May 15 15:07:44 2019 +0000 net: phy: aquantia: readd XGMII support for AQR107 XGMII interface mode no longer works on AQR107 after the recent changes, adding back support. Fixes: 570c8a7d5303 ("net: phy: aquantia: check for supported interface modes in config_init") Signed-off-by: Madalin Bucur Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 752beb5ec4413d40434957e427c6c48d5043f805 Author: Konstantin Khlebnikov Date: Wed May 15 14:40:52 2019 +0300 net: bpfilter: fallback to netfilter if failed to load bpfilter kernel module If bpfilter is not available return ENOPROTOOPT to fallback to netfilter. Function request_module() returns both errors and userspace exit codes. Just ignore them. Rechecking bpfilter_ops is enough. Fixes: d2ba09c17a06 ("net: add skeleton of bpfilter kernel module") Signed-off-by: Konstantin Khlebnikov Signed-off-by: David S. Miller commit a9eeb998c28d5506616426bd3a216bd5735a18b8 Author: Sunil Muthuswamy Date: Wed May 15 00:56:05 2019 +0000 hv_sock: Add support for delayed close Currently, hvsock does not implement any delayed or background close logic. Whenever the hvsock socket is closed, a FIN is sent to the peer, and the last reference to the socket is dropped, which leads to a call to .destruct where the socket can hang indefinitely waiting for the peer to close it's side. The can cause the user application to hang in the close() call. This change implements proper STREAM(TCP) closing handshake mechanism by sending the FIN to the peer and the waiting for the peer's FIN to arrive for a given timeout. On timeout, it will try to terminate the connection (i.e. a RST). This is in-line with other socket providers such as virtio. This change does not address the hang in the vmbus_hvsock_device_unregister where it waits indefinitely for the host to rescind the channel. That should be taken up as a separate fix. Signed-off-by: Sunil Muthuswamy Reviewed-by: Dexuan Cui Signed-off-by: David S. Miller commit 55c0dd8adda8f25a0bdc7b58a2dbe70b59a3dfbe Author: Fuqian Huang Date: Wed May 15 08:42:48 2019 +0800 atm: iphase: Avoid copying pointers to user space. Remove the MEMDUMP_DEV case in ia_ioctl to avoid copy pointers to user space. Signed-off-by: Fuqian Huang Signed-off-by: David S. Miller commit 7fecf0a1b72ce84d32e63d840c775fc440fc8261 Merge: 2407a88a13a2 12d5cbf89a65 Author: David S. Miller Date: Thu May 16 12:02:42 2019 -0700 Merge branch 'flow_offload-fix-CVLAN-support' Edward Cree says: ==================== flow_offload: fix CVLAN support When the flow_offload infrastructure was added, CVLAN matches weren't plumbed through, and flow_rule_match_vlan() was incorrectly called in the mlx5 driver when populating CVLAN match information. This series adds flow_rule_match_cvlan(), and uses it in the mlx5 code. Both patches should also go to 5.1 stable. ==================== Signed-off-by: David S. Miller commit 12d5cbf89a6599f6bbd7b373dba0e74b5bd9c505 Author: Jianbo Liu Date: Tue May 14 21:18:50 2019 +0100 net/mlx5e: Fix calling wrong function to get inner vlan key and mask When flow_rule_match_XYZ() functions were first introduced, flow_rule_match_cvlan() for inner vlan is missing. In mlx5_core driver, to get inner vlan key and mask, flow_rule_match_vlan() is just called, which is wrong because it obtains outer vlan information by FLOW_DISSECTOR_KEY_VLAN. This commit fixes this by changing to call flow_rule_match_cvlan() after it's added. Fixes: 8f2566225ae2 ("flow_offload: add flow_rule and flow_match structures and use them") Signed-off-by: Jianbo Liu Signed-off-by: Edward Cree Signed-off-by: David S. Miller commit bae9ed69029c7d499c57485593b2faae475fd704 Author: Edward Cree Date: Tue May 14 21:18:12 2019 +0100 flow_offload: support CVLAN match Plumb it through from the flow_dissector. Signed-off-by: Edward Cree Signed-off-by: David S. Miller commit 01be377c62210a8d8fef35be906f9349591bb7cd Merge: 11b1177399b6 fc8670d1f72b Author: Linus Torvalds Date: Thu May 16 11:57:16 2019 -0700 Merge tag 'media/v5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media Pull media fixes from Mauro Carvalho Chehab: "Some fixes for some platform drivers (rockchip, atmel, omap, daVinci, tegra-cec, coda and rcar). Also includes a fix on one of the V4L2 uAPI doc, explaining a border case" * tag 'media/v5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: media: rockchip/vpu: Fix/re-order probe-error/remove path media: rockchip/vpu: Initialize mdev->bus_info media: rockchip/vpu: Get vdev from the file arg in vidioc_querycap() media: rockchip/vpu: Add missing dont_use_autosuspend() calls media: rockchip/vpu: Do not request id 0 for our video device media: tegra-cec: fix cec_notifier_parse_hdmi_phandle return check media: davinci/vpbe: array underflow in vpbe_enum_outputs() media: field-order.rst: clarify FIELD_ANY and FIELD_NONE media: staging/imx: add media device to capture register media: rcar-csi2: Propagate the FLD signal for NTSC and PAL media: rcar-csi2: restart CSI-2 link if error is detected media: omap_vout: potential buffer overflow in vidioc_dqbuf() media: coda: fix unset field and fail on invalid field in buf_prepare media: atmel: atmel-isc: fix asd memory allocation media: atmel: atmel-isc: fix INIT_WORK misplacement media: atmel: atmel-isc: limit incoming pixels per frame commit 11b1177399b69528f75ad7594ce93c957d4d16b6 Merge: 4e785e8d9947 29a0c843973b Author: Linus Torvalds Date: Thu May 16 11:55:35 2019 -0700 Merge tag 'edac_fixes_for_5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp Pull EDAC fixes from Borislav Petkov: - Do not build mpc85_edac as a module (Michael Ellerman) - Correct edac_mc_find()'s return value on error (Robert Richter) * tag 'edac_fixes_for_5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: EDAC/mc: Fix edac_mc_find() in case no device is found EDAC/mpc85xx: Prevent building as a module commit 4e785e8d9947f0f75e39cf3034dd6f55170c514b Merge: 27ebbf9d5bc0 35399f87e271 Author: Linus Torvalds Date: Thu May 16 11:46:58 2019 -0700 Merge tag 'configfs-for-5.2' of git://git.infradead.org/users/hch/configfs Pull configfs update from Christoph Hellwig: - a fix for an error path use after free (YueHaibing) * tag 'configfs-for-5.2' of git://git.infradead.org/users/hch/configfs: configfs: fix possible use-after-free in configfs_register_group commit ac4e0e055fee5751c78bba1fc9ce508a6874d916 Author: Yonghong Song Date: Thu May 16 10:17:31 2019 -0700 tools/bpftool: move set_max_rlimit() before __bpf_object__open_xattr() For a host which has a lower rlimit for max locked memory (e.g., 64KB), the following error occurs in one of our production systems: # /usr/sbin/bpftool prog load /paragon/pods/52877437/home/mark.o \ /sys/fs/bpf/paragon_mark_21 type cgroup/skb \ map idx 0 pinned /sys/fs/bpf/paragon_map_21 libbpf: Error in bpf_object__probe_name():Operation not permitted(1). Couldn't load basic 'r0 = 0' BPF program. Error: failed to open object file The reason is due to low locked memory during bpf_object__probe_name() which probes whether program name is supported in kernel or not during __bpf_object__open_xattr(). bpftool program load already tries to relax mlock rlimit before bpf_object__load(). Let us move set_max_rlimit() before __bpf_object__open_xattr(), which fixed the issue here. Fixes: 47eff61777c7 ("bpf, libbpf: introduce bpf_object__probe_caps to test BPF capabilities") Signed-off-by: Yonghong Song Signed-off-by: Alexei Starovoitov commit bca844a8c92502b2aa5bd50a9094eaf01a1710c0 Author: Stanislav Fomichev Date: Thu May 16 09:46:57 2019 -0700 selftests/bpf: add test_sysctl and map_tests/tests.h to .gitignore Missing files are: * tools/testing/selftests/bpf/map_tests/tests.h - autogenerated * tools/testing/selftests/bpf/test_sysctl - binary Fixes: 51a0e301a563 ("bpf: Add BPF_MAP_TYPE_SK_STORAGE test to test_maps") Fixes: 1f5fa9ab6e2e ("selftests/bpf: Test BPF_CGROUP_SYSCTL") Signed-off-by: Stanislav Fomichev Signed-off-by: Alexei Starovoitov commit e547ff3f803e779a3898f1f48447b29f43c54085 Author: Chenbo Feng Date: Tue May 14 19:42:57 2019 -0700 bpf: relax inode permission check for retrieving bpf program For iptable module to load a bpf program from a pinned location, it only retrieve a loaded program and cannot change the program content so requiring a write permission for it might not be necessary. Also when adding or removing an unrelated iptable rule, it might need to flush and reload the xt_bpf related rules as well and triggers the inode permission check. It might be better to remove the write premission check for the inode so we won't need to grant write access to all the processes that flush and restore iptables rules. Signed-off-by: Chenbo Feng Signed-off-by: Alexei Starovoitov commit 27ebbf9d5bc0ab0a8ca875119e0ce4cd267fa2fc Merge: d396360acdf7 6edd1dbace0e Author: Linus Torvalds Date: Thu May 16 11:26:37 2019 -0700 Merge tag 'asm-generic-nommu' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic Pull nommu generic uaccess updates from Arnd Bergmann: "asm-generic: kill and improve nommu generic uaccess helpers Christoph Hellwig writes: This is a series doing two somewhat interwinded things. It improves the asm-generic nommu uaccess helper to optionally be entirely generic and not require any arch helpers for the actual uaccess. For the generic uaccess.h to actually be generically useful I also had to kill off the mess we made of , which really shouldn't exist on most architectures" * tag 'asm-generic-nommu' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic: asm-generic: optimize generic uaccess for 8-byte loads and stores asm-generic: provide entirely generic nommu uaccess arch: mostly remove asm-generic: don't include from commit faff3fcf01effe2be9a7efc165df5af2b5747b73 Merge: e40b0695d56d 2725d70aa513 Author: Olof Johansson Date: Thu May 16 11:05:11 2019 -0700 Merge tag 'at91-5.2-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into arm/late AT91 SoC for 5.2 - PM changes for SAM9X60 * tag 'at91-5.2-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux: ARM: at91: pm: do not disable/enable PLLA for ULP modes ARM: at91: pm: disable RC oscillator in ULP0 ARM: at91: pm: add ULP1 support for SAM9X60 ARM: at91: pm: add support for per SoC wakeup source configuration ARM: at91: pm: keep at91_pm_backup_init() only for SAMA5D2 SoCs ARM: at91: pm: initial PM support for SAM9X60 dt-bindings: arm: atmel: add binding for SAM9X60 SoC ARM: at91: pm: introduce at91_soc_pm structure Signed-off-by: Olof Johansson commit d396360acdf7e57edcd9e2d080343b0353d65d63 Merge: b2c3dda6f8f0 9d8d0294e78a Author: Linus Torvalds Date: Thu May 16 11:02:27 2019 -0700 Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 fixes from Ingo Molnar: "Misc fixes and updates: - a handful of MDS documentation/comment updates - a cleanup related to hweight interfaces - a SEV guest fix for large pages - a kprobes LTO fix - and a final cleanup commit for vDSO HPET support removal" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/speculation/mds: Improve CPU buffer clear documentation x86/speculation/mds: Revert CPU buffer clear on double fault exit x86/kconfig: Disable CONFIG_GENERIC_HWEIGHT and remove __HAVE_ARCH_SW_HWEIGHT x86/mm: Do not use set_{pud, pmd}_safe() when splitting a large page x86/kprobes: Make trampoline_handler() global and visible x86/vdso: Remove hpet_page from vDSO commit b2c3dda6f8f06d825b9b6099f57b906c774141c0 Merge: c77ee64f8a04 fdc6bae940ee Author: Linus Torvalds Date: Thu May 16 11:00:20 2019 -0700 Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull time fixes from Ingo Molnar: "A TIA adjtimex interface extension, and a POSIX compliance ABI fix for timespec64 users" * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: ntp: Allow TAI-UTC offset to be set to zero y2038: Make CONFIG_64BIT_TIME unconditional commit e40b0695d56df51ae4d4fe4f60b6c61d123dc7bb Merge: d6e245acc900 c60fed1dfd44 Author: Olof Johansson Date: Thu May 16 10:59:33 2019 -0700 Merge tag 'at91-5.2-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into arm/late AT91 defconfig for 5.2 - ov2640 driver as module - selecting HAVE_FB_ATMEL for SAMA5 SoCs is useless * tag 'at91-5.2-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux: ARM: at91: sama5: make ov2640 as a module ARM: at91: remove HAVE_FB_ATMEL for sama5 SoC as they use DRM Signed-off-by: Olof Johansson commit c77ee64f8a04166236666dfd540ff684d2daa1c0 Merge: f57d7715d764 c7a286577d75 Author: Linus Torvalds Date: Thu May 16 10:58:54 2019 -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: "An x86 PMU constraint fix, an interface fix, and a Sparse fix" * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf/x86/intel: Allow PEBS multi-entry in watermark mode perf/x86/intel: Fix INTEL_FLAGS_EVENT_CONSTRAINT* masking perf/x86/amd/iommu: Make the 'amd_iommu_attr_groups' symbol static commit d6e245acc900feeeae021c96d6b33a1c71598373 Merge: 3c7f51bfad49 7278358407be Author: Olof Johansson Date: Thu May 16 10:55:23 2019 -0700 Merge tag 'tegra-for-5.2-arm64-dt-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/late arm64: tegra: Device tree fixes for v5.2-rc1 This contains one patch to disable the recently added XUSB support on Jetson TX2 which is reported to cause boot and CPU hotplug failures in some cases and doesn't allow the core power rail to be switched off. Furthermore there are some changes to enable IOMMU support on more devices. This is needed in order to prevent these devices from breaking with the policy change in the ARM SMMU driver to break insecure devices that is currently headed for v5.2. * tag 'tegra-for-5.2-arm64-dt-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: arm64: tegra: Disable XUSB support on Jetson TX2 arm64: tegra: Enable SMMU translation for PCI on Tegra186 arm64: tegra: Fix insecure SMMU users for Tegra186 Signed-off-by: Olof Johansson commit 3c7f51bfad49d22ebb5c2993d715358e5df2d7c1 Merge: 23c6eddfbb0c 2e988a83874b Author: Olof Johansson Date: Thu May 16 10:55:03 2019 -0700 Merge tag 'tegra-for-5.2-arm64-soc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/late arm64: tegra: Core fixes for v5.2-rc1 This enables the ARM_GIC_PM driver by default for Tegra in order to increase build coverage. * tag 'tegra-for-5.2-arm64-soc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: arm64: tegra: Select ARM_GIC_PM Signed-off-by: Olof Johansson commit 23c6eddfbb0c9f3d36d4c1f0a1b6c52ec09b9955 Merge: 982c736cd677 6d6165603e16 Author: Olof Johansson Date: Thu May 16 10:54:45 2019 -0700 Merge tag 'tegra-for-5.2-bus-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/late bus/tegra: Fixes for v5.2-rc1 This contains a single fix for a potential PM-related build issue. * tag 'tegra-for-5.2-bus-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: amba: tegra-ahb: Mark PM functions as __maybe_unused Signed-off-by: Olof Johansson commit f57d7715d7645b7c3d1e7b7cb79ac7690fe2d260 Merge: b2ca74d32bba a9e9bcb45b15 Author: Linus Torvalds Date: Thu May 16 10:54:19 2019 -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 rwsem fix" * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: locking/rwsem: Prevent decrement of reader count before increment commit 982c736cd67720d012cbd1379211a3736f887f5e Author: Marc Gonzalez Date: Wed May 15 14:47:57 2019 +0200 Opt out of scripts/get_maintainer.pl A few months ago, I submitted a trivial arm64 defconfig update. get_maintainer.pl now outputs my address for every defconfig tweak. Add me to .get_maintainer.ignore to opt out of these notifications. Signed-off-by: Marc Gonzalez Signed-off-by: Olof Johansson commit 648a5fbc90ee8c6d746c7a5661a2a811d5120651 Merge: 9e3bf9cdc703 fce638e85350 Author: Olof Johansson Date: Wed May 15 23:25:08 2019 -0700 Merge tag 'socfpga_arm32_defconfig_for_v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into arm/late arm32 socfpga_defconfig updates for v5.2 - Enable LTC2497 driver - Enable support for large block devices * tag 'socfpga_arm32_defconfig_for_v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux: ARM: socfpga_defconfig: enable LTC2497 ARM: socfpga_defconfig: enable support for large block devices Signed-off-by: Olof Johansson commit 9e3bf9cdc703bed5093dc014e6a0e50b36c31058 Merge: c32beba325d8 5674a92ca4b7 Author: Olof Johansson Date: Wed May 15 23:24:23 2019 -0700 Merge tag 'soc-fsl-fix-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/leo/linux into arm/late NXP/FSL soc driver fixes for v5.1 QE drivers - Fix an error path in qe_pin_request() * tag 'soc-fsl-fix-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/leo/linux: soc/fsl/qe: Fix an error code in qe_pin_request() Signed-off-by: Olof Johansson commit c32beba325d8c54d8affa158a0a54643ba87eab4 Merge: 163d65cbf3ba 7af2ea3b29b1 Author: Olof Johansson Date: Wed May 15 23:23:43 2019 -0700 Merge tag 'mvebu-arm-5.2-1' of git://git.infradead.org/linux-mvebu into arm/late mvebu arm for 5.2 (part 1) - remove improper error message on kirkwood - a couple a clean-up patch generated from automatic tools - clean-up in assembly code allowing using LLVM * tag 'mvebu-arm-5.2-1' of git://git.infradead.org/linux-mvebu: ARM: mvebu: drop return from void function ARM: mvebu: prefix coprocessor operand with p ARM: mvebu: drop unnecessary label ARM: mvebu: fix a leaked reference by adding missing of_node_put ARM: mvebu: kirkwood: remove error message when retrieving mac address Signed-off-by: Olof Johansson commit 163d65cbf3bace75f6b0bc83fa4e8ca8795579cf Merge: 8e7b65a6eb7a 6a38df676a0a Author: Olof Johansson Date: Wed May 15 23:22:52 2019 -0700 Merge tag 'omap-for-v5.1/fixes-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/late Two regression fixes for omaps Two one-liners to fix board-ams-delta booting regression and logicpd-som-lv MMC card detect to use GPIO_ACTIVE_LOW instead of IRQ_TYPE_LEVEL_LOW. Note that the board-ams-delta regression has been in there already since v5.0, so if necessary these can wait for the merge window. * tag 'omap-for-v5.1/fixes-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: dts: logicpd-som-lv: Fix MMC1 card detect ARM: OMAP1: ams-delta: fix early boot crash when LED support is disabled Signed-off-by: Olof Johansson commit 8e7b65a6eb7a8876b389afb34176a41eb3d70238 Author: YueHaibing Date: Mon May 6 08:31:09 2019 +0200 ARM: ixp4xx: Remove duplicated include from common.c Remove duplicated include. Signed-off-by: YueHaibing Signed-off-by: Linus Walleij Signed-off-by: Olof Johansson commit c180d710ee7af111d75886a3339fc82a65d25c69 Author: Dan Carpenter Date: Mon May 6 08:31:08 2019 +0200 soc: ixp4xx: qmgr: Fix an NULL vs IS_ERR() check in probe The devm_ioremap_resource() function doesn't retunr NULL, it returns error pointers. Fixes: ecc133c6da60 ("soc: ixp4xx: qmgr: Pass resources") Signed-off-by: Dan Carpenter Signed-off-by: Linus Walleij Signed-off-by: Olof Johansson commit 05b289263772b0698589abc47771264a685cd365 Author: Roman Gushchin Date: Thu May 16 10:38:21 2019 -0700 signal: unconditionally leave the frozen state in ptrace_stop() Alex Xu reported a regression in strace, caused by the introduction of the cgroup v2 freezer. The regression can be reproduced by stracing the following simple program: #include int main() { write(1, "a", 1); return 0; } An attempt to run strace ./a.out leads to the infinite loop: [ pre-main omitted ] write(1, "a", 1) = ? ERESTARTSYS (To be restarted if SA_RESTART is set) write(1, "a", 1) = ? ERESTARTSYS (To be restarted if SA_RESTART is set) write(1, "a", 1) = ? ERESTARTSYS (To be restarted if SA_RESTART is set) write(1, "a", 1) = ? ERESTARTSYS (To be restarted if SA_RESTART is set) write(1, "a", 1) = ? ERESTARTSYS (To be restarted if SA_RESTART is set) write(1, "a", 1) = ? ERESTARTSYS (To be restarted if SA_RESTART is set) [ repeats forever ] The problem occurs because the traced task leaves ptrace_stop() (and the signal handling loop) with the frozen bit set. So let's call cgroup_leave_frozen(true) unconditionally after sleeping in ptrace_stop(). With this patch applied, strace works as expected: [ pre-main omitted ] write(1, "a", 1) = 1 exit_group(0) = ? +++ exited with 0 +++ Reported-by: Alex Xu Fixes: 76f969e8948d ("cgroup: cgroup v2 freezer") Signed-off-by: Roman Gushchin Acked-by: Oleg Nesterov Cc: Tejun Heo Signed-off-by: Tejun Heo commit b2ca74d32bba153a1507e6b7e36d3ec8a89311a1 Merge: 8c05f3b965da 2decec48b0fd Author: Linus Torvalds Date: Thu May 16 10:29:00 2019 -0700 Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull core fixes from Ingo Molnar: "A handful of objtool updates, plus a documentation addition for __ab_c_size()" * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: objtool: Fix whitelist documentation typo objtool: Fix function fallthrough detection objtool: Don't use ignore flag for fake jumps overflow.h: Add comment documenting __ab_c_size() commit 4fc4d8dfa056dfd48afe73b9ea3b7570ceb80b9c Author: Jin Yao Date: Fri Apr 12 21:59:49 2019 +0800 perf stat: Support 'percore' event qualifier With this patch, we can use the 'percore' event qualifier in perf-stat. root@skl:/tmp# perf stat -e cpu/event=0,umask=0x3,percore=1/,cpu/event=0,umask=0x3/ -a -A -I1000 1.000773050 S0-C0 98,352,832 cpu/event=0,umask=0x3,percore=1/ (50.01%) 1.000773050 S0-C1 103,763,057 cpu/event=0,umask=0x3,percore=1/ (50.02%) 1.000773050 S0-C2 196,776,995 cpu/event=0,umask=0x3,percore=1/ (50.02%) 1.000773050 S0-C3 176,493,779 cpu/event=0,umask=0x3,percore=1/ (50.02%) 1.000773050 CPU0 47,699,641 cpu/event=0,umask=0x3/ (50.02%) 1.000773050 CPU1 49,052,451 cpu/event=0,umask=0x3/ (49.98%) 1.000773050 CPU2 102,771,422 cpu/event=0,umask=0x3/ (49.98%) 1.000773050 CPU3 100,784,662 cpu/event=0,umask=0x3/ (49.98%) 1.000773050 CPU4 43,171,342 cpu/event=0,umask=0x3/ (49.98%) 1.000773050 CPU5 54,152,158 cpu/event=0,umask=0x3/ (49.98%) 1.000773050 CPU6 93,618,410 cpu/event=0,umask=0x3/ (49.98%) 1.000773050 CPU7 74,477,589 cpu/event=0,umask=0x3/ (49.99%) In this example, we count the event 'ref-cycles' per-core and per-CPU in one perf stat command-line. From the output, we can see: S0-C0 = CPU0 + CPU4 S0-C1 = CPU1 + CPU5 S0-C2 = CPU2 + CPU6 S0-C3 = CPU3 + CPU7 So the result is expected (tiny difference is ignored). Note that, the 'percore' event qualifier needs to use with option '-A'. Signed-off-by: Jin Yao Tested-by: Ravi Bangoria Acked-by: Jiri Olsa Cc: Alexander Shishkin Cc: Andi Kleen Cc: Jin Yao Cc: Kan Liang Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1555077590-27664-4-git-send-email-yao.jin@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 40480a8136700d678dc07222c4d7287c89d0c04d Author: Jin Yao Date: Fri Apr 12 21:59:48 2019 +0800 perf stat: Factor out aggregate counts printing Move the aggregate counts printing to a new function print_counter_aggrdata, which will be used in following patches. Signed-off-by: Jin Yao Tested-by: Ravi Bangoria Acked-by: Jiri Olsa Cc: Alexander Shishkin Cc: Andi Kleen Cc: Jin Yao Cc: Kan Liang Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1555077590-27664-3-git-send-email-yao.jin@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 064b4e82aa1633c27c383cc686b87ced57e072d1 Author: Jin Yao Date: Fri Apr 12 21:59:47 2019 +0800 perf tools: Add a 'percore' event qualifier Add a 'percore' event qualifier, like cpu/event=0,umask=0x3,percore=1/, that sums up the event counts for both hardware threads in a core. We can already do this with --per-core, but it's often useful to do this together with other metrics that are collected per hardware thread. So we need to support this per-core counting on a event level. This can be implemented in only the user tool, no kernel support needed. v4: --- 1. Add Arnaldo's patch which updates the documentation for this new qualifier. 2. Rebase to latest perf/core branch v3: --- Simplify the code according to Jiri's comments. Before: "return term->val.percore ? true : false;" Now: "return term->val.percore;" v2: --- Change the qualifier name from 'coresum' to 'percore' according to comments from Jiri and Andi. Signed-off-by: Jin Yao Tested-by: Ravi Bangoria Acked-by: Jiri Olsa Cc: Alexander Shishkin Cc: Andi Kleen Cc: Jin Yao Cc: Kan Liang Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1555077590-27664-2-git-send-email-yao.jin@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 6cf626563998d3f8770cc25146986810ee4a5969 Author: Thomas Richter Date: Mon May 13 10:02:20 2019 +0200 perf docs: Add description for stderr 'perf report' displays recorded data on the screen and emits warnings and debug messages in the status line (last one on screen). perf also supports the possibility to write all debug messages to stderr (instead of writing them to the status line). This is achieved with the following command: # ./perf --debug stderr=1 report -vvvvv -i ~/fast.data 2>/tmp/2 # ll /tmp/2 -rw-rw-r-- 1 tmricht tmricht 5420835 May 7 13:46 /tmp/2 # The usage of variable stderr=1 is not documented, so add it to the perf man page. Signed-off-by: Thomas Richter Cc: Heiko Carstens Cc: Hendrik Brueckner Cc: Martin Schwidefsky Link: http://lkml.kernel.org/r/20190513080220.91966-1-tmricht@linux.ibm.com Signed-off-by: Arnaldo Carvalho de Melo commit 1b6599a9d8e6c9f7e9b0476012383b1777f7fc93 Author: Adrian Hunter Date: Fri May 10 15:41:43 2019 +0300 perf intel-pt: Fix sample timestamp wrt non-taken branches The sample timestamp is updated to ensure that the timestamp represents the time of the sample and not a branch that the decoder is still walking towards. The sample timestamp is updated when the decoder returns, but the decoder does not return for non-taken branches. Update the sample timestamp then also. Note that commit 3f04d98e972b5 ("perf intel-pt: Improve sample timestamp") was also a stable fix and appears, for example, in v4.4 stable tree as commit a4ebb58fd124 ("perf intel-pt: Improve sample timestamp"). Signed-off-by: Adrian Hunter Cc: Jiri Olsa Cc: stable@vger.kernel.org # v4.4+ Fixes: 3f04d98e972b ("perf intel-pt: Improve sample timestamp") Link: http://lkml.kernel.org/r/20190510124143.27054-4-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 61b6e08dc8e3ea80b7485c9b3f875ddd45c8466b Author: Adrian Hunter Date: Fri May 10 15:41:42 2019 +0300 perf intel-pt: Fix improved sample timestamp The decoder uses its current timestamp in samples. Usually that is a timestamp that has already passed, but in some cases it is a timestamp for a branch that the decoder is walking towards, and consequently hasn't reached. The intel_pt_sample_time() function decides which is which, but was not handling TNT packets exactly correctly. In the case of TNT, the timestamp applies to the first branch, so the decoder must first walk to that branch. That means intel_pt_sample_time() should return true for TNT, and this patch makes that change. However, if the first branch is a non-taken branch (i.e. a 'N'), then intel_pt_sample_time() needs to return false for subsequent taken branches in the same TNT packet. To handle that, introduce a new state INTEL_PT_STATE_TNT_CONT to distinguish the cases. Note that commit 3f04d98e972b5 ("perf intel-pt: Improve sample timestamp") was also a stable fix and appears, for example, in v4.4 stable tree as commit a4ebb58fd124 ("perf intel-pt: Improve sample timestamp"). Signed-off-by: Adrian Hunter Cc: Jiri Olsa Cc: stable@vger.kernel.org # v4.4+ Fixes: 3f04d98e972b5 ("perf intel-pt: Improve sample timestamp") Link: http://lkml.kernel.org/r/20190510124143.27054-3-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 7ba8fa20e26eb3c0c04d747f7fd2223694eac4d5 Author: Adrian Hunter Date: Fri May 10 15:41:41 2019 +0300 perf intel-pt: Fix instructions sampling rate The timestamp used to determine if an instruction sample is made, is an estimate based on the number of instructions since the last known timestamp. A consequence is that it might go backwards, which results in extra samples. Change it so that a sample is only made when the timestamp goes forwards. Note this does not affect a sampling period of 0 or sampling periods specified as a count of instructions. Example: Before: $ perf script --itrace=i10us ls 13812 [003] 2167315.222583: 3270 instructions:u: 7fac71e2e494 __GI___tunables_init+0xf4 (/lib/x86_64-linux-gnu/ld-2.28.so) ls 13812 [003] 2167315.222667: 30902 instructions:u: 7fac71e2da0f _dl_cache_libcmp+0x2f (/lib/x86_64-linux-gnu/ld-2.28.so) ls 13812 [003] 2167315.222667: 10 instructions:u: 7fac71e2d9ff _dl_cache_libcmp+0x1f (/lib/x86_64-linux-gnu/ld-2.28.so) ls 13812 [003] 2167315.222667: 8 instructions:u: 7fac71e2d9ea _dl_cache_libcmp+0xa (/lib/x86_64-linux-gnu/ld-2.28.so) ls 13812 [003] 2167315.222667: 14 instructions:u: 7fac71e2d9ea _dl_cache_libcmp+0xa (/lib/x86_64-linux-gnu/ld-2.28.so) ls 13812 [003] 2167315.222667: 6 instructions:u: 7fac71e2d9ff _dl_cache_libcmp+0x1f (/lib/x86_64-linux-gnu/ld-2.28.so) ls 13812 [003] 2167315.222667: 14 instructions:u: 7fac71e2d9ff _dl_cache_libcmp+0x1f (/lib/x86_64-linux-gnu/ld-2.28.so) ls 13812 [003] 2167315.222667: 4 instructions:u: 7fac71e2dab2 _dl_cache_libcmp+0xd2 (/lib/x86_64-linux-gnu/ld-2.28.so) ls 13812 [003] 2167315.222728: 16423 instructions:u: 7fac71e2477a _dl_map_object_deps+0x1ba (/lib/x86_64-linux-gnu/ld-2.28.so) ls 13812 [003] 2167315.222734: 12731 instructions:u: 7fac71e27938 _dl_name_match_p+0x68 (/lib/x86_64-linux-gnu/ld-2.28.so) ... After: $ perf script --itrace=i10us ls 13812 [003] 2167315.222583: 3270 instructions:u: 7fac71e2e494 __GI___tunables_init+0xf4 (/lib/x86_64-linux-gnu/ld-2.28.so) ls 13812 [003] 2167315.222667: 30902 instructions:u: 7fac71e2da0f _dl_cache_libcmp+0x2f (/lib/x86_64-linux-gnu/ld-2.28.so) ls 13812 [003] 2167315.222728: 16479 instructions:u: 7fac71e2477a _dl_map_object_deps+0x1ba (/lib/x86_64-linux-gnu/ld-2.28.so) ... Signed-off-by: Adrian Hunter Cc: Jiri Olsa Cc: stable@vger.kernel.org Fixes: f4aa081949e7b ("perf tools: Add Intel PT decoder") Link: http://lkml.kernel.org/r/20190510124143.27054-2-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 6466ec14aaf44ff14a05369dcf0929d0f01171c6 Author: Kan Liang Date: Tue May 14 13:19:34 2019 -0700 perf regs x86: Add X86 specific arch__intr_reg_mask() XMM registers can be collected on Icelake and later platforms. Add specific arch__intr_reg_mask(), which creating an event to check if the kernel and hardware can collect XMM registers. Test on Skylake which doesn't support XMM registers collection. There is nothing changed. #perf record -I? available registers: AX BX CX DX SI DI BP SP IP FLAGS CS SS R8 R9 R10 R11 R12 R13 R14 R15 Usage: perf record [] [] or: perf record [] -- [] -I, --intr-regs[=] sample selected machine registers on interrupt, use '-I?' to list register names #perf record -I [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.905 MB perf.data (2520 samples) ] #perf evlist -v cycles: size: 112, { sample_period, sample_freq }: 4000, sample_type: IP|TID|TIME|CPU|PERIOD|REGS_INTR, read_format: ID, disabled: 1, inherit: 1, mmap: 1, comm: 1, freq: 1, task: 1, precise_ip: 3, sample_id_all: 1, exclude_guest: 1, mmap2: 1, comm_exec: 1, ksymbol: 1, bpf_event: 1, sample_regs_intr: 0xff0fff Test on Icelake which support XMM registers collection. #perf record -I? available registers: AX BX CX DX SI DI BP SP IP FLAGS CS SS R8 R9 R10 R11 R12 R13 R14 R15 XMM0 XMM1 XMM2 XMM3 XMM4 XMM5 XMM6 XMM7 XMM8 XMM9 XMM10 XMM11 XMM12 XMM13 XMM14 XMM15 Usage: perf record [] [] or: perf record [] -- [] -I, --intr-regs[=] sample selected machine registers on interrupt, use '-I?' to list register names #perf record -I [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.800 MB perf.data (318 samples) ] #perf evlist -v cycles: size: 112, { sample_period, sample_freq }: 4000, sample_type: IP|TID|TIME|CPU|PERIOD|REGS_INTR, read_format: ID, disabled: 1, inherit: 1, mmap: 1, comm: 1, freq: 1, task: 1, precise_ip: 3, sample_id_all: 1, exclude_guest: 1, mmap2: 1, comm_exec: 1, ksymbol: 1, bpf_event: 1, sample_regs_intr: 0xffffffff00ff0fff Committer notes: Don't set attr.sample_period as a named struct init, as it is part of an unnamed union in 'struct perf_event_attr', and doing so breaks the build on older gcc versions, such as: gcc version 4.1.2 20080704 (Red Hat 4.1.2-55) gcc version 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC) arch/x86/util/perf_regs.c: In function 'arch__intr_reg_mask': arch/x86/util/perf_regs.c:279: error: unknown field 'sample_period' specified in initializer cc1: warnings being treated as errors arch/x86/util/perf_regs.c:279: warning: missing braces around initializer arch/x86/util/perf_regs.c:279: warning: (near initialization for 'attr.') Signed-off-by: Kan Liang [ Only on a lenovo t480s, a skylake machine, where the XMM registers didn't show up in -I?/--user-regs=? as expected ] Tested-by: Arnaldo Carvalho de Melo Cc: Andi Kleen Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1557865174-56264-3-git-send-email-kan.liang@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit af785e75bf616704cab031e66403b6adcf5b700a Author: Kan Liang Date: Tue May 14 13:19:33 2019 -0700 perf parse-regs: Add generic support for arch__intr/user_reg_mask() There may be different register mask for use with intr or user on some platforms, e.g. Icelake. Add weak functions arch__intr_reg_mask() and arch__user_reg_mask() to return intr and user register mask respectively. Check mask before printing or comparing the register name. Generic code always return PERF_REGS_MASK. No functional change. Suggested-by: Arnaldo Carvalho de Melo Signed-off-by: Kan Liang Tested-by: Ravi Bangoria Cc: Andi Kleen Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1557865174-56264-2-git-send-email-kan.liang@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 2407a88a13a2d03ea9b8c86bbdedb3eff80c4b9e Merge: c7d5ec26ea4a e9458a4e337d Author: David S. Miller Date: Thu May 16 09:45:20 2019 -0700 Merge branch 'rhashtable-Fix-sparse-warnings' Herbert Xu says: ==================== rhashtable: Fix sparse warnings This patch series fixes all the sparse warnings. ==================== Signed-off-by: David S. Miller commit e9458a4e337db565191e3f1cee71bb553802def4 Author: Herbert Xu Date: Thu May 16 15:19:48 2019 +0800 rhashtable: Fix cmpxchg RCU warnings As cmpxchg is a non-RCU mechanism it will cause sparse warnings when we use it for RCU. This patch adds explicit casts to silence those warnings. This should probably be moved to RCU itself in future. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller commit ba6306e3f648a857ae52ddcabc2859542fd2f94c Author: Herbert Xu Date: Thu May 16 15:19:46 2019 +0800 rhashtable: Remove RCU marking from rhash_lock_head The opaque type rhash_lock_head should not be marked with __rcu because it can never be dereferenced. We should apply the RCU marking when we turn it into a pointer which can be dereferenced. This patch does exactly that. This fixes a number of sparse warnings as well as getting rid of some unnecessary RCU checking. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller commit 8c05f3b965da14e7790711026b32cc10a4c06213 Merge: ab02888e3921 b752bb405a13 Author: Linus Torvalds Date: Thu May 16 09:41:54 2019 -0700 Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm Pull ARM updates from Russell King: "ARM development updates: - more unified assembly conversions for clang - drop obsolete -mauto-it assembler option - remove arm_memory_present in preference to the generic version - remove unused asm/limits.h header - vdso linker update We tried to make the assembler warn if unified syntax was not used, but unfortunately older versions of GCC warn, so the commit had to be reverted" * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: Revert "ARM: 8846/1: warn if divided syntax assembler is used" ARM: 8858/1: vdso: use $(LD) instead of $(CC) to link VDSO ARM: 8855/1: remove unused ARM: 8850/1: use memblocks_present ARM: 8854/1: drop -mauto-it ARM: 8846/1: warn if divided syntax assembler is used ARM: 8853/1: drop WASM to work around LLVM issue ARM: 8852/1: uaccess: use unified assembler language syntax ARM: 8851/1: add TUSERCOND() macro for conditional postfix commit ab02888e39212af2d1dddc565cd67192548b9fd8 Merge: dc413a90edbe 85200317b324 Author: Linus Torvalds Date: Thu May 16 09:35:26 2019 -0700 Merge tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc Pull ARM SoC defconfig updates from Olof Johansson: "Mostly the usual churn due to options being reordered or not added in the right locations. Some various enabling of new drivers, etc. ... i.e. the usual updates, nothing particularly sticks out" * tag 'armsoc-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (23 commits) arm64: defconfig: Update UFSHCD for Hi3660 soc ARM: multi_v7_defconfig: Enable support for STPMIC1 ARM: multi_v7_defconfig: Enable missing drivers for supported Chromebooks arm64: defconfig: enable mv-xor driver ARM: Enable Trusted Foundations for multiplatform ARM v7 ARM: tegra: Enable Trusted Foundations by default ARM: tegra: Update default configuration for v5.1-rc1 ARM: multi_v7_defconfig: Update for moved options ARM: multi_v7_defconfig: Update for dropped options ARM: shmobile: Enable USB [EO]HCI HCD PLATFORM support in shmobile_defconfig ARM: shmobile: Enable PHY_RCAR_GEN3_USB2 in shmobile_defconfig ARM: qcom_defconfig: add options for LG Nexus 5 phone arm64: defconfig: include the Agilex platform to the arm64 defconfig arm64: defconfig: Add PWM Fan support arm64: defconfig: Enable Tegra HDA support ARM: multi_v7_defconfig: Enable support for CFI NOR FLASH ARM: shmobile: defconfig: Enable support for CFI NOR FLASH ARM: shmobile: defconfig: Refresh for v5.1-rc1 ARM: multi_v7_defconfig: enable the Amlogic Meson ADC and eFuse drivers arm64: defconfig: enable fpga and service layer ... commit d8076bdb56af5e5918376cd1573a6b0007fc1a89 Author: David Howells Date: Thu May 16 12:52:34 2019 +0100 uapi: Wire up the mount API syscalls on non-x86 arches [ver #2] Wire up the mount API syscalls on non-x86 arches. Reported-by: Arnd Bergmann Signed-off-by: David Howells Reviewed-by: Arnd Bergmann Signed-off-by: Al Viro commit 9c8ad7a2ff0bfe58f019ec0abc1fb965114dde7d Author: David Howells Date: Thu May 16 12:52:27 2019 +0100 uapi, x86: Fix the syscall numbering of the mount API syscalls [ver #2] Fix the syscall numbering of the mount API syscalls so that the numbers match between i386 and x86_64 and that they're in the common numbering scheme space. Fixes: a07b20004793 ("vfs: syscall: Add open_tree(2) to reference or clone a mount") Fixes: 2db154b3ea8e ("vfs: syscall: Add move_mount(2) to move mounts around") Fixes: 24dcb3d90a1f ("vfs: syscall: Add fsopen() to prepare for superblock creation") Fixes: ecdab150fddb ("vfs: syscall: Add fsconfig() for configuring and managing a context") Fixes: 93766fbd2696 ("vfs: syscall: Add fsmount() to create a mount for a superblock") Fixes: cf3cba4a429b ("vfs: syscall: Add fspick() to select a superblock for reconfiguration") Reported-by: Arnd Bergmann Signed-off-by: David Howells Reviewed-by: Arnd Bergmann Signed-off-by: Al Viro commit 1cdc415f10831c18912943017d06b2be948c67b4 Author: Christian Brauner Date: Thu May 16 12:52:20 2019 +0100 uapi, fsopen: use square brackets around "fscontext" [ver #2] Make the name of the anon inode fd "[fscontext]" instead of "fscontext". This is minor but most core-kernel anon inode fds already carry square brackets around their name: [eventfd] [eventpoll] [fanotify] [io_uring] [pidfd] [signalfd] [timerfd] [userfaultfd] For the sake of consistency lets do the same for the fscontext anon inode fd that comes with the new mount api. Signed-off-by: Christian Brauner Signed-off-by: David Howells Signed-off-by: Al Viro commit dc413a90edbe715bebebe859dc072ef73d490d70 Merge: e8a1d7011711 80d0c6492442 Author: Linus Torvalds Date: Thu May 16 09:19:14 2019 -0700 Merge tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc Pull ARM SoC-related driver updates from Olof Johansson: "Various driver updates for platforms and a couple of the small driver subsystems we merge through our tree: Among the larger pieces: - Power management improvements for TI am335x and am437x (RTC suspend/wake) - Misc new additions for Amlogic (socinfo updates) - ZynqMP FPGA manager - Nvidia improvements for reset/powergate handling - PMIC wrapper for Mediatek MT8516 - Misc fixes/improvements for ARM SCMI, TEE, NXP i.MX SCU drivers" * tag 'armsoc-drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (57 commits) soc: aspeed: fix Kconfig soc: add aspeed folder and misc drivers spi: zynqmp: Fix build break soc: imx: Add generic i.MX8 SoC driver MAINTAINERS: Update email for Qualcomm SoC maintainer memory: tegra: Fix a typos for "fdcdwr2" mc client Revert "ARM: tegra: Restore memory arbitration on resume from LP1 on Tegra30+" memory: tegra: Replace readl-writel with mc_readl-mc_writel memory: tegra: Fix integer overflow on tick value calculation memory: tegra: Fix missed registers values latching ARM: tegra: cpuidle: Handle tick broadcasting within cpuidle core on Tegra20/30 optee: allow to work without static shared memory soc/tegra: pmc: Move powergate initialisation to probe soc/tegra: pmc: Remove reset sysfs entries on error soc/tegra: pmc: Fix reset sources and levels soc: amlogic: meson-gx-pwrc-vpu: Add support for G12A soc: amlogic: meson-gx-pwrc-vpu: Fix power on/off register bitmask fpga manager: Adding FPGA Manager support for Xilinx zynqmp dt-bindings: fpga: Add bindings for ZynqMP fpga driver firmware: xilinx: Add fpga API's ... commit 7d293f56456120efa97c4e18250d86d2a05ad0bd Author: Axel Lin Date: Thu May 16 20:48:08 2019 +0800 regulator: tps6507x: Fix boot regression due to testing wrong init_data pointer A NULL init_data once incremented will lead to oops, fix it. Fixes: f979c08f7624 ("regulator: tps6507x: Convert to regulator core's simplified DT parsing code") Reported-by: Sekhar Nori Signed-off-by: Axel Lin Tested-by: Sekhar Nori Signed-off-by: Mark Brown commit e8a1d70117116c8d96c266f0b99e931717670eaf Merge: 22c58fd70ca4 6cbc4d88ad20 Author: Linus Torvalds Date: Thu May 16 08:38:17 2019 -0700 Merge tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc Pull ARM Device-tree updates from Olof Johansson: "Besides new bindings and additional descriptions of hardware blocks for various SoCs and boards, the main new contents here is: SoCs: - Intel Agilex (SoCFPGA) - NXP i.MX8MM (Quad Cortex-A53 with media/graphics focus) New boards: - Allwinner: + RerVision H3-DVK (H3) + Oceanic 5205 5inMFD (H6) + Beelink GS2 (H6) + Orange Pi 3 (H6) - Rockchip: + Orange Pi RK3399 + Nanopi NEO4 + Veyron-Mighty Chromebook variant - Amlogic: + SEI Robotics SEI510 - ST Micro: + stm32mp157a discovery1 + stm32mp157c discovery2 - NXP: + Eckelmann ci4x10 (i.MX6DL) + i.MX8MM EVK (i.MX8MM) + ZII i.MX7 RPU2 (i.MX7) + ZII SPB4 (VF610) + Zii Ultra (i.MX8M) + TQ TQMa7S (i.MX7Solo) + TQ TQMa7D (i.MX7Dual) + Kobo Aura (i.MX50) + Menlosystems M53 (i.MX53)j - Nvidia: + Jetson Nano (Tegra T210)" * tag 'armsoc-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (593 commits) arm64: dts: bitmain: Add UART pinctrl support for Sophon Edge arm64: dts: bitmain: Add pinctrl support for BM1880 SoC arm64: dts: bitmain: Add GPIO Line names for Sophon Edge board arm64: dts: bitmain: Add GPIO support for BM1880 SoC ARM: dts: gemini: Indent DIR-685 partition table dt-bindings: hwmon (pwm-fan) Remove dead "cooling-*-state" properties ARM: dts: qcom-apq8064: Set 'cxo_board' as ref clock of the DSI PHY arm64: dts: msm8998: thermal: Restrict thermal zone name length to under 20 arm64: dts: msm8998: thermal: Fix number of supported sensors arm64: dts: msm8998-mtp: thermal: Remove skin and battery thermal zones arm64: dts: exynos: Move fixed-clocks out of soc arm64: dts: exynos: Move pmu and timer nodes out of soc ARM: dts: s5pv210: Fix camera clock provider on Goni board ARM: dts: exynos: Properly override node to use MDMA0 on Universal C210 ARM: dts: exynos: Move fixed-clocks out of soc on Exynos3250 ARM: dts: exynos: Remove unneeded address/size cells from fixed-clock on Exynos3250 ARM: dts: exynos: Move pmu and timer nodes out of soc arm64: dts: rockchip: fix IO domain voltage setting of APIO5 on rockpro64 arm64: dts: db820c: Add sound card support arm64: dts: apq8096-db820c: Add HDMI display support ... commit 22c58fd70ca48a29505922b1563826593b08cc00 Merge: a455eda33faa 7a0c4c17089a Author: Linus Torvalds Date: Thu May 16 08:31:32 2019 -0700 Merge tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc Pull ARM SoC platform updates from Olof Johansson: "SoC updates, mostly refactorings and cleanups of old legacy platforms. Major themes this release: - Conversion of ixp4xx to a modern platform (drivers, DT, bindings) - Moving some of the ep93xx headers around to get it closer to multiplatform enabled. - Cleanups of Davinci This also contains a few patches that were queued up as fixes before 5.1 but I didn't get sent in before release" * tag 'armsoc-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (123 commits) ARM: debug-ll: add default address for digicolor ARM: u300: regulator: add MODULE_LICENSE() ARM: ep93xx: move private headers out of mach/* ARM: ep93xx: move pinctrl interfaces into include/linux/soc ARM: ep93xx: keypad: stop using mach/platform.h ARM: ep93xx: move network platform data to separate header ARM: stm32: add AMBA support for stm32 family MAINTAINERS: update arch/arm/mach-davinci ARM: rockchip: add missing of_node_put in rockchip_smp_prepare_pmu ARM: dts: Add queue manager and NPE to the IXP4xx DTSI soc: ixp4xx: qmgr: Add DT probe code soc: ixp4xx: qmgr: Add DT bindings for IXP4xx qmgr soc: ixp4xx: npe: Add DT probe code soc: ixp4xx: Add DT bindings for IXP4xx NPE soc: ixp4xx: qmgr: Pass resources soc: ixp4xx: Remove unused functions soc: ixp4xx: Uninline several functions soc: ixp4xx: npe: Pass addresses as resources ARM: ixp4xx: Turn the QMGR into a platform device ARM: ixp4xx: Turn the NPE into a platform device ... commit fd711586bb7d63f257da5eff234e68c446ac35ea Author: David Howells Date: Fri May 10 23:14:41 2019 +0100 afs: Fix double inc of vnode->cb_break When __afs_break_callback() clears the CB_PROMISED flag, it increments vnode->cb_break to trigger a future refetch of the status and callback - however it also calls afs_clear_permits(), which also increments vnode->cb_break. Fix this by removing the increment from afs_clear_permits(). Whilst we're at it, fix the conditional call to afs_put_permits() as the function checks to see if the argument is NULL, so the check is redundant. Fixes: be080a6f43c4 ("afs: Overhaul permit caching"); Signed-off-by: David Howells commit a58823ac458968f9fb3dbf97ee2749a62be12807 Author: David Howells Date: Thu May 9 15:16:10 2019 +0100 afs: Fix application of status and callback to be under same lock When applying the status and callback in the response of an operation, apply them in the same critical section so that there's no race between checking the callback state and checking status-dependent state (such as the data version). Fix this by: (1) Allocating a joint {status,callback} record (afs_status_cb) before calling the RPC function for each vnode for which the RPC reply contains a status or a status plus a callback. A flag is set in the record to indicate if a callback was actually received. (2) These records are passed into the RPC functions to be filled in. The afs_decode_status() and yfs_decode_status() functions are removed and the cb_lock is no longer taken. (3) xdr_decode_AFSFetchStatus() and xdr_decode_YFSFetchStatus() no longer update the vnode. (4) xdr_decode_AFSCallBack() and xdr_decode_YFSCallBack() no longer update the vnode. (5) vnodes, expected data-version numbers and callback break counters (cb_break) no longer need to be passed to the reply delivery functions. Note that, for the moment, the file locking functions still need access to both the call and the vnode at the same time. (6) afs_vnode_commit_status() is now given the cb_break value and the expected data_version and the task of applying the status and the callback to the vnode are now done here. This is done under a single taking of vnode->cb_lock. (7) afs_pages_written_back() is now called by afs_store_data() rather than by the reply delivery function. afs_pages_written_back() has been moved to before the call point and is now given the first and last page numbers rather than a pointer to the call. (8) The indicator from YFS.RemoveFile2 as to whether the target file actually got removed (status.abort_code == VNOVNODE) rather than merely dropping a link is now checked in afs_unlink rather than in xdr_decode_YFSFetchStatus(). Supplementary fixes: (*) afs_cache_permit() now gets the caller_access mask from the afs_status_cb object rather than picking it out of the vnode's status record. afs_fetch_status() returns caller_access through its argument list for this purpose also. (*) afs_inode_init_from_status() now uses a write lock on cb_lock rather than a read lock and now sets the callback inside the same critical section. Fixes: c435ee34551e ("afs: Overhaul the callback handling") Signed-off-by: David Howells commit c7226e407b6065d3bda8bd9dc627663d2c505ea3 Author: David Howells Date: Fri May 10 23:03:31 2019 +0100 afs: Fix lock-wait/callback-break double locking __afs_break_callback() holds vnode->lock around its call of afs_lock_may_be_available() - which also takes that lock. Fix this by not taking the lock in __afs_break_callback(). Also, there's no point checking the granted_locks and pending_locks queues; it's sufficient to check lock_state, so move that check out of afs_lock_may_be_available() into __afs_break_callback() to replace the queue checks. Fixes: e8d6c554126b ("AFS: implement file locking") Signed-off-by: David Howells commit 4571577f16c82f8db8133b228cdca5fd61042c77 Author: David Howells Date: Tue May 14 11:44:26 2019 +0100 afs: Always get the reply time Always ask for the reply time from AF_RXRPC as it's used to calculate the callback expiry time and lock expiry times, so it's needed by most FS operations. Signed-off-by: David Howells commit d9052dda8a39069312218f913d22d99c48d90004 Author: David Howells Date: Tue May 14 11:52:03 2019 +0100 afs: Don't invalidate callback if AFS_VNODE_DIR_VALID not set Don't invalidate the callback promise on a directory if the AFS_VNODE_DIR_VALID flag is not set (which indicates that the directory contents are invalid, due to edit failure, callback break, page reclaim). The directory will be reloaded next time the directory is accessed, so clearing the callback flag at this point may race with a reload of the directory and cancel it's recorded callback promise. Fixes: f3ddee8dc4e2 ("afs: Fix directory handling") Signed-off-by: David Howells commit 87182759cd6f94875d6aaaac74eaa52aa6aa6f98 Author: David Howells Date: Thu May 9 16:17:05 2019 +0100 afs: Fix order-1 allocation in afs_do_lookup() afs_do_lookup() will do an order-1 allocation to allocate status records if there are more than 39 vnodes to stat. Fix this by allocating an array of {status,callback} records for each vnode we want to examine using vmalloc() if larger than a page. This not only gets rid of the order-1 allocation, but makes it easier to grow beyond 50 records for YFS servers. It also allows us to move to {status,callback} tuples for other calls too and makes it easier to lock across the application of the status and the callback to the vnode. Fixes: 5cf9dd55a0ec ("afs: Prospectively look up extra files when doing a single lookup") Signed-off-by: David Howells commit 781070551c26def14784ce5ca14194d7ca234b04 Author: David Howells Date: Thu May 9 17:56:53 2019 +0100 afs: Fix calculation of callback expiry time Fix the calculation of the expiry time of a callback promise, as obtained from operations like FS.FetchStatus and FS.FetchData. The time should be based on the timestamp of the first DATA packet in the reply and the calculation needs to turn the ktime_t timestamp into a time64_t. Fixes: c435ee34551e ("afs: Overhaul the callback handling") Signed-off-by: David Howells commit ffba718e935402e7f42b8cd5d1e00e4a3907d361 Author: David Howells Date: Thu May 9 22:22:50 2019 +0100 afs: Get rid of afs_call::reply[] Replace the afs_call::reply[] array with a bunch of typed members so that the compiler can use type-checking on them. It's also easier for the eye to see what's going on. Signed-off-by: David Howells commit 3b05e528cb9ef1c7b251705acca46d8deb80183c Author: David Howells Date: Thu May 9 09:17:08 2019 +0100 afs: Make dynamic root population wait uninterruptibly for proc_cells_lock Make dynamic root population wait uninterruptibly for proc_cells_lock. Signed-off-by: David Howells commit fefb2483dc10c736e4235984fed4f3a61c99e1c2 Author: David Howells Date: Thu May 9 17:19:10 2019 +0100 afs: Don't pass the vnode pointer through into the inline bulk status op Don't pass the vnode pointer through into the inline bulk status op. We want to process the status records outside of it anyway. Signed-off-by: David Howells commit 20b8391fff56f64893233a772a81adc392a69121 Author: David Howells Date: Wed May 8 16:16:31 2019 +0100 afs: Make some RPC operations non-interruptible Make certain RPC operations non-interruptible, including: (*) Set attributes (*) Store data We don't want to get interrupted during a flush on close, flush on unlock, writeback or an inode update, leaving us in a state where we still need to do the writeback or update. (*) Extend lock (*) Release lock We don't want to get lock extension interrupted as the file locks on the server are time-limited. Interruption during lock release is less of an issue since the lock is time-limited, but it's better to complete the release to avoid a several-minute wait to recover it. *Setting* the lock isn't a problem if it's interrupted since we can just return to the user and tell them they were interrupted - at which point they can elect to retry. (*) Silly unlink We want to remove silly unlink files if we can, rather than leaving them for the salvager to clear up. Note that whilst these calls are no longer interruptible, they do have timeouts on them, so if the server stops responding the call will fail with something like ETIME or ECONNRESET. Without this, the following: kAFS: Unexpected error from FS.StoreData -512 appears in dmesg when a pending store data gets interrupted and some processes may just hang. Additionally, make the code that checks/updates the server record ignore failure due to interruption if the main call is uninterruptible and if the server has an address list. The next op will check it again since the expiration time on the old list has past. Fixes: d2ddc776a458 ("afs: Overhaul volume and server record caching and fileserver rotation") Reported-by: Jonathan Billings Reported-by: Marc Dionne Signed-off-by: David Howells commit b960a34b73e4c1c972623bc2076e24b97588d09e Author: David Howells Date: Thu May 9 08:21:21 2019 +0100 rxrpc: Allow the kernel to mark a call as being non-interruptible Allow kernel services using AF_RXRPC to indicate that a call should be non-interruptible. This allows kafs to make things like lock-extension and writeback data storage calls non-interruptible. If this is set, signals will be ignored for operations on that call where possible - such as waiting to get a call channel on an rxrpc connection. It doesn't prevent UDP sendmsg from being interrupted, but that will be handled by packet retransmission. rxrpc_kernel_recv_data() isn't affected by this since that never waits, preferring instead to return -EAGAIN and leave the waiting to the caller. Userspace initiated calls can't be set to be uninterruptible at this time. Signed-off-by: David Howells commit 0ab4c9594812c4bc5606daf0677ae304bf7ec8c8 Author: David Howells Date: Thu May 16 14:51:48 2019 +0100 afs: Fix error propagation from server record check/update afs_check/update_server_record() should be setting fc->error rather than fc->ac.error as they're called from within the cursor iteration function. afs_fs_cursor::error is where the error code of the attempt to call the operation on multiple servers is integrated and is the final result, whereas afs_addr_cursor::error is used to hold the error from individual iterations of the call loop. (Note there's also an afs_vl_cursor which also wraps afs_addr_cursor for accessing VL servers rather than file servers). Fix this by setting fc->error in the afs_check/update_server_record() so that any error incurred whilst talking to the VL server correctly propagates to the final result. This results in: kAFS: Unexpected error from FS.StoreData -512 being seen, even though the store-data op is non-interruptible. The error is actually coming from the server record update getting interrupted. Fixes: d2ddc776a458 ("afs: Overhaul volume and server record caching and fileserver rotation") Signed-off-by: David Howells commit 94f699c9cdb11b8f53cb70624b69aeae16f26db2 Author: David Howells Date: Thu May 16 13:21:59 2019 +0100 afs: Fix the maximum lifespan of VL and probe calls If an older AFS server doesn't support an operation, it may accept the call and then sit on it forever, happily responding to pings that make kafs think that the call is still alive. Fix this by setting the maximum lifespan of Volume Location service calls in particular and probe calls in general so that they don't run on endlessly if they're not supported. Signed-off-by: David Howells commit a455eda33faafcaac1effb31d682765b14ef868c Merge: cc7ce90153e7 37bcec5d9f71 Author: Linus Torvalds Date: Thu May 16 07:56:57 2019 -0700 Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal Pull thermal soc updates from Eduardo Valentin: - thermal core has a new devm_* API for registering cooling devices. I took the entire series, that is why you see changes on drivers/hwmon in this pull (Guenter Roeck) - rockchip thermal driver gains support to PX30 SoC (Elaine Zhang) - the generic-adc thermal driver now considers the lookup table DT property as optional (Jean-Francois Dagenais) - Refactoring of tsens thermal driver (Amit Kucheria) - Cleanups on cpu cooling driver (Daniel Lezcano) - broadcom thermal driver dropped support to ACPI (Srinath Mannam) - tegra thermal driver gains support to OC hw throttle and GPU throtle (Wei Ni) - Fixes in several thermal drivers. * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal: (59 commits) hwmon: (pwm-fan) Use devm_thermal_of_cooling_device_register hwmon: (npcm750-pwm-fan) Use devm_thermal_of_cooling_device_register hwmon: (mlxreg-fan) Use devm_thermal_of_cooling_device_register hwmon: (gpio-fan) Use devm_thermal_of_cooling_device_register hwmon: (aspeed-pwm-tacho) Use devm_thermal_of_cooling_device_register thermal: rcar_gen3_thermal: Fix to show correct trip points number thermal: rcar_thermal: update calculation formula for R-Car Gen3 SoCs thermal: cpu_cooling: Actually trace CPU load in thermal_power_cpu_get_power thermal: rockchip: Support the PX30 SoC in thermal driver dt-bindings: rockchip-thermal: Support the PX30 SoC compatible thermal: rockchip: fix up the tsadc pinctrl setting error thermal: broadcom: Remove ACPI support thermal: Fix build error of missing devm_ioremap_resource on UM thermal/drivers/cpu_cooling: Remove pointless field thermal/drivers/cpu_cooling: Add Software Package Data Exchange (SPDX) thermal/drivers/cpu_cooling: Fixup the header and copyright thermal/drivers/cpu_cooling: Remove pointless test in power2state() thermal: rcar_gen3_thermal: disable interrupt in .remove thermal: rcar_gen3_thermal: fix interrupt type thermal: Introduce devm_thermal_of_cooling_device_register ... commit 7a102d9044e720ac887c0cd82b6d5cad236f6d71 Author: Jackie Liu Date: Wed May 15 16:52:19 2019 +0800 block/bio-integrity: use struct_size() in kmalloc() Use the new struct_size() helper to keep code simple. Reviewed-by: Chaitanya Kulkarni Signed-off-by: Jackie Liu Signed-off-by: Jens Axboe commit bbd172e31696709b58eb492fafb574985b778326 Author: David Howells Date: Thu May 16 13:50:31 2019 +0100 rxrpc: Provide kernel interface to set max lifespan on a call Provide an interface to set max lifespan on a call from inside of the kernel without having to call kernel_sendmsg(). Signed-off-by: David Howells commit 51eba99970797229b3ac8527193171adea5222ed Author: David Howells Date: Wed May 15 23:06:24 2019 +0100 afs: Fix "kAFS: AFS vnode with undefined type 0" Under some circumstances afs_select_fileserver() can return without setting an error in fc->error. The problem is in the no_more_servers segment where the accumulated errors from attempts to contact various servers are integrated into an afs_error-type variable 'e'. The resultant error code is, however, then abandoned. Fix this by getting the error out of e.error and putting it in 'error' so that the next part will store it into fc->error. Not doing this causes a report like the following: kAFS: AFS vnode with undefined type 0 kAFS: A=0 m=0 s=0 v=0 kAFS: vnode 20000025:1:1 because the code following the server selection loop then sees what it thinks is a successful invocation because fc.error is 0. However, it can't apply the status record because it's all zeros. The report is followed on the first instance with a trace looking something like: dump_stack+0x67/0x8e afs_inode_init_from_status.isra.2+0x21b/0x487 afs_fetch_status+0x119/0x1df afs_iget+0x130/0x295 afs_get_tree+0x31d/0x595 vfs_get_tree+0x1f/0xe8 fc_mount+0xe/0x36 afs_d_automount+0x328/0x3c3 follow_managed+0x109/0x20a lookup_fast+0x3bf/0x3f8 do_last+0xc3/0x6a4 path_openat+0x1af/0x236 do_filp_open+0x51/0xae ? _raw_spin_unlock+0x24/0x2d ? __alloc_fd+0x1a5/0x1b7 do_sys_open+0x13b/0x1e8 do_syscall_64+0x7d/0x1b3 entry_SYSCALL_64_after_hwframe+0x49/0xbe Fixes: 4584ae96ae30 ("afs: Fix missing net error handling") Signed-off-by: David Howells commit 6457f42eb3f6e9552366631bd5aeb096ae5f599a Author: Aneesh Kumar K.V Date: Wed May 15 15:15:23 2019 +0530 powerpc/mm: Drop VM_BUG_ON in get_region_id() We call get_region_id() without validating the ea value. That means with a wrong ea value we hit the BUG as below. kernel BUG at arch/powerpc/include/asm/book3s/64/hash.h:129! Oops: Exception in kernel mode, sig: 5 [#1] LE PAGE_SIZE=64K MMU=Hash SMP NR_CPUS=2048 NUMA pSeries CPU: 0 PID: 3937 Comm: access_tests Not tainted 5.1.0 .... NIP [c00000000007ba20] do_slb_fault+0x70/0x320 LR [c00000000000896c] data_access_slb_common+0x15c/0x1a0 Fix this by removing the VM_BUG_ON. All callers make sure the returned region id is valid and error out otherwise. Fixes: 0034d395f89d ("powerpc/mm/hash64: Map all the kernel regions in the same 0xc range") Reported-by: Andrew Donnellan Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit cc7ce90153e74f8266eefee9fba466faa1a2d5df Merge: 83f3ef3de625 8da0e1525b7f Author: Linus Torvalds Date: Thu May 16 07:22:42 2019 -0700 Merge tag 'drm-next-2019-05-16' of git://anongit.freedesktop.org/drm/drm Pull drm fixes from Dave Airlie: "A bunch of fixes for the merge window closure, doesn't seem to be anything too major or serious in there. It does add TU117 turing modesetting to nouveau but it's just an enable for preexisting code. amdgpu: - gpu reset at load crash fix - ATPX hotplug fix for when dGPU is off - SR-IOV fixes radeon: - r5xx pll fixes i915: - GVT (MCHBAR, buffer alignment, misc warnings fixes) - Fixes for newly enabled semaphore code - Geminilake disable framebuffer compression - HSW edp fast modeset fix - IRQ vs RCU race fix nouveau: - Turing modesetting fixes - TU117 support msm: - SDM845 bringup fixes panfrost: - static checker fixes pl111: - spinlock init fix. bridge: - refresh rate register fix for adv7511" * tag 'drm-next-2019-05-16' of git://anongit.freedesktop.org/drm/drm: (36 commits) drm/msm: Upgrade gxpd checks to IS_ERR_OR_NULL drm/msm/dpu: Remove duplicate header drm/pl111: Initialize clock spinlock early drm/msm: correct attempted NULL pointer dereference in debugfs drm/msm: remove resv fields from msm_gem_object struct drm/nouveau: fix duplication of nv50_head_atom struct drm/nouveau/disp/dp: respect sink limits when selecting failsafe link configuration drm/nouveau/core: initial support for boards with TU117 chipset drm/nouveau/core: allow detected chipset to be overridden drm/nouveau/kms/gf119-gp10x: push HeadSetControlOutputResource() mthd when encoders change drm/nouveau/kms/nv50-: fix bug preventing non-vsync'd page flips drm/nouveau/kms/gv100-: fix spurious window immediate interlocks drm/bridge: adv7511: Fix low refresh rate selection drm/panfrost: Add missing _fini() calls in panfrost_device_fini() drm/panfrost: Only put sync_out if non-NULL drm/i915: Seal races between async GPU cancellation, retirement and signaling drm/i915: Fix fastset vs. pfit on/off on HSW EDP transcoder drm/i915/fbc: disable framebuffer compression on GeminiLake drm/amdgpu/psp: move psp version specific function pointers to early_init drm/radeon: prefer lower reference dividers ... commit fdb288a679cdf6a71f3c1ae6f348ba4dae742681 Author: Jackie Liu Date: Thu May 16 11:46:31 2019 +0800 io_uring: use wait_event_interruptible for cq_wait conditional wait The previous patch has ensured that io_cqring_events contain smp_rmb memory barriers, Now we can use wait_event_interruptible to keep the code simple. Signed-off-by: Jackie Liu Signed-off-by: Jens Axboe commit dc6ce4bc2b355a47f225a0205046b3ebf29a7f72 Author: Jackie Liu Date: Thu May 16 11:46:30 2019 +0800 io_uring: adjust smp_rmb inside io_cqring_events Whenever smp_rmb is required to use io_cqring_events, keep smp_rmb inside the function io_cqring_events. Signed-off-by: Jackie Liu Signed-off-by: Jens Axboe commit 2bbcd6d3b36a75a19be4917807f54ae32dd26aba Author: Roman Penyaev Date: Thu May 16 10:53:57 2019 +0200 io_uring: fix infinite wait in khread_park() on io_finish_async() This fixes couple of races which lead to infinite wait of park completion with the following backtraces: [20801.303319] Call Trace: [20801.303321] ? __schedule+0x284/0x650 [20801.303323] schedule+0x33/0xc0 [20801.303324] schedule_timeout+0x1bc/0x210 [20801.303326] ? schedule+0x3d/0xc0 [20801.303327] ? schedule_timeout+0x1bc/0x210 [20801.303329] ? preempt_count_add+0x79/0xb0 [20801.303330] wait_for_completion+0xa5/0x120 [20801.303331] ? wake_up_q+0x70/0x70 [20801.303333] kthread_park+0x48/0x80 [20801.303335] io_finish_async+0x2c/0x70 [20801.303336] io_ring_ctx_wait_and_kill+0x95/0x180 [20801.303338] io_uring_release+0x1c/0x20 [20801.303339] __fput+0xad/0x210 [20801.303341] task_work_run+0x8f/0xb0 [20801.303342] exit_to_usermode_loop+0xa0/0xb0 [20801.303343] do_syscall_64+0xe0/0x100 [20801.303349] entry_SYSCALL_64_after_hwframe+0x44/0xa9 [20801.303380] Call Trace: [20801.303383] ? __schedule+0x284/0x650 [20801.303384] schedule+0x33/0xc0 [20801.303386] io_sq_thread+0x38a/0x410 [20801.303388] ? __switch_to_asm+0x40/0x70 [20801.303390] ? wait_woken+0x80/0x80 [20801.303392] ? _raw_spin_lock_irqsave+0x17/0x40 [20801.303394] ? io_submit_sqes+0x120/0x120 [20801.303395] kthread+0x112/0x130 [20801.303396] ? kthread_create_on_node+0x60/0x60 [20801.303398] ret_from_fork+0x35/0x40 o kthread_park() waits for park completion, so io_sq_thread() loop should check kthread_should_park() along with khread_should_stop(), otherwise if kthread_park() is called before prepare_to_wait() the following schedule() never returns: CPU#0 CPU#1 io_sq_thread_stop(): io_sq_thread(): while(!kthread_should_stop() && !ctx->sqo_stop) { ctx->sqo_stop = 1; kthread_park() prepare_to_wait(); if (kthread_should_stop() { } schedule(); <<< nobody checks park flag, <<< so schedule and never return o if the flag ctx->sqo_stop is observed by the io_sq_thread() loop it is quite possible, that kthread_should_park() check and the following kthread_parkme() is never called, because kthread_park() has not been yet called, but few moments later is is called and waits there for park completion, which never happens, because kthread has already exited: CPU#0 CPU#1 io_sq_thread_stop(): io_sq_thread(): ctx->sqo_stop = 1; while(!kthread_should_stop() && !ctx->sqo_stop) { <<< observe sqo_stop and exit the loop } if (kthread_should_park()) kthread_parkme(); <<< never called, since was <<< never parked kthread_park() <<< waits forever for park completion In the current patch we quit the loop by only kthread_should_park() check (kthread_park() is synchronous, so kthread_should_stop() is never observed), and we abandon ->sqo_stop flag, since it is racy. At the end of the io_sq_thread() we unconditionally call parmke(), since we've exited the loop by the park flag. Signed-off-by: Roman Penyaev Cc: Jens Axboe Cc: linux-block@vger.kernel.org Signed-off-by: Jens Axboe commit 8454fca4f53bbe5e0a71613192674c8ce5c52318 Author: Sheetal Singala <2396sheetal@gmail.com> Date: Fri May 10 23:18:37 2019 +0530 dm: fix a couple brace coding style issues Signed-off-by: Sheetal Singala <2396sheetal@gmail.com> Signed-off-by: Mike Snitzer commit f710126cfc89c8df477002a26dee8407eb0b4acd Author: Milan Broz Date: Wed May 15 16:22:30 2019 +0200 dm crypt: print device name in integrity error message This message should better identify the DM device with the integrity failure. Signed-off-by: Milan Broz Signed-off-by: Mike Snitzer commit 7a1cd7238fde6ab367384a4a2998cba48330c398 Author: Milan Broz Date: Wed May 15 16:23:43 2019 +0200 dm crypt: move detailed message into debug level The information about tag size should not be printed without debug info set. Also print device major:minor in the error message to identify the device instance. Also use rate limiting and debug level for info about used crypto API implementaton. This is important because during online reencryption the existing message saturates syslog (because we are moving hotzone across the whole device). Cc: stable@vger.kernel.org Signed-off-by: Milan Broz Signed-off-by: Mike Snitzer commit 47ca23c1176a9e499d4652b33e398a7ddb0bef47 Merge: 936b33f7243f 1b1031ca63b2 Author: Jens Axboe Date: Thu May 16 08:07:57 2019 -0600 Merge branch 'nvme-5.2' of git://git.infradead.org/nvme into for-5.2/block-post Pull NVMe fixes from Christoph * 'nvme-5.2' of git://git.infradead.org/nvme: nvme: validate cntlid during controller initialisation nvme: change locking for the per-subsystem controller list nvme: trace all async notice events nvme: fix typos in nvme status code values nvme-fabrics: remove unused argument nvme-multipath: avoid crash on invalid subsystem cntlid enumeration nvme-fc: use separate work queue to avoid warning nvme-rdma: remove redundant reference between ib_device and tagset nvme-pci: mark expected switch fall-through nvme-pci: add known admin effects to augument admin effects log page nvme-pci: init shadow doorbell after each reset commit 0f41fcf78849c902ddca564f99a8e23ccfc80333 Author: Helen Koike Date: Wed May 15 13:50:54 2019 -0300 dm ioctl: fix hang in early create error condition The dm_early_create() function (which deals with "dm-mod.create=" kernel command line option) calls dm_hash_insert() who gets an extra reference to the md object. In case of failure, this reference wasn't being released, causing dm_destroy() to hang, thus hanging the whole boot process. Fix this by calling __hash_remove() in the error path. Fixes: 6bbc923dfcf57d ("dm: add support to directly boot to a mapped device") Cc: stable@vger.kernel.org Signed-off-by: Helen Koike Signed-off-by: Mike Snitzer commit b06c58c2a1eed571ea2a6640fdb85b7b00196b1e Author: S.j. Wang Date: Wed May 15 06:42:18 2019 +0000 ASoC: fsl_asrc: Fix the issue about unsupported rate When the output sample rate is [8kHz, 30kHz], the limitation of the supported ratio range is [1/24, 8]. In the driver we use (8kHz, 30kHz) instead of [8kHz, 30kHz]. So this patch is to fix this issue and the potential rounding issue with divider. Fixes: fff6e03c7b65 ("ASoC: fsl_asrc: add support for 8-30kHz output sample rate") Cc: Signed-off-by: Shengjiu Wang Acked-by: Nicolin Chen Signed-off-by: Mark Brown commit 4e9845eff5a8027b5181d5bff56a02991fe46d48 Author: Filipe Manana Date: Mon May 6 16:44:12 2019 +0100 Btrfs: tree-checker: detect file extent items with overlapping ranges Having file extent items with ranges that overlap each other is a serious issue that leads to all sorts of corruptions and crashes (like a BUG_ON() during the course of __btrfs_drop_extents() when it traims file extent items). Therefore teach the tree checker to detect such cases. This is motivated by a recently fixed bug (race between ranged full fsync and writeback or adjacent ranges). Reviewed-by: Josef Bacik Reviewed-by: Qu Wenruo Signed-off-by: Filipe Manana Signed-off-by: David Sterba commit 0c713cbab6200b0ab6473b50435e450a6e1de85d Author: Filipe Manana Date: Mon May 6 16:44:02 2019 +0100 Btrfs: fix race between ranged fsync and writeback of adjacent ranges When we do a full fsync (the bit BTRFS_INODE_NEEDS_FULL_SYNC is set in the inode) that happens to be ranged, which happens during a msync() or writes for files opened with O_SYNC for example, we can end up with a corrupt log, due to different file extent items representing ranges that overlap with each other, or hit some assertion failures. When doing a ranged fsync we only flush delalloc and wait for ordered exents within that range. If while we are logging items from our inode ordered extents for adjacent ranges complete, we end up in a race that can make us insert the file extent items that overlap with others we logged previously and the assertion failures. For example, if tree-log.c:copy_items() receives a leaf that has the following file extents items, all with a length of 4K and therefore there is an implicit hole in the range 68K to 72K - 1: (257 EXTENT_ITEM 64K), (257 EXTENT_ITEM 72K), (257 EXTENT_ITEM 76K), ... It copies them to the log tree. However due to the need to detect implicit holes, it may release the path, in order to look at the previous leaf to detect an implicit hole, and then later it will search again in the tree for the first file extent item key, with the goal of locking again the leaf (which might have changed due to concurrent changes to other inodes). However when it locks again the leaf containing the first key, the key corresponding to the extent at offset 72K may not be there anymore since there is an ordered extent for that range that is finishing (that is, somewhere in the middle of btrfs_finish_ordered_io()), and it just removed the file extent item but has not yet replaced it with a new file extent item, so the part of copy_items() that does hole detection will decide that there is a hole in the range starting from 68K to 76K - 1, and therefore insert a file extent item to represent that hole, having a key offset of 68K. After that we now have a log tree with 2 different extent items that have overlapping ranges: 1) The file extent item copied before copy_items() released the path, which has a key offset of 72K and a length of 4K, representing the file range 72K to 76K - 1. 2) And a file extent item representing a hole that has a key offset of 68K and a length of 8K, representing the range 68K to 76K - 1. This item was inserted after releasing the path, and overlaps with the extent item inserted before. The overlapping extent items can cause all sorts of unpredictable and incorrect behaviour, either when replayed or if a fast (non full) fsync happens later, which can trigger a BUG_ON() when calling btrfs_set_item_key_safe() through __btrfs_drop_extents(), producing a trace like the following: [61666.783269] ------------[ cut here ]------------ [61666.783943] kernel BUG at fs/btrfs/ctree.c:3182! [61666.784644] invalid opcode: 0000 [#1] PREEMPT SMP (...) [61666.786253] task: ffff880117b88c40 task.stack: ffffc90008168000 [61666.786253] RIP: 0010:btrfs_set_item_key_safe+0x7c/0xd2 [btrfs] [61666.786253] RSP: 0018:ffffc9000816b958 EFLAGS: 00010246 [61666.786253] RAX: 0000000000000000 RBX: 000000000000000f RCX: 0000000000030000 [61666.786253] RDX: 0000000000000000 RSI: ffffc9000816ba4f RDI: ffffc9000816b937 [61666.786253] RBP: ffffc9000816b998 R08: ffff88011dae2428 R09: 0000000000001000 [61666.786253] R10: 0000160000000000 R11: 6db6db6db6db6db7 R12: ffff88011dae2418 [61666.786253] R13: ffffc9000816ba4f R14: ffff8801e10c4118 R15: ffff8801e715c000 [61666.786253] FS: 00007f6060a18700(0000) GS:ffff88023f5c0000(0000) knlGS:0000000000000000 [61666.786253] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [61666.786253] CR2: 00007f6060a28000 CR3: 0000000213e69000 CR4: 00000000000006e0 [61666.786253] Call Trace: [61666.786253] __btrfs_drop_extents+0x5e3/0xaad [btrfs] [61666.786253] ? time_hardirqs_on+0x9/0x14 [61666.786253] btrfs_log_changed_extents+0x294/0x4e0 [btrfs] [61666.786253] ? release_extent_buffer+0x38/0xb4 [btrfs] [61666.786253] btrfs_log_inode+0xb6e/0xcdc [btrfs] [61666.786253] ? lock_acquire+0x131/0x1c5 [61666.786253] ? btrfs_log_inode_parent+0xee/0x659 [btrfs] [61666.786253] ? arch_local_irq_save+0x9/0xc [61666.786253] ? btrfs_log_inode_parent+0x1f5/0x659 [btrfs] [61666.786253] btrfs_log_inode_parent+0x223/0x659 [btrfs] [61666.786253] ? arch_local_irq_save+0x9/0xc [61666.786253] ? lockref_get_not_zero+0x2c/0x34 [61666.786253] ? rcu_read_unlock+0x3e/0x5d [61666.786253] btrfs_log_dentry_safe+0x60/0x7b [btrfs] [61666.786253] btrfs_sync_file+0x317/0x42c [btrfs] [61666.786253] vfs_fsync_range+0x8c/0x9e [61666.786253] SyS_msync+0x13c/0x1c9 [61666.786253] entry_SYSCALL_64_fastpath+0x18/0xad A sample of a corrupt log tree leaf with overlapping extents I got from running btrfs/072: item 14 key (295 108 200704) itemoff 2599 itemsize 53 extent data disk bytenr 0 nr 0 extent data offset 0 nr 458752 ram 458752 item 15 key (295 108 659456) itemoff 2546 itemsize 53 extent data disk bytenr 4343541760 nr 770048 extent data offset 606208 nr 163840 ram 770048 item 16 key (295 108 663552) itemoff 2493 itemsize 53 extent data disk bytenr 4343541760 nr 770048 extent data offset 610304 nr 155648 ram 770048 item 17 key (295 108 819200) itemoff 2440 itemsize 53 extent data disk bytenr 4334788608 nr 4096 extent data offset 0 nr 4096 ram 4096 The file extent item at offset 659456 (item 15) ends at offset 823296 (659456 + 163840) while the next file extent item (item 16) starts at offset 663552. Another different problem that the race can trigger is a failure in the assertions at tree-log.c:copy_items(), which expect that the first file extent item key we found before releasing the path exists after we have released path and that the last key we found before releasing the path also exists after releasing the path: $ cat -n fs/btrfs/tree-log.c 4080 if (need_find_last_extent) { 4081 /* btrfs_prev_leaf could return 1 without releasing the path */ 4082 btrfs_release_path(src_path); 4083 ret = btrfs_search_slot(NULL, inode->root, &first_key, 4084 src_path, 0, 0); 4085 if (ret < 0) 4086 return ret; 4087 ASSERT(ret == 0); (...) 4103 if (i >= btrfs_header_nritems(src_path->nodes[0])) { 4104 ret = btrfs_next_leaf(inode->root, src_path); 4105 if (ret < 0) 4106 return ret; 4107 ASSERT(ret == 0); 4108 src = src_path->nodes[0]; 4109 i = 0; 4110 need_find_last_extent = true; 4111 } (...) The second assertion implicitly expects that the last key before the path release still exists, because the surrounding while loop only stops after we have found that key. When this assertion fails it produces a stack like this: [139590.037075] assertion failed: ret == 0, file: fs/btrfs/tree-log.c, line: 4107 [139590.037406] ------------[ cut here ]------------ [139590.037707] kernel BUG at fs/btrfs/ctree.h:3546! [139590.038034] invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC PTI [139590.038340] CPU: 1 PID: 31841 Comm: fsstress Tainted: G W 5.0.0-btrfs-next-46 #1 (...) [139590.039354] RIP: 0010:assfail.constprop.24+0x18/0x1a [btrfs] (...) [139590.040397] RSP: 0018:ffffa27f48f2b9b0 EFLAGS: 00010282 [139590.040730] RAX: 0000000000000041 RBX: ffff897c635d92c8 RCX: 0000000000000000 [139590.041105] RDX: 0000000000000000 RSI: ffff897d36a96868 RDI: ffff897d36a96868 [139590.041470] RBP: ffff897d1b9a0708 R08: 0000000000000000 R09: 0000000000000000 [139590.041815] R10: 0000000000000008 R11: 0000000000000000 R12: 0000000000000013 [139590.042159] R13: 0000000000000227 R14: ffff897cffcbba88 R15: 0000000000000001 [139590.042501] FS: 00007f2efc8dee80(0000) GS:ffff897d36a80000(0000) knlGS:0000000000000000 [139590.042847] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [139590.043199] CR2: 00007f8c064935e0 CR3: 0000000232252002 CR4: 00000000003606e0 [139590.043547] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [139590.043899] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [139590.044250] Call Trace: [139590.044631] copy_items+0xa3f/0x1000 [btrfs] [139590.045009] ? generic_bin_search.constprop.32+0x61/0x200 [btrfs] [139590.045396] btrfs_log_inode+0x7b3/0xd70 [btrfs] [139590.045773] btrfs_log_inode_parent+0x2b3/0xce0 [btrfs] [139590.046143] ? do_raw_spin_unlock+0x49/0xc0 [139590.046510] btrfs_log_dentry_safe+0x4a/0x70 [btrfs] [139590.046872] btrfs_sync_file+0x3b6/0x440 [btrfs] [139590.047243] btrfs_file_write_iter+0x45b/0x5c0 [btrfs] [139590.047592] __vfs_write+0x129/0x1c0 [139590.047932] vfs_write+0xc2/0x1b0 [139590.048270] ksys_write+0x55/0xc0 [139590.048608] do_syscall_64+0x60/0x1b0 [139590.048946] entry_SYSCALL_64_after_hwframe+0x49/0xbe [139590.049287] RIP: 0033:0x7f2efc4be190 (...) [139590.050342] RSP: 002b:00007ffe743243a8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 [139590.050701] RAX: ffffffffffffffda RBX: 0000000000008d58 RCX: 00007f2efc4be190 [139590.051067] RDX: 0000000000008d58 RSI: 00005567eca0f370 RDI: 0000000000000003 [139590.051459] RBP: 0000000000000024 R08: 0000000000000003 R09: 0000000000008d60 [139590.051863] R10: 0000000000000078 R11: 0000000000000246 R12: 0000000000000003 [139590.052252] R13: 00000000003d3507 R14: 00005567eca0f370 R15: 0000000000000000 (...) [139590.055128] ---[ end trace 193f35d0215cdeeb ]--- So fix this race between a full ranged fsync and writeback of adjacent ranges by flushing all delalloc and waiting for all ordered extents to complete before logging the inode. This is the simplest way to solve the problem because currently the full fsync path does not deal with ranges at all (it assumes a full range from 0 to LLONG_MAX) and it always needs to look at adjacent ranges for hole detection. For use cases of ranged fsyncs this can make a few fsyncs slower but on the other hand it can make some following fsyncs to other ranges do less work or no need to do anything at all. A full fsync is rare anyway and happens only once after loading/creating an inode and once after less common operations such as a shrinking truncate. This is an issue that exists for a long time, and was often triggered by generic/127, because it does mmap'ed writes and msync (which triggers a ranged fsync). Adding support for the tree checker to detect overlapping extents (next patch in the series) and trigger a WARN() when such cases are found, and then calling btrfs_check_leaf_full() at the end of btrfs_insert_file_extent() made the issue much easier to detect. Running btrfs/072 with that change to the tree checker and making fsstress open files always with O_SYNC made it much easier to trigger the issue (as triggering it with generic/127 is very rare). CC: stable@vger.kernel.org # 3.16+ Reviewed-by: Josef Bacik Signed-off-by: Filipe Manana Signed-off-by: David Sterba commit ebb929060aeb162417b4c1307e63daee47b208d9 Author: Filipe Manana Date: Mon May 6 16:43:51 2019 +0100 Btrfs: avoid fallback to transaction commit during fsync of files with holes When we are doing a full fsync (bit BTRFS_INODE_NEEDS_FULL_SYNC set) of a file that has holes and has file extent items spanning two or more leafs, we can end up falling to back to a full transaction commit due to a logic bug that leads to failure to insert a duplicate file extent item that is meant to represent a hole between the last file extent item of a leaf and the first file extent item in the next leaf. The failure (EEXIST error) leads to a transaction commit (as most errors when logging an inode do). For example, we have the two following leafs: Leaf N: ----------------------------------------------- | ..., ..., ..., (257, FILE_EXTENT_ITEM, 64K) | ----------------------------------------------- The file extent item at the end of leaf N has a length of 4Kb, representing the file range from 64K to 68K - 1. Leaf N + 1: ----------------------------------------------- | (257, FILE_EXTENT_ITEM, 72K), ..., ..., ... | ----------------------------------------------- The file extent item at the first slot of leaf N + 1 has a length of 4Kb too, representing the file range from 72K to 76K - 1. During the full fsync path, when we are at tree-log.c:copy_items() with leaf N as a parameter, after processing the last file extent item, that represents the extent at offset 64K, we take a look at the first file extent item at the next leaf (leaf N + 1), and notice there's a 4K hole between the two extents, and therefore we insert a file extent item representing that hole, starting at file offset 68K and ending at offset 72K - 1. However we don't update the value of *last_extent, which is used to represent the end offset (plus 1, non-inclusive end) of the last file extent item inserted in the log, so it stays with a value of 68K and not with a value of 72K. Then, when copy_items() is called for leaf N + 1, because the value of *last_extent is smaller then the offset of the first extent item in the leaf (68K < 72K), we look at the last file extent item in the previous leaf (leaf N) and see it there's a 4K gap between it and our first file extent item (again, 68K < 72K), so we decide to insert a file extent item representing the hole, starting at file offset 68K and ending at offset 72K - 1, this insertion will fail with -EEXIST being returned from btrfs_insert_file_extent() because we already inserted a file extent item representing a hole for this offset (68K) in the previous call to copy_items(), when processing leaf N. The -EEXIST error gets propagated to the fsync callback, btrfs_sync_file(), which falls back to a full transaction commit. Fix this by adjusting *last_extent after inserting a hole when we had to look at the next leaf. Fixes: 4ee3fad34a9c ("Btrfs: fix fsync after hole punching when using no-holes feature") Cc: stable@vger.kernel.org # 4.14+ Reviewed-by: Josef Bacik Signed-off-by: Filipe Manana Signed-off-by: David Sterba commit 14ae4ec1ee1466b701e0518f9acbb0bbd8ab0684 Author: Qu Wenruo Date: Fri May 10 12:45:05 2019 +0800 btrfs: extent-tree: Fix a bug that btrfs is unable to add pinned bytes Commit ddf30cf03fb5 ("btrfs: extent-tree: Use btrfs_ref to refactor add_pinned_bytes()") refactored add_pinned_bytes(), but during that refactor, there are two callers which add the pinned bytes instead of subtracting. That refactor misses those two caller, causing incorrect pinned bytes calculation and resulting unexpected ENOSPC error. Fix it by adding a new parameter @sign to restore the original behavior. Reported-by: kernel test robot Fixes: ddf30cf03fb5 ("btrfs: extent-tree: Use btrfs_ref to refactor add_pinned_bytes()") Signed-off-by: Qu Wenruo Signed-off-by: David Sterba commit e32773357d5cc271b1d23550b3ed026eb5c2a468 Author: Tobin C. Harding Date: Mon May 13 13:39:12 2019 +1000 btrfs: sysfs: don't leak memory when failing add fsid A failed call to kobject_init_and_add() must be followed by a call to kobject_put(). Currently in the error path when adding fs_devices we are missing this call. This could be fixed by calling btrfs_sysfs_remove_fsid() if btrfs_sysfs_add_fsid() returns an error or by adding a call to kobject_put() directly in btrfs_sysfs_add_fsid(). Here we choose the second option because it prevents the slightly unusual error path handling requirements of kobject from leaking out into btrfs functions. Add a call to kobject_put() in the error path of kobject_add_and_init(). This causes the release method to be called if kobject_init_and_add() fails. open_tree() is the function that calls btrfs_sysfs_add_fsid() and the error code in this function is already written with the assumption that the release method is called during the error path of open_tree() (as seen by the call to btrfs_sysfs_remove_fsid() under the fail_fsdev_sysfs label). Cc: stable@vger.kernel.org # v4.4+ Reviewed-by: Greg Kroah-Hartman Signed-off-by: Tobin C. Harding Reviewed-by: David Sterba Signed-off-by: David Sterba commit 450ff8348808a89cc27436771aa05c2b90c0eef1 Author: Tobin C. Harding Date: Mon May 13 13:39:11 2019 +1000 btrfs: sysfs: Fix error path kobject memory leak If a call to kobject_init_and_add() fails we must call kobject_put() otherwise we leak memory. Calling kobject_put() when kobject_init_and_add() fails drops the refcount back to 0 and calls the ktype release method (which in turn calls the percpu destroy and kfree). Add call to kobject_put() in the error path of call to kobject_init_and_add(). Cc: stable@vger.kernel.org # v4.4+ Reviewed-by: Greg Kroah-Hartman Signed-off-by: Tobin C. Harding Reviewed-by: David Sterba Signed-off-by: David Sterba commit d5c32c89b208e39a39cd8639aa21c012ce0daf4d Author: David Howells Date: Tue May 7 15:06:36 2019 +0100 afs: Fix cell DNS lookup Currently, once configured, AFS cells are looked up in the DNS at regular intervals - which is a waste of resources if those cells aren't being used. It also leads to a problem where cells preloaded, but not configured, before the network is brought up end up effectively statically configured with no VL servers and are unable to get any. Fix this by not doing the DNS lookup until the first time a cell is touched. It is waited for if we don't have any cached records yet, otherwise the DNS lookup to maintain the record is done in the background. This has the downside that the first time you touch a cell, you now have to wait for the upcall to do the required DNS lookups rather than them already being cached. Further, the record is not replaced if the old record has at least one server in it and the new record doesn't have any. Fixes: 0a5143f2f89c ("afs: Implement VL server rotation") Signed-off-by: David Howells commit 7a0a93c51799edc45ee57c6cc1679aa94f1e03d5 Author: Laura Abbott Date: Wed May 15 12:48:24 2019 -0700 arm64: vdso: Explicitly add build-id option Commit 691efbedc60d ("arm64: vdso: use $(LD) instead of $(CC) to link VDSO") switched to using LD explicitly. The --build-id option needs to be passed explicitly, similar to x86. Add this option. Fixes: 691efbedc60d ("arm64: vdso: use $(LD) instead of $(CC) to link VDSO") Reviewed-by: Masahiro Yamada Signed-off-by: Laura Abbott [will: drop redundant use of 'call ld-option' as requested by Masahiro] Signed-off-by: Will Deacon commit 7ba36eccb3f83983a651efd570b4f933ecad1b5c Author: Mark Rutland Date: Tue May 14 14:30:06 2019 +0530 arm64/mm: Inhibit huge-vmap with ptdump The arm64 ptdump code can race with concurrent modification of the kernel page tables. At the time this was added, this was sound as: * Modifications to leaf entries could result in stale information being logged, but would not result in a functional problem. * Boot time modifications to non-leaf entries (e.g. freeing of initmem) were performed when the ptdump code cannot be invoked. * At runtime, modifications to non-leaf entries only occurred in the vmalloc region, and these were strictly additive, as intermediate entries were never freed. However, since commit: commit 324420bf91f6 ("arm64: add support for ioremap() block mappings") ... it has been possible to create huge mappings in the vmalloc area at runtime, and as part of this existing intermediate levels of table my be removed and freed. It's possible for the ptdump code to race with this, and continue to walk tables which have been freed (and potentially poisoned or reallocated). As a result of this, the ptdump code may dereference bogus addresses, which could be fatal. Since huge-vmap is a TLB and memory optimization, we can disable it when the runtime ptdump code is in use to avoid this problem. Cc: Catalin Marinas Fixes: 324420bf91f60582 ("arm64: add support for ioremap() block mappings") Acked-by: Ard Biesheuvel Signed-off-by: Mark Rutland Signed-off-by: Anshuman Khandual Signed-off-by: Will Deacon commit 5caaf29af5ca82d5da8bc1d0ad07d9e664ccf1d8 Author: YueHaibing Date: Thu May 16 15:56:56 2019 +0800 spi: bitbang: Fix NULL pointer dereference in spi_unregister_master If spi_register_master fails in spi_bitbang_start because device_add failure, We should return the error code other than 0, otherwise calling spi_bitbang_stop may trigger NULL pointer dereference like this: BUG: KASAN: null-ptr-deref in __list_del_entry_valid+0x45/0xd0 Read of size 8 at addr 0000000000000000 by task syz-executor.0/3661 CPU: 0 PID: 3661 Comm: syz-executor.0 Not tainted 5.1.0+ #28 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014 Call Trace: dump_stack+0xa9/0x10e ? __list_del_entry_valid+0x45/0xd0 ? __list_del_entry_valid+0x45/0xd0 __kasan_report+0x171/0x18d ? __list_del_entry_valid+0x45/0xd0 kasan_report+0xe/0x20 __list_del_entry_valid+0x45/0xd0 spi_unregister_controller+0x99/0x1b0 spi_lm70llp_attach+0x3ae/0x4b0 [spi_lm70llp] ? 0xffffffffc1128000 ? klist_next+0x131/0x1e0 ? driver_detach+0x40/0x40 [parport] port_check+0x3b/0x50 [parport] bus_for_each_dev+0x115/0x180 ? subsys_dev_iter_exit+0x20/0x20 __parport_register_driver+0x1f0/0x210 [parport] ? 0xffffffffc1150000 do_one_initcall+0xb9/0x3b5 ? perf_trace_initcall_level+0x270/0x270 ? kasan_unpoison_shadow+0x30/0x40 ? kasan_unpoison_shadow+0x30/0x40 do_init_module+0xe0/0x330 load_module+0x38eb/0x4270 ? module_frob_arch_sections+0x20/0x20 ? kernel_read_file+0x188/0x3f0 ? find_held_lock+0x6d/0xd0 ? fput_many+0x1a/0xe0 ? __do_sys_finit_module+0x162/0x190 __do_sys_finit_module+0x162/0x190 ? __ia32_sys_init_module+0x40/0x40 ? __mutex_unlock_slowpath+0xb4/0x3f0 ? wait_for_completion+0x240/0x240 ? vfs_write+0x160/0x2a0 ? lockdep_hardirqs_off+0xb5/0x100 ? mark_held_locks+0x1a/0x90 ? do_syscall_64+0x14/0x2a0 do_syscall_64+0x72/0x2a0 entry_SYSCALL_64_after_hwframe+0x49/0xbe Reported-by: Hulk Robot Fixes: 702a4879ec33 ("spi: bitbang: Let spi_bitbang_start() take a reference to master") Signed-off-by: YueHaibing Reviewed-by: Geert Uytterhoeven Reviewed-by: Axel Lin Reviewed-by: Mukesh Ojha Signed-off-by: Mark Brown commit 51a0d1a90bff5d90a1a1c58e165928a0dd92268a Author: Jagan Teki Date: Mon May 13 00:11:26 2019 +0530 drm/sun4i: sun6i_mipi_dsi: Fix hsync_porch overflow Loop N1 instruction delay for burst mode devices are computed based on horizontal sync and porch timing values. The current driver is using u16 type for computing this hsync_porch value, which would failed to fit within the u16 type for large sync and porch timings devices. This would result in hsync_porch overflow and eventually computed wrong instruction delay value. Example, timings, where it produces the overflow { .hdisplay = 1080, .hsync_start = 1080 + 408, .hsync_end = 1080 + 408 + 4, .htotal = 1080 + 408 + 4 + 38, } It reproduces the desired delay value 65487 but the correct working value should be 7. So, Fix it by computing hsync_porch value separately with u32 type. Fixes: 1c1a7aa3663c ("drm/sun4i: dsi: Add burst support") Signed-off-by: Jagan Teki Signed-off-by: Maxime Ripard Link: https://patchwork.freedesktop.org/patch/msgid/20190512184128.13720-2-jagan@amarulasolutions.com commit 831adffb3b7b8df4c8e20b7b00843129fb87a166 Author: Jernej Skrabec Date: Tue May 14 22:43:37 2019 +0200 drm/sun4i: Fix sun8i HDMI PHY configuration for > 148.5 MHz Vendor provided documentation says that EMP bits should be set to 3 for pixel clocks greater than 148.5 MHz. Fix that. Cc: stable@vger.kernel.org # 4.17+ Fixes: 4f86e81748fe ("drm/sun4i: Add support for H3 HDMI PHY variant") Signed-off-by: Jernej Skrabec Signed-off-by: Maxime Ripard Link: https://patchwork.freedesktop.org/patch/msgid/20190514204337.11068-3-jernej.skrabec@siol.net commit 8a943c6021ba8b95a36c842327e468df1fddd4a7 Author: Jernej Skrabec Date: Tue May 14 22:43:36 2019 +0200 drm/sun4i: Fix sun8i HDMI PHY clock initialization Current code initializes HDMI PHY clock driver before reset line is deasserted and clocks enabled. Because of that, initial readout of clock divider is incorrect (0 instead of 2). This causes any clock rate with divider 1 (register value 0) to be set incorrectly. Fix this by moving initialization of HDMI PHY clock driver after reset line is deasserted and clocks enabled. Cc: stable@vger.kernel.org # 4.17+ Fixes: 4f86e81748fe ("drm/sun4i: Add support for H3 HDMI PHY variant") Signed-off-by: Jernej Skrabec Signed-off-by: Maxime Ripard Link: https://patchwork.freedesktop.org/patch/msgid/20190514204337.11068-2-jernej.skrabec@siol.net commit af9abd65983cf3602c03ef3d16fe549ba1f3eeed Author: Vincenzo Frascino Date: Mon Apr 1 12:51:51 2019 +0100 nds32: Fix vDSO clock_getres() clock_getres in the vDSO library has to preserve the same behaviour of posix_get_hrtimer_res(). In particular, posix_get_hrtimer_res() does: sec = 0; ns = hrtimer_resolution; and hrtimer_resolution depends on the enablement of the high resolution timers that can happen either at compile or at run time. Fix the nds32 vdso implementation of clock_getres keeping a copy of hrtimer_resolution in vdso data and using that directly. Cc: Greentime Hu Cc: Vincent Chen Signed-off-by: Vincenzo Frascino Signed-off-by: Greentime Hu commit 9d8d0294e78a164d407133dea05caf4b84247d6a Author: Andy Lutomirski Date: Tue May 14 13:24:40 2019 -0700 x86/speculation/mds: Improve CPU buffer clear documentation On x86_64, all returns to usermode go through prepare_exit_to_usermode(), with the sole exception of do_nmi(). This even includes machine checks -- this was added several years ago to support MCE recovery. Update the documentation. Signed-off-by: Andy Lutomirski Cc: Borislav Petkov Cc: Frederic Weisbecker Cc: Greg Kroah-Hartman Cc: Jon Masters Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: stable@vger.kernel.org Fixes: 04dcbdb80578 ("x86/speculation/mds: Clear CPU buffers on exit to user") Link: http://lkml.kernel.org/r/999fa9e126ba6a48e9d214d2f18dbde5c62ac55c.1557865329.git.luto@kernel.org Signed-off-by: Ingo Molnar commit 88640e1dcd089879530a49a8d212d1814678dfe7 Author: Andy Lutomirski Date: Tue May 14 13:24:39 2019 -0700 x86/speculation/mds: Revert CPU buffer clear on double fault exit The double fault ESPFIX path doesn't return to user mode at all -- it returns back to the kernel by simulating a #GP fault. prepare_exit_to_usermode() will run on the way out of general_protection before running user code. Signed-off-by: Andy Lutomirski Cc: Borislav Petkov Cc: Frederic Weisbecker Cc: Greg Kroah-Hartman Cc: Jon Masters Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: stable@vger.kernel.org Fixes: 04dcbdb80578 ("x86/speculation/mds: Clear CPU buffers on exit to user") Link: http://lkml.kernel.org/r/ac97612445c0a44ee10374f6ea79c222fe22a5c4.1557865329.git.luto@kernel.org Signed-off-by: Ingo Molnar commit 00f5764dbb040188e5dce2cd9e648360886b045c Merge: 409ca45526a4 5ac94332248e Author: Ingo Molnar Date: Thu May 16 09:04:48 2019 +0200 Merge branch 'linus' into x86/urgent, to pick up dependent changes Signed-off-by: Ingo Molnar commit 63e07e202997ca01336ac93bf45dfd2c3a6ec512 Author: Greentime Hu Date: Tue May 7 17:13:52 2019 +0800 MAINTAINERS: update nds32 git repo path We use git.kernel.org to put nds32's latest code instead of github. Signed-off-by: Greentime Hu commit a771e92250089cfdf8171715668f23efcf13ee58 Author: Christoph Hellwig Date: Mon Apr 29 06:51:43 2019 -0500 nds32: don't export low-level cache flushing routines None of these is used by modules. Nor should they as we have better highlevel primitives. Signed-off-by: Christoph Hellwig Acked-by: Greentime Hu Signed-off-by: Greentime Hu commit 7a0c4c17089a8aff52f516f0f52002be52950aae Merge: a842b514db72 affe2a510014 Author: Olof Johansson Date: Wed May 15 22:51:48 2019 -0700 Merge branch 'fixes' into arm/soc Merge in a few pending fixes from pre-5.1 that didn't get sent in: MAINTAINERS: update arch/arm/mach-davinci ARM: dts: ls1021: Fix SGMII PCS link remaining down after PHY disconnect ARM: dts: imx6q-logicpd: Reduce inrush current on USBH1 ARM: dts: imx6q-logicpd: Reduce inrush current on start ARM: dts: imx: Fix the AR803X phy-mode ARM: dts: sun8i: a33: Reintroduce default pinctrl muxing arm64: dts: allwinner: a64: Rename hpvcc-supply to cpvdd-supply ARM: sunxi: fix a leaked reference by adding missing of_node_put ARM: sunxi: fix a leaked reference by adding missing of_node_put Signed-off-by: Olof Johansson commit dece44e381ab4a9fd1021db45ba4472e8c85becb Author: Ronnie Sahlberg Date: Wed May 15 07:17:02 2019 +1000 cifs: add support for SEEK_DATA and SEEK_HOLE Add llseek op for SEEK_DATA and SEEK_HOLE. Improves xfstests/285,286,436,445,448 and 490 Signed-off-by: Ronnie Sahlberg Signed-off-by: Steve French commit 9ab70ca653307771589e1414102c552d8dbdbbef Author: Kovtunenko Oleksandr Date: Tue May 14 05:52:34 2019 +0000 Fixed https://bugzilla.kernel.org/show_bug.cgi?id=202935 allow write on the same file Copychunk allows source and target to be on the same file. For details on restrictions see MS-SMB2 3.3.5.15.6 Signed-off-by: Kovtunenko Oleksandr Signed-off-by: Steve French commit 2c87d6a94d162e68ca393cb87719dae8737f55c0 Author: Long Li Date: Wed May 15 14:09:05 2019 -0700 cifs: Allocate memory for all iovs in smb2_ioctl An IOCTL uses up to 2 iovs. The 1st iov is the command itself, the 2nd iov is optional data for that command. The 1st iov is always allocated on the heap but the 2nd iov may point to a variable on the stack. This will trigger an error when passing the 2nd iov for RDMA I/O. Fix this by allocating a buffer for the 2nd iov. Signed-off-by: Long Li Signed-off-by: Steve French Reviewed-by: Pavel Shilovsky Reviewed-by: Ronnie sahlberg commit 3b249115719ba2cb56d3f92ee7492e033059d3f3 Author: Long Li Date: Wed May 15 14:09:04 2019 -0700 cifs: Don't match port on SMBDirect transport SMBDirect manages its own ports in the transport layer, there is no need to check the port to find a connection. Signed-off-by: Long Li Signed-off-by: Steve French Reviewed-by: Ronnie sahlberg commit 83f3ef3de625a5766de2382f9e077d4daafd5bac Merge: 8649efb2f875 67476656febd Author: Linus Torvalds Date: Wed May 15 18:56:50 2019 -0700 Merge tag 'libnvdimm-fixes-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm Pull libnvdimm updates from Dan Williams: "Just a small collection of fixes this time around. The new virtio-pmem driver is nearly ready, but some last minute device-mapper acks and virtio questions made it prudent to await v5.3. Other major topics that were brewing on the linux-nvdimm mailing list like sub-section hotplug, and other devm_memremap_pages() reworks will go upstream through Andrew's tree. Summary: - Fix a long standing namespace label corruption scenario when re-provisioning capacity for a namespace. - Restore the ability of the dax_pmem module to be built-in. - Harden the build for the 'nfit_test' unit test modules so that the userspace test harness can ensure all required test modules are available" * tag 'libnvdimm-fixes-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: drivers/dax: Allow to include DEV_DAX_PMEM as builtin libnvdimm/namespace: Fix label tracking error tools/testing/nvdimm: add watermarks for dax_pmem* modules dax/pmem: Fix whitespace in dax_pmem commit 8649efb2f8750dcabff018a27784bab4ecb9f88f Merge: 5fd09ba68297 baf5964ecfe1 Author: Linus Torvalds Date: Wed May 15 18:50:40 2019 -0700 Merge tag 'for-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply Pull power supply and reset updates from Sebastian Reichel: "Core: - Add over-current health state - Add standard, adaptive and custom charge types - Add new properties for start/end charge threshold New Drivers / Hardware: - UCS1002 Programmable USB Port Power Controller - Ingenic JZ47xx Battery Fuel Gauge - AXP20x USB Power: Add AXP813 support - AT91 poweroff: Add SAM9X60 support - OLPC battery: Add XO-1.5 and XO-1.75 support Misc Changes: - syscon-reboot: support mask property - AXP288 fuel gauge: Blacklist ACEPC T8/T11. Looks like some vendor thought it's a good idea to build a desktop system with a fuel gauge, that slowly "discharges"... - cpcap-battery: Fix calculation errors - misc fixes" * tag 'for-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply: (54 commits) power: supply: olpc_battery: force the le/be casts power: supply: ucs1002: Fix build error without CONFIG_REGULATOR power: supply: ucs1002: Fix wrong return value checking power: supply: Add driver for Microchip UCS1002 dt-bindings: power: supply: Add bindings for Microchip UCS1002 power: supply: core: Add POWER_SUPPLY_HEALTH_OVERCURRENT constant power: supply: core: fix clang -Wunsequenced power: supply: core: Add missing documentation for CHARGE_CONTROL_* properties power: supply: core: Add CHARGE_CONTROL_{START_THRESHOLD,END_THRESHOLD} properties power: supply: core: Add Standard, Adaptive, and Custom charge types power: supply: axp288_fuel_gauge: Add ACEPC T8 and T11 mini PCs to the blacklist power: supply: bq27xxx_battery: Notify also about status changes power: supply: olpc_battery: Have the framework register sysfs files for us power: supply: olpc_battery: Add OLPC XO 1.75 support power: supply: olpc_battery: Avoid using platform_info power: supply: olpc_battery: Use devm_power_supply_register() power: supply: olpc_battery: Move priv data to a struct power: supply: olpc_battery: Use DT to get battery version x86/platform/olpc: Use a correct version when making up a battery node x86/platform/olpc: Trivial code move in DT fixup ... commit 5fd09ba68297c967f5ba6bea9c3b444d34f80ee5 Merge: 8a635ffb1421 fe846979d305 Author: Linus Torvalds Date: Wed May 15 18:44:52 2019 -0700 Merge tag 'for-linus-5.2b-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip Pull xen updates from Juergen Gross: - some minor cleanups - two small corrections for Xen on ARM - two fixes for Xen PVH guest support - a patch for a new command line option to tune virtual timer handling * tag 'for-linus-5.2b-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip: xen/arm: Use p2m entry with lock protection xen/arm: Free p2m entry if fail to add it to RB tree xen/pvh: correctly setup the PV EFI interface for dom0 xen/pvh: set xen_domain_type to HVM in xen_pvh_init xenbus: drop useless LIST_HEAD in xenbus_write_watch() and xenbus_file_write() xen-netfront: mark expected switch fall-through xen: xen-pciback: fix warning Using plain integer as NULL pointer x86/xen: Add "xen_timer_slop" command line option commit 8a635ffb142125c6637fe71d5cbce25e7dfa275e Author: Tony Luck Date: Wed May 15 18:04:14 2019 -0700 ia64: Make sure that we have a mmiowb function real early Generic kernels feed many operation through the "machvec" logic to get the correct form of the operation for the current system. "mmiowb()" is one of those operations. Although machvec is initialized very early in boot, it isn't early enough for a recent upstream kernel change that added mmiowb to the spin_unlock() path. Statically initialize the mmiowb field of machvec so that we won't die with a call through a NULL pointer. This should be safe because we do the real initialization of machvec before bringing up any addtional CPUs or doing any I/O. Fixes: 49ca6462fc9e ("ia64/mmiowb: Add unconditional mmiowb() to arch_spin_unlock()") Signed-off-by: Tony Luck Signed-off-by: Linus Torvalds commit c7d5ec26ea4adf450d9ab2b794e7735761a93af1 Merge: 858f50174467 5fa2ca7c4a3f Author: David S. Miller Date: Wed May 15 18:28:44 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf Daniel Borkmann says: ==================== pull-request: bpf 2019-05-16 The following pull-request contains BPF updates for your *net* tree. The main changes are: 1) Fix a use after free in __dev_map_entry_free(), from Eric. 2) Several sockmap related bug fixes: a splat in strparser if it was never initialized, remove duplicate ingress msg list purging which can race, fix msg->sg.size accounting upon skb to msg conversion, and last but not least fix a timeout bug in tcp_bpf_wait_data(), from John. 3) Fix LRU map to avoid messing with eviction heuristics upon syscall lookup, e.g. map walks from user space side will then lead to eviction of just recently created entries on updates as it would mark all map entries, from Daniel. 4) Don't bail out when libbpf feature probing fails. Also various smaller fixes to flow_dissector test, from Stanislav. 5) Fix missing brackets for BTF_INT_OFFSET() in UAPI, from Gary. ==================== Signed-off-by: David S. Miller commit 700a800a949467cb86491763b983e1edcdee8642 Merge: b06ed1e7a2fa 1c73b9d24f80 Author: Linus Torvalds Date: Wed May 15 18:21:43 2019 -0700 Merge tag 'nfsd-5.2' of git://linux-nfs.org/~bfields/linux Pull nfsd updates from Bruce Fields: "This consists mostly of nfsd container work: Scott Mayhew revived an old api that communicates with a userspace daemon to manage some on-disk state that's used to track clients across server reboots. We've been using a usermode_helper upcall for that, but it's tough to run those with the right namespaces, so a daemon is much friendlier to container use cases. Trond fixed nfsd's handling of user credentials in user namespaces. He also contributed patches that allow containers to support different sets of NFS protocol versions. The only remaining container bug I'm aware of is that the NFS reply cache is shared between all containers. If anyone's aware of other gaps in our container support, let me know. The rest of this is miscellaneous bugfixes" * tag 'nfsd-5.2' of git://linux-nfs.org/~bfields/linux: (23 commits) nfsd: update callback done processing locks: move checks from locks_free_lock() to locks_release_private() nfsd: fh_drop_write in nfsd_unlink nfsd: allow fh_want_write to be called twice nfsd: knfsd must use the container user namespace SUNRPC: rsi_parse() should use the current user namespace SUNRPC: Fix the server AUTH_UNIX userspace mappings lockd: Pass the user cred from knfsd when starting the lockd server SUNRPC: Temporary sockets should inherit the cred from their parent SUNRPC: Cache the process user cred in the RPC server listener nfsd: Allow containers to set supported nfs versions nfsd: Add custom rpcbind callbacks for knfsd SUNRPC: Allow further customisation of RPC program registration SUNRPC: Clean up generic dispatcher code SUNRPC: Add a callback to initialise server requests SUNRPC/nfs: Fix return value for nfs4_callback_compound() nfsd: handle legacy client tracking records sent by nfsdcld nfsd: re-order client tracking method selection nfsd: keep a tally of RECLAIM_COMPLETE operations when using nfsdcld nfsd: un-deprecate nfsdcld ... commit 8da0e1525b7f0d69c6cb44094963906282b32673 Merge: dc28d5742b2b 2b1174512771 Author: Dave Airlie Date: Thu May 16 10:19:29 2019 +1000 Merge tag 'drm-misc-next-fixes-2019-05-15' of git://anongit.freedesktop.org/drm/drm-misc into drm-next - A couple new panfrost fixes - Fix the low refresh rate register in adv7511 - A handful of msm fixes that fell out of 5.1 bringup on SDM845 - Fix spinlock initialization in pl111 Signed-off-by: Dave Airlie From: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190515201729.GA89093@art_vandelay commit dc28d5742b2b535c6858344f798835729a9f2a46 Merge: f266fdc7609a c36beba6b296 Author: Dave Airlie Date: Thu May 16 10:19:06 2019 +1000 Merge tag 'drm-intel-next-fixes-2019-05-15' of git://anongit.freedesktop.org/drm/drm-intel into drm-next - Disable framebuffer compression on Geminilake - Fixes for HSW EDP fastset and a IRQ handler vs. RCU race Signed-off-by: Dave Airlie From: Joonas Lahtinen Link: https://patchwork.freedesktop.org/patch/msgid/20190515074817.GA10472@jlahtine-desk.ger.corp.intel.com commit b06ed1e7a2fa9b636f368a9e97c3c8877623f8b2 Merge: d2d8b146043a d20f6b41b7c2 Author: Linus Torvalds Date: Wed May 15 16:46:32 2019 -0700 Merge tag 'ktest-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest Pull more ktest updates from Steven Rostedt: - Add support for grub2bls boot loader - Show name and test iteration number in error message sent in mail - Minor fixes and clean ups * tag 'ktest-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest: ktest: update sample.conf for grub2bls ktest: remove get_grub2_index ktest: pass KERNEL_VERSION to POST_KTEST ktest: introduce grub2bls REBOOT_TYPE option ktest: cleanup get_grub_index ktest: introduce _get_grub_index commit 5fa2ca7c4a3fc176f31b495e1a704862d8188b53 Author: John Fastabend Date: Mon May 13 21:42:03 2019 -0700 bpf, tcp: correctly handle DONT_WAIT flags and timeo == 0 The tcp_bpf_wait_data() routine needs to check timeo != 0 before calling sk_wait_event() otherwise we may see unexpected stalls on receiver. Arika did all the leg work here I just formatted, posted and ran a few tests. Fixes: 604326b41a6fb ("bpf, sockmap: convert to generic sk_msg interface") Reported-by: Arika Chen Suggested-by: Arika Chen Signed-off-by: John Fastabend Signed-off-by: Daniel Borkmann commit 3d21b6525caeae45f08e2d3a07ddfdef64882b8b Author: Stanislav Fomichev Date: Tue May 14 14:12:34 2019 -0700 selftests/bpf: add prog detach to flow_dissector test In case we are not running in a namespace (which we don't do by default), let's try to detach the bpf program that we use for eth_get_headlen tests. Fixes: 0905beec9f52 ("selftests/bpf: run flow dissector tests in skb-less mode") Signed-off-by: Stanislav Fomichev Signed-off-by: Daniel Borkmann commit a9047734eb47bea615826d4b1733526b3a867dbb Author: Stanislav Fomichev Date: Tue May 14 14:12:33 2019 -0700 selftests/bpf: add missing \n to flow_dissector CHECK errors Otherwise, in case of an error, everything gets mushed together. Fixes: a5cb33464e53 ("selftests/bpf: make flow dissector tests more extensible") Signed-off-by: Stanislav Fomichev Signed-off-by: Daniel Borkmann commit 15ea164ef11abc0a2d3001ca40e5e509cd06091f Author: Stanislav Fomichev Date: Tue May 14 20:38:49 2019 -0700 libbpf: don't fail when feature probing fails Otherwise libbpf is unusable from unprivileged process with kernel.kernel.unprivileged_bpf_disabled=1. All I get is EPERM from the probes, even if I just want to open an ELF object and look at what progs/maps it has. Instead of dying on probes, let's just pr_debug the error and try to continue. Signed-off-by: Stanislav Fomichev Signed-off-by: Daniel Borkmann commit 145b11d1baa3462ba211bd845ecf94057b7d10e1 Author: Ravi Chandra Sadineni Date: Wed May 15 16:14:04 2019 -0700 Input: elan_i2c - increment wakeup count if wake source Notify the PM core that this device is the wake source. This helps userspace daemon tracking the wake sources to identify the origin of the wake. Signed-off-by: Ravi Chandra Sadineni Signed-off-by: Dmitry Torokhov commit d2d8b146043ae7e250aef1fb312971f6f479d487 Merge: 2bbacd1a9278 693713cbdb3a Author: Linus Torvalds Date: Wed May 15 16:05:47 2019 -0700 Merge tag 'trace-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace Pull tracing updates from Steven Rostedt: "The major changes in this tracing update includes: - Removal of non-DYNAMIC_FTRACE from 32bit x86 - Removal of mcount support from x86 - Emulating a call from int3 on x86_64, fixes live kernel patching - Consolidated Tracing Error logs file Minor updates: - Removal of klp_check_compiler_support() - kdb ftrace dumping output changes - Accessing and creating ftrace instances from inside the kernel - Clean up of #define if macro - Introduction of TRACE_EVENT_NOP() to disable trace events based on config options And other minor fixes and clean ups" * tag 'trace-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (44 commits) x86: Hide the int3_emulate_call/jmp functions from UML livepatch: Remove klp_check_compiler_support() ftrace/x86: Remove mcount support ftrace/x86_32: Remove support for non DYNAMIC_FTRACE tracing: Simplify "if" macro code tracing: Fix documentation about disabling options using trace_options tracing: Replace kzalloc with kcalloc tracing: Fix partial reading of trace event's id file tracing: Allow RCU to run between postponed startup tests tracing: Fix white space issues in parse_pred() function tracing: Eliminate const char[] auto variables ring-buffer: Fix mispelling of Calculate tracing: probeevent: Fix to make the type of $comm string tracing: probeevent: Do not accumulate on ret variable tracing: uprobes: Re-enable $comm support for uprobe events ftrace/x86_64: Emulate call function while updating in breakpoint handler x86_64: Allow breakpoints to emulate call instructions x86_64: Add gap to int3 to allow for call emulation tracing: kdb: Allow ftdump to skip all but the last few entries tracing: Add trace_total_entries() / trace_total_entries_cpu() ... commit b752bb405a13f11b2db0a24d52da85cf7f8c0fea Author: Russell King Date: Wed May 15 23:17:17 2019 +0100 Revert "ARM: 8846/1: warn if divided syntax assembler is used" This reverts commit e8c24bbda7d5eba6df5ca45e5462fd3f96b8f217. GCC 4.7, which is still permitted, emits code using the original syntax. This means we end up with lots of assembler warnings when building with a currently-supported version of gcc. Revert the commit (with fixups to keep the follow-on -mauto-it change) to avoid these warnings. Signed-off-by: Russell King commit dd53f6102c30a774e0db8e55d49017a38060f6f6 Merge: 59c5c58c5b93 9eecfc22e0bf Author: Paolo Bonzini Date: Wed May 15 23:41:43 2019 +0200 Merge tag 'kvmarm-for-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD KVM/arm updates for 5.2 - guest SVE support - guest Pointer Authentication support - Better discrimination of perf counters between host and guests Conflicts: include/uapi/linux/kvm.h commit 59c5c58c5b93285753d5c1de34d2e00039c27bc0 Merge: f93f7ede087f 4894fbcce856 Author: Paolo Bonzini Date: Wed May 15 23:38:42 2019 +0200 Merge tag 'kvm-ppc-next-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc into HEAD PPC KVM update for 5.2 * Support for guests to access the new POWER9 XIVE interrupt controller hardware directly, reducing interrupt latency and overhead for guests. * In-kernel implementation of the H_PAGE_INIT hypercall. * Reduce memory usage of sparsely-populated IOMMU tables. * Several bug fixes. Second PPC KVM update for 5.2 * Fix a bug, fix a spelling mistake, remove some useless code. commit b1e479e3dcbc970bfc0b20a56f213e4df08daf75 Author: Manuel Lauss Date: Wed May 15 14:09:48 2019 +0200 MIPS: Alchemy: add DMA masks for on-chip ethernet Makes au1000-eth work again, tested on DB1500. Signed-off-by: Manuel Lauss Signed-off-by: Paul Burton Cc: Linux-MIPS commit f93f7ede087f2edcc18e4b02310df5749a6b5a61 Author: Sean Christopherson Date: Wed May 8 09:08:19 2019 -0700 Revert "KVM: nVMX: Expose RDPMC-exiting only when guest supports PMU" The RDPMC-exiting control is dependent on the existence of the RDPMC instruction itself, i.e. is not tied to the "Architectural Performance Monitoring" feature. For all intents and purposes, the control exists on all CPUs with VMX support since RDPMC also exists on all VCPUs with VMX supported. Per Intel's SDM: The RDPMC instruction was introduced into the IA-32 Architecture in the Pentium Pro processor and the Pentium processor with MMX technology. The earlier Pentium processors have performance-monitoring counters, but they must be read with the RDMSR instruction. Because RDPMC-exiting always exists, KVM requires the control and refuses to load if it's not available. As a result, hiding the PMU from a guest breaks nested virtualization if the guest attemts to use KVM. While it's not explicitly stated in the RDPMC pseudocode, the VM-Exit check for RDPMC-exiting follows standard fault vs. VM-Exit prioritization for privileged instructions, e.g. occurs after the CPL/CR0.PE/CR4.PCE checks, but before the counter referenced in ECX is checked for validity. In other words, the original KVM behavior of injecting a #GP was correct, and the KVM unit test needs to be adjusted accordingly, e.g. eat the #GP when the unit test guest (L3 in this case) executes RDPMC without RDPMC-exiting set in the unit test host (L2). This reverts commit e51bfdb68725dc052d16241ace40ea3140f938aa. Fixes: e51bfdb68725 ("KVM: nVMX: Expose RDPMC-exiting only when guest supports PMU") Reported-by: David Hill Cc: Saar Amar Cc: Mihai Carabas Cc: Jim Mattson Cc: Liran Alon Cc: stable@vger.kernel.org Signed-off-by: Sean Christopherson Signed-off-by: Paolo Bonzini commit 61455bf26236e7f3d72705382a6437fdfd1bd0af Author: Kai Huang Date: Fri May 3 01:40:25 2019 -0700 kvm: x86: Fix L1TF mitigation for shadow MMU Currently KVM sets 5 most significant bits of physical address bits reported by CPUID (boot_cpu_data.x86_phys_bits) for nonpresent or reserved bits SPTE to mitigate L1TF attack from guest when using shadow MMU. However for some particular Intel CPUs the physical address bits of internal cache is greater than physical address bits reported by CPUID. Use the kernel's existing boot_cpu_data.x86_cache_bits to determine the five most significant bits. Doing so improves KVM's L1TF mitigation in the unlikely scenario that system RAM overlaps the high order bits of the "real" physical address space as reported by CPUID. This aligns with the kernel's warnings regarding L1TF mitigation, e.g. in the above scenario the kernel won't warn the user about lack of L1TF mitigation if x86_cache_bits is greater than x86_phys_bits. Also initialize shadow_nonpresent_or_rsvd_mask explicitly to make it consistent with other 'shadow_{xxx}_mask', and opportunistically add a WARN once if KVM's L1TF mitigation cannot be applied on a system that is marked as being susceptible to L1TF. Reviewed-by: Sean Christopherson Signed-off-by: Kai Huang Signed-off-by: Paolo Bonzini commit d69129b4e46a7b61dc956af038d143eb791f22c7 Author: Sean Christopherson Date: Wed May 8 07:32:15 2019 -0700 KVM: nVMX: Disable intercept for FS/GS base MSRs in vmcs02 when possible If L1 is using an MSR bitmap, unconditionally merge the MSR bitmaps from L0 and L1 for MSR_{KERNEL,}_{FS,GS}_BASE. KVM unconditionally exposes MSRs L1. If KVM is also running in L1 then it's highly likely L1 is also exposing the MSRs to L2, i.e. KVM doesn't need to intercept L2 accesses. Based on code from Jintack Lim. Cc: Jintack Lim Signed-off-by: Sean Christopherson Signed-off-by: Paolo Bonzini commit 62e59c4e69b3cdbad67e3c2d49e4df4cfe1679e3 Author: Stephen Boyd Date: Thu Apr 18 15:20:22 2019 -0700 clk: Remove io.h from clk-provider.h Now that we've gotten rid of clk_readl() we can remove io.h from the clk-provider header and push out the io.h include to any code that isn't already including the io.h header but using things like readl/writel, etc. Found with this grep: git grep -l clk-provider.h | grep '.c$' | xargs git grep -L 'linux/io.h' | \ xargs git grep -l \ -e '\<__iowrite32_copy\>' --or \ -e '\<__ioread32_copy\>' --or \ -e '\<__iowrite64_copy\>' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\<__devm_memremap_pages\>' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\<__io_aw\>' --or \ -e '\<__io_pbw\>' --or \ -e '\<__io_paw\>' --or \ -e '\<__io_pbr\>' --or \ -e '\<__io_par\>' --or \ -e '\<__raw_readb\>' --or \ -e '\<__raw_readw\>' --or \ -e '\<__raw_readl\>' --or \ -e '\<__raw_readq\>' --or \ -e '\<__raw_writeb\>' --or \ -e '\<__raw_writew\>' --or \ -e '\<__raw_writel\>' --or \ -e '\<__raw_writeq\>' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\<__io_virt\>' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\<__ioremap\>' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' --or \ -e '\' I also reordered a couple includes when they weren't alphabetical and removed clk.h from kona, replacing it with clk-provider.h because that driver doesn't use clk consumer APIs. Acked-by: Geert Uytterhoeven Cc: Chen-Yu Tsai Acked-by: Maxime Ripard Acked-by: Tero Kristo Acked-by: Sekhar Nori Cc: Krzysztof Kozlowski Acked-by: Mark Brown Cc: Chris Zankel Acked-by: Max Filippov Acked-by: John Crispin Acked-by: Heiko Stuebner Signed-off-by: Stephen Boyd commit 2b117451277140b782f3e4e56a4296c0a165e7ae Author: Sean Paul Date: Wed May 15 13:00:52 2019 -0400 drm/msm: Upgrade gxpd checks to IS_ERR_OR_NULL dev_pm_domain_attach_by_name() can return NULL, so we should check for that case when we're about to dereference gxpd. Fixes: 9325d4266afd ("drm/msm/gpu: Attach to the GPU GX power domain") Cc: Jordan Crouse Cc: Rob Clark Reviewed-by: Jordan Crouse Signed-off-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190515170104.155525-1-sean@poorly.run commit 4dd0481584d09221849ac8a3af4cd3cefd58c11e Author: Richard Weinberger Date: Tue May 14 21:10:50 2019 +0200 ubifs: Convert xattr inum to host order UBIFS stores inode numbers as LE64 integers. We have to convert them to host oder, otherwise BE hosts won't be able to use the integer correctly. Reported-by: kbuild test robot Fixes: 9ca2d7326444 ("ubifs: Limit number of xattrs per inode") Signed-off-by: Richard Weinberger commit 76aa349441729d889ba6f1d58e3369d178250ffd Author: Richard Weinberger Date: Tue May 14 21:10:49 2019 +0200 ubifs: Use correct config name for encryption CONFIG_UBIFS_FS_ENCRYPTION is gone, fscrypt is now controlled via CONFIG_FS_ENCRYPTION. This problem slipped into the tree because of a mis-merge on my side. Reported-by: Eric Biggers Fixes: eea2c05d927b ("ubifs: Remove #ifdef around CONFIG_FS_ENCRYPTION") Signed-off-by: Richard Weinberger commit 481a9b8073a448f0bd151b7171dbab18b35de55c Author: YueHaibing Date: Fri May 10 11:21:44 2019 +0800 ubifs: Fix build error without CONFIG_UBIFS_FS_XATTR Fix gcc build error while CONFIG_UBIFS_FS_XATTR is not set fs/ubifs/dir.o: In function `ubifs_unlink': dir.c:(.text+0x260): undefined reference to `ubifs_purge_xattrs' fs/ubifs/dir.o: In function `do_rename': dir.c:(.text+0x1edc): undefined reference to `ubifs_purge_xattrs' fs/ubifs/dir.o: In function `ubifs_rmdir': dir.c:(.text+0x2638): undefined reference to `ubifs_purge_xattrs' Reported-by: Hulk Robot Fixes: 9ca2d7326444 ("ubifs: Limit number of xattrs per inode") Signed-off-by: YueHaibing Signed-off-by: Richard Weinberger commit c71ffb673cd9bb2ddc575ede9055f265b2535690 Author: Jens Axboe Date: Mon May 13 20:58:29 2019 -0600 io_uring: remove 'ev_flags' argument We always pass in 0 for the cqe flags argument, since the support for "this read hit page cache" hint was dropped. Signed-off-by: Jens Axboe commit aeea9062d949584ac1f2f9a20f0e5ed306539a3e Author: Kan Liang Date: Tue May 14 13:19:32 2019 -0700 perf parse-regs: Split parse_regs The available registers for --int-regs and --user-regs may be different, e.g. XMM registers. Split parse_regs into two dedicated functions for --int-regs and --user-regs respectively. Modify the warning message. "--user-regs=?" should be applied to show the available registers for --user-regs. Signed-off-by: Kan Liang Tested-by: Ravi Bangoria Cc: Andi Kleen Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1557865174-56264-1-git-send-email-kan.liang@linux.intel.com [ Changed docs as suggested by Ravi and agreed by Kan ] Signed-off-by: Arnaldo Carvalho de Melo commit 7025fdbea3a67c5980b94574b755a5fd65ea8a36 Author: Florian Fainelli Date: Mon May 13 13:25:22 2019 -0700 perf vendor events arm64: Add Cortex-A57 and Cortex-A72 events The Cortex-A57 and Cortex-A72 both support all ARMv8 recommended events up to the RC_ST_SPEC (0x91) event with the exception of: - L1D_CACHE_REFILL_INNER (0x44) - L1D_CACHE_REFILL_OUTER (0x45) - L1D_TLB_RD (0x4E) - L1D_TLB_WR (0x4F) - L2D_TLB_REFILL_RD (0x5C) - L2D_TLB_REFILL_WR (0x5D) - L2D_TLB_RD (0x5E) - L2D_TLB_WR (0x5F) - STREX_SPEC (0x6F) Create an appropriate JSON file for mapping those events and update the mapfile.csv for matching the Cortex-A57 and Cortex-A72 MIDR to that file. Signed-off-by: Florian Fainelli Reviewed-by: John Garry Cc: Alexander Shishkin Cc: Catalin Marinas Cc: Ganapatrao Kulkarni Cc: Jiri Olsa Cc: Mark Rutland Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Sean V Kelley Cc: Will Deacon Cc: linux-arm-kernel@lists.infradead.org (moderated list:arm pmu profiling and debugging) Link: http://lkml.kernel.org/r/20190513202522.9050-4-f.fainelli@gmail.com Signed-off-by: Arnaldo Carvalho de Melo commit 93fe8f1e11042e6cdf6f36f4e8ac111c7b818fc7 Author: Florian Fainelli Date: Mon May 13 13:25:21 2019 -0700 perf vendor events arm64: Map Brahma-B53 CPUID to cortex-a53 events Broadcom's Brahma-B53 CPUs support the same type of events that the Cortex-A53 supports, recognize its CPUID and map it to the cortex-a53 events. Signed-off-by: Florian Fainelli Acked-by: Will Deacon Cc: Alexander Shishkin Cc: Catalin Marinas Cc: Ganapatrao Kulkarni Cc: Jiri Olsa Cc: John Garry Cc: Mark Rutland Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Sean V Kelley Cc: bcm-kernel-feedback-list@broadcom.com Cc: linux-arm-kernel@lists.infradead.org Cc: linux-arm-kernel@lists.infradead.org (moderated list Link: http://lkml.kernel.org/r/20190513202522.9050-3-f.fainelli@gmail.com Signed-off-by: Arnaldo Carvalho de Melo commit ae833a6124b1bfe98bea428da86fe5b83b5785a7 Author: Florian Fainelli Date: Mon May 13 13:25:20 2019 -0700 perf vendor events arm64: Remove [[:xdigit:]] wildcard ARM64's implementation of get_cpuidr_str() masks out the revision bits [3:0] while reading the CPU identifier, there is no need for the [[:xdigit:]] wildcard. Signed-off-by: Florian Fainelli Cc: Alexander Shishkin Cc: Catalin Marinas Cc: Ganapatrao Kulkarni Cc: Jiri Olsa Cc: John Garry Cc: Mark Rutland Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Sean V Kelley Cc: Will Deacon Cc: linux-arm-kernel@lists.infradead.org (moderated list:arm pmu profiling and debugging) Link: http://lkml.kernel.org/r/20190513202522.9050-2-f.fainelli@gmail.com Signed-off-by: Arnaldo Carvalho de Melo commit 8e8f515d567f9ec1d960e9fdb117d39753b7504d Author: Zenghui Yu Date: Wed May 15 11:19:29 2019 +0000 perf jevents: Remove unused variable Address gcc warning: pmu-events/jevents.c: In function ‘save_arch_std_events’: pmu-events/jevents.c:417:15: warning: unused variable ‘sb’ [-Wunused-variable] struct stat *sb = data; ^~ Signed-off-by: Zenghui Yu Cc: Alexander Shishkin Cc: Jiri Olsa Cc: John Garry Cc: Namhyung Kim Cc: Peter Zijlstra Cc: wanghaibin.wang@huawei.com Link: http://lkml.kernel.org/r/1557919169-23972-1-git-send-email-yuzenghui@huawei.com Signed-off-by: Arnaldo Carvalho de Melo commit d94cfbab6da92a3fc5fb69c8dae75c5720e6ed26 Author: Arnaldo Carvalho de Melo Date: Wed May 15 15:58:40 2019 -0300 perf test zstd: Fixup verbose mode output The shell tests should not redirect useful output to /dev/null, as that is done automatically by 'perf test' in non verbose mode, so remove that from the zstd comp/decomp test, fixing up verbose mode. Before: $ perf test zstd 68: Zstd perf.data compression/decompression : Ok $ perf test -v zstd 68: Zstd perf.data compression/decompression : --- start --- test child forked, pid 11956 -z, --compression-level[=] Collecting compressed record file: Checking compressed events stats: test child finished with 0 ---- end ---- Zstd perf.data compression/decompression: Ok $ Now: $ perf test zstd 68: Zstd perf.data compression/decompression : Ok $ perf test -v zstd 68: Zstd perf.data compression/decompression : --- start --- test child forked, pid 12695 Collecting compressed record file: 0+500 records in 72+1 records out 37361 bytes (37 kB, 36 KiB) copied, 9.83796 s, 3.8 kB/s [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.001 MB /tmp/perf.data.rzq, compressed (original 0.004 MB, ratio is 3.679) ] Checking compressed events stats: # compressed : Zstd, level = 1, ratio = 4 COMPRESSED events: 3 test child finished with 0 ---- end ---- Zstd perf.data compression/decompression: Ok $ Cc: Alexander Shishkin Cc: Alexey Budankov Cc: Andi Kleen Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: https://lkml.kernel.org/n/tip-tp96618ds42zic94nlh0msz3@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit bdc35cbc35c0b33428922503c7c85259510911a6 Author: Alexey Budankov Date: Mon Mar 18 20:46:17 2019 +0300 perf tests: Implement Zstd comp/decomp integration test Introduce a basic integration test for Zstd based record compression/decompression using 'perf record' and 'perf report'. Committer notes: Reduce a bit the freq (from 25 kHz to 5 kHz) and the number of /dev/null records read (from 1000 to 500), reducing the time it takes to something more in line with the time existing 'perf test' entries take to run. With that in place: $ time perf test zstd 68: Zstd perf.data compression/decompression : Ok real 0m10.376s user 0m0.105s sys 0m0.440s $ grep "model name" /proc/cpuinfo | head -1 model name : Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz $ Signed-off-by: Alexey Budankov Reviewed-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: Alexander Shishkin Cc: Andi Kleen Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/dc007ae4-104a-2b7c-316e-275929025f0d@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 371a3378d83a755add84b2dca730a3a641002f3a Author: Alexey Budankov Date: Mon Mar 18 20:45:44 2019 +0300 perf inject: Enable COMPRESSED record decompression Initialized decompression part of Zstd based API so COMPRESSED records would be decompressed into the resulting output data file. Signed-off-by: Alexey Budankov Reviewed-by: Jiri Olsa Cc: Alexander Shishkin Cc: Andi Kleen Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/c27d7500-ecdd-3569-cab5-8f70bbed5ea4@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit cb62c6f1f59232457414ecbbf2337a1cb67b4ce2 Author: Alexey Budankov Date: Mon Mar 18 20:45:11 2019 +0300 perf report: Implement perf.data record decompression zstd_init(, comp_level = 0) initializes decompression part of API only hat now consists of zstd_decompress_stream() function. The perf.data PERF_RECORD_COMPRESSED records are decompressed using zstd_decompress_stream() function into a linked list of mmaped memory regions of mmap_comp_len size (struct decomp). After decompression of one COMPRESSED record its content is iterated and fetched for usual processing. The mmaped memory regions with decompressed events are kept in the linked list till the tool process termination. When dumping raw records (e.g., perf report -D --header) file offsets of events from compressed records are printed as zero. Committer notes: Since now we have support for processing PERF_RECORD_COMPRESSED, we see none, in raw form, like we saw in the previous patch commiter notes, they were decompressed into the usual PERF_RECORD_{FORK,MMAP,COMM,etc} records, we only see the stats for those PERF_RECORD_COMPRESSED events, and since I used the file generated in the commiter notes for the previous patch, there they are, 2 compressed records: $ perf report --header-only | grep cmdline # cmdline : /home/acme/bin/perf record -z2 sleep 1 $ perf report -D | grep COMPRESS COMPRESSED events: 2 COMPRESSED events: 0 $ perf report --stdio # To display the perf.data header info, please use --header/--header-only options. # # # Total Lost Samples: 0 # # Samples: 15 of event 'cycles:u' # Event count (approx.): 962227 # # Overhead Command Shared Object Symbol # ........ ....... ................ ........................... # 46.99% sleep libc-2.28.so [.] _dl_addr 29.24% sleep [unknown] [k] 0xffffffffaea00a67 16.45% sleep libc-2.28.so [.] __GI__IO_un_link.part.1 5.92% sleep ld-2.28.so [.] _dl_setup_hash 1.40% sleep libc-2.28.so [.] __nanosleep 0.00% sleep [unknown] [k] 0xffffffffaea00163 # # (Tip: To see callchains in a more compact form: perf report -g folded) # $ Signed-off-by: Alexey Budankov Reviewed-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: Alexander Shishkin Cc: Andi Kleen Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/304b0a59-942c-3fe1-da02-aa749f87108b@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 504c1ad11691d1a16e92285bb961728a80c06014 Author: Alexey Budankov Date: Mon Mar 18 20:44:42 2019 +0300 perf record: Implement -z,--compression_level[=] option Implemented -z,--compression_level[=] option that enables compression of mmaped kernel data buffers content in runtime during perf record mode collection. Default option value is 1 (fastest compression). Compression overhead has been measured for serial and AIO streaming when profiling matrix multiplication workload: ------------------------------------------------------------- | SERIAL | AIO-1 | ----------------------------------------------------------------| |-z | OVH(x) | ratio(x) size(MiB) | OVH(x) | ratio(x) size(MiB) | |---------------------------------------------------------------| | 0 | 1,00 | 1,000 179,424 | 1,00 | 1,000 187,527 | | 1 | 1,04 | 8,427 181,148 | 1,01 | 8,474 188,562 | | 2 | 1,07 | 8,055 186,953 | 1,03 | 7,912 191,773 | | 3 | 1,04 | 8,283 181,908 | 1,03 | 8,220 191,078 | | 5 | 1,09 | 8,101 187,705 | 1,05 | 7,780 190,065 | | 8 | 1,05 | 9,217 179,191 | 1,12 | 6,111 193,024 | ----------------------------------------------------------------- OVH = (Execution time with -z N) / (Execution time with -z 0) ratio - compression ratio size - number of bytes that was compressed size ~= trace size x ratio Committer notes: Testing it I noticed that it failed to disable build id processing when compression is enabled, and as we'd have to uncompress everything to look for the PERF_RECORD_{MMAP,SAMPLE,etc} to figure out which build ids to read from DSOs, we better disable build id processing when compression is enabled, logging with pr_debug() when doing so: Original patch: # perf record -z2 ^C[ perf record: Woken up 1 times to write data ] 0x1746e0 [0x76]: failed to process type: 81 [Invalid argument] [ perf record: Captured and wrote 1.568 MB perf.data, compressed (original 0.452 MB, ratio is 3.995) ] # After auto-disabling build id processing when compression is enabled: $ perf record -z2 sleep 1 [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.001 MB perf.data, compressed (original 0.001 MB, ratio is 2.292) ] $ perf record -v -z2 sleep 1 Compression enabled, disabling build id collection at the end of the session. [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.001 MB perf.data, compressed (original 0.001 MB, ratio is 2.305) ] $ Also, with parts of the patch originally after this one moved to just before this one we get: $ perf record -z2 sleep 1 [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.001 MB perf.data, compressed (original 0.001 MB, ratio is 2.371) ] $ perf report -D | grep COMPRESS 0 0x1b8 [0x155]: PERF_RECORD_COMPRESSED: unhandled! 0 0x30d [0x80]: PERF_RECORD_COMPRESSED: unhandled! COMPRESSED events: 2 COMPRESSED events: 0 $ I.e. when faced with PERF_RECORD_COMPRESSED that we still have no code to process, we just show it as not being handled, skip them and continue, while before we had: $ perf report -D | grep COMPRESS 0x1b8 [0x169]: failed to process type: 81 [Invalid argument] Error: failed to process sample 0 0x1b8 [0x169]: PERF_RECORD_COMPRESSED $ Signed-off-by: Alexey Budankov Reviewed-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: Alexander Shishkin Cc: Andi Kleen Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/9ff06518-ae63-a908-e44d-5d9e56dd66d9@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 61a7773ca88f32ef7e185fdf9fc0d44e8ec18a66 Author: Alexey Budankov Date: Mon Mar 18 20:45:11 2019 +0300 perf report: Add stub processing of compressed events for -D Committer note: Split from a larger patch, this only dumps PERF_RECORD_COMPRESSED as unhandled, so that when we introduce the record part in the next patch, we don't see unhandled events when using 'perf record -D'. Changed it so that we dump the event if the handler is just a stub, i.e. for the case where we don't have ZSTD linked but we're processing a perf.data file generated by a tool with that linked. Also when failing to decompress we can't just dump the uncompressed event and return 0, we have to propagate the error. Signed-off-by: Alexey Budankov Cc: Alexander Shishkin Cc: Andi Kleen Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/304b0a59-942c-3fe1-da02-aa749f87108b@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit ef781128e47e73f0e5b2ad385cfa685a0719456a Author: Alexey Budankov Date: Mon Mar 18 20:44:12 2019 +0300 perf record: Implement compression for AIO trace streaming Compression is implemented using the functions from zstd.c. As the memory to operate on the compression uses mmap->aio.data[] buffers. If Zstd streaming compression API fails for some reason the data to be compressed are just copied into the memory buffers using plain memcpy(). Compressed trace frame consists of an array of PERF_RECORD_COMPRESSED records. Each element of the array is not longer that PERF_SAMPLE_MAX_SIZE and consists of perf_event_header followed by the compressed chunk that is decompressed on the loading stage. perf_mmap__aio_push() is replaced by perf_mmap__push() which is now used in the both serial and AIO streaming cases. perf_mmap__push() is extended with positive return values to signify absence of data ready for processing. Signed-off-by: Alexey Budankov Reviewed-by: Jiri Olsa Cc: Alexander Shishkin Cc: Andi Kleen Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/77db2b2c-5d03-dbb0-aeac-c4dd92129ab9@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 5d7f41164930ecc1797702b7f9728ac702609ef3 Author: Alexey Budankov Date: Mon Mar 18 20:43:35 2019 +0300 perf record: Implement compression for serial trace streaming Compression is implemented using the functions from zstd.c. As the memory to operate on the compression uses mmap->data buffer. If Zstd streaming compression API fails for some reason the data to be compressed are just copied into the memory buffers using plain memcpy(). Compressed trace frame consists of an array of PERF_RECORD_COMPRESSED records. Each element of the array is not longer that PERF_SAMPLE_MAX_SIZE and consists of perf_event_header followed by the compressed chunk that is decompressed on the loading stage. Comitter notes: Undo some unnecessary line breaks, remove some unnecessary () around zstd_data to then just get its address, and fix conflicts with BPF_PROG_INFO/BPF_BTF patchkits. Signed-off-by: Alexey Budankov Reviewed-by: Jiri Olsa Cc: Alexander Shishkin Cc: Andi Kleen Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/744df43f-3932-2594-ddef-1e99a3cad03a@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit f24c1d7523e6db26ec2115a308750c875927741b Author: Alexey Budankov Date: Mon Mar 18 20:42:55 2019 +0300 perf tools: Introduce Zstd streaming based compression API Implemented functions are based on Zstd streaming compression API. The functions are used in runtime to compress data that come from mmaped kernel buffer. zstd_init(), zstd_fini() are used for initialization and finalization to allocate and deallocate internal zstd objects. zstd_compress_stream_to_records() is used to convert parts of mmaped kernel buffer into an array of PERF_RECORD_COMPRESSED records. Signed-off-by: Alexey Budankov Reviewed-by: Jiri Olsa Cc: Alexander Shishkin Cc: Andi Kleen Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/18bf36f3-b85a-1fe2-dd83-10e0c6069568@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 51255a8af7c41c876c2d715a35ab03c13302a607 Author: Alexey Budankov Date: Mon Mar 18 20:42:19 2019 +0300 perf mmap: Implement dedicated memory buffer for data compression Implemented mmap data buffer that is used as the memory to operate on when compressing data in case of serial trace streaming. Signed-off-by: Alexey Budankov Reviewed-by: Jiri Olsa Cc: Alexander Shishkin Cc: Andi Kleen Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/49b31321-0f70-392b-9a4f-649d3affe090@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 42e1fd80a5b8bf9188ddb502b788433ece189aae Author: Alexey Budankov Date: Mon Mar 18 20:41:33 2019 +0300 perf record: Implement COMPRESSED event record and its attributes Implemented PERF_RECORD_COMPRESSED event, related data types, header feature and functions to write, read and print feature attributes from the trace header section. comp_mmap_len preserves the size of mmaped kernel buffer that was used during collection. comp_mmap_len size is used on loading stage as the size of decomp buffer for decompression of COMPRESSED events content. Committer notes: Fixed up conflict with BPF_PROG_INFO and BTF_BTF header features. Signed-off-by: Alexey Budankov Reviewed-by: Jiri Olsa Cc: Alexander Shishkin Cc: Andi Kleen Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/ebbaf031-8dda-3864-ebc6-7922d43ee515@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit d3c8c08e75c4cbb6a940323092b40fcfd1de5380 Author: Alexey Budankov Date: Mon Mar 18 20:41:02 2019 +0300 perf session: Define 'bytes_transferred' and 'bytes_compressed' metrics Define 'bytes_transferred' and 'bytes_compressed' metrics to calculate ratio in the end of the data collection: compression ratio = bytes_transferred / bytes_compressed The 'bytes_transferred' metric accumulates the amount of bytes that was extracted from the mmaped kernel buffers for compression, while 'bytes_compressed' accumulates the amount of bytes that was received after applying compression. Signed-off-by: Alexey Budankov Reviewed-by: Jiri Olsa Cc: Alexander Shishkin Cc: Andi Kleen Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1d4bf499-cb03-26dc-6fc6-f14fec7622ce@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 5b6f5aef10f65863151fd4daed61657ad2681f98 Author: Arnaldo Carvalho de Melo Date: Tue May 14 16:48:13 2019 -0300 perf build tests: Add NO_LIBZSTD=1 to make_minimal So that we can test the ifdef parts for this feature. Cc: Adrian Hunter Cc: Alexander Shishkin Cc: Alexey Budankov Cc: Andi Kleen Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: https://lkml.kernel.org/n/tip-7o65mfl10wlvm8v3f0ombxd1@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit 1df9d75776c9813abc7f6abff3a32ee782a86c8a Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:33 2019 -0400 tools lib traceevent: Man pages for trace sequences APIs Create man pages for trace sequences libtraceevent APIs: trace_seq_init(), trace_seq_destroy(), trace_seq_reset(), trace_seq_terminate(), trace_seq_putc(), trace_seq_puts(), trace_seq_printf(), trace_seq_vprintf(), trace_seq_do_fprintf(), trace_seq_do_printf() Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-27-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200110.462646052@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 0133fc6068fb51aa7ce8876e8fee465d92acfc14 Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:32 2019 -0400 tools lib traceevent: Man pages for APIs used to extract common fields from a record Create man pages for libtraceevent APIs: tep_data_type(), tep_data_pid(), tep_data_preempt_count(), tep_data_flags() Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-26-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200110.284281830@goodmis.org [ Fixed missing T in description of NOSUPPORT flag ] Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 73b6b470f60641cf763eab60640b6dd9360297c7 Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:31 2019 -0400 tools lib traceevent: Man page for tep_parse_header_page() Create man page for tep_parse_header_page() libtraceevent API. Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-25-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200110.093108279@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit e57ea935ad744a36168a181a3c01e019fc237c3c Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:30 2019 -0400 tools lib traceevent: Man pages for parse event APIs Create man pages for libtraceevent APIs: tep_parse_event(), tep_parse_format() Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-24-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200109.847820380@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 854d73c6665984765f8d93dea3d6c1dcafa17154 Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:29 2019 -0400 tools lib traceevent: Man pages for event filter APIs Added new man pages, describing libtraceevent event filter APIs: tep_filter_alloc() tep_filter_free() tep_filter_reset() tep_filter_add_filter_str() tep_filter_strerror() tep_event_filtered() tep_filter_remove_event() tep_filter_match() tep_filter_copy() tep_filter_compare() tep_filter_make_string() Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-23-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200109.638838141@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit e64392019c0537829ef1d555451c513f1046ae2a Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:28 2019 -0400 tools lib traceevent: Man pages for event fields APIs Create man pages for libtraceevent APIs: tep_event_common_fields(), tep_event_fields() Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-22-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200109.421670142@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 95ec2822a976af27c9cb77cdc01c650a3640adfa Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:27 2019 -0400 tools lib traceevent: Man page for tep_read_number_field() Create man page for libtraceevent API tep_read_number_field(). Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-21-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200109.219394901@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 6dfe6849b6ee69975eb82181e0afb03fbd8b578f Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:26 2019 -0400 tools lib traceevent: Man pages for print field APIs Create man pages for libtraceevent APIs: tep_print_field(), tep_print_fields(), tep_print_num_field(), tep_print_func_field() Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-20-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200109.054708419@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 96e75ef97d882655d3d2f14aec444d5544bd93ff Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:25 2019 -0400 tools lib traceevent: Man pages for get field value APIs Create man pages for libtraceevent APIs: tep_get_any_field_val(), tep_get_common_field_val(), tep_get_field_val(), tep_get_field_raw() Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-19-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200108.885426878@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 0b51220ee0c3f6634b9fcf9208cc0764d5861163 Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:24 2019 -0400 tools lib traceevent: Man pages for find field APIs Create man pages for libtraceevent APIs: tep_find_common_field(), tep_find_field() tep_find_any_field() Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-18-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200108.721589427@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 747e942c3925bb85e2865371664499a98fca83b0 Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:23 2019 -0400 tools lib traceevent: Man pages for libtraceevent event get APIs Create man pages for libtraceevent APIs: tep_get_event(), tep_get_first_event(), tep_get_events_count() Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-17-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200108.561088129@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 7935c316ef067881ee4043c4c7d611e982e5fe21 Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:22 2019 -0400 tools lib traceevent: Man page for list events APIs Create man page for libtraceevent APIs: tep_list_events() tep_list_events_copy() Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-16-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200108.367633707@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 86e8076e93ff69213931f867878709f2c6139032 Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:21 2019 -0400 tools lib traceevent: Man pages for event find APIs Create man pages for libtraceevent APIs: tep_find_event() tep_find_event_by_name() tep_find_event_by_record() Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-15-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200108.197407057@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit c76c22421875bbcbadd3c9fd4033981677aacfb0 Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:20 2019 -0400 tools lib traceevent: Man page for tep_read_number() Create man page for tep_read_number() libtraceevent API. Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-14-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200108.042164597@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 10e679751cde169434dffb6c87f9b93c02050bef Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:19 2019 -0400 tools lib traceevent: Man pages for registering print function Create man pages for libtraceevent APIs: tep_register_print_function() tep_unregister_print_function() Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lkml.kernel.org/r/20190510200107.857252818@goodmis.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-13-tstoyanov@vmware.com Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit c818e2dbe4720151f99876a28252cc9b27e561f8 Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:18 2019 -0400 tools lib traceevent: Man pages for function related libtraceevent APIs Added new man pages, describing function related libtraceevent APIs: tep_register_function(), tep_register_print_string(), tep_find_function(), tep_find_function_address(), tep_set_function_resolver(), tep_reset_function_resolver() Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-12-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200107.701962205@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit db5570e5e30aa2362fc34f5ee3b4b741362d41fa Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:17 2019 -0400 tools lib traceevent: Man pages for event handler APIs Create man pages for libtraceevent APIs: tep_register_event_handler() tep_unregister_event_handler() Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-11-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200107.536391771@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit c127ef56761e41ad3eb4cb6eaaf1805e04c9a46e Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:16 2019 -0400 tools lib traceevent: Man page for tep_strerror() Create man page for tep_strerror() libtraceevent API. Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-10-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200107.371692630@goodmis.org [ Added "always" to state it doesn't matter if it is POSIX or GNU ] Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 71ee989f94cf06ce73ec5bd8a9f28cca5d167499 Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:15 2019 -0400 tools lib traceevent: Man page for page size APIs Create man pages for libtraceevent APIs: tep_get_page_size() tep_set_page_size() Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-9-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200107.218173559@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 802e985eb682e766992d2f851e4f1843414b3b0e Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:14 2019 -0400 tools lib traceevent: Man page for host endian APIs Create man pages for libtraceevent APIs: tep_is_bigendian(), tep_is_local_bigendian(), tep_set_local_bigendian() Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-8-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200107.063709363@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 9571f7371f143cfb7a324b531aac2814cb9044c7 Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:13 2019 -0400 tools lib traceevent: Man page for file endian APIs Create man pages for libtraceevent APIs: tep_is_file_bigendian(), tep_set_file_bigendian() Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-7-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200106.895177252@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit ba28fabe43c3a13bbc6e48f78fdf609dcc5e114b Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:12 2019 -0400 tools lib traceevent: Man page for get/set cpus APIs Create man pages for libtraceevent APIs: tep_get_cpus(), tep_set_cpus() Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-6-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200106.742948683@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 3d2626bd1f15711711b575463befbe137ac1adc6 Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:11 2019 -0400 tools lib traceevent: Man page for header_page APIs Create a man page for libtraceevent APIs: tep_get_header_page_size(), tep_get_header_timestamp_size(), tep_is_old_format() Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-5-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200106.583928896@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 680ca343d2290f94302ac4f60a6c69023d5a5f8a Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:10 2019 -0400 tools lib traceevent: Man pages for tep_handler related APIs Added 4 new man pages, describing libtraceevent APIs: tep_register_comm(), tep_override_comm(), tep_is_pid_registered(), tep_data_comm_from_pid(), tep_data_pid_from_comm(), tep_cmdline_pid(), tep_alloc(), tep_free(), tep_get_long_size(), tep_set_long_size(), tep_set_flag(), tep_clear_flag(), tep_test_flag() Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-4-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200106.420270952@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit f7dff58a8b5a35a65379cdc76fe11c168f9ef198 Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:09 2019 -0400 tools lib traceevent: Add support for man pages with multiple names Added support for man pages with multiple names, used to combine the description of several APIs into one page. Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-3-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200106.263630606@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit dc7fd7bfe98e268f96fbc66d6ece4bf6a5bc057c Author: Tzvetomir Stoyanov Date: Fri May 10 15:56:08 2019 -0400 tools lib traceevent: Introduce man pages Initial support for libtraceevent man pages - Documentation directory, templates, configurations, Makefiles. The first man page is also part of the patch - summary of the library and all its APIs. Building of the documentation is integrated into the libtraceevent build process, new targets are added to its Makefile: make help make doc make doc-clean make doc-install make doc-uninstall Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: linux-trace-devel@vger.kernel.org Link: http://lore.kernel.org/linux-trace-devel/20190503091119.23399-2-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190510200106.104812629@goodmis.org [ Replaced tracefs tracing/events to tracefs events in DESCRIPTION section ] Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 30ba5b0e66c872faa416a458d32cc3956ecb548a Author: Donald Yandt Date: Tue May 14 07:01:00 2019 -0400 perf machine: Null-terminate version char array upon fgets(/proc/version) error If fgets() fails due to any other error besides end-of-file, the version char array may not even be null-terminated. Signed-off-by: Donald Yandt Cc: Alexander Shishkin Cc: Avi Kivity Cc: Jiri Olsa Cc: Peter Zijlstra Cc: Yanmin Zhang Fixes: a1645ce12adb ("perf: 'perf kvm' tool for monitoring guest performance from host") Link: http://lkml.kernel.org/r/20190514110100.22019-1-donald.yandt@gmail.com Signed-off-by: Arnaldo Carvalho de Melo commit bf6d18cffa5f26bd5dc71485c2a2ad0c42a0ce60 Author: Kan Liang Date: Tue May 7 06:16:31 2019 -0700 perf vendor events intel: Add uncore_upi JSON support Perf cannot parse UPI (Intel's "Ultra Path Interconnect" [1]) events. # perf stat -e UPI_DATA_BANDWIDTH_TX event syntax error: 'UPI_DATA_BANDWIDTH_TX' \___ parser error Run 'perf list' for a list of valid events The JSON lists call the box UPI LL, while perf calls it upi. Add conversion support to JSON to convert the unit properly. Committer notes: [1] https://en.wikipedia.org/wiki/Intel_Ultra_Path_Interconnect "The Intel Ultra Path Interconnect (UPI) is a point-to-point processor interconnect developed by Intel which replaced the Intel QuickPath Interconnect (QPI) in Xeon Skylake-SP platforms starting in 2017. UPI is a low-latency coherent interconnect for scalable multiprocessor systems with a shared address space. It uses a directory-based home snoop coherency protocol with a transfer speed of up to 10.4 GT/s. Supporting processors typically have two or three UPI links." Signed-off-by: Kan Liang Cc: Andi Kleen Cc: Jiri Olsa Link: http://lkml.kernel.org/r/1557234991-130456-1-git-send-email-kan.liang@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit b62d18aba1109506c1926ab7b564c4ac3bd48786 Author: Adrian Hunter Date: Fri May 3 15:08:28 2019 +0300 perf scripts python: exported-sql-viewer.py: Add 'About' dialog box With support for Python 2 or 3 and PySide 1 or 2 (Qt 4 or 5), it is useful to see what versions are in use. Add an 'About' dialog box that displays Python, PySide, Qt and database server (SQLite or PostgreSQL) version numbers. Committer testing: $ python ~acme/libexec/perf-core/scripts/python/exported-sql-viewer.py ~/c/adrian.hunter/simple-retpoline.db Then go to 'Help', then 'About', select all the lines with the mouse press 'Control+C', then, on the same terminal press control+shift+V which shows my current environment: Python version: 2.7.16 PySide version: 1 Qt version: 4.8.7 SQLite version: 3.26.0 Signed-off-by: Adrian Hunter Tested-by: Arnaldo Carvalho de Melo Cc: Jiri Olsa Link: http://lkml.kernel.org/r/20190503120828.25326-7-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 9bc4e4bfe6169343a8f019cd5d7843a558b78363 Author: Adrian Hunter Date: Fri May 3 15:08:27 2019 +0300 perf scripts python: exported-sql-viewer.py: Add context menu Add a context menu (right-click) that provides options for copying to clipboard, including, for trees, the ability to copy only the cell under the mouse pointer. Committer testing: $ python ~acme/libexec/perf-core/scripts/python/exported-sql-viewer.py ~/c/adrian.hunter/simple-retpoline.db Simply right click and pick "Copy selection", that at this point has just the first line, not expanded, then see what was copied by pressing shift+control+v on a terminal: Call Path,Object,Count,Time (ns),Time (%),Branch Count,Branch Count (%) ▶ simple-retpolin,,,,,, Ditto after expanding, i.e. the selection continues to be just one line: Call Path Object Count Time (ns) Time (%) Branch Count Branch Count (%) ▼ simple-retpolin Now select all the lines with the mouse and control+shift+v again: Call Path Object Count Time (ns) Time (%) Branch Count Branch Count (%) ▼ 14503:14503 ▼ _start ld-2.28.so 1 156267 100.0 10602 100.0 ▶ unknown unknown 1 2276 1.5 1 0.0 ▶ _dl_start ld-2.28.so 1 137047 87.7 10088 95.2 ▶ _dl_init ld-2.28.so 1 9142 5.9 326 3.1 ▼ _start simple-retpoline 1 7457 4.8 182 1.7 ▶ unknown unknown 1 805 10.8 1 0.5 ▶ __libc_start_main libc-2.28.so 1 6347 85.1 179 98.4 Signed-off-by: Adrian Hunter Tested-by: Arnaldo Carvalho de Melo Cc: Jiri Olsa Link: http://lkml.kernel.org/r/20190503120828.25326-6-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 96c43b9a7ab3b70bc35d762f7b76082dfd118a6a Author: Adrian Hunter Date: Fri May 3 15:08:26 2019 +0300 perf scripts python: exported-sql-viewer.py: Add copy to clipboard Add support for copying to clipboard. Two menu options are added to copy the selected rows / columns with normal spacing, or as comma-separated-values. In the case of trees, only entire rows can be copied. Comitter testing: $ python ~acme/libexec/perf-core/scripts/python/exported-sql-viewer.py ~/c/adrian.hunter/simple-retpoline.db Select the lines, press control+C and on the same terminal, press control+shift+V and voilà: Call Path Object Count Time (ns) Time (%) Branch Count Branch Count (%) ▼ 14503:14503 ▼ _start ld-2.28.so 1 156267 100.0 10602 100.0 unknown unknown 1 2276 1.5 1 0.0 ▼ _dl_start ld-2.28.so 1 137047 87.7 10088 95.2 ▶ unknown unknown 4 4127 3.0 4 0.0 _dl_setup_hash ld-2.28.so 1 0 0.0 1 0.0 ▶ _dl_sysdep_start ld-2.28.so 1 131342 95.8 9981 98.9 ▼ _dl_init ld-2.28.so 1 9142 5.9 326 3.1 ▼ call_init.part.0 ld-2.28.so 3 9133 99.9 319 97.9 ▶ _init libc-2.28.so 1 6877 75.3 110 34.5 ▶ check_stdfiles_vtables libc-2.28.so 1 76 0.8 2 0.6 ▶ init_cacheinfo libc-2.28.so 1 1991 21.8 197 61.8 ▶ _start simple-retpoline 1 7457 4.8 182 1.7 Signed-off-by: Adrian Hunter Tested-by: Arnaldo Carvalho de Melo Cc: Jiri Olsa Link: http://lkml.kernel.org/r/20190503120828.25326-5-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 3ac641f4acd66c109b74f108f8a61f2905702b10 Author: Adrian Hunter Date: Fri May 3 15:08:25 2019 +0300 perf scripts python: exported-sql-viewer.py: Add tree level As preparation for adding support for copying to clipboard, keep track of what level each item is in tree items. Signed-off-by: Adrian Hunter Cc: Jiri Olsa Link: http://lkml.kernel.org/r/20190503120828.25326-4-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 4b2084537e5f3b58337bce894391fb63bf3b0e28 Author: Adrian Hunter Date: Fri May 3 15:08:23 2019 +0300 perf scripts python: exported-sql-viewer.py: Fix error when shrinking / enlarging font Fix the following error if shrink / enlarge font is used with the help window. Traceback (most recent call last): File "tools/perf/scripts/python/exported-sql-viewer.py", line 2791, in ShrinkFont ShrinkFont(win.view) AttributeError: 'HelpWindow' object has no attribute 'view' Committer testing: Before, matches above output: $ python ~acme/libexec/perf-core/scripts/python/exported-sql-viewer.py ~/c/adrian.hunter/simple-retpoline.db Traceback (most recent call last): File "/home/acme/libexec/perf-core/scripts/python/exported-sql-viewer.py", line 2780, in EnlargeFont EnlargeFont(win.view) AttributeError: 'HelpWindow' object has no attribute 'view' $ After: No more tracebacks, but the fonts don't get enlarged, which is kinda frustrating... Signed-off-by: Adrian Hunter Tested-by: Arnaldo Carvalho de Melo Cc: Jiri Olsa Link: http://lkml.kernel.org/r/20190503120828.25326-2-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo commit be6e747136a4dc8aad99259e47fd6f7362a43996 Author: Adrian Hunter Date: Fri May 3 15:08:24 2019 +0300 perf scripts python: exported-sql-viewer.py: Move view creation As preparation for adding support for copying to clipboard, create view in TreeWindowBase instead of derived classes. Committer testing: Tested using an old .db used to test some older patches: $ python ~acme/libexec/perf-core/scripts/python/exported-sql-viewer.py ~/c/adrian.hunter/simple-retpoline.db Nothing breaks. Signed-off-by: Adrian Hunter Tested-by: Arnaldo Carvalho de Melo Cc: Jiri Olsa Link: http://lkml.kernel.org/r/20190503120828.25326-3-adrian.hunter@intel.com Signed-off-by: Arnaldo Carvalho de Melo commit ca138a7aabc68bf727918bb40ce08157cd5ec0a5 Author: Andi Kleen Date: Mon May 6 07:19:24 2019 -0700 perf tools x86: Add support for recording and printing XMM registers Icelake and later platforms support collecting XMM registers with PEBS event. Add support for 'perf script' to dump them, and support for the register parser in 'perf record -I=' ... to configure them. For now they are just printed in hex, we could potentially later add other formats too. Committer testing: Before: # perf record -IXMM0 Warning: unknown register XMM0, check man page or run 'perf record -I?' Usage: perf record [] [] or: perf record [] -- [] # # perf record -I? available registers: AX BX CX DX SI DI BP SP IP FLAGS CS SS R8 R9 R10 R11 R12 R13 R14 R15 Usage: perf record [] [] or: perf record [] -- [] # After: # perf record -IXMM0 Error: The sys_perf_event_open() syscall returned with 22 (Invalid argument) for event (cycles). /bin/dmesg | grep -i perf may provide additional information. # # perf record -I? available registers: AX BX CX DX SI DI BP SP IP FLAGS CS SS R8 R9 R10 R11 R12 R13 R14 R15 XMM0 XMM1 XMM2 XMM3 XMM4 XMM5 XMM6 XMM7 XMM8 XMM9 XMM10 XMM11 XMM12 XMM13 XMM14 XMM15 Usage: perf record [] [] or: perf record [] -- [] -I, --intr-regs[=] sample selected machine registers on interrupt, use -I ? to list register names # More work is needed to, when faced with such error, warn the user that that register is not available on the running platform. Signed-off-by: Andi Kleen Tested-by: Arnaldo Carvalho de Melo Cc: Alexander Shishkin Cc: Jiri Olsa Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20190506141926.13659-1-kan.liang@linux.intel.com Signed-off-by: Kan Liang Signed-off-by: Arnaldo Carvalho de Melo commit 4c1cf20334ae6e390e1ea787ef76c40a161370d1 Author: Arnaldo Carvalho de Melo Date: Mon May 13 14:28:32 2019 -0400 perf parse-regs: Improve error output when faced with unknown register name Add quotes around the register name and suggest using 'perf record -I?' to get the list of available registers. Before: # perf record -Idi,xmm20,xmm1 Warning: unknown register xmm20, check man page Usage: perf record [] [] or: perf record [] -- [] -I, --intr-regs[=] sample selected machine registers on interrupt, use -I ? to list register names # # perf record -Idi,xmm20,xmm1 Warning: unknown register "xmm20", check man page or run "perf record -I?" Usage: perf record [] [] or: perf record [] -- [] -I, --intr-regs[=] sample selected machine registers on interrupt, use -I ? to list register names # Cc: Adrian Hunter Cc: Alexander Shishkin Cc: Andi Kleen Cc: Jiri Olsa Cc: Kan Liang Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Link: https://lkml.kernel.org/n/tip-9a9hyuum8c0oggg86xd3sxc5@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit 8e5bc76f2ce39ffd48350d6dd9318d78d07b0bfa Author: Arnaldo Carvalho de Melo Date: Mon May 13 15:55:01 2019 -0300 perf record: Fix suggestion to get list of registers usable with --user-regs and --intr-regs $ perf record -h -I Usage: perf record [] [] or: perf record [] -- [] -I, --intr-regs[=] sample selected machine registers on interrupt, use -I ? to list register names $ m $ perf record -I ? Workload failed: No such file or directory $ After: $ perf record -h -I Usage: perf record [] [] or: perf record [] -- [] -I, --intr-regs[=] sample selected machine registers on interrupt, use '-I?' to list register names $ $ perf record -I? available registers: AX BX CX DX SI DI BP SP IP FLAGS CS SS R8 R9 R10 R11 R12 R13 R14 R15 Usage: perf record [] [] or: perf record [] -- [] -I, --intr-regs[=] sample selected machine registers on interrupt, use '-I?' to list register names $ Cc: Adrian Hunter Cc: Alexander Shishkin Cc: Andi Kleen Cc: Jiri Olsa Cc: Kan Liang Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Stephane Eranian Fixes: bcc84ec65ad1 ("perf record: Add ability to name registers to record") Link: https://lkml.kernel.org/n/tip-r0xhfhy5radmkhhcbcfs5izf@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit c9a7078750531c189c04ddd184c4367a5cb77780 Author: Arnaldo Carvalho de Melo Date: Mon May 13 13:53:20 2019 -0400 tools pci: Do not delete pcitest.sh in 'make clean' When running 'make -C tools clean' I noticed that a revision controlled file was being deleted: $ git diff diff --git a/tools/pci/pcitest.sh b/tools/pci/pcitest.sh deleted file mode 100644 index 75ed48ff2990..000000000000 --- a/tools/pci/pcitest.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/sh -# SPDX-License-Identifier: GPL-2.0 - -echo "BAR tests" -echo So I changed the make variables to fix that, testing it should produce the same intended result while not deleting revision controlled files. $ make O=/tmp/build/pci -C tools/pci install make: Entering directory '/home/acme/git/perf/tools/pci' make -f /home/acme/git/perf/tools/build/Makefile.build dir=. obj=pcitest install -d -m 755 /usr/bin; \ for program in /tmp/build/pci/pcitest pcitest.sh; do \ install $program /usr/bin; \ done install: cannot change permissions of ‘/usr/bin’: Operation not permitted install: cannot create regular file '/usr/bin/pcitest': Permission denied install: cannot create regular file '/usr/bin/pcitest.sh': Permission denied make: *** [Makefile:46: install] Error 1 make: Leaving directory '/home/acme/git/perf/tools/pci' $ ls -la /tmp/build/pci/pcitest -rwxrwxr-x. 1 acme acme 27152 May 13 13:52 /tmp/build/pci/pcitest $ /tmp/build/pci/pcitest can't open PCI Endpoint Test device: No such file or directory $ Cc: Adrian Hunter Cc: Gustavo Pimentel Cc: Jiri Olsa Cc: Kishon Vijay Abraham I Cc: Lorenzo Pieralisi Cc: Namhyung Kim Fixes: 1ce78ce09430 ("tools: PCI: Change pcitest compiling process") Link: https://lkml.kernel.org/n/tip-9re6bd7eh9epi3koslkv3ocn@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit 0ceb5499a8001e5ddac2c8bd7b45eb4c643469ad Author: Arnaldo Carvalho de Melo Date: Mon May 13 13:35:38 2019 -0400 tools x86 uapi asm: Sync the pt_regs.h copy with the kernel sources To get the changes in: 878068ea270e ("perf/x86: Support outputting XMM registers") That will be used in a followup patch to allow users to ask for some or all of those registers to be collected in certain contatexts. This silences the following perf build warning: Warning: Kernel ABI header at 'tools/arch/x86/include/uapi/asm/perf_regs.h' differs from latest version at 'arch/x86/include/uapi/asm/perf_regs.h' diff -u tools/arch/x86/include/uapi/asm/perf_regs.h arch/x86/include/uapi/asm/perf_regs.h Cc: Adrian Hunter Cc: Alexander Shishkin Cc: Andi Kleen Cc: Jiri Olsa Cc: Kan Liang Cc: Namhyung Kim Cc: Peter Zijlstra Link: https://lkml.kernel.org/n/tip-6pjnnrzqt3x3n2cd6br3wk7k@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit f98f10f35257d3c8c73104956f3b7aa6e6f75067 Author: Arnaldo Carvalho de Melo Date: Mon May 13 13:27:12 2019 -0400 tools arch uapi: Sync the x86 kvm.h copy To get the changes in: 59073aaf6de0 ("kvm: x86: Add exception payload fields to kvm_vcpu_events") This silences the following perf build warning: Warning: Kernel ABI header at 'tools/arch/x86/include/uapi/asm/kvm.h' differs from latest version at 'arch/x86/include/uapi/asm/kvm.h' diff -u tools/arch/x86/include/uapi/asm/kvm.h arch/x86/include/uapi/asm/kvm.h The changes in this file are in something not used at this time in any tools/perf/ tool. Cc: Adrian Hunter Cc: Jim Mattson Cc: Jiri Olsa Cc: Namhyung Kim Cc: Paolo Bonzini Link: https://lkml.kernel.org/n/tip-6uh8tpraons0h22dmxgfyony@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit a021b54001114473333b41100f64ec1b649f5c24 Author: Arnaldo Carvalho de Melo Date: Mon May 13 13:23:42 2019 -0400 tools arch: Update arch/x86/lib/memcpy_64.S copy used in 'perf bench mem memcpy' To bring in the change made in this cset: b69656fa7ea2 ("x86/uaccess: Fix up the fixup") Silencing this perf build warning: Warning: Kernel ABI header at 'tools/arch/x86/lib/memcpy_64.S' differs from latest version at 'arch/x86/lib/memcpy_64.S' diff -u tools/arch/x86/lib/memcpy_64.S arch/x86/lib/memcpy_64.S No changes in the tooling using this, that was just to ease some objtool return checking. Cc: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Link: https://lkml.kernel.org/n/tip-j0mxgqkuibhw5qid9saaspdu@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit 382619c07ff6491b33d54fccff7407336ddcb6d4 Author: Jiri Olsa Date: Fri Apr 26 09:38:04 2019 +0200 perf tools: Speed up report for perf compiled with linwunwind When compiled with libunwind, perf does some preparatory work when processing side-band events. This is not needed when report actually don't unwind dwarf callchains, so it's disabled with dwarf_callchain_users bool. However we could move that check to higher level and shield more unwanted code for normal report processing, giving us following speed up on kernel build profile: Before: $ perf record make -j40 ... $ ll ../../perf.data -rw-------. 1 jolsa jolsa 461783932 Apr 26 09:11 perf.data $ perf stat -e cycles:u,instructions:u perf report -i perf.data > out Performance counter stats for 'perf report -i perf.data': 78,669,920,155 cycles:u 99,076,431,951 instructions:u # 1.26 insn per cycle 55.382823668 seconds time elapsed 27.512341000 seconds user 27.712871000 seconds sys After: $ perf stat -e cycles:u,instructions:u perf report -i perf.data > out Performance counter stats for 'perf report -i perf.data': 59,626,798,904 cycles:u 88,583,575,849 instructions:u # 1.49 insn per cycle 21.296935559 seconds time elapsed 20.010191000 seconds user 1.202935000 seconds sys The speed is higher with profile having many side-band events, because these trigger libunwind preparatory code. This does not apply for perf compiled with libdw for dwarf unwind, only for build with libunwind. Signed-off-by: Jiri Olsa Cc: Alexander Shishkin Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/20190426073804.17238-1-jolsa@kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit 53dbabfe50262eeebb56ce18789c3c885f15e6ac Author: Tzvetomir Stoyanov Date: Thu Apr 18 21:15:56 2019 -0400 tools lib traceevent: Remove hard coded install paths from pkg-config file Install directories of header and library files are hard coded in pkg-config template file. They must be configurable, the Makefile should set them on the compilation / install stage. Signed-off-by: Tzvetomir Stoyanov Cc: Jiri Olsa Link: http://lkml.kernel.org/r/20190418211556.5a12adc3@oasis.local.home Link: http://lkml.kernel.org/r/20190329144546.5819-1-tstoyanov@vmware.com Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit b399ec215b8488468b947c34dfc097003408fe34 Author: Mao Han Date: Sun Apr 21 23:33:14 2019 +0800 csky: Add support for libdw This patch add support for DWARF register mappings and libdw registers initialization, which is used by perf callchain analyzing when --call-graph=dwarf is given. Here is the elfutils csky backend patch set: https://sourceware.org/ml/elfutils-devel/2019-q2/msg00007.html Signed-off-by: Mao Han Cc: Alexander Shishkin Cc: Arnd Bergmann Cc: Jiri Olsa Cc: linux-arch@vger.kernel.org Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1555860794-10572-1-git-send-email-guoren@kernel.org Signed-off-by: Guo Ren Signed-off-by: Arnaldo Carvalho de Melo commit 1455ea2391be5a5bf0a53258af94fa2abbd73cca Author: Colin Ian King Date: Wed Apr 17 11:55:39 2019 +0100 perf test: Fix spelling mistake "leadking" -> "leaking" There are a couple of spelling mistakes in test assert messages. Fix them. Signed-off-by: Colin King Reviewed-by: Mukesh Ojha Cc: Alexander Shishkin Cc: Jiri Olsa Cc: Namhyung Kim Cc: Peter Zijlstra Cc: kernel-janitors@vger.kernel.org Link: http://lkml.kernel.org/r/20190417105539.5902-1-colin.king@canonical.com Signed-off-by: Arnaldo Carvalho de Melo commit bdd1666b3d03d675bdb7f8d92b29f2797acbc5e8 Author: Jin Yao Date: Sat Mar 16 05:16:17 2019 +0800 perf annotate: Remove hist__account_cycles() from callback The hist__account_cycles() function is executed when the hist_iter__branch_callback() is called. But it looks it's not necessary. In hist__account_cycles, it already walks on all branch entries. This patch moves the hist__account_cycles out of callback, now the data processing is much faster than before. Previous code has an issue that the ch[offset].num++ (in __symbol__account_cycles) is executed repeatedly since hist__account_cycles is called in each hist_iter__branch_callback, so the counting of ch[offset].num is not correct (too big). With this patch, the issue is fixed. And we don't need the code of "ch->reset >= ch->num / 2" to check if there are too many overlaps (in annotation__count_and_fill), otherwise some data would be hidden. Now, we can try, for example: perf record -b ... perf annotate or perf report -s symbol The before/after output should be no change. v3: --- Fix the crash in stdio mode. Like previous code, it needs the checking of ui__has_annotation() before hist__account_cycles() v2: --- 1. Cover the similar perf report 2. Remove the checking code "ch->reset >= ch->num / 2" Signed-off-by: Jin Yao Tested-by: Arnaldo Carvalho de Melo Cc: Alexander Shishkin Cc: Andi Kleen Cc: Jin Yao Cc: Jiri Olsa Cc: Kan Liang Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/1552684577-29041-1-git-send-email-yao.jin@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 26359dc5cbc2f2fdad983d96ca44c506fed772c7 Author: Sabyasachi Gupta Date: Tue May 14 12:57:28 2019 +0530 drm/msm/dpu: Remove duplicate header Remove dpu_kms.h which is included more than once Signed-off-by: Sabyasachi Gupta Signed-off-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/5cda6de6.1c69fb81.a3ae5.836a@mx.google.com commit a49294eac27c7159cd8b89a96c3b1a857e37b683 Author: David Howells Date: Fri May 3 18:30:33 2019 +0100 Add wait_var_event_interruptible() Add wait_var_event_interruptible() to allow interruptible waits for events. Signed-off-by: David Howells Acked-by: Peter Zijlstra (Intel) commit d0660f0b3b7d1760d1ab60ec8e9d0de52e885207 Author: David Howells Date: Fri May 3 18:26:55 2019 +0100 dns_resolver: Allow used keys to be invalidated Allow used DNS resolver keys to be invalidated after use if the caller is doing its own caching of the results. This reduces the amount of resources required. Fix AFS to invalidate DNS results to kill off permanent failure records that get lodged in the resolver keyring and prevent future lookups from happening. Fixes: 0a5143f2f89c ("afs: Implement VL server rotation") Signed-off-by: David Howells commit ca1cbbdce92bc2bfdc17e4f70ad41f6e6af2d03f Author: David Howells Date: Tue May 7 15:30:34 2019 +0100 afs: Fix afs_cell records to always have a VL server list record Fix it such that afs_cell records always have a VL server list record attached, even if it's a dummy one, so that various checks can be removed. Signed-off-by: David Howells commit 6b8812fc8ec28c13c09c89f88ce3958f19238838 Author: David Howells Date: Tue May 7 15:16:26 2019 +0100 afs: Fix missing lock when replacing VL server list When afs_update_cell() replaces the cell->vl_servers list, it uses RCU protocol so that proc is protected, but doesn't take ->vl_servers_lock to protect afs_start_vl_iteration() (which does actually take a shared lock). Fix this by making afs_update_cell() take an exclusive lock when replacing ->vl_servers. Fixes: 0a5143f2f89c ("afs: Implement VL server rotation") Signed-off-by: David Howells commit 773e0c40253443e0ce5491cb0e414b62f7cc45ed Author: David Howells Date: Sun May 12 08:31:23 2019 +0100 afs: Fix afs_xattr_get_yfs() to not try freeing an error value afs_xattr_get_yfs() tries to free yacl, which may hold an error value (say if yfs_fs_fetch_opaque_acl() failed and returned an error). Fix this by allocating yacl up front (since it's a fixed-length struct, unlike afs_acl) and passing it in to the RPC function. This also allows the flags to be placed in the object rather than passing them through to the RPC function. Fixes: ae46578b963f ("afs: Get YFS ACLs and information through xattrs") Signed-off-by: David Howells commit cc1dd5c85cb70ebe09ccf1cc34f29af65442a10f Author: David Howells Date: Sun May 12 08:05:10 2019 +0100 afs: Fix incorrect error handling in afs_xattr_get_acl() Fix incorrect error handling in afs_xattr_get_acl() where there appears to be a redundant assignment before return, but in fact the return should be a goto to the error handling at the end of the function. Fixes: 260f082bae6d ("afs: Get an AFS3 ACL as an xattr") Addresses-Coverity: ("Unused Value") Reported-by: Colin Ian King Signed-off-by: David Howells cc: Joe Perches commit 858f5017446764e8bca0b29589a3b164186ae471 Author: Eric Dumazet Date: Wed May 15 09:10:15 2019 -0700 tcp: do not recycle cloned skbs It is illegal to change arbitrary fields in skb_shared_info if the skb is cloned. Before calling skb_zcopy_clear() we need to ensure this rule, therefore we need to move the test from sk_stream_alloc_skb() to sk_wmem_free_skb() Fixes: 4f661542a402 ("tcp: fix zerocopy and notsent_lowat issues") Signed-off-by: Eric Dumazet Diagnosed-by: Willem de Bruijn Signed-off-by: David S. Miller commit 22fb43f36006a3d42b7ab34df0f14ded3d513eda Author: Claudiu Manoil Date: Wed May 15 19:08:58 2019 +0300 enetc: Add missing link state info for ethtool Just hook get_link to standard ethtool_op_get_link, nothing special needed at this point. Signed-off-by: Claudiu Manoil Signed-off-by: David S. Miller commit 5d91eebc5d9cf898fa8751ef3a13e76f19f6f539 Author: Claudiu Manoil Date: Wed May 15 19:08:57 2019 +0300 enetc: Allow to disable Tx SG The fact that the Tx SG flag is fixed to 'on' is only an oversight. Non-SG mode is also supported. Fix this by allowing to turn SG off. Signed-off-by: Claudiu Manoil Signed-off-by: David S. Miller commit f4a0be84d73ec648628bf8094600ceb73cb6073f Author: Claudiu Manoil Date: Wed May 15 19:08:56 2019 +0300 enetc: Fix NULL dma address unmap for Tx BD extensions For the unlikely case of TxBD extensions (i.e. ptp) the driver tries to unmap the tx_swbd corresponding to the extension, which is bogus as it has no buffer attached. Signed-off-by: Claudiu Manoil Signed-off-by: David S. Miller commit 2bbacd1a92788ee334c7e92b765ea16ebab68dfe Merge: fcdec14365ec 9b9f5948afcd Author: Linus Torvalds Date: Wed May 15 09:06:14 2019 -0700 Merge tag 'kconfig-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild Pull Kconfig updates from Masahiro Yamada: - error out if a user specifies a directory instead of a file from "Save" menu of GUI interfaces - do not overwrite .config if there is no change in the configuration - create parent directories as needed when a user specifies a new file path from "Save" menu of menuconfig/nconfig - fix potential buffer overflow - some trivial cleanups * tag 'kconfig-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: kconfig: make conf_get_autoconfig_name() static kconfig: use snprintf for formatting pathnames kconfig: remove useless NULL pointer check in conf_write_dep() kconfig: make parent directories for the saved .config as needed kconfig: do not write .config if the content is the same kconfig: do not accept a directory for configuration output kconfig: remove trailing whitespaces kconfig: Make nconf-cfg.sh executable commit fcdec14365ec96f490cf1c8d9b618643ec88a95e Merge: bfbfbf736862 e3e28670bb28 Author: Linus Torvalds Date: Wed May 15 08:58:49 2019 -0700 Merge tag 'acpi-5.2-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull more ACPI updates from Rafael Wysocki: "These fix two regressions introduced during the 5.0 cycle, in ACPICA and in device PM, cause the values returned by _ADR to be stored in 64 bits and fix two ACPI documentation issues. Specifics: - Update the ACPICA code in the kernel to upstream revision 20190509 including one regression fix: * Prevent excessive ACPI debug messages from being printed by moving the ACPI_DEBUG_DEFAULT definition to the right place (Erik Schmauss). - Set the enable_for_wake bits for wakeup GPEs during suspend to idle to allow acpi_enable_all_wakeup_gpes() to enable them as aproppriate and make wakeup devices sighaling events through ACPI GPEs work with suspend-to-idle again (Rajat Jain). - Use 64 bits to store the return values of _ADR which are assumed to be 64-bit by some bus specs and may contain nonzero bits in the upper 32 bits part for some devices (Pierre-Louis Bossart). - Fix two minor issues with the ACPI documentation (Sakari Ailus)" * tag 'acpi-5.2-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: ACPI: PM: Set enable_for_wake for wakeup GPEs during suspend-to-idle Documentation: ACPI: Direct references are allowed to devices only Documentation: ACPI: Use tabs for graph ASL indentation ACPICA: Update version to 20190509 ACPICA: Linux: move ACPI_DEBUG_DEFAULT flag out of ifndef ACPI: bus: change _ADR representation to 64 bits commit bfbfbf7368627860dd769567599d73ad8f6d8191 Merge: 88f76bc31b93 2a8d69f6139b Author: Linus Torvalds Date: Wed May 15 08:46:44 2019 -0700 Merge tag 'pm-5.2-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull more power management updates from Rafael Wysocki: "These fix a recent regression causing kernels built with CONFIG_PM unset to crash on systems that support the Performance and Energy Bias Hint (EPB), clean up the cpufreq core and some users of transition notifiers and introduce a new power domain flag into the generic power domains framework (genpd). Specifics: - Fix recent regression causing kernels built with CONFIG_PM unset to crash on systems that support the Performance and Energy Bias Hint (EPB) by avoiding to compile the EPB-related code depending on CONFIG_PM when it is unset (Rafael Wysocki). - Clean up the transition notifier invocation code in the cpufreq core and change some users of cpufreq transition notifiers accordingly (Viresh Kumar). - Change MAINTAINERS to cover the schedutil governor as part of cpufreq (Viresh Kumar). - Simplify cpufreq_init_policy() to avoid redundant computations (Yue Hu). - Add explanatory comment to the cpufreq core (Rafael Wysocki). - Introduce a new flag, GENPD_FLAG_RPM_ALWAYS_ON, to the generic power domains (genpd) framework along with the first user of it (Leonard Crestez)" * tag 'pm-5.2-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: soc: imx: gpc: Use GENPD_FLAG_RPM_ALWAYS_ON for ERR009619 PM / Domains: Add GENPD_FLAG_RPM_ALWAYS_ON flag cpufreq: Update MAINTAINERS to include schedutil governor cpufreq: Don't find governor for setpolicy drivers in cpufreq_init_policy() cpufreq: Explain the kobject_put() in cpufreq_policy_alloc() cpufreq: Call transition notifier only once for each policy x86: intel_epb: Take CONFIG_PM into account commit 88f76bc31b93cc228f5a43d5b565dc53615970ae Merge: 89963adcdb43 cbc22b062106 Author: Linus Torvalds Date: Wed May 15 08:31:21 2019 -0700 Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 Pull crypto fixes from Herbert Xu: "This fixes a number of issues in the chelsio and caam drivers" * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: Revert "crypto: caam/jr - Remove extra memory barrier during job ring dequeue" crypto: caam - fix caam_dump_sg that iterates through scatterlist crypto: caam - fix DKP detection logic MAINTAINERS: Maintainer for Chelsio crypto driver crypto: chelsio - count incomplete block in IV crypto: chelsio - Fix softlockup with heavy I/O crypto: chelsio - Fix NULL pointer dereference commit 89963adcdb430e047f4c03ac3ed6ce9aa42a595c Author: Stephen Rothwell Date: Wed May 15 15:23:52 2019 +1000 kernel/compat.c: mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch aims to suppress 3 missing-break-in-switch false positives on some architectures. Acked-by: Arnd Bergmann Cc: Deepa Dinamani Cc: Gustavo A. R. Silva Cc: Kees Cook Cc: Jann Horn Signed-off-by: Stephen Rothwell Signed-off-by: Linus Torvalds commit ec0970e0a1b2c807c908d459641a9f9a1be3e130 Author: Trac Hoang Date: Thu May 9 10:24:27 2019 -0700 mmc: sdhci-iproc: Set NO_HISPD bit to fix HS50 data hold time problem The iproc host eMMC/SD controller hold time does not meet the specification in the HS50 mode. This problem can be mitigated by disabling the HISPD bit; thus forcing the controller output data to be driven on the falling clock edges rather than the rising clock edges. Stable tag (v4.12+) chosen to assist stable kernel maintainers so that the change does not produce merge conflicts backporting to older kernel versions. In reality, the timing bug existed since the driver was first introduced but there is no need for this driver to be supported in kernel versions that old. Cc: stable@vger.kernel.org # v4.12+ Signed-off-by: Trac Hoang Signed-off-by: Scott Branden Acked-by: Adrian Hunter Signed-off-by: Ulf Hansson commit b7dfa695afc40d5396ed84b9f25aa3754de23e39 Author: Trac Hoang Date: Thu May 9 10:24:26 2019 -0700 mmc: sdhci-iproc: cygnus: Set NO_HISPD bit to fix HS50 data hold time problem The iproc host eMMC/SD controller hold time does not meet the specification in the HS50 mode. This problem can be mitigated by disabling the HISPD bit; thus forcing the controller output data to be driven on the falling clock edges rather than the rising clock edges. This change applies only to the Cygnus platform. Stable tag (v4.12+) chosen to assist stable kernel maintainers so that the change does not produce merge conflicts backporting to older kernel versions. In reality, the timing bug existed since the driver was first introduced but there is no need for this driver to be supported in kernel versions that old. Cc: stable@vger.kernel.org # v4.12+ Signed-off-by: Trac Hoang Signed-off-by: Scott Branden Acked-by: Adrian Hunter Signed-off-by: Ulf Hansson commit a1b879eefc2b34cd3f17187ef6fc1cf3960e9518 Author: David Howells Date: Wed May 15 12:09:17 2019 +0100 afs: Fix key leak in afs_release() and afs_evict_inode() Fix afs_release() to go through the cleanup part of the function if FMODE_WRITE is set rather than exiting through vfs_fsync() (which skips the cleanup). The cleanup involves discarding the refs on the key used for file ops and the writeback key record. Also fix afs_evict_inode() to clean up any left over wb keys attached to the inode/vnode when it is removed. Fixes: 5a8132761609 ("afs: Do better accretion of small writes on newly created content") Signed-off-by: David Howells commit fc8670d1f72b746ff3a5fe441f1fca4c4dba0e6f Author: Jonas Karlman Date: Thu Apr 25 03:12:31 2019 -0400 media: rockchip/vpu: Fix/re-order probe-error/remove path media_device_cleanup() and v4l2_m2m_unregister_media_controller() were missing in the probe error path. While at it, re-order calls in the remove path to unregister/cleanup things in the reverse order they were initialized/registered. Signed-off-by: Jonas Karlman Signed-off-by: Boris Brezillon Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit f6d080f73a8fa0ff1cca84ea5bb73aafa9f538d4 Author: Boris Brezillon Date: Thu Apr 25 03:12:30 2019 -0400 media: rockchip/vpu: Initialize mdev->bus_info v4l2-compliance complains that ->bus_info is empty. Signed-off-by: Boris Brezillon Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 2aa314b4f52f644d7995b8e7ddc831e6e0e1851c Author: Boris Brezillon Date: Thu Apr 25 03:12:29 2019 -0400 media: rockchip/vpu: Get vdev from the file arg in vidioc_querycap() This makes the function more generic so it can easily be re-used when adding support for the decoding functionality. Signed-off-by: Boris Brezillon Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 5c5b90f5cbad77dc15d8b5582efdb2e362bcd710 Author: Jonas Karlman Date: Thu Apr 25 03:12:28 2019 -0400 media: rockchip/vpu: Add missing dont_use_autosuspend() calls Those calls are needed to restore a clean PM state when the probe fails or when the driver is unloaded such that future ->probe() calls can initialize runtime PM again. Signed-off-by: Jonas Karlman Signed-off-by: Boris Brezillon Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 76f2db08e000aa226961925459970942fbaf6720 Author: Jonas Karlman Date: Thu Apr 25 03:12:27 2019 -0400 media: rockchip/vpu: Do not request id 0 for our video device Pass -1 to video_register_device() to let the core assign the first free id instead of trying to get id 0. In practice it doesn't make a difference since video_register_device() is not strict about id requests and will anyway pick the first free id starting at the id passed in argument, and passing -1 has the same effect as passing 0. But let's comply with the API doc and pass -1 here. Signed-off-by: Jonas Karlman Signed-off-by: Boris Brezillon Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 2a8d69f6139b605b2e36c80540cb8e8da2d016be Merge: 9ed0985332a6 32345f45379b 8d5d766f0072 Author: Rafael J. Wysocki Date: Wed May 15 11:04:08 2019 +0200 Merge branches 'pm-cpufreq' and 'pm-domains' * pm-cpufreq: cpufreq: Update MAINTAINERS to include schedutil governor cpufreq: Don't find governor for setpolicy drivers in cpufreq_init_policy() cpufreq: Explain the kobject_put() in cpufreq_policy_alloc() cpufreq: Call transition notifier only once for each policy * pm-domains: soc: imx: gpc: Use GENPD_FLAG_RPM_ALWAYS_ON for ERR009619 PM / Domains: Add GENPD_FLAG_RPM_ALWAYS_ON flag commit e3e28670bb28ad52d0d0224e86ec11c3f31ff1ff Merge: 811b4c9eaf7f ca6f998cf9a2 a423bd845c60 2f844b61db82 Author: Rafael J. Wysocki Date: Wed May 15 11:03:16 2019 +0200 Merge branches 'acpi-bus', 'acpi-doc' and 'acpi-pm' * acpi-bus: ACPI: bus: change _ADR representation to 64 bits * acpi-doc: Documentation: ACPI: Direct references are allowed to devices only Documentation: ACPI: Use tabs for graph ASL indentation * acpi-pm: ACPI: PM: Set enable_for_wake for wakeup GPEs during suspend-to-idle commit 2decec48b0fd28ffdbf4cc684bd04e735f0839dd Author: Raphael Gault Date: Tue May 14 17:47:46 2019 -0500 objtool: Fix whitelist documentation typo The directive specified in the documentation to add an exception for a single file in a Makefile was inverted. Signed-off-by: Raphael Gault Signed-off-by: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/522362a1b934ee39d0af0abb231f68e160ecf1a8.1557874043.git.jpoimboe@redhat.com Signed-off-by: Ingo Molnar commit 170417c8c7bb2cbbdd949bf5c443c0c8f24a203b Author: Theodore Ts'o Date: Wed May 15 00:51:19 2019 -0400 ext4: fix block validity checks for journal inodes using indirect blocks Commit 345c0dbf3a30 ("ext4: protect journal inode's blocks using block_validity") failed to add an exception for the journal inode in ext4_check_blockref(), which is the function used by ext4_get_branch() for indirect blocks. This caused attempts to read from the ext3-style journals to fail with: [ 848.968550] EXT4-fs error (device sdb7): ext4_get_branch:171: inode #8: block 30343695: comm jbd2/sdb7-8: invalid block Fix this by adding the missing exception check. Fixes: 345c0dbf3a30 ("ext4: protect journal inode's blocks using block_validity") Reported-by: Arthur Marsh Signed-off-by: Theodore Ts'o commit 5ac94332248ee017964ba368cdda4ce647e3aba7 Merge: 1064d8577381 c191f93454bc Author: Linus Torvalds Date: Tue May 14 20:56:31 2019 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma Pull more rdma updates from Jason Gunthorpe: "This is being sent to get a fix for the gcc 9.1 build warnings, and I've also pulled in some bug fix patches that were posted in the last two weeks. - Avoid the gcc 9.1 warning about overflowing a union member - Fix the wrong callback type for a single response netlink to doit - Bug fixes from more usage of the mlx5 devx interface" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: net/mlx5: Set completion EQs as shared resources IB/mlx5: Verify DEVX general object type correctly RDMA/core: Change system parameters callback from dumpit to doit RDMA: Directly cast the sockaddr union to sockaddr commit f266fdc7609a416c4f9c64f25930958717fa1bd7 Merge: c01ad0fe1d57 c4a52d669690 Author: Dave Airlie Date: Wed May 15 13:29:03 2019 +1000 Merge branch 'linux-5.2' of git://github.com/skeggsb/linux into drm-next Mostly fixes for a number of modesetting-related issues that have been reported, as well as initial support for TU117 modesetting. TU116 also exists these days, but is not officially supported, as I don't have HW yet to verify against. Signed-off-by: Dave Airlie From: Ben Skeggs Link: https://patchwork.freedesktop.org/patch/msgid/CACAvsv77U7_bWYy9CUVGU8zAE0NZcKOLp6kUgppgq9HPd0tBnw@mail.gmail.com commit 1064d857738187c764c0bd76040f424397f857c7 Merge: 35c99ffa20ed def0fdae813d Author: Linus Torvalds Date: Tue May 14 20:08:51 2019 -0700 Merge branch 'akpm' (patches from Andrew) Merge more updates from Andrew Morton: - a couple of hotfixes - almost all of the rest of MM - lib/ updates - binfmt_elf updates - autofs updates - quite a lot of misc fixes and updates - reiserfs, fatfs - signals - exec - cpumask - rapidio - sysctl - pids - eventfd - gcov - panic - pps - gdb script updates - ipc updates * emailed patches from Andrew Morton : (126 commits) mm: memcontrol: fix NUMA round-robin reclaim at intermediate level mm: memcontrol: fix recursive statistics correctness & scalabilty mm: memcontrol: move stat/event counting functions out-of-line mm: memcontrol: make cgroup stats and events query API explicitly local drivers/virt/fsl_hypervisor.c: prevent integer overflow in ioctl drivers/virt/fsl_hypervisor.c: dereferencing error pointers in ioctl mm, memcg: rename ambiguously named memory.stat counters and functions arch: remove and treewide: replace #include with #include fs/block_dev.c: Remove duplicate header fs/cachefiles/namei.c: remove duplicate header include/linux/sched/signal.h: replace `tsk' with `task' fs/coda/psdev.c: remove duplicate header ipc: do cyclic id allocation for the ipc object. ipc: conserve sequence numbers in ipcmni_extend mode ipc: allow boot time extension of IPCMNI from 32k to 16M ipc/mqueue: optimize msg_get() ipc/mqueue: remove redundant wq task assignment ipc: prevent lockup on alloc_msg and free_msg scripts/gdb: print cached rate in lx-clk-summary ... commit def0fdae813dbbbbb588bfc5f52856be2e842b35 Author: Johannes Weiner Date: Tue May 14 15:47:15 2019 -0700 mm: memcontrol: fix NUMA round-robin reclaim at intermediate level When a cgroup is reclaimed on behalf of a configured limit, reclaim needs to round-robin through all NUMA nodes that hold pages of the memcg in question. However, when assembling the mask of candidate NUMA nodes, the code only consults the *local* cgroup LRU counters, not the recursive counters for the entire subtree. Cgroup limits are frequently configured against intermediate cgroups that do not have memory on their own LRUs. In this case, the node mask will always come up empty and reclaim falls back to scanning only the current node. If a cgroup subtree has some memory on one node but the processes are bound to another node afterwards, the limit reclaim will never age or reclaim that memory anymore. To fix this, use the recursive LRU counts for a cgroup subtree to determine which nodes hold memory of that cgroup. The code has been broken like this forever, so it doesn't seem to be a problem in practice. I just noticed it while reviewing the way the LRU counters are used in general. Link: http://lkml.kernel.org/r/20190412151507.2769-5-hannes@cmpxchg.org Signed-off-by: Johannes Weiner Reviewed-by: Shakeel Butt Reviewed-by: Roman Gushchin Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 42a300353577ccc17ecc627b8570a89fa1678bec Author: Johannes Weiner Date: Tue May 14 15:47:12 2019 -0700 mm: memcontrol: fix recursive statistics correctness & scalabilty Right now, when somebody needs to know the recursive memory statistics and events of a cgroup subtree, they need to walk the entire subtree and sum up the counters manually. There are two issues with this: 1. When a cgroup gets deleted, its stats are lost. The state counters should all be 0 at that point, of course, but the events are not. When this happens, the event counters, which are supposed to be monotonic, can go backwards in the parent cgroups. 2. During regular operation, we always have a certain number of lazily freed cgroups sitting around that have been deleted, have no tasks, but have a few cache pages remaining. These groups' statistics do not change until we eventually hit memory pressure, but somebody watching, say, memory.stat on an ancestor has to iterate those every time. This patch addresses both issues by introducing recursive counters at each level that are propagated from the write side when stats change. Upward propagation happens when the per-cpu caches spill over into the local atomic counter. This is the same thing we do during charge and uncharge, except that the latter uses atomic RMWs, which are more expensive; stat changes happen at around the same rate. In a sparse file test (page faults and reclaim at maximum CPU speed) with 5 cgroup nesting levels, perf shows __mod_memcg_page state at ~1%. Link: http://lkml.kernel.org/r/20190412151507.2769-4-hannes@cmpxchg.org Signed-off-by: Johannes Weiner Reviewed-by: Shakeel Butt Reviewed-by: Roman Gushchin Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit db9adbcbe740e0986b575dd56aad834ce9e9b5d3 Author: Johannes Weiner Date: Tue May 14 15:47:09 2019 -0700 mm: memcontrol: move stat/event counting functions out-of-line These are getting too big to be inlined in every callsite. They were stolen from vmstat.c, which already out-of-lines them, and they have only been growing since. The callsites aren't that hot, either. Move __mod_memcg_state() __mod_lruvec_state() and __count_memcg_events() out of line and add kerneldoc comments. Link: http://lkml.kernel.org/r/20190412151507.2769-3-hannes@cmpxchg.org Signed-off-by: Johannes Weiner Reviewed-by: Shakeel Butt Reviewed-by: Roman Gushchin Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 205b20cc5a99cdf197c32f4dbee2b09c699477f0 Author: Johannes Weiner Date: Tue May 14 15:47:06 2019 -0700 mm: memcontrol: make cgroup stats and events query API explicitly local Patch series "mm: memcontrol: memory.stat cost & correctness". The cgroup memory.stat file holds recursive statistics for the entire subtree. The current implementation does this tree walk on-demand whenever the file is read. This is giving us problems in production. 1. The cost of aggregating the statistics on-demand is high. A lot of system service cgroups are mostly idle and their stats don't change between reads, yet we always have to check them. There are also always some lazily-dying cgroups sitting around that are pinned by a handful of remaining page cache; the same applies to them. In an application that periodically monitors memory.stat in our fleet, we have seen the aggregation consume up to 5% CPU time. 2. When cgroups die and disappear from the cgroup tree, so do their accumulated vm events. The result is that the event counters at higher-level cgroups can go backwards and confuse some of our automation, let alone people looking at the graphs over time. To address both issues, this patch series changes the stat implementation to spill counts upwards when the counters change. The upward spilling is batched using the existing per-cpu cache. In a sparse file stress test with 5 level cgroup nesting, the additional cost of the flushing was negligible (a little under 1% of CPU at 100% CPU utilization, compared to the 5% of reading memory.stat during regular operation). This patch (of 4): memcg_page_state(), lruvec_page_state(), memcg_sum_events() are currently returning the state of the local memcg or lruvec, not the recursive state. In practice there is a demand for both versions, although the callers that want the recursive counts currently sum them up by hand. Per default, cgroups are considered recursive entities and generally we expect more users of the recursive counters, with the local counts being special cases. To reflect that in the name, add a _local suffix to the current implementations. The following patch will re-incarnate these functions with recursive semantics, but with an O(1) implementation. [hannes@cmpxchg.org: fix bisection hole] Link: http://lkml.kernel.org/r/20190417160347.GC23013@cmpxchg.org Link: http://lkml.kernel.org/r/20190412151507.2769-2-hannes@cmpxchg.org Signed-off-by: Johannes Weiner Reviewed-by: Shakeel Butt Reviewed-by: Roman Gushchin Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 6a024330650e24556b8a18cc654ad00cfecf6c6c Author: Dan Carpenter Date: Tue May 14 15:47:03 2019 -0700 drivers/virt/fsl_hypervisor.c: prevent integer overflow in ioctl The "param.count" value is a u64 thatcomes from the user. The code later in the function assumes that param.count is at least one and if it's not then it leads to an Oops when we dereference the ZERO_SIZE_PTR. Also the addition can have an integer overflow which would lead us to allocate a smaller "pages" array than required. I can't immediately tell what the possible run times implications are, but it's safest to prevent the overflow. Link: http://lkml.kernel.org/r/20181218082129.GE32567@kadam Fixes: 6db7199407ca ("drivers/virt: introduce Freescale hypervisor management driver") Signed-off-by: Dan Carpenter Reviewed-by: Andrew Morton Cc: Timur Tabi Cc: Mihai Caraman Cc: Kumar Gala Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c8ea3663f7a8e6996d44500ee818c9330ac4fd88 Author: Dan Carpenter Date: Tue May 14 15:47:00 2019 -0700 drivers/virt/fsl_hypervisor.c: dereferencing error pointers in ioctl strndup_user() returns error pointers on error, and then in the error handling we pass the error pointers to kfree(). It will cause an Oops. Link: http://lkml.kernel.org/r/20181218082003.GD32567@kadam Fixes: 6db7199407ca ("drivers/virt: introduce Freescale hypervisor management driver") Signed-off-by: Dan Carpenter Reviewed-by: Andrew Morton Cc: Timur Tabi Cc: Mihai Caraman Cc: Kumar Gala Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 871789d4af807d1e91a6299f12a67e06177ed420 Author: Chris Down Date: Tue May 14 15:46:57 2019 -0700 mm, memcg: rename ambiguously named memory.stat counters and functions I spent literally an hour trying to work out why an earlier version of my memory.events aggregation code doesn't work properly, only to find out I was calling memcg->events instead of memcg->memory_events, which is fairly confusing. This naming seems in need of reworking, so make it harder to do the wrong thing by using vmevents instead of events, which makes it more clear that these are vm counters rather than memcg-specific counters. There are also a few other inconsistent names in both the percpu and aggregated structs, so these are all cleaned up to be more coherent and easy to understand. This commit contains code cleanup only: there are no logic changes. [akpm@linux-foundation.org: fix it for preceding changes] Link: http://lkml.kernel.org/r/20190208224319.GA23801@chrisdown.name Signed-off-by: Chris Down Acked-by: Johannes Weiner Cc: Michal Hocko Cc: Tejun Heo Cc: Roman Gushchin Cc: Dennis Zhou Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b09e89366e1730ac13088706cec0f1335299eefb Author: Masahiro Yamada Date: Tue May 14 15:46:54 2019 -0700 arch: remove and Now that all instances of #include have been replaced with #include , we can remove these. Link: http://lkml.kernel.org/r/1553267665-27228-2-git-send-email-yamada.masahiro@socionext.com Signed-off-by: Masahiro Yamada Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 87dfb311b707cd4c4b666c9af0fa15acbe6eee99 Author: Masahiro Yamada Date: Tue May 14 15:46:51 2019 -0700 treewide: replace #include with #include Since commit dccd2304cc90 ("ARM: 7430/1: sizes.h: move from asm-generic to "), and are just wrappers of . This commit replaces all and to prepare for the removal. Link: http://lkml.kernel.org/r/1553267665-27228-1-git-send-email-yamada.masahiro@socionext.com Signed-off-by: Masahiro Yamada Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3813393f5a24f684fa0a716bdf8875039133c02b Author: Sabyasachi Gupta Date: Tue May 14 15:46:48 2019 -0700 fs/block_dev.c: Remove duplicate header linux/dax.h is included more than once. Link: http://lkml.kernel.org/r/5c867e95.1c69fb81.4f15a.e5e4@mx.google.com Signed-off-by: Sabyasachi Gupta Acked-by: Souptick Joarder Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 081d7d35fb225d7391fcf26387213502d0c697da Author: Sabyasachi Gupta Date: Tue May 14 15:46:45 2019 -0700 fs/cachefiles/namei.c: remove duplicate header linux/xattr.h is included more than once. Link: http://lkml.kernel.org/r/5c86803d.1c69fb81.1a7c6.2b78@mx.google.com Signed-off-by: Sabyasachi Gupta Acked-by: Souptick Joarder Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9e9291c71eb92b457eb798501e210dec3d12e795 Author: Andrei Vagin Date: Tue May 14 15:46:42 2019 -0700 include/linux/sched/signal.h: replace `tsk' with `task' This file uses "task" 85 times and "tsk" 25 times. It is better to be consistent. Link: http://lkml.kernel.org/r/20181129180547.15976-1-avagin@gmail.com Signed-off-by: Andrei Vagin Reviewed-by: Andrew Morton Cc: Oleg Nesterov Cc: "Eric W. Biederman" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 10bcba8c16aa1ebb3e1e6d16c0c8e493a0668a8c Author: Sabyasachi Gupta Date: Tue May 14 15:46:39 2019 -0700 fs/coda/psdev.c: remove duplicate header linux/poll.h is included more than once. Link: http://lkml.kernel.org/r/5c86820f.1c69fb81.149f0.0834@mx.google.com Signed-off-by: Sabyasachi Gupta Acked-by: Souptick Joarder Cc: Jan Harkes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 99db46ea292780cd978d56932d9445b1e8bdafe8 Author: Manfred Spraul Date: Tue May 14 15:46:36 2019 -0700 ipc: do cyclic id allocation for the ipc object. For ipcmni_extend mode, the sequence number space is only 7 bits. So the chance of id reuse is relatively high compared with the non-extended mode. To alleviate this id reuse problem, this patch enables cyclic allocation for the index to the radix tree (idx). The disadvantage is that this can cause a slight slow-down of the fast path, as the radix tree could be higher than necessary. To limit the radix tree height, I have chosen the following limits: 1) The cycling is done over in_use*1.5. 2) At least, the cycling is done over "normal" ipcnmi mode: RADIX_TREE_MAP_SIZE elements "ipcmni_extended": 4096 elements Result: - for normal mode: No change for <= 42 active ipc elements. With more than 42 active ipc elements, a 2nd level would be added to the radix tree. Without cyclic allocation, a 2nd level would be added only with more than 63 active elements. - for extended mode: Cycling creates always at least a 2-level radix tree. With more than 2730 active objects, a 3rd level would be added, instead of > 4095 active objects until the 3rd level is added without cyclic allocation. For a 2-level radix tree compared to a 1-level radix tree, I have observed < 1% performance impact. Notes: 1) Normal "x=semget();y=semget();" is unaffected: Then the idx is e.g. a and a+1, regardless if idr_alloc() or idr_alloc_cyclic() is used. 2) The -1% happens in a microbenchmark after this situation: x=semget(); for(i=0;i<4000;i++) {t=semget();semctl(t,0,IPC_RMID);} y=semget(); Now perform semget calls on x and y that do not sleep. 3) The worst-case reuse cycle time is unfortunately unaffected: If you have 2^24-1 ipc objects allocated, and get/remove the last possible element in a loop, then the id is reused after 128 get/remove pairs. Performance check: A microbenchmark that performes no-op semop() randomly on two IDs, with only these two IDs allocated. The IDs were set using /proc/sys/kernel/sem_next_id. The test was run 5 times, averages are shown. 1 & 2: Base (6.22 seconds for 10.000.000 semops) 1 & 40: -0.2% 1 & 3348: - 0.8% 1 & 27348: - 1.6% 1 & 15777204: - 3.2% Or: ~12.6 cpu cycles per additional radix tree level. The cpu is an Intel I3-5010U. ~1300 cpu cycles/syscall is slower than what I remember (spectre impact?). V2 of the patch: - use "min" and "max" - use RADIX_TREE_MAP_SIZE * RADIX_TREE_MAP_SIZE instead of (2<<12). [akpm@linux-foundation.org: fix max() warning] Link: http://lkml.kernel.org/r/20190329204930.21620-3-longman@redhat.com Signed-off-by: Manfred Spraul Acked-by: Waiman Long Cc: "Luis R. Rodriguez" Cc: Kees Cook Cc: Jonathan Corbet Cc: Al Viro Cc: Matthew Wilcox Cc: "Eric W . Biederman" Cc: Takashi Iwai Cc: Davidlohr Bueso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3278a2c20cb302d27e6f6ee45a3f57361176e426 Author: Manfred Spraul Date: Tue May 14 15:46:33 2019 -0700 ipc: conserve sequence numbers in ipcmni_extend mode Rewrite, based on the patch from Waiman Long: The mixing in of a sequence number into the IPC IDs is probably to avoid ID reuse in userspace as much as possible. With ipcmni_extend mode, the number of usable sequence numbers is greatly reduced leading to higher chance of ID reuse. To address this issue, we need to conserve the sequence number space as much as possible. Right now, the sequence number is incremented for every new ID created. In reality, we only need to increment the sequence number when new allocated ID is not greater than the last one allocated. It is in such case that the new ID may collide with an existing one. This is being done irrespective of the ipcmni mode. In order to avoid any races, the index is first allocated and then the pointer is replaced. Changes compared to the initial patch: - Handle failures from idr_alloc(). - Avoid that concurrent operations can see the wrong sequence number. (This is achieved by using idr_replace()). - IPCMNI_SEQ_SHIFT is not a constant, thus renamed to ipcmni_seq_shift(). - IPCMNI_SEQ_MAX is not a constant, thus renamed to ipcmni_seq_max(). Link: http://lkml.kernel.org/r/20190329204930.21620-2-longman@redhat.com Signed-off-by: Manfred Spraul Signed-off-by: Waiman Long Suggested-by: Matthew Wilcox Acked-by: Waiman Long Cc: Al Viro Cc: Davidlohr Bueso Cc: "Eric W . Biederman" Cc: Jonathan Corbet Cc: Kees Cook Cc: "Luis R. Rodriguez" Cc: Takashi Iwai Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5ac893b8cb10fe2a47a77780d37f9bf5b142854b Author: Waiman Long Date: Tue May 14 15:46:29 2019 -0700 ipc: allow boot time extension of IPCMNI from 32k to 16M The maximum number of unique System V IPC identifiers was limited to 32k. That limit should be big enough for most use cases. However, there are some users out there requesting for more, especially those that are migrating from Solaris which uses 24 bits for unique identifiers. To satisfy the need of those users, a new boot time kernel option "ipcmni_extend" is added to extend the IPCMNI value to 16M. This is a 512X increase which should be big enough for users out there that need a large number of unique IPC identifier. The use of this new option will change the pattern of the IPC identifiers returned by functions like shmget(2). An application that depends on such pattern may not work properly. So it should only be used if the users really need more than 32k of unique IPC numbers. This new option does have the side effect of reducing the maximum number of unique sequence numbers from 64k down to 128. So it is a trade-off. The computation of a new IPC id is not done in the performance critical path. So a little bit of additional overhead shouldn't have any real performance impact. Link: http://lkml.kernel.org/r/20190329204930.21620-1-longman@redhat.com Signed-off-by: Waiman Long Acked-by: Manfred Spraul Cc: Al Viro Cc: Davidlohr Bueso Cc: "Eric W . Biederman" Cc: Jonathan Corbet Cc: Kees Cook Cc: "Luis R. Rodriguez" Cc: Matthew Wilcox Cc: Takashi Iwai Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a5091fda4e3c202aeb1728a86d0fcd20fd0f4f5e Author: Davidlohr Bueso Date: Tue May 14 15:46:26 2019 -0700 ipc/mqueue: optimize msg_get() Our msg priorities became an rbtree as of d6629859b36d ("ipc/mqueue: improve performance of send/recv"). However, consuming a msg in msg_get() remains logarithmic (still being better than the case before of course). By applying well known techniques to cache pointers we can have the node with the highest priority in O(1), which is specially nice for the rt cases. Furthermore, some callers can call msg_get() in a loop. A new msg_tree_erase() helper is also added to encapsulate the tree removal and node_cache game. Passes ltp mq testcases. Link: http://lkml.kernel.org/r/20190321190216.1719-2-dave@stgolabs.net Signed-off-by: Davidlohr Bueso Cc: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 0ecb58210bd9de14df62a614be07428ef10f9469 Author: Davidlohr Bueso Date: Tue May 14 15:46:23 2019 -0700 ipc/mqueue: remove redundant wq task assignment We already store the current task fo the new waiter before calling wq_sleep() in both send and recv paths. Trivially remove the redundant assignment. Link: http://lkml.kernel.org/r/20190321190216.1719-1-dave@stgolabs.net Signed-off-by: Davidlohr Bueso Cc: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d6a2946a88f524a47cc9b79279667137899db807 Author: Li Rongqing Date: Tue May 14 15:46:20 2019 -0700 ipc: prevent lockup on alloc_msg and free_msg msgctl10 of ltp triggers the following lockup When CONFIG_KASAN is enabled on large memory SMP systems, the pages initialization can take a long time, if msgctl10 requests a huge block memory, and it will block rcu scheduler, so release cpu actively. After adding schedule() in free_msg, free_msg can not be called when holding spinlock, so adding msg to a tmp list, and free it out of spinlock rcu: INFO: rcu_preempt detected stalls on CPUs/tasks: rcu: Tasks blocked on level-1 rcu_node (CPUs 16-31): P32505 rcu: Tasks blocked on level-1 rcu_node (CPUs 48-63): P34978 rcu: (detected by 11, t=35024 jiffies, g=44237529, q=16542267) msgctl10 R running task 21608 32505 2794 0x00000082 Call Trace: preempt_schedule_irq+0x4c/0xb0 retint_kernel+0x1b/0x2d RIP: 0010:__is_insn_slot_addr+0xfb/0x250 Code: 82 1d 00 48 8b 9b 90 00 00 00 4c 89 f7 49 c1 ee 03 e8 59 83 1d 00 48 b8 00 00 00 00 00 fc ff df 4c 39 eb 48 89 9d 58 ff ff ff <41> c6 04 06 f8 74 66 4c 8d 75 98 4c 89 f1 48 c1 e9 03 48 01 c8 48 RSP: 0018:ffff88bce041f758 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff13 RAX: dffffc0000000000 RBX: ffffffff8471bc50 RCX: ffffffff828a2a57 RDX: dffffc0000000000 RSI: dffffc0000000000 RDI: ffff88bce041f780 RBP: ffff88bce041f828 R08: ffffed15f3f4c5b3 R09: ffffed15f3f4c5b3 R10: 0000000000000001 R11: ffffed15f3f4c5b2 R12: 000000318aee9b73 R13: ffffffff8471bc50 R14: 1ffff1179c083ef0 R15: 1ffff1179c083eec kernel_text_address+0xc1/0x100 __kernel_text_address+0xe/0x30 unwind_get_return_address+0x2f/0x50 __save_stack_trace+0x92/0x100 create_object+0x380/0x650 __kmalloc+0x14c/0x2b0 load_msg+0x38/0x1a0 do_msgsnd+0x19e/0xcf0 do_syscall_64+0x117/0x400 entry_SYSCALL_64_after_hwframe+0x49/0xbe rcu: INFO: rcu_preempt detected stalls on CPUs/tasks: rcu: Tasks blocked on level-1 rcu_node (CPUs 0-15): P32170 rcu: (detected by 14, t=35016 jiffies, g=44237525, q=12423063) msgctl10 R running task 21608 32170 32155 0x00000082 Call Trace: preempt_schedule_irq+0x4c/0xb0 retint_kernel+0x1b/0x2d RIP: 0010:lock_acquire+0x4d/0x340 Code: 48 81 ec c0 00 00 00 45 89 c6 4d 89 cf 48 8d 6c 24 20 48 89 3c 24 48 8d bb e4 0c 00 00 89 74 24 0c 48 c7 44 24 20 b3 8a b5 41 <48> c1 ed 03 48 c7 44 24 28 b4 25 18 84 48 c7 44 24 30 d0 54 7a 82 RSP: 0018:ffff88af83417738 EFLAGS: 00000282 ORIG_RAX: ffffffffffffff13 RAX: dffffc0000000000 RBX: ffff88bd335f3080 RCX: 0000000000000002 RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff88bd335f3d64 RBP: ffff88af83417758 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000001 R11: ffffed13f3f745b2 R12: 0000000000000000 R13: 0000000000000002 R14: 0000000000000000 R15: 0000000000000000 is_bpf_text_address+0x32/0xe0 kernel_text_address+0xec/0x100 __kernel_text_address+0xe/0x30 unwind_get_return_address+0x2f/0x50 __save_stack_trace+0x92/0x100 save_stack+0x32/0xb0 __kasan_slab_free+0x130/0x180 kfree+0xfa/0x2d0 free_msg+0x24/0x50 do_msgrcv+0x508/0xe60 do_syscall_64+0x117/0x400 entry_SYSCALL_64_after_hwframe+0x49/0xbe Davidlohr said: "So after releasing the lock, the msg rbtree/list is empty and new calls will not see those in the newly populated tmp_msg list, and therefore they cannot access the delayed msg freeing pointers, which is good. Also the fact that the node_cache is now freed before the actual messages seems to be harmless as this is wanted for msg_insert() avoiding GFP_ATOMIC allocations, and after releasing the info->lock the thing is freed anyway so it should not change things" Link: http://lkml.kernel.org/r/1552029161-4957-1-git-send-email-lirongqing@baidu.com Signed-off-by: Li RongQing Signed-off-by: Zhang Yu Reviewed-by: Davidlohr Bueso Cc: Manfred Spraul Cc: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e7e6f462c1bee842b857b57826e47e4234728727 Author: Leonard Crestez Date: Tue May 14 15:46:17 2019 -0700 scripts/gdb: print cached rate in lx-clk-summary The clk rate is always stored in clk_core but might be out of date and require calls to update from hardware. Deal with that case by printing a (c) suffix. Link: http://lkml.kernel.org/r/1a474318982a5f0125f2360c4161029b17f56bd1.1556881728.git.leonard.crestez@nxp.com Signed-off-by: Leonard Crestez Cc: Jan Kiszka Cc: Jason Wessel Cc: Kieran Bingham Cc: Stephen Boyd Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 66d5c7c60acfeb21d80ff03a349e3b6600caa117 Author: Leonard Crestez Date: Tue May 14 15:46:14 2019 -0700 scripts/gdb: clean up error handling in list helpers An incorrect argument to list_for_each is an internal error in gdb scripts so a TypeError should be raised. The gdb.GdbError exception type is intended for user errors such as incorrect invocation. Drop the type assertion in list_for_each_entry because list_for_each isn't going to suddenly yield something else. Applies to both list and hlist Link: http://lkml.kernel.org/r/c1d3fd4db13d999a3ba57f5bbc1924862d824f61.1556881728.git.leonard.crestez@nxp.com Signed-off-by: Leonard Crestez Reviewed-by: Stephen Boyd Cc: Jan Kiszka Cc: Jason Wessel Cc: Kieran Bingham Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 988b2686159759401a4549d0fc30ff9a8758391a Author: Leonard Crestez Date: Tue May 14 15:46:11 2019 -0700 scripts/gdb: add $lx_clk_core_lookup function Finding an individual clk_core requires walking the tree which can be quite complicated so add a helper for easy access. (gdb) print *(struct clk_scu*)$lx_clk_core_lookup("uart0_clk")->hw Link: http://lkml.kernel.org/r/Message-ID: Signed-off-by: Leonard Crestez Cc: Jan Kiszka Cc: Jason Wessel Cc: Kieran Bingham Cc: Stephen Boyd Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d1e9710b63d87209e1a14d6e6d8cf1431d8daa31 Author: Leonard Crestez Date: Tue May 14 15:46:08 2019 -0700 scripts/gdb: initial clk support: lx-clk-summary Add an lx-clk-summary command which prints a subset of /sys/kernel/debug/clk/clk_summary. This can be used to examine hangs caused by clk not being enabled. Link: http://lkml.kernel.org/r/Message-ID: Signed-off-by: Leonard Crestez Cc: Jan Kiszka Cc: Jason Wessel Cc: Kieran Bingham Cc: Stephen Boyd Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 47d0d12855c9eee9dac72d2359f2ccfac3f7f501 Author: Leonard Crestez Date: Tue May 14 15:46:05 2019 -0700 scripts/gdb: add hlist utilities This allows easily examining kernel hlists in python. Link: http://lkml.kernel.org/r/Message-ID: Signed-off-by: Leonard Crestez Reviewed-by: Stephen Boyd Cc: Jason Wessel Cc: Jan Kiszka Cc: Kieran Bingham Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 494dbe02b6df0bd98f7353c21e0b9849a25d2dce Author: Stephen Boyd Date: Tue May 14 15:46:02 2019 -0700 scripts/gdb: silence pep8 checks These scripts have some pep8 style warnings. Fix them up so that this directory is all pep8 clean. Link: http://lkml.kernel.org/r/20190329220844.38234-6-swboyd@chromium.org Signed-off-by: Stephen Boyd Cc: Douglas Anderson Cc: Nikolay Borisov Cc: Kieran Bingham Cc: Jan Kiszka Cc: Jackie Liu Cc: Jason Wessel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 442284a89a65965b044df00345c193fcc3c53ad2 Author: Stephen Boyd Date: Tue May 14 15:45:59 2019 -0700 scripts/gdb: add a timer list command Implement a command to print the timer list, much like how /proc/timer_list is implemented. This can be used to look at the pending timers on a crashed system. [swboyd@chromium.org: v2] Link: http://lkml.kernel.org/r/20190329220844.38234-5-swboyd@chromium.org Link: http://lkml.kernel.org/r/20190325184522.260535-5-swboyd@chromium.org Signed-off-by: Stephen Boyd Cc: Douglas Anderson Cc: Nikolay Borisov Cc: Kieran Bingham Cc: Jan Kiszka Cc: Jackie Liu Cc: Jason Wessel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 449ca0c95ea261f27b7efd4ca3970a5b4e0fd30d Author: Stephen Boyd Date: Tue May 14 15:45:56 2019 -0700 scripts/gdb: add rb tree iterating utilities Implement gdb functions for rb_first(), rb_last(), rb_next(), and rb_prev(). These can be useful to iterate through the kernel's red-black trees. [swboyd@chromium.org: v2] Link: http://lkml.kernel.org/r/20190329220844.38234-4-swboyd@chromium.org Link: http://lkml.kernel.org/r/20190325184522.260535-4-swboyd@chromium.org Signed-off-by: Stephen Boyd Cc: Douglas Anderson Cc: Nikolay Borisov Cc: Kieran Bingham Cc: Jan Kiszka Cc: Jackie Liu Cc: Jason Wessel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 90cf83dbd2f08dd0513cd9f19155878c55acb445 Author: Stephen Boyd Date: Tue May 14 15:45:53 2019 -0700 scripts/gdb: add kernel config dumping command lx-configdump dumps the contents of the gzipped .config to a text file when the config is included in the kernel with CONFIG_IKCONFIG. By default, the file written is called config.txt, but it can be any user supplied filename as well. If the kernel config is in a module (configs.ko), then it can be loaded along with symbols for the module loaded with 'lx-symbols' and then this command will still work. Obviously if you have the whole vmlinux then this can also be achieved with scripts/extract-ikconfig, but this gdb script can be useful to confirm that the memory contents of the config in memory and the vmlinux contents on disk match what is expected. [swboyd@chromium.org: v2] Link: http://lkml.kernel.org/r/20190329220844.38234-3-swboyd@chromium.org Link: http://lkml.kernel.org/r/20190325184522.260535-3-swboyd@chromium.org Signed-off-by: Stephen Boyd Cc: Douglas Anderson Cc: Nikolay Borisov Cc: Kieran Bingham Cc: Jan Kiszka Cc: Jackie Liu Cc: Jason Wessel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit dfe4529ee4d39d89f4725fa2599aa9bfa27e5847 Author: Stephen Boyd Date: Tue May 14 15:45:49 2019 -0700 scripts/gdb: find vmlinux where it was before Patch series "gdb script for kconfig and timer list". This is a handful of changes to the kernel's gdb scripts to do some more debugging with kgdb. The first patch allows the vmlinux to be reloaded from where it was specified on the command line so that this set of scripts can be used from anywhere. The second patch adds a script to dump the config.gz to a file on the host debugging machine. The third patch adds some rb tree utilities and the last patch uses those rb tree walking utilities to dump out the contents of /proc/timer_list from a system under debug. This patch (of 5): If I run 'gdb ' and there's the vmlinux-gdb.py file there I can properly see symbols and use the lx commands provided by the GDB scripts. But once I run 'lx-symbols' at the command prompt, gdb reloads the vmlinux symbols assuming that this script was run from the directory that has vmlinux at the root. That isn't always true, but we could just look and see what symbols were already loaded and use that instead. Let's do that so this can work by being invoked anywhere. Link: http://lkml.kernel.org/r/20190325184522.260535-2-swboyd@chromium.org Signed-off-by: Stephen Boyd Cc: Douglas Anderson Cc: Nikolay Borisov Cc: Kieran Bingham Cc: Jan Kiszka Cc: Jackie Liu Cc: Jason Wessel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4c69add45fec995ce23b21dc90be20f1efd8cdad Author: Tom Burkart Date: Tue May 14 15:45:46 2019 -0700 pps: pps-gpio PPS ECHO implementation This patch implements the PPS ECHO functionality for pps-gpio, that sysfs claims is available already. Configuration is done via device tree bindings. No changes are made to userspace interfaces. This patch was originally written by Lukas Senger as part of a masters thesis project and modified for inclusion into the linux kernel by Tom Burkart. Link: http://lkml.kernel.org/r/20190324043305.6627-4-tom@aussec.com Signed-off-by: Tom Burkart Acked-by: Rodolfo Giometti Signed-off-by: Lukas Senger Cc: Philipp Zabel Cc: Rob Herring Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 652e22185a4414143a1d17975bd9ef0b12ea7b37 Author: Tom Burkart Date: Tue May 14 15:45:43 2019 -0700 dt-bindings: pps: pps-gpio PPS ECHO implementation This patch implements the device tree binding changes required for the PPS ECHO functionality for pps-gpio, that sysfs claims is available already. It adds two DT properties for configuring the PPS ECHO functionality. This patch is provided separated from the rest of the patch per Documentation/devicetree/bindings/submitting-patches.txt. This patch was originally written by Lukas Senger as part of a masters thesis project and modified for inclusion into the linux kernel by Tom Burkart. Link: http://lkml.kernel.org/r/20190324043305.6627-3-tom@aussec.com Signed-off-by: Tom Burkart Signed-off-by: Lukas Senger Acked-by: Rodolfo Giometti Reviewed-by: Rob Herring Cc: Philipp Zabel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4461d65176b408d6d7adefa41a95472a18a90a53 Author: Tom Burkart Date: Tue May 14 15:45:40 2019 -0700 pps: descriptor-based gpio This patch changes the GPIO access for the pps-gpio driver from the integer based API to the descriptor based API. The integer based API is considered deprecated and the descriptor based API is the preferred way to access GPIOs as per Documentation/driver-api/gpio/intro.rst No changes are made to userspace interfaces. Link: http://lkml.kernel.org/r/20190324043305.6627-2-tom@aussec.com Signed-off-by: Tom Burkart Acked-by: Rodolfo Giometti Reviewed-by: Philipp Zabel Cc: Lukas Senger Cc: Rob Herring Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b287a25a7148a89d977c819c1f7d6584f875b682 Author: Aaro Koskinen Date: Tue May 14 15:45:37 2019 -0700 panic/reboot: allow specifying reboot_mode for panic only Allow specifying reboot_mode for panic only. This is needed on systems where ramoops is used to store panic logs, and user wants to use warm reset to preserve those, while still having cold reset on normal reboots. Link: http://lkml.kernel.org/r/20190322004735.27702-1-aaro.koskinen@iki.fi Signed-off-by: Aaro Koskinen Reviewed-by: Kees Cook Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c39ea0b9dd24bf1bf2baa5cdbfa1905f3065347b Author: Feng Tang Date: Tue May 14 15:45:34 2019 -0700 panic: avoid the extra noise dmesg When kernel panic happens, it will first print the panic call stack, then the ending msg like: [ 35.743249] ---[ end Kernel panic - not syncing: Fatal exception [ 35.749975] ------------[ cut here ]------------ The above message are very useful for debugging. But if system is configured to not reboot on panic, say the "panic_timeout" parameter equals 0, it will likely print out many noisy message like WARN() call stack for each and every CPU except the panic one, messages like below: WARNING: CPU: 1 PID: 280 at kernel/sched/core.c:1198 set_task_cpu+0x183/0x190 Call Trace: try_to_wake_up default_wake_function autoremove_wake_function __wake_up_common __wake_up_common_lock __wake_up wake_up_klogd_work_func irq_work_run_list irq_work_tick update_process_times tick_sched_timer __hrtimer_run_queues hrtimer_interrupt smp_apic_timer_interrupt apic_timer_interrupt For people working in console mode, the screen will first show the panic call stack, but immediately overridden by these noisy extra messages, which makes debugging much more difficult, as the original context gets lost on screen. Also these noisy messages will confuse some users, as I have seen many bug reporters posted the noisy message into bugzilla, instead of the real panic call stack and context. Adding a flag "suppress_printk" which gets set in panic() to avoid those noisy messages, without changing current kernel behavior that both panic blinking and sysrq magic key can work as is, suggested by Petr Mladek. To verify this, make sure kernel is not configured to reboot on panic and in console # echo c > /proc/sysrq-trigger to see if console only prints out the panic call stack. Link: http://lkml.kernel.org/r/1551430186-24169-1-git-send-email-feng.tang@intel.com Signed-off-by: Feng Tang Suggested-by: Petr Mladek Reviewed-by: Petr Mladek Acked-by: Steven Rostedt (VMware) Acked-by: Sergey Senozhatsky Cc: Thomas Gleixner Cc: Kees Cook Cc: Borislav Petkov Cc: Andi Kleen Cc: Peter Zijlstra Cc: Greg Kroah-Hartman Cc: Jiri Slaby Cc: Sasha Levin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e178a5beb36960902379040ee0b667fb0a8eee93 Author: Greg Hackmann Date: Tue May 14 15:45:31 2019 -0700 gcov: clang support LLVM uses profiling data that's deliberately similar to GCC, but has a very different way of exporting that data. LLVM calls llvm_gcov_init() once per module, and provides a couple of callbacks that we can use to ask for more data. We care about the "writeout" callback, which in turn calls back into compiler-rt/this module to dump all the gathered coverage data to disk: llvm_gcda_start_file() llvm_gcda_emit_function() llvm_gcda_emit_arcs() llvm_gcda_emit_function() llvm_gcda_emit_arcs() [... repeats for each function ...] llvm_gcda_summary_info() llvm_gcda_end_file() This design is much more stateless and unstructured than gcc's, and is intended to run at process exit. This forces us to keep some local state about which module we're dealing with at the moment. On the other hand, it also means we don't depend as much on how LLVM represents profiling data internally. See LLVM's lib/Transforms/Instrumentation/GCOVProfiling.cpp for more details on how this works, particularly GCOVProfiler::emitProfileArcs(), GCOVProfiler::insertCounterWriteout(), and GCOVProfiler::insertFlush(). [akpm@linux-foundation.org: coding-style fixes] Link: http://lkml.kernel.org/r/20190417225328.208129-1-trong@android.com Signed-off-by: Greg Hackmann Signed-off-by: Nick Desaulniers Signed-off-by: Tri Vo Co-developed-by: Nick Desaulniers Co-developed-by: Tri Vo Tested-by: Trilok Soni Tested-by: Prasad Sodagudi Tested-by: Tri Vo Tested-by: Daniel Mentz Tested-by: Petri Gynther Reviewed-by: Peter Oberparleiter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit aa069a23a220e9ab00d6837b76917952d0fb587e Author: Tri Vo Date: Tue May 14 15:45:28 2019 -0700 gcov: docs: add a note on GCC vs Clang differences Document some things of note to gcov users: 1. GCC gcov and Clang llvm-cov tools are not compatible. 2. The use of GCC vs Clang is transparent at build-time. Also adjust the documentation to account for the removal of config symbol CONFIG_GCOV_FORMAT_AUTODETECT by commit 6a61b70b43c9 ("gcov: remove CONFIG_GCOV_FORMAT_AUTODETECT"). Link: http://lkml.kernel.org/r/20190318025411.98014-4-trong@android.com Signed-off-by: Tri Vo Reviewed-by: Peter Oberparleiter Cc: Daniel Mentz Cc: Greg Hackmann Cc: Nick Desaulniers Cc: Petri Gynther Cc: Prasad Sodagudi Cc: Trilok Soni Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 826eba0d77bc74c4d1c611374b76abfe251e8538 Author: Greg Hackmann Date: Tue May 14 15:45:25 2019 -0700 gcov: clang: move common GCC code into gcc_base.c Patch series "gcov: add Clang support", v4. This patch (of 3): base.c contains a few callbacks specific to GCC's gcov implementation. Move these into their own module in preparation for Clang support. Link: http://lkml.kernel.org/r/20190318025411.98014-2-trong@android.com Signed-off-by: Greg Hackmann Signed-off-by: Nick Desaulniers Signed-off-by: Tri Vo Tested-by: Trilok Soni Tested-by: Prasad Sodagudi Tested-by: Tri Vo Reviewed-by: Peter Oberparleiter Cc: Daniel Mentz Cc: Petri Gynther Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ce528c4c20f94b48781a9bb9e32435d2b9782995 Author: YueHaibing Date: Tue May 14 15:45:22 2019 -0700 fs/eventfd.c: make eventfd_ida static Fix sparse warning: fs/eventfd.c:26:1: warning: symbol 'eventfd_ida' was not declared. Should it be static? Link: http://lkml.kernel.org/r/20190413142348.34716-1-yuehaibing@huawei.com Signed-off-by: YueHaibing Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b556db17b0e7c439bb6113b6dc7185bd0b1bbbb4 Author: Masatake YAMATO Date: Tue May 14 15:45:19 2019 -0700 eventfd: present id to userspace via fdinfo Finding endpoints of an IPC channel is one of essential task to understand how a user program works. Procfs and netlink socket provide enough hints to find endpoints for IPC channels like pipes, unix sockets, and pseudo terminals. However, there is no simple way to find endpoints for an eventfd file from userland. An inode number doesn't hint. Unlike pipe, all eventfd files share the same inode object. To provide the way to find endpoints of an eventfd file, this patch adds "eventfd-id" field to /proc/PID/fdinfo of eventfd as identifier. Integers managed by an IDA are used as ids. A tool like lsof can utilize the information to print endpoints. Link: http://lkml.kernel.org/r/20190327181823.20222-1-yamato@redhat.com Signed-off-by: Masatake YAMATO Cc: Al Viro Cc: Kees Cook Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1fd402df4586bcc239298081449ce58a78211626 Author: Timmy Li Date: Tue May 14 15:45:16 2019 -0700 kernel/pid.c: remove unneeded hash header file Hash functions are not needed since idr is used now. Let's remove hash header file for cleanup. Link: http://lkml.kernel.org/r/20190430053319.95913-1-scuttimmy@gmail.com Signed-off-by: Timmy Li Cc: "Eric W. Biederman" Cc: Michal Hocko Cc: Matthew Wilcox Cc: Oleg Nesterov Cc: Mike Rapoport Cc: KJ Tsanaktsidis Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3116ad38f51c98c81175151bd7358858a92a6031 Author: Eric Sandeen Date: Tue May 14 15:45:13 2019 -0700 kernel/sysctl.c: fix proc_do_large_bitmap for large input buffers Today, proc_do_large_bitmap() truncates a large write input buffer to PAGE_SIZE - 1, which may result in misparsed numbers at the (truncated) end of the buffer. Further, it fails to notify the caller that the buffer was truncated, so it doesn't get called iteratively to finish the entire input buffer. Tell the caller if there's more work to do by adding the skipped amount back to left/*lenp before returning. To fix the misparsing, reset the position if we have completely consumed a truncated buffer (or if just one char is left, which may be a "-" in a range), and ask the caller to come back for more. Link: http://lkml.kernel.org/r/20190320222831.8243-7-mcgrof@kernel.org Signed-off-by: Eric Sandeen Signed-off-by: Luis Chamberlain Acked-by: Kees Cook Cc: Eric Sandeen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2ea622b887e74497ce5aac5bfe247502b5786f56 Author: Eric Sandeen Date: Tue May 14 15:45:10 2019 -0700 tools/testing/selftests/sysctl/sysctl.sh: add proc_do_large_bitmap() test case The kernel has only two users of proc_do_large_bitmap(), the kernel CPU watchdog, and the ip_local_reserved_ports. Refer to watchdog_cpumask and ip_local_reserved_ports in Documentation for further details on these. When you input a large buffer into these, when it is larger than PAGE_SIZE- 1, the input data gets misparsed, and the user get incorrectly informed that the desired input value was set. This commit implements a test which mimics and exploits that use case, it uses a bitmap size, as in the watchdog case. The bitmap is used to test the bitmap proc handler, proc_do_large_bitmap(). The next commit fixes this issue. [akpm@linux-foundation.org: move proc_do_large_bitmap() export to EOF] [mcgrof@kernel.org: use new target description for backward compatibility] [mcgrof@kernel.org: augment test number to 50, ran into issues with bash string comparisons when testing up to 50 cases.] [mcgrof@kernel.org: introduce and use verify_diff_proc_file() to use diff] [mcgrof@kernel.org: use mktemp for tmp file] [mcgrof@kernel.org: merge shell test and C code] [mcgrof@kernel.org: commit log love] [mcgrof@kernel.org: export proc_do_large_bitmap() to allow for the test [mcgrof@kernel.org: check for the return value when writing to the proc file] Link: http://lkml.kernel.org/r/20190320222831.8243-6-mcgrof@kernel.org Signed-off-by: Eric Sandeen Signed-off-by: Luis Chamberlain Acked-by: Kees Cook Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a0edef79685c508fde517e6defac23b3ba60c422 Author: Luis Chamberlain Date: Tue May 14 15:45:07 2019 -0700 tools/testing/selftests/sysctl/sysctl.sh: allow graceful use on older kernels On old kernels older new test knobs implemented on the test_sysctl module may not be available. This is expected, and the selftests test scripts should be able to run without failures on older kernels. Generalize a solution so that we test for each required test target file for each test by requiring each test description to annotate their respective test target file. If the target file does not exist, we skip the test gracefully. Link: http://lkml.kernel.org/r/20190320222831.8243-5-mcgrof@kernel.org Signed-off-by: Luis Chamberlain Acked-by: Kees Cook Cc: Eric Sandeen Cc: Eric Sandeen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8ded3d1026b26240eaa285b98b7942d27f657355 Author: Luis Chamberlain Date: Tue May 14 15:45:04 2019 -0700 tools/testing/selftests/sysctl/sysctl.sh: ignore diff output on verify_diff_w() When verify_diff_w() is used we care about the result, not the verbose output, and although we use -q, that still gives us a chatty message about if the files differ or not. Since verify_diff_w() uses stdinput the chatty message says whether or not "-" matches the target file, and this just seems rather odd. Better to just ignore that messsage all together, what we really care about i sthe results, the return value and we check for that. Link: http://lkml.kernel.org/r/20190320222831.8243-4-mcgrof@kernel.org Signed-off-by: Luis Chamberlain Acked-by: Kees Cook Cc: Eric Sandeen Cc: Eric Sandeen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5a12928ea8cf945ae66a115f1ad5c21c234285a8 Author: Luis Chamberlain Date: Tue May 14 15:45:01 2019 -0700 tools/testing/selftests/sysctl/sysctl.sh: load module before testing for it Currently the test script checks for the existence of the sysctl test module's directory path prior to loading it. We must first try to load the module prior to checking for that path. This fixes the order for the load / test. Link: http://lkml.kernel.org/r/20190320222831.8243-3-mcgrof@kernel.org Signed-off-by: Luis Chamberlain Acked-by: Kees Cook Cc: Eric Sandeen Cc: Eric Sandeen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9f66849fffc25fe856952884b6d8c77c5afee19f Author: Luis Chamberlain Date: Tue May 14 15:44:58 2019 -0700 tools/testing/selftests/sysctl/sysctl.sh: remove superfluous test_reqs() Patch series "sysctl: add pending proc_do_large_bitmap fix". Eric sent a fix out for proc_do_large_bitmap() last month for when using a large input buffer. After patch review a test case for the issue was built and submitted. I noticed there were a few issues with the tests, but instead of just asking Eric to address them I've taken care of them and ammended the commit where necessary. There's a few issues he reported which I also address and fix in this series. Since we *do* expect users of these scripts to also use them on older kernels, I've also addressed not breaking calling the script for them, and gives us an easy way to easily extend our tests cases for future kernels as well. Before anyone considers these for stable as minor fixes, I'd recommend we also address the discrepancy on the read side of things: modify the test script to use diff against the target file instead of using the temp file. This patch (of 6): We already call test_reqs(), no need to call it twice. Link: http://lkml.kernel.org/r/20190320222831.8243-2-mcgrof@kernel.org Signed-off-by: Luis Chamberlain Acked-by: Kees Cook Cc: Eric Sandeen Cc: Eric Sandeen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e260ad01f0aa9e96b5386d5cd7184afd949dc457 Author: Christian Brauner Date: Tue May 14 15:44:55 2019 -0700 sysctl: return -EINVAL if val violates minmax Currently when userspace gives us a values that overflow e.g. file-max and other callers of __do_proc_doulongvec_minmax() we simply ignore the new value and leave the current value untouched. This can be problematic as it gives the illusion that the limit has indeed be bumped when in fact it failed. This commit makes sure to return EINVAL when an overflow is detected. Please note that this is a userspace facing change. Link: http://lkml.kernel.org/r/20190210203943.8227-4-christian@brauner.io Signed-off-by: Christian Brauner Acked-by: Luis Chamberlain Cc: Kees Cook Cc: Alexey Dobriyan Cc: Al Viro Cc: Dominik Brodowski Cc: "Eric W. Biederman" Cc: Joe Lawrence Cc: Waiman Long Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 475dae385497dde3f25271ce77b526a1e54a472a Author: Andy Shevchenko Date: Tue May 14 15:44:52 2019 -0700 kernel/sysctl.c: switch to bitmap_zalloc() Switch to bitmap_zalloc() to show clearly what we are allocating. Besides that it returns pointer of bitmap type instead of opaque void *. Link: http://lkml.kernel.org/r/20190304094037.57756-1-andriy.shevchenko@linux.intel.com Signed-off-by: Andy Shevchenko Acked-by: Kees Cook Reviewed-by: Andrew Morton Cc: Luis Chamberlain Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 23015b22e47c5409620b1726a677d69e5cd032ba Author: Kangjie Lu Date: Tue May 14 15:44:49 2019 -0700 rapidio: fix a NULL pointer dereference when create_workqueue() fails In case create_workqueue fails, the fix releases resources and returns -ENOMEM to avoid NULL pointer dereference. Signed-off-by: Kangjie Lu Acked-by: Alexandre Bounine Cc: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3713a4e1fdb8da86f96a3e770b08e278d97529b4 Author: Yury Norov Date: Tue May 14 15:44:46 2019 -0700 include/linux/cpumask.h: fix double string traverse in cpumask_parse cpumask_parse() finds first occurrence of either or strchr() and strlen(). We can do it better with a single call of strchrnul(). [akpm@linux-foundation.org: remove unneeded cast] Link: http://lkml.kernel.org/r/20190409204208.12190-1-ynorov@marvell.com Signed-off-by: Yury Norov Acked-by: Rasmus Villemoes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4e7301e6df9595e34e52acc18b943d00c4865e3d Author: Alexey Dobriyan Date: Tue May 14 15:44:43 2019 -0700 exec selftests: test ->recursion_depth Test that trivially recursing script onto itself doesn't work. Note: this is different test from ELOOP tests in execveat.c Those test that execveat(2) doesn't follow symlinks when told to do so. Link: http://lkml.kernel.org/r/20190423192720.GA21433@avx2 Signed-off-by: Alexey Dobriyan Cc: Shuah Khan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a6231d1993367cf48a9c5f1adc295a5a8b1c5731 Author: Alexey Dobriyan Date: Tue May 14 15:44:40 2019 -0700 exec: move struct linux_binprm::buf struct linux_binprm::buf is the first field and it is exactly 128 bytes in size. It means that on x86_64 all accesses to other fields will go though [r64 + disp32] addressing mode which is 3 bytes bloatier than [r64 + disp8] addressing mode. Given that accesses to other fields outnumber accesses to ->buf, move it down. Space savings (x86_64 defconfig): more on distro configs because LSMs actively dereference "bprm" but do not care about first 128 bytes of the executable itself. add/remove: 0/0 grow/shrink: 0/24 up/down: 0/-492 (-492) Function old new delta selinux_bprm_committing_creds 552 549 -3 finalize_exec 94 91 -3 __audit_log_bprm_fcaps 283 280 -3 __audit_bprm 39 36 -3 perf_trace_sched_process_exec 347 341 -6 install_exec_creds 105 99 -6 cap_bprm_set_creds.cold 60 54 -6 would_dump 137 128 -9 load_script 637 628 -9 bprm_change_interp 61 52 -9 trace_event_raw_event_sched_process_exec 260 250 -10 search_binary_handler 255 240 -15 remove_arg_zero 295 277 -18 free_bprm 119 101 -18 prepare_binprm 379 360 -19 setup_new_exec 336 315 -21 flush_old_exec 1638 1617 -21 copy_strings.isra 746 724 -22 setup_arg_pages 559 530 -29 load_misc_binary 1151 1118 -33 selinux_bprm_set_creds 792 753 -39 load_elf_binary 11111 11072 -39 cap_bprm_set_creds 1496 1454 -42 __do_execve_file.isra 2395 2286 -109 Link: http://lkml.kernel.org/r/20190421165025.GA26843@avx2 Signed-off-by: Alexey Dobriyan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d53ddd0181d1c284c28c0d70a3d7039db41c6f7e Author: Alexey Dobriyan Date: Tue May 14 15:44:37 2019 -0700 fs/exec.c: move ->recursion_depth out of critical sections ->recursion_depth is changed only by current, therefore decrementing can be done without taking any locks. Link: http://lkml.kernel.org/r/20190417213150.GA26474@avx2 Signed-off-by: Alexey Dobriyan Reviewed-by: Andrew Morton Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b028fb612849add771679c1b99a50d99264c9632 Author: Mathieu Malaterre Date: Tue May 14 15:44:35 2019 -0700 kernel/signal.c: annotate implicit fall through There is a plan to build the kernel with -Wimplicit-fallthrough and this place in the code produced a warning (W=1). This commit remove the following warning: kernel/signal.c:795:13: warning: this statement may fall through [-Wimplicit-fallthrough=] Link: http://lkml.kernel.org/r/20190114203505.17875-1-malat@debian.org Signed-off-by: Mathieu Malaterre Acked-by: Gustavo A. R. Silva Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit bd8309de0d60838eef6fb575b0c4c7e95841cf73 Author: Hou Tao Date: Tue May 14 15:44:32 2019 -0700 fs/fat/file.c: issue flush after the writeback of FAT fsync() needs to make sure the data & meta-data of file are persistent after the return of fsync(), even when a power-failure occurs later. In the case of fat-fs, the FAT belongs to the meta-data of file, so we need to issue a flush after the writeback of FAT instead before. Also bail out early when any stage of fsync fails. Link: http://lkml.kernel.org/r/20190409030158.136316-1-houtao1@huawei.com Signed-off-by: Hou Tao Acked-by: OGAWA Hirofumi Cc: Al Viro Cc: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 672cdd56f0ae95069e399db790dbf2e303ac72b7 Author: Bharath Vedartham Date: Tue May 14 15:44:29 2019 -0700 reiserfs: add comment to explain endianness issue in xattr_hash csum_partial() gives different results for little-endian and big-endian hosts. This causes images created on little-endian hosts and mounted on big endian hosts to see csum mismatches. This causes an endianness bug. Sparse gives a warning as csum_partial returns a restricted integer type __wsum_t and xattr_hash expects __u32. This warning acts as a reminder for this bug and should not be suppressed. This comment aims to convey these endianness issues. [akpm@linux-foundation.org: coding-style fixes] Link: http://lkml.kernel.org/r/20190423161831.GA15387@bharath12345-Inspiron-5559 Signed-off-by: Bharath Vedartham Cc: Al Viro Cc: Jann Horn Cc: Jeff Mahoney Cc: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1dcaa138fc7d87982ccddb7df9e4c30c6cb6eb15 Author: Ian Kent Date: Tue May 14 15:44:26 2019 -0700 autofs: add description of ignore pseudo mount option Add a description of the "ignore" pseudo mount option that can be used to provide a generic indicator to applications that the mount entry should be ignored when displaying mount information. Link: http://lkml.kernel.org/r/155287084617.12593.812733161112154904.stgit@pluto.themaw.net Signed-off-by: Ian Kent Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 841964e86acf48317db0469daf821e44554d8b0c Author: Ian Kent Date: Tue May 14 15:44:23 2019 -0700 autofs: update mount control expire desription with AUTOFS_EXP_FORCED Describe AUTOFS_EXP_FORCED in addition to AUTOFS_EXP_IMMEDIATE in the description of the AUTOFS_DEV_IOCTL_EXPIRE_CMD ioctl. Link: http://lkml.kernel.org/r/155287084078.12593.15000931045413195778.stgit@pluto.themaw.net Signed-off-by: Ian Kent Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f23ceaac6a4d5c1696f81fa58daa81cbb46fd422 Author: Ian Kent Date: Tue May 14 15:44:20 2019 -0700 autofs: update AUTOFS_EXP_LEAVES description Update the description of AUTOFS_EXP_LEAVES to cover its possible future use with amd format mount maps. Link: http://lkml.kernel.org/r/155287083538.12593.18163159677020718048.stgit@pluto.themaw.net Signed-off-by: Ian Kent Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9200026623efb8d0383fa637a8926021d3de3482 Author: Ian Kent Date: Tue May 14 15:44:17 2019 -0700 autofs: update autofs.txt for strictexpire mount option A "strictexpire" mount option has been added to the autofs file system. It is meant to be used in cases where a GUI continually accesses or an application frquently scans an automount directory tree causing an accumulation of otherwise unused mounts. Link: http://lkml.kernel.org/r/155287083000.12593.2722713092537666885.stgit@pluto.themaw.net Signed-off-by: Ian Kent Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2ad56addb9a9affc25cb87c05e66531f39dda63f Author: Ian Kent Date: Tue May 14 15:44:14 2019 -0700 autofs: fix some word usage oddities in autofs.txt Alter a few word usages in Documentation/filesystems/autofs.txt and correct some spelling mistakes. Link: http://lkml.kernel.org/r/155287082394.12593.6506084453911662450.stgit@pluto.themaw.net Signed-off-by: Ian Kent Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 432d82200f584a9501103ca3f0b2658a211a3e29 Author: Sinan Kaya Date: Tue May 14 15:44:11 2019 -0700 net: replace CONFIG_DEBUG_KERNEL with CONFIG_DEBUG_MISC CONFIG_DEBUG_KERNEL should not impact code generation. Use the newly defined CONFIG_DEBUG_MISC instead to keep the current code. Link: http://lkml.kernel.org/r/20190413224438.10802-6-okaya@kernel.org Signed-off-by: Sinan Kaya Acked-by: Florian Westphal Reviewed-by: Josh Triplett Reviewed-by: Kees Cook Cc: Florian Westphal Cc: Pablo Neira Ayuso Cc: Jozsef Kadlecsik Cc: "David S. Miller" Cc: Anders Roxell Cc: Benjamin Herrenschmidt Cc: Christophe Leroy Cc: Chris Zankel Cc: Greg Kroah-Hartman Cc: James Hogan Cc: Max Filippov Cc: Michael Ellerman Cc: Michal Hocko Cc: Mike Rapoport Cc: Paul Burton Cc: Paul Mackerras Cc: Ralf Baechle Cc: Thomas Bogendoerfer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 900f492836df432f1b5a9078a5e4838583643d93 Author: Sinan Kaya Date: Tue May 14 15:44:07 2019 -0700 xtensa: replace CONFIG_DEBUG_KERNEL with CONFIG_DEBUG_MISC CONFIG_DEBUG_KERNEL should not impact code generation. Use the newly defined CONFIG_DEBUG_MISC instead to keep the current code. Link: http://lkml.kernel.org/r/20190413224438.10802-5-okaya@kernel.org Signed-off-by: Sinan Kaya Reviewed-by: Josh Triplett Reviewed-by: Kees Cook Acked-by: Max Filippov Cc: Chris Zankel Cc: Anders Roxell Cc: Benjamin Herrenschmidt Cc: Christophe Leroy Cc: "David S. Miller" Cc: Florian Westphal Cc: Greg Kroah-Hartman Cc: James Hogan Cc: Jozsef Kadlecsik Cc: Michael Ellerman Cc: Michal Hocko Cc: Mike Rapoport Cc: Pablo Neira Ayuso Cc: Paul Burton Cc: Paul Mackerras Cc: Ralf Baechle Cc: Thomas Bogendoerfer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit efb463cc16555450d5e3ec7adc4a19b416ae0f21 Author: Sinan Kaya Date: Tue May 14 15:44:04 2019 -0700 powerpc: replace CONFIG_DEBUG_KERNEL with CONFIG_DEBUG_MISC CONFIG_DEBUG_KERNEL should not impact code generation. Use the newly defined CONFIG_DEBUG_MISC instead to keep the current code. Link: http://lkml.kernel.org/r/20190413224438.10802-3-okaya@kernel.org Signed-off-by: Sinan Kaya Reviewed-by: Josh Triplett Reviewed-by: Kees Cook Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: Christophe Leroy Cc: Anders Roxell Cc: Chris Zankel Cc: "David S. Miller" Cc: Florian Westphal Cc: Greg Kroah-Hartman Cc: James Hogan Cc: Jozsef Kadlecsik Cc: Max Filippov Cc: Michal Hocko Cc: Mike Rapoport Cc: Pablo Neira Ayuso Cc: Paul Burton Cc: Ralf Baechle Cc: Thomas Bogendoerfer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c66d7a27b794b43d19a96df03822dd476b03b0a3 Author: Sinan Kaya Date: Tue May 14 15:44:00 2019 -0700 init: introduce DEBUG_MISC option Patch series "init: Do not select DEBUG_KERNEL by default", v5. CONFIG_DEBUG_KERNEL has been designed to just enable Kconfig options. Kernel code generatoin should not depend on CONFIG_DEBUG_KERNEL. Proposed alternative plan: let's add a new symbol, something like DEBUG_MISC ("Miscellaneous debug code that should be under a more specific debug option but isn't"), make it depend on DEBUG_KERNEL and be "default DEBUG_KERNEL" but allow itself to be turned off, and then mechanically change the small handful of "#ifdef CONFIG_DEBUG_KERNEL" to "#ifdef CONFIG_DEBUG_MISC". This patch (of 5): Introduce DEBUG_MISC ("Miscellaneous debug code that should be under a more specific debug option but isn't"), make it depend on DEBUG_KERNEL and be "default DEBUG_KERNEL" but allow itself to be turned off, and then mechanically change the small handful of "#ifdef CONFIG_DEBUG_KERNEL" to "#ifdef CONFIG_DEBUG_MISC". Link: http://lkml.kernel.org/r/20190413224438.10802-2-okaya@kernel.org Signed-off-by: Sinan Kaya Reviewed-by: Josh Triplett Reviewed-by: Kees Cook Cc: Anders Roxell Cc: Benjamin Herrenschmidt Cc: Christophe Leroy Cc: Chris Zankel Cc: "David S. Miller" Cc: Florian Westphal Cc: Greg Kroah-Hartman Cc: James Hogan Cc: Jozsef Kadlecsik Cc: Max Filippov Cc: Michael Ellerman Cc: Michal Hocko Cc: Mike Rapoport Cc: Pablo Neira Ayuso Cc: Paul Burton Cc: Paul Mackerras Cc: Ralf Baechle Cc: Thomas Bogendoerfer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit bbdc6076d2e5d07db44e74c11b01a3e27ab90b32 Author: Kees Cook Date: Tue May 14 15:43:57 2019 -0700 binfmt_elf: move brk out of mmap when doing direct loader exec Commmit eab09532d400 ("binfmt_elf: use ELF_ET_DYN_BASE only for PIE"), made changes in the rare case when the ELF loader was directly invoked (e.g to set a non-inheritable LD_LIBRARY_PATH, testing new versions of the loader), by moving into the mmap region to avoid both ET_EXEC and PIE binaries. This had the effect of also moving the brk region into mmap, which could lead to the stack and brk being arbitrarily close to each other. An unlucky process wouldn't get its requested stack size and stack allocations could end up scribbling on the heap. This is illustrated here. In the case of using the loader directly, brk (so helpfully identified as "[heap]") is allocated with the _loader_ not the binary. For example, with ASLR entirely disabled, you can see this more clearly: $ /bin/cat /proc/self/maps 555555554000-55555555c000 r-xp 00000000 ... /bin/cat 55555575b000-55555575c000 r--p 00007000 ... /bin/cat 55555575c000-55555575d000 rw-p 00008000 ... /bin/cat 55555575d000-55555577e000 rw-p 00000000 ... [heap] ... 7ffff7ff7000-7ffff7ffa000 r--p 00000000 ... [vvar] 7ffff7ffa000-7ffff7ffc000 r-xp 00000000 ... [vdso] 7ffff7ffc000-7ffff7ffd000 r--p 00027000 ... /lib/x86_64-linux-gnu/ld-2.27.so 7ffff7ffd000-7ffff7ffe000 rw-p 00028000 ... /lib/x86_64-linux-gnu/ld-2.27.so 7ffff7ffe000-7ffff7fff000 rw-p 00000000 ... 7ffffffde000-7ffffffff000 rw-p 00000000 ... [stack] $ /lib/x86_64-linux-gnu/ld-2.27.so /bin/cat /proc/self/maps ... 7ffff7bcc000-7ffff7bd4000 r-xp 00000000 ... /bin/cat 7ffff7bd4000-7ffff7dd3000 ---p 00008000 ... /bin/cat 7ffff7dd3000-7ffff7dd4000 r--p 00007000 ... /bin/cat 7ffff7dd4000-7ffff7dd5000 rw-p 00008000 ... /bin/cat 7ffff7dd5000-7ffff7dfc000 r-xp 00000000 ... /lib/x86_64-linux-gnu/ld-2.27.so 7ffff7fb2000-7ffff7fd6000 rw-p 00000000 ... 7ffff7ff7000-7ffff7ffa000 r--p 00000000 ... [vvar] 7ffff7ffa000-7ffff7ffc000 r-xp 00000000 ... [vdso] 7ffff7ffc000-7ffff7ffd000 r--p 00027000 ... /lib/x86_64-linux-gnu/ld-2.27.so 7ffff7ffd000-7ffff7ffe000 rw-p 00028000 ... /lib/x86_64-linux-gnu/ld-2.27.so 7ffff7ffe000-7ffff8020000 rw-p 00000000 ... [heap] 7ffffffde000-7ffffffff000 rw-p 00000000 ... [stack] The solution is to move brk out of mmap and into ELF_ET_DYN_BASE since nothing is there in the direct loader case (and ET_EXEC is still far away at 0x400000). Anything that ran before should still work (i.e. the ultimately-launched binary already had the brk very far from its text, so this should be no different from a COMPAT_BRK standpoint). The only risk I see here is that if someone started to suddenly depend on the entire memory space lower than the mmap region being available when launching binaries via a direct loader execs which seems highly unlikely, I'd hope: this would mean a binary would _not_ work when exec()ed normally. (Note that this is only done under CONFIG_ARCH_HAS_ELF_RANDOMIZATION when randomization is turned on.) Link: http://lkml.kernel.org/r/20190422225727.GA21011@beast Link: https://lkml.kernel.org/r/CAGXu5jJ5sj3emOT2QPxQkNQk0qbU6zEfu9=Omfhx_p0nCKPSjA@mail.gmail.com Fixes: eab09532d400 ("binfmt_elf: use ELF_ET_DYN_BASE only for PIE") Signed-off-by: Kees Cook Reported-by: Ali Saidi Cc: Ali Saidi Cc: Guenter Roeck Cc: Michal Hocko Cc: Matthew Wilcox Cc: Thomas Gleixner Cc: Jann Horn Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 249b08e4e504d4c54eda3453c9c97edbafa51401 Author: Alexey Dobriyan Date: Tue May 14 15:43:54 2019 -0700 elf: init pt_regs pointer later Get "current_pt_regs" pointer right before usage. Space savings on x86_64: add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-180 (-180) Function old new delta load_elf_binary 5806 5626 -180 !!! Looks like the compiler doesn't know that "current_pt_regs" is stable pointer (because it doesn't know ->stack isn't) even though it knows that "current" is stable pointer. So it saves it in the very beginning and then tries to carry it through a lot of code. Here is what happens here: load_elf_binary() ... mov rax,QWORD PTR gs:0x14c00 mov r13,QWORD PTR [rax+0x18] r13 = current->stack call kmem_cache_alloc # first kmalloc [980 bytes later!] # let's spill that sucker because we need a register # for "load_bias" calculations at # # if (interpreter) { # load_bias = ELF_ET_DYN_BASE; # if (current->flags & PF_RANDOMIZE) # load_bias += arch_mmap_rnd(); # elf_flags |= elf_fixed; # } mov QWORD PTR [rsp+0x68],r13 If this is not _the_ root cause it is still eeeeh. After the patch things become much simpler: mov rax, QWORD PTR gs:0x14c00 # current mov rdx, QWORD PTR [rax+0x18] # current->stack movq [rdx+0x3fb8], 0 # fill pt_regs ... call finalize_exec Link: http://lkml.kernel.org/r/20190419200343.GA19788@avx2 Signed-off-by: Alexey Dobriyan Tested-by: Andrew Morton Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d8e7cb39acc66316106ef8bda9b76f9f3cbbcad0 Author: Alexey Dobriyan Date: Tue May 14 15:43:51 2019 -0700 fs/binfmt_elf.c: extract PROT_* calculations There are two places where mapping protections are calculated: one for executable, another one for interpreter -- take them out. ELF read and execute permissions are interchanged with Linux PROT_READ and PROT_EXEC, microoptimizations are welcome! Link: http://lkml.kernel.org/r/20190417213413.GB26474@avx2 Signed-off-by: Alexey Dobriyan Reviewed-by: Andrew Morton Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 852643165aea0999bb862b36511c5b9f6b11449f Author: Alexey Dobriyan Date: Tue May 14 15:43:48 2019 -0700 fs//binfmt_elf.c: move variables initialization closer to their usage Link: http://lkml.kernel.org/r/20190416202002.GB24304@avx2 Signed-off-by: Alexey Dobriyan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit be0deb585e4c51d1c00e3f4862f95228ab72b7d8 Author: Alexey Dobriyan Date: Tue May 14 15:43:45 2019 -0700 fs/binfmt_elf.c: save 1 indent level Rewrite for (...) { if (->p_type == PT_INTERP) { ... break; } } loop into for (...) { if (->p_type != PT_INTERP) continue; ... break; } Link: http://lkml.kernel.org/r/20190416201906.GA24304@avx2 Signed-off-by: Alexey Dobriyan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ba0f6b88a8376565997fc848a6a8be5109d739ee Author: Alexey Dobriyan Date: Tue May 14 15:43:42 2019 -0700 fs/binfmt_elf.c: delete trailing "return;" in functions returning "void" Link: http://lkml.kernel.org/r/20190314205042.GE18143@avx2 Signed-off-by: Alexey Dobriyan Reviewed-by: Andrew Morton Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cc338010a233c0817276b1348692376db4b4b093 Author: Alexey Dobriyan Date: Tue May 14 15:43:39 2019 -0700 fs/binfmt_elf.c: free PT_INTERP filename ASAP There is no reason for PT_INTERP filename to linger till the end of the whole loading process. Link: http://lkml.kernel.org/r/20190314204953.GD18143@avx2 Signed-off-by: Alexey Dobriyan Signed-off-by: Nikitas Angelinas Reviewed-by: Andrew Morton Cc: Mukesh Ojha [nikitas.angelinas@gmail.com: fix GPF when dereferencing invalid interpreter] Link: http://lkml.kernel.org/r/20190330140032.GA1527@vostro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5cf4a36382588e601454f2f1dba91a78d385e2c3 Author: Alexey Dobriyan Date: Tue May 14 15:43:36 2019 -0700 fs/binfmt_elf.c: make scope of "pos" variable smaller Link: http://lkml.kernel.org/r/20190314204707.GC18143@avx2 Signed-off-by: Alexey Dobriyan Reviewed-by: Andrew Morton Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 22f084dbc1617fb04f56185063aca9006d75005b Author: Andrew Morton Date: Tue May 14 15:43:34 2019 -0700 fs/binfmt_elf.c: remove unneeded initialization of mm->start_stack As pointed out by zoujc@lenovo.com, setup_arg_pages() already initialized current->mm->start_stack. Link: https://bugzilla.kernel.org/show_bug.cgi?id=202881 Reported-by: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7507c40258726ea7a07374db00e8b55a138de88c Author: Andrew Morton Date: Tue May 14 15:43:30 2019 -0700 lib/test_vmalloc.c:test_func(): eliminate local `ret' Local 'ret' is unneeded and was poorly named: the variable `ret' generally means the "the value which this function will return". Cc: Roman Gushchin Cc: Uladzislau Rezki Cc: Michal Hocko Cc: Matthew Wilcox Cc: Thomas Garnier Cc: Oleksiy Avramchenko Cc: Steven Rostedt Cc: Joel Fernandes Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ef4d6f6b275c498f8e5626c99dbeefdc5027f843 Author: Rasmus Villemoes Date: Tue May 14 15:43:27 2019 -0700 include/linux/bitops.h: sanitize rotate primitives The ror32 implementation (word >> shift) | (word << (32 - shift) has undefined behaviour if shift is outside the [1, 31] range. Similarly for the 64 bit variants. Most callers pass a compile-time constant (naturally in that range), but there's an UBSAN report that these may actually be called with a shift count of 0. Instead of special-casing that, we can make them DTRT for all values of shift while also avoiding UB. For some reason, this was already partly done for rol32 (which was well-defined for [0, 31]). gcc 8 recognizes these patterns as rotates, so for example __u32 rol32(__u32 word, unsigned int shift) { return (word << (shift & 31)) | (word >> ((-shift) & 31)); } compiles to 0000000000000020 : 20: 89 f8 mov %edi,%eax 22: 89 f1 mov %esi,%ecx 24: d3 c0 rol %cl,%eax 26: c3 retq Older compilers unfortunately do not do as well, but this only affects the small minority of users that don't pass constants. Due to integer promotions, ro[lr]8 were already well-defined for shifts in [0, 8], and ro[lr]16 were mostly well-defined for shifts in [0, 16] (only mostly - u16 gets promoted to _signed_ int, so if bit 15 is set, word << 16 is undefined). For consistency, update those as well. Link: http://lkml.kernel.org/r/20190410211906.2190-1-linux@rasmusvillemoes.dk Signed-off-by: Rasmus Villemoes Reported-by: Ido Schimmel Tested-by: Ido Schimmel Reviewed-by: Will Deacon Cc: Vadim Pasternak Cc: Andrey Ryabinin Cc: Jacek Anaszewski Cc: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 6ea86bdfc169ba9df8484e9d2bb250a874b03c47 Author: Yury Norov Date: Tue May 14 15:43:24 2019 -0700 lib/test_bitmap: add tests for bitmap_parselist_user() Propagate existing bitmap_parselist() tests to bitmap_parselist_user(). Link: http://lkml.kernel.org/r/20190405173211.11373-6-ynorov@marvell.com Signed-off-by: Yury Norov Reviewed-by: Andy Shevchenko Cc: Arnd Bergmann Cc: Kees Cook Cc: Matthew Wilcox Cc: Mike Travis Cc: Rasmus Villemoes Cc: Tetsuo Handa Cc: Guenter Roeck Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a4ab50509c76a03d338f434a271494b450250f0d Author: Yury Norov Date: Tue May 14 15:43:21 2019 -0700 lib/test_bitmap: add testcases for bitmap_parselist() Add tests for non-number character, empty regions, integer overflow. [ynorov@marvell.com: v5] Link: http://lkml.kernel.org/r/20190416063801.20134-5-ynorov@marvell.com Link: http://lkml.kernel.org/r/20190405173211.11373-5-ynorov@marvell.com Signed-off-by: Yury Norov Reviewed-by: Andy Shevchenko Cc: Arnd Bergmann Cc: Kees Cook Cc: Matthew Wilcox Cc: Mike Travis Cc: Rasmus Villemoes Cc: Tetsuo Handa Cc: Guenter Roeck Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 0c2111a5c852aa0ded7c5644a58058df80ed58bb Author: Yury Norov Date: Tue May 14 15:43:18 2019 -0700 lib/test_bitmap: switch test_bitmap_parselist to ktime_get() test_bitmap_parselist currently uses get_cycles which is not implemented on some platforms, so use ktime_get() instead. Link: http://lkml.kernel.org/r/20190405173211.11373-4-ynorov@marvell.com Signed-off-by: Yury Norov Reviewed-by: Andy Shevchenko Cc: Arnd Bergmann Cc: Kees Cook Cc: Matthew Wilcox Cc: Mike Travis Cc: Rasmus Villemoes Cc: Tetsuo Handa Cc: Guenter Roeck Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e371c481d89cd6b9db72e077efd64059dfc87711 Author: Yury Norov Date: Tue May 14 15:43:14 2019 -0700 lib: rework bitmap_parselist Remove __bitmap_parselist helper and split the function to logical parts. [ynorov@marvell.com: v5] Link: http://lkml.kernel.org/r/20190416063801.20134-3-ynorov@marvell.com Link: http://lkml.kernel.org/r/20190405173211.11373-3-ynorov@marvell.com Signed-off-by: Yury Norov Reviewed-by: Andy Shevchenko Cc: Arnd Bergmann Cc: Kees Cook Cc: Matthew Wilcox Cc: Mike Travis Cc: Rasmus Villemoes Cc: Tetsuo Handa Cc: Guenter Roeck Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 281327c99bcaa8dbd4fe49cc32178dc59b0e61b8 Author: Yury Norov Date: Tue May 14 15:43:11 2019 -0700 lib: make bitmap_parselist_user() a wrapper on bitmap_parselist() Patch series "lib: rework bitmap_parselist and tests", v5. bitmap_parselist has been evolved from a pretty simple idea for long and now lacks for refactoring. It is not structured, has nested loops and a set of opaque-named variables. Things are more complicated because bitmap_parselist() is a part of user interface, and its behavior should not change. In this patchset - bitmap_parselist_user() made a wrapper on bitmap_parselist(); - bitmap_parselist() reworked (patch 2); - time measurement in test_bitmap_parselist switched to ktime_get (patch 3); - new tests introduced (patch 4), and - bitmap_parselist_user() testing enabled with the same testset as bitmap_parselist() (patch 5). This patch (of 5): Currently we parse user data byte after byte which leads to overcomplification of parsing algorithm. The only user of bitmap_parselist_user() is not performance-critical, and so we can duplicate user data to kernel buffer and simply call bitmap_parselist(). This rework lets us unify and simplify bitmap_parselist() and bitmap_parselist_user(), which is done in the following patch. Link: http://lkml.kernel.org/r/20190405173211.11373-2-ynorov@marvell.com Signed-off-by: Yury Norov Reviewed-by: Andy Shevchenko Cc: Rasmus Villemoes Cc: Arnd Bergmann Cc: Kees Cook Cc: Matthew Wilcox Cc: Tetsuo Handa Cc: Mike Travis Cc: Guenter Roeck Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9f6158946987a5ce3f16da097d18f240a89db417 Author: Andy Shevchenko Date: Tue May 14 15:43:08 2019 -0700 lib/math: move int_pow() from pwm_bl.c for wider use The integer exponentiation is used in few places and might be used in the future by other call sites. Move it to wider use. Link: http://lkml.kernel.org/r/20190323172531.80025-2-andriy.shevchenko@linux.intel.com Signed-off-by: Andy Shevchenko Cc: Daniel Thompson Cc: Lee Jones Cc: Ray Jui Cc: Thierry Reding Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2c64e9cb0b6b858901e9a386860d7d929d1cbaeb Author: Andy Shevchenko Date: Tue May 14 15:43:05 2019 -0700 lib: Move mathematic helpers to separate folder For better maintenance and expansion move the mathematic helpers to the separate folder. No functional change intended. Note, the int_sqrt() is not used as a part of lib, so, moved to regular obj. Link: http://lkml.kernel.org/r/20190323172531.80025-1-andriy.shevchenko@linux.intel.com Signed-off-by: Andy Shevchenko Signed-off-by: Mauro Carvalho Chehab Cc: Randy Dunlap Cc: Thierry Reding Cc: Lee Jones Cc: Daniel Thompson Cc: Ray Jui [mchehab+samsung@kernel.org: fix broken doc references for div64.c and gcd.c] Link: http://lkml.kernel.org/r/734f49bae5d4052b3c25691dfefad59bea2e5843.1555580999.git.mchehab+samsung@kernel.org Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b5c56e0cdd62979dd538e5363b06be5bdf735a09 Author: George Spelvin Date: Tue May 14 15:43:02 2019 -0700 lib/list_sort: optimize number of calls to comparison function CONFIG_RETPOLINE has severely degraded indirect function call performance, so it's worth putting some effort into reducing the number of times cmp() is called. This patch avoids badly unbalanced merges on unlucky input sizes. It slightly increases the code size, but saves an average of 0.2*n calls to cmp(). x86-64 code size 739 -> 803 bytes (+64) Unfortunately, there's not a lot of low-hanging fruit in a merge sort; it already performs only n*log2(n) - K*n + O(1) compares. The leading coefficient is already at the theoretical limit (log2(n!) corresponds to K=1.4427), so we're fighting over the linear term, and the best mergesort can do is K=1.2645, achieved when n is a power of 2. The differences between mergesort variants appear when n is *not* a power of 2; K is a function of the fractional part of log2(n). Top-down mergesort does best of all, achieving a minimum K=1.2408, and an average (over all sizes) K=1.248. However, that requires knowing the number of entries to be sorted ahead of time, and making a full pass over the input to count it conflicts with a second performance goal, which is cache blocking. Obviously, we have to read the entire list into L1 cache at some point, and performance is best if it fits. But if it doesn't fit, each full pass over the input causes a cache miss per element, which is undesirable. While textbooks explain bottom-up mergesort as a succession of merging passes, practical implementations do merging in depth-first order: as soon as two lists of the same size are available, they are merged. This allows as many merge passes as possible to fit into L1; only the final few merges force cache misses. This cache-friendly depth-first merge order depends on us merging the beginning of the input as much as possible before we've even seen the end of the input (and thus know its size). The simple eager merge pattern causes bad performance when n is just over a power of 2. If n=1028, the final merge is between 1024- and 4-element lists, which is wasteful of comparisons. (This is actually worse on average than n=1025, because a 1204:1 merge will, on average, end after 512 compares, while 1024:4 will walk 4/5 of the list.) Because of this, bottom-up mergesort achieves K < 0.5 for such sizes, and has an average (over all sizes) K of around 1. (My experiments show K=1.01, while theory predicts K=0.965.) There are "worst-case optimal" variants of bottom-up mergesort which avoid this bad performance, but the algorithms given in the literature, such as queue-mergesort and boustrodephonic mergesort, depend on the breadth-first multi-pass structure that we are trying to avoid. This implementation is as eager as possible while ensuring that all merge passes are at worst 1:2 unbalanced. This achieves the same average K=1.207 as queue-mergesort, which is 0.2*n better then bottom-up, and only 0.04*n behind top-down mergesort. Specifically, defers merging two lists of size 2^k until it is known that there are 2^k additional inputs following. This ensures that the final uneven merges triggered by reaching the end of the input will be at worst 2:1. This will avoid cache misses as long as 3*2^k elements fit into the cache. (I confess to being more than a little bit proud of how clean this code turned out. It took a lot of thinking, but the resultant inner loop is very simple and efficient.) Refs: Bottom-up Mergesort: A Detailed Analysis Wolfgang Panny, Helmut Prodinger Algorithmica 14(4):340--354, October 1995 https://doi.org/10.1007/BF01294131 https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.6.5260 The cost distribution of queue-mergesort, optimal mergesorts, and power-of-two rules Wei-Mei Chen, Hsien-Kuei Hwang, Gen-Huey Chen Journal of Algorithms 30(2); Pages 423--448, February 1999 https://doi.org/10.1006/jagm.1998.0986 https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.4.5380 Queue-Mergesort Mordecai J. Golin, Robert Sedgewick Information Processing Letters, 48(5):253--259, 10 December 1993 https://doi.org/10.1016/0020-0190(93)90088-q https://sci-hub.tw/10.1016/0020-0190(93)90088-Q Feedback from Rasmus Villemoes . Link: http://lkml.kernel.org/r/fd560853cc4dca0d0f02184ffa888b4c1be89abc.1552704200.git.lkml@sdf.org Signed-off-by: George Spelvin Acked-by: Andrey Abramov Acked-by: Rasmus Villemoes Reviewed-by: Andy Shevchenko Cc: Daniel Wagner Cc: Dave Chinner Cc: Don Mullis Cc: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 043b3f7b6388fca6be86ca82979f66c5723a0d10 Author: George Spelvin Date: Tue May 14 15:42:58 2019 -0700 lib/list_sort: simplify and remove MAX_LIST_LENGTH_BITS Rather than a fixed-size array of pending sorted runs, use the ->prev links to keep track of things. This reduces stack usage, eliminates some ugly overflow handling, and reduces the code size. Also: * merge() no longer needs to handle NULL inputs, so simplify. * The same applies to merge_and_restore_back_links(), which is renamed to the less ponderous merge_final(). (It's a static helper function, so we don't need a super-descriptive name; comments will do.) * Document the actual return value requirements on the (*cmp)() function; some callers are already using this feature. x86-64 code size 1086 -> 739 bytes (-347) (Yes, I see checkpatch complaining about no space after comma in "__attribute__((nonnull(2,3,4,5)))". Checkpatch is wrong.) Feedback from Rasmus Villemoes, Andy Shevchenko and Geert Uytterhoeven. [akpm@linux-foundation.org: remove __pure usage due to mysterious warning] Link: http://lkml.kernel.org/r/f63c410e0ff76009c9b58e01027e751ff7fdb749.1552704200.git.lkml@sdf.org Signed-off-by: George Spelvin Acked-by: Andrey Abramov Acked-by: Rasmus Villemoes Reviewed-by: Andy Shevchenko Cc: Geert Uytterhoeven Cc: Daniel Wagner Cc: Dave Chinner Cc: Don Mullis Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8fb583c4258d08f0aff105aa2ae5157b7d414ea2 Author: George Spelvin Date: Tue May 14 15:42:55 2019 -0700 lib/sort: avoid indirect calls to built-in swap Similar to what's being done in the net code, this takes advantage of the fact that most invocations use only a few common swap functions, and replaces indirect calls to them with (highly predictable) conditional branches. (The downside, of course, is that if you *do* use a custom swap function, there are a few extra predicted branches on the code path.) This actually *shrinks* the x86-64 code, because it inlines the various swap functions inside do_swap, eliding function prologues & epilogues. x86-64 code size 767 -> 703 bytes (-64) Link: http://lkml.kernel.org/r/d10c5d4b393a1847f32f5b26f4bbaa2857140e1e.1552704200.git.lkml@sdf.org Signed-off-by: George Spelvin Acked-by: Andrey Abramov Acked-by: Rasmus Villemoes Reviewed-by: Andy Shevchenko Cc: Daniel Wagner Cc: Dave Chinner Cc: Don Mullis Cc: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 22a241ccb2c19962a0fb02c98154aa93d3fc1862 Author: George Spelvin Date: Tue May 14 15:42:52 2019 -0700 lib/sort: use more efficient bottom-up heapsort variant This uses fewer comparisons than the previous code (approaching half as many for large random inputs), but produces identical results; it actually performs the exact same series of swap operations. Specifically, it reduces the average number of compares from 2*n*log2(n) - 3*n + o(n) to n*log2(n) + 0.37*n + o(n). This is still 1.63*n worse than glibc qsort() which manages n*log2(n) - 1.26*n, but at least the leading coefficient is correct. Standard heapsort, when sifting down, performs two comparisons per level: one to find the greater child, and a second to see if the current node should be exchanged with that child. Bottom-up heapsort observes that it's better to postpone the second comparison and search for the leaf where -infinity would be sent to, then search back *up* for the current node's destination. Since sifting down usually proceeds to the leaf level (that's where half the nodes are), this does O(1) second comparisons rather than log2(n). That saves a lot of (expensive since Spectre) indirect function calls. The one time it's worse than the previous code is if there are large numbers of duplicate keys, when the top-down algorithm is O(n) and bottom-up is O(n log n). For distinct keys, it's provably always better, doing 1.5*n*log2(n) + O(n) in the worst case. (The code is not significantly more complex. This patch also merges the heap-building and -extracting sift-down loops, resulting in a net code size savings.) x86-64 code size 885 -> 767 bytes (-118) (I see the checkpatch complaint about "else if (n -= size)". The alternative is significantly uglier.) Link: http://lkml.kernel.org/r/2de8348635a1a421a72620677898c7fd5bd4b19d.1552704200.git.lkml@sdf.org Signed-off-by: George Spelvin Acked-by: Andrey Abramov Acked-by: Rasmus Villemoes Reviewed-by: Andy Shevchenko Cc: Daniel Wagner Cc: Dave Chinner Cc: Don Mullis Cc: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 37d0ec34d111acfdb82b24e3de00d926c0aece4d Author: George Spelvin Date: Tue May 14 15:42:49 2019 -0700 lib/sort: make swap functions more generic Patch series "lib/sort & lib/list_sort: faster and smaller", v2. Because CONFIG_RETPOLINE has made indirect calls much more expensive, I thought I'd try to reduce the number made by the library sort functions. The first three patches apply to lib/sort.c. Patch #1 is a simple optimization. The built-in swap has special cases for aligned 4- and 8-byte objects. But those are almost never used; most calls to sort() work on larger structures, which fall back to the byte-at-a-time loop. This generalizes them to aligned *multiples* of 4 and 8 bytes. (If nothing else, it saves an awful lot of energy by not thrashing the store buffers as much.) Patch #2 grabs a juicy piece of low-hanging fruit. I agree that nice simple solid heapsort is preferable to more complex algorithms (sorry, Andrey), but it's possible to implement heapsort with far fewer comparisons (50% asymptotically, 25-40% reduction for realistic sizes) than the way it's been done up to now. And with some care, the code ends up smaller, as well. This is the "big win" patch. Patch #3 adds the same sort of indirect call bypass that has been added to the net code of late. The great majority of the callers use the builtin swap functions, so replace the indirect call to sort_func with a (highly preditable) series of if() statements. Rather surprisingly, this decreased code size, as the swap functions were inlined and their prologue & epilogue code eliminated. lib/list_sort.c is a bit trickier, as merge sort is already close to optimal, and we don't want to introduce triumphs of theory over practicality like the Ford-Johnson merge-insertion sort. Patch #4, without changing the algorithm, chops 32% off the code size and removes the part[MAX_LIST_LENGTH+1] pointer array (and the corresponding upper limit on efficiently sortable input size). Patch #5 improves the algorithm. The previous code is already optimal for power-of-two (or slightly smaller) size inputs, but when the input size is just over a power of 2, there's a very unbalanced final merge. There are, in the literature, several algorithms which solve this, but they all depend on the "breadth-first" merge order which was replaced by commit 835cc0c8477f with a more cache-friendly "depth-first" order. Some hard thinking came up with a depth-first algorithm which defers merges as little as possible while avoiding bad merges. This saves 0.2*n compares, averaged over all sizes. The code size increase is minimal (64 bytes on x86-64, reducing the net savings to 26%), but the comments expanded significantly to document the clever algorithm. TESTING NOTES: I have some ugly user-space benchmarking code which I used for testing before moving this code into the kernel. Shout if you want a copy. I'm running this code right now, with CONFIG_TEST_SORT and CONFIG_TEST_LIST_SORT, but I confess I haven't rebooted since the last round of minor edits to quell checkpatch. I figure there will be at least one round of comments and final testing. This patch (of 5): Rather than having special-case swap functions for 4- and 8-byte objects, special-case aligned multiples of 4 or 8 bytes. This speeds up most users of sort() by avoiding fallback to the byte copy loop. Despite what ca96ab859ab4 ("lib/sort: Add 64 bit swap function") claims, very few users of sort() sort pointers (or pointer-sized objects); most sort structures containing at least two words. (E.g. drivers/acpi/fan.c:acpi_fan_get_fps() sorts an array of 40-byte struct acpi_fan_fps.) The functions also got renamed to reflect the fact that they support multiple words. In the great tradition of bikeshedding, the names were by far the most contentious issue during review of this patch series. x86-64 code size 872 -> 886 bytes (+14) With feedback from Andy Shevchenko, Rasmus Villemoes and Geert Uytterhoeven. Link: http://lkml.kernel.org/r/f24f932df3a7fa1973c1084154f1cea596bcf341.1552704200.git.lkml@sdf.org Signed-off-by: George Spelvin Acked-by: Andrey Abramov Acked-by: Rasmus Villemoes Reviewed-by: Andy Shevchenko Cc: Rasmus Villemoes Cc: Geert Uytterhoeven Cc: Daniel Wagner Cc: Don Mullis Cc: Dave Chinner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8e18faeac3e4d4b3ff3d705cd46d0fcb710b09d0 Author: Davidlohr Bueso Date: Tue May 14 15:42:46 2019 -0700 lib/plist: rename DEBUG_PI_LIST to DEBUG_PLIST This is a lot more appropriate than PI_LIST, which in the kernel one would assume that it has to do with priority-inheritance; which is not -- furthermore futexes make use of plists so this can be even more confusing, albeit the debug nature of the config option. Link: http://lkml.kernel.org/r/20190317185434.1626-1-dave@stgolabs.net Signed-off-by: Davidlohr Bueso Reviewed-by: Andrew Morton Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cdc90a1871d6e64080f4506e900c6ef88e6fb39f Author: Rasmus Villemoes Date: Tue May 14 15:42:43 2019 -0700 lib/bitmap.c: guard exotic bitmap functions by CONFIG_NUMA The bitmap_remap, _bitremap, _onto and _fold functions are only used, via their node_ wrappers, in mm/mempolicy.c, which is only built for CONFIG_NUMA. The helper bitmap_ord_to_pos used by these functions is global, but its only external caller is node_random() in lib/nodemask.c, which is also guarded by CONFIG_NUMA. For !CONFIG_NUMA: add/remove: 0/6 grow/shrink: 0/0 up/down: 0/-621 (-621) Function old new delta bitmap_pos_to_ord 20 - -20 bitmap_ord_to_pos 70 - -70 bitmap_bitremap 81 - -81 bitmap_fold 113 - -113 bitmap_onto 123 - -123 bitmap_remap 214 - -214 Total: Before=4776, After=4155, chg -13.00% Link: http://lkml.kernel.org/r/20190329205353.6010-2-linux@rasmusvillemoes.dk Signed-off-by: Rasmus Villemoes Cc: Andy Shevchenko Cc: Yury Norov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5f239f655a7e67a972ee1fa17045a08e640d28da Author: Rasmus Villemoes Date: Tue May 14 15:42:40 2019 -0700 lib/bitmap.c: remove unused EXPORT_SYMBOLs AFAICT, there have never been any callers of these functions outside mm/mempolicy.c (via their nodemask.h wrappers). In particular, no modular code has ever used them, and given their somewhat exotic semantics, I highly doubt they will ever find such a use. In any case, no need to export them currently. Link: http://lkml.kernel.org/r/20190329205353.6010-1-linux@rasmusvillemoes.dk Signed-off-by: Rasmus Villemoes Cc: Andy Shevchenko Cc: Yury Norov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 6c4e121fda519e0da5c6755a60fdef8cd39634ae Author: Rasmus Villemoes Date: Tue May 14 15:42:37 2019 -0700 kernel/user.c: clean up some leftover code The out_unlock label is misleading; no unlocking happens after it, so just return NULL directly. Also, nothing between the kmem_cache_zalloc() that creates new and the two key_put() can initialize new->uid_keyring or new->session_keyring, so those calls are no-ops. Link: http://lkml.kernel.org/r/20190424200404.9114-1-linux@rasmusvillemoes.dk Signed-off-by: Rasmus Villemoes Reviewed-by: Andrew Morton Cc: "Peter Zijlstra (Intel)" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e02c9b0d65a7493180db45320f82482c6ba8ea57 Author: Lin Feng Date: Tue May 14 15:42:34 2019 -0700 kernel/latencytop.c: rename clear_all_latency_tracing to clear_tsk_latency_tracing The name clear_all_latency_tracing is misleading, in fact which only clear per task's latency_record[], and we do have another function named clear_global_latency_tracing which clear the global latency_record[] buffer. Link: http://lkml.kernel.org/r/20190226114602.16902-1-linf@wangsu.com Signed-off-by: Lin Feng Cc: Alexey Dobriyan Cc: Fabian Frederick Cc: Arjan van de Ven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 0cc75888dad112395df0ac755915ceb79811831c Author: Lin Feng Date: Tue May 14 15:42:31 2019 -0700 kernel/latencytop.c: remove unnecessary checks for latencytop_enabled 1. In latencytop source codes, we only have such calling chain: account_scheduler_latency(struct task_struct *task, int usecs, int inter) { if (unlikely(latencytop_enabled)) /* the outtermost check */ __account_scheduler_latency(task, usecs, inter); } __account_scheduler_latency account_global_scheduler_latency if (!latencytop_enabled) So, the inner check for latencytop_enabled is not necessary at all. 2. In clear_all_latency_tracing and now is called clear_tsk_latency_tracing the check for latencytop_enabled is redundant and buggy to some extent. We have no reason to refuse clearing the /proc/$pid/latency if latencytop_enabled is set to 0, considering that if we use latencytop manually by echo 0 > /proc/sys/kernel/latencytop, then we want to clear /proc/$pid/latency and failed. Also we don't have such check in brother function clear_global_latency_tracing. Notes: These changes are only visible to users who set CONFIG_LATENCYTOP and won't change user tool latencytop's behavior. Link: http://lkml.kernel.org/r/20190226114602.16902-2-linf@wangsu.com Signed-off-by: Lin Feng Cc: Alexey Dobriyan Cc: Fabian Frederick Cc: Arjan van de Ven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 831246570d34692e0550da952d0655bdcc985419 Author: Vasily Averin Date: Tue May 14 15:42:28 2019 -0700 kernel/notifier.c: double register detection By design notifiers can be registerd once only, 2nd register attempt called by mistake silently corrupts notifiers list. A few years ago I investigated described problem, the host was power cycled because of notifier list corruption. I've prepared this patch and applied it to the OpenVZ kernel and sent this patch but nobody commented on it. Later it helped us to detect a similar problem in the OpenVz kernel. Mistakes with notifier registration can happen for example during subsystem initialization from different namespaces, or because of a lost unregister in the roll-back path on initialization failures. The proposed check cannot prevent the described problem, however it allows us to detect its reason quickly without coredump analysis. Link: http://lkml.kernel.org/r/04127e71-4782-9bbb-fe5a-7c01e93a99b0@virtuozzo.com Signed-off-by: Vasily Averin Reviewed-by: Andrew Morton Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9012d011660ea5cf2a623e1de207a2bc0ca6936d Author: Masahiro Yamada Date: Tue May 14 15:42:25 2019 -0700 compiler: allow all arches to enable CONFIG_OPTIMIZE_INLINING Commit 60a3cdd06394 ("x86: add optimized inlining") introduced CONFIG_OPTIMIZE_INLINING, but it has been available only for x86. The idea is obviously arch-agnostic. This commit moves the config entry from arch/x86/Kconfig.debug to lib/Kconfig.debug so that all architectures can benefit from it. This can make a huge difference in kernel image size especially when CONFIG_OPTIMIZE_FOR_SIZE is enabled. For example, I got 3.5% smaller arm64 kernel for v5.1-rc1. dec file 18983424 arch/arm64/boot/Image.before 18321920 arch/arm64/boot/Image.after This also slightly improves the "Kernel hacking" Kconfig menu as e61aca5158a8 ("Merge branch 'kconfig-diet' from Dave Hansen') suggested; this config option would be a good fit in the "compiler option" menu. Link: http://lkml.kernel.org/r/20190423034959.13525-12-yamada.masahiro@socionext.com Signed-off-by: Masahiro Yamada Acked-by: Borislav Petkov Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Boris Brezillon Cc: Brian Norris Cc: Christophe Leroy Cc: David Woodhouse Cc: Heiko Carstens Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Marek Vasut Cc: Mark Rutland Cc: Mathieu Malaterre Cc: Miquel Raynal Cc: Paul Mackerras Cc: Ralf Baechle Cc: Richard Weinberger Cc: Russell King Cc: Stefan Agner Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit efc344c57e39754416731e24e1eadd7d9b9f335e Author: Masahiro Yamada Date: Tue May 14 15:42:21 2019 -0700 powerpc/mm/radix: mark as __tlbie_pid() and friends as__always_inline This prepares to move CONFIG_OPTIMIZE_INLINING from x86 to a common place. We need to eliminate potential issues beforehand. If it is enabled for powerpc, the following errors are reported: arch/powerpc/mm/tlb-radix.c: In function '__tlbie_lpid': arch/powerpc/mm/tlb-radix.c:148:2: warning: asm operand 3 probably doesn't match constraints asm volatile(PPC_TLBIE_5(%0, %4, %3, %2, %1) ^~~ arch/powerpc/mm/tlb-radix.c:148:2: error: impossible constraint in 'asm' arch/powerpc/mm/tlb-radix.c: In function '__tlbie_pid': arch/powerpc/mm/tlb-radix.c:118:2: warning: asm operand 3 probably doesn't match constraints asm volatile(PPC_TLBIE_5(%0, %4, %3, %2, %1) ^~~ arch/powerpc/mm/tlb-radix.c: In function '__tlbiel_pid': arch/powerpc/mm/tlb-radix.c:104:2: warning: asm operand 3 probably doesn't match constraints asm volatile(PPC_TLBIEL(%0, %4, %3, %2, %1) ^~~ Link: http://lkml.kernel.org/r/20190423034959.13525-11-yamada.masahiro@socionext.com Signed-off-by: Masahiro Yamada Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Boris Brezillon Cc: Borislav Petkov Cc: Brian Norris Cc: Christophe Leroy Cc: David Woodhouse Cc: Heiko Carstens Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Marek Vasut Cc: Mark Rutland Cc: Mathieu Malaterre Cc: Miquel Raynal Cc: Paul Mackerras Cc: Ralf Baechle Cc: Richard Weinberger Cc: Russell King Cc: Stefan Agner Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e12d6d7d46a62ccf62f4c60eb6ea6f0f121797c7 Author: Masahiro Yamada Date: Tue May 14 15:42:17 2019 -0700 powerpc/mm/radix: mark __radix__flush_tlb_range_psize() as __always_inline This prepares to move CONFIG_OPTIMIZE_INLINING from x86 to a common place. We need to eliminate potential issues beforehand. If it is enabled for powerpc, the following error is reported: arch/powerpc/mm/tlb-radix.c: In function '__radix__flush_tlb_range_psize': arch/powerpc/mm/tlb-radix.c:104:2: error: asm operand 3 probably doesn't match constraints [-Werror] asm volatile(PPC_TLBIEL(%0, %4, %3, %2, %1) ^~~ arch/powerpc/mm/tlb-radix.c:104:2: error: impossible constraint in 'asm' Link: http://lkml.kernel.org/r/20190423034959.13525-10-yamada.masahiro@socionext.com Signed-off-by: Masahiro Yamada Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Boris Brezillon Cc: Borislav Petkov Cc: Brian Norris Cc: Christophe Leroy Cc: David Woodhouse Cc: Heiko Carstens Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Marek Vasut Cc: Mark Rutland Cc: Mathieu Malaterre Cc: Miquel Raynal Cc: Paul Mackerras Cc: Ralf Baechle Cc: Richard Weinberger Cc: Russell King Cc: Stefan Agner Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 480795a095343c9aaab49cc4d499c41a966be164 Author: Masahiro Yamada Date: Tue May 14 15:42:14 2019 -0700 powerpc/prom_init: mark prom_getprop() and prom_getproplen() as __init This prepares to move CONFIG_OPTIMIZE_INLINING from x86 to a common place. We need to eliminate potential issues beforehand. If it is enabled for powerpc, the following modpost warnings are reported: WARNING: vmlinux.o(.text.unlikely+0x20): Section mismatch in reference from the function .prom_getprop() to the function .init.text:.call_prom() The function .prom_getprop() references the function __init .call_prom(). This is often because .prom_getprop lacks a __init annotation or the annotation of .call_prom is wrong. WARNING: vmlinux.o(.text.unlikely+0x3c): Section mismatch in reference from the function .prom_getproplen() to the function .init.text:.call_prom() The function .prom_getproplen() references the function __init .call_prom(). This is often because .prom_getproplen lacks a __init annotation or the annotation of .call_prom is wrong. Link: http://lkml.kernel.org/r/20190423034959.13525-9-yamada.masahiro@socionext.com Signed-off-by: Masahiro Yamada Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Boris Brezillon Cc: Borislav Petkov Cc: Brian Norris Cc: Christophe Leroy Cc: David Woodhouse Cc: Heiko Carstens Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Marek Vasut Cc: Mark Rutland Cc: Mathieu Malaterre Cc: Miquel Raynal Cc: Paul Mackerras Cc: Ralf Baechle Cc: Richard Weinberger Cc: Russell King Cc: Stefan Agner Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2e0168a714586fb0fa600157e837e90569cbd8ec Author: Masahiro Yamada Date: Tue May 14 15:42:10 2019 -0700 ARM: mark setup_machine_tags() stub as __init __noreturn This prepares to move CONFIG_OPTIMIZE_INLINING from x86 to a common place. We need to eliminate potential issues beforehand. If it is enabled for arm, Clang build results in the following modpost warning: WARNING: vmlinux.o(.text+0x1124): Section mismatch in reference from the function setup_machine_tags() to the function .init.text:early_print() The function setup_machine_tags() references the function __init early_print(). This is often because setup_machine_tags lacks a __init annotation or the annotation of early_print is wrong. Link: http://lkml.kernel.org/r/20190423034959.13525-8-yamada.masahiro@socionext.com Signed-off-by: Masahiro Yamada Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Boris Brezillon Cc: Borislav Petkov Cc: Brian Norris Cc: Christophe Leroy Cc: David Woodhouse Cc: Heiko Carstens Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Marek Vasut Cc: Mark Rutland Cc: Mathieu Malaterre Cc: Miquel Raynal Cc: Paul Mackerras Cc: Ralf Baechle Cc: Richard Weinberger Cc: Russell King Cc: Stefan Agner Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e9ea596c2c6dedf9438176f4e844f1c8b68a35ac Author: Masahiro Yamada Date: Tue May 14 15:42:07 2019 -0700 MIPS: mark __fls() and __ffs() as __always_inline This prepares to move CONFIG_OPTIMIZE_INLINING from x86 to a common place. We need to eliminate potential issues beforehand. If it is enabled for mips, the following errors are reported: arch/mips/mm/sc-mips.o: In function `mips_sc_prefetch_enable.part.2': sc-mips.c:(.text+0x98): undefined reference to `mips_gcr_base' sc-mips.c:(.text+0x9c): undefined reference to `mips_gcr_base' sc-mips.c:(.text+0xbc): undefined reference to `mips_gcr_base' sc-mips.c:(.text+0xc8): undefined reference to `mips_gcr_base' sc-mips.c:(.text+0xdc): undefined reference to `mips_gcr_base' arch/mips/mm/sc-mips.o:sc-mips.c:(.text.unlikely+0x44): more undefined references to `mips_gcr_base' Link: http://lkml.kernel.org/r/20190423034959.13525-7-yamada.masahiro@socionext.com Signed-off-by: Masahiro Yamada Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Boris Brezillon Cc: Borislav Petkov Cc: Brian Norris Cc: Christophe Leroy Cc: David Woodhouse Cc: Heiko Carstens Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Marek Vasut Cc: Mark Rutland Cc: Mathieu Malaterre Cc: Miquel Raynal Cc: Paul Mackerras Cc: Ralf Baechle Cc: Richard Weinberger Cc: Russell King Cc: Stefan Agner Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2127982895d4e1d5343b5fdb986dd3b17b4fe43f Author: Masahiro Yamada Date: Tue May 14 15:42:03 2019 -0700 mtd: rawnand: vf610_nfc: add initializer to avoid -Wmaybe-uninitialized This prepares to move CONFIG_OPTIMIZE_INLINING from x86 to a common place. We need to eliminate potential issues beforehand. Kbuild test robot has never reported -Wmaybe-uninitialized warning for this probably because vf610_nfc_run() is inlined by the x86 compiler's inlining heuristic. If CONFIG_OPTIMIZE_INLINING is enabled for a different architecture and vf610_nfc_run() is not inlined, the following warning is reported: drivers/mtd/nand/raw/vf610_nfc.c: In function `vf610_nfc_cmd': drivers/mtd/nand/raw/vf610_nfc.c:455:3: warning: `offset' may be used uninitialized in this function [-Wmaybe-uninitialized] vf610_nfc_rd_from_sram(instr->ctx.data.buf.in + offset, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ nfc->regs + NFC_MAIN_AREA(0) + offset, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ trfr_sz, !nfc->data_access); ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Link: http://lkml.kernel.org/r/20190423034959.13525-6-yamada.masahiro@socionext.com Signed-off-by: Masahiro Yamada Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Boris Brezillon Cc: Borislav Petkov Cc: Brian Norris Cc: Christophe Leroy Cc: David Woodhouse Cc: Heiko Carstens Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Marek Vasut Cc: Mark Rutland Cc: Mathieu Malaterre Cc: Miquel Raynal Cc: Paul Mackerras Cc: Ralf Baechle Cc: Richard Weinberger Cc: Russell King Cc: Stefan Agner Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e60fb8bf68d40ec32f8ea34950623ea570c9090e Author: Masahiro Yamada Date: Tue May 14 15:41:59 2019 -0700 s390/cpacf: mark scpacf_query() as __always_inline This prepares to move CONFIG_OPTIMIZE_INLINING from x86 to a common place. We need to eliminate potential issues beforehand. If it is enabled for s390, the following error is reported: In file included from arch/s390/crypto/des_s390.c:19: arch/s390/include/asm/cpacf.h: In function 'cpacf_query': arch/s390/include/asm/cpacf.h:170:2: warning: asm operand 3 probably doesn't match constraints asm volatile( ^~~ arch/s390/include/asm/cpacf.h:170:2: error: impossible constraint in 'asm' Link: http://lkml.kernel.org/r/20190423034959.13525-5-yamada.masahiro@socionext.com Signed-off-by: Masahiro Yamada Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Boris Brezillon Cc: Borislav Petkov Cc: Brian Norris Cc: Christophe Leroy Cc: David Woodhouse Cc: Heiko Carstens Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Marek Vasut Cc: Mark Rutland Cc: Mathieu Malaterre Cc: Miquel Raynal Cc: Paul Mackerras Cc: Ralf Baechle Cc: Richard Weinberger Cc: Russell King Cc: Stefan Agner Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1221a5854d4375b8b9fdf1340e6e2679b869ccd0 Author: Masahiro Yamada Date: Tue May 14 15:41:56 2019 -0700 MIPS: mark mult_sh_align_mod() as __always_inline This prepares to move CONFIG_OPTIMIZE_INLINING from x86 to a common place. We need to eliminate potential issues beforehand. If it is enabled for mips, the following error is reported: arch/mips/kernel/cpu-bugs64.c: In function 'mult_sh_align_mod.constprop': arch/mips/kernel/cpu-bugs64.c:33:2: error: asm operand 1 probably doesn't match constraints [-Werror] asm volatile( ^~~ arch/mips/kernel/cpu-bugs64.c:33:2: error: asm operand 1 probably doesn't match constraints [-Werror] asm volatile( ^~~ arch/mips/kernel/cpu-bugs64.c:33:2: error: impossible constraint in 'asm' asm volatile( ^~~ arch/mips/kernel/cpu-bugs64.c:33:2: error: impossible constraint in 'asm' asm volatile( ^~~ Link: http://lkml.kernel.org/r/20190423034959.13525-4-yamada.masahiro@socionext.com Signed-off-by: Masahiro Yamada Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Boris Brezillon Cc: Borislav Petkov Cc: Brian Norris Cc: Christophe Leroy Cc: David Woodhouse Cc: Heiko Carstens Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Marek Vasut Cc: Mark Rutland Cc: Mathieu Malaterre Cc: Miquel Raynal Cc: Paul Mackerras Cc: Ralf Baechle Cc: Richard Weinberger Cc: Russell King Cc: Stefan Agner Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 02166b88d376f21ea5caac26e7e8f74ab5578986 Author: Masahiro Yamada Date: Tue May 14 15:41:52 2019 -0700 arm64: mark (__)cpus_have_const_cap as __always_inline This prepares to move CONFIG_OPTIMIZE_INLINING from x86 to a common place. We need to eliminate potential issues beforehand. If it is enabled for arm64, the following errors are reported: In file included from include/linux/compiler_types.h:68, from : arch/arm64/include/asm/jump_label.h: In function 'cpus_have_const_cap': include/linux/compiler-gcc.h:120:38: warning: asm operand 0 probably doesn't match constraints #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0) ^~~ arch/arm64/include/asm/jump_label.h:32:2: note: in expansion of macro 'asm_volatile_goto' asm_volatile_goto( ^~~~~~~~~~~~~~~~~ include/linux/compiler-gcc.h:120:38: error: impossible constraint in 'asm' #define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0) ^~~ arch/arm64/include/asm/jump_label.h:32:2: note: in expansion of macro 'asm_volatile_goto' asm_volatile_goto( ^~~~~~~~~~~~~~~~~ Link: http://lkml.kernel.org/r/20190423034959.13525-3-yamada.masahiro@socionext.com Signed-off-by: Masahiro Yamada Tested-by: Mark Rutland Cc: Arnd Bergmann Cc: Benjamin Herrenschmidt Cc: Boris Brezillon Cc: Borislav Petkov Cc: Brian Norris Cc: Christophe Leroy Cc: David Woodhouse Cc: Heiko Carstens Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Marek Vasut Cc: Mathieu Malaterre Cc: Miquel Raynal Cc: Paul Mackerras Cc: Ralf Baechle Cc: Richard Weinberger Cc: Russell King Cc: Stefan Agner Cc: Thomas Gleixner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit be167862ae7dd85c56d385209a4890678e1b0488 Author: Arnd Bergmann Date: Tue May 14 15:41:48 2019 -0700 ARM: prevent tracing IPI_CPU_BACKTRACE Patch series "compiler: allow all arches to enable CONFIG_OPTIMIZE_INLINING", v3. This patch (of 11): When function tracing for IPIs is enabled, we get a warning for an overflow of the ipi_types array with the IPI_CPU_BACKTRACE type as triggered by raise_nmi(): arch/arm/kernel/smp.c: In function 'raise_nmi': arch/arm/kernel/smp.c:489:2: error: array subscript is above array bounds [-Werror=array-bounds] trace_ipi_raise(target, ipi_types[ipinr]); This is a correct warning as we actually overflow the array here. This patch raise_nmi() to call __smp_cross_call() instead of smp_cross_call(), to avoid calling into ftrace. For clarification, I'm also adding a two new code comments describing how this one is special. The warning appears to have shown up after commit e7273ff49acf ("ARM: 8488/1: Make IPI_CPU_BACKTRACE a "non-secure" SGI"), which changed the number assignment from '15' to '8', but as far as I can tell has existed since the IPI tracepoints were first introduced. If we decide to backport this patch to stable kernels, we probably need to backport e7273ff49acf as well. [yamada.masahiro@socionext.com: rebase on v5.1-rc1] Link: http://lkml.kernel.org/r/20190423034959.13525-2-yamada.masahiro@socionext.com Fixes: e7273ff49acf ("ARM: 8488/1: Make IPI_CPU_BACKTRACE a "non-secure" SGI") Fixes: 365ec7b17327 ("ARM: add IPI tracepoints") # v3.17 Signed-off-by: Arnd Bergmann Signed-off-by: Masahiro Yamada Cc: Heiko Carstens Cc: Arnd Bergmann Cc: Ingo Molnar Cc: Christophe Leroy Cc: Mathieu Malaterre Cc: "H. Peter Anvin" Cc: Thomas Gleixner Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Ralf Baechle Cc: Stefan Agner Cc: Boris Brezillon Cc: Miquel Raynal Cc: Richard Weinberger Cc: David Woodhouse Cc: Brian Norris Cc: Marek Vasut Cc: Russell King Cc: Borislav Petkov Cc: Mark Rutland Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 687a3e4d8e6129f064711291f1564d95472dba3e Author: Masahiro Yamada Date: Tue May 14 15:41:45 2019 -0700 treewide: remove SPDX "WITH Linux-syscall-note" from kernel-space headers The "WITH Linux-syscall-note" should be added to headers exported to the user-space. Some kernel-space headers have "WITH Linux-syscall-note", which seems a mistake. [1] arch/x86/include/asm/hyperv-tlfs.h Commit 5a4858032217 ("x86/hyper-v: move hyperv.h out of uapi") moved this file out of uapi, but missed to update the SPDX License tag. [2] include/asm-generic/shmparam.h Commit 76ce2a80a28e ("Rename include/{uapi => }/asm-generic/shmparam.h really") moved this file out of uapi, but missed to update the SPDX License tag. [3] include/linux/qcom-geni-se.h Commit eddac5af0654 ("soc: qcom: Add GENI based QUP Wrapper driver") added this file, but I do not see a good reason why its license tag must include "WITH Linux-syscall-note". Link: http://lkml.kernel.org/r/1554196104-3522-1-git-send-email-yamada.masahiro@socionext.com Signed-off-by: Masahiro Yamada Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ad312f95d41c9de19313c51e388c4984451c010f Author: Arnd Bergmann Date: Tue May 14 15:41:42 2019 -0700 fs/select: avoid clang stack usage warning The select() implementation is carefully tuned to put a sensible amount of data on the stack for holding a copy of the user space fd_set, but not too large to risk overflowing the kernel stack. When building a 32-bit kernel with clang, we need a little more space than with gcc, which often triggers a warning: fs/select.c:619:5: error: stack frame size of 1048 bytes in function 'core_sys_select' [-Werror,-Wframe-larger-than=] int core_sys_select(int n, fd_set __user *inp, fd_set __user *outp, I experimentally found that for 32-bit ARM, reducing the maximum stack usage by 64 bytes keeps us reliably under the warning limit again. Link: http://lkml.kernel.org/r/20190307090146.1874906-1-arnd@arndb.de Signed-off-by: Arnd Bergmann Reviewed-by: Andi Kleen Cc: Nick Desaulniers Cc: Alexander Viro Cc: Christoph Hellwig Cc: Eric Dumazet Cc: "Darrick J. Wong" Cc: Greg Kroah-Hartman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 134fca9063ad4851de767d1768180e5dede9a881 Author: Jiri Kosina Date: Tue May 14 15:41:38 2019 -0700 mm/mincore.c: make mincore() more conservative The semantics of what mincore() considers to be resident is not completely clear, but Linux has always (since 2.3.52, which is when mincore() was initially done) treated it as "page is available in page cache". That's potentially a problem, as that [in]directly exposes meta-information about pagecache / memory mapping state even about memory not strictly belonging to the process executing the syscall, opening possibilities for sidechannel attacks. Change the semantics of mincore() so that it only reveals pagecache information for non-anonymous mappings that belog to files that the calling process could (if it tried to) successfully open for writing; otherwise we'd be including shared non-exclusive mappings, which - is the sidechannel - is not the usecase for mincore(), as that's primarily used for data, not (shared) text [jkosina@suse.cz: v2] Link: http://lkml.kernel.org/r/20190312141708.6652-2-vbabka@suse.cz [mhocko@suse.com: restructure can_do_mincore() conditions] Link: http://lkml.kernel.org/r/nycvar.YFH.7.76.1903062342020.19912@cbobk.fhfr.pm Signed-off-by: Jiri Kosina Signed-off-by: Vlastimil Babka Acked-by: Josh Snyder Acked-by: Michal Hocko Originally-by: Linus Torvalds Originally-by: Dominique Martinet Cc: Andy Lutomirski Cc: Dave Chinner Cc: Kevin Easton Cc: Matthew Wilcox Cc: Cyril Hrubis Cc: Tejun Heo Cc: Kirill A. Shutemov Cc: Daniel Gruss Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 97500a4a54876d3d6d2d1b8419223eb4e69b32d8 Author: Dan Williams Date: Tue May 14 15:41:35 2019 -0700 mm: maintain randomization of page free lists When freeing a page with an order >= shuffle_page_order randomly select the front or back of the list for insertion. While the mm tries to defragment physical pages into huge pages this can tend to make the page allocator more predictable over time. Inject the front-back randomness to preserve the initial randomness established by shuffle_free_memory() when the kernel was booted. The overhead of this manipulation is constrained by only being applied for MAX_ORDER sized pages by default. [akpm@linux-foundation.org: coding-style fixes] Link: http://lkml.kernel.org/r/154899812788.3165233.9066631950746578517.stgit@dwillia2-desk3.amr.corp.intel.com Signed-off-by: Dan Williams Reviewed-by: Kees Cook Cc: Michal Hocko Cc: Dave Hansen Cc: Keith Busch Cc: Robert Elliott Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b03641af680959df57c275a80ff0dc116627c7ae Author: Dan Williams Date: Tue May 14 15:41:32 2019 -0700 mm: move buddy list manipulations into helpers In preparation for runtime randomization of the zone lists, take all (well, most of) the list_*() functions in the buddy allocator and put them in helper functions. Provide a common control point for injecting additional behavior when freeing pages. [dan.j.williams@intel.com: fix buddy list helpers] Link: http://lkml.kernel.org/r/155033679702.1773410.13041474192173212653.stgit@dwillia2-desk3.amr.corp.intel.com [vbabka@suse.cz: remove del_page_from_free_area() migratetype parameter] Link: http://lkml.kernel.org/r/4672701b-6775-6efd-0797-b6242591419e@suse.cz Link: http://lkml.kernel.org/r/154899812264.3165233.5219320056406926223.stgit@dwillia2-desk3.amr.corp.intel.com Signed-off-by: Dan Williams Signed-off-by: Vlastimil Babka Tested-by: Tetsuo Handa Acked-by: Michal Hocko Cc: Vlastimil Babka Cc: Dave Hansen Cc: Kees Cook Cc: Keith Busch Cc: Robert Elliott Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e900a918b0984ec8f2eb150b8477a47b75d17692 Author: Dan Williams Date: Tue May 14 15:41:28 2019 -0700 mm: shuffle initial free memory to improve memory-side-cache utilization Patch series "mm: Randomize free memory", v10. This patch (of 3): Randomization of the page allocator improves the average utilization of a direct-mapped memory-side-cache. Memory side caching is a platform capability that Linux has been previously exposed to in HPC (high-performance computing) environments on specialty platforms. In that instance it was a smaller pool of high-bandwidth-memory relative to higher-capacity / lower-bandwidth DRAM. Now, this capability is going to be found on general purpose server platforms where DRAM is a cache in front of higher latency persistent memory [1]. Robert offered an explanation of the state of the art of Linux interactions with memory-side-caches [2], and I copy it here: It's been a problem in the HPC space: http://www.nersc.gov/research-and-development/knl-cache-mode-performance-coe/ A kernel module called zonesort is available to try to help: https://software.intel.com/en-us/articles/xeon-phi-software and this abandoned patch series proposed that for the kernel: https://lkml.kernel.org/r/20170823100205.17311-1-lukasz.daniluk@intel.com Dan's patch series doesn't attempt to ensure buffers won't conflict, but also reduces the chance that the buffers will. This will make performance more consistent, albeit slower than "optimal" (which is near impossible to attain in a general-purpose kernel). That's better than forcing users to deploy remedies like: "To eliminate this gradual degradation, we have added a Stream measurement to the Node Health Check that follows each job; nodes are rebooted whenever their measured memory bandwidth falls below 300 GB/s." A replacement for zonesort was merged upstream in commit cc9aec03e58f ("x86/numa_emulation: Introduce uniform split capability"). With this numa_emulation capability, memory can be split into cache sized ("near-memory" sized) numa nodes. A bind operation to such a node, and disabling workloads on other nodes, enables full cache performance. However, once the workload exceeds the cache size then cache conflicts are unavoidable. While HPC environments might be able to tolerate time-scheduling of cache sized workloads, for general purpose server platforms, the oversubscribed cache case will be the common case. The worst case scenario is that a server system owner benchmarks a workload at boot with an un-contended cache only to see that performance degrade over time, even below the average cache performance due to excessive conflicts. Randomization clips the peaks and fills in the valleys of cache utilization to yield steady average performance. Here are some performance impact details of the patches: 1/ An Intel internal synthetic memory bandwidth measurement tool, saw a 3X speedup in a contrived case that tries to force cache conflicts. The contrived cased used the numa_emulation capability to force an instance of the benchmark to be run in two of the near-memory sized numa nodes. If both instances were placed on the same emulated they would fit and cause zero conflicts. While on separate emulated nodes without randomization they underutilized the cache and conflicted unnecessarily due to the in-order allocation per node. 2/ A well known Java server application benchmark was run with a heap size that exceeded cache size by 3X. The cache conflict rate was 8% for the first run and degraded to 21% after page allocator aging. With randomization enabled the rate levelled out at 11%. 3/ A MongoDB workload did not observe measurable difference in cache-conflict rates, but the overall throughput dropped by 7% with randomization in one case. 4/ Mel Gorman ran his suite of performance workloads with randomization enabled on platforms without a memory-side-cache and saw a mix of some improvements and some losses [3]. While there is potentially significant improvement for applications that depend on low latency access across a wide working-set, the performance may be negligible to negative for other workloads. For this reason the shuffle capability defaults to off unless a direct-mapped memory-side-cache is detected. Even then, the page_alloc.shuffle=0 parameter can be specified to disable the randomization on those systems. Outside of memory-side-cache utilization concerns there is potentially security benefit from randomization. Some data exfiltration and return-oriented-programming attacks rely on the ability to infer the location of sensitive data objects. The kernel page allocator, especially early in system boot, has predictable first-in-first out behavior for physical pages. Pages are freed in physical address order when first onlined. Quoting Kees: "While we already have a base-address randomization (CONFIG_RANDOMIZE_MEMORY), attacks against the same hardware and memory layouts would certainly be using the predictability of allocation ordering (i.e. for attacks where the base address isn't important: only the relative positions between allocated memory). This is common in lots of heap-style attacks. They try to gain control over ordering by spraying allocations, etc. I'd really like to see this because it gives us something similar to CONFIG_SLAB_FREELIST_RANDOM but for the page allocator." While SLAB_FREELIST_RANDOM reduces the predictability of some local slab caches it leaves vast bulk of memory to be predictably in order allocated. However, it should be noted, the concrete security benefits are hard to quantify, and no known CVE is mitigated by this randomization. Introduce shuffle_free_memory(), and its helper shuffle_zone(), to perform a Fisher-Yates shuffle of the page allocator 'free_area' lists when they are initially populated with free memory at boot and at hotplug time. Do this based on either the presence of a page_alloc.shuffle=Y command line parameter, or autodetection of a memory-side-cache (to be added in a follow-on patch). The shuffling is done in terms of CONFIG_SHUFFLE_PAGE_ORDER sized free pages where the default CONFIG_SHUFFLE_PAGE_ORDER is MAX_ORDER-1 i.e. 10, 4MB this trades off randomization granularity for time spent shuffling. MAX_ORDER-1 was chosen to be minimally invasive to the page allocator while still showing memory-side cache behavior improvements, and the expectation that the security implications of finer granularity randomization is mitigated by CONFIG_SLAB_FREELIST_RANDOM. The performance impact of the shuffling appears to be in the noise compared to other memory initialization work. This initial randomization can be undone over time so a follow-on patch is introduced to inject entropy on page free decisions. It is reasonable to ask if the page free entropy is sufficient, but it is not enough due to the in-order initial freeing of pages. At the start of that process putting page1 in front or behind page0 still keeps them close together, page2 is still near page1 and has a high chance of being adjacent. As more pages are added ordering diversity improves, but there is still high page locality for the low address pages and this leads to no significant impact to the cache conflict rate. [1]: https://itpeernetwork.intel.com/intel-optane-dc-persistent-memory-operating-modes/ [2]: https://lkml.kernel.org/r/AT5PR8401MB1169D656C8B5E121752FC0F8AB120@AT5PR8401MB1169.NAMPRD84.PROD.OUTLOOK.COM [3]: https://lkml.org/lkml/2018/10/12/309 [dan.j.williams@intel.com: fix shuffle enable] Link: http://lkml.kernel.org/r/154943713038.3858443.4125180191382062871.stgit@dwillia2-desk3.amr.corp.intel.com [cai@lca.pw: fix SHUFFLE_PAGE_ALLOCATOR help texts] Link: http://lkml.kernel.org/r/20190425201300.75650-1-cai@lca.pw Link: http://lkml.kernel.org/r/154899811738.3165233.12325692939590944259.stgit@dwillia2-desk3.amr.corp.intel.com Signed-off-by: Dan Williams Signed-off-by: Qian Cai Reviewed-by: Kees Cook Acked-by: Michal Hocko Cc: Dave Hansen Cc: Keith Busch Cc: Robert Elliott Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4d36e6f8040486f5945a3ba8a741eafe9d1d023a Author: Uladzislau Rezki (Sony) Date: Tue May 14 15:41:25 2019 -0700 mm/vmalloc.c: convert vmap_lazy_nr to atomic_long_t vmap_lazy_nr variable has atomic_t type that is 4 bytes integer value on both 32 and 64 bit systems. lazy_max_pages() deals with "unsigned long" that is 8 bytes on 64 bit system, thus vmap_lazy_nr should be 8 bytes on 64 bit as well. Link: http://lkml.kernel.org/r/20190131162452.25879-1-urezki@gmail.com Signed-off-by: Uladzislau Rezki (Sony) Reviewed-by: Andrew Morton Reviewed-by: William Kucharski Cc: Michal Hocko Cc: Matthew Wilcox Cc: Thomas Garnier Cc: Oleksiy Avramchenko Cc: Joel Fernandes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 68571be99f323c3c3db62a8513a43380ccefe97c Author: Uladzislau Rezki (Sony) Date: Tue May 14 15:41:22 2019 -0700 mm/vmalloc.c: add priority threshold to __purge_vmap_area_lazy() Commit 763b218ddfaf ("mm: add preempt points into __purge_vmap_area_lazy()") introduced some preempt points, one of those is making an allocation more prioritized over lazy free of vmap areas. Prioritizing an allocation over freeing does not work well all the time, i.e. it should be rather a compromise. 1) Number of lazy pages directly influences the busy list length thus on operations like: allocation, lookup, unmap, remove, etc. 2) Under heavy stress of vmalloc subsystem I run into a situation when memory usage gets increased hitting out_of_memory -> panic state due to completely blocking of logic that frees vmap areas in the __purge_vmap_area_lazy() function. Establish a threshold passing which the freeing is prioritized back over allocation creating a balance between each other. Using vmalloc test driver in "stress mode", i.e. When all available test cases are run simultaneously on all online CPUs applying a pressure on the vmalloc subsystem, my HiKey 960 board runs out of memory due to the fact that __purge_vmap_area_lazy() logic simply is not able to free pages in time. How I run it: 1) You should build your kernel with CONFIG_TEST_VMALLOC=m 2) ./tools/testing/selftests/vm/test_vmalloc.sh stress During this test "vmap_lazy_nr" pages will go far beyond acceptable lazy_max_pages() threshold, that will lead to enormous busy list size and other problems including allocation time and so on. Link: http://lkml.kernel.org/r/20190124115648.9433-3-urezki@gmail.com Signed-off-by: Uladzislau Rezki (Sony) Reviewed-by: Andrew Morton Cc: Michal Hocko Cc: Matthew Wilcox Cc: Thomas Garnier Cc: Oleksiy Avramchenko Cc: Steven Rostedt Cc: Joel Fernandes Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Tejun Heo Cc: Joel Fernandes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit df5ba5be7425e1df296d40c5f37a39d98ec666a2 Author: Dan Schatzberg Date: Tue May 14 15:41:18 2019 -0700 kernel/sched/psi.c: expose pressure metrics on root cgroup Pressure metrics are already recorded and exposed in procfs for the entire system, but any tool which monitors cgroup pressure has to special case the root cgroup to read from procfs. This patch exposes the already recorded pressure metrics on the root cgroup. Link: http://lkml.kernel.org/r/20190510174938.3361741-1-dschatzberg@fb.com Signed-off-by: Dan Schatzberg Acked-by: Johannes Weiner Cc: Tejun Heo Cc: Li Zefan Cc: Ingo Molnar Cc: Peter Zijlstra Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 0e94682b73bfa6c44c98af7a26771c9c08c055d5 Author: Suren Baghdasaryan Date: Tue May 14 15:41:15 2019 -0700 psi: introduce psi monitor Psi monitor aims to provide a low-latency short-term pressure detection mechanism configurable by users. It allows users to monitor psi metrics growth and trigger events whenever a metric raises above user-defined threshold within user-defined time window. Time window and threshold are both expressed in usecs. Multiple psi resources with different thresholds and window sizes can be monitored concurrently. Psi monitors activate when system enters stall state for the monitored psi metric and deactivate upon exit from the stall state. While system is in the stall state psi signal growth is monitored at a rate of 10 times per tracking window. Min window size is 500ms, therefore the min monitoring interval is 50ms. Max window size is 10s with monitoring interval of 1s. When activated psi monitor stays active for at least the duration of one tracking window to avoid repeated activations/deactivations when psi signal is bouncing. Notifications to the users are rate-limited to one per tracking window. Link: http://lkml.kernel.org/r/20190319235619.260832-8-surenb@google.com Signed-off-by: Suren Baghdasaryan Signed-off-by: Johannes Weiner Cc: Dennis Zhou Cc: Ingo Molnar Cc: Jens Axboe Cc: Li Zefan Cc: Peter Zijlstra Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8af0c18af1425fc70686c0fdcfc0072cd8431aa0 Author: Suren Baghdasaryan Date: Tue May 14 15:41:12 2019 -0700 include/: refactor headers to allow kthread.h inclusion in psi_types.h kthread.h can't be included in psi_types.h because it creates a circular inclusion with kthread.h eventually including psi_types.h and complaining on kthread structures not being defined because they are defined further in the kthread.h. Resolve this by removing psi_types.h inclusion from the headers included from kthread.h. Link: http://lkml.kernel.org/r/20190319235619.260832-7-surenb@google.com Signed-off-by: Suren Baghdasaryan Acked-by: Johannes Weiner Cc: Dennis Zhou Cc: Ingo Molnar Cc: Jens Axboe Cc: Li Zefan Cc: Peter Zijlstra Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 333f3017c5a893b000b2b4a3529814ce93fa83d7 Author: Suren Baghdasaryan Date: Tue May 14 15:41:09 2019 -0700 psi: track changed states Introduce changed_states parameter into collect_percpu_times to track the states changed since the last update. This will be needed to detect whether polled states activated in the monitor patch. Link: http://lkml.kernel.org/r/20190319235619.260832-6-surenb@google.com Signed-off-by: Suren Baghdasaryan Acked-by: Johannes Weiner Cc: Dennis Zhou Cc: Ingo Molnar Cc: Jens Axboe Cc: Li Zefan Cc: Peter Zijlstra Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7fc70a3999366560ad1d4f2389a78360300c2c6a Author: Suren Baghdasaryan Date: Tue May 14 15:41:06 2019 -0700 psi: split update_stats into parts Split update_stats into collect_percpu_times and update_averages for collect_percpu_times to be reused later inside psi monitor. Link: http://lkml.kernel.org/r/20190319235619.260832-5-surenb@google.com Signed-off-by: Suren Baghdasaryan Acked-by: Johannes Weiner Cc: Dennis Zhou Cc: Ingo Molnar Cc: Jens Axboe Cc: Li Zefan Cc: Peter Zijlstra Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit bcc78db64168eb6dede056fed2999f75f7ace309 Author: Suren Baghdasaryan Date: Tue May 14 15:41:02 2019 -0700 psi: rename psi fields in preparation for psi trigger addition Rename psi_group structure member fields used for calculating psi totals and averages for clear distinction between them and for trigger-related fields that will be added by "psi: introduce psi monitor". [surenb@google.com: v6] Link: http://lkml.kernel.org/r/20190319235619.260832-4-surenb@google.com Link: http://lkml.kernel.org/r/20190124211518.244221-5-surenb@google.com Signed-off-by: Suren Baghdasaryan Acked-by: Johannes Weiner Cc: Dennis Zhou Cc: Ingo Molnar Cc: Jens Axboe Cc: Li Zefan Cc: Peter Zijlstra Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9289c5e6a78a5a9397df5fa60eb82b105abcfecf Author: Suren Baghdasaryan Date: Tue May 14 15:40:59 2019 -0700 psi: make psi_enable static psi_enable is not used outside of psi.c, make it static. Link: http://lkml.kernel.org/r/20190319235619.260832-3-surenb@google.com Signed-off-by: Suren Baghdasaryan Suggested-by: Andrew Morton Acked-by: Johannes Weiner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 33b2d6302abc4ccea1d9b3f095e2e27b02ca264e Author: Suren Baghdasaryan Date: Tue May 14 15:40:56 2019 -0700 psi: introduce state_mask to represent stalled psi states Patch series "psi: pressure stall monitors", v6. This is a respin of: https://lwn.net/ml/linux-kernel/20190308184311.144521-1-surenb%40google.com/ Android is adopting psi to detect and remedy memory pressure that results in stuttering and decreased responsiveness on mobile devices. Psi gives us the stall information, but because we're dealing with latencies in the millisecond range, periodically reading the pressure files to detect stalls in a timely fashion is not feasible. Psi also doesn't aggregate its averages at a high-enough frequency right now. This patch series extends the psi interface such that users can configure sensitive latency thresholds and use poll() and friends to be notified when these are breached. As high-frequency aggregation is costly, it implements an aggregation method that is optimized for fast, short-interval averaging, and makes the aggregation frequency adaptive, such that high-frequency updates only happen while monitored stall events are actively occurring. With these patches applied, Android can monitor for, and ward off, mounting memory shortages before they cause problems for the user. For example, using memory stall monitors in userspace low memory killer daemon (lmkd) we can detect mounting pressure and kill less important processes before device becomes visibly sluggish. In our memory stress testing psi memory monitors produce roughly 10x less false positives compared to vmpressure signals. Having ability to specify multiple triggers for the same psi metric allows other parts of Android framework to monitor memory state of the device and act accordingly. The new interface is straight-forward. The user opens one of the pressure files for writing and writes a trigger description into the file descriptor that defines the stall state - some or full, and the maximum stall time over a given window of time. E.g.: /* Signal when stall time exceeds 100ms of a 1s window */ char trigger[] = "full 100000 1000000" fd = open("/proc/pressure/memory") write(fd, trigger, sizeof(trigger)) while (poll() >= 0) { ... }; close(fd); When the monitored stall state is entered, psi adapts its aggregation frequency according to what the configured time window requires in order to emit event signals in a timely fashion. Once the stalling subsides, aggregation reverts back to normal. The trigger is associated with the open file descriptor. To stop monitoring, the user only needs to close the file descriptor and the trigger is discarded. Patches 1-6 prepare the psi code for polling support. Patch 7 implements the adaptive polling logic, the pressure growth detection optimized for short intervals, and hooks up write() and poll() on the pressure files. The patches were developed in collaboration with Johannes Weiner. This patch (of 7): The psi monitoring patches will need to determine the same states as record_times(). To avoid calculating them twice, maintain a state mask that can be consulted cheaply. Do this in a separate patch to keep the churn in the main feature patch at a minimum. This adds 4-byte state_mask member into psi_group_cpu struct which results in its first cacheline-aligned part becoming 52 bytes long. Add explicit values to enumeration element counters that affect psi_group_cpu struct size. Link: http://lkml.kernel.org/r/20190124211518.244221-4-surenb@google.com Signed-off-by: Suren Baghdasaryan Acked-by: Johannes Weiner Cc: Dennis Zhou Cc: Ingo Molnar Cc: Jens Axboe Cc: Li Zefan Cc: Peter Zijlstra Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 136ac591f047fc356072343eb85687f7c6ea191d Author: Baruch Siach Date: Tue May 14 15:40:53 2019 -0700 mm: update references to page _refcount Commit 0139aa7b7fa ("mm: rename _count, field of the struct page, to _refcount") left out a couple of references to the old field name. Fix that. Link: http://lkml.kernel.org/r/cedf87b02eb8a6b3eac57e8e91da53fb15c3c44c.1556537475.git.baruch@tkos.co.il Fixes: 0139aa7b7fa ("mm: rename _count, field of the struct page, to _refcount") Signed-off-by: Baruch Siach Reviewed-by: Andrew Morton Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 987717e5e016a0dd3011d3bb16546672713f94e2 Author: Andrea Arcangeli Date: Tue May 14 15:40:50 2019 -0700 mm: change mm_update_next_owner() to update mm->owner with WRITE_ONCE The RCU reader uses rcu_dereference() inside rcu_read_lock critical sections, so the writer shall use WRITE_ONCE. Just a cleanup, we still rely on gcc to emit atomic writes in other places. Link: http://lkml.kernel.org/r/20190325225636.11635-3-aarcange@redhat.com Signed-off-by: Andrea Arcangeli Reviewed-by: Andrew Morton Cc: Hugh Dickins Cc: Jann Horn Cc: Jason Gunthorpe Cc: "Kirill A . Shutemov" Cc: Michal Hocko Cc: Mike Kravetz Cc: Mike Rapoport Cc: Oleg Nesterov Cc: Peter Xu Cc: zhong jiang Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c3f3ce049f7d97cc7ec9c01cb51d9ec74e0f37c2 Author: Andrea Arcangeli Date: Tue May 14 15:40:46 2019 -0700 userfaultfd: use RCU to free the task struct when fork fails The task structure is freed while get_mem_cgroup_from_mm() holds rcu_read_lock() and dereferences mm->owner. get_mem_cgroup_from_mm() failing fork() ---- --- task = mm->owner mm->owner = NULL; free(task) if (task) *task; /* use after free */ The fix consists in freeing the task with RCU also in the fork failure case, exactly like it always happens for the regular exit(2) path. That is enough to make the rcu_read_lock hold in get_mem_cgroup_from_mm() (left side above) effective to avoid a use after free when dereferencing the task structure. An alternate possible fix would be to defer the delivery of the userfaultfd contexts to the monitor until after fork() is guaranteed to succeed. Such a change would require more changes because it would create a strict ordering dependency where the uffd methods would need to be called beyond the last potentially failing branch in order to be safe. This solution as opposed only adds the dependency to common code to set mm->owner to NULL and to free the task struct that was pointed by mm->owner with RCU, if fork ends up failing. The userfaultfd methods can still be called anywhere during the fork runtime and the monitor will keep discarding orphaned "mm" coming from failed forks in userland. This race condition couldn't trigger if CONFIG_MEMCG was set =n at build time. [aarcange@redhat.com: improve changelog, reduce #ifdefs per Michal] Link: http://lkml.kernel.org/r/20190429035752.4508-1-aarcange@redhat.com Link: http://lkml.kernel.org/r/20190325225636.11635-2-aarcange@redhat.com Fixes: 893e26e61d04 ("userfaultfd: non-cooperative: Add fork() event") Signed-off-by: Andrea Arcangeli Tested-by: zhong jiang Reported-by: syzbot+cbb52e396df3e565ab02@syzkaller.appspotmail.com Cc: Oleg Nesterov Cc: Jann Horn Cc: Hugh Dickins Cc: Mike Rapoport Cc: Mike Kravetz Cc: Peter Xu Cc: Jason Gunthorpe Cc: "Kirill A . Shutemov" Cc: Michal Hocko Cc: zhong jiang Cc: syzbot+cbb52e396df3e565ab02@syzkaller.appspotmail.com Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit acb2ec3dd003b50b6fb5772057a08ec0dc45d42a Author: Andrew Morton Date: Tue May 14 15:40:43 2019 -0700 kernel/Makefile: don't assume that kernel/gen_ikh_data.sh is executable If the user downloads and applies patch-5.1.gz using patch(1), the x bit on kernel/gen_ikh_data.sh is not set. /bin/sh: 1: ./kernel/gen_ikh_data.sh: Permission denied Fix this by using CONFIG_SHELL. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 44a9bd18a0f06bba19d155aeaa11e2edce898293 Author: Jens Axboe Date: Tue May 14 20:00:30 2019 -0600 io_uring: fix failure to verify SQ_AFF cpu The test case we have is rightfully failing with the current kernel: io_uring_setup(1, 0x7ffe2cafebe0), flags: IORING_SETUP_SQPOLL|IORING_SETUP_SQ_AFF, resv: 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000, sq_thread_cpu: 4 expected -1, got 3 This is in a vm, and CPU3 is the last valid one, hence asking for 4 should fail the setup with -EINVAL, not succeed. The problem is that we're using array_index_nospec() with nr_cpu_ids as the index, hence we wrap and end up using CPU0 instead of CPU4. This makes the setup succeed where it should be failing. We don't need to use array_index_nospec() as we're not indexing any array with this. Instead just compare with nr_cpu_ids directly. This is fine as we're checking with cpu_online() afterwards. Signed-off-by: Jens Axboe commit 7338874c337f01dc84597a5500a588732725ffc6 Author: Michael Ellerman Date: Tue May 14 23:00:58 2019 +1000 powerpc/mm: Fix crashes with hugepages & 4K pages The recent commit to cleanup ifdefs in the hugepage initialisation led to crashes when using 4K pages as reported by Sachin: BUG: Kernel NULL pointer dereference at 0x0000001c Faulting instruction address: 0xc000000001d1e58c Oops: Kernel access of bad area, sig: 11 [#1] LE PAGE_SIZE=4K MMU=Hash SMP NR_CPUS=2048 NUMA pSeries ... CPU: 3 PID: 4635 Comm: futex_wake04 Tainted: G W O 5.1.0-next-20190507-autotest #1 NIP: c000000001d1e58c LR: c000000001d1e54c CTR: 0000000000000000 REGS: c000000004937890 TRAP: 0300 MSR: 8000000000009033 CR: 22424822 XER: 00000000 CFAR: c00000000183e9e0 DAR: 000000000000001c DSISR: 40000000 IRQMASK: 0 ... NIP kmem_cache_alloc+0xbc/0x5a0 LR kmem_cache_alloc+0x7c/0x5a0 Call Trace: huge_pte_alloc+0x580/0x950 hugetlb_fault+0x9a0/0x1250 handle_mm_fault+0x490/0x4a0 __do_page_fault+0x77c/0x1f00 do_page_fault+0x28/0x50 handle_page_fault+0x18/0x38 This is caused by us trying to allocate from a NULL kmem cache in __hugepte_alloc(). The kmem cache is NULL because it was never allocated in hugetlbpage_init(), because add_huge_page_size() returned an error. The reason add_huge_page_size() returned an error is a simple typo, we are calling check_and_get_huge_psize(size) when we should be passing shift instead. The fact that we're able to trigger this path when the kmem caches are NULL is a separate bug, ie. we should not advertise any hugepage sizes if we haven't setup the required caches for them. This was only seen with 4K pages, with 64K pages we don't need to allocate any extra kmem caches because the 16M hugepage just occupies a single entry at the PMD level. Fixes: 723f268f19da ("powerpc/mm: cleanup ifdef mess in add_huge_page_size()") Reported-by: Sachin Sant Tested-by: Sachin Sant Signed-off-by: Michael Ellerman Reviewed-by: Christophe Leroy Reviewed-by: Aneesh Kumar K.V commit 61c2018c0743fe0c9ca68e308b5727b8a7c3d544 Author: Shuah Khan Date: Tue May 14 14:43:44 2019 -0600 selftests: avoid KBUILD_OUTPUT dir cluttering with selftest objects Running "make kselftest" or building selftests when KBUILD_OUTPUT is set, will create selftest objects in the KBUILD_OUTPUT directory. This could be undesirable especially when user didn't intend to relocate selftest objects. Use KBUILD_OUTPUT/kselftest to create selftest objects instead of cluttering the main directory. Signed-off-by: Shuah Khan commit 11ebd85a07e0c84b037a47a19a040b31d7869df3 Author: Kelsey Skunberg Date: Sat May 11 23:04:52 2019 -0600 selftests: drivers: Create .gitignore to include /dma-buf/udmabuf Create ../selftests/drivers/.gitignore which holds the following file name created after compiling: - /dma-buf/udmabuf Signed-off-by: Kelsey Skunberg Signed-off-by: Shuah Khan commit 4d0b5f4d7561d54f08640836e1c2eafb50e3286a Author: Kelsey Skunberg Date: Sat May 11 22:57:11 2019 -0600 selftests: pidfd: Create .gitignore to include pidfd_test Create ../selftests/pidfd/.gitignore which holds the following file name created after compiling: - pidfd_test Signed-off-by: Kelsey Skunberg Signed-off-by: Shuah Khan commit cb07d915bf278a7a3938b983bbcb4921366b5eff Author: Pieter Jansen van Vuuren Date: Tue May 14 14:28:19 2019 -0700 nfp: flower: add rcu locks when accessing netdev for tunnels Add rcu locks when accessing netdev when processing route request and tunnel keep alive messages received from hardware. Fixes: 8e6a9046b66a ("nfp: flower vxlan neighbour offload") Fixes: 856f5b135758 ("nfp: flower vxlan neighbour keep-alive") Signed-off-by: Pieter Jansen van Vuuren Reviewed-by: Jakub Kicinski Reviewed-by: John Hurley Signed-off-by: David S. Miller commit 3ebe1bca58c85325c97a22d4fc3f5b5420752e6f Author: YueHaibing Date: Tue May 14 22:55:32 2019 +0800 ppp: deflate: Fix possible crash in deflate_init BUG: unable to handle kernel paging request at ffffffffa018f000 PGD 3270067 P4D 3270067 PUD 3271063 PMD 2307eb067 PTE 0 Oops: 0000 [#1] PREEMPT SMP CPU: 0 PID: 4138 Comm: modprobe Not tainted 5.1.0-rc7+ #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2014 RIP: 0010:ppp_register_compressor+0x3e/0xd0 [ppp_generic] Code: 98 4a 3f e2 48 8b 15 c1 67 00 00 41 8b 0c 24 48 81 fa 40 f0 19 a0 75 0e eb 35 48 8b 12 48 81 fa 40 f0 19 a0 74 RSP: 0018:ffffc90000d93c68 EFLAGS: 00010287 RAX: ffffffffa018f000 RBX: ffffffffa01a3000 RCX: 000000000000001a RDX: ffff888230c750a0 RSI: 0000000000000000 RDI: ffffffffa019f000 RBP: ffffc90000d93c80 R08: 0000000000000001 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: ffffffffa0194080 R13: ffff88822ee1a700 R14: 0000000000000000 R15: ffffc90000d93e78 FS: 00007f2339557540(0000) GS:ffff888237a00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffffffffa018f000 CR3: 000000022bde4000 CR4: 00000000000006f0 Call Trace: ? 0xffffffffa01a3000 deflate_init+0x11/0x1000 [ppp_deflate] ? 0xffffffffa01a3000 do_one_initcall+0x6c/0x3cc ? kmem_cache_alloc_trace+0x248/0x3b0 do_init_module+0x5b/0x1f1 load_module+0x1db1/0x2690 ? m_show+0x1d0/0x1d0 __do_sys_finit_module+0xc5/0xd0 __x64_sys_finit_module+0x15/0x20 do_syscall_64+0x6b/0x1d0 entry_SYSCALL_64_after_hwframe+0x49/0xbe If ppp_deflate fails to register in deflate_init, module initialization failed out, however ppp_deflate_draft may has been regiestred and not unregistered before return. Then the seconed modprobe will trigger crash like this. Reported-by: Hulk Robot Signed-off-by: YueHaibing Acked-by: Guillaume Nault Signed-off-by: David S. Miller commit f413cbb332a0b5251a790f396d0eb4ebcade5dec Author: Luca Ceresoli Date: Tue May 14 15:23:07 2019 +0200 net: macb: fix error format in dev_err() Errors are negative numbers. Using %u shows them as very large positive numbers such as 4294967277 that don't make sense. Use the %d format instead, and get a much nicer -19. Signed-off-by: Luca Ceresoli Fixes: b48e0bab142f ("net: macb: Migrate to devm clock interface") Fixes: 93b31f48b3ba ("net/macb: unify clock management") Fixes: 421d9df0628b ("net/macb: merge at91_ether driver into macb driver") Fixes: aead88bd0e99 ("net: ethernet: macb: Add support for rx_clk") Fixes: f5473d1d44e4 ("net: macb: Support clock management for tsu_clk") Acked-by: Nicolas Ferre Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit feadc4b6cf42a53a8a93c918a569a0b7e62bd350 Author: Sabrina Dubroca Date: Tue May 14 15:12:19 2019 +0200 rtnetlink: always put IFLA_LINK for links with a link-netnsid Currently, nla_put_iflink() doesn't put the IFLA_LINK attribute when iflink == ifindex. In some cases, a device can be created in a different netns with the same ifindex as its parent. That device will not dump its IFLA_LINK attribute, which can confuse some userspace software that expects it. For example, if the last ifindex created in init_net and foo are both 8, these commands will trigger the issue: ip link add parent type dummy # ifindex 9 ip link add link parent netns foo type macvlan # ifindex 9 in ns foo So, in case a device puts the IFLA_LINK_NETNSID attribute in a dump, always put the IFLA_LINK attribute as well. Thanks to Dan Winship for analyzing the original OpenShift bug down to the missing netlink attribute. v2: change Fixes tag, it's been here forever, as Nicolas Dichtel said add Nicolas' ack v3: change Fixes tag fix subject typo, spotted by Edward Cree Analyzed-by: Dan Winship Fixes: d8a5ec672768 ("[NET]: netlink support for moving devices between network namespaces.") Signed-off-by: Sabrina Dubroca Acked-by: Nicolas Dichtel Signed-off-by: David S. Miller commit 00f9fec48157f3734e52130a119846e67a12314b Author: Yunjian Wang Date: Tue May 14 19:03:19 2019 +0800 net/mlx4_core: Change the error print to info print The error print within mlx4_flow_steer_promisc_add() should be a info print. Fixes: 592e49dda812 ('net/mlx4: Implement promiscuous mode with device managed flow-steering') Signed-off-by: Yunjian Wang Reviewed-by: Tariq Toukan Signed-off-by: David S. Miller commit d0a7e8cb3c9d7d4fa2bcdd557be19f0841e2a3be Author: Johannes Berg Date: Tue May 14 11:02:31 2019 +0200 NFC: Orphan the subsystem Samuel clearly hasn't been working on this in many years and patches getting to the wireless list are just being ignored entirely now. Mark the subsystem as orphan to reflect the current state and revert back to the netdev list so at least some fixes can be picked up by Dave. Signed-off-by: Johannes Berg Acked-by: Samuel Ortiz Signed-off-by: David S. Miller commit 0fe9f173d6cda95874edeb413b1fa9907b5ae830 Author: Florian Fainelli Date: Mon May 13 14:06:24 2019 -0700 net: Always descend into dsa/ Jiri reported that with a kernel built with CONFIG_FIXED_PHY=y, CONFIG_NET_DSA=m and CONFIG_NET_DSA_LOOP=m, we would not get to a functional state where the mock-up driver is registered. Turns out that we are not descending into drivers/net/dsa/ unconditionally, and we won't be able to link-in dsa_loop_bdinfo.o which does the actual mock-up mdio device registration. Reported-by: Jiri Pirko Fixes: 40013ff20b1b ("net: dsa: Fix functional dsa-loop dependency on FIXED_PHY") Signed-off-by: Florian Fainelli Reviewed-by: Vivien Didelot Tested-by: Jiri Pirko Signed-off-by: David S. Miller commit cd736d8b67fb22a85a68c1ee8020eb0d660615ec Author: Yuchung Cheng Date: Mon May 13 10:32:05 2019 -0700 tcp: fix retrans timestamp on passive Fast Open Commit c7d13c8faa74 ("tcp: properly track retry time on passive Fast Open") sets the start of SYNACK retransmission time on passive Fast Open in "retrans_stamp". However the timestamp is not reset upon the handshake has completed. As a result, future data packet retransmission may not update it in tcp_retransmit_skb(). This may lead to socket aborting earlier unexpectedly by retransmits_timed_out() since retrans_stamp remains the SYNACK rtx time. This bug only manifests on passive TFO sender that a) suffered SYNACK timeout and then b) stalls on very first loss recovery. Any successful loss recovery would reset the timestamp to avoid this issue. Fixes: c7d13c8faa74 ("tcp: properly track retry time on passive Fast Open") Signed-off-by: Yuchung Cheng Signed-off-by: Neal Cardwell Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 3e01ae2612bdd7975c74ec7123d7f8f5e6eed795 Author: Guenter Roeck Date: Mon May 13 07:46:21 2019 -0700 drm/pl111: Initialize clock spinlock early The following warning is seen on systems with broken clock divider. INFO: trying to register non-static key. the code is fine but needs lockdep annotation. turning off the locking correctness validator. CPU: 0 PID: 1 Comm: swapper Not tainted 5.1.0-09698-g1fb3b52 #1 Hardware name: ARM Integrator/CP (Device Tree) [] (unwind_backtrace) from [] (show_stack+0x10/0x18) [] (show_stack) from [] (dump_stack+0x18/0x24) [] (dump_stack) from [] (register_lock_class+0x674/0x6f8) [] (register_lock_class) from [] (__lock_acquire+0x68/0x2128) [] (__lock_acquire) from [] (lock_acquire+0x110/0x21c) [] (lock_acquire) from [] (_raw_spin_lock+0x34/0x48) [] (_raw_spin_lock) from [] (pl111_display_enable+0xf8/0x5fc) [] (pl111_display_enable) from [] (drm_atomic_helper_commit_modeset_enables+0x1ec/0x244) Since commit eedd6033b4c8 ("drm/pl111: Support variants with broken clock divider"), the spinlock is not initialized if the clock divider is broken. Initialize it earlier to fix the problem. Fixes: eedd6033b4c8 ("drm/pl111: Support variants with broken clock divider") Cc: Linus Walleij Signed-off-by: Guenter Roeck Signed-off-by: Linus Walleij Link: https://patchwork.freedesktop.org/patch/msgid/1557758781-23586-1-git-send-email-linux@roeck-us.net commit 7f46d23e1b14f0827eb19c60eedcc6525ca2e742 Author: Long Li Date: Mon May 13 21:01:29 2019 -0700 cifs:smbd Use the correct DMA direction when sending data When sending data, use the DMA_TO_DEVICE to map buffers. Also log the number of requests in a compounding request from upper layer. Signed-off-by: Long Li Signed-off-by: Steve French Acked-by: Pavel Shilovsky Acked-by: Ronnie Sahlberg commit 1d2a4f57cebdab1d496b976a1e6ea998dc9b03c8 Author: Long Li Date: Mon May 13 21:01:28 2019 -0700 cifs:smbd When reconnecting to server, call smbd_destroy() after all MIDs have been called commit 214bab448476 ("cifs: Call MID callback before destroying transport") assumes that the MID callback should not take srv_mutex, this may not always be true. SMB Direct requires the MID callback completed before calling transport so all pending memory registration can be freed. So restore the original calling sequence so TCP transport will use the same code, but moving smbd_destroy() after all MID has been called. fixes: 214bab448476 ("cifs: Call MID callback before destroying transport") Signed-off-by: Long Li Signed-off-by: Steve French Reviewed-by: Pavel Shilovsky commit baf5964ecfe19a0109fe2e497e72840ce0f488e6 Author: Lubomir Rintel Date: Sat May 11 10:56:14 2019 +0200 power: supply: olpc_battery: force the le/be casts The endianness of data returned from the EC depends on the particular EC version determined at run time. Cast from little/big endian explicitey in the routine that flips endianness to the native one to make sparse happy. Signed-off-by: Lubomir Rintel Reported-by: kbuild test robot Fixes: 76311b9a3295 ("power: supply: olpc_battery: Add OLPC XO 1.75 support") Signed-off-by: Sebastian Reichel commit 35c99ffa20edd3c24be352d28a63cd3a23121282 Merge: 814137768b5a 050f4c4d2fbb Author: Linus Torvalds Date: Tue May 14 14:12:59 2019 -0700 Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost Pull virtio updates from Michael Tsirkin: - enable packed ring support for s390 - several fixes * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: virtio/s390: enable packed ring virtio/s390: DMA support for virtio-ccw virtio/s390: use vring_create_virtqueue virtio/virtio_ring: do some comment fixes vhost-scsi: remove incorrect memory barrier tools/virtio/ringtest: Remove bogus definition of BUG_ON() virtio_ring: Fix potential mem leak in virtqueue_add_indirect_packed commit 814137768b5a9504f758aa760e7b1ac355539783 Author: Linus Torvalds Date: Tue May 14 13:30:10 2019 -0700 Add gitignore file for samples/vfs/ generated files Commit f1b5618e013a ("vfs: Add a sample program for the new mount API") added sample programs that get built during the kernel build, but then cause 'git status' to worry about whether the resulting binaries should be managed by git. Tell git not to worry, and to ignore the sample binaries. Signed-off-by: Linus Torvalds commit b2c91128212a4c1a36bd3085191bff21a34324be Merge: ca4b40629f4e 4e617c86ba9b Author: Linus Torvalds Date: Tue May 14 13:17:19 2019 -0700 Merge branch 'parisc-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux Pull more parisc updates from Helge Deller: "Two small enhancements, which I didn't included in the last pull request because I wanted to keep them a few more days in for-next before sending upstream: - Replace the ldcw barrier instruction by a nop instruction in the CAS code on uniprocessor machines. - Map variables read-only after init (enable ro_after_init feature)" * 'parisc-5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: parisc: Use __ro_after_init in init.c parisc: Use __ro_after_init in unwind.c parisc: Use __ro_after_init in time.c parisc: Use __ro_after_init in processor.c parisc: Use __ro_after_init in process.c parisc: Use __ro_after_init in perf_images.h parisc: Use __ro_after_init in pci.c parisc: Use __ro_after_init in inventory.c parisc: Use __ro_after_init in head.S parisc: Use __ro_after_init in firmware.c parisc: Use __ro_after_init in drivers.c parisc: Use __ro_after_init in cache.c parisc: Enable the ro_after_init feature parisc: Drop LDCW barrier in CAS code when running UP commit ca4b40629f4edd3a961bedcd118e3ad05439ec71 Merge: 280664f558c9 ca976bfb3154 Author: Linus Torvalds Date: Tue May 14 13:14:10 2019 -0700 Merge tag 'kgdb-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/danielt/linux Pull kgdb updates from Daniel Thompson: "Mostly cleanups but there are also a couple of fixes for out-of-bounds accesses (including a potential write to the byte before a static buffer). The main changes are: - Fixes to those out-of-bounds access (empty string to configure test module could write the byte before a buffer, high cpu counts could read outside of per-cpu structures). - Improvements to string handling problems picked up by new compiler warnings and other static checks. Most are fixing benign issues that can't be tickled without code changes but still reduce the wtf factor a little. - Tidy up the terminal output" * tag 'kgdb-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/danielt/linux: kdb: Fix bound check compiler warning kdb: do a sanity check on the cpu in kdb_per_cpu() kdb: Get rid of broken attempt to print CCVERSION in kdb summary misc: kgdbts: fix out-of-bounds access in function param_set_kgdbts_var kdb: kdb_support: replace strcpy() by strscpy() gdbstub: Replace strcpy() by strscpy() gdbstub: mark expected switch fall-throughs commit 280664f558c9d973315d48f125eb664cc607d089 Merge: e0654264c480 dadec066d8fa Author: Linus Torvalds Date: Tue May 14 10:55:54 2019 -0700 Merge tag 'modules-for-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux Pull modules updates from Jessica Yu: - Use a separate table to store symbol types instead of hijacking fields in struct Elf_Sym - Trivial code cleanups * tag 'modules-for-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux: module: add stubs for within_module functions kallsyms: store type information in its own array vmlinux.lds.h: drop unused __vermagic commit 90f94660e53189755676543954101de78c26253b Author: Brian Masney Date: Mon May 13 19:41:05 2019 -0400 drm/msm: correct attempted NULL pointer dereference in debugfs msm_gem_describe() would attempt to dereference a NULL pointer via the address space pointer when no IOMMU is present. Correct this by adding the appropriate check. Signed-off-by: Brian Masney Fixes: 575f0485508b ("drm/msm: Clean up and enhance the output of the 'gem' debugfs node") Signed-off-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190513234105.7531-2-masneyb@onstation.org commit 5db17c96771ffa735f5cdfbd9b44f52f319f2637 Merge: 2474c62898c6 d2baab62a143 Author: Alexei Starovoitov Date: Tue May 14 10:47:29 2019 -0700 Merge branch 'lru-map-fix' Daniel Borkmann says: ==================== This set fixes LRU map eviction in combination with map lookups out of system call side from user space. Main patch is the second one and test cases are adapted and added in the last one. Thanks! ==================== Acked-by: Andrii Nakryiko Signed-off-by: Alexei Starovoitov commit d2baab62a1434d3f81ce83e82cbc53e7f2843bbc Author: Daniel Borkmann Date: Tue May 14 01:18:57 2019 +0200 bpf: test ref bit from data path and add new tests for syscall path The test_lru_map is relying on marking the LRU map entry via regular BPF map lookup from system call side. This is basically for simplicity reasons. Given we fixed marking entries in that case, the test needs to be fixed as well. Here we add a small drop-in replacement to retain existing behavior for the tests by marking out of the BPF program and transferring the retrieved value out via temporary map. This also adds new test cases to track the new behavior where two elements are marked, one via system call side and one via program side, where the next update then evicts the key looked up only from system call side. # ./test_lru_map nr_cpus:8 test_lru_sanity0 (map_type:9 map_flags:0x0): Pass test_lru_sanity1 (map_type:9 map_flags:0x0): Pass test_lru_sanity2 (map_type:9 map_flags:0x0): Pass test_lru_sanity3 (map_type:9 map_flags:0x0): Pass test_lru_sanity4 (map_type:9 map_flags:0x0): Pass test_lru_sanity5 (map_type:9 map_flags:0x0): Pass test_lru_sanity7 (map_type:9 map_flags:0x0): Pass test_lru_sanity8 (map_type:9 map_flags:0x0): Pass test_lru_sanity0 (map_type:10 map_flags:0x0): Pass test_lru_sanity1 (map_type:10 map_flags:0x0): Pass test_lru_sanity2 (map_type:10 map_flags:0x0): Pass test_lru_sanity3 (map_type:10 map_flags:0x0): Pass test_lru_sanity4 (map_type:10 map_flags:0x0): Pass test_lru_sanity5 (map_type:10 map_flags:0x0): Pass test_lru_sanity7 (map_type:10 map_flags:0x0): Pass test_lru_sanity8 (map_type:10 map_flags:0x0): Pass test_lru_sanity0 (map_type:9 map_flags:0x2): Pass test_lru_sanity4 (map_type:9 map_flags:0x2): Pass test_lru_sanity6 (map_type:9 map_flags:0x2): Pass test_lru_sanity7 (map_type:9 map_flags:0x2): Pass test_lru_sanity8 (map_type:9 map_flags:0x2): Pass test_lru_sanity0 (map_type:10 map_flags:0x2): Pass test_lru_sanity4 (map_type:10 map_flags:0x2): Pass test_lru_sanity6 (map_type:10 map_flags:0x2): Pass test_lru_sanity7 (map_type:10 map_flags:0x2): Pass test_lru_sanity8 (map_type:10 map_flags:0x2): Pass Signed-off-by: Daniel Borkmann Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit 50b045a8c0ccf44f76640ac3eea8d80ca53979a3 Author: Daniel Borkmann Date: Tue May 14 01:18:56 2019 +0200 bpf, lru: avoid messing with eviction heuristics upon syscall lookup One of the biggest issues we face right now with picking LRU map over regular hash table is that a map walk out of user space, for example, to just dump the existing entries or to remove certain ones, will completely mess up LRU eviction heuristics and wrong entries such as just created ones will get evicted instead. The reason for this is that we mark an entry as "in use" via bpf_lru_node_set_ref() from system call lookup side as well. Thus upon walk, all entries are being marked, so information of actual least recently used ones are "lost". In case of Cilium where it can be used (besides others) as a BPF based connection tracker, this current behavior causes disruption upon control plane changes that need to walk the map from user space to evict certain entries. Discussion result from bpfconf [0] was that we should simply just remove marking from system call side as no good use case could be found where it's actually needed there. Therefore this patch removes marking for regular LRU and per-CPU flavor. If there ever should be a need in future, the behavior could be selected via map creation flag, but due to mentioned reason we avoid this here. [0] http://vger.kernel.org/bpfconf.html Fixes: 29ba732acbee ("bpf: Add BPF_MAP_TYPE_LRU_HASH") Fixes: 8f8449384ec3 ("bpf: Add BPF_MAP_TYPE_LRU_PERCPU_HASH") Signed-off-by: Daniel Borkmann Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit c6110222c6f49ea68169f353565eb865488a8619 Author: Daniel Borkmann Date: Tue May 14 01:18:55 2019 +0200 bpf: add map_lookup_elem_sys_only for lookups from syscall side Add a callback map_lookup_elem_sys_only() that map implementations could use over map_lookup_elem() from system call side in case the map implementation needs to handle the latter differently than from the BPF data path. If map_lookup_elem_sys_only() is set, this will be preferred pick for map lookups out of user space. This hook is used in a follow-up fix for LRU map, but once development window opens, we can convert other map types from map_lookup_elem() (here, the one called upon BPF_MAP_LOOKUP_ELEM cmd is meant) over to use the callback to simplify and clean up the latter. Signed-off-by: Daniel Borkmann Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit e0654264c4806dc436b291294a0fbf9be7571ab6 Merge: ebcf5bb28241 8fbce8efe15c Author: Linus Torvalds Date: Tue May 14 10:45:03 2019 -0700 Merge tag 'backlight-next-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight Pull backlight updates from Lee Jones: "Fix-ups: - Remove unused BACKLIGHT_LCD_SUPPORT symbol - Remove unused BACKLIGHT_CLASS_DEVICE dependencies - Add DT support to lm3630a_bl Bug Fixes: - Fix error path issues in lm3630a_bl" * tag 'backlight-next-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight: backlight: lm3630a: Add firmware node support dt-bindings: backlight: Add lm3630a bindings backlight: lm3630a: Return 0 on success in update_status functions video: lcd: Remove useless BACKLIGHT_CLASS_DEVICE dependencies video: backlight: Remove useless BACKLIGHT_LCD_SUPPORT kernel symbol commit ebcf5bb28241fe3ddc9e786e3816848a10f688b8 Merge: 414147d99b92 ed835136ee67 Author: Linus Torvalds Date: Tue May 14 10:39:08 2019 -0700 Merge tag 'mfd-next-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd Pull MFD updates from Lee Jones: "Core Framework: - Document (kerneldoc) core mfd_add_devices() API New Drivers: - Altera SOCFPGA System Manager - Maxim MAX77650/77651 PMIC - Maxim MAX77663 PMIC - ST Multi-Function eXpander (STMFX) New Device Support: - LEDs support in Intel Cherry Trail Whiskey Cove PMIC - RTC support in SAMSUNG Electronics S2MPA01 PMIC - SAM9X60 support in Atmel HLCDC (High-end LCD Controller) - USB X-Powers AXP 8xx PMICs - Integrated Sensor Hub (ISH) in ChromeOS EC - USB PD Logger in ChromeOS EC - AXP223 in X-Powers AXP series PMICs - Power Supply in X-Powers AXP 803 PMICs - Comet Lake in Intel Low Power Subsystem - Fingerprint MCU in ChromeOS EC - Touchpad MCU in ChromeOS EC - Move TI LM3532 support to LED New Functionality: - max77650, max77620: Add/extend DT support - max77620 power-off - syscon clocking - croc_ec host sleep event Fix-ups: - Trivial; Formatting, spelling, etc; Kconfig, sec-core, ab8500-debugfs - Remove unused functionality; rk808, da9063-* - SPDX conversion; da9063-*, atmel-*, - Adapt/add new register definitions; cs47l35-tables, cs47l90-tables, imx6q-iomuxc-gpr - Fix-up DT bindings; ti-lmu, cirrus,lochnagar - Simply obtaining driver data; ssbi, t7l66xb, tc6387xb, tc6393xb Bug Fixes: - Fix incorrect defined values; max77620, da9063 - Fix device initialisation; twl6040 - Reset device on init; intel-lpss - Fix build warnings when !OF; sun6i-prcm - Register OF match tables; tps65912-spi - Fix DMI matching; intel_quark_i2c_gpio" * tag 'mfd-next-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (65 commits) mfd: Use dev_get_drvdata() directly mfd: cros_ec: Instantiate properly CrOS Touchpad MCU device mfd: cros_ec: Instantiate properly CrOS FP MCU device mfd: cros_ec: Update the EC feature codes mfd: intel-lpss: Add Intel Comet Lake PCI IDs mfd: lochnagar: Add links to binding docs for sound and hwmon mfd: ab8500-debugfs: Fix a typo ("deubgfs") mfd: imx6sx: Add MQS register definition for iomuxc gpr dt-bindings: mfd: LMU: Fix lm3632 dt binding example mfd: intel_quark_i2c_gpio: Adjust IOT2000 matching mfd: da9063: Fix OTP control register names to match datasheets for DA9063/63L mfd: tps65912-spi: Add missing of table registration mfd: axp20x: Add USB power supply mfd cell to AXP803 mfd: sun6i-prcm: Fix build warning for non-OF configurations mfd: intel-lpss: Set the device in reset state when init platform/chrome: Add support for v1 of host sleep event mfd: cros_ec: Add host_sleep_event_v1 command mfd: cros_ec: Instantiate the CrOS USB PD logger driver mfd: cs47l90: Make DAC_AEC_CONTROL_2 readable mfd: cs47l35: Make DAC_AEC_CONTROL_2 readable ... commit 414147d99b928c574ed76e9374a5d2cb77866a29 Merge: 318222a35bfb c7a1c2bbb65e Author: Linus Torvalds Date: Tue May 14 10:30:10 2019 -0700 Merge tag 'pci-v5.2-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci Pull PCI updates from Bjorn Helgaas: "Enumeration changes: - Add _HPX Type 3 settings support, which gives firmware more influence over device configuration (Alexandru Gagniuc) - Support fixed bus numbers from bridge Enhanced Allocation capabilities (Subbaraya Sundeep) - Add "external-facing" DT property to identify cases where we require IOMMU protection against untrusted devices (Jean-Philippe Brucker) - Enable PCIe services for host controller drivers that use managed host bridge alloc (Jean-Philippe Brucker) - Log PCIe port service messages with pci_dev, not the pcie_device (Frederick Lawler) - Convert pciehp from pciehp_debug module parameter to generic dynamic debug (Frederick Lawler) Peer-to-peer DMA: - Add whitelist of Root Complexes that support peer-to-peer DMA between Root Ports (Christian König) Native controller drivers: - Add PCI host bridge DMA ranges for bridges that can't DMA everywhere, e.g., iProc (Srinath Mannam) - Add Amazon Annapurna Labs PCIe host controller driver (Jonathan Chocron) - Fix Tegra MSI target allocation so DMA doesn't generate unwanted MSIs (Vidya Sagar) - Fix of_node reference leaks (Wen Yang) - Fix Hyper-V module unload & device removal issues (Dexuan Cui) - Cleanup R-Car driver (Marek Vasut) - Cleanup Keystone driver (Kishon Vijay Abraham I) - Cleanup i.MX6 driver (Andrey Smirnov) Significant bug fixes: - Reset Lenovo ThinkPad P50 GPU so nouveau works after reboot (Lyude Paul) - Fix Switchtec firmware update performance issue (Wesley Sheng) - Work around Pericom switch link retraining erratum (Stefan Mätje)" * tag 'pci-v5.2-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (141 commits) MAINTAINERS: Add Karthikeyan Mitran and Hou Zhiqiang for Mobiveil PCI PCI: pciehp: Remove pointless MY_NAME definition PCI: pciehp: Remove pointless PCIE_MODULE_NAME definition PCI: pciehp: Remove unused dbg/err/info/warn() wrappers PCI: pciehp: Log messages with pci_dev, not pcie_device PCI: pciehp: Replace pciehp_debug module param with dyndbg PCI: pciehp: Remove pciehp_debug uses PCI/AER: Log messages with pci_dev, not pcie_device PCI/DPC: Log messages with pci_dev, not pcie_device PCI/PME: Replace dev_printk(KERN_DEBUG) with dev_info() PCI/AER: Replace dev_printk(KERN_DEBUG) with dev_info() PCI: Replace dev_printk(KERN_DEBUG) with dev_info(), etc PCI: Replace printk(KERN_INFO) with pr_info(), etc PCI: Use dev_printk() when possible PCI: Cleanup setup-bus.c comments and whitespace PCI: imx6: Allow asynchronous probing PCI: dwc: Save root bus for driver remove hooks PCI: dwc: Use devm_pci_alloc_host_bridge() to simplify code PCI: dwc: Free MSI in dw_pcie_host_init() error path PCI: dwc: Free MSI IRQ page in dw_pcie_free_msi() ... commit 318222a35bfb0ae9b5ff3e359a583463e6cfcd94 Merge: 7e9890a3500d 640be2d1ffbc Author: Linus Torvalds Date: Tue May 14 10:10:55 2019 -0700 Merge branch 'akpm' (patches from Andrew) Merge misc updates from Andrew Morton: - a few misc things and hotfixes - ocfs2 - almost all of MM * emailed patches from Andrew Morton : (139 commits) kernel/memremap.c: remove the unused device_private_entry_fault() export mm: delete find_get_entries_tag mm/huge_memory.c: make __thp_get_unmapped_area static mm/mprotect.c: fix compilation warning because of unused 'mm' variable mm/page-writeback: introduce tracepoint for wait_on_page_writeback() mm/vmscan: simplify trace_reclaim_flags and trace_shrink_flags mm/Kconfig: update "Memory Model" help text mm/vmscan.c: don't disable irq again when count pgrefill for memcg mm: memblock: make keeping memblock memory opt-in rather than opt-out hugetlbfs: always use address space in inode for resv_map pointer mm/z3fold.c: support page migration mm/z3fold.c: add structure for buddy handles mm/z3fold.c: improve compression by extending search mm/z3fold.c: introduce helper functions mm/page_alloc.c: remove unnecessary parameter in rmqueue_pcplist mm/hmm: add ARCH_HAS_HMM_MIRROR ARCH_HAS_HMM_DEVICE Kconfig mm/vmscan.c: simplify shrink_inactive_list() fs/sync.c: sync_file_range(2) may use WB_SYNC_ALL writeback xen/privcmd-buf.c: convert to use vm_map_pages_zero() xen/gntdev.c: convert to use vm_map_pages() ... commit 640be2d1ffbc1946f1547eb89b5005ed7542de99 Author: Christoph Hellwig Date: Mon May 13 17:23:23 2019 -0700 kernel/memremap.c: remove the unused device_private_entry_fault() export This export has been entirely unused since it was added more than 1 1/2 years ago. Link: http://lkml.kernel.org/r/20190429115535.12793-1-hch@lst.de Signed-off-by: Christoph Hellwig Reviewed-by: Dan Williams Reviewed-by: Andrew Morton Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a1b8e6abf35b9903807eced67a4c26e440663620 Author: Matthew Wilcox (Oracle) Date: Mon May 13 17:23:20 2019 -0700 mm: delete find_get_entries_tag I removed the only user of this and hadn't noticed it was now unused. Link: http://lkml.kernel.org/r/20190430152929.21813-1-willy@infradead.org Signed-off-by: Matthew Wilcox (Oracle) Reviewed-by: Ross Zwisler Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b3b07077b01ecbbd98efede778c195567de25b71 Author: Bharath Vedartham Date: Mon May 13 17:23:17 2019 -0700 mm/huge_memory.c: make __thp_get_unmapped_area static __thp_get_unmapped_area is only used in mm/huge_memory.c. Make it static. Tested by building and booting the kernel. Link: http://lkml.kernel.org/r/20190504102353.GA22525@bharath12345-Inspiron-5559 Signed-off-by: Bharath Vedartham Acked-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 94393c78964c432917014e3a456fa15c3e78f741 Author: Mike Rapoport Date: Mon May 13 17:23:14 2019 -0700 mm/mprotect.c: fix compilation warning because of unused 'mm' variable Since 0cbe3e26abe0 ("mm: update ptep_modify_prot_start/commit to take vm_area_struct as arg") the only place that uses the local 'mm' variable in change_pte_range() is the call to set_pte_at(). Many architectures define set_pte_at() as macro that does not use the 'mm' parameter, which generates the following compilation warning: CC mm/mprotect.o mm/mprotect.c: In function 'change_pte_range': mm/mprotect.c:42:20: warning: unused variable 'mm' [-Wunused-variable] struct mm_struct *mm = vma->vm_mm; ^~ Fix it by passing vma->mm to set_pte_at() and dropping the local 'mm' variable in change_pte_range(). [liu.song.a23@gmail.com: fix missed conversions] Link: http://lkml.kernel.org/r/CAPhsuW6wcQgYLHNdBdw6m0YiR4RWsS4XzfpSKU7wBLLeOCTbpw@mail.gmail.comLink: http://lkml.kernel.org/r/1557305432-4940-1-git-send-email-rppt@linux.ibm.com Signed-off-by: Mike Rapoport Reviewed-by: Andrew Morton Cc: Song Liu Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 19343b5bdd16ad4ae6b845ef829f68b683c4dfb5 Author: Yafang Shao Date: Mon May 13 17:23:11 2019 -0700 mm/page-writeback: introduce tracepoint for wait_on_page_writeback() Recently there have been some hung tasks on our server due to wait_on_page_writeback(), and we want to know the details of this PG_writeback, i.e. this page is writing back to which device. But it is not so convenient to get the details. I think it would be better to introduce a tracepoint for diagnosing the writeback details. Link: http://lkml.kernel.org/r/1556274402-19018-1-git-send-email-laoar.shao@gmail.com Signed-off-by: Yafang Shao Reviewed-by: Andrew Morton Cc: Jan Kara Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 60b62ff7cc4217ac3de76535fa4c1510a798dbcb Author: Yafang Shao Date: Mon May 13 17:23:08 2019 -0700 mm/vmscan: simplify trace_reclaim_flags and trace_shrink_flags trace_reclaim_flags and trace_shrink_flags are almost the same. We can simplify them to avoid redundant code. Link: http://lkml.kernel.org/r/1556169203-5858-1-git-send-email-laoar.shao@gmail.com Signed-off-by: Yafang Shao Reviewed-by: Andrew Morton Cc: Michal Hocko Cc: Johannes Weiner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d66d109d3c9c31f4c2140a5ac6ab486c53cb0156 Author: Mike Rapoport Date: Mon May 13 17:23:05 2019 -0700 mm/Kconfig: update "Memory Model" help text The help describing the memory model selection is outdated. It still says that SPARSEMEM is experimental and DISCONTIGMEM is a preferred over SPARSEMEM. Update the help text for the relevant options: * add a generic help for the "Memory Model" prompt * add description for FLATMEM * reduce the description of DISCONTIGMEM and add a deprecation note * prefer SPARSEMEM over DISCONTIGMEM Link: http://lkml.kernel.org/r/1556188531-20728-1-git-send-email-rppt@linux.ibm.com Signed-off-by: Mike Rapoport Acked-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2fa2690ca6174dfd36df85918ce5eb2f83e4d1b1 Author: Yafang Shao Date: Mon May 13 17:23:02 2019 -0700 mm/vmscan.c: don't disable irq again when count pgrefill for memcg We can use __count_memcg_events() directly because this callsite is alreay protected by spin_lock_irq(). Link: http://lkml.kernel.org/r/1556093494-30798-1-git-send-email-laoar.shao@gmail.com Signed-off-by: Yafang Shao Reviewed-by: Andrew Morton Acked-by: Michal Hocko Cc: Johannes Weiner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 350e88bad4964da6feabee02a1a70381bcdb087e Author: Mike Rapoport Date: Mon May 13 17:22:59 2019 -0700 mm: memblock: make keeping memblock memory opt-in rather than opt-out Most architectures do not need the memblock memory after the page allocator is initialized, but only few enable ARCH_DISCARD_MEMBLOCK in the arch Kconfig. Replacing ARCH_DISCARD_MEMBLOCK with ARCH_KEEP_MEMBLOCK and inverting the logic makes it clear which architectures actually use memblock after system initialization and skips the necessity to add ARCH_DISCARD_MEMBLOCK to the architectures that are still missing that option. Link: http://lkml.kernel.org/r/1556102150-32517-1-git-send-email-rppt@linux.ibm.com Signed-off-by: Mike Rapoport Acked-by: Michael Ellerman (powerpc) Cc: Russell King Cc: Catalin Marinas Cc: Will Deacon Cc: Richard Kuo Cc: Tony Luck Cc: Fenghua Yu Cc: Geert Uytterhoeven Cc: Ralf Baechle Cc: Paul Burton Cc: James Hogan Cc: Ley Foon Tan Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Martin Schwidefsky Cc: Heiko Carstens Cc: Yoshinori Sato Cc: Rich Felker Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Borislav Petkov Cc: "H. Peter Anvin" Cc: Eric Biederman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f27a5136f70a8c90e8b30a983b6f54540742f849 Author: Mike Kravetz Date: Mon May 13 17:22:55 2019 -0700 hugetlbfs: always use address space in inode for resv_map pointer Continuing discussion about 58b6e5e8f1ad ("hugetlbfs: fix memory leak for resv_map") brought up the issue that inode->i_mapping may not point to the address space embedded within the inode at inode eviction time. The hugetlbfs truncate routine handles this by explicitly using inode->i_data. However, code cleaning up the resv_map will still use the address space pointed to by inode->i_mapping. Luckily, private_data is NULL for address spaces in all such cases today but, there is no guarantee this will continue. Change all hugetlbfs code getting a resv_map pointer to explicitly get it from the address space embedded within the inode. In addition, add more comments in the code to indicate why this is being done. Link: http://lkml.kernel.org/r/20190419204435.16984-1-mike.kravetz@oracle.com Signed-off-by: Mike Kravetz Reported-by: Yufen Yu Cc: Michal Hocko Cc: Naoya Horiguchi Cc: "Kirill A . Shutemov" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1f862989b04ade61d3aab49184c50e9957f84c7d Author: Vitaly Wool Date: Mon May 13 17:22:52 2019 -0700 mm/z3fold.c: support page migration Now that we are not using page address in handles directly, we can make z3fold pages movable to decrease the memory fragmentation z3fold may create over time. This patch starts advertising non-headless z3fold pages as movable and uses the existing kernel infrastructure to implement moving of such pages per memory management subsystem's request. It thus implements 3 required callbacks for page migration: * isolation callback: z3fold_page_isolate(): try to isolate the page by removing it from all lists. Pages scheduled for some activity and mapped pages will not be isolated. Return true if isolation was successful or false otherwise * migration callback: z3fold_page_migrate(): re-check critical conditions and migrate page contents to the new page provided by the memory subsystem. Returns 0 on success or negative error code otherwise * putback callback: z3fold_page_putback(): put back the page if z3fold_page_migrate() for it failed permanently (i. e. not with -EAGAIN code). [lkp@intel.com: z3fold_page_isolate() can be static] Link: http://lkml.kernel.org/r/20190419130924.GA161478@ivb42 Link: http://lkml.kernel.org/r/20190417103922.31253da5c366c4ebe0419cfc@gmail.com Signed-off-by: Vitaly Wool Signed-off-by: kbuild test robot Cc: Bartlomiej Zolnierkiewicz Cc: Dan Streetman Cc: Krzysztof Kozlowski Cc: Oleksiy Avramchenko Cc: Uladzislau Rezki Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7c2b8baa61fe578af905342938ad12f8dbaeae79 Author: Vitaly Wool Date: Mon May 13 17:22:49 2019 -0700 mm/z3fold.c: add structure for buddy handles For z3fold to be able to move its pages per request of the memory subsystem, it should not use direct object addresses in handles. Instead, it will create abstract handles (3 per page) which will contain pointers to z3fold objects. Thus, it will be possible to change these pointers when z3fold page is moved. Link: http://lkml.kernel.org/r/20190417103826.484eaf18c1294d682769880f@gmail.com Signed-off-by: Vitaly Wool Cc: Bartlomiej Zolnierkiewicz Cc: Dan Streetman Cc: Krzysztof Kozlowski Cc: Oleksiy Avramchenko Cc: Uladzislau Rezki Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 351618b203acef13946a03ecf18fbe328c3cdb58 Author: Vitaly Wool Date: Mon May 13 17:22:46 2019 -0700 mm/z3fold.c: improve compression by extending search The current z3fold implementation only searches this CPU's page lists for a fitting page to put a new object into. This patch adds quick search for very well fitting pages (i. e. those having exactly the required number of free space) on other CPUs too, before allocating a new page for that object. Link: http://lkml.kernel.org/r/20190417103733.72ae81abe1552397c95a008e@gmail.com Signed-off-by: Vitaly Wool Cc: Bartlomiej Zolnierkiewicz Cc: Dan Streetman Cc: Krzysztof Kozlowski Cc: Oleksiy Avramchenko Cc: Uladzislau Rezki Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9050cce104c04982fb7b5dea9aee4f66f245d6d3 Author: Vitaly Wool Date: Mon May 13 17:22:43 2019 -0700 mm/z3fold.c: introduce helper functions Patch series "z3fold: support page migration", v2. This patchset implements page migration support and slightly better buddy search. To implement page migration support, z3fold has to move away from the current scheme of handle encoding. i. e. stop encoding page address in handles. Instead, a small per-page structure is created which will contain actual addresses for z3fold objects, while pointers to fields of that structure will be used as handles. Thus, it will be possible to change the underlying addresses to reflect page migration. To support migration itself, 3 callbacks will be implemented: 1: isolation callback: z3fold_page_isolate(): try to isolate the page by removing it from all lists. Pages scheduled for some activity and mapped pages will not be isolated. Return true if isolation was successful or false otherwise 2: migration callback: z3fold_page_migrate(): re-check critical conditions and migrate page contents to the new page provided by the system. Returns 0 on success or negative error code otherwise 3: putback callback: z3fold_page_putback(): put back the page if z3fold_page_migrate() for it failed permanently (i. e. not with -EAGAIN code). To make sure an isolated page doesn't get freed, its kref is incremented in z3fold_page_isolate() and decremented during post-migration compaction, if migration was successful, or by z3fold_page_putback() in the other case. Since the new handle encoding scheme implies slight memory consumption increase, better buddy search (which decreases memory consumption) is included in this patchset. This patch (of 4): Introduce a separate helper function for object allocation, as well as 2 smaller helpers to add a buddy to the list and to get a pointer to the pool from the z3fold header. No functional changes here. Link: http://lkml.kernel.org/r/20190417103633.a4bb770b5bf0fb7e43ce1666@gmail.com Signed-off-by: Vitaly Wool Cc: Dan Streetman Cc: Bartlomiej Zolnierkiewicz Cc: Krzysztof Kozlowski Cc: Oleksiy Avramchenko Cc: Uladzislau Rezki Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1c52e6d0681020e2272c0cbce270dd91a215e7d3 Author: Yafang Shao Date: Mon May 13 17:22:40 2019 -0700 mm/page_alloc.c: remove unnecessary parameter in rmqueue_pcplist Because rmqueue_pcplist() is only called when order is 0, we don't need to use order as a parameter. Link: http://lkml.kernel.org/r/1555591709-11744-1-git-send-email-laoar.shao@gmail.com Signed-off-by: Yafang Shao Acked-by: Michal Hocko Acked-by: Pankaj Gupta Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2c8fc3dcf2dc5cc06c30b63deada4237cd5bf8af Author: Jérôme Glisse Date: Mon May 13 17:22:37 2019 -0700 mm/hmm: add ARCH_HAS_HMM_MIRROR ARCH_HAS_HMM_DEVICE Kconfig Add 2 new Kconfig variables that are not used by anyone. I check that various make ARCH=somearch allmodconfig do work and do not complain. This new Kconfig needs to be added first so that device drivers that depend on HMM can be updated. Once drivers are updated then I can update the HMM Kconfig to depend on this new Kconfig in a followup patch. This is about solving Kconfig for HMM given that device driver are going through their own tree we want to avoid changing them from the mm tree. So plan is: 1 - Kernel release N add the new Kconfig to mm/Kconfig (this patch) 2 - Kernel release N+1 update driver to depend on new Kconfig ie stop using ARCH_HASH_HMM and start using ARCH_HAS_HMM_MIRROR and ARCH_HAS_HMM_DEVICE (one or the other or both depending on the driver) 3 - Kernel release N+2 remove ARCH_HASH_HMM and do final Kconfig update in mm/Kconfig Link: http://lkml.kernel.org/r/20190417211141.17580-1-jglisse@redhat.com Signed-off-by: Jérôme Glisse Cc: Guenter Roeck Cc: Leon Romanovsky Cc: Jason Gunthorpe Cc: Ralph Campbell Cc: John Hubbard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f46b79120e94f92843a83db1d9ece482ee735d3a Author: Kirill Tkhai Date: Mon May 13 17:22:33 2019 -0700 mm/vmscan.c: simplify shrink_inactive_list() This merges together duplicated patterns of code. Also, replace count_memcg_events() with its irq-careless namesake, because they are already called in interrupts disabled context. Link: http://lkml.kernel.org/r/2ece1df4-2989-bc9b-6172-61e9fdde5bfd@virtuozzo.com Signed-off-by: Kirill Tkhai Acked-by: Michal Hocko Reviewed-by: Daniel Jordan Acked-by: Johannes Weiner Cc: Baoquan He Cc: Davidlohr Bueso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c553ea4fdf2701d64b9e9cca4497a8a2512bb025 Author: Amir Goldstein Date: Mon May 13 17:22:30 2019 -0700 fs/sync.c: sync_file_range(2) may use WB_SYNC_ALL writeback 23d0127096cb ("fs/sync.c: make sync_file_range(2) use WB_SYNC_NONE writeback") claims that sync_file_range(2) syscall was "created for userspace to be able to issue background writeout and so waiting for in-flight IO is undesirable there" and changes the writeback (back) to WB_SYNC_NONE. This claim is only partially true. It is true for users that use the flag SYNC_FILE_RANGE_WRITE by itself, as does PostgreSQL, the user that was the reason for changing to WB_SYNC_NONE writeback. However, that claim is not true for users that use that flag combination SYNC_FILE_RANGE_{WAIT_BEFORE|WRITE|_WAIT_AFTER}. Those users explicitly requested to wait for in-flight IO as well as to writeback of dirty pages. Re-brand that flag combination as SYNC_FILE_RANGE_WRITE_AND_WAIT and use WB_SYNC_ALL writeback to perform the full range sync request. Link: http://lkml.kernel.org/r/20190409114922.30095-1-amir73il@gmail.com Link: http://lkml.kernel.org/r/20190419072938.31320-1-amir73il@gmail.com Fixes: 23d0127096cb ("fs/sync.c: make sync_file_range(2) use WB_SYNC_NONE") Signed-off-by: Amir Goldstein Acked-by: Jan Kara Cc: Dave Chinner Cc: Al Viro Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5326905798dee047bc6216da63ecf2c93c15968e Author: Souptick Joarder Date: Mon May 13 17:22:27 2019 -0700 xen/privcmd-buf.c: convert to use vm_map_pages_zero() Convert to use vm_map_pages_zero() to map range of kernel memory to user vma. This driver has ignored vm_pgoff. We could later "fix" these drivers to behave according to the normal vm_pgoff offsetting simply by removing the _zero suffix on the function name and if that causes regressions, it gives us an easy way to revert. Link: http://lkml.kernel.org/r/acf678e81d554d01a9b590716ac0ccbdcdf71c25.1552921225.git.jrdr.linux@gmail.com Signed-off-by: Souptick Joarder Reviewed-by: Boris Ostrovsky Cc: David Airlie Cc: Heiko Stuebner Cc: Joerg Roedel Cc: Joonsoo Kim Cc: Juergen Gross Cc: Kees Cook Cc: "Kirill A. Shutemov" Cc: Kyungmin Park Cc: Marek Szyprowski Cc: Matthew Wilcox Cc: Mauro Carvalho Chehab Cc: Michal Hocko Cc: Mike Rapoport Cc: Oleksandr Andrushchenko Cc: Pawel Osciak Cc: Peter Zijlstra Cc: Rik van Riel Cc: Robin Murphy Cc: Russell King Cc: Sandy Huang Cc: Stefan Richter Cc: Stephen Rothwell Cc: Thierry Reding Cc: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit df9bde015a72ffd978e39a750662c7cf579b1715 Author: Souptick Joarder Date: Mon May 13 17:22:23 2019 -0700 xen/gntdev.c: convert to use vm_map_pages() Convert to use vm_map_pages() to map range of kernel memory to user vma. map->count is passed to vm_map_pages() and internal API verify map->count against count ( count = vma_pages(vma)) for page array boundary overrun condition. Link: http://lkml.kernel.org/r/88e56e82d2db98705c2d842e9c9806c00b366d67.1552921225.git.jrdr.linux@gmail.com Signed-off-by: Souptick Joarder Reviewed-by: Boris Ostrovsky Cc: David Airlie Cc: Heiko Stuebner Cc: Joerg Roedel Cc: Joonsoo Kim Cc: Juergen Gross Cc: Kees Cook Cc: "Kirill A. Shutemov" Cc: Kyungmin Park Cc: Marek Szyprowski Cc: Matthew Wilcox Cc: Mauro Carvalho Chehab Cc: Michal Hocko Cc: Mike Rapoport Cc: Oleksandr Andrushchenko Cc: Pawel Osciak Cc: Peter Zijlstra Cc: Rik van Riel Cc: Robin Murphy Cc: Russell King Cc: Sandy Huang Cc: Stefan Richter Cc: Stephen Rothwell Cc: Thierry Reding Cc: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a17ae14766935aaccd7e7629d1ccf980341ffd24 Author: Souptick Joarder Date: Mon May 13 17:22:19 2019 -0700 videobuf2/videobuf2-dma-sg.c: convert to use vm_map_pages() Convert to use vm_map_pages() to map range of kernel memory to user vma. vm_pgoff is treated in V4L2 API as a 'cookie' to select a buffer, not as a in-buffer offset by design and it always want to mmap a whole buffer from its beginning. Link: http://lkml.kernel.org/r/a953fe6b3056de1cc6eab654effdd4a22f125375.1552921225.git.jrdr.linux@gmail.com Signed-off-by: Souptick Joarder Suggested-by: Marek Szyprowski Reviewed-by: Marek Szyprowski Cc: Boris Ostrovsky Cc: David Airlie Cc: Heiko Stuebner Cc: Joerg Roedel Cc: Joonsoo Kim Cc: Juergen Gross Cc: Kees Cook Cc: "Kirill A. Shutemov" Cc: Kyungmin Park Cc: Matthew Wilcox Cc: Mauro Carvalho Chehab Cc: Michal Hocko Cc: Mike Rapoport Cc: Oleksandr Andrushchenko Cc: Pawel Osciak Cc: Peter Zijlstra Cc: Rik van Riel Cc: Robin Murphy Cc: Russell King Cc: Sandy Huang Cc: Stefan Richter Cc: Stephen Rothwell Cc: Thierry Reding Cc: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b0d0084fd906c0a067909e45d3cc4cc01ceee33f Author: Souptick Joarder Date: Mon May 13 17:22:15 2019 -0700 iommu/dma-iommu.c: convert to use vm_map_pages() Convert to use vm_map_pages() to map range of kernel memory to user vma. Link: http://lkml.kernel.org/r/80c3d220fc6ada73a88ce43ca049afb55a889258.1552921225.git.jrdr.linux@gmail.com Signed-off-by: Souptick Joarder Cc: Boris Ostrovsky Cc: David Airlie Cc: Heiko Stuebner Cc: Joerg Roedel Cc: Joonsoo Kim Cc: Juergen Gross Cc: Kees Cook Cc: "Kirill A. Shutemov" Cc: Kyungmin Park Cc: Marek Szyprowski Cc: Matthew Wilcox Cc: Mauro Carvalho Chehab Cc: Michal Hocko Cc: Mike Rapoport Cc: Oleksandr Andrushchenko Cc: Pawel Osciak Cc: Peter Zijlstra Cc: Rik van Riel Cc: Robin Murphy Cc: Russell King Cc: Sandy Huang Cc: Stefan Richter Cc: Stephen Rothwell Cc: Thierry Reding Cc: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e60b72b1a9f5244931bb0c09918f7992fafa9e56 Author: Souptick Joarder Date: Mon May 13 17:22:11 2019 -0700 drm/xen/xen_drm_front_gem.c: convert to use vm_map_pages() Convert to use vm_map_pages() to map range of kernel memory to user vma. Link: http://lkml.kernel.org/r/ff8e10ba778d79419c66ee8215bccf01560540fd.1552921225.git.jrdr.linux@gmail.com Signed-off-by: Souptick Joarder Reviewed-by: Oleksandr Andrushchenko Cc: Boris Ostrovsky Cc: David Airlie Cc: Heiko Stuebner Cc: Joerg Roedel Cc: Joonsoo Kim Cc: Juergen Gross Cc: Kees Cook Cc: "Kirill A. Shutemov" Cc: Kyungmin Park Cc: Marek Szyprowski Cc: Matthew Wilcox Cc: Mauro Carvalho Chehab Cc: Michal Hocko Cc: Mike Rapoport Cc: Pawel Osciak Cc: Peter Zijlstra Cc: Rik van Riel Cc: Robin Murphy Cc: Russell King Cc: Sandy Huang Cc: Stefan Richter Cc: Stephen Rothwell Cc: Thierry Reding Cc: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2f69b3c8bad0c95311878959ae53ec838723bb31 Author: Souptick Joarder Date: Mon May 13 17:22:07 2019 -0700 drm/rockchip/rockchip_drm_gem.c: convert to use vm_map_pages() Convert to use vm_map_pages() to map range of kernel memory to user vma. Tested on Rockchip hardware and display is working, including talking to Lima via prime. Link: http://lkml.kernel.org/r/7ba359eb1aceac388d05983c1f29b915bdf291f9.1552921225.git.jrdr.linux@gmail.com Signed-off-by: Souptick Joarder Tested-by: Heiko Stuebner Cc: Boris Ostrovsky Cc: David Airlie Cc: Joerg Roedel Cc: Joonsoo Kim Cc: Juergen Gross Cc: Kees Cook Cc: "Kirill A. Shutemov" Cc: Kyungmin Park Cc: Marek Szyprowski Cc: Matthew Wilcox Cc: Mauro Carvalho Chehab Cc: Michal Hocko Cc: Mike Rapoport Cc: Oleksandr Andrushchenko Cc: Pawel Osciak Cc: Peter Zijlstra Cc: Rik van Riel Cc: Robin Murphy Cc: Russell King Cc: Sandy Huang Cc: Stefan Richter Cc: Stephen Rothwell Cc: Thierry Reding Cc: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 22660db8926268d6f5cd7dfebc125a9c67bb0276 Author: Souptick Joarder Date: Mon May 13 17:22:03 2019 -0700 drivers/firewire/core-iso.c: convert to use vm_map_pages_zero() Convert to use vm_map_pages_zero() to map range of kernel memory to user vma. This driver has ignored vm_pgoff and mapped the entire pages. We could later "fix" these drivers to behave according to the normal vm_pgoff offsetting simply by removing the _zero suffix on the function name and if that causes regressions, it gives us an easy way to revert. Link: http://lkml.kernel.org/r/88645f5ea8202784a8baaf389e592aeb8c505e8e.1552921225.git.jrdr.linux@gmail.com Signed-off-by: Souptick Joarder Cc: Boris Ostrovsky Cc: David Airlie Cc: Heiko Stuebner Cc: Joerg Roedel Cc: Joonsoo Kim Cc: Juergen Gross Cc: Kees Cook Cc: "Kirill A. Shutemov" Cc: Kyungmin Park Cc: Marek Szyprowski Cc: Matthew Wilcox Cc: Mauro Carvalho Chehab Cc: Michal Hocko Cc: Mike Rapoport Cc: Oleksandr Andrushchenko Cc: Pawel Osciak Cc: Peter Zijlstra Cc: Rik van Riel Cc: Robin Murphy Cc: Russell King Cc: Sandy Huang Cc: Stefan Richter Cc: Stephen Rothwell Cc: Thierry Reding Cc: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 6248461d2168233321601cd6bf2528179b6ac3d1 Author: Souptick Joarder Date: Mon May 13 17:22:00 2019 -0700 arm: mm: dma-mapping: convert to use vm_map_pages() Convert to use vm_map_pages() to map range of kernel memory to user vma. Link: http://lkml.kernel.org/r/936e5e107c746a7310e3a3c471188ca3ac8f9754.1552921225.git.jrdr.linux@gmail.com Signed-off-by: Souptick Joarder Cc: Boris Ostrovsky Cc: David Airlie Cc: Heiko Stuebner Cc: Joerg Roedel Cc: Joonsoo Kim Cc: Juergen Gross Cc: Kees Cook Cc: "Kirill A. Shutemov" Cc: Kyungmin Park Cc: Marek Szyprowski Cc: Matthew Wilcox Cc: Mauro Carvalho Chehab Cc: Michal Hocko Cc: Mike Rapoport Cc: Oleksandr Andrushchenko Cc: Pawel Osciak Cc: Peter Zijlstra Cc: Rik van Riel Cc: Robin Murphy Cc: Russell King Cc: Sandy Huang Cc: Stefan Richter Cc: Stephen Rothwell Cc: Thierry Reding Cc: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a667d7456f189e3422725dddcd067537feac49c0 Author: Souptick Joarder Date: Mon May 13 17:21:56 2019 -0700 mm: introduce new vm_map_pages() and vm_map_pages_zero() API Patch series "mm: Use vm_map_pages() and vm_map_pages_zero() API", v5. This patch (of 5): Previouly drivers have their own way of mapping range of kernel pages/memory into user vma and this was done by invoking vm_insert_page() within a loop. As this pattern is common across different drivers, it can be generalized by creating new functions and using them across the drivers. vm_map_pages() is the API which can be used to map kernel memory/pages in drivers which have considered vm_pgoff vm_map_pages_zero() is the API which can be used to map a range of kernel memory/pages in drivers which have not considered vm_pgoff. vm_pgoff is passed as default 0 for those drivers. We _could_ then at a later "fix" these drivers which are using vm_map_pages_zero() to behave according to the normal vm_pgoff offsetting simply by removing the _zero suffix on the function name and if that causes regressions, it gives us an easy way to revert. Tested on Rockchip hardware and display is working, including talking to Lima via prime. Link: http://lkml.kernel.org/r/751cb8a0f4c3e67e95c58a3b072937617f338eea.1552921225.git.jrdr.linux@gmail.com Signed-off-by: Souptick Joarder Suggested-by: Russell King Suggested-by: Matthew Wilcox Reviewed-by: Mike Rapoport Tested-by: Heiko Stuebner Cc: Michal Hocko Cc: "Kirill A. Shutemov" Cc: Vlastimil Babka Cc: Rik van Riel Cc: Stephen Rothwell Cc: Peter Zijlstra Cc: Robin Murphy Cc: Joonsoo Kim Cc: Thierry Reding Cc: Kees Cook Cc: Marek Szyprowski Cc: Stefan Richter Cc: Sandy Huang Cc: David Airlie Cc: Oleksandr Andrushchenko Cc: Joerg Roedel Cc: Pawel Osciak Cc: Kyungmin Park Cc: Boris Ostrovsky Cc: Juergen Gross Cc: Mauro Carvalho Chehab Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 62afcd1cb8e355330a699b456f05f781e877cc4f Author: Bartlomiej Zolnierkiewicz Date: Mon May 13 17:21:53 2019 -0700 mm: remove redundant 'default n' from Kconfig-s 'default n' is the default value for any bool or tristate Kconfig setting so there is no need to write it explicitly. Also since commit f467c5640c29 ("kconfig: only write '# CONFIG_FOO is not set' for visible symbols") the Kconfig behavior is the same regardless of 'default n' being present or not: ... One side effect of (and the main motivation for) this change is making the following two definitions behave exactly the same: config FOO bool config FOO bool default n With this change, neither of these will generate a '# CONFIG_FOO is not set' line (assuming FOO isn't selected/implied). That might make it clearer to people that a bare 'default n' is redundant. ... Link: http://lkml.kernel.org/r/c3385916-e4d4-37d3-b330-e6b7dff83a52@samsung.com Signed-off-by: Bartlomiej Zolnierkiewicz Reviewed-by: Andrew Morton Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8c7829b04c523cdc732cb77f59f03320e09f3386 Author: Johannes Weiner Date: Mon May 13 17:21:50 2019 -0700 mm: fix false-positive OVERCOMMIT_GUESS failures With the default overcommit==guess we occasionally run into mmap rejections despite plenty of memory that would get dropped under pressure but just isn't accounted reclaimable. One example of this is dying cgroups pinned by some page cache. A previous case was auxiliary path name memory associated with dentries; we have since annotated those allocations to avoid overcommit failures (see d79f7aa496fc ("mm: treat indirectly reclaimable memory as free in overcommit logic")). But trying to classify all allocated memory reliably as reclaimable and unreclaimable is a bit of a fool's errand. There could be a myriad of dependencies that constantly change with kernel versions. It becomes even more questionable of an effort when considering how this estimate of available memory is used: it's not compared to the system-wide allocated virtual memory in any way. It's not even compared to the allocating process's address space. It's compared to the single allocation request at hand! So we have an elaborate left-hand side of the equation that tries to assess the exact breathing room the system has available down to a page - and then compare it to an isolated allocation request with no additional context. We could fail an allocation of N bytes, but for two allocations of N/2 bytes we'd do this elaborate dance twice in a row and then still let N bytes of virtual memory through. This doesn't make a whole lot of sense. Let's take a step back and look at the actual goal of the heuristic. From the documentation: Heuristic overcommit handling. Obvious overcommits of address space are refused. Used for a typical system. It ensures a seriously wild allocation fails while allowing overcommit to reduce swap usage. root is allowed to allocate slightly more memory in this mode. This is the default. If all we want to do is catch clearly bogus allocation requests irrespective of the general virtual memory situation, the physical memory counter-part doesn't need to be that complicated, either. When in GUESS mode, catch wild allocations by comparing their request size to total amount of ram and swap in the system. Link: http://lkml.kernel.org/r/20190412191418.26333-1-hannes@cmpxchg.org Signed-off-by: Johannes Weiner Acked-by: Roman Gushchin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit ac5c94264580f498e484c854031d0226b3c1038f Author: David Hildenbrand Date: Mon May 13 17:21:46 2019 -0700 mm/memory_hotplug: make __remove_pages() and arch_remove_memory() never fail All callers of arch_remove_memory() ignore errors. And we should really try to remove any errors from the memory removal path. No more errors are reported from __remove_pages(). BUG() in s390x code in case arch_remove_memory() is triggered. We may implement that properly later. WARN in case powerpc code failed to remove the section mapping, which is better than ignoring the error completely right now. Link: http://lkml.kernel.org/r/20190409100148.24703-5-david@redhat.com Signed-off-by: David Hildenbrand Cc: Tony Luck Cc: Fenghua Yu Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: Martin Schwidefsky Cc: Heiko Carstens Cc: Yoshinori Sato Cc: Rich Felker Cc: Dave Hansen Cc: Andy Lutomirski Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Borislav Petkov Cc: "H. Peter Anvin" Cc: Michal Hocko Cc: Mike Rapoport Cc: Oscar Salvador Cc: "Kirill A. Shutemov" Cc: Christophe Leroy Cc: Stefan Agner Cc: Nicholas Piggin Cc: Pavel Tatashin Cc: Vasily Gorbik Cc: Arun KS Cc: Geert Uytterhoeven Cc: Masahiro Yamada Cc: Rob Herring Cc: Joonsoo Kim Cc: Wei Yang Cc: Qian Cai Cc: Mathieu Malaterre Cc: Andrew Banman Cc: Greg Kroah-Hartman Cc: Ingo Molnar Cc: Mike Travis Cc: Oscar Salvador Cc: "Rafael J. Wysocki" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9d1d887d785b4fe0590bd3c5e71acaa3908044e2 Author: David Hildenbrand Date: Mon May 13 17:21:41 2019 -0700 mm/memory_hotplug: make __remove_section() never fail Let's just warn in case a section is not valid instead of failing to remove somewhere in the middle of the process, returning an error that will be mostly ignored by callers. Link: http://lkml.kernel.org/r/20190409100148.24703-4-david@redhat.com Signed-off-by: David Hildenbrand Reviewed-by: Oscar Salvador Cc: Michal Hocko Cc: David Hildenbrand Cc: Pavel Tatashin Cc: Qian Cai Cc: Wei Yang Cc: Arun KS Cc: Mathieu Malaterre Cc: Andrew Banman Cc: Andy Lutomirski Cc: Benjamin Herrenschmidt Cc: Borislav Petkov Cc: Christophe Leroy Cc: Dave Hansen Cc: Fenghua Yu Cc: Geert Uytterhoeven Cc: Greg Kroah-Hartman Cc: Heiko Carstens Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Ingo Molnar Cc: Joonsoo Kim Cc: "Kirill A. Shutemov" Cc: Martin Schwidefsky Cc: Masahiro Yamada Cc: Michael Ellerman Cc: Mike Rapoport Cc: Mike Travis Cc: Nicholas Piggin Cc: Oscar Salvador Cc: Paul Mackerras Cc: Peter Zijlstra Cc: "Rafael J. Wysocki" Cc: Rich Felker Cc: Rob Herring Cc: Stefan Agner Cc: Thomas Gleixner Cc: Tony Luck Cc: Vasily Gorbik Cc: Yoshinori Sato Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cb7b3a3685b20d3b5900ff24b2cb96d002960189 Author: David Hildenbrand Date: Mon May 13 17:21:37 2019 -0700 mm/memory_hotplug: make unregister_memory_section() never fail Failing while removing memory is mostly ignored and cannot really be handled. Let's treat errors in unregister_memory_section() in a nice way, warning, but continuing. Link: http://lkml.kernel.org/r/20190409100148.24703-3-david@redhat.com Signed-off-by: David Hildenbrand Cc: Greg Kroah-Hartman Cc: "Rafael J. Wysocki" Cc: Ingo Molnar Cc: Andrew Banman Cc: Mike Travis Cc: David Hildenbrand Cc: Oscar Salvador Cc: Michal Hocko Cc: Pavel Tatashin Cc: Qian Cai Cc: Wei Yang Cc: Arun KS Cc: Mathieu Malaterre Cc: Andy Lutomirski Cc: Benjamin Herrenschmidt Cc: Borislav Petkov Cc: Christophe Leroy Cc: Dave Hansen Cc: Fenghua Yu Cc: Geert Uytterhoeven Cc: Heiko Carstens Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Joonsoo Kim Cc: "Kirill A. Shutemov" Cc: Martin Schwidefsky Cc: Masahiro Yamada Cc: Michael Ellerman Cc: Mike Rapoport Cc: Nicholas Piggin Cc: Oscar Salvador Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Rich Felker Cc: Rob Herring Cc: Stefan Agner Cc: Thomas Gleixner Cc: Tony Luck Cc: Vasily Gorbik Cc: Yoshinori Sato Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d9eb1417c77df7ce19abd2e41619e9dceccbdf2a Author: David Hildenbrand Date: Mon May 13 17:21:33 2019 -0700 mm/memory_hotplug: release memory resource after arch_remove_memory() Patch series "mm/memory_hotplug: Better error handling when removing memory", v1. Error handling when removing memory is somewhat messed up right now. Some errors result in warnings, others are completely ignored. Memory unplug code can essentially not deal with errors properly as of now. remove_memory() will never fail. We have basically two choices: 1. Allow arch_remov_memory() and friends to fail, propagating errors via remove_memory(). Might be problematic (e.g. DIMMs consisting of multiple pieces added/removed separately). 2. Don't allow the functions to fail, handling errors in a nicer way. It seems like most errors that can theoretically happen are really corner cases and mostly theoretical (e.g. "section not valid"). However e.g. aborting removal of sections while all callers simply continue in case of errors is not nice. If we can gurantee that removal of memory always works (and WARN/skip in case of theoretical errors so we can figure out what is going on), we can go ahead and implement better error handling when adding memory. E.g. via add_memory(): arch_add_memory() ret = do_stuff() if (ret) { arch_remove_memory(); goto error; } Handling here that arch_remove_memory() might fail is basically impossible. So I suggest, let's avoid reporting errors while removing memory, warning on theoretical errors instead and continuing instead of aborting. This patch (of 4): __add_pages() doesn't add the memory resource, so __remove_pages() shouldn't remove it. Let's factor it out. Especially as it is a special case for memory used as system memory, added via add_memory() and friends. We now remove the resource after removing the sections instead of doing it the other way around. I don't think this change is problematic. add_memory() register memory resource arch_add_memory() remove_memory arch_remove_memory() release memory resource While at it, explain why we ignore errors and that it only happeny if we remove memory in a different granularity as we added it. [david@redhat.com: fix printk warning] Link: http://lkml.kernel.org/r/20190417120204.6997-1-david@redhat.com Link: http://lkml.kernel.org/r/20190409100148.24703-2-david@redhat.com Signed-off-by: David Hildenbrand Reviewed-by: Oscar Salvador Cc: Michal Hocko Cc: David Hildenbrand Cc: Pavel Tatashin Cc: Wei Yang Cc: Qian Cai Cc: Arun KS Cc: Mathieu Malaterre Cc: Andrew Banman Cc: Andy Lutomirski Cc: Benjamin Herrenschmidt Cc: Borislav Petkov Cc: Christophe Leroy Cc: Dave Hansen Cc: Fenghua Yu Cc: Geert Uytterhoeven Cc: Greg Kroah-Hartman Cc: Heiko Carstens Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Ingo Molnar Cc: Joonsoo Kim Cc: "Kirill A. Shutemov" Cc: Martin Schwidefsky Cc: Masahiro Yamada Cc: Michael Ellerman Cc: Mike Rapoport Cc: Mike Travis Cc: Nicholas Piggin Cc: Oscar Salvador Cc: Paul Mackerras Cc: Peter Zijlstra Cc: "Rafael J. Wysocki" Cc: Rich Felker Cc: Rob Herring Cc: Stefan Agner Cc: Thomas Gleixner Cc: Tony Luck Cc: Vasily Gorbik Cc: Yoshinori Sato Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2346a560599a4438d66b17d83f102b2ec59f167c Author: Laurent Dufour Date: Mon May 13 17:21:29 2019 -0700 mm/filemap.c: fix minor typo Link: http://lkml.kernel.org/r/20190304155240.19215-1-ldufour@linux.ibm.com Signed-off-by: Laurent Dufour Reviewed-by: William Kucharski Cc: Matthew Wilcox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 940519f0c8b757fdcbc5d14c93cdaada20ded14c Author: Michal Hocko Date: Mon May 13 17:21:26 2019 -0700 mm, memory_hotplug: provide a more generic restrictions for memory hotplug arch_add_memory, __add_pages take a want_memblock which controls whether the newly added memory should get the sysfs memblock user API (e.g. ZONE_DEVICE users do not want/need this interface). Some callers even want to control where do we allocate the memmap from by configuring altmap. Add a more generic hotplug context for arch_add_memory and __add_pages. struct mhp_restrictions contains flags which contains additional features to be enabled by the memory hotplug (MHP_MEMBLOCK_API currently) and altmap for alternative memmap allocator. This patch shouldn't introduce any functional change. [akpm@linux-foundation.org: build fix] Link: http://lkml.kernel.org/r/20190408082633.2864-3-osalvador@suse.de Signed-off-by: Michal Hocko Signed-off-by: Oscar Salvador Cc: Dan Williams Cc: David Hildenbrand Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5557c766abad25acc8091ccb9641b96e3b3da06f Author: Michal Hocko Date: Mon May 13 17:21:24 2019 -0700 mm, memory_hotplug: cleanup memory offline path check_pages_isolated_cb currently accounts the whole pfn range as being offlined if test_pages_isolated suceeds on the range. This is based on the assumption that all pages in the range are freed which is currently the case in most cases but it won't be with later changes, as pages marked as vmemmap won't be isolated. Move the offlined pages counting to offline_isolated_pages_cb and rely on __offline_isolated_pages to return the correct value. check_pages_isolated_cb will still do it's primary job and check the pfn range. While we are at it remove check_pages_isolated and offline_isolated_pages and use directly walk_system_ram_range as do in online_pages. Link: http://lkml.kernel.org/r/20190408082633.2864-2-osalvador@suse.de Reviewed-by: David Hildenbrand Signed-off-by: Michal Hocko Signed-off-by: Oscar Salvador Cc: Dan Williams Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 0e56acae4b4dd4a9fbe897854ab83a109e2a9e11 Author: Alexander Duyck Date: Mon May 13 17:21:20 2019 -0700 mm: initialize MAX_ORDER_NR_PAGES at a time instead of doing larger sections Add yet another iterator, for_each_free_mem_range_in_zone_from, and then use it to support initializing and freeing pages in groups no larger than MAX_ORDER_NR_PAGES. By doing this we can greatly improve the cache locality of the pages while we do several loops over them in the init and freeing process. We are able to tighten the loops further as a result of the "from" iterator as we can perform the initial checks for first_init_pfn in our first call to the iterator, and continue without the need for those checks via the "from" iterator. I have added this functionality in the function called deferred_init_mem_pfn_range_in_zone that primes the iterator and causes us to exit if we encounter any failure. On my x86_64 test system with 384GB of memory per node I saw a reduction in initialization time from 1.85s to 1.38s as a result of this patch. Link: http://lkml.kernel.org/r/20190405221231.12227.85836.stgit@localhost.localdomain Signed-off-by: Alexander Duyck Reviewed-by: Pavel Tatashin Cc: Mike Rapoport Cc: Michal Hocko Cc: Dave Jiang Cc: Matthew Wilcox Cc: Ingo Molnar Cc: Cc: Khalid Aziz Cc: Mike Rapoport Cc: Vlastimil Babka Cc: Dan Williams Cc: Laurent Dufour Cc: Mel Gorman Cc: David S. Miller Cc: "Kirill A. Shutemov" Cc: Pavel Tatashin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 837566e7e08e3f89444166444836a8a49b9f9322 Author: Alexander Duyck Date: Mon May 13 17:21:17 2019 -0700 mm: implement new zone specific memblock iterator Introduce a new iterator for_each_free_mem_pfn_range_in_zone. This iterator will take care of making sure a given memory range provided is in fact contained within a zone. It takes are of all the bounds checking we were doing in deferred_grow_zone, and deferred_init_memmap. In addition it should help to speed up the search a bit by iterating until the end of a range is greater than the start of the zone pfn range, and will exit completely if the start is beyond the end of the zone. Link: http://lkml.kernel.org/r/20190405221225.12227.22573.stgit@localhost.localdomain Signed-off-by: Alexander Duyck Reviewed-by: Pavel Tatashin Reviewed-by: Mike Rapoport Cc: Dan Williams Cc: Dave Jiang Cc: David S. Miller Cc: Ingo Molnar Cc: Khalid Aziz Cc: "Kirill A. Shutemov" Cc: Laurent Dufour Cc: Matthew Wilcox Cc: Mel Gorman Cc: Michal Hocko Cc: Mike Rapoport Cc: Pavel Tatashin Cc: Vlastimil Babka Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 56ec43d8b02719402c9fcf984feb52ec2300f8a5 Author: Alexander Duyck Date: Mon May 13 17:21:13 2019 -0700 mm: drop meminit_pfn_in_nid as it is redundant As best as I can tell the meminit_pfn_in_nid call is completely redundant. The deferred memory initialization is already making use of for_each_free_mem_range which in turn will call into __next_mem_range which will only return a memory range if it matches the node ID provided assuming it is not NUMA_NO_NODE. I am operating on the assumption that there are no zones or pgdata_t structures that have a NUMA node of NUMA_NO_NODE associated with them. If that is the case then __next_mem_range will never return a memory range that doesn't match the zone's node ID and as such the check is redundant. So one piece I would like to verify on this is if this works for ia64. Technically it was using a different approach to get the node ID, but it seems to have the node ID also encoded into the memblock. So I am assuming this is okay, but would like to get confirmation on that. On my x86_64 test system with 384GB of memory per node I saw a reduction in initialization time from 2.80s to 1.85s as a result of this patch. Link: http://lkml.kernel.org/r/20190405221219.12227.93957.stgit@localhost.localdomain Signed-off-by: Alexander Duyck Reviewed-by: Pavel Tatashin Acked-by: Michal Hocko Cc: Mike Rapoport Cc: Dan Williams Cc: Dave Jiang Cc: David S. Miller Cc: Ingo Molnar Cc: Khalid Aziz Cc: "Kirill A. Shutemov" Cc: Laurent Dufour Cc: Matthew Wilcox Cc: Mel Gorman Cc: Mike Rapoport Cc: Pavel Tatashin Cc: Vlastimil Babka Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5470dea49f5382257c242ac617d908267727f1a8 Author: Alexander Duyck Date: Mon May 13 17:21:10 2019 -0700 mm: use mm_zero_struct_page from SPARC on all 64b architectures Patch series "Deferred page init improvements", v7. This patchset is essentially a refactor of the page initialization logic that is meant to provide for better code reuse while providing a significant improvement in deferred page initialization performance. In my testing on an x86_64 system with 384GB of RAM I have seen the following. In the case of regular memory initialization the deferred init time was decreased from 3.75s to 1.38s on average. This amounts to a 172% improvement for the deferred memory initialization performance. I have called out the improvement observed with each patch. This patch (of 4): Use the same approach that was already in use on Sparc on all the architectures that support a 64b long. This is mostly motivated by the fact that 7 to 10 store/move instructions are likely always going to be faster than having to call into a function that is not specialized for handling page init. An added advantage to doing it this way is that the compiler can get away with combining writes in the __init_single_page call. As a result the memset call will be reduced to only about 4 write operations, or at least that is what I am seeing with GCC 6.2 as the flags, LRU pointers, and count/mapcount seem to be cancelling out at least 4 of the 8 assignments on my system. One change I had to make to the function was to reduce the minimum page size to 56 to support some powerpc64 configurations. This change should introduce no change on SPARC since it already had this code. In the case of x86_64 I saw a reduction from 3.75s to 2.80s when initializing 384GB of RAM per node. Pavel Tatashin tested on a system with Broadcom's Stingray CPU and 48GB of RAM and found that __init_single_page() takes 19.30ns / 64-byte struct page before this patch and with this patch it takes 17.33ns / 64-byte struct page. Mike Rapoport ran a similar test on a OpenPower (S812LC 8348-21C) with Power8 processor and 128GB or RAM. His results per 64-byte struct page were 4.68ns before, and 4.59ns after this patch. Link: http://lkml.kernel.org/r/20190405221213.12227.9392.stgit@localhost.localdomain Signed-off-by: Alexander Duyck Reviewed-by: Pavel Tatashin Acked-by: Michal Hocko Cc: Mike Rapoport Cc: Dan Williams Cc: Dave Jiang Cc: David S. Miller Cc: Ingo Molnar Cc: Khalid Aziz Cc: "Kirill A. Shutemov" Cc: Laurent Dufour Cc: Matthew Wilcox Cc: Mel Gorman Cc: Mike Rapoport Cc: Pavel Tatashin Cc: Vlastimil Babka Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 059d8442ea77dd995c7ec075c6a6cca527b1c244 Author: Huang Shijie Date: Mon May 13 17:21:07 2019 -0700 mm/rmap.c: use the pra.mapcount to do the check We have the pra.mapcount already, and there is no need to call the page_mapped() which may do some complicated computing for compound page. Link: http://lkml.kernel.org/r/20190404054828.2731-1-sjhuang@iluvatar.ai Signed-off-by: Huang Shijie Acked-by: Kirill A. Shutemov Cc: Mike Kravetz Cc: Rik van Riel Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cfcbfb1382dbac331d8aa92d3a218a16b803b2a9 Author: Josef Bacik Date: Mon May 13 17:21:04 2019 -0700 mm/filemap.c: enable error injection at add_to_page_cache() Recently I messed up the error handling in filemap_fault() because of an unexpected ENOMEM (related to cgroup memory limits) in add_to_page_cache. Enable error injection at this point so I can add a testcase to xfstests to verify I don't mess this up again. [akpm@linux-foundation.org: include linux/error-injection.h] Link: http://lkml.kernel.org/r/20190403152604.14008-1-josef@toxicpanda.com Signed-off-by: Josef Bacik Reviewed-by: William Kucharski Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit c6d23413f81bd69935afedaf1da9d55b03febf58 Author: Jérôme Glisse Date: Mon May 13 17:21:00 2019 -0700 mm/mmu_notifier: mmu_notifier_range_update_to_read_only() helper Helper to test if a range is updated to read only (it is still valid to read from the range). This is useful for device driver or anyone who wish to optimize out update when they know that they already have the range map read only. Link: http://lkml.kernel.org/r/20190326164747.24405-9-jglisse@redhat.com Signed-off-by: Jérôme Glisse Reviewed-by: Ralph Campbell Reviewed-by: Ira Weiny Cc: Christian König Cc: Joonas Lahtinen Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Jan Kara Cc: Andrea Arcangeli Cc: Peter Xu Cc: Felix Kuehling Cc: Jason Gunthorpe Cc: Ross Zwisler Cc: Dan Williams Cc: Paolo Bonzini Cc: Radim Krcmar Cc: Michal Hocko Cc: Christian Koenig Cc: John Hubbard Cc: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit bf198b2b34bfd4bc9bd6abb33bf650b74329a2ac Author: Jérôme Glisse Date: Mon May 13 17:20:57 2019 -0700 mm/mmu_notifier: pass down vma and reasons why mmu notifier is happening CPU page table update can happens for many reasons, not only as a result of a syscall (munmap(), mprotect(), mremap(), madvise(), ...) but also as a result of kernel activities (memory compression, reclaim, migration, ...). Users of mmu notifier API track changes to the CPU page table and take specific action for them. While current API only provide range of virtual address affected by the change, not why the changes is happening This patch is just passing down the new informations by adding it to the mmu_notifier_range structure. Link: http://lkml.kernel.org/r/20190326164747.24405-8-jglisse@redhat.com Signed-off-by: Jérôme Glisse Reviewed-by: Ralph Campbell Reviewed-by: Ira Weiny Cc: Christian König Cc: Joonas Lahtinen Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Jan Kara Cc: Andrea Arcangeli Cc: Peter Xu Cc: Felix Kuehling Cc: Jason Gunthorpe Cc: Ross Zwisler Cc: Dan Williams Cc: Paolo Bonzini Cc: Radim Krcmar Cc: Michal Hocko Cc: Christian Koenig Cc: John Hubbard Cc: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7269f999934b289da7972e975b781417b07ef836 Author: Jérôme Glisse Date: Mon May 13 17:20:53 2019 -0700 mm/mmu_notifier: use correct mmu_notifier events for each invalidation This updates each existing invalidation to use the correct mmu notifier event that represent what is happening to the CPU page table. See the patch which introduced the events to see the rational behind this. Link: http://lkml.kernel.org/r/20190326164747.24405-7-jglisse@redhat.com Signed-off-by: Jérôme Glisse Reviewed-by: Ralph Campbell Reviewed-by: Ira Weiny Cc: Christian König Cc: Joonas Lahtinen Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Jan Kara Cc: Andrea Arcangeli Cc: Peter Xu Cc: Felix Kuehling Cc: Jason Gunthorpe Cc: Ross Zwisler Cc: Dan Williams Cc: Paolo Bonzini Cc: Radim Krcmar Cc: Michal Hocko Cc: Christian Koenig Cc: John Hubbard Cc: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 6f4f13e8d9e27cefd2cd88dd4fd80aa6d68b9131 Author: Jérôme Glisse Date: Mon May 13 17:20:49 2019 -0700 mm/mmu_notifier: contextual information for event triggering invalidation CPU page table update can happens for many reasons, not only as a result of a syscall (munmap(), mprotect(), mremap(), madvise(), ...) but also as a result of kernel activities (memory compression, reclaim, migration, ...). Users of mmu notifier API track changes to the CPU page table and take specific action for them. While current API only provide range of virtual address affected by the change, not why the changes is happening. This patchset do the initial mechanical convertion of all the places that calls mmu_notifier_range_init to also provide the default MMU_NOTIFY_UNMAP event as well as the vma if it is know (most invalidation happens against a given vma). Passing down the vma allows the users of mmu notifier to inspect the new vma page protection. The MMU_NOTIFY_UNMAP is always the safe default as users of mmu notifier should assume that every for the range is going away when that event happens. A latter patch do convert mm call path to use a more appropriate events for each call. This is done as 2 patches so that no call site is forgotten especialy as it uses this following coccinelle patch: %<---------------------------------------------------------------------- @@ identifier I1, I2, I3, I4; @@ static inline void mmu_notifier_range_init(struct mmu_notifier_range *I1, +enum mmu_notifier_event event, +unsigned flags, +struct vm_area_struct *vma, struct mm_struct *I2, unsigned long I3, unsigned long I4) { ... } @@ @@ -#define mmu_notifier_range_init(range, mm, start, end) +#define mmu_notifier_range_init(range, event, flags, vma, mm, start, end) @@ expression E1, E3, E4; identifier I1; @@ <... mmu_notifier_range_init(E1, +MMU_NOTIFY_UNMAP, 0, I1, I1->vm_mm, E3, E4) ...> @@ expression E1, E2, E3, E4; identifier FN, VMA; @@ FN(..., struct vm_area_struct *VMA, ...) { <... mmu_notifier_range_init(E1, +MMU_NOTIFY_UNMAP, 0, VMA, E2, E3, E4) ...> } @@ expression E1, E2, E3, E4; identifier FN, VMA; @@ FN(...) { struct vm_area_struct *VMA; <... mmu_notifier_range_init(E1, +MMU_NOTIFY_UNMAP, 0, VMA, E2, E3, E4) ...> } @@ expression E1, E2, E3, E4; identifier FN; @@ FN(...) { <... mmu_notifier_range_init(E1, +MMU_NOTIFY_UNMAP, 0, NULL, E2, E3, E4) ...> } ---------------------------------------------------------------------->% Applied with: spatch --all-includes --sp-file mmu-notifier.spatch fs/proc/task_mmu.c --in-place spatch --sp-file mmu-notifier.spatch --dir kernel/events/ --in-place spatch --sp-file mmu-notifier.spatch --dir mm --in-place Link: http://lkml.kernel.org/r/20190326164747.24405-6-jglisse@redhat.com Signed-off-by: Jérôme Glisse Reviewed-by: Ralph Campbell Reviewed-by: Ira Weiny Cc: Christian König Cc: Joonas Lahtinen Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Jan Kara Cc: Andrea Arcangeli Cc: Peter Xu Cc: Felix Kuehling Cc: Jason Gunthorpe Cc: Ross Zwisler Cc: Dan Williams Cc: Paolo Bonzini Cc: Radim Krcmar Cc: Michal Hocko Cc: Christian Koenig Cc: John Hubbard Cc: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d87f055b94ea9270c491b5e650dd776ecc30d7c9 Author: Jérôme Glisse Date: Mon May 13 17:20:45 2019 -0700 mm/mmu_notifier: contextual information for event enums CPU page table update can happens for many reasons, not only as a result of a syscall (munmap(), mprotect(), mremap(), madvise(), ...) but also as a result of kernel activities (memory compression, reclaim, migration, ...). This patch introduce a set of enums that can be associated with each of the events triggering a mmu notifier. Latter patches take advantages of those enum values. - UNMAP: munmap() or mremap() - CLEAR: page table is cleared (migration, compaction, reclaim, ...) - PROTECTION_VMA: change in access protections for the range - PROTECTION_PAGE: change in access protections for page in the range - SOFT_DIRTY: soft dirtyness tracking Being able to identify munmap() and mremap() from other reasons why the page table is cleared is important to allow user of mmu notifier to update their own internal tracking structure accordingly (on munmap or mremap it is not longer needed to track range of virtual address as it becomes invalid). Link: http://lkml.kernel.org/r/20190326164747.24405-5-jglisse@redhat.com Signed-off-by: Jérôme Glisse Reviewed-by: Ralph Campbell Reviewed-by: Ira Weiny Cc: Christian König Cc: Joonas Lahtinen Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Jan Kara Cc: Andrea Arcangeli Cc: Peter Xu Cc: Felix Kuehling Cc: Jason Gunthorpe Cc: Ross Zwisler Cc: Dan Williams Cc: Paolo Bonzini Cc: Radim Krcmar Cc: Michal Hocko Cc: Christian Koenig Cc: John Hubbard Cc: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 27560ee96f40017075bcb975b85f85dae3622f01 Author: Jérôme Glisse Date: Mon May 13 17:20:42 2019 -0700 mm/mmu_notifier: convert mmu_notifier_range->blockable to a flags Use an unsigned field for flags other than blockable and convert the blockable field to be one of those flags. Link: http://lkml.kernel.org/r/20190326164747.24405-4-jglisse@redhat.com Signed-off-by: Jérôme Glisse Reviewed-by: Ralph Campbell Reviewed-by: Ira Weiny Cc: Christian König Cc: Joonas Lahtinen Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Jan Kara Cc: Andrea Arcangeli Cc: Peter Xu Cc: Felix Kuehling Cc: Jason Gunthorpe Cc: Ross Zwisler Cc: Dan Williams Cc: Paolo Bonzini Cc: Radim Krcmar Cc: Michal Hocko Cc: Christian Koenig Cc: John Hubbard Cc: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit dfcd66604c1c116ffc7a94375becbed1d7ecbef1 Author: Jérôme Glisse Date: Mon May 13 17:20:38 2019 -0700 mm/mmu_notifier: convert user range->blockable to helper function Use the mmu_notifier_range_blockable() helper function instead of directly dereferencing the range->blockable field. This is done to make it easier to change the mmu_notifier range field. This patch is the outcome of the following coccinelle patch: %<------------------------------------------------------------------- @@ identifier I1, FN; @@ FN(..., struct mmu_notifier_range *I1, ...) { <... -I1->blockable +mmu_notifier_range_blockable(I1) ...> } ------------------------------------------------------------------->% spatch --in-place --sp-file blockable.spatch --dir . Link: http://lkml.kernel.org/r/20190326164747.24405-3-jglisse@redhat.com Signed-off-by: Jérôme Glisse Reviewed-by: Ralph Campbell Reviewed-by: Ira Weiny Cc: Christian König Cc: Joonas Lahtinen Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Jan Kara Cc: Andrea Arcangeli Cc: Peter Xu Cc: Felix Kuehling Cc: Jason Gunthorpe Cc: Ross Zwisler Cc: Dan Williams Cc: Paolo Bonzini Cc: Radim Krcmar Cc: Michal Hocko Cc: Christian Koenig Cc: John Hubbard Cc: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4a83bfe916f3d2100df5bc8389bd182a537ced3e Author: Jérôme Glisse Date: Mon May 13 17:20:34 2019 -0700 mm/mmu_notifier: helper to test if a range invalidation is blockable Patch series "mmu notifier provide context informations", v6. Here I am not posting users of this, they already have been posted to appropriate mailing list [6] and will be merge through the appropriate tree once this patchset is upstream. Note that this serie does not change any behavior for any existing code. It just pass down more information to mmu notifier listener. The rationale for this patchset: CPU page table update can happens for many reasons, not only as a result of a syscall (munmap(), mprotect(), mremap(), madvise(), ...) but also as a result of kernel activities (memory compression, reclaim, migration, ...). This patchset introduce a set of enums that can be associated with each of the events triggering a mmu notifier: - UNMAP: munmap() or mremap() - CLEAR: page table is cleared (migration, compaction, reclaim, ...) - PROTECTION_VMA: change in access protections for the range - PROTECTION_PAGE: change in access protections for page in the range - SOFT_DIRTY: soft dirtyness tracking Being able to identify munmap() and mremap() from other reasons why the page table is cleared is important to allow user of mmu notifier to update their own internal tracking structure accordingly (on munmap or mremap it is not longer needed to track range of virtual address as it becomes invalid). Without this serie, driver are force to assume that every notification is an munmap which triggers useless trashing within drivers that associate structure with range of virtual address. Each driver is force to free up its tracking structure and then restore it on next device page fault. With this series we can also optimize device page table update. Patches to use this are at https://lkml.org/lkml/2019/1/23/833 https://lkml.org/lkml/2019/1/23/834 https://lkml.org/lkml/2019/1/23/832 https://lkml.org/lkml/2019/1/23/831 Moreover this can also be used to optimize out some page table updates such as for KVM where we can update the secondary MMU directly from the callback instead of clearing it. ACKS AMD/RADEON https://lkml.org/lkml/2019/2/1/395 ACKS RDMA https://lkml.org/lkml/2018/12/6/1473 This patch (of 8): Simple helpers to test if range invalidation is blockable. Latter patches use cocinnelle to convert all direct dereference of range-> blockable to use this function instead so that we can convert the blockable field to an unsigned for more flags. Link: http://lkml.kernel.org/r/20190326164747.24405-2-jglisse@redhat.com Signed-off-by: Jérôme Glisse Reviewed-by: Ralph Campbell Reviewed-by: Ira Weiny Cc: Christian König Cc: Joonas Lahtinen Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Jan Kara Cc: Andrea Arcangeli Cc: Peter Xu Cc: Felix Kuehling Cc: Jason Gunthorpe Cc: Ross Zwisler Cc: Dan Williams Cc: Paolo Bonzini Cc: Radim Krcmar Cc: Michal Hocko Cc: Christian Koenig Cc: John Hubbard Cc: Arnd Bergmann Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 391aab11e93f36c421abeab62526954d08ac3eed Author: Jérôme Glisse Date: Mon May 13 17:20:31 2019 -0700 mm/hmm: convert various hmm_pfn_* to device_entry which is a better name Convert hmm_pfn_* to device_entry_* as here we are dealing with device driver specific entry format and hmm provide helpers to allow differents components (including HMM) to create/parse device entry. We keep wrapper with the old name so that we can convert driver to use the new API in stages in each device driver tree. This will get remove once all driver are converted. Link: http://lkml.kernel.org/r/20190403193318.16478-13-jglisse@redhat.com Signed-off-by: Jérôme Glisse Cc: Ralph Campbell Cc: John Hubbard Cc: Dan Williams Cc: Ira Weiny Cc: Arnd Bergmann Cc: Balbir Singh Cc: Dan Carpenter Cc: Matthew Wilcox Cc: Souptick Joarder Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 55c0ece82ac6ad018a71465d332847dce023eeb3 Author: Jérôme Glisse Date: Mon May 13 17:20:28 2019 -0700 mm/hmm: add a helper function that fault pages and map them to a device This is a all in one helper that fault pages in a range and map them to a device so that every single device driver do not have to re-implement this common pattern. This is taken from ODP RDMA in preparation of ODP RDMA convertion. It will be use by nouveau and other drivers. [jglisse@redhat.com: Was using wrong field and wrong enum] Link: http://lkml.kernel.org/r/20190409175340.26614-1-jglisse@redhat.com Link: http://lkml.kernel.org/r/20190403193318.16478-12-jglisse@redhat.com Signed-off-by: Jérôme Glisse Cc: Ralph Campbell Cc: John Hubbard Cc: Dan Williams Cc: Souptick Joarder Cc: Arnd Bergmann Cc: Balbir Singh Cc: Dan Carpenter Cc: Ira Weiny Cc: Matthew Wilcox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 202394178d027f8a1530df65d4a25229138fab62 Author: Jérôme Glisse Date: Mon May 13 17:20:24 2019 -0700 mm/hmm: add helpers to test if mm is still alive or not The device driver can have kernel thread or worker doing work against a process mm and it is useful for those to test wether the mm is dead or alive to avoid doing useless work. Add an helper to test that so that driver can bail out early if a process is dying. Note that the helper does not perform any lock synchronization and thus is just a hint ie a process might be dying but the helper might still return the process as alive. All HMM functions are safe to use in that case as HMM internal properly protect itself with lock. If driver use this helper with non HMM functions it should ascertain that it is safe to do so. Link: http://lkml.kernel.org/r/20190403193318.16478-11-jglisse@redhat.com Signed-off-by: Jérôme Glisse Cc: Ralph Campbell Cc: John Hubbard Cc: Dan Williams Cc: Ira Weiny Cc: Arnd Bergmann Cc: Balbir Singh Cc: Dan Carpenter Cc: Matthew Wilcox Cc: Souptick Joarder Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 992de9a8b7511673156df7d2bb1039dea3b2f7f3 Author: Jérôme Glisse Date: Mon May 13 17:20:21 2019 -0700 mm/hmm: allow to mirror vma of a file on a DAX backed filesystem HMM mirror is a device driver helpers to mirror range of virtual address. It means that the process jobs running on the device can access the same virtual address as the CPU threads of that process. This patch adds support for mirroring mapping of file that are on a DAX block device (ie range of virtual address that is an mmap of a file in a filesystem on a DAX block device). There is no reason to not support such case when mirroring virtual address on a device. Note that unlike GUP code we do not take page reference hence when we back-off we have nothing to undo. [jglisse@redhat.com: move THP and hugetlbfs code path behind #if KCONFIG] Link: http://lkml.kernel.org/r/20190422163741.13029-1-jglisse@redhat.com Link: http://lkml.kernel.org/r/20190403193318.16478-10-jglisse@redhat.com Signed-off-by: Jérôme Glisse Reviewed-by: Ralph Campbell Cc: Dan Williams Cc: John Hubbard Cc: Arnd Bergmann Cc: Balbir Singh Cc: Dan Carpenter Cc: Ira Weiny Cc: Matthew Wilcox Cc: Souptick Joarder Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 63d5066f6e5a1713d0247ef38f0add545408896b Author: Jérôme Glisse Date: Mon May 13 17:20:18 2019 -0700 mm/hmm: mirror hugetlbfs (snapshoting, faulting and DMA mapping) HMM mirror is a device driver helpers to mirror range of virtual address. It means that the process jobs running on the device can access the same virtual address as the CPU threads of that process. This patch adds support for hugetlbfs mapping (ie range of virtual address that are mmap of a hugetlbfs). [rcampbell@nvidia.com: fix initial PFN for hugetlbfs pages] Link: http://lkml.kernel.org/r/20190419233536.8080-1-rcampbell@nvidia.com Link: http://lkml.kernel.org/r/20190403193318.16478-9-jglisse@redhat.com Signed-off-by: Jérôme Glisse Signed-off-by: Ralph Campbell Reviewed-by: Ralph Campbell Reviewed-by: Ira Weiny Cc: John Hubbard Cc: Dan Williams Cc: Arnd Bergmann Cc: Balbir Singh Cc: Dan Carpenter Cc: Matthew Wilcox Cc: Souptick Joarder Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 023a019a9b4e90b9df8ed5be591787b5c914d74f Author: Jérôme Glisse Date: Mon May 13 17:20:05 2019 -0700 mm/hmm: add default fault flags to avoid the need to pre-fill pfns arrays The HMM mirror API can be use in two fashions. The first one where the HMM user coalesce multiple page faults into one request and set flags per pfns for of those faults. The second one where the HMM user want to pre-fault a range with specific flags. For the latter one it is a waste to have the user pre-fill the pfn arrays with a default flags value. This patch adds a default flags value allowing user to set them for a range without having to pre-fill the pfn array. Link: http://lkml.kernel.org/r/20190403193318.16478-8-jglisse@redhat.com Signed-off-by: Jérôme Glisse Reviewed-by: Ralph Campbell Cc: John Hubbard Cc: Dan Williams Cc: Arnd Bergmann Cc: Balbir Singh Cc: Dan Carpenter Cc: Ira Weiny Cc: Matthew Wilcox Cc: Souptick Joarder Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a3e0d41c2b1f86b483b202d642140d8b86d677ca Author: Jérôme Glisse Date: Mon May 13 17:20:01 2019 -0700 mm/hmm: improve driver API to work and wait over a range A common use case for HMM mirror is user trying to mirror a range and before they could program the hardware it get invalidated by some core mm event. Instead of having user re-try right away to mirror the range provide a completion mechanism for them to wait for any active invalidation affecting the range. This also changes how hmm_range_snapshot() and hmm_range_fault() works by not relying on vma so that we can drop the mmap_sem when waiting and lookup the vma again on retry. Link: http://lkml.kernel.org/r/20190403193318.16478-7-jglisse@redhat.com Signed-off-by: Jérôme Glisse Reviewed-by: Ralph Campbell Cc: John Hubbard Cc: Dan Williams Cc: Dan Carpenter Cc: Matthew Wilcox Cc: Arnd Bergmann Cc: Balbir Singh Cc: Ira Weiny Cc: Souptick Joarder Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 73231612dc7c907bd96880a4086ee55eef6b6888 Author: Jérôme Glisse Date: Mon May 13 17:19:58 2019 -0700 mm/hmm: improve and rename hmm_vma_fault() to hmm_range_fault() Minor optimization around hmm_pte_need_fault(). Rename for consistency between code, comments and documentation. Also improves the comments on all the possible returns values. Improve the function by returning the number of populated entries in pfns array. Link: http://lkml.kernel.org/r/20190403193318.16478-6-jglisse@redhat.com Signed-off-by: Jérôme Glisse Reviewed-by: Ralph Campbell Cc: John Hubbard Cc: Dan Williams Cc: Arnd Bergmann Cc: Balbir Singh Cc: Dan Carpenter Cc: Ira Weiny Cc: Matthew Wilcox Cc: Souptick Joarder Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 25f23a0c7127b65c4d8200ccda8a352ad5ce1e1d Author: Jérôme Glisse Date: Mon May 13 17:19:55 2019 -0700 mm/hmm: improve and rename hmm_vma_get_pfns() to hmm_range_snapshot() Rename for consistency between code, comments and documentation. Also improves the comments on all the possible returns values. Improve the function by returning the number of populated entries in pfns array. Link: http://lkml.kernel.org/r/20190403193318.16478-5-jglisse@redhat.com Signed-off-by: Jérôme Glisse Reviewed-by: Ralph Campbell Reviewed-by: John Hubbard Reviewed-by: Ira Weiny Cc: Dan Williams Cc: Arnd Bergmann Cc: Balbir Singh Cc: Dan Carpenter Cc: Matthew Wilcox Cc: Souptick Joarder Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9f454612f602d02204b1f6e86b6bec2bfb368c4b Author: Jérôme Glisse Date: Mon May 13 17:19:52 2019 -0700 mm/hmm: do not erase snapshot when a range is invalidated Users of HMM might be using the snapshot information to do preparatory step like dma mapping pages to a device before checking for invalidation through hmm_vma_range_done() so do not erase that information and assume users will do the right thing. Link: http://lkml.kernel.org/r/20190403193318.16478-4-jglisse@redhat.com Signed-off-by: Jérôme Glisse Reviewed-by: Ralph Campbell Reviewed-by: John Hubbard Cc: Dan Williams Cc: Arnd Bergmann Cc: Balbir Singh Cc: Dan Carpenter Cc: Ira Weiny Cc: Matthew Wilcox Cc: Souptick Joarder Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 704f3f2cf63cdb76925ac2ff432182c73574b20b Author: Jérôme Glisse Date: Mon May 13 17:19:48 2019 -0700 mm/hmm: use reference counting for HMM struct Every time I read the code to check that the HMM structure does not vanish before it should thanks to the many lock protecting its removal i get a headache. Switch to reference counting instead it is much easier to follow and harder to break. This also remove some code that is no longer needed with refcounting. Link: http://lkml.kernel.org/r/20190403193318.16478-3-jglisse@redhat.com Signed-off-by: Jérôme Glisse Reviewed-by: Ralph Campbell Cc: John Hubbard Cc: Dan Williams Cc: Arnd Bergmann Cc: Balbir Singh Cc: Dan Carpenter Cc: Ira Weiny Cc: Matthew Wilcox Cc: Souptick Joarder Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 734fb89968900b5c5f8edd5038bd4cdeab8c61d2 Author: Jérôme Glisse Date: Mon May 13 17:19:45 2019 -0700 mm/hmm: select mmu notifier when selecting HMM To avoid random config build issue, select mmu notifier when HMM is selected. In any cases when HMM get selected it will be by users that will also wants the mmu notifier. Link: http://lkml.kernel.org/r/20190403193318.16478-2-jglisse@redhat.com Signed-off-by: Jérôme Glisse Acked-by: Balbir Singh Cc: Ralph Campbell Cc: John Hubbard Cc: Dan Williams Cc: Arnd Bergmann Cc: Dan Carpenter Cc: Ira Weiny Cc: Matthew Wilcox Cc: Souptick Joarder Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1b426bac66e6cc83c9f2d92b96e4e72acf43419a Author: Mike Kravetz Date: Mon May 13 17:19:41 2019 -0700 hugetlb: use same fault hash key for shared and private mappings hugetlb uses a fault mutex hash table to prevent page faults of the same pages concurrently. The key for shared and private mappings is different. Shared keys off address_space and file index. Private keys off mm and virtual address. Consider a private mappings of a populated hugetlbfs file. A fault will map the page from the file and if needed do a COW to map a writable page. Hugetlbfs hole punch uses the fault mutex to prevent mappings of file pages. It uses the address_space file index key. However, private mappings will use a different key and could race with this code to map the file page. This causes problems (BUG) for the page cache remove code as it expects the page to be unmapped. A sample stack is: page dumped because: VM_BUG_ON_PAGE(page_mapped(page)) kernel BUG at mm/filemap.c:169! ... RIP: 0010:unaccount_page_cache_page+0x1b8/0x200 ... Call Trace: __delete_from_page_cache+0x39/0x220 delete_from_page_cache+0x45/0x70 remove_inode_hugepages+0x13c/0x380 ? __add_to_page_cache_locked+0x162/0x380 hugetlbfs_fallocate+0x403/0x540 ? _cond_resched+0x15/0x30 ? __inode_security_revalidate+0x5d/0x70 ? selinux_file_permission+0x100/0x130 vfs_fallocate+0x13f/0x270 ksys_fallocate+0x3c/0x80 __x64_sys_fallocate+0x1a/0x20 do_syscall_64+0x5b/0x180 entry_SYSCALL_64_after_hwframe+0x44/0xa9 There seems to be another potential COW issue/race with this approach of different private and shared keys as noted in commit 8382d914ebf7 ("mm, hugetlb: improve page-fault scalability"). Since every hugetlb mapping (even anon and private) is actually a file mapping, just use the address_space index key for all mappings. This results in potentially more hash collisions. However, this should not be the common case. Link: http://lkml.kernel.org/r/20190328234704.27083-3-mike.kravetz@oracle.com Link: http://lkml.kernel.org/r/20190412165235.t4sscoujczfhuiyt@linux-r8p5 Fixes: b5cec28d36f5 ("hugetlbfs: truncate_hugepages() takes a range of pages") Signed-off-by: Mike Kravetz Reviewed-by: Naoya Horiguchi Reviewed-by: Davidlohr Bueso Cc: Joonsoo Kim Cc: "Kirill A . Shutemov" Cc: Michal Hocko Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 0919e1b69ab459e06df45d3ba6658d281962db80 Author: Mike Kravetz Date: Mon May 13 17:19:38 2019 -0700 hugetlbfs: on restore reserve error path retain subpool reservation When a huge page is allocated, PagePrivate() is set if the allocation consumed a reservation. When freeing a huge page, PagePrivate is checked. If set, it indicates the reservation should be restored. PagePrivate being set at free huge page time mostly happens on error paths. When huge page reservations are created, a check is made to determine if the mapping is associated with an explicitly mounted filesystem. If so, pages are also reserved within the filesystem. The default action when freeing a huge page is to decrement the usage count in any associated explicitly mounted filesystem. However, if the reservation is to be restored the reservation/use count within the filesystem should not be decrementd. Otherwise, a subsequent page allocation and free for the same mapping location will cause the file filesystem usage to go 'negative'. Filesystem Size Used Avail Use% Mounted on nodev 4.0G -4.0M 4.1G - /opt/hugepool To fix, when freeing a huge page do not adjust filesystem usage if PagePrivate() is set to indicate the reservation should be restored. I did not cc stable as the problem has been around since reserves were added to hugetlbfs and nobody has noticed. Link: http://lkml.kernel.org/r/20190328234704.27083-2-mike.kravetz@oracle.com Signed-off-by: Mike Kravetz Reviewed-by: Naoya Horiguchi Cc: Davidlohr Bueso Cc: Joonsoo Kim Cc: Michal Hocko Cc: "Kirill A . Shutemov" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 063b8a4cee8088224bcdb79bcd08db98df16178e Author: Baoquan He Date: Mon May 13 17:19:35 2019 -0700 drivers/base/memory.c: clean up relics in function parameters The input parameter 'phys_index' of memory_block_action() is actually the section number, but not the phys_index of memory_block. This is a relic from the past when one memory block could only contain one section. Rename it to start_section_nr. And also in remove_memory_section(), the 'node_id' and 'phys_device' arguments are not used by anyone. Remove them. Link: http://lkml.kernel.org/r/20190329144250.14315-2-bhe@redhat.com Signed-off-by: Baoquan He Acked-by: Michal Hocko Reviewed-by: Rafael J. Wysocki Reviewed-by: Mukesh Ojha Reviewed-by: Oscar Salvador Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7567cfc5da9faadbe56dbd65c802b6b828a57d8b Author: Baoquan He Date: Mon May 13 17:19:32 2019 -0700 mm/sparse.c: clean up obsolete code comment The code comment above sparse_add_one_section() is obsolete and incorrect. Clean it up and write a new one. Link: http://lkml.kernel.org/r/20190329144250.14315-1-bhe@redhat.com Signed-off-by: Baoquan He Acked-by: Michal Hocko Reviewed-by: Oscar Salvador Reviewed-by: Mukesh Ojha Reviewed-by: Mike Rapoport Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 926e5d1cb525ec4faa66ddb24ac3b61c0102cb5c Author: David Hildenbrand Date: Mon May 13 17:19:29 2019 -0700 include/linux/balloon_compaction.h: drop unused function stubs These are leftovers from the pre-"general non-lru movable page" era. Link: http://lkml.kernel.org/r/20190329122649.28404-1-david@redhat.com Signed-off-by: David Hildenbrand Reviewed-by: Mukesh Ojha Acked-by: Michael S. Tsirkin Acked-by: Pankaj Gupta Acked-by: Rafael Aquini Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit dae966dc8f883f202887cc9cf257f92f068eac1e Author: Peng Fan Date: Mon May 13 17:19:26 2019 -0700 mm/swap.c: __pagevec_lru_add_fn: typo fix There is no function named munlock_vma_pages(). Correct it to munlock_vma_page(). Link: http://lkml.kernel.org/r/20190402095609.27181-1-peng.fan@nxp.com Signed-off-by: Peng Fan Reviewed-by: Andrew Morton Reviewed-by: Mukesh Ojha Acked-by: Vlastimil Babka Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2d0adf7e0d7ac1e18da874c5b19ef30a0db59658 Author: Oscar Salvador Date: Mon May 13 17:19:23 2019 -0700 mm/hugetlb: get rid of NODEMASK_ALLOC NODEMASK_ALLOC is used to allocate a nodemask bitmap, and it does it by first determining whether it should be allocated on the stack or dynamically, depending on NODES_SHIFT. Right now, it goes the dynamic path whenever the nodemask_t is above 32 bytes. Although we could bump it to a reasonable value, the largest a nodemask_t can get is 128 bytes, so since __nr_hugepages_store_common is called from a rather short stack we can just get rid of the NODEMASK_ALLOC call here. This reduces some code churn and complexity. Link: http://lkml.kernel.org/r/20190402133415.21983-1-osalvador@suse.de Signed-off-by: Oscar Salvador Reviewed-by: Mike Kravetz Reviewed-by: Naoya Horiguchi Cc: Alex Ghiti Cc: David Rientjes Cc: Jing Xiangfeng Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fd875dca7c71744cbb0ebbcde7d45e5ee05b7637 Author: Mike Kravetz Date: Mon May 13 17:19:20 2019 -0700 hugetlbfs: fix potential over/underflow setting node specific nr_hugepages The number of node specific huge pages can be set via a file such as: /sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages When a node specific value is specified, the global number of huge pages must also be adjusted. This adjustment is calculated as the specified node specific value + (global value - current node value). If the node specific value provided by the user is large enough, this calculation could overflow an unsigned long leading to a smaller than expected number of huge pages. To fix, check the calculation for overflow. If overflow is detected, use ULONG_MAX as the requested value. This is inline with the user request to allocate as many huge pages as possible. It was also noticed that the above calculation was done outside the hugetlb_lock. Therefore, the values could be inconsistent and result in underflow. To fix, the calculation is moved within the routine set_max_huge_pages() where the lock is held. In addition, the code in __nr_hugepages_store_common() which tries to handle the case of not being able to allocate a node mask would likely result in incorrect behavior. Luckily, it is very unlikely we will ever take this path. If we do, simply return ENOMEM. Link: http://lkml.kernel.org/r/20190328220533.19884-1-mike.kravetz@oracle.com Signed-off-by: Mike Kravetz Reported-by: Jing Xiangfeng Reviewed-by: Naoya Horiguchi Reviewed-by: Oscar Salvador Cc: David Rientjes Cc: Alex Ghiti Cc: Jing Xiangfeng Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 299c83dce9ea3a79bb4b5511d2cb996b6b8e5111 Author: Linxu Fang Date: Mon May 13 17:19:17 2019 -0700 mem-hotplug: fix node spanned pages when we have a node with only ZONE_MOVABLE 342332e6a925 ("mm/page_alloc.c: introduce kernelcore=mirror option") and later patches rewrote the calculation of node spanned pages. e506b99696a2 ("mem-hotplug: fix node spanned pages when we have a movable node"), but the current code still has problems, When we have a node with only zone_movable and the node id is not zero, the size of node spanned pages is double added. That's because we have an empty normal zone, and zone_start_pfn or zone_end_pfn is not between arch_zone_lowest_possible_pfn and arch_zone_highest_possible_pfn, so we need to use clamp to constrain the range just like the commit <96e907d13602> (bootmem: Reimplement __absent_pages_in_range() using for_each_mem_pfn_range()). e.g. Zone ranges: DMA [mem 0x0000000000001000-0x0000000000ffffff] DMA32 [mem 0x0000000001000000-0x00000000ffffffff] Normal [mem 0x0000000100000000-0x000000023fffffff] Movable zone start for each node Node 0: 0x0000000100000000 Node 1: 0x0000000140000000 Early memory node ranges node 0: [mem 0x0000000000001000-0x000000000009efff] node 0: [mem 0x0000000000100000-0x00000000bffdffff] node 0: [mem 0x0000000100000000-0x000000013fffffff] node 1: [mem 0x0000000140000000-0x000000023fffffff] node 0 DMA spanned:0xfff present:0xf9e absent:0x61 node 0 DMA32 spanned:0xff000 present:0xbefe0 absent:0x40020 node 0 Normal spanned:0 present:0 absent:0 node 0 Movable spanned:0x40000 present:0x40000 absent:0 On node 0 totalpages(node_present_pages): 1048446 node_spanned_pages:1310719 node 1 DMA spanned:0 present:0 absent:0 node 1 DMA32 spanned:0 present:0 absent:0 node 1 Normal spanned:0x100000 present:0x100000 absent:0 node 1 Movable spanned:0x100000 present:0x100000 absent:0 On node 1 totalpages(node_present_pages): 2097152 node_spanned_pages:2097152 Memory: 6967796K/12582392K available (16388K kernel code, 3686K rwdata, 4468K rodata, 2160K init, 10444K bss, 5614596K reserved, 0K cma-reserved) It shows that the current memory of node 1 is double added. After this patch, the problem is fixed. node 0 DMA spanned:0xfff present:0xf9e absent:0x61 node 0 DMA32 spanned:0xff000 present:0xbefe0 absent:0x40020 node 0 Normal spanned:0 present:0 absent:0 node 0 Movable spanned:0x40000 present:0x40000 absent:0 On node 0 totalpages(node_present_pages): 1048446 node_spanned_pages:1310719 node 1 DMA spanned:0 present:0 absent:0 node 1 DMA32 spanned:0 present:0 absent:0 node 1 Normal spanned:0 present:0 absent:0 node 1 Movable spanned:0x100000 present:0x100000 absent:0 On node 1 totalpages(node_present_pages): 1048576 node_spanned_pages:1048576 memory: 6967796K/8388088K available (16388K kernel code, 3686K rwdata, 4468K rodata, 2160K init, 10444K bss, 1420292K reserved, 0K cma-reserved) Link: http://lkml.kernel.org/r/1554178276-10372-1-git-send-email-fanglinxu@huawei.com Signed-off-by: Linxu Fang Cc: Taku Izumi Cc: Xishi Qiu Cc: Michal Hocko Cc: Vlastimil Babka Cc: Pavel Tatashin Cc: Oscar Salvador Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3481c37ffa1de58ef140d0fe9eabf56305e74666 Author: Yafang Shao Date: Mon May 13 17:19:14 2019 -0700 mm/vmscan: drop may_writepage and classzone_idx from direct reclaim begin template There are three tracepoints using this template, which are mm_vmscan_direct_reclaim_begin, mm_vmscan_memcg_reclaim_begin, mm_vmscan_memcg_softlimit_reclaim_begin. Regarding mm_vmscan_direct_reclaim_begin, sc.may_writepage is !laptop_mode, that's a static setting, and reclaim_idx is derived from gfp_mask which is already show in this tracepoint. Regarding mm_vmscan_memcg_reclaim_begin, may_writepage is !laptop_mode too, and reclaim_idx is (MAX_NR_ZONES-1), which are both static value. mm_vmscan_memcg_softlimit_reclaim_begin is the same with mm_vmscan_memcg_reclaim_begin. So we can drop them all. Link: http://lkml.kernel.org/r/1553736322-32235-1-git-send-email-laoar.shao@gmail.com Signed-off-by: Yafang Shao Acked-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 024eee0e83f0df52317be607ca521e0fc572aa07 Author: Aneesh Kumar K.V Date: Mon May 13 17:19:11 2019 -0700 mm: page_mkclean vs MADV_DONTNEED race MADV_DONTNEED is handled with mmap_sem taken in read mode. We call page_mkclean without holding mmap_sem. MADV_DONTNEED implies that pages in the region are unmapped and subsequent access to the pages in that range is handled as a new page fault. This implies that if we don't have parallel access to the region when MADV_DONTNEED is run we expect those range to be unallocated. w.r.t page_mkclean() we need to make sure that we don't break the MADV_DONTNEED semantics. MADV_DONTNEED check for pmd_none without holding pmd_lock. This implies we skip the pmd if we temporarily mark pmd none. Avoid doing that while marking the page clean. Keep the sequence same for dax too even though we don't support MADV_DONTNEED for dax mapping The bug was noticed by code review and I didn't observe any failures w.r.t test run. This is similar to commit 58ceeb6bec86d9140f9d91d71a710e963523d063 Author: Kirill A. Shutemov Date: Thu Apr 13 14:56:26 2017 -0700 thp: fix MADV_DONTNEED vs. MADV_FREE race commit ced108037c2aa542b3ed8b7afd1576064ad1362a Author: Kirill A. Shutemov Date: Thu Apr 13 14:56:20 2017 -0700 thp: fix MADV_DONTNEED vs. numa balancing race Link: http://lkml.kernel.org/r/20190321040610.14226-1-aneesh.kumar@linux.ibm.com Signed-off-by: Aneesh Kumar K.V Reviewed-by: Andrew Morton Cc: Dan Williams Cc:"Kirill A . Shutemov" Cc: Andrea Arcangeli Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fc1d8e7cca2daa18d2fe56b94874848adf89d7f5 Author: John Hubbard Date: Mon May 13 17:19:08 2019 -0700 mm: introduce put_user_page*(), placeholder versions A discussion of the overall problem is below. As mentioned in patch 0001, the steps are to fix the problem are: 1) Provide put_user_page*() routines, intended to be used for releasing pages that were pinned via get_user_pages*(). 2) Convert all of the call sites for get_user_pages*(), to invoke put_user_page*(), instead of put_page(). This involves dozens of call sites, and will take some time. 3) After (2) is complete, use get_user_pages*() and put_user_page*() to implement tracking of these pages. This tracking will be separate from the existing struct page refcounting. 4) Use the tracking and identification of these pages, to implement special handling (especially in writeback paths) when the pages are backed by a filesystem. Overview ======== Some kernel components (file systems, device drivers) need to access memory that is specified via process virtual address. For a long time, the API to achieve that was get_user_pages ("GUP") and its variations. However, GUP has critical limitations that have been overlooked; in particular, GUP does not interact correctly with filesystems in all situations. That means that file-backed memory + GUP is a recipe for potential problems, some of which have already occurred in the field. GUP was first introduced for Direct IO (O_DIRECT), allowing filesystem code to get the struct page behind a virtual address and to let storage hardware perform a direct copy to or from that page. This is a short-lived access pattern, and as such, the window for a concurrent writeback of GUP'd page was small enough that there were not (we think) any reported problems. Also, userspace was expected to understand and accept that Direct IO was not synchronized with memory-mapped access to that data, nor with any process address space changes such as munmap(), mremap(), etc. Over the years, more GUP uses have appeared (virtualization, device drivers, RDMA) that can keep the pages they get via GUP for a long period of time (seconds, minutes, hours, days, ...). This long-term pinning makes an underlying design problem more obvious. In fact, there are a number of key problems inherent to GUP: Interactions with file systems ============================== File systems expect to be able to write back data, both to reclaim pages, and for data integrity. Allowing other hardware (NICs, GPUs, etc) to gain write access to the file memory pages means that such hardware can dirty the pages, without the filesystem being aware. This can, in some cases (depending on filesystem, filesystem options, block device, block device options, and other variables), lead to data corruption, and also to kernel bugs of the form: kernel BUG at /build/linux-fQ94TU/linux-4.4.0/fs/ext4/inode.c:1899! backtrace: ext4_writepage __writepage write_cache_pages ext4_writepages do_writepages __writeback_single_inode writeback_sb_inodes __writeback_inodes_wb wb_writeback wb_workfn process_one_work worker_thread kthread ret_from_fork ...which is due to the file system asserting that there are still buffer heads attached: ({ \ BUG_ON(!PagePrivate(page)); \ ((struct buffer_head *)page_private(page)); \ }) Dave Chinner's description of this is very clear: "The fundamental issue is that ->page_mkwrite must be called on every write access to a clean file backed page, not just the first one. How long the GUP reference lasts is irrelevant, if the page is clean and you need to dirty it, you must call ->page_mkwrite before it is marked writeable and dirtied. Every. Time." This is just one symptom of the larger design problem: real filesystems that actually write to a backing device, do not actually support get_user_pages() being called on their pages, and letting hardware write directly to those pages--even though that pattern has been going on since about 2005 or so. Long term GUP ============= Long term GUP is an issue when FOLL_WRITE is specified to GUP (so, a writeable mapping is created), and the pages are file-backed. That can lead to filesystem corruption. What happens is that when a file-backed page is being written back, it is first mapped read-only in all of the CPU page tables; the file system then assumes that nobody can write to the page, and that the page content is therefore stable. Unfortunately, the GUP callers generally do not monitor changes to the CPU pages tables; they instead assume that the following pattern is safe (it's not): get_user_pages() Hardware can keep a reference to those pages for a very long time, and write to it at any time. Because "hardware" here means "devices that are not a CPU", this activity occurs without any interaction with the kernel's file system code. for each page set_page_dirty put_page() In fact, the GUP documentation even recommends that pattern. Anyway, the file system assumes that the page is stable (nothing is writing to the page), and that is a problem: stable page content is necessary for many filesystem actions during writeback, such as checksum, encryption, RAID striping, etc. Furthermore, filesystem features like COW (copy on write) or snapshot also rely on being able to use a new page for as memory for that memory range inside the file. Corruption during write back is clearly possible here. To solve that, one idea is to identify pages that have active GUP, so that we can use a bounce page to write stable data to the filesystem. The filesystem would work on the bounce page, while any of the active GUP might write to the original page. This would avoid the stable page violation problem, but note that it is only part of the overall solution, because other problems remain. Other filesystem features that need to replace the page with a new one can be inhibited for pages that are GUP-pinned. This will, however, alter and limit some of those filesystem features. The only fix for that would be to require GUP users to monitor and respond to CPU page table updates. Subsystems such as ODP and HMM do this, for example. This aspect of the problem is still under discussion. Direct IO ========= Direct IO can cause corruption, if userspace does Direct-IO that writes to a range of virtual addresses that are mmap'd to a file. The pages written to are file-backed pages that can be under write back, while the Direct IO is taking place. Here, Direct IO races with a write back: it calls GUP before page_mkclean() has replaced the CPU pte with a read-only entry. The race window is pretty small, which is probably why years have gone by before we noticed this problem: Direct IO is generally very quick, and tends to finish up before the filesystem gets around to do anything with the page contents. However, it's still a real problem. The solution is to never let GUP return pages that are under write back, but instead, force GUP to take a write fault on those pages. That way, GUP will properly synchronize with the active write back. This does not change the required GUP behavior, it just avoids that race. Details ======= Introduces put_user_page(), which simply calls put_page(). This provides a way to update all get_user_pages*() callers, so that they call put_user_page(), instead of put_page(). Also introduces put_user_pages(), and a few dirty/locked variations, as a replacement for release_pages(), and also as a replacement for open-coded loops that release multiple pages. These may be used for subsequent performance improvements, via batching of pages to be released. This is the first step of fixing a problem (also described in [1] and [2]) with interactions between get_user_pages ("gup") and filesystems. Problem description: let's start with a bug report. Below, is what happens sometimes, under memory pressure, when a driver pins some pages via gup, and then marks those pages dirty, and releases them. Note that the gup documentation actually recommends that pattern. The problem is that the filesystem may do a writeback while the pages were gup-pinned, and then the filesystem believes that the pages are clean. So, when the driver later marks the pages as dirty, that conflicts with the filesystem's page tracking and results in a BUG(), like this one that I experienced: kernel BUG at /build/linux-fQ94TU/linux-4.4.0/fs/ext4/inode.c:1899! backtrace: ext4_writepage __writepage write_cache_pages ext4_writepages do_writepages __writeback_single_inode writeback_sb_inodes __writeback_inodes_wb wb_writeback wb_workfn process_one_work worker_thread kthread ret_from_fork ...which is due to the file system asserting that there are still buffer heads attached: ({ \ BUG_ON(!PagePrivate(page)); \ ((struct buffer_head *)page_private(page)); \ }) Dave Chinner's description of this is very clear: "The fundamental issue is that ->page_mkwrite must be called on every write access to a clean file backed page, not just the first one. How long the GUP reference lasts is irrelevant, if the page is clean and you need to dirty it, you must call ->page_mkwrite before it is marked writeable and dirtied. Every. Time." This is just one symptom of the larger design problem: real filesystems that actually write to a backing device, do not actually support get_user_pages() being called on their pages, and letting hardware write directly to those pages--even though that pattern has been going on since about 2005 or so. The steps are to fix it are: 1) (This patch): provide put_user_page*() routines, intended to be used for releasing pages that were pinned via get_user_pages*(). 2) Convert all of the call sites for get_user_pages*(), to invoke put_user_page*(), instead of put_page(). This involves dozens of call sites, and will take some time. 3) After (2) is complete, use get_user_pages*() and put_user_page*() to implement tracking of these pages. This tracking will be separate from the existing struct page refcounting. 4) Use the tracking and identification of these pages, to implement special handling (especially in writeback paths) when the pages are backed by a filesystem. [1] https://lwn.net/Articles/774411/ : "DMA and get_user_pages()" [2] https://lwn.net/Articles/753027/ : "The Trouble with get_user_pages()" Link: http://lkml.kernel.org/r/20190327023632.13307-2-jhubbard@nvidia.com Signed-off-by: John Hubbard Reviewed-by: Jan Kara Reviewed-by: Mike Rapoport [docs] Reviewed-by: Ira Weiny Reviewed-by: Jérôme Glisse Reviewed-by: Christoph Lameter Tested-by: Ira Weiny Cc: Al Viro Cc: Christoph Hellwig Cc: Dan Williams Cc: Dave Chinner Cc: Jason Gunthorpe Cc: Matthew Wilcox Cc: Michal Hocko Cc: Ralph Campbell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4eb0716e868eed963967adb0b1b11d9bd8ca1d01 Author: Alexandre Ghiti Date: Mon May 13 17:19:04 2019 -0700 hugetlb: allow to free gigantic pages regardless of the configuration On systems without CONTIG_ALLOC activated but that support gigantic pages, boottime reserved gigantic pages can not be freed at all. This patch simply enables the possibility to hand back those pages to memory allocator. Link: http://lkml.kernel.org/r/20190327063626.18421-5-alex@ghiti.fr Signed-off-by: Alexandre Ghiti Acked-by: David S. Miller [sparc] Reviewed-by: Mike Kravetz Cc: Andy Lutomirsky Cc: Aneesh Kumar K.V Cc: Benjamin Herrenschmidt Cc: Borislav Petkov Cc: Catalin Marinas Cc: Dave Hansen Cc: Heiko Carstens Cc: "H . Peter Anvin" Cc: Ingo Molnar Cc: Martin Schwidefsky Cc: Michael Ellerman Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Rich Felker Cc: Thomas Gleixner Cc: Vlastimil Babka Cc: Will Deacon Cc: Yoshinori Sato Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8df995f6bde01de96ce93373785f41c3bd13ad1c Author: Alexandre Ghiti Date: Mon May 13 17:19:00 2019 -0700 mm: simplify MEMORY_ISOLATION && COMPACTION || CMA into CONTIG_ALLOC This condition allows to define alloc_contig_range, so simplify it into a more accurate naming. Link: http://lkml.kernel.org/r/20190327063626.18421-4-alex@ghiti.fr Signed-off-by: Alexandre Ghiti Suggested-by: Vlastimil Babka Acked-by: Vlastimil Babka Cc: Andy Lutomirsky Cc: Aneesh Kumar K.V Cc: Benjamin Herrenschmidt Cc: Borislav Petkov Cc: Catalin Marinas Cc: Dave Hansen Cc: David S. Miller Cc: Heiko Carstens Cc: "H . Peter Anvin" Cc: Ingo Molnar Cc: Martin Schwidefsky Cc: Michael Ellerman Cc: Mike Kravetz Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Rich Felker Cc: Thomas Gleixner Cc: Will Deacon Cc: Yoshinori Sato Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b53f45695449f692d5d2ab89cecc3316cdb636e8 Author: Alexandre Ghiti Date: Mon May 13 17:18:56 2019 -0700 sparc: advertise gigantic page support sparc actually supports gigantic pages and selecting ARCH_HAS_GIGANTIC_PAGE allows it to allocate and free gigantic pages at runtime. sparc allows configuration such as huge pages of 16GB, pages of 8KB and MAX_ORDER = 13 (default): HPAGE_SHIFT (34) - PAGE_SHIFT (13) = 21 >= MAX_ORDER (13) Link: http://lkml.kernel.org/r/20190327063626.18421-3-alex@ghiti.fr Signed-off-by: Alexandre Ghiti Acked-by: David S. Miller Cc: Andy Lutomirsky Cc: Aneesh Kumar K.V Cc: Benjamin Herrenschmidt Cc: Borislav Petkov Cc: Catalin Marinas Cc: Dave Hansen Cc: Heiko Carstens Cc: "H . Peter Anvin" Cc: Ingo Molnar Cc: Martin Schwidefsky Cc: Michael Ellerman Cc: Mike Kravetz Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Rich Felker Cc: Thomas Gleixner Cc: Vlastimil Babka Cc: Will Deacon Cc: Yoshinori Sato Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a861bbce27634160ae0330126b4ef001d6941c8f Author: Alexandre Ghiti Date: Mon May 13 17:18:53 2019 -0700 sh: advertise gigantic page support Patch series "Fix free/allocation of runtime gigantic pages", v8. This series fixes sh and sparc that did not advertise their gigantic page support and then were not able to allocate and free those pages at runtime. It renames MEMORY_ISOLATION && COMPACTION || CMA condition into the more accurate CONTIG_ALLOC, since it allows the definition of alloc_contig_range function. Finally, it then fixes the wrong definition of ARCH_HAS_GIGANTIC_PAGE config that, without MEMORY_ISOLATION && COMPACTION || CMA defined, did not allow architectures to free boottime allocated gigantic pages although unrelated. This patch (of 4): sh actually supports gigantic pages and selecting ARCH_HAS_GIGANTIC_PAGE allows it to allocate and free gigantic pages at runtime. At least sdk7786_defconfig exposes such a configuration with huge pages of 64MB, pages of 4KB and MAX_ORDER = 11: HPAGE_SHIFT (26) - PAGE_SHIFT (12) = 14 >= MAX_ORDER (11) Link: http://lkml.kernel.org/r/20190327063626.18421-2-alex@ghiti.fr Signed-off-by: Alexandre Ghiti Reviewed-by: Andrew Morton Cc: Aneesh Kumar K.V Cc: Michael Ellerman Cc: Vlastimil Babka Cc: Catalin Marinas Cc: Will Deacon Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Martin Schwidefsky Cc: Heiko Carstens Cc: Yoshinori Sato Cc: Rich Felker Cc: David S. Miller Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Borislav Petkov Cc: "H . Peter Anvin" Cc: Dave Hansen Cc: Andy Lutomirsky Cc: Peter Zijlstra Cc: Mike Kravetz Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 0d7b4a607d8f0f95f1ce49e993a04317d10a4ecd Author: Mike Rapoport Date: Mon May 13 17:18:49 2019 -0700 riscv: switch over to generic free_initmem() The riscv version of free_initmem() differs from the generic one only in that it sets the freed memory to zero. Make ricsv use the generic version and poison the freed memory. Link: http://lkml.kernel.org/r/1550515285-17446-5-git-send-email-rppt@linux.ibm.com Signed-off-by: Mike Rapoport Reviewed-by: Palmer Dabbelt Reviewed-by: Andrew Morton Cc: Christoph Hellwig Cc: Richard Kuo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f40399992a245c852ad446e265d1567010db5e10 Author: Mike Rapoport Date: Mon May 13 17:18:46 2019 -0700 init: free_initmem: poison freed init memory Various architectures including x86 poison the freed init memory. Do the same in the generic free_initmem implementation and switch sparc32 architecture that is identical to the generic code over to it now. Link: http://lkml.kernel.org/r/1550515285-17446-4-git-send-email-rppt@linux.ibm.com Signed-off-by: Mike Rapoport Reviewed-by: Andrew Morton Cc: Christoph Hellwig Cc: Palmer Dabbelt Cc: Richard Kuo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 522c99194549e50a9bd76427a06922d7a68237d6 Author: Mike Rapoport Date: Mon May 13 17:18:43 2019 -0700 hexagon: switch over to generic free_initmem() hexagon implementation of free_initmem() is currently empty and marked with comment * Todo: free pages between __init_begin and __init_end; possibly * some devtree related stuff as well. Switch it to the generic implementation. Link: http://lkml.kernel.org/r/1550515285-17446-3-git-send-email-rppt@linux.ibm.com Signed-off-by: Mike Rapoport Reviewed-by: Andrew Morton Cc: Christoph Hellwig Cc: Palmer Dabbelt Cc: Richard Kuo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 997aef68af3ef1f2cb97da1c0b41a5afa87f63e2 Author: Mike Rapoport Date: Mon May 13 17:18:40 2019 -0700 init: provide a generic free_initmem implementation Patch series "provide a generic free_initmem implementation", v2. Many architectures implement free_initmem() in exactly the same or very similar way: they wrap the call to free_initmem_default() with sometimes different 'poison' parameter. These patches switch those architectures to use a generic implementation that does free_initmem_default(POISON_FREE_INITMEM). This was inspired by Christoph's patches for free_initrd_mem [1] and I shamelessly copied changelog entries from his patches :) [1] https://lore.kernel.org/lkml/20190213174621.29297-1-hch@lst.de/ This patch (of 2): For most architectures free_initmem just a wrapper for the same free_initmem_default(-1) call. Provide that as a generic implementation marked __weak. Link: http://lkml.kernel.org/r/1550515285-17446-2-git-send-email-rppt@linux.ibm.com Signed-off-by: Mike Rapoport Reviewed-by: Andrew Morton Cc: Christoph Hellwig Cc: Palmer Dabbelt Cc: Richard Kuo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f94f7434cbbb02f7eb55ed5ad66284023c47968f Author: Christoph Hellwig Date: Mon May 13 17:18:37 2019 -0700 initramfs: poison freed initrd memory Various architectures including x86 poison the freed initrd memory. Do the same in the generic free_initrd_mem implementation and switch a few more architectures that are identical to the generic code over to it now. Link: http://lkml.kernel.org/r/20190213174621.29297-9-hch@lst.de Signed-off-by: Christoph Hellwig Acked-by: Mike Rapoport Cc: Catalin Marinas [arm64] Cc: Geert Uytterhoeven [m68k] Cc: Steven Price Cc: Alexander Viro Cc: Guan Xuetao Cc: Russell King Cc: Will Deacon Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4afd58e14dd415e456fd236755373f52e6055ec7 Author: Christoph Hellwig Date: Mon May 13 17:18:34 2019 -0700 initramfs: provide a generic free_initrd_mem implementation For most architectures free_initrd_mem just expands to the same free_reserved_area call. Provide that as a generic implementation marked __weak. Link: http://lkml.kernel.org/r/20190213174621.29297-8-hch@lst.de Signed-off-by: Christoph Hellwig Acked-by: Geert Uytterhoeven [m68k] Acked-by: Mike Rapoport Cc: Catalin Marinas [arm64] Cc: Steven Price Cc: Alexander Viro Cc: Guan Xuetao Cc: Russell King Cc: Will Deacon Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d8ae8a3765bfa1f9bf977e2496fcc9cf64fbfabd Author: Christoph Hellwig Date: Mon May 13 17:18:30 2019 -0700 initramfs: move the legacy keepinitrd parameter to core code No need to handle the freeing disable in arch code when we already have a core hook (and a different name for the option) for it. Link: http://lkml.kernel.org/r/20190213174621.29297-7-hch@lst.de Signed-off-by: Christoph Hellwig Acked-by: Catalin Marinas [arm64] Acked-by: Mike Rapoport Cc: Geert Uytterhoeven [m68k] Cc: Steven Price Cc: Alexander Viro Cc: Guan Xuetao Cc: Russell King Cc: Will Deacon Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit afef7889c480ed134247f16c2ebdeabd75e77fd0 Author: Christoph Hellwig Date: Mon May 13 17:18:27 2019 -0700 initramfs: cleanup populate_rootfs The code for kernels that support ramdisks or not is mostly the same. Unify it by using an IS_ENABLED for the info message, and moving the error message into a stub for populate_initrd_image. [cai@lca.pw: fix a compilation error] Link: http://lkml.kernel.org/r/20190328014806.36375-1-cai@lca.pw Link: http://lkml.kernel.org/r/20190213174621.29297-6-hch@lst.de Signed-off-by: Christoph Hellwig Signed-off-by: Qian Cai Acked-by: Mike Rapoport Cc: Catalin Marinas [arm64] Cc: Geert Uytterhoeven [m68k] Cc: Steven Price Cc: Alexander Viro Cc: Guan Xuetao Cc: Russell King Cc: Will Deacon Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7c184ecd262fe64fe8cf4e099e0f7cefe88d88b2 Author: Christoph Hellwig Date: Mon May 13 17:18:24 2019 -0700 initramfs: factor out a helper to populate the initrd image This will allow for cleaner code sharing in the caller. Link: http://lkml.kernel.org/r/20190213174621.29297-5-hch@lst.de Signed-off-by: Christoph Hellwig Acked-by: Mike Rapoport Cc: Catalin Marinas [arm64] Cc: Geert Uytterhoeven [m68k] Cc: Steven Price Cc: Alexander Viro Cc: Guan Xuetao Cc: Russell King Cc: Will Deacon Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 23091e287355440fb680868c23bcada594d3f399 Author: Christoph Hellwig Date: Mon May 13 17:18:21 2019 -0700 initramfs: cleanup initrd freeing Factor the kexec logic into a separate helper, and then inline the rest of free_initrd into the only caller. Link: http://lkml.kernel.org/r/20190213174621.29297-4-hch@lst.de Signed-off-by: Christoph Hellwig Acked-by: Mike Rapoport Cc: Catalin Marinas [arm64] Cc: Geert Uytterhoeven [m68k] Cc: Steven Price Cc: Alexander Viro Cc: Guan Xuetao Cc: Russell King Cc: Will Deacon Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 54c7a8916a887f357088f99e9c3a7720cd57d2c8 Author: Christoph Hellwig Date: Mon May 13 17:18:17 2019 -0700 initramfs: free initrd memory if opening /initrd.image fails Patch series "initramfs tidyups". I've spent some time chasing down behavior in initramfs and found plenty of opportunity to improve the code. A first stab on that is contained in this series. This patch (of 7): We free the initrd memory for all successful or error cases except for the case where opening /initrd.image fails, which looks like an oversight. Steven said: : This also changes the behaviour when CONFIG_INITRAMFS_FORCE is enabled : - specifically it means that the initrd is freed (previously it was : ignored and never freed). But that seems like reasonable behaviour and : the previous behaviour looks like another oversight. Link: http://lkml.kernel.org/r/20190213174621.29297-3-hch@lst.de Signed-off-by: Christoph Hellwig Reviewed-by: Steven Price Acked-by: Mike Rapoport Cc: Catalin Marinas [arm64] Cc: Geert Uytterhoeven [m68k] Cc: Alexander Viro Cc: Russell King Cc: Will Deacon Cc: Guan Xuetao Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1df3a339074e31db95c4790ea9236874b13ccd87 Author: Yue Hu Date: Mon May 13 17:18:14 2019 -0700 mm/cma.c: fix crash on CMA allocation if bitmap allocation fails f022d8cb7ec7 ("mm: cma: Don't crash on allocation if CMA area can't be activated") fixes the crash issue when activation fails via setting cma->count as 0, same logic exists if bitmap allocation fails. Link: http://lkml.kernel.org/r/20190325081309.6004-1-zbestahu@gmail.com Signed-off-by: Yue Hu Reviewed-by: Anshuman Khandual Cc: Joonsoo Kim Cc: Laura Abbott Cc: Mike Rapoport Cc: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 113b7dfd827175977ea71cc4a29c1ac24acb9fce Author: Johannes Weiner Date: Mon May 13 17:18:11 2019 -0700 mm: memcontrol: quarantine the mem_cgroup_[node_]nr_lru_pages() API Only memcg_numa_stat_show() uses those wrappers and the lru bitmasks, group them together. Link: http://lkml.kernel.org/r/20190228163020.24100-7-hannes@cmpxchg.org Signed-off-by: Johannes Weiner Reviewed-by: Roman Gushchin Cc: Michal Hocko Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 21d89d151bb42bea1bcf0343f724ef62509d6161 Author: Johannes Weiner Date: Mon May 13 17:18:08 2019 -0700 mm: memcontrol: push down mem_cgroup_nr_lru_pages() mem_cgroup_nr_lru_pages() is just a convenience wrapper around memcg_page_state() that takes bitmasks of lru indexes and aggregates the counts for those. Replace callsites where the bitmask is simple enough with direct memcg_page_state() call(s). Link: http://lkml.kernel.org/r/20190228163020.24100-6-hannes@cmpxchg.org Signed-off-by: Johannes Weiner Reviewed-by: Roman Gushchin Cc: Michal Hocko Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2b487e59f00aaa885ebf9c47d44d09f3ef4df80e Author: Johannes Weiner Date: Mon May 13 17:18:05 2019 -0700 mm: memcontrol: push down mem_cgroup_node_nr_lru_pages() mem_cgroup_node_nr_lru_pages() is just a convenience wrapper around lruvec_page_state() that takes bitmasks of lru indexes and aggregates the counts for those. Replace callsites where the bitmask is simple enough with direct lruvec_page_state() calls. This removes the last extern user of mem_cgroup_node_nr_lru_pages(), so make that function private again, too. Link: http://lkml.kernel.org/r/20190228163020.24100-5-hannes@cmpxchg.org Signed-off-by: Johannes Weiner Reviewed-by: Roman Gushchin Cc: Michal Hocko Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 22796c844fcb85f3b289c0e698713b7fa4d9c178 Author: Johannes Weiner Date: Mon May 13 17:18:03 2019 -0700 mm: memcontrol: replace node summing with memcg_page_state() Instead of adding up the node counters, use memcg_page_state() to get the memcg state directly. This is a bit cheaper and more stream-lined. Link: http://lkml.kernel.org/r/20190228163020.24100-4-hannes@cmpxchg.org Signed-off-by: Johannes Weiner Reviewed-by: Roman Gushchin Cc: Michal Hocko Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 1a61ab8038e724a6d8aa59e7d4931a119483294d Author: Johannes Weiner Date: Mon May 13 17:18:00 2019 -0700 mm: memcontrol: replace zone summing with lruvec_page_state() Instead of adding up the zone counters, use lruvec_page_state() to get the node state directly. This is a bit cheaper and more stream-lined. Link: http://lkml.kernel.org/r/20190228163020.24100-3-hannes@cmpxchg.org Signed-off-by: Johannes Weiner Reviewed-by: Roman Gushchin Cc: Michal Hocko Cc: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e0ee0e71078abbcadd4cbc38fb8570551fccc103 Author: Johannes Weiner Date: Mon May 13 17:17:57 2019 -0700 mm: memcontrol: track LRU counts in the vmstats array Patch series "mm: memcontrol: clean up the LRU counts tracking". The memcg LRU stats usage is currently a bit messy. Memcg has private per-zone counters because reclaim needs zone granularity sometimes, but we also have plenty of users that need to awkwardly sum them up to node or memcg granularity. Meanwhile the canonical per-memcg vmstats do not track the LRU counts (NR_INACTIVE_ANON etc.) as you'd expect. This series enables LRU count tracking in the per-memcg vmstats array such that lruvec_page_state() and memcg_page_state() work on the enum node_stat_item items for the LRU counters. Then it converts all the callers that don't specifically need per-zone numbers over to that. This patch (of 6): The memcg code currently maintains private per-zone breakdowns of the LRU counters. This is necessary for reclaim decisions which are still zone-based, but there are a variety of users of these counters that only want the aggregate per-lruvec or per-memcg LRU counts, and they need to painfully sum up the zone counters on each request for that. These would be better served using the memcg vmstats arrays, which track VM statistics at the desired scope already. They just don't have the LRU counts right now. So to kick off the conversion, begin tracking LRU counts in those. Link: http://lkml.kernel.org/r/20190228163020.24100-2-hannes@cmpxchg.org Signed-off-by: Johannes Weiner Reviewed-by: Roman Gushchin Cc: Tejun Heo Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 132bb8cfc9e081238e7e2fd0c37c8c75ad0d2963 Author: Yafang Shao Date: Mon May 13 17:17:53 2019 -0700 mm/vmscan: add tracepoints for node reclaim The page alloc fast path it may perform node reclaim, which may cause a latency spike. We should add tracepoint for this event, and also measure the latency it causes. So bellow two tracepoints are introduced, mm_vmscan_node_reclaim_begin mm_vmscan_node_reclaim_end Link: http://lkml.kernel.org/r/1551421452-5385-1-git-send-email-laoar.shao@gmail.com Signed-off-by: Yafang Shao Acked-by: Michal Hocko Cc: Vlastimil Babka Cc: Souptick Joarder Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5e65af19e89ac33dc83e1869c78b33ed7099469b Author: Anshuman Khandual Date: Mon May 13 17:17:50 2019 -0700 mm/page_isolation.c: remove redundant pfn_valid_within() in __first_valid_page() pfn_valid_within() calls pfn_valid() when CONFIG_HOLES_IN_ZONE making it redundant for both definitions (w/wo CONFIG_MEMORY_HOTPLUG) of the helper pfn_to_online_page() which either calls pfn_valid() or pfn_valid_within(). pfn_valid_within() being 1 when !CONFIG_HOLES_IN_ZONE is irrelevant either way. This does not change functionality. Link: http://lkml.kernel.org/r/1553141595-26907-1-git-send-email-anshuman.khandual@arm.com Signed-off-by: Anshuman Khandual Reviewed-by: Zi Yan Reviewed-by: Oscar Salvador Acked-by: Michal Hocko Cc: Mike Kravetz Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b6cfab7ad19d4920d5765e53042cfa62f2fced3d Author: Yafang Shao Date: Mon May 13 17:17:47 2019 -0700 mm, compaction: some tracepoints should be defined only when CONFIG_COMPACTION is set Only mm_compaction_isolate_{free, migrate}pages may be used when CONFIG_COMPACTION is not set. All others are used only when CONFIG_COMPACTION is set. After this change, if CONFIG_COMPACTION is not set, the tracepoints that only work when CONFIG_COMPACTION is set will not be exposed to userspace. Without this change, they will always be exposed in debugfs whether CONFIG_COMPACTION is set or not. This is an improvement. Link: http://lkml.kernel.org/r/1552440403-11780-1-git-send-email-laoar.shao@gmail.com Signed-off-by: Yafang Shao Reviewed-by: Andrew Morton Cc: Michal Hocko Cc: Mel Gorman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b1746b991d621e35151386224f455fd6c0d291f0 Author: Yafang Shao Date: Mon May 13 17:17:44 2019 -0700 mm: compaction: show gfp flag names in try_to_compact_pages tracepoint Showing the gfp flag names instead of the gfp_mask makes trace more convenient. Link: http://lkml.kernel.org/r/1552527998-13162-1-git-send-email-laoar.shao@gmail.com Signed-off-by: Yafang Shao Acked-by: Michal Hocko Cc: Mel Gorman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2b59e01a3aa665f751d1410b99fae9336bd424e1 Author: Yue Hu Date: Mon May 13 17:17:41 2019 -0700 mm/cma.c: fix the bitmap status to show failed allocation reason Currently one bit in cma bitmap represents number of pages rather than one page, cma->count means cma size in pages. So to find available pages via find_next_zero_bit()/find_next_bit() we should use cma size not in pages but in bits although current free pages number is correct due to zero value of order_per_bit. Once order_per_bit is changed the bitmap status will be incorrect. The size input in cma_debug_show_areas() is not correct. It will affect the available pages at some position to debug the failure issue. This is an example with order_per_bit = 1 Before this change: [ 4.120060] cma: number of available pages: 1@93+4@108+7@121+7@137+7@153+7@169+7@185+7@201+3@213+3@221+3@229+3@237+3@245+3@253+3@261+3@269+3@277+3@285+3@293+3@301+3@309+3@317+3@325+19@333+15@369+512@512=> 638 free of 1024 total pages After this change: [ 4.143234] cma: number of available pages: 2@93+8@108+14@121+14@137+14@153+14@169+14@185+14@201+6@213+6@221+6@229+6@237+6@245+6@253+6@261+6@269+6@277+6@285+6@293+6@301+6@309+6@317+6@325+38@333+30@369=> 252 free of 1024 total pages Obviously the bitmap status before is incorrect. Link: http://lkml.kernel.org/r/20190320060829.9144-1-zbestahu@gmail.com Signed-off-by: Yue Hu Reviewed-by: Andrew Morton Cc: Joonsoo Kim Cc: Ingo Molnar Cc: Vlastimil Babka Cc: Mike Rapoport Cc: Randy Dunlap Cc: Laura Abbott Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit dd7ef7bd14640f11763b54f55131000165f48321 Author: Qian Cai Date: Mon May 13 17:17:38 2019 -0700 mm/compaction.c: fix an undefined behaviour In a low-memory situation, cc->fast_search_fail can keep increasing as it is unable to find an available page to isolate in fast_isolate_freepages(). As the result, it could trigger an error below, so just compare with the maximum bits can be shifted first. UBSAN: Undefined behaviour in mm/compaction.c:1160:30 shift exponent 64 is too large for 64-bit type 'unsigned long' CPU: 131 PID: 1308 Comm: kcompactd1 Kdump: loaded Tainted: G W L 5.0.0+ #17 Call trace: dump_backtrace+0x0/0x450 show_stack+0x20/0x2c dump_stack+0xc8/0x14c __ubsan_handle_shift_out_of_bounds+0x7e8/0x8c4 compaction_alloc+0x2344/0x2484 unmap_and_move+0xdc/0x1dbc migrate_pages+0x274/0x1310 compact_zone+0x26ec/0x43bc kcompactd+0x15b8/0x1a24 kthread+0x374/0x390 ret_from_fork+0x10/0x18 [akpm@linux-foundation.org: code cleanup] Link: http://lkml.kernel.org/r/20190320203338.53367-1-cai@lca.pw Fixes: 70b44595eafe ("mm, compaction: use free lists to quickly locate a migration source") Signed-off-by: Qian Cai Acked-by: Vlastimil Babka Acked-by: Mel Gorman Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d3ba3ae19751e476b0840a0c9a673a5766fa3219 Author: Baoquan He Date: Mon May 13 17:17:35 2019 -0700 mm/memory_hotplug.c: fix the wrong usage of N_HIGH_MEMORY In node_states_check_changes_online(), N_HIGH_MEMORY is used to substitute ZONE_HIGHMEM directly. This is not right. N_HIGH_MEMORY is to mark the memory state of node. Here zone index is checked, which should be compared with 'ZONE_HIGHMEM' accordingly. Replace it with ZONE_HIGHMEM. This is a code cleanup - no known runtime effects. Link: http://lkml.kernel.org/r/20190320080732.14933-1-bhe@redhat.com Fixes: 8efe33f40f3e ("mm/memory_hotplug.c: simplify node_states_check_changes_online") Signed-off-by: Baoquan He Reviewed-by: David Hildenbrand Acked-by: Michal Hocko Reviewed-by: Oscar Salvador Cc: Wei Yang Cc: Mike Rapoport Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 39186cbe652d4f09d9494292fb77dfbc113bdf59 Author: Oscar Salvador Date: Mon May 13 17:17:32 2019 -0700 mm,memory_hotplug: drop redundant hugepage_migration_supported check has_unmovable_pages() already checks whether the hugetlb page supports migration, so all non-migratable hugetlb pages should have been caught there. Let us drop the check from scan_movable_pages() as is redundant. Link: http://lkml.kernel.org/r/20190320152658.10855-3-osalvador@suse.de Signed-off-by: Oscar Salvador Acked-by: Michal Hocko Reviewed-by: David Hildenbrand Cc: Mike Kravetz Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 10eeadf3045c35fc83649ac586973eb28255add9 Author: Oscar Salvador Date: Mon May 13 17:17:29 2019 -0700 mm,memory_hotplug: unlock 1GB-hugetlb on x86_64 On x86_64, 1GB-hugetlb pages could never be offlined due to the fact that hugepage_migration_supported() returned false for PUD_SHIFT. So whenever we wanted to offline a memblock containing a gigantic hugetlb page, we never got beyond has_unmovable_pages() check. This changed with [1], where now we also return true for PUD_SHIFT. After that patch, the check in has_unmovable_pages() and scan_movable_pages() returned true, but we still had a final barrier in do_migrate_range(): if (compound_order(head) > PFN_SECTION_SHIFT) { ret = -EBUSY; break; } This is not really nice, and we do not really need it. It is perfectly possible to migrate a gigantic page as long as another node has a spare gigantic page for us. In alloc_huge_page_nodemask(), we calculate the __real__ number of free pages, and if any, we try to dequeue one from another node. This all works fine when we do have another node with a spare gigantic page, but if that is not the case, alloc_huge_page_nodemask() ends up calling alloc_migrate_huge_page() which bails out if the wanted page is gigantic. That is mainly because finding a 1GB (or even 16GB on powerpc) contiguous memory is quite unlikely when the system has been running for a while. In that situation, we will keep looping forever because scan_movable_pages() will give us the same page and we will fail again because there is no node where we can dequeue a gigantic page from. This is not nice, and it has been raised that we might want to treat -ENOMEM as a fatal error in do_migrate_range(), but this has to be checked further. Anyway, I would tend say that this is the administrator's job, to make sure that the system can keep up with the memory to be offlined, so that would mean that if we want to use gigantic pages, make sure that the other nodes have at least enough gigantic pages to keep up in case we need to offline memory. Just for the sake of completeness, this is one of the tests done: # echo 1 > /sys/devices/system/node/node1/hugepages/hugepages-1048576kB/nr_hugepages # echo 1 > /sys/devices/system/node/node2/hugepages/hugepages-1048576kB/nr_hugepages # cat /sys/devices/system/node/node1/hugepages/hugepages-1048576kB/nr_hugepages 1 # cat /sys/devices/system/node/node1/hugepages/hugepages-1048576kB/free_hugepages 1 # cat /sys/devices/system/node/node2/hugepages/hugepages-1048576kB/nr_hugepages 1 # cat /sys/devices/system/node/node2/hugepages/hugepages-1048576kB/free_hugepages 1 (hugetlb1gb is a program that maps 1GB region using MAP_HUGE_1GB) # numactl -m 1 ./hugetlb1gb # cat /sys/devices/system/node/node1/hugepages/hugepages-1048576kB/free_hugepages 0 # cat /sys/devices/system/node/node2/hugepages/hugepages-1048576kB/free_hugepages 1 # offline node1 memory # cat /sys/devices/system/node/node2/hugepages/hugepages-1048576kB/free_hugepages 0 [1] https://lore.kernel.org/patchwork/patch/998796/ Link: http://lkml.kernel.org/r/20190320152658.10855-2-osalvador@suse.de Signed-off-by: Oscar Salvador Acked-by: Michal Hocko Cc: David Hildenbrand Cc: Mike Kravetz Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f3b4fdb18cb51bd6ca2c245fbe630ccbea95b3c9 Author: Ira Weiny Date: Mon May 13 17:17:25 2019 -0700 IB/mthca: use the new FOLL_LONGTERM flag to get_user_pages_fast() Use the new FOLL_LONGTERM to get_user_pages_fast() to protect against FS DAX pages being mapped. Link: http://lkml.kernel.org/r/20190328084422.29911-8-ira.weiny@intel.com Link: http://lkml.kernel.org/r/20190317183438.2057-8-ira.weiny@intel.com Signed-off-by: Ira Weiny Reviewed-by: Andrew Morton Cc: Aneesh Kumar K.V Cc: Benjamin Herrenschmidt Cc: Borislav Petkov Cc: Dan Williams Cc: "David S. Miller" Cc: Heiko Carstens Cc: Ingo Molnar Cc: James Hogan Cc: Jason Gunthorpe Cc: John Hubbard Cc: "Kirill A. Shutemov" Cc: Martin Schwidefsky Cc: Michal Hocko Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Rich Felker Cc: Thomas Gleixner Cc: Yoshinori Sato Cc: Mike Marshall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 664b21e717cfe4781137263f2555da335549210e Author: Ira Weiny Date: Mon May 13 17:17:21 2019 -0700 IB/qib: use the new FOLL_LONGTERM flag to get_user_pages_fast() Use the new FOLL_LONGTERM to get_user_pages_fast() to protect against FS DAX pages being mapped. Link: http://lkml.kernel.org/r/20190328084422.29911-7-ira.weiny@intel.com Link: http://lkml.kernel.org/r/20190317183438.2057-7-ira.weiny@intel.com Signed-off-by: Ira Weiny Reviewed-by: Dan Williams Cc: Aneesh Kumar K.V Cc: Benjamin Herrenschmidt Cc: Borislav Petkov Cc: "David S. Miller" Cc: Heiko Carstens Cc: Ingo Molnar Cc: James Hogan Cc: Jason Gunthorpe Cc: John Hubbard Cc: "Kirill A. Shutemov" Cc: Martin Schwidefsky Cc: Michal Hocko Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Rich Felker Cc: Thomas Gleixner Cc: Yoshinori Sato Cc: Mike Marshall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9fdf4aa156733e3f075a9d7d0b026648b3874afe Author: Ira Weiny Date: Mon May 13 17:17:18 2019 -0700 IB/hfi1: use the new FOLL_LONGTERM flag to get_user_pages_fast() Use the new FOLL_LONGTERM to get_user_pages_fast() to protect against FS DAX pages being mapped. [ira.weiny@intel.com: v3] Link: http://lkml.kernel.org/r/20190328084422.29911-6-ira.weiny@intel.com Link: http://lkml.kernel.org/r/20190328084422.29911-6-ira.weiny@intel.com Link: http://lkml.kernel.org/r/20190317183438.2057-6-ira.weiny@intel.com Signed-off-by: Ira Weiny Reviewed-by: Andrew Morton Cc: Aneesh Kumar K.V Cc: Benjamin Herrenschmidt Cc: Borislav Petkov Cc: Dan Williams Cc: "David S. Miller" Cc: Heiko Carstens Cc: Ingo Molnar Cc: James Hogan Cc: Jason Gunthorpe Cc: John Hubbard Cc: "Kirill A. Shutemov" Cc: Martin Schwidefsky Cc: Michal Hocko Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Rich Felker Cc: Thomas Gleixner Cc: Yoshinori Sato Cc: Mike Marshall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7af75561e17132b20b5bc047d222f34b3e7a3e6e Author: Ira Weiny Date: Mon May 13 17:17:14 2019 -0700 mm/gup: add FOLL_LONGTERM capability to GUP fast DAX pages were previously unprotected from longterm pins when users called get_user_pages_fast(). Use the new FOLL_LONGTERM flag to check for DEVMAP pages and fall back to regular GUP processing if a DEVMAP page is encountered. [ira.weiny@intel.com: v3] Link: http://lkml.kernel.org/r/20190328084422.29911-5-ira.weiny@intel.com Link: http://lkml.kernel.org/r/20190328084422.29911-5-ira.weiny@intel.com Link: http://lkml.kernel.org/r/20190317183438.2057-5-ira.weiny@intel.com Signed-off-by: Ira Weiny Reviewed-by: Andrew Morton Cc: Aneesh Kumar K.V Cc: Benjamin Herrenschmidt Cc: Borislav Petkov Cc: Dan Williams Cc: "David S. Miller" Cc: Heiko Carstens Cc: Ingo Molnar Cc: James Hogan Cc: Jason Gunthorpe Cc: John Hubbard Cc: "Kirill A. Shutemov" Cc: Martin Schwidefsky Cc: Michal Hocko Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Rich Felker Cc: Thomas Gleixner Cc: Yoshinori Sato Cc: Mike Marshall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 73b0140bf0fe9df90fb267c00673c4b9bf285430 Author: Ira Weiny Date: Mon May 13 17:17:11 2019 -0700 mm/gup: change GUP fast to use flags rather than a write 'bool' To facilitate additional options to get_user_pages_fast() change the singular write parameter to be gup_flags. This patch does not change any functionality. New functionality will follow in subsequent patches. Some of the get_user_pages_fast() call sites were unchanged because they already passed FOLL_WRITE or 0 for the write parameter. NOTE: It was suggested to change the ordering of the get_user_pages_fast() arguments to ensure that callers were converted. This breaks the current GUP call site convention of having the returned pages be the final parameter. So the suggestion was rejected. Link: http://lkml.kernel.org/r/20190328084422.29911-4-ira.weiny@intel.com Link: http://lkml.kernel.org/r/20190317183438.2057-4-ira.weiny@intel.com Signed-off-by: Ira Weiny Reviewed-by: Mike Marshall Cc: Aneesh Kumar K.V Cc: Benjamin Herrenschmidt Cc: Borislav Petkov Cc: Dan Williams Cc: "David S. Miller" Cc: Heiko Carstens Cc: Ingo Molnar Cc: James Hogan Cc: Jason Gunthorpe Cc: John Hubbard Cc: "Kirill A. Shutemov" Cc: Martin Schwidefsky Cc: Michal Hocko Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Rich Felker Cc: Thomas Gleixner Cc: Yoshinori Sato Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b798bec4741bdd80224214fdd004c8e52698e425 Author: Ira Weiny Date: Mon May 13 17:17:07 2019 -0700 mm/gup: change write parameter to flags in fast walk In order to support more options in the GUP fast walk, change the write parameter to flags throughout the call stack. This patch does not change functionality and passes FOLL_WRITE where write was previously used. Link: http://lkml.kernel.org/r/20190328084422.29911-3-ira.weiny@intel.com Link: http://lkml.kernel.org/r/20190317183438.2057-3-ira.weiny@intel.com Signed-off-by: Ira Weiny Reviewed-by: Dan Williams Cc: Aneesh Kumar K.V Cc: Benjamin Herrenschmidt Cc: Borislav Petkov Cc: "David S. Miller" Cc: Heiko Carstens Cc: Ingo Molnar Cc: James Hogan Cc: Jason Gunthorpe Cc: John Hubbard Cc: "Kirill A. Shutemov" Cc: Martin Schwidefsky Cc: Michal Hocko Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Ralf Baechle Cc: Rich Felker Cc: Thomas Gleixner Cc: Yoshinori Sato Cc: Mike Marshall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 932f4a630a695212bdc7379b05f9bd0dafc5d968 Author: Ira Weiny Date: Mon May 13 17:17:03 2019 -0700 mm/gup: replace get_user_pages_longterm() with FOLL_LONGTERM Pach series "Add FOLL_LONGTERM to GUP fast and use it". HFI1, qib, and mthca, use get_user_pages_fast() due to its performance advantages. These pages can be held for a significant time. But get_user_pages_fast() does not protect against mapping FS DAX pages. Introduce FOLL_LONGTERM and use this flag in get_user_pages_fast() which retains the performance while also adding the FS DAX checks. XDP has also shown interest in using this functionality.[1] In addition we change get_user_pages() to use the new FOLL_LONGTERM flag and remove the specialized get_user_pages_longterm call. [1] https://lkml.org/lkml/2019/3/19/939 "longterm" is a relative thing and at this point is probably a misnomer. This is really flagging a pin which is going to be given to hardware and can't move. I've thought of a couple of alternative names but I think we have to settle on if we are going to use FL_LAYOUT or something else to solve the "longterm" problem. Then I think we can change the flag to a better name. Secondly, it depends on how often you are registering memory. I have spoken with some RDMA users who consider MR in the performance path... For the overall application performance. I don't have the numbers as the tests for HFI1 were done a long time ago. But there was a significant advantage. Some of which is probably due to the fact that you don't have to hold mmap_sem. Finally, architecturally I think it would be good for everyone to use *_fast. There are patches submitted to the RDMA list which would allow the use of *_fast (they reworking the use of mmap_sem) and as soon as they are accepted I'll submit a patch to convert the RDMA core as well. Also to this point others are looking to use *_fast. As an aside, Jasons pointed out in my previous submission that *_fast and *_unlocked look very much the same. I agree and I think further cleanup will be coming. But I'm focused on getting the final solution for DAX at the moment. This patch (of 7): This patch starts a series which aims to support FOLL_LONGTERM in get_user_pages_fast(). Some callers who would like to do a longterm (user controlled pin) of pages with the fast variant of GUP for performance purposes. Rather than have a separate get_user_pages_longterm() call, introduce FOLL_LONGTERM and change the longterm callers to use it. This patch does not change any functionality. In the short term "longterm" or user controlled pins are unsafe for Filesystems and FS DAX in particular has been blocked. However, callers of get_user_pages_fast() were not "protected". FOLL_LONGTERM can _only_ be supported with get_user_pages[_fast]() as it requires vmas to determine if DAX is in use. NOTE: In merging with the CMA changes we opt to change the get_user_pages() call in check_and_migrate_cma_pages() to a call of __get_user_pages_locked() on the newly migrated pages. This makes the code read better in that we are calling __get_user_pages_locked() on the pages before and after a potential migration. As a side affect some of the interfaces are cleaned up but this is not the primary purpose of the series. In review[1] it was asked: > This I don't get - if you do lock down long term mappings performance > of the actual get_user_pages call shouldn't matter to start with. > > What do I miss? A couple of points. First "longterm" is a relative thing and at this point is probably a misnomer. This is really flagging a pin which is going to be given to hardware and can't move. I've thought of a couple of alternative names but I think we have to settle on if we are going to use FL_LAYOUT or something else to solve the "longterm" problem. Then I think we can change the flag to a better name. Second, It depends on how often you are registering memory. I have spoken with some RDMA users who consider MR in the performance path... For the overall application performance. I don't have the numbers as the tests for HFI1 were done a long time ago. But there was a significant advantage. Some of which is probably due to the fact that you don't have to hold mmap_sem. Finally, architecturally I think it would be good for everyone to use *_fast. There are patches submitted to the RDMA list which would allow the use of *_fast (they reworking the use of mmap_sem) and as soon as they are accepted I'll submit a patch to convert the RDMA core as well. Also to this point others are looking to use *_fast. As an asside, Jasons pointed out in my previous submission that *_fast and *_unlocked look very much the same. I agree and I think further cleanup will be coming. But I'm focused on getting the final solution for DAX at the moment. [1] https://lore.kernel.org/lkml/20190220180255.GA12020@iweiny-DESK2.sc.intel.com/T/#md6abad2569f3bf6c1f03686c8097ab6563e94965 [ira.weiny@intel.com: v3] Link: http://lkml.kernel.org/r/20190328084422.29911-2-ira.weiny@intel.com Link: http://lkml.kernel.org/r/20190328084422.29911-2-ira.weiny@intel.com Link: http://lkml.kernel.org/r/20190317183438.2057-2-ira.weiny@intel.com Signed-off-by: Ira Weiny Reviewed-by: Andrew Morton Cc: Aneesh Kumar K.V Cc: Michal Hocko Cc: John Hubbard Cc: "Kirill A. Shutemov" Cc: Peter Zijlstra Cc: Jason Gunthorpe Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: "David S. Miller" Cc: Martin Schwidefsky Cc: Heiko Carstens Cc: Rich Felker Cc: Yoshinori Sato Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Borislav Petkov Cc: Ralf Baechle Cc: James Hogan Cc: Dan Williams Cc: Mike Marshall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a222f341586834073c2bbea225be38216eb5d993 Author: Kirill Tkhai Date: Mon May 13 17:17:00 2019 -0700 mm: generalize putback scan functions This combines two similar functions move_active_pages_to_lru() and putback_inactive_pages() into single move_pages_to_lru(). This remove duplicate code and makes object file size smaller. Before: text data bss dec hex filename 57082 4732 128 61942 f1f6 mm/vmscan.o After: text data bss dec hex filename 55112 4600 128 59840 e9c0 mm/vmscan.o Note, that now we are checking for !page_evictable() coming from shrink_active_list(), which shouldn't change any behavior since that path works with evictable pages only. Link: http://lkml.kernel.org/r/155290129627.31489.8321971028677203248.stgit@localhost.localdomain Signed-off-by: Kirill Tkhai Reviewed-by: Daniel Jordan Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f372d89e5dbbf2bc8e37089bacd526afd4e1d6c2 Author: Kirill Tkhai Date: Mon May 13 17:16:57 2019 -0700 mm: remove pages_to_free argument of move_active_pages_to_lru() We may use input argument list as output argument too. This makes the function more similar to putback_inactive_pages(). Link: http://lkml.kernel.org/r/155290129079.31489.16180612694090502942.stgit@localhost.localdomain Signed-off-by: Kirill Tkhai Reviewed-by: Daniel Jordan Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9851ac13592df77958ae7bac6ba39e71420c38ec Author: Kirill Tkhai Date: Mon May 13 17:16:54 2019 -0700 mm: move nr_deactivate accounting to shrink_active_list() We know which LRU is not active. [chris@chrisdown.name: fix build on !CONFIG_MEMCG] Link: http://lkml.kernel.org/r/20190322150513.GA22021@chrisdown.name Link: http://lkml.kernel.org/r/155290128498.31489.18250485448913338607.stgit@localhost.localdomain Signed-off-by: Kirill Tkhai Signed-off-by: Chris Down Reviewed-by: Daniel Jordan Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 886cf1901db962cee5f8b82b9b260079a5e8a4eb Author: Kirill Tkhai Date: Mon May 13 17:16:51 2019 -0700 mm: move recent_rotated pages calculation to shrink_inactive_list() Patch series "mm: Generalize putback functions"] putback_inactive_pages() and move_active_pages_to_lru() are almost similar, so this patchset merges them ina single function. This patch (of 4): The patch moves the calculation from putback_inactive_pages() to shrink_inactive_list(). This makes putback_inactive_pages() looking more similar to move_active_pages_to_lru(). To do that, we account activated pages in reclaim_stat::nr_activate. Since a page may change its LRU type from anon to file cache inside shrink_page_list() (see ClearPageSwapBacked()), we have to account pages for the both types. So, nr_activate becomes an array. Previously we used nr_activate to account PGACTIVATE events, but now we account them into pgactivate variable (since they are about number of pages in general, not about sum of hpage_nr_pages). Link: http://lkml.kernel.org/r/155290127956.31489.3393586616054413298.stgit@localhost.localdomain Signed-off-by: Kirill Tkhai Reviewed-by: Daniel Jordan Cc: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 63931eb97508cd67515dbcc049defaebd7b1fcd0 Author: Vlastimil Babka Date: Mon May 13 17:16:47 2019 -0700 mm, page_alloc: disallow __GFP_COMP in alloc_pages_exact() alloc_pages_exact*() allocates a page of sufficient order and then splits it to return only the number of pages requested. That makes it incompatible with __GFP_COMP, because compound pages cannot be split. As shown by [1] things may silently work until the requested size (possibly depending on user) stops being power of two. Then for CONFIG_DEBUG_VM, BUG_ON() triggers in split_page(). Without CONFIG_DEBUG_VM, consequences are unclear. There are several options here, none of them great: 1) Don't do the splitting when __GFP_COMP is passed, and return the whole compound page. However if caller then returns it via free_pages_exact(), that will be unexpected and the freeing actions there will be wrong. 2) Warn and remove __GFP_COMP from the flags. But the caller may have really wanted it, so things may break later somewhere. 3) Warn and return NULL. However NULL may be unexpected, especially for small sizes. This patch picks option 2, because as Michal Hocko put it: "callers wanted it" is much less probable than "caller is simply confused and more gfp flags is surely better than fewer". [1] https://lore.kernel.org/lkml/20181126002805.GI18977@shao2-debian/T/#u Link: http://lkml.kernel.org/r/0c6393eb-b28d-4607-c386-862a71f09de6@suse.cz Signed-off-by: Vlastimil Babka Acked-by: Michal Hocko Acked-by: Kirill A. Shutemov Acked-by: Mel Gorman Cc: Takashi Iwai Cc: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5fd4ca2d84b249f0858ce28cf637cf25b61a398f Author: Matthew Wilcox Date: Mon May 13 17:16:44 2019 -0700 mm: page cache: store only head pages in i_pages Transparent Huge Pages are currently stored in i_pages as pointers to consecutive subpages. This patch changes that to storing consecutive pointers to the head page in preparation for storing huge pages more efficiently in i_pages. Large parts of this are "inspired" by Kirill's patch https://lore.kernel.org/lkml/20170126115819.58875-2-kirill.shutemov@linux.intel.com/ [willy@infradead.org: fix swapcache pages] Link: http://lkml.kernel.org/r/20190324155441.GF10344@bombadil.infradead.org [kirill@shutemov.name: hugetlb stores pages in page cache differently] Link: http://lkml.kernel.org/r/20190404134553.vuvhgmghlkiw2hgl@kshutemo-mobl1 Link: http://lkml.kernel.org/r/20190307153051.18815-1-willy@infradead.org Signed-off-by: Matthew Wilcox Acked-by: Jan Kara Reviewed-by: Kirill Shutemov Reviewed-and-tested-by: Song Liu Tested-by: William Kucharski Reviewed-by: William Kucharski Tested-by: Qian Cai Cc: Hugh Dickins Cc: Song Liu Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit cefdca0a86be517bc390fc4541e3674b8e7803b0 Author: Peter Xu Date: Mon May 13 17:16:41 2019 -0700 userfaultfd/sysctl: add vm.unprivileged_userfaultfd Userfaultfd can be misued to make it easier to exploit existing use-after-free (and similar) bugs that might otherwise only make a short window or race condition available. By using userfaultfd to stall a kernel thread, a malicious program can keep some state that it wrote, stable for an extended period, which it can then access using an existing exploit. While it doesn't cause the exploit itself, and while it's not the only thing that can stall a kernel thread when accessing a memory location, it's one of the few that never needs privilege. We can add a flag, allowing userfaultfd to be restricted, so that in general it won't be useable by arbitrary user programs, but in environments that require userfaultfd it can be turned back on. Add a global sysctl knob "vm.unprivileged_userfaultfd" to control whether userfaultfd is allowed by unprivileged users. When this is set to zero, only privileged users (root user, or users with the CAP_SYS_PTRACE capability) will be able to use the userfaultfd syscalls. Andrea said: : The only difference between the bpf sysctl and the userfaultfd sysctl : this way is that the bpf sysctl adds the CAP_SYS_ADMIN capability : requirement, while userfaultfd adds the CAP_SYS_PTRACE requirement, : because the userfaultfd monitor is more likely to need CAP_SYS_PTRACE : already if it's doing other kind of tracking on processes runtime, in : addition of userfaultfd. In other words both syscalls works only for : root, when the two sysctl are opt-in set to 1. [dgilbert@redhat.com: changelog additions] [akpm@linux-foundation.org: documentation tweak, per Mike] Link: http://lkml.kernel.org/r/20190319030722.12441-2-peterx@redhat.com Signed-off-by: Peter Xu Suggested-by: Andrea Arcangeli Suggested-by: Mike Rapoport Reviewed-by: Mike Rapoport Reviewed-by: Andrea Arcangeli Cc: Paolo Bonzini Cc: Hugh Dickins Cc: Luis Chamberlain Cc: Maxime Coquelin Cc: Maya Gokhale Cc: Jerome Glisse Cc: Pavel Emelyanov Cc: Johannes Weiner Cc: Martin Cracauer Cc: Denis Plotnikov Cc: Marty McFadden Cc: Mike Kravetz Cc: Kees Cook Cc: Mel Gorman Cc: "Kirill A . Shutemov" Cc: "Dr . David Alan Gilbert" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit f0fd50504a54f5548eb666dc16ddf8394e44e4b7 Author: Yue Hu Date: Mon May 13 17:16:37 2019 -0700 mm/cma_debug.c: fix the break condition in cma_maxchunk_get() If not find zero bit in find_next_zero_bit(), it will return the size parameter passed in, so the start bit should be compared with bitmap_maxno rather than cma->count. Although getting maxchunk is working fine due to zero value of order_per_bit currently, the operation will be stuck if order_per_bit is set as non-zero. Link: http://lkml.kernel.org/r/20190319092734.276-1-zbestahu@gmail.com Signed-off-by: Yue Hu Reviewed-by: Andrew Morton Cc: Michal Hocko Cc: Joe Perches Cc: David Rientjes Cc: Dmitry Safonov Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3b775998eca7fca0e470e0871feb1c9ec07dd84a Author: Yafang Shao Date: Mon May 13 17:16:34 2019 -0700 include/trace/events/vmscan.h: drop zone id from kswapd tracepoints It is not clear how the zone id is useful in kswapd tracepoints and the id itself is not really easy to process because it depends on the configuration (available zones). Let's drop the id for now. If somebody really needs that information then the zone name should be used instead. [mhocko@suse.com: new changelog] Link: http://lkml.kernel.org/r/1552451813-10833-1-git-send-email-laoar.shao@gmail.com Signed-off-by: Yafang Shao Acked-by: Michal Hocko Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 745e10146c31b1c6ed3326286704ae251b17f663 Author: Qian Cai Date: Mon May 13 17:16:31 2019 -0700 mm/slab.c: fix an infinite loop in leaks_show() "cat /proc/slab_allocators" could hang forever on SMP machines with kmemleak or object debugging enabled due to other CPUs running do_drain() will keep making kmemleak_object or debug_objects_cache dirty and unable to escape the first loop in leaks_show(), do { set_store_user_clean(cachep); drain_cpu_caches(cachep); ... } while (!is_store_user_clean(cachep)); For example, do_drain slabs_destroy slab_destroy kmem_cache_free __cache_free ___cache_free kmemleak_free_recursive delete_object_full __delete_object put_object free_object_rcu kmem_cache_free cache_free_debugcheck --> dirty kmemleak_object One approach is to check cachep->name and skip both kmemleak_object and debug_objects_cache in leaks_show(). The other is to set store_user_clean after drain_cpu_caches() which leaves a small window between drain_cpu_caches() and set_store_user_clean() where per-CPU caches could be dirty again lead to slightly wrong information has been stored but could also speed up things significantly which sounds like a good compromise. For example, # cat /proc/slab_allocators 0m42.778s # 1st approach 0m0.737s # 2nd approach [akpm@linux-foundation.org: tweak comment] Link: http://lkml.kernel.org/r/20190411032635.10325-1-cai@lca.pw Fixes: d31676dfde25 ("mm/slab: alternative implementation for DEBUG_SLAB_LEAK") Signed-off-by: Qian Cai Reviewed-by: Andrew Morton Cc: Vlastimil Babka Cc: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 632b2ef0c72d9ea0f76619ad04ca53aae121f8b9 Author: Liu Xiang Date: Mon May 13 17:16:28 2019 -0700 mm/slub.c: update the comment about slab frozen Now frozen slab can only be on the per cpu partial list. Link: http://lkml.kernel.org/r/1554022325-11305-1-git-send-email-liu.xiang6@zte.com.cn Signed-off-by: Liu Xiang Cc: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 517f9f1ee5ed0a05d0f6f884f6d9b5c46ac5a810 Author: Li RongQing Date: Mon May 13 17:16:25 2019 -0700 mm/slab.c: remove unneed check in cpuup_canceled nc is a member of percpu allocation memory, and cannot be NULL. Link: http://lkml.kernel.org/r/1553159353-5056-1-git-send-email-lirongqing@baidu.com Signed-off-by: Li RongQing Reviewed-by: Andrew Morton Acked-by: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a4d3f8916c65b63e6b9457cdec74ceaaff7e6b12 Author: Liu Xiang Date: Mon May 13 17:16:22 2019 -0700 slub: remove useless kmem_cache_debug() before remove_full() When CONFIG_SLUB_DEBUG is not enabled, remove_full() is empty. While CONFIG_SLUB_DEBUG is enabled, remove_full() can check s->flags by itself. So kmem_cache_debug() is useless and can be removed. Link: http://lkml.kernel.org/r/1552577313-2830-1-git-send-email-liu.xiang6@zte.com.cn Signed-off-by: Liu Xiang Acked-by: David Rientjes Cc: Christoph Lameter Cc: Pekka Enberg Cc: Joonsoo Kim Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3e05617ceaa42838084daee209f9c4965bf03379 Author: Tobin C. Harding Date: Mon May 13 17:16:19 2019 -0700 mm: remove stale comment from page struct We now use the slab_list list_head instead of the lru list_head. This comment has become stale. Remove stale comment from page struct slab_list list_head. Link: http://lkml.kernel.org/r/20190402230545.2929-8-tobin@kernel.org Signed-off-by: Tobin C. Harding Acked-by: Christoph Lameter Reviewed-by: Roman Gushchin Acked-by: Vlastimil Babka Cc: David Rientjes Cc: Joonsoo Kim Cc: Matthew Wilcox Cc: Pekka Enberg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 16cb0ec75b346ec4fce11c5ce40d68b173f4e2f4 Author: Tobin C. Harding Date: Mon May 13 17:16:15 2019 -0700 slab: use slab_list instead of lru Currently we use the page->lru list for maintaining lists of slabs. We have a list in the page structure (slab_list) that can be used for this purpose. Doing so makes the code cleaner since we are not overloading the lru list. Use the slab_list instead of the lru list for maintaining lists of slabs. Link: http://lkml.kernel.org/r/20190402230545.2929-7-tobin@kernel.org Signed-off-by: Tobin C. Harding Acked-by: Christoph Lameter Reviewed-by: Roman Gushchin Acked-by: Vlastimil Babka Cc: David Rientjes Cc: Joonsoo Kim Cc: Matthew Wilcox Cc: Pekka Enberg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 916ac0527837aa0be46d82804f93dd46f03aaedc Author: Tobin C. Harding Date: Mon May 13 17:16:12 2019 -0700 slub: use slab_list instead of lru Currently we use the page->lru list for maintaining lists of slabs. We have a list in the page structure (slab_list) that can be used for this purpose. Doing so makes the code cleaner since we are not overloading the lru list. Use the slab_list instead of the lru list for maintaining lists of slabs. Link: http://lkml.kernel.org/r/20190402230545.2929-6-tobin@kernel.org Signed-off-by: Tobin C. Harding Acked-by: Christoph Lameter Reviewed-by: Roman Gushchin Acked-by: Vlastimil Babka Cc: David Rientjes Cc: Joonsoo Kim Cc: Matthew Wilcox Cc: Pekka Enberg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 6dfd1b653c49df2dad1dcfe063a196e940e02dbd Author: Tobin C. Harding Date: Mon May 13 17:16:09 2019 -0700 slub: add comments to endif pre-processor macros SLUB allocator makes heavy use of ifdef/endif pre-processor macros. The pairing of these statements is at times hard to follow e.g. if the pair are further than a screen apart or if there are nested pairs. We can reduce cognitive load by adding a comment to the endif statement of form #ifdef CONFIG_FOO ... #endif /* CONFIG_FOO */ Add comments to endif pre-processor macros if ifdef/endif pair is not immediately apparent. Link: http://lkml.kernel.org/r/20190402230545.2929-5-tobin@kernel.org Signed-off-by: Tobin C. Harding Acked-by: Christoph Lameter Reviewed-by: Roman Gushchin Acked-by: Vlastimil Babka Cc: David Rientjes Cc: Joonsoo Kim Cc: Matthew Wilcox Cc: Pekka Enberg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit adab7b68189d14504e9f690ee7eb7e98af68301b Author: Tobin C. Harding Date: Mon May 13 17:16:06 2019 -0700 slob: use slab_list instead of lru Currently we use the page->lru list for maintaining lists of slabs. We have a list_head in the page structure (slab_list) that can be used for this purpose. Doing so makes the code cleaner since we are not overloading the lru list. The slab_list is part of a union within the page struct (included here stripped down): union { struct { /* Page cache and anonymous pages */ struct list_head lru; ... }; struct { dma_addr_t dma_addr; }; struct { /* slab, slob and slub */ union { struct list_head slab_list; struct { /* Partial pages */ struct page *next; int pages; /* Nr of pages left */ int pobjects; /* Approximate count */ }; }; ... Here we see that slab_list and lru are the same bits. We can verify that this change is safe to do by examining the object file produced from slob.c before and after this patch is applied. Steps taken to verify: 1. checkout current tip of Linus' tree commit a667cb7a94d4 ("Merge branch 'akpm' (patches from Andrew)") 2. configure and build (select SLOB allocator) CONFIG_SLOB=y CONFIG_SLAB_MERGE_DEFAULT=y 3. dissasemble object file `objdump -dr mm/slub.o > before.s 4. apply patch 5. build 6. dissasemble object file `objdump -dr mm/slub.o > after.s 7. diff before.s after.s Use slab_list list_head instead of the lru list_head for maintaining lists of slabs. Link: http://lkml.kernel.org/r/20190402230545.2929-4-tobin@kernel.org Signed-off-by: Tobin C. Harding Reviewed-by: Roman Gushchin Acked-by: Christoph Lameter Acked-by: Vlastimil Babka Cc: David Rientjes Cc: Joonsoo Kim Cc: Matthew Wilcox Cc: Pekka Enberg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 130e8e09e2675bbc484581825fe29e2e5a6b8b0a Author: Tobin C. Harding Date: Mon May 13 17:16:03 2019 -0700 slob: respect list_head abstraction layer Currently we reach inside the list_head. This is a violation of the layer of abstraction provided by the list_head. It makes the code fragile. More importantly it makes the code wicked hard to understand. The code reaches into the list_head structure to counteract the fact that the list _may_ have been changed during slob_page_alloc(). Instead of this we can add a return parameter to slob_page_alloc() to signal that the list was modified (list_del() called with page->lru to remove page from the freelist). This code is concerned with an optimisation that counters the tendency for first fit allocation algorithm to fragment memory into many small chunks at the front of the memory pool. Since the page is only removed from the list when an allocation uses _all_ the remaining memory in the page then in this special case fragmentation does not occur and we therefore do not need the optimisation. Add a return parameter to slob_page_alloc() to signal that the allocation used up the whole page and that the page was removed from the free list. After calling slob_page_alloc() check the return value just added and only attempt optimisation if the page is still on the list. Use list_head API instead of reaching into the list_head structure to check if sp is at the front of the list. Link: http://lkml.kernel.org/r/20190402230545.2929-3-tobin@kernel.org Signed-off-by: Tobin C. Harding Acked-by: Christoph Lameter Acked-by: Vlastimil Babka Cc: David Rientjes Cc: Joonsoo Kim Cc: Matthew Wilcox Cc: Pekka Enberg Cc: Roman Gushchin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a16b53849913e742d086bb2b6f5e069ea2850c56 Author: Tobin C. Harding Date: Mon May 13 17:15:59 2019 -0700 list: add function list_rotate_to_front() Patch series "mm: Use slab_list list_head instead of lru", v5. Currently the slab allocators (ab)use the struct page 'lru' list_head. We have a list head for slab allocators to use, 'slab_list'. During v2 it was noted by Christoph that the SLOB allocator was reaching into a list_head, this version adds 2 patches to the front of the set to fix that. Clean up all three allocators by using the 'slab_list' list_head instead of overloading the 'lru' list_head. This patch (of 7): Currently if we wish to rotate a list until a specific item is at the front of the list we can call list_move_tail(head, list). Note that the arguments are the reverse way to the usual use of list_move_tail(list, head). This is a hack, it depends on the developer knowing how the list_head operates internally which violates the layer of abstraction offered by the list_head. Also, it is not intuitive so the next developer to come along must study list.h in order to fully understand what is meant by the call, while this is 'good for' the developer it makes reading the code harder. We should have an function appropriately named that does this if there are users for it intree. By grep'ing the tree for list_move_tail() and list_tail() and attempting to guess the argument order from the names it seems there is only one place currently in the tree that does this - the slob allocatator. Add function list_rotate_to_front() to rotate a list until the specified item is at the front of the list. Link: http://lkml.kernel.org/r/20190402230545.2929-2-tobin@kernel.org Signed-off-by: Tobin C. Harding Reviewed-by: Christoph Lameter Reviewed-by: Roman Gushchin Acked-by: Vlastimil Babka Cc: Pekka Enberg Cc: David Rientjes Cc: Joonsoo Kim Cc: Matthew Wilcox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e091eab028f9253eac5c04f9141bbc9d170acab3 Author: Shuning Zhang Date: Mon May 13 17:15:56 2019 -0700 ocfs2: fix ocfs2 read inode data panic in ocfs2_iget In some cases, ocfs2_iget() reads the data of inode, which has been deleted for some reason. That will make the system panic. So We should judge whether this inode has been deleted, and tell the caller that the inode is a bad inode. For example, the ocfs2 is used as the backed of nfs, and the client is nfsv3. This issue can be reproduced by the following steps. on the nfs server side, ..../patha/pathb Step 1: The process A was scheduled before calling the function fh_verify. Step 2: The process B is removing the 'pathb', and just completed the call to function dput. Then the dentry of 'pathb' has been deleted from the dcache, and all ancestors have been deleted also. The relationship of dentry and inode was deleted through the function hlist_del_init. The following is the call stack. dentry_iput->hlist_del_init(&dentry->d_u.d_alias) At this time, the inode is still in the dcache. Step 3: The process A call the function ocfs2_get_dentry, which get the inode from dcache. Then the refcount of inode is 1. The following is the call stack. nfsd3_proc_getacl->fh_verify->exportfs_decode_fh->fh_to_dentry(ocfs2_get_dentry) Step 4: Dirty pages are flushed by bdi threads. So the inode of 'patha' is evicted, and this directory was deleted. But the inode of 'pathb' can't be evicted, because the refcount of the inode was 1. Step 5: The process A keep running, and call the function reconnect_path(in exportfs_decode_fh), which call function ocfs2_get_parent of ocfs2. Get the block number of parent directory(patha) by the name of ... Then read the data from disk by the block number. But this inode has been deleted, so the system panic. Process A Process B 1. in nfsd3_proc_getacl | 2. | dput 3. fh_to_dentry(ocfs2_get_dentry) | 4. bdi flush dirty cache | 5. ocfs2_iget | [283465.542049] OCFS2: ERROR (device sdp): ocfs2_validate_inode_block: Invalid dinode #580640: OCFS2_VALID_FL not set [283465.545490] Kernel panic - not syncing: OCFS2: (device sdp): panic forced after error [283465.546889] CPU: 5 PID: 12416 Comm: nfsd Tainted: G W 4.1.12-124.18.6.el6uek.bug28762940v3.x86_64 #2 [283465.548382] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 09/21/2015 [283465.549657] 0000000000000000 ffff8800a56fb7b8 ffffffff816e839c ffffffffa0514758 [283465.550392] 000000000008dc20 ffff8800a56fb838 ffffffff816e62d3 0000000000000008 [283465.551056] ffff880000000010 ffff8800a56fb848 ffff8800a56fb7e8 ffff88005df9f000 [283465.551710] Call Trace: [283465.552516] [] dump_stack+0x63/0x81 [283465.553291] [] panic+0xcb/0x21b [283465.554037] [] ocfs2_handle_error+0xf0/0xf0 [ocfs2] [283465.554882] [] __ocfs2_error+0x67/0x70 [ocfs2] [283465.555768] [] ocfs2_validate_inode_block+0x229/0x230 [ocfs2] [283465.556683] [] ocfs2_read_blocks+0x46c/0x7b0 [ocfs2] [283465.557408] [] ? ocfs2_inode_cache_io_unlock+0x20/0x20 [ocfs2] [283465.557973] [] ocfs2_read_inode_block_full+0x3b/0x60 [ocfs2] [283465.558525] [] ocfs2_iget+0x4aa/0x880 [ocfs2] [283465.559082] [] ocfs2_get_parent+0x9e/0x220 [ocfs2] [283465.559622] [] reconnect_path+0xb5/0x300 [283465.560156] [] exportfs_decode_fh+0xf6/0x2b0 [283465.560708] [] ? nfsd_proc_getattr+0xa0/0xa0 [nfsd] [283465.561262] [] ? prepare_creds+0x26/0x110 [283465.561932] [] fh_verify+0x350/0x660 [nfsd] [283465.562862] [] ? nfsd_cache_lookup+0x44/0x630 [nfsd] [283465.563697] [] nfsd3_proc_getattr+0x69/0xf0 [nfsd] [283465.564510] [] nfsd_dispatch+0xe0/0x290 [nfsd] [283465.565358] [] ? svc_tcp_adjust_wspace+0x12/0x30 [sunrpc] [283465.566272] [] svc_process_common+0x412/0x6a0 [sunrpc] [283465.567155] [] svc_process+0x123/0x210 [sunrpc] [283465.568020] [] nfsd+0xff/0x170 [nfsd] [283465.568962] [] ? nfsd_destroy+0x80/0x80 [nfsd] [283465.570112] [] kthread+0xcb/0xf0 [283465.571099] [] ? kthread_create_on_node+0x180/0x180 [283465.572114] [] ret_from_fork+0x58/0x90 [283465.573156] [] ? kthread_create_on_node+0x180/0x180 Link: http://lkml.kernel.org/r/1554185919-3010-1-git-send-email-sunny.s.zhang@oracle.com Signed-off-by: Shuning Zhang Reviewed-by: Joseph Qi Cc: Mark Fasheh Cc: Joel Becker Cc: Junxiao Bi Cc: Changwei Ge Cc: piaojun Cc: "Gang He" Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9dc2108d667da44c7b147b185b64e31c0a60f583 Author: Phillip Potter Date: Mon May 13 17:15:53 2019 -0700 ocfs2: use common file type conversion Deduplicate the ocfs2 file type conversion implementation and remove OCFS2_FT_* definitions - file systems that use the same file types as defined by POSIX do not need to define their own versions and can use the common helper functions decared in fs_types.h and implemented in fs_types.c Common implementation can be found via bbe7449e2599 ("fs: common implementation of file type"). Link: http://lkml.kernel.org/r/20190326213919.GA20878@pathfinder Signed-off-by: Amir Goldstein Signed-off-by: Phillip Potter Reviewed-by: Jan Kara Cc: Mark Fasheh Cc: Joel Becker Cc: Junxiao Bi Cc: Joseph Qi Cc: Changwei Ge Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3fde8c60b398823afd6fde0bc0cdbff72ad01a3e Author: Joseph Qi Date: Mon May 13 17:15:49 2019 -0700 MAINTAINERS: add Joseph as ocfs2 co-maintainer I have been contributing and reviewing to the ocfs2 filesystem for recent years and I'm willing to continue doing so. Volunteer as a co-maintainer for ocfs2 filesystem. Link: http://lkml.kernel.org/r/f56d75b3-2be5-25c2-51f2-c3f5423d4f14@gmail.com Signed-off-by: Joseph Qi Acked-by: Andrew Morton Reviewed-by: Mark Fasheh Cc: piaojun Cc: "Gang He" Cc: Joel Becker Cc: Junxiao Bi Cc: Joseph Qi Cc: Changwei Ge Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit e602b26ce4758e0eb97252363d32bd294afea530 Author: Sabyasachi Gupta Date: Mon May 13 17:15:46 2019 -0700 arch/sh/boards/mach-dreamcast/irq.c: Remove duplicate header Remove linux/irq.h which is included more than once. Link: http://lkml.kernel.org/r/5c8682ef.1c69fb81.5a1ea.2e7f@mx.google.com Signed-off-by: Sabyasachi Gupta Acked-by: Souptick Joarder Cc: Yoshinori Sato Cc: Rich Felker Cc: Mukesh Ojha Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a9e73998f9d705c94a8dca9687633adc0f24a19a Author: Cyrill Gorcunov Date: Mon May 13 17:15:40 2019 -0700 kernel/sys.c: prctl: fix false positive in validate_prctl_map() While validating new map we require the @start_data to be strictly less than @end_data, which is fine for regular applications (this is why this nit didn't trigger for that long). These members are set from executable loaders such as elf handers, still it is pretty valid to have a loadable data section with zero size in file, in such case the start_data is equal to end_data once kernel loader finishes. As a result when we're trying to restore such programs the procedure fails and the kernel returns -EINVAL. From the image dump of a program: | "mm_start_code": "0x400000", | "mm_end_code": "0x8f5fb4", | "mm_start_data": "0xf1bfb0", | "mm_end_data": "0xf1bfb0", Thus we need to change validate_prctl_map from strictly less to less or equal operator use. Link: http://lkml.kernel.org/r/20190408143554.GY1421@uranus.lan Fixes: f606b77f1a9e3 ("prctl: PR_SET_MM -- introduce PR_SET_MM_MAP operation") Signed-off-by: Cyrill Gorcunov Cc: Andrey Vagin Cc: Dmitry Safonov <0x7f454c46@gmail.com> Cc: Pavel Emelyanov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2bf753e64b4a702e27ce26ff520c59563c62f96b Author: Kai Shen Date: Mon May 13 17:15:37 2019 -0700 mm/hugetlb.c: don't put_page in lock of hugetlb_lock spinlock recursion happened when do LTP test: #!/bin/bash ./runltp -p -f hugetlb & ./runltp -p -f hugetlb & ./runltp -p -f hugetlb & ./runltp -p -f hugetlb & ./runltp -p -f hugetlb & The dtor returned by get_compound_page_dtor in __put_compound_page may be the function of free_huge_page which will lock the hugetlb_lock, so don't put_page in lock of hugetlb_lock. BUG: spinlock recursion on CPU#0, hugemmap05/1079 lock: hugetlb_lock+0x0/0x18, .magic: dead4ead, .owner: hugemmap05/1079, .owner_cpu: 0 Call trace: dump_backtrace+0x0/0x198 show_stack+0x24/0x30 dump_stack+0xa4/0xcc spin_dump+0x84/0xa8 do_raw_spin_lock+0xd0/0x108 _raw_spin_lock+0x20/0x30 free_huge_page+0x9c/0x260 __put_compound_page+0x44/0x50 __put_page+0x2c/0x60 alloc_surplus_huge_page.constprop.19+0xf0/0x140 hugetlb_acct_memory+0x104/0x378 hugetlb_reserve_pages+0xe0/0x250 hugetlbfs_file_mmap+0xc0/0x140 mmap_region+0x3e8/0x5b0 do_mmap+0x280/0x460 vm_mmap_pgoff+0xf4/0x128 ksys_mmap_pgoff+0xb4/0x258 __arm64_sys_mmap+0x34/0x48 el0_svc_common+0x78/0x130 el0_svc_handler+0x38/0x78 el0_svc+0x8/0xc Link: http://lkml.kernel.org/r/b8ade452-2d6b-0372-32c2-703644032b47@huawei.com Fixes: 9980d744a0 ("mm, hugetlb: get rid of surplus page accounting tricks") Signed-off-by: Kai Shen Signed-off-by: Feilong Lin Reported-by: Wang Wang Reviewed-by: Oscar Salvador Reviewed-by: Mike Kravetz Reviewed-by: Andrew Morton Acked-by: Michal Hocko Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fce86ff5802bac3a7b19db171aa1949ef9caac31 Author: Dan Williams Date: Mon May 13 17:15:33 2019 -0700 mm/huge_memory: fix vmf_insert_pfn_{pmd, pud}() crash, handle unaligned addresses Starting with c6f3c5ee40c1 ("mm/huge_memory.c: fix modifying of page protection by insert_pfn_pmd()") vmf_insert_pfn_pmd() internally calls pmdp_set_access_flags(). That helper enforces a pmd aligned @address argument via VM_BUG_ON() assertion. Update the implementation to take a 'struct vm_fault' argument directly and apply the address alignment fixup internally to fix crash signatures like: kernel BUG at arch/x86/mm/pgtable.c:515! invalid opcode: 0000 [#1] SMP NOPTI CPU: 51 PID: 43713 Comm: java Tainted: G OE 4.19.35 #1 [..] RIP: 0010:pmdp_set_access_flags+0x48/0x50 [..] Call Trace: vmf_insert_pfn_pmd+0x198/0x350 dax_iomap_fault+0xe82/0x1190 ext4_dax_huge_fault+0x103/0x1f0 ? __switch_to_asm+0x40/0x70 __handle_mm_fault+0x3f6/0x1370 ? __switch_to_asm+0x34/0x70 ? __switch_to_asm+0x40/0x70 handle_mm_fault+0xda/0x200 __do_page_fault+0x249/0x4f0 do_page_fault+0x32/0x110 ? page_fault+0x8/0x30 page_fault+0x1e/0x30 Link: http://lkml.kernel.org/r/155741946350.372037.11148198430068238140.stgit@dwillia2-desk3.amr.corp.intel.com Fixes: c6f3c5ee40c1 ("mm/huge_memory.c: fix modifying of page protection by insert_pfn_pmd()") Signed-off-by: Dan Williams Reported-by: Piotr Balcer Tested-by: Yan Ma Tested-by: Pankaj Gupta Reviewed-by: Matthew Wilcox Reviewed-by: Jan Kara Reviewed-by: Aneesh Kumar K.V Cc: Chandan Rajendra Cc: Souptick Joarder Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7e9890a3500d95c01511a4c45b7e7192dfa47ae2 Merge: 4856118f4953 acf3062a7e1c Author: Linus Torvalds Date: Tue May 14 09:02:14 2019 -0700 Merge tag 'ovl-update-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs Pull overlayfs update from Miklos Szeredi: "Just bug fixes in this small update" * tag 'ovl-update-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs: ovl: relax WARN_ON() for overlapping layers use case ovl: check the capability before cred overridden ovl: do not generate duplicate fsnotify events for "fake" path ovl: support stacked SEEK_HOLE/SEEK_DATA ovl: fix missing upper fs freeze protection on copy up for ioctl commit 4856118f4953627e9a087253766b9e7361f5f4a0 Merge: 0d28544117fa 9031a69cf9f0 Author: Linus Torvalds Date: Tue May 14 08:59:14 2019 -0700 Merge tag 'fuse-update-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse Pull fuse update from Miklos Szeredi: "Add more caching controls for userspace filesystems to use, as well as bug fixes and cleanups" * tag 'fuse-update-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse: fuse: clean up fuse_alloc_inode fuse: Add ioctl flag for x32 compat ioctl fuse: Convert fusectl to use the new mount API fuse: fix changelog entry for protocol 7.9 fuse: fix changelog entry for protocol 7.12 fuse: document fuse_fsync_in.fsync_flags fuse: Add FOPEN_STREAM to use stream_open() fuse: require /dev/fuse reads to have enough buffer capacity fuse: retrieve: cap requested size to negotiated max_write fuse: allow filesystems to have precise control over data cache fuse: convert printk -> pr_* fuse: honor RLIMIT_FSIZE in fuse_file_fallocate fuse: fix writepages on 32bit commit 0d28544117fa9dcd0d202aeb4459bb15f42bb7de Merge: fa4bff165070 2777e654371d Author: Linus Torvalds Date: Tue May 14 08:55:43 2019 -0700 Merge tag 'f2fs-for-v5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs Pull f2fs updates from Jaegeuk Kim: "Another round of various bug fixes came in. Damien improved SMR drive support a bit, and Chao replaced BUG_ON() with reporting errors to user since we've not hit from users but did hit from crafted images. We've found a disk layout bug in large_nat_bits feature which supports very large NAT entries enabled at mkfs. If the feature is enabled, it will give a notice to run fsck to correct the on-disk layout. Enhancements: - reduce memory consumption for SMR drive - better discard handling for multiple partitions - tracepoints for f2fs_file_write_iter/f2fs_filemap_fault - allow to change CP_CHKSUM_OFFSET - detect wrong layout of large_nat_bitmap feature - enhance checking valid data indices Bug fixes: - Multiple partition support for SMR drive - deadlock problem in f2fs_balance_fs_bg - add boundary checks to fix abnormal behaviors on fuzzed images - inline_xattr space calculations - replace f2fs_bug_on with errors In addition, this series contains various memory boundary check and sanity check of on-disk consistency" * tag 'f2fs-for-v5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (40 commits) f2fs: fix to avoid accessing xattr across the boundary f2fs: fix to avoid potential race on sbi->unusable_block_count access/update f2fs: add tracepoint for f2fs_filemap_fault() f2fs: introduce DATA_GENERIC_ENHANCE f2fs: fix to handle error in f2fs_disable_checkpoint() f2fs: remove redundant check in f2fs_file_write_iter() f2fs: fix to be aware of readonly device in write_checkpoint() f2fs: fix to skip recovery on readonly device f2fs: fix to consider multiple device for readonly check f2fs: relocate chksum_offset for large_nat_bitmap feature f2fs: allow unfixed f2fs_checkpoint.checksum_offset f2fs: Replace spaces with tab f2fs: insert space before the open parenthesis '(' f2fs: allow address pointer number of dnode aligning to specified size f2fs: introduce f2fs_read_single_page() for cleanup f2fs: mark is_extension_exist() inline f2fs: fix to set FI_UPDATE_WRITE correctly f2fs: fix to avoid panic in f2fs_inplace_write_data() f2fs: fix to do sanity check on valid block count of segment f2fs: fix to do sanity check on valid node/block count ... commit f3e20ad67b4c8365df9818fd3c8026e105d6b53a Author: Masahiro Yamada Date: Mon May 13 11:11:16 2019 +0900 s390: move arch/s390/defconfig to arch/s390/configs/defconfig As of Linux 5.1, alpha and s390 are the last architectures that have defconfig in arch/*/ instead of arch/*/configs/. $ find arch -name defconfig | sort arch/alpha/defconfig arch/arm64/configs/defconfig arch/csky/configs/defconfig arch/nds32/configs/defconfig arch/riscv/configs/defconfig arch/s390/defconfig The arch/$(ARCH)/defconfig is the hard-coded default in Kconfig, and I want to deprecate it after evacuating the remaining defconfig into the standard location, arch/*/configs/. Define KBUILD_DEFCONFIG like other architectures, and move defconfig into the configs/ subdirectory. Signed-off-by: Masahiro Yamada Signed-off-by: Martin Schwidefsky commit 1b1031ca63b2ce1d3b664b35b77ec94e458693e9 Author: Christoph Hellwig Date: Thu May 9 09:01:26 2019 +0200 nvme: validate cntlid during controller initialisation The CNTLID value is required to be unique, and we do rely on this for correct operation. So reject any controller for which a non-unique CNTLID has been detected. Based on a patch from Hannes Reinecke. Signed-off-by: Christoph Hellwig Reviewed-by: Chaitanya Kulkarni Reviewed-by: Hannes Reinecke commit 32fd90c407680935f84fb3ffc60fb3e020257d38 Author: Christoph Hellwig Date: Wed May 8 09:48:27 2019 +0200 nvme: change locking for the per-subsystem controller list Life becomes a lot simpler if we just use the global nvme_subsystems_lock to protect this list. Given that it is only accessed during controller probing and removal that isn't a scalability problem either. Signed-off-by: Christoph Hellwig Reviewed-by: Chaitanya Kulkarni Reviewed-by: Hannes Reinecke commit 521cfb8e5a5dd6f2f528d675688f07b962fe4545 Author: Chaitanya Kulkarni Date: Mon May 13 10:46:05 2019 -0700 nvme: trace all async notice events This patch removes the tracing of the NVMe Async events out of the switch so that it can trace all the events including the ones which are not handled in the nvme_handle_aen_notice(). The events which are not handled in the nvme_handle_aen_notice() such as NVME_AER_NOTICE_DISC_CHANGED corresponding event identifier needs to be added in the drivers/nvme/host/trace.h so that it can stringify the AER . Signed-off-by: Chaitanya Kulkarni Signed-off-by: Christoph Hellwig commit 9581ae4f0facf122a732841959812dea9ed2f422 Author: Minwoo Im Date: Sat May 11 22:42:54 2019 +0900 nvme: fix typos in nvme status code values Fix typos in enumeration names for nvme status: s/ACIVATE/ACTIVATE/ s/INSUFFICENT/INSUFFICIENT/ Signed-off-by: Minwoo Im Reviewed-by: Sagi Grimberg Reviewed-by: Chaitanya Kulkarni Signed-off-by: Christoph Hellwig commit 94e970b6740b11209848b05364dadbc12f3937f5 Author: Minwoo Im Date: Sat May 11 22:42:55 2019 +0900 nvme-fabrics: remove unused argument The variable 'count' is not currently used by nvmf_create_ctrl(), so remove it. Signed-off-by: Minwoo Im Reviewed-by: Sagi Grimberg Reviewed-by: Chaitanya Kulkarni Signed-off-by: Christoph Hellwig commit 29a0c843973bc385918158c6976e4dbe891df969 Author: Robert Richter Date: Tue May 14 10:49:09 2019 +0000 EDAC/mc: Fix edac_mc_find() in case no device is found The function should return NULL in case no device is found, but it always returns the last checked mc device from the list even if the index did not match. Fix that. I did some analysis why this did not raise any issues for about 3 years and the reason is that edac_mc_find() is mostly used to search for existing devices. Thus, the bug is not triggered. [ bp: Drop the if (mci->mc_idx > idx) test in favor of readability. ] Fixes: c73e8833bec5 ("EDAC, mc: Fix locking around mc_devices list") Signed-off-by: Robert Richter Signed-off-by: Borislav Petkov Cc: "linux-edac@vger.kernel.org" Cc: James Morse Cc: Mauro Carvalho Chehab Link: https://lkml.kernel.org/r/20190514104838.15065-1-rrichter@marvell.com commit 56df90b631fc027fe28b70d41352d820797239bb Author: Michał Wadowski Date: Tue May 14 16:58:00 2019 +0200 ALSA: hda/realtek - Fix for Lenovo B50-70 inverted internal microphone bug Add patch for realtek codec in Lenovo B50-70 that fixes inverted internal microphone channel. Device IdeaPad Y410P has the same PCI SSID as Lenovo B50-70, but first one is about fix the noise and it didn't seem help in a later kernel version. So I replaced IdeaPad Y410P device description with B50-70 and apply inverted microphone fix. Bugzilla: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1524215 Signed-off-by: Michał Wadowski Cc: Signed-off-by: Takashi Iwai commit fa4bff165070dc40a3de35b78e4f8da8e8d85ec5 Merge: 63863ee8e2f6 95310e348a32 Author: Linus Torvalds Date: Tue May 14 07:57:29 2019 -0700 Merge branch 'x86-mds-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 MDS mitigations from Thomas Gleixner: "Microarchitectural Data Sampling (MDS) is a hardware vulnerability which allows unprivileged speculative access to data which is available in various CPU internal buffers. This new set of misfeatures has the following CVEs assigned: CVE-2018-12126 MSBDS Microarchitectural Store Buffer Data Sampling CVE-2018-12130 MFBDS Microarchitectural Fill Buffer Data Sampling CVE-2018-12127 MLPDS Microarchitectural Load Port Data Sampling CVE-2019-11091 MDSUM Microarchitectural Data Sampling Uncacheable Memory MDS attacks target microarchitectural buffers which speculatively forward data under certain conditions. Disclosure gadgets can expose this data via cache side channels. Contrary to other speculation based vulnerabilities the MDS vulnerability does not allow the attacker to control the memory target address. As a consequence the attacks are purely sampling based, but as demonstrated with the TLBleed attack samples can be postprocessed successfully. The mitigation is to flush the microarchitectural buffers on return to user space and before entering a VM. It's bolted on the VERW instruction and requires a microcode update. As some of the attacks exploit data structures shared between hyperthreads, full protection requires to disable hyperthreading. The kernel does not do that by default to avoid breaking unattended updates. The mitigation set comes with documentation for administrators and a deeper technical view" * 'x86-mds-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits) x86/speculation/mds: Fix documentation typo Documentation: Correct the possible MDS sysfs values x86/mds: Add MDSUM variant to the MDS documentation x86/speculation/mds: Add 'mitigations=' support for MDS x86/speculation/mds: Print SMT vulnerable on MSBDS with mitigations off x86/speculation/mds: Fix comment x86/speculation/mds: Add SMT warning message x86/speculation: Move arch_smt_update() call to after mitigation decisions x86/speculation/mds: Add mds=full,nosmt cmdline option Documentation: Add MDS vulnerability documentation Documentation: Move L1TF to separate directory x86/speculation/mds: Add mitigation mode VMWERV x86/speculation/mds: Add sysfs reporting for MDS x86/speculation/mds: Add mitigation control for MDS x86/speculation/mds: Conditionally clear CPU buffers on idle entry x86/kvm/vmx: Add MDS protection when L1D Flush is not active x86/speculation/mds: Clear CPU buffers on exit to user x86/speculation/mds: Add mds_clear_cpu_buffers() x86/kvm: Expose X86_FEATURE_MD_CLEAR to guests x86/speculation/mds: Add BUG_MSBDS_ONLY ... commit 9b9f5948afcdf583cb1b58e0c4cc327aa1820f5a Author: Masahiro Yamada Date: Mon May 13 01:00:53 2019 +0900 kconfig: make conf_get_autoconfig_name() static This is only used in confdata.c Signed-off-by: Masahiro Yamada commit b9d1a8e9302e68ee03571a286aadeb8041e0b2ca Author: Jacob Garber Date: Fri May 10 13:28:52 2019 -0600 kconfig: use snprintf for formatting pathnames Valid pathnames will never exceed PATH_MAX, but these file names are unsanitized and can cause buffer overflow if set incorrectly. Use snprintf to avoid this. This was flagged during a Coverity scan of the coreboot project, which also uses kconfig for its build system. Signed-off-by: Jacob Garber Signed-off-by: Masahiro Yamada commit 4cb726121e2cce18d4db5e79347f3ade5fd661a2 Author: Masahiro Yamada Date: Sat May 11 01:56:48 2019 +0900 kconfig: remove useless NULL pointer check in conf_write_dep() conf_write_dep() has just one caller: conf_write_dep("include/config/auto.conf.cmd"); "name" always points to a valid string. Signed-off-by: Masahiro Yamada commit e2f597a20470d7dfeca49c3d45cb8a7e46d3cf66 Author: Brian Masney Date: Mon May 13 19:41:04 2019 -0400 drm/msm: remove resv fields from msm_gem_object struct The msm_gem_object structure contains resv and _resv fields that are no longer needed since the reservation object is now stored on drm_gem_object. msm_atomic_prepare_fb() and msm_atomic_prepare_fb() both referenced the wrong reservation object, and would lead to an attempt to dereference a NULL pointer. Correct those two cases to point to the correct reservation object. Fixes: dd55cf6929e6 ("drm: msm: Switch to use drm_gem_object reservation_object") Cc: David Airlie Cc: linux-arm-msm@vger.kernel.org Cc: dri-devel@lists.freedesktop.org Cc: freedreno@lists.freedesktop.org Cc: Rob Herring Cc: Daniel Vetter Cc: Rob Clark Cc: Maxime Ripard Cc: Sean Paul Acked-by: Rob Clark Reviewed-by: Bjorn Andersson Tested-by: Bjorn Andersson Signed-off-by: Brian Masney Signed-off-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190513234105.7531-1-masneyb@onstation.org commit 37bcec5d9f71bd13142a97d2196b293c9ac23823 Author: Guenter Roeck Date: Thu Apr 18 12:58:20 2019 -0700 hwmon: (pwm-fan) Use devm_thermal_of_cooling_device_register Use devm_thermal_of_cooling_device_register() to register the cooling device. Also use devm_add_action_or_reset() to stop the fan on device removal, and to disable the pwm. Introduce a local 'dev' variable in the probe function to make the code easier to read. As a side effect, this fixes a bug seen if pwm_fan_of_get_cooling_data() returned an error. In that situation, the pwm was not disabled, and the fan was not stopped. Using devm functions also ensures that the pwm is disabled and that the fan is stopped only after the hwmon device has been unregistered. Cc: Lukasz Majewski Signed-off-by: Guenter Roeck Signed-off-by: Eduardo Valentin commit 0b2a785db8797db08181f71395a412c8eedbc614 Author: Guenter Roeck Date: Thu Apr 18 12:58:19 2019 -0700 hwmon: (npcm750-pwm-fan) Use devm_thermal_of_cooling_device_register Use devm_thermal_of_cooling_device_register() to register the cooling device. As a side effect, this fixes a driver bug: thermal_cooling_device_unregister() was not called on device removal. Fixes: f1fd4a4db777 ("hwmon: Add NPCM7xx PWM and Fan driver") Cc: Tomer Maimon Signed-off-by: Guenter Roeck Signed-off-by: Eduardo Valentin commit 9ebe010e566e9300bf3a7bb4ebfeb3f4deb72aa6 Author: Guenter Roeck Date: Thu Apr 18 12:58:18 2019 -0700 hwmon: (mlxreg-fan) Use devm_thermal_of_cooling_device_register Call devm_thermal_of_cooling_device_register() to register the cooling device. Also introduce struct device *dev = &pdev->dev; to make the code easier to read. Signed-off-by: Guenter Roeck Signed-off-by: Eduardo Valentin commit 9534784550ab02a4394f499ff60765e89bc88f22 Author: Guenter Roeck Date: Thu Apr 18 12:58:17 2019 -0700 hwmon: (gpio-fan) Use devm_thermal_of_cooling_device_register Call devm_thermal_of_cooling_device_register() to register the cooling device. Also use devm_add_action_or_reset() to stop the fan on device removal. This fixes a race condition since the fan was stopped before the hwmon device was removed. Signed-off-by: Guenter Roeck Signed-off-by: Eduardo Valentin commit 389c0ad1d61ec5790174ecb0f01eac13423a18e1 Author: Guenter Roeck Date: Thu Apr 18 12:58:16 2019 -0700 hwmon: (aspeed-pwm-tacho) Use devm_thermal_of_cooling_device_register Use devm_thermal_of_cooling_device_register() to register the cooling device. As a side effect, this fixes a driver bug: thermal_cooling_device_unregister() was not called on removal. Fixes: f198907d2ff6d ("hwmon: (aspeed-pwm-tacho) cooling device support.") Cc: Mykola Kostenok Cc: Joel Stanley Signed-off-by: Guenter Roeck Reviewed-by: Patrick Venture Signed-off-by: Eduardo Valentin commit e380ea8117ce8c83c5da7063a3587a728132de0b Author: Jiada Wang Date: Thu May 9 18:09:17 2019 +0900 thermal: rcar_gen3_thermal: Fix to show correct trip points number Currently after store trip points number in 'ret', it is overwritten afterwards, this cause incorrect trip point number always be shown in the debug information after register of each thermal zone. This patch fix this issue by moving get of trip number to end of thermal zone registration. Fixes: 6269e9f790e8d ("thermal: rcar_gen3_thermal: Register hwmon sysfs interface") Signed-off-by: Jiada Wang Signed-off-by: Eduardo Valentin commit 20386f0d84a22214d1f037dedfffb6709dd0117a Author: Yoshihiro Kaneko Date: Wed May 8 13:08:45 2019 +0200 thermal: rcar_thermal: update calculation formula for R-Car Gen3 SoCs Update calculation for the R-Car Gen3 and RZ/G2 SoCs which have a thermal IP block controlled by this driver. That is the: * R-Car D3 (r8a77995) * R-Car E2 (r8a77990) * R-Car V3M (r8a77970) * RZ/G2E (r8a774c0) The calculation update is as documented in the R-Car Gen3 User's Manual, v1.50 Nov 2018: - When CTEMP is less than 24 T = CTEMP[5:0] * 5.5 - 72 - When CTEMP is equal to/greater than 24 T = CTEMP[5:0] * 5 - 60 This was inspired by a patch in the BSP by Van Do Signed-off-by: Yoshihiro Kaneko Tested-by: Simon Horman Acked-by: Wolfram Sang Reviewed-by: Niklas Söderlund Signed-off-by: Simon Horman Signed-off-by: Eduardo Valentin commit bf45ac18b78038e43af3c1a273cae4ab5704d2ce Author: Matthias Kaehlcke Date: Thu May 2 11:32:38 2019 -0700 thermal: cpu_cooling: Actually trace CPU load in thermal_power_cpu_get_power The CPU load values passed to the thermal_power_cpu_get_power tracepoint are zero for all CPUs, unless, unless the thermal_power_cpu_limit tracepoint is enabled too: irq/41-rockchip-98 [000] .... 290.972410: thermal_power_cpu_get_power: cpus=0000000f freq=1800000 load={{0x0,0x0,0x0,0x0}} dynamic_power=4815 vs irq/41-rockchip-96 [000] .... 95.773585: thermal_power_cpu_get_power: cpus=0000000f freq=1800000 load={{0x56,0x64,0x64,0x5e}} dynamic_power=4959 irq/41-rockchip-96 [000] .... 95.773596: thermal_power_cpu_limit: cpus=0000000f freq=408000 cdev_state=10 power=416 There seems to be no good reason for omitting the CPU load information depending on another tracepoint. My guess is that the intention was to check whether thermal_power_cpu_get_power is (still) enabled, however 'load_cpu != NULL' already indicates that it was at least enabled when cpufreq_get_requested_power() was entered, there seems little gain from omitting the assignment if the tracepoint was just disabled, so just remove the check. Fixes: 6828a4711f99 ("thermal: add trace events to the power allocator governor") Signed-off-by: Matthias Kaehlcke Reviewed-by: Daniel Lezcano Acked-by: Javi Merino Acked-by: Viresh Kumar Signed-off-by: Eduardo Valentin commit ffd1b122d3a17783b68cfd03b0479dffedf0d960 Author: Elaine Zhang Date: Tue Apr 30 18:09:46 2019 +0800 thermal: rockchip: Support the PX30 SoC in thermal driver PX30 SOC has two Temperature Sensors for CPU and GPU. Signed-off-by: Elaine Zhang Signed-off-by: Eduardo Valentin commit 4b984e7bfb6d8e4209838a55af4ae5fbba878867 Author: Elaine Zhang Date: Tue Apr 30 18:09:45 2019 +0800 dt-bindings: rockchip-thermal: Support the PX30 SoC compatible Add a new compatible for thermal founding on PX30 SoCs. Signed-off-by: Elaine Zhang Acked-by: Daniel Lezcano Reviewed-by: Rob Herring Signed-off-by: Eduardo Valentin commit 28694e009e512451ead5519dd801f9869acb1f60 Author: Elaine Zhang Date: Tue Apr 30 18:09:44 2019 +0800 thermal: rockchip: fix up the tsadc pinctrl setting error Explicitly use the pinctrl to set/unset the right mode instead of relying on the pinctrl init mode. And it requires setting the tshut polarity before select pinctrl. When the temperature sensor mode is set to 0, it will automatically reset the board via the Clock-Reset-Unit (CRU) if the over temperature threshold is reached. However, when the pinctrl initializes, it does a transition to "otp_out" which may lead the SoC restart all the time. "otp_out" IO may be connected to the RESET circuit on the hardware. If the IO is in the wrong state, it will trigger RESET. (similar to the effect of pressing the RESET button) which will cause the soc to restart all the time. Signed-off-by: Elaine Zhang Reviewed-by: Daniel Lezcano Signed-off-by: Eduardo Valentin commit fcc6d4cadadcc977911c6bfcdd95d379f4082c74 Author: Srinath Mannam Date: Mon Apr 29 22:25:29 2019 +0530 thermal: broadcom: Remove ACPI support Unlike DT framework, thermal-zones and its parameters can't be parsed using ACPI framework. So that ACPI support is removed in this driver. Signed-off-by: Srinath Mannam Reported-by: David Woodhouse Signed-off-by: Eduardo Valentin commit 6ec8070b9d48294fbe865535c167a79527eaf357 Author: Talel Shenhar Date: Mon Apr 29 12:47:36 2019 +0300 thermal: Fix build error of missing devm_ioremap_resource on UM The devres.o gets linked if HAS_IOMEM is present so on ARCH=um allyesconfig (COMPILE_TEST) failed on many files with: drivers/thermal/thermal_mmio.o: In function 'thermal_mmio_probe':thermal_mmio.c:(.text+0xe1): undefined reference to `devm_ioremap_resource' The users of devm_ioremap_resource() which are compile-testable should depend on HAS_IOMEM. Reported-by: kbuild test robot Signed-off-by: Talel Shenhar Signed-off-by: Eduardo Valentin commit 72554a7509aeb3fe94d9cf6746c9cb056622784f Author: Daniel Lezcano Date: Sun Apr 28 11:51:05 2019 +0200 thermal/drivers/cpu_cooling: Remove pointless field The structure cpufreq_cooling_device provides a backpointer to the thermal device but this one is used for a trace and to unregister. For the trace, we don't really need this field and the unregister function as the same pointer passed as parameter. Remove it. Acked-by: Viresh Kumar Signed-off-by: Daniel Lezcano Signed-off-by: Eduardo Valentin commit 0fac9e2f1452ffb6f43926609a569372204262eb Author: Daniel Lezcano Date: Sun Apr 28 11:51:04 2019 +0200 thermal/drivers/cpu_cooling: Add Software Package Data Exchange (SPDX) For license auditing purpose, let's add the SPDX tag. Signed-off-by: Daniel Lezcano Acked-by: Viresh Kumar Acked-by: Philippe Ombredanne Signed-off-by: Eduardo Valentin commit 42cd9b049829d7facbd45ab503d763a86251e81b Author: Daniel Lezcano Date: Sun Apr 28 11:51:03 2019 +0200 thermal/drivers/cpu_cooling: Fixup the header and copyright The copyright format does not conform to the format requested by Linaro: https://wiki.linaro.org/Copyright Fix it. Signed-off-by: Daniel Lezcano Acked-by: Viresh Kumar Signed-off-by: Eduardo Valentin commit 3c74cbb8d0013f6ec7cdee0812247dae35edd757 Author: Daniel Lezcano Date: Wed Apr 24 22:56:09 2019 +0200 thermal/drivers/cpu_cooling: Remove pointless test in power2state() When the static power computation was removed, the test with the power being negative was not removed. However, the substraction which was responsible of the negative value was removed and the variable is now an u32. A double reason to remove the test which does not make sense. Fixes: 84fe2cab48590 ("cpu_cooling: Drop static-power related stuff") Cc: Viresh Kumar Signed-off-by: Daniel Lezcano Acked-by: Viresh Kumar Signed-off-by: Eduardo Valentin commit 63f55fcea50c25ae5ad45af92d08dae3b84534c2 Author: Jiada Wang Date: Wed Apr 24 14:11:45 2019 +0900 thermal: rcar_gen3_thermal: disable interrupt in .remove Currently IRQ remains enabled after .remove, later if device is probed, IRQ is requested before .thermal_init, this may cause IRQ function be called before device is initialized. this patch disables interrupt in .remove, to ensure irq function only be called after device is fully initialized. Signed-off-by: Jiada Wang Reviewed-by: Simon Horman Reviewed-by: Daniel Lezcano Signed-off-by: Eduardo Valentin commit 2c0928c9e004589dc9e7672c40a38d6c4ca12701 Author: Jiada Wang Date: Wed Apr 24 14:11:44 2019 +0900 thermal: rcar_gen3_thermal: fix interrupt type Currently IRQF_SHARED type interrupt line is allocated, but it is not appropriate, as the interrupt line isn't shared between different devices, instead IRQF_ONESHOT is the proper type. By changing interrupt type to IRQF_ONESHOT, now irq handler is no longer needed, as clear of interrupt status can be done in threaded interrupt context. Because IRQF_ONESHOT type interrupt line is kept disabled until the threaded handler has been run, so there is no need to protect read/write of REG_GEN3_IRQSTR with lock. Fixes: 7d4b269776ec6 ("enable hardware interrupts for trip points") Signed-off-by: Jiada Wang Reviewed-by: Simon Horman Tested-by: Simon Horman Reviewed-by: Daniel Lezcano Signed-off-by: Eduardo Valentin commit b4ab114cc6a1bbf8ca1d9a2339f2b5b43374029b Author: Guenter Roeck Date: Thu Apr 18 12:58:15 2019 -0700 thermal: Introduce devm_thermal_of_cooling_device_register thermal_of_cooling_device_register() and thermal_cooling_device_register() are typically called from driver probe functions, and thermal_cooling_device_unregister() is called from remove functions. This makes both a perfect candidate for device managed functions. Introduce devm_thermal_of_cooling_device_register(). This function can also be used to replace thermal_cooling_device_register() by passing a NULL pointer as device node. The new function requires both struct device * and struct device_node * as parameters since the struct device_node * parameter is not always identical to dev->of_node. Don't introduce a device managed remove function since it is not needed at this point. Signed-off-by: Guenter Roeck Signed-off-by: Eduardo Valentin commit 80d95930dcdf06315cfde408c18783c811bf3db9 Author: Jean-Francois Dagenais Date: Thu Apr 18 12:37:33 2019 -0400 dt-bindings: thermal: generic-adc: make lookup-table optional Update binding description making lookup-table optional. Signed-off-by: Jean-Francois Dagenais Signed-off-by: Eduardo Valentin commit d36e2fa025387567710df740fd4dce1d5001b226 Author: Jean-Francois Dagenais Date: Thu Apr 18 12:37:32 2019 -0400 thermal: generic-adc: make lookup table optional Certain ADC channels, such as the xilinx-ams temperature channels, give milliCelcius already when read with iio_read_channel_processed. Rather than having to provide a 1:1 dummy lookup table, simply allow to bypass the mechanism. Signed-off-by: Jean-Francois Dagenais Signed-off-by: Eduardo Valentin commit f86a7a847ca39e613985b7419ce3970af91486b1 Author: Andrey Smirnov Date: Sat Apr 13 01:27:37 2019 -0700 thermal: qoriq: Remove unnecessary DT node is NULL check It's impossible to use this driver outside of Device Tree, so if the probe function is called, the dev.of_node is guaranteed to not be NULL and guarding against that is pointless. Drop it. Signed-off-by: Andrey Smirnov Acked-by: Daniel Lezcano Cc: Chris Healy Cc: Lucas Stach Cc: Eduardo Valentin Cc: Daniel Lezcano Cc: Angus Ainslie (Purism) Cc: linux-imx@nxp.com Cc: linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Eduardo Valentin commit 71aa3693493d5f51822d88cdd26bc5a51ae5544f Author: Talel Shenhar Date: Thu Apr 11 13:22:48 2019 +0300 thermal: Introduce Amazon's Annapurna Labs Thermal Driver This is a generic thermal driver for simple MMIO sensors, of which amazon,al-thermal is one. This device uses a single MMIO transaction to read the temperature and report it to the thermal subsystem. Signed-off-by: Talel Shenhar Reviewed-by: David Woodhouse Reviewed-by: Daniel Lezcano Signed-off-by: Eduardo Valentin commit c8044b918b2bd9e6ad93b4f14b42bcbb61dd544b Author: Talel Shenhar Date: Thu Apr 11 13:22:47 2019 +0300 dt-bindings: thermal: al-thermal: Add binding documentation Add thermal binding documentation for Amazon's Annapurna Labs Thermal Sensor. Signed-off-by: Talel Shenhar Reviewed-by: David Woodhouse Reviewed-by: Rob Herring Signed-off-by: Eduardo Valentin commit ed1b1ac1425b3d4399553411f305ce12fb3a6c54 Author: Hoan Nguyen An Date: Wed Mar 27 18:03:18 2019 +0900 thermal: rcar_gen3_thermal: Fix init value of IRQCTL register Fix setting value for IRQCTL register. We are setting the last 6 bits of (IRQCTL) to be 1 (0x3f), this is only suitable for H3ES1.*, according to Hardware manual values 1 are "setting prohibited" for Gen3. Signed-off-by: Hoan Nguyen An Acked-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Signed-off-by: Eduardo Valentin commit e52bbd2f10adf708b8a706bc8b89fbad53445c79 Author: Amit Kucheria Date: Wed Mar 20 18:48:03 2019 +0530 drivers: thermal: tsens: Move calibration constants to header file This will allow calibration routines to correctly include the constants from anywhere and allow more code sharing. Signed-off-by: Amit Kucheria Signed-off-by: Eduardo Valentin commit e8c24c6f5d1c7a8e124d41e1c8f27dd494937320 Author: Amit Kucheria Date: Wed Mar 20 18:48:00 2019 +0530 drivers: thermal: tsens: Add generic support for TSENS v1 IP qcs404 has a single TSENS IP block with 10 sensors. It uses version 1.4 of the TSENS IP, functionality for which is encapsulated inside the qcom,tsens-v1 compatible. Signed-off-by: Amit Kucheria Signed-off-by: Eduardo Valentin commit a9604f28087f3641bed923b455c7392cdf432cbf Author: Amit Kucheria Date: Wed Mar 20 18:47:59 2019 +0530 dt: thermal: tsens: Add bindings for qcs404 qcs404 uses v1 of the TSENS IP block. Create a fallback DT property "qcom,tsens-v1" to gather common code Signed-off-by: Amit Kucheria Reviewed-by: Rob Herring Signed-off-by: Eduardo Valentin commit 14bbe98811209f3fb3f8143285ddcf1f6108aae4 Author: Amit Kucheria Date: Wed Mar 20 18:47:58 2019 +0530 drivers: thermal: tsens: Common get_temp() learns to do ADC conversion get_temp() learns to return temperature regardless of whether it is returned as ADC code or direct temperature. Signed-off-by: Amit Kucheria Signed-off-by: Eduardo Valentin commit c8b6169093f66e9bae6eb5157ccc4ad426402caf Author: Amit Kucheria Date: Wed Mar 20 18:47:57 2019 +0530 drivers: thermal: tsens: Move get_temp_tsens_v2 to allow sharing Just rename the function and move it to allow code sharing with future versions of TSENS IP Signed-off-by: Amit Kucheria Signed-off-by: Eduardo Valentin commit dbdaa582e4ee38c9e2c2d500ebb102a350b7e1fc Author: Amit Kucheria Date: Wed Mar 20 18:47:56 2019 +0530 drivers: thermal: tsens: simplify get_temp_tsens_v2 routine The current implementation is based on an algorithm published in the docs. Instead of reading the temperature thrice w/o any explanation, improve the algorithm. This will become the basis for a common get_temp routine in the future. Signed-off-by: Amit Kucheria Signed-off-by: Eduardo Valentin commit 1b6e3e517fadcfbbe0f88eb676ebffafc20fd49c Author: Amit Kucheria Date: Wed Mar 20 18:47:55 2019 +0530 drivers: thermal: tsens: Introduce IP-specific max_sensor count The IP can support 'm' sensors while the platform can enable 'n' sensors of the 'm' where n <= m. Track maximum sensors supported by the IP so that we can correctly track what subset of the sensors are supported on the platform. Signed-off-by: Amit Kucheria Signed-off-by: Eduardo Valentin commit 66ad8a100953dc1433c3ead8c473746d60c05693 Author: Amit Kucheria Date: Wed Mar 20 18:47:54 2019 +0530 drivers: thermal: tsens: change data type for sensor IDs The IDs cannot be negative, fix the data type. Signed-off-by: Amit Kucheria Signed-off-by: Eduardo Valentin commit 3e6a8fb3308419129c7a52de6eb42feef5a919a0 Author: Amit Kucheria Date: Wed Mar 20 18:47:53 2019 +0530 drivers: thermal: tsens: Add new operation to check if a sensor is enabled is_sensor_enabled() checks if the sensors are enabled on this platform. It is possible that the SoC might choose not to enable all the sensors that the IP block is capable of supporting. Signed-off-by: Amit Kucheria Signed-off-by: Eduardo Valentin commit fc7d18cf6a923cde7f5e7ba2c1105bb106d3e29a Author: Amit Kucheria Date: Wed Mar 20 18:47:52 2019 +0530 drivers: thermal: tsens: Don't print error message on -EPROBE_DEFER We print a calibration failure message on -EPROBE_DEFER from nvmem/qfprom as follows: [ 3.003090] qcom-tsens 4a9000.thermal-sensor: version: 1.4 [ 3.005376] qcom-tsens 4a9000.thermal-sensor: tsens calibration failed [ 3.113248] qcom-tsens 4a9000.thermal-sensor: version: 1.4 This confuses people when, in fact, calibration succeeds later when nvmem/qfprom device is available. Don't print this message on a -EPROBE_DEFER. Signed-off-by: Amit Kucheria Signed-off-by: Eduardo Valentin commit 52eafd66ef764022b3cd2ee62a053d39e2809120 Author: Amit Kucheria Date: Wed Mar 20 18:47:51 2019 +0530 drivers: thermal: tsens: Save reference to the device pointer and use it Code cleanup making it easier to read Signed-off-by: Amit Kucheria Signed-off-by: Eduardo Valentin commit c19970548edc35921ed7606951d203d7887e2ea9 Author: Amit Kucheria Date: Wed Mar 20 18:47:50 2019 +0530 drivers: thermal: tsens: Introduce reg_fields to deal with register description As we add support for newer versions of the TSENS IP, the current approach isn't scaling because registers and bitfields get moved around, requiring platform-specific hacks in the code. By moving to regmap, we can hide the register level differences away from the code. Define a common set of registers and bit-fields that we care about across the various tsens IP versions. Signed-off-by: Amit Kucheria Signed-off-by: Eduardo Valentin commit c191f93454bcc92810b9c8cdb895a452a57948c2 Author: Yishai Hadas Date: Tue May 14 14:44:12 2019 +0300 net/mlx5: Set completion EQs as shared resources Mark completion EQs as shared resources so that they can be used by CQs with uid != 0. Fixes: 7efce3691d33 ("IB/mlx5: Add obj create and destroy functionality") Signed-off-by: Yishai Hadas Signed-off-by: Saeed Mahameed Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit cd5d20f13f2de7d5d528dbbc2b095e06c70bad9a Author: Yishai Hadas Date: Tue May 14 14:44:11 2019 +0300 IB/mlx5: Verify DEVX general object type correctly As the obj_id in the firmware is not globally unique in general_object, the object type must be considered upon checking for a valid object id. Fixes: 2351776e87a1 ("IB/mlx5: Verify DEVX object type") Signed-off-by: Yishai Hadas Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 397d2300b08cdee052053e362018cdb6dd65eea2 Author: Christophe Leroy Date: Thu May 9 12:59:38 2019 +0000 powerpc/32s: fix flush_hash_pages() on SMP flush_hash_pages() runs with data translation off, so current task_struct has to be accesssed using physical address. Fixes: f7354ccac844 ("powerpc/32: Remove CURRENT_THREAD_INFO and rename TI_CPU") Cc: stable@vger.kernel.org # v5.1+ Reported-by: Erhard F. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit ca976bfb3154c7bc67c4651ecd144fdf67ccaee7 Author: Wenlin Kang Date: Mon May 13 16:57:20 2019 +0800 kdb: Fix bound check compiler warning The strncpy() function may leave the destination string buffer unterminated, better use strscpy() instead. This fixes the following warning with gcc 8.2: kernel/debug/kdb/kdb_io.c: In function 'kdb_getstr': kernel/debug/kdb/kdb_io.c:449:3: warning: 'strncpy' specified bound 256 equals destination size [-Wstringop-truncation] strncpy(kdb_prompt_str, prompt, CMD_BUFLEN); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Signed-off-by: Wenlin Kang Signed-off-by: Daniel Thompson commit 48caebf7e1313eb9f0a06fe59a07ac05b38a5806 Author: Will Deacon Date: Tue May 14 12:25:28 2019 +0100 arm64: Print physical address of page table base in show_pte() When dumping the page table in response to an unexpected kernel page fault, we print the virtual (hashed) address of the page table base, but display physical addresses for everything else. Make the page table dumping code in show_pte() consistent, by printing the page table base pointer as a physical address. Reported-by: Mark Rutland Signed-off-by: Will Deacon commit 84c187afa210fcd5e34a7506c6e0dc2d69bc6641 Author: Yury Norov Date: Tue May 7 13:52:28 2019 -0700 arm64: don't trash config with compat symbol if COMPAT is disabled ARCH_WANT_COMPAT_IPC_PARSE_VERSION is selected unconditionally. It makes little sense if kernel is compiled without COMPAT support. Fix it. This patch makes no functional changes since all existing code which is guarded with ARCH_WANT_COMPAT_IPC_PARSE_VERSION is also guarded with COMPAT. Signed-off-by: Yury Norov Signed-off-by: Will Deacon commit 0e4add4ae79e4466ae2a7e7772dfbe39fb28787a Author: Hillf Danton Date: Tue May 14 16:34:19 2019 +0800 arm64: assembler: Update comment above cond_yield_neon() macro Since commit 7faa313f05ca ("arm64: preempt: Fix big-endian when checking preempt count in assembly") both the preempt count and the 'need_resched' flag are checked as part of a single 64-bit load in cond_yield_neon(), so update the stale comment to reflect reality. Cc: Ard Biesheuvel Cc: Dave Martin Cc: Will Deacon Cc: Peter Zijlstra Signed-off-by: Hillf Danton Signed-off-by: Will Deacon commit 2f844b61db8297a1f7a06adf2eb5c43381f2c183 Author: Rajat Jain Date: Mon May 13 12:17:08 2019 -0700 ACPI: PM: Set enable_for_wake for wakeup GPEs during suspend-to-idle I noticed that recently multiple systems (chromebooks) couldn't wake from S0ix using LID or Keyboard after updating to a newer kernel. I bisected and it turned up commit f941d3e41da7 ("ACPI: EC / PM: Disable non-wakeup GPEs for suspend-to-idle"). I checked that the issue got fixed if that commit was reverted. I debugged and found that although PNP0C0D:00 (representing the LID) is wake capable and should wakeup the system per the code in acpi_wakeup_gpe_init() and in drivers/acpi/button.c: localhost /sys # cat /proc/acpi/wakeup Device S-state Status Sysfs node LID0 S4 *enabled platform:PNP0C0D:00 CREC S5 *disabled platform:GOOG0004:00 *disabled platform:cros-ec-dev.1.auto *disabled platform:cros-ec-accel.0 *disabled platform:cros-ec-accel.1 *disabled platform:cros-ec-gyro.0 *disabled platform:cros-ec-ring.0 *disabled platform:cros-usbpd-charger.2.auto *disabled platform:cros-usbpd-logger.3.auto D015 S3 *enabled i2c:i2c-ELAN0000:00 PENH S3 *enabled platform:PRP0001:00 XHCI S3 *enabled pci:0000:00:14.0 GLAN S4 *disabled WIFI S3 *disabled pci:0000:00:14.3 localhost /sys # On debugging, I found that its corresponding GPE is not being enabled. The particular GPE's "gpe_register_info->enable_for_wake" does not have any bits set when acpi_enable_all_wakeup_gpes() comes around to use it. I looked at code and could not find any other code path that should set the bits in "enable_for_wake" bitmask for the wake enabled devices for s2idle. [I do see that it happens for S3 in acpi_sleep_prepare()]. Thus I used the same call to enable the GPEs for wake enabled devices, and verified that this fixes the regression I was seeing on multiple of my devices. [ rjw: The problem is that commit f941d3e41da7 ("ACPI: EC / PM: Disable non-wakeup GPEs for suspend-to-idle") forgot to add the acpi_enable_wakeup_devices() call for s2idle along with acpi_enable_all_wakeup_gpes(). ] Fixes: f941d3e41da7 ("ACPI: EC / PM: Disable non-wakeup GPEs for suspend-to-idle") Link: https://bugzilla.kernel.org/show_bug.cgi?id=203579 Signed-off-by: Rajat Jain [ rjw: Subject & changelog ] Cc: 5.0+ # 5.0+ Signed-off-by: Rafael J. Wysocki commit 32b5a2c9950b9284000059d752f7afa164deb15e Author: Maxim Mikityanskiy Date: Tue May 7 20:28:15 2019 +0300 wireless: Skip directory when generating certificates Commit 715a12334764 ("wireless: don't write C files on failures") drops the `test -f $$f` check. The list of targets contains the CONFIG_CFG80211_EXTRA_REGDB_KEYDIR directory itself, and this check used to filter it out. After the check was removed, the extra keydir option no longer works, failing with the following message: od: 'standard input': read error: Is a directory This commit restores the check to make extra keydir work again. Fixes: 715a12334764 ("wireless: don't write C files on failures") Signed-off-by: Maxim Mikityanskiy Signed-off-by: Johannes Berg commit 2474c62898c63f8bb122ffda2cd93fdaad55603a Author: Gary Lin Date: Tue May 14 11:15:50 2019 +0800 tools/bpf: Sync kernel btf.h header For the fix of BTF_INT_OFFSET(). Signed-off-by: Gary Lin Acked-by: Andrii Nakryiko Signed-off-by: Daniel Borkmann commit 948dc8c99a22d6bdcb34c194cde392e1a125928a Author: Gary Lin Date: Mon May 13 17:45:48 2019 +0800 bpf: btf: fix the brackets of BTF_INT_OFFSET() 'VAL' should be protected by the brackets. v2: * Squash the fix for Documentation/bpf/btf.rst Fixes: 69b693f0aefa ("bpf: btf: Introduce BPF Type Format (BTF)") Signed-off-by: Gary Lin Signed-off-by: Daniel Borkmann commit 8fbce8efe15cd2ca7a4947bc814f890dbe4e43d7 Author: Brian Masney Date: Wed Apr 24 05:25:05 2019 -0400 backlight: lm3630a: Add firmware node support Add fwnode support to the lm3630a driver and optionally allow configuring the label, default brightness level, and maximum brightness level. The two outputs can be controlled by bank A and B independently or bank A can control both outputs. If the platform data was not configured, then the driver defaults to enabling both banks. This patch changes the default value to disable both banks before parsing the firmware node so that just a single bank can be enabled if desired. There are no in-tree users of this driver. Driver was tested on a LG Nexus 5 (hammerhead) phone. Signed-off-by: Brian Masney Reviewed-by: Dan Murphy Acked-by: Daniel Thompson Acked-by: Pavel Machek Signed-off-by: Lee Jones commit 32fcb75c66a0cb66db9ec4f777f864675e5aebb2 Author: Brian Masney Date: Wed Apr 24 05:25:04 2019 -0400 dt-bindings: backlight: Add lm3630a bindings Add new backlight bindings for the TI LM3630A dual-string white LED. Signed-off-by: Brian Masney Reviewed-by: Rob Herring Acked-by: Pavel Machek Acked-by: Daniel Thompson Signed-off-by: Lee Jones commit d3f48ec0954c6aac736ab21c34a35d7554409112 Author: Brian Masney Date: Wed Apr 24 05:25:03 2019 -0400 backlight: lm3630a: Return 0 on success in update_status functions lm3630a_bank_a_update_status() and lm3630a_bank_b_update_status() both return the brightness value if the brightness was successfully updated. Writing to these attributes via sysfs would cause a 'Bad address' error to be returned. These functions should return 0 on success, so let's change it to correct that error. Fixes: 28e64a68a2ef ("backlight: lm3630: apply chip revision") Signed-off-by: Brian Masney Acked-by: Pavel Machek Acked-by: Daniel Thompson Signed-off-by: Lee Jones commit bc32286cab55ba92bbc0017a60c18fe6475a93cb Author: Alexander Shiyan Date: Thu Jan 17 16:33:36 2019 +0300 video: lcd: Remove useless BACKLIGHT_CLASS_DEVICE dependencies This patch removes dependencies on BACKLIGHT_CLASS_DEVICE for items that are already placed under 'if BACKLIGHT_CLASS_DEVICE'. Signed-off-by: Alexander Shiyan Acked-by: Bartlomiej Zolnierkiewicz Acked-by: Daniel Thompson Signed-off-by: Lee Jones commit ed835136ee679dc528333c454ca4d1543c5aab76 Author: Kefeng Wang Date: Thu May 9 22:23:39 2019 +0800 mfd: Use dev_get_drvdata() directly Using dev_get_drvdata directly. Signed-off-by: Kefeng Wang Signed-off-by: Lee Jones commit 4f8f2bb7ab032150ba94cf60ea5aaf3e3ac3d2ca Author: Enric Balletbo i Serra Date: Wed May 8 11:19:56 2019 +0200 mfd: cros_ec: Instantiate properly CrOS Touchpad MCU device Support Touchpad MCU as a special of CrOS EC devices. The current Touchpad MCU is used on Eve Chromebook and used the same protocol as other CrOS EC devices. When a MCU has touchpad support (aka EC_FEATURE_TOUCHPAD), it is instantiated as a special CrOS EC device with device name 'cros_tp'. So regardless of the probing order between the actual cros_ec and cros_tp, the userspace and other kernel drivers should not confuse them. Signed-off-by: Wei-Ning Huang Signed-off-by: Enric Balletbo i Serra Signed-off-by: Lee Jones commit 90486af5e0f7334091b94264a84713611933e97e Author: Enric Balletbo i Serra Date: Wed May 8 11:19:55 2019 +0200 mfd: cros_ec: Instantiate properly CrOS FP MCU device Support Fingerprint MCU as a special of CrOS EC devices. The current FP MCU uses the same EC SPI protocol v3 as other CrOS EC devices on a SPI bus. When a MCU has fingerprint support (aka EC_FEATURE_FINGERPRINT), it is instantiated as a special CrOS EC device with device name 'cros_fp'. So regardless of the probing order between the actual cros_ec and cros_fp, the userspace and other kernel drivers should not confuse them. Signed-off-by: Vincent Palatin Signed-off-by: Enric Balletbo i Serra Signed-off-by: Lee Jones commit 93abf68b6bcb50481d84db41e4d7e7e143f24757 Author: Enric Balletbo i Serra Date: Wed May 8 11:19:54 2019 +0200 mfd: cros_ec: Update the EC feature codes Update the feature enum for the Chromebook Embedded Controller to the latest version. Some of these enums are still not used in the kernel but we might be also interested on have these enums up to date. Userspace can use them to query the features to the EC via the cros-ec character device. While here, also fix a typo in one comment in the enum. Signed-off-by: Enric Balletbo i Serra Signed-off-by: Lee Jones commit dd6629073a97e5ee125eacbd22eea62281891c67 Author: Andy Shevchenko Date: Tue Apr 30 19:56:26 2019 +0300 mfd: intel-lpss: Add Intel Comet Lake PCI IDs Intel Comet Lake has the same LPSS than Intel Cannon Lake. Add the new IDs to the list of supported devices. Signed-off-by: Andy Shevchenko Reviewed-by: Jarkko Nikula Tested-by: Evan Green Signed-off-by: Lee Jones commit c273e63129b1ee754ecd9f2b85cc1446a7b1816e Author: Charles Keepax Date: Wed May 1 11:23:50 2019 +0100 mfd: lochnagar: Add links to binding docs for sound and hwmon Lochnagar is an evaluation and development board for Cirrus Logic Smart CODEC and Amp devices. It allows the connection of most Cirrus Logic devices on mini-cards, as well as allowing connection of various application processor systems to provide a full evaluation platform. This driver supports the board controller chip on the Lochnagar board. Add links to the binding documents for the new sound and hardware monitor parts of the driver. Signed-off-by: Charles Keepax Signed-off-by: Lee Jones commit 38a3227151f6377b0b7622fd6117875a43320846 Author: Jonathan Neuschäfer Date: Tue Apr 30 17:17:26 2019 +0200 mfd: ab8500-debugfs: Fix a typo ("deubgfs") "debugfs" was misspelled. Signed-off-by: Jonathan Neuschäfer Signed-off-by: Lee Jones commit 13d72945323c33680433bc92ffe1465a59599993 Author: S.j. Wang Date: Sun Apr 28 09:52:48 2019 +0000 mfd: imx6sx: Add MQS register definition for iomuxc gpr Add macros to define masks and bits for imx6sx MQS registers Signed-off-by: Shengjiu Wang Signed-off-by: Lee Jones commit a2a0c4ef4e560061b2ec226924a3e2d8652c89b1 Author: Dan Murphy Date: Fri Apr 5 09:19:07 2019 -0500 dt-bindings: mfd: LMU: Fix lm3632 dt binding example Fix the lm3632 dt binding examples as the LCM enable GPIOs are defined as enable GPIOs per the regulator/lm363x-regulator.txt bindings document. Signed-off-by: Dan Murphy Reviewed-by: Rob Herring Signed-off-by: Lee Jones commit a9bf6aa699568fb4ab7c0fc8c713c27fef155ed3 Author: Su Bao Cheng Date: Thu Apr 18 11:14:59 2019 +0200 mfd: intel_quark_i2c_gpio: Adjust IOT2000 matching Since there are more IOT2040 variants with identical hardware but different asset tags, the asset tag matching should be adjusted to support them. For the board name "SIMATIC IOT2000", currently there are 2 types of hardware, IOT2020 and IOT2040. Both are identical regarding the intel_quark_i2c_gpio. In the future there will be no other devices with the "SIMATIC IOT2000" DMI board name but different hardware. So remove the asset tag matching from this driver. Signed-off-by: Su Bao Cheng Reviewed-by: Jan Kiszka Acked-by: Andy Shevchenko Signed-off-by: Lee Jones commit 6b4814a9451add06d457e198be418bf6a3e6a990 Author: Steve Twiss Date: Fri Apr 26 14:33:35 2019 +0100 mfd: da9063: Fix OTP control register names to match datasheets for DA9063/63L Mismatch between what is found in the Datasheets for DA9063 and DA9063L provided by Dialog Semiconductor, and the register names provided in the MFD registers file. The changes are for the OTP (one-time-programming) control registers. The two naming errors are OPT instead of OTP, and COUNT instead of CONT (i.e. control). Cc: Stable Signed-off-by: Steve Twiss Signed-off-by: Lee Jones commit 9e364e87ad7f2c636276c773d718cda29d62b741 Author: Daniel Gomez Date: Mon Apr 22 21:09:50 2019 +0200 mfd: tps65912-spi: Add missing of table registration MODULE_DEVICE_TABLE(of, should be called to complete DT OF mathing mechanism and register it. Before this patch: modinfo drivers/mfd/tps65912-spi.ko | grep alias alias: spi:tps65912 After this patch: modinfo drivers/mfd/tps65912-spi.ko | grep alias alias: of:N*T*Cti,tps65912C* alias: of:N*T*Cti,tps65912 alias: spi:tps65912 Reported-by: Javier Martinez Canillas Signed-off-by: Daniel Gomez Signed-off-by: Lee Jones commit e7037d75ac486ef6b3e9852b45293c6769be6802 Author: Chen-Yu Tsai Date: Fri Apr 19 00:18:02 2019 +0800 mfd: axp20x: Add USB power supply mfd cell to AXP803 The AXP803 has a VBUS power input. Its functionality is the same as the one found in the AXP813. Now that the axp20x_usb_power driver supports this variant, we can add an mfd cell for it to use it. Signed-off-by: Chen-Yu Tsai Signed-off-by: Lee Jones commit 8ca6ff16de55085e600c75afc946862a46472127 Author: Arnd Bergmann Date: Tue Apr 16 14:24:59 2019 +0200 mfd: sun6i-prcm: Fix build warning for non-OF configurations When CONFIG_OF is disabled, we get a harmless warning about an unused variable: drivers/mfd/sun6i-prcm.c: In function 'sun6i_prcm_probe': drivers/mfd/sun6i-prcm.c:151:22: error: unused variable 'np' [-Werror=unused-variable] Remove the variable and open-code the value in the only place it is used, so it can get left out as well without CONFIG_OF. Fixes: a05a2e7998ab ("mfd: sun6i-prcm: Allow to compile with COMPILE_TEST") Signed-off-by: Arnd Bergmann Acked-by: Maxime Ripard Signed-off-by: Lee Jones commit dad06532292d77f37fbe831a02948a593500f682 Author: Binbin Wu Date: Mon Apr 8 16:09:10 2019 +0800 mfd: intel-lpss: Set the device in reset state when init In virtualized setup, when system reboots due to warm reset interrupt storm is seen. Call Trace: dump_stack+0x70/0xa5 __report_bad_irq+0x2e/0xc0 note_interrupt+0x248/0x290 ? add_interrupt_randomness+0x30/0x220 handle_irq_event_percpu+0x54/0x80 handle_irq_event+0x39/0x60 handle_fasteoi_irq+0x91/0x150 handle_irq+0x108/0x180 do_IRQ+0x52/0xf0 common_interrupt+0xf/0xf RIP: 0033:0x76fc2cfabc1d Code: 24 28 bf 03 00 00 00 31 c0 48 8d 35 63 77 0e 00 48 8d 15 2e 94 0e 00 4c 89 f9 49 89 d9 4c 89 d3 e8 b8 e2 01 00 48 8b 54 24 18 <48> 89 ef 48 89 de 4c 89 e1 e8 d5 97 01 00 84 c0 74 2d 48 8b 04 24 RSP: 002b:00007ffd247c1fc0 EFLAGS: 00000293 ORIG_RAX: ffffffffffffffda RAX: 0000000000000000 RBX: 00007ffd247c1ff0 RCX: 000000000003d3ce RDX: 0000000000000000 RSI: 00007ffd247c1ff0 RDI: 000076fc2cbb6010 RBP: 000076fc2cded010 R08: 00007ffd247c2210 R09: 00007ffd247c22a0 R10: 000076fc29465470 R11: 0000000000000000 R12: 00007ffd247c1fc0 R13: 000076fc2ce8e470 R14: 000076fc27ec9960 R15: 0000000000000414 handlers: [<000000000d3fa913>] idma64_irq Disabling IRQ #27 To avoid interrupt storm, set the device in reset state before bringing out the device from reset state. Changelog v2: - correct the subject line by adding "mfd: " Signed-off-by: Binbin Wu Acked-by: Mika Westerberg Reviewed-by: Andy Shevchenko Signed-off-by: Lee Jones commit 7235560ac77a2516b84b86946debaa4fb951ed9b Author: Evan Green Date: Wed Apr 3 14:34:28 2019 -0700 platform/chrome: Add support for v1 of host sleep event Add support in code for the new forms of the host sleep event. Detects the presence of this version of the command at runtime, and use whichever form the EC supports. At this time, always request the default timeout, and only report the failing response via a WARN_ONCE(). Future versions could accept the sleep parameter from outside the driver, and return the response information to usermode or elsewhere. Signed-off-by: Evan Green Reviewed-by: Rajat Jain Reviewed-by: Guenter Roeck Acked-by: Enric Balletbo i Serra Signed-off-by: Lee Jones commit afe2bb5c4b6227a347be60c70df2890c3f57553d Author: Evan Green Date: Wed Apr 3 14:34:27 2019 -0700 mfd: cros_ec: Add host_sleep_event_v1 command Introduce the command and response structures for the second revision of the host sleep event. These structures are part of a new EC change that enables detection of failure to enter S0ix. The EC waits a kernel-specified timeout (or a default amount of time) for the S0_SLP pin to change, and wakes the system if that change does not occur in time. Signed-off-by: Evan Green Reviewed-by: Rajat Jain Reviewed-by: Guenter Roeck Acked-by: Enric Balletbo i Serra Signed-off-by: Lee Jones commit 49a65e3c276c5ddc7d310257732bf9972ab64351 Author: Enric Balletbo i Serra Date: Wed Apr 3 16:05:29 2019 +0200 mfd: cros_ec: Instantiate the CrOS USB PD logger driver Add the cros-usbpd-logger driver for logging event data for the USB PD charger available in the Embedded Controller on ChromeOS systems. The logging feature is logically separate functionality from charge manager, hence is instantiated as a different driver. Signed-off-by: Enric Balletbo i Serra Reviewed-by: Guenetr Roeck Signed-off-by: Lee Jones commit 178bc6b87ac45bc10c29855379b24eb0bdcd1d64 Author: Ajit Pandey Date: Wed Apr 3 10:59:17 2019 +0100 mfd: cs47l90: Make DAC_AEC_CONTROL_2 readable There is a second AEC loopback on cs47l90 so the registers for it should be readable. Signed-off-by: Ajit Pandey Signed-off-by: Charles Keepax Signed-off-by: Lee Jones commit 801f0da9b7358b3e4f2e405210ce82351d9a36ea Author: Richard Fitzgerald Date: Wed Apr 3 10:59:16 2019 +0100 mfd: cs47l35: Make DAC_AEC_CONTROL_2 readable There is a second AEC loopback on cs47l35 so the registers for it should be readable. Signed-off-by: Richard Fitzgerald Signed-off-by: Charles Keepax Signed-off-by: Lee Jones commit 993c0ba7e410bb7fc62d3dc89c842a7a9d031384 Author: Tudor Ambarus Date: Wed Feb 13 09:00:11 2019 +0000 mfd: syscon: atmel: Switch to SPDX license identifiers Adopt the SPDX license identifiers to ease license compliance management. Signed-off-by: Tudor Ambarus Signed-off-by: Lee Jones commit c6b9605f5eae5b6e3d8a7630759b56301fd5bed1 Author: Wolfram Sang Date: Mon Mar 18 16:47:55 2019 +0100 mfd: da9063: Remove platform_data support There are no in-kernel users anymore, so remove this outdated interface. Signed-off-by: Wolfram Sang Acked-by: Steve Twiss Tested-by: Steve Twiss Reviewed-by: Simon Horman Signed-off-by: Lee Jones commit 9efbc6f175c017324befce493d2962109a216552 Author: Wolfram Sang Date: Mon Mar 18 16:57:24 2019 +0100 mfd: da9063: Convert headers to SPDX Covnert the headers of the source and include files to SPDX. And fix some typos in the descriptions ("interrupt" instead of "I2C"). Signed-off-by: Wolfram Sang Acked-by: Steve Twiss Reviewed-by: Simon Horman Signed-off-by: Lee Jones commit 4f799e47adb35e1e0e7a598eb856f3ac6c18b4aa Author: Maxime Ripard Date: Mon Mar 18 13:55:48 2019 +0100 mfd: axp20x: Allow the AXP223 to be probed by I2C The AXP223 can be used both using the RSB proprietary bus, or a more traditional I2C bus. The RSB is a faster bus and provides more features (like some integrity checks on the messages), so it's usually preferrable to use it, but since it's proprietary, when we want to use the PMIC in a multi-master setup, the i2c might make sense as well. Let's add that possibility. Signed-off-by: Maxime Ripard Acked-by: Chen-Yu Tsai Signed-off-by: Lee Jones commit 54349b3ce82e3369a7c7b2960f19c1bea876c5fb Author: Tony Xie Date: Wed Jan 2 05:19:57 2019 -0500 mfd: rk808: Remove the id_table Remove the id_table because it's not used. Signed-off-by: Tony Xie Signed-off-by: Lee Jones commit d4cee9509e508df34d1dbfad6b42e5bf907d20fd Author: Rushikesh S Kadam Date: Fri Mar 1 13:50:54 2019 +0530 mfd: cros_ec: Instantiate properly CrOS ISH MCU device Integrated Sensor Hub (ISH) is also a MCU running EC having feature bit EC_FEATURE_ISH. Instantiate it as a special CrOS EC device with device name 'cros_ish'. Signed-off-by: Rushikesh S Kadam Reviewed-by: Andy Shevchenko Acked-by: Enric Balletbo i Serra Reviewed-by: Gwendal Grignou Signed-off-by: Lee Jones commit 730080a758fdc44fbfc214dd004553ef13d5b89b Author: Claudiu Beznea Date: Tue Mar 5 10:07:47 2019 +0000 dt-bindings: mfd: Add bindings for SAM9X60 HLCD controller Add new compatible string for the HLCD controller on SAM9X60 SoC. Signed-off-by: Claudiu Beznea Signed-off-by: Lee Jones commit 1e8c15856131af3cc6724f1cff3c336cf8c690b6 Author: Claudiu Beznea Date: Tue Mar 5 10:07:52 2019 +0000 mfd: atmel-hlcdc: Add compatible for SAM9X60 HLCD controller Add compatible for SAM9X60 HLCD controller. Signed-off-by: Claudiu Beznea Signed-off-by: Lee Jones commit 2cd0ee3b1dcda828d307c374a5cfb83f476bae23 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 14:18:20 2019 +0100 mfd: Kconfig: Pedantic formatting Formatting of Kconfig files doesn't look so pretty, so let the Great White Handkerchief come around and clean it up. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Lee Jones commit 129fc67785fbcf7d059757b27182ca4e3a089a80 Author: Quentin Schulz Date: Thu Mar 21 16:48:48 2019 +0800 mfd: axp20x: Add USB power supply mfd cell to AXP813 The AXP813 has a VBUS power input. Now that the axp20x_usb_power driver supports this variant, we can add an mfd cell for it to use it. Signed-off-by: Quentin Schulz [wens@csie.org: add commit message] Signed-off-by: Chen-Yu Tsai Signed-off-by: Lee Jones commit 48171d0ea7caccf21c9ee3ae75eb370f2a756062 Author: Tony Lindgren Date: Thu Feb 14 08:03:45 2019 -0800 mfd: twl6040: Fix device init errors for ACCCTL register I noticed that we can get a -EREMOTEIO errors on at least omap4 duovero: twl6040 0-004b: Failed to write 2d = 19: -121 And then any following register access will produce errors. There 2d offset above is register ACCCTL that gets written on twl6040 powerup. With error checking added to the related regcache_sync() call, the -EREMOTEIO error is reproducable on twl6040 powerup at least duovero. To fix the error, we need to wait until twl6040 is accessible after the powerup. Based on tests on omap4 duovero, we need to wait over 8ms after powerup before register write will complete without failures. Let's also make sure we warn about possible errors too. Note that we have twl6040_patch[] reg_sequence with the ACCCTL register configuration and regcache_sync() will write the new value to ACCCTL. Signed-off-by: Tony Lindgren Acked-by: Peter Ujfalusi Signed-off-by: Lee Jones commit a00406b71c5f08f2bd8171bc43331f0726f9bdae Author: Fabrice Gasnier Date: Wed Dec 12 09:48:14 2018 +0100 mfd: syscon: Add optional clock support Some system control registers need to be clocked, so the registers can be accessed. Add an optional clock and attach it to regmap. Signed-off-by: Fabrice Gasnier Acked-by: Arnd Bergmann Signed-off-by: Lee Jones commit c6ba08819b6a8a94dfb4b0fec7d7b501a6f24aee Author: Fabrice Gasnier Date: Wed Dec 12 09:48:13 2018 +0100 dt-bindings: stm32: syscon: Add clock support STM32 system configuration controller registers needs to be clocked. Document clock support on stm32-syscon. Signed-off-by: Fabrice Gasnier Reviewed-by: Rob Herring Signed-off-by: Lee Jones commit ec85d4a10e355db0a2b4f2176396b2246e01818b Author: Stuart Menefy Date: Wed Feb 13 22:24:02 2019 +0000 mfd: sec: Add support for the RTC on S2MPA01 The RTC portion of the S2MPA01 appears to have the same register layout as the S2MPS14. Signed-off-by: Stuart Menefy Reviewed-by: Krzysztof Kozlowski Signed-off-by: Lee Jones commit f01faec6256c9ad2fb89b1c8ab8a765f57657c56 Author: Stuart Menefy Date: Wed Feb 13 22:24:01 2019 +0000 mfd: sec: Put one element structure initialisation on one line Change the layout of the initialisation of structures with one element to a single line of code. This keeps the coding style consistent. Signed-off-by: Stuart Menefy Signed-off-by: Lee Jones commit 236c765d6abc80e4aac148eeaa6501c0ff43d18a Author: Yauhen Kharuzhy Date: Tue Feb 12 23:59:01 2019 +0300 mfd: intel_soc_pmic_chtwc: Register LED child device Add MFD cell for LEDs driver to the Intel Cherry Trail Whiskey Cove PMIC mfd device driver. Signed-off-by: Yauhen Kharuzhy Signed-off-by: Lee Jones commit 60a7a9a2493a10b408c00eb323fc479a3a292c17 Merge: bc1b8492c764 8f4ebe9b331e 796fad0101d3 d17ed797b8fd 744b13107d0d Author: Lee Jones Date: Tue May 14 08:09:23 2019 +0100 Merge branches 'ib-mfd-arm-leds-5.2', 'ib-mfd-gpio-input-leds-power-5.2', 'ib-mfd-pinctrl-5.2-2' and 'ib-mfd-regulator-5.2', tag 'ib-mfd-arm-net-5.2' into ibs-for-mfd-merged Immutable branch between MFD, ARM and Net due for the 5.2 merge window commit c7a286577d7592720c2f179aadfb325a1ff48c95 Author: Stephane Eranian Date: Mon May 13 17:34:00 2019 -0700 perf/x86/intel: Allow PEBS multi-entry in watermark mode This patch fixes a restriction/bug introduced by: 583feb08e7f7 ("perf/x86/intel: Fix handling of wakeup_events for multi-entry PEBS") The original patch prevented using multi-entry PEBS when wakeup_events != 0. However given that wakeup_events is part of a union with wakeup_watermark, it means that in watermark mode, PEBS multi-entry is also disabled which is not the intent. This patch fixes this by checking is watermark mode is enabled. Signed-off-by: Stephane Eranian Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: jolsa@redhat.com Cc: kan.liang@intel.com Cc: vincent.weaver@maine.edu Fixes: 583feb08e7f7 ("perf/x86/intel: Fix handling of wakeup_events for multi-entry PEBS") Link: http://lkml.kernel.org/r/20190514003400.224340-1-eranian@google.com Signed-off-by: Ingo Molnar commit c4a52d669690423ee3c99d8eda1e69cd0821fcad Author: Peteris Rudzusiks Date: Sat May 11 19:08:31 2019 +0200 drm/nouveau: fix duplication of nv50_head_atom struct nv50_head_atomic_duplicate_state() makes a copy of nv50_head_atom struct. This patch adds copying of struct member named "or", which previously was left uninitialized in the duplicated structure. Due to this bug, incorrect nhsync and nvsync values were sometimes used. In my particular case, that lead to a mismatch between the output resolution of the graphics device (GeForce GT 630 OEM) and the reported input signal resolution on the display. xrandr reported 1680x1050, but the display reported 1280x1024. As a result of this mismatch, the output on the display looked like it was cropped (only part of the output was actually visible on the display). git bisect pointed to commit 2ca7fb5c1cc6 ("drm/nouveau/kms/nv50: handle SetControlOutputResource from head"), which added the member "or" to nv50_head_atom structure, but forgot to copy it in nv50_head_atomic_duplicate_state(). Fixes: 2ca7fb5c1cc6 ("drm/nouveau/kms/nv50: handle SetControlOutputResource from head") Signed-off-by: Peteris Rudzusiks Signed-off-by: Ben Skeggs commit 13d03e9daf70dab032c03dc172e75bb98ad899c4 Author: Ben Skeggs Date: Fri May 10 11:57:04 2019 +1000 drm/nouveau/disp/dp: respect sink limits when selecting failsafe link configuration Where possible, we want the failsafe link configuration (one which won't hang the OR during modeset because of not enough bandwidth for the mode) to also be supported by the sink. This prevents "link rate unsupported by sink" messages when link training fails. Signed-off-by: Ben Skeggs commit e15b682aad77f158e4af51d258ed7398036fdf8d Author: Ben Skeggs Date: Thu May 9 15:01:26 2019 +1000 drm/nouveau/core: initial support for boards with TU117 chipset Modesetting only, still waiting on ACR/GR firmware from NVIDIA for Turing graphics/compute bring-up. Each subsystem was compared with traces, along with various tests to check that things generally work as they should, and appears compatible enough with the current TU106 code to enable support. Signed-off-by: Ben Skeggs commit a2ac09a03d2a0306eb584192b2a5d6c2aeb265ad Author: Ben Skeggs Date: Thu May 9 16:48:50 2019 +1000 drm/nouveau/core: allow detected chipset to be overridden Signed-off-by: Ben Skeggs commit a0b694d0af21c9993d1a39a75fd814bd48bf7eb4 Author: Ben Skeggs Date: Wed May 8 14:54:34 2019 +1000 drm/nouveau/kms/gf119-gp10x: push HeadSetControlOutputResource() mthd when encoders change HW has error checks in place which check that pixel depth is explicitly provided on DP, while HDMI has a "default" setting that we use. In multi-display configurations with identical modelines, but different protocols (HDMI + DP, in this case), it was possible for the DP head to get swapped to the head which previously drove the HDMI output, without updating HeadSetControlOutputResource(), triggering the error check and hanging the core update. Reported-by: Lyude Paul Signed-off-by: Ben Skeggs commit e4702c01b7b12c0d069058ed2a3eb75edb054556 Author: Ben Skeggs Date: Fri May 3 12:57:36 2019 +1000 drm/nouveau/kms/nv50-: fix bug preventing non-vsync'd page flips Accidentally introduced during Volta bring-up. Signed-off-by: Ben Skeggs commit d2434e4d942c32cadcbdbcd32c58f35098f3b604 Author: Ben Skeggs Date: Fri May 3 12:23:55 2019 +1000 drm/nouveau/kms/gv100-: fix spurious window immediate interlocks Cursor position updates were accidentally causing us to attempt to interlock window with window immediate, and without a matching window immediate update, NVDisplay could hang forever in some circumstances. Fixes suspend/resume on (at least) Quadro RTX4000 (TU104). Reported-by: Lyude Paul Signed-off-by: Ben Skeggs commit 582a0c4194a528d435bf0d638605c05c755d41df Author: Amit Kucheria Date: Wed Mar 20 18:47:49 2019 +0530 drivers: thermal: tsens: Merge tsens-8974 into tsens-v0_1 8974 and 8916 have the same version of the TSENS IP. Merge the files to allow for better code reuse. Signed-off-by: Amit Kucheria Signed-off-by: Eduardo Valentin commit 774ccb08194754817f7bb6131dfa2a3842fe00aa Author: Amit Kucheria Date: Wed Mar 20 18:47:48 2019 +0530 drivers: thermal: tsens: Rename constants to prepare to merge with tsens-8974 Some #defines in tsens-v_0_1.c clash with those in tsens-8974.c. Prefix them with 8916 to avoid the clash so we can merge the two files. Signed-off-by: Amit Kucheria Signed-off-by: Eduardo Valentin commit 2be20763031bcd15b4908afda931a99ecfc1417c Author: Amit Kucheria Date: Wed Mar 20 18:47:47 2019 +0530 drivers: thermal: tsens: Rename tsens-8916 to prepare to merge with tsens-8974 8916 and 8974 use v0.1.0 of the TSENS IP. Rename tsens-8916 to prepare it for merging with tsens-8974 in a later commit. Signed-off-by: Amit Kucheria Signed-off-by: Eduardo Valentin commit 68b3314d7c77b52f67a912e1a37096ca672978da Author: Amit Kucheria Date: Wed Mar 20 18:47:46 2019 +0530 drivers: thermal: tsens: Function prototypes should have argument names check_patch complains a lot as follows: WARNING: function definition argument 'struct tsens_priv *' should also have an identifier name + int (*init)(struct tsens_priv *); Fix it. Signed-off-by: Amit Kucheria Signed-off-by: Eduardo Valentin commit 2cbcd2eab01b28148ebc21c1821a7f8187a923f4 Author: Amit Kucheria Date: Wed Mar 20 18:47:45 2019 +0530 drivers: thermal: tsens: Use consistent names for variables tsens_get_temp() uses the name 'data' for the void pointer, use the same in tsens_get_trend() for consistency. Remove a stray space while we're at it. Signed-off-by: Amit Kucheria Signed-off-by: Eduardo Valentin commit 69b628ac71f07d667d09393d1f597f543ccd5240 Author: Amit Kucheria Date: Wed Mar 20 18:47:44 2019 +0530 drivers: thermal: tsens: Rename variable tmdev tmdev seems to imply that this is a device pointer when in fact it is just private platform data for each tsens device. Rename it to priv improve code readability. Signed-off-by: Amit Kucheria Signed-off-by: Eduardo Valentin commit 24ae447291bb4bdb860a88f55184cf92632a7a36 Author: Amit Kucheria Date: Wed Mar 20 18:47:43 2019 +0530 drivers: thermal: tsens: Rename tsens_device Rename to tsens_priv to denote that it is private data for each tsens instance. Signed-off-by: Amit Kucheria Signed-off-by: Eduardo Valentin commit 3c040ce087a2e841998804c077aa72818f004d1e Author: Amit Kucheria Date: Wed Mar 20 18:47:42 2019 +0530 drivers: thermal: tsens: Rename tsens_data Rename to tsens_plat_data to denote that it is platform-data passed in at compile-time. Signed-off-by: Amit Kucheria Signed-off-by: Eduardo Valentin commit 20a7a2db19dfaec4518c60d51e612d961d68a5f6 Author: Amit Kucheria Date: Wed Mar 20 18:47:41 2019 +0530 drivers: thermal: tsens: Document the data structures Describe how the TSENS device and the various sensors connected to it are described in the driver Signed-off-by: Amit Kucheria Signed-off-by: Eduardo Valentin commit df535485bb74aa4bb25f2715d776ccea807a7809 Author: Wolfram Sang Date: Tue Mar 19 17:36:35 2019 +0100 thermal: stm32: simplify getting .driver_data We should get 'driver_data' from 'struct device' directly. Going via platform_device is an unneeded step back and forth. Signed-off-by: Wolfram Sang Reviewed-by: Simon Horman Reviewed-by: Daniel Lezcano Signed-off-by: Eduardo Valentin commit 0f54aa5cafbe8434e2938c1cc64ac2e4fe60f0c0 Author: Enrico Weigelt, metux IT consult Date: Wed Mar 6 23:05:24 2019 +0100 drivers: thermal: Kconfig: pedantic cleanups Formatting of Kconfig files doesn't look so pretty, so just take damp cloth and clean it up. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Eduardo Valentin commit 7ffd87c63d36b28109c0d7898a1f44fea7d9dac8 Author: Yangtao Li Date: Sun Feb 24 02:10:58 2019 -0500 of: thermal: Improve print information Define pr_fmt macro to add a prefix to the message, this can make the thermal log better recognized. Before: [ 0.602672] nfc: nfc_init: NFC Core ver 0.1 [ 0.602828] NET: Registered protocol family 39 [ 0.603435] clocksource: Switched to clocksource mct-frc [ 0.746216] failed to build thermal zone cpu-thermal: -22 [ 0.746451] NET: Registered protocol family 2 After: [ 0.602804] NET: Registered protocol family 39 [ 0.603463] clocksource: Switched to clocksource mct-frc [ 0.746309] thermal_sys: failed to build thermal zone cpu-thermal: -22 [ 0.746545] NET: Registered protocol family 2 Signed-off-by: Yangtao Li Signed-off-by: Eduardo Valentin commit 1dcc242c7c75897bf0dfbcd1f563b7ab71cb4bb4 Author: Wei Ni Date: Thu Feb 21 18:18:47 2019 +0800 thermal: tegra: enable OC hw throttle Parse Over Current settings from DT and program them to generate interrupts. Also enable hw throttling whenever there are OC events. Log the OC events as debug messages. Signed-off-by: Wei Ni Signed-off-by: Eduardo Valentin commit 8d3d462b684a064a45e68b64d40e9937966802d9 Author: Wei Ni Date: Thu Feb 21 18:18:46 2019 +0800 of: Add bindings of OC hw throttle for Tegra soctherm Add OC HW throttle configuration for soctherm in DT. It is used to describe the OCx throttle events. Signed-off-by: Wei Ni Signed-off-by: Eduardo Valentin commit 4a04beb1bf2ef75945f293bb65ac46f41e818497 Author: Wei Ni Date: Thu Feb 21 18:18:44 2019 +0800 thermal: tegra: add support for EDP IRQ Add support to generate OC (over-current) interrupts to indicate the OC event and print out alarm messages. Signed-off-by: Wei Ni Signed-off-by: Eduardo Valentin commit 5c9d6ac23170e672101bce965a8180af24c40adb Author: Wei Ni Date: Thu Feb 21 18:18:43 2019 +0800 thermal: tegra: add set_trips functionality Implement set_trips ops to set passive trip points. Signed-off-by: Wei Ni Signed-off-by: Eduardo Valentin commit d7180be0d580ffc721da873dfa006680a9f14e63 Author: Wei Ni Date: Thu Feb 21 18:18:42 2019 +0800 thermal: tegra: add support for thermal IRQ Support to generate an interrupt when the temperature crosses a programmed threshold and notify the thermal framework. Signed-off-by: Wei Ni Signed-off-by: Eduardo Valentin commit 6ca29b7e824c758bc29968e5153f39eb56a265fc Author: Wei Ni Date: Thu Feb 21 18:18:40 2019 +0800 thermal: tegra: add support for gpu hw-throttle Add support to trigger pulse skippers on the GPU when a HOT trip point is triggered. The pulse skippers can be signalled to throttle at low, medium and high depths\levels. Signed-off-by: Wei Ni Signed-off-by: Eduardo Valentin commit 7d8ac6b282ad4a2914f480ab80bf81dd5b77038c Author: Wei Ni Date: Thu Feb 21 18:18:39 2019 +0800 of: Add bindings of gpu hw throttle for Tegra soctherm Add "nvidia,gpu-throt-level" property to set gpu hw throttle level. Signed-off-by: Wei Ni Signed-off-by: Eduardo Valentin commit 2510aa56ab8795e541386c4f662d40c6c4e98ba9 Author: Wei Ni Date: Thu Feb 21 18:18:37 2019 +0800 thermal: tegra: support hw and sw shutdown Currently the critical trip points in thermal framework are the only way to specify a temperature at which HW should shutdown. This is insufficient for certain platforms which would want an orderly software shutdown in addition to HW shutdown. This change support to parse "nvidia, thermtrips" property, it allows soctherm DT to specify thermtrip temperatures so that critical trip points framework can be used for doing software shutdown. Signed-off-by: Wei Ni Signed-off-by: Eduardo Valentin commit 9967a1bc8122e50cb2bb330b41bd982392314375 Author: Wei Ni Date: Thu Feb 21 18:18:36 2019 +0800 of: Add bindings of thermtrip for Tegra soctherm Add optional property "nvidia,thermtrips". If present, these trips will be used as HW shutdown trips, and critical trips will be used as SW shutdown trips. Signed-off-by: Wei Ni Signed-off-by: Eduardo Valentin commit 4894fbcce856635c9ab79f44e50826e86bb92110 Author: Cédric Le Goater Date: Thu May 9 14:33:44 2019 +0200 KVM: PPC: Book3S: Remove useless checks in 'release' method of KVM device There is no need to test for the device pointer validity when releasing a KVM device. The file descriptor should identify it safely. Fixes: 2bde9b3ec8bd ("KVM: Introduce a 'release' method for KVM devices") Signed-off-by: Cédric Le Goater Reviewed-by: Alexey Kardashevskiy Signed-off-by: Paul Mackerras commit 3f8cb76c80073912173406a3dd7670194c1a4003 Author: Colin Ian King Date: Thu May 2 11:23:13 2019 +0100 KVM: PPC: Book3S HV: XIVE: Fix spelling mistake "acessing" -> "accessing" There is a spelling mistake in a pr_err message, fix it. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Signed-off-by: Paul Mackerras commit 2eeeaf16aa6f30c349251da4a1b09be24d92411f Author: Paul Mackerras Date: Mon May 13 13:03:49 2019 +1000 KVM: PPC: Book3S HV: Make sure to load LPID for radix VCPUs Commit 70ea13f6e609 ("KVM: PPC: Book3S HV: Flush TLB on secondary radix threads", 2019-04-29) aimed to make radix guests that are using the real-mode entry path load the LPID register and flush the TLB in the same place where those things are done for HPT guests. However, it omitted to remove a branch which branches around that code for radix guests. The result is that with indep_thread_mode = N, radix guests don't run correctly. (With indep_threads_mode = Y, which is the default, radix guests use a different entry path.) This removes the offending branch, and also the load and compare that the branch depends on, since the cr7 setting is now unused. Reported-by: Suraj Jitindar Singh Tested-by: Suraj Jitindar Singh Fixes: 70ea13f6e609 ("KVM: PPC: Book3S HV: Flush TLB on secondary radix threads") Signed-off-by: Paul Mackerras commit 4d7ba8ce0fec6d5f364dc15786453d26fc0ccb65 Author: Parav Pandit Date: Mon May 13 08:26:57 2019 +0300 RDMA/core: Change system parameters callback from dumpit to doit .dumpit() callback is used for returning same type of data in the loop, e.g. loop over ports, resources, devices. However system parameters are general and standalone for whole subsystem. It means that getting system parameters should be doit callback. Fixes: cb7e0e130503 ("RDMA/core: Add interface to read device namespace sharing mode") Signed-off-by: Parav Pandit Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 641114d2af312d39ca9bbc2369d18a5823da51c6 Author: Jason Gunthorpe Date: Sun May 12 21:57:57 2019 -0300 RDMA: Directly cast the sockaddr union to sockaddr gcc 9 now does allocation size tracking and thinks that passing the member of a union and then accessing beyond that member's bounds is an overflow. Instead of using the union member, use the entire union with a cast to get to the sockaddr. gcc will now know that the memory extends the full size of the union. Signed-off-by: Jason Gunthorpe commit 69b9c52ca5c052b807a69712a9ee1d6f085bcb4f Author: James Smart Date: Mon May 6 17:26:50 2019 -0700 scsi: lpfc: Update lpfc version to 12.2.0.2 Due to the couple of bug fixes, update lpfc version to 12.2.0.2 Signed-off-by: Dick Kennedy Signed-off-by: James Smart Tested-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit c8cb261a072c88ca1aff0e804a30db4c7606521b Author: James Smart Date: Mon May 6 17:26:49 2019 -0700 scsi: lpfc: add check for loss of ndlp when sending RRQ There was a missing qualification of a valid ndlp structure when calling to send an RRQ for an abort. Add the check. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Tested-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit 79080d349f7f58a2e86c56043a3d04184d5f294a Author: James Smart Date: Mon May 6 17:26:48 2019 -0700 scsi: lpfc: correct rcu unlock issue in lpfc_nvme_info_show Many of the exit cases were not releasing the rcu read lock. Corrected the exit paths. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Tested-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit e2a8be5696e706a2fce6edd11e5c74ce14cffec0 Author: James Smart Date: Mon May 6 17:26:47 2019 -0700 scsi: lpfc: resolve lockdep warnings There were a number of erroneous comments and incorrect older lockdep checks that were causing a number of warnings. Resolve the following: - Inconsistent lock state warnings in lpfc_nvme_info_show(). - Fixed comments and code on sequences where ring lock is now held instead of hbalock. - Reworked calling sequences around lpfc_sli_iocbq_lookup(). Rather than locking prior to the routine and have routine guess on what lock, take the lock within the routine. The lockdep check becomes unnecessary. - Fixed comments and removed erroneous hbalock checks. Signed-off-by: Dick Kennedy Signed-off-by: James Smart CC: Bart Van Assche Tested-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit d0adee5d12752256ff0c87ad7f002f21fe49d618 Author: YueHaibing Date: Wed Apr 24 16:02:56 2019 +0800 scsi: qedi: remove set but not used variables 'cdev' and 'udev' Fixes gcc '-Wunused-but-set-variable' warning: drivers/scsi/qedi/qedi_iscsi.c: In function 'qedi_ep_connect': drivers/scsi/qedi/qedi_iscsi.c:813:23: warning: variable 'udev' set but not used [-Wunused-but-set-variable] drivers/scsi/qedi/qedi_iscsi.c:812:18: warning: variable 'cdev' set but not used [-Wunused-but-set-variable] These have never been used since introduction. Signed-off-by: YueHaibing Acked-by: Manish Rangankar Signed-off-by: Martin K. Petersen commit c09581a52765a85f19fc35340127396d5e3379cc Author: YueHaibing Date: Sat Apr 20 12:05:54 2019 +0800 scsi: qedi: remove memset/memcpy to nfunc and use func instead KASAN reports this: BUG: KASAN: global-out-of-bounds in qedi_dbg_err+0xda/0x330 [qedi] Read of size 31 at addr ffffffffc12b0ae0 by task syz-executor.0/2429 CPU: 0 PID: 2429 Comm: syz-executor.0 Not tainted 5.0.0-rc7+ #45 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0xfa/0x1ce lib/dump_stack.c:113 print_address_description+0x1c4/0x270 mm/kasan/report.c:187 kasan_report+0x149/0x18d mm/kasan/report.c:317 memcpy+0x1f/0x50 mm/kasan/common.c:130 qedi_dbg_err+0xda/0x330 [qedi] ? 0xffffffffc12d0000 qedi_init+0x118/0x1000 [qedi] ? 0xffffffffc12d0000 ? 0xffffffffc12d0000 ? 0xffffffffc12d0000 do_one_initcall+0xfa/0x5ca init/main.c:887 do_init_module+0x204/0x5f6 kernel/module.c:3460 load_module+0x66b2/0x8570 kernel/module.c:3808 __do_sys_finit_module+0x238/0x2a0 kernel/module.c:3902 do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x462e99 Code: f7 d8 64 89 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f2d57e55c58 EFLAGS: 00000246 ORIG_RAX: 0000000000000139 RAX: ffffffffffffffda RBX: 000000000073bfa0 RCX: 0000000000462e99 RDX: 0000000000000000 RSI: 00000000200003c0 RDI: 0000000000000003 RBP: 00007f2d57e55c70 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00007f2d57e566bc R13: 00000000004bcefb R14: 00000000006f7030 R15: 0000000000000004 The buggy address belongs to the variable: __func__.67584+0x0/0xffffffffffffd520 [qedi] Memory state around the buggy address: ffffffffc12b0980: fa fa fa fa 00 04 fa fa fa fa fa fa 00 00 05 fa ffffffffc12b0a00: fa fa fa fa 00 00 04 fa fa fa fa fa 00 05 fa fa > ffffffffc12b0a80: fa fa fa fa 00 06 fa fa fa fa fa fa 00 02 fa fa ^ ffffffffc12b0b00: fa fa fa fa 00 00 04 fa fa fa fa fa 00 00 03 fa ffffffffc12b0b80: fa fa fa fa 00 00 02 fa fa fa fa fa 00 00 04 fa Currently the qedi_dbg_* family of functions can overrun the end of the source string if it is less than the destination buffer length because of the use of a fixed sized memcpy. Remove the memset/memcpy calls to nfunc and just use func instead as it is always a null terminated string. Reported-by: Hulk Robot Fixes: ace7f46ba5fd ("scsi: qedi: Add QLogic FastLinQ offload iSCSI driver framework.") Signed-off-by: YueHaibing Reviewed-by: Dan Carpenter Signed-off-by: Martin K. Petersen commit 5386a4e6c7fecd282d265a24d930a74ba3c5917b Author: Quinn Tran Date: Mon May 6 13:52:19 2019 -0700 scsi: qla2xxx: Add cleanup for PCI EEH recovery During EEH error recovery testing it was discovered that driver's reset() callback partially frees resources used by driver, leaving some stale memory. After reset() is done and when resume() callback in driver uses old data which results into error leaving adapter disabled due to PCIe error. This patch does cleanup for EEH recovery code path and prevents adapter from getting disabled. Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani Reviewed-by: Ewan D. Milne Signed-off-by: Martin K. Petersen commit c7a1c2bbb65e25551d585fba0fd36a01e0a22690 Merge: f8587c80c62a 0d6076184aec Author: Bjorn Helgaas Date: Mon May 13 18:34:48 2019 -0500 Merge branch 'pci/trivial' - Cleanup PCI register definitions, typos, etc (Bjorn Helgaas) - Remove unnecessary use of user-space types in CPER (Bjorn Helgaas) - Cleanup setup-bus.c comments & whitespace (Nicholas Johnson) * pci/trivial: PCI: Cleanup setup-bus.c comments and whitespace CPER: Remove unnecessary use of user-space types CPER: Add UEFI spec references PCI: Fix comment typos PCI: Cleanup register definition width and whitespace # Conflicts: # drivers/pci/pci.c # drivers/pci/setup-bus.c commit f8587c80c62a65c004ee838275351814b52c428c Merge: 192415f49860 e07ca82a5fde Author: Bjorn Helgaas Date: Mon May 13 18:34:47 2019 -0500 Merge branch 'pci/printk-portdrv' - Change some desirable KERN_DEBUG messages to KERN_INFO/KERN_ERR (Frederick Lawler) - Log PCIe port service messages with pci_dev, not the pcie_device (Frederick Lawler) - Convert pciehp from pciehp_debug module parameter to generic dynamic debug (Frederick Lawler) * pci/printk-portdrv: PCI: pciehp: Remove pointless MY_NAME definition PCI: pciehp: Remove pointless PCIE_MODULE_NAME definition PCI: pciehp: Remove unused dbg/err/info/warn() wrappers PCI: pciehp: Log messages with pci_dev, not pcie_device PCI: pciehp: Replace pciehp_debug module param with dyndbg PCI: pciehp: Remove pciehp_debug uses PCI/AER: Log messages with pci_dev, not pcie_device PCI/DPC: Log messages with pci_dev, not pcie_device PCI/PME: Replace dev_printk(KERN_DEBUG) with dev_info() PCI/AER: Replace dev_printk(KERN_DEBUG) with dev_info() commit 192415f4986028db53fb76ebcefecf0d73cb900a Merge: f2e946831625 34c6b7105e5a Author: Bjorn Helgaas Date: Mon May 13 18:34:46 2019 -0500 Merge branch 'pci/printk' * pci/printk: PCI: Replace dev_printk(KERN_DEBUG) with dev_info(), etc PCI: Replace printk(KERN_INFO) with pr_info(), etc PCI: Use dev_printk() when possible commit f2e94683162565ff02d8d7386fadee175ab55e40 Merge: ee6df38da848 90199c951bd2 Author: Bjorn Helgaas Date: Mon May 13 18:34:45 2019 -0500 Merge branch 'pci/iova-dma-ranges' - Add list of legal DMA address ranges to PCI host bridge (Srinath Mannam) - Reserve inaccessible DMA ranges so IOMMU doesn't allocate them (Srinath Mannam) - Parse iProc DT dma-ranges to learn what PCI devices can reach via DMA (Srinath Mannam) * pci/iova-dma-ranges: PCI: iproc: Add sorted dma ranges resource entries to host bridge iommu/dma: Reserve IOVA for PCIe inaccessible DMA address PCI: Add dma_ranges window list # Conflicts: # drivers/pci/probe.c commit ee6df38da8485b143cc5eccee569ae3e238be10a Merge: ed0eaf320571 507b820009a4 Author: Bjorn Helgaas Date: Mon May 13 18:34:44 2019 -0500 Merge branch 'remotes/lorenzo/pci/misc' - Exit pcitest with error code when test fails (Jean-Jacques Hiblot) - Fix leaked of_node references in dra7xx, uniphier, layerscape, rockchip, aardvark, iproc, mediatek, rpadlpar (Wen Yang) - Fix pcitest "help" option parsing (Kishon Vijay Abraham I) - Fix Makefile bug that inadvertently removes pcitest.sh (Kishon Vijay Abraham I) - Check for alloc_workqueue() failure in endpoint test driver (Kangjie Lu) * remotes/lorenzo/pci/misc: PCI: endpoint: Fix a potential NULL pointer dereference tools: PCI: Handle pcitest.sh independently from pcitest tools: PCI: Add 'h' in optstring of getopt() PCI: mediatek: Fix a leaked reference by adding missing of_node_put() PCI: iproc: Fix a leaked reference by adding missing of_node_put() PCI: aardvark: Fix a leaked reference by adding missing of_node_put() PCI: rockchip: Fix a leaked reference by adding missing of_node_put() PCI: dwc: layerscape: Fix a leaked reference by adding missing of_node_put() PCI: uniphier: Fix a leaked reference by adding missing of_node_put() PCI: dwc: pci-dra7xx: Fix a leaked reference by adding missing of_node_put() tools: PCI: Exit with error code when test fails commit ed0eaf320571ca3992ca73144f87984c5770bf5e Merge: cdf4315502a5 699ca3016268 Author: Bjorn Helgaas Date: Mon May 13 18:34:44 2019 -0500 Merge branch 'remotes/lorenzo/pci/xilinx' - Check for __get_free_pages() failure in xilinx (Kangjie Lu) * remotes/lorenzo/pci/xilinx: PCI: xilinx: Check for __get_free_pages() failure commit cdf4315502a53c8fd2ae136a0549bba62167e534 Merge: 673525c5c2da 21e2079fe493 Author: Bjorn Helgaas Date: Mon May 13 18:34:43 2019 -0500 Merge branch 'remotes/lorenzo/pci/tegra' - Use DMA-API to get tegra MSI address to prevent device DMA from generating unwanted MSIs (Vidya Sagar) * remotes/lorenzo/pci/tegra: PCI: tegra: Use the DMA-API to get the MSI address commit 673525c5c2dad113da585c657af5cc501ef6d9d7 Merge: bac9789e535a c577f4a5a08b Author: Bjorn Helgaas Date: Mon May 13 18:34:43 2019 -0500 Merge branch 'remotes/lorenzo/pci/rockchip' - Fix rockchip bitwise operations that overflow type (Colin Ian King) * remotes/lorenzo/pci/rockchip: PCI: rockchip: Fix rockchip_pcie_ep_assert_intx() bitwise operations commit bac9789e535a6353854e19532d1db3d5580cb58c Merge: fb8a85fabdc8 a27beb5820d1 Author: Bjorn Helgaas Date: Mon May 13 18:34:42 2019 -0500 Merge branch 'remotes/lorenzo/pci/rcar' - Use BIT() when appropriate in rcar (Marek Vasut) - Use u32 to match rcar hardware register widths (Marek Vasut) - Use BITS_PER_BYTE when appropriate in rcar (Marek Vasut) - Remove unnecessary casts in rcar (Marek Vasut) - Fix 64-bit MSI target addresses in rcar (Marek Vasut) - Check for __get_free_pages() failure in rcar (Kangjie Lu) - Fix shadowed rcar "irq" variable (Wolfram Sang) * remotes/lorenzo/pci/rcar: PCI: rcar: Do not shadow the 'irq' variable PCI: rcar: Fix a potential NULL pointer dereference PCI: rcar: Fix 64bit MSI message address handling PCI: rcar: Clean up debug messages PCI: rcar: Replace (8 * n) with (BITS_PER_BYTE * n) PCI: rcar: Replace various variable types with unsigned ones for register values PCI: rcar: Replace unsigned long with u32/unsigned int in register accessors PCI: rcar: Clean up remaining macros defining bits # Conflicts: # drivers/pci/controller/pcie-rcar.c commit fb8a85fabdc83cfabfd30f79e6b15135e88d16f9 Merge: 0b8439d37482 258f250fc5f7 Author: Bjorn Helgaas Date: Mon May 13 18:34:41 2019 -0500 Merge branch 'remotes/lorenzo/pci/mediatek' - Make mediatek clocks optional, not required (Chunfeng Yun) - Remove unused mediatek mt2712 "num-lanes" DT property (Honghui Zhang) * remotes/lorenzo/pci/mediatek: arm64: dts: mt2712: Remove un-used property for PCIe PCI: mediatek: Get optional clocks with devm_clk_get_optional() commit 0b8439d374826f03d47b995bd5950ea8d8b7cff8 Merge: b138f67d7bad 8f220664570e Author: Bjorn Helgaas Date: Mon May 13 18:34:41 2019 -0500 Merge branch 'remotes/lorenzo/pci/keystone' - Move IRQ register address computation inside macros (Kishon Vijay Abraham I) - Separate legacy IRQ and MSI configuration (Kishon Vijay Abraham I) - Use hwirq, not virq, to get MSI IRQ number offset (Kishon Vijay Abraham I) - Squash ks_pcie_handle_msi_irq() into ks_pcie_msi_irq_handler() (Kishon Vijay Abraham I) - Add dwc support for platforms with custom MSI controllers (Kishon Vijay Abraham I) - Add keystone-specific MSI controller (Kishon Vijay Abraham I) - Remove dwc host_ops previously used for keystone-specific MSI (Kishon Vijay Abraham I) - Skip dwc default MSI init if platform has custom MSI controller (Kishon Vijay Abraham I) - Implement .start_link() and .stop_link() for keystone endpoint support (Kishon Vijay Abraham I) - Add keystone "reg-names" DT binding (Kishon Vijay Abraham I) - Squash ks_pcie_dw_host_init() into ks_pcie_add_pcie_port() (Kishon Vijay Abraham I) - Get keystone register resources from DT by name, not index (Kishon Vijay Abraham I) - Get DT resources in .probe() to prepare for endpoint support (Kishon Vijay Abraham I) - Add "ti,syscon-pcie-mode" DT property for PCIe mode configuration (Kishon Vijay Abraham I) - Explicitly set keystone to host mode (Kishon Vijay Abraham I) - Document DT "atu" reg-names requirement for DesignWare core >= 4.80 (Kishon Vijay Abraham I) - Enable dwc iATU unroll for endpoint mode as well as host mode (Kishon Vijay Abraham I) - Add dwc "version" to identify core >= 4.80 for ATU programming (Kishon Vijay Abraham I) - Don't build ARM32-specific keystone code on ARM64 (Kishon Vijay Abraham I) - Add DT binding for keystone PCIe RC in AM654 SoC (Kishon Vijay Abraham I) - Add keystone support for AM654 SoC PCIe RC (Kishon Vijay Abraham I) - Reset keystone PHYs before enabling them (Kishon Vijay Abraham I) - Make of_pci_get_max_link_speed() available to endpoint drivers as well as host drivers (Kishon Vijay Abraham I) - Add keystone support for DT "max-link-speed" property (Kishon Vijay Abraham I) - Add endpoint library support for BAR buffer alignment (Kishon Vijay Abraham I) - Make all dw_pcie_ep_ops structs const (Kishon Vijay Abraham I) - Fix fencepost error in dw_pcie_ep_find_capability() (Kishon Vijay Abraham I) - Add dwc hooks for dbi/dbi2 that share the same address space (Kishon Vijay Abraham I) - Add keystone support for TI AM654x in endpoint mode (Kishon Vijay Abraham I) - Configure designware endpoints to advertise smallest resizable BAR (1MB) (Kishon Vijay Abraham I) - Align designware endpoint ATU windows for raising MSIs (Kishon Vijay Abraham I) - Add endpoint test support for TI AM654x (Kishon Vijay Abraham I) - Fix endpoint test test_reg_bar issue (Kishon Vijay Abraham I) * remotes/lorenzo/pci/keystone: misc: pci_endpoint_test: Fix test_reg_bar to be updated in pci_endpoint_test misc: pci_endpoint_test: Add support to test PCI EP in AM654x PCI: designware-ep: Use aligned ATU window for raising MSI interrupts PCI: designware-ep: Configure Resizable BAR cap to advertise the smallest size PCI: keystone: Add support for PCIe EP in AM654x Platforms dt-bindings: PCI: Add PCI EP DT binding documentation for AM654 PCI: dwc: Add callbacks for accessing dbi2 address space PCI: dwc: Fix dw_pcie_ep_find_capability() to return correct capability offset PCI: dwc: Add const qualifier to struct dw_pcie_ep_ops PCI: endpoint: Add support to specify alignment for buffers allocated to BARs PCI: keystone: Add support to set the max link speed from DT PCI: OF: Allow of_pci_get_max_link_speed() to be used by PCI Endpoint drivers PCI: keystone: Invoke phy_reset() API before enabling PHY PCI: keystone: Add support for PCIe RC in AM654x Platforms dt-bindings: PCI: Add PCI RC DT binding documentation for AM654 PCI: keystone: Prevent ARM32 specific code to be compiled for ARM64 PCI: dwc: Fix ATU identification for designware version >= 4.80 PCI: dwc: Enable iATU unroll for endpoint too dt-bindings: PCI: Document "atu" reg-names PCI: keystone: Explicitly set the PCIe mode dt-bindings: PCI: Add dt-binding to configure PCIe mode PCI: keystone: Move resources initialization to prepare for EP support PCI: keystone: Use platform_get_resource_byname() to get memory resources PCI: keystone: Perform host initialization in a single function dt-bindings: PCI: keystone: Add "reg-names" binding information PCI: keystone: Cleanup error_irq configuration PCI: keystone: Add start_link()/stop_link() dw_pcie_ops PCI: dwc: Remove default MSI initialization for platform specific MSI chips PCI: dwc: Remove Keystone specific dw_pcie_host_ops PCI: keystone: Use Keystone specific msi_irq_chip PCI: dwc: Add support to use non default msi_irq_chip PCI: keystone: Cleanup ks_pcie_msi_irq_handler() PCI: keystone: Use hwirq to get the MSI IRQ number offset PCI: keystone: Add separate functions for configuring MSI and legacy interrupt PCI: keystone: Cleanup interrupt related macros # Conflicts: # drivers/pci/controller/dwc/pcie-designware.h commit b138f67d7badf9ecb08c120e9c9ecbb8d483da59 Merge: 5349abcf8e5f 8cff995405eb Author: Bjorn Helgaas Date: Mon May 13 18:34:39 2019 -0500 Merge branch 'remotes/lorenzo/pci/iproc' - Work around iproc CRS completion issues (Srinath Mannam) - Allow smaller iproc outbound windows so driver can work on 32-bit systems (Srinath Mannam) - Use iproc-specific config read for PAXBv2 (not PAXB) (Srinath Mannam) * remotes/lorenzo/pci/iproc: PCI: iproc: Enable iProc config read for PAXBv2 PCI: iproc: Allow outbound configuration for 32-bit I/O region PCI: iproc: Add CRS check in config read commit 5349abcf8e5f09a178910225a90d4a0329f82a1f Merge: 29fa3bbd6c20 87cb312777b5 Author: Bjorn Helgaas Date: Mon May 13 18:34:39 2019 -0500 Merge branch 'remotes/lorenzo/pci/imx' - Simplify imx7d_pcie_wait_for_phy_pll_lock() by using regmap_read_poll_timeout() (Andrey Smirnov) - Drop imx6_pcie_wait_for_link() in favor of the more generic dw_pcie_wait_for_link() (Andrey Smirnov) - Return -ETIMEDOUT instead of -EINVAL from imx6_pcie_wait_for_speed_change() (Andrey Smirnov) - Remove unused PCIE_PL_PFLR_* constants from imx6 (Andrey Smirnov) - Use shared PHY debug register definitions in imx6 (Andrey Smirnov) - Use BIT() in imx6 (Andrey Smirnov) - Simplify imx6 PHY bit operations (Andrey Smirnov) - Simplify imx6 pcie_phy_poll_ack() (Andrey Smirnov) - Use data types that match actual imx6 PHY register width (Andrey Smirnov) - Mark imx6 suspend support with drvdata flags instead of checking variants (Andrey Smirnov) - Sleep instead of delay in imx6_pcie_enable_ref_clk() (Andrey Smirnov) * remotes/lorenzo/pci/imx: PCI: imx6: Use usleep_range() in imx6_pcie_enable_ref_clk() PCI: imx6: Use flags to indicate support for suspend PCI: imx6: Restrict PHY register data to 16-bit PCI: imx6: Simplify pcie_phy_poll_ack() PCI: imx6: Simplify bit operations in PHY functions PCI: imx6: Make use of BIT() in constant definitions PCI: dwc: imx6: Share PHY debug register definitions PCI: imx6: Remove PCIE_PL_PFLR_* constants PCI: imx6: Return -ETIMEOUT from imx6_pcie_wait_for_speed_change() PCI: imx6: Drop imx6_pcie_wait_for_link() PCI: imx6: Simplify imx7d_pcie_wait_for_phy_pll_lock() commit 29fa3bbd6c205bb12d1046243af7b9160df73a90 Merge: 4014eb8b6117 1b8df7aa7874 Author: Bjorn Helgaas Date: Mon May 13 18:34:38 2019 -0500 Merge branch 'pci/dwc' - Use generic config space reader in qcom (Marc Gonzalez) - Stop calling IRQ handler cleanup in dwc driver for invalid MSI IRQs (Jisheng Zhang) - Free dwc MSI target page when freeing MSI (Jisheng Zhang) - Fix dwc MSI leak in host init error path (Jisheng Zhang) - Use managed host bridge alloc to simplify dwc (Jisheng Zhang) - Save dwc root pci_bus pointer for use by .remove() methods (Jisheng Zhang) - Allow imx6 asynchronous probing (Lucas Stach) * pci/dwc: PCI: imx6: Allow asynchronous probing PCI: dwc: Save root bus for driver remove hooks PCI: dwc: Use devm_pci_alloc_host_bridge() to simplify code PCI: dwc: Free MSI in dw_pcie_host_init() error path PCI: dwc: Free MSI IRQ page in dw_pcie_free_msi() PCI: dwc: Fix dw_pcie_free_msi() if msi_irq is invalid PCI: qcom: Use default config space read function commit 4014eb8b61174b818a4b5169755c95d18d6fcd90 Merge: 83d82352827a 340d45569940 Author: Bjorn Helgaas Date: Mon May 13 18:34:37 2019 -0500 Merge branch 'remotes/lorenzo/pci/controller-fixes' - Restore R-Car PCIe link early in resume (Kazufumi Ikeda) - Fix Hyper-V PCI ejection memory leak (Dexuan Cui) - Cleanup Hyper-V PCI slots on module unload (Dexuan Cui) - Cleanup Hyper-V PCI slot on device removal to address a race (Dexuan Cui) * remotes/lorenzo/pci/controller-fixes: PCI: hv: Add pci_destroy_slot() in pci_devices_present_work(), if necessary PCI: hv: Add hv_pci_remove_slots() when we unload the driver PCI: hv: Fix a memory leak in hv_eject_device_work() PCI: rcar: Add the initialization of PCIe link in resume_noirq() commit 83d82352827a23978b5135292702536e5be91b42 Merge: c711a84af0af 4166bfe53093 Author: Bjorn Helgaas Date: Mon May 13 18:34:36 2019 -0500 Merge branch 'pci/host/al' - Add Amazon Annapurna Labs PCIe host controller driver (Jonathan Chocron) * pci/host/al: PCI: al: Add Amazon Annapurna Labs PCIe host controller driver commit c711a84af0af468032c909806af15e32ff9424a1 Merge: da33ae0129ff 6afb7e26978d Author: Bjorn Helgaas Date: Mon May 13 18:34:35 2019 -0500 Merge branch 'pci/virtualization' - Mark ATS on AMD Stoney Radeon R7 GPU broken to avoid IOMMU issues (Nikolai Kostrigin) - Mark Atheros AR9462 to avoid bus reset that locks up host machine (James Prestwood) * pci/virtualization: PCI: Mark Atheros AR9462 to avoid bus reset PCI: Mark AMD Stoney Radeon R7 GPU ATS as broken commit da33ae0129ff6c312054bcf988faf89f0e528d82 Merge: db9d639fa127 083c1b5e50b7 Author: Bjorn Helgaas Date: Mon May 13 18:34:35 2019 -0500 Merge branch 'pci/switchtec' - Support all 255 PFF ports in switchtec driver (Wesley Sheng) - Fix unintentional switchtec MRPC event masking that degraded firmware update speed (Wesley Sheng) * pci/switchtec: switchtec: Fix unintended mask of MRPC event switchtec: Increase PFF limit from 48 to 255 commit db9d639fa127d9fb37a49df44c65cc42c88a213e Merge: 292c93965413 6056bed93b4f Author: Bjorn Helgaas Date: Mon May 13 18:34:34 2019 -0500 Merge branch 'pci/portdrv' - Disable Link Management interrupt during suspend to prevent immediate wakeup (Mika Westerberg) * pci/portdrv: PCI/LINK: Disable bandwidth notification interrupt during suspend commit 292c9396541399b83a4f6d9141b919cb29275c28 Merge: 09fdd75c1814 0f97da831026 Author: Bjorn Helgaas Date: Mon May 13 18:34:33 2019 -0500 Merge branch 'pci/peer-to-peer' - Add a whitelist of Root Complexes known to support peer-to-peer DMA between Root Ports (Christian König) * pci/peer-to-peer: PCI/P2PDMA: Allow P2P DMA between any devices under AMD ZEN Root Complex commit 09fdd75c1814faecf6623a33e9ad91c5aee08bdb Merge: 33987fd167dc 86511dbcfb7a Author: Bjorn Helgaas Date: Mon May 13 18:34:32 2019 -0500 Merge branch 'pci/misc' - Mark expected switch fall-throughs (Gustavo A. R. Silva) - Remove unused pci_request_region_exclusive() (Johannes Thumshirn) - Fix x86 PCI IRQ routing table memory leak (Wenwen Wang) - Reset Lenovo ThinkPad P50 if firmware didn't do it on reboot (Lyude Paul) - Add and use pci_dev_id() helper to simplify PCI_DEVID() usage (touches several places outside drivers/pci/) (Heiner Kallweit) - Transition Mobiveil PCI maintenance to Karthikeyan M and Hou Zhiqiang (Subrahmanya Lingappa) * pci/misc: MAINTAINERS: Add Karthikeyan Mitran and Hou Zhiqiang for Mobiveil PCI platform/chrome: chromeos_laptop: use pci_dev_id() helper stmmac: pci: Use pci_dev_id() helper iommu/vt-d: Use pci_dev_id() helper iommu/amd: Use pci_dev_id() helper drm/amdkfd: Use pci_dev_id() helper powerpc/powernv/npu: Use pci_dev_id() helper r8169: use pci_dev_id() helper PCI: Add pci_dev_id() helper PCI: Reset Lenovo ThinkPad P50 nvgpu at boot if necessary x86/PCI: Fix PCI IRQ routing table memory leak PCI: Remove unused pci_request_region_exclusive() PCI: Mark expected switch fall-throughs commit 33987fd167dce2838fd6c5a64479189541048009 Merge: 3ea6f739dca4 fc2786545395 Author: Bjorn Helgaas Date: Mon May 13 18:34:31 2019 -0500 Merge branch 'pci/msi' - Remove unused mask_msi_irq(), unmask_msi_irq(), write_msi_msg(), __write_msi_msg() (Bjorn Helgaas) * pci/msi: PCI/MSI: Remove unused mask_msi_irq() and unmask_msi_irq() PCI/MSI: Remove unused __write_msi_msg() and write_msi_msg() commit 3ea6f739dca4370f89d8c171b4b0433046256798 Merge: 178901bf6a7d ba11edc65065 Author: Bjorn Helgaas Date: Mon May 13 18:34:31 2019 -0500 Merge branch 'pci/hotplug' - Fix RPA and RPA DLPAR refcount issues (Tyrel Datwyler) - Stop exporting pci_get_hp_params() (Alexandru Gagniuc) - Simplify _HPP, _HPX parsing (Alexandru Gagniuc) - Add support for _HPX Type 3 settings (Alexandru Gagniuc) - Tell firmware we support _HPX Type 3 via _OSC (Alexandru Gagniuc) * pci/hotplug: PCI/ACPI: Advertise _HPX Type 3 support via _OSC PCI/ACPI: Implement _HPX Type 3 Setting Record PCI/ACPI: Remove the need for 'struct hotplug_params' PCI/ACPI: Do not export pci_get_hp_params() PCI: rpaphp: Get/put device node reference during slot alloc/dealloc PCI: rpadlpar: Fix leaked device_node references in add/remove paths commit 178901bf6a7d8e6d22fb8265a8886f1ba0272fc7 Merge: 156752817cb0 2dbce5901179 Author: Bjorn Helgaas Date: Mon May 13 18:34:30 2019 -0500 Merge branch 'pci/enumeration' - Enable PCIe services for host controller drivers that use managed host bridge alloc (Jean-Philippe Brucker) - Add quirk to clear PCIe Retrain Link bit to work around Pericom bridge erratum (Stefan Mätje) - Add "external-facing" DT property to identify cases where we require IOMMU protection from untrusted devices (Jean-Philippe Brucker) - Support fixed bus numbers from bridge Enhanced Allocation capabilities (Subbaraya Sundeep) * pci/enumeration: PCI: Assign bus numbers present in EA capability for bridges PCI: OF: Support "external-facing" property dt-bindings: Add "external-facing" PCIe port property PCI: Rework pcie_retrain_link() wait loop PCI: Work around Pericom PCIe-to-PCI bridge Retrain Link erratum PCI: Factor out pcie_retrain_link() function PCI: Init PCIe feature bits for managed host bridge alloc commit 156752817cb090643f7e20094d17dbd2c3f14f0d Merge: 9e98c678c2d6 31f996efbd5a Author: Bjorn Helgaas Date: Mon May 13 18:34:29 2019 -0500 Merge branch 'pci/aer' - Fix pci_aer_init() stub prototype for non-CONFIG_PCIEAER case (Jisheng Zhang) * pci/aer: PCI/AER: Change pci_aer_init() stub to return void commit cabede8b4f2b746232aa25730a0b752de1cb82ca Author: John Fastabend Date: Mon May 13 07:19:55 2019 -0700 bpf: sockmap fix msg->sg.size account on ingress skb When converting a skb to msg->sg we forget to set the size after the latest ktls/tls code conversion. This patch can be reached by doing a redir into ingress path from BPF skb sock recv hook. Then trying to read the size fails. Fix this by setting the size. Fixes: 604326b41a6fb ("bpf, sockmap: convert to generic sk_msg interface") Signed-off-by: John Fastabend Signed-off-by: Daniel Borkmann commit c42253cc88206fd0e9868c8b2fd7f9e79f9e0e03 Author: John Fastabend Date: Mon May 13 07:19:37 2019 -0700 bpf: sockmap remove duplicate queue free In tcp bpf remove we free the cork list and purge the ingress msg list. However we do this before the ref count reaches zero so it could be possible some other access is in progress. In this case (tcp close and/or tcp_unhash) we happen to also hold the sock lock so no path exists but lets fix it otherwise it is extremely fragile and breaks the reference counting rules. Also we already check the cork list and ingress msg queue and free them once the ref count reaches zero so its wasteful to check twice. Fixes: 604326b41a6fb ("bpf, sockmap: convert to generic sk_msg interface") Signed-off-by: John Fastabend Signed-off-by: Daniel Borkmann commit 014894360ec95abe868e94416b3dd6569f6e2c0c Author: John Fastabend Date: Mon May 13 07:19:19 2019 -0700 bpf: sockmap, only stop/flush strp if it was enabled at some point If we try to call strp_done on a parser that has never been initialized, because the sockmap user is only using TX side for example we get the following error. [ 883.422081] WARNING: CPU: 1 PID: 208 at kernel/workqueue.c:3030 __flush_work+0x1ca/0x1e0 ... [ 883.422095] Workqueue: events sk_psock_destroy_deferred [ 883.422097] RIP: 0010:__flush_work+0x1ca/0x1e0 This had been wrapped in a 'if (psock->parser.enabled)' logic which was broken because the strp_done() was never actually being called because we do a strp_stop() earlier in the tear down logic will set parser.enabled to false. This could result in a use after free if work was still in the queue and was resolved by the patch here, 1d79895aef18f ("sk_msg: Always cancel strp work before freeing the psock"). However, calling strp_stop(), done by the patch marked in the fixes tag, only is useful if we never initialized a strp parser program and never initialized the strp to start with. Because if we had initialized a stream parser strp_stop() would have been called by sk_psock_drop() earlier in the tear down process. By forcing the strp to stop we get past the WARNING in strp_done that checks the stopped flag but calling cancel_work_sync on work that has never been initialized is also wrong and generates the warning above. To fix check if the parser program exists. If the program exists then the strp work has been initialized and must be sync'd and cancelled before free'ing any structures. If no program exists we never initialized the stream parser in the first place so skip the sync/cancel logic implemented by strp_done. Finally, remove the strp_done its not needed and in the case where we are using the stream parser has already been called. Fixes: e8e3437762ad9 ("bpf: Stop the psock parser before canceling its work") Signed-off-by: John Fastabend Signed-off-by: Daniel Borkmann commit 390e99cfdda1334f45c718cc02cd26eb3135f233 Author: Stanislav Fomichev Date: Mon May 13 12:04:36 2019 -0700 bpf: mark bpf_event_notify and bpf_event_init as static Both of them are not declared in the headers and not used outside of bpf_trace.c file. Fixes: a38d1107f937c ("bpf: support raw tracepoints in modules") Signed-off-by: Stanislav Fomichev Signed-off-by: Daniel Borkmann commit 2baae3545327632167c0180e9ca1d467416f1919 Author: Eric Dumazet Date: Mon May 13 09:59:16 2019 -0700 bpf: devmap: fix use-after-free Read in __dev_map_entry_free synchronize_rcu() is fine when the rcu callbacks only need to free memory (kfree_rcu() or direct kfree() call rcu call backs) __dev_map_entry_free() is a bit more complex, so we need to make sure that call queued __dev_map_entry_free() callbacks have completed. sysbot report: BUG: KASAN: use-after-free in dev_map_flush_old kernel/bpf/devmap.c:365 [inline] BUG: KASAN: use-after-free in __dev_map_entry_free+0x2a8/0x300 kernel/bpf/devmap.c:379 Read of size 8 at addr ffff8801b8da38c8 by task ksoftirqd/1/18 CPU: 1 PID: 18 Comm: ksoftirqd/1 Not tainted 4.17.0+ #39 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x1b9/0x294 lib/dump_stack.c:113 print_address_description+0x6c/0x20b mm/kasan/report.c:256 kasan_report_error mm/kasan/report.c:354 [inline] kasan_report.cold.7+0x242/0x2fe mm/kasan/report.c:412 __asan_report_load8_noabort+0x14/0x20 mm/kasan/report.c:433 dev_map_flush_old kernel/bpf/devmap.c:365 [inline] __dev_map_entry_free+0x2a8/0x300 kernel/bpf/devmap.c:379 __rcu_reclaim kernel/rcu/rcu.h:178 [inline] rcu_do_batch kernel/rcu/tree.c:2558 [inline] invoke_rcu_callbacks kernel/rcu/tree.c:2818 [inline] __rcu_process_callbacks kernel/rcu/tree.c:2785 [inline] rcu_process_callbacks+0xe9d/0x1760 kernel/rcu/tree.c:2802 __do_softirq+0x2e0/0xaf5 kernel/softirq.c:284 run_ksoftirqd+0x86/0x100 kernel/softirq.c:645 smpboot_thread_fn+0x417/0x870 kernel/smpboot.c:164 kthread+0x345/0x410 kernel/kthread.c:240 ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:412 Allocated by task 6675: save_stack+0x43/0xd0 mm/kasan/kasan.c:448 set_track mm/kasan/kasan.c:460 [inline] kasan_kmalloc+0xc4/0xe0 mm/kasan/kasan.c:553 kmem_cache_alloc_trace+0x152/0x780 mm/slab.c:3620 kmalloc include/linux/slab.h:513 [inline] kzalloc include/linux/slab.h:706 [inline] dev_map_alloc+0x208/0x7f0 kernel/bpf/devmap.c:102 find_and_alloc_map kernel/bpf/syscall.c:129 [inline] map_create+0x393/0x1010 kernel/bpf/syscall.c:453 __do_sys_bpf kernel/bpf/syscall.c:2351 [inline] __se_sys_bpf kernel/bpf/syscall.c:2328 [inline] __x64_sys_bpf+0x303/0x510 kernel/bpf/syscall.c:2328 do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe Freed by task 26: save_stack+0x43/0xd0 mm/kasan/kasan.c:448 set_track mm/kasan/kasan.c:460 [inline] __kasan_slab_free+0x11a/0x170 mm/kasan/kasan.c:521 kasan_slab_free+0xe/0x10 mm/kasan/kasan.c:528 __cache_free mm/slab.c:3498 [inline] kfree+0xd9/0x260 mm/slab.c:3813 dev_map_free+0x4fa/0x670 kernel/bpf/devmap.c:191 bpf_map_free_deferred+0xba/0xf0 kernel/bpf/syscall.c:262 process_one_work+0xc64/0x1b70 kernel/workqueue.c:2153 worker_thread+0x181/0x13a0 kernel/workqueue.c:2296 kthread+0x345/0x410 kernel/kthread.c:240 ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:412 The buggy address belongs to the object at ffff8801b8da37c0 which belongs to the cache kmalloc-512 of size 512 The buggy address is located 264 bytes inside of 512-byte region [ffff8801b8da37c0, ffff8801b8da39c0) The buggy address belongs to the page: page:ffffea0006e368c0 count:1 mapcount:0 mapping:ffff8801da800940 index:0xffff8801b8da3540 flags: 0x2fffc0000000100(slab) raw: 02fffc0000000100 ffffea0007217b88 ffffea0006e30cc8 ffff8801da800940 raw: ffff8801b8da3540 ffff8801b8da3040 0000000100000004 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff8801b8da3780: fc fc fc fc fc fc fc fc fb fb fb fb fb fb fb fb ffff8801b8da3800: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb > ffff8801b8da3880: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ^ ffff8801b8da3900: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff8801b8da3980: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc Fixes: 546ac1ffb70d ("bpf: add devmap, a map for storing net device references") Signed-off-by: Eric Dumazet Reported-by: syzbot+457d3e2ffbcf31aee5c0@syzkaller.appspotmail.com Acked-by: Toke Høiland-Jørgensen Acked-by: Jesper Dangaard Brouer Signed-off-by: Daniel Borkmann commit 63863ee8e2f6f6ae47be3dff4af2f2806f5ca2dd Merge: fbcde197e1be 259799ea5a9a Author: Linus Torvalds Date: Mon May 13 16:01:52 2019 -0700 Merge tag 'gcc-plugins-v5.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/kees/linux Pull gcc plugin fix from Kees Cook: "Fix ARM stack-protector-per-task plugin build for older GCC < 6 (Chris Packham)" * tag 'gcc-plugins-v5.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/kees/linux: gcc-plugins: arm_ssp_per_task_plugin: Fix for older GCC < 6 commit fbcde197e1befae4228715edf1288c7646808b8b Author: Tobin C. Harding Date: Mon May 13 21:59:04 2019 +0200 gfs2: Fix error path kobject memory leak If a call to kobject_init_and_add() fails we must call kobject_put() otherwise we leak memory. Function gfs2_sys_fs_add always calls kobject_init_and_add() which always calls kobject_init(). It is safe to leave object destruction up to the kobject release function and never free it manually. Remove call to kfree() and always call kobject_put() in the error path. Signed-off-by: Tobin C. Harding Reviewed-by: Greg Kroah-Hartman Signed-off-by: Andreas Gruenbacher Signed-off-by: Linus Torvalds commit 3aff5fac54d722f363eac7db94536bffb55ca43f Merge: 0aed4b281870 198790d9a3ae Author: Linus Torvalds Date: Mon May 13 15:34:03 2019 -0700 Merge branch 'for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/dennis/percpu Pull percpu updates from Dennis Zhou: - scan hint update which helps address performance issues with heavily fragmented blocks - lockdep fix when freeing an allocation causes balance work to be scheduled * 'for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/dennis/percpu: percpu: remove spurious lock dependency between percpu and sched percpu: use chunk scan_hint to skip some scanning percpu: convert chunk hints to be based on pcpu_block_md percpu: make pcpu_block_md generic percpu: use block scan_hint to only scan forward percpu: remember largest area skipped during allocation percpu: add block level scan_hint percpu: set PCPU_BITMAP_BLOCK_SIZE to PAGE_SIZE percpu: relegate chunks unusable when failing small allocations percpu: manage chunks based on contig_bits instead of free_bytes percpu: introduce helper to determine if two regions overlap percpu: do not search past bitmap when allocating an area percpu: update free path with correct new free region commit 0aed4b28187078565cafbfe86b62f941d580d840 Merge: a3958f5e13e2 14e0c7317ed5 Author: Linus Torvalds Date: Mon May 13 15:21:48 2019 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input Pull input updates from Dmitry Torokhov: "A few new drivers: - driver for Azoteq IQS550/572/525 touch controllers - driver for Microchip AT42QT1050 keys - driver for GPIO controllable vibrators - support for GT5663 in Goodix driver ... along with miscellaneous driver fixes" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: Input: libps2 - mark expected switch fall-through Input: qt1050 - add Microchip AT42QT1050 support Input: add support for Azoteq IQS550/572/525 Input: add a driver for GPIO controllable vibrators Input: synaptics-rmi4 - fix enum_fmt Input: synaptics-rmi4 - fill initial format HID: input: add mapping for KEY_KBD_LAYOUT_NEXT Input: add KEY_KBD_LAYOUT_NEXT Input: hyperv-keyboard - add module description Input: olpc_apsp - depend on ARCH_MMP Input: sun4i-a10-lradc-keys - add support for A83T Input: snvs_pwrkey - use dev_pm_set_wake_irq() to simplify code Input: lpc32xx-key - add clocks property and fix DT binding example Input: i8042 - signal wakeup from atkbd/psmouse Input: goodix - add GT5663 CTP support Input: goodix - add regulators suppot Input: evdev - use struct_size() in kzalloc() and vzalloc() Input: edt-ft5x06 - convert to use SPDX identifier Input: edt-ft5x06 - enable ACPI enumeration commit a3958f5e13e23f6e68c3cc1210639f63728a950f Merge: d4c608115c62 d4c26eb6e721 Author: Linus Torvalds Date: Mon May 13 15:15:00 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: "Fixes all over: 1) Netdev refcnt leak in nf_flow_table, from Taehee Yoo. 2) Fix RCU usage in nf_tables, from Florian Westphal. 3) Fix DSA build when NET_DSA_TAG_BRCM_PREPEND is not set, from Yue Haibing. 4) Add missing page read/write ops to realtek driver, from Heiner Kallweit. 5) Endianness fix in qrtr code, from Nicholas Mc Guire. 6) Fix various bugs in DSA_SKB_* macros, from Vladimir Oltean. 7) Several BPF documentation cures, from Quentin Monnet. 8) Fix undefined behavior in narrow load handling of BPF verifier, from Krzesimir Nowak. 9) DMA ops crash in SGI Seeq driver due to not set netdev parent device pointer, from Thomas Bogendoerfer. 10) Flow dissector has to disable preemption when invoking BPF program, from Eric Dumazet" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (48 commits) net: ethernet: stmmac: dwmac-sun8i: enable support of unicast filtering net: ethernet: ti: netcp_ethss: fix build flow_dissector: disable preemption around BPF calls bonding: fix arp_validate toggling in active-backup mode net: meson: fixup g12a glue ephy id net: phy: realtek: Replace phy functions with non-locked version in rtl8211e_config_init() net: seeq: fix crash caused by not set dev.parent of_net: Fix missing of_find_device_by_node ref count drop net: mvpp2: cls: Add missing NETIF_F_NTUPLE flag bpf: fix undefined behavior in narrow load handling libbpf: detect supported kernel BTF features and sanitize BTF selftests: bpf: Add files generated after build to .gitignore tools: bpf: synchronise BPF UAPI header with tools bpf: fix minor issues in documentation for BPF helpers. bpf: fix recurring typo in documentation for BPF helpers bpf: fix script for generating man page on BPF helpers bpf: add various test cases for backward jumps net: dccp : proto: remove Unneeded variable "err" net: dsa: Remove the now unused DSA_SKB_CB_COPY() macro net: dsa: Remove dangerous DSA_SKB_CLONE() macro ... commit d4c608115c6203efbab14befab90a6d1b61177d8 Merge: 29c079caf584 4d8e7055a405 Author: Linus Torvalds Date: Mon May 13 15:08:16 2019 -0700 Merge tag 'fsnotify_for_v5.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs Pull fsnotify fixes from Jan Kara: "Two fsnotify fixes" * tag 'fsnotify_for_v5.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs: fsnotify: fix unlink performance regression fsnotify: Clarify connector assignment in fsnotify_add_mark_list() commit 29c079caf584ad9a333c0d32292d036d1ae3205f Merge: a13f0655503a 632a9f3acd66 Author: Linus Torvalds Date: Mon May 13 14:59:55 2019 -0700 Merge tag 'fs_for_v5.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs Pull misc filesystem updates from Jan Kara: "A couple of small bugfixes and cleanups for quota, udf, ext2, and reiserfs" * tag 'fs_for_v5.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs: quota: check time limit when back out space/inode change fs/quota: erase unused but set variable warning quota: fix wrong indentation udf: fix an uninitialized read bug and remove dead code fs/reiserfs/journal.c: Make remove_journal_hash static quota: remove trailing whitespaces quota: code cleanup for __dquot_alloc_space() ext2: Adjust the comment of function ext2_alloc_branch udf: Explain handling of load_nls() failure commit 81fca03ae741d8b1f21cdc5de7a93826cde27959 Author: Thomas Bogendoerfer Date: Mon May 13 13:16:08 2019 +0200 MIPS: SGI-IP22: provide missing dma_mask/coherent_dma_mask Set dma_masks for SGIWD93 and SGISEEQ otherwise DMA allocations fails and causes not working SCSI/ethernet. Signed-off-by: Thomas Bogendoerfer Signed-off-by: Paul Burton Cc: Ralf Baechle Cc: James Hogan Cc: linux-mips@vger.kernel.org Cc: linux-kernel@vger.kernel.org commit 67eebf7213046e65d8fb1f37f5fd10d5fb71e098 Author: Marcin Nowakowski Date: Mon May 13 14:32:43 2019 +0200 generic: fix appended dtb support Appended DTB support is mostly intended to be used on legacy systems, but it is a valid feature that can be enabled for generic platform, which currently doesn't support it - if selected, the appended DTB will be ignored by the platform startup code. During kernel startup, the appended DTB's location is stored in fw_passed_dtb if the init code finds what appears to be a valid DTB. Otherwise (if a0 == -2), a1 is stored in fw_passed_dtb, so either way it will always point to either a user-passed DTB or built-in DTB. Signed-off-by: Marcin Nowakowski Signed-off-by: Paul Burton Cc: linux-mips@vger.kernel.org commit 67793bd3b3948dc8c8384b6430e036a30a0ecb43 Author: Matt Redfearn Date: Wed Apr 24 13:22:27 2019 +0000 drm/bridge: adv7511: Fix low refresh rate selection The driver currently sets register 0xfb (Low Refresh Rate) based on the value of mode->vrefresh. Firstly, this field is specified to be in Hz, but the magic numbers used by the code are Hz * 1000. This essentially leads to the low refresh rate always being set to 0x01, since the vrefresh value will always be less than 24000. Fix the magic numbers to be in Hz. Secondly, according to the comment in drm_modes.h, the field is not supposed to be used in a functional way anyway. Instead, use the helper function drm_mode_vrefresh(). Fixes: 9c8af882bf12 ("drm: Add adv7511 encoder driver") Reviewed-by: Laurent Pinchart Signed-off-by: Matt Redfearn Signed-off-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190424132210.26338-1-matt.redfearn@thinci.com commit e6f393bc939d566ce3def71232d8013de9aaadde Author: Josh Poimboeuf Date: Mon May 13 12:01:32 2019 -0500 objtool: Fix function fallthrough detection When a function falls through to the next function due to a compiler bug, objtool prints some obscure warnings. For example: drivers/regulator/core.o: warning: objtool: regulator_count_voltages()+0x95: return with modified stack frame drivers/regulator/core.o: warning: objtool: regulator_count_voltages()+0x0: stack state mismatch: cfa1=7+32 cfa2=7+8 Instead it should be printing: drivers/regulator/core.o: warning: objtool: regulator_supply_is_couple() falls through to next function regulator_count_voltages() This used to work, but was broken by the following commit: 13810435b9a7 ("objtool: Support GCC 8's cold subfunctions") The padding nops at the end of a function aren't actually part of the function, as defined by the symbol table. So the 'func' variable in validate_branch() is getting cleared to NULL when a padding nop is encountered, breaking the fallthrough detection. If the current instruction doesn't have a function associated with it, just consider it to be part of the previously detected function by not overwriting the previous value of 'func'. Reported-by: kbuild test robot Signed-off-by: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Fixes: 13810435b9a7 ("objtool: Support GCC 8's cold subfunctions") Link: http://lkml.kernel.org/r/546d143820cd08a46624ae8440d093dd6c902cae.1557766718.git.jpoimboe@redhat.com Signed-off-by: Ingo Molnar commit e6da9567959e164f82bc81967e0d5b10dee870b4 Author: Josh Poimboeuf Date: Mon May 13 12:01:31 2019 -0500 objtool: Don't use ignore flag for fake jumps The ignore flag is set on fake jumps in order to keep add_jump_destinations() from setting their jump_dest, since it already got set when the fake jump was created. But using the ignore flag is a bit of a hack. It's normally used to skip validation of an instruction, which doesn't really make sense for fake jumps. Also, after the next patch, using the ignore flag for fake jumps can trigger a false "why am I validating an ignored function?" warning. Instead just add an explicit check in add_jump_destinations() to skip fake jumps. Signed-off-by: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/71abc072ff48b2feccc197723a9c52859476c068.1557766718.git.jpoimboe@redhat.com Signed-off-by: Ingo Molnar commit 82045dd85566d87128dcc66277cf1177d9930a4a Merge: e0478542cfd4 ffa6f55eb618 Author: Ingo Molnar Date: Mon May 13 20:30:15 2019 +0200 Merge branch 'linus' into core/urgent, to merge in dependent changes Signed-off-by: Ingo Molnar commit 14ae42a6f0b13130a97d94d23481128961de5d38 Author: Will Deacon Date: Mon May 13 17:53:03 2019 +0100 drivers/perf: arm_spe: Don't error on high-order pages for aux buf Since commit 5768402fd9c6 ("perf/ring_buffer: Use high order allocations for AUX buffers optimistically"), the perf core tends to back aux buffer allocations with high-order pages with the order encoded in the PagePrivate data. The Arm SPE driver explicitly rejects such pages, causing the perf tool to fail with: | failed to mmap with 12 (Cannot allocate memory) In actual fact, we can simply treat these pages just like any other since the perf core takes care to populate the page array appropriately. In theory we could try to map with PMDs where possible, but for now, let's just get things working again. Cc: Alexander Shishkin Fixes: 5768402fd9c6 ("perf/ring_buffer: Use high order allocations for AUX buffers optimistically") Reported-by: Hanjun Guo Tested-by: Hanjun Guo Tested-by: Sudeep Holla Signed-off-by: Will Deacon commit d4c26eb6e721683a0f93e346ce55bc8dc3cbb175 Author: Corentin Labbe Date: Mon May 13 13:06:39 2019 +0000 net: ethernet: stmmac: dwmac-sun8i: enable support of unicast filtering When adding more MAC addresses to a dwmac-sun8i interface, the device goes directly in promiscuous mode. This is due to IFF_UNICAST_FLT missing flag. So since the hardware support unicast filtering, let's add IFF_UNICAST_FLT. Fixes: 9f93ac8d4085 ("net-next: stmmac: Add dwmac-sun8i") Signed-off-by: Corentin Labbe Signed-off-by: David S. Miller commit a8577e1312668a1d0fc996a0e5b31b3233fd79b3 Author: Grygorii Strashko Date: Mon May 13 16:16:36 2019 +0300 net: ethernet: ti: netcp_ethss: fix build Fix reported build fail: ERROR: "cpsw_ale_flush_multicast" [drivers/net/ethernet/ti/keystone_netcp_ethss.ko] undefined! ERROR: "cpsw_ale_create" [drivers/net/ethernet/ti/keystone_netcp_ethss.ko] undefined! ERROR: "cpsw_ale_add_vlan" [drivers/net/ethernet/ti/keystone_netcp_ethss.ko] undefined! Fixes: 16f54164828b ("net: ethernet: ti: cpsw: drop CONFIG_TI_CPSW_ALE config option") Reported-by: kbuild test robot Signed-off-by: Grygorii Strashko Signed-off-by: David S. Miller commit b1c17a9a353878602fd5bfe9103e4afe5e9a3f96 Author: Eric Dumazet Date: Mon May 13 09:38:55 2019 -0700 flow_dissector: disable preemption around BPF calls Various things in eBPF really require us to disable preemption before running an eBPF program. syzbot reported : BUG: assuming atomic context at net/core/flow_dissector.c:737 in_atomic(): 0, irqs_disabled(): 0, pid: 24710, name: syz-executor.3 2 locks held by syz-executor.3/24710: #0: 00000000e81a4bf1 (&tfile->napi_mutex){+.+.}, at: tun_get_user+0x168e/0x3ff0 drivers/net/tun.c:1850 #1: 00000000254afebd (rcu_read_lock){....}, at: __skb_flow_dissect+0x1e1/0x4bb0 net/core/flow_dissector.c:822 CPU: 1 PID: 24710 Comm: syz-executor.3 Not tainted 5.1.0+ #6 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x172/0x1f0 lib/dump_stack.c:113 __cant_sleep kernel/sched/core.c:6165 [inline] __cant_sleep.cold+0xa3/0xbb kernel/sched/core.c:6142 bpf_flow_dissect+0xfe/0x390 net/core/flow_dissector.c:737 __skb_flow_dissect+0x362/0x4bb0 net/core/flow_dissector.c:853 skb_flow_dissect_flow_keys_basic include/linux/skbuff.h:1322 [inline] skb_probe_transport_header include/linux/skbuff.h:2500 [inline] skb_probe_transport_header include/linux/skbuff.h:2493 [inline] tun_get_user+0x2cfe/0x3ff0 drivers/net/tun.c:1940 tun_chr_write_iter+0xbd/0x156 drivers/net/tun.c:2037 call_write_iter include/linux/fs.h:1872 [inline] do_iter_readv_writev+0x5fd/0x900 fs/read_write.c:693 do_iter_write fs/read_write.c:970 [inline] do_iter_write+0x184/0x610 fs/read_write.c:951 vfs_writev+0x1b3/0x2f0 fs/read_write.c:1015 do_writev+0x15b/0x330 fs/read_write.c:1058 __do_sys_writev fs/read_write.c:1131 [inline] __se_sys_writev fs/read_write.c:1128 [inline] __x64_sys_writev+0x75/0xb0 fs/read_write.c:1128 do_syscall_64+0x103/0x670 arch/x86/entry/common.c:298 entry_SYSCALL_64_after_hwframe+0x49/0xbe Fixes: d58e468b1112 ("flow_dissector: implements flow dissector BPF hook") Signed-off-by: Eric Dumazet Reported-by: syzbot Cc: Petar Penkov Cc: Stanislav Fomichev Signed-off-by: David S. Miller commit a9b8a2b39ce65df45687cf9ef648885c2a99fe75 Author: Jarod Wilson Date: Fri May 10 17:57:09 2019 -0400 bonding: fix arp_validate toggling in active-backup mode There's currently a problem with toggling arp_validate on and off with an active-backup bond. At the moment, you can start up a bond, like so: modprobe bonding mode=1 arp_interval=100 arp_validate=0 arp_ip_targets=192.168.1.1 ip link set bond0 down echo "ens4f0" > /sys/class/net/bond0/bonding/slaves echo "ens4f1" > /sys/class/net/bond0/bonding/slaves ip link set bond0 up ip addr add 192.168.1.2/24 dev bond0 Pings to 192.168.1.1 work just fine. Now turn on arp_validate: echo 1 > /sys/class/net/bond0/bonding/arp_validate Pings to 192.168.1.1 continue to work just fine. Now when you go to turn arp_validate off again, the link falls flat on it's face: echo 0 > /sys/class/net/bond0/bonding/arp_validate dmesg ... [133191.911987] bond0: Setting arp_validate to none (0) [133194.257793] bond0: bond_should_notify_peers: slave ens4f0 [133194.258031] bond0: link status definitely down for interface ens4f0, disabling it [133194.259000] bond0: making interface ens4f1 the new active one [133197.330130] bond0: link status definitely down for interface ens4f1, disabling it [133197.331191] bond0: now running without any active interface! The problem lies in bond_options.c, where passing in arp_validate=0 results in bond->recv_probe getting set to NULL. This flies directly in the face of commit 3fe68df97c7f, which says we need to set recv_probe = bond_arp_recv, even if we're not using arp_validate. Said commit fixed this in bond_option_arp_interval_set, but missed that we can get to that same state in bond_option_arp_validate_set as well. One solution would be to universally set recv_probe = bond_arp_recv here as well, but I don't think bond_option_arp_validate_set has any business touching recv_probe at all, and that should be left to the arp_interval code, so we can just make things much tidier here. Fixes: 3fe68df97c7f ("bonding: always set recv_probe to bond_arp_rcv in arp monitor") CC: Jay Vosburgh CC: Veaceslav Falico CC: Andy Gospodarek CC: "David S. Miller" CC: netdev@vger.kernel.org Signed-off-by: Jarod Wilson Signed-off-by: Jay Vosburgh Signed-off-by: David S. Miller commit 27d79a2b2bf0dbec1cc3d8ea269db4d5a0dac2f3 Author: Shuah Khan Date: Fri May 10 19:38:39 2019 -0600 selftests: fix bpf build/test workflow regression when KBUILD_OUTPUT is set commit 8ce72dc32578 ("selftests: fix headers_install circular dependency") broke bpf build/test workflow. When KBUILD_OUTPUT is set, bpf objects end up in KBUILD_OUTPUT build directory instead of in ../selftests/bpf. The following bpf workflow breaks when it can't find the test_verifier: cd tools/testing/selftests/bpf; make; ./test_verifier; Fix it to set OUTPUT only when it is undefined in lib.mk. It didn't need to be set in the first place. Fixes: 8ce72dc32578 ("selftests: fix headers_install circular dependency") Reported-by: Alexei Starovoitov Signed-off-by: Shuah Khan Acked-by: Alexei Starovoitov Signed-off-by: Shuah Khan commit 0ecfc7e1ff67899eec3020b4b6d5126f82319ed6 Author: Jerome Brunet Date: Sun May 12 23:12:37 2019 +0200 net: meson: fixup g12a glue ephy id The phy id chosen by Amlogic is incorrectly set in the mdio mux and does not match the phy driver. It was not detected before because DT forces the use the correct driver for the internal PHY. Fixes: 7090425104db ("net: phy: add amlogic g12a mdio mux support") Reported-by: Qi Duan Signed-off-by: Jerome Brunet Signed-off-by: David S. Miller commit dffe7d2e04670ff98e4dacf258df30446e2e80d4 Author: Kunihiko Hayashi Date: Mon May 13 15:41:45 2019 +0900 net: phy: realtek: Replace phy functions with non-locked version in rtl8211e_config_init() After calling phy_select_page() and until calling phy_restore_page(), the mutex 'mdio_lock' is already locked, so the driver should use non-locked version of phy functions. Or there will be a deadlock with 'mdio_lock'. This replaces phy functions called from rtl8211e_config_init() to avoid the deadlock issue. Fixes: f81dadbcf7fd ("net: phy: realtek: Add rtl8211e rx/tx delays config") Signed-off-by: Kunihiko Hayashi Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 5afcd14cfc7fed1bcc8abcee2cef82732772bfc2 Author: Thomas Bogendoerfer Date: Mon May 13 13:15:17 2019 +0200 net: seeq: fix crash caused by not set dev.parent The old MIPS implementation of dma_cache_sync() didn't use the dev argument, but commit c9eb6172c328 ("dma-mapping: turn dma_cache_sync into a dma_map_ops method") changed that, so we now need to set dev.parent. Signed-off-by: Thomas Bogendoerfer Signed-off-by: David S. Miller commit 3ebb41bf47865842f4153b855fe2551fef78fbd1 Merge: 3ee9ae74ba4a 92285a079eed Author: David S. Miller Date: Mon May 13 08:55:15 2019 -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 net: 1) Postpone chain policy update to drop after transaction is complete, from Florian Westphal. 2) Add entry to flowtable after confirmation to fix UDP flows with packets going in one single direction. 3) Reference count leak in dst object, from Taehee Yoo. 4) Check for TTL field in flowtable datapath, from Taehee Yoo. 5) Fix h323 conntrack helper due to incorrect boundary check, from Jakub Jankowski. 6) Fix incorrect rcu dereference when fetching basechain stats, from Florian Westphal. 7) Missing error check when adding new entries to flowtable, from Taehee Yoo. 8) Use version field in nfnetlink message to honor the nfgen_family field, from Kristian Evensen. 9) Remove incorrect configuration check for CONFIG_NF_CONNTRACK_IPV6, from Subash Abhinov Kasiviswanathan. 10) Prevent dying entries from being added to the flowtable, from Taehee Yoo. 11) Don't hit WARN_ON() with malformed blob in ebtables with trailing data after last rule, reported by syzbot, patch from Florian Westphal. 12) Remove NFT_CT_TIMEOUT enumeration, never used in the kernel code. 13) Fix incorrect definition for NFT_LOGLEVEL_MAX, from Florian Westphal. This batch comes with a conflict that can be fixed with this patch: diff --cc include/uapi/linux/netfilter/nf_tables.h index 7bdb234f3d8c,f0cf7b0f4f35..505393c6e959 --- a/include/uapi/linux/netfilter/nf_tables.h +++ b/include/uapi/linux/netfilter/nf_tables.h @@@ -966,6 -966,8 +966,7 @@@ enum nft_socket_keys * @NFT_CT_DST_IP: conntrack layer 3 protocol destination (IPv4 address) * @NFT_CT_SRC_IP6: conntrack layer 3 protocol source (IPv6 address) * @NFT_CT_DST_IP6: conntrack layer 3 protocol destination (IPv6 address) - * @NFT_CT_TIMEOUT: connection tracking timeout policy assigned to conntrack + * @NFT_CT_ID: conntrack id */ enum nft_ct_keys { NFT_CT_STATE, @@@ -991,6 -993,8 +992,7 @@@ NFT_CT_DST_IP, NFT_CT_SRC_IP6, NFT_CT_DST_IP6, - NFT_CT_TIMEOUT, + NFT_CT_ID, __NFT_CT_MAX }; #define NFT_CT_MAX (__NFT_CT_MAX - 1) That replaces the unused NFT_CT_TIMEOUT definition by NFT_CT_ID. If you prefer, I can also solve this conflict here, just let me know. ==================== Signed-off-by: David S. Miller commit 3ee9ae74ba4a85c3b378a0e49ec1481655f54500 Author: Petr Štetiar Date: Mon May 13 11:41:39 2019 +0200 of_net: Fix missing of_find_device_by_node ref count drop of_find_device_by_node takes a reference to the embedded struct device which needs to be dropped after use. Fixes: d01f449c008a ("of_net: add NVMEM support to of_get_mac_address") Reported-by: kbuild test robot Reported-by: Julia Lawall Signed-off-by: Petr Štetiar Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit da86f59f170df3f46ea5366a519522a2234d1094 Author: Maxime Chevallier Date: Mon May 13 09:30:33 2019 +0200 net: mvpp2: cls: Add missing NETIF_F_NTUPLE flag Now that the mvpp2 driver supports classification offloading, we must add the NETIF_F_NTUPLE to the features list. Since the current code doesn't allow disabling the feature, we don't set the flag in dev->hw_features. Fixes: 90b509b39ac9 ("net: mvpp2: cls: Add Classification offload support") Reported-by: Jakub Kicinski Acked-by: Jakub Kicinski Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit e2033e33cb3821c26d4f9e70677910827d3b7885 Author: Stefan Bühler Date: Sat May 11 19:08:01 2019 +0200 io_uring: fix race condition reading SQE data When punting to workers the SQE gets copied after the initial try. There is a race condition between reading SQE data for the initial try and copying it for punting it to the workers. For example io_rw_done calls kiocb->ki_complete even if it was prepared for IORING_OP_FSYNC (and would be NULL). The easiest solution for now is to alway prepare again in the worker. req->file is safe to prepare though as long as it is checked before use. Signed-off-by: Stefan Bühler Signed-off-by: Jens Axboe commit 176a11834b65ec35e3b7a953f87fb9cc41309497 Author: Viorel Suman Date: Mon May 13 10:02:42 2019 +0000 ASoC: ak4458: rstn_control - return a non-zero on error only snd_soc_component_update_bits() may return 1 if operation was successful and the value of the register changed. Return a non-zero in ak4458_rstn_control for an error only. Signed-off-by: Shengjiu Wang Signed-off-by: Viorel Suman Reviewed-by: Daniel Baluta Signed-off-by: Mark Brown commit 197b23e9aeea04fce29b6753233fd07050bf6911 Author: Boris Brezillon Date: Mon May 13 10:17:34 2019 +0200 drm/panfrost: Add missing _fini() calls in panfrost_device_fini() panfrost_{job,mmu,gpu,reset}_fini() were missing. Fixes: f3ba91228e8e ("drm/panfrost: Add initial panfrost driver") Signed-off-by: Boris Brezillon Reviewed-by: Steven Price Signed-off-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/20190513081734.911-1-boris.brezillon@collabora.com commit cc2e787ee7c2c00698bb84a3da4adb3a84187e67 Author: Tomeu Vizoso Date: Thu May 9 10:21:51 2019 +0200 drm/panfrost: Only put sync_out if non-NULL Dan Carpenter's static analysis tool reported: drivers/gpu/drm/panfrost/panfrost_drv.c:222 panfrost_ioctl_submit() error: we previously assumed 'sync_out' could be null (see line 216) Indeed, sync_out could be NULL if userspace doesn't send a sync object ID for the out fence. Signed-off-by: Tomeu Vizoso Reported-by: Dan Carpenter Link: https://lists.freedesktop.org/archives/dri-devel/2019-May/217014.html Reviewed-by: Steven Price Signed-off-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/20190509082151.8823-1-tomeu.vizoso@collabora.com commit 8a03b27ea61c2ab9de16a8a195822ef05e799748 Author: Hannes Reinecke Date: Fri May 3 15:37:35 2019 +0200 nvme-multipath: avoid crash on invalid subsystem cntlid enumeration A process holding an open reference to a removed disk prevents it from completing deletion, so its name continues to exist. A subsequent gendisk creation may have the same cntlid which risks collision when using that for the name. Use the unique ctrl->instance instead. Signed-off-by: Hannes Reinecke Reviewed-by: Keith Busch Signed-off-by: Christoph Hellwig commit 8730c1ddb69bdeeb10c1f613a4e15e95862b1981 Author: Hannes Reinecke Date: Fri May 3 11:43:52 2019 +0200 nvme-fc: use separate work queue to avoid warning When tearing down a controller the following warning is issued: WARNING: CPU: 0 PID: 30681 at ../kernel/workqueue.c:2418 check_flush_dependency This happens as the err_work workqueue item is scheduled on the system workqueue (which has WQ_MEM_RECLAIM not set), but is flushed from a workqueue which has WQ_MEM_RECLAIM set. Fix this by providing an FC-NVMe specific workqueue. Fixes: 4cff280a5fcc ("nvme-fc: resolve io failures during connect") Signed-off-by: Hannes Reinecke Reviewed-by: James Smart Signed-off-by: Christoph Hellwig commit 87fd125344d68adf7699ec7396aa9f905ce79a80 Author: Max Gurtovoy Date: Mon May 6 13:47:55 2019 +0300 nvme-rdma: remove redundant reference between ib_device and tagset In the past, before adding f41725bb ("nvme-rdma: Use mr pool") commit, we needed a reference on the ib_device as long as the tagset was alive, as the MRs in the request structures needed a valid ib_device. Now, we allocate/deallocate MR pool per QP and consume on demand. Also remove nvme_rdma_free_tagset function and use blk_mq_free_tag_set instead, as it unneeded anymore. This commit also fixes a memory leakage and possible segmentation fault. When configuring the system with NIC teaming (aka bonding), we use 1 network interface to create an HA connection to the target side. In case one connection breaks down, nvme-rdma driver will get notification from rdma-cm layer that underlying address was change and will start error recovery process. During this process, we'll reconnect to the target via the second interface in the bond without destroying the tagset. This will cause a leakage of the initial rdma device (ndev) and miscount in the reference count of the new created rdma device (new ndev). In the final destruction (or in another error flow), we'll get a warning dump from the ib_dealloc_pd that we still have inflight MR's related to that pd. This happens becasue of the miscount of the reference tag of the rdma device and causing access violation to it's elements (some queues are not destroyed yet). Signed-off-by: Max Gurtovoy Signed-off-by: Israel Rukshin Signed-off-by: Christoph Hellwig commit 3b7dffb971dc2998004cec1efc883191c736d6b3 Author: Gustavo A. R. Silva Date: Tue May 7 09:23:00 2019 -0500 nvme-pci: mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warning: drivers/nvme/host/pci.c: In function ‘nvme_timeout’: drivers/nvme/host/pci.c:1298:12: warning: this statement may fall through [-Wimplicit-fallthrough=] shutdown = true; ~~~~~~~~~^~~~~~ drivers/nvme/host/pci.c:1299:2: note: here case NVME_CTRL_CONNECTING: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Reviewed-by: Keith Busch Reviewed-by: Chaitanya Kulkarni Signed-off-by: Christoph Hellwig commit f4524cc45626e16264aabb930d0635eff19c7f73 Author: Maxim Levitsky Date: Thu May 2 14:31:34 2019 +0300 nvme-pci: add known admin effects to augument admin effects log page Add known admin effects even if hardware has known admin effects page, since hardware can't be ever trusted to report sane values. (on my Intel DC P3700, it reports no side effects for namespace format) Signed-off-by: Maxim Levitsky Signed-off-by: Christoph Hellwig commit e8fd41bb3cf149fb6df4be714f94fc04871ccbce Author: Maxim Levitsky Date: Thu May 2 14:31:33 2019 +0300 nvme-pci: init shadow doorbell after each reset The spec states: "The settings are not retained across a Controller Level Reset" Therefore the driver must enable the shadow doorbell, after each reset. This was caught while testing the nvme driver over upcoming nvme-mdev device. Signed-off-by: Maxim Levitsky Reviewed-by: Keith Busch Reviewed-by: Minwoo Im Signed-off-by: Christoph Hellwig commit a13f0655503a4a89df67fdc7cac6a7810795d4b3 Merge: 55472bae5331 b5531563e8a0 Author: Linus Torvalds Date: Mon May 13 09:23:18 2019 -0400 Merge tag 'iommu-updates-v5.2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/joro/iommu Pull IOMMU updates from Joerg Roedel: - ATS support for ARM-SMMU-v3. - AUX domain support in the IOMMU-API and the Intel VT-d driver. This adds support for multiple DMA address spaces per (PCI-)device. The use-case is to multiplex devices between host and KVM guests in a more flexible way than supported by SR-IOV. - the rest are smaller cleanups and fixes, two of which needed to be reverted after testing in linux-next. * tag 'iommu-updates-v5.2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (45 commits) Revert "iommu/amd: Flush not present cache in iommu_map_page" Revert "iommu/amd: Remove the leftover of bypass support" iommu/vt-d: Fix leak in intel_pasid_alloc_table on error path iommu/vt-d: Make kernel parameter igfx_off work with vIOMMU iommu/vt-d: Set intel_iommu_gfx_mapped correctly iommu/amd: Flush not present cache in iommu_map_page iommu/vt-d: Cleanup: no spaces at the start of a line iommu/vt-d: Don't request page request irq under dmar_global_lock iommu/vt-d: Use struct_size() helper iommu/mediatek: Fix leaked of_node references iommu/amd: Remove amd_iommu_pd_list iommu/arm-smmu: Log CBFRSYNRA register on context fault iommu/arm-smmu-v3: Don't disable SMMU in kdump kernel iommu/arm-smmu-v3: Disable tagged pointers iommu/arm-smmu-v3: Add support for PCI ATS iommu/arm-smmu-v3: Link domains and devices iommu/arm-smmu-v3: Add a master->domain pointer iommu/arm-smmu-v3: Store SteamIDs in master iommu/arm-smmu-v3: Rename arm_smmu_master_data to arm_smmu_master ACPI/IORT: Check ATS capability in root complex nodes ... commit 86511dbcfb7aeee3cd4bd27b90bedf51959b7ad4 Author: Subrahmanya Lingappa Date: Tue May 7 07:45:16 2019 -0400 MAINTAINERS: Add Karthikeyan Mitran and Hou Zhiqiang for Mobiveil PCI Add Karthikeyan Mitran and Hou Zhiqiang as new maintainers of Mobiveil controller driver. Link: https://lore.kernel.org/linux-pci/1557229516-6870-1-git-send-email-l.subrahmanya@mobiveil.co.in Signed-off-by: Subrahmanya Lingappa [bhelgaas: update names/email addresses to match usage in git history] Signed-off-by: Bjorn Helgaas Acked-by: Karthikeyan Mitran commit 55472bae5331f33582d9f0e8919fed8bebcda0da Merge: d7a02fa0a8f9 a9f0bda567e3 Author: Linus Torvalds Date: Mon May 13 09:20:42 2019 -0400 Merge tag 'linux-watchdog-5.2-rc1' of git://www.linux-watchdog.org/linux-watchdog Pull watchdog updates from Wim Van Sebroeck: - a new watchdog driver for the ROHM BD70528 watchdog block - a new watchdog driver for the i.MX system controller watchdog - conversions to use device managed functions and other improvements - refactor watchdog_init_timeout - make watchdog core configurable as module - pretimeout governors improvements - a lot of other fixes * tag 'linux-watchdog-5.2-rc1' of git://www.linux-watchdog.org/linux-watchdog: (114 commits) watchdog: Enforce that at least one pretimeout governor is enabled watchdog: stm32: add dynamic prescaler support watchdog: Improve Kconfig entry ordering and dependencies watchdog: npcm: Enable modular builds watchdog: Make watchdog core configurable as module watchdog: Move pretimeout governor configuration up watchdog: Use depends instead of select for pretimeout governors watchdog: rtd119x: drop unused module.h include watchdog: intel_scu: make it explicitly non-modular watchdog: coh901327: make it explicitly non-modular watchdog: ziirave_wdt: drop warning after calling watchdog_init_timeout watchdog: xen_wdt: drop warning after calling watchdog_init_timeout watchdog: stm32_iwdg: drop warning after calling watchdog_init_timeout watchdog: st_lpc_wdt: drop warning after calling watchdog_init_timeout watchdog: sp5100_tco: drop warning after calling watchdog_init_timeout watchdog: renesas_wdt: drop warning after calling watchdog_init_timeout watchdog: nic7018_wdt: drop warning after calling watchdog_init_timeout watchdog: ni903x_wdt: drop warning after calling watchdog_init_timeout watchdog: imx_sc_wdt: drop warning after calling watchdog_init_timeout watchdog: i6300esb: drop warning after calling watchdog_init_timeout ... commit ed180abba7f1fc3cf04ffa27767b1bcc8e8c842a Author: Amadeusz Sławiński Date: Mon May 13 11:18:01 2019 +0200 ALSA: hda: Fix race between creating and refreshing sysfs entries hda_widget_sysfs_reinit() can free underlying codec->widgets structure on which widget_tree_create() operates. Add locking to prevent such issues from happening. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110382 Signed-off-by: Amadeusz Sławiński Signed-off-by: Takashi Iwai commit 5087a8f17df868601cd7568299e91c28086d2b45 Author: Libin Yang Date: Wed May 8 10:32:41 2019 +0800 ASoC: soc-pcm: BE dai needs prepare when pause release after resume If playback/capture is paused and system enters S3, after system returns from suspend, BE dai needs to call prepare() callback when playback/capture is released from pause if RESUME_INFO flag is not set. Currently, the dpcm_be_dai_prepare() function will block calling prepare() if the pcm is in SND_SOC_DPCM_STATE_PAUSED state. This will cause the following test case fail if the pcm uses BE: playback -> pause -> S3 suspend -> S3 resume -> pause release The playback may exit abnormally when pause is released because the BE dai prepare() is not called. This patch allows dpcm_be_dai_prepare() to call dai prepare() callback in SND_SOC_DPCM_STATE_PAUSED state. Signed-off-by: Libin Yang Signed-off-by: Mark Brown commit a8dee20d792432740509237943700fbcfc230bad Author: Viorel Suman Date: Thu May 9 13:30:36 2019 +0000 ASoC: ak4458: add return value for ak4458_probe AK4458 is probed successfully even if AK4458 is not present - this is caused by probe function returning no error on i2c access failure. Return an error on probe if i2c access has failed. Signed-off-by: Shengjiu Wang Signed-off-by: Viorel Suman Signed-off-by: Mark Brown commit f3df05c805983427319eddc2411a2105ee1757cf Author: Matt Flax Date: Wed May 8 16:33:13 2019 +1000 ASoC : cs4265 : readable register too low The cs4265_readable_register function stopped short of the maximum register. An example bug is taken from : https://github.com/Audio-Injector/Ultra/issues/25 Where alsactl store fails with : Cannot read control '2,0,0,C Data Buffer,0': Input/output error This patch fixes the bug by setting the cs4265 to have readable registers up to the maximum hardware register CS4265_MAX_REGISTER. Signed-off-by: Matt Flax Reviewed-by: Charles Keepax Signed-off-by: Mark Brown commit 8199a12037892f01e2cf5bedf5fbf08dff11b282 Author: Ranjani Sridharan Date: Thu May 9 15:10:25 2019 -0500 ASoC: SOF: fix error in verbose ipc command parsing Remove the erroneous addition of "SET_VALUE" to the GLB IPC command string. Signed-off-by: Ranjani Sridharan Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit a69270d8bfeb35fc89d047ea6db803cd75a74f12 Author: Kai Vehmanen Date: Thu May 9 15:10:23 2019 -0500 ASoC: SOF: fix race in FW boot timeout handling A race condition exists in handling firmware boot timeout. If FW sends FW_READY just after boot timeout has expired in driver, a kernel exception will result as FW_READY handler will be run while the state is still being cleaned up in snd_sof_run_firmware(). Avoid the race by setting boot_complete also in the error case. Signed-off-by: Kai Vehmanen Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 8d01c3c73cefbb5bacffe804427daed3e6051435 Author: Pierre-Louis Bossart Date: Fri May 10 11:38:03 2019 -0500 ASoC: SOF: nocodec: fix undefined reference The nocodec option can be selected individually, leading to the following issue: sound/soc/sof/core.o: In function `snd_sof_device_probe': core.c:(.text+0x4af): undefined reference to `sof_nocodec_setup' Fix by selecting the SND_SOF_NOCODEC option as needed. Reported-by: Hulk Robot Reported-by: YueHaibing Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit c36beba6b296b3c05a0f29753b04775e5ae23886 Author: Chris Wilson Date: Wed May 8 12:24:52 2019 +0100 drm/i915: Seal races between async GPU cancellation, retirement and signaling Currently there is an underlying assumption that i915_request_unsubmit() is synchronous wrt the GPU -- that is the request is no longer in flight as we remove it. In the near future that may change, and this may upset our signaling as we can process an interrupt for that request while it is no longer in flight. CPU0 CPU1 intel_engine_breadcrumbs_irq (queue request completion) i915_request_cancel_signaling ... ... i915_request_enable_signaling dma_fence_signal Hence in the time it took us to drop the lock to signal the request, a preemption event may have occurred and re-queued the request. In the process, that request would have seen I915_FENCE_FLAG_SIGNAL clear and so reused the rq->signal_link that was in use on CPU0, leading to bad pointer chasing in intel_engine_breadcrumbs_irq. A related issue was that if someone started listening for a signal on a completed but no longer in-flight request, we missed the opportunity to immediately signal that request. Furthermore, as intel_contexts may be immediately released during request retirement, in order to be entirely sure that intel_engine_breadcrumbs_irq may no longer dereference the intel_context (ce->signals and ce->signal_link), we must wait for irq spinlock. In order to prevent the race, we use a bit in the fence.flags to signal the transfer onto the signal list inside intel_engine_breadcrumbs_irq. For simplicity, we use the DMA_FENCE_FLAG_SIGNALED_BIT as it then quickly signals to any outside observer that the fence is indeed signaled. v2: Sketch out potential dma-fence API for manual signaling v3: And the test_and_set_bit() Fixes: 52c0fdb25c7c ("drm/i915: Replace global breadcrumbs with per-context interrupt tracking") Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190508112452.18942-1-chris@chris-wilson.co.uk (cherry picked from commit 0152b3b3f49b36b0f1a1bf9f0353dc636f41d8f0) Signed-off-by: Joonas Lahtinen commit da471250706e2f103a1627d1d279c9de44325993 Author: Ville Syrjälä Date: Thu Apr 25 19:29:05 2019 +0300 drm/i915: Fix fastset vs. pfit on/off on HSW EDP transcoder On HSW the pipe A panel fitter lives inside the display power well, and the input MUX for the EDP transcoder needs to be configured appropriately to route the data through the power well as needed. Changing the MUX setting is not allowed while the pipe is active, so we need to force a full modeset whenever we need to change it. Currently we may end up doing a fastset which won't change the MUX settings, but it will drop the power well reference, and that kills the pipe. Cc: stable@vger.kernel.org Cc: Hans de Goede Cc: Maarten Lankhorst Fixes: d19f958db23c ("drm/i915: Enable fastset for non-boot modesets.") Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190425162906.5242-1-ville.syrjala@linux.intel.com Reviewed-by: Maarten Lankhorst (cherry picked from commit 13b7648b7eab7e8259a2fb267b498bd9eba81ca0) Signed-off-by: Joonas Lahtinen commit 396dd8143bdd94bd1c358a228a631c8c895a1126 Author: Daniel Drake Date: Tue Apr 23 17:28:10 2019 +0800 drm/i915/fbc: disable framebuffer compression on GeminiLake On many (all?) the Gemini Lake systems we work with, there is frequent momentary graphical corruption at the top of the screen, and it seems that disabling framebuffer compression can avoid this. The ticket was reported 6 months ago and has already affected a multitude of users, without any real progress being made. So, lets disable framebuffer compression on GeminiLake until a solution is found. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108085 Fixes: fd7d6c5c8f3e ("drm/i915: enable FBC on gen9+ too") Cc: Paulo Zanoni Cc: Daniel Vetter Cc: Jani Nikula Cc: # v4.11+ Reviewed-by: Paulo Zanoni Signed-off-by: Daniel Drake Signed-off-by: Jian-Hong Pan Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190423092810.28359-1-jian-hong@endlessm.com (cherry picked from commit 1d25724b41fad7eeb2c3058a5c8190d6ece73e08) Signed-off-by: Joonas Lahtinen commit 409ca45526a428620d8efb362ccfd4b1e6b80642 Author: Masahiro Yamada Date: Sun May 12 21:52:01 2019 +0900 x86/kconfig: Disable CONFIG_GENERIC_HWEIGHT and remove __HAVE_ARCH_SW_HWEIGHT Remove an unnecessary arch complication: arch/x86/include/asm/arch_hweight.h uses __sw_hweight{32,64} as alternatives, and they are implemented in arch/x86/lib/hweight.S x86 does not rely on the generic C implementation lib/hweight.c at all, so CONFIG_GENERIC_HWEIGHT should be disabled. __HAVE_ARCH_SW_HWEIGHT is not necessary either. No change in functionality intended. Signed-off-by: Masahiro Yamada Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Uros Bizjak Link: http://lkml.kernel.org/r/1557665521-17570-1-git-send-email-yamada.masahiro@socionext.com Signed-off-by: Ingo Molnar commit 8d5d766f00726efd0abd2e7835b0e538fe4ad6e4 Author: Leonard Crestez Date: Tue Apr 30 15:06:12 2019 +0000 soc: imx: gpc: Use GENPD_FLAG_RPM_ALWAYS_ON for ERR009619 This allows PU domain to be turned off in suspend and save power. Signed-off-by: Leonard Crestez Reviewed-by: Ulf Hansson Signed-off-by: Rafael J. Wysocki commit ed61e18a4b4e445ae8622a4faec6a259601cc4a5 Author: Leonard Crestez Date: Tue Apr 30 15:06:11 2019 +0000 PM / Domains: Add GENPD_FLAG_RPM_ALWAYS_ON flag This is for power domains which can only be powered off for suspend but not as part of runtime PM. Suggested-by: Ulf Hansson Signed-off-by: Leonard Crestez Reviewed-by: Ulf Hansson Signed-off-by: Rafael J. Wysocki commit 32345f45379b9accb035bbad6d6a253724329ea4 Author: Viresh Kumar Date: Mon May 13 12:40:33 2019 +0530 cpufreq: Update MAINTAINERS to include schedutil governor List cpufreq maintainers as well for schedutil governor apart from scheduler maintainers. Signed-off-by: Viresh Kumar Acked-by: Ingo Molnar Signed-off-by: Rafael J. Wysocki commit ab05d97a3785088fa2964219227a1ba95d97d590 Author: Yue Hu Date: Mon Apr 29 15:24:18 2019 +0800 cpufreq: Don't find governor for setpolicy drivers in cpufreq_init_policy() In cpufreq_init_policy() we will check if there's last_governor for target and setpolicy type. However last_governor is set only if has_target() is true in cpufreq_offline(). That means find last_governor for setpolicy type is pointless. Also new_policy.governor will not be used if ->setpolicy callback is set in cpufreq_set_policy(). Moreover, there's duplicate ->setpolicy check in using default policy path. Let's add a new helper function to avoid it. Also update comments. Signed-off-by: Yue Hu Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki commit 2acb9bdae92d0662cd4fa11c481e80b6202b5630 Author: Rafael J. Wysocki Date: Fri May 10 12:35:53 2019 +0200 cpufreq: Explain the kobject_put() in cpufreq_policy_alloc() It may not be particularly clear why the kobject_put() after failing kobject_init_and_add() in cpufreq_policy_alloc() is not redundant, so add a comment to explain that. Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar commit a423bd845c6043c205eedc413f40f81c7550e85c Author: Sakari Ailus Date: Fri May 10 12:46:03 2019 +0300 Documentation: ACPI: Direct references are allowed to devices only In ACPI it is possible to make references to device objects only, not to other objects inside a device. In practice this means that hierarchical data extension targets must be in parentheses to make them strings, or an ACPICA warning will be produced. Reported-by: Andy Shevchenko Signed-off-by: Sakari Ailus Reviewed-by: Andy Shevchenko [ rjw: Changelog ] Signed-off-by: Rafael J. Wysocki commit 5695f51d055057b9db069f0a060fc7c397278c2e Author: Sakari Ailus Date: Fri May 10 12:46:02 2019 +0300 Documentation: ACPI: Use tabs for graph ASL indentation Use tabs to indent the graph documentation, not spaces. Fixes: f2dde1ed0f28 ("Documentation: ACPI: move dsd/graph.txt to firmware-guide/acpi and convert to reST") Signed-off-by: Sakari Ailus Signed-off-by: Rafael J. Wysocki commit 811b4c9eaf7f04185aa78e4449e84dce1d1b4ad3 Author: Bob Moore Date: Fri May 10 10:25:43 2019 -0700 ACPICA: Update version to 20190509 ACPICA commit 36449fa1dc914113f2b096622d22c2621fd22861 Version 20190509. Link: https://github.com/acpica/acpica/commit/36449fa1 Signed-off-by: Bob Moore Signed-off-by: Erik Schmauss Signed-off-by: Rafael J. Wysocki commit 11207b4dc2737f1f01695979ad5eac6c8ecc8031 Author: Erik Schmauss Date: Fri May 10 10:25:42 2019 -0700 ACPICA: Linux: move ACPI_DEBUG_DEFAULT flag out of ifndef ACPICA commit c14f17fa0acf8c93497ce04b9a7f4ada51b69383 This flag should not be included in #ifndef CONFIG_ACPI. It should be used unconditionally. Link: https://github.com/acpica/acpica/commit/c14f17fa Fixes: aa9aaa4d61c0 ("ACPI: use different default debug value than ACPICA") Reported-by: Gabriel C Tested-by: Gabriel C Signed-off-by: Erik Schmauss Signed-off-by: Bob Moore Cc: 5.1+ 5.1+ Signed-off-by: Rafael J. Wysocki commit d17ed797b8fd5c8765cd959ac44aaa2f090f5a89 Author: Lee Jones Date: Mon May 13 07:38:04 2019 +0100 pinctrl: stmfx: Fix 'warn: bitwise AND condition is false here' drivers/pinctrl/pinctrl-stmfx.c:441 stmfx_pinctrl_irq_set_type() warn: bitwise AND condition is false here Reported-by: kbuild test robot Signed-off-by: Lee Jones commit 28a853860f719a89774a28596e1d1fdf1cd4a611 Author: Lee Jones Date: Mon May 13 07:36:16 2019 +0100 pinctrl: stmfx: Fix 'warn: unsigned is never less than zero' smatch warnings: drivers/pinctrl/pinctrl-stmfx.c:225 stmfx_pinconf_get() warn: unsigned 'dir' is never less than zero. drivers/pinctrl/pinctrl-stmfx.c:228 stmfx_pinconf_get() warn: unsigned 'type' is never less than zero. drivers/pinctrl/pinctrl-stmfx.c:231 stmfx_pinconf_get() warn: unsigned 'pupd' is never less than zero. Reported-by: kbuild test robot Signed-off-by: Lee Jones commit 14e25977f98887f1f99c3ce7537a7674aab3cbdd Author: Ronnie Sahlberg Date: Mon May 13 11:24:17 2019 +1000 cifs: use the right include for signal_pending() This header is actually where signal_pending is defined although either would work. Signed-off-by: Ronnie Sahlberg Signed-off-by: Steve French commit 69dda13fdaffc5e2dbbc6ffa3a6963073b748ac3 Merge: 3285a9aa6570 e2f7fc0ac695 Author: David S. Miller Date: Sun May 12 20:03:35 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf Daniel Borkmann says: ==================== pull-request: bpf 2019-05-13 The following pull-request contains BPF updates for your *net* tree. The main changes are: 1) Fix out of bounds backwards jumps due to a bug in dead code removal, from Daniel. 2) Fix libbpf users by detecting unsupported BTF kernel features and sanitize them before load, from Andrii. 3) Fix undefined behavior in narrow load handling of context fields, from Krzesimir. 4) Various BPF uapi header doc/man page fixes, from Quentin. 5) Misc .gitignore fixups to exclude built files, from Kelsey. ==================== Signed-off-by: David S. Miller commit e2f7fc0ac6957cabff4cecf6c721979b571af208 Author: Krzesimir Nowak Date: Wed May 8 18:08:58 2019 +0200 bpf: fix undefined behavior in narrow load handling Commit 31fd85816dbe ("bpf: permits narrower load from bpf program context fields") made the verifier add AND instructions to clear the unwanted bits with a mask when doing a narrow load. The mask is computed with (1 << size * 8) - 1 where "size" is the size of the narrow load. When doing a 4 byte load of a an 8 byte field the verifier shifts the literal 1 by 32 places to the left. This results in an overflow of a signed integer, which is an undefined behavior. Typically, the computed mask was zero, so the result of the narrow load ended up being zero too. Cast the literal to long long to avoid overflows. Note that narrow load of the 4 byte fields does not have the undefined behavior, because the load size can only be either 1 or 2 bytes, so shifting 1 by 8 or 16 places will not overflow it. And reading 4 bytes would not be a narrow load of a 4 bytes field. Fixes: 31fd85816dbe ("bpf: permits narrower load from bpf program context fields") Reviewed-by: Alban Crequy Reviewed-by: Iago López Galeiras Signed-off-by: Krzesimir Nowak Cc: Yonghong Song Signed-off-by: Daniel Borkmann commit d7c4b3980c18e81c0470f5df6d96d832f446d26f Author: Andrii Nakryiko Date: Fri May 10 14:13:15 2019 -0700 libbpf: detect supported kernel BTF features and sanitize BTF Depending on used versions of libbpf, Clang, and kernel, it's possible to have valid BPF object files with valid BTF information, that still won't load successfully due to Clang emitting newer BTF features (e.g., BTF_KIND_FUNC, .BTF.ext's line_info/func_info, BTF_KIND_DATASEC, etc), that are not yet supported by older kernel. This patch adds detection of BTF features and sanitizes BPF object's BTF by substituting various supported BTF kinds, which have compatible layout: - BTF_KIND_FUNC -> BTF_KIND_TYPEDEF - BTF_KIND_FUNC_PROTO -> BTF_KIND_ENUM - BTF_KIND_VAR -> BTF_KIND_INT - BTF_KIND_DATASEC -> BTF_KIND_STRUCT Replacement is done in such a way as to preserve as much information as possible (names, sizes, etc) where possible without violating kernel's validation rules. v2->v3: - remove duplicate #defines from libbpf_util.h v1->v2: - add internal libbpf_internal.h w/ common stuff - switch SK storage BTF to use new libbpf__probe_raw_btf() Reported-by: Alexei Starovoitov Signed-off-by: Andrii Nakryiko Signed-off-by: Daniel Borkmann commit ff1f28c03f6a7cb5ee5802288258c2fc07ed9b07 Author: Kelsey Skunberg Date: Sun May 12 01:29:18 2019 -0600 selftests: bpf: Add files generated after build to .gitignore The following files are generated after building /selftests/bpf/ and should be added to .gitignore: - libbpf.pc - libbpf.so.* Signed-off-by: Kelsey Skunberg Signed-off-by: Daniel Borkmann commit 6b1d90b7b35b7f0fccfefe38b7f3c16d66e41973 Merge: 9858381253ac c1fe1e701ee3 Author: Daniel Borkmann Date: Mon May 13 01:12:46 2019 +0200 Merge branch 'bpf-uapi-doc-fixes' Quentin Monnet says: ==================== Another round of fixes for the doc in the BPF UAPI header, which can be turned into a manual page. First patch is the most important, as it fixes parsing for the bpf_strtoul() helper doc. Following patches are formatting fixes (nitpicks, mostly). The last one updates the copy of the header, located under tools/. ==================== Signed-off-by: Daniel Borkmann commit c1fe1e701ee3344c7c9bcb8e14c4b8a40cad019e Author: Quentin Monnet Date: Fri May 10 15:51:25 2019 +0100 tools: bpf: synchronise BPF UAPI header with tools Synchronise the bpf.h header under tools, to report the fixes and additions recently brought to the documentation for the BPF helpers. Signed-off-by: Quentin Monnet Acked-by: Jakub Kicinski Signed-off-by: Daniel Borkmann commit 80867c5e3c0275c7208816faac768a44fa3747be Author: Quentin Monnet Date: Fri May 10 15:51:24 2019 +0100 bpf: fix minor issues in documentation for BPF helpers. This commit brings many minor fixes to the documentation for BPF helper functions. Mostly, this is limited to formatting fixes and improvements. In particular, fix broken formatting for bpf_skb_adjust_room(). Besides formatting, replace the mention of "bpf_fullsock()" (that is not associated with any function or type exposed to the user) in the description of bpf_sk_storage_get() by "full socket". Signed-off-by: Quentin Monnet Acked-by: Jakub Kicinski Signed-off-by: Daniel Borkmann commit 32e7dc281cdfd36959fa35f210b45d204ec786f3 Author: Quentin Monnet Date: Fri May 10 15:51:23 2019 +0100 bpf: fix recurring typo in documentation for BPF helpers "Underlaying packet buffer" should be an "underlying" one, in the warning about invalidated data and data_end pointers. Through copy-and-paste, the typo occurred no fewer than 19 times in the documentation. Let's fix it. Signed-off-by: Quentin Monnet Acked-by: Jakub Kicinski Signed-off-by: Daniel Borkmann commit 748c7c821aca5e32fab5676193365fc2705af366 Author: Quentin Monnet Date: Fri May 10 15:51:22 2019 +0100 bpf: fix script for generating man page on BPF helpers The script broke on parsing function prototype for bpf_strtoul(). This is because the last argument for the function is a pointer to an "unsigned long". The current version of the script only accepts "const" and "struct", but not "unsigned", at the beginning of argument types made of several words. One solution could be to add "unsigned" to the list, but the issue could come up again in the future (what about "long int"?). It turns out we do not need to have such restrictions on the words: so let's simply accept any series of words instead. Reported-by: Yonghong Song Signed-off-by: Quentin Monnet Acked-by: Jakub Kicinski Signed-off-by: Daniel Borkmann commit 9858381253acad69a4538a448eb9aa674c4f70d6 Author: Daniel Borkmann Date: Fri May 10 22:51:33 2019 +0000 bpf: add various test cases for backward jumps Add a couple of tests to make sure branch(/call) offset adjustments are correctly performed. Signed-off-by: Daniel Borkmann commit d7a02fa0a8f9ec1b81d57628ca9834563208ef33 Merge: 4dbf09fea60d 04d37e5a8b1f Author: Linus Torvalds Date: Sun May 12 18:16:31 2019 -0400 Merge tag 'upstream-5.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/rw/ubifs Pull UBI/UBIFS updates from Richard Weinberger: - fscrypt framework usage updates - One huge fix for xattr unlink - Cleanup of fscrypt ifdefs - Fix for our new UBIFS auth feature * tag 'upstream-5.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/rw/ubifs: ubi: wl: Fix uninitialized variable ubifs: Drop unnecessary setting of zbr->znode ubifs: Remove ifdefs around CONFIG_UBIFS_ATIME_SUPPORT ubifs: Remove #ifdef around CONFIG_FS_ENCRYPTION ubifs: Limit number of xattrs per inode ubifs: orphan: Handle xattrs like files ubifs: journal: Handle xattrs like files ubifs: find.c: replace swap function with built-in one ubifs: Do not skip hash checking in data nodes ubifs: work around high stack usage with clang ubifs: remove unused function __ubifs_shash_final ubifs: remove unnecessary #ifdef around fscrypt_ioctl_get_policy() ubifs: remove unnecessary calls to set up directory key commit 4dbf09fea60d158e60a30c419e0cfa1ea138dd57 Merge: 983dfa4b6ee5 3008ba870938 Author: Linus Torvalds Date: Sun May 12 17:57:52 2019 -0400 Merge tag 'mtd/for-5.2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/mtd/linux Pull MTD updates from Richard Weinberger: "MTD core changes: - New AFS partition parser - Update MAINTAINERS entry - Use of fall-throughs markers NAND core changes: - Support having the bad block markers in either the first, second or last page of a block. The combination of all three location is now possible. - Constification of NAND_OP_PARSER(_PATTERN) elements. - Generic NAND DT bindings changed to yaml format (can be used to check the proposed bindings. First platform to be fully supported: sunxi. - Stopped using several legacy hooks. - Preparation to use the generic NAND layer with the addition of several helpers and the removal of the struct nand_chip from generic functions. - Kconfig cleanup to prepare the introduction of external ECC engines support. - Fallthrough comments. - Introduction of the SPI-mem dirmap API for SPI-NAND devices. Raw NAND controller drivers changes: - nandsim: - Switch to ->exec-op(). - meson: - Misc cleanups and fixes. - New OOB layout. - Sunxi: - A23/A33 NAND DMA support. - Ingenic: - Full reorganization and cleanup. - Clear separation between NAND controller and ECC engine. - Support JZ4740 an JZ4725B. - Denali: - Clear controller/chip separation. - ->exec_op() migration. - Various cleanups. - fsl_elbc: - Enable software ECC support. - Atmel: - Sam9x60 support. - GPMI: - Introduce the GPMI_IS_MXS() macro. - Various trivial/spelling/coding style fixes. SPI NOR core changes: - Print all JEDEC ID bytes on error - Fix comment of spi_nor_find_best_erase_type() - Add region locking flags for s25fl512s SPI NOR controller drivers changes: - intel-spi: - Avoid crossing 4K address boundary on read/write - Add support for Intel Comet Lake SPI serial flash" * tag 'mtd/for-5.2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/mtd/linux: (120 commits) mtd: part: fix incorrect format specifier for an unsigned long long mtd: lpddr_cmds: Mark expected switch fall-through mtd: phram: Mark expected switch fall-throughs mtd: cfi_cmdset_0002: Mark expected switch fall-throughs mtd: cfi_util: mark expected switch fall-throughs MAINTAINERS: MTD Git repository is hosted on kernel.org MAINTAINERS: Update jffs2 entry mtd: afs: add v2 partition parsing mtd: afs: factor the IIS read into partition parser mtd: afs: factor footer parsing into the v1 part parsing mtd: factor out v1 partition parsing mtd: afs: simplify partition detection mtd: afs: simplify partition parsing mtd: partitions: Add OF support to AFS partitions mtd: partitions: Add AFS partitions DT bindings mtd: afs: Move AFS partition parser to parsers subdir mtd: maps: Make uclinux_ram_map static mtd: maps: Allow MTD_PHYSMAP with MTD_RAM MAINTAINERS: Add myself as MTD maintainer MAINTAINERS: Remove my name from the MTD and NAND entries ... commit 983dfa4b6ee556563f7963348e4e2f97fc8a15b8 Merge: 47782361aca2 1987b1b8f9f1 Author: Linus Torvalds Date: Sun May 12 17:52:13 2019 -0400 Merge tag 'for-linus-5.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/rw/uml Pull UML updates from Richard Weinberger: - Kconfig cleanups - Fix cpu_all_mask() usage - Various bug fixes * tag 'for-linus-5.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/rw/uml: um: irq: don't set the chip for all irqs um: define set_pte_at() as a static inline function, not a macro um: remove uses of variable length arrays um: remove unused variable uml: fix a boot splat wrt use of cpu_all_mask um: Do not unlock mutex that is not hold. hostfs: fix mismatch between link_file definition and declaration arch: um: drivers: Kconfig: pedantic formatting arch: um: Kconfig: pedantic indention cleanups um: Revert to using stack for pt_regs in signal handling commit 3285a9aa6570df84d0c1ea8f1691fbee45c8d821 Author: Hariprasad Kelam Date: Sun May 12 16:09:49 2019 +0530 net: dccp : proto: remove Unneeded variable "err" Fix below issue reported by coccicheck net/dccp/proto.c:266:5-8: Unneeded variable: "err". Return "0" on line 310 Signed-off-by: Hariprasad Kelam Signed-off-by: David S. Miller commit 08b0dec4494ead3d10cfe2a4bedaa0de97857620 Merge: 8f779443b440 1c9b1420ac13 Author: David S. Miller Date: Sun May 12 13:19:46 2019 -0700 Merge branch 'dsa-Fix-a-bug-and-avoid-dangerous-usage-patterns' Vladimir Oltean says: ==================== Fix a bug and avoid dangerous usage patterns around DSA_SKB_CB Making DSA use the sk_buff control block was my idea during the 'Traffic-support-for-SJA1105-DSA-driver' patchset, and I had also introduced a series of macro helpers that turned out to not be so helpful: 1. DSA_SKB_ZERO() zeroizes the 48-byte skb->cb area, but due to the high performance impact in the hotpath it was only intended to be called from the timestamping path. But it turns out that not zeroizing it has uncovered the reading of an uninitialized member field of DSA_SKB_CB, so in the future just be careful about what needs initialization and remove this macro. 2. DSA_SKB_CLONE() contains a flaw in its body definition (originally put there to silence checkpatch.pl) and is unusable at this point (will only cause NPE's when used). So remove it. 3. For DSA_SKB_COPY() the same performance considerations apply as above and therefore it's best to prune this function before it reaches a stable kernel and potentially any users. ==================== Signed-off-by: David S. Miller commit 1c9b1420ac137a0060dc67d3840bdaae9bcf4bae Author: Vladimir Oltean Date: Sat May 11 23:14:47 2019 +0300 net: dsa: Remove the now unused DSA_SKB_CB_COPY() macro It's best to not expose this, due to the performance hit it may cause when calling it. Fixes: b68b0dd0fb2d ("net: dsa: Keep private info in the skb->cb") Signed-off-by: Vladimir Oltean Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 506f0e09ce36477ac610b6e9b52cbd4d5ead0c01 Author: Vladimir Oltean Date: Sat May 11 23:14:46 2019 +0300 net: dsa: Remove dangerous DSA_SKB_CLONE() macro This does not cause any bug now because it has no users, but its body contains two pointer definitions within a code block: struct sk_buff *clone = _clone; \ struct sk_buff *skb = _skb; \ When calling the macro as DSA_SKB_CLONE(clone, skb), these variables would obscure the arguments that the macro was called with, and the initializers would be a no-op instead of doing their job (undefined behavior, by the way, but GCC nicely puts NULL pointers instead). So simply remove this broken macro and leave users to simply call "DSA_SKB_CB(skb)->clone = clone" by hand when needed. There is one functional difference when doing what I just suggested above: the control block won't be transferred from the original skb into the clone. Since there's no foreseen need for the control block in the clone ATM, this is ok. Fixes: b68b0dd0fb2d ("net: dsa: Keep private info in the skb->cb") Signed-off-by: Vladimir Oltean Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 87671375108625bb7f8a09f0809a369d460ebe43 Author: Vladimir Oltean Date: Sat May 11 23:14:45 2019 +0300 net: dsa: Initialize DSA_SKB_CB(skb)->deferred_xmit variable The sk_buff control block can have any contents on xmit put there by the stack, so initialization is mandatory, since we are checking its value after the actual DSA xmit (the tagger may have changed it). The DSA_SKB_ZERO() macro could have been used for this purpose, but: - Zeroizing a 48-byte memory region in the hotpath is best avoided. - It would have triggered a warning with newer compilers since __dsa_skb_cb contains a structure within a structure, and the {0} initializer was incorrect for that purpose. So simply remove the DSA_SKB_ZERO() macro and initialize the deferred_xmit variable by hand (which should be done for all further dsa_skb_cb variables which need initialization - currently none - to avoid the performance penalty). Fixes: 97a69a0dea9a ("net: dsa: Add support for deferred xmit") Signed-off-by: Vladimir Oltean Signed-off-by: David S. Miller commit 92285a079eedfe104a773a7c4293f77a01f456fb Author: Florian Westphal Date: Sun May 12 20:42:37 2019 +0200 netfilter: nf_tables: correct NFT_LOGLEVEL_MAX value should be same as NFT_LOGLEVEL_AUDIT, so use -, not +. Fixes: 7eced5ab5a73 ("netfilter: nf_tables: add NFT_LOGLEVEL_* enumeration and use it") Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit 7fb64133360b10edcae3c6f5afffaa449668831e Author: Theodore Ts'o Date: Sun May 12 13:26:08 2019 -0400 unicode: update to Unicode 12.1.0 final Signed-off-by: Theodore Ts'o Cc: Gabriel Krisman Bertazi commit 050f4c4d2fbbd8217d94dc21051cc597d2a6848b Author: Halil Pasic Date: Fri Apr 26 20:32:38 2019 +0200 virtio/s390: enable packed ring Nothing precludes to accepting VIRTIO_F_RING_PACKED any more. Signed-off-by: Halil Pasic Signed-off-by: Michael S. Tsirkin Reviewed-by: Cornelia Huck commit f35f54f11f7f96dc6d43fa79c4a7297a9115627f Author: Halil Pasic Date: Fri Apr 26 20:32:37 2019 +0200 virtio/s390: DMA support for virtio-ccw Currently virtio-ccw devices do not work if the device has VIRTIO_F_IOMMU_PLATFORM. In future we do want to support DMA API with virtio-ccw. Let us do the plumbing, so the feature VIRTIO_F_IOMMU_PLATFORM works with virtio-ccw. Let us also switch from legacy avail/used accessors to the DMA aware ones (even if it isn't strictly necessary), and remove the legacy accessors (we were the last users). Signed-off-by: Halil Pasic Signed-off-by: Michael S. Tsirkin Reviewed-by: Cornelia Huck commit 3279beac545190ed252cd3df0eb41056537463df Author: Halil Pasic Date: Fri Apr 26 20:32:36 2019 +0200 virtio/s390: use vring_create_virtqueue The commit 2a2d1382fe9d ("virtio: Add improved queue allocation API") establishes a new way of allocating virtqueues (as a part of the effort that taught DMA to virtio rings). In the future we will want virtio-ccw to use the DMA API as well. Let us switch from the legacy method of allocating virtqueues to vring_create_virtqueue() as the first step into that direction. Signed-off-by: Halil Pasic Signed-off-by: Michael S. Tsirkin Reviewed-by: Cornelia Huck commit a5581206c565a7f1113a84232f734e7135b90a61 Author: Jiang Biao Date: Tue Apr 23 18:25:12 2019 +0800 virtio/virtio_ring: do some comment fixes There are lots of mismatches between comments and codes, this patch do these comment fixes. Signed-off-by: Jiang Biao Signed-off-by: Michael S. Tsirkin commit 889e31e73a738183a402cf4dbca991dce2abce96 Author: Paolo Bonzini Date: Tue Apr 16 10:56:08 2019 +0200 vhost-scsi: remove incorrect memory barrier At this point, vs_tpg is not public at all; tv_tpg_vhost_count is accessed under tpg->tv_tpg_mutex; tpg->vhost_scsi is accessed under vhost_scsi_mutex. Therefor there are no atomic operations involved at all here, just remove the barrier. Reported-by: Andrea Parri Signed-off-by: Paolo Bonzini Signed-off-by: Michael S. Tsirkin Acked-by: Jason Wang commit d63031bb0fc0314541340f08a0c35c40216ca72a Author: Jonathan Neuschäfer Date: Mon Mar 18 17:27:34 2019 +0100 tools/virtio/ringtest: Remove bogus definition of BUG_ON() BUG_ON(x) should raise an error if x is true, but assert(x) raises an error if x is false. Remove this bogus definition of BUG_ON(), which isn't used anyway. Signed-off-by: Jonathan Neuschäfer Signed-off-by: Michael S. Tsirkin commit df0bfe7501e9319546ea380d39674a4179e059c3 Author: YueHaibing Date: Tue Mar 12 15:06:53 2019 +0800 virtio_ring: Fix potential mem leak in virtqueue_add_indirect_packed 'desc' should be freed before leaving from err handing path. Fixes: 1ce9e6055fa0 ("virtio_ring: introduce packed ring support") Signed-off-by: YueHaibing Signed-off-by: Michael S. Tsirkin Acked-by: Jason Wang stable@vger.kernel.org commit 47782361aca21a32ad4198f1b72f1655a7c9f7e5 Merge: 8148c17b179d 58a2109f6eb4 Author: Linus Torvalds Date: Sun May 12 07:00:21 2019 -0400 Merge tag 'tag-chrome-platform-for-v5.2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux Pull chrome platform updates from Benson Leung: "CrOS EC: - Add EC host command support using rpmsg - Add new CrOS USB PD logging driver - Transfer spi messages at high priority - Add support to trace CrOS EC commands - Minor fixes and cleanups in protocol and debugfs Wilco EC: - Standardize Wilco EC mailbox interface - Add h1_gpio status to debugfs" * tag 'tag-chrome-platform-for-v5.2' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux: platform/chrome: cros_ec_proto: Add trace event to trace EC commands platform/chrome: cros_ec_debugfs: Use cros_ec_cmd_xfer_status helper platform/chrome: cros_ec: Add EC host command support using rpmsg platform/chrome: wilco_ec: Add h1_gpio status to debugfs platform/chrome: wilco_ec: Standardize mailbox interface platform/chrome: cros_ec_proto: check for NULL transfer function platform/chrome: Add CrOS USB PD logging driver platform/chrome: cros_ec_spi: Transfer messages at high priority platform/chrome: cros_ec_debugfs: no need to check return value of debugfs_create functions platform/chrome: cros_ec_debugfs: Remove dev_warn when console log is not supported commit 15f0d8d0bafb0d841dde53af549c4c44b059d7f5 Author: Theodore Ts'o Date: Sun May 12 04:56:51 2019 -0400 unicode: add missing check for an error return from utf8lookup() Signed-off-by: Theodore Ts'o Cc: Gabriel Krisman Bertazi commit b586627e10f57ee3aa8f0cfab0d6f7dc4ae63760 Author: Dan Carpenter Date: Mon May 6 15:50:18 2019 +0300 kdb: do a sanity check on the cpu in kdb_per_cpu() The "whichcpu" comes from argv[3]. The cpu_online() macro looks up the cpu in a bitmap of online cpus, but if the value is too high then it could read beyond the end of the bitmap and possibly Oops. Fixes: 5d5314d6795f ("kdb: core for kgdb back end (1 of 2)") Signed-off-by: Dan Carpenter Reviewed-by: Douglas Anderson Signed-off-by: Daniel Thompson commit ecebc5ce59a003163eb608ace38a01d7ffeb0a95 Author: Douglas Anderson Date: Fri Mar 22 18:52:27 2019 -0700 kdb: Get rid of broken attempt to print CCVERSION in kdb summary If you drop into kdb and type "summary", it prints out a line that says this: ccversion CCVERSION ...and I don't mean that it actually prints out the version of the C compiler. It literally prints out the string "CCVERSION". The version of the C Compiler is already printed at boot up and it doesn't seem useful to replicate this in kdb. Let's just delete it. We can also delete the bit of the Makefile that called the C compiler in an attempt to pass this into kdb. This will remove one extra call to the C compiler at Makefile parse time and (very slightly) speed up builds. Signed-off-by: Douglas Anderson Reviewed-by: Masahiro Yamada Signed-off-by: Daniel Thompson commit 976643af4ec6d9b4dd45d0c5dd3369c9a92ada07 Author: Young Xiao Date: Fri Apr 12 15:45:06 2019 +0800 misc: kgdbts: fix out-of-bounds access in function param_set_kgdbts_var There is an out-of-bounds access to "config[len - 1]" array when the variable "len" is zero. See commit dada6a43b040 ("kgdboc: fix KASAN global-out-of-bounds bug in param_set_kgdboc_var()") for details. Signed-off-by: Young Xiao Signed-off-by: Daniel Thompson commit 0ba33facfc9bb556d1938caa67dfe452695a9be9 Author: Theodore Ts'o Date: Sun May 12 04:49:47 2019 -0400 ext4: fix miscellaneous sparse warnings Signed-off-by: Theodore Ts'o commit 8f779443b440f975f0eea80a68e9adccc15050c0 Author: Heiner Kallweit Date: Sat May 11 07:44:48 2019 +0200 net: phy: realtek: fix double page ops in generic Realtek driver When adding missing callbacks I missed that one had them set already. Interesting that the compiler didn't complain. Fixes: daf3ddbe11a2 ("net: phy: realtek: add missing page operations") Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 8f5e24514cbd63c352b663636f955fb286f2c3bd Author: Nicholas Mc Guire Date: Sat May 11 02:56:33 2019 +0200 net: qrtr: use protocol endiannes variable sparse was unable to verify endiannes correctness due to reassignment from le32_to_cpu to the same variable - fix this warning up by providing a proper __le32 type and initializing it. This is not actually fixing any bug - rather just addressing the sparse warning. Signed-off-by: Nicholas Mc Guire Signed-off-by: David S. Miller commit 8148c17b179d8acad190551fe0fb90d8f5193990 Merge: 6fe567df04a2 0fbee1df2078 Author: Linus Torvalds Date: Sat May 11 10:54:43 2019 -0400 Merge tag 'gpio-v5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio Pull gpio updates from Linus Walleij: "This is the bulk of the GPIO changes for the v5.2 kernel cycle. A bit later than usual because I was ironing out my own mistakes. I'm holding some stuff back for the next kernel as a result, and this should be a healthy and well tested batch. Core changes: - The gpiolib MMIO driver has been enhanced to handle two direction registers, i.e. one register to set lines as input and one register to set lines as output. It turns out some silicon engineer thinks the ability to configure a line as input and output at the same time makes sense, this can be debated but includes a lot of analog electronics reasoning, and the registers are there and need to be handled consistently. Unsurprisingly, we enforce the lines to be either inputs or outputs in such schemes. - Send in the proper argument value to .set_config() dispatched to the pin control subsystem. Nobody used it before, now someone does, so fix it to work as expected. - The ACPI gpiolib portions can now handle pin bias setting (pull up or pull down). This has been in the ACPI spec for years and we finally have it properly integrated with Linux GPIOs. It was based on an observation from Andy Schevchenko that Thomas Petazzoni's changes to the core for biasing the PCA950x GPIO expander actually happen to fit hand-in-glove with what the ACPI core needed. Such nice synergies happen sometimes. New drivers: - A new driver for the Mellanox BlueField GPIO controller. This is using 64bit MMIO registers and can configure lines as inputs and outputs at the same time and after improving the MMIO library we handle it just fine. Interesting. - A new IXP4xx proper gpiochip driver with hierarchical interrupts should be coming in from the ARM SoC tree as well. Driver enhancements: - The PCA053x driver handles the CAT9554 GPIO expander. - The PCA053x driver handles the NXP PCAL6416 GPIO expander. - Wake-up support on PCA053x GPIO lines. - OMAP now does a nice asynchronous IRQ handling on wake-ups by letting everything wake up on edges, and this makes runtime PM work as expected too. Misc: - Several cleanups such as devres fixes. - Get rid of some languager comstructs that cause problems when compiling with LLVMs clang. - Documentation review and update" * tag 'gpio-v5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio: (85 commits) gpio: Update documentation docs: gpio: convert docs to ReST and rename to *.rst gpio: sch: Remove write-only core_base gpio: pxa: Make two symbols static gpiolib: acpi: Respect pin bias setting gpiolib: acpi: Add acpi_gpio_update_gpiod_lookup_flags() helper gpiolib: acpi: Set pin value, based on bias, more accurately gpiolib: acpi: Change type of dflags gpiolib: Introduce GPIO_LOOKUP_FLAGS_DEFAULT gpiolib: Make use of enum gpio_lookup_flags consistent gpiolib: Indent entry values of enum gpio_lookup_flags gpio: pca953x: add support for pca6416 dt-bindings: gpio: pca953x: document the nxp,pca6416 gpio: pca953x: add pcal6416 to the of_device_id table gpio: gpio-omap: Remove conditional pm_runtime handling for GPIO interrupts gpio: gpio-omap: configure edge detection for level IRQs for idle wakeup tracing: stop making gpio tracing configurable gpio: pca953x: Configure wake-up path when wake-up is enabled gpio: of: Optimize quirk checks gpio: mmio: Drop bgpio_dir_inverted ... commit 6fe567df04a27468b306ae5c53fa7a1cd3acc5e1 Merge: c367dc8d0dd2 15c80c1659f2 Author: Linus Torvalds Date: Sat May 11 10:47:46 2019 -0400 Merge tag 'vfio-v5.2-rc1' of git://github.com/awilliam/linux-vfio Pull VFIO updates from Alex Williamson: - Improve dev_printk() usage (Bjorn Helgaas) - Fix issue with blocking in !TASK_RUNNING state while waiting for userspace to release devices (Farhan Ali) - Fix error path cleanup in nvlink setup (Greg Kurz) - mdev-core cleanups and fixes in preparation for more use cases (Parav Pandit) - Cornelia has volunteered as an official vfio reviewer (Cornelia Huck) * tag 'vfio-v5.2-rc1' of git://github.com/awilliam/linux-vfio: vfio: Add Cornelia Huck as reviewer vfio/mdev: Avoid inline get and put parent helpers vfio/mdev: Fix aborting mdev child device removal if one fails vfio/mdev: Follow correct remove sequence vfio/mdev: Avoid masking error code to EBUSY vfio/mdev: Drop redundant extern for exported symbols vfio/mdev: Removed unused kref vfio/mdev: Avoid release parent reference during error path vfio-pci/nvlink2: Fix potential VMA leak vfio: Fix WARNING "do not call blocking ops when !TASK_RUNNING" vfio: Use dev_printk() when possible commit c367dc8d0dd2a1e1ed9fdc2dd831053bdfdf0968 Merge: 7a5575212ce4 4ad98ac46490 Author: Linus Torvalds Date: Sat May 11 10:38:59 2019 -0400 Merge branch 'next-tomoyo2' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security Pull tomoyo updates from James Morris: "Fixes to enable fuzz testing, and a fix for calculating whether a filesystem is user-modifiable" * 'next-tomoyo2' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: tomoyo: Don't emit WARNING: string while fuzzing testing. tomoyo: Change pathname calculation for read-only filesystems. tomoyo: Check address length before reading address family tomoyo: Add a kernel config option for fuzzing testing. commit 7a5575212ce4b6a41581b92fe03b6be1134793ba Merge: 1fb3b526df3b a5944195d00a Author: Linus Torvalds Date: Sat May 11 10:27:34 2019 -0400 Merge tag 'xtensa-20190510' of git://github.com/jcmvbkbc/linux-xtensa Pull xtensa updates from Max Filippov: - implement atomic operations using exclusive access Xtensa option operations - add support for Xtensa cores with memory protection unit (MPU) - clean up xtensa-specific kernel-only headers - fix error path in simdisk_setup * tag 'xtensa-20190510' of git://github.com/jcmvbkbc/linux-xtensa: xtensa: implement initialize_cacheattr for MPU cores xtensa: add exclusive atomics support xtensa: clean up inline assembly in futex.h xtensa: replace variant/core.h with asm/core.h xtensa: drop ifdef __KERNEL__ from kernel-only headers xtensa: set proper error code for simdisk_setup() xtensa: fix incorrect fd close in error case of simdisk_setup() commit 693713cbdb3a4bda5a8a678c31f06560bbb14657 Author: Steven Rostedt (VMware) Date: Sat May 11 08:32:40 2019 -0400 x86: Hide the int3_emulate_call/jmp functions from UML User Mode Linux does not have access to the ip or sp fields of the pt_regs, and accessing them causes UML to fail to build. Hide the int3_emulate_jmp() and int3_emulate_call() instructions from UML, as it doesn't need them anyway. Reported-by: kbuild test robot Signed-off-by: Steven Rostedt (VMware) commit e6d12298310fa1dc11f1d747e05b168016057fdd Author: Sean Nyekjaer Date: Tue May 7 10:23:04 2019 +0200 iio: adc: ti-ads8688: fix timestamp is not updated in buffer When using the hrtimer iio trigger timestamp isn't updated. If we use iio_get_time_ns it is updated correctly. Fixes: 2a86487786b5c ("iio: adc: ti-ads8688: add trigger and buffer support") Signed-off-by: Sean Nyekjaer Cc: Signed-off-by: Jonathan Cameron commit 60f2208699ec08ff9fdf1f97639a661a92a18f1c Author: Ruslan Babayev Date: Sun May 5 12:24:37 2019 -0700 iio: dac: ds4422/ds4424 fix chip verification The ds4424_get_value function takes channel number as it's 3rd argument and translates it internally into I2C address using DS4424_DAC_ADDR macro. The caller ds4424_verify_chip was passing an already translated I2C address as its last argument. Signed-off-by: Ruslan Babayev Cc: xe-linux-external@cisco.com Cc: Signed-off-by: Jonathan Cameron commit fbbbbd2f28aec991f3fbc248df211550fbdfd58c Author: Colin Ian King Date: Fri May 10 22:06:38 2019 -0400 ext4: unsigned int compared against zero There are two cases where u32 variables n and err are being checked for less than zero error values, the checks is always false because the variables are not signed. Fix this by making the variables ints. Addresses-Coverity: ("Unsigned compared against 0") Fixes: 345c0dbf3a30 ("ext4: protect journal inode's blocks using block_validity") Signed-off-by: Colin Ian King Signed-off-by: Theodore Ts'o commit 08fc98a4d6424af66eb3ac4e2cedd2fc927ed436 Author: Sahitya Tummala Date: Fri May 10 22:00:33 2019 -0400 ext4: fix use-after-free in dx_release() The buffer_head (frames[0].bh) and it's corresping page can be potentially free'd once brelse() is done inside the for loop but before the for loop exits in dx_release(). It can be free'd in another context, when the page cache is flushed via drop_caches_sysctl_handler(). This results into below data abort when accessing info->indirect_levels in dx_release(). Unable to handle kernel paging request at virtual address ffffffc17ac3e01e Call trace: dx_release+0x70/0x90 ext4_htree_fill_tree+0x2d4/0x300 ext4_readdir+0x244/0x6f8 iterate_dir+0xbc/0x160 SyS_getdents64+0x94/0x174 Signed-off-by: Sahitya Tummala Signed-off-by: Theodore Ts'o Reviewed-by: Andreas Dilger Cc: stable@kernel.org commit af959b18fd447170a10865283ba691af4353cc7f Author: Daniel Borkmann Date: Sat May 11 03:03:09 2019 +0200 bpf: fix out of bounds backwards jmps due to dead code removal systemtap folks reported the following splat recently: [ 7790.862212] WARNING: CPU: 3 PID: 26759 at arch/x86/kernel/kprobes/core.c:1022 kprobe_fault_handler+0xec/0xf0 [...] [ 7790.864113] CPU: 3 PID: 26759 Comm: sshd Not tainted 5.1.0-0.rc7.git1.1.fc31.x86_64 #1 [ 7790.864198] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS[...] [ 7790.864314] RIP: 0010:kprobe_fault_handler+0xec/0xf0 [ 7790.864375] Code: 48 8b 50 [...] [ 7790.864714] RSP: 0018:ffffc06800bdbb48 EFLAGS: 00010082 [ 7790.864812] RAX: ffff9e2b75a16320 RBX: 0000000000000000 RCX: 0000000000000000 [ 7790.865306] RDX: ffffffffffffffff RSI: 000000000000000e RDI: ffffc06800bdbbf8 [ 7790.865514] RBP: ffffc06800bdbbf8 R08: 0000000000000000 R09: 0000000000000000 [ 7790.865960] R10: 0000000000000000 R11: 0000000000000000 R12: ffffc06800bdbbf8 [ 7790.866037] R13: ffff9e2ab56a0418 R14: ffff9e2b6d0bb400 R15: ffff9e2b6d268000 [ 7790.866114] FS: 00007fde49937d80(0000) GS:ffff9e2b75a00000(0000) knlGS:0000000000000000 [ 7790.866193] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 7790.866318] CR2: 0000000000000000 CR3: 000000012f312000 CR4: 00000000000006e0 [ 7790.866419] Call Trace: [ 7790.866677] do_user_addr_fault+0x64/0x480 [ 7790.867513] do_page_fault+0x33/0x210 [ 7790.868002] async_page_fault+0x1e/0x30 [ 7790.868071] RIP: 0010: (null) [ 7790.868144] Code: Bad RIP value. [ 7790.868229] RSP: 0018:ffffc06800bdbca8 EFLAGS: 00010282 [ 7790.868362] RAX: ffff9e2b598b60f8 RBX: ffffc06800bdbe48 RCX: 0000000000000004 [ 7790.868629] RDX: 0000000000000004 RSI: ffffc06800bdbc6c RDI: ffff9e2b598b60f0 [ 7790.868834] RBP: ffffc06800bdbcf8 R08: 0000000000000000 R09: 0000000000000004 [ 7790.870432] R10: 00000000ff6f7a03 R11: 0000000000000000 R12: 0000000000000001 [ 7790.871859] R13: ffffc06800bdbcb8 R14: 0000000000000000 R15: ffff9e2acd0a5310 [ 7790.873455] ? vfs_read+0x5/0x170 [ 7790.874639] ? vfs_read+0x1/0x170 [ 7790.875834] ? trace_call_bpf+0xf6/0x260 [ 7790.877044] ? vfs_read+0x1/0x170 [ 7790.878208] ? vfs_read+0x5/0x170 [ 7790.879345] ? kprobe_perf_func+0x233/0x260 [ 7790.880503] ? vfs_read+0x1/0x170 [ 7790.881632] ? vfs_read+0x5/0x170 [ 7790.882751] ? kprobe_ftrace_handler+0x92/0xf0 [ 7790.883926] ? __vfs_read+0x30/0x30 [ 7790.885050] ? ftrace_ops_assist_func+0x94/0x100 [ 7790.886183] ? vfs_read+0x1/0x170 [ 7790.887283] ? vfs_read+0x5/0x170 [ 7790.888348] ? ksys_read+0x5a/0xe0 [ 7790.889389] ? do_syscall_64+0x5c/0xa0 [ 7790.890401] ? entry_SYSCALL_64_after_hwframe+0x49/0xbe After some debugging, turns out that the logic in 2cbd95a5c4fb ("bpf: change parameters of call/branch offset adjustment") has a bug that is exposed after 52875a04f4b2 ("bpf: verifier: remove dead code") in that we miss some of the jump offset adjustments after code patching when we remove dead code, more concretely, upon backward jump spanning over the area that is being removed. BPF insns of a case that was hit pre 52875a04f4b2: [...] 676: (85) call bpf_perf_event_output#-47616 677: (05) goto pc-636 678: (62) *(u32 *)(r10 -64) = 0 679: (bf) r7 = r10 680: (07) r7 += -64 681: (05) goto pc-44 682: (05) goto pc-1 683: (05) goto pc-1 BPF insns afterwards: [...] 618: (85) call bpf_perf_event_output#-47616 619: (05) goto pc-638 620: (62) *(u32 *)(r10 -64) = 0 621: (bf) r7 = r10 622: (07) r7 += -64 623: (05) goto pc-44 To illustrate the bug, situation looks as follows: ____ 0 | | <-- foo: [...] 1 |____| 2 |____| <-- pos / end_new ^ 3 | | | 4 | | | len 5 |____| | (remove region) 6 | | <-- end_old v 7 | | 8 | | <-- curr (jmp foo) 9 |____| The condition curr >= end_new && curr + off + 1 < end_new in the branch delta adjustments is never hit because curr + off + 1 < end_new is compared as unsigned and therefore curr + off + 1 > end_new in unsigned realm as curr + off + 1 becomes negative since the insns are memmove()'d before the offset adjustments. Correct BPF insns after this fix: [...] 618: (85) call bpf_perf_event_output#-47216 619: (05) goto pc-578 620: (62) *(u32 *)(r10 -64) = 0 621: (bf) r7 = r10 622: (07) r7 += -64 623: (05) goto pc-44 Note that unprivileged case is not affected from this. Fixes: 52875a04f4b2 ("bpf: verifier: remove dead code") Fixes: 2cbd95a5c4fb ("bpf: change parameters of call/branch offset adjustment") Reported-by: Frank Ch. Eigler Signed-off-by: Daniel Borkmann Reviewed-by: Jakub Kicinski Signed-off-by: Alexei Starovoitov commit 57a0da28ced8707cb9f79f071a016b9d005caf5a Author: Lukas Czerner Date: Fri May 10 21:45:33 2019 -0400 ext4: fix data corruption caused by overlapping unaligned and aligned IO Unaligned AIO must be serialized because the zeroing of partial blocks of unaligned AIO can result in data corruption in case it's overlapping another in flight IO. Currently we wait for all unwritten extents before we submit unaligned AIO which protects data in case of unaligned AIO is following overlapping IO. However if a unaligned AIO is followed by overlapping aligned AIO we can still end up corrupting data. To fix this, we must make sure that the unaligned AIO is the only IO in flight by waiting for unwritten extents conversion not just before the IO submission, but right after it as well. This problem can be reproduced by xfstest generic/538 Signed-off-by: Lukas Czerner Signed-off-by: Theodore Ts'o Cc: stable@kernel.org commit 0d52154bb0a700abb459a2cbce0a30fc2549b67e Author: Chengguang Xu Date: Fri May 10 21:15:47 2019 -0400 jbd2: fix potential double free When failing from creating cache jbd2_inode_cache, we will destroy the previously created cache jbd2_handle_cache twice. This patch fixes this by moving each cache initialization/destruction to its own separate, individual function. Signed-off-by: Chengguang Xu Signed-off-by: Theodore Ts'o Cc: stable@kernel.org commit 592acbf16821288ecdc4192c47e3774a4c48bb64 Author: Sriram Rajagopalan Date: Fri May 10 19:28:06 2019 -0400 ext4: zero out the unused memory region in the extent tree block This commit zeroes out the unused memory region in the buffer_head corresponding to the extent metablock after writing the extent header and the corresponding extent node entries. This is done to prevent random uninitialized data from getting into the filesystem when the extent block is synced. This fixes CVE-2019-11833. Signed-off-by: Sriram Rajagopalan Signed-off-by: Theodore Ts'o Cc: stable@kernel.org commit 259799ea5a9aa099a267f3b99e1f7078bbaf5c5e Author: Chris Packham Date: Fri May 10 21:00:25 2019 +1200 gcc-plugins: arm_ssp_per_task_plugin: Fix for older GCC < 6 Use gen_rtx_set instead of gen_rtx_SET. The former is a wrapper macro that handles the difference between GCC versions implementing the latter. This fixes the following error on my system with g++ 5.4.0 as the host compiler HOSTCXX -fPIC scripts/gcc-plugins/arm_ssp_per_task_plugin.o scripts/gcc-plugins/arm_ssp_per_task_plugin.c:42:14: error: macro "gen_rtx_SET" requires 3 arguments, but only 2 given mask)), ^ scripts/gcc-plugins/arm_ssp_per_task_plugin.c: In function ‘unsigned int arm_pertask_ssp_rtl_execute()’: scripts/gcc-plugins/arm_ssp_per_task_plugin.c:39:20: error: ‘gen_rtx_SET’ was not declared in this scope emit_insn_before(gen_rtx_SET Signed-off-by: Chris Packham Fixes: 189af4657186 ("ARM: smp: add support for per-task stack canaries") Cc: stable@vger.kernel.org Tested-by: Douglas Anderson Signed-off-by: Kees Cook commit daf3ddbe11a2ff74c95bc814df8e5fe3201b4cb5 Author: Heiner Kallweit Date: Fri May 10 22:11:26 2019 +0200 net: phy: realtek: add missing page operations Add missing page operation callbacks to few Realtek drivers. This also fixes a NPE after the referenced commit added code to the RTL8211E driver that uses phy_select_page(). Fixes: f81dadbcf7fd ("net: phy: realtek: Add rtl8211e rx/tx delays config") Signed-off-by: Heiner Kallweit Reviewed-by: Florian Fainelli Reported-by: Vicente Bergas Signed-off-by: David S. Miller commit 9593dc3535a3ed3a2016b39019b9d84f954e289c Merge: 0655f9943df2 1b9705d9713b Author: David S. Miller Date: Fri May 10 15:14:30 2019 -0700 Merge branch 'of_get_mac_address-fixes' Petr Štetiar says: ==================== of_get_mac_address fixes this patch series is hopefuly the last series of the fixes which are related to the introduction of NVMEM support into of_get_mac_address. First patch is removing `nvmem-mac-address` property which was wrong idea as I've allocated the property with devm_kzalloc and then added it to DT, so then 2 entities would be refcounting the allocation. So if the driver unbinds, the buffer is freed, but DT code would be still referencing that memory. Second patch fixes some unwanted references to the Linux API in the DT bindings documentation. Patches 3-5 should hopefully make compilers and thus kbuild test robot happy. ==================== Signed-off-by: David S. Miller commit 1b9705d9713b67996608763e2317673d8378b03c Author: Petr Štetiar Date: Fri May 10 11:35:18 2019 +0200 net: wireless: mt76: fix similar warning reported by kbuild test robot This patch fixes following (similar) warning reported by kbuild test robot: In function ‘memcpy’, inlined from ‘smsc75xx_init_mac_address’ at drivers/net/usb/smsc75xx.c:778:3, inlined from ‘smsc75xx_bind’ at drivers/net/usb/smsc75xx.c:1501:2: ./include/linux/string.h:355:9: warning: argument 2 null where non-null expected [-Wnonnull] return __builtin_memcpy(p, q, size); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/usb/smsc75xx.c: In function ‘smsc75xx_bind’: ./include/linux/string.h:355:9: note: in a call to built-in function ‘__builtin_memcpy’ I've replaced the offending memcpy with ether_addr_copy, because I'm 100% sure, that of_get_mac_address can't return NULL as it returns valid pointer or ERR_PTR encoded value, nothing else. I'm hesitant to just change IS_ERR into IS_ERR_OR_NULL check, as this would make the warning disappear also, but it would be confusing to check for impossible return value just to make a compiler happy. I'm now changing all occurencies of memcpy to ether_addr_copy after the of_get_mac_address call, as it's very likely, that we're going to get similar reports from kbuild test robot in the future. Fixes: d31a36b5f407 ("net: wireless: support of_get_mac_address new ERR_PTR error") Reported-by: kbuild test robot Signed-off-by: Petr Štetiar Signed-off-by: David S. Miller commit 2d2924af96881f3300239156d6ff316a1a3e48e5 Author: Petr Štetiar Date: Fri May 10 11:35:17 2019 +0200 net: ethernet: fix similar warning reported by kbuild test robot This patch fixes following (similar) warning reported by kbuild test robot: In function ‘memcpy’, inlined from ‘smsc75xx_init_mac_address’ at drivers/net/usb/smsc75xx.c:778:3, inlined from ‘smsc75xx_bind’ at drivers/net/usb/smsc75xx.c:1501:2: ./include/linux/string.h:355:9: warning: argument 2 null where non-null expected [-Wnonnull] return __builtin_memcpy(p, q, size); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/usb/smsc75xx.c: In function ‘smsc75xx_bind’: ./include/linux/string.h:355:9: note: in a call to built-in function ‘__builtin_memcpy’ I've replaced the offending memcpy with ether_addr_copy, because I'm 100% sure, that of_get_mac_address can't return NULL as it returns valid pointer or ERR_PTR encoded value, nothing else. I'm hesitant to just change IS_ERR into IS_ERR_OR_NULL check, as this would make the warning disappear also, but it would be confusing to check for impossible return value just to make a compiler happy. I'm now changing all occurencies of memcpy to ether_addr_copy after the of_get_mac_address call, as it's very likely, that we're going to get similar reports from kbuild test robot in the future. Fixes: a51645f70f63 ("net: ethernet: support of_get_mac_address new ERR_PTR error") Reported-by: kbuild test robot Signed-off-by: Petr Štetiar Signed-off-by: David S. Miller commit 1be91314532c4a2779fa17665b6d0368972b570b Author: Petr Štetiar Date: Fri May 10 11:35:16 2019 +0200 powerpc: tsi108: fix similar warning reported by kbuild test robot This patch fixes following (similar) warning reported by kbuild test robot: In function ‘memcpy’, inlined from ‘smsc75xx_init_mac_address’ at drivers/net/usb/smsc75xx.c:778:3, inlined from ‘smsc75xx_bind’ at drivers/net/usb/smsc75xx.c:1501:2: ./include/linux/string.h:355:9: warning: argument 2 null where non-null expected [-Wnonnull] return __builtin_memcpy(p, q, size); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/usb/smsc75xx.c: In function ‘smsc75xx_bind’: ./include/linux/string.h:355:9: note: in a call to built-in function ‘__builtin_memcpy’ I've replaced the offending memcpy with ether_addr_copy, because I'm 100% sure, that of_get_mac_address can't return NULL as it returns valid pointer or ERR_PTR encoded value, nothing else. I'm hesitant to just change IS_ERR into IS_ERR_OR_NULL check, as this would make the warning disappear also, but it would be confusing to check for impossible return value just to make a compiler happy. I'm now changing all occurencies of memcpy to ether_addr_copy after the of_get_mac_address call, as it's very likely, that we're going to get similar reports from kbuild test robot in the future. Fixes: ea168cdf1299 ("powerpc: tsi108: support of_get_mac_address new ERR_PTR error") Reported-by: kbuild test robot Signed-off-by: Petr Štetiar Signed-off-by: David S. Miller commit 51828950272d192ecab06da399d58941d2fd4952 Author: Petr Štetiar Date: Fri May 10 11:35:15 2019 +0200 dt-bindings: doc: net: remove Linux API references In commit 687e3d5550c7 ("dt-bindings: doc: reflect new NVMEM of_get_mac_address behaviour") I've kept or added references to Linux of_get_mac_address API which is unwanted so this patch fixes that by removing those references. Fixes: 687e3d5550c7 ("dt-bindings: doc: reflect new NVMEM of_get_mac_address behaviour") Suggested-by: Rob Herring Signed-off-by: Petr Štetiar Signed-off-by: David S. Miller commit 265749861a2483263e6cd4c5e305640e4651c110 Author: Petr Štetiar Date: Fri May 10 11:35:14 2019 +0200 of_net: remove nvmem-mac-address property In commit d01f449c008a ("of_net: add NVMEM support to of_get_mac_address") I've added `nvmem-mac-address` property which was wrong idea as I've allocated the property with devm_kzalloc and then added it to DT, so then 2 entities would be refcounting the allocation. So if the driver unbinds, the buffer is freed, but DT code would be still referencing that memory. I'm removing this property completely instead of fixing it, as it's not needed to have it. Fixes: d01f449c008a ("of_net: add NVMEM support to of_get_mac_address") Suggested-by: Rob Herring Signed-off-by: Petr Štetiar Signed-off-by: David S. Miller commit 0655f9943df2f2d71f406fd77b51d05548134fc2 Author: Thomas Falcon Date: Thu May 9 23:13:44 2019 -0500 net/ibmvnic: Update carrier state after link state change Only set the device carrier state to on after receiving an up link state indication from the underlying adapter. Likewise, if a down link indication is receieved, update the carrier state accordingly. This fix ensures that accurate carrier state is reported by the driver following a link state update by the underlying adapter. Signed-off-by: Thomas Falcon Signed-off-by: David S. Miller commit 62740e97881c78b45a117a358a866fb32975def6 Author: Thomas Falcon Date: Thu May 9 23:13:43 2019 -0500 net/ibmvnic: Update MAC address settings after adapter reset It was discovered in testing that the underlying hardware MAC address will revert to initial settings following a device reset, but the driver fails to resend the current OS MAC settings. This oversight can result in dropped packets should the scenario occur. Fix this by informing hardware of current MAC address settings following any adapter initialization or resets. Signed-off-by: Thomas Falcon Signed-off-by: David S. Miller commit b96a54154be10f8d4f79d5d1cbfee7176947ad64 Author: YueHaibing Date: Fri May 10 11:00:28 2019 +0800 dsa: tag_brcm: Fix build error without CONFIG_NET_DSA_TAG_BRCM_PREPEND Fix gcc build error: net/dsa/tag_brcm.c:211:16: error: brcm_prepend_netdev_ops undeclared here (not in a function); did you mean brcm_netdev_ops? DSA_TAG_DRIVER(brcm_prepend_netdev_ops); ^ ./include/net/dsa.h:708:10: note: in definition of macro DSA_TAG_DRIVER .ops = &__ops, \ ^~~~~ ./include/net/dsa.h:701:36: warning: dsa_tag_driver_brcm_prepend_netdev_ops defined but not used [-Wunused-variable] #define DSA_TAG_DRIVER_NAME(__ops) dsa_tag_driver ## _ ## __ops ^ ./include/net/dsa.h:707:30: note: in expansion of macro DSA_TAG_DRIVER_NAME static struct dsa_tag_driver DSA_TAG_DRIVER_NAME(__ops) = { \ ^~~~~~~~~~~~~~~~~~~ net/dsa/tag_brcm.c:211:1: note: in expansion of macro DSA_TAG_DRIVER DSA_TAG_DRIVER(brcm_prepend_netdev_ops); Like the CONFIG_NET_DSA_TAG_BRCM case, brcm_prepend_netdev_ops and DSA_TAG_PROTO_BRCM_PREPEND should be wrappeed by CONFIG_NET_DSA_TAG_BRCM_PREPEND. Reported-by: Hulk Robot Fixes: b74b70c44986 ("net: dsa: Support prepended Broadcom tag") Signed-off-by: YueHaibing Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit bdfad5aec1392b93495b77b864d58d7f101dc1c1 Author: Tobin C. Harding Date: Fri May 10 12:52:12 2019 +1000 bridge: Fix error path for kobject_init_and_add() Currently error return from kobject_init_and_add() is not followed by a call to kobject_put(). This means there is a memory leak. We currently set p to NULL so that kfree() may be called on it as a noop, the code is arguably clearer if we move the kfree() up closer to where it is called (instead of after goto jump). Remove a goto label 'err1' and jump to call to kobject_put() in error return from kobject_init_and_add() fixing the memory leak. Re-name goto label 'put_back' to 'err1' now that we don't use err1, following current nomenclature (err1, err2 ...). Move call to kfree out of the error code at bottom of function up to closer to where memory was allocated. Add comment to clarify call to kfree(). Signed-off-by: Tobin C. Harding Signed-off-by: David S. Miller commit 4ad98ac46490d5f8441025930070eaf028cfd0f2 Author: Tetsuo Handa Date: Tue May 7 20:34:22 2019 +0900 tomoyo: Don't emit WARNING: string while fuzzing testing. Commit cff0e6c3ec3e6230 ("tomoyo: Add a kernel config option for fuzzing testing.") enabled the learning mode, but syzkaller is detecting any "WARNING:" string as a crash. Thus, disable TOMOYO's quota warning if built for fuzzing testing. Signed-off-by: Tetsuo Handa Cc: Dmitry Vyukov Signed-off-by: James Morris commit 27df4b4a1b5fe2bef54ebc49d64bf5b39125f26a Author: Tetsuo Handa Date: Wed Feb 27 23:19:24 2019 +0900 tomoyo: Change pathname calculation for read-only filesystems. Commit 5625f2e3266319fd ("TOMOYO: Change pathname for non-rename()able filesystems.") intended to be applied to filesystems where the content is not controllable from the userspace (e.g. proc, sysfs, securityfs), based on an assumption that such filesystems do not support rename() operation. But it turned out that read-only filesystems also do not support rename() operation despite the content is controllable from the userspace, and that commit is annoying TOMOYO users who want to use e.g. squashfs as the root filesystem due to use of local name which does not start with '/'. Therefore, based on an assumption that filesystems which require the device argument upon mount() request is an indication that the content is controllable from the userspace, do not use local name if a filesystem does not support rename() operation but requires the device argument upon mount() request. Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit e6193f78bb689f3f424559bb45f4a091c8b314df Author: Tetsuo Handa Date: Fri Apr 12 19:59:36 2019 +0900 tomoyo: Check address length before reading address family KMSAN will complain if valid address length passed to bind()/connect()/ sendmsg() is shorter than sizeof("struct sockaddr"->sa_family) bytes. Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit e80b18599a39a625bc8b2e39ba3004a62f78805a Author: Tetsuo Handa Date: Fri Apr 12 20:04:54 2019 +0900 tomoyo: Add a kernel config option for fuzzing testing. syzbot is reporting kernel panic triggered by memory allocation fault injection before loading TOMOYO's policy [1]. To make the fuzzing tests useful, we need to assign a profile other than "disabled" (no-op) mode. Therefore, let's allow syzbot to load TOMOYO's built-in policy for "learning" mode using a kernel config option. This option must not be enabled for kernels built for production system, for this option also disables domain/program checks when modifying policy configuration via /sys/kernel/security/tomoyo/ interface. [1] https://syzkaller.appspot.com/bug?extid=29569ed06425fcf67a95 Reported-by: syzbot Reported-by: syzbot Reported-by: syzbot Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit 56e33afd7757d5da2664fb797f2544ce167176be Author: Jiri Kosina Date: Fri May 10 23:47:50 2019 +0200 livepatch: Remove klp_check_compiler_support() The only purpose of klp_check_compiler_support() is to make sure that we are not using ftrace on x86 via mcount (because that's executed only after prologue has already happened, and that's too late for livepatching purposes). Now that mcount is not supported by ftrace any more, there is no need for klp_check_compiler_support() either. Link: http://lkml.kernel.org/r/nycvar.YFH.7.76.1905102346100.17054@cbobk.fhfr.pm Reported-by: Linus Torvalds Signed-off-by: Jiri Kosina Signed-off-by: Steven Rostedt (VMware) commit 4e617c86ba9be5211643e53f5f69d1195c956d68 Author: Helge Deller Date: Fri May 10 20:56:16 2019 +0200 parisc: Use __ro_after_init in init.c Signed-off-by: Helge Deller commit 47293774c49c174c9863a60a757b825299ddf649 Author: Helge Deller Date: Fri May 10 20:55:51 2019 +0200 parisc: Use __ro_after_init in unwind.c Signed-off-by: Helge Deller commit 34589df6338afc75208cd3f9b612c1ae7738bbd0 Author: Helge Deller Date: Fri May 10 20:55:31 2019 +0200 parisc: Use __ro_after_init in time.c Signed-off-by: Helge Deller commit d98883690b7bc5faab98795dff694549e4c60556 Author: Helge Deller Date: Fri May 10 20:55:08 2019 +0200 parisc: Use __ro_after_init in processor.c Signed-off-by: Helge Deller commit 7e4c65bf0637c089d8981ac7e99081a57ffbcdbc Author: Helge Deller Date: Fri May 10 20:54:31 2019 +0200 parisc: Use __ro_after_init in process.c Signed-off-by: Helge Deller commit 67266fd48f0f6cb42838aeac2ef55417640ad1b5 Author: Helge Deller Date: Fri May 10 20:53:46 2019 +0200 parisc: Use __ro_after_init in perf_images.h Signed-off-by: Helge Deller commit 874b051923dd757adfeacc71ea2f7f0cfbf267c4 Author: Helge Deller Date: Fri May 10 20:52:36 2019 +0200 parisc: Use __ro_after_init in pci.c Signed-off-by: Helge Deller commit 7c1952b4be68a40d2283b16d8236cb8d2af1272f Author: Helge Deller Date: Fri May 10 20:51:44 2019 +0200 parisc: Use __ro_after_init in inventory.c Signed-off-by: Helge Deller commit dc1b3c0d50eae30c4588f2146fe41b49584e50fb Author: Helge Deller Date: Fri May 10 20:50:46 2019 +0200 parisc: Use __ro_after_init in head.S Signed-off-by: Helge Deller commit 1b69085d4fcfd1df67d86a553c522fa1cb7603b4 Author: Helge Deller Date: Fri May 10 20:50:16 2019 +0200 parisc: Use __ro_after_init in firmware.c Signed-off-by: Helge Deller commit 9aa8848a751fec5f655f4409875baaee1ca3e3e8 Author: Helge Deller Date: Fri May 10 20:49:16 2019 +0200 parisc: Use __ro_after_init in drivers.c Signed-off-by: Helge Deller commit 271c29a17fadd3eabbfe63f13bb49dfb6c9d872d Author: Helge Deller Date: Fri May 10 20:47:11 2019 +0200 parisc: Use __ro_after_init in cache.c Signed-off-by: Helge Deller commit 8d0e051cc75e2b1a7e2fd51fc56af332c9619618 Author: Helge Deller Date: Fri May 10 17:00:01 2019 +0200 parisc: Enable the ro_after_init feature This patch modifies the initial page mapping functions in the following way: During bootup the init, text and data pages will be mapped RWX and if supported, with huge pages. At final stage of the bootup, the kernel calls free_initmem() and then all pages will be remapped either R-X (for text and read-only data) or RW- (for data). The __init pages will be dropped. This reflects the behaviour of the x86 platform. Signed-off-by: Helge Deller commit e6eb5fe9123f05dcbf339ae5c0b6d32fcc0685d5 Author: Helge Deller Date: Tue May 7 20:19:05 2019 +0200 parisc: Drop LDCW barrier in CAS code when running UP When running an SMP kernel on a single-CPU machine, we can speed up the CAS code by replacing the LDCW sync barrier with NOP. Signed-off-by: Helge Deller commit d20f6b41b7c2715b3d900f2da02029dbc14cd60a Author: Masayoshi Mizuma Date: Thu May 9 17:36:47 2019 -0400 ktest: update sample.conf for grub2bls Update sample.conf for grub2bls Link: http://lkml.kernel.org/r/20190509213647.6276-7-msys.mizuma@gmail.com Signed-off-by: Masayoshi Mizuma Signed-off-by: Steven Rostedt (VMware) commit 00603cd687db3b7cc5e62a186dca66e4a5fa03dc Author: Masayoshi Mizuma Date: Thu May 9 17:36:46 2019 -0400 ktest: remove get_grub2_index Remove get_grub2_index() because it isn't used anywhere. Link: http://lkml.kernel.org/r/20190509213647.6276-6-msys.mizuma@gmail.com Signed-off-by: Masayoshi Mizuma Signed-off-by: Steven Rostedt (VMware) commit cc2eb3a2f82c8c07a9d0e24d5cd9f4416d001f98 Author: Masayoshi Mizuma Date: Thu May 9 17:36:45 2019 -0400 ktest: pass KERNEL_VERSION to POST_KTEST For BLS, kernel entry is added by kernel-install command through POST_INSALL, for example, POST_INSTALL = ssh root@Test "/usr/bin/kernel-install \ add $KERNEL_VERSION /boot/vmlinuz-$KERNEL_VERSION" The entry is removed by kernel-install command and the kernel version is needed for the argument. Pass KERNEL_VERSION variable to POST_KTEST so that kernel-install command can remove the entry like as follows: POST_KTEST = ssh root@Test "/usr/bin/kernel-install remove $KERNEL_VERSION" Link: http://lkml.kernel.org/r/20190509213647.6276-5-msys.mizuma@gmail.com Signed-off-by: Masayoshi Mizuma Signed-off-by: Steven Rostedt (VMware) commit ac2466456eaa0ff9b8cf647c4c52832024bc929f Author: Masayoshi Mizuma Date: Thu May 9 17:36:44 2019 -0400 ktest: introduce grub2bls REBOOT_TYPE option Fedora 30 introduces Boot Loader Specification (BLS), it changes around grub entry configuration. kernel entries aren't in grub.cfg. We can get the entries by "grubby --info=ALL" command. Introduce grub2bls as REBOOT_TYPE option for BLS. Link: http://lkml.kernel.org/r/20190509213647.6276-4-msys.mizuma@gmail.com Signed-off-by: Masayoshi Mizuma Signed-off-by: Steven Rostedt (VMware) commit 38891392916c42d4ba46f474d553c76d1ed329ca Author: Masayoshi Mizuma Date: Thu May 9 17:36:43 2019 -0400 ktest: cleanup get_grub_index Cleanup get_grub_index(). Link: http://lkml.kernel.org/r/20190509213647.6276-3-msys.mizuma@gmail.com Signed-off-by: Masayoshi Mizuma Signed-off-by: Steven Rostedt (VMware) commit f824b6866835bc5051c44ffd289134974f214e98 Author: Masayoshi Mizuma Date: Thu May 9 17:36:42 2019 -0400 ktest: introduce _get_grub_index Introduce _get_grub_index() to deal with Boot Loader Specification (BLS) and cleanup. Link: http://lkml.kernel.org/r/20190509213647.6276-2-msys.mizuma@gmail.com Signed-off-by: Masayoshi Mizuma Signed-off-by: Steven Rostedt (VMware) commit 14e0c7317ed58bcd15af5c3d09818ee0f2e3984c Merge: 3a349763cf11 0981949da8f7 Author: Dmitry Torokhov Date: Fri May 10 11:40:35 2019 -0700 Merge branch 'next' into for-linus Prepare input updates for 5.2 merge window. commit 2b8358a951b1e2a534a54924cd8245e58a1c5fb8 Author: Michael Ellerman Date: Fri May 3 00:19:41 2019 +1000 EDAC/mpc85xx: Prevent building as a module The mpc85xx EDAC driver can be configured as a module but then fails to build because it uses two unexported symbols: ERROR: ".pci_find_hose_for_OF_device" [drivers/edac/mpc85xx_edac_mod.ko] undefined! ERROR: ".early_find_capability" [drivers/edac/mpc85xx_edac_mod.ko] undefined! We don't want to export those symbols just for this driver, so make the driver only configurable as a built-in. This seems to have been broken since at least c92132f59806 ("edac/85xx: Add PCIe error interrupt edac support") (Nov 2013). [ bp: make it depend on EDAC=y so that the EDAC core doesn't get built as a module. ] Signed-off-by: Michael Ellerman Signed-off-by: Borislav Petkov Acked-by: Johannes Thumshirn Cc: James Morse Cc: Mauro Carvalho Chehab Cc: linux-edac Cc: linuxppc-dev@ozlabs.org Cc: morbidrsa@gmail.com Link: https://lkml.kernel.org/r/20190502141941.12927-1-mpe@ellerman.id.au commit 1fb3b526df3bd7647e7854915ae6b22299408baf Merge: e290e6af1d22 afbd4d42470e Author: Linus Torvalds Date: Fri May 10 13:24:53 2019 -0400 Merge tag 'docs-5.2a' of git://git.lwn.net/linux Pull more documentation updates from Jonathan Corbet: "Some late arriving documentation changes. In particular, this contains the conversion of the x86 docs to RST, which has been in the works for some time but needed a couple of final tweaks" * tag 'docs-5.2a' of git://git.lwn.net/linux: (29 commits) Documentation: x86: convert x86_64/machinecheck to reST Documentation: x86: convert x86_64/cpu-hotplug-spec to reST Documentation: x86: convert x86_64/fake-numa-for-cpusets to reST Documentation: x86: convert x86_64/5level-paging.txt to reST Documentation: x86: convert x86_64/mm.txt to reST Documentation: x86: convert x86_64/uefi.txt to reST Documentation: x86: convert x86_64/boot-options.txt to reST Documentation: x86: convert i386/IO-APIC.txt to reST Documentation: x86: convert usb-legacy-support.txt to reST Documentation: x86: convert orc-unwinder.txt to reST Documentation: x86: convert resctrl_ui.txt to reST Documentation: x86: convert microcode.txt to reST Documentation: x86: convert pti.txt to reST Documentation: x86: convert amd-memory-encryption.txt to reST Documentation: x86: convert intel_mpx.txt to reST Documentation: x86: convert protection-keys.txt to reST Documentation: x86: convert pat.txt to reST Documentation: x86: convert mtrr.txt to reST Documentation: x86: convert tlb.txt to reST Documentation: x86: convert zero-page.txt to reST ... commit 580c5b3e1b8bc49dd5452c8a65a72452c534b4b5 Author: Masahiro Yamada Date: Sat May 11 01:56:01 2019 +0900 kconfig: make parent directories for the saved .config as needed With menuconfig / nconfig, users can input any file path from the "Save" menu, but it fails if the parent directory does not exist. Why not create the parent directory automatically. I think this is a user-friendly behavior. I changed the error messages in menuconfig / nconfig. "Nonexistent directory" is no longer the most likely reason of the failure. Perhaps, the user specified the existing directory, or attempted to write to the location without write permission. Signed-off-by: Masahiro Yamada commit 67424f61f8132215514e03ce1760d30356ac56d7 Author: Masahiro Yamada Date: Fri May 10 15:12:05 2019 +0900 kconfig: do not write .config if the content is the same Kconfig updates the .config when it exits even if its content is exactly the same as before. Since its timestamp becomes newer than that of other build artifacts, additional processing is invoked, which is annoying. - syncconfig is invoked to update include/config/auto.conf, etc. - kernel/configs.o is recompiled if CONFIG_IKCONFIG is enabled, then vmlinux is relinked as well. If the .config is not changed at all, we do not have to even touch it. Just bail out showing "No change to .config". $ make allmodconfig scripts/kconfig/conf --allmodconfig Kconfig # # configuration written to .config # $ make allmodconfig scripts/kconfig/conf --allmodconfig Kconfig # # No change to .config # Reported-by: Linus Torvalds Signed-off-by: Masahiro Yamada Reviewed-by: Greg Kroah-Hartman commit ceb7f3296ea1fa652d68e5ecb0facf5fba19a554 Author: Masahiro Yamada Date: Fri May 10 15:12:04 2019 +0900 kconfig: do not accept a directory for configuration output Currently, conf_write() can be called with a directory name instead of a file name. As far as I see, this can happen for menuconfig, nconfig, gconfig. If it is given with a directory path, conf_write() kindly appends getenv("KCONFIG_CONFIG"), but this ends up with hacky dir/basename handling, and screwed up in corner-cases like "what if KCONFIG_CONFIG is an absolute path?" as discussed before: https://patchwork.kernel.org/patch/9910037/ Since conf_write() is already messed up, I'd say "do not do it". Please pass a file path all the time. If a directory path is specified for the configuration output, conf_write() will simply error out. Now that the tmp file is created in the same directory as the .config, the previously reported "what if KCONFIG_CONFIG points to a different file system?" has been solved. Signed-off-by: Masahiro Yamada Cc: Nicolas Porcel commit e290e6af1d22c3f5225c9d46faabdde80e27aef2 Merge: 3232b43f7252 2ac5a3bf7042 Author: Linus Torvalds Date: Fri May 10 13:14:07 2019 -0400 Merge tag 'printk-for-5.2-fixes' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/pmladek/printk Pull printk fixup from Petr Mladek: "Replace the problematic probe_kernel_read() with original simple pointer checks in vsprintf()" * tag 'printk-for-5.2-fixes' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/pmladek/printk: vsprintf: Do not break early boot with probing addresses commit 3232b43f7252e04efd703ca8ecb87e2567a36388 Merge: 7817ffd20a0f c3b7112df86b Author: Linus Torvalds Date: Fri May 10 13:07:55 2019 -0400 Merge tag 'pidfd-fixes-v5.2-rc1' of gitolite.kernel.org:pub/scm/linux/kernel/git/brauner/linux Pull pidfd fixes from Christian Brauner: "This fixes two bugs: - The first one reported by Linus whereby the pidfd-metadata binary was not placed in a .gitignore file. - The second one is rather urgent and fixes a locking issue found by syzkaller. What happened is that during process creation we need to check whether the cgroup we are in allows us to fork. To perform this check the cgroup needs to guard itself against threadgroup changes and takes a lock. Prior to CLONE_PIDFD the cleanup target "bad_fork_free_pid" would also need to release said lock. That's not true anymore since CLONE_PIDFD so this is fixed here. Syzkaller has tested the patch and was not able to reproduce the issue" * tag 'pidfd-fixes-v5.2-rc1' of gitolite.kernel.org:pub/scm/linux/kernel/git/brauner/linux: fork: do not release lock that wasn't taken samples: add .gitignore for pidfd-metadata commit 7817ffd20a0f7fbd5971643b5ef1f577703dad11 Merge: cccd559e98c0 6456fd731517 Author: Linus Torvalds Date: Fri May 10 13:03:47 2019 -0400 Merge tag 'platform-drivers-x86-v5.2-1' of git://git.infradead.org/linux-platform-drivers-x86 Pull x86 platform driver updates from Andy Shevchenko: "Gathered pile of patches for Platform Drivers x86. No surprises and no merge conflicts. Business as usual. Summary: - New driver of power button for Basin Cove PMIC. - ASUS WMI driver has got a Fn lock mode switch support. - Resolve a never end story with non working Wi-Fi on newer Lenovo Ideapad computers. Now the black list is replaced with white list. - New facility to debug S0ix failures on Intel Atom platforms. The Intel PMC and accompanying drivers are cleaned up. - Mellanox got a new TmFifo driver. Besides tachometer sensor and watchdog are enabled on Mellanox platforms. - The information of embedded controller is now recognized on new Thinkpads. Bluetooth driver on Thinkpads is blacklisted for some models. - Touchscreen DMI driver extended to support 'jumper ezpad 6 pro b' and Myria MY8307 2-in-1. - Additionally few small fixes here and there for WMI and ACPI laptop drivers. - The following is an automated git shortlog grouped by driver: - alienware-wmi: - printing the wrong error code - fix kfree on potentially uninitialized pointer - asus-wmi: - Add fn-lock mode switch support - dell-laptop: - fix rfkill functionality - dell-rbtn: - Add missing #include - ideapad-laptop: - Remove no_hw_rfkill_list - intel_pmc_core: - Allow to dump debug registers on S0ix failure - Convert to a platform_driver - Mark local function static - intel_pmc_ipc: - Don't map non-used optional resources - Apply same width for offset definitions - Use BIT() macro - adding error handling - intel_punit_ipc: - Revert "Fix resource ioremap warning" - mlx-platform: - Add mlx-wdt platform driver activation - Add support for tachometer speed register - Add TmFifo driver for Mellanox BlueField Soc - sony-laptop: - Fix unintentional fall-through - thinkpad_acpi: - cleanup for Thinkpad ACPI led - Mark expected switch fall-throughs - fix spelling mistake "capabilites" -> "capabilities" - Read EC information on newer models - Disable Bluetooth for some machines - touchscreen_dmi: - Add info for 'jumper ezpad 6 pro b' touchscreen - Add info for Myria MY8307 2-in-1" * tag 'platform-drivers-x86-v5.2-1' of git://git.infradead.org/linux-platform-drivers-x86: (26 commits) platform/x86: Add support for Basin Cove power button platform/x86: asus-wmi: Add fn-lock mode switch support platform/x86: ideapad-laptop: Remove no_hw_rfkill_list platform/x86: touchscreen_dmi: Add info for 'jumper ezpad 6 pro b' touchscreen platform/x86: thinkpad_acpi: cleanup for Thinkpad ACPI led platform/x86: thinkpad_acpi: Mark expected switch fall-throughs platform/x86: sony-laptop: Fix unintentional fall-through platform/x86: alienware-wmi: printing the wrong error code platform/x86: intel_pmc_core: Allow to dump debug registers on S0ix failure platform/x86: intel_pmc_core: Convert to a platform_driver platform/x86: mlx-platform: Add mlx-wdt platform driver activation platform/x86: mlx-platform: Add support for tachometer speed register platform/mellanox: Add TmFifo driver for Mellanox BlueField Soc platform/x86: thinkpad_acpi: fix spelling mistake "capabilites" -> "capabilities" platform/x86: intel_punit_ipc: Revert "Fix resource ioremap warning" platform/x86: intel_pmc_ipc: Don't map non-used optional resources platform/x86: intel_pmc_ipc: Apply same width for offset definitions platform/x86: intel_pmc_ipc: Use BIT() macro platform/x86: alienware-wmi: fix kfree on potentially uninitialized pointer platform/x86: dell-laptop: fix rfkill functionality ... commit cccd559e98c05b669bdc37b01802f920cff1d6dd Merge: cece6460c243 d4a5611743a6 Author: Linus Torvalds Date: Fri May 10 12:59:51 2019 -0400 Merge tag 'fbdev-v5.2' of git://github.com/bzolnier/linux Pull fbdev updates from Bartlomiej Zolnierkiewicz: "Four small fixes for fb core, updates for udlfb, sm712fb, macfb and atafb drivers. Redundant code removals from amba-clcd and atmel_lcdfb drivers. Minor fixes/cleanups for other fb drivers Detailed summary: - fix regression in fbcon logo handling on 'quiet' boots (Andreas Schwab) - fix divide-by-zero error in fb_var_to_videomode() (Shile Zhang) - fix 'WARNING in __alloc_pages_nodemask' bug (Jiufei Xue) - list all PCI memory BARs as conflicting apertures (Gerd Hoffmann) - update udlfb driver: fix sleeping inside spinlock, add mutex around rendering calls and remove redundant code (Mikulas Patocka) - update sm712fb driver: fix SM720 support related issues (Yifeng Li) - update macfb driver: fix DAFB colour table pointer initialization and remove redundant code (Finn Thain) - update atafb driver: fix kexec support, use dev_*() calls instead of printk() and remove obsolete module support (Geert Uytterhoeven) - add support to mxsfb driver for skipping display initialization for flicker-free display takeover from bootloader (Melchior Franz) - remove Versatile and Nomadik board families support from amba-clcd driver as they are handled by DRM driver nowadays (Linus Walleij) - remove no longer needed AVR and platform_data support from atmel_lcdfb driver (Alexandre Belloni) - misc fixes (Colin Ian King, Julia Lawall, Gustavo A. R. Silva, Aditya Pakki, Kangjie Lu, YueHaibing) - misc cleanups (Enrico Weigelt, Kefeng Wang)" * tag 'fbdev-v5.2' of git://github.com/bzolnier/linux: (38 commits) video: fbdev: Use dev_get_drvdata() fbcon: Don't reset logo_shown when logo is currently shown video: fbdev: atmel_lcdfb: remove set but not used variable 'pdata' video: fbdev: mxsfb: remove set but not used variable 'line_count' video: fbdev: pvr2fb: remove set but not used variable 'size' fbdev: fix WARNING in __alloc_pages_nodemask bug video: amba-clcd: Decomission Versatile and Nomadik fbdev: sm712fb: fix memory frequency by avoiding a switch/case fallthrough fbdev: fix divide error in fb_var_to_videomode fbdev: sm712fb: use 1024x768 by default on non-MIPS, fix garbled display fbdev: sm712fb: fix support for 1024x768-16 mode fbdev: sm712fb: fix crashes and garbled display during DPMS modesetting fbdev: sm712fb: fix crashes during framebuffer writes by correctly mapping VRAM fbdev: sm712fb: fix boot screen glitch when sm712fb replaces VGA fbdev: sm712fb: fix VRAM detection, don't set SR70/71/74/75 fbdev: sm712fb: fix brightness control on reboot, don't set SR30 fbdev: sm712fb: fix white screen of death on reboot, don't set CR3B-CR3F video: imsttfb: fix potential NULL pointer dereferences video: hgafb: fix potential NULL pointer dereference fbdev: list all pci memory bars as conflicting apertures ... commit cece6460c24386d15503ad4e07f740a88f3c8403 Merge: 15500c0a506e f41efceb46e6 Author: Linus Torvalds Date: Fri May 10 12:57:15 2019 -0400 Merge tag 'pwm/for-5.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm Pull pwm updates from Thierry Reding: "Nothing out of the ordinary this cycle. The bulk of this is a collection of fixes for existing drivers and some cleanups. There's one new driver for i.MX SoCs and addition of support for some new variants to existing drivers" * tag 'pwm/for-5.2-rc1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: pwm: meson: Add clock source configuration for Meson G12A dt-bindings: pwm: Update bindings for the Meson G12A Family pwm: samsung: Don't uses devm_*() functions in ->request() pwm: Clear chip_data in pwm_put() pwm: Add i.MX TPM PWM driver support dt-bindings: pwm: Add i.MX TPM PWM binding pwm: imx27: Use devm_platform_ioremap_resource() to simplify code pwm: meson: Use the spin-lock only to protect register modifications pwm: meson: Don't disable PWM when setting duty repeatedly pwm: meson: Consider 128 a valid pre-divider pwm: sysfs: fix typo "its" -> "it's" pwm: tiehrpwm: Enable compilation for ARCH_K3 dt-bindings: pwm: tiehrpwm: Add TI AM654 SoC specific compatible pwm: tiehrpwm: Update shadow register for disabling PWMs pwm: img: Turn final 'else if' into 'else' in img_pwm_config pwm: Fix deadlock warning when removing PWM device commit 15500c0a506e256976a81c858e33844bb0781e02 Merge: b970afcfcabd 8fbbfd966efa Author: Linus Torvalds Date: Fri May 10 12:55:16 2019 -0400 Merge tag 'mailbox-v5.2' of git://git.linaro.org/landing-teams/working/fujitsu/integration Pull mailbox updates from Jassi Brar: - New driver: Armada 37xx mailbox controller - Misc: Use devm_ api for imx and platform_get_irq for stm32 * tag 'mailbox-v5.2' of git://git.linaro.org/landing-teams/working/fujitsu/integration: mailbox: Add support for Armada 37xx rWTM mailbox dt-bindings: mailbox: Document armada-3700-rwtm-mailbox binding mailbox: stm32-ipcc: check invalid irq mailbox: imx: use devm_platform_ioremap_resource() to simplify code commit e711ab936a44ee9f63f1746c09029543f1b29dd2 Author: Paolo Abeni Date: Fri May 10 11:37:58 2019 +0200 Revert "selinux: do not report error on connect(AF_UNSPEC)" This reverts commit c7e0d6cca86581092cbbf2cd868b3601495554cf. It was agreed a slightly different fix via the selinux tree. v1 -> v2: - use the correct reverted commit hash Signed-off-by: Paolo Abeni Signed-off-by: David S. Miller commit 562e14f72292249e52e6346a9e3a30be652b0cf6 Author: Steven Rostedt (VMware) Date: Thu May 9 15:32:05 2019 -0400 ftrace/x86: Remove mcount support There's two methods of enabling function tracing in Linux on x86. One is with just "gcc -pg" and the other is "gcc -pg -mfentry". The former will use calls to a special function "mcount" after the frame is set up in all C functions. The latter will add calls to a special function called "fentry" as the very first instruction of all C functions. At compile time, there is a check to see if gcc supports, -mfentry, and if it does, it will use that, because it is more versatile and less error prone for function tracing. Starting with v4.19, the minimum gcc supported to build the Linux kernel, was raised to version 4.6. That also happens to be the first gcc version to support -mfentry. Since on x86, using gcc versions from 4.6 and beyond will unconditionally enable the -mfentry, it will no longer use mcount as the method for inserting calls into the C functions of the kernel. This means that there is no point in continuing to maintain mcount in x86. Remove support for using mcount. This makes the code less complex, and will also allow it to be simplified in the future. Acked-by: Peter Zijlstra (Intel) Acked-by: Jiri Kosina Acked-by: Josh Poimboeuf Signed-off-by: Steven Rostedt (VMware) commit 518049d9d3e25dcd7be6e3d728e86f292ad0c922 Author: Steven Rostedt (VMware) Date: Fri May 10 12:05:46 2019 -0400 ftrace/x86_32: Remove support for non DYNAMIC_FTRACE When DYNAMIC_FTRACE is enabled in the kernel, all the functions that can be traced by the function tracer have a "nop" placeholder at the start of the function. When function tracing is enabled, the nop is converted into a call to the tracing infrastructure where the functions get traced. This also allows for specifying specific functions to trace, and a lot of infrastructure is built on top of this. When DYNAMIC_FTRACE is not enabled, all the functions have a call to the ftrace trampoline. A check is made to see if a function pointer is the ftrace_stub or not, and if it is not, it calls the function pointer to trace the code. This adds over 10% overhead to the kernel even when tracing is disabled. When an architecture supports DYNAMIC_FTRACE there really is no reason to use the static tracing. I have kept non DYNAMIC_FTRACE available in x86 so that the generic code for non DYNAMIC_FTRACE can be tested. There is no reason to support non DYNAMIC_FTRACE for both x86_64 and x86_32. As the non DYNAMIC_FTRACE for x86_32 does not even support fentry, and we want to remove mcount completely, there's no reason to keep non DYNAMIC_FTRACE around for x86_32. Signed-off-by: Steven Rostedt (VMware) commit c8f3c9fe83cafc94679007b9c0083ee25d5735e0 Author: YueHaibing Date: Fri May 10 15:18:23 2019 +0800 power: supply: ucs1002: Fix build error without CONFIG_REGULATOR Fix gcc build error while CONFIG_REGULATOR is not set drivers/power/supply/ucs1002_power.o: In function `ucs1002_probe': drivers/power/supply/ucs1002_power.c:593: undefined reference to `devm_regulator_register' drivers/power/supply/ucs1002_power.o:(.rodata+0x3b8): undefined reference to `regulator_enable_regmap' drivers/power/supply/ucs1002_power.o:(.rodata+0x3c0): undefined reference to `regulator_disable_regmap' drivers/power/supply/ucs1002_power.o:(.rodata+0x3c8): undefined reference to `regulator_is_enabled_regmap' Add Kconfig dependency to CONFIG_REGULATOR. Reported-by: Hulk Robot Fixes: 9a2688e42638 ("power: supply: Add driver for Microchip UCS1002") Signed-off-by: YueHaibing Reviewed-by: Guenter Roeck Signed-off-by: Sebastian Reichel commit 9af2de7657f5a52f9e15aebb6f9348f9b8f250a6 Author: Amelie Delaunay Date: Fri May 10 15:39:18 2019 +0200 pinctrl: Kconfig: Fix STMFX GPIO expander Pinctrl/GPIO driver dependencies module_i2c_driver and pinconf_generic_dt_node_to_map_pin are undeclared if CONFIG_I2C and CONFIG_OF are not enabled. Fixes: 1490d9f841b1 ("pinctrl: Add STMFX GPIO expander Pinctrl/GPIO driver") Reported-by: kbuild test robot Signed-off-by: Amelie Delaunay Signed-off-by: Lee Jones commit 891afcf2462d2cc4ef7caf94215358ca61fa32cb Author: Jeremy Soller Date: Fri May 10 10:15:07 2019 -0400 ALSA: hda/realtek - Corrected fixup for System76 Gazelle (gaze14) A mistake was made in the identification of the four variants of the System76 Gazelle (gaze14). This patch corrects the PCI ID of the 17-inch, GTX 1660 Ti variant from 0x8560 to 0x8551. This patch also adds the correct fixups for the 15-inch and 17-inch GTX 1650 variants with PCI IDs 0x8560 and 0x8561. Tests were done on all four variants ensuring full audio capability. Fixes: 80a5052db751 ("ALSA: hdea/realtek - Headset fixup for System76 Gazelle (gaze14)") Signed-off-by: Jeremy Soller Cc: Signed-off-by: Takashi Iwai commit 2ac5a3bf7042a1c4abbcce1b6f0ec61e5d3786c2 Author: Petr Mladek Date: Fri May 10 10:42:13 2019 +0200 vsprintf: Do not break early boot with probing addresses The commit 3e5903eb9cff70730 ("vsprintf: Prevent crash when dereferencing invalid pointers") broke boot on several architectures. The common pattern is that probe_kernel_read() is not working during early boot because userspace access framework is not ready. It is a generic problem. We have to avoid any complex external functions in vsprintf() code, especially in the common path. They might break printk() easily and are hard to debug. Replace probe_kernel_read() with some simple checks for obvious problems. Details: 1. Report on Power: Kernel crashes very early during boot with with CONFIG_PPC_KUAP and CONFIG_JUMP_LABEL_FEATURE_CHECK_DEBUG The problem is the combination of some new code called via printk(), check_pointer() which calls probe_kernel_read(). That then calls allow_user_access() (PPC_KUAP) and that uses mmu_has_feature() too early (before we've patched features). With the JUMP_LABEL debug enabled that causes us to call printk() & dump_stack() and we end up recursing and overflowing the stack. Because it happens so early you don't get any output, just an apparently dead system. The stack trace (which you don't see) is something like: ... dump_stack+0xdc probe_kernel_read+0x1a4 check_pointer+0x58 string+0x3c vsnprintf+0x1bc vscnprintf+0x20 printk_safe_log_store+0x7c printk+0x40 dump_stack_print_info+0xbc dump_stack+0x8 probe_kernel_read+0x1a4 probe_kernel_read+0x19c check_pointer+0x58 string+0x3c vsnprintf+0x1bc vscnprintf+0x20 vprintk_store+0x6c vprintk_emit+0xec vprintk_func+0xd4 printk+0x40 cpufeatures_process_feature+0xc8 scan_cpufeatures_subnodes+0x380 of_scan_flat_dt_subnodes+0xb4 dt_cpu_ftrs_scan_callback+0x158 of_scan_flat_dt+0xf0 dt_cpu_ftrs_scan+0x3c early_init_devtree+0x360 early_setup+0x9c 2. Report on s390: vsnprintf invocations, are broken on s390. For example, the early boot output now looks like this where the first (efault) should be the linux_banner: [ 0.099985] (efault) [ 0.099985] setup: Linux is running as a z/VM guest operating system in 64-bit mode [ 0.100066] setup: The maximum memory size is 8192MB [ 0.100070] cma: Reserved 4 MiB at (efault) [ 0.100100] numa: NUMA mode: (efault) The reason for this, is that the code assumes that probe_kernel_address() works very early. This however is not true on at least s390. Uaccess on KERNEL_DS works only after page tables have been setup on s390, which happens with setup_arch()->paging_init(). Any probe_kernel_address() invocation before that will return -EFAULT. Fixes: 3e5903eb9cff70730 ("vsprintf: Prevent crash when dereferencing invalid pointers") Link: http://lkml.kernel.org/r/20190510084213.22149-1-pmladek@suse.com Cc: Andy Shevchenko Cc: Rasmus Villemoes Cc: "Tobin C . Harding" Cc: Michal Hocko Cc: Sergey Senozhatsky Cc: Steven Rostedt Cc: linux-kernel@vger.kernel.org Cc: Michael Ellerman Cc: linuxppc-dev@lists.ozlabs.org Cc: Russell Currey Cc: Christophe Leroy Cc: Stephen Rothwell Cc: Heiko Carstens Cc: linux-arch@vger.kernel.org Cc: linux-s390@vger.kernel.org Cc: Martin Schwidefsky Cc: Petr Mladek Reviewed-by: Sergey Senozhatsky Signed-off-by: Petr Mladek commit b970afcfcabd63cd3832e95db096439c177c3592 Merge: 8ea5b2abd07e 8150a153c013 Author: Linus Torvalds Date: Fri May 10 05:29:27 2019 -0700 Merge tag 'powerpc-5.2-1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/powerpc/linux Pull powerpc updates from Michael Ellerman: "Slightly delayed due to the issue with printk() calling probe_kernel_read() interacting with our new user access prevention stuff, but all fixed now. The only out-of-area changes are the addition of a cpuhp_state, small additions to Documentation and MAINTAINERS updates. Highlights: - Support for Kernel Userspace Access/Execution Prevention (like SMAP/SMEP/PAN/PXN) on some 64-bit and 32-bit CPUs. This prevents the kernel from accidentally accessing userspace outside copy_to/from_user(), or ever executing userspace. - KASAN support on 32-bit. - Rework of where we map the kernel, vmalloc, etc. on 64-bit hash to use the same address ranges we use with the Radix MMU. - A rewrite into C of large parts of our idle handling code for 64-bit Book3S (ie. power8 & power9). - A fast path entry for syscalls on 32-bit CPUs, for a 12-17% speedup in the null_syscall benchmark. - On 64-bit bare metal we have support for recovering from errors with the time base (our clocksource), however if that fails currently we hang in __delay() and never crash. We now have support for detecting that case and short circuiting __delay() so we at least panic() and reboot. - Add support for optionally enabling the DAWR on Power9, which had to be disabled by default due to a hardware erratum. This has the effect of enabling hardware breakpoints for GDB, the downside is a badly behaved program could crash the machine by pointing the DAWR at cache inhibited memory. This is opt-in obviously. - xmon, our crash handler, gets support for a read only mode where operations that could change memory or otherwise disturb the system are disabled. Plus many clean-ups, reworks and minor fixes etc. Thanks to: Christophe Leroy, Akshay Adiga, Alastair D'Silva, Alexey Kardashevskiy, Andrew Donnellan, Aneesh Kumar K.V, Anju T Sudhakar, Anton Blanchard, Ben Hutchings, Bo YU, Breno Leitao, Cédric Le Goater, Christopher M. Riedl, Christoph Hellwig, Colin Ian King, David Gibson, Ganesh Goudar, Gautham R. Shenoy, George Spelvin, Greg Kroah-Hartman, Greg Kurz, Horia Geantă, Jagadeesh Pagadala, Joel Stanley, Joe Perches, Julia Lawall, Laurentiu Tudor, Laurent Vivier, Lukas Bulwahn, Madhavan Srinivasan, Mahesh Salgaonkar, Mathieu Malaterre, Michael Neuling, Mukesh Ojha, Nathan Fontenot, Nathan Lynch, Nicholas Piggin, Nick Desaulniers, Oliver O'Halloran, Peng Hao, Qian Cai, Ravi Bangoria, Rick Lindsley, Russell Currey, Sachin Sant, Stewart Smith, Sukadev Bhattiprolu, Thomas Huth, Tobin C. Harding, Tyrel Datwyler, Valentin Schneider, Wei Yongjun, Wen Yang, YueHaibing" * tag 'powerpc-5.2-1' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (205 commits) powerpc/64s: Use early_mmu_has_feature() in set_kuap() powerpc/book3s/64: check for NULL pointer in pgd_alloc() powerpc/mm: Fix hugetlb page initialization ocxl: Fix return value check in afu_ioctl() powerpc/mm: fix section mismatch for setup_kup() powerpc/mm: fix redundant inclusion of pgtable-frag.o in Makefile powerpc/mm: Fix makefile for KASAN powerpc/kasan: add missing/lost Makefile selftests/powerpc: Add a signal fuzzer selftest powerpc/booke64: set RI in default MSR ocxl: Provide global MMIO accessors for external drivers ocxl: move event_fd handling to frontend ocxl: afu_irq only deals with IRQ IDs, not offsets ocxl: Allow external drivers to use OpenCAPI contexts ocxl: Create a clear delineation between ocxl backend & frontend ocxl: Don't pass pci_dev around ocxl: Split pci.c ocxl: Remove some unused exported symbols ocxl: Remove superfluous 'extern' from headers ocxl: read_pasid never returns an error, so make it void ... commit c3b7112df86b769927a60a6d7175988ca3d60f09 Author: Christian Brauner Date: Fri May 10 11:53:46 2019 +0200 fork: do not release lock that wasn't taken Avoid calling cgroup_threadgroup_change_end() without having called cgroup_threadgroup_change_begin() first. During process creation we need to check whether the cgroup we are in allows us to fork. To perform this check the cgroup needs to guard itself against threadgroup changes and takes a lock. Prior to CLONE_PIDFD the cleanup target "bad_fork_free_pid" would also need to call cgroup_threadgroup_change_end() because said lock had already been taken. However, this is not the case anymore with the addition of CLONE_PIDFD. We are now allocating a pidfd before we check whether the cgroup we're in can fork and thus prior to taking the lock. So when copy_process() fails at the right step it would release a lock we haven't taken. This bug is not even very subtle to be honest. It's just not very clear from the naming of cgroup_threadgroup_change_{begin,end}() that a lock is taken. Here's the relevant splat: entry_SYSENTER_compat+0x70/0x7f arch/x86/entry/entry_64_compat.S:139 RIP: 0023:0xf7fec849 Code: 85 d2 74 02 89 0a 5b 5d c3 8b 04 24 c3 8b 14 24 c3 8b 3c 24 c3 90 90 90 90 90 90 90 90 90 90 90 90 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 90 90 90 eb 0d 90 90 90 90 90 90 90 90 90 90 90 90 RSP: 002b:00000000ffed5a8c EFLAGS: 00000246 ORIG_RAX: 0000000000000078 RAX: ffffffffffffffda RBX: 0000000000003ffc RCX: 0000000000000000 RDX: 00000000200005c0 RSI: 0000000000000000 RDI: 0000000000000000 RBP: 0000000000000012 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000 R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 ------------[ cut here ]------------ DEBUG_LOCKS_WARN_ON(depth <= 0) WARNING: CPU: 1 PID: 7744 at kernel/locking/lockdep.c:4052 __lock_release kernel/locking/lockdep.c:4052 [inline] WARNING: CPU: 1 PID: 7744 at kernel/locking/lockdep.c:4052 lock_release+0x667/0xa00 kernel/locking/lockdep.c:4321 Kernel panic - not syncing: panic_on_warn set ... CPU: 1 PID: 7744 Comm: syz-executor007 Not tainted 5.1.0+ #4 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x172/0x1f0 lib/dump_stack.c:113 panic+0x2cb/0x65c kernel/panic.c:214 __warn.cold+0x20/0x45 kernel/panic.c:566 report_bug+0x263/0x2b0 lib/bug.c:186 fixup_bug arch/x86/kernel/traps.c:179 [inline] fixup_bug arch/x86/kernel/traps.c:174 [inline] do_error_trap+0x11b/0x200 arch/x86/kernel/traps.c:272 do_invalid_op+0x37/0x50 arch/x86/kernel/traps.c:291 invalid_op+0x14/0x20 arch/x86/entry/entry_64.S:972 RIP: 0010:__lock_release kernel/locking/lockdep.c:4052 [inline] RIP: 0010:lock_release+0x667/0xa00 kernel/locking/lockdep.c:4321 Code: 0f 85 a0 03 00 00 8b 35 77 66 08 08 85 f6 75 23 48 c7 c6 a0 55 6b 87 48 c7 c7 40 25 6b 87 4c 89 85 70 ff ff ff e8 b7 a9 eb ff <0f> 0b 4c 8b 85 70 ff ff ff 4c 89 ea 4c 89 e6 4c 89 c7 e8 52 63 ff RSP: 0018:ffff888094117b48 EFLAGS: 00010086 RAX: 0000000000000000 RBX: 1ffff11012822f6f RCX: 0000000000000000 RDX: 0000000000000000 RSI: ffffffff815af236 RDI: ffffed1012822f5b RBP: ffff888094117c00 R08: ffff888092bfc400 R09: fffffbfff113301d R10: fffffbfff113301c R11: ffffffff889980e3 R12: ffffffff8a451df8 R13: ffffffff8142e71f R14: ffffffff8a44cc80 R15: ffff888094117bd8 percpu_up_read.constprop.0+0xcb/0x110 include/linux/percpu-rwsem.h:92 cgroup_threadgroup_change_end include/linux/cgroup-defs.h:712 [inline] copy_process.part.0+0x47ff/0x6710 kernel/fork.c:2222 copy_process kernel/fork.c:1772 [inline] _do_fork+0x25d/0xfd0 kernel/fork.c:2338 __do_compat_sys_x86_clone arch/x86/ia32/sys_ia32.c:240 [inline] __se_compat_sys_x86_clone arch/x86/ia32/sys_ia32.c:236 [inline] __ia32_compat_sys_x86_clone+0xbc/0x140 arch/x86/ia32/sys_ia32.c:236 do_syscall_32_irqs_on arch/x86/entry/common.c:334 [inline] do_fast_syscall_32+0x281/0xd54 arch/x86/entry/common.c:405 entry_SYSENTER_compat+0x70/0x7f arch/x86/entry/entry_64_compat.S:139 RIP: 0023:0xf7fec849 Code: 85 d2 74 02 89 0a 5b 5d c3 8b 04 24 c3 8b 14 24 c3 8b 3c 24 c3 90 90 90 90 90 90 90 90 90 90 90 90 51 52 55 89 e5 0f 34 cd 80 <5d> 5a 59 c3 90 90 90 90 eb 0d 90 90 90 90 90 90 90 90 90 90 90 90 RSP: 002b:00000000ffed5a8c EFLAGS: 00000246 ORIG_RAX: 0000000000000078 RAX: ffffffffffffffda RBX: 0000000000003ffc RCX: 0000000000000000 RDX: 00000000200005c0 RSI: 0000000000000000 RDI: 0000000000000000 RBP: 0000000000000012 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000 R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000 Kernel Offset: disabled Rebooting in 86400 seconds.. Reported-and-tested-by: syzbot+3286e58549edc479faae@syzkaller.appspotmail.com Fixes: b3e583825266 ("clone: add CLONE_PIDFD") Signed-off-by: Christian Brauner commit ca6f998cf9a259fe6019d44768064e0cfe8a925b Author: Pierre-Louis Bossart Date: Wed May 1 07:53:22 2019 -0500 ACPI: bus: change _ADR representation to 64 bits Standards such as the MIPI DisCo for SoundWire 1.0 specification assume the _ADR field is 64 bits. _ADR is defined as an "Integer" represented as 64 bits since ACPI 2.0 released in 2002. The low levels already use _ADR as 64 bits, e.g. in struct acpi_device_info. This patch bumps the representation used for sysfs to 64 bits. To avoid any compatibility/ABI issues, the printf format is only extended to 16 characters when the actual _ADR value exceeds the 32 bit maximum. Example with a SoundWire device, the results show the complete vendorID and linkID which were omitted before: Before: $ more /sys/bus/acpi/devices/device\:38/adr 0x5d070000 After: $ more /sys/bus/acpi/devices/device\:38/adr 0x000010025d070000 Signed-off-by: Pierre-Louis Bossart [ rjw: Replace 0xFFFFFFFF with U32_MAX, clean up subject ] Signed-off-by: Rafael J. Wysocki commit df24014abe3694e7c34ce5e50248611b7a93fe83 Author: Viresh Kumar Date: Mon Apr 29 15:03:58 2019 +0530 cpufreq: Call transition notifier only once for each policy Currently, the notifiers are called once for each CPU of the policy->cpus cpumask. It would be more optimal if the notifier can be called only once and all the relevant information be provided to it. Out of the 23 drivers that register for the transition notifiers today, only 4 of them do per-cpu updates and the callback for the rest can be called only once for the policy without any impact. This would also avoid multiple function calls to the notifier callbacks and reduce multiple iterations of notifier core's code (which does locking as well). This patch adds pointer to the cpufreq policy to the struct cpufreq_freqs, so the notifier callback has all the information available to it with a single call. The five drivers which perform per-cpu updates are updated to use the cpufreq policy. The freqs->cpu field is redundant now and is removed. Acked-by: David S. Miller (sparc) Signed-off-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki commit 8b0e1fea3056a411300fb3a2d8f3ca9af54ace44 Author: Christian Brauner Date: Wed May 8 13:02:30 2019 +0200 samples: add .gitignore for pidfd-metadata Ignore the pidfd-metadata binary so it doesn't show up in unwanted scenarios. Reported-by: Linus Torvalds Signed-off-by: Christian Brauner commit c9af753f26bdf80291eb2c2279b9de1989fbc591 Author: Takashi Iwai Date: Fri May 10 11:01:43 2019 +0200 ALSA: hda/realtek - Avoid superfluous COEF EAPD setups Realtek codec driver applied the COEF setups to change the EAPD control to the default mode (i.e. control by EPAD verbs) at the init callback. It works, but this is too excessive at the same time, since it's called at each runtime PM resume. That is, the initialization should be done only once after the probe. One may think that moving this to the probe should be OK, but no -- there is a catch; when a system resumes from S4 (hibernation), we need to re-initialize this again manually, because it's out of regcache restoration. This patch addresses the issue by introducing alc_pre_init() function that performs such a task. This is called from each codec probe function, and it's called from the resume callback conditionally only from S4 resume. Reported-and-tested-by: Kailang Yang Signed-off-by: Takashi Iwai commit dad3197da7a3817f27bb24f7fd3c135ffa707202 Author: Kailang Yang Date: Fri May 10 16:28:57 2019 +0800 ALSA: hda/realtek - Fixup headphone noise via runtime suspend Dell platform with ALC298. system enter to runtime suspend. Headphone had noise. Let Headset Mic not shutup will solve this issue. [ Fixed minor coding style issues by tiwai ] Signed-off-by: Kailang Yang Cc: Signed-off-by: Takashi Iwai commit 9ed0985332a6576efbc3e435459a857e50e0d72c Author: Rafael J. Wysocki Date: Thu May 9 23:28:41 2019 +0200 x86: intel_epb: Take CONFIG_PM into account Commit b9c273babce7 ("PM / arch: x86: MSR_IA32_ENERGY_PERF_BIAS sysfs interface") caused kernels built with CONFIG_PM unset to crash on systems supporting the Performance and Energy Bias Hint (EPB), because it attempts to add files to sysfs directories that don't exist on those systems. Prevent that from happening by taking CONFIG_PM into account so that the code depending on it is not compiled at all when it is not set. Fixes: b9c273babce7 ("PM / arch: x86: MSR_IA32_ENERGY_PERF_BIAS sysfs interface") Reported-by: Ido Schimmel Tested-by: Ido Schimmel Signed-off-by: Rafael J. Wysocki Acked-by: Ingo Molnar commit 1490d9f841b186664f9d3ca213dcfa4464a60680 Author: Amelie Delaunay Date: Thu May 9 10:58:51 2019 +0200 pinctrl: Add STMFX GPIO expander Pinctrl/GPIO driver This patch adds pinctrl/GPIO driver for STMicroelectronics Multi-Function eXpander (STMFX) GPIO expander. STMFX is an I2C slave controller, offering up to 24 GPIOs. The driver relies on generic pin config interface to configure the GPIOs. Signed-off-by: Amelie Delaunay Signed-off-by: Lee Jones commit 2e0b80ce4520602b6c1aa806b42a01b7ff7a9af5 Author: Amelie Delaunay Date: Thu May 9 10:58:50 2019 +0200 dt-bindings: pinctrl: document the STMFX pinctrl bindings This patch adds documentation of device tree bindings for the STMicroelectronics Multi-Function eXpander (STMFX) GPIO expander. Signed-off-by: Amelie Delaunay Reviewed-by: Linus Walleij Reviewed-by: Rob Herring Signed-off-by: Lee Jones commit 06252ade91566574c900975037aaa33d6c4f9818 Author: Amelie Delaunay Date: Thu May 9 10:58:49 2019 +0200 mfd: Add ST Multi-Function eXpander (STMFX) core driver STMicroelectronics Multi-Function eXpander (STMFX) is a slave controller using I2C for communication with the main MCU. Main features are: - 16 fast GPIOs individually configurable in input/output - 8 alternate GPIOs individually configurable in input/output when other STMFX functions are not used - Main MCU IDD measurement - Resistive touchscreen controller Signed-off-by: Amelie Delaunay Signed-off-by: Lee Jones commit fb8c86911052ccd4011392f78a24991c55c0d172 Author: Amelie Delaunay Date: Thu May 9 10:58:48 2019 +0200 dt-bindings: mfd: Add ST Multi-Function eXpander (STMFX) core bindings This patch adds documentation of device tree bindings for the STMicroelectronics Multi-Function eXpander (STMFX) MFD core. Signed-off-by: Amelie Delaunay Reviewed-by: Linus Walleij Reviewed-by: Rob Herring Signed-off-by: Lee Jones commit 6b89d4c1ae8596a8c9240f169ef108704de373f2 Author: Stephane Eranian Date: Thu May 9 14:45:56 2019 -0700 perf/x86/intel: Fix INTEL_FLAGS_EVENT_CONSTRAINT* masking On Intel Westmere, a cmdline as follows: $ perf record -e cpu/event=0xc4,umask=0x2,name=br_inst_retired.near_call/p .... was failing. Yet the event+ umask support PEBS. It turns out this is due to a bug in the the PEBS event constraint table for westmere. All forms of BR_INST_RETIRED.* support PEBS. Therefore the constraint mask should ignore the umask. The name of the macro INTEL_FLAGS_EVENT_CONSTRAINT() hint that this is the case but it was not. That macros was checking both the event code and event umask. Therefore, it was only matching on 0x00c4. There are code+umask macros, they all have *UEVENT*. This bug fixes the issue by checking only the event code in the mask. Both single and range version are modified. Signed-off-by: Stephane Eranian Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Vince Weaver Cc: kan.liang@intel.com Link: http://lkml.kernel.org/r/20190509214556.123493-1-eranian@google.com Signed-off-by: Ingo Molnar commit c01ad0fe1d57dbdee6e2f77d2c21a64eb1537480 Merge: b1c19fa16c82 9d6fea5744d6 Author: Dave Airlie Date: Fri May 10 14:29:02 2019 +1000 Merge branch 'drm-next-5.2' of git://people.freedesktop.org/~agd5f/linux into drm-next - Fix a crash on gpu reset at driver load time - ATPX hotplug fix for when the dGPU is powered off - PLL fix for r5xx asics - SR-IOV fixes Signed-off-by: Dave Airlie From: Alex Deucher Link: https://patchwork.freedesktop.org/patch/msgid/20190509230017.3566-1-alexander.deucher@amd.com commit b1c19fa16c82f45032f6c1d715dbaf250bdd824c Merge: eb85d03e01c3 23372cce8fe7 Author: Dave Airlie Date: Fri May 10 14:28:36 2019 +1000 Merge tag 'drm-intel-next-fixes-2019-05-09' of git://anongit.freedesktop.org/drm/drm-intel into drm-next - Two fixes for the freshly enabled semaphore ordering code - Includes gvt-next-fixes-2019-05-07 Signed-off-by: Dave Airlie From: Joonas Lahtinen Link: https://patchwork.freedesktop.org/patch/msgid/20190509100109.GA14820@jlahtine-desk.ger.corp.intel.com commit 8ea5b2abd07e2280a332bd9c1a7f4dd15b9b6c13 Merge: 601e6bcc4ef0 05883eee857e Author: Linus Torvalds Date: Thu May 9 19:35:41 2019 -0700 Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull vfs mount fix from Al Viro: "Fix for umount -l/mount --move race caught by syzbot yesterday..." * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: do_move_mount(): fix an unsafe use of is_anon_ns() commit 601e6bcc4ef02bda2831d5ac8133947b5edf597b Merge: 9b6c9e96f941 6c9f05441477 Author: Linus Torvalds Date: Thu May 9 17:00:51 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Pull networking fixes from David Miller: "Several bug fixes, many are quick merge-window regression cures: - When NLM_F_EXCL is not set, allow same fib rule insertion. From Hangbin Liu. - Several cures in sja1105 DSA driver (while loop exit condition fix, return of negative u8, etc.) from Vladimir Oltean. - Handle tx/rx delays in realtek PHY driver properly, from Serge Semin. - Double free in cls_matchall, from Pieter Jansen van Vuuren. - Disable SIOCSHWTSTAMP in macvlan/vlan containers, from Hangbin Liu. - Endainness fixes in aqc111, from Oliver Neukum. - Handle errors in packet_init properly, from Haibing Yue. - Various W=1 warning fixes in kTLS, from Jakub Kicinski" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (34 commits) nfp: add missing kdoc net/tls: handle errors from padding_length() net/tls: remove set but not used variables docs/btf: fix the missing section marks nfp: bpf: fix static check error through tightening shift amount adjustment selftests: bpf: initialize bpf_object pointers where needed packet: Fix error path in packet_init net/tcp: use deferred jump label for TCP acked data hook net: aquantia: fix undefined devm_hwmon_device_register_with_info reference aqc111: fix double endianness swap on BE aqc111: fix writing to the phy on BE aqc111: fix endianness issue in aqc111_change_mtu vlan: disable SIOCSHWTSTAMP in container macvlan: disable SIOCSHWTSTAMP in container tipc: fix hanging clients using poll with EPOLLOUT flag tuntap: synchronize through tfiles array instead of tun->numqueues tuntap: fix dividing by zero in ebpf queue selection dwmac4_prog_mtl_tx_algorithms() missing write operation ptp_qoriq: fix NULL access if ptp dt node missing net/sched: avoid double free on matchall reoffload ... commit e6308b6d35ea706c23a589a8c709fa444ff13e17 Author: Thomas Bogendoerfer Date: Tue May 7 23:09:15 2019 +0200 MIPS: SGI-IP27: abstract chipset irq from bridge Bridge ASIC is widely used in different SGI systems, but the connected chipset is either HUB, HEART or BEDROCK. This commit switches to irq domain hierarchy for hub and bridge interrupts to get bridge setup out of hub interrupt code. Signed-off-by: Thomas Bogendoerfer [paul.burton@mips.com: Resolve conflict with commit 69a07a41d908 ("MIPS: SGI-IP27: rework HUB interrupts").] Signed-off-by: Paul Burton Cc: Ralf Baechle Cc: James Hogan Cc: linux-mips@vger.kernel.org Cc: linux-kernel@vger.kernel.org commit 6c9f05441477e29783e8391d06c067e4a3b23d47 Author: Jakub Kicinski Date: Thu May 9 16:19:34 2019 -0700 nfp: add missing kdoc Add missing kdoc for app member. Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Signed-off-by: David S. Miller commit a57140e9a850582ddafdd8f115b78713baaf0d00 Author: Thomas Bogendoerfer Date: Tue May 7 23:09:13 2019 +0200 MIPS: SGI-IP27: use generic PCI driver Converted bridge code to a platform driver using the PCI generic driver framework and use adding platform devices during xtalk scan. This allows easier sharing bridge driver for other SGI platforms like IP30 (Octane) and IP35 (Origin 3k, Fuel, Tezro). Signed-off-by: Thomas Bogendoerfer [paul.burton@mips.com: - Leave __phys_to_dma(), __dma_to_phys() & pcibus_to_node() in arch/mips/pci/pci-ip27.c since the motivation for moving them disappeared when the driver stopped being moved to drivers/pci.] Signed-off-by: Paul Burton Cc: Ralf Baechle Cc: James Hogan Cc: linux-mips@vger.kernel.org Cc: linux-kernel@vger.kernel.org commit 8041edb5920902adc9b28f2fcd9ccce395434ead Author: Paul Cercueil Date: Wed May 8 00:17:55 2019 +0200 MIPS: Fix Ingenic SoCs sometimes reporting wrong ISA The config0 register in the Xburst CPUs with a processor ID of PRID_COMP_INGENIC_D0 report themselves as MIPS32r2 compatible, but they don't actually support this ISA. Signed-off-by: Paul Cercueil Signed-off-by: Paul Burton Cc: Ralf Baechle Cc: James Hogan Cc: od@zcrc.me Cc: linux-mips@vger.kernel.org Cc: linux-kernel@vger.kernel.org commit 1b1f01b653b408ebe58fec78c566d1075d285c64 Author: Florian Fainelli Date: Thu May 9 11:30:47 2019 -0700 MIPS: perf: Fix build with CONFIG_CPU_BMIPS5000 enabled arch/mips/kernel/perf_event_mipsxx.c: In function 'mipsxx_pmu_enable_event': arch/mips/kernel/perf_event_mipsxx.c:326:21: error: unused variable 'event' [-Werror=unused-variable] struct perf_event *event = container_of(evt, struct perf_event, hw); ^~~~~ Fix this by making use of IS_ENABLED() to simplify the code and avoid unnecessary ifdefery. Fixes: 84002c88599d ("MIPS: perf: Fix perf with MT counting other threads") Signed-off-by: Florian Fainelli Signed-off-by: Paul Burton Cc: linux-mips@linux-mips.org Cc: Peter Zijlstra Cc: Ingo Molnar Cc: Arnaldo Carvalho de Melo Cc: Alexander Shishkin Cc: Jiri Olsa Cc: Namhyung Kim Cc: Ralf Baechle Cc: James Hogan Cc: linux-kernel@vger.kernel.org Cc: linux-mips@vger.kernel.org Cc: stable@vger.kernel.org # v4.18+ commit f50c8a019b3e7b030eab166d61409b9f54949791 Merge: 15192f253e04 b53f4976fb1f Author: David S. Miller Date: Thu May 9 16:37:40 2019 -0700 Merge branch 'tls-warnings' Jakub Kicinski says: ==================== net/tls: fix W=1 build warnings This small series cleans up two outstanding W=1 build warnings in tls code. Both are set but not used variables. The first case looks fairly straightforward. In the second I think it's better to propagate the error code, even if not doing some does not lead to a crash with current code. ==================== Signed-off-by: David S. Miller commit b53f4976fb1f738573b5b76e21d3c2652fffb46b Author: Jakub Kicinski Date: Thu May 9 16:14:07 2019 -0700 net/tls: handle errors from padding_length() At the time padding_length() is called the record header is still part of the message. If malicious TLS 1.3 peer sends an all-zero record padding_length() will stop at the record header, and return full length of the data including the tail_size. Subsequent subtraction of prot->overhead_size from rxm->full_len will cause rxm->full_len to turn negative. skb accessors, however, will always catch resulting out-of-bounds operation, so in practice this fix comes down to returning the correct error code. It also fixes a set but not used warning. This code was added by commit 130b392c6cd6 ("net: tls: Add tls 1.3 support"). CC: Dave Watson Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Signed-off-by: David S. Miller commit 88c80bee883e7687d2672f84fd6d0fa1cee3d348 Author: Jakub Kicinski Date: Thu May 9 16:14:06 2019 -0700 net/tls: remove set but not used variables Commit 4504ab0e6eb8 ("net/tls: Inform user space about send buffer availability") made us report write_space regardless whether partial record push was successful or not. Remove the now unused return value to clean up the following W=1 warning: net/tls/tls_device.c: In function ‘tls_device_write_space’: net/tls/tls_device.c:546:6: warning: variable ‘rc’ set but not used [-Wunused-but-set-variable] int rc = 0; ^~ CC: Vakul Garg CC: Boris Pismenny Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Signed-off-by: David S. Miller commit 15192f253e0484909292d8809f0b70d71fdc7291 Merge: 36096f2f4fa0 3ef4641fbf87 Author: David S. Miller Date: Thu May 9 16:25:08 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf Alexei Starovoitov says: ==================== pull-request: bpf 2019-05-09 The following pull-request contains BPF updates for your *net* tree. The main changes are: 1) three small fixes from Gary, Jiong and Lorenz. ==================== Signed-off-by: David S. Miller commit 3ef4641fbf870ee1ecd5f890a54881b7f0e20b90 Author: Gary Lin Date: Wed May 8 15:54:48 2019 +0800 docs/btf: fix the missing section marks The section titles of 3.4 and 3.5 are not marked correctly. Signed-off-by: Gary Lin Signed-off-by: Alexei Starovoitov commit 69e168ebdcfcb87ce7252d4857d570f99996fa27 Author: Jiong Wang Date: Tue May 7 17:41:30 2019 +0100 nfp: bpf: fix static check error through tightening shift amount adjustment NFP shift instruction has something special. If shift direction is left then shift amount of 1 to 31 is specified as 32 minus the amount to shift. But no need to do this for indirect shift which has shift amount be 0. Even after we do this subtraction, shift amount 0 will be turned into 32 which will eventually be encoded the same as 0 because only low 5 bits are encoded, but shift amount be 32 will fail the FIELD_PREP check done later on shift mask (0x1f), due to 32 is out of mask range. Such error has been observed when compiling nfp/bpf/jit.c using gcc 8.3 + O3. This issue has started when indirect shift support added after which the incoming shift amount to __emit_shf could be 0, therefore it is at that time shift amount adjustment inside __emit_shf should have been tightened. Fixes: 991f5b3651f6 ("nfp: bpf: support logic indirect shifts (BPF_[L|R]SH | BPF_X)") Reported-by: Oleksandr Natalenko Reported-by: Pablo Cascón Reviewed-by: Jakub Kicinski Signed-off-by: Jiong Wang Signed-off-by: Alexei Starovoitov commit 07b619919d3d5401adc9bc6b79dcf12cc2c6d485 Author: Lorenz Bauer Date: Wed May 8 17:49:32 2019 +0100 selftests: bpf: initialize bpf_object pointers where needed There are a few tests which call bpf_object__close on uninitialized bpf_object*, which may segfault. Explicitly zero-initialise these pointers to avoid this. Signed-off-by: Lorenz Bauer Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit 9d6fea5744d6798353f37ac42a8a653a2607ca69 Author: Alex Deucher Date: Wed May 8 21:45:06 2019 -0500 drm/amdgpu/psp: move psp version specific function pointers to early_init In case we need to use them for GPU reset prior initializing the asic. Fixes a crash if the driver attempts to reset the GPU at driver load time. Acked-by: Christian König Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org commit 2e26ccb119bde03584be53406bbd22e711b0d6e6 Author: Christian König Date: Mon May 6 19:57:52 2019 +0200 drm/radeon: prefer lower reference dividers Instead of the closest reference divider prefer the lowest, this fixes flickering issues on HP Compaq nx9420. Bugs: https://bugs.freedesktop.org/show_bug.cgi?id=108514 Suggested-by: Paul Dufresne Signed-off-by: Christian König Acked-by: Alex Deucher Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org commit 9b6c9e96f941c5ab13dad7278a3622f58e5672fc Merge: ea5aee6d97fd f4d9a23d3dad Author: Linus Torvalds Date: Thu May 9 15:07:44 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc Pull sparc updates from David Miller: "Here we go: - Fix various long standing issues in the sparc 32-bit IOMMU support code, from Christoph Hellwig. - Various other code cleanups and simplifications all over. From Gustavo A. R. Silva, Jagadeesh Pagadala, Masahiro Yamada, Mauro Carvalho Chehab, Mike Rapoport" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc: sparc64: simplify reduce_memory() function sparc: use struct_size() in kzalloc() docs: sparc: convert to ReST sparc/iommu: merge iommu_get_one and __sbus_iommu_map_page sparc/iommu: use __sbus_iommu_map_page to implement the map_sg path sparc/iommu: fix __sbus_iommu_map_page for highmem pages sparc/iommu: move per-page flushing into __sbus_iommu_map_page sparc/iommu: pass a physical address to iommu_get_one sparc/iommu: create a common helper for map_sg sparc/iommu: merge iommu_release_one and sbus_iommu_unmap_page sparc/iommu: use sbus_iommu_unmap_page in sbus_iommu_unmap_sg sparc/iommu: use !PageHighMem to check if a page has a kernel mapping sparc: vdso: add FORCE to the build rule of %.so arch:sparc:kernel/uprobes.c : Remove duplicate header commit ea5aee6d97fd2d4499b1eebc233861c1def70f06 Merge: 8e4ff713ce31 c1157f60d72e Author: Linus Torvalds Date: Thu May 9 14:50:09 2019 -0700 Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux Pull clk framework updates from Stephen Boyd: "We have a couple new features and changes in the core clk framework this time around because we've finally gotten around to fixing some long standing issues. There's still work to do though, so this pull request is largely laying down the foundation for all the driver changes to come in the next merge window. The first problem we're alleviating is how parents of clks are specified. With the new method, we should see lots of drivers migrate away from the current design of string comparisons on the entire clk tree to a more direct method where they can use clk_hw pointers or more localized names specified in DT or via clkdev. This should reduce our reliance on string comparisons for all the topology description logic that we've been using for years and hopefully speed some things up while avoiding problems we have with generating clk names. Beyond that we also got rid of the CLK_IS_BASIC flag because it wasn't really helping anyone and we introduced big-endian versions of the basic clk types so that we can get rid of clk_{readl,writel}(). Both of these are things that driver developers have tried to use over the years that I typically bat away during code reviews because they're not useful. It's great to see these two things go away so maintainers can save time not worrying about these things. On the driver side we got the usual collection of new SoC support and non-critical fixes and updates to existing code. The big topics that stand out are the new driver support for Mediatek MT8183 and MT8516 SoCs, Amlogic Meson8b and G12a SoCs, and the SiFive FU540 SoC. The other patches in the driver pile are mostly fixes for things that are being used for the first time or additions for clks that couldn't be tested before because there wasn't a consumer driver that exercised them. Details are below and also in the sub-maintainer tags. Core: - Remove clk_readl() and introduce BE versions of basic clk types - Rewrite how clk parents can be specified to allow DT/clkdev lookups - Removal of the CLK_IS_BASIC clk flag - Framework documentation updates and fixes New Drivers: - Support for STM32F769 - AT91 sam9x60 PMC support - SiFive FU540 PRCI and PLL support - Qualcomm QCS404 CDSP clk support - Qualcomm QCS404 Turing clk support - Mediatek MT8183 clock support - Mediatek MT8516 clock support - Milbeaut M10V clk controller support - Support for Cirrus Logic Lochnagar clks Updates: - Rework AT91 sckc DT bindings - Fix slow RC oscillator issue on sama5d3 - Mark UFS clk as critical on Hi-Silicon hi3660 SoCs - Various static analysis fixes/finds and const markings - Video Engine (ECLK) support on Aspeed SoCs - Xilinx ZynqMP Versal platform support - Convert Xilinx ZynqMP driver to be struct oriented - Fixes for Rockchip rk3328 and rk3288 SoCs - Sub-type for Rockchip SoCs where mux and divider aren't a single register - Remove SNVS clock from i.MX7UPL clock driver and bindings - Improve i.MX5 clock driver for i.MX50 support - Addition of ADC clock definition for Exynos 5410 SoC (Odroid XU) - Export a new clock for the MBUS controller on the A13 - Allwinner H6 fixes to support a finer clocking of the video and VPU engines - Add g12a support in the Amlogic axg audio clock controller - Add missing PCI USB clock on Rensas RZ/N1 - Add Z2 (Cortex-A53) clocks on Rensas R-Car E3 and RZ/G2E - A new helper DIV64_U64_ROUND_CLOSEST() in - VPU and Video Decoder clocks on Amlogic Meson8b - Finally remove the wrong ABP Meson8b clock id - Add Video Decoder, PCIe PLL, and CPU Clocks on Amlogic G12A - Re-expose SAR_ADC_SEL and CTS_OSCIN on Amlogic G12A AO clock controller - Un-expose some Amlogic AXG-Audio input clocks IDs" * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (172 commits) clk: Cache core in clk_fetch_parent_index() without names clk: imx: correct pfdv2 gate_bit/vld_bit operations clk: sifive: add a driver for the SiFive FU540 PRCI IP block clk: analogbits: add Wide-Range PLL library clk: imx: clk-pllv3: mark expected switch fall-throughs clk: imx8mq: Add dsi_ipg_div clk: imx: pllv4: add fractional-N pll support clk: sunxi-ng: Use the correct style for SPDX License Identifier clk: sprd: Use the correct style for SPDX License Identifier clk: renesas: Use the correct style for SPDX License Identifier clk: qcom: Use the correct style for SPDX License Identifier clk: davinci: Use the correct style for SPDX License Identifier clk: actions: Use the correct style for SPDX License Identifier clk: imx: keep uart clock on during system boot clk: imx: correct i.MX7D AV PLL num/denom offset dt-bindings: clk: add documentation for the SiFive PRCI driver clk: stm32mp1: Add ddrperfm clock clk: Remove CLK_IS_BASIC clk flag clock: milbeaut: Add Milbeaut M10V clock controller dt-bindings: clock: milbeaut: add Milbeaut clock description ... commit 8e4ff713ce313dcabbb60e6ede1ffc193e67631f Merge: 45182e4e1f8a dacb6a4035a0 Author: Linus Torvalds Date: Thu May 9 14:46:33 2019 -0700 Merge tag 'rtc-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux Pull RTC updates from Alexandre Belloni: "A huge series from me this cycle. I went through many drivers to set the date and time range supported by the RTC which helps solving HW limitation when the time comes (as early as next year for some). This time, I focused on drivers using .set_mms and .set_mmss64, allowing me to remove those callbacks. About a third of the patches got reviews, I actually own the RTCs and I tested another third and the remaining one are unlikely to cause any issues. Other than that, a single new driver and the usual fixes here and there. Summary: Subsystem: - set_mmss and set_mmss64 rtc_ops removal - Fix timestamp value for RTC_TIMESTAMP_BEGIN_1900 - Use SPDX identifier for the core - validate upper bound of tm->tm_year New driver: - Aspeed BMC SoC RTC Drivers: - abx80x: use rtc_add_group - ds3232: nvram support - pcf85063: add alarm, nvram, offset correction and microcrystal rv8263 support - x1205: add of_match_table - Use set_time instead of set_mms/set_mmss64 for: ab3100, coh901331, digicolor, ds1672, ds2404, ep93xx, imxdi, jz4740, lpc32xx, mc13xxx, mxc, pcap, stmp3xxx, test, wm831x, xgene. - Set RTC range for: ab3100, at91sam9, coh901331, da9063, digicolor, dm355evm, ds1672, ds2404, ep39xx, goldfish, imxdi, jz4740, lpc32xx, mc13xxx, mv, mxc, omap, pcap, pcf85063, pcf85363, ps3, sh, stmp3xxx, sun4v, tegra, wm831x, xgene. - Switch to rtc_time64_to_tm/rtc_tm_to_time64 for the driver that properly set the RTC range. - Use dev_get_drvdata instead of multiple indirections" * tag 'rtc-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (177 commits) rtc: snvs: Use __maybe_unused instead of #if CONFIG_PM_SLEEP rtc: imxdi: remove unused variable rtc: drop set_mms and set_mmss64 rtc: pcap: convert to SPDX identifier rtc: pcap: use .set_time rtc: pcap: switch to rtc_time64_to_tm/rtc_tm_to_time64 rtc: pcap: set range rtc: digicolor: convert to SPDX identifier rtc: digicolor: use .set_time rtc: digicolor: set range rtc: digicolor: fix possible race condition rtc: jz4740: convert to SPDX identifier rtc: jz4740: rework invalid time detection rtc: jz4740: use dev_pm_set_wake_irq() to simplify code rtc: jz4740: use .set_time rtc: jz4740: remove useless check rtc: jz4740: switch to rtc_time64_to_tm/rtc_tm_to_time64 rtc: jz4740: set range rtc: 88pm860x: prevent use-after-free on device remove rtc: Use dev_get_drvdata() ... commit e07ca82a5fde88b5caf2b7025e97c7980c60abe1 Author: Bjorn Helgaas Date: Wed May 8 16:34:01 2019 -0500 PCI: pciehp: Remove pointless MY_NAME definition MY_NAME is only used once and offers no benefit, so remove it. Link: https://lore.kernel.org/lkml/20190509141456.223614-11-helgaas@kernel.org Signed-off-by: Bjorn Helgaas Reviewed-by: Keith Busch Reviewed-by: Andy Shevchenko commit b498b6872da1143d67ed588d21d3c3c496a987ee Author: Bjorn Helgaas Date: Wed May 8 15:23:39 2019 -0500 PCI: pciehp: Remove pointless PCIE_MODULE_NAME definition PCIE_MODULE_NAME is only used once and offers no benefit, so remove it. Link: https://lore.kernel.org/lkml/20190509141456.223614-10-helgaas@kernel.org Signed-off-by: Bjorn Helgaas Reviewed-by: Keith Busch Reviewed-by: Andy Shevchenko commit 742ee16bc31f42b034a9b3b01731fd6dc20d0b19 Author: Frederick Lawler Date: Tue May 7 18:24:53 2019 -0500 PCI: pciehp: Remove unused dbg/err/info/warn() wrappers Replace the last uses of dbg() with the equivalent pr_debug(), then remove unused dbg(), err(), info(), and warn() wrappers. Link: https://lore.kernel.org/lkml/20190509141456.223614-9-helgaas@kernel.org Signed-off-by: Frederick Lawler Signed-off-by: Bjorn Helgaas Reviewed-by: Keith Busch Reviewed-by: Andy Shevchenko commit 94dbc9562edc745d0549f1744ca1bd75e644473e Author: Frederick Lawler Date: Tue May 7 18:24:51 2019 -0500 PCI: pciehp: Log messages with pci_dev, not pcie_device Log messages with pci_dev, not pcie_device. Factor out common message prefixes with dev_fmt(). Example output change: - pciehp 0000:00:06.0:pcie004: Slot(0) Powering on due to button press + pcieport 0000:00:06.0: pciehp: Slot(0) Powering on due to button press Link: https://lore.kernel.org/lkml/20190509141456.223614-8-helgaas@kernel.org Signed-off-by: Frederick Lawler Signed-off-by: Bjorn Helgaas Reviewed-by: Keith Busch Reviewed-by: Andy Shevchenko commit 017124725c155a3e1b09429d27c5846b0efafa89 Author: Frederick Lawler Date: Tue May 7 18:24:52 2019 -0500 PCI: pciehp: Replace pciehp_debug module param with dyndbg Previously pciehp debug messages were enabled by the pciehp_debug module parameter, e.g., by booting with this kernel command line option: pciehp.pciehp_debug=1 Convert this mechanism to use the generic dynamic debug (dyndbg) feature. After this commit, pciehp debug messages are enabled by building the kernel with CONFIG_DYNAMIC_DEBUG=y and booting with this command line option: dyndbg="file pciehp* +p" The dyndbg facility is much more flexible: messages can be enabled at boot- or run-time based on the file name, function name, line number, message test, etc. See Documentation/admin-guide/dynamic-debug-howto.rst for more details. Link: https://lore.kernel.org/lkml/20190509141456.223614-7-helgaas@kernel.org Signed-off-by: Frederick Lawler [bhelgaas: commit log, comment, remove pciehp_debug parameter] Signed-off-by: Bjorn Helgaas Reviewed-by: Keith Busch Reviewed-by: Andy Shevchenko commit 7e696b8ae9a7f939584284a12eec3b7c62123836 Author: Bjorn Helgaas Date: Wed May 8 14:59:00 2019 -0500 PCI: pciehp: Remove pciehp_debug uses We're about to convert pciehp to the dyndbg mechanism, which means we can eventually remove pciehp_debug. Replace uses of pciehp_debug with dbg() and ctrl_dbg(), which check pciehp_debug internally. Link: https://lore.kernel.org/lkml/20190509141456.223614-6-helgaas@kernel.org Signed-off-by: Bjorn Helgaas Reviewed-by: Keith Busch Reviewed-by: Andy Shevchenko commit 9cc6f75b27e76d38fa7c2825c4a9a64fe26e4c77 Author: Frederick Lawler Date: Tue May 7 18:24:50 2019 -0500 PCI/AER: Log messages with pci_dev, not pcie_device Log messages with pci_dev, not pcie_device. Factor out common message prefixes with dev_fmt(). Example output change: - aer 0000:00:00.0:pci002: AER enabled with IRQ ... + pcieport 0000:00:00.0: AER: enabled with IRQ ... Link: https://lore.kernel.org/lkml/20190509141456.223614-5-helgaas@kernel.org Signed-off-by: Frederick Lawler Signed-off-by: Bjorn Helgaas Reviewed-by: Keith Busch Reviewed-by: Andy Shevchenko commit 45182e4e1f8ac04708ca7508c51d9103f07d81ab Merge: 06cbd26d312e e6ae3ca27477 Author: Linus Torvalds Date: Thu May 9 14:41:55 2019 -0700 Merge branch 'i2c/for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux Pull i2c updates from Wolfram Sang: - API for late atomic transfers (e.g. to shut down via PMIC). We have a seperate callback now which is called under clearly defined conditions. In-kernel users are converted, too. - new driver for the AMD PCIe MP2 I2C controller - large refactoring for at91 and bcm-iproc (both gain slave support due to this) - and a good share of various driver improvements anf fixes * 'i2c/for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (57 commits) dt-bindings: i2c: riic: document r7s9210 support i2c: imx-lpi2c: Use __maybe_unused instead of #if CONFIG_PM_SLEEP i2c-piix4: Add Hygon Dhyana SMBus support i2c: core: apply 'is_suspended' check for SMBus, too i2c: core: ratelimit 'transfer when suspended' errors i2c: iproc: Change driver to use 'BIT' macro i2c: riic: Add Runtime PM support i2c: mux: demux-pinctrl: use struct_size() in devm_kzalloc() i2c: mux: pca954x: allow management of device idle state via sysfs i2c: mux: pca9541: remove support for unused platform data i2c: mux: pca954x: remove support for unused platform data dt-bindings: i2c: i2c-mtk: add support for MT8516 i2c: axxia: use auto cmd for last message i2c: gpio: flag atomic capability if possible i2c: algo: bit: add flag to whitelist atomic transfers i2c: stu300: use xfer_atomic callback to bail out early i2c: ocores: enable atomic xfers i2c: ocores: refactor setup for polling i2c: tegra-bpmp: convert to use new atomic callbacks i2c: omap: Add the master_xfer_atomic hook ... commit 06cbd26d312edfe4a83ff541c23f8f866265eb24 Merge: abde77eb5c66 5940d1cf9f42 Author: Linus Torvalds Date: Thu May 9 14:33:15 2019 -0700 Merge tag 'nfs-for-5.2-1' of git://git.linux-nfs.org/projects/anna/linux-nfs Pull NFS client updates from Anna Schumaker: "Highlights include: Stable bugfixes: - Fall back to MDS if no deviceid is found rather than aborting # v4.11+ - NFS4: Fix v4.0 client state corruption when mount Features: - Much improved handling of soft mounts with NFS v4.0: - Reduce risk of false positive timeouts - Faster failover of reads and writes after a timeout - Added a "softerr" mount option to return ETIMEDOUT instead of EIO to the application after a timeout - Increase number of xprtrdma backchannel requests - Add additional xprtrdma tracepoints - Improved send completion batching for xprtrdma Other bugfixes and cleanups: - Return -EINVAL when NFS v4.2 is passed an invalid dedup mode - Reduce usage of GFP_ATOMIC pages in SUNRPC - Various minor NFS over RDMA cleanups and bugfixes - Use the correct container namespace for upcalls - Don't share superblocks between user namespaces - Various other container fixes - Make nfs_match_client() killable to prevent soft lockups - Don't mark all open state for recovery when handling recallable state revoked flag" * tag 'nfs-for-5.2-1' of git://git.linux-nfs.org/projects/anna/linux-nfs: (69 commits) SUNRPC: Rebalance a kref in auth_gss.c NFS: Fix a double unlock from nfs_match,get_client nfs: pass the correct prototype to read_cache_page NFSv4: don't mark all open state for recovery when handling recallable state revoked flag SUNRPC: Fix an error code in gss_alloc_msg() SUNRPC: task should be exit if encode return EKEYEXPIRED more times NFS4: Fix v4.0 client state corruption when mount PNFS fallback to MDS if no deviceid found NFS: make nfs_match_client killable lockd: Store the lockd client credential in struct nlm_host NFS: When mounting, don't share filesystems between different user namespaces NFS: Convert NFSv2 to use the container user namespace NFSv4: Convert the NFS client idmapper to use the container user namespace NFS: Convert NFSv3 to use the container user namespace SUNRPC: Use namespace of listening daemon in the client AUTH_GSS upcall SUNRPC: Use the client user namespace when encoding creds NFS: Store the credential of the mount process in the nfs_server SUNRPC: Cache cred of process creating the rpc_client xprtrdma: Remove stale comment xprtrdma: Update comments that reference ib_drain_qp ... commit 10a9990c10447a7bfe9dc016629898814741d090 Author: Frederick Lawler Date: Tue May 7 18:24:47 2019 -0500 PCI/DPC: Log messages with pci_dev, not pcie_device Log messages with pci_dev, not pcie_device. Factor out common message prefixes with dev_fmt(). Example output change: - dpc 0000:00:01.1:pcie008: DPC error containment capabilities... + pcieport 0000:00:01.1: DPC: error containment capabilities... Link: https://lore.kernel.org/lkml/20190509141456.223614-4-helgaas@kernel.org Signed-off-by: Frederick Lawler Signed-off-by: Bjorn Helgaas Reviewed-by: Keith Busch commit 00ebf1348cb332941dab52948f29480592bfbe6a Author: Frederick Lawler Date: Tue May 7 18:24:48 2019 -0500 PCI/PME: Replace dev_printk(KERN_DEBUG) with dev_info() Replace dev_printk(KERN_DEBUG) with dev_info() or dev_err() to be more consistent with other logging. These could be converted to dev_dbg(), but that depends on CONFIG_DYNAMIC_DEBUG and DEBUG, and we want most of these messages to *always* be in the dmesg log. Also, use dev_fmt() to add the service name. Example output change: - pcieport 0000:80:10.0: Signaling PME with IRQ ... + pcieport 0000:80:10.0: PME: Signaling with IRQ ... Link: https://lore.kernel.org/lkml/20190509141456.223614-3-helgaas@kernel.org Signed-off-by: Frederick Lawler Signed-off-by: Bjorn Helgaas Reviewed-by: Keith Busch commit d55791834570e79e9a1952f5c2e73f34af890fb3 Author: Frederick Lawler Date: Tue May 7 18:24:46 2019 -0500 PCI/AER: Replace dev_printk(KERN_DEBUG) with dev_info() Replace dev_printk(KERN_DEBUG) with dev_info() or dev_err() to be more consistent with other logging. These could be converted to dev_dbg(), but that depends on CONFIG_DYNAMIC_DEBUG and DEBUG, and we want most of these messages to *always* be in the dmesg log. Also remove a redundant kzalloc() failure message. Link: https://lore.kernel.org/lkml/20190509141456.223614-2-helgaas@kernel.org Signed-off-by: Frederick Lawler Signed-off-by: Bjorn Helgaas Reviewed-by: Keith Busch Reviewed-by: Andy Shevchenko commit f4d9a23d3dad0252f375901bf4ff6523a2c97241 Author: Mike Rapoport Date: Tue Feb 12 11:32:36 2019 +0200 sparc64: simplify reduce_memory() function The reduce_memory() function clampls the available memory to a limit defined by the "mem=" command line parameter. It takes into account the amount of already reserved memory and excludes it from the limit calculations. Rather than traverse memblocks and remove them by hand, use memblock_reserved_size() to account the reserved memory and memblock_enforce_memory_limit() to clamp the available memory. Signed-off-by: Mike Rapoport Acked-by: David S. Miller Signed-off-by: David S. Miller commit bc0025b6107c011e8f9411a275d8442a56bd573a Author: Gustavo A. R. Silva Date: Tue Jan 8 10:13:56 2019 -0600 sparc: use struct_size() in kzalloc() One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example: struct foo { int stuff; void *entry[]; }; instance = kzalloc(sizeof(struct foo) + sizeof(void *) * count, GFP_KERNEL); Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper: instance = kzalloc(struct_size(instance, entry, count), GFP_KERNEL); This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Signed-off-by: David S. Miller commit abde77eb5c66b2f98539c4644b54f34b7e179e6b Merge: 23c970608a09 f2b31bb59824 Author: Linus Torvalds Date: Thu May 9 13:52:12 2019 -0700 Merge branch 'for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup Pull cgroup updates from Tejun Heo: "This includes Roman's cgroup2 freezer implementation. It's a separate machanism from cgroup1 freezer. Instead of blocking user tasks in arbitrary uninterruptible sleeps, the new implementation extends jobctl stop - frozen tasks are trapped in jobctl stop until thawed and can be killed and ptraced. Lots of thanks to Oleg for sheperding the effort. Other than that, there are a few trivial changes" * 'for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: cgroup: never call do_group_exit() with task->frozen bit set kernel: cgroup: fix misuse of %x cgroup: get rid of cgroup_freezer_frozen_exit() cgroup: prevent spurious transition into non-frozen state cgroup: Remove unused cgrp variable cgroup: document cgroup v2 freezer interface cgroup: add tracing points for cgroup v2 freezer cgroup: make TRACE_CGROUP_PATH irq-safe kselftests: cgroup: add freezer controller self-tests kselftests: cgroup: don't fail on cg_kill_all() error in cg_destroy() cgroup: cgroup v2 freezer cgroup: protect cgroup->nr_(dying_)descendants by css_set_lock cgroup: implement __cgroup_task_count() helper cgroup: rename freezer.c into legacy_freezer.c cgroup: remove extra cgroup_migrate_finish() call commit 23c970608a0931b913f96f6117ea3e9e1bc06959 Merge: b1e76c3d3a77 24acfb718225 Author: Linus Torvalds Date: Thu May 9 13:48:52 2019 -0700 Merge branch 'for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq Pull workqueue updates from Tejun Heo: "Only three commits, of which two are trivial. The non-trivial chagne is Thomas's patch to switch workqueue from sched RCU to regular one. The use of sched RCU is mostly historic and doesn't really buy us anything noticeable" * 'for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: workqueue: Use normal rcu kernel/workqueue: Document wq_worker_last_func() argument kernel/workqueue: Use __printf markup to silence compiler in function 'alloc_workqueue' commit 36096f2f4fa05f7678bc87397665491700bae757 Author: YueHaibing Date: Thu May 9 22:52:20 2019 +0800 packet: Fix error path in packet_init kernel BUG at lib/list_debug.c:47! invalid opcode: 0000 [#1 CPU: 0 PID: 12914 Comm: rmmod Tainted: G W 5.1.0+ #47 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2014 RIP: 0010:__list_del_entry_valid+0x53/0x90 Code: 48 8b 32 48 39 fe 75 35 48 8b 50 08 48 39 f2 75 40 b8 01 00 00 00 5d c3 48 89 fe 48 89 c2 48 c7 c7 18 75 fe 82 e8 cb 34 78 ff <0f> 0b 48 89 fe 48 c7 c7 50 75 fe 82 e8 ba 34 78 ff 0f 0b 48 89 f2 RSP: 0018:ffffc90001c2fe40 EFLAGS: 00010286 RAX: 000000000000004e RBX: ffffffffa0184000 RCX: 0000000000000000 RDX: 0000000000000000 RSI: ffff888237a17788 RDI: 00000000ffffffff RBP: ffffc90001c2fe40 R08: 0000000000000000 R09: 0000000000000000 R10: ffffc90001c2fe10 R11: 0000000000000000 R12: 0000000000000000 R13: ffffc90001c2fe50 R14: ffffffffa0184000 R15: 0000000000000000 FS: 00007f3d83634540(0000) GS:ffff888237a00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000555c350ea818 CR3: 0000000231677000 CR4: 00000000000006f0 Call Trace: unregister_pernet_operations+0x34/0x120 unregister_pernet_subsys+0x1c/0x30 packet_exit+0x1c/0x369 [af_packet __x64_sys_delete_module+0x156/0x260 ? lockdep_hardirqs_on+0x133/0x1b0 ? do_syscall_64+0x12/0x1f0 do_syscall_64+0x6e/0x1f0 entry_SYSCALL_64_after_hwframe+0x49/0xbe When modprobe af_packet, register_pernet_subsys fails and does a cleanup, ops->list is set to LIST_POISON1, but the module init is considered to success, then while rmmod it, BUG() is triggered in __list_del_entry_valid which is called from unregister_pernet_subsys. This patch fix error handing path in packet_init to avoid possilbe issue if some error occur. Reported-by: Hulk Robot Signed-off-by: YueHaibing Signed-off-by: David S. Miller commit b1e76c3d3a774298475622bde63010972c9515a1 Merge: 800c608c976c 3213486f2e44 Author: Linus Torvalds Date: Thu May 9 13:28:26 2019 -0700 Merge tag 'csky-for-linus-5.2-perf-unwind-libdw' of git://github.com/c-sky/csky-linux Pull arch/csky perf update from Guo Ren: "Add support for perf unwind-libdw" * tag 'csky-for-linus-5.2-perf-unwind-libdw' of git://github.com/c-sky/csky-linux: csky: Add support for perf unwind-libdw commit 5940d1cf9f42f67e9cc3f7df9eda39f5888d6e9e Author: Chuck Lever Date: Thu May 9 11:00:07 2019 -0400 SUNRPC: Rebalance a kref in auth_gss.c Restore the kref_get that matches the gss_put_auth(gss_msg->auth) done by gss_release_msg(). Fixes: ac83228a7101 ("SUNRPC: Use namespace of listening daemon ...") Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker commit c260121a97a3e4df6536edbc2f26e166eff370ce Author: Benjamin Coddington Date: Thu May 9 07:25:21 2019 -0400 NFS: Fix a double unlock from nfs_match,get_client Now that nfs_match_client drops the nfs_client_lock, we should be careful to always return it in the same condition: locked. Fixes: 950a578c6128 ("NFS: make nfs_match_client killable") Reported-by: syzbot+228a82b263b5da91883d@syzkaller.appspotmail.com Signed-off-by: Benjamin Coddington Signed-off-by: Anna Schumaker commit a46126ccc77e764429d63bf958d117f607f4b6c6 Author: Christoph Hellwig Date: Wed May 1 12:06:35 2019 -0400 nfs: pass the correct prototype to read_cache_page Fix the callbacks NFS passes to read_cache_page to actually have the proper type expected. Casting around function pointers can easily hide typing bugs, and defeats control flow protection. Signed-off-by: Christoph Hellwig Signed-off-by: Anna Schumaker commit 8ca017c8cee3aa6a37ddf1db7fd04c54536a0ef0 Author: Scott Mayhew Date: Mon May 6 11:59:05 2019 -0400 NFSv4: don't mark all open state for recovery when handling recallable state revoked flag Only delegations and layouts can be recalled, so it shouldn't be necessary to recover all opens when handling the status bit SEQ4_STATUS_RECALLABLE_STATE_REVOKED. We'll still wind up calling nfs41_open_expired() when a TEST_STATEID returns NFS4ERR_DELEG_REVOKED. Signed-off-by: Scott Mayhew Reviewed-by: Trond Myklebust Signed-off-by: Anna Schumaker commit fe31ce83cbac7adcaa629b59179f502981be5f8b Author: Dan Carpenter Date: Fri May 3 15:30:09 2019 +0300 SUNRPC: Fix an error code in gss_alloc_msg() If kstrdup_const() then this function returns zero (success) but it should return -ENOMEM. Fixes: ac83228a7101 ("SUNRPC: Use namespace of listening daemon in the client AUTH_GSS upcall") Signed-off-by: Dan Carpenter Signed-off-by: Anna Schumaker commit 9c5948c248696ca60c56ec5a608e225c4ab8a854 Author: ZhangXiaoxu Date: Mon Apr 29 17:32:31 2019 +0800 SUNRPC: task should be exit if encode return EKEYEXPIRED more times If the rpc.gssd always return cred success, but now the cred is expired, then the task will loop in call_refresh and call_transmit. Exit the rpc task after retry. Signed-off-by: ZhangXiaoxu Signed-off-by: Anna Schumaker commit f02f3755dbd14fb935d24b14650fff9ba92243b8 Author: ZhangXiaoxu Date: Mon May 6 11:57:03 2019 +0800 NFS4: Fix v4.0 client state corruption when mount stat command with soft mount never return after server is stopped. When alloc a new client, the state of the client will be set to NFS4CLNT_LEASE_EXPIRED. When the server is stopped, the state manager will work, and accord the state to recover. But the state is NFS4CLNT_LEASE_EXPIRED, it will drain the slot table and lead other task to wait queue, until the client recovered. Then the stat command is hung. When discover server trunking, the client will renew the lease, but check the client state, it lead the client state corruption. So, we need to call state manager to recover it when detect server ip trunking. Signed-off-by: ZhangXiaoxu Cc: stable@vger.kernel.org Signed-off-by: Anna Schumaker commit b1029c9bc078a6f1515f55dd993b507dcc7e3440 Author: Olga Kornievskaia Date: Tue May 7 13:41:49 2019 -0400 PNFS fallback to MDS if no deviceid found If we fail to find a good deviceid while trying to pnfs instead of propogating an error back fallback to doing IO to the MDS. Currently, code with fals the IO with EINVAL. Signed-off-by: Olga Kornievskaia Fixes: 8d40b0f14846f ("NFS filelayout:call GETDEVICEINFO after pnfs_layout_process completes" Cc: stable@vger.kernel.org # v4.11+ Signed-off-by: Anna Schumaker commit 800c608c976c3f0a6d02ed7fbc600f1f6962ac73 Merge: 7664cd6e3a0b 8d31a5c35ed1 Author: Linus Torvalds Date: Thu May 9 13:08:05 2019 -0700 Merge branch 'next-smack' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security Pull smack updates from James Morris: "Bug fixes for IPv6 handling and other issues and two memory use improvements." * 'next-smack' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: Smack: Fix kbuild reported build error smack: Check address length before reading address family Smack: Fix IPv6 handling of 0 secmark Smack: Create smack_rule cache to optimize memory usage smack: removal of global rule list commit 05d6909ea9d62bb357846177a84842e09fc15914 Author: Mike Snitzer Date: Thu May 9 15:25:49 2019 -0400 dm integrity: whitespace, coding style and dead code cleanup Just some things that stood out like a sore thumb. Also, converted some printk(KERN_CRIT, ...) to DMCRIT(...) Signed-off-by: Mike Snitzer commit 7664cd6e3a0b2709f04c07435e96c7c85e7d7324 Merge: 882388056194 2bfebea90dd5 Author: Linus Torvalds Date: Thu May 9 12:54:40 2019 -0700 Merge branch 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security Pull intgrity updates from James Morris: "This contains just three patches, the remainder were either included in other pull requests (eg. audit, lockdown) or will be upstreamed via other subsystems (eg. kselftests, Power). Included here is one bug fix, one documentation update, and extending the x86 IMA arch policy rules to coordinate the different kernel module signature verification methods" * 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: doc/kernel-parameters.txt: Deprecate ima_appraise_tcb x86/ima: add missing include x86/ima: require signed kernel modules commit 09eb8b7c5adcc5d1d1908d78237dd7ae1d8605b6 Author: Axel Lin Date: Thu May 9 20:56:14 2019 +0800 power: supply: ucs1002: Fix wrong return value checking Fix wrong return value checking for devm_regulator_register and devm_regmap_init_i2c. This looks like a copy-n-paste mistake. Fixes: 9a2688e42638 ("power: supply: Add driver for Microchip UCS1002") Signed-off-by: Axel Lin Reviewed-by: Enric Balletbo i Serra Reviewed-by: Andrey Smirnov Signed-off-by: Sebastian Reichel commit 10235380d18e8f666446970078d1ee69b33ab643 Author: Tobias Auerochs Date: Sat Apr 20 21:19:51 2019 +0200 HID: rmi: Use SET_REPORT request on control endpoint for Acer Switch 3 and 5 The touchpad on the cover keyboard for the Acer Switch 3 and 5 does not work as-is under Linux. Both devices have the same usb id for the cover keyboard. The kernel correctly assigns the hid-rmi driver to the device using usbhid for transport. Any attempts of hid-rmi to talk to the device using hid_hw_output_report fail however as usbhid does not have a working urbout due to the lack of any out endpoints. Looking through Wireshark usbmon recordings from the Windows Synaptics driver for this computer running inside of QEMU shows that it should be using SET_REPORT requests instead. This replaces the hid_hw_output_report in hid-rmi with a hid_hw_raw_request for this device, which is at least enough to enable the kernel to get working multi-touch input. Signed-off-by: Tobias Auerochs Signed-off-by: Jiri Kosina commit ced2c0c53d08e44b1443d66620c1a883db53c72f Author: Hans de Goede Date: Sun Apr 28 21:25:52 2019 +0200 HID: logitech-hidpp: add support for the MX5500 keyboard The MX5500 keyboard needs the HIDPP_CONSUMER_VENDOR_KEYS quirk to report events for the 'A' - 'D' Smart Keys and for the "Photo Gallery" and "Gadgets" keys. In addition to this adding the Bluetooth match, so that hid-logitech-hidpp is used instead of the generic HID driver, also adds battery monitoring support when the keyboard is connected over Bluetooth. Signed-off-by: Hans de Goede Signed-off-by: Jiri Kosina commit b9a94fbe0ed0c37c0eb8b32c418506563259dc57 Author: Hans de Goede Date: Sun Apr 28 21:25:51 2019 +0200 HID: logitech-dj: add support for the Logitech MX5500's Bluetooth Mini-Receiver Add support for the HID proxy mode of the Logitech Bluetooth Mini-Receiver which comes with the Logitech MX5500 keyboard. This receiver works the same as the Bluetooth Mini-Receiver coming with the MX5000 keyboard and also presents itself as an USB-hub with 2 separate USB devices for the keyboard (boot sub-class) interface and for the (boot sub-class) mouse interface. Signed-off-by: Hans de Goede Signed-off-by: Jiri Kosina commit eb6964fa6509b4f1152313f1e0bb67f0c54a6046 Author: Kai-Heng Feng Date: Mon Apr 22 14:57:04 2019 +0800 HID: i2c-hid: add iBall Aer3 to descriptor override This device uses the SIPODEV SP1064 touchpad, which does not supply descriptors, so it has to be added to the override list. BugLink: https://bugs.launchpad.net/bugs/1825718 Signed-off-by: Kai-Heng Feng Signed-off-by: Jiri Kosina commit a15fd609ad53a631a927c6680e8fb606f42a712b Author: Linus Torvalds Date: Wed Mar 20 10:26:17 2019 -0700 tracing: Simplify "if" macro code Peter Zijlstra noticed that with CONFIG_PROFILE_ALL_BRANCHES, the "if" macro converts the conditional to an array index. This can cause GCC to create horrible code. When there are nested ifs, the generated code uses register values to encode branching decisions. Josh Poimboeuf found that replacing the define "if" macro from using the condition as an array index and incrementing the branch statics with an if statement itself, reduced the asm complexity and shrinks the generated code quite a bit. But this can be simplified even further by replacing the internal if statement with a ternary operator. Link: https://lkml.kernel.org/r/20190307174802.46fmpysxyo35hh43@treble Link: http://lkml.kernel.org/r/CAHk-=wiALN3jRuzARpwThN62iKd476Xj-uom+YnLZ4=eqcz7xQ@mail.gmail.com Reported-by: Peter Zijlstra (Intel) Reported-by: Josh Poimboeuf Signed-off-by: Linus Torvalds Signed-off-by: Steven Rostedt (VMware) commit 936b33f7243fa1e54c8f4f2febd3472cc00e66fd Author: Mikulas Patocka Date: Thu May 9 12:51:27 2019 -0600 brd: add cond_resched to brd_free_pages The loop that frees all the pages can take unbounded amount of time, so add cond_resched() to it. Signed-off-by: Mikulas Patocka Signed-off-by: Jens Axboe commit d1c35afb0892fc8b334ee0ce0902155d2cfb118c Author: Steve French Date: Thu May 9 00:09:37 2019 -0500 smb3: trivial cleanup to smb2ops.c Minor cleanup - e.g. missing \n at end of debug statement. Reported-by: Christoph Probst Signed-off-by: Steve French Acked-by: Pavel Shilovsky commit a205d5005eba9e2bcfff735c5d1e416df39df912 Author: Christoph Probst Date: Wed May 8 21:36:25 2019 +0200 cifs: cleanup smb2ops.c and normalize strings Fix checkpatch warnings/errors in smb2ops.c except "LONG_LINE". Add missing linebreaks, indentings, __func__. Remove void-returns, unneeded braces. Address warnings spotted by checkpatch. Add SPDX License Header. Add missing "\n" and capitalize first letter in some cifs_dbg() strings. Signed-off-by: Christoph Probst Signed-off-by: Steve French Acked-by: Pavel Shilovsky commit b63a9de02d64ecd5ff0749e90253f5b30ba5b9c0 Author: Steve French Date: Wed May 8 22:41:37 2019 -0500 smb3: display session id in debug data Displaying the session id in /proc/fs/cifs/DebugData is needed in order to correlate Linux client information with network and server traces for many common support scenarios. Turned out to be very important for debugging. Signed-off-by: Steve French CC: Stable Reviewed-by: Pavel Shilovsky commit 494bc1d281b5a9f02a81249fa566d8c7e390c50c Author: Jakub Kicinski Date: Wed May 8 16:46:14 2019 -0700 net/tcp: use deferred jump label for TCP acked data hook User space can flip the clean_acked_data_enabled static branch on and off with TLS offload when CONFIG_TLS_DEVICE is enabled. jump_label.h suggests we use the delayed version in this case. Deferred branches now also don't take the branch mutex on decrement, so we avoid potential locking issues. Signed-off-by: Jakub Kicinski Reviewed-by: Simon Horman Reviewed-by: Eric Dumazet Signed-off-by: David S. Miller commit cf12c6729c7405c06b3e1bfccac7aa7ad007e1b7 Author: Geert Uytterhoeven Date: Mon Apr 29 17:22:09 2019 +0200 sata_rcar: Remove ata_host_alloc() error printing ata_host_alloc() can only fail due to memory allocation failures. Hence there is no need to print a message, as the memory allocation core code already takes care of that. Reviewed-by: Simon Horman Reviewed-by: Sergei Shtylyov Signed-off-by: Geert Uytterhoeven Signed-off-by: Jens Axboe commit 70610c922bae2f3f974eef955ef254defb7755ce Author: Kefeng Wang Date: Thu May 9 23:32:35 2019 +0800 net: aquantia: fix undefined devm_hwmon_device_register_with_info reference drivers/net/ethernet/aquantia/atlantic/aq_drvinfo.o: In function `aq_drvinfo_init': aq_drvinfo.c:(.text+0xe8): undefined reference to `devm_hwmon_device_register_with_info' Fix it by using #if IS_REACHABLE(CONFIG_HWMON). Reported-by: Hulk Robot Signed-off-by: Kefeng Wang Signed-off-by: David S. Miller commit d7e163ced48f942c9a307117e15b0f863a01bc1e Merge: 2cf672709beb a3c7cd0cdf11 Author: David S. Miller Date: Thu May 9 09:44:17 2019 -0700 Merge tag 'batadv-net-for-davem-20190509' of git://git.open-mesh.org/linux-merge Simon Wunderlich says: ==================== This feature/cleanup patchset includes the following patches: - bump version strings, by Simon Wunderlich (we forgot to include this patch previously ...) - fix multicast tt/tvlv worker locking, by Linus Lüssing ==================== Signed-off-by: David S. Miller commit 2777e654371dd4207a3a7f4fb5fa39550053a080 Author: Randall Huang Date: Thu Apr 11 16:26:46 2019 +0800 f2fs: fix to avoid accessing xattr across the boundary When we traverse xattr entries via __find_xattr(), if the raw filesystem content is faked or any hardware failure occurs, out-of-bound error can be detected by KASAN. Fix the issue by introducing boundary check. [ 38.402878] c7 1827 BUG: KASAN: slab-out-of-bounds in f2fs_getxattr+0x518/0x68c [ 38.402891] c7 1827 Read of size 4 at addr ffffffc0b6fb35dc by task [ 38.402935] c7 1827 Call trace: [ 38.402952] c7 1827 [] dump_backtrace+0x0/0x6bc [ 38.402966] c7 1827 [] show_stack+0x20/0x2c [ 38.402981] c7 1827 [] dump_stack+0xfc/0x140 [ 38.402995] c7 1827 [] print_address_description+0x80/0x2d8 [ 38.403009] c7 1827 [] kasan_report_error+0x198/0x1fc [ 38.403022] c7 1827 [] kasan_report_error+0x0/0x1fc [ 38.403037] c7 1827 [] __asan_load4+0x1b0/0x1b8 [ 38.403051] c7 1827 [] f2fs_getxattr+0x518/0x68c [ 38.403066] c7 1827 [] f2fs_xattr_generic_get+0xb0/0xd0 [ 38.403080] c7 1827 [] __vfs_getxattr+0x1f4/0x1fc [ 38.403096] c7 1827 [] inode_doinit_with_dentry+0x360/0x938 [ 38.403109] c7 1827 [] selinux_d_instantiate+0x2c/0x38 [ 38.403123] c7 1827 [] security_d_instantiate+0x68/0x98 [ 38.403136] c7 1827 [] d_splice_alias+0x58/0x348 [ 38.403149] c7 1827 [] f2fs_lookup+0x608/0x774 [ 38.403163] c7 1827 [] lookup_slow+0x1e0/0x2cc [ 38.403177] c7 1827 [] walk_component+0x160/0x520 [ 38.403190] c7 1827 [] path_lookupat+0x110/0x2b4 [ 38.403203] c7 1827 [] filename_lookup+0x1d8/0x3a8 [ 38.403216] c7 1827 [] user_path_at_empty+0x54/0x68 [ 38.403229] c7 1827 [] SyS_getxattr+0xb4/0x18c [ 38.403241] c7 1827 [] el0_svc_naked+0x34/0x38 Signed-off-by: Randall Huang [Jaegeuk Kim: Fix wrong ending boundary] Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim commit 882388056194d2d4c3f589b194b6bdcc47e677e8 Merge: dce45af5c2e9 33713cd09ccd Author: Linus Torvalds Date: Thu May 9 09:37:25 2019 -0700 Merge tag 'for-linus-5.2-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux Pull orangefs updates from Mike Marshall: "This includes one fix and our "Orangefs through the pagecache" patch series which greatly improves our small IO performance and helps us pass more xfstests than before. Fix: - orangefs: truncate before updating size Pagecache series: - all the rest" * tag 'for-linus-5.2-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux: (23 commits) orangefs: truncate before updating size orangefs: copy Orangefs-sized blocks into the pagecache if possible. orangefs: pass slot index back to readpage. orangefs: remember count when reading. orangefs: add orangefs_revalidate_mapping orangefs: implement writepages orangefs: write range tracking orangefs: avoid fsync service operation on flush orangefs: skip inode writeout if nothing to write orangefs: move do_readv_writev to direct_IO orangefs: do not return successful read when the client-core disappeared orangefs: implement writepage orangefs: migrate to generic_file_read_iter orangefs: service ops done for writeback are not killable orangefs: remove orangefs_readpages orangefs: reorganize setattr functions to track attribute changes orangefs: let setattr write to cached inode orangefs: set up and use backing_dev_info orangefs: hold i_lock during inode_getattr orangefs: update attributes rather than relying on server ... commit 2cf672709beb005f6e90cb4edbed6f2218ba953e Author: Oliver Neukum Date: Thu May 9 11:08:18 2019 +0200 aqc111: fix double endianness swap on BE If you are using a function that does a swap in place, you cannot just reuse the buffer on the assumption that it has not been changed. Signed-off-by: Oliver Neukum Signed-off-by: David S. Miller commit 369b46e9fbcfa5136f2cb5f486c90e5f7fa92630 Author: Oliver Neukum Date: Thu May 9 11:08:17 2019 +0200 aqc111: fix writing to the phy on BE When writing to the phy on BE architectures an internal data structure was directly given, leading to it being byte swapped in the wrong way for the CPU in 50% of all cases. A temporary buffer must be used. Signed-off-by: Oliver Neukum Signed-off-by: David S. Miller commit b8b277525e9df2fd2dc3d1f4fe01c6796bb107fc Author: Oliver Neukum Date: Thu May 9 11:08:16 2019 +0200 aqc111: fix endianness issue in aqc111_change_mtu If the MTU is large enough, the first write to the device is just repeated. On BE architectures, however, the first word of the command will be swapped a second time and garbage will be written. Avoid that. Signed-off-by: Oliver Neukum Signed-off-by: David S. Miller commit 873017af778439f2f8e3d87f28ddb1fcaf244a76 Author: Hangbin Liu Date: Thu May 9 14:55:07 2019 +0800 vlan: disable SIOCSHWTSTAMP in container With NET_ADMIN enabled in container, a normal user could be mapped to root and is able to change the real device's rx filter via ioctl on vlan, which would affect the other ptp process on host. Fix it by disabling SIOCSHWTSTAMP in container. Fixes: a6111d3c93d0 ("vlan: Pass SIOC[SG]HWTSTAMP ioctls to real device") Signed-off-by: Hangbin Liu Acked-by: Richard Cochran Signed-off-by: David S. Miller commit 6c2ea9ebafa79eea9098a134a422391638879f45 Author: Hangbin Liu Date: Thu May 9 14:54:08 2019 +0800 macvlan: disable SIOCSHWTSTAMP in container Miroslav pointed that with NET_ADMIN enabled in container, a normal user could be mapped to root and is able to change the real device's rx filter via ioctl on macvlan, which would affect the other ptp process on host. Fix it by disabling SIOCSHWTSTAMP in container. Fixes: 254c0a2bfedb ("macvlan: pass get_ts_info and SIOC[SG]HWTSTAMP ioctl to real device") Signed-off-by: Hangbin Liu Acked-by: Richard Cochran Signed-off-by: David S. Miller commit ff946833b70e0c7f93de9a3f5b329b5ae2287b38 Author: Parthasarathy Bhuvaragan Date: Thu May 9 07:13:42 2019 +0200 tipc: fix hanging clients using poll with EPOLLOUT flag commit 517d7c79bdb398 ("tipc: fix hanging poll() for stream sockets") introduced a regression for clients using non-blocking sockets. After the commit, we send EPOLLOUT event to the client even in TIPC_CONNECTING state. This causes the subsequent send() to fail with ENOTCONN, as the socket is still not in TIPC_ESTABLISHED state. In this commit, we: - improve the fix for hanging poll() by replacing sk_data_ready() with sk_state_change() to wake up all clients. - revert the faulty updates introduced by commit 517d7c79bdb398 ("tipc: fix hanging poll() for stream sockets"). Fixes: 517d7c79bdb398 ("tipc: fix hanging poll() for stream sockets") Signed-off-by: Parthasarathy Bhuvaragan Acked-by: Jon Maloy Signed-off-by: David S. Miller commit 9871a9e47a2646fe30ae7fd2e67668a8d30912f6 Author: Jason Wang Date: Wed May 8 23:20:18 2019 -0400 tuntap: synchronize through tfiles array instead of tun->numqueues When a queue(tfile) is detached through __tun_detach(), we move the last enabled tfile to the position where detached one sit but don't NULL out last position. We expect to synchronize the datapath through tun->numqueues. Unfortunately, this won't work since we're lacking sufficient mechanism to order or synchronize the access to tun->numqueues. To fix this, NULL out the last position during detaching and check RCU protected tfile against NULL instead of checking tun->numqueues in datapath. Cc: YueHaibing Cc: Cong Wang Cc: weiyongjun (A) Cc: Eric Dumazet Fixes: c8d68e6be1c3b ("tuntap: multiqueue support") Signed-off-by: Jason Wang Reviewed-by: Wei Yongjun Signed-off-by: David S. Miller commit a35d310f03a692bf4798eb309a1950a06a150620 Author: Jason Wang Date: Wed May 8 23:20:17 2019 -0400 tuntap: fix dividing by zero in ebpf queue selection We need check if tun->numqueues is zero (e.g for the persist device) before trying to use it for modular arithmetic. Reported-by: Eric Dumazet Fixes: 96f84061620c6("tun: add eBPF based queue selection method") Signed-off-by: Jason Wang Reviewed-by: Eric Dumazet Signed-off-by: David S. Miller commit 68a5cde9f02e690206e41c2d5aba88461a8829f1 Author: Cheng Han Date: Thu May 9 11:13:41 2019 +0800 dwmac4_prog_mtl_tx_algorithms() missing write operation net: ethernet: stmmac: dwmac4_prog_mtl_tx_algorithms() missing write operation The value of MTL_OPERATION_MODE is not written back Signed-off-by: Cheng Han Signed-off-by: David S. Miller commit 7f4399ba405b6201fb318b43091703a34b1489ab Author: Claudiu Manoil Date: Thu May 9 03:07:12 2019 +0000 ptp_qoriq: fix NULL access if ptp dt node missing Make sure ptp dt node exists before accessing it in case of NULL pointer call trace. Signed-off-by: Claudiu Manoil Signed-off-by: Yangbo Lu Acked-by: Richard Cochran Signed-off-by: David S. Miller commit dce45af5c2e9e85f22578f2f8065f225f5d11764 Merge: 055128ee008b b79656ed44c6 Author: Linus Torvalds Date: Thu May 9 09:02:46 2019 -0700 Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma Pull rdma updates from Jason Gunthorpe: "This has been a smaller cycle than normal. One new driver was accepted, which is unusual, and at least one more driver remains in review on the list. Summary: - Driver fixes for hns, hfi1, nes, rxe, i40iw, mlx5, cxgb4, vmw_pvrdma - Many patches from MatthewW converting radix tree and IDR users to use xarray - Introduction of tracepoints to the MAD layer - Build large SGLs at the start for DMA mapping and get the driver to split them - Generally clean SGL handling code throughout the subsystem - Support for restricting RDMA devices to net namespaces for containers - Progress to remove object allocation boilerplate code from drivers - Change in how the mlx5 driver shows representor ports linked to VFs - mlx5 uapi feature to access the on chip SW ICM memory - Add a new driver for 'EFA'. This is HW that supports user space packet processing through QPs in Amazon's cloud" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (186 commits) RDMA/ipoib: Allow user space differentiate between valid dev_port IB/core, ipoib: Do not overreact to SM LID change event RDMA/device: Don't fire uevent before device is fully initialized lib/scatterlist: Remove leftover from sg_page_iter comment RDMA/efa: Add driver to Kconfig/Makefile RDMA/efa: Add the efa module RDMA/efa: Add EFA verbs implementation RDMA/efa: Add common command handlers RDMA/efa: Implement functions that submit and complete admin commands RDMA/efa: Add the ABI definitions RDMA/efa: Add the com service API definitions RDMA/efa: Add the efa_com.h file RDMA/efa: Add the efa.h header file RDMA/efa: Add EFA device definitions RDMA: Add EFA related definitions RDMA/umem: Remove hugetlb flag RDMA/bnxt_re: Use core helpers to get aligned DMA address RDMA/i40iw: Use core helpers to get aligned DMA address within a supported page size RDMA/verbs: Add a DMA iterator to return aligned contiguous memory blocks RDMA/umem: Add API to find best driver supported page size in an MR ... commit 055128ee008b00fba14e3638e7e84fc2cff8d77d Merge: ddab5337b23c f33e7bb3eb92 Author: Linus Torvalds Date: Thu May 9 08:51:45 2019 -0700 Merge tag 'dmaengine-5.2-rc1' of git://git.infradead.org/users/vkoul/slave-dma Pull dmaengine updates from Vinod Koul: - Updates to stm32 dma residue calculations - Interleave dma capability to axi-dmac and support for ZynqMP arch - Rework of channel assignment for rcar dma - Debugfs for pl330 driver - Support for Tegra186/Tegra194, refactoring for new chips and support for pause/resume - Updates to axi-dmac, bcm2835, fsl-edma, idma64, imx-sdma, rcar-dmac, stm32-dma etc - dev_get_drvdata() updates on few drivers * tag 'dmaengine-5.2-rc1' of git://git.infradead.org/users/vkoul/slave-dma: (34 commits) dmaengine: tegra210-adma: restore channel status dmaengine: tegra210-dma: free dma controller in remove() dmaengine: tegra210-adma: add pause/resume support dmaengine: tegra210-adma: add support for Tegra186/Tegra194 Documentation: DT: Add compatibility binding for Tegra186 dmaengine: tegra210-adma: prepare for supporting newer Tegra chips dmaengine: at_xdmac: remove a stray bottom half unlock dmaengine: fsl-edma: Adjust indentation dmaengine: fsl-edma: Fix typo in Vybrid name dmaengine: stm32-dma: fix residue calculation in stm32-dma dmaengine: nbpfaxi: Use dev_get_drvdata() dmaengine: bcm-sba-raid: Use dev_get_drvdata() dmaengine: stm32-dma: Fix unsigned variable compared with zero dmaengine: stm32-dma: use platform_get_irq() dmaengine: rcar-dmac: Update copyright information dmaengine: imx-sdma: Only check ratio on parts that support 1:1 dmaengine: xgene-dma: fix spelling mistake "descripto" -> "descriptor" dmaengine: idma64: Move driver name to the header dmaengine: bcm2835: Drop duplicate capability setting. dmaengine: pl330: _stop: clear interrupt status ... commit c3c599281f2b9915200fe0390afe1ae7aca69feb Author: Shuah Khan Date: Tue May 7 17:44:21 2019 -0600 selftests: fix install target to use default install path Install target fails when INSTALL_PATH is undefined. Fix install target to use "output_dir/install as the default install location. "output_dir" is either the root of selftests directory under kernel source tree or output directory specified by O= or KBUILD_OUTPUT. e.g: make -C tools/testing/selftests install make O=/tmp/kselftest -C tools/testing/selftests install export KBUILD_OUTPUT=/tmp/kselftest make -C tools/testing/selftests install In addition, add "all" target as dependency to "install" to build and install using a single command. Signed-off-by: Shuah Khan commit ddab5337b23c99777d7cfb39c0f8efe536c17dff Merge: e57ccca1ba33 13bf5ced9377 Author: Linus Torvalds Date: Thu May 9 08:40:55 2019 -0700 Merge tag 'dma-mapping-5.2' of git://git.infradead.org/users/hch/dma-mapping Pull DMA mapping updates from Christoph Hellwig: - remove the already broken support for NULL dev arguments to the DMA API calls - Kconfig tidyups * tag 'dma-mapping-5.2' of git://git.infradead.org/users/hch/dma-mapping: dma-mapping: add a Kconfig symbol to indicate arch_dma_prep_coherent presence dma-mapping: remove an unnecessary NULL check x86/dma: Remove the x86_dma_fallback_dev hack dma-mapping: remove leftover NULL device support arm: use a dummy struct device for ISA DMA use of the DMA API pxa3xx-gcu: pass struct device to dma_mmap_coherent gbefb: switch to managed version of the DMA allocator da8xx-fb: pass struct device to DMA API functions parport_ip32: pass struct device to DMA API functions dma: select GENERIC_ALLOCATOR for DMA_REMAP commit f41efceb46e697a750e93c19e4579dc50697effe Author: Neil Armstrong Date: Tue Apr 23 15:36:45 2019 +0200 pwm: meson: Add clock source configuration for Meson G12A For the PWM controller in the Meson G12A SoC, the EE domain and AO domain have different clock sources. This patch tries to describe them in the DT compatible data. The two AO PWM controller has different clock source, but the first AO controller (A & B) can reuse the AXG parents name. Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Signed-off-by: Thierry Reding commit ad36cb9186bc805b8fd0b9908469e29617211658 Author: Neil Armstrong Date: Tue Apr 23 15:36:44 2019 +0200 dt-bindings: pwm: Update bindings for the Meson G12A Family Update the doc to explicitly support Meson G12A Family. The 2 first (A & B) AO PWM uses different clock source than the last 2 (C & D) AO PWM modules, thus we need to differentiate them. Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Reviewed-by: Rob Herring Signed-off-by: Thierry Reding commit b05232d624425f8584b511f0e102c3b963b00323 Author: Uwe Kleine-König Date: Mon Mar 25 10:49:34 2019 +0100 pwm: samsung: Don't uses devm_*() functions in ->request() A call to ->request() is always paired by a call to ->free() before a given device is disposed. So the simplification that usually is possible when using devm_*() functions cannot be used here. So use plain kzalloc() and kfree() for improved runtime behaviour and reduced memory footprint. Signed-off-by: Uwe Kleine-König [thierry.reding@gmail.com: fix build failure] Signed-off-by: Thierry Reding commit e57ccca1ba33e1d92cc3bbf8b6304a46948844b0 Merge: a2d635decbfa ed97c988bdc6 Author: Linus Torvalds Date: Thu May 9 08:26:55 2019 -0700 Merge tag 'sound-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound updates from Takashi Iwai: "The most significant changes at this cycle are the Sound Open Firmware support from Intel for the common DSP framework along with its support for Intel platforms. It's a door opened to a real "free" firmware (in the sense of FOSS), and other parties show interests in it. In addition to SOF, we've got a bunch of updates and fixes as usual. Some highlights are below. ALSA core: - Cleanups and fixes in ALSA timer code to cover some races spotted by syzkaller - Cleanups and fixes in ALSA sequencer code to cover some races, again unsurprisingly, spotted by syzkaller - Optimize the common page allocation helper with alloc_pages_exact() ASoC: - Add SOF core support, as well as Intel SOF platform support - Generic card driver improvements: support for MCLK/sample rate ratio and pin switches - A big set of improvements to TLV320AIC32x4 drivers - New drivers for Freescale audio mixers, several Intel machines, several Mediatek machines, Meson G12A, Spreadtrum compressed audio and DMA devices HD-audio: - A few Realtek codec fixes for reducing pop noises - Quirks for Chromebooks - Workaround for faulty connection report on AMD/Nvidia HDMI Others: - A quirk for Focusrite Scarlett Solo USB-audio - Add support for MOTU 8pre FireWire - 24bit sample format support in aloop - GUS patch format support (finally, over a decade) in native emux synth code" * tag 'sound-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (375 commits) ASoC: SOF: Fix unused variable warnings ALSA: line6: toneport: Fix broken usage of timer for delayed execution ALSA: aica: Fix a long-time build breakage ALSA: hda/realtek - Support low power consumption for ALC256 ASoC: stm32: i2s: update pcm hardware constraints ASoC: codec: hdac_hdmi: no checking monitor in hw_params ASoC: mediatek: mt6358: save PGA for mixer control ASoC: mediatek: mt6358: save output volume for mixer controls ASoC: mediatek: mt6358: initialize setting when ramping volume ASoC: SOF: core: fix undefined nocodec reference ASoC: SOF: xtensa: fix undefined references ASoC: SOF: Propagate sof_get_ctrl_copy_params() error properly ALSA: hdea/realtek - Headset fixup for System76 Gazelle (gaze14) ALSA: hda/intel: add CometLake PCI IDs ALSA: hda/realtek - Support low power consumption for ALC295 ASoC: rockchip: Fix an uninitialized variable compile warning ASoC: SOF: Fix a compile warning with CONFIG_PCI=n ASoC: da7219: Fix a compile warning at CONFIG_COMMON_CLK=n ASoC: sound/soc/sof/: fix kconfig dependency warning ASoC: stm32: spdifrx: change trace level on iec control ... commit e926b12c611c2095c7976e2ed31753ad6eb5ff1a Author: Uwe Kleine-König Date: Mon Mar 25 10:49:33 2019 +0100 pwm: Clear chip_data in pwm_put() After a PWM is disposed by its user the per chip data becomes invalid. Clear the data in common code instead of the device drivers to get consistent behaviour. Before this patch only three of nine drivers cleaned up here. Signed-off-by: Uwe Kleine-König Signed-off-by: Thierry Reding commit 738a1cfec2edb4a6c53ac34fcb29447227dd135e Author: Anson Huang Date: Thu May 9 13:29:29 2019 +0000 pwm: Add i.MX TPM PWM driver support i.MX7ULP has TPM(Low Power Timer/Pulse Width Modulation Module) inside, it can support multiple PWM channels, all the channels share same counter and period setting, but each channel can configure its duty and polarity independently. There are several TPM modules in i.MX7ULP, the number of channels in TPM modules are different, it can be read from each TPM module's PARAM register. Signed-off-by: Anson Huang Reviewed-by: Uwe Kleine-König Signed-off-by: Thierry Reding commit 2caf03843609af9dd4aa9c3b0f434f35016d4e15 Author: Anson Huang Date: Thu May 9 13:29:19 2019 +0000 dt-bindings: pwm: Add i.MX TPM PWM binding Add i.MX TPM(Low Power Timer/Pulse Width Modulation Module) PWM binding. Signed-off-by: Anson Huang Reviewed-by: Rob Herring Signed-off-by: Thierry Reding commit f2b31bb598248c04721cb8485e6091a9feb045ac Author: Roman Gushchin Date: Wed May 8 13:34:20 2019 -0700 cgroup: never call do_group_exit() with task->frozen bit set I've got two independent reports that cgroup_task_frozen() check in cgroup_exit() has been triggered by lkp libhugetlbfs-test and LTP ptrace01 tests. For example: [ 44.576072] WARNING: CPU: 1 PID: 3028 at kernel/cgroup/cgroup.c:5932 cgroup_exit+0x148/0x160 [ 44.577724] Modules linked in: crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel sr_mod cdrom bochs_drm sg ttm ata_generic pata_acpi ppdev drm_kms_helper snd_pcm syscopyarea aesni_intel snd_timer sysfillrect sysimgblt snd crypto_simd cryptd glue_helper soundcore fb_sys_fops joydev drm serio_raw pcspkr ata_piix libata i2c_piix4 floppy parport_pc parport ip_tables [ 44.583106] CPU: 1 PID: 3028 Comm: ptrace-write-hu Not tainted 5.1.0-rc3-00053-g9262503 #5 [ 44.584600] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014 [ 44.586116] RIP: 0010:cgroup_exit+0x148/0x160 [ 44.587135] Code: 0f 84 50 ff ff ff 48 8b 85 c8 0c 00 00 48 8b 78 70 e8 ec 2e 00 00 e9 3b ff ff ff f0 ff 43 60 0f 88 72 21 89 00 e9 48 ff ff ff <0f> 0b e9 1b ff ff ff e8 3c 73 f4 ff 66 90 66 2e 0f 1f 84 00 00 00 [ 44.590113] RSP: 0018:ffffb25702dcfd30 EFLAGS: 00010002 [ 44.591167] RAX: ffff96a7fee32410 RBX: ffff96a7ff1d6000 RCX: dead000000000200 [ 44.592446] RDX: ffff96a7ff1d6080 RSI: ffff96a7fec75290 RDI: ffff96a7fec75290 [ 44.593715] RBP: ffff96a7fec745c0 R08: ffff96a7fec74658 R09: 0000000000000000 [ 44.594985] R10: 0000000000000000 R11: 0000000000000001 R12: ffff96a7fec75101 [ 44.596266] R13: ffff96a7fec745c0 R14: ffff96a7ff3bde30 R15: ffff96a7fec75130 [ 44.597550] FS: 0000000000000000(0000) GS:ffff96a7dd700000(0000) knlGS:0000000000000000 [ 44.598950] CS: 0010 DS: 002b ES: 002b CR0: 0000000080050033 [ 44.600098] CR2: 00000000f7a00000 CR3: 000000000d20e000 CR4: 00000000000406e0 [ 44.601417] Call Trace: [ 44.602777] do_exit+0x337/0xc40 [ 44.603677] do_group_exit+0x3a/0xa0 [ 44.604610] get_signal+0x12e/0x8d0 [ 44.605533] ? __switch_to_asm+0x40/0x70 [ 44.606503] do_signal+0x36/0x650 [ 44.607409] ? __switch_to_asm+0x40/0x70 [ 44.608383] ? __schedule+0x267/0x860 [ 44.609329] exit_to_usermode_loop+0x89/0xf0 [ 44.610349] do_fast_syscall_32+0x251/0x2e3 [ 44.611357] entry_SYSENTER_compat+0x7f/0x91 [ 44.612376] ---[ end trace e4ca5cfc4b7f7964 ]--- The problem is caused by the ptrace_signal() call in the for loop in get_signal(). There is a cgroup_enter_frozen() call inside ptrace_signal(), so after exit from ptrace_signal() the task->frozen bit might be set. In this case do_group_exit() can be called with the task->frozen bit set and trigger the warning. This is only place where we can leave the loop with the task->frozen bit set and without setting JOBCTL_TRAP_FREEZE and TIF_SIGPENDING. To resolve this problem, let's move cgroup_leave_frozen(true) call to just after the fatal label. If the task is going to die, the frozen bit must be cleared no matter how we get into this point. Reported-by: kernel test robot Reported-by: Qian Cai Cc: Oleg Nesterov Cc: Tejun Heo Signed-off-by: Roman Gushchin Signed-off-by: Tejun Heo commit 1347c94f73e33a7d1edab6728a34bedd55b2d588 Author: Anson Huang Date: Mon Apr 1 05:24:02 2019 +0000 pwm: imx27: Use devm_platform_ioremap_resource() to simplify code Use the new helper devm_platform_ioremap_resource() which wraps the platform_get_resource() and devm_ioremap_resource() together, to simplify the code. Signed-off-by: Anson Huang Acked-by: Uwe Kleine-König Reviewed-by: Mukesh Ojha Signed-off-by: Thierry Reding commit f173747fffdf037c791405ab4f1ec0eb392fc48e Author: Martin Blumenstingl Date: Mon Apr 1 19:57:48 2019 +0200 pwm: meson: Use the spin-lock only to protect register modifications Holding the spin-lock for all of the code in meson_pwm_apply() can result in a "BUG: scheduling while atomic". This can happen because clk_get_rate() (which is called from meson_pwm_calc()) may sleep. Only hold the spin-lock when modifying registers to solve this. The reason why we need a spin-lock in the driver is because the REG_MISC_AB register is shared between the two channels provided by one PWM controller. The only functions where REG_MISC_AB is modified are meson_pwm_enable() and meson_pwm_disable() so the register reads/writes in there need to be protected by the spin-lock. The original code also used the spin-lock to protect the values in struct meson_pwm_channel. This could be necessary if two consumers can use the same PWM channel. However, PWM core doesn't allow this so we don't need to protect the values in struct meson_pwm_channel with a lock. Fixes: 211ed630753d2f ("pwm: Add support for Meson PWM Controller") Signed-off-by: Martin Blumenstingl Reviewed-by: Uwe Kleine-König Reviewed-by: Neil Armstrong Signed-off-by: Thierry Reding commit a279345807e1e0ae79567a52cfdd9d30c9174a3c Author: Bichao Zheng Date: Mon Apr 1 20:18:17 2019 +0200 pwm: meson: Don't disable PWM when setting duty repeatedly There is an abnormally low about 20ms,when setting duty repeatedly. Because setting the duty will disable PWM and then enable. Delete this operation now. Fixes: 211ed630753d2f ("pwm: Add support for Meson PWM Controller") Signed-off-by: Bichao Zheng [ Dropped code instead of hiding it behind a comment ] Signed-off-by: Martin Blumenstingl Reviewed-by: Neil Armstrong Signed-off-by: Thierry Reding commit 51496e4446875726d50a5617a6e0e0dabbc2e6da Author: Martin Blumenstingl Date: Mon Apr 1 20:18:16 2019 +0200 pwm: meson: Consider 128 a valid pre-divider The pre-divider allows configuring longer PWM periods compared to using the input clock directly. The pre-divider is 7 bit wide, meaning it's maximum value is 128 (the register value is off-by-one: 0x7f or 127). Change the loop to also allow for the maximum possible value to be considered valid. Fixes: 211ed630753d2f ("pwm: Add support for Meson PWM Controller") Signed-off-by: Martin Blumenstingl Acked-by: Uwe Kleine-König Reviewed-by: Neil Armstrong Signed-off-by: Thierry Reding commit e78c21d157f2f0278696f5903713133e83ac47c6 Author: Ming Lei Date: Thu May 9 18:03:14 2019 +0800 s390/dasd: fix build warning in dasd_eckd_build_cp_raw Commit 72deb455b5ec619f ("block: remove CONFIG_LBDAF") changes sector_t to u64 unconditionaly, so apply '%llu' for print sector_t variable. Fixes: 72deb455b5ec619f ("block: remove CONFIG_LBDAF") Cc: linux-s390@vger.kernel.org Reviewed-by: Christoph Hellwig Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit 65be755a54117fc02134c288e41e8d3d5e586c4e Author: Masahiro Yamada Date: Thu May 9 11:46:31 2019 +0900 kconfig: remove trailing whitespaces There are still some trailing whitespaces under scripts/kconfig/tests/, but they must be kept. Otherwise, "make testconfig" would break. Signed-off-by: Masahiro Yamada commit 34c6b7105e5a11174f856483cde8ad6e61b7236a Author: Mohan Kumar Date: Sat Apr 20 07:07:20 2019 +0300 PCI: Replace dev_printk(KERN_DEBUG) with dev_info(), etc Replace dev_printk(KERN_DEBUG) with dev_info(), etc to be more consistent with other logging and avoid checkpatch warnings. The KERN_DEBUG messages could be converted to dev_dbg(), but that depends on CONFIG_DYNAMIC_DEBUG and DEBUG, and we want most of these messages to *always* be in the dmesg log. Link: https://lore.kernel.org/lkml/1555733240-19875-1-git-send-email-mohankumar718@gmail.com Signed-off-by: Mohan Kumar [bhelgaas: commit log] Signed-off-by: Bjorn Helgaas commit 25da8dbaaf0679b3b22c783952a8392071cfa135 Author: Mohan Kumar Date: Sat Apr 20 07:03:46 2019 +0300 PCI: Replace printk(KERN_INFO) with pr_info(), etc Replace printk() with pr_*() to be more consistent with other logging and avoid checkpatch warnings. Link: https://lore.kernel.org/lkml/1555733026-19609-1-git-send-email-mohankumar718@gmail.com Link: https://lore.kernel.org/lkml/1555733130-19804-1-git-send-email-mohankumar718@gmail.com Signed-off-by: Mohan Kumar [bhelgaas: squash in similar changes from second patch in series] Signed-off-by: Bjorn Helgaas commit 7db4af43c97b68dc65394c799b86cdd0fffe5f8d Author: Bjorn Helgaas Date: Tue May 7 17:37:53 2019 -0500 PCI: Use dev_printk() when possible Use dev_printk() when possible. This makes messages more consistent with other device-related messages and, in some cases, adds useful information. Signed-off-by: Bjorn Helgaas commit 3213486f2e442831e324cc6201a2f9e924ecc235 Author: Mao Han Date: Mon Apr 15 17:17:30 2019 +0800 csky: Add support for perf unwind-libdw This patch add support for DWARF register mappings and libdw registers initialization, which is used by perf callchain analyzing, eg: perf record --call-graph=dwarf Here is elfutils csky backend patch set: https://sourceware.org/ml/elfutils-devel/2019-q2/msg00007.html Signed-off-by: Mao Han Signed-off-by: Guo Ren Cc: Peter Zijlstra Cc: Ingo Molnar Cc: Arnaldo Carvalho de Melo Cc: Alexander Shishkin Cc: Jiri Olsa Cc: Namhyung Kim Cc: Arnd Bergmann commit 4d8e7055a4058ee191296699803c5090e14f0dff Author: Amir Goldstein Date: Sun May 5 12:15:49 2019 +0300 fsnotify: fix unlink performance regression __fsnotify_parent() has an optimization in place to avoid unneeded take_dentry_name_snapshot(). When fsnotify_nameremove() was changed not to call __fsnotify_parent(), we left out the optimization. Kernel test robot reported a 5% performance regression in concurrent unlink() workload. Reported-by: kernel test robot Link: https://lore.kernel.org/lkml/20190505062153.GG29809@shao2-debian/ Link: https://lore.kernel.org/linux-fsdevel/20190104090357.GD22409@quack2.suse.cz/ Fixes: 5f02a8776384 ("fsnotify: annotate directory entry modification events") CC: stable@vger.kernel.org Signed-off-by: Amir Goldstein Signed-off-by: Jan Kara commit 72bd2323ec87722c115a5906bc6a1b31d11e8f54 Author: Filipe Manana Date: Mon Apr 29 13:08:14 2019 +0100 Btrfs: do not abort transaction at btrfs_update_root() after failure to COW path Currently when we fail to COW a path at btrfs_update_root() we end up always aborting the transaction. However all the current callers of btrfs_update_root() are able to deal with errors returned from it, many do end up aborting the transaction themselves (directly or not, such as the transaction commit path), other BUG_ON() or just gracefully cancel whatever they were doing. When syncing the fsync log, we call btrfs_update_root() through tree-log.c:update_log_root(), and if it returns an -ENOSPC error, the log sync code does not abort the transaction, instead it gracefully handles the error and returns -EAGAIN to the fsync handler, so that it falls back to a transaction commit. Any other error different from -ENOSPC, makes the log sync code abort the transaction. So remove the transaction abort from btrfs_update_log() when we fail to COW a path to update the root item, so that if an -ENOSPC failure happens we avoid aborting the current transaction and have a chance of the fsync succeeding after falling back to a transaction commit. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203413 Fixes: 79787eaab46121 ("btrfs: replace many BUG_ONs with proper error handling") Cc: stable@vger.kernel.org # 4.4+ Signed-off-by: Filipe Manana Reviewed-by: Anand Jain Signed-off-by: David Sterba commit d7400ee1b476f201f8fb4264887d18bdb23ee352 Author: Josef Bacik Date: Fri Apr 26 16:25:50 2019 +0200 btrfs: use the existing reserved items for our first prop for inheritance We're now reserving an extra items worth of space for property inheritance. We only have one property at the moment so this covers us, but if we add more in the future this will allow us to not get bitten by the extra space reservation. If we do add more properties in the future we should re-visit how we calculate the space reservation needs by the callers. Reviewed-by: Filipe Manana Signed-off-by: Josef Bacik [ refreshed on top of prop/xattr cleanups ] Signed-off-by: David Sterba commit fdc6bae940ee9eb869e493990540098b8c0fd6ab Author: Miroslav Lichvar Date: Wed Apr 17 10:48:33 2019 +0200 ntp: Allow TAI-UTC offset to be set to zero The ADJ_TAI adjtimex mode sets the TAI-UTC offset of the system clock. It is typically set by NTP/PTP implementations and it is automatically updated by the kernel on leap seconds. The initial value is zero (which applications may interpret as unknown), but this value cannot be set by adjtimex. This limitation seems to go back to the original "nanokernel" implementation by David Mills. Change the ADJ_TAI check to accept zero as a valid TAI-UTC offset in order to allow setting it back to the initial value. Fixes: 153b5d054ac2 ("ntp: support for TAI") Suggested-by: Ondrej Mosnacek Signed-off-by: Miroslav Lichvar Signed-off-by: Thomas Gleixner Cc: John Stultz Cc: Richard Cochran Cc: Prarit Bhargava Link: https://lkml.kernel.org/r/20190417084833.7401-1-mlichvar@redhat.com commit 5a28fc94c9143db766d1ba5480cae82d856ad080 Author: Dave Hansen Date: Fri Apr 19 12:47:47 2019 -0700 x86/mpx, mm/core: Fix recursive munmap() corruption This is a bit of a mess, to put it mildly. But, it's a bug that only seems to have showed up in 4.20 but wasn't noticed until now, because nobody uses MPX. MPX has the arch_unmap() hook inside of munmap() because MPX uses bounds tables that protect other areas of memory. When memory is unmapped, there is also a need to unmap the MPX bounds tables. Barring this, unused bounds tables can eat 80% of the address space. But, the recursive do_munmap() that gets called vi arch_unmap() wreaks havoc with __do_munmap()'s state. It can result in freeing populated page tables, accessing bogus VMA state, double-freed VMAs and more. See the "long story" further below for the gory details. To fix this, call arch_unmap() before __do_unmap() has a chance to do anything meaningful. Also, remove the 'vma' argument and force the MPX code to do its own, independent VMA lookup. == UML / unicore32 impact == Remove unused 'vma' argument to arch_unmap(). No functional change. I compile tested this on UML but not unicore32. == powerpc impact == powerpc uses arch_unmap() well to watch for munmap() on the VDSO and zeroes out 'current->mm->context.vdso_base'. Moving arch_unmap() makes this happen earlier in __do_munmap(). But, 'vdso_base' seems to only be used in perf and in the signal delivery that happens near the return to userspace. I can not find any likely impact to powerpc, other than the zeroing happening a little earlier. powerpc does not use the 'vma' argument and is unaffected by its removal. I compile-tested a 64-bit powerpc defconfig. == x86 impact == For the common success case this is functionally identical to what was there before. For the munmap() failure case, it's possible that some MPX tables will be zapped for memory that continues to be in use. But, this is an extraordinarily unlikely scenario and the harm would be that MPX provides no protection since the bounds table got reset (zeroed). I can't imagine anyone doing this: ptr = mmap(); // use ptr ret = munmap(ptr); if (ret) // oh, there was an error, I'll // keep using ptr. Because if you're doing munmap(), you are *done* with the memory. There's probably no good data in there _anyway_. This passes the original reproducer from Richard Biener as well as the existing mpx selftests/. The long story: munmap() has a couple of pieces: 1. Find the affected VMA(s) 2. Split the start/end one(s) if neceesary 3. Pull the VMAs out of the rbtree 4. Actually zap the memory via unmap_region(), including freeing page tables (or queueing them to be freed). 5. Fix up some of the accounting (like fput()) and actually free the VMA itself. This specific ordering was actually introduced by: dd2283f2605e ("mm: mmap: zap pages with read mmap_sem in munmap") during the 4.20 merge window. The previous __do_munmap() code was actually safe because the only thing after arch_unmap() was remove_vma_list(). arch_unmap() could not see 'vma' in the rbtree because it was detached, so it is not even capable of doing operations unsafe for remove_vma_list()'s use of 'vma'. Richard Biener reported a test that shows this in dmesg: [1216548.787498] BUG: Bad rss-counter state mm:0000000017ce560b idx:1 val:551 [1216548.787500] BUG: non-zero pgtables_bytes on freeing mm: 24576 What triggered this was the recursive do_munmap() called via arch_unmap(). It was freeing page tables that has not been properly zapped. But, the problem was bigger than this. For one, arch_unmap() can free VMAs. But, the calling __do_munmap() has variables that *point* to VMAs and obviously can't handle them just getting freed while the pointer is still in use. I tried a couple of things here. First, I tried to fix the page table freeing problem in isolation, but I then found the VMA issue. I also tried having the MPX code return a flag if it modified the rbtree which would force __do_munmap() to re-walk to restart. That spiralled out of control in complexity pretty fast. Just moving arch_unmap() and accepting that the bonkers failure case might eat some bounds tables seems like the simplest viable fix. This was also reported in the following kernel bugzilla entry: https://bugzilla.kernel.org/show_bug.cgi?id=203123 There are some reports that this commit triggered this bug: dd2283f2605 ("mm: mmap: zap pages with read mmap_sem in munmap") While that commit certainly made the issues easier to hit, I believe the fundamental issue has been with us as long as MPX itself, thus the Fixes: tag below is for one of the original MPX commits. [ mingo: Minor edits to the changelog and the patch. ] Reported-by: Richard Biener Reported-by: H.J. Lu Signed-off-by: Dave Hansen Reviewed-by Thomas Gleixner Reviewed-by: Yang Shi Acked-by: Michael Ellerman Cc: Andrew Morton Cc: Andy Lutomirski Cc: Anton Ivanov Cc: Benjamin Herrenschmidt Cc: Borislav Petkov Cc: Guan Xuetao Cc: H. Peter Anvin Cc: Jeff Dike Cc: Linus Torvalds Cc: Michal Hocko Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Richard Weinberger Cc: Rik van Riel Cc: Vlastimil Babka Cc: linux-arch@vger.kernel.org Cc: linux-mm@kvack.org Cc: linux-um@lists.infradead.org Cc: linuxppc-dev@lists.ozlabs.org Cc: stable@vger.kernel.org Fixes: dd2283f2605e ("mm: mmap: zap pages with read mmap_sem in munmap") Link: http://lkml.kernel.org/r/20190419194747.5E1AD6DC@viggo.jf.intel.com Signed-off-by: Ingo Molnar commit c6c9c0596c21d30169c7a37b242685dc95fedb07 Author: Pablo Neira Ayuso Date: Tue May 7 18:21:26 2019 +0200 netfilter: nf_tables: remove NFT_CT_TIMEOUT Never used anywhere in the code. Fixes: 7e0b2b57f01d ("netfilter: nft_ct: add ct timeout support") Reported-by: Stéphane Veyret Signed-off-by: Pablo Neira Ayuso commit 680f6af5337c98d116e4f127cea7845339dba8da Author: Florian Westphal Date: Sun May 5 18:47:33 2019 +0200 netfilter: ebtables: CONFIG_COMPAT: reject trailing data after last rule If userspace provides a rule blob with trailing data after last target, we trigger a splat, then convert ruleset to 64bit format (with trailing data), then pass that to do_replace_finish() which then returns -EINVAL. Erroring out right away avoids the splat plus unneeded translation and error unwind. Fixes: 81e675c227ec ("netfilter: ebtables: add CONFIG_COMPAT support") Reported-by: Tetsuo Handa Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit 05883eee857eab4693e7d13ebab06716475c5754 Author: Al Viro Date: Thu May 9 02:32:28 2019 -0400 do_move_mount(): fix an unsafe use of is_anon_ns() What triggers it is a race between mount --move and umount -l of the source; we should reject it (the source is parentless *and* not the root of anon namespace at that), but the check for namespace being an anon one is broken in that case - is_anon_ns() needs ns to be non-NULL. Better fixed here than in is_anon_ns(), since the rest of the callers is guaranteed to get a non-NULL argument... Reported-by: syzbot+494c7ddf66acac0ad747@syzkaller.appspotmail.com Signed-off-by: Al Viro commit 8fbbfd966efa67ef9aec37cb4ff412f9f26e1e84 Author: Marek Behun Date: Sun Mar 31 05:15:33 2019 +0200 mailbox: Add support for Armada 37xx rWTM mailbox This adds support for the mailbox via which the kernel can communicate with the firmware running on the secure processor of the Armada 37xx SOC. The rWTM secure processor has access to internal eFuses and cryptographic circuits, such as the Entropy Bit Generator to generate true random numbers. Signed-off-by: Marek Behun Signed-off-by: Jassi Brar commit 004c35cd8e0c81e0b4a34f0ad3ab0c4937ccaaea Author: Marek Behun Date: Sun Mar 31 05:15:32 2019 +0200 dt-bindings: mailbox: Document armada-3700-rwtm-mailbox binding This adds device tree binding documentation for the rWTM BIU mailbox driver on the Armada 37xx SOC (EspressoBin, Turris Mox). Signed-off-by: Marek Behun Reviewed-by: Rob Herring Signed-off-by: Jassi Brar commit 68a1c8485cf83734d4da9d81cd3b5d2ae7c0339b Author: Fabien Dessenne Date: Wed Apr 24 17:51:05 2019 +0200 mailbox: stm32-ipcc: check invalid irq On failure of_irq_get() returns a negative value or zero, which is not handled as an error in the existing implementation. Instead of using this API, use platform_get_irq() that returns exclusively a negative value on failure. Also, do not output an error log in case of defer probe error. Signed-off-by: Fabien Dessenne Signed-off-by: Jassi Brar commit 0c40e631cd7f1dd762869bc91550ab20381d87bf Author: Anson Huang Date: Mon Apr 1 05:15:24 2019 +0000 mailbox: imx: use devm_platform_ioremap_resource() to simplify code Use the new helper devm_platform_ioremap_resource() which wraps the platform_get_resource() and devm_ioremap_resource() together, to simplify the code. Signed-off-by: Anson Huang Reviewed-by: Mukesh Ojha Signed-off-by: Jassi Brar commit cbc22b062106993980df43a7ffa93351d3218844 Author: Herbert Xu Date: Thu May 9 13:20:48 2019 +0800 Revert "crypto: caam/jr - Remove extra memory barrier during job ring dequeue" This reverts commit bbfcac5ff5f26aafa51935a62eb86b6eacfe8a49. It caused a crash regression on powerpc: https://lore.kernel.org/linux-crypto/87pnp2aflz.fsf@concordia.ellerman.id.au/ Signed-off-by: Herbert Xu commit 8c65d35435e8cbfdf953cafe5ebe3648ee9276a2 Author: Iuliana Prodan Date: Tue May 7 16:37:03 2019 +0300 crypto: caam - fix caam_dump_sg that iterates through scatterlist Fix caam_dump_sg by correctly determining the next scatterlist entry in the list. Fixes: 5ecf8ef9103c ("crypto: caam - fix sg dump") Signed-off-by: Iuliana Prodan Reviewed-by: Horia Geantă Signed-off-by: Herbert Xu commit 24586b5feaf17ecf85ae6259fe3ea7815dee432d Author: Herbert Xu Date: Mon May 6 14:39:44 2019 +0800 crypto: caam - fix DKP detection logic The detection for DKP (Derived Key Protocol) relied on the value of the setkey function. This was broken by the recent change which added des3_aead_setkey. This patch fixes this by introducing a new flag for DKP and setting that where needed. Fixes: 1b52c40919e6 ("crypto: caam - Forbid 2-key 3DES in FIPS mode") Reported-by: Horia Geantă Signed-off-by: Herbert Xu Tested-by: Horia Geantă Signed-off-by: Herbert Xu commit 0816ecf48f3db608044bdb3f5b72c650a7ebec67 Author: Atul Gupta Date: Thu May 2 03:48:13 2019 -0700 MAINTAINERS: Maintainer for Chelsio crypto driver Modified the maintainer name Signed-off-by: Atul Gupta Signed-off-by: Herbert Xu commit 0a4491d3febe0b8c328870d1909fc91756970237 Author: Atul Gupta Date: Thu May 2 03:47:57 2019 -0700 crypto: chelsio - count incomplete block in IV The partial block should count as one and appropriately appended to IV. eg 499B for AES CTR should count 32 block than 31 and correct count value is updated in iv out. Signed-off-by: Atul Gupta Signed-off-by: Herbert Xu commit 33ddc108c5a1cfba72a08a92f35a0ba5bbd1cfd8 Author: Atul Gupta Date: Thu May 2 03:47:27 2019 -0700 crypto: chelsio - Fix softlockup with heavy I/O removed un-necessary lock_chcr_dev to protect device state DETACH. lock is not required to protect I/O count Signed-off-by: Atul Gupta Signed-off-by: Herbert Xu commit b4f91664307d5bf4f0d93da12a6146f9cf3559fb Author: Atul Gupta Date: Thu May 2 03:46:55 2019 -0700 crypto: chelsio - Fix NULL pointer dereference Do not request FW to generate cidx update if there is less space in tx queue to post new request. SGE DBP 1 pidx increment too large BUG: unable to handle kernel NULL pointer dereference at 0000000000000124 SGE error for queue 101 Signed-off-by: Atul Gupta Signed-off-by: Herbert Xu commit ed97c988bdc61ab6fb5d1f5f02a709844557b68f Merge: 7f84ff68be05 7f6647ced298 Author: Takashi Iwai Date: Thu May 9 07:13:40 2019 +0200 Merge tag 'asoc-v5.2-5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Fixes for v5.2 A bunch of driver specific fixes that came in since the initial pull request for v5.2, mainly warning fixes for the newly added Sound Open Firmware code which people appeared to only start looking at after I'd sent the pull request. commit a2d635decbfa9c1e4ae15cb05b68b2559f7f827c Merge: 89c3b37af87e eb85d03e01c3 Author: Linus Torvalds Date: Wed May 8 21:35:19 2019 -0700 Merge tag 'drm-next-2019-05-09' of git://anongit.freedesktop.org/drm/drm Pull drm updates from Dave Airlie: "This has two exciting community drivers for ARM Mali accelerators. Since ARM has never been open source friendly on the GPU side of the house, the community has had to create open source drivers for the Mali GPUs. Lima covers the older t4xx and panfrost the newer 6xx/7xx series. Well done to all involved and hopefully this will help ARM head in the right direction. There is also now the ability if you don't have any of the legacy drivers enabled (pre-KMS) to remove all the pre-KMS support code from the core drm, this saves 10% or so in codesize on my machine. i915 also enable Icelake/Elkhart Lake Gen11 GPUs by default, vboxvideo moves out of staging. There are also some rcar-du patches which crossover with media tree but all should be acked by Mauro. Summary: uapi changes: - Colorspace connector property - fourcc - new YUV formts - timeline sync objects initially merged - expose FB_DAMAGE_CLIPS to atomic userspace new drivers: - vboxvideo: moved out of staging - aspeed: ASPEED SoC BMC chip display support - lima: ARM Mali4xx GPU acceleration driver support - panfrost: ARM Mali6xx/7xx Midgard/Bitfrost acceleration driver support core: - component helper docs - unplugging fixes - devm device init - MIPI/DSI rate control - shmem backed gem objects - connector, display_info, edid_quirks cleanups - dma_buf fence chain support - 64-bit dma-fence seqno comparison fixes - move initial fb config code to core - gem fence array helpers for Lima - ability to remove legacy support code if no drivers requires it (removes 10% of drm.ko size) - lease fixes ttm: - unified DRM_FILE_PAGE_OFFSET handling - Account for kernel allocations in kernel zone only panel: - OSD070T1718-19TS panel support - panel-tpo-td028ttec1 backlight support - Ronbo RB070D30 MIPI/DSI - Feiyang FY07024DI26A30-D MIPI-DSI panel - Rocktech jh057n00900 MIPI-DSI panel i915: - Comet Lake (Gen9) PCI IDs - Updated Icelake PCI IDs - Elkhartlake (Gen11) support - DP MST property addtions - plane and watermark fixes - Icelake port sync and VEBOX disable fixes - struct_mutex usage reduction - Icelake gamma fix - GuC reset fixes - make mmap more asynchronous - sound display power well race fixes - DDI/MIPI-DSI clocks for Icelake - Icelake RPS frequency changing support - Icelake workarounds amdgpu: - Use HMM for userptr - vega20 experimental smu11 support - RAS support for vega20 - BACO support for vega12 + fixes for vega20 - reworked IH interrupt handling - amdkfd RAS support - Freesync improvements - initial timeline sync object support - DC Z ordering fixes - NV12 planes support - colorspace properties for planes= - eDP opts if eDP already initialized nouveau: - misc fixes etnaviv: - misc fixes msm: - GPU zap shader support expansion - robustness ABI addition exynos: - Logging cleanups tegra: - Shared reset fix - CPU cache maintenance fix cirrus: - driver rewritten using simple helpers meson: - G12A support vmwgfx: - Resource dirtying management improvements - Userspace logging improvements virtio: - PRIME fixes rockchip: - rk3066 hdmi support sun4i: - DSI burst mode support vc4: - load tracker to detect underflow v3d: - v3d v4.2 support malidp: - initial Mali D71 support in komeda driver tfp410: - omap related improvement omapdrm: - drm bridge/panel support - drop some omap specific panels rcar-du: - Display writeback support" * tag 'drm-next-2019-05-09' of git://anongit.freedesktop.org/drm/drm: (1507 commits) drm/msm/a6xx: No zap shader is not an error drm/cma-helper: Fix drm_gem_cma_free_object() drm: Fix timestamp docs for variable refresh properties. drm/komeda: Mark the local functions as static drm/komeda: Fixed warning: Function parameter or member not described drm/komeda: Expose bus_width to Komeda-CORE drm/komeda: Add sysfs attribute: core_id and config_id drm: add non-desktop quirk for Valve HMDs drm/panfrost: Show stored feature registers drm/panfrost: Don't scream about deferred probe drm/panfrost: Disable PM on probe failure drm/panfrost: Set DMA masks earlier drm/panfrost: Add sanity checks to submit IOCTL drm/etnaviv: initialize idle mask before querying the HW db drm: introduce a capability flag for syncobj timeline support drm: report consistent errors when checking syncobj capibility drm/nouveau/nouveau: forward error generated while resuming objects tree drm/nouveau/fb/ramgk104: fix spelling mistake "sucessfully" -> "successfully" drm/nouveau/i2c: Disable i2c bus access after ->fini() drm/nouveau: Remove duplicate ACPI_VIDEO_NOTIFY_PROBE definition ... commit 8150a153c013aa2dd1ffae43370b89ac1347a7fb Author: Michael Ellerman Date: Wed May 8 13:06:42 2019 +1000 powerpc/64s: Use early_mmu_has_feature() in set_kuap() When implementing the KUAP support on Radix we fixed one case where mmu_has_feature() was being called too early in boot via __put_user_size(). However since then some new code in linux-next has created a new path via which we can end up calling mmu_has_feature() too early. On P9 this leads to crashes early in boot if we have both PPC_KUAP and CONFIG_JUMP_LABEL_FEATURE_CHECK_DEBUG enabled. Our early boot code calls printk() which calls probe_kernel_read(), that does a __copy_from_user_inatomic() which calls into set_kuap() and that uses mmu_has_feature(). At that point in boot we haven't patched MMU features yet so the debug code in mmu_has_feature() complains, and calls printk(). At that point we recurse, eg: ... dump_stack+0xdc probe_kernel_read+0x1a4 check_pointer+0x58 ... printk+0x40 dump_stack_print_info+0xbc dump_stack+0x8 probe_kernel_read+0x1a4 probe_kernel_read+0x19c check_pointer+0x58 ... printk+0x40 cpufeatures_process_feature+0xc8 scan_cpufeatures_subnodes+0x380 of_scan_flat_dt_subnodes+0xb4 dt_cpu_ftrs_scan_callback+0x158 of_scan_flat_dt+0xf0 dt_cpu_ftrs_scan+0x3c early_init_devtree+0x360 early_setup+0x9c And so on for infinity, symptom is a dead system. Even more fun is what happens when using the hash MMU (ie. p8 or p9 with Radix disabled), and when we don't have CONFIG_JUMP_LABEL_FEATURE_CHECK_DEBUG enabled. With the debug disabled we don't check if static keys have been initialised, we just rely on the jump label. But the jump label defaults to true so we just whack the AMR even though Radix is not enabled. Clearing the AMR is fine, but after we've done the user copy we write (0b11 << 62) into AMR. When using hash that makes all pages with key zero no longer readable or writable. All kernel pages implicitly have key zero, and so all of a sudden the kernel can't read or write any of its memory. Again dead system. In the medium term we have several options for fixing this. probe_kernel_read() doesn't need to touch AMR at all, it's not doing a user access after all, but it uses __copy_from_user_inatomic() just because it's easy, we could fix that. It would also be safe to default to not writing to the AMR during early boot, until we've detected features. But it's not clear that flipping all the MMU features to static_key_false won't introduce other bugs. But for now just switch to early_mmu_has_feature() in set_kuap(), that avoids all the problems with jump labels. It adds the overhead of a global lookup and test, but that's probably trivial compared to the writes to the AMR anyway. Fixes: 890274c2dc4c ("powerpc/64s: Implement KUAP for Radix MMU") Signed-off-by: Michael Ellerman Reviewed-by: Russell Currey commit c9c8ed50d94c613fc3f4917c51e9c75d493a312e Author: Chao Yu Date: Sun May 5 11:40:46 2019 +0800 f2fs: fix to avoid potential race on sbi->unusable_block_count access/update Use sbi.stat_lock to protect sbi->unusable_block_count accesss/udpate, in order to avoid potential race on it. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit d764834378a9870ca56e9b2977ea46e9911ec358 Author: Chao Yu Date: Mon Apr 15 15:22:19 2019 +0800 f2fs: add tracepoint for f2fs_filemap_fault() This patch adds tracepoint for f2fs_filemap_fault(). Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit 93770ab7a6e963147a5dbca25278b69ba6c8f8c5 Author: Chao Yu Date: Mon Apr 15 15:26:32 2019 +0800 f2fs: introduce DATA_GENERIC_ENHANCE Previously, f2fs_is_valid_blkaddr(, blkaddr, DATA_GENERIC) will check whether @blkaddr locates in main area or not. That check is weak, since the block address in range of main area can point to the address which is not valid in segment info table, and we can not detect such condition, we may suffer worse corruption as system continues running. So this patch introduce DATA_GENERIC_ENHANCE to enhance the sanity check which trigger SIT bitmap check rather than only range check. This patch did below changes as wel: - set SBI_NEED_FSCK in f2fs_is_valid_blkaddr(). - get rid of is_valid_data_blkaddr() to avoid panic if blkaddr is invalid. - introduce verify_fio_blkaddr() to wrap fio {new,old}_blkaddr validation check. - spread blkaddr check in: * f2fs_get_node_info() * __read_out_blkaddrs() * f2fs_submit_page_read() * ra_data_block() * do_recover_data() This patch can fix bug reported from bugzilla below: https://bugzilla.kernel.org/show_bug.cgi?id=203215 https://bugzilla.kernel.org/show_bug.cgi?id=203223 https://bugzilla.kernel.org/show_bug.cgi?id=203231 https://bugzilla.kernel.org/show_bug.cgi?id=203235 https://bugzilla.kernel.org/show_bug.cgi?id=203241 = Update by Jaegeuk Kim = DATA_GENERIC_ENHANCE enhanced to validate block addresses on read/write paths. But, xfstest/generic/446 compalins some generated kernel messages saying invalid bitmap was detected when reading a block. The reaons is, when we get the block addresses from extent_cache, there is no lock to synchronize it from truncating the blocks in parallel. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit 896285ad02ea1e8a7cedbceb5e5656335b7ae563 Author: Chao Yu Date: Fri Apr 26 17:57:54 2019 +0800 f2fs: fix to handle error in f2fs_disable_checkpoint() In f2fs_disable_checkpoint(), it needs to detect and propagate error number returned from f2fs_write_checkpoint(). Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit d5d5f0c0c9160f00dd0729ebd3c46e31acc26672 Author: Chengguang Xu Date: Tue Apr 23 13:08:35 2019 +0800 f2fs: remove redundant check in f2fs_file_write_iter() We have already checked flag IOCB_DIRECT in the sanity check of flag IOCB_NOWAIT, so don't have to check it again here. Signed-off-by: Chengguang Xu Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim commit f5a131bb236d0283436842f0b07d23d401b2811d Author: Chao Yu Date: Mon Apr 22 20:22:38 2019 +0800 f2fs: fix to be aware of readonly device in write_checkpoint() As Park Ju Hyung reported: Probably unrelated but a similar issue: Warning appears upon unmounting a corrupted R/O f2fs loop image. Should be a trivial issue to fix as well :) [ 2373.758424] ------------[ cut here ]------------ [ 2373.758428] generic_make_request: Trying to write to read-only block-device loop1 (partno 0) [ 2373.758455] WARNING: CPU: 1 PID: 13950 at block/blk-core.c:2174 generic_make_request_checks+0x590/0x630 [ 2373.758556] CPU: 1 PID: 13950 Comm: umount Tainted: G O 4.19.35-zen+ #1 [ 2373.758558] Hardware name: System manufacturer System Product Name/ROG MAXIMUS X HERO (WI-FI AC), BIOS 1704 09/14/2018 [ 2373.758564] RIP: 0010:generic_make_request_checks+0x590/0x630 [ 2373.758567] Code: 5c 03 00 00 48 8d 74 24 08 48 89 df c6 05 b5 cd 36 01 01 e8 c2 90 01 00 48 89 c6 44 89 ea 48 c7 c7 98 64 59 82 e8 d5 9b a7 ff <0f> 0b 48 8b 7b 08 e9 f2 fa ff ff 41 8b 86 98 02 00 00 49 8b 16 89 [ 2373.758570] RSP: 0018:ffff8882bdb43950 EFLAGS: 00010282 [ 2373.758573] RAX: 0000000000000050 RBX: ffff8887244c6700 RCX: 0000000000000006 [ 2373.758575] RDX: 0000000000000007 RSI: 0000000000000086 RDI: ffff88884ec56340 [ 2373.758577] RBP: ffff888849c426c0 R08: 0000000000000004 R09: 00000000000003ba [ 2373.758579] R10: 0000000000000001 R11: 0000000000000029 R12: 0000000000001000 [ 2373.758581] R13: 0000000000000000 R14: ffff888844a2e800 R15: ffff8882bdb43ac0 [ 2373.758584] FS: 00007fc0d114f8c0(0000) GS:ffff88884ec40000(0000) knlGS:0000000000000000 [ 2373.758586] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 2373.758588] CR2: 00007fc0d1ad12c0 CR3: 00000002bdb82003 CR4: 00000000003606e0 [ 2373.758590] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 2373.758592] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 2373.758593] Call Trace: [ 2373.758602] ? generic_make_request+0x46/0x3d0 [ 2373.758608] ? wait_woken+0x80/0x80 [ 2373.758612] ? mempool_alloc+0xb7/0x1a0 [ 2373.758618] ? submit_bio+0x30/0x110 [ 2373.758622] ? bvec_alloc+0x7c/0xd0 [ 2373.758628] ? __submit_merged_bio+0x68/0x390 [ 2373.758633] ? f2fs_submit_page_write+0x1bb/0x7f0 [ 2373.758638] ? f2fs_do_write_meta_page+0x7f/0x160 [ 2373.758642] ? __f2fs_write_meta_page+0x70/0x140 [ 2373.758647] ? f2fs_sync_meta_pages+0x140/0x250 [ 2373.758653] ? f2fs_write_checkpoint+0x5c5/0x17b0 [ 2373.758657] ? f2fs_sync_fs+0x9c/0x110 [ 2373.758664] ? sync_filesystem+0x66/0x80 [ 2373.758667] ? generic_shutdown_super+0x1d/0x100 [ 2373.758670] ? kill_block_super+0x1c/0x40 [ 2373.758674] ? kill_f2fs_super+0x64/0xb0 [ 2373.758678] ? deactivate_locked_super+0x2d/0xb0 [ 2373.758682] ? cleanup_mnt+0x65/0xa0 [ 2373.758688] ? task_work_run+0x7f/0xa0 [ 2373.758693] ? exit_to_usermode_loop+0x9c/0xa0 [ 2373.758698] ? do_syscall_64+0xc7/0xf0 [ 2373.758703] ? entry_SYSCALL_64_after_hwframe+0x44/0xa9 [ 2373.758706] ---[ end trace 5d3639907c56271b ]--- [ 2373.758780] print_req_error: I/O error, dev loop1, sector 143048 [ 2373.758800] print_req_error: I/O error, dev loop1, sector 152200 [ 2373.758808] print_req_error: I/O error, dev loop1, sector 8192 [ 2373.758819] print_req_error: I/O error, dev loop1, sector 12272 This patch adds to detect readonly device in write_checkpoint() to avoid trigger write IOs on it. Reported-by: Park Ju Hyung Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit b61af314c9b8c81016db373fa3bfc1d901feebfd Author: Chao Yu Date: Mon Apr 22 20:22:37 2019 +0800 f2fs: fix to skip recovery on readonly device As Park Ju Hyung reported in mailing list: https://sourceforge.net/p/linux-f2fs/mailman/message/36639787/ generic_make_request: Trying to write to read-only block-device loop0 (partno 0) WARNING: CPU: 0 PID: 23437 at block/blk-core.c:2174 generic_make_request_checks+0x594/0x630 generic_make_request+0x46/0x3d0 submit_bio+0x30/0x110 __submit_merged_bio+0x68/0x390 f2fs_submit_page_write+0x1bb/0x7f0 f2fs_do_write_meta_page+0x7f/0x160 __f2fs_write_meta_page+0x70/0x140 f2fs_sync_meta_pages+0x140/0x250 f2fs_write_checkpoint+0x5c5/0x17b0 f2fs_sync_fs+0x9c/0x110 sync_filesystem+0x66/0x80 f2fs_recover_fsync_data+0x790/0xa30 f2fs_fill_super+0xe4e/0x1980 mount_bdev+0x518/0x610 mount_fs+0x34/0x13f vfs_kern_mount.part.11+0x4f/0x120 do_mount+0x2d1/0xe40 __x64_sys_mount+0xbf/0xe0 do_syscall_64+0x4a/0xf0 entry_SYSCALL_64_after_hwframe+0x44/0xa9 print_req_error: I/O error, dev loop0, sector 4096 If block device is readonly, we should never trigger write IO from filesystem layer, but previously, orphan and journal recovery didn't consider such condition, result in triggering above warning, fix it. Reported-by: Park Ju Hyung Tested-by: Park Ju Hyung Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit f824deb54b683165b953371a0529446c723ef6d6 Author: Chao Yu Date: Mon Apr 22 20:22:36 2019 +0800 f2fs: fix to consider multiple device for readonly check This patch introduce f2fs_hw_is_readonly() to check whether lower device is readonly or not, it adapts multiple device scenario. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit b471eb99e64495a1f0e430da3f96b88f600d3bb5 Author: Chao Yu Date: Mon Apr 22 17:33:53 2019 +0800 f2fs: relocate chksum_offset for large_nat_bitmap feature For large_nat_bitmap feature, there is a design flaw: Previous: struct f2fs_checkpoint layout: +--------------------------+ 0x0000 | checkpoint_ver | | ...... | | checksum_offset |------+ | ...... | | | sit_nat_version_bitmap[] |<-----|-------+ | ...... | | | | checksum_value |<-----+ | +--------------------------+ 0x1000 | | | nat_bitmap + sit_bitmap | payload blocks | | | | | +--------------------------|<-------------+ Obviously, if nat_bitmap size + sit_bitmap size is larger than MAX_BITMAP_SIZE_IN_CKPT, nat_bitmap or sit_bitmap may overlap checkpoint checksum's position, once checkpoint() is triggered from kernel, nat or sit bitmap will be damaged by checksum field. In order to fix this, let's relocate checksum_value's position to the head of sit_nat_version_bitmap as below, then nat/sit bitmap and chksum value update will become safe. After: struct f2fs_checkpoint layout: +--------------------------+ 0x0000 | checkpoint_ver | | ...... | | checksum_offset |------+ | ...... | | | sit_nat_version_bitmap[] |<-----+ | ...... |<-------------+ | | | +--------------------------+ 0x1000 | | | nat_bitmap + sit_bitmap | payload blocks | | | | | +--------------------------|<-------------+ Related report and discussion: https://sourceforge.net/p/linux-f2fs/mailman/message/36642346/ Reported-by: Park Ju Hyung Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit d7eb8f1cdfaefcd41b716ef0ed1745b43c6c4fc9 Author: Chao Yu Date: Mon Apr 22 17:33:52 2019 +0800 f2fs: allow unfixed f2fs_checkpoint.checksum_offset Previously, f2fs_checkpoint.checksum_offset points fixed position of f2fs_checkpoint structure: "#define CP_CHKSUM_OFFSET 4092" It is unnecessary, and it breaks the consecutiveness of nat and sit bitmap stored across checkpoint park block and payload blocks. This patch allows f2fs to handle unfixed .checksum_offset. In addition, for the case checksum value is stored in the middle of checkpoint park, calculating checksum value with superposition method like we did for inode_checksum. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit 3a912b773238ae8ba0c03df86361c8b2b9265b3b Author: Youngjun Yoo Date: Sat Apr 20 22:50:40 2019 +0900 f2fs: Replace spaces with tab Modify coding style ERROR: code indent should use tabs where possible Signed-off-by: Youngjun Yoo Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim commit c456362b91a681f1e9a1399cebb4586abc819541 Author: Youngjun Yoo Date: Sat Apr 20 22:51:36 2019 +0900 f2fs: insert space before the open parenthesis '(' Modify coding style ERROR: space required before the open parenthesis '(' Signed-off-by: Youngjun Yoo Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim commit d02a6e6174a772fa90c5efa51a55a04e6d8c0006 Author: Chao Yu Date: Mon Mar 25 21:08:19 2019 +0800 f2fs: allow address pointer number of dnode aligning to specified size This patch expands scalability of dnode layout, it allows address pointer number of dnode aligning to specified size (now, the size is one byte by default), and later the number can align to compress cluster size (1 << n bytes, n=[2,..)), it can avoid cluster acrossing two dnode, making design of compress meta layout simple. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit 2df0ab045784a1ca904437601a5086f570e8cf16 Author: Chao Yu Date: Mon Mar 25 21:07:30 2019 +0800 f2fs: introduce f2fs_read_single_page() for cleanup This patch introduces f2fs_read_single_page() to wrap core operations of reading one page in f2fs_mpage_readpages(). In addition, if we failed in f2fs_mpage_readpages(), propagate error number to f2fs_read_data_page(), for f2fs_read_data_pages() path, always return success. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit 5c533b19ae26e810d07ba3d2216ea704b2127ab2 Author: Park Ju Hyung Date: Wed Apr 17 18:57:38 2019 +0900 f2fs: mark is_extension_exist() inline The caller set_file_temperature() is marked as inline as well. It doesn't make much sense to leave is_extension_exist() un-inlined. Signed-off-by: Park Ju Hyung Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim commit cd23ffa9fcba071c6a6129c46bf41acca77fab4a Author: Chao Yu Date: Mon Apr 15 15:30:53 2019 +0800 f2fs: fix to set FI_UPDATE_WRITE correctly This patch fixes to set FI_UPDATE_WRITE only if in-place IO was issued. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit 05573d6ccf702df549a7bdeabef31e4753df1a90 Author: Chao Yu Date: Mon Apr 15 15:30:52 2019 +0800 f2fs: fix to avoid panic in f2fs_inplace_write_data() As Jungyeon reported in bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203239 - Overview When mounting the attached crafted image and running program, following errors are reported. Additionally, it hangs on sync after running program. The image is intentionally fuzzed from a normal f2fs image for testing. Compile options for F2FS are as follows. CONFIG_F2FS_FS=y CONFIG_F2FS_STAT_FS=y CONFIG_F2FS_FS_XATTR=y CONFIG_F2FS_FS_POSIX_ACL=y CONFIG_F2FS_CHECK_FS=y - Reproduces cc poc_15.c ./run.sh f2fs sync - Kernel messages ------------[ cut here ]------------ kernel BUG at fs/f2fs/segment.c:3162! RIP: 0010:f2fs_inplace_write_data+0x12d/0x160 Call Trace: f2fs_do_write_data_page+0x3c1/0x820 __write_data_page+0x156/0x720 f2fs_write_cache_pages+0x20d/0x460 f2fs_write_data_pages+0x1b4/0x300 do_writepages+0x15/0x60 __filemap_fdatawrite_range+0x7c/0xb0 file_write_and_wait_range+0x2c/0x80 f2fs_do_sync_file+0x102/0x810 do_fsync+0x33/0x60 __x64_sys_fsync+0xb/0x10 do_syscall_64+0x43/0xf0 entry_SYSCALL_64_after_hwframe+0x44/0xa9 The reason is f2fs_inplace_write_data() will trigger kernel panic due to data block locates in node type segment. To avoid panic, let's just return error code and set SBI_NEED_FSCK to give a hint to fsck for latter repairing. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit e95bcdb2fefa129f37bd9035af1d234ca92ee4ef Author: Chao Yu Date: Mon Apr 15 15:30:51 2019 +0800 f2fs: fix to do sanity check on valid block count of segment As Jungyeon reported in bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203233 - Overview When mounting the attached crafted image and running program, following errors are reported. Additionally, it hangs on sync after running program. The image is intentionally fuzzed from a normal f2fs image for testing. Compile options for F2FS are as follows. CONFIG_F2FS_FS=y CONFIG_F2FS_STAT_FS=y CONFIG_F2FS_FS_XATTR=y CONFIG_F2FS_FS_POSIX_ACL=y CONFIG_F2FS_CHECK_FS=y - Reproduces cc poc_13.c mkdir test mount -t f2fs tmp.img test cp a.out test cd test sudo ./a.out sync - Kernel messages F2FS-fs (sdb): Bitmap was wrongly set, blk:4608 kernel BUG at fs/f2fs/segment.c:2102! RIP: 0010:update_sit_entry+0x394/0x410 Call Trace: f2fs_allocate_data_block+0x16f/0x660 do_write_page+0x62/0x170 f2fs_do_write_node_page+0x33/0xa0 __write_node_page+0x270/0x4e0 f2fs_sync_node_pages+0x5df/0x670 f2fs_write_checkpoint+0x372/0x1400 f2fs_sync_fs+0xa3/0x130 f2fs_do_sync_file+0x1a6/0x810 do_fsync+0x33/0x60 __x64_sys_fsync+0xb/0x10 do_syscall_64+0x43/0xf0 entry_SYSCALL_64_after_hwframe+0x44/0xa9 sit.vblocks and sum valid block count in sit.valid_map may be inconsistent, segment w/ zero vblocks will be treated as free segment, while allocating in free segment, we may allocate a free block, if its bitmap is valid previously, it can cause kernel crash due to bitmap verification failure. Anyway, to avoid further serious metadata inconsistence and corruption, it is necessary and worth to detect SIT inconsistence. So let's enable check_block_count() to verify vblocks and valid_map all the time rather than do it only CONFIG_F2FS_CHECK_FS is enabled. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit 7b63f72f73af57bb040f03b9713ec9979d8911f4 Author: Chao Yu Date: Mon Apr 15 15:30:50 2019 +0800 f2fs: fix to do sanity check on valid node/block count As Jungyeon reported in bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203229 - Overview When mounting the attached crafted image, following errors are reported. Additionally, it hangs on sync after trying to mount it. The image is intentionally fuzzed from a normal f2fs image for testing. Compile options for F2FS are as follows. CONFIG_F2FS_FS=y CONFIG_F2FS_STAT_FS=y CONFIG_F2FS_FS_XATTR=y CONFIG_F2FS_FS_POSIX_ACL=y CONFIG_F2FS_CHECK_FS=y - Reproduces mkdir test mount -t f2fs tmp.img test sync - Kernel message kernel BUG at fs/f2fs/recovery.c:591! RIP: 0010:recover_data+0x12d8/0x1780 Call Trace: f2fs_recover_fsync_data+0x613/0x710 f2fs_fill_super+0x1043/0x1aa0 mount_bdev+0x16d/0x1a0 mount_fs+0x4a/0x170 vfs_kern_mount+0x5d/0x100 do_mount+0x200/0xcf0 ksys_mount+0x79/0xc0 __x64_sys_mount+0x1c/0x20 do_syscall_64+0x43/0xf0 entry_SYSCALL_64_after_hwframe+0x44/0xa9 With corrupted image wihch has out-of-range valid node/block count, during recovery, once we failed due to no free space, it will trigger kernel panic. Adding sanity check on valid node/block count in f2fs_sanity_check_ckpt() to detect such condition, so that potential panic can be avoided. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit 22d61e286e2d9097dae36f75ed48801056b77cac Author: Chao Yu Date: Mon Apr 15 15:28:37 2019 +0800 f2fs: fix to avoid panic in do_recover_data() As Jungyeon reported in bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203227 - Overview When mounting the attached crafted image, following errors are reported. Additionally, it hangs on sync after trying to mount it. The image is intentionally fuzzed from a normal f2fs image for testing. Compile options for F2FS are as follows. CONFIG_F2FS_FS=y CONFIG_F2FS_STAT_FS=y CONFIG_F2FS_FS_XATTR=y CONFIG_F2FS_FS_POSIX_ACL=y CONFIG_F2FS_CHECK_FS=y - Reproduces mkdir test mount -t f2fs tmp.img test sync - Messages kernel BUG at fs/f2fs/recovery.c:549! RIP: 0010:recover_data+0x167a/0x1780 Call Trace: f2fs_recover_fsync_data+0x613/0x710 f2fs_fill_super+0x1043/0x1aa0 mount_bdev+0x16d/0x1a0 mount_fs+0x4a/0x170 vfs_kern_mount+0x5d/0x100 do_mount+0x200/0xcf0 ksys_mount+0x79/0xc0 __x64_sys_mount+0x1c/0x20 do_syscall_64+0x43/0xf0 entry_SYSCALL_64_after_hwframe+0x44/0xa9 During recovery, if ofs_of_node is inconsistent in between recovered node page and original checkpointed node page, let's just fail recovery instead of making kernel panic. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit 626bcf2b7ce87211dba565f2bfa7842ba5be5c1b Author: Chao Yu Date: Mon Apr 15 15:28:36 2019 +0800 f2fs: fix to do sanity check on free nid As Jungyeon reported in bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203225 - Overview When mounting the attached crafted image and unmounting it, following errors are reported. Additionally, it hangs on sync after unmounting. The image is intentionally fuzzed from a normal f2fs image for testing. Compile options for F2FS are as follows. CONFIG_F2FS_FS=y CONFIG_F2FS_STAT_FS=y CONFIG_F2FS_FS_XATTR=y CONFIG_F2FS_FS_POSIX_ACL=y CONFIG_F2FS_CHECK_FS=y - Reproduces mkdir test mount -t f2fs tmp.img test touch test/t umount test sync - Messages kernel BUG at fs/f2fs/node.c:3073! RIP: 0010:f2fs_destroy_node_manager+0x2f0/0x300 Call Trace: f2fs_put_super+0xf4/0x270 generic_shutdown_super+0x62/0x110 kill_block_super+0x1c/0x50 kill_f2fs_super+0xad/0xd0 deactivate_locked_super+0x35/0x60 cleanup_mnt+0x36/0x70 task_work_run+0x75/0x90 exit_to_usermode_loop+0x93/0xa0 do_syscall_64+0xba/0xf0 entry_SYSCALL_64_after_hwframe+0x44/0xa9 RIP: 0010:f2fs_destroy_node_manager+0x2f0/0x300 NAT table is corrupted, so reserved meta/node inode ids were added into free list incorrectly, during file creation, since reserved id has cached in inode hash, so it fails the creation and preallocated nid can not be released later, result in kernel panic. To fix this issue, let's do nid boundary check during free nid loading. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit b42b179bda9ff11075a6fc2bac4d9e400513679a Author: Chao Yu Date: Mon Apr 15 15:28:35 2019 +0800 f2fs: fix to do checksum even if inode page is uptodate As Jungyeon reported in bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203221 - Overview When mounting the attached crafted image and running program, this error is reported. The image is intentionally fuzzed from a normal f2fs image for testing and I enabled option CONFIG_F2FS_CHECK_FS on. - Reproduces cc poc_07.c mkdir test mount -t f2fs tmp.img test cp a.out test cd test sudo ./a.out - Messages kernel BUG at fs/f2fs/node.c:1279! RIP: 0010:read_node_page+0xcf/0xf0 Call Trace: __get_node_page+0x6b/0x2f0 f2fs_iget+0x8f/0xdf0 f2fs_lookup+0x136/0x320 __lookup_slow+0x92/0x140 lookup_slow+0x30/0x50 walk_component+0x1c1/0x350 path_lookupat+0x62/0x200 filename_lookup+0xb3/0x1a0 do_fchmodat+0x3e/0xa0 __x64_sys_chmod+0x12/0x20 do_syscall_64+0x43/0xf0 entry_SYSCALL_64_after_hwframe+0x44/0xa9 On below paths, we can have opportunity to readahead inode page - gc_node_segment -> f2fs_ra_node_page - gc_data_segment -> f2fs_ra_node_page - f2fs_fill_dentries -> f2fs_ra_node_page Unlike synchronized read, on readahead path, we can set page uptodate before verifying page's checksum, then read_node_page() will trigger kernel panic once it encounters a uptodated page w/ incorrect checksum. So considering readahead scenario, we have to do checksum each time when loading inode page even if it is uptodated. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit 8b6810f8acfe429fde7c7dad4714692cc5f75651 Author: Chao Yu Date: Mon Apr 15 15:28:34 2019 +0800 f2fs: fix to avoid panic in f2fs_remove_inode_page() As Jungyeon reported in bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203219 - Overview When mounting the attached crafted image and running program, I got this error. Additionally, it hangs on sync after running the program. The image is intentionally fuzzed from a normal f2fs image for testing and I enabled option CONFIG_F2FS_CHECK_FS on. - Reproduces cc poc_06.c mkdir test mount -t f2fs tmp.img test cp a.out test cd test sudo ./a.out sync - Messages kernel BUG at fs/f2fs/node.c:1183! RIP: 0010:f2fs_remove_inode_page+0x294/0x2d0 Call Trace: f2fs_evict_inode+0x2a3/0x3a0 evict+0xba/0x180 __dentry_kill+0xbe/0x160 dentry_kill+0x46/0x180 dput+0xbb/0x100 do_renameat2+0x3c9/0x550 __x64_sys_rename+0x17/0x20 do_syscall_64+0x43/0xf0 entry_SYSCALL_64_after_hwframe+0x44/0xa9 The reason is f2fs_remove_inode_page() will trigger kernel panic due to inconsistent i_blocks value of inode. To avoid panic, let's just print debug message and set SBI_NEED_FSCK to give a hint to fsck for latter repairing of potential image corruption. Signed-off-by: Chao Yu [Jaegeuk Kim: fix build warning and add unlikely] Signed-off-by: Jaegeuk Kim commit 546d22f070d64a7b96f57c93333772085d3a5e6d Author: Chao Yu Date: Mon Apr 15 15:28:33 2019 +0800 f2fs: fix to clear dirty inode in error path of f2fs_iget() As Jungyeon reported in bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203217 - Overview When mounting the attached crafted image and running program, I got this error. Additionally, it hangs on sync after running the program. The image is intentionally fuzzed from a normal f2fs image for testing and I enabled option CONFIG_F2FS_CHECK_FS on. - Reproduces cc poc_test_05.c mkdir test mount -t f2fs tmp.img test sudo ./a.out sync - Messages kernel BUG at fs/f2fs/inode.c:707! RIP: 0010:f2fs_evict_inode+0x33f/0x3a0 Call Trace: evict+0xba/0x180 f2fs_iget+0x598/0xdf0 f2fs_lookup+0x136/0x320 __lookup_slow+0x92/0x140 lookup_slow+0x30/0x50 walk_component+0x1c1/0x350 path_lookupat+0x62/0x200 filename_lookup+0xb3/0x1a0 do_readlinkat+0x56/0x110 __x64_sys_readlink+0x16/0x20 do_syscall_64+0x43/0xf0 entry_SYSCALL_64_after_hwframe+0x44/0xa9 During inode loading, __recover_inline_status() can recovery inode status and set inode dirty, once we failed in following process, it will fail the check in f2fs_evict_inode, result in trigger BUG_ON(). Let's clear dirty inode in error path of f2fs_iget() to avoid panic. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit bda5239738fac6ad217a820f5d76b1af896fbb92 Author: Chao Yu Date: Mon Apr 15 15:28:32 2019 +0800 f2fs: remove new blank line of f2fs kernel message Just removing '\n' in f2fs_msg(, "\n") to avoid redundant new blank line. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit 6dc3a12663c8a99ef033287f48bbdd61b6b1979b Author: Chao Yu Date: Mon Apr 15 15:26:31 2019 +0800 f2fs: fix wrong __is_meta_io() macro This patch changes codes as below: - don't use is_read_io() as a condition to judge the meta IO. - use .is_por to replace .is_meta to indicate IO is from recovery explicitly. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit ea6d7e72fea49402aa445345aade7a26b81732e3 Author: Chao Yu Date: Mon Apr 15 15:28:31 2019 +0800 f2fs: fix to avoid panic in dec_valid_node_count() As Jungyeon reported in bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203213 - Overview When mounting the attached crafted image and running program, I got this error. Additionally, it hangs on sync after running the this script. The image is intentionally fuzzed from a normal f2fs image for testing and I enabled option CONFIG_F2FS_CHECK_FS on. - Reproduces mkdir test mount -t f2fs tmp.img test cp a.out test cd test sudo ./a.out sync kernel BUG at fs/f2fs/f2fs.h:2012! RIP: 0010:truncate_node+0x2c9/0x2e0 Call Trace: f2fs_truncate_xattr_node+0xa1/0x130 f2fs_remove_inode_page+0x82/0x2d0 f2fs_evict_inode+0x2a3/0x3a0 evict+0xba/0x180 __dentry_kill+0xbe/0x160 dentry_kill+0x46/0x180 dput+0xbb/0x100 do_renameat2+0x3c9/0x550 __x64_sys_rename+0x17/0x20 do_syscall_64+0x43/0xf0 entry_SYSCALL_64_after_hwframe+0x44/0xa9 The reason is dec_valid_node_count() will trigger kernel panic due to inconsistent count in between inode.i_blocks and actual block. To avoid panic, let's just print debug message and set SBI_NEED_FSCK to give a hint to fsck for latter repairing. Signed-off-by: Chao Yu [Jaegeuk Kim: fix build warning and add unlikely] Signed-off-by: Jaegeuk Kim commit 5e159cd349bf3a31fb7e35c23a93308eb30f4f71 Author: Chao Yu Date: Mon Apr 15 15:28:30 2019 +0800 f2fs: fix to avoid panic in dec_valid_block_count() As Jungyeon reported in bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203209 - Overview When mounting the attached crafted image and running program, I got this error. Additionally, it hangs on sync after the this script. The image is intentionally fuzzed from a normal f2fs image for testing and I enabled option CONFIG_F2FS_CHECK_FS on. - Reproduces cc poc_01.c ./run.sh f2fs sync kernel BUG at fs/f2fs/f2fs.h:1788! RIP: 0010:f2fs_truncate_data_blocks_range+0x342/0x350 Call Trace: f2fs_truncate_blocks+0x36d/0x3c0 f2fs_truncate+0x88/0x110 f2fs_setattr+0x3e1/0x460 notify_change+0x2da/0x400 do_truncate+0x6d/0xb0 do_sys_ftruncate+0xf1/0x160 do_syscall_64+0x43/0xf0 entry_SYSCALL_64_after_hwframe+0x44/0xa9 The reason is dec_valid_block_count() will trigger kernel panic due to inconsistent count in between inode.i_blocks and actual block. To avoid panic, let's just print debug message and set SBI_NEED_FSCK to give a hint to fsck for latter repairing. Signed-off-by: Chao Yu [Jaegeuk Kim: fix build warning and add unlikely] Signed-off-by: Jaegeuk Kim commit 622927f3b8809206f6da54a6a7ed4df1a7770fce Author: Chao Yu Date: Thu Apr 11 11:48:10 2019 +0800 f2fs: fix to use inline space only if inline_xattr is enable With below mkfs and mount option: MKFS_OPTIONS -- -O extra_attr -O project_quota -O inode_checksum -O flexible_inline_xattr -O inode_crtime -f MOUNT_OPTIONS -- -o noinline_xattr We may miss xattr data with below testcase: - mkdir dir - setfattr -n "user.name" -v 0 dir - for ((i = 0; i < 190; i++)) do touch dir/$i; done - umount - mount - getfattr -n "user.name" dir user.name: No such attribute The root cause is that we persist xattr data into reserved inline xattr space, even if inline_xattr is not enable in inline directory inode, after inline dentry conversion, reserved space no longer exists, so that xattr data missed. Let's use inline xattr space only if inline_xattr flag is set on inode to fix this iusse. Fixes: 6afc662e68b5 ("f2fs: support flexible inline xattr size") Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit 45a746881576977f85504c21a75547f10c5c0a8e Author: Chao Yu Date: Thu Apr 11 11:48:09 2019 +0800 f2fs: fix to retrieve inline xattr space With below mkfs and mount option, generic/339 of fstest will report that scratch image becomes corrupted. MKFS_OPTIONS -- -O extra_attr -O project_quota -O inode_checksum -O flexible_inline_xattr -O inode_crtime -f /dev/zram1 MOUNT_OPTIONS -- -o acl,user_xattr -o discard,noinline_xattr /dev/zram1 /mnt/scratch_f2fs [ASSERT] (f2fs_check_dirent_position:1315) --> Wrong position of dirent pino:1970, name: (...) level:8, dir_level:0, pgofs:951, correct range:[900, 901] In old kernel, inline data and directory always reserved 200 bytes in inode layout, even if inline_xattr is disabled, then new kernel tries to retrieve that space for non-inline xattr inode, but for inline dentry, its layout size should be fixed, so we just keep that reserved space. But the problem here is that, after inline dentry conversion, inline dentry layout no longer exists, if we still reserve inline xattr space, after dents updates, there will be a hole in inline xattr space, which can break hierarchy hash directory structure. This patch fixes this issue by retrieving inline xattr space after inline dentry conversion. Fixes: 6afc662e68b5 ("f2fs: support flexible inline xattr size") Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit 988385795c7f46b231982d54750587f204bd558b Author: Chao Yu Date: Wed Apr 10 18:45:26 2019 +0800 f2fs: fix error path of recovery There are some places in where we missed to unlock page or unlock page incorrectly, fix them. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit 793ab1c8a792f8bccd7ae4c5be02bd275410b3af Author: Chao Yu Date: Wed Apr 10 18:45:50 2019 +0800 f2fs: fix to avoid deadloop in foreground GC As Jungyeon reported in bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203211 - Overview When mounting the attached crafted image and making a new file, I got this error and the error messages keep repeating. The image is intentionally fuzzed from a normal f2fs image for testing and I run with option CONFIG_F2FS_CHECK_FS on. - Reproduces mkdir test mount -t f2fs tmp.img test cd test touch t - Messages [ 58.820451] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.821485] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.822530] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.823571] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.824616] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.825640] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.826663] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.827698] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.828719] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.829759] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.830783] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.831828] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.832869] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.833888] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.834945] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.835996] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.837028] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.838051] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.839072] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.840100] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.841147] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.842186] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.843214] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.844267] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.845282] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.846305] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT [ 58.847341] F2FS-fs (sdb): Inconsistent segment (1) type [1, 0] in SSA and SIT ... (repeating) During GC, if segment type stored in SSA and SIT is inconsistent, we just skip migrating current segment directly, since we need to know the exact type to decide the migration function we use. So in foreground GC, we will easily run into a infinite loop as we may select the same victim segment which has inconsistent type due to greedy policy. In order to end up this, we choose to shutdown filesystem. For backgrond GC, we need to do that as well, so that we can avoid latter potential infinite looped foreground GC. Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit 89c3b37af87ec183b666d83428cb28cc421671a6 Merge: 92fab77b6b30 7ad19a99ad43 Author: Linus Torvalds Date: Wed May 8 21:14:17 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide Pull IDE update from David Miller: "Finally deprecate the legacy IDE layer" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/ide: ide: officially deprecated the legacy IDE driver commit 0ed56252c9567351344cb7b5cff6140e1bcec943 Author: Mark Brown Date: Thu May 9 11:27:17 2019 +0900 spi: Fix Raspberry Pi breakage This reverts commit c9ba7a16d0f1 (Release spi_res after finalizing message) which causes races during cleanup. Reported-by: Nicolas Saenz Julienne Signed-off-by: Mark Brown commit 7f6647ced298d56027218e47619b7f0d925fc83e Author: Takashi Iwai Date: Wed May 8 10:50:37 2019 +0200 ASoC: SOF: Fix unused variable warnings The recent fix for the build fix caused a couple of unused variable compiler warnings when CONFIG_SND_SOC_SOF_NOCODEC isn't set: sound/soc/sof/core.c:263:6: warning: unused variable ‘ret’ [-Wunused-variable] sound/soc/sof/core.c:262:28: warning: unused variable ‘machine’ [-Wunused-variable] Fix them by adding another ifdef. Fixes: ce38a75089f7 ("ASoC: SOF: core: fix undefined nocodec reference") Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown commit eb85d03e01c3e9f3b0ba7282b2e3515a635decb2 Merge: f2e8d169b2b9 15273ffd7efd Author: Dave Airlie Date: Thu May 9 11:03:54 2019 +1000 Merge tag 'drm-misc-next-fixes-2019-05-08' of git://anongit.freedesktop.org/drm/drm-misc into drm-next - A handful of fixes from -next that just missed feature freeze - More panfrost fixes that went directly in -misc-next-fixes (various) - Fix searchpaths during build (Masahiro) - msm patch to fix the driver for chips without zap shader (Rob) - Fix freeing imported buffers in drm_gem_cma_free_object() (Noralf) Cc: Masahiro Yamada Cc: Rob Clark Cc: Noralf Trønnes Signed-off-by: Dave Airlie From: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190508205153.GA91135@art_vandelay commit f2e8d169b2b96d234be7f109f8222d7fa4612899 Merge: 30d62d4453e4 15e9122d9b5c Author: Dave Airlie Date: Thu May 9 10:43:44 2019 +1000 Merge branch 'for-upstream/mali-dp' of git://linux-arm.org/linux-ld into drm-next This is the 2nd pull request for the malidp-next. The new patches add additional support for Arm Mali D71 so that it can now be enabled correctly and brought up on any SoC that contains the IP. From now on we will start focusing on adding writeback, scaling and other useful features to bring the driver to the same level of maturity as mali-dp. Signed-off-by: Dave Airlie From: Liviu Dudau Link: https://patchwork.freedesktop.org/patch/msgid/20190507103712.GJ15144@e110455-lin.cambridge.arm.com commit 5d5db1c94f8c412d1c9755bd13194701301b9046 Author: Mauro Carvalho Chehab Date: Mon Apr 22 10:28:02 2019 -0300 docs: sparc: convert to ReST Rename the sparc documentation files to ReST, add an index for them and adjust in order to produce a nice html output via the Sphinx build system. There is an except from a document under oradax dir. It doesn't seem to make much sense to convert this one to ReST, so let's add it as an included document. At its new index.rst, let's add a :orphan: while this is not linked to the main index.rst file, in order to avoid build warnings. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: David S. Miller commit dac21527df5290edf54a40479c3e22fbff7ec14e Merge: 269fe56551c6 376b1371a9f2 Author: David S. Miller Date: Wed May 8 17:11:57 2019 -0700 Merge branch 'sparc32-iommu-SG-list' Christoph Hellwig says: ==================== fix SG list handling in the sparc32 iommu driver this series fixes some long standing bugs in the sparc32 iommu driver, mostly the lack of handling of large sglist offsets in the map_sg method, but also a few other smaller bits. These now show up all the time do some block layer changes in linux-next. ==================== Tested-by: Guenter Roeck Signed-off-by: David S. Miller commit 376b1371a9f29112ae000cc0cade174a9a670053 Author: Christoph Hellwig Date: Tue Apr 16 20:23:47 2019 +0200 sparc/iommu: merge iommu_get_one and __sbus_iommu_map_page There is only one caller of iommu_get_one left, so merge it into that one to clean things up a bit. Signed-off-by: Christoph Hellwig Signed-off-by: David S. Miller commit edb1f07203ba8856b24bcddf8326386ba6a03291 Author: Christoph Hellwig Date: Tue Apr 16 20:23:46 2019 +0200 sparc/iommu: use __sbus_iommu_map_page to implement the map_sg path This means we handle > PAGE_SIZE offsets fine, and grow the size check so far only performed in the map_page path. We lose the optimization to not double flush a page if it apears in multiple consecutive SG list entries. But at least for block I/O those don't happen anymore since we properly merge in higher layers anyway. Signed-off-by: Christoph Hellwig Reported-by: Guenter Roeck Signed-off-by: David S. Miller commit 7e996890b88078011bfb55ce072712d464207dad Author: Christoph Hellwig Date: Tue Apr 16 20:23:45 2019 +0200 sparc/iommu: fix __sbus_iommu_map_page for highmem pages __sbus_iommu_map_page currently assumes all pages are mapped into the kernel direct mapping. Switch to using physical address instead of virtual ones for all the normal mapping operations, and only use the virtual addresses for cache flushing when not operating on a highmem page. Signed-off-by: Christoph Hellwig Reported-by: Guenter Roeck Signed-off-by: David S. Miller commit 8668b38c1c7720baf76da15a7a7eef43ae0c65a4 Author: Christoph Hellwig Date: Tue Apr 16 20:23:44 2019 +0200 sparc/iommu: move per-page flushing into __sbus_iommu_map_page This prepares for reusing __sbus_iommu_map_page in the map_sg path. Signed-off-by: Christoph Hellwig Reported-by: Guenter Roeck Signed-off-by: David S. Miller commit b82059428c0577c2ec082974d7956291d5eae2cf Author: Christoph Hellwig Date: Tue Apr 16 20:23:43 2019 +0200 sparc/iommu: pass a physical address to iommu_get_one No need for the page structure, just the paddr / pfn. This is going to simplify fixes to the callers. Signed-off-by: Christoph Hellwig Reported-by: Guenter Roeck Signed-off-by: David S. Miller commit ff5cbec0c3ea8b96c4cb7bcd9f484d8665d394e6 Author: Christoph Hellwig Date: Tue Apr 16 20:23:42 2019 +0200 sparc/iommu: create a common helper for map_sg Share the code for the global and per-page flush map_sg loops using a simple bool parameter to disable the per-page flush for the former variant. Signed-off-by: Christoph Hellwig Reported-by: Guenter Roeck Signed-off-by: David S. Miller commit f25b23bc156fef3211fe4adf9692eca5ce2fd082 Author: Christoph Hellwig Date: Tue Apr 16 20:23:41 2019 +0200 sparc/iommu: merge iommu_release_one and sbus_iommu_unmap_page There is only one caller of iommu_release_one left, so merge it into that one to clean things up a bit. Signed-off-by: Christoph Hellwig Reported-by: Guenter Roeck Signed-off-by: David S. Miller commit a7fce1f7ca2f092fe44a17cb158deda97060aab4 Author: Christoph Hellwig Date: Tue Apr 16 20:23:40 2019 +0200 sparc/iommu: use sbus_iommu_unmap_page in sbus_iommu_unmap_sg Use the page-level helper instead of duplicating the logic, while also fixing the incorrect handling of larger than page sized offsets in the sg variant. Signed-off-by: Christoph Hellwig Reported-by: Guenter Roeck Signed-off-by: David S. Miller commit 031abf0b70cb6804eefb11340463a2277e52f853 Author: Christoph Hellwig Date: Tue Apr 16 20:23:39 2019 +0200 sparc/iommu: use !PageHighMem to check if a page has a kernel mapping This deobsfucates the check a bit, and prepares for future changes. Signed-off-by: Christoph Hellwig Reported-by: Guenter Roeck Signed-off-by: David S. Miller commit 269fe56551c68cde57e477a6810ed57921dfe54f Author: Masahiro Yamada Date: Wed Apr 3 17:32:24 2019 +0900 sparc: vdso: add FORCE to the build rule of %.so $(call if_changed,...) must have FORCE as a prerequisite. Signed-off-by: Masahiro Yamada Reviewed-by: Nick Desaulniers Signed-off-by: David S. Miller commit a95a9e5f0fdf9ef7c1b1cbf2788cb0df28a97bfb Author: Jagadeesh Pagadala Date: Thu Mar 28 02:58:45 2019 +0530 arch:sparc:kernel/uprobes.c : Remove duplicate header Remove duplicate header which is included twice. Signed-off-by: Jagadeesh Pagadala Reviewed-by: Mukesh Ojha Signed-off-by: David S. Miller commit 7ad19a99ad431b5cae005c30b09096517058e84e Author: Christoph Hellwig Date: Wed May 8 20:01:40 2019 +0200 ide: officially deprecated the legacy IDE driver After a recent chat with Dave we agreed to try to finally kill off the legacy IDE code base. Set a two year grace period in which we try to move everyone over. There are a few pieces of hardware not supported by libata yet, but for many of them we aren't even sure if there are any users. For those that have users we have usually found a volunteer to add libata support. Signed-off-by: Christoph Hellwig Acked-by: Jens Axboe Signed-off-by: David S. Miller commit 92fab77b6b309dc219b02da4a69ad5dc76f7ec74 Merge: ef75bd71c5d3 3751cbda8f22 Author: Linus Torvalds Date: Wed May 8 16:41:47 2019 -0700 Merge tag 'mips_5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux Pull MIPS updates from Paul Burton: - A set of memblock initialization improvements thanks to Serge Semin, tidying up after our conversion from bootmem to memblock back in v4.20. - Our eBPF JIT the previously supported only MIPS64r2 through MIPS64r5 is improved to also support MIPS64r6. Support for MIPS32 systems is introduced, with the caveat that it only works for programs that don't use 64 bit registers or operations - those will bail out & need to be interpreted. - Improvements to the allocation & configuration of our exception vector that should fix issues seen on some platforms using recent versions of U-Boot. - Some minor improvements to code generated for jump labels, along with enabling them by default for generic kernels. * tag 'mips_5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (27 commits) mips: Manually call fdt_init_reserved_mem() method mips: Make sure dt memory regions are valid mips: Perform early low memory test mips: Dump memblock regions for debugging mips: Add reserve-nomap memory type support mips: Use memblock to reserve the __nosave memory range mips: Discard post-CMA-init foreach loop mips: Reserve memory for the kernel image resources MIPS: Remove duplicate EBase configuration MIPS: Sync icache for whole exception vector MIPS: Always allocate exception vector for MIPSr2+ MIPS: Use memblock_phys_alloc() for exception vector mips: Combine memblock init and memory reservation loops mips: Discard rudiments from bootmem_init mips: Make sure kernel .bss exists in boot mem pool mips: vdso: drop unnecessary cc-ldoption Revert "MIPS: ralink: fix cpu clock of mt7621 and add dt clk devices" MIPS: generic: Enable CONFIG_JUMP_LABEL MIPS: jump_label: Use compact branches for >= r6 MIPS: jump_label: Remove redundant nops ... commit 5f05836831f6142081e216f27e1ae8f4b26d3585 Author: Pieter Jansen van Vuuren Date: Wed May 8 15:56:07 2019 -0700 net/sched: avoid double free on matchall reoffload Avoid freeing cls_mall.rule twice when failing to setup flow_action offload used in the hardware intermediate representation. This is achieved by returning 0 when the setup fails but the skip software flag has not been set. Fixes: f00cbf196814 ("net/sched: use the hardware intermediate representation for matchall") Reported-by: Dan Carpenter Signed-off-by: Pieter Jansen van Vuuren Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit 1e966763e256393965c78aa09b89027fac6b8bf1 Author: Pieter Jansen van Vuuren Date: Wed May 8 15:52:56 2019 -0700 nfp: reintroduce ndo_get_port_parent_id for representor ports NFP does not register devlink ports for representors (without the "devlink: expose PF and VF representors as ports" series there are no port flavours to expose them as). Commit c25f08ac65e4 ("nfp: remove ndo_get_port_parent_id implementation") went to far in removing ndo_get_port_parent_id for representors. This causes redirection offloads to fail, and switch_id attribute missing. Reintroduce the ndo_get_port_parent_id callback for representor ports. Fixes: c25f08ac65e4 ("nfp: remove ndo_get_port_parent_id implementation") Signed-off-by: Pieter Jansen van Vuuren Signed-off-by: Jakub Kicinski Signed-off-by: David S. Miller commit 8dde14299e501b0b25a11f607ff13668c17a311a Merge: 3b2c4f4d63a5 1da7756e6616 Author: David S. Miller Date: Wed May 8 16:31:38 2019 -0700 Merge branch 'phy-realtek-delays' Serge Semin says: ==================== net: phy: realtek: Fix RGMII TX/RX-delays initial config of rtl8211(e|f) It has been discovered that RX/TX delays of rtl8211e ethernet PHY can be configured via a MDIO register hidden in the extension pages layout. Particularly the extension page 0xa4 provides a register 0x1c, which bits 1 and 2 control the described delays. They are used to implement the "rgmii-{id,rxid,txid}" phy-mode support in patch 1. The second patch makes sure the rtl8211f TX-delay is configured only if RGMII interface mode is specified including the rgmii-rxid one. In other cases (most importantly for NA mode) the delays are supposed to be preconfigured by some other software or hardware and should be left as is without any modification. The similar thing is also done for rtl8211e in the patch 1 of this series. Changelog v3 - Add this cover-letter. - Add Andrew' Reviewed-by tag to patch 1. - Accept RGMII_RXID interface mode for rtl8211f and clear the TX_DELAY bit in this case. - Initialize ret variable with 0 to prevent the "may be used uninitialized" warning in patch 1. Changelog v4 - Rebase onto net-next ==================== Signed-off-by: Serge Semin Signed-off-by: David S. Miller commit 1da7756e6616c7795c8a104fde0a66f212ef659d Author: Serge Semin Date: Thu May 9 00:51:17 2019 +0300 net: phy: realtek: Change TX-delay setting for RGMII modes only It's prone to problems if delay is cleared out for other than RGMII modes. So lets set/clear the TX-delay in the config register only if actually RGMII-like interface mode is requested. This only concerns rtl8211f chips. Signed-off-by: Serge Semin Signed-off-by: David S. Miller commit f81dadbcf7fd067baf184b63c179fc392bdb226e Author: Serge Semin Date: Thu May 9 00:51:15 2019 +0300 net: phy: realtek: Add rtl8211e rx/tx delays config There are two chip pins named TXDLY and RXDLY which actually adds the 2ns delays to TXC and RXC for TXD/RXD latching. Alas this is the only documented info regarding the RGMII timing control configurations the PHY provides. It turns out the same settings can be setup via MDIO registers hidden in the extension pages layout. Particularly the extension page 0xa4 provides a register 0x1c, which bits 1 and 2 control the described delays. They are used to implement the "rgmii-{id,rxid,txid}" phy-mode. The hidden RGMII configs register utilization was found in the rtl8211e U-boot driver: https://elixir.bootlin.com/u-boot/v2019.01/source/drivers/net/phy/realtek.c#L99 There is also a freebsd-folks discussion regarding this register: https://reviews.freebsd.org/D13591 It confirms that the register bits field must control the so called configuration pins described in the table 12-13 of the official PHY datasheet: 8:6 = PHY Address 5:4 = Auto-Negotiation 3 = Interface Mode Select 2 = RX Delay 1 = TX Delay 0 = SELRGV Reviewed-by: Andrew Lunn Signed-off-by: Serge Semin Signed-off-by: David S. Miller commit 6456fd731517f473eac033f898d40ae76b160183 Author: Andy Shevchenko Date: Tue Mar 19 12:59:56 2019 +0200 platform/x86: Add support for Basin Cove power button This provides a new input driver for supporting the power button on Basin Cove PMIC, found on Intel Merrifield-based devices. The driver follows the design used in intel_chtdc_ti_pwrbtn.c module. Signed-off-by: Andy Shevchenko commit 487579bab867e739be3d2c0064ad3af1221482c8 Author: Chris Chiu Date: Thu Apr 18 14:46:48 2019 +0800 platform/x86: asus-wmi: Add fn-lock mode switch support Some of latest ASUS laptops support new fn-lock mode switching. This commit detect whether if the fn-lock option is enabled in BIOS setting, and toggle the fn-lock mode via a new WMI DEVID 0x00100023 when the corresponding notify code captured. The ASUS fn-lock mode switch is activated by pressing Fn+Esc. When on, keys F1 to F12 behave as applicable, with meanings defined by the application being used at the time. When off, F1 to F12 directly triggers hardware features, well known audio volume up/down, brightness up/down...etc, which were triggered by holding down Fn key and F-keys. Because there's no way to retrieve the fn-lock mode via existing WMI methods per ASUS spec, driver need to initialize and keep the fn-lock mode by itself. Signed-off-by: Chris Chiu Reviewed-by: Daniel Drake Signed-off-by: Andy Shevchenko commit 5105e78e5b2414ec39efaadca1802e37e7105bb1 Author: Hans de Goede Date: Mon Apr 29 16:38:07 2019 +0200 platform/x86: ideapad-laptop: Remove no_hw_rfkill_list When the ideapad-laptop driver was first written it was written for laptops which had a hardware rfkill switch. So when the first ideapad laptops showed up without a hw rfkill switch and it turned out that in this case the ideapad firmware interface would always report the wifi being hardware- blocked, a DMI id list of models which lack a hw rfkill switch was started (by yours truly). Things were done this way to avoid regressing existing models with a hw rfkill switch. In hindsight this was a mistake. Lenovo releases a lot of ideapad models every year and even the latest models still use the "VPC2004" ACPI interface the ideapad-laptop driver binds to. Having a hw rfkill switch is quite rare on modern hardware, so all these new models need to be added to the no_hw_rfkill_list, leading to a never ending game of whack a mole. Worse the failure mode when not present on the list, is very bad. In this case the ideapad-laptop driver will report the wifi as being hw-blocked, at which points NetworkManager does not even try to use it and the user ends up with non working wifi. This leads to various Linux fora on the internet being filled with wifi not working on ideapad laptops stories, which does not make Linux look good. The failure mode when we flip the default to assuming that a hw rfkill switch is not present OTOH is quite benign. When we properly report the wifi as being hw-blocked on ideapads which do have the hw-switch; and it is in the wifi-off position, then at least when using NetworkManager + GNOME3 the user will get a "wifi disabled in hardware" message when trying to connect to the wifi from the UI. If OTOH we assume there is no hardware rfkill switch, then the user will get an empty list for the list of available networks. Although the empty list vs the "wifi disabled in hardware" message is a regression, it is a very minor regression and it can easily be fixed on a model by model basis by filling the new hw_rfkill_list this commit introduces. Therefor this commit removes the ever growing no_hw_rfkill_list, flipping the default to assuming there is no hw rfkill switch and adding a new hw_rfkill_list. Thereby fixing the wifi not working on all the current ideapad and yoga models which are not on the list yet and also fixing it for all future ideapad and yoga models using the "VPC2004" ACPI interface. Note once this patch has been accepted upstream. I plan to write a blog post asking for users of ideapads and yoga's with a hw rfkill switch to step forward, so that we can populate the new hw_rfkill_list with the few older yoga and ideapad models which actually have a hw rfkill switch. BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1703338 Signed-off-by: Hans de Goede Signed-off-by: Andy Shevchenko commit 504a43513d3c54f2748c8fde8b72935ee1eef083 Author: Benjamin Renz Date: Mon Apr 29 17:46:57 2019 +0200 platform/x86: touchscreen_dmi: Add info for 'jumper ezpad 6 pro b' touchscreen Add touchscreen platform data for the 'jumper ezpad 6 pro b' touchscreen. Signed-off-by: Benjamin Renz [hdegoede@redhat.com: Cleanup commit msg, fix some checkpatch warnings] Signed-off-by: Hans de Goede Signed-off-by: Andy Shevchenko commit aac3311c484050469b819204323bd54c13dd7c05 Author: Pavel Machek Date: Mon Apr 29 17:21:48 2019 +0200 platform/x86: thinkpad_acpi: cleanup for Thinkpad ACPI led Make error returns more consistent... no behaviour change intended. Signed-off-by: Pavel Machek Signed-off-by: Andy Shevchenko commit c77c357722285167de3377ef9d35eb9fbf993586 Author: Gustavo A. R. Silva Date: Wed Apr 24 13:15:44 2019 -0500 platform/x86: thinkpad_acpi: Mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warnings: drivers/platform/x86/thinkpad_acpi.c: In function ‘thermal_get_sensor’: drivers/platform/x86/thinkpad_acpi.c:6316:6: warning: this statement may fall through [-Wimplicit-fallthrough=] if (idx >= 8 && idx <= 15) { ^ drivers/platform/x86/thinkpad_acpi.c:6322:2: note: here case TPACPI_THERMAL_TPEC_8: ^~~~ drivers/platform/x86/thinkpad_acpi.c: In function ‘hotkey_notify’: drivers/platform/x86/thinkpad_acpi.c:4208:7: warning: this statement may fall through [-Wimplicit-fallthrough=] if (tp_features.hotkey_wlsw && ^ drivers/platform/x86/thinkpad_acpi.c:4216:3: note: here default: ^~~~~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 Notice that, in this particular case, the code comments are modified in accordance with what GCC is expecting to find. This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Reviewed-by: Kees Cook Acked-by: Henrique de Moraes Holschuh Signed-off-by: Andy Shevchenko commit 1cbd7a64959d33e7a2a1fa2bf36a62b350a9fcbd Author: Gustavo A. R. Silva Date: Wed Apr 24 13:09:34 2019 -0500 platform/x86: sony-laptop: Fix unintentional fall-through It seems that the default case should return AE_CTRL_TERMINATE, instead of falling through to case ACPI_RESOURCE_TYPE_END_TAG and returning AE_OK; otherwise the line of code at the end of the function is unreachable and makes no sense: return AE_CTRL_TERMINATE; This fix is based on the following thread of discussion: https://lore.kernel.org/patchwork/patch/959782/ Fixes: 33a04454527e ("sony-laptop: Add SNY6001 device handling (sonypi reimplementation)") Cc: stable@vger.kernel.org Signed-off-by: Gustavo A. R. Silva Reviewed-by: Kees Cook Signed-off-by: Andy Shevchenko commit 6d1f8b3d75419a8659ac916a1e9543bb3513a882 Author: Dan Carpenter Date: Wed Apr 24 12:44:18 2019 +0300 platform/x86: alienware-wmi: printing the wrong error code The "out_data" variable is uninitialized at the point. Originally, this used to print "status" instead and that seems like the correct thing to print. Fixes: bc2ef884320b ("alienware-wmi: For WMAX HDMI method, introduce a way to query HDMI cable status") Signed-off-by: Dan Carpenter Reviewed-by: Mario Limonciello Signed-off-by: Andy Shevchenko commit 3b2c4f4d63a554739a32dc709b617f2d2acc2ad0 Author: Vladimir Oltean Date: Wed May 8 23:32:25 2019 +0300 net: dsa: sja1105: Don't return a negative in u8 sja1105_stp_state_get Dan Carpenter says: The patch 640f763f98c2: "net: dsa: sja1105: Add support for Spanning Tree Protocol" from May 5, 2019, leads to the following static checker warning: drivers/net/dsa/sja1105/sja1105_main.c:1073 sja1105_stp_state_get() warn: signedness bug returning '(-22)' The caller doesn't check for negative errors anyway. Fixes: 640f763f98c2: ("net: dsa: sja1105: Add support for Spanning Tree Protocol") Reported-by: Dan Carpenter Signed-off-by: Vladimir Oltean Signed-off-by: David S. Miller commit afbd4d42470e91470bc59040094b89cd717530bd Merge: 39a39d5b6bc0 e115fb4bd266 Author: Jonathan Corbet Date: Wed May 8 14:38:11 2019 -0600 Merge branch 'x86' into docs-next Merge the x86 docs conversion from Changbin Du, who writes: > The kernel now uses Sphinx to generate intelligent and beautiful > documentation from reStructuredText files. I converted all of the Linux > x86 docs to rst format in this serias. > > For you to preview, please visit below url: > http://www.bytemem.com:8080/kernel-doc/index.html > > Thank you! The whole series was: Acked-by: Ingo Molnar commit e115fb4bd2667754135d0436b6419fb171e9ea4a Author: Changbin Du Date: Wed May 8 23:21:41 2019 +0800 Documentation: x86: convert x86_64/machinecheck to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit bdde117ffed2625389787f82fc92724b486ce976 Author: Changbin Du Date: Wed May 8 23:21:40 2019 +0800 Documentation: x86: convert x86_64/cpu-hotplug-spec to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit f0339db77665e9a196c3afd55386becfb9e70d51 Author: Changbin Du Date: Wed May 8 23:21:39 2019 +0800 Documentation: x86: convert x86_64/fake-numa-for-cpusets to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 85a3bd41cd680aacf0b88e78bbfcfb5bc13292ff Author: Changbin Du Date: Wed May 8 23:21:38 2019 +0800 Documentation: x86: convert x86_64/5level-paging.txt to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit b88679d2f2b9e18618308bbe6d70a1fc91b6a35a Author: Changbin Du Date: Wed May 8 23:21:37 2019 +0800 Documentation: x86: convert x86_64/mm.txt to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 1c65b4e0f27f3688d95de59cbdfa076270251f3c Author: Changbin Du Date: Wed May 8 23:21:36 2019 +0800 Documentation: x86: convert x86_64/uefi.txt to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit bbea90bbb6c849b62b80ec4a83d10e64dd901bd9 Author: Changbin Du Date: Wed May 8 23:21:35 2019 +0800 Documentation: x86: convert x86_64/boot-options.txt to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 8fffdc9353d64f7ceef5c4589249759561aa1b39 Author: Changbin Du Date: Wed May 8 23:21:34 2019 +0800 Documentation: x86: convert i386/IO-APIC.txt to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 71892b25fc49999071472f6bce589c18468a85a8 Author: Changbin Du Date: Wed May 8 23:21:33 2019 +0800 Documentation: x86: convert usb-legacy-support.txt to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 9d12f58fe91e5e72ef08afe9e3e66d1c755fc085 Author: Changbin Du Date: Wed May 8 23:21:32 2019 +0800 Documentation: x86: convert orc-unwinder.txt to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 1cd7af509dc223905dce622c07ec62e26044e3c0 Author: Changbin Du Date: Wed May 8 23:21:31 2019 +0800 Documentation: x86: convert resctrl_ui.txt to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 3d07bc393f9b63ca4c6f9953922f9122a11f29c3 Author: Changbin Du Date: Wed May 8 23:21:30 2019 +0800 Documentation: x86: convert microcode.txt to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit ea0765e835e084707abb7e14d84b572f5ffe4242 Author: Changbin Du Date: Wed May 8 23:21:29 2019 +0800 Documentation: x86: convert pti.txt to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 0c7180f2e4e6fc02f268e18c4f753d9f9cdfb5ad Author: Changbin Du Date: Wed May 8 23:21:28 2019 +0800 Documentation: x86: convert amd-memory-encryption.txt to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit f10b07a01a48d0584fa9815005e04c54058e2e47 Author: Changbin Du Date: Wed May 8 23:21:27 2019 +0800 Documentation: x86: convert intel_mpx.txt to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 28e21eac94a2ee2512ae6c21f04a0b41fb26cb0b Author: Changbin Du Date: Wed May 8 23:21:26 2019 +0800 Documentation: x86: convert protection-keys.txt to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 2f6eae4730120fd6459f55e47b750cd3570e9349 Author: Changbin Du Date: Wed May 8 23:21:25 2019 +0800 Documentation: x86: convert pat.txt to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Cc: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 26d14a2025f4e0d0aa3c157e1421e27fcc2d2bb3 Author: Changbin Du Date: Wed May 8 23:21:24 2019 +0800 Documentation: x86: convert mtrr.txt to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Signed-off-by: Jonathan Corbet commit 17156044b11c878a9fdd8326cf47bc0cbd1aa918 Author: Changbin Du Date: Wed May 8 23:21:23 2019 +0800 Documentation: x86: convert tlb.txt to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 0c2d3639a81b1033f3cb5d3c5ae4d9e7e1313cc4 Author: Changbin Du Date: Wed May 8 23:21:22 2019 +0800 Documentation: x86: convert zero-page.txt to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 4b1357600200cd2b56ecc6fb452d50d4079b42ed Author: Changbin Du Date: Wed May 8 23:21:21 2019 +0800 Documentation: x86: convert earlyprintk.txt to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit c2dea5cda0729fdd91760cdad6bb1166037be74a Author: Changbin Du Date: Wed May 8 23:21:20 2019 +0800 Documentation: x86: convert entry_64.txt to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit ac2b4687dadd4e7703c0e985f5a5a0fdaab53316 Author: Changbin Du Date: Wed May 8 23:21:19 2019 +0800 Documentation: x86: convert kernel-stacks to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 06955392a95cc2918c7881eddabe30e5d8cd0a53 Author: Changbin Du Date: Wed May 8 23:21:18 2019 +0800 Documentation: x86: convert exception-tables.txt to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 848942cb2ef584752d7c41594b2cc91229fe7f01 Author: Changbin Du Date: Wed May 8 23:21:17 2019 +0800 Documentation: x86: convert topology.txt to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit f1f238a9f1ca1f1c7f53ebb7d5517066bf40c471 Author: Changbin Du Date: Wed May 8 23:21:16 2019 +0800 Documentation: x86: convert boot.txt to reST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Cc: Mauro Carvalho Chehab Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit e5def4c6039e9b7bb158c6ec6d8fedda9265b7ef Author: Changbin Du Date: Wed May 8 23:21:15 2019 +0800 Documentation: add Linux x86 docs to Sphinx TOC tree Add a index.rst for x86 support. More docs will be added later. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 39a39d5b6bc0f1f6dd6eaa44916f19edfe003377 Author: Tzvetomir Stoyanov Date: Fri May 3 17:35:37 2019 +0300 Documentation/trace: Add clarification how histogram onmatch works The current trace documentation, the section describing histogram's "onmatch" is not straightforward enough about how this action is applied. It is not clear what criteria are used to "match" both events. A short note is added, describing what exactly is compared in order to match the events. Signed-off-by: Tzvetomir Stoyanov Reviewed-by: Steven Rostedt (VMware) Reviewed-by: Tom Zanussi [jc: fixed trivial conflict with docs-next] Signed-off-by: Jonathan Corbet commit f15be33aa3f9d4e17b8e35e18d7f9577187960c2 Author: Federico Vaga Date: Wed May 8 00:05:25 2019 +0200 doc:it_IT: align documentation after licenses patches This patch translates in Italian the following updates 62be257e986d LICENSES: Rename other to deprecated 8ea8814fcdcb LICENSES: Clearly mark dual license only licenses 6132c37ca543 docs: Don't reference the ZLib license in license-rules.rst Signed-off-by: Federico Vaga Signed-off-by: Jonathan Corbet commit ef75bd71c5d31dc17ae41ff8bec92630a3037d69 Merge: 78d9affbb0e7 f4686c26ecc3 Author: Linus Torvalds Date: Wed May 8 13:16:07 2019 -0700 Merge tag 'gfs2-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 Pull GFS2 updates from Andreas Gruenbacher: "We've got the following patches ready for this merge window: - "gfs2: Fix loop in gfs2_rbm_find (v2)" A rework of a fix we ended up reverting in 5.0 because of an iozone performance regression. - "gfs2: read journal in large chunks" "gfs2: fix race between gfs2_freeze_func and unmount" An improved version of a commit we also ended up reverting in 5.0 because of a regression in xfstest generic/311. It turns out that the journal changes were mostly innocent and that unfreeze didn't wait for the freeze to complete, which caused the filesystem to be unmounted before it was actually idle. - "gfs2: Fix occasional glock use-after-free" "gfs2: Fix iomap write page reclaim deadlock" "gfs2: Fix lru_count going negative" Fixes for various problems reported and partially fixed by Citrix engineers. Thank you very much. - "gfs2: clean_journal improperly set sd_log_flush_head" Another fix from Bob. - .. and a few other minor cleanups" * tag 'gfs2-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2: gfs2: read journal in large chunks gfs2: Fix iomap write page reclaim deadlock gfs2: fix race between gfs2_freeze_func and unmount gfs2: Rename gfs2_trans_{add_unrevoke => remove_revoke} gfs2: Rename sd_log_le_{revoke,ordered} gfs2: Remove unnecessary extern declarations gfs2: Remove misleading comments in gfs2_evict_inode gfs2: Replace gl_revokes with a GLF flag gfs2: Fix occasional glock use-after-free gfs2: clean_journal improperly set sd_log_flush_head gfs2: Fix lru_count going negative gfs2: Fix loop in gfs2_rbm_find (v2) commit dacb6a4035a010e41abaf81c1cfe2beadfb05ec8 Author: Anson Huang Date: Tue Apr 30 01:07:08 2019 +0000 rtc: snvs: Use __maybe_unused instead of #if CONFIG_PM_SLEEP Use __maybe_unused for power management related functions instead of #if CONFIG_PM_SLEEP to simply the code. Signed-off-by: Anson Huang Reviewed-by: Dong Aisheng Signed-off-by: Alexandre Belloni commit 557fbf4f387a6b3df2e02647848b7b4f1064e104 Author: Anders Roxell Date: Fri May 3 17:42:17 2019 +0200 rtc: imxdi: remove unused variable This variable is no longer used and the compiler rightly complains that it should be removed. ../drivers/rtc/rtc-imxdi.c: In function ‘dryice_rtc_set_alarm’: ../drivers/rtc/rtc-imxdi.c:633:16: warning: unused variable ‘now’ [-Wunused-variable] unsigned long now; ^~~ Rework to remove the unused variable. Fixes: 629d488a3eb6 ("rtc: imxdi: remove unnecessary check") Signed-off-by: Anders Roxell Signed-off-by: Alexandre Belloni commit a01ab0669ddf652f521630129e614c16542994b0 Author: Alexandre Belloni Date: Tue Apr 30 16:16:51 2019 +0200 rtc: drop set_mms and set_mmss64 There are no users of set_mms and set_mmss64 as they have all been converted to set_time and are handling the tm to time conversion on their own. Signed-off-by: Alexandre Belloni commit f5fae395663a47e7cdfa37c36cf6689f495c4ab2 Author: Alexandre Belloni Date: Tue Apr 30 11:33:02 2019 +0200 rtc: pcap: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Signed-off-by: Alexandre Belloni commit c8b599ed37c035d13f1ac951182745555caf5723 Author: Alexandre Belloni Date: Tue Apr 30 11:33:01 2019 +0200 rtc: pcap: use .set_time Use .set_time instead of the deprecated .set_mmss. Signed-off-by: Alexandre Belloni commit 03745d1ff4111e65ec7abdd27170ca1a3c9697f7 Author: Alexandre Belloni Date: Tue Apr 30 11:33:00 2019 +0200 rtc: pcap: switch to rtc_time64_to_tm/rtc_tm_to_time64 Call the 64bit versions of rtc_tm time conversion now that the range is enforced by the core. Signed-off-by: Alexandre Belloni commit d1403c4822275b3332dcad71f8b88ceb474db761 Author: Alexandre Belloni Date: Tue Apr 30 11:32:59 2019 +0200 rtc: pcap: set range While PCAP_RTC_DAY_MASK is set to 0x3ffff, it is very unlikely to be correct as this ends in june 1992, before the product even existed. It is more likely to be a 14-bit day counter. The next product in the family (the mc13xxx) has a 15-bit day counter. The same issue is seen with PCAP_RTC_TOD_MASK which only has 65535 seconds and falls short of the necessary 86400 seconds. Signed-off-by: Alexandre Belloni commit 77c13d992b4084ec4e592f66fa2499dbbfcaa051 Author: Alexandre Belloni Date: Tue Apr 30 11:32:12 2019 +0200 rtc: digicolor: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Acked-by: Baruch Siach Signed-off-by: Alexandre Belloni commit 72ef256e3a06d4116f83c9fc9974182deae6289a Author: Alexandre Belloni Date: Tue Apr 30 11:32:11 2019 +0200 rtc: digicolor: use .set_time Use .set_time instead of the deprecated .set_mmss. Acked-by: Baruch Siach Signed-off-by: Alexandre Belloni commit e5fe3c3e4cdb7e0b6323d71d80ccee3eb8de4695 Author: Alexandre Belloni Date: Tue Apr 30 11:32:10 2019 +0200 rtc: digicolor: set range While the range of REFERENCE + TIME is actually 33 bits, the counter itself (TIME) is a 32-bits seconds counter. Acked-by: Baruch Siach Signed-off-by: Alexandre Belloni commit 060711f5274dfc2d76a5b2cd65abf6ccbf061e40 Author: Alexandre Belloni Date: Tue Apr 30 11:32:09 2019 +0200 rtc: digicolor: fix possible race condition The IRQ is requested before the struct rtc is allocated and registered, but this struct is used in the IRQ handler. This may lead to a NULL pointer dereference. Switch to devm_rtc_allocate_device/rtc_register_device to allocate the rtc struct before requesting the IRQ. Acked-by: Baruch Siach Signed-off-by: Alexandre Belloni commit 5425711b6dd0f7283202729863d9210e7a1c7cd2 Author: Colin Ian King Date: Wed May 8 14:30:41 2019 +0100 net: dsa: sja1105: fix check on while loop exit The while-loop exit condition check is not correct; the loop should continue if the returns from the function calls are negative or the CRC status returns are invalid. Currently it is ignoring the returns from the function calls. Fix this by removing the status return checks and only break from the loop at the very end when we know that all the success condtions have been met. Kudos to Dan Carpenter for describing the correct fix and Vladimir Oltean for noting the change to the check on the number of retries. Addresses-Coverity: ("Uninitialized scalar variable") Fixes: 8aa9ebccae87 ("net: dsa: Introduce driver for NXP SJA1105 5-port L2 switch") Signed-off-by: Colin Ian King Tested-by: Vladimir Oltean Signed-off-by: David S. Miller commit 78d9affbb0e79d48fd82b34ef9cd673a7c86d6f2 Merge: 8c79f4cd441b cb4f7bf6be10 Author: Linus Torvalds Date: Wed May 8 13:06:18 2019 -0700 Merge tag '5.2-smb3' of git://git.samba.org/sfrench/cifs-2.6 Pull cifs fixes from Steve French: "CIFS/SMB3 changes: - three fixes for stable - add fiemap support - improve zero-range support - various RDMA (smb direct fixes) I have an additional set of fixes (for improved handling of sparse files, mode bits, POSIX extensions) that are still being tested that are not included in this pull request but I expect to send in the next week" * tag '5.2-smb3' of git://git.samba.org/sfrench/cifs-2.6: (29 commits) cifs: update module internal version number SMB3: Clean up query symlink when reparse point cifs: fix strcat buffer overflow and reduce raciness in smb21_set_oplock_level() Negotiate and save preferred compression algorithms cifs: rename and clarify CIFS_ASYNC_OP and CIFS_NO_RESP cifs: fix credits leak for SMB1 oplock breaks smb3: Add protocol structs for change notify support cifs: fix smb3_zero_range for Azure cifs: zero-range does not require the file is sparse Add new flag on SMB3.1.1 read cifs: add fiemap support SMB3: Add defines for new negotiate contexts cifs: fix bi-directional fsctl passthrough calls cifs: smbd: take an array of reqeusts when sending upper layer data SMB3: Add handling for different FSCTL access flags cifs: Add support for FSCTL passthrough that write data to the server cifs: remove superfluous inode_lock in cifs_{strict_}fsync cifs: Call MID callback before destroying transport cifs: smbd: Retry on memory registration failure cifs: smbd: Indicate to retry on transport sending failure ... commit 15273ffd7efdf6e9f21c4e4beef6539229167343 Author: Rob Clark Date: Wed May 8 06:06:52 2019 -0700 drm/msm/a6xx: No zap shader is not an error Depending on platform firmware, a zap shader may not be required to take the GPU out of secure mode on boot, in which case we can just write RBBM_SECVID_TRUST_CNTL directly. Which we *mostly* handled, but missed clearing 'ret' resulting that hw_init() returned an error on these devices. Fixes: abccb9fe3267 ("drm/msm/a6xx: Add zap shader load") Acked-by: Jordan Crouse Reviewed-by: Sean Paul Signed-off-by: Rob Clark Signed-off-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190508130726.27557-1-robdclark@gmail.com commit 8c79f4cd441b27df6cadd11b70a50e06b3b3a2bf Merge: 2646719a48c2 d9defe448f4c Author: Linus Torvalds Date: Wed May 8 12:42:50 2019 -0700 Merge tag 'docs-5.2' of git://git.lwn.net/linux Pull documentation updates from Jonathan Corbet: "A reasonably busy cycle for docs, including: - Lots of work on the Chinese and Italian translations - Some license-rules clarifications from Christoph - Various build-script fixes - A new document on memory models - RST conversion of the live-patching docs - The usual collection of typo fixes and corrections" * tag 'docs-5.2' of git://git.lwn.net/linux: (140 commits) docs/livepatch: Unify style of livepatch documentation in the ReST format docs: livepatch: convert docs to ReST and rename to *.rst scripts/documentation-file-ref-check: detect broken :doc:`foo` scripts/documentation-file-ref-check: don't parse Next/ dir LICENSES: Rename other to deprecated LICENSES: Clearly mark dual license only licenses docs: Don't reference the ZLib license in license-rules.rst docs/vm: Minor editorial changes in the THP and hugetlbfs docs/vm: add documentation of memory models doc:it_IT: translation alignment doc: fix typo in PGP guide dontdiff: update with Kconfig build artifacts docs/zh_CN: fix typos in 1.Intro.rst file docs/zh_CN: redirect CoC docs to Chinese version doc: mm: migration doesn't use FOLL_SPLIT anymore docs: doc-guide: remove the extension from .rst files doc: kselftest: Fix KBUILD_OUTPUT usage instructions docs: trace: fix some Sphinx warnings docs: speculation.txt: mark example blocks as such docs: ntb.txt: add blank lines to clean up some Sphinx warnings ... commit 2646719a48c21ba0cae82a3f57382a9573fd8400 Merge: 019d7316ea84 7fb1fc420f3b Author: Linus Torvalds Date: Wed May 8 12:25:12 2019 -0700 Merge tag 'kbuild-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild Pull Kbuild updates from Masahiro Yamada: - allow users to invoke 'make' out of the source tree - refactor scripts/mkmakefile - deprecate KBUILD_SRC, which was used to track the source tree location for O= build. - fix recordmcount.pl in case objdump output is localized - turn unresolved symbols in external modules to errors from warnings by default; pass KBUILD_MODPOST_WARN=1 to get them back to warnings - generate modules.builtin.modinfo to collect .modinfo data from built-in modules - misc Makefile cleanups * tag 'kbuild-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (21 commits) .gitignore: add more all*.config patterns moduleparam: Save information about built-in modules in separate file Remove MODULE_ALIAS() calls that take undefined macro .gitignore: add leading and trailing slashes to generated directories scripts/tags.sh: fix direct execution of scripts/tags.sh scripts: override locale from environment when running recordmcount.pl samples: kobject: allow CONFIG_SAMPLE_KOBJECT to become y samples: seccomp: turn CONFIG_SAMPLE_SECCOMP into a bool option kbuild: move Documentation to vmlinux-alldirs kbuild: move samples/ to KBUILD_VMLINUX_OBJS modpost: make KBUILD_MODPOST_WARN also configurable for external modules kbuild: check arch/$(SRCARCH)/include/generated before out-of-tree build kbuild: remove unneeded dependency for include/config/kernel.release memory: squash drivers/memory/Makefile.asm-offsets kbuild: use $(srctree) instead of KBUILD_SRC to check out-of-tree build kbuild: mkmakefile: generate a simple wrapper of top Makefile kbuild: mkmakefile: do not check the generated Makefile marker kbuild: allow Kbuild to start from any directory kbuild: pass $(MAKECMDGOALS) to sub-make as is kbuild: fix warning "overriding recipe for target 'Makefile'" ... commit 019d7316ea84b7d8a8bcb9f2036aa4917a32986a Merge: ce45327ca044 582e84f7b779 Author: Linus Torvalds Date: Wed May 8 12:18:44 2019 -0700 Merge tag 'nolibc-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wtarreau/nolibc Pull RISC-V nolibc header update from Willy Tarreau: "This single commit adds support for the RISCV architecture to the nolibc header file. Currently the file is only used by rcutorture but Pranith Kumar who contributed it would like to have this work merged. I only did some trivial tests to verify that it does not break x86, which I consider sufficient since all the code is cleanly enclosed inside a single #if/endif block" * tag 'nolibc-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/wtarreau/nolibc: tool headers nolibc: add RISCV support commit 198790d9a3aeaef5792d33a560020861126edc22 Author: John Sperbeck Date: Tue May 7 18:43:20 2019 -0700 percpu: remove spurious lock dependency between percpu and sched In free_percpu() we sometimes call pcpu_schedule_balance_work() to queue a work item (which does a wakeup) while holding pcpu_lock. This creates an unnecessary lock dependency between pcpu_lock and the scheduler's pi_lock. There are other places where we call pcpu_schedule_balance_work() without hold pcpu_lock, and this case doesn't need to be different. Moving the call outside the lock prevents the following lockdep splat when running tools/testing/selftests/bpf/{test_maps,test_progs} in sequence with lockdep enabled: ====================================================== WARNING: possible circular locking dependency detected 5.1.0-dbg-DEV #1 Not tainted ------------------------------------------------------ kworker/23:255/18872 is trying to acquire lock: 000000000bc79290 (&(&pool->lock)->rlock){-.-.}, at: __queue_work+0xb2/0x520 but task is already holding lock: 00000000e3e7a6aa (pcpu_lock){..-.}, at: free_percpu+0x36/0x260 which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #4 (pcpu_lock){..-.}: lock_acquire+0x9e/0x180 _raw_spin_lock_irqsave+0x3a/0x50 pcpu_alloc+0xfa/0x780 __alloc_percpu_gfp+0x12/0x20 alloc_htab_elem+0x184/0x2b0 __htab_percpu_map_update_elem+0x252/0x290 bpf_percpu_hash_update+0x7c/0x130 __do_sys_bpf+0x1912/0x1be0 __x64_sys_bpf+0x1a/0x20 do_syscall_64+0x59/0x400 entry_SYSCALL_64_after_hwframe+0x49/0xbe -> #3 (&htab->buckets[i].lock){....}: lock_acquire+0x9e/0x180 _raw_spin_lock_irqsave+0x3a/0x50 htab_map_update_elem+0x1af/0x3a0 -> #2 (&rq->lock){-.-.}: lock_acquire+0x9e/0x180 _raw_spin_lock+0x2f/0x40 task_fork_fair+0x37/0x160 sched_fork+0x211/0x310 copy_process.part.43+0x7b1/0x2160 _do_fork+0xda/0x6b0 kernel_thread+0x29/0x30 rest_init+0x22/0x260 arch_call_rest_init+0xe/0x10 start_kernel+0x4fd/0x520 x86_64_start_reservations+0x24/0x26 x86_64_start_kernel+0x6f/0x72 secondary_startup_64+0xa4/0xb0 -> #1 (&p->pi_lock){-.-.}: lock_acquire+0x9e/0x180 _raw_spin_lock_irqsave+0x3a/0x50 try_to_wake_up+0x41/0x600 wake_up_process+0x15/0x20 create_worker+0x16b/0x1e0 workqueue_init+0x279/0x2ee kernel_init_freeable+0xf7/0x288 kernel_init+0xf/0x180 ret_from_fork+0x24/0x30 -> #0 (&(&pool->lock)->rlock){-.-.}: __lock_acquire+0x101f/0x12a0 lock_acquire+0x9e/0x180 _raw_spin_lock+0x2f/0x40 __queue_work+0xb2/0x520 queue_work_on+0x38/0x80 free_percpu+0x221/0x260 pcpu_freelist_destroy+0x11/0x20 stack_map_free+0x2a/0x40 bpf_map_free_deferred+0x3c/0x50 process_one_work+0x1f7/0x580 worker_thread+0x54/0x410 kthread+0x10f/0x150 ret_from_fork+0x24/0x30 other info that might help us debug this: Chain exists of: &(&pool->lock)->rlock --> &htab->buckets[i].lock --> pcpu_lock Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(pcpu_lock); lock(&htab->buckets[i].lock); lock(pcpu_lock); lock(&(&pool->lock)->rlock); *** DEADLOCK *** 3 locks held by kworker/23:255/18872: #0: 00000000b36a6e16 ((wq_completion)events){+.+.}, at: process_one_work+0x17a/0x580 #1: 00000000dfd966f0 ((work_completion)(&map->work)){+.+.}, at: process_one_work+0x17a/0x580 #2: 00000000e3e7a6aa (pcpu_lock){..-.}, at: free_percpu+0x36/0x260 stack backtrace: CPU: 23 PID: 18872 Comm: kworker/23:255 Not tainted 5.1.0-dbg-DEV #1 Hardware name: ... Workqueue: events bpf_map_free_deferred Call Trace: dump_stack+0x67/0x95 print_circular_bug.isra.38+0x1c6/0x220 check_prev_add.constprop.50+0x9f6/0xd20 __lock_acquire+0x101f/0x12a0 lock_acquire+0x9e/0x180 _raw_spin_lock+0x2f/0x40 __queue_work+0xb2/0x520 queue_work_on+0x38/0x80 free_percpu+0x221/0x260 pcpu_freelist_destroy+0x11/0x20 stack_map_free+0x2a/0x40 bpf_map_free_deferred+0x3c/0x50 process_one_work+0x1f7/0x580 worker_thread+0x54/0x410 kthread+0x10f/0x150 ret_from_fork+0x24/0x30 Signed-off-by: John Sperbeck Signed-off-by: Dennis Zhou commit ce45327ca044415a5832dacfb76cdcfb747e3240 Merge: e7a1414f9dc3 a691f3334d58 Author: Linus Torvalds Date: Wed May 8 11:41:08 2019 -0700 Merge tag 'csky-for-linus-5.2-rc1' of git://github.com/c-sky/csky-linux Pull arch/csky updates from Guo Ren: - Fixup vdsp&fpu issues in kernel - Add dynamic function tracer - Use in_syscall & forget_syscall instead of r11_sig - Reconstruct signal processing - Support dynamic start physical address - Fixup wrong update_mmu_cache implementation - Support vmlinux bootup with MMU off - Use va_pa_offset instead of phys_offset - Fixup syscall_trace return processing flow - Add perf callchain support - Add perf_arch_fetch_caller_regs support - Add page fault perf event support - Add support for perf registers sampling * tag 'csky-for-linus-5.2-rc1' of git://github.com/c-sky/csky-linux: csky/syscall_trace: Fixup return processing flow csky: Fixup compile warning csky: Add support for perf registers sampling csky: add page fault perf event support csky: Use va_pa_offset instead of phys_offset csky: Support vmlinux bootup with MMU off csky: Add perf_arch_fetch_caller_regs support csky: Fixup wrong update_mmu_cache implementation csky: Support dynamic start physical address csky: Reconstruct signal processing csky: Use in_syscall & forget_syscall instead of r11_sig csky: Add non-uapi asm/ptrace.h namespace csky: mm/fault.c: Remove duplicate header csky: remove redundant generic-y csky: Update syscall_trace_enter/exit implementation csky: Add perf callchain support csky/ftrace: Add dynamic function tracer (include graph tracer) csky: Fixup vdsp&fpu issues in kernel commit e7a1414f9dc3498c4c35b9ca266d539e8bccab53 Merge: 85c1a2549483 0d672fffb447 Author: Linus Torvalds Date: Wed May 8 11:13:17 2019 -0700 Merge tag 'media/v5.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media Pull media updates from Mauro Carvalho Chehab: - remove the deprecated Zoran driver from staging - new I2C driver: ST MIPID02 CSI-2 camera bridge - new platform driver: Amlogic Meson AO CEC G12A Controller - add support for USB audio via the media controller - au0828 driver is now supported via the media controller on both on media and on usbaudio - new kernel test for the media device allocator - add support for stateless decoder at vicodec driver - lots of other driver improvements fixes and cleanups * tag 'media/v5.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (218 commits) media: dt-bindings: aspeed-video: Add missing memory-region property media: platform: Aspeed: Make reserved memory optional media: platform: Aspeed: Remove use of reset line media: stm32-dcmi: return appropriate error codes during probe media: vsp1: Add support for missing 16-bit RGB555 formats media: vsp1: Add support for missing 16-bit RGB444 formats media: vsp1: Add support for missing 32-bit RGB formats media: v4l: Add definitions for missing 16-bit RGB555 formats media: v4l: Add definitions for missing 16-bit RGB4444 formats media: v4l: Add definitions for missing 32-bit RGB formats media: zoran: remove deprecated driver media: MAINTAINERS: Update AO CEC with ao-cec-g12a driver media: platform: meson: Add Amlogic Meson G12A AO CEC Controller driver media: dt-bindings: media: meson-ao-cec: Add G12A AO-CEC-B Compatible media: cros-ec-cec: decrement HDMI device refcount media: seco-cec: decrement HDMI device refcount media: tegra_cec: use new cec_notifier_parse_hdmi_phandle helper media: stih_cec: use new cec_notifier_parse_hdmi_phandle helper media: s5p_cec: use new cec_notifier_parse_hdmi_phandle helper media: meson: ao-cec: use new cec_notifier_parse_hdmi_phandle helper ... commit 1199fa8c0ddd34dae6d72b653b27dfb3554e9b57 Author: Hans Verkuil Date: Wed Apr 24 06:09:54 2019 -0400 media: tegra-cec: fix cec_notifier_parse_hdmi_phandle return check cec_notifier_parse_hdmi_phandle returns an error pointer, not a NULL pointer on error. Fixes: 4d34c9267db7: ("media: tegra_cec: use new cec_notifier_parse_hdmi_phandle helper") Signed-off-by: Hans Verkuil Reported-by: Dan Carpenter Signed-off-by: Mauro Carvalho Chehab commit b72845ee5577b227131b1fef23f9d9a296621d7b Author: Dan Carpenter Date: Wed Apr 24 05:46:27 2019 -0400 media: davinci/vpbe: array underflow in vpbe_enum_outputs() In vpbe_enum_outputs() we check if (temp_index >= cfg->num_outputs) but the problem is that "temp_index" can be negative. This patch changes the types to unsigned to address this array underflow bug. Fixes: 66715cdc3224 ("[media] davinci vpbe: VPBE display driver") Signed-off-by: Dan Carpenter Acked-by: "Lad, Prabhakar" Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 823a633eeb7775171cbb9f423401316504745dc7 Author: Hans Verkuil Date: Tue Apr 23 10:05:09 2019 -0400 media: field-order.rst: clarify FIELD_ANY and FIELD_NONE Rephrased the FIELD_ANY description: rather than explicitly list field values, just say 'when any field format is acceptable'. The list of FIELD values was outdated, so it was a bit confusing. The FIELD_NONE description said that 'The driver may also indicate this order when it cannot distinguish between V4L2_FIELD_TOP and V4L2_FIELD_BOTTOM'. This is false, NONE really means a full frame and userspace depends on that. So drop this line completely. There are no drivers that do this anyway. FIELD_TOP/BOTTOM/ALTERNATE indicate that the number of lines in the buffer are that of a field, not frame, so returning NONE here would cause huge problems. Finally attempt to clarify 'progressive' and 'interlaced' a little bit. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 16204b8a1c1af77725533b77936e6c73953486ae Author: Rui Miguel Silva Date: Fri Apr 12 12:44:00 2019 -0400 media: staging/imx: add media device to capture register When register the capture media device it is assumed that the device data is the media device. In the imx6 case is but in the imx7 is not case. The device data is the csi structure. Add the explicit argument of the media device that we want to associate with the capture device. Reported-by: Laurent Pinchart Signed-off-by: Rui Miguel Silva Acked-by: Steve Longerbeam Signed-off-by: Hans Verkuil [hverkuil-cisco@xs4all.nl: fix checkpatch alignment warning] Signed-off-by: Mauro Carvalho Chehab commit 9f7983bdc4925ae2c241ae3bf29b7a802055d069 Author: Niklas Söderlund Date: Thu Apr 11 16:34:44 2019 -0400 media: rcar-csi2: Propagate the FLD signal for NTSC and PAL Depending on which video standard is used the driver needs to setup the hardware to correctly handle fields. If stream is identified as NTSC or PAL setup field detection and propagate the field detection signal. Later versions of the datasheet have been updated to make it clear that FLD register should be set to 0 when dealing with non-interlaced field formats. Signed-off-by: Niklas Söderlund Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 4ab44ff0841b9a825f9875623d24809d29e37a10 Author: Niklas Söderlund Date: Thu Apr 11 16:30:58 2019 -0400 media: rcar-csi2: restart CSI-2 link if error is detected Restart the CSI-2 link if the CSI-2 receiver detects an error during reception. The driver did nothing when a link error happened and the data flow simply stopped without the user knowing why. Change the driver to try and recover from errors by restarting the link and informing the user that something is not right. For obvious reasons it's not possible to recover from all errors (video source disconnected for example) but in such cases the user is at least informed of the error and the same behavior of the stopped data flow is retained. Signed-off-by: Niklas Söderlund Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit dd6e2a981bfe83aa4a493143fd8cf1edcda6c091 Author: Dan Carpenter Date: Thu Apr 11 05:01:57 2019 -0400 media: omap_vout: potential buffer overflow in vidioc_dqbuf() The "b->index" is a u32 the comes from the user in the ioctl. It hasn't been checked. We aren't supposed to use it but we're instead supposed to use the value that gets written to it when we call videobuf_dqbuf(). The videobuf_dqbuf() first memsets it to zero and then re-initializes it inside the videobuf_status() function. It's this final value which we want. Hans Verkuil pointed out that we need to check the return from videobuf_dqbuf(). I ended up doing a little cleanup related to that as well. Fixes: 72915e851da9 ("[media] V4L2: OMAP: VOUT: dma map and unmap v4l2 buffers in qbuf and dqbuf") Signed-off-by: Dan Carpenter Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 583958cba72ffd092e9e3c8a8a284cb154c34b1c Author: Philipp Zabel Date: Fri Apr 12 11:51:35 2019 -0400 media: coda: fix unset field and fail on invalid field in buf_prepare v4l2-compliance likes to queue a buffer with field set to V4L2_FIELD_ANY and expects it to be returned corrected to a valid field. Follow vicodec in handling this in the buf_prepare callback. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 1e4e25c4959c10728fbfcc6a286f9503d32dfe02 Author: Eugen Hristev Date: Fri Apr 12 06:19:49 2019 -0400 media: atmel: atmel-isc: fix asd memory allocation The subsystem will free the asd memory on notifier cleanup, if the asd is added to the notifier. However the memory is freed using kfree. Thus, we cannot allocate the asd using devm_* This can lead to crashes and problems. To test this issue, just return an error at probe, but cleanup the notifier beforehand. Fixes: 106267444f ("[media] atmel-isc: add the Image Sensor Controller code") Signed-off-by: Eugen Hristev Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 79199002db5c571e335131856b3ff057ffd9f3c0 Author: Eugen Hristev Date: Fri Apr 12 06:19:46 2019 -0400 media: atmel: atmel-isc: fix INIT_WORK misplacement In case the completion function failes, unbind will be called which will call cancel_work for awb_work. This will trigger a WARN message from the workqueue. To avoid this, move the INIT_WORK call at the start of the completion function. This way the work is always initialized, which corresponds to the 'always canceled' unbind code. Fixes: 93d4a26c3d ("[media] atmel-isc: add the isc pipeline function") Signed-off-by: Eugen Hristev Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 253ccf34232ae3b47497e5e55aef3ac48821425c Author: Eugen Hristev Date: Fri Apr 12 06:19:40 2019 -0400 media: atmel: atmel-isc: limit incoming pixels per frame This will limit the incoming pixels per frame from the sensor. Currently, the ISC will stop sampling the frame only when the vsync/hsync are detected. If we misconfigure the resolution in the sensor w.r.t. resolution in the ISC, the buffer used for DMA in the ISC will be smaller than the number of pixels that the ISC DMA engine will copy. In this case it happens that the DMA will overwrite parts of the memory which should not be written, leading to memory corruption. To avoid this situation, use the PFE CFG1 and PFE CFG2 registers, which crop the incoming frame to the resolution that we configure. This way the DMA engine will never write more data than we expect it to. Signed-off-by: Eugen Hristev Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 482714932ecee063884b5d0ceddadbfafe89ae2b Author: Mikulas Patocka Date: Mon Apr 29 14:57:26 2019 +0200 dm integrity: implement synchronous mode for reboot handling Unfortunatelly, there may be bios coming even after the reboot notifier was called. We don't want these bios to make the bitmap dirty again. To address this, implement a synchronous mode - when a bio is about to be terminated, we clean the bitmap and terminate the bio after the clean operation succeeds. This obviously slows down bio processing, but it makes sure that when all bios are finished, the bitmap will be clean. Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer commit 1f5a77591b13a302b60db0dcda57940f3e5d5214 Author: Mikulas Patocka Date: Mon Apr 29 14:57:25 2019 +0200 dm integrity: handle machine reboot in bitmap mode When in bitmap mode the bitmap must be cleared when rebooting. This commit adds the reboot hook. Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer commit 468dfca38b1a6fbdccd195d875599cb7c8875cd9 Author: Mikulas Patocka Date: Mon Apr 29 14:57:24 2019 +0200 dm integrity: add a bitmap mode Introduce an alternate mode of operation where dm-integrity uses a bitmap instead of a journal. If a bit in the bitmap is 1, the corresponding region's data and integrity tags are not synchronized - if the machine crashes, the unsynchronized regions will be recalculated. The bitmap mode is faster than the journal mode, because we don't have to write the data twice, but it is also less reliable, because if data corruption happens when the machine crashes, it may not be detected. Benchmark results for an SSD connected to a SATA300 port, when doing large linear writes with dd: buffered I/O: raw device throughput - 245MB/s dm-integrity with journaling - 120MB/s dm-integrity with bitmap - 238MB/s direct I/O with 1MB block size: raw device throughput - 248MB/s dm-integrity with journaling - 123MB/s dm-integrity with bitmap - 223MB/s For more info see dm-integrity in Documentation/device-mapper/ Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer commit 15c80c1659f27364734a3938b04d1c67479aa11c Author: Cornelia Huck Date: Wed May 8 18:06:32 2019 +0200 vfio: Add Cornelia Huck as reviewer I'm trying to look at vfio patches, and it's easier if I'm cc:ed. Signed-off-by: Cornelia Huck Signed-off-by: Alex Williamson commit 8b3bbd490d880db1377c71daf9c929c8446c8375 Author: Mikulas Patocka Date: Mon Apr 29 14:57:22 2019 +0200 dm integrity: introduce a function add_new_range_and_wait() Introduce a function add_new_range_and_wait() in order to avoid repetitive code. It will be used in the following commit. Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer commit 85c1a25494837ff33fdfebe98b2e4cf5b0c78475 Merge: fe460a6df6a8 ed6c3a6d8996 Author: Linus Torvalds Date: Wed May 8 10:34:17 2019 -0700 Merge tag 'for-linus-5.2' of git://github.com/cminyard/linux-ipmi Pull IPMI updates from Corey Minyard: "Some minor cleanups for the IPMI driver" * tag 'for-linus-5.2' of git://github.com/cminyard/linux-ipmi: ipmi: Remove warning if no slave address is present ipmi:ssif: Only unregister the platform driver if it was registered ipmi:ssif: compare block number correctly for multi-part return messages ipmi: Add the i2c-addr property for SSIF interfaces char/ipmi: fix spelling mistake "receieved_messages" -> "received_messages" ipmi: avoid atomic_inc in exit function ipmi: Remove file from ipmi_file_private ipmi_si: remove an unused variable in try_smi_init() ipmi: Make ipmi_interfaces_srcu variable static commit fe460a6df6a8427d4ce7c731a0de43b6e10e9f6b Merge: d1cd7c85f9e2 e0e31695b53b Author: Linus Torvalds Date: Wed May 8 10:23:54 2019 -0700 Merge tag 'pinctrl-v5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl Pull pin control updates from Linus Walleij: "It is pretty calm and chill in pin control for the moment. Just incremental development. There is an odd patch to the Super-H architecture, it's coming from the maintainers so should be fine. Summary: New drivers: - Bitmain BM1880 pin controller - Mediatek MT8516 - Cirrus Logich Lochnagar PMIC pins Updates: - Incremental development on Renesas SH-PFC - Incremental development on Intel pin controller and some particular updates for Cedarfork. - Pin configuration support in Allwinner SunXi drivers - Suspend/resume support in the NXP/Freescale i.MX8MQ driver - Support for more packaging of the ST Micro STM32" * tag 'pinctrl-v5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (72 commits) pinctrl: mcp23s08: Do not complain about unsupported params pinctrl: Rework Kconfig dependency for BM1880 pinctrl driver MAINTAINERS: Add entry for BM1880 pinctrl pinctrl: Add pinctrl support for BM1880 SoC dt-bindings: pinctrl: Add BM1880 pinctrl binding pinctrl: stm32: check irq controller availability at probe pinctrl: mediatek: Add MT8516 Pinctrl driver pinctrl: zte: fix leaked of_node references pinctrl: intel: Increase readability of intel_gpio_update_pad_mode() pinctrl: intel: Retain HOSTSW_OWN for requested gpio pin pinctrl: pistachio: fix leaked of_node references pinctrl: sunxi: Support I/O bias voltage setting on H6 pinctrl: sunxi: Prepare for alternative bias voltage setting methods pinctrl: st: fix leaked of_node references pinctrl: samsung: fix leaked of_node references pinctrl: stm32: align stm32mp157 pin names pinctrl: stm32: add package information for stm32mp157c pinctrl: stm32: introduce package support dt-bindings: pinctrl: stm32: add new entry for package information pinctrl: imx8mq: Add suspend/resume ops ... commit d1cd7c85f9e29740fddec6f25d8bf061937bf58d Merge: b3a5e648f591 d4023db71108 Author: Linus Torvalds Date: Wed May 8 10:12:46 2019 -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 mostly update of the usual drivers: qla2xxx, qedf, smartpqi, hpsa, lpfc, ufs, mpt3sas, ibmvfc and hisi_sas. Plus number of minor changes, spelling fixes and other trivia" * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (298 commits) scsi: qla2xxx: Avoid that lockdep complains about unsafe locking in tcm_qla2xxx_close_session() scsi: qla2xxx: Avoid that qlt_send_resp_ctio() corrupts memory scsi: qla2xxx: Fix hardirq-unsafe locking scsi: qla2xxx: Complain loudly about reference count underflow scsi: qla2xxx: Use __le64 instead of uint32_t[2] for sending DMA addresses to firmware scsi: qla2xxx: Introduce the dsd32 and dsd64 data structures scsi: qla2xxx: Check the size of firmware data structures at compile time scsi: qla2xxx: Pass little-endian values to the firmware scsi: qla2xxx: Fix race conditions in the code for aborting SCSI commands scsi: qla2xxx: Use an on-stack completion in qla24xx_control_vp() scsi: qla2xxx: Make qla24xx_async_abort_cmd() static scsi: qla2xxx: Remove unnecessary locking from the target code scsi: qla2xxx: Remove qla_tgt_cmd.released scsi: qla2xxx: Complain if a command is released that is owned by the firmware scsi: qla2xxx: target: Fix offline port handling and host reset handling scsi: qla2xxx: Fix abort handling in tcm_qla2xxx_write_pending() scsi: qla2xxx: Fix error handling in qlt_alloc_qfull_cmd() scsi: qla2xxx: Simplify qlt_send_term_imm_notif() scsi: qla2xxx: Fix use-after-free issues in qla2xxx_qpair_sp_free_dma() scsi: qla2xxx: Fix a qla24xx_enable_msix() error path ... commit eccd906484d1cd4b5da00f093d678badb6f48f28 Author: Brijesh Singh Date: Wed Apr 17 15:41:17 2019 +0000 x86/mm: Do not use set_{pud, pmd}_safe() when splitting a large page The commit 0a9fe8ca844d ("x86/mm: Validate kernel_physical_mapping_init() PTE population") triggers this warning in SEV guests: WARNING: CPU: 0 PID: 0 at arch/x86/include/asm/pgalloc.h:87 phys_pmd_init+0x30d/0x386 Call Trace: kernel_physical_mapping_init+0xce/0x259 early_set_memory_enc_dec+0x10f/0x160 kvm_smp_prepare_boot_cpu+0x71/0x9d start_kernel+0x1c9/0x50b secondary_startup_64+0xa4/0xb0 A SEV guest calls kernel_physical_mapping_init() to clear the encryption mask from an existing mapping. While doing so, it also splits large pages into smaller. To split a page, kernel_physical_mapping_init() allocates a new page and updates the existing entry. The set_{pud,pmd}_safe() helpers trigger a warning when updating an entry with a page in the present state. Add a new kernel_physical_mapping_change() helper which uses the non-safe variants of set_{pmd,pud,p4d}() and {pmd,pud,p4d}_populate() routines when updating the entry. Since kernel_physical_mapping_change() may replace an existing entry with a new entry, the caller is responsible to flush the TLB at the end. Change early_set_memory_enc_dec() to use kernel_physical_mapping_change() when it wants to clear the memory encryption mask from the page table entry. [ bp: - massage commit message. - flesh out comment according to dhansen's request. - align function arguments at opening brace. ] Fixes: 0a9fe8ca844d ("x86/mm: Validate kernel_physical_mapping_init() PTE population") Signed-off-by: Brijesh Singh Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Acked-by: Peter Zijlstra (Intel) Cc: Andy Lutomirski Cc: Dan Williams Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: "Kirill A . Shutemov" Cc: Thomas Gleixner Cc: Thomas Lendacky Cc: x86-ml Link: https://lkml.kernel.org/r/20190417154102.22613-1-brijesh.singh@amd.com commit b3a5e648f5917ea508ecab9a629028b186d38eae Merge: 132d68d37d33 45c054d0815b Author: Linus Torvalds Date: Wed May 8 10:07:28 2019 -0700 Merge tag 'tty-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty Pull tty/serial updates from Greg KH: "Here is the "big" set of tty/serial driver patches for 5.2-rc1. It's really pretty small, not much happening in this portion of the kernel at the moment. When the "highlight" is the movement of the documentation from .txt to .rst files, it's a good merge window. There's a number of small fixes and updates over the various serial drivers, and a new "tty null" driver for those embedded systems that like to make things even smaller and not break things. All of these have been in linux-next for a while with no reported issues" * tag 'tty-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (45 commits) tty: serial: add driver for the SiFive UART dt-bindings: serial: add documentation for the SiFive UART driver serial: uartps: Add support for cts-override dt-bindings: xilinx-uartps: Add support for cts-override serial: milbeaut_usio: Fix error handling in probe and remove tty: rocket: deprecate the rp_ioctl tty: rocket: Remove RCPK_GET_STRUCT ioctl tty: update obsolete termios comment tty: serial_core: fix error code returned by uart_register_driver() serial: 8250-mtk: modify baudrate setting serial: 8250-mtk: add follow control docs: serial: convert docs to ReST and rename to *.rst serial: 8250_exar: Adjust IOT2000 matching TTY: serial_core, add ->install serial: Fix using plain integer instead of Null pointer tty:serial_core: Spelling mistake tty: Add NULL TTY driver tty: vt: keyboard: Allow Unicode compose base char Revert "tty: fix NULL pointer issue when tty_port ops is not set" serial: Add Milbeaut serial control ... commit 132d68d37d33f1d0b9c1f507c8b4d64c27ecec8a Merge: 80f232121b69 3515468a87a4 Author: Linus Torvalds Date: Wed May 8 10:03:52 2019 -0700 Merge tag 'usb-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb Pull USB/PHY updates from Greg KH: "Here is the big set of USB and PHY driver patches for 5.2-rc1 There is the usual set of: - USB gadget updates - PHY driver updates and additions - USB serial driver updates and fixes - typec updates and new chips supported - mtu3 driver updates - xhci driver updates - other tiny driver updates Nothing really interesting, just constant forward progress. All of these have been in linux-next for a while with no reported issues. The usb-gadget and usb-serial trees were merged a bit "late", but both of them had been in linux-next before they got merged here last Friday" * tag 'usb-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (206 commits) USB: serial: f81232: implement break control USB: serial: f81232: add high baud rate support USB: serial: f81232: clear overrun flag USB: serial: f81232: fix interrupt worker not stop usb: dwc3: Rename DWC3_DCTL_LPM_ERRATA usb: dwc3: Fix default lpm_nyet_threshold value usb: dwc3: debug: Print GET_STATUS(device) tracepoint usb: dwc3: Do core validation early on probe usb: dwc3: gadget: Set lpm_capable usb: gadget: atmel: tie wake lock to running clock usb: gadget: atmel: support USB suspend usb: gadget: atmel_usba_udc: simplify setting of interrupt-enabled mask dwc2: gadget: Fix completed transfer size calculation in DDMA usb: dwc2: Set lpm mode parameters depend on HW configuration usb: dwc2: Fix channel disable flow usb: dwc2: Set actual frame number for completed ISOC transfer usb: gadget: do not use __constant_cpu_to_le16 usb: dwc2: gadget: Increase descriptors count for ISOC's usb: introduce usb_ep_type_string() function usb: dwc3: move synchronize_irq() out of the spinlock protected block ... commit 86dc59e39031fb0d366d5b1f92db015b24bef70b Author: Wang Hai Date: Wed May 8 21:43:26 2019 +0800 net: dsa: sja1105: Make 'sja1105et_regs' and 'sja1105pqrs_regs' static drivers/net/dsa/sja1105/sja1105_spi.c:486:21: warning: symbol 'sja1105et_regs' was not declared. Should it be static? drivers/net/dsa/sja1105/sja1105_spi.c:511:21: warning: symbol 'sja1105pqrs_regs' was not declared. Should it be static? Fixes: 8aa9ebccae87 ("net: dsa: Introduce driver for NXP SJA1105 5-port L2 switch") Reported-by: Hulk Robot Signed-off-by: Wang Hai Signed-off-by: David S. Miller commit c7e0d6cca86581092cbbf2cd868b3601495554cf Author: Paolo Abeni Date: Wed May 8 15:32:51 2019 +0200 selinux: do not report error on connect(AF_UNSPEC) calling connect(AF_UNSPEC) on an already connected TCP socket is an established way to disconnect() such socket. After commit 68741a8adab9 ("selinux: Fix ltp test connect-syscall failure") it no longer works and, in the above scenario connect() fails with EAFNOSUPPORT. Fix the above falling back to the generic/old code when the address family is not AF_INET{4,6}, but leave the SCTP code path untouched, as it has specific constraints. Fixes: 68741a8adab9 ("selinux: Fix ltp test connect-syscall failure") Reported-by: Tom Deseyn Signed-off-by: Paolo Abeni Reviewed-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller commit c264ed44d857c50f43be08572668afa374bf6a48 Author: Colin Ian King Date: Wed May 8 11:51:35 2019 +0100 net: hns3: remove redundant assignment of l2_hdr to itself The pointer l2_hdr is being assigned to itself, this is redundant and can be removed. Addresses-Coverity: ("Evaluation order violation") Signed-off-by: Colin Ian King Reviewed-by: Yunsheng Lin Signed-off-by: David S. Miller commit d6759172415ebd5daddb8d11f2d536a1235da063 Author: Colin Ian King Date: Wed May 8 11:22:09 2019 +0100 net: dsa: lantiq: fix spelling mistake "brigde" -> "bridge" There are several spelling mistakes in dev_err messages. Fix these. Signed-off-by: Colin Ian King Signed-off-by: David S. Miller commit f319ca6557c10a711facc4dd60197470796d3ec1 Author: Geert Uytterhoeven Date: Wed May 8 08:52:32 2019 +0200 openvswitch: Replace removed NF_NAT_NEEDED with IS_ENABLED(CONFIG_NF_NAT) Commit 4806e975729f99c7 ("netfilter: replace NF_NAT_NEEDED with IS_ENABLED(CONFIG_NF_NAT)") removed CONFIG_NF_NAT_NEEDED, but a new user popped up afterwards. Fixes: fec9c271b8f1bde1 ("openvswitch: load and reference the NAT helper.") Signed-off-by: Geert Uytterhoeven Acked-by: Florian Westphal Acked-by: Flavio Leitner Signed-off-by: David S. Miller commit 19e4e768064a87b073a4b4c138b55db70e0cfb9f Author: David Ahern Date: Tue May 7 20:44:59 2019 -0700 ipv4: Fix raw socket lookup for local traffic inet_iif should be used for the raw socket lookup. inet_iif considers rt_iif which handles the case of local traffic. As it stands, ping to a local address with the '-I ' option fails ever since ping was changed to use SO_BINDTODEVICE instead of cmsg + IP_PKTINFO. IPv6 works fine. Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Signed-off-by: David Ahern Signed-off-by: David S. Miller commit e9919a24d3022f72bcadc407e73a6ef17093a849 Author: Hangbin Liu Date: Tue May 7 17:11:18 2019 +0800 fib_rules: return 0 directly if an exactly same rule exists when NLM_F_EXCL not supplied With commit 153380ec4b9 ("fib_rules: Added NLM_F_EXCL support to fib_nl_newrule") we now able to check if a rule already exists. But this only works with iproute2. For other tools like libnl, NetworkManager, it still could add duplicate rules with only NLM_F_CREATE flag, like [localhost ~ ]# ip rule 0: from all lookup local 32766: from all lookup main 32767: from all lookup default 100000: from 192.168.7.5 lookup 5 100000: from 192.168.7.5 lookup 5 As it doesn't make sense to create two duplicate rules, let's just return 0 if the rule exists. Fixes: 153380ec4b9 ("fib_rules: Added NLM_F_EXCL support to fib_nl_newrule") Reported-by: Thomas Haller Signed-off-by: Hangbin Liu Signed-off-by: David S. Miller commit b9416997603ef7e17d4de10b6408f19da2feb72c Author: Srivatsa S. Bhat (VMware) Date: Mon Jan 28 17:55:53 2019 -0800 tracing: Fix documentation about disabling options using trace_options To disable a tracing option using the trace_options file, the option name needs to be prefixed with 'no', and not suffixed, as the README states. Fix it. Link: http://lkml.kernel.org/r/154872690031.47356.5739053380942044586.stgit@srivatsa-ubuntu Signed-off-by: Srivatsa S. Bhat (VMware) Signed-off-by: Steven Rostedt (VMware) commit 8623b00676f16ed8972008095deca2c8e2b97a37 Author: Gustavo A. R. Silva Date: Mon Jan 14 22:34:08 2019 -0600 tracing: Replace kzalloc with kcalloc Replace kzalloc() function with its 2-factor argument form, kcalloc(). This patch replaces cases of: kzalloc(a * b, gfp) with: kcalloc(a, b, gfp) This code was detected with the help of Coccinelle. Link: http://lkml.kernel.org/r/20190115043408.GA23456@embeddedor Signed-off-by: Gustavo A. R. Silva Signed-off-by: Steven Rostedt (VMware) commit cbe08bcbbe787315c425dde284dcb715cfbf3f39 Author: Elazar Leibovich Date: Mon Dec 31 13:58:37 2018 +0200 tracing: Fix partial reading of trace event's id file When reading only part of the id file, the ppos isn't tracked correctly. This is taken care by simple_read_from_buffer. Reading a single byte, and then the next byte would result EOF. While this seems like not a big deal, this breaks abstractions that reads information from files unbuffered. See for example https://github.com/golang/go/issues/29399 This code was mentioned as problematic in commit cd458ba9d5a5 ("tracing: Do not (ab)use trace_seq in event_id_read()") An example C code that show this bug is: #include #include #include #include #include #include int main(int argc, char **argv) { if (argc < 2) return 1; int fd = open(argv[1], O_RDONLY); char c; read(fd, &c, 1); printf("First %c\n", c); read(fd, &c, 1); printf("Second %c\n", c); } Then run with, e.g. sudo ./a.out /sys/kernel/debug/tracing/events/tcp/tcp_set_state/id You'll notice you're getting the first character twice, instead of the first two characters in the id file. Link: http://lkml.kernel.org/r/20181231115837.4932-1-elazar@lightbitslabs.com Cc: Orit Wasserman Cc: Oleg Nesterov Cc: Ingo Molnar Cc: stable@vger.kernel.org Fixes: 23725aeeab10b ("ftrace: provide an id file for each event") Signed-off-by: Elazar Leibovich Signed-off-by: Steven Rostedt (VMware) commit 6fc2171c5c03672bae71d04a0f5fa88cc9c3b4e2 Author: Anders Roxell Date: Fri Nov 30 15:56:22 2018 +0100 tracing: Allow RCU to run between postponed startup tests When building a allmodconfig kernel for arm64 and boot that in qemu, CONFIG_FTRACE_STARTUP_TEST gets enabled and that takes time so the watchdog expires and prints out a message like this: 'watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [swapper/0:1]' Depending on what the what test gets called from init_trace_selftests() it stays minutes in the loop. Rework so that function cond_resched() gets called in the init_trace_selftests loop. Link: http://lkml.kernel.org/r/20181130145622.26334-1-anders.roxell@linaro.org Co-developed-by: Arnd Bergmann Signed-off-by: Arnd Bergmann Signed-off-by: Anders Roxell Signed-off-by: Steven Rostedt (VMware) commit bfcd631eb6de474d8e097fd0f9f840fdf7272a1d Author: Colin Ian King Date: Fri Nov 9 13:23:12 2018 +0000 tracing: Fix white space issues in parse_pred() function Trivial fix to clean up an indentation issue, a whole chunk of code has an extra space in the indentation. Link: http://lkml.kernel.org/r/20181109132312.20994-1-colin.king@canonical.com Signed-off-by: Colin Ian King Signed-off-by: Steven Rostedt (VMware) commit 0f5e5a3ab7fa1c09370a4d709ad6157457d5b8b6 Author: Rasmus Villemoes Date: Wed Mar 20 09:17:57 2019 +0100 tracing: Eliminate const char[] auto variables Automatic const char[] variables cause unnecessary code generation. For example, the this_mod variable leads to 3f04: 48 b8 5f 5f 74 68 69 73 5f 6d movabs $0x6d5f736968745f5f,%rax # __this_m 3f0e: 4c 8d 44 24 02 lea 0x2(%rsp),%r8 3f13: 48 8d 7c 24 10 lea 0x10(%rsp),%rdi 3f18: 48 89 44 24 02 mov %rax,0x2(%rsp) 3f1d: 4c 89 e9 mov %r13,%rcx 3f20: b8 65 00 00 00 mov $0x65,%eax # e 3f25: 48 c7 c2 00 00 00 00 mov $0x0,%rdx 3f28: R_X86_64_32S .rodata.str1.1+0x18d 3f2c: be 48 00 00 00 mov $0x48,%esi 3f31: c7 44 24 0a 6f 64 75 6c movl $0x6c75646f,0xa(%rsp) # odul 3f39: 66 89 44 24 0e mov %ax,0xe(%rsp) i.e., the string gets built on the stack at runtime. Similar code can be found for the other instances I'm replacing here. Putting the string in .rodata reduces the combined .text+.rodata size and saves time and stack space at runtime. The simplest fix, and what I've done for the this_mod case, is to just make the variable static. However, for the "" case where the same string is used twice, that prevents the linker from merging those two literals, so instead use a macro - that also keeps the two instances automatically in sync (instead of only the compile-time strlen expression). Finally, for the two runs of spaces, it turns out that the "build these strings on the stack" is not the worst part of what gcc does - it turns print_func_help_header_irq() into "if (tgid) { /* print_event_info + five seq_printf calls */ } else { /* print event_info + another five seq_printf */}". Taking inspiration from a suggestion from Al Viro, use %.*s to make snprintf either stop after the first two spaces or print the whole string. As a bonus, the seq_printfs now fit on single lines (at least, they are not longer than the existing ones in the function just above), making it easier to see that the ascii art lines up. x86-64 defconfig + CONFIG_FUNCTION_TRACER: $ scripts/stackdelta /tmp/stackusage.{0,1} ./kernel/trace/ftrace.c ftrace_mod_callback 152 136 -16 ./kernel/trace/trace.c trace_default_header 56 32 -24 ./kernel/trace/trace.c tracing_mark_raw_write 96 72 -24 ./kernel/trace/trace.c tracing_mark_write 104 80 -24 bloat-o-meter add/remove: 1/0 grow/shrink: 0/4 up/down: 14/-375 (-361) Function old new delta this_mod - 14 +14 ftrace_mod_callback 577 542 -35 tracing_mark_raw_write 444 374 -70 tracing_mark_write 616 540 -76 trace_default_header 600 406 -194 Link: http://lkml.kernel.org/r/20190320081757.6037-1-linux@rasmusvillemoes.dk Signed-off-by: Rasmus Villemoes Signed-off-by: Steven Rostedt (VMware) commit 5c173bedb24dfcc8e412d3c3f111c504e4408dd5 Author: Yangtao Li Date: Thu Nov 1 11:46:40 2018 -0400 ring-buffer: Fix mispelling of Calculate It's not "Caculate". Link: http://lkml.kernel.org/r/20181101154640.23162-1-tiny.windzz@gmail.com Signed-off-by: Yangtao Li Signed-off-by: Steven Rostedt (VMware) commit 3dd1f7f24f8ceec00bbbc364c2ac3c893f0fdc4c Author: Masami Hiramatsu Date: Tue May 7 22:56:02 2019 +0900 tracing: probeevent: Fix to make the type of $comm string Fix to make the type of $comm "string". If we set the other type to $comm argument, it shows meaningless value or wrong data. Currently probe events allow us to set string array type (e.g. ":string[2]"), or other digit types like x8 on $comm. But since clearly $comm is just a string data, it should not be fetched by other types including array. Link: http://lkml.kernel.org/r/155723736241.9149.14582064184468574539.stgit@devnote2 Cc: Andreas Ziegler Cc: Ingo Molnar Cc: stable@vger.kernel.org Fixes: 533059281ee5 ("tracing: probeevent: Introduce new argument fetching code") Signed-off-by: Masami Hiramatsu Signed-off-by: Steven Rostedt (VMware) commit 489fe0096b19b664b8f3bed0fd604d617a229b5a Author: Masami Hiramatsu Date: Tue May 7 22:55:52 2019 +0900 tracing: probeevent: Do not accumulate on ret variable Do not accumulate strlen result on "ret" local variable, because it is accumulated on "total" local variable for array case. Link: http://lkml.kernel.org/r/155723735237.9149.3192150444705457531.stgit@devnote2 Fixes: 40b53b771806 ("tracing: probeevent: Add array type support") Signed-off-by: Masami Hiramatsu Signed-off-by: Steven Rostedt (VMware) commit 4dd537aca25dd2e0e8aca8b8923930cbe6240003 Author: Masami Hiramatsu Date: Tue May 7 22:55:41 2019 +0900 tracing: uprobes: Re-enable $comm support for uprobe events Since commit 533059281ee5 ("tracing: probeevent: Introduce new argument fetching code") dropped the $comm support from uprobe events, this re-enables it. For $comm support, uses strlcpy() instead of strncpy_from_user() to copy current task's comm. Because it is in the kernel space, strncpy_from_user() always fails to copy the comm. This also uses strlen() instead of strnlen_user() to measure the length of the comm. Note that this uses -ECOMM as a token value to fetch the comm string. If the user-space pointer points -ECOMM, it will be translated to task->comm. Link: http://lkml.kernel.org/r/155723734162.9149.4042756162201097965.stgit@devnote2 Fixes: 533059281ee5 ("tracing: probeevent: Introduce new argument fetching code") Reported-by: Andreas Ziegler Acked-by: Andreas Ziegler Signed-off-by: Masami Hiramatsu Signed-off-by: Steven Rostedt (VMware) commit 9e298e8604088a600d8100a111a532a9d342af09 Author: Peter Zijlstra Date: Wed May 1 15:11:17 2019 +0200 ftrace/x86_64: Emulate call function while updating in breakpoint handler Nicolai Stange discovered[1] that if live kernel patching is enabled, and the function tracer started tracing the same function that was patched, the conversion of the fentry call site during the translation of going from calling the live kernel patch trampoline to the iterator trampoline, would have as slight window where it didn't call anything. As live kernel patching depends on ftrace to always call its code (to prevent the function being traced from being called, as it will redirect it). This small window would allow the old buggy function to be called, and this can cause undesirable results. Nicolai submitted new patches[2] but these were controversial. As this is similar to the static call emulation issues that came up a while ago[3]. But after some debate[4][5] adding a gap in the stack when entering the breakpoint handler allows for pushing the return address onto the stack to easily emulate a call. [1] http://lkml.kernel.org/r/20180726104029.7736-1-nstange@suse.de [2] http://lkml.kernel.org/r/20190427100639.15074-1-nstange@suse.de [3] http://lkml.kernel.org/r/3cf04e113d71c9f8e4be95fb84a510f085aa4afa.1541711457.git.jpoimboe@redhat.com [4] http://lkml.kernel.org/r/CAHk-=wh5OpheSU8Em_Q3Hg8qw_JtoijxOdPtHru6d+5K8TWM=A@mail.gmail.com [5] http://lkml.kernel.org/r/CAHk-=wjvQxY4DvPrJ6haPgAa6b906h=MwZXO6G8OtiTGe=N7_w@mail.gmail.com [ Live kernel patching is not implemented on x86_32, thus the emulate calls are only for x86_64. ] Cc: Andy Lutomirski Cc: Nicolai Stange Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Borislav Petkov Cc: "H. Peter Anvin" Cc: the arch/x86 maintainers Cc: Josh Poimboeuf Cc: Jiri Kosina Cc: Miroslav Benes Cc: Petr Mladek Cc: Joe Lawrence Cc: Shuah Khan Cc: Konrad Rzeszutek Wilk Cc: Tim Chen Cc: Sebastian Andrzej Siewior Cc: Mimi Zohar Cc: Juergen Gross Cc: Nick Desaulniers Cc: Nayna Jain Cc: Masahiro Yamada Cc: Joerg Roedel Cc: "open list:KERNEL SELFTEST FRAMEWORK" Cc: stable@vger.kernel.org Fixes: b700e7f03df5 ("livepatch: kernel: add support for live patching") Tested-by: Nicolai Stange Reviewed-by: Nicolai Stange Reviewed-by: Masami Hiramatsu Signed-off-by: Peter Zijlstra (Intel) [ Changed to only implement emulated calls for x86_64 ] Signed-off-by: Steven Rostedt (VMware) commit 4b33dadf37666c0860b88f9e52a16d07bf6d0b03 Author: Peter Zijlstra Date: Wed May 1 15:11:17 2019 +0200 x86_64: Allow breakpoints to emulate call instructions In order to allow breakpoints to emulate call instructions, they need to push the return address onto the stack. The x86_64 int3 handler adds a small gap to allow the stack to grow some. Use this gap to add the return address to be able to emulate a call instruction at the breakpoint location. These helper functions are added: int3_emulate_jmp(): changes the location of the regs->ip to return there. (The next two are only for x86_64) int3_emulate_push(): to push the address onto the gap in the stack int3_emulate_call(): push the return address and change regs->ip Cc: Andy Lutomirski Cc: Nicolai Stange Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Borislav Petkov Cc: "H. Peter Anvin" Cc: the arch/x86 maintainers Cc: Josh Poimboeuf Cc: Jiri Kosina Cc: Miroslav Benes Cc: Petr Mladek Cc: Joe Lawrence Cc: Shuah Khan Cc: Konrad Rzeszutek Wilk Cc: Tim Chen Cc: Sebastian Andrzej Siewior Cc: Mimi Zohar Cc: Juergen Gross Cc: Nick Desaulniers Cc: Nayna Jain Cc: Masahiro Yamada Cc: Joerg Roedel Cc: "open list:KERNEL SELFTEST FRAMEWORK" Cc: stable@vger.kernel.org Fixes: b700e7f03df5 ("livepatch: kernel: add support for live patching") Tested-by: Nicolai Stange Reviewed-by: Nicolai Stange Reviewed-by: Masami Hiramatsu Signed-off-by: Peter Zijlstra (Intel) [ Modified to only work for x86_64 and added comment to int3_emulate_push() ] Signed-off-by: Steven Rostedt (VMware) commit 2700fefdb2d9751c416ad56897e27d41e409324a Author: Josh Poimboeuf Date: Fri Nov 30 12:39:17 2018 -0600 x86_64: Add gap to int3 to allow for call emulation To allow an int3 handler to emulate a call instruction, it must be able to push a return address onto the stack. Add a gap to the stack to allow the int3 handler to push the return address and change the return from int3 to jump straight to the emulated called function target. Link: http://lkml.kernel.org/r/20181130183917.hxmti5josgq4clti@treble Link: http://lkml.kernel.org/r/20190502162133.GX2623@hirez.programming.kicks-ass.net [ Note, this is needed to allow Live Kernel Patching to not miss calling a patched function when tracing is enabled. -- Steven Rostedt ] Cc: stable@vger.kernel.org Fixes: b700e7f03df5 ("livepatch: kernel: add support for live patching") Tested-by: Nicolai Stange Reviewed-by: Nicolai Stange Reviewed-by: Masami Hiramatsu Signed-off-by: Josh Poimboeuf Signed-off-by: Steven Rostedt (VMware) commit 23e35c0eb81a23d40c079a7eb187fc321fa1deb7 Author: Noralf Trønnes Date: Fri Apr 26 14:47:53 2019 +0200 drm/cma-helper: Fix drm_gem_cma_free_object() The logic for freeing an imported buffer with a virtual address is broken. It will free the buffer instead of unmapping the dma buf. Fix by reversing the if ladder and first check if the buffer is imported. Fixes: b9068cde51ee ("drm/cma-helper: Add DRM_GEM_CMA_VMAP_DRIVER_OPS") Cc: stable@vger.kernel.org Reported-by: "Li, Tingqian" Signed-off-by: Noralf Trønnes Reviewed-by: Oleksandr Andrushchenko Link: https://patchwork.freedesktop.org/patch/msgid/20190426124753.53722-1-noralf@tronnes.org commit 582e84f7b7791bf2a2572559c5e29f3d38a7a535 Author: Pranith Kumar Date: Mon Mar 4 11:11:44 2019 -0800 tool headers nolibc: add RISCV support This adds support for the RISCV architecture (32 and 64 bit) to the nolibc header file. Signed-off-by: Pranith Kumar [willy: minimal rewording of the commit message] Signed-off-by: Willy Tarreau commit 7f84ff68be05ec7a5d2acf8fdc734fe5897af48f Author: Takashi Iwai Date: Wed May 8 15:01:24 2019 +0200 ALSA: line6: toneport: Fix broken usage of timer for delayed execution The line6 toneport driver has code for some delayed initialization, and this hits the kernel Oops because mutex and other sleepable functions are used in the timer callback. Fix the abuse by a delayed work instead so that everything works gracefully. Reported-by: syzbot+a07d0142e74fdd595cfb@syzkaller.appspotmail.com Cc: Signed-off-by: Takashi Iwai commit a698e1372800b7e5dde2e461c1d3948c2e06032a Author: Julian Wiedmann Date: Fri Apr 26 09:37:41 2019 +0200 s390/qdio: optimize state inspection of HW-owned SBALs When get_buf_states() gets called with count > 1, it scans the corresponding number of SBAL states until it encounters a mismatch. But when these SBALs are in a HW-owned state, the callers don't actually care _how many_ such SBALs are on the queue. If we can't process the first SBAL, we can't process any of the following SBALs either. So when the first SBAL is HW-owned, skip the scan of the remaining SBALs and thus save some CPU time. Signed-off-by: Julian Wiedmann Reviewed-by: Jens Remus Signed-off-by: Martin Schwidefsky commit 5a19d67027283c77f51b971485c3e579d94b5a2f Author: Julian Wiedmann Date: Fri Apr 26 09:30:11 2019 +0200 s390/qdio: use get_buf_state() in debug_get_buf_state() For a 1-SBAL state inspection, use the corresponding helper. No functional change, just reducing the number of immediate callers to get_buf_states(). Signed-off-by: Julian Wiedmann Reviewed-by: Jens Remus Signed-off-by: Martin Schwidefsky commit 3060781f2664d34af641247aeac62696405a3fde Author: Julian Wiedmann Date: Mon Apr 1 10:08:08 2019 +0200 s390/qdio: allow to scan all Output SBALs in one go Old code restricted the number of inspected SBALs to QDIO_MAX_BUFFERS_PER_Q - 1, as otherwise the first_to_check and first_to_kick cursors could overlap. Subsequent code would then assume that there was no progress on the queue, when in fact _all_ SBALs on the queue were ready-to-process. This limitation no longer applies, so allow the queue-scan code to inspect all SBALs on the queue. Note that qeth requires an additional patch ("s390/qeth: stop/wake TX queues based on their fill level"), to avoid potential queue stalls when all 128 SBALs are reported as ready-to-process. Signed-off-by: Julian Wiedmann Signed-off-by: Martin Schwidefsky commit 22e2fe8551f83d43619211623c739e98dfa8ff08 Author: Farhan Ali Date: Thu Apr 4 17:00:21 2019 -0400 s390/cio: Remove tracing for rchp instruction Since commit d485235b00 "s390: assume diag308 set always works", the kernel does not use the rchp instruction anymore. So let's remove the tracing for it. Signed-off-by: Farhan Ali Acked-by: Sebastian Ott Signed-off-by: Martin Schwidefsky commit 184c460fbab4d3bf23d31ac5adba21540f756b6d Author: Vasily Gorbik Date: Wed May 8 13:36:06 2019 +0200 s390/kasan: adapt disabled_wait usage to avoid build error Fix the following build error when the kernel is built with CONFIG_KASAN broken since commit 98587c2d894c ("s390: simplify disabled_wait"): arch/s390/mm/kasan_init.c: In function 'kasan_early_panic': arch/s390/mm/kasan_init.c:31:2: error: too many arguments to function 'disabled_wait' 31 | disabled_wait(0); Fixes: 98587c2d894c ("s390: simplify disabled_wait") Reported-by: Benjamin Block Signed-off-by: Vasily Gorbik Signed-off-by: Martin Schwidefsky commit 534420c6ff87d3052540f1fd346e0adcff440819 Author: Takashi Iwai Date: Wed May 8 14:45:38 2019 +0200 ALSA: aica: Fix a long-time build breakage The build of aica sound driver has been broken since the timer API conversion and some code rewrite. This patch fixes the breakage by using the common substream field, as well as a bit cleaning up wrt the timer handling in the code. Fixes: d522bb6a105f ("ALSA: sh: aica: Convert timers to use timer_setup()") Signed-off-by: Takashi Iwai commit 7278358407be770130b6b72567c1b5831c6eef28 Author: Thierry Reding Date: Mon May 6 18:36:24 2019 +0200 arm64: tegra: Disable XUSB support on Jetson TX2 The recently introduced XUSB support for Jetson TX2 is causing boot, CPU hotplug and suspend/resume failures according to several reports. Temporarily work around this by disabling the XUSB controller and XUSB pad controller nodes in device tree, while we figure out what's causing this. Reported-by: Bitan Biswas Reported-by: Jonathan Hunter Tested-by: Bitan Biswas Tested-by: Jon Hunter Acked-by: Jon Hunter Signed-off-by: Thierry Reding commit f2a465e7185f685b8451c694226286ca058f1b7a Author: Thierry Reding Date: Mon May 6 14:55:31 2019 +0200 arm64: tegra: Enable SMMU translation for PCI on Tegra186 Commit 954a03be033c ("iommu/arm-smmu: Break insecure users by disabling bypass by default") intentionally breaks all devices using the SMMU in bypass mode. This breaks, among other things, PCI support on Tegra186. Fix this by populating the iommus property and friends for the PCIe controller. Fixes: 954a03be033c ("iommu/arm-smmu: Break insecure users by disabling bypass by default") Signed-off-by: Thierry Reding commit dfdbf16c50d89a8cb102a5f7a1f53686fff506ad Author: Jonathan Hunter Date: Thu May 2 14:27:21 2019 +0100 arm64: tegra: Fix insecure SMMU users for Tegra186 Commit 954a03be033c ("iommu/arm-smmu: Break insecure users by disabling bypass by default") intentionally breaks all devices using the SMMU in bypass mode. This is breaking various devices on Tegra186 which include the ethernet, BPMP and HDA device. Fix this by populating the iommus property for these devices with their stream ID. Fixes: 954a03be033c ("iommu/arm-smmu: Break insecure users by disabling bypass by default") Signed-off-by: Jonathan Hunter Signed-off-by: Thierry Reding commit 2e988a83874b689f9e095cf60b40f1a8aff6731a Author: Sameer Pujar Date: Fri Mar 22 17:43:03 2019 +0530 arm64: tegra: Select ARM_GIC_PM Enable ARM_GIC_PM for 64-bit Tegra devices. This is required to ensure that the driver gets built into kernel and helps to register the AGIC device when enabled in DT. Signed-off-by: Sameer Pujar Reviewed-by: Jon Hunter Tested-by: Jon Hunter Signed-off-by: Thierry Reding commit 6d6165603e162e3d391f35853a4ab232ab0db064 Author: Arnd Bergmann Date: Fri Apr 26 16:56:03 2019 +0200 amba: tegra-ahb: Mark PM functions as __maybe_unused clang warns about an unused variable when CONFIG_PM is disabled, since it is only referenced from an #ifdef: drivers/amba/tegra-ahb.c:97:18: error: variable 'tegra_ahb_gizmo' is not needed and will not be emitted [-Werror,-Wunneeded-internal-declaration] Rather than trying to get the #ifdef right, remove it and use __maybe_unused here, which is less error prone. Signed-off-by: Arnd Bergmann Signed-off-by: Thierry Reding commit 9b5db6c762adcca120667b683af55700ffd7ae29 Author: Aaron Lewis Date: Thu May 2 11:31:25 2019 -0700 kvm: nVMX: Set nested_run_pending in vmx_set_nested_state after checks complete nested_run_pending=1 implies we have successfully entered guest mode. Move setting from external state in vmx_set_nested_state() until after all other checks are complete. Based on a patch by Aaron Lewis. Signed-off-by: Paolo Bonzini commit da1e3071d53d79b00b07b34a5853c8e42f35d745 Author: Aaron Lewis Date: Thu May 2 11:31:41 2019 -0700 tests: kvm: Add tests for KVM_SET_NESTED_STATE Add tests for KVM_SET_NESTED_STATE and for various code paths in its implementation in vmx_set_nested_state(). Signed-off-by: Aaron Lewis Reviewed-by: Marc Orr Reviewed-by: Peter Shier Signed-off-by: Paolo Bonzini commit 332d079735f5add26f4443cec2991ee03ed2ae19 Author: Aaron Lewis Date: Thu May 2 11:31:33 2019 -0700 KVM: nVMX: KVM_SET_NESTED_STATE - Tear down old EVMCS state before setting new state Move call to nested_enable_evmcs until after free_nested() is complete. Signed-off-by: Aaron Lewis Reviewed-by: Marc Orr Reviewed-by: Peter Shier Signed-off-by: Paolo Bonzini commit 4b350aebbec80c7846f2908acb695ef029a04f64 Author: Aaron Lewis Date: Thu May 2 11:31:59 2019 -0700 tests: kvm: Add tests for KVM_CAP_MAX_VCPUS and KVM_CAP_MAX_CPU_ID Signed-off-by: Aaron Lewis Reviewed-by: Peter Shier Reviewed-by: Marc Orr Signed-off-by: Paolo Bonzini commit 648a93c82b46638f3372123a18f095ddabcfc657 Author: Aaron Lewis Date: Mon May 6 07:19:10 2019 -0700 tests: kvm: Add tests to .gitignore Signed-off-by: Aaron Lewis Reviewed-by: Peter Shier Reviewed-by: Jim Mattson Reviewed-by: Sean Christopherson Signed-off-by: Paolo Bonzini commit 9031a69cf9f024a3040c0ed8b8ab01aecd196388 Author: zhangliguang Date: Mon May 6 16:52:25 2019 +0800 fuse: clean up fuse_alloc_inode This patch cleans up fuse_alloc_inode function, just simply the code, no logic change. Signed-off-by: zhangliguang Signed-off-by: Miklos Szeredi commit 744b13107d0d2ec36c5293d7b59129d3186c9396 Author: Dmitry Osipenko Date: Sun May 5 18:43:24 2019 +0300 mfd: max77620: Provide system power-off functionality Provide system power-off functionality that allows to turn off machine gracefully. Signed-off-by: Dmitry Osipenko Signed-off-by: Lee Jones commit 4c58f7012f15a71f05cd447f7658a61376d11591 Author: Dmitry Osipenko Date: Sun May 5 18:43:23 2019 +0300 mfd: max77620: Support Maxim 77663 Add support for Maxim 77663 using the Max77620 driver. The hardware is very similar to Max77663/20024, although there are couple minor differences. Signed-off-by: Dmitry Osipenko Signed-off-by: Lee Jones commit ea611d1cc180fbb56982c83cd5142a2b34881f5c Author: Dmitry Osipenko Date: Sun May 5 18:43:22 2019 +0300 mfd: max77620: Fix swapped FPS_PERIOD_MAX_US values The FPS_PERIOD_MAX_US definitions are swapped for MAX20024 and MAX77620, fix it. Cc: stable Signed-off-by: Dmitry Osipenko Signed-off-by: Lee Jones commit c63217a462fe655eff329abc6a552fba5452c46f Author: Dmitry Osipenko Date: Sun May 5 18:43:21 2019 +0300 dt-bindings: mfd: max77620: Add system-power-controller property Document new generic property that designates the PMIC as the system's power controller. Signed-off-by: Dmitry Osipenko Reviewed-by: Rob Herring Signed-off-by: Lee Jones commit 56076a538536ace0ac4965771acd7c62fdd4c3dd Author: Dmitry Osipenko Date: Sun May 5 18:43:20 2019 +0300 dt-bindings: mfd: max77620: Add compatible for Maxim 77663 Maxim 77663 has a few minor differences in regards to hardware interface and available capabilities by comparing it with 77620 and 20024 models, hence re-use 77620 device-tree binding for the 77663. Signed-off-by: Dmitry Osipenko Reviewed-by: Rob Herring Signed-off-by: Lee Jones commit d7547c55cbe7471255ca51f14bcd4699f5eaabe5 Author: Peter Xu Date: Wed May 8 17:15:47 2019 +0800 KVM: Introduce KVM_CAP_MANUAL_DIRTY_LOG_PROTECT2 The previous KVM_CAP_MANUAL_DIRTY_LOG_PROTECT has some problem which blocks the correct usage from userspace. Obsolete the old one and introduce a new capability bit for it. Suggested-by: Paolo Bonzini Signed-off-by: Peter Xu Signed-off-by: Paolo Bonzini commit 53eac7a8f8cf3d7dc5ecac1946f31442f5eee5f3 Author: Peter Xu Date: Wed May 8 17:15:46 2019 +0800 KVM: Fix kvm_clear_dirty_log_protect off-by-(minus-)one Just imaging the case where num_pages < BITS_PER_LONG, then the loop will be skipped while it shouldn't. Signed-off-by: Peter Xu Fixes: 2a31b9db153530df4aa02dac8c32837bf5f47019 Signed-off-by: Paolo Bonzini commit 4ddc9204572c33f2eb91fbdb1d99d8078388b67d Author: Peter Xu Date: Wed May 8 17:15:45 2019 +0800 KVM: Fix the bitmap range to copy during clear dirty kvm_dirty_bitmap_bytes() will return the size of the dirty bitmap of the memslot rather than the size of bitmap passed over from the ioctl. Here for KVM_CLEAR_DIRTY_LOG we should only copy exactly the size of bitmap that covers kvm_clear_dirty_log.num_pages. Signed-off-by: Peter Xu Cc: stable@vger.kernel.org Fixes: 2a31b9db153530df4aa02dac8c32837bf5f47019 Signed-off-by: Paolo Bonzini commit 4abf1ee16e25ba97bc9e04ddc64e0cd2a1bc41a8 Author: Wang Hai Date: Wed May 8 10:04:18 2019 +0800 perf/x86/amd/iommu: Make the 'amd_iommu_attr_groups' symbol static Fixes the following sparse warning: arch/x86/events/amd/iommu.c:396:30: warning: symbol 'amd_iommu_attr_groups' was not declared. Should it be static? Signed-off-by: Wang Hai Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: acme@kernel.org Cc: alexander.shishkin@linux.intel.com Cc: bp@alien8.de Cc: jolsa@redhat.com Cc: namhyung@kernel.org Fixes: 51686546304f (x86/events/amd/iommu: Fix sysfs perf attribute groups) Link: http://lkml.kernel.org/r/20190508020418.19568-1-wanghai26@huawei.com Signed-off-by: Ingo Molnar commit acf3062a7e1ccf67c6f7e7c28671a6708fde63b0 Author: Amir Goldstein Date: Thu Mar 28 17:38:29 2019 +0200 ovl: relax WARN_ON() for overlapping layers use case This nasty little syzbot repro: https://syzkaller.appspot.com/x/repro.syz?x=12c7a94f400000 Creates overlay mounts where the same directory is both in upper and lower layers. Simplified example: mkdir foo work mount -t overlay none foo -o"lowerdir=.,upperdir=foo,workdir=work" The repro runs several threads in parallel that attempt to chdir into foo and attempt to symlink/rename/exec/mkdir the file bar. The repro hits a WARN_ON() I placed in ovl_instantiate(), which suggests that an overlay inode already exists in cache and is hashed by the pointer of the real upper dentry that ovl_create_real() has just created. At the point of the WARN_ON(), for overlay dir inode lock is held and upper dir inode lock, so at first, I did not see how this was possible. On a closer look, I see that after ovl_create_real(), because of the overlapping upper and lower layers, a lookup by another thread can find the file foo/bar that was just created in upper layer, at overlay path foo/foo/bar and hash the an overlay inode with the new real dentry as lower dentry. This is possible because the overlay directory foo/foo is not locked and the upper dentry foo/bar is in dcache, so ovl_lookup() can find it without taking upper dir inode shared lock. Overlapping layers is considered a wrong setup which would result in unexpected behavior, but it shouldn't crash the kernel and it shouldn't trigger WARN_ON() either, so relax this WARN_ON() and leave a pr_warn() instead to cover all cases of failure to get an overlay inode. The error returned from failure to insert new inode to cache with inode_insert5() was changed to -EEXIST, to distinguish from the error -ENOMEM returned on failure to get/allocate inode with iget5_locked(). Reported-by: syzbot+9c69c282adc4edd2b540@syzkaller.appspotmail.com Fixes: 01b39dcc9568 ("ovl: use inode_insert5() to hash a newly...") Signed-off-by: Amir Goldstein Signed-off-by: Miklos Szeredi commit 0e72499c3cc0cead32f88b94a02204d2b80768bf Author: Andi Kleen Date: Fri Mar 29 17:47:41 2019 -0700 x86/kprobes: Make trampoline_handler() global and visible This function is referenced from assembler, so in LTO it needs to be global and visible to not be optimized away. Signed-off-by: Andi Kleen Signed-off-by: Thomas Gleixner Acked-by: Masami Hiramatsu Link: https://lkml.kernel.org/r/20190330004743.29541-7-andi@firstfloor.org Signed-off-by: Ingo Molnar commit 81d30225bc0c246b53270eb90b23cfbb941a186d Author: Jia Zhang Date: Mon Apr 1 19:40:45 2019 +0800 x86/vdso: Remove hpet_page from vDSO This trivial cleanup finalizes the removal of vDSO HPET support. Fixes: 1ed95e52d902 ("x86/vdso: Remove direct HPET access through the vDSO") Signed-off-by: Jia Zhang Signed-off-by: Thomas Gleixner Cc: luto@kernel.org Cc: bp@alien8.de Link: https://lkml.kernel.org/r/20190401114045.7280-1-zhang.jia@linux.alibaba.com Signed-off-by: Ingo Molnar commit 796fad0101d370567c2968bd933b865aa57efaa3 Author: Bartosz Golaszewski Date: Tue Apr 23 11:04:51 2019 +0200 MAINTAINERS: Add an entry for MAX77650 PMIC driver I plan on extending this set of drivers so add myself as maintainer. Signed-off-by: Bartosz Golaszewski Signed-off-by: Lee Jones commit 1af2b76f63f5ee2c959246671334d59cb3030f9c Author: Bartosz Golaszewski Date: Tue Apr 23 11:04:50 2019 +0200 input: max77650: Add onkey support Add support for the push- and slide-button events for max77650. Signed-off-by: Bartosz Golaszewski Acked-by: Dmitry Torokhov Acked-by: Pavel Machek Signed-off-by: Lee Jones commit 5be102eb161a0c17b64cf104ccef48ffc9d3e361 Author: Bartosz Golaszewski Date: Tue Apr 23 11:04:49 2019 +0200 leds: max77650: Add LEDs support This adds basic support for LEDs for the max77650 PMIC. The device has three current sinks for driving LEDs. Signed-off-by: Bartosz Golaszewski Acked-by: Jacek Anaszewski Acked-by: Pavel Machek Signed-off-by: Lee Jones commit 72b5135bc396ba092268a0970bc3205292bffa67 Author: Bartosz Golaszewski Date: Tue Apr 23 11:04:48 2019 +0200 gpio: max77650: Add GPIO support Add GPIO support for max77650 mfd device. This PMIC exposes a single GPIO line. Signed-off-by: Bartosz Golaszewski Reviewed-by: Linus Walleij Signed-off-by: Lee Jones commit e85e17da8ae773e08adc4d578cad9f2338b35a80 Author: Bartosz Golaszewski Date: Tue Apr 23 11:04:47 2019 +0200 power: supply: max77650: Add support for battery charger Add basic support for the battery charger for max77650 PMIC. Signed-off-by: Bartosz Golaszewski Reviewed-by: Linus Walleij Reviewed-by: Sebastian Reichel Signed-off-by: Lee Jones commit d0f60334500b0fe54e55c2df7029b02d8682c6c0 Author: Bartosz Golaszewski Date: Tue Apr 23 11:04:46 2019 +0200 mfd: Add new driver for MAX77650 PMIC Add the core MFD driver for max77650 PMIC. We define five sub-devices for which the drivers will be added in subsequent patches. Signed-off-by: Bartosz Golaszewski Signed-off-by: Lee Jones commit 1946f9967c5684ad51a04597c0e9e8a3066374de Author: Bartosz Golaszewski Date: Tue Apr 23 11:04:45 2019 +0200 mfd: mfd-core: Document mfd_add_devices() Add a kernel doc for mfd_add_devices(). Signed-off-by: Bartosz Golaszewski Acked-by: Pavel Machek Signed-off-by: Lee Jones commit 93fb61e2c3defc6fe89cdf041f7f6a659b64ec56 Author: Bartosz Golaszewski Date: Tue Apr 23 11:04:44 2019 +0200 dt-bindings: input: Add DT bindings for max77650 Add the DT binding document for the onkey module of max77650. Signed-off-by: Bartosz Golaszewski Reviewed-by: Rob Herring Signed-off-by: Lee Jones commit 5a032b0697c79d7499ba955b40fa9a7756f08dad Author: Bartosz Golaszewski Date: Tue Apr 23 11:04:43 2019 +0200 dt-bindings: leds: Add DT bindings for max77650 Add the DT binding document for the LEDs module of max77650. Signed-off-by: Bartosz Golaszewski Reviewed-by: Rob Herring Acked-by: Pavel Machek Signed-off-by: Lee Jones commit 424ece627cd9e61ecd35ddd306b6bbda5e17ec24 Author: Bartosz Golaszewski Date: Tue Apr 23 11:04:42 2019 +0200 dt-bindings: power: supply: Add DT bindings for max77650 Add the DT binding document for the battery charger module of max77650. Signed-off-by: Bartosz Golaszewski Reviewed-by: Sebastian Reichel Signed-off-by: Lee Jones commit 13a22f73319c75511bd6b49cc77afb15fed0a91e Author: Bartosz Golaszewski Date: Tue Apr 23 11:04:41 2019 +0200 dt-bindings: mfd: Add DT bindings for max77650 Add a DT binding document for max77650 ultra-low power PMIC. This describes the core mfd device and the GPIO module. Signed-off-by: Bartosz Golaszewski Reviewed-by: Rob Herring Acked-by: Pavel Machek Signed-off-by: Lee Jones commit 95310e348a321b45fb746c176961d4da72344282 Author: Josh Poimboeuf Date: Tue May 7 15:05:22 2019 -0500 x86/speculation/mds: Fix documentation typo Fix a minor typo in the MDS documentation: "eanbled" -> "enabled". Reported-by: Jeff Bastian Signed-off-by: Josh Poimboeuf Signed-off-by: Thomas Gleixner commit ea01668f9f43021b28b3f4d5ffad50106a1e1301 Author: Tyler Hicks Date: Mon May 6 23:52:58 2019 +0000 Documentation: Correct the possible MDS sysfs values Adjust the last two rows in the table that display possible values when MDS mitigation is enabled. They both were slightly innacurate. In addition, convert the table of possible values and their descriptions to a list-table. The simple table format uses the top border of equals signs to determine cell width which resulted in the first column being far too wide in comparison to the second column that contained the majority of the text. Signed-off-by: Tyler Hicks Signed-off-by: Thomas Gleixner commit e672f8bf71c66253197e503f75c771dd28ada4a0 Author: speck for Pawan Gupta Date: Mon May 6 12:23:50 2019 -0700 x86/mds: Add MDSUM variant to the MDS documentation Updated the documentation for a new CVE-2019-11091 Microarchitectural Data Sampling Uncacheable Memory (MDSUM) which is a variant of Microarchitectural Data Sampling (MDS). MDS is a family of side channel attacks on internal buffers in Intel CPUs. MDSUM is a special case of MSBDS, MFBDS and MLPDS. An uncacheable load from memory that takes a fault or assist can leave data in a microarchitectural structure that may later be observed using one of the same methods used by MSBDS, MFBDS or MLPDS. There are no new code changes expected for MDSUM. The existing mitigation for MDS applies to MDSUM as well. Signed-off-by: Pawan Gupta Signed-off-by: Thomas Gleixner Reviewed-by: Tyler Hicks Reviewed-by: Jon Masters commit 6447c962bc47a58c5ddb27d1c7c7dc45ca90bad0 Author: Kailang Yang Date: Wed May 8 16:27:03 2019 +0800 ALSA: hda/realtek - Support low power consumption for ALC256 Remove hp_pin = 0 return. Add the default pin 0x21 as headphone. Supported low power consumption, it must do depop procedure when headset jack was plugged or unplugged. So, alc256_init() and alc256_shutup() must run delay when headset jack was plugged or unplugged. If depop procedure not run with delay, it will have a chance to let power consumption raise high. [ NOTE: this is a quite quite similar change for ALC295 by commit d3ba58bb8959 ("ALSA: hda/realtek - Support low power consumption for ALC295"), but applied to ALC256 codec instead -- tiwai ] Fixes: 8983eb602af5 ("ALSA: hda/realtek - Move to ACT_INIT state") Signed-off-by: Kailang Yang Signed-off-by: Takashi Iwai commit a9f0bda567e32a2b44165b067adfc4a4f56d1815 Author: Guenter Roeck Date: Tue May 7 17:43:03 2019 -0700 watchdog: Enforce that at least one pretimeout governor is enabled Since commit "watchdog: Use depends instead of select for pretimeout governors", it was possible to enable pretimeout governors but keep all of them disabled. Doing this results in the following build failure. ../drivers/watchdog/watchdog_pretimeout.c: In function ‘watchdog_register_governor’: ../drivers/watchdog/watchdog_pretimeout.c:139:26: error: ‘WATCHDOG_PRETIMEOUT_DEFAULT_GOV’ undeclared if (!strncmp(gov->name, WATCHDOG_PRETIMEOUT_DEFAULT_GOV, Since it does not make sense to enable pretimeout support but disable all pretimeout governors, enforce that at least one of them is always enabled. Fixes: f627ac0e12cd ("watchdog: Use depends instead of select for pretimeout governors") Reported-by: Randy Dunlap Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 5095c418b939186c2eac4fabf14d0036656a8ab1 Merge: 80a5052db751 ce38a75089f7 Author: Takashi Iwai Date: Wed May 8 10:29:31 2019 +0200 Merge tag 'asoc-v5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Fixes for v5.2 A bunch of driver specific fixes that came in since the initial pull request for v5.2, mainly warning fixes for the newly added Sound Open Firmware code which people appeared to only start looking at after I'd sent the pull request. commit 4fc19fffaaf87335aafaeb059a561ef91aa6031c Author: Olivier Moysan Date: Mon May 6 14:54:11 2019 +0200 ASoC: stm32: i2s: update pcm hardware constraints - Set period minimum size. Ensure at least 5ms period up to 48kHz/16 bits to prevent underrun/overrun. - Remove MDMA constraints on period maximum size and set period maximum to half the buffer maximum size. Signed-off-by: Olivier Moysan Signed-off-by: Mark Brown commit 939507f2779836919271ba0311723d1001d3993b Author: Libin Yang Date: Tue May 7 14:33:11 2019 +0800 ASoC: codec: hdac_hdmi: no checking monitor in hw_params Some userspace apps, like pulseaudio, may call open, hw_params, prepare to judge whether the pcm is ready or not. Current hdac_hdmi will return -ENODEV if monitor is not connected, which will cause the apps believe the pcm is not ready. Actually PCM for hdmi is ready, even the monitor is not connected. This patch removes the check of monitor presence in hw_params, just like what the legacy HD-Audio driver does. Signed-off-by: Libin Yang Acked-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit ec0574a6ce31f2d6640bb8a5edf98973356dd3b4 Author: Tzung-Bi Shih Date: Tue May 7 18:12:20 2019 +0800 ASoC: mediatek: mt6358: save PGA for mixer control mt6358_amic_disable() resets PGA to 0. Save the gain settings from mixer control and restore them when using the microphone. Signed-off-by: Tzung-Bi Shih Signed-off-by: Mark Brown commit bbb56537a3279f7221e253afc29e834a3d99662f Author: Tzung-Bi Shih Date: Tue May 7 18:12:19 2019 +0800 ASoC: mediatek: mt6358: save output volume for mixer controls Output volume settings from mixer controls would be lost. Imagine that "Headphone Volume" has set to -10dB via amixer: - in mtk_hp_enable() - hp_store_gain() saves the volume setting -10dB from regmap_read() to ana_gain[AUDIO_ANALOG_VOLUME_HPOUTL] - headset_volume_ramp() ramps up from -10dB to -10dB - in mtk_hp_disable() - headset_volume_ramp() ramps down from -10dB to -40dB Next time in mtk_hp_enable(), hp_store_gain() would save -40dB but not -10dB. As a result, headset_volume_ramp() would ramp from -10dB to -40dB (which is mute). Signed-off-by: Tzung-Bi Shih Signed-off-by: Mark Brown commit bdb8fa6b09a801a6cbe3c2487f0228860f9c5aba Author: Tzung-Bi Shih Date: Tue May 7 18:12:18 2019 +0800 ASoC: mediatek: mt6358: initialize setting when ramping volume Mt6358 ramps up from the smallest volume (i.e. -10dB) to target dB when opening and ramps down from target dB to mute (i.e. -40dB) when closing. If target is equal to -10dB when opening, headset_volume_ramp() simply leaves current setting (which may not be -10dB) unchanged. Execute the loop at least once to initialize the setting to the starting point (i.e. from). Signed-off-by: Tzung-Bi Shih Signed-off-by: Mark Brown commit 35399f87e271f7cf3048eab00a421a6519ac8441 Author: YueHaibing Date: Sun May 5 11:03:12 2019 +0800 configfs: fix possible use-after-free in configfs_register_group In configfs_register_group(), if create_default_group() failed, we forget to unlink the group. It will left a invalid item in the parent list, which may trigger the use-after-free issue seen below: BUG: KASAN: use-after-free in __list_add_valid+0xd4/0xe0 lib/list_debug.c:26 Read of size 8 at addr ffff8881ef61ae20 by task syz-executor.0/5996 CPU: 1 PID: 5996 Comm: syz-executor.0 Tainted: G C 5.0.0+ #5 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0xa9/0x10e lib/dump_stack.c:113 print_address_description+0x65/0x270 mm/kasan/report.c:187 kasan_report+0x149/0x18d mm/kasan/report.c:317 __list_add_valid+0xd4/0xe0 lib/list_debug.c:26 __list_add include/linux/list.h:60 [inline] list_add_tail include/linux/list.h:93 [inline] link_obj+0xb0/0x190 fs/configfs/dir.c:759 link_group+0x1c/0x130 fs/configfs/dir.c:784 configfs_register_group+0x56/0x1e0 fs/configfs/dir.c:1751 configfs_register_default_group+0x72/0xc0 fs/configfs/dir.c:1834 ? 0xffffffffc1be0000 iio_sw_trigger_init+0x23/0x1000 [industrialio_sw_trigger] do_one_initcall+0xbc/0x47d init/main.c:887 do_init_module+0x1b5/0x547 kernel/module.c:3456 load_module+0x6405/0x8c10 kernel/module.c:3804 __do_sys_finit_module+0x162/0x190 kernel/module.c:3898 do_syscall_64+0x9f/0x450 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x462e99 Code: f7 d8 64 89 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f494ecbcc58 EFLAGS: 00000246 ORIG_RAX: 0000000000000139 RAX: ffffffffffffffda RBX: 000000000073bf00 RCX: 0000000000462e99 RDX: 0000000000000000 RSI: 0000000020000180 RDI: 0000000000000003 RBP: 00007f494ecbcc70 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00007f494ecbd6bc R13: 00000000004bcefa R14: 00000000006f6fb0 R15: 0000000000000004 Allocated by task 5987: set_track mm/kasan/common.c:87 [inline] __kasan_kmalloc.constprop.3+0xa0/0xd0 mm/kasan/common.c:497 kmalloc include/linux/slab.h:545 [inline] kzalloc include/linux/slab.h:740 [inline] configfs_register_default_group+0x4c/0xc0 fs/configfs/dir.c:1829 0xffffffffc1bd0023 do_one_initcall+0xbc/0x47d init/main.c:887 do_init_module+0x1b5/0x547 kernel/module.c:3456 load_module+0x6405/0x8c10 kernel/module.c:3804 __do_sys_finit_module+0x162/0x190 kernel/module.c:3898 do_syscall_64+0x9f/0x450 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe Freed by task 5987: set_track mm/kasan/common.c:87 [inline] __kasan_slab_free+0x130/0x180 mm/kasan/common.c:459 slab_free_hook mm/slub.c:1429 [inline] slab_free_freelist_hook mm/slub.c:1456 [inline] slab_free mm/slub.c:3003 [inline] kfree+0xe1/0x270 mm/slub.c:3955 configfs_register_default_group+0x9a/0xc0 fs/configfs/dir.c:1836 0xffffffffc1bd0023 do_one_initcall+0xbc/0x47d init/main.c:887 do_init_module+0x1b5/0x547 kernel/module.c:3456 load_module+0x6405/0x8c10 kernel/module.c:3804 __do_sys_finit_module+0x162/0x190 kernel/module.c:3898 do_syscall_64+0x9f/0x450 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe The buggy address belongs to the object at ffff8881ef61ae00 which belongs to the cache kmalloc-192 of size 192 The buggy address is located 32 bytes inside of 192-byte region [ffff8881ef61ae00, ffff8881ef61aec0) The buggy address belongs to the page: page:ffffea0007bd8680 count:1 mapcount:0 mapping:ffff8881f6c03000 index:0xffff8881ef61a700 flags: 0x2fffc0000000200(slab) raw: 02fffc0000000200 ffffea0007ca4740 0000000500000005 ffff8881f6c03000 raw: ffff8881ef61a700 000000008010000c 00000001ffffffff 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff8881ef61ad00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff8881ef61ad80: 00 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc >ffff8881ef61ae00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ^ ffff8881ef61ae80: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc ffff8881ef61af00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb Fixes: 5cf6a51e6062 ("configfs: allow dynamic group creation") Reported-by: Hulk Robot Signed-off-by: YueHaibing Signed-off-by: Christoph Hellwig commit ce38a75089f70f6380fc63a5478a7659b4eb3f47 Author: Pierre-Louis Bossart Date: Tue May 7 11:32:36 2019 -0500 ASoC: SOF: core: fix undefined nocodec reference The existing code mistakenly uses IS_ENABLED in C code instead of as in conditional compilation, leading to the following error: ld: sound/soc/sof/core.o: in function `sof_machine_check': sound/soc/sof/core.c:279: undefined reference to `sof_nocodec_setup' Fix by using #if !IS_ENABLED() Reported-by: kbuild test robot Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 78989ff8aeaddc183237da558ee07deee35fbbbd Author: Pierre-Louis Bossart Date: Tue May 7 11:32:35 2019 -0500 ASoC: SOF: xtensa: fix undefined references The SND_SOC_INTEL_COMMON Kconfig was removed months ago from SOF Kconfig files but is still selected instead of the correct SND_SOC_SOF_INTEL_COMMON kconfig which does select xtensa stuff, leading to the following errors. ld: sound/soc/sof/sof-acpi-dev.o:(.rodata+0x120): undefined reference to `sof_xtensa_arch_ops' ld: sound/soc/sof/sof-acpi-dev.o:(.rodata+0x180): undefined reference to `sof_xtensa_arch_ops' ld: sound/soc/sof/sof-acpi-dev.o:(.rodata+0x1e0): undefined reference to `sof_xtensa_arch_ops' Reported-by: kbuild test robot Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 54d198d5019dd98b9bcb9099a389608d7e2cccad Author: Takashi Iwai Date: Tue May 7 21:39:10 2019 +0200 ASoC: SOF: Propagate sof_get_ctrl_copy_params() error properly This fixes a compile warning below by properly handling the error code from sof_get_ctrl_copy_params(): include/linux/kernel.h:843:43: warning: 'sparams.pl_size' may be used uninitialized in this function [-Wmaybe-uninitialized] sound/soc/sof/ipc.c:639:34: note: 'sparams.pl_size' was declared here The function returns an error before setting sparams.pl_size, so it'd assign an uninitialized value at a later point. Fixes: 53e0c72d98ba ("ASoC: SOF: Add support for IPC IO between DSP and Host") Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown commit 7e756f423af808b6571fed3144747db2ef7fa1c5 Author: Vasily Gorbik Date: Tue May 7 16:28:15 2019 +0200 latent_entropy: avoid build error when plugin cflags are not set Some architectures set up CFLAGS for linux decompressor phase from scratch and do not include GCC_PLUGINS_CFLAGS. Since "latent_entropy" variable declaration is generated by the plugin code itself including linux/random.h in decompressor code then would cause a build error. E.g. on s390: In file included from ./include/linux/net.h:22, from ./include/linux/skbuff.h:29, from ./include/linux/if_ether.h:23, from ./arch/s390/include/asm/diag.h:12, from arch/s390/boot/startup.c:8: ./include/linux/random.h: In function 'add_latent_entropy': ./include/linux/random.h:26:39: error: 'latent_entropy' undeclared (first use in this function); did you mean 'add_latent_entropy'? 26 | add_device_randomness((const void *)&latent_entropy, | ^~~~~~~~~~~~~~ | add_latent_entropy ./include/linux/random.h:26:39: note: each undeclared identifier is reported only once for each function it appears in The build error is triggered by commit a80313ff91ab ("s390/kernel: introduce .dma sections") which made it into 5.2 merge window. To address that avoid using CONFIG_GCC_PLUGIN_LATENT_ENTROPY in favour of LATENT_ENTROPY_PLUGIN definition which is defined as a part of gcc plugins cflags and hence reflect more accurately when gcc plugin is active. Besides that it is also used for similar purpose in linux/compiler-gcc.h for latent_entropy attribute definition. Signed-off-by: Vasily Gorbik Acked-by: Kees Cook Signed-off-by: Martin Schwidefsky commit 80a5052db75131423b67f38b21958555d7d970e4 Author: Jeremy Soller Date: Tue May 7 17:11:08 2019 -0400 ALSA: hdea/realtek - Headset fixup for System76 Gazelle (gaze14) On the System76 Gazelle (gaze14), there is a headset microphone input attached to 0x1a that does not have a jack detect. In order to get it working, the pin configuration needs to be set correctly, and the ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC fixup needs to be applied. This is identical to the patch already applied for the System76 Darter Pro (darp5). Signed-off-by: Jeremy Soller Cc: Signed-off-by: Takashi Iwai commit 80f232121b69cc69a31ccb2b38c1665d770b0710 Merge: 82efe4395994 a9e41a529681 Author: Linus Torvalds Date: Tue May 7 22:03:58 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next Pull networking updates from David Miller: "Highlights: 1) Support AES128-CCM ciphers in kTLS, from Vakul Garg. 2) Add fib_sync_mem to control the amount of dirty memory we allow to queue up between synchronize RCU calls, from David Ahern. 3) Make flow classifier more lockless, from Vlad Buslov. 4) Add PHY downshift support to aquantia driver, from Heiner Kallweit. 5) Add SKB cache for TCP rx and tx, from Eric Dumazet. This reduces contention on SLAB spinlocks in heavy RPC workloads. 6) Partial GSO offload support in XFRM, from Boris Pismenny. 7) Add fast link down support to ethtool, from Heiner Kallweit. 8) Use siphash for IP ID generator, from Eric Dumazet. 9) Pull nexthops even further out from ipv4/ipv6 routes and FIB entries, from David Ahern. 10) Move skb->xmit_more into a per-cpu variable, from Florian Westphal. 11) Improve eBPF verifier speed and increase maximum program size, from Alexei Starovoitov. 12) Eliminate per-bucket spinlocks in rhashtable, and instead use bit spinlocks. From Neil Brown. 13) Allow tunneling with GUE encap in ipvs, from Jacky Hu. 14) Improve link partner cap detection in generic PHY code, from Heiner Kallweit. 15) Add layer 2 encap support to bpf_skb_adjust_room(), from Alan Maguire. 16) Remove SKB list implementation assumptions in SCTP, your's truly. 17) Various cleanups, optimizations, and simplifications in r8169 driver. From Heiner Kallweit. 18) Add memory accounting on TX and RX path of SCTP, from Xin Long. 19) Switch PHY drivers over to use dynamic featue detection, from Heiner Kallweit. 20) Support flow steering without masking in dpaa2-eth, from Ioana Ciocoi. 21) Implement ndo_get_devlink_port in netdevsim driver, from Jiri Pirko. 22) Increase the strict parsing of current and future netlink attributes, also export such policies to userspace. From Johannes Berg. 23) Allow DSA tag drivers to be modular, from Andrew Lunn. 24) Remove legacy DSA probing support, also from Andrew Lunn. 25) Allow ll_temac driver to be used on non-x86 platforms, from Esben Haabendal. 26) Add a generic tracepoint for TX queue timeouts to ease debugging, from Cong Wang. 27) More indirect call optimizations, from Paolo Abeni" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1763 commits) cxgb4: Fix error path in cxgb4_init_module net: phy: improve pause mode reporting in phy_print_status dt-bindings: net: Fix a typo in the phy-mode list for ethernet bindings net: macb: Change interrupt and napi enable order in open net: ll_temac: Improve error message on error IRQ net/sched: remove block pointer from common offload structure net: ethernet: support of_get_mac_address new ERR_PTR error net: usb: smsc: fix warning reported by kbuild test robot staging: octeon-ethernet: Fix of_get_mac_address ERR_PTR check net: dsa: support of_get_mac_address new ERR_PTR error net: dsa: sja1105: Fix status initialization in sja1105_get_ethtool_stats vrf: sit mtu should not be updated when vrf netdev is the link net: dsa: Fix error cleanup path in dsa_init_module l2tp: Fix possible NULL pointer dereference taprio: add null check on sched_nest to avoid potential null pointer dereference net: mvpp2: cls: fix less than zero check on a u32 variable net_sched: sch_fq: handle non connected flows net_sched: sch_fq: do not assume EDT packets are ordered net: hns3: use devm_kcalloc when allocating desc_cb net: hns3: some cleanup for struct hns3_enet_ring ... commit 82efe439599439a5e1e225ce5740e6cfb777a7dd Merge: dd5001e21a99 2a656cb5a4a3 Author: Linus Torvalds Date: Tue May 7 21:55:37 2019 -0700 Merge tag 'devicetree-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux Pull Devicetree updates from Rob Herring: - Fix possible memory leak in reserved-memory failure case - Support for DMA parent bus which are not a parent node - Clang -Wunsequenced fix - Remove some unnecessary prints on memory alloc failures - Various printk msg and comment fixes - Update DT schema tools repository location - Convert simple-framebuffer binding to DT schema - Bindings for isl68137 and ir38064 trivial devices - New documentation on binding do's and don't's for binding writers to ignore * tag 'devicetree-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (22 commits) of: unittest: Remove error printing on OOM of: irq: Remove WARN_ON() for kzalloc() failure dt-bindings: pinctrl: fix bias-pull,up typo dt-bindings: Update schema project location to devicetree.org github group of: fix clang -Wunsequenced for be32_to_cpu() of/device.c: fix the wrong comments dt-bindings: Add isl68137 as a trivial device dt-bindings: Add ir38064 as a trivial device of: del redundant type conversion dt-bindings: mfd: axp20x: Add fallback for axp805 of: Improve of_phandle_iterator_next() error message dt-bindings: connector: Spelling mistake dt-bindings: Add schemas for simple-framebuffer of: address: Add support for the parent DMA bus of: address: Retrieve a parent through a callback in __of_translate_address dt-bindings: bus: Add binding for the Allwinner MBUS controller dt-bindings: interconnect: Add a dma interconnect name of: use correct function prototype for of_overlay_fdt_apply() of: reserved_mem: fix reserve memory leak of: property: Document that of_graph_get_endpoint_by_regs needs of_node_put ... commit dd5001e21a991b731d659857cd07acc7a13e6789 Merge: a9fbcd672883 b7d5dc21072c Author: Linus Torvalds Date: Tue May 7 21:42:23 2019 -0700 Merge tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random Pull randomness updates from Ted Ts'o: - initialize the random driver earler - fix CRNG initialization when we trust the CPU's RNG on NUMA systems - other miscellaneous cleanups and fixes. * tag 'random_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random: random: add a spinlock_t to struct batched_entropy random: document get_random_int() family random: fix CRNG initialization when random.trust_cpu=1 random: move rand_initialize() earlier random: only read from /dev/random after its pool has received 128 bits drivers/char/random.c: make primary_crng static drivers/char/random.c: remove unused stuct poolinfo::poolbits drivers/char/random.c: constify poolinfo_table commit a9fbcd6728837268784439ad0b02ede2c024c516 Merge: 5abe37954e9a 2c58d548f570 Author: Linus Torvalds Date: Tue May 7 21:28:04 2019 -0700 Merge tag 'fscrypt_for_linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt Pull fscrypt updates from Ted Ts'o: "Clean up fscrypt's dcache revalidation support, and other miscellaneous cleanups" * tag 'fscrypt_for_linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt: fscrypt: cache decrypted symlink target in ->i_link vfs: use READ_ONCE() to access ->i_link fscrypt: fix race where ->lookup() marks plaintext dentry as ciphertext fscrypt: only set dentry_operations on ciphertext dentries fs, fscrypt: clear DCACHE_ENCRYPTED_NAME when unaliasing directory fscrypt: fix race allowing rename() and link() of ciphertext dentries fscrypt: clean up and improve dentry revalidation fscrypt: use READ_ONCE() to access ->i_crypt_info fscrypt: remove WARN_ON_ONCE() when decryption fails fscrypt: drop inode argument from fscrypt_get_ctx() commit cb4f7bf6be10b35510e6b2e60f80d85ebc22a578 Author: Steve French Date: Sun Mar 31 18:00:54 2019 -0500 cifs: update module internal version number To 2.20 Signed-off-by: Steve French commit ebaf546a5584d0a75aa61e4872771008715b8639 Author: Ronnie Sahlberg Date: Wed Apr 10 08:44:46 2019 +1000 SMB3: Clean up query symlink when reparse point Two of the common symlink formats use reparse points (unlike mfsymlinks and also unlike the SMB1 posix extensions). This is the first part of the fixes to allow these reparse points (NFS style and Windows symlinks) to be resolved properly as symlinks by the client. Signed-off-by: Ronnie Sahlberg Signed-off-by: Steve French commit 6a54b2e002c9d00b398d35724c79f9fe0d9b38fb Author: Christoph Probst Date: Tue May 7 17:16:40 2019 +0200 cifs: fix strcat buffer overflow and reduce raciness in smb21_set_oplock_level() Change strcat to strncpy in the "None" case to fix a buffer overflow when cinode->oplock is reset to 0 by another thread accessing the same cinode. It is never valid to append "None" to any other message. Consolidate multiple writes to cinode->oplock to reduce raciness. Signed-off-by: Christoph Probst Reviewed-by: Pavel Shilovsky Signed-off-by: Steve French CC: Stable commit 26ea888f6282b0f5c1977d8ddb2fff1ea0238bd7 Author: Steve French Date: Fri Apr 26 20:36:08 2019 -0700 Negotiate and save preferred compression algorithms New negotiate context (3) allows the server and client to negotiate which compression algorithms to use. Add support for this and save it off in the server structure. Also now displayed in /proc/fs/cifs/DebugData (see below example to Windows 10) where compression algoirthm "LZ77" was negotiated: Servers: Number of credits: 326 Dialect 0x311 COMPRESS_LZ77 signed 1) Name: 192.168.92.17 Uses: 1 Capability: 0x300067 Session Status: 1 TCP status: 1 Instance: 1 See MS-XCA and MS-SMB2 2.2.3.1 for more details. Signed-off-by: Steve French Reviewed-by: Ronnie Sahlberg commit 392e1c5dc9cc93a8fffbd6230c12c9f38693e634 Author: Ronnie Sahlberg Date: Mon May 6 10:00:02 2019 +1000 cifs: rename and clarify CIFS_ASYNC_OP and CIFS_NO_RESP The flags were named confusingly. CIFS_ASYNC_OP now just means that we will not block waiting for credits to become available so we thus rename this to be CIFS_NON_BLOCKING. Change CIFS_NO_RESP to CIFS_NO_RSP_BUF to clarify that we will actually get a response from the server but we will not get/do not want a response buffer. Delete CIFSSMBNotify. This is an SMB1 function that is not used. Signed-off-by: Ronnie Sahlberg Signed-off-by: Steve French Reviewed-by: Pavel Shilovsky commit d69cb728e70c40268762182a62f5d5d6fa51c5b2 Author: Ronnie Sahlberg Date: Wed May 1 12:03:41 2019 +1000 cifs: fix credits leak for SMB1 oplock breaks For SMB1 oplock breaks we would grab one credit while sending the PDU but we would never relese the credit back since we will never receive a response to this from the server. Eventuallt this would lead to a hang once all credits are leaked. Fix this by defining a new flag CIFS_NO_SRV_RSP which indicates that there is no server response to this command and thus we need to add any credits back immediately after sending the PDU. CC: Stable #v5.0+ Signed-off-by: Ronnie Sahlberg Reviewed-by: Pavel Shilovsky Signed-off-by: Steve French commit edf3ef3707c2321afdb4cde3eba756a687f3e8e7 Author: Steve French Date: Sun May 5 17:25:12 2019 -0500 smb3: Add protocol structs for change notify support Add the SMB3 protocol flag definitions and structs for change notify. Future patches will add the hooks to allow it to be invoked from the client. See MS-FSCC 2.6 and MS-SMB2 2.2.35 Signed-off-by: Steve French Reviewed-by: Ronnie Sahlberg commit c425014afd7f622d586e7242f94019131790f5a3 Author: Ronnie Sahlberg Date: Thu May 2 15:52:57 2019 +1000 cifs: fix smb3_zero_range for Azure For zero-range that also extend the file we were sending this as a compound of two different operations; a fsctl to set-zero-data for the range and then an additional set-info to extend the file size. This does not work for Azure since it does not support this fsctl which leads to fallocate(FALLOC_FL_ZERO_RANGE) failing but still changing the file size. To fix this we un-compound this and send these two operations as separate commands, firsat one command to set-zero-data for the range and it this was successful we proceed to send a set-info to update the file size. This fixes xfstest generic/469 for Azure servers. Signed-off-by: Ronnie Sahlberg Signed-off-by: Steve French commit c7fe388d76e900e6c49f8df51cfd21903832fdd5 Author: Ronnie Sahlberg Date: Fri Apr 12 09:56:23 2019 +1000 cifs: zero-range does not require the file is sparse Remove the conditional to fail zero-range if the file is not flagged as sparse. You can still zero out a range in SMB2 even for non-sparse files. Tested with stock windows16 server. Fixes 5 xfstests (033, 149, 155, 180, 349) Signed-off-by: Ronnie Sahlberg Signed-off-by: Steve French commit 0df7edd9dca0c79817723f0e3895ec76351f08cc Author: Steve French Date: Sat Apr 27 02:06:20 2019 -0500 Add new flag on SMB3.1.1 read For compressed read support. See MS-SMB2 3.1.4.4 Signed-off-by: Steve French commit 2f3ebaba13cebd8badfb9aed31c0cf3cc82eb4f4 Author: Ronnie Sahlberg Date: Thu Apr 25 16:45:29 2019 +1000 cifs: add fiemap support Useful for improved copy performance as well as for applications which query allocated ranges of sparse files. Signed-off-by: Ronnie Sahlberg Signed-off-by: Steve French commit d7bef4c4ebe4a2b1788d0214a08d69518e0de3cc Author: Steve French Date: Thu Apr 18 11:03:58 2019 -0500 SMB3: Add defines for new negotiate contexts See the latest MS-SMB2 protocol specification updates. These will be needed for implementing compression support on the wire for example. Signed-off-by: Steve French commit 5242fcb706cb47dfa59bececc1bd280f0868901e Author: Ronnie Sahlberg Date: Mon Apr 15 12:13:52 2019 +1000 cifs: fix bi-directional fsctl passthrough calls SMB2 Ioctl responses from servers may respond with both the request blob from the client followed by the actual reply blob for ioctls that are bi-directional. In that case we can not assume that the reply blob comes immediately after the ioctl response structure. This fixes FSCTLs such as SMB2:FSCTL_QUERY_ALLOCATED_RANGES Signed-off-by: Ronnie Sahlberg Signed-off-by: Steve French commit 4739f2328661d070f93f9bcc8afb2a82706c826d Author: Long Li Date: Mon Apr 15 14:49:17 2019 -0700 cifs: smbd: take an array of reqeusts when sending upper layer data To support compounding, __smb_send_rqst() now sends an array of requests to the transport layer. Change smbd_send() to take an array of requests, and send them in as few packets as possible. Signed-off-by: Long Li Signed-off-by: Steve French CC: Stable commit 46e6661963fb5d55952b550f0716bda22e10f1ae Author: Steve French Date: Thu Apr 11 13:53:17 2019 -0500 SMB3: Add handling for different FSCTL access flags DesiredAccess field in SMB3 open request needs to be set differently for READ vs. WRITE ioctls (not just ones that request both). Originally noticed by Pavel Signed-off-by: Steve French Reviewed-by: Ronnie Sahlberg commit efac779b1c69670ed1e5ab84123ccc2c14e082f0 Author: Ronnie Sahlberg Date: Thu Apr 11 12:20:17 2019 +1000 cifs: Add support for FSCTL passthrough that write data to the server Add support to pass a blob to the server in FSCTL passthrough. Signed-off-by: Ronnie Sahlberg Signed-off-by: Steve French commit 0ae3fa4dc1fcb94b2e992b222dc47781b0414076 Author: Jeff Layton Date: Mon Apr 8 10:59:42 2019 -0400 cifs: remove superfluous inode_lock in cifs_{strict_}fsync Originally, filemap_write_and_wait took the i_mutex internally, but commit 02c24a82187d pushed the mutex acquisition into the individual fsync routines, leaving it up to the subsystem maintainers to remove it if it wasn't needed. For cifs, I see no reason to take the inode_lock here. All of the operations inside that lock are protected in other ways. Signed-off-by: Jeff Layton Signed-off-by: Steve French Acked-by: Pavel Shilovsky commit 214bab448476dbfb63f55f5afaa93d3894d85233 Author: Long Li Date: Fri Apr 5 21:36:35 2019 +0000 cifs: Call MID callback before destroying transport When transport is being destroyed, it's possible that some processes may hold memory registrations that need to be deregistred. Call them first so nobody is using transport resources, and it can be destroyed. Signed-off-by: Long Li Signed-off-by: Steve French commit b7972092199f6d4eb10cc44095bbe3931116fc4b Author: Long Li Date: Fri Apr 5 21:36:34 2019 +0000 cifs: smbd: Retry on memory registration failure Memory registration failure doesn't mean this I/O has failed, it means the transport is hitting I/O error or needs reconnect. This error is not from the server. Indicate this error to upper layer, and let upper layer decide how to reconnect and proceed with this I/O. Signed-off-by: Long Li Signed-off-by: Steve French commit 62fdf6707ebd46ae97e3cb7a7d246b05c3c619f1 Author: Long Li Date: Fri Apr 5 21:36:33 2019 +0000 cifs: smbd: Indicate to retry on transport sending failure Failure to send a packet doesn't mean it's a permanent failure, it can't be returned to user process. This I/O should be retried or failed based on server packet response and transport health. This logic is handled by the upper layer. Give this decision to upper layer. Signed-off-by: Long Li Signed-off-by: Steve French commit 98e0d40888458e6abf60227ac85c675ed07cffc2 Author: Long Li Date: Fri Apr 5 21:36:32 2019 +0000 cifs: smbd: Return EINTR when interrupted When packets are waiting for outbound I/O and interrupted, return the proper error code to user process. Signed-off-by: Long Li Signed-off-by: Steve French commit e8b3bfe9bc651acd0338b331fcee3aaafb27caeb Author: Long Li Date: Fri Apr 5 21:36:31 2019 +0000 cifs: smbd: Don't destroy transport on RDMA disconnect Now upper layer is handling the transport shutdown and reconnect, remove the code that handling transport shutdown on RDMA disconnect. Signed-off-by: Long Li Signed-off-by: Steve French commit 050b8c374019c10e4bcc3fbc9023884f76a85d9c Author: Long Li Date: Thu Apr 4 11:35:42 2019 -0500 smbd: Make upper layer decide when to destroy the transport On transport recoonect, upper layer CIFS code destroys the current transport and then recoonect. This code path is not used by SMBD, in that SMBD destroys its transport on RDMA disconnect notification independent of CIFS upper layer behavior. This approach adds some costs to SMBD layer to handle transport shutdown and restart, and to deal with several racing conditions on reconnecting transport. Re-work this code path by introducing a new smbd_destroy. This function is called form upper layer to ask SMBD to destroy the transport. SMBD will no longer need to destroy the transport by itself while worrying about data transfer is in progress. The upper layer guarantees the transport is locked. change log: v2: fix build errors when CONFIG_CIFS_SMB_DIRECT is not configured Signed-off-by: Long Li Signed-off-by: Steve French commit 973189aba69e59f11d987c21bd18409e58ece6fd Author: Steve French Date: Thu Apr 4 00:41:04 2019 -0500 SMB3: update comment to clarify enumerating snapshots Trivial update to comment suggested by Pavel. Signed-off-by: Steve French commit d070f9dd625a68d8ed4fc1de685af06a489e6f8b Author: Aurelien Aptel Date: Tue Apr 2 13:00:33 2019 +0200 CIFS: check CIFS_MOUNT_NO_DFS when trying to reuse existing sb if we mount A then mount A again with nodfs, we shouldn't reuse the superblock. document the purpose of the defines as well. there are most likely more flags that needs to be added to this mask, in fact the logic to find them should be which flag should be *ignored* when trying to reuse an existing sb. Signed-off-by: Aurelien Aptel Signed-off-by: Steve French commit c8b6ac1a9d1fb26adaeaafc3fb872e6713dfeaf7 Author: Kenneth D'souza Date: Mon Jan 21 11:51:59 2019 +1000 CIFS: Show locallease in /proc/mounts for cifs shares mounted with locallease feature. Missing parameter that should be displayed in the mount list Reviewed-by: Ronnie Sahlberg Signed-off-by: Kenneth D'souza Signed-off-by: Steve French commit 5072010ccf0592950f7cfae0eb3c4008e8bf36f7 Author: Paulo Alcantara (SUSE) Date: Tue Mar 19 16:54:29 2019 -0300 cifs: Fix DFS cache refresher for DFS links As per MS-DFSC, when a DFS cache entry is expired and it is a DFS link, then a new DFS referral must be sent to root server in order to refresh the expired entry. This patch ensures that all new DFS referrals for refreshing the cache are sent to DFS root. Signed-off-by: Paulo Alcantara (SUSE) Signed-off-by: Steve French commit f5307104e7575b3fb577981b40e466e90fab3392 Author: Sergey Senozhatsky Date: Thu Mar 14 15:17:16 2019 +0900 cifs: don't use __constant_cpu_to_le32() A trivial patch. cpu_to_le32() is capable enough to detect __builtin_constant_p() and to use an appropriate compile time ___constant_swahb32() function. So we can use cpu_to_le32() instead of __constant_cpu_to_le32(). Signed-off-by: Sergey Senozhatsky Signed-off-by: Steve French commit 433b8dd7672be1140ffbb17eacba776298bf4733 Author: Steve French Date: Tue Mar 26 13:53:21 2019 -0500 SMB3: Track total time spent on roundtrips for each SMB3 command Also track minimum and maximum time by command in /proc/fs/cifs/Stats Signed-off-by: Steve French commit 5abe37954e9a315c35c9490f78d55f307c3c636b Merge: e5fef2a97325 db90f41916cf Author: Linus Torvalds Date: Tue May 7 21:12:44 2019 -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: "Add as a feature case-insensitive directories (the casefold feature) using Unicode 12.1. Also, the usual largish number of cleanups and bug fixes" * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (25 commits) ext4: export /sys/fs/ext4/feature/casefold if Unicode support is present ext4: fix ext4_show_options for file systems w/o journal unicode: refactor the rule for regenerating utf8data.h docs: ext4.rst: document case-insensitive directories ext4: Support case-insensitive file name lookups ext4: include charset encoding information in the superblock MAINTAINERS: add Unicode subsystem entry unicode: update unicode database unicode version 12.1.0 unicode: introduce test module for normalized utf8 implementation unicode: implement higher level API for string handling unicode: reduce the size of utf8data[] unicode: introduce code for UTF-8 normalization unicode: introduce UTF-8 character database ext4: actually request zeroing of inode table after grow ext4: cond_resched in work-heavy group loops ext4: fix use-after-free race with debug_want_extra_isize ext4: avoid drop reference to iloc.bh twice ext4: ignore e_value_offs for xattrs with value-in-ea-inode ext4: protect journal inode's blocks using block_validity ext4: use BUG() instead of BUG_ON(1) ... commit e5fef2a9732580c5bd30c0097f5e9091a3d58ce5 Merge: 149e703cb8bf f5e4546347bc Author: Linus Torvalds Date: Tue May 7 20:51:58 2019 -0700 Merge tag 'afs-next-20190507' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs Pull AFS updates from David Howells: "A set of fix and development patches for AFS for 5.2. Summary: - Fix the AFS file locking so that sqlite can run on an AFS mount and also so that firefox and gnome can use a homedir that's mounted through AFS. This required emulation of fine-grained locking when the server will only support whole-file locks and no upgrade/downgrade. Four modes are provided, settable by mount parameter: "flock=local" - No reference to the server "flock=openafs" - Fine-grained locks are local-only, whole-file locks require sufficient server locks "flock=strict" - All locks require sufficient server locks "flock=write" - Always get an exclusive server lock If the volume is a read-only or backup volume, then flock=local for that volume. - Log extra information for a couple of cases where the client mucks up somehow: AFS vnode with undefined type and dir check failure - in both cases we seem to end up with unfilled data, but the issues happen infrequently and are difficult to reproduce at will. - Implement silly rename for unlink() and rename(). - Set i_blocks so that du can get some information about usage. - Fix xattr handlers to return the right amount of data and to not overflow buffers. - Implement getting/setting raw AFS and YFS ACLs as xattrs" * tag 'afs-next-20190507' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs: afs: Implement YFS ACL setting afs: Get YFS ACLs and information through xattrs afs: implement acl setting afs: Get an AFS3 ACL as an xattr afs: Fix getting the afs.fid xattr afs: Fix the afs.cell and afs.volume xattr handlers afs: Calculate i_blocks based on file size afs: Log more information for "kAFS: AFS vnode with undefined type\n" afs: Provide mount-time configurable byte-range file locking emulation afs: Add more tracepoints afs: Implement sillyrename for unlink and rename afs: Add directory reload tracepoint afs: Handle lock rpc ops failing on a file that got deleted afs: Improve dir check failure reports afs: Add file locking tracepoints afs: Further fix file locking afs: Fix AFS file locking to allow fine grained locks afs: Calculate lock extend timer from set/extend reply reception afs: Split wait from afs_make_call() commit 149e703cb8bfcbdae46140b108bb6f7d2407df8f Merge: d897166d8598 6ee9706aa22e Author: Linus Torvalds Date: Tue May 7 20:50:27 2019 -0700 Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull misc vfs updates from Al Viro: "Assorted stuff, with no common topic whatsoever..." * 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: libfs: document simple_get_link() Documentation/filesystems/Locking: fix ->get_link() prototype Documentation/filesystems/vfs.txt: document how ->i_link works Documentation/filesystems/vfs.txt: remove bogus "Last updated" date fs: use timespec64 in relatime_need_update fs/block_dev.c: remove unused include commit d897166d8598e362a31d79dfd9a1e2eedb9ac85c Merge: 400913252d09 3b85d3028e2a Author: Linus Torvalds Date: Tue May 7 20:34:21 2019 -0700 Merge branch 'work.file' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull vfs 'struct file' related updates from Al Viro: "A bit more of 'this fget() would be better off as fdget()' whack-a-mole + a couple of ->f_count-related cleanups" * 'work.file' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: media: switch to fdget() drm_syncobj: switch to fdget() amdgpu: switch to fdget() don't open-code file_count() fs: drop unused fput_atomic definition commit 400913252d09f9cfb8cce33daee43167921fc343 Merge: d27fb65bc238 f1b5618e013a Author: Linus Torvalds Date: Tue May 7 20:17:51 2019 -0700 Merge branch 'work.mount-syscalls' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull mount ABI updates from Al Viro: "The syscalls themselves, finally. That's not all there is to that stuff, but switching individual filesystems to new methods is fortunately independent from everything else, so e.g. NFS series can go through NFS tree, etc. As those conversions get done, we'll be finally able to get rid of a bunch of duplication in fs/super.c introduced in the beginning of the entire thing. I expect that to be finished in the next window..." * 'work.mount-syscalls' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: vfs: Add a sample program for the new mount API vfs: syscall: Add fspick() to select a superblock for reconfiguration vfs: syscall: Add fsmount() to create a mount for a superblock vfs: syscall: Add fsconfig() for configuring and managing a context vfs: Implement logging through fs_context vfs: syscall: Add fsopen() to prepare for superblock creation Make anon_inodes unconditional teach move_mount(2) to work with OPEN_TREE_CLONE vfs: syscall: Add move_mount(2) to move mounts around vfs: syscall: Add open_tree(2) to reference or clone a mount commit d27fb65bc2389621040e5107baedb94b4cccf641 Merge: d3511f53bb24 795d673af1af Author: Linus Torvalds Date: Tue May 7 20:03:32 2019 -0700 Merge branch 'work.dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull misc dcache updates from Al Viro: "Most of this pile is putting name length into struct name_snapshot and making use of it. The beginning of this series ("ovl_lookup_real_one(): don't bother with strlen()") ought to have been split in two (separate switch of name_snapshot to struct qstr from overlayfs reaping the trivial benefits of that), but I wanted to avoid a rebase - by the time I'd spotted that it was (a) in -next and (b) close to 5.1-final ;-/" * 'work.dcache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: audit_compare_dname_path(): switch to const struct qstr * audit_update_watch(): switch to const struct qstr * inotify_handle_event(): don't bother with strlen() fsnotify: switch send_to_group() and ->handle_event to const struct qstr * fsnotify(): switch to passing const struct qstr * for file_name switch fsnotify_move() to passing const struct qstr * for old_name ovl_lookup_real_one(): don't bother with strlen() sysv: bury the broken "quietly truncate the long filenames" logics nsfs: unobfuscate unexport d_alloc_pseudo() commit d3511f53bb2475f2a4e8460bee5a1ae6dea2a433 Merge: 02aff8db6438 62217beb394e Author: Linus Torvalds Date: Tue May 7 19:34:17 2019 -0700 Merge branch 'parisc-5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux Pull parisc updates from Helge Deller: "Many great new features, fixes and optimizations, including: - Convert page table updates to use per-pagetable spinlocks which overall improves performance on SMP machines a lot, by Mikulas Patocka - Kernel debugger (KGDB) support, by Sven Schnelle - KPROBES support, by Sven Schnelle - Lots of TLB lock/flush improvements, by Dave Anglin - Drop DISCONTIGMEM and switch to SPARSEMEM - Added JUMP_LABEL, branch runtime-patching support - Lots of other small speedups and cleanups, e.g. for QEMU, stack randomization, avoidance of name clashes, documentation updates, etc ..." * 'parisc-5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux: (28 commits) parisc: Add static branch and JUMP_LABEL feature parisc: Use PA_ASM_LEVEL in boot code parisc: Rename LEVEL to PA_ASM_LEVEL to avoid name clash with DRBD code parisc: Update huge TLB page support to use per-pagetable spinlock parisc: Use per-pagetable spinlock parisc: Allow live-patching of __meminit functions parisc: Add memory barrier to asm pdc and sync instructions parisc: Add memory clobber to TLB purges parisc: Use ldcw instruction for SMP spinlock release barrier parisc: Remove lock code to serialize TLB operations in pacache.S parisc: Switch from DISCONTIGMEM to SPARSEMEM parisc: enable wide mode early parisc: update feature lists parisc: Show n/a if product number not available parisc: remove unused flags parameter in __patch_text() doc: update kprobes supported architecture list parisc: Implement kretprobes parisc: remove kprobes.h from generic-y parisc: Implement kprobes parisc: add functions required by KPROBE_EVENTS ... commit 02aff8db6438ce29371fd9cd54c57213f4bb4536 Merge: f72dae20891d 70c4cf17e445 Author: Linus Torvalds Date: Tue May 7 19:06:04 2019 -0700 Merge tag 'audit-pr-20190507' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit Pull audit updates from Paul Moore: "We've got a reasonably broad set of audit patches for the v5.2 merge window, the highlights are below: - The biggest change, and the source of all the arch/* changes, is the patchset from Dmitry to help enable some of the work he is doing around PTRACE_GET_SYSCALL_INFO. To be honest, including this in the audit tree is a bit of a stretch, but it does help move audit a little further along towards proper syscall auditing for all arches, and everyone else seemed to agree that audit was a "good" spot for this to land (or maybe they just didn't want to merge it? dunno.). - We can now audit time/NTP adjustments. - We continue the work to connect associated audit records into a single event" * tag 'audit-pr-20190507' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/audit: (21 commits) audit: fix a memory leak bug ntp: Audit NTP parameters adjustment timekeeping: Audit clock adjustments audit: purge unnecessary list_empty calls audit: link integrity evm_write_xattrs record to syscall event syscall_get_arch: add "struct task_struct *" argument unicore32: define syscall_get_arch() Move EM_UNICORE to uapi/linux/elf-em.h nios2: define syscall_get_arch() nds32: define syscall_get_arch() Move EM_NDS32 to uapi/linux/elf-em.h m68k: define syscall_get_arch() hexagon: define syscall_get_arch() Move EM_HEXAGON to uapi/linux/elf-em.h h8300: define syscall_get_arch() c6x: define syscall_get_arch() arc: define syscall_get_arch() Move EM_ARCOMPACT and EM_ARCV2 to uapi/linux/elf-em.h audit: Make audit_log_cap and audit_copy_inode static audit: connect LOGIN record to its syscall record ... commit f72dae20891d7bcc43e9263ab206960b6ae5209f Merge: 498e8631f27e 35a196bef449 Author: Linus Torvalds Date: Tue May 7 18:48:09 2019 -0700 Merge tag 'selinux-pr-20190507' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux Pull selinux updates from Paul Moore: "We've got a few SELinux patches for the v5.2 merge window, the highlights are below: - Add LSM hooks, and the SELinux implementation, for proper labeling of kernfs. While we are only including the SELinux implementation here, the rest of the LSM folks have given the hooks a thumbs-up. - Update the SELinux mdp (Make Dummy Policy) script to actually work on a modern system. - Disallow userspace to change the LSM credentials via /proc/self/attr when the task's credentials are already overridden. The change was made in procfs because all the LSM folks agreed this was the Right Thing To Do and duplicating it across each LSM was going to be annoying" * tag 'selinux-pr-20190507' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux: proc: prevent changes to overridden credentials selinux: Check address length before reading address family kernfs: fix xattr name handling in LSM helpers MAINTAINERS: update SELinux file patterns selinux: avoid uninitialized variable warning selinux: remove useless assignments LSM: lsm_hooks.h - fix missing colon in docstring selinux: Make selinux_kernfs_init_security static kernfs: initialize security of newly created nodes selinux: implement the kernfs_init_security hook LSM: add new hook for kernfs node initialization kernfs: use simple_xattrs for security attributes selinux: try security xattr after genfs for kernfs filesystems kernfs: do not alloc iattrs in kernfs_xattr_get kernfs: clean up struct kernfs_iattrs scripts/selinux: fix build selinux: use kernel linux/socket.h for genheaders and mdp scripts/selinux: modernize mdp commit 498e8631f27ed649bd3e31998a00b2b9b288cf3a Merge: e4eaa9efbf79 063b8271ec8f Author: Linus Torvalds Date: Tue May 7 18:45:27 2019 -0700 Merge branch 'stable/for-linus-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb Pull swiotlb updates from Konrad Rzeszutek Wilk: "Cleanups in the swiotlb code and extra debugfs knobs to help with the field diagnostics" * 'stable/for-linus-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/konrad/swiotlb: swiotlb-xen: ensure we have a single callsite for xen_dma_map_page swiotlb-xen: simplify the DMA sync method implementations swiotlb-xen: use ->map_page to implement ->map_sg swiotlb-xen: make instances match their method names swiotlb: save io_tlb_used to local variable before leaving critical section swiotlb: dump used and total slots when swiotlb buffer is full commit e4eaa9efbf79ccf6dc9915a9623049ef341bba85 Merge: 52ae2456d6a4 a1d78317f84b Author: Linus Torvalds Date: Tue May 7 18:43:36 2019 -0700 Merge tag 'for-5.2/libata-20190507' of git://git.kernel.dk/linux-block Pull libata updates from Jens Axboe: "Just two minor fixes queued up for 5.2, adding support for two different platforms to ahci" * tag 'for-5.2/libata-20190507' of git://git.kernel.dk/linux-block: ahci: qoriq: add ls1028a platforms support ahci: qoriq: add lx2160 platforms support commit 52ae2456d6a455ef958bcf1c2d1965674076887e Merge: 67a242223958 7889f44dd9ce Author: Linus Torvalds Date: Tue May 7 18:30:11 2019 -0700 Merge tag 'for-5.2/io_uring-20190507' of git://git.kernel.dk/linux-block Pull io_uring updates from Jens Axboe: "Set of changes/improvements for io_uring. This contains: - Fix of a shadowed variable (Colin) - Add support for draining commands (me) - Add support for sync_file_range() (me) - Add eventfd support (me) - cpu_online() fix (Shenghui) - Removal of a redundant ->error assignment (Stefan)" * tag 'for-5.2/io_uring-20190507' of git://git.kernel.dk/linux-block: io_uring: use cpu_online() to check p->sq_thread_cpu instead of cpu_possible() io_uring: fix shadowed variable ret return code being not checked req->error only used for iopoll io_uring: add support for eventfd notifications io_uring: add support for IORING_OP_SYNC_FILE_RANGE fs: add sync_file_range() helper io_uring: add support for marking commands as draining commit 67a242223958d628f0ba33283668e3ddd192d057 Merge: 8b35ad6232c4 b8753433fc61 Author: Linus Torvalds Date: Tue May 7 18:14:36 2019 -0700 Merge tag 'for-5.2/block-20190507' of git://git.kernel.dk/linux-block Pull block updates from Jens Axboe: "Nothing major in this series, just fixes and improvements all over the map. This contains: - Series of fixes for sed-opal (David, Jonas) - Fixes and performance tweaks for BFQ (via Paolo) - Set of fixes for bcache (via Coly) - Set of fixes for md (via Song) - Enabling multi-page for passthrough requests (Ming) - Queue release fix series (Ming) - Device notification improvements (Martin) - Propagate underlying device rotational status in loop (Holger) - Removal of mtip32xx trim support, which has been disabled for years (Christoph) - Improvement and cleanup of nvme command handling (Christoph) - Add block SPDX tags (Christoph) - Cleanup/hardening of bio/bvec iteration (Christoph) - A few NVMe pull requests (Christoph) - Removal of CONFIG_LBDAF (Christoph) - Various little fixes here and there" * tag 'for-5.2/block-20190507' of git://git.kernel.dk/linux-block: (164 commits) block: fix mismerge in bvec_advance block: don't drain in-progress dispatch in blk_cleanup_queue() blk-mq: move cancel of hctx->run_work into blk_mq_hw_sysfs_release blk-mq: always free hctx after request queue is freed blk-mq: split blk_mq_alloc_and_init_hctx into two parts blk-mq: free hw queue's resource in hctx's release handler blk-mq: move cancel of requeue_work into blk_mq_release blk-mq: grab .q_usage_counter when queuing request from plug code path block: fix function name in comment nvmet: protect discovery change log event list iteration nvme: mark nvme_core_init and nvme_core_exit static nvme: move command size checks to the core nvme-fabrics: check more command sizes nvme-pci: check more command sizes nvme-pci: remove an unneeded variable initialization nvme-pci: unquiesce admin queue on shutdown nvme-pci: shutdown on timeout during deletion nvme-pci: fix psdt field for single segment sgls nvme-multipath: don't print ANA group state by default nvme-multipath: split bios with the ns_head bio_set before submitting ... commit 8b35ad6232c462b02e397e87ce702bcddd4ba543 Merge: f678d6da7499 0db37915d912 Author: Linus Torvalds Date: Tue May 7 18:02:51 2019 -0700 Merge tag 'leds-for-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds Pull LED updates from Jacek Anaszewski: "LED core fixes and improvements: - avoid races with workqueue - Kconfig: pedantic cleanup - small fixes for Flash class description leds-lt3593: - remove unneeded assignment in lt3593_led_probe - drop pdata handling code leds-blinkm: - clean up double assignment to data->i2c_addr leds-pca955x, leds-pca963x: - revert ACPI support, as it turned out that there is no evidence of officially registered ACPI IDs for these devices. - make use of device property API leds-as3645a: - switch to fwnode property API LED related addition to ACPI documentation: - document how to refer to LEDs from remote nodes LED related fix to ALSA line6/toneport driver: - avoid polluting led_* namespace And lm3532 driver relocation from MFD to LED subsystem, accompanied by various improvements and optimizations; it entails also a change in omap4-droid4-xt894.dts: - leds: lm3532: Introduce the lm3532 LED driver - mfd: ti-lmu: Remove LM3532 backlight driver references - ARM: dts: omap4-droid4: Update backlight dt properties - dt: lm3532: Add lm3532 dt doc and update ti_lmu doc" * tag 'leds-for-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds: leds: avoid races with workqueue ALSA: line6: Avoid polluting led_* namespace leds: lm3532: Introduce the lm3532 LED driver mfd: ti-lmu: Remove LM3532 backlight driver references ARM: dts: omap4-droid4: Update backlight dt properties dt: lm3532: Add lm3532 dt doc and update ti_lmu doc leds: Small fixes for Flash class description leds: blinkm: clean up double assignment to data->i2c_addr leds: pca963x: Make use of device property API leds: pca955x: Make use of device property API leds: lt3593: Remove unneeded assignment in lt3593_led_probe leds: lt3593: drop pdata handling code leds: pca955x: Revert "Add ACPI support" leds: pca963x: Revert "Add ACPI support" drivers: leds: Kconfig: pedantic cleanups ACPI: Document how to refer to LEDs from remote nodes leds: as3645a: Switch to fwnode property API commit 7fb1fc420f3b1cb27cce5aa1050eb5d9161d0944 Author: Masahiro Yamada Date: Tue May 7 21:48:46 2019 +0900 .gitignore: add more all*.config patterns For completeness, ignore all the allconfig variants. I added a leading slash because they are only searched in the top of the tree. Signed-off-by: Masahiro Yamada commit a9e41a529681b38087c91ebc0bb91e12f510ca2d Merge: 23bfaa594002 a3147770bea7 Author: David S. Miller Date: Tue May 7 17:22:09 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Minor conflict with the DSA legacy code removal. Signed-off-by: David S. Miller commit d9defe448f4c7b88ca2ae636a321ef8970fa718d Author: Petr Mladek Date: Fri May 3 16:30:24 2019 +0200 docs/livepatch: Unify style of livepatch documentation in the ReST format Make the structure of "Livepatch module Elf format" document similar to the main "Livepatch" document. Also make the structure of "(Un)patching Callbacks" document similar to the "Shadow Variables" document. It fixes the most visible inconsistencies of the documentation generated from the ReST format. Signed-off-by: Petr Mladek Acked-by: Joe Lawrence Acked-by: Josh Poimboeuf Acked-by: Miroslav Benes Reviewed-by: Mauro Carvalho Chehab Reviewed-by: Kamalesh Babulal Signed-off-by: Jonathan Corbet commit 89e33ea73295327f22fd1594f97cc70a5381b74a Author: Mauro Carvalho Chehab Date: Fri May 3 16:30:23 2019 +0200 docs: livepatch: convert docs to ReST and rename to *.rst Convert livepatch documentation to ReST format. The changes are mostly trivial, as the documents are already on a good shape. Just a few markup changes are needed for Sphinx to properly parse the docs. The conversion is actually: - add blank lines and identation in order to identify paragraphs; - fix tables markups; - add some lists markups; - mark literal blocks; - The in-file TOC becomes a comment, in order to skip it from the output, as Sphinx already generates an index there. - adjust title markups. At its new index.rst, let's add a :orphan: while this is not linked to the main index.rst file, in order to avoid build warnings. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Petr Mladek Acked-by: Miroslav Benes Acked-by: Josh Poimboeuf Acked-by: Joe Lawrence Reviewed-by: Kamalesh Babulal Signed-off-by: Jonathan Corbet commit f4686c26ecc34e8e458b8235f0af5198c9b13bfd Author: Abhi Das Date: Thu May 2 14:17:40 2019 -0500 gfs2: read journal in large chunks Use bios to read in the journal into the address space of the journal inode (jd_inode), sequentially and in large chunks. This is faster for locating the journal head that the previous binary search approach. When performing recovery, we keep the journal in the address space until recovery is done, which further speeds up things. Signed-off-by: Abhi Das Signed-off-by: Andreas Gruenbacher commit d0a22a4b03b8475b7aa3fa41243c26c291407844 Author: Andreas Gruenbacher Date: Mon Apr 29 20:50:30 2019 +0100 gfs2: Fix iomap write page reclaim deadlock Since commit 64bc06bb32ee ("gfs2: iomap buffered write support"), gfs2 is doing buffered writes by starting a transaction in iomap_begin, writing a range of pages, and ending that transaction in iomap_end. This approach suffers from two problems: (1) Any allocations necessary for the write are done in iomap_begin, so when the data aren't journaled, there is no need for keeping the transaction open until iomap_end. (2) Transactions keep the gfs2 log flush lock held. When iomap_file_buffered_write calls balance_dirty_pages, this can end up calling gfs2_write_inode, which will try to flush the log. This requires taking the log flush lock which is already held, resulting in a deadlock. Fix both of these issues by not keeping transactions open from iomap_begin to iomap_end. Instead, start a small transaction in page_prepare and end it in page_done when necessary. Reported-by: Edwin Török Fixes: 64bc06bb32ee ("gfs2: iomap buffered write support") Signed-off-by: Andreas Gruenbacher Signed-off-by: Bob Peterson commit 8f91821990fd6f170a5dca79697a441181a41b16 Author: Abhi Das Date: Tue Apr 30 16:53:47 2019 -0500 gfs2: fix race between gfs2_freeze_func and unmount As part of the freeze operation, gfs2_freeze_func() is left blocking on a request to hold the sd_freeze_gl in SH. This glock is held in EX by the gfs2_freeze() code. A subsequent call to gfs2_unfreeze() releases the EXclusively held sd_freeze_gl, which allows gfs2_freeze_func() to acquire it in SH and resume its operation. gfs2_unfreeze(), however, doesn't wait for gfs2_freeze_func() to complete. If a umount is issued right after unfreeze, it could result in an inconsistent filesystem because some journal data (statfs update) isn't written out. Refer to commit 24972557b12c for a more detailed explanation of how freeze/unfreeze work. This patch causes gfs2_unfreeze() to wait for gfs2_freeze_func() to complete before returning to the user. Signed-off-by: Abhi Das Signed-off-by: Andreas Gruenbacher commit fbb27873f21d5fb9bf556edcaa67e9891636e5d4 Author: Andreas Gruenbacher Date: Fri Apr 5 12:18:23 2019 +0100 gfs2: Rename gfs2_trans_{add_unrevoke => remove_revoke} Rename gfs2_trans_add_unrevoke to gfs2_trans_remove_revoke: there is no such thing as an "unrevoke" object; all this function does is remove existing revoke objects plus some bookkeeping. Signed-off-by: Andreas Gruenbacher commit a5b1d3fc503164bb04e2b720054ab07d8a0004fc Author: Andreas Gruenbacher Date: Fri Apr 5 12:16:14 2019 +0100 gfs2: Rename sd_log_le_{revoke,ordered} Rename sd_log_le_revoke to sd_log_revokes and sd_log_le_ordered to sd_log_ordered: not sure what le stands for here, but it doesn't add clarity, and if it stands for list entry, it's actually confusing as those are both list heads but not list entries. Signed-off-by: Andreas Gruenbacher commit 32ac43f6a4ebf398c82e4b541fbe1229b2e47384 Author: Andreas Gruenbacher Date: Thu Apr 4 15:32:41 2019 +0100 gfs2: Remove unnecessary extern declarations Make log operations statuc; they are only used locally. Signed-off-by: Andreas Gruenbacher commit ce895cf15ab60b93464ebbb515f2fc9e7a8cef9a Author: Andreas Gruenbacher Date: Wed Apr 3 17:09:15 2019 +0100 gfs2: Remove misleading comments in gfs2_evict_inode Signed-off-by: Andreas Gruenbacher commit 73118ca8baf78dddd1f9c8ac67c1d80b47d9830e Author: Bob Peterson Date: Fri Apr 5 04:41:38 2019 +0100 gfs2: Replace gl_revokes with a GLF flag The gl_revokes value determines how many outstanding revokes a glock has on the superblock revokes list; this is used to avoid unnecessary log flushes. However, gl_revokes is only ever tested for being zero, and it's only decremented in revoke_lo_after_commit, which removes all revokes from the list, so we know that the gl_revoke values of all the glocks on the list will reach zero. Therefore, we can replace gl_revokes with a bit flag. This saves an atomic counter in struct gfs2_glock. Signed-off-by: Bob Peterson Signed-off-by: Andreas Gruenbacher commit 9287c6452d2b1f24ea8e84bd3cf6f3c6f267f712 Author: Andreas Gruenbacher Date: Thu Apr 4 21:11:11 2019 +0100 gfs2: Fix occasional glock use-after-free This patch has to do with the life cycle of glocks and buffers. When gfs2 metadata or journaled data is queued to be written, a gfs2_bufdata object is assigned to track the buffer, and that is queued to various lists, including the glock's gl_ail_list to indicate it's on the active items list. Once the page associated with the buffer has been written, it is removed from the ail list, but its life isn't over until a revoke has been successfully written. So after the block is written, its bufdata object is moved from the glock's gl_ail_list to a file-system-wide list of pending revokes, sd_log_le_revoke. At that point the glock still needs to track how many revokes it contributed to that list (in gl_revokes) so that things like glock go_sync can ensure all the metadata has been not only written, but also revoked before the glock is granted to a different node. This is to guarantee journal replay doesn't replay the block once the glock has been granted to another node. Ross Lagerwall recently discovered a race in which an inode could be evicted, and its glock freed after its ail list had been synced, but while it still had unwritten revokes on the sd_log_le_revoke list. The evict decremented the glock reference count to zero, which allowed the glock to be freed. After the revoke was written, function revoke_lo_after_commit tried to adjust the glock's gl_revokes counter and clear its GLF_LFLUSH flag, at which time it referenced the freed glock. This patch fixes the problem by incrementing the glock reference count in gfs2_add_revoke when the glock's first bufdata object is moved from the glock to the global revokes list. Later, when the glock's last such bufdata object is freed, the reference count is decremented. This guarantees that whichever process finishes last (the revoke writing or the evict) will properly free the glock, and neither will reference the glock after it has been freed. Reported-by: Ross Lagerwall Signed-off-by: Andreas Gruenbacher Signed-off-by: Bob Peterson commit 7c70b896951c84d63e6d71b82668f9c8b8bbd440 Author: Bob Peterson Date: Mon Mar 25 09:34:19 2019 -0600 gfs2: clean_journal improperly set sd_log_flush_head This patch fixes regressions in 588bff95c94efc05f9e1a0b19015c9408ed7c0ef. Due to that patch, function clean_journal was setting the value of sd_log_flush_head, but that's only valid if it is replaying the node's own journal. If it's replaying another node's journal, that's completely wrong and will lead to multiple problems. This patch tries to clean up the mess by passing the value of the logical journal block number into gfs2_write_log_header so the function can treat non-owned journals generically. For the local journal, the journal extent map is used for best performance. For other nodes from other journals, new function gfs2_lblk_to_dblk is called to figure it out using gfs2_iomap_get. This patch also tries to establish more consistency when passing journal block parameters by changing several unsigned int types to a consistent u32. Fixes: 588bff95c94e ("GFS2: Reduce code redundancy writing log headers") Signed-off-by: Bob Peterson Signed-off-by: Andreas Gruenbacher commit fdeb89d84eb28241f5168cc13cc53a5c39f5d111 Author: Mathieu Desnoyers Date: Mon Apr 29 11:28:03 2019 -0400 rseq/selftests: add -no-integrated-as for clang Ongoing work for asm goto support from clang requires the -no-integrated-as compiler flag. This compiler flag is present in the toplevel kernel Makefile, but is not replicated for selftests. Add it specifically for the rseq selftest which requires asm goto. Link: https://reviews.llvm.org/D56571 Signed-off-by: Mathieu Desnoyers CC: Nick Desaulniers CC: Thomas Gleixner CC: Joel Fernandes CC: Peter Zijlstra CC: Catalin Marinas CC: Dave Watson CC: Will Deacon CC: Shuah Khan CC: Andi Kleen CC: linux-kselftest@vger.kernel.org CC: "H . Peter Anvin" CC: Chris Lameter CC: Russell King CC: Michael Kerrisk CC: "Paul E . McKenney" CC: Paul Turner CC: Boqun Feng CC: Josh Triplett CC: Steven Rostedt CC: Ben Maurer CC: linux-api@vger.kernel.org CC: Andy Lutomirski CC: Andrew Morton CC: Linus Torvalds Reviewed-by: Nick Desaulniers Signed-off-by: Shuah Khan commit 16b96b6ed87faa616e2d2750ba44d78ee157ce26 Author: Mathieu Desnoyers Date: Mon Apr 29 11:28:02 2019 -0400 rseq/selftests: mips: use break instruction for RSEQ_SIG Use break as guard instruction for the restartable sequence abort handler. Previously, the chosen signature was simply data, based on the assumption that it could always sit in a literal pool. However, some compilation environments favor disabling literal pool. Therefore, ensure the signature is a valid uncommon trap instruction. Suggested-by: Paul Burton Signed-off-by: Mathieu Desnoyers CC: Paul Burton CC: James Hogan Cc: Ralf Baechle Cc: Mathieu Desnoyers Cc: Peter Zijlstra Cc: Paul E. McKenney Cc: Boqun Feng Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Shuah Khan commit 496fd0fc9f5c4c187e69e8697387a7604ab7141d Author: Mathieu Desnoyers Date: Mon Apr 29 11:28:01 2019 -0400 rseq/selftests: powerpc code signature: generate valid instructions Use "twui" as the guard instruction for the restartable sequence abort handler. Signed-off-by: Mathieu Desnoyers CC: Benjamin Herrenschmidt CC: Paul Mackerras CC: Michael Ellerman CC: Boqun Feng CC: Peter Zijlstra CC: "Paul E. McKenney" CC: Alan Modra CC: linuxppc-dev@lists.ozlabs.org Signed-off-by: Shuah Khan commit 7cd4ce2e466f56ae92930adbded675a4e326a59e Author: Mathieu Desnoyers Date: Mon Apr 29 11:28:00 2019 -0400 rseq/selftests: aarch64 code signature: handle big-endian environment Handle compiling with -mbig-endian on aarch64, which generates binaries with mixed code vs data endianness (little endian code, big endian data). Else mismatch between code endianness for the generated signatures and data endianness for the RSEQ_SIG parameter passed to the rseq registration will trigger application segmentation faults when the kernel try to abort rseq critical sections. Signed-off-by: Mathieu Desnoyers Acked-by: Will Deacon CC: Peter Zijlstra CC: Thomas Gleixner CC: Joel Fernandes CC: Catalin Marinas CC: Dave Watson CC: Will Deacon CC: Shuah Khan CC: Andi Kleen CC: linux-kselftest@vger.kernel.org CC: "H . Peter Anvin" CC: Chris Lameter CC: Russell King CC: Michael Kerrisk CC: "Paul E . McKenney" CC: Paul Turner CC: Boqun Feng CC: Josh Triplett CC: Steven Rostedt CC: Ben Maurer CC: linux-api@vger.kernel.org CC: Andy Lutomirski CC: Andrew Morton CC: Linus Torvalds Signed-off-by: Shuah Khan commit 2b845d4b4acd9422bbb668989db8dc36dfc8f438 Author: Mathieu Desnoyers Date: Fri May 3 15:38:58 2019 -0400 rseq/selftests: arm: use udf instruction for RSEQ_SIG Use udf as the guard instruction for the restartable sequence abort handler. Previously, the chosen signature was not a valid instruction, based on the assumption that it could always sit in a literal pool. However, there are compilation environments in which literal pools are not available, for instance execute-only code. Therefore, we need to choose a signature value that is also a valid instruction. Handle compiling with -mbig-endian on ARMv6+, which generates binaries with mixed code vs data endianness (little endian code, big endian data). Else mismatch between code endianness for the generated signatures and data endianness for the RSEQ_SIG parameter passed to the rseq registration will trigger application segmentation faults when the kernel try to abort rseq critical sections. Prior to ARMv6, -mbig-endian generates big-endian code and data, so endianness should not be reversed in that case. Signed-off-by: Mathieu Desnoyers CC: Peter Zijlstra CC: Thomas Gleixner CC: Joel Fernandes CC: Catalin Marinas CC: Dave Watson CC: Will Deacon CC: Shuah Khan CC: Andi Kleen CC: linux-kselftest@vger.kernel.org CC: "H . Peter Anvin" CC: Chris Lameter CC: Russell King CC: Michael Kerrisk CC: "Paul E . McKenney" CC: Paul Turner CC: Boqun Feng CC: Josh Triplett CC: Steven Rostedt CC: Ben Maurer CC: linux-api@vger.kernel.org CC: Andy Lutomirski CC: Andrew Morton CC: Linus Torvalds Signed-off-by: Shuah Khan commit 3d4d1f05bc990f240d66b0ffaf7121397e14df19 Author: Martin Schwidefsky Date: Mon Apr 29 11:27:58 2019 -0400 rseq/selftests: s390: use trap4 for RSEQ_SIG Use trap4 as the guard instruction for the restartable sequence abort handler. Signed-off-by: Martin Schwidefsky Signed-off-by: Mathieu Desnoyers Signed-off-by: Shuah Khan commit 24fa5d1efe98bc09a96ba41fdba96ef715aede77 Author: Mathieu Desnoyers Date: Mon Apr 29 11:27:57 2019 -0400 rseq/selftests: x86: use ud1 instruction as RSEQ_SIG opcode Use ud1 as the guard instruction for the restartable sequence abort handler. Its benefit compared to nopl is to trap execution if the program ends up trying to execute it by mistake, which makes debugging easier. The 4-byte signature per se is unchanged (it is the instruction operand). Only the opcode is changed from nopl to ud1. Signed-off-by: Mathieu Desnoyers Suggested-by: Peter Zijlstra CC: Peter Zijlstra CC: Thomas Gleixner CC: Joel Fernandes CC: Catalin Marinas CC: Dave Watson CC: Will Deacon CC: Shuah Khan CC: Andi Kleen CC: linux-kselftest@vger.kernel.org CC: "H . Peter Anvin" CC: Chris Lameter CC: Russell King CC: Michael Kerrisk CC: "Paul E . McKenney" CC: Paul Turner CC: Boqun Feng CC: Josh Triplett CC: Steven Rostedt CC: Ben Maurer CC: linux-api@vger.kernel.org CC: Andy Lutomirski CC: Andrew Morton CC: Linus Torvalds Signed-off-by: Shuah Khan commit 97b8be816840da81296f3a90352a7fce4e66c156 Author: Mathieu Desnoyers Date: Mon Apr 29 11:27:56 2019 -0400 rseq/selftests: s390: use jg instruction for jumps outside of the asm The branch target range of the "j" instruction is 64K, which is not enough for the general case. Suggested-by: Martin Schwidefsky Signed-off-by: Mathieu Desnoyers CC: Thomas Gleixner CC: Joel Fernandes CC: Peter Zijlstra CC: Catalin Marinas CC: Dave Watson CC: Will Deacon CC: Shuah Khan CC: Andi Kleen CC: linux-kselftest@vger.kernel.org CC: "H . Peter Anvin" CC: Chris Lameter CC: Russell King CC: Michael Kerrisk CC: "Paul E . McKenney" CC: Paul Turner CC: Boqun Feng CC: Josh Triplett CC: Steven Rostedt CC: Ben Maurer CC: linux-api@vger.kernel.org CC: Andy Lutomirski CC: Andrew Morton CC: Linus Torvalds Signed-off-by: Shuah Khan commit 5b0c308a0565a94d2e1070cbf287197b676faaaf Author: Mathieu Desnoyers Date: Mon Apr 29 11:27:55 2019 -0400 rseq/selftests: Use __rseq_handled symbol to coexist with glibc In order to integrate rseq into user-space applications, expose a __rseq_handled symbol so many rseq users can be linked into the same application (e.g. librseq and glibc). The __rseq_refcount TLS variable is static to the librseq library. It ensures that rseq syscall registration/unregistration happens only for the most early/late caller to rseq_{,un}register_current_thread for each thread, thus ensuring that rseq is registered across the lifetime of all rseq users for a given thread. Signed-off-by: Mathieu Desnoyers CC: Shuah Khan CC: Carlos O'Donell CC: Florian Weimer CC: Joseph Myers CC: Szabolcs Nagy CC: Thomas Gleixner CC: Ben Maurer CC: Peter Zijlstra CC: "Paul E. McKenney" CC: Boqun Feng CC: Will Deacon CC: Dave Watson CC: Paul Turner CC: linux-api@vger.kernel.org Signed-off-by: Shuah Khan commit a3e3131f94aa1daeb978ed66d0b4e61156ef2c2a Author: Mathieu Desnoyers Date: Mon Apr 29 11:27:54 2019 -0400 rseq/selftests: Introduce __rseq_cs_ptr_array, rename __rseq_table to __rseq_cs The entries within __rseq_table are aligned on 32 bytes due to linux/rseq.h struct rseq_cs uapi requirements, but the start of the __rseq_table section is not guaranteed to be 32-byte aligned. It can cause padding to be added at the start of the section, which makes it hard to use as an array of items by debuggers. Considering that __rseq_table does not really consist of a table due to the presence of padding, rename this section to __rseq_cs. Create a new __rseq_cs_ptr_array section which contains 64-bit packed pointers to entries within the __rseq_cs section. Signed-off-by: Mathieu Desnoyers CC: Thomas Gleixner CC: Joel Fernandes CC: Peter Zijlstra CC: Catalin Marinas CC: Dave Watson CC: Will Deacon CC: Shuah Khan CC: Andi Kleen CC: linux-kselftest@vger.kernel.org CC: "H . Peter Anvin" CC: Chris Lameter CC: Russell King CC: Michael Kerrisk CC: "Paul E . McKenney" CC: Paul Turner CC: Boqun Feng CC: Josh Triplett CC: Steven Rostedt CC: Ben Maurer CC: linux-api@vger.kernel.org CC: Andy Lutomirski CC: Andrew Morton CC: Linus Torvalds Signed-off-by: Shuah Khan commit 4fe2088e164d2ec44530fe2840f6be5906fbc650 Author: Mathieu Desnoyers Date: Mon Apr 29 11:27:53 2019 -0400 rseq/selftests: Add __rseq_exit_point_array section for debuggers Knowing all exit points is useful to assist debuggers stepping over the rseq critical sections without requiring them to disassemble the content of the critical section to figure out the exit points. Signed-off-by: Mathieu Desnoyers CC: Thomas Gleixner CC: Joel Fernandes CC: Peter Zijlstra CC: Catalin Marinas CC: Dave Watson CC: Will Deacon CC: Shuah Khan CC: Andi Kleen CC: linux-kselftest@vger.kernel.org CC: "H . Peter Anvin" CC: Chris Lameter CC: Russell King CC: Michael Kerrisk CC: "Paul E . McKenney" CC: Paul Turner CC: Boqun Feng CC: Josh Triplett CC: Steven Rostedt CC: Ben Maurer CC: linux-api@vger.kernel.org CC: Andy Lutomirski CC: Andrew Morton CC: Linus Torvalds Signed-off-by: Shuah Khan commit fe22983d92c15253ea8eb854acbe863fc2313759 Author: Mathieu Desnoyers Date: Mon Apr 29 11:27:52 2019 -0400 rseq/selftests: x86: Work-around bogus gcc-8 optimisation gcc-8 version 8.1.0, 8.2.0, and 8.3.0 generate broken assembler with asm goto that have a thread-local storage "m" input operand on both x86-32 and x86-64. For instance: __thread int var; static int fct(void) { asm goto ( "jmp %l[testlabel]\n\t" : : [var] "m" (var) : : testlabel); return 0; testlabel: return 1; } int main() { return fct(); } % gcc-8 -O2 -o test-asm-goto test-asm-goto.c /tmp/ccAdHJbe.o: In function `main': test-asm-goto.c:(.text.startup+0x1): undefined reference to `.L2' collect2: error: ld returned 1 exit status % gcc-8 -m32 -O2 -o test-asm-goto test-asm-goto.c /tmp/ccREsVXA.o: In function `main': test-asm-goto.c:(.text.startup+0x1): undefined reference to `.L2' collect2: error: ld returned 1 exit status Work-around this compiler bug in the rseq-x86.h header by passing the address of the __rseq_abi TLS as a register operand rather than using the "m" input operand. Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90193 Signed-off-by: Mathieu Desnoyers CC: Ingo Molnar CC: Peter Zijlstra CC: Thomas Gleixner CC: Joel Fernandes CC: Catalin Marinas CC: Dave Watson CC: Will Deacon CC: Shuah Khan CC: Andi Kleen CC: linux-kselftest@vger.kernel.org CC: "H . Peter Anvin" CC: Chris Lameter CC: Russell King CC: Michael Kerrisk CC: "Paul E . McKenney" CC: Paul Turner CC: Boqun Feng CC: Josh Triplett CC: Steven Rostedt CC: Ben Maurer CC: linux-api@vger.kernel.org CC: Andy Lutomirski CC: Andrew Morton CC: Linus Torvalds Signed-off-by: Shuah Khan commit 1987b1b8f9f17a06255877e7917d0bb5b5377774 Author: Bartosz Golaszewski Date: Thu Apr 11 11:49:44 2019 +0200 um: irq: don't set the chip for all irqs Setting a chip for an interrupt marks it as allocated. Since UM doesn't support dynamic interrupt numbers (yet), it means we cannot simply increase NR_IRQS and then use the free irqs between LAST_IRQ and NR_IRQS with gpio-mockup or iio testing drivers as irq_alloc_descs() will fail after not being able to neither find an unallocated range of interrupts nor expand the range. Only call irq_set_chip_and_handler() for irqs until LAST_IRQ. Signed-off-by: Bartosz Golaszewski Reviewed-by: Anton Ivanov Acked-by: Anton Ivanov Signed-off-by: Richard Weinberger commit ea70d791c1687529edf9bb9a69530a66e1ca4584 Author: Bartosz Golaszewski Date: Thu Apr 11 11:49:43 2019 +0200 um: define set_pte_at() as a static inline function, not a macro When defined as macro, the mm argument is unused and subsequently the variable passed as mm is considered unused by the compiler. This fixes a build warning. Signed-off-by: Bartosz Golaszewski Reviewed-by: Geert Uytterhoeven Reviewed-by: Anton Ivanov Acked-by: Anton Ivanov Signed-off-by: Richard Weinberger commit 0d4e5ac7e78035950d564e65c38ce148cb9af681 Author: Bartosz Golaszewski Date: Thu Apr 11 11:49:42 2019 +0200 um: remove uses of variable length arrays While the affected code is run in user-mode, the build still warns about it. Convert all uses of VLA to dynamic allocations. Signed-off-by: Bartosz Golaszewski Signed-off-by: Richard Weinberger commit 4b6b4c902947cae374593e601400a7bdd3d7f7a4 Author: Bartosz Golaszewski Date: Thu Apr 11 11:49:41 2019 +0200 um: remove unused variable The buf variable is unused. Remove it. Signed-off-by: Bartosz Golaszewski Reviewed-by: Anton Ivanov Acked-by: Anton Ivanov Signed-off-by: Richard Weinberger commit 689a58605b63173acb0a8cf954af6a8f60440c93 Author: Maciej Żenczykowski Date: Wed Apr 10 11:11:23 2019 -0700 uml: fix a boot splat wrt use of cpu_all_mask Memory: 509108K/542612K available (3835K kernel code, 919K rwdata, 1028K rodata, 129K init, 211K bss, 33504K reserved, 0K cma-reserved) NR_IRQS: 15 clocksource: timer: mask: 0xffffffffffffffff max_cycles: 0x1cd42e205, max_idle_ns: 881590404426 ns ------------[ cut here ]------------ WARNING: CPU: 0 PID: 0 at kernel/time/clockevents.c:458 clockevents_register_device+0x72/0x140 posix-timer cpumask == cpu_all_mask, using cpu_possible_mask instead Modules linked in: CPU: 0 PID: 0 Comm: swapper Not tainted 5.1.0-rc4-00048-ged79cc87302b #4 Stack: 604ebda0 603c5370 604ebe20 6046fd17 00000000 6006fcbb 604ebdb0 603c53b5 604ebe10 6003bfc4 604ebdd0 9000001ca Call Trace: [<6006fcbb>] ? printk+0x0/0x94 [<60083160>] ? clockevents_register_device+0x72/0x140 [<6001f16e>] show_stack+0x13b/0x155 [<603c5370>] ? dump_stack_print_info+0xe2/0xeb [<6006fcbb>] ? printk+0x0/0x94 [<603c53b5>] dump_stack+0x2a/0x2c [<6003bfc4>] __warn+0x10e/0x13e [<60070320>] ? vprintk_func+0xc8/0xcf [<60030fd6>] ? block_signals+0x0/0x16 [<6006fcbb>] ? printk+0x0/0x94 [<6003c08b>] warn_slowpath_fmt+0x97/0x99 [<600311a1>] ? set_signals+0x0/0x3f [<6003bff4>] ? warn_slowpath_fmt+0x0/0x99 [<600842cb>] ? tick_oneshot_mode_active+0x44/0x4f [<60030fd6>] ? block_signals+0x0/0x16 [<6006fcbb>] ? printk+0x0/0x94 [<6007d2d5>] ? __clocksource_select+0x20/0x1b1 [<60030fd6>] ? block_signals+0x0/0x16 [<6006fcbb>] ? printk+0x0/0x94 [<60083160>] clockevents_register_device+0x72/0x140 [<60031192>] ? get_signals+0x0/0xf [<60030fd6>] ? block_signals+0x0/0x16 [<6006fcbb>] ? printk+0x0/0x94 [<60002eec>] um_timer_setup+0xc8/0xca [<60001b59>] start_kernel+0x47f/0x57e [<600035bc>] start_kernel_proc+0x49/0x4d [<6006c483>] ? kmsg_dump_register+0x82/0x8a [<6001de62>] new_thread_handler+0x81/0xb2 [<60003571>] ? kmsg_dumper_stdout_init+0x1a/0x1c [<60020c75>] uml_finishsetup+0x54/0x59 random: get_random_bytes called from init_oops_id+0x27/0x34 with crng_init=0 ---[ end trace 00173d0117a88acb ]--- Calibrating delay loop... 6941.90 BogoMIPS (lpj=34709504) Signed-off-by: Maciej Żenczykowski Cc: Jeff Dike Cc: Richard Weinberger Cc: Anton Ivanov Cc: linux-um@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Richard Weinberger commit 9ca55299f2ee0a2ccf41d99bfc02d5ad3118e03b Author: Daniel Walter Date: Tue Apr 2 10:43:32 2019 +0200 um: Do not unlock mutex that is not hold. Return error instead of trying to unlock a mutex that is not hold. Signed-off-by: Daniel Walter Reviewed-by: Anton Ivanov Acked-by: Anton Ivanov Signed-off-by: Richard Weinberger commit 91e1e547abcd88f1e23204e62e377aaa7c93a786 Author: Colin Ian King Date: Sun Mar 17 23:09:09 2019 +0000 hostfs: fix mismatch between link_file definition and declaration The function link_file declaration in the header file has the order of the two arguments (from, to) swapped when compared to the definition arguments of (to, from). Fix this by swapping them around to match the definition. This error predates the git history, so no idea when this error was introduced. Signed-off-by: Colin Ian King Signed-off-by: Richard Weinberger commit 75f24f78721048a271e2e50a563f51bcfd6f5c1c Author: Enrico Weigelt, metux IT consult Date: Thu Mar 7 23:22:37 2019 +0100 arch: um: drivers: Kconfig: pedantic formatting Formatting of Kconfig files doesn't look so pretty, so just take damp cloth and clean it up. Just indention changes. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Richard Weinberger commit 37606596d19d53bbc94e8e7f174c4df762682ccb Author: Enrico Weigelt, metux IT consult Date: Wed Mar 6 22:14:55 2019 +0100 arch: um: Kconfig: pedantic indention cleanups Formatting of Kconfig files doesn't look so pretty, so just take damp cloth and clean it up. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Richard Weinberger commit 5c2ffce1e9496477720966e70d79f2da3e4b84e6 Author: Anton Ivanov Date: Fri Jan 4 15:38:21 2019 +0000 um: Revert to using stack for pt_regs in signal handling Reverts commit b6024b21fec8367ef961a771cc9dde31f1831965 and adjusts default stack sizing to cope with larger size of floating point save registers on the newer Intel CPUs. b6024b21fec8367ef961a771cc9dde31f1831965 replaced storing the register state on the stack with kmalloc-ed storage. That has a number of issues and a panic if that fails. 1. kmalloc/ATOMIC can fail. There was a latent hard crash in all interrupt and fault handling as a result. 2. kmalloc in the interrupt path introduces a considerable performance penalty for networking ~ 14% on iperf. This commit restores uml to a stable state until a better solution is found. Signed-off-by: Anton Ivanov Signed-off-by: Richard Weinberger commit 0981949da8f7498b96c6e0ae60680865ca283bf1 Author: Gustavo A. R. Silva Date: Tue May 7 12:27:21 2019 -0700 Input: libps2 - mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warning: drivers/input/serio/libps2.c: In function ‘ps2_handle_ack’: drivers/input/serio/libps2.c:407:6: warning: this statement may fall through [-Wimplicit-fallthrough=] if (ps2dev->flags & PS2_FLAG_NAK) { ^ drivers/input/serio/libps2.c:417:2: note: here case 0x00: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Dmitry Torokhov commit cbebf5addec1a7c46b67868de031fca97e36995b Author: Marco Felsch Date: Sat May 4 09:49:23 2019 -0700 Input: qt1050 - add Microchip AT42QT1050 support Add initial support for the AT42QT1050 (QT1050) device. The device supports up to five input keys, dependent on the mode. Since it adds only the initial support, the "1 to 4 keys plus Guard Channel" mode isn't supported. Signed-off-by: Marco Felsch Reviewed-by: Rob Herring Signed-off-by: Dmitry Torokhov commit 0d6076184aecb97cc583bc7f9e125518d6c24404 Author: Nicholas Johnson Date: Tue May 7 14:51:24 2019 -0500 PCI: Cleanup setup-bus.c comments and whitespace Cleanup comments, kernel-doc, coding style. No functional changes intended; comment and whitespace changes only. Link: https://lore.kernel.org/lkml/PS2P216MB06427E290A68CDB921FB4B2980250@PS2P216MB0642.KORP216.PROD.OUTLOOK.COM Signed-off-by: Nicholas Johnson [bhelgaas: tidy related things throughout the file] Signed-off-by: Bjorn Helgaas commit d4c2ccdb5855ce8786ebc66f7405096065d0c198 Author: Pierre-Louis Bossart Date: Tue May 7 15:25:00 2019 -0500 ALSA: hda/intel: add CometLake PCI IDs Add PCI IDs for LP and H skews. Signed-off-by: Pierre-Louis Bossart Signed-off-by: Takashi Iwai commit f678d6da749983791850876e3421e7c48a0a7127 Merge: 2310673c3c12 aad14ad3cf3a Author: Linus Torvalds Date: Tue May 7 13:39:22 2019 -0700 Merge tag 'char-misc-5.2-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc Pull char/misc update part 2 from Greg KH: "Here is the "real" big set of char/misc driver patches for 5.2-rc1 Loads of different driver subsystem stuff in here, all over the places: - thunderbolt driver updates - habanalabs driver updates - nvmem driver updates - extcon driver updates - intel_th driver updates - mei driver updates - coresight driver updates - soundwire driver cleanups and updates - fastrpc driver updates - other minor driver updates - chardev minor fixups Feels like this tree is getting to be a dumping ground of "small driver subsystems" these days. Which is fine with me, if it makes things easier for those subsystem maintainers. All of these have been in linux-next for a while with no reported issues" * tag 'char-misc-5.2-rc1-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: (255 commits) intel_th: msu: Add current window tracking intel_th: msu: Add a sysfs attribute to trigger window switch intel_th: msu: Correct the block wrap detection intel_th: Add switch triggering support intel_th: gth: Factor out trace start/stop intel_th: msu: Factor out pipeline draining intel_th: msu: Switch over to scatterlist intel_th: msu: Replace open-coded list_{first,last,next}_entry variants intel_th: Only report useful IRQs to subdevices intel_th: msu: Start handling IRQs intel_th: pci: Use MSI interrupt signalling intel_th: Communicate IRQ via resource intel_th: Add "rtit" source device intel_th: Skip subdevices if their MMIO is missing intel_th: Rework resource passing between glue layers and core intel_th: SPDX-ify the documentation intel_th: msu: Fix single mode with IOMMU coresight: funnel: Support static funnel dt-bindings: arm: coresight: Unify funnel DT binding coresight: replicator: Add new device id for static replicator ... commit 7881ef3f33bb80f459ea6020d1e021fc524a6348 Author: Ross Lagerwall Date: Wed Mar 27 17:09:17 2019 +0000 gfs2: Fix lru_count going negative Under certain conditions, lru_count may drop below zero resulting in a large amount of log spam like this: vmscan: shrink_slab: gfs2_dump_glock+0x3b0/0x630 [gfs2] \ negative objects to delete nr=-1 This happens as follows: 1) A glock is moved from lru_list to the dispose list and lru_count is decremented. 2) The dispose function calls cond_resched() and drops the lru lock. 3) Another thread takes the lru lock and tries to add the same glock to lru_list, checking if the glock is on an lru list. 4) It is on a list (actually the dispose list) and so it avoids incrementing lru_count. 5) The glock is moved to lru_list. 5) The original thread doesn't dispose it because it has been re-added to the lru list but the lru_count has still decreased by one. Fix by checking if the LRU flag is set on the glock rather than checking if the glock is on some list and rearrange the code so that the LRU flag is added/removed precisely when the glock is added/removed from lru_list. Signed-off-by: Ross Lagerwall Signed-off-by: Andreas Gruenbacher commit 71921ef85928e95e3d942c747c9d40443a5ff775 Author: Andreas Gruenbacher Date: Thu Mar 14 16:48:48 2019 +0100 gfs2: Fix loop in gfs2_rbm_find (v2) Fix the resource group wrap-around logic in gfs2_rbm_find that commit e579ed4f44 broke. The bug can lead to unnecessary repeated scanning of the same bitmaps; there is a risk that future changes will turn this into an endless loop. This is an updated version of commit 2d29f6b96d ("gfs2: Fix loop in gfs2_rbm_find") which ended up being reverted because it introduced a performance regression in iozone (see commit e74c98ca2d). Changes since v1: - Simplify the wrap-around logic. - Handle the case where each resource group only has a single bitmap block (small filesystem). - Update rd_extfail_pt whenever we scan the entire bitmap, even when we don't start the scan at the very beginning of the bitmap. Fixes: e579ed4f446e ("GFS2: Introduce rbm field bii") Signed-off-by: Andreas Gruenbacher commit 2310673c3c12e4b7f8a31c41f67f701d24b0de86 Merge: e0dccbdf5ac7 24f1bc280bce Author: Linus Torvalds Date: Tue May 7 13:33:31 2019 -0700 Merge tag 'char-misc-5.2-rc1-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc Pull char/misc update part 1 from Greg KH: "This contains only a small number of bugfixes that would have gone to you for 5.1-rc8 if that had happened, but instead I let them sit in linux-next for an extra week just "to be sure". The "big" patch here is for hyper-v, fixing a bug in their sysfs files that could cause big problems. The others are all small fixes, resolving reported issues that showed up in 5.1-rcs, plus some odd 'static' cleanups for the phy drivers that really should have waited for -rc1. Most of these are tagged for the stable trees, so 5.1 will pick them up. All of these have been in linux-next for a while, with no reported issues" * tag 'char-misc-5.2-rc1-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: misc: rtsx: Fixed rts5260 power saving parameter and sd glitch binder: take read mode of mmap_sem in binder_alloc_free_page() intel_th: pci: Add Comet Lake support stm class: Fix channel bitmap on 32-bit systems stm class: Fix channel free in stm output free path phy: sun4i-usb: Make sure to disable PHY0 passby for peripheral mode phy: fix platform_no_drv_owner.cocci warnings phy: mapphone-mdm6600: add gpiolib dependency phy: ti: usb2: fix OMAP_CONTROL_PHY dependency phy: allwinner: allow compile testing phy: qcom-ufs: Make ufs_qcom_phy_disable_iface_clk static phy: rockchip-typec: Make usb3_pll_cfg and dp_pll_cfg static phy: phy-twl4030-usb: Fix cable state handling Drivers: hv: vmbus: Remove the undesired put_cpu_ptr() in hv_synic_cleanup() Drivers: hv: vmbus: Fix race condition with new ring_buffer_info mutex Drivers: hv: vmbus: Set ring_info field to 0 and remove memset Drivers: hv: vmbus: Refactor chan->state if statement Drivers: hv: vmbus: Expose monitor data only when monitor pages are used commit e0dccbdf5ac7ccb9da5612100dedba302f3ebcfe Merge: cf482a49af56 e2a5be107f52 Author: Linus Torvalds Date: Tue May 7 13:31:29 2019 -0700 Merge tag 'staging-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging Pull staging / IIO driver updates from Greg KH: "Here is the big staging and iio driver update for 5.2-rc1. Lots of tiny fixes all over the staging and IIO driver trees here, along with some new IIO drivers. The "counter" subsystem was added in here as well, as it is needed by the IIO drivers and subsystem. Also we ended up deleting two drivers, making this pull request remove a few hundred thousand lines of code, always a nice thing to see. Both of the drivers removed have been replaced with "real" drivers in their various subsystem directories, and they will be coming to you from those locations during this merge window. There are some core vt/selection changes in here, that was due to some cleanups needed for the speakup fixes. Those have all been acked by the various subsystem maintainers (i.e. me), so those are ok. We also added a few new drivers, for some odd hardware, giving new developers plenty to work on with basic coding style cleanups to come in the near future. Other than that, nothing unusual here. All of these have been in linux-next for a while with no reported issues, other than an odd gcc warning for one of the new drivers that should be fixed up soon" [ I fixed up the warning myself - Linus ] * tag 'staging-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (663 commits) staging: kpc2000: kpc_spi: Fix build error for {read,write}q Staging: rtl8192e: Remove extra space before break statement Staging: rtl8192u: ieee80211: Fix if-else indentation warning Staging: rtl8192u: ieee80211: Fix indentation errors by removing extra spaces staging: most: cdev: fix chrdev_region leak in mod_exit staging: wlan-ng: Fix improper SPDX comment style staging: rtl8192u: ieee80211: Resolve ERROR reported by checkpatch staging: vc04_services: bcm2835-camera: Compress two lines into one line staging: rtl8723bs: core: Use !x in place of NULL comparison. staging: rtl8723bs: core: Prefer using the BIT Macro. staging: fieldbus: anybus-s: fix wait_for_completion_timeout return handling staging: kpc2000: fix up build problems with readq() staging: rtlwifi: move remaining phydm .h files staging: rtlwifi: strip down phydm .h files staging: rtlwifi: delete the staging driver staging: fieldbus: anybus-s: rename bus id field to avoid confusion staging: fieldbus: anybus-s: keep device bus id in bus endianness Staging: sm750fb: Change *array into *const array staging: rtl8192u: ieee80211: Fix spelling mistake staging: rtl8192u: ieee80211: Replace bit shifting with BIT macro ... commit 4f43446ddff056df237a8ee9257ec94baeed909d Author: Mikulas Patocka Date: Mon Apr 29 14:57:21 2019 +0200 dm integrity: allow large ranges to be described Change n_sectors data type from unsigned to sector_t. Following commits will need to lock large ranges. Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer commit d5027e0345c2f014e1328b53e8d86a293edf1caf Author: Mikulas Patocka Date: Mon Apr 29 14:57:20 2019 +0200 dm ingerity: pass size to dm_integrity_alloc_page_list() Pass size to dm_integrity_alloc_page_list(). This is needed so following commits can pass a size that is different from ic->journal_pages. Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer commit 981e8a980dc25a980188b157988d8651c03adc5c Author: Mikulas Patocka Date: Mon Apr 29 14:57:19 2019 +0200 dm integrity: introduce rw_journal_sectors() Introduce a function rw_journal_sectors() that takes sector and length as its arguments instead of a section and the number of sections. This functions will be used in further patches. Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer commit 88ad5d1eb147a73ad000c658dff0e5166819e6f2 Author: Mikulas Patocka Date: Mon Apr 29 14:57:23 2019 +0200 dm integrity: update documentation Update documentation with the "meta_device" parameter and flags. Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer commit 893e3c395b2b7ea224c3d954bf9ba468745253f2 Author: Mikulas Patocka Date: Mon Apr 29 14:57:18 2019 +0200 dm integrity: don't report unused options If we are not journaling, don't report journaling options in the table status. Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer commit 97abfde17ae011525755f50242ed447ecebdbab5 Author: Mikulas Patocka Date: Mon Apr 29 14:57:17 2019 +0200 dm integrity: don't check null pointer before kvfree and vfree The functions kfree, vfree and kvfree do nothing if we pass a NULL pointer to them. So we don't need to test the pointer for NULL. Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer commit 30bba430ddf737978e40561198693ba91386dac1 Author: Mikulas Patocka Date: Tue May 7 14:28:35 2019 -0400 dm integrity: correctly calculate the size of metadata area When we use separate devices for data and metadata, dm-integrity would incorrectly calculate the size of the metadata device as if it had 512-byte block size - and it would refuse activation with larger block size and smaller metadata device. Fix this so that it takes actual block size into account, which fixes the following reported issue: https://gitlab.com/cryptsetup/cryptsetup/issues/450 Fixes: 356d9d52e122 ("dm integrity: allow separate metadata device") Cc: stable@vger.kernel.org # v4.19+ Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer commit 9ccce5a0fb703bbae425d2f38513e30f62eee282 Author: YueHaibing Date: Sat May 4 18:30:36 2019 +0800 dm dust: Make dm_dust_init and dm_dust_exit static Fix sparse warnings: drivers/md/dm-dust.c:495:12: warning: symbol 'dm_dust_init' was not declared. Should it be static? drivers/md/dm-dust.c:505:13: warning: symbol 'dm_dust_exit' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing Signed-off-by: Mike Snitzer commit cacddeab563be5850ec12ba6a1396e120f94a529 Author: Colin Ian King Date: Wed May 1 13:57:17 2019 +0100 dm dust: remove redundant unsigned comparison to less than zero Variable block is an unsigned long long hence the less than zero comparison is always false, hence it is redundant and can be removed. Addresses-Coverity: ("Unsigned compared against 0") Signed-off-by: Colin Ian King Reviewed-by: Bryan Gurney Signed-off-by: Mike Snitzer commit cf482a49af564a3044de3178ea28f10ad5921b38 Merge: 01e5d1830cf5 70e16a620e07 Author: Linus Torvalds Date: Tue May 7 13:01:40 2019 -0700 Merge tag 'driver-core-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core Pull driver core/kobject updates from Greg KH: "Here is the "big" set of driver core patches for 5.2-rc1 There are a number of ACPI patches in here as well, as Rafael said they should go through this tree due to the driver core changes they required. They have all been acked by the ACPI developers. There are also a number of small subsystem-specific changes in here, due to some changes to the kobject core code. Those too have all been acked by the various subsystem maintainers. As for content, it's pretty boring outside of the ACPI changes: - spdx cleanups - kobject documentation updates - default attribute groups for kobjects - other minor kobject/driver core fixes All have been in linux-next for a while with no reported issues" * tag 'driver-core-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (47 commits) kobject: clean up the kobject add documentation a bit more kobject: Fix kernel-doc comment first line kobject: Remove docstring reference to kset firmware_loader: Fix a typo ("syfs" -> "sysfs") kobject: fix dereference before null check on kobj Revert "driver core: platform: Fix the usage of platform device name(pdev->name)" init/config: Do not select BUILD_BIN2C for IKCONFIG Provide in-kernel headers to make extending kernel easier kobject: Improve doc clarity kobject_init_and_add() kobject: Improve docs for kobject_add/del driver core: platform: Fix the usage of platform device name(pdev->name) livepatch: Replace klp_ktype_patch's default_attrs with groups cpufreq: schedutil: Replace default_attrs field with groups padata: Replace padata_attr_type default_attrs field with groups irqdesc: Replace irq_kobj_type's default_attrs field with groups net-sysfs: Replace ktype default_attrs field with groups block: Replace all ktype default_attrs with groups samples/kobject: Replace foo_ktype's default_attrs field with groups kobject: Add support for default attribute groups to kobj_type driver core: Postpone DMA tear-down until after devres release for probe failure ... commit 04d37e5a8b1fad2d625727af3d738c6fd9491720 Author: Gustavo A. R. Silva Date: Sat Mar 2 13:59:07 2019 -0600 ubi: wl: Fix uninitialized variable There is a potential execution path in which variable *err* is compared against UBI_IO_BITFLIPS without being properly initialized previously. Fix this by initializing variable *err* to 0. Addresses-Coverity-ID: 1477298 "(Uninitialized scalar variable") Fixes: 663586c0a892 ("ubi: Expose the bitrot interface") Signed-off-by: Gustavo A. R. Silva Signed-off-by: Richard Weinberger commit a65d10f3ce657aa4542b5de78933053f6d1a9e97 Author: Sascha Hauer Date: Tue Mar 26 09:05:32 2019 +0100 ubifs: Drop unnecessary setting of zbr->znode in dbg_walk_index ubifs_load_znode is used to load the znode behind a zbranch. ubifs_load_znode links the new child znode to the zbranch, so doing it again is unnecessary. Signed-off-by: Sascha Hauer Signed-off-by: Richard Weinberger commit e3d73dead4988f3eb8483b28087f3ec0ff9d1398 Author: Sascha Hauer Date: Tue Mar 26 08:52:32 2019 +0100 ubifs: Remove ifdefs around CONFIG_UBIFS_ATIME_SUPPORT ifdefs reduce readability and compile coverage. This removes the ifdefs around CONFIG_UBIFS_ATIME_SUPPORT by replacing them with IS_ENABLED() where applicable. The fs layer would fall back to generic_update_time() when .update_time doesn't exist. We do this fallback explicitly now. Signed-off-by: Sascha Hauer Signed-off-by: Richard Weinberger commit eea2c05d927b031034e222110a4fc34914d97ca4 Author: Sascha Hauer Date: Tue Mar 26 08:52:31 2019 +0100 ubifs: Remove #ifdef around CONFIG_FS_ENCRYPTION ifdefs reduce readablity and compile coverage. This removes the ifdefs around CONFIG_FS_ENCRYPTION by using IS_ENABLED and relying on static inline wrappers. A new static inline wrapper for setting sb->s_cop is introduced to allow filesystems to unconditionally compile in their s_cop operations. Signed-off-by: Sascha Hauer Signed-off-by: Richard Weinberger commit 9ca2d732644484488db31123ecd3bf122b551566 Author: Richard Weinberger Date: Fri Apr 5 00:34:38 2019 +0200 ubifs: Limit number of xattrs per inode Since we have to write one deletion inode per xattr into the journal, limit the max number of xattrs. In theory UBIFS supported up to 65535 xattrs per inode. But this never worked correctly, expect no powercuts happened. Now we support only as many xattrs as we can store in 50% of a LEB. Even for tiny flashes this allows dozens of xattrs per inode, which is for an embedded filesystem still fine. In case someone has existing inodes with much more xattrs, it is still possible to delete them. UBIFS will fall back to an non-atomic deletion mode. Reported-by: Stefan Agner Fixes: 1e51764a3c2ac ("UBIFS: add new flash file system") Signed-off-by: Richard Weinberger commit 988bec41318f3fa897e2f8af271bd456936d6caf Author: Richard Weinberger Date: Fri Apr 5 00:34:37 2019 +0200 ubifs: orphan: Handle xattrs like files Like for the journal case, make sure that we track all xattr inodes. Otherwise UBIFS might not be able to locate stale xattr inodes upon recovery. Reported-by: Stefan Agner Fixes: 1e51764a3c2ac ("UBIFS: add new flash file system") Signed-off-by: Richard Weinberger commit 7959cf3a7506d4a2100d5d6f37f605c2f54af488 Author: Richard Weinberger Date: Fri Apr 5 00:34:36 2019 +0200 ubifs: journal: Handle xattrs like files If an inode hosts xattrs, create deletion entries for each inode. That way we can make sure that upon journal replay UBIFS can find find all xattr inodes. Otherwise it can happen that GC consumed already a LEB which contained parts of the TNC that pointed to the xattrs and we no longer find all xattr inodes, which will confuse the LPT and cause space allocation issues. Reported-by: Stefan Agner Fixes: 1e51764a3c2ac ("UBIFS: add new flash file system") Signed-off-by: Richard Weinberger commit 257bb92420d63c4d38da4cf0ae9a0b61ac985eca Author: Andrey Abramov Date: Tue Apr 2 23:52:10 2019 +0300 ubifs: find.c: replace swap function with built-in one Replace swap_dirty_idx function with built-in one, because swap_dirty_idx does only a simple byte to byte swap. Since Spectre mitigations have made indirect function calls more expensive, and the default simple byte copies swap is implemented without them, an "optimized" custom swap function is now a waste of time as well as code. Signed-off-by: Andrey Abramov Reviewed by: George Spelvin Signed-off-by: Richard Weinberger commit e9cd7dfd7ef939394436ef6d03ff156e587ba39e Author: Sascha Hauer Date: Mon Apr 1 15:00:44 2019 +0200 ubifs: Do not skip hash checking in data nodes UBIFS bails out early from try_read_node() when it doesn't have to check the CRC. Still the node hash has to be checked, otherwise wrong data could be sneaked into the FS. Fix this by not bailing out early and always checking the node hash. Fixes: 16a26b20d2af ("ubifs: authentication: Add hashes to index nodes") Signed-off-by: Sascha Hauer Signed-off-by: Richard Weinberger commit 01e5d1830cf54ac45768ef9ceb3e79cea2e1198c Merge: b4b52b881cf0 0a49a619e7e1 Author: Linus Torvalds Date: Tue May 7 12:56:19 2019 -0700 Merge tag 'mmc-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc Pull MMC updates from Ulf Hansson: "MMC core: - Fix a few memoryleaks - Minor improvements to the card initialization sequence - Partially support sleepy GPIO controllers for pwrseq eMMC MMC host: - alcor: Work with multiple-entry sglists - alcor: Enable DMA for writes - meson-gx: Improve tuning support - meson-gx: Avoid clock glitch when switching to DDR modes - meson-gx: Disable unreliable HS400 mode - mmci: Minor updates for support of HW busy detection - mmci: Support data transfers for the stm32_sdmmc variant - mmci: Restructure code to better support different variants - mtk-sd: Add support for version found on MT7620 family SOCs - mtk-sd: Add support for the MT8516 version - mtk-sd: Add Chaotian Jing as the maintainer - sdhci: Reorganize request-code to convert from tasklet to workqueue - sdhci_am654: Stabilize support for lower speed modes - sdhci-esdhc-imx: Add HS400 support for iMX7ULP - sdhci-esdhc-imx: Add support for iMX7ULP version - sdhci-of-arasan: Allow to disable DCMDs via DT for CQE - sdhci-of-esdhc: Add support for the ls1028a version - sdhci-of-esdhc: Several fixups for errata - sdhci-pci: Fix BYT OCP setting - sdhci-pci: Add support for Intel CML - sdhci-tegra: Add support for system suspend/resume - sdhci-tegra: Add CQE support for Tegra186 WAR - sdhci-tegra: Add support for Tegra194 - sdhci-tegra: Update HW tuning process MEMSTICK: - I volunteered to help as a maintainer for the memstick subsystem, which is reflected by an update to the MAINTAINERS file. Changes are funneled through my MMC git and we will use the linux-mmc mailing list. MEMSTICK host: - A few minor cleanups" * tag 'mmc-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (87 commits) mmc: sdhci-pci: Fix BYT OCP setting dt-bindings: mmc: add DT bindings for ls1028a eSDHC host controller mmc: alcor: Drop pointer to mmc_host from alcor_sdmmc_host mmc: mtk-sd: select REGULATOR mmc: mtk-sd: enable internal card-detect logic. mmc: mtk-sd: add support for config found in mt7620 family SOCs. mmc: mtk-sd: don't hard-code interrupt trigger type mmc: core: Fix tag set memory leak dt-bindings: mmc: Add support for MT8516 to mtk-sd mmc: mmci: Prevent polling for busy detection in IRQ context mmc: mmci: Cleanup mmci_cmd_irq() for busy detect mmc: usdhi6rol0: mark expected switch fall-throughs mmc: core: Verify SD bus width mmc: sdhci-esdhc-imx: Add HS400 support for iMX7ULP mmc: sdhci-esdhc-imx: add pm_qos to interact with cpuidle dt-bindings: mmc: fsl-imx-esdhc: add imx7ulp compatible string mmc: meson-gx: add signal resampling tuning mmc: meson-gx: remove Rx phase tuning mmc: meson-gx: avoid clock glitch when switching to DDR modes mmc: meson-gx: disable HS400 ... commit b4b52b881cf08e13d110eac811d4becc0775abbf Merge: 2d60d96b6f00 ccaa75187a5f Author: Linus Torvalds Date: Tue May 7 12:48:10 2019 -0700 Merge tag 'Wimplicit-fallthrough-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux Pull Wimplicit-fallthrough updates from Gustavo A. R. Silva: "Mark switch cases where we are expecting to fall through. This is part of the ongoing efforts to enable -Wimplicit-fallthrough. Most of them have been baking in linux-next for a whole development cycle. And with Stephen Rothwell's help, we've had linux-next nag-emails going out for newly introduced code that triggers -Wimplicit-fallthrough to avoid gaining more of these cases while we work to remove the ones that are already present. We are getting close to completing this work. Currently, there are only 32 of 2311 of these cases left to be addressed in linux-next. I'm auditing every case; I take a look into the code and analyze it in order to determine if I'm dealing with an actual bug or a false positive, as explained here: https://lore.kernel.org/lkml/c2fad584-1705-a5f2-d63c-824e9b96cf50@embeddedor.com/ While working on this, I've found and fixed the several missing break/return bugs, some of them introduced more than 5 years ago. Once this work is finished, we'll be able to universally enable "-Wimplicit-fallthrough" to avoid any of these kinds of bugs from entering the kernel again" * tag 'Wimplicit-fallthrough-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux: (27 commits) memstick: mark expected switch fall-throughs drm/nouveau/nvkm: mark expected switch fall-throughs NFC: st21nfca: Fix fall-through warnings NFC: pn533: mark expected switch fall-throughs block: Mark expected switch fall-throughs ASN.1: mark expected switch fall-through lib/cmdline.c: mark expected switch fall-throughs lib: zstd: Mark expected switch fall-throughs scsi: sym53c8xx_2: sym_nvram: Mark expected switch fall-through scsi: sym53c8xx_2: sym_hipd: mark expected switch fall-throughs scsi: ppa: mark expected switch fall-through scsi: osst: mark expected switch fall-throughs scsi: lpfc: lpfc_scsi: Mark expected switch fall-throughs scsi: lpfc: lpfc_nvme: Mark expected switch fall-through scsi: lpfc: lpfc_nportdisc: Mark expected switch fall-through scsi: lpfc: lpfc_hbadisc: Mark expected switch fall-throughs scsi: lpfc: lpfc_els: Mark expected switch fall-throughs scsi: lpfc: lpfc_ct: Mark expected switch fall-throughs scsi: imm: mark expected switch fall-throughs scsi: csiostor: csio_wr: mark expected switch fall-through ... commit 2d60d96b6f00de90ec2bc60eb4cdcc46e1e1f161 Merge: eac7078a0fff 709a972efb01 Author: Linus Torvalds Date: Tue May 7 12:44:49 2019 -0700 Merge tag 'meminit-v5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux Pull compiler-based variable initialization updates from Kees Cook: "This is effectively part of my gcc-plugins tree, but as this adds some Clang support, it felt weird to still call it "gcc-plugins". :) This consolidates Kconfig for the existing stack variable initialization (via structleak and stackleak gcc plugins) and adds Alexander Potapenko's support for Clang's new similar functionality. Summary: - Consolidate memory initialization Kconfigs (Kees) - Implement support for Clang's stack variable auto-init (Alexander)" * tag 'meminit-v5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: security: Implement Clang's stack initialization security: Move stackleak config to Kconfig.hardening security: Create "kernel hardening" config area commit a3147770bea76c8dbad73eca3a24c2118da5e719 Author: YueHaibing Date: Mon May 6 23:57:54 2019 +0800 cxgb4: Fix error path in cxgb4_init_module BUG: unable to handle kernel paging request at ffffffffa016a270 PGD 3270067 P4D 3270067 PUD 3271063 PMD 230bbd067 PTE 0 Oops: 0000 [#1 CPU: 0 PID: 6134 Comm: modprobe Not tainted 5.1.0+ #33 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2014 RIP: 0010:atomic_notifier_chain_register+0x24/0x60 Code: 1f 80 00 00 00 00 55 48 89 e5 41 54 49 89 f4 53 48 89 fb e8 ae b4 38 01 48 8b 53 38 48 8d 4b 38 48 85 d2 74 20 45 8b 44 24 10 <44> 3b 42 10 7e 08 eb 13 44 39 42 10 7c 0d 48 8d 4a 08 48 8b 52 08 RSP: 0018:ffffc90000e2bc60 EFLAGS: 00010086 RAX: 0000000000000292 RBX: ffffffff83467240 RCX: ffffffff83467278 RDX: ffffffffa016a260 RSI: ffffffff83752140 RDI: ffffffff83467240 RBP: ffffc90000e2bc70 R08: 0000000000000000 R09: 0000000000000001 R10: 0000000000000000 R11: 00000000014fa61f R12: ffffffffa01c8260 R13: ffff888231091e00 R14: 0000000000000000 R15: ffffc90000e2be78 FS: 00007fbd8d7cd540(0000) GS:ffff888237a00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffffffffa016a270 CR3: 000000022c7e3000 CR4: 00000000000006f0 Call Trace: register_inet6addr_notifier+0x13/0x20 cxgb4_init_module+0x6c/0x1000 [cxgb4 ? 0xffffffffa01d7000 do_one_initcall+0x6c/0x3cc ? do_init_module+0x22/0x1f1 ? rcu_read_lock_sched_held+0x97/0xb0 ? kmem_cache_alloc_trace+0x325/0x3b0 do_init_module+0x5b/0x1f1 load_module+0x1db1/0x2690 ? m_show+0x1d0/0x1d0 __do_sys_finit_module+0xc5/0xd0 __x64_sys_finit_module+0x15/0x20 do_syscall_64+0x6b/0x1d0 entry_SYSCALL_64_after_hwframe+0x49/0xbe If pci_register_driver fails, register inet6addr_notifier is pointless. This patch fix the error path in cxgb4_init_module. Fixes: b5a02f503caa ("cxgb4 : Update ipv6 address handling api") Signed-off-by: YueHaibing Signed-off-by: David S. Miller commit 23bfaa594002f4bba085e0a1ae3c9847b988d816 Author: Heiner Kallweit Date: Sun May 5 19:03:51 2019 +0200 net: phy: improve pause mode reporting in phy_print_status So far we report symmetric pause only, and we don't consider the local pause capabilities. Let's properly consider local and remote capabilities, and report also asymmetric pause. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit f4844b35d68ab49c41d542c501fffb46ad81009a Author: Arnd Bergmann Date: Sun Mar 24 20:44:51 2019 +0100 ubifs: work around high stack usage with clang Building this file with clang can result in large stack usage as seen from this warning: fs/ubifs/auth.c:78:5: error: stack frame size of 1152 bytes in function 'ubifs_prepare_auth_node' The problem is that inlining ubifs_hash_calc_hmac() leads to two SHASH_DESC_ON_STACK() blocks in the same function, and clang for some reason does not reuse the stack space as it should. Putting the first declaration into a separate basic block avoids this problem and reduces the stack allocation to 640 bytes. Signed-off-by: Arnd Bergmann Reviewed-by: Nick Desaulniers Signed-off-by: Richard Weinberger commit fb9a5a3edb4c34ac0d7e6996278604e53a43245f Author: YueHaibing Date: Wed Mar 20 22:09:55 2019 +0800 ubifs: remove unused function __ubifs_shash_final There is no callers in tree, and can be removed. Signed-off-by: YueHaibing Acked-by: Mukesh Ojha Signed-off-by: Richard Weinberger commit cf3949670f709d86d975b0cfa4e65be2b40d1e78 Author: Eric Biggers Date: Fri Mar 15 13:55:03 2019 -0700 ubifs: remove unnecessary #ifdef around fscrypt_ioctl_get_policy() When !CONFIG_FS_ENCRYPTION, fscrypt_ioctl_get_policy() is already stubbed out to return -EOPNOTSUPP, so the extra #ifdef is not needed. Signed-off-by: Eric Biggers Signed-off-by: Richard Weinberger commit c64cda8a99135c584a1c61074e225aacdf31060f Author: Eric Biggers Date: Fri Mar 15 13:54:32 2019 -0700 ubifs: remove unnecessary calls to set up directory key In ubifs_unlink() and ubifs_rmdir(), remove the call to fscrypt_get_encryption_info() that precedes fscrypt_setup_filename(). This call was unnecessary, because fscrypt_setup_filename() already tries to set up the directory's encryption key. Signed-off-by: Eric Biggers Signed-off-by: Richard Weinberger commit 822dd046d7e22a8d01728200a003da230e4c6f7f Author: Maxime Chevallier Date: Tue May 7 17:35:55 2019 +0200 dt-bindings: net: Fix a typo in the phy-mode list for ethernet bindings The phy_mode "2000base-x" is actually supposed to be "1000base-x", even though the commit title of the original patch says otherwise. Fixes: 55601a880690 ("net: phy: Add 2000base-x, 2500base-x and rxaui modes") Signed-off-by: Maxime Chevallier Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit eac7078a0fff1e72cf2b641721e3f55ec7e5e21e Merge: 41bc10cabe96 43c6afee48d4 Author: Linus Torvalds Date: Tue May 7 12:30:24 2019 -0700 Merge tag 'pidfd-v5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux Pull pidfd updates from Christian Brauner: "This patchset makes it possible to retrieve pidfds at process creation time by introducing the new flag CLONE_PIDFD to the clone() system call. Linus originally suggested to implement this as a new flag to clone() instead of making it a separate system call. After a thorough review from Oleg CLONE_PIDFD returns pidfds in the parent_tidptr argument. This means we can give back the associated pid and the pidfd at the same time. Access to process metadata information thus becomes rather trivial. As has been agreed, CLONE_PIDFD creates file descriptors based on anonymous inodes similar to the new mount api. They are made unconditional by this patchset as they are now needed by core kernel code (vfs, pidfd) even more than they already were before (timerfd, signalfd, io_uring, epoll etc.). The core patchset is rather small. The bulky looking changelist is caused by David's very simple changes to Kconfig to make anon inodes unconditional. A pidfd comes with additional information in fdinfo if the kernel supports procfs. The fdinfo file contains the pid of the process in the callers pid namespace in the same format as the procfs status file, i.e. "Pid:\t%d". To remove worries about missing metadata access this patchset comes with a sample/test program that illustrates how a combination of CLONE_PIDFD and pidfd_send_signal() can be used to gain race-free access to process metadata through /proc/. Further work based on this patchset has been done by Joel. His work makes pidfds pollable. It finished too late for this merge window. I would prefer to have it sitting in linux-next for a while and send it for inclusion during the 5.3 merge window" * tag 'pidfd-v5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux: samples: show race-free pidfd metadata access signal: support CLONE_PIDFD with pidfd_send_signal clone: add CLONE_PIDFD Make anon_inodes unconditional commit 0504453139ef5a593c9587e1e851febee859c7d8 Author: Harini Katakam Date: Tue May 7 19:59:10 2019 +0530 net: macb: Change interrupt and napi enable order in open Current order in open: -> Enable interrupts (macb_init_hw) -> Enable NAPI -> Start PHY Sequence of RX handling: -> RX interrupt occurs -> Interrupt is cleared and interrupt bits disabled in handler -> NAPI is scheduled -> In NAPI, RX budget is processed and RX interrupts are re-enabled With the above, on QEMU or fixed link setups (where PHY state doesn't matter), there's a chance macb RX interrupt occurs before NAPI is enabled. This will result in NAPI being scheduled before it is enabled. Fix this macb open by changing the order. Fixes: ae1f2a56d273 ("net: macb: Added support for many RX queues") Signed-off-by: Harini Katakam Acked-by: Nicolas Ferre Signed-off-by: David S. Miller commit 5db9c74042e3c2168b1f1104d691063f5b662a8b Author: Esben Haabendal Date: Tue May 7 08:42:57 2019 +0200 net: ll_temac: Improve error message on error IRQ The channel status register value can be very helpful when debugging SDMA problems. Signed-off-by: Esben Haabendal Signed-off-by: David S. Miller commit d6787147e15dffa7b7f3116a5bc3cbe0670bd74f Author: Pieter Jansen van Vuuren Date: Mon May 6 17:24:21 2019 -0700 net/sched: remove block pointer from common offload structure Based on feedback from Jiri avoid carrying a pointer to the tcf_block structure in the tc_cls_common_offload structure. Instead store a flag in driver private data which indicates if offloads apply to a shared block at block binding time. Suggested-by: Jiri Pirko Signed-off-by: Pieter Jansen van Vuuren Reviewed-by: Jakub Kicinski Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit 2e7ae67b5fbbe596cb3e06410970945f975a241a Merge: 8e8673a22708 a51645f70f63 Author: David S. Miller Date: Tue May 7 12:22:47 2019 -0700 Merge branch 'of_get_mac_address-ERR_PTR-fixes' Petr Štetiar says: ==================== of_get_mac_address ERR_PTR fixes this patch series is an attempt to fix the mess, I've somehow managed to introduce. First patch in this series is defacto v5 of the previous 05/10 patch in the series, but since the v4 of this 05/10 patch wasn't picked up by the patchwork for some unknown reason, this patch wasn't applied with the other 9 patches in the series, so I'm resending it as a separate patch of this fixup series again. Second patch is a result of this rebase against net-next tree, where I was checking again all current users of of_get_mac_address and found out, that there's new one in DSA, so I've converted this user to the new ERR_PTR encoded error value as well. Third patch which was sent as v5 wasn't considered for merge, but I still think, that we need to check for possible NULL value, thus current IS_ERR check isn't sufficient and we need to use IS_ERR_OR_NULL instead. Fourth patch fixes warning reported by kbuild test robot. ==================== Tested-by: Geert Uytterhoeven Tested-by: Leonard Crestez Signed-off-by: David S. Miller commit a51645f70f6384ae3329551750f7f502cb8de5fc Author: Petr Štetiar Date: Mon May 6 23:27:04 2019 +0200 net: ethernet: support of_get_mac_address new ERR_PTR error There was NVMEM support added to of_get_mac_address, so it could now return ERR_PTR encoded error values, so we need to adjust all current users of of_get_mac_address to this new fact. While at it, remove superfluous is_valid_ether_addr as the MAC address returned from of_get_mac_address is always valid and checked by is_valid_ether_addr anyway. Fixes: d01f449c008a ("of_net: add NVMEM support to of_get_mac_address") Signed-off-by: Petr Štetiar Signed-off-by: David S. Miller commit 5503a6889f72d91c9ad156e6daa9ffcdc726ddc5 Author: Petr Štetiar Date: Mon May 6 23:24:47 2019 +0200 net: usb: smsc: fix warning reported by kbuild test robot This patch fixes following warning reported by kbuild test robot: In function ‘memcpy’, inlined from ‘smsc75xx_init_mac_address’ at drivers/net/usb/smsc75xx.c:778:3, inlined from ‘smsc75xx_bind’ at drivers/net/usb/smsc75xx.c:1501:2: ./include/linux/string.h:355:9: warning: argument 2 null where non-null expected [-Wnonnull] return __builtin_memcpy(p, q, size); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/usb/smsc75xx.c: In function ‘smsc75xx_bind’: ./include/linux/string.h:355:9: note: in a call to built-in function ‘__builtin_memcpy’ I've replaced the offending memcpy with ether_addr_copy, because I'm 100% sure, that of_get_mac_address can't return NULL as it returns valid pointer or ERR_PTR encoded value, nothing else. I'm hesitant to just change IS_ERR into IS_ERR_OR_NULL check, as this would make the warning disappear also, but it would be confusing to check for impossible return value just to make a compiler happy. Fixes: adfb3cb2c52e ("net: usb: support of_get_mac_address new ERR_PTR error") Reported-by: kbuild test robot Signed-off-by: Petr Štetiar Reviewed-by: Woojung Huh Signed-off-by: David S. Miller commit da48be3373438224da1a5832cb7ffce1f1752a75 Author: Petr Štetiar Date: Mon May 6 23:24:46 2019 +0200 staging: octeon-ethernet: Fix of_get_mac_address ERR_PTR check Commit 284eb160681c ("staging: octeon-ethernet: support of_get_mac_address new ERR_PTR error") has introduced checking for ERR_PTR encoded error value from of_get_mac_address with IS_ERR macro, which is not sufficient in this case, as the mac variable is set to NULL initialy and if the kernel is compiled without DT support this NULL would get passed to IS_ERR, which would lead to the wrong decision and would pass that NULL pointer and invalid MAC address further. Fixes: 284eb160681c ("staging: octeon-ethernet: support of_get_mac_address new ERR_PTR error") Signed-off-by: Petr Štetiar Signed-off-by: David S. Miller commit 4974f9b7e0c90a751e9ec306701c49487e81625a Author: Petr Štetiar Date: Mon May 6 23:24:45 2019 +0200 net: dsa: support of_get_mac_address new ERR_PTR error There was NVMEM support added to of_get_mac_address, so it could now return ERR_PTR encoded error values, so we need to adjust all current users of of_get_mac_address to this new fact. While at it, remove superfluous is_valid_ether_addr as the MAC address returned from of_get_mac_address is always valid and checked by is_valid_ether_addr anyway. Fixes: d01f449c008a ("of_net: add NVMEM support to of_get_mac_address") Signed-off-by: Petr Štetiar Tested-by: Vladimir Oltean Signed-off-by: David S. Miller commit 8e8673a227084923f5b3bb80a68e741aac77948d Author: Nathan Chancellor Date: Mon May 6 13:24:47 2019 -0700 net: dsa: sja1105: Fix status initialization in sja1105_get_ethtool_stats Clang warns: drivers/net/dsa/sja1105/sja1105_ethtool.c:316:39: warning: suggest braces around initialization of subobject [-Wmissing-braces] struct sja1105_port_status status = {0}; ^ {} 1 warning generated. One way to fix these warnings is to add additional braces like Clang suggests; however, there has been a bit of push back from some maintainers[1][2], who just prefer memset as it is unambiguous, doesn't depend on a particular compiler version[3], and properly initializes all subobjects. Do that here so there are no more warnings. [1]: https://lore.kernel.org/lkml/022e41c0-8465-dc7a-a45c-64187ecd9684@amd.com/ [2]: https://lore.kernel.org/lkml/20181128.215241.702406654469517539.davem@davemloft.net/ [3]: https://lore.kernel.org/lkml/20181116150432.2408a075@redhat.com/ Fixes: 52c34e6e125c ("net: dsa: sja1105: Add support for ethtool port counters") Link: https://github.com/ClangBuiltLinux/linux/issues/471 Signed-off-by: Nathan Chancellor Acked-by: Vladimir Oltean Signed-off-by: David S. Miller commit ff6ab32bd4e073976e4d8797b4d514a172cfe6cb Author: Stephen Suryaputra Date: Mon May 6 15:00:01 2019 -0400 vrf: sit mtu should not be updated when vrf netdev is the link VRF netdev mtu isn't typically set and have an mtu of 65536. When the link of a tunnel is set, the tunnel mtu is changed from 1480 to the link mtu minus tunnel header. In the case of VRF netdev is the link, then the tunnel mtu becomes 65516. So, fix it by not setting the tunnel mtu in this case. Signed-off-by: Stephen Suryaputra Reviewed-by: David Ahern Signed-off-by: David S. Miller commit 68be930249d051fd54d3d99156b3dcadcb2a1f9b Author: YueHaibing Date: Mon May 6 23:25:29 2019 +0800 net: dsa: Fix error cleanup path in dsa_init_module BUG: unable to handle kernel paging request at ffffffffa01c5430 PGD 3270067 P4D 3270067 PUD 3271063 PMD 230bc5067 PTE 0 Oops: 0000 [#1 CPU: 0 PID: 6159 Comm: modprobe Not tainted 5.1.0+ #33 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2014 RIP: 0010:raw_notifier_chain_register+0x16/0x40 Code: 63 f8 66 90 e9 5d ff ff ff 90 90 90 90 90 90 90 90 90 90 90 55 48 8b 07 48 89 e5 48 85 c0 74 1c 8b 56 10 3b 50 10 7e 07 eb 12 <39> 50 10 7c 0d 48 8d 78 08 48 8b 40 08 48 85 c0 75 ee 48 89 46 08 RSP: 0018:ffffc90001c33c08 EFLAGS: 00010282 RAX: ffffffffa01c5420 RBX: ffffffffa01db420 RCX: 4fcef45928070a8b RDX: 0000000000000000 RSI: ffffffffa01db420 RDI: ffffffffa01b0068 RBP: ffffc90001c33c08 R08: 000000003e0a33d0 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000094443661 R12: ffff88822c320700 R13: ffff88823109be80 R14: 0000000000000000 R15: ffffc90001c33e78 FS: 00007fab8bd08540(0000) GS:ffff888237a00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffffffffa01c5430 CR3: 00000002297ea000 CR4: 00000000000006f0 Call Trace: register_netdevice_notifier+0x43/0x250 ? 0xffffffffa01e0000 dsa_slave_register_notifier+0x13/0x70 [dsa_core ? 0xffffffffa01e0000 dsa_init_module+0x2e/0x1000 [dsa_core do_one_initcall+0x6c/0x3cc ? do_init_module+0x22/0x1f1 ? rcu_read_lock_sched_held+0x97/0xb0 ? kmem_cache_alloc_trace+0x325/0x3b0 do_init_module+0x5b/0x1f1 load_module+0x1db1/0x2690 ? m_show+0x1d0/0x1d0 __do_sys_finit_module+0xc5/0xd0 __x64_sys_finit_module+0x15/0x20 do_syscall_64+0x6b/0x1d0 entry_SYSCALL_64_after_hwframe+0x49/0xbe Cleanup allocated resourses if there are errors, otherwise it will trgger memleak. Fixes: c9eb3e0f8701 ("net: dsa: Add support for learning FDB through notification") Signed-off-by: YueHaibing Reviewed-by: Vivien Didelot Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 638a3a1e349ddf5b82f222ff5cb3b4f266e7c278 Author: YueHaibing Date: Mon May 6 22:44:04 2019 +0800 l2tp: Fix possible NULL pointer dereference BUG: unable to handle kernel NULL pointer dereference at 0000000000000128 PGD 0 P4D 0 Oops: 0000 [#1 CPU: 0 PID: 5697 Comm: modprobe Tainted: G W 5.1.0-rc7+ #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2014 RIP: 0010:__lock_acquire+0x53/0x10b0 Code: 8b 1c 25 40 5e 01 00 4c 8b 6d 10 45 85 e4 0f 84 bd 06 00 00 44 8b 1d 7c d2 09 02 49 89 fe 41 89 d2 45 85 db 0f 84 47 02 00 00 <48> 81 3f a0 05 70 83 b8 00 00 00 00 44 0f 44 c0 83 fe 01 0f 86 3a RSP: 0018:ffffc90001c07a28 EFLAGS: 00010002 RAX: 0000000000000000 RBX: ffff88822f038440 RCX: 0000000000000000 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000128 RBP: ffffc90001c07a88 R08: 0000000000000001 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000001 R12: 0000000000000001 R13: 0000000000000000 R14: 0000000000000128 R15: 0000000000000000 FS: 00007fead0811540(0000) GS:ffff888237a00000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000128 CR3: 00000002310da000 CR4: 00000000000006f0 Call Trace: ? __lock_acquire+0x24e/0x10b0 lock_acquire+0xdf/0x230 ? flush_workqueue+0x71/0x530 flush_workqueue+0x97/0x530 ? flush_workqueue+0x71/0x530 l2tp_exit_net+0x170/0x2b0 [l2tp_core ? l2tp_exit_net+0x93/0x2b0 [l2tp_core ops_exit_list.isra.6+0x36/0x60 unregister_pernet_operations+0xb8/0x110 unregister_pernet_device+0x25/0x40 l2tp_init+0x55/0x1000 [l2tp_core ? 0xffffffffa018d000 do_one_initcall+0x6c/0x3cc ? do_init_module+0x22/0x1f1 ? rcu_read_lock_sched_held+0x97/0xb0 ? kmem_cache_alloc_trace+0x325/0x3b0 do_init_module+0x5b/0x1f1 load_module+0x1db1/0x2690 ? m_show+0x1d0/0x1d0 __do_sys_finit_module+0xc5/0xd0 __x64_sys_finit_module+0x15/0x20 do_syscall_64+0x6b/0x1d0 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x7fead031a839 Code: 00 f3 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 1f f6 2c 00 f7 d8 64 89 01 48 RSP: 002b:00007ffe8d9acca8 EFLAGS: 00000246 ORIG_RAX: 0000000000000139 RAX: ffffffffffffffda RBX: 0000560078398b80 RCX: 00007fead031a839 RDX: 0000000000000000 RSI: 000056007659dc2e RDI: 0000000000000003 RBP: 000056007659dc2e R08: 0000000000000000 R09: 0000560078398b80 R10: 0000000000000003 R11: 0000000000000246 R12: 0000000000000000 R13: 00005600783a04a0 R14: 0000000000040000 R15: 0000560078398b80 Modules linked in: l2tp_core(+) e1000 ip_tables ipv6 [last unloaded: l2tp_core CR2: 0000000000000128 ---[ end trace 8322b2b8bf83f8e1 If alloc_workqueue fails in l2tp_init, l2tp_net_ops is unregistered on failure path. Then l2tp_exit_net is called which will flush NULL workqueue, this patch add a NULL check to fix it. Fixes: 67e04c29ec0d ("l2tp: unregister l2tp_net_ops on failure path") Signed-off-by: YueHaibing Acked-by: Guillaume Nault Signed-off-by: David S. Miller commit e4acf4274169fb6106d4ac854c87071b9764a00d Author: Colin Ian King Date: Sun May 5 22:50:19 2019 +0100 taprio: add null check on sched_nest to avoid potential null pointer dereference The call to nla_nest_start_noflag can return a null pointer and currently this is not being checked and this can lead to a null pointer dereference when the null pointer sched_nest is passed to function nla_nest_end. Fix this by adding in a null pointer check. Addresses-Coverity: ("Dereference null return value") Fixes: a3d43c0d56f1 ("taprio: Add support adding an admin schedule") Signed-off-by: Colin Ian King Acked-by: Cong Wang Signed-off-by: David S. Miller commit 41bc10cabe96bbd0ff3e2813d15f9070bff57a03 Merge: aa26690fab13 438ab720c675 Author: Linus Torvalds Date: Tue May 7 12:15:13 2019 -0700 Merge tag 'stream_open-5.2' of https://lab.nexedi.com/kirr/linux Pull stream_open conversion from Kirill Smelkov: - remove unnecessary double nonseekable_open from drivers/char/dtlk.c as noticed by Pavel Machek while reviewing nonseekable_open -> stream_open mass conversion. - the mass conversion patch promised in commit 10dce8af3422 ("fs: stream_open - opener for stream-like files so that read and write can run simultaneously without deadlock") and is automatically generated by running $ make coccicheck MODE=patch COCCI=scripts/coccinelle/api/stream_open.cocci I've verified each generated change manually - that it is correct to convert - and each other nonseekable_open instance left - that it is either not correct to convert there, or that it is not converted due to current stream_open.cocci limitations. More details on this in the patch. - finally, change VFS to pass ppos=NULL into .read/.write for files that declare themselves streams. It was suggested by Rasmus Villemoes and makes sure that if ppos starts to be erroneously used in a stream file, such bug won't go unnoticed and will produce an oops instead of creating illusion of position change being taken into account. Note: this patch does not conflict with "fuse: Add FOPEN_STREAM to use stream_open()" that will be hopefully coming via FUSE tree, because fs/fuse/ uses new-style .read_iter/.write_iter, and for these accessors position is still passed as non-pointer kiocb.ki_pos . * tag 'stream_open-5.2' of https://lab.nexedi.com/kirr/linux: vfs: pass ppos=NULL to .read()/.write() of FMODE_STREAM files *: convert stream-like files from nonseekable_open -> stream_open dtlk: remove double call to nonseekable_open commit d4ee7f195e2de2f881a0d0d9412394a14a02c4c8 Author: Colin Ian King Date: Sun May 5 22:38:14 2019 +0100 net: mvpp2: cls: fix less than zero check on a u32 variable The signed return from the call to mvpp2_cls_c2_port_flow_index is being assigned to the u32 variable c2.index and then checked for a negative error condition which is always going to be false. Fix this by assigning the return to the int variable index and checking this instead. Addresses-Coverity: ("Unsigned compared against 0") Fixes: 90b509b39ac9 ("net: mvpp2: cls: Add Classification offload support") Signed-off-by: Colin Ian King Reviewed-by: Maxime Chevallier Signed-off-by: David S. Miller commit b79656ed44c6865e17bcd93472ec39488bcc4984 Author: Leon Romanovsky Date: Mon May 6 14:23:04 2019 +0300 RDMA/ipoib: Allow user space differentiate between valid dev_port Systemd triggers the following warning during IPoIB device load: mlx5_core 0000:00:0c.0 ib0: "systemd-udevd" wants to know my dev_id. Should it look at dev_port instead? See Documentation/ABI/testing/sysfs-class-net for more info. This is caused due to user space attempt to differentiate old systems without dev_port and new systems with dev_port. In case dev_port will be zero, the systemd will try to read dev_id instead. There is no need to print a warning in such case, because it is valid situation and it is needed to ensure systemd compatibility with old kernels. Link: https://github.com/systemd/systemd/blob/master/src/udev/udev-builtin-net_id.c#L358 Cc: # 4.19 Fixes: f6350da41dc7 ("IB/ipoib: Log sysfs 'dev_id' accesses from userspace") Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit a97f4fe6e11c4fb465babe80574307f74135160c Merge: a55a385d8c84 37c0aead7902 Author: David S. Miller Date: Tue May 7 12:09:25 2019 -0700 Merge branch 'fc-quic-pacing' Eric Dumazet says: ==================== net_sched: sch_fq: enable in-kernel pacing for QUIC servers Willem added GSO support to UDP stack, greatly improving performance of QUIC servers. We also want to enable in-kernel pacing, which is possible thanks to EDT model, since each sendmsg() can provide a timestamp for the skbs. We have to change sch_fq to enable feeding packets in arbitrary EDT order, and make sure that packet classification do not trust unconnected sockets. Note that this patch series also is a prereq for a future TCP change enabling per-flow delays/reorders/losses to implement high performance TCP emulators. ==================== Signed-off-by: David S. Miller commit 37c0aead7902b1ddf1b668e1ab74c80b9a7fd183 Author: Eric Dumazet Date: Sat May 4 16:48:54 2019 -0700 net_sched: sch_fq: handle non connected flows FQ packet scheduler assumed that packets could be classified based on their owning socket. This means that if a UDP server uses one UDP socket to send packets to different destinations, packets all land in one FQ flow. This is unfair, since each TCP flow has a unique bucket, meaning that in case of pressure (fully utilised uplink), TCP flows have more share of the bandwidth. If we instead detect unconnected sockets, we can use a stochastic hash based on the 4-tuple hash. This also means a QUIC server using one UDP socket will properly spread the outgoing packets to different buckets, and in-kernel pacing based on EDT model will no longer risk having big rb-tree on one flow. Note that UDP application might provide the skb->hash in an ancillary message at sendmsg() time to avoid the cost of a dissection in fq packet scheduler. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit eeb84aa0d0aff3177c93397cdc62be87e54af486 Author: Eric Dumazet Date: Sat May 4 16:48:53 2019 -0700 net_sched: sch_fq: do not assume EDT packets are ordered TCP stack makes sure packets for a given flow are monotically increasing, but we want to allow UDP packets to use EDT as well, so that QUIC servers can use in-kernel pacing. This patch adds a per-flow rb-tree on which packets might be stored. We still try to use the linear list for the typical cases where packets are queued with monotically increasing skb->tstamp, since queue/dequeue packets on a standard list is O(1). Note that the ability to store packets in arbitrary EDT order will allow us to implement later a per TCP socket mechanism adding delays (with jitter eventually) and reorders, to implement convenient network emulators. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit ba7d8117f3cca8eb70d579fde3f9ec8cd6a28f39 Author: Dennis Dalessandro Date: Thu Apr 11 07:22:35 2019 -0700 IB/core, ipoib: Do not overreact to SM LID change event When IPoIB receives an SM LID change event, it reacts by flushing its path record cache and rejoining multicast groups. This is the same behavior it performs when it receives a reregistration event. This behavior is unnecessary as an SM may have database backup or synchronization mechanisms which permit the SM location or LID to change without loss of multicast membership and without impact to path records. Both opensm and the OPA FM issue reregistration events if a new SM is started (or restarted with a new config) or an SM event occurs which results in loss of multicast membership records by the SM (such as opensm failover) or the SM encounters new nodes with Active ports (such as after joining 2 fabrics by connecting switches via ISLs). Hence this event can be depended on as the trigger for IPoIB cache and multicast flushing. It appears that some drivers, such as qib, and hfi1 issue the IB_EVENT_SM_CHANGE but other drivers such as mlx4 and mlx5 do not. Empirical testing on Mellanox EDR using ibv_asyncwatch has confirmed that Mellanox EDR HCAs do not generate SM change events and that opensm does generate reregistration. An SM LID change event is generated by the mentioned drivers to reflect that sm_lid and/or sm_sl in the local port info has changed. The intent of this event is to permit applications and ULPs which have a local copy of this information (or an address handle using it) to update their information. The intent is that the reregistration event (caused by the SM via a bit in Set(PortInfo)) be used to inform nodes that they need to rejoin multicast groups, resubscribe for notices and potentially update path records. When an SM migrates or fails over, a SM LID change event can occur. In response IPoIB discards path records and multicast membership and loses connectivity until these records are restored via SA requests. In very large fabrics, it may take minutes for the SM to be ready and for the SA responses to be supplied. This can result in undesirable and unnecessary IPoIB connectivity impacts. It also can result in an unnecessary storm of SA queries from all nodes in a cluster potentially followed by yet another storm if the SM issues the reregistration request. The fact the Mellanox HCAs do not even generate this event, is further evidence that on modern IB fabrics there will be no ill side effects from the proposed changes below to reduce the reaction by 3 kernel components to this event. So these changes should be benign for Mellanox IB fabrics and will benefit OPA fabrics while also making ib_core and ULP behavor "correct" as intended by the IBTA spec and kernel RDMA event APIs. Address these issues by removing IB_EVENT_SM_CHANGE handling from ipoib. IPoIB does not locally store sm_lid nor sm_sl, so it does not need to do anything on SM LID change. IPoIB makes use of other ib_core components to issue SA requests for it and those components correctly track SM LID and SM LID changes. Also in ib_core multicast handling, remove the test for IB_EVENT_SM_CHANGE. This code is moving all multicast groups to the error state, which will trigger rejoins. This code is used by IPoIB as well as the connection manager and other clients of multicast groups. This kernel module centralizes group membership status and joins since a node can only join a given group once but multiple ULPs or applications may want to join the same group. It makes use of the sa_query.c component in ib_core, which correctly trackes SM LID and SL. This component does not track SM LID nor SL itself and hence need not react to their changes. Similarly in the ib_core cache code remove the handling for the IB_EVENT_SM_CHANGE. In this function. The ib_cache_update function which is ultimately called is updating local copies of the pkey table, gid table and lmc. It does not update nor retain sm_lid nor sm_sl. As such it does not need to be called on an SM LID change. It technically also does not need to be called on a reregistration. The LID_CHANGE, PKEY_CHANGE, GID_CHANGE and port state change events (PORT_ERR, PORT_ACTICE) should be sufficient triggers. It is worth noting that the alternative of simply having the hfi1 and qib drivers not generate the SM LID change event was explored. While this would duplicate what Mellanox drivers do now, it is not the correct behavior and removes the ability for an SM to migrate without requiring reregistration. Since both opensm and OPA SM have mechanisms to backup or synchronize registration information, it is desirable to let them perform SM migrations (with LID or SL changes) without requiring reregistration when they deem it appropriate. Suggested-by: Todd Rimmer Tested-by: Michael Brooks Reviewed-by: Mike Marciniszyn Reviewed-by: Todd Rimmer Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit aa26690fab1380735442e027ce4b17849a24493f Merge: d8456eaf319a 910832697cf8 Author: Linus Torvalds Date: Tue May 7 11:46:56 2019 -0700 Merge tag 'xfs-5.2-merge-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux Pull xfs updates from Darrick Wong: "Here's a big pile of new stuff for XFS for 5.2. XFS has grown the ability to report metadata health status to userspace after online fsck checks the filesystem. The online metadata checking code is (I really hope) feature complete with the addition of checks for the global fs counters, though it'll remain EXPERIMENTAL for now. There are also fixes for thundering herds of writeback completions and some other deadlocks, fixes for theoretical integer overflow attacks on space accounting, and removal of the long-defunct 'mntpt' option which was deprecated in the mid-2000s and (it turns out) totally broken since 2011 (and nobody complained...). Summary: - Fix some more buffer deadlocks when performing an unmount after a hard shutdown. - Fix some minor space accounting issues. - Fix some use after free problems. - Make the (undocumented) FITRIM behavior consistent with other filesystems. - Embiggen the xfs geometry ioctl's data structure. - Introduce a new AG geometry ioctl. - Introduce a new online health reporting infrastructure and ioctl for userspace to query a filesystem's health status. - Enhance online scrub and repair to update the health reports. - Reduce thundering herd problems when writeback io completes. - Fix some transaction reservation type errors. - Fix integer overflow problems with delayed alloc reservation counters. - Fix some problems where we would exit to userspace without unlocking. - Fix inconsistent behavior when finishing deferred ops fails. - Strengthen scrub to check incore data against ondisk metadata. - Remove long-broken mntpt mount option. - Add an online scrub function for the filesystem summary counters, which should make online metadata scrub more or less feature complete for now. - Various cleanups" * tag 'xfs-5.2-merge-4' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (38 commits) xfs: change some error-less functions to void types xfs: add online scrub for superblock counters xfs: don't parse the mtpt mount option xfs: always rejoin held resources during defer roll xfs: add missing error check in xfs_prepare_shift() xfs: scrub should check incore counters against ondisk headers xfs: allow scrubbers to pause background reclaim xfs: rename the speculative block allocation reclaim toggle functions xfs: track delayed allocation reservations across the filesystem xfs: fix broken bhold behavior in xrep_roll_ag_trans xfs: unlock inode when xfs_ioctl_setattr_get_trans can't get transaction xfs: kill the xfs_dqtrx_t typedef xfs: widen inode delalloc block counter to 64-bits xfs: widen quota block counters to 64-bit integers xfs: abort unaligned nowait directio early xfs: assert that we don't enter agfl freeing with a non-permanent transaction xfs: make tr_growdata a permanent transaction xfs: merge adjacent io completions of the same type xfs: remove unused m_data_workqueue xfs: implement per-inode writeback completion queues ... commit c1157f60d72e8b20efc670cef28883832f42406c Merge: 0caf00081735 1a079560b145 Author: Stephen Boyd Date: Tue May 7 11:46:13 2019 -0700 Merge branch 'clk-parent-rewrite-1' into clk-next - Rewrite how clk parents can be specified to be DT/clkdev based instead of just string based * clk-parent-rewrite-1: clk: Cache core in clk_fetch_parent_index() without names clk: fixed-factor: Initialize clk_init_data on stack clk: fixed-factor: Let clk framework find parent clk: Allow parents to be specified via clkspec index clk: Look for parents with clkdev based clk_lookups clk: Allow parents to be specified without string names clk: Add of_clk_hw_register() API for early clk drivers driver core: Let dev_of_node() accept a NULL dev clk: Prepare for clk registration API that uses DT nodes clkdev: Move clk creation outside of 'clocks_mutex' commit 0caf000817353cfc5db22363ecdac63b83d3a3f9 Merge: ff060019f4e5 90b6c5c73c69 Author: Stephen Boyd Date: Tue May 7 11:46:02 2019 -0700 Merge branch 'clk-ti' into clk-next * clk-ti: clk: Remove CLK_IS_BASIC clk flag clk: ti: dra7: disable the RNG and TIMER12 clkctrl clocks on HS devices clk: ti: dra7x: prevent non-existing clkctrl clocks from registering ARM: omap2+: hwmod: drop CLK_IS_BASIC flag usage clk: ti: export the omap2_clk_is_hw_omap call commit ff060019f4e536b7456fb5d4ac7891b102cb4a44 Merge: 5816b74581b4 b06df56bad2c e71f4d385878 7b4c162e03d4 30b8e27e3b58 d65530ca866d Author: Stephen Boyd Date: Tue May 7 11:45:29 2019 -0700 Merge branches 'clk-stm32f4', 'clk-tegra', 'clk-at91', 'clk-sifive-fu540' and 'clk-spdx' into clk-next - Support for STM32F769 - Rework AT91 sckc DT bindings - Fix slow RC oscillator issue on sama5d3 - AT91 sam9x60 PMC support - SiFive FU540 PRCI and PLL support * clk-stm32f4: clk: stm32mp1: Add ddrperfm clock clk: stm32: Introduce clocks of STM32F769 board * clk-tegra: clk: tegra: divider: Mark Memory Controller clock as read-only clk: tegra: emc: Replace BUG() with WARN_ONCE() clk: tegra: emc: Fix EMC max-rate clamping clk: tegra: emc: Support multiple RAM codes clk: tegra: emc: Don't enable EMC clock manually clk: tegra124: Remove lock-enable bit from PLLM clk: tegra: Fix PLLM programming on Tegra124+ when PMC overrides divider clk: tegra: Don't enable already enabled PLLs * clk-at91: clk: at91: Mark struct clk_range as const clk: at91: add sam9x60 pmc driver dt-bindings: clk: at91: add bindings for SAM9X60 pmc clk: at91: add sam9x60 PLL driver clk: at91: master: Add sam9x60 support clk: at91: usb: Add sam9x60 support clk: at91: allow configuring generated PCR layout clk: at91: allow configuring peripheral PCR layout clk: at91: sckc: handle different RC startup time clk: at91: modernize sckc binding dt-bindings: clock: at91: new sckc bindings * clk-sifive-fu540: clk: sifive: add a driver for the SiFive FU540 PRCI IP block clk: analogbits: add Wide-Range PLL library dt-bindings: clk: add documentation for the SiFive PRCI driver * clk-spdx: clk: sunxi-ng: Use the correct style for SPDX License Identifier clk: sprd: Use the correct style for SPDX License Identifier clk: renesas: Use the correct style for SPDX License Identifier clk: qcom: Use the correct style for SPDX License Identifier clk: davinci: Use the correct style for SPDX License Identifier clk: actions: Use the correct style for SPDX License Identifier commit 5816b74581b45cf086a84ab14e13354a65e8e22c Merge: 7e9c62bdb41a 9f77a60669d1 76c547830bd1 93737fe93ec6 d3dfc16f8fa1 42614b5bd954 Author: Stephen Boyd Date: Tue May 7 11:45:13 2019 -0700 Merge branches 'clk-hisi', 'clk-lochnagar', 'clk-allwinner', 'clk-rockchip' and 'clk-qoriq' into clk-next - Mark UFS clk as critical on Hi-Silicon hi3660 SoCs - Support for Cirrus Logic Lochnagar clks * clk-hisi: clk: hi3660: Mark clk_gate_ufs_subsys as critical * clk-lochnagar: clk: lochnagar: Add support for the Cirrus Logic Lochnagar clk: lochnagar: Add initial binding documentation * clk-allwinner: clk: sunxi-ng: sun5i: Export the MBUS clock clk: sunxi-ng: a83t: Add pll-video0 as parent of csi-mclk clk: sunxi-ng: h6: Allow video & vpu clocks to change parent rate clk: sunxi-ng: h6: Preset hdmi-cec clock parent clk: sunxi: Add Kconfig options clk: sunxi-ng: f1c100s: fix USB PHY gate bit offset clk: sunxi-ng: Allow DE clock to set parent rate * clk-rockchip: clk: rockchip: undo several noc and special clocks as critical on rk3288 clk: rockchip: add a COMPOSITE_DIV_OFFSET clock-type clk: rockchip: Turn on "aclk_dmac1" for suspend on rk3288 clk: rockchip: Limit use of USB PHY clock to USB on rk3288 clk: rockchip: Fix video codec clocks on rk3288 clk: rockchip: Make rkpwm a critical clock on rk3288 clk: rockchip: fix wrong clock definitions for rk3328 * clk-qoriq: clk: qoriq: increase array size of cmux_to_group dt-bindings: qoriq-clock: Add ls1028a chip compatible string clk: qoriq: Add ls1028a clock configuration clk: qoriq: add more PLL divider clocks support dt-bindings: qoriq-clock: add more PLL divider clocks support commit 7e9c62bdb41af76974d594da89854a6aba645e58 Merge: f6111b9d7970 7fbb639aea35 defb149ba42f aa2a0592ceb6 eaa9558d35ae 5852b1365df4 Author: Stephen Boyd Date: Tue May 7 11:44:56 2019 -0700 Merge branches 'clk-sa', 'clk-aspeed', 'clk-samsung', 'clk-ingenic' and 'clk-zynq' into clk-next - Various static analysis fixes/finds - Video Engine (ECLK) support on Aspeed SoCs - Xilinx ZynqMP Versal platform support - Convert Xilinx ZynqMP driver to be struct oriented * clk-sa: clk: mvebu: fix spelling mistake "gatable" -> "gateable" clk: ux500: add range to usleep_range clk: tegra: Make tegra_clk_super_mux_ops static clk: davinci: cfgchip: use PTR_ERR_OR_ZERO in da8xx_cfgchip_register_div4p5 * clk-aspeed: clk: Aspeed: Setup video engine clocking * clk-samsung: clk: samsung: exynos5410: Add gate clock for ADC clk: samsung: dt-bindings: Add ADC clock ID to Exynos5410 clk: samsung: dt-bindings: Put CLK_UART3 in order * clk-ingenic: clk: ingenic: jz4725b: Add UDC PHY clock dt-bindings: clock: jz4725b-cgu: Add UDC PHY clock * clk-zynq: clk: zynqmp: use structs for clk query responses clk: zynqmp: fix check for fractional clock clk: zynqmp: do not export zynqmp_clk_register_* functions clk: zynqmp: fix kerneldoc of __zynqmp_clock_get_parents drivers: clk: Update clock driver to handle clock attribute drivers: clk: zynqmp: Allow zero divisor value commit f6111b9d7970df07f783d3891735003fef2bc37e Merge: 2ed3b9103a2b f14382d7e40c 043f44aba9a8 6e4fcc34e6a3 5834fd75e623 Author: Stephen Boyd Date: Tue May 7 11:44:42 2019 -0700 Merge branches 'clk-doc', 'clk-more-critical', 'clk-meson' and 'clk-basic-be' into clk-next - Remove clk_readl() and introduce BE versions of basic clk types * clk-doc: clk: Drop duplicate clk_register() documentation clk: Document and simplify clk_core_get_rate_nolock() clk: Remove 'flags' member of struct clk_fixed_rate clk: nxp: Drop 'flags' on fixed_rate clk macro clk: Document __clk_mux_determine_rate() clk: Document CLK_MUX_READ_ONLY mux flag clk: Document deprecated things clk: Collapse gpio clk kerneldoc * clk-more-critical: clk: highbank: Convert to CLK_IS_CRITICAL * clk-meson: (21 commits) clk: meson: axg-audio: add g12a support clk: meson: axg-audio: don't register inputs in the onecell data clk: meson: axg_audio: replace prefix axg by aud dt-bindings: clk: axg-audio: add g12a support clk: meson: meson8b: add the video decoder clock trees clk: meson: meson8b: add the VPU clock trees clk: meson: meson8b: add support for the GP_PLL clock on Meson8m2 clk: meson: meson8b: use a separate clock table for Meson8m2 dt-bindings: clock: meson8b: export the video decoder clocks clk: meson-g12a: add video decoder clocks dt-bindings: clock: meson8b: export the VPU clock clk: meson-g12a: add PCIE PLL clocks dt-bindings: clock: g12a-aoclk: expose CLKID_AO_CTS_OSCIN clk: meson-pll: add reduced specific clk_ops for G12A PCIe PLL dt-bindings: clock: meson8b: drop the "ABP" clock definition clk: meson: g12a: add cpu clocks dt-bindings: clk: g12a-clkc: add VDEC clock IDs dt-bindings: clock: axg-audio: unexpose controller inputs dt-bindings: clk: g12a-clkc: add PCIE PLL clock ID clk: g12a-aoclk: re-export CLKID_AO_SAR_ADC_SEL clock id ... * clk-basic-be: clk: core: replace clk_{readl,writel} with {readl,writel} clk: core: remove powerpc special handling powerpc/512x: mark clocks as big endian clk: mux: add explicit big endian support clk: multiplier: add explicit big endian support clk: gate: add explicit big endian support clk: fractional-divider: add explicit big endian support clk: divider: add explicit big endian support commit 2ed3b9103a2b5482f7e00811bda0976feb10ade0 Merge: e93c9c99a629 c2f0705f85fd c0ee0e43c049 db077febb774 6a6ba5b55a72 a5a627c67659 Author: Stephen Boyd Date: Tue May 7 11:44:21 2019 -0700 Merge branches 'clk-renesas', 'clk-qcom', 'clk-mtk', 'clk-milbeaut' and 'clk-imx' into clk-next - Qualcomm QCS404 CDSP clk support - Qualcomm QCS404 Turing clk support - Mediatek MT8183 clock support - Mediatek MT8516 clock support - Milbeaut M10V clk controller support * clk-renesas: clk: renesas: rcar-gen3: Remove unused variable clk: renesas: rcar-gen3: Fix cpg_sd_clock_round_rate() return value clk: renesas: r8a77980: Fix RPC-IF module clock's parent clk: renesas: rcar-gen3: Rename DRIF clocks clk: renesas: rcar-gen3: Correct parent clock of Audio-DMAC clk: renesas: rcar-gen3: Correct parent clock of SYS-DMAC clk: renesas: rcar-gen3: Correct parent clock of HS-USB clk: renesas: rcar-gen3: Correct parent clock of EHCI/OHCI clk: renesas: r8a774c0: Add Z2 clock clk: renesas: r8a77990: Add Z2 clock clk: renesas: rcar-gen3: Support Z and Z2 clocks with high frequency parents math64: New DIV64_U64_ROUND_CLOSEST helper clk: renesas: rcar-gen3: Remove CLK_TYPE_GEN3_Z2 clk: renesas: rcar-gen3: Parameterise Z and Z2 clock offset clk: renesas: rcar-gen3: Parameterise Z and Z2 clock fixed divisor clk: renesas: r9a06g032: Add missing PCI USB clock clk: renesas: r7s9210: Always use readl() clk: renesas: rcar-gen3: Pass name/offset to cpg_sd_clk_register() * clk-qcom: clk: qcom: Skip halt checks on gcc_pcie_0_pipe_clk for 8998 clk: qcom: Add QCS404 TuringCC clk: qcom: branch: Add AON clock ops dt-bindings: clock: Introduce Qualcomm Turing Clock controller clk: qcom: gcc-qcs404: Add CDSP related clocks and resets * clk-mtk: clk: mediatek: add clock driver for MT8516 dt-bindings: mediatek: apmixedsys: add support for MT8516 dt-bindings: mediatek: infracfg: add support for MT8516 dt-bindings: mediatek: topckgen: add support for MT8516 clk: mediatek: Allow changing PLL rate when it is off clk: mediatek: Add MT8183 clock support clk: mediatek: Add configurable pcw_chg_reg to mtk_pll_data clk: mediatek: Add dt-bindings for MT8183 clocks dt-bindings: ARM: Mediatek: Document bindings for MT8183 clk: mediatek: Add configurable pcwibits and fmin to mtk_pll_data clk: mediatek: Add new clkmux register API clk: mediatek: Disable tuner_en before change PLL rate * clk-milbeaut: clock: milbeaut: Add Milbeaut M10V clock controller dt-bindings: clock: milbeaut: add Milbeaut clock description * clk-imx: clk: imx: correct pfdv2 gate_bit/vld_bit operations clk: imx: clk-pllv3: mark expected switch fall-throughs clk: imx8mq: Add dsi_ipg_div clk: imx: pllv4: add fractional-N pll support clk: imx: keep uart clock on during system boot clk: imx: correct i.MX7D AV PLL num/denom offset clk: imx6sll: Fix mispelling uart4_serial as serail clk: imx: pll14xx: drop unused variable clk: imx: rename clk-imx51-imx53.c to clk-imx5.c clk: imx5: Fix i.MX50 ESDHC clock registers clk: imx5: Fix i.MX50 mainbus clock registers clk: imx: Remove unused imx_get_clk_hw_fixed dt-bindings: clock: imx7ulp: remove SNVS clock clk: imx7ulp: remove snvs clock commit d8456eaf319a27d33186f1091bc1ff5c59cf0f0d Merge: b8cac3cd24c1 cbbf4c0be8a7 Author: Linus Torvalds Date: Tue May 7 11:43:32 2019 -0700 Merge tag 'iomap-5.2-merge-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux Pull iomap updates from Darrick Wong: "Nothing particularly exciting here, just adding some callouts for gfs2 and cleaning a few things. Summary: - Add some extra hooks to the iomap buffered write path to enable gfs2 journalled writes - SPDX conversion - Various refactoring" * tag 'iomap-5.2-merge-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: iomap: move iomap_read_inline_data around iomap: Add a page_prepare callback iomap: Fix use-after-free error in page_done callback fs: Turn __generic_write_end into a void function iomap: Clean up __generic_write_end calling iomap: convert to SPDX identifier commit b8cac3cd24c19113982f929c65c50ce99d4cb83f Merge: 9f2e3a53f7ec a5fdd713d256 Author: Linus Torvalds Date: Tue May 7 11:37:27 2019 -0700 Merge tag 'jfs-5.2' of git://github.com/kleikamp/linux-shaggy Pull jfs updates from Dave Kleikamp: "Several minor jfs fixes" * tag 'jfs-5.2' of git://github.com/kleikamp/linux-shaggy: jfs: fix bogus variable self-initialization fs/jfs: Switch to use new generic UUID API jfs: compare old and new mode before setting update_mode flag jfs: remove incorrect comment in jfs_superblock jfs: fix spelling mistake, EACCESS -> EACCES commit 9f2e3a53f7ec9ef55e9d01bc29a6285d291c151e Merge: 78438ce18f26 b1c16ac978fd Author: Linus Torvalds Date: Tue May 7 11:34:19 2019 -0700 Merge tag 'for-5.2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux Pull btrfs updates from David Sterba: "This time the majority of changes are cleanups, though there's still a number of changes of user interest. User visible changes: - better read time and write checks to catch errors early and before writing data to disk (to catch potential memory corruption on data that get checksummed) - qgroups + metadata relocation: last speed up patch int the series to address the slowness, there should be no overhead comparing balance with and without qgroups - FIEMAP ioctl does not start a transaction unnecessarily, this can result in a speed up and less blocking due to IO - LOGICAL_INO (v1, v2) does not start transaction unnecessarily, this can speed up the mentioned ioctl and scrub as well - fsync on files with many (but not too many) hardlinks is faster, finer decision if the links should be fsynced individually or completely - send tries harder to find ranges to clone - trim/discard will skip unallocated chunks that haven't been touched since the last mount Fixes: - send flushes delayed allocation before start, otherwise it could miss some changes in case of a very recent rw->ro switch of a subvolume - fix fallocate with qgroups that could lead to space accounting underflow, reported as a warning - trim/discard ioctl honours the requested range - starting send and dedupe on a subvolume at the same time will let only one of them succeed, this is to prevent changes that send could miss due to dedupe; both operations are restartable Core changes: - more tree-checker validations, errors reported by fuzzing tools: - device item - inode item - block group profiles - tracepoints for extent buffer locking - async cow preallocates memory to avoid errors happening too deep in the call chain - metadata reservations for delalloc reworked to better adapt in many-writers/low-space scenarios - improved space flushing logic for intense DIO vs buffered workloads - lots of cleanups - removed unused struct members - redundant argument removal - properties and xattrs - extent buffer locking - selftests - use common file type conversions - many-argument functions reduction" * tag 'for-5.2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (227 commits) btrfs: Use kvmalloc for allocating compressed path context btrfs: Factor out common extent locking code in submit_compressed_extents btrfs: Set io_tree only once in submit_compressed_extents btrfs: Replace clear_extent_bit with unlock_extent btrfs: Make compress_file_range take only struct async_chunk btrfs: Remove fs_info from struct async_chunk btrfs: Rename async_cow to async_chunk btrfs: Preallocate chunks in cow_file_range_async btrfs: reserve delalloc metadata differently btrfs: track DIO bytes in flight btrfs: merge calls of btrfs_setxattr and btrfs_setxattr_trans in btrfs_set_prop btrfs: delete unused function btrfs_set_prop_trans btrfs: start transaction in xattr_handler_set_prop btrfs: drop local copy of inode i_mode btrfs: drop old_fsflags in btrfs_ioctl_setflags btrfs: modify local copy of btrfs_inode flags btrfs: drop useless inode i_flags copy and restore btrfs: start transaction in btrfs_ioctl_setflags() btrfs: export btrfs_set_prop btrfs: refactor btrfs_set_props to validate externally ... commit db8a974f7e6966d73b4e6afa673c5b8bc31a111e Author: Evan Quan Date: Sun May 5 11:00:50 2019 +0800 drm/amd/powerplay: check for invalid profile_exit setting profile_exit performance level setting is valid only when current mode is in profile mode. Signed-off-by: Evan Quan Reviewed-by: Tao Zhou Signed-off-by: Alex Deucher commit 992fbe8ce035d8c3fb2615ac6e8faeaa7c2fa2c3 Author: Trigger Huang Date: Mon Feb 25 19:19:56 2019 +0800 drm/amdgpu: Use FW addr returned by PSP for VF MM One Vega10 SR-IOV VF, the FW address returned by PSP should be set into the init table, while not the original BO mc address. otherwise, UVD and VCE IB test will fail under Vega10 SR-IOV reference: commit bfcea5204287 ("drm/amdgpu:change VEGA booting with firmware loaded by PSP") commit aa5873dca463 ("drm/amdgpu: Change VCE booting with firmware loaded by PSP") Signed-off-by: Trigger Huang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 78438ce18f26dbcaa8993bb45d20ffb0cec3bc3e Merge: 168e153d5ebb ce285c267a00 Author: Linus Torvalds Date: Tue May 7 11:17:26 2019 -0700 Merge branch 'stable-fodder' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull vfs stable fodder fixes from Al Viro: - acct_on() fix for deadlock caught by overlayfs folks - autofs RCU use-after-free SNAFU (->d_manage() can be called locklessly, so we need to RCU-delay freeing the objects it looks at) - (hopefully) the end of "do we need freeing this dentry RCU-delayed" whack-a-mole. * 'stable-fodder' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: autofs: fix use-after-free in lockless ->d_manage() dcache: sort the freeing-without-RCU-delay mess for good. acct_on(): don't mess with freeze protection commit 168e153d5ebbdd6a3fa85db1cc4879ed4b7030e0 Merge: 8ff468c29e9a f276ae0dd6d0 Author: Linus Torvalds Date: Tue May 7 10:57:05 2019 -0700 Merge branch 'work.icache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs Pull vfs inode freeing updates from Al Viro: "Introduction of separate method for RCU-delayed part of ->destroy_inode() (if any). Pretty much as posted, except that destroy_inode() stashes ->free_inode into the victim (anon-unioned with ->i_fops) before scheduling i_callback() and the last two patches (sockfs conversion and folding struct socket_wq into struct socket) are excluded - that pair should go through netdev once davem reopens his tree" * 'work.icache' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (58 commits) orangefs: make use of ->free_inode() shmem: make use of ->free_inode() hugetlb: make use of ->free_inode() overlayfs: make use of ->free_inode() jfs: switch to ->free_inode() fuse: switch to ->free_inode() ext4: make use of ->free_inode() ecryptfs: make use of ->free_inode() ceph: use ->free_inode() btrfs: use ->free_inode() afs: switch to use of ->free_inode() dax: make use of ->free_inode() ntfs: switch to ->free_inode() securityfs: switch to ->free_inode() apparmor: switch to ->free_inode() rpcpipe: switch to ->free_inode() bpf: switch to ->free_inode() mqueue: switch to ->free_inode() ufs: switch to ->free_inode() coda: switch to ->free_inode() ... commit 00abf69dd24f4444d185982379c5cc3bb7b6d1fc Author: Jeff Layton Date: Tue May 7 09:20:54 2019 -0400 ceph: flush dirty inodes before proceeding with remount xfstest generic/452 was triggering a "Busy inodes after umount" warning. ceph was allowing the mount to go read-only without first flushing out dirty inodes in the cache. Ensure we sync out the filesystem before allowing a remount to proceed. Cc: stable@vger.kernel.org Link: http://tracker.ceph.com/issues/39571 Signed-off-by: Jeff Layton Reviewed-by: "Yan, Zheng" Signed-off-by: Ilya Dryomov commit 4198aba4f431e2d2c24a11cdb9d53106fda00b43 Author: Jeff Layton Date: Thu May 2 08:06:50 2019 -0400 ceph: fix unaligned access in ceph_send_cap_releases Signed-off-by: Jeff Layton Reviewed-by: "Yan, Zheng" Signed-off-by: Ilya Dryomov commit b726ec972cf2122137fbc47847b4fcc7b3bc2801 Author: Jeff Layton Date: Mon May 6 09:38:47 2019 -0400 libceph: make ceph_pr_addr take an struct ceph_entity_addr pointer GCC9 is throwing a lot of warnings about unaligned accesses by callers of ceph_pr_addr. All of the current callers are passing a pointer to the sockaddr inside struct ceph_entity_addr. Fix it to take a pointer to a struct ceph_entity_addr instead, and then have the function make a copy of the sockaddr before printing it. Signed-off-by: Jeff Layton Reviewed-by: Ilya Dryomov Signed-off-by: Ilya Dryomov commit cede185b1ba3118e1912385db4812a37d9e9b205 Author: Jeff Layton Date: Mon May 6 09:38:46 2019 -0400 libceph: fix unaligned accesses in ceph_entity_addr handling GCC9 is throwing a lot of warnings about unaligned access. This patch fixes some of them by changing most of the sockaddr handling functions to take a pointer to struct ceph_entity_addr instead of struct sockaddr_storage. The lower functions can then make copies or do unaligned accesses as needed. Signed-off-by: Jeff Layton Reviewed-by: Ilya Dryomov Signed-off-by: Ilya Dryomov commit b91a7bdca4439e286f26cdd6c15ed338e6a9fda2 Author: Ilya Dryomov Date: Fri May 3 17:27:03 2019 +0200 rbd: don't assert on writes to snapshots The check added in commit 721c7fc701c7 ("block: fail op_is_write() requests to read-only partitions") was lifted in commit a32e236eb93e ("Partially revert "block: fail op_is_write() requests to read-only partitions""). Basic things like user triggered writes and discards are still caught, but internal kernel users can submit anything. In particular, ext4 will attempt to write to the superblock if it detects errors in the filesystem, even if the filesystem is mounted read-only on a read-only partition. The assert is overkill regardless. Signed-off-by: Ilya Dryomov commit a32e414325c2f0d430436e4708a33c756b082fd8 Author: Ilya Dryomov Date: Thu May 2 15:56:00 2019 +0200 rbd: client_mutex is never nested Signed-off-by: Ilya Dryomov commit a55a385d8c846953994d9c140bead67820811b74 Merge: 09934b0363d1 77296bf6a7b8 Author: David S. Miller Date: Tue May 7 10:37:14 2019 -0700 Merge branch 'hns3-next' Huazhong Tan says: ==================== cleanup & optimizations & bugfixes for HNS3 driver This patchset contains some cleanup related to hns3_enet_ring struct and tx bd filling process, optimizations related to rx page reusing, barrier using and tso handling process, bugfixes related to tunnel type handling and error handling for desc filling. ==================== Signed-off-by: David S. Miller commit 77296bf6a7b806b00a62b53436b1e8429becd244 Author: Yunsheng Lin Date: Mon May 6 10:48:52 2019 +0800 net: hns3: use devm_kcalloc when allocating desc_cb This patch uses devm_kcalloc instead of kcalloc when allocating ring->desc_cb, because devm_kcalloc not only ensure to free the memory when the dev is deallocted, but also allocate the memory from it's device memory node. Signed-off-by: Yunsheng Lin Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 845e0d1d5290c3b242aa76f37b4a5cae287b6f75 Author: Yunsheng Lin Date: Mon May 6 10:48:51 2019 +0800 net: hns3: some cleanup for struct hns3_enet_ring This patch removes some unused field in struct hns3_enet_ring, use ring->dev for ring_to_dev macro, and use dev consistently in hns3_fill_desc. Signed-off-by: Yunsheng Lin Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 389ca14615e5ea4f9a56d765ac1e0da22d8105c3 Author: Yunsheng Lin Date: Mon May 6 10:48:50 2019 +0800 net: hns3: unify the page reusing for page size 4K and 64K When page size is 64K, RX buffer is currently not reused when the page_offset is moved to last buffer. This patch adds checking to decide whether the buffer page can be reused when last_offset is moved beyond last offset. If the driver is the only user of page when page_offset is moved to beyond last offset, then buffer can be reused and page_offset is set to zero. Signed-off-by: Yunsheng Lin Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit ce74370c2ce9a90c16167131f837e14b5e3c57ed Author: Yunsheng Lin Date: Mon May 6 10:48:49 2019 +0800 net: hns3: optimize the barrier using when cleaning TX BD Currently, a barrier is used when cleaning each TX BD, which may cause performance degradation. This patch optimizes it to use one barrier when cleaning TX BD each round. Signed-off-by: Yunsheng Lin Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit aa9d22dd456eb255db2a4a5b214ec2e243dda4c8 Author: Yunsheng Lin Date: Mon May 6 10:48:48 2019 +0800 net: hns3: fix error handling for desc filling When desc filling fails in hns3_nic_net_xmit, it will call hns3_clear_desc to unmap the dma mapping. But currently the ring->next_to_use points to the desc where the desc filling or dma mapping return error, which means the desc that ring->next_to_use points to has not done the dma mapping, the desc that need unmapping is before the ring->next_to_use. This patch fixes it by calling ring_ptr_move_bw(next_to_use) before doing unmapping operation, and set desc_cb->dma to zero to avoid freeing it again when unloading. Also, when filling skb head or frag fails, both need to unmap all the way back to next_to_use_head, so remove one desc filling error handling. Fixes: 76ad4f0ee747 ("net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC") Signed-off-by: Yunsheng Lin Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 757cd1e4a4d81181fcd7130c4315d169ad9f5b81 Author: Yunsheng Lin Date: Mon May 6 10:48:47 2019 +0800 net: hns3: combine len and checksum handling for inner and outer header. When filling len and checksum info to description, there is some similar checking or calculation. So this patch adds hns3_set_l2l3l4 to fill the inner(/normal) header's len and checksum info. If it is a encapsulation skb, it calls hns3_set_outer_l2l3l4 to handle the outer header's len and checksum info, in order to avoid some similar checking or calculation. Signed-off-by: Yunsheng Lin Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 07918fcde144628f12048d5f95f28c40b073fba8 Author: Yunsheng Lin Date: Mon May 6 10:48:46 2019 +0800 net: hns3: refactor BD filling for l2l3l4 info This patch separates the inner and outer l2l3l4 len handling in hns3_set_l2l3l4_len, this is a preparation to combine the l2l3l4 len and checksum handling for inner and outer header. Signed-off-by: Yunsheng Lin Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 39c38824c2a0b16bdc6450727847fd5c3da7e8b0 Author: Yunsheng Lin Date: Mon May 6 10:48:45 2019 +0800 net: hns3: fix for tunnel type handling in hns3_rx_checksum According to hardware user manual, the tunnel packet type is available in the rx.ol_info field of struct hns3_desc. Currently the tunnel packet type is decided by the rx.l234_info, which may cause RX checksum handling error. This patch fixes it by using the correct field in struct hns3_desc to decide the tunnel packet type. Fixes: 76ad4f0ee747 ("net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC") Signed-off-by: Yunsheng Lin Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit db4970aa92a148389826057290cd45bb30f5650e Author: Yunsheng Lin Date: Mon May 6 10:48:44 2019 +0800 net: hns3: add linearizing checking for TSO case HW requires every continuous 8 buffer data to be larger than MSS, we simplify it by ensuring skb_headlen + the first continuous 7 frags to to be larger than GSO header len + mss, and the remaining continuous 7 frags to be larger than MSS except the last 7 frags. This patch adds hns3_skb_need_linearized to handle it for TSO case. Signed-off-by: Yunsheng Lin Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit d21ff4f90d975f5027678eb84e0d53fb8ca19c9b Author: Yunsheng Lin Date: Mon May 6 10:48:43 2019 +0800 net: hns3: add counter for times RX pages gets allocated Currently, using "ethtool --statistics" can show how many time RX page have been reused, but there is no counter for RX page not being reused. This patch adds non_reuse_pg counter to better debug the performance issue, because it is hard to determine when the RX page is reused or not if there is no such counter. Signed-off-by: Yunsheng Lin Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit fb00331bb8db4a631b00d6582f94806eba7a4c7f Author: Yunsheng Lin Date: Mon May 6 10:48:42 2019 +0800 net: hns3: use napi_schedule_irqoff in hard interrupts handlers napi_schedule_irqoff is introduced to be used from hard interrupts handlers or when irqs are already masked, see: https://lists.openwall.net/netdev/2014/10/29/2 So this patch replaces napi_schedule with napi_schedule_irqoff. Signed-off-by: Yunsheng Lin Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 3d5f3741895291d3317e33718d96eb78294c8941 Author: Yunsheng Lin Date: Mon May 6 10:48:41 2019 +0800 net: hns3: unify maybe_stop_tx for TSO and non-TSO case Currently, maybe_stop_tx ops for TSO and non-TSO case share some BD calculation code, so this patch unifies the maybe_stop_tx by removing the maybe_stop_tx ops. skb_is_gso() can be used to differentiate the case between TSO and non-TSO case if there is need to handle special case for TSO case. This patch also add tx_copy field in "ethtool --statistics" to help better debug the performance issue caused by calling skb_copy. Signed-off-by: Yunsheng Lin Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit a5944195d00a359e28d6e093593609bcee37ed5e Author: Max Filippov Date: Mon May 6 16:47:41 2019 -0700 xtensa: implement initialize_cacheattr for MPU cores Use CONFIG_MEMMAP_CACHEATTR to initialize MPU as described in the Xtensa LSP RM document. Coalesce adjacent regions with the same cacheattr. Update Kconfig help text. Signed-off-by: Max Filippov commit f7c34874f04a80d6c39a32f08da2529e59602d3c Author: Max Filippov Date: Thu Dec 20 17:18:12 2018 -0800 xtensa: add exclusive atomics support Implement atomic primitives using exclusive access opcodes available in the recent xtensa cores. Since l32ex/s32ex don't have any memory ordering guarantees don't define __smp_mb__before_atomic/__smp_mb__after_atomic to make them use memw. Signed-off-by: Max Filippov commit 09934b0363d19097e02292901bb93521a80ee792 Merge: 14cfbdac6680 58c59ef9e930 Author: David S. Miller Date: Tue May 7 10:34:45 2019 -0700 Merge branch 'net-dsa-lantiq-Add-bridge-offloading' Hauke Mehrtens says: ==================== net: dsa: lantiq: Add bridge offloading This adds bridge offloading for the Intel / Lantiq GSWIP 2.1 switch. Changes since: v2: - Added Fixes tag to patch 1 - Fixed typo - added GSWIP_TABLE_MAC_BRIDGE_STATIC and made use of it - used GSWIP_TABLE_MAC_BRIDGE in more places v1: - fix typo signle -> single ==================== Signed-off-by: David S. Miller commit 58c59ef9e930c4a2eec8451993d291dd02257bbb Author: Hauke Mehrtens Date: Mon May 6 00:25:10 2019 +0200 net: dsa: lantiq: Add Forwarding Database access This adds functions to add and remove static entries to and from the forwarding database and dump the full forwarding database. Signed-off-by: Hauke Mehrtens Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 4581348199ca189b1943a7c5fc3950003310fa37 Author: Hauke Mehrtens Date: Mon May 6 00:25:09 2019 +0200 net: dsa: lantiq: Add fast age function Fast aging per port is not supported directly by the hardware, it is only possible to configure a global aging time. Do the fast aging by iterating over the MAC forwarding table and remove all dynamic entries for a given port. Signed-off-by: Hauke Mehrtens Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 9bbb1c053bdcfba075ffb703c4b865297c3fee02 Author: Hauke Mehrtens Date: Mon May 6 00:25:08 2019 +0200 net: dsa: lantiq: Add VLAN aware bridge offloading The VLAN aware bridge offloading is similar to the VLAN unaware offloading, this makes it possible to offload the VLAN bridge functionalities. The hardware supports up to 64 VLAN bridge entries, we already use one entry for each LAN port to prevent forwarding of packets between the ports when the ports are not in a bridge, so in the end we have 57 possible VLANs. The VLAN filtering is currently only active when the ports are in a bridge, VLAN filtering for ports not in a bridge is not implemented. It is currently not possible to change between VLAN filtering and not filtering while the port is already in a bridge, this would make the driver more complicated. The VLANs are only defined on bridge entries, so we will not add anything into the hardware when the port joins a bridge if it is doing VLAN filtering, but only when an allowed VLAN is added. Signed-off-by: Hauke Mehrtens Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 8206e0ce96b33e6513615de9151e794bbc9f3786 Author: Hauke Mehrtens Date: Mon May 6 00:25:07 2019 +0200 net: dsa: lantiq: Add VLAN unaware bridge offloading This allows to offload bridges with DSA to the switch hardware and do the packet forwarding in hardware. This implements generic functions to access the switch hardware tables, which are used to control many features of the switch. This patch activates the MAC learning by removing the MAC address table lock, to prevent uncontrolled forwarding of packets between all the LAN ports, they are added into individual bridge tables entries with individual flow ids and the switch will do the MAC learning for each port separately before they are added to a real bridge. Each bridge consist of an entry in the active VLAN table and the VLAN mapping table, table entries with the same index are matching. In the VLAN unaware mode we configure everything with VLAN ID 0, but we use different flow IDs, the switch should handle all VLANs as normal payload and ignore them. When the hardware looks for the port of the destination MAC address it only takes the entries which have the same flow ID of the ingress packet. The bridges are configured with 64 possible entries with these information: Table Index, 0...63 VLAN ID, 0...4095: VLAN ID 0 is untagged flow ID, 0..63: Same flow IDs share entries in MAC learning table port map, one bit for each port number tagged port map, one bit for each port number Signed-off-by: Hauke Mehrtens Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 30d8938384c75e1aad8addf55cb8d152d9d3a135 Author: Hauke Mehrtens Date: Mon May 6 00:25:06 2019 +0200 net: dsa: lantiq: Allow special tags only on CPU port Allow the special tag in ingress only on the CPU port and not on all ports. A packet with a special tag could circumvent the hardware forwarding and should only be allowed on the CPU port where Linux controls the port. Fixes: 14fceff4771e ("net: dsa: Add Lantiq / Intel DSA driver for vrx200)" Signed-off-by: Hauke Mehrtens Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit d065fcf12c21348cbc125460f75332f467518fb1 Author: Max Filippov Date: Mon May 6 12:02:26 2019 -0700 xtensa: clean up inline assembly in futex.h Replace numeric inline assembly parameters with named parameters. Drop unused parameters from the futex_atomic_cmpxchg_inatomic. Use new temporary variable to hold target address in the fixup code in futex_atomic_cmpxchg_inatomic. Conditionalize function bodies so that only 'return -ENOSYS' is left in configurations without futex support. Signed-off-by: Max Filippov commit 8ff468c29e9a9c3afe9152c10c7b141343270bf3 Merge: 68253e718c27 d9c9ce34ed5c Author: Linus Torvalds Date: Tue May 7 10:24:10 2019 -0700 Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 FPU state handling updates from Borislav Petkov: "This contains work started by Rik van Riel and brought to fruition by Sebastian Andrzej Siewior with the main goal to optimize when to load FPU registers: only when returning to userspace and not on every context switch (while the task remains in the kernel). In addition, this optimization makes kernel_fpu_begin() cheaper by requiring registers saving only on the first invocation and skipping that in following ones. What is more, this series cleans up and streamlines many aspects of the already complex FPU code, hopefully making it more palatable for future improvements and simplifications. Finally, there's a __user annotations fix from Jann Horn" * 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (29 commits) x86/fpu: Fault-in user stack if copy_fpstate_to_sigframe() fails x86/pkeys: Add PKRU value to init_fpstate x86/fpu: Restore regs in copy_fpstate_to_sigframe() in order to use the fastpath x86/fpu: Add a fastpath to copy_fpstate_to_sigframe() x86/fpu: Add a fastpath to __fpu__restore_sig() x86/fpu: Defer FPU state load until return to userspace x86/fpu: Merge the two code paths in __fpu__restore_sig() x86/fpu: Restore from kernel memory on the 64-bit path too x86/fpu: Inline copy_user_to_fpregs_zeroing() x86/fpu: Update xstate's PKRU value on write_pkru() x86/fpu: Prepare copy_fpstate_to_sigframe() for TIF_NEED_FPU_LOAD x86/fpu: Always store the registers in copy_fpstate_to_sigframe() x86/entry: Add TIF_NEED_FPU_LOAD x86/fpu: Eager switch PKRU state x86/pkeys: Don't check if PKRU is zero before writing it x86/fpu: Only write PKRU if it is different from current x86/pkeys: Provide *pkru() helpers x86/fpu: Use a feature number instead of mask in two more helpers x86/fpu: Make __raw_xsave_addr() use a feature number instead of mask x86/fpu: Add an __fpregs_load_activate() internal helper ... commit 405ecbf72f2eb4fc796c4c99ca4881e2cb2ab158 Author: Parav Pandit Date: Tue Apr 30 17:49:34 2019 -0500 vfio/mdev: Avoid inline get and put parent helpers As section 15 of Documentation/process/coding-style.rst clearly describes that compiler will be able to optimize code. Hence drop inline for get and put helpers for parent. Signed-off-by: Parav Pandit Signed-off-by: Alex Williamson commit 6093e348a5e2475c5bb2e571346460f939998670 Author: Parav Pandit Date: Tue Apr 30 17:49:33 2019 -0500 vfio/mdev: Fix aborting mdev child device removal if one fails device_for_each_child() stops executing callback function for remaining child devices, if callback hits an error. Each child mdev device is independent of each other. While unregistering parent device, mdev core must remove all child mdev devices. Therefore, mdev_device_remove_cb() always returns success so that device_for_each_child doesn't abort if one child removal hits error. While at it, improve remove and unregister functions for below simplicity. There isn't need to pass forced flag pointer during mdev parent removal which invokes mdev_device_remove(). So simplify the flow. mdev_device_remove() is called from two paths. 1. mdev_unregister_driver() mdev_device_remove_cb() mdev_device_remove() 2. remove_store() mdev_device_remove() Fixes: 7b96953bc640 ("vfio: Mediated device Core driver") Reviewed-by: Maxim Levitsky Signed-off-by: Parav Pandit Signed-off-by: Alex Williamson commit a6d6f4f160f76d840e59affe664b8d3159e23056 Author: Parav Pandit Date: Tue Apr 30 17:49:32 2019 -0500 vfio/mdev: Follow correct remove sequence mdev_remove_sysfs_files() should follow exact mirror sequence of a create, similar to what is followed in error unwinding path of mdev_create_sysfs_files(). Fixes: 6a62c1dfb5c7 ("vfio/mdev: Re-order sysfs attribute creation") Reviewed-by: Cornelia Huck Reviewed-by: Maxim Levitsky Signed-off-by: Parav Pandit Signed-off-by: Alex Williamson commit d3000463504b561db3c6d3aedc2c3106bdb29648 Author: Parav Pandit Date: Tue Apr 30 17:49:31 2019 -0500 vfio/mdev: Avoid masking error code to EBUSY Instead of masking return error to -EBUSY, return actual error returned by the driver. Reviewed-by: Cornelia Huck Reviewed-by: Maxim Levitsky Signed-off-by: Parav Pandit Signed-off-by: Alex Williamson commit 50732af3b65691666c32fe89808545134c1ee2a0 Author: Parav Pandit Date: Tue Apr 30 17:49:30 2019 -0500 vfio/mdev: Drop redundant extern for exported symbols There is no need use 'extern' for exported functions. Acked-by: Cornelia Huck Reviewed-by: Maxim Levitsky Signed-off-by: Parav Pandit Signed-off-by: Alex Williamson commit f707d837b6c24792a724ec51117c0fdb92bd352f Author: Parav Pandit Date: Tue Apr 30 17:49:29 2019 -0500 vfio/mdev: Removed unused kref Remove unused kref from the mdev_device structure. Fixes: 7b96953bc640 ("vfio: Mediated device Core driver") Reviewed-by: Cornelia Huck Reviewed-by: Kirti Wankhede Reviewed-by: Maxim Levitsky Signed-off-by: Parav Pandit Signed-off-by: Alex Williamson commit 60e7f2c3fe9919cee9534b422865eed49f4efb15 Author: Parav Pandit Date: Tue Apr 30 17:49:28 2019 -0500 vfio/mdev: Avoid release parent reference during error path During mdev parent registration in mdev_register_device(), if parent device is duplicate, it releases the reference of existing parent device. This is incorrect. Existing parent device should not be touched. Fixes: 7b96953bc640 ("vfio: Mediated device Core driver") Reviewed-by: Cornelia Huck Reviewed-by: Kirti Wankhede Reviewed-by: Maxim Levitsky Signed-off-by: Parav Pandit Signed-off-by: Alex Williamson commit 5ddc61fc145861e4e542c9273a4088b627ba9b8d Author: Jeff Layton Date: Tue Apr 23 13:40:02 2019 -0400 ceph: print inode number in __caps_issued_mask debugging messages To make it easier to correlate with MDS logs. Signed-off-by: Jeff Layton Reviewed-by: "Yan, Zheng" Signed-off-by: Ilya Dryomov commit 488f5284e29b2dbb7c224d51b56fc20348e73735 Author: Jeff Layton Date: Wed Apr 24 10:05:39 2019 -0400 ceph: just call get_session in __ceph_lookup_mds_session I originally thought there was a potential race here, but the fact that this is called with the mdsc->mutex held, ensures that the last reference to the session can't be put here. Still, it's clearer to just return the value from get_session here, and may prevent a bug later if we ever rework this code to be less reliant on mutexes. Signed-off-by: Jeff Layton Reviewed-by: "Yan, Zheng" Signed-off-by: Ilya Dryomov commit 1199d7da2d29dac5e3983ea1078dbd4ab107e33f Author: Jeff Layton Date: Tue Apr 2 15:58:05 2019 -0400 ceph: simplify arguments and return semantics of try_get_cap_refs The return of this function is rather complex. It can return 0 or 1, and in the case of a 1 return, the "err" pointer will be filled out. This necessitates a lot of copying of values. We can achieve the same effect by just returning 0, 1 or a negative error code, and drop the "err" argument from this function. Signed-off-by: Jeff Layton Reviewed-by: "Yan, Zheng" Signed-off-by: Ilya Dryomov commit a452bc0636728b8c12632ae4b5f4ddf39cbe39c1 Author: Jeff Layton Date: Tue Apr 2 14:20:24 2019 -0400 ceph: fix comment over ceph_drop_caps_for_unlink It's not clear what AUTH_RDCACHE means in this context, and we're clearly just dropping LINK caps here. Signed-off-by: Jeff Layton Reviewed-by: "Yan, Zheng" Signed-off-by: Ilya Dryomov commit 8340f22ce50c7c2f9b05e0875891dcc44232dce4 Author: Jeff Layton Date: Tue Apr 2 12:34:38 2019 -0400 ceph: move wait for mds request into helper function Signed-off-by: Jeff Layton Reviewed-by: "Yan, Zheng" Signed-off-by: Ilya Dryomov commit 86bda539fa90184ca404afb38cd015416bf81d15 Author: Jeff Layton Date: Tue Apr 2 09:24:36 2019 -0400 ceph: have ceph_mdsc_do_request call ceph_mdsc_submit_request Nothing calls ceph_mdsc_submit_request today, but in later patches we'll need to be able to call this separately. Have the helper return an int so we can check the r_err under the mutex, and have the caller just check the error code from the submit. Also move the acquisition of CEPH_CAP_PIN references into the same function. Signed-off-by: Jeff Layton Reviewed-by: "Yan, Zheng" Signed-off-by: Ilya Dryomov commit 111c708104506d53bb1845c782cfd98157471e32 Author: Jeff Layton Date: Tue Apr 2 09:43:18 2019 -0400 ceph: after an MDS request, do callback and completions No MDS requests use r_callback today, but that will change in the future. The OSD client always does r_callback and then completes r_completion. Let's have the MDS client do the same. Signed-off-by: Jeff Layton Reviewed-by: "Yan, Zheng" Signed-off-by: Ilya Dryomov commit c1dfc277239c73f68a6af6979acec1989a5e6864 Author: Jeff Layton Date: Wed Apr 17 14:23:17 2019 -0400 ceph: use pathlen values returned by set_request_path_attr We make copies of the dentry name in set_request_path_attr, but then create_request_message re-fetches the lengths out of the dentry. While we don't currently set the *_drop fields unless the parents are locked, it's still better not to rely on that sort of implicit assumption. Use the pathlen values that set_request_path_attr returned instead, as they will always be correct for the returned paths themselves. Signed-off-by: Jeff Layton Reviewed-by: "Yan, Zheng" Signed-off-by: Ilya Dryomov commit f77f21bb28367d0ac4861a24da1db118bba850e6 Author: Jeff Layton Date: Mon Apr 29 12:13:14 2019 -0400 ceph: use __getname/__putname in ceph_mdsc_build_path Al suggested we get rid of the kmalloc here and just use __getname and __putname to get a full PATH_MAX pathname buffer. Since we build the path in reverse, we continue to return a pointer to the beginning of the string and the length, and add a new helper to free the thing at the end. Suggested-by: Al Viro Signed-off-by: Jeff Layton Reviewed-by: "Yan, Zheng" Signed-off-by: Ilya Dryomov commit 964fff7491e4923e18ff08f2a254c4b94e3f83d6 Author: Jeff Layton Date: Mon Apr 29 11:51:02 2019 -0400 ceph: use ceph_mdsc_build_path instead of clone_dentry_name While it may be slightly more efficient, it's probably not worthwhile to optimize for the case that clone_dentry_name handles. We can get the same result by just calling ceph_mdsc_build_path when the parent isn't locked, with less code duplication. Signed-off-by: Jeff Layton Reviewed-by: "Yan, Zheng" Signed-off-by: Ilya Dryomov commit 69a10fb3f4b8769ffd44e4eaa662ab691fa61f4c Author: Jeff Layton Date: Fri Apr 26 13:33:39 2019 -0400 ceph: fix potential use-after-free in ceph_mdsc_build_path temp is not defined outside of the RCU critical section here. Ensure we grab that value before we drop the rcu_read_lock. Reported-by: Al Viro Signed-off-by: Jeff Layton Signed-off-by: Ilya Dryomov commit ff4a80bf2d3f8005dc5890381bc8ca48e259c60d Author: Jeff Layton Date: Wed Apr 24 12:05:15 2019 -0400 ceph: dump granular cap info in "caps" debugfs file We have a "caps" file already that gives statistics on the caps cache as a whole. Add another section to that output and dump a line for each individual cap record. Signed-off-by: Jeff Layton Reviewed-by: "Yan, Zheng" Signed-off-by: Ilya Dryomov commit f5d7726900b66e38355db878ced6b13b00fa9201 Author: Jeff Layton Date: Wed Apr 24 12:09:04 2019 -0400 ceph: make iterate_session_caps a public symbol Signed-off-by: Jeff Layton Reviewed-by: "Yan, Zheng" Signed-off-by: Ilya Dryomov commit 40e7e2c0e86464bca839cdf891bd58a6d41b60b4 Author: Jeff Layton Date: Tue Apr 23 14:18:45 2019 -0400 ceph: fix NULL pointer deref when debugging is enabled Signed-off-by: Jeff Layton Signed-off-by: Ilya Dryomov commit 428bb68ad99b9f03c35d7b34d60be54faf954181 Author: Jeff Layton Date: Thu Apr 11 15:27:03 2019 -0400 ceph: properly handle granular statx requests cephfs can benefit from statx. We can have the client just request caps sufficient for the needed attributes and leave off the rest. Also, recognize when AT_STATX_DONT_SYNC is set, and just scrape the inode without doing any call in that case. Force a call to the MDS in the event that AT_STATX_FORCE_SYNC is set. Link: http://tracker.ceph.com/issues/39258 Signed-off-by: Jeff Layton Reviewed-by: "Yan, Zheng" Reviewed-by: David Howells Reviewed-by: Sage Weil Signed-off-by: Ilya Dryomov commit ffb61c55b2501c3dcd266856e25430ae8e3753d6 Author: Jeff Layton Date: Mon Apr 8 10:36:01 2019 -0400 ceph: remove superfluous inode_lock in ceph_fsync Originally, filemap_write_and_wait took the i_mutex internally, but commit 02c24a82187d pushed the mutex acquisition into the individual fsync routines, leaving it up to the subsystem maintainers to remove it if it wasn't needed. For ceph, I see no reason to take the inode_lock here. All of the operations inside that lock are protected by their own locking. Signed-off-by: Jeff Layton Reviewed-by: "Yan, Zheng" Signed-off-by: Ilya Dryomov commit 0384892c2d839033566b53453be44b1f5812cd00 Author: Arnd Bergmann Date: Mon Mar 25 13:51:43 2019 +0100 libceph: fix clang warning for CEPH_DEFINE_OID_ONSTACK clang complains about assigning a variable to itself during the declaration: fs/ceph/ioctl.c:187:26: error: variable 'oid' is uninitialized when used within its own initialization [-Werror,-Wuninitialized] CEPH_DEFINE_OID_ONSTACK(oid); ^~~ include/linux/ceph/osdmap.h:122:52: note: expanded from macro 'CEPH_DEFINE_OID_ONSTACK' struct ceph_object_id oid = CEPH_OID_INIT_ONSTACK(oid) ~~~ ^~~ include/linux/ceph/osdmap.h:120:29: note: expanded from macro 'CEPH_OID_INIT_ONSTACK' ({ ceph_oid_init(&oid); oid; }) ^~~ We use this trick in other places, but it is completely unnecessary here, as we can just use a regular struct initializer. Signed-off-by: Arnd Bergmann Reviewed-by: Ilya Dryomov Signed-off-by: Ilya Dryomov commit 1680937266587906138752c2dfc80a45adb774c7 Author: Arnd Bergmann Date: Fri Mar 22 17:53:56 2019 +0100 rbd: convert all rbd_assert(0) to BUG() rbd_assert(0) has caused different issues depending on the compiler version in the past, so it seems better to avoid it completely. Replace the remaining instances. Signed-off-by: Arnd Bergmann Reviewed-by: Ilya Dryomov Signed-off-by: Ilya Dryomov commit d342a15b1e8547fd033f65ce949a8d8501e5ac8f Author: Arnd Bergmann Date: Fri Mar 22 15:36:37 2019 +0100 rbd: avoid clang -Wuninitialized warning clang fails to see that rbd_assert(0) ends in an unreachable code path and warns about a subsequent use of an uninitialized variable when CONFIG_PROFILE_ANNOTATED_BRANCHES is set: drivers/block/rbd.c:2402:4: error: variable 'ret' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized] rbd_assert(0); ^~~~~~~~~~~~~ drivers/block/rbd.c:563:7: note: expanded from macro 'rbd_assert' if (unlikely(!(expr))) { \ ^~~~~~~~~~~~~~~~~ include/linux/compiler.h:48:23: note: expanded from macro 'unlikely' # define unlikely(x) (__branch_check__(x, 0, __builtin_constant_p(x))) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/block/rbd.c:2410:6: note: uninitialized use occurs here if (ret) { ^~~ drivers/block/rbd.c:2402:4: note: remove the 'if' if its condition is always true rbd_assert(0); ^ drivers/block/rbd.c:563:3: note: expanded from macro 'rbd_assert' if (unlikely(!(expr))) { \ ^ drivers/block/rbd.c:2376:9: note: initialize the variable 'ret' to silence this warning int ret; ^ = 0 1 error generated. This seems to be a bug in clang, but is easy to work around by using an unconditional BUG(). Signed-off-by: Arnd Bergmann Reviewed-by: Ilya Dryomov Signed-off-by: Ilya Dryomov commit 570df4e9c23f861aa3f8f2954468c534a033bf1a Author: Yan, Zheng Date: Wed Nov 15 17:39:40 2017 +0800 ceph: snapshot nfs re-export To support snapshot nfs re-export, we need a way to lookup snapped inode by file handle. For directory inode, snapped metadata are always stored together with head inode. Client just need to pass vinodeno_t to MDS. For non-directory inode, there can be multiple version of snapped inodes and they can be stored in different dirfrags. Besides vinodeno_t, client also need to tell mds from which dirfrag it got the snapped inode. Another problem of supporting snapshot nfs re-export is that there can be multiple paths to access a snapped inode. For example: mkdir -p d1/d2/d3 mkdir d1/.snap/s1 Paths 'd1/.snap/s1/d2/d3', 'd1/d2/.snap/_s1_/d3' and 'd1/d2/d3/.snap/_s1_' are all reference to the same snapped inode. For a given snapped inode, There is no convenient way to get the first form and the second form paths. For simplicity, ceph_get_parent() return snapdir for snapped directory inode. Furthermore, client may access snapshot of deleted directory. For example: mkdir -p d1/d2 mkdir d1/.snap/s1 open d1/.snap/s1/d2 rm -rf d1/d2 The path constucted by ceph_get_parent() and ceph_get_name() is '/.snap/_s1_'. Futher lookup parent of will fail. To workaround this case, this patch uses d_obtain_root() to get dentry for snapdir of deleted directory. snapdir dentry has no DCACHE_DISCONNECTED flag set, reconnect_path() stops when it reaches snapdir dentry. Link: http://tracker.ceph.com/issues/22105 Signed-off-by: "Yan, Zheng" Signed-off-by: Ilya Dryomov commit 0c44a8e0fc55f56a70f72e67d7cc5b9341dae7d1 Author: Luis Henriques Date: Thu Mar 21 10:20:10 2019 +0000 ceph: quota: fix quota subdir mounts The CephFS kernel client does not enforce quotas set in a directory that isn't visible from the mount point. For example, given the path '/dir1/dir2', if quotas are set in 'dir1' and the filesystem is mounted with mount -t ceph ::/dir1/ /mnt then the client won't be able to access 'dir1' inode, even if 'dir2' belongs to a quota realm that points to it. This patch fixes this issue by simply doing an MDS LOOKUPINO operation for unknown inodes. Any inode reference obtained this way will be added to a list in ceph_mds_client, and will only be released when the filesystem is umounted. Link: https://tracker.ceph.com/issues/38482 Reported-by: Hendrik Peyerl Signed-off-by: Luis Henriques Reviewed-by: "Yan, Zheng" Signed-off-by: Ilya Dryomov commit 3886274adf34a4e38417772e3d1c0b213380004e Author: Luis Henriques Date: Thu Mar 21 10:20:09 2019 +0000 ceph: factor out ceph_lookup_inode() This function will be used by __fh_to_dentry and by the quotas code, to find quota realm inodes that are not visible in the mountpoint. Signed-off-by: Luis Henriques Reviewed-by: "Yan, Zheng" Signed-off-by: Ilya Dryomov commit 1b52931ca9b5b87e237c591f99201b6254c00809 Author: Zhi Zhang Date: Fri Mar 22 14:16:33 2019 +0800 ceph: remove duplicated filelock ref increase Inode i_filelock_ref is increased in ceph_lock or ceph_flock, but it is increased again in ceph_lock_message. This results in this ref won't become zero. If CEPH_I_ERROR_FILELOCK flag is set in remove_session_caps once, this flag can't be cleared even if client is back to normal. So further file lock will return EIO. Signed-off-by: Zhi Zhang Reviewed-by: "Yan, Zheng" Signed-off-by: Ilya Dryomov commit 68253e718c2778427db451e39a8366aa49982b71 Merge: 0968621917ad 37e1677330bd Author: Linus Torvalds Date: Tue May 7 10:18:57 2019 -0700 Merge tag 'ktest-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest Pull ktest updates from Steven Rostedt: "Minor updates to ktest.pl - Handle meta characters in grub memu - Use configurable reboot return code for handling ssh reboots - Display names and iteration number on error message" * tag 'ktest-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest: ktest: introduce REBOOT_RETURN_CODE to confirm the result of REBOOT ktest: Add support for meta characters in GRUB_MENU ktest: Show name and iteration on errors commit 14cfbdac6680bc87f6b9f6196d4d4ec044a01481 Merge: 54516da1ea85 d24ed99b3b27 Author: David S. Miller Date: Tue May 7 09:29:16 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next Daniel Borkmann says: ==================== pull-request: bpf-next 2019-05-06 The following pull-request contains BPF updates for your *net-next* tree. The main changes are: 1) Two AF_XDP libbpf fixes for socket teardown; first one an invalid munmap and the other one an invalid skmap cleanup, both from Björn. 2) More graceful CONFIG_DEBUG_INFO_BTF handling when pahole is not present in the system to generate vmlinux btf info, from Andrii. 3) Fix libbpf and thus fix perf build error with uClibc on arc architecture, from Vineet. 4) Fix missing libbpf_util.h header install in libbpf, from William. 5) Exclude bash-completion/bpftool from .gitignore pattern, from Masahiro. 6) Fix up rlimit in test_libbpf_open kselftest test case, from Yonghong. 7) Minor misc cleanups. ==================== Signed-off-by: David S. Miller commit 982e826d31b1cbfebb8c94bea47949d684f272dc Merge: 9b3040a6aafd b9aa0b35d878 Author: David S. Miller Date: Tue May 7 09:25:43 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf Daniel Borkmann says: ==================== pull-request: bpf 2019-05-06 The following pull-request contains BPF updates for your *net* tree. The main changes are: 1) Two x32 JIT fixes: one which has buggy signed comparisons in 64 bit conditional jumps and another one for 64 bit negation, both from Wang. ==================== Signed-off-by: David S. Miller commit 0968621917add2e0d60c8fbc4e24c670cb14319c Merge: 573de2a6e844 0f46c78391e1 Author: Linus Torvalds Date: Tue May 7 09:18:12 2019 -0700 Merge tag 'printk-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk Pull printk updates from Petr Mladek: - Allow state reset of printk_once() calls. - Prevent crashes when dereferencing invalid pointers in vsprintf(). Only the first byte is checked for simplicity. - Make vsprintf warnings consistent and inlined. - Treewide conversion of obsolete %pf, %pF to %ps, %pF printf modifiers. - Some clean up of vsprintf and test_printf code. * tag 'printk-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk: lib/vsprintf: Make function pointer_string static vsprintf: Limit the length of inlined error messages vsprintf: Avoid confusion between invalid address and value vsprintf: Prevent crash when dereferencing invalid pointers vsprintf: Consolidate handling of unknown pointer specifiers vsprintf: Factor out %pO handler as kobject_string() vsprintf: Factor out %pV handler as va_format() vsprintf: Factor out %p[iI] handler as ip_addr_string() vsprintf: Do not check address of well-known strings vsprintf: Consistent %pK handling for kptr_restrict == 0 vsprintf: Shuffle restricted_pointer() printk: Tie printk_once / printk_deferred_once into .data.once for reset treewide: Switch printk users from %pf and %pF to %ps and %pS, respectively lib/test_printf: Switch to bitmap_zalloc() commit e7a5b4aafd82771f8924905c208d5d236ddcb671 Author: Leon Romanovsky Date: Sun May 5 19:33:20 2019 +0300 RDMA/device: Don't fire uevent before device is fully initialized When the refcount is 0 the device is invisible to netlink. However in the patch below the refcount = 1 was moved to after the device_add(). This creates a race where userspace can issue a netlink query after the device_add() event and not see the device as visible. Ensure that no uevent is fired before device is fully registered. Fixes: d79af7242bb2 ("RDMA/device: Expose ib_device_try_get(()") Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 573de2a6e844cb230c4483833f29b8344a6a17cc Merge: b4dd05dee0db 1efbd99ed41d Author: Linus Torvalds Date: Tue May 7 08:56:04 2019 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching Pull livepatching updates from Jiri Kosina: - livepatching kselftests improvements from Joe Lawrence and Miroslav Benes - making use of gcc's -flive-patching option when available, from Miroslav Benes - kobject handling cleanups, from Petr Mladek * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching: livepatch: Remove duplicated code for early initialization livepatch: Remove custom kobject state handling livepatch: Convert error about unsupported reliable stacktrace into a warning selftests/livepatch: Add functions.sh to TEST_PROGS_EXTENDED kbuild: use -flive-patching when CONFIG_LIVEPATCH is enabled selftests/livepatch: use TEST_PROGS for test scripts commit b4dd05dee0dbd16afdbba83b698a7110c687be2d Merge: 80104bb06b17 63b6f0b827d6 Author: Linus Torvalds Date: Tue May 7 08:52:04 2019 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid Pull HID updates from Jiri Kosina: - support for U2F Zero device, from Andrej Shadura - logitech-dj has historically been treating devices behind non-unifying receivers as generic devices, using the HID emulation in the receiver. That had several shortcomings (special keys handling, battery level monitoring, etc). The driver has been reworked to enumarate (and directly communicate with) the devices behind the receiver, to avoid the (too) generic HID implementation in the receiver itself. All the work done by Benjamin Tissoires and Hans de Goede. - restructuring of intel-ish driver in order to allow for multiple clients of the ISH implementation, from Srinivas Pandruvada - several other smaller fixes and assorted device ID additions * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid: (68 commits) HID: logitech-dj: fix spelling in printk HID: input: fix assignment of .value HID: input: make sure the wheel high resolution multiplier is set HID: logitech-dj: add usbhid dependency in Kconfig HID: logitech-hidpp: add support for HID++ 1.0 consumer keys reports HID: logitech-hidpp: add support for HID++ 1.0 extra mouse buttons reports HID: logitech-hidpp: add support for HID++ 1.0 wheel reports HID: logitech-hidpp: make hidpp10_set_register_bit a bit more generic HID: logitech-hidpp: add input_device ptr to struct hidpp_device HID: logitech-hidpp: do not hardcode very long report length HID: logitech-hidpp: handle devices attached to 27MHz wireless receivers HID: logitech-hidpp: use RAP instead of FAP to get the protocol version HID: logitech-hidpp: remove unused origin_is_hid_core function parameter HID: logitech-hidpp: remove double assignment from __hidpp_send_report HID: logitech-hidpp: do not make failure to get the name fatal HID: logitech-hidpp: ignore very-short or empty names HID: logitech-hidpp: make .probe usbhid capable HID: logitech-hidpp: allow non HID++ devices to be handled by this module HID: logitech-dj: add support for Logitech Bluetooth Mini-Receiver HID: logitech-dj: make appending of the HID++ descriptors conditional ... commit 80104bb06b17497b570b11a187131dca7d445b40 Merge: 78ee8b1b9b2f 476c7e1d34f2 Author: Linus Torvalds Date: Tue May 7 08:50:40 2019 -0700 Merge tag 'i3c/for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux Pull i3c update from Boris Brezillon: - Fix a shift wrap bug in the core - Remove dead code in the DW driver * tag 'i3c/for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/i3c/linux: i3c: Fix a shift wrap bug in i3c_bus_set_addr_slot_status() i3c: master: dw: remove dead code from dw_i3c_master_*_xfers() commit f5e4546347bc847be30b3cf904db5fc874b3c5dc Author: David Howells Date: Wed May 1 14:05:27 2019 +0100 afs: Implement YFS ACL setting Implement the setting of YFS ACLs in AFS through the interface of setting the afs.yfs.acl extended attribute on the file. Signed-off-by: David Howells commit ae46578b963f6daa9853791ab4c6ac1d6375937c Author: David Howells Date: Tue Apr 30 18:30:21 2019 +0100 afs: Get YFS ACLs and information through xattrs The YFS/AuriStor variant of AFS provides more capable ACLs and provides per-volume ACLs and per-file ACLs as well as per-directory ACLs. It also provides some extra information that can be retrieved through four ACLs: (1) afs.yfs.acl The YFS file ACL (not the same format as afs.acl). (2) afs.yfs.vol_acl The YFS volume ACL. (3) afs.yfs.acl_inherited "1" if a file's ACL is inherited from its parent directory, "0" otherwise. (4) afs.yfs.acl_num_cleaned The number of of ACEs removed from the ACL by the server because the PT entries were removed from the PTS database (ie. the subject is no longer known). Signed-off-by: David Howells commit b10494af4989d2d20679d0e3b7d1a45c2f8f8f1a Author: Joe Gorse Date: Thu Apr 25 14:26:52 2019 +0100 afs: implement acl setting Implements the setting of ACLs in AFS by means of setting the afs.acl extended attribute on the file. Signed-off-by: Joe Gorse Signed-off-by: David Howells commit 260f082bae6dcf70aeae2cc3e24aecb55bdb1c99 Author: David Howells Date: Thu Apr 25 14:26:52 2019 +0100 afs: Get an AFS3 ACL as an xattr Implement an xattr on AFS files called "afs.acl" that retrieves a file's ACL. It returns the raw AFS3 ACL from the result of calling FS.FetchACL, leaving any interpretation to userspace. Note that whilst YFS servers will respond to FS.FetchACL, this will render a more-advanced YFS ACL down. Use "afs.yfs.acl" instead for that. Signed-off-by: David Howells commit a2f611a3dc317d8ea1c98ad6c54b911cf7f93193 Author: David Howells Date: Wed May 1 15:58:24 2019 +0100 afs: Fix getting the afs.fid xattr The AFS3 FID is three 32-bit unsigned numbers and is represented as three up-to-8-hex-digit numbers separated by colons to the afs.fid xattr. However, with the advent of support for YFS, the FID is now a 64-bit volume number, a 96-bit vnode/inode number and a 32-bit uniquifier (as before). Whilst the sprintf in afs_xattr_get_fid() has been partially updated (it currently ignores the upper 32 bits of the 96-bit vnode number), the size of the stack-based buffer has not been increased to match, thereby allowing stack corruption to occur. Fix this by increasing the buffer size appropriately and conditionally including the upper part of the vnode number if it is non-zero. The latter requires the lower part to be zero-padded if the upper part is non-zero. Fixes: 3b6492df4153 ("afs: Increase to 64-bit volume ID and 96-bit vnode ID for YFS") Signed-off-by: David Howells commit c73aa4102f5b9f261a907c3b3df94cd2c478504d Author: David Howells Date: Wed May 1 13:27:09 2019 +0100 afs: Fix the afs.cell and afs.volume xattr handlers Fix the ->get handlers for the afs.cell and afs.volume xattrs to pass the source data size to memcpy() rather than target buffer size. Overcopying the source data occasionally causes the kernel to oops. Fixes: d3e3b7eac886 ("afs: Add metadata xattrs") Signed-off-by: David Howells commit c0abbb5791f1984350f1dac72c31c67010010a30 Author: Marc Dionne Date: Thu Apr 25 12:04:37 2019 -0300 afs: Calculate i_blocks based on file size While it's not possible to give an accurate number for the blocks used on the server, populate i_blocks based on the file size so that 'du' can give a reasonable estimate. The value is rounded up to 1K granularity, for consistency with what other AFS clients report, and the servers' 1K usage quota unit. Note that the value calculated by 'du' at the root of a volume can still be slightly lower than the quota usage on the server, as 0-length files are charged 1 quota block, but are reported as occupying 0 blocks. Again, this is consistent with other AFS clients. Signed-off-by: Marc Dionne Signed-off-by: David Howells commit b134d687dd9369bb2407a23c6ecc9e0a15d8bb20 Author: David Howells Date: Thu Apr 25 14:26:52 2019 +0100 afs: Log more information for "kAFS: AFS vnode with undefined type\n" Log more information when "kAFS: AFS vnode with undefined type\n" is displayed due to a vnode record being retrieved from the server that appears to have a duff file type (usually 0). This prints more information to try and help pin down the problem. Signed-off-by: David Howells commit d2c4ada1ed883ea1310112965f2f1d713a470699 Author: Gal Pressman Date: Mon May 6 18:02:56 2019 +0300 lib/scatterlist: Remove leftover from sg_page_iter comment Commit d901b2760dc6 ("lib/scatterlist: Provide a DMA page iterator") added the sg DMA iterator but a leftover remained in the sg_page_iter documentation as you cannot get the page dma address (only the page itself), fix it. Signed-off-by: Gal Pressman Reviewed-by: Mukesh Ojha Signed-off-by: Jason Gunthorpe commit f23afd75fc998ce002400b7687f942ce5207909a Author: Gal Pressman Date: Sun May 5 20:59:31 2019 +0300 RDMA/efa: Add driver to Kconfig/Makefile Add EFA Makefile and Kconfig. Signed-off-by: Gal Pressman Reviewed-by: Steve Wise Signed-off-by: Jason Gunthorpe commit b7f5e880f3774ff1934ce272e1c3b673a3a9c414 Author: Gal Pressman Date: Sun May 5 20:59:30 2019 +0300 RDMA/efa: Add the efa module Add the main EFA module file which takes care of device probe/initialization/registration/etc. Signed-off-by: Gal Pressman Reviewed-by: Shiraz Saleem Reviewed-by: Steve Wise Signed-off-by: Jason Gunthorpe commit 40909f664d279765af430acc5db348a0b71c9b0a Author: Gal Pressman Date: Sun May 5 20:59:29 2019 +0300 RDMA/efa: Add EFA verbs implementation Add a file that implements the EFA verbs. Signed-off-by: Gal Pressman Reviewed-by: Shiraz Saleem Reviewed-by: Steve Wise Signed-off-by: Jason Gunthorpe commit 78ee8b1b9b2fa1b51c51c42f3cffa0e12ad5f0ab Merge: 9bff9dfc513b 6beff00b79ca Author: Linus Torvalds Date: Tue May 7 08:39:54 2019 -0700 Merge branch 'next-general' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security Pull security subsystem updates from James Morris: "Just a few bugfixes and documentation updates" * 'next-general' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: seccomp: fix up grammar in comment Revert "security: inode: fix a missing check for securityfs_create_file" Yama: mark function as static security: inode: fix a missing check for securityfs_create_file keys: safe concurrent user->{session,uid}_keyring access security: don't use RCU accessors for cred->session_keyring Yama: mark local symbols as static LSM: lsm_hooks.h: fix documentation format LSM: fix documentation for the shm_* hooks LSM: fix documentation for the sem_* hooks LSM: fix documentation for the msg_queue_* hooks LSM: fix documentation for the audit_* hooks LSM: fix documentation for the path_chmod hook LSM: fix documentation for the socket_getpeersec_dgram hook LSM: fix documentation for the task_setscheduler hook LSM: fix documentation for the socket_post_create hook LSM: fix documentation for the syslog hook LSM: fix documentation for sb_copy_data hook commit 0cbd0adc4429930567083d18cc8c0fbc5f635d96 Author: Mario Kleiner Date: Thu Apr 18 08:01:57 2019 +0200 drm: Fix timestamp docs for variable refresh properties. As discussed with Nicholas and Daniel Vetter (patchwork link to discussion below), the VRR timestamping behaviour produced utterly useless and bogus vblank/pageflip timestamps. We have found a way to fix this and provide sane behaviour. As of Linux 5.2, the amdgpu driver will be able to provide exactly the same vblank / pageflip timestamp semantic in variable refresh rate mode as in standard fixed refresh rate mode. This is achieved by deferring core vblank handling (drm_crtc_handle_vblank()) until the end of front porch, and also defer the sending of pageflip completion events until end of front porch, when we can safely compute correct pageflip/vblank timestamps. The same approach will be possible for other VRR capable kms drivers, so we can actually have sane and useful timestamps in VRR mode. This patch removes the section of the docs that describes the broken timestamp behaviour present in Linux 5.0/5.1. Fixes: ab7a664f7a2d ("drm: Document variable refresh properties") Link: https://patchwork.freedesktop.org/patch/285333/ Acked-by: Daniel Vetter Reviewed-by: Nicholas Kazlauskas Signed-off-by: Mario Kleiner Signed-off-by: Alex Deucher Link: https://patchwork.freedesktop.org/patch/msgid/20190418060157.18968-1-mario.kleiner.de@gmail.com Cc: stable@vger.kernel.org commit 67476656febd7ec5f1fe1aeec3c441fcf53b1e45 Author: Aneesh Kumar K.V Date: Mon Apr 1 10:44:21 2019 +0530 drivers/dax: Allow to include DEV_DAX_PMEM as builtin This move the dependency to DEV_DAX_PMEM_COMPAT such that only if DEV_DAX_PMEM is built as module we can allow the compat support. This allows to test the new code easily in a emulation setup where we often build things without module support. Cc: Fixes: 730926c3b099 ("device-dax: Add /sys/class/dax backwards compatibility") Signed-off-by: Aneesh Kumar K.V Signed-off-by: Dan Williams commit 9bff9dfc513bd5de72cb59f4bffb72cf0a5aa526 Merge: 61be53f9ef37 2e5f081003f0 Author: Linus Torvalds Date: Tue May 7 07:44:33 2019 -0700 Merge tag 'spi-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi Pull spi updates from Mark Brown: "One small feature was added this release but the bulk of the diffstat and the changelog comes from the fact that several older drivers got some fairly hefty reworks and a couple of new drivers were added: - Support for detailed control of timing around chip selects from Sowjanya Komatineni. - A big set of fixes and imrovements for the Tegra114 driver from Sowjanya Komatineni. - A big simplification of the GPIO driver from Andrey Smirnov. - DMA support and fixes for the Freescale LPSPI driver from Clark Wang. - Fixes and optimizations for the bcm2835aux from Martin Sparl. - New drivers for Mediatek MT7621 (graduated from staging) and Zynq QSPI" [ This is a so-called "evil merge" that additionally removes a warning due to an unused variable 'i' introduced by commit 1dfbf334f123 ("spi: ep93xx: Convert to use CS GPIO descriptors") - Linus ] * tag 'spi-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (127 commits) spi: rspi: Fix handling of QSPI code when transmit and receive spi: atmel-quadspi: fix crash while suspending spi: stm32: return the get_irq error spi: tegra114: fix PIO transfer spi: pxa2xx: fix SCR (divisor) calculation spi: Clear SPI_CS_HIGH flag from bad_bits for GPIO chip-select spi: ep93xx: Convert to use CS GPIO descriptors spi: AD ASoC: declare missing of table spi: spi-mem: zynq-qspi: Fix build error on architectures missing readsl/writesl spi: stm32-qspi: manage the get_irq error case spi/spi-bcm2835: Split transfers that exceed DLEN spi: expand mode support dt-bindings: spi: spi-mt65xx: add support for MT8516 spi: pxa2xx: Add support for Intel Comet Lake spi/trace: Cap buffer contents at 64 bytes spi: Release spi_res after finalizing message spi: Remove warning in spi_split_transfers_maxsize() spi: Remove one needless transfer speed fall back case spi: sh-msiof: Document r8a77470 bindings spi: pxa2xx: use a module softdep for dw_dmac ... commit 7889f44dd9cee15aff1c3f7daf81ca4dfed48fc7 Author: Shenghui Wang Date: Tue May 7 16:03:19 2019 +0800 io_uring: use cpu_online() to check p->sq_thread_cpu instead of cpu_possible() This issue is found by running liburing/test/io_uring_setup test. When test run, the testcase "attempt to bind to invalid cpu" would not pass with messages like: io_uring_setup(1, 0xbfc2f7c8), \ flags: IORING_SETUP_SQPOLL|IORING_SETUP_SQ_AFF, \ resv: 0x00000000 0x00000000 0x00000000 0x00000000 0x00000000, \ sq_thread_cpu: 2 expected -1, got 3 FAIL On my system, there is: CPU(s) possible : 0-3 CPU(s) online : 0-1 CPU(s) offline : 2-3 CPU(s) present : 0-1 The sq_thread_cpu 2 is offline on my system, so the bind should fail. But cpu_possible() will pass the check. We shouldn't be able to bind to an offline cpu. Use cpu_online() to do the check. After the change, the testcase run as expected: EINVAL will be returned for cpu offlined. Reviewed-by: Jeff Moyer Signed-off-by: Shenghui Wang Signed-off-by: Jens Axboe commit b8753433fc611e23e31300e1d099001a08955c88 Author: Christoph Hellwig Date: Tue May 7 08:53:35 2019 +0200 block: fix mismerge in bvec_advance When Jens merged my commit to only allow contiguous page structs in a bio_vec with Ming's 5.1 fix to ensue the bvec length didn't overflow we failed to keep the removal of the expensive nth_page calls. This commits adds them back as intended. Fixes: 5c61ee2cd586 ("Merge tag 'v5.1-rc6' into for-5.2/block") Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit 950a578c6128c2886e295b9c7ecb0b6b22fcc92b Author: Roberto Bergantinos Corpas Date: Thu Apr 25 15:36:51 2019 +0200 NFS: make nfs_match_client killable Actually we don't do anything with return value from nfs_wait_client_init_complete in nfs_match_client, as a consequence if we get a fatal signal and client is not fully initialised, we'll loop to "again" label This has been proven to cause soft lockups on some scenarios (no-carrier but configured network interfaces) Signed-off-by: Roberto Bergantinos Corpas Reviewed-by: Benjamin Coddington Signed-off-by: Anna Schumaker commit 0fbee1df2078fa1f61e2da14f51ceb357c79ae69 Author: Linus Walleij Date: Sat Apr 20 13:03:34 2019 +0200 gpio: Update documentation Strictify the language a bit, move things around, make proper headings, mention pull-up and pull-down, expand unreadable acronyms etc. Signed-off-by: Linus Walleij commit 61be53f9ef37de2677cecb8f87b207e6f061e185 Merge: 962d5ecca101 e2a23affe6a6 Author: Linus Torvalds Date: Tue May 7 07:26:18 2019 -0700 Merge tag 'regulator-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator Pull regulator updates from Mark Brown: "In terms of big picture changes this has been an extremely quiet release however there's a lot of changes and a fairly big diffstat thanks to a bunch of small fixes, mainly coming from Axel Lin. Thanks to his work this release removes code overall even though we've added a new (albiet fairly small) driver. Notable things: - A fix for a long standing issue with locking on error interrupts from Steve Twiss. - A new driver for ST Microelectonics STM32 PWR" * tag 'regulator-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (134 commits) regulator: core: simplify return value on suported_voltage regulator: da9xxx: Switch to SPDX identifier regulator: stm32-pwr: Remove unneeded .min_uV and .list_volage regulator: stm32-pwr: Remove unneeded *desc from struct stm32_pwr_reg regulator: ab3100: Set fixed_uV instead of min_uV for fixed regulators regulator: ab3100: Constify regulator_ops and ab3100_regulator_desc regulator: pv880x0: Switch to SPDX identifier regulator: hi6xxx: Switch to SPDX identifier regulator: vexpress: Switch to SPDX identifier regulator: vexpress: Get rid of struct vexpress_regulator regulator: sky81452: Switch to SPDX identifier regulator: sky81452: Constify sky81452_reg_ops regulator: sy8106a: Get rid of struct sy8106a regulator: core: do not report EPROBE_DEFER as error but as debug regulator: mt63xx: Switch to SPDX identifier regulator: fan53555: Switch to SPDX identifier regulator: fan53555: Clean up unneeded fields from struct fan53555_device_info regulator: ltc3589: Switch to SPDX identifier regulator: ltc3589: Get rid of struct ltc3589_regulator regulator: ltc3589: Convert to use simplified DT parsing ... commit 962d5ecca101e65175a8cdb1b91da8e1b8434d96 Merge: 71ae5fc87c34 615c4d9a50e2 Author: Linus Torvalds Date: Tue May 7 07:24:07 2019 -0700 Merge tag 'regmap-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap Pull regmap updates from Mark Brown: "A larger than usual set of changes, though mainly small: - An optimization to the debugfs code to greatly improve performance when dumping extremely sparse register maps from Lucas Tanure. - Stricter enforcement of writability checks from Han Nandor. - A fix for default interrupt mode configuration from Srinivas Kandagatla. - SPDX header conversion from Greg Kroah-Hartman" * tag 'regmap-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap: regmap: add proper SPDX identifiers on files that did not have them. regmap: verify if register is writeable before writing operations regmap: regmap-irq: fix getting type default values regmap: debugfs: Jump to the next readable register regmap: debugfs: Replace code by already existing function commit 1b8df7aa78748ddafc6f3b16a6328a3c500087b3 Author: Lucas Stach Date: Thu Apr 4 18:45:17 2019 +0200 PCI: imx6: Allow asynchronous probing Establishing a PCIe link can take a while; allow asynchronous probing so that link establishment can happen in the background while other devices are being probed. Signed-off-by: Lucas Stach Signed-off-by: Lorenzo Pieralisi Signed-off-by: Bjorn Helgaas Reviewed-by: Fabio Estevam commit fe23274f72f4e3be93134aac0ae1e1fd522f438a Author: Jisheng Zhang Date: Fri Mar 29 11:59:26 2019 +0000 PCI: dwc: Save root bus for driver remove hooks Currently DWC host does not support the remove callback, but nothing prevents us from supporting it. Save the root bus for clean up work in driver remove code paths to allow DWC host drivers to implement their remove hook as, eg: static int foo_pcie_remove(struct platform_device *pdev) { ... pci_stop_root_bus(pp->root_bus); pci_remove_root_bus(pp->root_bus); dw_pcie_free_msi(pp); ... } Signed-off-by: Jisheng Zhang Signed-off-by: Lorenzo Pieralisi Signed-off-by: Bjorn Helgaas Acked-by: Gustavo Pimentel commit e6fdd3bf5aecd8615f31a5128775b9abcf3e0d86 Author: Jisheng Zhang Date: Fri Mar 29 11:58:53 2019 +0000 PCI: dwc: Use devm_pci_alloc_host_bridge() to simplify code Use devm_pci_alloc_host_bridge() to simplify the error code path. This also fixes a leak in the dw_pcie_host_init() error path. Signed-off-by: Jisheng Zhang Signed-off-by: Lorenzo Pieralisi Signed-off-by: Bjorn Helgaas Acked-by: Gustavo Pimentel CC: stable@vger.kernel.org # v4.13+ commit 6df24c3e81b9ba9c5e8d815e593826c169e3f366 Merge: ff54bbd1beb2 980d43f24d59 44c0c23725a1 Author: Zhang Rui Date: Tue May 7 21:54:11 2019 +0800 Merge branches 'thermal-core', 'thermal-built-it' and 'thermal-intel' into next commit 9e2b5de5604a6ff2626c51e77014d92c9299722c Author: Jisheng Zhang Date: Fri Mar 29 11:57:54 2019 +0000 PCI: dwc: Free MSI in dw_pcie_host_init() error path If we ever did MSI-related initializations, we need to call dw_pcie_free_msi() in the error code path. Remove the IS_ENABLED(CONFIG_PCI_MSI) check for MSI init because pci_msi_enabled() already has a stub for !CONFIG_PCI_MSI. Signed-off-by: Jisheng Zhang Signed-off-by: Lorenzo Pieralisi Signed-off-by: Bjorn Helgaas Acked-by: Gustavo Pimentel commit 44c0c23725a16c8803b8809b87651405e8741e4d Author: Srinivas Pandruvada Date: Mon Apr 29 20:42:13 2019 -0700 drivers: thermal: processor_thermal: Downgrade error message Downgrade "Unsupported event" message from dev_err to dev_dbg. Otherwise it floods with this message one some platforms. Signed-off-by: Srinivas Pandruvada Signed-off-by: Zhang Rui commit dc69a3d567941784c3d00e1d0834582b42b0b3e7 Author: Jisheng Zhang Date: Fri Mar 29 11:57:17 2019 +0000 PCI: dwc: Free MSI IRQ page in dw_pcie_free_msi() To avoid a memory leak, free the page allocated for MSI IRQ in dw_pcie_free_msi(). Signed-off-by: Jisheng Zhang Signed-off-by: Lorenzo Pieralisi Signed-off-by: Bjorn Helgaas Acked-by: Gustavo Pimentel commit 3ebc269c197ee6a9788aeb76ebcc9132814a75e5 Author: Jisheng Zhang Date: Fri Mar 29 11:56:25 2019 +0000 PCI: dwc: Fix dw_pcie_free_msi() if msi_irq is invalid Check msi_irq variable before calling irq_set_chained_handler() and irq_set_handler_data(), lest we call those functions for an invalid MSI IRQ. Signed-off-by: Jisheng Zhang Signed-off-by: Lorenzo Pieralisi Signed-off-by: Bjorn Helgaas Acked-by: Gustavo Pimentel commit 322f03436692481993d389f539c016d20bb0fa1d Author: Marc Gonzalez Date: Mon Mar 25 16:42:55 2019 +0100 PCI: qcom: Use default config space read function Move the device class fudge to a proper fixup function, and remove qcom_pcie_rd_own_conf() which has become useless. dw_pcie_setup_rc() already did the right thing, but it's broken on older qcom chips, such as 8064. Signed-off-by: Marc Gonzalez Signed-off-by: Lorenzo Pieralisi Signed-off-by: Bjorn Helgaas Acked-by: Stanimir Varbanov commit 898490c010b5d2e499e03b7e815fc214209ac583 Author: Alexey Gladkov Date: Mon Apr 29 18:11:14 2019 +0200 moduleparam: Save information about built-in modules in separate file Problem: When a kernel module is compiled as a separate module, some important information about the kernel module is available via .modinfo section of the module. In contrast, when the kernel module is compiled into the kernel, that information is not available. Information about built-in modules is necessary in the following cases: 1. When it is necessary to find out what additional parameters can be passed to the kernel at boot time. 2. When you need to know which module names and their aliases are in the kernel. This is very useful for creating an initrd image. Proposal: The proposed patch does not remove .modinfo section with module information from the vmlinux at the build time and saves it into a separate file after kernel linking. So, the kernel does not increase in size and no additional information remains in it. Information is stored in the same format as in the separate modules (null-terminated string array). Because the .modinfo section is already exported with a separate modules, we are not creating a new API. It can be easily read in the userspace: $ tr '\0' '\n' < modules.builtin.modinfo ext4.softdep=pre: crc32c ext4.license=GPL ext4.description=Fourth Extended Filesystem ext4.author=Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others ext4.alias=fs-ext4 ext4.alias=ext3 ext4.alias=fs-ext3 ext4.alias=ext2 ext4.alias=fs-ext2 md_mod.alias=block-major-9-* md_mod.alias=md md_mod.description=MD RAID framework md_mod.license=GPL md_mod.parmtype=create_on_open:bool md_mod.parmtype=start_dirty_degraded:int ... Co-Developed-by: Gleb Fotengauer-Malinovskiy Signed-off-by: Gleb Fotengauer-Malinovskiy Signed-off-by: Alexey Gladkov Acked-by: Jessica Yu Signed-off-by: Masahiro Yamada commit 4c11edfcf70bea4cb0a3f4992ac6a4852e8bdc31 Author: Masahiro Yamada Date: Tue May 7 02:28:17 2019 +0900 Remove MODULE_ALIAS() calls that take undefined macro These files do not define (USBHS_)DRIVER_NAME. Yet, they can be successfully compiled because they are never built as a module by anyone, i.e, the MODULE_ALIAS() calls are always no-op. A problem showed up when a patch "moduleparam: Save information about built-in modules in separate file" was applied. With this new feature, MODULE_*() will be populated even if the callers are built-in. To avoid the build errors, the lines referencing to the undefined macro must be removed. The complete fix is to remove all MODULE_* and #include like many "make ... explicitly non-modular" commits did. For now, I am touching only the offending lines. Reported-by: Stephen Rothwell Signed-off-by: Masahiro Yamada Acked-by: Daniel Lezcano Acked-by: Tony Lindgren commit 1e35663e41360adf564a91811b29cc7e56ee9c39 Author: Masahiro Yamada Date: Tue Apr 30 00:17:53 2019 +0900 .gitignore: add leading and trailing slashes to generated directories Clarify these directory paths are relative to the top of the source tree. Signed-off-by: Masahiro Yamada commit 8db16d19111b33bda95f9f0ef02d814d8a49b023 Author: Martin Schwidefsky Date: Tue May 7 13:56:45 2019 +0200 s390/boot: fix compiler error due to missing awk strtonum The strtonum awk function is a GNU extension and is not available with all versions of awk. The link of bzImage fails with this error message: >> awk: line 2: function or never defined >> awk: line 2: function strtonum never defined objcopy: --pad-to: bad number: arch/s390/boot/compressed/vmlinux Drop the awk script and the --pad-to objcopy parameter it generated and use a FILL pattern with an appropriate alignment in the linker script for the arch/s390/boot/compressed/vmlinux file. Fixes: f6780686525c ("s390/boot: pad bzImage to 4K") Reported-by: kbuild test robot Suggested-by: Vasily Gorbik Signed-off-by: Martin Schwidefsky commit 43c6afee48d4d866d5eb984d3a5dbbc7d9b4e7bf Author: Christian Brauner Date: Sun Apr 7 21:18:11 2019 +0200 samples: show race-free pidfd metadata access This is a sample program showing userspace how to get race-free access to process metadata from a pidfd. It is rather easy to do and userspace can actually simply reuse code that currently parses a process's status file in procfs. The program can easily be extended into a generic helper suitable for inclusion in a libc to make it even easier for userspace to gain metadata access. Since this came up in a discussion because this API is going to be used in various service managers: A lot of programs will have a whitelist seccomp filter that returns for all new syscalls. This means that programs might get confused if CLONE_PIDFD works but the later pidfd_send_signal() syscall doesn't. Hence, here's a ahead of time check that pidfd_send_signal() is supported: bool pidfd_send_signal_supported() { int procfd = open("/proc/self", O_DIRECTORY | O_RDONLY | O_CLOEXEC); if (procfd < 0) return false; /* * A process is always allowed to signal itself so * pidfd_send_signal() should never fail this test. If it does * it must mean it is not available, blocked by an LSM, seccomp, * or other. */ return pidfd_send_signal(procfd, 0, NULL, 0) == 0; } Signed-off-by: Christian Brauner Co-developed-by: Jann Horn Signed-off-by: Jann Horn Reviewed-by: Oleg Nesterov Cc: Arnd Bergmann Cc: "Eric W. Biederman" Cc: Kees Cook Cc: Thomas Gleixner Cc: David Howells Cc: "Michael Kerrisk (man-pages)" Cc: Andy Lutomirsky Cc: Andrew Morton Cc: Aleksa Sarai Cc: Linus Torvalds Cc: Al Viro commit 2151ad1b067275730de1b38c7257478cae47d29e Author: Christian Brauner Date: Wed Apr 17 22:50:25 2019 +0200 signal: support CLONE_PIDFD with pidfd_send_signal Let pidfd_send_signal() use pidfds retrieved via CLONE_PIDFD. With this patch pidfd_send_signal() becomes independent of procfs. This fullfils the request made when we merged the pidfd_send_signal() patchset. The pidfd_send_signal() syscall is now always available allowing for it to be used by users without procfs mounted or even users without procfs support compiled into the kernel. Signed-off-by: Christian Brauner Co-developed-by: Jann Horn Signed-off-by: Jann Horn Acked-by: Oleg Nesterov Cc: Arnd Bergmann Cc: "Eric W. Biederman" Cc: Kees Cook Cc: Thomas Gleixner Cc: David Howells Cc: "Michael Kerrisk (man-pages)" Cc: Andy Lutomirsky Cc: Andrew Morton Cc: Aleksa Sarai Cc: Linus Torvalds Cc: Al Viro commit b3e5838252665ee4cfa76b82bdf1198dca81e5be Author: Christian Brauner Date: Wed Mar 27 13:04:15 2019 +0100 clone: add CLONE_PIDFD This patchset makes it possible to retrieve pid file descriptors at process creation time by introducing the new flag CLONE_PIDFD to the clone() system call. Linus originally suggested to implement this as a new flag to clone() instead of making it a separate system call. As spotted by Linus, there is exactly one bit for clone() left. CLONE_PIDFD creates file descriptors based on the anonymous inode implementation in the kernel that will also be used to implement the new mount api. They serve as a simple opaque handle on pids. Logically, this makes it possible to interpret a pidfd differently, narrowing or widening the scope of various operations (e.g. signal sending). Thus, a pidfd cannot just refer to a tgid, but also a tid, or in theory - given appropriate flag arguments in relevant syscalls - a process group or session. A pidfd does not represent a privilege. This does not imply it cannot ever be that way but for now this is not the case. A pidfd comes with additional information in fdinfo if the kernel supports procfs. The fdinfo file contains the pid of the process in the callers pid namespace in the same format as the procfs status file, i.e. "Pid:\t%d". As suggested by Oleg, with CLONE_PIDFD the pidfd is returned in the parent_tidptr argument of clone. This has the advantage that we can give back the associated pid and the pidfd at the same time. To remove worries about missing metadata access this patchset comes with a sample program that illustrates how a combination of CLONE_PIDFD, and pidfd_send_signal() can be used to gain race-free access to process metadata through /proc/. The sample program can easily be translated into a helper that would be suitable for inclusion in libc so that users don't have to worry about writing it themselves. Suggested-by: Linus Torvalds Signed-off-by: Christian Brauner Co-developed-by: Jann Horn Signed-off-by: Jann Horn Reviewed-by: Oleg Nesterov Cc: Arnd Bergmann Cc: "Eric W. Biederman" Cc: Kees Cook Cc: Thomas Gleixner Cc: David Howells Cc: "Michael Kerrisk (man-pages)" Cc: Andy Lutomirsky Cc: Andrew Morton Cc: Aleksa Sarai Cc: Linus Torvalds Cc: Al Viro commit 23372cce8fe7ee98a6458fd3d035a55b87f0c6fe Merge: 2564fe708b58 75fdb811d93c Author: Joonas Lahtinen Date: Tue May 7 15:29:14 2019 +0300 Merge tag 'gvt-next-fixes-2019-05-07' of https://github.com/intel/gvt-linux into drm-intel-next-fixes gvt-next-fixes-2019-05-07 - Revert MCHBAR save range change for BXT regression (Yakui) - Align display dmabuf size for bytes instead of error-prone pages (Xiong) - Fix one context MMIO save/restore after RCS0 name change (Colin) - Misc klocwork warning/errors fixes (Aleksei) Signed-off-by: Joonas Lahtinen From: Zhenyu Wang Link: https://patchwork.freedesktop.org/patch/msgid/20190507090558.GE12913@zhen-hp.sh.intel.com commit 15e9122d9b5c745024f2d9d5653caed1f37c185f Author: james qian wang (Arm Technology China) Date: Wed Apr 24 06:51:45 2019 +0100 drm/komeda: Mark the local functions as static Fix the kbuild test rebot reported warnings: - symbol was not declared. Should it be static? - missing braces around initializer Depends on: - https://patchwork.freedesktop.org/series/58976/ Reported-by: kbuild test robot Signed-off-by: james qian wang (Arm Technology China) Signed-off-by: Liviu Dudau commit 8c919745ee1c4d8d811a1e015d637d17aa78fe26 Author: james qian wang (Arm Technology China) Date: Wed Apr 24 06:48:11 2019 +0100 drm/komeda: Fixed warning: Function parameter or member not described Fixed the warnings: Function parameter or member 'xxx' not described when make htmldocs This patch depends on: - https://patchwork.freedesktop.org/series/54448/ - https://patchwork.freedesktop.org/series/54449/ - https://patchwork.freedesktop.org/series/54450/ v2: Rebase and add reporter Reported-by: kbuild test robot Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit 8c134d13a07884048756dc5de7cd4526b440483b Author: james qian wang (Arm Technology China) Date: Tue Jan 22 11:12:02 2019 +0000 drm/komeda: Expose bus_width to Komeda-CORE CHIP set bus_width according to the HW configuration, and CORE will use it as buffer alignment. v2: Rebase Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit 55223394d56bab42ebac71ba52e0fd8bfdc6fc07 Author: james qian wang (Arm Technology China) Date: Tue Jan 22 11:11:53 2019 +0000 drm/komeda: Add sysfs attribute: core_id and config_id Add two sysfs node: core_id, config_id, user can read them to fetch the HW product information. Also, use memset to initialize config_id, rather than quirky C syntax. Courtesy of Nathan Chancellor . Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Nathan Chancellor [Merged Nathan's patch that uses memset to initialize config_id into original patch as the fixes tag changed due to rebase, reworded the commit to reference the merged patch] Signed-off-by: Liviu Dudau commit 32ee500f295a6652356362837032fe6993a701c6 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 14:18:46 2019 +0100 arch: nds32: Kconfig: pedantic formatting Formatting of Kconfig files doesn't look so pretty, so let the Great White Handkerchief come around and clean it up. Signed-off-by: Enrico Weigelt, metux IT consult Acked-by: Greentime Hu Signed-off-by: Greentime Hu commit 0fcef555abdc155dbd2cba24ac1a0dd508e8dc70 Author: Yang Wei Date: Mon Mar 4 22:33:28 2019 +0800 nds32: fix semicolon code style issue Delete superfluous semicolons. Signed-off-by: Yang Wei Acked-by: Greentime Hu Signed-off-by: Greentime Hu commit 95b6204dbf703f2b6da27cec4c8280f43da8977d Author: Nick Desaulniers Date: Tue Apr 23 14:19:31 2019 -0700 nds32: vdso: drop unnecessary cc-ldoption Towards the goal of removing cc-ldoption, it seems that --hash-style= was added to binutils 2.17.50.0.2 in 2006. The minimal required version of binutils for the kernel according to Documentation/process/changes.rst is 2.20. Link: https://gcc.gnu.org/ml/gcc/2007-01/msg01141.html Cc: clang-built-linux@googlegroups.com Suggested-by: Masahiro Yamada Signed-off-by: Nick Desaulniers Acked-by: Greentime Hu Signed-off-by: Greentime Hu commit c58867615d57859bf5a5aedb13d4646b98d930fe Author: Masahiro Yamada Date: Thu Apr 18 18:38:56 2019 +0900 nds32: remove unused generic-y += cmpxchg-local.h NDS32 is the only architecture that creates , which is not included by anyone. Signed-off-by: Masahiro Yamada Acked-by: Greentime Hu Signed-off-by: Greentime Hu commit 7f9ea6b799ef0f3adc7e860937dec633545b5f6f Author: Nishad Kamdar Date: Tue Apr 16 20:54:35 2019 +0530 nds32: Use the correct style for SPDX License Identifier This patch corrects the SPDX License Identifier style in the nds32 Hardware Architecture related files. Suggested-by: Joe Perches Signed-off-by: Nishad Kamdar Acked-by: Greentime Hu Signed-off-by: Greentime Hu commit 1cfdc6f92f25cd7ad1038835209ae4da39602b53 Author: Christoph Hellwig Date: Tue Apr 9 12:26:54 2019 +0200 nds32: remove __virt_to_bus and __bus_to_virt These macros are not used anywhere. Signed-off-by: Christoph Hellwig Acked-by: Greentime Hu Signed-off-by: Greentime Hu commit 0ff8e00f2c1e939a44410b1b33f62e1932384531 Author: Masahiro Yamada Date: Wed Apr 3 17:37:13 2019 +0900 nds32: vdso: fix and clean-up Makefile - $(call if_changed,...) must have FORCE as a prerequisite - vdso.lds is a generated file, so it should be prefixed with $(obj)/ instead of $(src)/. - cmd_vdsosym is a one-liner rule, so the assignment with '=' is simpler. Signed-off-by: Masahiro Yamada Acked-by: Greentime Hu Signed-off-by: Greentime Hu commit 5b633e517b8c02d0391f3f87e1af35cc38168b40 Author: Masahiro Yamada Date: Wed Apr 3 17:35:45 2019 +0900 nds32: add vmlinux.lds and vdso.so to .gitignore These are build artifacts, which should be ignored by git. Signed-off-by: Masahiro Yamada Acked-by: Greentime Hu Signed-off-by: Greentime Hu commit aa0be0e022ff1ec333c6fe626879e03a037c7230 Author: Valentin Schneider Date: Mon Mar 11 22:47:45 2019 +0000 nds32: ex-exit: Remove unneeded need_resched() loop Since the enabling and disabling of IRQs within preempt_schedule_irq() is contained in a need_resched() loop, we don't need the outer arch code loop. Signed-off-by: Valentin Schneider Cc: Greentime Hu Cc: Vincent Chen Acked-by: Greentime Hu Signed-off-by: Greentime Hu commit 8ac7857406cd9dd14f5da42044f2d4b7cf5b6ae6 Author: Will Deacon Date: Fri Mar 1 14:03:35 2019 +0000 nds32/io: Remove useless definition of mmiowb() mmiowb() only makes sense for SMP platforms, so we can remove it entirely for nds32. Signed-off-by: Will Deacon Acked-by: Greentime Hu Signed-off-by: Greentime Hu commit e1bf776363f36de1689da4248c95780935b28ec3 Author: Julien Grall Date: Fri Feb 8 17:04:23 2019 +0000 nds32: Removed unused thread flag TIF_USEDFPU The bit TIF_USEDFPU is not used in the nds32 code. Signed-off-by: Julien Grall Cc: Greentime Hu Cc: Vincent Chen Acked-by: Greentime Hu Signed-off-by: Greentime Hu commit e0e31695b53b649dc2784c4dd517bcdd09bce189 Author: Jan Kundrát Date: Thu Mar 7 14:16:51 2019 +0100 pinctrl: mcp23s08: Do not complain about unsupported params It is expected that some of these operations won't work on each and every HW. Previously, even a simple `cat /sys/kernel/debug/pinctrl/spi1.1/pinconf-pins` caused excessive dmesg output. Signed-off-by: Jan Kundrát Cc: Phil Reid Cc: Sebastian Reichel Cc: Linus Walleij Signed-off-by: Linus Walleij commit 2564fe708b580c1ef12b2b527ab6e8afe11ad444 Author: Chris Wilson Date: Sat May 4 08:07:07 2019 +0100 drm/i915: Disable semaphore busywaits on saturated systems Asking the GPU to busywait on a memory address, perhaps not unexpectedly in hindsight for a shared system, leads to bus contention that affects CPU programs trying to concurrently access memory. This can manifest as a drop in transcode throughput on highly over-saturated workloads. The only clue offered by perf, is that the bus-cycles (perf stat -e bus-cycles) jumped by 50% when enabling semaphores. This corresponds with extra CPU active cycles being attributed to intel_idle's mwait. This patch introduces a heuristic to try and detect when more than one client is submitting to the GPU pushing it into an oversaturated state. As we already keep track of when the semaphores are signaled, we can inspect their state on submitting the busywait batch and if we planned to use a semaphore but were too late, conclude that the GPU is overloaded and not try to use semaphores in future requests. In practice, this means we optimistically try to use semaphores for the first frame of a transcode job split over multiple engines, and fail if there are multiple clients active and continue not to use semaphores for the subsequent frames in the sequence. Periodically, we try to optimistically switch semaphores back on whenever the client waits to catch up with the transcode results. With 1 client, on Broxton J3455, with the relative fps normalized by %cpu: x no semaphores + drm-tip * patched +------------------------------------------------------------------------+ | * | | *+ | | **+ | | **+ x | | x * +**+ x | | x x * * +***x xx | | x x * * *+***x *x | | x x* + * * *****x *x x | | + x xx+x* + *** * ********* x * | | + x xx+x* * *** +** ********* xx * | | * + ++++* + x*x****+*+* ***+*************+x* * | |*+ +** *+ + +* + *++****** *xxx**********x***+*****************+*++ *| | |__________A_____M_____| | | |_______________A____M_________| | | |____________A___M________| | +------------------------------------------------------------------------+ N Min Max Median Avg Stddev x 120 2.60475 3.50941 3.31123 3.2143953 0.21117399 + 120 2.3826 3.57077 3.25101 3.1414161 0.28146407 Difference at 95.0% confidence -0.0729792 +/- 0.0629585 -2.27039% +/- 1.95864% (Student's t, pooled s = 0.248814) * 120 2.35536 3.66713 3.2849 3.2059917 0.24618565 No difference proven at 95.0% confidence With 10 clients over-saturating the pipeline: x no semaphores + drm-tip * patched +------------------------------------------------------------------------+ | ++ ** | | ++ ** | | ++ ** | | ++ ** | | ++ xx *** | | ++ xx *** | | ++ xxx*** | | ++ xxx*** | | +++ xxx*** | | +++ xx**** | | +++ xx**** | | +++ xx**** | | +++ xx**** | | ++++ xx**** | | +++++ xx**** | | +++++ x x****** | | ++++++ xxx******* | | ++++++ xxx******* | | ++++++ xxx******* | | ++++++ xx******** | | ++++++ xxxx******** | | ++++++ xxxx******** | | ++++++++ xxxxx********* | |+ + + + ++++++++ xxx*xx**********x* *| | |__A__| | | |__AM__| | | |__A_| | +------------------------------------------------------------------------+ N Min Max Median Avg Stddev x 120 2.47855 2.8972 2.72376 2.7193402 0.074604933 + 120 1.17367 1.77459 1.71977 1.6966782 0.085850697 Difference at 95.0% confidence -1.02266 +/- 0.0203502 -37.607% +/- 0.748352% (Student's t, pooled s = 0.0804246) * 120 2.57868 3.00821 2.80142 2.7923878 0.058646477 Difference at 95.0% confidence 0.0730476 +/- 0.0169791 2.68622% +/- 0.624383% (Student's t, pooled s = 0.0671018) Indicating that we've recovered the regression from enabling semaphores on this saturated setup, with a hint towards an overall improvement. Very similar, but of smaller magnitude, results are observed on both Skylake(gt2) and Kabylake(gt4). This may be due to the reduced impact of bus-cycles, where we see a 50% hit on Broxton, it is only 10% on the big core, in this particular test. One observation to make here is that for a greedy client trying to maximise its own throughput, using semaphores is the right choice. It is only the holistic system-wide view that semaphores of one client impacts another and reduces the overall throughput where we would choose to disable semaphores. The most noticeable negactive impact this has is on the no-op microbenchmarks, which are also very notable for having no cpu bus load. In particular, this increases the runtime and energy consumption of gem_exec_whisper. Fixes: e88619646971 ("drm/i915: Use HW semaphores for inter-engine synchronisation on gen8+") Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Cc: Dmitry Rogozhkin Cc: Dmitry Ermilov Cc: Joonas Lahtinen Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190504070707.30902-1-chris@chris-wilson.co.uk (cherry picked from commit ca6e56f654e7b241256ffba78cd2abb22aa3bc97) Signed-off-by: Joonas Lahtinen commit d3ba58bb895915f7f9105e0844441d2ca7d83340 Author: Kailang Yang Date: Mon May 6 15:09:42 2019 +0800 ALSA: hda/realtek - Support low power consumption for ALC295 Enter to close more power control widgets at suspend. Remove hp_pin check. Add the default pin 0x21 as headphone. Supported low power consumption, it must do depop procedure when headset jack was plugged or unplugged. So, alc225_init() and alc225_shutup() must run delay when headset jack was plugged or unplugged. If depop procedure not run with delay, it will have a chance to let power consumption raise high. [ A few compile fixes by tiwai ] Fixes: 8983eb602af5 ("ALSA: hda/realtek - Move to ACT_INIT state") Signed-off-by: Kailang Yang Signed-off-by: Takashi Iwai commit a98d9ae937d256ed679a935fc82d9deaa710d98e Author: Christoph Hellwig Date: Tue Apr 30 06:51:50 2019 -0400 arm64/iommu: handle non-remapped addresses in ->mmap and ->get_sgtable DMA allocations that can't sleep may return non-remapped addresses, but we do not properly handle them in the mmap and get_sgtable methods. Resolve non-vmalloc addresses using virt_to_page to handle this corner case. Cc: Acked-by: Catalin Marinas Reviewed-by: Robin Murphy Signed-off-by: Christoph Hellwig Signed-off-by: Will Deacon commit e766fde6511e2be83acbca1d603035e08de23f3b Author: Chris Wilson Date: Wed May 1 12:45:36 2019 +0100 drm/i915: Delay semaphore submission until the start of the signaler Currently we submit the semaphore busywait as soon as the signaler is submitted to HW. However, we may submit the signaler as the tail of a batch of requests, and even not as the first context in the HW list, i.e. the busywait may start spinning far in advance of the signaler even starting. If we wait until the request before the signaler is completed before submitting the busywait, we prevent the busywait from starting too early, if the signaler is not first in submission port. To handle the case where the signaler is at the start of the second (or later) submission port, we will need to delay the execution callback until we know the context is promoted to port0. A challenge for later. Fixes: e88619646971 ("drm/i915: Use HW semaphores for inter-engine synchronisation on gen8+") Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190501114541.10077-9-chris@chris-wilson.co.uk (cherry picked from commit 0d90ccb70211cbf55140e91bd39db684aa4c16e9) [Joonas: edited Fixes: tag into single line.] Signed-off-by: Joonas Lahtinen commit b5531563e8a0b8fcc5344a38d1fad9217e08e09b Merge: 37624b58542f 43d957b13346 1eb8e4e2b35b d53bff888f3b dca4d60f5f8c 97a18f548548 14bd9a607f90 Author: Joerg Roedel Date: Tue May 7 09:40:12 2019 +0200 Merge branches 'arm/tegra', 'arm/mediatek', 'arm/smmu', 'x86/vt-d', 'x86/amd' and 'core' into next commit 97a18f548548a6ee1b9be14c6fc72090b8839875 Author: Joerg Roedel Date: Tue May 7 09:39:32 2019 +0200 Revert "iommu/amd: Flush not present cache in iommu_map_page" This reverts commit 1a1079011da32db87e19fcb39e70d082f89da921. This commit caused a NULL-ptr deference bug and must be reverted for now. Signed-off-by: Joerg Roedel commit a9e9bcb45b1525ba7aea26ed9441e8632aeeda58 Author: Waiman Long Date: Sun Apr 28 17:25:38 2019 -0400 locking/rwsem: Prevent decrement of reader count before increment During my rwsem testing, it was found that after a down_read(), the reader count may occasionally become 0 or even negative. Consequently, a writer may steal the lock at that time and execute with the reader in parallel thus breaking the mutual exclusion guarantee of the write lock. In other words, both readers and writer can become rwsem owners simultaneously. The current reader wakeup code does it in one pass to clear waiter->task and put them into wake_q before fully incrementing the reader count. Once waiter->task is cleared, the corresponding reader may see it, finish the critical section and do unlock to decrement the count before the count is incremented. This is not a problem if there is only one reader to wake up as the count has been pre-incremented by 1. It is a problem if there are more than one readers to be woken up and writer can steal the lock. The wakeup was actually done in 2 passes before the following v4.9 commit: 70800c3c0cc5 ("locking/rwsem: Scan the wait_list for readers only once") To fix this problem, the wakeup is now done in two passes again. In the first pass, we collect the readers and count them. The reader count is then fully incremented. In the second pass, the waiter->task is then cleared and they are put into wake_q to be woken up later. Signed-off-by: Waiman Long Acked-by: Linus Torvalds Cc: Borislav Petkov Cc: Davidlohr Bueso Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tim Chen Cc: Will Deacon Cc: huang ying Fixes: 70800c3c0cc5 ("locking/rwsem: Scan the wait_list for readers only once") Link: http://lkml.kernel.org/r/20190428212557.13482-2-longman@redhat.com Signed-off-by: Ingo Molnar commit 71ae5fc87c34ecbdca293c2a5c563d6be2576558 Merge: 81ff5d2cba4f d917fb876f6e Author: Linus Torvalds Date: Mon May 6 20:29:45 2019 -0700 Merge tag 'linux-kselftest-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest Pull Kselftest updates from Shuah Khan: - fixes to seccomp test, and kselftest framework - cleanups to remove duplicate header defines - fixes to efivarfs "make clean" target - cgroup cleanup path - Moving the IMA kexec_load selftest to selftests/kexec work from Mimi Johar and Petr Vorel - A framework to kselftest for writing kernel test modules addition from Tobin C. Harding * tag 'linux-kselftest-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (29 commits) selftests: build and run gpio when output directory is the src dir selftests/ipc: Fix msgque compiler warnings selftests/efivarfs: clean up test files from test_create*() selftests: fix headers_install circular dependency selftests/kexec: update get_secureboot_mode selftests/kexec: make kexec_load test independent of IMA being enabled selftests/kexec: check kexec_load and kexec_file_load are enabled selftests/kexec: Add missing '=y' to config options selftests/kexec: kexec_file_load syscall test selftests/kexec: define "require_root_privileges" selftests/kexec: define common logging functions selftests/kexec: define a set of common functions selftests/kexec: cleanup the kexec selftest selftests/kexec: move the IMA kexec_load selftest to selftests/kexec selftests/harness: Add 30 second timeout per test selftests/seccomp: Handle namespace failures gracefully selftests: cgroup: fix cleanup path in test_memcg_subtree_control() selftests: efivarfs: remove the test_create_read file if it was exist rseq/selftests: Adapt number of threads to the number of detected cpus lib: Add test module for strscpy_pad ... commit 8d31a5c35ed179825a2145881ad7cd8f9907d94b Merge: 5f9b4992b722 619ae03e922b Author: James Morris Date: Mon May 6 20:24:51 2019 -0700 Merge branch 'smack-for-5.2-b' of https://github.com/cschaufler/next-smack into next-smack Smack: Fix kbuild reported build error commit f39356261c265a0689d7ee568132d516e8b6cecc Author: Rick Lindsley Date: Sun May 5 17:20:43 2019 -0700 powerpc/book3s/64: check for NULL pointer in pgd_alloc() When the memset code was added to pgd_alloc(), it failed to consider that kmem_cache_alloc() can return NULL. It's uncommon, but not impossible under heavy memory contention. Example oops: Unable to handle kernel paging request for data at address 0x00000000 Faulting instruction address: 0xc0000000000a4000 Oops: Kernel access of bad area, sig: 11 [#1] LE SMP NR_CPUS=2048 NUMA pSeries CPU: 70 PID: 48471 Comm: entrypoint.sh Kdump: loaded Not tainted 4.14.0-115.6.1.el7a.ppc64le #1 task: c000000334a00000 task.stack: c000000331c00000 NIP: c0000000000a4000 LR: c00000000012f43c CTR: 0000000000000020 REGS: c000000331c039c0 TRAP: 0300 Not tainted (4.14.0-115.6.1.el7a.ppc64le) MSR: 800000010280b033 CR: 44022840 XER: 20040000 CFAR: c000000000008874 DAR: 0000000000000000 DSISR: 42000000 SOFTE: 1 ... NIP [c0000000000a4000] memset+0x68/0x104 LR [c00000000012f43c] mm_init+0x27c/0x2f0 Call Trace: mm_init+0x260/0x2f0 (unreliable) copy_mm+0x11c/0x638 copy_process.isra.28.part.29+0x6fc/0x1080 _do_fork+0xdc/0x4c0 ppc_clone+0x8/0xc Instruction dump: 409e000c b0860000 38c60002 409d000c 90860000 38c60004 78a0d183 78a506a0 7c0903a6 41820034 60000000 60420000 f8860008 f8860010 f8860018 Fixes: fc5c2f4a55a2 ("powerpc/mm/hash64: Zero PGD pages on allocation") Cc: stable@vger.kernel.org # v4.16+ Signed-off-by: Rick Lindsley Signed-off-by: Michael Ellerman commit 81ff5d2cba4f86cd850b9ee4a530cd221ee45aa3 Merge: 7aefd944f038 e59f755ceb6d Author: Linus Torvalds Date: Mon May 6 20:15:06 2019 -0700 Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 Pull crypto update from Herbert Xu: "API: - Add support for AEAD in simd - Add fuzz testing to testmgr - Add panic_on_fail module parameter to testmgr - Use per-CPU struct instead multiple variables in scompress - Change verify API for akcipher Algorithms: - Convert x86 AEAD algorithms over to simd - Forbid 2-key 3DES in FIPS mode - Add EC-RDSA (GOST 34.10) algorithm Drivers: - Set output IV with ctr-aes in crypto4xx - Set output IV in rockchip - Fix potential length overflow with hashing in sun4i-ss - Fix computation error with ctr in vmx - Add SM4 protected keys support in ccree - Remove long-broken mxc-scc driver - Add rfc4106(gcm(aes)) cipher support in cavium/nitrox" * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (179 commits) crypto: ccree - use a proper le32 type for le32 val crypto: ccree - remove set but not used variable 'du_size' crypto: ccree - Make cc_sec_disable static crypto: ccree - fix spelling mistake "protedcted" -> "protected" crypto: caam/qi2 - generate hash keys in-place crypto: caam/qi2 - fix DMA mapping of stack memory crypto: caam/qi2 - fix zero-length buffer DMA mapping crypto: stm32/cryp - update to return iv_out crypto: stm32/cryp - remove request mutex protection crypto: stm32/cryp - add weak key check for DES crypto: atmel - remove set but not used variable 'alg_name' crypto: picoxcell - Use dev_get_drvdata() crypto: crypto4xx - get rid of redundant using_sd variable crypto: crypto4xx - use sync skcipher for fallback crypto: crypto4xx - fix cfb and ofb "overran dst buffer" issues crypto: crypto4xx - fix ctr-aes missing output IV crypto: ecrdsa - select ASN1 and OID_REGISTRY for EC-RDSA crypto: ux500 - use ccflags-y instead of CFLAGS_.o crypto: ccree - handle tee fips error during power management resume crypto: ccree - add function to handle cryptocell tee fips error ... commit 7aefd944f038c7469571adb37769cb6f3924ecfa Merge: ffa6f55eb618 39abe9d88b30 Author: Linus Torvalds Date: Mon May 6 19:56:51 2019 -0700 Merge tag 'hwmon-for-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging Pull hwmon updates from Guenter Roeck: - Add driver for Intersil ISL68137 PWM Controller - Add driver for Lochnagar 2 - Add driver for Infineon IR38064 Voltage Regulator - Add support for TMP75B to lm75 driver - Convert documentation to ReST format - Use request_muxed_region for Super-IO accesses in several drivers - Add 'samples' attribute to ABI, and start using it - Add support for custom sysfs attributes to pmbus drivers (used in ISL68137 driver) - Introduce HWMON_CHANNEL_INFO macro - Automated changes: - Use permission specific [SENSOR_][DEVICE_]ATTR variants - Fix build warnings due to unused of_device_id structures - Use HWMON_CHANNEL_INFO macro - Various minor improvements and fixes * tag 'hwmon-for-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (125 commits) hwmon: (lm75) Add support for TMP75B dt-bindings: hwmon: Add tmp75b to lm75.txt hwmon: (s3c) Use dev_get_drvdata() hwmon: (max6650) Drop call to thermal_cdev_update docs: hwmon: remove the extension from .rst files docs: hwmon: convert three docs to ReST format hwmon: (max6650) add thermal cooling device capability hwmon: (ina3221) Add voltage conversion time settings hwmon: (ina3221) Do not read-back to cache reg_config docs: hwmon: Add an index file and rename docs to *.rst docs: hwmon: convert remaining files to ReST format docs: hwmon: misc files: convert to ReST format docs: hwmon: pmbus files: convert to ReST format docs: hwmon: k8temp, w83793: convert to ReST format docs: hwmon: da9052, da9055: convert to ReST format docs: hwmon: wm831x, wm8350: convert to ReST format docs: hwmon: dme1737, vt1211: convert to ReST format docs: hwmon: ads1015: convert to ReST format docs: hwmon: asc7621: convert to ReST format docs: hwmon: ibmpowernv: convert to ReST format ... commit ffa6f55eb6188ee73339cab710fabf30d13110a7 Merge: 275b103a26e2 71a84402b93e Author: Linus Torvalds Date: Mon May 6 19:54:57 2019 -0700 Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull RAS updates from Borislav Petkov: - Support for varying MCA bank numbers per CPU: this is in preparation for future CPU enablement (Yazen Ghannam) - MCA banks read race fix (Tony Luck) - Facility to filter MCEs which should not be logged (Yazen Ghannam) - The usual round of cleanups and fixes * 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/MCE/AMD: Don't report L1 BTB MCA errors on some family 17h models x86/MCE: Add an MCE-record filtering function RAS/CEC: Increment cec_entered under the mutex lock x86/mce: Fix debugfs_simple_attr.cocci warnings x86/mce: Remove mce_report_event() x86/mce: Handle varying MCA bank counts x86/mce: Fix machine_check_poll() tests for error types MAINTAINERS: Fix file pattern for X86 MCE INFRASTRUCTURE x86/MCE: Group AMD function prototypes in commit 275b103a26e218b3d739e5ab15be6b40303a1428 Merge: 4dd2ab9a0f84 8de9930a4618 Author: Linus Torvalds Date: Mon May 6 19:53:11 2019 -0700 Merge tag 'edac_for_5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp Pull EDAC updates from Borislav Petkov: - amd64_edac: Family 0x17, models 0x30-.. enablement (Yazen Ghannam) - skx_*: Librarize it so that it can be shared between drivers (Qiuxu Zhuo) - altera: Stratix10 improvements (Thor Thayer) - The usual round of fixes, fixlets and cleanups * tag 'edac_for_5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp: Revert "EDAC/amd64: Support more than two controllers for chip select handling" arm64: dts: stratix10: Use new Stratix10 EDAC bindings Documentation: dt: edac: Add Stratix10 Peripheral bindings Documentation: dt: edac: Fix Stratix10 IRQ bindings EDAC/altera, firmware/intel: Add Stratix10 ECC DBE SMC call EDAC/altera: Initialize peripheral FIFOs in probe() EDAC/altera: Do less intrusive error injection EDAC/amd64: Adjust printed chip select sizes when interleaved EDAC/amd64: Support more than two controllers for chip select handling EDAC/amd64: Recognize x16 symbol size EDAC/amd64: Set maximum channel layer size depending on family EDAC/amd64: Support more than two Unified Memory Controllers EDAC/amd64: Use a macro for iterating over Unified Memory Controllers EDAC/amd64: Add Family 17h Model 30h PCI IDs MAINTAINERS: Add entry for EDAC-I10NM MAINTAINERS: Update entry for EDAC-SKYLAKE EDAC, altera: Fix S10 Double Bit Error Notification EDAC, skx, i10nm: Make skx_common.c a pure library commit 4dd2ab9a0f84a446c65ff33c95339f1cd0e21a4b Merge: 8f5e823f9131 23583f779502 Author: Linus Torvalds Date: Mon May 6 19:45:37 2019 -0700 Merge tag 'devprop-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull device properties framework updates from Rafael Wysocki: "These fix the handling of data nodes in the ACPI properties support code, add a new helper for endpoint lookup in property graphs and restore a comment inadvertently removed by one of previous changes. Specifics: - Fix the handling of data nodes in the ACPI properties support code for devices with child devices and hierarchical _DSD properties (Pierre-Louis Bossart). - Add fwnode_graph_get_endpoint_by_id() helper for endpoint lookup in device property graphs (Sakari Ailus). - Restore the _DSD data subnodes GUID comment inadvertently removed by one of previous changes (Shunyong Yang)" * tag 'devprop-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: ACPI / property: fix handling of data_nodes in acpi_get_next_subnode() device property: Add fwnode_graph_get_endpoint_by_id() ACPI: property: restore _DSD data subnodes GUID comment commit 8f5e823f9131a430b12f73e9436d7486e20c16f5 Merge: 59df1c2bdecb e07095c9bbcd Author: Linus Torvalds Date: Mon May 6 19:40:31 2019 -0700 Merge tag 'pm-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull power management updates from Rafael Wysocki: "These fix the (Intel-specific) Performance and Energy Bias Hint (EPB) handling and expose it to user space via sysfs, fix and clean up several cpufreq drivers, add support for two new chips to the qoriq cpufreq driver, fix, simplify and clean up the cpufreq core and the schedutil governor, add support for "CPU" domains to the generic power domains (genpd) framework and provide low-level PSCI firmware support for that feature, fix the exynos cpuidle driver and fix a couple of issues in the devfreq subsystem and clean it up. Specifics: - Fix the handling of Performance and Energy Bias Hint (EPB) on Intel processors and expose it to user space via sysfs to avoid having to access it through the generic MSR I/F (Rafael Wysocki). - Improve the handling of global turbo changes made by the platform firmware in the intel_pstate driver (Rafael Wysocki). - Convert some slow-path static_cpu_has() callers to boot_cpu_has() in cpufreq (Borislav Petkov). - Fix the frequency calculation loop in the armada-37xx cpufreq driver (Gregory CLEMENT). - Fix possible object reference leaks in multuple cpufreq drivers (Wen Yang). - Fix kerneldoc comment in the centrino cpufreq driver (dongjian). - Clean up the ACPI and maple cpufreq drivers (Viresh Kumar, Mohan Kumar). - Add support for lx2160a and ls1028a to the qoriq cpufreq driver (Vabhav Sharma, Yuantian Tang). - Fix kobject memory leak in the cpufreq core (Viresh Kumar). - Simplify the IOwait boosting in the schedutil cpufreq governor and rework the TSC cpufreq notifier on x86 (Rafael Wysocki). - Clean up the cpufreq core and statistics code (Yue Hu, Kyle Lin). - Improve the cpufreq documentation, add SPDX license tags to some PM documentation files and unify copyright notices in them (Rafael Wysocki). - Add support for "CPU" domains to the generic power domains (genpd) framework and provide low-level PSCI firmware support for that feature (Ulf Hansson). - Rearrange the PSCI firmware support code and add support for SYSTEM_RESET2 to it (Ulf Hansson, Sudeep Holla). - Improve genpd support for devices in multiple power domains (Ulf Hansson). - Unify target residency for the AFTR and coupled AFTR states in the exynos cpuidle driver (Marek Szyprowski). - Introduce new helper routine in the operating performance points (OPP) framework (Andrew-sh.Cheng). - Add support for passing on-die termination (ODT) and auto power down parameters from the kernel to Trusted Firmware-A (TF-A) to the rk3399_dmc devfreq driver (Enric Balletbo i Serra). - Add tracing to devfreq (Lukasz Luba). - Make the exynos-bus devfreq driver suspend all devices on system shutdown (Marek Szyprowski). - Fix a few minor issues in the devfreq subsystem and clean it up somewhat (Enric Balletbo i Serra, MyungJoo Ham, Rob Herring, Saravana Kannan, Yangtao Li). - Improve system wakeup diagnostics (Stephen Boyd). - Rework filesystem sync messages emitted during system suspend and hibernation (Harry Pan)" * tag 'pm-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (72 commits) cpufreq: Fix kobject memleak cpufreq: armada-37xx: fix frequency calculation for opp cpufreq: centrino: Fix centrino_setpolicy() kerneldoc comment cpufreq: qoriq: add support for lx2160a x86: tsc: Rework time_cpufreq_notifier() PM / Domains: Allow to attach a CPU via genpd_dev_pm_attach_by_id|name() PM / Domains: Search for the CPU device outside the genpd lock PM / Domains: Drop unused in-parameter to some genpd functions PM / Domains: Use the base device for driver_deferred_probe_check_state() cpufreq: qoriq: Add ls1028a chip support PM / Domains: Enable genpd_dev_pm_attach_by_id|name() for single PM domain PM / Domains: Allow OF lookup for multi PM domain case from ->attach_dev() PM / Domains: Don't kfree() the virtual device in the error path cpufreq: Move ->get callback check outside of __cpufreq_get() PM / Domains: remove unnecessary unlikely() cpufreq: Remove needless bios_limit check in show_bios_limit() drivers/cpufreq/acpi-cpufreq.c: This fixes the following checkpatch warning firmware/psci: add support for SYSTEM_RESET2 PM / devfreq: add tracing for scheduling work trace: events: add devfreq trace event file ... commit 59df1c2bdecb0d1aaadfb8533df4bea528ee4952 Merge: c620f7bd0ba5 10b4768b27a0 Author: Linus Torvalds Date: Mon May 6 19:35:13 2019 -0700 Merge tag 'acpi-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull ACPI updates from Rafael Wysocki: "These rearrange the ACPI documentation by converting it to the .rst format and splitting it into clear categories (admin guide, driver API, firmware guide), switch over multiple users of a problematic library function to a new better one, update the ACPICA code in the kernel to a new upstream release, fix a few issues, improve power device management diagnostics and do some cleanups. Specifics: - Convert the ACPI documentation in the kernel source tree to the .rst format and split it into the admin guide, driver API and firmware guide parts (Changbin Du). - Add a PRP0001 usage example to the ACPI documentation (Thomas Preston). - Switch over the users of the acpi_dev_get_first_match_name() library function which turned out to be problematic to a new, better one called acpi_dev_get_first_match_dev() (Andy Shevchenko, YueHaibing). - Update the ACPICA code in the kernel to upstream release 20190405 including: * Null pointer dereference check in acpi_ns_delete_node() (Erik Schmauss). * Multiple macro and function name changes (Bob Moore). * Predefined operation region name fix (Erik Schmauss). - Fix hibernation issue on systems using the Baytrail and Cherrytrail Intel SoCs introduced during the 4.20 development cycle (Hans de Goede). - Add Sony VPCEH3U1E to the backlight quirk list (Zhang Rui). - Fix button handling during system resume (Zhang Rui). - Add a device PM diagnostic message (Rafael Wysocki). - Clean up the code, comments and white space in multiple places (Bjorn Helgaas, Gustavo Silva, Kefeng Wang)" * tag 'acpi-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (53 commits) Documentation: ACPI: move video_extension.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move ssdt-overlays.txt to admin-guide/acpi and convert to reST Documentation: ACPI: move lpit.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move cppc_sysfs.txt to admin-guide/acpi and convert to reST Documentation: ACPI: move apei/einj.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move apei/output_format.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move aml-debugger.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move method-tracing.txt to firmware-guide/acpi and convert to rsST Documentation: ACPI: move debug.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move dsd/data-node-references.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move dsd/graph.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move acpi-lid.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move i2c-muxes.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move dsdt-override.txt to admin-guide/acpi and convert to reST Documentation: ACPI: move initrd_table_override.txt to admin-guide/acpi and convert to reST Documentation: ACPI: move method-customizing.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move gpio-properties.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move DSD-properties-rules.txt to firmware-guide/acpi and covert to reST Documentation: ACPI: move scan_handlers.txt to driver-api/acpi and convert to reST Documentation: ACPI: move linuxized-acpica.txt to driver-api/acpi and convert to reST ... commit f153bf49ddf6169544b24ef5ea26fa3eb4996b95 Author: Takashi Iwai Date: Mon May 6 17:02:24 2019 +0200 ASoC: rockchip: Fix an uninitialized variable compile warning Paper over a trivial case leading to an uninitialized variable compile warning: sound/soc/rockchip/rockchip_pdm.c:179:3: warning: ‘clk_out’ may be used uninitialized in this function [-Wmaybe-uninitialized] Fixes: 624e8e00acaf ("ASoC: rockchip: pdm: fixup pdm fractional div") Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown commit c41d384c39f17ffb5326531da2374a1ab5859403 Author: Takashi Iwai Date: Mon May 6 17:02:23 2019 +0200 ASoC: SOF: Fix a compile warning with CONFIG_PCI=n A trivial fix for the randconfig build error: sound/soc/sof/ops.c:20:6: warning: ‘ret’ is used uninitialized in this function [-Wuninitialized] Fixes: d1d95fcb63e3 ("ASoC: SOF: Add DSP HW abstraction operations") Signed-off-by: Takashi Iwai Acked-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit ab0c433f32f86370152bc9cb4900e5fe9a11055c Author: Takashi Iwai Date: Mon May 6 17:02:22 2019 +0200 ASoC: da7219: Fix a compile warning at CONFIG_COMMON_CLK=n A trivial fix for the randconfig build error: sound/soc/codecs/da7219.c:2366:6: warning: unused variable ‘i’ [-Wunused-variable] Fixes: d90ba6c8b53e ("ASoC: da7219: Expose BCLK and WCLK control through CCF") Signed-off-by: Takashi Iwai Signed-off-by: Mark Brown commit 4c88519133bdd802fb0df4707b5a8c066af7154d Author: Randy Dunlap Date: Mon May 6 12:01:40 2019 -0700 ASoC: sound/soc/sof/: fix kconfig dependency warning Fix kconfig warning for unmet dependency for IOSF_MBI when PCI is not set/enabled. Fixes this warning: WARNING: unmet direct dependencies detected for IOSF_MBI Depends on [n]: PCI [=n] Selected by [y]: - SND_SOC_SOF_ACPI [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_SOC_SOF_TOPLEVEL [=y] && (ACPI [=y] || COMPILE_TEST [=n]) && X86 [=y] Signed-off-by: Randy Dunlap Cc: Liam Girdwood Cc: Mark Brown Cc: alsa-devel@alsa-project.org Acked-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 30d62d4453e49f85dd17b2ba60bbb68b6593dba0 Author: Andres Rodriguez Date: Thu May 2 15:31:57 2019 -0400 drm: add non-desktop quirk for Valve HMDs Add vendor/product pairs for the Valve Index HMDs. Signed-off-by: Andres Rodriguez Cc: Dave Airlie Cc: # v4.15 Signed-off-by: Dave Airlie Link: https://patchwork.freedesktop.org/patch/msgid/20190502193157.15692-1-andresx7@gmail.com commit c620f7bd0ba5c882b3e7fc199a8d5c2f6c2f5263 Merge: dd4e5d6106b2 b33f908811b7 Author: Linus Torvalds Date: Mon May 6 17:54:22 2019 -0700 Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull arm64 updates from Will Deacon: "Mostly just incremental improvements here: - Introduce AT_HWCAP2 for advertising CPU features to userspace - Expose SVE2 availability to userspace - Support for "data cache clean to point of deep persistence" (DC PODP) - Honour "mitigations=off" on the cmdline and advertise status via sysfs - CPU timer erratum workaround (Neoverse-N1 #1188873) - Introduce perf PMU driver for the SMMUv3 performance counters - Add config option to disable the kuser helpers page for AArch32 tasks - Futex modifications to ensure liveness under contention - Rework debug exception handling to seperate kernel and user handlers - Non-critical fixes and cleanup" * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (92 commits) Documentation: Add ARM64 to kernel-parameters.rst arm64/speculation: Support 'mitigations=' cmdline option arm64: ssbs: Don't treat CPUs with SSBS as unaffected by SSB arm64: enable generic CPU vulnerabilites support arm64: add sysfs vulnerability show for speculative store bypass arm64: Fix size of __early_cpu_boot_status clocksource/arm_arch_timer: Use arch_timer_read_counter to access stable counters clocksource/arm_arch_timer: Remove use of workaround static key clocksource/arm_arch_timer: Drop use of static key in arch_timer_reg_read_stable clocksource/arm_arch_timer: Direcly assign set_next_event workaround arm64: Use arch_timer_read_counter instead of arch_counter_get_cntvct watchdog/sbsa: Use arch_timer_read_counter instead of arch_counter_get_cntvct ARM: vdso: Remove dependency with the arch_timer driver internals arm64: Apply ARM64_ERRATUM_1188873 to Neoverse-N1 arm64: Add part number for Neoverse N1 arm64: Make ARM64_ERRATUM_1188873 depend on COMPAT arm64: Restrict ARM64_ERRATUM_1188873 mitigation to AArch32 arm64: mm: Remove pte_unmap_nested() arm64: Fix compiler warning from pte_unmap() with -Wunused-but-set-variable arm64: compat: Reduce address limit for 64K pages ... commit 8f8d5745bb520c76b81abef4a2cb3023d0313bfd Author: Max Filippov Date: Tue Jan 1 19:41:55 2019 -0800 xtensa: replace variant/core.h with asm/core.h Introduce the header arch/xtensa/include/asm/core.h that provides definitions for XCHAL macros missing in older xtensa releases. Use this header instead of variant/core.h Signed-off-by: Max Filippov commit 8e65986dcae8c49501c1920064dc192e704248bb Author: Max Filippov Date: Mon May 6 13:07:26 2019 -0700 xtensa: drop ifdef __KERNEL__ from kernel-only headers These headers are not exported to userspace, so they're never used without __KERNEL__ defined. Drop these ifdef statements. Signed-off-by: Max Filippov commit dd4e5d6106b2380e2c1238406d26df8b2fe1c42c Merge: 14be4c61c205 9726840d9cf0 Author: Linus Torvalds Date: Mon May 6 16:57:52 2019 -0700 Merge tag 'arm64-mmiowb' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux Pull mmiowb removal from Will Deacon: "Remove Mysterious Macro Intended to Obscure Weird Behaviours (mmiowb()) Remove mmiowb() from the kernel memory barrier API and instead, for architectures that need it, hide the barrier inside spin_unlock() when MMIO has been performed inside the critical section. The only relatively recent changes have been addressing review comments on the documentation, which is in a much better shape thanks to the efforts of Ben and Ingo. I was initially planning to split this into two pull requests so that you could run the coccinelle script yourself, however it's been plain sailing in linux-next so I've just included the whole lot here to keep things simple" * tag 'arm64-mmiowb' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (23 commits) docs/memory-barriers.txt: Update I/O section to be clearer about CPU vs thread docs/memory-barriers.txt: Fix style, spacing and grammar in I/O section arch: Remove dummy mmiowb() definitions from arch code net/ethernet/silan/sc92031: Remove stale comment about mmiowb() i40iw: Redefine i40iw_mmiowb() to do nothing scsi/qla1280: Remove stale comment about mmiowb() drivers: Remove explicit invocations of mmiowb() drivers: Remove useless trailing comments from mmiowb() invocations Documentation: Kill all references to mmiowb() riscv/mmiowb: Hook up mmwiob() implementation to asm-generic code powerpc/mmiowb: Hook up mmwiob() implementation to asm-generic code ia64/mmiowb: Add unconditional mmiowb() to arch_spin_unlock() mips/mmiowb: Add unconditional mmiowb() to arch_spin_unlock() sh/mmiowb: Add unconditional mmiowb() to arch_spin_unlock() m68k/io: Remove useless definition of mmiowb() nds32/io: Remove useless definition of mmiowb() x86/io: Remove useless definition of mmiowb() arm64/io: Remove useless definition of mmiowb() ARM/io: Remove useless definition of mmiowb() mmiowb: Hook up mmiowb helpers to spinlocks and generic I/O accessors ... commit 14be4c61c205dcb0a72251c1e2790814181bd9ba Merge: ccbc2e5ed192 ce968f6012f6 Author: Linus Torvalds Date: Mon May 6 16:42:54 2019 -0700 Merge tag 's390-5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux Pull s390 updates from Martin Schwidefsky: - Support for kernel address space layout randomization - Add support for kernel image signature verification - Convert s390 to the generic get_user_pages_fast code - Convert s390 to the stack unwind API analog to x86 - Add support for CPU directed interrupts for PCI devices - Provide support for MIO instructions to the PCI base layer, this will allow the use of direct PCI mappings in user space code - Add the basic KVM guest ultravisor interface for protected VMs - Add AT_HWCAP bits for several new hardware capabilities - Update the CPU measurement facility counter definitions to SVN 6 - Arnds cleanup patches for his quest to get LLVM compiles working - A vfio-ccw update with bug fixes and support for halt and clear - Improvements for the hardware TRNG code - Another round of cleanup for the QDIO layer - Numerous cleanups and bug fixes * tag 's390-5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (98 commits) s390/vdso: drop unnecessary cc-ldoption s390: fix clang -Wpointer-sign warnigns in boot code s390: drop CONFIG_VIRT_TO_BUS s390: boot, purgatory: pass $(CLANG_FLAGS) where needed s390: only build for new CPUs with clang s390: simplify disabled_wait s390/ftrace: use HAVE_FUNCTION_GRAPH_RET_ADDR_PTR s390/unwind: introduce stack unwind API s390/opcodes: add missing instructions to the disassembler s390/bug: add entry size to the __bug_table section s390: use proper expoline sections for .dma code s390/nospec: rename assembler generated expoline thunks s390: add missing ENDPROC statements to assembler functions locking/lockdep: check for freed initmem in static_obj() s390/kernel: add support for kernel address space layout randomization (KASLR) s390/kernel: introduce .dma sections s390/sclp: do not use static sccbs s390/kprobes: use static buffer for insn_page s390/kernel: convert SYSCALL and PGM_CHECK handlers to .quad s390/kernel: build a relocatable kernel ... commit ccbc2e5ed192ccd2663477107379f843d072e649 Merge: fdafe5d1ffe8 fdd20ec8786a Author: Linus Torvalds Date: Mon May 6 16:39:31 2019 -0700 Merge tag 'm68k-for-v5.2-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k Pull m68k updates from Geert Uytterhoeven: - drop arch_gettimeoffset and adopt clocksource API - defconfig updates * tag 'm68k-for-v5.2-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k: Documentation/features/time: Mark m68k having modern-timekeeping m68k: defconfig: Update defconfigs for v5.1-rc1 m68k: mvme16x: Handle timer counter overflow m68k: mvme16x: Convert to clocksource API m68k: mvme147: Handle timer counter overflow m68k: mvme147: Convert to clocksource API m68k: mac: Convert to clocksource API m68k: hp300: Handle timer counter overflow m68k: hp300: Convert to clocksource API m68k: bvme6000: Convert to clocksource API m68k: atari: Convert to clocksource API m68k: amiga: Convert to clocksource API m68k: Drop ARCH_USES_GETTIMEOFFSET m68k: apollo, q40, sun3, sun3x: Remove arch_gettimeoffset implementations m68k: mac: Fix VIA timer counter accesses m68k: Call timer_interrupt() with interrupts disabled commit fdafe5d1ffe8021704cb389e9823aef4235c88bc Merge: 948a64995aca c02f48e070bd Author: Linus Torvalds Date: Mon May 6 16:37:43 2019 -0700 Merge branch 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 microcode loading update from Borislav Petkov: "A nice Intel microcode blob loading cleanup which gets rid of the ugly memcpy wrappers and switches the driver to use the iov_iter API. By Jann Horn. In addition, the /dev/cpu/microcode interface is finally deprecated as it is inadequate for the same reasons the late microcode loading is" * 'x86-microcode-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/microcode: Deprecate MICROCODE_OLD_INTERFACE x86/microcode: Fix the ancient deprecated microcode loading method x86/microcode/intel: Refactor Intel microcode blob loading commit 948a64995aca6820abefd17f1a4258f5835c5ad9 Merge: db10ad041b31 8fea0f59e97d Author: Linus Torvalds Date: Mon May 6 16:33:06 2019 -0700 Merge branch 'x86-topology-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 topology updates from Ingo Molnar: "Two main changes: preparatory changes for Intel multi-die topology support, plus a syslog message tweak" * 'x86-topology-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/topology: Make DEBUG_HOTPLUG_CPU0 pr_info() more descriptive x86/smpboot: Rename match_die() to match_pkg() topology: Simplify cputopology.txt formatting and wording x86/topology: Fix documentation typo commit db10ad041b318a07985363e243742a07f4b0f44b Merge: ba3934de557a 81423c37415f Author: Linus Torvalds Date: Mon May 6 16:31:44 2019 -0700 Merge branch 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 timer updates from Ingo Molnar: "Two changes: an LTO improvement, plus the new 'nowatchdog' boot option to disable the clocksource watchdog" * 'x86-timers-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/timer: Don't inline __const_udelay() x86/tsc: Add option to disable tsc clocksource watchdog commit ba3934de557a2074b89d67e29e5ce119f042d057 Merge: 0bc40e549aee 14e581c381b9 Author: Linus Torvalds Date: Mon May 6 16:30:28 2019 -0700 Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 platform updates from Ingo Molnar: "Smaller update for Hyper-V to support EOI assist, plus LTO fixes" * 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/kvm: Make steal_time visible x86/hyperv: Make hv_vcpu_is_preempted() visible x86/hyper-v: Implement EOI assist commit 0bc40e549aeea2de20fc571749de9bbfc099fb34 Merge: e913c4a4c21c caa841360134 Author: Linus Torvalds Date: Mon May 6 16:13:31 2019 -0700 Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 mm updates from Ingo Molnar: "The changes in here are: - text_poke() fixes and an extensive set of executability lockdowns, to (hopefully) eliminate the last residual circumstances under which we are using W|X mappings even temporarily on x86 kernels. This required a broad range of surgery in text patching facilities, module loading, trampoline handling and other bits. - tweak page fault messages to be more informative and more structured. - remove DISCONTIGMEM support on x86-32 and make SPARSEMEM the default. - reduce KASLR granularity on 5-level paging kernels from 512 GB to 1 GB. - misc other changes and updates" * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (36 commits) x86/mm: Initialize PGD cache during mm initialization x86/alternatives: Add comment about module removal races x86/kprobes: Use vmalloc special flag x86/ftrace: Use vmalloc special flag bpf: Use vmalloc special flag modules: Use vmalloc special flag mm/vmalloc: Add flag for freeing of special permsissions mm/hibernation: Make hibernation handle unmapped pages x86/mm/cpa: Add set_direct_map_*() functions x86/alternatives: Remove the return value of text_poke_*() x86/jump-label: Remove support for custom text poker x86/modules: Avoid breaking W^X while loading modules x86/kprobes: Set instruction page as executable x86/ftrace: Set trampoline pages as executable x86/kgdb: Avoid redundant comparison of patched code x86/alternatives: Use temporary mm for text poking x86/alternatives: Initialize temporary mm for patching fork: Provide a function for copying init_mm uprobes: Initialize uprobes earlier x86/mm: Save debug registers when loading a temporary mm ... commit e913c4a4c21cd83317fafe63bfdc9d34d2910114 Merge: 8f147727030b b9ac3849af41 Author: Linus Torvalds Date: Mon May 6 16:11:45 2019 -0700 Merge branch 'x86-kdump-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 kdump update from Ingo Molnar: "This includes two changes: - Raise the crash kernel reservation limit from from ~896MB to ~4GB. Only very old (and already known-broken) kexec-tools is supposed to be affected by this negatively. - Allow higher than 4GB crash kernel allocations when low allocations fail" * 'x86-kdump-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/kdump: Fall back to reserve high crashkernel memory x86/kdump: Have crashkernel=X reserve under 4G by default commit 8f147727030bf9e81331ab9b8f42d4611bb6a3d9 Merge: 53f8b081c184 2c4645439e8f Author: Linus Torvalds Date: Mon May 6 15:56:41 2019 -0700 Merge branch 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 irq updates from Ingo Molnar: "Here are the main changes in this tree: - Introduce x86-64 IRQ/exception/debug stack guard pages to detect stack overflows immediately and deterministically. - Clean up over a decade worth of cruft accumulated. The outcome of this should be more clear-cut faults/crashes when any of the low level x86 CPU stacks overflow, instead of silent memory corruption and sporadic failures much later on" * 'x86-irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (33 commits) x86/irq: Fix outdated comments x86/irq/64: Remove stack overflow debug code x86/irq/64: Remap the IRQ stack with guard pages x86/irq/64: Split the IRQ stack into its own pages x86/irq/64: Init hardirq_stack_ptr during CPU hotplug x86/irq/32: Handle irq stack allocation failure proper x86/irq/32: Invoke irq_ctx_init() from init_IRQ() x86/irq/64: Rename irq_stack_ptr to hardirq_stack_ptr x86/irq/32: Rename hard/softirq_stack to hard/softirq_stack_ptr x86/irq/32: Make irq stack a character array x86/irq/32: Define IRQ_STACK_SIZE x86/dumpstack/64: Speedup in_exception_stack() x86/exceptions: Split debug IST stack x86/exceptions: Enable IST guard pages x86/exceptions: Disconnect IST index and stack order x86/cpu: Remove orig_ist array x86/cpu: Prepare TSS.IST setup for guard pages x86/dumpstack/64: Use cpu_entry_area instead of orig_ist x86/irq/64: Use cpu entry area instead of orig_ist x86/traps: Use cpu_entry_area instead of orig_ist ... commit 53f8b081c184328b82c8a7b5e70b8243b3cea8bd Merge: 31a4319b68c0 b5b447b6b4e8 Author: Linus Torvalds Date: Mon May 6 15:55:15 2019 -0700 Merge branch 'x86-entry-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 entry cleanup from Ingo Molnar: "A single commit that removes a redundant complication from preempt-schedule handling in the x86 entry code" * 'x86-entry-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/entry: Remove unneeded need_resched() loop commit 31a4319b68c0e0097fa0c754ec9d9e54115a76eb Merge: 46e80e6c3d45 987ddbe4870b Author: Linus Torvalds Date: Mon May 6 15:53:51 2019 -0700 Merge branch 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 cpu updates from Ingo Molnar: "Two changes: a Hygon CPU fix, and an optimization Centaur CPUs" * 'x86-cpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/power: Optimize C3 entry on Centaur CPUs x86/CPU/hygon: Fix phys_proc_id calculation logic for multi-die processors commit 46e80e6c3d456aed2f4c261425ff737bf82ce7bf Merge: 82ac4043cac5 15854edd193a Author: Linus Torvalds Date: Mon May 6 15:51:56 2019 -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: "A handful of cleanups: dma-ops cleanups, missing boot time kcalloc() check, a Sparse fix and use struct_size() to simplify a vzalloc() call" * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/pci: Clean up usage of X86_DEV_DMA_OPS x86/Kconfig: Remove the unused X86_DMA_REMAP KConfig symbol x86/kexec/crash: Use struct_size() in vzalloc() x86/mm/tlb: Define LOADED_MM_SWITCHING with pointer-sized number x86/platform/uv: Fix missing checks of kcalloc() return values commit 82ac4043cac5d75d8cda79bc8a095f8306f35c75 Merge: 75571d822dcc 47820e73f5b3 Author: Linus Torvalds Date: Mon May 6 15:49:54 2019 -0700 Merge branch 'x86-cache-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 cache QoS updates from Ingo Molnar: "An RDT cleanup and a fix for RDT initialization of new resource groups" * 'x86-cache-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/resctrl: Initialize a new resource group with default MBA values x86/resctrl: Move per RDT domain initialization to a separate function commit 75571d822dcc89729c7a72cb7bf3ee8568351089 Merge: f725492dd16f f36e7495dd39 Author: Linus Torvalds Date: Mon May 6 15:47:43 2019 -0700 Merge branch 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 build updates from Ingo Molnar: "Misc updates: - Add link flag quirk to solve LLVM linker bug that removes local relocations, causing KASLR boot failures. - Update the defconfigs to remove archaic partition table support - Fix kernel growing pains: we had a bug in relocs.c handling section header table entries count larger than 0xff00 (~65k), which can happen with the -ffunction-sections flag, causing a build failure with a cryptic error message. Add support for detecting the limit and using the ELF protocol that extends the sections table via ->sh_size. The new limit is now much larger - over a billion entries?" * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/tools/relocs: Fix big section header tables x86/defconfig: Remove archaic partition tables support x86/build: Keep local relocations with ld.lld commit f725492dd16f516c2b67d7cee90b8619d09fd534 Merge: 80e77644efcc 3855f11d54a0 Author: Linus Torvalds Date: Mon May 6 15:32:35 2019 -0700 Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 asm updates from Ingo Molnar: "This includes the following changes: - cpu_has() cleanups - sync_bitops.h modernization to the rmwcc.h facility, similarly to bitops.h - continued LTO annotations/fixes - misc cleanups and smaller cleanups" * 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/um/vdso: Drop unnecessary cc-ldoption x86/vdso: Rename variable to fix -Wshadow warning x86/cpu/amd: Exclude 32bit only assembler from 64bit build x86/asm: Mark all top level asm statements as .text x86/build/vdso: Add FORCE to the build rule of %.so x86/asm: Modernize sync_bitops.h x86/mm: Convert some slow-path static_cpu_has() callers to boot_cpu_has() x86: Convert some slow-path static_cpu_has() callers to boot_cpu_has() x86/asm: Clarify static_cpu_has()'s intended use x86/uaccess: Fix implicit cast of __user pointer x86/cpufeature: Remove __pure attribute to _static_cpu_has() commit d62bef1016e944a7602d6fade214f28e1f2157de Merge: 422449238e98 2b76f5be7c27 Author: Dave Airlie Date: Tue May 7 08:27:15 2019 +1000 Merge branch 'etnaviv/next' of https://git.pengutronix.de/git/lst/linux into drm-next things are still slow in etnaviv land, so we don't have anything major to destage. Just a couple of non-critical fixes that I want to land in 5.2. Signed-off-by: Dave Airlie From: Lucas Stach Link: https://patchwork.freedesktop.org/patch/msgid/1556874643.2590.15.camel@pengutronix.de commit 80e77644efcc1ec1064edd4c66a989cdf2e7ec7e Merge: a0e928ed7c60 6eb4f08293e9 Author: Linus Torvalds Date: Mon May 6 15:08:15 2019 -0700 Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 apic update from Ingo Molnar: "A single commit which unifies the unnecessarily diverged implementations of APIC timer initialization. As a result the max_delta parameter is now consistently taken into account" * 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/apic: Unify duplicated local apic timer clockevent initialization commit a0e928ed7c603a47dca8643e58db224a799ff2c5 Merge: 5a2bf1abbf96 13e792a19d4e Author: Linus Torvalds Date: Mon May 6 14:50:46 2019 -0700 Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull timer updates from Ingo Molnar: "This cycle had the following changes: - Timer tracing improvements (Anna-Maria Gleixner) - Continued tasklet reduction work: remove the hrtimer_tasklet (Thomas Gleixner) - Fix CPU hotplug remove race in the tick-broadcast mask handling code (Thomas Gleixner) - Force upper bound for setting CLOCK_REALTIME, to fix ABI inconsistencies with handling values that are close to the maximum supported and the vagueness of when uptime related wraparound might occur. Make the consistent maximum the year 2232 across all relevant ABIs and APIs. (Thomas Gleixner) - various cleanups and smaller fixes" * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: tick: Fix typos in comments tick/broadcast: Fix warning about undefined tick_broadcast_oneshot_offline() timekeeping: Force upper bound for setting CLOCK_REALTIME timer/trace: Improve timer tracing timer/trace: Replace deprecated vsprintf pointer extension %pf by %ps timer: Move trace point to get proper index tick/sched: Update tick_sched struct documentation tick: Remove outgoing CPU from broadcast masks timekeeping: Consistently use unsigned int for seqcount snapshot softirq: Remove tasklet_hrtimer xfrm: Replace hrtimer tasklet with softirq hrtimer mac80211_hwsim: Replace hrtimer tasklet with softirq hrtimer commit 5a2bf1abbf96fca02b9785c252e569ef8e004851 Merge: e00d4135751b d4645d30b50d Author: Linus Torvalds Date: Mon May 6 14:44:49 2019 -0700 Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull CPU hotplug updates from Ingo Molnar: "Two changes in this cycle: - Make the /sys/devices/system/cpu/smt/* files available on all arches, so user space has a consistent way to detect whether SMT is enabled. - Sparse annotation fix" * 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: smpboot: Place the __percpu annotation correctly cpu/hotplug: Create SMT sysfs interface for all arches commit fd58015ca9fed04fd52009e2dbcb7aef6940f734 Author: Chengguang Xu Date: Sun May 5 22:26:07 2019 +0800 xtensa: set proper error code for simdisk_setup() Change error code to -ENOMEM from -EIO because the error is related to memory allocating. Signed-off-by: Chengguang Xu Message-Id: <1557066367-4783-2-git-send-email-cgxu519@gmail.com> Signed-off-by: Max Filippov commit fb1b79d88b88370a8177aefcd446b1b3d323e4c8 Author: Chengguang Xu Date: Sun May 5 22:26:06 2019 +0800 xtensa: fix incorrect fd close in error case of simdisk_setup() dev->fd is opened in attach operation, so should not close dev->fd in error case of simdisk_setup(). Signed-off-by: Chengguang Xu Message-Id: <1557066367-4783-1-git-send-email-cgxu519@gmail.com> Signed-off-by: Max Filippov commit e00d4135751bfe786a9e26b5560b185ce3f9f963 Merge: 90489a72fba9 08ae95f4fd3b Author: Linus Torvalds Date: Mon May 6 14:31:50 2019 -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 in this cycle were: - Make nohz housekeeping processing more permissive and less intrusive to isolated CPUs - Decouple CPU-bound workqueue acconting from the scheduler and move it into the workqueue code. - Optimize topology building - Better handle quota and period overflows - Add more RCU annotations - Comment updates, misc cleanups" * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (25 commits) nohz_full: Allow the boot CPU to be nohz_full sched/isolation: Require a present CPU in housekeeping mask kernel/cpu: Allow non-zero CPU to be primary for suspend / kexec freeze power/suspend: Add function to disable secondaries for suspend sched/core: Allow the remote scheduler tick to be started on CPU0 sched/nohz: Run NOHZ idle load balancer on HK_FLAG_MISC CPUs sched/debug: Fix spelling mistake "logaritmic" -> "logarithmic" sched/topology: Update init_sched_domains() comment cgroup/cpuset: Update stale generate_sched_domains() comments sched/core: Check quota and period overflow at usec to nsec conversion sched/core: Handle overflow in cpu_shares_write_u64 sched/rt: Check integer overflow at usec to nsec conversion sched/core: Fix typo in comment sched/core: Make some functions static sched/core: Unify p->on_rq updates sched/core: Remove ttwu_activate() sched/core, workqueues: Distangle worker accounting from rq lock sched/fair: Remove unneeded prototype of capacity_of() sched/topology: Skip duplicate group rewrites in build_sched_groups() sched/topology: Fix build_sched_groups() comment ... commit 90489a72fba9529c85e051067ecb41183b8e982e Merge: 007dc78fea62 d15d356887e7 Author: Linus Torvalds Date: Mon May 6 14:16:36 2019 -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: "The main kernel changes were: - add support for Intel's "adaptive PEBS v4" - which embedds LBS data in PEBS records and can thus batch up and reduce the IRQ (NMI) rate significantly - reducing overhead and making call-graph profiling less intrusive. - add Intel CPU core and uncore support updates for Tremont, Icelake, - extend the x86 PMU constraints scheduler with 'constraint ranges' to better support Icelake hw constraints, - make x86 call-chain support work better with CONFIG_FRAME_POINTER=y - misc other changes Tooling changes: - updates to the main tools: 'perf record', 'perf trace', 'perf stat' - updated Intel and S/390 vendor events - libtraceevent updates - misc other updates and fixes" * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (69 commits) perf/x86: Make perf callchains work without CONFIG_FRAME_POINTER watchdog: Fix typo in comment perf/x86/intel: Add Tremont core PMU support perf/x86/intel/uncore: Add Intel Icelake uncore support perf/x86/msr: Add Icelake support perf/x86/intel/rapl: Add Icelake support perf/x86/intel/cstate: Add Icelake support perf/x86/intel: Add Icelake support perf/x86: Support constraint ranges perf/x86/lbr: Avoid reading the LBRs when adaptive PEBS handles them perf/x86/intel: Support adaptive PEBS v4 perf/x86/intel/ds: Extract code of event update in short period perf/x86/intel: Extract memory code PEBS parser for reuse perf/x86: Support outputting XMM registers perf/x86/intel: Force resched when TFA sysctl is modified perf/core: Add perf_pmu_resched() as global function perf/headers: Fix stale comment for struct perf_addr_filter perf/core: Make perf_swevent_init_cpu() static perf/x86: Add sanity checks to x86_schedule_events() perf/x86: Optimize x86_schedule_events() ... commit 90199c951bd2a6248e55a8db3368a2568e3b3edc Author: Srinath Mannam Date: Fri May 3 19:35:34 2019 +0530 PCI: iproc: Add sorted dma ranges resource entries to host bridge The iProc host controller allows only a subset of physical address space as target of inbound PCI memory transaction addresses. PCI device memory transactions targeting memory regions that are not allowed for inbound transactions in the host controller are rejected by the host controller and cannot reach the upstream buses. The firmware device tree description defines the DMA ranges that are addressable by devices DMA transactions; parse the device tree dma-ranges property and add its ranges to the PCI host bridge dma_ranges list; the iova_reserve_pci_windows() call executed at iommu_dma_init_domain() will reserve the IOVA address ranges that are not addressable (ie memory holes in the dma-ranges set) so that they are not allocated to PCI devices for DMA transfers. All allowed address ranges are listed in the dma-ranges DT parameter. For example: dma-ranges = < \ 0x43000000 0x00 0x80000000 0x00 0x80000000 0x00 0x80000000 \ 0x43000000 0x08 0x00000000 0x08 0x00000000 0x08 0x00000000 \ 0x43000000 0x80 0x00000000 0x80 0x00000000 0x40 0x00000000> In the above example of dma-ranges, memory address from 0x0 - 0x80000000, 0x100000000 - 0x800000000, 0x1000000000 - 0x8000000000 and 0x10000000000 - 0xffffffffffffffff. are not allowed to be used as inbound addresses. Based-on-a-patch-by: Oza Pawandeep Signed-off-by: Srinath Mannam [lorenzo.pieralisi@arm.com: updated commit log] Signed-off-by: Lorenzo Pieralisi [bhelgaas: fix function prototype style] Signed-off-by: Bjorn Helgaas Reviewed-by: Oza Pawandeep Reviewed-by: Eric Auger commit aadad097cd46f783b75c235cffa5c21fcffbf189 Author: Srinath Mannam Date: Fri May 3 19:35:33 2019 +0530 iommu/dma: Reserve IOVA for PCIe inaccessible DMA address The dma_ranges list field of PCI host bridge structure has resource entries in sorted order representing address ranges allowed for DMA transfers. Process the list and reserve IOVA addresses that are not present in its resource entries (ie DMA memory holes) to prevent allocating IOVA addresses that cannot be accessed by PCI devices. Based-on-a-patch-by: Oza Pawandeep Signed-off-by: Srinath Mannam Signed-off-by: Lorenzo Pieralisi Signed-off-by: Bjorn Helgaas Reviewed-by: Oza Pawandeep Acked-by: Robin Murphy commit e80a91ad302b3b66822756afc61f9f9c1658b9c9 Author: Srinath Mannam Date: Fri May 3 19:35:32 2019 +0530 PCI: Add dma_ranges window list Add a dma_ranges field in PCI host bridge structure to hold resource entries list of memory regions in sorted order representing memory ranges that can be accessed through DMA transactions. Based-on-a-patch-by: Oza Pawandeep Signed-off-by: Srinath Mannam [lorenzo.pieralisi@arm.com: updated commit log] Signed-off-by: Lorenzo Pieralisi Signed-off-by: Bjorn Helgaas Reviewed-by: Oza Pawandeep Acked-by: Bjorn Helgaas commit 007dc78fea62610bf06829e38f1d8c69b6ea5af6 Merge: 2f1835dffa94 d671002be6bd Author: Linus Torvalds Date: Mon May 6 13:50:15 2019 -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: "Here are the locking changes in this cycle: - rwsem unification and simpler micro-optimizations to prepare for more intrusive (and more lucrative) scalability improvements in v5.3 (Waiman Long) - Lockdep irq state tracking flag usage cleanups (Frederic Weisbecker) - static key improvements (Jakub Kicinski, Peter Zijlstra) - misc updates, cleanups and smaller fixes" * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (26 commits) locking/lockdep: Remove unnecessary unlikely() locking/static_key: Don't take sleeping locks in __static_key_slow_dec_deferred() locking/static_key: Factor out the fast path of static_key_slow_dec() locking/static_key: Add support for deferred static branches locking/lockdep: Test all incompatible scenarios at once in check_irq_usage() locking/lockdep: Avoid bogus Clang warning locking/lockdep: Generate LOCKF_ bit composites locking/lockdep: Use expanded masks on find_usage_*() functions locking/lockdep: Map remaining magic numbers to lock usage mask names locking/lockdep: Move valid_state() inside CONFIG_TRACE_IRQFLAGS && CONFIG_PROVE_LOCKING locking/rwsem: Prevent unneeded warning during locking selftest locking/rwsem: Optimize rwsem structure for uncontended lock acquisition locking/rwsem: Enable lock event counting locking/lock_events: Don't show pvqspinlock events on bare metal locking/lock_events: Make lock_events available for all archs & other locks locking/qspinlock_stat: Introduce generic lockevent_*() counting APIs locking/rwsem: Enhance DEBUG_RWSEMS_WARN_ON() macro locking/rwsem: Add debug check for __down_read*() locking/rwsem: Micro-optimize rwsem_try_read_lock_unqueued() locking/rwsem: Move rwsem internal function declarations to rwsem-xadd.h ... commit 2f1835dffa949f560dfa3ed63c0bfc10944b461c Merge: d90dcc1f1455 471ba0e686cb Author: Linus Torvalds Date: Mon May 6 13:45:04 2019 -0700 Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull irq updates from Ingo Molnar: "The changes in this cycle were: - Remove the irq timings/variance statistics code that tried to predict when the next interrupt would occur, which didn't work out as hoped and is replaced by another mechanism. - This new mechanism is the 'array suffix computation' estimate, which is superior to the previous one as it can detect not just a single periodic pattern, but independent periodic patterns along a log-2 scale of bucketing and exponential moving average. The comments are longer than the code - and it works better at predicting various complex interrupt patterns from real-world devices than the previous estimate. - avoid IRQ-work self-IPIs on the local CPU - fix work-list corruption in irq_set_affinity_notifier()" * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irq_work: Do not raise an IPI when queueing work on the local CPU genirq/devres: Use struct_size() in devm_kzalloc() genirq/timings: Add array suffix computation code genirq/timings: Remove variance computation code genirq: Prevent use-after-free and work list corruption commit d90dcc1f14555c62a32bc15c86c66d1d5444b5cb Merge: 2c6a392cddac 02562d0ca108 Author: Linus Torvalds Date: Mon May 6 13:28:28 2019 -0700 Merge branch 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull EFI updates from Ingo Molnar: "The changes in this cycle were: - Squash a spurious warning when using the EFI framebuffer on a non-EFI boot - Use DMI data to annotate RAS memory errors on ARM just like we do on Intel - Followup cleanups for DMI - libstub Makefile cleanups" * 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: efi/libstub/arm: Omit unneeded stripping of ksymtab/kcrctab sections efi: Unify DMI setup code over the arm/arm64, ia64 and x86 architectures efi/arm: Show SMBIOS bank/device location in CPER and GHES error logs efifb: Omit memory map check on legacy boot efi/libstub: Refactor the cmd_stubcopy Makefile command commit 2c6a392cddacde153865b15e8295ad0a35ed3c02 Merge: 0a499fc5c37e 3599fe12a125 Author: Linus Torvalds Date: Mon May 6 13:11:48 2019 -0700 Merge branch 'core-stacktrace-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull stack trace updates from Ingo Molnar: "So Thomas looked at the stacktrace code recently and noticed a few weirdnesses, and we all know how such stories of crummy kernel code meeting German engineering perfection end: a 45-patch series to clean it all up! :-) Here's the changes in Thomas's words: 'Struct stack_trace is a sinkhole for input and output parameters which is largely pointless for most usage sites. In fact if embedded into other data structures it creates indirections and extra storage overhead for no benefit. Looking at all usage sites makes it clear that they just require an interface which is based on a storage array. That array is either on stack, global or embedded into some other data structure. Some of the stack depot usage sites are outright wrong, but fortunately the wrongness just causes more stack being used for nothing and does not have functional impact. Another oddity is the inconsistent termination of the stack trace with ULONG_MAX. It's pointless as the number of entries is what determines the length of the stored trace. In fact quite some call sites remove the ULONG_MAX marker afterwards with or without nasty comments about it. Not all architectures do that and those which do, do it inconsistenly either conditional on nr_entries == 0 or unconditionally. The following series cleans that up by: 1) Removing the ULONG_MAX termination in the architecture code 2) Removing the ULONG_MAX fixups at the call sites 3) Providing plain storage array based interfaces for stacktrace and stackdepot. 4) Cleaning up the mess at the callsites including some related cleanups. 5) Removing the struct stack_trace based interfaces This is not changing the struct stack_trace interfaces at the architecture level, but it removes the exposure to the generic code'" * 'core-stacktrace-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (45 commits) x86/stacktrace: Use common infrastructure stacktrace: Provide common infrastructure lib/stackdepot: Remove obsolete functions stacktrace: Remove obsolete functions livepatch: Simplify stack trace retrieval tracing: Remove the last struct stack_trace usage tracing: Simplify stack trace retrieval tracing: Make ftrace_trace_userstack() static and conditional tracing: Use percpu stack trace buffer more intelligently tracing: Simplify stacktrace retrieval in histograms lockdep: Simplify stack trace handling lockdep: Remove save argument from check_prev_add() lockdep: Remove unused trace argument from print_circular_bug() drm: Simplify stacktrace handling dm persistent data: Simplify stack trace handling dm bufio: Simplify stack trace retrieval btrfs: ref-verify: Simplify stack trace retrieval dma/debug: Simplify stracktrace retrieval fault-inject: Simplify stacktrace retrieval mm/page_owner: Simplify stack trace handling ... commit 0a499fc5c37e6db096969a83534fd98a2bf2b36c Merge: e50c5d2e725e 0336e04a6520 Author: Linus Torvalds Date: Mon May 6 13:01:16 2019 -0700 Merge branch 'core-speculation-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull speculation mitigation update from Ingo Molnar: "This adds the "mitigations=" bootline option, which offers a cross-arch set of options that will work on x86, PowerPC and s390 that will map to the arch specific option internally" * 'core-speculation-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: s390/speculation: Support 'mitigations=' cmdline option powerpc/speculation: Support 'mitigations=' cmdline option x86/speculation: Support 'mitigations=' cmdline option cpu/speculation: Add 'mitigations=' cmdline option commit 3008ba87093852f3756c5d33f584602e5e2a4aa4 Author: Colin Ian King Date: Thu Jan 31 14:08:20 2019 +0000 mtd: part: fix incorrect format specifier for an unsigned long long An unsigned long long is being formatted with %lld instead of the unsigned version %llu. Fix this. Clean up cppcheck warning: %lld in format string (no. 1) requires 'long long' but the argument type is 'unsigned long long'. Fixes: a62c24d75529 ("mtd: part: Add sysfs variable for offset of partition") Signed-off-by: Colin Ian King Signed-off-by: Richard Weinberger commit fae4973c9a58858bc63a842cdaf7810955503399 Author: Gustavo A. R. Silva Date: Fri Feb 8 12:12:10 2019 -0600 mtd: lpddr_cmds: Mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warnings: drivers/mtd/lpddr/lpddr_cmds.c: In function ‘chip_ready’: drivers/mtd/lpddr/lpddr_cmds.c:319:6: warning: this statement may fall through [-Wimplicit-fallthrough=] if (mode == FL_READY && chip->oldstate == FL_READY) ^ drivers/mtd/lpddr/lpddr_cmds.c:322:2: note: here default: ^~~~~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enabling -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Reviewed-by: Kees Cook Signed-off-by: Richard Weinberger commit 098d74b4eaf63b7ab13ebdac4ad95f6b214b5f62 Author: Gustavo A. R. Silva Date: Fri Feb 8 12:09:11 2019 -0600 mtd: phram: Mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warnings: drivers/mtd/devices/phram.c: In function ‘parse_num64’: drivers/mtd/devices/phram.c:149:11: warning: this statement may fall through [-Wimplicit-fallthrough=] shift += 10; ~~~~~~^~~~~ drivers/mtd/devices/phram.c:150:4: note: here case 'M': ^~~~ drivers/mtd/devices/phram.c:151:11: warning: this statement may fall through [-Wimplicit-fallthrough=] shift += 10; ~~~~~~^~~~~ drivers/mtd/devices/phram.c:152:4: note: here case 'k': ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enabling -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Reviewed-by: Kees Cook Signed-off-by: Richard Weinberger commit af5d44b04dad70744a1750c733574436f51fd494 Author: Gustavo A. R. Silva Date: Fri Feb 8 12:06:15 2019 -0600 mtd: cfi_cmdset_0002: Mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warnings: drivers/mtd/chips/cfi_cmdset_0002.c: In function ‘get_chip’: drivers/mtd/chips/cfi_cmdset_0002.c:870:6: warning: this statement may fall through [-Wimplicit-fallthrough=] if (mode == FL_READY && chip->oldstate == FL_READY) ^ drivers/mtd/chips/cfi_cmdset_0002.c:873:2: note: here default: ^~~~~~~ drivers/mtd/chips/cfi_cmdset_0002.c: In function ‘cfi_amdstd_sync’: drivers/mtd/chips/cfi_cmdset_0002.c:2745:16: warning: this statement may fall through [-Wimplicit-fallthrough=] chip->state = FL_SYNCING; ~~~~~~~~~~~~^~~~~~~~~~~~ drivers/mtd/chips/cfi_cmdset_0002.c:2750:3: note: here case FL_SYNCING: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enabling -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Reviewed-by: Tokunori Ikegami Signed-off-by: Richard Weinberger commit 660e171675282d82be044fc5e7fe1e444b7aaccc Author: Gustavo A. R. Silva Date: Fri Feb 8 12:02:02 2019 -0600 mtd: cfi_util: mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warnings: drivers/mtd/chips/cfi_util.c: In function ‘cfi_build_cmd’: drivers/mtd/chips/cfi_util.c:110:10: warning: this statement may fall through [-Wimplicit-fallthrough=] onecmd |= (onecmd << (chip_mode * 32)); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/mtd/chips/cfi_util.c:112:2: note: here case 4: ^~~~ drivers/mtd/chips/cfi_util.c:113:10: warning: this statement may fall through [-Wimplicit-fallthrough=] onecmd |= (onecmd << (chip_mode * 16)); ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/mtd/chips/cfi_util.c:114:2: note: here case 2: ^~~~ drivers/mtd/chips/cfi_util.c: In function ‘cfi_merge_status’: drivers/mtd/chips/cfi_util.c:163:7: warning: this statement may fall through [-Wimplicit-fallthrough=] res |= (onestat >> (chip_mode * 32)); ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/mtd/chips/cfi_util.c:165:2: note: here case 4: ^~~~ drivers/mtd/chips/cfi_util.c:166:7: warning: this statement may fall through [-Wimplicit-fallthrough=] res |= (onestat >> (chip_mode * 16)); ~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/mtd/chips/cfi_util.c:167:2: note: here case 2: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enabling -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Reviewed-by: Kees Cook Signed-off-by: Richard Weinberger commit 553f0459b8082fef847863aa8afcc6ca37fbce05 Author: Miquel Raynal Date: Fri Apr 5 10:03:42 2019 +0200 MAINTAINERS: MTD Git repository is hosted on kernel.org Because of the slowness of the infradead.org server, Linus requested that we send him PRs from another domain. We moved our Git repository to kernel.org and maintain the following branches: * Fixes based on the last -rc: mtd/fixes * Next branch based usually on -rc1: mtd/next, nand/next, spi-nor/next. Signed-off-by: Miquel Raynal Acked-by: Richard Weinberger Acked-by: Tudor Ambarus Acked-by: Vignesh Raghavendra Signed-off-by: Richard Weinberger commit 8792620886e6a895229beb0386ffcaca4a08593f Author: Richard Weinberger Date: Fri Apr 12 09:27:31 2019 +0200 MAINTAINERS: Update jffs2 entry Update the entry to represent the current state of jffs2. I'll carry fixes via the UBIFS tree, David has the last word on anything. New features are not planned. Signed-off-by: Richard Weinberger commit b7cf5e2830bbb128699d7635ce8404b7f605bc95 Author: Linus Walleij Date: Mon May 6 21:55:51 2019 +0200 mtd: afs: add v2 partition parsing The AFS v2 partition type appear in later ARM reference designs such as RealView, Versatile Express and the 64bit Juno Development Platform. The image informations is padded with a 32bit word (4 bytes) on the 32bit platforms and a 64bit word (8 bytes) on the 64bit platforms. The boot monitor source code gives at hand that this is because the first entry in the struct mapped over the image information is a "next" pointer for a linked list, filled in by firmware after reading in the info block, and always zero in the flash. We adjust padding by checking what padding gives the right checksum. This was tested on: - Integrator/AP (v1 partitions) - RealView PB11MPCore (v2 32bit partitions) - Juno Development System (v2 64bit partitions) All systems display the images in flash very nicely as separate partitions, e.g on Juno: 4 afs partitions found on MTD device 8000000.flash Creating 4 MTD partitions on "8000000.flash": 0x000000040000-0x0000000c0000 : "fip" 0x000000ec0000-0x0000018c0000 : "Image" 0x000000f00000-0x000000f40000 : "juno" 0x000003ec0000-0x000003f00000 : "bl1" Cc: Ryan Harkin Acked-by: Liviu Dudau Signed-off-by: Linus Walleij Signed-off-by: Richard Weinberger commit 32e68bea9338101253b72f594796c76acd68da11 Author: Linus Walleij Date: Thu May 2 16:30:33 2019 +0200 mtd: afs: factor the IIS read into partition parser Factor the IIS (Image Information Structure) reading into the partition parser, giving us a single, clean partition parser function. Cc: Ryan Harkin Acked-by: Liviu Dudau Signed-off-by: Linus Walleij Signed-off-by: Richard Weinberger commit ff827b4e8d3606a275b92b159c7e9ae45ad2c361 Author: Linus Walleij Date: Thu May 2 16:30:32 2019 +0200 mtd: afs: factor footer parsing into the v1 part parsing This simplifies the code by factoring in the image footer parsing into the single function parsing the AFSv1 partitions. Cc: Ryan Harkin Acked-by: Liviu Dudau Signed-off-by: Linus Walleij Signed-off-by: Richard Weinberger commit 4aeb1594796d21f10866b7bd28365024fba347ff Author: Linus Walleij Date: Thu May 2 16:30:31 2019 +0200 mtd: factor out v1 partition parsing This breaks out the parsing of v1 partitions so we can later add a v2 partition parser. Cc: Ryan Harkin Acked-by: Liviu Dudau Signed-off-by: Linus Walleij Signed-off-by: Richard Weinberger commit 20700171929316ed88fdd11b3099518a0bd2f36e Author: Linus Walleij Date: Thu May 2 16:30:30 2019 +0200 mtd: afs: simplify partition detection Instead of reading out the AFS footers twice, create a separate function to just check if there is a footer or not. Rids a few local variables and prepare us to join the actual parser into one function. Cc: Ryan Harkin Acked-by: Liviu Dudau Signed-off-by: Linus Walleij Signed-off-by: Richard Weinberger commit 1fca1f6abb38a6c2a082c1df01601d0898454d7a Author: Linus Walleij Date: Thu May 2 16:30:29 2019 +0200 mtd: afs: simplify partition parsing This simplifies the AFS partition parsing to make the code more straight-forward and readable. Before this patch the code tried to calculate the memory required to hold the partition info by adding up the sizes of the strings of the names and adding that to a single memory allocation, indexing the name pointers in front of the struct mtd_partition allocations so all allocated data was in one chunk. This is overzealous. Instead use kstrdup and bail out, kfree():ing the memory used for MTD partitions and names alike on the errorpath. In the process rename the index variable from idx to i. Cc: Ryan Harkin Acked-by: Liviu Dudau Signed-off-by: Linus Walleij Signed-off-by: Richard Weinberger commit 22749bf549efb000c88d164c9a6a3366468e8e1c Author: Linus Walleij Date: Thu May 2 16:30:28 2019 +0200 mtd: partitions: Add OF support to AFS partitions This adds device tree support for AFS partitioning. Signed-off-by: Linus Walleij Signed-off-by: Richard Weinberger commit 2485fa5323316968e73a2b46ea0bc554c37b7e83 Author: Linus Walleij Date: Thu May 2 16:30:27 2019 +0200 mtd: partitions: Add AFS partitions DT bindings This adds device tree bindings for ARM Firmware Suite flash partitioning used in NOR flashes on ARM reference designs. Cc: devicetree@vger.kernel.org Reviewed-by: Rob Herring Signed-off-by: Linus Walleij Signed-off-by: Richard Weinberger commit 2aa3b8e1de23aaf9260b2635d467d69c9a2ea3f2 Author: Linus Walleij Date: Thu May 2 16:30:26 2019 +0200 mtd: afs: Move AFS partition parser to parsers subdir This moves the AFS (ARM Firmware Suite) partition parser for NOR flash down into the parsers subdirectory. Signed-off-by: Linus Walleij Signed-off-by: Richard Weinberger commit 251f26c9e828aa441a603efc32e0308ca76f172c Author: Thomas Huth Date: Sat Apr 27 17:14:57 2019 +0200 mtd: maps: Make uclinux_ram_map static The blackfin architecture has been removed a while ago, so there is no more need to declare uclinux_ram_map as a global structure. Signed-off-by: Thomas Huth Signed-off-by: Richard Weinberger commit d41970097f10d898cef0eb04bf53d786efd6bbbc Author: Chris Packham Date: Wed Apr 3 15:02:40 2019 +1300 mtd: maps: Allow MTD_PHYSMAP with MTD_RAM When the physmap_of_core.c code was merged into physmap-core.c the ability to use MTD_PHYSMAP_OF with only MTD_RAM selected was lost. Restore this by adding MTD_RAM to the dependencies of MTD_PHYSMAP. Fixes: commit 642b1e8dbed7 ("mtd: maps: Merge physmap_of.c into physmap-core.c") Cc: Signed-off-by: Chris Packham Reviewed-by: Hamish Martin Signed-off-by: Richard Weinberger commit b6abd06777a89a2579097fffc2b064449a9abf66 Author: Miquel Raynal Date: Mon Apr 1 17:09:37 2019 +0200 MAINTAINERS: Add myself as MTD maintainer Help Richard and hopefully Tudor and Vignesh maintaining MTD since Boris is leaving. Signed-off-by: Miquel Raynal Acked-by: Vignesh Raghavendra Acked-by: Boris Brezillon Acked-by: Tudor Ambarus Signed-off-by: Richard Weinberger commit 1a5490cf4d1a690e3728c87b4b689a38e8faaa46 Author: Boris Brezillon Date: Sat Mar 30 09:29:25 2019 +0100 MAINTAINERS: Remove my name from the MTD and NAND entries I am less and less active on the MTD/NAND fronts, and I don't think it will get any better in the future. Let's remove my name so that people don't expect me to review/merge their patches. Signed-off-by: Boris Brezillon Signed-off-by: Richard Weinberger commit e50c5d2e725eb7192a62868d4a9987907741ff62 Merge: 5ba2a4b12f45 83b0b15bcb0f Author: Linus Torvalds Date: Mon May 6 12:46:54 2019 -0700 Merge branch 'core-rseq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull rseq updates from Ingo Molnar: "A cleanup and a fix to comments" * 'core-rseq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: rseq: Remove superfluous rseq_len from task_struct rseq: Clean up comments by reflecting removal of event counter commit 6e9314dc051f9a5e9120954f2d6de9c8e5d8c522 Author: Chris Packham Date: Fri Mar 29 15:13:22 2019 +1300 dt-binding: mtd: physmap: Add example using addr-gpios property Add an example showing how to use the addr-gpios property to deal with a system with limited IO space. Cc: devicetree@vger.kernel.org Signed-off-by: Chris Packham Reviewed-by: Rob Herring Signed-off-by: Richard Weinberger commit 64d14c6fe040361ff6aecb825e392cf97837cd9e Author: Chris Packham Date: Fri Mar 29 15:13:21 2019 +1300 mtd: maps: physmap: Store gpio_values correctly When the gpio-addr-flash.c driver was merged with physmap-core.c the code to store the current gpio_values was lost. This meant that once a gpio was asserted it was never de-asserted. Fix this by storing the current offset in gpio_values like the old driver used to. Fixes: commit ba32ce95cbd9 ("mtd: maps: Merge gpio-addr-flash.c into physmap-core.c") Cc: Signed-off-by: Chris Packham Reviewed-by: Boris Brezillon Signed-off-by: Richard Weinberger commit fb899d3b2a622874cbb5daf9eb8c0fba19844648 Author: Jonas Gorski Date: Thu Mar 28 15:19:10 2019 +0100 mtd: parser_imagetag: add of_match_table support Allow matching the imagetag parser for fixed partitions defined in the device tree. Reviewed-by: Rob Herring Signed-off-by: Jonas Gorski Reviewed-by: Florian Fainelli Signed-off-by: Richard Weinberger commit 6744ebb0c798ac3717ceb5da1a479d9314dd641c Author: Jonas Gorski Date: Thu Mar 28 15:19:09 2019 +0100 dt-bindings: mtd: describe BCM963XX ImageTag format and usage Describe how to use the BCM963XX ImageTag format in a mixed flash layout environment. Reviewed-by: Rob Herring Signed-off-by: Jonas Gorski Reviewed-by: Florian Fainelli Signed-off-by: Richard Weinberger commit dd84cb022b310674f4c287ac426cb10f1b577140 Author: Jonas Gorski Date: Thu Mar 28 15:19:08 2019 +0100 mtd: bcm63xxpart: move imagetag parsing to its own parser Move the bcm963xx Image Tag parsing into its own partition parser. This Allows reusing the parser with different full flash parsers. While moving it, rename it to bcm963* to better reflect it isn't chip, but reference implementation specific. Reviewed-by: Rob Herring Signed-off-by: Jonas Gorski Reviewed-by: Florian Fainelli Signed-off-by: Richard Weinberger commit e651de475a7a919403b51eb93db374d732377b0e Author: Jonas Gorski Date: Thu Mar 28 15:19:07 2019 +0100 mtd: bcm63xxpart: add of_match_table support Add of_match_table support to allow using bcm63xxpart as a full flash layout parser from device tree. Reviewed-by: Rob Herring Signed-off-by: Jonas Gorski Reviewed-by: Florian Fainelli Signed-off-by: Richard Weinberger commit daa82b93f5b0bdc67e5cf594d55c0c8d84a406c9 Author: Jonas Gorski Date: Thu Mar 28 15:19:06 2019 +0100 dt-bindings: mtd: describe the simple BCM963XX NOR flash layout Add binding documentation for the standard CFE based BCM963XX flash layout, found in most devices using a BCM63XX SoC with NOR flash. Reviewed-by: Rob Herring Signed-off-by: Jonas Gorski Reviewed-by: Florian Fainelli Signed-off-by: Richard Weinberger commit 4bc11a2418f2ebb51b977a9807f4fb78b52ed5a8 Author: Vignesh Raghavendra Date: Mon Mar 25 15:18:46 2019 +0530 MAINTAINERS: Add myself as co-maintainer for MTD I have been contributing and reviewing MTD patches for a while now and would like to add myself as co-maintainer for MTD to help maintain CFI and SPI NOR parts of the subsystem. Hopefully, this will help in taking some load off current maintainers. Signed-off-by: Vignesh Raghavendra Acked-by: Boris Brezillon Acked-by: Tudor Ambarus Acked-by: Miquel Raynal Signed-off-by: Richard Weinberger commit c58b1ff20ffd0f48b1618cb664bc95a98dd2bf85 Author: Arnd Bergmann Date: Wed Mar 13 22:18:41 2019 +0100 mtd: physmap_of_gemini: remove extranous __xipram annotation Marking a local variable as __xipram causes a warning because of the noinline attribute: drivers/mtd/maps/physmap-gemini.c:89:11: error: '__noinline__' attribute only applies to functions [-Werror,-Wignored-attributes] map_word __xipram ret; ^ include/linux/mtd/xip.h:34:18: note: expanded from macro '__xipram' #define __xipram noinline __attribute__ ((__section__ (".xiptext"))) I can't see any reason for the anotation anyway, so just remove it here. Fixes: 9d3b5086f6d4 ("mtd: physmap_of_gemini: Handle pin control") Signed-off-by: Arnd Bergmann Acked-by: Linus Walleij Signed-off-by: Richard Weinberger commit 8b522c4baa5cce324d1a24ea93dc6bfbb6967e5f Merge: 1c7cbd634763 e43f53c22a93 Author: Richard Weinberger Date: Mon May 6 21:46:16 2019 +0200 Merge tag 'spi-nor/for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux into mtd/next SPI NOR core changes: - Print all JEDEC ID bytes on error - Fix comment of spi_nor_find_best_erase_type() - Add region locking flags for s25fl512s SPI NOR controller drivers changes: - intel-spi: * Avoid crossing 4K address boundary on read/write * Add support for Intel Comet Lake SPI serial flash commit 5ba2a4b12f450c5c69099a5c19671c6e59daa435 Merge: 6ec62961e6de 94e4dcc75a47 Author: Linus Torvalds Date: Mon May 6 12:04:02 2019 -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: "This cycles's RCU changes include: - a couple of straggling RCU flavor consolidation updates - SRCU updates - RCU CPU stall-warning updates - torture-test updates - an LKMM commit adding support for synchronize_srcu_expedited() - documentation updates - miscellaneous fixes" * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (57 commits) net/ipv4/netfilter: Update comment from call_rcu_bh() to call_rcu() tools/memory-model: Add support for synchronize_srcu_expedited() doc/kprobes: Update obsolete RCU update functions torture: Suppress false-positive CONFIG_INITRAMFS_SOURCE complaint locktorture: NULL cxt.lwsa and cxt.lrsa to allow bad-arg detection rcuperf: Fix cleanup path for invalid perf_type strings rcutorture: Fix cleanup path for invalid torture_type strings rcutorture: Fix expected forward progress duration in OOM notifier rcutorture: Remove ->ext_irq_conflict field rcutorture: Make rcutorture_extend_mask() comment match the code tools/.../rcutorture: Convert to SPDX license identifier torture: Don't try to offline the last CPU rcu: Fix nohz status in stall warning rcu: Move forward-progress checkers into tree_stall.h rcu: Move irq-disabled stall-warning checking to tree_stall.h rcu: Organize functions in tree_stall.h rcu: Move FAST_NO_HZ stall-warning code to tree_stall.h rcu: Inline RCU stall-warning info helper functions rcu: Move rcu_print_task_exp_stall() to tree_exp.h rcu: Inline RCU task stall-warning helper functions ... commit 6ec62961e6de9506e8b8620dc19897d8cfd41c2e Merge: 171c2bcbcb58 29da93fea3ea Author: Linus Torvalds Date: Mon May 6 11:39:17 2019 -0700 Merge branch 'core-objtool-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull objtool updates from Ingo Molnar: "This is a series from Peter Zijlstra that adds x86 build-time uaccess validation of SMAP to objtool, which will detect and warn about the following uaccess API usage bugs and weirdnesses: - call to %s() with UACCESS enabled - return with UACCESS enabled - return with UACCESS disabled from a UACCESS-safe function - recursive UACCESS enable - redundant UACCESS disable - UACCESS-safe disables UACCESS As it turns out not leaking uaccess permissions outside the intended uaccess functionality is hard when the interfaces are complex and when such bugs are mostly dormant. As a bonus we now also check the DF flag. We had at least one high-profile bug in that area in the early days of Linux, and the checking is fairly simple. The checks performed and warnings emitted are: - call to %s() with DF set - return with DF set - return with modified stack frame - recursive STD - redundant CLD It's all x86-only for now, but later on this can also be used for PAN on ARM and objtool is fairly cross-platform in principle. While all warnings emitted by this new checking facility that got reported to us were fixed, there might be GCC version dependent warnings that were not reported yet - which we'll address, should they trigger. The warnings are non-fatal build warnings" * 'core-objtool-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits) mm/uaccess: Use 'unsigned long' to placate UBSAN warnings on older GCC versions x86/uaccess: Dont leak the AC flag into __put_user() argument evaluation sched/x86_64: Don't save flags on context switch objtool: Add Direction Flag validation objtool: Add UACCESS validation objtool: Fix sibling call detection objtool: Rewrite alt->skip_orig objtool: Add --backtrace support objtool: Rewrite add_ignores() objtool: Handle function aliases objtool: Set insn->func for alternatives x86/uaccess, kcov: Disable stack protector x86/uaccess, ftrace: Fix ftrace_likely_update() vs. SMAP x86/uaccess, ubsan: Fix UBSAN vs. SMAP x86/uaccess, kasan: Fix KASAN vs SMAP x86/smap: Ditch __stringify() x86/uaccess: Introduce user_access_{save,restore}() x86/uaccess, signal: Fix AC=1 bloat x86/uaccess: Always inline user_access_begin() x86/uaccess, xen: Suppress SMAP warnings ... commit 171c2bcbcb58a6699dad64d0c0b615af4f6ecb74 Merge: 423ea3255424 f6c6010a0773 Author: Linus Torvalds Date: Mon May 6 11:36:58 2019 -0700 Merge branch 'core-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull unified TLB flushing from Ingo Molnar: "This contains the generic mmu_gather feature from Peter Zijlstra, which is an all-arch unification of TLB flushing APIs, via the following (broad) steps: - enhance the APIs to cover more arch details - convert most TLB flushing arch implementations to the generic APIs. - remove leftovers of per arch implementations After this series every single architecture makes use of the unified TLB flushing APIs" * 'core-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: mm/resource: Use resource_overlaps() to simplify region_intersects() ia64/tlb: Eradicate tlb_migrate_finish() callback asm-generic/tlb: Remove tlb_table_flush() asm-generic/tlb: Remove tlb_flush_mmu_free() asm-generic/tlb: Remove CONFIG_HAVE_GENERIC_MMU_GATHER asm-generic/tlb: Remove arch_tlb*_mmu() s390/tlb: Convert to generic mmu_gather asm-generic/tlb: Introduce CONFIG_HAVE_MMU_GATHER_NO_GATHER=y arch/tlb: Clean up simple architectures um/tlb: Convert to generic mmu_gather sh/tlb: Convert SH to generic mmu_gather ia64/tlb: Convert to generic mmu_gather arm/tlb: Convert to generic mmu_gather asm-generic/tlb, arch: Invert CONFIG_HAVE_RCU_TABLE_INVALIDATE asm-generic/tlb, ia64: Conditionally provide tlb_migrate_finish() asm-generic/tlb: Provide generic tlb_flush() based on flush_tlb_mm() asm-generic/tlb, arch: Provide generic tlb_flush() based on flush_tlb_range() asm-generic/tlb, arch: Provide generic VIPT cache flush asm-generic/tlb, arch: Provide CONFIG_HAVE_MMU_GATHER_PAGE_SIZE asm-generic/tlb: Provide a comment commit 423ea3255424b954947d167681b71ded1b8fca53 Author: Linus Torvalds Date: Mon May 6 11:28:23 2019 -0700 tty: rocket: fix incorrect forward declaration of 'rp_init()' Make the forward declaration actually match the real function definition, something that previous versions of gcc had just ignored. This is another patch to fix new warnings from gcc-9 before I start the merge window pulls. I don't want to miss legitimate new warnings just because my system update brought a new compiler with new warnings. Signed-off-by: Linus Torvalds commit e9c6c537308895e8b2b98ad15e82938935bdf1cf Author: Gal Pressman Date: Sun May 5 20:59:28 2019 +0300 RDMA/efa: Add common command handlers Add the EFA common commands implementation. Signed-off-by: Gal Pressman Reviewed-by: Steve Wise Signed-off-by: Jason Gunthorpe commit 0420e542569b2e56df29d243d09f5974bb6594a4 Author: Gal Pressman Date: Sun May 5 20:59:27 2019 +0300 RDMA/efa: Implement functions that submit and complete admin commands Add admin commands submissions/completions implementation. Signed-off-by: Gal Pressman Reviewed-by: Steve Wise Signed-off-by: Jason Gunthorpe commit 2ce62149afaece4baee21ad2b925ae1d089b4e3b Author: Gal Pressman Date: Sun May 5 20:59:26 2019 +0300 RDMA/efa: Add the ABI definitions Add the EFA ABI file exposed to userspace. Signed-off-by: Gal Pressman Reviewed-by: Steve Wise Signed-off-by: Jason Gunthorpe commit cd9b3d597054ce5f8e5e19359d7762e253c9019f Author: Gal Pressman Date: Sun May 5 20:59:25 2019 +0300 RDMA/efa: Add the com service API definitions Header file for the various commands that can be sent through admin queue. This includes queue create/modify/destroy, setting up and remove protection domains, address handlers, and memory registration, etc. Signed-off-by: Gal Pressman Reviewed-by: Steve Wise Signed-off-by: Jason Gunthorpe commit 43eaa49d511cf2f5a9fa56316f02cb80ecf6578b Author: Gal Pressman Date: Sun May 5 20:59:24 2019 +0300 RDMA/efa: Add the efa_com.h file A helper header file for EFA admin queue, admin queue completion, asynchronous notification queue, and various hardware configuration data structures and functions. Signed-off-by: Gal Pressman Reviewed-by: Steve Wise Signed-off-by: Jason Gunthorpe commit 853f56523565c7d3526799d3e2dc503128c336ec Author: Gal Pressman Date: Sun May 5 20:59:23 2019 +0300 RDMA/efa: Add the efa.h header file Add EFA driver generic header file defining driver's device independent internal data structures and definitions. Signed-off-by: Gal Pressman Reviewed-by: Steve Wise Signed-off-by: Jason Gunthorpe commit 9a91ad929f9a719c0c734abe791a27ab9444cd61 Author: Andrey Ryabinin Date: Mon May 6 13:45:27 2019 +0300 ubsan: Remove vla bound checks. The kernel the kernel is built with -Wvla for some time, so is not supposed to have any variable length arrays. Remove vla bounds checking from ubsan since it's useless now. Signed-off-by: Andrey Ryabinin Signed-off-by: Linus Torvalds commit f0996bc2978e02d2ea898101462b960f6119b18f Author: Andrey Ryabinin Date: Mon May 6 13:45:26 2019 +0300 ubsan: Fix nasty -Wbuiltin-declaration-mismatch GCC-9 warnings Building lib/ubsan.c with gcc-9 results in a ton of nasty warnings like this one: lib/ubsan.c warning: conflicting types for built-in function ‘__ubsan_handle_negate_overflow’; expected ‘void(void *, void *)’ [-Wbuiltin-declaration-mismatch] The kernel's declarations of __ubsan_handle_*() often uses 'unsigned long' types in parameters while GCC these parameters as 'void *' types, hence the mismatch. Fix this by using 'void *' to match GCC's declarations. Reported-by: Linus Torvalds Signed-off-by: Andrey Ryabinin Fixes: c6d308534aef ("UBSAN: run-time undefined behavior sanity checker") Cc: Signed-off-by: Linus Torvalds commit db90f41916cf04c020062f8d8b0385942248283e Author: Theodore Ts'o Date: Mon May 6 14:03:52 2019 -0400 ext4: export /sys/fs/ext4/feature/casefold if Unicode support is present Signed-off-by: Theodore Ts'o commit 01edac3aa2b9002860f405f1af23536386d45db0 Author: Gal Pressman Date: Sun May 5 20:59:22 2019 +0300 RDMA/efa: Add EFA device definitions EFA PCIe device implements a single Admin Queue (AQ) and Admin Completion Queue (ACQ) pair to initialize and communicate configuration with the device. Through this pair, we run set/get commands for querying and configuring the device, create/modify/destroy queues, and IB specific commands like Address Handler (AH), Memory Registration (MR) and Protection Domains (PD). In addition to admin (AQ/ACQ), we have data path queues that get classified as Queue Pairs (QP) and Completion Queues (CQ). Signed-off-by: Gal Pressman Reviewed-by: Shiraz Saleem Reviewed-by: Steve Wise Signed-off-by: Jason Gunthorpe commit f95be3d28d891b0c0f339a504e3aa8e382bbd9a6 Author: Gal Pressman Date: Sun May 5 20:59:21 2019 +0300 RDMA: Add EFA related definitions Add EFA driver ID to the IOCTL interface uapi. This patch also adds unspecified node/transport type that will be used by EFA (usnic is left unchanged as it's already part of our ABI). Signed-off-by: Gal Pressman Reviewed-by: Shiraz Saleem Reviewed-by: Steve Wise Reviewed-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit efeb862bd5bc001636e690debf6f9fbba98e5bfd Author: Colin Ian King Date: Sun May 5 23:01:22 2019 +0100 io_uring: fix shadowed variable ret return code being not checked Currently variable ret is declared in a while-loop code block that shadows another variable ret. When an error occurs in the while-loop the error return in ret is not being set in the outer code block and so the error check on ret is always going to be checking on the wrong ret variable resulting in check that is always going to be true and a premature return occurs. Fix this by removing the declaration of the inner while-loop variable ret so that shadowing does not occur. Addresses-Coverity: ("'Constant' variable guards dead code") Fixes: 6b06314c47e1 ("io_uring: add file set registration") Signed-off-by: Colin Ian King Signed-off-by: Jens Axboe commit 45c5fcbb73416f367100a4bccd116fd2752e5940 Author: Igor Konopko Date: Sat May 4 20:38:11 2019 +0200 lightnvm: pblk: use nvm_rq_to_ppa_list() This patch replaces few remaining usages of rqd->ppa_list[] with existing nvm_rq_to_ppa_list() helpers. This is needed for theoretical devices with ws_min/ws_opt equal to 1. Signed-off-by: Igor Konopko Reviewed-by: Javier González Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit a96de64a24e5035018c5a912f2b877da8797277e Author: Igor Konopko Date: Sat May 4 20:38:10 2019 +0200 lightnvm: pblk: simplify partial read path This patch changes the approach to handling partial read path. In old approach merging of data from round buffer and drive was fully made by drive. This had some disadvantages - code was complex and relies on bio internals, so it was hard to maintain and was strongly dependent on bio changes. In new approach most of the handling is done mostly by block layer functions such as bio_split(), bio_chain() and generic_make request() and generally is less complex and easier to maintain. Below some more details of the new approach. When read bio arrives, it is cloned for pblk internal purposes. All the L2P mapping, which includes copying data from round buffer to bio and thus bio_advance() calls is done on the cloned bio, so the original bio is untouched. If we found that we have partial read case, we still have original bio untouched, so we can split it and continue to process only first part of it in current context, when the rest will be called as separate bio request which is passed to generic_make_request() for further processing. Signed-off-by: Igor Konopko Reviewed-by: Heiner Litz Reviewed-by: Javier González Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit 843f2edbdde085b4d2764baf6fd8a1fccb1ab26a Author: Igor Konopko Date: Sat May 4 20:38:09 2019 +0200 lightnvm: do not remove instance under global lock Currently all the target instances are removed under global nvm_lock. This was needed to ensure that nvm_dev struct will not be freed by hot unplug event during target removal. However, current implementation has some drawbacks, since the same lock is used when new nvme subsystem is registered, so we can have a situation, that due to long process of target removal on drive A, registration (and listing in OS) of the drive B will take a lot of time, since it will wait for that lock. Now when we have kref which ensures that nvm_dev will not be freed in the meantime, we can easily get rid of this lock for a time when we are removing nvm targets. Signed-off-by: Igor Konopko Reviewed-by: Javier González Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit e69397ea05ce0263e3ee72fa8f6f70d2d9a561a7 Author: Igor Konopko Date: Sat May 4 20:38:08 2019 +0200 lightnvm: track inflight target creations When creation process is still in progress, target is not yet on targets list. This causes a chance for removing whole lightnvm subsystem by calling nvm_unregister() in the meantime and finally by causing kernel panic inside target init function. This patch changes the behaviour by adding kref variable which tracks all the users of nvm_dev structure. When nvm_dev is allocated, kref value is set to 1. Then before every target creation the value is increased and decreased after target removal. The extra reference is decreased when nvm subsystem is unregistered. Signed-off-by: Igor Konopko Reviewed-by: Javier González Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit a24eab59887133032831f939ad172233e7acb36e Author: Igor Konopko Date: Sat May 4 20:38:07 2019 +0200 lightnvm: pblk: recover only written metadata This patch ensures that smeta was fully written before even trying to read it based on chunk table state and write pointer. Signed-off-by: Igor Konopko Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit 3e03f6322ab2ab055478c92bf7af66d6ab13a35f Author: Igor Konopko Date: Sat May 4 20:38:06 2019 +0200 lightnvm: pblk: IO path reorganization This patch is made in order to prepare read path for new approach to partial read handling, which is simpler in compare with previous one. The most important change is to move the handling of completed and failed bio from the pblk_make_rq() to particular read and write functions. This is needed, since after partial read path changes, sometimes completed/failed bio will be different from original one, so we cannot do this any longer in pblk_make_rq(). Other changes are small read path refactor in order to reduce the size of the following patch with partial read changes. Generally the goal of this patch is not to change the functionality, but just to prepare the code for the following changes. Signed-off-by: Igor Konopko Reviewed-by: Javier González Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit f2e024570ef1a3d443875f6063321ee2e503ceb1 Author: Igor Konopko Date: Sat May 4 20:38:05 2019 +0200 lightnvm: pblk: GC error handling Currently when there is an IO error (or similar) on GC read path, pblk still move the line, which was currently under GC process to free state. Such a behaviour can lead to silent data mismatch issue. With this patch, the line which was under GC process on which some IO errors occurred, will be putted back to closed state (instead of free state as it was without this patch) and the L2P mapping for such a failed sectors will not be updated. Then in case of any user IOs to such a failed sectors, pblk would be able to return at least real IO error instead of stale data as it is right now. Signed-off-by: Igor Konopko Reviewed-by: Javier González Reviewed-by: Hans Holmberg Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit 32ac0fa3afebb8b83e3f9189af1a481c0110fe51 Author: Igor Konopko Date: Sat May 4 20:38:04 2019 +0200 lightnvm: pblk: remove internal IO timeout Currently during pblk padding, there is internal IO timeout introduced, which is smaller than default NVMe timeout. This can lead to various use-after-free issues. Since in case of any IO timeouts NVMe and block layer will handle timeout by themselves and report it back to use, there is no need to keep this internal timeout in pblk. Signed-off-by: Igor Konopko Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit 1fc3b30569bc1087dc8c8b8eff27ca7727b807c4 Author: Igor Konopko Date: Sat May 4 20:38:03 2019 +0200 lightnvm: pblk: wait for inflight IOs in recovery This patch changes the behaviour of recovery padding in order to support a case, when some IOs were already submitted to the drive and some next one are not submitted due to error returned. Currently in case of errors we simply exit the pad function without waiting for inflight IOs, which leads to panic on inflight IOs completion. After the changes we always wait for all the inflight IOs before exiting the function. Signed-off-by: Igor Konopko Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit d165a7a6f5aa05dfdfc164e24c11b6458a523ff7 Author: Igor Konopko Date: Sat May 4 20:38:02 2019 +0200 lightnvm: pblk: propagate errors when reading meta Read errors are not correctly propagated. Errors are cleared before returning control to the io submitter. Change the behaviour such that all read errors exept high ecc read warning status is returned appropriately. Signed-off-by: Igor Konopko Reviewed-by: Javier González Reviewed-by: Hans Holmberg Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit 2b0ae81e2a6f2114a68bdcc410bd1d72bacc97ad Author: Igor Konopko Date: Sat May 4 20:38:01 2019 +0200 lightnvm: pblk: fix update line wp in OOB recovery In case of OOB recovery, we can hit the scenario when all the data in line were written and some part of emeta was written too. In such a case pblk_update_line_wp() function will call pblk_alloc_page() function which will case to set left_msecs to value below zero (since this field does not track emeta region) and thus will lead to multiple kernel warnings. This patch fixes that issue. Signed-off-by: Igor Konopko Reviewed-by: Javier González Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit 74a37fbb5c8deca5f19fe072ce2dec3a0900f81f Author: Igor Konopko Date: Sat May 4 20:38:00 2019 +0200 lightnvm: pblk: kick writer on write recovery path In case of write recovery path, there is a chance that writer thread is not active, kick immediately instead of waiting for timer. Signed-off-by: Igor Konopko Reviewed-by: Javier González Reviewed-by: Hans Holmberg Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit 486b5aac85f6ec0b2df3e82a6a629d5eb7804db5 Author: Igor Konopko Date: Sat May 4 20:37:59 2019 +0200 lightnvm: pblk: fix lock order in pblk_rb_tear_down_check In pblk_rb_tear_down_check() the spinlock functions are not called in proper order. Fixes: a4bd217 ("lightnvm: physical block device (pblk) target") Signed-off-by: Igor Konopko Reviewed-by: Javier González Reviewed-by: Hans Holmberg Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit f41d427cdd9ec379e35777d13622c3cd382bf0a2 Author: Marcin Dziegielewski Date: Sat May 4 20:37:58 2019 +0200 lightnvm: prevent race condition on pblk remove When we trigger nvm target remove during device hot unplug, there is a probability to hit a general protection fault. This is caused by use of nvm_dev thay may be freed from another (hot unplug) thread (in the nvm_unregister function). Introduce lock in nvme_ioctl_dev_remove function to prevent this situation. Signed-off-by: Marcin Dziegielewski Reviewed-by: Javier González Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit 4bbae699226ea72a91a665f489c0d85fb48885d1 Author: Marcin Dziegielewski Date: Sat May 4 20:37:57 2019 +0200 lightnvm: pblk: set propper line as data_line after gc In current implementation of l2p recovery, when we are after gc and we have open line, we are not setting current data line properly (we set last line from the device instead of last line ordered by seq_nr) and in consequence, kernel panic and data corruption. Signed-off-by: Marcin Dziegielewski Reviewed-by: Javier González Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit 0503871223b7316caa1d6a78b09c167ceb135dd1 Author: Chansol Kim Date: Sat May 4 20:37:56 2019 +0200 lightnvm: pblk: fix bio leak when bio is split For large size io where blk_queue_split needs to be called inside pblk_rw_io, results in bio leak as bio_endio is not called on the newly allocated. One way to observe this is to mounting ext4 filesystem on the target and issuing 1MB io with dd, e.g., dd bs=1MB if=/dev/null of=/mount/myvolume. kmemleak reports: unreferenced object 0xffff88803d7d0100 (size 256): comm "kworker/u16:1", pid 68, jiffies 4294899333 (age 284.120s) hex dump (first 32 bytes): 00 00 00 00 00 00 00 00 00 60 e8 31 81 88 ff ff .........`.1.... 01 40 00 00 06 06 00 00 00 00 00 00 05 00 00 00 .@.............. backtrace: [<000000001f5aa04f>] kmem_cache_alloc+0x204/0x3c0 [<0000000040945aab>] mempool_alloc_slab+0x1d/0x30 [<00000000b4959ab4>] mempool_alloc+0x83/0x220 [<00000000646bad9b>] bio_alloc_bioset+0x229/0x320 [<000000009264b251>] bio_clone_fast+0x26/0xc0 [<0000000008250252>] bio_split+0x41/0x110 [<00000000e365cad0>] blk_queue_split+0x349/0x930 [<00000000eb5426bc>] pblk_make_rq+0x1b5/0x1f0 [<00000000eea09cec>] generic_make_request+0x2f9/0x690 [<00000000ae6acede>] submit_bio+0x12e/0x1f0 [<00000000f9b8b82a>] ext4_io_submit+0x64/0x80 [<000000009e4f817d>] ext4_bio_write_page+0x32e/0x890 [<00000000cbd0d106>] mpage_submit_page+0x65/0xc0 [<000000000eec7359>] mpage_map_and_submit_buffers+0x171/0x330 [<000000009a7afcb6>] ext4_writepages+0xd5e/0x1650 [<000000004476b096>] do_writepages+0x39/0xc0 In case there is a need for a split, blk_queue_split returns the newly allocated bio to the caller by changing the value of pointer passed as a reference, while the original is passed to generic_make_requests. Although pblk_rw_io's local variable bio* has changed and passed to pblk_submit_read and pblk_write_to_cache, work is done on this new bio*, and pblk_rw_io returns NVM_IO_DONE, pblk_make_rq calls bio_endio on the old bio* because it passed bio pointer by value to pblk_rw_io. pblk_rw_io is unfolded into pblk_make_rq so that there is no copying of bio* and bio_endio is called on the correct bio*. Signed-off-by: Chansol Kim Reviewed-by: Javier González Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit a14669ebc0e294f19b2290c294958b7741559d9d Author: Igor Konopko Date: Sat May 4 20:37:55 2019 +0200 lightnvm: Inherit mdts from the parent nvme device Current lightnvm and pblk implementation does not care about NVMe max data transfer size, which can be smaller than 64*K=256K. There are existing NVMe controllers which NVMe max data transfer size is lower that 256K (for example 128K, which happens for existing NVMe controllers which are NVMe spec compliant). Such a controllers are not able to handle command which contains 64 PPAs, since the the size of DMAed buffer will be above the capabilities of such a controller. Signed-off-by: Igor Konopko Reviewed-by: Hans Holmberg Reviewed-by: Javier González Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit d38954ed1b76a2814057cd4af92c6966bceb3d3c Author: Igor Konopko Date: Sat May 4 20:37:54 2019 +0200 lightnvm: pblk: set proper read status in bio Currently in case of read errors, bi_status is not set properly which leads to returning inproper data to layers above. This patch fix that by setting proper status in case of read errors. Also remove unnecessary warn_once(), which does not make sense in that place, since user bio is not used for interation with drive and thus bi_status will not be set here. Signed-off-by: Igor Konopko Reviewed-by: Javier González Reviewed-by: Hans Holmberg Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit 6e46b8b24ffbc4ecb5b606094dbc8ed5d6281f59 Author: Igor Konopko Date: Sat May 4 20:37:53 2019 +0200 lightnvm: pblk: cleanly fail when there is not enough memory L2P table can be huge in many cases, since it typically requires 1GB of DRAM for 1TB of drive. When there is not enough memory available, OOM killer turns on and kills random processes, which can be very annoying for users. This patch changes the flag for L2P table allocation on order to handle this situation in more user friendly way. GFP_KERNEL and __GPF_HIGHMEM are default flags used in parameterless vmalloc() calls, so they are also keeped in that patch. Additionally __GFP_NOWARN flag is added in order to hide very long dmesg warn in case of the allocation failures. The most important flag introduced in that patch is __GFP_RETRY_MAYFAIL, which would cause allocator to try use free memory and if not available to drop caches, but not to run OOM killer. Signed-off-by: Igor Konopko Reviewed-by: Hans Holmberg Reviewed-by: Javier González Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit 75c89bef6a54943ea0053dc3d27479edfb31b699 Author: Igor Konopko Date: Sat May 4 20:37:52 2019 +0200 lightnvm: pblk: ensure that erase is chunk aligned The sector bits in the erase command may be uninitialized are uninitialized, causing the erase LBA to be unaligned to the chunk size. This is unexpected situation, since erase shall always be chunk aligned based on OCSSD the 2.0 specification. Signed-off-by: Igor Konopko Reviewed-by: Javier González Reviewed-by: Hans Holmberg Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit 4ca885241950265a82e922a018b90ff8047d7aac Author: Igor Konopko Date: Sat May 4 20:37:51 2019 +0200 lightnvm: pblk: fix race during put line In the pblk_put_line_back function, a race condition with __pblk_map_invalidate can make a line not part of any lists. Fix gc_list by resetting it to null fixes the above issue. Fixes: a4bd217 ("lightnvm: physical block device (pblk) target") Signed-off-by: Igor Konopko Reviewed-by: Javier González Reviewed-by: Hans Holmberg Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit d378561b8ec7b46402de2b649cd44ee835d2e579 Author: Igor Konopko Date: Sat May 4 20:37:50 2019 +0200 lightnvm: pblk: gracefully handle GC vmalloc fail Currently when we fail on rq data allocation in gc, it skips moving active data and moves line straigt to its free state. Losing user data in the process. Move the data allocation to an earlier phase of GC, where we can still fail gracefully by moving line back to the closed state. Signed-off-by: Igor Konopko Reviewed-by: Javier González Reviewed-by: Hans Holmberg Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit 605bcef7f7d733aa732b6cc06201bd95a4288f72 Author: Igor Konopko Date: Sat May 4 20:37:49 2019 +0200 lightnvm: pblk: remove unused smeta_ssec field smeta_ssec field in pblk_line is never used after it was replaced by the function pblk_line_smeta_start(). Signed-off-by: Igor Konopko Reviewed-by: Hans Holmberg Reviewed-by: Javier González Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit 847a3a2788c57454ab715e07777431cc5fc76f48 Author: Igor Konopko Date: Sat May 4 20:37:48 2019 +0200 lightnvm: pblk: reduce L2P memory footprint Currently L2P map size is calculated based on the total number of available sectors, which is redundant, since it contains mapping for overprovisioning as well (11% by default). Change this size to the real capacity and thus reduce the memory footprint significantly - with default op value it is approx. 110MB of DRAM less for every 1TB of media. Signed-off-by: Igor Konopko Reviewed-by: Hans Holmberg Reviewed-by: Javier González Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit 8935ebfc5d462891e9dccec1f5cf438fb7bb96b4 Author: Igor Konopko Date: Sat May 4 20:37:47 2019 +0200 lightnvm: pblk: rollback on error during gc read A line is left unsigned to the blocks lists in case pblk_gc_line returns an error. This moves the line back to be appropriate list, which can then be picked up by the garbage collector. Signed-off-by: Igor Konopko Reviewed-by: Hans Holmberg Reviewed-by: Javier González Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit 7e5434eecefce78b40526e44de3d4559aaaf1b90 Author: Igor Konopko Date: Sat May 4 20:37:46 2019 +0200 lightnvm: pblk: line reference fix in GC Fixes the GC error case when moving a line back to closed state while releasing additional references. Signed-off-by: Igor Konopko Reviewed-by: Hans Holmberg Reviewed-by: Javier González Signed-off-by: Matias Bjørling Signed-off-by: Jens Axboe commit db6c6774af0d4861a7c5181ecc3c9ac320de46d9 Author: Shiraz Saleem Date: Mon May 6 08:53:36 2019 -0500 RDMA/umem: Remove hugetlb flag The drivers i40iw and bnxt_re no longer dependent on the hugetlb flag. So remove this flag from ib_umem structure. Reviewed-by: Michael J. Ruhl Signed-off-by: Shiraz Saleem Signed-off-by: Jason Gunthorpe commit d85582517e9103604991ac5265855b48ccfd54d8 Author: Shiraz Saleem Date: Mon May 6 08:53:35 2019 -0500 RDMA/bnxt_re: Use core helpers to get aligned DMA address Call the core helpers to retrieve the HW aligned address to use for the MR, within a supported bnxt_re page size. Remove checking the umem->hugtetlb flag as it is no longer required. The new DMA block iterator will return the 2M aligned address if the MR is backed by 2M huge pages. Acked-by: Selvin Xavier Signed-off-by: Shiraz Saleem Signed-off-by: Jason Gunthorpe commit eb52c0333f06b88bca5bac0dc0aeca729de6eb11 Author: Shiraz Saleem Date: Mon May 6 08:53:34 2019 -0500 RDMA/i40iw: Use core helpers to get aligned DMA address within a supported page size Call the core helpers to retrieve the HW aligned address to use for the MR, within a supported i40iw page size. Remove code in i40iw to determine when MR is backed by 2M huge pages which involves checking the umem->hugetlb flag and VMA inspection. The new DMA iterator will return the 2M aligned address if the MR is backed by 2M pages. Fixes: f26c7c83395b ("i40iw: Add 2MB page support") Reviewed-by: Michael J. Ruhl Signed-off-by: Shiraz Saleem Signed-off-by: Jason Gunthorpe commit a808273a495c657e33281b181fd7fcc2bb28f662 Author: Shiraz Saleem Date: Mon May 6 08:53:33 2019 -0500 RDMA/verbs: Add a DMA iterator to return aligned contiguous memory blocks This helper iterates over a DMA-mapped SGL and returns contiguous memory blocks aligned to a HW supported page size. Suggested-by: Jason Gunthorpe Signed-off-by: Shiraz Saleem Signed-off-by: Jason Gunthorpe commit 4a35339958f16d42a4ca06a8da9d4b5ab39ee8ea Author: Shiraz Saleem Date: Mon May 6 08:53:32 2019 -0500 RDMA/umem: Add API to find best driver supported page size in an MR This helper iterates through the SG list to find the best page size to use from a bitmap of HW supported page sizes. Drivers that support multiple page sizes, but not mixed sizes in an MR can use this API. Suggested-by: Jason Gunthorpe Signed-off-by: Shiraz Saleem Signed-off-by: Jason Gunthorpe commit 4c4b1996b5db688e2dcb8242b0a3bf7b1e845e42 Author: Mike Marciniszyn Date: Mon Mar 18 09:55:09 2019 -0700 IB/hfi1: Fix WQ_MEM_RECLAIM warning The work_item cancels that occur when a QP is destroyed can elicit the following trace: workqueue: WQ_MEM_RECLAIM ipoib_wq:ipoib_cm_tx_reap [ib_ipoib] is flushing !WQ_MEM_RECLAIM hfi0_0:_hfi1_do_send [hfi1] WARNING: CPU: 7 PID: 1403 at kernel/workqueue.c:2486 check_flush_dependency+0xb1/0x100 Call Trace: __flush_work.isra.29+0x8c/0x1a0 ? __switch_to_asm+0x40/0x70 __cancel_work_timer+0x103/0x190 ? schedule+0x32/0x80 iowait_cancel_work+0x15/0x30 [hfi1] rvt_reset_qp+0x1f8/0x3e0 [rdmavt] rvt_destroy_qp+0x65/0x1f0 [rdmavt] ? _cond_resched+0x15/0x30 ib_destroy_qp+0xe9/0x230 [ib_core] ipoib_cm_tx_reap+0x21c/0x560 [ib_ipoib] process_one_work+0x171/0x370 worker_thread+0x49/0x3f0 kthread+0xf8/0x130 ? max_active_store+0x80/0x80 ? kthread_bind+0x10/0x10 ret_from_fork+0x35/0x40 Since QP destruction frees memory, hfi1_wq should have the WQ_MEM_RECLAIM. The hfi1_wq does not allocate memory with GFP_KERNEL or otherwise become entangled with memory reclaim, so this flag is appropriate. Fixes: 0a226edd203f ("staging/rdma/hfi1: Use parallel workqueue for SDMA engines") Reviewed-by: Michael J. Ruhl Signed-off-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit 10bf13c334504a1fea54b731217ade6814b79f65 Author: Leon Romanovsky Date: Mon May 6 10:45:56 2019 +0300 RDMA/mlx5: Remove MAYEXEC flag MAYEXEC flag was mistakenly added in the commit cited in the fixes line. Fixes: 4eb6ab13b991 ("RDMA: Remove rdma_user_mmap_page") Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 33cde96fb5d7ae36207541c8a832d7fae3cadbde Author: Ariel Levkovich Date: Sun May 5 17:07:14 2019 +0300 IB/mlx5: Device resource control for privileged DEVX user For DEVX users who have SYS_RAWIO capability, we set the internal device resources capability when creating the UCTX. This will allow the device to restrict the allocation of internal device resources such as SW ICM memory to privileged DEVX users only. Signed-off-by: Ariel Levkovich Reviewed-by: Eli Cohen Reviewed-by: Mark Bloch Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 25c13324d03d004f9e8071bf5bf5d5c6fdace71e Author: Ariel Levkovich Date: Sun May 5 17:07:13 2019 +0300 IB/mlx5: Add steering SW ICM device memory type This patch adds support for allocating, deallocating and registering a new device memory type, STEERING_SW_ICM. This memory can be allocated and used by a privileged user for direct rule insertion and management of the device's steering tables. The type is provided by the user via the dedicated attribute in the alloc_dm ioctl command. Signed-off-by: Ariel Levkovich Reviewed-by: Eli Cohen Reviewed-by: Mark Bloch Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 4056b12efd43248d8331b6ed93df5ea5250106a9 Author: Ariel Levkovich Date: Sun May 5 17:07:12 2019 +0300 IB/mlx5: Warn on allocated MEMIC buffers during cleanup Adding a warning on allocated MEMIC buffers that weren't freed prior to driver tear down. Signed-off-by: Ariel Levkovich Reviewed-by: Eli Cohen Reviewed-by: Mark Bloch Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 3b113a1ec3d4ac7e1e621b77650ac05491f5924a Author: Ariel Levkovich Date: Sun May 5 17:07:11 2019 +0300 IB/mlx5: Support device memory type attribute This patch intoruduces a new mlx5_ib driver attribute to the DM allocation method - the DM type. In order to allow addition of new types in downstream patches this patch also refactors the allocation, deallocation and registration handlers to consider the requested type and perform the necessary actions according to it. Since not all future device memory types will be such that are mapped to user memory, the mandatory page index output attribute is modified to be optional. Signed-off-by: Ariel Levkovich Reviewed-by: Eli Cohen Reviewed-by: Mark Bloch Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 1900da520c9fdc3a7cf00d21638f7c8721d5ac7f Author: Fuqian Huang Date: Sun Apr 21 19:47:27 2019 +0800 kernel: cgroup: fix misuse of %x Pointers should be printed with %p or %px rather than cast to unsigned long type and printed with %lx. Change %lx to %p to print the pointers. Signed-off-by: Fuqian Huang Signed-off-by: Tejun Heo commit 96b9c592def5d7203bdad1337d9c92a2183de5cb Author: Roman Gushchin Date: Fri Apr 26 10:59:45 2019 -0700 cgroup: get rid of cgroup_freezer_frozen_exit() A task should never enter the exit path with the task->frozen bit set. Any frozen task must enter the signal handling loop and the only way to escape is through cgroup_leave_frozen(true), which unconditionally drops the task->frozen bit. So it means that cgroyp_freezer_frozen_exit() has zero chances to be called and has to be removed. Let's put a WARN_ON_ONCE() instead of the cgroup_freezer_frozen_exit() call to catch any potential leak of the task's frozen bit. Suggested-by: Oleg Nesterov Signed-off-by: Roman Gushchin Signed-off-by: Tejun Heo commit cb2c4cd87874a7975b7b8615866b3a87bae10aab Author: Roman Gushchin Date: Fri Apr 26 10:59:44 2019 -0700 cgroup: prevent spurious transition into non-frozen state If freezing of a cgroup races with waking of a task from the frozen state (like waiting in vfork() or in do_signal_stop()), a spurious transition of the cgroup state can happen. The task enters cgroup_leave_frozen(true), the cgroup->nr_frozen_tasks counter decrements, and the cgroup is switched to the unfrozen state. To prevent it, let's reserve cgroup_leave_frozen(true) for terminating processes and use cgroup_leave_frozen(false) otherwise. To avoid busy-looping in the signal handling loop waiting for JOBCTL_TRAP_FREEZE set from the cgroup freezing path, let's do it explicitly in cgroup_leave_frozen(), if the task is going to stay frozen. Suggested-by: Oleg Nesterov Signed-off-by: Roman Gushchin Signed-off-by: Tejun Heo commit 533307dc20a9e84a0687d4ca24aeb669516c0243 Author: Shaokun Zhang Date: Tue Apr 30 17:57:29 2019 +0800 cgroup: Remove unused cgrp variable The 'cgrp' is set but not used in commit <76f969e8948d8> ("cgroup: cgroup v2 freezer"). Remove it to avoid [-Wunused-but-set-variable] warning. Cc: Tejun Heo Signed-off-by: Shaokun Zhang Acked-by: Roman Gushchin Signed-off-by: Tejun Heo commit 3a4ef2e2b5cf9a34bcc66c0d33f7eba180a14535 Author: Leon Romanovsky Date: Tue Apr 16 15:13:10 2019 +0300 RDMA/rdmavt: Catch use-after-free access of AH structures Prior to commit d345691471b4 ("RDMA: Handle AH allocations by IB/core"), AH destroy path is rdmavt returned -EBUSY warning to application and caused to potential leakage of kernel memory of AH structure. After that commit, the AH structure is always freed but such early return in driver code can potentially cause to use-after-free error. Add warning to catch such situation to help driver developers to fix AH release path. Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 2ac8d46dce1b62d19be6a4fa37334c185b1c75fa Author: Rajat Jain Date: Wed Apr 17 16:01:54 2019 -0700 platform/x86: intel_pmc_core: Allow to dump debug registers on S0ix failure Add a module parameter which when enabled, will check on resume, if the last S0ix attempt was successful. If not, the driver would warn and provide helpful debug information (which gets latched during the failed suspend attempt) to debug the S0ix failure. This information is very useful to debug S0ix failures. Specially since the latched debug information will be lost (over-written) if the system attempts to go into runtime (or imminent) S0ix again after that failed suspend attempt. Signed-off-by: Rajat Jain Signed-off-by: Andy Shevchenko commit 6c96a78c7b3201ac012c6e3b487e41e4558fa621 Author: Rajat Jain Date: Wed Apr 17 16:01:53 2019 -0700 platform/x86: intel_pmc_core: Convert to a platform_driver Convert the intel_pmc_core driver to a platform driver. There is no functional change to the driver, or to the way the devices are instantiated. Signed-off-by: Rajat Jain Signed-off-by: Andy Shevchenko commit 9b9f2f5416ef24260c5a5c041ba15b67fd5889b7 Author: Vadim Pasternak Date: Mon Mar 18 10:58:23 2019 +0000 platform/x86: mlx-platform: Add mlx-wdt platform driver activation Add mlx-wdt platform driver activation. Watchdog driver uses the same regmap infrastructure as others Mellanox platform drivers. Specific registers description for watchdog platform data configuration are added to mlx-platform. There are the registers for watchdog timer manipulation, and action setting on watchdog timer expiration. The watchdog action function could be configured to perform one of the following: system reset, setting PWM to full speed or counter increment. Two types of watchdog devices are supported main and auxiliary. These devices are co-exist and each of them could be configured to handle the specific action. Signed-off-by: Michael Shych Signed-off-by: Vadim Pasternak Signed-off-by: Andy Shevchenko commit 584814af9f8ca07cd38e5c554ddd10e85c4e2053 Author: Vadim Pasternak Date: Mon Mar 18 10:58:22 2019 +0000 platform/x86: mlx-platform: Add support for tachometer speed register Add support for tachometer speed register for the next generation systems MQMB7xx, MSN37xx, MSN34xx, MSN38xx. All these systems support tachometer speed capability register. This register is to be provided mlxreg-fan driver. Signed-off-by: Vadim Pasternak Signed-off-by: Andy Shevchenko commit 1357dfd7261fc2f625bf895f77bb57e8827b8f63 Author: Liming Sun Date: Fri May 3 09:49:08 2019 -0400 platform/mellanox: Add TmFifo driver for Mellanox BlueField Soc This commit adds the TmFifo platform driver for Mellanox BlueField Soc. TmFifo is a shared FIFO which enables external host machine to exchange data with the SoC via USB or PCIe. The driver is based on virtio framework and has console and network access enabled. Reviewed-by: Vadim Pasternak Signed-off-by: Liming Sun Signed-off-by: Andy Shevchenko commit d33a7e578eae0bb02cd032b9ac0d70271c34674f Author: Colin Ian King Date: Mon Apr 15 13:52:04 2019 +0100 platform/x86: thinkpad_acpi: fix spelling mistake "capabilites" -> "capabilities" There is a spelling mistake in a module parameter description. Fix it. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Signed-off-by: Andy Shevchenko commit 0e5e80043b0db4c292aaf0ea86415da6193f861a Author: Andy Shevchenko Date: Tue Apr 9 14:25:15 2019 +0300 platform/x86: intel_punit_ipc: Revert "Fix resource ioremap warning" Since we have a proper fix for intel_pmc_ipc driver for resource management, get rid of unneeded commit in the intel_punit_ipc driver. This reverts commit 6cc8cbbc8868033f279b63e98b26b75eaa0006ab. Signed-off-by: Andy Shevchenko Reviewed-by: Kuppuswamy Sathyanarayanan commit af6c7e1ffcb6db6c1265295fa1b20fc27a0753f2 Author: Andy Shevchenko Date: Tue Apr 9 14:25:14 2019 +0300 platform/x86: intel_pmc_ipc: Don't map non-used optional resources The intel_pmc_ipc driver has a placeholder for all possible resources that may have been provided by ACPI. Since there are few optional ones, the driver still uses them and binds to wrong ranges in resource tree: # grep intel_punit_ipc /proc/iomem 00000000-00000000 : intel_punit_ipc 00000000-00000000 : intel_punit_ipc 00000000-00000000 : intel_punit_ipc 00000000-00000000 : intel_punit_ipc This leads to issues with resource management during inserting and removing modules, such as intel_pmc_ipc itself, which can't be inserted anymore after first removal. Count the actual resources provided and supply only them to the child device. This is a real fix of the commit 8cc7fb4a6523 ("intel_pmc_ipc: update acpi resource structure for Punit") that also fixes a symptoms described in the commit 6cc8cbbc8868 ("platform/x86: intel_punit_ipc: Fix resource ioremap warning") that is going to be reverted afterwards. Reported-by: Junxiao Chang Signed-off-by: Andy Shevchenko Cc: Qipeng Zha Cc: Kuppuswamy Sathyanarayanan Reviewed-by: Kuppuswamy Sathyanarayanan commit 9eac0d75f132608159eb649ceadfc4e53b2a1686 Author: Andy Shevchenko Date: Tue Apr 9 14:25:13 2019 +0300 platform/x86: intel_pmc_ipc: Apply same width for offset definitions Apply same width for offset definitions to make code more consistent. Signed-off-by: Andy Shevchenko Reviewed-by: Kuppuswamy Sathyanarayanan commit 0084cf6a504347da07066e020d0cf7b87eb2a274 Author: Andy Shevchenko Date: Tue Apr 9 14:25:12 2019 +0300 platform/x86: intel_pmc_ipc: Use BIT() macro Use BIT() and BIT_MASK() macros for definitions. Signed-off-by: Andy Shevchenko Reviewed-by: Kuppuswamy Sathyanarayanan commit 438ab720c675a16d53bb18f76a94d25bbe420c45 Author: Kirill Smelkov Date: Fri Apr 12 12:31:57 2019 +0300 vfs: pass ppos=NULL to .read()/.write() of FMODE_STREAM files This amends commit 10dce8af3422 ("fs: stream_open - opener for stream-like files so that read and write can run simultaneously without deadlock") in how position is passed into .read()/.write() handler for stream-like files: Rasmus noticed that we currently pass 0 as position and ignore any position change if that is done by a file implementation. This papers over bugs if ppos is used in files that declare themselves as being stream-like as such bugs will go unnoticed. Even if a file implementation is correctly converted into using stream_open, its read/write later could be changed to use ppos and even though that won't be working correctly, that bug might go unnoticed without someone doing wrong behaviour analysis. It is thus better to pass ppos=NULL into read/write for stream-like files as that don't give any chance for ppos usage bugs because it will oops if ppos is ever used inside .read() or .write(). Note 1: rw_verify_area, new_sync_{read,write} needs to be updated because they are called by vfs_read/vfs_write & friends before file_operations .read/.write . Note 2: if file backend uses new-style .read_iter/.write_iter, position is still passed into there as non-pointer kiocb.ki_pos . Currently stream_open.cocci (semantic patch added by 10dce8af3422) ignores files whose file_operations has *_iter methods. Suggested-by: Rasmus Villemoes Signed-off-by: Kirill Smelkov commit 19e42536b27121bcf6ee841b25054f8bacafd8c7 Author: Olivier Moysan Date: Mon May 6 14:44:05 2019 +0200 ASoC: stm32: spdifrx: change trace level on iec control Change trace level to debug to avoid spurious messages. Return quietly when accessing iec958 control, while no S/PDIF signal is available. Signed-off-by: Olivier Moysan Signed-off-by: Mark Brown commit c5bf68fe0c86a5835bd2e6aead1c49976360753f Author: Kirill Smelkov Date: Tue Mar 26 23:51:19 2019 +0300 *: convert stream-like files from nonseekable_open -> stream_open Using scripts/coccinelle/api/stream_open.cocci added in 10dce8af3422 ("fs: stream_open - opener for stream-like files so that read and write can run simultaneously without deadlock"), search and convert to stream_open all in-kernel nonseekable_open users for which read and write actually do not depend on ppos and where there is no other methods in file_operations which assume @offset access. I've verified each generated change manually - that it is correct to convert - and each other nonseekable_open instance left - that it is either not correct to convert there, or that it is not converted due to current stream_open.cocci limitations. The script also does not convert files that should be valid to convert, but that currently have .llseek = noop_llseek or generic_file_llseek for unknown reason despite file being opened with nonseekable_open (e.g. drivers/input/mousedev.c) Among cases converted 14 were potentially vulnerable to read vs write deadlock (see details in 10dce8af3422): drivers/char/pcmcia/cm4000_cs.c:1685:7-23: ERROR: cm4000_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix. drivers/gnss/core.c:45:1-17: ERROR: gnss_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix. drivers/hid/uhid.c:635:1-17: ERROR: uhid_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix. drivers/infiniband/core/user_mad.c:988:1-17: ERROR: umad_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix. drivers/input/evdev.c:527:1-17: ERROR: evdev_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix. drivers/input/misc/uinput.c:401:1-17: ERROR: uinput_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix. drivers/isdn/capi/capi.c:963:8-24: ERROR: capi_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix. drivers/leds/uleds.c:77:1-17: ERROR: uleds_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix. drivers/media/rc/lirc_dev.c:198:1-17: ERROR: lirc_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix. drivers/s390/char/fs3270.c:488:1-17: ERROR: fs3270_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix. drivers/usb/misc/ldusb.c:310:1-17: ERROR: ld_usb_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix. drivers/xen/evtchn.c:667:8-24: ERROR: evtchn_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix. net/batman-adv/icmp_socket.c:80:1-17: ERROR: batadv_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix. net/rfkill/core.c:1146:8-24: ERROR: rfkill_fops: .read() can deadlock .write(); change nonseekable_open -> stream_open to fix. and the rest were just safe to convert to stream_open because their read and write do not use ppos at all and corresponding file_operations do not have methods that assume @offset file access(*): arch/powerpc/platforms/52xx/mpc52xx_gpt.c:631:8-24: WARNING: mpc52xx_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. arch/powerpc/platforms/cell/spufs/file.c:591:8-24: WARNING: spufs_ibox_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open. arch/powerpc/platforms/cell/spufs/file.c:591:8-24: WARNING: spufs_ibox_stat_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open. arch/powerpc/platforms/cell/spufs/file.c:591:8-24: WARNING: spufs_mbox_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open. arch/powerpc/platforms/cell/spufs/file.c:591:8-24: WARNING: spufs_mbox_stat_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open. arch/powerpc/platforms/cell/spufs/file.c:591:8-24: WARNING: spufs_wbox_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. arch/powerpc/platforms/cell/spufs/file.c:591:8-24: WARNING: spufs_wbox_stat_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open. arch/um/drivers/harddog_kern.c:88:8-24: WARNING: harddog_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. arch/x86/kernel/cpu/microcode/core.c:430:33-49: WARNING: microcode_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/char/ds1620.c:215:8-24: WARNING: ds1620_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/char/dtlk.c:301:1-17: WARNING: dtlk_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open. drivers/char/ipmi/ipmi_watchdog.c:840:9-25: WARNING: ipmi_wdog_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open. drivers/char/pcmcia/scr24x_cs.c:95:8-24: WARNING: scr24x_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open. drivers/char/tb0219.c:246:9-25: WARNING: tb0219_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open. drivers/firewire/nosy.c:306:8-24: WARNING: nosy_ops: .read() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/hwmon/fschmd.c:840:8-24: WARNING: watchdog_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/hwmon/w83793.c:1344:8-24: WARNING: watchdog_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/infiniband/core/ucma.c:1747:8-24: WARNING: ucma_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/infiniband/core/ucm.c:1178:8-24: WARNING: ucm_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/infiniband/core/uverbs_main.c:1086:8-24: WARNING: uverbs_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/input/joydev.c:282:1-17: WARNING: joydev_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/pci/switch/switchtec.c:393:1-17: WARNING: switchtec_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open. drivers/platform/chrome/cros_ec_debugfs.c:135:8-24: WARNING: cros_ec_console_log_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/rtc/rtc-ds1374.c:470:9-25: WARNING: ds1374_wdt_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open. drivers/rtc/rtc-m41t80.c:805:9-25: WARNING: wdt_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open. drivers/s390/char/tape_char.c:293:2-18: WARNING: tape_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open. drivers/s390/char/zcore.c:194:8-24: WARNING: zcore_reipl_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/s390/crypto/zcrypt_api.c:528:8-24: WARNING: zcrypt_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open. drivers/spi/spidev.c:594:1-17: WARNING: spidev_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open. drivers/staging/pi433/pi433_if.c:974:1-17: WARNING: pi433_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/acquirewdt.c:203:8-24: WARNING: acq_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/advantechwdt.c:202:8-24: WARNING: advwdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/alim1535_wdt.c:252:8-24: WARNING: ali_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/alim7101_wdt.c:217:8-24: WARNING: wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/ar7_wdt.c:166:8-24: WARNING: ar7_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/at91rm9200_wdt.c:113:8-24: WARNING: at91wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/ath79_wdt.c:135:8-24: WARNING: ath79_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/bcm63xx_wdt.c:119:8-24: WARNING: bcm63xx_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/cpu5wdt.c:143:8-24: WARNING: cpu5wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/cpwd.c:397:8-24: WARNING: cpwd_fops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/eurotechwdt.c:319:8-24: WARNING: eurwdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/f71808e_wdt.c:528:8-24: WARNING: watchdog_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/gef_wdt.c:232:8-24: WARNING: gef_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/geodewdt.c:95:8-24: WARNING: geodewdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/ib700wdt.c:241:8-24: WARNING: ibwdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/ibmasr.c:326:8-24: WARNING: asr_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/indydog.c:80:8-24: WARNING: indydog_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/intel_scu_watchdog.c:307:8-24: WARNING: intel_scu_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/iop_wdt.c:104:8-24: WARNING: iop_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/it8712f_wdt.c:330:8-24: WARNING: it8712f_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/ixp4xx_wdt.c:68:8-24: WARNING: ixp4xx_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/ks8695_wdt.c:145:8-24: WARNING: ks8695wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/m54xx_wdt.c:88:8-24: WARNING: m54xx_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/machzwd.c:336:8-24: WARNING: zf_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/mixcomwd.c:153:8-24: WARNING: mixcomwd_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/mtx-1_wdt.c:121:8-24: WARNING: mtx1_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/mv64x60_wdt.c:136:8-24: WARNING: mv64x60_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/nuc900_wdt.c:134:8-24: WARNING: nuc900wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/nv_tco.c:164:8-24: WARNING: nv_tco_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/pc87413_wdt.c:289:8-24: WARNING: pc87413_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/pcwd.c:698:8-24: WARNING: pcwd_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/pcwd.c:737:8-24: WARNING: pcwd_temp_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/pcwd_pci.c:581:8-24: WARNING: pcipcwd_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/pcwd_pci.c:623:8-24: WARNING: pcipcwd_temp_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/pcwd_usb.c:488:8-24: WARNING: usb_pcwd_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/pcwd_usb.c:527:8-24: WARNING: usb_pcwd_temperature_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/pika_wdt.c:121:8-24: WARNING: pikawdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/pnx833x_wdt.c:119:8-24: WARNING: pnx833x_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/rc32434_wdt.c:153:8-24: WARNING: rc32434_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/rdc321x_wdt.c:145:8-24: WARNING: rdc321x_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/riowd.c:79:1-17: WARNING: riowd_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/sa1100_wdt.c:62:8-24: WARNING: sa1100dog_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/sbc60xxwdt.c:211:8-24: WARNING: wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/sbc7240_wdt.c:139:8-24: WARNING: wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/sbc8360.c:274:8-24: WARNING: sbc8360_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/sbc_epx_c3.c:81:8-24: WARNING: epx_c3_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/sbc_fitpc2_wdt.c:78:8-24: WARNING: fitpc2_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/sb_wdog.c:108:1-17: WARNING: sbwdog_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/sc1200wdt.c:181:8-24: WARNING: sc1200wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/sc520_wdt.c:261:8-24: WARNING: wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/sch311x_wdt.c:319:8-24: WARNING: sch311x_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/scx200_wdt.c:105:8-24: WARNING: scx200_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/smsc37b787_wdt.c:369:8-24: WARNING: wb_smsc_wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/w83877f_wdt.c:227:8-24: WARNING: wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/w83977f_wdt.c:301:8-24: WARNING: wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/wafer5823wdt.c:200:8-24: WARNING: wafwdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/watchdog_dev.c:828:8-24: WARNING: watchdog_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/wdrtas.c:379:8-24: WARNING: wdrtas_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/wdrtas.c:445:8-24: WARNING: wdrtas_temp_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/wdt285.c:104:1-17: WARNING: watchdog_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/wdt977.c:276:8-24: WARNING: wdt977_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/wdt.c:424:8-24: WARNING: wdt_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/wdt.c:484:8-24: WARNING: wdt_temp_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/wdt_pci.c:464:8-24: WARNING: wdtpci_fops: .write() has stream semantic; safe to change nonseekable_open -> stream_open. drivers/watchdog/wdt_pci.c:527:8-24: WARNING: wdtpci_temp_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open. net/batman-adv/log.c:105:1-17: WARNING: batadv_log_fops: .read() has stream semantic; safe to change nonseekable_open -> stream_open. sound/core/control.c:57:7-23: WARNING: snd_ctl_f_ops: .read() has stream semantic; safe to change nonseekable_open -> stream_open. sound/core/rawmidi.c:385:7-23: WARNING: snd_rawmidi_f_ops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open. sound/core/seq/seq_clientmgr.c:310:7-23: WARNING: snd_seq_f_ops: .read() and .write() have stream semantic; safe to change nonseekable_open -> stream_open. sound/core/timer.c:1428:7-23: WARNING: snd_timer_f_ops: .read() has stream semantic; safe to change nonseekable_open -> stream_open. One can also recheck/review the patch via generating it with explanation comments included via $ make coccicheck MODE=patch COCCI=scripts/coccinelle/api/stream_open.cocci SPFLAGS="-D explain" (*) This second group also contains cases with read/write deadlocks that stream_open.cocci don't yet detect, but which are still valid to convert to stream_open since ppos is not used. For example drivers/pci/switch/switchtec.c calls wait_for_completion_interruptible() in its .read, but stream_open.cocci currently detects only "wait_event*" as blocking. Cc: Michael Kerrisk Cc: Yongzhi Pan Cc: Jonathan Corbet Cc: David Vrabel Cc: Juergen Gross Cc: Miklos Szeredi Cc: Tejun Heo Cc: Kirill Tkhai Cc: Arnd Bergmann Cc: Christoph Hellwig Cc: Greg Kroah-Hartman Cc: Julia Lawall Cc: Nikolaus Rath Cc: Han-Wen Nienhuys Cc: Anatolij Gustschin Cc: Jeff Dike Cc: Richard Weinberger Cc: Anton Ivanov Cc: Borislav Petkov Cc: Thomas Gleixner Cc: Ingo Molnar Cc: "James R. Van Zandt" Cc: Corey Minyard Cc: Harald Welte Acked-by: Lubomir Rintel [scr24x_cs] Cc: Stefan Richter Cc: Johan Hovold Cc: David Herrmann Cc: Jiri Kosina Cc: Benjamin Tissoires Cc: Jean Delvare Acked-by: Guenter Roeck [watchdog/* hwmon/*] Cc: Rudolf Marek Cc: Dmitry Torokhov Cc: Karsten Keil Cc: Jacek Anaszewski Cc: Pavel Machek Cc: Mauro Carvalho Chehab Cc: Kurt Schwemmer Acked-by: Logan Gunthorpe [drivers/pci/switch/switchtec] Acked-by: Bjorn Helgaas [drivers/pci/switch/switchtec] Cc: Benson Leung Acked-by: Enric Balletbo i Serra [platform/chrome] Cc: Alessandro Zummo Acked-by: Alexandre Belloni [rtc/*] Cc: Mark Brown Cc: Wim Van Sebroeck Cc: Florian Fainelli Cc: bcm-kernel-feedback-list@broadcom.com Cc: Wan ZongShun Cc: Zwane Mwaikambo Cc: Marek Lindner Cc: Simon Wunderlich Cc: Antonio Quartulli Cc: "David S. Miller" Cc: Johannes Berg Cc: Jaroslav Kysela Cc: Takashi Iwai Signed-off-by: Kirill Smelkov commit 863137f0bc5eb2a3a65d1d29778ac65642171b17 Author: Olivier Moysan Date: Mon May 6 14:44:04 2019 +0200 ASoC: stm32: spdifrx: update pcm hardware constraints - Set period minimum size. Ensure at least 5ms period up to 48kHz/16 bits to prevent underrun/overrun. - Remove MDMA constraints on period maximum size and set period maximum to half the buffer maximum size. Signed-off-by: Olivier Moysan Signed-off-by: Mark Brown commit 184012ad69b275a17d6fa40a8d4dcf15ef76c4d2 Author: Kirill Smelkov Date: Wed Mar 27 11:33:01 2019 +0300 dtlk: remove double call to nonseekable_open dtlk_open currently has 2 calls to nonseekable_open which are both executed on success path. It was not hurting to make the extra call as nonseekable_open is only changing file->f_flags in idempotent way. However the first nonseekable_open is indeed both unneeded and looks suspicious. The first nonseekable_open was added in 6244f13c51 ("Fix up a couple of drivers - notable sg - for nonseekability."; 2004-Aug-7). The second nonseekable_open call was introduced in dc5c724584 ("Remove ESPIPE logic from drivers, letting the VFS layer handle it instead.; 2004-Aug-8). The latter patch being mass change probably missed to remove nonseekable_open that was introduced into dtlk_open the day before. Fix it: remove the extra/unneeded nonseekable_open call and leave the call to nonseekable_open only on the path where we are actually opening the file. Suggested-by: Pavel Machek Signed-off-by: Kirill Smelkov commit ecb2795c08bc825ebd604997e5be440b060c5b18 Author: Jon Hunter Date: Wed May 1 15:29:38 2019 +0100 ASoC: max98090: Fix restore of DAPM Muxes The max98090 driver defines 3 DAPM muxes; one for the right line output (LINMOD Mux), one for the left headphone mixer source (MIXHPLSEL Mux) and one for the right headphone mixer source (MIXHPRSEL Mux). The same bit is used for the mux as well as the DAPM enable, and although the mux can be correctly configured, after playback has completed, the mux will be reset during the disable phase. This is preventing the state of these muxes from being saved and restored correctly on system reboot. Fix this by marking these muxes as SND_SOC_NOPM. Note this has been verified this on the Tegra124 Nyan Big which features the MAX98090 codec. Signed-off-by: Jon Hunter Signed-off-by: Mark Brown Cc: stable@vger.kernel.org commit a46eb523220e242affb9a6bc9bb8efc05f4f7459 Author: Curtis Malainey Date: Fri May 3 12:32:14 2019 -0700 ASoC: RT5677-SPI: Disable 16Bit SPI Transfers The current algorithm allows 3 types of transfers, 16bit, 32bit and burst. According to Realtek, 16bit transfers have a special restriction in that it is restricted to the memory region of 0x18020000 ~ 0x18021000. This region is the memory location of the I2C registers. The current algorithm does not uphold this restriction and therefore fails to complete writes. Since this has been broken for some time it likely no one is using it. Better to simply disable the 16 bit writes. This will allow users to properly load firmware over SPI without data corruption. Signed-off-by: Curtis Malainey Reviewed-by: Ben Zhang Signed-off-by: Mark Brown Cc: stable@vger.kernel.org commit 570c91d51b337053a90ac91710b5fa5d2aacd311 Author: Nicholas Kazlauskas Date: Thu May 2 09:14:27 2019 -0400 drm/amd/display: Use long for signed error code checks in commit planes [Why] The type of 'r' is uint32_t and the return codes for both: - reservation_object_wait_timeout_rcu - amdgpu_bo_reserve ...are signed. While it works for the latter since the check is done on != 0 it doesn't work for the former since we check <= 0. [How] Make 'r' a long in commit planes so we're not doing any unsigned/signed conversion here in the first place. v2: use long instead of int (Christian) Reported-by: Dan Carpenter Signed-off-by: Nicholas Kazlauskas Reviewed-by: Christian König Signed-off-by: Alex Deucher commit b6818520edb0dc83d8de807cb40dff44995eab86 Author: Trigger Huang Date: Tue Apr 30 16:23:29 2019 +0800 drm/amdgpu: Add IDH_QUERY_ALIVE event for SR-IOV SR-IOV host side will send IDH_QUERY_ALIVE to guest VM to check if this guest VM is still alive (not destroyed). The only thing guest KMD need to do is to send ACK back to host. Signed-off-by: Trigger Huang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 3680624e32412ced54f5659431c35b26e3e83923 Author: Trigger Huang Date: Tue Apr 30 22:00:31 2019 +0800 drm/amdgpu: Fix VM clean check method amdgpu_vm_make_compute is used to turn a GFX VM into a compute VM, the prerequisite is this VM is clean. Let's check if some page tables are already filled , while not check if some mapping is already made. Signed-off-by: Trigger Huang Reviewed-by: Christian König Signed-off-by: Alex Deucher commit 74dcfe74b4ef6cd8f219c42c4ea4df0310c78b33 Author: Trigger Huang Date: Tue Apr 30 22:38:51 2019 +0800 drm/amdgpu: Rearm IRQ in Vega10 SR-IOV if IRQ lost In Multi-VFs stress test, sometimes we see IRQ lost when running benchmark, just rearm it. Signed-off-by: Trigger Huang Acked-by: Christian König Signed-off-by: Alex Deucher commit bdb1ccb080dafc1b4224873a5b759ff85a7d1c10 Author: Aaron Liu Date: Tue Apr 30 09:47:25 2019 +0800 drm/amdgpu: remove ATPX_DGPU_REQ_POWER_FOR_DISPLAYS check when hotplug-in In amdgpu_atif_handler, when hotplug event received, remove ATPX_DGPU_REQ_POWER_FOR_DISPLAYS check. This bit's check will cause missing system resume. Signed-off-by: Aaron Liu Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher Cc: stable@vger.kernel.org commit 7f641e26a6df9269cb25dd7a4b0a91d6586ed441 Author: Hui Wang Date: Mon May 6 22:09:32 2019 +0800 ALSA: hda/hdmi - Consider eld_valid when reporting jack event On the machines with AMD GPU or Nvidia GPU, we often meet this issue: after s3, there are 4 HDMI/DP audio devices in the gnome-sound-setting even there is no any monitors plugged. When this problem happens, we check the /proc/asound/cardX/eld#N.M, we will find the monitor_present=1, eld_valid=0. The root cause is BIOS or GPU driver makes the PRESENCE valid even no monitor plugged, and of course the driver will not get the valid eld_data subsequently. In this situation, we should not report the jack_plugged event, to do so, let us change the function hdmi_present_sense_via_verbs(). In this function, it reads the pin_sense via snd_hda_pin_sense(), after calling this function, the jack_dirty is 0, and before exiting via_verbs(), we change the shadow pin_sense according to both monitor_present and eld_valid, then in the snd_hda_jack_report_sync(), since the jack_dirty is still 0, it will report jack event according to this modified shadow pin_sense. After this change, the driver will not report Jack_is_plugged event through hdmi_present_sense_via_verbs() if monitor_present is 1 and eld_valid is 0. Signed-off-by: Hui Wang Cc: Signed-off-by: Takashi Iwai commit 8c2e6728c2bf95765b724e07d0278ae97cd1ee0d Author: Hui Wang Date: Mon May 6 22:09:31 2019 +0800 ALSA: hda/hdmi - Read the pin sense from register when repolling The driver will check the monitor presence when resuming from suspend, starting poll or interrupt triggers. In these 3 situations, the jack_dirty will be set to 1 first, then the hda_jack.c reads the pin_sense from register, after reading the register, the jack_dirty will be set to 0. But hdmi_repoll_work() is enabled in these 3 situations, It will read the pin_sense a couple of times subsequently, since the jack_dirty is 0 now, It does not read the register anymore, instead it uses the shadow pin_sense which is read at the first time. It is meaningless to check the shadow pin_sense a couple of times, we need to read the register to check the real plugging state, so we set the jack_dirty to 1 in the hdmi_repoll_work(). Signed-off-by: Hui Wang Cc: Signed-off-by: Takashi Iwai commit d81645510ce2a140816c4cb37c45b78d810ca63f Merge: 2854cd34fbab 378d590c4945 Author: Takashi Iwai Date: Mon May 6 16:14:09 2019 +0200 Merge tag 'asoc-v5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus ASoC: Updates for v5.2 This is a pretty huge set of changes, it's been a pretty active release all round but the big thing with this release is the Sound Open Firmware changes from Intel, providing another DSP framework for use with the DSPs in their SoCs. This one works with the firmware of the same name which is free software (unlike the previous DSP firmwares and framework) and there has been some interest in adoption by other systems already so hopefully we will see adoption by other vendors in the future. Other highlights include: - Support for MCLK/sample rate ratio setting in the generic cards. - Support for pin switches in the generic cards. - A big set of improvements to the TLV320AIC32x4 drivers from Annaliese McDermond. - New drivers for Freescale audio mixers, several Intel machines, several Mediatek machines, Meson G12A, Sound Open Firmware and Spreadtrum compressed audio and DMA devices. commit d4a5611743a6f5d126f8cbfdbf29e12fd8d1b73f Author: Kefeng Wang Date: Mon May 6 15:57:47 2019 +0200 video: fbdev: Use dev_get_drvdata() Using dev_get_drvdata directly. Signed-off-by: Kefeng Wang Cc: Wan ZongShun Cc: Kukjin Kim Cc: Krzysztof Kozlowski Cc: Michal Januszewski Cc: Masahiro Yamada Signed-off-by: Bartlomiej Zolnierkiewicz commit 3c5a1b111373e669c8220803464c3a508a87e254 Author: Andreas Schwab Date: Mon May 6 15:57:47 2019 +0200 fbcon: Don't reset logo_shown when logo is currently shown When the logo is currently drawn on a virtual console, and the console loglevel is reduced to quiet, logo_shown must be left alone, so that it the scrolling region on that virtual console is properly reset. Fixes: 10993504d647 ("fbcon: Silence fbcon logo on 'quiet' boots") Signed-off-by: Andreas Schwab Cc: Prarit Bhargava Cc: Yisheng Xie Cc: Kees Cook Cc: Daniel Vetter Cc: Steven Rostedt Cc: Marko Myllynen Cc: Hans de Goede Cc: Thierry Reding Signed-off-by: Bartlomiej Zolnierkiewicz commit 1efbd99ed41db9ddc3ae7e189934c62e9dbe55c4 Merge: 802c24716079 f68d67cf2f83 Author: Jiri Kosina Date: Mon May 6 15:55:18 2019 +0200 Merge branches 'for-5.1/upstream-fixes' and 'for-5.2/core' into for-linus commit e2a23affe6a6a15111ae56edd7e4f3c9673ef201 Merge: c7b5128f72ef 498209445124 Author: Mark Brown Date: Mon May 6 22:52:14 2019 +0900 Merge branch 'regulator-5.2' into regulator-next commit c7b5128f72efc732be776569a862bb4169eb1dbc Merge: e93c9c99a629 734008e714d8 Author: Mark Brown Date: Mon May 6 22:52:12 2019 +0900 Merge branch 'regulator-5.1' into regulator-linus commit 378d590c494551a68a824b939c711bb9a280e9ef Merge: 7f5a466f2ea1 1587a061ef56 Author: Mark Brown Date: Mon May 6 22:51:54 2019 +0900 Merge branch 'asoc-5.2' into asoc-next commit 7f5a466f2ea1115a4a73d987b7b6a73d23475305 Merge: e93c9c99a629 f47b9ad927c6 Author: Mark Brown Date: Mon May 6 22:51:52 2019 +0900 Merge branch 'asoc-5.1' into asoc-linus commit 1587a061ef562de0d97c82a95863e191bcd69d63 Author: Baolin Wang Date: Fri Apr 12 14:40:17 2019 +0800 ASoC: sprd: Add reserved DMA memory support For Spreadtrum audio platform driver, it need allocate a larger DMA buffer dynamically to copy audio data between userspace and kernel space, but that will increase the risk of memory allocation failure especially the system is under heavy load situation. To make sure the audio can work in this scenario, we usually reserve one region of memory to be used as a shared pool of DMA buffers for the platform component. So add of_reserved_mem_device_init_by_idx() function to initialize the shared pool of DMA buffers to be used by the platform component. Signed-off-by: Baolin Wang Signed-off-by: Mark Brown commit 63b6f0b827d6b40e53bac5abc8150fa117d27bec Merge: 39b3c3a5fbc5 4ceabaf7909d 2eb3c3e6eafb 640d4ea83c8a 161f62cd07fd 70cd8121ca7d 77f9f7721866 59579a8d173e Author: Jiri Kosina Date: Mon May 6 15:45:18 2019 +0200 Merge branches 'for-5.1/upstream-fixes', 'for-5.2/core', 'for-5.2/ish', 'for-5.2/logitech', 'for-5.2/macally', 'for-5.2/picolcd', 'for-5.2/sensor' and 'for-5.2/u2fzero' into for-linus commit 8cd2bc981c5335cacc432cba7666c2741c3e912f Author: Taehee Yoo Date: Tue Apr 30 22:56:14 2019 +0900 netfilter: nf_flow_table: do not flow offload deleted conntrack entries Conntrack entries can be deleted by the masquerade module. In that case, flow offload should be deleted too, but GC and data-path of flow offload do not check for conntrack status bits, hence flow offload entries will be removed only by the timeout. Update garbage collector and data-path to check for ct->status. If IPS_DYING_BIT is set, garbage collector removes flow offload entries and data-path routine ignores them. Signed-off-by: Taehee Yoo Signed-off-by: Pablo Neira Ayuso commit b33c448c4f920d5399acea9ccbb508baec272f6f Author: Subash Abhinov Kasiviswanathan Date: Fri May 3 12:39:08 2019 -0600 netfilter: nf_conntrack_h323: Remove deprecated config check CONFIG_NF_CONNTRACK_IPV6 has been deprecated so replace it with a check for IPV6 instead. Use nf_ip6_route6() instead of v6ops->route() and keep the IS_MODULE() in nf_ipv6_ops as mentioned by Florian so that direct calls are used when IPV6 is builtin and indirect calls are used only when IPV6 is a module. Fixes: a0ae2562c6c4b2 ("netfilter: conntrack: remove l3proto abstraction") Signed-off-by: Subash Abhinov Kasiviswanathan Reviewed-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit f8e608982022fad035160870f5b06086d3cba54d Author: Kristian Evensen Date: Fri May 3 17:40:07 2019 +0200 netfilter: ctnetlink: Resolve conntrack L3-protocol flush regression Commit 59c08c69c278 ("netfilter: ctnetlink: Support L3 protocol-filter on flush") introduced a user-space regression when flushing connection track entries. Before this commit, the nfgen_family field was not used by the kernel and all entries were removed. Since this commit, nfgen_family is used to filter out entries that should not be removed. One example a broken tool is conntrack. conntrack always sets nfgen_family to AF_INET, so after 59c08c69c278 only IPv4 entries were removed with the -F parameter. Pablo Neira Ayuso suggested using nfgenmsg->version to resolve the regression, and this commit implements his suggestion. nfgenmsg->version is so far set to zero, so it is well-suited to be used as a flag for selecting old or new flush behavior. If version is 0, nfgen_family is ignored and all entries are used. If user-space sets the version to one (or any other value than 0), then the new behavior is used. As version only can have two valid values, I chose not to add a new NFNETLINK_VERSION-constant. Fixes: 59c08c69c278 ("netfilter: ctnetlink: Support L3 protocol-filter on flush") Reported-by: Nicolas Dichtel Suggested-by: Pablo Neira Ayuso Signed-off-by: Kristian Evensen Tested-by: Nicolas Dichtel Signed-off-by: Pablo Neira Ayuso commit 2854cd34fbab5f28a356d3667c26b7856a7b73e2 Author: Dan Carpenter Date: Mon May 6 15:51:19 2019 +0300 ALSA: synth: emux: soundfont.c: divide by zero in calc_gus_envelope_time() This function is called from load_guspatch() and the rate is specified by the user. If they accidentally selected zero then it would crash the kernel. I've just changed the zero to a one. Signed-off-by: Dan Carpenter Signed-off-by: Takashi Iwai commit 17b89c80319c2a66d33142112e06bf15893e6ecb Merge: 78ff2afc2625 3887c26c0e24 Author: Takashi Iwai Date: Mon May 6 15:07:50 2019 +0200 Merge branch 'for-linus' into for-next Signed-off-by: Takashi Iwai commit 13bf5ced93775ffccb53527a9d862e023a9daa03 Author: Christoph Hellwig Date: Mon Mar 25 15:44:06 2019 +0100 dma-mapping: add a Kconfig symbol to indicate arch_dma_prep_coherent presence Add a Kconfig symbol that indicates an architecture provides a arch_dma_prep_coherent implementation, and provide a stub otherwise. This will allow the generic dma-iommu code to use it while still allowing to be built for cache coherent architectures. Signed-off-by: Christoph Hellwig Reviewed-by: Robin Murphy commit 980d43f24d59491aa1c5552171454ac25fb86ea2 Author: Geert Uytterhoeven Date: Tue Apr 30 11:28:32 2019 +0200 mlxsw: Remove obsolete dependency on THERMAL=m The THERMAL configuration option was changed from tristate to bool, but a dependency on THERMAL=m was forgotten, leading to a warning when running "make savedefconfig": boolean symbol THERMAL tested for 'm'? test forced to 'n' Fixes: be33e4fbbea581ea ("thermal/drivers/core: Remove the module Kconfig's option") Signed-off-by: Geert Uytterhoeven Acked-by: Daniel Lezcano Reviewed-by: Ido Schimmel Reviewed-by: Krzysztof Kozlowski Signed-off-by: Zhang Rui commit 04a1942933ced67d2b73c156017bf13476b7146b Author: Sachin Sant Date: Mon May 6 17:33:33 2019 +0530 powerpc/mm: Fix hugetlb page initialization This patch fixes a regression by using correct kernel config variable for HUGETLB_PAGE_SIZE_VARIABLE. Without this huge pages are disabled during kernel boot. [0.309496] hugetlbfs: disabling because there are no supported hugepage sizes Fixes: c5710cd20735 ("powerpc/mm: cleanup HPAGE_SHIFT setup") Reported-by: Sachin Sant Signed-off-by: Michael Ellerman Tested-by: Sachin Sant Reviewed-by: Christophe Leroy Signed-off-by: Michael Ellerman commit f37353320ee9905ef7aaba4c67eae85496bee950 Author: Daniel Lezcano Date: Tue Apr 2 18:12:50 2019 +0200 hwmon/drivers/core: Simplify complex dependency As the thermal framework does not longer compile as a module, we can simplify this condition below: if IS_REACHABLE(CONFIG_THERMAL) && defined(CONFIG_THERMAL_OF) && \ (!defined(CONFIG_THERMAL_HWMON) || \ !(defined(MODULE) && IS_MODULE(CONFIG_THERMAL))) if IS_REACHABLE(CONFIG_THERMAL) && defined(CONFIG_THERMAL_OF) && \ (!defined(CONFIG_THERMAL_HWMON) || \ !(defined(MODULE) && 0)) => (whatever && 0) = 0 if IS_REACHABLE(CONFIG_THERMAL) && defined(CONFIG_THERMAL_OF) && \ (!defined(CONFIG_THERMAL_HWMON) || !(0)) if IS_REACHABLE(CONFIG_THERMAL) && defined(CONFIG_THERMAL_OF) && \ (!defined(CONFIG_THERMAL_HWMON) || 1) => (whatever || 1) = 1 if IS_REACHABLE(CONFIG_THERMAL) && defined(CONFIG_THERMAL_OF) && \ (1) => (whatever && 1) = whatever if IS_REACHABLE(CONFIG_THERMAL) && defined(CONFIG_THERMAL_OF) CONFIG_THERMAL can not be a module anymore, then: if defined(CONFIG_THERMAL) && defined(CONFIG_THERMAL_OF) And CONFIG_THERMAL_OF already depends on CONFIG_THERMAL, so: if defined(CONFIG_THERMAL_OF) Thus, ifdef CONFIG_THERMAL_OF Signed-off-by: Daniel Lezcano Acked-by: Guenter Roeck Signed-off-by: Zhang Rui commit 2e31c8560a564a70f13e3b6acab49bffbe41e965 Author: Daniel Lezcano Date: Tue Apr 2 18:12:49 2019 +0200 thermal/drivers/core: Fix typo in the option name Unlike the other options, the cpu cooling option is beginning with a lowercase letter, changing to a uppercase. Signed-off-by: Daniel Lezcano Signed-off-by: Zhang Rui commit e9cf125bc1f99caacd1f4700b2c78659c53c4d9d Author: Daniel Lezcano Date: Tue Apr 2 18:12:48 2019 +0200 thermal/drivers/core: Remove depends on THERMAL in Kconfig The dependency on the THERMAL option to be set is already there implicitly by the "if THERMAL" conditionnal option. The sub Kconfigs do not have to check against the THERMAL option as they are called from a Kconfig block which is enabled by the conditionnal option. Remove the useless "depends on THERMAL" in the Kconfigs. Signed-off-by: Daniel Lezcano Signed-off-by: Zhang Rui commit 77e1dd46a1ad098f2bdb1fc953fea0d59e5d7fb6 Author: Daniel Lezcano Date: Tue Apr 2 18:12:45 2019 +0200 thermal/drivers/core: Remove module unload code Now the thermal core is no longer compiled as a module. Remove the unloading module code and move the unregister function to the __init section. Signed-off-by: Daniel Lezcano Signed-off-by: Zhang Rui commit 554b3529fe018e74cb5d0d0f476ee793b58b030a Author: Daniel Lezcano Date: Tue Apr 2 18:12:44 2019 +0200 thermal/drivers/core: Remove the module Kconfig's option The module support for the thermal subsystem makes little sense: - some subsystems relying on it are not modules, thus forcing the framework to be compiled in - it is compiled in for almost every configs, the remaining ones are a few platforms where I don't see why we can not switch the thermal to 'y'. The drivers can stay in tristate. - platforms need the thermal to be ready as soon as possible at boot time in order to mitigate Usually the subsystems framework are compiled-in and the plugs are as module. Remove the module option. The removal of the module related dead code will come after this patch gets in or is acked. Signed-off-by: Daniel Lezcano Acked-by: Guenter Roeck For mini2440: Acked-by: Krzysztof Kozlowski Acked-by: Paul Burton # MIPS part Acked-by: Robert Jarzmik Signed-off-by: Zhang Rui commit ff54bbd1beb24224e82cfe3e76668ee79ff32945 Author: Wei Wang Date: Tue Apr 16 10:07:01 2019 -0700 thermal: core: skip update disabled thermal zones after suspend It is unnecessary to update disabled thermal zones post suspend and sometimes leads error/warning in bad behaved thermal drivers. Signed-off-by: Wei Wang Signed-off-by: Zhang Rui commit f991de53a8abef21fae3e31967cb4f6a75c070b5 Author: Jean-Francois Dagenais Date: Thu Apr 18 12:36:39 2019 -0400 thermal: make device_register's type argument const ...because it can be, the buffer is strlcpy'd into a local buffer in a thermal struct member. Signed-off-by: Jean-Francois Dagenais Signed-off-by: Zhang Rui commit 89736a0ee81d14439d085c8d4653bc1d86fe64d8 Author: Joerg Roedel Date: Mon May 6 14:24:18 2019 +0200 Revert "iommu/amd: Remove the leftover of bypass support" This reverts commit 7a5dbf3ab2f04905cf8468c66fcdbfb643068bcb. This commit not only removes the leftovers of bypass support, it also mostly removes the checking of the return value of the get_domain() function. This can lead to silent data corruption bugs when a device is not attached to its dma_ops domain and a DMA-API function is called for that device. Signed-off-by: Joerg Roedel commit 98487de318a6f33312471ae1e2afa16fbf8361fe Author: Jiufei Xue Date: Mon May 6 15:41:02 2019 +0800 ovl: check the capability before cred overridden We found that it return success when we set IMMUTABLE_FL flag to a file in docker even though the docker didn't have the capability CAP_LINUX_IMMUTABLE. The commit d1d04ef8572b ("ovl: stack file ops") and dab5ca8fd9dd ("ovl: add lsattr/chattr support") implemented chattr operations on a regular overlay file. ovl_real_ioctl() overridden the current process's subjective credentials with ofs->creator_cred which have the capability CAP_LINUX_IMMUTABLE so that it will return success in vfs_ioctl()->cap_capable(). Fix this by checking the capability before cred overridden. And here we only care about APPEND_FL and IMMUTABLE_FL, so get these information from inode. [SzM: move check and call to underlying fs inside inode locked region to prevent two such calls from racing with each other] Signed-off-by: Jiufei Xue Signed-off-by: Miklos Szeredi commit d989903058a83e8536cc7aadf9256a47d5c173fe Author: Amir Goldstein Date: Wed Apr 24 19:39:50 2019 +0300 ovl: do not generate duplicate fsnotify events for "fake" path Overlayfs "fake" path is used for stacked file operations on underlying files. Operations on files with "fake" path must not generate fsnotify events with path data, because those events have already been generated at overlayfs layer and because the reported event->fd for fanotify marks on underlying inode/filesystem will have the wrong path (the overlayfs path). Link: https://lore.kernel.org/linux-fsdevel/20190423065024.12695-1-jencce.kernel@gmail.com/ Reported-by: Murphy Zhou Fixes: d1d04ef8572b ("ovl: stack file ops") Signed-off-by: Amir Goldstein Signed-off-by: Miklos Szeredi commit 9e46b840c7053b5f7a245e98cd239b60d189a96c Author: Amir Goldstein Date: Wed Feb 27 13:32:11 2019 +0200 ovl: support stacked SEEK_HOLE/SEEK_DATA Overlay file f_pos is the master copy that is preserved through copy up and modified on read/write, but only real fs knows how to SEEK_HOLE/SEEK_DATA and real fs may impose limitations that are more strict than ->s_maxbytes for specific files, so we use the real file to perform seeks. We do not call real fs for SEEK_CUR:0 query and for SEEK_SET:0 requests. Fixes: d1d04ef8572b ("ovl: stack file ops") Reported-by: Eddie Horng Signed-off-by: Amir Goldstein Signed-off-by: Miklos Szeredi commit 3428030da004a1128cbdcf93dc03e16f184d845b Author: Amir Goldstein Date: Tue Jan 22 07:01:39 2019 +0200 ovl: fix missing upper fs freeze protection on copy up for ioctl Generalize the helper ovl_open_maybe_copy_up() and use it to copy up file with data before FS_IOC_SETFLAGS ioctl. The FS_IOC_SETFLAGS ioctl is a bit of an odd ball in vfs, which probably caused the confusion. File may be open O_RDONLY, but ioctl modifies the file. VFS does not call mnt_want_write_file() nor lock inode mutex, but fs-specific code for FS_IOC_SETFLAGS does. So ovl_ioctl() calls mnt_want_write_file() for the overlay file, and fs-specific code calls mnt_want_write_file() for upper fs file, but there was no call for ovl_want_write() for copy up duration which prevents overlayfs from copying up on a frozen upper fs. Fixes: dab5ca8fd9dd ("ovl: add lsattr/chattr support") Cc: # v4.19 Signed-off-by: Amir Goldstein Acked-by: Vivek Goyal Signed-off-by: Miklos Szeredi commit 0a49a619e7e1aeb3f5f5511ca59314423c83dae2 Author: Adrian Hunter Date: Mon May 6 11:38:53 2019 +0300 mmc: sdhci-pci: Fix BYT OCP setting Some time ago, a fix was done for the sdhci-acpi driver, refer commit 6e1c7d6103fe ("mmc: sdhci-acpi: Reduce Baytrail eMMC/SD/SDIO hangs"). The same issue was not expected to affect the sdhci-pci driver, but there have been reports to the contrary, so make the same hardware setting change. This patch applies to v5.0+ but before that backports will be required. Signed-off-by: Adrian Hunter Cc: stable@vger.kernel.org Signed-off-by: Ulf Hansson commit 343682173846c68f231929a5b84584ab7a845a0b Author: Yinbo Zhu Date: Sun May 5 05:57:24 2019 +0000 dt-bindings: mmc: add DT bindings for ls1028a eSDHC host controller Add "fsl,ls1028a-esdhc" bindings for ls1028a eSDHC host controller Signed-off-by: Yinbo Zhu Signed-off-by: Ulf Hansson commit c081e7fdbf310c25d9e90ef161e905c2ef0a9dc1 Author: Kamlesh Gurudasani Date: Thu May 2 11:28:16 2019 +0530 mmc: alcor: Drop pointer to mmc_host from alcor_sdmmc_host The driver for Alcor Micro AU6601 and AU6621 controllers uses a pointer to get from the private alcor_sdmmc_host structure to the generic mmc_host structure. However the latter is always immediately preceding the former in memory, so compute its address with a subtraction (which is cheaper than a dereference) and drop the superfluous pointer. No functional change intended. Signed-off-by: Kamlesh Gurudasani Signed-off-by: Ulf Hansson commit 26c2b19e9daf8e68a9703dfec3bd6fed7330c158 Author: NeilBrown Date: Sat May 4 20:24:57 2019 +1000 mmc: mtk-sd: select REGULATOR The mtk-sd driver requires a regulator to be present, even if it is the "fixed" regulator. So select REGULATOR to make it hard to build unusable configurations. Signed-off-by: NeilBrown Reviewed-by: Chaotian Jing Signed-off-by: Ulf Hansson commit d087bde516053bd8dab4f79665586200b6a98c77 Author: NeilBrown Date: Sat May 4 20:24:57 2019 +1000 mmc: mtk-sd: enable internal card-detect logic. The mtk-sd silicon has integrated card-detect logic that is enabled on the MT7621. The circuit is phased out on newer hardware so we should be careful to only enabled it on hardware known to support it. This a new "use_internal_cd" flag in struct mtk_mmc_compatible. If the sdhci isn't marked non-removable and doesn't have a cd-gpio configured, and if use_internal_cd is set, then assume the internal cd logic should be used as recommended by Documentation/devicetree/bindings/mmc/mmc.txt Signed-off-by: NeilBrown Reviewed-by: Chaotian Jing Signed-off-by: Ulf Hansson commit afb7c7910bf3c42b56f99c9d6bb82099d0a0794d Author: NeilBrown Date: Sat May 4 20:24:56 2019 +1000 mmc: mtk-sd: add support for config found in mt7620 family SOCs. mt7620 family MIPS SOCs contain the mtk-sd silicon. Add support for this. Signed-off-by: NeilBrown Reviewed-by: Chaotian Jing Signed-off-by: Ulf Hansson commit 42edb0d5ac3ee1ac247e3f56be4263f14ed99f11 Author: NeilBrown Date: Sat May 4 20:24:56 2019 +1000 mmc: mtk-sd: don't hard-code interrupt trigger type When using devicetree for configuration, interrupt trigger type should be described in the dts file, not hard-coded in the C code. The mtk-sd silicon in the mt7621 soc uses an active-high interrupt and so cannot be used with the current code. So replace IRQF_TRIGGER_LOW with IRQF_TRIGGER_NONE. Also IRQF_ONESHOT is not needed - it is used for threaded interrupt handlers, and this driver does not used a threaded interrupt handler. So remove that setting. Signed-off-by: NeilBrown Reviewed-by: Chaotian Jing Signed-off-by: Ulf Hansson commit 43d8dabb4074cf7f3b1404bfbaeba5aa6f3e5cfc Author: Raul E Rangel Date: Thu May 2 13:07:14 2019 -0600 mmc: core: Fix tag set memory leak The tag set is allocated in mmc_init_queue but never freed. This results in a memory leak. This change makes sure we free the tag set when the queue is also freed. Signed-off-by: Raul E Rangel Reviewed-by: Jens Axboe Acked-by: Adrian Hunter Fixes: 81196976ed94 ("mmc: block: Add blk-mq support") Cc: stable@vger.kernel.org Signed-off-by: Ulf Hansson commit e57112e35c60a847914c75e5163db0f4ba078091 Author: Fabien Parent Date: Sat Mar 23 22:15:56 2019 +0100 dt-bindings: mmc: Add support for MT8516 to mtk-sd Add binding documentation of mtk-sd for MT8516 SoCs. Signed-off-by: Fabien Parent Signed-off-by: Ulf Hansson commit 8520ce1e17799b220ff421d4f39438c9c572ade3 Author: Ludovic Barre Date: Fri Apr 26 09:46:35 2019 +0200 mmc: mmci: Prevent polling for busy detection in IRQ context The IRQ handler, mmci_irq(), loops until all status bits have been cleared. However, the status bit signaling busy in variant->busy_detect_flag, may be set even if busy detection isn't monitored for the current request. This may be the case for the CMD11 when switching the I/O voltage, which leads to that mmci_irq() busy loops in IRQ context. Fix this problem, by clearing the status bit for busy, before continuing to validate the condition for the loop. This is safe, because the busy status detection has already been taken care of by mmci_cmd_irq(). Signed-off-by: Ludovic Barre Signed-off-by: Ulf Hansson commit 812513c7b18c7de825da3d4a7501329925b4ec1b Author: Ludovic Barre Date: Fri Apr 26 09:46:34 2019 +0200 mmc: mmci: Cleanup mmci_cmd_irq() for busy detect Let's cleanup the mmci_cmd_irq() a bit, to make the busy detect code more clear. Signed-off-by: Ludovic Barre Signed-off-by: Ulf Hansson commit 7a019f9b432b371156989be49db43f86aefdf5d3 Author: Gustavo A. R. Silva Date: Wed May 1 15:36:21 2019 -0500 mmc: usdhi6rol0: mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warnings: In file included from drivers/mmc/host/usdhi6rol0.c:9: drivers/mmc/host/usdhi6rol0.c: In function ‘usdhi6_timeout_work’: ./include/linux/device.h:1483:2: warning: this statement may fall through [-Wimplicit-fallthrough=] _dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/mmc/host/usdhi6rol0.c:1689:3: note: in expansion of macro ‘dev_err’ dev_err(mmc_dev(host->mmc), "Invalid state %u\n", host->wait); ^~~~~~~ drivers/mmc/host/usdhi6rol0.c:1691:2: note: here case USDHI6_WAIT_FOR_CMD: ^~~~ drivers/mmc/host/usdhi6rol0.c:1711:3: warning: this statement may fall through [-Wimplicit-fallthrough=] usdhi6_sg_unmap(host, true); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/mmc/host/usdhi6rol0.c:1716:2: note: here case USDHI6_WAIT_FOR_DATA_END: ^~~~ CC [M] drivers/isdn/hisax/hisax_isac.o drivers/mmc/host/usdhi6rol0.c: In function ‘usdhi6_stop_cmd’: drivers/mmc/host/usdhi6rol0.c:1338:6: warning: this statement may fall through [-Wimplicit-fallthrough=] if (mrq->stop->opcode == MMC_STOP_TRANSMISSION) { ^ drivers/mmc/host/usdhi6rol0.c:1343:2: note: here default: ^~~~~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Ulf Hansson commit 9e4be8d03f50d1b25c38e2b59e73b194c130df7d Author: Raul E Rangel Date: Mon Apr 29 11:32:39 2019 -0600 mmc: core: Verify SD bus width The SD Physical Layer Spec says the following: Since the SD Memory Card shall support at least the two bus modes 1-bit or 4-bit width, then any SD Card shall set at least bits 0 and 2 (SD_BUS_WIDTH="0101"). This change verifies the card has specified a bus width. AMD SDHC Device 7806 can get into a bad state after a card disconnect where anything transferred via the DATA lines will always result in a zero filled buffer. Currently the driver will continue without error if the HC is in this condition. A block device will be created, but reading from it will result in a zero buffer. This makes it seem like the SD device has been erased, when in actuality the data is never getting copied from the DATA lines to the data buffer. SCR is the first command in the SD initialization sequence that uses the DATA lines. By checking that the response was invalid, we can abort mounting the card. Reviewed-by: Avri Altman Signed-off-by: Raul E Rangel Signed-off-by: Ulf Hansson commit 2eaf5a533afd92709c8df335552b28f9fcd75336 Author: BOUGH CHEN Date: Mon Apr 29 08:55:43 2019 +0000 mmc: sdhci-esdhc-imx: Add HS400 support for iMX7ULP Add HS400 support for iMX7ULP B0. According to IC suggest, need to clear the STROBE_DLL_CTRL_RESET before any setting of STROBE_DLL_CTRL register. USDHC has register bits(bit[27~20] of register STROBE_DLL_CTRL) for slave sel value. If this register bits value is 0, it needs 256 ref_clk cycles to update slave sel value. IC suggest to set bit[27~20] to 0x4, it only need 4 ref_clk cycle to update slave sel value. This will short the lock time of slave. i.MX7ULP B0 will need more time to lock the REF and SLV, so change to add 5us delay. Signed-off-by: Haibo Chen Reviewed-by: Dong Aisheng Acked-by: Adrian Hunter Signed-off-by: Ulf Hansson commit 6be6a8de1b55e719e3f95894910743719065d6a1 Author: Wei Yongjun Date: Sat May 4 07:04:30 2019 +0000 ocxl: Fix return value check in afu_ioctl() In case of error, the function eventfd_ctx_fdget() returns ERR_PTR() and never returns NULL. The NULL test in the return value check should be replaced with IS_ERR(). This issue was detected by using the Coccinelle software. Fixes: 060146614643 ("ocxl: move event_fd handling to frontend") Signed-off-by: Wei Yongjun Acked-by: Alastair D'Silva Acked-by: Andrew Donnellan Signed-off-by: Michael Ellerman commit 67d53f30e23ec66aa7bbdd1592d5e64d46876190 Author: Christophe Leroy Date: Mon May 6 08:10:43 2019 +0000 powerpc/mm: fix section mismatch for setup_kup() commit b28c97505eb1 ("powerpc/64: Setup KUP on secondary CPUs") moved setup_kup() out of the __init section. As stated in that commit, "this is only for 64-bit". But this function is also used on PPC32, where the two functions called by setup_kup() are in the __init section, so setup_kup() has to either be kept in the __init section on PPC32 or marked __ref. This patch marks it __ref, it fixes the below build warnings. MODPOST vmlinux.o WARNING: vmlinux.o(.text+0x169ec): Section mismatch in reference from the function setup_kup() to the function .init.text:setup_kuep() The function setup_kup() references the function __init setup_kuep(). This is often because setup_kup lacks a __init annotation or the annotation of setup_kuep is wrong. WARNING: vmlinux.o(.text+0x16a04): Section mismatch in reference from the function setup_kup() to the function .init.text:setup_kuap() The function setup_kup() references the function __init setup_kuap(). This is often because setup_kup lacks a __init annotation or the annotation of setup_kuap is wrong. Fixes: b28c97505eb1 ("powerpc/64: Setup KUP on secondary CPUs") Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit c4e31847a5490d52ddd44440a524e8355be11ec1 Author: Christophe Leroy Date: Mon May 6 06:47:55 2019 +0000 powerpc/mm: fix redundant inclusion of pgtable-frag.o in Makefile The patch identified below added pgtable-frag.o to obj-y but some merge witchery kept it also for obj-CONFIG_PPC_BOOK3S_64 This patch clears the duplication. Fixes: 737b434d3d55 ("powerpc/mm: convert Book3E 64 to pte_fragment") Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 471e475c69a1689e059b5e57e893a7da75d2831a Author: Christophe Leroy Date: Mon May 6 06:21:01 2019 +0000 powerpc/mm: Fix makefile for KASAN In commit 17312f258cf6 ("powerpc/mm: Move book3s32 specifics in subdirectory mm/book3s64"), ppc_mmu_32.c was moved and renamed. This patch fixes Makefiles to disable KASAN instrumentation on the new name and location. Fixes: f072015c7b74 ("powerpc: disable KASAN instrumentation on early/critical files.") Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 305d60012304684bd59ea1f67703e51662e4906a Author: Christophe Leroy Date: Mon May 6 06:21:00 2019 +0000 powerpc/kasan: add missing/lost Makefile For unknown reason (aka. mpe is a doofus), the new Makefile added via the KASAN support patch didn't land into arch/powerpc/mm/kasan/ This patch restores it. Fixes: 2edb16efc899 ("powerpc/32: Add KASAN support") Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit fb4e0592654adb31bc6f3a738d6499b816a655d6 Merge: 471ba0e686cb 16e32c3cde77 Author: Thomas Gleixner Date: Mon May 6 12:04:12 2019 +0200 Merge tag 'irqchip-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms into irq/core Pull irqchip updates from Marc Zyngier - The huge (and terrifying) TI INTR/INTA set of drivers - Rewrite of the stm32mp1-exti driver as a platform driver - Update the IOMMU MSI mapping API to be RT friendly - A number of cleanups and other low impact fixes commit 1c4989b000aeacd3365aa49028612e043b15a506 Author: BOUGH CHEN Date: Mon Apr 29 08:55:37 2019 +0000 mmc: sdhci-esdhc-imx: add pm_qos to interact with cpuidle On some SoCs such as i.MX7ULP, there is no busfreq driver, but cpuidle has some levels which may disable system/bus clocks, so need to add pm_qos to prevent cpuidle from entering low level idles and make sure system/bus clocks are enabled when usdhc is active. Signed-off-by: Anson Huang Signed-off-by: Haibo Chen Reviewed-by: Dong Aisheng Acked-by: Adrian Hunter Signed-off-by: Ulf Hansson commit d3db80ca5744b5635554dd6171ecb8f3c3a5fd71 Author: BOUGH CHEN Date: Mon Apr 29 08:55:32 2019 +0000 dt-bindings: mmc: fsl-imx-esdhc: add imx7ulp compatible string Add imx7ulp compatible string. Signed-off-by: Haibo Chen Reviewed-by: Dong Aisheng Reviewed-by: Rob Herring Signed-off-by: Ulf Hansson commit f50b7ac5e4ed33f5d2095bfecf48e0671289d188 Author: Jerome Brunet Date: Tue Apr 23 11:02:35 2019 +0200 mmc: meson-gx: add signal resampling tuning Use signal resampling tuning for the UHS and HS200 modes. Instead of trying to get the *best* resampling setting with complex window calculation, we just stop on the first working setting. If the tuning setting later proves unstable, we will just continue the tuning where we left it. Signed-off-by: Jerome Brunet Tested-by: Martin Blumenstingl Reviewed-by: Kevin Hilman Signed-off-by: Ulf Hansson commit 5e6f75f42393d1619ca426a4909df963cc814fbc Author: Jerome Brunet Date: Tue Apr 23 11:02:34 2019 +0200 mmc: meson-gx: remove Rx phase tuning This remove all the code related to phase settings. Using the Rx phase for tuning has not been reliable. We had several issues over the past months, on both v2 and v3 mmc chips After discussing the issue matter with Amlogic, They suggested to set a phase shift of 180 between Core and Tx and use signal resampling for the tuning. Since we won't be playing with the phase anymore, let's remove all the clock code related to it and set the appropriate value on init. Signed-off-by: Jerome Brunet Tested-by: Martin Blumenstingl Reviewed-by: Kevin Hilman Signed-off-by: Ulf Hansson commit dc38ac8141a664f4cc96306e6de85f68bbee92b9 Author: Jerome Brunet Date: Tue Apr 23 11:02:33 2019 +0200 mmc: meson-gx: avoid clock glitch when switching to DDR modes Activating DDR in the Amlogic mmc controller, among other things, will divide the output clock by 2. So by activating it with clock on, we are creating a glitch on the output. Instead, let's deal with DDR when the clock output is off, when setting the clock. Signed-off-by: Jerome Brunet Tested-by: Martin Blumenstingl Reviewed-by: Kevin Hilman Signed-off-by: Ulf Hansson commit d5f758f2df8015b8dcf47b6403cc192e4cef734d Author: Jerome Brunet Date: Tue Apr 23 11:02:32 2019 +0200 mmc: meson-gx: disable HS400 At the moment, all our attempts to enable HS400 on Amlogic chipsets have been unsuccessful or unreliable. Until we can figure out how to enable this mode safely and reliably, let's force it off. Signed-off-by: Jerome Brunet Acked-by: Martin Blumenstingl Reviewed-by: Kevin Hilman Signed-off-by: Ulf Hansson commit eb4d811277465784e2d25d74c19183295d4499ab Author: Jerome Brunet Date: Tue Apr 23 11:02:31 2019 +0200 mmc: meson-gx: correct irq flag There is no reason for another device to request the MMC irq. It should only be used the MMC device, so remove IRQ_SHARED and replace by IRQ_ONESHOT as we don't the irq to fire again until the irq thread is done Signed-off-by: Jerome Brunet Reviewed-by: Martin Blumenstingl Reviewed-by: Kevin Hilman Signed-off-by: Ulf Hansson commit 9c5fdb07a28d730d4907d48905f06680691851e8 Author: Jerome Brunet Date: Tue Apr 23 11:02:30 2019 +0200 mmc: meson-gx: ack only raised irq This is merely a clean up. It makes sense to only ack raised irqs instead of acking everything all the time. Signed-off-by: Jerome Brunet Acked-by: Martin Blumenstingl Reviewed-by: Kevin Hilman Signed-off-by: Ulf Hansson commit 98849da63fffdc010dca6e6f6785c2e2ff34e807 Author: Jerome Brunet Date: Tue Apr 23 11:02:29 2019 +0200 mmc: meson-gx: remove open coded read with timeout There is already a function available to poll a register until a condition is met. Let's use it instead of open coding it. Reviewed-by: Martin Blumenstingl Signed-off-by: Jerome Brunet Reviewed-by: Kevin Hilman Signed-off-by: Ulf Hansson commit 7fc13b879fdd4fec75ffe6cd8770d512c3d6420f Author: Kefeng Wang Date: Tue Apr 23 15:50:12 2019 +0800 mmc: omap_hsmmc: Use dev_get_drvdata() Using dev_get_drvdata directly. Signed-off-by: Kefeng Wang Signed-off-by: Ulf Hansson commit c671b6dede27f8a73b0f3554630ba0ed436f357d Author: Daniel Drake Date: Mon Apr 29 13:14:26 2019 +0800 mmc: alcor: work with multiple-entry sglists DMA on this hardware is limited to dealing with a 4096 bytes at a time. Previously, the driver was set up accordingly to request single-page DMA buffers, however that had the effect of generating a large number of small MMC requests for data I/O. Improve the driver to accept multi-entry scatter-gather lists. The size of each entry is already capped to 4096 bytes (AU6601_MAX_DMA_BLOCK_SIZE), matching the hardware requirements. Existing driver code already iterates through remaining sglist entries after each DMA transfer is complete. Also add some comments to help clarify the situation, and clear up some of the confusion I had regarding DMA vs PIO. Testing with dd, this increases write performance from 2mb/sec to 10mb/sec, and increases read performance from 4mb/sec to 14mb/sec. Signed-off-by: Daniel Drake Link: http://lkml.kernel.org/r/CAD8Lp47JYdZzbV9F+asNwvSfLF_po_J7ir6R_Vb-Dab21_=Krw@mail.gmail.com Signed-off-by: Ulf Hansson commit f19337d55fac5db6d703905077c5e251c87c37d3 Author: Daniel Drake Date: Mon Apr 29 13:14:25 2019 +0800 Revert "mmc: alcor: enable DMA transfer of large buffers" This reverts commit 57ebb96c293da9f0ec56aba13c5541269a5c10b1. Usage of the DMA page iterator was problematic here because we were not considering offset & length of entries in the scatterlist. Also, after further discussion, the suggested revised approach is much more similar to the driver implementation before this commit was applied, so revert it. Signed-off-by: Daniel Drake Signed-off-by: Ulf Hansson commit e69ec21eff32693fd6815277e96479753ee39ad2 Author: YueHaibing Date: Thu Apr 25 02:03:32 2019 +0000 memstick: tifm: remove set but not used variable 'data' Fixes gcc '-Wunused-but-set-variable' warning: drivers/memstick/host/tifm_ms.c: In function 'tifm_ms_issue_cmd': drivers/memstick/host/tifm_ms.c:259:17: warning: variable 'data' set but not used [-Wunused-but-set-variable] It's not used any more since commit 92b22d935fed ("tifm: fix the MemoryStick host fifo handling code") Signed-off-by: YueHaibing Signed-off-by: Ulf Hansson commit 8e1943af2986db42bee2b8dddf49a36cdb2e9219 Author: Pan Bian Date: Wed Apr 17 16:28:37 2019 +0800 mmc: core: fix possible use after free of host In the function mmc_alloc_host, the function put_device is called to release allocated resources when mmc_gpio_alloc fails. Finally, the function pointed by host->class_dev.class->dev_release (i.e., mmc_host_classdev_release) is used to release resources including the host structure. However, after put_device, host is used and released again. Resulting in a use-after-free bug. Fixes: 1ed217194488 ("mmc: core: fix error path in mmc_host_alloc") Signed-off-by: Pan Bian Signed-off-by: Ulf Hansson commit a3c7cd0cdf1107f891aff847ad481e34df727055 Author: Linus Lüssing Date: Wed Apr 24 03:19:14 2019 +0200 batman-adv: mcast: fix multicast tt/tvlv worker locking Syzbot has reported some issues with the locking assumptions made for the multicast tt/tvlv worker: It was able to trigger the WARN_ON() in batadv_mcast_mla_tt_retract() and batadv_mcast_mla_tt_add(). While hard/not reproduceable for us so far it seems that the delayed_work_pending() we use might not be quite safe from reordering. Therefore this patch adds an explicit, new spinlock to protect the update of the mla_list and flags in bat_priv and then removes the WARN_ON(delayed_work_pending()). Reported-by: syzbot+83f2d54ec6b7e417e13f@syzkaller.appspotmail.com Reported-by: syzbot+050927a651272b145a5d@syzkaller.appspotmail.com Reported-by: syzbot+979ffc89b87309b1b94b@syzkaller.appspotmail.com Reported-by: syzbot+f9f3f388440283da2965@syzkaller.appspotmail.com Fixes: cbebd363b2e9 ("batman-adv: Use own timer for multicast TT and TVLV updates") Signed-off-by: Linus Lüssing Signed-off-by: Sven Eckelmann Signed-off-by: Simon Wunderlich commit bdc76fd299600736e832f1525f4f23dd210b97cb Author: Simon Wunderlich Date: Sun Apr 7 09:00:57 2019 +0200 batman-adv: Start new development cycle Signed-off-by: Simon Wunderlich commit d24ed99b3b270c6de8f47c25d709b5f6ef7d3807 Author: Björn Töpel Date: Mon May 6 11:24:43 2019 +0200 libbpf: remove unnecessary cast-to-void The patches with fixes tags added a cast-to-void in the places when the return value of a function was ignored. This is not common practice in the kernel, and is therefore removed in this patch. Reported-by: Daniel Borkmann Fixes: 5750902a6e9b ("libbpf: proper XSKMAP cleanup") Fixes: 0e6741f09297 ("libbpf: fix invalid munmap call") Signed-off-by: Björn Töpel Signed-off-by: Daniel Borkmann commit fdd20ec8786ab2950439c7e78871618f7e51f18b Author: Geert Uytterhoeven Date: Mon May 6 10:46:41 2019 +0200 Documentation/features/time: Mark m68k having modern-timekeeping M68k no longer uses arch_gettimeoffset. Signed-off-by: Geert Uytterhoeven commit e07095c9bbcd296401bec8b6852d258d7c926969 Merge: 7afc53951a2b e32d93926477 f9ccd7c3a1d8 Author: Rafael J. Wysocki Date: Mon May 6 10:55:49 2019 +0200 Merge branches 'pm-devfreq' and 'pm-domains' * pm-devfreq: PM / devfreq: add tracing for scheduling work trace: events: add devfreq trace event file PM / devfreq: rk3399_dmc: Pass ODT and auto power down parameters to TF-A. PM / devfreq: rockchip-dfi: Move GRF definitions to a common place. PM / devfreq: exynos-bus: Suspend all devices on system shutdown PM / devfreq: Fix static checker warning in try_then_request_governor PM / devfreq: Restart previous governor if new governor fails to start PM / devfreq: tegra: remove unneeded variable PM / devfreq: rockchip-dfi: remove unneeded semicolon PM / devfreq: rk3399_dmc: remove unneeded semicolon PM / devfreq: consistent indentation PM / devfreq: fix missing check of return value in devfreq_add_device() PM / devfreq: fix mem leak in devfreq_add_device() PM / devfreq: Use of_node_name_eq for node name comparisons * pm-domains: PM / Domains: Allow to attach a CPU via genpd_dev_pm_attach_by_id|name() PM / Domains: Search for the CPU device outside the genpd lock PM / Domains: Drop unused in-parameter to some genpd functions PM / Domains: Use the base device for driver_deferred_probe_check_state() PM / Domains: Enable genpd_dev_pm_attach_by_id|name() for single PM domain PM / Domains: Allow OF lookup for multi PM domain case from ->attach_dev() PM / Domains: Don't kfree() the virtual device in the error path PM / Domains: remove unnecessary unlikely() commit 7afc53951a2b81601d6dcfbde8e3c946422bbbe0 Merge: 78baa1ea5880 fc1860d6b17f 4302e381a870 Author: Rafael J. Wysocki Date: Mon May 6 10:55:19 2019 +0200 Merge branches 'pm-docs' and 'pm-misc' * pm-docs: Documentation: PM: Unify copyright notices Documentation: PM: Add SPDX license tags to multiple files cpufreq: intel_pstate: Documentation: Add references sections * pm-misc: firmware/psci: add support for SYSTEM_RESET2 drivers: firmware: psci: Announce support for OS initiated suspend mode drivers: firmware: psci: Simplify error path of psci_dt_init() drivers: firmware: psci: Split psci_dt_cpu_init_idle() MAINTAINERS: Update files for PSCI drivers: firmware: psci: Move psci to separate directory commit 78baa1ea5880f2d336d2ad92724988584d2f471d Merge: 7d4a27c1c861 e94999688e3a dc351d4c5f4f Author: Rafael J. Wysocki Date: Mon May 6 10:54:43 2019 +0200 Merge branches 'pm-cpuidle' and 'pm-sleep' * pm-cpuidle: PM / Domains: Add genpd governor for CPUs cpuidle: Export the next timer expiration for CPUs PM / Domains: Add support for CPU devices to genpd PM / Domains: Add generic data pointer to struct genpd_power_state cpuidle: exynos: Unify target residency for AFTR and coupled AFTR states * pm-sleep: PM / core: Propagate dev->power.wakeup_path when no callbacks PM / core: Introduce dpm_async_fn() helper PM / core: fix kerneldoc comment for device_pm_wait_for_dev() PM / core: fix kerneldoc comment for dpm_watchdog_handler() PM / sleep: Measure the time of filesystems syncing PM / sleep: Refactor filesystems sync to reduce duplication PM / wakeup: Use pm_pr_dbg() instead of pr_debug() commit 7d4a27c1c861f9116b7acf427e3fe3260287b876 Merge: 4566e2dd4a12 4ebe36c94aed Author: Rafael J. Wysocki Date: Mon May 6 10:54:27 2019 +0200 Merge branch 'pm-cpufreq' * pm-cpufreq: (24 commits) cpufreq: Fix kobject memleak cpufreq: armada-37xx: fix frequency calculation for opp cpufreq: centrino: Fix centrino_setpolicy() kerneldoc comment cpufreq: qoriq: add support for lx2160a cpufreq: qoriq: Add ls1028a chip support cpufreq: Move ->get callback check outside of __cpufreq_get() cpufreq: Remove needless bios_limit check in show_bios_limit() drivers/cpufreq/acpi-cpufreq.c: This fixes the following checkpatch warning cpufreq: boost: Remove CONFIG_CPU_FREQ_BOOST_SW Kconfig option cpufreq: stats: Use lock by stat to replace global spin lock cpufreq: Remove cpufreq_driver check in cpufreq_boost_supported() cpufreq: maple: Remove redundant code from maple_cpufreq_init() cpufreq: ppc_cbe: fix possible object reference leak cpufreq: pmac32: fix possible object reference leak cpufreq/pasemi: fix possible object reference leak cpufreq: maple: fix possible object reference leak cpufreq: kirkwood: fix possible object reference leak cpufreq: imx6q: fix possible object reference leak cpufreq: ap806: fix possible object reference leak drivers/cpufreq: Convert some slow-path static_cpu_has() callers to boot_cpu_has() ... commit 4566e2dd4a12a0c0288e97a079dc4e1eed436800 Merge: 5a28654cc0e6 c208ac8f8f86 Author: Rafael J. Wysocki Date: Mon May 6 10:54:07 2019 +0200 Merge branch 'pm-x86' * pm-x86: x86: tsc: Rework time_cpufreq_notifier() admin-guide: pm: intel_epb: Add SPDX license tag and copyright notice PM / arch: x86: MSR_IA32_ENERGY_PERF_BIAS sysfs interface PM / arch: x86: Rework the MSR_IA32_ENERGY_PERF_BIAS handling commit 10b4768b27a0b8f9459570723ecb1809f4d707e0 Merge: 7e8e05fd0822 7fb091f806c5 Author: Rafael J. Wysocki Date: Mon May 6 10:50:21 2019 +0200 Merge branch 'acpi-doc' * acpi-doc: (25 commits) Documentation: ACPI: move video_extension.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move ssdt-overlays.txt to admin-guide/acpi and convert to reST Documentation: ACPI: move lpit.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move cppc_sysfs.txt to admin-guide/acpi and convert to reST Documentation: ACPI: move apei/einj.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move apei/output_format.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move aml-debugger.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move method-tracing.txt to firmware-guide/acpi and convert to rsST Documentation: ACPI: move debug.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move dsd/data-node-references.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move dsd/graph.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move acpi-lid.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move i2c-muxes.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move dsdt-override.txt to admin-guide/acpi and convert to reST Documentation: ACPI: move initrd_table_override.txt to admin-guide/acpi and convert to reST Documentation: ACPI: move method-customizing.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move gpio-properties.txt to firmware-guide/acpi and convert to reST Documentation: ACPI: move DSD-properties-rules.txt to firmware-guide/acpi and covert to reST Documentation: ACPI: move scan_handlers.txt to driver-api/acpi and convert to reST Documentation: ACPI: move linuxized-acpica.txt to driver-api/acpi and convert to reST ... commit 7e8e05fd0822622e243843f53dc2a3500ee5a197 Merge: 91751459ecad fe066621c796 aefa763b18a2 c8afd03486c2 13e962140be6 Author: Rafael J. Wysocki Date: Mon May 6 10:50:08 2019 +0200 Merge branches 'acpi-utils', 'acpi-video', 'acpi-soc' and 'acpi-button' * acpi-utils: gpio: merrifield: Fix build err without CONFIG_ACPI ACPI / utils: Remove deprecated function since no user left ASoC: Intel: cht_bsw_rt5672: Convert to use acpi_dev_get_first_match_dev() ASoC: Intel: cht_bsw_rt5645: Convert to use acpi_dev_get_first_match_dev() ASoC: Intel: bytcr_rt5651: Convert to use acpi_dev_get_first_match_dev() ASoC: Intel: bytcr_rt5640: Convert to use acpi_dev_get_first_match_dev() ASoC: Intel: bytcht_es8316: Convert to use acpi_dev_get_first_match_dev() ASoC: Intel: bytcht_da7213: Convert to use acpi_dev_get_first_match_dev() gpio: merrifield: Convert to use acpi_dev_get_first_match_dev() extcon: axp288: Convert to use acpi_dev_get_first_match_dev() ACPI / utils: Introduce acpi_dev_get_first_match_dev() helper * acpi-video: ACPI: video: Use vendor backlight on Sony VPCEH3U1E * acpi-soc: ACPI / LPSS: Use acpi_lpss_* instead of acpi_subsys_* functions for hibernate * acpi-button: ACPI: button: reinitialize button state upon resume commit 91751459ecad7c12ef20e839fcba2ee573c0c5d5 Merge: 317e2cac4551 5ceb5f0522bd 2e018c59fe8f b0f65b917987 fbc9418f099d Author: Rafael J. Wysocki Date: Mon May 6 10:49:39 2019 +0200 Merge branches 'acpi-scan', 'acpi-tables', 'acpi-misc' and 'acpi-pm' * acpi-scan: ACPI / scan: Add labels for PNP button devices ACPI / scan: Simplify acpi_bus_extract_wakeup_device_power_package() * acpi-tables: ACPI / tables: Clean up whitespace * acpi-misc: ACPI / DPTF: Use dev_get_drvdata() ACPI: event: replace strcpy() by strscpy() ACPI: Fix comment typos * acpi-pm: ACPI: PM: Print debug messages when enabling GPEs for wakeup commit 317e2cac4551879f14eb383fd4e5469f29231a0d Merge: 2c2a2fb1e2a9 f456277ee15f Author: Rafael J. Wysocki Date: Mon May 6 10:49:01 2019 +0200 Merge branch 'acpica' * acpica: ACPICA: Update version to 20190405 ACPICA: Namespace: add check to avoid null pointer dereference ACPICA: Update version to 20190329 ACPICA: utilities: fix spelling of PCC to platform_comm_channel ACPICA: Rename nameseg length macro/define for clarity ACPICA: Rename nameseg compare macro for clarity ACPICA: Rename nameseg copy macro for clarity commit 0f46c78391e1348fe45af86a0cd52795726695af Merge: 35e1547511fc d75f773c86a2 Author: Petr Mladek Date: Mon May 6 10:33:10 2019 +0200 Merge branch 'for-5.2-pf-removal' into for-linus commit 35e1547511fcb035437b4527184458adfb0e8f43 Merge: 3ec25826ae33 ce9d3eceb7ff Author: Petr Mladek Date: Mon May 6 10:32:45 2019 +0200 Merge branch 'for-5.2-vsprintf-hardening' into for-linus commit 581b31c36cfc58df603c415ab6f3c795611c0ca1 Author: Andrii Nakryiko Date: Sun May 5 17:10:33 2019 -0700 kbuild: tolerate missing pahole when generating BTF When BTF generation is enabled through CONFIG_DEBUG_INFO_BTF, scripts/link-vmlinux.sh detects if pahole version is too old and gracefully continues build process, skipping BTF generation build step. But if pahole is not available, build will still fail. This patch adds check for whether pahole exists at all and bails out gracefully, if not. Cc: Alexei Starovoitov Reported-by: Yonghong Song Fixes: e83b9f55448a ("kbuild: add ability to generate BTF type info for vmlinux") Signed-off-by: Andrii Nakryiko Signed-off-by: Daniel Borkmann commit e43f53c22a937d024f070907d02539e413f20c15 Author: Mika Westerberg Date: Tue Apr 16 12:11:10 2019 +0300 spi-nor: intel-spi: Add support for Intel Comet Lake SPI serial flash Intel Comet Lake has the same SPI serial flash controller as Ice Lake. Add Comet Lake PCI ID to the driver list of supported devices. Signed-off-by: Mika Westerberg Reviewed-by: Tudor Ambarus Signed-off-by: Tudor Ambarus commit d9c9ce34ed5c892323cbf5b4f9a4c498e036316a Author: Sebastian Andrzej Siewior Date: Thu May 2 19:11:39 2019 +0200 x86/fpu: Fault-in user stack if copy_fpstate_to_sigframe() fails In the compacted form, XSAVES may save only the XMM+SSE state but skip FP (x87 state). This is denoted by header->xfeatures = 6. The fastpath (copy_fpregs_to_sigframe()) does that but _also_ initialises the FP state (cwd to 0x37f, mxcsr as we do, remaining fields to 0). The slowpath (copy_xstate_to_user()) leaves most of the FP state untouched. Only mxcsr and mxcsr_flags are set due to xfeatures_mxcsr_quirk(). Now that XFEATURE_MASK_FP is set unconditionally, see 04944b793e18 ("x86: xsave: set FP, SSE bits in the xsave header in the user sigcontext"), on return from the signal, random garbage is loaded as the FP state. Instead of utilizing copy_xstate_to_user(), fault-in the user memory and retry the fast path. Ideally, the fast path succeeds on the second attempt but may be retried again if the memory is swapped out due to memory pressure. If the user memory can not be faulted-in then get_user_pages() returns an error so we don't loop forever. Fault in memory via get_user_pages_unlocked() so copy_fpregs_to_sigframe() succeeds without a fault. Fixes: 69277c98f5eef ("x86/fpu: Always store the registers in copy_fpstate_to_sigframe()") Reported-by: Kurt Kanzenbach Suggested-by: Dave Hansen Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: "linux-mm@kvack.org" Cc: Qian Cai Cc: Rik van Riel Cc: Thomas Gleixner Cc: x86-ml Link: https://lkml.kernel.org/r/20190502171139.mqtegctsg35cir2e@linutronix.de commit 476c7e1d34f2a03b1aa5a924c50703053fe5f77c Author: Dan Carpenter Date: Tue Apr 23 13:40:20 2019 +0300 i3c: Fix a shift wrap bug in i3c_bus_set_addr_slot_status() The problem here is that addr can be I3C_BROADCAST_ADDR (126). That means we're shifting by (126 * 2) % 64 which is 60. The I3C_ADDR_SLOT_STATUS_MASK is an enum which is an unsigned int in GCC so shifts greater than 31 are undefined. Fixes: 3a379bbcea0a ("i3c: Add core I3C infrastructure") Cc: Signed-off-by: Dan Carpenter Signed-off-by: Boris Brezillon commit 54516da1ea859dd4f56ebba2e483d2df9d7c8a32 Merge: 3a9723647266 0ebacd12a154 Author: David S. Miller Date: Sun May 5 21:58:36 2019 -0700 Merge branch 'r8169-replace-some-magic-with-more-speaking-functions' Heiner Kallweit says: ==================== r8169: replace some magic with more speaking functions Based on info from Realtek replace some magic with speaking functions even though the exact meaning of certain values isn't known. ==================== Signed-off-by: David S. Miller commit 0ebacd12a154f8b396161f643ac42b4e77b9ffed Author: Heiner Kallweit Date: Sun May 5 12:34:25 2019 +0200 r8169: add rtl8168g_set_pause_thresholds Based on info from Realtek add a function for defining the thresholds controlling ethernet flow control. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 6b1bd242ca6322f45c3ba5cbd4f3ce7d165f41b4 Author: Heiner Kallweit Date: Sun May 5 12:33:40 2019 +0200 r8169: add rtl_set_fifo_size Based on info from Realtek replace FIFO size config magic with a function. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 3a9723647266aef912e725808c77e9eb5282adf0 Merge: b362487a3b35 ad11340994d5 Author: David S. Miller Date: Sun May 5 21:56:57 2019 -0700 Merge branch 'mlxsw-spectrum-Implement-loopback-ethtool-feature' Ido Schimmel says: ==================== mlxsw: spectrum: Implement loopback ethtool feature This patchset from Jiri allows users to enable loopback feature for individual ports using ethtool. The loopback feature is useful for testing purposes and will also be used by upcoming patchsets to enable the monitoring of buffer drops. Patch #1 adds the relevant device register. Patch #2 Implements support in the driver. Patch #3 adds a selftest. ==================== Signed-off-by: David S. Miller commit ad11340994d55b103d2e4853d32782fd10cf687f Author: Jiri Pirko Date: Sun May 5 09:48:07 2019 +0300 selftests: Add loopback test Add selftest for loopback feature Signed-off-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit 8e44c0ce599191e90246ba9c199ba921815f8ecb Author: Jiri Pirko Date: Sun May 5 09:48:06 2019 +0300 mlxsw: spectrum: Implement loopback ethtool feature Allow user to enable loopback feature for individual ports using ethtool. Signed-off-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit a0c25387eb2226e20c32f76ce3014173912e7977 Author: Jiri Pirko Date: Sun May 5 09:48:05 2019 +0300 mlxsw: reg: Add Port Physical Loopback Register The PPLR register allows configuration of the port's loopback mode. Signed-off-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit b362487a3b3524601a60518ae76ffd02a540994b Author: Cong Wang Date: Sat May 4 11:43:42 2019 -0700 sch_htb: redefine htb qdisc overlimits In commit 3c75f6ee139d ("net_sched: sch_htb: add per class overlimits counter") we added an overlimits counter for each HTB class which could properly reflect how many times we use up all the bandwidth on each class. However, the overlimits counter in HTB qdisc does not, it is way bigger than the sum of each HTB class. In fact, this qdisc overlimits counter increases when we have no skb to dequeue, which happens more often than we run out of bandwidth. It makes more sense to make this qdisc overlimits counter just be a sum of each HTB class, in case people still get confused. I have verified this patch with one single HTB class, where HTB qdisc counters now always match HTB class counters as expected. Eric suggested we could fold this field into 'direct_pkts' as we only use its 32bit on 64bit CPU, this saves one cache line. Cc: Eric Dumazet Signed-off-by: Cong Wang Reviewed-by: Eric Dumazet Signed-off-by: David S. Miller commit f452825d6231f0fa44420a24123fc87cfb8b3449 Author: Heiner Kallweit Date: Sat May 4 17:13:09 2019 +0200 r8169: move EEE LED config to rtl8168_config_eee_mac Move adjusting the EEE LED frequency to rtl8168_config_eee_mac. Exclude RTL8411 (version 38) like in the existing code. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 1791ad50c8d7fd8a8009a2a8ea2650bf744625ec Author: Heiner Kallweit Date: Sat May 4 16:57:49 2019 +0200 r8169: simplify rtl_writephy_batch and rtl_ephy_init Make both functions macros to allow omitting the ARRAY_SIZE(x) argument. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 0e5ef5a22ab77f881803d11b855b5e2dabd38278 Merge: e7ba0fad9c53 0a58d471de3a Author: David S. Miller Date: Sun May 5 21:52:42 2019 -0700 Merge branch 'Traffic-support-for-SJA1105-DSA-driver' Vladimir Oltean says: ==================== Traffic support for SJA1105 DSA driver This patch set is a continuation of the "NXP SJA1105 DSA driver" v3 series, which was split in multiple pieces for easier review. Supporting a fully-featured (traffic-capable) driver for this switch requires some rework in DSA and also leaves behind a more generic infrastructure for other dumb switches that rely on 802.1Q pseudo-switch tagging for port separation. Among the DSA changes required are: * Generic xmit and rcv functions for pushing/popping 802.1Q tags on skb's. These are modeled as a tagging protocol of its own but which must be customized by drivers to fit their own hardware possibilities. * Permitting the .setup callback to invoke switchdev operations that will loop back into the driver through the switchdev notifier chain. The SJA1105 driver then proceeds to extend this 8021q switch tagging protocol while adding its own (tag_sja1105). This is done because the driver actually implements a "dual tagger": * For normal traffic it uses 802.1Q tags * For management (multicast DMAC) frames the switch has native support for recognizing and annotating these with source port and switch id information. Because this is a "dual tagger", decoding of management frames should still function when regular traffic can't (under a bridge with VLAN filtering). There was intervention in the DSA receive hotpath, where a new filtering function called from eth_type_trans() is needed. This is useful in the general sense for switches that might actually have some limited means of source port decoding, such as only for management traffic, but not for everything. In order for the 802.1Q tagging protocol (which cannot be enabled under all conditions, unlike the management traffic decoding) to not be an all-or-nothing choice, the filtering function matches everything that can be decoded, and everything else is left to pass to the master netdevice. Lastly, DSA core support was added for drivers to request skb deferral. SJA1105 needs this for SPI intervention during transmission of link-local traffic. This is not done from within the tagger. Some patches were carried over unchanged from the previous patchset (01/09). Others were slightly reworked while adapting to the recent changes in "Make DSA tag drivers kernel modules" (02/09). The introduction of some structures (DSA_SKB_CB, dp->priv) may seem a little premature at this point and the new structures under-utilized. The reason is that traffic support has been rewritten with PTP timestamping in mind, and then I removed the timestamping code from the current submission (1. it is a different topic, 2. it does not work very well yet). On demand I can provide the timestamping patchset as a RFC though. "NXP SJA1105 DSA driver" v3 patchset can be found at: https://lkml.org/lkml/2019/4/12/978 v1 patchset can be found at: https://lkml.org/lkml/2019/5/3/877 Changes in v2: * Made the deferred xmit workqueue also be drained on the netdev suspend callback, not just on ndo_stop. * Added clarification about how other netdevices may be bridged with the switch ports. v2 patchset can be found at: https://www.spinics.net/lists/netdev/msg568818.html Changes in v3: * Exported the dsa_port_vid_add and dsa_port_vid_del symbols to fix an error reported by the kbuild test robot * Fixed the following checkpatch warnings in 05/10: Macro argument reuse 'skb' - possible side-effects? Macro argument reuse 'clone' - possible side-effects? * Added a commit description to the documentation patch (10/10) ==================== Signed-off-by: David S. Miller commit 0a58d471de3a34e435c5358cf533e74905eb0e7a Author: Vladimir Oltean Date: Sun May 5 13:19:29 2019 +0300 Documentation: net: dsa: sja1105: Add info about supported traffic modes This adds a table which illustrates what combinations of management / regular traffic work depending on the state the switch ports are in. Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 640f763f98c2f866a3adc93f20fb36d6d0b4b5b1 Author: Vladimir Oltean Date: Sun May 5 13:19:28 2019 +0300 net: dsa: sja1105: Add support for Spanning Tree Protocol While not explicitly documented as supported in UM10944, compliance with the STP states can be obtained by manipulating 3 settings at the (per-port) MAC config level: dynamic learning, inhibiting reception of regular traffic, and inhibiting transmission of regular traffic. In all these modes, transmission and reception of special BPDU frames from the stack is still enabled (not inhibited by the MAC-level settings). On ingress, BPDUs are classified by the MAC filter as link-local (01-80-C2-00-00-00) and forwarded to the CPU port. This mechanism works under all conditions (even without the custom 802.1Q tagging) because the switch hardware inserts the source port and switch ID into bytes 4 and 5 of the MAC-filtered frames. Then the DSA .rcv handler needs to put back zeroes into the MAC address after decoding the source port information. On egress, BPDUs are transmitted using management routes from the xmit worker thread. Again this does not require switch tagging, as the switch port is programmed through SPI to hold a temporary (single-fire) route for a frame with the programmed destination MAC (01-80-C2-00-00-00). STP is activated using the following commands and was tested by connecting two front-panel ports together and noticing that switching loops were prevented (one port remains in the blocking state): $ ip link add name br0 type bridge stp_state 1 && ip link set br0 up $ for eth in $(ls /sys/devices/platform/soc/2100000.spi/spi_master/spi0/spi0.1/net/); do ip link set ${eth} master br0 && ip link set ${eth} up; done Signed-off-by: Vladimir Oltean Reviewed-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 227d07a07ef126272ea2eed97fd136cd7a803d81 Author: Vladimir Oltean Date: Sun May 5 13:19:27 2019 +0300 net: dsa: sja1105: Add support for traffic through standalone ports In order to support this, we are creating a make-shift switch tag out of a VLAN trunk configured on the CPU port. Termination of normal traffic on switch ports only works when not under a vlan_filtering bridge. Termination of management (PTP, BPDU) traffic works under all circumstances because it uses a different tagging mechanism (incl_srcpt). We are making use of the generic CONFIG_NET_DSA_TAG_8021Q code and leveraging it from our own CONFIG_NET_DSA_TAG_SJA1105. There are two types of traffic: regular and link-local. The link-local traffic received on the CPU port is trapped from the switch's regular forwarding decisions because it matched one of the two DMAC filters for management traffic. On transmission, the switch requires special massaging for these link-local frames. Due to a weird implementation of the switching IP, by default it drops link-local frames that originate on the CPU port. It needs to be told where to forward them to, through an SPI command ("management route") that is valid for only a single frame. So when we're sending link-local traffic, we are using the dsa_defer_xmit mechanism. Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit c362beb072e14b929eb657dc174d83ccdd9b0eed Author: Vladimir Oltean Date: Sun May 5 13:19:26 2019 +0300 net: dsa: Add a private structure pointer to dsa_port This is supposed to share information between the driver and the tagger, or used by the tagger to keep some state. Its use is optional. Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli Reviewed-by: Vivien Didelot Signed-off-by: David S. Miller commit 97a69a0dea9a048c6769249f1552de5f56731524 Author: Vladimir Oltean Date: Sun May 5 13:19:25 2019 +0300 net: dsa: Add support for deferred xmit Some hardware needs to take work to get convinced to receive frames on the CPU port (such as the sja1105 which takes temporary L2 forwarding rules over SPI that last for a single frame). Such work needs a sleepable context, and because the regular .ndo_start_xmit is atomic, this cannot be done in the tagger. So introduce a generic DSA mechanism that sets up a transmit skb queue and a workqueue for deferred transmission. The new driver callback (.port_deferred_xmit) is in dsa_switch and not in the tagger because the operations that require sleeping typically also involve interacting with the hardware, and not simply skb manipulations. Therefore having it there simplifies the structure a bit and makes it unnecessary to export functions from the driver to the tagger. The driver is responsible of calling dsa_enqueue_skb which transfers it to the master netdevice. This is so that it has a chance of performing some more work afterwards, such as cleanup or TX timestamping. To tell DSA that skb xmit deferral is required, I have thought about changing the return type of the tagger .xmit from struct sk_buff * into a enum dsa_tx_t that could potentially encode a DSA_XMIT_DEFER value. But the trailer tagger is reallocating every skb on xmit and therefore making a valid use of the pointer return value. So instead of reworking the API in complicated ways, right now a boolean property in the newly introduced DSA_SKB_CB is set. Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit b68b0dd0fb2d91056d5241a19960cf47d4a80f05 Author: Vladimir Oltean Date: Sun May 5 13:19:24 2019 +0300 net: dsa: Keep private info in the skb->cb Map a DSA structure over the 48-byte control block that will hold skb info on transmit and receive. This is only for use within the DSA processing layer (e.g. communicating between DSA core and tagger) and not for passing info around with other layers such as the master net device. Also add a DSA_SKB_CB_PRIV() macro which retrieves a pointer to the space up to 48 bytes that the DSA structure does not use. This space can be used for drivers to add their own private info. One use is for the PTP timestamping code path. When cloning a skb, annotate the original with a pointer to the clone, which the driver can then find easily and place the timestamp to. This avoids the need of a separate queue to hold clones and a way to match an original to a cloned skb. Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit cc1939e4b3aaf534fb2f3706820012036825731c Author: Vladimir Oltean Date: Sun May 5 13:19:23 2019 +0300 net: dsa: Allow drivers to filter packets they can decode source port from Frames get processed by DSA and redirected to switch port net devices based on the ETH_P_XDSA multiplexed packet_type handler found by the network stack when calling eth_type_trans(). The running assumption is that once the DSA .rcv function is called, DSA is always able to decode the switch tag in order to change the skb->dev from its master. However there are tagging protocols (such as the new DSA_TAG_PROTO_SJA1105, user of DSA_TAG_PROTO_8021Q) where this assumption is not completely true, since switch tagging piggybacks on the absence of a vlan_filtering bridge. Moreover, management traffic (BPDU, PTP) for this switch doesn't rely on switch tagging, but on a different mechanism. So it would make sense to at least be able to terminate that. Having DSA receive traffic it can't decode would put it in an impossible situation: the eth_type_trans() function would invoke the DSA .rcv(), which could not change skb->dev, then eth_type_trans() would be invoked again, which again would call the DSA .rcv, and the packet would never be able to exit the DSA filter and would spiral in a loop until the whole system dies. This happens because eth_type_trans() doesn't actually look at the skb (so as to identify a potential tag) when it deems it as being ETH_P_XDSA. It just checks whether skb->dev has a DSA private pointer installed (therefore it's a DSA master) and that there exists a .rcv callback (everybody except DSA_TAG_PROTO_NONE has that). This is understandable as there are many switch tags out there, and exhaustively checking for all of them is far from ideal. The solution lies in introducing a filtering function for each tagging protocol. In the absence of a filtering function, all traffic is passed to the .rcv DSA callback. The tagging protocol should see the filtering function as a pre-validation that it can decode the incoming skb. The traffic that doesn't match the filter will bypass the DSA .rcv callback and be left on the master netdevice, which wasn't previously possible. Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit f9bbe4477c30ece44296437ee26142b42ef8070b Author: Vladimir Oltean Date: Sun May 5 13:19:22 2019 +0300 net: dsa: Optional VLAN-based port separation for switches without tagging This patch provides generic DSA code for using VLAN (802.1Q) tags for the same purpose as a dedicated switch tag for injection/extraction. It is based on the discussions and interest that has been so far expressed in https://www.spinics.net/lists/netdev/msg556125.html. Unlike all other DSA-supported tagging protocols, CONFIG_NET_DSA_TAG_8021Q does not offer a complete solution for drivers (nor can it). Instead, it provides generic code that driver can opt into calling: - dsa_8021q_xmit: Inserts a VLAN header with the specified contents. Can be called from another tagging protocol's xmit function. Currently the LAN9303 driver is inserting headers that are simply 802.1Q with custom fields, so this is an opportunity for code reuse. - dsa_8021q_rcv: Retrieves the TPID and TCI from a VLAN-tagged skb. Removing the VLAN header is left as a decision for the caller to make. - dsa_port_setup_8021q_tagging: For each user port, installs an Rx VID and a Tx VID, for proper untagged traffic identification on ingress and steering on egress. Also sets up the VLAN trunk on the upstream (CPU or DSA) port. Drivers are intentionally left to call this function explicitly, depending on the context and hardware support. The expected switch behavior and VLAN semantics should not be violated under any conditions. That is, after calling dsa_port_setup_8021q_tagging, the hardware should still pass all ingress traffic, be it tagged or untagged. For uniformity with the other tagging protocols, a module for the dsa_8021q_netdev_ops structure is registered, but the typical usage is to set up another tagging protocol which selects CONFIG_NET_DSA_TAG_8021Q, and calls the API from tag_8021q.h. Null function definitions are also provided so that a "depends on" is not forced in the Kconfig. This tagging protocol only works when switch ports are standalone, or when they are added to a VLAN-unaware bridge. It will probably remain this way for the reasons below. When added to a bridge that has vlan_filtering 1, the bridge core will install its own VLANs and reset the pvids through switchdev. For the bridge core, switchdev is a write-only pipe. All VLAN-related state is kept in the bridge core and nothing is read from DSA/switchdev or from the driver. So the bridge core will break this port separation because it will install the vlan_default_pvid into all switchdev ports. Even if we could teach the bridge driver about switchdev preference of a certain vlan_default_pvid (task difficult in itself since the current setting is per-bridge but we would need it per-port), there would still exist many other challenges. Firstly, in the DSA rcv callback, a driver would have to perform an iterative reverse lookup to find the correct switch port. That is because the port is a bridge slave, so its Rx VID (port PVID) is subject to user configuration. How would we ensure that the user doesn't reset the pvid to a different value (which would make an O(1) translation impossible), or to a non-unique value within this DSA switch tree (which would make any translation impossible)? Finally, not all switch ports are equal in DSA, and that makes it difficult for the bridge to be completely aware of this anyway. The CPU port needs to transmit tagged packets (VLAN trunk) in order for the DSA rcv code to be able to decode source information. But the bridge code has absolutely no idea which switch port is the CPU port, if nothing else then just because there is no netdevice registered by DSA for the CPU port. Also DSA does not currently allow the user to specify that they want the CPU port to do VLAN trunking anyway. VLANs are added to the CPU port using the same flags as they were added on the user port. So the VLANs installed by dsa_port_setup_8021q_tagging per driver request should remain private from the bridge's and user's perspective, and should not alter the VLAN semantics observed by the user. In the current implementation a VLAN range ending at 4095 (VLAN_N_VID) is reserved for this purpose. Each port receives a unique Rx VLAN and a unique Tx VLAN. Separate VLANs are needed for Rx and Tx because they serve different purposes: on Rx the switch must process traffic as untagged and process it with a port-based VLAN, but with care not to hinder bridging. On the other hand, the Tx VLAN is where the reachability restrictions are imposed, since by tagging frames in the xmit callback we are telling the switch onto which port to steer the frame. Some general guidance on how this support might be employed for real-life hardware (some comments made by Florian Fainelli): - If the hardware supports VLAN tag stacking, it should somehow back up its private VLAN settings when the bridge tries to override them. Then the driver could re-apply them as outer tags. Dedicating an outer tag per bridge device would allow identical inner tag VID numbers to co-exist, yet preserve broadcast domain isolation. - If the switch cannot handle VLAN tag stacking, it should disable this port separation when added as slave to a vlan_filtering bridge, in that case having reduced functionality. - Drivers for old switches that don't support the entire VLAN_N_VID range will need to rework the current range selection mechanism. Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli Reviewed-by: Vivien Didelot Signed-off-by: David S. Miller commit 146c1bed44a172d0686ad1f5427d9458b619f4d5 Author: Vladimir Oltean Date: Sun May 5 13:19:21 2019 +0300 net: dsa: Export symbols for dsa_port_vid_{add, del} This is needed so that the newly introduced tag_8021q may access these core DSA functions when built as a module. Reported-by: kbuild test robot Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit b2243b369c7862e29cc9163184fef00d0fb0842a Author: Vladimir Oltean Date: Sun May 5 13:19:20 2019 +0300 net: dsa: Call driver's setup callback after setting up its switchdev notifier This allows the driver to perform some manipulations of its own during setup, using generic switchdev calls. Having the notifiers registered at setup time is important because otherwise any switchdev transaction emitted during this time would be ignored (dispatched to an empty call chain). One current usage scenario is for the driver to request DSA to set up 802.1Q based switch tagging for its ports. There is no danger for the driver setup code to start racing now with switchdev events emitted from the network stack (such as bridge core) even if the notifier is registered earlier. This is because the network stack needs a net_device as a vehicle to perform switchdev operations, and the slave net_devices are registered later than the core driver setup anyway (ds->ops->setup in dsa_switch_setup vs dsa_port_setup). Luckily DSA doesn't need a net_device to carry out switchdev callbacks, and therefore drivers shouldn't assume either that net_devices are available at the time their switchdev callbacks get invoked. Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli Reviewed-by: Andrew Lunn Reviewed-by: Vivien Didelot - Signed-off-by: David S. Miller commit e7ba0fad9c534bb3c3a4c3ee8ec8f60b6a224161 Author: Vivien Didelot Date: Fri May 3 19:28:22 2019 -0400 net: dsa: mv88e6xxx: refine SMI support The Marvell SOHO switches have several ways to access the internal registers. One of them being the System Management Interface (SMI), using the MDC and MDIO pins, with direct and indirect variants. In preparation for adding support for other register accesses, move the SMI code into its own files. At the same time, refine the code to make it clear that the indirect variant is implemented using the direct variant accessing only two registers for command and data. Signed-off-by: Vivien Didelot Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 7e6a95d31b191d81639b089b6ff7a7995bcb4ac3 Merge: c8f8207ca631 5fb5c395e2c4 Author: David S. Miller Date: Sun May 5 21:49:24 2019 -0700 Merge branch 'net-act_police-offload-support' Jakub Kicinski says: =================== net: act_police offload support this set starts by converting cls_matchall to the new flow offload infrastructure. It so happens that all drivers implementing cls_matchall offload today also offload cls_flower, so its a little easier for them to handle the actions in unified flow_rule format, even though in cls_matchall there is no flow to speak of. If a driver ever appears which would prefer the old, direct access to TC exts, we can add the pointer in the offload structure back and support both. Next the act_police is added to actions supported by flow offload API. NFP support for act_police offload is added as the final step. The flower firmware is configured to perform TX rate limiting in a way which matches act_police's behaviour. It does not use DMA.IN back pressure, and instead drops packets after they had been already DMAed into the NIC. IOW it uses our standard traffic policing implementation, future patches will extend it to other ports and traffic directions. =================== Signed-off-by: David S. Miller commit 5fb5c395e2c4658a57f894ae9ab72b3d4d71a882 Author: Pieter Jansen van Vuuren Date: Sat May 4 04:46:28 2019 -0700 nfp: flower: add qos offload stats request and reply Add stats request function that sends a stats request message to hw for a specific police-filter. Process stats reply from hw and update the stored qos structure. Signed-off-by: Pieter Jansen van Vuuren Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit 49cbef1388691c0e393541a5cfefb927b721ea59 Author: Pieter Jansen van Vuuren Date: Sat May 4 04:46:27 2019 -0700 nfp: flower: add qos offload install and remove functionality. Add install and remove offload functionality for qos offloads. We first check that a police filter can be implemented by the VF rate limiting feature in hw, then we install the filter via the qos infrastructure. Finally we implement the mechanism for removing these types of filters. Signed-off-by: Pieter Jansen van Vuuren Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit b66d035eec141b9faa3f495e9bc240f58c57ed52 Author: Pieter Jansen van Vuuren Date: Sat May 4 04:46:26 2019 -0700 nfp: flower: add qos offload framework Introduce matchall filter offload infrastructure that is needed to offload qos features like policing. Subsequent patches will make use of police-filters for ingress rate limiting. Signed-off-by: Pieter Jansen van Vuuren Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit 88c44a5200849c8182eaf36535b4ceae6b90b19d Author: Pieter Jansen van Vuuren Date: Sat May 4 04:46:25 2019 -0700 net/sched: add block pointer to tc_cls_common_offload structure Some actions like the police action are stateful and could share state between devices. This is incompatible with offloading to multiple devices and drivers might want to test for shared blocks when offloading. Store a pointer to the tcf_block structure in the tc_cls_common_offload structure to allow drivers to determine when offloads apply to a shared block. Signed-off-by: Pieter Jansen van Vuuren Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit 12f02b6b1548367fb548e61105fac6778c1a9173 Author: Pieter Jansen van Vuuren Date: Sat May 4 04:46:24 2019 -0700 net/sched: allow stats updates from offloaded police actions Implement the stats_update callback for the police action that will be used by drivers for hardware offload. Signed-off-by: Pieter Jansen van Vuuren Reviewed-by: Jakub Kicinski Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit b7fe4ab8a6013c3c721bed91f73e76eec8fb5d89 Author: Pieter Jansen van Vuuren Date: Sat May 4 04:46:23 2019 -0700 net/sched: extend matchall offload for hardware statistics Introduce a new command for matchall classifiers that allows hardware to update statistics. Signed-off-by: Pieter Jansen van Vuuren Reviewed-by: Jakub Kicinski Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit 8c8cfc6ed274e6fb86f00b53f3e7811afce29043 Author: Pieter Jansen van Vuuren Date: Sat May 4 04:46:22 2019 -0700 net/sched: add police action to the hardware intermediate representation Add police action to the hardware intermediate representation which would subsequently allow it to be used by drivers for offload. Signed-off-by: Pieter Jansen van Vuuren Reviewed-by: Jakub Kicinski Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit fa762da94d9860f584c909621d1f8ccbe24c5d5e Author: Pieter Jansen van Vuuren Date: Sat May 4 04:46:21 2019 -0700 net/sched: move police action structures to header Move tcf_police_params, tcf_police and tc_police_compat structures to a header. Making them usable to other code for example drivers that would offload police actions to hardware. Signed-off-by: Pieter Jansen van Vuuren Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit dfcb19f0fae3d07f9c56f6efe2c9bbebef6826c9 Author: Pieter Jansen van Vuuren Date: Sat May 4 04:46:20 2019 -0700 net/sched: remove unused functions for matchall offload Cleanup unused functions and variables after porting to the newer intermediate representation. Signed-off-by: Pieter Jansen van Vuuren Reviewed-by: Jakub Kicinski Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit 9681e8b3ef6cf85fb1487f155100096e171baa7b Author: Pieter Jansen van Vuuren Date: Sat May 4 04:46:19 2019 -0700 net/dsa: use intermediate representation for matchall offload Updates dsa hardware switch handling infrastructure to use the newer intermediate representation for flow actions in matchall offloads. Signed-off-by: Pieter Jansen van Vuuren Reviewed-by: Jakub Kicinski Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit ab79af32b0a5606324ce04c0f04a0d2f90b94464 Author: Pieter Jansen van Vuuren Date: Sat May 4 04:46:18 2019 -0700 mlxsw: use intermediate representation for matchall offload Updates the Mellanox spectrum driver to use the newer intermediate representation for flow actions in matchall offloads. Signed-off-by: Pieter Jansen van Vuuren Reviewed-by: Jakub Kicinski Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit f00cbf1968145afbae385a867a66c69845e30711 Author: Pieter Jansen van Vuuren Date: Sat May 4 04:46:17 2019 -0700 net/sched: use the hardware intermediate representation for matchall Extends matchall offload to make use of the hardware intermediate representation. More specifically, this patch moves the native TC actions in cls_matchall offload to the newer flow_action representation. This ultimately allows us to avoid a direct dependency on native TC actions for matchall. Signed-off-by: Pieter Jansen van Vuuren Reviewed-by: Jakub Kicinski Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit a7a7be6087b07563490725f61f4dbf4826f099e2 Author: Pieter Jansen van Vuuren Date: Sat May 4 04:46:16 2019 -0700 net/sched: add sample action to the hardware intermediate representation Add sample action to the hardware intermediate representation model which would subsequently allow it to be used by drivers for offload. Signed-off-by: Pieter Jansen van Vuuren Reviewed-by: Jakub Kicinski Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit c8f8207ca6311be99ac855691490cd8764a9e31d Merge: 8ef5cc4f3c12 ea168cdf1299 Author: David S. Miller Date: Sun May 5 21:47:08 2019 -0700 Merge branch 'of_net-Add-NVMEM-support-to-of_get_mac_address' Petr Štetiar says: ==================== of_net: Add NVMEM support to of_get_mac_address this patch series is a continuation of my previous attempt[1], where I've tried to wire MTD layer into of_get_mac_address, so it would be possible to load MAC addresses from various NVMEMs as EEPROMs etc. Predecessor of this patch which used directly MTD layer has originated in OpenWrt some time ago and supports already about 497 use cases in 357 device tree files. During the review process of my 1st attempt I was told, that I shouldn't be using MTD directly, but that I should rather use new NVMEM subsystem and during the review process of v2 I was told, that I should handle EPROBE_DEFFER error as well, during the review process of v3 I was told, that returning pointer/NULL/ERR_PTR is considered as wrong API design, so this v4 patch series tries to accommodate all this previous remarks. First patch is wiring NVMEM support directly into of_get_mac_address as it's obvious, that adding support for NVMEM into every other driver would mean adding a lot of repetitive code. This patch allows us to configure MAC addresses in various devices like ethernet and wireless adapters directly from of_get_mac_address, which is used by quite a lot of drivers in the tree already. Second patch is simply updating documentation with NVMEM bits, and cleaning up all current binding documentation referencing any of the MAC address related properties. Third and fourth patches are simply removing duplicate NVMEM code which is no longer needed as the first patch has wired NVMEM support directly into of_get_mac_address. Patches 5-10 are converting all current users of of_get_mac_address to the new ERR_PTR encoded error value, as of_get_mac_address could now return valid pointer, NULL and ERR_PTR. Just for a better picture, this patch series and one simple patch[2] on top of it, allows me to configure 8Devices Carambola2 board's MAC addresses with following DTS (simplified): &spi { flash@0 { partitions { art: partition@ff0000 { label = "art"; reg = <0xff0000 0x010000>; read-only; nvmem-cells { compatible = "nvmem-cells"; #address-cells = <1>; #size-cells = <1>; eth0_addr: eth-mac-addr@0 { reg = <0x0 0x6>; }; eth1_addr: eth-mac-addr@6 { reg = <0x6 0x6>; }; wmac_addr: wifi-mac-addr@1002 { reg = <0x1002 0x6>; }; }; }; }; }; }; ð0 { nvmem-cells = <ð0_addr>; nvmem-cell-names = "mac-address"; }; ð1 { nvmem-cells = <ð1_addr>; nvmem-cell-names = "mac-address"; }; &wmac { nvmem-cells = <&wmac_addr>; nvmem-cell-names = "mac-address"; }; 1. https://patchwork.ozlabs.org/patch/1086628/ 2. https://patchwork.ozlabs.org/patch/890738/ ==================== Signed-off-by: David S. Miller commit ea168cdf129944a11471dff5af93fc3c81c22c35 Author: Petr Štetiar Date: Fri May 3 16:27:15 2019 +0200 powerpc: tsi108: support of_get_mac_address new ERR_PTR error There was NVMEM support added to of_get_mac_address, so it could now return ERR_PTR encoded error values, so we need to adjust all current users of of_get_mac_address to this new fact. Signed-off-by: Petr Štetiar Signed-off-by: David S. Miller commit c41593a04e3e9c28da46b13274dc9cb1773b9582 Author: Petr Štetiar Date: Fri May 3 16:27:14 2019 +0200 ARM: Kirkwood: support of_get_mac_address new ERR_PTR error There was NVMEM support added to of_get_mac_address, so it could now return ERR_PTR encoded error values, so we need to adjust all current users of of_get_mac_address to this new fact. Signed-off-by: Petr Štetiar Signed-off-by: David S. Miller commit 284eb160681ce4f736dd05c83970a407a230ec6f Author: Petr Štetiar Date: Fri May 3 16:27:13 2019 +0200 staging: octeon-ethernet: support of_get_mac_address new ERR_PTR error There was NVMEM support added to of_get_mac_address, so it could now return ERR_PTR encoded error values, so we need to adjust all current users of of_get_mac_address to this new fact. Signed-off-by: Petr Štetiar Signed-off-by: David S. Miller commit d31a36b5f407d796d121af745730712337cd32a1 Author: Petr Štetiar Date: Fri May 3 16:27:12 2019 +0200 net: wireless: support of_get_mac_address new ERR_PTR error There was NVMEM support added to of_get_mac_address, so it could now return ERR_PTR encoded error values, so we need to adjust all current users of of_get_mac_address to this new fact. Signed-off-by: Petr Štetiar Signed-off-by: David S. Miller commit adfb3cb2c52e7bf215ac5d97344e4ed57ab9ce9f Author: Petr Štetiar Date: Fri May 3 16:27:11 2019 +0200 net: usb: support of_get_mac_address new ERR_PTR error There was NVMEM support added to of_get_mac_address, so it could now return ERR_PTR encoded error values, so we need to adjust all current users of of_get_mac_address to this new fact. Signed-off-by: Petr Štetiar Signed-off-by: David S. Miller commit f7af25a6ca1605af9d2611ae1ba02096a9c2e9df Author: Petr Štetiar Date: Fri May 3 16:27:09 2019 +0200 net: davinci: support of_get_mac_address new ERR_PTR error There was NVMEM support added directly to of_get_mac_address, and it uses nvmem_get_mac_address under the hood, so we can remove it. As of_get_mac_address can now return ERR_PTR encoded error values, adjust to that as well. Signed-off-by: Petr Štetiar Signed-off-by: David S. Miller commit 541ddc66d665f0ed9e977f40bf99bb8bbf79d9c4 Author: Petr Štetiar Date: Fri May 3 16:27:08 2019 +0200 net: macb: support of_get_mac_address new ERR_PTR error There was NVMEM support added directly to of_get_mac_address, and it uses nvmem_get_mac_address under the hood, so we can remove it. As of_get_mac_address can now return ERR_PTR encoded error values, adjust to that as well. Signed-off-by: Petr Štetiar Signed-off-by: David S. Miller commit 687e3d5550c7b0e4dca0179103741a44cd3f7864 Author: Petr Štetiar Date: Fri May 3 16:27:07 2019 +0200 dt-bindings: doc: reflect new NVMEM of_get_mac_address behaviour As of_get_mac_address now supports NVMEM under the hood, we need to update the bindings documentation with the new nvmem-cell* properties, which would mean copy&pasting a lot of redundant information to every binding documentation currently referencing some of the MAC address properties. So I've just removed all the references to the optional MAC address properties and replaced them with the small note referencing net/ethernet.txt file. Signed-off-by: Petr Štetiar Signed-off-by: David S. Miller commit d01f449c008a3f41fa44c603e28a7452ab8f8e68 Author: Petr Štetiar Date: Fri May 3 16:27:06 2019 +0200 of_net: add NVMEM support to of_get_mac_address Many embedded devices have information such as MAC addresses stored inside NVMEMs like EEPROMs and so on. Currently there are only two drivers in the tree which benefit from NVMEM bindings. Adding support for NVMEM into every other driver would mean adding a lot of repetitive code. This patch allows us to configure MAC addresses in various devices like ethernet and wireless adapters directly from of_get_mac_address, which is already used by almost every driver in the tree. Predecessor of this patch which used directly MTD layer has originated in OpenWrt some time ago and supports already about 497 use cases in 357 device tree files. Cc: Alban Bedel Signed-off-by: Felix Fietkau Signed-off-by: John Crispin Signed-off-by: Petr Štetiar Signed-off-by: David S. Miller commit 8ef5cc4f3c12dfb2fde74762feaff13c0d6b685c Merge: 9073989afbc1 51fec80d3a66 Author: David S. Miller Date: Sun May 5 21:42:17 2019 -0700 Merge branch 'bnxt_en-Driver-updates' Michael Chan says: ==================== bnxt_en: Driver updates. This patch series adds some extended statistics available with the new firmware interface, package version from firmware, aRFS support on 57500 chips, new PCI IDs, and some miscellaneous fixes and improvements. ==================== Signed-off-by: David S. Miller commit 51fec80d3a669cdc3950973cb2a9045adeb0e7f0 Author: Michael Chan Date: Sun May 5 07:17:08 2019 -0400 bnxt_en: Add device IDs 0x1806 and 0x1752 for 57500 devices. 0x1806 and 0x1752 are VF variant and PF variant of the 57500 chip family. Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit ac33906c67e22edeabe3f0150ffeb367462e754f Author: Michael Chan Date: Sun May 5 07:17:07 2019 -0400 bnxt_en: Add support for aRFS on 57500 chips. Set RSS ring table index of the RFS destination ring for the NTUPLE filters on 57500 chips. Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit e969ae5bbfcf48e3ff2d159870453121d5a8441d Author: Michael Chan Date: Sun May 5 07:17:06 2019 -0400 bnxt_en: Query firmware capability to support aRFS on 57500 chips. Query support for the aRFS ring table index in the firmware. Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 01989c6b69d91a0df0af8d5c6b5f33d82a239ae0 Author: Michael Chan Date: Sun May 5 07:17:05 2019 -0400 bnxt_en: Improve NQ reservations. bnxt_need_reserve_rings() determines if any resources have changed and requires new reservation with firmware. The NQ checking is currently just an approximation. Improve the NQ checking logic to make it accurate. NQ reservation is only needed on 57500 PFs. This fix will eliminate unnecessary reservations and will reduce NQ reservations when some NQs have been released on 57500 PFs. Fixes: c0b8cda05e1d ("bnxt_en: Fix NQ/CP rings accounting on the new 57500 chips.") Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 53579e37d13a7a87430e2ec0171e091ebf2e63a1 Author: Devesh Sharma Date: Sun May 5 07:17:04 2019 -0400 bnxt_en: Separate RDMA MR/AH context allocation. In newer firmware, the context memory for MR (Memory Region) and AH (Address Handle) to support RDMA are specified separately. Modify driver to specify and allocate the 2 context memory types separately when supported by the firmware. Signed-off-by: Devesh Sharma Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 2730214ddb889c54d5f6a734e2fe584c295cbd9b Author: Vasundhara Volam Date: Sun May 5 07:17:03 2019 -0400 bnxt_en: read the clause type from the PHY ID Currently driver hard code Clause 45 based on speed supported by the PHY. Instead read the clause type from the PHY ID provided as input to the mdio ioctl. Fixes: 0ca12be99667 ("bnxt_en: Add support for mdio read/write to external PHY") Signed-off-by: Vasundhara Volam Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 691aa62045c2b23152ce3b64feb601502aab97c5 Author: Vasundhara Volam Date: Sun May 5 07:17:02 2019 -0400 bnxt_en: Read package version from firmware. HWRM_VER_GET firmware command returns package name that is running actively on the adapter. Use this version instead of parsing from the package log in NVRAM. Signed-off-by: Vasundhara Volam Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 6154532fe8fe4e5ec5ffb1a71f587015973f8753 Author: Vasundhara Volam Date: Sun May 5 07:17:01 2019 -0400 bnxt_en: Check new firmware capability to display extended stats. Newer firmware now advertises the capability for extended stats support. Check the new capability in addition to the existing version check. Signed-off-by: Vasundhara Volam Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 55e4398d4ee578094fb38f25af175629a24675d5 Author: Vasundhara Volam Date: Sun May 5 07:17:00 2019 -0400 bnxt_en: Add support for PCIe statistics Gather periodic PCIe statistics for ethtool -S. Signed-off-by: Vasundhara Volam Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit a220eabc8887e3c02d308a9960e92a70cbd00b52 Author: Vasundhara Volam Date: Sun May 5 07:16:59 2019 -0400 bnxt_en: Refactor bnxt_alloc_stats(). Reverse the condition of the large "if" block and return early. This will simplify the follow up patch to add PCIe statistics. Signed-off-by: Vasundhara Volam Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 4a50ddc2d2ea81d3fcbfbe05657d73ac9a9655fd Author: Michael Chan Date: Sun May 5 07:16:58 2019 -0400 bnxt_en: Update firmware interface to 1.10.0.69. PTP API updates for 57500 chips, new RX port stats counters and other miscellaneous updates. Signed-off-by: Michael Chan Signed-off-by: David S. Miller commit 9073989afbc13c4b4e7280004b15cd542c758d03 Merge: ba6223fc2f59 64439f8f0bc4 Author: David S. Miller Date: Sun May 5 21:40:23 2019 -0700 Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== 100GbE Intel Wired LAN Driver Updates 2019-05-04 This series contains updates to the ice driver only. Jesse updated the driver to make more functions consistent in their use of a local variable for vsi->back. Updates the driver to use bit fields when possible to avoid wasting lots of storage space to store single bit values. Optimized the driver to be more memory efficient by moving structure members around that are not in are hot path. Michal updates the driver to disable the VF if malicious device driver (MDD) event is detected by the hardware. Adds checks to validate the messages coming from the VF driver. Tightens up the sniffing of the driver so that transmit traffic so that VF's cannot see what is on other VSIs. Tony fixed the driver so that receive stripping state won't change every time transmit insertion is changed. Cleanup the __always_unused attribute, now that the variable is being used. Fixed the function which evaluates setting of features to ensure that can evaluate and set multiple features in a single function call. Akeem fixes the driver so that we do not attempt to remove a VLAN filter that does not exist. Adds support for adding a ethertype based filter rule on VSI and describe it in a very long run-on sentence. :-) Bruce cleans up static analysis warnings by removing a local variable initialization that is not needed. Brett makes the allocate/deallocate more consistent in all the driver flows for VSI q_vectors. In addition, makes setting/getting coalesce settings more consistent throughout the driver. ==================== Signed-off-by: David S. Miller commit ba6223fc2f59a0a507e7a03203ab007042e13a4f Merge: 1ffad6d1af7a 0b63644602cf Author: David S. Miller Date: Sun May 5 21:38:25 2019 -0700 Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== 40GbE Intel Wired LAN Driver Updates 2019-05-04 This series contains updates to i40e only. Grzegorz fixes a bug with promiscuous mode not being kept when the VF switched to a new VLAN. Fixed a typo in the link mode code, by using the correct define. Fixed truncation issue, which changed an function argument to a smaller value that should have been a larger value. Aleksandr adds support for new x710 devices and the speeds they support. Sergey adds a check for the number of vectors against the number of MSIx vectors to ensure one does not exceed the other. Martyna adds additional input validation on VF messages handled by the PF. Fixed potential memory leaks in the driver where the error paths were not freeing allocated memory. Maciej reverts the double ShadowRAM checksum calculation change because issues were found in the NVM downgrade situation. Gustavo Silva changes the i40e driver to use struct_size() in kzalloc() calls, to avoid type mistakes. ==================== Signed-off-by: David S. Miller commit 1ffad6d1af7a9e69f99d5df4335015271e27d564 Merge: 19ab5f402355 522e4077e8dc Author: David S. Miller Date: Sun May 5 21:35:08 2019 -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 batch contains Netfilter updates for net-next, they are: 1) Move nft_expr_clone() to nft_dynset, from Paul Gortmaker. 2) Do not include module.h from net/netfilter/nf_tables.h, also from Paul. 3) Restrict conntrack sysctl entries to boolean, from Tonghao Zhang. 4) Several patches to add infrastructure to autoload NAT helper modules from their respective conntrack helper, this also includes the first client of this code in OVS, patches from Flavio Leitner. 5) Add support to match for conntrack ID, from Brett Mastbergen. 6) Spelling fix in connlabel, from Colin Ian King. 7) Use struct_size() from hashlimit, from Gustavo A. R. Silva. 8) Add optimized version of nf_inet_addr_mask(), from Li RongQing. =================== Signed-off-by: David S. Miller commit 3751cbda8f223549d7ea28803cbec8ac87e43ed2 Author: Serge Semin Date: Fri May 3 20:50:41 2019 +0300 mips: Manually call fdt_init_reserved_mem() method Since memblock-patchset was introduced the reserved-memory nodes are supported being declared in dt-files. So these nodes are actually parsed during the arch setup procedure when the early_init_fdt_scan_reserved_mem() method is called. But due to the arch-specific boot mem_map container utilization we need to manually call the fdt_init_reserved_mem() method after all the available and reserved memory has been moved to memblock. The first function call performed before bootmem_init() by the early_init_fdt_scan_reserved_mem() routine fails due to the lack of any memblock memory regions to allocate from at that stage. Signed-off-by: Serge Semin Signed-off-by: Paul Burton Cc: Ralf Baechle Cc: James Hogan Cc: Mike Rapoport Cc: Andrew Morton Cc: Michal Hocko Cc: Greg Kroah-Hartman Cc: Thomas Bogendoerfer Cc: Huacai Chen Cc: Stefan Agner Cc: Stephen Rothwell Cc: Alexandre Belloni Cc: Juergen Gross Cc: Serge Semin Cc: linux-mips@vger.kernel.org Cc: linux-kernel@vger.kernel.org commit 93fa5b280761a4dbb14c5330f260380385ab2b49 Author: Serge Semin Date: Fri May 3 20:50:40 2019 +0300 mips: Make sure dt memory regions are valid There are situations when memory regions coming from dts may be too big for the platform physical address space. This especially concerns XPA-capable systems. Bootloader may determine more than 4GB memory available and pass it to the kernel over dts memory node, while kernel is built without XPA/64BIT support. In this case the region may either simply be truncated by add_memory_region() method or by u64->phys_addr_t type casting. But in worst case the method can even drop the memory region if it exceeds PHYS_ADDR_MAX size. So lets make sure the retrieved from dts memory regions are valid, and if some of them aren't, just manually truncate them with a warning printed out. Signed-off-by: Serge Semin Signed-off-by: Paul Burton Cc: Ralf Baechle Cc: James Hogan Cc: Mike Rapoport Cc: Andrew Morton Cc: Michal Hocko Cc: Greg Kroah-Hartman Cc: Thomas Bogendoerfer Cc: Huacai Chen Cc: Stefan Agner Cc: Stephen Rothwell Cc: Alexandre Belloni Cc: Juergen Gross Cc: Serge Semin Cc: linux-mips@vger.kernel.org Cc: linux-kernel@vger.kernel.org commit 522e4077e8dcdfc5b8e96469d3bc2324bc5d6466 Author: Li RongQing Date: Sun Apr 28 15:12:19 2019 +0800 netfilter: slightly optimize nf_inet_addr_mask using 64bit computation to slightly optimize nf_inet_addr_mask Signed-off-by: Li RongQing Signed-off-by: Pablo Neira Ayuso commit eabb47821910af418c7d6e602f5745cf5dedbd6a Author: Gustavo A. R. Silva Date: Wed May 1 17:01:08 2019 -0500 netfilter: xt_hashlimit: use struct_size() helper Make use of the struct_size() helper instead of an open-coded version in order to avoid any potential type mistakes, in particular in the context in which this code is being used. So, replace code of the following form: sizeof(struct xt_hashlimit_htable) + sizeof(struct hlist_head) * size with: struct_size(hinfo, hash, size) This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Pablo Neira Ayuso commit 43c8f131184faf20c07221f3e09724611c6525d8 Author: Taehee Yoo Date: Fri May 3 01:56:38 2019 +0900 netfilter: nf_flow_table: fix missing error check for rhashtable_insert_fast rhashtable_insert_fast() may return an error value when memory allocation fails, but flow_offload_add() does not check for errors. This patch just adds missing error checking. Fixes: ac2a66665e23 ("netfilter: add generic flow table infrastructure") Signed-off-by: Taehee Yoo Signed-off-by: Pablo Neira Ayuso commit edbd82c5fba009f68d20b5db585be1e667c605f6 Author: Florian Westphal Date: Tue Apr 30 14:33:22 2019 +0200 netfilter: nf_tables: fix base chain stat rcu_dereference usage Following splat gets triggered when nfnetlink monitor is running while xtables-nft selftests are running: net/netfilter/nf_tables_api.c:1272 suspicious rcu_dereference_check() usage! other info that might help us debug this: 1 lock held by xtables-nft-mul/27006: #0: 00000000e0f85be9 (&net->nft.commit_mutex){+.+.}, at: nf_tables_valid_genid+0x1a/0x50 Call Trace: nf_tables_fill_chain_info.isra.45+0x6cc/0x6e0 nf_tables_chain_notify+0xf8/0x1a0 nf_tables_commit+0x165c/0x1740 nf_tables_fill_chain_info() can be called both from dumps (rcu read locked) or from the transaction path if a userspace process subscribed to nftables notifications. In the 'table dump' case, rcu_access_pointer() cannot be used: We do not hold transaction mutex so the pointer can be NULLed right after the check. Just unconditionally fetch the value, then have the helper return immediately if its NULL. In the notification case we don't hold the rcu read lock, but updates are prevented due to transaction mutex. Use rcu_dereference_check() to make lockdep aware of this. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit f5e85ce8e733c2547827f6268136b70b802eabdb Author: Jakub Jankowski Date: Thu Apr 25 23:46:50 2019 +0200 netfilter: nf_conntrack_h323: restore boundary check correctness Since commit bc7d811ace4a ("netfilter: nf_ct_h323: Convert CHECK_BOUND macro to function"), NAT traversal for H.323 doesn't work, failing to parse H323-UserInformation. nf_h323_error_boundary() compares contents of the bitstring, not the addresses, preventing valid H.323 packets from being conntrack'd. This looks like an oversight from when CHECK_BOUND macro was converted to a function. To fix it, stop dereferencing bs->cur and bs->end. Fixes: bc7d811ace4a ("netfilter: nf_ct_h323: Convert CHECK_BOUND macro to function") Signed-off-by: Jakub Jankowski Signed-off-by: Pablo Neira Ayuso commit 62217beb394e654bbd2bb87c533dadd2d8bf62c6 Author: Helge Deller Date: Fri May 3 23:51:00 2019 +0200 parisc: Add static branch and JUMP_LABEL feature Signed-off-by: Helge Deller commit bdca5d64ee92abeacd6dada0bc6f6f8e6350dd67 Author: Helge Deller Date: Sun May 5 23:55:02 2019 +0200 parisc: Use PA_ASM_LEVEL in boot code The LEVEL define clashed with the DRBD code. Reported-by: kbuild test robot Signed-off-by: Helge Deller Cc: # v4.14+ commit 1829dda0e87f4462782ca81be474c7890efe31ce Author: Helge Deller Date: Sun May 5 23:54:34 2019 +0200 parisc: Rename LEVEL to PA_ASM_LEVEL to avoid name clash with DRBD code LEVEL is a very common word, and now after many years it suddenly clashed with another LEVEL define in the DRBD code. Rename it to PA_ASM_LEVEL instead. Reported-by: kbuild test robot Signed-off-by: Helge Deller Cc: commit 19ab5f40235538fc04d77e0fdb708436b0471f01 Merge: d1f5050b4549 62a91990f4c5 Author: David S. Miller Date: Sun May 5 13:10:36 2019 -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 2019-05-05 Here's one more bluetooth-next pull request for 5.2: - Fixed Command Complete event handling check for matching opcode - Added support for Qualcomm WCN3998 controller, along with DT bindings - Added default address for Broadcom BCM2076B1 controllers Please let me know if there are any issues pulling. Thanks. ==================== Signed-off-by: David S. Miller commit e9974166a53acc0f6585fe3462d6ac45e204f785 Author: Ludovic Barre Date: Fri May 3 15:48:26 2019 +0200 watchdog: stm32: add dynamic prescaler support This patch allows to define the max prescaler by compatible. To set a large range of timeout, the prescaler should be set dynamically (from the timeout request) to improve the resolution in order to have a timeout close to the expected value. Signed-off-by: Ludovic Barre Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 345f16251063bcef5828f17fe90aa7f7a5019aab Author: Guenter Roeck Date: Mon Apr 29 12:28:31 2019 -0700 watchdog: Improve Kconfig entry ordering and dependencies HPWDT_NMI_DECODING depends on HP_WATCHDOG and should be next to it. This helps menuconfig identify HPWDT_NMI_DECODING as depending on HP_WATCHDOG. BCM_KONA_WDT_DEBUG depends on BCM_KONA_WDT which depends on COMPILE_TEST. Enabling BCM_KONA_WDT_DEBUG without BCM_KONA_WDT does not make sense, so drop the COMPILE_TEST dependency from it. This also improves menuconfig, which now properly associates BCM_KONA_WDT_DEBUG with BCM_KONA_WDT. Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit ec24292925384836763618b90f273c456dd3e8fe Author: Guenter Roeck Date: Mon Apr 29 12:28:30 2019 -0700 watchdog: npcm: Enable modular builds Most of the NPCM7XX drivers can be built as modules. The NPCM7XX watchdog driver code supports building it as module, but its configuration option is set to bool. Make itr tristate to actually support modular builds. This improves consistency with other drivers for the same platform and enables including the driver in multi- platform configurations. Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 0d3e156399ec0b0a4c7ef03d4c801a0594c609cc Author: Guenter Roeck Date: Mon Apr 29 12:28:29 2019 -0700 watchdog: Make watchdog core configurable as module Under some circumstances it may be desirable to configure the watchdog core as module. Enable it. As part of this change, mark pretimeout governors as depending on the watchdog core. This is necessary to prevent governors from being built into the kernel if the watchdog core is built as module. Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 471ce88b8402b5a18b00c4e1a3c4cd15367c070b Author: Guenter Roeck Date: Mon Apr 29 12:28:28 2019 -0700 watchdog: Move pretimeout governor configuration up Watchdog pretimeout configuration was at the end of the Kconfig file, after individual watchdog drivers, and thus easy to miss. Move it right after basic watchdog option declarations. Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit f627ac0e12cd2736e60b9f5782ecec1d97251f77 Author: Guenter Roeck Date: Mon Apr 29 12:28:27 2019 -0700 watchdog: Use depends instead of select for pretimeout governors Watchdog pretimeout governors were enabled from the default governor selection using "select". As a result, the default governor was always built into the kernel, even if no watchdog driver was loaded. By using "depends on" instead of "select", we are in better control, and the governors can all be built as modules. At the same time, set the default configuration option for pretimeout governors to match WATCHDOG_CORE (meaning all pretimeout governors are by default enabled if pretimeout support is enabled). The practical impact of this change is minimal. Previously, selecting a default governor automatically enabled that governor. Now, a default governor can only be selected if that governor has been enabled. Consequently, the order of governor selection is now reversed: The governor selection is now first, followed by default governor selection. Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 0b468829c325026e0f2cec7f4e1b3ea2949f6d0d Author: Paul Gortmaker Date: Tue Apr 23 11:48:31 2019 -0400 watchdog: rtd119x: drop unused module.h include The Kconfig for this driver is: config RTD119X_WATCHDOG bool "Realtek RTD118x/RTD129x watchdog support" ...and hence it doesn't need to include module.h for anything. There are no other signs of unused modular infrastructure. Cc: Wim Van Sebroeck Cc: Guenter Roeck Cc: linux-watchdog@vger.kernel.org Signed-off-by: Paul Gortmaker Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 3b02dceec2126200838fbbab1fad0f81e76f1c89 Author: Paul Gortmaker Date: Tue Apr 23 11:48:34 2019 -0400 watchdog: intel_scu: make it explicitly non-modular The Kconfig currently controlling compilation of this code is: config INTEL_SCU_WATCHDOG bool "Intel SCU Watchdog for Mobile Platforms" ...meaning that it currently is not being built as a module by anyone. Lets remove the modular code that is essentially orphaned, so that when reading the driver there is no doubt it is builtin-only. We also delete the MODULE_LICENSE tag etc. since all that information is already contained at the top of the file in the comments. We leave the moduleparam.h include since the file does declare some module parameters, and leaving them as such is currently the easiest way to remain compatible with existing boot arg use cases. Cc: Wim Van Sebroeck Cc: Guenter Roeck Cc: linux-watchdog@vger.kernel.org Signed-off-by: Paul Gortmaker Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 73027cb8e8390c8b19e5925d621b74066ccab215 Author: Paul Gortmaker Date: Tue Apr 23 11:48:35 2019 -0400 watchdog: coh901327: make it explicitly non-modular The Kconfig currently controlling compilation of this code is: config COH901327_WATCHDOG bool "ST-Ericsson COH 901 327 watchdog" ...meaning that it currently is not being built as a module by anyone. Lets remove the modular code that is essentially orphaned, so that when reading the driver there is no doubt it is builtin-only. We explicitly disallow a driver unbind, since that doesn't have a sensible use case anyway, and it allows us to drop the ".remove" code for non-modular drivers. Since module_platform_driver() uses the same init level priority as builtin_platform_driver() the init ordering remains unchanged with this commit. Also note that MODULE_ALIAS is a no-op for non-modular code. We also delete the MODULE_LICENSE tag etc. since all that information is already contained at the top of the file in the comments. We replace module.h with moduleparam.h since the file does actually declare some module parameters (i.e. boot args for non-modules). Cc: Linus Walleij Cc: Wim Van Sebroeck Cc: Guenter Roeck Cc: linux-watchdog@vger.kernel.org Signed-off-by: Paul Gortmaker Reviewed-by: Linus Walleij Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 154511636a1cfcc94ac8b23b5aa79863c35206a7 Author: Wolfram Sang Date: Fri Apr 19 20:16:01 2019 +0200 watchdog: ziirave_wdt: drop warning after calling watchdog_init_timeout The core will print out details now. Reviewed-by: Guenter Roeck Signed-off-by: Wolfram Sang Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit b74d646134e0404a375d5c7984897b1272d3f24d Author: Wolfram Sang Date: Fri Apr 19 20:16:00 2019 +0200 watchdog: xen_wdt: drop warning after calling watchdog_init_timeout The core will print out details now. Reviewed-by: Guenter Roeck Signed-off-by: Wolfram Sang Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 6781ce2ef1b92be9f6b3528f4d81976e997a5bb6 Author: Wolfram Sang Date: Fri Apr 19 20:15:59 2019 +0200 watchdog: stm32_iwdg: drop warning after calling watchdog_init_timeout The core will print out details now. Reviewed-by: Guenter Roeck Signed-off-by: Wolfram Sang Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit b4214185b91b1ce33c2670e4576600dadccd8cf8 Author: Wolfram Sang Date: Fri Apr 19 20:15:58 2019 +0200 watchdog: st_lpc_wdt: drop warning after calling watchdog_init_timeout The core will print out details now. Reviewed-by: Guenter Roeck Signed-off-by: Wolfram Sang Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 2d505e3e40cbb6293d4ca03288ee90c1805a52a6 Author: Wolfram Sang Date: Fri Apr 19 20:15:57 2019 +0200 watchdog: sp5100_tco: drop warning after calling watchdog_init_timeout The core will print out details now. Reviewed-by: Guenter Roeck Signed-off-by: Wolfram Sang Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit cd6457a9254e2b58e451ab188c5e1cd66c6c9dca Author: Wolfram Sang Date: Fri Apr 19 20:15:56 2019 +0200 watchdog: renesas_wdt: drop warning after calling watchdog_init_timeout The core will print out details now. Reviewed-by: Guenter Roeck Signed-off-by: Wolfram Sang Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 14fad5d98d904339d48813362dc8a5c10e3c920e Author: Wolfram Sang Date: Fri Apr 19 20:15:55 2019 +0200 watchdog: nic7018_wdt: drop warning after calling watchdog_init_timeout The core will print out details now. Reviewed-by: Guenter Roeck Signed-off-by: Wolfram Sang Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit ff00800b6469a3495306ae1d922d70646f5cf86f Author: Wolfram Sang Date: Fri Apr 19 20:15:54 2019 +0200 watchdog: ni903x_wdt: drop warning after calling watchdog_init_timeout The core will print out details now. Reviewed-by: Guenter Roeck Signed-off-by: Wolfram Sang Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 5c09980d9f9de2dc6b255f4f0229aeff0eb2c723 Author: Wolfram Sang Date: Fri Apr 19 20:15:53 2019 +0200 watchdog: imx_sc_wdt: drop warning after calling watchdog_init_timeout The core will print out details now. Reviewed-by: Guenter Roeck Signed-off-by: Wolfram Sang Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 89bd0ed885c6cb89055ee736c881c6abc68d7025 Author: Wolfram Sang Date: Fri Apr 19 20:15:52 2019 +0200 watchdog: i6300esb: drop warning after calling watchdog_init_timeout The core will print out details now. Reviewed-by: Guenter Roeck Signed-off-by: Wolfram Sang Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 87dfe210fa7b2d4811cdacdf0eb714b3c7365f63 Author: Wolfram Sang Date: Fri Apr 19 20:15:51 2019 +0200 watchdog: hpwdt: drop warning after calling watchdog_init_timeout The core will print out details now. Reviewed-by: Guenter Roeck Signed-off-by: Wolfram Sang Tested-by: Jerry Hoemann Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit cccbf8baa1097b3ff9c1cecfcd5060739c8880e1 Author: Wolfram Sang Date: Fri Apr 19 20:15:50 2019 +0200 watchdog: ebc-c384_wdt: drop warning after calling watchdog_init_timeout The core will print out details now. Reviewed-by: Guenter Roeck Acked-by: William Breathitt Gray Signed-off-by: Wolfram Sang Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit c7d30d42ff064f942fc3ad897543c4f69474f6d3 Author: Wolfram Sang Date: Fri Apr 19 20:15:49 2019 +0200 watchdog: cadence_wdt: still probe if user supplied timeout is invalid We have a default timeout value in the driver which we will fall back to if the user supplied values are out of bounce. Reviewed-by: Guenter Roeck Signed-off-by: Wolfram Sang Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 5429e3a5790ca387848167610e6184e1a9d06c26 Author: Wolfram Sang Date: Fri Apr 19 20:15:48 2019 +0200 watchdog: cadence_wdt: drop warning after calling watchdog_init_timeout The core will print out details now. Reviewed-by: Guenter Roeck Signed-off-by: Wolfram Sang Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit e907972be3816d741f08e82f08c4e88bc807ca36 Author: Wolfram Sang Date: Fri Apr 19 20:15:47 2019 +0200 watchdog: add error messages when initializing timeout fails This not only removes boilerplate code from watchdog drivers, it can also be more specific which of the supplied value actually fails. Also, the loglevel becomes now consistent across drivers. Reviewed-by: Guenter Roeck Signed-off-by: Wolfram Sang Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 34ef4087a1d50f5481732ad85544362516e8185f Author: Wolfram Sang Date: Fri Apr 19 20:15:46 2019 +0200 watchdog: refactor watchdog_init_timeout The function is not easy to read and has a problem: -EINVAL is returned when the module parameter is invalid but the DT parameter is OK. Refactor the code to have the same pattern of checks for the module parameter and DT. Further ones can be easily added in the future if the need arises. The above mentioned problem is fixed, too. Some documentation is added to describe the different handlings of '0' for the module parameter and the DT property. Reviewed-by: Guenter Roeck Signed-off-by: Wolfram Sang Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit e18431264954247f76a8e7aeac3b68421e35e65a Author: Wolfram Sang Date: Sun Apr 14 12:03:06 2019 +0200 watchdog: renesas_wdt: drop superfluous glob pattern If we want to match all revisions, it is enough to leave the field empty. Signed-off-by: Wolfram Sang Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 280ce5c00661a5d92c94dddc05c4a2b5c39252f8 Author: Wolfram Sang Date: Sun Apr 14 13:09:33 2019 +0200 watchdog: da9063_wdt: parse DT for timeout value, too And make sure the final obtained value gets properly scaled. Remove two empty lines to group the initialization blocks while we are here. Signed-off-by: Wolfram Sang Tested-by: Steve Twiss Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 36ccec3db8975f4b452254da8607371765fce09a Author: Colin Ian King Date: Tue Apr 16 14:33:18 2019 +0100 watchdog: intel_scu_watchdog: fix spelling mistake: "set_hearbeat" -> "set_heartbeat" There is a spelling mistake in a pr_debug message. Fix it. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 9d7c09231e81a3a21a3dee29b97ca034c94a96b6 Author: Alexandre Belloni Date: Thu Apr 11 21:14:37 2019 +0200 watchdog: pnx4008: readout watchdog state Readout the enabled state so it is possible to get the pre-userspace handler working. Also, avoid disabling the watchdog to ensure it continues working and triggers if there is an issue later in the boot or if userspace fails to start. Signed-off-by: Alexandre Belloni Tested-by: Gregory CLEMENT Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 0843bdc14ca4c6c8c2906a194fc19c8f7de7361c Author: Gustavo A. R. Silva Date: Wed Apr 10 13:49:05 2019 -0500 watchdog: machzwd: Mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warnings: drivers/watchdog/machzwd.c: In function ‘zf_set_timer’: ./arch/x86/include/asm/io.h:355:14: warning: this statement may fall through [-Wimplicit-fallthrough=] #define outw outw drivers/watchdog/machzwd.c:80:53: note: in expansion of macro ‘outw’ #define zf_writew(port, data) { outb(port, INDEX); outw(data, DATA_W); } ^~~~ drivers/watchdog/machzwd.c:179:3: note: in expansion of macro ‘zf_writew’ zf_writew(COUNTER_1, new); ^~~~~~~~~ drivers/watchdog/machzwd.c:180:2: note: here case WD2: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 8862c1f2b09edc535accdb3a848f7cc261b44fbe Author: Guenter Roeck Date: Wed Apr 10 09:28:03 2019 -0700 watchdog: pnx4008_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop empty remove function - Use devm_add_action_or_reset() for calls to clk_disable_unprepare - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device Cc: Vladimir Zapolskiy Cc: Sylvain Lemieux Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 81df6db6810bf41464310aedde7fb897cf50d1d0 Author: Guenter Roeck Date: Wed Apr 10 09:28:02 2019 -0700 watchdog: mpc8xxx_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop empty remove function This also drops the inaccurate message on remove; the driver won't be removed if the hardware watchdog is running, no matter if the watchdog device is open or not. - Use local variable 'struct device *dev' consistently - Use devm_watchdog_register_driver() to register watchdog device Signed-off-by: Guenter Roeck Reviewed-by: Christophe Leroy Signed-off-by: Wim Van Sebroeck commit 02189bb91e74ba2f475db1af3e02876560683c9d Author: Guenter Roeck Date: Wed Apr 10 09:28:01 2019 -0700 watchdog: jz4740_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. Also, there is no call to dev_get_drvdata() or platform_get_drvdata() in the driver, so drop the unnecessary call to platform_set_drvdata(). The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 570927df46891a395e193a9a68532f25b21ab83d Author: Guenter Roeck Date: Wed Apr 10 09:28:00 2019 -0700 watchdog: rt2880_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop empty remove function - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device - Replace shutdown function with call to watchdog_stop_on_reboot() Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 6fef817e2d8101ceca45bf0ba371f98d60c7486f Author: Guenter Roeck Date: Wed Apr 10 09:27:59 2019 -0700 watchdog: mt7621_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Cc: Matthias Brugger Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit fd56d6c9a2ed2b82ceb24cf309482d232ad12b67 Author: Guenter Roeck Date: Wed Apr 10 09:27:58 2019 -0700 watchdog: loongson1_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop unnecessary braces around conditional return statements - Drop empty remove function - Use devm_add_action_or_reset() for calls to clk_disable_unprepare - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device Cc: Keguang Zhang Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 1f22b8ca6b26e47ebbd5d0c9991207fe94c4b8db Author: Guenter Roeck Date: Wed Apr 10 09:27:57 2019 -0700 watchdog: pic32-wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop empty remove function - Use devm_add_action_or_reset() for calls to clk_disable_unprepare - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit a02b3d7cde3230f6a6c4c42a556b49411d4729a7 Author: Guenter Roeck Date: Wed Apr 10 09:27:56 2019 -0700 watchdog: pic32-dmt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop empty remove function - Use devm_add_action_or_reset() for calls to clk_disable_unprepare - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 89e5b7aca183a3237a730c5cdbd2c7279fe66f10 Author: Guenter Roeck Date: Wed Apr 10 09:27:55 2019 -0700 watchdog: ux500_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop empty remove function - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 1f53305877fae6089c81dbce8109df02e6b2e26e Author: Guenter Roeck Date: Wed Apr 10 09:27:54 2019 -0700 watchdog: stm32_iwdg: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop empty remove function - Use devm_add_action_or_reset() for calls to clk_disable_unprepare - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device Cc: Maxime Coquelin Cc: Alexandre Torgue Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 6ba3793cc1e705715a02eeef6460e07812c7e8da Author: Guenter Roeck Date: Wed Apr 10 09:27:53 2019 -0700 watchdog: zx2967_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop empty remove function - Use devm_add_action_or_reset() for calls to clk_disable_unprepare - Use local variable 'struct device *dev' consistently - Use devm_watchdog_register_driver() to register watchdog device Cc: Jun Nie Cc: Shawn Guo Signed-off-by: Guenter Roeck Acked-by: Shawn Guo Signed-off-by: Wim Van Sebroeck commit f7daaa8d1e1cc1be74cba0e5ec52049435b295b6 Author: Guenter Roeck Date: Wed Apr 10 09:27:52 2019 -0700 watchdog: sbsa_gwdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop empty remove function - Use local variable 'struct device *dev' consistently - Use devm_watchdog_register_driver() to register watchdog device - Replace shutdown function with call to watchdog_stop_on_reboot() Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 01022e3390498fffebfd67f4a813bfaadc66b741 Author: Guenter Roeck Date: Wed Apr 10 09:27:51 2019 -0700 watchdog: imx_sc_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Cc: Shawn Guo Cc: Sascha Hauer Cc: Pengutronix Kernel Team Cc: Fabio Estevam Cc: NXP Linux Team Signed-off-by: Guenter Roeck Acked-by: Shawn Guo Signed-off-by: Wim Van Sebroeck commit b90abaace6d83f4bda79173e58b1f130428c0a46 Author: Guenter Roeck Date: Wed Apr 10 09:27:50 2019 -0700 watchdog: xen_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 30f57e0f22bb94e0226febde03a012db3cc328f1 Author: Guenter Roeck Date: Wed Apr 10 09:27:49 2019 -0700 watchdog: wm831x_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit edaa35b5573c5fa5f01cd3f6fe3cb9a5e75f722f Author: Guenter Roeck Date: Wed Apr 10 09:27:48 2019 -0700 watchdog: wdat_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit b1f4718218fbba1e0760fd961f8710460b810906 Author: Guenter Roeck Date: Wed Apr 10 09:27:47 2019 -0700 watchdog: uniphier_wdt: drop platform_set_drvdata There is no call to dev_get_drvdata() or platform_get_drvdata() in the driver. Drop the unnecessary call to platform_set_drvdata(). The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Cc: Masahiro Yamada Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit b42488bcd667037b9ac9b8f8e1479758836ab236 Author: Guenter Roeck Date: Wed Apr 10 09:27:46 2019 -0700 watchdog: twl4030_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop empty remove function - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 16c4614f1e0449bc52688c8c0d8376d47a970256 Author: Guenter Roeck Date: Wed Apr 10 09:27:45 2019 -0700 watchdog: ts72xx_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 44affc086e6d5ea868c1184cdc5e1159e90ffb71 Author: Guenter Roeck Date: Wed Apr 10 09:27:44 2019 -0700 watchdog: ts4800_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop empty remove function - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 09fb6d010a574334ec3959b2ba206d8247565c8e Author: Guenter Roeck Date: Wed Apr 10 09:27:43 2019 -0700 watchdog: tqmx86_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit edad75280506036a947a6e180db2b2d350658eb8 Author: Guenter Roeck Date: Wed Apr 10 09:27:42 2019 -0700 watchdog: tegra_wdt: Use watchdog_stop_on_unregister and other improvements Use watchdog_stop_on_unregister() in probe instead of calling tegra_wdt_stop() in the remove function. Also introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. Finally, drop the now empty remove function. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Cc: Thierry Reding Cc: Jonathan Hunter Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 0a48f239bfce525f4b7de0952aadce89ac2c2689 Author: Bryan Tan Date: Wed Apr 10 12:49:33 2019 +0000 watchdog: wdat_wdt: fix get_timeleft call for wdat_wdt The get_timeleft call for wdat_wdt was using ACPI_WDAT_GET_COUNTDOWN when running an action on the device, which would return the configured countdown, instead of ACPI_WDAT_GET_CURRENT_COUNTDOWN, which returns the time left before the watchdog will fire. This change corrects that. Signed-off-by: Bryan Tan Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit c838a3ae614ba324f9e1d762440a6e031ee5bed6 Author: Guenter Roeck Date: Tue Apr 9 10:24:01 2019 -0700 watchdog: tangox_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop unnecessary braces around conditional return statements - Drop empty remove function - Use devm_add_action_or_reset() for calls to clk_disable_unprepare - Replace stop on remove with call to watchdog_stop_on_unregister() - Use devm_watchdog_register_driver() to register watchdog device Cc: Marc Gonzalez Cc: Mans Rullgard Signed-off-by: Guenter Roeck Acked-by: Mans Rullgard Signed-off-by: Wim Van Sebroeck commit 8ba41f6c4c88fa633ad4610f3bac6334a5420fe2 Author: Guenter Roeck Date: Tue Apr 9 10:24:00 2019 -0700 watchdog: sunxi_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Cc: Maxime Ripard Cc: Chen-Yu Tsai Signed-off-by: Guenter Roeck Acked-by: Maxime Ripard Signed-off-by: Wim Van Sebroeck commit d07c4ad8b2f34326c748e583c1639a3cc3c87d09 Author: Guenter Roeck Date: Tue Apr 9 10:23:59 2019 -0700 watchdog: stpmic1_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 55082c0301d6d0cfe03fb597d67fbf3e6a8d2d81 Author: Guenter Roeck Date: Tue Apr 9 10:23:58 2019 -0700 watchdog: stmp3xxx_rtc_wdt: Convert to use device managed functions Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device Cc: Maxime Coquelin Cc: Alexandre Torgue Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit cfe9ee3ab3ccd5a0b8e620d3890133b6ef876fa5 Author: Guenter Roeck Date: Tue Apr 9 10:23:57 2019 -0700 watchdog: st_lpc_wdt: Convert to use device managed functions Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Use devm_add_action_or_reset() for calls to clk_disable_unprepare - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device Cc: Patrice Chotard Signed-off-by: Guenter Roeck Acked-by: Patrice Chotard Signed-off-by: Wim Van Sebroeck commit 78d9bfad2e895cbd4482c76df5fcd6fe04d4986f Author: Guenter Roeck Date: Tue Apr 9 10:23:56 2019 -0700 watchdog: sprd_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Replace devm_add_action() followed by failure action with devm_add_action_or_reset() - Replace 'val = e; return val;' with 'return e;' - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 72dbc27c83d6f40b612f206060fda55d9a22f8ed Author: Guenter Roeck Date: Tue Apr 9 10:23:55 2019 -0700 watchdog: sirfsoc_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop empty remove function - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Replace shutdown function with call to watchdog_stop_on_reboot() - Replace stop on remove with call to watchdog_stop_on_unregister() - Use devm_watchdog_register_driver() to register watchdog device Cc: Barry Song Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit dcc3ce0b7d010be7b092f0c3ce26e6c35bb39bbb Author: Guenter Roeck Date: Tue Apr 9 10:23:54 2019 -0700 watchdog: sama5d4_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop empty remove function - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Replace stop on remove with call to watchdog_stop_on_unregister() - Use devm_watchdog_register_driver() to register watchdog device Cc: Nicolas Ferre Cc: Alexandre Belloni Cc: Ludovic Desroches Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 2361ac52898ef0b66502e1d872a4ceab872deefe Author: Guenter Roeck Date: Tue Apr 9 10:23:53 2019 -0700 watchdog: rza_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 553140a016d03d96a01cddce035ac49be14da7cf Author: Guenter Roeck Date: Tue Apr 9 10:23:52 2019 -0700 watchdog: rtd119x_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop unnecessary braces around conditional return statements - Drop empty remove function - Use devm_add_action_or_reset() for calls to clk_disable_unprepare - Replace 'of_clk_get(np, 0)' with 'devm_clk_get(dev, NULL)' - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit cc71859708e84f0ede91b46a1c3abe1cd5510828 Author: Guenter Roeck Date: Tue Apr 9 10:23:51 2019 -0700 watchdog: rn5t618_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit bba07e6ed72e98b7ee5a9c6d5a90ff786080d1f4 Author: Guenter Roeck Date: Tue Apr 9 10:23:50 2019 -0700 watchdog: qcom-wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop empty remove function - Use devm_add_action_or_reset() for calls to clk_disable_unprepare - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device Cc: Andy Gross Cc: David Brown Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 9723a82a97df45c1e80730d554db4f45f0394c50 Author: Guenter Roeck Date: Tue Apr 9 10:23:49 2019 -0700 watchdog: pm8916_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 801cdffe68f3f2479e11e6704e3ac25fcb4b5a98 Author: Guenter Roeck Date: Tue Apr 9 10:23:48 2019 -0700 watchdog: of_xilinx_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop empty remove function - Use devm_add_action_or_reset() for calls to clk_disable_unprepare - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device Cc: Michal Simek Signed-off-by: Guenter Roeck Acked-by: Michal Simek Signed-off-by: Wim Van Sebroeck commit 7e6437e1b0420b7a60144f79456ecef7da3944fd Author: Guenter Roeck Date: Tue Apr 9 10:23:47 2019 -0700 watchdog: npcm_wdt: Use local variable 'dev' consistently Use local variable 'struct device *dev' consistently. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Cc: Avi Fishman Cc: Tomer Maimon Cc: Patrick Venture Cc: Nancy Yuen Cc: Brendan Higgins Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit a15f6e646bce0cc8598f4e06997c93a983974879 Author: Guenter Roeck Date: Tue Apr 9 10:23:46 2019 -0700 watchdog: mtk_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop empty remove function - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device - Replace shutdown function with call to watchdog_stop_on_reboot() Cc: Matthias Brugger Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 615e40ad40c89aa46332144fd828e6588e6509b0 Author: Guenter Roeck Date: Tue Apr 9 10:23:45 2019 -0700 watchdog: moxart_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop empty remove function - Replace 'of_clk_get(np, 0)' with 'devm_clk_get(dev, NULL)' - Use local variable 'struct device *dev' consistently - Replace stop on remove with call to watchdog_stop_on_unregister() - Use devm_watchdog_register_driver() to register watchdog device Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 099e3039750078da3999972a727e2a4f86f95826 Author: Guenter Roeck Date: Tue Apr 9 10:23:44 2019 -0700 watchdog: mlx_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit dd1c66e22ecd1bec7eed72d8be280e5c8b269b79 Author: Guenter Roeck Date: Tue Apr 9 10:23:43 2019 -0700 watchdog: meson_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Cc: Kevin Hilman Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 1678f83095c27c145ffaaaaf5f09187ed747d731 Author: Guenter Roeck Date: Tue Apr 9 10:23:42 2019 -0700 watchdog: meson_gxbb_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop unnecessary braces around conditional return statements - Drop empty remove function - Use devm_add_action_or_reset() for calls to clk_disable_unprepare - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device - Replace shutdown function with call to watchdog_stop_on_reboot() Cc: Kevin Hilman Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 0c4ece9bfd9443f366b7e5132168fd70579a1a80 Author: Guenter Roeck Date: Tue Apr 9 10:23:41 2019 -0700 watchdog: menf21bmc_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop empty remove function - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device Cc: Andreas Werner Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 94ac20d831983faa7f2ecef570c5c84db596788b Author: Guenter Roeck Date: Tue Apr 9 10:23:40 2019 -0700 watchdog: mena21_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Cc: Johannes Thumshirn Signed-off-by: Guenter Roeck Reviewed-by: Johannes Thumshirn Signed-off-by: Wim Van Sebroeck commit b6e6bf4f9978f1799e8d2f257a2c7271606212cb Author: Guenter Roeck Date: Tue Apr 9 10:23:39 2019 -0700 watchdog: max77620_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop empty remove function - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Replace stop on remove with call to watchdog_stop_on_unregister() - Use devm_watchdog_register_driver() to register watchdog device Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 80cb6bddeb7dcea2baf793ec8905ac1746b2fc0a Author: Guenter Roeck Date: Mon Apr 8 12:38:46 2019 -0700 watchdog: max63xx_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop empty remove function - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit d2a10c312a45ec66169e0d380fa0cd81926017e7 Author: Guenter Roeck Date: Mon Apr 8 12:38:45 2019 -0700 watchdog: lpc18xx_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Use devm_add_action_or_reset() for calls to clk_disable_unprepare - Use local variable 'struct device *dev' consistently - Use devm_watchdog_register_driver() to register watchdog device - Replace shutdown function with call to watchdog_stop_on_reboot() Cc: Vladimir Zapolskiy Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 4689ba97550ed0969be8f6211852e2a98dee1fca Author: Guenter Roeck Date: Mon Apr 8 12:38:44 2019 -0700 watchdog: kempld_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop empty remove function - Use local variable 'struct device *dev' consistently - Use devm_watchdog_register_driver() to register watchdog device - Replace shutdown function with call to watchdog_stop_on_reboot() Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit b7b6adf32c9c82b9f4a4b917ba204d5a9c6fd2da Author: Guenter Roeck Date: Mon Apr 8 12:38:43 2019 -0700 watchdog: intel-mid_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 1f25cb289296338075ec0ed103d63cfb9418abb1 Author: Guenter Roeck Date: Mon Apr 8 12:38:42 2019 -0700 watchdog: imgpdc_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop empty remove function - Use devm_add_action_or_reset() for calls to clk_disable_unprepare - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device - Replace shutdown function with call to watchdog_stop_on_reboot() Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 77d9f766fe36f902125f84a1c901fa72d2157359 Author: Guenter Roeck Date: Mon Apr 8 12:38:41 2019 -0700 watchdog: iTCO_wdt: Various improvements Various coccinelle driven transformations as detailed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Use watchdog_stop_on_unregister to stop the watchdog on remove - Drop assignments to otherwise unused variables - Drop empty remove function Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 3564fbc54f9214194a348e7f7b606dc9313bc92c Author: Guenter Roeck Date: Mon Apr 8 12:38:40 2019 -0700 watchdog: gpio_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop empty remove function - Use local variable 'struct device *dev' consistently - Use devm_watchdog_register_driver() to register watchdog device Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit ca05c2e25120190fc8c818b801fe184b38d09b5a Author: Guenter Roeck Date: Mon Apr 8 12:38:39 2019 -0700 watchdog: ftwdt010_wdt: Use 'dev' consistently Use local variable 'dev' consistently. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit d6ab05106a70c584318479ec766f6f82c63e0541 Author: Guenter Roeck Date: Mon Apr 8 12:38:38 2019 -0700 watchdog: ep93xx_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit cecda01051e4ba585f35bb742158abfbe83b531a Author: Guenter Roeck Date: Mon Apr 8 12:38:37 2019 -0700 watchdog: davinci_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop unnecessary braces around conditional return statements - Drop empty remove function - Use devm_add_action_or_reset() for calls to clk_disable_unprepare - Use local variable 'struct device *dev' consistently - Use devm_watchdog_register_driver() to register watchdog device Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 865802917f7c0f5ce290a3322b4e23b3b6ba7155 Author: Guenter Roeck Date: Mon Apr 8 12:38:36 2019 -0700 watchdog: da9063_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Cc: Support Opensource Signed-off-by: Guenter Roeck Acked-by: Steve Twiss Signed-off-by: Wim Van Sebroeck commit 6e8a7c75d7e5d2861529cc8f43b958e834b900f7 Author: Guenter Roeck Date: Mon Apr 8 12:38:35 2019 -0700 watchdog: da9062_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. Also replace 'ret = func(); return ret;' with 'return func();'. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Cc: Support Opensource Signed-off-by: Guenter Roeck Acked-by: Steve Twiss Signed-off-by: Wim Van Sebroeck commit 862c13b5518c556fce974ddcc9837fa94176adff Author: Guenter Roeck Date: Mon Apr 8 12:38:34 2019 -0700 watchdog: da9055_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Cc: Support Opensource Signed-off-by: Guenter Roeck Acked-by: Steve Twiss Signed-off-by: Wim Van Sebroeck commit f7e29623e2678c51934553b723bdec30d70986fe Author: Guenter Roeck Date: Mon Apr 8 12:38:33 2019 -0700 watchdog: da9052_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Cc: Support Opensource Signed-off-by: Guenter Roeck Acked-by: Steve Twiss Signed-off-by: Wim Van Sebroeck commit 605d8c4f33a70bda808d3af9de014e48929f947c Author: Guenter Roeck Date: Mon Apr 8 12:38:32 2019 -0700 watchdog: cadence_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop empty remove function - Use devm_add_action_or_reset() for calls to clk_disable_unprepare - Replace 'goto l; ... l: return e;' with 'return e;' - Replace 'val = e; return val;' with 'return e;' - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device - Replace shutdown function with call to watchdog_stop_on_reboot() Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 4062ec06b7d7176870437a7a728e0a9aa3566352 Author: Guenter Roeck Date: Mon Apr 8 12:38:31 2019 -0700 watchdog: bcm_kona_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Use local variable 'struct device *dev' consistently - Use devm_watchdog_register_driver() to register watchdog device - Replace shutdown function with call to watchdog_stop_on_reboot() Cc: Florian Fainelli Cc: Ray Jui Cc: Scott Branden Cc: bcm-kernel-feedback-list@broadcom.com Signed-off-by: Guenter Roeck Reviewed-by: Ray Jui Signed-off-by: Wim Van Sebroeck commit 69656dcd4f9dbf12dc40e8d91fe0acb702777fd2 Author: Guenter Roeck Date: Mon Apr 8 12:38:30 2019 -0700 watchdog: bcm7038_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop empty remove function - Use devm_add_action_or_reset() for calls to clk_disable_unprepare - Use local variable 'struct device *dev' consistently - Use devm_watchdog_register_driver() to register watchdog device - Replace shutdown function with call to watchdog_stop_on_reboot() Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit dcbb613fa8de951e0161bb4cd5205fca33731f09 Author: Guenter Roeck Date: Mon Apr 8 12:38:29 2019 -0700 watchdog: bcm2835_wdt: drop platform_set_drvdata There is no call to platform_get_drvdata() in the driver, so platform_set_drvdata() is unnecessary and can be dropped. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Cc: Florian Fainelli Cc: Ray Jui Cc: Scott Branden Cc: bcm-kernel-feedback-list@broadcom.com Cc: Eric Anholt Cc: Stefan Wahren Signed-off-by: Guenter Roeck Acked-by: Stefan Wahren Signed-off-by: Wim Van Sebroeck commit f332ce5d88f10374fa7ff4d2d350a4c96998e6f2 Author: Guenter Roeck Date: Mon Apr 8 12:38:28 2019 -0700 watchdog: atlas7_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop unnecessary braces around conditional return statements - Drop empty remove function - Use devm_add_action_or_reset() for calls to clk_disable_unprepare - Replace 'of_clk_get(np, 0)' with 'devm_clk_get(dev, NULL)' - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device - Replace shutdown function with call to watchdog_stop_on_reboot() Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit eda21ee945069c78f2f9c888c88b2657869101a3 Author: Guenter Roeck Date: Mon Apr 8 12:38:27 2019 -0700 watchdog: aspeed_wdt: Use 'dev' instead of dereferencing it repeatedly Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches Cc: Joel Stanley Cc: Andrew Jeffery Signed-off-by: Guenter Roeck Reviewed-by: Andrew Jeffery Signed-off-by: Wim Van Sebroeck commit f57df8352817d745dd472ea1ca1b78a1f824b0d9 Author: Guenter Roeck Date: Mon Apr 8 12:38:26 2019 -0700 watchdog: asm9260_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop empty remove function - Use devm_add_action_or_reset() for calls to clk_disable_unprepare - Replace 'goto l; ... l: return e;' with 'return e;' - Introduce local variable 'struct device *dev' and use it instead of dereferencing it repeatedly - Use devm_watchdog_register_driver() to register watchdog device - Replace shutdown function with call to watchdog_stop_on_reboot() Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit b09c153927c10abb70b01fa66753aec4d21ee70e Author: Guenter Roeck Date: Mon Apr 8 12:38:25 2019 -0700 watchdog: armada_37xx_wdt: Convert to use device managed functions and other improvements Use device managed functions to simplify error handling, reduce source code size, improve readability, and reduce the likelyhood of bugs. Other improvements as listed below. The conversion was done automatically with coccinelle using the following semantic patches. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches - Drop assignments to otherwise unused variables - Drop unnecessary braces around conditional return statements - Drop empty remove function - Use devm_add_action_or_reset() for calls to clk_disable_unprepare - Use devm_watchdog_register_driver() to register watchdog device - Replace shutdown function with call to watchdog_stop_on_reboot() Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit b07e228eee69601addba98b47b1a3850569e5013 Author: Georg Hofmann Date: Mon Apr 8 21:25:54 2019 +0200 watchdog: imx2_wdt: Fix set_timeout for big timeout values The documentated behavior is: if max_hw_heartbeat_ms is implemented, the minimum of the set_timeout argument and max_hw_heartbeat_ms should be used. This patch implements this behavior. Previously only the first 7bits were used and the input argument was returned. Signed-off-by: Georg Hofmann Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 33052fbb4f25148ffa8fa417aeaab33b9dc3f37e Author: Hariprasad Kelam Date: Sat Apr 6 18:44:15 2019 +0530 watchdog: machzwd : fix warning Using plain integer as NULL pointer Changes passing function argument 0 to NULL to avoid below sparse warning CHECK drivers/watchdog//machzwd.c drivers/watchdog//machzwd.c:321:25: warning: Using plain integer as NULL pointer Signed-off-by: Hariprasad Kelam Reviewed-by: Mukesh Ojha Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 8dd29f19512cc75ee470d7bb8ec86af199de23a8 Author: Guenter Roeck Date: Sun Apr 7 08:29:35 2019 -0700 watchdog: rtd119x_wdt: Fix remove function The driver registers the watchdog with devm_watchdog_register_device() but still calls watchdog_unregister_device() on remove. Since clocks have to be stopped when removing the driver, after the watchdog device has been unregistered, we can not drop the call to watchdog_unregister_device(). Use watchdog_register_device() to register the watchdog. Fixes: 2bdf6acbfead7 ("watchdog: Add Realtek RTD1295") Cc: Andreas Färber Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit e2a4aeda87d39b616c4064ae8c67972f283067ee Author: YueHaibing Date: Wed Mar 20 21:42:50 2019 +0800 watchdog: sb_wdog: Make sbwdog_set and sbwdog_pet static Fix sparse warning: drivers/watchdog/sb_wdog.c:70:6: warning: symbol 'sbwdog_set' was not declared. Should it be static? drivers/watchdog/sb_wdog.c:84:6: warning: symbol 'sbwdog_pet' was not declared. Should it be static? Signed-off-by: YueHaibing Acked-by: Mukesh Ojha Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 265d11ccd505f5672887636a6af1ddff443035d1 Author: Gustavo A. R. Silva Date: Wed Mar 20 13:16:58 2019 -0500 watchdog: alim7101: Mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warning: drivers/watchdog/alim7101_wdt.c: In function ‘fop_ioctl’: drivers/watchdog/alim7101_wdt.c:279:3: warning: this statement may fall through [-Wimplicit-fallthrough=] wdt_keepalive(); ^~~~~~~~~~~~~~~ drivers/watchdog/alim7101_wdt.c:282:2: note: here case WDIOC_GETTIMEOUT: ^~~~ Notice that, in this particular case, the /* Fall through */ comment is placed at the very bottom of the case statement, which is what GCC is expecting to find. Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enabling -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 0f0a6a285ec0c7b0ac0b532f87a784605322f9ce Author: Guenter Roeck Date: Tue Apr 2 12:01:53 2019 -0700 watchdog: Convert to use devm_platform_ioremap_resource Use devm_platform_ioremap_resource to reduce source code size, improve readability, and reduce the likelyhood of bugs. The conversion was done automatically with coccinelle using the following semantic patch. @r@ identifier res, pdev; expression a; expression index; expression e; @@ <+... - res = platform_get_resource(pdev, IORESOURCE_MEM, index); - a = devm_ioremap_resource(e, res); + a = devm_platform_ioremap_resource(pdev, index); ...+> @depends on r@ identifier r.res; @@ - struct resource *res; ... when != res @@ identifier res, pdev; expression index; expression a; @@ - struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, index); - a = devm_ioremap_resource(&pdev->dev, res); + a = devm_platform_ioremap_resource(pdev, index); Cc: Joel Stanley Cc: Nicolas Ferre Cc: Alexandre Belloni Cc: Florian Fainelli Cc: Linus Walleij Cc: Baruch Siach Cc: Keguang Zhang Cc: Vladimir Zapolskiy Cc: Kevin Hilman Cc: Matthias Brugger Cc: Avi Fishman Cc: Nancy Yuen Cc: Brendan Higgins Cc: Wan ZongShun Cc: Michal Simek Cc: Sylvain Lemieux Cc: Kukjin Kim Cc: Barry Song Cc: Orson Zhai Cc: Patrice Chotard Cc: Maxime Coquelin Cc: Maxime Ripard Cc: Chen-Yu Tsai Cc: Marc Gonzalez Cc: Thierry Reding Cc: Shawn Guo Signed-off-by: Guenter Roeck Acked-by: Alexandre Belloni Tested-by: Alexandre Belloni Acked-by: Joel Stanley Reviewed-by: Linus Walleij Acked-by: Maxime Ripard Acked-by: Michal Simek (cadence/xilinx wdts) Acked-by: Thierry Reding Reviewed-by: Florian Fainelli Acked-by: Patrice Chotard Acked-by: Vladimir Zapolskiy Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 24b8225619cb18491c3a8689cf533a58547b5f5f Author: Anson Huang Date: Mon Apr 1 05:04:30 2019 +0000 watchdog: imx2_wdt: use devm_platform_ioremap_resource() to simplify code Use the new helper devm_platform_ioremap_resource() which wraps the platform_get_resource() and devm_ioremap_resource() together, to simplify the code. Signed-off-by: Anson Huang Reviewed-by: Mukesh Ojha Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 986857acbc9a9a4fc05c11b902c03a8b5e12dd53 Author: Anson Huang Date: Thu Mar 21 02:26:47 2019 +0000 watchdog: imx_sc: Add i.MX system controller watchdog support i.MX8QXP is an ARMv8 SoC which has a Cortex-M4 system controller inside, the system controller is in charge of controlling power, clock and watchdog etc.. This patch adds i.MX system controller watchdog driver support, watchdog operation needs to be done in secure EL3 mode via ARM-Trusted-Firmware, using SMC call, CPU will trap into ARM-Trusted-Firmware and then it will request system controller to do watchdog operation via IPC. Signed-off-by: Anson Huang Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit bb83520d269536f5d48b609a23ec0a1fdabbe503 Author: Anson Huang Date: Thu Mar 21 02:26:38 2019 +0000 dt-bindings: watchdog: add i.MX system controller watchdog Add i.MX system controller watchdog binding doc. Signed-off-by: Anson Huang Acked-by: Rob Herring Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit bbc88a0ec9f37c36275034cf7c80f9b3fd6143d6 Author: Matti Vaittinen Date: Thu May 2 12:17:43 2019 +0300 watchdog: bd70528: Initial support for ROHM BD70528 watchdog block Initial support for watchdog block included in ROHM BD70528 power management IC. Configurations for low power states are still to be checked. Signed-off-by: Matti Vaittinen Acked-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit e347afa5fb488132be61f1222e4cf6b87255021c Author: Ji-Ze Hong (Peter Hong) Date: Wed Mar 27 14:42:51 2019 +0800 watchdog: f71808e_wdt: fix F81866 bit operation Fix error bit operation in watchdog_start() Fixes: 14b24a88a3660 ("watchdog: f71808e_wdt: Add F81866 support") Signed-off-by: Ji-Ze Hong (Peter Hong) Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit a3f764d2eea537f6eb502b23f915d1caaec2b7ea Author: Ji-Ze Hong (Peter Hong) Date: Wed Mar 27 14:42:50 2019 +0800 watchdog: f71808e_wdt: separate declaration and assignment Separate declaration and assignment in watchdog_start() Signed-off-by: Ji-Ze Hong (Peter Hong) Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit f6cc8b355c030ed673330b5fb31e5f6e546a33b4 Author: Matteo Croce Date: Mon Mar 18 02:19:15 2019 +0100 watchdog: i6300esb: stop printing kernel addresses Since commit ad67b74d2469d9b8 ("printk: hash addresses printed with %p"), i6300esb prints "____ptrval____" instead of actual addresses: i6300ESB timer 0000:00:03.0: initialized (0x(____ptrval____)). heartbeat=30 sec (nowayout=1) Instead of changing the print to "%px", and leaking kernel addresses, just remove the print completely, cfr. e.g. commit 071929dbdd865f77 ("arm64: Stop printing the virtual memory layout"). Signed-off-by: Matteo Croce Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit a223770bfa7b6647f3a70983257bd89f9cafce46 Author: Vladimir Zapolskiy Date: Tue Mar 12 01:54:25 2019 +0200 watchdog: fix compile time error of pretimeout governors CONFIG_WATCHDOG_PRETIMEOUT_GOV build symbol adds watchdog_pretimeout.o object to watchdog.o, the latter is compiled only if CONFIG_WATCHDOG_CORE is selected, so it rightfully makes sense to add it as a dependency. The change fixes the next compilation errors, if CONFIG_WATCHDOG_CORE=n and CONFIG_WATCHDOG_PRETIMEOUT_GOV=y are selected: drivers/watchdog/pretimeout_noop.o: In function `watchdog_gov_noop_register': drivers/watchdog/pretimeout_noop.c:35: undefined reference to `watchdog_register_governor' drivers/watchdog/pretimeout_noop.o: In function `watchdog_gov_noop_unregister': drivers/watchdog/pretimeout_noop.c:40: undefined reference to `watchdog_unregister_governor' drivers/watchdog/pretimeout_panic.o: In function `watchdog_gov_panic_register': drivers/watchdog/pretimeout_panic.c:35: undefined reference to `watchdog_register_governor' drivers/watchdog/pretimeout_panic.o: In function `watchdog_gov_panic_unregister': drivers/watchdog/pretimeout_panic.c:40: undefined reference to `watchdog_unregister_governor' Reported-by: Kuo, Hsuan-Chi Fixes: ff84136cb6a4 ("watchdog: add watchdog pretimeout governor framework") Signed-off-by: Vladimir Zapolskiy Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit 56fb19652504990a7eb586292999fd9a440f14cd Author: Chris Packham Date: Tue Mar 5 11:51:51 2019 +1300 watchdog: orion_wdt: remove orion_wdt_set_timeout The watchdog core will do the same thing if no set_timeout is supplied so we can safely remove orion_wdt_set_timeout. Signed-off-by: Chris Packham Reviewed-by: Guenter Roeck Signed-off-by: Guenter Roeck Signed-off-by: Wim Van Sebroeck commit caa841360134f863987f2d4f77b8dc2fbb7596f8 Author: Nadav Amit Date: Sat May 4 18:11:24 2019 -0700 x86/mm: Initialize PGD cache during mm initialization Poking-mm initialization might require to duplicate the PGD in early stage. Initialize the PGD cache earlier to prevent boot failures. Reported-by: kernel test robot Signed-off-by: Nadav Amit Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rick Edgecombe Cc: Rik van Riel Cc: Stephen Rothwell Cc: Thomas Gleixner Fixes: 4fc19708b165 ("x86/alternatives: Initialize temporary mm for patching") Link: http://lkml.kernel.org/r/20190505011124.39692-1-namit@vmware.com Signed-off-by: Ingo Molnar commit 9b3040a6aafd7898ece7fc7efcbca71e42aa8069 Author: David Ahern Date: Sun May 5 11:16:20 2019 -0700 ipv4: Define __ipv4_neigh_lookup_noref when CONFIG_INET is disabled Define __ipv4_neigh_lookup_noref to return NULL when CONFIG_INET is disabled. Fixes: 4b2a2bfeb3f0 ("neighbor: Call __ipv4_neigh_lookup_noref in neigh_xmit") Reported-by: kbuild test robot Signed-off-by: David Ahern Signed-off-by: David S. Miller commit d1f5050b4549fbacd3b3e60126b3bb7270ad8dd1 Author: Heiner Kallweit Date: Sat May 4 15:20:38 2019 +0200 r8169: speed up rtl_loop_wait When testing I figured out that most operations signal finish even before we trigger the first delay. Seems like PCI(e) access and memory barriers typically add enough latency. Therefore move the first delay after the first check. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 9cf9b84cc701c791a4d864ae61b673059ea32d04 Author: Heiner Kallweit Date: Sat May 4 12:01:03 2019 +0200 r8169: make use of phy_set_asym_pause phy_probe() takes care that all supported modes are advertised, in addition use phy_support_asym_pause() to advertise pause modes. This way we don't have to deal with phylib internals directly. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 6e05b833de447b6718735d0315fb18fb411ef8ca Author: YueHaibing Date: Sat May 4 18:10:30 2019 +0800 net: ll_temac: Make some functions static Fix sparse warnings: drivers/net/ethernet/xilinx/ll_temac_main.c:66:5: warning: symbol '_temac_ior_be' was not declared. Should it be static? drivers/net/ethernet/xilinx/ll_temac_main.c:71:6: warning: symbol '_temac_iow_be' was not declared. Should it be static? drivers/net/ethernet/xilinx/ll_temac_main.c:76:5: warning: symbol '_temac_ior_le' was not declared. Should it be static? drivers/net/ethernet/xilinx/ll_temac_main.c:81:6: warning: symbol '_temac_iow_le' was not declared. Should it be static? drivers/net/ethernet/xilinx/ll_temac_main.c:648:6: warning: symbol 'ptr_to_txbd' was not declared. Should it be static? drivers/net/ethernet/xilinx/ll_temac_main.c:654:6: warning: symbol 'ptr_from_txbd' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing Signed-off-by: David S. Miller commit 44bec4b3bd71a169f967cae8d5ad503e60f0a165 Author: YueHaibing Date: Sat May 4 17:57:55 2019 +0800 net: aquantia: Make aq_ndev_driver_name static Fix sparse warning: drivers/net/ethernet/aquantia/atlantic/aq_main.c:26:12: warning: symbol 'aq_ndev_driver_name' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing Signed-off-by: David S. Miller commit 69bbbdc5e1aa0f8e9e5cbc510479cae6dd030621 Author: YueHaibing Date: Sat May 4 16:12:07 2019 +0800 netdevsim: Make nsim_num_vf static Fix sparse warning: drivers/net/netdevsim/bus.c:253:5: warning: symbol 'nsim_num_vf' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing Acked-by: Jakub Kicinski Signed-off-by: David S. Miller commit c424d224404e9d565202979de119b04a68d34dee Author: YueHaibing Date: Sat May 4 04:04:05 2019 +0000 net: mvpp2: cls: Remove set but not used variable 'act' Fixes gcc '-Wunused-but-set-variable' warning: drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c: In function 'mvpp2_cls_c2_build_match': drivers/net/ethernet/marvell/mvpp2/mvpp2_cls.c:1159:28: warning: variable 'act' set but not used [-Wunused-but-set-variable] It is never used since introduction in commit 90b509b39ac9 ("net: mvpp2: cls: Add Classification offload support") Signed-off-by: YueHaibing Signed-off-by: David S. Miller commit aa2ecb7c8f9519c8734c5b6fa57570ed6197de5e Author: Johannes Berg Date: Fri May 3 20:21:33 2019 +0200 um: vector netdev: adjust to xmit_more API change Replace skb->xmit_more usage by netdev_xmit_more(). Fixes: 4f296edeb9d4 ("drivers: net: aurora: use netdev_xmit_more helper") Signed-off-by: Johannes Berg Signed-off-by: David S. Miller commit 47d3d7fdb10a21c223036b58bd70ffdc24a472c4 Author: Eric Dumazet Date: Fri May 3 08:24:44 2019 -0700 ip6: fix skb leak in ip6frag_expire_frag_queue() Since ip6frag_expire_frag_queue() now pulls the head skb from frag queue, we should no longer use skb_get(), since this leads to an skb leak. Stefan Bader initially reported a problem in 4.4.stable [1] caused by the skb_get(), so this patch should also fix this issue. 296583.091021] kernel BUG at /build/linux-6VmqmP/linux-4.4.0/net/core/skbuff.c:1207! [296583.091734] Call Trace: [296583.091749] [] __pskb_pull_tail+0x50/0x350 [296583.091764] [] _decode_session6+0x26a/0x400 [296583.091779] [] __xfrm_decode_session+0x39/0x50 [296583.091795] [] icmpv6_route_lookup+0xf0/0x1c0 [296583.091809] [] icmp6_send+0x5e1/0x940 [296583.091823] [] ? __netif_receive_skb+0x18/0x60 [296583.091838] [] ? netif_receive_skb_internal+0x32/0xa0 [296583.091858] [] ? ixgbe_clean_rx_irq+0x594/0xac0 [ixgbe] [296583.091876] [] ? nf_ct_net_exit+0x50/0x50 [nf_defrag_ipv6] [296583.091893] [] icmpv6_send+0x21/0x30 [296583.091906] [] ip6_expire_frag_queue+0xe0/0x120 [296583.091921] [] nf_ct_frag6_expire+0x1f/0x30 [nf_defrag_ipv6] [296583.091938] [] call_timer_fn+0x37/0x140 [296583.091951] [] ? nf_ct_net_exit+0x50/0x50 [nf_defrag_ipv6] [296583.091968] [] run_timer_softirq+0x234/0x330 [296583.091982] [] __do_softirq+0x109/0x2b0 Fixes: d4289fcc9b16 ("net: IP6 defrag: use rbtrees for IPv6 defrag") Signed-off-by: Eric Dumazet Reported-by: Stefan Bader Cc: Peter Oskolkov Cc: Florian Westphal Signed-off-by: David S. Miller commit c90d1e4b6be6fc531ee076e26e4e5bf058925ac3 Merge: b52d031b8de4 8c3c447b3cec Author: David S. Miller Date: Sun May 5 10:38:04 2019 -0700 Merge branch 'net-extend-indirect-calls-helper-usage' Paolo Abeni says: ==================== net: extend indirect calls helper usage This series applies the indirect calls helper introduced with commit 283c16a2dfd3 ("indirect call wrappers: helpers to speed-up indirect calls of builtin") to more hooks inside the network stack. Overall this avoids up to 4 indirect calls for each RX packets, giving small but measurable gain TCP_RR workloads and 5% under UDP flood. ==================== Signed-off-by: David S. Miller commit 8c3c447b3cec27cf6f77080f4d157d53b64e9555 Author: Paolo Abeni Date: Fri May 3 17:01:39 2019 +0200 net: use indirect calls helpers at the socket layer This avoids an indirect call per {send,recv}msg syscall in the common (IPv6 or IPv4 socket) case. Signed-off-by: Paolo Abeni Signed-off-by: David S. Miller commit 97ff7ffb11fe7a859a490771e7ce23f1f335176b Author: Paolo Abeni Date: Fri May 3 17:01:38 2019 +0200 net: use indirect calls helpers at early demux stage So that we avoid another indirect call per RX packet, if early demux is enabled. Signed-off-by: Paolo Abeni Signed-off-by: David S. Miller commit 0e219ae48c3bbf382ef96adf3825457315728c03 Author: Paolo Abeni Date: Fri May 3 17:01:37 2019 +0200 net: use indirect calls helpers for L3 handler hooks So that we avoid another indirect call per RX packet in the common case. Signed-off-by: Paolo Abeni Signed-off-by: David S. Miller commit f5737cbadb7d07c4f71fc5f073ccc7d8d8985a8f Author: Paolo Abeni Date: Fri May 3 17:01:36 2019 +0200 net: use indirect calls helpers for ptype hook This avoids an indirect call per RX IPv6/IPv4 packet. Note that we don't want to use the indirect calls helper for taps. Signed-off-by: Paolo Abeni Signed-off-by: David S. Miller commit 62a91990f4c52f0b56cfae3e4093a27ed61c49db Author: Matthias Kaehlcke Date: Mon Apr 29 16:21:30 2019 -0700 Bluetooth: hci_qca: Rename STATE_ to QCA_ Rename STATE_IN_BAND_SLEEP_ENABLED to QCA_IBS_ENABLED. The constant represents a flag (multiple flags can be set at once), not a unique state of the controller or driver. Also make the flag an enum value instead of a pre-processor constant (more flags will be added to the enum group by another patch). Signed-off-by: Matthias Kaehlcke Reviewed-by: Balakrishna Godavarthi Signed-off-by: Marcel Holtmann commit ee0df19305d9fabd9479b785918966f6e25b733b Author: Christophe Leroy Date: Fri May 3 13:33:23 2019 +0000 net: ucc_geth - fix Oops when changing number of buffers in the ring When changing the number of buffers in the RX ring while the interface is running, the following Oops is encountered due to the new number of buffers being taken into account immediately while their allocation is done when opening the device only. [ 69.882706] Unable to handle kernel paging request for data at address 0xf0000100 [ 69.890172] Faulting instruction address: 0xc033e164 [ 69.895122] Oops: Kernel access of bad area, sig: 11 [#1] [ 69.900494] BE PREEMPT CMPCPRO [ 69.907120] CPU: 0 PID: 0 Comm: swapper Not tainted 4.14.115-00006-g179ade8ce3-dirty #269 [ 69.915956] task: c0684310 task.stack: c06da000 [ 69.920470] NIP: c033e164 LR: c02e44d0 CTR: c02e41fc [ 69.925504] REGS: dfff1e20 TRAP: 0300 Not tainted (4.14.115-00006-g179ade8ce3-dirty) [ 69.934161] MSR: 00009032 CR: 22004428 XER: 20000000 [ 69.940869] DAR: f0000100 DSISR: 20000000 [ 69.940869] GPR00: c0352d70 dfff1ed0 c0684310 f00000a4 00000040 dfff1f68 00000000 0000001f [ 69.940869] GPR08: df53f410 1cc00040 00000021 c0781640 42004424 100c82b6 f00000a4 df53f5b0 [ 69.940869] GPR16: df53f6c0 c05daf84 00000040 00000000 00000040 c0782be4 00000000 00000001 [ 69.940869] GPR24: 00000000 df53f400 000001b0 df53f410 df53f000 0000003f df708220 1cc00044 [ 69.978348] NIP [c033e164] skb_put+0x0/0x5c [ 69.982528] LR [c02e44d0] ucc_geth_poll+0x2d4/0x3f8 [ 69.987384] Call Trace: [ 69.989830] [dfff1ed0] [c02e4554] ucc_geth_poll+0x358/0x3f8 (unreliable) [ 69.996522] [dfff1f20] [c0352d70] net_rx_action+0x248/0x30c [ 70.002099] [dfff1f80] [c04e93e4] __do_softirq+0xfc/0x310 [ 70.007492] [dfff1fe0] [c0021124] irq_exit+0xd0/0xd4 [ 70.012458] [dfff1ff0] [c000e7e0] call_do_irq+0x24/0x3c [ 70.017683] [c06dbe80] [c0006bac] do_IRQ+0x64/0xc4 [ 70.022474] [c06dbea0] [c001097c] ret_from_except+0x0/0x14 [ 70.027964] --- interrupt: 501 at rcu_idle_exit+0x84/0x90 [ 70.027964] LR = rcu_idle_exit+0x74/0x90 [ 70.037585] [c06dbf60] [20000000] 0x20000000 (unreliable) [ 70.042984] [c06dbf80] [c004bb0c] do_idle+0xb4/0x11c [ 70.047945] [c06dbfa0] [c004bd14] cpu_startup_entry+0x18/0x1c [ 70.053682] [c06dbfb0] [c05fb034] start_kernel+0x370/0x384 [ 70.059153] [c06dbff0] [00003438] 0x3438 [ 70.063062] Instruction dump: [ 70.066023] 38a00000 38800000 90010014 4bfff015 80010014 7c0803a6 3123ffff 7c691910 [ 70.073767] 38210010 4e800020 38600000 4e800020 <80e3005c> 80c30098 3107ffff 7d083910 [ 70.081690] ---[ end trace be7ccd9c1e1a9f12 ]--- This patch forbids the modification of the number of buffers in the ring while the interface is running. Fixes: ac421852b3a0 ("ucc_geth: add ethtool support") Signed-off-by: Christophe Leroy Signed-off-by: David S. Miller commit 17170e6570c082717c142733d9a638bcd20551f8 Author: Laurentiu Tudor Date: Fri May 3 16:03:11 2019 +0300 dpaa_eth: fix SG frame cleanup Fix issue with the entry indexing in the sg frame cleanup code being off-by-1. This problem showed up when doing some basic iperf tests and manifested in traffic coming to a halt. Signed-off-by: Laurentiu Tudor Acked-by: Madalin Bucur Signed-off-by: David S. Miller commit b52d031b8de496c39e0ba1b8cf5292ad8e4ae4fe Author: Dan Carpenter Date: Fri May 3 15:50:51 2019 +0300 net: ll_temac: remove an unnecessary condition The "pdata->mdio_bus_id" is unsigned so this condition is always true. This patch just removes it. Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller commit 1ffc4b7c58e9eb505ea45a9ba2c5537c60de6eec Author: Dan Carpenter Date: Fri May 3 15:50:24 2019 +0300 net: ll_temac: Fix an NULL vs IS_ERR() check in temac_open() The phy_connect() function doesn't return NULL pointers. It returns error pointers on error, so I have updated the check. Fixes: 8425c41d1ef7 ("net: ll_temac: Extend support to non-device-tree platforms") Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller commit f80c5dad7b6467b884c445ffea45985793b4b2d0 Author: João Paulo Rechi Vita Date: Thu May 2 10:01:52 2019 +0800 Bluetooth: Ignore CC events not matching the last HCI command This commit makes the kernel not send the next queued HCI command until a command complete arrives for the last HCI command sent to the controller. This change avoids a problem with some buggy controllers (seen on two SKUs of QCA9377) that send an extra command complete event for the previous command after the kernel had already sent a new HCI command to the controller. The problem was reproduced when starting an active scanning procedure, where an extra command complete event arrives for the LE_SET_RANDOM_ADDR command. When this happends the kernel ends up not processing the command complete for the following commmand, LE_SET_SCAN_PARAM, and ultimately behaving as if a passive scanning procedure was being performed, when in fact controller is performing an active scanning procedure. This makes it impossible to discover BLE devices as no device found events are sent to userspace. This problem is reproducible on 100% of the attempts on the affected controllers. The extra command complete event can be seen at timestamp 27.420131 on the btmon logs bellow. Bluetooth monitor ver 5.50 = Note: Linux version 5.0.0+ (x86_64) 0.352340 = Note: Bluetooth subsystem version 2.22 0.352343 = New Index: 80:C5:F2:8F:87:84 (Primary,USB,hci0) [hci0] 0.352344 = Open Index: 80:C5:F2:8F:87:84 [hci0] 0.352345 = Index Info: 80:C5:F2:8F:87:84 (Qualcomm) [hci0] 0.352346 @ MGMT Open: bluetoothd (privileged) version 1.14 {0x0001} 0.352347 @ MGMT Open: btmon (privileged) version 1.14 {0x0002} 0.352366 @ MGMT Open: btmgmt (privileged) version 1.14 {0x0003} 27.302164 @ MGMT Command: Start Discovery (0x0023) plen 1 {0x0003} [hci0] 27.302310 Address type: 0x06 LE Public LE Random < HCI Command: LE Set Random Address (0x08|0x0005) plen 6 #1 [hci0] 27.302496 Address: 15:60:F2:91:B2:24 (Non-Resolvable) > HCI Event: Command Complete (0x0e) plen 4 #2 [hci0] 27.419117 LE Set Random Address (0x08|0x0005) ncmd 1 Status: Success (0x00) < HCI Command: LE Set Scan Parameters (0x08|0x000b) plen 7 #3 [hci0] 27.419244 Type: Active (0x01) Interval: 11.250 msec (0x0012) Window: 11.250 msec (0x0012) Own address type: Random (0x01) Filter policy: Accept all advertisement (0x00) > HCI Event: Command Complete (0x0e) plen 4 #4 [hci0] 27.420131 LE Set Random Address (0x08|0x0005) ncmd 1 Status: Success (0x00) < HCI Command: LE Set Scan Enable (0x08|0x000c) plen 2 #5 [hci0] 27.420259 Scanning: Enabled (0x01) Filter duplicates: Enabled (0x01) > HCI Event: Command Complete (0x0e) plen 4 #6 [hci0] 27.420969 LE Set Scan Parameters (0x08|0x000b) ncmd 1 Status: Success (0x00) > HCI Event: Command Complete (0x0e) plen 4 #7 [hci0] 27.421983 LE Set Scan Enable (0x08|0x000c) ncmd 1 Status: Success (0x00) @ MGMT Event: Command Complete (0x0001) plen 4 {0x0003} [hci0] 27.422059 Start Discovery (0x0023) plen 1 Status: Success (0x00) Address type: 0x06 LE Public LE Random @ MGMT Event: Discovering (0x0013) plen 2 {0x0003} [hci0] 27.422067 Address type: 0x06 LE Public LE Random Discovery: Enabled (0x01) @ MGMT Event: Discovering (0x0013) plen 2 {0x0002} [hci0] 27.422067 Address type: 0x06 LE Public LE Random Discovery: Enabled (0x01) @ MGMT Event: Discovering (0x0013) plen 2 {0x0001} [hci0] 27.422067 Address type: 0x06 LE Public LE Random Discovery: Enabled (0x01) Signed-off-by: João Paulo Rechi Vita Signed-off-by: Marcel Holtmann commit 300926b138eb30ce1763d1d10604230d4d38d64a Author: Stephan Gerhold Date: Wed May 1 09:18:23 2019 +0200 Bluetooth: btbcm: Add default address for BCM2076B1 BCM2076B1 appears to use 20:76:A0:00:56:79 as default address. This address is used by at least 5 devices with the AMPAK AP6476 module and is also suspicious because it starts with the chip name 2076 (followed by a different revision A0 for some reason). Add it to the list of default addresses and leave it up to the user to configure a valid one. Signed-off-by: Stephan Gerhold Signed-off-by: Marcel Holtmann commit fdd1a8103a6df50bdeacd8bb04c3f6976cb9ae41 Author: Dan Carpenter Date: Fri May 3 15:39:48 2019 +0300 net: atm: clean up a range check The code works fine but the problem is that check for negatives is a no-op: if (arg < 0) i = 0; The "i" value isn't used. We immediately overwrite it with: i = array_index_nospec(arg, MAX_LEC_ITF); The array_index_nospec() macro returns zero if "arg" is out of bounds so this works, but the dead code is confusing and it doesn't look very intentional. Signed-off-by: Dan Carpenter Signed-off-by: David S. Miller commit 6ffe0acc935f344eb0b35da07c034d5122222e77 Merge: cc0d47b8eeb0 f9b628d61fae Author: David S. Miller Date: Sun May 5 10:20:53 2019 -0700 Merge tag 'wireless-drivers-next-for-davem-2019-05-03' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next Kalle Valo says: ==================== wireless-drivers-next patches for 5.2 Most likely the last patchset of new feature for 5.2, and this time we have quite a lot of new features. Most obvious being rtw88 from Realtek which supports RTL8822BE and RTL8822CE 802.11ac devices. We have also new hardware support for existing drivers and improvements. There's one conflict in iwlwifi, my example conflict resolution below. Major changes: iwlwifi * bump the 20000-series FW API version * work on new hardware continues * RTT confidence indication support for Fine Timing Measurement (FTM) * an improvement in HE (802.11ax) rate-scaling * add command version parsing from the fimware TLVs * add support for a new WoWLAN patterns firmware API rsi * add support for rs9116 mwifiex * add support for SD8987 brcmfmac * add quirk for ACEPC T8 and T11 mini PCs rt2x00 * add RT3883 support qtnfmac * fix debugfs interface to support multiple cards rtw88 * new driver mt76 * share more code across drivers * add support for MT7615 chipset * rework DMA API * tx/rx performance optimizations * use NAPI for tx cleanup on mt76x02 * AP mode support for USB devices * USB stability fixes * tx power handling fixes for 76x2 * endian fixes Conflicts: There's a trivial conflict in drivers/net/wireless/intel/iwlwifi/fw/file.h, just leave IWL_UCODE_TLV_FW_FSEQ_VERSION to the file. 'git diff' output should be just empty: diff --cc drivers/net/wireless/intel/iwlwifi/fw/file.h index cd622af90077,b0671e16e1ce..000000000000 --- a/drivers/net/wireless/intel/iwlwifi/fw/file.h +++ b/drivers/net/wireless/intel/iwlwifi/fw/file.h ==================== Signed-off-by: David S. Miller commit d14a108d510ec66f6db15509b9d7d2f0b6208145 Author: Colin Ian King Date: Fri May 3 13:10:17 2019 +0100 net: rds: fix spelling mistake "syctl" -> "sysctl" There is a spelling mistake in a pr_warn warning. Fix it. Signed-off-by: Colin Ian King Acked-by: Santosh Shilimkar Signed-off-by: David S. Miller commit cc0d47b8eeb061cdb7715be1c4b90caf8d112142 Author: Wei Yongjun Date: Fri May 3 11:18:59 2019 +0000 drivers: net: davinci_mdio: fix return value check in davinci_mdio_probe() In case of error, the function devm_ioremap() returns NULL pointer not ERR_PTR(). The IS_ERR() test in the return value check should be replaced with NULL test. Fixes: 03f66f067560 ("net: ethernet: ti: davinci_mdio: use devm_ioremap()") Signed-off-by: Wei Yongjun Signed-off-by: David S. Miller commit 594725db0ce11b2fd70f672d7540fa43c7f2f627 Author: Matteo Croce Date: Thu May 2 17:13:18 2019 +0200 cls_cgroup: avoid panic when receiving a packet before filter set When a cgroup classifier is added, there is a small time interval in which tp->root is NULL. If we receive a packet in this small time slice a NULL pointer dereference will happen, leading to a kernel panic: # mkdir /sys/fs/cgroup/net_cls/0 # echo 0x100001 > /sys/fs/cgroup/net_cls/0/net_cls.classid # echo $$ >/sys/fs/cgroup/net_cls/0/tasks # ping -qfb 255.255.255.255 -I eth0 &>/dev/null & # tc qdisc add dev eth0 root handle 10: htb # while : ; do > tc filter add dev eth0 parent 10: protocol ip prio 10 handle 1: cgroup > tc filter delete dev eth0 > done Unable to handle kernel NULL pointer dereference at virtual address 0000000000000028 Mem abort info: ESR = 0x96000005 Exception class = DABT (current EL), IL = 32 bits SET = 0, FnV = 0 EA = 0, S1PTW = 0 Data abort info: ISV = 0, ISS = 0x00000005 CM = 0, WnR = 0 user pgtable: 4k pages, 39-bit VAs, pgdp = 0000000098a7ff91 [0000000000000028] pgd=0000000000000000, pud=0000000000000000 Internal error: Oops: 96000005 [#1] SMP Modules linked in: sch_htb cls_cgroup algif_hash af_alg nls_iso8859_1 nls_cp437 vfat fat xhci_plat_hcd m25p80 spi_nor xhci_hcd mtd usbcore usb_common spi_orion sfp i2c_mv64xxx phy_generic mdio_i2c marvell10g i2c_core mvpp2 mvmdio phylink sbsa_gwdt ip_tables x_tables autofs4 Process ping (pid: 5421, stack limit = 0x00000000b20b1505) CPU: 3 PID: 5421 Comm: ping Not tainted 5.1.0-rc6 #31 Hardware name: Marvell 8040 MACCHIATOBin Double-shot (DT) pstate: 60000005 (nZCv daif -PAN -UAO) pc : cls_cgroup_classify+0x80/0xec [cls_cgroup] lr : cls_cgroup_classify+0x34/0xec [cls_cgroup] sp : ffffff8012e6b850 x29: ffffff8012e6b850 x28: ffffffc423dd3c00 x27: ffffff801093ebc0 x26: ffffffc425a85b00 x25: 0000000020000000 x24: 0000000000000000 x23: ffffff8012e6b910 x22: ffffffc428db4900 x21: ffffff8012e6b910 x20: 0000000000100001 x19: 0000000000000000 x18: 0000000000000000 x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000 x14: 0000000000000000 x13: 0000000000000000 x12: 000000000000001c x11: 0000000000000018 x10: ffffff8012e6b840 x9 : 0000000000003580 x8 : 000000000000009d x7 : 0000000000000002 x6 : ffffff8012e6b860 x5 : 000000007cd66ffe x4 : 000000009742a193 x3 : ffffff800865b4d8 x2 : ffffff8012e6b910 x1 : 0000000000000400 x0 : ffffffc42c38f300 Call trace: cls_cgroup_classify+0x80/0xec [cls_cgroup] tcf_classify+0x78/0x138 htb_enqueue+0x74/0x320 [sch_htb] __dev_queue_xmit+0x3e4/0x9d0 dev_queue_xmit+0x24/0x30 ip_finish_output2+0x2e4/0x4d0 ip_finish_output+0x1d8/0x270 ip_mc_output+0xa8/0x240 ip_local_out+0x58/0x68 ip_send_skb+0x2c/0x88 ip_push_pending_frames+0x44/0x50 raw_sendmsg+0x458/0x830 inet_sendmsg+0x54/0xe8 sock_sendmsg+0x34/0x50 __sys_sendto+0xd0/0x120 __arm64_sys_sendto+0x30/0x40 el0_svc_common.constprop.0+0x88/0xf8 el0_svc_handler+0x2c/0x38 el0_svc+0x8/0xc Code: 39496001 360002a1 b9425c14 34000274 (79405260) Fixes: ed76f5edccc9 ("net: sched: protect filter_chain list with filter_chain_lock mutex") Suggested-by: Cong Wang Signed-off-by: Matteo Croce Signed-off-by: David S. Miller commit 4014dfae3ccaaf3ec19c9ae0691a3f14e7132eae Author: Paul Bolle Date: Wed May 1 23:19:03 2019 +0200 isdn: bas_gigaset: use usb_fill_int_urb() properly The switch to make bas_gigaset use usb_fill_int_urb() - instead of filling that urb "by hand" - missed the subtle ordering of the previous code. See, before the switch urb->dev was set to a member somewhere deep in a complicated structure and then supplied to usb_rcvisocpipe() and usb_sndisocpipe(). After that switch urb->dev wasn't set to anything specific before being supplied to those two macros. This triggers a nasty oops: BUG: unable to handle kernel NULL pointer dereference at 00000000 #PF error: [normal kernel read fault] *pde = 00000000 Oops: 0000 [#1] SMP CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.1.0-0.rc4.1.local0.fc28.i686 #1 Hardware name: IBM 2525FAG/2525FAG, BIOS 74ET64WW (2.09 ) 12/14/2006 EIP: gigaset_init_bchannel+0x89/0x320 [bas_gigaset] Code: 75 07 83 8b 84 00 00 00 40 8d 47 74 c7 07 01 00 00 00 89 45 f0 8b 44 b7 68 85 c0 0f 84 6a 02 00 00 8b 48 28 8b 93 88 00 00 00 <8b> 09 8d 54 12 03 c1 e2 0f c1 e1 08 09 ca 8b 8b 8c 00 00 00 80 ca EAX: f05ec200 EBX: ed404200 ECX: 00000000 EDX: 00000000 ESI: 00000000 EDI: f065a000 EBP: f30c9f40 ESP: f30c9f20 DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 EFLAGS: 00010086 CR0: 80050033 CR2: 00000000 CR3: 0ddc7000 CR4: 000006d0 Call Trace: ? gigaset_isdn_connD+0xf6/0x140 [gigaset] gigaset_handle_event+0x173e/0x1b90 [gigaset] tasklet_action_common.isra.16+0x4e/0xf0 tasklet_action+0x1e/0x20 __do_softirq+0xb2/0x293 ? __irqentry_text_end+0x3/0x3 call_on_stack+0x45/0x50 ? irq_exit+0xb5/0xc0 ? do_IRQ+0x78/0xd0 ? acpi_idle_enter_s2idle+0x50/0x50 ? common_interrupt+0xd4/0xdc ? acpi_idle_enter_s2idle+0x50/0x50 ? sched_cpu_activate+0x1b/0xf0 ? acpi_fan_resume.cold.7+0x9/0x18 ? cpuidle_enter_state+0x152/0x4c0 ? cpuidle_enter+0x14/0x20 ? call_cpuidle+0x21/0x40 ? do_idle+0x1c8/0x200 ? cpu_startup_entry+0x25/0x30 ? rest_init+0x88/0x8a ? arch_call_rest_init+0xd/0x19 ? start_kernel+0x42f/0x448 ? i386_start_kernel+0xac/0xb0 ? startup_32_smp+0x164/0x168 Modules linked in: ppp_generic slhc capi bas_gigaset gigaset kernelcapi nf_conntrack_netbios_ns nf_conntrack_broadcast xt_CT ip6t_rpfilter ip6t_REJECT nf_reject_ipv6 xt_conntrack ip_set nfnetlink ebtable_nat ebtable_broute bridge stp llc ip6table_nat ip6table_mangle ip6table_raw ip6table_security iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c iptable_mangle iptable_raw iptable_security ebtable_filter ebtables ip6table_filter ip6_tables sunrpc ipw2200 iTCO_wdt gpio_ich snd_intel8x0 libipw iTCO_vendor_support snd_ac97_codec lib80211 ppdev ac97_bus snd_seq cfg80211 snd_seq_device pcspkr thinkpad_acpi lpc_ich snd_pcm i2c_i801 snd_timer ledtrig_audio snd soundcore rfkill parport_pc parport pcc_cpufreq acpi_cpufreq i915 i2c_algo_bit drm_kms_helper syscopyarea sysfillrect sdhci_pci sysimgblt cqhci fb_sys_fops drm sdhci mmc_core tg3 ata_generic serio_raw yenta_socket pata_acpi video CR2: 0000000000000000 ---[ end trace 1fe07487b9200c73 ]--- EIP: gigaset_init_bchannel+0x89/0x320 [bas_gigaset] Code: 75 07 83 8b 84 00 00 00 40 8d 47 74 c7 07 01 00 00 00 89 45 f0 8b 44 b7 68 85 c0 0f 84 6a 02 00 00 8b 48 28 8b 93 88 00 00 00 <8b> 09 8d 54 12 03 c1 e2 0f c1 e1 08 09 ca 8b 8b 8c 00 00 00 80 ca EAX: f05ec200 EBX: ed404200 ECX: 00000000 EDX: 00000000 ESI: 00000000 EDI: f065a000 EBP: f30c9f40 ESP: cddcb3bc DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 EFLAGS: 00010086 CR0: 80050033 CR2: 00000000 CR3: 0ddc7000 CR4: 000006d0 Kernel panic - not syncing: Fatal exception in interrupt Kernel Offset: 0xcc00000 from 0xc0400000 (relocation range: 0xc0000000-0xf6ffdfff) ---[ end Kernel panic - not syncing: Fatal exception in interrupt ]--- No-one noticed because this Oops is apparently only triggered by setting up an ISDN data connection on a live ISDN line on a gigaset base (ie, the PBX that the gigaset driver support). Very few people do that running present day kernels. Anyhow, a little code reorganization makes this problem go away, while avoiding the subtle ordering that was used in the past. So let's do that. Fixes: 78c696c19578 ("isdn: gigaset: use usb_fill_int_urb()") Signed-off-by: Paul Bolle Signed-off-by: David S. Miller commit 1c7cbd634763a0f0727d425c38486f0a3a9339a7 Merge: 37624b58542f 1c14fe2167ef Author: Richard Weinberger Date: Sun May 5 11:54:11 2019 +0200 Merge tag 'nand/for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux into mtd/next NAND core changes: - Support having the bad block markers in either the first, second or last page of a block. The combination of all three location is now possible. - Constification of NAND_OP_PARSER(_PATTERN) elements. - Generic NAND DT bindings changed to yaml format (can be used to check the proposed bindings. First platform to be fully supported: sunxi. - Stopped using several legacy hooks. - Preparation to use the generic NAND layer with the addition of several helpers and the removal of the struct nand_chip from generic functions. - Kconfig cleanup to prepare the introduction of external ECC engines support. - Fallthrough comments. - Introduction of the SPI-mem dirmap API for SPI-NAND devices. Raw NAND controller drivers changes: - nandsim: * Switch to ->exec-op(). - meson: * Misc cleanups and fixes. * New OOB layout. - Sunxi: * A23/A33 NAND DMA support. - Ingenic: * Full reorganization and cleanup. * Clear separation between NAND controller and ECC engine. * Support JZ4740 an JZ4725B. - Denali: * Clear controller/chip separation. * ->exec_op() migration. * Various cleanups. - fsl_elbc: * Enable software ECC support. - Atmel: * Sam9x60 support. - GPMI: * Introduce the GPMI_IS_MXS() macro. - Various trivial/spelling/coding style fixes. commit 75fdb811d93c8aa4a9f73b63db032b1e6a8668ef Author: Colin Xu Date: Fri Feb 22 14:13:42 2019 +0800 drm/i915/gvt: Add in context mmio 0x20D8 to gen9 mmio list Depends on GEN family and I915_PARAM_HAS_CONTEXT_ISOLATION, Mesa driver will decide whether constant buffer 0 address is relative or absolute, and load GPU initial state by lri to context mmio INSTPM (GEN8) or 0x20D8 (>=GEN9). Mesa Commit fa8a764b62 ("i965: Use absolute addressing for constant buffer 0 on Kernel 4.16+.") INSTPM is already added to gen8_engine_mmio_list, but 0x20D8 is missed in gen9_engine_mmio_list. From GVT point of view, different guest could have different context so should switch those mmio accordingly. v2: Update fixes commit ID. Fixes: 178657139307 ("drm/i915/gvt: vGPU context switch") Reviewed-by: Zhenyu Wang Signed-off-by: Colin Xu Signed-off-by: Zhenyu Wang (cherry picked from commit 1e8b15a1988ed3c7429402017d589422628cdf47) commit b4010af981ac8cdf1f7f58eb6b131c482e5dee02 Author: Heiner Kallweit Date: Wed May 1 21:54:28 2019 +0200 net: phy: fix phy_validate_pause We have valid scenarios where ETHTOOL_LINK_MODE_Pause_BIT doesn't need to be supported. Therefore extend the first check to check for rx_pause being set. See also phy_set_asym_pause: rx=0 and tx=1: advertise asym pause only rx=0 and tx=0: stop advertising both pause modes The fixed commit isn't wrong, it's just the one that introduced the linkmode bitmaps. Fixes: 3c1bcc8614db ("net: ethernet: Convert phydev advertize and supported from u32 to link mode") Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit ca96534630e2edfd73121c487c957b17eca3b7d7 Author: Colin Ian King Date: Wed May 1 14:41:58 2019 +0100 openvswitch: check for null pointer return from nla_nest_start_noflag The call to nla_nest_start_noflag can return null in the unlikely event that nla_put returns -EMSGSIZE. Check for this condition to avoid a null pointer dereference on pointer nla_reply. Addresses-Coverity: ("Dereference null return value") Fixes: 11efd5cb04a1 ("openvswitch: Support conntrack zone limit") Signed-off-by: Colin Ian King Acked-by: Yi-Hung Wei Signed-off-by: David S. Miller commit f4b47a5945a93c3a6bae1af982e2735973cbd445 Merge: a734d1f4c2fc a5995e7107eb Author: David S. Miller Date: Sun May 5 00:47:16 2019 -0700 Merge branch 'ipv4-Move-location-of-pcpu-route-cache-and-exceptions' David Ahern says: ==================== ipv4: Move location of pcpu route cache and exceptions This series moves IPv4 pcpu cached routes from fib_nh to fib_nh_common to make the caches available for IPv6 nexthops (fib6_nh) with IPv4 routes. This allows a fib6_nh struct to be used with both IPv4 and and IPv6 routes. v4 - fixed memleak if encap_type is not set as noticed by Ido v3 - dropped ipv6 patches for now. Will resubmit those once the existing refcnt problem is fixed v2 - reverted patch 2 to use ifdef CONFIG_IP_ROUTE_CLASSID instead of IS_ENABLED(CONFIG_IP_ROUTE_CLASSID) to fix compile issues reported by kbuild test robot ==================== Signed-off-by: David S. Miller commit a5995e7107eb3d9c44744d3cf47d49fabfef01f5 Author: David Ahern Date: Tue Apr 30 07:45:50 2019 -0700 ipv4: Move exception bucket to nh_common Similar to the cached routes, make IPv4 exceptions accessible when using an IPv6 nexthop struct with IPv4 routes. Simplify the exception functions by passing in fib_nh_common since that is all it needs, and then cleanup the call sites that have extraneous fib_nh conversions. As with the cached routes this is a change in location only, from fib_nh up to fib_nh_common; no functional change intended. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller commit 87063a1fa66740302f08add95ad3d4d316376bef Author: David Ahern Date: Tue Apr 30 07:45:49 2019 -0700 ipv4: Pass fib_nh_common to rt_cache_route Now that the cached routes are in fib_nh_common, pass it to rt_cache_route and simplify its callers. For rt_set_nexthop, the tclassid becomes the last user of fib_nh so move the container_of under the #ifdef CONFIG_IP_ROUTE_CLASSID. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller commit 0f457a36626fa94026e483836fbf29e451434567 Author: David Ahern Date: Tue Apr 30 07:45:48 2019 -0700 ipv4: Move cached routes to fib_nh_common While the cached routes, nh_pcpu_rth_output and nh_rth_input, are IPv4 specific, a later patch wants to make them accessible for IPv6 nexthops with IPv4 routes using a fib6_nh. Move the cached routes from fib_nh to fib_nh_common and update references. Initialization of the cached entries is moved to fib_nh_common_init, and free is moved to fib_nh_common_release. Change in location only, from fib_nh up to fib_nh_common; no functional change intended. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller commit 7080da8909844602b650c8959ecd7814d2829ea5 Author: William Tu Date: Thu May 2 11:33:38 2019 -0700 libbpf: add libbpf_util.h to header install. The libbpf_util.h is used by xsk.h, so add it to the install headers. Reported-by: Ben Pfaff Signed-off-by: William Tu Acked-by: Yonghong Song Signed-off-by: Alexei Starovoitov commit ca31ca8247e2d3807ff5fa1d1760616a2292001c Author: Vineet Gupta Date: Thu May 2 08:56:50 2019 -0700 tools/bpf: fix perf build error with uClibc (seen on ARC) When build perf for ARC recently, there was a build failure due to lack of __NR_bpf. | Auto-detecting system features: | | ... get_cpuid: [ OFF ] | ... bpf: [ on ] | | # error __NR_bpf not defined. libbpf does not support your arch. ^~~~~ | bpf.c: In function 'sys_bpf': | bpf.c:66:17: error: '__NR_bpf' undeclared (first use in this function) | return syscall(__NR_bpf, cmd, attr, size); | ^~~~~~~~ | sys_bpf Signed-off-by: Vineet Gupta Acked-by: Yonghong Song Signed-off-by: Alexei Starovoitov commit a7d006714724de4334c5e3548701b33f7b12ca96 Author: Masahiro Yamada Date: Wed May 1 22:45:59 2019 +0900 bpftool: exclude bash-completion/bpftool from .gitignore pattern tools/bpf/bpftool/.gitignore has the "bpftool" pattern, which is intended to ignore the following build artifact: tools/bpf/bpftool/bpftool However, the .gitignore entry is effective not only for the current directory, but also for any sub-directories. So, from the point of .gitignore grammar, the following check-in file is also considered to be ignored: tools/bpf/bpftool/bash-completion/bpftool As the manual gitignore(5) says "Files already tracked by Git are not affected", this is not a problem as far as Git is concerned. However, Git is not the only program that parses .gitignore because .gitignore is useful to distinguish build artifacts from source files. For example, tar(1) supports the --exclude-vcs-ignore option. As of writing, this option does not work perfectly, but it intends to create a tarball excluding files specified by .gitignore. So, I believe it is better to fix this issue. You can fix it by prefixing the pattern with a slash; the leading slash means the specified pattern is relative to the current directory. Signed-off-by: Masahiro Yamada Reviewed-by: Quentin Monnet Signed-off-by: Alexei Starovoitov commit ec1c8fa04ffc1f90fdf101cd734ee7d2517883be Merge: 6cea33701eb0 5750902a6e9b Author: Alexei Starovoitov Date: Sat May 4 23:26:37 2019 -0700 Merge branch 'af_xdp-fixes' Björn Töpel says: ==================== William found two bugs, when doing socket teardown within the same process. The first issue was an invalid munmap call, and the second one was an invalid XSKMAP cleanup. Both resulted in that the process kept references to the socket, which was not correctly cleaned up. When a new socket was created, the bind() call would fail, since the old socket was still lingering, refusing to give up the queue on the netdev. More details can be found in the individual commits. Thanks, Björn ==================== Reviewed-by: Jonathan Lemon Signed-off-by: Alexei Starovoitov commit 5750902a6e9bc6adb77da8257c0e34db2bfdebb2 Author: Björn Töpel Date: Tue Apr 30 14:45:36 2019 +0200 libbpf: proper XSKMAP cleanup The bpf_map_update_elem() function, when used on an XSKMAP, will fail if not a valid AF_XDP socket is passed as value. Therefore, this is function cannot be used to clear the XSKMAP. Instead, the bpf_map_delete_elem() function should be used for that. This patch also simplifies the code by breaking up xsk_update_bpf_maps() into three smaller functions. Reported-by: William Tu Fixes: 1cad07884239 ("libbpf: add support for using AF_XDP sockets") Signed-off-by: Björn Töpel Tested-by: William Tu Signed-off-by: Alexei Starovoitov commit 0e6741f092979535d159d5a851f12c88bfb7cb9a Author: Björn Töpel Date: Tue Apr 30 14:45:35 2019 +0200 libbpf: fix invalid munmap call When unmapping the AF_XDP memory regions used for the rings, an invalid address was passed to the munmap() calls. Instead of passing the beginning of the memory region, the descriptor region was passed to munmap. When the userspace application tried to tear down an AF_XDP socket, the operation failed and the application would still have a reference to socket it wished to get rid of. Reported-by: William Tu Fixes: 1cad07884239 ("libbpf: add support for using AF_XDP sockets") Signed-off-by: Björn Töpel Tested-by: William Tu Signed-off-by: Alexei Starovoitov commit 6cea33701eb024bc6c920ab83940ee22afd29139 Author: Yonghong Song Date: Mon Apr 29 16:59:38 2019 -0700 selftests/bpf: set RLIMIT_MEMLOCK properly for test_libbpf_open.c Test test_libbpf.sh failed on my development server with failure -bash-4.4$ sudo ./test_libbpf.sh [0] libbpf: Error in bpf_object__probe_name():Operation not permitted(1). Couldn't load basic 'r0 = 0' BPF program. test_libbpf: failed at file test_l4lb.o selftests: test_libbpf [FAILED] -bash-4.4$ The reason is because my machine has 64KB locked memory by default which is not enough for this program to get locked memory. Similar to other bpf selftests, let us increase RLIMIT_MEMLOCK to infinity, which fixed the issue. Signed-off-by: Yonghong Song Signed-off-by: Alexei Starovoitov commit 71f150f4c2af5f1bc22c50f4d3d299fd7c177fd7 Author: YueHaibing Date: Mon Apr 29 13:56:11 2019 +0000 bpf: Use PTR_ERR_OR_ZERO in bpf_fd_sk_storage_update_elem() Use PTR_ERR_OR_ZERO rather than if(IS_ERR(...)) + PTR_ERR Signed-off-by: YueHaibing Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit 0b63644602cfcbac849f7ea49272a39e90fa95eb Author: Martyna Szapar Date: Thu Apr 18 13:31:53 2019 -0700 i40e: Memory leak in i40e_config_iwarp_qvlist Added freeing the old allocation of vf->qvlist_info in function i40e_config_iwarp_qvlist before overwriting it with the new allocation. Signed-off-by: Martyna Szapar Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 24474f2709af6729b9b1da1c5e160ab62e25e3a4 Author: Martyna Szapar Date: Mon Apr 15 14:43:07 2019 -0700 i40e: Fix of memory leak and integer truncation in i40e_virtchnl.c Fixed possible memory leak in i40e_vc_add_cloud_filter function: cfilter is being allocated and in some error conditions the function returns without freeing the memory. Fix of integer truncation from u16 (type of queue_id value) to u8 when calling i40e_vc_isvalid_queue_id function. Signed-off-by: Martyna Szapar Signed-off-by: Jeff Kirsher commit 825f0a4eb7fa9106a64ca8a2e62c37cc9766fdb9 Author: Gustavo A. R. Silva Date: Fri Mar 29 16:38:49 2019 -0700 i40e: Use struct_size() in kzalloc() One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example: struct foo { int stuff; struct boo entry[]; }; size = sizeof(struct foo) + count * sizeof(struct boo); instance = kzalloc(size, GFP_KERNEL) Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper: instance = kzalloc(struct_size(instance, entry, count), GFP_KERNEL) Notice that, in this case, variable size is not necessary, hence it is removed. This code was detected with the help of Coccinelle. Signed-off-by: "Gustavo A. R. Silva" Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 0a92892c69bd01b1a9481ef49587f60e97c64042 Author: Maciej Paczkowski Date: Fri Mar 29 15:08:40 2019 -0700 i40e: Revert ShadowRAM checksum calculation change The reason of this revert is unexpected issue found in NVM Update tool during NVM image downgrade. The implementation is no longer needed since the QV tools are already aware of new FW double ShadowRAM dump mechanism. This patch reverts ShadowRAM checksum calculation change introduced in commit 9d12f0c4e436 ("i40e: Revert ShadowRAM checksum calculation change") Signed-off-by: Maciej Paczkowski Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit d29e0d233e0d25ac680cb77662fca1193732c4a5 Author: Martyna Szapar Date: Fri Mar 29 15:08:39 2019 -0700 i40e: missing input validation on VF message handling by the PF Patch is adding missing input validation on VF message handling by the PF to the functions with opcodes: VIRTCHNL_OP_CONFIG_VSI_QUEUES = 6 VIRTCHNL_OP_CONFIG_IRQ_MAP = 7, VIRTCHNL_OP_DISABLE_QUEUES = 9, VIRTCHNL_OP_CONFIG_PROMISCUOUS_MODE = 14, Signed-off-by: Martyna Szapar Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 2e45d3f4677ae7cd83f97b6039208979e88a7a84 Author: Aleksandr Loktionov Date: Fri Mar 29 15:08:38 2019 -0700 i40e: Add support for X710 B/P & SFP+ cards New device ids are created to support X710 backplane and SFP+ cards. This patch adds in i40e driver support for 2.5GbaseT and 5GbaseT speed. It's implemented by checking I40E_CAP_PHY_TYPE_2_5GBASE_T, I40E_CAP_PHY_TYPE_5GBASE_T bits from f/w and setting corresponding bits in ethtool link ksettings supported and advertising masks. Signed-off-by: Aleksandr Loktionov Signed-off-by: Alice Michael Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit c004804dceee9ca384d97d9857ea2e2795c2651d Author: Grzegorz Siwik Date: Fri Mar 29 15:08:37 2019 -0700 i40e: Wrong truncation from u16 to u8 In this patch fixed wrong truncation method from u16 to u8 during validation. It was changed by changing u8 to u32 parameter in method declaration and arguments were changed to u32. Signed-off-by: Grzegorz Siwik Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 7015ca3df965378bcef072cca9cd63ed098665b5 Author: Sergey Nemov Date: Fri Mar 29 15:08:36 2019 -0700 i40e: add num_vectors checker in iwarp handler Field num_vectors from struct virtchnl_iwarp_qvlist_info should not be larger than num_msix_vectors_vf in the hw struct. The iwarp uses the same set of vectors as the LAN VF driver. Signed-off-by: Sergey Nemov Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 1aa874b42ee8958c737e282ebcf87f653b6c80dc Author: Grzegorz Siwik Date: Fri Mar 29 15:08:35 2019 -0700 i40e: Fix the typo in adding 40GE KR4 mode This patch fixes the typo in I40E_CAP_PHY_TYPE mode link code. It was fixed by changing 40000baseLR4_Full to 40000baseKR4_Full Signed-off-by: Grzegorz Siwik Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 40a23040d82595acf819d4e7902331ecbbd17744 Author: Grzegorz Siwik Date: Fri Mar 29 15:08:32 2019 -0700 i40e: Setting VF to VLAN 0 requires restart This patch fixes a bug where changing VLAN to 0 was not set until VF restart. Now we are setting pvid info to 0 when we have to change VLAN to 0. Without this change when VF VLAN was changed to 0 nothing happened until VF restart. For changing to VLAN different than 0 it worked correctly. Signed-off-by: Grzegorz Siwik Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit e576e769663c7dfa5a40c8eac1f79b7ec2a22482 Author: Aleksandr Loktionov Date: Fri Mar 29 15:08:31 2019 -0700 i40e: add new pci id for X710/XXV710 N3000 cards New device ids are created to support X710/XXV710 N3000 cards. Signed-off-by: Aleksandr Loktionov Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 937f599a1126545ec68f13b6c799231a5ee631b5 Author: Grzegorz Siwik Date: Fri Mar 29 15:08:30 2019 -0700 i40e: VF's promiscuous attribute is not kept This patch fixes a bug where the promiscuous mode was not being kept when the VF switched to a new VLAN. Now we are config two times a promiscuous mode when we switch VLAN. Without this change when we change VF VLAN we still receive all the packets from previous VLAN and only unicast from new VLAN. Signed-off-by: Grzegorz Siwik Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 64439f8f0bc4e9da1c6cb31c2ee642e3139f5731 Author: Michal Swiatkowski Date: Tue Apr 16 10:21:27 2019 -0700 ice: Disable sniffing VF traffic on PF Delete code that add default Tx rule on PF. With this rule PF can see Tx VF traffic that should go outside. For traffic from VF to another VF default Tx rule on PF doesn't apply because of lower priority than VF mac rule. With this change on PF in promisc mode we can see only Rx traffic that doesn't match any other rule (mac etc.). We can't see Tx traffic from other VSI. Signed-off-by: Michal Swiatkowski Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 0690527014936ef70b186bcccd1a5311e9071899 Author: Jesse Brandeburg Date: Tue Apr 16 10:21:26 2019 -0700 ice: Use more efficient structures Move a bunch of members around to make more efficient use of memory, eliminating holes where possible. None of these members are hot path so cache line alignment is not very important here. Signed-off-by: Jesse Brandeburg Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 0437f1a98a2812ad8f03673f688be9b2310accf8 Author: Jesse Brandeburg Date: Tue Apr 16 10:21:25 2019 -0700 ice: Use bitfields where possible The driver was converted to not use bool, but it was neglected that the bools should have been converted to bit fields as bit fields in software structures are ok, as long as they use the correct kinds of unsigned types. This avoids wasting lots of storage space to store single bit values. One of the change hunks moves a variable lport out of a group of "combinable" bit fields because all bits of the u8 lport are valid and the variable can be packed in the struct in struct holes. Signed-off-by: Jesse Brandeburg Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit d95276ced00060dc3d4d157b1eba61eb7830eb02 Author: Akeem G Abodunrin Date: Tue Apr 16 10:21:24 2019 -0700 ice: Add function to program ethertype based filter rule on VSIs This patch adds function to program VSI with ethertype based filter rule, so that all flow control frames would be disallowed from being transmitted to the client, in order to prevent malicious VSI, especially VF from sending out PAUSE or PFC frames, and then control other VSIs traffic. Signed-off-by: Akeem G Abodunrin Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 8f529ff912073f778e3cd74e87fb69a36499fc2f Author: Tony Nguyen Date: Tue Apr 16 10:21:23 2019 -0700 ice: Separate if conditions for ice_set_features() Set features can have multiple features turned on|off in a single call. Grouping these all in an if/else means after one condition is met, other conditions/features will not be evaluated. Break the if/else statements by feature to ensure all features will be handled properly. Signed-off-by: Tony Nguyen Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit a03499d614b8d86a7edb4fa0c20e87003248d643 Author: Tony Nguyen Date: Tue Apr 16 10:21:22 2019 -0700 ice: Remove __always_unused attribute The variable netdev is being used in this function; remove the __always_unused attribute from it. Signed-off-by: Tony Nguyen Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit c3a6825e825c73fbb24331b4804a2f589d0985cd Author: Bruce Allan Date: Tue Apr 16 10:21:21 2019 -0700 ice: Suppress false-positive style issues reported by static analyzer A recent version of cppcheck falsely reports- Variable ip.hdr is assigned a value that is never used. ip is a union so the pointer ip.hdr is actually used when referenced as ip.v4 and ip.v6. Silence these false reports when using cppcheck with the --inline-suppr command-line option. Signed-off-by: Bruce Allan Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit e40c899a64ca6222ea45a045b2d7a09491274163 Author: Brett Creeley Date: Tue Apr 16 10:21:20 2019 -0700 ice: Refactor getting/setting coalesce Currently if the driver has an uneven amount of Rx/Tx queues setting the coalesce settings through ethtool will result in an error. This is happening because in the setting coalesce flow we are reporting an error if either Rx or Tx fails. Also, the flow for setting/getting per_q_coalesce and setting/getting coalesce settings for the entire device is different. Fix these issues by adding one function, ice_set_q_coalesce(), and another, ice_get_q_coalesce(), that both getting/setting per_q and entire device coalesce can use. This makes handling the error cases generic between the two flows and simplifies __ice_set_coalesce() and __ice_get_coalesce(). Also, add a header comment to __ice_set_coalesce(). Signed-off-by: Brett Creeley Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit a85a3847fb5164f08e2a5c0cc0b386f0a79293a6 Author: Brett Creeley Date: Tue Apr 16 10:21:19 2019 -0700 ice: Always free/allocate q_vectors Currently when probing/removing the driver we allocate/deallocate each vsi->q_vectors array in ice_vsi_alloc_arrays() and ice_vsi_free_arrays() respectively. However, we don't do this during the reset and VSI rebuild flow. This is inconsistent and unnecessary to have a difference between the two flows. This patch makes the change to always allocate/deallocate the vsi->q_vectors array regardless of the driver flow we are in. Also, update the comment for ice_vsi_free_arrays() to be more descriptive. Signed-off-by: Brett Creeley Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 207e3721acb4982f73453762ed8d6f3c7dc3de35 Author: Bruce Allan Date: Tue Apr 16 10:21:18 2019 -0700 ice: Do not unnecessarily initialize local variable The local variable speed does not need to be initialized and can cause some static analysis tools to complain the initial assigned value is never used. Signed-off-by: Bruce Allan Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit ba0db585bdb696d28bd6ec3ae9908d45c0bdeb37 Author: Michal Swiatkowski Date: Tue Apr 16 10:21:17 2019 -0700 ice: Add more validation in ice_vc_cfg_irq_map_msg Add few checks to validate msg from iavf driver. Test if we have got enough q_vectors allocated in VSI connected with VF. Add masks for itr_indx and msix_indx to avoid writing to reserved fieldi of QINT. Clear q_vector->num_ring_rx/tx, without it we can increment this value every time we send irq map msg from VF. So after second call this value will be incorrect. Decrement num_vectors from msg, because last vector in iavf msg is misc vector (we don't set map for it). Signed-off-by: Michal Swiatkowski Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit bb877b22bcb5334fc4e1752fe77e96ab762c3738 Author: Akeem G Abodunrin Date: Tue Apr 16 10:21:16 2019 -0700 ice: Don't remove VLAN filters that were never programmed In case of non-trusted VFs, it is possible to program VLAN filter far less than what is requested by the VF originally, thereby makes number of VLAN elements being tracked by VF different from actual VLAN tags. This patch makes sure that we are not attempting to remove VLAN filter that does not exist. Signed-off-by: Akeem G Abodunrin Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit e80e76db6c5bbc7a8f8512f3dc630a2170745b0b Author: Tony Nguyen Date: Tue Apr 16 10:21:15 2019 -0700 ice: Preserve VLAN Rx stripping settings When Tx insertion is set, we are not accounting for the state of Rx stripping. This causes Rx stripping to be enabled any time Tx insertion is changed, even when it's supposed to be disabled. Signed-off-by: Tony Nguyen Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit a52db6b2601f9904ce7fc4b32537823e5c1eb9ef Author: Michal Swiatkowski Date: Tue Apr 16 10:21:14 2019 -0700 ice: Fix for allowing too many MDD events on VF Disable VF if any malicious device driver (MDD) event is detected by hardware. Track vf->num_mdd_events for information about VF MDD events. Signed-off-by: Michal Swiatkowski Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 819d899863dc019e5e5fff869578b056a93e35db Author: Jesse Brandeburg Date: Thu Feb 28 15:26:03 2019 -0800 ice: Use pf instead of vsi-back Many times in our functions we have a local variable pf, which is equivalent to vsi->back. Just use pf consistently instead of vsi->back where available. Signed-off-by: Jesse Brandeburg Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 662156641bc409a28fa313fca1a755105425d278 Author: Ming Lei Date: Tue Apr 30 09:52:29 2019 +0800 block: don't drain in-progress dispatch in blk_cleanup_queue() Now freeing hw queue resource is moved to hctx's release handler, we don't need to worry about the race between blk_cleanup_queue and run queue any more. So don't drain in-progress dispatch in blk_cleanup_queue(). This is basically revert of c2856ae2f315 ("blk-mq: quiesce queue before freeing queue"). Cc: Dongli Zhang Cc: James Smart Cc: Bart Van Assche Cc: linux-scsi@vger.kernel.org, Cc: Martin K . Petersen , Cc: Christoph Hellwig , Cc: James E . J . Bottomley , Reviewed-by: Bart Van Assche Reviewed-by: Hannes Reinecke Tested-by: James Smart Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit 1b97871b501f1bac0fd39a073c4c8473ee457a55 Author: Ming Lei Date: Tue Apr 30 09:52:28 2019 +0800 blk-mq: move cancel of hctx->run_work into blk_mq_hw_sysfs_release hctx is always released after requeue is freed. With holding queue's kobject refcount, it is safe for driver to run queue, so one run queue might be scheduled after blk_sync_queue() is done. So moving the cancel of hctx->run_work into blk_mq_hw_sysfs_release() for avoiding run released queue. Cc: Dongli Zhang Cc: James Smart Cc: Bart Van Assche Cc: linux-scsi@vger.kernel.org, Cc: Martin K . Petersen , Cc: Christoph Hellwig , Cc: James E . J . Bottomley , Reviewed-by: Bart Van Assche Reviewed-by: Hannes Reinecke Tested-by: James Smart Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit 2f8f1336a48bd5186de3476da0a3e2ec06d0533a Author: Ming Lei Date: Tue Apr 30 09:52:27 2019 +0800 blk-mq: always free hctx after request queue is freed In normal queue cleanup path, hctx is released after request queue is freed, see blk_mq_release(). However, in __blk_mq_update_nr_hw_queues(), hctx may be freed because of hw queues shrinking. This way is easy to cause use-after-free, because: one implicit rule is that it is safe to call almost all block layer APIs if the request queue is alive; and one hctx may be retrieved by one API, then the hctx can be freed by blk_mq_update_nr_hw_queues(); finally use-after-free is triggered. Fixes this issue by always freeing hctx after releasing request queue. If some hctxs are removed in blk_mq_update_nr_hw_queues(), introduce a per-queue list to hold them, then try to resuse these hctxs if numa node is matched. Cc: Dongli Zhang Cc: James Smart Cc: Bart Van Assche Cc: linux-scsi@vger.kernel.org, Cc: Martin K . Petersen , Cc: Christoph Hellwig , Cc: James E . J . Bottomley , Reviewed-by: Hannes Reinecke Tested-by: James Smart Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit 7c6c5b7c9186e3fb5b10afb8e5f710ae661144c6 Author: Ming Lei Date: Tue Apr 30 09:52:26 2019 +0800 blk-mq: split blk_mq_alloc_and_init_hctx into two parts Split blk_mq_alloc_and_init_hctx into two parts, and one is blk_mq_alloc_hctx() for allocating all hctx resources, another is blk_mq_init_hctx() for initializing hctx, which serves as counter-part of blk_mq_exit_hctx(). Cc: Dongli Zhang Cc: James Smart Cc: Bart Van Assche Cc: linux-scsi@vger.kernel.org Cc: Martin K . Petersen Cc: Christoph Hellwig Cc: James E . J . Bottomley Reviewed-by: Hannes Reinecke Reviewed-by: Christoph Hellwig Tested-by: James Smart Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit c7e2d94b3d1634988a95ac4d77a72dc7487ece06 Author: Ming Lei Date: Tue Apr 30 09:52:25 2019 +0800 blk-mq: free hw queue's resource in hctx's release handler Once blk_cleanup_queue() returns, tags shouldn't be used any more, because blk_mq_free_tag_set() may be called. Commit 45a9c9d909b2 ("blk-mq: Fix a use-after-free") fixes this issue exactly. However, that commit introduces another issue. Before 45a9c9d909b2, we are allowed to run queue during cleaning up queue if the queue's kobj refcount is held. After that commit, queue can't be run during queue cleaning up, otherwise oops can be triggered easily because some fields of hctx are freed by blk_mq_free_queue() in blk_cleanup_queue(). We have invented ways for addressing this kind of issue before, such as: 8dc765d438f1 ("SCSI: fix queue cleanup race before queue initialization is done") c2856ae2f315 ("blk-mq: quiesce queue before freeing queue") But still can't cover all cases, recently James reports another such kind of issue: https://marc.info/?l=linux-scsi&m=155389088124782&w=2 This issue can be quite hard to address by previous way, given scsi_run_queue() may run requeues for other LUNs. Fixes the above issue by freeing hctx's resources in its release handler, and this way is safe becasue tags isn't needed for freeing such hctx resource. This approach follows typical design pattern wrt. kobject's release handler. Cc: Dongli Zhang Cc: James Smart Cc: Bart Van Assche Cc: linux-scsi@vger.kernel.org, Cc: Martin K . Petersen , Cc: Christoph Hellwig , Cc: James E . J . Bottomley , Reported-by: James Smart Fixes: 45a9c9d909b2 ("blk-mq: Fix a use-after-free") Cc: stable@vger.kernel.org Reviewed-by: Hannes Reinecke Reviewed-by: Christoph Hellwig Tested-by: James Smart Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit fbc2a15e3433058582e5635aabe48a3011a644a8 Author: Ming Lei Date: Tue Apr 30 09:52:24 2019 +0800 blk-mq: move cancel of requeue_work into blk_mq_release With holding queue's kobject refcount, it is safe for driver to schedule requeue. However, blk_mq_kick_requeue_list() may be called after blk_sync_queue() is done because of concurrent requeue activities, then requeue work may not be completed when freeing queue, and kernel oops is triggered. So moving the cancel of requeue_work into blk_mq_release() for avoiding race between requeue and freeing queue. Cc: Dongli Zhang Cc: James Smart Cc: Bart Van Assche Cc: linux-scsi@vger.kernel.org, Cc: Martin K . Petersen , Cc: Christoph Hellwig , Cc: James E . J . Bottomley , Reviewed-by: Bart Van Assche Reviewed-by: Johannes Thumshirn Reviewed-by: Hannes Reinecke Reviewed-by: Christoph Hellwig Tested-by: James Smart Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit e87eb301bee183d82bb3d04bd71b6660889a2588 Author: Ming Lei Date: Tue Apr 30 09:52:23 2019 +0800 blk-mq: grab .q_usage_counter when queuing request from plug code path Just like aio/io_uring, we need to grab 2 refcount for queuing one request, one is for submission, another is for completion. If the request isn't queued from plug code path, the refcount grabbed in generic_make_request() serves for submission. In theroy, this refcount should have been released after the sumission(async run queue) is done. blk_freeze_queue() works with blk_sync_queue() together for avoiding race between cleanup queue and IO submission, given async run queue activities are canceled because hctx->run_work is scheduled with the refcount held, so it is fine to not hold the refcount when running the run queue work function for dispatch IO. However, if request is staggered into plug list, and finally queued from plug code path, the refcount in submission side is actually missed. And we may start to run queue after queue is removed because the queue's kobject refcount isn't guaranteed to be grabbed in flushing plug list context, then kernel oops is triggered, see the following race: blk_mq_flush_plug_list(): blk_mq_sched_insert_requests() insert requests to sw queue or scheduler queue blk_mq_run_hw_queue Because of concurrent run queue, all requests inserted above may be completed before calling the above blk_mq_run_hw_queue. Then queue can be freed during the above blk_mq_run_hw_queue(). Fixes the issue by grab .q_usage_counter before calling blk_mq_sched_insert_requests() in blk_mq_flush_plug_list(). This way is safe because the queue is absolutely alive before inserting request. Cc: Dongli Zhang Cc: James Smart Cc: linux-scsi@vger.kernel.org, Cc: Martin K . Petersen , Cc: Christoph Hellwig , Cc: James E . J . Bottomley , Reviewed-by: Bart Van Assche Tested-by: James Smart Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit f33e7bb3eb922618612a90f0a828c790e8880773 Author: Sameer Pujar Date: Thu May 2 18:25:17 2019 +0530 dmaengine: tegra210-adma: restore channel status Status of ADMA channel registers is not saved and restored during system suspend. During active playback if system enters suspend, this results in wrong state of channel registers during system resume and playback fails to resume properly. Fix this by saving following channel registers in runtime suspend and restore during runtime resume. * ADMA_CH_LOWER_SRC_ADDR * ADMA_CH_LOWER_TRG_ADDR * ADMA_CH_FIFO_CTRL * ADMA_CH_CONFIG * ADMA_CH_CTRL * ADMA_CH_CMD * ADMA_CH_TC Runtime PM calls will be inovked during system resume path if a playback or capture needs to be resumed. Hence above changes work fine for system suspend case. Fixes: f46b195799b5 ("dmaengine: tegra-adma: Add support for Tegra210 ADMA") Signed-off-by: Sameer Pujar Reviewed-by: Jon Hunter Signed-off-by: Vinod Koul commit f030e419501cb95e961e9ed35c493b5d46a04eca Author: Sameer Pujar Date: Thu May 2 18:25:16 2019 +0530 dmaengine: tegra210-dma: free dma controller in remove() Following kernel panic is seen during DMA driver unload->load sequence ========================================================================== Unable to handle kernel paging request at virtual address ffffff8001198880 Internal error: Oops: 86000007 [#1] PREEMPT SMP CPU: 0 PID: 5907 Comm: HwBinder:4123_1 Tainted: G C 4.9.128-tegra-g065839f Hardware name: galen (DT) task: ffffffc3590d1a80 task.stack: ffffffc3d0678000 PC is at 0xffffff8001198880 LR is at of_dma_request_slave_channel+0xd8/0x1f8 pc : [] lr : [] pstate: 60400045 sp : ffffffc3d067b710 x29: ffffffc3d067b710 x28: 000000000000002f x27: ffffff800949e000 x26: ffffff800949e750 x25: ffffff800949e000 x24: ffffffbefe817d84 x23: ffffff8009f77cb0 x22: 0000000000000028 x21: ffffffc3ffda49c8 x20: 0000000000000029 x19: 0000000000000001 x18: ffffffffffffffff x17: 0000000000000000 x16: ffffff80082b66a0 x15: ffffff8009e78250 x14: 000000000000000a x13: 0000000000000038 x12: 0101010101010101 x11: 0000000000000030 x10: 0101010101010101 x9 : fffffffffffffffc x8 : 7f7f7f7f7f7f7f7f x7 : 62ff726b6b64622c x6 : 0000000000008064 x5 : 6400000000000000 x4 : ffffffbefe817c44 x3 : ffffffc3ffda3e08 x2 : ffffff8001198880 x1 : ffffffc3d48323c0 x0 : ffffffc3d067b788 Process HwBinder:4123_1 (pid: 5907, stack limit = 0xffffffc3d0678028) Call trace: [] 0xffffff8001198880 [] dma_request_chan+0x50/0x1f0 [] dma_request_slave_channel+0x28/0x40 [] tegra_alt_pcm_open+0x114/0x170 [] soc_pcm_open+0x10c/0x878 [] snd_pcm_open_substream+0xc0/0x170 [] snd_pcm_open+0xc4/0x240 [] snd_pcm_playback_open+0x58/0x80 [] snd_open+0xb4/0x178 [] chrdev_open+0xb8/0x1d0 [] do_dentry_open+0x214/0x318 [] vfs_open+0x58/0x88 [] do_last+0x450/0xde0 [] path_openat+0xa8/0x368 [] do_filp_open+0x8c/0x110 [] do_sys_open+0x164/0x220 [] compat_SyS_openat+0x3c/0x50 [] el0_svc_naked+0x34/0x38 ---[ end trace 67e6d544e65b5145 ]--- Kernel panic - not syncing: Fatal exception ========================================================================== In device probe(), of_dma_controller_register() registers DMA controller. But when driver is removed, this is not freed. During driver reload this results in data abort and kernel panic. Add of_dma_controller_free() in driver remove path to fix the issue. Fixes: f46b195799b5 ("dmaengine: tegra-adma: Add support for Tegra210 ADMA") Signed-off-by: Sameer Pujar Reviewed-by: Jon Hunter Signed-off-by: Vinod Koul commit 94dc8f4ed47983b7280f488617e49346f89513fd Author: Sameer Pujar Date: Thu May 2 18:25:15 2019 +0530 dmaengine: tegra210-adma: add pause/resume support During an audio playback session it is observed that, audio goes off after few seconds of continuous pause and play. No audio is heard even when the playback is resumed. The reason for above is, currently ADMA driver does not handle DMA_PAUSE/ DMA_RESUME and relevant callbacks for dma_device are not implemented. This patch implements device_pause and device_resume callbacks for the device. During pause TRANSFER_PAUSE bit of dma channel control register is set and the same is cleared during resume. Signed-off-by: Sameer Pujar Reviewed-by: Jon Hunter Signed-off-by: Vinod Koul commit 433de642a76c9e68641ee5a8c7b2720d4e8629a5 Author: Sameer Pujar Date: Thu May 2 18:25:14 2019 +0530 dmaengine: tegra210-adma: add support for Tegra186/Tegra194 Add Tegra186 specific macro defines and chip_data structure for chip specific information. New compatibility is added to select relevant chip details. There is no major change for Tegra194 and hence it can use the same chip data. The bits in the BURST_SIZE field of the ADMA CH_CONFIG register are encoded differently on Tegra186 and Tegra194 compared with Tegra210. On Tegra210 the bits are encoded as follows ... 1 = WORD_1 2 = WORDS_2 3 = WORDS_4 4 = WORDS_8 5 = WORDS_16 Where as on Tegra186 and Tegra194 the bits are encoded as ... 0 = WORD_1 1 = WORDS_2 2 = WORDS_3 3 = WORDS_4 4 = WORDS_5 ... 15 = WORDS_16 Add helper functions for generating the correct burst size. Signed-off-by: Sameer Pujar Reviewed-by: Jon Hunter Signed-off-by: Vinod Koul commit c0e74dd25422e32f2e65ee868c8b5c828b8c5b61 Author: Sameer Pujar Date: Thu May 2 18:25:13 2019 +0530 Documentation: DT: Add compatibility binding for Tegra186 Tegra186 Audio DMA controller has new updates from Tegra210 version. Thus add new compatibility binding string and the same can be used by Tegra194 as well. Signed-off-by: Sameer Pujar Reviewed-by: Jon Hunter Signed-off-by: Vinod Koul commit ded1f3db4cd64bcd8f2b4f89aa66164a142b2895 Author: Sameer Pujar Date: Thu May 2 18:25:12 2019 +0530 dmaengine: tegra210-adma: prepare for supporting newer Tegra chips This is a preparatory patch to add support for Tegra186 and Tegra194 chips. Following changes are necessary to make driver code generic. * chip_data structure is enhanced to have chip specific details and following are the additions to the structure * Offset addresses for ADMA global and channel registers * Offset values for Tx and Rx channel selection * Maximum supported Tx and Rx channels * Tx and Rx channel request mask * ADMA channel register space size * Make use of above chip_data to generalise the driver code Support for Tegra186 and Tegra194 will be added in subsequent patches of the series. Signed-off-by: Sameer Pujar Reviewed-by: Jon Hunter Signed-off-by: Vinod Koul commit 0b515abb6b7eb08e90bdfc01fc8fbdd112c15d81 Author: Dan Carpenter Date: Fri May 3 16:15:07 2019 +0300 dmaengine: at_xdmac: remove a stray bottom half unlock We switched this code from spin_lock_bh() to vanilla spin_lock() but there was one stray spin_unlock_bh() that was overlooked. This patch converts it to spin_unlock() as well. Fixes: d8570d018f69 ("dmaengine: at_xdmac: move spin_lock_bh to spin_lock in tasklet") Signed-off-by: Dan Carpenter Signed-off-by: Vinod Koul commit e095189a54102d53daa07c528fefd4f4d65c8b04 Author: Krzysztof Kozlowski Date: Sat May 4 11:52:25 2019 +0200 dmaengine: fsl-edma: Adjust indentation Fix indentation and remove unneeded space after 'return' keyword. This fixes checkpatch warning: WARNING: Statements should start on a tabstop Signed-off-by: Krzysztof Kozlowski Signed-off-by: Vinod Koul commit 32685552fdc8a28014f9159a05587e8049fead70 Author: Krzysztof Kozlowski Date: Sat May 4 11:52:23 2019 +0200 dmaengine: fsl-edma: Fix typo in Vybrid name Fix typo in comment for Vybrid SoC family. Signed-off-by: Krzysztof Kozlowski Signed-off-by: Vinod Koul commit 2a4885abf5fbc2dde4be91a11b00cbce2c923f47 Author: Arnaud Pouliquen Date: Thu May 2 11:28:42 2019 +0200 dmaengine: stm32-dma: fix residue calculation in stm32-dma In double buffer mode, during residue calculation, the DMA can automatically switch to the next transfer. Indeed the CT bit that gives position in the double buffer can has been updated by the hardware, during calculation. In this case the SxNDTR register value can not be trusted. If a transition is detected we consider that the DMA has switched to the beginning of next sg. Signed-off-by: Arnaud Pouliquen Signed-off-by: Pierre-Yves MORDRET Signed-off-by: Vinod Koul commit 7fcd1e033dacedd520abebc943c960dcf5add3ae Author: David Ahern Date: Thu May 2 15:14:15 2019 -0700 ipmr_base: Do not reset index in mr_table_dump e is the counter used to save the location of a dump when an skb is filled. Once the walk of the table is complete, mr_table_dump needs to return without resetting that index to 0. Dump of a specific table is looping because of the reset because there is no way to indicate the walk of the table is done. Move the reset to the caller so the dump of each table starts at 0, but the loop counter is maintained if a dump fills an skb. Fixes: e1cedae1ba6b0 ("ipmr: Refactor mr_rtm_dumproute") Signed-off-by: David Ahern Signed-off-by: David S. Miller commit a734d1f4c2fc962ef4daa179e216df84a8ec5f84 Author: Eelco Chaudron Date: Thu May 2 16:12:38 2019 -0400 net: openvswitch: return an error instead of doing BUG_ON() For all other error cases in queue_userspace_packet() the error is returned, so it makes sense to do the same for these two error cases. Reported-by: Davide Caratti Signed-off-by: Eelco Chaudron Acked-by: Flavio Leitner Signed-off-by: David S. Miller commit 3aa4c491c55dadd9d5c19f0a8443cb4a2ab41651 Author: Heiner Kallweit Date: Thu May 2 20:46:52 2019 +0200 r8169: remove rtl_write_exgmac_batch rtl_write_exgmac_batch is used in only one place, so we can remove it. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 8cca3397f6165ee1cbec68fc837839e832e3270a Merge: 5eabc27dedd3 b424e432e770 Author: David S. Miller Date: Sat May 4 01:27:11 2019 -0400 Merge branch 'netlink-strict-attribute-checking-follow-up' Michal Kubecek says: ==================== netlink: strict attribute checking follow-up Three follow-up patches for recent strict netlink validation series. Patch 1 fixes dump handling for genetlink families which validate and parse messages themselves (e.g. because they need different policies for diferent commands). Patch 2 sets bad_attr in extack in one place where this was omitted. Patch 3 adds new NL_VALIDATE_NESTED flags for strict validation to enable checking that NLA_F_NESTED value in received messages matches expectations and includes this flag in NL_VALIDATE_STRICT. This would change userspace visible behavior but the previous switching to NL_VALIDATE_STRICT for new code is still only in net-next at the moment. v2: change error messages to mention NLA_F_NESTED explicitly ==================== Signed-off-by: David S. Miller commit b424e432e770d6dd572765459d5b6a96a19c5286 Author: Michal Kubecek Date: Thu May 2 16:15:10 2019 +0200 netlink: add validation of NLA_F_NESTED flag Add new validation flag NL_VALIDATE_NESTED which adds three consistency checks of NLA_F_NESTED_FLAG: - the flag is set on attributes with NLA_NESTED{,_ARRAY} policy - the flag is not set on attributes with other policies except NLA_UNSPEC - the flag is set on attribute passed to nla_parse_nested() Signed-off-by: Michal Kubecek v2: change error messages to mention NLA_F_NESTED explicitly Reviewed-by: Johannes Berg Reviewed-by: David Ahern Signed-off-by: David S. Miller commit d54a16b20157ce300298eb4a1169bf9acfda3d08 Author: Michal Kubecek Date: Thu May 2 16:15:10 2019 +0200 netlink: set bad attribute also on maxtype check The check that attribute type is within 0...maxtype range in __nla_validate_parse() sets only error message but not bad_attr in extack. Set also bad_attr to tell userspace which attribute failed validation. Signed-off-by: Michal Kubecek Reviewed-by: Johannes Berg Reviewed-by: David Ahern Signed-off-by: David S. Miller commit 05d7f547bea1872e711ee97bd46aace6cf61c42b Author: Michal Kubecek Date: Thu May 2 16:15:10 2019 +0200 genetlink: do not validate dump requests if there is no policy Unlike do requests, dump genetlink requests now perform strict validation by default even if the genetlink family does not set policy and maxtype because it does validation and parsing on its own (e.g. because it wants to allow different message format for different commands). While the null policy will be ignored, maxtype (which would be zero) is still checked so that any attribute will fail validation. The solution is to only call __nla_validate() from genl_family_rcv_msg() if family->maxtype is set. Fixes: ef6243acb478 ("genetlink: optionally validate strictly/dumps") Signed-off-by: Michal Kubecek Reviewed-by: Johannes Berg Signed-off-by: David S. Miller commit 5eabc27dedd30a738e50a80cdb184b94d2a2ef05 Merge: c0b14a0854fa fd321c6c2380 Author: David S. Miller Date: Sat May 4 01:21:36 2019 -0400 Merge branch 'mlxsw-Firmware-version-update' Ido Schimmel says: ==================== mlxsw: Firmware version update This patchset updates mlxsw to use a new firmware version and adds support for split into two ports on Spectrum-2 based systems. Patch #1 updates the firmware version to 13.2000.1122 Patch #2 queries new resources from the firmware. Patch #3 makes use of these resources in order to support split into two ports on Spectrum-2 based systems. The need for these resources is explained by Shalom: When splitting a port, different local ports need to be mapped on different systems. For example: SN3700 (local_ports_in_2x=2): * Without split: front panel 1 --> local port 1 front panel 2 --> local port 5 * Split to 2: front panel 1s0 --> local port 1 front panel 1s1 --> local port 3 front panel 2 --> local port 5 SN3800 (local_ports_in_2x=1): * Without split: front panel 1 --> local port 1 front panel 2 --> local port 3 * Split to 2: front panel 1s0 --> local port 1 front panel 1s1 --> local port 2 front panel 2 --> local port 3 The local_ports_in_{1x, 2x} resources provide the offsets from the base local ports according to which the new local ports can be calculated. ==================== Signed-off-by: David S. Miller commit fd321c6c2380a27ee8bf0ead91029a88f23e5dc9 Author: Shalom Toledo Date: Thu May 2 14:13:09 2019 +0300 mlxsw: spectrum: split base on local_ports_in_{1x, 2x} resources When splitting a port, different local ports need to be mapped on different systems. For example: SN3700 (local_ports_in_2x=2): * Without split: front panel 1 --> local port 1 front panel 2 --> local port 5 * Split to 2: front panel 1s0 --> local port 1 front panel 1s1 --> local port 3 front panel 2 --> local port 5 SN3800 (local_ports_in_2x=1): * Without split: front panel 1 --> local port 1 front panel 2 --> local port 3 * Split to 2: front panel 1s0 --> local port 1 front panel 1s1 --> local port 2 front panel 2 --> local port 3 The local_ports_in_{1x, 2x} resources provide the offsets from the base local ports according to which the new local ports can be calculated. Signed-off-by: Shalom Toledo Acked-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit 4fa050d29c76e0f304cd96ce91bced8f343698a5 Author: Shalom Toledo Date: Thu May 2 14:13:08 2019 +0300 mlxsw: resources: Add local_ports_in_{1x, 2x} Since the number of local ports in 4x changed between SPC and SPC-2, firmware expose new resources that the driver can query. Signed-off-by: Shalom Toledo Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit 913e89a44e99d11f73ee6fe98452ed719b557f50 Author: Ido Schimmel Date: Thu May 2 14:13:07 2019 +0300 mlxsw: Bump firmware version to 13.2000.1122 The new version supports two features that are required by upcoming changes in the driver: * Querying of new resources allowing port split into two ports on Spectrum-2 systems * Querying of number of gearboxes on supported systems such as SN3800 Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit c0b14a0854fab0a0164aabfe49a76aae9216fe97 Author: Tuong Lien Date: Thu May 2 17:23:23 2019 +0700 tipc: fix missing Name entries due to half-failover TIPC link can temporarily fall into "half-establish" that only one of the link endpoints is ESTABLISHED and starts to send traffic, PROTOCOL messages, whereas the other link endpoint is not up (e.g. immediately when the endpoint receives ACTIVATE_MSG, the network interface goes down...). This is a normal situation and will be settled because the link endpoint will be eventually brought down after the link tolerance time. However, the situation will become worse when the second link is established before the first link endpoint goes down, For example: 1. Both links <1A-2A>, <1B-2B> down 2. Link endpoint 2A up, but 1A still down (e.g. due to network disturbance, wrong session, etc.) 3. Link <1B-2B> up 4. Link endpoint 2A down (e.g. due to link tolerance timeout) 5. Node B starts failover onto link <1B-2B> ==> Node A does never start link failover. When the "half-failover" situation happens, two consequences have been observed: a) Peer link/node gets stuck in FAILINGOVER state; b) Traffic or user messages that peer node is trying to failover onto the second link can be partially or completely dropped by this node. The consequence a) was actually solved by commit c140eb166d68 ("tipc: fix failover problem"), but that commit didn't cover the b). It's due to the fact that the tunnel link endpoint has never been prepared for a failover, so the 'l->drop_point' (and the other data...) is not set correctly. When a TUNNEL_MSG from peer node arrives on the link, depending on the inner message's seqno and the current 'l->drop_point' value, the message can be dropped (- treated as a duplicate message) or processed. At this early stage, the traffic messages from peer are likely to be NAME_DISTRIBUTORs, this means some name table entries will be missed on the node forever! The commit resolves the issue by starting the FAILOVER process on this node as well. Another benefit from this solution is that we ensure the link will not be re-established until the failover ends. Acked-by: Jon Maloy Signed-off-by: Tuong Lien Signed-off-by: David S. Miller commit 25426043ec9e22b90c789407c28e40f32a9d1985 Author: Matteo Croce Date: Thu May 2 10:51:05 2019 +0200 cls_matchall: avoid panic when receiving a packet before filter set When a matchall classifier is added, there is a small time interval in which tp->root is NULL. If we receive a packet in this small time slice a NULL pointer dereference will happen, leading to a kernel panic: # tc qdisc replace dev eth0 ingress # tc filter add dev eth0 parent ffff: matchall action gact drop Unable to handle kernel NULL pointer dereference at virtual address 0000000000000034 Mem abort info: ESR = 0x96000005 Exception class = DABT (current EL), IL = 32 bits SET = 0, FnV = 0 EA = 0, S1PTW = 0 Data abort info: ISV = 0, ISS = 0x00000005 CM = 0, WnR = 0 user pgtable: 4k pages, 39-bit VAs, pgdp = 00000000a623d530 [0000000000000034] pgd=0000000000000000, pud=0000000000000000 Internal error: Oops: 96000005 [#1] SMP Modules linked in: cls_matchall sch_ingress nls_iso8859_1 nls_cp437 vfat fat m25p80 spi_nor mtd xhci_plat_hcd xhci_hcd phy_generic sfp mdio_i2c usbcore i2c_mv64xxx marvell10g mvpp2 usb_common spi_orion mvmdio i2c_core sbsa_gwdt phylink ip_tables x_tables autofs4 Process ksoftirqd/0 (pid: 9, stack limit = 0x0000000009de7d62) CPU: 0 PID: 9 Comm: ksoftirqd/0 Not tainted 5.1.0-rc6 #21 Hardware name: Marvell 8040 MACCHIATOBin Double-shot (DT) pstate: 40000005 (nZcv daif -PAN -UAO) pc : mall_classify+0x28/0x78 [cls_matchall] lr : tcf_classify+0x78/0x138 sp : ffffff80109db9d0 x29: ffffff80109db9d0 x28: ffffffc426058800 x27: 0000000000000000 x26: ffffffc425b0dd00 x25: 0000000020000000 x24: 0000000000000000 x23: ffffff80109dbac0 x22: 0000000000000001 x21: ffffffc428ab5100 x20: ffffffc425b0dd00 x19: ffffff80109dbac0 x18: 0000000000000000 x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000 x14: 0000000000000000 x13: ffffffbf108ad288 x12: dead000000000200 x11: 00000000f0000000 x10: 0000000000000001 x9 : ffffffbf1089a220 x8 : 0000000000000001 x7 : ffffffbebffaa950 x6 : 0000000000000000 x5 : 000000442d6ba000 x4 : 0000000000000000 x3 : ffffff8008735ad8 x2 : ffffff80109dbac0 x1 : ffffffc425b0dd00 x0 : ffffff8010592078 Call trace: mall_classify+0x28/0x78 [cls_matchall] tcf_classify+0x78/0x138 __netif_receive_skb_core+0x29c/0xa20 __netif_receive_skb_one_core+0x34/0x60 __netif_receive_skb+0x28/0x78 netif_receive_skb_internal+0x2c/0xc0 napi_gro_receive+0x1a0/0x1d8 mvpp2_poll+0x928/0xb18 [mvpp2] net_rx_action+0x108/0x378 __do_softirq+0x128/0x320 run_ksoftirqd+0x44/0x60 smpboot_thread_fn+0x168/0x1b0 kthread+0x12c/0x130 ret_from_fork+0x10/0x1c Code: aa0203f3 aa1e03e0 d503201f f9400684 (b9403480) ---[ end trace fc71e2ef7b8ab5a5 ]--- Kernel panic - not syncing: Fatal exception in interrupt SMP: stopping secondary CPUs Kernel Offset: disabled CPU features: 0x002,00002000 Memory Limit: none Rebooting in 1 seconds.. Fix this by adding a NULL check in mall_classify(). Fixes: ed76f5edccc9 ("net: sched: protect filter_chain list with filter_chain_lock mutex") Signed-off-by: Matteo Croce Acked-by: Cong Wang Signed-off-by: David S. Miller commit f24098f80748ea95d53603a7bb7954a41bb3ca1b Author: Heiner Kallweit Date: Wed May 1 22:14:21 2019 +0200 net: phy: improve resuming from hibernation I got an interesting report [0] that after resuming from hibernation the link has 100Mbps instead of 1Gbps. Reason is that another OS has been used whilst Linux was hibernated. And this OS speeds down the link due to WoL. Therefore, when resuming, we shouldn't expect that what the PHY advertises is what it did when hibernating. Easiest way to do this is removing state PHY_RESUMING. Instead always go via PHY_UP that configures PHY advertisement. [0] https://bugzilla.kernel.org/show_bug.cgi?id=202851 Signed-off-by: Heiner Kallweit Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 22c0ef6b1475aef4765efc4aa764b8580018123c Author: Heiner Kallweit Date: Wed May 1 21:34:43 2019 +0200 net: phy: improve pause handling When probing the phy device we set sym and asym pause in the "supported" bitmap (unless the PHY tells us otherwise). However we don't know yet whether the MAC supports pause. Simply copying phy->supported to phy->advertising will trigger advertising pause, and that's not what we want. Therefore add phy_advertise_supported() that copies all modes but doesn't touch the pause bits. In phy_support_(a)sym_pause we shouldn't set any bits in the supported bitmap because we may set a bit the PHY intentionally disabled. Effective pause support should be the AND-combined PHY and MAC pause capabilities. If the MAC supports everything, then it's only relevant what the PHY supports. If MAC supports sym pause only, then we have to clear the asym bit in phydev->supported. Copy the pause flags only and don't touch the modes, because a driver may have intentionally removed a mode from phydev->advertising. Signed-off-by: Heiner Kallweit Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit e512fcf0280ae037e2e99476bd59c726c4b44309 Author: Gustavo A. R. Silva Date: Wed May 1 11:23:15 2019 -0500 net: sched: cls_u32: use struct_size() helper Make use of the struct_size() helper instead of an open-coded version in order to avoid any potential type mistakes, in particular in the context in which this code is being used. So, replace code of the following form: sizeof(*s) + s->nkeys*sizeof(struct tc_u32_key) with: struct_size(s, keys, s->nkeys) This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Signed-off-by: David S. Miller commit 141b6b2ad75d92770240de3af98d55c41ce7cd18 Author: Cong Wang Date: Wed May 1 19:56:59 2019 -0700 net: add a generic tracepoint for TX queue timeout Although devlink health report does a nice job on reporting TX timeout and other NIC errors, unfortunately it requires drivers to support it but currently only mlx5 has implemented it. Before other drivers could catch up, it is useful to have a generic tracepoint to monitor this kind of TX timeout. We have been suffering TX timeout with different drivers, we plan to start to monitor it with rasdaemon which just needs a new tracepoint. Sample output: ksoftirqd/1-16 [001] ..s2 144.043173: net_dev_xmit_timeout: dev=ens3 driver=e1000 queue=0 Cc: Eran Ben Elisha Cc: Jiri Pirko Signed-off-by: Cong Wang Acked-by: Jiri Pirko Reviewed-by: Eran Ben Elisha Signed-off-by: David S. Miller commit 4b2a2bfeb3f056461a90bd621e8bd7d03fa47f60 Author: David Ahern Date: Wed May 1 18:18:42 2019 -0700 neighbor: Call __ipv4_neigh_lookup_noref in neigh_xmit Commit cd9ff4de0107 changed the key for IFF_POINTOPOINT devices to INADDR_ANY but neigh_xmit which is used for MPLS encapsulations was not updated to use the altered key. The result is that every packet Tx does a lookup on the gateway address which does not find an entry, a new one is created only to find the existing one in the table right before the insert since arp_constructor was updated to reset the primary key. This is seen in the allocs and destroys counters: ip -s -4 ntable show | head -10 | grep alloc which increase for each packet showing the unnecessary overhread. Fix by having neigh_xmit use __ipv4_neigh_lookup_noref for NEIGH_ARP_TABLE. Fixes: cd9ff4de0107 ("ipv4: Make neigh lookup keys for loopback/point-to-point devices be INADDR_ANY") Reported-by: Alan Maguire Signed-off-by: David Ahern Tested-by: Alan Maguire Signed-off-by: David S. Miller commit 64c6f4bbca748c3b2101469a76d88b7cd1c00476 Author: David Ahern Date: Wed May 1 18:08:34 2019 -0700 neighbor: Reset gc_entries counter if new entry is released before insert Ian and Alan both reported seeing overflows after upgrades to 5.x kernels: neighbour: arp_cache: neighbor table overflow! Alan's mpls script helped get to the bottom of this bug. When a new entry is created the gc_entries counter is bumped in neigh_alloc to check if a new one is allowed to be created. ___neigh_create then searches for an existing entry before inserting the just allocated one. If an entry already exists, the new one is dropped in favor of the existing one. In this case the cleanup path needs to drop the gc_entries counter. There is no memory leak, only a counter leak. Fixes: 58956317c8d ("neighbor: Improve garbage collection") Reported-by: Ian Kumlien Reported-by: Alan Maguire Signed-off-by: David Ahern Tested-by: Alan Maguire Signed-off-by: David S. Miller commit f3f050a4df355c398f70e3788360a1262ac0c5df Merge: 18af9626d9f9 6f4e02193c9a Author: David S. Miller Date: Sat May 4 00:25:02 2019 -0400 Merge tag 'mlx5-updates-2019-04-30' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux Saeed Mahameed says: ==================== mlx5-updates-2019-04-30 mlx5 misc updates: 1) Bodong Wang and Parav Pandit (6): - Remove unused mlx5_query_nic_vport_vlans - vport macros refactoring - Fix vport access in E-Switch - Use atomic rep state to serialize state change 2) Eli Britstein (2): - prio tag mode support, added ACLs and replace TC vlan pop with vlan 0 rewrite when prio tag mode is enabled. 3) Erez Alfasi (2): - ethtool: Add SFF-8436 and SFF-8636 max EEPROM length definitions - mlx5e: ethtool, Add support for EEPROM high pages query 4) Masahiro Yamada (1): - remove meaningless CFLAGS_tracepoint.o 5) Maxim Mikityanskiy (1): - Put the common XDP code into a function 6) Tariq Toukan (2): - Turn on HW tunnel offload in all TIRs 7) Vlad Buslov (1): - Return error when trying to insert existing flower filter ==================== Signed-off-by: David S. Miller commit 18af9626d9f9ecc4d83951895fc6afa825d70bbe Merge: 70bb13a5ffb4 20ce2a1a2e4d Author: David S. Miller Date: Sat May 4 00:20:52 2019 -0400 Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== 100GbE Intel Wired LAN Driver Updates 2019-05-02 This series contains updates to the ice driver only. Anirudh introduces the framework to store queue specific information in the VSI queue contexts. This will allow future changes to update the structure to hold queue specific information. Akeem adds additional check so that if there is no queue to disable when attempting to disable a queue, return a configuration error without acquiring the lock. Fixed an issue with non-trusted VFs being able to add more than the permitted number of VLANs. Bruce removes unreachable code and updated the function to return void since it would never return anything but success. Brett provides most of the changes in the series, starting with reducing the scope of the error variable used and improved the debug message if we fail to configure the receive queue. Updates the driver to use a macro instead of using the same 'for' loop throughout the driver which helps with readability. Fixed an issue where users were led to believe they could set rx-usecs-high value, yet the changes to this value would not stick because it was not yet implemented to allow changes to this value, so implement the missing code to change the value. Found we had unnecessary wait when disabling queues, so remove it. I,proved a wasteful addition operation in our hot path by adding a member to the ice_q_vector structure and the necessary changes to use the member which stores the calculated vector hardware index. Refactored the link event flow to make it cleaner and more clear. Maciej updates the array index when stopping transmit rings, so that process every ring the VSI, not just the rings in a given transmit class. Paul adds support for setting 52 byte RSS hash keys. Md Fahad cleaned up a runtime change to the PFINT_OICR_ENA register, since the interrupt handlers will handle resetting the bit, if necessary. Tony adds a missing PHY type, which was causing warning message about an unrecognized PHY. ==================== Signed-off-by: David S. Miller commit f0c5bcf2f43f122ec84161992dc9d9d994d53fdb Merge: 93aa4792c390 f913308879bc Author: David S. Miller Date: Sat May 4 00:14:47 2019 -0400 Merge branch 'ena-fixes' Sameeh Jubran says: ==================== Bug fixes for ENA Ethernet driver Sameeh Jubran (8): net: ena: fix swapped parameters when calling ena_com_indirect_table_fill_entry net: ena: fix: set freed objects to NULL to avoid failing future allocations net: ena: fix: Free napi resources when ena_up() fails net: ena: fix incorrect test of supported hash function net: ena: fix return value of ena_com_config_llq_info() net: ena: improve latency by disabling adaptive interrupt moderation by default net: ena: fix ena_com_fill_hash_function() implementation net: ena: gcc 8: fix compilation warning ==================== Signed-off-by: David S. Miller commit f913308879bc6ae437ce64d878c7b05643ddea44 Author: Sameeh Jubran Date: Wed May 1 16:47:10 2019 +0300 net: ena: gcc 8: fix compilation warning GCC 8 contains a number of new warnings as well as enhancements to existing checkers. The warning - Wstringop-truncation - warns for calls to bounded string manipulation functions such as strncat, strncpy, and stpncpy that may either truncate the copied string or leave the destination unchanged. In our case the destination string length (32 bytes) is much shorter than the source string (64 bytes) which causes this warning to show up. In general the destination has to be at least a byte larger than the length of the source string with strncpy for this warning not to showup. This can be easily fixed by using strlcpy instead which already does the truncation to the string. Documentation for this function can be found here: https://elixir.bootlin.com/linux/latest/source/lib/string.c#L141 Fixes: 1738cd3ed342 ("net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)") Signed-off-by: Sameeh Jubran Signed-off-by: David S. Miller commit 11bd7a00c0d8ffe33d1e926f8e789b4aea787186 Author: Sameeh Jubran Date: Wed May 1 16:47:09 2019 +0300 net: ena: fix ena_com_fill_hash_function() implementation ena_com_fill_hash_function() didn't configure the rss->hash_func. Fixes: 1738cd3ed342 ("net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)") Signed-off-by: Netanel Belgazal Signed-off-by: Sameeh Jubran Signed-off-by: David S. Miller commit 78cb421d185cfb4fcea94e7c3ff6e6ea77bb8c11 Author: Sameeh Jubran Date: Wed May 1 16:47:08 2019 +0300 net: ena: improve latency by disabling adaptive interrupt moderation by default Adaptive interrupt moderation was erroneously enabled by default in the driver. In case the device supports adaptive interrupt moderation it will be automatically used, which may potentially increase latency. The adaptive moderation can be enabled from ethtool command in case the feature is supported by the device. Fixes: 1738cd3ed342 ("net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)") Signed-off-by: Guy Tzalik Signed-off-by: Sameeh Jubran Signed-off-by: David S. Miller commit 9a27de0c6ba10fe1af74d16d3524425e52c1ba3e Author: Sameeh Jubran Date: Wed May 1 16:47:07 2019 +0300 net: ena: fix return value of ena_com_config_llq_info() ena_com_config_llq_info() returns 0 even if ena_com_set_llq() fails. Return the failure code of ena_com_set_llq() in case it fails. fixes: 689b2bdaaa14 ("net: ena: add functions for handling Low Latency Queues in ena_com") Signed-off-by: Arthur Kiyanovski Signed-off-by: Sameeh Jubran Signed-off-by: David S. Miller commit d3cfe7ddbc3dfbb9b201615b7fef8fd66d1b5fe8 Author: Sameeh Jubran Date: Wed May 1 16:47:06 2019 +0300 net: ena: fix incorrect test of supported hash function ena_com_set_hash_function() tests if a hash function is supported by the device before setting it. The test returns the opposite result than needed. Reverse the condition to return the correct value. Also use the BIT macro instead of inline shift. Fixes: 1738cd3ed342 ("net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)") Signed-off-by: Arthur Kiyanovski Signed-off-by: Sameeh Jubran Signed-off-by: David S. Miller commit b287cdbd1cedfc9606682c6e02b58d00ff3a33ae Author: Sameeh Jubran Date: Wed May 1 16:47:05 2019 +0300 net: ena: fix: Free napi resources when ena_up() fails ena_up() calls ena_init_napi() but does not call ena_del_napi() in case of failure. This causes a segmentation fault upon rmmod when netif_napi_del() is called. Fix this bug by calling ena_del_napi() before returning error from ena_up(). Fixes: 1738cd3ed342 ("net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)") Signed-off-by: Arthur Kiyanovski Signed-off-by: Sameeh Jubran Signed-off-by: David S. Miller commit 8ee8ee7fe87bf64738ab4e31be036a7165608b27 Author: Sameeh Jubran Date: Wed May 1 16:47:04 2019 +0300 net: ena: fix: set freed objects to NULL to avoid failing future allocations In some cases when a queue related allocation fails, successful past allocations are freed but the pointer that pointed to them is not set to NULL. This is a problem for 2 reasons: 1. This is generally a bad practice since this pointer might be accidentally accessed in the future. 2. Future allocations using the same pointer check if the pointer is NULL and fail if it is not. Fixed this by setting such pointers to NULL in the allocation of queue related objects. Also refactored the code of ena_setup_tx_resources() to goto-style error handling to avoid code duplication of resource freeing. Fixes: 1738cd3ed342 ("net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)") Signed-off-by: Arthur Kiyanovski Signed-off-by: Sameeh Jubran Signed-off-by: David S. Miller commit 3c6eeff295f01bdf1c6c3addcb0a04c0c6c029e9 Author: Sameeh Jubran Date: Wed May 1 16:47:03 2019 +0300 net: ena: fix swapped parameters when calling ena_com_indirect_table_fill_entry second parameter should be the index of the table rather than the value. Fixes: 1738cd3ed342 ("net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)") Signed-off-by: Saeed Bshara Signed-off-by: Sameeh Jubran Signed-off-by: David S. Miller commit 70bb13a5ffb466a21508a63110f574eb99046eee Author: Gustavo A. R. Silva Date: Tue Apr 30 22:27:32 2019 -0500 wimax/i2400m: use struct_size() helper Make use of the struct_size() helper instead of an open-coded version in order to avoid any potential type mistakes, in particular in the context in which this code is being used. So, replace code of the following form: sizeof(*tx_msg) + le16_to_cpu(tx_msg->num_pls) * sizeof(tx_msg->pld[0]); with: struct_size(tx_msg, pld, le16_to_cpu(tx_msg->num_pls)); This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Signed-off-by: David S. Miller commit 504159c3837e80cdf487325ac52ba55a05a7943f Merge: e28441e2ea09 7e6ec9148a1d Author: David S. Miller Date: Sat May 4 00:02:41 2019 -0400 Merge branch 'net-hns3-enhance-capabilities-for-fibre-port' Jian Shen says: ==================== net: hns3: enhance capabilities for fibre port This patchset enhances more capabilities for fibre port, include multipe media type identification, autoneg, change port speed and FEC encoding. ==================== Signed-off-by: David S. Miller commit 7e6ec9148a1d83f187397034c0d9f1de84ee0c60 Author: Jian Shen Date: Fri May 3 17:50:39 2019 +0800 net: hns3: add support for FEC encoding control This patch adds support for FEC encoding control, user can change FEC mode by command ethtool --set-fec, and get FEC mode by command ethtool --show-fec. The fec capability is changed follow the port speed. If autoneg on, the user configure fec mode will be overwritten by autoneg result. Signed-off-by: Jian Shen Signed-off-by: Peng Li Signed-off-by: David S. Miller commit 22f48e24a23de68360ce9fcdce42d1612240d263 Author: Jian Shen Date: Fri May 3 17:50:38 2019 +0800 net: hns3: add autoneg and change speed support for fibre port Previously, our driver only supports phydev to autoneg or change port speed. This patch adds support for fibre port, driver gets media speed capability and autoneg capability from firmware. If the media supports multiple speeds, user can change port speed with command "ethtool -s speed xxxx autoneg off duplex full". If autoneg on, the user configuration may be overwritten by the autoneg result. Signed-off-by: Jian Shen Signed-off-by: Peng Li Signed-off-by: David S. Miller commit 88d10bd6f73014e8392968cc1db246ad4bf98792 Author: Jian Shen Date: Fri May 3 17:50:37 2019 +0800 net: hns3: add support for multiple media type Previously, we can only identify copper and fiber type, the supported link modes of port information are always showing SR type. This patch adds support for multiple media types, include SR, LR CR, KR. Driver needs to query the media type from firmware periodicly, and updates the port information. The new port information looks like this: Settings for eth0: Supported ports: [ FIBRE ] Supported link modes: 25000baseCR/Full 25000baseSR/Full 1000baseX/Full 10000baseCR/Full 10000baseSR/Full 10000baseLR/Full Supported pause frame use: Symmetric Supports auto-negotiation: No Supported FEC modes: None BaseR Advertised link modes: Not reported Advertised pause frame use: No Advertised auto-negotiation: No Advertised FEC modes: Not reported Speed: 10000Mb/s Duplex: Full Port: FIBRE PHYAD: 0 Transceiver: internal Auto-negotiation: off Current message level: 0x00000036 (54) probe link ifdown ifup Link detected: yes In order to be compatible with old firmware which only support sfp speed, we remained using the same query command, and kept the former logic. Signed-off-by: Jian Shen Signed-off-by: Peng Li Signed-off-by: David S. Miller commit e28441e2ea090a4751160a75e5b0d823116a92fb Author: Guenter Roeck Date: Tue Apr 30 17:35:33 2019 -0700 usbnet: ipheth: Remove unnecessary NULL pointer check ipheth_carrier_set() is called from two locations. In ipheth_carrier_check_work(), its parameter 'dev' is set with container_of(work, ...) and can not be NULL. In ipheth_open(), dev is extracted from netdev_priv(net) and dereferenced before the call to ipheth_carrier_set(). The NULL pointer check of dev in ipheth_carrier_set() is therefore unnecessary and can be removed. Cc: Gustavo A. R. Silva Signed-off-by: Guenter Roeck Signed-off-by: David S. Miller commit a27415decd84dac124c6185f1184b6c779d0a5ab Author: Andrew Lunn Date: Wed May 1 00:10:50 2019 +0200 net: dsa: mv88e6xxx: Pass interrupt number in platform data Allow an interrupt number to be passed in the platform data. The driver will then use it if not zero, otherwise it will poll for interrupts. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller commit 3b3600fffb437ff5b6331e7dffb98408747b7c12 Merge: 2ce1aef9cdad 100a9b9d7505 Author: David S. Miller Date: Fri May 3 23:53:06 2019 -0400 Merge branch 'mv88e6xxx-Disable-ports-to-save-power' Andrew Lunn says: ==================== mv88e6xxx: Disable ports to save power Save some power by disabling ports. The first patch fully disables a port when it is runtime disabled. The second disables any ports which are not used at all. Depending on configuration strapping, this can lower the temperature of an idle switch a few degrees. ==================== Signed-off-by: David S. Miller commit 100a9b9d75051739f6d33e5182fc9871f6012765 Author: Andrew Lunn Date: Wed May 1 00:08:31 2019 +0200 net: dsa :mv88e6xxx: Disable unused ports If the NO_CPU strap is set, the switch starts in 'dumb hub' mode, with all ports enable. Ports which are then actively used are reconfigured as required when the driver starts. However unused ports are left alone. Change this to disable them, and turn off any SERDES interface. This could save some power and so reduce the temperature a bit. Signed-off-by: Andrew Lunn Reviewed-by: Vivien Didelot Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 4a0eb731d68362169d3d304ffa5afb6972909ab8 Author: Andrew Lunn Date: Wed May 1 00:08:30 2019 +0200 net: dsa: mv88e6xxx: Set STP disable state in port_disable When requested to disable a port, set the port STP state to disabled. This fully disables the port and should save some power. Signed-off-by: Andrew Lunn Reviewed-by: Vivien Didelot Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 93aa4792c3908eac87ddd368ee0fe0564148232b Author: Haiyang Zhang Date: Tue Apr 30 19:29:07 2019 +0000 hv_netvsc: fix race that may miss tx queue wakeup When the ring buffer is almost full due to RX completion messages, a TX packet may reach the "low watermark" and cause the queue stopped. If the TX completion arrives earlier than queue stopping, the wakeup may be missed. This patch moves the check for the last pending packet to cover both EAGAIN and success cases, so the queue will be reliably waked up when necessary. Reported-and-tested-by: Stephan Klein Signed-off-by: Haiyang Zhang Signed-off-by: David S. Miller commit 2ce1aef9cdadc593b825a181163dfef181ffbea1 Merge: 8ef988b914bd 4ff0ee1af016 Author: David S. Miller Date: Fri May 3 23:27:00 2019 -0400 Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== 40GbE Intel Wired LAN Driver Updates 2019-05-03 This series contains updates to the i40e driver only. Carolyn changes the driver behavior to now disable the VF after one MDD event instead of allowing a couple of MDD events before doing the reset. Aleksandr changes the driver to only report an error when a VF tries to remove VLAN when a port VLAN is configured, unless it is VLAN 0. Also extends the LLDP support to be able to keep the current LLDP state persistent across a power cycle. Maciej fixes the checksum calculation due to firmware changes, which requires the driver to perform a double shadow RAM dump in some cases. Adam adds advertising support for 40GBase_LR4, 40GBase_CR4 and fibre in the driver. Jake cleans up a check that is not needed and was producing a warning in GCC 8. Harshitha fixes a misleading message by ensuring that a success message is only printed on the host side when the promiscuous mode change has been successful. Stefan Assmann adds the vendor id and device id to the dmesg log entry during probe to help with bug reports when lspci output may not be available. Alice and Piotr add recovery mode support in the i40e driver, which is needed for migrating from a structured to a flat firmware image. v2: Removed patch 1 "i40e: replace switch-statement to speed-up retpoline-enabled builds" from the series since it is no longer needed. Also updated the last patch in the series that introduces recovery mode support, to include a more detailed patch description and removed code not intended for the upstream kernel. ==================== Signed-off-by: David S. Miller commit 2f5bd0367e7a9e5f5a150500e016a9cb7042803b Author: Serge Semin Date: Fri May 3 20:50:38 2019 +0300 mips: Perform early low memory test memblock subsystem provides a method to optionally test the passed memory region in case if it was requested via special kernel boot argument. Lets add the function at the bottom of the arch_mem_init() method. Testing at this point in the boot sequence should be safe since all critical areas are now reserved and a minimum of allocations have been done. Reviewed-by: Matt Redfearn Signed-off-by: Serge Semin Signed-off-by: Paul Burton Cc: Ralf Baechle Cc: James Hogan Cc: Mike Rapoport Cc: Andrew Morton Cc: Michal Hocko Cc: Greg Kroah-Hartman Cc: Thomas Bogendoerfer Cc: Huacai Chen Cc: Stefan Agner Cc: Stephen Rothwell Cc: Alexandre Belloni Cc: Juergen Gross Cc: Serge Semin Cc: linux-mips@vger.kernel.org Cc: linux-kernel@vger.kernel.org commit 30c8f4e411fb76f752a193bd945d4b9ef06c2d87 Author: Serge Semin Date: Fri May 3 20:50:37 2019 +0300 mips: Dump memblock regions for debugging It is useful to have the whole memblock memory space printed to console when basic memlock initializations are done. It can be performed by ready-to-use method memblock_dump_all(), which prints the available and reserved memory spaces if memblock=debug kernel parameter is specified. Lets call it at the very end of arch_mem_init() function, when all memblock memory and reserved regions are defined, but before any serious allocation is performed. Signed-off-by: Serge Semin Signed-off-by: Paul Burton Cc: Ralf Baechle Cc: James Hogan Cc: Mike Rapoport Cc: Andrew Morton Cc: Michal Hocko Cc: Greg Kroah-Hartman Cc: Thomas Bogendoerfer Cc: Huacai Chen Cc: Stefan Agner Cc: Stephen Rothwell Cc: Alexandre Belloni Cc: Juergen Gross Cc: Serge Semin Cc: linux-mips@vger.kernel.org Cc: linux-kernel@vger.kernel.org commit 11c03dc85f02901ce9b6a1ced099fdcaeb188572 Author: John David Anglin Date: Sat Apr 27 14:15:38 2019 -0400 parisc: Update huge TLB page support to use per-pagetable spinlock This patch updates the parisc huge TLB page support to use per-pagetable spinlocks. This patch requires Mikulas' per-pagetable spinlock patch and the revised TLB serialization patch from Helge and myself. With Mikulas' patch, we need to use the per-pagetable spinlock for page table updates. The TLB lock is only used to serialize TLB flushes on machines with the Merced bus. Signed-off-by: John David Anglin Signed-off-by: Helge Deller commit b37d1c1898b288c69f3dc9267bc2c41af06f4a4b Author: Mikulas Patocka Date: Sun Apr 28 00:09:53 2019 +0200 parisc: Use per-pagetable spinlock PA-RISC uses a global spinlock to protect pagetable updates in the TLB fault handlers. When multiple cores are taking TLB faults simultaneously, the cache line containing the spinlock becomes a bottleneck. This patch embeds the spinlock in the top level page directory, so that every process has its own lock. It improves performance by 30% when doing parallel compilations. At least on the N class systems, only one PxTLB inter processor broadcast can be active at any one time on the Merced bus. If a Merced bus is found, this patch serializes the TLB flushes with the pa_tlb_flush_lock spinlock. v1: Initial patch by Mikulas v2: Added Merced detection by Helge v3: Revised TLB serialization by Dave & Helge Signed-off-by: Mikulas Patocka Signed-off-by: John David Anglin Signed-off-by: Helge Deller commit d19a12906e5e558c0f6b6cfece7b7caf1012ef95 Author: Helge Deller Date: Wed May 1 14:59:58 2019 +0200 parisc: Allow live-patching of __meminit functions When making the text sections writeable with set_kernel_text_rw(1), include all text sections including those in the __init section. Otherwise functions marked with __meminit will stay read-only. Signed-off-by: Helge Deller Cc: # 4.20+ commit 2d94a832e246ac00fd32eec241e6f1aa6fbc5700 Author: Helge Deller Date: Sat Apr 27 23:57:49 2019 +0200 parisc: Add memory barrier to asm pdc and sync instructions Add compiler memory barriers to ensure the compiler doesn't reorder memory operations around these instructions. Cc: stable@vger.kernel.org # v4.20+ Fixes: 3847dab77421 ("parisc: Add alternative coding infrastructure") Signed-off-by: Helge Deller commit 44224bdb99150ad17cf394973b25736cb92c246a Author: John David Anglin Date: Sun Apr 21 19:47:17 2019 -0400 parisc: Add memory clobber to TLB purges The pdtlb and pitlb instructions are strongly ordered. The asms invoking these instructions should be compiler memory barriers to ensure the compiler doesn't reorder memory operations around these instructions. Signed-off-by: John David Anglin CC: stable@vger.kernel.org # v4.20+ Fixes: 3847dab77421 ("parisc: Add alternative coding infrastructure") Signed-off-by: Helge Deller commit 9e5c602186a692a7e848c0da17aed40f49d30519 Author: John David Anglin Date: Sun Apr 14 19:20:40 2019 -0400 parisc: Use ldcw instruction for SMP spinlock release barrier There are only a couple of instructions that can function as a memory barrier on parisc. Currently, we use the sync instruction as a memory barrier when releasing a spinlock. However, the ldcw instruction is a better barrier when we have a handy memory location since it operates in the cache on coherent machines. This patch updates the spinlock release code to use ldcw. I also changed the "stw,ma" instructions to "stw" instructions as it is not an adequate barrier. Signed-off-by: John David Anglin Signed-off-by: Helge Deller commit 6c63ef80014b60ab13bee7e683d0a95521bb7fdd Author: John David Anglin Date: Fri Apr 12 19:12:04 2019 -0400 parisc: Remove lock code to serialize TLB operations in pacache.S TLB operations only need to be serialized on machines with the Merced (Stretch) bus. The only machines in this category are L and N class, and they require a 64-bit PA 2.0 kernel. On these machines, we use local TLB purges in the tmpalias routines. We don't need to serialize TLB purges on all other machines. Thus, the lock/unlock code can be removed when CONFIG_PA20 is not defined. Further, when CONFIG_PA20 is not defined, alternative patching converts the TLB purges to local purges when PA 2.0 hardware has been detected. Signed-off-by: John David Anglin Tested-By: Sven Schnelle Signed-off-by: Helge Deller commit dbdf0760990583649bfaca75fd98f76afd5f3905 Author: Helge Deller Date: Tue Apr 9 21:52:35 2019 +0200 parisc: Switch from DISCONTIGMEM to SPARSEMEM The commit 1c30844d2dfe ("mm: reclaim small amounts of memory when an external fragmentation event occurs") breaks memory management on a parisc c8000 workstation with this memory layout: 0) Start 0x0000000000000000 End 0x000000003fffffff Size 1024 MB 1) Start 0x0000000100000000 End 0x00000001bfdfffff Size 3070 MB 2) Start 0x0000004040000000 End 0x00000040ffffffff Size 3072 MB With the patch 1c30844d2dfe, the kernel will incorrectly reclaim the first zone when it fills up, ignoring the fact that there are two completely free zones. Basiscally, it limits cache size to 1GiB. The parisc kernel is currently using the DISCONTIGMEM implementation, but isn't NUMA. Avoid this issue or strange work-arounds by switching to the more commonly used SPARSEMEM implementation. Reported-by: Mikulas Patocka Fixes: 1c30844d2dfe ("mm: reclaim small amounts of memory when an external fragmentation event occurs") Signed-off-by: Helge Deller commit 6b1370ae392b79ac3e2d053205f4107d4a55c102 Author: Sven Schnelle Date: Thu Apr 18 11:33:13 2019 +0200 parisc: enable wide mode early The idle task might have been allocated above 4GB. With the current code we cannot access that memory because the CPU is still running in narrow mode. This was found on a J5000 machine and the patch is required to enable SPARSEMEM on that machine. Signed-off-by: Sven Schnelle Signed-off-by: Helge Deller commit 75da60ff53fb030e12ac83cdef1da0464b289d1a Author: Sven Schnelle Date: Tue Apr 9 22:05:24 2019 +0200 parisc: update feature lists Update lists to reflect that we have now KGDB and kretprobes support. Signed-off-by: Sven Schnelle Signed-off-by: Helge Deller commit 0e4db23e12b704c5aeb547b69a62e5869dc1bcb8 Author: Helge Deller Date: Tue Apr 9 22:22:29 2019 +0200 parisc: Show n/a if product number not available Signed-off-by: Helge Deller commit ea5a8c620ffb341b2d1a02755f9e87375523c0e5 Author: Sven Schnelle Date: Tue Apr 9 19:30:30 2019 +0200 parisc: remove unused flags parameter in __patch_text() It's not used by patch_map()/patch_unmap(), so lets remove it. Signed-off-by: Sven Schnelle Signed-off-by: Helge Deller commit 376e5fd7ec341a4e9cee2bf64fb59285023056e3 Author: Sven Schnelle Date: Tue Apr 9 19:30:29 2019 +0200 doc: update kprobes supported architecture list Now that kprobes and kretprobes are implemented, update the list in Documentation to reflect that. Signed-off-by: Sven Schnelle Signed-off-by: Helge Deller commit e0b59b7b633ab72c08bb9bac36afaeaade011ddf Author: Sven Schnelle Date: Tue Apr 9 19:30:28 2019 +0200 parisc: Implement kretprobes Implement kretprobes on parisc, parts stolen from powerpc. Signed-off-by: Sven Schnelle Signed-off-by: Helge Deller commit 1253d18d2d51f79c74421fc4fe12fb4213fdd6ea Author: Sven Schnelle Date: Tue Apr 9 19:30:27 2019 +0200 parisc: remove kprobes.h from generic-y We're providing our own version now. Signed-off-by: Sven Schnelle Signed-off-by: Helge Deller commit 8858ac8e9e9b1894f7bb218bc0035532371b8d7e Author: Sven Schnelle Date: Sun Apr 7 20:10:58 2019 +0200 parisc: Implement kprobes Implement kprobes support for PA-RISC. Signed-off-by: Sven Schnelle Signed-off-by: Helge Deller commit ea1afe339a2b1260aa31a4d100155d4403446704 Author: Sven Schnelle Date: Sun Apr 7 20:10:57 2019 +0200 parisc: add functions required by KPROBE_EVENTS implement regs_get_register(), regs_get_kernel_stack_nth() and regs_within_kernel_stack() Signed-off-by: Sven Schnelle Signed-off-by: Helge Deller commit 82d96bf68e6c2101dfbba2984cd9565643f5d8cb Author: Helge Deller Date: Sun Apr 7 01:09:23 2019 +0200 parisc: PA-Linux requires at least 32 MB RAM Even a 32-bit kernel requires at least 27 MB to decompress itself, so halt the system with a message if the system has less memory than 32 MB. Signed-off-by: Helge Deller commit b438749044356dd1329c45e9b5a9377b6ea13eb2 Author: Helge Deller Date: Tue Apr 2 12:17:08 2019 +0200 parisc: Skip registering LED when running in QEMU No need to spend CPU cycles when we run on QEMU. Signed-off-by: Helge Deller CC: stable@vger.kernel.org # v4.9+ commit f30bfa6d29da64a302a99b20ff79df8088c61836 Author: Helge Deller Date: Tue Apr 2 12:21:13 2019 +0200 parisc: Tune LASI LAN for QEMU Do not loose cycles when we run on QEMU, and fix one trivial typo. Signed-off-by: Helge Deller commit 3e1120f4b57bc12437048494ab56648edaa5b57d Author: Helge Deller Date: Sat Apr 6 16:45:14 2019 +0200 parisc: Export running_on_qemu symbol for modules Signed-off-by: Helge Deller CC: stable@vger.kernel.org # v4.9+ commit eacbfce19d8b6dbd7958cbe01d65a21324cc2fad Author: Sven Schnelle Date: Thu Apr 4 21:14:10 2019 +0200 parisc: add KGDB support This patch add KGDB support to PA-RISC. It also implements single-stepping utilizing the recovery counter. Signed-off-by: Sven Schnelle Signed-off-by: Helge Deller commit 620a53d522ba007a79fffc444bd75e8d3775f5b8 Author: Sven Schnelle Date: Thu Apr 4 21:14:09 2019 +0200 parisc: add parisc code patching Instead of re-mapping the whole kernel text with RWX rights add a patch_text() which can be used to replace instructions in the kernel .text section. Based on the ARM implementation. Signed-off-by: Sven Schnelle Signed-off-by: Helge Deller commit ccfbc68d41c2db8f5e88128427fb5bfe3855ff9b Author: Sven Schnelle Date: Thu Apr 4 21:14:08 2019 +0200 parisc: add set_fixmap()/clear_fixmap() These functions will be used for adding code patching functions later. Signed-off-by: Sven Schnelle Signed-off-by: Helge Deller commit 17d9822d4b4c1bfeb14971d9a2639698e7f5b1eb Author: Alexandre Ghiti Date: Thu Apr 4 02:26:22 2019 -0400 parisc: Consider stack randomization for mmap base only when necessary Do not offset mmap base address because of stack randomization if current task does not want randomization. Signed-off-by: Alexandre Ghiti Signed-off-by: Helge Deller commit 4ff0ee1af016976acb6a525e68ec9a5a85d7abdc Author: Alice Michael Date: Thu May 2 17:01:53 2019 -0700 i40e: Introduce recovery mode support This patch introduces "recovery mode" to the i40e driver. It is part of a new Any2Any idea of upgrading the firmware. In this approach, it is required for the driver to have support for "transition firmware", that is used for migrating from structured to flat firmware image. In this new, very basic mode, i40e driver must be able to handle particular IOCTL calls from the NVM Update Tool and run a small set of AQ commands. These additional AQ commands are part of the interface used by the NVMUpdate tool. The NVMUpdate tool contains all of the necessary logic to reference these new AQ commands. The end user experience remains the same, they are using the NVMUpdate tool to update the NVM contents. Signed-off-by: Alice Michael Signed-off-by: Piotr Marczak Tested-by: Don Buchholz Signed-off-by: Jeff Kirsher commit a121644c14bfa5f5141191bda272680680de0887 Author: Stefan Assmann Date: Tue Mar 12 12:18:02 2019 +0100 i40e: print PCI vendor and device ID during probe Printing each devices PCI vendor and device ID has the advantage of easily revealing what hardware we're dealing with exactly. It's no longer necessary to match the PCI bus information to the lspci output. Helps with bug reports where no lspci output is available. Output before i40e 0000:08:00.0: fw 6.1.49420 api 1.7 nvm 6.80 0x80003c64 1.2007.0 and after i40e 0000:08:00.0: fw 6.1.49420 api 1.7 nvm 6.80 0x80003c64 1.2007.0 [8086:1572] [8086:0004] Signed-off-by: Stefan Assmann Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 1e8468275284a22c403fcf8a7fe82140a270d461 Author: Harshitha Ramamurthy Date: Thu Feb 28 09:52:55 2019 -0800 i40e: fix misleading message about promisc setting on un-trusted VF A refactor of the i40e_vc_config_promiscuous_mode_msg function moved the check for un-trusted VF into another function. We have to lie to an un-trusted VF that its request to set promiscuous mode is successful even when it is not because we don't want the VF to find out its trust status this way. With the refactor, we were running into a case where even though we were not setting promiscuous mode for an un-trusted VF, we still printed a misleading message that it was successful. This patch fixes that by ensuring that a success message is printed on the host side only when the promiscuous mode change has been successful. Signed-off-by: Harshitha Ramamurthy Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit d1fc90a93dcafd245fa5dd62dbb627a1116b0f0b Author: Alice Michael Date: Thu Feb 28 09:52:54 2019 -0800 i40e: update version number Just bumping the version number appropriately. Signed-off-by: Alice Michael Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit a01e5f222f210548ee88de8841176562d5d52c24 Author: Jacob Keller Date: Thu Feb 28 09:52:53 2019 -0800 i40e: remove out-of-range comparisons in i40e_validate_cloud_filter The function i40e_validate_cloud_filter checks that the destination and source port numbers are valid by attempting to ensure that the number is non-zero and no larger than 0xFFFF. However, the types for the dst_port and src_port variable are __be16 which by definition cannot be larger than 0xFFFF Since these values cannot be larger than 2 bytes, the check to see if they exceed 0xFFFF is meaningless. One might consider these checks as some sort of defensive coding, in case the type was later changed. However, these checks also byte-swap the value before comparison using be16_to_cpu, which will truncate the values to 16bits anyways. Additionally, changing the type would require updating the opcodes to support new data layout of these virtchnl commands. Remove the check to silence the -Wtype-limits warning that was added to GCC 8. Signed-off-by: Jacob Keller Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit c65e78f87f8131361141c1b1c7f415ed21e86bde Author: Aleksandr Loktionov Date: Thu Feb 28 09:52:52 2019 -0800 i40e: Further implementation of LLDP This code implements driver code changes necessary for LLDP Agent support. Modified i40e_aq_start_lldp() and i40e_aq_stop_lldp() adding false parameter whether LLDP state should be persistent across power cycles. Signed-off-by: Aleksandr Loktionov Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit b3212f355de00e77bb6163f14a6681ec1f2e16ea Author: Adam Ludkiewicz Date: Thu Feb 28 09:52:51 2019 -0800 i40e: Report advertised link modes on 40GBase_LR4, CR4 and fibre Add assignments for advertising 40GBase_LR4, 40GBase_CR4 and fibre Signed-off-by: Adam Ludkiewicz Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 226436dc8ae8539a25a85be8c0e154a28722c3f6 Author: Maciej Paczkowski Date: Thu Feb 28 09:52:50 2019 -0800 i40e: ShadowRAM checksum calculation change Due to changes in FW the SW is required to perform double SR dump in some cases. Implementation adds two new steps to update nvm checksum function: * recalculate checksum and check if checksum in NVM is correct * if checksum in NVM is not correct then update it again Signed-off-by: Maciej Paczkowski Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 5a189f15502f92abf8949a0898816a2abadd5df6 Author: Aleksandr Loktionov Date: Thu Feb 28 09:52:49 2019 -0800 i40e: remove error msg when vf with port vlan tries to remove vlan 0 VF's attempt to delete vlan 0 when a port vlan is configured is harmless in this case pf driver just does nothing. If vf will try to remove other vlans when a port vlan is configured it will still produce error as before. Signed-off-by: Aleksandr Loktionov Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit a1df906c5be75ce2c7633e06c688607ec088ca35 Author: Carolyn Wyborny Date: Thu Feb 28 09:52:48 2019 -0800 i40e: change behavior on PF in response to MDD event TX MDD events reported on the PF are the result of the PF misconfiguring a descriptor and not because of "bad actions" by anything else. No need to reset now because if it results in a Tx hang, the Tx hang check will take care of it. Signed-off-by: Carolyn Wyborny Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit a7da7f16267b96cfd0bf753e1733080ef71e6b66 Author: Carolyn Wyborny Date: Thu Feb 28 09:52:47 2019 -0800 i40e: Fix for allowing too many MDD events on VF This patch changes the driver behavior when detecting a VF MDD event. It now disables the VF after one event, which indicates a hw detected problem in the VF. Before this change, the PF would allow a couple of events before doing the reset. Signed-off-by: Carolyn Wyborny Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit b208146b0c8f84a1d6a3df0cfa45238e2190c8a2 Author: Robin Murphy Date: Fri May 3 16:31:45 2019 +0100 drm/panfrost: Show stored feature registers Re-reading the feature registers for the sake of displaying the raw values seems pointless, and in fact showing the copies that we've already read and stored is arguably more useful in terms of giving exposure to any potential bugs in that part of the process. Signed-off-by: Robin Murphy Signed-off-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/ce5e414adb008baeed9e2ceb9c88f28d5c74ea42.1556195258.git.robin.murphy@arm.com commit 5450f3615c09603f13e81e182d2e0ddec0361082 Author: Robin Murphy Date: Fri May 3 16:31:44 2019 +0100 drm/panfrost: Don't scream about deferred probe Probe deferral is far from "fatal". Signed-off-by: Robin Murphy Signed-off-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/b6ff1f18ac0612f29fd2e3336d6663b7e02db572.1556195258.git.robin.murphy@arm.com commit f4a3c6a44b351fc2cd79b1494606c84c46865024 Author: Robin Murphy Date: Fri May 3 16:31:43 2019 +0100 drm/panfrost: Disable PM on probe failure Make sure to disable runtime PM again if probe fails after we've enabled it. Otherwise, any subsequent attempt to re-probe starts triggering "Unbalanced pm_runtime_enable!" assertions from the driver core. Signed-off-by: Robin Murphy Signed-off-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/2487391e7646cabbc52e9b4c20182e39d3f61859.1556195258.git.robin.murphy@arm.com commit d9b631f0a0c43ee180845d0a994d2cf4948a2eae Author: Robin Murphy Date: Fri May 3 16:31:42 2019 +0100 drm/panfrost: Set DMA masks earlier The DMA masks need to be set correctly before any DMA API activity kicks off, and the current point in panfrost_probe() is way too late in that regard. since panfrost_mmu_init() has already set up a live address space and DMA-mapped MMU pagetables. We can't set masks until we've queried the appropriate value from MMU_FEATURES, but as soon as reasonably possible after that should suffice. Signed-off-by: Robin Murphy Signed-off-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/64361b929a5c61d2ab9580262ecb3d369164cfcb.1556195258.git.robin.murphy@arm.com commit 6ff408e6dc2072adc3e27d7687dfba19edb05d60 Author: Tomeu Vizoso Date: Wed Apr 24 15:13:53 2019 +0200 drm/panfrost: Add sanity checks to submit IOCTL So userspace can get feedback on any error conditions, instead of going ahead and things breaking later. Signed-off-by: Tomeu Vizoso Signed-off-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/20190424131355.62817-1-tomeu.vizoso@collabora.com commit 39abe9d88b30a51029b0b29a708a4f4459034565 Author: Iker Perez del Palomar Sustatxa Date: Fri May 3 17:15:00 2019 +0100 hwmon: (lm75) Add support for TMP75B The TMP75B has a different control register, supports 12-bit resolution and the default conversion rate is 37 Hz. Signed-off-by: Iker Perez del Palomar Sustatxa Signed-off-by: Guenter Roeck commit 9a2688e42638f2e057dbdfce82e221b38bfba0a7 Author: Andrey Smirnov Date: Fri May 3 10:00:41 2019 -0700 power: supply: Add driver for Microchip UCS1002 Add driver for Microchip UCS1002 Programmable USB Port Power Controller with Charger Emulation. The driver exposed a power supply device to control/monitor various parameter of the device as well as a regulator to allow controlling VBUS line. Signed-off-by: Enric Balletbo Serra Signed-off-by: Andrey Smirnov Reviewed-by: Guenter Roeck Cc: Chris Healy Cc: Lucas Stach Cc: Fabio Estevam Cc: Guenter Roeck Cc: linux-kernel@vger.kernel.org Cc: linux-pm@vger.kernel.org Signed-off-by: Sebastian Reichel commit 7df8f2d00ddb54da995d552aa0f599b1daf7e662 Author: Andrey Smirnov Date: Fri May 3 10:00:42 2019 -0700 dt-bindings: power: supply: Add bindings for Microchip UCS1002 Add bindings for Microchip UCS1002 Programmable USB Port Power Controller with Charger Emulation. Signed-off-by: Andrey Smirnov Reviewed-by: Rob Herring Cc: Enric Balletbo Serra Cc: Chris Healy Cc: Lucas Stach Cc: Fabio Estevam Cc: Guenter Roeck Cc: linux-kernel@vger.kernel.org Cc: linux-pm@vger.kernel.org Signed-off-by: Sebastian Reichel commit e3e83cc601e57aeeea212e1cc37ff9a7ad584aae Author: Andrey Smirnov Date: Fri May 3 10:00:40 2019 -0700 power: supply: core: Add POWER_SUPPLY_HEALTH_OVERCURRENT constant Add POWER_SUPPLY_HEALTH_OVERCURRENT constant in order to allow singalling overcurrent condition via power supply health information. Signed-off-by: Andrey Smirnov Reviewed-by: Guenter Roeck Cc: Enric Balletbo Serra Cc: Chris Healy Cc: Lucas Stach Cc: Fabio Estevam Cc: Guenter Roeck Cc: linux-kernel@vger.kernel.org Cc: linux-pm@vger.kernel.org Signed-off-by: Sebastian Reichel commit be889be7785d21d8958d51d35cf52b73826657df Author: Iker Perez del Palomar Sustatxa Date: Fri May 3 17:15:01 2019 +0100 dt-bindings: hwmon: Add tmp75b to lm75.txt Update the LM75's devicetree definition to allow Texas Instruments TMP75B be probed. Signed-off-by: Iker Perez del Palomar Sustatxa Signed-off-by: Guenter Roeck commit ae677a67108726214873c02806f02ec7b470a7cf Merge: 43068cb7ba1f aa20236784ab Author: Sean Paul Date: Fri May 3 15:39:37 2019 -0400 Merge panfrost-fixes into drm-misc-next-fixes Merging some panfrost fixes as well as one rockchip fix that _just_ missed feature freeze. Signed-off-by: Sean Paul commit f68d67cf2f83dc82675969724b59ca7c6da43fa9 Author: Petr Mladek Date: Fri May 3 15:26:25 2019 +0200 livepatch: Remove duplicated code for early initialization kobject_init() call added one more operation that has to be done when doing the early initialization of both static and dynamic livepatch structures. It would have been easier when the early initialization code was not duplicated. Let's deduplicate it for future generations of livepatching hackers. The patch does not change the existing behavior. Signed-off-by: Petr Mladek Reviewed-by: Kamalesh Babulal Acked-by: Joe Lawrence Signed-off-by: Jiri Kosina commit 4d141ab3416d90f87775f5dee725efdf40110a8f Author: Petr Mladek Date: Fri May 3 15:26:24 2019 +0200 livepatch: Remove custom kobject state handling kobject_init() always succeeds and sets the reference count to 1. It allows to always free the structures via kobject_put() and the related release callback. Note that the custom kobject state handling was used only because we did not know that kobject_put() can and actually should get called even when kobject_init_and_add() fails. The patch should not change the existing behavior. Suggested-by: "Tobin C. Harding" Signed-off-by: Petr Mladek Reviewed-by: Kamalesh Babulal Acked-by: Joe Lawrence Signed-off-by: Jiri Kosina commit 33713cd09ccdc1e01b10d0782ae60200d4989553 Author: Martin Brandenburg Date: Mon Apr 29 17:09:48 2019 +0000 orangefs: truncate before updating size Otherwise we race with orangefs_writepage/orangefs_writepages which and does not expect i_size < page_offset. Fixes xfstests generic/129. Signed-off-by: Martin Brandenburg Signed-off-by: Mike Marshall commit dd59a6475c4cf69afac2ade01ab732b7825a2a45 Author: Mike Marshall Date: Mon Mar 25 18:59:29 2019 -0400 orangefs: copy Orangefs-sized blocks into the pagecache if possible. ->readpage looks in file->private_data to try and find out how the userspace program set "count" in read(2) or with "dd bs=" or whatever. ->readpage uses "count" and inode->i_size to calculate how much data Orangefs should deposit in the Orangefs shared buffer, and remembers which slot the data is in. After copying data from the Orangefs shared buffer slot into "the page", readpage tries to increment through the pagecache index and fill as many pages as it can from the extra data in the shared buffer. Hopefully these extra pages will soon be needed by the vfs, and they'll be in the pagecache already. Signed-off-by: Mike Marshall Signed-off-by: Martin Brandenburg commit 4077a0f25b001926f86d35f6236351583bada9a4 Author: Mike Marshall Date: Mon Mar 25 18:17:10 2019 -0400 orangefs: pass slot index back to readpage. When userspace deposits more than a page of data into the shared buffer, we'll need to know which slot it is in when we get back to readpage so that we can try to use the extra data to fill some extra pages. Signed-off-by: Mike Marshall Signed-off-by: Martin Brandenburg commit c2549f8c7a28c00facaf911f700c4811cfd6f52b Author: Mike Marshall Date: Mon Mar 25 15:52:29 2019 -0400 orangefs: remember count when reading. Orangefs wins when it can do IO on large (up to four meg) blocks at a time, and looses when it has to do tiny "small io" reads and writes. Accessing Orangefs through the pagecache with the kernel module helps with small io, both reading and writing, a great deal. Readpage generally tries to fetch a page (four k) at a time. We'll let users use "count" (as in read(2) or pread(2) for example) as a knob to control how much data they get from Orangefs at a time and we'll try to use the data to fill extra pagecache pages when we get to ->readpage, hopefully resulting in fewer calls to readpage and Orangefs userspace. We need a way to remember how they set count so that we can still have it available when we get to ->readpage. - We'll use file->private_data to keep track of "count". We'll wrap generic_file_open with orangefs_file_open and initialize private_data to NULL there. - In ->read_iter we have access to both "count" and file, so we'll kmalloc some space onto file->private_data and store "count" there. - We'll kfree file->private_data each time we visit ->flush and reinitialize it to NULL. Signed-off-by: Mike Marshall Signed-off-by: Martin Brandenburg commit 8f04e1be784858ba0288c7c09b9de06627a800c9 Author: Martin Brandenburg Date: Tue Feb 12 20:19:06 2019 +0000 orangefs: add orangefs_revalidate_mapping This is modeled after NFS, except our method is different. We use a simple timer to determine whether to invalidate the page cache. This is bound to perform. This addes a sysfs parameter cache_timeout_msecs which controls the time between page cache invalidations. Signed-off-by: Martin Brandenburg Signed-off-by: Mike Marshall commit c472ebc25555e634d89e1ed508d37c9102bff017 Author: Martin Brandenburg Date: Fri Dec 14 17:04:21 2018 -0500 orangefs: implement writepages Go through pages and look for a consecutive writable region. After finding a number of consecutive writable pages or when finding that the next page's dirty range is not contiguous and cannot be written as one request, send the write to the server. The number of pages is determined by the client-core's buffer size. Signed-off-by: Martin Brandenburg Signed-off-by: Mike Marshall commit 52e2d0a3804c095775b178d6b0707ef6ac8e6d04 Author: Martin Brandenburg Date: Fri Dec 14 15:24:43 2018 -0500 orangefs: write range tracking Attach the actual range of bytes written to plus the responsible uid/gid to each dirty page. This information must be sent to the server when the page is written out. Now write_begin, page_mkwrite, and invalidatepage keep up with this information. There are several conditions where they must write out the page immediately to store the new range. Two non-contiguous ranges cannot be stored on a single page. Signed-off-by: Martin Brandenburg Signed-off-by: Mike Marshall commit 90fc07065a3505e5a874c5854fd6176beb545e08 Author: Martin Brandenburg Date: Mon Mar 26 18:58:11 2018 +0000 orangefs: avoid fsync service operation on flush Without this, an fsync call is sent to the server even if no data changed. This resulted in a rather severe (50%) performance regression under certain metadata-heavy workloads. In the past, everything was direct IO. Nothing happend on a close call. An explicit fsync call would send an fsync request to the server which in turn fsynced the underlying file. Now there are cached writes. Then fsync began writing out dirty pages in addition to making an fsync request to the server, and close began calling fsync. With this commit, close only writes out dirty pages, and does not make the fsync request. Signed-off-by: Martin Brandenburg Signed-off-by: Mike Marshall commit 8a88bbce6f83430a737a97bb72d0912a6a103945 Author: Martin Brandenburg Date: Thu Feb 22 18:15:56 2018 +0000 orangefs: skip inode writeout if nothing to write Would happen if an inode is dirty but whatever happened is not something that can be written out to OrangeFS. Signed-off-by: Martin Brandenburg Signed-off-by: Mike Marshall commit 3e9dfc6e1e8bce62a329f1452c7eeccbac230980 Author: Martin Brandenburg Date: Tue Nov 6 19:54:49 2018 +0000 orangefs: move do_readv_writev to direct_IO direct_IO was the only caller and all direct_IO did was call it, so there's no use in having the code spread out into so many functions. Signed-off-by: Martin Brandenburg Signed-off-by: Mike Marshall commit 43f34576042eb3256c39b502b22c6755144f7517 Author: Martin Brandenburg Date: Tue Nov 6 19:51:39 2018 +0000 orangefs: do not return successful read when the client-core disappeared Signed-off-by: Martin Brandenburg Signed-off-by: Mike Marshall commit 85ac799cf926a589829ebe6274bb5e5a41159743 Author: Martin Brandenburg Date: Thu Feb 22 18:10:43 2018 +0000 orangefs: implement writepage Now orangefs_inode_getattr fills from cache if an inode has dirty pages. also if attr_valid and dirty pages and !flags, we spin on inode writeback before returning if pages still dirty after: should it be other way Signed-off-by: Martin Brandenburg Signed-off-by: Mike Marshall commit c453dcfc79815760071bd9a7805d4b809fec05cf Author: Martin Brandenburg Date: Fri Feb 16 20:51:24 2018 +0000 orangefs: migrate to generic_file_read_iter Remove orangefs_inode_read. It was used by readpage. Calling wait_for_direct_io directly serves the purpose just as well. There is now no check of the bufmap size in the readpage path. There are already other places the bufmap size is assumed to be greater than PAGE_SIZE. Important to call truncate_inode_pages now in the write path so a subsequent read sees the new data. Signed-off-by: Martin Brandenburg Signed-off-by: Mike Marshall commit 0dcac0f7812b2c09ed018a5eba91448a37f1b71b Author: Martin Brandenburg Date: Thu Feb 15 19:38:01 2018 +0000 orangefs: service ops done for writeback are not killable Signed-off-by: Martin Brandenburg Signed-off-by: Mike Marshall commit a68d9c606a67952fe547399bc45eebc8d83078bd Author: Martin Brandenburg Date: Thu Feb 15 18:02:43 2018 +0000 orangefs: remove orangefs_readpages It's a copy of the loop which would run in read_pages from mm/readahead.c. Signed-off-by: Martin Brandenburg Signed-off-by: Mike Marshall commit afd9fb2a31797b4c787034294a4062df0c19c37e Author: Martin Brandenburg Date: Tue Feb 13 20:13:46 2018 +0000 orangefs: reorganize setattr functions to track attribute changes OrangeFS accepts a mask indicating which attributes were changed. The kernel must not set any bits except those that were actually changed. The kernel must set the uid/gid of the request to the actual uid/gid responsible for the change. Code path for notify_change initiated setattrs is orangefs_setattr(dentry, iattr) -> __orangefs_setattr(inode, iattr) In kernel changes are initiated by calling __orangefs_setattr. Code path for writeback is orangefs_write_inode -> orangefs_inode_setattr attr_valid and attr_uid and attr_gid change together under i_lock. I_DIRTY changes separately. __orangefs_setattr lock if needs to be cleaned first, unlock and retry set attr_valid copy data in unlock mark_inode_dirty orangefs_inode_setattr lock copy attributes out unlock clear getattr_time # __writeback_single_inode clears dirty orangefs_inode_getattr # possible to get here with attr_valid set and not dirty lock if getattr_time ok or attr_valid set, unlock and return unlock do server operation # another thread may getattr or setattr, so check for that lock if getattr_time ok or attr_valid, unlock and return else, copy in update getattr_time unlock Signed-off-by: Martin Brandenburg Signed-off-by: Mike Marshall commit df2d7337b570c34e051a2412f716743277ccf9c8 Author: Martin Brandenburg Date: Mon Feb 12 20:29:37 2018 +0000 orangefs: let setattr write to cached inode This is a fairly big change, but ultimately it's not a lot of code. Implement write_inode and then avoid the call to orangefs_inode_setattr within orangefs_setattr. Signed-off-by: Martin Brandenburg Signed-off-by: Mike Marshall commit f2d34c738cbf21b0d24982693b71fd9f9f52ea4b Author: Martin Brandenburg Date: Mon Feb 12 20:28:42 2018 +0000 orangefs: set up and use backing_dev_info Signed-off-by: Martin Brandenburg Signed-off-by: Mike Marshall commit 5e4f606e26d6a1df6784f5833ea258047ac93254 Author: Martin Brandenburg Date: Mon Feb 12 17:04:57 2018 +0000 orangefs: hold i_lock during inode_getattr This should be a no-op now. When inode writeback works, this will prevent a getattr from overwriting inode data while an inode is transitioning to dirty. Signed-off-by: Martin Brandenburg Signed-off-by: Mike Marshall commit 5e7f1d433804450cdb5ba478d26742963e06b1bc Author: Martin Brandenburg Date: Mon Feb 12 15:49:24 2018 +0000 orangefs: update attributes rather than relying on server This should be a no-op now, but once inode writeback works, it'll be necessary to have the correct attribute in the dirty inode. Previously the attribute fetch timeout was marked invalid and the server provided the updated attribute. When the inode is dirty, the server cannot be consulted since it does not yet know the pending setattr. Signed-off-by: Martin Brandenburg Signed-off-by: Mike Marshall commit 8b60785c1d7c63415c32bf64dabc686b9045ce7d Author: Martin Brandenburg Date: Wed Feb 7 18:44:50 2018 +0000 orangefs: simplify orangefs_inode_getattr interface No need to store the received mask. It is either STATX_BASIC_STATS or STATX_BASIC_STATS & ~STATX_SIZE. If STATX_SIZE is requested, the cache is bypassed anyway, so the cached mask is unnecessary to decide whether to do a real getattr. This is a change. Previously a getattr would want size and use the cached size. All of the in-kernel callers that wanted size did not want a cached size. Now a getattr cannot use the cached size if it wants size at all. Signed-off-by: Martin Brandenburg Signed-off-by: Mike Marshall commit 66d5477d7002aeee206108b43cde12d12c3c9d5b Author: Martin Brandenburg Date: Wed Aug 1 18:12:34 2018 +0000 orangefs: do not invalidate attributes on inode create When an inode is created, we fetch attributes from the server. There is no need to turn around and invalidate them. No need to initialize attributes after the getattr either. Either it'll be exactly the same, or it'll be something else and wrong. Signed-off-by: Martin Brandenburg Signed-off-by: Mike Marshall commit fc2e2e9c43e3b3f5dec8a02b17ee3d6343d9783a Author: Martin Brandenburg Date: Tue Dec 12 13:46:30 2017 -0500 orangefs: implement xattr cache This uses the same timeout as the getattr cache. This substantially increases performance when writing files with smaller buffer sizes. When writing, the size is (often) changed, which causes a call to notify_change which calls security_inode_need_killpriv which needs a getxattr. Caching it reduces traffic to the server. Signed-off-by: Martin Brandenburg Signed-off-by: Mike Marshall commit 08ae95f4fd3b38b257f5dc7e6507e071c27ba0d5 Author: Nicholas Piggin Date: Thu Apr 11 13:34:48 2019 +1000 nohz_full: Allow the boot CPU to be nohz_full Allow the boot CPU/CPU0 to be nohz_full. Have the boot CPU take the do_timer duty during boot until a housekeeping CPU can take over. This is supported when CONFIG_PM_SLEEP_SMP is not configured, or when it is configured and the arch allows suspend on non-zero CPUs. nohz_full has been trialed at a large supercomputer site and found to significantly reduce jitter. In order to deploy it in production, they need CPU0 to be nohz_full because their job control system requires the application CPUs to start from 0, and the housekeeping CPUs are placed higher. An equivalent job scheduling that uses CPU0 for housekeeping could be achieved by modifying their system, but it is preferable if nohz_full can support their environment without modification. Signed-off-by: Nicholas Piggin Signed-off-by: Peter Zijlstra (Intel) Cc: Frederic Weisbecker Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rafael J . Wysocki Cc: Thomas Gleixner Cc: linuxppc-dev@lists.ozlabs.org Link: https://lkml.kernel.org/r/20190411033448.20842-6-npiggin@gmail.com Signed-off-by: Ingo Molnar commit 9219565aa89033a9cfdae788c1940473a1253d6c Author: Nicholas Piggin Date: Thu Apr 11 13:34:47 2019 +1000 sched/isolation: Require a present CPU in housekeeping mask During housekeeping mask setup, currently a possible CPU is required. That does not guarantee the CPU would be available at boot time, so check to ensure that at least one present CPU is in the mask. Signed-off-by: Nicholas Piggin Signed-off-by: Peter Zijlstra (Intel) Cc: Frederic Weisbecker Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rafael J . Wysocki Cc: Thomas Gleixner Cc: linuxppc-dev@lists.ozlabs.org Link: https://lkml.kernel.org/r/20190411033448.20842-5-npiggin@gmail.com Signed-off-by: Ingo Molnar commit 9ca12ac04bb7d7cfb28aa549dcd3d15761f15543 Author: Nicholas Piggin Date: Thu Apr 11 13:34:46 2019 +1000 kernel/cpu: Allow non-zero CPU to be primary for suspend / kexec freeze This patch provides an arch option, ARCH_SUSPEND_NONZERO_CPU, to opt-in to allowing suspend to occur on one of the housekeeping CPUs rather than hardcoded CPU0. This will allow CPU0 to be a nohz_full CPU with a later change. It may be possible for platforms with hardware/firmware restrictions on suspend/wake effectively support this by handing off the final stage to CPU0 when kernel housekeeping is no longer required. Another option is to make housekeeping / nohz_full mask dynamic at runtime, but the complexity could not be justified at this time. Signed-off-by: Nicholas Piggin Signed-off-by: Peter Zijlstra (Intel) Cc: Frederic Weisbecker Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rafael J . Wysocki Cc: Thomas Gleixner Cc: linuxppc-dev@lists.ozlabs.org Link: https://lkml.kernel.org/r/20190411033448.20842-4-npiggin@gmail.com Signed-off-by: Ingo Molnar commit 2f1a6fbbef7781382850c3104ecb658f21b5d460 Author: Nicholas Piggin Date: Thu Apr 11 13:34:45 2019 +1000 power/suspend: Add function to disable secondaries for suspend This adds a function to disable secondary CPUs for suspend that are not necessarily non-zero / non-boot CPUs. Platforms will be able to use this to suspend using non-zero CPUs. Signed-off-by: Nicholas Piggin Signed-off-by: Peter Zijlstra (Intel) Cc: Frederic Weisbecker Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rafael J . Wysocki Cc: Thomas Gleixner Cc: linuxppc-dev@lists.ozlabs.org Link: https://lkml.kernel.org/r/20190411033448.20842-3-npiggin@gmail.com Signed-off-by: Ingo Molnar commit 1a079560b1450b72ff4e944bb9185e77633d74c4 Author: Stephen Boyd Date: Tue Apr 30 10:22:30 2019 -0700 clk: Cache core in clk_fetch_parent_index() without names If a clk has specified parents via clk_hw pointers it won't specify the globally unique names for the parents. Without the unique names, we can't fallback to comparing them against the name of the 'parent' pointer here. Therefore, do a pointer comparison against the clk_hw pointers too and cache the clk_core structure if they match. This fixes parent lookup code for clks that only specify clk_hw pointers and nothing else, like muxes that are purely inside a clk controller. Similarly, if the parent pointer isn't cached after trying to match clk_core or clk_hw pointers, lookup the pointer from DT or via clkdev lookups instead of relying purely on the globally unique clk name match. This should allow us to move away from having to specify global names for clk parents entirely. While we're in the area, add some comments so it's clearer what's going on. The if statements don't lend themselves to much clarity in their raw form. Fixes: fc0c209c147f ("clk: Allow parents to be specified without string names") Reported-by: Charles Keepax Signed-off-by: Stephen Boyd commit a5a627c676590aaf381f38279ffdfacc963f18f4 Author: Anson Huang Date: Fri Apr 26 06:53:14 2019 +0000 clk: imx: correct pfdv2 gate_bit/vld_bit operations The operations of pfdv2 gate_bit/valid_bit are incorrect, they are defined as u8 for bit offset, but gate_bit is actually assigned as mask which could be 32 bit long and it causes overflow, and vld_bit is assigned as bit offset based on incorrect gate_bit value, it causes incorrect pfd clock gate status in clock tree, this patch fixes the issue by assigning them as correct bit offset. Fixes: 9fcb6be3b6c9 ("clk: imx: add pfdv2 support") Signed-off-by: Anson Huang Signed-off-by: Stephen Boyd commit 8fca955057b9c58467d1b231e43f19c4cf26ae8c Author: Josef Bacik Date: Fri May 3 11:10:06 2019 -0400 btrfs: don't double unlock on error in btrfs_punch_hole If we have an error writing out a delalloc range in btrfs_punch_hole_lock_range we'll unlock the inode and then goto out_only_mutex, where we will again unlock the inode. This is bad, don't do this. Fixes: f27451f22996 ("Btrfs: add support for fallocate's zero range operation") CC: stable@vger.kernel.org # 4.19+ Reviewed-by: Filipe Manana Signed-off-by: Josef Bacik Reviewed-by: David Sterba Signed-off-by: David Sterba commit 2b90883c561ddcc641741c2e4df1f702a4f2acb8 Author: Johnny Chang Date: Fri Apr 26 11:01:05 2019 +0800 btrfs: Check the compression level before getting a workspace When a file's compression property is set as zlib or zstd but leave the compression mount option not be set, that means btrfs will try to compress the file with default compression level. But in btrfs_compress_pages(), it calls get_workspace() with level = 0. This will return a workspace with a wrong compression level. For zlib, the compression level in the workspace will be 0 (that means "store only"). And for zstd, the compression in the workspace will be 1, not the default level 3. How to reproduce: mkfs -t btrfs /dev/sdb mount /dev/sdb /mnt/ mkdir /mnt/zlib btrfs property set /mnt/zlib/ compression zlib dd if=/dev/zero of=/mnt/zlib/compression-friendly-file-10M bs=1M count=10 sync btrfs-debugfs -f /mnt/zlib/compression-friendly-file-10M btrfs-debugfs output: * before: ... (258 9961472): ram 524288 disk 1106247680 disk_size 524288 file: ... extents 20 disk size 10485760 logical size 10485760 ratio 1.00 * after: ... (258 10354688): ram 131072 disk 14217216 disk_size 4096 file: ... extents 80 disk size 327680 logical size 10485760 ratio 32.00 The steps for zstd are similar, but need to put a debugging message to show the level of the return workspace in zstd_get_workspace(). This commit adds a check of the compression level before getting a workspace by set_level(). CC: stable@vger.kernel.org # 5.1+ Signed-off-by: Johnny Chang Reviewed-by: David Sterba Signed-off-by: David Sterba commit 30b8e27e3b581a173779e52096237ed19172eaf4 Author: Paul Walmsley Date: Tue Apr 30 13:51:00 2019 -0700 clk: sifive: add a driver for the SiFive FU540 PRCI IP block Add driver code for the SiFive FU540 PRCI IP block. This IP block handles reset and clock control for the SiFive FU540 device and implements SoC-level clock tree controls and dividers. Based on code written by Wesley Terpstra : https://github.com/riscv/riscv-linux/commit/999529edf517ed75b56659d456d221b2ee56bb60 Boot and PLL rate change were tested on a SiFive HiFive Unleashed board. This version includes several changes requested by Stephen Boyd . Signed-off-by: Paul Walmsley Signed-off-by: Paul Walmsley Cc: Michael Turquette Cc: Stephen Boyd Cc: Albert Ou Cc: Wesley W. Terpstra Cc: Palmer Dabbelt Cc: Megan Wachs Cc: linux-riscv@lists.infradead.org Cc: linux-kernel@vger.kernel.org Cc: linux-clk@vger.kernel.org [sboyd@kernel.org: Fix some const and ARRAY_SIZE() issues, make makefile only descend if CLK_SIFIVE=y] Signed-off-by: Stephen Boyd commit 7b9487a9a5c41ce0ff4f6ca74652e99541bd51c3 Author: Paul Walmsley Date: Tue Apr 30 13:50:58 2019 -0700 clk: analogbits: add Wide-Range PLL library Add common library code for the Analog Bits Wide-Range PLL (WRPLL) IP block, as implemented in TSMC CLN28HPC. There is no bus interface or register target associated with this PLL. This library is intended to be used by drivers for IP blocks that expose registers connected to the PLL configuration and status signals. Based on code originally written by Wesley Terpstra : https://github.com/riscv/riscv-linux/commit/999529edf517ed75b56659d456d221b2ee56bb60 This version incorporates several changes requested by Stephen Boyd . Signed-off-by: Paul Walmsley Signed-off-by: Paul Walmsley Cc: Wesley Terpstra Cc: Palmer Dabbelt Cc: Michael Turquette Cc: Stephen Boyd Cc: Megan Wachs Cc: linux-clk@vger.kernel.org Cc: linux-kernel@vger.kernel.org [sboyd@kernel.org: Fix some const issues] Signed-off-by: Stephen Boyd commit aad14ad3cf3a63bd258b65e18d49c3eb8472d344 Author: Alexander Shishkin Date: Fri May 3 11:44:51 2019 +0300 intel_th: msu: Add current window tracking Now that we have a way to switch between MSC buffer windows, add code to track the current window. The hardware register NWSA that contains the address of the next window is unfortunately not always usable, and since the driver has full control of the window switching, there is no reason not to keep this on the software side. Signed-off-by: Alexander Shishkin Signed-off-by: Greg Kroah-Hartman commit 6cac7866c27418cd784fbb8041c2dddd6d966bc7 Author: Alexander Shishkin Date: Fri May 3 11:44:50 2019 +0300 intel_th: msu: Add a sysfs attribute to trigger window switch Now that we have the means to trigger a window switch for the MSU trace store, add a sysfs file to allow triggering it from userspace. Signed-off-by: Alexander Shishkin Signed-off-by: Greg Kroah-Hartman commit 4840572d3d7e66d7b55d3fc3b0f52711fd172eb8 Author: Alexander Shishkin Date: Fri May 3 11:44:49 2019 +0300 intel_th: msu: Correct the block wrap detection In multi window mode the MSU will set "window wrap" bit to indicate block wrapping as well. Take this into account when checking data blocks. Signed-off-by: Alexander Shishkin Signed-off-by: Greg Kroah-Hartman commit 8116db57cf1618cb21dab957952e7bd1395430da Author: Alexander Shishkin Date: Fri May 3 11:44:48 2019 +0300 intel_th: Add switch triggering support Add support for asserting window switch trigger when tracing to MSU output ports. This allows for software controlled switching between windows of the MSU buffer, which can be used for double buffering while exporting the trace data further from the MSU. Signed-off-by: Alexander Shishkin Signed-off-by: Greg Kroah-Hartman commit 9958e02523eea424d4848ef426c5aa7e07e4e207 Author: Alexander Shishkin Date: Fri May 3 11:44:47 2019 +0300 intel_th: gth: Factor out trace start/stop The trace enable/disable functions of the GTH include the code that starts and stops trace flom from the sources. This start/stop functionality will also be used in the window switch trigger sequence. Factor out start/stop code from the larger trace enable/disable code in preparation for the window switch sequence. Signed-off-by: Alexander Shishkin Signed-off-by: Greg Kroah-Hartman commit 8d4155126e32fdceda7e1520e77a7beac2217f4a Author: Alexander Shishkin Date: Fri May 3 11:44:46 2019 +0300 intel_th: msu: Factor out pipeline draining The code that waits for the pipeline empty condition of the MSU is currently called in the path that disables the trace. We will also need this in the window switch trigger sequence. Therefore, factor out this code and make it accessible to the GTH device. Signed-off-by: Alexander Shishkin Signed-off-by: Greg Kroah-Hartman commit ba39bd8306057fb343dfb75d93a76d824b625236 Author: Alexander Shishkin Date: Fri May 3 11:44:44 2019 +0300 intel_th: msu: Switch over to scatterlist Instead of using a home-grown array of pointers to the DMA pages, switch over to scatterlist data types and accessors, which has all the convenient accessors, can be used to batch-map DMA memory and is convenient for passing around between different layers, which will be useful when MSU buffer management has to cross the boundaries of the MSU driver. Signed-off-by: Alexander Shishkin Signed-off-by: Greg Kroah-Hartman commit 0de9e0351d4d4266b3e3f4ecf405c21af61a1f9e Author: Alexander Shishkin Date: Fri May 3 11:44:43 2019 +0300 intel_th: msu: Replace open-coded list_{first,last,next}_entry variants There are a few places in the code where open-coded versions of list entry accessors list_first_entry()/list_last_entry()/list_next_entry() are used. Replace those with the standard macros. Signed-off-by: Alexander Shishkin Signed-off-by: Greg Kroah-Hartman commit 4c5bb6eb4055adcefaeb5da56dfbecf7df3695d7 Author: Alexander Shishkin Date: Fri May 3 11:44:42 2019 +0300 intel_th: Only report useful IRQs to subdevices The only type of IRQ triggering event that is useful to us at the moment is the "last block" interrupt of the MSU. This interrupt can only be enabled via "MINTCTL" register that doesn't exist in earlier version of the Intel TH. Enumerate the presence of MINTCTL via per-device driver data structure and only instantiate the IRQ resource for subdevices if this capability is present. Signed-off-by: Alexander Shishkin Signed-off-by: Greg Kroah-Hartman commit aac8da65174a35749fcf21dbca4c1be314b562b5 Author: Alexander Shishkin Date: Fri May 3 11:44:41 2019 +0300 intel_th: msu: Start handling IRQs We intend to use the interrupt to detect Last Block condition in the MSU driver, which we can use for double-buffering software-managed data transfers. Add an interrupt handler to the MSU driver. Signed-off-by: Alexander Shishkin Signed-off-by: Greg Kroah-Hartman commit 7b7036d47c356a40818e516a69ac81a5dcc1613f Author: Alexander Shishkin Date: Fri May 3 11:44:40 2019 +0300 intel_th: pci: Use MSI interrupt signalling Since Intel TH is capable of MSI interrupt signalling, make use of it. The way it works is, each of the 7 interrupt triggering events has its own vector in this mode, as opposed to interrupt line delivery, where all events are signalled via the same line. Failing to enable MSI, the driver falls back to using an interrupt line. Signed-off-by: Alexander Shishkin Signed-off-by: Greg Kroah-Hartman commit 62a593022c32380d040303a5e3d6b67fd9c415bc Author: Alexander Shishkin Date: Fri May 3 11:44:39 2019 +0300 intel_th: Communicate IRQ via resource Currently, the IRQ is passed between the glue layers and the core as a separate argument, while the MMIO resources are passed as resources. This also limits the number of IRQs thus used to one, while the current versions of Intel TH use a different MSI vector for each interrupt triggering event, of which there are 7. Change this to pass IRQ in the resources array. Signed-off-by: Alexander Shishkin Signed-off-by: Greg Kroah-Hartman commit fc027f4ce7c718660e046c3269b303bdbe692fda Author: Alexander Shishkin Date: Fri May 3 11:44:38 2019 +0300 intel_th: Add "rtit" source device In some versions of Intel TH, the Software Trace Hub (STH) has a second MMIO BAR dedicated to the input from Intel PT. This calls for a new subdevice that will be enumerated if the corresponding BAR is present. Signed-off-by: Alexander Shishkin Signed-off-by: Greg Kroah-Hartman commit 23f667494b4d65d230cf61ad0d0b96c72f3a163c Author: Alexander Shishkin Date: Fri May 3 11:44:37 2019 +0300 intel_th: Skip subdevices if their MMIO is missing If a subdevice requires an MMIO region that wasn't in the resources passed down from the glue layer, don't instantiate it, but don't error out. This means that that particular subdevice doesn't exist for this instance of Intel TH, which is a perfectly normal situation. This applies, for example, to the "rtit" source device. Signed-off-by: Alexander Shishkin Signed-off-by: Greg Kroah-Hartman commit db73a059de00eed721f13051c0d6ff3e7de90fe8 Author: Alexander Shishkin Date: Fri May 3 11:44:36 2019 +0300 intel_th: Rework resource passing between glue layers and core Currently, MMIO resource numbers in the TH driver core correspond to PCI BAR numbers, because in the beginning there was only the PCI glue layer. This created some confusion when the ACPI glue layer was added. To avoid confusion and remove glue-specific code from the driver core, split the resource indices between core and glue layers and change the API so that the driver core receives the MMIO resources in the same fixed order. At the same time, make the IRQ always be a parameter to intel_th_alloc() instead of sometimes passing it as a resource. Signed-off-by: Alexander Shishkin Signed-off-by: Greg Kroah-Hartman commit 85d49eb130ad747abebb9b0ff151f8afa7733115 Author: Alexander Shishkin Date: Fri May 3 11:44:35 2019 +0300 intel_th: SPDX-ify the documentation Add the SPDX header to the Intel TH documentation. Signed-off-by: Alexander Shishkin Tested-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman commit 4e0eaf239fb33ebc671303e2b736fa043462e2f4 Author: Alexander Shishkin Date: Fri May 3 11:44:34 2019 +0300 intel_th: msu: Fix single mode with IOMMU Currently, the pages that are allocated for the single mode of MSC are not mapped into the device's dma space and the code is incorrectly using *_to_phys() in place of a dma address. This fails with IOMMU enabled and is otherwise bad practice. Fix the single mode buffer allocation to map the pages into the device's DMA space. Signed-off-by: Alexander Shishkin Fixes: ba82664c134e ("intel_th: Add Memory Storage Unit driver") Cc: stable@vger.kernel.org # v4.4+ Signed-off-by: Greg Kroah-Hartman commit 9a552e271e0ddf0911773cf34b28d11ebb96b1da Merge: 161027367ed6 7cc10c5cb143 Author: Greg Kroah-Hartman Date: Fri May 3 18:09:38 2019 +0200 Merge tag 'gnss-5.2-rc1' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/gnss into char-misc-next Johan writes: GNSS updates for 5.2-rc1 Here are the GNSS updates for 5.2-rc1; only a new u-blox compatible. All have been in linux-next with no reported issues. Signed-off-by: Johan Hovold * tag 'gnss-5.2-rc1' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/gnss: gnss: ubx: add u-blox,neo-6m compatible dt-bindings: gnss: add u-blox,neo-6m compatible commit 3515468a87a47781f6af818773650513ff14656a Merge: 12456e509be2 2e487d280525 Author: Greg Kroah-Hartman Date: Fri May 3 18:05:27 2019 +0200 Merge tag 'usb-for-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb into usb-next Felipe writes: USB: changes for v5.2 merge window With a total of 50 non-merge commits, this is not a large pull request. Most of the changes are, again, in dwc2 (37%) and dwc3 (32%) with the rest of it scattered among other UDCs, function drivers and device-tree bindings. No really big feature this time around apart from support to Amlogic being added to both dwc3 and dwc2 drivers. * tag 'usb-for-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/balbi/usb: (50 commits) usb: dwc3: Rename DWC3_DCTL_LPM_ERRATA usb: dwc3: Fix default lpm_nyet_threshold value usb: dwc3: debug: Print GET_STATUS(device) tracepoint usb: dwc3: Do core validation early on probe usb: dwc3: gadget: Set lpm_capable usb: gadget: atmel: tie wake lock to running clock usb: gadget: atmel: support USB suspend usb: gadget: atmel_usba_udc: simplify setting of interrupt-enabled mask dwc2: gadget: Fix completed transfer size calculation in DDMA usb: dwc2: Set lpm mode parameters depend on HW configuration usb: dwc2: Fix channel disable flow usb: dwc2: Set actual frame number for completed ISOC transfer usb: gadget: do not use __constant_cpu_to_le16 usb: dwc2: gadget: Increase descriptors count for ISOC's usb: introduce usb_ep_type_string() function usb: dwc3: move synchronize_irq() out of the spinlock protected block usb: dwc3: Free resource immediately after use usb: dwc3: of-simple: Convert to bulk clk API usb: dwc2: Delayed status support usb: gadget: udc: lpc32xx: rework interrupt handling ... commit 12456e509be25d24fe479394852428517922d02a Merge: 6f6a407a591e 37624b58542f Author: Greg Kroah-Hartman Date: Fri May 3 18:03:47 2019 +0200 Merge 5.1-rc7 into usb-next We need this to make the usb-gadget branch merge cleaner. And for testing to keep from hitting the same issues already fixed. Signed-off-by: Greg Kroah-Hartman commit 53dd5c709b335545eec76e3a401ad82764d42b6a Author: Gustavo A. R. Silva Date: Tue Apr 30 09:32:06 2019 -0500 clk: imx: clk-pllv3: mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warnings: drivers/clk/imx/clk-pllv3.c: In function ‘imx_clk_pllv3’: drivers/clk/imx/clk-pllv3.c:446:18: warning: this statement may fall through [-Wimplicit-fallthrough=] pll->div_shift = 1; ~~~~~~~~~~~~~~~^~~ drivers/clk/imx/clk-pllv3.c:447:2: note: here case IMX_PLLV3_USB: ^~~~ drivers/clk/imx/clk-pllv3.c:453:21: warning: this statement may fall through [-Wimplicit-fallthrough=] pll->denom_offset = PLL_IMX7_DENOM_OFFSET; ^ drivers/clk/imx/clk-pllv3.c:454:2: note: here case IMX_PLLV3_AV: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Fixes: b4a4cb5a0454 ("clk: imx: correct i.MX7D AV PLL num/denom offset") Signed-off-by: Gustavo A. R. Silva Reviewed-by: Anson Huang Signed-off-by: Stephen Boyd commit 6f6a407a591ebe3e4c6bd2329b29862b3980a3ca Merge: 6e7adf3ea613 7f6fc50242d1 Author: Greg Kroah-Hartman Date: Fri May 3 18:00:15 2019 +0200 Merge tag 'usb-serial-5.2-rc1' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial into usb-next Johan writes: USB-serial updates for 5.2-rc1 Here are the USB-serial updates for 5.2-rc1, including: - flow-control related fixes for pl2303 - fix for an initial-termios issue - fix for a couple of unthrottle() races - fix for f81232 interrupt-handling issues - improved f81232 overrun handling - support for higher f81232 line speeds - support for f81232 break control Included are also various clean ups. All but the last four commits have been in linux-next and with no reported issues. Signed-off-by: Johan Hovold * tag 'usb-serial-5.2-rc1' of https://git.kernel.org/pub/scm/linux/kernel/git/johan/usb-serial: (22 commits) USB: serial: f81232: implement break control USB: serial: f81232: add high baud rate support USB: serial: f81232: clear overrun flag USB: serial: f81232: fix interrupt worker not stop USB: serial: io_edgeport: fix up switch fall-through comments USB: serial: drop unused iflag macro USB: serial: drop unnecessary goto USB: serial: clean up throttle handling USB: serial: fix unthrottle races USB: serial: spcp8x5: simplify init_termios USB: serial: oti6858: simplify init_termios USB: serial: iuu_phoenix: simplify init_termios USB: serial: iuu_phoenix: drop bogus initial cflag USB: serial: cypress_m8: clean up initial-termios handling USB: serial: cypress_m8: drop unused termios USB: serial: cypress_m8: drop unused driver data flag USB: serial: ark3116: drop redundant init_termios USB: serial: fix initial-termios handling USB: serial: digi_acceleport: clean up set_termios USB: serial: digi_acceleport: clean up modem-control handling ... commit dca4d60f5f8c9263f8f66724fa4750abd32d8db0 Author: Eric Auger Date: Tue Apr 30 09:30:04 2019 +0200 iommu/vt-d: Fix leak in intel_pasid_alloc_table on error path If alloc_pages_node() fails, pasid_table is leaked. Free it. Fixes: cc580e41260db ("iommu/vt-d: Per PCI device pasid table interfaces") Signed-off-by: Eric Auger Signed-off-by: Joerg Roedel commit 5daab58043ee2bca861068e2595564828f3bc663 Author: Lu Baolu Date: Thu May 2 09:34:26 2019 +0800 iommu/vt-d: Make kernel parameter igfx_off work with vIOMMU The kernel parameter igfx_off is used by users to disable DMA remapping for the Intel integrated graphic device. It was designed for bare metal cases where a dedicated IOMMU is used for graphic. This doesn't apply to virtual IOMMU case where an include-all IOMMU is used. This makes the kernel parameter work with virtual IOMMU as well. Cc: Ashok Raj Cc: Jacob Pan Suggested-by: Kevin Tian Fixes: c0771df8d5297 ("intel-iommu: Export a flag indicating that the IOMMU is used for iGFX.") Signed-off-by: Lu Baolu Tested-by: Zhenyu Wang Signed-off-by: Joerg Roedel commit cf1ec4539a50bdfe688caad4615ca47646884316 Author: Lu Baolu Date: Thu May 2 09:34:25 2019 +0800 iommu/vt-d: Set intel_iommu_gfx_mapped correctly The intel_iommu_gfx_mapped flag is exported by the Intel IOMMU driver to indicate whether an IOMMU is used for the graphic device. In a virtualized IOMMU environment (e.g. QEMU), an include-all IOMMU is used for graphic device. This flag is found to be clear even the IOMMU is used. Cc: Ashok Raj Cc: Jacob Pan Cc: Kevin Tian Reported-by: Zhenyu Wang Fixes: c0771df8d5297 ("intel-iommu: Export a flag indicating that the IOMMU is used for iGFX.") Suggested-by: Kevin Tian Signed-off-by: Lu Baolu Signed-off-by: Joerg Roedel commit 1a1079011da32db87e19fcb39e70d082f89da921 Author: Tom Murphy Date: Mon Apr 29 00:47:02 2019 +0100 iommu/amd: Flush not present cache in iommu_map_page check if there is a not-present cache present and flush it if there is. Signed-off-by: Tom Murphy Signed-off-by: Joerg Roedel commit 095303e0eb566e408435ef1cfa25aef2af2e403e Author: Lu Baolu Date: Mon Apr 29 09:16:02 2019 +0800 iommu/vt-d: Cleanup: no spaces at the start of a line Replace the whitespaces at the start of a line with tabs. No functional changes. Signed-off-by: Lu Baolu Signed-off-by: Joerg Roedel commit ce968f6012f632bbe071839d229db77c45fc38d1 Author: Nick Desaulniers Date: Tue Apr 23 14:00:56 2019 -0700 s390/vdso: drop unnecessary cc-ldoption Towards the goal of removing cc-ldoption, it seems that --hash-style= was added to binutils 2.17.50.0.2 in 2006. The minimal required version of binutils for the kernel according to Documentation/process/changes.rst is 2.20. Link: https://gcc.gnu.org/ml/gcc/2007-01/msg01141.html Cc: clang-built-linux@googlegroups.com Suggested-by: Masahiro Yamada Signed-off-by: Nick Desaulniers Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit 4ae987894c06056e29264e5a1051e459a4454a61 Author: Arnd Bergmann Date: Mon Apr 15 10:35:54 2019 +0200 s390: fix clang -Wpointer-sign warnigns in boot code The arch/s390/boot directory is built with its own set of compiler options that does not include -Wno-pointer-sign like the rest of the kernel does, this causes a lot of harmless but correct warnings when building with clang. For the atomics, we can add type casts to avoid the warnings, for everything else the easiest way is to slightly adapt the types to be more consistent. Signed-off-by: Arnd Bergmann Reviewed-by: Nick Desaulniers Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit 964d06b4ed212d85ff589a9438baeb6c4fff3272 Author: Arnd Bergmann Date: Mon Apr 15 10:35:53 2019 +0200 s390: drop CONFIG_VIRT_TO_BUS VIRT_TO_BUS is only used for legacy device PCI and ISA drivers using virt_to_bus() instead of the streaming DMA mapping API, and the remaining drivers generally don't work on 64-bit architectures. Two of these drivers also cause a build warning on s390, so instead of trying to fix that, let's just disable the option as we do on most architectures now. Signed-off-by: Arnd Bergmann Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit 96fb54a180894dc3c6821aa3297a3eb8b27f03c5 Author: Arnd Bergmann Date: Mon Apr 15 10:35:52 2019 +0200 s390: boot, purgatory: pass $(CLANG_FLAGS) where needed The purgatory and boot Makefiles do not inherit the original cflags, so clang falls back to the default target architecture when building it, typically this would be x86 when cross-compiling. Add $(CLANG_FLAGS) everywhere so we pass the correct --target=s390x-linux option when cross-compiling. Signed-off-by: Arnd Bergmann Reviewed-by: Nathan Chancellor Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit c263a4e990b7296b074e33aa077239a0a28a818e Author: Arnd Bergmann Date: Mon Apr 15 10:35:51 2019 +0200 s390: only build for new CPUs with clang llvm does does not understand -march=z9-109 and older target specifiers, so disable the respective Kconfig settings and the logic to make the boot code work on old systems when building with clang. Part of the early boot code is normally compiled with -march=z900 for maximum compatibility. This also has to get changed with clang to the oldest supported ISA, which is -march=z10 here. Signed-off-by: Arnd Bergmann Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit 1c73b9d24f804935dbb06527b768f8f068c93472 Author: Scott Mayhew Date: Thu May 2 13:32:12 2019 -0400 nfsd: update callback done processing Instead of having the convention where individual nfsd4_callback_ops->done operations return -1 to indicate the callback path is down, move the check to nfsd4_cb_done. Only mark the callback path down on transport-level errors, not NFS-level errors. The existing logic causes the server to set SEQ4_STATUS_CB_PATH_DOWN just because the client returned an error to a CB_RECALL for a delegation that the client had already done a FREE_STATEID for. But clearly that error doesn't mean that there's anything wrong with the backchannel. Additionally, handle NFS4ERR_DELAY in nfsd4_cb_recall_done. The client returns NFS4ERR_DELAY if it is already in the process of returning the delegation. Signed-off-by: Scott Mayhew Signed-off-by: J. Bruce Fields commit e6ae3ca27477226eae77cc00d5fad89d7ce64aea Author: Chris Brandt Date: Tue Apr 30 08:23:05 2019 -0500 dt-bindings: i2c: riic: document r7s9210 support Document support for the R7S9210 (RZ/A2) SoC. Also explicitly document bindings for the R7S72100 (RZ/A1) SoC. Signed-off-by: Chris Brandt Reviewed-by: Geert Uytterhoeven Reviewed-by: Rob Herring Signed-off-by: Wolfram Sang commit c395f8dc1a0904e948854019094964882a5e60f8 Author: Anson Huang Date: Tue Apr 30 07:00:02 2019 +0000 i2c: imx-lpi2c: Use __maybe_unused instead of #if CONFIG_PM_SLEEP Use __maybe_unused for power management related functions instead of #if CONFIG_PM_SLEEP to simply the code. Signed-off-by: Anson Huang Acked-by: Dong Aisheng Signed-off-by: Wolfram Sang commit 8ef988b914bd449458eb2174febb67b0f137b33c Merge: 8b9527478445 013fe01d45ed Author: David S. Miller Date: Fri May 3 10:49:18 2019 -0400 Merge branch 'NXP-SJA1105-DSA-driver' Vladimir Oltean says: ==================== NXP SJA1105 DSA driver This patchset adds a DSA driver for the SPI-controlled NXP SJA1105 switch. Due to the hardware's unfriendliness, most of its state needs to be shadowed in kernel memory by the driver. To support this and keep a decent amount of cleanliness in the code, a new generic API for converting between CPU-accessible ("unpacked") structures and hardware-accessible ("packed") structures is proposed and used. The driver is GPL-2.0 licensed. The source code files which are licensed as BSD-3-Clause are hardware support files and derivative of the userspace NXP sja1105-tool program, which is BSD-3-Clause licensed. TODO items: * Add support for traffic. * Add full support for the P/Q/R/S series. The patches were mostly tested on a first-generation T device. * Add timestamping support and PTP clock manipulation. * Figure out how the tc-taprio hardware offload that was just proposed by Vinicius can be used to configure the switch's time-aware scheduler. * Rework link state callbacks to use phylink once the SGMII port is supported. Changes in v5: 1. Removed trailing empty lines at the end of files. 2. Moved the lib/packing.c file under a CONFIG_PACKING option instead of having it always built-in. The module is GPL licensed, which applies to its distribution in binary form, but the code is dual-licensed which means it can be used in projects with other licenses as well. 3. Made SJA1105 driver select CONFIG_PACKING and CONFIG_CRC32. v4 patchset can be found at: https://lwn.net/Articles/787077/ Changes in v4: 1. Previous patchset was broken apart, and for the moment the driver is configuring the switch as unmanaged. Support for regular and management traffic, as well as for PTP timestamping, will be submitted once the basic driver is accepted. Some core DSA patches were also broken out of the series, and are a dependency for this series: https://patchwork.ozlabs.org/project/netdev/list/?series=105069 2. Addressed Jiri Pirko's feedback about too generic function and macro naming. 3. Re-introduced ETH_P_DSA_8021Q. v3 patchset can be found at: https://lkml.org/lkml/2019/4/12/978 Changes in v3: 1. Removed the patch for a dedicated Ethertype to use with 802.1Q DSA tagging 2. Changed the SJA1105 switch tagging protocol sysfs label from "sja1105" to "8021q" to denote to users such as tcpdump that the structure is more generic. 3. Respun previous patch "net: dsa: Allow drivers to modulate between presence and absence of tagging". Current equivalent patch is called "net: dsa: Allow drivers to filter packets they can decode source port from" and at least allows reception of management traffic during the time when switch tagging is not enabled. 4. Added DSA-level fixes for the bridge core not unsetting vlan_filtering when ports leave. The global VLAN filtering is treated as a special case. Made the mt7530 driver use this. This patch benefits the SJA1105 because otherwise traffic in standalone mode would no longer work after removing the ports from a vlan_filtering bridge, since the driver and the hardware would be in an inconsistent state. 5. Restructured the documentation as rst. This depends upon the recently submitted "[PATCH net-next] Documentation: net: dsa: transition to the rst format": https://patchwork.ozlabs.org/patch/1084658/. v2 patchset can be found at: https://www.spinics.net/lists/netdev/msg563454.html Changes in v2: 1. Device ID is no longer auto-detected but enforced based on explicit DT compatible string. This helps with stricter checking of DT bindings. 2. Group all device-specific operations into a sja1105_info structure and avoid using the IS_ET() and IS_PQRS() macros at runtime as much as possible. 3. Added more verbiage to commit messages and documentation. 4. Treat the case where RGMII internal delays are requested through DT bindings and return error. 5. Miscellaneous cosmetic cleanup in sja1105_clocking.c 6. Not advertising link features that are not supported, such as pause frames and the half duplex modes. 7. Fixed a mistake in previous patchset where the switch tagging was not actually enabled (lost during a rebase). This brought up another uncaught issue where switching at runtime between tagging and no-tagging was not supported by DSA. Fixed up the mistake in "net: dsa: sja1105: Add support for traffic through standalone ports", and added the new patch "net: dsa: Allow drivers to modulate between presence and absence of tagging" to address the other issue. 8. Added a workaround for switch resets cutting a frame in the middle of transmission, which would throw off some link partners. 9. Changed the TPID from ETH_P_EDSA (0xDADA) to a newly introduced one: ETH_P_DSA_8021Q (0xDADB). Uncovered another mistake in the previous patchset with a missing ntohs(), which was not caught because 0xDADA is endian-agnostic. 10. Made NET_DSA_TAG_8021Q select VLAN_8021Q 11. Renamed __dsa_port_vlan_add to dsa_port_vid_add and not to dsa_port_vlan_add_trans, as suggested, because the corresponding _del function does not have a transactional phase and the naming is more uniform this way. v1 patchset can be found at: https://www.spinics.net/lists/netdev/msg561589.html Changes from RFC: 1. Removed the packing code for the static configuration tables that were not currently used 2. Removed the code for unpacking a static configuration structure from a memory buffer (not used) 3. Completely removed the SGMII stubs, since the configuration is not complete anyway. 4. Moved some code from the SJA1105 introduction commit into the patch that used it. 5. Made the code for checking global VLAN filtering generic and made b53 driver use it. 6. Made mt7530 driver use the new generic dp->vlan_filtering 7. Fixed check for stringset in .get_sset_count 8. Minor cleanup in sja1105_clocking.c 9. Fixed a confusing typo in DSA RFC can be found at: https://www.mail-archive.com/netdev@vger.kernel.org/msg291717.html ==================== Signed-off-by: David S. Miller commit 013fe01d45ed095189fd746e45fdf75016fec1f6 Author: Vladimir Oltean Date: Thu May 2 23:23:40 2019 +0300 dt-bindings: net: dsa: Add documentation for NXP SJA1105 driver Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 4759209732d3f4657f65720e624fdd73419f7134 Author: Vladimir Oltean Date: Thu May 2 23:23:39 2019 +0300 Documentation: net: dsa: Add details about NXP SJA1105 driver Signed-off-by: Vladimir Oltean Signed-off-by: David S. Miller commit ad9f299a87775d4417534251352d02c83da57326 Author: Vladimir Oltean Date: Thu May 2 23:23:38 2019 +0300 net: dsa: sja1105: Reject unsupported link modes for AN Ethernet flow control: The switch MAC does not consume, nor does it emit pause frames. It simply forwards them as any other Ethernet frame (and since the DMAC is, per IEEE spec, 01-80-C2-00-00-01, it means they are filtered as link-local traffic and forwarded to the CPU, which can't do anything useful with them). Duplex: There is no duplex setting in the SJA1105 MAC. It is known to forward traffic at line rate on the same port in both directions. Therefore it must be that it only supports full duplex. Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 1a4c69406cc1c3c42bb7391c8eb544e93fe9b320 Author: Vladimir Oltean Date: Thu May 2 23:23:37 2019 +0300 net: dsa: sja1105: Prevent PHY jabbering during switch reset Resetting the switch at runtime is currently done while changing the vlan_filtering setting (due to the required TPID change). But reset is asynchronous with packet egress, and the switch core will not wait for egress to finish before carrying on with the reset operation. As a result, a connected PHY such as the BCM5464 would see an unterminated Ethernet frame and start to jabber (repeat the last seen Ethernet symbols - jabber is by definition an oversized Ethernet frame with bad FCS). This behavior is strange in itself, but it also causes the MACs of some link partners (such as the FRDM-LS1012A) to completely lock up. So as a remedy for this situation, when switch reset is required, simply inhibit Tx on all ports, and wait for the necessary time for the eventual one frame left in the egress queue (not even the Tx inhibit command is instantaneous) to be flushed. Signed-off-by: Vladimir Oltean Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 8456721dd4ec777e6f914f2ae98ba9fe3c6681df Author: Vladimir Oltean Date: Thu May 2 23:23:36 2019 +0300 net: dsa: sja1105: Add support for configuring address ageing time If STP is active, this setting is applied on bridged ports each time an Ethernet link is established (topology changes). Since the setting is global to the switch and a reset is required to change it, resets are prevented if the new callback does not change the value that the hardware already is programmed for. Signed-off-by: Vladimir Oltean Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 52c34e6e125c153097befbfe18b8d2918c68a41d Author: Vladimir Oltean Date: Thu May 2 23:23:35 2019 +0300 net: dsa: sja1105: Add support for ethtool port counters Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 6666cebc5e306f49a25bd20aa8c1cb8ef8950df5 Author: Vladimir Oltean Date: Thu May 2 23:23:34 2019 +0300 net: dsa: sja1105: Add support for VLAN operations VLAN filtering cannot be properly disabled in SJA1105. So in order to emulate the "no VLAN awareness" behavior (not dropping traffic that is tagged with a VID that isn't configured on the port), we need to hack another switch feature: programmable TPID (which is 0x8100 for 802.1Q). We are reprogramming the TPID to a bogus value which leaves the switch thinking that all traffic is untagged, and therefore accepts it. Under a vlan_filtering bridge, the proper TPID of ETH_P_8021Q is installed again, and the switch starts identifying 802.1Q-tagged traffic. Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit bf5bc3ce8a8f32a0d45b6820ede8f9fc3e9c23df Author: Vladimir Oltean Date: Thu May 2 23:23:33 2019 +0300 ether: Add dedicated Ethertype for pseudo-802.1Q DSA tagging There are two possible utilizations so far: - Switch devices that don't support a native insertion/extraction header on the CPU port may still enjoy the benefits of port isolation with a custom VLAN tag. For this, they need to have a customizable TPID in hardware and a new Ethertype to distinguish between real 802.1Q traffic and the private tags used for port separation. - Switches that don't support the deactivation of VLAN awareness, but still want to have a mode in which they accept all traffic, including frames that are tagged with a VLAN not configured on their ports, may use this as a fake to trick the hardware into thinking that the TPID for VLAN is something other than 0x8100. What follows after the ETH_P_DSA_8021Q EtherType is a regular VLAN header (TCI), however there is no other EtherType that can be used for this purpose and doesn't already have a well-defined meaning. ETH_P_8021AD, ETH_P_QINQ1, ETH_P_QINQ2 and ETH_P_QINQ3 expect that another follow-up VLAN tag is present, which is not the case here. Signed-off-by: Vladimir Oltean Suggested-by: Andrew Lunn Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit f5b8631c293b9a88e38a152fa9a67f89e2d9b151 Author: Vladimir Oltean Date: Thu May 2 23:23:32 2019 +0300 net: dsa: sja1105: Error out if RGMII delays are requested in DT Documentation/devicetree/bindings/net/ethernet.txt is confusing because it says what the MAC should not do, but not what it *should* do: * "rgmii-rxid" (RGMII with internal RX delay provided by the PHY, the MAC should not add an RX delay in this case) The gap in semantics is threefold: 1. Is it illegal for the MAC to apply the Rx internal delay by itself, and simplify the phy_mode (mask off "rgmii-rxid" into "rgmii") before passing it to of_phy_connect? The documentation would suggest yes. 1. For "rgmii-rxid", while the situation with the Rx clock skew is more or less clear (needs to be added by the PHY), what should the MAC driver do about the Tx delays? Is it an implicit wild card for the MAC to apply delays in the Tx direction if it can? What if those were already added as serpentine PCB traces, how could that be made more obvious through DT bindings so that the MAC doesn't attempt to add them twice and again potentially break the link? 3. If the interface is a fixed-link and therefore the PHY object is fixed (a purely software entity that obviously cannot add clock skew), what is the meaning of the above property? So an interpretation of the RGMII bindings was chosen that hopefully does not contradict their intention but also makes them more applied. The SJA1105 driver understands to act upon "rgmii-*id" phy-mode bindings if the port is in the PHY role (either explicitly, or if it is a fixed-link). Otherwise it always passes the duty of setting up delays to the PHY driver. The error behavior that this patch adds is required on SJA1105E/T where the MAC really cannot apply internal delays. If the other end of the fixed-link cannot apply RGMII delays either (this would be specified through its own DT bindings), then the situation requires PCB delays. For SJA1105P/Q/R/S, this is however hardware supported and the error is thus only temporary. I created a stub function pointer for configuring delays per-port on RXC and TXC, and will implement it when I have access to a board with this hardware setup. Meanwhile do not allow the user to select an invalid configuration. Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 291d1e72b756424eac7b1ea2be326a59f004a580 Author: Vladimir Oltean Date: Thu May 2 23:23:31 2019 +0300 net: dsa: sja1105: Add support for FDB and MDB management Currently only the (more difficult) first generation E/T series is supported. Here the TCAM is only 4-way associative, and to know where the hardware will search for a FDB entry, we need to perform the same hash algorithm in order to install the entry in the correct bin. On P/Q/R/S, the TCAM should be fully associative. However the SPI command interface is different, and because I don't have access to a new-generation device at the moment, support for it is TODO. Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 8aa9ebccae87621d997707e4f25e53fddd7e30e4 Author: Vladimir Oltean Date: Thu May 2 23:23:30 2019 +0300 net: dsa: Introduce driver for NXP SJA1105 5-port L2 switch At this moment the following is supported: * Link state management through phylib * Autonomous L2 forwarding managed through iproute2 bridge commands. IP termination must be done currently through the master netdevice, since the switch is unmanaged at this point and using DSA_TAG_PROTO_NONE. Signed-off-by: Vladimir Oltean Signed-off-by: Georg Waibel Acked-by: Florian Fainelli Signed-off-by: David S. Miller commit 554aae35007e49f533d3d10e788295f7141725bc Author: Vladimir Oltean Date: Thu May 2 23:23:29 2019 +0300 lib: Add support for generic packing operations This provides an unified API for accessing register bit fields regardless of memory layout. The basic unit of data for these API functions is the u64. The process of transforming an u64 from native CPU encoding into the peripheral's encoding is called 'pack', and transforming it from peripheral to native CPU encoding is 'unpack'. Signed-off-by: Vladimir Oltean Signed-off-by: David S. Miller commit 24beb83ad289c68bce7c01351cb90465bbb1940a Author: Pu Wen Date: Tue Apr 30 00:08:43 2019 +0800 i2c-piix4: Add Hygon Dhyana SMBus support The Hygon Dhyana CPU has the SMBus device with PCI device ID 0x790b, which is the same as AMD CZ SMBus device. So add Hygon Dhyana support to the i2c-piix4 driver by using the code path of AMD. Signed-off-by: Pu Wen Reviewed-by: Jean Delvare Signed-off-by: Wolfram Sang commit 5d756112da49af8798620fc788ff4c730c7d5574 Author: Wolfram Sang Date: Thu Apr 25 16:19:48 2019 +0200 i2c: core: apply 'is_suspended' check for SMBus, too We checked I2C calls, but not SMBus. Refactor the helper to an inline function and use it for both, I2C and SMBus. Fixes: 9ac6cb5fbb17 ("i2c: add suspended flag and accessors for i2c adapters") Reported-by: Peter Rosin Signed-off-by: Wolfram Sang Reviewed-by: Simon Horman Signed-off-by: Wolfram Sang commit 16e32c3cde7763ab875b9030b443ecbc8e352d8a Author: Julien Grall Date: Wed May 1 14:58:24 2019 +0100 iommu/dma-iommu: Remove iommu_dma_map_msi_msg() A recent change split iommu_dma_map_msi_msg() in two new functions. The function was still implemented to avoid modifying all the callers at once. Now that all the callers have been reworked, iommu_dma_map_msi_msg() can be removed. Signed-off-by: Julien Grall Reviewed-by: Robin Murphy Reviewed-by: Eric Auger Acked-by: Joerg Roedel Signed-off-by: Marc Zyngier commit 73103975425786ebdb6c4d2868ecf26f391fb77e Author: Julien Grall Date: Wed May 1 14:58:23 2019 +0100 irqchip/gic-v3-mbi: Don't map the MSI page in mbi_compose_m{b, s}i_msg() The functions mbi_compose_m{b, s}i_msg may be called from non-preemptible context. However, on RT, iommu_dma_map_msi_msg() requires to be called from a preemptible context. A recent patch split iommu_dma_map_msi_msg in two new functions: one that should be called in preemptible context, the other does not have any requirement. The GICv3 MSI driver is reworked to avoid executing preemptible code in non-preemptible context. This can be achieved by preparing the MSI mapping when allocating the MSI interrupt. Signed-off-by: Julien Grall [maz: only call iommu_dma_prepare_msi once, fix commit log accordingly] Signed-off-by: Marc Zyngier commit 8b952747844526cef50fa2e0ae903f586e3cb2e4 Author: Nicolas Ferre Date: Fri May 3 12:36:58 2019 +0200 net: macb: shrink macb_platform_data structure This structure was used intensively for machine specific values when DT was not used. Since the removal of AVR32 from the kernel, this structure is only used for passing clocks from PCI macb wrapper, all other fields being 0. All other known platforms use DT. Remove the leftovers but make sure that PCI macb still works as expected by using default values: - phydev->irq is set to PHY_POLL by mdiobus_alloc() - mii_bus->phy_mask is cleared while allocating it - bp->phy_interface is set to PHY_INTERFACE_MODE_MII if mode not found in DT. This simplifies driver probe path and particularly phy handling. Signed-off-by: Nicolas Ferre Signed-off-by: David S. Miller commit d5aeb17621d2214c09c2d2679da4ce9cfb37f506 Author: Nicolas Ferre Date: Fri May 3 12:36:28 2019 +0200 net: macb: remove redundant struct phy_device declaration While moving the chunk of code during 739de9a1563a ("net: macb: Reorganize macb_mii bringup"), the declaration of struct phy_device declaration was kept. It's not useful in this function as we alrady have a phydev pointer. Signed-off-by: Nicolas Ferre Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 78ff2afc26251741bcdf5668990bb6278e68adcd Author: Ross Zwisler Date: Thu May 2 11:27:00 2019 -0600 MAINTAINERS: update git tree for sound entries Several sound related entries in MAINTAINERS refer to the old git tree at "git://git.alsa-project.org/alsa-kernel.git". This is no longer used for development, and Takashi Iwai's kernel.org tree is used instead. Signed-off-by: Ross Zwisler Reviewed-by: Takashi Sakamoto Signed-off-by: Takashi Iwai commit 2cb3b16545495ee31dc9438f88232c2cfe44a41f Author: Julien Grall Date: Wed May 1 14:58:22 2019 +0100 irqchip/ls-scfg-msi: Don't map the MSI page in ls_scfg_msi_compose_msg() ls_scfg_msi_compose_msg() may be called from non-preemptible context. However, on RT, iommu_dma_map_msi_msg() requires to be called from a preemptible context. A recent patch split iommu_dma_map_msi_msg() in two new functions: one that should be called in preemptible context, the other does not have any requirement. The FreeScale SCFG MSI driver is reworked to avoid executing preemptible code in non-preemptible context. This can be achieved by preparing the MSI maping when allocating the MSI interrupt. Signed-off-by: Julien Grall Signed-off-by: Marc Zyngier commit 35ae7df21be098848722f96f0f33bf33467436a8 Author: Julien Grall Date: Wed May 1 14:58:21 2019 +0100 irqchip/gic-v3-its: Don't map the MSI page in its_irq_compose_msi_msg() its_irq_compose_msi_msg() may be called from non-preemptible context. However, on RT, iommu_dma_map_msi_msg requires to be called from a preemptible context. A recent change split iommu_dma_map_msi_msg() in two new functions: one that should be called in preemptible context, the other does not have any requirement. The GICv3 ITS driver is reworked to avoid executing preemptible code in non-preemptible context. This can be achieved by preparing the MSI mapping when allocating the MSI interrupt. Signed-off-by: Julien Grall Reviewed-by: Eric Auger Signed-off-by: Marc Zyngier commit 737be74710f30e611ee871f7b4f47975d1c6f71a Author: Julien Grall Date: Wed May 1 14:58:20 2019 +0100 irqchip/gicv2m: Don't map the MSI page in gicv2m_compose_msi_msg() gicv2m_compose_msi_msg() may be called from non-preemptible context. However, on RT, iommu_dma_map_msi_msg() requires to be called from a preemptible context. A recent change split iommu_dma_map_msi_msg() in two new functions: one that should be called in preemptible context, the other does not have any requirement. The GICv2m driver is reworked to avoid executing preemptible code in non-preemptible context. This can be achieved by preparing the MSI mapping when allocating the MSI interrupt. Signed-off-by: Julien Grall Reviewed-by: Eric Auger Signed-off-by: Marc Zyngier commit ece6e6f0218b7777e650bf93728130ae6f4feb7d Author: Julien Grall Date: Wed May 1 14:58:19 2019 +0100 iommu/dma-iommu: Split iommu_dma_map_msi_msg() in two parts On RT, iommu_dma_map_msi_msg() may be called from non-preemptible context. This will lead to a splat with CONFIG_DEBUG_ATOMIC_SLEEP as the function is using spin_lock (they can sleep on RT). iommu_dma_map_msi_msg() is used to map the MSI page in the IOMMU PT and update the MSI message with the IOVA. Only the part to lookup for the MSI page requires to be called in preemptible context. As the MSI page cannot change over the lifecycle of the MSI interrupt, the lookup can be cached and re-used later on. iomma_dma_map_msi_msg() is now split in two functions: - iommu_dma_prepare_msi(): This function will prepare the mapping in the IOMMU and store the cookie in the structure msi_desc. This function should be called in preemptible context. - iommu_dma_compose_msi_msg(): This function will update the MSI message with the IOVA when the device is behind an IOMMU. Signed-off-by: Julien Grall Reviewed-by: Robin Murphy Reviewed-by: Eric Auger Acked-by: Joerg Roedel Signed-off-by: Marc Zyngier commit aaebdf8d68479f78d9f72b239684f70fbb0722c6 Author: Julien Grall Date: Wed May 1 14:58:18 2019 +0100 genirq/msi: Add a new field in msi_desc to store an IOMMU cookie When an MSI doorbell is located downstream of an IOMMU, it is required to swizzle the physical address with an appropriately-mapped IOVA for any device attached to one of our DMA ops domain. At the moment, the allocation of the mapping may be done when composing the message. However, the composing may be done in non-preemtible context while the allocation requires to be called from preemptible context. A follow-up change will split the current logic in two functions requiring to keep an IOMMU cookie per MSI. A new field is introduced in msi_desc to store an IOMMU cookie. As the cookie may not be required in some configuration, the field is protected under a new config CONFIG_IRQ_MSI_IOMMU. A pair of helpers has also been introduced to access the field. Signed-off-by: Julien Grall Reviewed-by: Robin Murphy Reviewed-by: Eric Auger Signed-off-by: Marc Zyngier commit 943bd984b108b3bb778790c2da4ae8d186b547e6 Author: Parav Pandit Date: Thu May 2 10:48:07 2019 +0300 RDMA/core: Allow detaching gid attribute netdevice for RoCE When there is active traffic through a GID, a QP/AH holds reference to this GID entry. RoCE GID entry holds reference to its attached netdevice. Due to this when netdevice is deleted by admin user, its refcount is not dropped. Therefore, while deleting RoCE GID, wait for all GID attribute's netdev users to finish accessing netdev in rcu context. Once all users done accessing it, release the netdev refcount. Signed-off-by: Huy Nguyen Signed-off-by: Parav Pandit Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 5102eca9039ba1df6d2e8756b0c030676021f56b Author: Parav Pandit Date: Thu May 2 10:48:06 2019 +0300 net/smc: Use rdma_read_gid_l2_fields to L2 fields Use core provided API to fill the source MAC address and use rdma_read_gid_attr_ndev_rcu() to get stable netdev. This is preparation patch to allow gid attribute to become NULL when associated net device is removed. Signed-off-by: Parav Pandit Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit dab2175800ef0b45d5e70a7337bd6cb311292ebe Author: Parav Pandit Date: Thu May 2 10:48:05 2019 +0300 RDMA/rxe: Use rdma_read_gid_attr_ndev_rcu to access netdev Use rdma_read_gid_attr_ndev_rcu() to access netdevice attached to GID entry under rcu lock. This ensures that while working on the netdevice of the GID, it doesn't get freed. Signed-off-by: Parav Pandit Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit adb4a57a7a1d0bf4bebc96266f30f04330e741de Author: Parav Pandit Date: Thu May 2 10:48:04 2019 +0300 RDMA/cma: Use rdma_read_gid_attr_ndev_rcu to access netdev To access the netdevice of the GID attribute, use an existing API rdma_read_gid_attr_ndev_rcu(). This further reduces dependency on open access to netdevice of GID attribute. Signed-off-by: Parav Pandit Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit a70c07397fd80dfeeaead15751ab71449b548826 Author: Parav Pandit Date: Thu May 2 10:48:03 2019 +0300 RDMA: Introduce and use GID attr helper to read RoCE L2 fields Instead of RoCE drivers figuring out vlan, smac fields while working on QP/AH, provide a helper routine to read the L2 fields such as vlan_id and source mac address. This moves logic from mlx5 driver to core for wider usage for RoCE ports. This is a preparation patch to allow detaching netdev in subsequent patch. Signed-off-by: Parav Pandit Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 8f9748602491295b305960cd2cd4976ad15cb04f Author: Parav Pandit Date: Thu May 2 10:48:02 2019 +0300 IB/cm: Reduce dependency on gid attribute ndev check GID type to path record type conversion can be done directly based on port type and gid attribute type. There is no need to find out using indirect way by its GID attribute's ndev field. Signed-off-by: Parav Pandit Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 3bf3e2b881c1412d0329ce9376dfe1518489b8fc Author: Parav Pandit Date: Thu May 2 10:48:01 2019 +0300 RDMA/rxe: Consider skb reserve space based on netdev of GID Always consider the skb reserve space based on netdevice of the GID attribute, regardless of vlan or non vlan netdevice. Fixes: 43c9fc509fa5 ("rdma_rxe: make rxe work over 802.1q VLAN devices") Signed-off-by: Parav Pandit Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit c69ef1c87b8c35ab9cc6b7d3b9395efd5ca6bc4d Author: Masahiro Yamada Date: Mon Apr 29 13:06:43 2019 +0900 scripts/tags.sh: fix direct execution of scripts/tags.sh I thought this script was run via "make tags" etc. but some people run it directly. Prior to commit a9a49c2ad9b9 ("kbuild: use $(srctree) instead of KBUILD_SRC to check out-of-tree build"), in such a usecase, "tree" was set empty since KBUILD_SRC is undefined. Now, "tree" is set to "${srctree}/", which is evaluated to "/". Fix it by taking into account the case where "srctree" is unset. Link: https://lkml.org/lkml/2019/4/19/501 Fixes: a9a49c2ad9b9 ("kbuild: use $(srctree) instead of KBUILD_SRC to check out-of-tree build") Reported-by: Sergey Senozhatsky Signed-off-by: Masahiro Yamada commit e46b94d228458aefc2553ee7c34ab18c2e3288e3 Author: Daniel Dadap Date: Sat Apr 27 11:21:34 2019 -0400 scripts: override locale from environment when running recordmcount.pl recordmcount.pl uses a set of regular expressions to parse the output of objdump(1). However, if objdump(1) output is localized, it may not match the regular expressions, thereby preventing recordmcount.pl from parsing object files correctly. In order to allow recordmcount.pl to function correctly regardless of the current locale settings, set LANG=C when running objdump(1). LC_ALL is already unset in the top-level Makefile, so it is not necessary to also override that environment variable. Signed-off-by: Daniel Dadap Reviewed-by: Robert Morell Signed-off-by: Masahiro Yamada commit e7e3491761a46a63ce504388075e262192ea542e Author: Masahiro Yamada Date: Sat Apr 27 12:33:40 2019 +0900 samples: kobject: allow CONFIG_SAMPLE_KOBJECT to become y This sample works well as builtin. Signed-off-by: Masahiro Yamada commit 7206c1247416f2c62ce38b65994b5e74fefe2e2b Author: Masahiro Yamada Date: Sat Apr 27 12:33:39 2019 +0900 samples: seccomp: turn CONFIG_SAMPLE_SECCOMP into a bool option The prompt of CONFIG_SAMPLE_SECCOMP claims this is "loadable module only", which is invalid. samples/seccomp/ only contains host programs, so having it tristate is pointless. Signed-off-by: Masahiro Yamada commit 1eaca4b982806b7554438a21831622128acebe82 Author: Masahiro Yamada Date: Sat Apr 27 12:33:37 2019 +0900 kbuild: move Documentation to vmlinux-alldirs A minor code cleanup. Signed-off-by: Masahiro Yamada commit d93a18f27e3701a8cdc2228aee1c22451d1292e4 Author: Masahiro Yamada Date: Sat Apr 27 12:33:36 2019 +0900 kbuild: move samples/ to KBUILD_VMLINUX_OBJS Handle samples/ like the other top-level directories to simplify the Makefile. Include include/config/auto.conf earlier to evaluate drivers-$(CONFIG_SAMPLES). Signed-off-by: Masahiro Yamada commit dd05cb828d0ebecd3d772075fccb85ec3618bedf Author: Kamal Heib Date: Mon Apr 29 14:59:06 2019 +0300 RDMA: Get rid of iw_cm_verbs Integrate iw_cm_verbs data members into ib_device_ops and ib_device structs, this is done to achieve the following: 1) Avoid memory related bugs durring error unwind 2) Make the code more cleaner 3) Reduce code duplication Signed-off-by: Kamal Heib Signed-off-by: Jason Gunthorpe commit 04fdd5dd79a9012dad7b0e6ba676c5a61ca592e4 Author: Harish Bandi Date: Fri Apr 26 19:26:02 2019 +0530 dt-bindings: net: bluetooth: Add device tree bindings for QTI chip WCN3998 Add compatible string for the Qualcomm WCN3998 Bluetooth controller Signed-off-by: Harish Bandi Reviewed-by: Rob Herring Signed-off-by: Marcel Holtmann commit 523760b7ff8871281aaedc44c305926469ab47f8 Author: Harish Bandi Date: Fri Apr 26 19:26:01 2019 +0530 Bluetooth: hci_qca: Added support for WCN3998 Added new compatible for WCN3998 and corresponding voltage and current values to WCN3998 compatible. Changed driver code to support WCN3998 Signed-off-by: Harish Bandi Reviewed-by: Matthias Kaehlcke Reviewed-by: Balakrishna Godavarthi Signed-off-by: Marcel Holtmann commit eb15c78b05bd9fbac45ee5b56aaf29b2570b5238 Author: Parav Pandit Date: Wed May 1 08:46:55 2019 +0300 RDMA/core: Do not invoke init_port on compat devices The driver interface cannot manipulate the sysfs of the compat device, only of the full device so we must avoid calling the driver sysfs APIs on compat devices. This prevents an oops: Call Trace: dump_stack+0x5a/0x73 kobject_init+0x74/0x80 kobject_init_and_add+0x35/0xb0 hfi1_create_port_files+0x6e/0x3c0 [hfi1] ib_setup_port_attrs+0x43b/0x560 [ib_core] add_one_compat_dev+0x16a/0x230 [ib_core] rdma_dev_init_net+0x110/0x160 [ib_core] ops_init+0x38/0xf0 setup_net+0xcf/0x1e0 copy_net_ns+0xb7/0x130 create_new_namespaces+0x11a/0x1b0 unshare_nsproxy_namespaces+0x55/0xa0 ksys_unshare+0x1a7/0x340 __x64_sys_unshare+0xe/0x20 do_syscall_64+0x5b/0x180 entry_SYSCALL_64_after_hwframe+0x44/0xa9 Fixes: 5417783eabb2 ("RDMA/core: Support core port attributes in non init_net") Reported-by: Mike Marciniszyn Tested-by: Mike Marciniszyn Signed-off-by: Parav Pandit Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 4db61c2a16fce2ef85d82751de4ba43a39347cfb Author: Wolfram Sang Date: Thu Apr 25 16:19:47 2019 +0200 i2c: core: ratelimit 'transfer when suspended' errors There are two problems with WARN_ON() here. One: It is not ratelimited. Two: We don't see which adapter was used when trying to transfer something when already suspended. Implement a custom ratelimit once per adapter and use dev_WARN there. This fixes both issues. Drawback is that we don't see if multiple drivers are trying to transfer with the same adapter while suspended. They need to be discovered one after the other now. This is better than a high CPU load because a really broken driver might try to resend endlessly. Fixes: 9ac6cb5fbb17 ("i2c: add suspended flag and accessors for i2c adapters") Signed-off-by: Wolfram Sang Reviewed-by: Simon Horman Signed-off-by: Wolfram Sang Cc: stable@vger.kernel.org # v5.1+ commit d00afd5ede1c29a6dc59be2d7fb7d6ef28eb85c5 Merge: 9a51b86a6121 d5984d2a3121 Author: Wolfram Sang Date: Fri May 3 15:20:04 2019 +0200 Merge branch 'i2c-mux/for-next' of https://github.com/peda-r/i2c-mux into i2c/for-5.2 Mainly some pca954x work, i.e. removal of unused platform data support and added support for sysfs interface for manipulating/examining the idle state. And then a mechanical cocci-style patch. commit 1a418f7764a00bc6ad8fd1b765b941c3a8389467 Author: Artemy Kovalyov Date: Wed May 1 08:39:48 2019 +0300 IB/core: Set qp->real_qp before it may be accessed real_qp should be initialized before ib_destroy_qp() is called. ib_destroy_qp() may be called in the error flow if ib_create_qp_security() failed. Signed-off-by: Artemy Kovalyov Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 8f4426aa19fcdb9326ac44154a117b1a3a5ae126 Author: Jack Morgenstein Date: Wed May 1 08:38:30 2019 +0300 IB/mlx5: Add missing XRC options to QP optional params mask The QP transition optional parameters for the various transition for XRC QPs are identical to those for RC QPs. Many of the XRC QP transition optional parameter bits are missing from the QP optional mask table. These omissions caused failures when doing XRC QP state transitions. For example, when trying to change the response timer of an XRC receive QP via the RTS2RTS transition, the new timer value was ignored because MLX5_QP_OPTPAR_RNR_TIMEOUT bit was missing from the optional params mask for XRC qps for the RTS2RTS transition. Fix this by adding the missing XRC optional parameters for all QP transitions to the opt_mask table. Fixes: e126ba97dba9 ("mlx5: Add driver for Mellanox Connect-IB adapters") Fixes: a4774e9095de ("IB/mlx5: Fix opt param mask according to firmware spec") Signed-off-by: Jack Morgenstein Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 4f33dd41b24c1e3494a6ea6c7839ea068343f809 Author: Shamir Rabinovitch Date: Tue Apr 30 17:23:21 2019 +0300 RDMA/uverbs: Initialize uverbs_attr_bundle ucontext in ib_uverbs_get_context ib_uverbs_get_context does not have a uobject so it does not call the rdma_lookup_get_uobject which is used to set up the uverbs_attr_bundle ucontext. For ib_uverbs_get_context we need to set up this manually before we send the uverbs_attr_bundle down to the driver layer. This completes the change that was done in commit 70f06b26f07e ("IB: ucontext should be set properly for all cmd & ioctl paths") Signed-off-by: Shamir Rabinovitch Signed-off-by: Jason Gunthorpe commit 9a51b86a61214a297cdfc1bb705b7267f9455ae6 Merge: 8221324b1af8 d333bad1f6f3 Author: Wolfram Sang Date: Fri May 3 14:57:36 2019 +0200 Merge tag 'at24-v5.2-updates-for-wolfram' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into i2c/for-5.2 at24: updates for linux v5.2 - change my e-mail address - add a new compatible for Renesas R1EX24016 to the DT binding document commit 894ee5ff83335659da5fc4a4b1f41fa246f32d1a Author: Mauro Carvalho Chehab Date: Wed Apr 24 13:25:33 2019 -0300 scripts/documentation-file-ref-check: detect broken :doc:`foo` As we keep migrating documents to ReST, we're starting to see more of such tags. Right now, all such tags are pointing to a documentation file, but regressions may be introduced. So, add a check for such kind of issues as well. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit fe3e4b9c6364d3aa69eb30f44d1a44bc90f99924 Author: Mauro Carvalho Chehab Date: Mon Apr 22 08:42:02 2019 -0300 scripts/documentation-file-ref-check: don't parse Next/ dir If one tries to run this script under linux-next, it would hit lots of false-positives, due to the tree merges that are stored under the Next/ directory. So, add a logic to ignore it. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 62be257e986dab439537b3e1c19ef746a13e1860 Author: Christoph Hellwig Date: Tue Apr 30 06:51:30 2019 -0400 LICENSES: Rename other to deprecated Make it clear in the directory name that these are not intended for new code. Signed-off-by: Christoph Hellwig Reviewed-by: Greg Kroah-Hartman Signed-off-by: Jonathan Corbet commit 8ea8814fcdcb32cc667d090455649893a362c658 Author: Christoph Hellwig Date: Tue Apr 30 06:51:29 2019 -0400 LICENSES: Clearly mark dual license only licenses Just like the CDDL the Apache license and the MPL must only be used as a choice in additional to an GPL2 compatible license. Copy over the boilerplate from the CDDL file to the other two after fixing it up to make it clear the licenses need to be GPL2 compatible, not just the more generic GPL compatible. For example the Apache 2 license is GPL3 compatible, but that doesn't matter for the kernel. Also move these licenses to a separate directory and document the rules in license-rules.rst. Signed-off-by: Christoph Hellwig Reviewed-by: Greg Kroah-Hartman Signed-off-by: Jonathan Corbet commit 6132c37ca543d45cc911043fb17b2d86593fb612 Author: Christoph Hellwig Date: Tue Apr 30 06:51:28 2019 -0400 docs: Don't reference the ZLib license in license-rules.rst We never had a file called LICENSES/other/ZLib in the tree, so don't reference it. Instead mention the GPL v1 as an (bad) example. Signed-off-by: Christoph Hellwig Reviewed-by: Greg Kroah-Hartman Signed-off-by: Jonathan Corbet commit f9b628d61faef9b6d411f13cf4be41470b7a7adb Author: Yan-Hsuan Chuang Date: Fri May 3 19:53:31 2019 +0800 rtw88: add license for Makefile Add missing license for Makefile Signed-off-by: Yan-Hsuan Chuang Signed-off-by: Kalle Valo commit 77a5352ba977d2554643e3797e10823d0d03dcf7 Author: Nicholas Piggin Date: Thu Apr 11 13:34:44 2019 +1000 sched/core: Allow the remote scheduler tick to be started on CPU0 This has no effect yet because CPU0 will always be a housekeeping CPU until a later change. Signed-off-by: Nicholas Piggin Signed-off-by: Peter Zijlstra (Intel) Cc: Frederic Weisbecker Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rafael J . Wysocki Cc: Thomas Gleixner Cc: linuxppc-dev@lists.ozlabs.org Link: https://lkml.kernel.org/r/20190411033448.20842-2-npiggin@gmail.com Signed-off-by: Ingo Molnar commit 176d2323c7743e03e3bb4298b6f25eea2f00fed0 Merge: 9b019acb72e4 ea9866793d1e Author: Ingo Molnar Date: Fri May 3 12:52:45 2019 +0200 Merge branch 'linus' into sched/core, to pick up fixes Signed-off-by: Ingo Molnar commit b33f908811b7627015238e0dee9baf2b4c9d720d Merge: 24cf262da1ad 9bcb929f969e Author: Will Deacon Date: Fri May 3 10:18:08 2019 +0100 Merge branch 'for-next/perf' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into for-next/core commit 2b76f5be7c2778ee2f6bacddc19248f6a4a467a0 Author: Lucas Stach Date: Wed Dec 19 15:16:41 2018 +0100 drm/etnaviv: initialize idle mask before querying the HW db If there is a match in the HW DB, the function is left early, before inititalizing the idle mask. Fix this by doing the init earlier, as only old GPUs, not present in the HW DB need a different idle mask. Signed-off-by: Lucas Stach Reviewed-by: Philipp Zabel commit 161027367ed640e54da51f5620864e252a02c65e Merge: 78e6427b4e7b 9f832fda79eb Author: Greg Kroah-Hartman Date: Fri May 3 09:49:37 2019 +0200 Merge tag 'misc-habanalabs-next-2019-05-03' of git://people.freedesktop.org/~gabbayo/linux into char-misc-next Oded writes: This tag contains further changes for kernel 5.2. The changes are either bug fixes or simple re-factoring of existing code. The notable changes are: - Add missing fields in the bmon structure that is passed in the debug IOCTL when the user wants to configure the bus monitor. - Use the dedicated device-CPU accessible memory pool for all host memory allocations that are accessible directly by the embedded CPU. This is needed to enforce certain restrictions we have due to the embedded CPU's architecture. - Manipulate DMA addresses only inside ASIC-specific files. This is needed to better support future ASICs code. Other minor changes include: - Move pr_fmt() to c files to avoid dependency in include order. - Remove call to CS parsing function for workloads that originates from the driver and remove dead code as a result from this change. - Update names of structure members and labels to better reflect their usage. - When moving the dram PCI bar aperture, return the old aperture address range instead of error code. This will allow us to restore the old address range in a simpler fashion. * tag 'misc-habanalabs-next-2019-05-03' of git://people.freedesktop.org/~gabbayo/linux: habanalabs: Update CPU DMA memory label name habanalabs: Update CPU DMA pool label name habanalabs: increase timeout if working with simulator habanalabs: remove condition that is always true habanalabs: remove redundant member from parser struct habanalabs: Manipulate DMA addresses in ASIC functions habanalabs: rename functions to improve code readability habanalabs: remove call to cs_parser() habanalabs: Use single pool for CPU accessible host memory habanalabs: return old dram bar address upon change habanalabs: rename restore to ctx_switch when appropriate habanalabs: use ASIC functions interface for rreg/wreg uapi/habanalabs: add missing fields in bmon params habanalabs: re-factor goya_parse_cb_no_ext_queue() habanalabs: Cancel pr_fmt() definition dependency on includes order commit 7f6fc50242d11d4fedab9cf6c5e8af368c076ccd Author: Ji-Ze Hong (Peter Hong) Date: Tue Apr 30 09:22:32 2019 +0800 USB: serial: f81232: implement break control Implement Fintek F81232 break on/off with LCR register. It's the same with 16550A LCR register layout. Signed-off-by: Ji-Ze Hong (Peter Hong) [ johan: fix corrupt line settings on break due to missing shadow_lcr update in set_termios() ] Signed-off-by: Johan Hovold commit 268ddb5e9b62221beda22b8e956cf6e732538a90 Author: Ji-Ze Hong (Peter Hong) Date: Tue Apr 30 09:22:31 2019 +0800 USB: serial: f81232: add high baud rate support The F81232 had 4 clocksource 1.846/18.46/14.77/24MHz and baud rates can be up to 1.5Mbits with 24MHz. F81232 Clock registers (106h) Bit1-0: Clock source selector 00: 1.846MHz. 01: 18.46MHz. 10: 24MHz. 11: 14.77MHz. Signed-off-by: Ji-Ze Hong (Peter Hong) Signed-off-by: Johan Hovold commit 1c6b7ab2dd0763657fc7cac562976fa01772d040 Author: Ji-Ze Hong (Peter Hong) Date: Tue Apr 30 09:22:30 2019 +0800 USB: serial: f81232: clear overrun flag The F81232 will report data and LSR with bulk like following format: bulk-in data: [LSR(1Byte)+DATA(1Byte)][LSR(1Byte)+DATA(1Byte)]... LSR will auto clear frame/parity/break error flag when reading by H/W, but overrrun will only cleared when reading LSR. So this patch add a worker to read LSR when overrun and flush the worker on close() & suspend(). Cc: Oliver Neukum Signed-off-by: Ji-Ze Hong (Peter Hong) Signed-off-by: Johan Hovold commit 804dbee1e49774918339c1e5a87400988c0819e8 Author: Ji-Ze Hong (Peter Hong) Date: Tue Apr 30 09:22:29 2019 +0800 USB: serial: f81232: fix interrupt worker not stop The F81232 will use interrupt worker to handle MSR change. This patch will fix the issue that interrupt work should stop in close() and suspend(). This also fixes line-status events being disabled after a suspend cycle until the port is re-opened. Signed-off-by: Ji-Ze Hong (Peter Hong) [ johan: amend commit message ] Fixes: 87fe5adcd8de ("USB: f81232: implement read IIR/MSR with endpoint") Cc: stable # 4.1 Signed-off-by: Johan Hovold commit 48f6ae0d759cfddfad126de57a0c8685ed4f08ff Merge: 8293b3c6dafd 5f61d9517f17 Author: Linus Walleij Date: Fri May 3 07:53:33 2019 +0100 Merge tag 'intel-pinctrl-v5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/intel into devel intel-pinctrl for v5.2-1 Non-critical fixes for Intel Baytrail and Intel Cedarfork. Couple of fixes for all pinctrl-intel based drivers with regard to IRQ handling, i.e. moving PM calls to noirq level to avoid IRQ lose and restore ownership of pins to prevent IRQ masking side effect. The following is an automated git shortlog grouped by driver: baytrail: - Fix potential NULL pointer dereference cedarfork: - Update pin names according to v1.13c intel: - Increase readability of intel_gpio_update_pad_mode() - Retain HOSTSW_OWN for requested gpio pin - move gpio suspend/resume to noirq phase commit 8293b3c6dafd4d7440eb0ddda3092008e169bf8b Author: Manivannan Sadhasivam Date: Thu Apr 25 14:02:24 2019 +0530 pinctrl: Rework Kconfig dependency for BM1880 pinctrl driver Make the BM1880 SoC pinctrl driver depend on COMPILE_TEST to get compiler test coverage and also select this driver by default for ARCH_BITMAIN platform. Signed-off-by: Manivannan Sadhasivam Signed-off-by: Linus Walleij commit c29ad3453648a7116036f666a09e06c2d10f629f Author: Manivannan Sadhasivam Date: Wed Apr 24 17:32:24 2019 +0530 MAINTAINERS: Add entry for BM1880 pinctrl Add MAINTAINERS entry for Bitmain BM1880 SoC pinctrl. Signed-off-by: Manivannan Sadhasivam Signed-off-by: Linus Walleij commit 8f3f024696713e6022f5454f609db1e357a57016 Author: Manivannan Sadhasivam Date: Wed Apr 24 17:32:23 2019 +0530 pinctrl: Add pinctrl support for BM1880 SoC Add pinctrl support for Bitmain BM1880 SoC. The driver only handles pinmuxing as the SoC is not capable of handling pinconf. Signed-off-by: Manivannan Sadhasivam Signed-off-by: Linus Walleij commit 07b734fbdea2662ab79a7501e2d758dcc658a9e2 Author: Manivannan Sadhasivam Date: Wed Apr 24 17:32:20 2019 +0530 dt-bindings: pinctrl: Add BM1880 pinctrl binding Add pinctrl binding for Bitmain BM1880 SoC. The SoC is not capable of handling pinconf, thereby supporting only pinmux and this limitation is documented. Signed-off-by: Manivannan Sadhasivam Signed-off-by: Linus Walleij commit d86f4d71e42a9fa1866f030074e54d7571d16ec1 Author: Fabien Dessenne Date: Wed Apr 24 10:08:44 2019 +0200 pinctrl: stm32: check irq controller availability at probe It is not guaranteed that the IRQ controller driver is probed before the pin controller driver gets probed. Considering this, check for the irq domain availability during probe and return EPROBE_DEFER if needed. Signed-off-by: Fabien Dessenne Acked-by: Alexandre TORGUE Signed-off-by: Linus Walleij commit 264667112ef093ff9d970a432c19604a8505df81 Author: Fabien Parent Date: Tue Apr 16 10:33:05 2019 +0200 pinctrl: mediatek: Add MT8516 Pinctrl driver This commit adds the pinctrl driver for the MediaTek's MT8516 SoC. Signed-off-by: Fabien Parent Acked-by: Sean Wang Signed-off-by: Linus Walleij commit 02d15f0d80720545f1f4922a1550ea4aaad4e152 Author: Wen Yang Date: Fri Apr 12 14:02:23 2019 +0800 pinctrl: zte: fix leaked of_node references The call to of_parse_phandle returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: ./drivers/pinctrl/zte/pinctrl-zx.c:415:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 407, but without a corresponding object release within this function. ./drivers/pinctrl/zte/pinctrl-zx.c:422:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 407, but without a corresponding object release within this function. ./drivers/pinctrl/zte/pinctrl-zx.c:436:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 407, but without a corresponding object release within this function. ./drivers/pinctrl/zte/pinctrl-zx.c:444:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 407, but without a corresponding object release within this function. ./drivers/pinctrl/zte/pinctrl-zx.c:448:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 407, but without a corresponding object release within this function. Signed-off-by: Wen Yang Cc: Linus Walleij Cc: Jun Nie Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org Cc: linux-kernel@vger.kernel.org Acked-by: Shawn Guo Signed-off-by: Linus Walleij commit 16ec5dfe0327ddcf279957bffe4c8fe527088c63 Author: Mac Chiang Date: Thu May 2 14:12:04 2019 +0800 ASoC: Intel: kbl_da7219_max98357a: Map BTN_0 to KEY_PLAYPAUSE On kbl_rt5663_max98927, commit 38a5882e4292 ("ASoC: Intel: kbl_rt5663_max98927: Map BTN_0 to KEY_PLAYPAUSE") This key pair mapping to play/pause when playing Youtube The Android 3.5mm Headset jack specification mentions that BTN_0 should be mapped to KEY_MEDIA, but this is less logical than KEY_PLAYPAUSE, which has much broader userspace support. For example, the Chrome OS userspace now supports KEY_PLAYPAUSE to toggle play/pause of videos and audio, but does not handle KEY_MEDIA. Furthermore, Android itself now supports KEY_PLAYPAUSE equivalently, as the new USB headset spec requires KEY_PLAYPAUSE for BTN_0. https://source.android.com/devices/accessories/headset/usb-headset-spec The same fix is required on Chrome kbl_da7219_max98357a. Signed-off-by: Mac Chiang Reviewed-by: Benson Leung Acked-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 498209445124920b365ef43aac93d6f1acbaa1b7 Author: Jorge Ramirez-Ortiz Date: Mon Apr 22 19:28:24 2019 +0200 regulator: core: simplify return value on suported_voltage All the current clients of this API assume that 0 corresponds to a failure and non-zero to a pass therefore ignoring the need to handle a negative error code. This commit modifies the API to follow that standard since returning a negative (EINVAL) doesn't seem to provide enough value to justify the need to handle it. Signed-off-by: Jorge Ramirez-Ortiz Signed-off-by: Mark Brown commit 70e16a620e075cb916644e06012766639b58b2fb Author: Greg Kroah-Hartman Date: Thu May 2 12:22:24 2019 +0200 kobject: clean up the kobject add documentation a bit more Commit 1fd7c3b438a2 ("kobject: Improve doc clarity kobject_init_and_add()") tried to provide more clarity, but the reference to kobject_del() was incorrect. Fix that up by removing that line, and hopefully be more explicit as to exactly what needs to happen here once you register a kobject with the kobject core. Acked-by: Tobin C. Harding Fixes: 1fd7c3b438a2 ("kobject: Improve doc clarity kobject_init_and_add()") Signed-off-by: Greg Kroah-Hartman commit e2a5be107f52cefb9010ccae6f569c3ddaa954cc Author: Nathan Chancellor Date: Thu May 2 19:06:30 2019 -0700 staging: kpc2000: kpc_spi: Fix build error for {read,write}q drivers/staging/kpc2000/kpc_spi/spi_driver.c:158:11: error: implicit declaration of function 'readq' [-Werror,-Wimplicit-function-declaration] drivers/staging/kpc2000/kpc_spi/spi_driver.c:167:5: error: implicit declaration of function 'writeq' [-Werror,-Wimplicit-function-declaration] Same as commit 91b6cb7216cd ("staging: kpc2000: fix up build problems with readq()"). Signed-off-by: Nathan Chancellor Signed-off-by: Greg Kroah-Hartman commit 2e487d280525b91b03976203b15aba365ec5b4e6 Author: Thinh Nguyen Date: Thu Apr 25 13:55:30 2019 -0700 usb: dwc3: Rename DWC3_DCTL_LPM_ERRATA The macro name DWC3_DCTL_LPM_ERRATA is uninformative and does not do masking. Remove DWC3_DCTL_LPM_ERRATA_MASK and rename DWC3_DCTL_LPM_ERRATA to DWC3_DCTL_NYET_THRES with proper masking. Signed-off-by: Thinh Nguyen Signed-off-by: Felipe Balbi commit 8d791929b2fbdf7734c1596d808e55cb457f4562 Author: Thinh Nguyen Date: Thu Apr 25 13:55:23 2019 -0700 usb: dwc3: Fix default lpm_nyet_threshold value The max possible value for DCTL.LPM_NYET_THRES is 15 and not 255. Change the default value to 15. Cc: stable@vger.kernel.org Fixes: 80caf7d21adc ("usb: dwc3: add lpm erratum support") Signed-off-by: Thinh Nguyen Signed-off-by: Felipe Balbi commit dd24f9b604d3bf04c23544695e1cdbdc84e0c7de Author: Thinh Nguyen Date: Thu Apr 25 14:06:10 2019 -0700 usb: dwc3: debug: Print GET_STATUS(device) tracepoint DWC3 is missing the printing of control request GET_STATUS(device) tracepoint. This patch prints that. Signed-off-by: Thinh Nguyen Signed-off-by: Felipe Balbi commit b873e2d0ea1efc91fb603b727733525f07419f2b Author: Thinh Nguyen Date: Thu Apr 25 14:19:21 2019 -0700 usb: dwc3: Do core validation early on probe The setting of the dr_mode may need to check the controller's revision. The revision is set in the dwc3_core_is_valid(), which comes after dr_mode setting. Let's move it closer to the start of the dwc3_probe() function and before calling dwc3_get_dr_mode(). Signed-off-by: Thinh Nguyen Signed-off-by: Felipe Balbi commit c729969b2b692ce3ed362e60d38391e7671758ff Author: Thinh Nguyen Date: Thu Apr 25 14:28:24 2019 -0700 usb: dwc3: gadget: Set lpm_capable All DWC3 controllers are LPM capable. Report that in the usb_gadget.lpm_capable for the gadget driver to properly output the bcdUSB value in the descriptor. Signed-off-by: Thinh Nguyen Signed-off-by: Felipe Balbi commit 8f6707bf2b2580810ebc96a535ed04e3aff6c9e4 Author: Jonas Bonn Date: Wed Feb 20 13:20:01 2019 +0100 usb: gadget: atmel: tie wake lock to running clock If the USB device is connected to a host, the CPU cannot be suspended or else the USB device appears to be disconnected from the host's point of view. Only after a "USB suspend" state has been entered (as set by the host) or the host is disconnected can the system safely be suspended: in both these states, the clock is stopped. As such, this patch associates a "wake lock" with the running clock of the UDC to keep the system awake as long as the host maintains the USB connection active. Signed-off-by: Jonas Bonn CC: Cristian Birsan CC: Felipe Balbi CC: Greg Kroah-Hartman CC: Nicolas Ferre CC: Alexandre Belloni CC: Ludovic Desroches CC: linux-arm-kernel@lists.infradead.org CC: linux-usb@vger.kernel.org Signed-off-by: Felipe Balbi commit 70a7f8be85986a3c2ffc7274c41b89552dfe2ad0 Author: Jonas Bonn Date: Wed Feb 20 13:20:00 2019 +0100 usb: gadget: atmel: support USB suspend This patch adds support for USB suspend to the Atmel UDC. When suspended, the UDC clock can be stopped, resulting in some power savings. The "wake up" interrupt will fire irregardless of whether the clock is running or not, allowing the UDC clock to be restarted when the USB master wants to wake the device again. The IRQ state of this device is somewhat fiddly. The "wake up" IRQ seems to actually be a "bus activity" indicator; the IRQ is almost continuously asserted so enabling this IRQ should only be done after a suspend when the wake IRQ becomes relevant. Similarly, the "suspend" IRQ detects "bus inactivity" and may therefore fire together with a "wake" if the two types of activity coincide during the period between two IRQ handler invocations; therefore, it's important to ignore the "suspend" IRQ while waiting for a wake-up. This has been tested on a SAMA5D2 board. Signed-off-by: Jonas Bonn CC: Cristian Birsan CC: Felipe Balbi CC: Greg Kroah-Hartman CC: Nicolas Ferre CC: Alexandre Belloni CC: Ludovic Desroches CC: linux-arm-kernel@lists.infradead.org CC: linux-usb@vger.kernel.org Signed-off-by: Felipe Balbi commit 66b61e27a98c8d5772dae543ca3581da0c2137a1 Author: Jonas Bonn Date: Wed Feb 20 13:19:59 2019 +0100 usb: gadget: atmel_usba_udc: simplify setting of interrupt-enabled mask This patch adds set and clear functions for enabling/disabling interrupts. This simplifies the implementation a bit as the masking of previously set bits doesn't need to be so explicit. Signed-off-by: Jonas Bonn CC: Cristian Birsan CC: Felipe Balbi CC: Greg Kroah-Hartman CC: Nicolas Ferre CC: Alexandre Belloni CC: Ludovic Desroches CC: linux-arm-kernel@lists.infradead.org CC: linux-usb@vger.kernel.org Signed-off-by: Felipe Balbi commit 5acb4b970184d189d901192d075997c933b82260 Author: Minas Harutyunyan Date: Fri Feb 22 15:49:19 2019 +0400 dwc2: gadget: Fix completed transfer size calculation in DDMA Fix calculation of transfer size on completion in function dwc2_gadget_get_xfersize_ddma(). Added increment of descriptor pointer to move to next descriptor in the loop. Fixes: aa3e8bc81311 ("usb: dwc2: gadget: DDMA transfer start and complete") Signed-off-by: Minas Harutyunyan Signed-off-by: Felipe Balbi commit 28b5c129ca6e585ec95c160ec4297bc6c6360b6f Author: Minas Harutyunyan Date: Mon Mar 4 17:08:07 2019 +0400 usb: dwc2: Set lpm mode parameters depend on HW configuration If core not supported lpm, i.e. BCM2835 then confusing warnings seen in log. To avoid these warnings, added function dwc2_set_param_lpm() to set lpm and other lpm related parameters based on lpm support by core. Signed-off-by: Minas Harutyunyan Signed-off-by: Felipe Balbi commit 5799aecd64f2bb6c8175a2e86fbcb9e60d052221 Author: Minas Harutyunyan Date: Tue Mar 5 15:08:55 2019 +0400 usb: dwc2: Fix channel disable flow Channel disabling/halting should performed for enabled only channels to avoid warnings "Unable to clear enable on channel N" which seen if host works in Slave mode. Signed-off-by: Minas Harutyunyan Signed-off-by: Felipe Balbi commit c8006f67ae0371900e601112d9f9cd8fff1c8387 Author: Minas Harutyunyan Date: Tue Mar 12 13:27:46 2019 +0400 usb: dwc2: Set actual frame number for completed ISOC transfer On ISOC transfer completion, in DDMA mode, set actual frame number returning to function driver in usb_request. Due to core limitation, returning frame number is 11-bit wide. Signed-off-by: Minas Harutyunyan Signed-off-by: Felipe Balbi commit 0c91ca478909d1d755b852970519126107478bfb Author: Sergey Senozhatsky Date: Thu Mar 14 17:34:33 2019 +0900 usb: gadget: do not use __constant_cpu_to_le16 A trivial patch. cpu_to_le16() is capable enough to detect __builtin_constant_p() and to use an appropriate compile time ___constant_swahbXX() function. So we can use cpu_to_le16() instead of __constant_cpu_to_le16(). Signed-off-by: Sergey Senozhatsky Signed-off-by: Felipe Balbi commit 54f37f56631747075f1f9a2f0edf6ba405e3e66c Author: Minas Harutyunyan Date: Mon Mar 18 14:24:30 2019 +0400 usb: dwc2: gadget: Increase descriptors count for ISOC's Some function drivers queueing more than 128 ISOC requests at a time. To avoid "descriptor chain full" cases, increasing descriptors count from MAX_DMA_DESC_NUM_GENERIC to MAX_DMA_DESC_NUM_HS_ISOC for ISOC's only. Signed-off-by: Minas Harutyunyan Signed-off-by: Felipe Balbi commit 4035c5b5f2e13b96b6dd5a6d746adad269f832cf Author: Chunfeng Yun Date: Thu Mar 21 10:27:56 2019 +0800 usb: introduce usb_ep_type_string() function In some places, the code prints a human-readable USB endpoint transfer type (e.g. "bulk"). This involves a switch statement sometimes wrapped around in ({ ... }) block leading to code repetition. To make this scenario easier, here introduces usb_ep_type_string() function, which returns a human-readable name of provided endpoint type. It also changes a few places switch was used to use this new function. Signed-off-by: Chunfeng Yun Signed-off-by: Felipe Balbi commit 41a91c606e7d2b74358a944525267cc451c271e8 Author: Marek Szyprowski Date: Wed Mar 27 10:56:08 2019 +0100 usb: dwc3: move synchronize_irq() out of the spinlock protected block dwc3_gadget_suspend() is called under dwc->lock spinlock. In such context calling synchronize_irq() is not allowed. Move the problematic call out of the protected block to fix the following kernel BUG during system suspend: BUG: sleeping function called from invalid context at kernel/irq/manage.c:112 in_atomic(): 1, irqs_disabled(): 128, pid: 1601, name: rtcwake 6 locks held by rtcwake/1601: #0: f70ac2a2 (sb_writers#7){.+.+}, at: vfs_write+0x130/0x16c #1: b5fe1270 (&of->mutex){+.+.}, at: kernfs_fop_write+0xc0/0x1e4 #2: 7e597705 (kn->count#60){.+.+}, at: kernfs_fop_write+0xc8/0x1e4 #3: 8b3527d0 (system_transition_mutex){+.+.}, at: pm_suspend+0xc4/0xc04 #4: fc7f1c42 (&dev->mutex){....}, at: __device_suspend+0xd8/0x74c #5: 4b36507e (&(&dwc->lock)->rlock){....}, at: dwc3_gadget_suspend+0x24/0x3c irq event stamp: 11252 hardirqs last enabled at (11251): [] _raw_spin_unlock_irqrestore+0x6c/0x74 hardirqs last disabled at (11252): [] _raw_spin_lock_irqsave+0x1c/0x5c softirqs last enabled at (9744): [] __do_softirq+0x3a4/0x66c softirqs last disabled at (9737): [] irq_exit+0x140/0x168 Preemption disabled at: [<00000000>] (null) CPU: 7 PID: 1601 Comm: rtcwake Not tainted 5.0.0-rc3-next-20190122-00039-ga3f4ee4f8a52 #5252 Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [] (show_stack) from [] (dump_stack+0x90/0xc8) [] (dump_stack) from [] (___might_sleep+0x22c/0x2c8) [] (___might_sleep) from [] (synchronize_irq+0x28/0x84) [] (synchronize_irq) from [] (dwc3_gadget_suspend+0x34/0x3c) [] (dwc3_gadget_suspend) from [] (dwc3_suspend_common+0x154/0x410) [] (dwc3_suspend_common) from [] (dwc3_suspend+0x14/0x2c) [] (dwc3_suspend) from [] (platform_pm_suspend+0x2c/0x54) [] (platform_pm_suspend) from [] (dpm_run_callback+0xa4/0x3dc) [] (dpm_run_callback) from [] (__device_suspend+0x134/0x74c) [] (__device_suspend) from [] (dpm_suspend+0x174/0x588) [] (dpm_suspend) from [] (suspend_devices_and_enter+0xc0/0xe74) [] (suspend_devices_and_enter) from [] (pm_suspend+0x770/0xc04) [] (pm_suspend) from [] (state_store+0x6c/0xcc) [] (state_store) from [] (kobj_attr_store+0x14/0x20) [] (kobj_attr_store) from [] (sysfs_kf_write+0x4c/0x50) [] (sysfs_kf_write) from [] (kernfs_fop_write+0xfc/0x1e4) [] (kernfs_fop_write) from [] (__vfs_write+0x2c/0x160) [] (__vfs_write) from [] (vfs_write+0xa4/0x16c) [] (vfs_write) from [] (ksys_write+0x40/0x8c) [] (ksys_write) from [] (ret_fast_syscall+0x0/0x28) Exception stack(0xed55ffa8 to 0xed55fff0) ... Fixes: 01c10880d242 ("usb: dwc3: gadget: synchronize_irq dwc irq in suspend") Signed-off-by: Marek Szyprowski Signed-off-by: Felipe Balbi commit 75ecb9dd56a7c360ed487ee809d8e4a026fd7152 Author: Andy Shevchenko Date: Wed Mar 27 17:17:37 2019 +0200 usb: dwc3: Free resource immediately after use When we read an array of integers from device properties, the temporary buffer is allocated. However, in case of dwc3_set_incr_burst_type() it's not freed. Free allocated buffer immediately after use. Signed-off-by: Andy Shevchenko Signed-off-by: Felipe Balbi commit c0c61471ef8664d8c54c53344efd26e180410821 Author: Robin Murphy Date: Wed Mar 27 19:24:06 2019 +0000 usb: dwc3: of-simple: Convert to bulk clk API Now that the bulk API has a "get all of the clocks" helper to match what this code wants, there's little reason not to switch over. Signed-off-by: Robin Murphy Signed-off-by: Felipe Balbi commit b4c53b4ac66a75a93672abf08aafac64dfb08d00 Author: Minas Harutyunyan Date: Tue Mar 12 11:45:12 2019 +0400 usb: dwc2: Delayed status support Added delayed status support for Control transfers. Tested in all 3 modes: Slave, BDMA and DDMA. Performed tests: USB CV (Ch9 and MSC), Control Read/Write tests using Synopsys USB test environment function driver. Signed-off-by: Minas Harutyunyan Signed-off-by: Felipe Balbi commit c67d4262f61733cb4fb81954de53e34712962993 Author: Alexandre Belloni Date: Tue Apr 9 14:09:08 2019 +0200 usb: gadget: udc: lpc32xx: rework interrupt handling There is no actual need to do the enable/disable_irq dance. Instead enable the interrupts on the phy only when necessary. Signed-off-by: Alexandre Belloni Signed-off-by: Felipe Balbi commit 2a60f5eafa74727f083ce7732d5296bf3e0638b6 Author: Alexandre Belloni Date: Tue Apr 9 14:09:07 2019 +0200 usb: gadget: udc: lpc32xx: add support for stotg04 phy The STOTG04 phy is used as a drop-in replacement of the ISP1301 but some bits doesn't have exactly the same meaning and this can lead to issues. Detect the phy dynamically and avoid writing to reserved bits. Signed-off-by: Alexandre Belloni Signed-off-by: Felipe Balbi commit f584fa8c1fdc289f23f4948bd58f4e2281fb5ad5 Author: Alexandre Belloni Date: Tue Apr 9 14:09:06 2019 +0200 usb: gadget: udc: lpc32xx: properly setup phy interrupts Only INT_VBUS_VLD is set to generate ATX interrupts on the phy but INT_SESS_VLD is checked in vbus_work. This leads to cases where hot-plugging USB doesn't work after boot. Signed-off-by: Alexandre Belloni Signed-off-by: Felipe Balbi commit 59a9901ec7ef320a82cd6d8983937aed739c9e94 Author: Alexandre Belloni Date: Tue Apr 9 14:09:05 2019 +0200 usb: gadget: udc: lpc32xx: simplify vbus handling Use a threaded IRQ to handle vbus_work instead of using the global worqueue. Signed-off-by: Alexandre Belloni Signed-off-by: Felipe Balbi commit 408b56ca5c8eea1e46d2094818de8acc7215cf58 Author: Alexandre Belloni Date: Tue Apr 9 14:09:04 2019 +0200 usb: gadget: udc: lpc32xx: simplify probe Simplify .probe and .remove by using devm managed allocations and requests. Signed-off-by: Alexandre Belloni Signed-off-by: Felipe Balbi commit 1e868545f2bb06f7dd4a1c97c5b9ed2615929cf0 Author: Jules Maselbas Date: Fri Apr 5 15:35:33 2019 +0200 usb: dwc2: gadget: Move gadget phy init into core phy init Most of the phy initialization is shared between host and gadget, this adds the turnaround configuration only used by gadgets to the global phy init. Acked-by: Minas Harutyunyan Signed-off-by: Jules Maselbas Signed-off-by: Felipe Balbi commit 059d8d528718407435216251eff8b49935b92b34 Author: Jules Maselbas Date: Fri Apr 5 15:35:32 2019 +0200 usb: dwc2: Move phy init into core As the phy initialization is almost the same in host and gadget mode. This only move the phy initialization functions into core.c for now, the goal is to share theses functions between the two modes. Acked-by: Minas Harutyunyan Signed-off-by: Jules Maselbas Signed-off-by: Felipe Balbi commit 707d80f0a3c5fb58e61404277f6b103955fac294 Author: Jules Maselbas Date: Fri Apr 5 15:35:31 2019 +0200 usb: dwc2: gadget: Replace phyif with phy_utmi_width The phy utmi width information is already set in hsotg params, phyif is only used in few places and I don't see any reason to not use hsotg's params. Moreover the utmi width was being forced to 16 bits by platform initialization which doesn't take in account HW configuration. Acked-by: Minas Harutyunyan Signed-off-by: Jules Maselbas Signed-off-by: Felipe Balbi commit fb26b553bf2627ff96c38236daab0138a82c613a Author: Jules Maselbas Date: Fri Apr 5 15:35:30 2019 +0200 usb: dwc2: gadget: Remove duplicated phy init The function dwc2_hsotg_init is only called once just before calling dwc2_hsotg_core_init_disconnected which does the same initialization: setting the usbcfg register with turnaround time, timeout calibration and phy width. Acked-by: Minas Harutyunyan Signed-off-by: Jules Maselbas Signed-off-by: Felipe Balbi commit a89bae709b3492b478480a2c9734e7e9393b279c Author: Jules Maselbas Date: Fri Apr 5 15:35:29 2019 +0200 usb: dwc2: Move UTMI_PHY_DATA defines closer Makes GHWCFG4_UTMI_PHY_DATA* defines closer to their relative shift and mask defines to improve readability. Acked-by: Minas Harutyunyan Signed-off-by: Jules Maselbas Signed-off-by: Felipe Balbi commit 5bdd614d65e314ac1530f9462c3ab955f3d3302b Author: Douglas Anderson Date: Tue Apr 16 14:53:51 2019 -0700 ARM: dts: rockchip: Add quirk for resetting rk3288's dwc2 host on wakeup The "host" USB port on rk3288 has a hardware errata where we've got to assert a PHY reset whenever we see a remote wakeup. Add that quirk property to the device tree. Signed-off-by: Douglas Anderson Reviewed-by: Matthias Kaehlcke Signed-off-by: Felipe Balbi commit d17aa2d262e8574a8c6befb5b6470d1c32875cf8 Author: Douglas Anderson Date: Tue Apr 16 14:53:50 2019 -0700 ARM: dts: rockchip: Hook resets up to USB PHYs on rk3288. Let's hook up the resets to the three USB PHYs on rk3288 as per the bindings. This is in preparation for a future patch that will set the "snps,reset-phy-on-wake" on the host port. Signed-off-by: Douglas Anderson Signed-off-by: Felipe Balbi commit c40cf7705e13d288d900e044c0a2f756e9e4909a Author: Douglas Anderson Date: Tue Apr 16 14:53:49 2019 -0700 usb: dwc2: optionally assert phy reset when waking up On the rk3288 USB host-only port (the one that's not the OTG-enabled port) the PHY can get into a bad state when a wakeup is asserted (not just a wakeup from full system suspend but also a wakeup from autosuspend). We can get the PHY out of its bad state by asserting its "port reset", but unfortunately that seems to assert a reset onto the USB bus so it could confuse things if we don't actually deenumerate / reenumerate the device. We can also get the PHY out of its bad state by fully resetting it using the reset from the CRU (clock reset unit), which does a more full reset. The CRU-based reset appears to actually cause devices on the bus to be removed and reinserted, which fixes the problem (albeit in a hacky way). It's unfortunate that we need to do a full re-enumeration of devices at wakeup time, but this is better than alternative of letting the bus get wedged. Signed-off-by: Douglas Anderson Signed-off-by: Yunzhi Li Signed-off-by: Felipe Balbi commit cc389eaabd7082a14e46aaa5a02f87c9eef37d7f Author: Douglas Anderson Date: Tue Apr 16 14:53:48 2019 -0700 dt-bindings: usb: dwc2: Document quirk to reset PHY upon wakeup On Rockchip rk3288 there's a hardware quirk where we need to assert the reset signal to the PHY when we get a remote wakeup on one of the two ports. Document this quirk in the bindings. Signed-off-by: Douglas Anderson Reviewed-by: Matthias Kaehlcke Signed-off-by: Felipe Balbi commit 86847dca8b8bd6145f41986399b4b882a6b55623 Author: Martin Blumenstingl Date: Wed Mar 6 22:24:31 2019 +0100 dt-bindings: usb: dwc2: document the vbus-supply property Various boards have an external VBUS supply regulator. This regulator depends on the current mode of the controller which is defined as: - dr_mode set to either "host" or "peripheral" (fixed value) - dr_mode set to "otg", based on the OTG status the dwc2 controller internally switches between "host" and "peripheral" mode (selection happens at runtime) Based on the current mode the regulator has to be enabled or disabled: - host: provide power to the connected USB device, thus the regulator has to be enabled - peripheral: the host device to which the controller is connected provides power, thus the regulator has to be disabled Add the dt-bindings documentation for this property so .dts authors know that this property exists and how it behaves. Fixes: 531ef5ebea9639 ("usb: dwc2: add support for host mode external vbus supply") Acked-by: Rob Herring Signed-off-by: Martin Blumenstingl Signed-off-by: Felipe Balbi commit de497f634609aa1710fef4b6d833a037120369cc Author: Alan Stern Date: Mon Apr 15 13:35:46 2019 -0400 USB: UDC: net22{80,72}: remove mistaken test of req->zero The net2280 UDC driver (and also net2272, probably via copy-and-paste) incorrectly checks the req->zero flag during OUT transfers, after copying data from the UDC's FIFO into memory. This makes no sense at all; the "zero" flag indicates that an extra zero-length packet should be appended to an IN transfer if the length is an even multiple of the maxpacket size. It has nothing to do with OUT transfers. In practice this doesn't cause any problems because gadget drivers never set req->zero for OUT transfers anyway. Still, it is an error and unnecessary code, so this patch removes the check. Signed-off-by: Alan Stern Signed-off-by: Felipe Balbi commit 6574abe69946589bf0f69cf9b32f6a2c71ae764f Author: Alan Stern Date: Mon Apr 15 13:36:58 2019 -0400 USB: UDC: net2280: Remove redundant "if" condition The net2280 driver includes an unnecessary test for an endpoint's queue being empty. The test is redundant; it sits inside a conditional block of an "if" statement which already tests the endpoint's queue. This patch removes the redundant test. Signed-off-by: Alan Stern Signed-off-by: Felipe Balbi commit 2100e3ca3676e894fa48b8f6f01d01733387fe81 Author: Arnd Bergmann Date: Tue Apr 16 14:25:32 2019 +0200 usb: gadget: fsl: fix link error against usb-gadget module The dependency to ensure this driver links correctly fails since it can not be a loadable module: drivers/usb/phy/phy-fsl-usb.o: In function `fsl_otg_set_peripheral': phy-fsl-usb.c:(.text+0x2224): undefined reference to `usb_gadget_vbus_disconnect' Make the option 'tristate' so it can work correctly. Fixes: 5a8d651a2bde ("usb: gadget: move gadget API functions to udc-core") Signed-off-by: Arnd Bergmann Signed-off-by: Felipe Balbi commit 793409292382027226769d0299987f06cbd97a6e Author: Romain Izard Date: Tue Apr 16 16:07:32 2019 +0200 usb: gadget: f_ncm: Add OS descriptor support To be able to use the default USB class drivers available in Microsoft Windows, we need to add OS descriptors to the exported USB gadget to tell the OS that we are compatible with the built-in drivers. Copy the OS descriptor support from f_rndis into f_ncm. As a result, using the WINNCM compatible ID, the UsbNcm driver is loaded on enumeration without the need for a custom driver or inf file. Signed-off-by: Romain Izard Signed-off-by: Felipe Balbi commit 550eef0c353030ac4223b9c9479bdf77a05445d6 Author: Romain Izard Date: Tue Apr 16 16:07:31 2019 +0200 usb: gadget: f_ncm: Fix NTP-32 support When connecting a CDC-NCM gadget to an host that uses the NTP-32 mode, or that relies on the default CRC setting, the current implementation gets confused, and does not expect the correct signature for its packets. Fix this, by ensuring that the ndp_sign member in the f_ncm structure always contain a valid value. Signed-off-by: Romain Izard Signed-off-by: Felipe Balbi commit 60722c4eefbc9acddaf5e641f6dfb24bce930f9a Author: Chunfeng Yun Date: Wed Apr 17 16:28:19 2019 +0800 usb: dwc2: get optional clock by devm_clk_get_optional() When the driver tries to get optional clock, it ignores all errors, but if only ignores -ENOENT, it will cover some real errors, such as -EPROBE_DEFER, so use devm_clk_get_optional() to get optional clock. Cc: Minas Harutyunyan Signed-off-by: Chunfeng Yun Acked-by: Minas Harutyunyan Signed-off-by: Felipe Balbi commit 466375657d6c5987f2f2404c75b7081ede14cff4 Author: Minas Harutyunyan Date: Thu Apr 18 15:40:43 2019 +0400 usb: dwc2: gadget: Reject LPM token during Control transfers Avoiding switch to L1 state in any stage of control transfers. Send NYET handshake to LPM token. Renamed GLPMCFG_LPM_ACCEPT_CTRL_ISOC to GLPMCFG_LPM_REJECT_CTRL_CONTROL because by setting this bit core reject LPM token. Signed-off-by: Minas Harutyunyan Signed-off-by: Felipe Balbi commit 7a6127e39a16c97b505f13352238567fdc3f79a2 Author: Douglas Anderson Date: Wed Apr 17 17:13:53 2019 -0700 USB: Export usb_wakeup_enabled_descendants() In (e583d9d USB: global suspend and remote wakeup don't mix) we introduced wakeup_enabled_descendants() as a static function. We'd like to use this function in USB controller drivers to know if we should keep the controller on during suspend time, since doing so has a power impact. Signed-off-by: Douglas Anderson Signed-off-by: Felipe Balbi commit 6f6d70597c15b2a406afa541517e6ad35f56a8a3 Author: Douglas Anderson Date: Wed Apr 17 17:13:52 2019 -0700 usb: dwc2: bus suspend/resume for hosts with DWC2_POWER_DOWN_PARAM_NONE This is an attempt to rehash commit 0cf884e819e0 ("usb: dwc2: add bus suspend/resume for dwc2") on ToT. That commit was reverted in commit b0bb9bb6ce01 ("Revert "usb: dwc2: add bus suspend/resume for dwc2"") because apparently it broke the Altera SOCFPGA. With all the changes that have happened to dwc2 in the meantime, it's possible that the Altera SOCFPGA will just magically work with this change now. ...and it would be good to get bus suspend/resume implemented. This change is a forward port of one that's been living in the Chrome OS 3.14 kernel tree. Signed-off-by: Douglas Anderson Signed-off-by: Felipe Balbi commit c99993376f72ca3dcc989813512607c6435cbed8 Author: Neil Armstrong Date: Tue Apr 23 10:51:27 2019 +0200 usb: dwc3: Add Amlogic G12A DWC3 glue Adds support for Amlogic G12A USB Control Glue HW. The Amlogic G12A SoC Family embeds 2 USB Controllers : - a DWC3 IP configured as Host for USB2 and USB3 - a DWC2 IP configured as Peripheral USB2 Only A glue connects these both controllers to 2 USB2 PHYs, and optionnally to an USB3+PCIE Combo PHY shared with the PCIE controller. The Glue configures the UTMI 8bit interfaces for the USB2 PHYs, including routing of the OTG PHY between the DWC3 and DWC2 controllers, and setups the on-chip OTG mode selection for this PHY. This drivers supports the on-probe setup of the OTG mode, and manually via a debugfs interface. The IRQ mode change detect is yet to be added in a future patchset, mainly due to lack of hardware to validate on. Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Signed-off-by: Felipe Balbi commit fc4e326ee72cc36c942333c65d851247b31c567b Author: Neil Armstrong Date: Tue Apr 23 10:51:26 2019 +0200 usb: dwc2: Add Amlogic G12A DWC2 Params This patchs sets the params for the DWC2 Controller found in the Amlogic G12A SoC family. It mainly sets the settings reported incorrect by the driver, leaving the remaining detected automatically by the driver and provided by the DT node. Signed-off-by: Neil Armstrong Acked-by: Minas Harutyunyan Signed-off-by: Felipe Balbi commit e8c77fa091808c7e27ad15c7256743b6c2406b02 Author: Neil Armstrong Date: Tue Apr 23 10:51:25 2019 +0200 dt-bindings: usb: dwc3: Add Amlogic G12A DWC3 Glue Bindings Adds the bindings for the Amlogic G12A USB Glue HW. The Amlogic G12A SoC Family embeds 2 USB Controllers : - a DWC3 IP configured as Host for USB2 and USB3 - a DWC2 IP configured as Peripheral USB2 Only A glue connects these both controllers to 2 USB2 PHYs, and optionnally to an USB3+PCIE Combo PHY shared with the PCIE controller. The Glue configures the UTMI 8bit interfaces for the USB2 PHYs, including routing of the OTG PHY between the DWC3 and DWC2 controllers, and setups the on-chip OTG mode selection for this PHY. The PHYs phandles are passed to the Glue node since the Glue controls the interface with the PHY, not the DWC3 controller. Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Reviewed-by: Rob Herring Signed-off-by: Felipe Balbi commit 7a76b97325c2cc6c6599a2b3b15d32aebf2f48ee Author: Neil Armstrong Date: Tue Apr 23 10:51:24 2019 +0200 dt-bindings: usb: dwc2: Add Amlogic G12A DWC2 Compatible Adds the specific compatible string for the DWC2 IP found in the Amlogic G12A SoC Family. Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Reviewed-by: Rob Herring Signed-off-by: Felipe Balbi commit 50896c410354432e8e7baf97fcdd7df265e683ae Author: Alan Stern Date: Thu Apr 18 13:12:07 2019 -0400 USB: dummy-hcd: Fix failure to give back unlinked URBs The syzkaller USB fuzzer identified a failure mode in which dummy-hcd would never give back an unlinked URB. This causes usb_kill_urb() to hang, leading to WARNINGs and unkillable threads. In dummy-hcd, all URBs are given back by the dummy_timer() routine as it scans through the list of pending URBS. Failure to give back URBs can be caused by failure to start or early exit from the scanning loop. The code currently has two such pathways: One is triggered when an unsupported bus transfer speed is encountered, and the other by exhausting the simulated bandwidth for USB transfers during a frame. This patch removes those two paths, thereby allowing all unlinked URBs to be given back in a timely manner. It adds a check for the bus speed when the gadget first starts running, so that dummy_timer() will never thereafter encounter an unsupported speed. And it prevents the loop from exiting as soon as the total bandwidth has been used up (the scanning loop continues, giving back unlinked URBs as they are found, but not transferring any more data). Thanks to Andrey Konovalov for manually running the syzkaller fuzzer to help track down the source of the bug. Signed-off-by: Alan Stern Reported-and-tested-by: syzbot+d919b0f29d7b5a4994b9@syzkaller.appspotmail.com CC: Signed-off-by: Felipe Balbi commit 67130830ce420b54490ec69a775528afdaef6a54 Author: Marc Gonzalez Date: Wed Apr 24 17:00:57 2019 +0200 usb: dwc3: Allow building USB_DWC3_QCOM without EXTCON Keep EXTCON support optional, as some platforms do not need it. Do the same for USB_DWC3_OMAP while we're at it. Fixes: 3def4031b3e3f ("usb: dwc3: add EXTCON dependency for qcom") Signed-off-by: Marc Gonzalez Signed-off-by: Felipe Balbi commit 73103c7f958b99561555c3bd1bc1a0809e0b7d61 Author: Fei Yang Date: Tue Mar 19 22:32:20 2019 -0700 usb: gadget: f_fs: don't free buffer prematurely The following kernel panic happens due to the io_data buffer gets deallocated before the async io is completed. Add a check for the case where io_data buffer should be deallocated by ffs_user_copy_worker. [ 41.663334] BUG: unable to handle kernel NULL pointer dereference at 0000000000000048 [ 41.672099] #PF error: [normal kernel read fault] [ 41.677356] PGD 20c974067 P4D 20c974067 PUD 20c973067 PMD 0 [ 41.683687] Oops: 0000 [#1] PREEMPT SMP [ 41.687976] CPU: 1 PID: 7 Comm: kworker/u8:0 Tainted: G U 5.0.0-quilt-2e5dc0ac-00790-gd8c79f2-dirty #2 [ 41.705309] Workqueue: adb ffs_user_copy_worker [ 41.705316] RIP: 0010:__vunmap+0x2a/0xc0 [ 41.705318] Code: 0f 1f 44 00 00 48 85 ff 0f 84 87 00 00 00 55 f7 c7 ff 0f 00 00 48 89 e5 41 55 41 89 f5 41 54 53 48 89 fb 75 71 e8 56 d7 ff ff <4c> 8b 60 48 4d 85 e4 74 76 48 89 df e8 25 ff ff ff 45 85 ed 74 46 [ 41.705320] RSP: 0018:ffffbc3a40053df0 EFLAGS: 00010286 [ 41.705322] RAX: 0000000000000000 RBX: ffffbc3a406f1000 RCX: 0000000000000000 [ 41.705323] RDX: 0000000000000001 RSI: 0000000000000001 RDI: 00000000ffffffff [ 41.705324] RBP: ffffbc3a40053e08 R08: 000000000001fb79 R09: 0000000000000037 [ 41.705325] R10: ffffbc3a40053b68 R11: ffffbc3a40053cad R12: fffffffffffffff2 [ 41.705326] R13: 0000000000000001 R14: 0000000000000000 R15: ffffffffffffffff [ 41.705328] FS: 0000000000000000(0000) GS:ffff9e2977a80000(0000) knlGS:0000000000000000 [ 41.705329] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 41.705330] CR2: 0000000000000048 CR3: 000000020c994000 CR4: 00000000003406e0 [ 41.705331] Call Trace: [ 41.705338] vfree+0x50/0xb0 [ 41.705341] ffs_user_copy_worker+0xe9/0x1c0 [ 41.705344] process_one_work+0x19f/0x3e0 [ 41.705348] worker_thread+0x3f/0x3b0 [ 41.829766] kthread+0x12b/0x150 [ 41.833371] ? process_one_work+0x3e0/0x3e0 [ 41.838045] ? kthread_create_worker_on_cpu+0x70/0x70 [ 41.843695] ret_from_fork+0x3a/0x50 [ 41.847689] Modules linked in: hci_uart bluetooth ecdh_generic rfkill_gpio dwc3_pci dwc3 snd_usb_audio mei_me tpm_crb snd_usbmidi_lib xhci_pci xhci_hcd mei tpm snd_hwdep cfg80211 snd_soc_skl snd_soc_skl_ipc snd_soc_sst_ipc snd_soc_sst_dsp snd_hda_ext_core snd_hda_core videobuf2_dma_sg crlmodule [ 41.876880] CR2: 0000000000000048 [ 41.880584] ---[ end trace 2bc4addff0f2e673 ]--- [ 41.891346] RIP: 0010:__vunmap+0x2a/0xc0 [ 41.895734] Code: 0f 1f 44 00 00 48 85 ff 0f 84 87 00 00 00 55 f7 c7 ff 0f 00 00 48 89 e5 41 55 41 89 f5 41 54 53 48 89 fb 75 71 e8 56 d7 ff ff <4c> 8b 60 48 4d 85 e4 74 76 48 89 df e8 25 ff ff ff 45 85 ed 74 46 [ 41.916740] RSP: 0018:ffffbc3a40053df0 EFLAGS: 00010286 [ 41.922583] RAX: 0000000000000000 RBX: ffffbc3a406f1000 RCX: 0000000000000000 [ 41.930563] RDX: 0000000000000001 RSI: 0000000000000001 RDI: 00000000ffffffff [ 41.938540] RBP: ffffbc3a40053e08 R08: 000000000001fb79 R09: 0000000000000037 [ 41.946520] R10: ffffbc3a40053b68 R11: ffffbc3a40053cad R12: fffffffffffffff2 [ 41.954502] R13: 0000000000000001 R14: 0000000000000000 R15: ffffffffffffffff [ 41.962482] FS: 0000000000000000(0000) GS:ffff9e2977a80000(0000) knlGS:0000000000000000 [ 41.971536] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 41.977960] CR2: 0000000000000048 CR3: 000000020c994000 CR4: 00000000003406e0 [ 41.985930] Kernel panic - not syncing: Fatal exception [ 41.991817] Kernel Offset: 0x16000000 from 0xffffffff81000000 (relocation range: 0xffffffff80000000-0xffffffffbfffffff) [ 42.009525] Rebooting in 10 seconds.. [ 52.014376] ACPI MEMORY or I/O RESET_REG. Fixes: 772a7a724f69 ("usb: gadget: f_fs: Allow scatter-gather buffers") Signed-off-by: Fei Yang Reviewed-by: Manu Gautam Tested-by: John Stultz Signed-off-by: Felipe Balbi commit fd2f02f9724c416221b42af95e1a7a57fa42d681 Author: Axel Lin Date: Fri May 3 13:36:37 2019 +0800 regulator: da9xxx: Switch to SPDX identifier Convert Dialog Semiconductor DA9xxx regulator drivers to SPDX identifier. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 311a68a51a58bfdead971080d41a34ca565b47a0 Author: Axel Lin Date: Tue Apr 30 19:13:46 2019 +0800 regulator: stm32-pwr: Remove unneeded .min_uV and .list_volage For fixed regulator, setting .n_voltages = 1 and .fixed_uV is enough, no need to set .min_uV and .list_volage. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 7bcbdbe01fa82712f8fece2a07ea30758b76403d Author: Axel Lin Date: Tue Apr 30 19:13:45 2019 +0800 regulator: stm32-pwr: Remove unneeded *desc from struct stm32_pwr_reg Just use rdev->desc instead. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit e219c2b3dc773a5a78f88ada9e07e281a9dad06b Author: Axel Lin Date: Thu May 2 22:22:33 2019 +0800 regulator: ab3100: Set fixed_uV instead of min_uV for fixed regulators Slightly better readability by setting fixed_uV instead of min_uV. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 95602d7d77f502d656e648ab38f8e0586364e7dc Author: Axel Lin Date: Thu May 2 22:22:32 2019 +0800 regulator: ab3100: Constify regulator_ops and ab3100_regulator_desc These regulator_ops variables and ab3100_regulator_desc array never need to be modified, make them const so compiler can put them to .rodata. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 0ae3b061df3037e887ee6085b0bedea7f8809441 Author: Axel Lin Date: Fri May 3 13:36:36 2019 +0800 regulator: pv880x0: Switch to SPDX identifier Convert Powerventure Semiconductor PV88060/PV88080/PV88090 regulator drivers to SPDX identifier. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit f70abd75b7c6c04d3219d0b3a0f3f15411b042fb Author: Bard liao Date: Tue Apr 30 17:37:44 2019 -0500 ASoC: Intel: add sof-rt5682 machine driver The machine driver is a generic machine driver for SOF with rt5682 codec. it currently supports BYT/CHT/ICL/CML. Depending on the SOC hdmi/speaker and DMIC support are added dynamically. Only add information related to SOF since the machine driver was only tested with SOF. Signed-off-by: Sathya Prakash M R Signed-off-by: Bard liao Signed-off-by: Ranjani Sridharan Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 6dd5055f1d320399f5319326ab9051fa33873933 Author: Rander Wang Date: Tue Apr 30 17:37:43 2019 -0500 ASoC: Intel: skl_hda_dsp_generic:refine code style Semicolon is better than comma. Signed-off-by: Rander Wang Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit e59f755ceb6d6f39f90899d2a4e39c3e05837e12 Author: Gilad Ben-Yossef Date: Sun Apr 28 11:33:22 2019 +0300 crypto: ccree - use a proper le32 type for le32 val We build an explicit little endian value from the IDR register values. Use a proper le32 type to mark the var as such to satisfy Sparse. Signed-off-by: Gilad Ben-Yossef Reported-by: kbuild test robot Fixes: dcf6285d18ea1 ("crypto: ccree - add CID and PID support") Signed-off-by: Herbert Xu commit 2b131b5a25f5917028714fd708a3ca3916683e48 Author: Rander Wang Date: Tue Apr 30 17:37:42 2019 -0500 ASoC: Intel: skl_hda_dsp_generic: add DMIC support Add dmic dai links using naming conventions used in previous machine drivers. Tested on whiskylake & icelake with SOF driver. Due to a missing topology file, the DMIC functionality could not be tested with the Skylake driver but was tested for non-regressions on a GeminiLake platform without DMICs. Signed-off-by: Rander Wang Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 50af32727509a36fc9bbb370c6f6cb14a961dc97 Author: YueHaibing Date: Sun Apr 28 16:28:27 2019 +0800 crypto: ccree - remove set but not used variable 'du_size' Fixes gcc '-Wunused-but-set-variable' warning: drivers/crypto/ccree/cc_cipher.c: In function cc_setup_key_desc: drivers/crypto/ccree/cc_cipher.c:645:15: warning: variable du_size set but not used [-Wunused-but-set-variable] It is never used since introduction in commit dd8486c75085 ("crypto: ccree - move key load desc. before flow desc.") Signed-off-by: YueHaibing Signed-off-by: Herbert Xu commit 181a9096717b8d2128eb1162d07a4f4ee0f9f4b8 Author: YueHaibing Date: Sat Apr 27 00:43:13 2019 +0800 crypto: ccree - Make cc_sec_disable static Fix sparse warning: drivers/crypto/ccree/cc_driver.c:37:6: warning: symbol 'cc_sec_disable' was not declared. Should it be static? Signed-off-by: YueHaibing Signed-off-by: Herbert Xu commit 22e2db68e809eebe5e44315c5f8184da22ec2822 Author: Colin Ian King Date: Fri Apr 26 14:18:35 2019 +0100 crypto: ccree - fix spelling mistake "protedcted" -> "protected" There is a spelling mistake in a dev_dbg message, fix it. Signed-off-by: Colin Ian King Acked-By: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit 418cd20e4dcdca97e6f6d59e6336228dacf2e45d Author: Horia Geantă Date: Thu Apr 25 17:52:23 2019 +0300 crypto: caam/qi2 - generate hash keys in-place Commit 307244452d3d ("crypto: caam - generate hash keys in-place") fixed ahash implementation in caam/jr driver such that user-provided key buffer is not DMA mapped, since it's not guaranteed to be DMAable. Apply a similar fix for caam/qi2 driver. Cc: # v4.20+ Fixes: 3f16f6c9d632 ("crypto: caam/qi2 - add support for ahash algorithms") Signed-off-by: Horia Geantă Signed-off-by: Herbert Xu commit 5965dc745287bebf7a2eba91a66f017537fa4c54 Author: Horia Geantă Date: Thu Apr 25 17:52:22 2019 +0300 crypto: caam/qi2 - fix DMA mapping of stack memory Commits c19650d6ea99 ("crypto: caam - fix DMA mapping of stack memory") and 65055e210884 ("crypto: caam - fix hash context DMA unmap size") fixed the ahash implementation in caam/jr driver such that req->result is not DMA-mapped (since it's not guaranteed to be DMA-able). Apply a similar fix for ahash implementation in caam/qi2 driver. Cc: # v4.20+ Fixes: 3f16f6c9d632 ("crypto: caam/qi2 - add support for ahash algorithms") Signed-off-by: Horia Geantă Signed-off-by: Herbert Xu commit 07586d3ddf284dd7a1a6579579d8efa7296fe60f Author: Horia Geantă Date: Thu Apr 25 17:52:21 2019 +0300 crypto: caam/qi2 - fix zero-length buffer DMA mapping Commit 04e6d25c5bb2 ("crypto: caam - fix zero-length buffer DMA mapping") fixed an issue in caam/jr driver where ahash implementation was DMA mapping a zero-length buffer. Current commit applies a similar fix for caam/qi2 driver. Cc: # v4.20+ Fixes: 3f16f6c9d632 ("crypto: caam/qi2 - add support for ahash algorithms") Signed-off-by: Horia Geantă Signed-off-by: Herbert Xu commit 5f49f18d27cd6d49c52f2805cd79c2362710a2e9 Author: Lionel Debieve Date: Wed Apr 24 15:34:53 2019 +0200 crypto: stm32/cryp - update to return iv_out The kernel crypto API request output the next IV data to IV buffer for CBC implementation. Signed-off-by: Lionel Debieve Signed-off-by: Herbert Xu commit 29aed438e8702096a2dda3c5aed88e9176656be7 Author: Lionel Debieve Date: Wed Apr 24 15:34:52 2019 +0200 crypto: stm32/cryp - remove request mutex protection Mutex is badly used between threaded irq and driver. This mutex must be removed as the framework must ensure that requests must be serialized to avoid issue. Rework req to avoid crash during finalize by fixing the NULL pointer issue. Signed-off-by: Lionel Debieve Signed-off-by: Herbert Xu commit 7ee27f5a3f8020124017624c010e9a8473bfbb14 Author: Lionel Debieve Date: Wed Apr 24 15:34:51 2019 +0200 crypto: stm32/cryp - add weak key check for DES Add weak key test for des functions calling the generic des_ekey. Signed-off-by: Lionel Debieve Signed-off-by: Herbert Xu commit 6bbc3936a4559590567ba902f817907576fe34d0 Author: YueHaibing Date: Wed Apr 24 15:53:52 2019 +0800 crypto: atmel - remove set but not used variable 'alg_name' Fixes gcc '-Wunused-but-set-variable' warning: drivers/crypto/atmel-tdes.c: In function 'atmel_tdes_setkey': drivers/crypto/atmel-tdes.c:803:14: warning: variable 'alg_name' set but not used [-Wunused-but-set-variable] It is not used any more since commit 52ea3cd2917b ("crypto: atmel - Forbid 2-key 3DES in FIPS mode") Signed-off-by: YueHaibing Reviewed-by: Nicolas Ferre Reviewed-by: Tudor Ambarus Signed-off-by: Herbert Xu commit 0e4c61011417b68dd1d81f1820d11cd127dee9ac Author: Kefeng Wang Date: Tue Apr 23 15:49:57 2019 +0800 crypto: picoxcell - Use dev_get_drvdata() Using dev_get_drvdata directly. Cc: Jamie Iles Cc: Herbert Xu Cc: "David S. Miller" Cc: linux-crypto@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Kefeng Wang Signed-off-by: Herbert Xu commit 38cf5533d7a876f75088bacc1277046f30005f28 Author: Christian Lamparter Date: Mon Apr 22 13:26:01 2019 +0200 crypto: crypto4xx - get rid of redundant using_sd variable using_sd is used as a stand-in for sa_command_0.bf.scatter that we need to set anyway, so we might as well just prevent double-accounting. Signed-off-by: Christian Lamparter Signed-off-by: Herbert Xu commit 9848e4c873c1cae019bbef4ab3a500a05ca59fe6 Author: Christian Lamparter Date: Mon Apr 22 13:26:00 2019 +0200 crypto: crypto4xx - use sync skcipher for fallback This replaces struct crypto_skcipher and the extra request size with struct crypto_sync_skcipher and SYNC_SKCIPHER_REQUEST_ON_STACK(), which uses a fixed stack size. Signed-off-by: Christian Lamparter Signed-off-by: Herbert Xu commit 7e92e1717e3eaf6b322c252947c696b3059f05be Author: Christian Lamparter Date: Mon Apr 22 13:25:59 2019 +0200 crypto: crypto4xx - fix cfb and ofb "overran dst buffer" issues Currently, crypto4xx CFB and OFB AES ciphers are failing testmgr's test vectors. |cfb-aes-ppc4xx encryption overran dst buffer on test vector 3, cfg="in-place" |ofb-aes-ppc4xx encryption overran dst buffer on test vector 1, cfg="in-place" This is because of a very subtile "bug" in the hardware that gets indirectly mentioned in 18.1.3.5 Encryption/Decryption of the hardware spec: the OFB and CFB modes for AES are listed there as operation modes for >>> "Block ciphers" <<<. Which kind of makes sense, but we would like them to be considered as stream ciphers just like the CTR mode. To workaround this issue and stop the hardware from causing "overran dst buffer" on crypttexts that are not a multiple of 16 (AES_BLOCK_SIZE), we force the driver to use the scatter buffers as the go-between. As a bonus this patch also kills redundant pd_uinfo->num_gd and pd_uinfo->num_sd setters since the value has already been set before. Cc: stable@vger.kernel.org Fixes: f2a13e7cba9e ("crypto: crypto4xx - enable AES RFC3686, ECB, CFB and OFB offloads") Signed-off-by: Christian Lamparter Signed-off-by: Herbert Xu commit 25baaf8e2c93197d063b372ef7b62f2767c7ac0b Author: Christian Lamparter Date: Mon Apr 22 13:25:58 2019 +0200 crypto: crypto4xx - fix ctr-aes missing output IV Commit 8efd972ef96a ("crypto: testmgr - support checking skcipher output IV") caused the crypto4xx driver to produce the following error: | ctr-aes-ppc4xx encryption test failed (wrong output IV) | on test vector 0, cfg="in-place" This patch fixes this by reworking the crypto4xx_setkey_aes() function to: - not save the iv for ECB (as per 18.2.38 CRYP0_SA_CMD_0: "This bit mut be cleared for DES ECB mode or AES ECB mode, when no IV is used.") - instruct the hardware to save the generated IV for all other modes of operations that have IV and then supply it back to the callee in pretty much the same way as we do it for cbc-aes already. - make it clear that the DIR_(IN|OUT)BOUND is the important bit that tells the hardware to encrypt or decrypt the data. (this is cosmetic - but it hopefully prevents me from getting confused again). - don't load any bogus hash when we don't use any hash operation to begin with. Cc: stable@vger.kernel.org Fixes: f2a13e7cba9e ("crypto: crypto4xx - enable AES RFC3686, ECB, CFB and OFB offloads") Signed-off-by: Christian Lamparter Signed-off-by: Herbert Xu commit dc20e5f315e1967f3d1abb4ede8594cf51bdda47 Author: Pan Xiuli Date: Tue Apr 30 18:09:34 2019 -0500 ASoC: SOF: Intel: CNL: add ipc dump function Add ipc dump function to CNL+ platforms. Signed-off-by: Pan Xiuli Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit f3da49f055dc55825984c9218fe06b913837cb13 Author: Pan Xiuli Date: Tue Apr 30 18:09:33 2019 -0500 ASoC: SOF: Intel: APL: add ipc dump function Add IPC dump function for APL plaform Signed-off-by: Pan Xiuli Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 5e4a27fda2c8f1796fb673e72ae5dfc51675a785 Author: Pan Xiuli Date: Tue Apr 30 18:09:32 2019 -0500 ASoC: SOF: IPC: add ipc dump function Dump IPC status when IPC timed out. IPC status is platform specific and need bind to plaform. Signed-off-by: Pan Xiuli Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit ed3baacd76baa045fe101ce04a9e46d48c188495 Author: Ranjani Sridharan Date: Tue Apr 30 18:09:31 2019 -0500 ASoC: SOF: intel: hda: add hw_params_upon_resume flag for hda stream The prepare() ioctl for BE dai link gets called both when the stream is started and when it is resumed from suspend. SOF uses this ioctl to set the hw params again only if the stream has been suspended. When the stream is started, the hw_params ioctl gets called before prepare() and hw_params is set for the BE dai link. So the prepare call does not need to do anything further. When the stream resumes after system suspend, SOF requires that the hw_params be set again for the BE dai. In order to determine which streams should set the hw params during prepare(), an internal flag called "hw_params_upon_resume" is introduced in struct sof_intel_hda_stream. The flag is set for hda streams when the sof device suspends and is cleared after hw_params is set. Signed-off-by: Ranjani Sridharan Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 20d0aff739bed801bbe67ebed8012f3d9849b29d Author: Keyon Jie Date: Tue Apr 30 18:09:30 2019 -0500 ASoC: SOF: Intel: hda-stream: handle real stream interrupts only The stream and IPC share the same interrupt. The stream interrupt handler mistakenly uses the ipc interrupt and return IRQ_HANDLED, causing the ipc interrupt to be missed. Make sure the stream interrupt handler only deals with stream-related interrupts. Signed-off-by: Keyon Jie Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit deb55e40ced4109c53d92af1bc07e1e998979792 Author: Greg Kroah-Hartman Date: Thu May 2 19:35:15 2019 +0200 USB: serial: io_edgeport: fix up switch fall-through comments Gustavo has been working to fix up all of the switch statements that "fall through" such that we can eventually turn on -Wimplicit-fallthrough. As part of that, the io_edgeport.c driver is a bit "messy" with the parsing logic of a data packet. Clean that logic up a bit by unindenting one level of the logic, and properly label /* Fall through */ to make gcc happy. Reported-by: Gustavo A. R. Silva Signed-off-by: Greg Kroah-Hartman Acked-by: Gustavo A. R. Silva Signed-off-by: Johan Hovold commit e8e55dbe08960b714e5ce0148926ee17331ce4d5 Author: Keyon Jie Date: Tue Apr 30 18:09:29 2019 -0500 ASoC: SOF: Intel: hda-stream: store stream capabilities Add stream_max into struct sof_intel_hda_dev to store the total hda stream number that the platform can support, and initialize it at stream_init. This can be used later e.g. for stream bitmask. Signed-off-by: Keyon Jie Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 6d60a39e5b787ddea5def220d6288cbdf6d63eb8 Author: Keyon Jie Date: Tue Apr 30 18:09:28 2019 -0500 ASoC: SOF: Intel: hda-ipc: simplify handling of IPC IRQ When using a shared IRQ between IPC interrupt and stream IOC interrupt, the interrupt handlers need to check the interrupt source before scheduling their respective IRQ threads. In the case of IPC handler, it should check if it is an IPC interrupt before waking up the IPC IRQ thread. The IPC IRQ thread, once scheduled, does not need to check the IRQ source again. So, remove the superfluous check in the thread. Remove the irq_status field from snd_sof_dev struct also as it is no longer needed. Signed-off-by: Keyon Jie Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit ff758e9f73a0fcb93a53349e8fbace4ac019d031 Author: Keyon Jie Date: Tue Apr 30 18:09:27 2019 -0500 ASoC: SOF: ipc: use snd_sof_pcm_period_elapsed Switch to a wrapper function which schedules the actual call of snd_pcm_period_elapsed after the current IPC is completed. Signed-off-by: Keyon Jie Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 8242d53975a95c8c35c5fd0d2c1689b53be07db8 Author: Keyon Jie Date: Tue Apr 30 18:09:26 2019 -0500 ASoC: SOF: Intel: use snd_sof_pcm_period_elapsed Switch to a wrapper function which schedules the actual call of snd_pcm_period_elapsed after the current IPC is completed. Signed-off-by: Keyon Jie Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit e2803e610aecb36ea4fec5a04861547664580d0c Author: Keyon Jie Date: Tue Apr 30 18:09:25 2019 -0500 ASoC: SOF: PCM: add period_elapsed work to fix race condition in interrupt context The IPC implementation in SOF requires sending IPCs serially: we should not send a new IPC command to the firmware before we get an ACK (or time out) from firmware, and the IRQ processing is complete. snd_pcm_period_elapsed() can be called in interrupt context before IRQ_HANDLED is returned. When the PCM is done draining, a STOP IPC will then be sent, which breaks the expectation that IPCs are handled serially and leads to IPC timeouts. This patch adds a workqueue to defer the call to snd_pcm_elapsed() after the IRQ is handled. Signed-off-by: Keyon Jie Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit b0056fda7c8a474bef9bf01368f66caadcdd464c Author: Pierre-Louis Bossart Date: Tue Apr 30 18:09:24 2019 -0500 ASoC: SOF: Intel: hda-pcm: remove useless dependency on hdac_ext Nothing depends on definitions in hdaudio_ext.h, don't include it Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit d1a6459fab4357875ccffa44636c13d8a1291146 Author: Zhu Yingjiang Date: Tue Apr 30 18:09:23 2019 -0500 ASoC: SOF: Intel: hda: set bus->idx as 0 Setting the bus->idx as 0, for we only have one HDA bus atm. This need to be fixed when there are more than one HDA bus. Signed-off-by: Zhu Yingjiang Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 74ed4097f5894a07b515361dd673ad3fadb665b2 Author: Zhu Yingjiang Date: Tue Apr 30 18:09:22 2019 -0500 ASoC: SOF: Intel: hda: set I2S slave before enabling DSP By default, the I2S ports are configured in master mode during DSP powerup sequences, the FS and BCLK lines will be driven on startup, even when the topology file explicitly requires the SSP to be slave. This may be problematic for external components configured in master mode who don't expect the Intel SOC/PCH to drive. Fix by configuring the SSP as slave before the SSP outputs are enabled to avoid this transient behavior. When the topology file configures the SSP as clock master, the initial slave configuration will be overridden. Signed-off-by: Zhu Yingjiang Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit b095fe47bc1e1c3bf114fde7b76a387ee7b16934 Author: Zhu Yingjiang Date: Tue Apr 30 18:09:21 2019 -0500 ASoC: SOF: Intel: hda: add SSP info to the chip info struct add SSP info of APL and CNL, to the sof_intel_dsp_desc structure. The max SSP count the platform support and the SSP base address. Signed-off-by: Zhu Yingjiang Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit df7e0de588252ccb11c2caf320df1dce23219917 Author: Zhu Yingjiang Date: Tue Apr 30 18:09:20 2019 -0500 ASoC: SOF: Intel: hda: add the SSP Host Device memory space The DSP SSP device memory can be conditionally accessed by the host(depending on access policy). Add the SSP base memory offset of APL and CNL. Signed-off-by: Zhu Yingjiang Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit acd1c1883d40d1b03f3b70a82afcab9aa3b94c98 Author: Keyon Jie Date: Tue Apr 30 18:09:19 2019 -0500 ASoC: SOF: Intel: cnl: add pointer ops to use DPIB position Add .pcm_pointer ops for cannonlake to read DPIB/posbuf and get pointer for ALSA, to align with apollolake. Signed-off-by: Keyon Jie Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 8e3a6e45a77bd4167554b4bd0633a2adabf1bd77 Author: Pierre-Louis Bossart Date: Tue Apr 30 18:09:18 2019 -0500 ASoC: SOF: topology: add support for stricter ABI checks Fail early if topology is more recent than kernel and Kconfig is selected. Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 4acb1c2ea42e19101eae4ac9f002853553b8b721 Author: Pierre-Louis Bossart Date: Tue Apr 30 18:09:17 2019 -0500 ASOC: SOF: ipc: add support for stricter ABI checks Fail early if firmware is more recent than kernel and Kconfig is selected. Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 73affae222ec0ffe44d870e0085e55cdbe85d30d Author: Pierre-Louis Bossart Date: Tue Apr 30 18:09:16 2019 -0500 ASoC: SOF: add Kconfig option for strict ABI checks When the kernel is more recent than firmware files, it will always behave in backwards-compatible ways. Add optional behavior to check if the kernel is older than the firmware files, so that the kernel fails early instead of attempting to use new functionality it does not support. Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 0efa3334d65b7f421ba12382dfa58f6ff5bf83c4 Author: Ross Zwisler Date: Mon Apr 29 12:25:17 2019 -0600 ASoC: Intel: avoid Oops if DMA setup fails Currently in sst_dsp_new() if we get an error return from sst_dma_new() we just print an error message and then still complete the function successfully. This means that we are trying to run without sst->dma properly set up, which will result in NULL pointer dereference when sst->dma is later used. This was happening for me in sst_dsp_dma_get_channel(): struct sst_dma *dma = dsp->dma; ... dma->ch = dma_request_channel(mask, dma_chan_filter, dsp); This resulted in: BUG: unable to handle kernel NULL pointer dereference at 0000000000000018 IP: sst_dsp_dma_get_channel+0x4f/0x125 [snd_soc_sst_firmware] Fix this by adding proper error handling for the case where we fail to set up DMA. This change only affects Haswell and Broadwell systems. Baytrail systems explicilty opt-out of DMA via sst->pdata->resindex_dma_base being set to -1. Signed-off-by: Ross Zwisler Cc: stable@vger.kernel.org Acked-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 726fc60babe4a46e946e69a9dbd3e21aaec4d58e Author: Jerome Brunet Date: Mon Apr 29 15:29:40 2019 +0200 ASoC: hdmi-codec: stream is already locked in hw_params startup() should have run before hw_params() is called, so the current_substream pointer should already be properly set. There is no reason to call hdmi_codec_new_stream() again in the hw_params() callback Signed-off-by: Jerome Brunet Signed-off-by: Mark Brown commit c437ba0300cec1ca8758fdd71a3b2f8cd02c6e2a Author: Colin Ian King Date: Thu May 2 12:33:40 2019 +0100 ASoC: SOF: remove redundant null checks of dai Currently there are two null checks of pointer dai in function sof_connect_dai_widget and yet there is no null check of dai at the end of the function when checking !dai->name. The latter would be a null pointer deference if dai is null (as picked up by static analysis), however the function is only ever called when dai is successfully allocated, so the null checks are redundant. Clean up the code by removing the null checks. Addresses-Coverity: ("Dereference after null check") Signed-off-by: Colin Ian King Signed-off-by: Mark Brown commit f47b9ad927c6370b80922af434dda98764a43804 Author: Jerome Brunet Date: Mon Apr 29 11:47:50 2019 +0200 ASoC: skip hw_free on codec dai for which the stream is invalid Like for hw_params, hw_free should not be called on codec dai for which the current stream is invalid. Fixes: cde79035c6cf ("ASoC: Handle multiple codecs with split playback / capture") Signed-off-by: Jerome Brunet Signed-off-by: Mark Brown commit 6a7c59c6d9f3b280e81d7a04bbe4e55e90152dce Author: Jerome Brunet Date: Mon Apr 29 11:47:49 2019 +0200 ASoC: fix valid stream condition A stream may specify a rate range using 'rate_min' and 'rate_max', so a stream may be valid and not specify any rates. However, as stream cannot be valid and not have any channel. Let's use this condition instead to determine if a stream is valid or not. Fixes: cde79035c6cf ("ASoC: Handle multiple codecs with split playback / capture") Signed-off-by: Jerome Brunet Signed-off-by: Mark Brown commit 30180e8436046344b12813dc954b2e01dfdcd22d Author: Jerome Brunet Date: Mon Apr 29 15:29:39 2019 +0200 ASoC: hdmi-codec: unlock the device on startup errors If the hdmi codec startup fails, it should clear the current_substream pointer to free the device. This is properly done for the audio_startup() callback but for snd_pcm_hw_constraint_eld(). Make sure the pointer cleared if an error is reported. Signed-off-by: Jerome Brunet Signed-off-by: Mark Brown commit cd8926e38e8cc53413a2a4ed2f705db7437a55fb Author: Yu-Hsuan Hsu Date: Thu May 2 12:07:43 2019 +0800 ASoC: da7219: Update the support rate list If we want to set rate to 64000 on da7219, it fails and returns "snd_pcm_hw_params: Invalid argument". We should remove 64000 from support rate list because it is not available. Signed-off-by: Yu-Hsuan Hsu Reviewed-by: Adam Thomson Signed-off-by: Mark Brown commit ff24e4980a68d83090a02fda081741a410fe8eef Merge: 26f146ed971c ea9866793d1e Author: David S. Miller Date: Thu May 2 22:14:21 2019 -0400 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Three trivial overlapping conflicts. Signed-off-by: David S. Miller commit 03197fc02b356606355d7ede343b18e3e3737771 Author: Douglas Anderson Date: Tue Mar 19 10:12:06 2019 -0700 tracing: kdb: Allow ftdump to skip all but the last few entries The 'ftdump' command in kdb is currently a bit of a last resort, at least if you have lots of traces turned on. It's going to print a whole boatload of data out your serial port which is probably running at 115200. This could easily take many, many minutes. Usually you're most interested in what's at the _end_ of the ftrace buffer, AKA what happened most recently. That means you've got to wait the full time for the dump. The 'ftdump' command does attempt to help you a little bit by allowing you to skip a fixed number of entries. Unfortunately it provides no way for you to know how many entries you should skip. Let's do similar to python and allow you to use a negative number to indicate that you want to skip all entries except the last few. This allows you to quickly see what you want. Note that we also change the printout in ftdump to print the (positive) number of entries actually skipped since that could be helpful to know when you've specified a negative skip count. Link: http://lkml.kernel.org/r/20190319171206.97107-3-dianders@chromium.org Signed-off-by: Douglas Anderson Signed-off-by: Steven Rostedt (VMware) commit ecffc8a8c7301f6f3c731ba23e38cd049a046416 Author: Douglas Anderson Date: Tue Mar 19 10:12:05 2019 -0700 tracing: Add trace_total_entries() / trace_total_entries_cpu() These two new exported functions will be used in a future patch by kdb_ftdump() to quickly skip all but the last few trace entries. Link: http://lkml.kernel.org/r/20190319171206.97107-2-dianders@chromium.org Acked-by: Daniel Thompson Suggested-by: Steven Rostedt Signed-off-by: Douglas Anderson Signed-off-by: Steven Rostedt (VMware) commit dbfe67334a1767bcb7be8b50bd237b22b272ef23 Author: Douglas Anderson Date: Tue Mar 19 10:12:04 2019 -0700 tracing: kdb: The skip_lines parameter should have been skip_entries The things skipped by kdb's "ftdump" command when you pass it a parameter has always been entries, not lines. The difference usually doesn't matter but when the trace buffer has multi-line entries (like a stack dump) it can matter. Let's fix this both in the help text for ftdump and also in the local variable names. Link: http://lkml.kernel.org/r/20190319171206.97107-1-dianders@chromium.org Acked-by: Daniel Thompson Signed-off-by: Douglas Anderson Signed-off-by: Steven Rostedt (VMware) commit 422449238e9853458283beffed77562d4b40a2fa Merge: 9f17847d853b b0fc850fd95f Author: Dave Airlie Date: Fri May 3 10:00:42 2019 +1000 Merge branch 'drm-next-5.2' of git://people.freedesktop.org/~agd5f/linux into drm-next - SR-IOV fixes - Raven flickering fix - Misc spelling fixes - Vega20 power fixes - Freesync improvements - DC fixes Signed-off-by: Dave Airlie From: Alex Deucher Link: https://patchwork.freedesktop.org/patch/msgid/20190502193020.3562-1-alexander.deucher@amd.com commit 9f17847d853bbaa6d06510a31bff70716cbb73ab Merge: 060cebb20cdb 9628e15ca9d5 Author: Dave Airlie Date: Fri May 3 09:54:47 2019 +1000 Merge tag 'drm-intel-next-fixes-2019-05-02' of git://anongit.freedesktop.org/drm/drm-intel into drm-next - Whitelist a register to avoid media driver from hanging Signed-off-by: Dave Airlie From: Joonas Lahtinen Link: https://patchwork.freedesktop.org/patch/msgid/20190502134015.GA22891@jlahtine-desk.ger.corp.intel.com commit 063b8271ec8f706d833e61dfca40c512504a62c1 Author: Christoph Hellwig Date: Thu Apr 11 09:20:00 2019 +0200 swiotlb-xen: ensure we have a single callsite for xen_dma_map_page Refactor the code a bit to make further changes easier. Reviewed-by: Stefano Stabellini Signed-off-by: Christoph Hellwig Signed-off-by: Konrad Rzeszutek Wilk commit 2e12dceef3d3fb8d796e384aa242062d1643cad4 Author: Christoph Hellwig Date: Thu Apr 11 09:19:59 2019 +0200 swiotlb-xen: simplify the DMA sync method implementations Get rid of the grand multiplexer and implement the sync_single_for_cpu and sync_single_for_device methods directly, and then loop over them for the scatterlist based variants. Note that this also loses a few comments related to highlevel DMA API concepts, which have nothing to do with the swiotlb-xen implementation details. Reviewed-by: Stefano Stabellini Signed-off-by: Christoph Hellwig Signed-off-by: Konrad Rzeszutek Wilk commit 8b35d9feed8e4e66dc4048f776c356e26e2a8216 Author: Christoph Hellwig Date: Thu Apr 11 09:19:58 2019 +0200 swiotlb-xen: use ->map_page to implement ->map_sg We can simply loop over the segments and map them, removing lots of duplicate code. Reviewed-by: Stefano Stabellini Signed-off-by: Christoph Hellwig Signed-off-by: Konrad Rzeszutek Wilk commit aca351cc4c034b4880f0a0dc3602ed3761ef6f01 Author: Christoph Hellwig Date: Thu Apr 11 09:19:57 2019 +0200 swiotlb-xen: make instances match their method names Just drop two pointless _attrs prefixes to make the code a little more grep-able. Reviewed-by: Stefano Stabellini Signed-off-by: Christoph Hellwig Signed-off-by: Konrad Rzeszutek Wilk commit 6143393c1b858b73badde4e083a038fb53ca6846 Merge: 273938bf7ae9 6f53e73b9ec5 Author: Jens Axboe Date: Thu May 2 16:07:05 2019 -0600 Merge branch 'nvme-5.2' of git://git.infradead.org/nvme into for-5.2/block Pull NVMe updates from Christoph. * 'nvme-5.2' of git://git.infradead.org/nvme: nvmet: protect discovery change log event list iteration nvme: mark nvme_core_init and nvme_core_exit static nvme: move command size checks to the core nvme-fabrics: check more command sizes nvme-pci: check more command sizes nvme-pci: remove an unneeded variable initialization nvme-pci: unquiesce admin queue on shutdown nvme-pci: shutdown on timeout during deletion nvme-pci: fix psdt field for single segment sgls nvme-multipath: don't print ANA group state by default nvme-multipath: split bios with the ns_head bio_set before submitting nvme-tcp: fix possible null deref on a timed out io queue connect commit 273938bf7ae92112e646f9a46b39aa74b64be4e8 Author: Raul E Rangel Date: Thu May 2 13:48:11 2019 -0600 block: fix function name in comment The comment was out of date. Reviewed-by: Bart Van Assche Signed-off-by: Raul E Rangel Signed-off-by: Jens Axboe commit 2a656cb5a4a3473c5fc6bf4fddc3560ceed53220 Author: Geert Uytterhoeven Date: Thu May 2 14:45:35 2019 +0200 of: unittest: Remove error printing on OOM There is no need to print a backtrace or other error message if kzalloc(), kmemdup(), or devm_kzalloc() fails, as the memory allocation core already takes care of that. Signed-off-by: Geert Uytterhoeven Signed-off-by: Rob Herring commit 6f7dc9a37f2b325fc870d1e1ada6169185f8852c Author: Geert Uytterhoeven Date: Thu May 2 14:40:15 2019 +0200 of: irq: Remove WARN_ON() for kzalloc() failure There is no need to print a backtrace if kzalloc() fails, as the memory allocation core already takes care of that. Signed-off-by: Geert Uytterhoeven Signed-off-by: Rob Herring commit 0db37915d912e8dc6588f25da76d3ed36718d92f Author: Pavel Machek Date: Mon Apr 29 17:22:59 2019 +0200 leds: avoid races with workqueue There are races between "main" thread and workqueue. They manifest themselves on Thinkpad X60: This should result in LED blinking, but it turns it off instead: root@amd:/data/pavel# cd /sys/class/leds/tpacpi\:\:power root@amd:/sys/class/leds/tpacpi::power# echo timer > trigger root@amd:/sys/class/leds/tpacpi::power# echo timer > trigger It should be possible to transition from blinking to solid on by echo 0 > brightness; echo 1 > brightness... but that does not work, either, if done too quickly. Synchronization of the workqueue fixes both. Fixes: 1afcadfcd184 ("leds: core: Use set_brightness_work for the blocking op") Signed-off-by: Pavel Machek Signed-off-by: Jacek Anaszewski commit 4d13c67adf4d1a6c097d3eb4e55bf28618980cd7 Author: Guido Günther Date: Thu May 2 15:07:38 2019 +0200 clk: imx8mq: Add dsi_ipg_div It's defined in imx8mq-clock.h but wasn't assigned yet. It's used as clk_tx_esc in the nwl dsi host controller (i.MX8MQ RM, Rev. 0, 01/2018 Sect. 13.5.3.7.4). Signed-off-by: Guido Günther Reviewed-by: Fabio Estevam Signed-off-by: Stephen Boyd commit caee28498ec35f0320a1b1eabbdfa3563cccdf4b Author: Phong Tran Date: Thu May 2 08:27:06 2019 +0700 power: supply: core: fix clang -Wunsequenced The increment operator of pointer in be32_to_cpu() is not explicitly. It made the warning from clang: drivers/power/supply/power_supply_core.c:674:36: error: multiple unsequenced modifications to 'list' [-Werror,-Wunsequenced] drivers/power/supply/power_supply_core.c:675:41: error: multiple unsequenced modifications to 'list' [-Werror,-Wunsequenced] Link: https://github.com/ClangBuiltLinux/linux/issues/460 Signed-off-by: Phong Tran Reviewed-by: Nick Desaulniers Signed-off-by: Sebastian Reichel commit 5dcf877fb13f3c6a8ba0777ef766c4af32df725d Author: Stefan Bühler Date: Wed May 1 13:53:36 2019 +0200 req->error only used for iopoll No need to set it in io_poll_add; io_poll_complete doesn't use it to set the result in the CQE. Signed-off-by: Stefan Bühler Signed-off-by: Jens Axboe commit 9b402849e80c85eee10bbd341aab3f1a0f942d4f Author: Jens Axboe Date: Thu Apr 11 11:45:41 2019 -0600 io_uring: add support for eventfd notifications Allow registration of an eventfd, which will trigger an event every time a completion event happens for this io_uring instance. Signed-off-by: Jens Axboe commit 5d17b4a4b7fa172b205be8a05051ae705d1dc3bb Author: Jens Axboe Date: Tue Apr 9 14:56:44 2019 -0600 io_uring: add support for IORING_OP_SYNC_FILE_RANGE This behaves just like sync_file_range(2) does. Signed-off-by: Jens Axboe commit 22f96b3808c12a218e9a3bce6e1bfbd74efbe374 Author: Jens Axboe Date: Tue Apr 9 14:51:48 2019 -0600 fs: add sync_file_range() helper This just pulls out the ksys_sync_file_range() code to work on a struct file instead of an fd, so we can use it elsewhere. Signed-off-by: Jens Axboe commit de0617e467171ba44c73efd1ba63f101b164a035 Author: Jens Axboe Date: Sat Apr 6 21:51:27 2019 -0600 io_uring: add support for marking commands as draining There are no ordering constraints between the submission and completion side of io_uring. But sometimes that would be useful to have. One common example is doing an fsync, for instance, and have it ordered with previous writes. Without support for that, the application must do this tracking itself. This adds a general SQE flag, IOSQE_IO_DRAIN. If a command is marked with this flag, then it will not be issued before previous commands have completed, and subsequent commands submitted after the drain will not be issued before the drain is started.. If there are no pending commands, setting this flag will not change the behavior of the issue of the command. Signed-off-by: Jens Axboe commit f89adedaf3feb2e1a896b2f2387cdcb4e2b9c48b Author: Gal Pressman Date: Tue Apr 30 11:46:39 2019 +0300 RDMA/uverbs: Initialize udata struct on destroy flows Cited commit introduced the udata parameter to different destroy flows but the uapi method definition does not have udata (i.e has_udata flag is not set). As a result, an uninitialized udata struct is being passed down to the driver callbacks. Fix that by clearing the driver udata even in cases where has_udata flag is not set. Fixes: c4367a26357b ("IB: Pass uverbs_attr_bundle down ib_x destroy path") Cc: Shamir Rabinovitch Co-developed-by: Jason Gunthorpe Signed-off-by: Jason Gunthorpe Signed-off-by: Gal Pressman Signed-off-by: Jason Gunthorpe commit c50495aa4cfcaace5f61174ab3069d5047d14f17 Author: Christian Lamparter Date: Tue May 16 22:11:20 2017 +0200 dt-bindings: pinctrl: fix bias-pull,up typo This patch fixes a shared typo in several qcom pinctrl dt-bindings. Signed-off-by: Christian Lamparter Acked-by: Bjorn Andersson Signed-off-by: Rob Herring commit 8c9374068ef6dc3fdf244484b4711a6e10c84d1a Author: Alexandre Belloni Date: Fri Apr 26 23:47:18 2019 +0200 misc: atmel_tclib: Do not probe already used TCBs The TCBs that have children are using the proper DT bindings and don't need to be handled by tclib. Acked-by: Greg Kroah-Hartman Signed-off-by: Alexandre Belloni Signed-off-by: Daniel Lezcano commit 7ebe68100418bd196cd4d638655e60d17c412d56 Author: kbuild test robot Date: Fri Apr 26 23:47:17 2019 +0200 clocksource/drivers/timer-atmel-tcb: Convert tc_clksrc_suspend|resume() to static Statisticize tc_clksrc_suspend and tc_clksrc_resume. Signed-off-by: kbuild test robot Signed-off-by: Alexandre Belloni Signed-off-by: Daniel Lezcano commit a7aae768166e1fff342cfe3ab506e657b7ea8044 Author: Alexandre Belloni Date: Fri Apr 26 23:47:16 2019 +0200 clocksource/drivers/tcb_clksrc: Rename the file for consistency For the sake of consistency, let's rename the file to a name similar to other file names in this directory. Signed-off-by: Alexandre Belloni Signed-off-by: Daniel Lezcano commit 2f982703bd00245af8455efad491ca45990bc0d8 Author: Alexandre Belloni Date: Fri Apr 26 23:47:15 2019 +0200 clocksource/drivers/timer-atmel-pit: Rework Kconfig option Allow building the PIT driver when COMPILE_TEST is enabled. Also remove its default value so it can be disabled. Signed-off-by: Alexandre Belloni Signed-off-by: Daniel Lezcano commit 6275f4947e2f13a13a509d9fec4e1e5b15152680 Author: Alexandre Belloni Date: Fri Apr 26 23:47:14 2019 +0200 clocksource/drivers/tcb_clksrc: Move Kconfig option Move the ATMEL_TCB_CLKSRC option to drivers/clocksource and make it silent if COMPILE_TEST is not selected. Cc: Arnd Bergmann Signed-off-by: Alexandre Belloni Signed-off-by: Daniel Lezcano commit 7803dc865bd2963192c623546fb240d01e3e7aa0 Author: Alexandre Belloni Date: Fri Apr 26 23:47:13 2019 +0200 ARM: at91: Implement clocksource selection Allow selecting and unselecting the PIT clocksource driver so it doesn't have to be compiled when unused. Signed-off-by: Alexandre Belloni Signed-off-by: Daniel Lezcano commit f712a1e8e59e8f42b5a9ec3887a4ad079bb18175 Author: Alexandre Belloni Date: Fri Apr 26 23:47:12 2019 +0200 clocksource/drivers/tcb_clksrc: Use tcb as sched_clock Now that the driver is registered early enough, use the TCB as the sched_clock which is much more accurate than the jiffies implementation. Signed-off-by: Alexandre Belloni Signed-off-by: Daniel Lezcano commit 86232bfd28d71db4a50562cf81ff88ef58a6d401 Author: Alexandre Belloni Date: Fri Apr 26 23:47:11 2019 +0200 clocksource/drivers/tcb_clksrc: Stop depending on atmel_tclib atmel_tclib is probed too late in the boot process to be able to use the TCB as the boot clocksource. This is an issue for SoCs without the PIT (sams70, samv70 and samv71 families) as they simply currently can't boot. Get rid of the atmel_tclib dependency and probe everything on our own using the correct device tree binding. This also allows getting rid of ATMEL_TCB_CLKSRC_BLOCK and makes the driver a bit more flexible as the TCB is not hardcoded in the kernel anymore. Signed-off-by: Alexandre Belloni Signed-off-by: Daniel Lezcano commit c2c9136b7096f0583117d7d0486600feec387865 Author: Alexandre Belloni Date: Fri Apr 26 23:47:10 2019 +0200 ARM: at91: move SoC specific definitions to SoC folder Move linux/atmel_tc.h to the SoC specific folder include/soc/at91. Signed-off-by: Alexandre Belloni Acked-by: Thierry Reding Acked-by: Arnd Bergmann Signed-off-by: Daniel Lezcano commit 37dbf65c6a1fb7978ebc818c6fa9a4cf54ded2f9 Author: Sugaya Taichi Date: Fri Apr 12 16:36:51 2019 +0900 clocksource/drivers/timer-milbeaut: Cleanup common register accesses Aggregate common register accesses into shared functions for maintainability. Signed-off-by: Sugaya Taichi Signed-off-by: Daniel Lezcano commit 95d5dc712634901e6707d3178e6170aa6e0a43ce Author: Sugaya Taichi Date: Fri Apr 12 16:36:50 2019 +0900 clocksource/drivers/timer-milbeaut: Add shutdown function Add a shutdown operation to support shutdown timer. Signed-off-by: Sugaya Taichi Signed-off-by: Daniel Lezcano commit f0b1ca623d8df5dad977f22a1142a81a886b0eb8 Author: Sugaya Taichi Date: Fri Apr 12 16:36:49 2019 +0900 clocksource/drivers/timer-milbeaut: Fix to enable one-shot timer Fix mlb_set_oneshot_state() to enable one-shot timer. The function should stop and start a timer, but "start" statement was dropped. Kick the register to start one-shot timer. Fixes: b58f28f306db ("clocksource/drivers/timer-milbeaut: Introduce timer for Milbeaut SoCs") Signed-off-by: Sugaya Taichi Signed-off-by: Daniel Lezcano commit 95170f0708f2f499da2594b29d39ac07ea221d7a Author: Joseph Lo Date: Tue Apr 2 11:02:34 2019 +0800 clocksource/drivers/tegra: Rework for compensation of suspend time Since the clocksource framework has the support for suspend time compensation. Re-work the driver to use that, so we can reduce the duplicate code. Suggested-by: Daniel Lezcano Signed-off-by: Joseph Lo Acked-by: Thierry Reding Signed-off-by: Daniel Lezcano commit dfc82faad72520769ca146f857e65c23632eed5a Author: David Abdurachmanov Date: Mon Apr 8 10:07:45 2019 +0200 clocksource/drivers/sp804: Add COMPILE_TEST to CONFIG_ARM_TIMER_SP804 This is only used on arm and arm64 platforms. Add COMPILE_TEST option. Tested with 5.1-rc3+ on Fedora/RISCV. CONFIG_ARM_TIMER_SP804 no more shows up in riscv config. Signed-off-by: David Abdurachmanov Signed-off-by: Daniel Lezcano commit 0113ab803a8aee00bc136507bcc9b16466f3c3aa Author: Mesih Kilinc Date: Mon Feb 11 12:21:08 2019 +0300 clocksource/drivers/sun4i: Add a compatible for suniv The suniv (new F-series) chip has a timer with less functionality than the A10 timer, e.g. it has only 3 channels. Add a new compatible for it. As we didn't use the extra channels on A10 either now, the code needn't to be changed. The suniv chip is based on ARM926EJ-S CPU, thus it has no architecture timer. Register sun4i_timer as sched_clock on it. Signed-off-by: Mesih Kilinc Acked-by: Maxime Ripard Acked-by: Daniel Lezcano Signed-off-by: Daniel Lezcano commit 67d06e6efa41c4135cfc4c4c5c9b55d5e3a9b6f7 Author: Mesih Kilinc Date: Mon Feb 11 12:21:07 2019 +0300 dt-bindings: timer: Add Allwinner suniv timer Add compatible string for Allwinner suniv timer which is similar to sun4i timer. Signed-off-by: Mesih Kilinc Acked-by: Maxime Ripard Reviewed-by: Rob Herring Signed-off-by: Daniel Lezcano commit 7872168a839144dbbfb33125262dab0673f9ddf5 Author: Shiraz Saleem Date: Mon Apr 29 16:32:04 2019 -0500 RDMA/umem: Handle page combining avoidance correctly in ib_umem_add_sg_table() The flag update_cur_sg tracks whether contiguous pages from a new set of page_list pages can be merged into the SGE passed into ib_umem_add_sg_table(). If this flag is true, but the total segment length exceeds the max_seg_size supported by HW, we avoid combining to this SGE and move to a new SGE (x) and merge 'len' pages to it. However, if i < npages, the next iteration can incorrectly merge 'len' contiguous pages into x instead of into a new SGE since update_cur_sg is still true. Reset update_cur_sg to false always after the check to merge pages into the first SGE passed in to ib_umem_add_sg_table(). Also, prevent a new SGE's segment length from ever exceeding HW max_seg_sz. There is a crash on hfi1 as result of this where-in max_seg_sz is defaulting to 64K. Due to above bug, unfolding SGE's in __ib_umem_release points to a bad page ptr. TEST comp-wfr.perfnative.STL-22166-WDT _ perftest native 2-Write_4097QP_4MB STARTING at 1555387093 BUG: Bad page state in process ib_write_bw pfn:7ebca0 page:ffffcd675faf2800 count:0 mapcount:1 mapping:0000000000000000 index:0x1 flags: 0x17ffffc0000000() raw: 0017ffffc0000000 dead000000000100 dead000000000200 0000000000000000 raw: 0000000000000001 0000000000000000 0000000000000000 0000000000000000 page dumped because: nonzero mapcount CPU: 18 PID: 15853 Comm: ib_write_bw Tainted: G B 5.1.0-rc4 #1 Hardware name: Intel Corporation S2600CWR/S2600CW, BIOS SE5C610.86B.01.01.0014.121820151719 12/18/2015 Call Trace: dump_stack+0x5a/0x73 bad_page+0xf5/0x10f free_pcppages_bulk+0x62c/0x680 free_unref_page+0x54/0x70 __ib_umem_release+0x148/0x1a0 [ib_uverbs] ib_umem_release+0x22/0x80 [ib_uverbs] rvt_dereg_mr+0x67/0xb0 [rdmavt] ib_dereg_mr_user+0x37/0x60 [ib_core] destroy_hw_idr_uobject+0x1c/0x50 [ib_uverbs] uverbs_destroy_uobject+0x2e/0x180 [ib_uverbs] uobj_destroy+0x4d/0x60 [ib_uverbs] __uobj_get_destroy+0x33/0x50 [ib_uverbs] __uobj_perform_destroy+0xa/0x30 [ib_uverbs] ib_uverbs_dereg_mr+0x66/0x90 [ib_uverbs] ib_uverbs_write+0x3e1/0x500 [ib_uverbs] vfs_write+0xad/0x1b0 ksys_write+0x5a/0xd0 do_syscall_64+0x5b/0x180 entry_SYSCALL_64_after_hwframe+0x44/0xa9 Fixes: d10bcf947a3e ("RDMA/umem: Combine contiguous PAGE_SIZE regions in SGEs") Tested-by: Mike Marciniszyn Reviewed-by: Michael J. Ruhl Signed-off-by: Shiraz Saleem Reviewed-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit 9b9a59db84812d326af41a3802c63f1f95d81016 Author: Serge Semin Date: Wed Apr 24 01:47:43 2019 +0300 mips: Add reserve-nomap memory type support It might be necessary to prevent the virtual mapping creation for a requested memory region. For instance there is a "no-map" property indicating exactly this feature. In this case we need to not only reserve the specified region by pretending it doesn't exist in the memory space, but completely remove the range from system just by removing it from memblock. The same way it's done in default early_init_dt_reserve_memory_arch() method. Signed-off-by: Serge Semin Signed-off-by: Paul Burton Cc: Ralf Baechle Cc: James Hogan Cc: Matt Redfearn Cc: Mike Rapoport Cc: Andrew Morton Cc: Michal Hocko Cc: Greg Kroah-Hartman Cc: Thomas Bogendoerfer Cc: Huacai Chen Cc: Stefan Agner Cc: Stephen Rothwell Cc: Alexandre Belloni Cc: Juergen Gross Cc: linux-mips@vger.kernel.org Cc: linux-kernel@vger.kernel.org commit 4e50a35de4ccc834dbc32c664fb068f4c24cfebf Author: Serge Semin Date: Wed Apr 24 01:47:42 2019 +0300 mips: Use memblock to reserve the __nosave memory range Originally before legacy bootmem was removed, the memory for the range was correctly reserved by reserve_bootmem_region(). But since memblock has been selected for early memory allocation the function can be utilized only after paging is fully initialized (as it is done by memblock_free_all() function). So calling it from arch_mem_init() method is prone to errors, and at this stage we need to reserve the memory in the memblock allocator. Signed-off-by: Serge Semin Signed-off-by: Paul Burton Cc: Ralf Baechle Cc: James Hogan Cc: Matt Redfearn Cc: Mike Rapoport Cc: Andrew Morton Cc: Michal Hocko Cc: Greg Kroah-Hartman Cc: Thomas Bogendoerfer Cc: Huacai Chen Cc: Stefan Agner Cc: Stephen Rothwell Cc: Alexandre Belloni Cc: Juergen Gross Cc: linux-mips@vger.kernel.org Cc: linux-kernel@vger.kernel.org commit eadb6925efeb0c254d17e1da9bb730d2add5613d Author: Serge Semin Date: Wed Apr 24 01:47:41 2019 +0300 mips: Discard post-CMA-init foreach loop Really the loop is pointless, since it walks over memblock-reserved memory regions and mark them as reserved in memblock. Before bootmem was removed from the kernel, this loop had been used to map the memory reserved by CMA into the legacy bootmem allocator. But now the early memory allocator is memblock, which is used by CMA for reservation, so we don't need any mapping anymore. Reviewed-by: Matt Redfearn Signed-off-by: Serge Semin Signed-off-by: Paul Burton Cc: Ralf Baechle Cc: James Hogan Cc: Mike Rapoport Cc: Andrew Morton Cc: Michal Hocko Cc: Greg Kroah-Hartman Cc: Thomas Bogendoerfer Cc: Huacai Chen Cc: Stefan Agner Cc: Stephen Rothwell Cc: Alexandre Belloni Cc: Juergen Gross Cc: linux-mips@vger.kernel.org Cc: linux-kernel@vger.kernel.org commit b93ddc4f9156205eb3c8df6ad35a37be3fa4e31e Author: Serge Semin Date: Wed Apr 24 01:47:40 2019 +0300 mips: Reserve memory for the kernel image resources The reserved_end variable had been used by the bootmem_init() code to find a lowest limit of memory available for memmap blob. The original code just tried to find a free memory space higher than kernel was placed. This limitation seems justified for the memmap ragion search process, but I can't see any obvious reason to reserve the unused space below kernel seeing some platforms place it much higher than standard 1MB. Moreover the RELOCATION config enables it to be loaded at any memory address. So lets reserve the memory occupied by the kernel only, leaving the region below being free for allocations. After doing this we can now discard the code freeing a space between kernel _text and VMLINUX_LOAD_ADDRESS symbols since it's going to be free anyway (unless marked as reserved by platforms). Signed-off-by: Serge Semin Signed-off-by: Paul Burton Cc: Ralf Baechle Cc: James Hogan Cc: Matt Redfearn Cc: Mike Rapoport Cc: Andrew Morton Cc: Michal Hocko Cc: Greg Kroah-Hartman Cc: Thomas Bogendoerfer Cc: Huacai Chen Cc: Stefan Agner Cc: Stephen Rothwell Cc: Alexandre Belloni Cc: Juergen Gross Cc: linux-mips@vger.kernel.org Cc: linux-kernel@vger.kernel.org commit de56d4c1da3e68f0ca468a55f6677bef3cee6e10 Author: Paul Burton Date: Tue Apr 30 22:53:31 2019 +0000 MIPS: Remove duplicate EBase configuration Clean up our configuration of the EBase register by making configure_exception_vector() write to it unconditionally on systems implementing MIPSr2 or higher, and removing the duplicate code in per_cpu_trap_init(). The latter would have duplicated work on systems with vectored interrupts, and didn't set BEV for safety like the configure_exception_vector() version of the code does. Signed-off-by: Paul Burton Reviewed-by: Serge Semin Tested-by: Serge Semin Cc: linux-mips@vger.kernel.org commit 783454e2bc7ce491b5cd50154433cde993bfd849 Author: Paul Burton Date: Tue Apr 30 22:53:31 2019 +0000 MIPS: Sync icache for whole exception vector Rather than performing cache flushing for a fixed 0x400 bytes, use the actual size of the vector in order to ensure we cover all emitted code on systems that make use of vectored interrupts. Signed-off-by: Paul Burton Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Serge Semin Tested-by: Serge Semin Cc: linux-mips@vger.kernel.org commit 172dcd935c34b022729f45a7bbaae5cc05231533 Author: Paul Burton Date: Tue Apr 30 22:53:30 2019 +0000 MIPS: Always allocate exception vector for MIPSr2+ Currently we allocate the exception vector on systems which use a vectored interrupt mode, but otherwise attempt to reuse whatever exception vector the bootloader uses. This can be problematic for a number of reasons: 1) The memory isn't properly marked reserved in the memblock allocator. We've relied on the fact that EBase is generally in the memory below the kernel image which we don't free, but this is about to change. 2) Recent versions of U-Boot place their exception vector high in kseg0, in memory which isn't protected by being lower than the kernel anyway & can end up being clobbered. 3) We are unnecessarily reliant upon there being memory at the address EBase points to upon entry to the kernel. This is often the case, but if the bootloader doesn't configure EBase & leaves it with its default value then we rely upon there being memory at physical address 0 for no good reason. Improve this situation by allocating the exception vector in all cases when running on MIPSr2 or higher, and reserving the memory for MIPSr1 or lower. This ensures we don't clobber the exception vector in any configuration, and for MIPSr2 & higher removes the need for memory at physical address 0. Signed-off-by: Paul Burton Reviewed-by: Serge Semin Tested-by: Serge Semin Cc: linux-mips@vger.kernel.org commit f995adb0ac5bcfa0d396ba7706aab420c7a6fec2 Author: Paul Burton Date: Tue Apr 30 22:53:30 2019 +0000 MIPS: Use memblock_phys_alloc() for exception vector Allocate the exception vector using memblock_phys_alloc() which gives us a physical address, rather than the previous convoluted setup which obtained a virtual address using memblock_alloc(), converted it to a physical address & then back to a virtual address. Signed-off-by: Paul Burton Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Serge Semin Tested-by: Serge Semin Cc: linux-mips@vger.kernel.org commit a4ecdcbfc4dd91417706e4644e4e93de43b34bea Author: Puranjay Mohan Date: Thu May 2 00:53:24 2019 +0530 Staging: rtl8192e: Remove extra space before break statement Remove extra spaces before "break" statements to fix the following warnings from checkpatch.pl WARNING: Statements should start on a tabstop + break; WARNING: Statements should start on a tabstop + break; Signed-off-by: Puranjay Mohan Signed-off-by: Greg Kroah-Hartman commit eca4e5f58b758e74e6065eb8bcab57067f1427f6 Author: Puranjay Mohan Date: Thu May 2 02:16:20 2019 +0530 Staging: rtl8192u: ieee80211: Fix if-else indentation warning Add tabs after if and else statements to fix the following warnings from checkpatch.pl WARNING: suspect code indent for conditional statements (8, 8) + if (ieee->GetHalfNmodeSupportByAPsHandler(ieee->dev)) + pBA->param_set.field.buffer_size = 1; WARNING: suspect code indent for conditional statements (8, 8) + else + pBA->param_set.field.buffer_size = 32; Signed-off-by: Puranjay Mohan Signed-off-by: Greg Kroah-Hartman commit 922fe878c78653fda011b176d3e4e355ba8f7479 Author: Puranjay Mohan Date: Thu May 2 01:53:49 2019 +0530 Staging: rtl8192u: ieee80211: Fix indentation errors by removing extra spaces Remove extra spaces before statements to fix following indentation warnings reported by checkpatch.pl. WARNING: Statements should start on a tabstop + struct rtl_80211_hdr_3addr *delba = NULL; WARNING: Statements should start on a tabstop + struct rtl_80211_hdr_3addr *rsp = NULL; WARNING: Statements should start on a tabstop + struct rtl_80211_hdr_3addr *req = NULL; WARNING: Statements should start on a tabstop + struct rtl_80211_hdr_3addr *Delba = NULL; WARNING: Statements should start on a tabstop + struct rtl_80211_hdr_3addr *BAReq = NULL; Signed-off-by: Puranjay Mohan Signed-off-by: Greg Kroah-Hartman commit af708900e9a48c0aa46070c8a8cdf0608a1d2025 Author: Suresh Udipi Date: Wed Apr 24 21:23:43 2019 +0200 staging: most: cdev: fix chrdev_region leak in mod_exit It looks like v4.18-rc1 commit [0] which upstreams mld-1.8.0 commit [1] missed to fix the memory leak in mod_exit function. Do it now. [0] aba258b7310167 ("staging: most: cdev: fix chrdev_region leak") [1] https://github.com/microchip-ais/linux/commit/a2d8f7ae7ea381 ("staging: most: cdev: fix leak for chrdev_region") Signed-off-by: Suresh Udipi Signed-off-by: Eugeniu Rosca Acked-by: Christian Gromm Fixes: aba258b73101 ("staging: most: cdev: fix chrdev_region leak") Cc: stable Signed-off-by: Greg Kroah-Hartman commit 2d394ab79b9d53e104c6071f6e0ecf97e851b6d0 Author: Himadri Pandya Date: Thu May 2 15:34:12 2019 +0530 staging: wlan-ng: Fix improper SPDX comment style The SPDX license identifier should have the form // SPDX-License-Identifier: for a .c source file. File hfa384x_usb.c has instead the form /* SPDX-License-Identifier: */ which is the form for C header files. Hence this patch corrects it. Issue identified by checkpatch. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit 6e7adf3ea6133255deae219b8d6a57eee4ac9cf5 Author: Serge Semin Date: Thu Apr 25 00:12:07 2019 +0300 usb: usb251xb: Add US port lanes inversion property The driver bindings already declare the "swap-dx-lanes" property to invert the downstream ports lanes polarity. The similar config can be defined for a single upstream port - "swap-us-lanes". It's going to be boolean since there is only one upstream port on the hub. Signed-off-by: Serge Semin Acked-by: Richard Leitner Signed-off-by: Greg Kroah-Hartman commit 73d31def1aabd2a57b85bd2e48d244a5d5a2f58d Author: Serge Semin Date: Thu Apr 25 00:12:06 2019 +0300 usb: usb251xb: Create a ports field collector method Seeing the ports field collection functionality is used four times per just one function, it's better to have a dedicated method performing the task. Note that this fix filters the port 0 out from the lanes swapping property the same way as it has been programmed for the rest multi-ports properties. But unlike the rest of ports config registers the BIT(0) of the Port Lanes Swap register refers to the Upstream Port lanes inversion. This fact hasn't been documented in the driver bindings nor there were any mentioning about port 0 being treated as upstream port. Lets then leave this fix as is for the properties unification and create an additional "swap-us-lanes" in the next patch. Signed-off-by: Serge Semin Acked-by: Richard Leitner Signed-off-by: Greg Kroah-Hartman commit 3342ce35a183fc6c1c8625d702ecf43915bc41ce Author: Serge Semin Date: Thu Apr 25 00:12:05 2019 +0300 usb: usb251xb: Add US lanes inversion dts-bindings Since a separate US ports lanes polarity inversion property is going to be available the bindings doc-file should be updated with information about swap-us-lanes bool property, which will be responsible for it. Signed-off-by: Serge Semin Acked-by: Richard Leitner Reviewed-by: Rob Herring Signed-off-by: Greg Kroah-Hartman commit 78e6427b4e7b017951785982f7f97cf64e2d624b Author: Leo Yan Date: Thu May 2 10:54:05 2019 -0600 coresight: funnel: Support static funnel Since CoreSight hardware topology can use a 'hidden' funnel in the trace data path, this kind funnel doesn't have register for accessing and is used by default from hardware design perspective. Below is an example for related hardware topology: +------+ +------+ | cpu0 |->| ETM |-\ +------+ +------+ \-> +--------+ +-----+ ...... | Funnel |->| ETF |-\ Hidden funnel +------+ +------+ /-> +--------+ +-----+ \ | | cpu3 |->| ETM |-/ \ V +------+ +------+ \-> +--------+ | Funnel |-> ... +------+ +------+ /-> +--------+ | cpu4 |->| ETM |-\ / +------+ +------+ \-> +--------+ +-----+ / ...... | Funnel |->| ETF |-/ +------+ +------+ /-> +--------+ +-----+ | cpu7 |->| ETM |-/ +------+ +------+ The CoreSight funnel driver only supports dynamic funnel with registration register resource, thus it cannot support for the static funnel case and it's impossible to create trace data path for this case. This patch is to extend CoreSight funnel driver to support both for static funnel and dynamic funnel. For the dynamic funnel it reuses the code existed in the driver, for static funnel the driver will support device probe if without providing register resource and the driver skips registers accessing when detect the register base is NULL. Cc: Mathieu Poirier Cc: Suzuki K Poulose Cc: Wanglai Shi Suggested-by: Suzuki K Poulose Signed-off-by: Leo Yan Reviewed-by: Suzuki K Poulose Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman commit d3b18ad63dca3ff3b5a169cbbe629b1d039a4483 Author: Leo Yan Date: Thu May 2 10:54:04 2019 -0600 dt-bindings: arm: coresight: Unify funnel DT binding Following the same fashion with replicator DT binding, this patch is to unify the DT binding for funnel to support static and dynamic modes; finally we get the funnel DT binding as below: Before patch: Static funnel, aka. non-configurable funnel: Not supported; Dynamic funnel, aka. configurable funnel: "arm,coresight-funnel", "arm,primecell"; After patch: Static funnel: "arm,coresight-static-funnel"; Dynamic funnel: "arm,coresight-dynamic-funnel", "arm,primecell"; "arm,coresight-funnel", "arm,primecell"; (obsolete) At the end of this patch, it gives an example for static funnel DT binding, and updates the dynamic funnel example. Cc: Mathieu Poirier Cc: Suzuki K Poulose Cc: Wanglai Shi Signed-off-by: Leo Yan Reviewed-by: Suzuki K Poulose Reviewed-by: Rob Herring Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman commit 5c84b87bb1ee7ce8e0849ce2c1b3fecf4faa4c82 Author: Leo Yan Date: Thu May 2 10:54:03 2019 -0600 coresight: replicator: Add new device id for static replicator This patch adds a device id for the new static replicator compatible string; it changes the driver name from "coresight-replicator" to "coresight-static-replicator" as well. This patch also gives warning when use the replicator obsolete DT binding. Signed-off-by: Leo Yan Reviewed-by: Suzuki K Poulose Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman commit 635b90f47d7f8a3777c229a2ac0d5f0fee006795 Author: Leo Yan Date: Thu May 2 10:54:02 2019 -0600 dt-bindings: arm: coresight: Add new compatible for static replicator CoreSight uses below bindings for replicator: Dynamic replicator, aka. configurable replicator: "arm,coresight-dynamic-replicator", "arm,primecell"; Static replicator, aka. non-configurable replicator: "arm,coresight-replicator"; The compatible string "arm,coresight-replicator" is not an explicit naming to express the replicator is 'static'. To unify the naming convention, this patch introduces a new compatible string "arm,coresight-static-replicator" for the static replicator; the compatible string "arm,coresight-replicator" is kept for backward compatibility, but tag it as obsolete and suggest to use the new compatible string. As result CoreSight replicator have below bindings: Dynamic replicator: "arm,coresight-dynamic-replicator", "arm,primecell"; Static replicator: "arm,coresight-static-replicator"; "arm,coresight-replicator"; (obsolete) Signed-off-by: Leo Yan Reviewed-by: Suzuki K Poulose Reviewed-by: Rob Herring Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman commit 83e367f9ad18d42a1883ee29f20608a2b93e1071 Author: Breno Leitao Date: Thu Jan 17 15:01:54 2019 -0200 selftests/powerpc: Add a signal fuzzer selftest This is a new selftest that raises SIGUSR1 signals and handles it in a set of different ways, trying to create different scenario for testing purpose. This test works raising a signal and calling sigreturn interleaved with TM operations, as starting, suspending and terminating a transaction. The test depends on random numbers, and, based on them, it sets different TM states. Other than that, the test fills out the user context struct that is passed to the sigreturn system call with random data, in order to make sure that the signal handler syscall can handle different and invalid states properly. This selftest has command line parameters to control what kind of tests the user wants to run, as for example, if a transaction should be started prior to signal being raised, or, after the signal being raised and before the sigreturn. If no parameter is given, the default is enabling all options. This test does not check if the user context is being read and set properly by the kernel. Its purpose, at this time, is basically guaranteeing that the kernel does not crash on invalid scenarios. Signed-off-by: Breno Leitao Signed-off-by: Michael Ellerman commit 5266e58d6cd90ac85c187d673093ad9cb649e16d Author: Laurentiu Tudor Date: Mon Apr 15 14:52:11 2019 +0300 powerpc/booke64: set RI in default MSR Set RI in the default kernel's MSR so that the architected way of detecting unrecoverable machine check interrupts has a chance to work. This is inline with the MSR setup of the rest of booke powerpc architectures configured here. Signed-off-by: Laurentiu Tudor Cc: stable@vger.kernel.org Signed-off-by: Michael Ellerman commit 7e462c2a8a6d00d3c240cac9f5626eff96d8e641 Author: Alastair D'Silva Date: Wed Mar 27 16:31:36 2019 +1100 ocxl: Provide global MMIO accessors for external drivers External drivers that communicate via OpenCAPI will need to make MMIO calls to interact with the devices. Signed-off-by: Alastair D'Silva Reviewed-by: Greg Kurz Acked-by: Frederic Barrat Signed-off-by: Michael Ellerman commit 060146614643ddc5978c73ffac0329762b4651c9 Author: Alastair D'Silva Date: Wed Mar 27 16:31:35 2019 +1100 ocxl: move event_fd handling to frontend Event_fd is only used in the driver frontend, so it does not need to exist in the backend code. Relocate it to the frontend and provide an opaque mechanism for consumers instead. Signed-off-by: Alastair D'Silva Acked-by: Frederic Barrat Signed-off-by: Michael Ellerman commit 2ec3b7ed2ab8e07fdb5f800ff420e94dec75435f Author: Alastair D'Silva Date: Wed Mar 27 16:31:34 2019 +1100 ocxl: afu_irq only deals with IRQ IDs, not offsets The use of offsets is required only in the frontend, so alter the IRQ API to only work with IRQ IDs in the backend. Signed-off-by: Alastair D'Silva Acked-by: Frederic Barrat Signed-off-by: Michael Ellerman commit b9721d275cc2c5e6c07371239c827e0faf05a6b9 Author: Alastair D'Silva Date: Wed Mar 27 16:31:33 2019 +1100 ocxl: Allow external drivers to use OpenCAPI contexts Most OpenCAPI operations require a valid context, so exposing these functions to external drivers is necessary. Signed-off-by: Alastair D'Silva Reviewed-by: Greg Kurz Acked-by: Frederic Barrat Signed-off-by: Michael Ellerman commit 75ca758adbafc81804c39b2c200ecdc819a6c042 Author: Alastair D'Silva Date: Wed Mar 27 16:31:32 2019 +1100 ocxl: Create a clear delineation between ocxl backend & frontend The OCXL driver contains both frontend code for interacting with userspace, as well as backend code for interacting with the hardware. This patch separates the backend code from the frontend so that it can be used by other device drivers that communicate via OpenCAPI. Relocate dev, cdev & sysfs files to the frontend code to allow external drivers to maintain their own devices. Reference counting on the device in the backend is replaced with kref counting. Move file & sysfs layer initialisation from core.c (backend) to pci.c (frontend). Create an ocxl_function oriented interface for initing devices & enumerating AFUs. Signed-off-by: Alastair D'Silva Acked-by: Frederic Barrat Signed-off-by: Michael Ellerman commit 2f7d3d1453813cda13e5bace24093eac22cb5e61 Author: Alastair D'Silva Date: Wed Mar 27 16:31:31 2019 +1100 ocxl: Don't pass pci_dev around This data is already available in a struct Signed-off-by: Alastair D'Silva Acked-by: Frederic Barrat Acked-by: Andrew Donnellan Signed-off-by: Michael Ellerman commit 1ba2143606a10f1c2e7308bc7abd940a6381cffd Author: Alastair D'Silva Date: Wed Mar 27 16:31:30 2019 +1100 ocxl: Split pci.c In preparation for making core code available for external drivers, move the core code out of pci.c and into core.c Signed-off-by: Alastair D'Silva Acked-by: Frederic Barrat Acked-by: Andrew Donnellan Signed-off-by: Michael Ellerman commit b696d28283e2e030cdc9ece7a4eb0a93b4c474fd Author: Alastair D'Silva Date: Mon Mar 25 16:34:55 2019 +1100 ocxl: Remove some unused exported symbols Remove some unused exported symbols. Signed-off-by: Alastair D'Silva Reviewed-by: Greg Kurz Acked-by: Frederic Barrat Acked-by: Andrew Donnellan Signed-off-by: Michael Ellerman commit 53e3e74530626d708d4822a29a3edd16f7484b4b Author: Alastair D'Silva Date: Mon Mar 25 16:34:54 2019 +1100 ocxl: Remove superfluous 'extern' from headers The 'extern' keyword adds no value here. Signed-off-by: Alastair D'Silva Reviewed-by: Greg Kurz Acked-by: Frederic Barrat Acked-by: Andrew Donnellan Signed-off-by: Michael Ellerman commit 32941494ff9a9f78fc967adf0e03044b62e09114 Author: Alastair D'Silva Date: Mon Mar 25 16:34:53 2019 +1100 ocxl: read_pasid never returns an error, so make it void No need for a return value in read_pasid as it only returns 0. Signed-off-by: Alastair D'Silva Reviewed-by: Greg Kurz Acked-by: Frederic Barrat Acked-by: Andrew Donnellan Signed-off-by: Michael Ellerman commit 9c4ae0645682b97437072693f0edbee17214225b Author: Alastair D'Silva Date: Mon Mar 25 16:34:52 2019 +1100 ocxl: Rename struct link to ocxl_link The term 'link' is ambiguous (especially when the struct is used for a list), so rename it for clarity. Signed-off-by: Alastair D'Silva Reviewed-by: Greg Kurz Acked-by: Frederic Barrat Acked-by: Andrew Donnellan Signed-off-by: Michael Ellerman commit 012ae244845f19d5f6ca2a90426851bc5044a0dc Author: Anju T Sudhakar Date: Tue Apr 16 15:18:31 2019 +0530 powerpc/perf: Trace imc PMU functions Add PMU functions to support trace-imc. Signed-off-by: Anju T Sudhakar Reviewed-by: Madhavan Srinivasan Signed-off-by: Michael Ellerman commit 72c69dcddce103338de558c5c6e9ef9e4f607ce1 Author: Anju T Sudhakar Date: Tue Apr 16 15:18:30 2019 +0530 powerpc/perf: Trace imc events detection and cpuhotplug Patch detects trace-imc events, does memory initilizations for each online cpu, and registers cpuhotplug call-backs. Signed-off-by: Anju T Sudhakar Reviewed-by: Madhavan Srinivasan Signed-off-by: Michael Ellerman commit 216c3087a346db8d7c8a064d2b8f0f49e4694934 Author: Madhavan Srinivasan Date: Tue Apr 16 15:18:29 2019 +0530 powerpc/perf: Add privileged access check for thread_imc Add code to restrict user access to thread_imc pmu since some event report privilege level information. Fixes: f74c89bd80fb3 ("powerpc/perf: Add thread IMC PMU support") Signed-off-by: Madhavan Srinivasan Signed-off-by: Anju T Sudhakar Signed-off-by: Michael Ellerman commit dd50cf7cbc7bdd86483b797ac3d27b37d5aeeaa4 Author: Anju T Sudhakar Date: Tue Apr 16 15:18:28 2019 +0530 powerpc/perf: Rearrange setting of ldbar for thread-imc LDBAR holds the memory address allocated for each cpu. For thread-imc the mode bit (i.e bit 1) of LDBAR is set to accumulation. Currently, ldbar is loaded with per cpu memory address and mode set to accumulation at boot time. To enable trace-imc, the mode bit of ldbar should be set to 'trace'. So to accommodate trace-mode of IMC, reposition setting of ldbar for thread-imc to thread_imc_event_add(). Also reset ldbar at thread_imc_event_del(). Signed-off-by: Anju T Sudhakar Reviewed-by: Madhavan Srinivasan Signed-off-by: Michael Ellerman commit d1720adff3783a2ba7c128e304a385d18962835b Author: Anju T Sudhakar Date: Tue Apr 16 15:18:27 2019 +0530 powerpc/include: Add data structures and macros for IMC trace mode Add the macros needed for IMC (In-Memory Collection Counters) trace-mode and data structure to hold the trace-imc record data. Also, add the new type "OPAL_IMC_COUNTERS_TRACE" in 'opal-api.h', since there is a new switch case added in the opal-calls for IMC. Signed-off-by: Anju T Sudhakar Reviewed-by: Madhavan Srinivasan Signed-off-by: Michael Ellerman commit 860b7d2286236170a36f94946d03ca9888d32571 Author: Anju T Sudhakar Date: Tue Dec 18 11:50:41 2018 +0530 powerpc/perf: Fix loop exit condition in nest_imc_event_init The data structure (i.e struct imc_mem_info) to hold the memory address information for nest imc units is allocated based on the number of nodes in the system. nest_imc_event_init() traverse this struct array to calculate the memory base address for the event-cpu. If we fail to find a match for the event cpu's chip-id in imc_mem_info struct array, then the do-while loop will iterate until we crash. Fix this by changing the loop exit condition based on the number of non zero vbase elements in the array, since the allocation is done for nr_chips + 1. Reported-by: Dan Carpenter Fixes: 885dcd709ba91 ("powerpc/perf: Add nest IMC PMU support") Signed-off-by: Anju T Sudhakar Reviewed-by: Madhavan Srinivasan Signed-off-by: Michael Ellerman commit a913e5e8b43be1d3897a141ce61c1ec071cad89c Author: Anju T Sudhakar Date: Tue Nov 27 13:54:52 2018 +0530 powerpc/perf: Return accordingly on invalid chip-id in Nest hardware counter memory resides in a per-chip reserve-memory. During nest_imc_event_init(), chip-id of the event-cpu is considered to calculate the base memory addresss for that cpu. Return, proper error condition if the chip_id calculated is invalid. Reported-by: Dan Carpenter Fixes: 885dcd709ba91 ("powerpc/perf: Add nest IMC PMU support") Reviewed-by: Madhavan Srinivasan Signed-off-by: Anju T Sudhakar Signed-off-by: Michael Ellerman commit 659a6e38db0b422c63fd68ca7e78a8daadca061e Author: Madhavan Srinivasan Date: Mon Apr 1 11:50:39 2019 +0530 powerpc/perf: Remove PM_BR_CMPL_ALT from power9 event list PM_BR_CMPL_ALT event is not supported, remove it from the power9 event list. Fixes: 24bedcb7c811 ("powerpc/perf: Fix branch event code for power9") Signed-off-by: Madhavan Srinivasan Signed-off-by: Michael Ellerman commit be80e758d0c2ec87eceac7676f08c761b4235869 Author: Madhavan Srinivasan Date: Thu Apr 4 17:24:50 2019 +0530 powerpc/perf: Add generic compat mode pmu driver Most of the power processor generation performance monitoring unit (PMU) driver code is bundled in the kernel and one of those is enabled/registered based on the oprofile_cpu_type check at the boot. But things get little tricky incase of "compat" mode boot. IBM POWER System Server based processors has a compactibility mode feature, which simpily put is, Nth generation processor (lets say POWER8) will act and appear in a mode consistent with an earlier generation (N-1) processor (that is POWER7). And in this "compat" mode boot, kernel modify the "oprofile_cpu_type" to be Nth generation (POWER8). If Nth generation pmu driver is bundled (POWER8), it gets registered. Key dependency here is to have distro support for latest processor performance monitoring support. Patch here adds a generic "compat-mode" performance monitoring driver to be register in absence of powernv platform specific pmu driver. Driver supports only "cycles" and "instruction" events. "0x0001e" used as event code for "cycles" and "0x00002" used as event code for "instruction" events. New file called "generic-compat-pmu.c" is created to contain the driver specific code. And base raw event code format modeled on PPMU_ARCH_207S. Signed-off-by: Madhavan Srinivasan [mpe: Use SPDX tag for license] Signed-off-by: Michael Ellerman commit 708597daf23486ea6f889ca29cc88389ca9a409a Author: Madhavan Srinivasan Date: Thu Apr 4 17:24:49 2019 +0530 powerpc/perf: init pmu from core-book3s Currenty pmu driver file for each ppc64 generation processor has a __init call in itself. Refactor the code by moving the __init call to core-books.c. This also clean's up compat mode pmu driver registration. Suggested-by: Michael Ellerman Signed-off-by: Madhavan Srinivasan [mpe: Use SPDX tag for license] Signed-off-by: Michael Ellerman commit 1e496391a8452101308a23b7395cdd4983b6e5bd Author: Joe Perches Date: Thu Mar 30 03:19:25 2017 -0700 powerpc/powernv/ioda2: Add __printf format/argument verification Fix fallout too. Signed-off-by: Joe Perches Signed-off-by: Michael Ellerman commit 29b861ea7742e571c1940366944eabc24d612e98 Author: Joel Stanley Date: Mon Apr 1 16:41:56 2019 +1030 Documentation: powerpc: Expand the DAWR acronym Those not of us not drowning in POWER might not know what this means. Signed-off-by: Joel Stanley Acked-by: Michael Neuling Signed-off-by: Michael Ellerman commit e1619e89c96c596d72e66f15a0794f5001c8576e Author: Joel Stanley Date: Wed Apr 3 11:19:26 2019 +1030 powerpc/configs: Add (back) MLX5 ethernet support to skiroot_defconfig It turns out that some defconfig changes and kernel config option changes meant we accidentally dropped Ethernet support for Mellanox CLX5 cards. Fixes: cbc39809a398 ("powerpc/configs: Update skiroot defconfig") Reported-by: Carol L Soto Suggested-by: Carol L Soto Signed-off-by: Stewart Smith Signed-off-by: Joel Stanley Signed-off-by: Michael Ellerman commit de269129a48a2d590ba1d20c719e19d86e3ddb3f Author: Mahesh Salgaonkar Date: Tue Mar 5 01:12:19 2019 +0530 powerpc/hmi: Fix kernel hang when TB is in error state. On TOD/TB errors timebase register stops/freezes until HMI error recovery gets TOD/TB back into running state. On successful recovery, TB starts running again and udelay() that relies on TB value continues to function properly. But in case when HMI fails to recover from TOD/TB errors, the TB register stay freezed. With TB not running the __delay() function keeps looping and never return. If __delay() is called while in panic path then system hangs and never reboots after panic. Signed-off-by: Mahesh Salgaonkar Signed-off-by: Michael Ellerman commit 0acb5f64560a052fd66ab37b212a72964847160f Author: Christopher M. Riedl Date: Mon Apr 15 22:26:38 2019 -0500 powerpc/xmon: add read-only mode Operations which write to memory and special purpose registers should be restricted on systems with integrity guarantees (such as Secure Boot) and, optionally, to avoid self-destructive behaviors. Add a config option, XMON_DEFAULT_RO_MODE, to set default xmon behavior. The kernel cmdline options xmon=ro and xmon=rw override this default. The following xmon operations are affected: memops: disable memmove disable memset disable memzcan memex: no-op'd mwrite super_regs: no-op'd write_spr bpt_cmds: disable proc_call: disable Signed-off-by: Christopher M. Riedl Reviewed-by: Oliver O'Halloran Reviewed-by: Andrew Donnellan Signed-off-by: Michael Ellerman commit 5d085ec04a000fefb5182d3b03ee46ca96d8389b Author: Bo YU Date: Tue Oct 30 09:21:55 2018 -0400 powerpc/boot: Fix missing check of lseek() return value This is detected by Coverity scan: CID: 1440481 Signed-off-by: Bo YU Signed-off-by: Michael Ellerman commit 90437bffa5f9b1440ba03e023f4875d1814b9360 Author: Valentin Schneider Date: Mon Mar 11 22:47:46 2019 +0000 powerpc/entry: Remove unneeded need_resched() loop Since the enabling and disabling of IRQs within preempt_schedule_irq() is contained in a need_resched() loop, we don't need the outer arch code loop. Signed-off-by: Valentin Schneider [mpe: Rebase since CURRENT_THREAD_INFO() removal] Signed-off-by: Michael Ellerman commit 32eebf96669568014b79b83a03f7895f3ec8c95f Author: Horia Geantă Date: Wed Mar 20 14:55:16 2019 +0200 powerpc/dts/fsl: add crypto node alias for B4 crypto node alias is needed by U-boot to identify the node and perform fix-ups, like adding "fsl,sec-era" property. Signed-off-by: Horia Geantă Signed-off-by: Michael Ellerman commit d7fbe2a0439ce6f20917a65990a78c9e747aad34 Author: Christophe Leroy Date: Tue Apr 2 09:08:38 2019 +0000 powerpc/prom_init: get rid of PROM_SCRATCH_SIZE PROM_SCRATCH_SIZE is same as sizeof(prom_scratch) Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 398af571128fe75f07343f929975b26d57eafd18 Author: Michael Ellerman Date: Tue Apr 9 23:14:20 2019 +1000 powerpc/security: Show powerpc_security_features in debugfs This can be helpful for debugging problems with the security feature flags, especially on guests where the flags come from the hypervisor via an hcall and so can't be observed in the device tree. Signed-off-by: Michael Ellerman Reviewed-by: Joel Stanley Signed-off-by: Michael Ellerman commit 453d87f6a8aed827f5ebb1708a4cea458fd68d23 Author: Russell Currey Date: Thu May 2 17:39:47 2019 +1000 powerpc/mm: Warn if W+X pages found on boot Implement code to walk all pages and warn if any are found to be both writable and executable. Depends on STRICT_KERNEL_RWX enabled, and is behind the DEBUG_WX config option. This only runs on boot and has no runtime performance implications. Very heavily influenced (and in some cases copied verbatim) from the ARM64 code written by Laura Abbott (thanks!), since our ptdump infrastructure is similar. Signed-off-by: Russell Currey [mpe: Fixup build error when disabled] Signed-off-by: Michael Ellerman commit 237b47efcdbc019ccd094ad8b87847dc6fc7fda7 Author: Nathan Chancellor Date: Thu May 2 08:02:10 2019 -0700 rtw88: Make RA_MASK macros ULL Clang warns about the definitions of these macros (full warnings trimmed for brevity): drivers/net/wireless/realtek/rtw88/main.c:524:15: warning: signed shift result (0x3FF00000000) requires 43 bits to represent, but 'int' only has 32 bits [-Wshift-overflow] ra_mask &= RA_MASK_VHT_RATES | RA_MASK_OFDM_IN_VHT; ^~~~~~~~~~~~~~~~~ drivers/net/wireless/realtek/rtw88/main.c:527:15: warning: signed shift result (0xFF0000000) requires 37 bits to represent, but 'int' only has 32 bits [-Wshift-overflow] ra_mask &= RA_MASK_HT_RATES | RA_MASK_OFDM_IN_HT_5G; ^~~~~~~~~~~~~~~~ Given that these are all used with ra_mask, which is of type u64, we can just declare the macros to be ULL as well. Fixes: e3037485c68e ("rtw88: new Realtek 802.11ac driver") Link: https://github.com/ClangBuiltLinux/linux/issues/467 Signed-off-by: Nathan Chancellor Signed-off-by: Kalle Valo commit 5f18cbdbdd42b050c51eb9859f8ce43db3f51846 Author: Russell Currey Date: Thu May 2 17:39:46 2019 +1000 powerpc/mm/ptdump: Wrap seq_printf() to handle NULL pointers Lovingly borrowed from the arch/arm64 ptdump code. This doesn't seem to be an issue in practice, but is necessary for my upcoming commit. Signed-off-by: Russell Currey Signed-off-by: Michael Ellerman commit c9e0fc33b8be52a7134ed0ee79b6a1e332e1b9d0 Author: Christoph Hellwig Date: Tue Apr 30 14:27:39 2019 -0400 powerpc: remove the __kernel_io_end export This export was added in this merge window, but without any actual user, or justification for a modular user. Fixes: a35a3c6f6065 ("powerpc/mm/hash64: Add a variable to track the end of IO mapping") Signed-off-by: Christoph Hellwig Signed-off-by: Michael Ellerman commit 4c1bd90477c60618eb6dfba2e92d3a287b0c6255 Author: Andrew Donnellan Date: Thu May 2 16:00:41 2019 +1000 MAINTAINERS: Update cxl/ocxl email address Use my @linux.ibm.com email to avoid a layer of redirection. Signed-off-by: Andrew Donnellan Signed-off-by: Michael Ellerman commit e2b36d591720d81741f37e047a6f0047e8c89369 Author: Nicholas Piggin Date: Thu May 2 15:21:07 2019 +1000 powerpc/64: Don't trace code that runs with the soft irq mask unreconciled "Reconciling" in terms of interrupt handling, is to bring the soft irq mask state in to synch with the hardware, after an interrupt causes MSR[EE] to be cleared (while the soft mask may be enabled, and hard irqs not marked disabled). General kernel code should not be called while unreconciled, because local_irq_disable, etc. manipulations can cause surprising irq traces, and it's fragile because the soft irq code does not really expect to be called in this situation. When exiting from an interrupt, MSR[EE] is cleared to prevent races, but soft irq state is enabled for the returned-to context, so this is now an unreconciled state. restore_math is called in this state, and that can be ftraced, and the ftrace subsystem disables local irqs. Mark restore_math and its callees as notrace. Restore a sanity check in the soft irq code that had to be disabled for this case, by commit 4da1f79227ad4 ("powerpc/64: Disable irq restore warning for now"). Signed-off-by: Nicholas Piggin Signed-off-by: Michael Ellerman commit 502523fd1d2ac559b41d8302dc9f826f578ec54d Author: Christophe Leroy Date: Sat Mar 9 18:47:27 2019 +0100 powerpc/irq: drop __irq_offset_value This patch drops__irq_offset_value which has not been used since commit 9c4cb8251513 ("powerpc: Remove use of CONFIG_PPC_MERGE") This removes a sparse warning. Fixes: 9c4cb8251513 ("powerpc: Remove use of CONFIG_PPC_MERGE") Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 65184f2f045abc0eb35f934f6cbf7e23b9875e7c Author: Christophe Leroy Date: Fri Mar 22 08:08:45 2019 +0000 powerpc/setup: replace ifdefs by IS_ENABLED() wherever possible. Compared to ifdefs, IS_ENABLED() provide a cleaner code and allows to detect compilation failure regardless of the selected options. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 48018e42e5c70c8ac4b222cc76af1a15ea2e09e7 Author: Christophe Leroy Date: Fri Mar 22 08:08:44 2019 +0000 powerpc/setup: cleanup the #ifdef CONFIG_TAU block Use cpu_has_feature() instead of opencoding Use IS_ENABLED() instead of #ifdef for CONFIG_TAU_AVERAGE Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit b5064efee2211f83b98a6a69e7319257c8411221 Author: Christophe Leroy Date: Fri Mar 22 08:08:43 2019 +0000 powerpc/setup: cleanup ifdef mess in check_cache_coherency() Use IS_ENABLED() instead of #ifdefs Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit e9e9b25a4c99eec0e678c78124ae79764d8f777a Author: Christophe Leroy Date: Fri Mar 22 08:08:42 2019 +0000 powerpc/setup: Remove unnecessary #ifdef CONFIG_ALTIVEC CPU_FTR_ALTIVEC is only set when CONFIG_ALTIVEC is selected, so the ifdef is unnecessary. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 93f2cd813797baf5590459fb0439c62e873b7748 Author: Christophe Leroy Date: Fri Mar 22 08:08:40 2019 +0000 powerpc/mm: define an empty mm_iommu_init() To avoid ifdefs, define a empty static inline mm_iommu_init() function when CONFIG_SPAPR_TCE_IOMMU is not selected. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 9c1d38b34e944cace44e0d2bea0beb5601a4d36d Author: Christophe Leroy Date: Fri Mar 22 08:08:39 2019 +0000 powerpc/fadump: define an empty fadump_cleanup() To avoid #ifdefs, define an static inline fadump_cleanup() function when CONFIG_FADUMP is not selected Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit d1865e71cdc9b75b6a6716a2983eb5d6004cfca9 Author: Christophe Leroy Date: Tue Apr 30 12:39:05 2019 +0000 powerpc/32: Don't add dummy frames when calling trace_hardirqs_on/off No need to add dummy frames when calling trace_hardirqs_on or trace_hardirqs_off. GCC properly handles empty stacks. In addition, powerpc doesn't set CONFIG_FRAME_POINTER, therefore __builtin_return_address(1..) returns NULL at all time. So the dummy frames are definitely unneeded here. In the meantime, avoid reading memory for loading r1 with a value we already know. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 38b4564cf042ad3f5333692687023803c1ab1112 Author: Christophe Leroy Date: Tue Apr 30 12:39:04 2019 +0000 powerpc/32: don't do syscall stuff in transfer_to_handler As syscalls are now handled via a fast entry path, syscall related actions can be removed from the generic transfer_to_handler path. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 1a4b739bbb4f8857d1b4feb46d6b3ec72269c111 Author: Christophe Leroy Date: Tue Apr 30 12:39:03 2019 +0000 powerpc/32: implement fast entry for syscalls on BOOKE This patch implements a fast entry for syscalls. Syscalls don't have to preserve non volatile registers except LR. This patch then implement a fast entry for syscalls, where volatile registers get clobbered. As this entry is dedicated to syscall it always sets MSR_EE and warns in case MSR_EE was previously off It also assumes that the call is always from user, system calls are unexpected from kernel. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit b86fb88855ea7881314b935df1df6b1ef1bd0c32 Author: Christophe Leroy Date: Tue Apr 30 12:39:02 2019 +0000 powerpc/32: implement fast entry for syscalls on non BOOKE This patch implements a fast entry for syscalls. Syscalls don't have to preserve non volatile registers except LR. This patch then implement a fast entry for syscalls, where volatile registers get clobbered. As this entry is dedicated to syscall it always sets MSR_EE and warns in case MSR_EE was previously off It also assumes that the call is always from user, system calls are unexpected from kernel. The overall series improves null_syscall selftest by 12,5% on an 83xx and by 17% on a 8xx. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 40530db7c656119b1671aae5bc27811f66f5f424 Author: Christophe Leroy Date: Tue Apr 30 12:39:01 2019 +0000 powerpc: Fix 32-bit handling of MSR_EE on exceptions [text mostly copied from benh's RFC/WIP] ppc32 are still doing something rather gothic and wrong on 32-bit which we stopped doing on 64-bit a while ago. We have that thing where some handlers "copy" the EE value from the original stack frame into the new MSR before transferring to the handler. Thus for a number of exceptions, we enter the handlers with interrupts enabled. This is rather fishy, some of the stuff that handlers might do early on such as irq_enter/exit or user_exit, context tracking, etc... should be run with interrupts off afaik. Generally our handlers know when to re-enable interrupts if needed. The problem we were having is that we assumed these interrupts would return with interrupts enabled. However that isn't the case. Instead, this patch changes things so that we always enter exception handlers with interrupts *off* with the notable exception of syscalls which are special (and get a fast path). Suggested-by: Benjamin Herrenschmidt Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 1ae99b4b924ab10452da653baed29d3883705519 Author: Christophe Leroy Date: Tue Apr 30 12:39:00 2019 +0000 powerpc/32: get rid of COPY_EE in exception entry EXC_XFER_TEMPLATE() is not called with COPY_EE anymore so we can get rid of copyee parameters and related COPY_EE and NOCOPY macros. Suggested-by: Benjamin Herrenschmidt [splited out from benh RFC patch] Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 642770dd96cb04e7cf8f7677e35cd528cda0a97b Author: Christophe Leroy Date: Tue Apr 30 12:38:59 2019 +0000 powerpc/32: Enter exceptions with MSR_EE unset All exceptions handlers know when to reenable interrupts, so it is safer to enter all of them with MSR_EE unset, except for syscalls. Suggested-by: Benjamin Herrenschmidt [splited out from benh RFC patch] Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit f97dec21a306967edbc49ce46f3ecefa3cd16907 Author: Christophe Leroy Date: Tue Apr 30 12:38:58 2019 +0000 powerpc/32: enter syscall with MSR_EE inconditionaly set syscalls are expected to be entered with MSR_EE set. Lets make it inconditional by forcing MSR_EE on syscalls. This patch adds EXC_XFER_SYS for that. Suggested-by: Benjamin Herrenschmidt [splited out from benh RFC patch] Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit ef4291243f51d0a69899ee2025de09578c0fcba8 Author: Christophe Leroy Date: Tue Apr 30 12:38:57 2019 +0000 powerpc/fsl_booke: ensure SPEFloatingPointException() reenables interrupts SPEFloatingPointException() is the only exception handler which 'forgets' to re-enable interrupts. This patch makes sure it does. Suggested-by: Benjamin Herrenschmidt Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 90f204b9a1f2dc81904547a52ba976d3e84dcf59 Author: Christophe Leroy Date: Tue Apr 30 12:38:56 2019 +0000 powerpc/40x: Refactor exception entry macros by using head_32.h Refactor exception entry macros by using the ones defined in head_32.h Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 7271fc960424a2fed3823a57358f67f650fd708d Author: Christophe Leroy Date: Tue Apr 30 12:38:55 2019 +0000 powerpc/40x: Split and rename NORMAL_EXCEPTION_PROLOG This patch splits NORMAL_EXCEPTION_PROLOG in the same way as in head_8xx.S and head_32.S and renames it EXCEPTION_PROLOG() as well to match head_32.h Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit bd82904d465c0655fdc40dfc753209ea54efdd23 Author: Christophe Leroy Date: Tue Apr 30 12:38:54 2019 +0000 powerpc/40x: add exception frame marker This patch adds STACK_FRAME_REGS_MARKER in the stack at exception entry in order to see interrupts in call traces as below: [ 0.013964] Call Trace: [ 0.014014] [c0745db0] [c007a9d4] tick_periodic.constprop.5+0xd8/0x104 (unreliable) [ 0.014086] [c0745dc0] [c007aa20] tick_handle_periodic+0x20/0x9c [ 0.014181] [c0745de0] [c0009cd0] timer_interrupt+0xa0/0x264 [ 0.014258] [c0745e10] [c000e484] ret_from_except+0x0/0x14 [ 0.014390] --- interrupt: 901 at console_unlock.part.7+0x3f4/0x528 [ 0.014390] LR = console_unlock.part.7+0x3f0/0x528 [ 0.014455] [c0745ee0] [c0050334] console_unlock.part.7+0x114/0x528 (unreliable) [ 0.014542] [c0745f30] [c00524e0] register_console+0x3d8/0x44c [ 0.014625] [c0745f60] [c0675aac] cpm_uart_console_init+0x18/0x2c [ 0.014709] [c0745f70] [c06614f4] console_init+0x114/0x1cc [ 0.014795] [c0745fb0] [c0658b68] start_kernel+0x300/0x3d8 [ 0.014864] [c0745ff0] [c00022cc] start_here+0x44/0x98 Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 57bc13acbe11b6d60d5dc4d574c34e1d981a8824 Author: Christophe Leroy Date: Tue Apr 30 12:38:53 2019 +0000 powerpc/40x: Don't use SPRN_SPRG_SCRATCH2 in EXCEPTION_PROLOG Unlike said in the comment, r1 is not reused by the critical exception handler, as it uses a dedicated critirq_ctx stack. Decrementing r1 early is then unneeded. Should the above be valid, the code is crap buggy anyway as r1 gets some intermediate values that would jeopardise the whole process (for instance after mfspr r1,SPRN_SPRG_THREAD) Using SPRN_SPRG_SCRATCH2 to save r1 is then not needed, r11 can be used instead. This avoids one mtspr and one mfspr and makes the prolog closer to what's done on 6xx and 8xx. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 1d3034aed4489ae96bc7eec5050096944fd181f6 Author: Christophe Leroy Date: Tue Apr 30 12:38:52 2019 +0000 powerpc/32: make the 6xx/8xx EXC_XFER_TEMPLATE() similar to the 40x/booke one 6xx/8xx EXC_XFER_TEMPLATE() macro adds a i##n symbol which is unused and can be removed. 40x and booke EXC_XFER_TEMPLATE() macros takes msr from the caller while the 6xx/8xx version uses only MSR_KERNEL as msr value. This patch modifies the 6xx/8xx version to make it similar to the 40x and booke versions. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 37737a2afd69c201d0dac334c84fd1f0d596dfc0 Author: Christophe Leroy Date: Tue Apr 30 12:38:51 2019 +0000 powerpc/32: move LOAD_MSR_KERNEL() into head_32.h and use it As preparation for using head_32.h for head_40x.S, move LOAD_MSR_KERNEL() there and use it to load r10 with MSR_KERNEL value. In the mean time, this patch modifies it so that it takes into account the size of the passed value to determine if 'li' can be used or if 'lis/ori' is needed instead of using the size of MSR_KERNEL. This is done by using gas macro. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 8a23fdec3dbdc8bfde6f806d36e773236dab6663 Author: Christophe Leroy Date: Tue Apr 30 12:38:50 2019 +0000 powerpc/32: Refactor EXCEPTION entry macros for head_8xx.S and head_32.S EXCEPTION_PROLOG is similar in head_8xx.S and head_32.S This patch creates head_32.h and moves EXCEPTION_PROLOG macro into it. It also converts it from a GCC macro to a GAS macro in order to ease refactorisation with 40x later, since GAS macros allows the use of #ifdef/#else/#endif inside it. And it also has the advantage of not requiring the uggly "; \" at the end of each line. This patch also moves EXCEPTION() and EXC_XFER_XXXX() macros which are also similar while adding START_EXCEPTION() out of EXCEPTION(). Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit e4dccf9092ab48a6f902003b9558c0e45d0e849a Author: Christophe Leroy Date: Fri Apr 26 16:36:39 2019 +0000 powerpc/mm: print hash info in a helper Reduce #ifdef mess by defining a helper to print hash info at startup. In the meantime, remove the display of hash table address to reduce leak of non necessary information. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 8f156c23f4c04ca51961cd1f6a0edbc80caa2683 Author: Christophe Leroy Date: Fri Apr 26 16:36:37 2019 +0000 powerpc/32s: don't try to print hash table address. Due to %p, (ptrval) is printed in lieu of the hash table address. showing the hash table address isn't an operationnal need so just don't print it. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 57e0491b58fa2a217029b696511499008852a642 Author: Christophe Leroy Date: Fri Apr 26 16:36:36 2019 +0000 powerpc/32s: drop Hash_end Hash_end has never been used, drop it. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit da3a3b0a0e38377c98946420acdc7d4ca38cff47 Author: Christophe Leroy Date: Fri Apr 26 16:23:37 2019 +0000 powerpc/32s: map kasan zero shadow with PAGE_READONLY instead of PAGE_KERNEL_RO For hash32, the zero shadow page gets mapped with PAGE_READONLY instead of PAGE_KERNEL_RO, because the PP bits don't provide a RO kernel, so PAGE_KERNEL_RO is equivalent to PAGE_KERNEL. By using PAGE_READONLY, the page is RO for both kernel and user, but this is not a security issue as it contains only zeroes. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 215b823707ce4e8e52b106915f70357fa474c669 Author: Christophe Leroy Date: Fri Apr 26 16:23:36 2019 +0000 powerpc/32s: set up an early static hash table for KASAN. KASAN requires early activation of hash table, before memblock() functions are available. This patch implements an early hash_table statically defined in __initdata. During early boot, a single page table is used. For hash32, when doing the final init, one page table is allocated for each PGD entry because of the _PAGE_HASHPTE flag which can't be common to several virt pages. This is done after memblock get available but before switching to the final hash table, otherwise there are issues with TLB flushing due to the shared entries. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 72f208c6a8f7bc78ef5248babd9e6ed6302bd2a0 Author: Christophe Leroy Date: Fri Apr 26 16:23:35 2019 +0000 powerpc/32s: move hash code patching out of MMU_init_hw() For KASAN, hash table handling will be activated early for accessing to KASAN shadow areas. In order to avoid any modification of the hash functions while they are still used with the early hash table, the code patching is moved out of MMU_init_hw() and put close to the big-bang switch to the final hash table. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 2edb16efc899f9c232e2d880930b855e4cf55df4 Author: Christophe Leroy Date: Fri Apr 26 16:23:34 2019 +0000 powerpc/32: Add KASAN support This patch adds KASAN support for PPC32. The following patch will add an early activation of hash table for book3s. Until then, a warning will be raised if trying to use KASAN on an hash 6xx. To support KASAN, this patch initialises that MMU mapings for accessing to the KASAN shadow area defined in a previous patch. An early mapping is set as soon as the kernel code has been relocated at its definitive place. Then the definitive mapping is set once paging is initialised. For modules, the shadow area is allocated at module_alloc(). Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit f072015c7b742c42aa5649d22f43163cd0eb7024 Author: Christophe Leroy Date: Fri Apr 26 16:23:33 2019 +0000 powerpc: disable KASAN instrumentation on early/critical files. All files containing functions run before kasan_early_init() is called must have KASAN instrumentation disabled. For those file, branch profiling also have to be disabled otherwise each if () generates a call to ftrace_likely_update(). Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit b4abe38fd698ace6942edeeb79a5b8a60a7af4fa Author: Christophe Leroy Date: Fri Apr 26 16:23:32 2019 +0000 powerpc/32: prepare shadow area for KASAN This patch prepares a shadow area for KASAN. The shadow area will be at the top of the kernel virtual memory space above the fixmap area and will occupy one eighth of the total kernel virtual memory space. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit a67beca077ef79e971443aa6af6b14d4b3fb3bd6 Author: Christophe Leroy Date: Fri Apr 26 16:23:31 2019 +0000 powerpc/32: make KVIRT_TOP dependent on FIXMAP_START When we add KASAN shadow area, KVIRT_TOP can't be anymore fixed at 0xfe000000. This patch uses FIXADDR_START to define KVIRT_TOP. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 7934cea7f0b93fcfdb3b175df94f539e4af86c9b Author: Christophe Leroy Date: Fri Apr 26 16:23:30 2019 +0000 powerpc/32: use memset() instead of memset_io() to zero BSS Since commit 400c47d81ca38 ("powerpc32: memset: only use dcbz once cache is enabled"), memset() can be used before activation of the cache, so no need to use memset_io() for zeroing the BSS. Acked-by: Dmitry Vyukov Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit adcf59187e2705721ccf23733a5fa2fb20d91415 Author: Christophe Leroy Date: Fri Apr 26 16:23:29 2019 +0000 powerpc: don't use direct assignation during early boot. In kernel/cputable.c, explicitly use memcpy() instead of *y = *x; This will allow GCC to replace it with __memcpy() when KASAN is selected. Acked-by: Dmitry Vyukov Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 450e7dd4001f22f796e22422dd1d2cbd5bda21fc Author: Christophe Leroy Date: Fri Apr 26 16:23:28 2019 +0000 powerpc/prom_init: don't use string functions from lib/ When KASAN is active, the string functions in lib/ are doing the KASAN checks. This is too early for prom_init. This patch implements dedicated string functions for prom_init, which will be compiled in with KASAN disabled. Size of prom_init before the patch: text data bss dec hex filename 12060 488 6960 19508 4c34 arch/powerpc/kernel/prom_init.o Size of prom_init after the patch: text data bss dec hex filename 12460 488 6960 19908 4dc4 arch/powerpc/kernel/prom_init.o This increases the size of prom_init a bit, but as prom_init is in __init section, it is freed after boot anyway. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit cbe46bd4f5104552b612505b73d366f66efc2341 Author: Christophe Leroy Date: Fri Apr 26 16:23:27 2019 +0000 powerpc: remove CONFIG_CMDLINE #ifdef mess This patch makes CONFIG_CMDLINE defined at all time. It avoids having to enclose related code inside #ifdef CONFIG_CMDLINE Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 26deb04342e343ac58ab05bc7d2345ff0be9b667 Author: Christophe Leroy Date: Fri Apr 26 16:23:26 2019 +0000 powerpc: prepare string/mem functions for KASAN CONFIG_KASAN implements wrappers for memcpy() memmove() and memset() Those wrappers are doing the verification then call respectively __memcpy() __memmove() and __memset(). The arches are therefore expected to rename their optimised functions that way. For files on which KASAN is inhibited, #defines are used to allow them to directly call optimised versions of the functions without going through the KASAN wrappers. See commit 393f203f5fd5 ("x86_64: kasan: add interceptors for memset/memmove/memcpy functions") for details. Other string / mem functions do not (yet) have kasan wrappers, we therefore have to fallback to the generic versions when KASAN is active, otherwise KASAN checks will be skipped. Signed-off-by: Christophe Leroy [mpe: Fixups to keep selftests working] Signed-off-by: Michael Ellerman commit d69ca6bab39e84a84781535b977c7e62c8f84d37 Author: Christophe Leroy Date: Fri Apr 26 16:23:25 2019 +0000 powerpc/32: Move early_init() in a separate file In preparation of KASAN, move early_init() into a separate file in order to allow deactivation of KASAN for that function. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 069239169ab060da4236a59d35aec91084cc694d Author: Christophe Leroy Date: Fri Apr 26 15:58:13 2019 +0000 powerpc/mm: refactor pgd_alloc() and pgd_free() on nohash pgd_alloc() and pgd_free() are identical on nohash 32 and 64. Reviewed-by: Aneesh Kumar K.V Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 8a2cc87a24e8c0a823c2e4ec8702c90d743a69d4 Author: Christophe Leroy Date: Fri Apr 26 15:58:12 2019 +0000 powerpc/mm: refactor pmd_pgtable() pmd_pgtable() is identical on the 4 subarches, refactor it. Reviewed-by: Aneesh Kumar K.V Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 7cec90e9499c25c31b539f8a35d949c8e9043c14 Author: Christophe Leroy Date: Fri Apr 26 15:58:11 2019 +0000 powerpc/mm: refactor pgtable freeing functions on nohash pgtable_free() and others are identical on nohash/32 and 64, so move them into asm/nohash/pgalloc.h Reviewed-by: Aneesh Kumar K.V Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit bf8156c5aef12621e20afa470ae41f92cdca377b Author: Christophe Leroy Date: Fri Apr 26 15:58:10 2019 +0000 powerpc/mm: Only keep one version of pmd_populate() functions on nohash/32 Use IS_ENABLED(CONFIG_BOOKE) to make single versions of pmd_populate() and pmd_populate_kernel() Reviewed-by: Aneesh Kumar K.V Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit e80789a3c13f9fbc8f361a988868f9b68a8cf134 Author: Christophe Leroy Date: Fri Apr 26 15:58:09 2019 +0000 powerpc/mm: refactor definition of pgtable_cache[] pgtable_cache[] is the same for the 4 subarches, lets make it common. Reviewed-by: Aneesh Kumar K.V Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit dc096864ba784c2d3d10480d71f14a53f40f997c Author: Christophe Leroy Date: Fri Apr 26 15:58:08 2019 +0000 powerpc/mm: refactor pte_alloc_one() and pte_free() families definition. Functions pte_alloc_one(), pte_alloc_one_kernel(), pte_free(), pte_free_kernel() are identical for the four subarches. This patch moves their definition in a common place. Reviewed-by: Aneesh Kumar K.V Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit b0124ff57e9405725b4dfeffbdfa929bb973ad2c Author: Christophe Leroy Date: Fri Apr 26 15:58:07 2019 +0000 powerpc/mm: inline pte_alloc_one_kernel() and pte_alloc_one() on PPC32 pte_alloc_one_kernel() and pte_alloc_one() are simple calls to pte_fragment_alloc(), so they are good candidates for inlining as already done on PPC64. Reviewed-by: Aneesh Kumar K.V Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 4a6d8cf90017019f3b2829b38157cd1a74c64856 Author: Christophe Leroy Date: Fri Apr 26 15:58:06 2019 +0000 powerpc/mm: don't use pte_alloc_kernel() until slab is available on PPC32 In the same way as PPC64, implement early allocation functions and avoid calling pte_alloc_kernel() before slab is available. Reviewed-by: Aneesh Kumar K.V Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 627f06c6f51e6af6ca3f7d1e82154b59583abc15 Author: Christophe Leroy Date: Fri Apr 26 15:58:05 2019 +0000 powerpc/book3e: move early_alloc_pgtable() to init section early_alloc_pgtable() is only used during init. Reviewed-by: Aneesh Kumar K.V Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit e7a7be5679a5c5f1817226d8253d971520038b67 Author: Christophe Leroy Date: Fri Apr 26 15:58:04 2019 +0000 powerpc/Kconfig: select PPC_MM_SLICES from subarch type Lets select PPC_MM_SLICES from the subarch config item instead of doing it via defaults declaration in the PPC_MM_SLICES item itself. Reviewed-by: Aneesh Kumar K.V Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 7a792d5da27f8407c5fe1b3c976106229e0d8bbd Author: Christophe Leroy Date: Fri Apr 26 15:58:03 2019 +0000 powerpc/mm: get rid of nohash/32/mmu.h and nohash/64/mmu.h Those files have no real added values, especially the 64 bit which only includes the common book3e mmu.h which is also included from 32 bits side. So lets do the final inclusion directly from nohash/mmu.h Reviewed-by: Aneesh Kumar K.V Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 696dffa24bd0e17c8bccb18467555c17cc15e62c Author: Christophe Leroy Date: Fri Apr 26 15:58:02 2019 +0000 powerpc/mm: move pgtable_t in asm/mmu.h pgtable_t is now identical for all subarches, move it to the top level asm/mmu.h Reviewed-by: Aneesh Kumar K.V Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 737b434d3d55c0b3c23df4eab1ea5b33f8850f30 Author: Christophe Leroy Date: Fri Apr 26 15:58:01 2019 +0000 powerpc/mm: convert Book3E 64 to pte_fragment Book3E 64 is the only subarch not using pte_fragment. In order to allow refactorisation, this patch converts it to pte_fragment. Reviewed-by: Aneesh Kumar K.V Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 447def3b06adab60b999417b316bd2352d7e643e Author: Christophe Leroy Date: Fri Apr 26 15:57:59 2019 +0000 powerpc/mm: drop __bad_pte() This has never been called (since Kernel has been in git at least), drop it. Reviewed-by: Aneesh Kumar K.V Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 26e66b08c3376b6fb4ad4508d48a4e74d61f0b9b Author: Christophe Leroy Date: Fri Apr 26 05:59:53 2019 +0000 powerpc/mm: flatten function __find_linux_pte() step 3 __find_linux_pte() is full of if/else which is hard to follow allthough the handling is pretty simple. Previous patches left a { } block. This patch removes it. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit e2fb2511888b3f7768835de0768c24d1e0d74590 Author: Christophe Leroy Date: Fri Apr 26 05:59:52 2019 +0000 powerpc/mm: flatten function __find_linux_pte() step 2 __find_linux_pte() is full of if/else which is hard to follow allthough the handling is pretty simple. Previous patch left { } blocks. This patch removes the first one by shifting its content to the left. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit fab9a1165bcda99682e3319d1c83980fd4e72365 Author: Christophe Leroy Date: Fri Apr 26 05:59:51 2019 +0000 powerpc/mm: flatten function __find_linux_pte() step 1 __find_linux_pte() is full of if/else which is hard to follow allthough the handling is pretty simple. This patch flattens the function by getting rid of as much if/else as possible. In order to ease the review, this is done in three steps. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 4df4b27585227c8ba66fdf0dd7531d1e23a37194 Author: Christophe Leroy Date: Fri Apr 26 05:59:49 2019 +0000 powerpc/mm: cleanup remaining ifdef mess in hugetlbpage.c Only 3 subarches support huge pages. So when it is either 2 of them, it is not the third one. And mmu_has_feature() is known by all subarches so IS_ENABLED() can be used instead of #ifdef Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit c5710cd20735037ba9be0e95530f0d3795ce07e6 Author: Christophe Leroy Date: Fri Apr 26 05:59:48 2019 +0000 powerpc/mm: cleanup HPAGE_SHIFT setup Only book3s/64 may select default among several HPAGE_SHIFT at runtime. 8xx always defines 512K pages as default FSL_BOOK3E always defines 4M pages as default This patch limits HUGETLB_PAGE_SIZE_VARIABLE to book3s/64 moves the definitions in subarches files. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 45d0ba527b575d47b2be75dd517b57cceda04bfe Author: Christophe Leroy Date: Fri Apr 26 05:59:47 2019 +0000 powerpc/mm: move hugetlb_disabled into asm/hugetlb.h No need to have this in asm/page.h, move it into asm/hugetlb.h Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 723f268f19daddba56a987b934f3e34a04b6499d Author: Christophe Leroy Date: Fri Apr 26 05:59:46 2019 +0000 powerpc/mm: cleanup ifdef mess in add_huge_page_size() Introduce a subarch specific helper check_and_get_huge_psize() to check the huge page sizes and cleanup the ifdef mess in add_huge_page_size() Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 5fb84fec46015758271fcd2a746633fd4d48e619 Author: Christophe Leroy Date: Fri Apr 26 05:59:45 2019 +0000 powerpc/mm: add a helper to populate hugepd This patchs adds a subarch helper to populate hugepd. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 8197af22be01e7c9ab476138652e0dc8cd22a207 Author: Christophe Leroy Date: Fri Apr 26 05:59:44 2019 +0000 powerpc/mm: split asm/hugetlb.h into dedicated subarch files Three subarches support hugepages: - fsl book3e - book3s/64 - 8xx This patch splits asm/hugetlb.h to reduce the #ifdef mess. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 0001e5aa5c028c11570f2e641f0198287f4808ba Author: Christophe Leroy Date: Fri Apr 26 05:59:43 2019 +0000 powerpc/mm: make gup_hugepte() static gup_huge_pd() is the only user of gup_hugepte() and it is located in the same file. This patch moves gup_huge_pd() after gup_hugepte() and makes gup_hugepte() static. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit b7dcf96ce03e2cab7eb6cda2ca8c66e1529e9bc3 Author: Christophe Leroy Date: Fri Apr 26 05:59:42 2019 +0000 powerpc/mm: make hugetlbpage.c depend on CONFIG_HUGETLB_PAGE The only function in hugetlbpage.c which doesn't depend on CONFIG_HUGETLB_PAGE is gup_hugepte(), and this function is only called from gup_huge_pd() which depends on CONFIG_HUGETLB_PAGE so all the content of hugetlbpage.c depends on CONFIG_HUGETLB_PAGE. This patch modifies Makefile to only compile hugetlbpage.c when CONFIG_HUGETLB_PAGE is set. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 0caed4de502c7699b7faeaea0a93b39e4f19e11a Author: Christophe Leroy Date: Fri Apr 26 05:59:41 2019 +0000 powerpc/mm: move __find_linux_pte() out of hugetlbpage.c __find_linux_pte() is the only function in hugetlbpage.c which is compiled in regardless on CONFIG_HUGETLBPAGE This patch moves it in pgtable.c. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 3dea7332ccac1f701a6f8cd4fe44faa9be2e6014 Author: Christophe Leroy Date: Fri Apr 26 05:59:40 2019 +0000 powerpc/book3e: hugetlbpage is only for CONFIG_PPC_FSL_BOOK3E As per Kconfig.cputype, only CONFIG_PPC_FSL_BOOK3E gets to select SYS_SUPPORTS_HUGETLBFS so simplify accordingly. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 5874cabe29079b72b192a28d266adf1a460fc5d6 Author: Christophe Leroy Date: Fri Apr 26 05:59:39 2019 +0000 powerpc/64: only book3s/64 supports CONFIG_PPC_64K_PAGES CONFIG_PPC_64K_PAGES cannot be selected by nohash/64. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit a521c44c3ded9fe184c5de3eed3a442af2d26f00 Author: Christophe Leroy Date: Fri Apr 26 05:59:38 2019 +0000 powerpc/book3e: drop mmu_get_tsize() This function is not used anymore, drop it. Fixes: b42279f0165c ("powerpc/mm/nohash: MM_SLICE is only used by book3s 64") Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 5953fb4f4671d7d755a81017a76766c00922d059 Author: Christophe Leroy Date: Thu Apr 25 14:29:36 2019 +0000 powerpc/mm: define subarch SLB_ADDR_LIMIT_DEFAULT This patch defines a subarch specific SLB_ADDR_LIMIT_DEFAULT to remove the #ifdefs around the setup of mm->context.slb_addr_limit It also generalises the use of mm_ctx_set_slb_addr_limit() helper. Signed-off-by: Christophe Leroy Reviewed-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit 43ed7909d70a61c621cadb5d808dc392ad537e5a Author: Christophe Leroy Date: Thu Apr 25 14:29:35 2019 +0000 powerpc/mm: define get_slice_psize() all the time get_slice_psize() can be defined regardless of CONFIG_PPC_MM_SLICES to avoid ifdefs Signed-off-by: Christophe Leroy Reviewed-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit 33f128c64919736164e70eb024da3ae5e5768cd6 Author: Christophe Leroy Date: Thu Apr 25 14:29:34 2019 +0000 powerpc/8xx: get rid of #ifdef CONFIG_HUGETLB_PAGE for slices The 8xx only selects CONFIG_PPC_MM_SLICES when CONFIG_HUGETLB_PAGE is set. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 203a1fa6286671900698485ddffbb435901aa75b Author: Christophe Leroy Date: Thu Apr 25 14:29:33 2019 +0000 powerpc/mm: remove a couple of #ifdef CONFIG_PPC_64K_PAGES in mm/slice.c This patch replaces a couple of #ifdef CONFIG_PPC_64K_PAGES by IS_ENABLED(CONFIG_PPC_64K_PAGES) to improve code maintainability. Signed-off-by: Christophe Leroy Reviewed-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit b4baad0b2712471740c58a1bc9578ab057af7514 Author: Christophe Leroy Date: Thu Apr 25 14:29:32 2019 +0000 powerpc/mm: remove unnecessary #ifdef CONFIG_PPC64 For PPC32 that's a noop, gcc should be smart enough to ignore it. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 877461210ea1c92f159bf261924e58d7d27edadc Author: Christophe Leroy Date: Thu Apr 25 14:29:31 2019 +0000 powerpc/mm: get rid of mm_ctx_slice_mask_xxx() Now that slice_mask_for_size() is in mmu.h, the mm_ctx_slice_mask_xxx() are not needed anymore, so drop them. Note that the 8xx ones where not used anyway. Signed-off-by: Christophe Leroy Reviewed-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit fca5c1e9eb5e263c1b4def0b5ae4ce5b2e1a9877 Author: Christophe Leroy Date: Thu Apr 25 14:29:30 2019 +0000 powerpc/mm: move slice_mask_for_size() into mmu.h Move slice_mask_for_size() into subarch mmu.h Signed-off-by: Christophe Leroy Reviewed-by: Aneesh Kumar K.V [mpe: Retain the BUG_ON()s, rather than converting to VM_BUG_ON()] Signed-off-by: Michael Ellerman commit 6f60cc98df2be7f082bd786aa824ceabd24d24cb Author: Christophe Leroy Date: Thu Apr 25 14:29:29 2019 +0000 powerpc/mm: hand a context_t over to slice_mask_for_size() instead of mm_struct slice_mask_for_size() only uses mm->context, so hand directly a pointer to the context. This will help moving the function in subarch mmu.h in the next patch by avoiding having to include the definition of struct mm_struct Signed-off-by: Christophe Leroy Reviewed-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit 02f89aed6b829d73980bb633d9f4e3de9eb45543 Author: Christophe Leroy Date: Thu Apr 25 14:29:28 2019 +0000 powerpc/mm: no slice for nohash/64 Only nohash/32 and book3s/64 support mm slices. Signed-off-by: Christophe Leroy Reviewed-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit 5ba666d56c4ff9b011c1b029dcc689cff8b176fb Author: Christophe Leroy Date: Thu Apr 25 14:29:27 2019 +0000 powerpc/mm: fix erroneous duplicate slb_addr_limit init Commit 67fda38f0d68 ("powerpc/mm: Move slb_addr_linit to early_init_mmu") moved slb_addr_limit init out of setup_arch(). Commit 701101865f5d ("powerpc/mm: Reduce memory usage for mm_context_t for radix") brought it back into setup_arch() by error. This patch reverts that erroneous regress. Fixes: 701101865f5d ("powerpc/mm: Reduce memory usage for mm_context_t for radix") Signed-off-by: Christophe Leroy Reviewed-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit 27e23b5f5f6f22292347901303aab2a1d458bcb5 Author: Christophe Leroy Date: Fri Mar 29 10:00:02 2019 +0000 powerpc/mm: Move nohash specifics in subdirectory mm/nohash Many files in arch/powerpc/mm are only for nohash. This patch creates a subdirectory for them. Signed-off-by: Christophe Leroy [mpe: Shorten new filenames] Signed-off-by: Michael Ellerman commit 17312f258cf6eb584f276ad592972ade7e16e318 Author: Christophe Leroy Date: Fri Mar 29 10:00:01 2019 +0000 powerpc/mm: Move book3s32 specifics in subdirectory mm/book3s64 Several files in arch/powerpc/mm are only for book3S32. This patch creates a subdirectory for them. Signed-off-by: Christophe Leroy [mpe: Shorten new filenames] Signed-off-by: Michael Ellerman commit 47d99948eee48a84a4b242c17915a4ff59a29b5d Author: Christophe Leroy Date: Fri Mar 29 10:00:00 2019 +0000 powerpc/mm: Move book3s64 specifics in subdirectory mm/book3s64 Many files in arch/powerpc/mm are only for book3S64. This patch creates a subdirectory for them. Signed-off-by: Christophe Leroy [mpe: Update the selftest sym links, shorten new filenames, cleanup some whitespace and formatting in the new files.] Signed-off-by: Michael Ellerman commit b57969db81a258a25dd59e306584ba671a037350 Author: Vinod Koul Date: Thu May 2 16:29:30 2019 +0530 soundwire: remove multiple blank lines Multi-blank lines do not help readability so remove them Checkpatch complains: CHECK: Please don't use multiple blank lines Signed-off-by: Vinod Koul Signed-off-by: Greg Kroah-Hartman commit 897fe40e5227bc11365980a772dac4a16d56f8ca Author: Vinod Koul Date: Thu May 2 16:29:29 2019 +0530 soundwire: add a blank line between functions For improving code readability it helps to have a blank line between function so add when missing. Checkpatch complains: CHECK: Please use a blank line after function/struct/union/enum declarations Signed-off-by: Vinod Koul Signed-off-by: Greg Kroah-Hartman commit 1824dd8035fceb337801bed76515eceda8d7af6b Author: Vinod Koul Date: Thu May 2 16:29:28 2019 +0530 soundwire: wrap macro argument in parenthesis macro argument should be inside a parenthesis to avoid precedence issues checkpatch complains: CHECK: Macro argument 'n' may be better as '(n)' to avoid precedence issues Signed-off-by: Vinod Koul Signed-off-by: Greg Kroah-Hartman commit 7d3b3cdfd16536642f7eebcdb33daaf1ce9469c5 Author: Vinod Koul Date: Thu May 2 16:29:27 2019 +0530 soundwire: fix more typos Found few more typos in the code, fix them CHECK: 'and and' may be misspelled - perhaps 'and'? CHECK: 'smaple' may be misspelled - perhaps 'sample'? Signed-off-by: Vinod Koul Signed-off-by: Greg Kroah-Hartman commit 72b16d4a91d44c6b09e599fd49379440afa419c2 Author: Vinod Koul Date: Thu May 2 16:29:26 2019 +0530 soundwire: avoid multiple assignments Modify the code to avoid multiple assignments by assigning to variable after error checks in soundwire bus. CHECK: multiple assignments should be avoided Signed-off-by: Vinod Koul Signed-off-by: Greg Kroah-Hartman commit 1215daee56edc1640997b439506b2006e47574c0 Author: Vinod Koul Date: Thu May 2 16:29:25 2019 +0530 soundwire: intel: more alignment fixes Found few more issues reported checkpatch on code alignment so fix those as well in the intel module. Signed-off-by: Vinod Koul Signed-off-by: Greg Kroah-Hartman commit 62f0cec3b0da067ec689edbefea5de61f025f6d6 Author: Vinod Koul Date: Thu May 2 16:29:24 2019 +0530 soundwire: more alignment fixes Found few more issues reported checkpatch on code alignment so fix those as well in the soundwire core. Signed-off-by: Vinod Koul Signed-off-by: Greg Kroah-Hartman commit 51ed743734fa90c215310854d502371adfa63575 Author: Vinod Koul Date: Thu May 2 16:29:23 2019 +0530 soundwire: add argument to function definition Checkpatch warns that function definition of __sdw_register_driver misses argument, so add it WARNING: function definition argument 'struct module *' should also have an identifier name Signed-off-by: Vinod Koul Signed-off-by: Greg Kroah-Hartman commit d6badd1c15352ebd80c3eb2132f8bcc9fe3cb1d8 Author: Vinod Koul Date: Thu May 2 16:29:22 2019 +0530 soundwire: intel: remove empty line after braces Linux code style doesn't expect empty lines after braces and gives warning: CHECK: Blank lines aren't necessary after an open brace '{' Remove the empty line in intel module Signed-off-by: Vinod Koul Signed-off-by: Greg Kroah-Hartman commit 4415b443ca08e1e230c818361235cd10527cbb82 Author: Vinod Koul Date: Thu May 2 16:29:21 2019 +0530 soundwire: cadence: remove empty line after braces Linux code style doesn't expect empty lines after braces and gives warning: CHECK: Blank lines aren't necessary after an open brace '{' Remove the empty line in cadence lib Signed-off-by: Vinod Koul Signed-off-by: Greg Kroah-Hartman commit fa358bb536b96a9c920bc4156664587412c57b2c Author: Vinod Koul Date: Thu May 2 16:29:20 2019 +0530 soundwire: remove empty line before/after braces Linux code style doesn't expect empty lines before or after braces and gives warning: CHECK: Blank lines aren't necessary after an open brace '{' CHECK: Blank lines aren't necessary before a close brace '}' Fix these instances in soundwire core Signed-off-by: Vinod Koul Signed-off-by: Greg Kroah-Hartman commit 171580f69ebc88370204482464804d94f78f077a Author: Vinod Koul Date: Thu May 2 16:29:18 2019 +0530 soundwire: fix SPDX license for header files Some more headers had C++ style SDPX line, fix that and change copyright so that it is consistent with rest of the code in subsystem Signed-off-by: Vinod Koul Signed-off-by: Greg Kroah-Hartman commit 92fd75f103248f9dff32ad8ca8cc6d1c05756712 Author: Vinod Koul Date: Thu May 2 16:29:17 2019 +0530 soundwire: fix kconfig help format Move to help format instead of --help-- as that is not recommended and this makes file consistent with other instance Signed-off-by: Vinod Koul Signed-off-by: Greg Kroah-Hartman commit 17ed5bef49f42ec04beb2ce2aebd24a5296c2a80 Author: Pierre-Louis Bossart Date: Wed May 1 10:57:45 2019 -0500 soundwire: add missing newlines in dynamic debug logs For some reason the newlines are not used everywhere. Fix as needed. Reported-by: Joe Perches Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Greg Kroah-Hartman commit 5d2ab7e97ae888e68ada96e1216840e8e521e432 Author: Pierre-Louis Bossart Date: Wed May 1 10:57:44 2019 -0500 soundwire: cadence_master: remove spurious newline Extra newline does not improve readability. Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Greg Kroah-Hartman commit 4c56860280b85061f266c2e38c3f42a5f3085de9 Author: Pierre-Louis Bossart Date: Wed May 1 10:57:43 2019 -0500 soundwire: cadence_master: fix boolean comparisons No need for explicit test against true Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Greg Kroah-Hartman commit f6e20967d86db68fbd795fcfcabe6cb7348ea306 Author: Pierre-Louis Bossart Date: Wed May 1 10:57:42 2019 -0500 soundwire: cadence_master: balance parentheses While not strictly necessary, balanced parentheses help with code readability. Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Greg Kroah-Hartman commit bbb6381727b3f47f94bc19cec55149358dc3dc12 Author: Pierre-Louis Bossart Date: Wed May 1 10:57:41 2019 -0500 soundwire: cadence_master: fix alignment issues Use Linux style Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Greg Kroah-Hartman commit 2890a6363a8d42f6a24f0bbe6a48fae53d8bd875 Author: Pierre-Louis Bossart Date: Wed May 1 10:57:40 2019 -0500 soundwire: intel: fix boolean comparison No need for explicit test against true Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Greg Kroah-Hartman commit 7cc6e315317fe3a077fa474941a3ebf93fc15e78 Author: Pierre-Louis Bossart Date: Wed May 1 10:57:39 2019 -0500 soundwire: intel: protect macro parameters Extra parentheses required here Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Greg Kroah-Hartman commit d542bc9e22342d29de9ef0a7f31b8f158711753a Author: Pierre-Louis Bossart Date: Wed May 1 10:57:38 2019 -0500 soundwire: intel: fix alignment issues Use Linux style Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Greg Kroah-Hartman commit 505ccb0065208214a9b582dea6984532c1c241c6 Author: Pierre-Louis Bossart Date: Wed May 1 10:57:37 2019 -0500 soundwire: intel_init: fix alignment issues Use Linux style Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Greg Kroah-Hartman commit c0cbfb0310452a6a6120485938a42151d0bacd37 Author: Pierre-Louis Bossart Date: Wed May 1 10:57:36 2019 -0500 soundwire: slave: fix alignment issues Use Linux style Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Greg Kroah-Hartman commit 1fe74a5e41d6e57d8078de79fe0379e7701b1492 Author: Pierre-Louis Bossart Date: Wed May 1 10:57:35 2019 -0500 soundwire: stream: fix alignment issues Use Linux style Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Greg Kroah-Hartman commit 00910f3cb0c59f0d9c5acf2f85395b2af7955526 Author: Pierre-Louis Bossart Date: Wed May 1 10:57:34 2019 -0500 soundwire: mipi_disco: fix boolean comparisons No need for explicit test against true Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Greg Kroah-Hartman commit 31dba31297fd9e79798b85c58043641f3fdac825 Author: Pierre-Louis Bossart Date: Wed May 1 10:57:33 2019 -0500 soundwire: mipi_disco: fix alignment issues Use Linux style. In some cases parenthesis alignment is modified to keep the code readable. Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Greg Kroah-Hartman commit 74a8d8022fd9d91a56d02d10e6c0d53481172f51 Author: Pierre-Louis Bossart Date: Wed May 1 10:57:32 2019 -0500 soundwire: bus_type: fix alignment issues Use Linux style Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Greg Kroah-Hartman commit 816d9bf4788bae059d19f84ad9375485e0e63ef8 Author: Pierre-Louis Bossart Date: Wed May 1 10:57:31 2019 -0500 soundwire: bus: remove spurious newline tools complain here and the location of the newline does not improve readability. Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Greg Kroah-Hartman commit d7b956b6257b20e3c65ed5877e3ac493a88350fd Author: Pierre-Louis Bossart Date: Wed May 1 10:57:30 2019 -0500 soundwire: bus: fix boolean comparisons no need for an explicit test against false reported by Coccinelle Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Greg Kroah-Hartman commit 09830d5e34586ca66b22fa745ee18fe826b36065 Author: Pierre-Louis Bossart Date: Wed May 1 10:57:29 2019 -0500 soundwire: bus: remove useless parentheses and make the code more readable Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Greg Kroah-Hartman commit 21c2de29e85f084793c9beb016c8a5a23801b564 Author: Pierre-Louis Bossart Date: Wed May 1 10:57:28 2019 -0500 soundwire: bus: fix typos in comments spelling mistakes Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Greg Kroah-Hartman commit 73ede04682e18909d7f3f75c3ec6ab59f854661e Author: Pierre-Louis Bossart Date: Wed May 1 10:57:27 2019 -0500 soundwire: bus: fix alignment issues Use Linux style Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Greg Kroah-Hartman commit 806a11f095e24f4fae12211ee86caa9bde3ae3c0 Author: Pierre-Louis Bossart Date: Wed May 1 10:57:26 2019 -0500 soundwire: fix alignment issues in header files use Linux style Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Greg Kroah-Hartman commit 392f10453dd2bfb86b10b7978020f0509a29b919 Author: Vinod Koul Date: Thu May 2 16:29:19 2019 +0530 soundwire: intel: fix SPDX license for header file Some more headers had C++ style SDPX line, fix that and change copyright so that it is consistent with rest of the code in subsystem Signed-off-by: Vinod Koul Signed-off-by: Greg Kroah-Hartman commit 23859465529550fcf390f3a5a28cf767adb83232 Author: Pierre-Louis Bossart Date: Wed May 1 10:57:25 2019 -0500 soundwire: fix SPDX license for header files No C++ comments in .h files Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Greg Kroah-Hartman commit 9d7cd9d500826a14fc68fb6994db375432866c6a Author: Pierre-Louis Bossart Date: Wed May 1 10:57:24 2019 -0500 soundwire: Kconfig: fix help format Move to the regular help format, --help-- is no longer recommended. Reviewed-by: Takashi Iwai Signed-off-by: Pierre-Louis Bossart Signed-off-by: Greg Kroah-Hartman commit aa8eaaaa123ab2ee15a3bebb90e8c2d55c895c47 Author: Gustavo A. R. Silva Date: Wed May 1 10:16:15 2019 -0500 rtw88: phy: mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warnings: drivers/net/wireless/realtek/rtw88/phy.c: In function ‘rtw_get_channel_group’: ./include/linux/compiler.h:77:22: warning: this statement may fall through [-Wimplicit-fallthrough=] # define unlikely(x) __builtin_expect(!!(x), 0) ^~~~~~~~~~~~~~~~~~~~~~~~~~ ./include/asm-generic/bug.h:125:2: note: in expansion of macro ‘unlikely’ unlikely(__ret_warn_on); \ ^~~~~~~~ drivers/net/wireless/realtek/rtw88/phy.c:907:3: note: in expansion of macro ‘WARN_ON’ WARN_ON(1); ^~~~~~~ drivers/net/wireless/realtek/rtw88/phy.c:908:2: note: here case 1: ^~~~ In file included from ./include/linux/bcd.h:5, from drivers/net/wireless/realtek/rtw88/phy.c:5: drivers/net/wireless/realtek/rtw88/phy.c: In function ‘phy_get_2g_tx_power_index’: ./include/linux/compiler.h:77:22: warning: this statement may fall through [-Wimplicit-fallthrough=] # define unlikely(x) __builtin_expect(!!(x), 0) ^~~~~~~~~~~~~~~~~~~~~~~~~~ ./include/asm-generic/bug.h:125:2: note: in expansion of macro ‘unlikely’ unlikely(__ret_warn_on); \ ^~~~~~~~ drivers/net/wireless/realtek/rtw88/phy.c:1021:3: note: in expansion of macro ‘WARN_ON’ WARN_ON(1); ^~~~~~~ drivers/net/wireless/realtek/rtw88/phy.c:1022:2: note: here case RTW_CHANNEL_WIDTH_20: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Kalle Valo commit b85bd9a14c4b2722dc8764acdcce9b503e638760 Author: Colin Ian King Date: Wed May 1 15:19:45 2019 +0100 rtw88: fix shift of more than 32 bits of a integer Currently the shift of an integer value more than 32 bits can occur when nss is more than 32. Fix this by making the integer constants unsigned long longs before shifting and bit-wise or'ing with the u64 ra_mask to avoid the undefined shift behaviour. Addresses-Coverity: ("Bad shift operation") Fixes: e3037485c68e ("rtw88: new Realtek 802.11ac driver") Signed-off-by: Colin Ian King Signed-off-by: Kalle Valo commit 1ba12322e2f0934383f111a5e695702aaf46b812 Merge: 6a38df676a0a c3c0b70cd3f8 Author: Tony Lindgren Date: Thu May 2 07:50:05 2019 -0700 Merge branch 'am5-sdio-fixes' into fixes commit c3c0b70cd3f801bded7a548198ee1c9851a0ca82 Author: Faiz Abbas Date: Tue Apr 30 11:38:56 2019 +0530 ARM: dts: dra76x: Update MMC2_HS200_MANUAL1 iodelay values Update the MMC2_HS200_MANUAL1 iodelay values to match with the latest dra76x data manual[1]. The new iodelay values will have better marginality and should prevent issues in corner cases. Also this particular pinctrl-array is using spaces instead of tabs for spacing between the values and the comments. Fix this as well. [1] http://www.ti.com/lit/ds/symlink/dra76p.pdf Cc: Signed-off-by: Faiz Abbas [tony@atomide.com: updated description with a bit more info] Signed-off-by: Tony Lindgren commit 88a748419b84187fd1da05637b8e5928b04a1e06 Author: Faiz Abbas Date: Thu May 2 14:17:48 2019 +0530 ARM: dts: am57xx-idk: Remove support for voltage switching for SD card If UHS speed modes are enabled, a compatible SD card switches down to 1.8V during enumeration. If after this a software reboot/crash takes place and on-chip ROM tries to enumerate the SD card, the difference in IO voltages (host @ 3.3V and card @ 1.8V) may end up damaging the card. The fix for this is to have support for power cycling the card in hardware (with a PORz/soft-reset line causing a power cycle of the card). Since am571x-, am572x- and am574x-idk don't have this capability, disable voltage switching for these boards. The major effect of this is that the maximum supported speed mode is now high speed(50 MHz) down from SDR104(200 MHz). Cc: Signed-off-by: Faiz Abbas Signed-off-by: Tony Lindgren commit dadec066d8fa7da227f623f632ea114690fecaf8 Author: Tri Vo Date: Mon Apr 15 11:18:33 2019 -0700 module: add stubs for within_module functions Provide stubs for within_module_core(), within_module_init(), and within_module() to prevent build errors when !CONFIG_MODULES. Suggested-by: Matthew Wilcox Reported-by: Randy Dunlap Reported-by: kbuild test robot Link: https://marc.info/?l=linux-mm&m=155384681109231&w=2 Signed-off-by: Tri Vo Signed-off-by: Jessica Yu commit e4f50c8d1047e2c3b6fcf9edc22a26469f72eeb7 Author: Tony Lindgren Date: Wed May 1 14:24:57 2019 -0700 bus: ti-sysc: Handle devices with no control registers Some interconnect target modules have no module control registers at all, such as d_can on am335x and am437x. The d_can register offset at 0 is CTL register with 0x401 as the default value. I guess I mistook the 0x401 value for a revision register as the value happens to look similar to what the revision registers typically have for other modules. To handle modules with no control registers, we need to improve the ti-sysc driver a bit to bail out with errors on no control registers, and then we can remove the bogus revision registers for d_can. Cc: Sebastian Andrzej Siewior Tested-by: Keerthy Signed-off-by: Tony Lindgren commit 26f146ed971c0e4a264ce525d7a66a71ef73690d Author: Esben Haabendal Date: Thu May 2 08:43:43 2019 +0200 net: ll_temac: Fix typo bug for 32-bit Fixes: d84aec42151b ("net: ll_temac: Fix support for 64-bit platforms") Signed-off-by: Esben Haabendal Signed-off-by: David S. Miller commit 9b555c4d784c468b4167eef9ab621b5203e4f479 Author: Gustavo A. R. Silva Date: Mon Apr 22 11:21:06 2019 -0500 kdb: kdb_support: replace strcpy() by strscpy() The strcpy() function is being deprecated. Replace it by the safer strscpy() and fix the following Coverity warning: "You might overrun the 129-character fixed-size string ks_namebuf by copying name without checking the length." Addresses-Coverity-ID: 138995 ("Copy into fixed size buffer") Signed-off-by: Gustavo A. R. Silva Signed-off-by: Daniel Thompson commit 4cc168eaf3b67d76547fb420c22abe22a3c86003 Author: Gustavo A. R. Silva Date: Mon Apr 22 11:33:42 2019 -0500 gdbstub: Replace strcpy() by strscpy() The strcpy() function is being deprecated. Replace it by the safer strscpy() and fix the following Coverity warning: "You might overrun the 1024-character fixed-size string remcom_in_buffer by copying cmd without checking the length." Addresses-Coverity-ID: 138999 ("Copy into fixed size buffer") Signed-off-by: Gustavo A. R. Silva Signed-off-by: Daniel Thompson commit a5d5092c9285f6c8937b56f9c6ff2b22d818fc25 Author: Gustavo A. R. Silva Date: Tue Feb 26 13:16:14 2019 -0600 gdbstub: mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warnings: kernel/debug/gdbstub.c: In function ‘gdb_serial_stub’: kernel/debug/gdbstub.c:1031:7: warning: this statement may fall through [-Wimplicit-fallthrough=] if (remcom_in_buffer[1] == '\0') { ^ kernel/debug/gdbstub.c:1036:3: note: here case 'C': /* Exception passing */ ^~~~ kernel/debug/gdbstub.c:1040:7: warning: this statement may fall through [-Wimplicit-fallthrough=] if (tmp == 0) ^ kernel/debug/gdbstub.c:1043:3: note: here case 'c': /* Continue packet */ ^~~~ kernel/debug/gdbstub.c:1050:4: warning: this statement may fall through [-Wimplicit-fallthrough=] dbg_activate_sw_breakpoints(); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kernel/debug/gdbstub.c:1052:3: note: here default: ^~~~~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 Notice that, in this particular case, the code comment is modified in accordance with what GCC is expecting to find. This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Acked-by: Jason Wessel Signed-off-by: Daniel Thompson commit 9f832fda79eb6e4f8ebde8d77eb442b95bf6b08a Author: Tomer Tayar Date: Thu May 2 15:37:19 2019 +0300 habanalabs: Update CPU DMA memory label name The CPU accessible DMA memory is general and not used only for PQ. Accordingly, this patch renames the "free_cpu_pq_dma_mem" label with "free_cpu_dma_mem". Signed-off-by: Tomer Tayar Signed-off-by: Oded Gabbay commit 98587c2d894c34c9af5cd84ca169e1cd493aa692 Author: Martin Schwidefsky Date: Tue Apr 30 12:33:45 2019 +0200 s390: simplify disabled_wait The disabled_wait() function uses its argument as the PSW address when it stops the CPU with a wait PSW that is disabled for interrupts. The different callers sometimes use a specific number like 0xdeadbeef to indicate a specific failure, the early boot code uses 0 and some other calls sites use __builtin_return_address(0). At the time a dump is created the current PSW and the registers of a CPU are written to lowcore to make them avaiable to the dump analysis tool. For a CPU stopped with disabled_wait the PSW and the registers do not really make sense together, the PSW address does not point to the function the registers belong to. Simplify disabled_wait() by using _THIS_IP_ for the PSW address and drop the argument to the function. Signed-off-by: Martin Schwidefsky commit ec7bf4789d95a0053bac0dfa36fbefd8cc584eea Author: Martin Schwidefsky Date: Mon Feb 18 16:51:28 2019 +0100 s390/ftrace: use HAVE_FUNCTION_GRAPH_RET_ADDR_PTR Make the call chain more reliable by tagging the ftrace stack entries with the stack pointer that is associated with the return address. Signed-off-by: Martin Schwidefsky commit 78c98f9074135d3dab4e39544e0a537f92388fce Author: Martin Schwidefsky Date: Mon Jan 28 08:33:08 2019 +0100 s390/unwind: introduce stack unwind API Rework the dump_trace() stack unwinder interface to support different unwinding algorithms. The new interface looks like this: struct unwind_state state; unwind_for_each_frame(&state, task, regs, start_stack) do_something(state.sp, state.ip, state.reliable); The unwind_bc.c file contains the implementation for the classic back-chain unwinder. One positive side effect of the new code is it now handles ftraced functions gracefully. It prints the real name of the return function instead of 'return_to_handler'. Signed-off-by: Martin Schwidefsky commit 1c705ad5efae9c712e763a47fbcc95b87b7347d2 Author: Martin Schwidefsky Date: Thu Jan 3 16:49:35 2019 +0100 s390/opcodes: add missing instructions to the disassembler Signed-off-by: Martin Schwidefsky commit e21f8baf8d9a452a09a9cf7c8ab4720ff9a891ef Author: Martin Schwidefsky Date: Thu Jan 17 09:29:15 2019 +0100 s390/bug: add entry size to the __bug_table section Change the __EMIT_BUG inline assembly to emit mergeable __bug_table entries with type @progbits and specify the size of each entry. The entry size is encoded sh_entsize field of the section definition, it allows to identify which struct bug_entry to use to decode the entries. This will be needed for the objtool support. Signed-off-by: Martin Schwidefsky commit bf72630130c29e2ba42e3db8d502de6bdfaa7d9a Author: Martin Schwidefsky Date: Fri Apr 12 08:57:34 2019 +0200 s390: use proper expoline sections for .dma code The text_dma.S code uses its own macro to generate an inline version of an expoline. To make it easier to identify all expolines in the kernel use a thunk and a branch to the thunk just like the rest of the kernel code does it. The name of the text_dma.S expoline thunk is __dma__s390_indirect_jump_r14 and the section is named .dma.text.__s390_indirect_jump_r14. This will be needed for the objtool support. Signed-off-by: Martin Schwidefsky commit 40a3abf751dd0ff9ef758fd5c14530f557cd432d Author: Martin Schwidefsky Date: Fri Feb 1 16:33:37 2019 +0100 s390/nospec: rename assembler generated expoline thunks The assembler version of the expoline thunk use the naming __s390x_indirect_jump_rxuse_ry while the compiler generates names like __s390_indirect_jump_rx_use_ry. Make the naming more consistent. Signed-off-by: Martin Schwidefsky commit 26a374ae7af8d7003ad28a962fba0141e68af5da Author: Martin Schwidefsky Date: Thu Jan 17 10:02:22 2019 +0100 s390: add missing ENDPROC statements to assembler functions The assembler code in arch/s390 misses proper ENDPROC statements to properly end functions in a few places. Add them. Signed-off-by: Martin Schwidefsky commit b1c16ac978fd40ae636e629bb69a652df7eebdc2 Author: Nikolay Borisov Date: Mon Apr 1 11:29:57 2019 +0300 btrfs: Use kvmalloc for allocating compressed path context Recent refactoring of cow_file_range_async means it's now possible to request a rather large physically contiguous memory via kmalloc. The size is dependent on the number of 512k chunks that the compressed range consists of. David reported multiple OOM messages on such large allocations. Fix it by switching to using kvmalloc. Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit 7447555fe7765d7823f5db7760bfdeba035b7bad Author: Nikolay Borisov Date: Tue Mar 12 17:20:30 2019 +0200 btrfs: Factor out common extent locking code in submit_compressed_extents Irrespective of whether the compress code fell back to uncompressed or a compressed extent has to be submitted, the extent range is always locked. So factor out the common lock_extent call at the beginning of the loop. No functional changes just removes one duplicate lock_extent call. Reviewed-by: Johannes Thumshirn Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit 4336650aff746e23d387227db826b39f00a3f3c3 Author: Nikolay Borisov Date: Tue Mar 12 17:20:29 2019 +0200 btrfs: Set io_tree only once in submit_compressed_extents The inode never changes so it's sufficient to dereference it and get the iotree only once, before the execution of the main loop. No functional changes, only the size of the function is decreased: add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-44 (-44) Function old new delta submit_compressed_extents 1240 1196 -44 Total: Before=88476, After=88432, chg -0.05% Reviewed-by: Johannes Thumshirn Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit 69684c5a88903f4b8b05850d9b89d276b54ec54b Author: Nikolay Borisov Date: Tue Mar 12 17:20:28 2019 +0200 btrfs: Replace clear_extent_bit with unlock_extent Reviewed-by: Johannes Thumshirn Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit 1368c6dac7f10a18195fa4ebf072799a727fd4a6 Author: Nikolay Borisov Date: Tue Mar 12 17:20:27 2019 +0200 btrfs: Make compress_file_range take only struct async_chunk All context this function needs is held within struct async_chunk. Currently we not only pass the struct but also every individual member. This is redundant, simplify it by only passing struct async_chunk and leaving it to compress_file_range to extract the values it requires. No functional changes. Reviewed-by: Johannes Thumshirn Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit c5a68aec4e6890ed019020efaac2ac47b48855ff Author: Nikolay Borisov Date: Tue Mar 12 17:20:26 2019 +0200 btrfs: Remove fs_info from struct async_chunk The associated btrfs_work already contains a reference to the fs_info so use that instead of passing it via async_chunk. No functional changes. Reviewed-by: Johannes Thumshirn Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit b5326271e791ea98b97765cc45cff4d948c7c5a4 Author: Nikolay Borisov Date: Tue Mar 12 17:20:25 2019 +0200 btrfs: Rename async_cow to async_chunk Now that we have an explicit async_chunk struct rename references to variables of this type to async_chunk. No functional changes. Reviewed-by: Johannes Thumshirn Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit 97db120451e20c65bc5f2addfd63e1e8a3f0a39e Author: Nikolay Borisov Date: Tue Mar 12 17:20:24 2019 +0200 btrfs: Preallocate chunks in cow_file_range_async This commit changes the implementation of cow_file_range_async in order to get rid of the BUG_ON in the middle of the loop. Additionally it reworks the inner loop in the hopes of making it more understandable. The idea is to make async_cow be a top-level structured, shared amongst all chunks being sent for compression. This allows to perform one memory allocation at the beginning and gracefully fail the IO if there isn't enough memory. Now, each chunk is going to be described by an async_chunk struct. It's the responsibility of the final chunk to actually free the memory. Reviewed-by: Johannes Thumshirn Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit c8eaeac7b734347c3afba7008b7af62f37b9c140 Author: Josef Bacik Date: Wed Apr 10 15:56:10 2019 -0400 btrfs: reserve delalloc metadata differently With the per-inode block reserves we started refilling the reserve based on the calculated size of the outstanding csum bytes and extents for the inode, including the amount we were adding with the new operation. However, generic/224 exposed a problem with this approach. With 1000 files all writing at the same time we ended up with a bunch of bytes being reserved but unusable. When you write to a file we reserve space for the csum leaves for those bytes, the number of extent items required to cover those bytes, and a single transaction item for updating the inode at ordered extent finish for that range of bytes. This is held until the ordered extent finishes and we release all of the reserved space. If a second write comes in at this point we would add a single reservation for the new outstanding extent and however many reservations for the csum leaves. At this point we find the delta of how much we have reserved and how much outstanding size this is and attempt to reserve this delta. If the first write finishes it will not release any space, because the space it had reserved for the initial write is still needed for the second write. However some space would have been used, as we have added csums, extent items, and dirtied the inode. Our reserved space would be > 0 but less than the total needed reserved space. This is just for a single inode, now consider generic/224. This has 1000 inodes writing in parallel to a very small file system, 1GiB. In my testing this usually means we get about a 120MiB metadata area to work with, more than enough to allow the writes to continue, but not enough if all of the inodes are stuck trying to reserve the slack space while continuing to hold their leftovers from their initial writes. Fix this by pre-reserved _only_ for the space we are currently trying to add. Then once that is successful modify our inodes csum count and outstanding extents, and then add the newly reserved space to the inodes block_rsv. This allows us to actually pass generic/224 without running out of metadata space. Signed-off-by: Josef Bacik Signed-off-by: David Sterba commit 9d9f2cccde952126185e3336af0d4dc62eb254ad Author: Christophe Leroy Date: Fri Mar 29 09:59:59 2019 +0000 powerpc/mm: change #include "mmu_decl.h" to This patch make inclusion of mmu_decl.h independant of the location of the file including it. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 71faf8145cdc20f22aa398eb7b206b33826cf2bd Author: Christophe Leroy Date: Thu Mar 28 13:19:47 2019 +0000 powerpc/nohash64: clean pgtable.h TRANSPARENT_HUGEPAGE is only supported by book3s VMEMMAP_REGION_ID is never used Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit a1ac2a9c4f98482e49305ab5551b7b32f9cac39b Author: Christophe Leroy Date: Thu Mar 28 13:03:45 2019 +0000 powerpc/book3e: drop BUG_ON() in map_kernel_page() early_alloc_pgtable() never returns NULL as it panics on failure. This patch drops the three BUG_ON() which check the non nullity of early_alloc_pgtable() returned value. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit ba209e1587227f8f5a86bb4b040547cf9a79d4cc Author: Tomer Tayar Date: Thu May 2 11:33:12 2019 +0300 habanalabs: Update CPU DMA pool label name The CPU accessible DMA pool is general and not used only for PQ. Accordingly, this patch rename the "free_cpu_pq_pool" label with "free_cpu_accessible_dma_pool". Signed-off-by: Tomer Tayar Signed-off-by: Oded Gabbay commit 20ce2a1a2e4d9e431c5573eb944db71d0d5f3e29 Author: Brett Creeley Date: Thu Feb 28 15:26:02 2019 -0800 ice: Use dev_err when ice_cfg_vsi_lan fails dev_err makes more sense than dev_info when this call fails. Signed-off-by: Brett Creeley Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit c2a23e00613bde4a6d5f88c2b4facd5c7be6be87 Author: Brett Creeley Date: Thu Feb 28 15:26:01 2019 -0800 ice: Refactor link event flow Currently the link event flow works, but can be much better. Refactor the link event flow to make it cleaner and more clear on what is going on. Signed-off-by: Brett Creeley Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 49a6a5d7ebfbf99ea5ba8fa4d55a29b7a446cbae Author: Tony Nguyen Date: Thu Feb 28 15:26:00 2019 -0800 ice: Add missing PHY type to link settings The PHY type ICE_PHY_TYPE_LOW_25G_AUI_C2C is missing from ice_get_settings_link_up() which is causing a warning message for unrecognized PHY. Add the PHY type to correctly set the settings and avoid the warning message. Signed-off-by: Tony Nguyen Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit b07833a00d70fb731bb3aba8876a56e37b549f3e Author: Brett Creeley Date: Thu Feb 28 15:25:59 2019 -0800 ice: Add reg_idx variable in ice_q_vector structure Every time we want to re-enable interrupts and/or write to a register that requires an interrupt vector's hardware index we do the following: vsi->hw_base_vector + q_vector->v_idx This is a wasteful operation, especially in the hot path. Fix this by adding a u16 reg_idx member to the ice_q_vector structure and make the necessary changes to make this work. Signed-off-by: Brett Creeley Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 8d7189d266ccec6dce1a4c2dd2bde6e0d632a24c Author: Md Fahad Iqbal Polash Date: Thu Feb 28 15:25:58 2019 -0800 ice: Remove runtime change of PFINT_OICR_ENA register Runtime change of PFINT_OICR_ENA register is unnecessary. The handlers should always clear the atomic bit for each task as they start, because it will make sure that any late interrupt will either 1) re-set the bit, or 2) be handled directly in the "already running" task handler. Signed-off-by: Md Fahad Iqbal Polash Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 5079b853b221005ac06192265c917ea79c11c0e2 Author: Akeem G Abodunrin Date: Thu Feb 28 15:25:57 2019 -0800 ice: Fix issue when adding more than allowed VLANs This patch fixes issue with non trusted VFs being able to add more than permitted number of VLANs by adding a check in ice_vc_process_vlan_msg. Also don't return an error in this case as the VF does not need to know that it is not trusted. Also rework ice_vsi_kill_vlan to use the right types. Signed-off-by: Akeem G Abodunrin Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit acd1751a3988e45e3464c9405dc5b95deb55865d Author: Brett Creeley Date: Thu Feb 28 15:25:56 2019 -0800 ice: Remove unnecessary wait when disabling/enabling Rx queues In ice_vsi_ctrl_rx_rings() we are unnecessarily waiting for QRX_CTRL_QENA_REQ and QRX_CTRL_QENA_STAT to be the same value prior to disabling each Rx queue. There is no reason to do this so remove this wait loop as we already have a wait loop after disabling/enabling the Rx queue through the QRX_CTRL register to make sure it gets successfully disabled/enabled. Signed-off-by: Brett Creeley Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit b9c8bb06b53d28c83c47988f645b6cf4543c2685 Author: Brett Creeley Date: Thu Feb 28 15:25:55 2019 -0800 ice: Add ability to update rx-usecs-high Currently the driver allows rx-usecs-high values to be set, but when querying the device for rx-usecs-high the value does not stick. This is because it was not yet implemented. Add code to allow the user to change rx-usecs-high and use this to set the q_vector's intrl value. Signed-off-by: Brett Creeley Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit b4b418b3ad7e09aa8d3be84c5f096d770797cfad Author: Paul Greenwalt Date: Thu Feb 28 15:25:54 2019 -0800 ice: Add 52 byte RSS hash key support Add support to set 52 byte RSS hash key. Signed-off-by: Paul Greenwalt Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 0c2561c81f5d089781f7cb24b8ce9e52ac716f61 Author: Brett Creeley Date: Thu Feb 28 15:25:53 2019 -0800 ice: Use ice_for_each_q_vector macro where possible There are many places in the code where we do the following: for (i = 0; i < vsi->num_q_vectors; i++) Instead use the macro mentioned in the commit title: ice_for_each_q_vector(vsi, i) Signed-off-by: Brett Creeley Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit a92e1bb6ade7526f0c2b7b462516b1941e965504 Author: Maciej Fijalkowski Date: Thu Feb 28 15:25:52 2019 -0800 ice: Validate ring existence and its q_vector per VSI When stopping Tx rings, we use 'i' as an ring array index for looking up whether the ice_ring exists and have assigned a q_vector. This checks rings only within a given TC and we need to go through every ring in VSI. Use 'q_idx' instead. Signed-off-by: Maciej Fijalkowski Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 1553f4f77a495b4e78f7083f1f8341bef6dbe9c7 Author: Brett Creeley Date: Thu Feb 28 15:25:51 2019 -0800 ice: Reduce scope of variable in ice_vsi_cfg_rxqs Reduce scope of the variable 'err' to inside the for loop instead of using it as a second looping conditional. Also while here, improve the debug message if we fail to configure a Rx queue. Signed-off-by: Brett Creeley Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit fe7219fa7c79722d75524e5be9d569eef2ead032 Author: Bruce Allan Date: Thu Feb 28 15:25:50 2019 -0800 ice: Resolve static analysis reported issue Static analysis points out the default case in the switch statement in ice_get_itr_intrl_gran() is an infeasible condition causing the default case statement to be unreachable. Remove it and since the function no longer returns anything but success, change it to just return void and update the only call to it accordingly. Signed-off-by: Bruce Allan Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 85796d6e2fce748fbb59cf98c51b5f2e1bc409ca Author: Akeem G Abodunrin Date: Thu Feb 28 15:25:49 2019 -0800 ice: Return configuration error without queue to disable If there is no queue to disable, return appropriate configuration error earlier without acquiring the lock. Signed-off-by: Akeem G Abodunrin Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit bb87ee0efb7396d79ba5f37ff8e8721d01c87d4a Author: Anirudh Venkataramanan Date: Thu Feb 28 15:25:48 2019 -0800 ice: Create framework for VSI queue context This patch introduces a framework to store queue specific information in VSI queue contexts. Currently VSI queue context (represented by struct ice_q_ctx) only has q_handle as a member. In future patches, this structure will be updated to hold queue specific information. Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit ed856349dc0886a97e91fd4ce6ba5ff5312fc0f1 Author: Tobin C. Harding Date: Thu May 2 12:31:40 2019 +1000 kobject: Fix kernel-doc comment first line kernel-doc comments have a prescribed format. This includes parenthesis on the function name. To be _particularly_ correct we should also capitalise the brief description and terminate it with a period. In preparation for adding/updating kernel-doc function comments clean up the ones currently present. Signed-off-by: Tobin C. Harding Signed-off-by: Greg Kroah-Hartman commit 8fd7c302b37099670b5d793375da10a40da7edf5 Author: Tobin C. Harding Date: Thu May 2 12:31:39 2019 +1000 kobject: Remove docstring reference to kset Currently the docstring for kobject_get_path() mentions 'kset'. The kset is not used in the function callchain starting from this function. Remove docstring reference to kset from the function kobject_get_path(). Signed-off-by: Tobin C. Harding Signed-off-by: Greg Kroah-Hartman commit 3b85d3028e2a0f95a8425fbfa54a04056b7cbc91 Author: Al Viro Date: Sun Apr 14 12:55:07 2019 -0400 media: switch to fdget() Signed-off-by: Al Viro commit fb3862435335633edef924c2e7f2820b4c561325 Author: Al Viro Date: Sun Apr 14 12:50:52 2019 -0400 drm_syncobj: switch to fdget() Signed-off-by: Al Viro commit 95ce0bce20fe67c750c0c26491a8c6819daeab94 Author: Al Viro Date: Sun Apr 14 12:49:44 2019 -0400 amdgpu: switch to fdget() Signed-off-by: Al Viro commit 79ea35bc20a1b16f2ebd0f70a5a1041a121a2366 Author: Al Viro Date: Fri Apr 12 20:38:01 2019 -0400 don't open-code file_count() Signed-off-by: Al Viro commit 910832697cf85536c7fe26edb8bc6f830c4b9bb6 Author: Eric Sandeen Date: Wed May 1 20:26:30 2019 -0700 xfs: change some error-less functions to void types There are several functions which have no opportunity to return an error, and don't contain any ASSERTs which could be argued to be better constructed as error cases. So, make them voids to simplify the callers. Signed-off-by: Eric Sandeen Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner commit cbbf4c0be8a725f08153949f45a85b2adafbbbd3 Author: Christoph Hellwig Date: Wed May 1 20:16:40 2019 -0700 iomap: move iomap_read_inline_data around iomap_read_inline_data ended up being placed in the middle of the bio based read I/O completion handling, which tends to confuse the heck out of me whenever I follow the code. Move it to a more suitable place. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong commit f276ae0dd6d0b5bfbcb51178a63f06dc035f4cc4 Author: Al Viro Date: Tue Apr 16 11:43:02 2019 -0400 orangefs: make use of ->free_inode() Acked-by: Mike Marshall Signed-off-by: Al Viro commit 74b1da5645cc4610d7eb5eb26a6609ed0d2e0fb2 Author: Al Viro Date: Mon Apr 15 23:19:05 2019 -0400 shmem: make use of ->free_inode() same situation as for hugetlbfs Signed-off-by: Al Viro commit b62de322579702f07175fc275ecb2c3afae6cd96 Author: Al Viro Date: Mon Apr 15 23:16:38 2019 -0400 hugetlb: make use of ->free_inode() moving synchronous parts of ->destroy_inode() to ->evict_inode() is not possible here - they are balancing the stuff done in ->alloc_inode(), not the things acquired while using it or sanity checks. Signed-off-by: Al Viro commit 0b269ded4e608b1fda1f19ac7c48533ddaaafaeb Author: Al Viro Date: Mon Apr 15 22:52:17 2019 -0400 overlayfs: make use of ->free_inode() synchronous parts are left in ->destroy_inode() Signed-off-by: Al Viro commit b3b4a6e356dbded14a0513fa0da4fe3ac1c5a33a Author: Al Viro Date: Mon Apr 15 22:48:59 2019 -0400 jfs: switch to ->free_inode() synchronous part can be moved to ->evict_inode(), the rest - ->free_inode() fodder Signed-off-by: Al Viro commit 9baf28bbfea165a62211dd90986d993d77631372 Author: Al Viro Date: Mon Apr 15 19:37:09 2019 -0400 fuse: switch to ->free_inode() fuse_destroy_inode() is gone - sanity checks that need the stack trace of the caller get moved into ->evict_inode(), the rest joins the RCU-delayed part which becomes ->free_inode(). While we are at it, don't just pass the address of what happens to be the first member of structure to kmem_cache_free() - get_fuse_inode() is there for purpose and it gives the proper container_of() use. No behaviour change, but verifying correctness is easier that way. Signed-off-by: Al Viro commit 94053139d4821c2b9306741b94500514348660ad Author: Al Viro Date: Mon Apr 15 19:28:34 2019 -0400 ext4: make use of ->free_inode() the rest of this ->destroy_inode() instance could probably be folded into ext4_evict_inode() Reviewed-by: Jan Kara Signed-off-by: Al Viro commit 586a94fdc9c900c231c08a00372ba793165e2bdc Author: Al Viro Date: Sun Apr 14 23:27:33 2019 -0400 ecryptfs: make use of ->free_inode() no idea if crypto destruction could be moved there as well Signed-off-by: Al Viro commit cfa6d41263ca2d25435626c45415ebddda53302d Author: Al Viro Date: Wed Apr 10 15:18:50 2019 -0400 ceph: use ->free_inode() a lot of non-delayed work in this case; all of that is left in ->destroy_inode() Signed-off-by: Al Viro commit 26602cab411782dab49a75b316f375933ef380d3 Author: Al Viro Date: Wed Apr 10 15:14:41 2019 -0400 btrfs: use ->free_inode() a lot of stuff remains in ->destroy_inode() Acked-by: David Sterba Signed-off-by: Al Viro commit 51b9fe48c411be92b73551cfe2a0c0d466662d06 Author: Al Viro Date: Wed Apr 10 15:05:06 2019 -0400 afs: switch to use of ->free_inode() debugging printks left in ->destroy_inode() and so's the update of inode count; we could take the latter to RCU-delayed part (would take only moving the check on module exit past rcu_barrier() there), but debugging output ought to either stay where it is or go into ->evict_inode() Signed-off-by: Al Viro commit 53e228299965fff2359857e5c592eadba65d95a9 Author: Al Viro Date: Wed Apr 10 14:57:19 2019 -0400 dax: make use of ->free_inode() we might want to drop ->destroy_inode() there - it's used only for WARN_ON() now, and AFAICS that could be moved to ->evict_inode() if we had one... Reviewed-by: Jan Kara Acked-by: Dan Williams Signed-off-by: Al Viro commit a2b757fe0fcd46f32ee35882610a797cd3dcda6f Author: Al Viro Date: Mon Apr 15 22:36:59 2019 -0400 ntfs: switch to ->free_inode() move the synchronous stuff from ->destroy_inode() to ->evict_inode(), turn the RCU-delayed part into ->free_inode() Signed-off-by: Al Viro commit f614ee1e3ea7ac155f827294fccb4816552c99ec Author: Al Viro Date: Mon Apr 15 22:34:28 2019 -0400 securityfs: switch to ->free_inode() Signed-off-by: Al Viro commit 27afa27d670380af1a5dee3a7bb123a6cce2b87c Author: Al Viro Date: Mon Apr 15 22:33:06 2019 -0400 apparmor: switch to ->free_inode() Signed-off-by: Al Viro commit bef252fa194cf9695d07d2d06ee41577fcab3278 Author: Al Viro Date: Mon Apr 15 22:32:27 2019 -0400 rpcpipe: switch to ->free_inode() Signed-off-by: Al Viro commit 524845ff9c473d315468fa3b54054a7e6b2d95cf Author: Al Viro Date: Mon Apr 15 22:31:29 2019 -0400 bpf: switch to ->free_inode() Acked-by: Alexei Starovoitov Acked-by: Song Liu Signed-off-by: Al Viro commit 015d7956183b3943a1e101fa9911e1b5333bdc4b Author: Al Viro Date: Mon Apr 15 22:30:30 2019 -0400 mqueue: switch to ->free_inode() Signed-off-by: Al Viro commit 98835e884cb08cd811445e35d72a616790d7a1e5 Author: Al Viro Date: Mon Apr 15 22:29:33 2019 -0400 ufs: switch to ->free_inode() Signed-off-by: Al Viro commit d984892bd7e8f3a10ab4436f3916a84c3ee69606 Author: Al Viro Date: Mon Apr 15 22:28:35 2019 -0400 coda: switch to ->free_inode() Signed-off-by: Al Viro commit 6becf8edf1a747b8efc8a1d8b0f26f25abfb0d71 Author: Al Viro Date: Mon Apr 15 22:26:51 2019 -0400 sysv: switch to ->free_inode() Signed-off-by: Al Viro commit a78bb3838d583a8a6b4c1a5b27673313daf03b30 Author: Al Viro Date: Mon Apr 15 22:25:06 2019 -0400 udf: switch to ->free_inode() Signed-off-by: Al Viro commit dc4317599616d869ff6e182150ff86a2d20f2cc6 Author: Al Viro Date: Mon Apr 15 22:23:44 2019 -0400 ubifs: switch to ->free_inode() Signed-off-by: Al Viro commit 56b5af19318f051eefb46711e82a092da8cc0d3d Author: Al Viro Date: Mon Apr 15 22:22:40 2019 -0400 squashfs: switch to ->free_inode() Signed-off-by: Al Viro commit bcb8d71bda471b6822549264577e10fe9d54884b Author: Al Viro Date: Mon Apr 15 22:21:45 2019 -0400 romfs: convert to ->free_inode() Signed-off-by: Al Viro commit a5a8cbea63be3ff1d7417533d344a9168150d765 Author: Al Viro Date: Mon Apr 15 22:20:09 2019 -0400 reiserfs: convert to ->free_inode() Signed-off-by: Al Viro commit 45c2a3ff3a841f62da1c27092ece2d51b7efaf5f Author: Al Viro Date: Mon Apr 15 20:30:08 2019 -0400 qnx6: switch to ->free_inode() Signed-off-by: Al Viro commit bc40ddd12c92bc6ab202573fa7beb2d84a01af38 Author: Al Viro Date: Mon Apr 15 20:29:32 2019 -0400 qnx4: switch to ->free_inode() Signed-off-by: Al Viro commit 4aa6b55c05a275708d1c75ead9aaff8de4252dcb Author: Al Viro Date: Mon Apr 15 20:28:38 2019 -0400 procfs: switch to ->free_inode() Signed-off-by: Al Viro commit 363db959aeb159046edf780a51bd887661cce9de Author: Al Viro Date: Mon Apr 15 20:27:27 2019 -0400 openpromfs: switch to ->free_inode() Signed-off-by: Al Viro commit e91b9194bc872b52b98789ab102d43736153d67a Author: Al Viro Date: Mon Apr 15 20:26:42 2019 -0400 ocfs2: switch to ->free_inode() Signed-off-by: Al Viro commit 9fbc000786baa45c1b9763aded624228ae25c911 Author: Al Viro Date: Mon Apr 15 20:25:31 2019 -0400 dlmfs: switch to ->free_inode() Signed-off-by: Al Viro commit 977c3d18948e4029b437dac451d2ab9a39f57e89 Author: Al Viro Date: Mon Apr 15 20:23:38 2019 -0400 nilfs2: switch to ->free_inode() kill an extern that went stale 9 years ago, while we are at it... Signed-off-by: Al Viro commit ca1a199e3b8768cc6ffe2919456a8d59f691539c Author: Al Viro Date: Mon Apr 15 20:19:40 2019 -0400 nfs{,4}: switch to ->free_inode() Signed-off-by: Al Viro commit d67a398a5fc6cc8b40177d880de69e873dc2fcb1 Author: Al Viro Date: Mon Apr 15 20:16:57 2019 -0400 minix: switch to ->free_inode() Signed-off-by: Al Viro commit db0bd7b7198edbda975397984cd05feb6ae6cce4 Author: Al Viro Date: Mon Apr 15 20:15:58 2019 -0400 jffs2: switch to ->free_inode() Signed-off-by: Al Viro commit 07b01207104610e1319813431634de7e8e2e52ed Author: Al Viro Date: Mon Apr 15 20:14:21 2019 -0400 isofs: switch to ->free_inode() Signed-off-by: Al Viro commit 4d436d5cd51a187527bfadc1bd224940f036d0ee Author: Al Viro Date: Mon Apr 15 20:12:58 2019 -0400 hpfs: switch to ->free_inode() Signed-off-by: Al Viro commit 08ccfc5c363dcb8a361b4e6ff84e9f59df364fbd Author: Al Viro Date: Mon Apr 15 20:12:11 2019 -0400 hostfs: switch to ->free_inode() Signed-off-by: Al Viro commit 08ab2293936cd9c266cfa8cd059ea646eee15498 Author: Al Viro Date: Mon Apr 15 19:48:58 2019 -0400 hfsplus: switch to ->free_inode() Signed-off-by: Al Viro commit 6d845e2286a82fba5990decf13a7824e9ecbf1a7 Author: Al Viro Date: Mon Apr 15 19:48:07 2019 -0400 hfs: switch to ->free_inode() Signed-off-by: Al Viro commit 784494e1d759622fef9fb633f0100935c692adb3 Author: Al Viro Date: Mon Apr 15 19:45:26 2019 -0400 gfs2: switch to ->free_inode() ... and use GFS2_I() to get the containing gfs2_inode by inode; yes, we can feed the address of the first member of structure to kmem_cache_free(), but let's do it in an obviously safe way. Signed-off-by: Al Viro commit 9f179271e7bfafb5786c70f275956e2118eb7383 Author: Al Viro Date: Mon Apr 15 19:30:44 2019 -0400 freevxfs: switch to ->free_inode() Signed-off-by: Al Viro commit f9ec991d4158acca34e9cde75a1473a40d00613e Author: Al Viro Date: Mon Apr 15 19:29:56 2019 -0400 fat: switch to ->free_inode() Signed-off-by: Al Viro commit d01718a050d064178ea73e40d3535f823ca19022 Author: Al Viro Date: Mon Apr 15 19:29:14 2019 -0400 f2fs: switch to ->free_inode() Acked-by: Chao Yu Signed-off-by: Al Viro commit a2d1b88becd999d5bba917c04da4092e3f6ca8a8 Author: Al Viro Date: Mon Apr 15 19:27:18 2019 -0400 ext2: switch to ->free_inode() Signed-off-by: Al Viro commit f415c51123b83e2af2ccc59dccfd5e09d1557ef7 Author: Al Viro Date: Sun Apr 14 23:29:41 2019 -0400 efs: switch to ->free_inode() Signed-off-by: Al Viro commit 6234ddf429ef82e1b187b8206cbd9ead19671f77 Author: Al Viro Date: Sun Apr 14 23:19:45 2019 -0400 debugfs: switch to ->free_inode() Signed-off-by: Al Viro commit c2e6802e7b5aec2ac28075300dd5a849a6115ad6 Author: Al Viro Date: Sun Apr 14 23:18:35 2019 -0400 cifs: switch to ->free_inode() Signed-off-by: Al Viro commit 41149cb08aebd4533f5d9019ff2656919779b27b Author: Al Viro Date: Wed Apr 10 15:12:38 2019 -0400 bdev: switch to ->free_inode() Signed-off-by: Al Viro commit 8d8fc9cbc7a83e80eea33f23c4973003b64ddf17 Author: Al Viro Date: Wed Apr 10 15:09:09 2019 -0400 bfs: switch to ->free_inode() Signed-off-by: Al Viro commit 49f82a808bb06365f363d257d78260ef7cb03d6e Author: Al Viro Date: Wed Apr 10 15:08:13 2019 -0400 befs: switch to ->free_inode() Signed-off-by: Al Viro commit 312a679183b0502e4852eed12d1b6ae66a1636ff Author: Al Viro Date: Wed Apr 10 15:02:41 2019 -0400 affs: switch to ->free_inode() Acked-by: David Sterba Signed-off-by: Al Viro commit 8f05a7953560681cde94b864d1b495cc1a0f1aad Author: Al Viro Date: Wed Apr 10 15:01:52 2019 -0400 adfs: switch to ->free_inode() Signed-off-by: Al Viro commit 5e8a0770c01a77783376c7ffac4f86e21685434e Author: Al Viro Date: Wed Apr 10 15:00:26 2019 -0400 9p: switch to ->free_inode() Signed-off-by: Al Viro commit 25af6c4a4a6beae3caf14c13a42fac9fad923ac7 Author: Al Viro Date: Wed Apr 10 14:59:08 2019 -0400 erofs: switch to ->free_inode() Acked-by: Gao Xiang Signed-off-by: Al Viro commit 6d0e0d0bb8eb673472dd08d83c8169452c50f269 Author: Al Viro Date: Wed Apr 10 14:55:32 2019 -0400 spufs: switch to ->free_inode() Signed-off-by: Al Viro commit fdb0da89f4ba0c74d7d3b9e6f471e96a5766820b Author: Al Viro Date: Wed Apr 10 14:43:44 2019 -0400 new inode method: ->free_inode() A lot of ->destroy_inode() instances end with call_rcu() of a callback that does RCU-delayed part of freeing. Introduce a new method for doing just that, with saner signature. Rules: ->destroy_inode ->free_inode f g immediate call of f(), RCU-delayed call of g() f NULL immediate call of f(), no RCU-delayed calls NULL g RCU-delayed call of g() NULL NULL RCU-delayed default freeing IOW, NULL ->free_inode gives the same behaviour as now. Note that NULL, NULL is equivalent to NULL, free_inode_nonrcu; we could mandate the latter form, but that would have very little benefit beyond making rules a bit more symmetric. It would break backwards compatibility, require extra boilerplate and expected semantics for (NULL, NULL) pair would have no use whatsoever... Signed-off-by: Al Viro commit 1cd472d2ac1654f939ae01164b29e81fc76e0a93 Author: Adam Thomson Date: Mon Apr 29 11:57:33 2019 +0100 ASoC: da7219: Use clk_round_rate to handle enabled bclk/wclk case For some platforms where DA7219 is the DAI clock master, BCLK/WCLK will be set and enabled prior to the codec's hw_params() function being called. It is possible the platform requires a different BCLK configuration than would be chosen by hw_params(), for example S16_LE format needed with a 64-bit frame to satisfy certain devices using the clocks. To handle those kinds of scenarios, the use of clk_round_rate() is now employed as part of hw_params(). If BCLK is already enabled then this function will just return the currently set rate, if it is valid for the desired frame size, so the subsequent call to clk_set_rate() will succeed and nothing changes with regards to clocking. In addition the specific BCLK & WCLK recalc_rate() implementations needed updating to always give back a real value, as those functions are called as part of the clk init code and a real value is needed for the clk_round_rate() call to work as expected. Signed-off-by: Adam Thomson Signed-off-by: Mark Brown commit 060cebb20cdbcd3185d593e7194fa7a738201817 Author: Lionel Landwerlin Date: Tue Apr 16 13:57:50 2019 +0100 drm: introduce a capability flag for syncobj timeline support Unfortunately userspace users of this API cannot be publicly disclosed yet. This commit effectively disables timeline syncobj ioctls for all drivers. Each driver wishing to support this feature will need to expose DRIVER_SYNCOBJ_TIMELINE. v2: Add uAPI capability check (Christian) Signed-off-by: Lionel Landwerlin Reviewed-by: Christian König (v1) Cc: Dave Airlie Cc: Daniel Vetter Cc: Christian König Cc: Chunming Zhou Reviewed-by: Dave Airlie Reviewed-by: Chunming Zhou Signed-off-by: Dave Airlie Link: https://patchwork.freedesktop.org/patch/msgid/20190416125750.31370-1-lionel.g.landwerlin@intel.com commit 5ec776383d5ba119cf1bcf67e1dbcd5e96911e8a Author: Lionel Landwerlin Date: Tue Apr 16 13:30:47 2019 +0100 drm: report consistent errors when checking syncobj capibility We've been somewhat inconsistent when adding the new ioctl and returned ENODEV instead of EOPNOTSUPPORTED upon failing the syncobj capibility. Signed-off-by: Lionel Landwerlin Fixes: ea569910cbab98 ("drm/syncobj: add transition iotcls between binary and timeline v2") Fixes: 01d6c357837918 ("drm/syncobj: add support for timeline point wait v8") Cc: Dave Airlie Cc: Christian König Cc: Chunming Zhou Reviewed-by: Christian König for the series. Reviewed-by: Chunming Zhou Signed-off-by: Dave Airlie Link: https://patchwork.freedesktop.org/patch/msgid/20190416123048.2913-1-lionel.g.landwerlin@intel.com commit 406dcbc55a0a20fd155be889a4a0c4b812f7c18e Author: Hui Wang Date: Mon Apr 29 11:44:07 2019 +0800 ASoC: rt5645: Headphone Jack sense inverts on the LattePanda board The LattePanda board has a sound card chtrt5645, when there is nothing plugged in the headphone jack, the system thinks the headphone is plugged in, while we plug a headphone in the jack, the system thinks the headphone is unplugged. If adding quirk=0x21 in the module parameter, the headphone jack can work well. So let us fix it via platform_data. https://bugs.launchpad.net/bugs/182459 Signed-off-by: Hui Wang Signed-off-by: Mark Brown commit 2e5f081003f033d37be3faf052aaccc8b6a44aa5 Merge: 58b860ed4a77 d61ad23cb3be Author: Mark Brown Date: Thu May 2 11:20:29 2019 +0900 Merge branch 'spi-5.2' into spi-next commit 58b860ed4a77d9cb17b78e663a0341b79a12e240 Merge: 37624b58542f 7e95b16625a3 Author: Mark Brown Date: Thu May 2 11:20:26 2019 +0900 Merge branch 'spi-5.1' into spi-linus commit 8b9085200681329233d645466698596b87be77f2 Author: Axel Lin Date: Wed May 1 09:11:31 2019 +0800 regulator: hi6xxx: Switch to SPDX identifier Convert HiSilicon hi6xxx PMIC drivers to SPDX identifier. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit c5e911add161f356aa5adf6cca33d02946006053 Author: Axel Lin Date: Mon Apr 29 19:35:42 2019 +0800 regulator: vexpress: Switch to SPDX identifier Signed-off-by: Axel Lin Acked-by: Sudeep Holla Signed-off-by: Mark Brown commit eeb1b2355a6f06c4995ce282e247afffb946d983 Author: Axel Lin Date: Mon Apr 29 19:35:41 2019 +0800 regulator: vexpress: Get rid of struct vexpress_regulator The *regdev and *regmap can be replaced by local variables in probe(). Only desc of struct vexpress_regulator is really need, so just use struct regulator_desc directly and remove struct vexpress_regulator. Signed-off-by: Axel Lin Reviewed-by: Sudeep Holla Signed-off-by: Mark Brown commit 903c220b1ece12f17c868e43f2243b8f81ff2d4c Author: S.j. Wang Date: Sun Apr 28 02:24:27 2019 +0000 ASoC: fsl_esai: Fix missing break in switch statement case ESAI_HCKT_EXTAL and case ESAI_HCKR_EXTAL should be independent of each other, so replace fall-through with break. Fixes: 43d24e76b698 ("ASoC: fsl_esai: Add ESAI CPU DAI driver") Signed-off-by: Shengjiu Wang Acked-by: Nicolin Chen Cc: Signed-off-by: Mark Brown commit b75a9799dc371ce5f51a73536f248f60a1be74ec Author: Charles Keepax Date: Wed May 1 11:13:31 2019 +0100 ASoC: wm_adsp: Correct region base typo in wm_halo_setup_algs Due to a typo the wrong base is being supplied for the primary algorithm on Halo firmwares, which will cause the controls to not function. Fixes: 170b1e123f38 ("ASoC: wm_adsp: Add support for new Halo core DSPs") Reported-by: Stuart Henderson Signed-off-by: Charles Keepax Signed-off-by: Mark Brown commit 07f80454369e5a8141dbbf4ae0a535230f223f2b Author: Colin Ian King Date: Wed May 1 11:23:08 2019 +0100 ASoC: SOF: Intel: fix spelling mistake "incompatble" -> "incompatible" There is a spelling mistake in a hda_dsp_rom_msg message, fix it. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Acked-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 81ed884501a59a49c71cd810578f793f3890c131 Author: Charles Keepax Date: Wed May 1 11:13:32 2019 +0100 ASoC: wm_adsp: Use DSP ops pointers to stop watchdog in error handlers Whilst this isn't strictly necessary as the code is already DSP specific better to use the pointers to avoid potential issues in the future if one core ends up having multiple methods of stopping the watchdog. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown commit 81a812c98b6eda7e3101305d57354433e3edc541 Author: Wei Yongjun Date: Mon Apr 29 12:37:13 2019 +0000 ASoC: sprd: Fix to use list_for_each_entry_safe() when delete items Since we will remove items off the list using list_del() we need to use a safe version of the list_for_each_entry() macro aptly named list_for_each_entry_safe(). Fixes: d7bff893e04f ("ASoC: sprd: Add Spreadtrum multi-channel data transfer support") Signed-off-by: Wei Yongjun Reviewed-by: Baolin Wang Signed-off-by: Mark Brown commit 7c88b92816dfe5eab224b96577b50ac00b4be68a Author: Wei Yongjun Date: Mon Apr 29 12:25:12 2019 +0000 ASoC: sprd: Fix return value check in sprd_mcdt_probe() In case of error, the function devm_ioremap_resource() returns ERR_PTR() and never returns NULL. The NULL test in the return value check should be replaced with IS_ERR(). Fixes: d7bff893e04f ("ASoC: sprd: Add Spreadtrum multi-channel data transfer support") Signed-off-by: Wei Yongjun Reviewed-by: Baolin Wang Signed-off-by: Mark Brown commit 414a7321d60bc0abced4a760e22b8187e2b4aecf Author: Logesh Date: Wed May 1 14:34:24 2019 +0530 ASoC: da7213: fix DAI_CLK_EN register bit overwrite If the da7213 codec is configured as Master with the DAPM power down delay time set, 'snd_soc_component_write' function overwrites the DAI_CLK_EN bit of DAI_CLK_MODE register which leads to audio play only once until it re-initialize after codec power up. Signed-off-by: Logesh Reviewed-by: Adam Thomson Signed-off-by: Mark Brown commit 882c8b4af315bf921431142c1e9f5f69df99da34 Author: Seppo Ingalsuo Date: Tue Apr 30 18:11:34 2019 -0500 ASoC: dapm: fix kcontrols for effect widgets This patch adds the handling of snd_soc_dapm_effect that was missing. Signed-off-by: Ranjani Sridharan Signed-off-by: Seppo Ingalsuo Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 62be484f7ad8443c393293a415392fbf3190c864 Author: Viorel Suman Date: Wed Apr 10 11:06:39 2019 +0000 ASoC: fsl_audmix: cache pdev->dev pointer There should be no trouble to understand dev = pdev->dev. This can save some space to have more print info or save some wrapped lines. Signed-off-by: Viorel Suman Suggested-by: Nicolin Chen Signed-off-by: Mark Brown commit a23e34c064b933cf5f24e443f86bbfdd624d2e8b Author: Annaliese McDermond Date: Mon Apr 8 21:41:59 2019 -0700 ASoC: tlv320aic32x4: Fix potential uninitialized variable Fix compiler warning about uninitialized variable reported by Stephen Rothwell . Signed-off-by: Annaliese McDermond Signed-off-by: Mark Brown commit d232591c9482ddb121b60782d2e7dac1c4880bdb Author: Shunli Wang Date: Tue Apr 9 17:13:37 2019 +0800 ASoC: Mediatek: MT8183: add I2S2 control path from UL2 and UL3 This patch add the control path from UL2 or UL3 to I2S2. The patch is based on broonie tree "for-next" branch. Signed-off-by: Shunli Wang Signed-off-by: Mark Brown commit 1df1e5457cd1e115bd279f7d12015a4834057f68 Author: Tzung-Bi Shih Date: Mon Apr 8 18:47:28 2019 +0800 ASoC: Mediatek: MT8183: change supported formats of DL2 and UL1 DL2 and UL1 are for BTSCO. They should only provide 16-bit, mono, 8kHz and 16kHz to userspace. Change the formats accordingly. Signed-off-by: Tzung-Bi Shih Signed-off-by: Mark Brown commit f2a36a78423ee83b1aac79956891fcad0e833885 Author: Viorel Suman Date: Wed Apr 10 11:06:36 2019 +0000 ASoC: fsl_audmix: remove "model" attribute Use "of_device_id.data" to specify the machine driver instead of "model" DTS attribute. Signed-off-by: Viorel Suman Acked-by: Nicolin Chen Signed-off-by: Mark Brown commit d04195b0a351b6c7bc086bd8590e5f303122a0be Author: Viorel Suman Date: Wed Apr 10 11:06:37 2019 +0000 ASoC: fsl_audmix: remove "model" attribute from DT document Remove "model" attribute from fsl_audmix DT document. Signed-off-by: Viorel Suman Acked-by: Nicolin Chen Signed-off-by: Mark Brown commit 8bb678d75954e9e5b9ecabfe95b20f650fd91edb Author: Viorel Suman Date: Wed Apr 10 11:06:38 2019 +0000 ASoC: imx-audmix: fix object reference leaks in probe Release the reference to the underlying device taken by of_find_device_by_node() call. Signed-off-by: Viorel Suman Reported-by: Julia Lawall Acked-by: Nicolin Chen Signed-off-by: Mark Brown commit a2be42f18d409213bb7e7a736e3ef6ba005115bb Author: Kangjie Lu Date: Thu Mar 14 22:51:20 2019 -0500 ASoC: cs43130: fix a NULL pointer dereference In case create_singlethread_workqueue fails, the fix returns -ENOMEM to avoid potential NULL pointer dereference. Signed-off-by: Kangjie Lu Signed-off-by: Mark Brown commit 51dd97d1df5fb9ac58b9b358e63e67b530f6ae21 Author: Kangjie Lu Date: Thu Mar 14 22:48:32 2019 -0500 ASoC: rt5645: fix a NULL pointer dereference devm_kcalloc() may fail and return NULL. The fix returns ENOMEM in case it fails to avoid NULL pointer dereference. Signed-off-by: Kangjie Lu Signed-off-by: Mark Brown commit d3692cb5c56daa2fb8046a8f4ebe1b2b8b22c895 Author: Yong Zhi Date: Wed Apr 10 12:27:31 2019 -0500 ASoC: Intel: common: add Geminilake Realtek+Maxim machine driver entry This patch adds glk_rt5682_max98357a_i2s machine driver entry into machine table. Both Skylake and SOF platform drivers can use this machine drivers. Signed-off-by: Yong Zhi Signed-off-by: Naveen Manohar Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 164a263bf8d003e4cbb197d52b74d26df72604d7 Author: Mark Brown Date: Wed Apr 10 17:38:00 2019 +0100 ASoC: Intel: Make boards more available for compile test The Intel boards have very strict dependencies which make them less available for compile test than is desirable, with requirements for specific drivers that are only needed at runtime but not at build time. Relax this a bit if COMPILE_TEST is enabled to improve build coverage for these drivers. Signed-off-by: Mark Brown Acked-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 21c7f3e31ec582bf7f0fa4068333acd22b8cb445 Author: Cao Van Dong Date: Thu Apr 11 16:54:18 2019 +0900 ASoC: rsnd: Document r8a77470 bindings Document SoC specific bindings for R-Car RZ/G1C(r8a77470) SoC. Signed-off-by: Cao Van Dong Signed-off-by: Mark Brown commit ac097cac496f69e97083c6b128c5a209a85c6fcb Author: Andra Danciu Date: Sun Apr 14 22:14:49 2019 +0300 ASoC: mpc5200_dma: Fix invalid license ID As the file had no other license notice/reference, it falls under the project license and therefore the proper SPDX id is: GPL-2.0-only Cc: Daniel Baluta Fixes: 1edfc2485d8dc ("ASoC: mpc5200_dma: Switch to SPDX identifier") Reported-by: Thomas Gleixner Signed-off-by: Andra Danciu Signed-off-by: Mark Brown commit 680ae69d52279474ecb204f0f7bae1f4d9361cbd Author: Andra Danciu Date: Sun Apr 14 22:14:50 2019 +0300 ASoC: mpc5200_psc_i2s: Fix invalid license ID As the file had no other license notice/reference, it falls under the project license and therefore the proper SPDX id is: GPL-2.0-only Cc: Daniel Baluta Fixes: 864a8472c4412 ("ASoC: mpc5200_psc_i2s: Switch to SPDX identifier") Reported-by: Thomas Gleixner Signed-off-by: Andra Danciu Signed-off-by: Mark Brown commit 6f547c96b45de0d42de91ef56c7d291aa6d3c88f Author: YueHaibing Date: Tue Apr 16 22:47:18 2019 +0800 ASoC: atmel: tse850: Make some functions static Fix sparse warnings: sound/soc/atmel/tse850-pcm5142.c:120:5: warning: symbol 'tse850_get_mix' was not declared. Should it be static? sound/soc/atmel/tse850-pcm5142.c:132:5: warning: symbol 'tse850_put_mix' was not declared. Should it be static? sound/soc/atmel/tse850-pcm5142.c:154:5: warning: symbol 'tse850_get_ana' was not declared. Should it be static? sound/soc/atmel/tse850-pcm5142.c:187:5: warning: symbol 'tse850_put_ana' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing Signed-off-by: Mark Brown commit ea751227c813ab833609afecfeedaf0aa26f327e Author: Arnd Bergmann Date: Tue Apr 16 15:12:23 2019 +0200 ASoC: imx: fix fiq dependencies During randconfig builds, I occasionally run into an invalid configuration of the freescale FIQ sound support: WARNING: unmet direct dependencies detected for SND_SOC_IMX_PCM_FIQ Depends on [m]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_IMX_SOC [=m] Selected by [y]: - SND_SOC_FSL_SPDIF [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_IMX_SOC [=m]!=n && (MXC_TZIC [=n] || MXC_AVIC [=y]) sound/soc/fsl/imx-ssi.o: In function `imx_ssi_remove': imx-ssi.c:(.text+0x28): undefined reference to `imx_pcm_fiq_exit' sound/soc/fsl/imx-ssi.o: In function `imx_ssi_probe': imx-ssi.c:(.text+0xa64): undefined reference to `imx_pcm_fiq_init' The Kconfig warning is a result of the symbol being defined inside of the "if SND_IMX_SOC" block, and is otherwise harmless. The link error is more tricky and happens with SND_SOC_IMX_SSI=y, which may or may not imply FIQ support. However, if SND_SOC_FSL_SSI is set to =m at the same time, that selects SND_SOC_IMX_PCM_FIQ as a loadable module dependency, which then causes a link failure from imx-ssi. The solution here is to make SND_SOC_IMX_PCM_FIQ built-in whenever one of its potential users is built-in. Fixes: ff40260f79dc ("ASoC: fsl: refine DMA/FIQ dependencies") Signed-off-by: Arnd Bergmann Signed-off-by: Mark Brown commit a1a86e1bd4a87fd09171fd8555fe7490917e4e94 Author: YueHaibing Date: Tue Apr 16 22:52:51 2019 +0800 ASoC: amd: acp3x: Make acp3x_dai_i2s_ops static Fix sparse warning: sound/soc/amd/raven/acp3x-pcm-dma.c:561:24: warning: symbol 'acp3x_dai_i2s_ops' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing Signed-off-by: Mark Brown commit 83b4f50ca2b2e93346195b51f58e8089f9f35c0b Author: YueHaibing Date: Wed Apr 17 23:01:57 2019 +0800 ASoC: tlv320aic32x4: Remove set but not used variable 'mclk_rate' Fixes gcc '-Wunused-but-set-variable' warning: sound/soc/codecs/tlv320aic32x4.c: In function 'aic32x4_setup_clocks': sound/soc/codecs/tlv320aic32x4.c:669:16: warning: variable 'mclk_rate' set but not used [-Wunused-but-set-variable] It is not used since introduction in commit 96c3bb00239d ("ASoC: tlv320aic32x4: Dynamically Determine Clocking") Signed-off-by: YueHaibing Signed-off-by: Mark Brown commit a0c34c7629bee46ffd8121987d27df25a6433cc7 Author: YueHaibing Date: Wed Apr 17 23:09:15 2019 +0800 ASoC: fsl_micfil: Remove set but not used variable 'osr' Fixes gcc '-Wunused-but-set-variable' warning: sound/soc/fsl/fsl_micfil.c: In function 'get_clk_div': sound/soc/fsl/fsl_micfil.c:154:6: warning: variable 'osr' set but not used [-Wunused-but-set-variable] It is never used since introduction in commit 47a70e6fc9a8 ("ASoC: Add MICFIL SoC Digital Audio Interface driver.") Signed-off-by: YueHaibing Signed-off-by: Mark Brown commit 5011454ee34a84700e9a8c7eb1138efceea9d662 Author: Peter Ujfalusi Date: Wed Apr 17 14:31:40 2019 +0300 ASoC: pcm3168a: Enable TDM support for DSP_A/B modes The 24-bit TDM mode also applies to DSP_A and DSP_B modes. Most dais on the SoC side can not interpret I2S/Left_j with other than 2 channels of audio. Signed-off-by: Peter Ujfalusi Signed-off-by: Mark Brown commit bb24a31ed584b172507dc2fd991e19d110b5aae8 Author: Agrawal, Akshu Date: Wed Apr 17 10:05:13 2019 +0000 ASoC: AMD: Configure wclk and bclk of master codec With CCF support in da7219, we can now set the correct rate of wclk and bclk. Signed-off-by: Akshu Agrawal Signed-off-by: Mark Brown commit f2a1fdb50d3187266a91bcf99b504e99695772a6 Author: YueHaibing Date: Wed Apr 17 23:29:32 2019 +0800 ASoC: Mediatek: MT8183: Fix build err while CONFIG_I2C set to module During randconfig builds, I occasionally run into an invalid configuration WARNING: unmet direct dependencies detected for SND_SOC_TS3A227E Depends on [m]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && I2C [=m] Selected by [y]: - SND_SOC_MT8183_MT6358_TS3A227E_MAX98357A [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && SND_SOC_MT8183 [=y] sound/soc/codecs/ts3a227e.o: In function `ts3a227e_i2c_probe': ts3a227e.c:(.text+0x684): undefined reference to `__devm_regmap_init_i2c' sound/soc/codecs/ts3a227e.o: In function `ts3a227e_driver_init': ts3a227e.c:(.init.text+0x18): undefined reference to `i2c_register_driver' sound/soc/codecs/ts3a227e.o: In function `ts3a227e_driver_exit': ts3a227e.c:(.exit.text+0x14): undefined reference to `i2c_del_driver' This patch add I2C dependency to fix this. Reported-by: Hulk Robot Fixes: ebbddc75bbe8 ("ASoC: Mediatek: MT8183: Add machine driver with DA7219") Signed-off-by: YueHaibing Signed-off-by: Mark Brown commit 7b6531c5054e7804ccce25f389a2d4810357f5c9 Author: Colin Ian King Date: Wed Apr 17 17:26:28 2019 +0100 ASoC: hdmi-codec: fix spelling mistake "plalform" -> "platform" There is a spelling mistake in a dev_err message. Fix it. Signed-off-by: Colin Ian King Signed-off-by: Mark Brown commit 7e95b16625a3659a75c0ba4d5b0802324d16be13 Author: Hoan Nguyen An Date: Tue Apr 23 18:19:21 2019 +0900 spi: rspi: Fix handling of QSPI code when transmit and receive Process handling QSPI when transmit/receive at qspi_trigger_transfer_out_in() as follows: Setting the trigger, is the number of bytes in the FIFO buffer to determine when there is an interrupt. Then check if the value of triggering number is 32-bytes or 1-byte, there will be corresponding processing Handling (if (n == QSPI_BUFFER_SIZE) esle) this is unnecessary, leads to the same processing of data transmission or reception, The difference here are with ret = rspi_wait_for_tx_empty(rspi); ret = rspi_wait_for_rx_full(rspi); When the nummber trigger is 32 bytes, we only write into FIFO when the FIFO is completely empty (interrupt transmission), and only receive if FIFO is full of 32 bytes of data. In the case of a nummber trigger that is 1 byte, in principle we still need to process rspi_wait_for_tx_empty/full so that FIFO is empty only with the amount of data we need to write to or equal to the number of bytes we need to receive, There is currently no processing of this. And in the current case with this patch, at this time it only needs at least 1 byte received in FIFO that has interrupt received, or FIFO at least 1bytes free can be written into FIFO, This patch therefore does not affect this processing. So we need to eliminate unnecessary waste processing (if (n == QSPI_BUFFER_SIZE) esle), more precisely in waiting for FIFO status. The same with handling in qspi_transfer_out()/qspi_transfer_in(). Signed-off-by: Hoan Nguyen An Signed-off-by: Mark Brown commit e5c27498a0403b270620b1a8a0a66e3efc222fb6 Author: Claudiu Beznea Date: Wed Apr 24 09:17:59 2019 +0000 spi: atmel-quadspi: fix crash while suspending atmel_qspi objects are kept in spi_controller objects, so, first get pointer to spi_controller object and then get atmel_qspi object from spi_controller object. Fixes: 2d30ac5ed633 ("mtd: spi-nor: atmel-quadspi: Use spi-mem interface for atmel-quadspi driver") Signed-off-by: Claudiu Beznea Reviewed-by: Tudor Ambarus Signed-off-by: Mark Brown commit 8d1467a68426c61807c97163459b481ecb714523 Author: Fabien Dessenne Date: Wed Apr 24 14:38:44 2019 +0200 spi: stm32: return the get_irq error During probe, return the "get_irq" error value instead of -ENOENT. This allows the driver to be defer probed if needed. Signed-off-by: Fabien Dessenne Acked-by: Amelie Delaunay Signed-off-by: Mark Brown commit cc1b69fc5f9f52cf18295db05cad57187cee1c1d Author: Sowjanya Komatineni Date: Mon Apr 15 14:30:26 2019 -0700 spi: tegra114: fix PIO transfer This patch fixes PIO mode transfer to use PIO bit in SPI_COMMAND1 register. Current driver uses DMA_EN instead of PIO bit. Signed-off-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit 29f2133717c527f492933b0622a4aafe0b3cbe9e Author: Flavio Suligoi Date: Fri Apr 12 09:32:19 2019 +0200 spi: pxa2xx: fix SCR (divisor) calculation Calculate the divisor for the SCR (Serial Clock Rate), avoiding that the SSP transmission rate can be greater than the device rate. When the division between the SSP clock and the device rate generates a reminder, we have to increment by one the divisor. In this way the resulting SSP clock will never be greater than the device SPI max frequency. For example, with: - ssp_clk = 50 MHz - dev freq = 15 MHz without this patch the SSP clock will be greater than 15 MHz: - 25 MHz for PXA25x_SSP and CE4100_SSP - 16,56 MHz for the others Instead, with this patch, we have in both case an SSP clock of 12.5MHz, so the max rate of the SPI device clock is respected. Signed-off-by: Flavio Suligoi Reviewed-by: Jarkko Nikula Reviewed-by: Jarkko Nikula Signed-off-by: Mark Brown commit d61ad23cb3be09ff4956e9b9794134456522817f Author: Serge Semin Date: Fri Apr 26 13:30:07 2019 +0300 spi: Clear SPI_CS_HIGH flag from bad_bits for GPIO chip-select When GPIO chip-select is used nothing prevents any available SPI controllers to work with both CS-high and traditional CS-low modes. In fact the SPI bus core code already does it, so we don't need to introduce any modification there. But spi_setup() still fails to switch the interface settings if CS-high flag is set for the case of GPIO-driven slave chip-select when the SPI controller doesn't support the hardwired CS-inversion. Lets fix it by clearing the SPI_CS_HIGH flag out from bad_bits (unsupported by controller) when client chip is selected by GPIO. This feature is useful for slave devices, which in accordance with communication protocol can work with both active-high and active-low chip-selects. I am aware of one such device. It is MMC-SPI interface, when at init sequence the driver needs to perform a read operation with low and high chip-select sequentially (requirement of 74 clock cycles with both chipselect, see the mmc_spi driver for details). Signed-off-by: Serge Semin Signed-off-by: Mark Brown commit 1dfbf334f12361ebe6269c5918328b755ee960c7 Author: Linus Walleij Date: Sat Apr 20 13:05:59 2019 +0200 spi: ep93xx: Convert to use CS GPIO descriptors This converts the EP93xx SPI master driver to use GPIO descriptors for chip select handling. EP93xx was using platform data to pass in GPIO lines, by converting all board files to use GPIO descriptor tables the core will look up the GPIO lines from the SPI device in the same manner as for device tree. Signed-off-by: Linus Walleij Signed-off-by: Mark Brown commit 2a168e10d6db7b77190c55d994e42fc5a58fc8e5 Author: Daniel Gomez Date: Mon Apr 22 21:12:33 2019 +0200 spi: AD ASoC: declare missing of table Add missing table for SPI driver relying on SPI device match since compatible is in a DT binding or in a DTS. Before this patch: modinfo sound/soc/codecs/snd-soc-adau1977-spi.ko | grep alias alias: spi:adau1979 alias: spi:adau1978 alias: spi:adau1977 After this patch: modinfo sound/soc/codecs/snd-soc-adau1977-spi.ko | grep alias alias: of:N*T*Cadi,adau1979C* alias: of:N*T*Cadi,adau1979 alias: of:N*T*Cadi,adau1978C* alias: of:N*T*Cadi,adau1978 alias: of:N*T*Cadi,adau1977C* alias: of:N*T*Cadi,adau1977 alias: spi:adau1979 alias: spi:adau1978 alias: spi:adau1977 Reported-by: Javier Martinez Canillas Signed-off-by: Daniel Gomez Signed-off-by: Mark Brown commit ba3ce8cb3808cad0f9b8303fad4bd1c887834c82 Author: Naga Sureshkumar Relli Date: Mon Apr 22 12:56:49 2019 +0530 spi: spi-mem: zynq-qspi: Fix build error on architectures missing readsl/writesl Alpha and some of the architectures are missing readsl/writesl functions. so the zynq-qspi driver won't be able to build on these arches. hence use ioread32_rep()/iowrite32_rep() instead of readsl()/writesl(). Signed-off-by: Naga Sureshkumar Relli Reported-by: kbuild test robot Signed-off-by: Mark Brown commit 4b562de4e227dbc2267c367b0a1ec83051c364f6 Author: Fabien Dessenne Date: Wed Apr 24 17:19:00 2019 +0200 spi: stm32-qspi: manage the get_irq error case During probe, check the "get_irq" error value. Signed-off-by: Fabien Dessenne Acked-by: Ludovic Barre Signed-off-by: Mark Brown commit 8b7bd10eb00d02e74a75556ba1d85b5e2d568caf Author: Meghana Madhyastha Date: Sat Apr 13 20:24:14 2019 +0200 spi/spi-bcm2835: Split transfers that exceed DLEN Split spi transfers into chunks of <=65532 to enable the driver to perform DMA transfer on big buffers. The DLEN register specifies the number of bytes to transfer in DMA mode. It is 16-bit wide and thus the maximum DMA transfer is 65535 bytes. Set the maximum to 65532 (4 byte aligned) since the FIFO in DMA mode is accessed in 4 byte chunks. ->max_dma_len is the value the spi core uses when splitting the buffer into scatter gather entries. The BCM2835 DMA block has 2 types of channels/engines: - Normal: Max length: 1G - Lite: Max length: 65535 Even when using a Lite channel we will not exceed the max length, so let's drop setting ->max_dma_len. Signed-off-by: Meghana Madhyastha Signed-off-by: Noralf Trønnes Reviewed-by: Lukas Wunner Signed-off-by: Mark Brown commit 937e6d756422637eeb212c645ded69569a67fabc Author: Sowjanya Komatineni Date: Mon Apr 15 14:30:27 2019 -0700 spi: expand mode support This patch changes mode and mode_bits from u16 to u32 to allow more mode configurations. Signed-off-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit bf6e839657598b77e40eb18225f8660c4778cb19 Author: Leilk Liu Date: Wed Apr 17 16:47:16 2019 +0800 dt-bindings: spi: spi-mt65xx: add support for MT8516 Add binding documentation of spi-mt65xx for MT8516 SOC. Signed-off-by: Leilk Liu Reviewed-by: Matthias Brugger Signed-off-by: Mark Brown commit 41a918026407be4ca2727cd0d6243fe6cdbfc4ed Author: Evan Green Date: Mon Apr 15 20:27:43 2019 -0700 spi: pxa2xx: Add support for Intel Comet Lake Add PCI IDs for SPI on Comet Lake. Signed-off-by: Evan Green Acked-by: Andy Shevchenko Reviewed-by: Jarkko Nikula Signed-off-by: Mark Brown commit ed86bf8ef3b5ea49230d7d7050a360b74df98ce2 Author: Noralf Trønnes Date: Sat Apr 13 22:48:55 2019 +0200 spi/trace: Cap buffer contents at 64 bytes Large transfers (64kB) doesn't show up in the trace. Not sure why, but since printk can only display buffers up to 64 bytes in length, we only need to store the first 64 bytes. Cc: Uwe Kleine-König Signed-off-by: Noralf Trønnes Signed-off-by: Mark Brown commit c9ba7a16d0f1d2b1e70d47296eca5f612c753825 Author: Noralf Trønnes Date: Sat Apr 13 20:24:13 2019 +0200 spi: Release spi_res after finalizing message spi_split_transfers_maxsize() can be used to split a transfer. This function uses spi_res to lifetime manage the added transfer structures. So in order to finalize the current message while it contains the split transfers, spi_res_release() must be called after finalizing. Signed-off-by: Noralf Trønnes Signed-off-by: Mark Brown commit 4d1841d64535d60a1378d847cf4cd3f340ea28c2 Author: Noralf Trønnes Date: Sat Apr 13 20:24:12 2019 +0200 spi: Remove warning in spi_split_transfers_maxsize() Don't warn about splitting transfers, the info is available in the statistics if needed. Signed-off-by: Noralf Trønnes Signed-off-by: Mark Brown commit 76d2f7ee68b669c5825435bad204f3d9b4b55d18 Author: Jarkko Nikula Date: Fri Apr 12 16:25:51 2019 +0300 spi: Remove one needless transfer speed fall back case Falling back to maximum speed of the controller in case of SPI slave maximum speed is not set is needless. It already defaults to maximum speed of the controller since commit 052eb2d49006 ("spi: core: Set max_speed_hz of spi_device default to max_speed_hz of controller"). Signed-off-by: Jarkko Nikula Signed-off-by: Mark Brown commit 9231b4603ef266cdf242d44c3164d6ee69447a1b Author: Cao Van Dong Date: Thu Apr 11 16:54:21 2019 +0900 spi: sh-msiof: Document r8a77470 bindings Document SoC specific bindings for R-Car RZ/G1C(r8a77470) SoC. Signed-off-by: Cao Van Dong Signed-off-by: Mark Brown commit 51ebf6acb00fa6f965e600f848bee5bddddd2054 Author: Flavio Suligoi Date: Wed Apr 10 14:51:36 2019 +0200 spi: pxa2xx: use a module softdep for dw_dmac With dw_dmac, sometimes the request of a DMA channel fails because the DMA driver is not ready, so an explicit dependency request is necessary. Signed-off-by: Flavio Suligoi Signed-off-by: Mark Brown commit b5881b153bc81d63a5a7e82a35e8a4bdbe1f8c73 Author: YueHaibing Date: Wed Apr 10 21:18:28 2019 +0800 spi: spi-mem: Make spi_mem_default_supports_op() static inline Stub helper spi_mem_default_supports_op() should be set to static inline Signed-off-by: YueHaibing Signed-off-by: Mark Brown commit 72e6841608b9ce7e04515ed43693b2878936c93a Author: YueHaibing Date: Mon Apr 8 22:39:49 2019 +0800 spi: spi-mem: Fix build error without CONFIG_SPI_MEM When building with CONFIG_SPI_MEM is not set gc warns this: drivers/spi/spi-zynq-qspi.o: In function `zynq_qspi_supports_op': spi-zynq-qspi.c:(.text+0x1da): undefined reference to `spi_mem_default_supports_op' Fixes: 67dca5e580f1 ("spi: spi-mem: Add support for Zynq QSPI controller") Signed-off-by: YueHaibing Signed-off-by: Mark Brown commit 80869e7e61ec0228c3652d3c10f461a5baa227b0 Merge: 840f93dd8946 879a4e70f96a Author: Dave Airlie Date: Thu May 2 11:16:42 2019 +1000 Merge tag 'drm-intel-next-fixes-2019-04-30' of git://anongit.freedesktop.org/drm/drm-intel into drm-next - Fix to Icelake CSC losing blue channel Signed-off-by: Dave Airlie From: Joonas Lahtinen Link: https://patchwork.freedesktop.org/patch/msgid/20190430070820.GA7967@jlahtine-desk.ger.corp.intel.com commit 840f93dd8946812df9a13a0d1709075b68e37a1d Merge: 989eea61448f 761e473f6b23 Author: Dave Airlie Date: Thu May 2 11:16:11 2019 +1000 Merge tag 'drm-misc-next-fixes-2019-05-01' of git://anongit.freedesktop.org/drm/drm-misc into drm-next core: restore drm mmap_range size back to 1TB (Philip) sphinx: squash warning (Sean) Cc: Philip Yang Cc: Sean Paul Signed-off-by: Dave Airlie From: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190501190921.GA120430@art_vandelay commit 989eea61448f7b3b49161f1accf097848b305474 Merge: 7c13e5cc2391 30df16b93b25 Author: Dave Airlie Date: Thu May 2 09:37:39 2019 +1000 Merge branch 'linux-5.2' of git://github.com/skeggsb/linux into drm-next No major changes ready for this round, but a few misc fixes instead. Signed-off-by: Dave Airlie From: Ben Skeggs Link: https://patchwork.freedesktop.org/patch/msgid/CACAvsv7+Ch=r9pt+kPRP8obo_uLscL9Hrg3xq4s92StLvgy=Mw@mail.gmail.com commit 61e93655fc30cee7c91c85d6c41b96500d228d19 Author: Nick Crews Date: Thu Apr 18 10:43:14 2019 -0600 power: supply: core: Add missing documentation for CHARGE_CONTROL_* properties The existing POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT and POWER_SUPPLY_PROP_CHARGE_CONTROL_LIMIT_MAX properties don't have documentation. I add that documentation here. v5 changes: - Split this commit out from the previous two commits. Signed-off-by: Nick Crews Reviewed-by: Enric Balletbo i Serra Signed-off-by: Sebastian Reichel commit 813cab8f3994250e136819ae48fbd1c95d980466 Author: Nick Crews Date: Thu Apr 18 10:43:13 2019 -0600 power: supply: core: Add CHARGE_CONTROL_{START_THRESHOLD,END_THRESHOLD} properties Add POWER_SUPPLY_PROP_CHARGE_CONTROL_START_THRESHOLD and POWER_SUPPLY_PROP_CHARGE_CONTROL_END_THRESHOLD properties, to expand the existing CHARGE_CONTROL_* properties. I am adding them in order to support a new Chrome OS device, but these properties should be general enough that they can be used on other devices. When the charge_type is "Custom", the charge controller uses the POWER_SUPPLY_PROP_CHARGE_CONTROL_* properties as configuration for some other algorithm. For example, in the use case that I am supporting, this means the battery begins charging when the percentage level drops below POWER_SUPPLY_PROP_CHARGE_CONTROL_START_THRESHOLD and charging ceases when the percentage level goes above POWER_SUPPLY_PROP_CHARGE_CONTROL_END_THRESHOLD. v5 changes: - Add the other missing CHARGE_CONTROL_* properties documentation in a separate commit - Split up adding the charge types and adding the POWER_SUPPLY_PROP_CHARGE_CONTROL_START_THRESHOLD and POWER_SUPPLY_PROP_CHARGE_CONTROL_END_THRESHOLD properties into two different commits. v4 changes: - Add documentation for the new properties, and add documentation for the the previously missing charge_control_limit and charge_control_limit_max properties. Signed-off-by: Nick Crews Reviewed-by: Enric Balletbo i Serra Signed-off-by: Sebastian Reichel commit ba6cc85084178e5bce50f6a00411e457c21c47df Author: Nick Crews Date: Thu Apr 18 10:43:12 2019 -0600 power: supply: core: Add Standard, Adaptive, and Custom charge types Add "Standard", "Adaptive", and "Custom" modes to the charge_type property, to expand the existing "Trickle" and "Fast" modes. I am adding them in order to support a new Chrome OS device, but these properties should be general enough that they can be used on other devices. The meaning of "Standard" is obvious, but "Adaptive" and "Custom" are more tricky: "Adaptive" means that the charge controller uses some custom algorithm to change the charge type automatically, with no configuration needed. "Custom" means that the charge controller uses the POWER_SUPPLY_PROP_CHARGE_CONTROL_* properties as configuration for some other algorithm. v5 changes: - Split up adding the charge types and adding the POWER_SUPPLY_PROP_CHARGE_CONTROL_START_THRESHOLD and POWER_SUPPLY_PROP_CHARGE_CONTROL_END_THRESHOLD properties into two different commits. v4 changes: - Add documentation for the new properties, and add documentation for the the previously missing charge_control_limit and charge_control_limit_max properties. Signed-off-by: Nick Crews Reviewed-by: Enric Balletbo i Serra Signed-off-by: Sebastian Reichel commit 9274c78305e12c5f461bec15f49c38e0f32ca705 Author: Hans de Goede Date: Mon Apr 22 22:43:01 2019 +0200 power: supply: axp288_fuel_gauge: Add ACEPC T8 and T11 mini PCs to the blacklist The ACEPC T8 and T11 Cherry Trail Z8350 mini PCs use an AXP288 and as PCs, rather then portables, they does not have a battery. Still for some reason the AXP288 not only thinks there is a battery, it actually thinks it is discharging while the PC is running, slowly going to 0% full, causing userspace to shutdown the system due to the battery being critically low after a while. This commit adds the ACEPC T8 and T11 to the axp288 fuel-gauge driver blacklist, so that we stop reporting bogus battery readings on this device. BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1690852 Cc: stable@vger.kernel.org Signed-off-by: Hans de Goede Signed-off-by: Sebastian Reichel commit 243f8ffc883a120516b1280c799b2e5081169efd Author: Krzysztof Kozlowski Date: Fri Apr 26 11:59:02 2019 +0200 power: supply: bq27xxx_battery: Notify also about status changes User-space might be interested in receiving uevents when the charging starts/stops or if conditions of battery changes (e.g. over-temperature). Notify about changes in battery also when the flags change, not only SoC. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Pali Rohár Signed-off-by: Sebastian Reichel commit 0f97da83102610db886e8b688b9029e080e6d511 Author: Christian König Date: Thu Apr 18 13:58:59 2019 +0200 PCI/P2PDMA: Allow P2P DMA between any devices under AMD ZEN Root Complex The PCI specs say that peer-to-peer DMA should be supported between any two devices that have a common upstream PCI-to-PCI bridge. But devices under different Root Ports don't share a common upstream bridge, and PCIe r4.0, sec 1.3.1, says routing peer-to-peer transactions between Root Ports in the same Root Complex is optional. Many Root Complexes, including AMD ZEN, *do* support peer-to-peer DMA even between Root Ports. Add a whitelist and allow peer-to-peer DMA if both participants are attached to a Root Complex known to support it. Link: https://lore.kernel.org/linux-pci/20190418115859.2394-1-christian.koenig@amd.com Signed-off-by: Christian König [bhelgaas: changelog] Signed-off-by: Bjorn Helgaas Reviewed-by: Logan Gunthorpe commit b9aa0b35d878dff9ed19f94101fe353a4de00cc4 Author: Wang YanQing Date: Sun Apr 28 10:33:02 2019 +0800 bpf, x32: Fix bug for BPF_ALU64 | BPF_NEG The current implementation has two errors: 1: The second xor instruction will clear carry flag which is necessary for following sbb instruction. 2: The select coding for sbb instruction is wrong, the coding is "sbb dreg_hi,ecx", but what we need is "sbb ecx,dreg_hi". This patch rewrites the implementation and fixes the errors. This patch fixes below errors reported by bpf/test_verifier in x32 platform when the jit is enabled: " 0: (b4) w1 = 4 1: (b4) w2 = 4 2: (1f) r2 -= r1 3: (4f) r2 |= r1 4: (87) r2 = -r2 5: (c7) r2 s>>= 63 6: (5f) r1 &= r2 7: (bf) r0 = r1 8: (95) exit processed 9 insns (limit 131072), stack depth 0 0: (b4) w1 = 4 1: (b4) w2 = 4 2: (1f) r2 -= r1 3: (4f) r2 |= r1 4: (87) r2 = -r2 5: (c7) r2 s>>= 63 6: (5f) r1 &= r2 7: (bf) r0 = r1 8: (95) exit processed 9 insns (limit 131072), stack depth 0 ...... Summary: 1189 PASSED, 125 SKIPPED, 15 FAILED " Signed-off-by: Wang YanQing Signed-off-by: Daniel Borkmann commit 6f4e02193c9a9ea54dd3151cf97489fa787cd0e6 Author: Bodong Wang Date: Thu Apr 18 18:24:15 2019 -0500 net/mlx5: E-Switch, Use atomic rep state to serialize state change When the state of rep was introduced, it was also designed to prevent duplicate unloading of the same rep. Considering the following two flows when an eswitch manager is at switchdev mode with n VF reps loaded. +--------------------------------------+--------------------------------+ | cpu-0 | cpu-1 | | -------- | -------- | | mlx5_ib_remove | mlx5_eswitch_disable_sriov | | mlx5_ib_unregister_vport_reps | esw_offloads_cleanup | | mlx5_eswitch_unregister_vport_reps | esw_offloads_unload_all_reps | | __unload_reps_all_vport | __unload_reps_all_vport | +--------------------------------------+--------------------------------+ These two flows will try to unload the same rep. Per original design, once one flow unloads the rep, the state moves to REGISTERED. The 2nd flow will no longer needs to do the unload and bails out. However, as read and write of the state is not atomic, when 1st flow is doing the unload, the state is still LOADED, 2nd flow is able to do the same unload action. Kernel crash will happen. To solve this, driver should do atomic test-and-set for the state. So that only one flow can change the rep state from LOADED to REGISTERED, and proceed to do the actual unloading. Since the state is changing to atomic type, all other read/write should be atomic action as well. Fixes: f121e0ea9586 (net/mlx5: E-Switch, Add state to eswitch vport representors) Signed-off-by: Bodong Wang Reviewed-by: Parav Pandit Reviewed-by: Vu Pham Signed-off-by: Saeed Mahameed commit 5d9986a3947a08185c407442c9a5fc9546b9e440 Author: Bodong Wang Date: Mon Apr 15 17:39:07 2019 -0500 net/mlx5: E-Switch, Fix the check of legal vport The check of legal vport is to ensure the vport number falls between 0 and total number of vports. Along with the introduction of uplink rep, enabled vports are not consecutive any more. Therefore, rely on the eswitch vport getter function to check if it's a valid vport. As the getter function relies on eswitch, add the check of vport group manager and validation the presence of eswitch structure. Remove the redundant check in the function calls. Since the vport array will be allocated once eswitch is initialized and will be kept alive if eswitch presents, no need to protect it with the state lock. Fixes: 5ae5162066d8 ("net/mlx5: E-Switch, Assign a different position for uplink rep and vport") Signed-off-by: Bodong Wang Signed-off-by: Parav Pandit Signed-off-by: Saeed Mahameed commit 4314ebaa1e423d398035cdb7d15c50defa0f48af Author: Bodong Wang Date: Mon Apr 15 17:36:43 2019 -0500 net/mlx5: E-Switch, Use getter to access all vport array Some functions issue vport commands and access vport array using vport_index/vport_num interchangeably which is OK for VFs vports. However, this creates potential bug if those vports are not VFs (E.g, uplink, sf) where their vport_index don't equal to vport_num. Prepare code to access mlx5_vport structure using a getter function. Signed-off-by: Bodong Wang Signed-off-by: Vu Pham Reviewed-by: Parav Pandit Signed-off-by: Saeed Mahameed commit ee813f314b2486549cd06e9e2c4d56ccab005609 Author: Parav Pandit Date: Sun Apr 21 20:34:45 2019 -0500 net/mlx5: Use available mlx5_vport struct Several functions need to access mlx5_vport and vport_num. When these functions are called, caller already has mlx5_vport* available. Hence pass such mlx5_vport pointer. This is preparation patch to add error checks to mlx5_eswitch_get_vport() and to return error status. By doing so, reduce places where error check of mlx5_eswitch_get_vport() can be avoided. While doing such change, mlx5_eswitch_query_vport_drop_stats() gets corrected to work on vport, instead of vport_idx. Signed-off-by: Parav Pandit Reviewed-by: Bodong Wang Signed-off-by: Saeed Mahameed commit 786ef904b43b9ddb675f55ef05afad5f07fb49d0 Author: Parav Pandit Date: Sun Apr 21 00:36:21 2019 -0500 net/mlx5: Reuse mlx5_esw_for_each_vf_vport macro in two files Currently mlx5_esw_for_each_vf_vport iterates over mlx5_vport entries in eswitch.c Same macro in eswitch_offloads.c iterates over vport number in eswitch_offloads.c Instead of duplicate macro names, to avoid confusion and to reuse the same macro in both files, move it to eswitch.h. To iterate over vport numbers where there is no need to iterate over mlx5_vport, but only a vport number is needed, rename those macros in eswitch_offloads.c to mlx5_esw_for_each_vf_num_vport*. While at it, keep all vport and vport rep iterators together. Signed-off-by: Parav Pandit Signed-off-by: Saeed Mahameed commit c9bbfb378bc35fcd0b51e4a8950bd50447f39832 Author: Bodong Wang Date: Fri Apr 12 16:14:03 2019 -0500 net/mlx5: Remove unused mlx5_query_nic_vport_vlans mlx5_query_nic_vport_vlans() is not used anymore. Hence remove it. This patch doesn't change any functionality. Signed-off-by: Bodong Wang Reviewed-by: Parav Pandit Signed-off-by: Saeed Mahameed commit 0bdddcea5be6d619a047ad0ef3252a12725e3928 Author: Masahiro Yamada Date: Fri Apr 19 14:17:31 2019 +0900 net/mlx5e: remove meaningless CFLAGS_tracepoint.o CFLAGS_tracepoint.o specifies CFLAGS for compiling tracepoint.c but it does not exist under drivers/net/ethernet/mellanox/mlx5/core/. CFLAGS_tracepoint.o is unused. Signed-off-by: Masahiro Yamada Signed-off-by: Saeed Mahameed commit 33e10924a0cead92b0ef9d71165eaeb849ec108f Author: Maxim Mikityanskiy Date: Fri Mar 1 13:12:55 2019 +0200 net/mlx5e: Put the common XDP code into a function The same code that returns XDP frames and releases pages is used both in mlx5e_poll_xdpsq_cq and mlx5e_free_xdpsq_descs. Create a function that cleans up an MPWQE. Signed-off-by: Maxim Mikityanskiy Signed-off-by: Saeed Mahameed commit a708fb7b1f8dcc7a8ed949839958cd5d812dd939 Author: Erez Alfasi Date: Thu Mar 21 15:02:13 2019 +0200 net/mlx5e: ethtool, Add support for EEPROM high pages query Add the support to read additional EEPROM information from high pages. Information for modules such as SFF-8436 and SFF-8636: 1) Application select table 2) User writable EEPROM 3) Thresholds and alarms Signed-off-by: Erez Alfasi Signed-off-by: Saeed Mahameed commit 0e1a2a3e6e7d37cea9f8586f6d7745b539147d9f Author: Erez Alfasi Date: Tue Mar 5 15:42:23 2019 +0200 ethtool: Add SFF-8436 and SFF-8636 max EEPROM length definitions Added max EEPROM length defines for ethtool usage: #define ETH_MODULE_SFF_8636_MAX_LEN 640 #define ETH_MODULE_SFF_8436_MAX_LEN 640 These definitions are used to determine the EEPROM data length when reading high eeprom pages. For example, SFF-8636 EEPROM data from page 03h needs to be stored at data[512] - data[639]. Signed-off-by: Erez Alfasi Signed-off-by: Saeed Mahameed commit 0e1c1a2fcfcb6b91db98a60711fa14f9f69a383c Author: Vlad Buslov Date: Mon Apr 15 10:10:02 2019 +0300 net/mlx5e: Return error when trying to insert existing flower filter With unlocked TC it is possible to have spurious deletes and inserts of same filter. TC layer needs drivers to always return error when flow insertion failed in order to correctly calculate "in_hw_count" for each filter. Fix mlx5e_configure_flower() to return -EEXIST when TC tries to insert a filter that is already provisioned to the driver. Signed-off-by: Vlad Buslov Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit 0bac1194539753eca1c0fd9aca7a1764356bdc9f Author: Eli Britstein Date: Mon Mar 4 13:50:38 2019 +0000 net/mlx5e: Replace TC VLAN pop with VLAN 0 rewrite in prio tag mode Current ConnectX HW is unable to perform VLAN pop in TX path and VLAN push on RX path. To workaround that limitation untagged packets are tagged with VLAN ID 0x000 (priority tag) and pop/push actions are replaced by VLAN re-write actions (which are supported by the HW). Replace TC VLAN pop action with a VLAN priority tag header rewrite. Signed-off-by: Eli Britstein Reviewed-by: Oz Shlomo Signed-off-by: Saeed Mahameed commit 184867373d8c6bc3f8b3e4c8d9c8ef0fb5ce2340 Author: Eli Britstein Date: Mon Mar 4 05:01:12 2019 +0000 net/mlx5e: ACLs for priority tag mode Current ConnectX HW is unable to perform VLAN pop in TX path and VLAN push on RX path. As a workaround, untagged packets are tagged with VID 0x000 allowing pop/push actions to be exchanged with VLAN rewrite actions. Use the ingress ACL table, preceding the FDB, to push VLAN 0x000 ID tag for untagged packets and the egress ACL table, succeeding the FDB, to pop VLAN 0x000 ID tag. Signed-off-by: Eli Britstein Reviewed-by: Oz Shlomo Signed-off-by: Saeed Mahameed commit 69dad68d1bcf26dde3cc4b08b08c2260ae575ab6 Author: Tariq Toukan Date: Sun Jan 20 11:04:34 2019 +0200 net/mlx5e: Turn on HW tunnel offload in all TIRs Hardware requires that all TIRs that steer traffic to the same RQ should share identical tunneled_offload_en value. For that, the tunneled_offload_en bit should be set/unset (according to the HW capability) for all TIRs', not only the ones dedicated for tunneled (inner) traffic. Fixes: 1b223dd39162 ("net/mlx5e: Fix checksum handling for non-stripped vlan packets") Signed-off-by: Tariq Toukan Signed-off-by: Saeed Mahameed commit 7306c274e7297307aceae99a8cb7f2a341b484e1 Author: Tariq Toukan Date: Wed Jan 16 14:31:22 2019 +0200 net/mlx5e: Take common TIR context settings into a function Many TIR context settings are common to different TIR types, take them into a common function. Signed-off-by: Tariq Toukan Reviewed-by: Aya Levin Signed-off-by: Saeed Mahameed commit 711aef1bbf88212a21f7103e88f397b47a528805 Author: Wang YanQing Date: Sat Apr 27 16:28:26 2019 +0800 bpf, x32: Fix bug for BPF_JMP | {BPF_JSGT, BPF_JSLE, BPF_JSLT, BPF_JSGE} The current method to compare 64-bit numbers for conditional jump is: 1) Compare the high 32-bit first. 2) If the high 32-bit isn't the same, then goto step 4. 3) Compare the low 32-bit. 4) Check the desired condition. This method is right for unsigned comparison, but it is buggy for signed comparison, because it does signed comparison for low 32-bit too. There is only one sign bit in 64-bit number, that is the MSB in the 64-bit number, it is wrong to treat low 32-bit as signed number and do the signed comparison for it. This patch fixes the bug and adds a testcase in selftests/bpf for such bug. Signed-off-by: Wang YanQing Signed-off-by: Daniel Borkmann commit 516f1117d0fb375830dea715a3f890a76ff1ffef Author: Tony Lindgren Date: Wed May 1 14:24:09 2019 -0700 ARM: dts: Configure osc clock for d_can on am335x Reading the module revision register can cause an external abort on non-linefetch depending of osc clock is not already enabled. This started happening with commit 1a5cd7c23cc5 ("bus: ti-sysc: Enable all clocks directly during init to read revision") as reported by Sebastian Andrzej Siewior . The reason why the issue happens is because we now attempt to read the interconnect target module revision register by first manually enabling all the device clocks in sysc_probe(). And looks like d_can also needs the osc clock in addition to the module clock, and it may or may not be enabled depending on the bootloader version and if other devices have already requested osc clock. Let's fix the issue by adding osc clock as an optional clock for the module for am335x. Note that am437x does not seem to list the osc clock at all, so presumably it is not needed for am437x. I also noticed that we're incorrectly assuming the revision register for d_can exists. But the module does not seem to have any revision, sysconfig or sysstatus registers. But that's mostly a cosmetic issues, so I'll send a patch separately for that. Fixes: 1a5cd7c23cc5 ("bus: ti-sysc: Enable all clocks directly during init to read revision") Reported-by: Sebastian Andrzej Siewior Tested-by: Keerthy Signed-off-by: Tony Lindgren commit f76c4b571feea8eb03184d8ba0ee45f98fff47ff Merge: 2a369ae00388 bec2d46d143d Author: David S. Miller Date: Wed May 1 17:13:14 2019 -0400 Merge branch 'net-mvpp2-cls-Add-classification' Maxime Chevallier says: ==================== net: mvpp2: cls: Add classification This series is a rework of the previously standalone patch adding classification support for mvpp2 : https://lore.kernel.org/netdev/20190423075031.26074-1-maxime.chevallier@bootlin.com/ This patch has been reworked according to Saeed's review, to make sure that the location of the rule is always respected and serves as a way to prioritize rules between each other. This the 3rd iteration of this submission, but since it's now a series, I reset the revision numbering. This series implements that in a limited configuration for now, since we limit the total number of rules per port to 4. The main factors for this limitation are that : - We share the classification tables between all ports (4 max, although one is only used for internal loopback), hence we have to perform a logical separation between rules, which is done today by dedicated ranges for each port in each table - The "Flow table", which dictates which lookups operations are performed for an ingress packet, in subdivided into 22 "sub flows", each corresponding to a traffic type based on the L3 proto, L4 proto, the presence or not of a VLAN tag and the L3 fragmentation. This makes so that when adding a rule, it has to be added into each of these subflows, introducing duplications of entries and limiting our max number of entries. These limitations can be overcomed in several ways, but for readability sake, I'd rather submit basic classification offload support for now, and improve it gradually. This series also adds a small cosmetic cleanup patch (1), and also adds support for the "Drop" action compared to the first submission of this feature. It is simple enough to be added with this basic support. Compared to the first submissions, the NETIF_F_NTUPLE flag was also removed, following Saeed's comment. ==================== Signed-off-by: David S. Miller commit bec2d46d143d467f92d7d1b54d1e7c1e3a25a7b9 Author: Maxime Chevallier Date: Tue Apr 30 15:14:29 2019 +0200 net: mvpp2: cls: Allow dropping packets with classification offload This commit introduces support for the "Drop" action in classification offload. This corresponds to the "-1" action with ethtool -N. This is achieved using the color marking actions available in the C2 engine, which associate a color to a packet. These colors can be either Green, Yellow or Red, Red meaning that the packet should be dropped. Green and Yellow colors are interpreted by the Policer, which isn't supported yet. This method of dropping using the Classifier is different than the already existing early-drop features, such as VLAN filtering and MAC UC/MC filtering, which are performed during the Parsing step, and therefore take precedence over classification actions. Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit 90b509b39ac9b09be88eb641c7a3abd8de06b698 Author: Maxime Chevallier Date: Tue Apr 30 15:14:28 2019 +0200 net: mvpp2: cls: Add Classification offload support This commit introduces basic classification offloading support for the PPv2 controller. The PPv2 classifier has many classification engines, for now we only use the C2 TCAM match engine. This engine allows to perform ternary lookups on 64 bits keys (called Header Extracted Key), that are built by extracting fields from the packet header and concatenating them. At most 4 fields can be extracted for a single lookup. This basic implementation allows to build the HEK from the following fields : - L4 source and destination ports (for UDP and TCP) More fields are to be added in the future. Classification flows are added through the ethtool interface, using the newly introduced flow_rule infrastructure as an internal rule representation, allowing to more easily implement tc flower rules if need be. The internal design for now allocates one range of 4 rules per port due to the internal design of the flow table, which uses 22 sub-flows. When inserting a classification rule, the rule is created in every relevant sub-flow. This low rule-count is a very simple design which reaches quickly the limitations of the flow table ordering, but guarantees that the rule ordering will always be respected. This commit only introduces support for the "steer to rxq" action. Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit 84e90b0b51aabb5cb73a366368b956df37d7cedc Author: Maxime Chevallier Date: Tue Apr 30 15:14:27 2019 +0200 net: mvpp2: cls: Use a bitfield to represent the flow_type As of today, the classification code is used only for RSS. We split the incoming traffic into multiple flows, that correspond to the ethtool flow_type parameter. We don't want to use the ethtool flow definitions such as TCP_V4_FLOW, for several reason : - We want to decorrelate the driver code from ethtool as much as possible, so that we can easily use other interfaces such as tc flower, - We want the flow_type to be a bitfield, so that we can match flows embedded into each other, such as TCP4 which is a subset of IP4. This commit does the conversion to the newer type. Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit 6f16a4652262c2a27a241b30039c11ae01586641 Author: Maxime Chevallier Date: Tue Apr 30 15:14:26 2019 +0200 net: mvpp2: cls: Remove extra whitespace in mvpp2_cls_flow_write Cosmetic patch removing extra whitespaces when writing the flow_table entries Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit a048fe996b5109d3c94c243bb0733419fbd0ed8f Author: Anson Huang Date: Tue Apr 30 00:57:22 2019 +0000 clk: imx: pllv4: add fractional-N pll support The pllv4 supports fractional-N function, the formula is: PLL output freq = input * (mult + num/denom), This patch adds fractional-N function support, including clock round rate, calculate rate and set rate, with this patch, the clock rate of APLL in clock tree is more accurate than before: Without fraction: apll_pre_sel 1 1 1 24000000 0 0 50000 apll_pre_div 1 1 2 24000000 0 0 50000 apll 1 1 2 528000000 0 0 50000 apll_pfd3 0 0 0 792000000 0 0 50000 apll_pfd2 0 0 0 339428571 0 0 50000 apll_pfd1 0 0 0 352000000 0 0 50000 usdhc0 0 0 0 352000000 0 0 50000 apll_pfd0 1 1 1 352000000 0 0 50000 With fraction: apll_pre_sel 1 1 1 24000000 0 0 50000 apll_pre_div 1 1 2 24000000 0 0 50000 apll 1 1 2 529200000 0 0 50000 apll_pfd3 0 0 0 793800000 0 0 50000 apll_pfd2 0 0 0 340200000 0 0 50000 apll_pfd1 0 0 0 352800000 0 0 50000 usdhc0 0 0 0 352800000 0 0 50000 apll_pfd0 1 1 1 352800000 0 0 50000 Signed-off-by: Anson Huang Reviewed-by: Dong Aisheng commit c515e70d675421240ff6628a1831a56e4ea0e82c Merge: 2a369ae00388 91a40a48d52d Author: Saeed Mahameed Date: Wed May 1 13:57:17 2019 -0700 Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux This merge commit includes some misc shared code updates from mlx5-next branch needed for net-next. 1) From Aya: Enable general events on all physical link types and restrict general event handling of subtype DELAY_DROP_TIMEOUT in mlx5 rdma driver to ethernet links only as it was intended. 2) From Eli: Introduce low level bits for prio tag mode 3) From Maor: Low level steering updates to support RDMA RX flow steering and enables RoCE loopback traffic when switchdev is enabled. 4) From Vu and Parav: Two small mlx5 core cleanups 5) From Yevgeny add HW definitions of geneve offloads Signed-off-by: Saeed Mahameed commit 91a40a48d52d13fbde3239d5839335cabd9a4eae Author: Saeed Mahameed Date: Wed May 1 03:21:05 2019 +0000 net/mlx5: Fix broken hca cap offset The cited commit broke the offsets of hca cap struct, fix it. While at it, cleanup a white space introduced by the same commit. Fixes: b169e64a2444 ("net/mlx5: Geneve, Add flow table capabilities for Geneve decap with TLV options") Reported-by: Qian Cai Cc: Yevgeny Kliteynik Signed-off-by: Saeed Mahameed commit d65530ca866d419c6fc78b97b5c66dea0665b5a8 Author: Nishad Kamdar Date: Wed May 1 15:20:12 2019 +0530 clk: sunxi-ng: Use the correct style for SPDX License Identifier This patch corrects the SPDX License Identifier style in header files related to Clock Drivers for Allwinner SoCs. For C header files Documentation/process/license-rules.rst mandates C-like comments (opposed to C source files where C++ style should be used) Changes made by using a script provided by Joe Perches here: https://lkml.org/lkml/2019/2/7/46 Suggested-by: Joe Perches Signed-off-by: Nishad Kamdar Signed-off-by: Stephen Boyd commit 7a12f838e49a90d2a902633a6bcd19bd1df0e14c Author: Nishad Kamdar Date: Wed May 1 15:08:22 2019 +0530 clk: sprd: Use the correct style for SPDX License Identifier This patch corrects the SPDX License Identifier style in header files related to Clock Drivers for Spreadtrum SoCs. For C header files Documentation/process/license-rules.rst mandates C-like comments (opposed to C source files where C++ style should be used) Changes made by using a script provided by Joe Perches here: https://lkml.org/lkml/2019/2/7/46 Suggested-by: Joe Perches Signed-off-by: Nishad Kamdar Signed-off-by: Stephen Boyd commit 596c5ea465282b89f1b1524ca76a2fa3978c6f3b Author: Nishad Kamdar Date: Wed May 1 14:54:07 2019 +0530 clk: renesas: Use the correct style for SPDX License Identifier This patch corrects the SPDX License Identifier style in header files related to Clock Drivers for Renesas Socs. For C header files Documentation/process/license-rules.rst mandates C-like comments (opposed to C source files where C++ style should be used) Changes made by using a script provided by Joe Perches here: https://lkml.org/lkml/2019/2/7/46 Suggested-by: Joe Perches Signed-off-by: Nishad Kamdar Signed-off-by: Stephen Boyd commit ddc9e569f1bd70bfa462a7510927c021495761dc Author: Nishad Kamdar Date: Wed May 1 13:09:36 2019 +0530 clk: qcom: Use the correct style for SPDX License Identifier This patch corrects the SPDX License Identifier style in clk-regmap-mux-div.h. For C header files Documentation/process/license-rules.rst mandates C-like comments (opposed to C source files where C++ style should be used) Changes made by using a script provided by Joe Perches here: https://lkml.org/lkml/2019/2/7/46 Suggested-by: Joe Perches Signed-off-by: Nishad Kamdar Signed-off-by: Stephen Boyd commit 41d591750e3a0340c523d5ad5b91b625582bf623 Author: Nishad Kamdar Date: Wed May 1 12:54:43 2019 +0530 clk: davinci: Use the correct style for SPDX License Identifier This patch corrects the SPDX License Identifier style in header files related to Clock Drivers for Davinci Socs. For C header files Documentation/process/license-rules.rst mandates C-like comments (opposed to C source files where C++ style should be used) Changes made by using a script provided by Joe Perches here: https://lkml.org/lkml/2019/2/7/46 Suggested-by: Joe Perches Signed-off-by: Nishad Kamdar Signed-off-by: Stephen Boyd commit ddd3e8b976c78ad36e960868536bd49f3d77c4c9 Author: Nishad Kamdar Date: Wed May 1 12:37:11 2019 +0530 clk: actions: Use the correct style for SPDX License Identifier This patch corrects the SPDX License Identifier style in header files related to Clock Drivers for Actions Semi Socs. For C header files Documentation/process/license-rules.rst mandates C-like comments (opposed to C source files where C++ style should be used) Changes made by using a script provided by Joe Perches here: https://lkml.org/lkml/2019/2/7/46 Suggested-by: Joe Perches Signed-off-by: Nishad Kamdar Signed-off-by: Stephen Boyd commit 2c85f2bd519457073444ec28bbb4743a4e4237a7 Author: Greg Kurz Date: Fri Apr 19 17:37:17 2019 +0200 vfio-pci/nvlink2: Fix potential VMA leak If vfio_pci_register_dev_region() fails then we should rollback previous changes, ie. unmap the ATSD registers. Fixes: 7f92891778df ("vfio_pci: Add NVIDIA GV100GL [Tesla V100 SXM2] subdriver") Signed-off-by: Greg Kurz Reviewed-by: Alexey Kardashevskiy Signed-off-by: Alex Williamson commit 195712bfdddf777603ec12f67023ef6151bb2e1c Author: Rob Herring Date: Wed May 1 13:12:28 2019 -0500 dt-bindings: Update schema project location to devicetree.org github group The DT schema tools are moving from my personal GH repo to the devicetree.org group on GH. The new location is here: https://github.com/devicetree-org/dt-schema.git The old repo will be kept as a mirror. Signed-off-by: Rob Herring commit 440868661f36071886ed360d91de83bd67c73b4f Author: Phong Tran Date: Tue Apr 30 21:56:24 2019 +0700 of: fix clang -Wunsequenced for be32_to_cpu() Now, make the loop explicit to avoid clang warning. ./include/linux/of.h:238:37: warning: multiple unsequenced modifications to 'cell' [-Wunsequenced] r = (r << 32) | be32_to_cpu(*(cell++)); ^~ ./include/linux/byteorder/generic.h:95:21: note: expanded from macro 'be32_to_cpu' ^ ./include/uapi/linux/byteorder/little_endian.h:40:59: note: expanded from macro '__be32_to_cpu' ^ ./include/uapi/linux/swab.h:118:21: note: expanded from macro '__swab32' ___constant_swab32(x) : \ ^ ./include/uapi/linux/swab.h:18:12: note: expanded from macro '___constant_swab32' (((__u32)(x) & (__u32)0x000000ffUL) << 24) | \ ^ Signed-off-by: Phong Tran Reported-by: Nick Desaulniers Link: https://github.com/ClangBuiltLinux/linux/issues/460 Suggested-by: David Laight Reviewed-by: Nick Desaulniers Cc: stable@vger.kernel.org [robh: fix up whitespace] Signed-off-by: Rob Herring commit 8e94fd36220cb541ab536214bd9993035251cd5c Author: Jojo Zeng Date: Thu Apr 25 09:45:54 2019 +0800 of/device.c: fix the wrong comments the comments which discribed the input parameters of of_match_device(). the name is changed, so fix it. Signed-off-by: Jojo Zeng Reviewed-by: Frank Rowand Signed-off-by: Rob Herring commit 2a369ae003881612ef5c2f03adcfc0ddc4ea817e Merge: ac97a359b72d 73f7375d3ed6 Author: David S. Miller Date: Wed May 1 14:33:31 2019 -0400 Merge branch 'net-ll_temac-x86_64-support' Esben Haabendal says: ==================== net: ll_temac: x86_64 support This patch series adds support for use of ll_temac driver with platform_data configuration and fixes endianess and 64-bit problems so that it can be used on x86_64 platform. A few bugfixes are also included. Changes since v2: - Fixed lp->indirect_mutex initialization regression for OF platforms introduced in v2 Changes since v1: - Make indirect_mutex specification mandatory when using platform_data - Move header to include/linux/platform_data - Enable COMPILE_TEST for XILINX_LL_TEMAC - Rebased to v5.1-rc7 ==================== Signed-off-by: David S. Miller commit 73f7375d3ed6ad372f1e9404007a0c866063d773 Author: Esben Haabendal Date: Tue Apr 30 09:17:59 2019 +0200 net: ll_temac: Enable DMA when ready, not before As soon as TAILDESCR_PTR is written, DMA transfers might start. Let's ensure we are ready to receive DMA IRQ's before doing that. Signed-off-by: Esben Haabendal Signed-off-by: David S. Miller commit 7e97a194aca03c6ff86f84e46e196f5c9ed5c32c Author: Esben Haabendal Date: Tue Apr 30 09:17:58 2019 +0200 net: ll_temac: Allow configuration of IRQ coalescing This allows custom setup of IRQ coalescing for platforms using legacy platform_device. The irq timeout and count parameters can be used for tuning cpu load vs. latency. I have maintained the 0x00000400 bit in TX_CHNL_CTRL. It is specified as unused in the documentation I have available. It does not make any difference in the hardware I have available, so it is left in to not risk breaking other platforms where it might be used. Signed-off-by: Esben Haabendal Signed-off-by: David S. Miller commit 901d14ab5584753a72116a53fbc4fa67832ad1a5 Author: Esben Haabendal Date: Tue Apr 30 09:17:57 2019 +0200 net: ll_temac: Replace bad usage of msleep() with usleep_range() Use usleep_range() to avoid problems with msleep() actually sleeping much longer than expected. Signed-off-by: Esben Haabendal Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 2c9938e738a273ba315679781a9990c7d3b1831b Author: Esben Haabendal Date: Tue Apr 30 09:17:56 2019 +0200 net: ll_temac: Fix bug causing buffer descriptor overrun As we are actually using a BD for both the skb and each frag contained in it, the oldest TX BD would be overwritten when there was exactly one BD less than needed. Signed-off-by: Esben Haabendal Signed-off-by: David S. Miller commit a8c9bd3ba84084b6cca704d5b21ee0ba971b748b Author: Esben Haabendal Date: Tue Apr 30 09:17:55 2019 +0200 net: ll_temac: Fix iommu/swiotlb leak Unmap the actual buffer length, not the amount of data received, avoiding resource exhaustion of swiotlb (seen on x86_64 platform). Signed-off-by: Esben Haabendal Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit f14f5c11f051ca4a41e65017d94408e5e702ba9d Author: Esben Haabendal Date: Tue Apr 30 09:17:54 2019 +0200 net: ll_temac: Support indirect_mutex share within TEMAC IP Indirect register access goes through a DCR bus bridge, which allows only one outstanding transaction. And to make matters worse, each TEMAC IP block contains two Ethernet interfaces, and although they seem to have separate registers for indirect access, they actually share the registers. Or to be more specific, MSW, LSW and CTL registers are physically shared between Ethernet interfaces in same TEMAC IP, with RDY register being (almost) specificic to the Ethernet interface. The 0x10000 bit in RDY reflects combined bus ready state though. So we need to take care to synchronize not only within a single device, but also between devices in same TEMAC IP. This commit allows to do that with legacy platform devices. For OF devices, the xlnx,compound parent of the temac node should be used to find siblings, and setup a shared indirect_mutex between them. I will leave this work to somebody else, as I don't have hardware to test that. No regression is introduced by that, as before this commit using two Ethernet interfaces in same TEMAC block is simply broken. Signed-off-by: Esben Haabendal Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 2c02c37e9d99aa9b57453cb3ca3044461b193c19 Author: Esben Haabendal Date: Tue Apr 30 09:17:53 2019 +0200 net: ll_temac: Allow use on x86 platforms With little-endian and 64-bit support in place, the ll_temac driver can now be used on x86 and x86_64 platforms. And while at it, enable COMPILE_TEST also. Signed-off-by: Esben Haabendal Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit fdd7454ecb2972c5879a51109ba7c692e6c1c164 Author: Esben Haabendal Date: Tue Apr 30 09:17:52 2019 +0200 net: ll_temac: Fix support for little-endian platforms Both TEMAC and SDMA is big-endian, so make sure that all values in SDMA buffer descriptors (cmdac_bd) are handled as big-endian, independent of the host endianness. With all currently supported platforms being big-endian, this change does not make a change for any of them. Note, when using app3 and app4 for piggybacking skb pointers there is no need to care about endianness, as neither TEMAC nor SDMA access app3 and app4 in TX buffer descriptors. Signed-off-by: Esben Haabendal Signed-off-by: David S. Miller commit a3246dc41aa3c9d799478ccc8dac5d19c509a923 Author: Esben Haabendal Date: Tue Apr 30 09:17:51 2019 +0200 net: ll_temac: Add support for non-native register endianness Replace the powerpc specific MMIO register access functions with the generic big-endian mmio access functions, and add support for little-endian access depending on configuration. Big-endian access is maintained as the default, but little-endian can be configured in device-tree binding or in platform data. The temac_ior()/temac_iow() functions are replaced with macro wrappers to avoid modifying existing code more than necessary. Signed-off-by: Esben Haabendal Signed-off-by: David S. Miller commit d84aec42151b489c4ca6e342ff5233c4789f5b90 Author: Esben Haabendal Date: Tue Apr 30 09:17:50 2019 +0200 net: ll_temac: Fix support for 64-bit platforms The use of buffer descriptor APP4 field (32-bit) for storing skb pointer obviously does not work on 64-bit platforms. As APP3 is also unused, we can use that to store the other half of 64-bit pointer values. Contrary to what is hinted at in commit message of commit 15bfe05c8d63 ("net: ethernet: xilinx: Mark XILINX_LL_TEMAC broken on 64-bit") there are no other pointers stored in cdmac_bd. Signed-off-by: Esben Haabendal Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 8425c41d1ef762cc15d9501d7117f009a79f3fe9 Author: Esben Haabendal Date: Tue Apr 30 09:17:49 2019 +0200 net: ll_temac: Extend support to non-device-tree platforms Support initialization with platdata, so the driver can be used on non-device-tree platforms. For currently supported device-tree platforms, the driver should behave as before. Signed-off-by: Esben Haabendal Signed-off-by: David S. Miller commit a63625d2a0e794f9a348a7119e50b0a56cbd6a18 Author: Esben Haabendal Date: Tue Apr 30 09:17:48 2019 +0200 net: ll_temac: Fix and simplify error handling by using devres functions As a side effect, a few error cases are fixed. If of_iomap() of sdma_regs failed, no error code was returned. Fixed to return -ENOMEM similar to of_iomap() fail of regs. If sysfs_create_group() or register_netdev() failed, lp->phy_node was not released. Finally, the order in remove function is corrected to be reverse order of what is done in probe, i.e. calling temac_mdio_teardown() last, so we unregister the netdev that most likely is using the mdio_bus first. Signed-off-by: Esben Haabendal Signed-off-by: David S. Miller commit ac97a359b72d340e1c04083451b1c6d2f41eb317 Author: YueHaibing Date: Tue Apr 30 01:55:24 2019 +0000 net: ethernet: ti: cpsw: Fix inconsistent IS_ERR and PTR_ERR in cpsw_probe() Fix inconsistent IS_ERR and PTR_ERR in cpsw_probe, The proper pointer to use is clk instead of mode. This issue was detected with the help of Coccinelle. Fixes: 83a8471ba255 ("net: ethernet: ti: cpsw: refactor probe to group common hw initialization") Signed-off-by: YueHaibing Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 5a489b99ecbc79ff83513f25a8f0d56ca6513cac Merge: 47dd82e3d25e 4d2a6f7b4e17 Author: Kalle Valo Date: Wed May 1 19:51:28 2019 +0300 Merge tag 'mt76-for-kvalo-2019-05-01' of https://github.com/nbd168/wireless mt76 patches for 5.2 * share more code across drivers * new driver for MT7615 chipsets * rework DMA API * tx/rx performance optimizations * use NAPI for tx cleanup on mt76x02 * AP mode support for USB devices * USB stability fixes * tx power handling fixes for 76x2 * endian fixes commit bbabc3fb2b6344577ee1a43d28355bf788e9b4a2 Author: Jonathan Neuschäfer Date: Tue Apr 30 16:56:10 2019 +0200 firmware_loader: Fix a typo ("syfs" -> "sysfs") "sysfs" was misspelled in a comment and a log message. Signed-off-by: Jonathan Neuschäfer Reviewed-by: Mukesh Ojha Signed-off-by: Greg Kroah-Hartman commit 923abb9d797ba078f4e9eb3734dd71be5f567a2a Author: Gal Pressman Date: Wed May 1 13:48:13 2019 +0300 RDMA/core: Introduce RDMA subsystem ibdev_* print functions Similarly to dev/netdev/etc printk helpers, add standard printk helpers for the RDMA subsystem. Example output: efa 0000:00:06.0 efa_0: Hello World! efa_0: Hello World! (no parent device set) (NULL ib_device): Hello World! (ibdev is NULL) Cc: Jason Baron Suggested-by: Jason Gunthorpe Suggested-by: Leon Romanovsky Signed-off-by: Gal Pressman Reviewed-by: Leon Romanovsky Reviewed-by: Shiraz Saleem Reviewed-by: Dennis Dalessandro Signed-off-by: Doug Ledford commit 9eecfc22e0bfc7a4c8ca007f083f0ae492d6e891 Author: Kristina Martsenko Date: Wed May 1 17:10:08 2019 +0100 KVM: arm64: Fix ptrauth ID register masking logic When a VCPU doesn't have pointer auth, we want to hide all four pointer auth ID register fields from the guest, not just one of them. Fixes: 384b40caa8af ("KVM: arm/arm64: Context-switch ptrauth registers") Reported-by: Andrew Murray Fscked-up-by: Marc Zyngier Acked-by: Will Deacon Tested-by: Andrew Murray Signed-off-by: Kristina Martsenko Signed-off-by: Marc Zyngier commit 0580db2cb6b300708f5f3dca8b8fa79b04433037 Author: Vandana BN Date: Tue Apr 30 23:59:44 2019 +0530 staging: rtl8192u: ieee80211: Resolve ERROR reported by checkpatch This patch resolves coding style space ERRORs reported by checkpatch ERROR: spaces required around that '>' (ctx:VxV) ERROR: space required after that ',' (ctx:VxO) ERROR: space required before that '&' (ctx:OxV) ERROR: spaces required around that '!=' (ctx:VxV) ERROR: spaces required around that '=' (ctx:VxW) ERROR: space required before the open parenthesis '(' ERROR: spaces required around that '?' (ctx:VxE) ERROR: spaces required around that ':' (ctx:VxE) ERROR: spaces required around that '==' (ctx:VxV) Signed-off-by: Vandana BN Signed-off-by: Greg Kroah-Hartman commit 7fb4a94db87e333cd669964f09c3b19b91aa49b7 Author: Vatsala Narang Date: Wed May 1 11:23:53 2019 +0530 staging: vc04_services: bcm2835-camera: Compress two lines into one line Return value directly without saving it in a variable and remove that variable. Issue suggested by Coccinelle. Signed-off-by: Vatsala Narang Signed-off-by: Greg Kroah-Hartman commit 3343712444e5045f8c4dae54f9e584b603a93641 Author: Vatsala Narang Date: Wed May 1 16:05:47 2019 +0530 staging: rtl8723bs: core: Use !x in place of NULL comparison. Avoid NULL comparison, compare using boolean operator. Issue found using coccinelle. Signed-off-by: Vatsala Narang Signed-off-by: Greg Kroah-Hartman commit e52d8d0d42088009247de4e1af1de39d647cffaf Author: Vatsala Narang Date: Wed May 1 20:33:44 2019 +0530 staging: rtl8723bs: core: Prefer using the BIT Macro. Replace bit shifting on 1 with the BIT(x) macro. Issue found using coccinelle. Signed-off-by: Vatsala Narang Signed-off-by: Greg Kroah-Hartman commit ce64cea47cc4a16a8e55150a255254c0402ba3f5 Author: Gustavo A. R. Silva Date: Wed May 1 10:39:34 2019 -0500 usb: isp1760-hcd: Fix fall-through annotations In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warning: drivers/usb/isp1760/isp1760-hcd.c: In function ‘collect_qtds’: drivers/usb/isp1760/isp1760-hcd.c:788:6: warning: this statement may fall through [-Wimplicit-fallthrough=] mem_reads8(hcd->regs, qtd->payload_addr, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ qtd->data_buffer, ~~~~~~~~~~~~~~~~~ qtd->actual_length); ~~~~~~~~~~~~~~~~~~~ drivers/usb/isp1760/isp1760-hcd.c:792:5: note: here case OUT_PID: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 Notice that, in this particular case, the code comments are modified in accordance with what GCC is expecting to find. This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Greg Kroah-Hartman commit 11a6f8e2db26519b6468686411deafab81c14741 Author: Jan Kara Date: Wed May 1 18:05:11 2019 +0200 fsnotify: Clarify connector assignment in fsnotify_add_mark_list() Add a comment explaining why WRITE_ONCE() is enough when setting mark->connector which can get dereferenced by RCU protected readers. Signed-off-by: Jan Kara commit 5b27aafa1ea011201625f5bcec62c791c59561bf Merge: cd86972a9fd0 c25031e99344 Author: David S. Miller Date: Wed May 1 11:58:51 2019 -0400 Merge branch 'net-sched-taprio-change-schedules' Vinicius Costa Gomes says: ==================== net/sched: taprio change schedules Changes from RFC: - Removed the patches for taprio offloading, because of the lack of in-tree users; - Updated the links to point to the PATCH version of this series; Original cover letter: Overview -------- This RFC has two objectives, it adds support for changing the running schedules during "runtime", explained in more detail later, and proposes an interface between taprio and the drivers for hardware offloading. These two different features are presented together so it's clear what the "final state" would look like. But after the RFC stage, they can be proposed (and reviewed) separately. Changing the schedules without disrupting traffic is important for handling dynamic use cases, for example, when streams are added/removed and when the network configuration changes. Hardware offloading support allows schedules to be more precise and have lower resource usage. Changing schedules ------------------ The same as the other interfaces we proposed, we try to use the same concepts as the IEEE 802.1Q-2018 specification. So, for changing schedules, there are an "oper" (operational) and an "admin" schedule. The "admin" schedule is mutable and not in use, the "oper" schedule is immutable and is in use. That is, when the user first adds an schedule it is in the "admin" state, and it becomes "oper" when its base-time (basically when it starts) is reached. What this means is that now it's possible to create taprio with a schedule: $ tc qdisc add dev IFACE parent root handle 100 taprio \ num_tc 3 \ map 2 2 1 0 2 2 2 2 2 2 2 2 2 2 2 2 \ queues 1@0 1@1 2@2 \ base-time 10000000 \ sched-entry S 03 300000 \ sched-entry S 02 300000 \ sched-entry S 06 400000 \ clockid CLOCK_TAI And then, later, after the previous schedule is "promoted" to "oper", add a new ("admin") schedule to be used some time later: $ tc qdisc change dev IFACE parent root handle 100 taprio \ base-time 1553121866000000000 \ sched-entry S 02 500000 \ sched-entry S 0f 400000 \ clockid CLOCK_TAI When enabling the ability to change schedules, it makes sense to add two more defined knobs to schedules: "cycle-time" allows to truncate a cycle to some value, so it repeats after a well-defined value; "cycle-time-extension" controls how much an entry can be extended if it's the last one before the change of schedules, the reason is to avoid a very small cycle when transitioning from a schedule to another. With these, taprio in the software mode should provide a fairly complete implementation of what's defined in the Enhancements for Scheduled Traffic parts of the specification. Hardware offload ---------------- Some workloads require better guarantees from their schedules than what's provided by the software implementation. This series proposes an interface for configuring schedules into compatible network controllers. This part is proposed together with the support for changing schedules, because it raises questions like, should the "qdisc" side be responsible of providing visibility into the schedules or should it be the driver? In this proposal, the driver is called passing the new schedule as soon as it is validated, and the "core" qdisc takes care of displaying (".dump()") the correct schedules at all times. It means that some logic would need to be duplicated in the driver, if the hardware doesn't have support for multiple schedules. But as taprio doesn't have enough information about the underlying controller to know how much in advance a schedule needs to be informed to the hardware, it feels like a fair compromise. The hardware offloading part of this proposal also tries to define an interface for frame-preemption and how it interacts with the scheduling of traffic, see Section 8.6.8.4 of IEEE 802.1Q-2018 for more information. One important difference between the qdisc interface and the qdisc-driver interface, is that the "gate mask" on the qdisc side references traffic classes, that is bit 0 of the gate mask means Traffic Class 0, and in the driver interface, it specifies the queues, that is bit 0 means queue 0. That is to say that taprio converts the references to traffic classes to references to queues before sending the offloading request to the driver. Request for help ---------------- I would like that interested driver maintainers could take a look at the proposed interface and see if it's going to be too awkward for any particular device. Also, pointers to available documentation would be appreciated. The idea here is to start a discussion so we can have an interface that would work for multiple vendors. Links ----- kernel patches: https://github.com/vcgomes/net-next/tree/taprio-add-support-for-change-v3 iproute2 patches: https://github.com/vcgomes/iproute2/tree/taprio-add-support-for-change-v3 ==================== Signed-off-by: David S. Miller commit c25031e993440debdd530278ce2171ce477df029 Author: Vinicius Costa Gomes Date: Mon Apr 29 15:48:33 2019 -0700 taprio: Add support for cycle-time-extension IEEE 802.1Q-2018 defines the concept of a cycle-time-extension, so the last entry of a schedule before the start of a new schedule can be extended, so "too-short" entries can be avoided. Signed-off-by: Vinicius Costa Gomes Signed-off-by: David S. Miller commit 6ca6a6654225f3cd001304d33429c817e0c0b85f Author: Vinicius Costa Gomes Date: Mon Apr 29 15:48:32 2019 -0700 taprio: Add support for setting the cycle-time manually IEEE 802.1Q-2018 defines that a the cycle-time of a schedule may be overridden, so the schedule is truncated to a determined "width". Signed-off-by: Vinicius Costa Gomes Signed-off-by: David S. Miller commit a3d43c0d56f1b94e74963a2fbadfb70126d92213 Author: Vinicius Costa Gomes Date: Mon Apr 29 15:48:31 2019 -0700 taprio: Add support adding an admin schedule The IEEE 802.1Q-2018 defines two "types" of schedules, the "Oper" (from operational?) and "Admin" ones. Up until now, 'taprio' only had support for the "Oper" one, added when the qdisc is created. This adds support for the "Admin" one, which allows the .change() operation to be supported. Just for clarification, some quick (and dirty) definitions, the "Oper" schedule is the currently (as in this instant) running one, and it's read-only. The "Admin" one is the one that the system configurator has installed, it can be changed, and it will be "promoted" to "Oper" when it's 'base-time' is reached. The idea behing this patch is that calling something like the below, (after taprio is already configured with an initial schedule): $ tc qdisc change taprio dev IFACE parent root \ base-time X \ sched-entry \ ... Will cause a new admin schedule to be created and programmed to be "promoted" to "Oper" at instant X. If an "Admin" schedule already exists, it will be overwritten with the new parameters. Up until now, there was some code that was added to ease the support of changing a single entry of a schedule, but was ultimately unused. Now, that we have support for "change" with more well thought semantics, updating a single entry seems to be less useful. So we remove what is in practice dead code, and return a "not supported" error if the user tries to use it. If changing a single entry would make the user's life easier we may ressurrect this idea, but at this point, removing it simplifies the code. For now, only the schedule specific bits are allowed to be added for a new schedule, that means that 'clockid', 'num_tc', 'map' and 'queues' cannot be modified. Example: $ tc qdisc change dev IFACE parent root handle 100 taprio \ base-time $BASE_TIME \ sched-entry S 00 500000 \ sched-entry S 0f 500000 \ clockid CLOCK_TAI The only change in the netlink API introduced by this change is the introduction of an "admin" type in the response to a dump request, that type allows userspace to separate the "oper" schedule from the "admin" schedule. If userspace doesn't support the "admin" type, it will only display the "oper" schedule. Signed-off-by: Vinicius Costa Gomes Signed-off-by: David S. Miller commit 8c79f0ea5d6087645ed5ed5d638c338962052766 Author: Vinicius Costa Gomes Date: Mon Apr 29 15:48:30 2019 -0700 taprio: Fix potencial use of invalid memory during dequeue() Right now, this isn't a problem, but the next commit allows schedules to be added during runtime. When a new schedule transitions from the inactive to the active state ("admin" -> "oper") the previous one can be freed, if it's freed just after the RCU read lock is released, we may access an invalid entry. So, we should take care to protect the dequeue() flow, so all the places that access the entries are protected by the RCU read lock. Signed-off-by: Vinicius Costa Gomes Signed-off-by: David S. Miller commit cd86972a9fd076aea43165394b05bbca26254cd7 Merge: 6d1474a94ea2 98fa6271cfcb Author: David S. Miller Date: Wed May 1 11:47:54 2019 -0400 Merge branch 'tcp-undo-congestion' Yuchung Cheng says: ==================== undo congestion window on spurious SYN or SYNACK timeout Linux TCP currently uses the initial congestion window of 1 packet if multiple SYN or SYNACK timeouts per RFC6298. However such timeouts are often spurious on wireless or cellular networks that experience high delay variances (e.g. ramping up dormant radios or local link retransmission). Another case is when the underlying path is longer than the default SYN timeout (e.g. 1 second). In these cases starting the transfer with a minimal congestion window is detrimental to the performance for short flows. One naive approach is to simply ignore SYN or SYNACK timeouts and always use a larger or default initial window. This approach however risks pouring gas to the fire when the network is already highly congested. This is particularly true in data center where application could start thousands to millions of connections over a single or multiple hosts resulting in high SYN drops (e.g. incast). This patch-set detects spurious SYN and SYNACK timeouts upon completing the handshake via the widely-supported TCP timestamp options. Upon such events the sender reverts to the default initial window to start the data transfer so it gets best of both worlds. This patch-set supports this feature for both active and passive as well as Fast Open or regular connections. ==================== Signed-off-by: David S. Miller commit 98fa6271cfcb1de873b3fe0caf48d9daa1bcc0ac Author: Yuchung Cheng Date: Mon Apr 29 15:46:20 2019 -0700 tcp: refactor setting the initial congestion window Relocate the congestion window initialization from tcp_init_metrics() to tcp_init_transfer() to improve code readability. Signed-off-by: Yuchung Cheng Signed-off-by: Neal Cardwell Signed-off-by: Soheil Hassas Yeganeh Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 6b94b1c88b660a786fdb1c22d8a0d3529fe40f8c Author: Yuchung Cheng Date: Mon Apr 29 15:46:19 2019 -0700 tcp: refactor to consolidate TFO passive open code Use a helper to consolidate two identical code block for passive TFO. Signed-off-by: Yuchung Cheng Signed-off-by: Neal Cardwell Signed-off-by: Soheil Hassas Yeganeh Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 794200d66273cbfa32cab2dbcd59a5db6b57a5d1 Author: Yuchung Cheng Date: Mon Apr 29 15:46:18 2019 -0700 tcp: undo cwnd on Fast Open spurious SYNACK retransmit This patch makes passive Fast Open reverts the cwnd to default initial cwnd (10 packets) if the SYNACK timeout is spurious. Passive Fast Open uses a full socket during handshake so it can use the existing undo logic to detect spurious retransmission by recording the first SYNACK timeout in key state variable retrans_stamp. Upon receiving the ACK of the SYNACK, if the socket has sent some data before the timeout, the spurious timeout is detected by tcp_try_undo_recovery() in tcp_process_loss() in tcp_ack(). But if the socket has not send any data yet, tcp_ack() does not execute the undo code since no data is acknowledged. The fix is to check such case explicitly after tcp_ack() during the ACK processing in SYN_RECV state. In addition this is checked in FIN_WAIT_1 state in case the server closes the socket before handshake completes. Signed-off-by: Yuchung Cheng Signed-off-by: Neal Cardwell Signed-off-by: Soheil Hassas Yeganeh Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 8c3cfe19feac41065bb88bc14b36c318b26847a9 Author: Yuchung Cheng Date: Mon Apr 29 15:46:17 2019 -0700 tcp: lower congestion window on Fast Open SYNACK timeout TCP sender would use congestion window of 1 packet on the second SYN and SYNACK timeout except passive TCP Fast Open. This makes passive TFO too aggressive and unfair during congestion at handshake. This patch fixes this issue so TCP (fast open or not, passive or active) always conforms to the RFC6298. Note that tcp_enter_loss() is called only once during recurring timeouts. This is because during handshake, high_seq and snd_una are the same so tcp_enter_loss() would incorrect set the undo state variables multiple times. Signed-off-by: Yuchung Cheng Signed-off-by: Neal Cardwell Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 336c39a0315139103712d04b9bfaf0215df23b8e Author: Yuchung Cheng Date: Mon Apr 29 15:46:16 2019 -0700 tcp: undo init congestion window on false SYNACK timeout Linux implements RFC6298 and use an initial congestion window of 1 upon establishing the connection if the SYNACK packet is retransmitted 2 or more times. In cellular networks SYNACK timeouts are often spurious if the wireless radio was dormant or idle. Also some network path is longer than the default SYNACK timeout. In both cases falsely starting with a minimal cwnd are detrimental to performance. This patch avoids doing so when the final ACK's TCP timestamp indicates the original SYNACK was delivered. It remembers the original SYNACK timestamp when SYNACK timeout has occurred and re-uses the function to detect spurious SYN timeout conveniently. Note that a server may receives multiple SYNs from and immediately retransmits SYNACKs without any SYNACK timeout. This often happens on when the client SYNs have timed out due to wireless delay above. In this case since the server will still use the default initial congestion (e.g. 10) because tp->undo_marker is reset in tcp_init_metrics(). This is an intentional design because packets are not lost but delayed. This patch only covers regular TCP passive open. Fast Open is supported in the next patch. Signed-off-by: Yuchung Cheng Signed-off-by: Neal Cardwell Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 9e450c1ecb027417c99eba651413d2a6ba6ffc1f Author: Yuchung Cheng Date: Mon Apr 29 15:46:15 2019 -0700 tcp: better SYNACK sent timestamp Detecting spurious SYNACK timeout using timestamp option requires recording the exact SYNACK skb timestamp. Previously the SYNACK sent timestamp was stamped slightly earlier before the skb was transmitted. This patch uses the SYNACK skb transmission timestamp directly. Signed-off-by: Yuchung Cheng Signed-off-by: Neal Cardwell Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 7c1f08154c4e34d10be41156375ce2b8ab591b0f Author: Yuchung Cheng Date: Mon Apr 29 15:46:14 2019 -0700 tcp: undo initial congestion window on false SYN timeout Linux implements RFC6298 and use an initial congestion window of 1 upon establishing the connection if the SYN packet is retransmitted 2 or more times. In cellular networks SYN timeouts are often spurious if the wireless radio was dormant or idle. Also some network path is longer than the default SYN timeout. Having a minimal cwnd on both cases are detrimental to TCP startup performance. This patch extends TCP undo feature (RFC3522 aka TCP Eifel) to detect spurious SYN timeout via TCP timestamps. Since tp->retrans_stamp records the initial SYN timestamp instead of first retransmission, we have to implement a different undo code additionally. The detection also must happen before tcp_ack() as retrans_stamp is reset when SYN is acknowledged. Note this patch covers both active regular and fast open. Signed-off-by: Yuchung Cheng Signed-off-by: Neal Cardwell Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit bc9f38c8328e10c22cb2016d6131ea36141c8d11 Author: Yuchung Cheng Date: Mon Apr 29 15:46:13 2019 -0700 tcp: avoid unconditional congestion window undo on SYN retransmit Previously if an active TCP open has SYN timeout, it always undo the cwnd upon receiving the SYNACK. This is because tcp_clean_rtx_queue would reset tp->retrans_stamp when SYN is acked, which fools then tcp_try_undo_loss and tcp_packet_delayed. Addressing this issue is required to properly support undo for spurious SYN timeout. Fixing this is tricky -- for active TCP open tp->retrans_stamp records the time when the handshake starts, not the first retransmission time as the name may suggest. The simplest fix is for tcp_packet_delayed to ensure it is valid before comparing with other timestamp. One side effect of this change is active TCP Fast Open that incurred SYN timeout. Upon receiving a SYN-ACK that only acknowledged the SYN, it would immediately retransmit unacknowledged data in tcp_ack() because the data is marked lost after SYN timeout. But the retransmission would have an incorrect ack sequence number since rcv_nxt has not been updated yet tcp_rcv_synsent_state_process(), the retransmission needs to properly handed by tcp_rcv_fastopen_synack() like before. Signed-off-by: Yuchung Cheng Signed-off-by: Neal Cardwell Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 6d1474a94ea2641f56c7893eb1e30558fd92f55d Author: Gustavo A. R. Silva Date: Mon Apr 29 12:38:07 2019 -0500 netdevsim: fix fall-through annotation Replace "pass through" with a proper "fall through" annotation in order to fix the following warning: drivers/net/netdevsim/bus.c: In function ‘new_device_store’: drivers/net/netdevsim/bus.c:170:14: warning: this statement may fall through [-Wimplicit-fallthrough=] port_count = 1; ~~~~~~~~~~~^~~ drivers/net/netdevsim/bus.c:172:2: note: here case 2: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This fix is part of the ongoing efforts to enable -Wimplicit-fallthrough Signed-off-by: Gustavo A. R. Silva Acked-by: Jakub Kicinski Signed-off-by: David S. Miller commit 47dd82e3d25e85a7c7c4e4b0eac9d297d1e5e2d4 Author: Rafał Miłecki Date: Sun Apr 28 23:38:26 2019 +0200 brcmfmac: print firmware messages after a firmware crash Normally firmware messages are printed with debugging enabled only. It's a good idea as firmware may print a lot of messages that normal users don't need to care about. However, on firmware crash, it may be very helpful to log all recent messages. There is almost always a backtrace available as well as rought info on the latest actions/state. Signed-off-by: Rafał Miłecki Reviewed-by: Arend van Spriel Signed-off-by: Kalle Valo commit 2d91c8ad068a5cad4d9e7ece8dc811a697c7176a Author: Wright Feng Date: Fri Apr 26 03:41:46 2019 +0000 brcmfmac: set txflow request id from 1 to pktids array size Some PCIE firmwares drop txstatus if pktid is 0 and make packet held in host side and never be released. If that packet type is 802.1x, the pend_8021x_cnt value will be always greater than 0 and show "Timed out waiting for no pending 802.1x packets" error message when sending key to dongle every time. To be compatible with all firmwares, host should set txflow request id from 1 instead of from 0. Signed-off-by: Wright Feng Signed-off-by: Kalle Valo commit e025da3d7aa4770bb1d1b3b0aa7cc4da1744852d Author: Dan Carpenter Date: Wed Apr 24 12:52:18 2019 +0300 brcm80211: potential NULL dereference in brcmf_cfg80211_vndr_cmds_dcmd_handler() If "ret_len" is negative then it could lead to a NULL dereference. The "ret_len" value comes from nl80211_vendor_cmd(), if it's negative then we don't allocate the "dcmd_buf" buffer. Then we pass "ret_len" to brcmf_fil_cmd_data_set() where it is cast to a very high u32 value. Most of the functions in that call tree check whether the buffer we pass is NULL but there are at least a couple places which don't such as brcmf_dbg_hex_dump() and brcmf_msgbuf_query_dcmd(). We memcpy() to and from the buffer so it would result in a NULL dereference. The fix is to change the types so that "ret_len" can't be negative. (If we memcpy() zero bytes to NULL, that's a no-op and doesn't cause an issue). Fixes: 1bacb0487d0e ("brcmfmac: replace cfg80211 testmode with vendor command") Signed-off-by: Dan Carpenter Signed-off-by: Kalle Valo commit 4a46a7c35322dbbaeef1e2844c9cd41c99cefc66 Author: Gustavo A. R. Silva Date: Mon Apr 29 10:37:55 2019 -0500 sfc: mcdi_port: Mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warning: drivers/net/ethernet/sfc/mcdi_port.c: In function ‘efx_mcdi_phy_decode_link’: ./include/linux/compiler.h:77:22: warning: this statement may fall through [-Wimplicit-fallthrough=] # define unlikely(x) __builtin_expect(!!(x), 0) ^~~~~~~~~~~~~~~~~~~~~~~~~~ ./include/asm-generic/bug.h:125:2: note: in expansion of macro ‘unlikely’ unlikely(__ret_warn_on); \ ^~~~~~~~ drivers/net/ethernet/sfc/mcdi_port.c:344:3: note: in expansion of macro ‘WARN_ON’ WARN_ON(1); ^~~~~~~ drivers/net/ethernet/sfc/mcdi_port.c:345:2: note: here case MC_CMD_FCNTL_OFF: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Acked-by: Edward Cree Signed-off-by: David S. Miller commit b587bdaf5f820cf7dac2c1b351db97bf98e1f427 Author: Moshe Shemesh Date: Mon Apr 29 12:41:45 2019 +0300 devlink: Change devlink health locking mechanism The devlink health reporters create/destroy and user commands currently use the devlink->lock as a locking mechanism. Different reporters have different rules in the driver and are being created/destroyed during different stages of driver load/unload/running. So during execution of a reporter recover the flow can go through another reporter's destroy and create. Such flow leads to deadlock trying to lock a mutex already held. With the new locking mechanism the different reporters share mutex lock only to protect access to shared reporters list. Added refcount per reporter, to protect the reporters from destroy while being used. Signed-off-by: Moshe Shemesh Signed-off-by: Jiri Pirko Acked-by: Jakub Kicinski Signed-off-by: David S. Miller commit 8f220664570e755946db1282f48e07f26e1f2cb4 Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:47 2019 +0530 misc: pci_endpoint_test: Fix test_reg_bar to be updated in pci_endpoint_test commit 834b90519925 ("misc: pci_endpoint_test: Add support for PCI_ENDPOINT_TEST regs to be mapped to any BAR") while adding test_reg_bar in order to map PCI_ENDPOINT_TEST regs to be mapped to any BAR failed to update test_reg_bar in pci_endpoint_test, resulting in test_reg_bar having invalid value when used outside probe. Fix it. Fixes: 834b90519925 ("misc: pci_endpoint_test: Add support for PCI_ENDPOINT_TEST regs to be mapped to any BAR") Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit 5bb04b19230c02cc1b450b029856cbe093e09908 Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:46 2019 +0530 misc: pci_endpoint_test: Add support to test PCI EP in AM654x TI's AM654x PCIe EP has a restriction that BAR_0 is mapped to application registers. "PCIe Inbound Address Translation" section in AM65x Sitara Processors TRM (SPRUID7 – April 2018) describes BAR0 as reserved. Configure pci_endpoint_test to use BAR_2 instead. Also set alignment to 64K since "PCIe Subsystem Address Translation" section in TRM indicates minimum ATU window size is 64K. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit 6b7330303a8186fb211357e6d379237fe9d2ece1 Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:45 2019 +0530 PCI: designware-ep: Use aligned ATU window for raising MSI interrupts Certain platforms like K2G reguires the outbound ATU window to be aligned. The alignment size is already present in mem->page_size. Use the alignment size present in mem->page_size to configure an aligned ATU window. In order to raise an interrupt, CPU has to write to address offset from the start of the window unlike before where writes were always to the beginning of the ATU window. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit fc9a77040b04c05f036515f40aa7cf4b9c91defd Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:44 2019 +0530 PCI: designware-ep: Configure Resizable BAR cap to advertise the smallest size Configure the Resizable BAR capability to advertise the smallest size (1MB) for a couple of reasons: - Host side resource allocation of BAR fails for larger sizes - Endpoint function driver does not allocate memory for all supported sizes in the Resizable BAR capability. If and when there is a usecase required to add more flexibility using the Resizable BAR capability, this can be revisited. Signed-off-by: Kishon Vijay Abraham I [lorenzo.pieralisi@arm.com: updated commit log] Signed-off-by: Lorenzo Pieralisi commit 23284ad677a94f26afc92017d540ccaf26c1a581 Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:43 2019 +0530 PCI: keystone: Add support for PCIe EP in AM654x Platforms Add PCIe EP support for AM654x Platforms in pci-keystone.c Link: https://lore.kernel.org/linux-pci/20190325093947.32633-15-kishon@ti.com/ Signed-off-by: Kishon Vijay Abraham I [lorenzo.pieralisi@arm.com: made dev_vdbg() call a comment] Signed-off-by: Lorenzo Pieralisi commit 9bc755d2cf54510629bfb9ef591a4af10343699e Author: Kishon Vijay Abraham I Date: Fri Apr 26 18:16:20 2019 +0530 dt-bindings: PCI: Add PCI EP DT binding documentation for AM654 Add devicetree binding documentation for PCIe in EP mode present in AM654 SoC. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi Reviewed-by: Rob Herring commit df0db3ecdb8fc942e9d812558b8e15ecd3e050b1 Author: Andreas Gruenbacher Date: Tue Apr 30 08:45:34 2019 -0700 iomap: Add a page_prepare callback Move the page_done callback into a separate iomap_page_ops structure and add a page_prepare calback to be called before the next page is written to. In gfs2, we'll want to start a transaction in page_prepare and end it in page_done. Other filesystems that implement data journaling will require the same kind of mechanism. Signed-off-by: Andreas Gruenbacher Reviewed-by: Christoph Hellwig Reviewed-by: Jan Kara Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong commit 7a77dad7e3be1280456508841ccdd2a091b1906a Author: Andreas Gruenbacher Date: Tue Apr 30 08:45:34 2019 -0700 iomap: Fix use-after-free error in page_done callback In iomap_write_end, we're not holding a page reference anymore when calling the page_done callback, but the callback needs that reference to access the page. To fix that, move the put_page call in __generic_write_end into the callers of __generic_write_end. Then, in iomap_write_end, put the page after calling the page_done callback. Reported-by: Jan Kara Fixes: 63899c6f8851 ("iomap: add a page_done callback") Signed-off-by: Andreas Gruenbacher Reviewed-by: Jan Kara Reviewed-by: Christoph Hellwig Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong commit 26ddb1f4fd884258eeb8a8d7f2d40b163f00fedd Author: Andreas Gruenbacher Date: Tue Apr 30 08:45:33 2019 -0700 fs: Turn __generic_write_end into a void function The VFS-internal __generic_write_end helper always returns the value of its @copied argument. This can be confusing, and it isn't very useful anyway, so turn __generic_write_end into a function returning void instead. Signed-off-by: Andreas Gruenbacher Reviewed-by: Christoph Hellwig Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong commit dbc582b6fb6ad6461085adfaae0106ae78721107 Author: Christoph Hellwig Date: Tue Apr 30 08:45:33 2019 -0700 iomap: Clean up __generic_write_end calling Move the call to __generic_write_end into iomap_write_end instead of duplicating it in each of the three branches. This requires open coding the generic_write_end for the buffer_head case. Signed-off-by: Christoph Hellwig Signed-off-by: Andreas Gruenbacher Reviewed-by: Jan Kara Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong commit 24cf262da1ad303fc940c798aab0bd1bd50e3fc2 Merge: 50abbe19623e 0ea415390cd3 Author: Will Deacon Date: Wed May 1 15:45:36 2019 +0100 Merge branch 'for-next/timers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux into for-next/core Conflicts: arch/arm64/Kconfig arch/arm64/include/asm/arch_timer.h commit 3e2e9cf9ee67086d9c43e03bd6041a9d1bce9473 Author: Nicholas Mc Guire Date: Wed May 1 10:38:12 2019 -0400 staging: fieldbus: anybus-s: fix wait_for_completion_timeout return handling wait_for_completion_timeout() returns unsigned long (0 on timeout or remaining jiffies) not int. Assigning this return value to int may theoretically overflow (though not in this case where TIMEOUT is only HZ*2). Fix this inconsistency by wrapping the wait_for_completion_timeout into the if(). Signed-off-by: Nicholas Mc Guire Reviewed-by: Sven Van Asbroeck Signed-off-by: Greg Kroah-Hartman commit 50abbe19623e08e2aa34e0e526bd6115569f3dc3 Merge: 9431ac2bf6b7 4ad499c94264 Author: Will Deacon Date: Wed May 1 15:34:56 2019 +0100 Merge branch 'for-next/mitigations' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux into for-next/core commit 9431ac2bf6b742d87cdac051adc1976308070110 Merge: 61cf61d81e32 427503519739 Author: Will Deacon Date: Wed May 1 15:34:17 2019 +0100 Merge branch 'for-next/futex' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux into for-next/core commit 009669e7481361470f7667c96a96893c8ba5f461 Author: Lokesh Vutla Date: Tue Apr 30 15:42:30 2019 +0530 arm64: arch_k3: Enable interrupt controller drivers Select the TISCI Interrupt Router, Aggregator drivers and all its dependencies for TI's SoCs based on K3 architecture. Suggested-by: Marc Zyngier Signed-off-by: Lokesh Vutla Acked-by: Tony Lindgren Signed-off-by: Marc Zyngier commit 4ad499c94264a2ee05aacc518b9bde658318e510 Author: Josh Poimboeuf Date: Fri Apr 12 22:56:21 2019 -0500 Documentation: Add ARM64 to kernel-parameters.rst Add ARM64 to the legend of architectures. It's already used in several places in kernel-parameters.txt. Suggested-by: Randy Dunlap Signed-off-by: Josh Poimboeuf Signed-off-by: Will Deacon commit a111b7c0f20e13b54df2fa959b3dc0bdf1925ae6 Author: Josh Poimboeuf Date: Fri Apr 12 15:39:32 2019 -0500 arm64/speculation: Support 'mitigations=' cmdline option Configure arm64 runtime CPU speculation bug mitigations in accordance with the 'mitigations=' cmdline option. This affects Meltdown, Spectre v2, and Speculative Store Bypass. The default behavior is unchanged. Signed-off-by: Josh Poimboeuf [will: reorder checks so KASLR implies KPTI and SSBS is affected by cmdline] Signed-off-by: Will Deacon commit eb337cdfcd5dd3b10522c2f34140a73a4c285c30 Author: Will Deacon Date: Tue Apr 30 16:58:56 2019 +0100 arm64: ssbs: Don't treat CPUs with SSBS as unaffected by SSB SSBS provides a relatively cheap mitigation for SSB, but it is still a mitigation and its presence does not indicate that the CPU is unaffected by the vulnerability. Tweak the mitigation logic so that we report the correct string in sysfs. Signed-off-by: Will Deacon commit 61ae1321f06c4489c724c803e9b8363dea576da3 Author: Mian Yousaf Kaukab Date: Mon Apr 15 16:21:29 2019 -0500 arm64: enable generic CPU vulnerabilites support Enable CPU vulnerabilty show functions for spectre_v1, spectre_v2, meltdown and store-bypass. Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Jeremy Linton Reviewed-by: Andre Przywara Reviewed-by: Catalin Marinas Tested-by: Stefan Wahren Signed-off-by: Will Deacon commit 526e065dbca6df0b5a130b84b836b8b3c9f54e21 Author: Jeremy Linton Date: Mon Apr 15 16:21:28 2019 -0500 arm64: add sysfs vulnerability show for speculative store bypass Return status based on ssbd_state and __ssb_safe. If the mitigation is disabled, or the firmware isn't responding then return the expected machine state based on a whitelist of known good cores. Given a heterogeneous machine, the overall machine vulnerability defaults to safe but is reset to unsafe when we miss the whitelist and the firmware doesn't explicitly tell us the core is safe. In order to make that work we delay transitioning to vulnerable until we know the firmware isn't responding to avoid a case where we miss the whitelist, but the firmware goes ahead and reports the core is not vulnerable. If all the cores in the machine have SSBS, then __ssb_safe will remain true. Tested-by: Stefan Wahren Signed-off-by: Jeremy Linton Signed-off-by: Will Deacon commit 61cf61d81e326163ce1557ceccfca76e11d0e57c Author: Arun KS Date: Tue Apr 30 16:05:04 2019 +0530 arm64: Fix size of __early_cpu_boot_status __early_cpu_boot_status is of type long. Use quad assembler directive to allocate proper size. Acked-by: Mark Rutland Signed-off-by: Arun KS Signed-off-by: Will Deacon commit 5be90f993880052d95bbf6ccdca3fa081eb9b1ff Merge: 2b5bc3c8ebce 9eec0303a100 Author: David S. Miller Date: Wed May 1 09:30:16 2019 -0400 Merge branch 'aquantia-next' Igor Russkikh says: ==================== net: atlantic: Aquantia driver updates 2019-04 This patchset contains various improvements: - Work targeting link up speedups: link interrupt introduced, some other logic changes to imrove this. - FW operations securing with mutex - Counters and statistics logic improved by Dmitry - read out of chip temperature via hwmon interface implemented by Yana and Nikita. v4 changes: - remove drvinfo_exit noop - 64bit stats should be readed out sequentially (lsw, then msw) declare 64bit read ops for that v3 changes: - temp ops renamed to phy_temp ops - mutex commits squashed for better structure v2 changes: - use threaded irq for link state handling - rework hwmon via devm_hwmon_device_register_with_info Extra comments on review from Andrew: - direct device name pointer is used in hwmon registration. This causes hwmon device to derive possible interface name changes - Will consider sanity checks for firmware mutex lock separately. Right now there is no single point exsists where such check could be easily added. - There is no way now to fetch and configure min/max/crit temperatures via FW. Will investigate this separately. ==================== Signed-off-by: David S. Miller commit 9eec0303a10027f5ed4b210de4fffc10c2f7c2b3 Author: Nikita Danilov Date: Mon Apr 29 10:05:09 2019 +0000 net: aquantia: remove outdated device ids Some device ids were never released and does not exist. Cleanup these. Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit ce4cdbe44cffeb0d6a24bb397834ebfab75c6b2b Author: Dmitry Bogdanov Date: Mon Apr 29 10:05:07 2019 +0000 net: aquantia: fixups on 64bit dma counters DMA counters are 64 bit and we can fetch that to reduce counter overflow, espesially on byte counters. Tested-by: Nikita Danilov Signed-off-by: Igor Russkikh Signed-off-by: Dmitry Bogdanov Signed-off-by: David S. Miller commit f55d477bb513c9267a46d7a795fb09f73084f76f Author: Dmitry Bogdanov Date: Mon Apr 29 10:05:05 2019 +0000 net: aquantia: get total counters from DMA block aq_nic_update_ndev_stats pushes statistics to ndev->stats from system interface. This is not always good because it counts packets/bytes before any of rx filters (including mac filter). Its better to report the packet/bytes statistics from DMA counters which gives actual values of data transferred over pci. System level stats is still available via ethtool. Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Signed-off-by: Dmitry Bogdanov Signed-off-by: David S. Miller commit 190f34384c6cfed30fe8a1f94f7a25de129ccaa9 Author: Dmitry Bogdanov Date: Mon Apr 29 10:05:02 2019 +0000 net: aquantia: fetch up to date statistics on ethtool request This improves ethtool -S usage, where stats are now actual on each request. Before that stats only were updated at service timer period. Tested-by: Nikita Danilov Signed-off-by: Igor Russkikh Signed-off-by: Dmitry Bogdanov Signed-off-by: David S. Miller commit 49544935a78cec813e1a8b17ea40d589138baf99 Author: Igor Russkikh Date: Mon Apr 29 10:05:00 2019 +0000 net: aquantia: extract timer cb into work job Service timer callback fetches statistics from FW and that may cause a long delay in error cases. We also now need to use fw mutex to prevent concurrent access to FW, thus - extract that logic from timer callback into the job in the separate work queue. Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit f5dce08ab179459f3f622a63dfa446a930b84192 Author: Nikita Danilov Date: Mon Apr 29 10:04:57 2019 +0000 net: aquantia: introduce fwreq mutex Some of FW operations could be invoked simultaneously, from f.e. ethtool context and from service service activity work. Here we introduce a fw mutex to secure and serialize access to FW logic. Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit 18eac376edfa33ddbbba3b2d5e525bdf9b1ef86d Author: Igor Russkikh Date: Mon Apr 29 10:04:55 2019 +0000 net: aquantia: user correct MSI irq type Typo in msi code. No much impact though. Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit 20ffb879d023de4920cf176e9829a6872884b5c0 Author: Igor Russkikh Date: Mon Apr 29 10:04:52 2019 +0000 net: aquantia: use macros for better visibility Improve for better readability Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit 6775878823bf622f5143e77fd8fdf4bcd91cfd96 Author: Igor Russkikh Date: Mon Apr 29 10:04:50 2019 +0000 net: aquantia: improve ifup link detection Original code detected link only after 1 sec is passed after up. Here we replace this with direct service callback which updates link status immediately Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit 4c83f170b3ac08357de253097d95b6942393f63b Author: Igor Russkikh Date: Mon Apr 29 10:04:48 2019 +0000 net: aquantia: link status irq handling Here we define and request an extra interrupt line, assign it on link isr handler and restructure abit aq_pci code to better support that. We also remove logic for using different timer intervals depending on link state, since thats now useless. Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit 58608082e66ddf9643cf6b98fe81c216a410ced1 Author: Nikita Danilov Date: Mon Apr 29 10:04:45 2019 +0000 net: aquantia: create global service workqueue We need this to schedule link interrupt handling and various service tasks. Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit 1d2a8a138c2a1462099ba45d1c5bcd9a576ced2a Author: Igor Russkikh Date: Mon Apr 29 10:04:43 2019 +0000 net: aquantia: link interrupt handling function Define link interrupt handler Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit 3dd3e236d79362ebfd9f36fb18d1d5b29800f953 Author: Igor Russkikh Date: Mon Apr 29 10:04:40 2019 +0000 net: aquantia: add link interrupt fields Declare macroes and nic fields to support link interrupt handling Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit 4c0131539fc0addeb2f44e9ebe4920dbc4ad408c Author: Yana Esina Date: Mon Apr 29 10:04:38 2019 +0000 net: aquantia: implement hwmon api for chip temperature Added support for hwmon api to fetch out chip temperature Signed-off-by: Yana Esina Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 8f8940118654099ff549e16d77e65e476cccf1ae Author: Yana Esina Date: Mon Apr 29 10:04:35 2019 +0000 net: aquantia: add infrastructure to readout chip temperature Ability to read the chip temperature from memory via hwmon interface Signed-off-by: Yana Esina Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 6f53e73b9ec5b3cd097077c5ffcb76df708ce3f8 Author: Sagi Grimberg Date: Mon Apr 29 16:28:19 2019 -0700 nvmet: protect discovery change log event list iteration When we iterate on the discovery subsystem controllers we need to protect against concurrent mutations to it. Signed-off-by: Sagi Grimberg Reviewed-by: Minwoo Im Signed-off-by: Christoph Hellwig commit 893a74b7a76e6e9c5c7199e6aae946f090622fa2 Author: Christoph Hellwig Date: Tue Apr 30 11:37:43 2019 -0400 nvme: mark nvme_core_init and nvme_core_exit static Signed-off-by: Christoph Hellwig Reviewed-by: Bart Van Assche Reviewed-by: Keith Busch Reviewed-by: Chaitanya Kulkarni commit 811015409fd4af80bbecb8e46b3aa24c8986fb74 Author: Christoph Hellwig Date: Tue Apr 30 11:36:52 2019 -0400 nvme: move command size checks to the core Most command aren't PCIe specific, so move the size checking for them to core.c Signed-off-by: Christoph Hellwig Reviewed-by: Bart Van Assche Reviewed-by: Keith Busch Reviewed-by: Chaitanya Kulkarni commit a2faf94e57c5237a9cad31f63eeaf2412ed0e951 Author: Minwoo Im Date: Fri Apr 12 00:18:31 2019 +0900 nvme-fabrics: check more command sizes struct common_command provides a common structure for NVMe-oF command format. It also needs to be checked for unintended size growth. Signed-off-by: Minwoo Im Reviewed-by: Sagi Grimberg Reviewed-by: Chaitanya Kulkarni Signed-off-by: Christoph Hellwig commit a97234e1ff1ec9d5a41c6adff5632c61639dee6a Author: Minwoo Im Date: Fri Apr 12 00:18:32 2019 +0900 nvme-pci: check more command sizes All the NVMe command has 64bytes fixed size so that it has been assured with BUILD_BUG_ON(). The remaining command structures in linux/nvme.h also need to be checked here. Signed-off-by: Minwoo Im Reviewed-by: Sagi Grimberg Reviewed-by: Chaitanya Kulkarni Signed-off-by: Christoph Hellwig commit 665648673ef5384c7194ea6df4b55f2da98646cf Author: Minwoo Im Date: Fri Apr 12 00:52:39 2019 +0900 nvme-pci: remove an unneeded variable initialization Variable "n" will be assigned once kstrtoint() succeeds, otherwise it will not be referred because kstrtoint() will return an error which means go out from this function. Signed-off-by: Minwoo Im Signed-off-by: Christoph Hellwig commit c8e9e9b7646ebe1c5066ddc420d7630876277eb4 Author: Keith Busch Date: Tue Apr 30 09:33:41 2019 -0600 nvme-pci: unquiesce admin queue on shutdown Just like IO queues, the admin queue also will not be restarted after a controller shutdown. Unquiesce this queue so that we do not block request dispatch on a permanently disabled controller. Reported-by: Yufen Yu Signed-off-by: Keith Busch Signed-off-by: Christoph Hellwig commit 9dc1a38ef1925d23c2933c5867df816386d92ff8 Author: Keith Busch Date: Tue Apr 30 09:33:40 2019 -0600 nvme-pci: shutdown on timeout during deletion We do not restart a controller in a deleting state for timeout errors. When in this state, unblock potential request dispatchers with failed completions by shutting down the controller on timeout detection. Reported-by: Yufen Yu Signed-off-by: Keith Busch Signed-off-by: Christoph Hellwig commit 049bf37262c61c99f45438910711b55054b24838 Author: Klaus Birkelund Jensen Date: Tue Apr 30 18:53:29 2019 +0200 nvme-pci: fix psdt field for single segment sgls The shortcut for single segment SGL requests did not set the PSDT field to mark the request as using SGLs. Fixes: 297910571f08 ("nvme-pci: optimize mapping single segment requests using SGLs") Signed-off-by: Klaus Birkelund Jensen Signed-off-by: Christoph Hellwig commit 592b6e7b0226b198c12439065f725be00c92d559 Author: Hannes Reinecke Date: Sun Apr 28 20:24:42 2019 -0700 nvme-multipath: don't print ANA group state by default Signed-off-by: Hannes Reinecke Signed-off-by: Chaitanya Kulkarni Reviewed-by: Sagi Grimberg Signed-off-by: Christoph Hellwig commit 525aa5a705d86e193726ee465d1a975265fabf19 Author: Hannes Reinecke Date: Tue Apr 30 18:57:09 2019 +0200 nvme-multipath: split bios with the ns_head bio_set before submitting If the bio is moved to a different queue via blk_steal_bios() and the original queue is destroyed in nvme_remove_ns() we'll be ending with a crash in bio_endio() as the mempool for the split bio bvecs had already been destroyed. So split the bio using the original queue (which will remain during the lifetime of the bio) before sending it down to the underlying device. Signed-off-by: Hannes Reinecke Reviewed-by: Ming Lei Signed-off-by: Christoph Hellwig commit f34e25898a608380a60135288019c4cb6013bec8 Author: Sagi Grimberg Date: Mon Apr 29 16:25:48 2019 -0700 nvme-tcp: fix possible null deref on a timed out io queue connect If I/O queue connect times out, we might have freed the queue socket already, so check for that on the error path in nvme_tcp_start_queue. Signed-off-by: Sagi Grimberg Signed-off-by: Christoph Hellwig commit 3d378dc713f3ff4951d9a50c6a815f011e59da10 Author: Colin Ian King Date: Wed May 1 13:43:17 2019 +0100 kobject: fix dereference before null check on kobj The kobj pointer is being null-checked so potentially it could be null, however, the ktype declaration before the null check is dereferencing kobj hence we have a potential null pointer deference. Fix this by moving the assignment of ktype after kobj has been null checked. Addresses-Coverity: ("Dereference before null check") Fixes: aa30f47cf666 ("kobject: Add support for default attribute groups to kobj_type") Signed-off-by: Colin Ian King Signed-off-by: Greg Kroah-Hartman commit e620d45065c7b5b8d6ae11217c09c09380103b83 Author: Breno Leitao Date: Wed Jan 16 14:47:44 2019 -0200 powerpc/tm: Avoid machine crash on rt_sigreturn() There is a kernel crash that happens if rt_sigreturn() is called inside a transactional block. This crash happens if the kernel hits an in-kernel page fault when accessing userspace memory, usually through copy_ckvsx_to_user(). A major page fault calls might_sleep() function, which can cause a task reschedule. A task reschedule (switch_to()) reclaim and recheckpoint the TM states, but, in the signal return path, the checkpointed memory was already reclaimed, thus the exception stack has MSR that points to MSR[TS]=0. When the code returns from might_sleep() and a task reschedule happened, then this task is returned with the memory recheckpointed, and CPU MSR[TS] = suspended. This means that there is a side effect at might_sleep() if it is called with CPU MSR[TS] = 0 and the task has regs->msr[TS] != 0. This side effect can cause a TM bad thing, since at the exception entrance, the stack saves MSR[TS]=0, and this is what will be used at RFID, but, the processor has MSR[TS] = Suspended, and this transition will be invalid and a TM Bad thing will be raised, causing the following crash: Unexpected TM Bad Thing exception at c00000000000e9ec (msr 0x8000000302a03031) tm_scratch=800000010280b033 cpu 0xc: Vector: 700 (Program Check) at [c00000003ff1fd70] pc: c00000000000e9ec: fast_exception_return+0x100/0x1bc lr: c000000000032948: handle_rt_signal64+0xb8/0xaf0 sp: c0000004263ebc40 msr: 8000000302a03031 current = 0xc000000415050300 paca = 0xc00000003ffc4080 irqmask: 0x03 irq_happened: 0x01 pid = 25006, comm = sigfuz Linux version 5.0.0-rc1-00001-g3bd6e94bec12 (breno@debian) (gcc version 8.2.0 (Debian 8.2.0-3)) #899 SMP Mon Jan 7 11:30:07 EST 2019 WARNING: exception is not recoverable, can't continue enter ? for help [c0000004263ebc40] c000000000032948 handle_rt_signal64+0xb8/0xaf0 (unreliable) [c0000004263ebd30] c000000000022780 do_notify_resume+0x2f0/0x430 [c0000004263ebe20] c00000000000e844 ret_from_except_lite+0x70/0x74 --- Exception: c00 (System Call) at 00007fffbaac400c SP (7fffeca90f40) is in userspace The solution for this problem is running the sigreturn code with regs->msr[TS] disabled, thus, avoiding hitting the side effect above. This does not seem to be a problem since regs->msr will be replaced by the ucontext value, so, it is being flushed already. In this case, it is flushed earlier. Signed-off-by: Breno Leitao Acked-by: Michael Neuling Signed-off-by: Michael Ellerman commit 2c474c03505677cfd987d52e8bf42abe8c270529 Author: Aneesh Kumar K.V Date: Tue Apr 30 13:29:07 2019 +0530 powerpc/mm/radix: Fix kernel crash when running subpage protect test This patch fixes the below crash by making sure we touch the subpage protection related structures only if we know they are allocated on the platform. With radix translation we don't allocate hash context at all and trying to access subpage_prot_table results in: Faulting instruction address: 0xc00000000008bdb4 Oops: Kernel access of bad area, sig: 11 [#1] LE PAGE_SIZE=64K MMU=Radix MMU=Hash SMP NR_CPUS=2048 NUMA PowerNV .... NIP [c00000000008bdb4] sys_subpage_prot+0x74/0x590 LR [c00000000000b688] system_call+0x5c/0x70 Call Trace: [c00020002c6b7d30] [c00020002c6b7d90] 0xc00020002c6b7d90 (unreliable) [c00020002c6b7e20] [c00000000000b688] system_call+0x5c/0x70 Instruction dump: fb61ffd8 fb81ffe0 fba1ffe8 fbc1fff0 fbe1fff8 f821ff11 e92d1178 f9210068 39200000 e92d0968 ebe90630 e93f03e8 60000000 3860fffe e9410068 We also move the subpage_prot_table with mmp_sem held to avoid race between two parallel subpage_prot syscall. Fixes: 701101865f5d ("powerpc/mm: Reduce memory usage for mm_context_t for radix") Reported-by: Sachin Sant Signed-off-by: Aneesh Kumar K.V Tested-by: Sachin Sant Signed-off-by: Michael Ellerman commit 2d5abb9a1e8e92b25e781f0c3537a5b3b4b2f033 Author: Jens Axboe Date: Wed May 1 06:34:09 2019 -0600 bcache: make is_discard_enabled() static It's not used outside this file. Fixes: 631207314d88 ("bcache: fix failure in journal relplay") Signed-off-by: Jens Axboe commit 50dbabe06a6e1c35980154ea1fac2ed6ad28652b Author: Mahesh Salgaonkar Date: Mon Apr 29 23:46:02 2019 +0530 powerpc/powernv/mce: Print additional information about MCE error. Print more information about MCE error whether it is an hardware or software error. Some of the MCE errors can be easily categorized as hardware or software errors e.g. UEs are due to hardware error, where as error triggered due to invalid usage of tlbie is a pure software bug. But not all the MCE errors can be easily categorize into either software or hardware. There are errors like multihit errors which are usually result of a software bug, but in some rare cases a hardware failure can cause a multihit error. In past, we have seen case where after replacing faulty chip, multihit errors stopped occurring. Same with parity errors, which are usually due to faulty hardware but there are chances where multihit can also cause an parity error. Such errors are difficult to determine what really caused it. Hence this patch classifies MCE errors into following four categorize: 1. Hardware error: UE and Link timeout failure errors. 2. Probable hardware error (some chance of software cause) SLB/ERAT/TLB Parity errors. 3. Software error Invalid tlbie form. 4. Probable software error (some chance of hardware cause) SLB/ERAT/TLB Multihit errors. Sample output: MCE: CPU80: machine check (Warning) Guest SLB Multihit DAR: 000001001b6e0320 [Recovered] MCE: CPU80: PID: 24765 Comm: qemu-system-ppc Guest NIP: [00007fffa309dc60] MCE: CPU80: Probable Software error (some chance of hardware cause) Signed-off-by: Mahesh Salgaonkar Signed-off-by: Michael Ellerman commit cda6618d060b5e8afc93e691d4bcd987f3dd4393 Author: Mahesh Salgaonkar Date: Mon Apr 29 23:45:55 2019 +0530 powerpc/powernv/mce: Print correct severity for MCE error. Currently all machine check errors are printed as severe errors which isn't correct. Print soft errors as warning instead of severe errors. Signed-off-by: Mahesh Salgaonkar Signed-off-by: Michael Ellerman commit d6e8a150850601277039a548ffcdddd1bfe3e365 Author: Mahesh Salgaonkar Date: Mon Apr 29 23:45:48 2019 +0530 powerpc/powernv/mce: Reduce MCE console logs to lesser lines. Also add cpu number while displaying MCE log. This will help cleaner logs when MCE hits on multiple cpus simultaneously. Before the changes the MCE output was: Severe Machine check interrupt [Recovered] NIP [d00000000ba80280]: insert_slb_entry.constprop.0+0x278/0x2c0 [mcetest_slb] Initiator: CPU Error type: SLB [Multihit] Effective address: d00000000ba80280 After this patch series changes the MCE output will be: MCE: CPU80: machine check (Warning) Host SLB Multihit [Recovered] MCE: CPU80: NIP: [d00000000b550280] insert_slb_entry.constprop.0+0x278/0x2c0 [mcetest_slb] MCE: CPU80: Probable software error (some chance of hardware cause) UE in host application: MCE: CPU48: machine check (Severe) Host UE Load/Store DAR: 00007fffc6079a80 paddr: 0000000f8e260000 [Not recovered] MCE: CPU48: PID: 4584 Comm: find NIP: [0000000010023368] MCE: CPU48: Hardware error and for MCE in Guest: MCE: CPU80: machine check (Warning) Guest SLB Multihit DAR: 000001001b6e0320 [Recovered] MCE: CPU80: PID: 24765 Comm: qemu-system-ppc Guest NIP: [00007fffa309dc60] MCE: CPU80: Probable software error (some chance of hardware cause) Signed-off-by: Mahesh Salgaonkar Signed-off-by: Michael Ellerman commit 4d2a6f7b4e17ede86be46013d114d58adaca5631 Author: Lorenzo Bianconi Date: Tue Apr 30 17:17:23 2019 +0200 mt76: mt7603: dynamically alloc mcu req in mt7603_mcu_set_eeprom Do not allocate mcu requests on the stack in mt7603_mcu_set_eeprom in order to avoid the following warning: Warning: the frame size of 1032 bytes is larger than 1024 bytes Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit ae66068f7872872740906cf7699624bfd90516ae Author: Lorenzo Bianconi Date: Tue Apr 30 15:12:03 2019 +0200 mt76: do not enable/disable pre_tbtt_tasklet in scan_start/scan_complete Do not enable/disable pre_tbtt_tasklet tasklet in mt76x02_sw_scan/mt76x02_sw_scan_complete since it is already done setting the operating channel. Do run tbtt_tasklet while the device is offchannel Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit bd115805e86a6d18b18e2cf97e9cc7af361cb72a Author: Lorenzo Bianconi Date: Tue Apr 30 15:12:02 2019 +0200 mt76: mt7603: enable/disable pre_tbtt_tasklet in mt7603_set_channel Disable pre_tbtt_tasklet tasklet before setting the operating channel. Enable/disable beacon_timer in mt7603_set_channel Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit dc6057f49a510132ae62e008df85e8e2b548a92c Author: Lorenzo Bianconi Date: Tue Apr 30 15:12:01 2019 +0200 mt76: move pre_tbtt_tasklet in mt76_dev Move pre_tbtt_tasklet tasklet in mt76_dev data structure since it is used by all drivers Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit f1103fa6b34921672cc52e89e76d8e7ba919126f Author: Ryder Lee Date: Tue Apr 30 21:55:38 2019 +0800 mt76: add TX/RX antenna pattern capabilities Announce antenna pattern cap to adapt PHY and baseband settings. Signed-off-by: Ryder Lee Signed-off-by: Felix Fietkau commit c8a04d985481b6e00534c6a47a8e85a62e8992ca Author: Lorenzo Bianconi Date: Mon Apr 29 10:13:00 2019 +0200 mt76: move beacon_mask in mt76_dev Move beacon_mask in mt76_dev data structure since it is used by all drivers Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit 3041c445e62669327eff68a7f5ac342ba48cf4fd Author: Lorenzo Bianconi Date: Mon Apr 29 10:12:59 2019 +0200 mt76: move beacon_int in mt76_dev Move beacon_int in mt76_dev data structure since it is used by all drivers Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit f8f527b16db5d6cf17f6a986aff710bdd7e48cad Author: Stanislaw Gruszka Date: Tue Apr 30 10:10:49 2019 +0200 mt76: usb: use EP max packet aligned buffer sizes for rx If buffer size is not usb_endpoint_maxp (512 or 1024 bytes) multiple, usb host driver has to use bounce buffer and copy data. For RX we can avoid that since we alreay allocate q->buf_size (2kB) buffers and mt76usb hardware will not fill more data as rx packet size is limited by network protocol. However add error message if this assumption somehow will be not true. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit 4d0fe26f7ca015fa4c006b4f68a6246d00103420 Author: Lorenzo Bianconi Date: Sat Apr 27 15:02:10 2019 +0200 mt76: mt7603: report firmware version using ethtool Print fw_ver and build_date members of struct mt7603_fw_trailer similarly to what appears in the output of 'dmesg' when the MCU firmware is loaded. Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit e802794657911aca86cde9afcadc823d945cb5af Author: Ryder Lee Date: Fri Apr 26 16:09:22 2019 +0800 mt76: fix endianness sparse warnings Fix many warnings with incorrect endian assumptions. Reported-by: kbuild test robot Signed-off-by: Ryder Lee Reviewed-by: Stanislaw Gruszka commit 9c7c756eb06603e657b42652a204b30581522ed1 Author: kbuild test robot Date: Tue Apr 30 03:25:55 2019 +0800 mt76: mt76x02: mt76x02_poll_tx() can be static Fixes: ec7d2d74760a ("mt76: mt76x02: use napi polling for tx cleanup") Signed-off-by: kbuild test robot Signed-off-by: Felix Fietkau commit d422bb261733f469ca98183b937b63366283263a Author: Lorenzo Bianconi Date: Thu Apr 18 16:32:00 2019 +0200 mt76: mt7603: run __mt76_mcu_send_msg in mt7603_mcu_send_firmware Run __mt76_mcu_send_msg instead of __mt7603_mcu_msg_send and remove duplicated code. Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit a4834814e1d3376e07c00ecf339f1c4b8818c8a2 Author: Lorenzo Bianconi Date: Sat Apr 13 16:01:28 2019 +0200 mt76: mt7603: init mcu_restart function pointer Use common function wrapper in mt7603_mcu_exit since the code is shared with mt7615 driver Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit e2c2fd0f698338222ba098f905e0a19279fcf2d8 Author: Lorenzo Bianconi Date: Sat Apr 13 16:01:27 2019 +0200 mt76: introduce mt76_mcu_restart macro Use common function wrapper in mt76x02_watchdog_reset Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit cc1738751cfd6a3dd38f7da90a1d5b7a7df06583 Author: Lorenzo Bianconi Date: Sat Apr 13 16:01:26 2019 +0200 mt76: mt7603: initialize mt76_mcu_ops data structure Use __mt76_mcu_send_msg wrapper instead of mt7603_mcu_msg_send. This is a preliminary patch for mt7615-mt7603 mcu code unification Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit 11ca82d786bc23874d3bb838d1c4efc6d24efc27 Author: Lorenzo Bianconi Date: Sat Apr 13 16:01:25 2019 +0200 mt76: mt7603: use standard signature for mt7603_mcu_msg_send Use mt76 common signature for mt7603_mcu_msg_send. Move skb allocation in mt7603_mcu_msg_send and remove duplicated code. This is a preliminary patch for mt7615-mt7603 mcu code unification Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit 114fe5e33881dec5c35d6c352235fa4c38bc5f87 Author: Lorenzo Bianconi Date: Sat Apr 13 16:01:24 2019 +0200 mt76: mt7603: remove query from mt7603_mcu_msg_send signature Remove query parameter from mt7603_mcu_msg_send/__mt7603_mcu_msg_send routine signature since it can be obtained from cmd value. This is a preliminary patch for mcu code unification between mt7615 and mt7603 drivers Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit b28e22bd9cd3dc3b81db65c796e8fd4fe350f7b0 Author: Felix Fietkau Date: Sat Apr 13 14:07:42 2019 +0200 mt76: mt7615: use sizeof instead of sizeof_field It is simpler in this case Signed-off-by: Felix Fietkau commit 0f66947bffe6cf630d37a6ec75f654d330ec66a4 Author: Felix Fietkau Date: Fri Mar 8 19:50:21 2019 +0100 mt76: mt7603: fix initialization of max rx length The previous version only accidentally disabled A-MSDU deaggregation by using the wrong mask for rx length configuration, which left previous length value in place. Fix the length and initialize the register completely to keep A-MSDU de-aggregation remaining disabled Signed-off-by: Felix Fietkau commit 6fe533378795f87bfa5075520742116f13d30ed3 Author: Felix Fietkau Date: Thu Jan 31 22:38:28 2019 +0100 mt76: mt76x02: remove irqsave/restore in locking for tx status fifo Use a separate lock and spin_trylock to avoid disabling interrupts. Should improve performance and latency Signed-off-by: Felix Fietkau commit 2ac515a5d74f26963362d5da9589c67ca3663338 Author: Felix Fietkau Date: Fri Mar 22 07:36:07 2019 +0100 mt76: mt76x02: use napi polling for tx cleanup This allows tx scheduling and tx cleanup to run concurrently Signed-off-by: Felix Fietkau commit 091a79fd429ceb0a07c6fd36bf03b45419cc54bd Author: Stanislaw Gruszka Date: Fri Apr 26 09:58:42 2019 +0200 mt76: mt76x02: remove bogus mutex usage mac80211 .start(), .stop() callbacks are never called concurrently with other callbacks. The only concurencly is with mt76 works which we cancel on stop() and schedule on start(). This fixes possible deadlock on cancel_delayed_work_sync(&dev->mac_work) as mac_work also take mutex. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit 39d501d93d25e4c78fdaf9e83ae00f295ab88a97 Author: Stanislaw Gruszka Date: Fri Apr 26 09:58:41 2019 +0200 mt76usb: fix tx/rx stop Disabling tasklets on stopping rx/tx is wrong. If blocked tasklet is scheduled and we remove device we will get 100% cpu usage: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 9 root 20 0 0 0 0 R 93.8 0.0 1:47.19 ksoftirqd/0 by infinite loop in tasklet_action_common() and eventuall crash on next mt76usb module load: [ 2068.591964] RIP: 0010:tasklet_action_common.isra.17+0x66/0x100 [ 2068.591966] Code: 41 89 f5 eb 25 f0 48 0f ba 33 00 0f 83 b1 00 00 00 48 8b 7a 20 48 8b 42 18 e8 56 a3 b5 00 f0 80 23 fd 48 89 ea 48 85 ed 74 53 <48> 8b 2a 48 8d 5a 08 f0 48 0f ba 6a 08 01 72 0b 8b 42 10 85 c0 74 [ 2068.591968] RSP: 0018:ffff98758c34be58 EFLAGS: 00010206 [ 2068.591969] RAX: ffff98758e6966d0 RBX: ffff98756e69aef8 RCX: 0000000000000006 [ 2068.591970] RDX: 01060a053d060305 RSI: 0000000000000006 RDI: ffff98758e6966d0 [ 2068.591971] RBP: 01060a053d060305 R08: 0000000000000000 R09: 00000000000203c0 [ 2068.591971] R10: 000003ff65b34f08 R11: 0000000000000001 R12: ffff98758e6966d0 [ 2068.591972] R13: 0000000000000006 R14: 0000000000000040 R15: 0000000000000006 [ 2068.591974] FS: 0000000000000000(0000) GS:ffff98758e680000(0000) knlGS:0000000000000000 [ 2068.591975] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 2068.591975] CR2: 00002c5f73a6cc20 CR3: 00000002f920a001 CR4: 00000000003606e0 [ 2068.591977] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 2068.591978] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 2068.591978] Call Trace: [ 2068.591985] __do_softirq+0xe3/0x30a [ 2068.591989] ? sort_range+0x20/0x20 [ 2068.591990] run_ksoftirqd+0x26/0x40 [ 2068.591992] smpboot_thread_fn+0xc5/0x160 [ 2068.591995] kthread+0x112/0x130 [ 2068.591997] ? kthread_create_on_node+0x40/0x40 [ 2068.591998] ret_from_fork+0x35/0x40 [ 2068.591999] Modules linked in: ccm arc4 fuse rfcomm cmac bnep sunrpc snd_hda_codec_hdmi snd_soc_skl snd_soc_core snd_soc_acpi_intel_match snd_hda_codec_realtek snd_soc_acpi snd_hda_codec_generic snd_soc_skl_ipc snd_soc_sst_ipc snd_soc_sst_dsp snd_hda_ext_core iTCO_wdt snd_hda_intel intel_rapl iTCO_vendor_support x86_pkg_temp_thermal intel_powerclamp btusb mei_wdt coretemp btrtl snd_hda_codec btbcm btintel intel_cstate snd_hwdep intel_uncore uvcvideo snd_hda_core videobuf2_vmalloc videobuf2_memops intel_rapl_perf wmi_bmof videobuf2_v4l2 intel_wmi_thunderbolt snd_seq bluetooth joydev videobuf2_common snd_seq_device snd_pcm videodev media i2c_i801 snd_timer idma64 ecdh_generic intel_lpss_pci intel_lpss mei_me mei ucsi_acpi typec_ucsi processor_thermal_device intel_soc_dts_iosf intel_pch_thermal typec thinkpad_acpi wmi snd soundcore rfkill int3403_thermal int340x_thermal_zone int3400_thermal acpi_thermal_rel acpi_pad pcc_cpufreq uas usb_storage crc32c_intel i915 i2c_algo_bit nvme serio_raw [ 2068.592033] drm_kms_helper e1000e nvme_core drm video ipv6 [last unloaded: cfg80211] Fortunate thing is that this not happen frequently, as scheduling tasklet on blocked state is very exceptional, though might happen. Due to different RX/TX tasklet processing fix is different for those. For RX we have to assure rx_tasklet do fail to resubmit buffers by poisoning urb's and kill the tasklet. For TX we need to handle all stop cases properly (suspend, module unload, device removal). Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit 1fb869a2d98e1522c35da15de507d0a015c2b120 Author: Stanislaw Gruszka Date: Fri Apr 26 09:58:40 2019 +0200 mt76: mt76x02u: remove bogus stop on suspend On suspend mac80211 .stop callback is called before .suspend(), so hw mac is already stopped and we do not have to do this again. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit c92b52691e542eb0008b64ce76de51129a0ade53 Author: Ryder Lee Date: Mon Apr 1 15:16:44 2019 +0800 MAINTAINERS: update entry for mt76 wireless driver Roy and I actively join the development and review. Signed-off-by: Ryder Lee Signed-off-by: Felix Fietkau commit b183878a74510879e513a8686ada81746e62a846 Author: Ryder Lee Date: Mon Apr 1 15:16:43 2019 +0800 mt76: use macro for sn and seq_ctrl conversion Use macro to convert sn and seq_ctrl for better readability. Signed-off-by: Roy Luo Signed-off-by: Ryder Lee Signed-off-by: Felix Fietkau commit 6edf07478da50ffbe64110391dada12bc1711f29 Author: Ryder Lee Date: Mon Apr 1 15:16:42 2019 +0800 mt76: add unlikely() for dma_mapping_error() check In the tx/rx fastpath, the funciton dma_map_single() rarely fails. This adds unlikely() optimization to this error check conditional. Signed-off-by: Ryder Lee Signed-off-by: Felix Fietkau commit 04b8e65922f631e297bde9536306f879e6fd952b Author: Ryder Lee Date: Mon Apr 1 15:16:41 2019 +0800 mt76: add mac80211 driver for MT7615 PCIe-based chipsets This driver is for a newer generation of MediaTek MT7615 4x4 802.11ac PCIe-based chipsets, which support wave2 MU-MIMO up to 4 users/group and also support up to 160MHz bandwidth. The driver fully supports AP, station and monitor mode. Signed-off-by: Ryder Lee Signed-off-by: Roy Luo Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit 598da38672cd23e9af526d093c77a3750a56521e Author: Lorenzo Bianconi Date: Tue Apr 2 11:47:59 2019 +0200 mt76: dma: add skb check for dummy pointer Introduce skb check for dummy address in mt76_dma_tx_cleanup_idx. This is a preliminary patch to add support for new chipsets (e.g. 7615) Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit 6ca66722a887e38f82b50a4b41e43b6af0794ed2 Author: Lorenzo Bianconi Date: Tue Apr 2 11:47:58 2019 +0200 mt76: dma: introduce skb field in mt76_txwi_cache Introduce skb field in mt76_txwi_cache. Moreover add txwi_flags to mt76_driver_ops since new chipsets will release mt76_txwi_cache/skbs at tx completion instead of dma one. This is a preliminary patch to add mt7615 support Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit cfaae9e67cf13011ce6d6ddd61eacff8f72b7bad Author: Lorenzo Bianconi Date: Tue Apr 2 11:47:57 2019 +0200 mt76: add skb pointer to mt76_tx_info Pass skb pointer to tx_prepare_skb through mt76_tx_info data structure. This is a preliminary patch to properly support dma error path for new chipsets (e.g. 7615) Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit f3950a4141438f2a51337f470bedc9c8f952790a Author: Lorenzo Bianconi Date: Tue Apr 2 11:47:56 2019 +0200 mt76: set txwi_size according to the driver value Dynamically allocate txwi since new chipsets will use longer txwi descriptors Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit ce0fd825890856b1681e41bba639b5f3c39569e3 Author: Lorenzo Bianconi Date: Mon Mar 25 20:18:38 2019 +0100 mt76: usb: reduce locking in mt76u_tx_tasklet Similar to pci counterpart, reduce locking in mt76u_tx_tasklet since q->head is managed just in mt76u_tx_tasklet and q->queued is updated holding q->lock Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit 37426fb67a017f0140e529fe4b09e490989cdbf0 Author: Lorenzo Bianconi Date: Mon Mar 18 11:21:44 2019 +0100 mt76: move mac_work in mt76_dev Move mac_work delayed work in mt76_dev data structure since it is used by all drivers and it will be reused adding mac work to mt7615 Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit 41634aa8d6db9346121f58eed5d94511cdcb0976 Author: Felix Fietkau Date: Wed Mar 13 20:18:56 2019 +0100 mt76: only schedule txqs from the tx tasklet Reduces lock contention from the tx path and improves performance Signed-off-by: Felix Fietkau commit a33b8ab868ad774dfb66e750ebd158887ff8d337 Author: Felix Fietkau Date: Wed Mar 13 20:17:45 2019 +0100 mt76: move tx tasklet to struct mt76_dev Allows it to be scheduled from core code Signed-off-by: Felix Fietkau commit db9f11d3433f7a66ae9d9f8d3e09eb90f33d3b4e Author: Felix Fietkau Date: Wed Mar 13 14:20:06 2019 +0100 mt76: store wcid tx rate info in one u32 reduce locking Signed-off-by: Felix Fietkau commit 2fe30dce08220cb267641dd7dc3a53363f310622 Author: Felix Fietkau Date: Thu Jan 31 22:39:32 2019 +0100 mt76: reduce locking in mt76_dma_tx_cleanup q->tail can be safely updated without locking, because there is no concurrent access. If called from outside of the tasklet (for flushing), the tasklet is always disabled. q->queued can be safely read without locking, as long as the decrement happens within the locked section. This patch allows cleaning up tx packets outside of the section that holds the queue lock for improved performance Signed-off-by: Felix Fietkau commit 90fdc1717b1862eb3d506733f3b3e5217bc0de20 Author: Felix Fietkau Date: Wed Mar 13 00:51:36 2019 +0100 mt76: use mac80211 txq scheduling Performance improvement and preparation for adding airtime fairness support Signed-off-by: Felix Fietkau commit d908d4ec4dd182dc2e766a4d2129e6b3c274953d Author: Felix Fietkau Date: Sat Mar 23 15:24:56 2019 +0100 mt76: use readl/writel instead of ioread32/iowrite32 Switching to readl/writel is faster because it gets rid of an unnecessary wrapper with extra checks. Signed-off-by: Felix Fietkau commit cee646d62b4ca07e7c4a5864a11c35164fbf2445 Author: Felix Fietkau Date: Wed Mar 27 10:10:48 2019 +0100 mt76: fix tx power issues - tx power is stored in the channels after ieee80211_register_hw, so chan->orig_mpwr needs to be updated as well - for non-TSSI devices, mt76x2e needs to use a different target power value from the EEPROM - fix a rounding error in a few places (need to round up, not down) Signed-off-by: Felix Fietkau commit def34a2f4f44715aadadb141f3050e586c62f7d4 Author: Lorenzo Bianconi Date: Wed Mar 27 12:41:03 2019 +0100 mt76: introduce mt76_free_device routine Move mt76_tx_free in mt76_free_device routine in order to unmap all txwi descriptors at module unload Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit e5fc742f9285c47d7f59e29d7f3b749e824d7ee3 Author: Stanislaw Gruszka Date: Thu Mar 21 16:25:37 2019 +0100 mt76usb: remove queue variable from rx_tasklet Since now only mt76u_get_next_rx_entry use queue argument move it to this function. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit 85d2955ea185434f874ff9c5bcf7f4b06eb0efcd Author: Stanislaw Gruszka Date: Thu Mar 21 16:25:36 2019 +0100 mt76usb: allocate urb and sg as linear data Alloc sg table at the end of urb structure. This will increase cache usage. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit 7524c63f1f5b958a205537eedb4f610499bec956 Author: Stanislaw Gruszka Date: Thu Mar 21 16:25:35 2019 +0100 mt76usb: remove unneded sg_init_table We already allocate with GFP_ZERO and sg marker is set later for both RX and TX. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit 48f5a90c838bf72b656c353297809e8da0145fce Author: Stanislaw Gruszka Date: Thu Mar 21 16:25:34 2019 +0100 mt76usb: resue mt76u_urb_alloc for tx Add new rx_urb_alloc routine and reuse common urb_alloc for tx allocations. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit 1bb78d3843efdc1639908375fa71571c36b16858 Author: Stanislaw Gruszka Date: Thu Mar 21 16:25:33 2019 +0100 mt76usb: remove MT_RXQ_MAIN queue from mt76u_urb_alloc Get the RX queue inside mt76u_refill_rx. This will allow to reuse mt76u_urb_alloc for TX allocations. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit d7d4ea9ac84c4eed160fa2c1e3a2369c181b991b Author: Stanislaw Gruszka Date: Thu Mar 21 16:25:32 2019 +0100 mt76usb: remove mt76u_buf and use urb directly Put urb pointer in mt76_queue_entry directly instead of mt76u_buf structure. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit 279ade99ed8f3bd2d2d52ab980161627402c705f Author: Stanislaw Gruszka Date: Thu Mar 21 16:25:31 2019 +0100 mt76usb: move mt76u_buf->done to queue entry mt76_queue_entry has alreay one bool variable, adding new one will not increase it's size. Removing ->done filed from mt76u_buf will allow to use urb directly in mt76usb code. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit 26031b39bbeae2ce2074e2ba31ad786105e2c414 Author: Stanislaw Gruszka Date: Thu Mar 21 16:25:30 2019 +0100 mt76usb: remove mt76u_buf redundant fileds Remove mt76u_buf->{len, buf} fields and operate on corresponding urb fields directly. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit 112f980ac8926d5eb516a90981f1481bb4b8fc90 Author: Stanislaw Gruszka Date: Thu Mar 21 16:25:29 2019 +0100 mt76usb: use usb_dev private data Setup usb device private data. This allows to remove mt76u_buf->dev and simplify some routines as no longer we need to get usb device through usb interface. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit 92724071aac8a98b5ae9a60668404428587d8e65 Author: Stanislaw Gruszka Date: Thu Mar 21 16:25:28 2019 +0100 mt76usb: change mt76u_fill_rx_sg arguments We do not need to pass len and sglen to the function. Additionally pass gfp to control allocation context. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit 069e2d345cc1f621e2f47e141d8249ce9396d32c Author: Stanislaw Gruszka Date: Thu Mar 21 16:25:27 2019 +0100 mt76: remove rx_page_lock We can not run mt76u_alloc_buf() concurently, rx_tasklet is stooped when mt76u_submit_rx_buffers(). We can remove rx_page_lock. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit a5ba16eb6d40f2c50d283792aaa4efd86165051a Author: Stanislaw Gruszka Date: Thu Mar 21 16:25:26 2019 +0100 mt76usb: change mt76u_submit_buf Remove unnecessery arguments and change the function name since is now used only for RX. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit 02d49a2e354b2026e1b0f60aabeafc37d540a2e1 Author: Stanislaw Gruszka Date: Tue Mar 19 11:37:47 2019 +0100 mt76x02: enable AP mode for USB Enable AP mode. For now without multi-vif support, this will require more testing and investigation. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit 87d531038fa338e6fc42a7edc9fe0861653f3b1f Author: Stanislaw Gruszka Date: Tue Mar 19 11:37:46 2019 +0100 mt76: unify set_tim All mt76 drivers (now also USB drivers) require empty .set_tim callback. Add it to common mt76 module and use on all drivers. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit 8300ee7c7d47a06313fd1a38668c9583a176373e Author: Stanislaw Gruszka Date: Tue Mar 19 11:37:45 2019 +0100 mt76x02u: add mt76_release_buffered_frames Create software MT_TXQ_PSD queue for USB and map it to MT_TXQ_VO since we do not have USB endpoint for PSD. This should make mt76_release_buffered_frames() work by sending released frames via MT_TXQ_VO. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit f2276c29f822917f093cced6f8e9cdb470dc446a Author: Stanislaw Gruszka Date: Tue Mar 19 11:37:44 2019 +0100 mt76x02: make beacon slots bigger for USB Since we sent PS buffered frames via beacon memory we need to make beacon slots bigger. That imply we will also need to decrease number of slots as beacon SRAM memory is limited to 8kB. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit 7e07c27d37bd4e8d50188dd61a821daa35b5ca6a Author: Stanislaw Gruszka Date: Tue Mar 19 11:37:43 2019 +0100 mt76x02u: implement pre TBTT work for USB Program beacons data and PS buffered frames on TBTT work for USB. We do not have MT_TXQ_PSD queue available via USB endpoints. The way we can send PS broadcast frames in timely manner before PS stations go sleep again is program them in beacon data area. Hardware do not modify those frames since TXWI is properly configured. mt76x02_mac_set_beacon() already handle this and free no longer used frames. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit b98558e25299860f2428eff2e7636510c6d8fba0 Author: Stanislaw Gruszka Date: Tue Mar 19 11:37:42 2019 +0100 mt76x02: disable HW encryption for group frames This is required to sent multicast/broadcast frames in USB AP mode just after beacon. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit 2baed5db9f7cfcc506529a1bdf891c1cb0470cf1 Author: Stanislaw Gruszka Date: Tue Mar 19 11:37:41 2019 +0100 mt76x02u: add sta_ps Add sta_ps callback but dont set WCID drop sicne registers for USB can not be accessed from tasklet context. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit 31cdd4420349f9ed7d2f54eded4604537cf734e2 Author: Stanislaw Gruszka Date: Tue Mar 19 11:37:40 2019 +0100 mt76x02: generalize some mmio beaconing functions Move some TBTT mmio functions to mt76x02_beacon.c and create new ones in order to be reused by USB pre-TBTT. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit c6ad1feb1f0bab6eeb387b9e5980ce0f1fbb727a Author: Stanislaw Gruszka Date: Tue Mar 19 11:37:39 2019 +0100 mt76x02u: implement beacon_ops Add implementation of beacon_ops for USB and exit function to stop the timer if running when device is removed. Still no actual work on pre tbtt event. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit c004b881f1447ff768ccef9ba60a975c122a0596 Author: Stanislaw Gruszka Date: Tue Mar 19 11:37:38 2019 +0100 mt76x02: introduce beacon_ops Enabling/disableing TBTT and beacon will be diffrent for USB. Introduce beacon_ops to encapsulate that and implement it for MMIO. USB implementation is noop for now. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit 5a3f1cc288fb2cb2597bd8ff8640a8de2ba14bd8 Author: Stanislaw Gruszka Date: Tue Mar 19 11:37:37 2019 +0100 mt76x02: add hrtimer for pre TBTT for USB Add timer and work for pre TBTT for USB devices. For now code doesn't do anyting useful, just add hrtimer which synchronize with hardware MT_TBTT_TIMER. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit 8d71aef9c9ca21fca4974815fa584ed01dfeb567 Author: Stanislaw Gruszka Date: Tue Mar 19 11:37:36 2019 +0100 mt76x02: introduce mt76x02_beacon.c Move most of beaconing code into separate file and separate beacon initialization for USB and MMIO as pre TBTT implementation for USB will be different. Signed-off-by: Stanislaw Gruszka Signed-off-by: Felix Fietkau commit cadae4772d2cdfac21fd86975d3860eff38c7e51 Author: Lorenzo Bianconi Date: Mon Mar 4 13:59:49 2019 +0100 mt76: usb: reduce code indentation in mt76u_alloc_tx Improve code readability reducing code indentation in mt76u_alloc_tx Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit 4e04ba6aa34bc079705eefdfdb71939d40c6c842 Author: Lorenzo Bianconi Date: Sat Mar 16 16:45:36 2019 +0100 mt7603: core: do not use magic numbers in mt7603_reg_map Use register definitions instead of magic numbers in mt7603_reg_map Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit 047348fb1146439a5b945066f36c7b9260a3315c Author: Lorenzo Bianconi Date: Sat Mar 16 15:32:53 2019 +0100 mt7603: remove mt7603_mcu_init routine Remove mt7603_mcu_init since mcu.mutex has been already initialized in mt76_mmio_init. Run mt7603_load_firmware directly in mt7603_init_hardware Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit eb9ca7ecd0b4fa337bb677c1938c9123120bab59 Author: Lorenzo Bianconi Date: Thu Mar 7 15:45:43 2019 +0100 mt76: dma: add static qualifier to mt76_dma_tx_queue_skb As already done for mt76_dma_tx_queue_skb_raw, add static qualifier to mt76_dma_tx_queue_skb and introduce mt76_tx_queue_skb in order to run mt76_dma_tx_queue_skb in driver code Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit b5903c470328b15f828ebb9c42da63da6d0cf8a1 Author: Lorenzo Bianconi Date: Thu Mar 14 14:54:12 2019 +0100 mt76: introduce mt76_tx_info data structure Add mt76_tx_info as auxiliary data structure to pass values to tx_prepare_skb pointer. This is a preliminary patch to add support for new chipsets (e.g. mt7615) Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit eb071ba77c239e0c028de40d1663b92c6f5bff3e Author: Lorenzo Bianconi Date: Thu Mar 14 14:54:11 2019 +0100 mt76: move skb dma mapping before running tx_prepare_skb Move skb dma mapping before configuring txwi since new chipsets (mt7615) will need skb dma addresses in order to properly configure txwi Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit 66105538a62a12db132e28918118cbb14f4afbd2 Author: Lorenzo Bianconi Date: Thu Mar 14 14:54:10 2019 +0100 mt76: mmio: move mt76_insert_hdr_pad in mt76_dma_tx_queue_skb Introduce tx_aligned4_skbs in mt76_driver_ops and move mt76_insert_hdr_pad in mt76_dma_tx_queue_skb. This is a preliminary patch in order to unify tx dma mapping for mt76x02 and new chipsets Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit 3bb45b5febc076cde5816d11a8e81b6343268504 Author: Lorenzo Bianconi Date: Thu Mar 14 14:54:09 2019 +0100 mt76: move mt76x02_insert_hdr_pad in mt76-core module Move mt76x02_insert_hdr_pad in m76-core and rename it in mt76_insert_hdr_pad in order to be used in mt76_dma_tx_queue_skb. This is a preliminary patch in order to properly support tx dma mapping for new chipsets (e.g. mt7615) Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit d290c12114fb0f2d461b72c6fcbb2a6a33459b6a Author: Lorenzo Bianconi Date: Sat Mar 2 14:47:42 2019 +0100 mt76: introduce mt76_txq_id field in mt76_queue_entry Add mt76_txq_id field to mt76_queue_entry in order to properly track outstanding frames for mt7615 that relies on a single hw queue Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit af005f2605956e596b335b40bce364963f0575a0 Author: Lorenzo Bianconi Date: Sat Mar 2 14:47:41 2019 +0100 mt76: introduce mt76_sw_queue data structure Introduce mt76_sw_queue data structure in order to support new chipsets (e.g. mt7615) that have a shared hardware queue for all traffic identifiers. mt76_sw_queue will be used to track outstanding packets Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit e226ba2e356929c8d4aa9131acb795c302e5e821 Author: Lorenzo Bianconi Date: Sat Mar 2 14:47:40 2019 +0100 mt76: remove mt76_queue dependency from tx_complete_skb function pointer Remove mt76_queue dependency from tx_complete_skb function pointer and rely on mt76_tx_qid instead. Remove flush from tx_complete_skb signature. This is a preliminary patch to introduce mt76_sw_queue support Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit 300832ad5f53591311304bb3af749dc427957d2d Author: Lorenzo Bianconi Date: Sat Mar 2 14:47:39 2019 +0100 mt76: remove mt76_queue dependency from tx_prepare_skb function pointer Remove mt76_queue dependency from tx_prepare_skb function pointer and rely on mt76_tx_qid instead. This is a preliminary patch to introduce mt76_sw_queue support Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit 89a37842b0c13c9e568bf12f4fcbe6507147e41d Author: Lorenzo Bianconi Date: Sat Mar 2 14:47:38 2019 +0100 mt76: remove mt76_queue dependency from tx_queue_skb function pointer Remove mt76_queue dependency from tx_queue_skb function pointer and rely on mt76_tx_qid instead. This is a preliminary patch to introduce mt76_sw_queue support Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit b1bfbe704f8f2466a8e1bba7c8ecef1d41b30b96 Author: Lorenzo Bianconi Date: Thu Feb 28 17:54:32 2019 +0100 mt76: dma: move mt76x02_init_{tx,rx}_queue in mt76 module Move mt76x02_init_tx_queue and mt76x02_init_rx_queue in mt76 module in order to be reused adding support for mt7603 driver and remove duplicated code. Squash mt76x02_init_tx_queue and mt76x02_init_rx_queue in mt76_dma_alloc_queue Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit 9220f695c17b8b82ee97a38b5f11f85abdfde1e6 Author: Lorenzo Bianconi Date: Thu Feb 28 17:54:31 2019 +0100 mt76: mmio: move mt76x02_set_irq_mask in mt76 module Move mt76x02_set_irq_mask in mt76 module in order to be reused adding support for mt7603 driver and remove duplicated code Signed-off-by: Lorenzo Bianconi Signed-off-by: Felix Fietkau commit 87cb312777b5dc5eece8e1c58d4e0040eeea39fa Author: Andrey Smirnov Date: Sun Apr 14 17:46:32 2019 -0700 PCI: imx6: Use usleep_range() in imx6_pcie_enable_ref_clk() imx6_pcie_enable_ref_clk() is never called in atomic context, so there's no need to use udelay(). Replace it with usleep_range(). Signed-off-by: Andrey Smirnov Signed-off-by: Lorenzo Pieralisi Reviewed-by: Lucas Stach Cc: Lorenzo Pieralisi Cc: Bjorn Helgaas Cc: Chris Healy Cc: Lucas Stach Cc: linux-kernel@vger.kernel.org Cc: linux-pci@vger.kernel.org commit 76d6dc26331dfe3c275b16ac28f8b92f9614cd7e Author: Andrey Smirnov Date: Sun Apr 14 17:46:31 2019 -0700 PCI: imx6: Use flags to indicate support for suspend Now that driver data has flags variable that can be used to indicate quirks/features supported we can switch the code to use it instead of having a special function that does so based on variant alone. No functional change intended. Signed-off-by: Andrey Smirnov Signed-off-by: Lorenzo Pieralisi Reviewed-by: Lucas Stach Cc: Lorenzo Pieralisi Cc: Bjorn Helgaas Cc: Chris Healy Cc: Lucas Stach Cc: linux-kernel@vger.kernel.org Cc: linux-pci@vger.kernel.org commit 37d5d32ae091c7acff23a080e3c179977fb943cd Author: Andrey Smirnov Date: Sun Apr 14 17:46:30 2019 -0700 PCI: imx6: Restrict PHY register data to 16-bit PHY registers on i.MX6 are 16-bit wide, so we can get rid of explicit masking if we restrict pcie_phy_read()/pcie_phy_write() to use 'u16' instead of 'int'. No functional change intended. Signed-off-by: Andrey Smirnov Signed-off-by: Lorenzo Pieralisi Reviewed-by: Lucas Stach Cc: Lorenzo Pieralisi Cc: Bjorn Helgaas Cc: Chris Healy Cc: Lucas Stach Cc: linux-kernel@vger.kernel.org Cc: linux-pci@vger.kernel.org commit c2c708bc1dbf9655211d3843e2f36c7951059cf0 Author: Andrey Smirnov Date: Sun Apr 14 17:46:29 2019 -0700 PCI: imx6: Simplify pcie_phy_poll_ack() Simplify pcie_phy_poll_ack() by incorporating shifting into constant definition and convert the code to use 'bool'. No functional change intended. Signed-off-by: Andrey Smirnov Signed-off-by: Lorenzo Pieralisi Reviewed-by: Lucas Stach Cc: Lorenzo Pieralisi Cc: Bjorn Helgaas Cc: Chris Healy Cc: Lucas Stach Cc: linux-kernel@vger.kernel.org Cc: linux-pci@vger.kernel.org commit 3ca4133253a7ff37e56b3b00f1e03c3e7d20ea89 Author: Andrey Smirnov Date: Sun Apr 14 17:46:28 2019 -0700 PCI: imx6: Simplify bit operations in PHY functions Simplify the code by incorporating left shifts into constant definitions as well as using FIELD_PREP/GENMASK. No functional change intended. Signed-off-by: Andrey Smirnov Signed-off-by: Lorenzo Pieralisi Reviewed-by: Lucas Stach Cc: Lorenzo Pieralisi Cc: Bjorn Helgaas Cc: Chris Healy Cc: Lucas Stach Cc: linux-kernel@vger.kernel.org Cc: linux-pci@vger.kernel.org commit 276c76d7a15ada363b8efab7b50a52aeaf3b3fd5 Author: Andrey Smirnov Date: Sun Apr 14 17:46:27 2019 -0700 PCI: imx6: Make use of BIT() in constant definitions Avoid using explicit left shifts and convert various definitions to use BIT() instead. No functional change intended. Signed-off-by: Andrey Smirnov Signed-off-by: Lorenzo Pieralisi Reviewed-by: Lucas Stach Cc: Lorenzo Pieralisi Cc: Bjorn Helgaas Cc: Chris Healy Cc: Lucas Stach Cc: linux-kernel@vger.kernel.org Cc: linux-pci@vger.kernel.org commit 60ef4b072ba089440531287f72740d94ed1e8dd1 Author: Andrey Smirnov Date: Sun Apr 14 17:46:26 2019 -0700 PCI: dwc: imx6: Share PHY debug register definitions Both pcie-designware.c and pci-imx6.c contain custom definitions for PHY debug registers R0/R1 and on top of that there's already a definition for R0 in pcie-designware.h. Move all of the definitions to pcie-designware.h. No functional change intended. Signed-off-by: Andrey Smirnov Signed-off-by: Lorenzo Pieralisi Reviewed-by: Lucas Stach Cc: Lorenzo Pieralisi Cc: Bjorn Helgaas Cc: Chris Healy Cc: Lucas Stach Cc: linux-kernel@vger.kernel.org Cc: linux-pci@vger.kernel.org commit 680728e4cbee8ede008373c56fe6978946080008 Author: Andrey Smirnov Date: Sun Apr 14 17:46:25 2019 -0700 PCI: imx6: Remove PCIE_PL_PFLR_* constants Code using these constants was removed in commit a71280722eeb ("PCI: imx6: Remove LTSSM disable workaround"). No functional change intended. Signed-off-by: Andrey Smirnov Signed-off-by: Lorenzo Pieralisi Reviewed-by: Lucas Stach Cc: Lorenzo Pieralisi Cc: Bjorn Helgaas Cc: Chris Healy Cc: Lucas Stach Cc: linux-kernel@vger.kernel.org Cc: linux-pci@vger.kernel.org commit c377690cffaf6a497b81304a83d3b2a2dad2942a Author: Andrey Smirnov Date: Sun Apr 14 17:46:24 2019 -0700 PCI: imx6: Return -ETIMEOUT from imx6_pcie_wait_for_speed_change() Change error code from -EINVAL to -ETIMEDOUT in imx6_pcie_wait_for_speed_change() since that error code seems more appropriate. Signed-off-by: Andrey Smirnov Signed-off-by: Lorenzo Pieralisi Reviewed-by: Lucas Stach Cc: Lorenzo Pieralisi Cc: Bjorn Helgaas Cc: Chris Healy Cc: Lucas Stach Cc: linux-kernel@vger.kernel.org Cc: linux-pci@vger.kernel.org commit ee6f37175b3f7ae1c3bc147d4779c6043ce25461 Author: Andrey Smirnov Date: Sun Apr 14 17:46:23 2019 -0700 PCI: imx6: Drop imx6_pcie_wait_for_link() All calls to imx6_pcie_wait_for_link() share the same error path and the state of PHY debug registers will already be printed there, so there's no real reason we can't just use dw_pcie_wait_for_link(). Drop imx6_pcie_wait_for_link() and replace it with dw_pcie_wait_for_link(). Suggested-by: Lucas Stach Signed-off-by: Andrey Smirnov Signed-off-by: Lorenzo Pieralisi Reviewed-by: Lucas Stach Cc: Lorenzo Pieralisi Cc: Bjorn Helgaas Cc: Chris Healy Cc: Lucas Stach Cc: linux-kernel@vger.kernel.org Cc: linux-pci@vger.kernel.org commit 9e303be2e5d0705f3fc51c4c854e5d94e1b943c4 Author: Andrey Smirnov Date: Sun Apr 14 17:46:22 2019 -0700 PCI: imx6: Simplify imx7d_pcie_wait_for_phy_pll_lock() Make use of regmap_read_poll_timeout() to simplify imx7d_pcie_wait_for_phy_pll_lock(). No functional change intended. Signed-off-by: Andrey Smirnov Signed-off-by: Lorenzo Pieralisi Reviewed-by: Lucas Stach Cc: Lorenzo Pieralisi Cc: Bjorn Helgaas Cc: Chris Healy Cc: Lucas Stach Cc: linux-kernel@vger.kernel.org Cc: linux-pci@vger.kernel.org commit f011df6179bdffac63987f009d25dd79b6e2df23 Author: Lokesh Vutla Date: Tue Apr 30 15:42:29 2019 +0530 irqchip/ti-sci-inta: Add msi domain support Add a msi domain that is child to the INTA domain. Clients uses the INTA MSI bus layer to allocate irqs in this MSI domain. Signed-off-by: Lokesh Vutla Signed-off-by: Marc Zyngier commit 49b323157bf1e70bfb3114a463d340399906c43a Author: Lokesh Vutla Date: Tue Apr 30 15:42:28 2019 +0530 soc: ti: Add MSI domain bus support for Interrupt Aggregator With the system coprocessor managing the range allocation of the inputs to Interrupt Aggregator, it is difficult to represent the device IRQs from DT. The suggestion is to use MSI in such cases where devices wants to allocate and group interrupts dynamically. Create a MSI domain bus layer that allocates and frees MSIs for a device. APIs that are implemented: - ti_sci_inta_msi_create_irq_domain() that creates a MSI domain - ti_sci_inta_msi_domain_alloc_irqs() that creates MSIs for the specified device and resource. - ti_sci_inta_msi_domain_free_irqs() frees the irqs attached to the device. - ti_sci_inta_msi_get_virq() for getting the virq attached to a specific event. Signed-off-by: Lokesh Vutla Signed-off-by: Marc Zyngier commit 9f1463b86c13277d0bd88d5ee359577ef40f4da7 Author: Lokesh Vutla Date: Tue Apr 30 15:42:27 2019 +0530 irqchip/ti-sci-inta: Add support for Interrupt Aggregator driver Texas Instruments' K3 generation SoCs has an IP Interrupt Aggregator which is an interrupt controller that does the following: - Converts events to interrupts that can be understood by an interrupt router. - Allows for multiplexing of events to interrupts. Configuration of the interrupt aggregator registers can only be done by a system co-processor and the driver needs to send a message to this co processor over TISCI protocol. Add the required infrastructure to allow the allocation and routing of these events. Signed-off-by: Lokesh Vutla Signed-off-by: Marc Zyngier commit accaf1fbfb5daebc9e5ea55644ff8fff3679b838 Author: Lokesh Vutla Date: Tue Apr 30 15:42:26 2019 +0530 dt-bindings: irqchip: Introduce TISCI Interrupt Aggregator bindings Add the DT binding documentation for Interrupt Aggregator driver. Signed-off-by: Lokesh Vutla Reviewed-by: Rob Herring Signed-off-by: Marc Zyngier commit cd844b0715ceda3287d1fa8e5d8e1b25a85c9b0f Author: Lokesh Vutla Date: Tue Apr 30 15:42:25 2019 +0530 irqchip/ti-sci-intr: Add support for Interrupt Router driver Texas Instruments' K3 generation SoCs has an IP Interrupt Router that does allows for redirection of input interrupts to host interrupt controller. Interrupt Router inputs are either from a peripheral or from an Interrupt Aggregator which is another interrupt controller. Configuration of the interrupt router registers can only be done by a system co-processor and the driver needs to send a message to this co processor over TISCI protocol. Add support for Interrupt Router driver over TISCI protocol. Signed-off-by: Lokesh Vutla Signed-off-by: Marc Zyngier commit 67d2075ad695b4c8ce08208abbc9eb1846d7ab81 Author: Lokesh Vutla Date: Tue Apr 30 15:42:24 2019 +0530 dt-bindings: irqchip: Introduce TISCI Interrupt router bindings Add the DT binding documentation for Interrupt router driver. Signed-off-by: Lokesh Vutla Reviewed-by: Rob Herring Signed-off-by: Marc Zyngier commit 0d04d0c146786da42c6e68c7d2f09c956c5b5bd3 Author: Lokesh Vutla Date: Tue Apr 30 15:42:23 2019 +0530 gpio: thunderx: Use the default parent apis for {request,release}_resources thunderx_gpio_irq_{request,release}_resources apis are trying to {request,release} resources on parent interrupt. There are default apis doing the same. Use the default parent apis instead of writing the same code snippet. Cc: linux-gpio@vger.kernel.org Cc: Linus Walleij Acked-by: Linus Walleij Signed-off-by: Lokesh Vutla Signed-off-by: Marc Zyngier commit 2bd1298ac17777525a41c8425521f569e412df14 Author: Lokesh Vutla Date: Tue Apr 30 15:42:22 2019 +0530 genirq: Introduce irq_chip_{request,release}_resource_parent() apis Introduce irq_chip_{request,release}_resource_parent() apis so that these can be used in hierarchical irqchips. Signed-off-by: Lokesh Vutla Signed-off-by: Marc Zyngier commit 032a1ec549a79711078d26b6bcbba9d435822059 Author: Lokesh Vutla Date: Tue Apr 30 15:42:21 2019 +0530 firmware: ti_sci: Add helper apis to manage resources Each resource with in the device can be uniquely identified as defined by TISCI. Since this is generic across the devices, resource allocation also can be made generic instead of each client driver handling the resource. So add helper apis to manage the resource. Signed-off-by: Lokesh Vutla Acked-by: Nishanth Menon Signed-off-by: Marc Zyngier commit 754c9477ae78727d31692c76190b5567c567f435 Author: Peter Ujfalusi Date: Tue Apr 30 15:42:20 2019 +0530 firmware: ti_sci: Add RM mapping table for am654 Add the resource mapping table for AM654 SoC as defined in http://downloads.ti.com/tisci/esd/latest/5_soc_doc/am6x/resasg_types.html Introduce a new compatible for AM654 "ti,am654-sci" for using this resource map table. Reviewed-by: Rob Herring Acked-by: Tony Lindgren Signed-off-by: Peter Ujfalusi Signed-off-by: Lokesh Vutla Acked-by: Nishanth Menon Signed-off-by: Marc Zyngier commit 997b001f6bb2ede3043bdf80b62a5a4dd466d7eb Author: Lokesh Vutla Date: Tue Apr 30 15:42:19 2019 +0530 firmware: ti_sci: Add support for IRQ management TISCI abstracts the handling of IRQ routes where interrupt sources are not directly connected to host interrupt controller. Add support for the set of TISCI commands for requesting and releasing IRQs. Signed-off-by: Lokesh Vutla Acked-by: Nishanth Menon Signed-off-by: Marc Zyngier commit 9c19fb6895bef1c350087e57afebc0847adf960d Author: Lokesh Vutla Date: Tue Apr 30 15:42:18 2019 +0530 firmware: ti_sci: Add support for RM core ops TISCI provides support for getting the resources(IRQ, RING etc..) assigned to a specific device. These resources can be handled by the client and in turn sends TISCI cmd to configure the resources. It is very important that client should keep track on usage of these resources. Add support for TISCI commands to get resource ranges. Signed-off-by: Lokesh Vutla Signed-off-by: Peter Ujfalusi Acked-by: Nishanth Menon Signed-off-by: Marc Zyngier commit 905c30477f4d88ea535c6970c50bbb159d733249 Author: Grygorii Strashko Date: Tue Apr 30 15:42:17 2019 +0530 firmware: ti_sci: Add support to get TISCI handle using of_phandle TISCI has been updated to have support for Resource management(like interrupts etc..). And there can be multiple device instances of a resource type in a SoC. So every driver corresponding to a resource type should get a TISCI handle so that it can make TISCI calls. And each DT node corresponding to a device should exist under its corresponding bus node as per the SoC architecture. But existing apis in TISCI library assumes that all TISCI users are child nodes of TISCI. Which is not true in the above case. So introduce (devm_)ti_sci_get_by_phandle() apis that can be used by TISCI users to get TISCI handle using of phandle property. Signed-off-by: Grygorii Strashko Signed-off-by: Lokesh Vutla Acked-by: Nishanth Menon Signed-off-by: Marc Zyngier commit 91b6cb7216cd8bad027bc9ef88e2834786c8eeaf Author: Greg Kroah-Hartman Date: Wed May 1 10:48:43 2019 +0200 staging: kpc2000: fix up build problems with readq() The 0-day system found a bunch of warnings for when readq() is not defined on the platform, so fix this by including the linux/io-64-nonatomic-lo-hi.h file which will fix up these issues. Reported-by: kbuild test robot Signed-off-by: Greg Kroah-Hartman commit adc7af464ceba1962c2eb875a97f4d3bd82fbc5f Author: Greg Kroah-Hartman Date: Wed May 1 10:40:10 2019 +0200 staging: rtlwifi: move remaining phydm .h files The rtl8188eu driver uses the phydm .h files from the rtlwifi driver, but now that the rtlwifi driver is gone, it's silly to have a whole directory for just 2 .h files. So move these files into the rtl8188eu driver's directory so that it can be self-contained. Signed-off-by: Greg Kroah-Hartman commit 8a90bdcb64a9e3732279bb6d9f5054dd6ce3dfbd Author: Greg Kroah-Hartman Date: Wed May 1 10:37:13 2019 +0200 staging: rtlwifi: strip down phydm .h files The phydm .h files are used by another driver, but not all of the defines are used, so strip them down to their basic necessities before we move them out of this directory. Signed-off-by: Greg Kroah-Hartman commit ef4a0c3173736a957d1495e9a706d7e7e3334613 Author: Greg Kroah-Hartman Date: Wed May 1 10:15:42 2019 +0200 staging: rtlwifi: delete the staging driver A "real" driver for this hardware is now in the wireless-drivers-next tree, to be merged in the next major kernel release, so this staging driver can now be deleted as it is not needed anymore. Note, 2 .h files remain for this driver, as they are referenced in a separate staging driver. That mess will be cleaned up in a follow-on patch. Cc: Ping-Ke Shih Cc: Tzu-En Huang Cc: Yan-Hsuan Chuang Cc: Stanislaw Gruszka Cc: Brian Norris Cc: Kalle Valo Signed-off-by: Greg Kroah-Hartman commit 23583f7795025e3c783b680d906509366b0906ad Author: Pierre-Louis Bossart Date: Tue Apr 30 10:52:29 2019 -0500 ACPI / property: fix handling of data_nodes in acpi_get_next_subnode() When the DSDT tables expose devices with subdevices and a set of hierarchical _DSD properties, the data returned by acpi_get_next_subnode() is incorrect, with the results suggesting a bad pointer assignment. The parser works fine with device_nodes or data_nodes, but not with a combination of the two. The problem is traced to an invalid pointer used when jumping from handling device_nodes to data nodes. The existing code looks for data nodes below the last subdevice found instead of the common root. Fix by forcing the acpi_device pointer to be derived from the same fwnode for the two types of subnodes. This same problem of handling device and data nodes was already fixed in a similar way by 'commit bf4703fdd166 ("ACPI / property: fix data node parsing in acpi_get_next_subnode()")' but broken later by 'commit 34055190b19 ("ACPI / property: Add fwnode_get_next_child_node()")', so this should probably go to linux-stable all the way to 4.12 Signed-off-by: Pierre-Louis Bossart Reviewed-by: Andy Shevchenko Signed-off-by: Rafael J. Wysocki commit 5b2a15296210d3b70e06d0f09a8e701ff74ccbe8 Author: Anton Blanchard Date: Thu Oct 4 16:23:37 2018 +1000 powerpc: Add doorbell tracepoints When analysing sources of OS jitter, I noticed that doorbells cannot be traced. Signed-off-by: Anton Blanchard Signed-off-by: Michael Ellerman commit c4703ce11c23423d4b46e3d59aef7979814fd608 Author: Dan Williams Date: Tue Apr 30 21:51:21 2019 -0700 libnvdimm/namespace: Fix label tracking error Users have reported intermittent occurrences of DIMM initialization failures due to duplicate allocations of address capacity detected in the labels, or errors of the form below, both have the same root cause. nd namespace1.4: failed to track label: 0 WARNING: CPU: 17 PID: 1381 at drivers/nvdimm/label.c:863 RIP: 0010:__pmem_label_update+0x56c/0x590 [libnvdimm] Call Trace: ? nd_pmem_namespace_label_update+0xd6/0x160 [libnvdimm] nd_pmem_namespace_label_update+0xd6/0x160 [libnvdimm] uuid_store+0x17e/0x190 [libnvdimm] kernfs_fop_write+0xf0/0x1a0 vfs_write+0xb7/0x1b0 ksys_write+0x57/0xd0 do_syscall_64+0x60/0x210 Unfortunately those reports were typically with a busy parallel namespace creation / destruction loop making it difficult to see the components of the bug. However, Jane provided a simple reproducer using the work-in-progress sub-section implementation. When ndctl is reconfiguring a namespace it may take an existing defunct / disabled namespace and reconfigure it with a new uuid and other parameters. Critically namespace_update_uuid() takes existing address resources and renames them for the new namespace to use / reconfigure as it sees fit. The bug is that this rename only happens in the resource tracking tree. Existing labels with the old uuid are not reaped leading to a scenario where multiple active labels reference the same span of address range. Teach namespace_update_uuid() to flag any references to the old uuid for reaping at the next label update attempt. Cc: Fixes: bf9bccc14c05 ("libnvdimm: pmem label sets and namespace instantiation") Link: https://github.com/pmem/ndctl/issues/91 Reported-by: Jane Chu Reported-by: Jeff Moyer Reported-by: Erwin Tsaur Cc: Johannes Thumshirn Signed-off-by: Dan Williams commit 6ee9706aa22e026f438caabb2982e5f78de2c82c Author: Eric Biggers Date: Thu Apr 11 16:16:30 2019 -0700 libfs: document simple_get_link() Signed-off-by: Eric Biggers Signed-off-by: Al Viro commit 1a6a31655071106a34ae06353390891a80c54371 Author: Eric Biggers Date: Thu Apr 11 16:16:29 2019 -0700 Documentation/filesystems/Locking: fix ->get_link() prototype Signed-off-by: Eric Biggers Signed-off-by: Al Viro commit dcb2cb1f26f91df486492e2f2c2d62fe751fd21a Author: Eric Biggers Date: Thu Apr 11 16:16:28 2019 -0700 Documentation/filesystems/vfs.txt: document how ->i_link works Signed-off-by: Eric Biggers Signed-off-by: Al Viro commit c59a89972258102e7d22cda5927e6c8121d84f26 Author: Eric Biggers Date: Thu Apr 11 16:16:27 2019 -0700 Documentation/filesystems/vfs.txt: remove bogus "Last updated" date This file has actually been updated over 100 times since the claimed "Last updated" date. Signed-off-by: Eric Biggers Signed-off-by: Al Viro commit 2b5bc3c8ebce3b30676fb9bc30cf52d0a65640f9 Author: Heiner Kallweit Date: Sun Apr 28 19:45:28 2019 +0200 r8169: remove manual autoneg restart workaround According to Neil who reported the issue leading to this workaround, the workaround is no longer needed since version 5.0. So let's remove it. This was the bug report leading to the workaround: https://bugzilla.kernel.org/show_bug.cgi?id=201081 Signed-off-by: Heiner Kallweit Tested-by: Neil MacLeod Signed-off-by: David S. Miller commit 58908dc5d4123a073b396babb3396820f2d61843 Merge: b4d081df03be 4e7e4621157e Author: David S. Miller Date: Tue Apr 30 23:26:49 2019 -0400 Merge branch 'r8169-improve-eri-function-handling' Heiner Kallweit says: ==================== r8169: improve eri function handling This series aims at improving and simplifying the eri functions. No functional change intended. ==================== Signed-off-by: David S. Miller commit 4e7e4621157e6485169c727fbb4c15e29a5deeca Author: Heiner Kallweit Date: Sun Apr 28 11:12:56 2019 +0200 r8169: add rtl_reset_packet_filter Fortunately in one place there's a comment explaining what toggling this bit does. So let's create a helper for it. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit e719b3eaeff0108da254138e6bd5f5bf8bae8954 Author: Heiner Kallweit Date: Sun Apr 28 11:11:47 2019 +0200 r8169: add helpers rtl_eri_set/clear_bits Add helpers rtl_eri_set_bits and rtl_eri_clear_bits to improve readability of the code. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 724c6fd0158c3537a8b29269624509b69ce9bd26 Author: Heiner Kallweit Date: Sun Apr 28 11:10:50 2019 +0200 r8169: make ERIAR_EXGMAC the default in eri functions In basically all eri function calls the type argument is ERIAR_EXGMAC. Therefore make it the default. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit b4d081df03be154f5434ff5043341caa6ebea481 Merge: 492593010de4 c1b0f9fa064a Author: David S. Miller Date: Tue Apr 30 23:15:45 2019 -0400 Merge branch 'Convert-mv88e6060-to-mdio-device' Andrew Lunn says: ==================== Convert mv88e6060 to mdio device This patchset builds upon the previous patches to mv88e6060. It adds support for probing the switch as an MDIO device and then removes the legacy probe method. Since this is the last device supporting legacy probe, this allows legacy probe to be removed, originally planned to be removed in 4.17, but took a bit longer. This change to the mv88e6060 is more risky than the previous patchset. Some attempts to test it have been made, by hacking the driver to match on an mv88e6352 so that it probes. These changes are all about probe, so it is a reasonable test. But testing on a real mv88e6060 would be great. ==================== Signed-off-by: David S. Miller commit c1b0f9fa064a90532a4184a31ce0847a979069f5 Author: Andrew Lunn Date: Sun Apr 28 02:56:24 2019 +0200 dt-bindings: net: DSA: Remove legacy binding Now that the code to support the legacy binding has been removed, remove the documentation for it. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller commit 93e86b3bc842c159a60e6987444bf3952adcd4db Author: Andrew Lunn Date: Sun Apr 28 02:56:23 2019 +0200 net: dsa: Remove legacy probing support Now that all drivers can be probed using more traditional methods, remove the legacy probe code. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller commit 2f8e7ece4a624b07e4ff3846adbf6484ee632f59 Author: Andrew Lunn Date: Sun Apr 28 02:56:22 2019 +0200 net: dsa: mv88e6060: Remove support for legacy probing Now that the driver can be probed as an mdio device, remove the legacy DSA platform device probing. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller commit 277617603c0259c1c3bab18f2d54f449c411bd7d Author: Andrew Lunn Date: Sun Apr 28 02:56:21 2019 +0200 net: dsa: mv88e6060: Support probing as an mdio device Probing DSA devices as platform devices has been superseded by using normal bus drivers. Add support for probing the mv88e6060 device as an mdio device. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller commit 50b29d8f033a7c88c5bc011abc2068b1691ab755 Author: Debabrata Banerjee Date: Tue Apr 30 23:08:15 2019 -0400 ext4: fix ext4_show_options for file systems w/o journal Instead of removing EXT4_MOUNT_JOURNAL_CHECKSUM from s_def_mount_opt as I assume was intended, all other options were blown away leading to _ext4_show_options() output being incorrect. Fixes: 1e381f60dad9 ("ext4: do not allow journal_opts for fs w/o journal") Signed-off-by: Debabrata Banerjee Signed-off-by: Theodore Ts'o Reviewed-by: Jan Kara Cc: stable@kernel.org commit 492593010de4a323a7b98dffb0ba6567456b5ba0 Merge: a658a3f2ecba 314f76d7a68b Author: David S. Miller Date: Tue Apr 30 23:05:30 2019 -0400 Merge branch 'dsa-core-vlan' Vladimir Oltean says: ==================== Improvements to DSA core VLAN manipulation In preparation of submitting the NXP SJA1105 driver, the Broadcom b53 and Mediatek mt7530 drivers have been found to apply some VLAN workarounds that are needed in the new driver as well. Therefore this patchset is mostly simply promoting the DSA driver workarounds for VLAN to the generic code. The b53 driver was applying a few workarounds in order to convince DSA that its vlan_filtering setting is not really per-port. This is now simply set by the driver via a DSA variable at probe time. The sja1105 driver will be a second user of this. The mt7530 was also keeping track of when the .port_vlan_filtering callback was being called. Remove the kept state from this driver and simplify dealing with vlan_filtering in the generic case. TODO: Find the best way to deal generically with the situation described below (discussion at https://lkml.org/lkml/2019/4/16/1355): > > +Segregating the switch ports in multiple bridges is supported (e.g. 2 + 2), but > > +all bridges should have the same level of VLAN awareness (either both have > > +``vlan_filtering`` 0, or both 1). Also an inevitable limitation of the fact > > +that VLAN awareness is global at the switch level is that once a bridge with > > +``vlan_filtering`` enslaves at least one switch port, the other un-bridged > > +ports are no longer available for standalone traffic termination. > > That is quite a limitation that I don't think I had fully grasped until > reading your different patches. Since enslaving ports into a bridge > comes after the network device was already made available for use, maybe > you should force the carrier down or something along those lines as soon > as a port is enslaved into a bridge with vlan_filtering=1 to make this > more predictable for the user? ==================== Signed-off-by: David S. Miller commit 314f76d7a68bab0516aa52877944e6aacfa0fc3f Author: Vladimir Oltean Date: Sun Apr 28 21:45:54 2019 +0300 net: dsa: Add more convenient functions for installing port VLANs This hides the need to perform a two-phase transaction and construct a switchdev_obj_port_vlan struct. Call graph (including a function that will be introduced in a follow-up patch) looks like this now (same for the *_vlan_del function): dsa_slave_vlan_rx_add_vid dsa_port_setup_8021q_tagging | | | | | +-------------+ | | v v dsa_port_vid_add dsa_slave_port_obj_add | | +-------+ +-------+ | | v v dsa_port_vlan_add Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit e74f014eb4ceeeefe4e5058daac705422eecb683 Author: Vladimir Oltean Date: Sun Apr 28 21:45:53 2019 +0300 net: dsa: b53: Use vlan_filtering property from dsa_switch While possible (and safe) to use the newly introduced dsa_port_is_vlan_filtering helper, fabricating a dsa_port pointer is a bit awkward, so simply retrieve this from the dsa_switch structure. Signed-off-by: Vladimir Oltean Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 864cd7b05dec190c7331a59c899749dbe940ecad Author: Vladimir Oltean Date: Sun Apr 28 21:45:52 2019 +0300 net: dsa: b53: Let DSA call .port_vlan_filtering only when necessary Since DSA has recently learned to treat better with drivers that set vlan_filtering_is_global, doing this is no longer required. Signed-off-by: Vladimir Oltean Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit ec9121e7d2871618b8c297a4fe6250714411f61d Author: Vladimir Oltean Date: Sun Apr 28 21:45:51 2019 +0300 net: dsa: Skip calling .port_vlan_filtering on no change Even if VLAN filtering is global, DSA will call this callback once per each port. Drivers should not have to compare the global state with the requested change. So let DSA do it. Signed-off-by: Vladimir Oltean Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 2a1305515bf4387bb21e2624c473fc26d846dcbd Author: Vladimir Oltean Date: Sun Apr 28 21:45:50 2019 +0300 net: dsa: mt7530: Use the DSA vlan_filtering helper function This was recently introduced, so keeping state inside the driver is no longer necessary. Signed-off-by: Vladimir Oltean Suggested-by: Andrew Lunn Reviewed-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit cf2d45f5ba9a730df6ec190e0345cecde80b1d8b Author: Vladimir Oltean Date: Sun Apr 28 21:45:49 2019 +0300 net: dsa: Add helper function to retrieve VLAN awareness setting Since different types of hardware may or may not support this setting per-port, DSA keeps it either in dsa_switch or in dsa_port. While drivers may know the characteristics of their hardware and retrieve it from the correct place without the need of helpers, it is cumbersone to find out an unambigous answer from generic DSA code. Signed-off-by: Vladimir Oltean Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 145746765f06a3dbc7869c81d0165b3ab96f935a Author: Vladimir Oltean Date: Sun Apr 28 21:45:48 2019 +0300 net: dsa: Keep the vlan_filtering setting in dsa_switch if it's global The current behavior is not as obvious as one would assume (which is that, if the driver set vlan_filtering_is_global = 1, then checking any dp->vlan_filtering would yield the same result). Only the ports which are actively enslaved into a bridge would have vlan_filtering set. This makes it tricky for drivers to check what the global state is. So fix this and make the struct dsa_switch hold this global setting. Signed-off-by: Vladimir Oltean Signed-off-by: David S. Miller commit e3ee07d14fac20ce12e93a72048fa6fd51348826 Author: Vladimir Oltean Date: Sun Apr 28 21:45:47 2019 +0300 net: dsa: mt7530: Let DSA handle the unsetting of vlan_filtering The driver, recognizing that the .port_vlan_filtering callback was never coming after the port left its parent bridge, decided to take that duty in its own hands. DSA now takes care of this condition, so fix that. Signed-off-by: Vladimir Oltean Reviewed-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit d371b7c92d190448f3ccbf082c90bf929285f648 Author: Vladimir Oltean Date: Sun Apr 28 21:45:46 2019 +0300 net: dsa: Unset vlan_filtering when ports leave the bridge When ports are standalone (after they left the bridge), they should have no VLAN filtering semantics (they should pass all traffic to the CPU). Currently this is not true for switchdev drivers, because the bridge "forgets" to unset that. Normally one would think that doing this at the bridge layer would be a better idea, i.e. call br_vlan_filter_toggle() from br_del_if(), similar to how nbp_vlan_init() is called from br_add_if(). However what complicates that approach, and makes this one preferable, is the fact that for the bridge core, vlan_filtering is a per-bridge setting, whereas for switchdev/DSA it is per-port. Also there are switches where the setting is per the entire device, and unsetting vlan_filtering one by one, for each leaving port, would not be possible from the bridge core without a certain level of awareness. So do this in DSA and let drivers be unaware of it. Signed-off-by: Vladimir Oltean Reviewed-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 7228b23e68f79d96141976924983296600dc1346 Author: Vladimir Oltean Date: Sun Apr 28 21:45:45 2019 +0300 net: dsa: b53: Let DSA handle mismatched VLAN filtering settings The DSA core is now able to do this check prior to calling the .port_vlan_filtering callback, so tell it that VLAN filtering is global for this particular hardware. Signed-off-by: Vladimir Oltean Suggested-by: Florian Fainelli Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 8f5d16f638b9a1adf544a7f8cfd11ac1c01c6e25 Author: Vladimir Oltean Date: Sun Apr 28 21:45:44 2019 +0300 net: dsa: Be aware of switches where VLAN filtering is a global setting On some switches, the action of whether to parse VLAN frame headers and use that information for ingress admission is configurable, but not per port. Such is the case for the Broadcom BCM53xx and the NXP SJA1105 families, for example. In that case, DSA can prevent the bridge core from trying to apply different VLAN filtering settings on net devices that belong to the same switch. Signed-off-by: Vladimir Oltean Suggested-by: Florian Fainelli Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 33162e9a0590f16e1b21be764caae517e2bb310c Author: Vladimir Oltean Date: Sun Apr 28 21:45:43 2019 +0300 net: dsa: Store vlan_filtering as a property of dsa_port This allows drivers to query the VLAN setting imposed by the bridge driver directly from DSA, instead of keeping their own state based on the .port_vlan_filtering callback. Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 85478d73c911e3991c14c6d88b91b77455d2722d Author: Vladimir Oltean Date: Sun Apr 28 21:45:42 2019 +0300 net: dsa: Fix pharse -> phase typo Signed-off-by: Vladimir Oltean Reviewed-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 32eeb5614d3bf166e84fe69bb5f3a51a48cac7a1 Author: YueHaibing Date: Fri Mar 29 23:44:56 2019 +0800 ocxl: remove set but not used variables 'tid' and 'lpid' Fixes gcc '-Wunused-but-set-variable' warning: drivers/misc/ocxl/link.c: In function 'xsl_fault_handler': drivers/misc/ocxl/link.c:187:17: warning: variable 'tid' set but not used drivers/misc/ocxl/link.c:187:6: warning: variable 'lpid' set but not used They are never used and can be removed. Signed-off-by: YueHaibing Reviewed-by: Mukesh Ojha Acked-by: Andrew Donnellan Acked-by: Frederic Barrat Signed-off-by: Michael Ellerman commit a5ae043de7678f189303559782f6057078459a41 Author: Mathieu Malaterre Date: Wed Mar 13 21:00:30 2019 +0100 powerpc/64s: Remove 'dummy_copy_buffer' In commit 2bf1071a8d50 ("powerpc/64s: Remove POWER9 DD1 support") the function __switch_to remove usage for 'dummy_copy_buffer'. Since it is not used anywhere else, remove it completely. This remove the following warning: arch/powerpc/kernel/process.c:1156:17: error: 'dummy_copy_buffer' defined but not used Suggested-by: Christophe Leroy Signed-off-by: Mathieu Malaterre Signed-off-by: Michael Ellerman commit 30df16b93b25fe345e4c5d4e9c789d3f4f337b72 Author: Tobias Klausmann Date: Thu Mar 28 14:17:31 2019 +0100 drm/nouveau/nouveau: forward error generated while resuming objects tree On a failed resume we may experience unrecoverable errors. Plumb the error code through to actually let the driver fail. On a reverse-prime setup this helps the drm subsystem to at least recover the integrated gpu. This can especially happen with secboot timing out, leaving the hardware in a non-functioning state. Signed-off-by: Tobias Klausmann Signed-off-by: Ben Skeggs commit a2f07d4c1e88d4250b5d1d3b54efcdb3d80f11da Author: Colin Ian King Date: Thu Apr 18 17:53:45 2019 +0100 drm/nouveau/fb/ramgk104: fix spelling mistake "sucessfully" -> "successfully" There is a spelling mistake in a nvkm_debug message. Fix it. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Signed-off-by: Ben Skeggs commit 342406e4fbba9a174125fbfe6aeac3d64ef90f76 Author: Lyude Paul Date: Tue Apr 9 16:23:30 2019 -0400 drm/nouveau/i2c: Disable i2c bus access after ->fini() For a while, we've had the problem of i2c bus access not grabbing a runtime PM ref when it's being used in userspace by i2c-dev, resulting in nouveau spamming the kernel log with errors if anything attempts to access the i2c bus while the GPU is in runtime suspend. An example: [ 130.078386] nouveau 0000:01:00.0: i2c: aux 000d: begin idle timeout ffffffff Since the GPU is in runtime suspend, the MMIO region that the i2c bus is on isn't accessible. On x86, the standard behavior for accessing an unavailable MMIO region is to just return ~0. Except, that turned out to be a lie. While computers with a clean concious will return ~0 in this scenario, some machines will actually completely hang a CPU on certian bad MMIO accesses. This was witnessed with someone's Lenovo ThinkPad P50, where sensors-detect attempting to access the i2c bus while the GPU was suspended would result in a CPU hang: CPU: 5 PID: 12438 Comm: sensors-detect Not tainted 5.0.0-0.rc4.git3.1.fc30.x86_64 #1 Hardware name: LENOVO 20EQS64N17/20EQS64N17, BIOS N1EET74W (1.47 ) 11/21/2017 RIP: 0010:ioread32+0x2b/0x30 Code: 81 ff ff ff 03 00 77 20 48 81 ff 00 00 01 00 76 05 0f b7 d7 ed c3 48 c7 c6 e1 0c 36 96 e8 2d ff ff ff b8 ff ff ff ff c3 8b 07 0f 1f 40 00 49 89 f0 48 81 fe ff ff 03 00 76 04 40 88 3e c3 48 RSP: 0018:ffffaac3c5007b48 EFLAGS: 00000292 ORIG_RAX: ffffffffffffff13 RAX: 0000000001111000 RBX: 0000000001111000 RCX: 0000043017a97186 RDX: 0000000000000aaa RSI: 0000000000000005 RDI: ffffaac3c400e4e4 RBP: ffff9e6443902c00 R08: ffffaac3c400e4e4 R09: ffffaac3c5007be7 R10: 0000000000000004 R11: 0000000000000001 R12: ffff9e6445dd0000 R13: 000000000000e4e4 R14: 00000000000003c4 R15: 0000000000000000 FS: 00007f253155a740(0000) GS:ffff9e644f600000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00005630d1500358 CR3: 0000000417c44006 CR4: 00000000003606e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: g94_i2c_aux_xfer+0x326/0x850 [nouveau] nvkm_i2c_aux_i2c_xfer+0x9e/0x140 [nouveau] __i2c_transfer+0x14b/0x620 i2c_smbus_xfer_emulated+0x159/0x680 ? _raw_spin_unlock_irqrestore+0x1/0x60 ? rt_mutex_slowlock.constprop.0+0x13d/0x1e0 ? __lock_is_held+0x59/0xa0 __i2c_smbus_xfer+0x138/0x5a0 i2c_smbus_xfer+0x4f/0x80 i2cdev_ioctl_smbus+0x162/0x2d0 [i2c_dev] i2cdev_ioctl+0x1db/0x2c0 [i2c_dev] do_vfs_ioctl+0x408/0x750 ksys_ioctl+0x5e/0x90 __x64_sys_ioctl+0x16/0x20 do_syscall_64+0x60/0x1e0 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x7f25317f546b Code: 0f 1e fa 48 8b 05 1d da 0c 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d ed d9 0c 00 f7 d8 64 89 01 48 RSP: 002b:00007ffc88caab68 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 RAX: ffffffffffffffda RBX: 00005630d0fe7260 RCX: 00007f25317f546b RDX: 00005630d1598e80 RSI: 0000000000000720 RDI: 0000000000000003 RBP: 00005630d155b968 R08: 0000000000000001 R09: 00005630d15a1da0 R10: 0000000000000070 R11: 0000000000000246 R12: 00005630d1598e80 R13: 00005630d12f3d28 R14: 0000000000000720 R15: 00005630d12f3ce0 watchdog: BUG: soft lockup - CPU#5 stuck for 23s! [sensors-detect:12438] Yikes! While I wanted to try to make it so that accessing an i2c bus on nouveau would wake up the GPU as needed, airlied pointed out that pretty much any usecase for userspace accessing an i2c bus on a GPU (mainly for the DDC brightness control that some displays have) is going to only be useful while there's at least one display enabled on the GPU anyway, and the GPU never sleeps while there's displays running. Since teaching the i2c bus to wake up the GPU on userspace accesses is a good deal more difficult than it might seem, mostly due to the fact that we have to use the i2c bus during runtime resume of the GPU, we instead opt for the easiest solution: don't let userspace access i2c busses on the GPU at all while it's in runtime suspend. Changes since v1: * Also disable i2c busses that run over DP AUX Signed-off-by: Lyude Paul Cc: stable@vger.kernel.org Signed-off-by: Ben Skeggs commit 2fbcb5653fc0f548454446ba21769faa48f7711b Author: Bjorn Helgaas Date: Thu Apr 4 08:49:43 2019 -0500 drm/nouveau: Remove duplicate ACPI_VIDEO_NOTIFY_PROBE definition Commit 3a6536c51d5d ("drm/nouveau: Intercept ACPI_VIDEO_NOTIFY_PROBE") added a definition of ACPI_VIDEO_NOTIFY_PROBE because didn't supply one. Later, commit eff4a751cce5 ("ACPI / video: Move ACPI_VIDEO_NOTIFY_* defines to acpi/video.h") moved ACPI_VIDEO_NOTIFY_PROBE and other definitions to , so the copy in nouveau_display.c is now unnecessary. Remove the unnecessary definition from nouveau_display.c. Signed-off-by: Bjorn Helgaas CC: Hans de Goede Acked-by: Hans de Goede Signed-off-by: Ben Skeggs commit 15516bf9abaa41421a6ded79a5a2fee86f9594e5 Author: Jon Derrick Date: Fri Mar 15 18:05:18 2019 -0600 drm/nouveau/mmu: qualify vmm during dtor If the BAR initialization failed it may leave the vmm structure in an unitialized state, leading to a null-pointer-dereference when the vmm is dereferenced during teardown. Signed-off-by: Jon Derrick Signed-off-by: Ben Skeggs commit 12e08beb32d64b6070b718630490db83dd321c8c Author: Jon Derrick Date: Fri Mar 15 18:05:17 2019 -0600 drm/nouveau/bar/gf100: ensure BAR is mapped If the BAR is zero size, it indicates it was never successfully mapped. Ensure that the BAR is valid during initialization before attempting to use it. Signed-off-by: Jon Derrick Signed-off-by: Ben Skeggs commit f10b83de1fd49216a4c657816f48001437e4bdd5 Author: Jon Derrick Date: Fri Mar 15 18:05:16 2019 -0600 drm/nouveau/bar/nv50: ensure BAR is mapped If the BAR is zero size, it indicates it was never successfully mapped. Ensure that the BAR is valid during initialization before attempting to use it. Signed-off-by: Jon Derrick Signed-off-by: Ben Skeggs commit 307a312df9c43fdea286ad17f748aaf777cc434a Author: Jon Derrick Date: Fri Mar 15 18:05:15 2019 -0600 drm/nouveau/bar/nv50: check bar1 vmm return value Check bar1's new vmm creation return value for errors. Signed-off-by: Jon Derrick Signed-off-by: Ben Skeggs commit 7e8039795a80bdf1418964b9cabef6168bc5d9a4 Author: Tobin C. Harding Date: Tue Apr 30 11:09:23 2019 +1000 powerpc/cacheinfo: Fix kobject memleak Currently error return from kobject_init_and_add() is not followed by a call to kobject_put(). This means there is a memory leak. Add call to kobject_put() in error path of kobject_init_and_add(). Signed-off-by: Tobin C. Harding Reviewed-by: Greg Kroah-Hartman Reviewed-by: Tyrel Datwyler Signed-off-by: Michael Ellerman commit 33dda8c32714c1a8f318450af4d1f9f123e2ed24 Author: Nick Desaulniers Date: Tue Apr 23 14:11:14 2019 -0700 powerpc/vdso: Drop unnecessary cc-ldoption Towards the goal of removing cc-ldoption, it seems that --hash-style= was added to binutils 2.17.50.0.2 in 2006. The minimal required version of binutils for the kernel according to Documentation/process/changes.rst is 2.20. Suggested-by: Masahiro Yamada Signed-off-by: Nick Desaulniers Reviewed-by: Nicholas Piggin Signed-off-by: Michael Ellerman commit 12adb7a013e318de553ccee4a006a718667972b3 Author: Christoph Hellwig Date: Tue Apr 30 13:56:16 2019 -0400 block: remove the unused blk_queue_dma_pad function Reviewed-by: Chaitanya Kulkarni Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit 3dcf60bcb603f56361abb364a4cd2f69677453f0 Author: Christoph Hellwig Date: Tue Apr 30 14:42:43 2019 -0400 block: add SPDX tags to block layer files missing licensing information Various block layer files do not have any licensing information at all. Add SPDX tags for the default kernel GPLv2 license to those. Reviewed-by: Chaitanya Kulkarni Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit 6353599813158c02227d8086acb20e07f3306452 Author: Christoph Hellwig Date: Tue Apr 30 14:42:42 2019 -0400 block: add a SPDX tag to blk-mq-rdma.h This file has no copyright notice, but was added as part of a commit adding another file using the default kernel GPLv2 license. Add a matching SPDX tag. Reviewed-by: Chaitanya Kulkarni Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit 9fcd030baa36f75721ddc70f7d932983243fff25 Author: Christoph Hellwig Date: Tue Apr 30 14:42:41 2019 -0400 sed-opal.h: remove redundant licence boilerplate The file already has the correct SPDX header. Reviewed-by: Chaitanya Kulkarni Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit a497ee34a45d58e9b978d0fa5c4b25d4813eb350 Author: Christoph Hellwig Date: Tue Apr 30 14:42:40 2019 -0400 block: switch all files cleared marked as GPLv2 or later to SPDX tags All these files have some form of the usual GPLv2 or later boilerplate. Switch them to use SPDX tags instead. Reviewed-by: Chaitanya Kulkarni Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit 8c16567d867ed3185a67d8560e051090486d3ff1 Author: Christoph Hellwig Date: Tue Apr 30 14:42:39 2019 -0400 block: switch all files cleared marked as GPLv2 to SPDX tags All these files have some form of the usual GPLv2 boilerplate. Switch them to use SPDX tags instead. Reviewed-by: Chaitanya Kulkarni Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit 619ae03e922b65a1a5d4269ceae1e9e13a058d6b Author: Casey Schaufler Date: Tue Apr 30 14:13:32 2019 -0700 Smack: Fix kbuild reported build error The variable sap is defined under ifdef, but a recently added use of the variable was not. Put that use under ifdef as well. Reported-by: kbuild test robot Signed-off-by: Casey Schaufler commit 940bc471780b004a5277c1931f52af363c2fc9da Author: Martin Wilck Date: Mon Apr 29 11:48:15 2019 +0200 dm mpath: always free attached_handler_name in parse_path() Commit b592211c33f7 ("dm mpath: fix attached_handler_name leak and dangling hw_handler_name pointer") fixed a memory leak for the case where setup_scsi_dh() returns failure. But setup_scsi_dh may return success and not "use" attached_handler_name if the retain_attached_hwhandler flag is not set on the map. As setup_scsi_sh properly "steals" the pointer by nullifying it, freeing it unconditionally in parse_path() is safe. Fixes: b592211c33f7 ("dm mpath: fix attached_handler_name leak and dangling hw_handler_name pointer") Cc: stable@vger.kernel.org Reported-by: Yufen Yu Signed-off-by: Martin Wilck Signed-off-by: Mike Snitzer commit 8e890c1ab1b1e0f765cd8da82c4dee011698a5e8 Author: Helen Koike Date: Fri Apr 26 17:09:55 2019 -0300 dm init: fix max devices/targets checks dm-init should allow up to DM_MAX_{DEVICES,TARGETS} for devices/targets, and not DM_MAX_{DEVICES,TARGETS} - 1. Fix the checks and also fix the error message when the number of devices is surpassed. Fixes: 6bbc923dfcf57d ("dm: add support to directly boot to a mapped device") Cc: stable@vger.kernel.org Signed-off-by: Helen Koike Signed-off-by: Mike Snitzer commit e4f3fabd67480bf2ad3f71aa6126ffb8bb7dc712 Author: Bryan Gurney Date: Thu Mar 7 15:42:39 2019 -0500 dm: add dust target Add the dm-dust target, which simulates the behavior of bad sectors at arbitrary locations, and the ability to enable the emulation of the read failures at an arbitrary time. This target behaves similarly to a linear target. At a given time, the user can send a message to the target to start failing read requests on specific blocks. When the failure behavior is enabled, reads of blocks configured "bad" will fail with EIO. Writes of blocks configured "bad" will result in the following: 1. Remove the block from the "bad block list". 2. Successfully complete the write. After this point, the block will successfully contain the written data, and will service reads and writes normally. This emulates the behavior of a "remapped sector" on a hard disk drive. dm-dust provides logging of which blocks have been added or removed to the "bad block list", as well as logging when a block has been removed from the bad block list. These messages can be used alongside the messages from the driver using a dm-dust device to analyze the driver's behavior when a read fails at a given time. (This logging can be reduced via a "quiet" mode, if desired.) NOTE: If the block size is larger than 512 bytes, only the first sector of each "dust block" is detected. Placing a limiting layer above a dust target, to limit the minimum I/O size to the dust block size, will ensure proper emulation of the given large block size. Signed-off-by: Bryan Gurney Co-developed-by: Joe Shimkus Co-developed-by: John Dorminy Co-developed-by: John Pittman Co-developed-by: Thomas Jaskiewicz Signed-off-by: Mike Snitzer commit e9c16c78503dd0482b876761d60a3d2f50ac4d86 Author: Paolo Bonzini Date: Tue Apr 30 22:07:26 2019 +0200 KVM: x86: use direct accessors for RIP and RSP Use specific inline functions for RIP and RSP instead of going through kvm_register_read and kvm_register_write, which are quite a mouthful. kvm_rsp_read and kvm_rsp_write did not exist, so add them. Signed-off-by: Paolo Bonzini commit 2b3eaf815ca930b1dbc11fb1ebd773e510947c0f Author: Sean Christopherson Date: Tue Apr 30 10:36:19 2019 -0700 KVM: VMX: Use accessors for GPRs outside of dedicated caching logic ... now that there is no overhead when using dedicated accessors. Opportunistically remove a bogus "FIXME" in handle_rdmsr() regarding the upper 32 bits of RAX and RDX. Zeroing the upper 32 bits is architecturally correct as 32-bit writes in 64-bit mode unconditionally clear the upper 32 bits. Signed-off-by: Sean Christopherson Signed-off-by: Paolo Bonzini commit de3cd117ed2f6cb3317212f242a87ffca56c27ac Author: Sean Christopherson Date: Tue Apr 30 10:36:17 2019 -0700 KVM: x86: Omit caching logic for always-available GPRs Except for RSP and RIP, which are held in VMX's VMCS, GPRs are always treated "available and dirtly" on both VMX and SVM, i.e. are unconditionally loaded/saved immediately before/after VM-Enter/VM-Exit. Eliminating the unnecessary caching code reduces the size of KVM by a non-trivial amount, much of which comes from the most common code paths. E.g. on x86_64, kvm_emulate_cpuid() is reduced from 342 to 182 bytes and kvm_emulate_hypercall() from 1362 to 1143, with the total size of KVM dropping by ~1000 bytes. With CONFIG_RETPOLINE=y, the numbers are even more pronounced, e.g.: 353->182, 1418->1172 and well over 2000 bytes. Signed-off-by: Sean Christopherson Signed-off-by: Paolo Bonzini commit 0c55671f84fffe591e8435c93a8c83286fd6b8eb Author: KarimAllah Ahmed Date: Thu Jan 31 21:24:44 2019 +0100 kvm, x86: Properly check whether a pfn is an MMIO or not pfn_valid check is not sufficient because it only checks if a page has a struct page or not, if "mem=" was passed to the kernel some valid pages won't have a struct page. This means that if guests were assigned valid memory that lies after the mem= boundary it will be passed uncached to the guest no matter what the guest caching attributes are for this memory. Introduce a new function e820__mapped_raw_any which is equivalent to e820__mapped_any but uses the original e820 unmodified and use it to identify real *RAM*. Signed-off-by: KarimAllah Ahmed Signed-off-by: Paolo Bonzini commit e0bf2665ca26c1f6d6909de29bd382e7a5ee41e7 Author: KarimAllah Ahmed Date: Thu Jan 31 21:24:43 2019 +0100 KVM/nVMX: Use page_address_valid in a few more locations Use page_address_valid in a few more locations that is already checking for a page aligned address that does not cross the maximum physical address. Signed-off-by: KarimAllah Ahmed Signed-off-by: Paolo Bonzini commit dee9c0493108b36e89d289c8fd6f4c90321d0d5e Author: KarimAllah Ahmed Date: Thu Jan 31 21:24:42 2019 +0100 KVM/nVMX: Use kvm_vcpu_map for accessing the enlightened VMCS Use kvm_vcpu_map for accessing the enlightened VMCS since using kvm_vcpu_gpa_to_page() and kmap() will only work for guest memory that has a "struct page". Signed-off-by: KarimAllah Ahmed Reviewed-by: Konrad Rzeszutek Wilk Signed-off-by: Paolo Bonzini commit 8892530598dd6333c2ca6316e486708824d587ea Author: KarimAllah Ahmed Date: Thu Jan 31 21:24:41 2019 +0100 KVM/nVMX: Use kvm_vcpu_map for accessing the shadow VMCS Use kvm_vcpu_map for accessing the shadow VMCS since using kvm_vcpu_gpa_to_page() and kmap() will only work for guest memory that has a "struct page". Signed-off-by: KarimAllah Ahmed Reviewed-by: Konrad Rzessutek Wilk Signed-off-by: Paolo Bonzini commit 8c5fbf1a723107814c20c3f4d6343ab9d694a705 Author: KarimAllah Ahmed Date: Thu Jan 31 21:24:40 2019 +0100 KVM/nSVM: Use the new mapping API for mapping guest memory Use the new mapping API for mapping guest memory to avoid depending on "struct page". Signed-off-by: KarimAllah Ahmed Reviewed-by: Konrad Rzeszutek Wilk Signed-off-by: Paolo Bonzini commit 42e35f8072c339cbdcaf4de95dc6e1815c2797cf Author: KarimAllah Ahmed Date: Thu Jan 31 21:24:39 2019 +0100 KVM/X86: Use kvm_vcpu_map in emulator_cmpxchg_emulated Use kvm_vcpu_map in emulator_cmpxchg_emulated since using kvm_vcpu_gpa_to_page() and kmap() will only work for guest memory that has a "struct page". Signed-off-by: KarimAllah Ahmed Reviewed-by: Konrad Rzeszutek Wilk Signed-off-by: Paolo Bonzini commit 3278e0492554895509530d493fbfa9a9f1b27a41 Author: KarimAllah Ahmed Date: Thu Jan 31 21:24:38 2019 +0100 KVM/nVMX: Use kvm_vcpu_map when mapping the posted interrupt descriptor table Use kvm_vcpu_map when mapping the posted interrupt descriptor table since using kvm_vcpu_gpa_to_page() and kmap() will only work for guest memory that has a "struct page". One additional semantic change is that the virtual host mapping lifecycle has changed a bit. It now has the same lifetime of the pinning of the interrupt descriptor table page on the host side. Signed-off-by: KarimAllah Ahmed Reviewed-by: Konrad Rzeszutek Wilk Signed-off-by: Paolo Bonzini commit 96c66e87deeeb3cc78a3b82a1de8e365eec206c1 Author: KarimAllah Ahmed Date: Thu Jan 31 21:24:37 2019 +0100 KVM/nVMX: Use kvm_vcpu_map when mapping the virtual APIC page Use kvm_vcpu_map when mapping the virtual APIC page since using kvm_vcpu_gpa_to_page() and kmap() will only work for guest memory that has a "struct page". One additional semantic change is that the virtual host mapping lifecycle has changed a bit. It now has the same lifetime of the pinning of the virtual APIC page on the host side. Signed-off-by: KarimAllah Ahmed Reviewed-by: Konrad Rzeszutek Wilk Signed-off-by: Paolo Bonzini commit 31f0b6c4ba7da19192492b988f06f27bbe259082 Author: KarimAllah Ahmed Date: Thu Jan 31 21:24:36 2019 +0100 KVM/nVMX: Use kvm_vcpu_map when mapping the L1 MSR bitmap Use kvm_vcpu_map when mapping the L1 MSR bitmap since using kvm_vcpu_gpa_to_page() and kmap() will only work for guest memory that has a "struct page". Signed-off-by: KarimAllah Ahmed Signed-off-by: Paolo Bonzini commit b146b839282ca98927a109d6bb0351c7380b70e4 Author: KarimAllah Ahmed Date: Thu Jan 31 21:24:35 2019 +0100 X86/nVMX: handle_vmptrld: Use kvm_vcpu_map when copying VMCS12 from guest memory Use kvm_vcpu_map to the map the VMCS12 from guest memory because kvm_vcpu_gpa_to_page() and kmap() will only work for guest memory that has a "struct page". Signed-off-by: KarimAllah Ahmed Reviewed-by: Konrad Rzeszutek Wilk Signed-off-by: Paolo Bonzini commit e45adf665a53df0db37f784ed87c6b57ddd81885 Author: KarimAllah Ahmed Date: Thu Jan 31 21:24:34 2019 +0100 KVM: Introduce a new guest mapping API In KVM, specially for nested guests, there is a dominant pattern of: => map guest memory -> do_something -> unmap guest memory In addition to all this unnecessarily noise in the code due to boiler plate code, most of the time the mapping function does not properly handle memory that is not backed by "struct page". This new guest mapping API encapsulate most of this boiler plate code and also handles guest memory that is not backed by "struct page". The current implementation of this API is using memremap for memory that is not backed by a "struct page" which would lead to a huge slow-down if it was used for high-frequency mapping operations. The API does not have any effect on current setups where guest memory is backed by a "struct page". Further patches are going to also introduce a pfn-cache which would significantly improve the performance of the memremap case. Signed-off-by: KarimAllah Ahmed Reviewed-by: Konrad Rzeszutek Wilk Signed-off-by: Paolo Bonzini commit bd53cb35a3e9adb73a834a36586e9ad80e877767 Author: Filippo Sironi Date: Thu Jan 31 21:24:33 2019 +0100 X86/KVM: Handle PFNs outside of kernel reach when touching GPTEs cmpxchg_gpte() calls get_user_pages_fast() to retrieve the number of pages and the respective struct page to map in the kernel virtual address space. This doesn't work if get_user_pages_fast() is invoked with a userspace virtual address that's backed by PFNs outside of kernel reach (e.g., when limiting the kernel memory with mem= in the command line and using /dev/mem to map memory). If get_user_pages_fast() fails, look up the VMA that back the userspace virtual address, compute the PFN and the physical address, and map it in the kernel virtual address space with memremap(). Signed-off-by: Filippo Sironi Signed-off-by: KarimAllah Ahmed Signed-off-by: Paolo Bonzini commit 3d5f6beb74a00bcc308612ee007e3e0c6126c397 Author: KarimAllah Ahmed Date: Thu Jan 31 21:24:32 2019 +0100 X86/nVMX: Update the PML table without mapping and unmapping the page Update the PML table without mapping and unmapping the page. This also avoids using kvm_vcpu_gpa_to_page(..) which assumes that there is a "struct page" for guest memory. As a side-effect of using kvm_write_guest_page the page is also properly marked as dirty. Signed-off-by: KarimAllah Ahmed Reviewed-by: David Hildenbrand Reviewed-by: Konrad Rzeszutek Wilk Signed-off-by: Paolo Bonzini commit 2e408936b6de5a7540880ae40bc7ce43102053ba Author: KarimAllah Ahmed Date: Thu Jan 31 21:24:31 2019 +0100 X86/nVMX: handle_vmon: Read 4 bytes from guest memory Read the data directly from guest memory instead of the map->read->unmap sequence. This also avoids using kvm_vcpu_gpa_to_page() and kmap() which assumes that there is a "struct page" for guest memory. Suggested-by: Jim Mattson Signed-off-by: KarimAllah Ahmed Reviewed-by: Jim Mattson Reviewed-by: David Hildenbrand Reviewed-by: Konrad Rzeszutek Wilk Signed-off-by: Paolo Bonzini commit 191c8137a93989825f0e9f78a198367dde677216 Author: Borislav Petkov Date: Thu Apr 18 18:32:50 2019 +0200 x86/kvm: Implement HWCR support The hardware configuration register has some useful bits which can be used by guests. Implement McStatusWrEn which can be used by guests when injecting MCEs with the in-kernel mce-inject module. For that, we need to set bit 18 - McStatusWrEn - first, before writing the MCi_STATUS registers (otherwise we #GP). Add the required machinery to do so. Signed-off-by: Borislav Petkov Cc: Jim Mattson Cc: Joerg Roedel Cc: KVM Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Sean Christopherson Cc: Tom Lendacky Cc: Tony Luck Cc: Yazen Ghannam Signed-off-by: Paolo Bonzini commit 19e38336d71d22e27b60e70334ad572d4e3d0042 Author: Sean Christopherson Date: Thu Apr 18 08:07:40 2019 -0700 KVM: VMX: Include architectural defs header in capabilities.h The capabilities header depends on asm/vmx.h but doesn't explicitly include said file. This currently doesn't cause problems as all users of capbilities.h first include asm/vmx.h, but the issue often results in build errors if someone starts moving things around the VMX files. Fixes: 3077c1910882 ("KVM: VMX: Move capabilities structs and helpers to dedicated file") Signed-off-by: Sean Christopherson Signed-off-by: Paolo Bonzini commit d6a85c322348aac02eeb11681c1f623145e66697 Author: Dan Carpenter Date: Wed Apr 24 13:15:08 2019 +0300 KVM: vmx: clean up some debug output Smatch complains about this: arch/x86/kvm/vmx/vmx.c:5730 dump_vmcs() warn: KERN_* level not at start of string The code should be using pr_cont() instead of pr_err(). Fixes: 9d609649bb29 ("KVM: vmx: print more APICv fields in dump_vmcs") Signed-off-by: Dan Carpenter Signed-off-by: Paolo Bonzini commit b8b002209c061273fd1ef7bb3c3c32301623a282 Author: Jiang Biao Date: Tue Apr 23 19:40:30 2019 +0800 kvm_main: fix some comments is_dirty has been renamed to flush, but the comment for it is outdated. And the description about @flush parameter for kvm_clear_dirty_log_protect() is missing, add it in this patch as well. Signed-off-by: Jiang Biao Reviewed-by: Cornelia Huck Signed-off-by: Paolo Bonzini commit 65c4189de8c1d995f6bc2cc96b22206405466b53 Author: Paolo Bonzini Date: Wed Apr 17 15:28:44 2019 +0200 KVM: fix KVM_CLEAR_DIRTY_LOG for memory slots of unaligned size If a memory slot's size is not a multiple of 64 pages (256K), then the KVM_CLEAR_DIRTY_LOG API is unusable: clearing the final 64 pages either requires the requested page range to go beyond memslot->npages, or requires log->num_pages to be unaligned, and kvm_clear_dirty_log_protect requires log->num_pages to be both in range and aligned. To allow this case, allow log->num_pages not to be a multiple of 64 if it ends exactly on the last page of the slot. Reported-by: Peter Xu Fixes: 98938aa8edd6 ("KVM: validate userspace input in kvm_clear_dirty_log_protect()", 2019-01-02) Signed-off-by: Paolo Bonzini commit 0967fa1cd3769207cf74ae84144ce47fec65a317 Author: Sean Christopherson Date: Tue Apr 16 13:32:48 2019 -0700 KVM: VMX: Skip delta_tsc shift-and-divide if the dividend is zero Ten percent of nothin' is... let me do the math here. Nothin' into nothin', carry the nothin'... Cc: Wanpeng Li Reviewed-by: Liran Alon Signed-off-by: Sean Christopherson Signed-off-by: Paolo Bonzini commit 4ca88b3f86cd03deecd48ca9880a7c2e7c6fb788 Author: Sean Christopherson Date: Tue Apr 16 13:32:47 2019 -0700 KVM: lapic: Check for a pending timer intr prior to start_hv_timer() Checking for a pending non-periodic interrupt in start_hv_timer() leads to restart_apic_timer() making an unnecessary call to start_sw_timer() due to start_hv_timer() returning false. Alternatively, start_hv_timer() could return %true when there is a pending non-periodic interrupt, but that approach is less intuitive, i.e. would require a beefy comment to explain an otherwise simple check. Cc: Liran Alon Cc: Wanpeng Li Suggested-by: Liran Alon Suggested-by: Paolo Bonzini Signed-off-by: Sean Christopherson Signed-off-by: Paolo Bonzini commit f99279825ee30b829da9d3b7cf0b9d1b9b2596e6 Author: Sean Christopherson Date: Tue Apr 16 13:32:46 2019 -0700 KVM: lapic: Refactor ->set_hv_timer to use an explicit expired param Refactor kvm_x86_ops->set_hv_timer to use an explicit parameter for stating that the timer has expired. Overloading the return value is unnecessarily clever, e.g. can lead to confusion over the proper return value from start_hv_timer() when r==1. Cc: Wanpeng Li Cc: Liran Alon Signed-off-by: Sean Christopherson Signed-off-by: Paolo Bonzini commit f1ba5cfbe47a90f801598a908fd2157bbab2ce1a Author: Sean Christopherson Date: Tue Apr 16 13:32:45 2019 -0700 KVM: lapic: Explicitly cancel the hv timer if it's pre-expired Explicitly call cancel_hv_timer() instead of returning %false to coerce restart_apic_timer() into canceling it by way of start_sw_timer(). Functionally, the existing code is correct in the sense that it doesn't doing anything visibily wrong, e.g. generate spurious interrupts or miss an interrupt. But it's extremely confusing and inefficient, e.g. there are multiple extraneous calls to apic_timer_expired() that effectively get dropped due to @timer_pending being %true. Cc: Wanpeng Li Cc: Liran Alon Signed-off-by: Sean Christopherson Signed-off-by: Paolo Bonzini commit ee66e453db13d4837a0dcf9d43efa7a88603161b Author: Sean Christopherson Date: Tue Apr 16 13:32:44 2019 -0700 KVM: lapic: Busy wait for timer to expire when using hv_timer ...now that VMX's preemption timer, i.e. the hv_timer, also adjusts its programmed time based on lapic_timer_advance_ns. Without the delay, a guest can see a timer interrupt arrive before the requested time when KVM is using the hv_timer to emulate the guest's interrupt. Fixes: c5ce8235cffa0 ("KVM: VMX: Optimize tscdeadline timer latency") Cc: Cc: Wanpeng Li Reviewed-by: Liran Alon Signed-off-by: Sean Christopherson Signed-off-by: Paolo Bonzini commit 6c6a2ab962af8f197984c45d585814f9839e86d5 Author: Liran Alon Date: Mon Apr 15 18:45:26 2019 +0300 KVM: VMX: Nop emulation of MSR_IA32_POWER_CTL Since commits 668fffa3f838 ("kvm: better MWAIT emulation for guestsâ€) and 4d5422cea3b6 ("KVM: X86: Provide a capability to disable MWAIT interceptsâ€), KVM was modified to allow an admin to configure certain guests to execute MONITOR/MWAIT inside guest without being intercepted by host. This is useful in case admin wishes to allocate a dedicated logical processor for each vCPU thread. Thus, making it safe for guest to completely control the power-state of the logical processor. The ability to use this new KVM capability was introduced to QEMU by commits 6f131f13e68d ("kvm: support -overcommit cpu-pm=on|offâ€) and 2266d4431132 ("i386/cpu: make -cpu host support monitor/mwaitâ€). However, exposing MONITOR/MWAIT to a Linux guest may cause it's intel_idle kernel module to execute c1e_promotion_disable() which will attempt to RDMSR/WRMSR from/to MSR_IA32_POWER_CTL to manipulate the "C1E Enable" bit. This behaviour was introduced by commit 32e9518005c8 ("intel_idle: export both C1 and C1Eâ€). Becuase KVM doesn't emulate this MSR, running KVM with ignore_msrs=0 will cause the above guest behaviour to raise a #GP which will cause guest to kernel panic. Therefore, add support for nop emulation of MSR_IA32_POWER_CTL to avoid #GP in guest in this scenario. Future commits can optimise emulation further by reflecting guest MSR changes to host MSR to provide guest with the ability to fine-tune the dedicated logical processor power-state. Reviewed-by: Boris Ostrovsky Signed-off-by: Liran Alon Signed-off-by: Paolo Bonzini commit c715eb9fe9027ed118630adb0d59acf36b848d4f Author: Luwei Kang Date: Mon Feb 18 19:26:08 2019 -0500 KVM: x86: Add support of clear Trace_ToPA_PMI status Let guests clear the Intel PT ToPA PMI status (bit 55 of MSR_CORE_PERF_GLOBAL_OVF_CTRL). Signed-off-by: Luwei Kang Signed-off-by: Paolo Bonzini commit 8479e04e7d6b1974629a0f657afa8ec5f17d2e90 Author: Luwei Kang Date: Mon Feb 18 19:26:07 2019 -0500 KVM: x86: Inject PMI for KVM guest Inject a PMI for KVM guest when Intel PT working in Host-Guest mode and Guest ToPA entry memory buffer was completely filled. Signed-off-by: Luwei Kang Signed-off-by: Paolo Bonzini commit 3a1e5e4a2c7a1ec63e6d70a7e921f62bcbb57b85 Author: Radim Krčmář Date: Mon Apr 29 15:25:35 2019 +0200 Revert "KVM: doc: Document the life cycle of a VM and its resources" This reverts commit 919f6cd8bb2fe7151f8aecebc3b3d1ca2567396e. The patch was applied twice. The first commit is eca6be566d47029f945a5f8e1c94d374e31df2ca. Reported-by: Cornelia Huck Signed-off-by: Radim Krčmář Signed-off-by: Paolo Bonzini commit da8f0d97b2a02ebc98eb380d9e59c7fb653d4ad8 Merge: c110ae578ca0 b2d0371d2e37 Author: Paolo Bonzini Date: Tue Apr 30 21:29:14 2019 +0200 Merge tag 'kvm-s390-next-5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into HEAD KVM: s390: Features and fixes for 5.2 - VSIE crypto fixes - new guest features for gen15 - disable halt polling for nested virtualization with overcommit commit fe846979d30576107aa9910e1820fec3c20e62d7 Author: Hillf Danton Date: Tue Apr 30 11:26:08 2019 -0700 xen/arm: Use p2m entry with lock protection A new local variable is introduced for accessing p2m entry with lock protection. Signed-off-by: Hillf Danton Signed-off-by: Stefano Stabellini Reviewed-by: Stefano Stabellini commit 425f1cc2218af96d81dbec092155d436d6037d2c Author: Hillf Danton Date: Tue Apr 30 11:25:00 2019 -0700 xen/arm: Free p2m entry if fail to add it to RB tree Release the newly allocated p2m entry if we detect a duplicate in the RB tree. Signed-off-by: Hillf Danton Signed-off-by: Stefano Stabellini Reviewed-by: Stefano Stabellini commit 0d672fffb447aa1699d76fdacd90dc31eeb66d97 Author: Eddie James Date: Wed Apr 24 11:16:59 2019 -0400 media: dt-bindings: aspeed-video: Add missing memory-region property Missed documenting this property in the initial commit. Signed-off-by: Eddie James Reviewed-by: Rob Herring Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 54b021099e2d20db324f2581cc0f18f9b22aadfa Author: Eddie James Date: Wed Apr 24 11:16:58 2019 -0400 media: platform: Aspeed: Make reserved memory optional Reserved memory doesn't need to be required; system memory would work fine. Signed-off-by: Eddie James Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit b28cf7a9c8d5614e1e979bc6122d3ed8e64ad182 Author: Eddie James Date: Wed Apr 24 11:16:57 2019 -0400 media: platform: Aspeed: Remove use of reset line The reset line is toggled by enabling the clocks, so it's not necessary to manually toggle the reset as well. Signed-off-by: Eddie James Reviewed-by: Joel Stanley Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit b5b5a27bee5884860798ffd0f08e611a3942064b Author: Fabien Dessenne Date: Wed Apr 24 09:25:44 2019 -0400 media: stm32-dcmi: return appropriate error codes during probe During probe, return the provided errors value instead of -ENODEV. This allows the driver to be deferred probed if needed. Signed-off-by: Fabien Dessenne Acked-by: Hugues Fruchet Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit ab3d26500547369c24a6c1c31725fd2841a57d0c Author: Atish Patra Date: Wed Apr 24 14:47:59 2019 -0700 RISC-V: Implement nosmp commandline option. nosmp command line option sets max_cpus to zero. No secondary harts will boot if this is enabled. But present cpu mask will still point to all possible masks. Fix present cpu mask for nosmp usecase. Signed-off-by: Atish Patra Reviewed-by: Christoph Hellwig Signed-off-by: Palmer Dabbelt commit 70114560b2855853126c65cccdc49a33187327d0 Author: Atish Patra Date: Wed Apr 24 14:47:58 2019 -0700 RISC-V: Add RISC-V specific arch_match_cpu_phys_id OF/DT core has a hook for architecture specific logical cpuid to hartid mapping. By implementing this, we can pass the logical cpu id to cpu node parsing functions. Fix the instances where logical cpuid is expected as an argument in of_get_cpu_node. Signed-off-by: Atish Patra Reviewed-by: Christoph Hellwig Reviewed-by: Sudeep Holla Signed-off-by: Palmer Dabbelt commit e3037485c68ec1a299ff41160d8fedbd4abc29b9 Author: Yan-Hsuan Chuang Date: Fri Apr 26 15:17:37 2019 +0300 rtw88: new Realtek 802.11ac driver This is a new mac80211 driver for Realtek 802.11ac wireless network chips. rtw88 now supports RTL8822BE/RTL8822CE now, with basic station mode functionalities. The firmware for both can be found at linux-firmware. https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git For RTL8822BE: rtw88/rtw8822b_fw.bin For RTL8822CE: rtw88/rtw8822c_fw.bin And for now, only PCI buses (RTL8xxxE) are supported. We will add support for USB and SDIO in the future. The bus interface abstraction can be seen in this driver such as hci.h. Most of the hardware setting are the same except for some TRX path or probing setup should be separated. Supported: * Basic STA/AP/ADHOC mode, and TDLS (STA is well tested) Missing feature: * WOW/PNO * USB & SDIO bus (such as RTL8xxxU/RTL8xxxS) * BT coexistence (8822B/8822C are combo ICs) * Multiple interfaces (for now single STA is better supported) * Dynamic hardware calibrations (to improve/stabilize performance) Potential problems: * static calibration spends too much time, and it is painful for driver to leave IDLE state. And slows down associate process. But reload function are under development, will be added soon! * TRX statictics misleading, as we are not reporting status correctly, or say, not reporting for "every" packet. The next patch set should have BT coexistence code since RTL8822B/C are combo ICs, and the driver for BT can be found after Linux Kernel v4.20. So it is better to add it first to make WiFi + BT work concurrently. Although now rtw88 is simple but we are developing more features for it. Even we want to add support for more chips such as RTL8821C/RTL8814B. Finally, rtw88 has many authors, listed alphabetically: Ping-Ke Shih Tzu-En Huang Yan-Hsuan Chuang Reviewed-by: Stanislaw Gruszka Reviewed-by: Brian Norris Tested-by: Brian Norris Signed-off-by: Yan-Hsuan Chuang Signed-off-by: Kalle Valo commit 5f9b4992b722d31226607d611658408cd2c50fd1 Merge: f075b344c6ca b9ef5513c99b Author: James Morris Date: Tue Apr 30 09:06:51 2019 -0700 Merge branch 'smack-for-5.2-b' of https://github.com/cschaufler/next-smack into next-smack Smack: Fix IPv6 handling of 0 secmark (2019-04-03 14:28:38 -0700) commit 632a9f3acd6687376cbb0b178df6048e19cbacc9 Author: Chengguang Xu Date: Tue Apr 30 14:40:10 2019 +0800 quota: check time limit when back out space/inode change When we fail from allocating inode/space, we back out the change we already did. In a special case which has exceeded soft limit by the change, we should also check time limit and reset it properly. Signed-off-by: Chengguang Xu Signed-off-by: Jan Kara commit e823d948b7e53dc982c867ac4ce7877fc0418897 Author: Kefeng Wang Date: Tue Apr 30 09:59:41 2019 -0500 usb: musb: dsps: Use dev_get_drvdata() Using dev_get_drvdata directly. Cc: Bin Liu Cc: Greg Kroah-Hartman Cc: linux-usb@vger.kernel.org Signed-off-by: Kefeng Wang Signed-off-by: Bin Liu Signed-off-by: Greg Kroah-Hartman commit afbdbd37600b127b37ad88223ed7255fdc9fee92 Author: Paul Cercueil Date: Tue Apr 30 09:59:40 2019 -0500 usb: musb: jz4740: obtain USB PHY from devicetree Fall back to devm_usb_get_phy() if devicetree is not available. Signed-off-by: Paul Cercueil Signed-off-by: Bin Liu Signed-off-by: Greg Kroah-Hartman commit 82257c73aafe4bc72c8e21f0da00947855aeabec Author: Paul Cercueil Date: Tue Apr 30 09:59:39 2019 -0500 usb: musb: jz4740: Let the platform probe the PHY By registering a generic USB PHY from within the driver, we may shadow the USB PHY registered by the platform, which might be different. Signed-off-by: Paul Cercueil Signed-off-by: Bin Liu Signed-off-by: Greg Kroah-Hartman commit 70833b84dac2d017ea119660e331b7dc7635c3a7 Author: Paul Cercueil Date: Tue Apr 30 09:59:38 2019 -0500 dt-bindings: usb: Add usb-phy property to the jz4740-musb node Add a required 'usb-phy' property, to obtain a phandle to the USB PHY from devicetree. Signed-off-by: Paul Cercueil Reviewed-by: Rob Herring Signed-off-by: Bin Liu Signed-off-by: Greg Kroah-Hartman commit a84014e1db35d8e7af09878d0b4bf30804fb17d5 Author: Samuel Holland Date: Tue Apr 30 09:59:37 2019 -0500 soc: sunxi: Fix missing dependency on REGMAP_MMIO When enabling ARCH_SUNXI from allnoconfig, SUNXI_SRAM is enabled, but not REGMAP_MMIO, so the kernel fails to link with an undefined reference to __devm_regmap_init_mmio_clk. Select REGMAP_MMIO, as suggested in drivers/base/regmap/Kconfig. This creates the following dependency loop: drivers/of/Kconfig:68: symbol OF_IRQ depends on IRQ_DOMAIN kernel/irq/Kconfig:63: symbol IRQ_DOMAIN is selected by REGMAP drivers/base/regmap/Kconfig:7: symbol REGMAP default is visible depending on REGMAP_MMIO drivers/base/regmap/Kconfig:39: symbol REGMAP_MMIO is selected by SUNXI_SRAM drivers/soc/sunxi/Kconfig:4: symbol SUNXI_SRAM is selected by USB_MUSB_SUNXI drivers/usb/musb/Kconfig:63: symbol USB_MUSB_SUNXI depends on GENERIC_PHY drivers/phy/Kconfig:7: symbol GENERIC_PHY is selected by PHY_BCM_NS_USB3 drivers/phy/broadcom/Kconfig:29: symbol PHY_BCM_NS_USB3 depends on MDIO_BUS drivers/net/phy/Kconfig:12: symbol MDIO_BUS default is visible depending on PHYLIB drivers/net/phy/Kconfig:181: symbol PHYLIB is selected by ARC_EMAC_CORE drivers/net/ethernet/arc/Kconfig:18: symbol ARC_EMAC_CORE is selected by ARC_EMAC drivers/net/ethernet/arc/Kconfig:24: symbol ARC_EMAC depends on OF_IRQ To fix the circular dependency, make USB_MUSB_SUNXI select GENERIC_PHY instead of depending on it. This matches the use of GENERIC_PHY by all but two other drivers. Cc: # 4.19 Fixes: 5828729bebbb ("soc: sunxi: export a regmap for EMAC clock reg on A64") Signed-off-by: Samuel Holland Acked-by: Maxime Ripard Signed-off-by: Bin Liu Signed-off-by: Greg Kroah-Hartman commit 10ac7e7757f5e264599409441362de67760ba787 Author: Tony Lindgren Date: Tue Apr 30 09:59:36 2019 -0500 usb: musb: omap2430: Add support for idling phy when musb is idle I noticed that musb is blocking core retention for omap4 unlike for omap3. This is because for omap3 we have phy-twl4030-usb implement it's own PM runtime to handle errata "VUSB3V1 VBUS overvoltage debouncer not working when the PHY is powered down". That is done in order to keep the USB PHY powered when phy-twl4030-usb is loaded. For the other USB PHYs, we need to enable and disable the PHY based on musb PM runtime. With the session bit based PM runtime for musb core, we can now idle the USB PHY always when musb is idle. Note that adding these calls will not affect the twl4030 driver as it's phy functions will just query the PHY state without powering the PHY on or off. Signed-off-by: Tony Lindgren Signed-off-by: Bin Liu Signed-off-by: Greg Kroah-Hartman commit 41386bc8cb2e0943cbeaa63e1fdb6b66a874ca90 Author: Paul Cercueil Date: Tue Apr 30 09:59:35 2019 -0500 usb: musb: Silence error about blacklisting hubs if !CONFIG_USB Some drivers, like jz4740-musb, don't depend on CONFIG_USB. Signed-off-by: Paul Cercueil Signed-off-by: Bin Liu Signed-off-by: Greg Kroah-Hartman commit b063f04e0d2e7a808f6b5827bd1e39ad89617a22 Author: Gustavo A. R. Silva Date: Mon Apr 29 09:39:57 2019 -0500 usbip: vhci_hcd: Mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warning: In file included from drivers/usb/usbip/vhci_hcd.c:15: drivers/usb/usbip/vhci_hcd.c: In function ‘vhci_hub_control’: drivers/usb/usbip/usbip_common.h:63:6: warning: this statement may fall through [-Wimplicit-fallthrough=] if (flag & usbip_debug_flag) \ ^ drivers/usb/usbip/usbip_common.h:77:2: note: in expansion of macro ‘usbip_dbg_with_flag’ usbip_dbg_with_flag(usbip_debug_vhci_rh, fmt , ##args) ^~~~~~~~~~~~~~~~~~~ drivers/usb/usbip/vhci_hcd.c:509:4: note: in expansion of macro ‘usbip_dbg_vhci_rh’ usbip_dbg_vhci_rh( ^~~~~~~~~~~~~~~~~ drivers/usb/usbip/vhci_hcd.c:511:3: note: here case USB_PORT_FEAT_U2_TIMEOUT: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Acked-by: Shuah Khan Signed-off-by: Greg Kroah-Hartman commit 3ae62a42090f1ed48e2313ed256a1182a85fb575 Author: Oliver Neukum Date: Tue Apr 30 12:21:45 2019 +0200 UAS: fix alignment of scatter/gather segments This is the UAS version of 747668dbc061b3e62bc1982767a3a1f9815fcf0e usb-storage: Set virt_boundary_mask to avoid SG overflows We are not as likely to be vulnerable as storage, as it is unlikelier that UAS is run over a controller without native support for SG, but the issue exists. The issue has been existing since the inception of the driver. Fixes: 115bb1ffa54c ("USB: Add UAS driver") Signed-off-by: Oliver Neukum Cc: stable Signed-off-by: Greg Kroah-Hartman commit 6a38df676a0a06bfc7ff8607ac62ccd6d95969ad Author: Adam Ford Date: Tue Apr 30 07:47:44 2019 -0500 ARM: dts: logicpd-som-lv: Fix MMC1 card detect The card detect pin was incorrectly using IRQ_TYPE_LEVEL_LOW instead of GPIO_ACTIVE_LOW when reading the state of the CD pin. This was previosly fixed on Torpedo, but missed on the SOM-LV Fixes: 5cb8b0fa55a9 ("ARM: dts: Move most of logicpd-som-lv-37xx-devkit.dts to logicpd-som-lv-baseboard.dtsi") Signed-off-by: Adam Ford Signed-off-by: Tony Lindgren commit 39e8046240e2b1a4c2e431e08a3356abce93cf35 Author: Sven Van Asbroeck Date: Tue Apr 30 11:25:15 2019 -0400 staging: fieldbus: anybus-s: rename bus id field to avoid confusion Rename the anybus-s bus id from fieldbus_type to anybus_id, to avoid confusion with an identically named variable in the fieldbus_dev framework. Although this value is called fieldbus_type in the anybus-s docs, it acts like a bus id, so the name change is appropriate. Signed-off-by: Sven Van Asbroeck Signed-off-by: Greg Kroah-Hartman commit be7d6b03602eb0d3dccae0bbce4c796526c51661 Author: Sven Van Asbroeck Date: Tue Apr 30 11:25:14 2019 -0400 staging: fieldbus: anybus-s: keep device bus id in bus endianness "Normal" bus structures such as USB or PCI keep device bus ids in bus endinanness, and driver bus ids in host endianness. Endianness conversion happens each time bus_match() is called. Modify anybus-s to conform to this pattern. As a pleasant side- effect, sparse warnings will now disappear. This was suggested by Al Viro. Link: https://lkml.org/lkml/2019/4/30/834 Signed-off-by: Sven Van Asbroeck Signed-off-by: Greg Kroah-Hartman commit dcdca753c152efe8d86ec7a15423307807a516a7 Author: Christoph Hellwig Date: Thu Apr 25 09:04:35 2019 +0200 block: clean up __bio_add_pc_page a bit Share the bi_size update by moving the done label up, and duplicate the bv_len update in the two callers to get rid of the bvec_merge label. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit 6601e44efd20efddc183c85131216200e90c5728 Author: Christoph Hellwig Date: Thu Apr 25 09:04:34 2019 +0200 block: remove bogus comments in __bio_add_pc_page We are never called with file system pages by defintions for the passthrough interface, and we also never undo any addition later these days. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit 4713839dfe8269d27d83a33d1e39f9c2970eb31a Author: Christoph Hellwig Date: Thu Apr 25 09:04:33 2019 +0200 block: remove the __bio_add_pc_page export The same page optimization is a rather odd corner case, which is not used outside bio.c and which really should not be used outside of bio.c either - we have better highlevel helpers like the rq/bio mapping helpers. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit 2b070cfe582b8e99fec6ada57d2e59e194aae202 Author: Christoph Hellwig Date: Thu Apr 25 09:03:00 2019 +0200 block: remove the i argument to bio_for_each_segment_all We only have two callers that need the integer loop iterator, and they can easily maintain it themselves. Suggested-by: Matthew Wilcox Reviewed-by: Johannes Thumshirn Acked-by: David Sterba Reviewed-by: Hannes Reinecke Acked-by: Coly Li Reviewed-by: Matthew Wilcox Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit f936b06ae53815a7633b30ffd8cf5661ac826b3a Author: Christoph Hellwig Date: Thu Apr 25 09:02:59 2019 +0200 bcache: clean up do_btree_node_write a bit Use a variable containing the buffer address instead of the to be removed integer iterator from bio_for_each_segment_all. Suggested-by: Matthew Wilcox Reviewed-by: Hannes Reinecke Acked-by: Coly Li Reviewed-by: Matthew Wilcox Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit 75efa57d0bf5fcf650a183f0ce0dc011ba8c4bc8 Author: Darrick J. Wong Date: Thu Apr 25 18:26:24 2019 -0700 xfs: add online scrub for superblock counters Teach online scrub how to check the filesystem summary counters. We use the incore delalloc block counter along with the incore AG headers to compute expected values for fdblocks, icount, and ifree, and then check that the percpu counter is within a certain threshold of the expected value. This is done to avoid having to freeze or otherwise lock the filesystem, which means that we're only checking that the counters are fairly close, not that they're exactly correct. Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner Reviewed-by: Brian Foster commit 94079285756d66b1aded4e36d35452cb1f9c953a Author: Christoph Hellwig Date: Sun Apr 28 08:32:52 2019 -0700 xfs: don't parse the mtpt mount option The text isn't really any more useful than the default unknown option handling. Signed-off-by: Christoph Hellwig Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong commit 710d707d2fa9cf4c2aa9def129e71e99513466ea Author: Darrick J. Wong Date: Wed Apr 24 09:27:41 2019 -0700 xfs: always rejoin held resources during defer roll During testing of xfs/141 on a V4 filesystem, I observed some inconsistent behavior with regards to resources that are held (i.e. remain locked) across a defer roll. The transaction roll always gives the defer roll function a new transaction, even if committing the old transaction fails. However, the defer roll function only rejoins the held resources if the transaction commit succeedied. This means that callers of defer roll have to figure out whether the held resources are attached to the transaction being passed back. Worse yet, if the defer roll was part of a defer finish call, we have a third possibility: the defer finish could pass back a dirty transaction with dirty held resources and an error code. The only sane way to handle all of these scenarios is to require that the code that held the resource either cancel the transaction before unlocking and releasing the resources, or use functions that detach resources from a transaction properly (e.g. xfs_trans_brelse) if they need to drop the reference before committing or cancelling the transaction. In order to make this so, change the defer roll code to join held resources to the new transaction unconditionally and fix all the bhold callers to release the held buffers correctly. Signed-off-by: Darrick J. Wong Reviewed-by: Brian Foster commit 0ea415390cd345b7d09e8c9ebd4b68adfe873043 Author: Marc Zyngier Date: Mon Apr 8 16:49:07 2019 +0100 clocksource/arm_arch_timer: Use arch_timer_read_counter to access stable counters Instead of always going via arch_counter_get_cntvct_stable to access the counter workaround, let's have arch_timer_read_counter point to the right method. For that, we need to track whether any CPU in the system has a workaround for the counter. This is done by having an atomic variable tracking this. Acked-by: Mark Rutland Signed-off-by: Marc Zyngier Signed-off-by: Will Deacon commit a862fc2254bdbcee3b5da4f730984e5d8393a2f1 Author: Marc Zyngier Date: Mon Apr 8 16:49:06 2019 +0100 clocksource/arm_arch_timer: Remove use of workaround static key The use of a static key in a hotplug path has proved to be a real nightmare, and makes it impossible to have scream-free lockdep kernel. Let's remove the static key altogether, and focus on something saner. Acked-by: Mark Rutland Acked-by: Daniel Lezcano Signed-off-by: Marc Zyngier Signed-off-by: Will Deacon commit 57f27666f91a85431492b092f5db53ecab1a0739 Author: Marc Zyngier Date: Mon Apr 8 16:49:05 2019 +0100 clocksource/arm_arch_timer: Drop use of static key in arch_timer_reg_read_stable Let's start with the removal of the arch_timer_read_ool_enabled static key in arch_timer_reg_read_stable. It is not a fast path, and we can simplify things a bit. Acked-by: Mark Rutland Acked-by: Daniel Lezcano Signed-off-by: Marc Zyngier Signed-off-by: Will Deacon commit 5ef19a161cfa88a59508979e2f39d3d092c1d5c0 Author: Marc Zyngier Date: Mon Apr 8 16:49:04 2019 +0100 clocksource/arm_arch_timer: Direcly assign set_next_event workaround When a given timer is affected by an erratum and requires an alternative implementation of set_next_event, we do a rather complicated dance to detect and call the workaround on each set_next_event call. This is clearly idiotic, as we can perfectly detect whether this CPU requires a workaround while setting up the clock event device. This only requires the CPU-specific detection to be done a bit earlier, and we can then safely override the set_next_event pointer if we have a workaround associated to that CPU. Acked-by: Mark Rutland Acked-by; Daniel Lezcano Signed-off-by: Marc Zyngier Signed-off-by: Will Deacon commit dea86a80033f8b0fb25a805f46dde9f3b1a7c23a Author: Marc Zyngier Date: Mon Apr 8 16:49:03 2019 +0100 arm64: Use arch_timer_read_counter instead of arch_counter_get_cntvct Only arch_timer_read_counter will guarantee that workarounds are applied. So let's use this one instead of arch_counter_get_cntvct. Acked-by: Mark Rutland Signed-off-by: Marc Zyngier Signed-off-by: Will Deacon commit eae1ddc615bef9e1a1958a4b867a0a1678049bb3 Author: Marc Zyngier Date: Mon Apr 8 16:49:02 2019 +0100 watchdog/sbsa: Use arch_timer_read_counter instead of arch_counter_get_cntvct Only arch_timer_read_counter will guarantee that workarounds are applied. So let's use this one instead of arch_counter_get_cntvct. Acked-by: Mark Rutland Reviewed-by: Guenter Roeck Signed-off-by: Marc Zyngier Signed-off-by: Will Deacon commit 1f5b62f09f6b314c8d70b9de5182dae4de1f94da Author: Marc Zyngier Date: Mon Apr 8 16:49:01 2019 +0100 ARM: vdso: Remove dependency with the arch_timer driver internals The VDSO code uses the kernel helper that was originally designed to abstract the access between 32 and 64bit systems. It worked so far because this function is declared as 'inline'. As we're about to revamp that part of the code, the VDSO would break. Let's fix it by doing what should have been done from the start, a proper system register access. Reviewed-by: Mark Rutland Signed-off-by: Marc Zyngier Signed-off-by: Will Deacon commit 8cff995405eb0b563e7a0d2c49838611ea3f2692 Author: Srinath Mannam Date: Fri Apr 26 14:50:04 2019 +0530 PCI: iproc: Enable iProc config read for PAXBv2 iProc config read flag has to be enabled for PAXBv2 instead of PAXB. Fixes: f78e60a29d4f ("PCI: iproc: Reject unconfigured physical functions from PAXC") Signed-off-by: Srinath Mannam Signed-off-by: Lorenzo Pieralisi Reviewed-by: Ray Jui commit cdca22bcbc64fc83dadb8d927df400a8d86ddabb Author: Coly Li Date: Tue Apr 30 22:02:25 2019 +0800 bcache: remove redundant LIST_HEAD(journal) from run_cache_set() Commit 95f18c9d1310 ("bcache: avoid potential memleak of list of journal_replay(s) in the CACHE_SYNC branch of run_cache_set") forgets to remove the original define of LIST_HEAD(journal), which makes the change no take effect. This patch removes redundant variable LIST_HEAD(journal) from run_cache_set(), to make Shenghui's fix working. Fixes: 95f18c9d1310 ("bcache: avoid potential memleak of list of journal_replay(s) in the CACHE_SYNC branch of run_cache_set") Reported-by: Juha Aatrokoski Cc: Shenghui Wang Signed-off-by: Coly Li Signed-off-by: Jens Axboe commit b1b537713eb1a63a2ecc3547693b3eef7dfb9281 Author: Dalit Ben Zoor Date: Tue Apr 30 17:18:51 2019 +0300 habanalabs: increase timeout if working with simulator Where there is a spike in the CPU consumption, it may cause random failures in the C/I since the KMD timeout for CPU and/or QMAN0 jobs expires and it stops communicating to the simulator. This commit fixes it by increasing timeout on polling functions if working with simulator. Signed-off-by: Dalit Ben Zoor Signed-off-by: Oded Gabbay commit f0539fb0fb5fcb595bbb46dfe88c97e825f29f1f Author: Dalit Ben Zoor Date: Wed May 1 13:24:58 2019 +0300 habanalabs: remove condition that is always true After removing the parsing of the command submission when doing memset of the device memory, goya_validate_dma_pkt_host is never called by the kernel, so there is no need to check context id. Signed-off-by: Dalit Ben Zoor Signed-off-by: Oded Gabbay commit 5809e18e028218c006011dbbfe30429eaf4bb29b Author: Dalit Ben Zoor Date: Wed May 1 13:16:18 2019 +0300 habanalabs: remove redundant member from parser struct use_virt_addr member was used for telling whether to treat the addresses in the CB as virtual during parsing. We disabled it only when calling the parser from the driver memset device function, and since this call had been removed, it should always be enabled. Signed-off-by: Dalit Ben Zoor Signed-off-by: Oded Gabbay commit 94cb669ceb0589f24ee91e3a8ae8ed3013fd6904 Author: Tomer Tayar Date: Wed May 1 11:28:15 2019 +0300 habanalabs: Manipulate DMA addresses in ASIC functions Routing device accesses to the host memory requires the usage of a base offset, which is canceled by the iATU just before leaving the device. The value of the base offset might be distinctive between different ASIC types. The manipulation of the addresses is currently used throughout the driver code, and one should be aware to it whenever providing a host memory address to the device. This patch removes this manipulation from the driver common code, and moves it to the ASIC specific functions that are responsible for host memory allocation/mapping. Signed-off-by: Tomer Tayar Signed-off-by: Oded Gabbay commit d9c3aa8038c391f38a391289989ca0ac356a9501 Author: Oded Gabbay Date: Wed May 1 11:47:04 2019 +0300 habanalabs: rename functions to improve code readability This patch renames four functions in the ASIC-specific functions section, so it will be easier to differentiate them from the generic kernel functions with the same name. This will help in future code reviews, to make sure we don't use the kernel functions directly. Signed-off-by: Oded Gabbay commit 6989303a3b2d864fd8e17d3fa3365d3e9649a598 Author: Marc Zyngier Date: Mon Apr 15 13:03:54 2019 +0100 arm64: Apply ARM64_ERRATUM_1188873 to Neoverse-N1 Neoverse-N1 is also affected by ARM64_ERRATUM_1188873, so let's add it to the list of affected CPUs. Signed-off-by: Marc Zyngier [will: Update silicon-errata.txt] Signed-off-by: Will Deacon commit 0cf57b86859c49381addb3ce47be70aadf5fd2c0 Author: Marc Zyngier Date: Mon Apr 15 13:03:53 2019 +0100 arm64: Add part number for Neoverse N1 New CPU, new part number. You know the drill. Signed-off-by: Marc Zyngier Signed-off-by: Will Deacon commit c2b5bba3967a000764e9148e6f020d776b7ecd82 Author: Marc Zyngier Date: Mon Apr 15 13:03:52 2019 +0100 arm64: Make ARM64_ERRATUM_1188873 depend on COMPAT Since ARM64_ERRATUM_1188873 only affects AArch32 EL0, it makes some sense that it should depend on COMPAT. Signed-off-by: Marc Zyngier Signed-off-by: Will Deacon commit 0f80cad3124f986d0e46c14d46b8da06d87a2bf4 Author: Marc Zyngier Date: Mon Apr 15 13:03:51 2019 +0100 arm64: Restrict ARM64_ERRATUM_1188873 mitigation to AArch32 We currently deal with ARM64_ERRATUM_1188873 by always trapping EL0 accesses for both instruction sets. Although nothing wrong comes out of that, people trying to squeeze the last drop of performance from buggy HW find this over the top. Oh well. Let's change the mitigation by flipping the counter enable bit on return to userspace. Non-broken HW gets an extra branch on the fast path, which is hopefully not the end of the world. The arch timer workaround is also removed. Acked-by: Daniel Lezcano Signed-off-by: Marc Zyngier Signed-off-by: Will Deacon commit 640d4ea83c8aa085407ea93aec65704bf51f4bae Author: Colin Ian King Date: Fri Apr 26 14:16:31 2019 +0100 HID: logitech-dj: fix spelling in printk There is a spelling mistake in a hid_err error message, fix it. Signed-off-by: Colin Ian King Signed-off-by: Jiri Kosina commit a658a3f2ecbabba60dafa9ba94f12fc25c18474f Merge: 7a1d8390d015 bb9cd077e216 Author: David S. Miller Date: Tue Apr 30 09:26:13 2019 -0400 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 2019-04-30 1) A lot of work to remove indirections from the xfrm code. From Florian Westphal. 2) Support ESP offload in combination with gso partial. From Boris Pismenny. 3) Remove some duplicated code from vti4. From Jeremy Sowden. Please note that there is merge conflict between commit: 8742dc86d0c7 ("xfrm4: Fix uninitialized memory read in _decode_session4") from the ipsec tree and commit: c53ac41e3720 ("xfrm: remove decode_session indirection from afinfo_policy") from the ipsec-next tree. The merge conflict will appear when those trees get merged during the merge window. The conflict can be solved as it is done in linux-next: https://lkml.org/lkml/2019/4/25/1207 Please pull or let me know if there are problems. ==================== Signed-off-by: David S. Miller commit b511cdd1c12d1e450baeba5373dd3a8897396e2b Author: Alexey Kardashevskiy Date: Wed Apr 10 16:48:00 2019 +1000 powerpc/powernv/ioda: Handle failures correctly in pnv_pci_ioda_iommu_bypass_supported() When the return value type was changed from int to bool, few places were left unchanged, this fixes them. We did not hit these failures as the first one is not happening at all and the second one is little more likely to happen if the user switches a 33..58bit DMA capable device between the VFIO and vendor drivers and there are not so many of these. Fixes: 2d6ad41b2c21 ("powerpc/powernv: use the generic iommu bypass code") Signed-off-by: Alexey Kardashevskiy Signed-off-by: Michael Ellerman commit d5d66cfea2ca281d53e63360b459f84b5fff5e12 Author: Kelsey Skunberg Date: Sat Apr 27 10:33:34 2019 -0600 Staging: sm750fb: Change *array into *const array Resolve checkpatch warning for static const char * array by using const pointers. Checkpatch Warning in sm750.c: static const char * array should probably be static const char * const Signed-off-by: Kelsey Skunberg Signed-off-by: Greg Kroah-Hartman commit 41dff4d6b8e2af7687e626df4f149dd26c130b43 Author: Vatsala Narang Date: Fri Apr 26 14:13:03 2019 +0530 staging: rtl8192u: ieee80211: Fix spelling mistake Replace explicitely with explicitly to get rid of checkpatch warning. Signed-off-by: Vatsala Narang Acked-by: Gustavo A. R. Silva Signed-off-by: Greg Kroah-Hartman commit 8dd4305041250898bc1d664d0a285469073ed962 Author: Vatsala Narang Date: Fri Apr 26 14:12:01 2019 +0530 staging: rtl8192u: ieee80211: Replace bit shifting with BIT macro Change suggested by coccinelle. Replace bit shifting on 1 with the BIT(x) macro. Coccinelle script: @@ expression c; @@ -(1 << c) +BIT(c) Signed-off-by: Vatsala Narang Signed-off-by: Greg Kroah-Hartman commit 675c8a46a8cc8a15f64863fd4c7786df2b5b728b Author: Vatsala Narang Date: Sat Apr 27 21:37:49 2019 +0530 staging: vc04_services: bcm2835-camera: Modify return statement. Modify return statement and remove the respective assignment. Issue found by Coccinelle. Signed-off-by: Vatsala Narang Acked-by: Stefan Wahren Signed-off-by: Greg Kroah-Hartman commit 601d6f0360986560cdf5779ddab36cd4d9e7062b Author: Vandana BN Date: Mon Apr 29 21:30:45 2019 +0530 staging: rtl8723bs: Fix checkpatch.pl warnings This patch resolves coding style brace warning and constant on right warning. WARNING: Comparisons should place the constant on the right side of the test WARNING: braces {} are not necessary for single statement blocks CHECK: Comparison to NULL could be written "!pbuf" Signed-off-by: Vandana BN ------ v2- Edited commit message and subject v3- Edited commit message v4- changed NULL check to use !pbuf ------ Signed-off-by: Greg Kroah-Hartman commit a6d678274d1a94968e58328337ecdef54a8b089f Author: Vatsala Narang Date: Mon Apr 29 10:52:39 2019 +0530 staging: rtl8723bs: core: Remove blank line. To avoid style issues, remove multiple blank lines. Signed-off-by: Vatsala Narang Signed-off-by: Greg Kroah-Hartman commit 9358bd52ece6ebbd7e6c56f1b7ebe25e51d5c201 Author: Vatsala Narang Date: Mon Apr 29 10:06:53 2019 +0530 staging: rtl8723bs: core: Remove else after return statement. Remove else after return statement as it is not useful. Issue found using checkpatch. Signed-off-by: Vatsala Narang Signed-off-by: Greg Kroah-Hartman commit 852b4eddafeae57d33f8eb20b9937b2094fbc6d7 Author: Vatsala Narang Date: Fri Apr 26 01:21:45 2019 +0530 staging: rtl8723bs: core: Remove return in void function Remove return in void function to get rid of checkpatch warning. Signed-off-by: Vatsala Narang Acked-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman commit 96b86125d7207991c11f23db9359553fcbf45348 Author: Aaro Koskinen Date: Thu Apr 25 22:49:05 2019 +0300 staging: octeon-ethernet: add TODO Add missing TODO to describe the plan to get this driver out of staging. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman commit 87b48bbcc33e82162203981f4925f0ce79f69863 Author: Aaro Koskinen Date: Thu Apr 25 22:49:04 2019 +0300 staging: refer to TODO in Kconfig help text Refer to TODO file instead of driver_name.README that does not seem to be used. Signed-off-by: Aaro Koskinen Signed-off-by: Greg Kroah-Hartman commit bdc7c970bcdce1c018957e0158230bc025682ba2 Merge: 7ae3f6e130e8 e9cef0189c5b Author: Michael Ellerman Date: Tue Apr 30 22:52:03 2019 +1000 Merge branch 'topic/ppc-kvm' into next Merge our topic branch shared with KVM. In particular this includes the rewrite of the idle code into C. commit e9cef0189c5b217fcd4788562862defc27632a01 Author: Michael Ellerman Date: Tue Apr 30 14:28:17 2019 +1000 powerpc/powernv/idle: Restore AMR/UAMOR/AMOR/IAMR after idle This is an implementation of commits 53a712bae5dd ("powerpc/powernv/idle: Restore AMR/UAMOR/AMOR after idle") and a3f3072db6ca ("powerpc/powernv/idle: Restore IAMR after idle") using the new C-based idle code. Signed-off-by: Nicholas Piggin [mpe: Extract from Nick's patch] Signed-off-by: Michael Ellerman commit 10d91611f426d4bafd2a83d966c36da811b2f7ad Author: Nicholas Piggin Date: Sat Apr 13 00:30:52 2019 +1000 powerpc/64s: Reimplement book3s idle code in C Reimplement Book3S idle code in C, moving POWER7/8/9 implementation speific HV idle code to the powernv platform code. Book3S assembly stubs are kept in common code and used only to save the stack frame and non-volatile GPRs before executing architected idle instructions, and restoring the stack and reloading GPRs then returning to C after waking from idle. The complex logic dealing with threads and subcores, locking, SPRs, HMIs, timebase resync, etc., is all done in C which makes it more maintainable. This is not a strict translation to C code, there are some significant differences: - Idle wakeup no longer uses the ->cpu_restore call to reinit SPRs, but saves and restores them itself. - The optimisation where EC=ESL=0 idle modes did not have to save GPRs or change MSR is restored, because it's now simple to do. ESL=1 sleeps that do not lose GPRs can use this optimization too. - KVM secondary entry and cede is now more of a call/return style rather than branchy. nap_state_lost is not required because KVM always returns via NVGPR restoring path. - KVM secondary wakeup from offline sequence is moved entirely into the offline wakeup, which avoids a hwsync in the normal idle wakeup path. Performance measured with context switch ping-pong on different threads or cores, is possibly improved a small amount, 1-3% depending on stop state and core vs thread test for shallow states. Deep states it's in the noise compared with other latencies. KVM improvements: - Idle sleepers now always return to caller rather than branch out to KVM first. - This allows optimisations like very fast return to caller when no state has been lost. - KVM no longer requires nap_state_lost because it controls NVGPR save/restore itself on the way in and out. - The heavy idle wakeup KVM request check can be moved out of the normal host idle code and into the not-performance-critical offline code. - KVM nap code now returns from where it is called, which makes the flow a bit easier to follow. Reviewed-by: Gautham R. Shenoy Signed-off-by: Nicholas Piggin [mpe: Squash the KVM changes in] Signed-off-by: Michael Ellerman commit 41f0a9542a253d79506584ab6353bcd6c4916150 Author: Ralph Campbell Date: Fri Apr 26 11:04:29 2019 -0700 docs/vm: Minor editorial changes in the THP and hugetlbfs Some minor wording changes and typo corrections. Signed-off-by: Ralph Campbell Acked-by: Randy Dunlap Acked-by: Mike Kravetz Cc: Mike Rapoport Signed-off-by: Jonathan Corbet commit 98592c1faca82a9024a64e4ecead68b19f81c299 Author: Christian Gromm Date: Tue Apr 30 14:07:48 2019 +0200 staging: most: sound: pass correct device when creating a sound card This patch fixes the usage of the wrong struct device when calling function snd_card_new. Reported-by: Eugeniu Rosca Signed-off-by: Christian Gromm Fixes: 69c90cf1b2fa ("staging: most: sound: call snd_card_new with struct device") Cc: stable Signed-off-by: Greg Kroah-Hartman commit 7d10bdbd6df3d23ac2a54972a3a0559d1e3811ac Author: Mike Rapoport Date: Sun Apr 28 15:17:43 2019 +0300 docs/vm: add documentation of memory models Describe what {FLAT,DISCONTIG,SPARSE}MEM are and how they manage to maintain pfn <-> struct page correspondence. Signed-off-by: Mike Rapoport Acked-by: Randy Dunlap Signed-off-by: Jonathan Corbet commit 678f784cd6cdd523fe4fb98c45dc7a6a673c2461 Author: Federico Vaga Date: Mon Apr 29 23:47:20 2019 +0200 doc:it_IT: translation alignment Align Italian translation after the following changes in Documentation bba757d8578f coding-style.rst: Generic alloc functions do not need OOM logging d8e8bcc3d8de docs: doc-guide: remove the extension from .rst files Signed-off-by: Federico Vaga Signed-off-by: Jonathan Corbet commit fbf7c7e046ee4e45d18e541335c2177524e4dbd1 Author: Federico Vaga Date: Mon Apr 29 23:45:14 2019 +0200 doc: fix typo in PGP guide Fix typo in the GPG guide for maintainers Signed-off-by: Federico Vaga Signed-off-by: Jonathan Corbet commit 1b8868861366acaf42c07c375e15fc7bb3c38189 Author: Masahiro Yamada Date: Mon Apr 29 23:53:50 2019 +0900 dontdiff: update with Kconfig build artifacts Add generated *conf-cfg files. Commit 694c49a7c01c ("kconfig: drop localization support") removed "gconf.glade.h" and "kxgettext". "kconfig" and "lxdialog" should not be excluded either. Signed-off-by: Masahiro Yamada Signed-off-by: Jonathan Corbet commit 3706b47006a9c8aa867d314f913d3b1310163d63 Author: Dalit Ben Zoor Date: Tue Apr 30 15:22:14 2019 +0300 habanalabs: remove call to cs_parser() There is no need to parse the command submission when doing memset of the device memory using the DMA engine because only the driver calls the memset function and therefore, the CS is trusted and doesn't require validation and patching. Signed-off-by: Dalit Ben Zoor Signed-off-by: Oded Gabbay commit 1de6f3342191e4e4da10919818126d4629f6ee66 Author: Colin Ian King Date: Thu Apr 18 18:00:56 2019 +0100 netfilter: connlabels: fix spelling mistake "trackling" -> "tracking" There is a spelling mistake in the module description. Fix this. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Signed-off-by: Pablo Neira Ayuso commit 3087c3f7c23b9c54b956ee5519e97a42413ddf22 Author: Brett Mastbergen Date: Wed Apr 24 10:48:44 2019 -0400 netfilter: nft_ct: Add ct id support The 'id' key returns the unique id of the conntrack entry as returned by nf_ct_get_id(). Signed-off-by: Brett Mastbergen Acked-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit fec9c271b8f1bde1086be5aa415cdb586e0dc800 Author: Flavio Leitner Date: Wed Apr 17 11:46:17 2019 -0300 openvswitch: load and reference the NAT helper. This improves the original commit 17c357efe5ec ("openvswitch: load NAT helper") where it unconditionally tries to load the module for every flow using NAT, so not efficient when loading multiple flows. It also doesn't hold any references to the NAT module while the flow is active. This change fixes those problems. It will try to load the module only if it's not present. It grabs a reference to the NAT module and holds it while the flow is active. Finally, an error message shows up if either actions above fails. Fixes: 17c357efe5ec ("openvswitch: load NAT helper") Signed-off-by: Flavio Leitner Signed-off-by: Pablo Neira Ayuso commit 53b11308a1b53d7e98f65dfd5faea124df99ca14 Author: Flavio Leitner Date: Wed Apr 17 11:46:16 2019 -0300 netfilter: nf_nat: register NAT helpers. Register amanda, ftp, irc, sip and tftp NAT helpers. Signed-off-by: Flavio Leitner Signed-off-by: Pablo Neira Ayuso commit 08010a21602678932894c5e87014a282af0079cf Author: Flavio Leitner Date: Wed Apr 17 11:46:15 2019 -0300 netfilter: add API to manage NAT helpers. The API allows a conntrack helper to indicate its corresponding NAT helper which then can be loaded and reference counted. Signed-off-by: Flavio Leitner Signed-off-by: Pablo Neira Ayuso commit e1f172e162c0a11721f1188f12e5b4c3f9f80de6 Author: Flavio Leitner Date: Wed Apr 17 11:46:14 2019 -0300 netfilter: use macros to create module aliases. Each NAT helper creates a module alias which follows a pattern. Use macros for consistency. Signed-off-by: Flavio Leitner Signed-off-by: Pablo Neira Ayuso commit f998a1180e14d0a10d2ffeccec25779ace879c2a Author: Dan Carpenter Date: Tue Apr 30 13:33:59 2019 +0300 staging: kpc2000: fix resource size calculation The code is calculating the resource size wrong because it should be inclusive of the "res->end" address. In other words, "end - start + 1". We can just use the resource_size() function to do it correctly. Fixes: 7dc7967fc39a ("staging: kpc2000: add initial set of Daktronics drivers") Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman commit d687bdefba270c11df0234b3285cd50d60de284b Author: Dan Carpenter Date: Tue Apr 30 13:35:05 2019 +0300 staging: kpc2000: Fix a stack information leak in kp2000_cdev_ioctl() The kp2000_regs struct has a 4 byte hole between ->hw_rev and ->ssid so this could leak stack information to the user. This patch just memsets the whole struct to zero. Fixes: 7dc7967fc39a ("staging: kpc2000: add initial set of Daktronics drivers") Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman commit 87232b827ef793060ed59af36d89ae90a092ac96 Author: Jeremy Sowden Date: Sat Apr 27 20:54:01 2019 +0100 staging: kpc2000_spi: eliminated duplicate initialization of master local variable. master was being initialized to a particular value and then having the same value assigned to it immediately afterwards. Removed the initializer. Since the value assigned to master was dynamically allocated, this fixes a memory-leak. Signed-off-by: Jeremy Sowden Signed-off-by: Greg Kroah-Hartman commit 7912fd345b111ffd1f6bb5b4f1346ae2e7ce788f Author: Jeremy Sowden Date: Sat Apr 27 20:54:00 2019 +0100 staging: kpc2000_spi: eliminated duplicate initialization of drvdata local variable. drvdata was being initialized to a particular value and then having the same value assigned to it immediately afterwards. Removed the initializer. Since the value assigned, pldev->dev.platform_data, is a pointer-to- void, removed superfluous cast. Signed-off-by: Jeremy Sowden Signed-off-by: Greg Kroah-Hartman commit 8f14c99c7edaaba9c0bb1727d44db6ebf157cc61 Author: Tonghao Zhang Date: Sun Apr 7 08:14:20 2019 -0700 netfilter: conntrack: limit sysctl setting for boolean options We use the zero and one to limit the boolean options setting. After this patch we only set 0 or 1 to boolean options for nf conntrack sysctl. Signed-off-by: Tonghao Zhang Signed-off-by: Pablo Neira Ayuso commit 33cc3c0cfa64c86b6c4bbee86997aea638534931 Author: Taehee Yoo Date: Tue Apr 30 01:55:54 2019 +0900 netfilter: nf_flow_table: check ttl value in flow offload data path nf_flow_offload_ip_hook() and nf_flow_offload_ipv6_hook() do not check ttl value. So, ttl value overflow may occur. Fixes: 97add9f0d66d ("netfilter: flow table support for IPv4") Fixes: 0995210753a2 ("netfilter: flow table support for IPv6") Signed-off-by: Taehee Yoo Signed-off-by: Pablo Neira Ayuso commit 26a302afbe328ecb7507cae2035d938e6635131b Author: Taehee Yoo Date: Tue Apr 30 01:55:29 2019 +0900 netfilter: nf_flow_table: fix netdev refcnt leak flow_offload_alloc() calls nf_route() to get a dst_entry. Internally, nf_route() calls ip_route_output_key() that allocates a dst_entry and holds it. So, a dst_entry should be released by dst_release() if nf_route() is successful. Otherwise, netns exit routine cannot be finished and the following message is printed: [ 257.490952] unregister_netdevice: waiting for lo to become free. Usage count = 1 Fixes: ac2a66665e23 ("netfilter: add generic flow table infrastructure") Signed-off-by: Taehee Yoo Signed-off-by: Pablo Neira Ayuso commit 270a8a297f42ecff82060aaa53118361f09c1f7d Author: Pablo Neira Ayuso Date: Mon Apr 29 11:54:56 2019 +0200 netfilter: nft_flow_offload: add entry to flowtable after confirmation This is fixing flow offload for UDP traffic where packets only follow one single direction. The flow_offload_fixup_tcp() mechanism works fine in case that the offloaded entry remains in SYN_RECV state, given sequence tracking is reset and that conntrack handles syn+ack packets as a retransmission, ie. sES + synack => sIG for reply traffic. Fixes: a3c90f7a2323 ("netfilter: nf_tables: flow offload expression") Signed-off-by: Pablo Neira Ayuso commit 66293c46c9314d2b3e80be829a48fed17a848146 Author: Florian Westphal Date: Fri Apr 12 11:09:25 2019 +0200 netfilter: nf_tables: delay chain policy update until transaction is complete When we process a long ruleset of the form chain input { type filter hook input priority filter; policy drop; ... } Then the base chain gets registered early on, we then continue to process/validate the next messages coming in the same transaction. Problem is that if the base chain policy is 'drop', it will take effect immediately, which causes all traffic to get blocked until the transaction completes or is aborted. Fix this by deferring the policy until the transaction has been processed and all of the rules have been flagged as active. Reported-by: Jann Haber Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit a4cb98f32c9046fea28bcb4979182f2ff731a27a Author: Paul Gortmaker Date: Mon Apr 15 16:43:16 2019 -0400 netfilter: nf_tables: drop include of module.h from nf_tables.h Ideally, header files under include/linux shouldn't be adding includes of other headers, in anticipation of their consumers, but just the headers needed for the header itself to pass parsing with CPP. The module.h is particularly bad in this sense, as it itself does include a whole bunch of other headers, due to the complexity of module support. Since nf_tables.h is not going into a module struct looking for specific fields, we can just let it know that module is a struct, just like about 60 other include/linux headers already do. Signed-off-by: Paul Gortmaker Signed-off-by: Pablo Neira Ayuso commit c5f1931f66175d64cfe3db75da456622a32733d8 Author: Paul Gortmaker Date: Mon Apr 15 16:43:15 2019 -0400 netfilter: nf_tables: fix implicit include of module.h This file clearly uses modular infrastructure but does not call out the inclusion of explicitly. We add that include explicitly here, so we can tidy up some header usage elsewhere w/o causing build breakage. Signed-off-by: Paul Gortmaker Signed-off-by: Pablo Neira Ayuso commit f1f86d09ca7e35fb161a47bc54ec9cb2f4fe42d8 Author: Paul Gortmaker Date: Mon Apr 15 16:43:14 2019 -0400 netfilter: nf_tables: relocate header content to consumer The nf_tables.h header is used in a lot of files, but it turns out that there is only one actual user of nft_expr_clone(). Hence we relocate that function to be with the one consumer of it and avoid having to process it with CPP for all the other files. This will also enable a reduction in the other headers that the nf_tables.h itself has to include just to be stand-alone, hence a pending further significant reduction in the CPP content that needs to get processed for each netfilter file. Note that the explicit "inline" has been dropped as part of this relocation. In similar changes to this, I believe Dave has asked this be done, so we free up gcc to make the choice of whether to inline or not. Signed-off-by: Paul Gortmaker Signed-off-by: Pablo Neira Ayuso commit 5fbbeedb9a8f039e0a531435c7894905c1d51e77 Author: Qian Cai Date: Mon Apr 29 13:37:02 2019 -0400 arm64: mm: Remove pte_unmap_nested() As of commit ece0e2b6406a ("mm: remove pte_*map_nested()"), pte_unmap_nested() is no longer used and can be removed from the arm64 code. Signed-off-by: Qian Cai [will: also remove pte_offset_map_nested()] Signed-off-by: Will Deacon commit 74dd022f9e6260c3b5b8d15901d27ebcc5f21eda Author: Qian Cai Date: Mon Apr 29 13:37:01 2019 -0400 arm64: Fix compiler warning from pte_unmap() with -Wunused-but-set-variable When building with -Wunused-but-set-variable, the compiler shouts about a number of pte_unmap() users, since this expands to an empty macro on arm64: | mm/gup.c: In function 'gup_pte_range': | mm/gup.c:1727:16: warning: variable 'ptem' set but not used | [-Wunused-but-set-variable] | mm/gup.c: At top level: | mm/memory.c: In function 'copy_pte_range': | mm/memory.c:821:24: warning: variable 'orig_dst_pte' set but not used | [-Wunused-but-set-variable] | mm/memory.c:821:9: warning: variable 'orig_src_pte' set but not used | [-Wunused-but-set-variable] | mm/swap_state.c: In function 'swap_ra_info': | mm/swap_state.c:641:15: warning: variable 'orig_pte' set but not used | [-Wunused-but-set-variable] | mm/madvise.c: In function 'madvise_free_pte_range': | mm/madvise.c:318:9: warning: variable 'orig_pte' set but not used | [-Wunused-but-set-variable] Rewrite pte_unmap() as a static inline function, which silences the warnings. Signed-off-by: Qian Cai Signed-off-by: Will Deacon commit 3950746d9d8ef981c1cb842384e0e86e8d1aad76 Author: Nadav Amit Date: Thu Apr 25 17:11:41 2019 -0700 x86/alternatives: Add comment about module removal races Add a comment to clarify that users of text_poke() must ensure that no races with module removal take place. Signed-off-by: Nadav Amit Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Masami Hiramatsu Cc: Rik van Riel Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190426001143.4983-22-namit@vmware.com Signed-off-by: Ingo Molnar commit 241a1f22380646bc4d1dd18e5bc246877513da68 Author: Rick Edgecombe Date: Thu Apr 25 17:11:40 2019 -0700 x86/kprobes: Use vmalloc special flag Use new flag VM_FLUSH_RESET_PERMS for handling freeing of special permissioned memory in vmalloc and remove places where memory was set NX and RW before freeing which is no longer needed. Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Masami Hiramatsu Cc: Nadav Amit Cc: Rik van Riel Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190426001143.4983-21-namit@vmware.com Signed-off-by: Ingo Molnar commit 7fdfe1e40b225b1d163f9afed2fa3f04442dbaad Author: Rick Edgecombe Date: Thu Apr 25 17:11:39 2019 -0700 x86/ftrace: Use vmalloc special flag Use new flag VM_FLUSH_RESET_PERMS for handling freeing of special permissioned memory in vmalloc and remove places where memory was set NX and RW before freeing which is no longer needed. Tested-by: Steven Rostedt (VMware) Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Acked-by: Steven Rostedt (VMware) Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Nadav Amit Cc: Rik van Riel Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190426001143.4983-20-namit@vmware.com Signed-off-by: Ingo Molnar commit d53d2f78ceadba081fc7785570798c3c8d50a718 Author: Rick Edgecombe Date: Thu Apr 25 17:11:38 2019 -0700 bpf: Use vmalloc special flag Use new flag VM_FLUSH_RESET_PERMS for handling freeing of special permissioned memory in vmalloc and remove places where memory was set RW before freeing which is no longer needed. Don't track if the memory is RO anymore because it is now tracked in vmalloc. Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Alexei Starovoitov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Daniel Borkmann Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Nadav Amit Cc: Rik van Riel Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190426001143.4983-19-namit@vmware.com Signed-off-by: Ingo Molnar commit 1a7b7d9220819afe79d1ec5d759fe4349bd2453e Author: Rick Edgecombe Date: Thu Apr 25 17:11:37 2019 -0700 modules: Use vmalloc special flag Use new flag for handling freeing of special permissioned memory in vmalloc and remove places where memory was set RW before freeing which is no longer needed. Since freeing of VM_FLUSH_RESET_PERMS memory is not supported in an interrupt by vmalloc, the freeing of init sections is moved to a work queue. Instead of call_rcu it now uses synchronize_rcu() in the work queue. Lastly, there is now a WARN_ON in module_memfree since it should not be called in an interrupt with special memory as is required for VM_FLUSH_RESET_PERMS. Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Jessica Yu Cc: Linus Torvalds Cc: Nadav Amit Cc: Rik van Riel Cc: Steven Rostedt Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190426001143.4983-18-namit@vmware.com Signed-off-by: Ingo Molnar commit 868b104d7379e28013e9d48bdd2db25e0bdcf751 Author: Rick Edgecombe Date: Thu Apr 25 17:11:36 2019 -0700 mm/vmalloc: Add flag for freeing of special permsissions Add a new flag VM_FLUSH_RESET_PERMS, for enabling vfree operations to immediately clear executable TLB entries before freeing pages, and handle resetting permissions on the directmap. This flag is useful for any kind of memory with elevated permissions, or where there can be related permissions changes on the directmap. Today this is RO+X and RO memory. Although this enables directly vfreeing non-writeable memory now, non-writable memory cannot be freed in an interrupt because the allocation itself is used as a node on deferred free list. So when RO memory needs to be freed in an interrupt the code doing the vfree needs to have its own work queue, as was the case before the deferred vfree list was added to vmalloc. For architectures with set_direct_map_ implementations this whole operation can be done with one TLB flush when centralized like this. For others with directmap permissions, currently only arm64, a backup method using set_memory functions is used to reset the directmap. When arm64 adds set_direct_map_ functions, this backup can be removed. When the TLB is flushed to both remove TLB entries for the vmalloc range mapping and the direct map permissions, the lazy purge operation could be done to try to save a TLB flush later. However today vm_unmap_aliases could flush a TLB range that does not include the directmap. So a helper is added with extra parameters that can allow both the vmalloc address and the direct mapping to be flushed during this operation. The behavior of the normal vm_unmap_aliases function is unchanged. Suggested-by: Dave Hansen Suggested-by: Andy Lutomirski Suggested-by: Will Deacon Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Cc: Cc: Cc: Cc: Cc: Borislav Petkov Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Nadav Amit Cc: Rik van Riel Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190426001143.4983-17-namit@vmware.com Signed-off-by: Ingo Molnar commit d63326928611600ad65baff54a70f53b02b3cdfe Author: Rick Edgecombe Date: Thu Apr 25 17:11:35 2019 -0700 mm/hibernation: Make hibernation handle unmapped pages Make hibernate handle unmapped pages on the direct map when CONFIG_ARCH_HAS_SET_ALIAS=y is set. These functions allow for setting pages to invalid configurations, so now hibernate should check if the pages have valid mappings and handle if they are unmapped when doing a hibernate save operation. Previously this checking was already done when CONFIG_DEBUG_PAGEALLOC=y was configured. It does not appear to have a big hibernating performance impact. The speed of the saving operation before this change was measured as 819.02 MB/s, and after was measured at 813.32 MB/s. Before: [ 4.670938] PM: Wrote 171996 kbytes in 0.21 seconds (819.02 MB/s) After: [ 4.504714] PM: Wrote 178932 kbytes in 0.22 seconds (813.32 MB/s) Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Acked-by: Pavel Machek Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Nadav Amit Cc: Rafael J. Wysocki Cc: Rik van Riel Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190426001143.4983-16-namit@vmware.com Signed-off-by: Ingo Molnar commit d253ca0c3865a8d9a8c01143cf20425e0be4d0ce Author: Rick Edgecombe Date: Thu Apr 25 17:11:34 2019 -0700 x86/mm/cpa: Add set_direct_map_*() functions Add two new functions set_direct_map_default_noflush() and set_direct_map_invalid_noflush() for setting the direct map alias for the page to its default valid permissions and to an invalid state that cannot be cached in a TLB, respectively. These functions do not flush the TLB. Note, __kernel_map_pages() does something similar but flushes the TLB and doesn't reset the permission bits to default on all architectures. Also add an ARCH config ARCH_HAS_SET_DIRECT_MAP for specifying whether these have an actual implementation or a default empty one. Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Nadav Amit Cc: Rik van Riel Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190426001143.4983-15-namit@vmware.com Signed-off-by: Ingo Molnar commit 0a203df5cf0eb709be4f190314e262b72d7e5b76 Author: Nadav Amit Date: Thu Apr 25 17:11:33 2019 -0700 x86/alternatives: Remove the return value of text_poke_*() The return value of text_poke_early() and text_poke_bp() is useless. Remove it. Signed-off-by: Nadav Amit Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Masami Hiramatsu Cc: Rik van Riel Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190426001143.4983-14-namit@vmware.com Signed-off-by: Ingo Molnar commit bb0a008d6a2c543efc11313b448d2f26f91dc4f8 Author: Nadav Amit Date: Thu Apr 25 17:11:32 2019 -0700 x86/jump-label: Remove support for custom text poker There are only two types of text poking: early and breakpoint based. The use of a function pointer to perform text poking complicates the code and is probably inefficient due to the use of indirect branches. Signed-off-by: Nadav Amit Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Masami Hiramatsu Cc: Rik van Riel Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190426001143.4983-13-namit@vmware.com Signed-off-by: Ingo Molnar commit f2c65fb3221adc6b73b0549fc7ba892022db9797 Author: Nadav Amit Date: Thu Apr 25 17:11:31 2019 -0700 x86/modules: Avoid breaking W^X while loading modules When modules and BPF filters are loaded, there is a time window in which some memory is both writable and executable. An attacker that has already found another vulnerability (e.g., a dangling pointer) might be able to exploit this behavior to overwrite kernel code. Prevent having writable executable PTEs in this stage. In addition, avoiding having W+X mappings can also slightly simplify the patching of modules code on initialization (e.g., by alternatives and static-key), as would be done in the next patch. This was actually the main motivation for this patch. To avoid having W+X mappings, set them initially as RW (NX) and after they are set as RO set them as X as well. Setting them as executable is done as a separate step to avoid one core in which the old PTE is cached (hence writable), and another which sees the updated PTE (executable), which would break the W^X protection. Suggested-by: Thomas Gleixner Suggested-by: Andy Lutomirski Signed-off-by: Nadav Amit Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Jessica Yu Cc: Kees Cook Cc: Linus Torvalds Cc: Masami Hiramatsu Cc: Rik van Riel Link: https://lkml.kernel.org/r/20190426001143.4983-12-namit@vmware.com Signed-off-by: Ingo Molnar commit 7298e24f904224fa79eb8fd7e0fbd78950ccf2db Author: Nadav Amit Date: Thu Apr 25 17:11:30 2019 -0700 x86/kprobes: Set instruction page as executable Set the page as executable after allocation. This patch is a preparatory patch for a following patch that makes module allocated pages non-executable. While at it, do some small cleanup of what appears to be unnecessary masking. Signed-off-by: Nadav Amit Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Rik van Riel Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190426001143.4983-11-namit@vmware.com Signed-off-by: Ingo Molnar commit 3c0dab44e22782359a0a706cbce72de99a22aa75 Author: Nadav Amit Date: Thu Apr 25 17:11:29 2019 -0700 x86/ftrace: Set trampoline pages as executable Since alloc_module() will not set the pages as executable soon, set ftrace trampoline pages as executable after they are allocated. For the time being, do not change ftrace to use the text_poke() interface. As a result, ftrace still breaks W^X. Signed-off-by: Nadav Amit Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Steven Rostedt (VMware) Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Rik van Riel Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190426001143.4983-10-namit@vmware.com Signed-off-by: Ingo Molnar commit 86a22057127d1c0462a18901421bf1ff89491392 Author: Nadav Amit Date: Thu Apr 25 17:11:28 2019 -0700 x86/kgdb: Avoid redundant comparison of patched code text_poke() already ensures that the written value is the correct one and fails if that is not the case. There is no need for an additional comparison. Remove it. Signed-off-by: Nadav Amit Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Rik van Riel Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190426001143.4983-9-namit@vmware.com Signed-off-by: Ingo Molnar commit b3fd8e83ada0d51b71a84297480187e2d40e5ded Author: Nadav Amit Date: Thu Apr 25 17:11:27 2019 -0700 x86/alternatives: Use temporary mm for text poking text_poke() can potentially compromise security as it sets temporary PTEs in the fixmap. These PTEs might be used to rewrite the kernel code from other cores accidentally or maliciously, if an attacker gains the ability to write onto kernel memory. Moreover, since remote TLBs are not flushed after the temporary PTEs are removed, the time-window in which the code is writable is not limited if the fixmap PTEs - maliciously or accidentally - are cached in the TLB. To address these potential security hazards, use a temporary mm for patching the code. Finally, text_poke() is also not conservative enough when mapping pages, as it always tries to map 2 pages, even when a single one is sufficient. So try to be more conservative, and do not map more than needed. Signed-off-by: Nadav Amit Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Masami Hiramatsu Cc: Rik van Riel Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190426001143.4983-8-namit@vmware.com Signed-off-by: Ingo Molnar commit 4fc19708b165c1c152fa1f12f6600e66184b7786 Author: Nadav Amit Date: Fri Apr 26 16:22:46 2019 -0700 x86/alternatives: Initialize temporary mm for patching To prevent improper use of the PTEs that are used for text patching, the next patches will use a temporary mm struct. Initailize it by copying the init mm. The address that will be used for patching is taken from the lower area that is usually used for the task memory. Doing so prevents the need to frequently synchronize the temporary-mm (e.g., when BPF programs are installed), since different PGDs are used for the task memory. Finally, randomize the address of the PTEs to harden against exploits that use these PTEs. Suggested-by: Andy Lutomirski Tested-by: Masami Hiramatsu Signed-off-by: Nadav Amit Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Masami Hiramatsu Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Rik van Riel Cc: Thomas Gleixner Cc: akpm@linux-foundation.org Cc: ard.biesheuvel@linaro.org Cc: deneen.t.dock@intel.com Cc: kernel-hardening@lists.openwall.com Cc: kristen@linux.intel.com Cc: linux_dti@icloud.com Cc: will.deacon@arm.com Link: https://lkml.kernel.org/r/20190426232303.28381-8-nadav.amit@gmail.com Signed-off-by: Ingo Molnar commit 13585fa0668c724efab9635aaeef6ec390217415 Author: Nadav Amit Date: Thu Apr 25 17:11:25 2019 -0700 fork: Provide a function for copying init_mm Provide a function for copying init_mm. This function will be later used for setting a temporary mm. Tested-by: Masami Hiramatsu Signed-off-by: Nadav Amit Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Masami Hiramatsu Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Rik van Riel Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190426001143.4983-6-namit@vmware.com Signed-off-by: Ingo Molnar commit aad42dd44db086c79ca3f470ad563d2ac4ac218d Author: Nadav Amit Date: Fri Apr 26 16:22:44 2019 -0700 uprobes: Initialize uprobes earlier In order to have a separate address space for text poking, we need to duplicate init_mm early during start_kernel(). This, however, introduces a problem since uprobes functions are called from dup_mmap(), but uprobes is still not initialized in this early stage. Since uprobes initialization is necassary for fork, and since all the dependant initialization has been done when fork is initialized (percpu and vmalloc), move uprobes initialization to fork_init(). It does not seem uprobes introduces any security problem for the poking_mm. Crash and burn if uprobes initialization fails, similarly to other early initializations. Change the init_probes() name to probes_init() to match other early initialization functions name convention. Reported-by: kernel test robot Signed-off-by: Nadav Amit Signed-off-by: Peter Zijlstra (Intel) Cc: Andy Lutomirski Cc: Arnaldo Carvalho de Melo Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Rick Edgecombe Cc: Rik van Riel Cc: Thomas Gleixner Cc: akpm@linux-foundation.org Cc: ard.biesheuvel@linaro.org Cc: deneen.t.dock@intel.com Cc: kernel-hardening@lists.openwall.com Cc: kristen@linux.intel.com Cc: linux_dti@icloud.com Cc: will.deacon@arm.com Link: https://lkml.kernel.org/r/20190426232303.28381-6-nadav.amit@gmail.com Signed-off-by: Ingo Molnar commit d97080ebed7811a53c931032a284166ee46b9565 Author: Nadav Amit Date: Thu Apr 25 17:11:24 2019 -0700 x86/mm: Save debug registers when loading a temporary mm Prevent user watchpoints from mistakenly firing while the temporary mm is being used. As the addresses of the temporary mm might overlap those of the user-process, this is necessary to prevent wrong signals or worse things from happening. Signed-off-by: Nadav Amit Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Rik van Riel Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190426001143.4983-5-namit@vmware.com Signed-off-by: Ingo Molnar commit cefa929c034eb5d9c15c50088235a0093a219687 Author: Andy Lutomirski Date: Thu Apr 25 17:11:23 2019 -0700 x86/mm: Introduce temporary mm structs Using a dedicated page-table for temporary PTEs prevents other cores from using - even speculatively - these PTEs, thereby providing two benefits: (1) Security hardening: an attacker that gains kernel memory writing abilities cannot easily overwrite sensitive data. (2) Avoiding TLB shootdowns: the PTEs do not need to be flushed in remote page-tables. To do so a temporary mm_struct can be used. Mappings which are private for this mm can be set in the userspace part of the address-space. During the whole time in which the temporary mm is loaded, interrupts must be disabled. The first use-case for temporary mm struct, which will follow, is for poking the kernel text. [ Commit message was written by Nadav Amit ] Tested-by: Masami Hiramatsu Signed-off-by: Andy Lutomirski Signed-off-by: Nadav Amit Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Masami Hiramatsu Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Rik van Riel Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190426001143.4983-4-namit@vmware.com Signed-off-by: Ingo Molnar commit 1fd8de46d01d95f875c12684a6a03559831e8b4c Author: Nadav Amit Date: Thu Apr 25 17:11:22 2019 -0700 x86/jump_label: Use text_poke_early() during early init There is no apparent reason not to use text_poke_early() during early-init, since no patching of code that might be on the stack is done and only a single core is running. This is required for the next patches that would set a temporary mm for text poking, and this mm is only initialized after some static-keys are enabled/disabled. Signed-off-by: Nadav Amit Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Masami Hiramatsu Cc: Rik van Riel Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190426001143.4983-3-namit@vmware.com Signed-off-by: Ingo Molnar commit c7b6f29b6257532792fc722b68fcc0e00b5a856c Author: Nadav Amit Date: Thu Apr 25 17:11:43 2019 -0700 bpf: Fail bpf_probe_write_user() while mm is switched When using a temporary mm, bpf_probe_write_user() should not be able to write to user memory, since user memory addresses may be used to map kernel memory. Detect these cases and fail bpf_probe_write_user() in such cases. Suggested-by: Jann Horn Reported-by: Jann Horn Signed-off-by: Nadav Amit Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Alexei Starovoitov Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Daniel Borkmann Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Rik van Riel Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190426001143.4983-24-namit@vmware.com Signed-off-by: Ingo Molnar commit 5932c9fd19e6e5ac84756c5c32fe5155d9a6b458 Author: Nadav Amit Date: Thu Apr 25 17:11:42 2019 -0700 mm/tlb: Provide default nmi_uaccess_okay() x86 has an nmi_uaccess_okay(), but other architectures do not. Arch-independent code might need to know whether access to user addresses is ok in an NMI context or in other code whose execution context is unknown. Specifically, this function is needed for bpf_probe_write_user(). Add a default implementation of nmi_uaccess_okay() for architectures that do not have such a function. Signed-off-by: Nadav Amit Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Rik van Riel Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190426001143.4983-23-namit@vmware.com Signed-off-by: Ingo Molnar commit e836673c9b4966bc78e38aeda25f7022c57f0e90 Author: Nadav Amit Date: Thu Apr 25 17:11:21 2019 -0700 x86/alternatives: Add text_poke_kgdb() to not assert the lock when debugging text_mutex is currently expected to be held before text_poke() is called, but kgdb does not take the mutex, and instead *supposedly* ensures the lock is not taken and will not be acquired by any other core while text_poke() is running. The reason for the "supposedly" comment is that it is not entirely clear that this would be the case if gdb_do_roundup is zero. Create two wrapper functions, text_poke() and text_poke_kgdb(), which do or do not run the lockdep assertion respectively. While we are at it, change the return code of text_poke() to something meaningful. One day, callers might actually respect it and the existing BUG_ON() when patching fails could be removed. For kgdb, the return value can actually be used. Suggested-by: Peter Zijlstra Signed-off-by: Nadav Amit Signed-off-by: Rick Edgecombe Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Masami Hiramatsu Acked-by: Jiri Kosina Cc: Cc: Cc: Cc: Cc: Cc: Cc: Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Kees Cook Cc: Linus Torvalds Cc: Rik van Riel Cc: Thomas Gleixner Fixes: 9222f606506c ("x86/alternatives: Lockdep-enforce text_mutex in text_poke*()") Link: https://lkml.kernel.org/r/20190426001143.4983-2-namit@vmware.com Signed-off-by: Ingo Molnar commit f495222e28275222ab6fd93813bd3d462e16d340 Author: Takashi Iwai Date: Tue Apr 30 12:18:28 2019 +0200 ALSA: hda - Register irq handler after the chip initialization Currently the IRQ handler in HD-audio controller driver is registered before the chip initialization. That is, we have some window opened between the azx_acquire_irq() call and the CORB/RIRB setup. If an interrupt is triggered in this small window, the IRQ handler may access to the uninitialized RIRB buffer, which leads to a NULL dereference Oops. This is usually no big problem since most of Intel chips do register the IRQ via MSI, and we've already fixed the order of the IRQ enablement and the CORB/RIRB setup in the former commit b61749a89f82 ("sound: enable interrupt after dma buffer initialization"), hence the IRQ won't be triggered in that room. However, some platforms use a shared IRQ, and this may allow the IRQ trigger by another source. Another possibility is the kdump environment: a stale interrupt might be present in there, the IRQ handler can be falsely triggered as well. For covering this small race, let's move the azx_acquire_irq() call after hda_intel_init_chip() call. Although this is a bit radical change, it can cover more widely than checking the CORB/RIRB setup locally in the callee side. Reported-by: Liwei Song Signed-off-by: Takashi Iwai commit 359db57c34af15edf35492944af4d4417f59886c Author: Vincenzo Frascino Date: Mon Apr 29 18:27:13 2019 +0100 arm64: compat: Reduce address limit for 64K pages With the introduction of the config option that allows to enable kuser helpers, it is now possible to reduce TASK_SIZE_32 when these are disabled and 64K pages are enabled. This extends the compliance with the section 6.5.8 of the C standard (C99). Acked-by: Catalin Marinas Reported-by: Catalin Marinas Signed-off-by: Vincenzo Frascino Signed-off-by: Will Deacon commit 75a19a0202db21638a1c2b424afb867e1f9a2376 Author: Will Deacon Date: Mon Apr 29 17:26:22 2019 +0100 arm64: arch_timer: Ensure counter register reads occur with seqlock held When executing clock_gettime(), either in the vDSO or via a system call, we need to ensure that the read of the counter register occurs within the seqlock reader critical section. This ensures that updates to the clocksource parameters (e.g. the multiplier) are consistent with the counter value and therefore avoids the situation where time appears to go backwards across multiple reads. Extend the vDSO logic so that the seqlock critical section covers the read of the counter register as well as accesses to the data page. Since reads of the counter system registers are not ordered by memory barrier instructions, introduce dependency ordering from the counter read to a subsequent memory access so that the seqlock memory barriers apply to the counter access in both the vDSO and the system call paths. Cc: Cc: Marc Zyngier Tested-by: Vincenzo Frascino Link: https://lore.kernel.org/linux-arm-kernel/alpine.DEB.2.21.1902081950260.1662@nanos.tec.linutronix.de/ Reported-by: Thomas Gleixner Signed-off-by: Will Deacon commit 86836d641d33a23c05078e152f834b949bac7565 Author: Alexandre Belloni Date: Tue Apr 30 11:28:21 2019 +0200 rtc: jz4740: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Tested-by: Mathieu Malaterre Signed-off-by: Alexandre Belloni commit 7fe8fcee0cf90ef9aa4c6a123b8b6c3925ccded1 Author: Alexandre Belloni Date: Tue Apr 30 11:28:20 2019 +0200 rtc: jz4740: rework invalid time detection The scratchpad register is used to detect an invalid time when power to the RTC has been lost. Instead of deleting that precious information and set the time to the UNIX epoch, forward it to userspace. Tested-by: Mathieu Malaterre Signed-off-by: Alexandre Belloni commit 3b2dc19ff9a1495cf08752b5a1ba8b986473f39f Author: Alexandre Belloni Date: Tue Apr 30 11:28:19 2019 +0200 rtc: jz4740: use dev_pm_set_wake_irq() to simplify code Use dev_pm_set_wake_irq() to set the RTC as a wakeup source for suspend. This allows to remove the whole dev_pm_ops structure. Tested-by: Mathieu Malaterre Signed-off-by: Alexandre Belloni commit e72746e7912300ca48c427c3614569fcddd2e7f0 Author: Alexandre Belloni Date: Tue Apr 30 11:28:18 2019 +0200 rtc: jz4740: use .set_time Use .set_time instead of the deprecated .set_mmss. Tested-by: Mathieu Malaterre Signed-off-by: Alexandre Belloni commit d10dcc95fa6591280d45418c9f96997e7888575f Author: Alexandre Belloni Date: Tue Apr 30 11:28:17 2019 +0200 rtc: jz4740: remove useless check rtc_time64_to_tm always returns a valid tm, it is not necessary to validate it. Tested-by: Mathieu Malaterre Signed-off-by: Alexandre Belloni commit be8dce96f3f5b680ffffa915b0d906298b6fec7a Author: Alexandre Belloni Date: Tue Apr 30 11:28:16 2019 +0200 rtc: jz4740: switch to rtc_time64_to_tm/rtc_tm_to_time64 Call the 64bit versions of rtc_tm time conversion now that the range is enforced by the core. Tested-by: Mathieu Malaterre Signed-off-by: Alexandre Belloni commit a7ab6bed284f1fe70d847e93276ff2979122f555 Author: Alexandre Belloni Date: Tue Apr 30 11:28:15 2019 +0200 rtc: jz4740: set range RTC_SEC is a 32-bit seconds counter. Tested-by: Mathieu Malaterre Signed-off-by: Alexandre Belloni commit 0caecf5b00199636eb2d32201199ecd6be52558d Author: Paul Mackerras Date: Fri Apr 26 16:54:14 2019 +1000 KVM: PPC: Book3S HV: XIVE: Clear escalation interrupt pointers on device close This adds code to ensure that after a XIVE or XICS-on-XIVE KVM device is closed, KVM will not try to enable or disable any of the escalation interrupts for the VCPUs. We don't have to worry about races between clearing the pointers and use of the pointers by the XIVE context push/pull code, because the callers hold the vcpu->mutex, which is also taken by the KVM_RUN code. Therefore the vcpu cannot be entering or exiting the guest concurrently. Signed-off-by: Paul Mackerras commit 6f868405faf067e8cfb6a8349890e82f74616c75 Author: Paul Mackerras Date: Mon Apr 29 11:24:03 2019 +1000 KVM: PPC: Book3S HV: XIVE: Prevent races when releasing device Now that we have the possibility of a XIVE or XICS-on-XIVE device being released while the VM is still running, we need to be careful about races and potential use-after-free bugs. Although the kvmppc_xive struct is not freed, but kept around for re-use, the kvmppc_xive_vcpu structs are freed, and they are used extensively in both the XIVE native and XICS-on-XIVE code. There are various ways in which XIVE code gets invoked: - VCPU entry and exit, which do push and pull operations on the XIVE hardware - one_reg get and set functions (vcpu->mutex is held) - XICS hypercalls (but only inside guest execution, not from kvmppc_pseries_do_hcall) - device creation calls (kvm->lock is held) - device callbacks - get/set attribute, mmap, pagefault, release/destroy - set_mapped/clr_mapped calls (kvm->lock is held) - connect_vcpu calls - debugfs file read callbacks Inside a device release function, we know that userspace cannot have an open file descriptor referring to the device, nor can it have any mmapped regions from the device. Therefore the device callbacks are excluded, as are the connect_vcpu calls (since they need a fd for the device). Further, since the caller holds the kvm->lock mutex, no other device creation calls or set/clr_mapped calls can be executing concurrently. To exclude VCPU execution and XICS hypercalls, we temporarily set kvm->arch.mmu_ready to 0. This forces any VCPU task that is trying to enter the guest to take the kvm->lock mutex, which is held by the caller of the release function. Then, sending an IPI to all other CPUs forces any VCPU currently executing in the guest to exit. Finally, we take the vcpu->mutex for each VCPU around the process of cleaning up and freeing its XIVE data structures, in order to exclude any one_reg get/set calls. To exclude the debugfs read callbacks, we just need to ensure that debugfs_remove is called before freeing any data structures. Once it returns we know that no CPU can be executing the callbacks (for our kvmppc_xive instance). Signed-off-by: Paul Mackerras commit 5422e95103cf9663bc86cf1056a3ea44c2e2f09e Author: Cédric Le Goater Date: Thu Apr 18 12:39:42 2019 +0200 KVM: PPC: Book3S HV: XIVE: Replace the 'destroy' method by a 'release' method When a P9 sPAPR VM boots, the CAS negotiation process determines which interrupt mode to use (XICS legacy or XIVE native) and invokes a machine reset to activate the chosen mode. We introduce 'release' methods for the XICS-on-XIVE and the XIVE native KVM devices which are called when the file descriptor of the device is closed after the TIMA and ESB pages have been unmapped. They perform the necessary cleanups : clear the vCPU interrupt presenters that could be attached and then destroy the device. The 'release' methods replace the 'destroy' methods as 'destroy' is not called anymore once 'release' is. Compatibility with older QEMU is nevertheless maintained. This is not considered as a safe operation as the vCPUs are still running and could be referencing the KVM device through their presenters. To protect the system from any breakage, the kvmppc_xive objects representing both KVM devices are now stored in an array under the VM. Allocation is performed on first usage and memory is freed only when the VM exits. [paulus@ozlabs.org - Moved freeing of xive structures to book3s.c, put it under #ifdef CONFIG_KVM_XICS.] Signed-off-by: Cédric Le Goater Reviewed-by: David Gibson Signed-off-by: Paul Mackerras commit 2bde9b3ec8bdf60788e9e2ce8c07a2f8d6003dbd Author: Cédric Le Goater Date: Thu Apr 18 12:39:41 2019 +0200 KVM: Introduce a 'release' method for KVM devices When a P9 sPAPR VM boots, the CAS negotiation process determines which interrupt mode to use (XICS legacy or XIVE native) and invokes a machine reset to activate the chosen mode. To be able to switch from one interrupt mode to another, we introduce the capability to release a KVM device without destroying the VM. The KVM device interface is extended with a new 'release' method which is called when the file descriptor of the device is closed. Once 'release' is called, the 'destroy' method will not be called anymore as the device is removed from the device list of the VM. Cc: Paolo Bonzini Signed-off-by: Cédric Le Goater Reviewed-by: David Gibson Signed-off-by: Paul Mackerras commit 3fab2d10588e09abd4bd7b9bacce5e4e435993f6 Author: Cédric Le Goater Date: Thu Apr 18 12:39:40 2019 +0200 KVM: PPC: Book3S HV: XIVE: Activate XIVE exploitation mode Full support for the XIVE native exploitation mode is now available, advertise the capability KVM_CAP_PPC_IRQ_XIVE for guests running on PowerNV KVM Hypervisors only. Support for nested guests (pseries KVM Hypervisor) is not yet available. XIVE should also have been activated which is default setting on POWER9 systems running a recent Linux kernel. Signed-off-by: Cédric Le Goater Reviewed-by: David Gibson Signed-off-by: Paul Mackerras commit 232b984b7d55e68971962f07f1dd1d1eb1be52e0 Author: Cédric Le Goater Date: Thu Apr 18 12:39:39 2019 +0200 KVM: PPC: Book3S HV: XIVE: Add passthrough support The KVM XICS-over-XIVE device and the proposed KVM XIVE native device implement an IRQ space for the guest using the generic IPI interrupts of the XIVE IC controller. These interrupts are allocated at the OPAL level and "mapped" into the guest IRQ number space in the range 0-0x1FFF. Interrupt management is performed in the XIVE way: using loads and stores on the addresses of the XIVE IPI interrupt ESB pages. Both KVM devices share the same internal structure caching information on the interrupts, among which the xive_irq_data struct containing the addresses of the IPI ESB pages and an extra one in case of pass-through. The later contains the addresses of the ESB pages of the underlying HW controller interrupts, PHB4 in all cases for now. A guest, when running in the XICS legacy interrupt mode, lets the KVM XICS-over-XIVE device "handle" interrupt management, that is to perform the loads and stores on the addresses of the ESB pages of the guest interrupts. However, when running in XIVE native exploitation mode, the KVM XIVE native device exposes the interrupt ESB pages to the guest and lets the guest perform directly the loads and stores. The VMA exposing the ESB pages make use of a custom VM fault handler which role is to populate the VMA with appropriate pages. When a fault occurs, the guest IRQ number is deduced from the offset, and the ESB pages of associated XIVE IPI interrupt are inserted in the VMA (using the internal structure caching information on the interrupts). Supporting device passthrough in the guest running in XIVE native exploitation mode adds some extra refinements because the ESB pages of a different HW controller (PHB4) need to be exposed to the guest along with the initial IPI ESB pages of the XIVE IC controller. But the overall mechanic is the same. When the device HW irqs are mapped into or unmapped from the guest IRQ number space, the passthru_irq helpers, kvmppc_xive_set_mapped() and kvmppc_xive_clr_mapped(), are called to record or clear the passthrough interrupt information and to perform the switch. The approach taken by this patch is to clear the ESB pages of the guest IRQ number being mapped and let the VM fault handler repopulate. The handler will insert the ESB page corresponding to the HW interrupt of the device being passed-through or the initial IPI ESB page if the device is being removed. Signed-off-by: Cédric Le Goater Reviewed-by: David Gibson Signed-off-by: Paul Mackerras commit 6520ca64cde71b75dae54f3fcb33517a93d82486 Author: Cédric Le Goater Date: Thu Apr 18 12:39:38 2019 +0200 KVM: PPC: Book3S HV: XIVE: Add a mapping for the source ESB pages Each source is associated with an Event State Buffer (ESB) with a even/odd pair of pages which provides commands to manage the source: to trigger, to EOI, to turn off the source for instance. The custom VM fault handler will deduce the guest IRQ number from the offset of the fault, and the ESB page of the associated XIVE interrupt will be inserted into the VMA using the internal structure caching information on the interrupts. Signed-off-by: Cédric Le Goater Reviewed-by: David Gibson Signed-off-by: Paul Mackerras commit 39e9af3de5ca936098bc80ebe14401426673c208 Author: Cédric Le Goater Date: Thu Apr 18 12:39:37 2019 +0200 KVM: PPC: Book3S HV: XIVE: Add a TIMA mapping Each thread has an associated Thread Interrupt Management context composed of a set of registers. These registers let the thread handle priority management and interrupt acknowledgment. The most important are : - Interrupt Pending Buffer (IPB) - Current Processor Priority (CPPR) - Notification Source Register (NSR) They are exposed to software in four different pages each proposing a view with a different privilege. The first page is for the physical thread context and the second for the hypervisor. Only the third (operating system) and the fourth (user level) are exposed the guest. A custom VM fault handler will populate the VMA with the appropriate pages, which should only be the OS page for now. Signed-off-by: Cédric Le Goater Reviewed-by: David Gibson Signed-off-by: Paul Mackerras commit a1cd3f0883f435e5f9ae6530d7e62b361c87a91a Author: Cédric Le Goater Date: Thu Apr 18 12:39:36 2019 +0200 KVM: Introduce a 'mmap' method for KVM devices Some KVM devices will want to handle special mappings related to the underlying HW. For instance, the XIVE interrupt controller of the POWER9 processor has MMIO pages for thread interrupt management and for interrupt source control that need to be exposed to the guest when the OS has the required support. Cc: Paolo Bonzini Signed-off-by: Cédric Le Goater Reviewed-by: David Gibson Signed-off-by: Paul Mackerras commit e4945b9da52b36052b7c509ca31c5ead1d165b24 Author: Cédric Le Goater Date: Thu Apr 18 12:39:35 2019 +0200 KVM: PPC: Book3S HV: XIVE: Add get/set accessors for the VP XIVE state The state of the thread interrupt management registers needs to be collected for migration. These registers are cached under the 'xive_saved_state.w01' field of the VCPU when the VPCU context is pulled from the HW thread. An OPAL call retrieves the backup of the IPB register in the underlying XIVE NVT structure and merges it in the KVM state. Signed-off-by: Cédric Le Goater Reviewed-by: David Gibson Signed-off-by: Paul Mackerras commit e6714bd1671da9d8dfb5332075df251b746fd0fd Author: Cédric Le Goater Date: Thu Apr 18 12:39:34 2019 +0200 KVM: PPC: Book3S HV: XIVE: Add a control to dirty the XIVE EQ pages When migration of a VM is initiated, a first copy of the RAM is transferred to the destination before the VM is stopped, but there is no guarantee that the EQ pages in which the event notifications are queued have not been modified. To make sure migration will capture a consistent memory state, the XIVE device should perform a XIVE quiesce sequence to stop the flow of event notifications and stabilize the EQs. This is the purpose of the KVM_DEV_XIVE_EQ_SYNC control which will also marks the EQ pages dirty to force their transfer. Signed-off-by: Cédric Le Goater Reviewed-by: David Gibson Signed-off-by: Paul Mackerras commit 7b46b6169ab80f8f415a0ca2ea4aa7f1afdcc4f3 Author: Cédric Le Goater Date: Thu Apr 18 12:39:33 2019 +0200 KVM: PPC: Book3S HV: XIVE: Add a control to sync the sources This control will be used by the H_INT_SYNC hcall from QEMU to flush event notifications on the XIVE IC owning the source. Signed-off-by: Cédric Le Goater Reviewed-by: David Gibson Signed-off-by: Paul Mackerras commit 5ca806474859a0e94584b3a63f9509a25758408e Author: Cédric Le Goater Date: Thu Apr 18 12:39:32 2019 +0200 KVM: PPC: Book3S HV: XIVE: Add a global reset control This control is to be used by the H_INT_RESET hcall from QEMU. Its purpose is to clear all configuration of the sources and EQs. This is necessary in case of a kexec (for a kdump kernel for instance) to make sure that no remaining configuration is left from the previous boot setup so that the new kernel can start safely from a clean state. The queue 7 is ignored when the XIVE device is configured to run in single escalation mode. Prio 7 is used by escalations. The XIVE VP is kept enabled as the vCPU is still active and connected to the XIVE device. Signed-off-by: Cédric Le Goater Reviewed-by: David Gibson Signed-off-by: Paul Mackerras commit 13ce3297c5766b9541b6a7a255794c5168a7ae1a Author: Cédric Le Goater Date: Thu Apr 18 12:39:31 2019 +0200 KVM: PPC: Book3S HV: XIVE: Add controls for the EQ configuration These controls will be used by the H_INT_SET_QUEUE_CONFIG and H_INT_GET_QUEUE_CONFIG hcalls from QEMU to configure the underlying Event Queue in the XIVE IC. They will also be used to restore the configuration of the XIVE EQs and to capture the internal run-time state of the EQs. Both 'get' and 'set' rely on an OPAL call to access the EQ toggle bit and EQ index which are updated by the XIVE IC when event notifications are enqueued in the EQ. The value of the guest physical address of the event queue is saved in the XIVE internal xive_q structure for later use. That is when migration needs to mark the EQ pages dirty to capture a consistent memory state of the VM. To be noted that H_INT_SET_QUEUE_CONFIG does not require the extra OPAL call setting the EQ toggle bit and EQ index to configure the EQ, but restoring the EQ state will. Signed-off-by: Cédric Le Goater Reviewed-by: David Gibson Signed-off-by: Paul Mackerras commit e8676ce50e224d507946b1c535bc13584e6b49ff Author: Cédric Le Goater Date: Thu Apr 18 12:39:30 2019 +0200 KVM: PPC: Book3S HV: XIVE: Add a control to configure a source This control will be used by the H_INT_SET_SOURCE_CONFIG hcall from QEMU to configure the target of a source and also to restore the configuration of a source when migrating the VM. The XIVE source interrupt structure is extended with the value of the Effective Interrupt Source Number. The EISN is the interrupt number pushed in the event queue that the guest OS will use to dispatch events internally. Caching the EISN value in KVM eases the test when checking if a reconfiguration is indeed needed. Signed-off-by: Cédric Le Goater Reviewed-by: David Gibson Signed-off-by: Paul Mackerras commit 4131f83c3d64e591014dad14c7f8070c538b9422 Author: Cédric Le Goater Date: Thu Apr 18 12:39:29 2019 +0200 KVM: PPC: Book3S HV: XIVE: add a control to initialize a source The XIVE KVM device maintains a list of interrupt sources for the VM which are allocated in the pool of generic interrupts (IPIs) of the main XIVE IC controller. These are used for the CPU IPIs as well as for virtual device interrupts. The IRQ number space is defined by QEMU. The XIVE device reuses the source structures of the XICS-on-XIVE device for the source blocks (2-level tree) and for the source interrupts. Under XIVE native, the source interrupt caches mostly configuration information and is less used than under the XICS-on-XIVE device in which hcalls are still necessary at run-time. When a source is initialized in KVM, an IPI interrupt source is simply allocated at the OPAL level and then MASKED. KVM only needs to know about its type: LSI or MSI. Signed-off-by: Cédric Le Goater Reviewed-by: David Gibson Signed-off-by: Paul Mackerras commit eacc56bb9de3e6830ddc169553772cd6de59ee4c Author: Cédric Le Goater Date: Thu Apr 18 12:39:28 2019 +0200 KVM: PPC: Book3S HV: XIVE: Introduce a new capability KVM_CAP_PPC_IRQ_XIVE The user interface exposes a new capability KVM_CAP_PPC_IRQ_XIVE to let QEMU connect the vCPU presenters to the XIVE KVM device if required. The capability is not advertised for now as the full support for the XIVE native exploitation mode is not yet available. When this is case, the capability will be advertised on PowerNV Hypervisors only. Nested guests (pseries KVM Hypervisor) are not supported. Internally, the interface to the new KVM device is protected with a new interrupt mode: KVMPPC_IRQ_XIVE. Signed-off-by: Cédric Le Goater Reviewed-by: David Gibson Signed-off-by: Paul Mackerras commit 90c73795afa24890bd2ae4f3b359de04b4147d37 Author: Cédric Le Goater Date: Thu Apr 18 12:39:27 2019 +0200 KVM: PPC: Book3S HV: Add a new KVM device for the XIVE native exploitation mode This is the basic framework for the new KVM device supporting the XIVE native exploitation mode. The user interface exposes a new KVM device to be created by QEMU, only available when running on a L0 hypervisor. Support for nested guests is not available yet. The XIVE device reuses the device structure of the XICS-on-XIVE device as they have a lot in common. That could possibly change in the future if the need arise. Signed-off-by: Cédric Le Goater Reviewed-by: David Gibson Signed-off-by: Paul Mackerras commit a878957a817c674a99bd6741188aeaf95cc99247 Merge: 44b198aee1f2 c1fe190c0672 Author: Paul Mackerras Date: Tue Apr 30 19:32:47 2019 +1000 Merge remote-tracking branch 'remotes/powerpc/topic/ppc-kvm' into kvm-ppc-next This merges in the ppc-kvm topic branch from the powerpc tree to get patches which touch both general powerpc code and KVM code, one of which is a prerequisite for following patches. Signed-off-by: Paul Mackerras commit 44b198aee1f2649534bdf08bfd7517c56da2ed7e Author: Suraj Jitindar Singh Date: Tue Apr 30 10:41:23 2019 +1000 KVM: PPC: Book3S HV: Save/restore vrsave register in kvmhv_p9_guest_entry() On POWER9 and later processors where the host can schedule vcpus on a per thread basis, there is a streamlined entry path used when the guest is radix. This entry path saves/restores the fp and vr state in kvmhv_p9_guest_entry() by calling store_[fp/vr]_state() and load_[fp/vr]_state(). This is the same as the old entry path however the old entry path also saved/restored the VRSAVE register, which isn't done in the new entry path. This means that the vrsave register is now volatile across guest exit, which is an incorrect change in behaviour. Fix this by saving/restoring the vrsave register in kvmhv_p9_guest_entry(). This restores the old, correct, behaviour. Fixes: 95a6432ce9038 ("KVM: PPC: Book3S HV: Streamlined guest entry/exit path on P9 for radix guests") Signed-off-by: Suraj Jitindar Singh Signed-off-by: Paul Mackerras commit 70ea13f6e609e8762d9f57287ebf873a18c91a44 Author: Paul Mackerras Date: Mon Apr 29 19:02:58 2019 +1000 KVM: PPC: Book3S HV: Flush TLB on secondary radix threads When running on POWER9 with kvm_hv.indep_threads_mode = N and the host in SMT1 mode, KVM will run guest VCPUs on offline secondary threads. If those guests are in radix mode, we fail to load the LPID and flush the TLB if necessary, leading to the guest crashing with an unsupported MMU fault. This arises from commit 9a4506e11b97 ("KVM: PPC: Book3S HV: Make radix handle process scoped LPID flush in C, with relocation on", 2018-05-17), which didn't consider the case where indep_threads_mode = N. For simplicity, this makes the real-mode guest entry path flush the TLB in the same place for both radix and hash guests, as we did before 9a4506e11b97, though the code is now C code rather than assembly code. We also have the radix TLB flush open-coded rather than calling radix__local_flush_tlb_lpid_guest(), because the TLB flush can be called in real mode, and in real mode we don't want to invoke the tracepoint code. Fixes: 9a4506e11b97 ("KVM: PPC: Book3S HV: Make radix handle process scoped LPID flush in C, with relocation on") Signed-off-by: Paul Mackerras commit 2940ba0c48bf18e15e85cbb0f26c0e88e1211587 Author: Paul Mackerras Date: Mon Apr 29 19:00:40 2019 +1000 KVM: PPC: Book3S HV: Move HPT guest TLB flushing to C code This replaces assembler code in book3s_hv_rmhandlers.S that checks the kvm->arch.need_tlb_flush cpumask and optionally does a TLB flush with C code in book3s_hv_builtin.c. Note that unlike the radix version, the hash version doesn't do an explicit ERAT invalidation because we will invalidate and load up the SLB before entering the guest, and that will invalidate the ERAT. Signed-off-by: Paul Mackerras commit 7ae9bda7edf3dac56c9abaeec264ac08d399a1ff Author: Suraj Jitindar Singh Date: Mon Apr 29 18:57:45 2019 +1000 KVM: PPC: Book3S HV: Handle virtual mode in XIVE VCPU push code The code in book3s_hv_rmhandlers.S that pushes the XIVE virtual CPU context to the hardware currently assumes it is being called in real mode, which is usually true. There is however a path by which it can be executed in virtual mode, in the case where indep_threads_mode = N. A virtual CPU executing on an offline secondary thread can take a hypervisor interrupt in virtual mode and return from the kvmppc_hv_entry() call after the kvm_secondary_got_guest label. It is possible for it to be given another vcpu to execute before it gets to execute the stop instruction. In that case it will call kvmppc_hv_entry() for the second VCPU in virtual mode, and the XIVE vCPU push code will be executed in virtual mode. The result in that case will be a host crash due to an unexpected data storage interrupt caused by executing the stdcix instruction in virtual mode. This fixes it by adding a code path for virtual mode, which uses the virtual TIMA pointer and normal load/store instructions. [paulus@ozlabs.org - wrote patch description] Signed-off-by: Suraj Jitindar Singh Signed-off-by: Paul Mackerras commit 1f80ba3d201e55ec204f93af372d09412ab42d76 Author: Paul Mackerras Date: Mon Apr 29 15:42:36 2019 +1000 KVM: PPC: Book3S HV: Fix XICS-on-XIVE H_IPI when priority = 0 This fixes a bug in the XICS emulation on POWER9 machines which is triggered by the guest doing a H_IPI with priority = 0 (the highest priority). What happens is that the notification interrupt arrives at the destination at priority zero. The loop in scan_interrupts() sees that a priority 0 interrupt is pending, but because xc->mfrr is zero, we break out of the loop before taking the notification interrupt out of the queue and EOI-ing it. (This doesn't happen when xc->mfrr != 0; in that case we process the priority-0 notification interrupt on the first iteration of the loop, and then break out of a subsequent iteration of the loop with hirq == XICS_IPI.) To fix this, we move the prio >= xc->mfrr check down to near the end of the loop. However, there are then some other things that need to be adjusted. Since we are potentially handling the notification interrupt and also delivering an IPI to the guest in the same loop iteration, we need to update pending and handle any q->pending_count value before the xc->mfrr check, rather than at the end of the loop. Also, we need to update the queue pointers when we have processed and EOI-ed the notification interrupt, since we may not do it later. Signed-off-by: Paul Mackerras commit 21137301de5a5bd8be7b0de7896c3f139b7eb859 Author: Andrew Murray Date: Mon Apr 29 20:13:05 2019 +0100 arm64: KVM: Fix perf cycle counter support for VHE The kvm_vcpu_pmu_{read,write}_evtype_direct functions do not handle the cycle counter use-case, this leads to inaccurate counts and a WARN message when using perf with the cycle counter (-e cycle). Let's fix this by adding a use case for pmccfiltr_el0. Fixes: 39e3406a090a ("arm64: KVM: Avoid isb's by using direct pmxevtyper sysreg") Reported-by: Suzuki K Poulose Signed-off-by: Andrew Murray Signed-off-by: Marc Zyngier commit 4ebe36c94aed95de71a8ce6a6762226d31c938ee Author: Viresh Kumar Date: Tue Apr 30 11:35:52 2019 +0530 cpufreq: Fix kobject memleak Currently the error return path from kobject_init_and_add() is not followed by a call to kobject_put() - which means we are leaking the kobject. Fix it by adding a call to kobject_put() in the error path of kobject_init_and_add(). Signed-off-by: Viresh Kumar Reviewed-by: Tobin C. Harding Signed-off-by: Rafael J. Wysocki commit 0a0cf5988f52247259d05d6661820f6fef08a6da Merge: 75b0f8473fed 8db82563451f Author: Rafael J. Wysocki Date: Tue Apr 30 10:51:47 2019 +0200 Merge branch 'cpufreq/arm/linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm into pm-cpufreq Pull ARM cpufreq drivers changes for v5.2 from Viresh Kumar: "This pull request contains: - Fix for possible object reference leak for few drivers (Wen Yang). - Fix for armada frequency calculation (Gregory). - Code cleanup in maple driver (Viresh). This contains some non-ARM bits as well this time as the patches were picked up from a series." * 'cpufreq/arm/linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm: cpufreq: armada-37xx: fix frequency calculation for opp cpufreq: maple: Remove redundant code from maple_cpufreq_init() cpufreq: ppc_cbe: fix possible object reference leak cpufreq: pmac32: fix possible object reference leak cpufreq/pasemi: fix possible object reference leak cpufreq: maple: fix possible object reference leak cpufreq: kirkwood: fix possible object reference leak cpufreq: imx6q: fix possible object reference leak cpufreq: ap806: fix possible object reference leak commit 5a28654cc0e616e129ea23d353d8bed5babb8b31 Merge: 37624b58542f 2f36bde0fc8f Author: Rafael J. Wysocki Date: Tue Apr 30 10:48:44 2019 +0200 Merge branch 'opp/linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm into pm-opp Pull operating performance points (OPP) framework changes for v5.2 from Viresh Kumar: "This pull request contains: - New helper in OPP core to find best matching frequency for a voltage value." * 'opp/linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/pm: OPP: Introduce dev_pm_opp_find_freq_ceil_by_volt() commit 80ed53707bb3ec92c331ca33f45c113338ee434d Author: Johan Hovold Date: Fri Apr 26 08:01:32 2019 +0200 USB: serial: drop unused iflag macro Drop the RELEVANT_IFLAG() macro which essentially hasn't been used for over a decade except in some remnant debug printks that were recently removed. Reviewed-by: Greg Kroah-Hartman Signed-off-by: Johan Hovold commit 5b67b10a5229c26931b3b5a7d07e1095ba58acb4 Author: Johan Hovold Date: Thu Apr 25 18:05:38 2019 +0200 USB: serial: drop unnecessary goto Drop an unnecessary goto from a write-urb completion error path. Signed-off-by: Johan Hovold commit a8d78d9f385642696723fcb9c52c2c2805fa4249 Author: Johan Hovold Date: Thu Apr 25 18:05:37 2019 +0200 USB: serial: clean up throttle handling Clean up the throttle implementation by dropping the redundant throttle_req flag which was a remnant from back when there was only a single read URB. Also convert the throttled flag to an atomic bit flag. Signed-off-by: Johan Hovold commit 3f5edd58d040bfa4b74fb89bc02f0bc6b9cd06ab Author: Johan Hovold Date: Thu Apr 25 18:05:36 2019 +0200 USB: serial: fix unthrottle races Fix two long-standing bugs which could potentially lead to memory corruption or leave the port throttled until it is reopened (on weakly ordered systems), respectively, when read-URB completion races with unthrottle(). First, the URB must not be marked as free before processing is complete to prevent it from being submitted by unthrottle() on another CPU. CPU 1 CPU 2 ================ ================ complete() unthrottle() process_urb(); smp_mb__before_atomic(); set_bit(i, free); if (test_and_clear_bit(i, free)) submit_urb(); Second, the URB must be marked as free before checking the throttled flag to prevent unthrottle() on another CPU from failing to observe that the URB needs to be submitted if complete() sees that the throttled flag is set. CPU 1 CPU 2 ================ ================ complete() unthrottle() set_bit(i, free); throttled = 0; smp_mb__after_atomic(); smp_mb(); if (throttled) if (test_and_clear_bit(i, free)) return; submit_urb(); Note that test_and_clear_bit() only implies barriers when the test is successful. To handle the case where the URB is still in use an explicit barrier needs to be added to unthrottle() for the second race condition. Fixes: d83b405383c9 ("USB: serial: add support for multiple read urbs") Signed-off-by: Johan Hovold commit 7b5bb55d0dad859ee5bb41b1664e2ac577378c38 Author: Jeff LaBundy Date: Tue Apr 30 00:16:11 2019 -0700 Input: add support for Azoteq IQS550/572/525 This patch adds support for the Azoteq IQS550/572/525 family of trackpad/touchscreen controllers. The driver has been tested with an IQS550EV02 evaluation board. A demonstration of the driver's capabilities is available here: https://youtu.be/sRNNx4XZBts Signed-off-by: Jeff LaBundy Reviewed-by: Rob Herring Signed-off-by: Dmitry Torokhov commit 9628e15ca9d5f7595ba886173e98a139d0a56cd1 Author: Tvrtko Ursulin Date: Thu Apr 18 11:06:34 2019 +0100 drm/i915/icl: Whitelist GEN9_SLICE_COMMON_ECO_CHICKEN1 WaEnableStateCacheRedirectToCS context workaround configures the L3 cache to benefit 3d workloads but media has different requirements. Remove the workaround and whitelist the register to allow any userspace configure the behaviour to their liking. v2: * Remove the workaround apart from adding the whitelist. Signed-off-by: Tvrtko Ursulin Cc: Lionel Landwerlin Cc: kevin.ma@intel.com Cc: xiaogang.li@intel.com Acked-by: Lionel Landwerlin Acked-by: Anuj Phogat Link: https://patchwork.freedesktop.org/patch/msgid/20190418100634.984-1-tvrtko.ursulin@linux.intel.com Fixes: f63c7b4880aa ("drm/i915/icl: WaEnableStateCacheRedirectToCS") Reviewed-by: Joonas Lahtinen [tursulin: Anuj reported no GPU hangs or performance regressions with old Mesa on patched kernel.] (cherry picked from commit 0fc2273b9ab7f07cdef448e99525e481535e1ab0) Signed-off-by: Joonas Lahtinen commit 13bda2d07791d0093728aed7698e76d2977e7639 Author: Luca Weiss Date: Mon Apr 29 23:56:09 2019 -0700 Input: add a driver for GPIO controllable vibrators Provide a simple driver for GPIO controllable vibrators. It will be used by the Fairphone 2. Signed-off-by: Luca Weiss Reviewed-by: Rob Herring Signed-off-by: Dmitry Torokhov commit 7af2ea3b29b1640f5aafe79d7c110ce66190c04a Author: Nicholas Mc Guire Date: Sun Apr 14 06:49:50 2019 +0200 ARM: mvebu: drop return from void function The return statement is unnecessary here - so drop it. Signed-off-by: Nicholas Mc Guire Signed-off-by: Gregory CLEMENT commit 969ad77c14ab34d0046b013f2502de72647711d1 Author: Stefan Agner Date: Thu Apr 11 09:54:03 2019 +0200 ARM: mvebu: prefix coprocessor operand with p In every other instance where mrc is used the coprocessor operand is prefix with p (e.g. p15). Use the p prefix in this case too. This fixes a build issue when using LLVM's integrated assembler: arch/arm/mach-mvebu/coherency_ll.S:69:6: error: invalid operand for instruction mrc 15, 0, r3, cr0, cr0, 5 ^ arch/arm/mach-mvebu/pmsu_ll.S:19:6: error: invalid operand for instruction mrc 15, 0, r0, cr0, cr0, 5 @ get the CPU ID ^ Signed-off-by: Stefan Agner Acked-by: Nicolas Pitre Signed-off-by: Gregory CLEMENT commit 3ab2b5fdd1d8fa92dae631b913553e8798be23a7 Author: Stefan Agner Date: Thu Apr 11 09:54:02 2019 +0200 ARM: mvebu: drop unnecessary label The label mvebu_boot_wa_start is not necessary and causes a build issue when building with LLVM's integrated assembler: AS arch/arm/mach-mvebu/pmsu_ll.o arch/arm/mach-mvebu/pmsu_ll.S:59:1: error: invalid symbol redefinition mvebu_boot_wa_start: ^ Drop the label. Signed-off-by: Stefan Agner Acked-by: Nicolas Pitre Signed-off-by: Gregory CLEMENT commit 8f11b5ab441d3a80de7f079598a548350d3eed0b Author: Wen Yang Date: Tue Mar 5 19:32:55 2019 +0800 ARM: mvebu: fix a leaked reference by adding missing of_node_put The call to of_get_next_child returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: ./arch/arm/mach-mvebu/pm-board.c:135:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 88, but without a corresponding object release within this functio Signed-off-by: Wen Yang Cc: Jason Cooper Cc: Andrew Lunn Cc: Gregory Clement Cc: Sebastian Hesselbarth Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Gregory CLEMENT commit d5963d87bf84060ff3fb572bf6d3606f7fd087d1 Merge: 3db6d5a5ecaf 37624b58542f Author: Ingo Molnar Date: Tue Apr 30 07:51:54 2019 +0200 Merge tag 'v5.1-rc7' into x86/mm, to pick up fixes Signed-off-by: Ingo Molnar commit 6fabc9f20c5eddaa3193b85ce56c37a989d01065 Author: Palmer Dabbelt Date: Thu Apr 25 12:53:39 2019 -0700 KVM: PPC: Book3S HV: smb->smp comment fixup I made the same typo when trying to grep for uses of smp_wmb and figured I might as well fix it. Signed-off-by: Palmer Dabbelt Signed-off-by: Paul Mackerras commit e1a1ef84cd07f72ce12f139eb9a37d3f9028e7a7 Author: Alexey Kardashevskiy Date: Fri Mar 29 16:43:26 2019 +1100 KVM: PPC: Book3S: Allocate guest TCEs on demand too We already allocate hardware TCE tables in multiple levels and skip intermediate levels when we can, now it is a turn of the KVM TCE tables. Thankfully these are allocated already in 2 levels. This moves the table's last level allocation from the creating helper to kvmppc_tce_put() and kvm_spapr_tce_fault(). Since such allocation cannot be done in real mode, this creates a virtual mode version of kvmppc_tce_put() which handles allocations. This adds kvmppc_rm_ioba_validate() to do an additional test if the consequent kvmppc_tce_put() needs a page which has not been allocated; if this is the case, we bail out to virtual mode handlers. The allocations are protected by a new mutex as kvm->lock is not suitable for the task because the fault handler is called with the mmap_sem held but kvmhv_setup_mmu() locks kvm->lock and mmap_sem in the reverse order. Signed-off-by: Alexey Kardashevskiy Signed-off-by: Paul Mackerras commit 2001825efcea75e4209e4956f6cd619fbc246d16 Author: Alexey Kardashevskiy Date: Fri Mar 29 16:42:20 2019 +1100 KVM: PPC: Book3S HV: Avoid lockdep debugging in TCE realmode handlers The kvmppc_tce_to_ua() helper is called from real and virtual modes and it works fine as long as CONFIG_DEBUG_LOCKDEP is not enabled. However if the lockdep debugging is on, the lockdep will most likely break in kvm_memslots() because of srcu_dereference_check() so we need to use PPC-own kvm_memslots_raw() which uses realmode safe rcu_dereference_raw_notrace(). This creates a realmode copy of kvmppc_tce_to_ua() which replaces kvm_memslots() with kvm_memslots_raw(). Since kvmppc_rm_tce_to_ua() becomes static and can only be used inside HV KVM, this moves it earlier under CONFIG_KVM_BOOK3S_HV_POSSIBLE. This moves truly virtual-mode kvmppc_tce_to_ua() to where it belongs and drops the prmap parameter which was never used in the virtual mode. Fixes: d3695aa4f452 ("KVM: PPC: Add support for multiple-TCE hcalls", 2016-02-15) Signed-off-by: Alexey Kardashevskiy Signed-off-by: Paul Mackerras commit 3309bec85e60d60d6394802cb8e183a4f4a72def Author: Alexey Kardashevskiy Date: Fri Mar 29 16:40:13 2019 +1100 KVM: PPC: Book3S HV: Fix lockdep warning when entering the guest The trace_hardirqs_on() sets current->hardirqs_enabled and from here the lockdep assumes interrupts are enabled although they are remain disabled until the context switches to the guest. Consequent srcu_read_lock() checks the flags in rcu_lock_acquire(), observes disabled interrupts and prints a warning (see below). This moves trace_hardirqs_on/off closer to __kvmppc_vcore_entry to prevent lockdep from being confused. DEBUG_LOCKS_WARN_ON(current->hardirqs_enabled) WARNING: CPU: 16 PID: 8038 at kernel/locking/lockdep.c:4128 check_flags.part.25+0x224/0x280 [...] NIP [c000000000185b84] check_flags.part.25+0x224/0x280 LR [c000000000185b80] check_flags.part.25+0x220/0x280 Call Trace: [c000003fec253710] [c000000000185b80] check_flags.part.25+0x220/0x280 (unreliable) [c000003fec253780] [c000000000187ea4] lock_acquire+0x94/0x260 [c000003fec253840] [c00800001a1e9768] kvmppc_run_core+0xa60/0x1ab0 [kvm_hv] [c000003fec253a10] [c00800001a1ed944] kvmppc_vcpu_run_hv+0x73c/0xec0 [kvm_hv] [c000003fec253ae0] [c00800001a1095dc] kvmppc_vcpu_run+0x34/0x48 [kvm] [c000003fec253b00] [c00800001a1056bc] kvm_arch_vcpu_ioctl_run+0x2f4/0x400 [kvm] [c000003fec253b90] [c00800001a0f3618] kvm_vcpu_ioctl+0x460/0x850 [kvm] [c000003fec253d00] [c00000000041c4f4] do_vfs_ioctl+0xe4/0x930 [c000003fec253db0] [c00000000041ce04] ksys_ioctl+0xc4/0x110 [c000003fec253e00] [c00000000041ce78] sys_ioctl+0x28/0x80 [c000003fec253e20] [c00000000000b5a4] system_call+0x5c/0x70 Instruction dump: 419e0034 3d220004 39291730 81290000 2f890000 409e0020 3c82ffc6 3c62ffc5 3884be70 386329c0 4bf6ea71 60000000 <0fe00000> 3c62ffc6 3863be90 4801273d irq event stamp: 1025 hardirqs last enabled at (1025): [] kvmppc_run_core+0xa20/0x1ab0 [kvm_hv] hardirqs last disabled at (1024): [] kvmppc_run_core+0x650/0x1ab0 [kvm_hv] softirqs last enabled at (0): [] copy_process.isra.4.part.5+0x5f0/0x1d00 softirqs last disabled at (0): [<0000000000000000>] (null) ---[ end trace 31180adcc848993e ]--- possible reason: unannotated irqs-off. irq event stamp: 1025 hardirqs last enabled at (1025): [] kvmppc_run_core+0xa20/0x1ab0 [kvm_hv] hardirqs last disabled at (1024): [] kvmppc_run_core+0x650/0x1ab0 [kvm_hv] softirqs last enabled at (0): [] copy_process.isra.4.part.5+0x5f0/0x1d00 softirqs last disabled at (0): [<0000000000000000>] (null) Fixes: 8b24e69fc47e ("KVM: PPC: Book3S HV: Close race with testing for signals on guest entry", 2017-06-26) Signed-off-by: Alexey Kardashevskiy Signed-off-by: Paul Mackerras commit eadfb1c5f8c02f428a565e62e908e99900b697e4 Author: Suraj Jitindar Singh Date: Fri Mar 22 17:05:45 2019 +1100 KVM: PPC: Book3S HV: Implement real mode H_PAGE_INIT handler Implement a real mode handler for the H_CALL H_PAGE_INIT which can be used to zero or copy a guest page. The page is defined to be 4k and must be 4k aligned. The in-kernel real mode handler halves the time to handle this H_CALL compared to handling it in userspace for a hash guest. Signed-off-by: Suraj Jitindar Singh Signed-off-by: Paul Mackerras commit 2d34d1c3bbfd98da5e61c4caac3dda1366544aad Author: Suraj Jitindar Singh Date: Fri Mar 22 17:05:44 2019 +1100 KVM: PPC: Book3S HV: Implement virtual mode H_PAGE_INIT handler Implement a virtual mode handler for the H_CALL H_PAGE_INIT which can be used to zero or copy a guest page. The page is defined to be 4k and must be 4k aligned. The in-kernel handler halves the time to handle this H_CALL compared to handling it in userspace for a radix guest. Signed-off-by: Suraj Jitindar Singh Signed-off-by: Paul Mackerras commit 7a1d8390d015a13c42b1effa1f22fda0858fe6f9 Author: Antoine Tenart Date: Fri Apr 26 18:41:23 2019 +0200 net: phy: micrel: make sure the factory test bit is cleared The KSZ8081 PHY has a factory test mode which is set at the de-assertion of the reset line based on the RXER (KSZ8081RNA/RND) or TXC (KSZ8081MNX/RNB) pin. If a pull-down is missing, or if the pin has a pull-up, the factory test mode should be cleared by manually writing a 0 (according to the datasheet). This patch makes sure this factory test bit is cleared in config_init(). Tested-by: Alexandre Belloni Signed-off-by: Antoine Tenart Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 7ae3f6e130e8dc6188b59e3b4ebc2f16e9c8d053 Author: Nicholas Piggin Date: Tue Apr 9 14:40:05 2019 +1000 powerpc/watchdog: Use hrtimers for per-CPU heartbeat Using a jiffies timer creates a dependency on the tick_do_timer_cpu incrementing jiffies. If that CPU has locked up and jiffies is not incrementing, the watchdog heartbeat timer for all CPUs stops and creates false positives and confusing warnings on local CPUs, and also causes the SMP detector to stop, so the root cause is never detected. Fix this by using hrtimer based timers for the watchdog heartbeat, like the generic kernel hardlockup detector. Cc: Gautham R. Shenoy Reported-by: Ravikumar Bangoria Signed-off-by: Nicholas Piggin Tested-by: Ravi Bangoria Reported-by: Ravi Bangoria Reviewed-by: Gautham R. Shenoy Signed-off-by: Michael Ellerman commit 57ddd16b111ba865cab2fa6188f72adb54332b1e Author: Patrick Venture Date: Tue Apr 16 08:41:47 2019 -0700 dt-bindings: Add isl68137 as a trivial device The isl68137 is a digital output 7-phrase configurable PWM controller with an AVSBus interface from Intersil. Signed-off-by: Patrick Venture Acked-by: Guenter Roeck Signed-off-by: Rob Herring commit 083284961ad0015ad8ec9cc3739f2856d2d7fae8 Author: Patrick Venture Date: Tue Apr 16 08:41:38 2019 -0700 dt-bindings: Add ir38064 as a trivial device The ir38064 is a voltage regulator from Infineon. Signed-off-by: Patrick Venture Acked-by: Guenter Roeck Signed-off-by: Rob Herring commit b9ef5513c99bf9c8bfd9c9e8051b67f52b2dee1e Author: Tetsuo Handa Date: Fri Apr 12 19:59:35 2019 +0900 smack: Check address length before reading address family KMSAN will complain if valid address length passed to bind()/connect()/ sendmsg() is shorter than sizeof("struct sockaddr"->sa_family) bytes. Also, since smk_ipv6_port_label()/smack_netlabel_send()/ smack_ipv6host_label()/smk_ipv6_check()/smk_ipv6_port_check() are not checking valid address length and/or address family, make sure we check both. The minimal valid length in smack_socket_connect() is changed from sizeof(struct sockaddr_in6) bytes to SIN6_LEN_RFC2133 bytes, for it seems that Smack is not using "struct sockaddr_in6"->sin6_scope_id field. Signed-off-by: Tetsuo Handa Signed-off-by: Casey Schaufler commit b169e64a24442e02cafee1586f17fcb713fe65a6 Author: Yevgeny Kliteynik Date: Mon Apr 29 18:14:20 2019 +0000 net/mlx5: Geneve, Add flow table capabilities for Geneve decap with TLV options Introduce specification for Geneve decap flow with encapsulation options and allow creation of rules that are matching on Geneve TLV options. Reviewed-by: Oz Shlomo Signed-off-by: Yevgeny Kliteynik Signed-off-by: Saeed Mahameed commit 75d90e7def8e20b57c1de9e2b672c3bf9249da83 Author: Yevgeny Kliteynik Date: Mon Apr 29 18:14:18 2019 +0000 net/mlx5: Geneve, Add basic Geneve encap/decap flow table capabilities Introduce support for Geneve flow specification and allow the creation of rules that are matching on basic Geneve protocol fields: VNI, OAM bit, protocol type, options length. Reviewed-by: Oz Shlomo Signed-off-by: Yevgeny Kliteynik Signed-off-by: Saeed Mahameed commit 80f09dfc237f181e92968a72d97b7a4202baa453 Author: Maor Gottlieb Date: Mon Apr 29 18:14:16 2019 +0000 net/mlx5: Eswitch, enable RoCE loopback traffic When in switchdev mode, we would like to treat loopback RoCE traffic (on eswitch manager) as RDMA and not as regular Ethernet traffic In order to enable it we add flow steering rule that forward RoCE loopback traffic to the HW RoCE filter (by adding allow rule). In addition we add RoCE address in GID index 0, which will be set in the RoCE loopback packet. Signed-off-by: Maor Gottlieb Reviewed-by: Mark Bloch Acked-by: Leon Romanovsky Signed-off-by: Saeed Mahameed commit f6f7d6b5bd818cc84eebb55ba6bcba38cfd3b385 Author: Maor Gottlieb Date: Mon Apr 29 18:14:14 2019 +0000 net/mlx5: Add new miss flow table action Flow table supports three types of miss action: 1. Default miss action - go to default miss table according to table. 2. Go to specific table. 3. Switch domain - go to the root table of an alternative steering table domain. New table miss action was added - switch_domain. The next domain for RDMA_RX namespace is the NIC RX domain. Signed-off-by: Maor Gottlieb Reviewed-by: Mark Bloch Signed-off-by: Saeed Mahameed commit d83eb50e29de36ddc819863ab7b9d2da58bccbd0 Author: Maor Gottlieb Date: Mon Apr 29 18:14:12 2019 +0000 net/mlx5: Add support in RDMA RX steering Add new flow steering namespace - MLX5_FLOW_NAMESPACE_RDMA_RX. Flow steering rules in this namespace are used to filter RDMA traffic. Signed-off-by: Maor Gottlieb Reviewed-by: Mark Bloch Signed-off-by: Saeed Mahameed commit ae288a487514ed0b87dd489b77eeca09e1a32fc1 Author: Maor Gottlieb Date: Mon Apr 29 18:14:10 2019 +0000 net/mlx5: Pass flow steering objects to fs_cmd Pass the flow steering objects instead of their attributes to fs_cmd in order to decrease number of arguments and in addition it will be used to update object fields. Pass the flow steering root namespace instead of the device so will have context to the namespace in the fs_cmd layer. Signed-off-by: Maor Gottlieb Signed-off-by: Saeed Mahameed commit 72c6f5243999304915e90c07bf390209fb282143 Author: Aya Levin Date: Mon Apr 29 18:14:09 2019 +0000 net/mlx5: Enable general events on all interfaces Open events of type 'GENERAL' to all types of interfaces. Prior to this patch, 'GENERAL' events were captured only by Ethernet interfaces. Other interface types (non-Ethernet) were excluded and couldn't receive 'GENERAL' events. Fixes: 5d3c537f9070 ("net/mlx5: Handle event of power detection in the PCIE slot") Signed-off-by: Aya Levin Signed-off-by: Saeed Mahameed commit 6cfdc7e4684287cea37dcfbfb1b545273e757355 Author: Aya Levin Date: Mon Apr 29 18:14:07 2019 +0000 IB/mlx5: Restrict 'DELAY_DROP_TIMEOUT' subtype to Ethernet interfaces Subtype 'DELAY_DROP_TIMEOUT' (under 'GENERAL' event) is restricted to Ethernet interfaces. This patch doesn't change functionality or breaks current flow. In the downstream patch, non Ethernet (like IB) interfaces will receive 'GENERAL' event. Fixes: 5d3c537f9070 ("net/mlx5: Handle event of power detection in the PCIE slot") Signed-off-by: Aya Levin Signed-off-by: Saeed Mahameed commit c42260f1954598b92d9e834f3d55160318573a5e Author: Vu Pham Date: Mon Apr 29 18:14:05 2019 +0000 net/mlx5: Separate and generalize dma device from pci device The mlx5 Sub-Function (SF) sub device will be introduced in subsequent patches. It will be created as mediated device and belong to mdev bus. It is necessary to treat dma operations on PF, VF and SF in uniform way, hence reduce the dependency on pdev pci dev struct and work directly out of newly introduced 'struct device' from previous patch. This patch does not change any functionality. Signed-off-by: Vu Pham Reviewed-by: Parav Pandit Signed-off-by: Saeed Mahameed commit 27b942fbbd3107d4e969ece133925cd646239ef4 Author: Parav Pandit Date: Mon Apr 29 18:14:02 2019 +0000 net/mlx5: Get rid of storing copy of device name Currently mlx5 core stores copy of the PCI device name in a mlx5_priv structure and uses pr_warn, pr_err helpers. Get rid of the copy of this name; instead store the parent device pointer that contains name as well as dma specific parameters. This also allows to use kernel's well defined dev_warn, dev_err, dev_dbg device specific print routines. This is also a preparation patch to access non PCI parent device in future. Signed-off-by: Parav Pandit Signed-off-by: Saeed Mahameed commit 316793fb2d907d4726b4977b6be26ec653827774 Author: Eli Britstein Date: Mon Apr 29 18:14:01 2019 +0000 net/mlx5: E-Switch: Introduce prio tag mode Current ConnectX HW is unable to perform VLAN pop in TX path and VLAN push on RX path. To workaround that limitation untagged packets will be tagged with VLAN ID 0x000 (priority tag) and pop/push actions will be replaced by VLAN re-write actions (which are supported by the HW). Introduce prio tag mode as a pre-step to controlling the workaround behavior. Signed-off-by: Eli Britstein Reviewed-by: Oz Shlomo Signed-off-by: Saeed Mahameed commit fd7f744caed82dcfd3a23bce8843836d6e94d584 Author: Nick Desaulniers Date: Tue Apr 23 14:22:53 2019 -0700 riscv: vdso: drop unnecessary cc-ldoption Towards the goal of removing cc-ldoption, it seems that --hash-style= was added to binutils 2.17.50.0.2 in 2006. The minimal required version of binutils for the kernel according to Documentation/process/changes.rst is 2.20. Link: https://gcc.gnu.org/ml/gcc/2007-01/msg01141.html Cc: clang-built-linux@googlegroups.com Suggested-by: Masahiro Yamada Signed-off-by: Nick Desaulniers Reviewed-by: Christoph Hellwig Signed-off-by: Palmer Dabbelt commit 8cd117e712e17bc9af07638d73261603ef8f4e8d Author: Jacky Bai Date: Thu Apr 25 08:10:08 2019 +0000 clk: imx: keep uart clock on during system boot Keep uart clocks enabled when earlyprintk or earlycon is active. Signed-off-by: Jacky Bai Signed-off-by: Stephen Boyd commit b4a4cb5a0454cf48559d92cd1e8fb04d57194514 Author: Anson Huang Date: Mon Apr 22 08:32:45 2019 +0000 clk: imx: correct i.MX7D AV PLL num/denom offset According reference manual, i.MX7D's audio/video PLL's num/denom register offset are 0x20/0x30, they are different from i.MX6's audio/video PLL, correct it by introducing new offset variables for audio/video PLL and using runtime assignment based on PLL type. Signed-off-by: Anson Huang Signed-off-by: Stephen Boyd commit a6c6cb2e8bdf5abe53656c9d625fc3b7974432ff Author: Paul Walmsley Date: Thu Apr 11 01:27:34 2019 -0700 dt-bindings: clk: add documentation for the SiFive PRCI driver Add DT binding documentation for the Linux driver for the SiFive PRCI clock & reset control IP block, as found on the SiFive FU540 chip. This version includes changes requested by Stephen Boyd and Rob Herring , and fixes some errors in the initial version. Signed-off-by: Paul Walmsley Signed-off-by: Paul Walmsley Cc: Michael Turquette Cc: Stephen Boyd Cc: Rob Herring Cc: Mark Rutland Cc: Palmer Dabbelt Cc: Megan Wachs Cc: linux-clk@vger.kernel.org Cc: devicetree@vger.kernel.org Cc: linux-riscv@lists.infradead.org Cc: linux-kernel@vger.kernel.org Reviewed-by: Rob Herring Signed-off-by: Stephen Boyd commit d4023db71108375e4194e92730ba0d32d7f07813 Author: Bart Van Assche Date: Wed Apr 17 14:44:43 2019 -0700 scsi: qla2xxx: Avoid that lockdep complains about unsafe locking in tcm_qla2xxx_close_session() This patch avoids that lockdep reports the following warning: ===================================================== WARNING: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected 5.1.0-rc1-dbg+ #11 Tainted: G W ----------------------------------------------------- rmdir/1478 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire: 00000000e7ac4607 (&(&k->k_lock)->rlock){+.+.}, at: klist_next+0x43/0x1d0 and this task is already holding: 00000000cf0baf5e (&(&ha->tgt.sess_lock)->rlock){-...}, at: tcm_qla2xxx_close_session+0x57/0xb0 [tcm_qla2xxx] which would create a new lock dependency: (&(&ha->tgt.sess_lock)->rlock){-...} -> (&(&k->k_lock)->rlock){+.+.} but this new dependency connects a HARDIRQ-irq-safe lock: (&(&ha->tgt.sess_lock)->rlock){-...} ... which became HARDIRQ-irq-safe at: lock_acquire+0xe3/0x200 _raw_spin_lock_irqsave+0x3d/0x60 qla2x00_fcport_event_handler+0x1f3d/0x22b0 [qla2xxx] qla2x00_async_login_sp_done+0x1dc/0x1f0 [qla2xxx] qla24xx_process_response_queue+0xa37/0x10e0 [qla2xxx] qla24xx_msix_rsp_q+0x79/0xf0 [qla2xxx] __handle_irq_event_percpu+0x79/0x3c0 handle_irq_event_percpu+0x70/0xf0 handle_irq_event+0x5a/0x8b handle_edge_irq+0x12c/0x310 handle_irq+0x192/0x20a do_IRQ+0x73/0x160 ret_from_intr+0x0/0x1d default_idle+0x23/0x1f0 arch_cpu_idle+0x15/0x20 default_idle_call+0x35/0x40 do_idle+0x2bb/0x2e0 cpu_startup_entry+0x1d/0x20 start_secondary+0x24d/0x2d0 secondary_startup_64+0xa4/0xb0 to a HARDIRQ-irq-unsafe lock: (&(&k->k_lock)->rlock){+.+.} ... which became HARDIRQ-irq-unsafe at: ... lock_acquire+0xe3/0x200 _raw_spin_lock+0x32/0x50 klist_add_tail+0x33/0xb0 device_add+0x7f4/0xb60 device_create_groups_vargs+0x11c/0x150 device_create_with_groups+0x89/0xb0 vtconsole_class_init+0xb2/0x124 do_one_initcall+0xc5/0x3ce kernel_init_freeable+0x295/0x32e kernel_init+0x11/0x11b ret_from_fork+0x3a/0x50 other info that might help us debug this: Possible interrupt unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&(&k->k_lock)->rlock); local_irq_disable(); lock(&(&ha->tgt.sess_lock)->rlock); lock(&(&k->k_lock)->rlock); lock(&(&ha->tgt.sess_lock)->rlock); *** DEADLOCK *** 4 locks held by rmdir/1478: #0: 000000002c7f1ba4 (sb_writers#10){.+.+}, at: mnt_want_write+0x32/0x70 #1: 00000000c85eb147 (&default_group_class[depth - 1]#2/1){+.+.}, at: do_rmdir+0x217/0x2d0 #2: 000000002b164d6f (&sb->s_type->i_mutex_key#13){++++}, at: vfs_rmdir+0x7e/0x1d0 #3: 00000000cf0baf5e (&(&ha->tgt.sess_lock)->rlock){-...}, at: tcm_qla2xxx_close_session+0x57/0xb0 [tcm_qla2xxx] the dependencies between HARDIRQ-irq-safe lock and the holding lock: -> (&(&ha->tgt.sess_lock)->rlock){-...} ops: 127 { IN-HARDIRQ-W at: lock_acquire+0xe3/0x200 _raw_spin_lock_irqsave+0x3d/0x60 qla2x00_fcport_event_handler+0x1f3d/0x22b0 [qla2xxx] qla2x00_async_login_sp_done+0x1dc/0x1f0 [qla2xxx] qla24xx_process_response_queue+0xa37/0x10e0 [qla2xxx] qla24xx_msix_rsp_q+0x79/0xf0 [qla2xxx] __handle_irq_event_percpu+0x79/0x3c0 handle_irq_event_percpu+0x70/0xf0 handle_irq_event+0x5a/0x8b handle_edge_irq+0x12c/0x310 handle_irq+0x192/0x20a do_IRQ+0x73/0x160 ret_from_intr+0x0/0x1d default_idle+0x23/0x1f0 arch_cpu_idle+0x15/0x20 default_idle_call+0x35/0x40 do_idle+0x2bb/0x2e0 cpu_startup_entry+0x1d/0x20 start_secondary+0x24d/0x2d0 secondary_startup_64+0xa4/0xb0 INITIAL USE at: lock_acquire+0xe3/0x200 _raw_spin_lock_irqsave+0x3d/0x60 qla2x00_loop_resync+0xb3d/0x2690 [qla2xxx] qla2x00_do_dpc+0xcee/0xf30 [qla2xxx] kthread+0x1d2/0x1f0 ret_from_fork+0x3a/0x50 } ... key at: [] __key.62804+0x0/0xfffffffffff7e900 [qla2xxx] ... acquired at: __lock_acquire+0x11ed/0x1b60 lock_acquire+0xe3/0x200 _raw_spin_lock_irqsave+0x3d/0x60 klist_next+0x43/0x1d0 device_for_each_child+0x96/0x110 scsi_target_block+0x3c/0x40 [scsi_mod] fc_remote_port_delete+0xe7/0x1c0 [scsi_transport_fc] qla2x00_mark_device_lost+0x4d3/0x500 [qla2xxx] qlt_unreg_sess+0x104/0x2c0 [qla2xxx] tcm_qla2xxx_close_session+0xa2/0xb0 [tcm_qla2xxx] target_shutdown_sessions+0x17b/0x190 [target_core_mod] core_tpg_del_initiator_node_acl+0xf3/0x1f0 [target_core_mod] target_fabric_nacl_base_release+0x25/0x30 [target_core_mod] config_item_release+0x9f/0x120 [configfs] config_item_put+0x29/0x2b [configfs] configfs_rmdir+0x3d2/0x520 [configfs] vfs_rmdir+0xb3/0x1d0 do_rmdir+0x25c/0x2d0 __x64_sys_rmdir+0x24/0x30 do_syscall_64+0x77/0x220 entry_SYSCALL_64_after_hwframe+0x49/0xbe the dependencies between the lock to be acquired and HARDIRQ-irq-unsafe lock: -> (&(&k->k_lock)->rlock){+.+.} ops: 14568 { HARDIRQ-ON-W at: lock_acquire+0xe3/0x200 _raw_spin_lock+0x32/0x50 klist_add_tail+0x33/0xb0 device_add+0x7f4/0xb60 device_create_groups_vargs+0x11c/0x150 device_create_with_groups+0x89/0xb0 vtconsole_class_init+0xb2/0x124 do_one_initcall+0xc5/0x3ce kernel_init_freeable+0x295/0x32e kernel_init+0x11/0x11b ret_from_fork+0x3a/0x50 SOFTIRQ-ON-W at: lock_acquire+0xe3/0x200 _raw_spin_lock+0x32/0x50 klist_add_tail+0x33/0xb0 device_add+0x7f4/0xb60 device_create_groups_vargs+0x11c/0x150 device_create_with_groups+0x89/0xb0 vtconsole_class_init+0xb2/0x124 do_one_initcall+0xc5/0x3ce kernel_init_freeable+0x295/0x32e kernel_init+0x11/0x11b ret_from_fork+0x3a/0x50 INITIAL USE at: lock_acquire+0xe3/0x200 _raw_spin_lock+0x32/0x50 klist_add_tail+0x33/0xb0 device_add+0x7f4/0xb60 device_create_groups_vargs+0x11c/0x150 device_create_with_groups+0x89/0xb0 vtconsole_class_init+0xb2/0x124 do_one_initcall+0xc5/0x3ce kernel_init_freeable+0x295/0x32e kernel_init+0x11/0x11b ret_from_fork+0x3a/0x50 } ... key at: [] __key.15805+0x0/0x40 ... acquired at: __lock_acquire+0x11ed/0x1b60 lock_acquire+0xe3/0x200 _raw_spin_lock_irqsave+0x3d/0x60 klist_next+0x43/0x1d0 device_for_each_child+0x96/0x110 scsi_target_block+0x3c/0x40 [scsi_mod] fc_remote_port_delete+0xe7/0x1c0 [scsi_transport_fc] qla2x00_mark_device_lost+0x4d3/0x500 [qla2xxx] qlt_unreg_sess+0x104/0x2c0 [qla2xxx] tcm_qla2xxx_close_session+0xa2/0xb0 [tcm_qla2xxx] target_shutdown_sessions+0x17b/0x190 [target_core_mod] core_tpg_del_initiator_node_acl+0xf3/0x1f0 [target_core_mod] target_fabric_nacl_base_release+0x25/0x30 [target_core_mod] config_item_release+0x9f/0x120 [configfs] config_item_put+0x29/0x2b [configfs] configfs_rmdir+0x3d2/0x520 [configfs] vfs_rmdir+0xb3/0x1d0 do_rmdir+0x25c/0x2d0 __x64_sys_rmdir+0x24/0x30 do_syscall_64+0x77/0x220 entry_SYSCALL_64_after_hwframe+0x49/0xbe stack backtrace: CPU: 7 PID: 1478 Comm: rmdir Tainted: G W 5.1.0-rc1-dbg+ #11 Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 Call Trace: dump_stack+0x86/0xca check_usage.cold.59+0x473/0x563 check_prev_add.constprop.43+0x1f1/0x1170 __lock_acquire+0x11ed/0x1b60 lock_acquire+0xe3/0x200 _raw_spin_lock_irqsave+0x3d/0x60 klist_next+0x43/0x1d0 device_for_each_child+0x96/0x110 scsi_target_block+0x3c/0x40 [scsi_mod] fc_remote_port_delete+0xe7/0x1c0 [scsi_transport_fc] qla2x00_mark_device_lost+0x4d3/0x500 [qla2xxx] qlt_unreg_sess+0x104/0x2c0 [qla2xxx] tcm_qla2xxx_close_session+0xa2/0xb0 [tcm_qla2xxx] target_shutdown_sessions+0x17b/0x190 [target_core_mod] core_tpg_del_initiator_node_acl+0xf3/0x1f0 [target_core_mod] target_fabric_nacl_base_release+0x25/0x30 [target_core_mod] config_item_release+0x9f/0x120 [configfs] config_item_put+0x29/0x2b [configfs] configfs_rmdir+0x3d2/0x520 [configfs] vfs_rmdir+0xb3/0x1d0 do_rmdir+0x25c/0x2d0 __x64_sys_rmdir+0x24/0x30 do_syscall_64+0x77/0x220 entry_SYSCALL_64_after_hwframe+0x49/0xbe Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit a861b49273578e255426a499842cf7f465456351 Author: Bart Van Assche Date: Wed Apr 17 14:44:42 2019 -0700 scsi: qla2xxx: Avoid that qlt_send_resp_ctio() corrupts memory The "(&ctio->u.status1.sense_data)[i]" where i >= 0 expressions in qlt_send_resp_ctio() are probably typos and should have been "(&ctio->u.status1.sense_data[4 * i])" instead. Instead of only fixing these typos, modify the code for storing sense data such that it becomes easy to read. This patch fixes a Coverity complaint about accessing an array outside its bounds. Cc: Himanshu Madhani Cc: Giridhar Malavali Fixes: be25152c0d9e ("qla2xxx: Improve T10-DIF/PI handling in driver.") # v4.11. Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 300ec7415c1fed5c73660f50c8e14a67e236dc0a Author: Bart Van Assche Date: Wed Apr 17 14:44:41 2019 -0700 scsi: qla2xxx: Fix hardirq-unsafe locking Since fc_remote_port_delete() must be called with interrupts enabled, do not disable interrupts when calling that function. Remove the lockin calls from around the put_sess() call. This is safe because the function that is called when the final reference is dropped, qlt_unreg_sess(), grabs the proper locks. This patch avoids that lockdep reports the following: WARNING: HARDIRQ-safe -> HARDIRQ-unsafe lock order detected kworker/2:1/62 [HC0[0]:SC0[0]:HE0:SE1] is trying to acquire: 0000000009e679b3 (&(&k->k_lock)->rlock){+.+.}, at: klist_next+0x43/0x1d0 and this task is already holding: 00000000a033b71c (&(&ha->tgt.sess_lock)->rlock){-...}, at: qla24xx_delete_sess_fn+0x55/0xf0 [qla2xxx_scst] which would create a new lock dependency: (&(&ha->tgt.sess_lock)->rlock){-...} -> (&(&k->k_lock)->rlock){+.+.} but this new dependency connects a HARDIRQ-irq-safe lock: (&(&ha->tgt.sess_lock)->rlock){-...} ... which became HARDIRQ-irq-safe at: lock_acquire+0xe3/0x200 _raw_spin_lock_irqsave+0x3d/0x60 qla24xx_report_id_acquisition+0xa69/0xe30 [qla2xxx_scst] qla24xx_process_response_queue+0x69e/0x1270 [qla2xxx_scst] qla24xx_msix_rsp_q+0x79/0xf0 [qla2xxx_scst] __handle_irq_event_percpu+0x79/0x3c0 handle_irq_event_percpu+0x70/0xf0 handle_irq_event+0x5a/0x8b handle_edge_irq+0x12c/0x310 handle_irq+0x192/0x20a do_IRQ+0x73/0x160 ret_from_intr+0x0/0x1d default_idle+0x23/0x1f0 arch_cpu_idle+0x15/0x20 default_idle_call+0x35/0x40 do_idle+0x2bb/0x2e0 cpu_startup_entry+0x1d/0x20 start_secondary+0x2a8/0x320 secondary_startup_64+0xa4/0xb0 to a HARDIRQ-irq-unsafe lock: (&(&k->k_lock)->rlock){+.+.} ... which became HARDIRQ-irq-unsafe at: ... lock_acquire+0xe3/0x200 _raw_spin_lock+0x32/0x50 klist_add_tail+0x33/0xb0 device_add+0x7e1/0xb50 device_create_groups_vargs+0x11c/0x150 device_create_with_groups+0x89/0xb0 vtconsole_class_init+0xb2/0x124 do_one_initcall+0xc5/0x3ce kernel_init_freeable+0x295/0x32e kernel_init+0x11/0x11b ret_from_fork+0x3a/0x50 other info that might help us debug this: Possible interrupt unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&(&k->k_lock)->rlock); local_irq_disable(); lock(&(&ha->tgt.sess_lock)->rlock); lock(&(&k->k_lock)->rlock); lock(&(&ha->tgt.sess_lock)->rlock); *** DEADLOCK *** 3 locks held by kworker/2:1/62: #0: 00000000a4319c16 ((wq_completion)"qla2xxx_wq"){+.+.}, at: process_one_work+0x437/0xa80 #1: 00000000ffa34c42 ((work_completion)(&sess->del_work)){+.+.}, at: process_one_work+0x437/0xa80 #2: 00000000a033b71c (&(&ha->tgt.sess_lock)->rlock){-...}, at: qla24xx_delete_sess_fn+0x55/0xf0 [qla2xxx_scst] the dependencies between HARDIRQ-irq-safe lock and the holding lock: -> (&(&ha->tgt.sess_lock)->rlock){-...} ops: 8 { IN-HARDIRQ-W at: lock_acquire+0xe3/0x200 _raw_spin_lock_irqsave+0x3d/0x60 qla24xx_report_id_acquisition+0xa69/0xe30 [qla2xxx_scst] qla24xx_process_response_queue+0x69e/0x1270 [qla2xxx_scst] qla24xx_msix_rsp_q+0x79/0xf0 [qla2xxx_scst] __handle_irq_event_percpu+0x79/0x3c0 handle_irq_event_percpu+0x70/0xf0 handle_irq_event+0x5a/0x8b handle_edge_irq+0x12c/0x310 handle_irq+0x192/0x20a do_IRQ+0x73/0x160 ret_from_intr+0x0/0x1d default_idle+0x23/0x1f0 arch_cpu_idle+0x15/0x20 default_idle_call+0x35/0x40 do_idle+0x2bb/0x2e0 cpu_startup_entry+0x1d/0x20 start_secondary+0x2a8/0x320 secondary_startup_64+0xa4/0xb0 INITIAL USE at: lock_acquire+0xe3/0x200 _raw_spin_lock_irqsave+0x3d/0x60 qla24xx_report_id_acquisition+0xa69/0xe30 [qla2xxx_scst] qla24xx_process_response_queue+0x69e/0x1270 [qla2xxx_scst] qla24xx_msix_rsp_q+0x79/0xf0 [qla2xxx_scst] __handle_irq_event_percpu+0x79/0x3c0 handle_irq_event_percpu+0x70/0xf0 handle_irq_event+0x5a/0x8b handle_edge_irq+0x12c/0x310 handle_irq+0x192/0x20a do_IRQ+0x73/0x160 ret_from_intr+0x0/0x1d default_idle+0x23/0x1f0 arch_cpu_idle+0x15/0x20 default_idle_call+0x35/0x40 do_idle+0x2bb/0x2e0 cpu_startup_entry+0x1d/0x20 start_secondary+0x2a8/0x320 secondary_startup_64+0xa4/0xb0 } ... key at: [] __key.85462+0x0/0xfffffffffff7df80 [qla2xxx_scst] ... acquired at: lock_acquire+0xe3/0x200 _raw_spin_lock_irqsave+0x3d/0x60 klist_next+0x43/0x1d0 device_for_each_child+0x96/0x110 scsi_target_block+0x3c/0x40 [scsi_mod] fc_remote_port_delete+0xe7/0x1c0 [scsi_transport_fc] qla2x00_mark_device_lost+0xa0b/0xa30 [qla2xxx_scst] qlt_unreg_sess+0x1c6/0x380 [qla2xxx_scst] qla24xx_delete_sess_fn+0xe6/0xf0 [qla2xxx_scst] process_one_work+0x511/0xa80 worker_thread+0x67/0x5b0 kthread+0x1d2/0x1f0 ret_from_fork+0x3a/0x50 the dependencies between the lock to be acquired and HARDIRQ-irq-unsafe lock: -> (&(&k->k_lock)->rlock){+.+.} ops: 13831 { HARDIRQ-ON-W at: lock_acquire+0xe3/0x200 _raw_spin_lock+0x32/0x50 klist_add_tail+0x33/0xb0 device_add+0x7e1/0xb50 device_create_groups_vargs+0x11c/0x150 device_create_with_groups+0x89/0xb0 vtconsole_class_init+0xb2/0x124 do_one_initcall+0xc5/0x3ce kernel_init_freeable+0x295/0x32e kernel_init+0x11/0x11b ret_from_fork+0x3a/0x50 SOFTIRQ-ON-W at: lock_acquire+0xe3/0x200 _raw_spin_lock+0x32/0x50 klist_add_tail+0x33/0xb0 device_add+0x7e1/0xb50 device_create_groups_vargs+0x11c/0x150 device_create_with_groups+0x89/0xb0 vtconsole_class_init+0xb2/0x124 do_one_initcall+0xc5/0x3ce kernel_init_freeable+0x295/0x32e kernel_init+0x11/0x11b ret_from_fork+0x3a/0x50 INITIAL USE at: lock_acquire+0xe3/0x200 _raw_spin_lock+0x32/0x50 klist_add_tail+0x33/0xb0 device_add+0x7e1/0xb50 device_create_groups_vargs+0x11c/0x150 device_create_with_groups+0x89/0xb0 vtconsole_class_init+0xb2/0x124 do_one_initcall+0xc5/0x3ce kernel_init_freeable+0x295/0x32e kernel_init+0x11/0x11b ret_from_fork+0x3a/0x50 } ... key at: [] __key.15491+0x0/0x40 ... acquired at: lock_acquire+0xe3/0x200 _raw_spin_lock_irqsave+0x3d/0x60 klist_next+0x43/0x1d0 device_for_each_child+0x96/0x110 scsi_target_block+0x3c/0x40 [scsi_mod] fc_remote_port_delete+0xe7/0x1c0 [scsi_transport_fc] qla2x00_mark_device_lost+0xa0b/0xa30 [qla2xxx_scst] qlt_unreg_sess+0x1c6/0x380 [qla2xxx_scst] qla24xx_delete_sess_fn+0xe6/0xf0 [qla2xxx_scst] process_one_work+0x511/0xa80 worker_thread+0x67/0x5b0 kthread+0x1d2/0x1f0 ret_from_fork+0x3a/0x50 stack backtrace: CPU: 2 PID: 62 Comm: kworker/2:1 Tainted: G O 5.0.7-dbg+ #8 Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 Workqueue: qla2xxx_wq qla24xx_delete_sess_fn [qla2xxx_scst] Call Trace: dump_stack+0x86/0xca check_usage.cold.52+0x473/0x563 __lock_acquire+0x11c0/0x23e0 lock_acquire+0xe3/0x200 _raw_spin_lock_irqsave+0x3d/0x60 klist_next+0x43/0x1d0 device_for_each_child+0x96/0x110 scsi_target_block+0x3c/0x40 [scsi_mod] fc_remote_port_delete+0xe7/0x1c0 [scsi_transport_fc] qla2x00_mark_device_lost+0xa0b/0xa30 [qla2xxx_scst] qlt_unreg_sess+0x1c6/0x380 [qla2xxx_scst] qla24xx_delete_sess_fn+0xe6/0xf0 [qla2xxx_scst] process_one_work+0x511/0xa80 worker_thread+0x67/0x5b0 kthread+0x1d2/0x1f0 ret_from_fork+0x3a/0x50 Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit db4bf822c58cd2b4a6718c982ce48a5292f5cc6a Author: Bart Van Assche Date: Wed Apr 17 14:44:40 2019 -0700 scsi: qla2xxx: Complain loudly about reference count underflow A reference count underflow is a severe bug. Hence complain loudly if a reference count underflow happens. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit d4556a4932a54613fd766df6879e39d0342f49a0 Author: Bart Van Assche Date: Wed Apr 17 14:44:39 2019 -0700 scsi: qla2xxx: Use __le64 instead of uint32_t[2] for sending DMA addresses to firmware This patch makes the code easier to read and more compact. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 15b7a68c1d030b2365c823730d0eb9257f2aa60e Author: Bart Van Assche Date: Wed Apr 17 14:44:38 2019 -0700 scsi: qla2xxx: Introduce the dsd32 and dsd64 data structures Introduce two structures for the (DMA address, length) combination instead of using separate structure members for the DMA address and length. This patch fixes several Coverity complaints about 'cur_dsd' being used to write outside the bounds of structure members. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit bc04459ce4e5d394d79fe2a0660d43c1a40b6eb8 Author: Bart Van Assche Date: Wed Apr 17 14:44:37 2019 -0700 scsi: qla2xxx: Check the size of firmware data structures at compile time Since the next patch will modify several firmware data structures, add compile time checks that verify that these structures have the correct size. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 6e73985a9dea627114531723bdae6f8c1f59d5e8 Author: Bart Van Assche Date: Wed Apr 17 14:44:36 2019 -0700 scsi: qla2xxx: Pass little-endian values to the firmware Pass dsd_list_len in little endian format to the firmware instead of in CPU endian format. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 219d27d7147e07fe899a781bd72f9180b78c3852 Author: Bart Van Assche Date: Wed Apr 17 14:44:35 2019 -0700 scsi: qla2xxx: Fix race conditions in the code for aborting SCSI commands In the *_done() functions, instead of returning early if sp->ref_count >= 2, only decrement sp->ref_count. In qla2xxx_eh_abort(), instead of deciding what to do based on the value of sp->ref_count, decide which action to take depending on the completion status of the firmware abort. Remove srb.cwaitq and use srb.comp instead. In qla2x00_abort_srb(), call isp_ops->abort_command() directly instead of calling qla2xxx_eh_abort(). Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 982cc4be05d6d0d8b15b1340416737ad60bddcae Author: Bart Van Assche Date: Wed Apr 17 14:44:34 2019 -0700 scsi: qla2xxx: Use an on-stack completion in qla24xx_control_vp() This patch reduces the size of struct srb. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 1956eee58872e622cfe03f060a5d8a20d24afe47 Author: Bart Van Assche Date: Wed Apr 17 14:44:33 2019 -0700 scsi: qla2xxx: Make qla24xx_async_abort_cmd() static Since qla24xx_async_abort_cmd() is only called from inside qla_init.c, declare that function static. Reorder a few functions to avoid that any forward declarations are needed. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 1b1e68d2a940827725dbf666dd3e73ff12434b0c Author: Bart Van Assche Date: Wed Apr 17 14:44:32 2019 -0700 scsi: qla2xxx: Remove unnecessary locking from the target code All callbacks from the target core into the qla2xxx driver and also all I/O completion functions are serialized per command. Since .cmd_sent_to_fw and .trc_flags are only modified from inside these functions it is not necessary to protect it with locking. Remove the superfluous locking. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 4c374596d7eb80a901c8adc532ae9760e9df9fde Author: Bart Van Assche Date: Wed Apr 17 14:44:31 2019 -0700 scsi: qla2xxx: Remove qla_tgt_cmd.released Since the previous patch removed the only statement that sets qla_tgt_cmd.released, remove the code that depends on that member variable being set and the member variable itself. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit b1e261d4a4b71d67b62f6649c5496810c28e7ac1 Author: Bart Van Assche Date: Wed Apr 17 14:44:30 2019 -0700 scsi: qla2xxx: Complain if a command is released that is owned by the firmware The previous patch guarantees that a command is only released after the firmware has finished processing it. Hence complain if a command is released that is owned by the firmware. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit aefed3e5548f28e5fecafda6604fcbc65484dbaa Author: Bart Van Assche Date: Wed Apr 17 14:44:29 2019 -0700 scsi: qla2xxx: target: Fix offline port handling and host reset handling Remove the function qlt_abort_cmd_on_host_reset() because it can do the following, all of which can cause a kernel crash: - DMA unmapping while DMA is in progress. - Call target_execute_cmd() while DMA is in progress. - Call transport_generic_free_cmd() while the LIO core owns a command. Instead of trying to abort a command asynchronously, set the 'aborted' flag and handle the abort after the hardware has passed control back to the tcm_qla2xxx driver. Cc: Arun Easi Cc: Himanshu Madhani Cc: Giridhar Malavali Fixes: c0cb44967b4a ("qla2xxx: Add Host reset handling in target mode.") # v3.18. Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit e209783d66bca04b5fce4429e59338517ffc1a0b Author: Bart Van Assche Date: Wed Apr 17 14:44:28 2019 -0700 scsi: qla2xxx: Fix abort handling in tcm_qla2xxx_write_pending() Implementations of the .write_pending() callback functions must guarantee that an appropriate LIO core callback function will be called immediately or at a later time. Make sure that this guarantee is met for aborted SCSI commands. [mkp: typo] Cc: Himanshu Madhani Cc: Giridhar Malavali Fixes: 694833ee00c4 ("scsi: tcm_qla2xxx: Do not allow aborted cmd to advance.") # v4.13. Fixes: a07100e00ac4 ("qla2xxx: Fix TMR ABORT interaction issue between qla2xxx and TCM") # v4.5. Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit c04466c17142d5eb566984372b9a5003d1900fe3 Author: Bart Van Assche Date: Wed Apr 17 14:44:27 2019 -0700 scsi: qla2xxx: Fix error handling in qlt_alloc_qfull_cmd() The test "if (!cmd)" is not useful because it is guaranteed that cmd != NULL. Instead of testing the cmd pointer, rely on the tag to decide whether or not command allocation failed. Cc: Himanshu Madhani Cc: Giridhar Malavali Fixes: 33e799775593 ("qla2xxx: Add support for QFull throttling and Term Exchange retry") # v3.18. Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit e65449aa23fbeaba5b358f23a0c790cef6a77969 Author: Bart Van Assche Date: Wed Apr 17 14:44:26 2019 -0700 scsi: qla2xxx: Simplify qlt_send_term_imm_notif() All qlt_send_term_imm_notif() callers pass '1' as second argument to this function. Hence remove the (broken) code that depends on that second argument having another value. Add a pr_debug() statement that prints rc to avoid that the compiler would complain that rc has been set but is not used. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit d8f945bf8096375f458683b5718722a2d5dda2f0 Author: Bart Van Assche Date: Wed Apr 17 14:44:25 2019 -0700 scsi: qla2xxx: Fix use-after-free issues in qla2xxx_qpair_sp_free_dma() The current order for freeing memory is as follows: - struct crc_context itself. - struct crc_context member pointers. Change the freeing order into the following: - struct crc_context member pointers. - struct crc_context itself. Detected by Coverity. Cc: Himanshu Madhani Cc: Giridhar Malavali Fixes: 50b812755e97 ("scsi: qla2xxx: Fix DMA error when the DIF sg buffer crosses 4GB boundary") # v5.1-rc1. Fixes: d74595278f4a ("scsi: qla2xxx: Add multiple queue pair functionality.") # v4.10. Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 24afabdbd0b3553963a2bbf465895492b14d1107 Author: Bart Van Assche Date: Wed Apr 17 14:44:24 2019 -0700 scsi: qla2xxx: Fix a qla24xx_enable_msix() error path Make sure that the allocated interrupts are freed if allocating memory for the msix_entries array fails. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit dc035d4e934e586a663cbef0cf7ea3900e12bb7d Author: Bart Van Assche Date: Wed Apr 17 14:44:23 2019 -0700 scsi: qla2xxx: Avoid that qla2x00_mem_free() crashes if called twice Clear each pointer after having freed memory such that it becomes safe to call qla2x00_mem_free() twice. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 5365bf99e360bf3c31f2d5ba8f20f60dd47f6a86 Author: Bart Van Assche Date: Wed Apr 17 14:44:22 2019 -0700 scsi: qla2xxx: Make qla2x00_mem_free() easier to verify Instead of clearing all freed pointers at the end of qla2x00_mem_free(), clear freed pointers immediately after having freed the memory these pointers point at. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 0a59cea487e4d3c04364f29df241c9f7001ac6ff Author: Bart Van Assche Date: Wed Apr 17 14:44:21 2019 -0700 scsi: qla2xxx: Increase the size of the mailbox arrays from 4 to 8 This patch avoids that Coverity complains that qla2x00_async_event() writes outside the bounds of the mb[] arrays (MBA_IDC_AEN case). Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 3f918ffae8e788d70e6488598d00e0bf717d7737 Author: Bart Van Assche Date: Wed Apr 17 14:44:20 2019 -0700 scsi: qla2xxx: Log the status code if a firmware command fails It is important to know why a firmware command failed. Hence log 'rval' together with the values of the mailbox registers if a firwmare command fails. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 2dbb02fd495c9b2e41ba37d6fec2aa713d328788 Author: Bart Van Assche Date: Wed Apr 17 14:44:19 2019 -0700 scsi: qla2xxx: Avoid that Coverity complains about dereferencing a NULL rport pointer Since Coverity cannot know that rport != NULL in qla2xxx_queuecommand() and since there is code in that function that dereferences the rport pointer, modify qla2xxx_queuecommand() such that it fails SCSI commands if rport == NULL. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit dafbe56f6e338c7f583a524c714942f892c1f50a Author: Bart Van Assche Date: Wed Apr 17 14:44:18 2019 -0700 scsi: qla2xxx: Remove the fcport test from qla_nvme_abort_work() Testing whether a pointer is not NULL after it has been dereferenced is not useful. Hence remove the if (fcport) test. This was detected by Coverity. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 12975426d8889ce42821e9e0348f9a2da343779a Author: Bart Van Assche Date: Wed Apr 17 14:44:17 2019 -0700 scsi: qla2xxx: Uninline qla2x00_init_timer() Since qla2x00_init_timer() is not used for I/O commands there is no need to inline this function. Hence uninline this function. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 0c6660b27feb9034fc7c9f85ec2fb6cc2395b49d Author: Bart Van Assche Date: Wed Apr 17 14:44:16 2019 -0700 scsi: qla2xxx: Move qla2x00_is_reserved_id() from qla_inline.h into qla_init.c The previous patch moved all qla2x00_is_reserved_id() callers into qla_init.c. Hence also move the qla2x00_is_reserved_id() definition into qla_init.c. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit ef1eb688b86ca3052131e8dc3ae85edb9fdca4a3 Author: Bart Van Assche Date: Wed Apr 17 14:44:15 2019 -0700 scsi: qla2xxx: Move qla2x00_clear_loop_id() from qla_inline.h into qla_init.c Since qla2x00_clear_loop_id() is not in the hot path, uninline it. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 6eaa5f9448a7e0fb6bfecf17f47ce9f186d1e264 Author: Bart Van Assche Date: Wed Apr 17 14:44:14 2019 -0700 scsi: qla2xxx: Remove a set-but-not-used variable Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 94f5b9167e902bf7f30ef09fc02a74a71498ffee Author: Bart Van Assche Date: Wed Apr 17 14:44:13 2019 -0700 scsi: qla2xxx: Declare qla2x00_find_new_loop_id() static Since all qla2x00_find_new_loop_id() calls occur in the same source file as the definition of this function, move that function to just before its first caller and declare it static. Convert the header above this function into kernel-doc format. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 0e145a595d4113caee8c1d9d3345781567c43826 Author: Bart Van Assche Date: Wed Apr 17 14:44:12 2019 -0700 scsi: qla2xxx: Move qla2x00_set_reserved_loop_ids() definition Since qla2x00_set_reserved_loop_ids() only has a single caller, move it into the source file from where it is called. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 19ce192cd718e02f880197c0983404ca48236807 Author: Bart Van Assche Date: Wed Apr 17 14:44:11 2019 -0700 scsi: qla2xxx: Fix a format specifier Since mcmd->sess->port_name is eight bytes long, use %8phC to format that port name instead of %phC. Cc: Himanshu Madhani Cc: Giridhar Malavali Fixes: 726b85487067 ("qla2xxx: Add framework for async fabric discovery") # v4.11. Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 67eb4a60782a0e1142a3789fbb49617bbbe32796 Author: Bart Van Assche Date: Wed Apr 17 14:44:10 2019 -0700 scsi: qla2xxx: Update two source code comments Change one occurrence of "*(" into "()" and change one occurrence of "lcoate" into "locate". Fix the reference to qla_tgt_handle_cmd_for_atio(): there has never been a function with that name. Cc: Himanshu Madhani Cc: Giridhar Malavali Fixes: 75f8c1f693ee ("[SCSI] tcm_qla2xxx: Add >= 24xx series fabric module for target-core") # v3.5. Fixes: 2d70c103fd2a ("[SCSI] qla2xxx: Add LLD target-mode infrastructure for >= 24xx series") # v3.5. Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit e8025bab7bfbd48d262c01c26c15a9d465fbb083 Author: Steven Rostedt (VMware) Date: Wed Apr 24 12:34:46 2019 -0400 function_graph: Place ftrace_graph_entry_stub() prototype in include/linux/ftrace.h ftrace_graph_entry_stub() is defined in generic code, its prototype should be in the generic header and not defined throughout architecture specific code in order to use it. Cc: Greentime Hu Cc: Vincent Chen Cc: "James E.J. Bottomley" Cc: Helge Deller Cc: linux-parisc@vger.kernel.org Signed-off-by: Steven Rostedt (VMware) commit 395b9bca6b81489c59d1182183aeac65b1a47c3d Author: Bart Van Assche Date: Mon Apr 29 11:21:53 2019 -0700 scsi: sd: Revert "Rely on the driver core for asynchronous probing" Hibernation hangs as follows due to commit 21e6ba3f0e02 when using SATA: Call Trace: __schedule+0x464/0xe70 schedule+0x4e/0xd0 blk_queue_enter+0x5fe/0x7e0 generic_make_request+0x313/0x950 submit_bio+0x9b/0x250 submit_bio_wait+0xc9/0x110 hib_submit_io+0x17d/0x1c0 write_page+0x61/0xa0 swap_write_page+0x4b/0x1f0 swsusp_write+0x2f9/0x3d0 hibernate.cold.10+0x108/0x231 state_store+0xf7/0x100 kobj_attr_store+0x37/0x50 sysfs_kf_write+0x87/0xa0 kernfs_fop_write+0x186/0x240 __vfs_write+0x4d/0x90 vfs_write+0xfa/0x260 ksys_write+0xb9/0x1a0 __x64_sys_write+0x43/0x50 do_syscall_64+0x71/0x210 entry_SYSCALL_64_after_hwframe+0x49/0xbe Hence revert commit 21e6ba3f0e02. Cc: Pavel Machek Reported-by: Pavel Machek Signed-off-by: Bart Van Assche Acked-by: Pavel Machek Signed-off-by: Martin K. Petersen commit 9a058e88fd5d369e7b8f1e467d78d040ce35752c Author: Bart Van Assche Date: Mon Apr 29 11:21:52 2019 -0700 scsi: sd: Revert "Inline sd_probe_part2()" Reverts commit d16ece577bf2 to make a clean revert of its predecessor possible. Cc: Pavel Machek Signed-off-by: Bart Van Assche Acked-by: Pavel Machek Signed-off-by: Martin K. Petersen commit 3b9f900fa0636b7b530e517b4fbefa6cc5819f52 Author: Heiner Kallweit Date: Wed Apr 24 21:17:19 2019 +0200 platform/chrome: chromeos_laptop: use pci_dev_id() helper Use new helper pci_dev_id() to simplify the code. Signed-off-by: Heiner Kallweit Signed-off-by: Bjorn Helgaas Acked-By: Benson Leung commit d4a62ea411f98be6f7ffdeb339eca901f3d6472b Author: Heiner Kallweit Date: Wed Apr 24 21:16:41 2019 +0200 stmmac: pci: Use pci_dev_id() helper Use new helper pci_dev_id() to simplify the code. Signed-off-by: Heiner Kallweit Signed-off-by: Bjorn Helgaas commit cc49baa9a202373b59aad8aca2e5285b9b9eda77 Author: Heiner Kallweit Date: Wed Apr 24 21:16:10 2019 +0200 iommu/vt-d: Use pci_dev_id() helper Use new helper pci_dev_id() to simplify the code. Signed-off-by: Heiner Kallweit Signed-off-by: Bjorn Helgaas Reviewed-by: Joerg Roedel commit 775c068c6aae6f1ce16bcb3443998ab40500496c Author: Heiner Kallweit Date: Wed Apr 24 21:15:25 2019 +0200 iommu/amd: Use pci_dev_id() helper Use new helper pci_dev_id() to simplify the code. Signed-off-by: Heiner Kallweit Signed-off-by: Bjorn Helgaas Reviewed-by: Joerg Roedel commit babe2ef342c4829c3875a03a6ecb9716813cbe21 Author: Heiner Kallweit Date: Wed Apr 24 21:14:55 2019 +0200 drm/amdkfd: Use pci_dev_id() helper Use new helper pci_dev_id() to simplify the code. Signed-off-by: Heiner Kallweit Signed-off-by: Bjorn Helgaas Acked-by: Christian König commit 51c51a48de4bfda78d381616e553445a76b1d407 Author: Heiner Kallweit Date: Wed Apr 24 21:14:25 2019 +0200 powerpc/powernv/npu: Use pci_dev_id() helper Use new helper pci_dev_id() to simplify the code. Signed-off-by: Heiner Kallweit Signed-off-by: Bjorn Helgaas Reviewed-by: Alexey Kardashevskiy commit a195016a5981376721a7770e1d01be676540ead8 Author: Heiner Kallweit Date: Wed Apr 24 21:13:25 2019 +0200 r8169: use pci_dev_id() helper Use new helper pci_dev_id() to simplify the code. Signed-off-by: Heiner Kallweit Signed-off-by: Bjorn Helgaas Acked-by: David S. Miller commit 4e544bac8267f65a0bf06aed1bde9964da4812ed Author: Heiner Kallweit Date: Wed Apr 24 21:11:58 2019 +0200 PCI: Add pci_dev_id() helper In several places in the kernel we find PCI_DEVID used like this: PCI_DEVID(dev->bus->number, dev->devfn) Add a "pci_dev_id(struct pci_dev *dev)" helper to simplify callers. Signed-off-by: Heiner Kallweit Signed-off-by: Bjorn Helgaas commit b0fc850fd95f8ecceb601bbb40624da0a8c220a0 Author: Evan Quan Date: Thu Apr 25 15:38:25 2019 +0800 drm/amdgpu: power down the Vega20 VCE engine on request Power down the engine also along with disabling its DPM functionality. Signed-off-by: Evan Quan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 2c7e78355beca9f20d6e30088d581acd300aae04 Author: Evan Quan Date: Thu Apr 25 15:35:17 2019 +0800 drm/amdgpu: expose VCE 4.0 powergate interface SMU will use this interface to power down the VCE engine. Signed-off-by: Evan Quan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 09aef2c48e799b39d1595038c3a993c0279c292d Author: Mario Kleiner Date: Fri Apr 26 23:40:16 2019 +0200 drm/amd/display: Compensate for pre-DCE12 BTR-VRR hw limitations. (v3) Pre-DCE12 needs special treatment for BTR / low framerate compensation for more stable behaviour: According to comments in the code and some testing on DCE-8 and DCE-11, DCE-11 and earlier only apply VTOTAL_MIN/MAX programming with a lag of one frame, so the special BTR hw programming for intermediate fixed duration frames must be done inside the current frame at flip submission in atomic commit tail, ie. one vblank earlier, and the fixed refresh intermediate frame mode must be also terminated one vblank earlier on pre-DCE12 display engines. To achieve proper termination on < DCE-12 shift the point when the switch-back from fixed vblank duration to variable vblank duration happens from the start of VBLANK (vblank irq, as done on DCE-12+) to back-porch or end of VBLANK (handled by vupdate irq handler). We must leave the switch-back code inside VBLANK irq for DCE12+, as before. Doing this, we get much better behaviour of BTR for up-sweeps, ie. going from short to long frame durations (~high to low fps) and for constant framerate flips, as tested on DCE-8 and DCE-11. Behaviour is still not quite as good as on DCN-1 though. On down-sweeps, going from long to short frame durations (low fps to high fps) < DCE-12 is a little bit improved, although by far not as much as for up-sweeps and constant fps. v2: Fix some wrong locking, as pointed out by Nicholas. v3: Simplify if-condition in vupdate-irq - nit by Nicholas. Signed-off-by: Mario Kleiner Reviewed-by: Nicholas Kazlauskas Signed-off-by: Alex Deucher commit dc4a9049f023cff6f3c7f0765a706595444c4bd2 Author: Mario Kleiner Date: Fri Apr 26 23:40:14 2019 +0200 drm/amd/display: Fix and simplify apply_below_the_range() The comparison of inserted_frame_duration_in_us against a duration calculated from max_refresh_in_uhz is both wrong in its math and not needed, as the min_duration_in_us value is already cached in in_out_vrr for reuse. No need to recalculate it wrongly at each invocation. Signed-off-by: Mario Kleiner Reviewed-by: Nicholas Kazlauskas Signed-off-by: Alex Deucher commit 7267a1a9745071d6c7cfec4063895750063b30ac Author: Nicholas Kazlauskas Date: Tue Apr 23 09:26:43 2019 -0400 drm/amd/display: Expose DRM_FORMAT_RGB565 on overlay planes RGB565 support isn't restricted to just the primary plane in DC, so also expose support for it on overlays. Signed-off-by: Nicholas Kazlauskas Acked-by: Alex Deucher Reviewed-by: David Francis Signed-off-by: Alex Deucher commit 057be086603feb2669c0eff540d72ac26e2b3fcf Author: Nicholas Kazlauskas Date: Mon Apr 15 12:18:53 2019 -0400 drm/amd/display: Do VRR transition before enable_crc_interrupts [Why] Originally we did the amdgpu_dm_handle_vrr_transition call before interrupts were enabled. After the interrupt toggling logic was moved around for support enabling CRTCs with no primary planes active this was no longer being called in the case where there wasn't a modeset. This fixes failures in igt@kms_vrr@* with error "Timed out: Waiting for vblank event". [How] Shift them back into the loop that always ran before interrupts were enabled. Pull out the logic that updated VRR state into the same loop since there's no reason these need to be split. In the case where we're going from VRR off, no planes to VRR on, some active planes we'll still be covered for having the VRR vupdate handler enabled - vblank will be re-enabled at this point, it will see that VRR is active and set the vupdate interrupt on there. Signed-off-by: Nicholas Kazlauskas Reviewed-by: David Francis Acked-by: Leo Li Signed-off-by: Alex Deucher commit ee13cea962b5ab2d70501f51008c05b394cb322e Author: John Barberiz Date: Wed Apr 3 19:22:55 2019 -0400 drm/amd/display: Refactor dp vendor parsing logic to a function Refactor dp vendor parsing int to a new function, and call it before get_active_converter_info(). Also, add a flag to skip parsing of Display ID 2.0. Some devices fail on readind DID2, but we shouldn't fail EDID read because of it. Add this flag to facilitate the logic. Signed-off-by: John Barberiz Reviewed-by: Aric Cyr Acked-by: Leo Li Signed-off-by: Alex Deucher commit cc8d84132a833cc3be469c5d363da769bc69875e Author: Charlene Liu Date: Wed Apr 10 21:43:23 2019 -0400 drm/amd/display: Add hubp_init entry to hubp vtable Different HW will need to init HUBP differently. For now, add a vtable entry, and hook a NO-OP for DCN1. In addition, future HW will need to access the HUBPREQ_DEBUG register for hubp_init. Add it to the reg list. Signed-off-by: Charlene Liu Reviewed-by: Jun Lei Acked-by: Leo Li Signed-off-by: Alex Deucher commit a0867053408ec4623687f574d8931286c54d514f Author: Eric Yang Date: Wed Apr 10 14:08:53 2019 -0400 drm/amd/display: remove deprecated pplib interface [Why] The new interface now replaces the old interface for all known configurations. Signed-off-by: Eric Yang Reviewed-by: Tony Cheng Acked-by: Leo Li Signed-off-by: Alex Deucher commit 27eaa4927dc3be669ed70670241597ac73595caf Author: Thomas Lim Date: Wed Apr 10 17:06:07 2019 -0400 drm/amd/display: Add power down display on boot flag [Why] Due to the generic introduction of seamless boot, the display is no longer blanked upon boot. However, this causes corruption on some systems that does not lock the memory in the non-secure boot case, resulting in brief corruption on boot due to garbage being written into the frame buffer. [How] Add a flag, read during DC init, to determine whether display should be blanked on boot. Default to true. Signed-off-by: Thomas Lim Reviewed-by: Aric Cyr Acked-by: Anthony Koo Acked-by: Leo Li Signed-off-by: Alex Deucher commit 91f287566d494a4b28135f51e4698593feedc886 Author: Yongqiang Sun Date: Fri Mar 29 14:36:57 2019 -0400 drm/amd/display: Refactor watermark programming * Replace certain register writes with register sets that overwrites the the entire register, instead of only a field within the register. * Add program_watermarks() entry to hubbub vtable. Hook it up to existing functions that program watermarks. * Add additional watermark registers. Signed-off-by: Yongqiang Sun Reviewed-by: Tony Cheng Acked-by: Leo Li Signed-off-by: Alex Deucher commit bc92c06525e5865c94256ef0227bfe870c095823 Author: Nicholas Kazlauskas Date: Thu Apr 4 11:00:53 2019 -0400 drm/amd/display: Allow commits with no planes active [Why] Many userspace applications (and IGT) seem to expect that most drivers can keep a CRTC active and enabled if there are no primary or overlay planes. DC is setup to handle this but only in the case where there are absolutely no planes on the CRTC - no primary, cursor, or overlay. [How] Add a check to reject commits that have cursor planes enabled and nothing else on CRTCs since we can't handle that. The new helper does_crtc_have_active_cursor is used for this. In atomic commit tail, we need to let DC know that there are zero planes enabled when doing stream updates to let it disable and blank pipes as appropriate. Signed-off-by: Nicholas Kazlauskas Reviewed-by: David Francis Acked-by: Leo Li Signed-off-by: Alex Deucher commit b5e83f6fe1f003f95fcdbde8a3364f776c18d28d Author: Nicholas Kazlauskas Date: Mon Apr 8 11:18:31 2019 -0400 drm/amd/display: Split enabling CRTC interrupts into two passes [Why] When disabling all the pipes for a CRTC the page-flip interrupt also gets disabled on Raven. We can't re-enable the page-flip interrupt unless we give DC at least one active DC plane. We currently enable interrupts after the call to dc_commit_state since there's currently no valid sequence that should disable all the planes or re-enable planes for a CRTC without first going through dc_commit_state. If we were to allow for a CRTC to be enabled with no primary plane this would not be the case - the call to dc_commit_updates_for_stream would enable the planes when going from zero to at least one active plane, but manage_dm_interrupts would have been called too early. This results in a page-flip timeout on any subsequent commits since we think the page-flip are now enabled when they're actually disabled. We need to enable interrupts after the call to dc_commit_updates_for_stream. [How] Split enabling interrupts into two passes. One pass before dc_commit_updates_for_stream and one after it. Shifting all the interrupts to be strictly below the call doesn't currently work even though it should in theory. We end up queuing off the vblank event to be handle by the flip handler before it's actually enabled in some cases, particularly: old_crtc_state->active = false -> new_crtc_state->active = true The framebuffer states haven't changed and we can technically still do a "pageflip" in this case and send back the event. Signed-off-by: Nicholas Kazlauskas Reviewed-by: David Francis Acked-by: Leo Li Signed-off-by: Alex Deucher commit e39575b9c3661844e4746fa9e32d58354ffe0b50 Author: Nicholas Kazlauskas Date: Mon Apr 8 12:31:25 2019 -0400 drm/amd/display: Fix CRC vblank refs when changing interrupts [Why] We only currently drop the vblank reference when the stream is being removed from the context. We should be dropping it whenever we disable interrupts and reaquiring it after we re-enable them. We also never get the extra reference correctly when re-enabling interrupts, since grabbing the reference has the following condition: if (!crtc_state->crc_enabled && enable) drm_crtc_vblank_get(crtc); This means that crc_enabled must be *false* in order to grab the extra reference. [How] Always drop the ref whenever we're disabling interrupts. Only disable CRC capture when the stream is being removed. Always grab the ref by setting dm_new_crtc_state->crc_enabled = false before the call to re-enable CRC capture. Signed-off-by: Nicholas Kazlauskas Reviewed-by: David Francis Acked-by: Leo Li Signed-off-by: Alex Deucher commit 8ad278062de4eae53f68ec835c20147efcec81a8 Author: Nicholas Kazlauskas Date: Mon Apr 8 10:37:44 2019 -0400 drm/amd/display: Disable cursors before disabling planes [Why] We can't do cursor programming after the planes have been disabled since there won't be any pipes - leading to lock warnings and the wrong cursor state being left in the registers. When we re-enable the planes after the previous cursor state will also remain if we don't have a cursor plane. [How] If we're disabling the planes then do the cursor programming first. If we're not disabling the planes then do the cursor programming after. Introduce the amdgpu_dm_commit_cursors helper to avoid code duplication for both of these cases. Signed-off-by: Nicholas Kazlauskas Reviewed-by: David Francis Acked-by: Leo Li Signed-off-by: Alex Deucher commit d6ef9b4175e870b52468fed4fd77b0d3d54e20fc Author: Nicholas Kazlauskas Date: Fri Apr 5 09:35:14 2019 -0400 drm/amd/display: Refactor CRTC interrupt toggling logic [Why] The vblank and pageflip interrupts should only be enabled for a CRTC that's enabled and has active planes. The current logic takes care of this, but isn't setup to handle the case where the active plane count goes to zero but the stream remains enabled. We currently block this case since we don't allow commits that enable a CRTC with no active planes, but shouldn't be any reason we can't support this from a hardware perspective and many userspace applications expect to be able to do it (like IGT). [How] The count_crtc_active_planes function fills in the number of "active_planes" on the dm_crtc_state. This should be the same as DC's plane_count on the stream_status but easier to access since we don't need to lock the private atomic state with the DC context. Add the "interrupts_enabled" flag to the dm_crtc_state and set it based on whether the stream exists and if there are active planes on the stream. Update the disable and enable logic to make use of this new flag. There shouldn't be any functional change (yet) with this patch. Signed-off-by: Nicholas Kazlauskas Reviewed-by: David Francis Acked-by: Leo Li Signed-off-by: Alex Deucher commit edf1e0008264ca7ad70d13576d7f204c1cf5abab Author: Wentao Lou Date: Thu Apr 25 12:43:04 2019 +0800 drm/amdgpu: value of amdgpu_sriov_vf cannot be set into F32_POLL_ENABLE amdgpu_sriov_vf would return 0x0 or 0x4 to indicate if sriov. but F32_POLL_ENABLE need 0x0 or 0x1 to determine if enabled. set 0x4 into F32_POLL_ENABLE would make SDMA0_GFX_RB_WPTR_POLL_CNTL not working. Signed-off-by: Wentao Lou Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit beac93e6f8101227df2e48d789bde7b6a0895e29 Author: Evan Quan Date: Thu Apr 25 11:20:38 2019 +0800 drm/amdgpu: update Vega20 sdma golden settings Update Vega20 sdma golden settings. Signed-off-by: Evan Quan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit a66d186c888526ced3582e07ebc6e6fe818ea1f0 Author: hersen wu Date: Wed Apr 3 16:14:08 2019 -0400 drm/amd/powerplay: raven 4k@60hz dp monitor always flicking [WHY] clock unit mis-match between caller DC and SMU interface. dc pass lock in mhz. the same unit as smu. no covert is needed. [HOW] remove covert_10k_to_mhz in smu interface this fixes corruption issue with 4k @60 display and stutter mode enable Reviewed-by: Kenneth Feng Signed-off-by: hersen wu Signed-off-by: Alex Deucher commit 11f874c041f0476ec9fc44387478d3bbb3c74b73 Author: Colin Ian King Date: Fri Apr 26 22:48:11 2019 +0100 drm/amd/display: fix incorrect null check on pointer Currently an allocation is being made but the allocation failure check is being performed on another pointer. Fix this by checking the correct pointer. Also use the normal kernel idiom for null pointer checks. Addresses-Coverity: ("Resource leak") Fixes: 43e3ac8389ef ("drm/amd/display: Add function to copy DC streams") Signed-off-by: Colin Ian King Signed-off-by: Alex Deucher commit 80d0c649244253d8cb3ba32d708c1431e7ac8fbf Author: Olof Johansson Date: Mon Apr 29 12:25:41 2019 -0700 soc: aspeed: fix Kconfig Fixes build break: scripts/kconfig/conf --allnoconfig Kconfig drivers/soc/Kconfig:24: 'menu' in different file than 'menu' drivers/soc/aspeed/Kconfig:1: location of the 'menu' drivers/Kconfig:233: 'menu' in different file than 'menu' drivers/soc/aspeed/Kconfig:1: location of the 'menu' :34: syntax error Signed-off-by: Patrick Venture Signed-off-by: Olof Johansson commit f3d964673b2f1c5d5c68c77273efcf7103eed03b Author: Arnd Bergmann Date: Mon Apr 29 15:19:37 2019 +0200 y2038: Make CONFIG_64BIT_TIME unconditional As Stepan Golosunov points out, there is a small mistake in the get_timespec64() function in the kernel. It was originally added under the assumption that CONFIG_64BIT_TIME would get enabled on all 32-bit and 64-bit architectures, but when the conversion was done, it was only turned on for 32-bit ones. The effect is that the get_timespec64() function never clears the upper half of the tv_nsec field for 32-bit tasks in compat mode. Clearing this is required for POSIX compliant behavior of functions that pass a 'timespec' structure with a 64-bit tv_sec and a 32-bit tv_nsec, plus uninitialized padding. The easiest fix for linux-5.1 is to just make the Kconfig symbol unconditional, as it was originally intended. As a follow-up, the #ifdef CONFIG_64BIT_TIME can be removed completely.. Note: for native 32-bit mode, no change is needed, this works as designed and user space should never need to clear the upper 32 bits of the tv_nsec field, in or out of the kernel. Fixes: 00bf25d693e7 ("y2038: use time32 syscall names on 32-bit") Signed-off-by: Arnd Bergmann Signed-off-by: Thomas Gleixner Cc: Joseph Myers Cc: libc-alpha@sourceware.org Cc: linux-api@vger.kernel.org Cc: Deepa Dinamani Cc: Lukasz Majewski Cc: Stepan Golosunov Link: https://lore.kernel.org/lkml/20190422090710.bmxdhhankurhafxq@sghpc.golosunov.pp.ru/ Link: https://lkml.kernel.org/r/20190429131951.471701-1-arnd@arndb.de commit b06df56bad2c0656718db77465c3d01c2a872e6d Author: Gabriel Fernandez Date: Mon Apr 29 09:54:44 2019 +0000 clk: stm32mp1: Add ddrperfm clock Add ddrperfm clock for DDR Performance Monitor driver Signed-off-by: Gabriel Fernandez Signed-off-by: Gerald Baeza Signed-off-by: Stephen Boyd commit cbb88db76a1536e02e93e5bd37ebbfbb6c4043a9 Author: Wenwen Wang Date: Mon Apr 29 12:45:40 2019 -0500 ALSA: usx2y: fix a double free bug In usX2Y_In04_init(), a new urb is firstly created through usb_alloc_urb() and saved to 'usX2Y->In04urb'. Then, a buffer is allocated through kmalloc() and saved to 'usX2Y->In04Buf'. If the allocation of the buffer fails, the error code ENOMEM is returned after usb_free_urb(), which frees the created urb. However, the urb is actually freed at card->private_free callback, i.e., snd_usX2Y_card_private_free(). So the free operation here leads to a double free bug. To fix the above issue, simply remove usb_free_urb(). Signed-off-by: Wenwen Wang Signed-off-by: Takashi Iwai commit c745f72266603b13de57d24b3b559fbeea275bf2 Merge: 9ef77fbedad9 a0eaead41db9 Author: Kalle Valo Date: Mon Apr 29 20:50:44 2019 +0300 Merge tag 'iwlwifi-next-for-kalle-2019-04-29' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next Fourth batch of patches intended for v5.2 * Fix a bug we introduced in the RX path in a previous patch; * Add command version parsing from the FW TLVs; * Some fixes and improvements in the new debugging framework; * Bump the FW API supported for 22000 series; * Small improvement in FTM; * Some RF-Kill interrupt handling fixes; * Support for a new WoWLAN patterns FW API; * Other small fixes and improvements; commit b827bcbba36d0b9447239136e2237710cca70383 Author: xiaojiangfeng Date: Wed Apr 10 16:29:41 2019 +0800 of: del redundant type conversion The type of variable l in early_init_dt_scan_chosen is int, there is no need to convert to int. Signed-off-by: xiaojiangfeng Reviewed-by: Frank Rowand Signed-off-by: Rob Herring commit 391c0325cc5f9e2daf9117825714d777b3595a42 Author: Greg Kroah-Hartman Date: Mon Apr 29 19:49:21 2019 +0200 Revert "driver core: platform: Fix the usage of platform device name(pdev->name)" This reverts commit edb16da34b084c66763f29bee42b4e6bb33c3d66 as it breaks existing systems as reported by Krzysztof. Reported-by: Krzysztof Kozlowski Cc: Venkata Narendra Kumar Gutta Signed-off-by: Greg Kroah-Hartman commit f52e30ebfd6290343074a7a655b1bad3556f8b6f Author: Clément Péron Date: Tue Apr 9 18:05:50 2019 +0200 dt-bindings: mfd: axp20x: Add fallback for axp805 axp805 is actually compatible and used with axp806 as fallback. But it's actually undocumented and trig a warning with checkpatch. DT compatible string "x-powers,axp805" appears un-documented. Add this compatible in the dt-bindings documentation. Signed-off-by: Clément Péron Signed-off-by: Rob Herring commit 4297ff84dc24d120753e0425702e8ad9b80ed10f Author: Josef Bacik Date: Wed Apr 10 15:56:09 2019 -0400 btrfs: track DIO bytes in flight When diagnosing a slowdown of generic/224 I noticed we were not doing anything when calling into shrink_delalloc(). This is because all writes in 224 are O_DIRECT, not delalloc, and thus our delalloc_bytes counter is 0, which short circuits most of the work inside of shrink_delalloc(). However O_DIRECT writes still consume metadata resources and generate ordered extents, which we can still wait on. Fix this by tracking outstanding DIO write bytes, and use this as well as the delalloc bytes counter to decide if we need to lookup and wait on any ordered extents. If we have more DIO writes than delalloc bytes we'll go ahead and wait on any ordered extents regardless of our flush state as flushing delalloc is likely to not gain us anything. Signed-off-by: Josef Bacik [ use dio instead of odirect in identifiers ] Signed-off-by: David Sterba commit 6cbc4d88ad208d6f5b9567bac2fff038e1bbfa77 Merge: 89f4f128ea53 470fa42933da Author: Olof Johansson Date: Mon Apr 29 10:06:33 2019 -0700 Merge tag 'bitmain-soc-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mani/linux-bitmain into arm/dt Bitmain SoC changes for v5.2: - Added GPIO support for BM1880 SoC based on Designware APB GPIO controller - Added GPIO line names for Sophon Edge board based on 96Boards CE specification for accessing GPIOs using line names from userspace tools like MRAA. - Added pinctrl node for BM1880 SoC as a child node of sctrl syscon node. - Added pinctrl support to UARTs exposed on the Sophon Edge board. * tag 'bitmain-soc-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/mani/linux-bitmain: arm64: dts: bitmain: Add UART pinctrl support for Sophon Edge arm64: dts: bitmain: Add pinctrl support for BM1880 SoC arm64: dts: bitmain: Add GPIO Line names for Sophon Edge board arm64: dts: bitmain: Add GPIO support for BM1880 SoC Signed-off-by: Olof Johansson commit 85200317b324924be3bc72b7bfcce219020ced9c Merge: 5f08da63d756 366391f04177 Author: Olof Johansson Date: Mon Apr 29 10:00:21 2019 -0700 Merge tag 'v5.2-rockchip-defconfig32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/defconfig Enable more options needed by Veyron Chromebooks. * tag 'v5.2-rockchip-defconfig32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: ARM: multi_v7_defconfig: Enable missing drivers for supported Chromebooks Signed-off-by: Olof Johansson commit da9b6ec829dff9b867bb863ebb5b45b4ef2530a1 Author: Anand Jain Date: Sat Apr 20 19:49:00 2019 +0800 btrfs: merge calls of btrfs_setxattr and btrfs_setxattr_trans in btrfs_set_prop Since now the trans argument is never NULL in btrfs_set_prop we don't have to check. So delete it and use btrfs_setxattr that makes use of that. Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba commit 717ebdc3205ab118dd041199072ec686a3fac7ee Author: Anand Jain Date: Sat Apr 20 19:48:59 2019 +0800 btrfs: delete unused function btrfs_set_prop_trans The last consumer of btrfs_set_prop_trans() was taken away by the patch ("btrfs: start transaction in xattr_handler_set_prop") so now this function can be deleted. Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba commit b3f6a4be1333eb888f9ad1ca16548fbeb05a8732 Author: Anand Jain Date: Sat Apr 20 19:48:58 2019 +0800 btrfs: start transaction in xattr_handler_set_prop btrfs specific extended attributes on the inode are set using btrfs_xattr_handler_set_prop(), and the required transaction for this update is started by btrfs_setxattr(). For better visibility of the transaction start and end, do this in btrfs_xattr_handler_set_prop(). For which this patch copied code of btrfs_setxattr() as it is in the original, which needs proper error handling. Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba commit 44e5194b5ec1b179c59bb204a2448031ff917e02 Author: Anand Jain Date: Sat Apr 20 19:48:57 2019 +0800 btrfs: drop local copy of inode i_mode There isn't real use of making struct inode::i_mode a local copy, it saves a dereference one time, not much. Just use it directly. Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba commit 3c8d8b635780c244aa44ad2d625e6308fbfb7ad4 Author: Anand Jain Date: Sat Apr 20 19:48:56 2019 +0800 btrfs: drop old_fsflags in btrfs_ioctl_setflags btrfs_inode_flags_to_fsflags() is copied into @old_fsflags and used only once. Instead used it directly. Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba commit d2b8fcfe43155f23fa3e8148cdaa65345e3c45eb Author: Anand Jain Date: Sat Apr 20 19:48:55 2019 +0800 btrfs: modify local copy of btrfs_inode flags Instead of updating the binode::flags directly, update a local copy, and then at the point of no error, store copy it to the binode::flags. Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba commit 11d3cd5c625892a17297d5256e4758f007d582d5 Author: Anand Jain Date: Sat Apr 20 19:48:54 2019 +0800 btrfs: drop useless inode i_flags copy and restore The patch ("btrfs: start transaction in btrfs_ioctl_setflags()") used btrfs_set_prop() instead of btrfs_set_prop_trans() by which now the inode::i_flags update functions such as btrfs_sync_inode_flags_to_i_flags() and btrfs_update_inode() is called in btrfs_ioctl_setflags() instead of btrfs_set_prop_trans()->btrfs_setxattr() as earlier. So the inode::i_flags remains unmodified until the thread has checked all the conditions. So drop the saved inode::i_flags in out_i_flags. Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba commit ff9fef559babe4376dd698ceec3d73d0362e48a0 Author: Anand Jain Date: Sat Apr 20 19:48:53 2019 +0800 btrfs: start transaction in btrfs_ioctl_setflags() Inode attribute can be set through the FS_IOC_SETFLAGS ioctl. This flags also includes compression attribute for which we would set/reset the compression extended attribute. While doing this there is a bit of duplicate code, the following things happens twice: - start/end_transaction - inode_inc_iversion() - current_time update to inode->i_ctime - and btrfs_update_inode() These are updated both at btrfs_ioctl_setflags() and btrfs_set_props() as well. This patch merges these two duplicate codes at btrfs_ioctl_setflags(). Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba commit cd31af158b324e5a1f03b53fb46a1e10cde238ab Author: Anand Jain Date: Sat Apr 20 19:48:52 2019 +0800 btrfs: export btrfs_set_prop Make btrfs_set_prop() a non-static function, so that it can be called from btrfs_ioctl_setflags(). We need btrfs_set_prop() instead of btrfs_set_prop_trans() so that we can use the transaction which is already started in the current thread. Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba commit f22125e5d8ae136adb99552d97078702e1ee68ab Author: Anand Jain Date: Sat Apr 20 19:48:51 2019 +0800 btrfs: refactor btrfs_set_props to validate externally In preparation to merge multiple transactions when setting the compression flags, split btrfs_set_props() validation part outside of it. Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba commit 7c15d41016dc886cc011e3854d855e219759ae68 Author: Qu Wenruo Date: Thu Apr 25 08:55:53 2019 +0800 btrfs: ctree: Dump the leaf before BUG_ON in btrfs_set_item_key_safe We have a long standing problem with reversed keys that's detected by btrfs_set_item_key_safe. This is hard to reproduce so we'd like to capture more information for later analysis. Let's dump the leaf content before triggering BUG_ON() so that we can have some clue on what's going wrong. The output of tree locks should help us to debug such problem. Sample stacktrace: generic/522 [00:07:05] [26946.113381] run fstests generic/522 at 2019-04-16 00:07:05 [27161.474720] kernel BUG at fs/btrfs/ctree.c:3192! [27161.475923] invalid opcode: 0000 [#1] PREEMPT SMP [27161.477167] CPU: 0 PID: 15676 Comm: fsx Tainted: G W 5.1.0-rc5-default+ #562 [27161.478932] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.0-0-ga698c89-prebuilt.qemu.org 04/01/2014 [27161.481099] RIP: 0010:btrfs_set_item_key_safe+0x146/0x1c0 [btrfs] [27161.485369] RSP: 0018:ffffb087499e39b0 EFLAGS: 00010286 [27161.486464] RAX: 00000000ffffffff RBX: ffff941534d80e70 RCX: 0000000000024000 [27161.487929] RDX: 0000000000013039 RSI: ffffb087499e3aa5 RDI: ffffb087499e39c7 [27161.489289] RBP: 000000000000000e R08: ffff9414e0f49008 R09: 0000000000001000 [27161.490807] R10: 0000000000000000 R11: 0000000000000003 R12: ffff9414e0f48e70 [27161.492305] R13: ffffb087499e3aa5 R14: 0000000000000000 R15: 0000000000071000 [27161.493845] FS: 00007f8ea58d0b80(0000) GS:ffff94153d400000(0000) knlGS:0000000000000000 [27161.495608] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [27161.496717] CR2: 00007f8ea57a9000 CR3: 0000000016a33000 CR4: 00000000000006f0 [27161.498100] Call Trace: [27161.498771] __btrfs_drop_extents+0x6ec/0xdf0 [btrfs] [27161.499872] btrfs_log_changed_extents.isra.26+0x3a2/0x9e0 [btrfs] [27161.501114] btrfs_log_inode+0x7ff/0xdc0 [btrfs] [27161.502114] ? __mutex_unlock_slowpath+0x4b/0x2b0 [27161.503172] btrfs_log_inode_parent+0x237/0x9c0 [btrfs] [27161.504348] btrfs_log_dentry_safe+0x4a/0x70 [btrfs] [27161.505374] btrfs_sync_file+0x1b7/0x480 [btrfs] [27161.506371] __x64_sys_msync+0x180/0x210 [27161.507208] do_syscall_64+0x54/0x180 [27161.507932] entry_SYSCALL_64_after_hwframe+0x49/0xbe [27161.508839] RIP: 0033:0x7f8ea5aa9c61 [27161.512616] RSP: 002b:00007ffea2a06498 EFLAGS: 00000246 ORIG_RAX: 000000000000001a [27161.514161] RAX: ffffffffffffffda RBX: 000000000002a938 RCX: 00007f8ea5aa9c61 [27161.515376] RDX: 0000000000000004 RSI: 000000000001c9b2 RDI: 00007f8ea578d000 [27161.516572] RBP: 000000000001c07a R08: fffffffffffffff8 R09: 000000000002a000 [27161.517883] R10: 00007f8ea57a99b2 R11: 0000000000000246 R12: 0000000000000938 [27161.519080] R13: 00007f8ea578d000 R14: 000000000001c9b2 R15: 0000000000000000 [27161.520281] Modules linked in: btrfs libcrc32c xor zstd_decompress zstd_compress xxhash raid6_pq loop [last unloaded: scsi_debug] [27161.522272] ---[ end trace d5afec7ccac6a252 ]--- [27161.523111] RIP: 0010:btrfs_set_item_key_safe+0x146/0x1c0 [btrfs] [27161.527253] RSP: 0018:ffffb087499e39b0 EFLAGS: 00010286 [27161.528192] RAX: 00000000ffffffff RBX: ffff941534d80e70 RCX: 0000000000024000 [27161.529392] RDX: 0000000000013039 RSI: ffffb087499e3aa5 RDI: ffffb087499e39c7 [27161.530607] RBP: 000000000000000e R08: ffff9414e0f49008 R09: 0000000000001000 [27161.531802] R10: 0000000000000000 R11: 0000000000000003 R12: ffff9414e0f48e70 [27161.533018] R13: ffffb087499e3aa5 R14: 0000000000000000 R15: 0000000000071000 [27161.534405] FS: 00007f8ea58d0b80(0000) GS:ffff94153d400000(0000) knlGS:0000000000000000 [27161.536048] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [27161.537210] CR2: 00007f8ea57a9000 CR3: 0000000016a33000 CR4: 00000000000006f0 Reviewed-by: Filipe Manana Signed-off-by: Qu Wenruo Signed-off-by: David Sterba commit 02529d7a1077c5d00d990143cbd78aa56bb7c7cb Author: Qu Wenruo Date: Wed Apr 24 15:22:53 2019 +0800 btrfs: tree-checker: Allow error injection for tree-checker Allowing error injection for btrfs_check_leaf_full() and btrfs_check_node() is useful to test the failure path of btrfs write time tree check. Signed-off-by: Qu Wenruo Signed-off-by: David Sterba commit 51d470aeaa3a4ac5bdf98743ac1d32008e8dafa4 Author: Nikolay Borisov Date: Mon Apr 22 16:07:31 2019 +0300 btrfs: Document btrfs_csum_one_bio Signed-off-by: Nikolay Borisov Signed-off-by: David Sterba commit b8aa330d2acb122563be87c42d82c5c8649cf658 Author: Filipe Manana Date: Wed Apr 17 11:31:06 2019 +0100 Btrfs: improve performance on fsync of files with multiple hardlinks Commit 41bd6067692382 ("Btrfs: fix fsync of files with multiple hard links in new directories") introduced a path that makes fsync fallback to a full transaction commit in order to avoid losing hard links and new ancestors of the fsynced inode. That path is triggered only when the inode has more than one hard link and either has a new hard link created in the current transaction or the inode was evicted and reloaded in the current transaction. That path ends up getting triggered very often (hundreds of times) during the course of pgbench benchmarks, resulting in performance drops of about 20%. This change restores the performance by not triggering the full transaction commit in those cases, and instead iterate the fs/subvolume tree in search of all possible new ancestors, for all hard links, to log them. Reported-by: Zhao Yuhu Tested-by: James Wang Signed-off-by: Filipe Manana Signed-off-by: David Sterba commit 62d54f3a7fa27ef6a74d6cdf643ce04beba3afa7 Author: Filipe Manana Date: Mon Apr 22 16:43:42 2019 +0100 Btrfs: fix race between send and deduplication that lead to failures and crashes Send operates on read only trees and expects them to never change while it is using them. This is part of its initial design, and this expection is due to two different reasons: 1) When it was introduced, no operations were allowed to modifiy read-only subvolumes/snapshots (including defrag for example). 2) It keeps send from having an impact on other filesystem operations. Namely send does not need to keep locks on the trees nor needs to hold on to transaction handles and delay transaction commits. This ends up being a consequence of the former reason. However the deduplication feature was introduced later (on September 2013, while send was introduced in July 2012) and it allowed for deduplication with destination files that belong to read-only trees (subvolumes and snapshots). That means that having a send operation (either full or incremental) running in parallel with a deduplication that has the destination inode in one of the trees used by the send operation, can result in tree nodes and leaves getting freed and reused while send is using them. This problem is similar to the problem solved for the root nodes getting freed and reused when a snapshot is made against one tree that is currenly being used by a send operation, fixed in commits [1] and [2]. These commits explain in detail how the problem happens and the explanation is valid for any node or leaf that is not the root of a tree as well. This problem was also discussed and explained recently in a thread [3]. The problem is very easy to reproduce when using send with large trees (snapshots) and just a few concurrent deduplication operations that target files in the trees used by send. A stress test case is being sent for fstests that triggers the issue easily. The most common error to hit is the send ioctl return -EIO with the following messages in dmesg/syslog: [1631617.204075] BTRFS error (device sdc): did not find backref in send_root. inode=63292, offset=0, disk_byte=5228134400 found extent=5228134400 [1631633.251754] BTRFS error (device sdc): parent transid verify failed on 32243712 wanted 24 found 27 The first one is very easy to hit while the second one happens much less frequently, except for very large trees (in that test case, snapshots with 100000 files having large xattrs to get deep and wide trees). Less frequently, at least one BUG_ON can be hit: [1631742.130080] ------------[ cut here ]------------ [1631742.130625] kernel BUG at fs/btrfs/ctree.c:1806! [1631742.131188] invalid opcode: 0000 [#6] SMP DEBUG_PAGEALLOC PTI [1631742.131726] CPU: 1 PID: 13394 Comm: btrfs Tainted: G B D W 5.0.0-rc8-btrfs-next-45 #1 [1631742.132265] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.11.2-0-gf9626ccb91-prebuilt.qemu-project.org 04/01/2014 [1631742.133399] RIP: 0010:read_node_slot+0x122/0x130 [btrfs] (...) [1631742.135061] RSP: 0018:ffffb530021ebaa0 EFLAGS: 00010246 [1631742.135615] RAX: ffff93ac8912e000 RBX: 000000000000009d RCX: 0000000000000002 [1631742.136173] RDX: 000000000000009d RSI: ffff93ac564b0d08 RDI: ffff93ad5b48c000 [1631742.136759] RBP: ffffb530021ebb7d R08: 0000000000000001 R09: ffffb530021ebb7d [1631742.137324] R10: ffffb530021eba70 R11: 0000000000000000 R12: ffff93ac87d0a708 [1631742.137900] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000001 [1631742.138455] FS: 00007f4cdb1528c0(0000) GS:ffff93ad76a80000(0000) knlGS:0000000000000000 [1631742.139010] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [1631742.139568] CR2: 00007f5acb3d0420 CR3: 000000012be3e006 CR4: 00000000003606e0 [1631742.140131] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [1631742.140719] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [1631742.141272] Call Trace: [1631742.141826] ? do_raw_spin_unlock+0x49/0xc0 [1631742.142390] tree_advance+0x173/0x1d0 [btrfs] [1631742.142948] btrfs_compare_trees+0x268/0x690 [btrfs] [1631742.143533] ? process_extent+0x1070/0x1070 [btrfs] [1631742.144088] btrfs_ioctl_send+0x1037/0x1270 [btrfs] [1631742.144645] _btrfs_ioctl_send+0x80/0x110 [btrfs] [1631742.145161] ? trace_sched_stick_numa+0xe0/0xe0 [1631742.145685] btrfs_ioctl+0x13fe/0x3120 [btrfs] [1631742.146179] ? account_entity_enqueue+0xd3/0x100 [1631742.146662] ? reweight_entity+0x154/0x1a0 [1631742.147135] ? update_curr+0x20/0x2a0 [1631742.147593] ? check_preempt_wakeup+0x103/0x250 [1631742.148053] ? do_vfs_ioctl+0xa2/0x6f0 [1631742.148510] ? btrfs_ioctl_get_supported_features+0x30/0x30 [btrfs] [1631742.148942] do_vfs_ioctl+0xa2/0x6f0 [1631742.149361] ? __fget+0x113/0x200 [1631742.149767] ksys_ioctl+0x70/0x80 [1631742.150159] __x64_sys_ioctl+0x16/0x20 [1631742.150543] do_syscall_64+0x60/0x1b0 [1631742.150931] entry_SYSCALL_64_after_hwframe+0x49/0xbe [1631742.151326] RIP: 0033:0x7f4cd9f5add7 (...) [1631742.152509] RSP: 002b:00007ffe91017708 EFLAGS: 00000202 ORIG_RAX: 0000000000000010 [1631742.152892] RAX: ffffffffffffffda RBX: 0000000000000105 RCX: 00007f4cd9f5add7 [1631742.153268] RDX: 00007ffe91017790 RSI: 0000000040489426 RDI: 0000000000000007 [1631742.153633] RBP: 0000000000000007 R08: 00007f4cd9e79700 R09: 00007f4cd9e79700 [1631742.153999] R10: 00007f4cd9e799d0 R11: 0000000000000202 R12: 0000000000000003 [1631742.154365] R13: 0000555dfae53020 R14: 0000000000000000 R15: 0000000000000001 (...) [1631742.156696] ---[ end trace 5dac9f96dcc3fd6b ]--- That BUG_ON happens because while send is using a node, that node is COWed by a concurrent deduplication, gets freed and gets reused as a leaf (because a transaction commit happened in between), so when it attempts to read a slot from the extent buffer, at ctree.c:read_node_slot(), the extent buffer contents were wiped out and it now matches a leaf (which can even belong to some other tree now), hitting the BUG_ON(level == 0). Fix this concurrency issue by not allowing send and deduplication to run in parallel if both operate on the same readonly trees, returning EAGAIN to user space and logging an exlicit warning in dmesg/syslog. [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=be6821f82c3cc36e026f5afd10249988852b35ea [2] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6f2f0b394b54e2b159ef969a0b5274e9bbf82ff2 [3] https://lore.kernel.org/linux-btrfs/CAL3q7H7iqSEEyFaEtpRZw3cp613y+4k2Q8b4W7mweR3tZA05bQ@mail.gmail.com/ CC: stable@vger.kernel.org # 4.4+ Signed-off-by: Filipe Manana Reviewed-by: David Sterba Signed-off-by: David Sterba commit 9f89d5de8631c7930898a601b6612e271aa2261c Author: Filipe Manana Date: Mon Apr 15 09:29:36 2019 +0100 Btrfs: send, flush dellaloc in order to avoid data loss When we set a subvolume to read-only mode we do not flush dellaloc for any of its inodes (except if the filesystem is mounted with -o flushoncommit), since it does not affect correctness for any subsequent operations - except for a future send operation. The send operation will not be able to see the delalloc data since the respective file extent items, inode item updates, backreferences, etc, have not hit yet the subvolume and extent trees. Effectively this means data loss, since the send stream will not contain any data from existing delalloc. Another problem from this is that if the writeback starts and finishes while the send operation is in progress, we have the subvolume tree being being modified concurrently which can result in send failing unexpectedly with EIO or hitting runtime errors, assertion failures or hitting BUG_ONs, etc. Simple reproducer: $ mkfs.btrfs -f /dev/sdb $ mount /dev/sdb /mnt $ btrfs subvolume create /mnt/sv $ xfs_io -f -c "pwrite -S 0xea 0 108K" /mnt/sv/foo $ btrfs property set /mnt/sv ro true $ btrfs send -f /tmp/send.stream /mnt/sv $ od -t x1 -A d /mnt/sv/foo 0000000 ea ea ea ea ea ea ea ea ea ea ea ea ea ea ea ea * 0110592 $ umount /mnt $ mkfs.btrfs -f /dev/sdc $ mount /dev/sdc /mnt $ btrfs receive -f /tmp/send.stream /mnt $ echo $? 0 $ od -t x1 -A d /mnt/sv/foo 0000000 # ---> empty file Since this a problem that affects send only, fix it in send by flushing dellaloc for all the roots used by the send operation before send starts to process the commit roots. This is a problem that affects send since it was introduced (commit 31db9f7c23fbf7 ("Btrfs: introduce BTRFS_IOC_SEND for btrfs send/receive")) but backporting it to older kernels has some dependencies: - For kernels between 3.19 and 4.20, it depends on commit 3cd24c698004d2 ("btrfs: use tagged writepage to mitigate livelock of snapshot") because the function btrfs_start_delalloc_snapshot() does not exist before that commit. So one has to either pick that commit or replace the calls to btrfs_start_delalloc_snapshot() in this patch with calls to btrfs_start_delalloc_inodes(). - For kernels older than 3.19 it also requires commit e5fa8f865b3324 ("Btrfs: ensure send always works on roots without orphans") because it depends on the function ensure_commit_roots_uptodate() which that commits introduced. - No dependencies for 5.0+ kernels. A test case for fstests follows soon. CC: stable@vger.kernel.org # 3.19+ Signed-off-by: Filipe Manana Signed-off-by: David Sterba commit 03628cdbc64db6262e50d0357960a4e9562676a1 Author: Filipe Manana Date: Mon Apr 15 14:50:51 2019 +0100 Btrfs: do not start a transaction during fiemap During fiemap, for regular extents (non inline) we need to check if they are shared and if they are, set the shared bit. Checking if an extent is shared requires checking the delayed references of the currently running transaction, since some reference might have not yet hit the extent tree and be only in the in-memory delayed references. However we were using a transaction join for this, which creates a new transaction when there is no transaction currently running. That means that two more potential failures can happen: creating the transaction and committing it. Further, if no write activity is currently happening in the system, and fiemap calls keep being done, we end up creating and committing transactions that do nothing. In some extreme cases this can result in the commit of the transaction created by fiemap to fail with ENOSPC when updating the root item of a subvolume tree because a join does not reserve any space, leading to a trace like the following: heisenberg kernel: ------------[ cut here ]------------ heisenberg kernel: BTRFS: Transaction aborted (error -28) heisenberg kernel: WARNING: CPU: 0 PID: 7137 at fs/btrfs/root-tree.c:136 btrfs_update_root+0x22b/0x320 [btrfs] (...) heisenberg kernel: CPU: 0 PID: 7137 Comm: btrfs-transacti Not tainted 4.19.0-4-amd64 #1 Debian 4.19.28-2 heisenberg kernel: Hardware name: FUJITSU LIFEBOOK U757/FJNB2A5, BIOS Version 1.21 03/19/2018 heisenberg kernel: RIP: 0010:btrfs_update_root+0x22b/0x320 [btrfs] (...) heisenberg kernel: RSP: 0018:ffffb5448828bd40 EFLAGS: 00010286 heisenberg kernel: RAX: 0000000000000000 RBX: ffff8ed56bccef50 RCX: 0000000000000006 heisenberg kernel: RDX: 0000000000000007 RSI: 0000000000000092 RDI: ffff8ed6bda166a0 heisenberg kernel: RBP: 00000000ffffffe4 R08: 00000000000003df R09: 0000000000000007 heisenberg kernel: R10: 0000000000000000 R11: 0000000000000001 R12: ffff8ed63396a078 heisenberg kernel: R13: ffff8ed092d7c800 R14: ffff8ed64f5db028 R15: ffff8ed6bd03d068 heisenberg kernel: FS: 0000000000000000(0000) GS:ffff8ed6bda00000(0000) knlGS:0000000000000000 heisenberg kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 heisenberg kernel: CR2: 00007f46f75f8000 CR3: 0000000310a0a002 CR4: 00000000003606f0 heisenberg kernel: DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 heisenberg kernel: DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 heisenberg kernel: Call Trace: heisenberg kernel: commit_fs_roots+0x166/0x1d0 [btrfs] heisenberg kernel: ? _cond_resched+0x15/0x30 heisenberg kernel: ? btrfs_run_delayed_refs+0xac/0x180 [btrfs] heisenberg kernel: btrfs_commit_transaction+0x2bd/0x870 [btrfs] heisenberg kernel: ? start_transaction+0x9d/0x3f0 [btrfs] heisenberg kernel: transaction_kthread+0x147/0x180 [btrfs] heisenberg kernel: ? btrfs_cleanup_transaction+0x530/0x530 [btrfs] heisenberg kernel: kthread+0x112/0x130 heisenberg kernel: ? kthread_bind+0x30/0x30 heisenberg kernel: ret_from_fork+0x35/0x40 heisenberg kernel: ---[ end trace 05de912e30e012d9 ]--- Since fiemap (and btrfs_check_shared()) is a read-only operation, do not do a transaction join to avoid the overhead of creating a new transaction (if there is currently no running transaction) and introducing a potential point of failure when the new transaction gets committed, instead use a transaction attach to grab a handle for the currently running transaction if any. Reported-by: Christoph Anton Mitterer Link: https://lore.kernel.org/linux-btrfs/b2a668d7124f1d3e410367f587926f622b3f03a4.camel@scientia.net/ Fixes: afce772e87c36c ("btrfs: fix check_shared for fiemap ioctl") CC: stable@vger.kernel.org # 4.14+ Reviewed-by: Qu Wenruo Signed-off-by: Filipe Manana Signed-off-by: David Sterba commit f5c8daa5b2ae6de4baa18a95002271cd7f90be90 Author: David Sterba Date: Wed Mar 20 11:43:36 2019 +0100 btrfs: remove unused parameter fs_info from btrfs_set_disk_extent_flags Signed-off-by: David Sterba commit c6e340bc1c9e3411c40aafca4c69b989530c9347 Author: David Sterba Date: Wed Mar 20 11:42:34 2019 +0100 btrfs: remove unused parameter fs_info from btrfs_add_delayed_extent_op Signed-off-by: David Sterba commit 5c5aff98f83abca23b70ac84c8019b28fcd70cdd Author: David Sterba Date: Wed Mar 20 11:29:46 2019 +0100 btrfs: remove unused parameter fs_info from emit_last_fiemap_cache Signed-off-by: David Sterba commit 033774dc5a90dad5cceb9298fa7517a48ad9cd20 Author: David Sterba Date: Wed Mar 20 15:59:22 2019 +0100 btrfs: remove unused parameter fs_info from CHECK_FE_ALIGNED Signed-off-by: David Sterba commit 179d1e6a3b6a0409e5d411d485dd4623632c42d8 Author: David Sterba Date: Wed Mar 20 15:03:48 2019 +0100 btrfs: remove unused parameter fs_info from from tree_advance Signed-off-by: David Sterba commit c7da9597fe8cadc846fa72f4ddf478bb435a913f Author: David Sterba Date: Wed Mar 20 15:02:46 2019 +0100 btrfs: remove unused parameter fs_info from tree_move_down Signed-off-by: David Sterba commit c71dd88007bdc8ba62e99439d93050b0778f101a Author: David Sterba Date: Wed Mar 20 14:51:10 2019 +0100 btrfs: remove unused parameter fs_info from btrfs_extend_item Signed-off-by: David Sterba commit 78ac4f9e5ae022bd183ca21da7b373d300b7be17 Author: David Sterba Date: Wed Mar 20 14:49:12 2019 +0100 btrfs: remove unused parameter fs_info from btrfs_truncate_item Signed-off-by: David Sterba commit 25263cd7cec1b41b55bf7991d09a019ca1ff1359 Author: David Sterba Date: Wed Mar 20 14:44:57 2019 +0100 btrfs: remove unused parameter fs_info from split_item Signed-off-by: David Sterba commit c4140cbf35b90422be6589024f47e132eb2298b1 Author: Qu Wenruo Date: Thu Apr 4 14:45:37 2019 +0800 btrfs: qgroup: Don't scan leaf if we're modifying reloc tree Since reloc tree doesn't contribute to qgroup numbers, just skip them. This should catch the final cause of unnecessary data ref processing when running balance of metadata with qgroups on. The 4G data 16 snapshots test (*) should explain it pretty well: | delayed subtree | refactor delayed ref | this patch --------------------------------------------------------------------- relocated | 22653 | 22673 | 22744 qgroup dirty | 122792 | 48360 | 70 time | 24.494 | 11.606 | 3.944 Finally, we're at the stage where qgroup + metadata balance cost no obvious overhead. Test environment: Test VM: - vRAM 8G - vCPU 8 - block dev vitrio-blk, 'unsafe' cache mode - host block 850evo Test workload: - Copy 4G data from /usr/ to one subvolume - Create 16 snapshots of that subvolume, and modify 3 files in each snapshot - Enable quota, rescan - Time "btrfs balance start -m" Signed-off-by: Qu Wenruo Signed-off-by: David Sterba commit ffd4bb2a19cd29681f5b70a200654ab92619de8a Author: Qu Wenruo Date: Thu Apr 4 14:45:36 2019 +0800 btrfs: extent-tree: Use btrfs_ref to refactor btrfs_free_extent() Similar to btrfs_inc_extent_ref(), use btrfs_ref to replace the long parameter list and the confusing @owner parameter. Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit 82fa113fccc41fe5204b4ce35341d69ebde0020f Author: Qu Wenruo Date: Thu Apr 4 14:45:35 2019 +0800 btrfs: extent-tree: Use btrfs_ref to refactor btrfs_inc_extent_ref() Use the new btrfs_ref structure and replace parameter list to clean up the usage of owner and level to distinguish the extent types. Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit ddf30cf03fb53b9a0ad0f355a69dbedf416edde9 Author: Qu Wenruo Date: Thu Apr 4 14:45:34 2019 +0800 btrfs: extent-tree: Use btrfs_ref to refactor add_pinned_bytes() Since add_pinned_bytes() only needs to know if the extent is metadata and if it's a chunk tree extent, btrfs_ref is a perfect match for it, as we don't need various owner/level trick to determine extent type. Signed-off-by: Qu Wenruo Reviewed-by: Nikolay Borisov Signed-off-by: David Sterba commit 8a5040f7d9fddc532bdec698fb0ff0bebe33d4ed Author: Qu Wenruo Date: Thu Apr 4 14:45:33 2019 +0800 btrfs: ref-verify: Use btrfs_ref to refactor btrfs_ref_tree_mod() It's a perfect match for btrfs_ref_tree_mod() to use btrfs_ref, as btrfs_ref describes a metadata/data reference update comprehensively. Now we have one less function use confusing owner/level trick. Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit 76675593b69f2fcd57e24d9dd2a9b278f0130d0b Author: Qu Wenruo Date: Thu Apr 4 14:45:32 2019 +0800 btrfs: delayed-ref: Use btrfs_ref to refactor btrfs_add_delayed_data_ref() Just like btrfs_add_delayed_tree_ref(), use btrfs_ref to refactor btrfs_add_delayed_data_ref(). Signed-off-by: Qu Wenruo Signed-off-by: David Sterba commit ed4f255b9bacb774c99ded17647f138c3f61546d Author: Qu Wenruo Date: Thu Apr 4 14:45:31 2019 +0800 btrfs: delayed-ref: Use btrfs_ref to refactor btrfs_add_delayed_tree_ref() btrfs_add_delayed_tree_ref() has a longer and longer parameter list, and some callers like btrfs_inc_extent_ref() are using @owner as level for delayed tree ref. Instead of making the parameter list longer, use btrfs_ref to refactor it, so each parameter assignment should be self-explaining without dirty level/owner trick, and provides the basis for later refactoring. Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit dd28b6a5aad306c417477db700ed0848c923a31c Author: Qu Wenruo Date: Thu Apr 4 14:45:30 2019 +0800 btrfs: extent-tree: Open-code process_func in __btrfs_mod_ref The process_func function pointer is local to __btrfs_mod_ref() and points to either btrfs_inc_extent_ref() or btrfs_free_extent(). Open code it to make later delayed ref refactor easier, so we can refactor btrfs_inc_extent_ref() and btrfs_free_extent() in different patches. Reviewed-by: Nikolay Borisov Reviewed-by: Johannes Thumshirn Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit b28b1f0ce44c1b9ebc1c43e3eba18c1f1f5d9cec Author: Qu Wenruo Date: Thu Apr 4 14:45:29 2019 +0800 btrfs: delayed-ref: Introduce better documented delayed ref structures Current delayed ref interface has several problems: - Longer and longer parameter lists bytenr num_bytes parent ---------- so far so good ref_root owner offset ---------- I don't feel good now - Different interpretation of the same parameter Above @owner for data ref is inode number (u64), while for tree ref, it's level (int). They are even in different size range. For level we only need 0 ~ 8, while for ino it's BTRFS_FIRST_FREE_OBJECTID ~ BTRFS_LAST_FREE_OBJECTID. And @offset doesn't even make sense for tree ref. Such parameter reuse may look clever as an hidden union, but it destroys code readability. To solve both problems, we introduce a new structure, btrfs_ref to solve them: - Structure instead of long parameter list This makes later expansion easier, and is better documented. - Use btrfs_ref::type to distinguish data and tree ref - Use proper union to store data/tree ref specific structures. - Use separate functions to fill data/tree ref data, with a common generic function to fill common bytenr/num_bytes members. All parameters will find its place in btrfs_ref, and an extra member, @real_root, inspired by ref-verify code, is newly introduced for later qgroup code, to record which tree is triggered by this extent modification. This patch doesn't touch any code, but provides the basis for further refactoring. Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit bfc61c36260ca990937539cd648ede3cd749bc10 Author: Filipe Manana Date: Wed Apr 17 11:30:30 2019 +0100 Btrfs: do not start a transaction at iterate_extent_inodes() When finding out which inodes have references on a particular extent, done by backref.c:iterate_extent_inodes(), from the BTRFS_IOC_LOGICAL_INO (both v1 and v2) ioctl and from scrub we use the transaction join API to grab a reference on the currently running transaction, since in order to give accurate results we need to inspect the delayed references of the currently running transaction. However, if there is currently no running transaction, the join operation will create a new transaction. This is inefficient as the transaction will eventually be committed, doing unnecessary IO and introducing a potential point of failure that will lead to a transaction abort due to -ENOSPC, as recently reported [1]. That's because the join, creates the transaction but does not reserve any space, so when attempting to update the root item of the root passed to btrfs_join_transaction(), during the transaction commit, we can end up failling with -ENOSPC. Users of a join operation are supposed to actually do some filesystem changes and reserve space by some means, which is not the case of iterate_extent_inodes(), it is a read-only operation for all contextes from which it is called. The reported [1] -ENOSPC failure stack trace is the following: heisenberg kernel: ------------[ cut here ]------------ heisenberg kernel: BTRFS: Transaction aborted (error -28) heisenberg kernel: WARNING: CPU: 0 PID: 7137 at fs/btrfs/root-tree.c:136 btrfs_update_root+0x22b/0x320 [btrfs] (...) heisenberg kernel: CPU: 0 PID: 7137 Comm: btrfs-transacti Not tainted 4.19.0-4-amd64 #1 Debian 4.19.28-2 heisenberg kernel: Hardware name: FUJITSU LIFEBOOK U757/FJNB2A5, BIOS Version 1.21 03/19/2018 heisenberg kernel: RIP: 0010:btrfs_update_root+0x22b/0x320 [btrfs] (...) heisenberg kernel: RSP: 0018:ffffb5448828bd40 EFLAGS: 00010286 heisenberg kernel: RAX: 0000000000000000 RBX: ffff8ed56bccef50 RCX: 0000000000000006 heisenberg kernel: RDX: 0000000000000007 RSI: 0000000000000092 RDI: ffff8ed6bda166a0 heisenberg kernel: RBP: 00000000ffffffe4 R08: 00000000000003df R09: 0000000000000007 heisenberg kernel: R10: 0000000000000000 R11: 0000000000000001 R12: ffff8ed63396a078 heisenberg kernel: R13: ffff8ed092d7c800 R14: ffff8ed64f5db028 R15: ffff8ed6bd03d068 heisenberg kernel: FS: 0000000000000000(0000) GS:ffff8ed6bda00000(0000) knlGS:0000000000000000 heisenberg kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 heisenberg kernel: CR2: 00007f46f75f8000 CR3: 0000000310a0a002 CR4: 00000000003606f0 heisenberg kernel: DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 heisenberg kernel: DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 heisenberg kernel: Call Trace: heisenberg kernel: commit_fs_roots+0x166/0x1d0 [btrfs] heisenberg kernel: ? _cond_resched+0x15/0x30 heisenberg kernel: ? btrfs_run_delayed_refs+0xac/0x180 [btrfs] heisenberg kernel: btrfs_commit_transaction+0x2bd/0x870 [btrfs] heisenberg kernel: ? start_transaction+0x9d/0x3f0 [btrfs] heisenberg kernel: transaction_kthread+0x147/0x180 [btrfs] heisenberg kernel: ? btrfs_cleanup_transaction+0x530/0x530 [btrfs] heisenberg kernel: kthread+0x112/0x130 heisenberg kernel: ? kthread_bind+0x30/0x30 heisenberg kernel: ret_from_fork+0x35/0x40 heisenberg kernel: ---[ end trace 05de912e30e012d9 ]--- So fix that by using the attach API, which does not create a transaction when there is currently no running transaction. [1] https://lore.kernel.org/linux-btrfs/b2a668d7124f1d3e410367f587926f622b3f03a4.camel@scientia.net/ Reported-by: Zygo Blaxell CC: stable@vger.kernel.org # 4.4+ Signed-off-by: Filipe Manana Reviewed-by: David Sterba Signed-off-by: David Sterba commit 65237ee3b6b3c529548438054a819f63fb50757d Author: David Sterba Date: Wed Mar 20 16:34:54 2019 +0100 btrfs: get fs_info from device in btrfs_rm_dev_replace_free_srcdev We can read fs_info from the device and can drop it from the parameters. Signed-off-by: David Sterba commit 163e97ee0d0f8194ef66f10b0bf0851b7f6b55dd Author: David Sterba Date: Wed Mar 20 16:32:55 2019 +0100 btrfs: get fs_info from device in btrfs_scrub_cancel_dev We can read fs_info from the device and can drop it from the parameters. Signed-off-by: David Sterba commit f331a9525f96c8f24e33b368521dfdeed3cb6f9d Author: David Sterba Date: Wed Mar 20 16:31:53 2019 +0100 btrfs: get fs_info from device in btrfs_rm_dev_item We can read fs_info from the device and can drop it from the parameters. Signed-off-by: David Sterba commit 8087c193450b29c80c8e8b62050de9d0999e20cf Author: David Sterba Date: Wed Mar 20 14:40:41 2019 +0100 btrfs: get fs_info from eb in __push_leaf_left We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit f72f0010b202f8ccf8fa671f9ef61e4c980fba3c Author: David Sterba Date: Wed Mar 20 14:39:45 2019 +0100 btrfs: get fs_info from eb in __push_leaf_right We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit 50489a5734ec77e0a0613143512de09e2229f852 Author: Nikolay Borisov Date: Wed Apr 10 19:46:04 2019 +0300 btrfs: Remove bio_offset argument from submit_bio_hook None of the implementers of the submit_bio_hook use the bio_offset parameter, simply remove it. No functional changes. Reviewed-by: Johannes Thumshirn Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit e68f2ee72181697d574e3049426b9d4fe5b5ec4d Author: Nikolay Borisov Date: Wed Apr 10 17:24:42 2019 +0300 btrfs: Always pass 0 bio_offset for btree_submit_bio_start The btree submit hook queues the async csum and forwards the bio_offset parameter passed to btree_submit_bio_hook. This is redundant since btree_submit_bio_start calls btree_csum_one_bio which doesn't use the offset at all. No functional changes. Reviewed-by: Johannes Thumshirn Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit e7681167c36f451b1645211116ef287d9c47b07a Author: Nikolay Borisov Date: Wed Apr 10 17:24:41 2019 +0300 btrfs: Pass 0 for bio_offset to btrfs_wq_submit_bio Buffered writeback always calls btrfs_csum_one_bio with the last 2 arguments being 0 irrespective of what the bio_offset has been passed to btrfs_submit_bio_start. Make this apparent by explicitly passing 0 for bio_offset when calling btrfs_wq_submit_bio from btrfs_submit_bio_hook. This will allow for further simplifications down the line. No functional changes. Reviewed-by: Johannes Thumshirn Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit c2ccfbc62e9f00979fc1a82ab93ff0a4ddd8944a Author: Nikolay Borisov Date: Wed Apr 10 17:24:40 2019 +0300 btrfs: Remove 'tree' argument from read_extent_buffer_pages This function always uses the btree inode's io_tree. Stop taking the tree as a function argument and instead access it internally from read_extent_buffer_pages. No functional changes. Reviewed-by: Johannes Thumshirn Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit a56b1c7bc83c2c5439e4a5d44f35cea36fbe2c9d Author: Nikolay Borisov Date: Wed Apr 10 17:24:39 2019 +0300 btrfs: Change submit_bio_hook to taking an inode directly The only possible 'private_data' that is passed to this function is actually an inode. Make that explicit by changing the signature of the call back. No functional changes. Reviewed-by: Johannes Thumshirn Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit a9355a0ef32f109b08bb0ff51d8ad5bd173cf21b Author: Nikolay Borisov Date: Wed Apr 10 17:24:38 2019 +0300 btrfs: Define submit_bio_hook's type directly There is no need to use a typedef to define the type of the function and then use that to define the respective member in extent_io_ops. Define struct's member directly. No functional changes. Reviewed-by: Johannes Thumshirn Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit 2ccf545e0db9398d0459915a94cb995c9fd5c570 Author: David Sterba Date: Wed Mar 20 14:11:21 2019 +0100 btrfs: get fs_info from block group in search_free_space_info We can read fs_info from the block group cache structure and can drop it from the parameters. Though the transaction is also availabe, it's not guaranteed to be non-NULL. Signed-off-by: David Sterba commit 2ceeae2e4c4c3be9d52e84909e3882302002bb9c Author: David Sterba Date: Wed Mar 20 13:53:49 2019 +0100 btrfs: get fs_info from block group in btrfs_find_space_cluster We can read fs_info from the block group cache structure and can drop it from the parameters. Signed-off-by: David Sterba commit 6701bdb39ceb48d9b155c2b7f989c250140d6e45 Author: David Sterba Date: Wed Mar 20 13:49:09 2019 +0100 btrfs: get fs_info from block group in write_pinned_extent_entries We can read fs_info from the block group cache structure and can drop it from the parameters. Signed-off-by: David Sterba commit bb6cb1c5b92bc67082acf4dd0f037d8d3d0d0c61 Author: David Sterba Date: Wed Mar 20 13:47:15 2019 +0100 btrfs: get fs_info from block group in load_free_space_cache We can read fs_info from the block group cache structure and can drop it from the parameters. Signed-off-by: David Sterba commit 7949f3392ed65d19f0f6726e9e32445aa8b707dc Author: David Sterba Date: Wed Mar 20 13:40:19 2019 +0100 btrfs: get fs_info from block group in lookup_free_space_inode We can read fs_info from the block group cache structure and can drop it from the parameters. Signed-off-by: David Sterba commit fdf08605b95d36c04e90915cc0eb729df324c4bc Author: David Sterba Date: Wed Mar 20 12:12:32 2019 +0100 btrfs: get fs_info from block group in pin_down_extent We can read fs_info from the block group cache structure and can drop it from the parameters. Signed-off-by: David Sterba commit f87b7eb821e30d2db8ac62957293982cf91e37c2 Author: David Sterba Date: Wed Mar 20 12:01:07 2019 +0100 btrfs: get fs_info from block group in next_block_group We can read fs_info from the block group cache structure and can drop it from the parameters. Signed-off-by: David Sterba commit 32b593bfcb58638f40a72fd5c6db50a21616a54e Author: Filipe Manana Date: Wed Apr 17 10:28:47 2019 +0100 Btrfs: remove no longer used function to run delayed refs asynchronously It used to be called from only two places (truncate path and releasing a transaction handle), but commits 28bad2125767c5 ("btrfs: fix truncate throttling") and db2462a6ad3dc4 ("btrfs: don't run delayed refs in the end transaction logic") removed their calls to this function, so it's not used anymore. Just remove it and all its helpers. Reviewed-by: Qu Wenruo Signed-off-by: Filipe Manana Signed-off-by: David Sterba commit e3de9b159a927fc1fd65e4d090b981b781c58926 Author: Anand Jain Date: Fri Apr 12 16:02:59 2019 +0800 btrfs: cleanup btrfs_setxattr_trans and drop transaction parameter Previous patch made sure that btrfs_setxattr_trans() is called only when transaction NULL. Clean up btrfs_setxattr_trans() and drop the parameter. Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba commit 04e6863b19c72279bcbeffa26d85d649ab9c8205 Author: Anand Jain Date: Fri Apr 12 16:02:58 2019 +0800 btrfs: split btrfs_setxattr calls regarding transaction When the caller has already created the transaction handle, btrfs_setxattr() will use it. Also adds assert in btrfs_setxattr(). Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba commit 353c2ea735e4b54fb6250861e67b51b1bcb47198 Author: Anand Jain Date: Fri Apr 12 16:02:57 2019 +0800 btrfs: remove redundant readonly root check in btrfs_setxattr_trans btrfs_setxattr_trans() is called by 5 functions as below and all of them do updates. None of them would be roun on a read-only root. So its ok to remove the readonly root check here as it's a high-level conditon. 1. __btrfs_set_acl() btrfs_init_acl() btrfs_init_inode_security() 2. __btrfs_set_acl() btrfs_set_acl() 3. btrfs_set_prop() btrfs_set_prop_trans() / \ btrfs_ioctl_setflags() btrfs_xattr_handler_set_prop() 4. btrfs_xattr_handler_set() 5. btrfs_initxattrs() btrfs_xattr_security_init() btrfs_init_inode_security() Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba commit 3e125a74fbc1938afd699ba9ba7f33801768bd0e Author: Anand Jain Date: Fri Apr 12 16:02:56 2019 +0800 btrfs: export btrfs_setxattr Preparatory patch, as we are going split the calls with and without transaction to use the respective btrfs_setxattr() and btrfs_setxattr_trans() functions. Export btrfs_setxattr() for calls outside of xattr.c. Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba commit 2d74fa3efcffe456d16833af118ffe0cb0ee6785 Author: Anand Jain Date: Fri Apr 12 16:02:55 2019 +0800 btrfs: rename do_setxattr to btrfs_setxattr When trans is not NULL btrfs_setxattr() calls do_setxattr() directly with a check for readonly root. Rename do_setxattr() btrfs_setxattr() in preparation to call do_setxattr() directly instead. Preparatory patch, no functional changes. Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba commit cac237ae095f6d92bda05ccd6df349d20f1a4bfc Author: Anand Jain Date: Fri Apr 12 16:02:54 2019 +0800 btrfs: rename btrfs_setxattr to btrfs_setxattr_trans Rename btrfs_setxattr() to btrfs_setxattr_trans(), so that do_setxattr() can be renamed to btrfs_setxattr(). Preparatory patch, no functional changes. Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba commit 31aab402076f7743b70217cdaa00356e8f8ec530 Author: Qu Wenruo Date: Mon Apr 15 21:15:25 2019 +0800 btrfs: trace: Introduce trace events for all btrfs tree locking events Unlike btrfs_tree_lock() and btrfs_tree_read_lock(), the remaining functions in locking.c will not sleep, thus doesn't make much sense to record their execution time. Those events are introduced mainly for user space tool to audit and detect lock leakage or dead lock. Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit 34e73cc930a8677426c9cbffdd3421e18f32e79f Author: Qu Wenruo Date: Mon Apr 15 21:15:24 2019 +0800 btrfs: trace: Introduce trace events for sleepable tree lock There are two tree lock events which can sleep: - btrfs_tree_read_lock() - btrfs_tree_lock() Sometimes we may need to look into the concurrency picture of the fs. For that case, we need the execution time of above two functions and the owner of @eb. Here we introduce a trace events for user space tools like bcc, to get the execution time of above two functions, and get detailed owner info where eBPF code can't. All the overhead is hidden behind the trace events, so if events are not enabled, there is no overhead. These trace events also output bytenr and generation, allow them to be pared with unlock events to pin down deadlock. Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit 74f657d89c6734c260509338e88ad6d5f5a24e1d Author: Filipe Manana Date: Mon Apr 15 09:29:19 2019 +0100 Btrfs: remove no longer used member num_dirty_bgs from transaction The member num_dirty_bgs of struct btrfs_transaction is not used anymore, it is set and incremented but nothing reads its value anymore. Its last read use was removed by commit 64403612b73a94 ("btrfs: rework btrfs_check_space_for_delayed_refs"). So just remove that member. Signed-off-by: Filipe Manana Reviewed-by: David Sterba Signed-off-by: David Sterba commit 2b584c688bb53d482220712e2f5810a155ec1b74 Author: David Sterba Date: Wed Mar 20 16:51:44 2019 +0100 btrfs: get fs_info from trans in btrfs_run_dev_replace We can read fs_info from the transaction and can drop it from the parameters. Signed-off-by: David Sterba commit 196c9d8de8389643318c22259fd5bcfccbc7fb91 Author: David Sterba Date: Wed Mar 20 16:50:38 2019 +0100 btrfs: get fs_info from trans in btrfs_run_dev_stats We can read fs_info from the transaction and can drop it from the parameters. Signed-off-by: David Sterba commit 5c466629e27a346e056f5d1d0fff13f562690bbb Author: David Sterba Date: Wed Mar 20 16:36:39 2019 +0100 btrfs: get fs_info from trans in btrfs_finish_sprout We can read fs_info from the transaction and can drop it from the parameters. Signed-off-by: David Sterba commit 6f8e0fc77cd5534f6c3b1494adcc9dd8da8998a5 Author: David Sterba Date: Wed Mar 20 16:29:13 2019 +0100 btrfs: get fs_info from trans in init_first_rw_device We can read fs_info from the transaction and can drop it from the parameters. Signed-off-by: David Sterba commit 94f94ad9725550bc33e5561b55fc4506228b1d7b Author: David Sterba Date: Wed Mar 20 14:42:33 2019 +0100 btrfs: get fs_info from trans in copy_for_split We can read fs_info from the transaction and can drop it from the parameters. Signed-off-by: David Sterba commit 6ad3cf6df0963845a681d39792822255598d68e2 Author: David Sterba Date: Wed Mar 20 14:32:45 2019 +0100 btrfs: get fs_info from trans in insert_ptr We can read fs_info from the transaction and can drop it from the parameters. Signed-off-by: David Sterba commit 55d32ed8d3e35e6d79d85aa6cbcb9e8dfb021c1a Author: David Sterba Date: Wed Mar 20 14:18:06 2019 +0100 btrfs: get fs_info from trans in balance_node_right We can read fs_info from the transaction and can drop it from the parameters. Signed-off-by: David Sterba commit d30a668f1bf13893cca35bf64ae85ba8b1bc69ec Author: David Sterba Date: Wed Mar 20 14:16:45 2019 +0100 btrfs: get fs_info from trans in push_node_left We can read fs_info from the transaction and can drop it from the parameters. Signed-off-by: David Sterba commit fe04153452a6305ddaab056f4fa412c142a6f955 Author: David Sterba Date: Wed Mar 20 13:51:56 2019 +0100 btrfs: get fs_info from trans in btrfs_write_out_cache We can read fs_info from the transaction and can drop it from the parameters. Signed-off-by: David Sterba commit 4ca75f1bd413ec0c550f925c009a7ba1b20e6003 Author: David Sterba Date: Wed Mar 20 13:42:57 2019 +0100 btrfs: get fs_info from trans in create_free_space_inode We can read fs_info from the transaction and can drop it from the parameters. Signed-off-by: David Sterba commit 907877664e2d858b9344e3a46ceeb2e74425e81f Author: David Sterba Date: Wed Mar 20 13:28:05 2019 +0100 btrfs: get fs_info from trans in btrfs_set_log_full_commit We can read fs_info from the transaction and can drop it from the parameters. Signed-off-by: David Sterba commit 4884b8e8ebf54e1654bddd9721b9b00e69d6a148 Author: David Sterba Date: Wed Mar 20 13:25:34 2019 +0100 btrfs: get fs_info from trans in btrfs_need_log_full_commit We can read fs_info from the transaction and can drop it from the parameters. Signed-off-by: David Sterba commit 9b7a2440ae51de73bf80e07b0465b9ed736397bd Author: David Sterba Date: Wed Mar 20 13:20:49 2019 +0100 btrfs: get fs_info from trans in btrfs_create_tree We can read fs_info from the transaction and can drop it from the parameters. Signed-off-by: David Sterba commit 6b2794084345e55105f8b50ce33c81a9f2b6f7b9 Author: David Sterba Date: Wed Mar 20 12:10:15 2019 +0100 btrfs: get fs_info from trans in update_block_group We can read fs_info from the transaction and can drop it from the parameters. Signed-off-by: David Sterba commit 5742d15fa76adfc833642f9c24f7c31c9b1a1646 Author: David Sterba Date: Wed Mar 20 12:04:08 2019 +0100 btrfs: get fs_info from trans in btrfs_write_dirty_block_groups We can read fs_info from the transaction and can drop it from the parameters. Signed-off-by: David Sterba commit bbebb3e0babb68bbff240608aaa14229d2d5d1dc Author: David Sterba Date: Wed Mar 20 12:02:55 2019 +0100 btrfs: get fs_info from trans in btrfs_setup_space_cache We can read fs_info from the transaction and can drop it from the parameters. Signed-off-by: David Sterba commit 39db232daec79c8fec83b3447a8c9b7352c79fcc Author: David Sterba Date: Wed Mar 20 11:57:46 2019 +0100 btrfs: get fs_info from trans in write_one_cache_group We can read fs_info from the transaction and can drop it from the parameters. Signed-off-by: David Sterba commit f9756261c28c0acdaac8a7a8894d3e25d334d5f3 Author: Nikolay Borisov Date: Wed Apr 10 16:16:11 2019 +0300 btrfs: Remove redundant inode argument from btrfs_add_ordered_sum Ordered csums are keyed off of a btrfs_ordered_extent, which already has a reference to the inode. This implies that an explicit inode argument is redundant. So remove it. Reviewed-by: Johannes Thumshirn Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit 8d47a0d8f7947422dd359ac8e462687f81a7a137 Author: Qu Wenruo Date: Thu Apr 4 11:47:08 2019 +0800 btrfs: Do mandatory tree block check before submitting bio There are at least 2 reports about a memory bit flip sneaking into on-disk data. Currently we only have a relaxed check triggered at btrfs_mark_buffer_dirty() time, as it's not mandatory and only for CONFIG_BTRFS_FS_CHECK_INTEGRITY enabled build, it doesn't help users to detect such problem. This patch will address the hole by triggering comprehensive check on tree blocks before writing it back to disk. The design points are: - Timing of the check: Tree block write hook This timing is chosen to reduce the overhead. The comprehensive check should be as expensive as a checksum calculation. Doing full check at btrfs_mark_buffer_dirty() is too expensive for end user. - Loose empty leaf check Originally for an empty leaf, tree-checker will report error if it's not a tree root. The problem for such check at write time is: * False alert for tree root created in current transaction In that case, the commit root still needs to be written to disk. And since current root can differ from commit root, then it will cause false alert. This happens for log tree. * False alert for relocated tree block Relocated tree block can be written to disk due to memory pressure, in that case an empty csum tree root can be written to disk and cause false alert, since csum root node hasn't been updated. Previous patch of removing comprehensive empty leaf owner check has paved the way for this patch. The example error output will be something like: BTRFS critical (device dm-3): corrupt leaf: root=2 block=1350630375424 slot=68, bad key order, prev (10510212874240 169 0) current (1714119868416 169 0) BTRFS error (device dm-3): block=1350630375424 write time tree block corruption detected BTRFS: error (device dm-3) in btrfs_commit_transaction:2220: errno=-5 IO failure (Error while writing out transaction) BTRFS info (device dm-3): forced readonly BTRFS warning (device dm-3): Skipping commit of aborted transaction. BTRFS: error (device dm-3) in cleanup_transaction:1839: errno=-5 IO failure BTRFS info (device dm-3): delayed_refs has NO entry Reported-by: Leonard Lausen Signed-off-by: Qu Wenruo Signed-off-by: David Sterba commit ff2ac107fae2440b6877c615c0ac788d2a106ed7 Author: Qu Wenruo Date: Thu Apr 4 11:47:07 2019 +0800 btrfs: tree-checker: Remove comprehensive root owner check Commit 1ba98d086fe3 ("Btrfs: detect corruption when non-root leaf has zero item") introduced comprehensive root owner checker. However it's pretty expensive tree search to locate the owner root, especially when it get reused by mandatory read and write time tree-checker. This patch will remove that check, and completely rely on owner based empty leaf check, which is much faster and still works fine for most case. And since we skip the old root owner check, now write time tree check can be merged with btrfs_check_leaf_full(). Signed-off-by: Qu Wenruo Signed-off-by: David Sterba commit 39ad317315887c2cb9a4347a93a8859326ddf136 Author: Robbie Ko Date: Tue Mar 26 11:56:11 2019 +0800 Btrfs: fix data bytes_may_use underflow with fallocate due to failed quota reserve When doing fallocate, we first add the range to the reserve_list and then reserve the quota. If quota reservation fails, we'll release all reserved parts of reserve_list. However, cur_offset is not updated to indicate that this range is already been inserted into the list. Therefore, the same range is freed twice. Once at list_for_each_entry loop, and once at the end of the function. This will result in WARN_ON on bytes_may_use when we free the remaining space. At the end, under the 'out' label we have a call to: btrfs_free_reserved_data_space(inode, data_reserved, alloc_start, alloc_end - cur_offset); The start offset, third argument, should be cur_offset. Everything from alloc_start to cur_offset was freed by the list_for_each_entry_safe_loop. Fixes: 18513091af94 ("btrfs: update btrfs_space_info's bytes_may_use timely") Reviewed-by: Filipe Manana Signed-off-by: Robbie Ko Signed-off-by: David Sterba commit 178507595c934463da440fef8a0341f9a867ba38 Author: David Sterba Date: Wed Mar 20 16:45:15 2019 +0100 btrfs: get fs_info from eb in read_one_dev We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit 9690ac09877482a03a93b0b2147f15fc636a49f9 Author: David Sterba Date: Wed Mar 20 16:43:07 2019 +0100 btrfs: get fs_info from eb in read_one_chunk We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit ddaf1d5aef2c34f0cf5b0d71a48f9d88c5a0e2dc Author: David Sterba Date: Wed Mar 20 16:40:48 2019 +0100 btrfs: get fs_info from eb in btrfs_check_chunk_valid We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit 6ec0896c4c810da6abf2130f13cbbe38a8955697 Author: David Sterba Date: Wed Mar 20 16:38:52 2019 +0100 btrfs: get fs_info from eb in should_balance_chunk We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit 813fd1dcab2d030ce4445f3ecc143a492a62e8b8 Author: David Sterba Date: Wed Mar 20 16:25:00 2019 +0100 btrfs: get fs_info from eb in btrfs_check_node We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit cfdaad5e5f425b0a42ff1df3893f137b90099f44 Author: David Sterba Date: Wed Mar 20 16:24:18 2019 +0100 btrfs: get fs_info from eb in btrfs_check_leaf_relaxed We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit 1c4360ee056b724d3b0e4cb2d0fe4ff6c242b7ca Author: David Sterba Date: Wed Mar 20 16:23:29 2019 +0100 btrfs: get fs_info from eb in btrfs_check_leaf_full We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit 929be17a9b49b10743c3db304f939d27da1abd2f Author: Nikolay Borisov Date: Wed Mar 27 14:24:18 2019 +0200 btrfs: Switch btrfs_trim_free_extents to find_first_clear_extent_bit Instead of always calling the allocator to search for a free extent, that satisfies the input criteria, switch btrfs_trim_free_extents to using find_first_clear_extent_bit. With this change it's no longer necessary to read the device tree in order to figure out holes in the devices. Now the code always searches in-memory data structure to figure out the space range which contains the requested which should result in speed improvements. Signed-off-by: Nikolay Borisov Signed-off-by: David Sterba commit 45bfcfc168f84f498d9825ec20ff3f4ee9208e04 Author: Nikolay Borisov Date: Wed Mar 27 14:24:17 2019 +0200 btrfs: Implement find_first_clear_extent_bit This function is very similar to find_first_extent_bit except that it locates the first contiguous span of space which does not have bits set. It's intended use is in the freespace trimming code. Signed-off-by: Nikolay Borisov Signed-off-by: David Sterba commit 8811133d8a982d3cef5d25eef54a8dca9e8e6ded Author: Nikolay Borisov Date: Wed Mar 27 14:24:16 2019 +0200 btrfs: Optimize unallocated chunks discard Currently unallocated chunks are always trimmed. For example 2 consecutive trims on large storage would trim freespace twice irrespective of whether the space was actually allocated or not between those trims. Optimise this behavior by exploiting the newly introduced alloc_state tree of btrfs_device. A new CHUNK_TRIMMED bit is used to mark those unallocated chunks which have been trimmed and have not been allocated afterwards. On chunk allocation the respective underlying devices' physical space will have its CHUNK_TRIMMED flag cleared. This avoids submitting discards for space which hasn't been changed since the last time discard was issued. This applies to the single mount period of the filesystem as the information is not stored permanently. Signed-off-by: Nikolay Borisov Signed-off-by: David Sterba commit e74e3993bcf6a1d119a2bbe7af2cc278a147f930 Author: Nikolay Borisov Date: Wed Mar 27 14:24:15 2019 +0200 btrfs: Factor out in_range macro This is used in more than one places so let's factor it out in ctree.h. No functional changes. Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit 60dfdf25bd31b94d0ed8e0ea50964ff22cc36a87 Author: Nikolay Borisov Date: Wed Mar 27 14:24:14 2019 +0200 btrfs: Remove 'trans' argument from find_free_dev_extent(_start) Now that these functions no longer require a handle to transaction to inspect pending/pinned chunks the argument can be removed. At the same time also remove any surrounding code which acquired the handle. Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit 1c11b63eff2a67906cb9137bc6b2ee27767f313b Author: Jeff Mahoney Date: Wed Mar 27 14:24:12 2019 +0200 btrfs: replace pending/pinned chunks lists with io tree The pending chunks list contains chunks that are allocated in the current transaction but haven't been created yet. The pinned chunks list contains chunks that are being released in the current transaction. Both describe chunks that are not reflected on disk as in use but are unavailable just the same. The pending chunks list is anchored by the transaction handle, which means that we need to hold a reference to a transaction when working with the list. The way we use them is by iterating over both lists to perform comparisons on the stripes they describe for each device. This is backwards and requires that we keep a transaction handle open while we're trimming. This patchset adds an extent_io_tree to btrfs_device that maintains the allocation state of the device. Extents are set dirty when chunks are first allocated -- when the extent maps are added to the mapping tree. They're cleared when last removed -- when the extent maps are removed from the mapping tree. This matches the lifespan of the pending and pinned chunks list and allows us to do trims on unallocated space safely without pinning the transaction for what may be a lengthy operation. We can also use this io tree to mark which chunks have already been trimmed so we don't repeat the operation. Signed-off-by: Jeff Mahoney Signed-off-by: Nikolay Borisov Signed-off-by: David Sterba commit 68c94e55e1502868813a3cac2febc021d01edb75 Author: Nikolay Borisov Date: Tue Feb 12 16:13:14 2019 +0200 btrfs: Transpose btrfs_close_devices/btrfs_mapping_tree_free in close_ctree Following the introduction of the alloc_state tree, some of the callees of btrfs_mapping_tree_free will have to interact with the btrfs_device of the constituent devices. Enable this by moving the code responsible for freeing devices after the last user (btrfs_mapping_tree_free). Otherwise the kernel could crash due to use-after-free. Signed-off-by: Nikolay Borisov Signed-off-by: David Sterba commit 8e75fd893b0608aa3a45f8654b71960423df5f3e Author: Nikolay Borisov Date: Wed Mar 27 14:24:11 2019 +0200 btrfs: Stop using call_rcu for device freeing btrfs_device structs are freed from RCU context since device iteration is protected by RCU. Currently this is achieved by using call_rcu since no blocking functions are called within btrfs_free_device. Future refactoring of pending/pinned chunks will require calling sleeping functions. This patch is in preparation for these changes by simply switching from RCU callbacks to explicit calls of synchronize_rcu and calling btrfs_free_device directly. This is functionally equivalent, making sure that there are no readers at that time. Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit 4ca7365606ca08282da248fbc270abf58a515e20 Author: Nikolay Borisov Date: Wed Mar 27 14:24:10 2019 +0200 btrfs: Implement set_extent_bits_nowait It will be used in a future patch that will require modifying an extent_io_tree struct under a spinlock. Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit 930b09072977583226a05b4f2e1db259f9a2417b Author: Nikolay Borisov Date: Mon Mar 25 14:31:26 2019 +0200 btrfs: Introduce new bits for device allocation tree Rather than hijacking the existing defines let's just define new bits, with more descriptive names. Instead of using yet more (currently at 18) bits for the new flags, use the fact those flags will be specific to the device allocation tree so define them using existing EXTENT_* flags. Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit 39e264a40dd7998f844ab888cc9640bff4841f8f Author: Nikolay Borisov Date: Mon Mar 25 14:31:25 2019 +0200 btrfs: Populate ->orig_block_len during read_one_chunk Chunks read from disk currently don't get their ->orig_block_len member set, in contrast when a new chunk is allocated, the respective extent_map's ->orig_block_len is assigned the size of the stripe of this chunk. Let's apply the same strategy for chunks which are read from disk, not only does this codify the invariant that ->orig_block_len always contains the size of the stripe for a chunk (when the em belongs to the mapping tree). But it's also a preparatory patch for further work around tracking chunk allocation in an extent tree rather than pinned/pending lists. Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit 41e7acd38c1ae82f24f51d302bbdecdb4675b6b2 Author: Nikolay Borisov Date: Mon Mar 25 14:31:24 2019 +0200 btrfs: Rename and export clear_btree_io_tree This function is going to be used to clear out the device extent allocation information. Give it a more generic name and export it. This is in preparation to replacing the pending/pinned chunk lists with an extent tree. No functional changes. Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit 61d0d0d2cbb7e52d3defe8089d5f360cf6d836ef Author: Nikolay Borisov Date: Mon Mar 25 14:31:23 2019 +0200 btrfs: Handle pending/pinned chunks before blockgroup relocation during device shrink During device shrink pinned/pending chunks (i.e. those which have been deleted/created respectively, in the current transaction and haven't touched disk) need to be accounted when doing device shrink. Presently this happens after the main relocation loop in btrfs_shrink_device, which could lead to making another go in the body of the function. Since there is no hard requirement to perform pinned/pending chunks handling after the relocation loop, move the code before it. This leads to simplifying the code flow around - i.e. no need to use 'goto again'. A notable side effect of this change is that modification of the device's size requires a transaction to be started and committed before the relocation loop starts. This is necessary to ensure that relocation process sees the shrunk device size. Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit bbbf7243d62d8be73b7ef60721c127b36b2d523e Author: Nikolay Borisov Date: Mon Mar 25 14:31:22 2019 +0200 btrfs: combine device update operations during transaction commit We currently overload the pending_chunks list to handle updating btrfs_device->commit_bytes used. We don't actually care about the extent mapping or even the device mapping for the chunk - we just need the device, and we can end up processing it multiple times. The fs_devices->resized_list does more or less the same thing, but with the disk size. They are called consecutively during commit and have more or less the same purpose. We can combine the two lists into a single list that attaches to the transaction and contains a list of devices that need updating. Since we always add the device to a list when we change bytes_used or disk_total_size, there's no harm in copying both values at once. Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit c2d1b3aae33605a61cbab445d8ae1c708ccd2698 Author: Nikolay Borisov Date: Mon Mar 25 14:31:21 2019 +0200 btrfs: Honour FITRIM range constraints during free space trim Up until now trimming the freespace was done irrespective of what the arguments of the FITRIM ioctl were. For example fstrim's -o/-l arguments will be entirely ignored. Fix it by correctly handling those paramter. This requires breaking if the found freespace extent is after the end of the passed range as well as completing trim after trimming fstrim_range::len bytes. Fixes: 499f377f49f0 ("btrfs: iterate over unused chunk space in FITRIM") CC: stable@vger.kernel.org # 4.4+ Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit 040ee6120cb6706aa840a62f3b7966ebce9bfcd3 Author: Robbie Ko Date: Fri Mar 29 18:03:27 2019 +0800 Btrfs: send, improve clone range Improve clone_range in two scenarios. 1. Remove the limit of inode size when find clone inodes We can do partial clone, so there is no need to limit the size of the candidate inode. When clone a range, we clone the legal range only by bytenr, offset, len, inode size. 2. In the scenarios of rewrite or clone_range, data_offset rarely matches exactly, so the chance of a clone is missed. e.g. 1. Write a 1M file dd if=/dev/zero of=1M bs=1M count=1 2. Clone 1M file cp --reflink 1M clone 3. Rewrite 4k on the clone file dd if=/dev/zero of=clone bs=4k count=1 conv=notrunc The disk layout is as follows: item 16 key (257 EXTENT_DATA 0) itemoff 15353 itemsize 53 extent data disk byte 1103101952 nr 1048576 extent data offset 0 nr 1048576 ram 1048576 extent compression(none) ... item 22 key (258 EXTENT_DATA 0) itemoff 14959 itemsize 53 extent data disk byte 1104150528 nr 4096 extent data offset 0 nr 4096 ram 4096 extent compression(none) item 23 key (258 EXTENT_DATA 4096) itemoff 14906 itemsize 53 extent data disk byte 1103101952 nr 1048576 extent data offset 4096 nr 1044480 ram 1048576 extent compression(none) When send, inode 258 file offset 4096~1048576 (item 23) has a chance to clone_range, but because data_offset does not match inode 257 (item 16), it causes missed clone and can only transfer actual data. Improve the problem by judging whether the current data_offset has overlap with the file extent item, and if so, adjusting offset and extent_len so that we can clone correctly. Reviewed-by: Filipe Manana Signed-off-by: Robbie Ko Signed-off-by: David Sterba commit 8b4d1efc9e6c326fe73a88d562c9d1c571493d32 Author: Anand Jain Date: Tue Apr 2 18:07:41 2019 +0800 btrfs: prop: open code btrfs_set_prop in inherit_prop When an inode inherits property from its parent, we call btrfs_set_prop(). btrfs_set_prop() does an elaborate checks, which is not required in the context of inheriting a property. Instead just open-code only the required items from btrfs_set_prop() and then call btrfs_setxattr() directly. So now the only user of btrfs_set_prop() is gone, (except for the wraper function btrfs_set_prop_trans()). Reviewed-by: Nikolay Borisov Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba commit ae0bc863106ae45b189986c76fda44f6885e8769 Author: Anand Jain Date: Fri Mar 29 14:03:17 2019 +0800 btrfs: drop unused parameter in mount_subvol @device_name in mount_subvol() is not used, drop it. Also see: 5bedc48a8f9e ("btrfs: drop unused parameters from mount_subvol"). Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba commit 39e57f495bf94c4d36a8048aea37b1cd2ab730bc Author: David Sterba Date: Wed Mar 20 16:22:58 2019 +0100 btrfs: tree-checker: get fs_info from eb in check_inode_item We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit 412a23127c58c54f709015342af5e724681a5b2d Author: David Sterba Date: Wed Mar 20 16:22:58 2019 +0100 btrfs: tree-checker: get fs_info from eb in check_dev_item We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit 5617ed80cbaa9638c6dadfd1b8ca268611e1267a Author: David Sterba Date: Wed Mar 20 16:22:58 2019 +0100 btrfs: tree-checker: get fs_info from eb in dev_item_err We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit d001e4a3fe3959bdd7b5d4d29246082305d1b840 Author: David Sterba Date: Wed Mar 20 16:22:58 2019 +0100 btrfs: tree-checker: get fs_info from eb in chunk_err We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit e2ccd361ef06d18eaba488a568ed4d3664f2d4a7 Author: David Sterba Date: Wed Mar 20 16:22:58 2019 +0100 btrfs: tree-checker: get fs_info from eb in check_leaf We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit 0076bc89a77a62bb765a32c6ab6013ea7f9f1eb0 Author: David Sterba Date: Wed Mar 20 16:22:00 2019 +0100 btrfs: tree-checker: get fs_info from eb in check_leaf_item We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit ae2a19d8ad2ec18ef61a186ebd768d3a6fef14eb Author: David Sterba Date: Wed Mar 20 16:21:10 2019 +0100 btrfs: tree-checker: get fs_info from eb in check_extent_data_item We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit af60ce2b9354e6aeea36965f10be3d31f1710582 Author: David Sterba Date: Wed Mar 20 16:19:31 2019 +0100 btrfs: tree-checker: get fs_info from eb in check_block_group_item We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit 4806bd886aa0f9d23072711a5d9c84ac6b6fcadf Author: David Sterba Date: Wed Mar 20 16:18:57 2019 +0100 btrfs: tree-checker: get fs_info from eb in block_group_err We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit ce4252c049bd2df0270453e96fba0d0dd1db6db4 Author: David Sterba Date: Wed Mar 20 16:17:46 2019 +0100 btrfs: tree-checker: get fs_info from eb in check_dir_item We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit d98ced688f4939f458ed5a8743c06a6fb6dcfa8f Author: David Sterba Date: Wed Mar 20 16:07:27 2019 +0100 btrfs: tree-checker: get fs_info from eb in dir_item_err We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit 68128ce756204bfd9f10223cb7ecc986eb335c86 Author: David Sterba Date: Wed Mar 20 16:02:56 2019 +0100 btrfs: tree-checker: get fs_info from eb in check_csum_item We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit 1fd715ffdd14870307c8cd6965c454d928b66d40 Author: David Sterba Date: Wed Mar 20 15:32:46 2019 +0100 btrfs: tree-checker: get fs_info from eb in file_extent_err We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit 86a6be3abe6c48f01c94a2f4ae4ef13e57464ca6 Author: David Sterba Date: Wed Mar 20 15:31:28 2019 +0100 btrfs: tree-checker: get fs_info from eb in generic_err We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit 6bf9e4bd6a277840d3fe8c5d5d530a1fbd3db592 Author: Qu Wenruo Date: Wed Mar 13 13:55:11 2019 +0800 btrfs: inode: Verify inode mode to avoid NULL pointer dereference [BUG] When accessing a file on a crafted image, btrfs can crash in block layer: BUG: unable to handle kernel NULL pointer dereference at 0000000000000008 PGD 136501067 P4D 136501067 PUD 124519067 PMD 0 CPU: 3 PID: 0 Comm: swapper/3 Not tainted 5.0.0-rc8-default #252 RIP: 0010:end_bio_extent_readpage+0x144/0x700 Call Trace: blk_update_request+0x8f/0x350 blk_mq_end_request+0x1a/0x120 blk_done_softirq+0x99/0xc0 __do_softirq+0xc7/0x467 irq_exit+0xd1/0xe0 call_function_single_interrupt+0xf/0x20 RIP: 0010:default_idle+0x1e/0x170 [CAUSE] The crafted image has a tricky corruption, the INODE_ITEM has a different type against its parent dir: item 20 key (268 INODE_ITEM 0) itemoff 2808 itemsize 160 generation 13 transid 13 size 1048576 nbytes 1048576 block group 0 mode 121644 links 1 uid 0 gid 0 rdev 0 sequence 9 flags 0x0(none) This mode number 0120000 means it's a symlink. But the dir item think it's still a regular file: item 8 key (264 DIR_INDEX 5) itemoff 3707 itemsize 32 location key (268 INODE_ITEM 0) type FILE transid 13 data_len 0 name_len 2 name: f4 item 40 key (264 DIR_ITEM 51821248) itemoff 1573 itemsize 32 location key (268 INODE_ITEM 0) type FILE transid 13 data_len 0 name_len 2 name: f4 For symlink, we don't set BTRFS_I(inode)->io_tree.ops and leave it empty, as symlink is only designed to have inlined extent, all handled by tree block read. Thus no need to trigger btrfs_submit_bio_hook() for inline file extent. However end_bio_extent_readpage() expects tree->ops populated, as it's reading regular data extent. This causes NULL pointer dereference. [FIX] This patch fixes the problem in two ways: - Verify inode mode against its dir item when looking up inode So in btrfs_lookup_dentry() if we find inode mode mismatch with dir item, we error out so that corrupted inode will not be accessed. - Verify inode mode when getting extent mapping Only regular file should have regular or preallocated extent. If we found regular/preallocated file extent for symlink or the rest, we error out before submitting the read bio. With this fix that crafted image can be rejected gracefully: BTRFS critical (device loop0): inode mode mismatch with dir: inode mode=0121644 btrfs type=7 dir type=1 Reported-by: Yoon Jungyeon Link: https://bugzilla.kernel.org/show_bug.cgi?id=202763 Reviewed-by: Nikolay Borisov Signed-off-by: Qu Wenruo Signed-off-by: David Sterba commit 496245cac57e26d8b738d85c7a29cf9a47610f3f Author: Qu Wenruo Date: Wed Mar 13 14:31:35 2019 +0800 btrfs: tree-checker: Verify inode item There is a report in kernel bugzilla about mismatch file type in dir item and inode item. This inspires us to check inode mode in inode item. This patch will check the following members: - inode key objectid Should be ROOT_DIR_DIR or [256, (u64)-256] or FREE_INO. - inode key offset Should be 0 - inode item generation - inode item transid No newer than sb generation + 1. The +1 is for log tree. - inode item mode No unknown bits. No invalid S_IF* bit. NOTE: S_IFMT check is not enough, need to check every know type. - inode item nlink Dir should have no more link than 1. - inode item flags Reviewed-by: Nikolay Borisov Reviewed-by: Johannes Thumshirn Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit 80e46cf22ba0bcb57b39c7c3b52961ab3a0fd5f2 Author: Qu Wenruo Date: Wed Mar 13 12:17:50 2019 +0800 btrfs: tree-checker: Enhance chunk checker to validate chunk profile Btrfs-progs already have a comprehensive type checker, to ensure there is only 0 (SINGLE profile) or 1 (DUP/RAID0/1/5/6/10) bit set for chunk profile bits. Do the same work for kernel. Reported-by: Yoon Jungyeon Link: https://bugzilla.kernel.org/show_bug.cgi?id=202765 Reviewed-by: Nikolay Borisov Reviewed-by: Johannes Thumshirn Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit ab4ba2e133463c702b37242560d7fabedd2dc750 Author: Qu Wenruo Date: Fri Mar 8 14:20:03 2019 +0800 btrfs: tree-checker: Verify dev item [BUG] For fuzzed image whose DEV_ITEM has invalid total_bytes as 0, then kernel will just panic: BUG: unable to handle kernel NULL pointer dereference at 0000000000000098 #PF error: [normal kernel read fault] PGD 800000022b2bd067 P4D 800000022b2bd067 PUD 22b2bc067 PMD 0 Oops: 0000 [#1] SMP PTI CPU: 0 PID: 1106 Comm: mount Not tainted 5.0.0-rc8+ #9 RIP: 0010:btrfs_verify_dev_extents+0x2a5/0x5a0 Call Trace: open_ctree+0x160d/0x2149 btrfs_mount_root+0x5b2/0x680 [CAUSE] If device extent verification finds a deivce with 0 total_bytes, then it assumes it's a seed dummy, then search for seed devices. But in this case, there is no seed device at all, causing NULL pointer. [FIX] Since this is caused by fuzzed image, let's go the tree-check way, just add a new verification for device item. Reported-by: Yoon Jungyeon Link: https://bugzilla.kernel.org/show_bug.cgi?id=202691 Reviewed-by: Nikolay Borisov Signed-off-by: Qu Wenruo Reviewed-by: Johannes Thumshirn Signed-off-by: David Sterba commit 075cb3c78fe7976c9f29ca1fa23f9728634ecefc Author: Qu Wenruo Date: Wed Mar 20 13:42:33 2019 +0800 btrfs: tree-checker: Check chunk item at tree block read time Since we have btrfs_check_chunk_valid() in tree-checker, let's do chunk item verification in tree-checker too. Since the tree-checker is run at endio time, if one chunk leaf fails chunk verification, we can still retry the other copy, making btrfs more robust to fuzzed image as we may still get a good chunk item. Also since we have done chunk verification in tree block read time, skip the btrfs_check_chunk_valid() call in read_one_chunk() if we're reading chunk items from leaf. Reviewed-by: Johannes Thumshirn Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit bf871c3b43b1dcc3f2a076ff39a8f1ce7959d958 Author: Qu Wenruo Date: Wed Mar 20 13:39:14 2019 +0800 btrfs: tree-checker: Make btrfs_check_chunk_valid() return EUCLEAN instead of EIO To follow the standard behavior of tree-checker. Reviewed-by: Johannes Thumshirn Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit f114024376bceb1c0f61a7bad4a72a0f978767af Author: Qu Wenruo Date: Wed Mar 20 13:36:06 2019 +0800 btrfs: tree-checker: Make chunk item checker messages more readable Old error message would be something like: BTRFS error (device dm-3): invalid chunk num_stipres: 0 New error message would be: Btrfs critical (device dm-3): corrupt superblock syschunk array: chunk_start=2097152, invalid chunk num_stripes: 0 Or Btrfs critical (device dm-3): corrupt leaf: root=3 block=8388608 slot=3 chunk_start=2097152, invalid chunk num_stripes: 0 And for certain error message, also output expected value. The error message levels are changed from error to critical. Reviewed-by: Johannes Thumshirn Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit 82fc28fbedbb59642f05215db3b0ef4eb91aa31d Author: Qu Wenruo Date: Wed Mar 20 13:16:42 2019 +0800 btrfs: Move btrfs_check_chunk_valid() to tree-check.[ch] and export it By function, chunk item verification is more suitable to be done inside tree-checker. So move btrfs_check_chunk_valid() to tree-checker.c and export it. And since it's now moved to tree-checker, also add a better comment for what this function is doing. Reviewed-by: Johannes Thumshirn Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit 90b1377daa9633973d595487d717d43d3c601420 Author: David Sterba Date: Wed Mar 27 16:55:26 2019 +0100 btrfs: qgroup: remove obsolete fs_info members The commit fcebe4562dec ("Btrfs: rework qgroup accounting") reworked qgroups and added some new structures. Another rework of qgroup mechanics e69bcee37692 ("btrfs: qgroup: Cleanup the old ref_node-oriented mechanism.") stopped using them and left uncleaned. Reviewed-by: Qu Wenruo Signed-off-by: David Sterba commit e064d5e9f0a00041f84d9eabd3d53546e4f8ab74 Author: David Sterba Date: Wed Mar 20 14:58:13 2019 +0100 btrfs: get fs_info from eb in btrfs_verify_level_key We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit 5ab12d1ff83723f724d8631228f2b747aaec0a85 Author: David Sterba Date: Wed Mar 20 14:56:39 2019 +0100 btrfs: get fs_info from eb in btree_read_extent_buffer_pages We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit d0d20b0f5c6d0ca109957160d40b67542c7e0b51 Author: David Sterba Date: Wed Mar 20 14:54:01 2019 +0100 btrfs: get fs_info from eb in read_node_slot We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit e902baac656479bdb956224ed693578424cf9e96 Author: David Sterba Date: Wed Mar 20 14:36:46 2019 +0100 btrfs: get fs_info from eb in btrfs_leaf_free_space We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit 6a884d7d527f32b5ea80dc472968a5430ffee9f5 Author: David Sterba Date: Wed Mar 20 14:30:02 2019 +0100 btrfs: get fs_info from eb in clean_tree_block We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit ed874f0db89724d0af1b4793fb518f640f333b0b Author: David Sterba Date: Wed Mar 20 14:22:04 2019 +0100 btrfs: get fs_info from eb in tree_mod_log_eb_copy We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit b0c9b3b05dcbe9463550277af223f5d173aec522 Author: David Sterba Date: Wed Mar 20 13:12:00 2019 +0100 btrfs: get fs_info from eb in check_tree_block_fsid We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit bcdc428cfe7dda315ad128cbe06abe72add2c73f Author: David Sterba Date: Wed Mar 20 12:14:33 2019 +0100 btrfs: get fs_info from eb in btrfs_exclude_logged_extents We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit 8f881e8c1880fb7029e74ccdaa7891bd042b6c63 Author: David Sterba Date: Wed Mar 20 11:33:10 2019 +0100 btrfs: get fs_info from eb in leaf_data_end We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit 0ab020632860e202713a7615f82a59f595f028ae Author: David Sterba Date: Wed Mar 20 11:27:57 2019 +0100 btrfs: get fs_info from eb in write_one_eb We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit 20a1fbf97e11204e099a95167f1851fc54296a00 Author: David Sterba Date: Wed Mar 20 11:23:44 2019 +0100 btrfs: get fs_info from eb in repair_eb_io_failure We can read fs_info from extent buffer and can drop it from the parameters. As all callsites are updated, add the btrfs_ prefix as the function is exported. Signed-off-by: David Sterba commit 9df76fb5442abdcf5dcc1b2676927482614ac43f Author: David Sterba Date: Wed Mar 20 11:21:41 2019 +0100 btrfs: get fs_info from eb in lock_extent_buffer_for_io We can read fs_info from extent buffer and can drop it from the parameters. Signed-off-by: David Sterba commit 7d157c3d4810cfb9ea1bb0977e8e2db02032173a Author: Phillip Potter Date: Tue Mar 26 21:39:34 2019 +0000 btrfs: use common file type conversion Deduplicate the btrfs file type conversion implementation - file systems that use the same file types as defined by POSIX do not need to define their own versions and can use the common helper functions decared in fs_types.h and implemented in fs_types.c Common implementation can be found via commit: bbe7449e2599 "fs: common implementation of file type" Reviewed-by: Jan Kara Signed-off-by: Amir Goldstein Signed-off-by: Phillip Potter Reviewed-by: David Sterba Signed-off-by: David Sterba commit 7984ae52bbf75def1d7fcbf4c902e8f787e1ef9d Author: Goldwyn Rodrigues Date: Mon Feb 25 13:07:44 2019 -0600 btrfs: Perform locking/unlocking in btrfs_remap_file_range() Move code to make it more readable, so as locking and unlocking is done in the same function. The generic checks that are now performed in the locked section are unaffected. Signed-off-by: Goldwyn Rodrigues Reviewed-by: David Sterba Signed-off-by: David Sterba commit 290342f66108638048997b71393f0dd88e771352 Author: Arnd Bergmann Date: Mon Mar 25 14:02:25 2019 +0100 btrfs: use BUG() instead of BUG_ON(1) BUG_ON(1) leads to bogus warnings from clang when CONFIG_PROFILE_ANNOTATED_BRANCHES is set: fs/btrfs/volumes.c:5041:3: error: variable 'max_chunk_size' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized] BUG_ON(1); ^~~~~~~~~ include/asm-generic/bug.h:61:36: note: expanded from macro 'BUG_ON' #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0) ^~~~~~~~~~~~~~~~~~~ include/linux/compiler.h:48:23: note: expanded from macro 'unlikely' # define unlikely(x) (__branch_check__(x, 0, __builtin_constant_p(x))) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/btrfs/volumes.c:5046:9: note: uninitialized use occurs here max_chunk_size); ^~~~~~~~~~~~~~ include/linux/kernel.h:860:36: note: expanded from macro 'min' #define min(x, y) __careful_cmp(x, y, <) ^ include/linux/kernel.h:853:17: note: expanded from macro '__careful_cmp' __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op)) ^ include/linux/kernel.h:847:25: note: expanded from macro '__cmp_once' typeof(y) unique_y = (y); \ ^ fs/btrfs/volumes.c:5041:3: note: remove the 'if' if its condition is always true BUG_ON(1); ^ include/asm-generic/bug.h:61:32: note: expanded from macro 'BUG_ON' #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0) ^ fs/btrfs/volumes.c:4993:20: note: initialize the variable 'max_chunk_size' to silence this warning u64 max_chunk_size; ^ = 0 Change it to BUG() so clang can see that this code path can never continue. Reviewed-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: Arnd Bergmann Signed-off-by: David Sterba commit 247462a5aca5154c8542830e3ec4d1fce2733433 Author: David Sterba Date: Thu Mar 21 20:21:05 2019 +0100 btrfs: move tree block wait and write helpers to tree-log The wrapper names better describe what's happening so they're not deleted though they're trivial, but at least moved closer to their place of use. Reviewed-by: Nikolay Borisov Signed-off-by: David Sterba commit d4eb671a0882ee58774e201b1ada3d19b99394b9 Author: David Sterba Date: Thu Mar 21 20:20:48 2019 +0100 btrfs: remove stale definition of BUFFER_LRU_MAX Long time ago (2008), the extent buffers were organized in a LRU list and switched to rb-tree in 6af118ce51b52ced ("Btrfs: Index extent buffers in an rbtree"). There was one stale macro definition left. Signed-off-by: David Sterba commit e4fa7469eb7a9331b42f9625bfcb2003a6e7eb1a Author: David Sterba Date: Mon Mar 18 14:06:55 2019 +0100 btrfs: tests: unify messages when tests start - make the messages more visually consistent and use same format "running ... test", any error or other warning can be easily spotted - move some message to the test entry function - add message to the inode tests Example output: [ 8.187391] Btrfs loaded, crc32c=crc32c-generic, assert=on, integrity-checker=on, ref-verify=on [ 8.189476] BTRFS: selftest: sectorsize: 4096 nodesize: 4096 [ 8.190761] BTRFS: selftest: running btrfs free space cache tests [ 8.192245] BTRFS: selftest: running extent only tests [ 8.193573] BTRFS: selftest: running bitmap only tests [ 8.194876] BTRFS: selftest: running bitmap and extent tests [ 8.196166] BTRFS: selftest: running space stealing from bitmap to extent tests [ 8.198026] BTRFS: selftest: running extent buffer operation tests [ 8.199328] BTRFS: selftest: running btrfs_split_item tests [ 8.200653] BTRFS: selftest: running extent I/O tests [ 8.201808] BTRFS: selftest: running find delalloc tests [ 8.320733] BTRFS: selftest: running extent buffer bitmap tests [ 8.340795] BTRFS: selftest: running inode tests [ 8.341766] BTRFS: selftest: running btrfs_get_extent tests [ 8.342981] BTRFS: selftest: running hole first btrfs_get_extent test [ 8.344342] BTRFS: selftest: running outstanding_extents tests [ 8.345575] BTRFS: selftest: running qgroup tests [ 8.346537] BTRFS: selftest: running qgroup add/remove tests [ 8.347725] BTRFS: selftest: running qgroup multiple refs test [ 8.354982] BTRFS: selftest: running free space tree tests [ 8.372175] BTRFS: selftest: sectorsize: 4096 nodesize: 8192 [ 8.373539] BTRFS: selftest: running btrfs free space cache tests [ 8.374989] BTRFS: selftest: running extent only tests [ 8.376236] BTRFS: selftest: running bitmap only tests [ 8.377483] BTRFS: selftest: running bitmap and extent tests [ 8.378854] BTRFS: selftest: running space stealing from bitmap to extent tests ... Signed-off-by: David Sterba commit 752dbe48e22aa749cbe63d52fda952108ae6249f Author: David Sterba Date: Mon Mar 18 13:54:36 2019 +0100 btrfs: tests: drop messages when some tests finish The messages like 'extent I/O tests finished' are redundant, if the test fails it's quite obvious in the log and hang is also noticeable. No other then extent_io and free space tree tests print that so make it consistent. Signed-off-by: David Sterba commit 3173fd926c465aca52740497a5f5fac538a271fe Author: David Sterba Date: Mon Mar 18 14:19:33 2019 +0100 btrfs: tests: fix comments about tested extent map ranges Comments about ranges did not match the code, the correct calculation is to use start and start+len as the interval boundaries. Signed-off-by: David Sterba commit 43f7cddc6e5ad161b5cb818c45bdbed8631dce74 Author: David Sterba Date: Mon Mar 18 14:14:35 2019 +0100 btrfs: tests: use SZ_ constants everywhere There are a few unconverted constants that are not powers of two and haven't been converted. Signed-off-by: David Sterba commit 6c30474680888df8a652563ca246afdb23534d63 Author: David Sterba Date: Fri Mar 15 17:28:46 2019 +0100 btrfs: tests: use standard error message after extent map allocation failure Signed-off-by: David Sterba commit ccfada1f650b636733567e1aa059a46424fda926 Author: David Sterba Date: Mon Mar 18 15:05:27 2019 +0100 btrfs: tests: return error from all extent map test cases The way the extent map tests handle errors does not conform to the rest of the suite, where the first failure is reported and then it stops. Do the same now that we have the errors returned from all the functions. Signed-off-by: David Sterba commit 7c6f670052f12a24dc3785ae0179d8199a76cd50 Author: David Sterba Date: Fri Mar 15 18:41:06 2019 +0100 btrfs: tests: return errors from extent map test case 4 Replace asserts with error messages and return errors. Signed-off-by: David Sterba commit 992dce7494d6ca7bbfd41e21ec91bee30ecc38ff Author: David Sterba Date: Fri Mar 15 18:41:06 2019 +0100 btrfs: tests: return errors from extent map test case 3 Replace asserts with error messages and return errors. Signed-off-by: David Sterba commit e71f2e17e8c9f9d4cf51a1ade535d65670d93c72 Author: David Sterba Date: Fri Mar 15 18:41:06 2019 +0100 btrfs: tests: return errors from extent map test case 2 Replace asserts with error messages and return errors. Signed-off-by: David Sterba commit d7de4b0864dd8ba844faf40771104e71bbbd129e Author: David Sterba Date: Fri Mar 15 18:41:06 2019 +0100 btrfs: tests: return errors from extent map test case 1 Replace asserts with error messages and return errors. Signed-off-by: David Sterba commit 488f673023be9a0a5d3f2078e294ff3be907efe0 Author: David Sterba Date: Fri Mar 15 18:06:16 2019 +0100 btrfs: tests: return errors from extent map tests The individual testcases for extent maps do not return an error on allocation failures. This is not a big problem as the allocation don't fail in general but there are functional tests handled with ASSERTS. This makes tests dependent on them and it's not reliable. This patch adds the allocation failure handling and allows for the conversion of the asserts to proper error handling and reporting. Signed-off-by: David Sterba commit 7b9586bc2b31b8f62da651cb0ddf926997c93954 Author: David Sterba Date: Fri Mar 15 17:42:07 2019 +0100 btrfs: tests: properly initialize fs_info of extent buffer The fs_info is supposed to be valid, even though it's not used right now and the test does not crash. Signed-off-by: David Sterba commit 3199366da73dddbfa5a0b36a7438dac008d2053e Author: David Sterba Date: Fri Mar 15 17:28:46 2019 +0100 btrfs: tests: use standard error message after block group allocation failure Signed-off-by: David Sterba commit 6a060db85d0a81b9c06bb134f30a55a6b89a0a02 Author: David Sterba Date: Fri Mar 15 17:28:46 2019 +0100 btrfs: tests: use standard error message after inode allocation failure Signed-off-by: David Sterba commit 770e0cc040b07eb54f6cb119a44bf6ff742338eb Author: David Sterba Date: Fri Mar 15 17:28:46 2019 +0100 btrfs: tests: use standard error message after path allocation failure Signed-off-by: David Sterba commit 9e3d9f8462ef020e2e4d256064f15fc7eb657156 Author: David Sterba Date: Fri Mar 15 17:28:46 2019 +0100 btrfs: tests: use standard error message after extent buffer allocation failure Signed-off-by: David Sterba commit 52ab7bca3583fa7a80b16232874784f8dcc4e560 Author: David Sterba Date: Fri Mar 15 17:28:46 2019 +0100 btrfs: tests: use standard error message after root allocation failure Signed-off-by: David Sterba commit 37b2a7bc1ea919c8d00f2a2ece1917c38a30d6ae Author: David Sterba Date: Fri Mar 15 17:28:46 2019 +0100 btrfs: tests: use standard error message after fs_info allocation failure Signed-off-by: David Sterba commit 703de4266f63ba1703fd04d4838fefd555dfbf9a Author: David Sterba Date: Fri Mar 15 17:23:30 2019 +0100 btrfs: tests: add table of most common errors Allocation of main objects like fs_info or extent buffers is in each test so let's simplify and unify the error messages to a table and add a convenience helper. Signed-off-by: David Sterba commit efd31fce54f78a172edd7ef61f9661cc614c56b2 Author: David Sterba Date: Fri Mar 15 17:03:55 2019 +0100 btrfs: tests: print file:line for error messages For better diagnostics print the file name and line to locate the errors. Sample output: [ 9.052924] BTRFS: selftest: fs/btrfs/tests/extent-io-tests.c:283 offset bits do not match Signed-off-by: David Sterba commit d33d105b85d6099e2499c536fb6fbb2dc65ea644 Author: David Sterba Date: Fri Mar 15 16:46:55 2019 +0100 btrfs: tests: don't leak fs_info in extent_io bitmap tests The fs_info is not freed at the end of the function and leaks. The function is called twice so there can be up to 2x sizeof(struct btrfs_fs_info) of leaked memory. Fortunatelly this affects only testing builds, the size could be 16k with several debugging features enabled. Signed-off-by: David Sterba commit d46a05edac440168a31805e583c8ab3f9c9561f9 Author: David Sterba Date: Fri Mar 15 16:43:11 2019 +0100 btrfs: tests: handle fs_info allocation failure in extent_io tests Signed-off-by: David Sterba commit 75391f0d41197e54b61ada92ddeffc28bf028c8c Author: Qu Wenruo Date: Wed Mar 20 14:27:40 2019 +0800 btrfs: disk-io: Show the timing of corrupted tree block explicitly Just add one extra line to show when the corruption is detected. Currently only read time detection is possible. The planned distinguish line would be: read time: block=XXXXX read time tree block corruption detected write time: block=XXXXX write time tree block corruption detected Reviewed-by: Nikolay Borisov Reviewed-by: Johannes Thumshirn Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit ff612ba7849964b1898fd3ccd1f56941129c6aab Author: Josef Bacik Date: Mon Feb 25 11:14:45 2019 -0500 btrfs: fix panic during relocation after ENOSPC before writeback happens We've been seeing the following sporadically throughout our fleet panic: kernel BUG at fs/btrfs/relocation.c:4584! netversion: 5.0-0 Backtrace: #0 [ffffc90003adb880] machine_kexec at ffffffff81041da8 #1 [ffffc90003adb8c8] __crash_kexec at ffffffff8110396c #2 [ffffc90003adb988] crash_kexec at ffffffff811048ad #3 [ffffc90003adb9a0] oops_end at ffffffff8101c19a #4 [ffffc90003adb9c0] do_trap at ffffffff81019114 #5 [ffffc90003adba00] do_error_trap at ffffffff810195d0 #6 [ffffc90003adbab0] invalid_op at ffffffff81a00a9b [exception RIP: btrfs_reloc_cow_block+692] RIP: ffffffff8143b614 RSP: ffffc90003adbb68 RFLAGS: 00010246 RAX: fffffffffffffff7 RBX: ffff8806b9c32000 RCX: ffff8806aad00690 RDX: ffff880850b295e0 RSI: ffff8806b9c32000 RDI: ffff88084f205bd0 RBP: ffff880849415000 R8: ffffc90003adbbe0 R9: ffff88085ac90000 R10: ffff8805f7369140 R11: 0000000000000000 R12: ffff880850b295e0 R13: ffff88084f205bd0 R14: 0000000000000000 R15: 0000000000000000 ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018 #7 [ffffc90003adbbb0] __btrfs_cow_block at ffffffff813bf1cd #8 [ffffc90003adbc28] btrfs_cow_block at ffffffff813bf4b3 #9 [ffffc90003adbc78] btrfs_search_slot at ffffffff813c2e6c The way relocation moves data extents is by creating a reloc inode and preallocating extents in this inode and then copying the data into these preallocated extents. Once we've done this for all of our extents, we'll write out these dirty pages, which marks the extent written, and goes into btrfs_reloc_cow_block(). From here we get our current reloc_control, which _should_ match the reloc_control for the current block group we're relocating. However if we get an ENOSPC in this path at some point we'll bail out, never initiating writeback on this inode. Not a huge deal, unless we happen to be doing relocation on a different block group, and this block group is now rc->stage == UPDATE_DATA_PTRS. This trips the BUG_ON() in btrfs_reloc_cow_block(), because we expect to be done modifying the data inode. We are in fact done modifying the metadata for the data inode we're currently using, but not the one from the failed block group, and thus we BUG_ON(). (This happens when writeback finishes for extents from the previous group, when we are at btrfs_finish_ordered_io() which updates the data reloc tree (inode item, drops/adds extent items, etc).) Fix this by writing out the reloc data inode always, and then breaking out of the loop after that point to keep from tripping this BUG_ON() later. Signed-off-by: Josef Bacik Reviewed-by: Filipe Manana [ add note from Filipe ] Signed-off-by: David Sterba commit 6a8d2136ca3f0ed597d9f3dffa3821dd6bc7b11a Author: Nikolay Borisov Date: Wed Mar 20 21:53:16 2019 +0200 btrfs: Use less confusing condition for uptodate parameter to btrfs_writepage_endio_finish_ordered The uptodate parameter of btrfs_writepage_endio_finish_ordered is used to signal whether an error has occured while writing the given page. 0 signals an error, which is propagated to callees and 1 signifies success. In end_compressed_bio_write the ->bi_status is checked and based on it either BLK_STS_OK (0) or BLK_STS_NOTSUPP (1) are used. While from functional point of view this is ok it's a for the poor reader of the code, since the block layer values are conflated with the semantics of the parameter. Just use plain 0 or 1. No functional changes. Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit a2a72fbd1110323b2008dcb3ed14494957341dfe Author: Qu Wenruo Date: Wed Mar 20 14:27:48 2019 +0800 btrfs: extent_io: Handle errors better in extent_writepages() We can only get <=0 from extent_write_cache_pages, add an ASSERT() for it just in case. Then instead of submitting the write bio even if we got some error, check the return value first. If we have already hit some error, just clean up the corrupted or half-baked bio, and return error. If there is no error so far, then call flush_write_bio() and return the result. Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit 2e3c25136adfb293d517e17f761d3b8a43a8fc22 Author: Qu Wenruo Date: Wed Mar 20 14:27:46 2019 +0800 btrfs: extent_io: add proper error handling to lock_extent_buffer_for_io() This function needs some extra checks on locked pages and eb. For error handling we need to unlock locked pages and the eb. There is a rare >0 return value branch, where all pages get locked while write bio is not flushed. Thankfully it's handled by the only caller, btree_write_cache_pages(), as later write_one_eb() call will trigger submit_one_bio(). So there shouldn't be any problem. Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit 02c6db4f7308e4f5adf4df2ef623160bfdb18636 Author: Qu Wenruo Date: Wed Mar 20 14:27:45 2019 +0800 btrfs: extent_io: Handle errors better in extent_write_locked_range() We can only get @ret <= 0. Add an ASSERT() for it just in case. Then, instead of submitting the write bio even we got some error, check the return value first. If we have already hit some error, just clean up the corrupted or half-baked bio, and return error. If there is no error so far, then call flush_write_bio() and return the result. Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit e06808be8a5296c09be84b3aaf63087b5737ba16 Author: Qu Wenruo Date: Wed Mar 20 14:27:44 2019 +0800 btrfs: extent_io: Kill dead condition in extent_write_cache_pages() Since __extent_writepage() will no longer return >0 value, (ret == AOP_WRITEPAGE_ACTIVATE) will never be true. Kill that dead branch. Reviewed-by: Johannes Thumshirn Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit 2b952eea813b1f7e7d4b9782271acd91625b9bb9 Author: Qu Wenruo Date: Wed Mar 20 14:27:43 2019 +0800 btrfs: extent_io: Handle errors better in btree_write_cache_pages() In btree_write_cache_pages(), we can only get @ret <= 0. Add an ASSERT() for it just in case. Then instead of submitting the write bio even we got some error, check the return value first. If we have already hit some error, just clean up the corrupted or half-baked bio, and return error. If there is no error so far, then call flush_write_bio() and return the result. Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit 3065976b045f77a910809fa7699f99a1e7c0dbbb Author: Qu Wenruo Date: Wed Mar 20 14:27:42 2019 +0800 btrfs: extent_io: Handle errors better in extent_write_full_page() Since now flush_write_bio() could return error, kill the BUG_ON() first. Then don't call flush_write_bio() unconditionally, instead we check the return value from __extent_writepage() first. If __extent_writepage() fails, we do cleanup, and return error without submitting the possible corrupted or half-baked bio. If __extent_writepage() successes, then we call flush_write_bio() and return the result. Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit f4340622e02261fae599e3da936ff4808b418173 Author: Qu Wenruo Date: Wed Mar 20 14:27:41 2019 +0800 btrfs: extent_io: Move the BUG_ON() in flush_write_bio() one level up We have a BUG_ON() in flush_write_bio() to handle the return value of submit_one_bio(). Move the BUG_ON() one level up to all its callers. This patch will introduce temporary variable, @flush_ret to keep code change minimal in this patch. That variable will be cleaned up when enhancing the error handling later. Reviewed-by: Johannes Thumshirn Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit 63489055e4c0dd4d2a04064138906630995456dc Author: Qu Wenruo Date: Wed Mar 20 14:27:39 2019 +0800 btrfs: Always output error message when key/level verification fails We have internal report of strange transaction abort due to EUCLEAN without any error message. Since error message inside verify_level_key() is only enabled for CONFIG_BTRFS_DEBUG, the error message won't be printed on most builds. This patch will make the error message mandatory, so when problem happens we know what's causing the problem. Reviewed-by: Nikolay Borisov Reviewed-by: Johannes Thumshirn Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit 448de471cd4cab0cedd15770082567a69a784a11 Author: Qu Wenruo Date: Tue Mar 12 17:10:40 2019 +0800 btrfs: Check the first key and level for cached extent buffer [BUG] When reading a file from a fuzzed image, kernel can panic like: BTRFS warning (device loop0): csum failed root 5 ino 270 off 0 csum 0x98f94189 expected csum 0x00000000 mirror 1 assertion failed: !memcmp_extent_buffer(b, &disk_key, offsetof(struct btrfs_leaf, items[0].key), sizeof(disk_key)), file: fs/btrfs/ctree.c, line: 2544 ------------[ cut here ]------------ kernel BUG at fs/btrfs/ctree.h:3500! invalid opcode: 0000 [#1] PREEMPT SMP NOPTI RIP: 0010:btrfs_search_slot.cold.24+0x61/0x63 [btrfs] Call Trace: btrfs_lookup_csum+0x52/0x150 [btrfs] __btrfs_lookup_bio_sums+0x209/0x640 [btrfs] btrfs_submit_bio_hook+0x103/0x170 [btrfs] submit_one_bio+0x59/0x80 [btrfs] extent_read_full_page+0x58/0x80 [btrfs] generic_file_read_iter+0x2f6/0x9d0 __vfs_read+0x14d/0x1a0 vfs_read+0x8d/0x140 ksys_read+0x52/0xc0 do_syscall_64+0x60/0x210 entry_SYSCALL_64_after_hwframe+0x49/0xbe [CAUSE] The fuzzed image has a corrupted leaf whose first key doesn't match its parent: checksum tree key (CSUM_TREE ROOT_ITEM 0) node 29741056 level 1 items 14 free 107 generation 19 owner CSUM_TREE fs uuid 3381d111-94a3-4ac7-8f39-611bbbdab7e6 chunk uuid 9af1c3c7-2af5-488b-8553-530bd515f14c ... key (EXTENT_CSUM EXTENT_CSUM 79691776) block 29761536 gen 19 leaf 29761536 items 1 free space 1726 generation 19 owner CSUM_TREE leaf 29761536 flags 0x1(WRITTEN) backref revision 1 fs uuid 3381d111-94a3-4ac7-8f39-611bbbdab7e6 chunk uuid 9af1c3c7-2af5-488b-8553-530bd515f14c item 0 key (EXTENT_CSUM EXTENT_CSUM 8798638964736) itemoff 1751 itemsize 2244 range start 8798638964736 end 8798641262592 length 2297856 When reading the above tree block, we have extent_buffer->refs = 2 in the context: - initial one from __alloc_extent_buffer() alloc_extent_buffer() |- __alloc_extent_buffer() |- atomic_set(&eb->refs, 1) - one being added to fs_info->buffer_radix alloc_extent_buffer() |- check_buffer_tree_ref() |- atomic_inc(&eb->refs) So if even we call free_extent_buffer() in read_tree_block or other similar situation, we only decrease the refs by 1, it doesn't reach 0 and won't be freed right now. The staled eb and its corrupted content will still be kept cached. Furthermore, we have several extra cases where we either don't do first key check or the check is not proper for all callers: - scrub We just don't have first key in this context. - shared tree block One tree block can be shared by several snapshot/subvolume trees. In that case, the first key check for one subvolume doesn't apply to another. So for the above reasons, a corrupted extent buffer can sneak into the buffer cache. [FIX] Call verify_level_key in read_block_for_search to do another verification. For that purpose the function is exported. Due to above reasons, although we can free corrupted extent buffer from cache, we still need the check in read_block_for_search(), for scrub and shared tree blocks. Link: https://bugzilla.kernel.org/show_bug.cgi?id=202755 Link: https://bugzilla.kernel.org/show_bug.cgi?id=202757 Link: https://bugzilla.kernel.org/show_bug.cgi?id=202759 Link: https://bugzilla.kernel.org/show_bug.cgi?id=202761 Link: https://bugzilla.kernel.org/show_bug.cgi?id=202767 Link: https://bugzilla.kernel.org/show_bug.cgi?id=202769 Reported-by: Yoon Jungyeon CC: stable@vger.kernel.org # 4.19+ Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit 537f38f019fa0b762dbb4c0fc95d7fcce9db8e2d Author: Nikolay Borisov Date: Thu Mar 14 09:52:35 2019 +0200 btrfs: Correctly free extent buffer in case btree_read_extent_buffer_pages fails If a an eb fails to be read for whatever reason - it's corrupted on disk and parent transid/key validations fail or IO for eb pages fail then this buffer must be removed from the buffer cache. Currently the code calls free_extent_buffer if an error occurs. Unfortunately this doesn't achieve the desired behavior since btrfs_find_create_tree_block returns with eb->refs == 2. On the other hand free_extent_buffer will only decrement the refs once leaving it added to the buffer cache radix tree. This enables later code to look up the buffer from the cache and utilize it potentially leading to a crash. The correct way to free the buffer is call free_extent_buffer_stale. This function will correctly call atomic_dec explicitly for the buffer and subsequently call release_extent_buffer which will decrement the final reference thus correctly remove the invalid buffer from buffer cache. This change affects only newly allocated buffers since they have eb->refs == 2. Link: https://bugzilla.kernel.org/show_bug.cgi?id=202755 Reported-by: Jungyeon CC: stable@vger.kernel.org # 4.4+ Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit 80fbc341dcff73b4e976b753e4b9ac3db992f229 Author: Qu Wenruo Date: Tue Mar 19 14:04:17 2019 +0800 btrfs: Make btrfs_(set|clear)_header_flag return void From the introduction of btrfs_(set|clear)_header_flag, there is no usage of its return value. So just make it return void. Reviewed-by: Nikolay Borisov Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit 10995c0491204c861948c9850939a7f4e90760a4 Author: Qu Wenruo Date: Mon Mar 18 10:48:19 2019 +0800 btrfs: reloc: Fix NULL pointer dereference due to expanded reloc_root lifespan Commit d2311e698578 ("btrfs: relocation: Delay reloc tree deletion after merge_reloc_roots()") expands the life span of root->reloc_root. This breaks certain checs of fs_info->reloc_ctl. Before that commit, if we have a root with valid reloc_root, then it's ensured to have fs_info->reloc_ctl. But now since reloc_root doesn't always mean a valid fs_info->reloc_ctl, such check is unreliable and can cause the following NULL pointer dereference: BUG: unable to handle kernel NULL pointer dereference at 00000000000005c1 IP: btrfs_reloc_pre_snapshot+0x20/0x50 [btrfs] PGD 0 P4D 0 Oops: 0000 [#1] SMP PTI CPU: 0 PID: 10379 Comm: snapperd Not tainted Call Trace: create_pending_snapshot+0xd7/0xfc0 [btrfs] create_pending_snapshots+0x8e/0xb0 [btrfs] btrfs_commit_transaction+0x2ac/0x8f0 [btrfs] btrfs_mksubvol+0x561/0x570 [btrfs] btrfs_ioctl_snap_create_transid+0x189/0x190 [btrfs] btrfs_ioctl_snap_create_v2+0x102/0x150 [btrfs] btrfs_ioctl+0x5c9/0x1e60 [btrfs] do_vfs_ioctl+0x90/0x5f0 SyS_ioctl+0x74/0x80 do_syscall_64+0x7b/0x150 entry_SYSCALL_64_after_hwframe+0x3d/0xa2 RIP: 0033:0x7fd7cdab8467 Fix it by explicitly checking fs_info->reloc_ctl other than using the implied root->reloc_root. Fixes: d2311e698578 ("btrfs: relocation: Delay reloc tree deletion after merge_reloc_roots") Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit d51f51bb6f3c11f3ee4120c35de8e6547ed493fc Author: Nikolay Borisov Date: Mon Mar 18 17:45:18 2019 +0200 btrfs: Remove unused -EIO assignment in end_bio_extent_readpage In case we hit the error case for a metadata buffer in end_bio_extent_readpage then 'ret' won't really be checked before it's written again to. This means the -EIO in this case will never be checked, just remove it. Fixes-coverity-id: 1442513 Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit e65ef21ed850a535defa2ead971fc8f88ad3b616 Author: Nikolay Borisov Date: Mon Mar 11 09:55:38 2019 +0200 btrfs: Exploit the fact that pages passed to extent_readpages are always contiguous Currently extent_readpages (called from btrfs_readpages) will always call __extent_readpages which tries to create contiguous range of pages and call __do_contiguous_readpages when such contiguous range is created. It turns out this is unnecessary due to the fact that generic MM code always calls filesystem's ->readpages callback (btrfs_readpages in this case) with already contiguous pages. Armed with this knowledge it's possible to simplify extent_readpages by eliminating the call to __extent_readpages and directly calling contiguous_readpages. The only edge case that needs to be handled is when add_to_page_cache_lru fails. This is easy as all that is needed is to submit whatever is the number of pages successfully added to the lru. This can happen when the page is already in the range, so it does not need to be read again, and we can't do anything else in case of other errors. Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit ed1b4ed79df258f08f16eac4a4fb96dc6d1a0f3a Author: David Sterba Date: Fri Aug 24 16:31:17 2018 +0200 btrfs: switch extent_buffer::lock_nested to bool The member is tracking simple status of the lock, we can use bool for that and make some room for further space reduction in the structure. Reviewed-by: Nikolay Borisov Reviewed-by: Johannes Thumshirn Signed-off-by: David Sterba commit c79adfc085c0662385cfcb55f15590303212e8e9 Author: David Sterba Date: Fri Aug 24 16:24:26 2018 +0200 btrfs: use assertion helpers for extent buffer write lock counters Use the helpers where open coded. On non-debug builds, the warnings will not trigger and extent_buffer::write_locks become unused and can be moved to the appropriate section, saving a few bytes. Reviewed-by: Nikolay Borisov Reviewed-by: Johannes Thumshirn Signed-off-by: David Sterba commit e3f153886702302482918a3788ba3bb24a37a4aa Author: David Sterba Date: Fri Aug 24 16:20:02 2018 +0200 btrfs: add assertion helpers for extent buffer write lock counters The write_locks are a simple counter to track locking balance and used to assert tree locks. Add helpers to make it conditionally work only in DEBUG builds. Will be used in followup patches. Reviewed-by: Nikolay Borisov Reviewed-by: Johannes Thumshirn Signed-off-by: David Sterba commit 5c9c799ab78336a4161b16126952a7e1320a8c77 Author: David Sterba Date: Fri Aug 24 16:15:51 2018 +0200 btrfs: use assertion helpers for extent buffer read lock counters Use the helpers where open coded. On non-debug builds, the warnings will not trigger and extent_buffer::read_locks become unused and can be moved to the appropriate section, saving a few bytes. Reviewed-by: Nikolay Borisov Reviewed-by: Johannes Thumshirn Signed-off-by: David Sterba commit 58a2ddaedbf74b8a209426128c130cc9f0dbd11b Author: David Sterba Date: Fri Aug 24 16:13:41 2018 +0200 btrfs: add assertion helpers for extent buffer read lock counters The read_locks are a simple counter to track locking balance and used to assert tree locks. Add helpers to make it conditionally work only in DEBUG builds. Will be used in followup patches. Reviewed-by: Nikolay Borisov Reviewed-by: Johannes Thumshirn Signed-off-by: David Sterba commit afd495a8264fb25cef49834b5c3559b8aaa612ee Author: David Sterba Date: Fri Aug 24 15:57:38 2018 +0200 btrfs: use assertion helpers for spinning readers Use the helpers where open coded. On non-debug builds, the warnings will not trigger and extent_buffer::spining_readers become unused and can be moved to the appropriate section, saving a few bytes. Reviewed-by: Nikolay Borisov Reviewed-by: Johannes Thumshirn Signed-off-by: David Sterba commit 225948dedc9d3ac514eb1f4b7318d541cfd80aaf Author: David Sterba Date: Fri Aug 24 15:53:42 2018 +0200 btrfs: add assertion helpers for spinning readers Add helpers for conditional DEBUG build to assert that the extent buffer spinning_readers constraints are met. Will be used in followup patches. Reviewed-by: Nikolay Borisov Reviewed-by: Johannes Thumshirn Signed-off-by: David Sterba commit 843ccf9f46baff289946e897b11fd813de62d06f Author: David Sterba Date: Fri Aug 24 14:56:28 2018 +0200 btrfs: use assertion helpers for spinning writers Use the helpers where open coded. On non-debug builds, the warnings will not trigger and extent_buffer::spining_writers become unused and can be moved to the appropriate section, saving a few bytes. Reviewed-by: Nikolay Borisov Reviewed-by: Johannes Thumshirn Signed-off-by: David Sterba commit e4e9fd0f326212ee3971418334c255a26c8a2735 Author: David Sterba Date: Fri Aug 24 14:45:20 2018 +0200 btrfs: add assertion helpers for spinning writers Add helpers for conditional DEBUG build to assert that the extent buffer spinning_writers constraints are met. Will be used in followup patches. Reviewed-by: Nikolay Borisov Reviewed-by: Johannes Thumshirn Signed-off-by: David Sterba commit 8882679ea50b9ceb8b86cbceb061322a97876534 Author: Nikolay Borisov Date: Thu Mar 14 15:28:31 2019 +0200 btrfs: Remove EXTENT_IOBITS This flag just became synonymous to EXTENT_LOCKED, so just remove it and used EXTENT_LOCKED directly. No functional changes. Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit 4e586ca3c3e63269e136b8c1f20bf5943a0b94ca Author: Nikolay Borisov Date: Thu Mar 14 15:28:30 2019 +0200 btrfs: Remove EXTENT_WRITEBACK This flag was introduced in a52d9a8033c4 ("Btrfs: Extent based page cache code.") and subsequently it's usage effectively was removed by 1edbb734b4e0 ("Btrfs: reduce CPU usage in the extent_state tree") and f2a97a9dbd86 ("btrfs: remove all unused functions"). Just remove it, no functional changes. Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba commit e8baf7abcf56da68a03df77f51459acddeef4195 Author: Nathan Chancellor Date: Thu Mar 7 09:35:15 2019 -0700 btrfs: Turn an 'else if' into an 'else' in btrfs_uuid_tree_add When building with -Wsometimes-uninitialized, Clang warns: fs/btrfs/uuid-tree.c:129:13: warning: variable 'eb' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] fs/btrfs/uuid-tree.c:129:13: warning: variable 'offset' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] Clang can't tell that all cases are covered with this final else if. Just turn it into an else so that it is clear. Link: https://github.com/ClangBuiltLinux/linux/issues/385 Suggested-by: Nick Desaulniers Signed-off-by: Nathan Chancellor Reviewed-by: David Sterba Signed-off-by: David Sterba commit 262c96a3c3670bf2322b9a0c9d74e2a3d9e43be0 Author: Anand Jain Date: Fri Mar 1 12:34:50 2019 +0800 btrfs: refactor btrfs_set_prop and add btrfs_set_prop_trans btrfs_set_prop() takes transaction pointer as the first argument, however in ioctl.c for the purpose of setting the compression property, we call btrfs_set_prop() with NULL transaction pointer. Down in the call chain btrfs_setxattr() starts transaction to update the attribute and also to update the inode. So for clarity, create btrfs_set_prop_trans() with no transaction pointer as argument, in preparation to start transaction here instead of doing it down the call chain at btrfs_setxattr(). Also now the btrfs_set_prop() is a static function. Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba commit 419a6f30fd84202494962cc9c47d2c5d8ef4f7c4 Author: Anand Jain Date: Fri Mar 1 12:34:49 2019 +0800 btrfs: rename fs_info argument to fs_private fs_info is commonly used to represent struct fs_info *, rename to fs_private to avoid confusion. Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba commit 3dcf96c7b9fe800560f550af1b7cece254d31bc3 Author: Anand Jain Date: Fri Mar 1 12:34:48 2019 +0800 btrfs: drop redundant forward declaration in props.c Drop forward declaration of the functions: - prop_compression_validate - prop_compression_apply - prop_compression_extract No functional changes. Reviewed-by: Nikolay Borisov Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba commit 7715da84f74d5d3fed45ad69b2b5e28601ad721f Author: Anand Jain Date: Fri Mar 1 12:34:47 2019 +0800 btrfs: merge _btrfs_set_prop helpers btrfs_set_prop() is a redirect to __btrfs_set_prop() with the transaction handle equal to NULL. __btrfs_set_prop() in turn passes this to do_setxattr() which then transaction is actually created. Instead merge __btrfs_set_prop() to btrfs_set_prop(), and update the caller with NULL argument. Signed-off-by: Anand Jain Reviewed-by: David Sterba Signed-off-by: David Sterba commit 443c8e2a839f18084cfdb5b0b62d90b8159f48ae Author: Johannes Thumshirn Date: Thu Mar 7 17:14:00 2019 +0100 btrfs: reduce kmap_atomic time for checksumming Since commit c40a3d38aff4 ("Btrfs: Compute and look up csums based on sectorsized blocks") we do a kmap_atomic() on the contents of a bvec. The code before c40a3d38aff4 had the kmap region just around the checksumming too. kmap_atomic() in turn does a preempt_disable() and pagefault_disable(), so we shouldn't map the data for too long. Reduce the time the bvec's page is mapped to when we actually need it. Performance wise it doesn't seem to make a huge difference with a 2 vcpu VM on a /dev/zram device: vanilla patched delta write 17.4MiB/s 17.8MiB/s +0.4MiB/s (+2%) read 40.6MiB/s 41.5MiB/s +0.9MiB/s (+2%) The following fio job profile was used in the comparision: [global] ioengine=libaio direct=1 sync=1 norandommap time_based runtime=10m size=100m group_reporting numjobs=2 [test] filename=/mnt/test/fio rw=randrw rwmixread=70 Signed-off-by: Johannes Thumshirn Reviewed-by: David Sterba Signed-off-by: David Sterba commit a1d198478e92cc8f05c26be746edd1c58f756c0f Author: Qu Wenruo Date: Fri Mar 1 10:48:00 2019 +0800 btrfs: tracepoints: Add trace events for extent_io_tree Although btrfs heavily relies on extent_io_tree, we don't really have any good trace events for them. This patch will add the folowing trace events: - trace_btrfs_set_extent_bit() - trace_btrfs_clear_extent_bit() - trace_btrfs_convert_extent_bit() Since selftests could create temporary extent_io_tree without fs_info, modify TP_fast_assign_fsid() to accept NULL as fs_info. NULL fs_info will lead to all zero fsid. The output would be: btrfs_set_extent_bit: : io_tree=INODE_IO ino=1 root=1 start=22036480 len=4096 set_bits=LOCKED btrfs_set_extent_bit: : io_tree=INODE_IO ino=1 root=1 start=22040576 len=4096 set_bits=LOCKED btrfs_set_extent_bit: : io_tree=INODE_IO ino=1 root=1 start=22044672 len=4096 set_bits=LOCKED btrfs_set_extent_bit: : io_tree=INODE_IO ino=1 root=1 start=22048768 len=4096 set_bits=LOCKED btrfs_clear_extent_bit: : io_tree=INODE_IO ino=1 root=1 start=22036480 len=16384 clear_bits=LOCKED ^^^ Extent buffer 22036480 read from disk, the locking progress btrfs_set_extent_bit: : io_tree=TRANS_DIRTY_PAGES ino=1 root=1 start=30425088 len=16384 set_bits=DIRTY btrfs_set_extent_bit: : io_tree=TRANS_DIRTY_PAGES ino=1 root=1 start=30441472 len=16384 set_bits=DIRTY ^^^ 2 new tree blocks allocated in one transaction btrfs_set_extent_bit: : io_tree=FREED_EXTENTS0 ino=0 root=0 start=30523392 len=16384 set_bits=DIRTY btrfs_set_extent_bit: : io_tree=FREED_EXTENTS0 ino=0 root=0 start=30556160 len=16384 set_bits=DIRTY ^^^ 2 old tree blocks get pinned down There is one point which need attention: 1) Those trace events can be pretty heavy: The following workload would generate over 400 trace events. mkfs.btrfs -f $dev start_trace mount $dev $mnt -o enospc_debug sync touch $mnt/file1 touch $mnt/file2 touch $mnt/file3 xfs_io -f -c "pwrite 0 16k" $mnt/file4 umount $mnt end_trace It's not recommended to use them in real world environment. Signed-off-by: Qu Wenruo Reviewed-by: David Sterba [ rename enums ] Signed-off-by: David Sterba commit 43eb5f2975848743e5b14c5bef20f40d404a7a04 Author: Qu Wenruo Date: Fri Mar 1 10:47:59 2019 +0800 btrfs: Introduce extent_io_tree::owner to distinguish different io_trees Btrfs has the following different extent_io_trees used: - fs_info::free_extents[2] - btrfs_inode::io_tree - for both normal inodes and the btree inode - btrfs_inode::io_failure_tree - btrfs_transaction::dirty_pages - btrfs_root::dirty_log_pages If we want to trace changes in those trees, it will be pretty hard to distinguish them. Instead of using hard-to-read pointer address, this patch will introduce a new member extent_io_tree::owner to track the owner. This modification needs all the callers of extent_io_tree_init() to accept a new parameter @owner. This patch provides the basis for later trace events. Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit 7b4397386fbdc606eb053bc2a1cfd985aea59916 Author: David Sterba Date: Mon Mar 11 15:58:30 2019 +0100 btrfs: switch extent_io_tree::track_uptodate to bool This patch is split from the following one "btrfs: Introduce extent_io_tree::owner to distinguish different io_trees" from Qu, so the different changes are not mixed together. Signed-off-by: David Sterba commit c258d6e36442eb5d3363f6dbc0e6f2c162bfb66d Author: Qu Wenruo Date: Fri Mar 1 10:47:58 2019 +0800 btrfs: Introduce fs_info to extent_io_tree This patch will add a new member fs_info to extent_io_tree. This provides the basis for later trace events to distinguish the output between different btrfs filesystems. While this increases the size of the structure, we want to know the source of the trace events and passing the fs_info as an argument to all contexts is not possible. The selftests are now allowed to set it to NULL as they don't use the tracepoints. Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit 3b1da515c64e18bdd6a13348313f1168396b3722 Author: Filipe Manana Date: Mon Mar 11 13:10:56 2019 +0000 Btrfs: remove no longer used 'sync' member from transaction handle Commit db2462a6ad3d ("btrfs: don't run delayed refs in the end transaction logic") removed its last use, so now it does absolutely nothing, therefore remove it. Reviewed-by: Nikolay Borisov Signed-off-by: Filipe Manana Reviewed-by: David Sterba Signed-off-by: David Sterba commit b2423496a65691f94defddd42daa172824b5fd25 Author: Dennis Zhou Date: Wed Feb 27 16:21:28 2019 -0500 btrfs: zstd: remove indirect calls for local functions While calling functions inside zstd, we don't need to use the indirection provided by the workspace_manager. Forward declarations are added to maintain the function order of btrfs_compress_op. Signed-off-by: Dennis Zhou Reviewed-by: David Sterba Signed-off-by: David Sterba commit 6c3abeda773040ad2338742b3ee95d93eb5565e1 Author: David Sterba Date: Mon Feb 25 19:57:41 2019 +0100 btrfs: scrub: return EAGAIN when fs is closing The error code used here is wrong as it's not invalid to try to start scrub when umount has begun. Returning EAGAIN is more user friendly as it's recoverable. Signed-off-by: David Sterba commit 8de60fe94292c8cdac431537ba315e15cdcafd00 Author: Goldwyn Rodrigues Date: Mon Feb 25 13:07:43 2019 -0600 btrfs: Initialize inode::i_mapping once in btrfs_symlink inode->i_op is initialized multiple times. Perform it once. This was left by 4779cc04248d ("Btrfs: get rid of btrfs_symlink_aops"). Signed-off-by: Goldwyn Rodrigues Reviewed-by: David Sterba Signed-off-by: David Sterba commit 7ac1e464c4d473b517bb784f30d40da1f842482e Author: Qu Wenruo Date: Tue Feb 26 16:33:56 2019 +0800 btrfs: Don't panic when we can't find a root key When we failed to find a root key in btrfs_update_root(), we just panic. That's definitely not cool, fix it by outputting an unique error message, aborting current transaction and return -EUCLEAN. This should not normally happen as the root has been used by the callers in some way. Reviewed-by: Filipe Manana Reviewed-by: Johannes Thumshirn Signed-off-by: Qu Wenruo Reviewed-by: David Sterba Signed-off-by: David Sterba commit c53839fc3217085c210e1a62022016f199ae7b5a Author: Johannes Thumshirn Date: Mon Feb 25 14:24:16 2019 +0100 btrfs: warn if extent buffer mapping crosses a page boundary in csum_tree_block Since commit d2e174d5d3ee ("btrfs: document extent mapping assumptions in checksum") we have a comment in place why map_private_extent_buffer() can't return 1 in the csum_tree_block() case. Make this a bit more explicit and WARN_ON() in case this this assumption breaks. Signed-off-by: Johannes Thumshirn Reviewed-by: David Sterba Signed-off-by: David Sterba commit 2996e1f8bcadf0436cc67b63af01523f6cf5d43f Author: Johannes Thumshirn Date: Mon Feb 25 14:24:15 2019 +0100 btrfs: factor our read/write stage off csum_tree_block into its callers Currently csum_tree_block() does two things, first it as it's name suggests it calculates the checksum for a tree-block. But it also writes this checksum to disk or reads an extent_buffer from disk and compares the checksum with the calculated checksum, depending on the verify argument. Furthermore one of the two callers passes in '1' for the verify argument, the other one passes in '0'. For clarity and less layering violations, factor out the second stage in csum_tree_block()'s callers. Suggested-by: Nikolay Borisov Reviewed-by: Qu Wenruo Reviewed-by: Nikolay Borisov Signed-off-by: Johannes Thumshirn Reviewed-by: David Sterba Signed-off-by: David Sterba commit a842b514db723d7bec5e8f9e6f57e5cfbb6b1f37 Merge: ffb832b4bb17 fbd7af041586 Author: Olof Johansson Date: Mon Apr 29 09:56:30 2019 -0700 Merge tag 'v5.2-rockchip-soc32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/soc Missing of_node_put and some added __init contants. * tag 'v5.2-rockchip-soc32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: ARM: rockchip: add missing of_node_put in rockchip_smp_prepare_pmu ARM: rockchip: Mark pm-init functions __init Signed-off-by: Olof Johansson commit bcca940e51688f6046d427695f7161167aaa963b Merge: 1e6df9493700 bbdc00a7de24 Author: Olof Johansson Date: Mon Apr 29 09:56:07 2019 -0700 Merge tag 'v5.2-rockchip-drivers-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/drivers Select correct pwm solution by default. * tag 'v5.2-rockchip-drivers-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: soc: rockchip: Set the proper PWM for rk3288 Signed-off-by: Olof Johansson commit 1e6df9493700e92d26e4699a3f40846129b863e6 Merge: c687702b5f50 d005aa750c9b Author: Olof Johansson Date: Mon Apr 29 09:53:21 2019 -0700 Merge tag 'reset-for-5.2' of git://git.pengutronix.de/pza/linux into arm/drivers Reset controller changes for v5.2 This adds support for 'acquired'/'released' states to exclusive reset controls to allow drivers that usually need direct control over their reset line, to temporarily yield control to another driver, such as a power domain controller during power transitions. A fix adds missing headers to linux/reset.h, which caused build errors in linux-next, discovered by the new lima DRM driver. * tag 'reset-for-5.2' of git://git.pengutronix.de/pza/linux: reset: fix linux/reset.h errors Signed-off-by: Olof Johansson commit c687702b5f506c8575881548432dbe26e741ec55 Merge: 782935d12ec2 89e28da82836 Author: Olof Johansson Date: Mon Apr 29 09:52:30 2019 -0700 Merge tag 'v5.1-next-soc' of https://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux into arm/drivers pmic wrapper: - add mt8516 bindings - add mt8516 driver support - fix clang warning * tag 'v5.1-next-soc' of https://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux: soc: mediatek: pwrap: Zero initialize rdata in pwrap_init_cipher soc: mediatek: pwrap: add support for MT8516 pwrap soc: mediatek: pwrap: add missing check on rstc dt-bindings: pwrap: mediatek: add pwrap support for MT8516 Signed-off-by: Olof Johansson commit 5f08da63d7563ee92af039074550f5d80c52983d Merge: 50676063ddf7 04eb7fd961bc Author: Olof Johansson Date: Mon Apr 29 09:46:45 2019 -0700 Merge tag 'mvebu-arm64-5.2-1' of git://git.infradead.org/linux-mvebu into arm/defconfig mvebu arm64 for 5.2 (part 1) - Update the defconfig to enable the mv-xor driver found on the Armada 3700 * tag 'mvebu-arm64-5.2-1' of git://git.infradead.org/linux-mvebu: arm64: defconfig: enable mv-xor driver Signed-off-by: Olof Johansson commit 782935d12ec2c942a793e90da2240093272d24ba Merge: 524feb799408 2616b3deaf9c Author: Olof Johansson Date: Mon Apr 29 09:40:30 2019 -0700 Merge tag 'qcom-drivers-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into arm/drivers Qualcomm ARM Based Driver Updates for v5.2 * Update MAINTAINERS for Andy Gross's new email address * Add support for mmap in RMTFS * Fixup for QMI to change txn wait to non-interruptible * Fixup for error code in probe of cmd-db * Fixup for slot number check in RMPH-RSC * tag 'qcom-drivers-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux: MAINTAINERS: Update email for Qualcomm SoC maintainer drivers: soc: qcom: rpmh-rsc: Correct check for slot number soc: qcom: cmd-db: Fix an error code in cmd_db_dev_probe() soc: qcom: qmi: Change txn wait to non-interruptible soc: qcom: rmtfs: Add support for mmap functionality Signed-off-by: Olof Johansson commit 50676063ddf72ef088123eaf548a1e61a950efb4 Merge: eae7dae81e3a acd92c5a1149 Author: Olof Johansson Date: Mon Apr 29 09:39:53 2019 -0700 Merge tag 'qcom-defconfig-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into arm/defconfig Qualcomm ARM Based defconfig Updates for v5.2 * Enable options for LG Nexus 5 phone * tag 'qcom-defconfig-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux: ARM: qcom_defconfig: add options for LG Nexus 5 phone Signed-off-by: Olof Johansson commit 524feb799408e5d45c6aa82763a9f52489d1e19f Author: Patrick Venture Date: Mon Apr 22 10:54:19 2019 -0700 soc: add aspeed folder and misc drivers Create a SoC folder for the ASPEED parts and place the misc drivers currently present into this folder. These drivers are not generic part drivers, but rather only apply to the ASPEED SoCs. Signed-off-by: Patrick Venture Acked-by: Arnd Bergmann Signed-off-by: Olof Johansson commit 89f4f128ea535acaabf7d5bddc30ddda0fb7a70a Merge: f45f5182d753 00c5ce8ac023 Author: Olof Johansson Date: Mon Apr 29 09:26:55 2019 -0700 Merge tag 'imx-dt64-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/dt i.MX arm64 device tree update for 5.2: - Add initial i.MX8MM SoC and EVK board support. - Enable OPP table for cpufreq support on i.MX8MQ, i.MX8QXP and i.MX8MM. - A series from Andrey Smirnov to enable PCIe support for i.MX8MQ. - Add TMU (Thermal Management Unit) device on i.MX8MQ for managing thermal of CPU, GPU, and VPU. - Add SDMA and SAI2 devices for i.MX8MQ SoC and enable wm8524 audio support on EVK board. - Add LPUART, OCOTP and GPU devices for i.MX8MQ SoC. - Add initial i.MX8MQ based Zii Ultra board support - Add SCU general IRQ and watchdog support for i.MX8QXP. - Add audio related devices and PMU for LS1028A. - Enable SATA and cpuidle support for LX2160A. - Other small random updates. * tag 'imx-dt64-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (41 commits) arm64: dts: lx2160a: add cpu idle support arm64: dts: imx8mq: fix GPU clock frequency arm64: dts: fsl: imx8mq-evk: link regulator to GPU domain arm64: dts: imx8mm: Add cpufreq properties arm64: dts: imx8qxp-mek: Add i2c1 with pca9646 arm64: dts: imx8qxp: enable scu general irq channel arm64: dts: imx8mq: add GPU node arm64: dts: imx: add Zii Ultra board support arm64: dts: imx8mq: fix higher CPU operating point arm64: dts: imx8mq-evk: Enable PCIE0 interface arm64: dts: imx8mq: Add nodes for PCIe IP blocks arm64: dts: imx8mq: Combine PCIE power domains arm64: dts: imx8mq: Add a node for SRC IP block arm64: dts: imx8mq: Mark iomuxc_gpr as i.MX6Q compatible arm64: dts: imx8qxp: Add lpuart1/lpuart2/lpuart3 nodes arm64: dts: lx2160a: add sata node support arm64: dts: ls1028a: Corrected the SATA ecc address arm64: dts: imx8mq: Change ahb clock for imx8mq arm64: dts: imx8mq: Fix the fsl,imx8mq-sdma compatible string arm64: dts: imx8qxp: add system controller watchdog support ... Signed-off-by: Olof Johansson commit ffb832b4bb173ff6b701d2f82dfa5fe8d9f3fe9a Merge: e165908fac89 8f3e2d2c9349 Author: Olof Johansson Date: Mon Apr 29 09:26:04 2019 -0700 Merge tag 'imx-soc-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/soc i.MX SoC update for 5.2: - Optimize i.MX6 cpuidle driver a little bit by omitting the unnecessary unmask of GINT for WAIT_CLOCKED mode. * tag 'imx-soc-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: ARM: imx6: cpuidle: omit the unnecessary unmask of GINT Signed-off-by: Olof Johansson commit f99552d9eb78e7d5cfd639c8f7a7457d71683074 Merge: ab7b7c715e9a a7e26f356ca1 Author: Olof Johansson Date: Mon Apr 29 09:25:21 2019 -0700 Merge tag 'imx-drivers-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/drivers i.MX drivers change for 5.2: - A series from Aisheng to generalize the SCU powerdomain driver for easier adding new SCU based platforms like imx8qm. - Add a generic i.MX8 SoC driver for reporting SoC and platform information. - Replace explicit polling loop with a call to regmap_read_poll_timeout() for gpcv2 driver to avoid code repetition. - Use devm_platform_ioremap_resource() to simplify gpc/gpcv2 driver code a bit. - Add general IRQ support for imx-scu driver, so that interrupt of device like RTC, thermal and watchdog can be handled. * tag 'imx-drivers-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: soc: imx: Add generic i.MX8 SoC driver firmware: imx: enable imx scu general irq function soc: imx: gpcv2: use devm_platform_ioremap_resource() to simplify code soc: imx: gpc: use devm_platform_ioremap_resource() to simplify code firmware: imx: scu-pd: decouple the SS information from domain names firmware: imx: scu-pd: add specifying the base of domain name index support firmware: imx: scu-pd: use bool to set postfix soc: imx: gpcv2: Make use of regmap_read_poll_timeout() Signed-off-by: Olof Johansson commit f45f5182d7531ad35082fc224ad284a62c9ee770 Merge: 0b6cf36a47bf d5a71e4646a7 Author: Olof Johansson Date: Mon Apr 29 09:24:53 2019 -0700 Merge tag 'lpc32xx-dt-for-5.2' of https://github.com/vzapolskiy/linux-lpc32xx into arm/dt ARM: lpc32xx: devicetree updates for v5.2 Here are the changes for ARM NXP LPC32xx devicetree files: * disabled I2S and MAC controllers by default, * set default #address-cells = <1> / #size-cells = <0> for SPI slaves, * fix notation of hexadecimal values, * switched lpc32xx.dtsi to SPDX license identifier. * tag 'lpc32xx-dt-for-5.2' of https://github.com/vzapolskiy/linux-lpc32xx: ARM: dts: lpc32xx: use SPDX license identifier ARM: dts: lpc32xx: add address and size cell values to SPI controller nodes ARM: dts: lpc32xx: disable MAC controller by default ARM: dts: lpc32xx: disable I2S controllers by default ARM: dts: lpc32xx: change hexadecimal values to lower case Signed-off-by: Olof Johansson commit e165908fac8960e032da32cd300e8069553f82eb Merge: 1895ef4ef229 e861cfbed091 Author: Olof Johansson Date: Mon Apr 29 09:24:11 2019 -0700 Merge tag 'lpc32xx-soc-for-5.2' of https://github.com/vzapolskiy/linux-lpc32xx into arm/soc ARM: lpc32xx: platform updates for v5.2 Here are the changes for ARM NXP LPC32xx platform files: * removed TEST_CLK_SEL setup out of common clock framework control, * unnecessary header files are removed from inclusion, * registration of SSP0 and SSP1 is removed as done through device tree, * switched the main platform file to SPDX license identifier. * tag 'lpc32xx-soc-for-5.2' of https://github.com/vzapolskiy/linux-lpc32xx: ARM: lpc32xx: use SPDX license identifier ARM: lpc32xx: remove platform data of SSP0 and SSP1 controllers ARM: lpc32xx: remove redundant included headers ARM: lpc32xx: stop overwriting TEST_CLK_SEL Signed-off-by: Olof Johansson commit ab7b7c715e9a3b74d4e2ee33e6cd5d1bde5332cc Author: Olof Johansson Date: Mon Apr 29 09:15:14 2019 -0700 spi: zynqmp: Fix build break Missing include: drivers/spi/spi-zynqmp-gqspi.c:1025:13: error: implicit declaration of function 'zynqmp_pm_get_eemi_ops'; did you mean 'zynqmp_process_dma_irq'? [-Werror=implicit-function-declaration] Fixes: 3d0313786470a ('drivers: Defer probe if firmware is not ready') Cc: Rajan Vaja Cc: Jolly Shah Cc: Michal Simek Signed-off-by: Olof Johansson commit 2f1d4e24d91b1f475f939685e19bb1e537031661 Author: Xiongfeng Wang Date: Fri Apr 26 10:16:36 2019 +0800 firmware: arm_sdei: Prohibit probing in '_sdei_handler' Functions called in '_sdei_handler' are needed to be marked as 'nokprobe'. Because these functions are called in NMI context and neither the arch-code's debug infrastructure nor kprobes core supports this. Signed-off-by: Xiongfeng Wang Reviewed-by: James Morse Signed-off-by: Will Deacon commit a0eaead41db98c08614c4b1ef453bdfaacde962d Author: Shahar S Matityahu Date: Sun Apr 7 10:46:08 2019 +0300 iwlwifi: dbg_ini: check for valid region type during regions parsing Add region type checking during regions parsing to avoid attempts to parse unsupported or illegal region types. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit 0aade8f4846a6fdacbbd6bbe092d0edb2dfa0d0f Author: Shahar S Matityahu Date: Mon Apr 8 16:59:53 2019 +0300 iwlwifi: avoid allocating memory for region with disabled domain In iwl_fw_ini_get_trigger_len the driver allocates space for memory regions regardless of their domain and in iwl_fw_ini_dump_trigger the driver aborts trigger collection of disabled domain. This diff causes unneeded memory allocation and traling zeros in the dump file. Solve this behavior by enforcing domain checking in iwl_fw_ini_get_trigger_len Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit 391481ad26904e055298eb4e41fbdba7d20e6526 Author: Shahar S Matityahu Date: Thu Apr 4 14:31:30 2019 +0300 iwlwifi: dbg: replace dump info device family with HW type In the dump info, the driver sets device_family to IWL_FW_ERROR_DUMP_FAMILY_7 in case IWL_FW_ERROR_DUMP_FAMILY_7 is used or IWL_FW_ERROR_DUMP_FAMILY_8 otherwise. This information is misleading and incorrect since the driver sets the device family to 8 to any device that is from family 8 and later, e.g. device family 9 is represented as 8 in the dump. Also, the device family enum is known only to the driver and does not give any information to the FW developer Change the device family to HW type to give propper data about the nic in use. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit bfd8e3dade7315130b96c722b7027e61796fb606 Author: Shahar S Matityahu Date: Tue Mar 19 16:40:15 2019 +0200 iwlwifi: dbg_ini: add periodic trigger support Allows to configure a periodic data collection Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit 954454d6107ffb0359f70b4de7f3339935f649b8 Author: Shahar S Matityahu Date: Sun Apr 7 10:41:20 2019 +0300 iwlwifi: dbg_ini: add lmac and umac error tables dumping support Add LMAC_ERROR_TABLE and UMAC_ERROR_TABLE region types and handle them in the same way as we handle DEVICE_MEMORY. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit b081e23c45f79d4a3bc335a7ad1521a9d9ad3153 Author: Johannes Berg Date: Mon Apr 1 10:57:32 2019 +0200 iwlwifi: parse command version TLV In newer firmware images there's a command version TLV that states, for each listed command or notification, which version of the command and/or notification structure is used. Read and keep this data to be able to use it in the future. Signed-off-by: Johannes Berg Signed-off-by: Luca Coelho commit 1da3823d114dc9f47ea2bba7640e79634f476afd Author: Luca Coelho Date: Wed Apr 10 10:15:02 2019 +0300 iwlwifi: pcie: remove stray character in iwl_pcie_rx_alloc_page() We have a solitary and inconspicous ` in the middle of a comment in this function, which should not be there. Remove it. Signed-off-by: Luca Coelho commit 11af74ad1d29bc853b1bb10a7b61a1f790acb0f7 Author: Andrei Otcheretianski Date: Wed Apr 10 15:31:28 2019 +0300 iwlwifi: mvm: Don't sleep in RX path Don't use cancel_delayed_work_sync() inside the channel switch notifications as they are handled synchronously as part of the RX path. Fix that by replacing it with cancel_delayed_work(). This should be safe as we don't really care whether the work is already started and in such case we would disconnect anyway. Signed-off-by: Andrei Otcheretianski Signed-off-by: Luca Coelho commit fd986b0b7a723cb381c35e35163003611de6f2da Author: Luca Coelho Date: Thu Jan 10 17:13:12 2019 +0200 iwlwifi: bump FW API to 48 for 22000 series Start supporting API version 48 for 22000 series. Signed-off-by: Luca Coelho commit 529281bdf0fc6af56d15957e5b823cb1de564b82 Author: Liad Kaufman Date: Tue Mar 26 18:11:19 2019 +0200 iwlwifi: mvm: limit TLC according to our HE capabilities Instead of setting the TLC config command according to the rates the peer supports, make sure that we aren't also limited by our own rates, so take the minimum between the peer's supported RX rates and our supported TX rates. Signed-off-by: Liad Kaufman Signed-off-by: Luca Coelho commit aee1b6385e29e472ae5592b9652b750a29bf702e Author: Shahar S Matityahu Date: Wed Mar 20 09:20:58 2019 +0200 iwlwifi: support fseq tlv and print fseq version Support fseq tlv and print fseq version to dmesg. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit cec2d4f6b4e3f7dba2f3281464d835d7003aaa6f Author: Avraham Stern Date: Tue Mar 12 11:48:56 2019 +0200 iwlwifi: mvm: report FTM start time TSF when applicable When the interface that is requesting an FTM measurement is connected to a BSS, it is possible that the FTM request was originated by an RRM request from the AP. In this case the station needs to report the measurement start time in terms of the TSF of the AP. Since there is no indication in the FTM request itself if the TSF is needed, always report the TSF if the station is associated. Signed-off-by: Avraham Stern Signed-off-by: Luca Coelho commit 0c546fb6f959eb3dc69bfd9ac789f561c75a885b Author: Luca Coelho Date: Tue Mar 12 16:01:24 2019 +0200 iwlwifi: mvm: support v2 of the WoWLAN patterns command Add new definitions for the WoWLAN patterns API version 2 and support for version 2 of the WoWLAN patterns command without implementing the new features. With this commit we only supporting the existing bitmask pattern match. Use the new version only if the TLV is set. Signed-off-by: Luca Coelho commit 30f24eabab8cd801064c5c37589d803cb4341929 Author: Johannes Berg Date: Tue Mar 5 10:31:11 2019 +0100 iwlwifi: pcie: don't crash on invalid RX interrupt If for some reason the device gives us an RX interrupt before we're ready for it, perhaps during device power-on with misconfigured IRQ causes mapping or so, we can crash trying to access the queues. Prevent that by checking that we actually have RXQs and that they were properly allocated. Signed-off-by: Johannes Berg Signed-off-by: Luca Coelho commit c5bf4fa142297270c84fe5bd899d9a9b659bc5ac Author: Johannes Berg Date: Mon Mar 25 13:19:56 2019 +0100 iwlwifi: pcie: initialize debug_rfkill to -1 This will let us introduce a mechanism to start with rfkill faked, and put 0 here to override it. Signed-off-by: Johannes Berg Signed-off-by: Luca Coelho commit 14cf9bc6085dfd5bff61db917d6d20f558979f27 Author: YueHaibing Date: Wed Apr 17 11:24:09 2019 +0800 iwlwifi: Use correct channel_profile iniwl_get_nvm commit 2785ce008e3b ("iwlwifi: support new NVM response API") seems forgot use correct channel_profile in iwl_get_nvm when call iwl_init_sbands(). Fixes: 2785ce008e3b ("iwlwifi: support new NVM response API") Signed-off-by: YueHaibing Signed-off-by: Luca Coelho commit 89626d4bad8199367e2085fd2408b4d63df79f43 Author: Geert Uytterhoeven Date: Mon Apr 29 17:15:14 2019 +0200 irqchip/renesas-intc-irqpin: Remove devm_kzalloc() error printing There is no need to print a message if devm_kzalloc() fails, as the memory allocation core already takes care of that. Signed-off-by: Geert Uytterhoeven Signed-off-by: Marc Zyngier commit 66373bf67141e7d57c123adfc4162a696411fd23 Author: Geert Uytterhoeven Date: Mon Apr 29 17:12:03 2019 +0200 irqchip: Remove unneeded select IRQ_DOMAIN IRQ_DOMAIN_HIERARCHY selects IRQ_DOMAIN, hence there is no need for drivers to select both. Signed-off-by: Geert Uytterhoeven Signed-off-by: Marc Zyngier commit bc0c60457c35c895b5591f85046b1f13da5487c4 Author: Joel Fernandes (Google) Date: Fri Apr 26 15:04:30 2019 -0400 init/config: Do not select BUILD_BIN2C for IKCONFIG Since commit 13610aa908dc ("kernel/configs: use .incbin directive to embed config_data.gz"), IKCONFIG no longer uses BUILD_BIN2C so prevent it from being selected in Kconfig. Reviewed-by: Masahiro Yamada Signed-off-by: Joel Fernandes (Google) Signed-off-by: Greg Kroah-Hartman commit 43d8ce9d65a54846d378545770991e65838981e0 Author: Joel Fernandes (Google) Date: Fri Apr 26 15:04:29 2019 -0400 Provide in-kernel headers to make extending kernel easier Introduce in-kernel headers which are made available as an archive through proc (/proc/kheaders.tar.xz file). This archive makes it possible to run eBPF and other tracing programs that need to extend the kernel for tracing purposes without any dependency on the file system having headers. A github PR is sent for the corresponding BCC patch at: https://github.com/iovisor/bcc/pull/2312 On Android and embedded systems, it is common to switch kernels but not have kernel headers available on the file system. Further once a different kernel is booted, any headers stored on the file system will no longer be useful. This is an issue even well known to distros. By storing the headers as a compressed archive within the kernel, we can avoid these issues that have been a hindrance for a long time. The best way to use this feature is by building it in. Several users have a need for this, when they switch debug kernels, they do not want to update the filesystem or worry about it where to store the headers on it. However, the feature is also buildable as a module in case the user desires it not being part of the kernel image. This makes it possible to load and unload the headers from memory on demand. A tracing program can load the module, do its operations, and then unload the module to save kernel memory. The total memory needed is 3.3MB. By having the archive available at a fixed location independent of filesystem dependencies and conventions, all debugging tools can directly refer to the fixed location for the archive, without concerning with where the headers on a typical filesystem which significantly simplifies tooling that needs kernel headers. The code to read the headers is based on /proc/config.gz code and uses the same technique to embed the headers. Other approaches were discussed such as having an in-memory mountable filesystem, but that has drawbacks such as requiring an in-kernel xz decompressor which we don't have today, and requiring usage of 42 MB of kernel memory to host the decompressed headers at anytime. Also this approach is simpler than such approaches. Reviewed-by: Masahiro Yamada Signed-off-by: Joel Fernandes (Google) Signed-off-by: Greg Kroah-Hartman commit 12eade123e502ecaa3bf980eaa155201b9093a95 Author: Rasmus Villemoes Date: Tue Mar 12 18:33:49 2019 +0100 irqchip/gic-v3-its: Make free_lpi_range a little cheaper Using list_add + list_sort to insert an element and keeping the list sorted is a somewhat blunt instrument; one can find the right place to insert in fewer lines of code than the cmp callback uses. Moreover, walking the entire list afterwards to merge adjacent ranges is overkill, since we know that only the just-inserted element may be merged with its neighbours. Signed-off-by: Rasmus Villemoes Signed-off-by: Marc Zyngier commit 1c73fac50d83274ebc221bc8d42b6477b3c82405 Author: Rasmus Villemoes Date: Tue Mar 12 18:33:48 2019 +0100 irqchip/gic-v3-its: Drop redundant initialization in mk_lpi_range There's no reason to ask kmalloc() to zero the allocation, since all the fields get initialized immediately afterwards. Except that there's also not any reason to initialize the ->entry member, since the element gets added to the lpi_range_list immediately. Signed-off-by: Rasmus Villemoes Signed-off-by: Marc Zyngier commit b31a383852b95b47996ed1789288f6bdf6f7ec25 Author: Rasmus Villemoes Date: Tue Mar 12 18:33:47 2019 +0100 irqchip/gic-v3-its: Move allocation outside mutex There's no reason to do the allocation of the new lpi_range inside the lpi_range_lock. One could change the code to avoid the allocation altogether in case the freed range can be merged with one or two existing ranges (in which case the allocation would naturally be done under the lock), but it's probably not worth complicating the code for that. Signed-off-by: Rasmus Villemoes Signed-off-by: Marc Zyngier commit cfbf9e497094dcfaba02fe46e9e8c276e2d6eca9 Author: Fabien Dessenne Date: Wed Apr 17 15:02:56 2019 +0200 irqchip/stm32: Use a platform driver for stm32mp1-exti device This irqchip driver uses the hwspinlock framework (coprocessor HW regs access concurrency) for the stm32mp1-exti device. Hence, this driver needs to handle the hwspinlock driver dependency using the deferred probe mechanism which requires to move this driver into a platform one with a probe() ops. This applies only for the device which is "st,stm32mp1-exti" compatible, the management of the other devices (st,stm32h7-exti / st,stm32-exti) is kept unchanged (use IRQCHIP_DECLARE) Signed-off-by: Fabien Dessenne Signed-off-by: Marc Zyngier commit 960164f7141e8a974035db9ab03d93f46656ea81 Author: Sameer Pujar Date: Fri Mar 22 17:43:05 2019 +0530 irqchip/gic-pm: Fix suspend handling If interrupts are enabled for a non-root GIC device that uses the gic-pm driver, when system suspend occurs, the current interrupt state is not saved and restored correctly and so interrupts do not work again on resuming the system. Add a late suspend handler to save and restore the state for these devices. Suggested-by: Jonathan Hunter Signed-off-by: Sameer Pujar Reviewed-by: Jon Hunter Tested-by: Jon Hunter Signed-off-by: Marc Zyngier commit fe00f8900ca71a991849b9413f0bfa0ec50f0ad4 Author: Sameer Pujar Date: Fri Mar 22 17:43:04 2019 +0530 irqchip/gic-pm: Update driver to use clk_bulk APIs gic-pm driver is using pm-clk framework to manage clock resources, where clocks remain always ON. This happens on Tegra devices which use BPMP co-processor to manage the clocks. Calls to BPMP are always blocking and hence it is necessary to enable/disable clocks during prepare/unprepare phase respectively. When pm-clk is used, prepare count of clock is not balanced until pm_clk_remove() happens. Clock is prepared in the driver probe() and thus prepare count of clock remains non-zero, which in turn keeps clock ON always. Please note that above mentioned behavior is specific to Tegra devices using BPMP for clock management and this should not be seen on other devices. Though this patch uses clk_bulk APIs to address the mentioned behavior, this works fine for all devices. To simplify gic_get_clocks() API is removed and instead probe can do necessary setup. Suggested-by: Mohan Kumar D Signed-off-by: Sameer Pujar Reviewed-by: Jon Hunter Tested-by: Jon Hunter Signed-off-by: Marc Zyngier commit 08970ecf744e09837bb6620c95406710f4c81ae2 Author: Julien Grall Date: Thu Apr 18 16:54:01 2019 +0100 irq/irqdomain: Fix typo in the comment on top of __irq_domain_alloc_irqs() The word 'number' has been misspelt in the comment on top of _irq_domain_alloc_irqs(). Signed-off-by: Julien Grall Signed-off-by: Marc Zyngier commit 358b9d248a026d7d0f5ea21b04480b715da0d425 Author: Anson Huang Date: Mon Apr 1 06:21:51 2019 +0000 irqchip/imx-irqsteer: Use devm_platform_ioremap_resource() to simplify code Use the new helper devm_platform_ioremap_resource() which wraps the platform_get_resource() and devm_ioremap_resource() together, to simplify the code. Signed-off-by: Anson Huang Signed-off-by: Marc Zyngier commit a7c90f51d7b10e9c71be991a837d87ddc10dab20 Author: Julien Grall Date: Thu Apr 18 16:58:14 2019 +0100 irqchip/gic-v3-its: Fix typo in a comment in its_msi_prepare() The word 'entirely' has been misspelt in a comment in its_msi_prepare(). Signed-off-by: Julien Grall Signed-off-by: Marc Zyngier commit 0f29456d08042134aff6e562d07a6365c841c4ad Author: Hongbo Yao Date: Mon Apr 8 22:01:03 2019 +0800 irqchip/gic-v3-its: fix some definitions of inner cacheability attributes Some definitions of Inner Cacheability attibutes need to be corrected. Fixes: 8c828a535e29f ("irqchip/gicv3-its: Restore all cacheability attributes") Signed-off-by: Hongbo Yao Signed-off-by: Marc Zyngier commit 45c054d0815b1530d7c7ff8441389a0421dd05e7 Author: Paul Walmsley Date: Fri Apr 12 19:01:13 2019 -0700 tty: serial: add driver for the SiFive UART Add a serial driver for the SiFive UART, found on SiFive FU540 devices (among others). The underlying serial IP block is relatively basic, and currently does not support serial break detection. Further information on the IP block can be found in the documentation and Chisel sources: https://static.dev.sifive.com/FU540-C000-v1.0.pdf https://github.com/sifive/sifive-blocks/tree/master/src/main/scala/devices/uart This driver was written in collaboration with Wesley Terpstra . Tested on a SiFive HiFive Unleashed A00 board, using BBL and the open- source FSBL (using a DT file based on what's targeted for mainline). This revision incorporates changes based on comments by Julia Lawall , Emil Renner Berthing , and Andreas Schwab . Thanks also to Andreas for testing the driver with his userspace and reporting a bug with the set_termios implementation. Signed-off-by: Paul Walmsley Signed-off-by: Paul Walmsley Cc: Greg Kroah-Hartman Cc: Jiri Slaby Cc: Palmer Dabbelt Cc: Wesley Terpstra Cc: linux-serial@vger.kernel.org Cc: linux-riscv@lists.infradead.org Cc: linux-kernel@vger.kernel.org Cc: Julia Lawall Cc: Emil Renner Berthing Cc: Andreas Schwab Signed-off-by: Greg Kroah-Hartman commit e5c8fe558c5fb7fe37227bacdcf857881498ebf3 Author: Paul Walmsley Date: Fri Apr 12 19:01:11 2019 -0700 dt-bindings: serial: add documentation for the SiFive UART driver Add DT binding documentation for the Linux driver for the SiFive asynchronous serial IP block. This revision incorporates changes based on feedback from Rob Herring . Signed-off-by: Paul Walmsley Signed-off-by: Paul Walmsley Cc: linux-serial@vger.kernel.org Cc: devicetree@vger.kernel.org Cc: linux-riscv@lists.infradead.org Cc: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman Cc: Mark Rutland Cc: Palmer Dabbelt Reviewed-by: Rob Herring Signed-off-by: Greg Kroah-Hartman commit f08cae2f28db24d95be5204046b60618d8de4ddc Author: Boyang Zhou Date: Mon Apr 29 15:27:19 2019 +0100 arm64: mmap: Ensure file offset is treated as unsigned The file offset argument to the arm64 sys_mmap() implementation is scaled from bytes to pages by shifting right by PAGE_SHIFT. Unfortunately, the offset is passed in as a signed 'off_t' type and therefore large offsets (i.e. with the top bit set) are incorrectly sign-extended by the shift. This has been observed to cause false mmap() failures when mapping GPU doorbells on an arm64 server part. Change the type of the file offset argument to sys_mmap() from 'off_t' to 'unsigned long' so that the shifting scales the value as expected. Cc: Signed-off-by: Boyang Zhou [will: rewrote commit message] Signed-off-by: Will Deacon commit 1863178b20c5add7e6d217f2bf6d094ff13660f7 Author: Shubhrajyoti Datta Date: Tue Apr 9 13:15:24 2019 +0530 serial: uartps: Add support for cts-override Having flow is configurable. Add support for the same by checking for cts-override. Signed-off-by: Shubhrajyoti Datta Signed-off-by: Greg Kroah-Hartman commit b1072b4f6e845ad41de0a01fe3b3c5d5c6ac2c71 Author: Shubhrajyoti Datta Date: Tue Apr 9 13:15:23 2019 +0530 dt-bindings: xilinx-uartps: Add support for cts-override Flow control is configurable in xilinx-uartps Add a dt binding to check for the same. Signed-off-by: Shubhrajyoti Datta Reviewed-by: Rob Herring Signed-off-by: Greg Kroah-Hartman commit 74cdf8cec7dd4c9c06533555a49b4afb429cb5be Author: Wei Yongjun Date: Thu Apr 25 15:10:44 2019 +0000 serial: milbeaut_usio: Fix error handling in probe and remove devm_clk_get() is used so there is no reason to explicitly call clk_put() in probe or remove functions. Also remove duplicate assign for port->membase. Fixes: ba44dc043004 ("serial: Add Milbeaut serial control") Signed-off-by: Wei Yongjun Tested-by: Sugaya Taichi Signed-off-by: Greg Kroah-Hartman commit 0f02321e4bd1b17eb957e077e868ef1611f5dbbd Author: Johan Hovold Date: Thu Apr 25 18:05:40 2019 +0200 USB: cdc-acm: clean up throttle handling Clean up the throttle implementation by dropping the redundant throttle_req flag which was a remnant from back when USB serial had only a single read URB, something which was later carried over to cdc-acm. Also convert the throttled flag to an atomic bit flag. Signed-off-by: Johan Hovold Acked-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman commit 764478f41130f1b8d8057575b89e69980a0f600d Author: Johan Hovold Date: Thu Apr 25 18:05:39 2019 +0200 USB: cdc-acm: fix unthrottle races Fix two long-standing bugs which could potentially lead to memory corruption or leave the port throttled until it is reopened (on weakly ordered systems), respectively, when read-URB completion races with unthrottle(). First, the URB must not be marked as free before processing is complete to prevent it from being submitted by unthrottle() on another CPU. CPU 1 CPU 2 ================ ================ complete() unthrottle() process_urb(); smp_mb__before_atomic(); set_bit(i, free); if (test_and_clear_bit(i, free)) submit_urb(); Second, the URB must be marked as free before checking the throttled flag to prevent unthrottle() on another CPU from failing to observe that the URB needs to be submitted if complete() sees that the throttled flag is set. CPU 1 CPU 2 ================ ================ complete() unthrottle() set_bit(i, free); throttled = 0; smp_mb__after_atomic(); smp_mb(); if (throttled) if (test_and_clear_bit(i, free)) return; submit_urb(); Note that test_and_clear_bit() only implies barriers when the test is successful. To handle the case where the URB is still in use an explicit barrier needs to be added to unthrottle() for the second race condition. Also note that the first race was fixed by 36e59e0d70d6 ("cdc-acm: fix race between callback and unthrottle") back in 2015, but the bug was reintroduced a year later. Fixes: 1aba579f3cf5 ("cdc-acm: handle read pipe errors") Fixes: 088c64f81284 ("USB: cdc-acm: re-write read processing") Signed-off-by: Johan Hovold Acked-by: Oliver Neukum Cc: stable Signed-off-by: Greg Kroah-Hartman commit d671002be6bdd7f77a771e23bf3e95d1f16775e6 Author: zhengbin Date: Mon Apr 29 20:26:31 2019 +0800 locking/lockdep: Remove unnecessary unlikely() DEBUG_LOCKS_WARN_ON() already contains an unlikely(), there is no need for another one. Signed-off-by: zhengbin Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Will Deacon Cc: houtao1@huawei.com Link: http://lkml.kernel.org/r/1556540791-23110-1-git-send-email-zhengbin13@huawei.com Signed-off-by: Ingo Molnar commit 082ce27ff4215a4863d885a48dc443f66f833818 Author: Florian Fainelli Date: Wed Mar 20 12:39:19 2019 -0700 irqchip/bcm: Restore registration print with %pOF It is useful to print which interrupt controllers are registered in the system and which parent IRQ they use, especially given that L2 interrupt controllers do not call request_irq() on their parent interrupt and do not appear under /proc/interrupts for that reason. We used to print the base register address virtual address which had little value, use %pOF to print the path to the Device Tree node which maps to the physical address more easily and is what people need to troubleshoot systems. Signed-off-by: Florian Fainelli Signed-off-by: Marc Zyngier commit f22b1ba15ee5785aa028384ebf77dd39e8e47b70 Author: Sven Van Asbroeck Date: Fri Apr 26 14:36:35 2019 -0400 rtc: 88pm860x: prevent use-after-free on device remove The device's remove() attempts to shut down the delayed_work scheduled on the kernel-global workqueue by calling flush_scheduled_work(). Unfortunately, flush_scheduled_work() does not prevent the delayed_work from re-scheduling itself. The delayed_work might run after the device has been removed, and touch the already de-allocated info structure. This is a potential use-after-free. Fix by calling cancel_delayed_work_sync() during remove(): this ensures that the delayed work is properly cancelled, is no longer running, and is not able to re-schedule itself. This issue was detected with the help of Coccinelle. Signed-off-by: Sven Van Asbroeck Signed-off-by: Alexandre Belloni commit 527bd754d1ffc4bbd89a33c643e74c53d713eb4e Author: Kefeng Wang Date: Tue Apr 23 15:50:16 2019 +0800 rtc: Use dev_get_drvdata() Using dev_get_drvdata directly. Cc: Alessandro Zummo Cc: Alexandre Belloni Cc: linux-rtc@vger.kernel.org Signed-off-by: Kefeng Wang Signed-off-by: Alexandre Belloni commit c8889bb6e62f17822419bd253a08c96aee963722 Author: Alexandre Belloni Date: Tue Apr 16 10:34:32 2019 +0200 rtc: imxdi: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Signed-off-by: Alexandre Belloni commit 629d488a3eb660fd511c40b2076cc2bfd4b94f6c Author: Alexandre Belloni Date: Tue Apr 16 10:34:31 2019 +0200 rtc: imxdi: remove unnecessary check The RTC core already ensures the alarm is set to a time in the future, it is not necessary to check again in the driver. Signed-off-by: Alexandre Belloni commit d231d32caa901331335b5e35014865e29de2ebbd Author: Alexandre Belloni Date: Tue Apr 16 10:34:30 2019 +0200 rtc: imxdi: use .set_time Use .set_time instead of the deprecated .set_mmss. Signed-off-by: Alexandre Belloni commit 93059793ad490f88f83e44b0a2e8184d5e592f0a Author: Alexandre Belloni Date: Tue Apr 16 10:34:29 2019 +0200 rtc: imxdi: switch to rtc_time64_to_tm/rtc_tm_to_time64 Call the 64bit versions of rtc_tm time conversion now that the range is enforced by the core. Signed-off-by: Alexandre Belloni commit 21c9dfda4b3091535f3e20d036ad5243aeea20f4 Author: Alexandre Belloni Date: Tue Apr 16 10:34:28 2019 +0200 rtc: imxdi: set range The RTC Time Counter MSB Register contains the 32 most significant bits (47:16) of the 47-bit RTC Time Counter. Clocked by a 32.768 KHz clock, this register is effectively a 32-bit seconds counter. Signed-off-by: Alexandre Belloni commit 02bc723579a8ec84c4a320985e9cae44b087d292 Author: Alexandre Belloni Date: Tue Apr 16 10:30:45 2019 +0200 rtc: mxc: use .set_time Use .set_time instead of the deprecated .set_mmss64. Signed-off-by: Alexandre Belloni commit 83888df4b882d10df122517f8158093d7b9da035 Author: Alexandre Belloni Date: Tue Apr 16 10:30:44 2019 +0200 rtc: mxc: set range Let the core handle the range, and in particular the imx1 offsetting. This has the benefit of extending the range of the RTC further than 365 days and making .read_time useful again on imx1. Signed-off-by: Alexandre Belloni commit ebc2ec4ecf1893b9afaecc59fbd04b2bdf34f7c2 Author: Alexandre Belloni Date: Tue Apr 16 10:30:43 2019 +0200 rtc: mxc: fix possible race condition The IRQ is requested before the struct rtc is allocated and registered, but this struct is used in the IRQ handler. This may lead to a NULL pointer dereference. Switch to devm_rtc_allocate_device/rtc_register_device to allocate the rtc struct before requesting the IRQ. Signed-off-by: Alexandre Belloni commit cf612c5949aca2bd81a1e28688957c8149ea2693 Author: Fabien Dessenne Date: Wed Apr 24 14:26:48 2019 +0200 rtc: stm32: manage the get_irq probe defer case Manage the -EPROBE_DEFER error case for the wake IRQ. Signed-off-by: Fabien Dessenne Acked-by: Amelie Delaunay Signed-off-by: Alexandre Belloni commit f9bf089a70aab6baac745843b44c152084848f5e Author: Daniel Gomez Date: Mon Apr 22 21:08:52 2019 +0200 rtc: rx6110: declare missing of table Add missing table for SPI driver relying on SPI device match since compatible is in a DT binding or in a DTS. Before this patch: modinfo drivers/rtc/rtc-rx6110.ko | grep alias alias: spi:rx6110 After this patch: modinfo drivers/rtc/rtc-rx6110.ko | grep alias alias: spi:rx6110 alias: of:N*T*Cepson,rx6110C* alias: of:N*T*Cepson,rx6110 Reported-by: Javier Martinez Canillas Signed-off-by: Daniel Gomez Signed-off-by: Alexandre Belloni commit 498ce4e76b2d5b1dd56b478c967fcfef5b20c1b8 Author: Alexandre Belloni Date: Sun Apr 7 13:54:44 2019 +0200 rtc: wm831x: use .set_time Use .set_time instead of the deprecated .set_mmss. Acked-by: Charles Keepax Signed-off-by: Alexandre Belloni commit 35a196bef449b5824033865b963ed9a43fb8c730 Author: Paul Moore Date: Fri Apr 19 14:55:12 2019 -0400 proc: prevent changes to overridden credentials Prevent userspace from changing the the /proc/PID/attr values if the task's credentials are currently overriden. This not only makes sense conceptually, it also prevents some really bizarre error cases caused when trying to commit credentials to a task with overridden credentials. Cc: Reported-by: "chengjian (D)" Signed-off-by: Paul Moore Acked-by: John Johansen Acked-by: James Morris Acked-by: Casey Schaufler commit bc15cf701fa4875d9710f16ca4d2ce25e66ce4a0 Author: Will Deacon Date: Mon Apr 29 14:21:11 2019 +0100 arm64: Kconfig: Tidy up errata workaround help text The nature of silicon errata means that the Kconfig help text for our various software workarounds has been written by many different people. Along the way, we've accumulated typos and inconsistencies which make the options needlessly difficult to read. Fix up minor issues with the help text. Signed-off-by: Will Deacon commit 31adf2308f33dcae59009019675224be0978bc70 Author: Petr Mladek Date: Wed Apr 24 10:55:48 2019 +0200 livepatch: Convert error about unsupported reliable stacktrace into a warning The commit d0807da78e11d46f ("livepatch: Remove immediate feature") caused that any livepatch was refused when reliable stacktraces were not supported on the given architecture. The limitation is too strong. User space processes are safely migrated even when entering or leaving the kernel. Kthreads transition would need to get forced. But it is safe when: + The livepatch does not change the semantic of the code. + Callbacks do not depend on a safely finished transition. Suggested-by: Josh Poimboeuf Acked-by: Josh Poimboeuf Acked-by: Miroslav Benes Reviewed-by: Kamalesh Babulal Signed-off-by: Petr Mladek commit ebcb8f8508c5edf428f52525cec74d28edea7bcb Author: Pedro Sousa Date: Thu Apr 18 21:13:34 2019 +0200 scsi: ufs: Fix RX_TERMINATION_FORCE_ENABLE define value Fix RX_TERMINATION_FORCE_ENABLE define value from 0x0089 to 0x00A9 according to MIPI Alliance MPHY specification. Fixes: e785060ea3a1 ("ufs: definitions for phy interface") Signed-off-by: Pedro Sousa Signed-off-by: Martin K. Petersen commit cc23c66179ca2e873809febe03368944b9016942 Author: YueHaibing Date: Tue Apr 23 22:41:38 2019 +0800 scsi: qedf: remove set but not used variables Fixes gcc '-Wunused-but-set-variable' warnings: drivers/scsi/qedf/qedf_els.c: In function 'qedf_process_els_compl': drivers/scsi/qedf/qedf_els.c:149:20: warning: variable 'sc_cmd' set but not used [-Wunused-but-set-variable] drivers/scsi/qedf/qedf_els.c:148:28: warning: variable 'task_ctx' set but not used [-Wunused-but-set-variable] drivers/scsi/qedf/qedf_els.c: In function 'qedf_send_srr': drivers/scsi/qedf/qedf_els.c:612:6: warning: variable 'sid' set but not used [-Wunused-but-set-variable] They are never used since introduction. Signed-off-by: YueHaibing Acked-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit b226a893d2b39a112470e14732ccef60006ad159 Author: Saurav Kashyap Date: Sun Apr 21 22:45:01 2019 -0700 scsi: qedf: Update the driver version to 8.37.25.20 Update the driver version to 8.37.25.20. Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 1e1ff604a3d1637f6cd890ee679a70ea2cf65050 Author: Saurav Kashyap Date: Sun Apr 21 22:45:00 2019 -0700 scsi: qedf: Add return value to log message if scsi_add_host fails Print return value of scsi_add_host on failure. Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 7fa4142d8bdc7a6255844ba2edfcca4f28805ab4 Author: Saurav Kashyap Date: Sun Apr 21 22:44:59 2019 -0700 scsi: qedf: Print fcport information on wait for upload timeout Log fcport for which upload failed. Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 19c2b6d84b7206548caedda83de96f54ff76f655 Author: Saurav Kashyap Date: Sun Apr 21 22:44:58 2019 -0700 scsi: qedf: Check the return value of start_xmit Log the reason for start xmit failure. Signed-off-by: Saurav Kashyap Signed-off-by: Chad Dupuis Signed-off-by: Martin K. Petersen commit 249b148f3620577c923894dfab5a75cb59c024eb Author: Saurav Kashyap Date: Sun Apr 21 22:44:57 2019 -0700 scsi: qedf: Log message if scsi_add_host fails Print message on scsi_add_host failure. Signed-off-by: Saurav Kashyap Signed-off-by: Chad Dupuis Signed-off-by: Martin K. Petersen commit f4eecabe743a6aca463bae85c5f9551cfe9d4870 Author: Saurav Kashyap Date: Sun Apr 21 22:44:56 2019 -0700 scsi: qedf: Check for fcoe_libfc_config failure Print the fcoe_libfc_config failure and return proper failure. Signed-off-by: Saurav Kashyap Signed-off-by: Chad Dupuis Signed-off-by: Martin K. Petersen commit 8b95b99c1aafb72f19c583a6864149cf074f5e7a Author: Saurav Kashyap Date: Sun Apr 21 22:44:55 2019 -0700 scsi: qedf: Add comment to display logging levels Comment will help in decoding the logging level. Signed-off-by: Saurav Kashyap Signed-off-by: Chad Dupuis Signed-off-by: Martin K. Petersen commit 50ed27cb93e3d367424bd66dd2d74cb9dc296cc3 Author: Chad Dupuis Date: Sun Apr 21 22:44:54 2019 -0700 scsi: qedf: Add port_id for fcport into initiate_cleanup debug message Port ID will help in debugging. Signed-off-by: Chad Dupuis Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 1c8162479bc00f3368a2785ad111f4655cc32824 Author: Chad Dupuis Date: Sun Apr 21 22:44:53 2019 -0700 scsi: qedf: Add LBA to underrun debug messages Print LBA information for underrun cases. Signed-off-by: Chad Dupuis Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 276eb3e5d0a76571e95ed54abebc53c275e300d0 Author: Chad Dupuis Date: Sun Apr 21 22:44:52 2019 -0700 scsi: qedf: Print scsi_cmd backpointer in good completion path if the command is still being used Printing scsi command pointer will help in crash dump analysis. Signed-off-by: Chad Dupuis Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 892f63d427ca55cbf7070b11cee790ff0325df18 Author: Chad Dupuis Date: Sun Apr 21 22:44:51 2019 -0700 scsi: qedf: Add driver state to 'driver_stats' debugfs node Add debugfs node for driver stats. [mkp: typo] Signed-off-by: Chad Dupuis Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 078d71995703c8d0f55bba181a7497fd684704a4 Author: Chad Dupuis Date: Sun Apr 21 22:44:50 2019 -0700 scsi: qedf: Change MSI-X load error message Change the message to display load failure. Signed-off-by: Chad Dupuis Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 3252688f09c1c3975ced054b8427dd1e7868b8f8 Author: Manish Rangankar Date: Fri Apr 26 03:55:46 2019 -0700 scsi: qedi: Adjust termination and offload ramrod timers Whenever offload ramrod is issued, firmware wants driver to wait for max 5 secs, otherwise driver can initiate further corrective action. Similarly, when termination ramrod is issued, irrespective of abortive or non-abortive termination, driver should wait for 60 sec * max TCP-RT timeout. [mkp: typos] Signed-off-by: Manish Rangankar Signed-off-by: Martin K. Petersen commit f848bfd8e167210a29374e8a678892bed591684f Author: Manish Rangankar Date: Fri Apr 26 03:55:45 2019 -0700 scsi: qedi: Abort ep termination if offload not scheduled Sometimes during connection recovery when there is a failure to resolve ARP, and offload connection was not issued, driver tries to flush pending offload connection work which was not queued up. kernel: WARNING: CPU: 19 PID: 10110 at kernel/workqueue.c:3030 __flush_work.isra.34+0x19c/0x1b0 kernel: CPU: 19 PID: 10110 Comm: iscsid Tainted: G W 5.1.0-rc4 #11 kernel: Hardware name: Dell Inc. PowerEdge R730/0599V5, BIOS 2.9.1 12/04/2018 kernel: RIP: 0010:__flush_work.isra.34+0x19c/0x1b0 kernel: Code: 8b fb 66 0f 1f 44 00 00 31 c0 eb ab 48 89 ef c6 07 00 0f 1f 40 00 fb 66 0f 1f 44 00 00 31 c0 eb 96 e8 08 16 fe ff 0f 0b eb 8d <0f> 0b 31 c0 eb 87 0f 1f 40 00 66 2e 0f 1 f 84 00 00 00 00 00 0f 1f kernel: RSP: 0018:ffffa6b4054dba68 EFLAGS: 00010246 kernel: RAX: 0000000000000000 RBX: ffff91df21c36fc0 RCX: 0000000000000000 kernel: RDX: 0000000000000001 RSI: 0000000000000000 RDI: ffff91df21c36fc0 kernel: RBP: ffff91df21c36ef0 R08: 0000000000000000 R09: 0000000000000000 kernel: R10: 0000000000000038 R11: ffffa6b4054dbd60 R12: ffffffffc05e72c0 kernel: R13: ffff91db10280820 R14: 0000000000000048 R15: 0000000000000000 kernel: FS: 00007f5d83cc1740(0000) GS:ffff91df2f840000(0000) knlGS:0000000000000000 kernel: CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 kernel: CR2: 0000000001cc5000 CR3: 0000000465450002 CR4: 00000000001606e0 kernel: Call Trace: kernel: ? try_to_del_timer_sync+0x4d/0x80 kernel: qedi_ep_disconnect+0x3b/0x410 [qedi] kernel: ? 0xffffffffc083c000 kernel: ? klist_iter_exit+0x14/0x20 kernel: ? class_find_device+0x93/0xf0 kernel: iscsi_if_ep_disconnect.isra.18+0x58/0x70 [scsi_transport_iscsi] kernel: iscsi_if_recv_msg+0x10e2/0x1510 [scsi_transport_iscsi] kernel: ? copyout+0x22/0x30 kernel: ? _copy_to_iter+0xa0/0x430 kernel: ? _cond_resched+0x15/0x30 kernel: ? __kmalloc_node_track_caller+0x1f9/0x270 kernel: iscsi_if_rx+0xa5/0x1e0 [scsi_transport_iscsi] kernel: netlink_unicast+0x17f/0x230 kernel: netlink_sendmsg+0x2d2/0x3d0 kernel: sock_sendmsg+0x36/0x50 kernel: ___sys_sendmsg+0x280/0x2a0 kernel: ? timerqueue_add+0x54/0x80 kernel: ? enqueue_hrtimer+0x38/0x90 kernel: ? hrtimer_start_range_ns+0x19f/0x2c0 kernel: __sys_sendmsg+0x58/0xa0 kernel: do_syscall_64+0x5b/0x180 kernel: entry_SYSCALL_64_after_hwframe+0x44/0xa9 Signed-off-by: Manish Rangankar Signed-off-by: Martin K. Petersen commit e95a5e4b1a219c55c360a91a71064f9318733211 Author: Varun Prakash Date: Sun Apr 21 19:00:43 2019 +0530 scsi: csiostor: create per port irq affinity mask set csiostor driver allocates per port num_online_cpus() irq vectors, so create per-port irq affinity mask set to spread irq vectors evenly. Signed-off-by: Varun Prakash Signed-off-by: Martin K. Petersen commit b2d3b5ee66f2a04a918cc043cec0c9ed3de58f40 Author: Nathan Fontenot Date: Tue Oct 2 10:35:59 2018 -0500 powerpc/pseries: Track LMB nid instead of using device tree When removing memory we need to remove the memory from the node it was added to instead of looking up the node it should be in in the device tree. During testing we have seen scenarios where the affinity for a LMB changes due to a partition migration or PRRN event. In these cases the node the LMB exists in may not match the node the device tree indicates it belongs in. This can lead to a system crash when trying to DLPAR remove the LMB after a migration or PRRN event. The current code looks up the node in the device tree to remove the LMB from, the crash occurs when we try to offline this node and it does not have any data, i.e. node_data[nid] == NULL. 36:mon> e cpu 0x36: Vector: 300 (Data Access) at [c0000001828b7810] pc: c00000000036d08c: try_offline_node+0x2c/0x1b0 lr: c0000000003a14ec: remove_memory+0xbc/0x110 sp: c0000001828b7a90 msr: 800000000280b033 dar: 9a28 dsisr: 40000000 current = 0xc0000006329c4c80 paca = 0xc000000007a55200 softe: 0 irq_happened: 0x01 pid = 76926, comm = kworker/u320:3 36:mon> t [link register ] c0000000003a14ec remove_memory+0xbc/0x110 [c0000001828b7a90] c00000000006a1cc arch_remove_memory+0x9c/0xd0 (unreliable) [c0000001828b7ad0] c0000000003a14e0 remove_memory+0xb0/0x110 [c0000001828b7b20] c0000000000c7db4 dlpar_remove_lmb+0x94/0x160 [c0000001828b7b60] c0000000000c8ef8 dlpar_memory+0x7e8/0xd10 [c0000001828b7bf0] c0000000000bf828 handle_dlpar_errorlog+0xf8/0x160 [c0000001828b7c60] c0000000000bf8cc pseries_hp_work_fn+0x3c/0xa0 [c0000001828b7c90] c000000000128cd8 process_one_work+0x298/0x5a0 [c0000001828b7d20] c000000000129068 worker_thread+0x88/0x620 [c0000001828b7dc0] c00000000013223c kthread+0x1ac/0x1c0 [c0000001828b7e30] c00000000000b45c ret_from_kernel_thread+0x5c/0x80 To resolve this we need to track the node a LMB belongs to when it is added to the system so we can remove it from that node instead of the node that the device tree indicates it should belong to. Signed-off-by: Nathan Fontenot Signed-off-by: Michael Ellerman commit c2d1812600f5a8c9341b2db7c863cd2725444de5 Author: Wei Yongjun Date: Mon Apr 29 12:26:30 2019 +0000 usb: typec: ucsi: ccg: fix missing unlock on error in ccg_cmd_write_flash_row() Add the missing unlock before return from function ccg_cmd_write_flash_row() in the error handling case. Fixes: 5c9ae5a87573 ("usb: typec: ucsi: ccg: add firmware flashing support") Signed-off-by: Wei Yongjun Acked-by: Heikki Krogerus Signed-off-by: Greg Kroah-Hartman commit a1f9ab4844acdd8415dddd588f4fcac4d5b05c8e Author: Himanshu Madhani Date: Tue Apr 23 14:52:36 2019 -0700 scsi: qla2xxx: Silence Successful ELS IOCB message ELS IOCB done message should be moved to verbose logging to prevent confusion about the error case v/s successful submission case. [mkp: typos] Signed-off-by: Himanshu Madhani Reviewed-by: Ewan D. Milne Signed-off-by: Martin K. Petersen commit 2137490f2147a8d0799b72b9a1023efb012d40c7 Author: Quinn Tran Date: Tue Apr 23 14:52:35 2019 -0700 scsi: qla2xxx: Fix device staying in blocked state This patch fixes issue reported by some of the customers, who discovered that after cable pull scenario the devices disappear and path seems to remain in blocked state. Once the device reappears, driver does not seem to update path to online. This issue appears because of the defer flag creating race condition where the same session reappears. This patch fixes this issue by indicating SCSI-ML of device lost when qlt_free_session_done() is called from qlt_unreg_sess(). Fixes: 41dc529a4602a ("qla2xxx: Improve RSCN handling in driver") Signed-off-by: Quinn Tran Cc: stable@vger.kernel.org #4.19 Signed-off-by: Himanshu Madhani Reviewed-by: Ewan D. Milne Signed-off-by: Martin K. Petersen commit c6bcc592362a933ce52aed54531d42909b007e88 Author: Christoph Hellwig Date: Mon Apr 22 19:35:09 2019 +0200 scsi: aic7xxx: improve the Kconfig entry There is no old vs new driver anymore. Signed-off-by: Christoph Hellwig Signed-off-by: Martin K. Petersen commit e21107aa6bf32a90f856c96d77806bf42eb8f238 Merge: c0286f568069 4abbd783d126 Author: Greg Kroah-Hartman Date: Mon Apr 29 13:42:37 2019 +0200 Merge tag 'soundwire-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire into char-misc-next Vinod writes: soundwire updates for v5.2-rc1 This round saw interest from Intel, Linaro and Cadence in Soundwire. More patches are in pipeline (maybe next cycle) - removal of useless initialzation in core - couple of header and kcalloc inversion fixes on Intel driver * tag 'soundwire-5.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire: soundwire: intel: fix implicit header use of module.h/export.h soundwire: stream: remove useless initialization of local variable soundwire: remove useless initializations soundwire: intel: fix inversion in devm_kcalloc parameters commit 5f2c54e7153f2b30b7ee5c65ec5eb2b38a7b962d Author: Biju Das Date: Mon Apr 29 11:22:57 2019 +0100 dt-bindings: usb: renesas_usbhs: Add support for r8a77470 Document support for RZ/G1C (R8A77470) SoC. Signed-off-by: Biju Das Reviewed-by: Rob Herring Reviewed-by: Simon Horman Reviewed-by: Yoshihiro Shimoda Signed-off-by: Greg Kroah-Hartman commit 42c729418d9ce8f212ee691a8a91d93bfe9f34de Author: james qian wang (Arm Technology China) Date: Tue Jan 22 11:11:44 2019 +0000 drm/komeda: Add komeda_kms_check Implement komeda_kms_check to add all affected_planes (even unchanged) to drm_atomic_state. since komeda need to re-calculate the resources assumption in every commit. v2: Rebase Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit d29da5d8cd43e316bac8428c1b23a28016a1a9c4 Author: james qian wang (Arm Technology China) Date: Tue Jan 22 11:11:35 2019 +0000 drm/komeda: Add komeda_crtc_funcs Added functions: - komeda_crtc_reset - komeda_crtc_vblank_enable - komeda_crtc_vblank_disable Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit 98fe3f93a9ca58e937376074c6d3c680a1e54906 Author: james qian wang (Arm Technology China) Date: Tue Jan 22 11:11:25 2019 +0000 drm/komeda: Add komeda_crtc_vblank_enable/disable Add a new komeda_dev_func->on_off_vblank to enable/disable HW vblank event Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit b7925b61bd311015e48fdfc8983572d0009e3909 Author: james qian wang (Arm Technology China) Date: Tue Jan 22 11:11:16 2019 +0000 drm/komeda: Add komeda_crtc_atomic_enable/disable Pass enable/disable command to komeda and adjust komeda hardware for enable/disable a display instance. v2: Rebase Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit 20d84aa841791075edc07e0a7417cea443abe889 Author: james qian wang (Arm Technology China) Date: Tue Jan 22 11:11:07 2019 +0000 drm/komeda: Add komeda_crtc_prepare/unprepare These two function will be used by komeda_crtc_enable/disable to do some prepartion works when enable/disable a crtc. like enable a crtc: 1. Adjust display operation mode. 2. Enable/prepare needed clk. v2: Rebase Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit a2491b900d63e3d9774cb1f8baae2ee1fbb75651 Author: james qian wang (Arm Technology China) Date: Tue Jan 22 11:10:57 2019 +0000 drm/komeda: Add komeda_crtc_mode_valid/fixup komeda_crtc_mode_valid compares the input mode->clk with main engine clk and AXI clk, and reject the mode if the required pixel clk can not be satisfied by main engine clk and AXI-clk. Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit 59dd6d58a5332daa7af9a4c14defe0a80a9e195d Author: james qian wang (Arm Technology China) Date: Tue Jan 22 11:10:48 2019 +0000 drm/komeda: Add komeda_crtc_atomic_flush A komeda flush is comprised two steps: 1. update pipeline/component state to HW. 2. call dev_func->flush to notify HW to kickoff the update. Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit 552b831cd5e1d8ee0cf71e8af08734ef2b5aa7e4 Author: james qian wang (Arm Technology China) Date: Tue Jan 22 11:10:39 2019 +0000 drm/komeda: Add komeda_release_unclaimed_resources Komeda driver treats KMS-CRTC/PLANE as user which will acquire pipeline resources, but we still need to release the unclaimed resources. crtc_atomic_check is the final check stage, so beside build a display data pipeline according the crtc_state, but still needs to release/disable the unclaimed pipeline resources. v2: Rebase Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit c3015342b3f9aee7ca3ee7c7d61b0eb094488a09 Author: james qian wang (Arm Technology China) Date: Tue Jan 22 11:10:30 2019 +0000 drm/komeda: Add komeda_build_display_data_flow This function builds a display output pipeline according to crtc_state. And this change only added single pipeline support, the dual pipeline with slave enabled data flow support will be added in the following change. v2: Rebase Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit 9e560309417638507398fd6239e04f47cc907f70 Author: james qian wang (Arm Technology China) Date: Tue Jan 22 11:06:22 2019 +0000 drm/komeda: Add komeda_plane/plane_helper_funcs Per komeda design KMS-plane maps to komeda layer input pipeline. komeda_plane_atomic_check is for building a komeda layer input pipeline. And KMS-plane is only a user of komeda resources. so there is no real HW update for plane, but all HW update will be handled in crtc->flush. v2: Rebase Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit 11bb22ee77575e4c5beff48233fdf91ba839c8b6 Author: james qian wang (Arm Technology China) Date: Tue Jan 22 11:06:12 2019 +0000 drm/komeda: Add komeda_build_layer_data_flow build_layer_data_flow builds a input pipeline according to plane_state. and in this initial stage only added this simplest pipeline usage: Layer -> compiz The scaler and layer_split will be added in the future. v2: - Rebase. - Introduce struct komeda_data_flow_cfg - Add a function komeda_component_validate_private to replace the MACRO component_validate_private Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit ee6b73d6b09d23e83be0605ff6467ade09077439 Author: james qian wang (Arm Technology China) Date: Tue Jan 22 11:06:01 2019 +0000 drm/komeda: Initialize komeda component as drm private object Initialize koemda_layer, komeda_compiz, komeda_improc and komeda_timing_ctrlr as drm private object, then track komeda private component state by drm_atomic_state. v2: - Update code after Applied commit: b962a12050a3 ("drm/atomic: integrate modeset lock with private objects") Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit 8d537d3bcb35b159daa2dc0bbe7b46e461c932dd Author: james qian wang (Arm Technology China) Date: Tue Jan 22 11:05:51 2019 +0000 drm/komeda: Add komeda_pipeline/component_get_state_and_set_user get_state_and_set_user packed get_state and set_user into one function, which get pipeline/component state for a specific pipeline/component, if success set the user to it. v2: - Rebase. - Applied commit: b962a12050a3 ("drm/atomic: integrate modeset lock with private objects") And delete our private modeset lock for pipeline. Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit 9801a7eadf4cc29cdc90583a49f12decbb832ced Author: james qian wang (Arm Technology China) Date: Tue Jan 22 11:05:41 2019 +0000 drm: Add drm_atomic_get_old/new_private_obj_state This pair of functions return the old/new private object state for the given private_obj, or NULL if the private_obj is not part of the global atomic state. Reviewed-by: Alexandru Gheorghe Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit ce9d3eceb7ffb74445a8d892ca0685395a93a7e2 Author: YueHaibing Date: Sat Apr 27 00:46:30 2019 +0800 lib/vsprintf: Make function pointer_string static Fix sparse warning: lib/vsprintf.c:673:6: warning: symbol 'pointer_string' was not declared. Should it be static? Link: http://lkml.kernel.org/r/20190426164630.22104-1-yuehaibing@huawei.com To: To: To: To: Signed-off-by: YueHaibing Signed-off-by: Petr Mladek commit 3599fe12a125fa7118da2bcc5033d7741fb5f3a1 Author: Thomas Gleixner Date: Thu Apr 25 11:45:22 2019 +0200 x86/stacktrace: Use common infrastructure Replace the stack_trace_save*() functions with the new arch_stack_walk() interfaces. Signed-off-by: Thomas Gleixner Reviewed-by: Josh Poimboeuf Cc: Andy Lutomirski Cc: linux-arch@vger.kernel.org Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Link: https://lkml.kernel.org/r/20190425094803.816485461@linutronix.de commit 214d8ca6ee854f696f75e75511fe66b409e656db Author: Thomas Gleixner Date: Thu Apr 25 11:45:21 2019 +0200 stacktrace: Provide common infrastructure All architectures which support stacktrace carry duplicated code and do the stack storage and filtering at the architecture side. Provide a consolidated interface with a callback function for consuming the stack entries provided by the architecture specific stack walker. This removes lots of duplicated code and allows to implement better filtering than 'skip number of entries' in the future without touching any architecture specific code. Signed-off-by: Thomas Gleixner Reviewed-by: Josh Poimboeuf Cc: Andy Lutomirski Cc: linux-arch@vger.kernel.org Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Link: https://lkml.kernel.org/r/20190425094803.713568606@linutronix.de commit 56d8f079c51afc8b564b9fb0252d48e7b437c1e5 Author: Thomas Gleixner Date: Thu Apr 25 11:45:20 2019 +0200 lib/stackdepot: Remove obsolete functions No more users of the struct stack_trace based interfaces. Signed-off-by: Thomas Gleixner Reviewed-by: Josh Poimboeuf Acked-by: Alexander Potapenko Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094803.617937448@linutronix.de commit 988ec8841ca1e22b2978fce0134d8267e838770e Author: Thomas Gleixner Date: Thu Apr 25 11:45:19 2019 +0200 stacktrace: Remove obsolete functions No more users of the struct stack_trace based interfaces. Remove them. Remove the macro stubs for !CONFIG_STACKTRACE as well as they are pointless because the storage on the call sites is conditional on CONFIG_STACKTRACE already. No point to be 'smart'. Signed-off-by: Thomas Gleixner Reviewed-by: Josh Poimboeuf Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094803.524796783@linutronix.de commit 25e39e32b0a3f99b9db320605f20f91d425b6a65 Author: Thomas Gleixner Date: Thu Apr 25 11:45:18 2019 +0200 livepatch: Simplify stack trace retrieval Replace the indirection through struct stack_trace by using the storage array based interfaces. Signed-off-by: Thomas Gleixner Reviewed-by: Josh Poimboeuf Acked-by: Miroslav Benes Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094803.437950229@linutronix.de commit 9f50c91b1195dfffd183d5d8505e45af86623532 Author: Thomas Gleixner Date: Thu Apr 25 11:45:17 2019 +0200 tracing: Remove the last struct stack_trace usage Simplify the stack retrieval code by using the storage array based interface. Signed-off-by: Thomas Gleixner Reviewed-by: Steven Rostedt (VMware) Reviewed-by: Josh Poimboeuf Cc: Andy Lutomirski Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094803.340000461@linutronix.de commit ee6dd0db4d8de41a0a0bc37d8d87a0b1623f83b0 Author: Thomas Gleixner Date: Thu Apr 25 11:45:16 2019 +0200 tracing: Simplify stack trace retrieval Replace the indirection through struct stack_trace by using the storage array based interfaces. Signed-off-by: Thomas Gleixner Reviewed-by: Steven Rostedt (VMware) Reviewed-by: Josh Poimboeuf Cc: Andy Lutomirski Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094803.248604594@linutronix.de commit c438f140cc16d47fac808d893f5017f6d641cb46 Author: Thomas Gleixner Date: Thu Apr 25 11:45:15 2019 +0200 tracing: Make ftrace_trace_userstack() static and conditional It's only used in trace.c and there is absolutely no point in compiling it in when user space stack traces are not supported. Signed-off-by: Thomas Gleixner Reviewed-by: Steven Rostedt Reviewed-by: Josh Poimboeuf Cc: Andy Lutomirski Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094803.162400595@linutronix.de commit 2a820bf74918d61ea54f7c1001f4a6a2e457577c Author: Thomas Gleixner Date: Thu Apr 25 11:45:14 2019 +0200 tracing: Use percpu stack trace buffer more intelligently The per cpu stack trace buffer usage pattern is odd at best. The buffer has place for 512 stack trace entries on 64-bit and 1024 on 32-bit. When interrupts or exceptions nest after the per cpu buffer was acquired the stacktrace length is hardcoded to 8 entries. 512/1024 stack trace entries in kernel stacks are unrealistic so the buffer is a complete waste. Split the buffer into 4 nest levels, which are 128/256 entries per level. This allows nesting contexts (interrupts, exceptions) to utilize the cpu buffer for stack retrieval and avoids the fixed length allocation along with the conditional execution pathes. Signed-off-by: Thomas Gleixner Reviewed-by: Josh Poimboeuf Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094803.066064076@linutronix.de commit e7d916632b528e8cccc8e9ccca81acfc591a5fde Author: Thomas Gleixner Date: Thu Apr 25 11:45:13 2019 +0200 tracing: Simplify stacktrace retrieval in histograms The indirection through struct stack_trace is not necessary at all. Use the storage array based interface. Signed-off-by: Thomas Gleixner Tested-by: Tom Zanussi Reviewed-by: Tom Zanussi Reviewed-by: Josh Poimboeuf Acked-by: Steven Rostedt (VMware) Cc: Andy Lutomirski Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094802.979089273@linutronix.de commit c120bce78065cbea460a58b1572c215db9c148ba Author: Thomas Gleixner Date: Thu Apr 25 11:45:12 2019 +0200 lockdep: Simplify stack trace handling Replace the indirection through struct stack_trace by using the storage array based interfaces and storing the information is a small lockdep specific data structure. Signed-off-by: Thomas Gleixner Reviewed-by: Josh Poimboeuf Acked-by: Peter Zijlstra (Intel) Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094802.891724020@linutronix.de commit 76b14436b4d98903fef723365170bedd6f28ab2c Author: Thomas Gleixner Date: Thu Apr 25 11:45:11 2019 +0200 lockdep: Remove save argument from check_prev_add() There is only one caller which hands in save_trace as function pointer. Signed-off-by: Thomas Gleixner Reviewed-by: Josh Poimboeuf Acked-by: Peter Zijlstra (Intel) Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094802.803362058@linutronix.de commit b1abe4622d4cc32b3b37cfefbc7ac070a8f868e0 Author: Thomas Gleixner Date: Thu Apr 25 11:45:10 2019 +0200 lockdep: Remove unused trace argument from print_circular_bug() Signed-off-by: Thomas Gleixner Reviewed-by: Josh Poimboeuf Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094802.716274532@linutronix.de commit 487f3c7fb1a07ceff78bb18688eb8538a4775227 Author: Thomas Gleixner Date: Thu Apr 25 11:45:09 2019 +0200 drm: Simplify stacktrace handling Replace the indirection through struct stack_trace by using the storage array based interfaces. The original code in all printing functions is really wrong. It allocates a storage array on stack which is unused because depot_fetch_stack() does not store anything in it. It overwrites the entries pointer in the stack_trace struct so it points to the depot storage. Signed-off-by: Thomas Gleixner Reviewed-by: Josh Poimboeuf Acked-by: Daniel Vetter Cc: Andy Lutomirski Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094802.622094226@linutronix.de commit be9c52ed84eb0949fed3d4140e35ea70eecb02a2 Author: Thomas Gleixner Date: Thu Apr 25 11:45:08 2019 +0200 dm persistent data: Simplify stack trace handling Replace the indirection through struct stack_trace with an invocation of the storage array based interface. This results in less storage space and indirection. Signed-off-by: Thomas Gleixner Reviewed-by: Josh Poimboeuf Cc: Andy Lutomirski Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094802.533968922@linutronix.de commit 741b58f3e23673a666c700361711a91022a69e56 Author: Thomas Gleixner Date: Thu Apr 25 11:45:07 2019 +0200 dm bufio: Simplify stack trace retrieval Replace the indirection through struct stack_trace with an invocation of the storage array based interface. Signed-off-by: Thomas Gleixner Reviewed-by: Josh Poimboeuf Cc: Andy Lutomirski Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094802.446326191@linutronix.de commit 6924f5feba21ea2bba64b4dc316ee046c48355ca Author: Thomas Gleixner Date: Thu Apr 25 11:45:06 2019 +0200 btrfs: ref-verify: Simplify stack trace retrieval Replace the indirection through struct stack_trace with an invocation of the storage array based interface. Signed-off-by: Thomas Gleixner Reviewed-by: Johannes Thumshirn Reviewed-by: Josh Poimboeuf Acked-by: David Sterba Cc: Andy Lutomirski Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094802.338890064@linutronix.de commit 746017ed8d4d3c2070bb03aee9536f24da43c778 Author: Thomas Gleixner Date: Thu Apr 25 11:45:05 2019 +0200 dma/debug: Simplify stracktrace retrieval Replace the indirection through struct stack_trace with an invocation of the storage array based interface. Signed-off-by: Thomas Gleixner Reviewed-by: Christoph Hellwig Reviewed-by: Josh Poimboeuf Cc: Andy Lutomirski Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094802.248658135@linutronix.de commit 30191250c2b3ef772cc6125e1c31ac84123f1d20 Author: Thomas Gleixner Date: Thu Apr 25 11:45:04 2019 +0200 fault-inject: Simplify stacktrace retrieval Replace the indirection through struct stack_trace with an invocation of the storage array based interface. Signed-off-by: Thomas Gleixner Reviewed-by: Josh Poimboeuf Cc: Andy Lutomirski Cc: Akinobu Mita Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094802.158306076@linutronix.de commit af52bf6b92f7d8783c1e712cad6ef7d37cd773b2 Author: Thomas Gleixner Date: Thu Apr 25 11:45:03 2019 +0200 mm/page_owner: Simplify stack trace handling Replace the indirection through struct stack_trace by using the storage array based interfaces. The original code in all printing functions is really wrong. It allocates a storage array on stack which is unused because depot_fetch_stack() does not store anything in it. It overwrites the entries pointer in the stack_trace struct so it points to the depot storage. Signed-off-by: Thomas Gleixner Reviewed-by: Josh Poimboeuf Cc: Andy Lutomirski Cc: linux-mm@kvack.org Cc: Mike Rapoport Cc: David Rientjes Cc: Andrew Morton Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Christoph Lameter Cc: Pekka Enberg Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094802.067210525@linutronix.de commit 880e049c9ce9020384ce305c71375aa1cb54addb Author: Thomas Gleixner Date: Thu Apr 25 11:45:02 2019 +0200 mm/kasan: Simplify stacktrace handling Replace the indirection through struct stack_trace by using the storage array based interfaces. Signed-off-by: Thomas Gleixner Reviewed-by: Josh Poimboeuf Acked-by: Dmitry Vyukov Acked-by: Andrey Ryabinin Cc: Andy Lutomirski Cc: Alexander Potapenko Cc: kasan-dev@googlegroups.com Cc: linux-mm@kvack.org Cc: Steven Rostedt Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Catalin Marinas Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094801.963261479@linutronix.de commit 07984aad1c7ed679596f849c0e7d5e029f76e0eb Author: Thomas Gleixner Date: Thu Apr 25 11:45:01 2019 +0200 mm/kmemleak: Simplify stacktrace handling Replace the indirection through struct stack_trace by using the storage array based interfaces. Signed-off-by: Thomas Gleixner Reviewed-by: Josh Poimboeuf Acked-by: Catalin Marinas Cc: Andy Lutomirski Cc: linux-mm@kvack.org Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: David Rientjes Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094801.863716911@linutronix.de commit 7971679994d3a239538ddcfea9f89468f0bd65e2 Author: Thomas Gleixner Date: Thu Apr 25 11:45:00 2019 +0200 mm/slub: Simplify stack trace retrieval Replace the indirection through struct stack_trace with an invocation of the storage array based interface. Signed-off-by: Thomas Gleixner Reviewed-by: Josh Poimboeuf Acked-by: Christoph Lameter Cc: Andy Lutomirski Cc: Andrew Morton Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094801.771410441@linutronix.de commit f93877214a83e88373b20801c2d671923d03d07d Author: Thomas Gleixner Date: Thu Apr 25 11:44:59 2019 +0200 latency_top: Simplify stack trace handling Replace the indirection through struct stack_trace with an invocation of the storage array based interface. Signed-off-by: Thomas Gleixner Reviewed-by: Josh Poimboeuf Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094801.683039030@linutronix.de commit e988e5ec18d6081efbef645fc2690298ee23a8db Author: Thomas Gleixner Date: Thu Apr 25 11:44:58 2019 +0200 proc: Simplify task stack retrieval Replace the indirection through struct stack_trace with an invocation of the storage array based interface. Signed-off-by: Thomas Gleixner Reviewed-by: Alexey Dobriyan Reviewed-by: Josh Poimboeuf Cc: Andy Lutomirski Cc: Andrew Morton Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094801.589304463@linutronix.de commit 1b59562d3ab09dcef188eb8055d05f0336380394 Author: Thomas Gleixner Date: Thu Apr 25 11:44:57 2019 +0200 backtrace-test: Simplify stack trace handling Replace the indirection through struct stack_trace by using the storage array based interfaces. Signed-off-by: Thomas Gleixner Reviewed-by: Josh Poimboeuf Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094801.501919093@linutronix.de commit c0cfc337264c5e02e0bc79de6b62857999588879 Author: Thomas Gleixner Date: Thu Apr 25 11:44:56 2019 +0200 lib/stackdepot: Provide functions which operate on plain storage arrays The struct stack_trace indirection in the stack depot functions is a truly pointless excercise which requires horrible code at the callsites. Provide interfaces based on plain storage arrays. Signed-off-by: Thomas Gleixner Reviewed-by: Josh Poimboeuf Acked-by: Alexander Potapenko Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094801.414574828@linutronix.de commit e9b98e162aa53cbea7c8b0d6c9d5dc6e0f822b9c Author: Thomas Gleixner Date: Thu Apr 25 11:44:55 2019 +0200 stacktrace: Provide helpers for common stack trace operations All operations with stack traces are based on struct stack_trace. That's a horrible construct as the struct is a kitchen sink for input and output. Quite some usage sites embed it into their own data structures which creates weird indirections. There is absolutely no point in doing so. For all use cases a storage array and the number of valid stack trace entries in the array is sufficient. Provide helper functions which avoid the struct stack_trace indirection so the usage sites can be cleaned up. Signed-off-by: Thomas Gleixner Reviewed-by: Josh Poimboeuf Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094801.324810708@linutronix.de commit 3d9a8072915366b5932beeed97f158f8d4955768 Author: Thomas Gleixner Date: Thu Apr 25 11:44:54 2019 +0200 tracing: Cleanup stack trace code - Remove the extra array member of stack_dump_trace[] along with the ARRAY_SIZE - 1 initialization for struct stack_trace :: max_entries. Both are historical leftovers of no value. The stack tracer never exceeds the array and there is no extra storage requirement either. - Make variables which are only used in trace_stack.c static. - Simplify the enable/disable logic. - Rename stack_trace_print() as it's using the stack_trace_ namespace. Free the name up for stack trace related functions. Signed-off-by: Thomas Gleixner Reviewed-by: Steven Rostedt Reviewed-by: Josh Poimboeuf Cc: Andy Lutomirski Cc: Alexander Potapenko Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Christoph Lameter Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Catalin Marinas Cc: Dmitry Vyukov Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: Mike Rapoport Cc: Akinobu Mita Cc: Christoph Hellwig Cc: iommu@lists.linux-foundation.org Cc: Robin Murphy Cc: Marek Szyprowski Cc: Johannes Thumshirn Cc: David Sterba Cc: Chris Mason Cc: Josef Bacik Cc: linux-btrfs@vger.kernel.org Cc: dm-devel@redhat.com Cc: Mike Snitzer Cc: Alasdair Kergon Cc: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Rodrigo Vivi Cc: Tom Zanussi Cc: Miroslav Benes Cc: linux-arch@vger.kernel.org Link: https://lkml.kernel.org/r/20190425094801.230654524@linutronix.de commit 42c38d4a1bc41e78dedbf73b0fb35e44007789bb Author: Pavel Machek Date: Tue Apr 16 09:58:45 2019 +0200 mmc: core: Fix warning and undefined behavior in mmc voltage handling !voltage_ranges is tested for too late, allowing warning and undefined behavior. Fix that. Signed-off-by: Pavel Machek Signed-off-by: Ulf Hansson commit 4c94cb651f478e0b53f10b77033b91a5c7702740 Author: Yoshihiro Shimoda Date: Tue Apr 9 20:05:06 2019 +0900 mmc: core: retry CMD1 in mmc_send_op_cond() even if the ocr = 0 According to eMMC specification v5.1 section 6.4.3, we should issue CMD1 repeatedly in the idle state until the eMMC is ready even if the mmc_attach_mmc() calls this function with ocr = 0. Otherwise some eMMC devices seems to enter the inactive mode after mmc_init_card() issued CMD0 when the eMMC device is busy. Signed-off-by: Yoshihiro Shimoda Reviewed-by: Wolfram Sang Signed-off-by: Ulf Hansson commit 8db82563451f976597ab7b282ec655e4390a4088 Author: Gregory CLEMENT Date: Fri Mar 8 17:47:10 2019 +0100 cpufreq: armada-37xx: fix frequency calculation for opp The frequency calculation was based on the current(max) frequency of the CPU. However for low frequency, the value used was already the parent frequency divided by a factor of 2. Instead of using this frequency, this fix directly get the frequency from the parent clock. Fixes: 92ce45fb875d ("cpufreq: Add DVFS support for Armada 37xx") Cc: Reported-by: Christian Neubert Signed-off-by: Gregory CLEMENT Signed-off-by: Viresh Kumar commit 6fee3787ea7aebf25fecdce325ee9b2150c5727b Author: Fabrizio Castro Date: Mon Apr 29 09:51:24 2019 +0100 dt-bindings: usb-xhci: Add r8a774c0 support Document RZ/G2E (R8A774C0) SoC bindings. Signed-off-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Reviewed-by: Simon Horman Reviewed-by: Rob Herring Signed-off-by: Greg Kroah-Hartman commit 7a5da02de8d6eafba99556f8c98e5313edebb449 Author: Gerald Schaefer Date: Thu Apr 18 16:24:50 2019 +0200 locking/lockdep: check for freed initmem in static_obj() The following warning occurred on s390: WARNING: CPU: 0 PID: 804 at kernel/locking/lockdep.c:1025 lockdep_register_key+0x30/0x150 This is because the check in static_obj() assumes that all memory within [_stext, _end] belongs to static objects, which at least for s390 isn't true. The init section is also part of this range, and freeing it allows the buddy allocator to allocate memory from it. We have virt == phys for the kernel on s390, so that such allocations would then have addresses within the range [_stext, _end]. To fix this, introduce arch_is_kernel_initmem_freed(), similar to arch_is_kernel_text/data(), and add it to the checks in static_obj(). This will always return 0 on architectures that do not define arch_is_kernel_initmem_freed. On s390, it will return 1 if initmem has been freed and the address is in the range [__init_begin, __init_end]. Signed-off-by: Gerald Schaefer Reviewed-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit b2d24b97b2a9691351920e700bfda4368c177232 Author: Gerald Schaefer Date: Sun Feb 3 21:37:20 2019 +0100 s390/kernel: add support for kernel address space layout randomization (KASLR) This patch adds support for relocating the kernel to a random address. The random kernel offset is obtained from cpacf, using either TRNG, PRNO, or KMC_PRNG, depending on supported MSA level. KERNELOFFSET is added to vmcoreinfo, for crash --kaslr support. Signed-off-by: Gerald Schaefer Reviewed-by: Philipp Rudo Signed-off-by: Martin Schwidefsky commit a80313ff91abda67641dc33bed97f6bcc5e9f6a4 Author: Gerald Schaefer Date: Sun Feb 3 21:37:20 2019 +0100 s390/kernel: introduce .dma sections With a relocatable kernel that could reside at any place in memory, code and data that has to stay below 2 GB needs special handling. This patch introduces .dma sections for such text, data and ex_table. The sections will be part of the decompressor kernel, so they will not be relocated and stay below 2 GB. Their location is passed over to the decompressed / relocated kernel via the .boot.preserved.data section. The duald and aste for control register setup also need to stay below 2 GB, so move the setup code from arch/s390/kernel/head64.S to arch/s390/boot/head.S. The duct and linkage_stack could reside above 2 GB, but their content has to be preserved for the decompresed kernel, so they are also moved into the .dma section. The start and end address of the .dma sections is added to vmcoreinfo, for crash support, to help debugging in case the kernel crashed there. Signed-off-by: Gerald Schaefer Reviewed-by: Philipp Rudo Signed-off-by: Martin Schwidefsky commit 087c4d7423989b110c3312592db05acc009a5d58 Author: Gerald Schaefer Date: Mon Apr 8 12:49:58 2019 +0200 s390/sclp: do not use static sccbs The sccbs for init/read/sdias/early have to be located below 2 GB, and they are currently defined as a static buffer. With a relocatable kernel that could reside at any place in memory, this will no longer guarantee the location below 2 GB, so use a dynamic GFP_DMA allocation instead. The sclp_early_sccb buffer needs special handling, as it can be used very early, and by both the decompressor and also the decompressed kernel. Therefore, a fixed 4 KB buffer is introduced at 0x11000, the former PARMAREA_END. The new PARMAREA_END is now 0x12000, and it is renamed to HEAD_END, as it is rather the end of head.S and not the end of the parmarea. Signed-off-by: Gerald Schaefer Reviewed-by: Philipp Rudo Signed-off-by: Martin Schwidefsky commit fd3d2742d558d33560ec5dfee3001e561b5c0822 Author: Gerald Schaefer Date: Sun Feb 3 21:36:46 2019 +0100 s390/kprobes: use static buffer for insn_page With a relocatable kernel that could reside at any place in memory, the current logic for allocating a kprobes insn_page does not work. The GFP_DMA allocated buffer might be more than 2 GB away from the kernel. Use a static buffer for the insn_page instead. Signed-off-by: Gerald Schaefer Reviewed-by: Philipp Rudo Signed-off-by: Martin Schwidefsky commit ff4a742dde3c4b80a91cdd754fed3bc576df28c9 Author: Gerald Schaefer Date: Sun Feb 3 21:36:13 2019 +0100 s390/kernel: convert SYSCALL and PGM_CHECK handlers to .quad With a relocatable kernel that could reside at any place in memory, the storage size for the SYSCALL and PGM_CHECK handlers needs to be increased from .long to .quad. Signed-off-by: Gerald Schaefer Reviewed-by: Philipp Rudo Signed-off-by: Martin Schwidefsky commit 805bc0bc238f7209fca5e39c152b0d3c12046ac9 Author: Gerald Schaefer Date: Sun Feb 3 21:35:45 2019 +0100 s390/kernel: build a relocatable kernel This patch adds support for building a relocatable kernel with -fPIE. The kernel will be relocated to 0 early in the boot process. Signed-off-by: Gerald Schaefer Reviewed-by: Philipp Rudo Signed-off-by: Martin Schwidefsky commit 833b441ec0f6f3c57cc2106ef628bb19d8fb0ee2 Author: Sebastian Ott Date: Tue Apr 23 13:14:28 2019 +0200 s390: enable processes for mio instructions Allow for userspace to use PCI MIO instructions. Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky commit 56271303808fb86375ec33183d56c21fdeb836ea Author: Sebastian Ott Date: Thu Apr 18 21:39:06 2019 +0200 s390/pci: add parameter to disable usage of MIO instructions Allow users to disable usage of MIO instructions by specifying pci=nomio at the kernel command line. Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky commit 71ba41c9b1d91042960e9d92a5c8f52dc8531eda Author: Sebastian Ott Date: Sun Apr 14 15:38:01 2019 +0200 s390/pci: provide support for MIO instructions Provide support for PCI I/O instructions that work on mapped IO addresses. Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky commit c475f1770a5e062652a6a877afcbd4e22b18039f Author: Sebastian Ott Date: Tue Apr 23 11:57:46 2019 +0200 s390/ism: move oddities of device IO to wrapper function ISM devices are special in how they access PCI memory space. Provide wrappers for handling commands to the device. No functional change. Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky commit 81deca12c202aa240a28f561a161ac3387a985db Author: Sebastian Ott Date: Sun Apr 14 16:25:54 2019 +0200 s390/pci: move io address mapping code to pci_insn.c This is a preparation patch for usage of new pci instructions. No functional change. Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky commit fbfe07d440f2c55070a0358f66560bb4f9fb92e7 Author: Sebastian Ott Date: Tue Feb 26 16:07:32 2019 +0100 s390/pci: add parameter to force floating irqs Provide a kernel parameter to force the usage of floating interrupts. Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky commit 07e3ec3acb80726f60b7ab924b1b0f1498148b56 Author: Sebastian Ott Date: Thu Nov 22 14:08:33 2018 +0100 s390/pci: gather statistics for floating vs directed irqs Gather statistics to distinguish floating and directed interrupts. Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky commit 914b7dd07ee8713c69c31ddb3e19a76852a846ac Author: Sebastian Ott Date: Tue Feb 14 18:13:09 2017 +0100 s390: show statistics for MSI IRQs Improve /proc/interrupts on s390 to show statistics for individual MSI interrupts. Signed-off-by: Sebastian Ott Acked-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit e979ce7bced2ee019b5b1a040295484bd7f23680 Author: Sebastian Ott Date: Thu Sep 27 13:57:12 2018 +0200 s390/pci: provide support for CPU directed interrupts Up until now all interrupts on s390 have been floating. For MSI interrupts we've used a global summary bit vector (with a bit for each function) and a per-function interrupt bit vector (with a bit per MSI). This patch introduces a new IRQ delivery mode: CPU directed interrupts. In this new mode a per-CPU interrupt bit vector is used (with a bit per MSI per function). Further it is now possible to direct an IRQ to a specific CPU so we can finally support IRQ affinity. If an interrupt can't be delivered because the appointed CPU is occupied by a hypervisor the interrupt is delivered floating. For this a global summary bit vector is used (with a bit per CPU). Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky commit 414cbd1e3d14ec0e60666a0fb9d8ae2d77eb7c63 Author: Sebastian Ott Date: Wed Feb 27 13:56:08 2019 +0100 s390/airq: provide cacheline aligned ivs Provide the ability to create cachesize aligned interrupt vectors. These will be used for per-CPU interrupt vectors. Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky commit b1f548645cb587c14f5e751b9163939d0723885f Author: Sebastian Ott Date: Thu Feb 14 12:56:50 2019 +0100 s390/pci: clarify interrupt vector usage Rename and clarify the usage of the interrupt bit vectors. Also change the array of the per-function bit vectors to be dynamically allocated. Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky commit 30e63ef2ef43f014bf2039bd57cc917780d6a44b Author: Sebastian Ott Date: Sun Oct 28 11:51:56 2018 +0100 s390/airq: recognize directed interrupts Add an extra parameter for airq handlers to recognize floating vs. directed interrupts. Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky commit 0a9fddfaa8ea0f66564329ce89390c8dd38b2df0 Author: Sebastian Ott Date: Tue Feb 12 12:37:50 2019 +0100 s390/sclp: detect DIRQ facility Detect the adapter CPU directed interruption facility. Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky commit c840927cf5f24d080236775e4c3a934e778069f5 Author: Sebastian Ott Date: Tue Feb 12 18:39:46 2019 +0100 s390/pci: move everything irq related to pci_irq.c Move everything interrupt related from pci.c to pci_irq.c. No functional change. Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky commit 066ee72aecdcb8cb2fd5968c852f304d7b88e2be Author: Sebastian Ott Date: Tue Feb 12 18:41:49 2019 +0100 s390/pci: remove unused define No users of pr_debug in that file. Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky commit 6324b4de6dca40361399d3e9a2f2f1cbe8e7e11e Author: Sebastian Ott Date: Tue Feb 12 16:23:13 2019 +0100 s390/pci: mark command line parser data __initdata No point to keep that around. Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky commit c9896acc7851109d4e84c1e3a54cb1b9794dea6b Author: Philipp Rudo Date: Mon Apr 8 14:24:08 2019 +0200 s390/ipl: Provide has_secure sysfs attribute Provide an interface for userspace so it can find out if a machine is capeable of doing secure boot. The interface is, for example, needed for zipl so it can find out which file format it can/should write to disk. Signed-off-by: Philipp Rudo Signed-off-by: Martin Schwidefsky commit 268a78404973594d1a7ec3a2b6a2474e0543a435 Author: Philipp Rudo Date: Tue Mar 26 15:45:53 2019 +0100 s390/kexec_file: Disable kexec_load when IPLed secure A kernel loaded via kexec_load cannot be verified. Thus disable kexec_load systemcall in kernels which where IPLed securely. Use the IMA mechanism to do so. Signed-off-by: Philipp Rudo Signed-off-by: Martin Schwidefsky commit 99feaa717e558cf4f2ad0faf53acac3cf9cc7438 Author: Philipp Rudo Date: Mon Mar 18 12:53:47 2019 +0100 s390/kexec_file: Create ipl report and pass to next kernel Signed-off-by: Philipp Rudo Signed-off-by: Martin Schwidefsky commit e23a8020ce4e094e10d717d39a8ce799243bf8c1 Author: Philipp Rudo Date: Tue Feb 26 10:50:39 2019 +0100 s390/kexec_file: Signature verification prototype Add kernel signature verification to kexec_file. The verification is based on module signature verification and works with kernel images signed via scripts/sign-file. Signed-off-by: Philipp Rudo Signed-off-by: Martin Schwidefsky commit 653beba24d4cd281b078eab48c9bce956939061c Author: Philipp Rudo Date: Thu Mar 7 15:56:34 2019 +0100 s390/kexec_file: Load new kernel to absolute 0 The leading 64 kB of a kernel image doesn't contain any data needed to boot the new kernel when it was loaded via kexec_file. Thus kexec_file currently strips them off before loading the image. Keep the leading 64 kB in order to be able to pass a ipl_report to the next kernel. Signed-off-by: Philipp Rudo Signed-off-by: Martin Schwidefsky commit 8e4964261374aaec9f4a83de076ceb11c8cdc044 Author: Philipp Rudo Date: Thu Mar 7 12:48:03 2019 +0100 s390/kexec_file: Unify loader code s390_image_load and s390_elf_load have the same code to load the different components. Combine this functionality in one shared function. While at it move kexec_file_update_kernel into the new function as well. Signed-off-by: Philipp Rudo Signed-off-by: Martin Schwidefsky commit d0d249d75dda1b101624316a52d117be07b8ccff Author: Philipp Rudo Date: Wed Mar 6 17:36:26 2019 +0100 s390/kexec_file: Simplify parmarea access Access the parmarea in head.S via a struct instead of individual offsets. While at it make the fields in the parmarea .quads. Signed-off-by: Philipp Rudo Signed-off-by: Martin Schwidefsky commit 4c0f032d496385fa8071e404a1bc33f4abbc2f81 Author: Philipp Rudo Date: Tue Mar 5 18:08:36 2019 +0100 s390/purgatory: Omit use of bin2c Omit use of script/bin2c hack. Directly include into assembler file instead. Signed-off-by: Philipp Rudo Signed-off-by: Martin Schwidefsky commit 61f3f8fc223524692aaa87cf46d95ca3015e83a9 Author: Philipp Rudo Date: Tue Mar 5 17:18:13 2019 +0100 s390/purgatory: Reduce purgatory size The purgatory is compiled into the vmlinux and keept in memory all the time during runtime. Thus any section not needed to load the purgatory unnecessarily bloats up its foot print in file- and memorysize. Reduce the purgatory size by stripping the unneeded sections from the purgatory. This reduces the purgatories size by ~33%. Signed-off-by: Philipp Rudo Signed-off-by: Martin Schwidefsky commit 729829d775c9a5217abc784b2f16087d79c4eec8 Author: Philipp Rudo Date: Mon Apr 1 12:48:43 2019 +0200 s390/kexec_file: Fix detection of text segment in ELF loader To register data for the next kernel (command line, oldmem_base, etc.) the current kernel needs to find the ELF segment that contains head.S. This is currently done by checking ifor 'phdr->p_paddr == 0'. This works fine for the current kernel build but in theory the first few pages could be skipped. Make the detection more robust by checking if the entry point lies within the segment. Signed-off-by: Philipp Rudo Signed-off-by: Martin Schwidefsky commit 6339a3889ad4d0dd930ed7a1e873fb81d3e690f7 Author: Philipp Rudo Date: Mon Apr 1 12:13:42 2019 +0200 s390/kexec_file: Fix potential segment overlap in ELF loader When loading an ELF image via kexec_file the segment alignment is ignored in the calculation for the load address of the next segment. When there are multiple segments this can lead to segment overlap and thus load failure. Signed-off-by: Philipp Rudo Fixes: 8be018827154 ("s390/kexec_file: Add ELF loader") Signed-off-by: Martin Schwidefsky commit 75b0f8473fed6941e0ae01da082ec8b3d58adb9b Author: dongjian Date: Sun Apr 28 16:54:17 2019 +0800 cpufreq: centrino: Fix centrino_setpolicy() kerneldoc comment The code is using centrino_target() rather than centrino_setpolicy(). Signed-off-by: dongjian Acked-by: Viresh Kumar [ rjw: Subject ] Signed-off-by: Rafael J. Wysocki commit 712e9ad0a2bd03e6685e9154985129d3f90efb6f Author: Vabhav Sharma Date: Fri Apr 26 06:55:55 2019 +0000 cpufreq: qoriq: add support for lx2160a Enable support of NXP SoC lx2160a to handle the lx2160a SoC. Signed-off-by: Tang Yuantian Signed-off-by: Yogesh Gaur Signed-off-by: Vabhav Sharma Acked-by: Scott Wood Acked-by: Stephen Boyd Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki commit b60ee2e281b6c67cbe0bb8412f3cae53903173c6 Author: Bard liao Date: Sun Apr 28 04:53:40 2019 +0800 ASoC: hdac_hda: overwrite hdev type to HDA_DEV_ASOC In ASoC driver, snd_hdac_device_register() will be called by snd_hdac_ext_bus_device_init() and snd_hdac_device_unregister() will called by snd_hdac_ext_bus_device_remove(). However when ASoC codec driver call snd_hda_codec_device_new() to create a new hda codec, it will assign snd_hda_codec_dev_free() to the dev_free ops and snd_hda_codec_dev_free() will call snd_hdac_device_unregister(). As a result, snd_hdac_device_unregister() will be called twice in ASoC driver. To prevent it, we use hdev type to determine if the hda codec is registered by legacy HDA driver or ASoC driver and unregister device in snd_hda_codec_dev_free() only if it is a legacy HDA device. This patch will overwrite the hdev type so that we can know it is a ASoC device. Signed-off-by: Bard liao Signed-off-by: Takashi Iwai commit 4d95c51776b2edb4d4ebcea00b6e5a1fe538ce66 Author: Bard liao Date: Sun Apr 28 04:53:39 2019 +0800 ALSA: hda: fix unregister device twice on ASoC driver snd_hda_codec_device_new() is used by both legacy HDA and ASoC driver. However, we will call snd_hdac_device_unregister() in snd_hdac_ext_bus_device_remove() for ASoC device. This patch uses the type flag in hdac_device struct to determine is it a ASoC device or legacy HDA device and call snd_hdac_device_unregister() in snd_hda_codec_dev_free() only if it is a legacy HDA device. Signed-off-by: Bard liao Signed-off-by: Takashi Iwai commit b2d0371d2e374facd45e115d3668086df13730ff Author: Pierre Morel Date: Fri Apr 26 11:00:01 2019 +0200 KVM: s390: vsie: Return correct values for Invalid CRYCB format Let's use the correct validity number. Fixes: 56019f9aca22 ("KVM: s390: vsie: Allow CRYCB FORMAT-2") Signed-off-by: Pierre Morel Reviewed-by: Christian Borntraeger Message-Id: <1556269201-22918-1-git-send-email-pmorel@linux.ibm.com> Acked-by: David Hildenbrand Signed-off-by: Christian Borntraeger commit bcccb8f6a91b50fde008354fa8273dd14829dce2 Author: Pierre Morel Date: Fri Apr 26 10:56:50 2019 +0200 KVM: s390: vsie: Do not shadow CRYCB when no AP and no keys When the guest do not have AP instructions nor Key management we should return without shadowing the CRYCB. We did not check correctly in the past. Fixes: b10bd9a256ae ("s390: vsie: Use effective CRYCBD.31 to check CRYCBD validity") Fixes: 6ee74098201b ("KVM: s390: vsie: allow CRYCB FORMAT-0") Signed-off-by: Pierre Morel Reported-by: Christian Borntraeger Message-Id: <1556269010-22258-1-git-send-email-pmorel@linux.ibm.com> Acked-by: David Hildenbrand Tested-by: Christian Borntraeger Reviewed-by: Christian Borntraeger Signed-off-by: Christian Borntraeger commit 879a4e70f96a26a9368a3caed2f552aa67105852 Author: Ville Syrjälä Date: Thu Apr 25 22:24:19 2019 +0300 drm/i915: Fix ICL output CSC programming When I refactored the code into its own function I accidentally misplaced the <<16 shifts for some of the registers causing us to lose the blue channel entirely. We should really find a way to test this... Cc: Uma Shankar Fixes: d2c19b06d6ea ("drm/i915: Clean up ilk/icl pipe/output CSC programming") Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190425192419.24931-1-ville.syrjala@linux.intel.com Reviewed-by: Swati Sharma (cherry picked from commit d428ca17ea3d307c5a7f77cf24586584bf1c2d74) Signed-off-by: Joonas Lahtinen commit 149d35c72a145cc6183373687007cd78d167fd19 Merge: 3e0c0aee4571 bb1dca3a3900 Author: Olof Johansson Date: Sun Apr 28 23:44:20 2019 -0700 Merge tag 'amlogic-drivers-2' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into arm/drivers soc: amlogic: updates for v5.2, round 2 - VPU power domain: add supporg for G12A SoCs - socinfo: add new SoC and package IDS. * tag 'amlogic-drivers-2' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic: soc: amlogic: meson-gx-pwrc-vpu: Add support for G12A soc: amlogic: meson-gx-pwrc-vpu: Fix power on/off register bitmask Signed-off-by: Olof Johansson commit 1895ef4ef229ec1873a78ce31fe50b38cfd2b58a Merge: 6a508f98d95e 1fae0ad1e203 Author: Olof Johansson Date: Sun Apr 28 23:43:07 2019 -0700 Merge tag 'ixp4xx-for-armsoc' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik into arm/soc This modernizes the IXP4xx platform and adds initial Device Tree Support. We migrate to MULTI_IRQ_HANDLER, bumps the IRQs to offset 16, converts to SPARSE_IRQ, then we add proper subsystem drivers in each subsystem for irqchip, GPIO and clocksource and switch over to using these new drivers. Next we modernize the NPE and QMGR drivers and push them down into drivers/soc. This has been tested on the IXP4xx NSLU2 and the Gateworks GW2358-4. * tag 'ixp4xx-for-armsoc' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-nomadik: (31 commits) ARM: dts: Add queue manager and NPE to the IXP4xx DTSI soc: ixp4xx: qmgr: Add DT probe code soc: ixp4xx: qmgr: Add DT bindings for IXP4xx qmgr soc: ixp4xx: npe: Add DT probe code soc: ixp4xx: Add DT bindings for IXP4xx NPE soc: ixp4xx: qmgr: Pass resources soc: ixp4xx: Remove unused functions soc: ixp4xx: Uninline several functions soc: ixp4xx: npe: Pass addresses as resources ARM: ixp4xx: Turn the QMGR into a platform device ARM: ixp4xx: Turn the NPE into a platform device ARM: ixp4xx: Move IXP4xx QMGR and NPE headers ARM: ixp4xx: Move NPE and QMGR to drivers/soc ARM: dts: Add some initial IXP4xx device trees ARM: ixp4xx: Add device tree boot support ARM: ixp4xx: Add DT bindings gpio: ixp4xx: Add OF probing support gpio: ixp4xx: Add DT bindings clocksource/drivers/ixp4xx: Add OF initialization support clocksource/drivers/ixp4xx: Add DT bindings ... Signed-off-by: Olof Johansson commit 3e0c0aee4571980328b0e84dd119298b3511805e Merge: dd3e3f23387b 15160f6de0bb Author: Olof Johansson Date: Sun Apr 28 23:41:16 2019 -0700 Merge tag 'renesas-drivers-for-v5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into arm/drivers Renesas ARM Based SoC Drivers Updates for v5.2 * Identify R-Car M3-W ES1.3 * tag 'renesas-drivers-for-v5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: soc: renesas: Identify R-Car M3-W ES1.3 Signed-off-by: Olof Johansson commit 6a508f98d95e355a40064e23643756773f4092bd Merge: abfcba1c35b7 115bbc30c6d2 Author: Olof Johansson Date: Sun Apr 28 23:40:51 2019 -0700 Merge tag 'renesas-arm-soc-for-v5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into arm/soc Renesas ARM Based SoC Updates for v5.2 * Power Management - Fix a leaked reference by adding missing of_node_put * R-Car M2-W (R8A77910) based Porter board - Enable regulator quirk * tag 'renesas-arm-soc-for-v5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: fix a leaked reference by adding missing of_node_put ARM: shmobile: porter: enable R-Car Gen2 regulator quirk Signed-off-by: Olof Johansson commit eae7dae81e3a8b9806416d50190c52f46f6bd06d Merge: fe08dd9eeaa3 b266731b76d5 Author: Olof Johansson Date: Sun Apr 28 23:39:55 2019 -0700 Merge tag 'renesas-arm-defconfig-for-v5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into arm/defconfig Renesas ARM Based SoC Defconfig Updates for v5.2 shmobile and multi_v7 defconfigs * Enable support for CFI NOR FLASH shmobile defconfig * Enable USB [EO]HCI HCD PLATFORM and PHY_RCAR_GEN3_USB2 * Refresh for v5.1-rc1 * tag 'renesas-arm-defconfig-for-v5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: ARM: shmobile: Enable USB [EO]HCI HCD PLATFORM support in shmobile_defconfig ARM: shmobile: Enable PHY_RCAR_GEN3_USB2 in shmobile_defconfig ARM: multi_v7_defconfig: Enable support for CFI NOR FLASH ARM: shmobile: defconfig: Enable support for CFI NOR FLASH ARM: shmobile: defconfig: Refresh for v5.1-rc1 Signed-off-by: Olof Johansson commit fe08dd9eeaa309deaa3a78f0eaf88900caef1c2e Merge: 784baecf92e5 940d1a288a59 Author: Olof Johansson Date: Sun Apr 28 23:39:27 2019 -0700 Merge tag 'renesas-arm64-defconfig-for-v5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into arm/defconfig Renesas ARM64 Based SoC Defconfig Updates for v5.2 + Enable support for RX-8571/RX-8581 RTC * tag 'renesas-arm64-defconfig-for-v5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: arm64: defconfig: enable RX-8581 config option Signed-off-by: Olof Johansson commit 784baecf92e5b61952fd6606879db808c705105e Merge: 82b8118d0cd9 89232872319f Author: Olof Johansson Date: Sun Apr 28 23:38:12 2019 -0700 Merge tag 'sunxi-config64-for-5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into arm/defconfig Allwinner arm64 defconfig changes for 5.2 Just a single patch to enable our SPI controller on the arm64 defconfig. * tag 'sunxi-config64-for-5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: arm64: defconfig: Enable SPI_SUN6I Signed-off-by: Olof Johansson commit 82b8118d0cd949237aa26d90c9cde5cbc3fd0d31 Merge: 84260a4915be bd9ae25314f2 Author: Olof Johansson Date: Sun Apr 28 23:37:08 2019 -0700 Merge tag 'tegra-for-5.2-arm64-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/defconfig arm64: tegra: Default configuration updates for v5.2-rc1 These patches enable PWM fan and Tegra HDA support in the 64-bit ARM default configuration, so that these features are enabled by default. * tag 'tegra-for-5.2-arm64-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: arm64: defconfig: Add PWM Fan support arm64: defconfig: Enable Tegra HDA support Signed-off-by: Olof Johansson commit 84260a4915beca1fa2bb4493e9fdedfe4cbdae4a Merge: 7b3320e6b179 a6f3d883a6ef Author: Olof Johansson Date: Sun Apr 28 23:36:26 2019 -0700 Merge tag 'tegra-for-5.2-arm-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/defconfig ARM: tegra: Default configuration updates for v5.2-rc1 Enable Trusted Foundations support in the default configurations for Tegra and multi-v7. This is necessary because the symbol is no longer selected by default. * tag 'tegra-for-5.2-arm-defconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: ARM: Enable Trusted Foundations for multiplatform ARM v7 ARM: tegra: Enable Trusted Foundations by default ARM: tegra: Update default configuration for v5.1-rc1 Signed-off-by: Olof Johansson commit dd3e3f23387b9944469c2cdcb72261a8efc05f4a Merge: 21954712549c 36841ba27963 Author: Olof Johansson Date: Sun Apr 28 23:35:41 2019 -0700 Merge tag 'tegra-for-5.2-arm-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/drivers ARM: tegra: Core changes for v5.2-rc1 One of these patches enables PM by default on 32-bit ARM, following the same default that we already have on 64-bit ARM. The other patch fixes a cosmetic issue in the cpuidle driver for Tegra20 and Tegra30. * tag 'tegra-for-5.2-arm-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: ARM: tegra: cpuidle: Handle tick broadcasting within cpuidle core on Tegra20/30 ARM: tegra: enforce PM requirement Signed-off-by: Olof Johansson commit 21954712549cc74a39b5eae922679a705b3bedad Merge: 990d4322cc8d 67a8d5b0fadf Author: Olof Johansson Date: Sun Apr 28 23:35:18 2019 -0700 Merge tag 'tegra-for-5.2-memory' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/drivers memory: tegra: Changes for v5.2-rc1 These are a set of fixes for various issues related to the Tegra memory controller. * tag 'tegra-for-5.2-memory' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: memory: tegra: Fix a typos for "fdcdwr2" mc client Revert "ARM: tegra: Restore memory arbitration on resume from LP1 on Tegra30+" memory: tegra: Replace readl-writel with mc_readl-mc_writel memory: tegra: Fix integer overflow on tick value calculation memory: tegra: Fix missed registers values latching memory: tegra: Properly spell "tegra" memory: tegra: Make terga20_mc_reset_ops static Signed-off-by: Olof Johansson commit abfcba1c35b70957e3aaba931872f72322961ba1 Merge: 876e645f2268 4cb5d9eca143 Author: Olof Johansson Date: Sun Apr 28 23:34:46 2019 -0700 Merge tag 'tegra-for-5.2-firmware' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/soc firmware: tegra: Changes for v5.2-rc1 This set of changes includes improvements for Trusted Foundations and also moves the source files for this support into the standard location under drivers/firmware. * tag 'tegra-for-5.2-firmware' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: firmware: Move Trusted Foundations support ARM: tegra: Sort dependencies alphabetically ARM: tegra: Add firmware calls required for suspend-resume on Tegra30 ARM: tegra: Always boot CPU in ARM-mode ARM: tegra: Don't apply CPU erratas in insecure mode ARM: tegra: Set up L2 cache using Trusted Foundations firmware ARM: trusted_foundations: Provide information about whether firmware is registered ARM: trusted_foundations: Make prepare_idle call to take mode argument ARM: trusted_foundations: Support L2 cache maintenance Signed-off-by: Olof Johansson commit 990d4322cc8dd57ba460b9ad7cf454d4aee50ed0 Merge: fea188820b38 6ac2a01de170 Author: Olof Johansson Date: Sun Apr 28 23:33:50 2019 -0700 Merge tag 'tegra-for-5.2-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/drivers soc/tegra: Changes for v5.2-rc1 Besides a couple of fixes to better cope with deferred probing, this set of patches also implements the acquire/release protocol for resets used during powergate operations. This is necessary to allow these resets to be temporarily shared with other devices that may also need to control these resets. * tag 'tegra-for-5.2-soc' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: soc/tegra: pmc: Move powergate initialisation to probe soc/tegra: pmc: Remove reset sysfs entries on error soc/tegra: pmc: Fix reset sources and levels soc/tegra: pmc: Implement acquire/release for resets reset: Add acquire/release support for arrays reset: Add acquired flag to of_reset_control_array_get() reset: add acquired/released state for exclusive reset controls Signed-off-by: Olof Johansson commit fea188820b3850268571b66cb5b4837009b3fe97 Merge: aaf75f2b53b7 1427736e64c3 Author: Olof Johansson Date: Sun Apr 28 23:33:19 2019 -0700 Merge tag 'tegra-for-5.2-bus' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/drivers bus/tegra: Changes for v5.2-rc1 This pair of patches adds support for system sleep to the ACONNECT bus found on Tegra SoCs. * tag 'tegra-for-5.2-bus' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: bus: tegra-aconnect: add system sleep callbacks bus: tegra-aconnect: use devm_clk_*() helpers Signed-off-by: Olof Johansson commit 94b5f312cfb4a66055d9b688dc9ab6b297eb9dcc Author: Jakub Kicinski Date: Fri Mar 29 17:08:54 2019 -0700 locking/static_key: Don't take sleeping locks in __static_key_slow_dec_deferred() Changing jump_label state is protected by jump_label_lock(). Rate limited static_key_slow_dec(), however, will never directly call jump_label_update(), it will schedule a delayed work instead. Therefore it's unnecessary to take both the cpus_read_lock() and jump_label_lock(). This allows static_key_slow_dec_deferred() to be called from atomic contexts, like socket destructing in net/tls, without the need for another indirection. Signed-off-by: Jakub Kicinski Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Simon Horman Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Will Deacon Cc: alexei.starovoitov@gmail.com Cc: ard.biesheuvel@linaro.org Cc: oss-drivers@netronome.com Cc: yamada.masahiro@socionext.com Link: https://lkml.kernel.org/r/20190330000854.30142-4-jakub.kicinski@netronome.com Signed-off-by: Ingo Molnar commit b92e793bbe4a1c49dbf78d8d526561e7a7dd568a Author: Jakub Kicinski Date: Fri Mar 29 17:08:53 2019 -0700 locking/static_key: Factor out the fast path of static_key_slow_dec() static_key_slow_dec() checks if the atomic enable count is larger than 1, and if so there decrements it before taking the jump_label_lock. Move this logic into a helper for reuse in rate limitted keys. Signed-off-by: Jakub Kicinski Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Simon Horman Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Will Deacon Cc: alexei.starovoitov@gmail.com Cc: ard.biesheuvel@linaro.org Cc: oss-drivers@netronome.com Cc: yamada.masahiro@socionext.com Link: https://lkml.kernel.org/r/20190330000854.30142-3-jakub.kicinski@netronome.com Signed-off-by: Ingo Molnar commit ad282a8117d5048398f506f20b092c14b3b3c43f Author: Jakub Kicinski Date: Fri Mar 29 17:08:52 2019 -0700 locking/static_key: Add support for deferred static branches Add deferred static branches. We can't unfortunately use the nice trick of encapsulating the entire structure in true/false variants, because the inside has to be either struct static_key_true or struct static_key_false. Use defines to pass the appropriate members to the helpers separately. Signed-off-by: Jakub Kicinski Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Simon Horman Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Will Deacon Cc: alexei.starovoitov@gmail.com Cc: ard.biesheuvel@linaro.org Cc: oss-drivers@netronome.com Cc: yamada.masahiro@socionext.com Link: https://lkml.kernel.org/r/20190330000854.30142-2-jakub.kicinski@netronome.com Signed-off-by: Ingo Molnar commit 948f83768a180ec8e85c4a8ff269d5e433d10815 Author: Frederic Weisbecker Date: Tue Apr 2 18:02:44 2019 +0200 locking/lockdep: Test all incompatible scenarios at once in check_irq_usage() check_prev_add_irq() tests all incompatible scenarios one after the other while adding a lock (@next) to a tree dependency (@prev): LOCK_USED_IN_HARDIRQ vs LOCK_ENABLED_HARDIRQ LOCK_USED_IN_HARDIRQ_READ vs LOCK_ENABLED_HARDIRQ LOCK_USED_IN_SOFTIRQ vs LOCK_ENABLED_SOFTIRQ LOCK_USED_IN_SOFTIRQ_READ vs LOCK_ENABLED_SOFTIRQ Also for these four scenarios, we must at least iterate the @prev backward dependency. Then if it matches the relevant LOCK_USED_* bit, we must also iterate the @next forward dependency. Therefore in the best case we iterate 4 times, in the worst case 8 times. A different approach can let us divide the number of branch iterations by 4: 1) Iterate through @prev backward dependencies and accumulate all the IRQ uses in a single mask. In the best case where the current lock hasn't been used in IRQ, we stop here. 2) Iterate through @next forward dependencies and try to find a lock whose usage is exclusive to the accumulated usages gathered in the previous step. If we find one (call it @lockA), we have found an incompatible use, otherwise we stop here. Only bad locking scenario go further. So a sane verification stop here. 3) Iterate again through @prev backward dependency and find the lock whose usage matches @lockA in term of incompatibility. Call that lock @lockB. 4) Report the incompatible usages of @lockA and @lockB If no incompatible use is found, the verification never goes beyond step 2 which means at most two iterations. The following compares the execution measurements of the function check_prev_add_irq(): Number of calls | Avg (ns) | Stdev (ns) | Total time (ns) ------------------------------------------------------------------------ Mainline 8452 | 2652 | 11962 | 22415143 This patch 8452 | 1518 | 7090 | 12835602 Signed-off-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Will Deacon Link: https://lkml.kernel.org/r/20190402160244.32434-5-frederic@kernel.org Signed-off-by: Ingo Molnar commit 9b019acb72e4b5741d88e8936d6f200ed44b66b2 Author: Nicholas Piggin Date: Fri Apr 12 14:26:13 2019 +1000 sched/nohz: Run NOHZ idle load balancer on HK_FLAG_MISC CPUs The NOHZ idle balancer runs on the lowest idle CPU. This can interfere with isolated CPUs, so confine it to HK_FLAG_MISC housekeeping CPUs. HK_FLAG_SCHED is not used for this because it is not set anywhere at the moment. This could be folded into HK_FLAG_SCHED once that option is fixed. The problem was observed with increased jitter on an application running on CPU0, caused by NOHZ idle load balancing being run on CPU1 (an SMT sibling). Signed-off-by: Nicholas Piggin Signed-off-by: Peter Zijlstra (Intel) Cc: Frederic Weisbecker Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190412042613.28930-1-npiggin@gmail.com Signed-off-by: Ingo Molnar commit 8631fef7f2037281efca685c9e717eaed33ee37c Author: Zhao Yakui Date: Thu Apr 25 17:04:54 2019 +0800 drm/i915/gvt: Revert "drm/i915/gvt: Refine the snapshort range of I915 MCHBAR to optimize gvt-g boot time" This reverts commit f74a6d9a2c427b6656bc93eacfa6d329ba54d611. BXT needs to access 0x141000-0x1417ff register to obtain the dram info. But after the snapshot range of I915_MCHBAR is refined in f74a6d9a2c, it only initializes the range of 0x144000-0x147fff for VGPU and then causes that the guest GPU can't get the initialized value for dram detection on BXT. Signed-off-by: Zhao Yakui Signed-off-by: Zhenyu Wang commit d15d356887e770c5f2dcf963b52c7cb510c9e42d Author: Kairui Song Date: Tue Apr 23 00:26:52 2019 +0800 perf/x86: Make perf callchains work without CONFIG_FRAME_POINTER Currently perf callchain doesn't work well with ORC unwinder when sampling from trace point. We'll get useless in kernel callchain like this: perf 6429 [000] 22.498450: kmem:mm_page_alloc: page=0x176a17 pfn=1534487 order=0 migratetype=0 gfp_flags=GFP_KERNEL ffffffffbe23e32e __alloc_pages_nodemask+0x22e (/lib/modules/5.1.0-rc3+/build/vmlinux) 7efdf7f7d3e8 __poll+0x18 (/usr/lib64/libc-2.28.so) 5651468729c1 [unknown] (/usr/bin/perf) 5651467ee82a main+0x69a (/usr/bin/perf) 7efdf7eaf413 __libc_start_main+0xf3 (/usr/lib64/libc-2.28.so) 5541f689495641d7 [unknown] ([unknown]) The root cause is that, for trace point events, it doesn't provide a real snapshot of the hardware registers. Instead perf tries to get required caller's registers and compose a fake register snapshot which suppose to contain enough information for start a unwinding. However without CONFIG_FRAME_POINTER, if failed to get caller's BP as the frame pointer, so current frame pointer is returned instead. We get a invalid register combination which confuse the unwinder, and end the stacktrace early. So in such case just don't try dump BP, and let the unwinder start directly when the register is not a real snapshot. Use SP as the skip mark, unwinder will skip all the frames until it meet the frame of the trace point caller. Tested with frame pointer unwinder and ORC unwinder, this makes perf callchain get the full kernel space stacktrace again like this: perf 6503 [000] 1567.570191: kmem:mm_page_alloc: page=0x16c904 pfn=1493252 order=0 migratetype=0 gfp_flags=GFP_KERNEL ffffffffb523e2ae __alloc_pages_nodemask+0x22e (/lib/modules/5.1.0-rc3+/build/vmlinux) ffffffffb52383bd __get_free_pages+0xd (/lib/modules/5.1.0-rc3+/build/vmlinux) ffffffffb52fd28a __pollwait+0x8a (/lib/modules/5.1.0-rc3+/build/vmlinux) ffffffffb521426f perf_poll+0x2f (/lib/modules/5.1.0-rc3+/build/vmlinux) ffffffffb52fe3e2 do_sys_poll+0x252 (/lib/modules/5.1.0-rc3+/build/vmlinux) ffffffffb52ff027 __x64_sys_poll+0x37 (/lib/modules/5.1.0-rc3+/build/vmlinux) ffffffffb500418b do_syscall_64+0x5b (/lib/modules/5.1.0-rc3+/build/vmlinux) ffffffffb5a0008c entry_SYSCALL_64_after_hwframe+0x44 (/lib/modules/5.1.0-rc3+/build/vmlinux) 7f71e92d03e8 __poll+0x18 (/usr/lib64/libc-2.28.so) 55a22960d9c1 [unknown] (/usr/bin/perf) 55a22958982a main+0x69a (/usr/bin/perf) 7f71e9202413 __libc_start_main+0xf3 (/usr/lib64/libc-2.28.so) 5541f689495641d7 [unknown] ([unknown]) Co-developed-by: Josh Poimboeuf Signed-off-by: Kairui Song Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Alexei Starovoitov Cc: Arnaldo Carvalho de Melo Cc: Borislav Petkov Cc: Dave Young Cc: Jiri Olsa Cc: Linus Torvalds Cc: Namhyung Kim Cc: Peter Zijlstra Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190422162652.15483-1-kasong@redhat.com Signed-off-by: Ingo Molnar commit aaf75f2b53b7dfbc99b85b9707ffd4115cfce7ac Merge: 7f26bb130a94 9733b072a12a Author: Olof Johansson Date: Sun Apr 28 23:21:27 2019 -0700 Merge tag 'tee-optee-for-5.2' of http://git.linaro.org:/people/jens.wiklander/linux-tee into arm/drivers Allow OP-TEE driver to work without static shared memory * tag 'tee-optee-for-5.2' of http://git.linaro.org:/people/jens.wiklander/linux-tee: optee: allow to work without static shared memory Signed-off-by: Olof Johansson commit 876e645f226896a6e8190b73ce4a07764642a7bf Author: Arnd Bergmann Date: Wed Apr 17 17:13:27 2019 +0200 ARM: debug-ll: add default address for digicolor The digicolor platform has three UARTs, but the Kconfig.debug file explicitly lists port zero as the one to be used for the console, while not providing any default values. This can get an automated randconfig build stuck in a loop waiting for the user to input the number. As we already know the physical address, this patch provides that number as default, along with a reasonable default value for the virtual address. Signed-off-by: Arnd Bergmann Reviewed-by: Baruch Siach Signed-off-by: Olof Johansson commit 7b3320e6b1795d68b7e30eb3fad0860f2664aedd Author: Valentin Schneider Date: Tue Apr 16 18:02:21 2019 +0100 arm64: defconfig: Update UFSHCD for Hi3660 soc Commit 7ee7ef24d02d ("scsi: arm64: defconfig: enable configs for Hisilicon ufs") set 'CONFIG_SCSI_UFS_HISI=y', but the configs it depends on (CONFIG_SCSI_HFSHCD_PLATFORM && CONFIG_SCSI_UFSHCD) were left to being built as modules. Commit 1f4fa50dd48f ("arm64: defconfig: Regenerate for v4.20") "fixed" that by reverting to 'CONFIG_SCSI_UFS_HISI=m'. Thing is, if the rootfs is stored in the on-board flash (which is the "canonical" way of doing things), we either need these drivers to be built-in, or we need to fiddle with an initramfs to access that flash and eventually load the modules installed over there. The former is the easiest, do that. Signed-off-by: Valentin Schneider Reviewed-by: Leo Yan Signed-off-by: Olof Johansson commit c4456b7d6d69f805397d5f34d688d8254d47ec25 Merge: 86c77f4944f4 35f8e2e29e74 Author: Olof Johansson Date: Sun Apr 28 23:15:57 2019 -0700 Merge tag 'multi-v7-defconfig-for-v5.2-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/defconfig Update multi_v7_defconfig for dropped and moved options This series of two patches first updates multi_v7_defconfig for dropped options, and then updates it for moved options. We want to do this on regular basis to make it easier to patch multi_v7_defconfig without introducing errors and merge conflicts. We update the defconfig in two patches to make sure we're not accidentally losing any needed options. After this, updating multi_v7_defconfig will become trivial, and most likely only a small follow-up patches are needed after the merge window to update it again for moved options. * tag 'multi-v7-defconfig-for-v5.2-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: multi_v7_defconfig: Update for moved options ARM: multi_v7_defconfig: Update for dropped options Signed-off-by: Olof Johansson commit 101f535e50d627ea88bfce5b3e21b5602f6a6453 Merge: d697ff6d4d02 a0bdc85e6dbc Author: Olof Johansson Date: Sun Apr 28 23:15:01 2019 -0700 Merge tag 'maintainers_for_v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into arm/soc MAINTAINERS - Add Intel Agilex platform under Dinh Nguyen * tag 'maintainers_for_v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux: MAINTAINERS: Add arm64/intel entry for SoCFPGA Signed-off-by: Olof Johansson commit 86c77f4944f47cd23b9be837946e9ab5207028b6 Merge: a8298e383bf7 09d7d3e5291b Author: Olof Johansson Date: Sun Apr 28 23:11:56 2019 -0700 Merge tag 'arm64_defconfig_for_v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into arm/defconfig ARM64 defconfig updates for v5.1 - 'make savedefconfig' cleanup - Enable PCIE_ALTERA and PCIE_ALTERA_MSI - Enable the Intel Stratix10 Service layer driver, FPGA manager and Altera Freeze Bridge driver. - Adds the Intel Agilex platform to the arm64 defconfig * tag 'arm64_defconfig_for_v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux: arm64: defconfig: include the Agilex platform to the arm64 defconfig arm64: defconfig: enable fpga and service layer arm64: defconfig: enable PCIE_ALTERA Signed-off-by: Olof Johansson commit 7f26bb130a9469328eff6176ca70004ead3e5eac Merge: b94d3ff97e2c d9350f21e5fe Author: Olof Johansson Date: Sun Apr 28 23:11:24 2019 -0700 Merge tag 'scmi-fixes-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux into arm/drivers ARM SCMI fixes/cleanup for v5.2 1. Fix for of_node reference leak in scmi_mailbox_check by passing NULL argument to of_parse_phandle_with_args instead of dummy argument 2. Cleanup of_match_device->data NULL pointer handling using of_device_get_match_data() helper * tag 'scmi-fixes-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/sudeep.holla/linux: firmware: arm_scmi: replace of_match_device->data with of_device_get_match_data() firmware: arm_scmi: fix of_node leak in scmi_mailbox_check Signed-off-by: Olof Johansson commit d697ff6d4d027576796d427dd60475a87fd77ffb Author: Arnd Bergmann Date: Tue Apr 16 14:29:57 2019 +0200 ARM: u300: regulator: add MODULE_LICENSE() The missing license showed up as a randconfig warning now, no idea why we never saw that earlier. Acked-by: Linus Walleij Signed-off-by: Arnd Bergmann Signed-off-by: Olof Johansson commit 5b7cc90496aaff4f0eb1750b91dedec342d69760 Author: Arnd Bergmann Date: Mon Apr 15 22:17:12 2019 +0200 ARM: ep93xx: move private headers out of mach/* gpio-ep93xx.h, hardware.h, and platform.h are only used in arch/arm/mach-ep93xx, so we can move them one there and no longer expose them to device drivers. Acked-by: Alexander Sverdlin Acked-by: H Hartley Sweeten Signed-off-by: Arnd Bergmann Signed-off-by: Olof Johansson commit 67e38f578aaebf34fc1278bbe45a78ee8c73dd33 Author: Arnd Bergmann Date: Mon Apr 15 22:17:11 2019 +0200 ARM: ep93xx: move pinctrl interfaces into include/linux/soc ep93xx does not have a proper pinctrl driver, but does things ad-hoc through mach/platform.h, which is also used for setting up the boards. To avoid using mach/*.h headers completely, let's move the interfaces into include/linux/soc/. This is far from great, but gets the job done here, without the need for a proper pinctrl driver. Acked-by: Alexander Sverdlin Acked-by: H Hartley Sweeten Signed-off-by: Arnd Bergmann Signed-off-by: Olof Johansson commit dfb6db007a56998e53e5ba5fb798b2e830b7feca Author: Arnd Bergmann Date: Mon Apr 15 22:17:10 2019 +0200 ARM: ep93xx: keypad: stop using mach/platform.h We can communicate the clock rate using platform data rather than setting a flag to use a particular value in the driver, which is cleaner and avoids the dependency. No platform in the kernel currently defines the ep93xx keypad device structure, so this is a rather pointless excercise. Any out of tree users are probably dead now, but if not, they have to change their platform code to match the new platform_data structure. Acked-by: H Hartley Sweeten Signed-off-by: Arnd Bergmann Signed-off-by: Olof Johansson commit 1b8c813695dcff87b58ad1916bff2299dcf01c7f Author: Arnd Bergmann Date: Mon Apr 15 22:17:09 2019 +0200 ARM: ep93xx: move network platform data to separate header The header file is the only thing preventing us from building the driver in a cross-platform configuration, so move the structure we are interested in to the global platform_data location and enable compile testing. Acked-by: Alexander Sverdlin Acked-by: H Hartley Sweeten Signed-off-by: Arnd Bergmann Signed-off-by: Olof Johansson commit 56e49cd668b76d6b8568083c2127464cdb3c1584 Merge: a7d6fdf917fc 512de1ce7bb7 Author: Olof Johansson Date: Sun Apr 28 23:07:37 2019 -0700 Merge tag 'davinci-for-v5.2/soc' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci into arm/soc This update for DaVinci SoC support simplifies the VBUS enable and overcurrent handling code in DA8XX OHCI driver by modeling vbus GPIO as a regulator. This unifies code for all users, device tree and non-device-tree. The OHCI driver patches have been acked by its maintainer. * tag 'davinci-for-v5.2/soc' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci: usb: ohci-da8xx: drop the vbus GPIO ARM: davinci: da830-evm: add a fixed regulator for ohci-da8xx ARM: davinci: omapl138-hawk: add a fixed regulator for ohci-da8xx usb: ohci-da8xx: disable the regulator if the overcurrent irq fired usb: ohci-da8xx: let the regulator framework keep track of use count ARM: davinci: add missing sentinels to GPIO lookup tables Signed-off-by: Olof Johansson commit b94d3ff97e2ce2ce6d63f526ed53e299d0861e86 Merge: 0065198e6779 c09f7471127e Author: Olof Johansson Date: Sun Apr 28 23:07:03 2019 -0700 Merge tag 'zynqmp-soc-for-v5.2' of https://github.com/Xilinx/linux-xlnx into arm/drivers arm64: zynqmp: SoC changes for v5.2 - Add support for ZynqMP fpga manager - Defer some probes which depends on firmware driver to be ready - Debugfs fix * tag 'zynqmp-soc-for-v5.2' of https://github.com/Xilinx/linux-xlnx: fpga manager: Adding FPGA Manager support for Xilinx zynqmp dt-bindings: fpga: Add bindings for ZynqMP fpga driver firmware: xilinx: Add fpga API's drivers: Defer probe if firmware is not ready firmware: xilinx: fix debugfs write handler Signed-off-by: Olof Johansson commit a7d6fdf917fc55697a02d2f42eae469f664bcde6 Merge: e5a0be94ee8b 9ee8578d9530 Author: Olof Johansson Date: Sun Apr 28 23:06:29 2019 -0700 Merge tag 'pxa-for-5.2' of https://github.com/rjarzmik/linux into arm/soc This is the pxa changes for 5.2 cycle : - only a little fix the PXA SSP removal path * tag 'pxa-for-5.2' of https://github.com/rjarzmik/linux: ARM: pxa: ssp: Fix "WARNING: invalid free of devm_ allocated data" Signed-off-by: Olof Johansson commit e5a0be94ee8bc56e5594bae19512fb6e431f7c13 Merge: e639861344f9 7676e667c841 Author: Olof Johansson Date: Sun Apr 28 23:04:41 2019 -0700 Merge tag 'samsung-soc-5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into arm/soc Samsung mach/soc changes for v5.2 1. Cleanup in mach code. 2. Add necessary fixes for Suspend to RAM on Exynos5422 boards (tested with Odroid XU3/XU4/HC1 family). Finally this brings a working S2R on these Odroid boards (still other drivers might have some issues but mach code seems to be finished). 3. Require MCPM for Exynos542x boards because otherwise not all of cores will come online. 4. GPIO regulator cleanup on S3C6410 Craig. * tag 'samsung-soc-5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: ARM: s3c64xx: Tidy up handling of regulator GPIO lookups ARM: exynos: Set MCPM as mandatory for Exynos542x/5800 SoCs ARM: exynos: Fix infinite loops on CPU powerup failure ARM: exynos: Fix a leaked reference by adding missing of_node_put ARM: exynos: Fix undefined instruction during Exynos5422 resume ARM: exynos: Add CPU state management for Exynos542x under secure firmware ARM: exynos: Add Exynos SMC values for secure memory write ARM: exynos: Move Exynos542x CPU state reset to pm_prepare() Signed-off-by: Olof Johansson commit 0065198e6779ad3abfada87fe118f03e1a0ba888 Merge: 424adc176aa2 35667d812c38 Author: Olof Johansson Date: Sun Apr 28 23:04:13 2019 -0700 Merge tag 'omap-for-v5.2/am4-pm-v2-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/drivers PM changes for am335x and am437x This series adds support for am437x RTC-only mode in suspend. In the RTC-only mode suspend, everything is shut down except the RTC. This makes the power consumption very low for suspend mode. To support RTC-only mode, we need to export omap_rtc_power_off_program() from the rtc driver and improve PM code to save and restore the wkup domain context. As RTC-only mode depends on the device being wired properly for things like memory, we need to also check for the machine type before we allow it. We also need to run DDR3 hardware leveling on resume. Note that there is a trivial merge conflict between the RTC branch and these changes where the RTC branch makes tm2bcd() a void function and the error handling parts can be just dropped. * tag 'omap-for-v5.2/am4-pm-v2-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP2+: sleep43xx: Run EMIF HW leveling on resume path memory: ti-emif-sram: Add ti_emif_run_hw_leveling for DDR3 hardware leveling soc: ti: pm33xx: AM437X: Add rtc_only with ddr in self-refresh support soc: ti: pm33xx: Move the am33xx_push_sram_idle to the top ARM: OMAP2+: pm33xx: Add support for rtc+ddr in self refresh mode rtc: OMAP: Add support for rtc-only mode Signed-off-by: Olof Johansson commit e639861344f95d72f47eec68077aafb0ec212570 Merge: 29104e0149b4 d59b60564cbf Author: Olof Johansson Date: Sun Apr 28 23:03:35 2019 -0700 Merge tag 'omap-for-v5.2/ti-sysc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/soc Driver changes for ti-sysc for v5.2 merge window This series of changes for ti-sysc interconnect target module driver gets us to the point where we can actually drop legacy platform data for many devices in favor of device tree data. To do this, we improve ti-sysc driver not to rely on platform data callbacks to manage module clocks, and handle more quirks needed for some devices. Also few minor fixes are needed, but were considered not needed to be sent separately as they only show up with this series. Then we drop several thousands of lines of legacy platform data for omap4, omap5, dra7, am335x and am437x. We drop platform data for mmc, i2c, gpio and uart devices to start with as those are typically easily tested on all devices. In case of unexpected issues, we can just add back the legacy platform data for a single device type if needed. Finally we add initial support for enabling and disabling some devices without legacy platform data callbacks. I was planning on sending the dropping of legacy platform data as a separate series, but already applied Roger's patch on top and pushed it out. Note that this series depends on related SoC and is based on those. * tag 'omap-for-v5.2/ti-sysc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (33 commits) bus: ti-sysc: Add generic enable/disable functions ARM: OMAP2+: Drop mcspi platform data for omap4 ARM: OMAP2+: Drop uart platform data for dra7 ARM: OMAP2+: Drop gpio platform data for dra7 ARM: OMAP2+: Drop i2c platform data for dra7 ARM: OMAP2+: Drop mmc platform data for dra7 ARM: OMAP2+: Drop uart platform data for omap5 ARM: OMAP2+: Drop gpio platform data for omap5 ARM: OMAP2+: Drop i2c platform data for omap5 ARM: OMAP2+: Drop mmc platform data for omap5 ARM: OMAP2+: Drop uart platform data for am33xx and am43xx ARM: OMAP2+: Drop gpio platform data for am33xx and am43xx ARM: OMAP2+: Drop i2c platform data for am33xx and am43xx ARM: OMAP2+: Drop mmc platform data for am330x and am43xx ARM: OMAP2+: Drop uart platform data for omap4 ARM: OMAP2+: Drop gpio platform data for omap4 ARM: OMAP2+: Drop i2c platform data for omap4 ARM: OMAP2+: Drop mmc platform data for omap4 Documentation: bus: ti-sysc: fix spelling mistakes "multipe" and "interconnet" bus: ti-sysc: Detect DMIC for debugging ... Signed-off-by: Olof Johansson commit 29104e0149b42ead0983427e7cac0b0ff6af92cd Merge: 56c6eed1df43 72aff4ecf1cb Author: Olof Johansson Date: Sun Apr 28 23:02:56 2019 -0700 Merge tag 'omap-for-v5.2/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/soc SoC changes for omap variants for v5.2 merge window This series of changes mostly consists of ti-sysc interconnect driver related preparation work. With these changes and the related ti-sysc driver changes, we can start dropping legacy omap_hwmod_*data.c platform data for many devices. There are also two am335x and am437x related PM changes for secure devices that have ROM handling some parts and needs EFUSE power domain active. * tag 'omap-for-v5.2/soc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: OMAP2+: pm33xx-core: Do not Turn OFF CEFUSE as PPA may be using it ARM: OMAP2+: Wakeupgen: AM43xx HS devices should save context like non-HS ARM: OMAP2+: Handle reset quirks for dynamically allocated modules ARM: OMAP2+: Remove hwmod .rev data and use local SoC checks instead ARM: OMAP2+: Allocate struct omap_hwmod based on dts data ARM: OMAP2+: Define _HWMOD_STATE_DEFAULT and use it ARM: OMAP2+: Prepare class allocation for dynamically allocated modules ARM: OMAP2+: Make interconnect target module allocation functions static ARM: OMAP2+: Fix potentially uninitialized return value for _setup_reset() ARM: dts: Fix dcan clkctrl clock for am3 Signed-off-by: Olof Johansson commit a8298e383bf73a68877323b967c6b26a983d6d72 Author: Pascal Paillet Date: Thu Apr 11 15:44:16 2019 +0200 ARM: multi_v7_defconfig: Enable support for STPMIC1 STPMIC1 is a PMIC from STMicroelectronics. The STPMIC1 integrates 10 regulators, 3 power switches, a watchdog and an input for a power on key. Signed-off-by: Pascal Paillet Signed-off-by: Alexandre Torgue Signed-off-by: Olof Johansson commit 56c6eed1df43ebd35bc9211d7c81caa172a812fe Author: Ludovic Barre Date: Thu Apr 11 15:44:08 2019 +0200 ARM: stm32: add AMBA support for stm32 family This patch enables AMBA support for stm32 family. stm32 family embeds different amba pl180 variants. Signed-off-by: Ludovic Barre Signed-off-by: Alexandre Torgue Signed-off-by: Olof Johansson commit 470fa42933dae396860a3409abee9e6c860382a2 Author: Manivannan Sadhasivam Date: Wed Apr 24 17:32:22 2019 +0530 arm64: dts: bitmain: Add UART pinctrl support for Sophon Edge Add pinctrl support for UARTs exposed on the Sophon Edge board. Signed-off-by: Manivannan Sadhasivam Acked-by: Linus Walleij commit c1294fb5cb7804fb5c469c7b528a7d0fff2027c2 Author: Manivannan Sadhasivam Date: Wed Apr 24 17:32:21 2019 +0530 arm64: dts: bitmain: Add pinctrl support for BM1880 SoC Add pinctrl support for Bitmain BM1880 SoC. This SoC only supports pinmuxing and the pinctrl registers are part of the sctrl block. Signed-off-by: Manivannan Sadhasivam Acked-by: Linus Walleij commit 66c30aa679172df624cd68b0e1cfe757f6d1bc72 Author: Kefeng Wang Date: Sun Apr 28 12:00:25 2019 +0800 dmaengine: nbpfaxi: Use dev_get_drvdata() Using dev_get_drvdata directly. Cc: Vinod Koul Cc: dmaengine@vger.kernel.org Signed-off-by: Kefeng Wang Signed-off-by: Vinod Koul commit 95d47fb71d185ccd6b0f97397cfb1569f4761ba1 Author: Kefeng Wang Date: Sun Apr 28 12:00:24 2019 +0800 dmaengine: bcm-sba-raid: Use dev_get_drvdata() Using dev_get_drvdata directly. Cc: Vinod Koul Cc: dmaengine@vger.kernel.org Signed-off-by: Kefeng Wang Signed-off-by: Vinod Koul commit 9fe408413f501b3262e591f521bf7aff767f6eba Author: Manivannan Sadhasivam Date: Tue Feb 26 17:20:22 2019 +0530 arm64: dts: bitmain: Add GPIO Line names for Sophon Edge board Add GPIO line names for Sophon Edge board based on BM1880 SoC from Bitmain. Line names are based on the board schematics as well as the 96Boards Consumer Edition specification v1.0. Signed-off-by: Manivannan Sadhasivam Reviewed-by: Linus Walleij commit 367e592788a2724f2558b8579ccf212cc9434158 Author: Manivannan Sadhasivam Date: Tue Feb 26 17:20:21 2019 +0530 arm64: dts: bitmain: Add GPIO support for BM1880 SoC Add GPIO support for Bitmain BM1880 SoC based on Designware APB GPIO controller IP. IP exposes 3 GPIO controllers with a total of 72 pins. Signed-off-by: Manivannan Sadhasivam Reviewed-by: Linus Walleij commit c6504be53972cd57326196eb2a18b2b182c26c5c Author: Vinod Koul Date: Fri Apr 26 22:30:27 2019 +0530 dmaengine: stm32-dma: Fix unsigned variable compared with zero Commit f4fd2ec08f17: ("dmaengine: stm32-dma: use platform_get_irq()") used unsigned variable irq to store the results and check later for negative errors, so update the code to use signed variable for this Fixes: f4fd2ec08f17 ("dmaengine: stm32-dma: use platform_get_irq()") Reported-by: kbuild test robot Reported-by: Julia Lawall Acked-by: Julia Lawall Signed-off-by: Vinod Koul commit 795d673af1afae8146ac3070a2d77cfae5287c43 Author: Al Viro Date: Fri Apr 26 14:11:05 2019 -0400 audit_compare_dname_path(): switch to const struct qstr * Signed-off-by: Al Viro commit 88d6272acaaa4bfb03da0a87a8754ec431471680 Author: Heiner Kallweit Date: Wed Apr 24 21:49:30 2019 +0200 net: phy: avoid unneeded MDIO reads in genphy_read_status Considering that in polling mode each link drop will be latched, settings can't have changed if link was up and is up. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit c1a92c0a6c564011855eb7e3b3d9aaf86ad993f4 Merge: 5f0d736e7f7d 0b9f9dfbfab4 Author: David S. Miller Date: Sun Apr 28 19:41:01 2019 -0400 Merge branch 'dsa-tag-modules' Andrew Lunn says: ==================== Make DSA tag drivers kernel modules Historically, DSA tag drivers have been compiled into the kernel as part of the DSA core. With the growing number of tag drivers, it makes sense to allow this driver code to be compiled as a module, and loaded on demand. v2 -- Move name to end of structure, keeping the hot entries at the beginning. More tag protocol to end of structure to keep hot members at the beginning. Fix indent of #endif Rewrite to move list pointer into a new structure void functions, since there cannot be errors Fix fall-through comment Reorder patch for unused symbols to before tag drivers can be modules tab/space cleanup Help text wording NET_DSA_TAG_BRCM_COMMON and NET_DSA_TAG_KZS_COMMON hidden v3 -- boilerplate: Move kdoc next to macro boilerplate: Fix THIS_MODULE indentation Kconfig: More tabification Kconfig: Punctuation v4 -- Cover note {H}istorically Kconfig: trailer ==================== Tested-by: Vivien Didelot Signed-off-by: David S. Miller commit 0b9f9dfbfab4e707ded0aff0d3cf619bc4035139 Author: Andrew Lunn Date: Sun Apr 28 19:37:23 2019 +0200 dsa: Allow tag drivers to be built as modules Make the CONFIG symbols tristate and add help text. The broadcom and Microchip KSZ tag drivers support two different tagging protocols in one driver. Add a configuration option for the drivers, and then options to select the protocol. Create a submenu for the tagging drivers. Signed-off-by: Andrew Lunn v2: tab/space cleanup Help text wording NET_DSA_TAG_BRCM_COMMON and NET_DSA_TAG_KZS_COMMON hidden v3: More tabification Punctuation v4: trailler->trailer Signed-off-by: David S. Miller commit 3aa475e197f44ae401502b61aa341d3e40aa045a Author: Andrew Lunn Date: Sun Apr 28 19:37:22 2019 +0200 dsa: tag_brcm: Avoid unused symbols It is possible that the driver is compiled with both CONFIG_NET_DSA_TAG_BRCM and CONFIG_NET_DSA_TAG_BRCM_PREPEND disabled. This results in warnings about unused symbols. Add some conditional compilation to avoid this. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli v2 Reorder patch to before tag drivers can be modules Signed-off-by: David S. Miller commit f81a43e8da07ccd91c4d923a44ffffaeee39dcc8 Author: Andrew Lunn Date: Sun Apr 28 19:37:21 2019 +0200 dsa: Cleanup unneeded table and make tag structures static Now that tag drivers dynamically register, we don't need the static table. Remove it. This also means the tag driver structures can be made static. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 3675617531443a503f674e71e70248b9c5a205cd Author: Andrew Lunn Date: Sun Apr 28 19:37:20 2019 +0200 dsa: Make use of the list of tag drivers Implement the _get and _put functions to make use of the list of tag drivers. Also, trigger the loading of the module, based on the alias information. The _get function takes a reference on the tag driver, so it cannot be unloaded, and the _put function releases the reference. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli v2: Make tag_driver_register void Signed-off-by: David S. Miller commit 4dad81ee14479c74973ee669612a367b3a675743 Author: Andrew Lunn Date: Sun Apr 28 19:37:19 2019 +0200 dsa: Add stub tag driver put method When a DSA switch driver is unloaded, the lock on the tag driver should be released so the module can be unloaded. Add the needed calls, but leave the actual release code as a stub. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli v2 Signed-off-by: David S. Miller commit c39e2a1d71ade2e59c92280fb2b4daf06b0e240f Author: Andrew Lunn Date: Sun Apr 28 19:37:18 2019 +0200 dsa: Rename dsa_resolve_tag_protocol() to _get ready for locking dsa_resolve_tag_protocol() is used to find the tagging driver needed by a switch driver. When the tagging drivers become modules, it will be necassary to take a reference on the module to prevent it being unloaded. So rename this function to _get() to indicate it has some locking properties. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 409065b069b93c8d280a35e83138ceaf020f98e6 Author: Andrew Lunn Date: Sun Apr 28 19:37:17 2019 +0200 dsa: Register the none tagger ops The none tagger is special in that it does not live in a tag_*.c file, but is within the core. Register/unregister when DSA is loaded/unloaded. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit bdc6fe5bb1d1c245fc8eec6f83c77ca31fda7778 Author: Andrew Lunn Date: Sun Apr 28 19:37:16 2019 +0200 dsa: Keep link list of tag drivers Let the tag drivers register themselves with the DSA core, keeping them in a linked list. Signed-off-by: Andrew Lunn v2 Signed-off-by: David S. Miller commit d3b8c04988ca1685700e345a82a1396df79e6291 Author: Andrew Lunn Date: Sun Apr 28 19:37:15 2019 +0200 dsa: Add boilerplate helper to register DSA tag driver modules A DSA tag driver module will need to register the tag protocols it implements with the DSA core. Add macros containing this boiler plate. The registration/unregistration code is currently just a stub. A Later patch will add the real implementation. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli v2 Fix indent of #endif Rewrite to move list pointer into a new structure v3 Move kdoc next to macro Fix THIS_MODULE indentation Signed-off-by: David S. Miller commit 056eed2fb071c11535527fc792bdfb985a9a3e26 Author: Andrew Lunn Date: Sun Apr 28 19:37:14 2019 +0200 dsa: Add TAG protocol to tag ops In order that we can match the tagging protocol a switch driver request to the tagger, we need to know what protocol the tagger supports. Add this information to the ops structure. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli v2 More tag protocol to end of structure to keep hot members at the beginning. Signed-off-by: David S. Miller commit f18bba50d24d014f22e439702c19b069d7e2b159 Author: Andrew Lunn Date: Sun Apr 28 19:37:13 2019 +0200 dsa: Add MODULE_LICENSE to tag drivers All the tag drivers are some variant of GPL. Add a MODULE_LICENSE() indicating this, so the drivers can later be compiled as modules. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 0b42f03363706609d621c31324fae5c1250f579f Author: Andrew Lunn Date: Sun Apr 28 19:37:12 2019 +0200 dsa: Add MODULE_ALIAS to taggers in preparation to become modules When the tag drivers become modules, we will need to dynamically load them based on what the switch drivers need. Add aliases to map between the TAG protocol and the driver. In order to do this, we need the tag protocol number as something which the C pre-processor can stringinfy. Only the compiler knows the value of an enum, CPP cannot use them. So add #defines. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 875138f81d71af3cfa80df57e32fe9efbc4f95bc Author: Andrew Lunn Date: Sun Apr 28 19:37:11 2019 +0200 dsa: Move tagger name into its ops structure Rather than keep a list to map a tagger ops to a name, place the name into the ops structure. This removes the hard coded list, a step towards making the taggers more dynamic. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli v2: Move name to end of structure, keeping the hot entries at the beginning. Signed-off-by: David S. Miller commit dfedd3b62441f4dfc56d191ac0ab63ec55a675e2 Author: Andrew Lunn Date: Sun Apr 28 19:37:10 2019 +0200 dsa: Add SPDX header to tag drivers. Add an SPDX header, and remove the license boilerplate text. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit affe2a51001450c32886f70248b57eac0f9b68ef Merge: ad4144210635 c9cb7655ebc3 Author: Olof Johansson Date: Sun Apr 28 13:26:53 2019 -0700 Merge tag 'davinci-fixes-for-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci into fixes A MAINTAINERS file update removing Kevin as one of DaVinci maintainers and adding Bartosz as a reviewer. * tag 'davinci-fixes-for-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci: MAINTAINERS: update arch/arm/mach-davinci Signed-off-by: Olof Johansson commit ad4144210635ca5531cba6f152a3099756c9a11b Merge: c7edf1971614 c7861adbe37f Author: Olof Johansson Date: Sun Apr 28 13:26:01 2019 -0700 Merge tag 'imx-fixes-5.1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into fixes i.MX fixes for 5.1, round 3: - A fix on LS1021A-TWR board that SGMII PCS link remains down for eTSEC0 upon an ifdown/ifup sequence. * tag 'imx-fixes-5.1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: ARM: dts: ls1021: Fix SGMII PCS link remaining down after PHY disconnect Signed-off-by: Olof Johansson commit c7edf1971614b6bf5f07599ed2d8735187e4d02e Merge: f1e776420a3f fa44328f4eb0 Author: Olof Johansson Date: Sun Apr 28 13:25:29 2019 -0700 Merge tag 'sunxi-fixes-for-5.1' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into fixes Allwinner fixes for 5.1 - Pinctrl related fixes for the A33 NAND controller - Fix the refcounting of DT nodes in our core code - Fix for a typo'd DT property * tag 'sunxi-fixes-for-5.1' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: ARM: dts: sun8i: a33: Reintroduce default pinctrl muxing arm64: dts: allwinner: a64: Rename hpvcc-supply to cpvdd-supply ARM: sunxi: fix a leaked reference by adding missing of_node_put ARM: sunxi: fix a leaked reference by adding missing of_node_put Signed-off-by: Olof Johansson commit f1e776420a3f56e794f2b41e81446fe756ecb04c Merge: 085b7755808a 7aedca875074 Author: Olof Johansson Date: Sun Apr 28 13:24:29 2019 -0700 Merge tag 'imx-fixes-5.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into fixes i.MX fixes for 5.1, round 2: - A couple of imx6q-logicpd device tree fixes to reduce inrush current, so that the board can always work properly. - Fix buggy device trees that use AR803X to set up phy-mode as rgmii-id. These device trees are broken since day one, and the bug gets exposed by the AR803X phy driver changes. i.MX community agreed to fix those broken device trees rather than supporting messy back compatibility in driver code. * tag 'imx-fixes-5.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: ARM: dts: imx6q-logicpd: Reduce inrush current on USBH1 ARM: dts: imx6q-logicpd: Reduce inrush current on start ARM: dts: imx: Fix the AR803X phy-mode Signed-off-by: Olof Johansson commit 0b6cf36a47bf5fc9add0b6be0b5cf6d5d3ce3ce5 Merge: 2abeb52e6002 f36afdd0f535 Author: Olof Johansson Date: Sun Apr 28 13:02:46 2019 -0700 Merge tag 'samsung-dt64-5.2-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into arm/dt Samsung DTS ARM64 changes for v5.2, second round DTC warning fixes: move fixed-clocks, timer and pmu nodes outside of soc node. * tag 'samsung-dt64-5.2-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: arm64: dts: exynos: Move fixed-clocks out of soc arm64: dts: exynos: Move pmu and timer nodes out of soc Signed-off-by: Olof Johansson commit 2abeb52e6002bba50b00dfe0d3f5a9e7cef329a2 Merge: 44b9c8e77290 b4bcbdee1378 Author: Olof Johansson Date: Sun Apr 28 13:02:34 2019 -0700 Merge tag 'samsung-dt-5.2-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into arm/dt Samsung DTS ARM changes for v5.2, second round 1. DTC warning fixes: move timer and pmu nodes outside of soc node, 2. Properly override MDMA0 on Universal C210, 3. Fix camera clock provider (to match bindings and driver) on Goni. * tag 'samsung-dt-5.2-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: ARM: dts: s5pv210: Fix camera clock provider on Goni board ARM: dts: exynos: Properly override node to use MDMA0 on Universal C210 ARM: dts: exynos: Move fixed-clocks out of soc on Exynos3250 ARM: dts: exynos: Remove unneeded address/size cells from fixed-clock on Exynos3250 ARM: dts: exynos: Move pmu and timer nodes out of soc Signed-off-by: Olof Johansson commit 44b9c8e7729081105f9fb13ca6b8ed4803170954 Author: Linus Walleij Date: Sat Apr 27 11:54:51 2019 +0200 ARM: dts: gemini: Indent DIR-685 partition table It is discouraged to have OF partitions as subnodes directly under the device, create a "partitions" subnode and put the partitions inside it. Signed-off-by: Linus Walleij Signed-off-by: Olof Johansson commit 97fc172d8649eb95c6ff4fce7f83575a375d9170 Merge: 366dd293f86f 060f4211f6c6 Author: Olof Johansson Date: Sun Apr 28 13:01:50 2019 -0700 Merge tag 'qcom-arm64-for-5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into arm/dt Qualcomm ARM64 Updates for v5.2 - Part 2 * Add ADC temp for temp alarm node on PM8998 * Add ref clks for DSI PHYs on SDM845 and MSM8916 * Add CPU capacity and topology on SDM845 * Add display and gpu related nodes on MSM8996 * Add sound and hdmi display support on DB820C * Fixup thermal nodes on MSM8998 platform * tag 'qcom-arm64-for-5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux: arm64: dts: msm8998: thermal: Restrict thermal zone name length to under 20 arm64: dts: msm8998: thermal: Fix number of supported sensors arm64: dts: msm8998-mtp: thermal: Remove skin and battery thermal zones arm64: dts: db820c: Add sound card support arm64: dts: apq8096-db820c: Add HDMI display support arm64: dts: Add Adreno GPU definitions arm64: qcom: msm8996.dtsi: Add Display nodes arm64: dts: msm8996: Add display smmu node arm64: dts: msm8996: Add graphics smmu node arm64: dts: sdm845: Add CPU capacity values arm64: dts: sdm845: Add CPU topology arm64: dts: sdm845: Set 'bi_tcxo' as ref clock of the DSI PHYs arm64: dts: qcom: msm8916: Set 'xo_board' as ref clock of the DSI PHY arm64: dts: qcom: pm8998: Use ADC temperature to temp-alarm node Signed-off-by: Olof Johansson commit 366dd293f86fe9d9f191784a3e3d76d40048081b Merge: b726e211b903 6969d1d9c615 Author: Olof Johansson Date: Sun Apr 28 13:01:25 2019 -0700 Merge tag 'qcom-dts-for-5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into arm/dt Qualcomm Device Tree Changes for v5.2 - Part 2 * Add cxo_board as ref clk for DSI phy * tag 'qcom-dts-for-5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux: ARM: dts: qcom-apq8064: Set 'cxo_board' as ref clock of the DSI PHY Signed-off-by: Olof Johansson commit b726e211b903a17dd03b15fffe4796f565e02992 Merge: bcb84a1097ca 798689e45190 Author: Olof Johansson Date: Sun Apr 28 13:00:33 2019 -0700 Merge tag 'v5.2-rockchip-dts64-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/dt Bulk conversion of remaining gpios to the helper constants, new peripherals for the rk3328-roc-cc and some minor fixes for rk3399 and rockpro64. * tag 'v5.2-rockchip-dts64-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: arm64: dts: rockchip: fix IO domain voltage setting of APIO5 on rockpro64 arm64: dts: rockchip: fix cts, rts pin assign of UART3 for rk3399 arm64: dts: rockchip: bulk convert gpios to their constant counterparts arm64: dts: rockchip: enable display nodes on rk3328-roc-cc arm64: dts: rockchip: eMMC additions for rk3328-roc-cc Signed-off-by: Olof Johansson commit bcb84a1097ca5fc54d14f923d659eb21ffd38490 Merge: ad88400145a2 356150e86d75 Author: Olof Johansson Date: Sun Apr 28 12:59:37 2019 -0700 Merge tag 'v5.2-rockchip-dts32-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/dt Much love for rk3288 in general (power coefficients for the scheduler) and veyron chromeos devices in particular (regulators, suspend, cleanups) and bulk conversion of the remaining gpios to the helper constants denoting the iomux. * tag 'v5.2-rockchip-dts32-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: ARM: dts: rockchip: vdd_gpu off in suspend for rk3288-veyron ARM: dts: rockchip: vcc33_ccd off in suspend for rk3288-veyron-chromebook ARM: dts: rockchip: Add DDR retention/poweroff to rk3288-veyron hogs ARM: dts: rockchip: Add dynamic-power-coefficient for rk3288 ARM: dts: rockchip: bulk convert gpios to their constant counterparts ARM: dts: rockchip: Add BT_EN to the power sequence for veyron ARM: dts: rockchip: Remove unnecessary setting of UART0 SCLK rate on veyron Signed-off-by: Olof Johansson commit ad88400145a23e063615226f5c69e74945fe17ea Merge: c8e3993dd5b9 a4599f6ec8e8 Author: Olof Johansson Date: Sun Apr 28 12:59:22 2019 -0700 Merge tag 'v5.1-next-dts64' of https://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux into arm/dt mt8173: - use assinged-clocks and assigned-clock-parents - fix compatible for SoC to a72 - add pmu nodes mt8183: - add sysirq binding - add pinctrl dt header file mt7629: - update bindings description fo sysirq, uart and scpsys mt8516: - add binding description for watchdog, timer, uart and sysirq * tag 'v5.1-next-dts64' of https://git.kernel.org/pub/scm/linux/kernel/git/matthias.bgg/linux: arm64: dts: mt8173: add pmu nodes for mt8173 arm64: dts: mt8173: correct cpu type of cpu2 and cpu3 to cortex-a72 dt-bindings: irq: mtk,sysirq: add support for MT8516 dt-bindings: serial: mtk-uart: add support for MT8516 dt-bindings: timer: mtk-timer: add support for MT8516 dt-bindings: wdog: mtk-wdt: add support for MT851 dt-bindings: soc: fix a typo for MT7623A dt-bindings: mediatek: update bindings for MT7629 SoC arm64: dts: mt8183: add pinctrl file dt-bindings: mtk-sysirq: Add compatible for Mediatek MT8183 arm64: dts: Using standard CCF interface to set vcodec clk Signed-off-by: Olof Johansson commit c8e3993dd5b90d4e1c5a0edf853fa91add12b302 Author: Robin Murphy Date: Tue Apr 23 15:12:34 2019 +0100 dt-bindings: hwmon (pwm-fan) Remove dead "cooling-*-state" properties The old "cooling-{min,max}-state" properties for thermal bindings were ratified to "cooling-{min,max}-level" by commit eb168b70dea5 ("of: thermal: Fix inconsitency between cooling-*-state and cooling-*-level"), which were later removed entirely by commit e04907dbc259 ("dt-bindings: thermal: Remove "cooling-{min|max}-level" properties"). The pwm-fan binding, however, was apparently in-flight in parallel with that ratification, and so managed to introduce an example of the old properties which escaped the scope of the later cleanup and has thus continued to be dutifully copied for new boards despite being useless. Clean up these remaining undocumented anachronisms to minimise any further confusion. Acked-by: Guenter Roeck Reviewed-by: Krzysztof Kozlowski Acked-by: Thierry Reding Acked-by: Heiko Stuebner Acked-by: Shawn Guo Reviewed-by: Rob Herring Signed-off-by: Robin Murphy Signed-off-by: Olof Johansson commit 40a250ae69840ba7cf077ac5b494e1b2f435a4c5 Merge: c5a792b52129 e97bb6d478c2 Author: Olof Johansson Date: Sun Apr 28 12:53:52 2019 -0700 Merge tag 'mvebu-dt64-5.2-1' of git://git.infradead.org/linux-mvebu into arm/dt mvebu dt64 for 5.2 (part 1) Add wlan_disable signal hog for rfkill signal on clearfog-gt-8k (Armada 8040 based board) * tag 'mvebu-dt64-5.2-1' of git://git.infradead.org/linux-mvebu: arm64: dts: clearfog-gt-8k: add wlan_disable signal hog Signed-off-by: Olof Johansson commit c5a792b5212974d0c2d53edd3546b8c998f2b33c Merge: 4b2bb6ca140e 71f2b9957d98 Author: Olof Johansson Date: Sun Apr 28 12:53:26 2019 -0700 Merge tag 'mvebu-dt-5.2-1' of git://git.infradead.org/linux-mvebu into arm/dt mvebu dt for 5.2 (part 1) - Add interrupt support for wathdog on Armada 38x * tag 'mvebu-dt-5.2-1' of git://git.infradead.org/linux-mvebu: ARM: dts: armada-38x: add interrupts for watchdog Signed-off-by: Olof Johansson commit 4b2bb6ca140e309254b7cfc09e10b16c3eabb7e4 Merge: fbadd4d12234 a4a11b7934a5 Author: Olof Johansson Date: Sun Apr 28 12:52:58 2019 -0700 Merge branch 'at91-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux into arm/dt * 'at91-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/at91/linux: ARM: dts: at91-vinco: use SPDX-License-Identifier ARM: dts: atmel boards: use SPDX-License-Identifier ARM: dts: at91sam9xe: use SPDX-License-Identifier ARM: dts: sama5d{2,4}: use SPDX-License-Identifier ARM: dts: at91: sama5d2_xplained: Add proper regulator states for suspend-to-mem ARM: dts: at91: sama5d2: add labels to soc dtsi for derivative boards Signed-off-by: Olof Johansson commit fbadd4d12234fe8468843c3e24d83019cdbbea77 Merge: 38c2f3826d8e f3e35357cd46 Author: Olof Johansson Date: Sun Apr 28 12:52:28 2019 -0700 Merge tag 'qcom-dts-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into arm/dt Qualcomm Device Tree Changes for v5.2 * Add gpio ranges for Qualcomm platforms * Correct the IPQ4019 PCIe BAR range * tag 'qcom-dts-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux: ARM: dts: qcom: ipq4019: enlarge PCIe BAR range ARM: dts: qcom: pma8084: add gpio-ranges ARM: dts: qcom: msm8660: add gpio-ranges ARM: dts: qcom: mdm9615: add gpio-ranges ARM: dts: qcom: apq8064: add gpio-ranges Signed-off-by: Olof Johansson commit 38c2f3826d8e9f474d0a21bd9c3cf2dc4166dc62 Merge: be058ba65d9e 6ef7c11b31a5 Author: Olof Johansson Date: Sun Apr 28 12:52:08 2019 -0700 Merge tag 'qcom-arm64-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into arm/dt Qualcomm ARM64 Updates for v5.2 * Add gpio ranges for Qualcomm platforms * Fix MSM8998 BLSP2 I2C5 address * Add MSM8998 UFS nodes and associated information * Add SDM845 interconnect header and usage * Add ADSP and CDSP PAS, RMTFS memory, and UFS phy reset on SDM845 * Update reserved memory map on SDM845 * Add QCS404 spmi regulators, ethernet, bluetooth, and uart3 * Remove remotely-controlled property as default for BAM on QCS404 * Add spmi regulators on PMS405 * Fixup QCS404 l3 voltages and regulator supply names * Fixup thermal trip names on Qualcomm platforms * Add thermal sensors on Qualcomm platforms * Remove invalid efficiency property on MSM8998 * Change QCS404-evb compatible to help distinguish platforms * Add rpmhd header file and convert to use definitions on SDM845 * Add interconnect header file on SDM845 * Add PMS405 ADC binding * tag 'qcom-arm64-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux: (38 commits) arm64: dts: sdm845: Introduce ADSP and CDSP PAS nodes arm64: dts: qcom: sdm845: Define rmtfs memory arm64: dts: qcom: sdm845: Update reserved memory map arm64: dts: sdm845: Add UFS PHY reset arm64: dts: qcom: msm8998: Fix blsp2_i2c5 address arm64: dts: qcom: qcs404-evb: Change the compatible to distinguish platforms arm64: dts: qcom: pmi8998: add gpio-ranges arm64: dts: qcom: pmi8994: add gpio-ranges arm64: dts: qcom: pm8998: add gpio-ranges arm64: dts: qcom: pm8005: add gpio-ranges arm64: dts: msm8998: Add UFS phy reset arm64: dts: msm8916: thermal: Convert camera trip type to hot arm64: dts: msm8996: thermal: Make trip names consistent arm64: dts: msm8916: thermal: Make trip names consistent arm64: dts: msm8998: thermal: Make trip names consistent arm64: dts: sdm845: thermal: Add temperature sensors near major peripherals arm64: dts: msm8998: thermal: Add temperature sensors near major peripherals arm64: dts: msm8998: thermal: GPU has two sensors, add the second arm64: dts: msm8998: thermal: Fix the gpu sensor number arm64: dts: msm8998: thermal: Fix the cpu sensor numbers ... Signed-off-by: Olof Johansson commit be058ba65d9e43f40d31d9b16b99627f0a20de1b Merge: b45da609a024 4171797ff78f Author: Olof Johansson Date: Sun Apr 28 12:51:23 2019 -0700 Merge tag 'imx-dt-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/dt i.MX arm device tree update for 5.2: - New board support: imx50-kobo-aura, imx53-m53menlo, imx6dl-eckelmann, imx7d-mba7, imx7d-zii-rpu2, and vf610-zii-spb4. - Add i2c, mmc and spi aliases for SoC i.MX35, i.MX50 and i.MX6SL. - Use new 'reset-gpios' property describing CODEC reset pin for board mx6qdl-zii-rdu2, imx6qdl-gw5903 and imx6qdl-var-dart. - Specify viewport count for PCIE block on SoC imx7d and imx6qdl. - Correct 'ipg' clock of SDMA device for i.MX5, i.MX6 and i.MX7 SoCs. - Rename MMDC memory controller device to be generic and add MMDC device for imx7ulp SoC. - Add OCOTP device support for imx7ulp SoC. - Improve ZII board DTS by switching to SPDX identifier and using generic device node name. - A series from Rui Miguel Silva to add various media related devices for i.MX7 SoC, and enable ov2680 sensor support for imx7s-warp board. - Random small updates on various board support. * tag 'imx-dt-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: (59 commits) ARM: dts: imx7s: Specify #io-channel-cells in ADC nodes ARM: dts: vf610-zii-dev-rev-b: Specify CS as GPIO_ACTIVE_LOW in spi0 ARM: dts: vf610-zii-dev: Mark i2c0 SCL as GPIO_OPEN_DRAIN ARM: dts: Add support for ZII i.MX7 RPU2 board ARM: dts: bugfix tqma7 soft reset issue ARM: dts: imx53: Add Menlosystems M53 board ARM: dts: imx53: Rename M53 SoM touchscreen node ARM: dts: imx6dl-sabreauto: update opp table for auto part ARM: dts: imx: Use generic node names for Zii dts ARM: dts: imx: Switch Zii dts to SPDX identifier ARM: dts: imx6q-logicpd: Shutdown LCD regulator during suspend ARM: dts: imx6q-logicpd: Enable Analog audio capture ARM: dts: imx6sll: add cooling-cells for cpu-freq cooling device ARM: dts: imx50: Add Kobo Aura DTS ARM: dts: imx6qdl-var-dart: Use new CODEC reset pin name ARM: dts: imx6qdl-gw5903: Use new CODEC reset pin name ARM: dts: mx6qdl-zii-rdu2: Use new CODEC reset pin name ARM: dts: imx50: Specify IMX5_CLK_IPG as "ahb" clock to SDMA ARM: dts: imx51: Specify IMX5_CLK_IPG as "ahb" clock to SDMA ARM: dts: imx53: Specify IMX5_CLK_IPG as "ahb" clock to SDMA ... Signed-off-by: Olof Johansson commit b45da609a02460c6a34c395f03f891f1fb2a021a Merge: 1e67323721f3 e2c7f52bcdaf Author: Olof Johansson Date: Sun Apr 28 12:50:38 2019 -0700 Merge tag 'imx-bindings-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into arm/dt i.MX DT bindings update for 5.2: - Add vendor prefix for TQ Systems GmbH, Rakuten Kobo and Menlo Systems GmbH. - Add DT schema for SoC i.MX8MM and i.MX50, and board ZII VF610, VF610 SPB4, i.MX7 RPU2, i.MX7S TQ MBa7, M53 Menlo and Eckelmann ci4x10. - Update imx-scu bindings on resource table and general interrupt support. - Add bindings for i.MX MMDC memory controller. - Update i.MX7D ADC bindings to add missing '#io-channel-cells' property. * tag 'imx-bindings-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: dt-bindings: iio: imx7d-adc: Add #io-channel-cells to required dt-bindings: arm: fsl: Add support for ZII i.MX7 RPU2 board dt-bindings: arm: fsl: Add devicetree binding for M53 Menlo board. dt-bindings: fsl: scu: add general interrupt support dt-bindings: arm: fsl: Add i.MX50 based boards dt-bindings: Add vendor prefix for Rakuten Kobo, Inc. dt-bindings: arm: add TQ boards dt-bindings: add vendor prefix for TQ Systems GmbH dt-bindings: arm: fsl: Add support for ZII VF610 SPB4 dt-bindings: arm: fsl: Add supported ZII VF610 boards to DT schema dt-bindings: arm: imx: Add the soc binding for imx8mm dt-bindings: arm: fsl: Add devicetree binding for Eckelmann ci4x10 dt-bindings: memory-controllers: freescale: add MMDC binding doc of: Add vendor prefix for Menlo Systems GmbH bindings: fsl-imx-sdma: Document fsl,imx8mq-sdma compatbile string dt-bindings: firmware: imx-scu: add new resources to scu resource table dt-bindings: firmware: imx-scu: remove unused resources from scu resource table Signed-off-by: Olof Johansson commit 1e67323721f37f155f7b746c00e97432010769f8 Merge: 31c5d501b9f5 659f2563d323 Author: Olof Johansson Date: Sun Apr 28 12:50:02 2019 -0700 Merge tag 'amlogic-dt64-2' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into arm/dt arm64: dts: Amlogic updates for v5.2, round 2 - add display/gfx support for G12a boards - enable USB for g12a boards * tag 'amlogic-dt64-2' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic: (26 commits) arm64: dts: meson-g12a-u200: Add support for Video Display arm64: dts: meson-g12a-sei510: Add support for Video Display arm64: dts: meson-g12a-x96-max: Add support for Video Display arm64: dts: meson-g12a: Add AO-CEC nodes arm64: dts: meson-g12a: Add VPU and HDMI related nodes arm64: dts: meson-g12a-x96-max: Enable USB arm64: dts: meson-g12a-u200: Enable USB arm64: dts: meson-g12a-sei510: Enable USB arm64: dts: meson-g12a-sei510: Add ADC Key and BT support arm64: dts: meson-g12a-u200: add regulators arm64: dts: meson: g12a: Add mali-g31 gpu node arm64: dts: meson: g12a: Add G12A USB nodes arm64: dts: meson: g12a: Add SAR ADC node dt-bindings: power: amlogic, meson-gx-pwrc: Add G12A compatible arm64: dts: meson-gxm: Add Mali-T820 node dt-bindings: gpu: mali-midgard: Add resets property dt-bindings: clock: meson8b: export the video decoder clocks dt-bindings: clock: meson8b: export the VPU clock dt-bindings: clock: g12a-aoclk: expose CLKID_AO_CTS_OSCIN dt-bindings: clock: meson8b: drop the "ABP" clock definition ... Signed-off-by: Olof Johansson commit 31c5d501b9f505a395d626a5500b8a6142d8ff89 Merge: ea1b42170f7b 09ee951617d9 Author: Olof Johansson Date: Sun Apr 28 12:49:37 2019 -0700 Merge tag 'amlogic-dt-2' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into arm/dt ARM: dts: Amlogic updates for v5.2, round 2 - enable RTC on odroid-c1, ec100 - meson8: add internal clock measurer * tag 'amlogic-dt-2' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic: ARM: dts: meson8b: odroid-c1: prepare support for the RTC ARM: dts: meson8b: ec100: enable the RTC ARM: dts: meson: add support for the RTC Signed-off-by: Olof Johansson commit ea1b42170f7b19bc845f974e3d76b7358db5d575 Merge: c00671c6d052 3961d355dfb5 Author: Olof Johansson Date: Sun Apr 28 12:46:39 2019 -0700 Merge tag 'renesas-dt-bindings-for-v5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into arm/dt Renesas ARM Based SoC DT Bindings Updates for v5.2 * R-Car M3-N (r8a77965) SoC - Remove non-existent A3IR power domain * Add vendor prefix for Silicon Linux * tag 'renesas-dt-bindings-for-v5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: dt-bindings: power: r8a77965: Remove non-existent A3IR power domain dt-bindings: Add vendor prefix for Silicon Linux. Signed-off-by: Olof Johansson commit c00671c6d0529e9664fb2ac8027fc04dd7707b70 Merge: 64f32d9d3006 0750e8344eb7 Author: Olof Johansson Date: Sun Apr 28 12:46:13 2019 -0700 Merge tag 'renesas-arm-dt-for-v5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into arm/dt Renesas ARM Based SoC DT Updates for v5.2 * R-Car E2 (r8a7794) based Alt board - Enable USB and DA9063 PMIC * R-Car V2H (R8A77920) based Blanche board - Enable IIC3 and DA9063 PMIC * RZ/G1C (r8a77470) based iWave SBC - Enable HDMI, USB Phy[01], USB2.0 Host and HS-USB * RZ/G1C (r8a77470) SoC - Describe DU, VIN, PWM and HSCIF, USB PHY, USB2.0 Host and HSUSB in DT * RZ/A1H (R7S7210) based rskrza1 board - Enable remaining LEDs and I2C * R-Mobile A1 (r8a7740) based ape6evm, R-Car H1 (r8a7779) based marzen, R-Car M1A (R8A7778) based bockw and Emma Mobile EV2 based kzm9d boads - Tidy up bootargs * R-Mobile A1 (r8a7740) based ape6evm - Enable NOR FLASH * tag 'renesas-arm-dt-for-v5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: (21 commits) ARM: dts: ape6evm: Reorder bootargs ARM: dts: marzen: Add rw to bootargs and use ip=dhcp ARM: dts: bockw: Reorder bootargs ARM: dts: kzm9d: Add rw parameter to bootargs ARM: dts: iwg23s-sbc: Enable HS-USB ARM: dts: r8a77470: Add HSUSB device nodes ARM: dts: iwg23s-sbc: Enable USB USB2.0 Host ARM: dts: r8a77470: Add USB2.0 Host (EHCI/OHCI) device ARM: dts: iwg23s-sbc: Enable USB Phy[01] ARM: dts: r8a77470: Add USB PHY DT support ARM: dts: r8a77470: Add VIN support ARM: dts: r8a77470: Add PWM support ARM: dts: r8a77470: Add HSCIF support ARM: dts: alt: Enable USB support ARM: dts: rskrza1: Add remaining LEDs ARM: dts: rskrza1: Add I2C support ARM: dts: iwg23s-sbc: Add HDMI support ARM: dts: r8a77470: Add DU support ARM: dts: ape6evm: Add NOR FLASH ARM: dts: alt: Add DA9063 PMIC node ... Signed-off-by: Olof Johansson commit 64f32d9d30063149eb10d7be3a23b5e1f44247c8 Merge: 68a3ead58462 b7f5a8e435ec Author: Olof Johansson Date: Sun Apr 28 12:43:06 2019 -0700 Merge tag 'renesas-arm64-dt2-for-v5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into arm/dt Second Round of Renesas ARM64 Based SoC DT Updates for v5.2 * R-Car H3 (r8a7795), M3-N (r8a77965) and E3 (r8a77990) SoCs - Describe CMT devices in DT * R-Car M3-N (r8a77965) SoC - Remove unecessary reg-names of display node * R-Car V3H (r8a77980) SoC - Add missing "renesas,id" property to VIN of device tree * RZ/G2E (r8a774c0) based CAT874 board - Add USB-HOST support * tag 'renesas-arm64-dt2-for-v5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: arm64: dts: renesas: r8a77980: Add "renesas,id" to VIN arm64: dts: renesas: r8a77965: Remove reg-names of display node arm64: dts: renesas: r8a77990: Add CMT device nodes arm64: dts: renesas: r8a77965: Add CMT device nodes arm64: dts: renesas: r8a7795: Add CMT device nodes arm64: dts: renesas: cat874: Add USB-HOST support Signed-off-by: Olof Johansson commit 68a3ead5846209d8a84e5d97f7d325470bd2ea7a Merge: b76cabc9ded4 7aaee3d11689 Author: Olof Johansson Date: Sun Apr 28 12:42:35 2019 -0700 Merge tag 'sunxi-h3-h5-for-5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into arm/dt Allwinner H3/H5 changes for 5.2 Our usual bunch of changes shared between arm and arm64, the most notable one being: - Fix of improper usage of DT bindings, thanks to the DT validation - Add the SID for the H3 and H5 - New board: RerVision H3-DVK * tag 'sunxi-h3-h5-for-5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: ARM: dts: sun8i: mapleboard: Remove cd-inverted ARM: dts: sunxi: h3/h5: Remove useless phy-names from EHCI and OHCI ARM: dts: sun8i: h3: bluetooth for Banana Pi M2 Zero board ARM: dts: sun8i: h3: Add default dr_mode ARM: dts: sun8i: h3: Refactor the pinctrl node names ARM: dts: sunxi: h3/h5: Remove stale pinctrl-names entry ARM: dts: sunxi: h3/h5: Add device node for SID ARM: dts: sun8i-h3: Add support for the RerVision H3-DVK board Signed-off-by: Olof Johansson commit b76cabc9ded4fe9afd6067d2369622db8bb42b81 Merge: f5d6e8c07791 7cc399f26781 Author: Olof Johansson Date: Sun Apr 28 12:42:11 2019 -0700 Merge tag 'sunxi-dt64-for-5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into arm/dt Allwinner arm64 DT changes for 5.2 Our usual bunch of patches, the most notable one being: - Fixing the DTC warnings - Fix DT bindings not being properly respected, thanks to the DT validation - New Board: Oceanic 5205, Beelink GS1, Orange Pi3 * tag 'sunxi-dt64-for-5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: (22 commits) arm64: dts: allwinner: a64-amarula-relic: Add OV5640 camera node arm64: dts: allwinner: a64: Add pinmux setting for CSI MCLK on PE1 arm64: dts: allwinner: Fix DE2 bus node name arm64: dts: allwinner: Remove useless phy-names from EHCI and OHCI arm64: dts: allwinner: h6: Add MMC1 pins arm64: dts: allwinner: h6: Add Orange Pi 3 DTS arm64: dts: allwinner: h6: Introduce Beelink GS1 board dt-bindings: vendor-prefixes: add AZW arm64: dts: allwinner: h6: move MMC pinctrl to dtsi arm64: dts: allwinner: h6: Add device node for SID arm64: dts: allwinner: a64: Fix the Codec I2S binding arm64: dts: allwinner: a64: Add default dr_mode arm64: dts: allwinner: Fix pinctrl node names arm64: dts: allwinner: a64: Add missing PIO clocks arm64: dts: allwinner: a64: Fix display pipeline endpoints arm64: dts: allwinner: a64: Fix the TCON output clock arm64: dts: allwinner: h6: Add Video Engine node arm64: dts: allwinner: a64: Add cross links for the mixers arm64: allwinner: a64: Add Oceanic 5205 5inMFD initial support dt-bindings: Add vendor prefix for oceanic ... Signed-off-by: Olof Johansson commit f5d6e8c077915c84d8b544bc02e3df2f0910c193 Merge: 14d55a3df44a 6e0c67e34ffc Author: Olof Johansson Date: Sun Apr 28 12:40:48 2019 -0700 Merge tag 'sunxi-dt-for-5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into arm/dt Allwinner DT changes for 5.2 This PR is pretty significant, but it been mostly about: - Fixing the DTC warnings in most of our DT. We're now down to 2 warnings, from several thousands. - Fixing a good number of minor issues, typos, and so on thanks to the DT validation tools - Describe the MBUS controller and the special DMA RAM mapping on the A13 - Add support for the LRADC on the A83t - Add support for the I2C bus used for the PMIC on the A33 - Start using the DT annotation /omit-if-no-ref/ on our pinctrl nodes * tag 'sunxi-dt-for-5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: (65 commits) ARM: dts: sun8i: a83t: Enable USB OTG controller on some boards ARM: dtsi: axp81x: add USB power supply node ARM: dts: sun5i: Reorder pinctrl nodes ARM: dts: sun6i: i7: Remove useless property ARM: dts: sun4i: lime: Fix the USB PHY ID detect GPIO properties ARM: dts: sun4i: protab2: Remove stale pinctrl-names entry ARM: dts: sunxi: Remove useless phy-names from EHCI and OHCI ARM: dts: sun8i: v40: bananapi-m2-berry: Sort device node dereferences. ARM: dts: sun5i: Add the MBUS controller dt-bindings: sunxi: Add compatible for OrangePi 3 board ARM: dts: sun8i: a83t: Add I2C2 pinmux setting for PE pins dt-bindings: arm: sunxi: Add Beelink GS1 board ARM: dts: sun8i: tbs-a711: Add support for volume keys input ARM: dts: sunxi: Add R_LRADC support for A83T ARM: dts: sunxi: Improve A33 NAND transfers by using DMA ARM: dts: sun8i: tbs-a711: Enable UART2 (for NEO-6M GPS module) ARM: dts: sunxi: Remove useless pinctrl nodes ARM: dts: sunxi: Remove pinctrl groups setting bias ARM: dts: sunxi: Remove useless address and size cells ARM: dts: sunxi: Conform to DT spec for NAND controller ... Signed-off-by: Olof Johansson commit 14d55a3df44a288a4d273dff2a5f08ae06614774 Merge: c076dd723e37 2f03e39b5bfe Author: Olof Johansson Date: Sun Apr 28 12:40:13 2019 -0700 Merge tag 'tegra-for-5.2-arm64-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/dt arm64: tegra: Device tree changes for v5.2-rc1 This contains a bunch of changes all across the board. Perhaps the most notable introduction here is support for the Jetson Nano Developer Kit. * tag 'tegra-for-5.2-arm64-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: arm64: tegra: Remove regulator hacks on Jetson TX2 arm64: tegra: Enable XUSB on P2771 arm64: tegra: Add XUSB and pad controller on Tegra186 arm64: tegra: Add NVIDIA Jetson Nano Developer Kit support arm64: tegra: smaug: Move PLL power supplies to XUSB pad controller arm64: tegra: jetson-tx1: Move PLL power supplies to XUSB pad controller arm64: tegra: Enable command queue for Tegra186 SDMMC4 arm64: tegra: Fix default tap and trim values arm64: tegra: Add supply for temperature sensor on P2888 arm64: tegra: Enable aconnect, ADMA and AGIC on Jetson TX1 arm64: tegra: Add L2 cache topology to Tegra210 arm64: tegra: Enable CPU idle support for Shield arm64: tegra: Enable CPU idle support for Smaug arm64: tegra: Enable CPU idle support for Jetson TX1 arm64: tegra: Add CPU idle states properties for Tegra210 arm64: tegra: Fix timer node for Tegra210 Signed-off-by: Olof Johansson commit c076dd723e3795490681e8b447060cd458801489 Merge: 7996313656b8 1078946b4b2e Author: Olof Johansson Date: Sun Apr 28 12:39:33 2019 -0700 Merge tag 'tegra-for-5.2-arm-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/dt ARM: tegra: Device tree changes for v5.2-rc1 This contains a set of changes to move PLL power supplies to the XUSB pad controller, which is necessary to ensure the proper sequencing during boot. Other patches in this set clean up usage of SPDX license identifiers in device tree files as well as add support for the ACTMON hardware on Tegra30. * tag 'tegra-for-5.2-arm-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux: ARM: tegra: Add ACTMON support on Tegra30 ARM: tegra: venice2: Move PLL power supplies to XUSB pad controller ARM: tegra: nyan: Move PLL power supplies to XUSB pad controller ARM: tegra: jetson-tk1: Move PLL power supplies to XUSB pad controller ARM: tegra: apalis: Move PLL power supplies to XUSB pad controller ARM: tegra: Remove gratuitous parentheses in SPDX license identifier ARM: tegra: Convert to SPDX license tags for Tegra124 Apalis Signed-off-by: Olof Johansson commit 7996313656b83ba516a1546d51f08f1a0fab4e06 Merge: a41332dd5e2a e5b258e53e58 Author: Olof Johansson Date: Sun Apr 28 12:38:35 2019 -0700 Merge tag 'omap-for-v5.2/dt-am3-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/dt Add am335x pinmux defines and start using them This series of changes adds a new pinmux instance defines for am335x, and a new AM33XX_PADCONF macro. And then the rest of the series updates the dts files to use it. The reasons for doing this is the pinmux configuration has been hard to use and read. And we need to do this for eventually for moving to use values. This change is done one machine at a time, and can be easily reverted as needed in case of unexpected trouble. The old macro is still working, and we're planning to keep it around until we eventually change to use * tag 'omap-for-v5.2/dt-am3-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (38 commits) ARM: dts: am335x: wega: Replaced register offsets with defines ARM: dts: am335x: sl50: Replaced register offsets with defines ARM: dts: am335x: shc: Replaced register offsets with defines ARM: dts: am335x: sbc-t335: Replaced register offsets with defines ARM: dts: am335x: sancloud-bbe: Replaced register offsets with defines ARM: dts: am335x: phycore-som: Replaced register offsets with defines ARM: dts: am335x: pepper: Replaced register offsets with defines ARM: dts: am335x: pdu001: Replaced register offsets with defines ARM: dts: am335x: pcm-953: Replaced register offsets with defines ARM: dts: am335x: osd335x-common: Replaced register offsets with defines ARM: dts: am335x: osd3358-sm-red: Replaced register offsets with defines ARM: dts: am335x: nano: Replaced register offsets with defines ARM: dts: am335x: moxa-uc-8100-me-t: Replaced register offsets with defines ARM: dts: am335x: moxa-uc-2101: Replaced register offsets with defines ARM: dts: am335x: moxa-uc-2100-common: Replaced register offsets with defines ARM: dts: am335x: lxm: Replaced register offsets with defines ARM: dts: am335x: igep0033: Replaced register offsets with defines ARM: dts: am335x: icev2: Replaced register offsets with defines ARM: dts: am335x: evmsk: Replaced register offsets with defines ARM: dts: am335x: evm: Replaced register offsets with defines ... Signed-off-by: Olof Johansson commit a41332dd5e2ac56b0b6eb0959d8828bfe0d6a4ad Merge: d7f76ac4dca0 4b36daf9ada3 Author: Olof Johansson Date: Sun Apr 28 12:35:51 2019 -0700 Merge tag 'socfpga_dts_updates_for_v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux into arm/dt SoCFPGA DTS updates for v5.2 - Add base support for Agilex platform - Add 'cap-mmc-highspeed' Stratix10 and 32-bit SoCFPGA platform - Increase Stratix10 QSPI support to 100 MHz * tag 'socfpga_dts_updates_for_v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/dinguyen/linux: arm64: dts: agilex: Add initial support for Intel's Agilex SoCFPGA arm64: dts: stratix10: increase QSPI max frequency to 100MHz arm64: dts: stratix10: enable MMC highspeed support ARM: dts: socfpga: enable MMC highspeed support Signed-off-by: Olof Johansson commit d7f76ac4dca0c212f6c774bb2a8041b3d7a54664 Merge: da9a4c3d32eb f4bdfcc29a8b Author: Olof Johansson Date: Sun Apr 28 12:35:07 2019 -0700 Merge tag 'ux500-dts-v5.2-armsoc' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson into arm/dt Ux500 DTS changes for the v5.2 kernel cycle. - This adds the MCDE display controller and some displays. - The Lima MALI-400 driver is added to the kernel, so let's add this block to the Ux500 DTS file. * tag 'ux500-dts-v5.2-armsoc' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson: ARM: dts: Ux500: Add MCDE and Samsung display ARM: dts: ux500: Add Mali-400 Signed-off-by: Olof Johansson commit da9a4c3d32eb699db68dd8f3e633ec035879d818 Merge: 6d918e09331e b2770b2d6f1b Author: Olof Johansson Date: Sun Apr 28 12:33:12 2019 -0700 Merge tag 'omap-for-v5.2/dt-ti-sysc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/dt Devicetree changes for omap4 and 5 l4 abe interconnect This series of devicetree changes adds the l4 abe interconnect devices and moves the devices to their right places in the hierarchy similar to what we've already done for most l4 devices earlier. We first add a shared omap4-mcpdm.dtsi to make adding omap4-l4-abe.dtsi easier for the mcpdm changes. And as earlier, in case of unexpected trouble, devices can be probed the old way by moving one device at a time to the old place. This series of changes depends on the ti-sysc driver changes for handling the external optional clocks that the mcpdm relies on, and is based on the related ti-sysc driver changes. Note that this series does not depend on dropping of the leagcy platform data, but I already had those committed along with the ti-sysc driver changes and noticed too late. * tag 'omap-for-v5.2/dt-ti-sysc-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (44 commits) ARM: dts: Add l4 abe interconnect hierarchy and ti-sysc data for omap5 ARM: dts: Add l4 abe interconnect hierarchy and ti-sysc data for omap4 ARM: dts: Add common mcpdm dts file for omap4 bus: ti-sysc: Add generic enable/disable functions ARM: OMAP2+: Drop mcspi platform data for omap4 ARM: OMAP2+: Drop uart platform data for dra7 ARM: OMAP2+: Drop gpio platform data for dra7 ARM: OMAP2+: Drop i2c platform data for dra7 ARM: OMAP2+: Drop mmc platform data for dra7 ARM: OMAP2+: Drop uart platform data for omap5 ARM: OMAP2+: Drop gpio platform data for omap5 ARM: OMAP2+: Drop i2c platform data for omap5 ARM: OMAP2+: Drop mmc platform data for omap5 ARM: OMAP2+: Drop uart platform data for am33xx and am43xx ARM: OMAP2+: Drop gpio platform data for am33xx and am43xx ARM: OMAP2+: Drop i2c platform data for am33xx and am43xx ARM: OMAP2+: Drop mmc platform data for am330x and am43xx ARM: OMAP2+: Drop uart platform data for omap4 ARM: OMAP2+: Drop gpio platform data for omap4 ARM: OMAP2+: Drop i2c platform data for omap4 ... Signed-off-by: Olof Johansson commit 6d918e09331e63593b7827ea1a718f0da03b7fb0 Merge: 1c3a4540839c bcbb63b80284 Author: Olof Johansson Date: Sun Apr 28 12:32:38 2019 -0700 Merge tag 'omap-for-v5.2/dt-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into arm/dt Devicetree changes for omap variants This series of changes configures dra7 pcie x2 lane mode, configures am43xx-epos-evm regulators and keypad wakeup source, and uses standard reset-gpios instead of gpio-reset for n810. We also need to split dra7 dtsi files for properly supporting dra76x and am576 as some of the devices are different such as usb and pruss. * tag 'omap-for-v5.2/dt-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: ARM: dts: dra7: Separate AM57 dtsi files dt-binding: arm: omap: Add information for AM5748 ARM: dts: omap2420-n810: Use new CODEC reset pin name ARM: dts: am43xx-epos-evm: Add matrix keypad as wakeup source ARM: dts: am43xx-epos-evm: Keep DCDC3 regulator on in suspend to memory ARM: dts: am43xx-epos-evm: Keep DCDC5 and DCDC6 always on ARM: dts: dra7: Add properties to enable PCIe x2 lane mode Signed-off-by: Olof Johansson commit 1c3a4540839c95bc61bd0f48da1785a30b5fed8a Merge: 236a4234ce40 ddd0dc915647 Author: Olof Johansson Date: Sun Apr 28 12:32:12 2019 -0700 Merge tag 'hisi-arm64-dt-for-5.2' of git://github.com/hisilicon/linux-hisi into arm/dt ARM64: DT: Hisilicon SoCs DT updates for 5.2 * Hi3660 SoC and related boards: - Added DMA support for the uart nodes - Added the asp DMA controller node - Replaced dma-min-chan with dma-channel-mask to follow the binding * Hi3670 SoC and related boards: - Reused Hi3660 reset to support Hi3670, updated the binding document and added dts node - Reused Hi3660 MMC controller to support Hi3670, updated the binding document and added related nodes to support SD and WiFi for the SoC and hikey970 board - Added UFS controller node * tag 'hisi-arm64-dt-for-5.2' of git://github.com/hisilicon/linux-hisi: arm64: dts: hisilicon: hi3670: Add UFS controller support arm64: dts: hi3660: Fixup unofficial dma-min-chan to dma-channel-mask arm64: dts: hi3660: Add hisi asp dma device arm64: dts: hi3660: Add dma to uart nodes arm64: dts: hisilicon: hikey970: Add SD and WiFi support arm64: dts: hisilicon: hi3670: Add MMC controller support dt-bindings: mmc: Add HI3670 MMC controller binding arm64: dts: hisilicon: hi3670: Add reset controller support dt-bindings: reset: Add HI3670 reset controller binding Signed-off-by: Olof Johansson commit 236a4234ce40aadbc2561dd75ff08945a6fbd9e9 Merge: 629d7161870f 78c484a55d91 Author: Olof Johansson Date: Sun Apr 28 12:31:33 2019 -0700 Merge tag 'zynqmp-dt-for-v5.2' of https://github.com/Xilinx/linux-xlnx into arm/dt arm64: dts: zynqmp: DT changes for v5.2 - Align xlnx-zynqmp-clk.h file name and separate binding for clock driver - Add TI quirks to zynqmp boards * tag 'zynqmp-dt-for-v5.2' of https://github.com/Xilinx/linux-xlnx: arm64: zynqmp: dt: Add TI PHY quirk dt-bindings: xilinx: Separate clock binding from firmware doc include: dt-binding: clock: Rename zynqmp header file Signed-off-by: Olof Johansson commit 629d7161870fb6ad0d4ec35c6a5c46d0e4a27928 Merge: 1fbdc2477587 77fc46976e0b Author: Olof Johansson Date: Sun Apr 28 12:29:48 2019 -0700 Merge tag 'samsung-dt64-5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into arm/dt Samsung DTS ARM64 changes for v5.2 1. Use proper clock rates for GSCALER module on TM2 boards. 2. Add clocks for local paths on DECON and GSCALER modules of Exynos5433. 3. Add Slim SecuritySubSystem to Exynos5433. * tag 'samsung-dt64-5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: arm64: dts: exynos: Add SlimSSS to Exynos5433 arm64: dts: exynos: add DSD/GSD clocks to DECONs and GSCALERs of Exynos5433 arm64: dts: exynos: configure GSCALER related clocks on TM2 Signed-off-by: Olof Johansson commit 1fbdc24775878b9d1e8a1b48823552dc969a19fe Merge: 2140eaf2f46f 8cc76b1c7572 Author: Olof Johansson Date: Sun Apr 28 12:29:20 2019 -0700 Merge tag 'samsung-dt-5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into arm/dt Samsung DTS ARM changes for v5.2 1. Use proper ADC on Exynos4412. 2. Extend the Exynos5420 Arndale Octa board with: CPU cooling maps, unused regulators, ADC and UHS-I SD card support. Beside that adjust regulators to proper level and add always-on when needed. 3. Extend the Exynos5260: high speed I2C and proper external interrupts. Also fix shared external interrupt line and use better PLL for MMC clocks. 4. Fix audio recording (broken around v5.1) and microphone recording (since v4.14) on Exynos5422 Odroid XU3 boards. 5. Minor cleanups (stdout-path and bootargs). * tag 'samsung-dt-5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: ARM: dts: exynos: Remove console argument from bootargs ARM: dts: exynos: Use stdout-path property instead of console in bootargs ARM: dts: exynos: Fix spelling mistake of EXYNOS5420 ARM: dts: exynos: Fix audio (microphone) routing on Odroid XU3 ARM: dts: exynos: Always enable necessary APIO_1V8 and ABB_1V8 regulators on Arndale Octa ARM: dts: exynos: Extend the eMMC node on Arndale Octa ARM: dts: exynos: Add support for UHS-I SD cards on Arndale Octa ARM: dts: exynos: Adjust ldo23 and ldo27 to lower levels on Arndale Octa ARM: dts: exynos: Fix audio routing on Odroid XU3 ARM: dts: exynos: Enable ADC on Arndale Octa ARM: dts: exynos: Fix interrupt for shared EINTs on Exynos5260 ARM: dts: exynos: Add interrupts for dedicated EINTs on Exynos5260 ARM: dts: exynos: Add high speed I2C ports for Exynos5260 ARM: dts: exynos: Use bustop PLL as the source for MMC clocks on Exynos5260 ARM: dts: exynos: Order nodes alphabetically in Arndale Octa ARM: dts: exynos: Add CPU cooling on Arndale Octa ARM: dts: exynos: Add unused PMIC regulators on Arndale Octa board ARM: dts: exynos: Use stdout path property on Arndale Octa board ARM: dts: exynos: Document regulator used by ADC on Odroid U3 ARM: dts: exynos: Use ADC for Exynos4x12 on Exynos4412 Signed-off-by: Olof Johansson commit 2140eaf2f46faf2627ec030d7cabf2dda2cb546b Merge: bbf7499dc033 3fca6a1ab935 Author: Olof Johansson Date: Sun Apr 28 12:27:57 2019 -0700 Merge tag 'stm32-dt-for-v5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32 into arm/dt STM32 DT updates for v5.2, round 1 Highlights: ---------- MPU part: - Add initial support of stm32mp157a-dk1 board: This board embeds a STM32MP157a SOC with AC package (TFBGA361, 148 ios) and 512MB of DDR3. Several connections are available on this boards: 4*USB2.0, 1*USB2.0 typeC, SDcard, RJ45, HDMI, Arduino connector, ... - Add initial support of stm32mp157c-dk2 board: This board is a "super-set" of stm32mp157a-dk1. It embeds a STM32MP157c SOC with AC package (TFBGA361, 148 ios) and 512MB of DDR3. Same connections than stm32mp157a-dk1 board are available. Display panel (otm8009a) and Murata wifi/BT combo is added. - Add and enable SD card support (MMCI variant) on stm32mp157c-ed1/ev1 and on stm32mp157a-dk1/dk2 boards. - Add and enable PMIC support (STPMIC1 chip) on stm32mp157c-ed1/ev1 and on stm32mp157a-dk1/dk2 boards. - Add and enable IPCC mailbox support on stm32mp157c-ed1/ev1 and on stm32mp157a-dk1/dk2 boards. - Add sysconfig clock support on stm32mp157c. - Add romem and temperature calibration support on stm32mp157c. - Add SPDIFRX support on stm32mp157c. - Enable CEC on stm32mp157a-dk1/dk2. MCU part: - Add and enable SD card support (MMCI variant) on stm32h743 eval and disco boards. - Add romem and temperature calibration support on stm32f429 (and so stm32f469). - Enable stm32f769 clock driver * tag 'stm32-dt-for-v5.2-1' of git://git.kernel.org/pub/scm/linux/kernel/git/atorgue/stm32: (24 commits) ARM: dts: stm32: enable cec on stm32mp157a-dk1 board ARM: dts: stm32: add cec pins muxing on stm32mp157 ARM: dts: stm32: add ltdc pins muxing on stm32mp157 ARM: dts: stm32: add I2C sleep pins muxing on stm32mp157 ARM: dts: stm32: add power supply of otm8009a on stm32mp157c-dk2 ARM: dts: stm32: Enable STM32F769 clock driver ARM: dts: stm32: add stpmic1 support on stm32mp157a dk1 board ARM: dts: stm32: add stpmic1 support on stm32mp157c ed1 board ARM: dts: stm32: add spdfirx pins to stm32mp157c ARM: dts: stm32: add spdifrx support on stm32mp157c ARM: dts: stm32: Add romem and temperature calibration on stm32f429 ARM: dts: stm32: Add romem and temperature calibration on stm32mp157c ARM: dts: stm32: Add clock on stm32mp157c syscfg ARM: dts: stm32: enable IPCC mailbox support on STM32MP157a-dk1 ARM: dts: stm32: enable IPCC mailbox support on STM32MP157c-ed1 ARM: dts: stm32: add IPCC mailbox support on STM32MP157c ARM: dts: stm32: add sdmmc1 support on stm32mp157a dk1 board ARM: dts: stm32: add sdmmc1 support on stm32mp157c ed1 board ARM: dts: stm32: add sdmmc1 support on stm32mp157c ARM: dts: stm32: add sdmmc1 support on stm32h743i disco board ... Signed-off-by: Olof Johansson commit bbf7499dc033831ae91125a88a062910cdc62cf2 Merge: 2fe743c27f06 6d00c6f8d2e7 Author: Olof Johansson Date: Sun Apr 28 12:16:56 2019 -0700 Merge tag 'aspeed-5.2-devicetree' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/aspeed into arm/dt ASPEED device tree updates for 5.2 - RTC and GFX DRM driver went upstream this cycle - Miscellaneous board updates for Facebook and IBM BMCs * tag 'aspeed-5.2-devicetree' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/aspeed: ARM: dts: aspeed: Add RTC node ARM: dts: aspeed: witherspoon: Update BMC partitioning ARM: dts: aspeed: cmm: enable iio-hwmon-adc ARM: dts: aspeed: tiogapass: Enable VUART ARM: dts: aspeed-g5: Add video engine ARM: dts: aspeed: Enable the GFX IP ARM: dts: aspeed-g5: Add resets and clocks to GFX node ARM: dts: aspeed: witherspoon: Enable vhub ARM: dts: aspeed: palmetto: Fix flash_memory region ARM: dts: aspeed: ast2500: Update flash layout Signed-off-by: Olof Johansson commit 2fe743c27f064d637df7f989333c153f8d4b0e65 Merge: 1a88083b9349 e3414b8c45af Author: Olof Johansson Date: Sun Apr 28 12:16:26 2019 -0700 Merge tag 'renesas-arm64-dt-for-v5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas into arm/dt Renesas ARM64 Based SoC DT Updates for v5.2 * R-Car Gen3 SoC based Salvator-X and Salvator-XS boards - Add GPIO keys support - Sort rwdt node alphabetically * R-Car H3 (r8a7795), M3-W (r8a7796) and M3-N (r8a77965) SoCs - Use extended audio DMAC register * R-Car M3-W (r8a7796) SoC - Remove unneeded sound #address/size-cells * R-Car M3-N (r8a77965) SoC - Add SSIU support for audio * R-Car E3 (r8a77990) and RZ/G2E (r8a774c0) SoCs - Remove invalid compatible value for CSI40 * R-Car E3 (r8a77990) SoC - Cprrect SPDX license identifier style * R-Car E3 (r8a77990) based Ebisu board - Add BD9571 PMIC with DDR0 backup power config - Correct adv7482 hexadecimal register address - Add GPIO expander * R-Car E3 (r8a77990) based Ebisu and D3 (r8a77995) based Draak boards - Update bootargs to bring them into line with other R-Car Gen3 boards - Enable LVDS1 encoder * R-Car D3 (r8a77995) based Draak board - Correct EthernetAVB phy mode - Enable CAN0 and CAN1 * RZ/G2E (r8a774c0) SoC - Add CANFD support - Correct CPU node style * RZ/G2E (r8a774c0) and RZ/G2M (r8a774a1) SoCs - Add clkp2 clock to CAN nodes * RZ/G2E (r8a774c0) based EK874 board - Add LED, CAN and RTC support * tag 'renesas-arm64-dt-for-v5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas: (26 commits) arm64: dts: renesas: salvator-common: Add GPIO keys support arm64: dts: renesas: use extended audio dmac register arm64: dts: renesas: r8a77995: draak: Fix EthernetAVB phy mode to rgmii arm64: dts: renesas: salvator-common: Sort node label arm64: dts: renesas: Update Ebisu and Draak bootargs arm64: dts: renesas: r8a774c0: Add clkp2 clock to CAN nodes arm64: dts: renesas: r8a774c0: Add CANFD support arm64: dts: renesas: r8a774a1: Add clkp2 clock to CAN nodes arm64: dts: renesas: ebisu: Add PMIC DDR0 Backup Power config arm64: dts: renesas: r8a77990-ebisu: Add BD9571 PMIC arm64: dts: renesas: r8a77990: Remove invalid compatible value for CSI40 arm64: dts: renesas: r8a774c0: Remove invalid compatible value for CSI40 arm64: dts: renesas: r8a77995: draak: Enable CAN0, CAN1 arm64: dts: renesas: r8a774c0-cat874: Add RWDT support arm64: dts: renesas: ebisu: Enable VIN5 arm64: dts: renesas: r8a774c0-cat874: Add LEDs support arm64: dts: renesas: r8a774c0-cat874: add RTC support arm64: dts: renesas: cat875: Add CAN support arm64: dts: renesas: r8a774c0: Fix cpu nodes style arm64: dts: renesas: r8a77965: add SSIU support for sound ... Signed-off-by: Olof Johansson commit 1a88083b9349b8310b25d9a9a96802ee4447e6b9 Merge: f6f9683c5aed b4e1728232d6 Author: Olof Johansson Date: Sun Apr 28 12:15:49 2019 -0700 Merge tag 'v5.2-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/dt Core new soc features are hdmi-cec for rk3328, scheduler capacity-values and emmc cleanups for rk3399. New boards are the OrangePi (rk3399) and NanoPi NEO4. Both the OrangePi as well as the NanoPC/Pie family also directly got some additional features added after the boards itself. The Rock960 family (rock960+ficus) got their power-tree cleaned to match the schematics and also got hdmi-audio and their gpu enabled. Mali support also got enabled on the RockPi4 and finally both rk3328-rock64 and rk3328-roc-cc got some additional features. * tag 'v5.2-rockchip-dts64-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: (23 commits) arm64: dts: rockchip: Decrease emmc-phy's drive impedance on rk3399-puma arm64: dts: rockchip: Define drive-impedance-ohm for RK3399's emmc-phy. arm64: dts: rockchip: Disable DCMDs on RK3399's eMMC controller. arm64: dts: rockchip: Add nanopi4 ethernet phy arm64: dts: rockchip: Add PWM fan for NanoPC-T4 arm64: dts: rockchip: Add the fusb typec manager to rk3399-orangepi arm64: dts: rockchip: Specify vid supply for the rk3399-orangepi compass (AK09911) arm64: dts: rockchip: Fix clock names and add missing supplies for bluetooth on rk3399-orangepi arm64: dts: rockchip: Add 12V DCIN regulator to rk3399-ficus arm64: dts: rockchip: Rename vcc_sys into vcc5v0_sys on rk3399-rock960 arm64: dts: rockchip: Add Nanopi NEO4 initial support arm64: dts: rockchip: enable hdmi audio out for rk3399-rockpro64 arm64: dts: rockchip: Add support for the Orange Pi RK3399 board. arm64: dts: rockchip: enable mali on rock960 boards arm64: dts: rockchip: enable mali on Rock Pi 4 arm64: dts: rockchip: add rk3328-roc-cc cpu-supply entries for all cpu nodes arm64: dts: rockchip: give some life to the rk3328-roc-cc leds arm64: dts: rockchip: add #sound-dai-cells to HDMI of rk3328 arm64: dts: rockchip: add ir-receiver node on rk3328-rock64 arm64: dts: rockchip: add leds node on rk3328-rock64 ... Signed-off-by: Olof Johansson commit f6f9683c5aedff214433fa130e67a79f08a47fdb Merge: 1c93235a6d92 4b028ebd4e3d Author: Olof Johansson Date: Sun Apr 28 12:15:24 2019 -0700 Merge tag 'v5.2-rockchip-dts32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into arm/dt Quite a bit of love for the rk3288-veyron chromeos devices and a number of cleanups for rk3288 from that area, hdmi support for the old rk3066 a small rv1108-eglin-r1 cleanup and wifi+hdmi-cec for the tinker board. * tag 'v5.2-rockchip-dts32-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: ARM: dts: rockchip: enable vop0 and hdmi nodes to rk3066a-mk808 ARM: dts: rockchip: add rk3066 hdmi nodes ARM: dts: rockchip: Add device tree for rk3288-veyron-mighty dt-bindings: ARM: dts: rockchip: Add bindings for rk3288-veyron-mighty ARM: dts: rockchip: Add vdd_logic to rk3288-veyron ARM: dts: rockchip: Add dvs-gpios to rk3288-veyron-jerry ARM: dts: rockchip: Add rk3288-veyron-jerry rev 10-15 dt-bindings: ARM: dts: rockchip: Add rk3288-veyron-jerry rev 10-15 ARM: dts: rockchip: Fix gic/efuse sort ordering for rk3288 ARM: dts: rockchip: Enable WiFi on rk3288-tinker ARM: dts: rockchip: add grf reference in rk3288 tsadc node ARM: dts: rockchip: Enable HDMI CEC on rk3288-tinker-s ARM: dts: rockchip: remove disable-wp from rv1108-elgin-r1 emmc node Signed-off-by: Olof Johansson commit 1c93235a6d92deaab38bbb1cfc764b0757331ebb Merge: 0159225bc9e5 07f9da290067 Author: Olof Johansson Date: Sun Apr 28 12:14:29 2019 -0700 Merge tag 'amlogic-dt' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into arm/dt ARM: dts: Amlogic updates for v5.2 - add GPIO line names for odroid-c1 boards - support internal clock measure driver * tag 'amlogic-dt' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic: ARM: dts: meson8b: odroidc1: add the GPIO line names ARM: dts: meson8b: add the internal clock measurer ARM: dts: meson8: add the internal clock measurer Signed-off-by: Olof Johansson commit 0159225bc9e5add3703950c1a5b082b52e731120 Merge: 79a3aaa7b82e e2cffeb398f4 Author: Olof Johansson Date: Sun Apr 28 12:14:10 2019 -0700 Merge tag 'amlogic-dt64' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into arm/dt arm64: dts: Amlogic updates for v5.2 Highlights - new board: SEI Robotics 510, based on S905X2 SoC (G12A) - enable more periphearls for S905X2 based boards * tag 'amlogic-dt64' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic: arm64: dts: meson-g12a: Add CMA reserved memory arm64: dts: meson-g12a-x96-max: Enable BT Module arm64: dts: meson-g12a-x96-max: add regulators arm64: dts: meson-g12a-sei510: add regulators arm64: dts: meson-g12a-x96-max: add uart_AO pinctrl arm64: dts: meson-g12a-sei510: add uart_AO pinctrl arm64: dts: meson-g12a-u200: add uart_AO pinctrl arm64: dts: meson: g12a: Add UART A, B & C nodes and pins arm64: dts: meson: g12a: add reset controller arm64: dts: meson: g12a: add uart_ao_a pinctrl arm64: dts: meson: g12a: add pinctrl support controllers arm64: dts: meson: g12a: Add AO Clock + Reset Controller support arm64: dts: meson-gxm-nexbox-a1: Enable USB arm64: dts: meson: g12a: add efuse arm64: dts: meson: g12a: add secure monitor arm64: dts: meson-gxl-s905d-phicomm-n1: add status LED arm64: dts: meson-g12a: Add AO Secure node arm64: dts: Add SEI Robotics SEI510 Board vendor-prefixes: Add prefix for Shenzhen SEI Robotics Co., Ltd Signed-off-by: Olof Johansson commit d04e1ac4284ad23f7bb33507d86ce568be0b54f8 Merge: 79a3aaa7b82e 029da5e5266c Author: Olof Johansson Date: Sun Apr 28 12:13:16 2019 -0700 Merge tag 'amlogic-defconfig' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into arm/defconfig ARM: defconfig: Amlogic updates for v5.2 - multi_v7_defconfig: enable the Amlogic Meson ADC and eFuse drivers * tag 'amlogic-defconfig' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic: ARM: multi_v7_defconfig: enable the Amlogic Meson ADC and eFuse drivers Signed-off-by: Olof Johansson commit 424adc176aa2d0e1ff5a9c75cf3ca18cb9ca4e31 Merge: 79a3aaa7b82e fdda0a6adc33 Author: Olof Johansson Date: Sun Apr 28 12:07:53 2019 -0700 Merge tag 'amlogic-drivers' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic into arm/drivers soc: Amlogic updates for v5.2 - socinfo: support new SoCs / packages * tag 'amlogic-drivers' of https://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-amlogic: meson-gx-socinfo: add missing of_node_put after of_device_is_available soc: amlogic: gx-socinfo: Add new SoC IDs and Packages IDs soc: amlogic: gx-socinfo: Add mask for each SoC packages Signed-off-by: Olof Johansson commit 28ba53c07638f31b153e3a32672a6124d0ff2a97 Author: Masahiro Yamada Date: Sun Apr 28 13:45:36 2019 -0400 unicode: refactor the rule for regenerating utf8data.h scripts/mkutf8data is used only when regenerating utf8data.h, which never happens in the normal kernel build. However, it is irrespectively built if CONFIG_UNICODE is enabled. Moreover, there is no good reason for it to reside in the scripts/ directory since it is only used in fs/unicode/. Hence, move it from scripts/ to fs/unicode/. In some cases, we bypass build artifacts in the normal build. The conventional way to do so is to surround the code with ifdef REGENERATE_*. For example, - 7373f4f83c71 ("kbuild: add implicit rules for parser generation") - 6aaf49b495b4 ("crypto: arm,arm64 - Fix random regeneration of S_shipped") I rewrote the rule in a more kbuild'ish style. In the normal build, utf8data.h is just shipped from the check-in file. $ make [ snip ] SHIPPED fs/unicode/utf8data.h CC fs/unicode/utf8-norm.o CC fs/unicode/utf8-core.o CC fs/unicode/utf8-selftest.o AR fs/unicode/built-in.a If you want to generate utf8data.h based on UCD, put *.txt files into fs/unicode/, then pass REGENERATE_UTF8DATA=1 from the command line. The mkutf8data tool will be automatically compiled to generate the utf8data.h from the *.txt files. $ make REGENERATE_UTF8DATA=1 [ snip ] HOSTCC fs/unicode/mkutf8data GEN fs/unicode/utf8data.h CC fs/unicode/utf8-norm.o CC fs/unicode/utf8-core.o CC fs/unicode/utf8-selftest.o AR fs/unicode/built-in.a I renamed the check-in utf8data.h to utf8data.h_shipped so that this will work for the out-of-tree build. You can update it based on the latest UCD like this: $ make REGENERATE_UTF8DATA=1 fs/unicode/ $ cp fs/unicode/utf8data.h fs/unicode/utf8data.h_shipped Also, I added entries to .gitignore and dontdiff. Signed-off-by: Masahiro Yamada Signed-off-by: Theodore Ts'o commit 5f61d9517f17069dbedb94aa71034f0a22e014ef Author: Andy Shevchenko Date: Sun Apr 28 20:19:06 2019 +0300 pinctrl: intel: Increase readability of intel_gpio_update_pad_mode() We better to use usual pattern for read-modify-update, than doing some operations in definition block. No functional change. Signed-off-by: Andy Shevchenko commit a0a5f7661e1c49de0c1f93ca435ba2880b88fc5c Author: Chris Chiu Date: Mon Apr 15 13:53:58 2019 +0800 pinctrl: intel: Retain HOSTSW_OWN for requested gpio pin The touchpad of the ASUS laptops E403NA, X540NA, X541NA are not responsive after suspend/resume. The following error message shows after resume. i2c_hid i2c-ELAN1200:00: failed to reset device. On these laptops, the touchpad interrupt is connected via a GPIO pin which is controlled by Intel pinctrl. After system resumes, the GPIO is in ACPI mode and no longer works as an IRQ. This commit saves the HOSTSW_OWN value during suspend, make sure the HOSTSW_OWN mode remains the same after resume. Signed-off-by: Chris Chiu Acked-by: Mika Westerberg Signed-off-by: Andy Shevchenko commit 03d5f641dc711eb93145ded91ed68b4be729be4d Author: Tomer Tayar Date: Sun Apr 28 19:17:38 2019 +0300 habanalabs: Use single pool for CPU accessible host memory The device's CPU accessible memory on host is managed in a dedicated pool, except for 2 regions - Primary Queue (PQ) and Event Queue (EQ) - which are allocated from generic DMA pools. Due to address length limitations of the CPU, the addresses of all these memory regions must have the same MSBs starting at bit 40. This patch modifies the allocation of the PQ and EQ to be also from the dedicated pool, to ensure compliance with the limitation. Signed-off-by: Tomer Tayar Signed-off-by: Oded Gabbay commit 1fd7c3b438a2e4741435ed4d45546c03abf045b2 Author: Tobin C. Harding Date: Sun Apr 28 09:56:52 2019 +1000 kobject: Improve doc clarity kobject_init_and_add() Function kobject_init_and_add() is currently misused in a number of places in the kernel. On error return kobject_put() must be called but is at times not. Make the function documentation more explicit about calling kobject_put() in the error path. Signed-off-by: Tobin C. Harding Signed-off-by: Greg Kroah-Hartman commit 92067f843854be0eef1e41ff00cb465247a83c42 Author: Tobin C. Harding Date: Sun Apr 28 10:48:10 2019 +1000 kobject: Improve docs for kobject_add/del There is currently some confusion on how to wind back kobject_init_and_add() during the error paths in code that uses this function. Add documentation to kobject_add() and kobject_del() to help clarify the usage. Signed-off-by: Tobin C. Harding Signed-off-by: Greg Kroah-Hartman commit 73ce6abae5f95db071fa6626c88af64bd0d27c0f Author: Christoph Hellwig Date: Sun Apr 28 08:34:02 2019 -0700 iomap: convert to SPDX identifier Use SPDX-License-Identifier instead of GPLv2 boilerplate. Signed-off-by: Christoph Hellwig Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong commit 5f0d736e7f7db586141f974821b6ca6c1d906d5b Merge: b1a79360ee86 9076c49bdca2 Author: David S. Miller Date: Sun Apr 28 08:42:41 2019 -0400 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next Daniel Borkmann says: ==================== pull-request: bpf-next 2019-04-28 The following pull-request contains BPF updates for your *net-next* tree. The main changes are: 1) Introduce BPF socket local storage map so that BPF programs can store private data they associate with a socket (instead of e.g. separate hash table), from Martin. 2) Add support for bpftool to dump BTF types. This is done through a new `bpftool btf dump` sub-command, from Andrii. 3) Enable BPF-based flow dissector for skb-less eth_get_headlen() calls which was currently not supported since skb was used to lookup netns, from Stanislav. 4) Add an opt-in interface for tracepoints to expose a writable context for attached BPF programs, used here for NBD sockets, from Matt. 5) BPF xadd related arm64 JIT fixes and scalability improvements, from Daniel. 6) Change the skb->protocol for bpf_skb_adjust_room() helper in order to support tunnels such as sit. Add selftests as well, from Willem. 7) Various smaller misc fixes. ==================== Signed-off-by: David S. Miller commit a38693d77576145673a7b3d4d771d992282ad13b Author: Oded Gabbay Date: Sun Apr 28 10:18:35 2019 +0300 habanalabs: return old dram bar address upon change This patch changes the ASIC interface function that changes the DRAM bar window. The change is to return the old address that the DRAM bar pointed to instead of an error code. This simplifies the code that use this function (mainly in debugfs) to restore the bar to the old setting. This is also needed for easier support in future ASICs. Signed-off-by: Oded Gabbay commit cb5173594d50c72b7bfa14113dfc5084b4d2f726 Author: Wenwen Wang Date: Sat Apr 27 01:06:46 2019 -0500 ALSA: usb-audio: Fix a memory leak bug In parse_audio_selector_unit(), the string array 'namelist' is allocated through kmalloc_array(), and each string pointer in this array, i.e., 'namelist[]', is allocated through kmalloc() in the following for loop. Then, a control instance 'kctl' is created by invoking snd_ctl_new1(). If an error occurs during the creation process, the string array 'namelist', including all string pointers in the array 'namelist[]', should be freed, before the error code ENOMEM is returned. However, the current code does not free 'namelist[]', resulting in memory leaks. To fix the above issue, free all string pointers 'namelist[]' in a loop. Signed-off-by: Wenwen Wang Cc: Signed-off-by: Takashi Iwai commit f341d89790b0b7f99ca7835e0cf7de1026ceae39 Author: Colin Ian King Date: Tue Apr 23 16:10:17 2019 +0100 powerpc/mm: fix spelling mistake "Outisde" -> "Outside" There are several identical spelling mistakes in warning messages, fix these. Signed-off-by: Colin Ian King Signed-off-by: Michael Ellerman commit 4ab1ae3453c92940dc752e2c98aa494d3eaedc09 Author: Fuqian Huang Date: Fri Apr 26 11:16:24 2019 +0800 ALSA: gus: fix misuse of %x Pointers should be printed with %p or %px rather than cast to long type and printed with %lx. Drop the address printing. Signed-off-by: Fuqian Huang Signed-off-by: Takashi Iwai commit 607ca3bd220f4022e6f5356026b19dafc363863a Author: Kailang Yang Date: Fri Apr 26 16:35:41 2019 +0800 ALSA: hda/realtek - EAPD turn on later Let EAPD turn on after set pin output. [ NOTE: This change is supposed to reduce the possible click noises at (runtime) PM resume. The functionality should be same (i.e. the verbs are executed correctly) no matter which order is, so this should be safe to apply for all codecs -- tiwai ] Signed-off-by: Kailang Yang Cc: Signed-off-by: Takashi Iwai commit b1a79360ee862f8ada4798ad2346fa45bb41b527 Author: Vishal Kulkarni Date: Fri Apr 26 13:58:48 2019 +0530 cxgb4: Delete all hash and TCAM filters before resource cleanup During driver unload, hash/TCAM filter deletion doesn't wait for completion.This patch deletes all the filters with completion before clearing the resources. Signed-off-by: Vishal Kulkarni Signed-off-by: David S. Miller commit 7324d50e47f3a04adc21babeb24d8406efd0e492 Author: Andrew Lunn Date: Sat Apr 27 19:19:10 2019 +0200 net: dsa: mv88e6xxx: Remove legacy probe support Remove the legacy method of probing the mv88e6xxx driver, now that all the mainline boards have been converted to use mdio based probing for a number of cycles. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 6acda8fbbda585acc44efd0f66f34a21b4dd2d31 Merge: e56e2515669a 1ba22bf547a3 Author: David S. Miller Date: Sat Apr 27 20:23:05 2019 -0400 Merge branch 'mv88e6060-cleanups' Andrew Lunn says: ==================== mv88e6060 cleanups This patchset performs some cleanups of the mv88e6060 DSA driver, as a step towards making it an MDIO device, rather than use the old probing method. The changes here are all pretty mechanical and only compile tested. ==================== Signed-off-by: David S. Miller commit 1ba22bf547a3c92d3e6c5c8d3e3ebe48a7bc26b3 Author: Andrew Lunn Date: Sat Apr 27 19:32:59 2019 +0200 net: dsa: mv88e6060: Replace REG_READ macro The REG_READ macro contains a return statement, making it not very safe. Remove it by inlining the code. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit c4362c37431b999c84dd047f0125592987c09142 Author: Andrew Lunn Date: Sat Apr 27 19:32:58 2019 +0200 net: dsa: mv88e6060: Replace REG_WRITE macro The REG_WRITE macro contains a return statement, making it not very safe. Remove it by inlining the code. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 3e8bc1b886411459f94d57557409bb9bfdf89f85 Author: Andrew Lunn Date: Sat Apr 27 19:32:57 2019 +0200 net: dsa: mv88e6060: Replace ds with priv Pass around priv, not ds. This will help with changing to an mdio driver, and makes this driver more like mv88e6xxx. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 406a4362c252a1ba62509728b2ea638c5059f463 Author: Andrew Lunn Date: Sat Apr 27 19:32:56 2019 +0200 net: dsa: mv88e6060: Add SPDX header Add an SPDX header, and remove the license text. Signed-off-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit e56e2515669af9f2444228db39699d02c5a4989a Author: Murilo Fossa Vicentini Date: Thu Apr 25 11:02:33 2019 -0300 ibmvnic: Add device identification to requested IRQs The ibmvnic driver currently uses the same fixed name when using request_irq, this makes it hard to parse when multiple VNIC devices are available at the same time. This patch adds the unit_address as the device identification along with an id for each queue. The original idea was to use the interface name as an identifier, but it is not feasible given these requests happen at adapter probe, and at this point netdev is not yet registered so it doesn't have the proper name assigned to it. Signed-off-by: Murilo Fossa Vicentini Reviewed-by: Mauro S. M. Rodrigues Reviewed-by: Thomas Falcon Signed-off-by: David S. Miller commit 026cc9c3eeacb6537e06f284c0fc7ed435af1707 Author: David S. Miller Date: Sat Apr 27 20:08:25 2019 -0400 cpsw: Put back cpsw_ndo_poll_controller() To fix the build. Signed-off-by: David S. Miller commit 7cb523d4fec7f8aed894e4080ff4bfb4383d9132 Merge: 84ee91640fc4 c24eef283a23 Author: David S. Miller Date: Sat Apr 27 17:11:49 2019 -0400 Merge branch 'net-ethernet-ti-clean-up-and-optimizations' Grygorii Strashko says: ==================== net: ethernet: ti: clean up and optimizations This is a preparation series for introducing new switchbase TI CPSW driver which was originally introduced [1][2] by Ilias Apalodimas and also discussed in private mails and at Netdev x13 confernce. Following discussions and suggestions (mostly by Andrew and Ivan) we going to introduce the new driver which is operating in dual-emac mode by default, thus working as 2 individual network interfaces. When both interfaces joined the bridge - CPSW driver will enter a switch mode and discard dual_mac configuration. The CPSW will be switched back to dual_mac mode if any port leaves the bridge. All configuration is going to be implemented via switchdev API. Hence overall change is already very big I'm sending prerequisite patches which are mostly minor fixes/clean ups and code refactoring to separate common parts to be reused by both drivers. Probably the most serious change from functional point of view is Patch 11. These patches were NFS boot tetested on TI AM335x/AM437x/AM5xx boards. These patches can be found at: git@git.ti.com:~gragst/ti-linux-kernel/gragsts-ti-linux-kernel.git branch: lkml-5.1-cpsw-clean-up-v2 changes in v2: - added new patch 16 to get rid of force type conversation - other chages metioned in patches ==================== Signed-off-by: David S. Miller commit c24eef283a23b85cbd755265539dc4dbe3fee949 Author: Grygorii Strashko Date: Fri Apr 26 20:12:42 2019 +0300 net: ethernet: ti: cpsw: move ethtool func in separate file As a preparatory patch to add support for a switchdev based cpsw driver, move common ethtool functions to separate cpsw-ethtool.c file so that they can be used across both drivers. It will simplify CPSW driver code maintenance also. Signed-off-by: Grygorii Strashko Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit cfc08345ec2201a67d5511fa90831b79f5183dda Author: Grygorii Strashko Date: Fri Apr 26 20:12:41 2019 +0300 net: ethernet: ti: cpsw: switch to use mac sl api Switch CPSW driver to use the new MAC SL API. Signed-off-by: Grygorii Strashko Signed-off-by: David S. Miller commit a71a18f24d2631d8e2c527f7902e9f2665b3f6b6 Author: Grygorii Strashko Date: Fri Apr 26 20:12:40 2019 +0300 net: ethernet: ti: cpsw: introduce mac sl module api The MAC SL submodule has a lot of common functions between many of TI SoCs AM335x/AM437x/DRA7(AM57xx), Keystone 2 66AK2HK/E/L/G and K3 AM654, but there are also differences especially in registers offsets and sets of supported functions. This patch introduces the MAC SL submodule API which is intended to provide a common way to access the MAC SL submodule and hide HW integrations details. Signed-off-by: Grygorii Strashko Signed-off-by: Sekhar Nori Signed-off-by: David S. Miller commit e6a84624911336599c0c8e8f6d5aa068c891a458 Author: Grygorii Strashko Date: Fri Apr 26 20:12:39 2019 +0300 net: ethernet: ti: cpsw: move common hw init code in separate func move common hw init code in separate function as preparation for adding new switchdev driver. Signed-off-by: Grygorii Strashko Signed-off-by: David S. Miller commit 5dea39851476216f6535a9fb0320611bdb576d49 Author: Grygorii Strashko Date: Fri Apr 26 20:12:38 2019 +0300 net: ethernet: ti: davinci_cpdma: use dma_addr_t for desc_mem_phys and desc_hw_addr Use dma_addr_t for desc_mem_phys and desc_hw_addr to avoid types conversions. Signed-off-by: Grygorii Strashko Signed-off-by: David S. Miller commit 814b4a67e5fd1cd925c84f8e38f069753d7c48fc Author: Grygorii Strashko Date: Fri Apr 26 20:12:37 2019 +0300 net: ethernet: ti: cpsw: move cpsw definitions in priv header As a preparatory patch to add a switchdev based cpsw driver move the common header definitions to cpsw_priv.h. The plan is to develop a new driver on switchdev driver model and obsolete the current cpsw driver after all required functions are added to the new driver. This patch allows the same header file to be re-used on both drivers during the transition period. Signed-off-by: Ilias Apalodimas Signed-off-by: Grygorii Strashko Signed-off-by: David S. Miller commit 83a8471ba25518bf886c2b5e8ab232e130942929 Author: Grygorii Strashko Date: Fri Apr 26 20:12:36 2019 +0300 net: ethernet: ti: cpsw: refactor probe to group common hw initialization Rework probe to group common hw initialization: - group resources request at the beginning of the probe - move net device initialization and registration at the end of the probe - drop cpsw_slave_init as preparation of refactoring of common hw initialization code to separate function. Signed-off-by: Grygorii Strashko Signed-off-by: David S. Miller commit 03f66f06756093c38927115502dd5e9277d3ca88 Author: Grygorii Strashko Date: Fri Apr 26 20:12:35 2019 +0300 net: ethernet: ti: davinci_mdio: use devm_ioremap() The Davinci MDIO in most of the case implemented as module inside of TI CPSW subsystem and fully depends on CPSW to be enabled, but historically it's implemented as separate Platform device/driver and defined in DT files in two ways: - as standalone node - as child node of CPSW subsystem. In later case it's required to split CPSW subsystem "reg" property to exclude MDIO I/O range which is not useful. Hence, replace devm_ioremap_resource() with devm_ioremap() to allow define full I/O range in parent CPSW subsystem without spliting. Signed-off-by: Grygorii Strashko Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 7cb528c55379ffbffc7dca91397c5481422a6af5 Author: Grygorii Strashko Date: Fri Apr 26 20:12:34 2019 +0300 net: ethernet: ti: ale: do not auto delete mcast super entries Do not delete multicast supervisory packet's (SUPER) entries while flushing multicast addresses from ALE table cpsw_ale_flush_multicast(). Those entries have to be added/removed only explicitly. Signed-off-by: Grygorii Strashko Signed-off-by: David S. Miller commit 06095f34f8a0a2c4c83a19514c272699edd5f80b Author: Grygorii Strashko Date: Fri Apr 26 20:12:33 2019 +0300 net: ethernet: ti: cpsw: fix allmulti cfg in dual_mac mode Now CPSW ALE will set/clean Host port bit in Unregistered Multicast Flood Mask (UNREG_MCAST_FLOOD_MASK) for every VLAN without checking if this port belongs to VLAN or not when ALLMULTI mode flag is set for nedev. This is working in non dual_mac mode, but in dual_mac - it causes enabling/disabling ALLMULTI flag for both ports. Hence fix it by adding additional parameter to cpsw_ale_set_allmulti() to specify ALE port number for which ALLMULTI has to be enabled and check if port belongs to VLAN before modifying UNREG_MCAST_FLOOD_MASK. Signed-off-by: Grygorii Strashko Signed-off-by: David S. Miller commit 91c88659a7e85d0723ea95bd54f7a64d1a45d27c Author: Grygorii Strashko Date: Fri Apr 26 20:12:32 2019 +0300 net: ethernet: ti: ale: use define for host port in cpsw_ale_set_allmulti() Use ALE_PORT_HOST define for host port in cpsw_ale_set_allmulti() instead of constants. Reviewed-by: Andrew Lunn Signed-off-by: Grygorii Strashko Signed-off-by: David S. Miller commit af9f4e6a33921a43d93d0e516cbcd555d35cf0e2 Author: Grygorii Strashko Date: Fri Apr 26 20:12:31 2019 +0300 net: ethernet: ti: ale: fix mcast super setting Use correct define ALE_SUPER for ALE Multicast Address Table Entry Supervisory Packet (SUPER) bit setting instead of ALE_BLOCKED. No issues were observed till now as it have never been set, but it's going to be used by new CPSW switch driver. Signed-off-by: Grygorii Strashko Signed-off-by: David S. Miller commit 10ae80547799a0de61741510a9492e6cc80b3ce2 Author: Grygorii Strashko Date: Fri Apr 26 20:12:30 2019 +0300 net: ethernet: ti: cpsw: drop cpsw_tx_packet_submit() Drop unnecessary wrapper function cpsw_tx_packet_submit() which is used only in one place. Reviewed-by: Andrew Lunn Signed-off-by: Grygorii Strashko Signed-off-by: David S. Miller commit d183a9428dc52898e0d672af91500ef2265efd00 Author: Grygorii Strashko Date: Fri Apr 26 20:12:29 2019 +0300 net: ethernet: ti: cpsw: use devm_alloc_etherdev_mqs() Use devm_alloc_etherdev_mqs() and simplify code. Reviewed-by: Andrew Lunn Signed-off-by: Grygorii Strashko Signed-off-by: David S. Miller commit 56bf8a5df3450a7d12b6f7f2372c38de28507706 Author: Grygorii Strashko Date: Fri Apr 26 20:12:28 2019 +0300 net: ethernet: ti: cpsw: drop pinctrl_pm_select_default_state call Drop pinctrl_pm_select_default_state call from probe as default pinctrl state is set by DD core. Reviewed-by: Andrew Lunn Signed-off-by: Grygorii Strashko Signed-off-by: David S. Miller commit c8fb566875b7f5b38ad0deb4584c3704a47cfa4f Author: Grygorii Strashko Date: Fri Apr 26 20:12:27 2019 +0300 net: ethernet: ti: cpsw: use local var dev in probe Use local variable struct device *dev in probe to simplify code. Signed-off-by: Grygorii Strashko Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 9763a891a5966db5799df84d46e45b2d22460b94 Author: Grygorii Strashko Date: Fri Apr 26 20:12:26 2019 +0300 net: ethernet: ti: cpsw: update cpsw_split_res() to accept cpsw_common Update cpsw_split_res() to accept struct cpsw_common instead of struct net_device to simplify code. Signed-off-by: Grygorii Strashko Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 16f54164828b253d7792b67b05c07540f236ece5 Author: Grygorii Strashko Date: Fri Apr 26 20:12:25 2019 +0300 net: ethernet: ti: cpsw: drop CONFIG_TI_CPSW_ALE config option All TI drivers CPSW/NETCP can't work without ALE, hence simplify build of those drivers by always linking cpsw_ale and drop CONFIG_TI_CPSW_ALE config option. Signed-off-by: Grygorii Strashko Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 99f629718272974405e8d180d2fa70c03c06d61f Author: Grygorii Strashko Date: Fri Apr 26 20:12:24 2019 +0300 net: ethernet: ti: cpsw: drop TI_DAVINCI_CPDMA config option Both drivers CPSW and EMAC can't work without CPDMA, hence simplify build of those drivers by always linking davinci_cpdma and drop TI_DAVINCI_CPDMA config option. Note. the davinci_emac driver module was changed to "ti_davinci_emac" to make build work. Signed-off-by: Grygorii Strashko Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 68cf027f3d9d586366391beed8721ba319fee5c0 Author: Grygorii Strashko Date: Fri Apr 26 20:12:23 2019 +0300 net: ethernet: ti: convert to SPDX license identifiers Replace textual license with SPDX-License-Identifier. Signed-off-by: Grygorii Strashko Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 84ee91640fc4b1f4cc1039d5a6b55dff032786e9 Merge: f6ad55a6a184 ef6243acb478 Author: David S. Miller Date: Sat Apr 27 17:07:22 2019 -0400 Merge branch 'strict-netlink-validation' Johannes Berg says: ==================== strict netlink validation Here's a respin, with the following changes: * change message when rejecting unknown attribute types (David Ahern) * drop nl80211 patch - I'll apply it separately * remove NL_VALIDATE_POLICY - we have a lot of calls to nla_parse() that really should be without a policy as it has previously been validated - need to find a good way to handle this later * include the correct generic netlink change (d'oh, sorry) ==================== Acked-by: David Ahern Signed-off-by: David S. Miller commit ef6243acb4782df587a4d7d6c310fa5b5d82684b Author: Johannes Berg Date: Fri Apr 26 14:07:31 2019 +0200 genetlink: optionally validate strictly/dumps Add options to strictly validate messages and dump messages, sometimes perhaps validating dump messages non-strictly may be required, so add an option for that as well. Since none of this can really be applied to existing commands, set the options everwhere using the following spatch: @@ identifier ops; expression X; @@ struct genl_ops ops[] = { ..., { .cmd = X, + .validate = GENL_DONT_VALIDATE_STRICT | GENL_DONT_VALIDATE_DUMP, ... }, ... }; For new commands one should just not copy the .validate 'opt-out' flags and thus get strict validation. Signed-off-by: Johannes Berg Signed-off-by: David S. Miller commit 56738f460841761abc70347c919d5c45f6f05a42 Author: Johannes Berg Date: Fri Apr 26 14:07:30 2019 +0200 netlink: add strict parsing for future attributes Unfortunately, we cannot add strict parsing for all attributes, as that would break existing userspace. We currently warn about it, but that's about all we can do. For new attributes, however, the story is better: nobody is using them, so we can reject bad sizes. Also, for new attributes, we need not accept them when the policy doesn't declare their usage. David Ahern and I went back and forth on how to best encode this, and the best way we found was to have a "boundary type", from which point on new attributes have all possible validation applied, and NLA_UNSPEC is rejected. As we didn't want to add another argument to all functions that get a netlink policy, the workaround is to encode that boundary in the first entry of the policy array (which is for type 0 and thus probably not really valid anyway). I put it into the validation union for the rare possibility that somebody is actually using attribute 0, which would continue to work fine unless they tried to use the extended validation, which isn't likely. We also didn't find any in-tree users with type 0. The reason for setting the "start strict here" attribute is that we never really need to start strict from 0, which is invalid anyway (or in legacy families where that isn't true, it cannot be set to strict), so we can thus reserve the value 0 for "don't do this check" and don't have to add the tag to all policies right now. Thus, policies can now opt in to this validation, which we should do for all existing policies, at least when adding new attributes. Note that entirely *new* policies won't need to set it, as the use of that should be using nla_parse()/nlmsg_parse() etc. which anyway do fully strict validation now, regardless of this. So in effect, this patch only covers the "existing command with new attribute" case. Signed-off-by: Johannes Berg Signed-off-by: David S. Miller commit 3de644035446567017e952f16da2594d6bd195fc Author: Johannes Berg Date: Fri Apr 26 14:07:29 2019 +0200 netlink: re-add parse/validate functions in strict mode This re-adds the parse and validate functions like nla_parse() that are now actually strict after the previous rename and were just split out to make sure everything is converted (and if not compilation of the previous patch would fail.) Signed-off-by: Johannes Berg Signed-off-by: David S. Miller commit 8cb081746c031fb164089322e2336a0bf5b3070c Author: Johannes Berg Date: Fri Apr 26 14:07:28 2019 +0200 netlink: make validation more configurable for future strictness We currently have two levels of strict validation: 1) liberal (default) - undefined (type >= max) & NLA_UNSPEC attributes accepted - attribute length >= expected accepted - garbage at end of message accepted 2) strict (opt-in) - NLA_UNSPEC attributes accepted - attribute length >= expected accepted Split out parsing strictness into four different options: * TRAILING - check that there's no trailing data after parsing attributes (in message or nested) * MAXTYPE - reject attrs > max known type * UNSPEC - reject attributes with NLA_UNSPEC policy entries * STRICT_ATTRS - strictly validate attribute size The default for future things should be *everything*. The current *_strict() is a combination of TRAILING and MAXTYPE, and is renamed to _deprecated_strict(). The current regular parsing has none of this, and is renamed to *_parse_deprecated(). Additionally it allows us to selectively set one of the new flags even on old policies. Notably, the UNSPEC flag could be useful in this case, since it can be arranged (by filling in the policy) to not be an incompatible userspace ABI change, but would then going forward prevent forgetting attribute entries. Similar can apply to the POLICY flag. We end up with the following renames: * nla_parse -> nla_parse_deprecated * nla_parse_strict -> nla_parse_deprecated_strict * nlmsg_parse -> nlmsg_parse_deprecated * nlmsg_parse_strict -> nlmsg_parse_deprecated_strict * nla_parse_nested -> nla_parse_nested_deprecated * nla_validate_nested -> nla_validate_nested_deprecated Using spatch, of course: @@ expression TB, MAX, HEAD, LEN, POL, EXT; @@ -nla_parse(TB, MAX, HEAD, LEN, POL, EXT) +nla_parse_deprecated(TB, MAX, HEAD, LEN, POL, EXT) @@ expression NLH, HDRLEN, TB, MAX, POL, EXT; @@ -nlmsg_parse(NLH, HDRLEN, TB, MAX, POL, EXT) +nlmsg_parse_deprecated(NLH, HDRLEN, TB, MAX, POL, EXT) @@ expression NLH, HDRLEN, TB, MAX, POL, EXT; @@ -nlmsg_parse_strict(NLH, HDRLEN, TB, MAX, POL, EXT) +nlmsg_parse_deprecated_strict(NLH, HDRLEN, TB, MAX, POL, EXT) @@ expression TB, MAX, NLA, POL, EXT; @@ -nla_parse_nested(TB, MAX, NLA, POL, EXT) +nla_parse_nested_deprecated(TB, MAX, NLA, POL, EXT) @@ expression START, MAX, POL, EXT; @@ -nla_validate_nested(START, MAX, POL, EXT) +nla_validate_nested_deprecated(START, MAX, POL, EXT) @@ expression NLH, HDRLEN, MAX, POL, EXT; @@ -nlmsg_validate(NLH, HDRLEN, MAX, POL, EXT) +nlmsg_validate_deprecated(NLH, HDRLEN, MAX, POL, EXT) For this patch, don't actually add the strict, non-renamed versions yet so that it breaks compile if I get it wrong. Also, while at it, make nla_validate and nla_parse go down to a common __nla_validate_parse() function to avoid code duplication. Ultimately, this allows us to have very strict validation for every new caller of nla_parse()/nlmsg_parse() etc as re-introduced in the next patch, while existing things will continue to work as is. In effect then, this adds fully strict validation for any new command. Signed-off-by: Johannes Berg Signed-off-by: David S. Miller commit 6f455f5f4e9c28aefaefbe18ce7304b499645d75 Author: Johannes Berg Date: Fri Apr 26 14:07:27 2019 +0200 netlink: add NLA_MIN_LEN Rather than using NLA_UNSPEC for this type of thing, use NLA_MIN_LEN so we can make NLA_UNSPEC be NLA_REJECT under certain conditions for future attributes. While at it, also use NLA_EXACT_LEN for the struct example. Signed-off-by: Johannes Berg Signed-off-by: David S. Miller commit f6ad55a6a184ebdf3d98a90eab0895f73ce9797e Merge: c7881b4a97e2 f78c6032c4cb Author: David S. Miller Date: Sat Apr 27 17:03:44 2019 -0400 Merge branch 'nla_nest_start' Michal Kubecek says: ==================== make nla_nest_start() add NLA_F_NESTED flag One of the comments in recent review of the ethtool netlink series pointed out that proposed ethnl_nest_start() helper which adds NLA_F_NESTED to second argument of nla_nest_start() is not really specific to ethtool netlink code. That is hard to argue with as closer inspection revealed that exactly the same helper already exists in ipset code (except it's a macro rather than an inline function). Another observation was that even if NLA_F_NESTED flag was introduced in 2007, only few netlink based interfaces set it in kernel generated messages and even many recently added APIs omit it. That is unfortunate as without the flag, message parsers not familiar with attribute semantics cannot recognize nested attributes and do not see message structure; this affects e.g. wireshark dissector or mnl_nlmsg_fprintf() from libmnl. This is why I'm suggesting to rename existing nla_nest_start() to different name (nla_nest_start_noflag) and reintroduce nla_nest_start() as a wrapper adding NLA_F_NESTED flag. This is implemented in first patch which is mostly generated by spatch. Second patch drops ipset helper macros which lose their purpose. Third patch cleans up minor coding style issues found by checkpatch.pl in first patch. We could leave nla_nest_start() untouched and simply add a wrapper adding NLA_F_NESTED but that would probably preserve the state when even most new code doesn't set the flag. ==================== Signed-off-by: David S. Miller commit f78c6032c4cb89b408190afd4feb61ff4461a114 Author: Michal Kubecek Date: Fri Apr 26 11:13:12 2019 +0200 net: fix two coding style issues This is a simple cleanup addressing two coding style issues found by checkpatch.pl in an earlier patch. It's submitted as a separate patch to keep the original patch as it was generated by spatch. Signed-off-by: Michal Kubecek Signed-off-by: David S. Miller commit 12ad5f65f030ae7b8a2425f6f79137c4217e30d4 Author: Michal Kubecek Date: Fri Apr 26 11:13:09 2019 +0200 ipset: drop ipset_nest_start() and ipset_nest_end() After the previous commit, both ipset_nest_start() and ipset_nest_end() are just aliases for nla_nest_start() and nla_nest_end() so that there is no need to keep them. Signed-off-by: Michal Kubecek Acked-by: Jozsef Kadlecsik Signed-off-by: David S. Miller commit ae0be8de9a53cda3505865c11826d8ff0640237c Author: Michal Kubecek Date: Fri Apr 26 11:13:06 2019 +0200 netlink: make nla_nest_start() add NLA_F_NESTED flag Even if the NLA_F_NESTED flag was introduced more than 11 years ago, most netlink based interfaces (including recently added ones) are still not setting it in kernel generated messages. Without the flag, message parsers not aware of attribute semantics (e.g. wireshark dissector or libmnl's mnl_nlmsg_fprintf()) cannot recognize nested attributes and won't display the structure of their contents. Unfortunately we cannot just add the flag everywhere as there may be userspace applications which check nlattr::nla_type directly rather than through a helper masking out the flags. Therefore the patch renames nla_nest_start() to nla_nest_start_noflag() and introduces nla_nest_start() as a wrapper adding NLA_F_NESTED. The calls which add NLA_F_NESTED manually are rewritten to use nla_nest_start(). Except for changes in include/net/netlink.h, the patch was generated using this semantic patch: @@ expression E1, E2; @@ -nla_nest_start(E1, E2) +nla_nest_start_noflag(E1, E2) @@ expression E1, E2; @@ -nla_nest_start_noflag(E1, E2 | NLA_F_NESTED) +nla_nest_start(E1, E2) Signed-off-by: Michal Kubecek Acked-by: Jiri Pirko Acked-by: David Ahern Signed-off-by: David S. Miller commit c7881b4a97e21b617b8243094dfa4b62028b956c Merge: 30e5a9a5ba85 63a1c95f3fe4 Author: David S. Miller Date: Sat Apr 27 16:52:22 2019 -0400 Merge branch 'net-tls-small-code-cleanup' Jakub Kicinski says: ==================== net/tls: small code cleanup This small patch set cleans up tls (mostly offload parts). Other than avoiding unnecessary error messages - no functional changes here. v2 (Saeed): - fix up Review tags; - remove the warning on failure completely. ==================== Reviewed-by: Saeed Mahameed Signed-off-by: David S. Miller commit 63a1c95f3fe48b4e9fe0c261b376e5e527b71b25 Author: Jakub Kicinski Date: Thu Apr 25 12:32:04 2019 -0700 net/tls: byte swap device req TCP seq no upon setting To avoid a sparse warning byteswap the be32 sequence number before it's stored in the atomic value. While at it drop unnecessary brackets and use kernel's u64 type. Signed-off-by: Jakub Kicinski Reviewed-by: Simon Horman Signed-off-by: David S. Miller commit da68b4ad02343862fee1e3e8c6315984f16a4778 Author: Jakub Kicinski Date: Thu Apr 25 12:32:03 2019 -0700 net/tls: move definition of tls ops into net/tls.h There seems to be no reason for tls_ops to be defined in netdevice.h which is included in a lot of places. Don't wrap the struct/enum declaration in ifdefs, it trickles down unnecessary ifdefs into driver code. Signed-off-by: Jakub Kicinski Reviewed-by: Simon Horman Signed-off-by: David S. Miller commit 9e9957973c7785b1f8fa77f099cac661cc5e7e5b Author: Jakub Kicinski Date: Thu Apr 25 12:32:02 2019 -0700 net/tls: remove old exports of sk_destruct functions tls_device_sk_destruct being set on a socket used to indicate that socket is a kTLS device one. That is no longer true - now we use sk_validate_xmit_skb pointer for that purpose. Remove the export. tls_device_attach() needs to be moved. While at it, remove the dead declaration of tls_sk_destruct(). Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Reviewed-by: Simon Horman Signed-off-by: David S. Miller commit e49d268db95b90f1fd97d4e3de1ec9f4bcfa8399 Author: Jakub Kicinski Date: Thu Apr 25 12:32:01 2019 -0700 net/tls: don't log errors every time offload can't proceed Currently when CONFIG_TLS_DEVICE is set each time kTLS connection is opened and the offload is not successful (either because the underlying device doesn't support it or e.g. it's tables are full) a rate limited error will be printed to the logs. There is nothing wrong with failing TLS offload. SW path will process the packets just fine, drop the noisy messages. Signed-off-by: Jakub Kicinski Reviewed-by: Simon Horman Signed-off-by: David S. Miller commit 10b02b53a99865f2005497c3933342c1f7946cd6 Author: Pierre-Louis Bossart Date: Fri Apr 12 11:09:04 2019 -0500 ASoC: Intel: select relevant machine drivers for SOF SOF can only support specific machine drivers, handle dependencies Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit f35bf70f61d389754fafd7fce75efbb3bd2eea87 Author: Liam Girdwood Date: Fri Apr 12 11:09:03 2019 -0500 ASoC: Intel: Make sure BDW based machine drivers build for SOF BDW uses hard coded IPC calls to set SSP, not needed in SOF as SSP is configured via topology. Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit 7e978fa37df7f771a5d02934ff828a0ee36bcf11 Author: Liam Girdwood Date: Fri Apr 12 11:09:02 2019 -0500 ASoC: SOF: Add Build support for SOF core and Intel drivers Build SOF core and Intel-specific drivers. Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit e6b140e918e93ec76265007b86092a6a3068ca1d Author: Pierre-Louis Bossart Date: Fri Apr 12 11:09:01 2019 -0500 ASoC: Intel: Kconfig: expose common option between SST and SOF drivers Both drivers rely on the same module, expose it for both configurations Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit 273020522ef62361c5d86eebe45a72418ed8dea4 Author: Liam Girdwood Date: Fri Apr 12 11:08:58 2019 -0500 ASoC: SOF: Intel: Add platform differentiation for APL and CNL Add platform differentiation operations for different Intel HDA DSP platforms. Signed-off-by: Keyon Jie Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit fdd961e37e47f2d450638f3a653cdb96911969ea Author: Keyon Jie Date: Fri Apr 12 11:08:57 2019 -0500 ASoC: SOF: Intel: add SKL+ platform DAIs Add declarations for DAIs and utilities for link DMA management Signed-off-by: Keyon Jie Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit 5507b8103e2653b4f5fc2e4c339d7eacde00da2d Author: Pierre-Louis Bossart Date: Fri Apr 12 11:08:56 2019 -0500 ASoC: SOF: Intel: Add support for HDAudio codecs Add probe, init and cleanup routines for HDaudio. Signed-off-by: Keyon Jie Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit ba00ed7572cd581bfd483d13193d36a38a3942a8 Author: Liam Girdwood Date: Fri Apr 12 11:08:55 2019 -0500 ASoC: SOF: Intel: Add Intel specific HDA trace operations Add trace operations for Intel based HDA DSPs Signed-off-by: Keyon Jie Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit a1d1e266b44517e736a456b3771152c33504f13d Author: Liam Girdwood Date: Fri Apr 12 11:08:54 2019 -0500 ASoC: SOF: Intel: Add Intel specific HDA stream operations Add support or HDA DSP stream operations for Intel HDA DSPs. Signed-off-by: Keyon Jie Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit 78ad1f07a49a56fa3714ee36573133a39e32593d Author: Keyon Jie Date: Fri Apr 12 11:08:53 2019 -0500 ASoC: SOF: Intel: Add hda-bus support and initialization Use hdac_io_ops and configure all required spin_locks/mutex to use hdac_hda_ext library. Keep the code conditional so that the HDA link and audio codec support can be removed. Signed-off-by: Keyon Jie Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit c6be710f5e2a92204f92d872a0c0b4fe29666492 Author: Liam Girdwood Date: Fri Apr 12 11:08:52 2019 -0500 ASoC: SOF: Intel: Add Intel specific HDA PCM operations Add PCM operations for Intel HDA based DSPs. Signed-off-by: Keyon Jie Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit d16046ffa6de040bf580a64d5f4d0aa18258a854 Author: Liam Girdwood Date: Fri Apr 12 11:08:51 2019 -0500 ASoC: SOF: Intel: Add Intel specific HDA firmware loader Add support for loading DSP firmware on Intel HDA based platforms. Signed-off-by: Keyon Jie Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit a226893b85b3c35f6c7c168beb28de738211164a Author: Liam Girdwood Date: Fri Apr 12 11:09:00 2019 -0500 ASoC: SOF: Add PCI device support Add support for PCI based DSP devices. Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit cd679898cd323d958b35c014f97c575b4abb8ce2 Author: Liam Girdwood Date: Fri Apr 12 11:08:59 2019 -0500 ASoC: SOF: Add ACPI device support Add support ACPI based SOF DSP devices. Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit 6e9cde974863dc9d9c6cdb178f625e410c5be3d0 Author: Liam Girdwood Date: Fri Apr 12 11:08:50 2019 -0500 ASoC: SOF: Intel: Add Intel specific HDA IPC mechanisms. Add HDA specific IPC mechanism for Intel DSP HW. Signed-off-by: Keyon Jie Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit 747503b1813a3e6e4c52d9c0b4bd462b64940940 Author: Liam Girdwood Date: Fri Apr 12 11:08:49 2019 -0500 ASoC: SOF: Intel: Add Intel specific HDA DSP HW operations Add support for various PM and core reset/run state transitions. Signed-off-by: Keyon Jie Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit 8a300c8fb17c7546aaf3f2203a2eeff32debfb8f Author: Liam Girdwood Date: Fri Apr 12 11:08:48 2019 -0500 ASoC: SOF: Intel: Add HDA controller for Intel DSP Support HDA controller operations for DSP and provide space for future DSP HDA FW integration. Signed-off-by: Keyon Jie Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit dd96daca6c83ecaf37f38ff49d8d174bbff576b4 Author: Liam Girdwood Date: Fri Apr 12 11:08:47 2019 -0500 ASoC: SOF: Intel: Add APL/CNL HW DSP support Add SOF hardware DSP support for Intel Apollolake and Cannonlake based devices. Signed-off-by: Keyon Jie Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit 351d1174fef03adb4defed7ef14f1ede0251aae9 Author: Guennadi Liakhovetski Date: Fri Apr 12 11:08:46 2019 -0500 ASoC: SOF: Intel: Add legacy IPC support Add IPC support required for devices introduced before Skylake (Merrifield, baytrail, CherryTrail, Haswell, Broadwell) Signed-off-by: Guennadi Liakhovetski Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit 458bc7296184729b5462f704fb0792b6f1676f0d Author: Liam Girdwood Date: Fri Apr 12 11:08:45 2019 -0500 ASoC: SOF: Intel: Add BDW HW DSP support Add SOF support for Intel Broadwell based devices. Signed-off-by: Rander Wang Signed-off-by: Pan Xiuli Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit 9e42c5ca4a276a668b11116704f5f0d66ab80608 Author: Liam Girdwood Date: Fri Apr 12 11:08:44 2019 -0500 ASoC: SOF: Intel: Add BYT, CHT and BSW DSP HW support. Add support for the audio DSP hardware found on Intel Baytrail, Cherrytrail and Braswell based devices. Signed-off-by: Rander Wang Signed-off-by: Pan Xiuli Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit 3bafac46065eb7ea6f3e3fcbdb8b70b66f6c71b4 Author: Pierre-Louis Bossart Date: Fri Apr 12 11:05:19 2019 -0500 ASoC: SOF: Add utils Helpers to set-up back-ends, create platform devices and common IO/block read/write operations Signed-off-by: Keyon Jie Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit e657c18a01c85d2c4ec0e96d52be8ba42b956593 Author: Pierre-Louis Bossart Date: Fri Apr 12 11:05:18 2019 -0500 ASoC: SOF: Add xtensa support Add common directory for xtensa architecture Signed-off-by: Pan Xiuli Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit 8017b8fd37bf5ed4e9c0596f83295b019ff1c287 Author: Liam Girdwood Date: Fri Apr 12 11:05:17 2019 -0500 ASoC: SOF: Add Nocodec machine driver support Add a simple "fallback" machine driver that can be used to enable SOF on boards with no codec device. This machine driver can also be forced for debug/development. Signed-off-by: Keyon Jie Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit 8920153c6461da69e49014a35275dc80cbf6ba14 Author: Liam Girdwood Date: Fri Apr 12 11:05:16 2019 -0500 ASoC: SOF: Add PM support Add support for saving and restoring DSP context in D3 to host DDR. The suspend callback includes: suspend all pcm's stream that are running, send CTX_SAVE ipc, drop all ipc's, release trace dma and then power off the DSP. And the resume callback performs the following steps: load FW, run FW, re-initialize trace, restore pipeline, restore the kcontrol values and finally send the ctx restore ipc to the dsp. The streams that are suspended are resumed by the ALSA resume trigger. If the streams are paused during system suspend, they are marked explicitly so they can be restored during PAUSE_RELEASE. Signed-off-by: Ranjani Sridharan Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit 4483151e765b5a7ffb823fe9bb11128101410427 Author: Liam Girdwood Date: Fri Apr 12 11:05:15 2019 -0500 ASoC: SOF: Add userspace ABI support Add userspace ABI for audio userspace application IO outside of regular ALSA PCM and kcontrols. This is intended to be used to format coefficients and data for custom processing components. Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit 70cd52544b95d02f8b20fadccb7400ce68a2cb84 Author: Liam Girdwood Date: Fri Apr 12 11:05:14 2019 -0500 ASoC: SOF: Add firmware loader support The firmware loader exports APIs that can be called by core to load and process multiple different file formats. Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit d1d95fcb63e3b83245ad06484b6905ab6c21afc3 Author: Liam Girdwood Date: Fri Apr 12 11:05:13 2019 -0500 ASoC: SOF: Add DSP HW abstraction operations Add operation pointers that can be called by core to control a wide variety of DSP targets. The DSP HW drivers will fill in these operations. Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit fd51c47b352b7da0e78fc88b9e4da7f298bfdd70 Author: Liam Girdwood Date: Fri Apr 12 11:05:12 2019 -0500 ASoC: SOF: Add DSP firmware logger support This patch adds support for real-time DSP logging (timestamped events and bespoke binary data) for firmware debug. The current solution relies on DMA transfers to system memory that is then accessed by userspace tools such as sof-logger. For Intel platforms, two types of DMAs are currently used (GP-DMA for Baytrail/CherryTrail and HDaudio DMA for SKL+) Due to historical reasons, the driver code follows the DSP firmware conventions and refers to 'traces', but it is currently unrelated to the Linux trace subsystem. Future solutions will include support for more advanced hardware (e.g. MIPI Sys-T), additional formats and the ability to enable/disable specific traces dynamically. Signed-off-by: Pan Xiuli Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit 311ce4fe7637d96608b6e57bf9ebbd8aabcf429e Author: Liam Girdwood Date: Fri Apr 12 11:05:11 2019 -0500 ASoC: SOF: Add support for loading topologies SOF uses topology to define the DAPM graphs and widgets, DAIs, PCMs and set parameters for init and run time usage. This patch loads topology and maps it to IPC commands that are build the topology on the DSP. Signed-off-by: Ranjani Sridharan Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit 868bd00f495514630a52161052d2fe155af599fe Author: Liam Girdwood Date: Fri Apr 12 11:05:10 2019 -0500 ASoC: SOF: Add PCM operations support Add support for exposing PCMs to userspace. PCMs are defined by topology and the operations in this patch map to SOF IPC calls. The .get_module_upon_open field is set to allow for module load/unload tests. There is no risk of the sof-pci/acpi-dev module being removed while the platform components are in use. This may need to be revisited when DT platforms are supported. Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit 53e0c72d98ba3eae314c32476103eac47612aa58 Author: Liam Girdwood Date: Fri Apr 12 11:05:09 2019 -0500 ASoC: SOF: Add support for IPC IO between DSP and Host Define an IPC ABI for all host <--> DSP communication. This ABI should be transport agnostic. i.e. it should work on MMIO and SPI/I2C style interfaces. Signed-off-by: Guennadi Liakhovetski Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit 86b02f71ccf320727473448733503e6f9378102d Author: Liam Girdwood Date: Fri Apr 12 11:05:08 2019 -0500 ASoC: SOF: Add driver debug support. Add debugFS files that can be used to expose DSP memories and and peripherals to userspace to assist with firmware debugging. Since we cannot rely on debugFS, errors are logged but don't stop execution. When a resource cannot be read in D3, it is optionally cached on suspend. Copying memories from IO will increase the suspend latency, this should only used in engineering builds w/ debug options. This part will have to be enhanced when support for D0ix states is provided, currently only D0 and D3 are supported. Signed-off-by: Pan Xiuli Signed-off-by: Ranjani Sridharan Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit c3078f5397046755ddcd0447d202124c398469c5 Author: Liam Girdwood Date: Fri Apr 12 11:05:07 2019 -0500 ASoC: SOF: Add Sound Open Firmware KControl support SOF exposes regular ALSA Kcontrols that are defined by topology. This patch converts the Kcontrol IO to DSP IPC. The current implementation is aligned with previous Intel solutions, but is not optimal and can be improved: a) for every get/put the host wakes up the DSP and generates an IPC. The kernel should cache the values and generate an IPC only when strictly necessary. b) the firmware can be implemented to only instantiate the pipelines and related control-related parts that are needed at a given time, and power-gate the relevant SRAM blocks. The development tasks for these two improvements has started, once validated they will be provided in an update. Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit c16211d6226dbde8819b84da07508083a1138a06 Author: Liam Girdwood Date: Fri Apr 12 11:05:06 2019 -0500 ASoC: SOF: Add Sound Open Firmware driver core The Sound Open Firmware driver core is a generic architecture independent layer that allows SOF to be used on many different architectures and platforms. It abstracts DSP operations and IO methods so that the target DSP can be an internal memory mapped or external SPI or I2C based device. This abstraction also allows SOF to be run on many different VMs on the same physical HW. SOF also requires some data in ASoC PCM runtime data for looking up SOF data during ASoC PCM operations. Signed-off-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Mark Brown commit 9076c49bdca2aa68c805f2677b2bccc4bde2bac1 Merge: 3745dc24aa7a 263d0b353341 Author: Alexei Starovoitov Date: Sat Apr 27 09:07:49 2019 -0700 Merge branch 'sk-local-storage' Martin KaFai Lau says: ==================== v4: - Move checks to map_alloc_check in patch 1 (Stanislav Fomichev) - Refactor BTF encoding macros to test_btf.h at a new patch 4 (Stanislav Fomichev) - Refactor getenv and add print PASS message at the end of the test in patch 6 (Yonghong Song) v3: - Replace spinlock_types.h with spinlock.h in patch 1 (kbuild test robot ) v2: - Add the "test_maps.h" file in patch 5 This series introduces the BPF sk local storage. The details is in the patch 1 commit message. ==================== Acked-by: Yonghong Song Signed-off-by: Alexei Starovoitov commit 263d0b35334112dd999afb4246646a2ea9da800d Author: Martin KaFai Lau Date: Fri Apr 26 16:39:54 2019 -0700 bpf: Add ene-to-end test for bpf_sk_storage_* helpers This patch rides on an existing BPF_PROG_TYPE_CGROUP_SKB test (test_sock_fields.c) to do a TCP end-to-end test on the new bpf_sk_storage_* helpers. Signed-off-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit 51a0e301a563bf7266854e0698cdf3dc25116f7b Author: Martin KaFai Lau Date: Fri Apr 26 16:39:52 2019 -0700 bpf: Add BPF_MAP_TYPE_SK_STORAGE test to test_maps This patch adds BPF_MAP_TYPE_SK_STORAGE test to test_maps. The src file is rather long, so it is put into another dir map_tests/ and compile like the current prog_tests/ does. Other existing tests in test_maps can also be re-factored into map_tests/ in the future. Signed-off-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit 7a9bb9762d3302bb407c7bdb0b5f754e5aa595a5 Author: Martin KaFai Lau Date: Fri Apr 26 16:39:49 2019 -0700 bpf: Add verifier tests for the bpf_sk_storage This patch adds verifier tests for the bpf_sk_storage: 1. ARG_PTR_TO_MAP_VALUE_OR_NULL 2. Map and helper compatibility (e.g. disallow bpf_map_loookup_elem) It also takes this chance to remove the unused struct btf_raw_data and uses the BTF encoding macros from "test_btf.h". Acked-by: Yonghong Song Signed-off-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit 3f4d4c74101d60b88d23289bd4f5f6126c7235fc Author: Martin KaFai Lau Date: Fri Apr 26 16:39:46 2019 -0700 bpf: Refactor BTF encoding macro to test_btf.h Refactor common BTF encoding macros for other tests to use. The libbpf may reuse some of them in the future which requires some more thoughts before publishing as a libbpf API. Signed-off-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit a19f89f3667c950ad13c1560e4abd8aa8526b6b1 Author: Martin KaFai Lau Date: Fri Apr 26 16:39:44 2019 -0700 bpf: Support BPF_MAP_TYPE_SK_STORAGE in bpf map probing This patch supports probing for the new BPF_MAP_TYPE_SK_STORAGE. BPF_MAP_TYPE_SK_STORAGE enforces BTF usage, so the new probe requires to create and load a BTF also. Signed-off-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit 948d930e3d531e81dc6a2c864bda25618dfe7ff0 Author: Martin KaFai Lau Date: Fri Apr 26 16:39:42 2019 -0700 bpf: Sync bpf.h to tools This patch sync the bpf.h to tools/. Signed-off-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit 6ac99e8f23d4b10258406ca0dd7bffca5f31da9d Author: Martin KaFai Lau Date: Fri Apr 26 16:39:39 2019 -0700 bpf: Introduce bpf sk local storage After allowing a bpf prog to - directly read the skb->sk ptr - get the fullsock bpf_sock by "bpf_sk_fullsock()" - get the bpf_tcp_sock by "bpf_tcp_sock()" - get the listener sock by "bpf_get_listener_sock()" - avoid duplicating the fields of "(bpf_)sock" and "(bpf_)tcp_sock" into different bpf running context. this patch is another effort to make bpf's network programming more intuitive to do (together with memory and performance benefit). When bpf prog needs to store data for a sk, the current practice is to define a map with the usual 4-tuples (src/dst ip/port) as the key. If multiple bpf progs require to store different sk data, multiple maps have to be defined. Hence, wasting memory to store the duplicated keys (i.e. 4 tuples here) in each of the bpf map. [ The smallest key could be the sk pointer itself which requires some enhancement in the verifier and it is a separate topic. ] Also, the bpf prog needs to clean up the elem when sk is freed. Otherwise, the bpf map will become full and un-usable quickly. The sk-free tracking currently could be done during sk state transition (e.g. BPF_SOCK_OPS_STATE_CB). The size of the map needs to be predefined which then usually ended-up with an over-provisioned map in production. Even the map was re-sizable, while the sk naturally come and go away already, this potential re-size operation is arguably redundant if the data can be directly connected to the sk itself instead of proxy-ing through a bpf map. This patch introduces sk->sk_bpf_storage to provide local storage space at sk for bpf prog to use. The space will be allocated when the first bpf prog has created data for this particular sk. The design optimizes the bpf prog's lookup (and then optionally followed by an inline update). bpf_spin_lock should be used if the inline update needs to be protected. BPF_MAP_TYPE_SK_STORAGE: ----------------------- To define a bpf "sk-local-storage", a BPF_MAP_TYPE_SK_STORAGE map (new in this patch) needs to be created. Multiple BPF_MAP_TYPE_SK_STORAGE maps can be created to fit different bpf progs' needs. The map enforces BTF to allow printing the sk-local-storage during a system-wise sk dump (e.g. "ss -ta") in the future. The purpose of a BPF_MAP_TYPE_SK_STORAGE map is not for lookup/update/delete a "sk-local-storage" data from a particular sk. Think of the map as a meta-data (or "type") of a "sk-local-storage". This particular "type" of "sk-local-storage" data can then be stored in any sk. The main purposes of this map are mostly: 1. Define the size of a "sk-local-storage" type. 2. Provide a similar syscall userspace API as the map (e.g. lookup/update, map-id, map-btf...etc.) 3. Keep track of all sk's storages of this "type" and clean them up when the map is freed. sk->sk_bpf_storage: ------------------ The main lookup/update/delete is done on sk->sk_bpf_storage (which is a "struct bpf_sk_storage"). When doing a lookup, the "map" pointer is now used as the "key" to search on the sk_storage->list. The "map" pointer is actually serving as the "type" of the "sk-local-storage" that is being requested. To allow very fast lookup, it should be as fast as looking up an array at a stable-offset. At the same time, it is not ideal to set a hard limit on the number of sk-local-storage "type" that the system can have. Hence, this patch takes a cache approach. The last search result from sk_storage->list is cached in sk_storage->cache[] which is a stable sized array. Each "sk-local-storage" type has a stable offset to the cache[] array. In the future, a map's flag could be introduced to do cache opt-out/enforcement if it became necessary. The cache size is 16 (i.e. 16 types of "sk-local-storage"). Programs can share map. On the program side, having a few bpf_progs running in the networking hotpath is already a lot. The bpf_prog should have already consolidated the existing sock-key-ed map usage to minimize the map lookup penalty. 16 has enough runway to grow. All sk-local-storage data will be removed from sk->sk_bpf_storage during sk destruction. bpf_sk_storage_get() and bpf_sk_storage_delete(): ------------------------------------------------ Instead of using bpf_map_(lookup|update|delete)_elem(), the bpf prog needs to use the new helper bpf_sk_storage_get() and bpf_sk_storage_delete(). The verifier can then enforce the ARG_PTR_TO_SOCKET argument. The bpf_sk_storage_get() also allows to "create" new elem if one does not exist in the sk. It is done by the new BPF_SK_STORAGE_GET_F_CREATE flag. An optional value can also be provided as the initial value during BPF_SK_STORAGE_GET_F_CREATE. The BPF_MAP_TYPE_SK_STORAGE also supports bpf_spin_lock. Together, it has eliminated the potential use cases for an equivalent bpf_map_update_elem() API (for bpf_prog) in this patch. Misc notes: ---------- 1. map_get_next_key is not supported. From the userspace syscall perspective, the map has the socket fd as the key while the map can be shared by pinned-file or map-id. Since btf is enforced, the existing "ss" could be enhanced to pretty print the local-storage. Supporting a kernel defined btf with 4 tuples as the return key could be explored later also. 2. The sk->sk_lock cannot be acquired. Atomic operations is used instead. e.g. cmpxchg is done on the sk->sk_bpf_storage ptr. Please refer to the source code comments for the details in synchronization cases and considerations. 3. The mem is charged to the sk->sk_omem_alloc as the sk filter does. Benchmark: --------- Here is the benchmark data collected by turning on the "kernel.bpf_stats_enabled" sysctl. Two bpf progs are tested: One bpf prog with the usual bpf hashmap (max_entries = 8192) with the sk ptr as the key. (verifier is modified to support sk ptr as the key That should have shortened the key lookup time.) Another bpf prog is with the new BPF_MAP_TYPE_SK_STORAGE. Both are storing a "u32 cnt", do a lookup on "egress_skb/cgroup" for each egress skb and then bump the cnt. netperf is used to drive data with 4096 connected UDP sockets. BPF_MAP_TYPE_HASH with a modifier verifier (152ns per bpf run) 27: cgroup_skb name egress_sk_map tag 74f56e832918070b run_time_ns 58280107540 run_cnt 381347633 loaded_at 2019-04-15T13:46:39-0700 uid 0 xlated 344B jited 258B memlock 4096B map_ids 16 btf_id 5 BPF_MAP_TYPE_SK_STORAGE in this patch (66ns per bpf run) 30: cgroup_skb name egress_sk_stora tag d4aa70984cc7bbf6 run_time_ns 25617093319 run_cnt 390989739 loaded_at 2019-04-15T13:47:54-0700 uid 0 xlated 168B jited 156B memlock 4096B map_ids 17 btf_id 6 Here is a high-level picture on how are the objects organized: sk ┌──────┐ │ │ │ │ │ │ │*sk_bpf_storage─────▶ bpf_sk_storage └──────┘ ┌───────┐ ┌───────────┤ list │ │ │ │ │ │ │ │ │ │ │ └───────┘ │ │ elem │ ┌────────┐ ├─▶│ snode │ │ ├────────┤ │ │ data │ bpf_map │ ├────────┤ ┌─────────┐ │ │map_node│◀─┬─────┤ list │ │ └────────┘ │ │ │ │ │ │ │ │ elem │ │ │ │ ┌────────┐ │ └─────────┘ └─▶│ snode │ │ ├────────┤ │ bpf_map │ data │ │ ┌─────────┐ ├────────┤ │ │ list ├───────▶│map_node│ │ │ │ └────────┘ │ │ │ │ │ │ elem │ └─────────┘ ┌────────┐ │ ┌─▶│ snode │ │ │ ├────────┤ │ │ │ data │ │ │ ├────────┤ │ │ │map_node│◀─┘ │ └────────┘ │ │ │ ┌───────┐ sk └──────────│ list │ ┌──────┐ │ │ │ │ │ │ │ │ │ │ │ │ └───────┘ │*sk_bpf_storage───────▶bpf_sk_storage └──────┘ Signed-off-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit c0286f568069198484552c39fd2714153b2b16ec Merge: 62909da8aca0 37209783c73a Author: Greg Kroah-Hartman Date: Sat Apr 27 15:36:16 2019 +0200 Merge tag 'thunderbolt-for-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt into char-misc-next Mika writes: thunderbolt: Changes for v5.2 merge window This improves software connection manager on older Apple systems with Thunderbolt 1 and 2 controller to support full PCIe daisy chains, Display Port tunneling and P2P networking. There are also fixes for potential NULL pointer dereferences at various places in the driver. * tag 'thunderbolt-for-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt: (44 commits) thunderbolt: Make priority unsigned in struct tb_path thunderbolt: Start firmware on Titan Ridge Apple systems thunderbolt: Reword output of tb_dump_hop() thunderbolt: Make rest of the logging to happen at debug level thunderbolt: Make __TB_[SW|PORT]_PRINT take const parameters thunderbolt: Add support for XDomain connections thunderbolt: Make tb_switch_alloc() return ERR_PTR() thunderbolt: Add support for DMA tunnels thunderbolt: Add XDomain UUID exchange support thunderbolt: Run tb_xdp_handle_request() in system workqueue thunderbolt: Do not tear down tunnels when driver is unloaded thunderbolt: Add support for Display Port tunnels thunderbolt: Rework NFC credits handling thunderbolt: Generalize port finding routines to support all port types thunderbolt: Scan only valid NULL adapter ports in hotplug thunderbolt: Add support for full PCIe daisy chains thunderbolt: Discover preboot PCIe paths the boot firmware established thunderbolt: Deactivate all paths before restarting them thunderbolt: Extend tunnel creation to more than 2 adjacent switches thunderbolt: Add helper function to iterate from one port to another ... commit 62909da8aca048ecf9fbd7e484e5100608f40a63 Author: Mariusz Bialonczyk Date: Thu Mar 21 11:52:55 2019 +0100 w1: fix the resume command API >From the DS2408 datasheet [1]: "Resume Command function checks the status of the RC flag and, if it is set, directly transfers control to the control functions, similar to a Skip ROM command. The only way to set the RC flag is through successfully executing the Match ROM, Search ROM, Conditional Search ROM, or Overdrive-Match ROM command" The function currently works perfectly fine in a multidrop bus, but when we have only a single slave connected, then only a Skip ROM is used and Match ROM is not called at all. This is leading to problems e.g. with single one DS2408 connected, as the Resume Command is not working properly and the device is responding with failing results after the Resume Command. This commit is fixing this by using a Skip ROM instead in those cases. The bandwidth / performance advantage is exactly the same. Refs: [1] https://datasheets.maximintegrated.com/en/ds/DS2408.pdf Signed-off-by: Mariusz Bialonczyk Reviewed-by: Jean-Francois Dagenais Signed-off-by: Greg Kroah-Hartman commit a4965d98b4d1ffa5b22f2039bc9e87898aff4976 Author: Ian Abbott Date: Fri Apr 26 14:54:13 2019 +0100 staging: comedi: comedi_isadma: Use a non-NULL device for DMA API The "comedi_isadma" module calls `dma_alloc_coherent()` and `dma_free_coherent()` with a NULL device pointer which is no longer allowed. If the `hw_dev` member of the `struct comedi_device` has been set to a valid device, that can be used instead. Unfortunately, all the current users of the "comedi_isadma" module leave the `hw_dev` member set to NULL. In that case, fall back to using the comedi "class" device pointed to by the `class_dev` member if that is non-NULL. In that case, make it "DMA-capable" with a coherent DMA mask set to the ISA bus limit of 16MB (24 bits). Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman commit 94001602d6bb21adbb4fa991d42b0c5d8a69db48 Author: Patrick Venture Date: Fri Apr 26 09:56:55 2019 -0700 misc: aspeed-p2a-ctrl: fix mixed declarations Fix up mixed declarations and code in aspeed_p2a_mmap. Tested: Verified the build had the error and that this patch resolved it and there were no other warnings or build errors associated with compilation of this driver. Reported-by: Stephen Rothwell Signed-off-by: Patrick Venture Signed-off-by: Greg Kroah-Hartman commit 5afa0a5ed3da85f64f27613a38daa1c4f69dd8ff Author: Mathias Nyman Date: Fri Apr 26 16:23:32 2019 +0300 usb: xhci: add endpoint context tracing when an endpoint is added The configure endpoint command configures all the endpoints that were flagged to be added or dropped. To know the content of each of the added endpoints we need to add tracing to the .add_endpoint() callback, just after initializing all the context values. Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman commit 90d6d5731da79a55de51552d930f9ad0b13262a2 Author: Mathias Nyman Date: Fri Apr 26 16:23:31 2019 +0300 xhci: Add tracing for input control context Add tracing for the add and drop bits in the input control context used in Address device, configure endpoint, evaluate context commands. The add and drop bits tell xHC which enpoints are added and dropped. Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman commit d70d5a846671c3acb572425fe429b35cb4ec44a9 Author: Mathias Nyman Date: Fri Apr 26 16:23:30 2019 +0300 xhci: add port and bus number to port dynamic debugging Improve port related dynamic debugging by printing out the bus number, port number and port status register content each time there is a port related debug messages. Use the same port numbering method as usbcore to simplify debugging. i.e. starting with port number 1. Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman commit 33e39350ebd20fe6a77a51b8c21c3aa6b4a208cf Author: Nicolas Saenz Julienne Date: Fri Apr 26 16:23:29 2019 +0300 usb: xhci: add Immediate Data Transfer support Immediate data transfers (IDT) allow the HCD to copy small chunks of data (up to 8bytes) directly into its output transfer TRBs. This avoids the somewhat expensive DMA mappings that are performed by default on most URBs submissions. In the case an URB was suitable for IDT. The data is directly copied into the "Data Buffer Pointer" region of the TRB and the IDT flag is set. Instead of triggering memory accesses the HC will use the data directly. The implementation could cover all kind of output endpoints. Yet Isochronous endpoints are bypassed as I was unable to find one that matched IDT's constraints. As we try to bypass the default DMA mappings on URB buffers we'd need to find a Isochronous device with an urb->transfer_buffer_length <= 8 bytes. The implementation takes into account that the 8 byte buffers provided by the URB will never cross a 64KB boundary. Signed-off-by: Nicolas Saenz Julienne Reviewed-by: Felipe Balbi Signed-off-by: Mathias Nyman Signed-off-by: Greg Kroah-Hartman commit 95e060e68bd98f28763adbc311797eebc4d31e0c Author: Serge Semin Date: Sat Apr 27 12:06:44 2019 +0300 usb: usb251xb: Add an empty hub' i2c-bus segment checker It's pointless to scan the hub' i2c-bus segment if GPIOs aren't supported by the system, since no GPIO-driven reset could be cleared by the driver then. Moreover if CONFIG_GPIOLIB is disabled the gpio_chip structure definition won't be available, which causes the incomplete type pointer dereference compilation error. In order to fix this we need to create an empty usb251x_check_gpio_chip() method returning zero, so the driver would skip the i2c-bus segment checking and proceed with further probing in this case. Fixes: 6e3c8beb4f92 ("usb: usb251xb: Lock i2c-bus segment the hub resides") Reported-by: kbuild test robot Signed-off-by: Serge Semin Signed-off-by: Greg Kroah-Hartman commit 3745dc24aa7a6a45771a6b441194b857ac615cfc Merge: 34b8ab091f9e e950e843367d Author: Alexei Starovoitov Date: Fri Apr 26 19:05:44 2019 -0700 Merge branch 'writeable-bpf-tracepoints' Matt Mullins says: ==================== This adds an opt-in interface for tracepoints to expose a writable context to BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE programs that are attached, while supporting read-only access from existing BPF_PROG_TYPE_RAW_TRACEPOINT programs, as well as from non-BPF-based tracepoints. The initial motivation is to support tracing that can be observed from the remote end of an NBD socket, e.g. by adding flags to the struct nbd_request header. Earlier attempts included adding an NBD-specific tracepoint fd, but in code review, I was recommended to implement it more generically -- as a result, this patchset is far simpler than my initial try. v4->v5: * rebased onto bpf-next/master and fixed merge conflicts * "tools: sync bpf.h" also syncs comments that have previously changed in bpf-next v3->v4: * fixed a silly copy/paste typo in include/trace/events/bpf_test_run.h (_TRACE_NBD_H -> _TRACE_BPF_TEST_RUN_H) * fixed incorrect/misleading wording in patch 1's commit message, since the pointer cannot be directly dereferenced in a BPF_PROG_TYPE_RAW_TRACEPOINT * cleaned up the error message wording if the prog_tests fail * Addressed feedback from Yonghong * reject non-pointer-sized accesses to the buffer pointer * use sizeof(struct nbd_request) as one-byte-past-the-end in raw_tp_writable_reject_nbd_invalid.c * use BPF_MOV64_IMM instead of BPF_LD_IMM64 v2->v3: * Andrew addressed Josef's comments: * C-style commenting in nbd.c * Collapsed identical events into a single DECLARE_EVENT_CLASS. This saves about 2kB of kernel text v1->v2: * add selftests * sync tools/include/uapi/linux/bpf.h * reject variable offset into the buffer * add string representation of PTR_TO_TP_BUFFER to reg_type_str ==================== Signed-off-by: Alexei Starovoitov commit e950e843367d7990b9d7ea964e3c33876d477c4b Author: Matt Mullins Date: Fri Apr 26 11:49:51 2019 -0700 selftests: bpf: test writable buffers in raw tps This tests that: * a BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE cannot be attached if it uses either: * a variable offset to the tracepoint buffer, or * an offset beyond the size of the tracepoint buffer * a tracer can modify the buffer provided when attached to a writable tracepoint in bpf_prog_test_run Signed-off-by: Matt Mullins Acked-by: Yonghong Song Signed-off-by: Alexei Starovoitov commit 4635b0ae4d26f87cf68dbab6740955dd1ad67cf4 Author: Matt Mullins Date: Fri Apr 26 11:49:50 2019 -0700 tools: sync bpf.h This adds BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE, and fixes up the error: enumeration value ‘BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE’ not handled in switch [-Werror=switch-enum] build errors it would otherwise cause in libbpf. Signed-off-by: Matt Mullins Acked-by: Yonghong Song Signed-off-by: Alexei Starovoitov commit 2abd2de712cd891321a06b0890a85aef1e506cb5 Author: Andrew Hall Date: Fri Apr 26 11:49:49 2019 -0700 nbd: add tracepoints for send/receive timing This adds four tracepoints to nbd, enabling separate tracing of payload and header sending/receipt. In the send path for headers that have already been sent, we also explicitly initialize the handle so it can be referenced by the later tracepoint. Signed-off-by: Andrew Hall Signed-off-by: Matt Mullins Reviewed-by: Josef Bacik Signed-off-by: Alexei Starovoitov commit ea106722c76f08002b69a6983ed84dc18958ba48 Author: Matt Mullins Date: Fri Apr 26 11:49:48 2019 -0700 nbd: trace sending nbd requests This adds a tracepoint that can both observe the nbd request being sent to the server, as well as modify that request , e.g., setting a flag in the request that will cause the server to collect detailed tracing data. The struct request * being handled is included to permit correlation with the block tracepoints. Signed-off-by: Matt Mullins Reviewed-by: Josef Bacik Signed-off-by: Alexei Starovoitov commit 9df1c28bb75217b244257152ab7d788bb2a386d0 Author: Matt Mullins Date: Fri Apr 26 11:49:47 2019 -0700 bpf: add writable context for raw tracepoints This is an opt-in interface that allows a tracepoint to provide a safe buffer that can be written from a BPF_PROG_TYPE_RAW_TRACEPOINT program. The size of the buffer must be a compile-time constant, and is checked before allowing a BPF program to attach to a tracepoint that uses this feature. The pointer to this buffer will be the first argument of tracepoints that opt in; the pointer is valid and can be bpf_probe_read() by both BPF_PROG_TYPE_RAW_TRACEPOINT and BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE programs that attach to such a tracepoint, but the buffer to which it points may only be written by the latter. Signed-off-by: Matt Mullins Acked-by: Yonghong Song Signed-off-by: Alexei Starovoitov commit 34b8ab091f9ef57a2bb3c8c8359a0a03a8abf2f9 Author: Daniel Borkmann Date: Fri Apr 26 21:48:22 2019 +0200 bpf, arm64: use more scalable stadd over ldxr / stxr loop in xadd Since ARMv8.1 supplement introduced LSE atomic instructions back in 2016, lets add support for STADD and use that in favor of LDXR / STXR loop for the XADD mapping if available. STADD is encoded as an alias for LDADD with XZR as the destination register, therefore add LDADD to the instruction encoder along with STADD as special case and use it in the JIT for CPUs that advertise LSE atomics in CPUID register. If immediate offset in the BPF XADD insn is 0, then use dst register directly instead of temporary one. Signed-off-by: Daniel Borkmann Acked-by: Jean-Philippe Brucker Acked-by: Will Deacon Signed-off-by: Alexei Starovoitov commit 8968c67a82ab7501bc3b9439c3624a49b42fe54c Author: Daniel Borkmann Date: Fri Apr 26 21:48:21 2019 +0200 bpf, arm64: remove prefetch insn in xadd mapping Prefetch-with-intent-to-write is currently part of the XADD mapping in the AArch64 JIT and follows the kernel's implementation of atomic_add. This may interfere with other threads executing the LDXR/STXR loop, leading to potential starvation and fairness issues. Drop the optional prefetch instruction. Fixes: 85f68fe89832 ("bpf, arm64: implement jiting of BPF_XADD") Reported-by: Will Deacon Signed-off-by: Daniel Borkmann Acked-by: Jean-Philippe Brucker Acked-by: Will Deacon Signed-off-by: Alexei Starovoitov commit 9a952206904de36cd11f3ca50b2fad01d789e25e Author: Philipp Zabel Date: Fri Apr 26 17:31:43 2019 -0700 Input: synaptics-rmi4 - fix enum_fmt Do not enumerate all formats, some of which the device may not even support. Instead, only report the one fixed format of the currently selected input that will survive try_fmt/s_fmt. Signed-off-by: Philipp Zabel Signed-off-by: Dmitry Torokhov commit 9f6da5d42d1ecf7fcc042058a453fe65864fadb0 Author: Philipp Zabel Date: Fri Apr 26 17:31:32 2019 -0700 Input: synaptics-rmi4 - fill initial format The driver doesn't set an initial video format until s_input is called: $ v4l2-ctl -d /dev/v4l-touch0 --get-input Video input : 0 (Normalized 16-Bit Image: ok) $ v4l2-ctl -d /dev/v4l-touch0 --get-fmt-video Width/Height : 0/0 Pixel Format : '' [...] $ v4l2-ctl -d /dev/v4l-touch0 --set-input 0 Video input set to 0 (Normalized 16-Bit Image: Touch, ok) $ v4l2-ctl -d /dev/v4l-touch0 --get-fmt-video Width/Height : 71/40 Pixel Format : 'TD16' [...] To fix this, initialize the video format to input 0 during probe. Signed-off-by: Philipp Zabel Signed-off-by: Dmitry Torokhov commit bd21d847924845175fed9756d560cd1c4669f2c5 Author: Dmitry Torokhov Date: Thu Apr 25 09:21:13 2019 -0700 HID: input: add mapping for KEY_KBD_LAYOUT_NEXT HUTRR56 defined a new usage code on consumer page to cycle through set of keyboard layouts, let's add this mapping. Acked-by: Benjamin Tissoires Signed-off-by: Dmitry Torokhov commit 81592d5b91344cd9fd386f77ffe7ed498ce473e6 Author: Dmitry Torokhov Date: Thu Apr 25 09:20:05 2019 -0700 Input: add KEY_KBD_LAYOUT_NEXT The HID usage tables define a key to cycle through a set of keyboard layouts, let's add corresponding keycode. Signed-off-by: Dmitry Torokhov commit b422df915cef80333d7a1732e6ed81f41db12b79 Author: Trond Myklebust Date: Wed Apr 24 17:46:50 2019 -0400 lockd: Store the lockd client credential in struct nlm_host When we create a new lockd client, we want to be able to pass the correct credential of the process that created the struct nlm_host. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 3b7eb5e35d0f55541452e91ca66798c16a81ad4a Author: Trond Myklebust Date: Wed Apr 24 17:46:49 2019 -0400 NFS: When mounting, don't share filesystems between different user namespaces If two different containers that share the same network namespace attempt to mount the same filesystem, we should not allow them to share the same super block if they do not share the same user namespace, since the user mappings on the wire will need to differ. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit c207db2f5da5e37e284d87d5196dcf967e84956c Author: Trond Myklebust Date: Wed Apr 24 17:46:48 2019 -0400 NFS: Convert NFSv2 to use the container user namespace When mapping NFS identities, we want to substitute for the uids and gids on the wire as we would for the AUTH_UNIX creds. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 58002399da65c53f00987623d9ff7c3c2773a0d9 Author: Trond Myklebust Date: Wed Apr 24 17:46:47 2019 -0400 NFSv4: Convert the NFS client idmapper to use the container user namespace When mapping NFS identities using the NFSv4 idmapper, we want to substitute for the uids and gids that would normally go on the wire as part of a NFSv3 request. So we use the same mapping in the NFSv4 upcall as we use in the NFSv3 RPC call (i.e. the mapping stored in the rpc_clnt cred). Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 264d948ce7d0b99cbe1aae704bbef8d951602eec Author: Trond Myklebust Date: Wed Apr 24 17:46:46 2019 -0400 NFS: Convert NFSv3 to use the container user namespace When mapping NFS identities, we want to substitute for the uids and gids on the wire as we would for the AUTH_UNIX creds. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit ac83228a7101e655ba5a7fa61ae10b058ada15db Author: Trond Myklebust Date: Wed Apr 24 17:46:45 2019 -0400 SUNRPC: Use namespace of listening daemon in the client AUTH_GSS upcall When the client needs to talk to rpc.gssd, we should ensure that the uid argument is encoded to match the user namespace of the daemon. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 283ebe3ec4157c5cdc2581ed7e5c3764137f8fe5 Author: Trond Myklebust Date: Wed Apr 24 17:46:44 2019 -0400 SUNRPC: Use the client user namespace when encoding creds When encoding AUTH_UNIX creds and AUTH_GSS upcalls, use the user namespace of the process that created the rpc client. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 1a58e8a0e5c1f188a80eb9e505bc77d78a31a4ec Author: Trond Myklebust Date: Wed Apr 24 17:46:43 2019 -0400 NFS: Store the credential of the mount process in the nfs_server Store the credential of the mount process so that we can determine information such as the user namespace. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 30e5a9a5ba853b896250f0665a2e10bbafa2f6bc Merge: 148f025d41a8 8828f81ad4a2 Author: David S. Miller Date: Fri Apr 26 16:05:52 2019 -0400 Merge tag 'mac80211-next-for-davem-2019-04-26' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next Johannes Berg says: ==================== Various updates, notably: * extended key ID support (from 802.11-2016) * per-STA TX power control support * mac80211 TX performance improvements * HE (802.11ax) updates * mesh link probing support * enhancements of multi-BSSID support (also related to HE) * OWE userspace processing support ==================== Signed-off-by: David S. Miller commit 79caa5fad47c69874f9efc4ac3128cc3f6d36f6e Author: Trond Myklebust Date: Wed Apr 24 17:46:42 2019 -0400 SUNRPC: Cache cred of process creating the rpc_client When converting kuids to AUTH_UNIX creds, etc we will want to use the same user namespace as the process that created the rpc client. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 1749d1ea89bdf3181328b7d846e609d5a0e53e50 Author: Brian Foster Date: Fri Apr 26 07:30:24 2019 -0700 xfs: add missing error check in xfs_prepare_shift() xfs_prepare_shift() fails to check the error return from xfs_flush_unmap_range(). If the latter fails, that could lead to an insert/collapse range operation over a delalloc range, which is not supported. Add an error check and return appropriately. This is reproduced rarely by generic/475. Fixes: 7f9f71be84bc ("xfs: extent shifting doesn't fully invalidate page cache") Signed-off-by: Brian Foster Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong Reviewed-by: Allison Collins Reviewed-by: Dave Chinner commit 47cd97b5b239b82829f780fc99821ab1745abc82 Author: Darrick J. Wong Date: Thu Apr 25 18:26:23 2019 -0700 xfs: scrub should check incore counters against ondisk headers In theory, the incore per-AG structure counters should match the ones on disk, so check that. Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner commit 9a1f3049f47330b2467b9eecfc3a3298c46592d1 Author: Darrick J. Wong Date: Thu Apr 25 18:26:23 2019 -0700 xfs: allow scrubbers to pause background reclaim The forthcoming summary counter patch races with regular filesystem activity to compute rough expected values for the counters. This design was chosen to avoid having to freeze the entire filesystem to check the counters, but while that's running we'd prefer to minimize background reclamation activity to reduce the perturbations to the incore free block count. Therefore, provide a way for scrubbers to disable background posteof and cowblock reclamation. Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner commit ed30dcbd901c513b63de98278dbd7a6a0dcc50c6 Author: Darrick J. Wong Date: Thu Apr 25 18:26:22 2019 -0700 xfs: rename the speculative block allocation reclaim toggle functions "reclaim" is used throughout the icache code to mean reclamation of incore inode structures. It's also used for two helper functions that toggle background deletion of speculative preallocations. Separate the second of the two uses to make things less confusing. Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner commit 9fe82b8c422b5d9e9011bc08e27b9044936d945f Author: Darrick J. Wong Date: Thu Apr 25 18:26:22 2019 -0700 xfs: track delayed allocation reservations across the filesystem Add a percpu counter to track the number of blocks directly reserved for delayed allocations on the data device. This counter (in contrast to i_delayed_blks) does not track allocated CoW staging extents or anything going on with the realtime device. It will be used in the upcoming summary counter scrub function to check the free block counts without having to freeze the filesystem or walk all the inodes to find the delayed allocations. Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner commit f60be90fc9a969d8d38d761aef1c930407a6a921 Author: Darrick J. Wong Date: Wed Apr 24 10:39:49 2019 -0700 xfs: fix broken bhold behavior in xrep_roll_ag_trans In xrep_roll_ag_trans, the transaction roll will always set sc->tp to the new transaction, even if committing the old one fails. A bare transaction roll leaves the buffer(s) locked but not joined to the new transaction, so it's not necessary to release the hold if the roll fails. Remove the incorrect xfs_trans_bhold_release calls. Signed-off-by: Darrick J. Wong Reviewed-by: Brian Foster commit 6921d4ebe418e7cce9f65c1f38c93ea82a1f546c Author: Al Viro Date: Fri Apr 26 14:09:49 2019 -0400 audit_update_watch(): switch to const struct qstr * Signed-off-by: Al Viro commit ce163918cd330158eb1a4c2a8fddec6b2e7d6d74 Author: Al Viro Date: Fri Apr 26 13:55:21 2019 -0400 inotify_handle_event(): don't bother with strlen() Signed-off-by: Al Viro commit e43e9c339a78a0978f4ce473f645cedc05e6a57c Author: Al Viro Date: Fri Apr 26 13:51:03 2019 -0400 fsnotify: switch send_to_group() and ->handle_event to const struct qstr * note that conditions surrounding accesses to dname in audit_watch_handle_event() and audit_mark_handle_event() guarantee that dname won't have been NULL. Signed-off-by: Al Viro commit 90b6c5c73c6904ac200161fc38974d867f0535b0 Author: Stephen Boyd Date: Thu Apr 25 10:57:37 2019 -0700 clk: Remove CLK_IS_BASIC clk flag This flag was historically used to indicate that a clk is a "basic" type of clk like a mux, divider, gate, etc. This never turned out to be very useful though because it was hard to cleanly split "basic" clks from other clks in a system. This one flag was a way for type introspection and it just didn't scale. If anything, it was used by the TI clk driver to indicate that a clk_hw wasn't contained in the SoC specific clk structure. We can get rid of this define now that TI is finding those clks a different way. Cc: Tero Kristo Cc: Ralf Baechle Cc: Paul Burton Cc: James Hogan Cc: Cc: Thierry Reding Cc: Kevin Hilman Cc: Cc: Acked-by: Thierry Reding Signed-off-by: Stephen Boyd commit 25b229dff4ffffd0fad2dd409faf1e2ae4d94866 Author: Al Viro Date: Fri Apr 26 13:37:25 2019 -0400 fsnotify(): switch to passing const struct qstr * for file_name Note that in fnsotify_move() and fsnotify_link() we are guaranteed that dentry->d_name won't change during the fsnotify() evaluation (by having the parent directory locked exclusive), so we don't need to fetch dentry->d_name.name in the callers. In fsnotify_dirent() the same stability of dentry->d_name is also true, but it's a bit more convoluted - there is one callchain (devpts_pty_new() -> fsnotify_create() -> fsnotify_dirent()) where the parent is _not_ locked, but on devpts ->d_name of everything is unchanging; it has neither explicit nor implicit renames. Signed-off-by: Al Viro commit f4ec3a3d43bcdcf6295af9f3715a5a33f59bb6ce Author: Al Viro Date: Fri Apr 26 13:21:24 2019 -0400 switch fsnotify_move() to passing const struct qstr * for old_name note that in the second (RENAME_EXCHANGE) call of fsnotify_move() in vfs_rename() the old_dentry->d_name is guaranteed to be unchanged throughout the evaluation of fsnotify_move() (by the fact that the parent directory is locked exclusive), so we don't need to fetch old_dentry->d_name.name in the caller. Signed-off-by: Al Viro commit 230c6402b1b305c21c91b56cd9de95a608898506 Author: Al Viro Date: Fri Apr 26 13:07:27 2019 -0400 ovl_lookup_real_one(): don't bother with strlen() Signed-off-by: Al Viro commit f4fd2ec08f17b34f1c7c18414d5fc882efd51e83 Author: Fabien Dessenne Date: Wed Apr 24 11:21:25 2019 +0200 dmaengine: stm32-dma: use platform_get_irq() platform_get_resource(pdev, IORESOURCE_IRQ) is not recommended for requesting IRQ's resources, as they can be not ready yet. Using platform_get_irq() instead is preferred for getting IRQ even if it was not retrieved earlier. Signed-off-by: Fabien Dessenne Reviewed-by: Pierre-Yves MORDRET Signed-off-by: Vinod Koul commit 41d7f2ed8457d38951bc73f9e6296d8340c221e2 Merge: cc6be1315931 01fa017484ad Author: Jens Axboe Date: Fri Apr 26 10:25:19 2019 -0600 Merge branch 'nvme-5.2' of git://git.infradead.org/nvme into for-5.2/block Pull NVMe changes from Christoph. * 'nvme-5.2' of git://git.infradead.org/nvme: nvme: set 0 capacity if namespace block size exceeds PAGE_SIZE nvme-rdma: fix typo in struct comment nvme-loop: kill timeout handler nvme-tcp: rename function to have nvme_tcp prefix nvme-rdma: fix a NULL deref when an admin connect times out nvme-tcp: fix a NULL deref when an admin connect times out nvmet-tcp: don't fail maxr2t greater than 1 nvmet-file: clamp-down file namespace lba_shift nvmet: include nvmet: return a specified error it subsys_alloc fails nvmet: rename nvme_completion instances from rsp to cqe nvmet-rdma: remove p2p_client initialization from fast-path commit 148f025d41a8bf8fe7e72d1a86024b5e4d25f224 Merge: 790d23e7c577 96490a1c09ce Author: David S. Miller Date: Fri Apr 26 12:13:29 2019 -0400 Merge branch 'hns3-next' Huazhong Tan says: ==================== code optimizations & bugfixes for HNS3 driver This patch-set includes code optimizations and bugfixes for the HNS3 ethernet controller driver. [patch 1/11 - 3/11] fixes some bugs about the IO path [patch 4/11 - 6/11] includes some optimization and bugfixes about mailbox handling [patch 7/11 - 11/11] adds misc code optimizations and bugfixes. Change log: V2->V3: fixes comments from Neil Horman, removes [patch 8/12] V1->V2: adds modification on [patch 8/12] ==================== Signed-off-by: David S. Miller commit 96490a1c09ce8af322f646b20d1dd6255e2e9ae2 Author: Weihang Li Date: Thu Apr 25 20:42:55 2019 +0800 net: hns3: remove reset after command send failed It's meaningless to trigger reset when failed to send command to IMP, because the failure is usually caused by no authority, illegal command and so on. When that happened, we just need to return the status code for further debugging. Signed-off-by: Weihang Li Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 7b8f622e537aa87b52def78c37a8645d979fb7cc Author: Huazhong Tan Date: Thu Apr 25 20:42:54 2019 +0800 net: hns3: prevent double free in hns3_put_ring_config() This patch adds a check for the hns3_put_ring_config() to prevent double free, and for more readable, move the NULL assignment of priv->ring_data into the hns3_put_ring_config(). Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit fd85717d2800a352ce48799adcf7037b74df2854 Author: liuzhongzhu Date: Thu Apr 25 20:42:53 2019 +0800 net: hns3: extend the loopback state acquisition time The test results show that the maximum time of hardware return to mac link state is 500MS.The software needs to set twice the maximum time of hardware return state (1000MS). If not modified, the loopback test returns probability failure. Signed-off-by: liuzhongzhu Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit fba2efdae8b4f998f66a2ff4c9f0575e1c4bbc40 Author: Huazhong Tan Date: Thu Apr 25 20:42:52 2019 +0800 net: hns3: fix pause configure fail problem When configure pause, current implementation returns directly after setup PFC without setup BP, which is not sufficient. So this patch fixes it, only return while setting PFC failed. Fixes: 44e59e375bf7 ("net: hns3: do not return GE PFC setting err when initializing") Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit 146e92c13fdedf43a1ae211e85acde4631bb3c71 Author: Huazhong Tan Date: Thu Apr 25 20:42:51 2019 +0800 net: hns3: not reset TQP in the DOWN while VF resetting Since the hardware does not handle mailboxes and the hardware reset include TQP reset, so it is unnecessary to reset TQP in the hclgevf_ae_stop() while doing VF reset. Also it is unnecessary to reset the remaining TQP when one reset fails. Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit b7048d324b5ebcb99022e2e7296f03918e5f38c4 Author: Huazhong Tan Date: Thu Apr 25 20:42:50 2019 +0800 net: hns3: use a reserved byte to identify need_resp flag This patch uses a reserved byte in the hclge_mbx_vf_to_pf_cmd to save the need_resp flag, so when PF received the mailbox, it can use it to decise whether send a response to VF. For hclge_set_vf_uc_mac_addr(), it should use mbx_need_resp flag to decide whether send response to VF. Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit 30780a8b1677e7409b32ae52a9a84f7d41ae6b43 Author: Huazhong Tan Date: Thu Apr 25 20:42:49 2019 +0800 net: hns3: use atomic_t replace u32 for arq's count Since irq handler and mailbox task will both update arq's count, so arq's count should use atomic_t instead of u32, otherwise its value may go wrong finally. Fixes: 07a0556a3a73 ("net: hns3: Changes to support ARQ(Asynchronous Receive Queue)") Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit 1416d333a4ec9ab05c37b94628cb476b32326858 Author: Huazhong Tan Date: Thu Apr 25 20:42:48 2019 +0800 net: hns3: stop sending keep alive msg when VF command queue needs reinit HCLGEVF_STATE_CMD_DISABLE is more suitable than HCLGEVF_STATE_RST_HANDLING to stop sending keep alive msg, since HCLGEVF_STATE_RST_HANDLING only be set when the reset task is running. Fixes: c59a85c07e77 ("net: hns3: stop sending keep alive msg to PF when VF is resetting") Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit ea4858670717fd948dab0113a5ee65486494a607 Author: Yunsheng Lin Date: Thu Apr 25 20:42:47 2019 +0800 net: hns3: handle the BD info on the last BD of the packet The bdinfo handled in hns3_handle_bdinfo is only valid on the last BD of the current packet, currently the bd info may be handled based on the first BD if the packet has more than two BDs, which may cause rx error. This patch fixes it by using the last BD of the current packet in hns3_handle_bdinfo. Also, hns3_set_rx_skb_rss_type has used RSS hash value from the last BD of the current packet, so remove the same last BD calculation in hns3_set_rx_skb_rss_type and call it from hns3_handle_bdinfo. Fixes: e55970950556 ("net: hns3: Add handling of GRO Pkts not fully RX'ed in NAPI poll") Signed-off-by: Yunsheng Lin Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 63380a1ae4ced8aef67659ff9547c69ef8b9613a Author: Yunsheng Lin Date: Thu Apr 25 20:42:46 2019 +0800 net: hns3: fix for TX clean num when cleaning TX BD hns3_desc_unused() returns how many BD have been cleaned, but new buffer has not been attached to them. The register of HNS3_RING_RX_RING_FBDNUM_REG returns how many BD need allocating new buffer to or need to cleaned. So the remaining BD need to be clean is HNS3_RING_RX_RING_FBDNUM_REG - hns3_desc_unused(). Also, new buffer can not attach to the pending BD when the last BD is not handled, because memcpy has not been done on the first pending BD. This patch fixes by subtracting the pending BD num from unused_count after 'HNS3_RING_RX_RING_FBDNUM_REG - unused_count' is used to calculate the BD bum need to be clean. Fixes: e55970950556 ("net: hns3: Add handling of GRO Pkts not fully RX'ed in NAPI poll") Signed-off-by: Yunsheng Lin Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 26cda2f1613878d9bde11325559f4fca92fff395 Author: Yunsheng Lin Date: Thu Apr 25 20:42:45 2019 +0800 net: hns3: fix data race between ring->next_to_clean hns3_clean_tx_ring calls hns3_nic_reclaim_one_desc to clean buffers and set ring->next_to_clean, then hns3_nic_net_xmit reuses the cleaned buffers. But there are no memory barriers when buffers gets recycled, so the recycled buffers can be corrupted. This patch uses smp_store_release to update ring->next_to_clean and smp_load_acquire to read ring->next_to_clean to properly hand off buffers from hns3_clean_tx_ring to hns3_nic_net_xmit. Fixes: 76ad4f0ee747 ("net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC") Signed-off-by: Yunsheng Lin Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 790d23e7c577ed2ef7c49f246ad8d53691fb1b20 Author: Dirk van der Merwe Date: Wed Apr 24 20:18:02 2019 -0700 nfp: implement PCI driver shutdown callback Device may be shutdown without the hardware being reinitialized, in which case we want to ensure we cleanup properly. This is especially important for kexec with traffic flowing. The shutdown procedures resembles the remove procedures, so we can reuse those common tasks. Signed-off-by: Dirk van der Merwe Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit 16848c8a728e74c1b6a0c994f34f0f5453f257a0 Author: YueHaibing Date: Thu Apr 25 02:07:20 2019 +0000 NFC: st95hf: remove set but not used variables 'dev, nfcddev' Fixes gcc '-Wunused-but-set-variable' warning: drivers/nfc/st95hf/core.c: In function 'st95hf_irq_thread_handler': drivers/nfc/st95hf/core.c:786:26: warning: variable 'nfcddev' set but not used [-Wunused-but-set-variable] drivers/nfc/st95hf/core.c:784:17: warning: variable 'dev' set but not used [-Wunused-but-set-variable] They are never used since introduction in commit cab47333f0f7 ("NFC: Add STMicroelectronics ST95HF driver") Signed-off-by: YueHaibing Signed-off-by: David S. Miller commit 0e58156d700ac45fd5f0f90698a13233b1fe4c44 Author: Eric Dumazet Date: Wed Apr 24 17:21:40 2019 -0700 tipc: remove rcu_read_unlock() left in tipc_udp_recv() I forgot to remove one rcu_read_unlock() before a return statement. Joy of mixing goto and return styles in a function :) Fixes: 4109a2c3b91e ("tipc: tipc_udp_recv() cleanup vs rcu verbs") Signed-off-by: Eric Dumazet Reported-by: kbuild test robot Signed-off-by: David S. Miller commit 8c90b795e90f7753d23c18e8b95dd71b4a18c5d9 Author: Heiner Kallweit Date: Wed Apr 24 21:41:06 2019 +0200 net: phy: improve genphy_soft_reset PHY's behave differently when being reset. Some reset registers to defaults, some don't. Some trigger an autoneg restart, some don't. So let's also set the autoneg restart bit when resetting. Then PHY behavior should be more consistent. Clearing BMCR_ISOLATE serves the same purpose and is borrowed from genphy_restart_aneg. BMCR holds the speed / duplex settings in fixed mode. Therefore we may have an issue if a soft reset resets BMCR to its default. So better call genphy_setup_forced() afterwards in fixed mode. We've seen no related complaint in the last >10 yrs, so let's treat it as an improvement. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit f8011d334426cee77276a1038b627b5cb0470258 Author: Mikulas Patocka Date: Fri Apr 26 09:59:24 2019 -0400 dm writecache: avoid unnecessary lookups in writecache_find_entry() This is a small optimization in writecache_find_entry(). If we go past the condition "if (unlikely(!node))", we can be certain that there is no entry in the tree that has the block equal to the "block" variable. Consequently, we can return the next entry directly, we don't need to go to the second part of the function that finds the entry with lowest or highest seq number that matches the "block" variable. Also, add some whitespace and cleanup needless braces. Suggested-by: Huaisheng Ye Signed-off-by: Mikulas Patocka Signed-off-by: Mike Snitzer commit f7abc0618a4a5f0e138e24bb31234a88bfdb18ae Author: Guenter Roeck Date: Wed Apr 24 10:58:24 2019 -0700 usbnet: ipheth: Simplify device detection All Apple products use the same protocol for tethering over USB. To simplify the code and make it future proof, use USB_VENDOR_AND_INTERFACE_INFO() instead of USB_DEVICE_AND_INTERFACE_INFO() to automatically detect and support all existing and future Apple products using the same interface. Signed-off-by: Guenter Roeck Signed-off-by: David S. Miller commit 08a8e804620bbb41d06d144441d19c589bb17aa4 Author: Huaisheng Ye Date: Thu Apr 25 21:31:19 2019 +0800 dm writecache: remove unused member page_offset in writeback_struct The stucture member page_offset in writeback_struct never has been used actually. Remove it. Signed-off-by: Huaisheng Ye Acked-by: Mikulas Patocka Signed-off-by: Mike Snitzer commit d42281b6e49510f078ace15a8ea10f71e6262581 Author: Jeremy Linton Date: Mon Apr 15 16:21:27 2019 -0500 arm64: Always enable ssb vulnerability detection Ensure we are always able to detect whether or not the CPU is affected by SSB, so that we can later advertise this to userspace. Signed-off-by: Jeremy Linton Reviewed-by: Andre Przywara Reviewed-by: Catalin Marinas Tested-by: Stefan Wahren [will: Use IS_ENABLED instead of #ifdef] Signed-off-by: Will Deacon commit e55449e71aade362aa684bd3222974fed6e2d1c6 Author: David Ahern Date: Wed Apr 24 10:36:06 2019 -0700 ipv6: Initialize fib6_result in bpf_ipv6_fib_lookup fib6_result is not initialized in bpf_ipv6_fib_lookup and potentially passses garbage to the fib lookup which triggers a KASAN warning: [ 262.055450] ================================================================== [ 262.057640] BUG: KASAN: user-memory-access in fib6_rule_suppress+0x4b/0xce [ 262.059488] Read of size 8 at addr 00000a20000000b0 by task swapper/1/0 [ 262.061238] [ 262.061673] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 5.1.0-rc5+ #56 [ 262.063493] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.11.1-1 04/01/2014 [ 262.065593] Call Trace: [ 262.066277] [ 262.066848] dump_stack+0x7e/0xbb [ 262.067764] kasan_report+0x18b/0x1b5 [ 262.069921] __asan_load8+0x7f/0x81 [ 262.070879] fib6_rule_suppress+0x4b/0xce [ 262.071980] fib_rules_lookup+0x275/0x2cd [ 262.073090] fib6_lookup+0x119/0x218 [ 262.076457] bpf_ipv6_fib_lookup+0x39d/0x664 ... Initialize fib6_result to 0. Fixes: b1d40991506aa ("ipv6: Rename fib6_multipath_select and pass fib6_result") Signed-off-by: David Ahern Signed-off-by: David S. Miller commit d2532e27b5638bb2e2dd52b80b7ea2ec65135377 Author: Jeremy Linton Date: Mon Apr 15 16:21:26 2019 -0500 arm64: add sysfs vulnerability show for spectre-v2 Track whether all the cores in the machine are vulnerable to Spectre-v2, and whether all the vulnerable cores have been mitigated. We then expose this information to userspace via sysfs. Signed-off-by: Jeremy Linton Reviewed-by: Andre Przywara Reviewed-by: Catalin Marinas Tested-by: Stefan Wahren Signed-off-by: Will Deacon commit 8c1e3d2bb44cbb998cb28ff9a18f105fee7f1eb3 Author: Jeremy Linton Date: Mon Apr 15 16:21:25 2019 -0500 arm64: Always enable spectre-v2 vulnerability detection Ensure we are always able to detect whether or not the CPU is affected by Spectre-v2, so that we can later advertise this to userspace. Signed-off-by: Jeremy Linton Reviewed-by: Andre Przywara Reviewed-by: Catalin Marinas Tested-by: Stefan Wahren Signed-off-by: Will Deacon commit 517953c2c47f9c00a002f588ac856a5bc70cede3 Author: Marc Zyngier Date: Mon Apr 15 16:21:24 2019 -0500 arm64: Use firmware to detect CPUs that are not affected by Spectre-v2 The SMCCC ARCH_WORKAROUND_1 service can indicate that although the firmware knows about the Spectre-v2 mitigation, this particular CPU is not vulnerable, and it is thus not necessary to call the firmware on this CPU. Let's use this information to our benefit. Signed-off-by: Marc Zyngier Signed-off-by: Jeremy Linton Reviewed-by: Andre Przywara Reviewed-by: Catalin Marinas Tested-by: Stefan Wahren Signed-off-by: Will Deacon commit 81bc6d150ace6250503b825d9d0c10f7bbd24095 Author: Mikulas Patocka Date: Thu Apr 25 12:07:54 2019 -0400 dm delay: fix a crash when invalid device is specified When the target line contains an invalid device, delay_ctr() will call delay_dtr() with NULL workqueue. Attempting to destroy the NULL workqueue causes a crash. Signed-off-by: Mikulas Patocka Cc: stable@vger.kernel.org Signed-off-by: Mike Snitzer commit 73f38166095947f3b86b02fbed6bd592223a7ac8 Author: Marc Zyngier Date: Mon Apr 15 16:21:23 2019 -0500 arm64: Advertise mitigation of Spectre-v2, or lack thereof We currently have a list of CPUs affected by Spectre-v2, for which we check that the firmware implements ARCH_WORKAROUND_1. It turns out that not all firmwares do implement the required mitigation, and that we fail to let the user know about it. Instead, let's slightly revamp our checks, and rely on a whitelist of cores that are known to be non-vulnerable, and let the user know the status of the mitigation in the kernel log. Signed-off-by: Marc Zyngier Signed-off-by: Jeremy Linton Reviewed-by: Andre Przywara Reviewed-by: Suzuki K Poulose Reviewed-by: Catalin Marinas Tested-by: Stefan Wahren Signed-off-by: Will Deacon commit 950347f5f7e407c9ba46c99f44f133de7539b450 Author: Gustavo A. R. Silva Date: Wed Apr 24 11:37:32 2019 -0500 cnic: Refactor code and mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, refactor code a bit and mark switch cases where we are expecting to fall through. This patch fixes the following warning: drivers/net/ethernet/broadcom/cnic.c: In function ‘cnic_cm_process_kcqe’: drivers/net/ethernet/broadcom/cnic.c:4044:11: warning: this statement may fall through [-Wimplicit-fallthrough=] opcode = L4_KCQE_OPCODE_VALUE_CLOSE_COMP; drivers/net/ethernet/broadcom/cnic.c:4050:2: note: here case L4_KCQE_OPCODE_VALUE_RESET_RECEIVED: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 Notice that, in this particular case, the code comment is modified in accordance with what GCC is expecting to find. This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Signed-off-by: David S. Miller commit 05dd2645302fbbe08abe4d89879c468accb81715 Author: Gustavo A. R. Silva Date: Wed Apr 24 11:27:42 2019 -0500 cxgb4/cxgb4vf_main: Mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warning: drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c: In function ‘fwevtq_handler’: drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c:520:7: warning: this statement may fall through [-Wimplicit-fallthrough=] cpl = (void *)p; ~~~~^~~~~~~~~~~ drivers/net/ethernet/chelsio/cxgb4vf/cxgb4vf_main.c:524:2: note: here case CPL_SGE_EGR_UPDATE: { ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 Notice that, in this particular case, the code comment is modified in accordance with what GCC is expecting to find. This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Signed-off-by: David S. Miller commit 9b8221d4ed6045c1b968a85c8b24d7282af450b6 Author: Gustavo A. R. Silva Date: Wed Apr 24 11:20:16 2019 -0500 wimax/i2400m/control: Mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warning: In file included from drivers/net/wimax/i2400m/debug-levels.h:30, from drivers/net/wimax/i2400m/control.c:86: drivers/net/wimax/i2400m/control.c: In function ‘i2400m_report_tlv_system_state’: ./include/linux/wimax/debug.h:200:4: warning: this statement may fall through [-Wimplicit-fallthrough=] do { \ ^ ./include/linux/wimax/debug.h:404:36: note: in expansion of macro ‘_d_printf’ #define d_printf(l, _dev, f, a...) _d_printf(l, "", _dev, f, ## a) ^~~~~~~~~ drivers/net/wimax/i2400m/control.c:354:3: note: in expansion of macro ‘d_printf’ d_printf(1, dev, "entering BS-negotiated idle mode\n"); ^~~~~~~~ drivers/net/wimax/i2400m/control.c:355:2: note: here case I2400M_SS_DISCONNECTING: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Signed-off-by: David S. Miller commit a36de5b7752ae1a9b5a5ca46c067dc232b085136 Author: Gustavo A. R. Silva Date: Wed Apr 24 11:08:24 2019 -0500 amd-xgbe: Mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warnings: In file included from drivers/net/ethernet/amd/xgbe/xgbe-drv.c:129: drivers/net/ethernet/amd/xgbe/xgbe-drv.c: In function ‘xgbe_set_hwtstamp_settings’: drivers/net/ethernet/amd/xgbe/xgbe-common.h:1392:9: warning: this statement may fall through [-Wimplicit-fallthrough=] (_var) |= (((_val) & ((0x1 << (_width)) - 1)) << (_index)); \ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/amd/xgbe/xgbe-common.h:1419:2: note: in expansion of macro ‘SET_BITS’ SET_BITS((_var), \ ^~~~~~~~ drivers/net/ethernet/amd/xgbe/xgbe-drv.c:1614:3: note: in expansion of macro ‘XGMAC_SET_BITS’ XGMAC_SET_BITS(mac_tscr, MAC_TSCR, TSVER2ENA, 1); ^~~~~~~~~~~~~~ drivers/net/ethernet/amd/xgbe/xgbe-drv.c:1616:2: note: here case HWTSTAMP_FILTER_PTP_V1_L4_EVENT: ^~~~ In file included from drivers/net/ethernet/amd/xgbe/xgbe-drv.c:129: drivers/net/ethernet/amd/xgbe/xgbe-common.h:1392:9: warning: this statement may fall through [-Wimplicit-fallthrough=] (_var) |= (((_val) & ((0x1 << (_width)) - 1)) << (_index)); \ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/amd/xgbe/xgbe-common.h:1419:2: note: in expansion of macro ‘SET_BITS’ SET_BITS((_var), \ ^~~~~~~~ drivers/net/ethernet/amd/xgbe/xgbe-drv.c:1625:3: note: in expansion of macro ‘XGMAC_SET_BITS’ XGMAC_SET_BITS(mac_tscr, MAC_TSCR, TSVER2ENA, 1); ^~~~~~~~~~~~~~ drivers/net/ethernet/amd/xgbe/xgbe-drv.c:1627:2: note: here case HWTSTAMP_FILTER_PTP_V1_L4_SYNC: ^~~~ In file included from drivers/net/ethernet/amd/xgbe/xgbe-drv.c:129: drivers/net/ethernet/amd/xgbe/xgbe-common.h:1392:9: warning: this statement may fall through [-Wimplicit-fallthrough=] (_var) |= (((_val) & ((0x1 << (_width)) - 1)) << (_index)); \ ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/amd/xgbe/xgbe-common.h:1419:2: note: in expansion of macro ‘SET_BITS’ SET_BITS((_var), \ ^~~~~~~~ drivers/net/ethernet/amd/xgbe/xgbe-drv.c:1636:3: note: in expansion of macro ‘XGMAC_SET_BITS’ XGMAC_SET_BITS(mac_tscr, MAC_TSCR, TSVER2ENA, 1); ^~~~~~~~~~~~~~ drivers/net/ethernet/amd/xgbe/xgbe-drv.c:1638:2: note: here case HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 Notice that, in this particular case, the code comments are modified in accordance with what GCC is expecting to find. This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Signed-off-by: David S. Miller commit 60747828eac28836b49bed214399b0c972f19df3 Author: Gustavo A. R. Silva Date: Wed Apr 24 10:31:24 2019 -0500 net: socket: Fix missing break in switch statement Add missing break statement in order to prevent the code from falling through to cases SIOCGSTAMP_NEW and SIOCGSTAMPNS_NEW. This bug was found thanks to the ongoing efforts to enable -Wimplicit-fallthrough. Fixes: 0768e17073dc ("net: socket: implement 64-bit timestamps") Signed-off-by: Gustavo A. R. Silva Reported-by: Dan Carpenter Acked-by: Arnd Bergmann Signed-off-by: David S. Miller commit 514cf4f881dc82507d87d2ccd5e7478fd36632fa Author: Peng Wang Date: Thu Apr 18 21:59:19 2019 +0800 dm: only initialize md->dax_dev if CONFIG_DAX_DRIVER is enabled md->dax_dev defaults to NULL and there is no need to initialize it if CONFIG_DAX_DRIVER is disabled. Signed-off-by: Peng Wang Signed-off-by: Mike Snitzer commit 1b3ccf4be0e7be8c4bd8522066b6cbc92591e912 Author: Jeremy Linton Date: Mon Apr 15 16:21:22 2019 -0500 arm64: add sysfs vulnerability show for meltdown We implement page table isolation as a mitigation for meltdown. Report this to userspace via sysfs. Signed-off-by: Jeremy Linton Reviewed-by: Suzuki K Poulose Reviewed-by: Andre Przywara Reviewed-by: Catalin Marinas Tested-by: Stefan Wahren Signed-off-by: Will Deacon commit 3891ebccace188af075ce143d8b072b65e90f695 Author: Mian Yousaf Kaukab Date: Mon Apr 15 16:21:21 2019 -0500 arm64: Add sysfs vulnerability show for spectre-v1 spectre-v1 has been mitigated and the mitigation is always active. Report this to userspace via sysfs Signed-off-by: Mian Yousaf Kaukab Signed-off-by: Jeremy Linton Reviewed-by: Andre Przywara Reviewed-by: Catalin Marinas Tested-by: Stefan Wahren Acked-by: Suzuki K Poulose Signed-off-by: Will Deacon commit e5ce5e7267ddcbe13ab9ead2542524e1b7993e5a Author: Jeremy Linton Date: Mon Apr 15 16:21:20 2019 -0500 arm64: Provide a command line to disable spectre_v2 mitigation There are various reasons, such as benchmarking, to disable spectrev2 mitigation on a machine. Provide a command-line option to do so. Signed-off-by: Jeremy Linton Reviewed-by: Suzuki K Poulose Reviewed-by: Andre Przywara Reviewed-by: Catalin Marinas Tested-by: Stefan Wahren Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Signed-off-by: Will Deacon commit 6f22b6649edf11334b558185c209bb7ba9a9ee28 Author: Arnd Bergmann Date: Fri Apr 26 16:50:41 2019 +0200 fs: use timespec64 in relatime_need_update For some reason, the conversion of the VFS code away from 'struct timespec' left one function behind that still uses it, for absolutely no reason. Using timespec64 will make the atime update logic work correctly past y2038. Signed-off-by: Arnd Bergmann Signed-off-by: Al Viro commit 0ff85d6d5a83c9b41527c5aab2fae240eeccfa7b Merge: 9157bc2a5e82 14a1b04777b6 Author: David S. Miller Date: Fri Apr 26 11:14:06 2019 -0400 Merge branch 's390-qeth-cleanups' Julian Wiedmann says: ==================== s390/qeth: updates 2019-04-25 please apply one more patch series for qeth to net-next. Nothing special, just a bunch of cleanups. ==================== Signed-off-by: David S. Miller commit 14a1b04777b6cc1df50cd0587c5db22badd7f4d7 Author: Julian Wiedmann Date: Thu Apr 25 18:26:01 2019 +0200 s390/qeth: trust non-IP cast type in qeth_l3_fill_header() When building the L3 HW header for non-IP packets, trust the cast type that was passed as parameter. qeth_l3_get_cast_type() has most likely also used h_dest to determine the cast type, so we get the same result, and can remove that duplicated code. In the unlikely case that we would get a _different_ cast type, then that's based off a route lookup and should be considered authoritative. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 58aa2491aa615d9618ffc764cc3eaf689053c7a9 Author: Julian Wiedmann Date: Thu Apr 25 18:26:00 2019 +0200 s390/qeth: extract helper to determine L2 cast type This de-duplicates the L2 and L3 cast-type code, and makes the L2 code a bit more robust by removing the fragile assumption that skb->data always points to the Ethernet Header. This would break in code paths where we pushed the HW header onto the skb. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 4e26c5fe552e5f0d9e3abcea48cd311af232bed9 Author: Julian Wiedmann Date: Thu Apr 25 18:25:59 2019 +0200 s390/qeth: cache max number of available buffer elements The QETH_MAX_BUFFER_ELEMENTS() macro effectively returns a constant value. To avoid some redundant pointer chasing and computations in the xmit hot path, cache this value in the queue struct. Take this as opportunity to shrink some of the queue struct's fields to their appropriate value range, slightly reducing its total size. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 7b579ce57ecf73856a26173b04ab6053798c8e2a Author: Julian Wiedmann Date: Thu Apr 25 18:25:58 2019 +0200 s390/qeth: don't clear Output buffers on every queue init On the first initialization of a queue, its Output Buffers are in a clean state with no attached resources. On every subsequent initialization, qeth_l?_stop_card() has previously put them in a clean state via qeth_drain_output_queues(). So the call to qeth_clear_output_buffer() is redundant and can be removed. While at it, move the initialization of the queue's card pointer into the queue allocation. It never changes afterwards. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 379ac99e5192f98c560b22ae2a3dbaa97c043cc8 Author: Julian Wiedmann Date: Thu Apr 25 18:25:57 2019 +0200 s390/qeth: use IS_* helpers for checking device type We have helper macros for all possible device types, replace all remaining open-coded accesses to the type fields. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 5c0bfba780ba96a2e656abfa677155c935153aaa Author: Julian Wiedmann Date: Thu Apr 25 18:25:56 2019 +0200 s390/qeth: clean up stale buffer state documentation We don't keep track of Input Buffer states, so remove the comments that make it sound like the qeth_qdio_buffer_states enum applies to Input Buffers. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit ddb0ac51e62ea190da5d82f5bd983210ee341aa6 Author: Julian Wiedmann Date: Thu Apr 25 18:25:55 2019 +0200 s390/qeth: remove RX seqno in skb->cb It's unclear what exact purpose this seqno may have served in the past. But it's certainly no longer used anymore, as the following napi_gro_receive() will straight away clear this part of the cb again. Suggested-by: Karsten Graul Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 46b83629dede262315aa82179d105581f11763b6 Author: Arnd Bergmann Date: Thu Apr 25 18:25:54 2019 +0200 s390: qeth: address type mismatch warning clang produces a harmless warning for each use for the qeth_adp_supported macro: drivers/s390/net/qeth_l2_main.c:559:31: warning: implicit conversion from enumeration type 'enum qeth_ipa_setadp_cmd' to different enumeration type 'enum qeth_ipa_funcs' [-Wenum-conversion] if (qeth_adp_supported(card, IPA_SETADP_SET_PROMISC_MODE)) ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/s390/net/qeth_core.h:179:41: note: expanded from macro 'qeth_adp_supported' qeth_is_ipa_supported(&c->options.adp, f) ~~~~~~~~~~~~~~~~~~~~~ ^ Add a version of this macro that uses the correct types, and remove the unused qeth_adp_enabled() macro that has the same problem. Reviewed-by: Nathan Chancellor Signed-off-by: Arnd Bergmann Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit d53bff888f3bca8bb618a4b2723a6cfbde46f7ed Merge: 26ac2b6ee6c0 26b25a2b98e4 Author: Joerg Roedel Date: Fri Apr 26 17:11:46 2019 +0200 Merge branch 'api-features' into arm/smmu commit 43068cb7ba1f6ceb1523e947c84002b2a61fd6d4 Author: Masahiro Yamada Date: Fri Mar 29 20:32:41 2019 +0900 drm: prefix header search paths with $(srctree)/ Currently, the Kbuild core manipulates header search paths in a crazy way [1]. To fix this mess, I want all Makefiles to add explicit $(srctree)/ to the search paths in the srctree. Some Makefiles are already written in that way, but not all. The goal of this work is to make the notation consistent, and finally get rid of the gross hacks. Having whitespaces after -I does not matter since commit 48f6e3cf5bc6 ("kbuild: do not drop -I without parameter"). [1]: https://patchwork.kernel.org/patch/9632347/ Signed-off-by: Masahiro Yamada Reviewed-by: Sam Ravnborg Reviewed-by: James Qian Wang (Arm Technology China) Acked-by: Liviu Dudau Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/1553859161-2628-1-git-send-email-yamada.masahiro@socionext.com commit a7755c3cfa5df755e39447b08c28203e011fb98c Author: Lu Baolu Date: Fri Apr 19 14:43:29 2019 +0800 iommu/vt-d: Don't request page request irq under dmar_global_lock Requesting page reqest irq under dmar_global_lock could cause potential lock race condition (caught by lockdep). [ 4.100055] ====================================================== [ 4.100063] WARNING: possible circular locking dependency detected [ 4.100072] 5.1.0-rc4+ #2169 Not tainted [ 4.100078] ------------------------------------------------------ [ 4.100086] swapper/0/1 is trying to acquire lock: [ 4.100094] 000000007dcbe3c3 (dmar_lock){+.+.}, at: dmar_alloc_hwirq+0x35/0x140 [ 4.100112] but task is already holding lock: [ 4.100120] 0000000060bbe946 (dmar_global_lock){++++}, at: intel_iommu_init+0x191/0x1438 [ 4.100136] which lock already depends on the new lock. [ 4.100146] the existing dependency chain (in reverse order) is: [ 4.100155] -> #2 (dmar_global_lock){++++}: [ 4.100169] down_read+0x44/0xa0 [ 4.100178] intel_irq_remapping_alloc+0xb2/0x7b0 [ 4.100186] mp_irqdomain_alloc+0x9e/0x2e0 [ 4.100195] __irq_domain_alloc_irqs+0x131/0x330 [ 4.100203] alloc_isa_irq_from_domain.isra.4+0x9a/0xd0 [ 4.100212] mp_map_pin_to_irq+0x244/0x310 [ 4.100221] setup_IO_APIC+0x757/0x7ed [ 4.100229] x86_late_time_init+0x17/0x1c [ 4.100238] start_kernel+0x425/0x4e3 [ 4.100247] secondary_startup_64+0xa4/0xb0 [ 4.100254] -> #1 (irq_domain_mutex){+.+.}: [ 4.100265] __mutex_lock+0x7f/0x9d0 [ 4.100273] __irq_domain_add+0x195/0x2b0 [ 4.100280] irq_domain_create_hierarchy+0x3d/0x40 [ 4.100289] msi_create_irq_domain+0x32/0x110 [ 4.100297] dmar_alloc_hwirq+0x111/0x140 [ 4.100305] dmar_set_interrupt.part.14+0x1a/0x70 [ 4.100314] enable_drhd_fault_handling+0x2c/0x6c [ 4.100323] apic_bsp_setup+0x75/0x7a [ 4.100330] x86_late_time_init+0x17/0x1c [ 4.100338] start_kernel+0x425/0x4e3 [ 4.100346] secondary_startup_64+0xa4/0xb0 [ 4.100352] -> #0 (dmar_lock){+.+.}: [ 4.100364] lock_acquire+0xb4/0x1c0 [ 4.100372] __mutex_lock+0x7f/0x9d0 [ 4.100379] dmar_alloc_hwirq+0x35/0x140 [ 4.100389] intel_svm_enable_prq+0x61/0x180 [ 4.100397] intel_iommu_init+0x1128/0x1438 [ 4.100406] pci_iommu_init+0x16/0x3f [ 4.100414] do_one_initcall+0x5d/0x2be [ 4.100422] kernel_init_freeable+0x1f0/0x27c [ 4.100431] kernel_init+0xa/0x110 [ 4.100438] ret_from_fork+0x3a/0x50 [ 4.100444] other info that might help us debug this: [ 4.100454] Chain exists of: dmar_lock --> irq_domain_mutex --> dmar_global_lock [ 4.100469] Possible unsafe locking scenario: [ 4.100476] CPU0 CPU1 [ 4.100483] ---- ---- [ 4.100488] lock(dmar_global_lock); [ 4.100495] lock(irq_domain_mutex); [ 4.100503] lock(dmar_global_lock); [ 4.100512] lock(dmar_lock); [ 4.100518] *** DEADLOCK *** Cc: Ashok Raj Cc: Jacob Pan Cc: Kevin Tian Reported-by: Dave Jiang Fixes: a222a7f0bb6c9 ("iommu/vt-d: Implement page request handling") Signed-off-by: Lu Baolu Signed-off-by: Joerg Roedel commit 553d66cb1e8667aadb57e3804775c5ce1724a49b Author: Gustavo A. R. Silva Date: Thu Apr 18 13:46:24 2019 -0500 iommu/vt-d: Use struct_size() helper Make use of the struct_size() helper instead of an open-coded version in order to avoid any potential type mistakes, in particular in the context in which this code is being used. So, replace code of the following form: size = sizeof(*info) + level * sizeof(info->path[0]); with: size = struct_size(info, path, level); Signed-off-by: Gustavo A. R. Silva Signed-off-by: Joerg Roedel commit c8c3b584343cb7522fc00322769a9f288305743f Author: Petr Mladek Date: Wed Apr 17 13:53:50 2019 +0200 vsprintf: Limit the length of inlined error messages The inlined error messages must be used carefully because they need to fit into the given buffer. Handle them using a custom wrapper that makes people aware of the problem. Also define a reasonable hard limit to avoid a completely insane usage. Suggested-by: Sergey Senozhatsky Link: http://lkml.kernel.org/r/20190417115350.20479-11-pmladek@suse.com To: Rasmus Villemoes Cc: Linus Torvalds Cc: "Tobin C . Harding" Cc: Joe Perches Cc: Andrew Morton Cc: Michal Hocko Cc: Steven Rostedt Cc: Sergey Senozhatsky Cc: linux-kernel@vger.kernel.org Reviewed-by: Sergey Senozhatsky Reviewed-by: Andy Shevchenko Signed-off-by: Petr Mladek commit 635720ac75a51092b456bed517ff170047883252 Author: Petr Mladek Date: Wed Apr 17 13:53:49 2019 +0200 vsprintf: Avoid confusion between invalid address and value We are able to detect invalid values handled by %p[iI] printk specifier. The current error message is "invalid address". It might cause confusion against "(efault)" reported by the generic valid_pointer_address() check. Let's unify the style and use the more appropriate error code description "(einval)". Link: http://lkml.kernel.org/r/20190417115350.20479-10-pmladek@suse.com To: Rasmus Villemoes Cc: Linus Torvalds Cc: "Tobin C . Harding" Cc: Joe Perches Cc: Andrew Morton Cc: Michal Hocko Cc: Steven Rostedt Cc: Sergey Senozhatsky Cc: linux-kernel@vger.kernel.org Reviewed-by: Sergey Senozhatsky Reviewed-by: Andy Shevchenko Signed-off-by: Petr Mladek commit 3e5903eb9cff707301712498aed9e34b3e2ee883 Author: Petr Mladek Date: Wed Apr 17 13:53:48 2019 +0200 vsprintf: Prevent crash when dereferencing invalid pointers We already prevent crash when dereferencing some obviously broken pointers. But the handling is not consistent. Sometimes we print "(null)" only for pure NULL pointer, sometimes for pointers in the first page and sometimes also for pointers in the last page (error codes). Note that printk() call this code under logbuf_lock. Any recursive printks are redirected to the printk_safe implementation and the messages are stored into per-CPU buffers. These buffers might be eventually flushed in printk_safe_flush_on_panic() but it is not guaranteed. This patch adds a check using probe_kernel_read(). It is not a full-proof test. But it should help to see the error message in 99% situations where the kernel would silently crash otherwise. Also it makes the error handling unified for "%s" and the many %p* specifiers that need to read the data from a given address. We print: + (null) when accessing data on pure pure NULL address + (efault) when accessing data on an invalid address It does not affect the %p* specifiers that just print the given address in some form, namely %pF, %pf, %pS, %ps, %pB, %pK, %px, and plain %p. Note that we print (efault) from security reasons. In fact, the real address can be seen only by %px or eventually %pK. Link: http://lkml.kernel.org/r/20190417115350.20479-9-pmladek@suse.com To: Rasmus Villemoes Cc: Linus Torvalds Cc: "Tobin C . Harding" Cc: Joe Perches Cc: Andrew Morton Cc: Michal Hocko Cc: Steven Rostedt Cc: Sergey Senozhatsky Cc: linux-kernel@vger.kernel.org Reviewed-by: Sergey Senozhatsky Reviewed-by: Andy Shevchenko Signed-off-by: Petr Mladek commit 0b74d4d763fd4ee9daa53889324300587c015338 Author: Petr Mladek Date: Wed Apr 17 13:53:47 2019 +0200 vsprintf: Consolidate handling of unknown pointer specifiers There are few printk formats that make sense only with two or more specifiers. Also some specifiers make sense only when a kernel feature is enabled. The handling of unknown specifiers is inconsistent and not helpful. Using WARN() looks like an overkill for this type of error. pr_warn() is not good either. It would by handled via printk_safe buffer and it might be hard to match it with the problematic string. A reasonable compromise seems to be writing the unknown format specifier into the original string with a question mark, for example (%pC?). It should be self-explaining enough. Note that it is in brackets to follow the (null) style. Note that it introduces a warning about that test_hashed() function is unused. It is going to be used again by a later patch. Link: http://lkml.kernel.org/r/20190417115350.20479-8-pmladek@suse.com To: Rasmus Villemoes Cc: Linus Torvalds Cc: "Tobin C . Harding" Cc: Joe Perches Cc: Andrew Morton Cc: Michal Hocko Cc: Steven Rostedt Cc: Sergey Senozhatsky Cc: linux-kernel@vger.kernel.org Reviewed-by: Sergey Senozhatsky Reviewed-by: Andy Shevchenko Signed-off-by: Petr Mladek commit 798cc27a305e7b35b7bff3a71257e6fe57f70bc1 Author: Petr Mladek Date: Wed Apr 17 13:53:46 2019 +0200 vsprintf: Factor out %pO handler as kobject_string() Move code from the long pointer() function. We are going to improve error handling that will make it even more complicated. This patch does not change the existing behavior. Link: http://lkml.kernel.org/r/20190417115350.20479-7-pmladek@suse.com To: Rasmus Villemoes Cc: Linus Torvalds Cc: "Tobin C . Harding" Cc: Joe Perches Cc: Andrew Morton Cc: Michal Hocko Cc: Steven Rostedt Cc: Sergey Senozhatsky Cc: linux-kernel@vger.kernel.org Cc: Kees Cook Reviewed-by: Sergey Senozhatsky Reviewed-by: Andy Shevchenko Signed-off-by: Petr Mladek commit 45c3e93d751ea50861c796da3cbfc848fa6ddf55 Author: Petr Mladek Date: Wed Apr 17 13:53:45 2019 +0200 vsprintf: Factor out %pV handler as va_format() Move the code from the long pointer() function. We are going to improve error handling that will make it more complicated. This patch does not change the existing behavior. Link: http://lkml.kernel.org/r/20190417115350.20479-6-pmladek@suse.com To: Rasmus Villemoes Cc: Linus Torvalds Cc: "Tobin C . Harding" Cc: Joe Perches Cc: Andrew Morton Cc: Michal Hocko Cc: Steven Rostedt Cc: Sergey Senozhatsky Cc: linux-kernel@vger.kernel.org Reviewed-by: Sergey Senozhatsky Reviewed-by: Andy Shevchenko Signed-off-by: Petr Mladek commit f00cc102b862be688fe090aec30e08d61a8f5e63 Author: Petr Mladek Date: Wed Apr 17 13:53:44 2019 +0200 vsprintf: Factor out %p[iI] handler as ip_addr_string() Move the non-trivial code from the long pointer() function. We are going to improve error handling that will make it even more complicated. This patch does not change the existing behavior. Link: http://lkml.kernel.org/r/20190417115350.20479-5-pmladek@suse.com To: Rasmus Villemoes Cc: Linus Torvalds Cc: "Tobin C . Harding" Cc: Joe Perches Cc: Andrew Morton Cc: Michal Hocko Cc: Steven Rostedt Cc: Sergey Senozhatsky Cc: linux-kernel@vger.kernel.org Reviewed-by: Sergey Senozhatsky Reviewed-by: Andy Shevchenko Signed-off-by: Petr Mladek commit d529ac4194f2c346b2f62f0f473a578a7357039b Author: Petr Mladek Date: Wed Apr 17 13:53:43 2019 +0200 vsprintf: Do not check address of well-known strings We are going to check the address using probe_kernel_address(). It will be more expensive and it does not make sense for well known address. This patch splits the string() function. The variant without the check is then used on locations that handle string constants or strings defined as local variables. This patch does not change the existing behavior. Link: http://lkml.kernel.org/r/20190417115350.20479-4-pmladek@suse.com To: Rasmus Villemoes Cc: Linus Torvalds Cc: "Tobin C . Harding" Cc: Joe Perches Cc: Andrew Morton Cc: Michal Hocko Cc: Steven Rostedt Cc: Sergey Senozhatsky Cc: linux-kernel@vger.kernel.org Reviewed-by: Andy Shevchenko Signed-off-by: Petr Mladek Reviewed-by: Sergey Senozhatsky commit 1ac2f9789c4b76ad749870c25ffae0cbcd1f510f Author: Petr Mladek Date: Wed Apr 17 13:53:42 2019 +0200 vsprintf: Consistent %pK handling for kptr_restrict == 0 restricted_pointer() pretends that it prints the address when kptr_restrict is set to zero. But it is never called in this situation. Instead, pointer() falls back to ptr_to_id() and hashes the pointer. This patch removes the potential confusion. klp_restrict is checked only in restricted_pointer(). It actually fixes a small race when the address might get printed unhashed: CPU0 CPU1 pointer() if (!kptr_restrict) /* for example set to 2 */ restricted_pointer() /* echo 0 >/proc/sys/kernel/kptr_restrict */ proc_dointvec_minmax_sysadmin() klpr_restrict = 0; switch(kptr_restrict) case 0: break: number() Fixes: ef0010a30935de4e0211 ("vsprintf: don't use 'restricted_pointer()' when not restricting") Link: http://lkml.kernel.org/r/20190417115350.20479-3-pmladek@suse.com To: Andy Shevchenko To: Rasmus Villemoes Cc: Linus Torvalds Cc: "Tobin C . Harding" Cc: Joe Perches Cc: Andrew Morton Cc: Michal Hocko Cc: Steven Rostedt Cc: Sergey Senozhatsky Cc: linux-kernel@vger.kernel.org Cc: Kees Cook Reviewed-by: Andy Shevchenko Reviewed-by: Steven Rostedt (VMware) Reviewed-by: Sergey Senozhatsky Signed-off-by: Petr Mladek commit 6eea242f9bcdf828bb56334d8ee5c7cb466e4bcd Author: Petr Mladek Date: Wed Apr 17 13:53:41 2019 +0200 vsprintf: Shuffle restricted_pointer() This is just a preparation step for further changes. The patch does not change the code. Link: http://lkml.kernel.org/r/20190417115350.20479-2-pmladek@suse.com To: Rasmus Villemoes Cc: Linus Torvalds Cc: "Tobin C . Harding" Cc: Joe Perches Cc: Andrew Morton Cc: Michal Hocko Cc: Steven Rostedt Cc: Sergey Senozhatsky Cc: linux-kernel@vger.kernel.org Reviewed-by: Andy Shevchenko Reviewed-by: Sergey Senozhatsky Signed-off-by: Petr Mladek commit 26ac2b6ee6c0902188316d16bc5ca9306d678f03 Merge: 085b7755808a bc580b56cb78 Author: Joerg Roedel Date: Fri Apr 26 15:48:52 2019 +0200 Merge branch 'for-joerg/arm-smmu/updates' of git://git.kernel.org/pub/scm/linux/kernel/git/will/linux into arm/smmu commit 1eb8e4e2b35b4d83cc40cbf379493490741eb5b8 Author: Wen Yang Date: Wed Apr 17 10:41:19 2019 +0800 iommu/mediatek: Fix leaked of_node references The call to of_parse_phandle returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. 581 static int mtk_iommu_probe(struct platform_device *pdev) 582 { ... 626 for (i = 0; i < larb_nr; i++) { 627 struct device_node *larbnode; ... 631 larbnode = of_parse_phandle(...); 632 if (!larbnode) 633 return -EINVAL; 634 635 if (!of_device_is_available(larbnode)) 636 continue; ---> leaked here 637 ... 643 if (!plarbdev) 644 return -EPROBE_DEFER; ---> leaked here ... 647 component_match_add_release(dev, &match, release_of, 648 compare_of, larbnode); ---> release_of will call of_node_put 649 } ... 650 Detected by coccinelle with the following warnings: ./drivers/iommu/mtk_iommu.c:644:3-9: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 631, but without a corresponding object release within this function. Signed-off-by: Wen Yang Cc: Joerg Roedel Cc: Matthias Brugger Cc: iommu@lists.linux-foundation.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-mediatek@lists.infradead.org Cc: linux-kernel@vger.kernel.org Reviewed-by: Matthias Brugger Signed-off-by: Joerg Roedel commit c805b428f206a9097ef8c905d8b7e40bc411100e Author: Joerg Roedel Date: Fri Apr 26 15:17:20 2019 +0200 iommu/amd: Remove amd_iommu_pd_list This variable hold a global list of allocated protection domains in the AMD IOMMU driver. By now this list is never traversed anymore, so the list and the lock protecting it can be removed. Cc: Tom Murphy Signed-off-by: Joerg Roedel commit 427503519739e779c0db8afe876c1b33f3ac60ae Author: Will Deacon Date: Wed Apr 10 11:51:54 2019 +0100 futex: Update comments and docs about return values of arch futex code The architecture implementations of 'arch_futex_atomic_op_inuser()' and 'futex_atomic_cmpxchg_inatomic()' are permitted to return only -EFAULT, -EAGAIN or -ENOSYS in the case of failure. Update the comments in the asm-generic/ implementation and also a stray reference in the robust futex documentation. Signed-off-by: Will Deacon commit 8e4e0ac02b449297b86498ac24db5786ddd9f647 Author: Will Deacon Date: Wed Apr 10 11:49:11 2019 +0100 arm64: futex: Avoid copying out uninitialised stack in failed cmpxchg() Returning an error code from futex_atomic_cmpxchg_inatomic() indicates that the caller should not make any use of *uval, and should instead act upon on the value of the error code. Although this is implemented correctly in our futex code, we needlessly copy uninitialised stack to *uval in the error case, which can easily be avoided. Signed-off-by: Will Deacon commit 03110a5cb2161690ae5ac04994d47ed0cd6cef75 Author: Will Deacon Date: Mon Apr 8 14:23:17 2019 +0100 arm64: futex: Bound number of LDXR/STXR loops in FUTEX_WAKE_OP Our futex implementation makes use of LDXR/STXR loops to perform atomic updates to user memory from atomic context. This can lead to latency problems if we end up spinning around the LL/SC sequence at the expense of doing something useful. Rework our futex atomic operations so that we return -EAGAIN if we fail to update the futex word after 128 attempts. The core futex code will reschedule if necessary and we'll try again later. Cc: Fixes: 6170a97460db ("arm64: Atomic operations") Signed-off-by: Will Deacon commit 6b4f4bc9cb22875f97023984a625386f0c7cc1c0 Author: Will Deacon Date: Thu Feb 28 11:58:08 2019 +0000 locking/futex: Allow low-level atomic operations to return -EAGAIN Some futex() operations, including FUTEX_WAKE_OP, require the kernel to perform an atomic read-modify-write of the futex word via the userspace mapping. These operations are implemented by each architecture in arch_futex_atomic_op_inuser() and futex_atomic_cmpxchg_inatomic(), which are called in atomic context with the relevant hash bucket locks held. Although these routines may return -EFAULT in response to a page fault generated when accessing userspace, they are expected to succeed (i.e. return 0) in all other cases. This poses a problem for architectures that do not provide bounded forward progress guarantees or fairness of contended atomic operations and can lead to starvation in some cases. In these problematic scenarios, we must return back to the core futex code so that we can drop the hash bucket locks and reschedule if necessary, much like we do in the case of a page fault. Allow architectures to return -EAGAIN from their implementations of arch_futex_atomic_op_inuser() and futex_atomic_cmpxchg_inatomic(), which will cause the core futex code to reschedule if necessary and return back to the architecture code later on. Cc: Acked-by: Peter Zijlstra (Intel) Signed-off-by: Will Deacon commit 84ff7a09c371bc7417eabfda19bf7f113ec917b6 Author: Will Deacon Date: Mon Apr 8 12:45:09 2019 +0100 arm64: futex: Fix FUTEX_WAKE_OP atomic ops with non-zero result value Rather embarrassingly, our futex() FUTEX_WAKE_OP implementation doesn't explicitly set the return value on the non-faulting path and instead leaves it holding the result of the underlying atomic operation. This means that any FUTEX_WAKE_OP atomic operation which computes a non-zero value will be reported as having failed. Regrettably, I wrote the buggy code back in 2011 and it was upstreamed as part of the initial arm64 support in 2012. The reasons we appear to get away with this are: 1. FUTEX_WAKE_OP is rarely used and therefore doesn't appear to get exercised by futex() test applications 2. If the result of the atomic operation is zero, the system call behaves correctly 3. Prior to version 2.25, the only operation used by GLIBC set the futex to zero, and therefore worked as expected. From 2.25 onwards, FUTEX_WAKE_OP is not used by GLIBC at all. Fix the implementation by ensuring that the return value is either 0 to indicate that the atomic operation completed successfully, or -EFAULT if we encountered a fault when accessing the user mapping. Cc: Fixes: 6170a97460db ("arm64: Atomic operations") Signed-off-by: Will Deacon commit cbafee55b5a0ec47baac622bce6b4d19afe45576 Merge: 79a3aaa7b82e 0336e04a6520 Author: Will Deacon Date: Fri Apr 26 13:32:20 2019 +0100 Merge branch 'core/speculation' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip into for-next/mitigations Pull in core support for the "mitigations=" cmdline option from Thomas Gleixner via -tip, which we can build on top of when we expose our mitigation state via sysfs. commit 9ef77fbedad9ea8895cd5d7fb7aee16071f527dc Author: Wright Feng Date: Fri Apr 26 03:12:32 2019 +0000 brcmfmac: send mailbox interrupt twice for specific hardware device For PCIE wireless device with core revision less than 14, device may miss PCIE to System Backplane Interrupt via PCIEtoSBMailbox. So add sending mail box interrupt twice as a hardware workaround. Signed-off-by: Wright Feng Signed-off-by: Kalle Valo commit a0656c6ec2fda34da08e7f8a917baf6e0698ee42 Author: YueHaibing Date: Tue Apr 23 22:32:14 2019 +0800 rtlwifi: rtl8192cu: remove set but not used variable 'turbo_scanoff' Fixes gcc '-Wunused-but-set-variable' warning: drivers/net/wireless/realtek/rtlwifi/rtl8192cu/rf.c: In function 'rtl92cu_phy_rf6052_set_cck_txpower': drivers/net/wireless/realtek/rtlwifi/rtl8192cu/rf.c:45:7: warning: variable 'turbo_scanoff' set but not used [-Wunused-but-set-variable] It is not used any more since commit e9b0784bb9de ("rtlwifi: rtl8192cu: Fix some code in RF handling") Signed-off-by: YueHaibing Signed-off-by: Kalle Valo commit 0b2ff1ff64c88eeca2494f2b02cade39e9cd15b2 Author: Jeff Xie Date: Wed Mar 20 00:24:05 2019 +0800 mwl8k: move spin_lock_bh to spin_lock in tasklet It is unnecessary to call spin_lock_bh in a tasklet. Signed-off-by: Jeff Xie Signed-off-by: Kalle Valo commit 8a6061c34a54a997db1ded6d89b7db6cbe3f359e Author: Hiroyuki Yokoyama Date: Wed Apr 10 20:26:57 2019 +0200 dmaengine: rcar-dmac: Update copyright information Update copyright and string for Gen3. Signed-off-by: Hiroyuki Yokoyama Signed-off-by: Niklas Söderlund Reviewed-by: Simon Horman Signed-off-by: Vinod Koul commit 0b68fe10b8e8c1a31c23c58d32e60637fb486b1e Author: Sergey Matyukevich Date: Tue Apr 9 07:35:12 2019 +0000 qtnfmac: modify debugfs to support multiple cards This patch modifies location of debugfs entries and their naming conventions to support multiple wireless cards on pcie host. Selected approach is to use separate directories for different wireless cards in top-level qtnfmac debugfs directory. Here is an example that clarifies the chosen naming conventions: $ sudo ls /sys/kernel/debug/qtnfmac/ qtnfmac_pcie:0000:01:00.0 Signed-off-by: Sergey Matyukevich Signed-off-by: Kalle Valo commit 888f1564a27206c5e6473bce31b1cd7118a6ed41 Author: Igor Mitsyanko Date: Tue Apr 9 07:35:10 2019 +0000 qtnfmac: allow to control DFS slave radar detection In ETSI region DFS slave device can operate in two modes on DFS channels: - do on-channel radar detection and use higher Tx power - don't do radar detection and use lower Tx power as a consequence Allow user to control that behavior through qtnfmac module parameter. Signed-off-by: Igor Mitsyanko Signed-off-by: Kalle Valo commit 4f87d486faf194ba58efaef8192a71e9ffec852e Author: Sergey Matyukevich Date: Tue Apr 9 07:35:08 2019 +0000 qtnfmac: handle channel switch events for connected stations only Channel switch events from firmware should be processed only when STA is already connected to BSS. On connect this notification is not needed since full BSS info will be supplied by cfg80211_connect_result. Signed-off-by: Sergey Matyukevich Signed-off-by: Kalle Valo commit 941acd566b1807b291bbdca31cc5158e26ffcf83 Author: Angus Ainslie (Purism) Date: Fri Mar 29 08:21:29 2019 -0700 dmaengine: imx-sdma: Only check ratio on parts that support 1:1 On imx8mq B0 chip, AHB/SDMA clock ratio 2:1 can't be supported, since SDMA clock ratio has to be increased to 250Mhz, AHB can't reach to 500Mhz, so use 1:1 instead. To limit this change to the imx8mq for now this patch also adds an im8mq-sdma compatible string. Signed-off-by: Angus Ainslie (Purism) Acked-by: Robin Gong Signed-off-by: Vinod Koul commit 9e1630b809ec2a6bf3248441563669fcd1e02646 Author: Colin Ian King Date: Mon Apr 15 16:30:28 2019 +0100 dmaengine: xgene-dma: fix spelling mistake "descripto" -> "descriptor" There is a spelling mistake in a chan_dbg message, fix it. Signed-off-by: Colin Ian King Signed-off-by: Vinod Koul commit ffcfc20f7489ecc1b5fbde68dae14f72c47330ab Author: Andy Shevchenko Date: Tue Apr 9 18:02:19 2019 +0300 dmaengine: idma64: Move driver name to the header There are two drivers that are relying on the iDMA 64-bit driver name to match. Instead of duplicating string in both of them, dedicate a header file and share it between users. Signed-off-by: Andy Shevchenko Signed-off-by: Vinod Koul commit c7266d26dc12bc056c0a7ffdbd4f4df41a8c25da Author: Michal Suchanek Date: Thu Apr 4 19:25:03 2019 +0200 dmaengine: bcm2835: Drop duplicate capability setting. Signed-off-by: Michal Suchanek Acked-by: Stefan Wahren Signed-off-by: Vinod Koul commit 2da254cc7908105a60a6bb219d18e8dced03dcb9 Author: Sugar Zhang Date: Wed Apr 3 19:06:22 2019 +0800 dmaengine: pl330: _stop: clear interrupt status This patch kill instructs the DMAC to immediately terminate execution of a thread. and then clear the interrupt status, at last, stop generating interrupts for DMA_SEV. to guarantee the next dma start is clean. otherwise, one interrupt maybe leave to next start and make some mistake. we can reporduce the problem as follows: DMASEV: modify the event-interrupt resource, and if the INTEN sets function as interrupt, the DMAC will set irq HIGH to generate interrupt. write INTCLR to clear interrupt. DMA EXECUTING INSTRUCTS DMA TERMINATE | | | | ... _stop | | | spin_lock_irqsave DMASEV | | | | mask INTEN | | | DMAKILL | | | spin_unlock_irqrestore in above case, a interrupt was left, and if we unmask INTEN, the DMAC will set irq HIGH to generate interrupt. to fix this, do as follows: DMA EXECUTING INSTRUCTS DMA TERMINATE | | | | ... _stop | | | spin_lock_irqsave DMASEV | | | | DMAKILL | | | clear INTCLR | mask INTEN | | | spin_unlock_irqrestore Signed-off-by: Sugar Zhang Signed-off-by: Vinod Koul commit 8828f81ad4a2f4e89ebe6e7793c06ed767c31d53 Author: Rajkumar Manoharan Date: Thu Apr 11 13:47:26 2019 -0700 mac80211: probe unexercised mesh links The requirement for mesh link metric refreshing, is that from one mesh point we be able to send some data frames to other mesh points which are not currently selected as a primary traffic path, but which are only 1 hop away. The absence of the primary path to the chosen node makes it necessary to apply some form of marking on a chosen packet stream so that the packets can be properly steered to the selected node for testing, and not by the regular mesh path lookup. Tested-by: Pradeep Kumar Chitrapu Signed-off-by: Rajkumar Manoharan Signed-off-by: Johannes Berg commit 060167729a78d626abaee1a0ebb64b252374426e Author: Rajkumar Manoharan Date: Thu Apr 11 13:47:25 2019 -0700 mac80211: add option for setting control flags Allows setting of control flags of skb cb - if needed - when calling ieee80211_subif_start_xmit(). Tested-by: Pradeep Kumar Chitrapu Signed-off-by: Rajkumar Manoharan Signed-off-by: Johannes Berg commit 5ab92e7fe49ad74293b50fb9e6f25be5521e2f68 Author: Rajkumar Manoharan Date: Thu Apr 11 13:47:24 2019 -0700 cfg80211: add support to probe unexercised mesh link Adding support to allow mesh HWMP to measure link metrics on unexercised direct mesh path by sending some data frames to other mesh points which are not currently selected as a primary traffic path but only 1 hop away. The absence of the primary path to the chosen node makes it necessary to apply some form of marking on a chosen packet stream so that the packets can be properly steered to the selected node for testing, and not by the regular mesh path lookup. Tested-by: Pradeep Kumar Chitrapu Signed-off-by: Rajkumar Manoharan Signed-off-by: Johannes Berg commit 387bc002250b31cf8012b736e482c9f65cbf7dd5 Author: Alexander Wetzel Date: Wed Apr 24 19:32:46 2019 +0200 mac80211: Set CAN_REPLACE_PTK0 for SW crypto only drivers Mac80211 SW crypto handles replacing PTK keys correctly. Don't trigger needless warnings or workarounds when the driver can only use the known good SW crypto provided by mac80211. Signed-off-by: Alexander Wetzel Signed-off-by: Johannes Berg commit cfe7007a9b4cea9c4a0f7d4192c776c62f31869e Author: Alexander Wetzel Date: Tue Apr 23 22:47:11 2019 +0200 mac80211_hwsim: Extended Key ID support Allow Extended Key ID to be used with hwsim. Hwsim can only communicate with other hwsim cards, allowing it to bypass creation of A-MPDUs in the first place. Mixing keyIDs in an A-MPDU is therefore impossible and can never cause interoperability issues with other cards. Signed-off-by: Alexander Wetzel [reword comment slightly] Signed-off-by: Johannes Berg commit a680fe468df7550ed18fbcae30e382252fdc35c6 Author: Luca Coelho Date: Wed Apr 17 09:34:40 2019 +0300 nl80211: do a struct assignment to radar_chandef instead of memcpy() We are copying one entire structure to another of the same type in nl80211_notify_radar_detection, so it's simpler and safer to do a struct assignment instead of memcpy(). Signed-off-by: Luca Coelho Signed-off-by: Johannes Berg commit 622fce81280aadb277dd3fc55c676b4bdc3e0527 Author: Alexander Wetzel Date: Mon Apr 22 23:34:11 2019 +0200 mac80211: Fix Extended Key ID auto activation Only enable Extended Key ID support for drivers which are not supporting crypto offload and also do not support A-MPDU. While any driver using SW crypto from mac80211 is generally able to also support Extended Key ID these drivers are likely to mix keyIDs in AMPDUs when rekeying. According to IEEE 802.11-2016 "9.7.3 A-MPDU contents" this is not allowed. Signed-off-by: Alexander Wetzel [reword comment a bit, move ! into logic expression] Signed-off-by: Johannes Berg commit 5809a5d54bb9eda3a388b5a712657970c2cb9f8e Author: Dan Carpenter Date: Thu Apr 11 11:59:50 2019 +0300 cfg80211: don't pass pointer to pointer unnecessarily The cfg80211_merge_profile() and ieee802_11_find_bssid_profile() are a bit cleaner if we just pass the merged_ie pointer instead of a pointer to the pointer. This isn't a functional change, it's just a clean up. Signed-off-by: Dan Carpenter Signed-off-by: Johannes Berg commit ba905bf432f662cb907fd692a4f160e612c0408b Author: Ashok Raj Nagarajan Date: Fri Mar 29 16:19:09 2019 +0530 mac80211: store tx power value from user to station This patch introduce a new driver callback drv_sta_set_txpwr. This API will copy the transmit power value passed from user space and call the driver callback to set the tx power for the station. Co-developed-by: Balaji Pothunoori Signed-off-by: Ashok Raj Nagarajan Signed-off-by: Balaji Pothunoori Signed-off-by: Johannes Berg commit e96d1cd2635c05efdd01b4eafcfc50c22c40751f Author: Ashok Raj Nagarajan Date: Fri Mar 29 16:18:21 2019 +0530 cfg80211: Add support to set tx power for a station associated This patch adds support to set transmit power setting type and transmit power level attributes to NL80211_CMD_SET_STATION in order to facilitate adjusting the transmit power level of a station associated to the AP. The added attributes allow selection of automatic and limited transmit power level, with the level defined in dBm format. Co-developed-by: Balaji Pothunoori Signed-off-by: Ashok Raj Nagarajan Signed-off-by: Balaji Pothunoori Signed-off-by: Johannes Berg commit dbd50a851c50bb95e457c99306eff298afd3d731 Author: Johannes Berg Date: Mon Apr 8 14:39:11 2019 +0200 mac80211: only allocate one queue when using iTXQs There's no need to allocate than one queue in the iTXQs case now that we no longer use ndo_select_queue to assign the AC. Signed-off-by: Johannes Berg commit 391d132cbedbe9b454f8a12544cb12b0df8d4e5b Author: Gustavo A. R. Silva Date: Wed Apr 3 10:37:44 2019 -0500 nl80211: Use struct_size() in kzalloc() One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example: struct foo { int stuff; struct boo entry[]; }; size = sizeof(struct foo) + count * sizeof(struct boo); instance = kzalloc(size, GFP_KERNEL) Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper: instance = kzalloc(struct_size(instance, entry, count), GFP_KERNEL) Notice that, in this case, variable size_of_regd is not necessary, hence it is removed. This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Johannes Berg commit 9f8c7136e8aa92a334ef2fc92dd6b5bbd23886da Author: Gustavo A. R. Silva Date: Wed Apr 3 10:31:51 2019 -0500 cfg80211: Use struct_size() in kzalloc() One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example: struct foo { int stuff; struct boo entry[]; }; size = sizeof(struct foo) + count * sizeof(struct boo); instance = kzalloc(size, GFP_KERNEL) Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper: instance = kzalloc(struct_size(instance, entry, count), GFP_KERNEL) Notice that, in this case, variable size_of_regd is not necessary, hence it is removed. This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Johannes Berg commit 276d9e82e06cade9c4d081664ad63da1be971642 Author: Julius Niedworok Date: Thu Mar 28 21:01:06 2019 +0100 mac80211: debugfs option to force TX status frames At Technical University of Munich we use MAC 802.11 TX status frames to perform several measurements in MAC 802.11 setups. With ath based drivers this was possible until commit d94a461d7a7df6 ("ath9k: use ieee80211_tx_status_noskb where possible") as the driver ignored the IEEE80211_TX_CTL_REQ_TX_STATUS flag and always delivered tx_status frames. Since that commit, this behavior was changed and the driver now adheres to IEEE80211_TX_CTL_REQ_TX_STATUS. Due to performance reasons, IEEE80211_TX_CTL_REQ_TX_STATUS is not set for data frames from interfaces in managed mode. Hence, frames that are sent from a managed mode interface do never deliver tx_status frames. This remains true even if a monitor mode interface (the measurement interface) is added to the same ieee80211 physical device. Thus, there is no possibility for receiving tx_status frames for frames sent on an interface in managed mode, if the driver adheres to IEEE80211_TX_CTL_REQ_TX_STATUS. In order to force delivery of tx_status frames for research and debugging purposes, implement a debugfs option force_tx_status for ieee80211 physical devices. When this option is set for a physical device, IEEE80211_TX_CTL_REQ_TX_STATUS is enabled in all packets sent from that device. This option can be set via /sys/kernel/debug/ieee80211//force_tx_status. The default is disabled. Co-developed-by: Charlie Groh Signed-off-by: Charlie Groh Signed-off-by: Julius Niedworok Signed-off-by: Johannes Berg commit 5e280420916f9483ce7b483ccc378f3c7b5929ab Author: Colin Ian King Date: Wed Mar 27 18:35:45 2019 +0000 cfg80211: remove redundant zero check on variable 'changed' The zero check on variable changed is redundant as it must be between 1 and 3 at the end of the proceeding if statement block. Remove the redundant check. Signed-off-by: Colin Ian King Signed-off-by: Johannes Berg commit 5dc8cdce1d722c733f8c7af14c5fb595cfedbfa8 Author: Sergey Matyukevich Date: Tue Mar 26 09:27:37 2019 +0000 mac80211/cfg80211: update bss channel on channel switch FullMAC STAs have no way to update bss channel after CSA channel switch completion. As a result, user-space tools may provide inconsistent channel info. For instance, consider the following two commands: $ sudo iw dev wlan0 link $ sudo iw dev wlan0 info The latter command gets channel info from the hardware, so most probably its output will be correct. However the former command gets channel info from scan cache, so its output will contain outdated channel info. In fact, current bss channel info will not be updated until the next [re-]connect. Note that mac80211 STAs have a workaround for this, but it requires access to internal cfg80211 data, see ieee80211_chswitch_work: /* XXX: shouldn't really modify cfg80211-owned data! */ ifmgd->associated->channel = sdata->csa_chandef.chan; This patch suggests to convert mac80211 workaround into cfg80211 behavior and to update current bss channel in cfg80211_ch_switch_notify. Signed-off-by: Sergey Matyukevich Signed-off-by: Johannes Berg commit c2b17948fc78c4fde80da34e0dfc44be8f076191 Author: Felix Fietkau Date: Mon Mar 25 09:50:16 2019 +0100 mac80211: minstrel_ht: automatically calculate rate duration shift A per-group shift was added to reduce the size of the per-rate transmit duration field to u16 without sacrificing a lot of precision This patch changes the macros to automatically calculate the best value for this shift based on the lowest rate within the group. This simplifies adding more groups and slightly improves accuracy for some of the existing groups. Signed-off-by: Felix Fietkau Signed-off-by: Johannes Berg commit 7f2e12e1bf9917e33f2e0e1aa8bfd10ea7527766 Author: Felix Fietkau Date: Mon Mar 25 09:50:15 2019 +0100 mac80211: minstrel_ht: add support for rates with 4 spatial streams This is needed for the upcoming driver for MT7615 4x4 802.11ac chipsets Signed-off-by: Felix Fietkau Signed-off-by: Johannes Berg commit 1974da8b31e6ea9c96c21505ffcb546fa59add23 Author: Felix Fietkau Date: Mon Mar 25 08:59:23 2019 +0100 mac80211: when using iTXQ, select the queue in ieee80211_subif_start_xmit When using iTXQ, the network stack does not need the real queue number, since mac80211 is using its internal queues anyway. In that case we can defer selecting the queue and remove a redundant station lookup in the tx path to save some CPU cycles. Signed-off-by: Felix Fietkau Signed-off-by: Johannes Berg commit 96fc6efb9ad9d0cd8cbb4462f0eb2a07092649e6 Author: Alexander Wetzel Date: Tue Mar 19 21:34:08 2019 +0100 mac80211: IEEE 802.11 Extended Key ID support Add support for Extended Key ID as defined in IEEE 802.11-2016. - Implement the nl80211 API for Extended Key ID - Extend mac80211 API to allow drivers to support Extended Key ID - Enable Extended Key ID by default for drivers only supporting SW crypto (e.g. mac80211_hwsim) - Allow unicast Tx usage to be supressed (IEEE80211_KEY_FLAG_NO_AUTO_TX) - Select the decryption key based on the MPDU keyid - Enforce existing assumptions in the code that rekeys don't change the cipher Signed-off-by: Alexander Wetzel [remove module parameter] Signed-off-by: Johannes Berg commit 6cdd3979a2bdc16116c5b2eb09475abf54ba9e70 Author: Alexander Wetzel Date: Tue Mar 19 21:34:07 2019 +0100 nl80211/cfg80211: Extended Key ID support Add support for IEEE 802.11-2016 "Extended Key ID for Individually Addressed Frames". Extend cfg80211 and nl80211 to allow pairwise keys to be installed for Rx only, enable Tx separately and allow Key ID 1 for pairwise keys. Signed-off-by: Alexander Wetzel [use NLA_POLICY_RANGE() for NL80211_KEY_MODE] Signed-off-by: Johannes Berg commit 092c4098f2b42b76068f73c8dd9f98c73b5eb372 Author: Alexander Wetzel Date: Sat Mar 16 21:44:43 2019 +0100 mac80211: Optimize tailroom_needed update checks Optimize/cleanup the delay tailroom checks and adds one missing tailroom update. Signed-off-by: Alexander Wetzel Signed-off-by: Johannes Berg commit 8dbb000ee73be2c05e34756739ce308885312a29 Author: Felix Fietkau Date: Sat Mar 16 18:06:34 2019 +0100 mac80211: set NETIF_F_LLTX when using intermediate tx queues When using iTXQ, tx sequence number allocation and statistics are run at dequeue time. Because of that, it is safe to enable NETIF_F_LLTX, which allows tx handlers to run on multiple CPUs in parallel. Signed-off-by: Felix Fietkau Acked-by: Toke Høiland-Jørgensen Signed-off-by: Johannes Berg commit ded4698b58cb23c22b0dcbd829ced19ce4e6ce02 Author: Felix Fietkau Date: Sat Mar 16 18:06:33 2019 +0100 mac80211: run late dequeue late tx handlers without holding fq->lock Reduces lock contention on enqueue/dequeue of iTXQ packets Signed-off-by: Felix Fietkau Acked-by: Toke Høiland-Jørgensen Signed-off-by: Johannes Berg commit f2af2df800d3648b1d68e02d5b8a5d77cfee8970 Author: Felix Fietkau Date: Sat Mar 16 18:06:32 2019 +0100 mac80211: calculate hash for fq without holding fq->lock in itxq enqueue Reduces lock contention on enqueue/dequeue of iTXQ packets Signed-off-by: Felix Fietkau Acked-by: Toke Høiland-Jørgensen Signed-off-by: Johannes Berg commit ef618b1bd6843cca42781acda829c429f337046f Author: Felix Fietkau Date: Sat Mar 16 18:06:30 2019 +0100 mac80211: mesh: drop redundant rcu_read_lock/unlock calls The callers of these functions are all within RCU locked sections Signed-off-by: Felix Fietkau Signed-off-by: Johannes Berg commit abaea61c79ea7a03fde7db5b48414143546b07c4 Author: Liad Kaufman Date: Fri Mar 15 17:39:07 2019 +0200 ieee80211: update HE IEs to D4.0 spec Update the out-dated comments as well, and have them point to the correct sections in the D4.0 spec. Signed-off-by: Liad Kaufman Signed-off-by: Luca Coelho Signed-off-by: Johannes Berg commit 5023b14cf4df4d22e1a80738167f3438c9e62e5f Author: Sara Sharon Date: Fri Mar 15 17:39:06 2019 +0200 mac80211: support profile split between elements Since an element is limited to 255 octets, a profile may be split split to several elements. Support the split as defined in the 11ax draft 3. Signed-off-by: Sara Sharon Signed-off-by: Luca Coelho Signed-off-by: Johannes Berg commit fe806e4992c9047affd263bcc13b2c047029a726 Author: Sara Sharon Date: Fri Mar 15 17:39:05 2019 +0200 cfg80211: support profile split between elements Since an element is limited to 255 octets, a profile may be split split to several elements. Support the split as defined in the 11ax draft 3. Detect legacy split and print a net-rate limited warning, since there is no ROI in supporting this probably non-existent split. Signed-off-by: Sara Sharon Signed-off-by: Luca Coelho Signed-off-by: Johannes Berg commit 671042a4fb77e0a0c2db595fd8e5ef5f7ba75bbe Author: Sara Sharon Date: Fri Mar 15 17:39:04 2019 +0200 mac80211: support non-inheritance element Subelement profile may specify element IDs it doesn't inherit from the management frame. Support it. Signed-off-by: Sara Sharon Signed-off-by: Luca Coelho Signed-off-by: Johannes Berg commit f7dacfb11475ba777e1e84ccec2e14b0ba5a17a3 Author: Sara Sharon Date: Fri Mar 15 17:39:03 2019 +0200 cfg80211: support non-inheritance element Subelement profile may specify element IDs it doesn't inherit from the management frame. Support it. Signed-off-by: Sara Sharon Signed-off-by: Luca Coelho Signed-off-by: Johannes Berg commit 5bd9d1082d3be32f08c0f7b3f656c0562d7667e2 Author: Sara Sharon Date: Fri Mar 15 17:39:02 2019 +0200 cfg80211: don't skip multi-bssid index element When creating the IEs for the nontransmitted BSS, the index element is skipped. However, we need to get DTIM values from it, so don't skip it. Signed-off-by: Sara Sharon Signed-off-by: Luca Coelho Signed-off-by: Johannes Berg commit 0538395031ca5c9c3d569b1d90c4e98aa5782620 Author: Avraham Stern Date: Fri Mar 15 17:39:01 2019 +0200 mac80211_hwsim: set p2p device interface support indication P2P device interface type was not indicated in the supported interface types even when hwsim was configured with p2p device support. Fix it. Signed-off-by: Avraham Stern Signed-off-by: Luca Coelho Signed-off-by: Johannes Berg commit 1d9373329bcbe0cfbb9af1738139292a9b10fe6a Author: Shaul Triebitz Date: Fri Mar 15 17:38:58 2019 +0200 nl80211: increase NL80211_MAX_SUPP_REG_RULES The iwlwifi driver creates one rule per channel, thus it needs more rules than normal. To solve this, increase NL80211_MAX_SUPP_REG_RULES so iwlwifi can also fit UHB (ultra high band) channels. Signed-off-by: Shaul Triebitz Signed-off-by: Luca Coelho Signed-off-by: Johannes Berg commit f3df44e7c9869b7691a4a0b57fa39ca47060b424 Author: Philipp Rudo Date: Thu Mar 14 13:50:32 2019 +0100 s390/zcore: Rename ipl_block to mitigate name collision With git commit 1e941d39493f1820475d80729a03cd7ab8c3c86d "s390: move ipl block to .boot.preserved.data section" the earl_ipl_block got renamed to ipl_block and became publicly available via boot_data.h. This might cause problems with zcore, which has it's own ipl_block variable. Thus rename the ipl_block in zcore to prevent name collision and highlight that it's only used locally. Signed-off-by: Philipp Rudo Fixes: 1e941d39493f ("s390: move ipl block to .boot.preserved.data section") Signed-off-by: Martin Schwidefsky commit f6780686525cc69a16a893cac0dd6adfbf25b7ff Author: Martin Schwidefsky Date: Wed Apr 17 16:32:27 2019 +0200 s390/boot: pad bzImage to 4K In order to be able to sign the bzImage independent of the block size of the IPL device, align the bzImage to 4096 bytes. Signed-off-by: Martin Schwidefsky commit 937347ac56bfca10c76153ac700e88a4b41f7130 Author: Martin Schwidefsky Date: Mon Feb 25 17:23:39 2019 +0100 s390/ipl: add helper functions to create an IPL report PR: Adjusted to the use in kexec_file later. Signed-off-by: Martin Schwidefsky Signed-off-by: Philipp Rudo Signed-off-by: Martin Schwidefsky commit 9641b8cc733f70a5400aa7e6831de4542c46a94c Author: Martin Schwidefsky Date: Thu Feb 21 14:23:04 2019 +0100 s390/ipl: read IPL report at early boot Read the IPL Report block provided by secure-boot, add the entries of the certificate list to the system key ring and print the list of components. PR: Adjust to Vasilys bootdata_preserved patch set. Preserve ipl_cert_list for later use in kexec_file. Signed-off-by: Martin Schwidefsky Signed-off-by: Philipp Rudo Signed-off-by: Martin Schwidefsky commit d29af5b7a886033e6a4eb5f0a9a25cd00da63ae8 Author: Martin Schwidefsky Date: Wed Feb 20 16:14:16 2019 +0100 s390/ipl: add definitions for the IPL report block To transport the information required for secure boot a new IPL report will be created at boot time. It will be written to memory right after the IPL parameter block. To work with the IPL report a couple of additional structure definitions are added the the uapi/ipl.h header. Signed-off-by: Martin Schwidefsky commit 5f1207fbe74450eb887155ba432bfc079312b0fe Author: Martin Schwidefsky Date: Wed Feb 20 14:26:51 2019 +0100 s390/ipl: provide uapi header for list directed IPL The IPL parameter block is used as an interface between Linux and the machine to query and change the boot device and boot options. To be able to create IPL parameter block in user space and pass it as segment to kexec provide an uapi header with proper structure definitions for the block. Signed-off-by: Martin Schwidefsky commit 86c74d869d321bee4753dc3f8c3d1c3809d8ed8a Author: Martin Schwidefsky Date: Wed Feb 20 14:08:26 2019 +0100 s390/ipl: make ipl_info less confusing The ipl_info union in struct ipl_parameter_block has the same name as the struct ipl_info. This does not help while reading the code and the union in struct ipl_parameter_block does not need to be named. Drop the name from the union. Reviewed-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky commit 8f8a54884dfd3d756693b7f174a06397bf19d8a5 Author: Arnaud Pouliquen Date: Tue Apr 23 17:58:08 2019 +0200 ASoC: stm32: sai: simplify dai driver initialisation Suppress the useless dynamic allocation of the dai driver structure. Signed-off-by: Arnaud Pouliquen Signed-off-by: Mark Brown commit 93f38ef6a4b62fd57076d36d1345d69f8a328ad9 Merge: 552f2d7edd38 780f202f2bf4 Author: Mark Brown Date: Fri Apr 26 11:02:03 2019 +0100 Merge branch 'asoc-5.1' into asoc-5.2 commit 3db6d5a5ecaf0a778d721ccf9809248350d4bfaf Author: Nadav Amit Date: Thu Apr 25 16:01:43 2019 -0700 x86/mm/tlb: Remove 'struct flush_tlb_info' from the stack Move flush_tlb_info variables off the stack. This allows to align flush_tlb_info to cache-line and avoid potentially unnecessary cache line movements. It also allows to have a fixed virtual-to-physical translation of the variables, which reduces TLB misses. Use per-CPU struct for flush_tlb_mm_range() and flush_tlb_kernel_range(). Add debug assertions to ensure there are no nested TLB flushes that might overwrite the per-CPU data. For arch_tlbbatch_flush() use a const struct. Results when running a microbenchmarks that performs 10^6 MADV_DONTEED operations and touching a page, in which 3 additional threads run a busy-wait loop (5 runs, PTI and retpolines are turned off): base off-stack ---- --------- avg (usec/op) 1.629 1.570 (-3%) stddev 0.014 0.009 Signed-off-by: Nadav Amit Acked-by: Peter Zijlstra Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Rik van Riel Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20190425230143.7008-1-namit@vmware.com Signed-off-by: Ingo Molnar commit da398dbd7d871bae332a800f7d194af18a2a9058 Merge: 2792107dc3af 8113a85f8720 Author: Ingo Molnar Date: Fri Apr 26 12:01:33 2019 +0200 Merge branch 'linus' into x86/mm, to pick up dependent fix Signed-off-by: Ingo Molnar commit 552f2d7edd38e29073f8036191320f09b534c480 Author: Paul Cercueil Date: Fri Apr 26 04:25:50 2019 +0200 ASoC: simple-card: Read pin switches conf from devicetree When the routing path between a widget (e.g. "Speaker") and the codec goes through an external amplifier, having a pin switch for this widget allows the amplifier to be disabled when the widget is not to be used (e.g. when using headphones). Signed-off-by: Paul Cercueil Signed-off-by: Mark Brown commit b46ea8f4d23807e41be86bf214618e4fd4682b9b Author: Nicolin Chen Date: Thu Apr 25 20:20:50 2019 -0700 ASoC: fsl_sai: Add missing return 0 in remove() Build warning being reported: sound/soc/fsl/fsl_sai.c: In function 'fsl_sai_remove': sound/soc/fsl/fsl_sai.c:921:1: warning: no return statement in function returning non-void [-Wreturn-type] So this patch just adds a "return 0" to fix it. Fixes: 812ad463e089 ("ASoC: fsl_sai: Add support for runtime pm") Reported-by: Stephen Rothwell Signed-off-by: Nicolin Chen Reviewed-by: Daniel Baluta Signed-off-by: Mark Brown commit 90194281ee8b01fc5a223a12ac90006ae98862c4 Author: Paul Cercueil Date: Fri Apr 26 04:25:49 2019 +0200 ASoC: simple-card-utils: add asoc_simple_parse_pin_switches() This function is a helper that permits to create pin switch controls for a list of widgets whose names are listed in the PREFIX "pin-switches" devicetree property. Signed-off-by: Paul Cercueil Signed-off-by: Mark Brown commit 780f202f2bf48aaa09282efc4dd6c39a146cc1f3 Author: KaiChieh Chuang Date: Fri Apr 26 10:09:43 2019 +0800 ASoC: mediatek: btcvsd fix irq mask disable = 1 enable = 0 prevent AP wake up, when not AP BTSCO scenario Signed-off-by: KaiChieh Chuang Signed-off-by: Mark Brown commit fb9bf5c8f15c98f96c6b80208113aa91fba83c8a Author: Axel Lin Date: Sat Apr 20 15:20:01 2019 +0800 regulator: sky81452: Switch to SPDX identifier Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit c7e3ddd129d5181e1581dd5a1af4e8714a8650ad Author: Axel Lin Date: Sat Apr 20 15:20:00 2019 +0800 regulator: sky81452: Constify sky81452_reg_ops sky81452_reg_ops is never changed, make it const. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 5d7ebba38bafa8f6eba2540e8a36233ea6d6d0dc Author: Axel Lin Date: Sat Apr 20 11:01:25 2019 +0800 regulator: sy8106a: Get rid of struct sy8106a All the fields in struct sy8106a are only used in sy8106a_i2c_probe(), so use local variables instead. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit b9816363c0e82f4cd8f9be8153fbc5b81b22911c Author: Jorge Ramirez-Ortiz Date: Wed Apr 17 21:24:43 2019 +0200 regulator: core: do not report EPROBE_DEFER as error but as debug Temporary failures to get a regulator (EPROBE_DEFER) should be logged as debug information instead of errors. Signed-off-by: Jorge Ramirez-Ortiz Signed-off-by: Mark Brown commit fe669cb95ebb711161c27ba063f08ad20d55e761 Author: Axel Lin Date: Sun Apr 21 10:26:56 2019 +0800 regulator: mt63xx: Switch to SPDX identifier Convert MediaTek mt63xx PMIC drivers to SPDX identifier. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 6a1beee2fe379f7a846ec095c82f181ca36a8437 Author: Axel Lin Date: Fri Apr 19 08:58:24 2019 +0800 regulator: fan53555: Switch to SPDX identifier Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit a69929c7aa7006990975e0c5f8de16a6215265ec Author: Axel Lin Date: Fri Apr 19 08:58:23 2019 +0800 regulator: fan53555: Clean up unneeded fields from struct fan53555_device_info The *regmap and *rdev can be replaced by local variables. The slew_rate is no longer used since commit dd7e71fbeefe ("regulator: fan53555: use set_ramp_delay to set the ramp up slew rate"). Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit b2745697bfe46ce04af5493f194c6073e683b0f1 Author: Axel Lin Date: Thu Apr 18 19:45:00 2019 +0800 regulator: ltc3589: Switch to SPDX identifier Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 63c7c2962ae715f3e1ed042db9046b36af637611 Author: Axel Lin Date: Thu Apr 18 19:44:59 2019 +0800 regulator: ltc3589: Get rid of struct ltc3589_regulator After converting to use simplified DT parsing, the struct ltc3589_regulator only has a desc member. So let's remove struct ltc3589_regulator and use struct regulator_desc instead. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit ce62ba3afd10cee12fb8f2f81853ae1e91e21387 Author: Axel Lin Date: Thu Apr 18 19:44:58 2019 +0800 regulator: ltc3589: Convert to use simplified DT parsing Use regulator core's simplified DT parsing code to simplify the driver implementation. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 8b905d28ee17795c939813b2f6947829774619b9 Author: Christian Borntraeger Date: Tue Mar 5 05:30:02 2019 -0500 KVM: s390: provide kvm_arch_no_poll function We do track the current steal time of the host CPUs. Let us use this value to disable halt polling if the steal time goes beyond a configured value. Signed-off-by: Christian Borntraeger Acked-by: Paolo Bonzini Reviewed-by: Cornelia Huck Signed-off-by: Christian Borntraeger commit cdd6ad3ac63d2fa320baefcf92a02a918375c30f Author: Christian Borntraeger Date: Tue Mar 5 05:30:01 2019 -0500 KVM: polling: add architecture backend to disable polling There are cases where halt polling is unwanted. For example when running KVM on an over committed LPAR we rather want to give back the CPU to neighbour LPARs instead of polling. Let us provide a callback that allows architectures to disable polling. Signed-off-by: Christian Borntraeger Acked-by: Paolo Bonzini Reviewed-by: Cornelia Huck Signed-off-by: Christian Borntraeger commit 623c46f7b641bc95397eac5c28a04e8e832b9a97 Author: Johan Hovold Date: Sun Apr 21 14:21:54 2019 +0200 USB: serial: spcp8x5: simplify init_termios Simplify init_termios which is only used to override the initial baudrate. Signed-off-by: Johan Hovold commit d8a7f23c59cfb9420f0f9e22af6fa8afddaba55d Author: Johan Hovold Date: Sun Apr 21 14:21:53 2019 +0200 USB: serial: oti6858: simplify init_termios Simplify init_termios which is only used to override the initial baudrate. Signed-off-by: Johan Hovold commit 42deef1592d2c04ad1e0c9d12fbd841037019396 Author: Johan Hovold Date: Sun Apr 21 14:21:52 2019 +0200 USB: serial: iuu_phoenix: simplify init_termios Override the initial terminal settings provided by core directly instead of first resetting them to tty_std_termios. Also reorder the cflags as they are usually seen (in bit order). Signed-off-by: Johan Hovold commit fb56422cc40f452746a4a4f75261252159082123 Author: Johan Hovold Date: Sun Apr 21 14:21:51 2019 +0200 USB: serial: iuu_phoenix: drop bogus initial cflag Drop bogus TIOCM_CTS, which is not a cflag, from the initial terminal settings. Note that the corresponding bit is already set by CS8. Signed-off-by: Johan Hovold commit 2e75232b1922dbc7e57d5170b9d9f44b05a84fac Author: Johan Hovold Date: Sun Apr 21 14:21:50 2019 +0200 USB: serial: cypress_m8: clean up initial-termios handling Now that init_termios() is only called on first use, we can clean up the cypress_m8 initial-termios handling. Note that only the earthmate chip type used settings different from the defaults provided by USB serial core, and that the chip type is indeed known when init_termios is called at tty-install time. Signed-off-by: Johan Hovold commit 817c0cfc903117d65b309ce8dec4987e6b9d004b Author: Johan Hovold Date: Sun Apr 21 14:21:49 2019 +0200 USB: serial: cypress_m8: drop unused termios Drop driver termios structure that held a copy of the tty termios for no good reason. Signed-off-by: Johan Hovold commit da7d26a0356ce0b23d0ec273c934507317854f34 Author: Johan Hovold Date: Sun Apr 21 14:21:48 2019 +0200 USB: serial: cypress_m8: drop unused driver data flag Drop the isthrottled flag which has never been used. Signed-off-by: Johan Hovold commit 6eb42a0f8c5fe89d0dad2202c942121468d73708 Author: Johan Hovold Date: Sun Apr 21 14:21:47 2019 +0200 USB: serial: ark3116: drop redundant init_termios The initial terminal settings set by the driver matches the default settings provided by core so drop the redundant init_termios callback. Signed-off-by: Johan Hovold commit 579bebe5dd522580019e7b10b07daaf500f9fb1e Author: Johan Hovold Date: Sun Apr 21 14:21:46 2019 +0200 USB: serial: fix initial-termios handling The USB-serial driver init_termios callback is used to override the default initial terminal settings provided by USB-serial core. After a bug was fixed in the original implementation introduced by commit fe1ae7fdd2ee ("tty: USB serial termios bits"), the init_termios callback was no longer called just once on first use as intended but rather on every (first) open. This specifically meant that the terminal settings saved on (final) close were ignored when reopening a port for drivers overriding the initial settings. Also update the outdated function header referring to the creation of termios objects. Fixes: 7e29bb4b779f ("usb-serial: fix termios initialization logic") Signed-off-by: Johan Hovold commit 9157bc2a5e8214b29f1f64342e7a3aae93a98512 Merge: 89eb6e096782 a62fdbbe9403 Author: David S. Miller Date: Fri Apr 26 01:52:03 2019 -0400 Merge branch 'netdevsim-implement-proper-device-model' Jiri Pirko says: ==================== netdevsim: implement proper device model Currently the model of netdevsim is a bit odd in multiple ways. 1) devlink instance is not in any way related with actual netdevsim netdevices. Instead, it is created per-namespace. 2) multi-port netdevsim device is done using "link" attribute. 3) netdevsim bus is there only to have something to bind the netdev to, it really does not act as a bus. 4) netdevsim instances are created by "ip link add" which is great for soft devices with no hw backend. The rtnl core allocates netdev and calls into driver holding rtnl mutex. For hw-backed devices, this flow is wrong as it breaks order in which things are done. This patchset adjust netdevsim to fix all above. In order to support proper devlink and devlink port instances and to be able to emulate real devices, there is need to implement bus probe and instantiate everything from there. User can specify device id and port count to be instantianted. For example: $ echo "10 4" > /sys/bus/netdevsim/new_device Then devlink shows this: $ devlink dev netdevsim/netdevsim10 $ devlink port netdevsim/netdevsim10/0: type eth netdev eni0np1 flavour physical netdevsim/netdevsim10/1: type eth netdev eni0np2 flavour physical netdevsim/netdevsim10/2: type eth netdev eni0np3 flavour physical netdevsim/netdevsim10/3: type eth netdev eni0np4 flavour physical There is possible to add and delete ports using their indexes during netdevsim device lifetime like this: Then devlink shows this: $ devlink port netdevsim/netdevsim10/1: type eth netdev eni10np2 flavour physical netdevsim/netdevsim10/2: type eth netdev eni10np3 flavour physical netdevsim/netdevsim10/3: type eth netdev eni10np4 flavour physical netdevsim/netdevsim10/43: type eth netdev eni10np44 flavour physical Debugfs topology is also adjusted a bit. The rest stays the same as before. Udev bits are merged un systemd upstream git: https://github.com/systemd/systemd/commit/eaa9d507d85509c8bf727356e3884ec54b0fc646 See individual patches for changelog. ==================== Acked-by: Jakub Kicinski Signed-off-by: David S. Miller commit a62fdbbe9403ed4a645529f72eabc2c4c6225bd5 Author: Jiri Pirko Date: Thu Apr 25 15:59:56 2019 +0200 netdevsim: implement ndo_get_devlink_port Implement ndo_get_devlink_port and allow switch_id and port_name to be handled by devlink. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit e05b2d141fef22cfac1928cf0eb6890e5dae4216 Author: Jiri Pirko Date: Thu Apr 25 15:59:55 2019 +0200 netdevsim: move netdev creation/destruction to dev probe Remove the existing way to create netdevsim over rtnetlink and move the netdev creation/destruction to dev probe, so for every probed port, a netdevsim-netdev instance is created. Adjust selftests to work with new interface. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 794b2c05ca1c4ded4a023d11833e3855a0ed6ea8 Author: Jiri Pirko Date: Thu Apr 25 15:59:54 2019 +0200 netdevsim: extend device attrs to support port addition and deletion In order to test flows in core, it is beneficial to maintain previously supported possibility to add and delete ports during netdevsim lifetime. Do it by extending device sysfs attrs by "new_port" and "del_port". Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 8320d145912738655cf631d27aa1829d8b17804e Author: Jiri Pirko Date: Thu Apr 25 15:59:53 2019 +0200 netdevsim: implement dev probe/remove skeleton with port initialization Implement netdevsim bus probing of netdevsim devices. For every probed device create a devlink instance. According to the user-passed value, create a number of ports represented by devlink port instances. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit ab1d0cc004d706523dcad7cdad97a2b94eecf169 Author: Jiri Pirko Date: Thu Apr 25 15:59:52 2019 +0200 netdevsim: change debugfs tree topology With the model where dev is represented by devlink and ports are represented by devlink ports, make debugfs file names independent on netdev names. Change the topology to the one illustrated by the following example: $ ls /sys/kernel/debug/netdevsim/ netdevsim1 $ ls /sys/kernel/debug/netdevsim/netdevsim1/ bpf_bind_accept bpf_bind_verifier_delay bpf_bound_progs ports $ ls /sys/kernel/debug/netdevsim/netdevsim1/ports/ 0 1 $ ls /sys/kernel/debug/netdevsim/netdevsim1/ports/0/ bpf_map_accept bpf_offloaded_id bpf_tc_accept bpf_tc_non_bound_accept bpf_xdpdrv_accept bpf_xdpoffload_accept dev ipsec $ ls /sys/kernel/debug/netdevsim/netdevsim1/ports/0/dev -l lrwxrwxrwx 1 root root 0 Apr 13 15:58 /sys/kernel/debug/netdevsim/netdevsim1/ports/0/dev -> ../../../netdevsim1 Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 514cf64cc5353929fbfb82ed1bda24588acaf96a Author: Jiri Pirko Date: Thu Apr 25 15:59:51 2019 +0200 netdevsim: generate random switch id instead of using dev id Current implementation of parent_id/switch_id does not follow the original idea of being unique. The values are "0", "1", etc. Instead of that, generate 32 random bytes. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit d514f41e793d2cbc737ba107d7ae26f387f5eecf Author: Jiri Pirko Date: Thu Apr 25 15:59:50 2019 +0200 netdevsim: merge sdev into dev As previously introduce dev which is mapped 1:1 to a bus device covers the purpose of the original shared device, merge the sdev code into dev. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit a60f9e48b7707b70a0701dd841e43492e1e68371 Author: Jiri Pirko Date: Thu Apr 25 15:59:49 2019 +0200 netdevsim: rename dev_init/exit() functions and make them independent on ns These functions are going to be called from bus probe/release(), therefore make them independent on ns struct and rename accordingly. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit f9d9db47d3ba87309e022efa33b438e5ef329411 Author: Jiri Pirko Date: Thu Apr 25 15:59:48 2019 +0200 netdevsim: add bus attributes to add new and delete devices Add a way to add new netdevsim device on netdevsim bus and also to delete existing netdevsim device from the bus. Track the bus devices in using a list. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 57ce9774951360aad66c48b1b30683ffb1b23f61 Author: Jiri Pirko Date: Thu Apr 25 15:59:47 2019 +0200 netdevsim: use ida for bus device ids Instead of increments of u32 value, use ida to manage bus device ids. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 23d415dae924498dcd26acf2850715dd1f419550 Author: Jiri Pirko Date: Thu Apr 25 15:59:46 2019 +0200 netdevsim: add stub netdevsim driver implementation In order to bus probing to work correctly, register a simple netdevsim driver implementation. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 40e4fe4ce115c409c3e2fbb247085103ef1cc755 Author: Jiri Pirko Date: Thu Apr 25 15:59:45 2019 +0200 netdevsim: move device registration and related code to bus.c Move netdevsim device registration into bus.c and alongside with that the related sysfs attributes. Introduce new struct nsim_bus_dev to represent a netdevsim device on netdevsim bus. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 925f5afedb93f7c80958c6bf7ce6cc31542076dc Author: Jiri Pirko Date: Thu Apr 25 15:59:44 2019 +0200 netdevsim: put netdevsim bus code into separate file As the code related to netdevsim bus is going to get bigger, move the existing code to a separate file. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 8fb4bc6fd5bd5bab9a34581e45b00d9a041d1d71 Author: Jiri Pirko Date: Thu Apr 25 15:59:43 2019 +0200 netdevsim: rename devlink.c to dev.c to contain per-dev(asic) items The existing devlink.c code is going to be extended to represent asic device on a bus. As this is about more than just devlink, rename the file. Do appropriate prefix renaming alongside with that. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 5fc494225c1eb81309cc4c91f183cd30e4edb674 Author: Jiri Pirko Date: Thu Apr 25 15:59:42 2019 +0200 netdevsim: create devlink instance per netdevsim instance Currently there is one devlink instance created per network namespace. That is quite odd considering the fact that devlink instance should represent an ASIC. The following patches are going to move the devlink instance even more down to a bus device, but until then, have one devlink instance per netdevsim instance. Struct nsim_devlink is introduced to hold fib setting. The changes in the fib code are only related to holding the configuration per devlink instance instead of network namespace. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 1daf36c0dbc059cdef1a1c11e83599c972832d1d Author: Jiri Pirko Date: Thu Apr 25 15:59:41 2019 +0200 netdevsim: move device registration on bus to be done earlier in init As a dependency of the subsequent patch, mode device registration to be done earlier, directly in nsim_newlink(). Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 89eb6e096782b749eadead3824b3a65255c7d0e3 Merge: 8b4483658364 d5bb334a8e17 Author: David S. Miller Date: Fri Apr 26 01:39:38 2019 -0400 Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next Johan Hedberg says: ==================== pull request: bluetooth-next 2019-04-25 Here's the main bluetooth-next pull request for the 5.2 kernel. - Added support for Mediatek SDIO controllers - Added support for Broadcom BCM2076B1 UART controller - Added support for Marvel SD8987 chipset - Fix buffer overflow bug in hidp protocol - Various other smaller fixes & improvements Please let me know if there are any issues pulling. Thanks. ==================== Signed-off-by: David S. Miller commit 0c0cad2c2824ac38106ad0649263eca30954beb6 Merge: 77d764263d11 8ed1875bf3a7 Author: Alexei Starovoitov Date: Thu Apr 25 21:45:14 2019 -0700 Merge branch 'btf-dump' Andrii Nakryiko says: ==================== This patch set adds a new `bpftool btf dump` sub-command, which allows to dump BTF contents (only types for now). Currently it only outputs low-level content, almost 1:1 with binary BTF format, but follow up patches will add ability to dump BTF types as a compilable C header file. JSON output is supported as well. Patch #1 adds `btf` sub-command, dumping BTF types in human-readable format. It also implements reading .BTF data from ELF file. Patch #2 adds minimal documentation with output format examples and different ways to specify source of BTF data. Patch #3 adds support for btf command in bash-completion/bpftool script. Patch #4 fixes minor indentation issue in bash-completion script. Output format is mostly following existing format of BPF verifier log, but deviates from it in few places. More details are in commit message for patch 1. Example of output for all supported BTF kinds are in patch #2 as part of documentation. Some field names are quite verbose and I'd rather shorten them, if we don't feel like being very close to BPF verifier names is a necessity, but in this patch I left them exactly the same as in verifier log. v3->v4: - reverse Christmas tree (Quentin) - better docs (Quentin) v2->v3: - make map's key|value|kv|all suggestion more precise (Quentin) - fix default case indentations (Quentin) v1->v2: - fix unnecessary trailing whitespaces in bpftool-btf.rst (Yonghong) - add btf in main.c for a list of possible OBJECTs - handle unknown keyword under `bpftool btf dump` (Yonghong) ==================== Signed-off-by: Alexei Starovoitov commit 8ed1875bf3a77d1653b895e41774aec9a341a97f Author: Andrii Nakryiko Date: Thu Apr 25 15:30:11 2019 -0700 bpftool: fix indendation in bash-completion/bpftool Fix misaligned default case branch for `prog dump` sub-command. Reported-by: Quentin Monnet Cc: Yonghong Song Reviewed-by: Quentin Monnet Signed-off-by: Andrii Nakryiko Signed-off-by: Alexei Starovoitov commit 4a714feefd99c25c7304b43ac58c9d5c0304e7cb Author: Andrii Nakryiko Date: Thu Apr 25 15:30:10 2019 -0700 bpftool: add bash completions for btf command Add full support for btf command in bash-completion script. Cc: Quentin Monnet Cc: Yonghong Song Cc: Alexei Starovoitov Cc: Daniel Borkmann Reviewed-by: Quentin Monnet Signed-off-by: Andrii Nakryiko Signed-off-by: Alexei Starovoitov commit ca253339af928528ceb34770b076d3230ed7d629 Author: Andrii Nakryiko Date: Thu Apr 25 15:30:09 2019 -0700 bpftool/docs: add btf sub-command documentation Document usage and sample output format for `btf dump` sub-command. Cc: Daniel Borkmann Cc: Alexei Starovoitov Cc: Yonghong Song Cc: Martin KaFai Lau Cc: Song Liu Cc: Arnaldo Carvalho de Melo Acked-by: Yonghong Song Signed-off-by: Andrii Nakryiko Signed-off-by: Alexei Starovoitov commit c93cc69004df340d71a9ab3433b8e5c9fd1fca7a Author: Andrii Nakryiko Date: Thu Apr 25 15:30:08 2019 -0700 bpftool: add ability to dump BTF types Add new `btf dump` sub-command to bpftool. It allows to dump human-readable low-level BTF types representation of BTF types. BTF can be retrieved from few different sources: - from BTF object by ID; - from PROG, if it has associated BTF; - from MAP, if it has associated BTF data; it's possible to narrow down types to either key type, value type, both, or all BTF types; - from ELF file (.BTF section). Output format mostly follows BPF verifier log format with few notable exceptions: - all the type/field/param/etc names are enclosed in single quotes to allow easier grepping and to stand out a little bit more; - FUNC_PROTO output follows STRUCT/UNION/ENUM format of having one line per each argument; this is more uniform and allows easy grepping, as opposed to succinct, but inconvenient format that BPF verifier log is using. Cc: Daniel Borkmann Cc: Alexei Starovoitov Cc: Yonghong Song Cc: Martin KaFai Lau Cc: Song Liu Cc: Arnaldo Carvalho de Melo Acked-by: Yonghong Song Signed-off-by: Andrii Nakryiko Signed-off-by: Alexei Starovoitov commit 6969d1d9c61524d3ce492cfdca92d5dfa51e2e54 Author: Matthias Kaehlcke Date: Wed Dec 19 15:55:28 2018 -0800 ARM: dts: qcom-apq8064: Set 'cxo_board' as ref clock of the DSI PHY Add 'xo_board' as ref clock for the DSI PHY, it was previously hardcoded in the PLL 'driver' for the 28nm 8960 PHY. Signed-off-by: Matthias Kaehlcke Reviewed-by: Stephen Boyd Signed-off-by: Andy Gross commit 060f4211f6c655e69ba24fe6d741c6e33fbfa108 Author: Amit Kucheria Date: Thu Apr 25 11:53:27 2019 +0530 arm64: dts: msm8998: thermal: Restrict thermal zone name length to under 20 The thermal core restricts names of thermal zones to under 20 characters. Fix the names for a couple of msm8998 thermal zones. Signed-off-by: Amit Kucheria Tested-by: Marc Gonzalez Signed-off-by: Andy Gross commit 280acabbaa11db3027dcad86feb56508efdd34fb Author: Amit Kucheria Date: Thu Apr 25 01:52:44 2019 +0530 arm64: dts: msm8998: thermal: Fix number of supported sensors msm8998 has 22 sensors connected in total, 14 on the 1st controller, 8 on the 2nd controller. Increase the number to allow sensors with ID 12 and 13 to be registered. Signed-off-by: Amit Kucheria Tested-by: Marc Gonzalez Signed-off-by: Andy Gross commit ad480e0149cfc10defe76e88354b977360adb7a1 Author: Amit Kucheria Date: Thu Apr 25 01:22:50 2019 +0530 arm64: dts: msm8998-mtp: thermal: Remove skin and battery thermal zones The msm8998-mtp doesn't have TSENS-based sensors wired up for skin and battery thermal zones. TSENS sensors should be common across all boards using the SoC and shouldn't be board-specific as these entries. They also show the following error when trying to read the temperature cat: read error: Invalid argument Remove these board-specific erroneous thermal zones. Fixes: 4449b6f248d9 ("arm64: dts: qcom: msm8998: Add tsens and thermal-zones") Signed-off-by: Amit Kucheria Tested-by: Marc Gonzalez Signed-off-by: Andy Gross commit 8b4483658364f05b2e32845c8f445cdfd9452286 Merge: c049d56eb219 cd8dead0c394 Author: David S. Miller Date: Thu Apr 25 23:52:29 2019 -0400 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Two easy cases of overlapping changes. Signed-off-by: David S. Miller commit 7c13e5cc2391950541f41fc9ab0336aae77c7f63 Merge: 5a6792865164 447811a686e8 Author: Dave Airlie Date: Fri Apr 26 11:35:58 2019 +1000 Merge tag 'drm-intel-next-fixes-2019-04-25' of git://anongit.freedesktop.org/drm/drm-intel into drm-next - Use after free fix during GEM_CREATE when reporting back object size - Icelake DP register programming order fix Signed-off-by: Dave Airlie From: Joonas Lahtinen Link: https://patchwork.freedesktop.org/patch/msgid/20190425061312.GA2919@jlahtine-desk.ger.corp.intel.com commit 5a67928651640233a44106c8a1a83a441a9e5648 Merge: 08269364808f 1de7259275ca Author: Dave Airlie Date: Fri Apr 26 11:35:40 2019 +1000 Merge tag 'drm-misc-next-fixes-2019-04-24' of git://anongit.freedesktop.org/drm/drm-misc into drm-next - fb_helper: Fix NULL deref in legacy drivers (Noralf) - leases: Ensure lessees can't connect to objects outside their perview (Daniel) - leases: Enforce that lessees hold the lease for implicitly set planes (Daniel) - leases: A few non-functional cleanups (Daniel) Cc: Daniel Vetter Cc: Noralf Trønnes Signed-off-by: Dave Airlie From: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190424210604.GA32581@art_vandelay commit 77d764263d1165a2edf13735915fc39bc44abf1d Author: Benjamin Poirier Date: Thu Apr 11 17:03:32 2019 +0900 bpftool: Fix errno variable usage The test meant to use the saved value of errno. Given the current code, it makes no practical difference however. Fixes: bf598a8f0f77 ("bpftool: Improve handling of ENOENT on map dumps") Signed-off-by: Benjamin Poirier Reviewed-by: Quentin Monnet Acked-by: Song Liu Signed-off-by: Daniel Borkmann Signed-off-by: Alexei Starovoitov commit 6a6ba5b55a728d819bad598ef5299fa740538dcf Author: Sugaya Taichi Date: Thu Apr 25 19:41:01 2019 +0900 clock: milbeaut: Add Milbeaut M10V clock controller The M10V of the Milbeaut SoCs has an on-chip controller that derive mostly clocks from a single external clock, using PLLs, dividers, multiplexers and gates. Since the PLLs have already been started and will not stop / restart, they are fixed factor. The gates will be added in later patch (all of the gates are off state now). Signed-off-by: Sugaya Taichi Signed-off-by: Stephen Boyd commit e3ee1f21b3b7c7c83f298ddece72b8779aa3dca3 Author: Sugaya Taichi Date: Thu Apr 25 19:41:00 2019 +0900 dt-bindings: clock: milbeaut: add Milbeaut clock description Add DT bindings document for Milbeaut clock. Signed-off-by: Sugaya Taichi Signed-off-by: Stephen Boyd commit bf0102a0fdd9fa2b41c2646c4f96e91b678de89e Author: Christoph Hellwig Date: Mon Apr 15 11:14:42 2019 +0200 riscv: call pm_power_off from machine_halt / machine_power_off This way any override of pm_power_off also affects the halt path and we don't need additional infrastructure for it. Also remove the pm_power_off export - at least for now we don't have any modular drivers overriding it. Signed-off-by: Christoph Hellwig Reviewed-by: Atish Patra Signed-off-by: Palmer Dabbelt commit bed1378706637c0dd09c055480767dfcf6abe7db Author: Christoph Hellwig Date: Mon Apr 15 11:14:41 2019 +0200 riscv: print the unexpected interrupt cause This has been helpful when debugging my pending nommu port. Signed-off-by: Christoph Hellwig Reviewed-by: Nick Kossifidis Signed-off-by: Palmer Dabbelt commit 6ab77af4b0ee09b58ace90aeb9b1b84f4605b859 Author: Christoph Hellwig Date: Mon Apr 15 11:14:40 2019 +0200 riscv: remove duplicate macros from ptrace.h No need to have two names for the same thing. Signed-off-by: Christoph Hellwig Signed-off-by: Palmer Dabbelt commit 877425424d6c853b804e6b6a6045a5b4ea97c510 Author: Christoph Hellwig Date: Mon Apr 15 11:14:39 2019 +0200 riscv: remove unreachable !HAVE_FUNCTION_GRAPH_RET_ADDR_PTR code HAVE_FUNCTION_GRAPH_RET_ADDR_PTR is always defined for RISC-V. Signed-off-by: Christoph Hellwig Signed-off-by: Palmer Dabbelt commit ba9c0141941ce618b04361a772c92a4da6dfcb35 Author: Christoph Hellwig Date: Mon Apr 15 11:14:38 2019 +0200 riscv: cleanup the parse_dtb calling conventions No need to pass the hartid, and the dtb address passed is a physical address, so don't pretend it is a kernel pointer. Signed-off-by: Christoph Hellwig Signed-off-by: Palmer Dabbelt commit c637b911e0669753ba85f8d61f10ca4b8f441dd3 Author: Christoph Hellwig Date: Mon Apr 15 11:14:37 2019 +0200 riscv: simplify the stack pointer setup in head.S We don't need THREAD_SIZE in asm-offsets.c as we can just calculate the value of init_thread_union + THREAD_SIZE using cpp, just like we do a few lines above. Signed-off-by: Christoph Hellwig Reviewed-by: Atish Patra Signed-off-by: Palmer Dabbelt commit df16c40cbfb43fbd6d5d879585b268b131fa95eb Author: Christoph Hellwig Date: Mon Apr 15 11:14:36 2019 +0200 riscv: clear all pending interrupts when booting Just in case an old interrupt is pending make sure we clear everything asserted before this kernel started. Based on similar M-mode code in opensbi. Signed-off-by: Christoph Hellwig Reviewed-by: Nick Kossifidis Reviewed-by: Atish Patra Signed-off-by: Palmer Dabbelt commit 09afac77b6e83b66e95ab0a32ba878beb4f6ee28 Author: Christoph Hellwig Date: Mon Apr 15 11:14:35 2019 +0200 riscv: remove CONFIG_RISCV_ISA_A This option is always enabled, and not supporting the A extensions would create a complete ABI trainwreck, so there is no point in even slightly encouraging such an idea by keeping this unselectable code around. Signed-off-by: Christoph Hellwig Signed-off-by: Palmer Dabbelt commit e28dcc77e8e84c635675958e531a88d077266698 Author: Christoph Hellwig Date: Mon Apr 15 11:14:34 2019 +0200 riscv: remove unreachable big endian code RISC-V is always little endian. Signed-off-by: Christoph Hellwig Signed-off-by: Palmer Dabbelt commit 5cfade5fdcc9753c5b3958f65f0716a31268dd3e Author: Christoph Hellwig Date: Mon Apr 15 11:14:33 2019 +0200 riscv: turn mm_segment_t into a struct This matches what other heavily used architectures do, and will allow us to easily use for the nommu case. Signed-off-by: Christoph Hellwig Signed-off-by: Palmer Dabbelt commit df720961c12857af3e5a8c94028310288ffa4ad5 Author: Christoph Hellwig Date: Mon Apr 15 11:14:32 2019 +0200 riscv: use asm-generic/extable.h Signed-off-by: Christoph Hellwig Signed-off-by: Palmer Dabbelt commit 7f0c57fec80f198ae9fcd06e5bbca13196815a4b Author: Stanislav Fomichev Date: Thu Apr 25 14:37:24 2019 -0700 bpftool: show flow_dissector attachment status Right now there is no way to query whether BPF flow_dissector program is attached to a network namespace or not. In previous commit, I added support for querying that info, show it when doing `bpftool net`: $ bpftool prog loadall ./bpf_flow.o \ /sys/fs/bpf/flow type flow_dissector \ pinmaps /sys/fs/bpf/flow $ bpftool prog 3: flow_dissector name _dissect tag 8c9e917b513dd5cc gpl loaded_at 2019-04-23T16:14:48-0700 uid 0 xlated 656B jited 461B memlock 4096B map_ids 1,2 btf_id 1 ... $ bpftool net -j [{"xdp":[],"tc":[],"flow_dissector":[]}] $ bpftool prog attach pinned \ /sys/fs/bpf/flow/flow_dissector flow_dissector $ bpftool net -j [{"xdp":[],"tc":[],"flow_dissector":["id":3]}] Doesn't show up in a different net namespace: $ ip netns add test $ ip netns exec test bpftool net -j [{"xdp":[],"tc":[],"flow_dissector":[]}] Non-json output: $ bpftool net xdp: tc: flow_dissector: id 3 v2: * initialization order (Jakub Kicinski) * clear errno for batch mode (Quentin Monnet) Signed-off-by: Stanislav Fomichev Reviewed-by: Quentin Monnet Reviewed-by: Jakub Kicinski Signed-off-by: Daniel Borkmann commit 118c8e9ae629d35fa9b3d27a7b9d59298b1b4183 Author: Stanislav Fomichev Date: Thu Apr 25 14:37:23 2019 -0700 bpf: support BPF_PROG_QUERY for BPF_FLOW_DISSECTOR attach_type target_fd is target namespace. If there is a flow dissector BPF program attached to that namespace, its (single) id is returned. v5: * drop net ref right after rcu unlock (Daniel Borkmann) v4: * add missing put_net (Jann Horn) v3: * add missing inline to skb_flow_dissector_prog_query static def (kbuild test robot ) v2: * don't sleep in rcu critical section (Jakub Kicinski) * check input prog_cnt (exit early) Cc: Jann Horn Signed-off-by: Stanislav Fomichev Signed-off-by: Daniel Borkmann commit 6ff46d77ca75a52ec876e085f60e944e5722ebb1 Author: Leonard Crestez Date: Tue Apr 23 19:05:08 2019 +0000 clk: imx6sll: Fix mispelling uart4_serial as serail This looks like a copy-paste error. This string is not referenced anywhere so it's safe to rename it. Signed-off-by: Leonard Crestez Signed-off-by: Stephen Boyd commit a3c9e13ff0f4f41e4ed4c5111e29a0a7cfd2e119 Author: Peng Fan Date: Thu Apr 25 10:14:28 2019 +0000 clk: imx: pll14xx: drop unused variable It does not make sense to only get value from pll->base and assign to a local variable when recalc_rate. Signed-off-by: Peng Fan Signed-off-by: Stephen Boyd commit ead442a0f9aaecb4df3eb4055d1e2568b4fc0ae6 Author: Daniel T. Lee Date: Thu Apr 25 18:02:57 2019 +0900 samples: bpf: add hbm sample to .gitignore This commit adds hbm to .gitignore which is currently ommited from the ignore file. Signed-off-by: Daniel T. Lee Signed-off-by: Daniel Borkmann commit db077febb774b400cff461195106c1ea320497a4 Author: Fabien Parent Date: Sat Mar 23 22:16:02 2019 +0100 clk: mediatek: add clock driver for MT8516 Add the clock driver for the MT8516 SoC. Signed-off-by: Fabien Parent Signed-off-by: Stephen Boyd commit 699480d062e06b174ee8aabd094b084deb2688b2 Author: Fabien Parent Date: Sat Mar 23 22:16:01 2019 +0100 dt-bindings: mediatek: apmixedsys: add support for MT8516 Add binding documentation of apmixedsys for MT8516 SoC. Signed-off-by: Fabien Parent Acked-by: Rob Herring Signed-off-by: Stephen Boyd commit eb2814bc60d93ef65b0e0f6db456b4f58ff02a06 Author: Fabien Parent Date: Sat Mar 23 22:16:00 2019 +0100 dt-bindings: mediatek: infracfg: add support for MT8516 Add binding documentation of infracfg for MT8516 SoC. Signed-off-by: Fabien Parent Acked-by: Rob Herring Signed-off-by: Stephen Boyd commit 32e621e55496a0009f44fe4914cd4a23cade4984 Author: Daniel T. Lee Date: Wed Apr 24 05:24:56 2019 +0900 libbpf: fix samples/bpf build failure due to undefined UINT32_MAX Currently, building bpf samples will cause the following error. ./tools/lib/bpf/bpf.h:132:27: error: 'UINT32_MAX' undeclared here (not in a function) .. #define BPF_LOG_BUF_SIZE (UINT32_MAX >> 8) /* verifier maximum in kernels <= 5.1 */ ^ ./samples/bpf/bpf_load.h:31:25: note: in expansion of macro 'BPF_LOG_BUF_SIZE' extern char bpf_log_buf[BPF_LOG_BUF_SIZE]; ^~~~~~~~~~~~~~~~ Due to commit 4519efa6f8ea ("libbpf: fix BPF_LOG_BUF_SIZE off-by-one error") hard-coded size of BPF_LOG_BUF_SIZE has been replaced with UINT32_MAX which is defined in header. Even with this change, bpf selftests are running fine since these are built with clang and it includes header(-idirafter) from clang/6.0.0/include. (it has ) clang -I. -I./include/uapi -I../../../include/uapi -idirafter /usr/local/include -idirafter /usr/include \ -idirafter /usr/lib/llvm-6.0/lib/clang/6.0.0/include -idirafter /usr/include/x86_64-linux-gnu \ -Wno-compare-distinct-pointer-types -O2 -target bpf -emit-llvm -c progs/test_sysctl_prog.c -o - | \ llc -march=bpf -mcpu=generic -filetype=obj -o /linux/tools/testing/selftests/bpf/test_sysctl_prog.o But bpf samples are compiled with GCC, and it only searches and includes headers declared at the target file. As '#include ' hasn't been declared in tools/lib/bpf/bpf.h, it causes build failure of bpf samples. gcc -Wp,-MD,./samples/bpf/.sockex3_user.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes \ -O2 -fomit-frame-pointer -std=gnu89 -I./usr/include -I./tools/lib/ -I./tools/testing/selftests/bpf/ \ -I./tools/ lib/ -I./tools/include -I./tools/perf -c -o ./samples/bpf/sockex3_user.o ./samples/bpf/sockex3_user.c; This commit add declaration of '#include ' to tools/lib/bpf/bpf.h to fix this problem. Signed-off-by: Daniel T. Lee Acked-by: Yonghong Song Signed-off-by: Daniel Borkmann commit 4166bfe53093b687a0b1b22e5d943e143b8089b2 Author: Jonathan Chocron Date: Thu Mar 28 13:57:56 2019 +0200 PCI: al: Add Amazon Annapurna Labs PCIe host controller driver Add driver for Amazon's Annapurna Labs PCIe host controller. The controller is based on DesignWare's IP. The controller doesn't support accessing the Root Port's config space via ECAM, so we obtain its base address via an AMZN0001 device. Furthermore, the DesignWare PCIe controller doesn't filter out config transactions sent to devices 1 and up on its bus, so they are filtered by the driver. All subordinate buses do support ECAM access. Implementing specific PCI config access functions involves: - Adding an init function to obtain the Root Port's base address from an AMZN0001 device. - Adding a new entry in the MCFG quirk array. [bhelgaas: Note that there is no Kconfig option for this driver because it is only intended for use with the generic ACPI host bridge driver. This driver is only needed because the DesignWare IP doesn't completely support ECAM access to the root bus.] Link: https://lore.kernel.org/lkml/1553774276-24675-1-git-send-email-jonnyc@amazon.com Co-developed-by: Vladimir Aerov Signed-off-by: Jonathan Chocron Signed-off-by: Vladimir Aerov Signed-off-by: Bjorn Helgaas Reviewed-by: David Woodhouse Reviewed-by: Benjamin Herrenschmidt Acked-by: Lorenzo Pieralisi commit 67ea15169b35216bd741bc36ce11cf424245eb88 Author: Fabien Parent Date: Sat Mar 23 22:15:59 2019 +0100 dt-bindings: mediatek: topckgen: add support for MT8516 Add binding documentation of topckgen for MT8516 SoC. Signed-off-by: Fabien Parent Acked-by: Rob Herring Signed-off-by: Stephen Boyd commit c208ac8f8f862dba7b01eb54557f4803b3c17296 Author: Rafael J. Wysocki Date: Thu Apr 18 16:11:37 2019 +0200 x86: tsc: Rework time_cpufreq_notifier() There are problems with running time_cpufreq_notifier() on SMP systems. First off, the rdtsc() called from there runs on the CPU executing that code and not necessarily on the CPU whose sched_clock() rate is updated which is questionable at best. Second, in the cases when the frequencies of all CPUs in an SMP system are always in sync, it is not sufficient to update just one of them or the set associated with a given cpufreq policy on frequency changes - all CPUs in the system should be updated and that would require more than a simple transition notifier. Note, however, that the underlying issue (the TSC rate depending on the CPU frequency) has not been present in hardware shipping for the last few years and in quite a few relevant cases (acpi-cpufreq in particular) running time_cpufreq_notifier() will cause the TSC to be marked as unstable anyway. For this reason, make time_cpufreq_notifier() simply mark the TSC as unstable and give up when run on SMP and only try to carry out any adjustments otherwise. Signed-off-by: Rafael J. Wysocki Reviewed-by: Viresh Kumar commit f9ccd7c3a1d87cea3a6f9ed6c946dee9e7456b2e Author: Ulf Hansson Date: Thu Apr 25 11:04:13 2019 +0200 PM / Domains: Allow to attach a CPU via genpd_dev_pm_attach_by_id|name() Attaching a device via genpd_dev_pm_attach_by_id|name() makes genpd allocate a virtual device that it attaches instead. This leads to a problem in case when the base device belongs to a CPU. More precisely, it means genpd_get_cpu() compares against the virtual device, thus it fails to find a matching CPU device. Address this limitation by passing the base device to genpd_get_cpu() rather than the virtual device. Moreover, to deal with detach correctly from genpd_remove_device(), store the CPU number in struct generic_pm_domain_data, so as to be able to clear the corresponding bit in the cpumask for the genpd. Signed-off-by: Ulf Hansson Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki commit b24e196586fecafed1c3cff9b2f87c1a64138ade Author: Ulf Hansson Date: Thu Apr 25 11:04:12 2019 +0200 PM / Domains: Search for the CPU device outside the genpd lock While attaching/detaching a device to a PM domain (genpd) with GENPD_FLAG_CPU_DOMAIN set, genpd iterates the cpu_possible_mask to check whether or not the device corresponds to a CPU. This iteration is done while holding the genpd's lock, which is unnecessary. Avoid the locking by restructuring the corresponding code a bit. Signed-off-by: Ulf Hansson Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki commit a174920d69db9be80332f535db4a8ca2e3bccf24 Author: Ulf Hansson Date: Thu Apr 25 11:04:11 2019 +0200 PM / Domains: Drop unused in-parameter to some genpd functions Both genpd_alloc_dev_data() and genpd_add_device(), that are internal genpd functions, allow a struct gpd_timing_data *td to be passed as an in-parameter. However, as NULL is always passed, let's just drop the in-parameter altogether. Signed-off-by: Ulf Hansson Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki commit 51dcf7482f4b3166ef477d44181648110d501d25 Author: Ulf Hansson Date: Thu Apr 25 11:04:10 2019 +0200 PM / Domains: Use the base device for driver_deferred_probe_check_state() When genpd fails to attach a device to one of its multiple PM domains, we end up calling driver_deferred_probe_check_state() for the recently allocated virtual device. This is incorrect, as it's the base device that is being probed. Fix this by passing along the base device to __genpd_dev_pm_attach() and use that instead. Fixes: e01afc325025 ("PM / Domains: Stop deferring probe at the end of initcall") Signed-off-by: Ulf Hansson Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki commit 40aa4db6d530e2ea71e00765df77ac78477e8348 Merge: 3ccf3f0cd197 e94999688e3a Author: Rafael J. Wysocki Date: Thu Apr 25 23:17:07 2019 +0200 Merge cpuidle material depended on by the subsequent changes. commit 7b4c162e03d47e037f8ee773c3e300eefb599a83 Author: Stephen Boyd Date: Thu Apr 25 14:15:54 2019 -0700 clk: at91: Mark struct clk_range as const It's just some static data that doesn't get changed after being used. Mark it const everywhere. Cc: Alexandre Belloni Signed-off-by: Stephen Boyd commit 01e2113de9a5288bee805db06a00a48295f7eaab Author: Alexandre Belloni Date: Tue Apr 2 14:50:56 2019 +0200 clk: at91: add sam9x60 pmc driver Add a driver for the PMC clocks of the sam9c60. Signed-off-by: Alexandre Belloni [sboyd@kernel.org: Staticize spinlock] Signed-off-by: Stephen Boyd commit 7fb091f806c55da593b93bc858d81203a9597257 Author: Changbin Du Date: Thu Apr 25 01:53:06 2019 +0800 Documentation: ACPI: move video_extension.txt to firmware-guide/acpi and convert to reST This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit 7fe19072df5555425268f9452059d3c514c6780f Author: Changbin Du Date: Thu Apr 25 01:53:05 2019 +0800 Documentation: ACPI: move ssdt-overlays.txt to admin-guide/acpi and convert to reST This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit 4887954cac779abe38d3ba6446dec341ccca04ea Author: Changbin Du Date: Thu Apr 25 01:53:04 2019 +0800 Documentation: ACPI: move lpit.txt to firmware-guide/acpi and convert to reST This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit 3e57460f007c86476c376a08e31da441cae0b195 Author: Changbin Du Date: Thu Apr 25 01:53:03 2019 +0800 Documentation: ACPI: move cppc_sysfs.txt to admin-guide/acpi and convert to reST This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Signed-off-by: Rafael J. Wysocki commit 440ebec745dcbc44866f6b19e5145a12d4494a5f Author: Changbin Du Date: Thu Apr 25 01:53:02 2019 +0800 Documentation: ACPI: move apei/einj.txt to firmware-guide/acpi and convert to reST This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit deb95169ef4279362f4c6167c4c59c8d68711d97 Author: Changbin Du Date: Thu Apr 25 01:53:01 2019 +0800 Documentation: ACPI: move apei/output_format.txt to firmware-guide/acpi and convert to reST This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit 472e89b4e1a87cd7f9b5ae99759a635711cf00fb Author: Changbin Du Date: Thu Apr 25 01:53:00 2019 +0800 Documentation: ACPI: move aml-debugger.txt to firmware-guide/acpi and convert to reST This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit 3c03a1bde4dcedef8fb287e348de959d81d04ca6 Author: Changbin Du Date: Thu Apr 25 01:52:59 2019 +0800 Documentation: ACPI: move method-tracing.txt to firmware-guide/acpi and convert to rsST This converts the plain text documentation to reStructuredText format and add it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit 99ed6bfaa5a0a4bffc10ff3ffe9c599bcf59236e Author: Changbin Du Date: Thu Apr 25 01:52:58 2019 +0800 Documentation: ACPI: move debug.txt to firmware-guide/acpi and convert to reST This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit 05000042f33dd8b2afbeedc1d8fd499486d14b0d Author: Changbin Du Date: Thu Apr 25 01:52:57 2019 +0800 Documentation: ACPI: move dsd/data-node-references.txt to firmware-guide/acpi and convert to reST This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit f2dde1ed0f2818405b371c2b65a98fece221b7a0 Author: Changbin Du Date: Thu Apr 25 01:52:56 2019 +0800 Documentation: ACPI: move dsd/graph.txt to firmware-guide/acpi and convert to reST This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit 011eed59ba6df428a1380fd1419a2a422f0d807a Author: Changbin Du Date: Thu Apr 25 01:52:55 2019 +0800 Documentation: ACPI: move acpi-lid.txt to firmware-guide/acpi and convert to reST This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit 572c9fa516f532d6cfd7123d7753fe52730f1c59 Author: Changbin Du Date: Thu Apr 25 01:52:54 2019 +0800 Documentation: ACPI: move i2c-muxes.txt to firmware-guide/acpi and convert to reST This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit 34bf473baef086ec0e277ffb0dbddb697da9f02e Author: Changbin Du Date: Thu Apr 25 01:52:53 2019 +0800 Documentation: ACPI: move dsdt-override.txt to admin-guide/acpi and convert to reST This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit 59bcdcccf31f5a42cd23ea46154f9b3546d66009 Author: Changbin Du Date: Thu Apr 25 01:52:52 2019 +0800 Documentation: ACPI: move initrd_table_override.txt to admin-guide/acpi and convert to reST This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit eea7803278619d1a3bda6306cd8470497cd2c5e3 Author: Changbin Du Date: Thu Apr 25 01:52:51 2019 +0800 Documentation: ACPI: move method-customizing.txt to firmware-guide/acpi and convert to reST This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit b6dff0e153e919b62e2a1c90fd6e5a4ba922f99b Author: Changbin Du Date: Thu Apr 25 01:52:50 2019 +0800 Documentation: ACPI: move gpio-properties.txt to firmware-guide/acpi and convert to reST This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit 538f6f76b9ca5cbcd521db80e137d1c43e55556b Author: Changbin Du Date: Thu Apr 25 01:52:49 2019 +0800 Documentation: ACPI: move DSD-properties-rules.txt to firmware-guide/acpi and covert to reST This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit 97a63dd43477a93fa0fc53ff082af8d64ff618e1 Author: Changbin Du Date: Thu Apr 25 01:52:48 2019 +0800 Documentation: ACPI: move scan_handlers.txt to driver-api/acpi and convert to reST This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit 25710e23cdee4d4cfc140d34dd627b76be62c9c1 Author: Changbin Du Date: Thu Apr 25 01:52:47 2019 +0800 Documentation: ACPI: move linuxized-acpica.txt to driver-api/acpi and convert to reST This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit 1cf70ae6f07b071affcd4e324803e928e3336a8d Author: Changbin Du Date: Thu Apr 25 01:52:46 2019 +0800 Documentation: ACPI: move osi.txt to firmware-guide/acpi and convert to reST This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit c24bc66e8157ca4956b8be1ed62493d70dfdb547 Author: Changbin Du Date: Thu Apr 25 01:52:45 2019 +0800 Documentation: ACPI: move enumeration.txt to firmware-guide/acpi and convert to reST This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit 8a2fe04b446f909ffffadb84b886199edbe408c2 Author: Changbin Du Date: Thu Apr 25 01:52:44 2019 +0800 Documentation: ACPI: move namespace.txt to firmware-guide/acpi and convert to reST This converts the plain text documentation to reStructuredText format and adds it to Sphinx TOC tree. No essential content change. Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit 680e6ffa15103ab610c0fc1241d2f98c801b13e2 Author: Changbin Du Date: Thu Apr 25 23:30:54 2019 +0800 Documentation: add Linux ACPI to Sphinx TOC tree Add below index.rst files for ACPI subsystem. More docs will be added later. o admin-guide/acpi/index.rst o driver-api/acpi/index.rst o firmware-guide/index.rst Signed-off-by: Changbin Du Reviewed-by: Mauro Carvalho Chehab Signed-off-by: Rafael J. Wysocki commit e71f4d385878671991e200083c7d30eb4ca8e99a Author: Dmitry Osipenko Date: Sun Apr 14 22:23:21 2019 +0300 clk: tegra: divider: Mark Memory Controller clock as read-only The Memory Controller (MC) clock rate can't be simply changed and nothing in kernel need to change the rate, hence let's make the clock read-only. This id also needed for the EMC driver because timing configuration may require the MC clock diver to be disabled, that is handled by the EMC clock / EMC driver integration and CLK framework shall not touch the MC divider configuration on the EMC clock rate change. Signed-off-by: Dmitry Osipenko Signed-off-by: Stephen Boyd commit f4037654a89906045a1c6a046c35e625524747ce Author: Dmitry Osipenko Date: Sun Apr 14 22:23:20 2019 +0300 clk: tegra: emc: Replace BUG() with WARN_ONCE() There is no justification for the BUG() in this code. Signed-off-by: Dmitry Osipenko Signed-off-by: Stephen Boyd commit 913c3072eb58978f46851c195aa81586d0fd182b Author: Dmitry Osipenko Date: Sun Apr 14 22:23:19 2019 +0300 clk: tegra: emc: Fix EMC max-rate clamping When a clk user requests rate that is higher than the maximum possible, the rate shall be clamped to the maximum and not to the current value. Signed-off-by: Dmitry Osipenko Signed-off-by: Stephen Boyd commit 888ca40e2843a24d2d4830780a4a5705a3fb219a Author: Dmitry Osipenko Date: Sun Apr 14 22:23:18 2019 +0300 clk: tegra: emc: Support multiple RAM codes The timings parser doesn't append timings, but instead it parses only the first timing and hence doesn't store all of the timings when device-tree has timings for multiple RAM codes. In a result EMC scaling doesn't work if timings are missing. Tested-by: Steev Klimaszewski Signed-off-by: Dmitry Osipenko Signed-off-by: Stephen Boyd commit 924ee3d551c9deb16090230b824988bd37e72aa8 Author: Dmitry Osipenko Date: Sun Apr 14 22:23:17 2019 +0300 clk: tegra: emc: Don't enable EMC clock manually The EMC clock marked as critical, hence it is already enabled at the registration time. Signed-off-by: Dmitry Osipenko Signed-off-by: Stephen Boyd commit 0e33d334df1310d0697f2595833f723e5380359c Merge: a21b48a2f2af 4f8827d2b61e Author: Alexei Starovoitov Date: Thu Apr 25 13:47:29 2019 -0700 Merge branch 'libbpf-fixes' Daniel Borkmann says: ==================== Two small fixes in relation to global data handling. Thanks! ==================== Acked-by: Andrii Nakryiko Signed-off-by: Alexei Starovoitov commit 4f8827d2b61ed32133e51f6a782bb69d80c7c3d4 Author: Daniel Borkmann Date: Wed Apr 24 00:45:57 2019 +0200 bpf, libbpf: fix segfault in bpf_object__init_maps' pr_debug statement Ran into it while testing; in bpf_object__init_maps() data can be NULL in the case where no map section is present. Therefore we simply cannot access data->d_size before NULL test. Move the pr_debug() where it's safe to access. Fixes: d859900c4c56 ("bpf, libbpf: support global data/bss/rodata sections") Signed-off-by: Daniel Borkmann Signed-off-by: Alexei Starovoitov commit 8837fe5dd09bd0331b3e2d1b6e400b7fcda8963a Author: Daniel Borkmann Date: Wed Apr 24 00:45:56 2019 +0200 bpf, libbpf: handle old kernels more graceful wrt global data sections Andrii reported a corner case where e.g. global static data is present in the BPF ELF file in form of .data/.bss/.rodata section, but without any relocations to it. Such programs could be loaded before commit d859900c4c56 ("bpf, libbpf: support global data/bss/rodata sections"), whereas afterwards if kernel lacks support then loading would fail. Add a probing mechanism which skips setting up libbpf internal maps in case of missing kernel support. In presence of relocation entries, we abort the load attempt. Fixes: d859900c4c56 ("bpf, libbpf: support global data/bss/rodata sections") Reported-by: Andrii Nakryiko Signed-off-by: Daniel Borkmann Signed-off-by: Alexei Starovoitov commit 2d1c31cb642b44e3d621643b8d30e15e5e4df4e4 Author: Patrick Venture Date: Thu Apr 25 13:23:47 2019 -0700 drivers/misc: Add Aspeed P2A control driver Fixup compiler warnings: - 108 warning: ISO C90 forbids mixed declarations and code - 264 warning: unused variable 'value' - 335 warning: unused variable 'res' Reported-by: kbuild test robot Signed-off-by: Patrick Venture Signed-off-by: Greg Kroah-Hartman commit 06d5d6b7f9948a89543e1160ef852d57892c750d Author: Kangjie Lu Date: Sat Apr 13 11:34:47 2019 +0100 slimbus: fix a potential NULL pointer dereference in of_qcom_slim_ngd_register In case platform_device_alloc fails, the fix returns an error code to avoid the NULL pointer dereference. Signed-off-by: Kangjie Lu Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit b281218ad4311a0342a40cb02fb17a363df08b48 Author: Young Xiao Date: Fri Apr 12 15:45:06 2019 +0800 Drivers: misc: fix out-of-bounds access in function param_set_kgdbts_var There is an out-of-bounds access to "config[len - 1]" array when the variable "len" is zero. See commit dada6a43b040 ("kgdboc: fix KASAN global-out-of-bounds bug in param_set_kgdboc_var()") for details. Signed-off-by: Young Xiao Signed-off-by: Greg Kroah-Hartman commit 15235f1f495efc5ed435cf6fff95066ba85c5328 Author: Lucas Stach Date: Sat Apr 13 11:32:46 2019 +0100 dt-bindings: imx-ocotp: Add i.MX8MQ compatible Add compatible for i.MX8MQ and add i.MX7D/S, i.MX7ULP and i.M8MQ to the description. Signed-off-by: Lucas Stach Reviewed-by: Rob Herring Reviewed-by: Abel Vesa Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit edb16da34b084c66763f29bee42b4e6bb33c3d66 Author: Venkata Narendra Kumar Gutta Date: Mon Apr 22 17:16:29 2019 -0700 driver core: platform: Fix the usage of platform device name(pdev->name) Platform core is using pdev->name as the platform device name to do the binding of the devices with the drivers. But, when the platform driver overrides the platform device name with dev_set_name(), the pdev->name is pointing to a location which is freed and becomes an invalid parameter to do the binding match. use-after-free instance: [ 33.325013] BUG: KASAN: use-after-free in strcmp+0x8c/0xb0 [ 33.330646] Read of size 1 at addr ffffffc10beae600 by task modprobe [ 33.339068] CPU: 5 PID: 518 Comm: modprobe Tainted: G S W O 4.19.30+ #3 [ 33.346835] Hardware name: MTP (DT) [ 33.350419] Call trace: [ 33.352941] dump_backtrace+0x0/0x3b8 [ 33.356713] show_stack+0x24/0x30 [ 33.360119] dump_stack+0x160/0x1d8 [ 33.363709] print_address_description+0x84/0x2e0 [ 33.368549] kasan_report+0x26c/0x2d0 [ 33.372322] __asan_report_load1_noabort+0x2c/0x38 [ 33.377248] strcmp+0x8c/0xb0 [ 33.380306] platform_match+0x70/0x1f8 [ 33.384168] __driver_attach+0x78/0x3a0 [ 33.388111] bus_for_each_dev+0x13c/0x1b8 [ 33.392237] driver_attach+0x4c/0x58 [ 33.395910] bus_add_driver+0x350/0x560 [ 33.399854] driver_register+0x23c/0x328 [ 33.403886] __platform_driver_register+0xd0/0xe0 So, use dev_name(&pdev->dev), which fetches the platform device name from the kobject(dev->kobj->name) of the device instead of the pdev->name. Signed-off-by: Venkata Narendra Kumar Gutta Signed-off-by: Greg Kroah-Hartman commit 70283454c918f1d65de0ec50c45ef592d781bcae Author: Kimberly Brown Date: Mon Apr 1 22:51:58 2019 -0400 livepatch: Replace klp_ktype_patch's default_attrs with groups The kobj_type default_attrs field is being replaced by the default_groups field. Replace klp_ktype_patch's default_attrs field with default_groups and use the ATTRIBUTE_GROUPS macro to create klp_patch_groups. This patch was tested by loading the livepatch-sample module and verifying that the sysfs files for the attributes in the default groups were created. Signed-off-by: Kimberly Brown Acked-by: Jiri Kosina Acked-by: Miroslav Benes Acked-by: Petr Mladek Signed-off-by: Greg Kroah-Hartman commit 9782adeb3d9d6e33fc52392031b8e00270515442 Author: Kimberly Brown Date: Mon Apr 1 22:51:53 2019 -0400 cpufreq: schedutil: Replace default_attrs field with groups The kobj_type default_attrs field is being replaced by the default_groups field. Replace sugov_tunables_ktype's default_attrs field with default groups. Change "sugov_attributes" to "sugov_attrs" and use the ATTRIBUTE_GROUPS macro to create sugov_groups. This patch was tested by setting the scaling governor to schedutil and verifying that the sysfs files for the attributes in the default groups were created. Signed-off-by: Kimberly Brown Acked-by: Peter Zijlstra (Intel) Acked-by: Rafael J. Wysocki Signed-off-by: Greg Kroah-Hartman commit 2064fbc779d43c5ac38e20a4b4979e365f87349f Author: Kimberly Brown Date: Mon Apr 1 22:51:47 2019 -0400 padata: Replace padata_attr_type default_attrs field with groups The kobj_type default_attrs field is being replaced by the default_groups field. Replace padata_attr_type's default_attrs field with default_groups and use the ATTRIBUTE_GROUPS macro to create padata_default_groups. This patch was tested by loading the pcrypt module and verifying that the sysfs files for the attributes in the default groups were created. Signed-off-by: Kimberly Brown Signed-off-by: Greg Kroah-Hartman commit 52ba92f5882adf1ee785c4c5ef23491948917fcd Author: Kimberly Brown Date: Mon Apr 1 22:51:41 2019 -0400 irqdesc: Replace irq_kobj_type's default_attrs field with groups The kobj_type default_attrs field is being replaced by the default_groups field. Replace irq_kobj_type's default_attrs field with default_groups and use the ATTRIBUTE_GROUPS macro to create irq_groups. This patch was tested by verifying that the sysfs files for the attributes in the default groups were created. Signed-off-by: Kimberly Brown Reviewed-by: Thomas Gleixner Signed-off-by: Greg Kroah-Hartman commit be0d692657028854ff581b31191131b94f18637d Author: Kimberly Brown Date: Mon Apr 1 22:51:35 2019 -0400 net-sysfs: Replace ktype default_attrs field with groups The kobj_type default_attrs field is being replaced by the default_groups field. Replace the default_attrs fields in rx_queue_ktype and netdev_queue_ktype with default_groups. Use the ATTRIBUTE_GROUPS macro to create rx_queue_default_groups and netdev_queue_default_groups. This patch was tested by verifying that the sysfs files for the attributes in the default groups were created. Signed-off-by: Kimberly Brown Signed-off-by: Greg Kroah-Hartman commit 800f5aa1e7e1093fce197eecf2ff05b8491a5935 Author: Kimberly Brown Date: Mon Apr 1 22:51:30 2019 -0400 block: Replace all ktype default_attrs with groups The kobj_type default_attrs field is being replaced by the default_groups field. Replace all of the ktype default_attrs fields in the block subsystem with default_groups and use the ATTRIBUTE_GROUPS macro to create the default groups. Remove default_ctx_attrs[] because it doesn't contain any attributes. This patch was tested by verifying that the sysfs files for the attributes in the default groups were created. Signed-off-by: Kimberly Brown Reviewed-by: Bart Van Assche Signed-off-by: Greg Kroah-Hartman commit c484a6783d2b800ebbb110b28b0d96444f8b81ca Author: Kimberly Brown Date: Mon Apr 1 22:51:24 2019 -0400 samples/kobject: Replace foo_ktype's default_attrs field with groups The kobj_type default_attrs field is being replaced by the default_groups field. Replace foo_ktype's default_attrs field with default_groups and use the ATTRIBUTE_GROUPS macro to create foo_default_groups. This patch was tested by loading the kset-example module and verifying that the sysfs files for the attributes in the default group were created. Signed-off-by: Kimberly Brown Signed-off-by: Greg Kroah-Hartman commit aa30f47cf666111f6bbfd15f290a27e8a7b9d854 Author: Kimberly Brown Date: Mon Apr 1 22:51:18 2019 -0400 kobject: Add support for default attribute groups to kobj_type kobj_type currently uses a list of individual attributes to store default attributes. Attribute groups are more flexible than a list of attributes because groups provide support for attribute visibility. So, add support for default attribute groups to kobj_type. In future patches, the existing uses of kobj_type’s attribute list will be converted to attribute groups. When that is complete, kobj_type’s attribute list, “default_attrs”, will be removed. Signed-off-by: Kimberly Brown Signed-off-by: Greg Kroah-Hartman commit 75d7dbd3882450c7b6602d234b3b31864dbc356d Author: Mathieu Poirier Date: Thu Apr 25 13:53:10 2019 -0600 coresight: etb10: Add support for CPU-wide trace scenarios This patch adds support for CPU-wide trace scenarios by making sure that only the sources monitoring the same process have access to a common sink. Because the sink is shared between sources, the first source to use the sink switches it on while the last one does the cleanup. Any attempt to modify the HW is overlooked for as long as more than one source is using a sink. Signed-off-by: Mathieu Poirier Tested-by: Leo Yan Tested-by: Robert Walker Signed-off-by: Greg Kroah-Hartman commit 880af782c6e81cccf507f5a1cf4b23fbb471c39f Author: Mathieu Poirier Date: Thu Apr 25 13:53:09 2019 -0600 coresight: tmc-etf: Add support for CPU-wide trace scenarios This patch adds support for CPU-wide trace scenarios by making sure that only the sources monitoring the same process have access to a common sink. Because the sink is shared between sources, the first source to use the sink switches it on while the last one does the cleanup. Any attempt to modify the HW is overlooked for as long as more than one source is using a sink. Signed-off-by: Mathieu Poirier Tested-by: Leo Yan Tested-by: Robert Walker Signed-off-by: Greg Kroah-Hartman commit 8d03cfd16a7283e9e7a5aeb7dc0742ceb66d2d23 Author: Mathieu Poirier Date: Thu Apr 25 13:53:08 2019 -0600 coresight: tmc-etr: Add support for CPU-wide trace scenarios This patch adds support for CPU-wide trace scenarios by making sure that only the sources monitoring the same process have access to a common sink. Because the sink is shared between sources, the first source to use the sink switches it on while the last one does the cleanup. Any attempt to modify the HW is overlooked for as long as more than one source is using a sink. Signed-off-by: Mathieu Poirier Tested-by: Leo Yan Tested-by: Robert Walker Signed-off-by: Greg Kroah-Hartman commit 3147da92a8a81fc304e6e9d7ac75b68d6a54d9f7 Author: Mathieu Poirier Date: Thu Apr 25 13:53:07 2019 -0600 coresight: tmc-etr: Allocate and free ETR memory buffers for CPU-wide scenarios This patch uses the PID of the process being traced to allocate and free ETR memory buffers for CPU-wide scenarios. The implementation is tailored to handle both N:1 and 1:1 source/sink HW topologies. Signed-off-by: Mathieu Poirier Tested-by: Leo Yan Tested-by: Robert Walker Signed-off-by: Greg Kroah-Hartman commit c5ff734462b1d32f793db717ef222cd05e6232d5 Author: Mathieu Poirier Date: Thu Apr 25 13:53:06 2019 -0600 coresight: tmc-etr: Introduce the notion of IDR to ETR devices In CPU-wide scenarios with an N:1 source/sink topology, sources share the same sink. In order to reuse the same sink for all sources an IDR is needed to archive events that have already been accounted for. Signed-off-by: Mathieu Poirier Tested-by: Leo Yan Tested-by: Robert Walker Signed-off-by: Greg Kroah-Hartman commit 57549999b9a0d0c72900d2413ef1e3168bd2e817 Author: Mathieu Poirier Date: Thu Apr 25 13:53:05 2019 -0600 coresight: tmc-etr: Introduce the notion of reference counting to ETR devices This patch adds reference counting to struct etr_buf so that, in CPU-wide trace scenarios, shared buffers can be disposed of when no longer used. Signed-off-by: Mathieu Poirier Tested-by: Leo Yan Tested-by: Robert Walker Signed-off-by: Greg Kroah-Hartman commit ef848e463ac9052be620757579cfa0aa975e97ea Author: Mathieu Poirier Date: Thu Apr 25 13:53:04 2019 -0600 coresight: tmc-etr: Introduce the notion of process ID to ETR devices In preparation to support CPU-wide trace scenarios, introduce the notion of process ID to ETR devices. That way events monitoring the same process can use the same etr_buf, allowing multiple CPUs to use the same sink. Signed-off-by: Mathieu Poirier Tested-by: Leo Yan Tested-by: Robert Walker Signed-off-by: Greg Kroah-Hartman commit e553a8aef4c300530844fe096c10975548ea26cb Author: Mathieu Poirier Date: Thu Apr 25 13:53:03 2019 -0600 coresight: tmc-etr: Create per-thread buffer allocation function Buffer allocation is different when dealing with per-thread and CPU-wide sessions. In preparation to support CPU-wide trace scenarios simplify things by keeping allocation functions for both type separate. Signed-off-by: Mathieu Poirier Tested-by: Leo Yan Tested-by: Robert Walker Signed-off-by: Greg Kroah-Hartman commit 855ab61c16bf70b646fa9c84e7b07d14a003cd42 Author: Mathieu Poirier Date: Thu Apr 25 13:53:02 2019 -0600 coresight: tmc-etr: Refactor function tmc_etr_setup_perf_buf() Refactoring function tmc_etr_setup_perf_buf() so that it only deals with the high level etr_perf_buffer, leaving the allocation of the backend buffer (i.e etr_buf) to another function. That way the backend buffer allocation function can decide if it wants to reuse an existing buffer (CPU-wide trace scenarios) or simply create a new one. Signed-off-by: Mathieu Poirier Tested-by: Leo Yan Tested-by: Robert Walker Signed-off-by: Greg Kroah-Hartman commit a0f08a6a9fee0ce3f2d36e3e30799e4c1ec171f4 Author: Mathieu Poirier Date: Thu Apr 25 13:53:01 2019 -0600 coresight: Communicate perf event to sink buffer allocation functions Make struct perf_event available to sink buffer allocation functions in order to use the pid they carry to allocate and free buffer memory along with regimenting access to what source a sink can collect data for. Signed-off-by: Mathieu Poirier Tested-by: Leo Yan Tested-by: Robert Walker Signed-off-by: Greg Kroah-Hartman commit f5200aa9831f38271c8104565fdcae4401658475 Author: Mathieu Poirier Date: Thu Apr 25 13:53:00 2019 -0600 coresight: perf: Refactor function free_event_data() Function free_event_data() is already busy and is bound to become worse with the addition of CPU-wide trace scenarios. As such spin off a new function to strickly take care of the sink buffers. Signed-off-by: Mathieu Poirier Reviewed-by: Suzuki K Poulose Tested-by: Leo Yan Tested-by: Robert Walker Signed-off-by: Greg Kroah-Hartman commit 02d5c897a091f8e064f022a5383978182751d7fb Author: Mathieu Poirier Date: Thu Apr 25 13:52:59 2019 -0600 coresight: perf: Clean up function etm_setup_aux() There is no point in allocating sink memory for a trace session if there is not a way to free it once it is no longer needed. As such make sure the sink API function to allocate and free memory have been implemented before moving ahead with the establishment of a trace session. Signed-off-by: Mathieu Poirier Reviewed-by: Suzuki K Poulose Tested-by: Leo Yan Tested-by: Robert Walker Signed-off-by: Greg Kroah-Hartman commit 0916447c8728ed1ffa2bf9feee220f01d802b37e Author: Mathieu Poirier Date: Thu Apr 25 13:52:58 2019 -0600 coresight: Properly address concurrency in sink::update() functions When operating in CPU-wide trace scenarios and working with an N:1 source/sink HW topology, update() functions need to be made atomic in order to avoid racing with start and stop operations. Signed-off-by: Mathieu Poirier Reviewed-by: Suzuki K Poulose Tested-by: Leo Yan Tested-by: Robert Walker Signed-off-by: Greg Kroah-Hartman commit 12dfc9e022aa4e8768d127416bf841c169f8c57e Author: Mathieu Poirier Date: Thu Apr 25 13:52:57 2019 -0600 coresight: Properly address errors in sink::disable() functions When disabling a sink the reference counter ensures the operation goes through if nobody else is using it. As such if drvdata::mode is already set do CS_MODE_DISABLED, it is an error and should be reported as such. Signed-off-by: Mathieu Poirier Reviewed-by: Suzuki K Poulose Tested-by: Leo Yan Tested-by: Robert Walker Signed-off-by: Greg Kroah-Hartman commit f973d88b75703719d39c4d5145079199aaf442b2 Author: Mathieu Poirier Date: Thu Apr 25 13:52:56 2019 -0600 coresight: Move reference counting inside sink drivers When operating in CPU-wide mode with an N:1 source/sink HW topology, multiple CPUs can access a sink concurrently. As such reference counting needs to happen when the device's spinlock is held to avoid racing with other operations (start(), update(), stop()), such as: session A Session B ----- ------- enable_sink atomic_inc(refcount) = 1 ... atomic_dec(refcount) = 0 enable_sink if (refcount == 0) disable_sink atomic_inc() Signed-off-by: Mathieu Poirier Reviewed-by: Suzuki K Poulose Tested-by: Leo Yan Tested-by: Robert Walker Signed-off-by: Greg Kroah-Hartman commit 6c817a95d84b8388e97d4e2b6ee361a660e244e9 Author: Mathieu Poirier Date: Thu Apr 25 13:52:55 2019 -0600 coresight: Adding return code to sink::disable() operation In preparation to handle device reference counting inside of the sink drivers, add a return code to the sink::disable() operation so that proper action can be taken if a sink has not been disabled. Signed-off-by: Mathieu Poirier Reviewed-by: Suzuki K Poulose Tested-by: Leo Yan Tested-by: Robert Walker Signed-off-by: Greg Kroah-Hartman commit a54e14f810f257d782ddf2fde1df5f3819e612a8 Author: Mathieu Poirier Date: Thu Apr 25 13:52:54 2019 -0600 coresight: etm4x: Configure tracers to emit timestamps Configure timestamps to be emitted at regular intervals in the trace stream to temporally correlate instructions executed on different CPUs. Signed-off-by: Mathieu Poirier Tested-by: Leo Yan Tested-by: Robert Walker Signed-off-by: Greg Kroah-Hartman commit 8013f32a1b352f810cc2acfb00317df2ae3c5dee Author: Mathieu Poirier Date: Thu Apr 25 13:52:53 2019 -0600 coresight: etm4x: Skip selector pair 0 Resource selector pair 0 is always implemented and reserved. As such it should not be explicitly programmed. Signed-off-by: Mathieu Poirier Reviewed-by: Suzuki K Poulose Tested-by: Leo Yan Tested-by: Robert Walker Signed-off-by: Greg Kroah-Hartman commit 82500a810ee26ac542d128499d7adae163e61adb Author: Mathieu Poirier Date: Thu Apr 25 13:52:52 2019 -0600 coresight: etm4x: Add kernel configuration for CONTEXTID Set the proper bit in the configuration register when contextID tracing has been requested by user space. That way PE_CONTEXT elements are generated by the tracers when a process is installed on a CPU. Signed-off-by: Mathieu Poirier Reviewed-by: Suzuki K Poulose Tested-by: Leo Yan Tested-by: Robert Walker Signed-off-by: Greg Kroah-Hartman commit 6fcdba33ab0d43e5fcb557897c1c81541927f615 Author: Mathieu Poirier Date: Thu Apr 25 13:52:51 2019 -0600 coresight: pmu: Adding ITRACE property to cs_etm PMU Add to the capabilities the ITRACE property so that ITRACE START events are generated when the PMU is switched on by the core. Signed-off-by: Mathieu Poirier Acked-by: Suzuki K Poulose Tested-by: Leo Yan Tested-by: Robert Walker Signed-off-by: Greg Kroah-Hartman commit 263556950f2ad764bad4f98fbc5a9d711fd653a6 Author: Suzuki K Poulose Date: Thu Apr 25 13:52:50 2019 -0600 coresight: tmc: Cleanup power management Drop the power only if we were successful in probing the device. Cc: Mathieu Poirier Signed-off-by: Suzuki K Poulose Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman commit 2390d4586475e2e4fdff1ad281fb33e73b41b5cc Author: Suzuki K Poulose Date: Thu Apr 25 13:52:49 2019 -0600 coresight: catu: Cleanup power management Drop the power handle only if we were successful. Otherwise the AMBA bus code would do the rest. Cc: Mathieu Poirier Signed-off-by: Suzuki K Poulose Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman commit 0bfc53b30eacbc5623f4981e04a55d3ad9393a87 Author: Suzuki K Poulose Date: Thu Apr 25 13:52:48 2019 -0600 coresight: tpiu: Cleanup power management Drop the power only when we have successfully probed. Otherwise leave it to the amba probe to do the rest. Cc: Mathieu Poirier Signed-off-by: Suzuki K Poulose [Removed extra newline left after original modification] Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman commit 850ccfe3e891b668605a663c7024c3f187443c76 Author: Suzuki K Poulose Date: Thu Apr 25 13:52:47 2019 -0600 coresight: etb10: Cleanup power management We drop the power before we complete the probe successfully. We are supposed to drop it only when we are successful. Also, probing the etb_buffer_length happens with the power turned up. So we don't need to do that again in the helper. Cc: Mathieu Poirier Signed-off-by: Suzuki K Poulose Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman commit 1b015ef28a443a89985db2a67080bf7c660d66d2 Author: Suzuki K Poulose Date: Thu Apr 25 13:52:46 2019 -0600 coresight: Fix freeing up the coresight connections With commit c2c729415b2d2132 ("coresight: platform: Cleanup coresight connection handling"), we switched to re-using coresight_connections for the coresight_device. However, that introduced a mismatch in the alloc/free of the connections. The allocation is made using devm_*, while we use kfree() to release the memory when a device is released (even though we don't support this at the moment). Fix this by leaving it to the automatic freeing of the memory. Fixes: c2c729415b2d2132 ("coresight: platform: Cleanup coresight connection handling") Cc: Mathieu Poirier Signed-off-by: Suzuki K Poulose Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman commit 455328b1772a190e27fe7ef3a2416dfee6234317 Author: Suzuki K Poulose Date: Thu Apr 25 13:52:45 2019 -0600 coresight: Merge the static and dynamic replicator drivers Merge the drivers for the two varieties of replicators into a singel one. The dynamic replicator has programming base which can be programmed to filter the trace data. The driver detects the type based on the "base" address value of the device, which is NULL for the static device. Also, while at it, remove the now obsolete DYNAMIC_REPLICATOR config entry. Cc: Mathieu Poirier Signed-off-by: Suzuki K Poulose Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman commit c827db65666b781df3fbdc7b7645856d3101080e Author: Suzuki K Poulose Date: Thu Apr 25 13:52:44 2019 -0600 coresight: dynamic-replicator: Prepare for merging with static replicator Rename the dynamic replicator specific routines for merging with the replicator driver. Also re-arrange the probe routine to make it easier to merge. Cc: Mathieu Poirier Signed-off-by: Suzuki K Poulose Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman commit eb6934b5c1bb53ca3b31527945cb1b8d02e9864c Author: Suzuki K Poulose Date: Thu Apr 25 13:52:43 2019 -0600 coresight: replicator: Prepare for merging with dynamic-replicator As a preparatory step to merge the separate drivers for static and dynamic replicators, annotate the static replicator specific details. Also refactor the probe routine to make it generic in order to merge the drivers easily. Cc: Mathieu Poirier Signed-off-by: Suzuki K Poulose Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman commit ee8146aad87cd8eeb5963856ac0b9a9176392e3a Author: Suzuki K Poulose Date: Thu Apr 25 13:52:42 2019 -0600 coresight: dynamic-replicator: Clean up error handling We fail to disable the clock in case of a failure during the probe. Clean this up. Also, we are supposed to drop the pm reference only when the probing is successful. Cc: Mathieu Poirier Signed-off-by: Suzuki K Poulose Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman commit 08be874775f13a0acffff864440d10b8b1397912 Author: Suzuki K Poulose Date: Thu Apr 25 13:52:41 2019 -0600 coresight: tmc: Report DMA setup failures If we failed to setup the DMA mask for TMC-ETR, report the error before failing the probe. Cc: Mathieu Poirier Signed-off-by: Suzuki K Poulose Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman commit 61810404b43fb0f7195cd947aef903ac90ea6989 Author: YueHaibing Date: Thu Apr 25 13:52:40 2019 -0600 coresight: catu: Make catu_helper_ops and catu_ops static Fix sparse warnings: drivers/hwtracing/coresight/coresight-catu.c:488:35: warning: symbol 'catu_helper_ops' was not declared. Should it be static? drivers/hwtracing/coresight/coresight-catu.c:493:28: warning: symbol 'catu_ops' was not declared. Should it be static? Signed-off-by: YueHaibing Reviewed-by: Mukesh Ojha Reviewed-by: Suzuki K Poulose Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman commit 59d63de076607a9334b11628b5c3ddda1d8f56cd Author: Arnd Bergmann Date: Thu Apr 25 13:52:39 2019 -0600 coresight: catu: fix clang build warning Clang points out a syntax error, as the etr_catu_buf_ops structure is declared 'static' before the type is known: In file included from drivers/hwtracing/coresight/coresight-tmc-etr.c:12: drivers/hwtracing/coresight/coresight-catu.h:116:40: warning: tentative definition of variable with internal linkage has incomplete non-array type 'const struct etr_buf_operations' [-Wtentative-definition-incomplete-type] static const struct etr_buf_operations etr_catu_buf_ops; ^ drivers/hwtracing/coresight/coresight-catu.h:116:21: note: forward declaration of 'struct etr_buf_operations' static const struct etr_buf_operations etr_catu_buf_ops; This seems worth fixing in the code, so replace pointer to the empty constant structure with a NULL pointer. We need an extra NULL pointer check here, but the result should be better object code otherwise, avoiding the silly empty structure. Fixes: 434d611cddef ("coresight: catu: Plug in CATU as a backend for ETR buffer") Signed-off-by: Arnd Bergmann Reviewed-by: Suzuki K Poulose [Fixed line over 80 characters] Signed-off-by: Mathieu Poirier Signed-off-by: Greg Kroah-Hartman commit 24f1bc280bcedbde1c05bec2d9f7fbef4a7579ff Author: RickyWu Date: Wed Apr 17 15:35:08 2019 +0800 misc: rtsx: Fixed rts5260 power saving parameter and sd glitch this patch fixes rts5260 power saving parameter make power saving function work on L1.1, L1.2 Signed-off-by: RickyWu Signed-off-by: Greg Kroah-Hartman commit cf4f2ad6b87dda2dbe0573b1ebeb0273f8d4aac6 Author: Hans de Goede Date: Thu Apr 4 14:39:09 2019 +0200 virt: vbox: Sanity-check parameter types for hgcm-calls coming from userspace Userspace can make host function calls, called hgcm-calls through the /dev/vboxguest device. In this case we should not accept all hgcm-function-parameter-types, some are only valid for in kernel calls. This commit adds proper hgcm-function-parameter-type validation to the ioctl for doing a hgcm-call from userspace. Cc: stable@vger.kernel.org Signed-off-by: Hans de Goede Signed-off-by: Greg Kroah-Hartman commit 0b777eee88d712256ba8232a9429edb17c4f9ceb Author: John Garry Date: Thu Mar 28 18:08:05 2019 +0800 driver core: Postpone DMA tear-down until after devres release for probe failure In commit 376991db4b64 ("driver core: Postpone DMA tear-down until after devres release"), we changed the ordering of tearing down the device DMA ops and releasing all the device's resources; this was because the DMA ops should be maintained until we release the device's managed DMA memories. However, we have seen another crash on an arm64 system when a device driver probe fails: hisi_sas_v3_hw 0000:74:02.0: Adding to iommu group 2 scsi host1: hisi_sas_v3_hw BUG: Bad page state in process swapper/0 pfn:313f5 page:ffff7e0000c4fd40 count:1 mapcount:0 mapping:0000000000000000 index:0x0 flags: 0xfffe00000001000(reserved) raw: 0fffe00000001000 ffff7e0000c4fd48 ffff7e0000c4fd48 0000000000000000 raw: 0000000000000000 0000000000000000 00000001ffffffff 0000000000000000 page dumped because: PAGE_FLAGS_CHECK_AT_FREE flag(s) set bad because of flags: 0x1000(reserved) Modules linked in: CPU: 49 PID: 1 Comm: swapper/0 Not tainted 5.1.0-rc1-43081-g22d97fd-dirty #1433 Hardware name: Huawei D06/D06, BIOS Hisilicon D06 UEFI RC0 - V1.12.01 01/29/2019 Call trace: dump_backtrace+0x0/0x118 show_stack+0x14/0x1c dump_stack+0xa4/0xc8 bad_page+0xe4/0x13c free_pages_check_bad+0x4c/0xc0 __free_pages_ok+0x30c/0x340 __free_pages+0x30/0x44 __dma_direct_free_pages+0x30/0x38 dma_direct_free+0x24/0x38 dma_free_attrs+0x9c/0xd8 dmam_release+0x20/0x28 release_nodes+0x17c/0x220 devres_release_all+0x34/0x54 really_probe+0xc4/0x2c8 driver_probe_device+0x58/0xfc device_driver_attach+0x68/0x70 __driver_attach+0x94/0xdc bus_for_each_dev+0x5c/0xb4 driver_attach+0x20/0x28 bus_add_driver+0x14c/0x200 driver_register+0x6c/0x124 __pci_register_driver+0x48/0x50 sas_v3_pci_driver_init+0x20/0x28 do_one_initcall+0x40/0x25c kernel_init_freeable+0x2b8/0x3c0 kernel_init+0x10/0x100 ret_from_fork+0x10/0x18 Disabling lock debugging due to kernel taint BUG: Bad page state in process swapper/0 pfn:313f6 page:ffff7e0000c4fd80 count:1 mapcount:0 mapping:0000000000000000 index:0x0 [ 89.322983] flags: 0xfffe00000001000(reserved) raw: 0fffe00000001000 ffff7e0000c4fd88 ffff7e0000c4fd88 0000000000000000 raw: 0000000000000000 0000000000000000 00000001ffffffff 0000000000000000 The crash occurs for the same reason. In this case, on the really_probe() failure path, we are still clearing the DMA ops prior to releasing the device's managed memories. This patch fixes this issue by reordering the DMA ops teardown and the call to devres_release_all() on the failure path. Reported-by: Xiang Chen Tested-by: Xiang Chen Signed-off-by: John Garry Reviewed-by: Robin Murphy Signed-off-by: Greg Kroah-Hartman commit 25ebcb7dc84db59514b7409ad009d8d67833e091 Author: Andy Shevchenko Date: Thu Apr 4 11:11:58 2019 +0300 driver core: platform: Propagate error from insert_resource() Since insert_resource() might return an error we don't need to shadow its error code and would safely propagate to the user. Signed-off-by: Andy Shevchenko Reviewed-by: Rafael J. Wysocki Signed-off-by: Greg Kroah-Hartman commit 2cfd11f16f01c0ee8f83bb07027c9d2f43565473 Author: Chuck Lever Date: Wed Apr 24 09:40:41 2019 -0400 xprtrdma: Remove stale comment The comment hasn't been accurate for several years. Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker commit 998267900cee901c5d1dfa029a6304d00acbc29f Author: Andrea Parri Date: Tue Apr 16 14:17:11 2019 +0200 kernfs: fix barrier usage in __kernfs_new_node() smp_mb__before_atomic() can not be applied to atomic_set(). Remove the barrier and rely on RELEASE synchronization. Fixes: ba16b2846a8c6 ("kernfs: add an API to get kernfs node from inode number") Cc: stable@vger.kernel.org Signed-off-by: Andrea Parri Acked-by: Tejun Heo Signed-off-by: Greg Kroah-Hartman commit 0d1a393d61e44e2755eeff2e62fc8e91f8b296b6 Author: Christina Quast Date: Tue Apr 2 16:01:46 2019 +0200 fs: kernfs: Corrected spelling mistake flies => files Signed-off-by: Christina Quast Signed-off-by: Greg Kroah-Hartman commit b8fe677fd059deadb2f7f71c4dea747be84d75e0 Author: Chuck Lever Date: Wed Apr 24 09:40:36 2019 -0400 xprtrdma: Update comments that reference ib_drain_qp Commit e1ede312f17e ("xprtrdma: Fix helper that drains the transport") replaced the ib_drain_qp() call, so update documenting comments to reflect current operation. Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker commit 5f2311f5bd359d6d810922bf25c238053a449f2a Author: Chuck Lever Date: Wed Apr 24 09:40:31 2019 -0400 xprtrdma: Remove pr_err() call sites from completion handlers Clean up: rely on the trace points instead. Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker commit 86c4ccd9b92ba6541fc4734e82f87139deea0470 Author: Chuck Lever Date: Wed Apr 24 09:40:25 2019 -0400 xprtrdma: Eliminate struct rpcrdma_create_data_internal Clean up. Move the remaining field in rpcrdma_create_data_internal so the structure can be removed. Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker commit 94087e978e9b645e07cc0fbdcf4140dda02f3d81 Author: Chuck Lever Date: Wed Apr 24 09:40:20 2019 -0400 xprtrdma: Aggregate the inline settings in struct rpcrdma_ep Clean up. The inline settings are actually a characteristic of the endpoint, and not related to the device. They are also modified after the transport instance is created, so they do not belong in the cdata structure either. Lastly, let's use names that are more natural to RDMA than to NFS: inline_write -> inline_send and inline_read -> inline_recv. The /proc files retain their names to avoid breaking user space. Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker commit 5de719e3d01b4abe0de0d7b857148a880ff2a90b Author: Yufen Yu Date: Wed Apr 24 23:19:05 2019 +0800 dm mpath: fix missing call of path selector type->end_io After commit 396eaf21ee17 ("blk-mq: improve DM's blk-mq IO merging via blk_insert_cloned_request feedback"), map_request() will requeue the tio when issued clone request return BLK_STS_RESOURCE or BLK_STS_DEV_RESOURCE. Thus, if device driver status is error, a tio may be requeued multiple times until the return value is not DM_MAPIO_REQUEUE. That means type->start_io may be called multiple times, while type->end_io is only called when IO complete. In fact, even without commit 396eaf21ee17, setup_clone() failure can also cause tio requeue and associated missed call to type->end_io. The service-time path selector selects path based on in_flight_size, which is increased by st_start_io() and decreased by st_end_io(). Missed calls to st_end_io() can lead to in_flight_size count error and will cause the selector to make the wrong choice. In addition, queue-length path selector will also be affected. To fix the problem, call type->end_io in ->release_clone_rq before tio requeue. map_info is passed to ->release_clone_rq() for map_request() error path that result in requeue. Fixes: 396eaf21ee17 ("blk-mq: improve DM's blk-mq IO merging via blk_insert_cloned_request feedback") Cc: stable@vger.kernl.org Signed-off-by: Yufen Yu Signed-off-by: Mike Snitzer commit fd5951742dbc8c3695151e3f46b2fe2c4dac3559 Author: Chuck Lever Date: Wed Apr 24 09:40:15 2019 -0400 xprtrdma: Remove rpcrdma_create_data_internal::rsize and wsize Clean up. xprt_rdma_max_inline_{read,write} cannot be set to large values by virtue of proc_dointvec_minmax. The current maximum is RPCRDMA_MAX_INLINE, which is much smaller than RPCRDMA_MAX_SEGS * PAGE_SIZE. The .rsize and .wsize fields are otherwise unused in the current code base, and thus can be removed. Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker commit 1f7d1c73c58a3d07a951ce23acfb4ec91a31d1e9 Author: Chuck Lever Date: Wed Apr 24 09:40:09 2019 -0400 SUNRPC: Update comments based on recent changes Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker commit b408038415d91b9cc320e01ea6952bb614367004 Author: Alexandre Belloni Date: Tue Apr 2 14:50:55 2019 +0200 dt-bindings: clk: at91: add bindings for SAM9X60 pmc Add SAM9X60 PMC compatible string. Signed-off-by: Alexandre Belloni Signed-off-by: Stephen Boyd commit a436c2a447e59740e8bc5c604abac33419099673 Author: Alexandre Belloni Date: Tue Apr 2 14:50:54 2019 +0200 clk: at91: add sam9x60 PLL driver The PLLs on the sam9x60 (PLLA and USB PLL) use a different register set and programming model than the previous SoCs. Signed-off-by: Alexandre Belloni Signed-off-by: Stephen Boyd commit e5be537064dd36129a724c65820e5fc2daebd5f4 Author: Alexandre Belloni Date: Tue Apr 2 14:50:53 2019 +0200 clk: at91: master: Add sam9x60 support The sam9x60 cpu clock is located at a different offset but is otherwise similar to the master clock. Signed-off-by: Alexandre Belloni Signed-off-by: Stephen Boyd commit 2423eeaead6f83f289c85394313e693cdefb728c Author: Alexandre Belloni Date: Tue Apr 2 14:50:52 2019 +0200 clk: at91: usb: Add sam9x60 support The sam9x60 USB clock supports four different parents, ensure they can be selected. Signed-off-by: Alexandre Belloni Signed-off-by: Stephen Boyd commit e4cfb823bd71c785fe482e4d7491ef04ac561a7d Author: Alexandre Belloni Date: Tue Apr 2 14:50:51 2019 +0200 clk: at91: allow configuring generated PCR layout The PCR register layout for GCLKCSS is changing for the future SoCs, allow configuring it. Signed-off-by: Alexandre Belloni Signed-off-by: Stephen Boyd commit cb4f4949b1c76f29ca804d6ecd879a2e84c88afc Author: Alexandre Belloni Date: Tue Apr 2 14:50:50 2019 +0200 clk: at91: allow configuring peripheral PCR layout The PCR register actually changed layout for each SoC. By chance, this didn't have impact on sama5d[2-4] support but since sama5d3, PID is seven bits wide and sama5d4 and sama5d2 don't have DIV. For the DT backward compatibility, keep the layout as is. Signed-off-by: Alexandre Belloni Signed-off-by: Stephen Boyd commit 575d927c426b83f5f8d5809f46de177cceffe40c Author: Patrick Havelange Date: Tue Apr 2 15:30:53 2019 +0900 LS1021A: dtsi: add ftm quad decoder entries Add the 4 Quadrature counters for this board. Reviewed-by: Esben Haabendal Signed-off-by: Patrick Havelange Signed-off-by: William Breathitt Gray Signed-off-by: Greg Kroah-Hartman commit d8ea4ccfaea0b87831ac9a265bb902904e70a25d Author: Patrick Havelange Date: Tue Apr 2 15:30:52 2019 +0900 counter: ftm-quaddec: Documentation: Add specific counter sysfs documentation This adds documentation for the specific prescaler entry. Signed-off-by: Patrick Havelange Signed-off-by: William Breathitt Gray Signed-off-by: Greg Kroah-Hartman commit a3b9a99980d9fa01f6c18c359cf503b874f183de Author: Patrick Havelange Date: Tue Apr 2 15:30:51 2019 +0900 counter: add FlexTimer Module Quadrature decoder counter driver This driver exposes the counter for the quadrature decoder of the FlexTimer Module, present in the LS1021A soc. Signed-off-by: Patrick Havelange Signed-off-by: William Breathitt Gray Signed-off-by: Greg Kroah-Hartman commit 7f2e3ea306fc12c2a0939793c5b4e35aef22ac4a Author: Patrick Havelange Date: Tue Apr 2 15:30:50 2019 +0900 dt-bindings: counter: ftm-quaddec FlexTimer quadrature decoder driver. Reviewed-by: Esben Haabendal Signed-off-by: Patrick Havelange Signed-off-by: William Breathitt Gray Signed-off-by: Greg Kroah-Hartman commit d4c5c46206699d5a34542e96f90cee68f3dcd2b4 Author: Patrick Havelange Date: Tue Apr 2 15:30:49 2019 +0900 drivers/clocksource: timer-fsl-ftm: use common header for FlexTimer #defines Common #defines have been moved to "linux/fsl/ftm.h". Thus making use of this file. Also FTM_SC_CLK_SHIFT has been renamed to FTM_SC_CLK_MASK_SHIFT. Reviewed-by: Esben Haabendal Signed-off-by: Patrick Havelange Signed-off-by: William Breathitt Gray Signed-off-by: Greg Kroah-Hartman commit e590eb408c8144e070e965a67eaa369677b74d1b Author: Patrick Havelange Date: Tue Apr 2 15:30:48 2019 +0900 drivers/pwm: pwm-fsl-ftm: use common header for FlexTimer #defines This also fixes the wrong value for the previously defined FTM_MODE_INIT macro (it was not used). Reviewed-by: Esben Haabendal Signed-off-by: Patrick Havelange Signed-off-by: William Breathitt Gray Signed-off-by: Greg Kroah-Hartman commit cdff431498623f0971e01bc6f14535361ee81851 Author: Patrick Havelange Date: Tue Apr 2 15:30:47 2019 +0900 include/fsl: add common FlexTimer #defines in a separate header. Several files are/will be using the same #defines to use the Flextimer module. Regroup them in a common file. Reviewed-by: Esben Haabendal Signed-off-by: Patrick Havelange Signed-off-by: William Breathitt Gray Signed-off-by: Greg Kroah-Hartman commit 4bb00e934daf6452f642e2913379f88fae2fb9f1 Author: William Breathitt Gray Date: Tue Apr 2 15:30:46 2019 +0900 iio: counter: Add deprecation markings for IIO Counter attributes The IIO counter subdirectory is now superceded by the Counter subsystem. This patch adds deprecation warnings to the documentation of the relevant IIO Counter sysfs attributes. Acked-by: Jonathan Cameron Signed-off-by: William Breathitt Gray Signed-off-by: Greg Kroah-Hartman commit 7657b2c123deec38ce3091cbda976b2bfb8ff45a Author: Fabrice Gasnier Date: Tue Apr 2 15:30:45 2019 +0900 dt-bindings: counter: Adjust dt-bindings for STM32 lptimer move The STM32 LP Timer counter driver now resides under the Counter subsystem. This patch adjusts dt-bindings to account for the STM32 lptimer driver move. Cc: Mark Rutland Signed-off-by: Fabrice Gasnier Acked-by: Rob Herring Signed-off-by: William Breathitt Gray Signed-off-by: Greg Kroah-Hartman commit 597f55e3f36cb512ad82e22f67b9e0962ac1059f Author: Fabrice Gasnier Date: Tue Apr 2 15:30:44 2019 +0900 counter: stm32-lptimer: add counter device Add support for new counter device to stm32-lptimer. Signed-off-by: Fabrice Gasnier Reviewed-by: Jonathan Cameron Signed-off-by: William Breathitt Gray Signed-off-by: Greg Kroah-Hartman commit ec63e2a4897075e427c121d863bd89c44578094f Author: Benjamin Gaignard Date: Tue Apr 2 15:30:43 2019 +0900 dt-bindings: counter: Document stm32 quadrature encoder Add bindings for STM32 Timer quadrature encoder. It is a sub-node of STM32 Timer which implement the quadratic encoder part of the hardware. Cc: Mark Rutland Signed-off-by: Benjamin Gaignard Acked-by: Rob Herring Signed-off-by: William Breathitt Gray Signed-off-by: Greg Kroah-Hartman commit ad29937e206f5e3fb7ef0d123902505a680f8969 Author: Benjamin Gaignard Date: Tue Apr 2 15:30:42 2019 +0900 counter: Add STM32 Timer quadrature encoder Implement counter part of the STM32 timer hardware block by using counter API. Hardware only supports X2 and X4 quadrature modes. A ceiling value can be set to define the maximum value reachable by the counter. Signed-off-by: Benjamin Gaignard Co-authored-by: Fabrice Gasnier Reviewed-by: Jonathan Cameron Signed-off-by: William Breathitt Gray Signed-off-by: Greg Kroah-Hartman commit 7e798ef90c5f7bf934b8a720eeafd0226c5394e7 Author: William Breathitt Gray Date: Tue Apr 2 15:30:41 2019 +0900 counter: 104-quad-8: Documentation: Add Generic Counter sysfs documentation This patch adds standard documentation for the Generic Counter interface userspace sysfs attributes of the 104-QUAD-8 driver. Acked-by: Jonathan Cameron Signed-off-by: William Breathitt Gray Signed-off-by: Greg Kroah-Hartman commit f1d8a071d45bf13dd9bb9f1777133ca8a1cafebe Author: William Breathitt Gray Date: Tue Apr 2 15:30:40 2019 +0900 counter: 104-quad-8: Add Generic Counter interface support This patch adds support for the Generic Counter interface to the 104-QUAD-8 driver. The existing 104-QUAD-8 device interface should not be affected by this patch; all changes are intended as supplemental additions as perceived by the user. Generic Counter Counts are created for the eight quadrature channel counts, as well as their respective quadrature A and B Signals (which are associated via respective Synapse structures) and respective index Signals. The new Generic Counter interface sysfs attributes are intended to expose the same functionality and data available via the existing 104-QUAD-8 IIO device interface; the Generic Counter interface serves to provide the respective functionality and data in a standard way expected of counter devices. Reviewed-by: Jonathan Cameron Signed-off-by: William Breathitt Gray Signed-off-by: Greg Kroah-Hartman commit e854bac92bc95260985d043f3ff7bf8e6cd6905c Author: William Breathitt Gray Date: Tue Apr 2 15:30:39 2019 +0900 iio: 104-quad-8: Update license boilerplate This patch simplifies the boilerplate license text by making use of a SPDX license identifier line. Signed-off-by: William Breathitt Gray Signed-off-by: Greg Kroah-Hartman commit 09e7d4ed89912bb97ff339ca2ee78b6f3e0c2154 Author: William Breathitt Gray Date: Tue Apr 2 15:30:38 2019 +0900 docs: Add Generic Counter interface documentation This patch adds high-level documentation about the Generic Counter interface. Reviewed-by: Jonathan Cameron Signed-off-by: William Breathitt Gray Signed-off-by: Greg Kroah-Hartman commit ea2b23b89579d9765dc9b45d7bdbe7e4da37fa0f Author: William Breathitt Gray Date: Tue Apr 2 15:30:37 2019 +0900 counter: Documentation: Add Generic Counter sysfs documentation This patch adds standard documentation for the userspace sysfs attributes of the Generic Counter interface. Reviewed-by: Jonathan Cameron Signed-off-by: William Breathitt Gray Signed-off-by: Greg Kroah-Hartman commit 0040a390d2fde44a03b3a05cf0cdf3e692ece60f Author: William Breathitt Gray Date: Tue Apr 2 15:30:36 2019 +0900 counter: Introduce the Generic Counter interface This patch introduces the Generic Counter interface for supporting counter devices. In the context of the Generic Counter interface, a counter is defined as a device that reports one or more "counts" based on the state changes of one or more "signals" as evaluated by a defined "count function." Driver callbacks should be provided to communicate with the device: to read and write various Signals and Counts, and to set and get the "action mode" and "count function" for various Synapses and Counts respectively. To support a counter device, a driver must first allocate the available Counter Signals via counter_signal structures. These Signals should be stored as an array and set to the signals array member of an allocated counter_device structure before the Counter is registered to the system. Counter Counts may be allocated via counter_count structures, and respective Counter Signal associations (Synapses) made via counter_synapse structures. Associated counter_synapse structures are stored as an array and set to the the synapses array member of the respective counter_count structure. These counter_count structures are set to the counts array member of an allocated counter_device structure before the Counter is registered to the system. A counter device is registered to the system by passing the respective initialized counter_device structure to the counter_register function; similarly, the counter_unregister function unregisters the respective Counter. The devm_counter_register and devm_counter_unregister functions serve as device memory-managed versions of the counter_register and counter_unregister functions respectively. Reviewed-by: Jonathan Cameron Signed-off-by: William Breathitt Gray Signed-off-by: Greg Kroah-Hartman commit 615c4d9a50e25645646c3bafa658aedc22ab7ca9 Merge: 7fdc9fc87492 37613fa5b762 Author: Mark Brown Date: Thu Apr 25 20:27:04 2019 +0100 Merge branch 'regmap-5.2' into regmap-next commit 7fdc9fc87492a79b9c7f9dba2311c1fc2b2c6bd4 Merge: 085b7755808a 8293488205f1 Author: Mark Brown Date: Thu Apr 25 20:27:00 2019 +0100 Merge branch 'regmap-5.1' into regmap-linus commit 0b0509508beff65c1d50541861bc0d4973487dc5 Author: Todd Kjos Date: Wed Apr 24 12:31:18 2019 -0700 binder: check for overflow when alloc for security context When allocating space in the target buffer for the security context, make sure the extra_buffers_size doesn't overflow. This can only happen if the given size is invalid, but an overflow can turn it into a valid size. Fail the transaction if an overflow is detected. Signed-off-by: Todd Kjos Signed-off-by: Greg Kroah-Hartman commit ab3a9f2ccc080d27873f76869c9a780be45e581e Author: Qian Cai Date: Sat Apr 6 21:12:22 2019 -0400 acpi/hmat: fix an uninitialized memory_target The commit 665ac7e92757 ("acpi/hmat: Register processor domain to its memory") introduced an uninitialized "struct memory_target" that could cause an incorrect branching. drivers/acpi/hmat/hmat.c:385:6: warning: variable 'target' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] if (p->flags & ACPI_HMAT_MEMORY_PD_VALID) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/acpi/hmat/hmat.c:392:6: note: uninitialized use occurs here if (target && p->flags & ACPI_HMAT_PROCESSOR_PD_VALID) { ^~~~~~ drivers/acpi/hmat/hmat.c:385:2: note: remove the 'if' if its condition is always true if (p->flags & ACPI_HMAT_MEMORY_PD_VALID) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/acpi/hmat/hmat.c:369:30: note: initialize the variable 'target' to silence this warning struct memory_target *target; ^ = NULL Signed-off-by: Qian Cai Reviewed-by: Mukesh Ojha Fixes: 665ac7e92757 ("acpi/hmat: Register processor domain to its memory") Reviewed-by: Nathan Chancellor Signed-off-by: Greg Kroah-Hartman commit 57f5cf6ed8bdbbcb1abf3477beeac199dcdba316 Author: Alison Schofield Date: Wed Apr 17 11:13:10 2019 -0700 acpi/hmat: Update acpi_hmat_type enum with ACPI_HMAT_TYPE_PROXIMITY ACPI 6.3 changed the subtable "Memory Subsystem Address Range Structure" to "Memory Proximity Domain Attributes Structure". Updating and renaming of the structure was included in commit: ACPICA: ACPI 6.3: HMAT updates (9a8d961f1ef835b0d338fbe13da03cb424e87ae5) Rename the enum type to match the subtable and structure naming. Signed-off-by: Alison Schofield Acked-by: Rafael J. Wysocki Signed-off-by: Greg Kroah-Hartman commit e174e78efa6b2421f070ad9321545a87b2ebe28c Author: Qian Cai Date: Tue Apr 9 22:14:50 2019 -0400 acpi/hmat: fix memory leaks in hmat_init() The commit 665ac7e92757 ("acpi/hmat: Register processor domain to its memory") introduced some memory leaks below due to it fails to release the heap memory in an error path, and then those statically-allocated __initdata memory which reference them get freed during boot renders those heap memory as leaks. Since it is valid to pass NULL to acpi_put_table(), it is fine to call it even if acpi_get_table() returns an error. unreferenced object 0xc8ff8008349e9400 (size 128): comm "swapper/0", pid 1, jiffies 4294709236 (age 48121.476s) hex dump (first 32 bytes): 00 d0 9e 34 08 80 ff 84 d8 00 43 11 00 10 ff ff ...4......C..... 00 00 00 00 ff ff ff ff 00 00 00 00 00 00 00 00 ................ backtrace: [<00000000869d4503>] __kmalloc+0x568/0x600 [<0000000070fd6afb>] alloc_memory_target+0x50/0xd8 [<00000000efa2081e>] srat_parse_mem_affinity+0x58/0x5c [<000000008bfaef74>] acpi_parse_entries_array+0x1c8/0x2c0 [<0000000022804877>] acpi_table_parse_entries_array+0x11c/0x138 [<00000000ffe9cd34>] acpi_table_parse_entries+0x7c/0xac [<00000000a7023afd>] hmat_init+0x90/0x174 [<00000000694a86c1>] do_one_initcall+0x2d8/0x5f8 [<0000000024889da9>] do_initcall_level+0x37c/0x3fc [<000000009be02908>] do_basic_setup+0x38/0x50 [<0000000037b3ac0a>] kernel_init_freeable+0x194/0x258 [<00000000f5741184>] kernel_init+0x18/0x334 [<000000007b30f423>] ret_from_fork+0x10/0x18 [<000000006c7147a8>] 0xffffffffffffffff Signed-off-by: Qian Cai Fixes: 665ac7e92757 ("acpi/hmat: Register processor domain to its memory") Acked-by: Rafael J. Wysocki Signed-off-by: Greg Kroah-Hartman commit fb45befa7ea07399372266f09e562b26db5693c9 Author: Pierre-Louis Bossart Date: Fri Apr 19 15:12:18 2019 -0500 ASoC: Intel: bytcr_rt5651: align quirk override handling As discussed on alsa-devel, a zero value is useful to get rid of all quirks. Set default to -1 and align types as done in other machine drivers. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Hans de Goede Signed-off-by: Mark Brown commit 2fb2a19af17ac6da3c9b5c6ea4c51b7353290587 Author: Pierre-Louis Bossart Date: Fri Apr 19 15:12:17 2019 -0500 ASoC: Intel: bytcr_rt5640: align quirk override handling As discussed on alsa-devel, a zero value is useful to get rid of all quirks. Set default to -1 and align types as done in other machine drivers. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Hans de Goede Signed-off-by: Mark Brown commit 1fb1e93a1dc7c9673917a8081e144f48bde46495 Author: Pierre-Louis Bossart Date: Fri Apr 19 15:12:16 2019 -0500 ASoC: Intel: bytcht_es8316: fix compilation warning Remove warning below, align with other machine drivers. bytcht_es8316.c:508:11: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] quirk = (int)dmi_id->driver_data; ^ Fixes: a8d218f4fe811 ('ASoC: Intel: bytcht_es8316: Add quirk for the Teclast X98+ II') Signed-off-by: Pierre-Louis Bossart Reviewed-by: Hans de Goede Signed-off-by: Mark Brown commit 37613fa5b762a73073de3c2e23baa4a1da337e71 Author: Greg Kroah-Hartman Date: Thu Apr 25 20:06:18 2019 +0200 regmap: add proper SPDX identifiers on files that did not have them. There were a few files in the regmap code that did not have SPDX identifiers on them, so fix that up. At the same time, remove the "free form" text that specified the license of the file, as that is impossible for any tool to properly parse. Also, as Mark loves // comment markers, convert all of the headers to be the same to make things look consistent :) Signed-off-by: Greg Kroah-Hartman Signed-off-by: Mark Brown commit f19bd0bbd363fb97756ed83f53f48413d3e601aa Author: Chuck Lever Date: Wed Apr 24 09:40:04 2019 -0400 xprtrdma: Eliminate rpcrdma_ia::ri_device Clean up. Since commit 54cbd6b0c6b9 ("xprtrdma: Delay DMA mapping Send and Receive buffers"), a pointer to the device is now saved in each regbuf when it is DMA mapped. Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker commit c209e49ceac0ff479f79ac5cd2fbf8be80621203 Author: Chuck Lever Date: Wed Apr 24 09:39:59 2019 -0400 xprtrdma: More Send completion batching Instead of using a fixed number, allow the amount of Send completion batching to vary based on the client's maximum credit limit. - A larger default gives a small boost to IOPS throughput - Reducing it based on max_requests gives a safe result when the max credit limit is cranked down (eg. when the device has a small max_qp_wr). Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker commit dbcc53a52df256880c2ffa4ee45661419435998a Author: Chuck Lever Date: Wed Apr 24 09:39:53 2019 -0400 xprtrdma: Clean up sendctx functions Minor clean-ups I've stumbled on since sendctx was merged last year. In particular, making Send completion processing more efficient appears to have a measurable impact on IOPS throughput. Note: test_and_clear_bit() returns a value, thus an explicit memory barrier is not necessary. Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker commit 17e4c443c0b433354016df60a7bd3f1c6aac759c Author: Chuck Lever Date: Wed Apr 24 09:39:48 2019 -0400 xprtrdma: Trace marshaling failures Record an event when rpcrdma_marshal_req returns a non-zero return value to help track down why an xprt close might have occurred. Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker commit 4ba02e8d0ea5461d0e55e76c91481f1153f63365 Author: Chuck Lever Date: Wed Apr 24 09:39:42 2019 -0400 xprtrdma: Increase maximum number of backchannel requests Reflects the change introduced in commit 067c46967160 ("NFSv4.1: Bump the default callback session slot count to 16"). Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker commit 3f9c7e76934790c53a48b11c7ad54770cd3ae50d Author: Chuck Lever Date: Wed Apr 24 09:39:37 2019 -0400 xprtrdma: Backchannel can use GFP_KERNEL allocations The Receive handler runs in process context, thus can use on-demand GFP_KERNEL allocations instead of pre-allocation. This makes the xprtrdma backchannel independent of the number of backchannel session slots provisioned by the Upper Layer protocol. Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker commit d2832af38dfd1d3b135b13c6106b2c5de16a6747 Author: Chuck Lever Date: Wed Apr 24 09:39:32 2019 -0400 xprtrdma: Clean up regbuf helpers For code legibility, clean up the function names to be consistent with the pattern: "rpcrdma" _ object-type _ action Also rpcrdma_regbuf_alloc and rpcrdma_regbuf_free no longer have any callers outside of verbs.c, and can thus be made static. Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker commit 5821ba969511daf27fa917515904f7b823259cf7 Author: Kees Cook Date: Wed Apr 24 16:12:37 2019 -0700 selftests: Add test plan API to kselftest.h and adjust callers The test plan for TAP needs to be declared immediately after the header. This adds the test plan API to kselftest.h and updates all callers to declare their expected test counts. Signed-off-by: Kees Cook Signed-off-by: Shuah Khan commit f41c322f17ec4aa809222dc352439d80862c175b Author: Kees Cook Date: Wed Apr 24 16:12:36 2019 -0700 selftests: Remove KSFT_TAP_LEVEL Since sub-testing can now be detected by indentation level, this removes KSFT_TAP_LEVEL so that subtests report their TAP header for later parsing. Signed-off-by: Kees Cook Signed-off-by: Shuah Khan commit 5c069b6dedef1fab5420ca8658ed7f9ee4d26007 Author: Kees Cook Date: Wed Apr 24 16:12:35 2019 -0700 selftests: Move test output to diagnostic lines This changes the selftest output so that each test's output is prefixed with "# " as a TAP "diagnostic line". This creates a bit of a kernel-specific TAP dialect where the diagnostics precede the results. The TAP spec isn't entirely clear about this, though, so I think it's the correct solution so as to keep interactive runs making sense. If the output _followed_ the result line in the spec-suggested YAML form, each test would dump all of its output at once instead of as it went, making debugging harder. This does, however, solve the recursive TAP output problem, as sub-tests will simply be prefixed by "# ". Parsing sub-tests becomes a simple problem of just removing the first two characters of a given top-level test's diagnostic output, and parsing the results. Note that the shell construct needed to both get an exit code from the first command in a pipe and still filter the pipe (to add the "# " prefix) uses a POSIX solution rather than the bash "pipefail" option which is not supported by dash. Since some test environments may have a very minimal set of utilities available, the new prefixing code will fall back to doing line-at-a-time prefixing if perl and/or stdbuf are not available. Signed-off-by: Kees Cook Signed-off-by: Shuah Khan commit fd63b2eae5f6ff91ab60819ef083136aebb0e88b Author: Kees Cook Date: Wed Apr 24 16:12:34 2019 -0700 selftests: Distinguish between missing and non-executable If a test was missing (e.g. wrong architecture, etc), the test runner would incorrectly claim the test was non-executable. This adds an existence check to report correctly. Signed-off-by: Kees Cook Signed-off-by: Shuah Khan commit b0df366bbd701c45e93af0dcb87ce22398589d1d Author: Kees Cook Date: Wed Apr 24 16:12:33 2019 -0700 selftests: Add plan line and fix result line syntax The TAP version 13 spec requires a "plan" line, which has been missing. Since we always know how many tests we're going to run, emit the count on the plan line. This also fixes the result lines to remove the "1.." prefix which is against spec, and to mark skips with the correct "# SKIP" suffix. Signed-off-by: Kees Cook Signed-off-by: Shuah Khan commit bf66078235ca27062f5924ed6901f40becc4a1a4 Author: Kees Cook Date: Wed Apr 24 16:12:32 2019 -0700 selftests: Extract logic for multiple test runs This moves the logic for running multiple tests into a single "run_many" function of runner.sh. Both "run_tests" and "emit_tests" are modified to use it. Summary handling is now controlled by the "per_test_logging" shell flag. Signed-off-by: Kees Cook Signed-off-by: Shuah Khan commit d4e59a536f505c6760ba0187e451daa62a2df703 Author: Kees Cook Date: Wed Apr 24 16:12:31 2019 -0700 selftests: Use runner.sh for emit targets This reuses the new runner.sh for the emit targets instead of manually running each test via run_kselftest.sh. Signed-off-by: Kees Cook Signed-off-by: Shuah Khan commit 42d46e57ec9718c1090e43db75f433d0841af525 Author: Kees Cook Date: Wed Apr 24 16:12:30 2019 -0700 selftests: Extract single-test shell logic from lib.mk In order to improve the reusability of the kselftest test running logic, this extracts the single-test logic from lib.mk into kselftest/runner.sh which lib.mk can call directly. No changes in output. As part of the change, this moves the "summary" Makefile logic around to set a new "logfile" output. This will be used again in the future "emit_tests" target as well. Signed-off-by: Kees Cook Signed-off-by: Shuah Khan commit 734008e714d8c757613c43ff57c1bf7ef1bb5b5d Author: Axel Lin Date: Mon Apr 22 13:35:31 2019 +0800 regulator: max77620: Fix regulator info setting for max20024 Current code always set pmic->rinfo[id] = &max77620_regs_info[id]; It should set to either max77620_regs_info or max20024_regs_info depends on the chip_id. Signed-off-by: Axel Lin Reviewed-by: Dmitry Osipenko Tested-by: Dmitry Osipenko Signed-off-by: Mark Brown commit 78927aa40bc82f32de07323ddc1c9de07ac68180 Author: Linus Walleij Date: Sat Apr 20 13:34:30 2019 +0200 regulator: core: Actually put the gpiod after use I went to great lengths to hand over the management of the GPIO descriptors to the regulator core, and some stray rebased oneliner in the old patch must have been assuming the devices were still doing devres management of it. We handed the management over to the regulator core, so of course the regulator core shall issue gpiod_put() when done. Sorry for the descriptor leak. Fixes: 541d052d7215 ("regulator: core: Only support passing enable GPIO descriptors") Signed-off-by: Linus Walleij Signed-off-by: Mark Brown commit 0f665ceb71a20520bdce76fb63ad68c21841aa62 Author: Chuck Lever Date: Wed Apr 24 09:39:27 2019 -0400 xprtrdma: De-duplicate "allocate new, free old regbuf" Clean up by providing an API to do this common task. At this point, the difference between rpcrdma_get_sendbuf and rpcrdma_get_recvbuf has become tiny. These can be collapsed into a single helper. Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker commit bb93a1ae2bf4f6eb3cedf05a2ea4a2e6a80712e6 Author: Chuck Lever Date: Wed Apr 24 09:39:21 2019 -0400 xprtrdma: Allocate req's regbufs at xprt create time Allocating an rpcrdma_req's regbufs at xprt create time enables a pair of micro-optimizations: First, if these regbufs are always there, we can eliminate two conditional branches from the hot xprt_rdma_allocate path. Second, by allocating a 1KB buffer, it places a lower bound on the size of these buffers, without adding yet another conditional branch. The lower bound reduces the number of hardway re- allocations. In fact, for some workloads it completely eliminates hardway allocations. Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker commit 8cec3dba76a4d9d7da4a7219663b8c4333f14522 Author: Chuck Lever Date: Wed Apr 24 09:39:16 2019 -0400 xprtrdma: rpcrdma_regbuf alignment Allocate the struct rpcrdma_regbuf separately from the I/O buffer to better guarantee the alignment of the I/O buffer and eliminate the wasted space between the rpcrdma_regbuf metadata and the buffer itself. Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker commit 23146500b32fbee7eaa57c5002fcd64e5d9b32ca Author: Chuck Lever Date: Wed Apr 24 09:39:11 2019 -0400 xprtrdma: Clean up rpcrdma_create_rep() and rpcrdma_destroy_rep() For code legibility, clean up the function names to be consistent with the pattern: "rpcrdma" _ object-type _ action Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker commit 1769e6a816dff50d960271eb780e0a40b739b256 Author: Chuck Lever Date: Wed Apr 24 09:39:05 2019 -0400 xprtrdma: Clean up rpcrdma_create_req() Eventually, I'd like to invoke rpcrdma_create_req() during the call_reserve step. Memory allocation there probably needs to use GFP_NOIO. Therefore a set of GFP flags needs to be passed in. As an additional clean up, just return a pointer or NULL, because the only error return code here is -ENOMEM. Lastly, clean up the function names to be consistent with the pattern: "rpcrdma" _ object-type _ action Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker commit b2ca473b920dfbaad7c4f9eb5043258ef71f321f Author: Chuck Lever Date: Wed Apr 24 09:39:00 2019 -0400 xprtrdma: Fix an frwr_map recovery nit After a DMA map failure in frwr_map, mark the MR so that recycling won't attempt to DMA unmap it. Signed-off-by: Chuck Lever Fixes: e2f34e26710b ("xprtrdma: Yet another double DMA-unmap") Signed-off-by: Anna Schumaker commit 52db6f9a0cd8f6d433a0687aae4f21f209352510 Author: Chuck Lever Date: Wed Apr 24 09:38:55 2019 -0400 SUNRPC: Avoid digging into the ATOMIC pool Page allocation requests made when the SPARSE_PAGES flag is set are allowed to fail, and are not critical. No need to spend a rare resource. Signed-off-by: Chuck Lever Signed-off-by: Anna Schumaker commit 6eb4f08293e971cb1b7b867c7fe994c244b91460 Author: Jacob Pan Date: Thu Apr 25 10:27:52 2019 -0700 x86/apic: Unify duplicated local apic timer clockevent initialization Local APIC timer clockevent parameters can be calculated based on platform specific methods. However the code is mostly duplicated with the interrupt based calibration. The commit which increased the max_delta parameter updated only one place and made the implementations diverge. Unify it to prevent further damage. [ tglx: Rename function to lapic_init_clockevent() and adjust changelog a bit ] Fixes: 4aed89d6b515 ("x86, lapic-timer: Increase the max_delta to 31 bits") Reported-by: Daniel Drake Signed-off-by: Jacob Pan Signed-off-by: Thomas Gleixner Cc: Len Brown Link: https://lkml.kernel.org/r/1556213272-63568-1-git-send-email-jacob.jun.pan@linux.intel.com commit 812ad463e0894d78e93ab8017e0edbe69038c55c Author: Daniel Baluta Date: Sun Apr 21 19:39:09 2019 +0000 ASoC: fsl_sai: Add support for runtime pm Basically the same actions as for system PM, so make use of pm_runtime_force_suspend/pm_runtime_force_resume. Signed-off-by: Shengjiu Wang Signed-off-by: Daniel Baluta Acked-by: Nicolin Chen Signed-off-by: Mark Brown commit ddb351145a967ee791a0fb0156852ec2fcb746ba Author: Daniel Baluta Date: Sun Apr 21 19:39:08 2019 +0000 ASoC: fsl_sai: Update is_slave_mode with correct value is_slave_mode defaults to false because sai structure that contains it is kzalloc'ed. Anyhow, if we decide to set the following configuration SAI slave -> SAI master, is_slave_mode will remain set on true although SAI being master it should be set to false. Fix this by updating is_slave_mode for each call of fsl_sai_set_dai_fmt. Signed-off-by: Daniel Baluta Acked-by: Nicolin Chen Signed-off-by: Mark Brown commit 6b903f9bdd98093a2c1ea79df07e86decfda3b04 Author: Paul Cercueil Date: Sat Apr 20 12:45:51 2019 +0200 ASoC: doc: simple-card: Add pin-switches property The simple-audio-card,pin-switches property can contain the list of widget names for which pin switches must be created. Signed-off-by: Paul Cercueil Signed-off-by: Mark Brown commit 936289f0476bed97df55846f8fc671c837e4e58c Author: Gabriel Fernandez Date: Fri Apr 5 09:53:31 2019 +0200 clk: stm32: Introduce clocks of STM32F769 board STM32F769 clocks are derived from STM32746 clocks. main differences are: - new source clock for SAI1 and SAI2 (HSI or HSE) - Add DFSDM & DSI clocks Signed-off-by: Gabriel Fernandez Signed-off-by: Stephen Boyd commit d7bff893e04f4e7b4a0789486da1435df5920f5a Author: Baolin Wang Date: Tue Apr 23 10:26:22 2019 +0800 ASoC: sprd: Add Spreadtrum multi-channel data transfer support On Spreadtrum platform, the audio subsystem will use the multi-channel data transfer controller to transfer sound stream between audio subsystem and other AP/CP subsystem. It can support 10 DAC channel and 10 ADC channel, and each channel has 512 bytes depth data fifo. Moreover each channel can be used DMA mode or interrupt mode to transfer data. Signed-off-by: Baolin Wang Signed-off-by: Mark Brown commit c634d3ffc6b2c3b15ea79ffe0a761ce08b4da71a Author: Baolin Wang Date: Tue Apr 23 10:26:21 2019 +0800 dt-bindings: ASoC: Add Spreadtrum multi-channel data transfer support On Spreadtrum platform, the audio subsystem will use the multi-channel data transfer controller to transfer sound stream between audio subsystem and other AP/CP subsystem. It can support 10 DAC channel and 10 ADC channel, and each channel has 512 bytes depth data fifo. Moreover each channel can be used DMA mode or interrupt mode to transfer data. Signed-off-by: Baolin Wang Signed-off-by: Mark Brown commit 5c16ffa795b7bcdbd73d5983482c5c0fe5566c06 Author: Alexandre Belloni Date: Tue Feb 19 18:01:56 2019 +0100 clk: at91: sckc: handle different RC startup time The sama5d3 slow RC oscillator as a different startup time than all the previous SoCs. Handle that using its own compatible. Signed-off-by: Alexandre Belloni Signed-off-by: Stephen Boyd commit 45b5ec8498ffc6bf860bfcc19478482d19fa6379 Author: Alexandre Belloni Date: Tue Feb 19 18:01:55 2019 +0100 clk: at91: modernize sckc binding Remove the need for child nodes in the sckc binding and register the whole sckc tree (3 clocks in total) from the sckc node. DT backward compatibility is kept by looking for properties in child nodes when they are not present in the sckc node. Signed-off-by: Alexandre Belloni Signed-off-by: Stephen Boyd commit c46ab1510de1d3dd9871ae36fbec0da3e0d2d6c5 Author: Xun Zhang Date: Fri Apr 19 15:53:49 2019 -0500 ASoC: codecs: rt5682: initialize mutex before using In rt5682 codec driver, a mutex called "calibrate_mutex" is used in rt5682_calibrate() before initialization, which causes warning in lock debug. Move the initialization before the usage of mutex. Signed-off-by: Xun Zhang Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 0bbf4084e0cfbbbff8673f3b9867778d5d4b1d6f Author: Fabien Dessenne Date: Wed Apr 24 17:28:44 2019 +0200 ASoC: stm32: i2s: return the get_irq error During probe, return the "get_irq" error value instead of -ENOENT. This allows the driver to be deferred probed if needed. Signed-off-by: Fabien Dessenne Signed-off-by: Mark Brown commit 42614b5bd9549747af5c5dbef59397b0423f1101 Author: Yogesh Gaur Date: Thu Apr 25 09:47:48 2019 +0000 clk: qoriq: increase array size of cmux_to_group Increase size of cmux_to_group array, to accomdate entry of -1 termination. Added -1, terminated, entry for 4080_cmux_grpX. Signed-off-by: Yogesh Gaur Signed-off-by: Vabhav Sharma Acked-by: Scott Wood Signed-off-by: Stephen Boyd commit cc40f6404d28d1de4a09064aeff185a391c51c35 Author: Alexandre Belloni Date: Tue Feb 19 18:01:54 2019 +0100 dt-bindings: clock: at91: new sckc bindings Remove the need for child nodes in the sckc binding to be able to remove dtc warnings and have a more modern binding. Also document optional properties. Cc: Rob Herring Reviewed-by: Rob Herring Signed-off-by: Alexandre Belloni Signed-off-by: Stephen Boyd commit 66287def435315d9d8de740da4c543e37630b897 Author: Kuninori Morimoto Date: Thu Apr 25 15:16:58 2019 +0900 ASoC: rsnd: fixup 6ch settings to 8ch rsnd need to use 8ch clock settings for 6ch for TDM. Otherwise, it can't work correctly. This patch fixup it. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown commit 008aa5fd119f00c76162de78a0bcd414af7c9fd4 Author: Yuantian Tang Date: Wed Apr 24 10:28:47 2019 +0800 dt-bindings: qoriq-clock: Add ls1028a chip compatible string Add ls1028a chip compatible string in binding document. Signed-off-by: Yuantian Tang Signed-off-by: Stephen Boyd commit 95089f6a9e7acf97496e4c5321b5003a4d7295c1 Author: Yuantian Tang Date: Wed Apr 24 09:19:12 2019 +0800 clk: qoriq: Add ls1028a clock configuration Enable clock driver by adding clock configuration for ls1028a chip. Signed-off-by: Yuantian Tang Signed-off-by: Stephen Boyd commit cc61ab9ba2da6587d2b8acfa9d3cf3900456d3b6 Author: Yuantian Tang Date: Mon Apr 22 17:15:09 2019 +0800 clk: qoriq: add more PLL divider clocks support More PLL divider clocks are needed by clock consumer IP. So enlarge the PLL divider array to accommodate more divider clocks. Signed-off-by: Yuantian Tang Signed-off-by: Stephen Boyd commit f34b2c26fc7d120b26cb181b8d4115675ec58244 Author: Yuantian Tang Date: Mon Apr 22 17:15:08 2019 +0800 dt-bindings: qoriq-clock: add more PLL divider clocks support More PLL divider clocks are needed by clock consumer IP. So update the PLL divider description to make it more general. Signed-off-by: Yuantian Tang Signed-off-by: Stephen Boyd commit ce96e888fe48ecfa868c9a39adc03292c78a80ff Author: Xiaoli Feng Date: Sat Mar 16 09:43:30 2019 +0800 Fix nfs4.2 return -EINVAL when do dedupe operation dedupe_file_range operations is combiled into remap_file_range. But in nfs42_remap_file_range, it's skiped for dedupe operations. Before this patch: # dd if=/dev/zero of=nfs/file bs=1M count=1 # xfs_io -c "dedupe nfs/file 4k 64k 4k" nfs/file XFS_IOC_FILE_EXTENT_SAME: Invalid argument After this patch: # dd if=/dev/zero of=nfs/file bs=1M count=1 # xfs_io -c "dedupe nfs/file 4k 64k 4k" nfs/file deduped 4096/4096 bytes at offset 65536 4 KiB, 1 ops; 0.0046 sec (865.988 KiB/sec and 216.4971 ops/sec) Signed-off-by: Xiaoli Feng Signed-off-by: Anna Schumaker commit c79d183ebb76311ed434bd558279769551d02d5a Author: Trond Myklebust Date: Sun Apr 7 13:59:12 2019 -0400 NFS: Remove redundant open context from nfs_page The lock context already references and tracks the open context, so take the opportunity to save some space in struct nfs_page. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 9fcd5960e88bbdc74a70d9e3a5ab46b489fc4b80 Author: Trond Myklebust Date: Sun Apr 7 13:59:11 2019 -0400 NFS: Add a helper to return a pointer to the open context of a struct nfs_page Add a helper for when we remove the explicit pointer to the open context. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 154945112dac10b7109d816275f3e4896b0b064e Author: Trond Myklebust Date: Sun Apr 7 13:59:10 2019 -0400 NFS: Ensure that all nfs lock contexts have a valid open context Force the lock context to keep a reference to the parent open context so that we can guarantee the validity of the latter. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 0688e64bc60038971253485d92bc3d6c816f915d Author: Trond Myklebust Date: Sun Apr 7 13:59:09 2019 -0400 NFS: Allow signal interruption of NFS4ERR_DELAYed operations If the server is unable to immediately execute an RPC call, and returns an NFS4ERR_DELAY then we can assume it is safe to interrupt the operation in order to handle ordinary signals. This allows the application to service timer interrupts that would otherwise have to wait until the server is again able to respond. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 33344e0f7eaa2efbf9fcc55557d02e8603aa7012 Author: Trond Myklebust Date: Sun Apr 7 13:59:08 2019 -0400 pNFS: Add tracking to limit the number of pNFS retries When the client is reading or writing using pNFS, and hits an error on the DS, then it typically sends a LAYOUTERROR and/or LAYOUTRETURN to the MDS, before redirtying the failed pages, and going for a new round of reads/writebacks. The problem is that if the server has no way to fix the DS, then we may need a way to interrupt this loop after a set number of attempts have been made. This patch adds an optional module parameter that allows the admin to specify how many times to retry the read/writeback process before failing with a fatal error. The default behaviour is to retry forever. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 28b1d3f5a772b705ca76df620eb9f686aa2d0b4c Author: Trond Myklebust Date: Sun Apr 7 13:59:07 2019 -0400 NFS: Remove unused argument from nfs_create_request() All the callers of nfs_create_request() are now creating page group heads, so we can remove the redundant 'last' page argument. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit c917cfaf9bbef44dd35b75b8fb772a44798a1cf2 Author: Trond Myklebust Date: Sun Apr 7 13:59:06 2019 -0400 NFS: Fix up NFS I/O subrequest creation We require all NFS I/O subrequests to duplicate the lock context as well as the open context. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 6fbda89b257f25694bf4892ddbbaa472f581533b Author: Trond Myklebust Date: Sun Apr 7 13:59:05 2019 -0400 NFS: Replace custom error reporting mechanism with generic one Replace the NFS custom error reporting mechanism with the generic mapping_set_error(). Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit aded8d7b54f250af6deb72fde475291cfba513d1 Author: Trond Myklebust Date: Sun Apr 7 13:59:04 2019 -0400 NFS: Don't inadvertently clear writeback errors vfs_fsync() has the side effect of clearing unreported writeback errors, so we need to make sure that we do not abuse it in situations where applications might not normally expect us to report those errors. The solution is to replace calls to vfs_fsync() with calls to nfs_wb_all(). Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 22876f540bdf19af9e4fca893ce02ba7ee65ebcc Author: Trond Myklebust Date: Sun Apr 7 13:59:03 2019 -0400 NFS: Don't call generic_error_remove_page() while holding locks The NFS read code can trigger writeback while holding the page lock. If an error then triggers a call to nfs_write_error_remove_page(), we can deadlock. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 14bebe3c90b326d2a0df78aed5e9de090c71d878 Author: Trond Myklebust Date: Sun Apr 7 13:59:02 2019 -0400 NFS: Don't interrupt file writeout due to fatal errors When flushing out dirty pages, the fact that we may hit fatal errors is not a reason to stop writeback. Those errors are reported through fsync(), not through the flush mechanism. Fixes: a6598813a4c5b ("NFS: Don't write back further requests if there...") Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 91a575e1a98451d12df713f267a9a210a9e5dcf9 Author: Trond Myklebust Date: Sun Apr 7 13:59:01 2019 -0400 NFS: Add a mount option "softerr" to allow clients to see ETIMEDOUT errors Add a mount option that exposes the ETIMEDOUT errors that occur during soft timeouts to the application. This allows aware applications to distinguish between server disk IO errors and client timeout errors. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 7b1355b615c67e8fcbfb508e6baee83aed9dee96 Author: Trond Myklebust Date: Sun Apr 7 13:59:00 2019 -0400 NFS: Move internal constants out of uapi/linux/nfs_mount.h When the label says "for internal use only", then it doesn't belong in the 'uapi' subtree. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 11982a7c0f654ededc776bc81d8a0c51d3ee8d1c Author: Trond Myklebust Date: Sun Apr 7 13:58:59 2019 -0400 NFS: Consider ETIMEDOUT to be a fatal error When we introduce the 'softerr' mount option, we will see the RPC layer returning ETIMEDOUT errors if the server is unresponsive. We want to consider those errors to be fatal on par with the EIO errors that are returned by ordinary 'soft' timeouts.. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit ae6ec918474597a13a2648c54b6f12fb8cf0a55e Author: Trond Myklebust Date: Sun Apr 7 13:58:58 2019 -0400 SUNRPC: Add the 'softerr' rpc_client flag Add the 'softerr' rpc client flag that sets the RPC_TASK_TIMEOUT flag on all new rpc tasks that are attached to that rpc client. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 0729d995f2a2726598642d552ebe916b43aef73d Author: Trond Myklebust Date: Sun Apr 7 13:58:57 2019 -0400 SUNRPC: Ensure to ratelimit the "server not responding" syslog messages In particular, the timeout messages can be very noisy, so we ought to ratelimit them in order to avoid spamming the syslog. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit da953063bdce465d941751d981e8d3ac5e92906c Author: Trond Myklebust Date: Sun Apr 7 13:58:56 2019 -0400 SUNRPC: Start the first major timeout calculation at task creation When calculating the major timeout for a new task, when we know that the connection has been broken, use the task->tk_start to ensure that we also take into account the time spent waiting for a slot or session slot. This ensures that we fail over soft requests relatively quickly once the connection has actually been broken, and the first requests have started to fail. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit e4ec48d3cc6139f4c1a934ff25d440cd4d50279f Author: Trond Myklebust Date: Sun Apr 7 13:58:55 2019 -0400 SUNRPC: Make "no retrans timeout" soft tasks behave like softconn for timeouts If a soft NFSv4 request is sent, then we don't need it to time out unless the connection breaks. The reason is that as long as the connection is unbroken, the protocol states that the server is not allowed to drop the request. IOW: as long as the connection remains unbroken, the client may assume that all transmitted RPC requests are being processed by the server, and that retransmissions and timeouts of those requests are unwarranted. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 5ad64b36dda962797ce3ed579a27189ec7482d0d Author: Trond Myklebust Date: Sun Apr 7 13:58:54 2019 -0400 SUNRPC: Add tracking of RPC level errors Add variables to track RPC level errors so that we can distinguish between issue that arose in the RPC transport layer as opposed to those arising from the reply message. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 9e910bff74be819aad751e82270682f3c405d199 Author: Trond Myklebust Date: Sun Apr 7 13:58:53 2019 -0400 SUNRPC: Ensure that the transport layer respect major timeouts Ensure that when in the transport layer, we don't sleep past a major timeout. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 431235818bc3a919ca7487500c67c3144feece80 Author: Trond Myklebust Date: Sun Apr 7 13:58:52 2019 -0400 SUNRPC: Declare RPC timers as TIMER_DEFERRABLE Don't wake idle CPUs only for the purpose of servicing an RPC queue timeout. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 24a9d9a21e568f494198eea2bb864e0b6c593051 Author: Trond Myklebust Date: Sun Apr 7 13:58:51 2019 -0400 SUNRPC: Simplify queue timeouts using timer_reduce() Simplify the setting of queue timeouts by using the timer_reduce() function. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 5efd1876e61fe61b61e2d056782027c11bcd0982 Author: Trond Myklebust Date: Sun Apr 7 13:58:50 2019 -0400 SUNRPC: Fix up tracking of timeouts Add a helper to ensure that debugfs and friends print out the correct current task timeout value. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 6b2e6856275d7b8d0acbf06d2e8da72e1a6bc857 Author: Trond Myklebust Date: Sun Apr 7 13:58:49 2019 -0400 SUNRPC: Add function rpc_sleep_on_timeout() Clean up the RPC task sleep interfaces by replacing the task->tk_timeout 'hidden parameter' to rpc_sleep_on() with a new function that takes an absolute timeout. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 8357a9b60fe7500699a9dec540ca1c48df3cb455 Author: Trond Myklebust Date: Sun Apr 7 13:58:48 2019 -0400 SUNRPC: Remove unused argument 'action' from rpc_sleep_on_priority() None of the callers set the 'action' argument, so let's just remove it. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 87150aaed9e55d8b18a94aa2589aa4331429fce8 Author: Trond Myklebust Date: Sun Apr 7 13:58:47 2019 -0400 SUNRPC: Refactor rpc_sleep_on() rpc_sleep_on() does not need to set the task->tk_callback under the queue lock, so move that out. Also refactor the check for whether the task is active. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 8ba6a92d0182091e0c2fa15c1a5b5458bac25fc3 Author: Trond Myklebust Date: Sun Apr 7 13:58:46 2019 -0400 SUNRPC: Refactor xprt_request_wait_receive() Convert the transport callback to actually put the request to sleep instead of just setting a timeout. This is in preparation for rpc_sleep_on_timeout(). Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 9e6fa0bb84beeff4dddb17d7c23e35135fe977c5 Author: Trond Myklebust Date: Sun Apr 7 13:58:45 2019 -0400 SUNRPC: Refactor rpc_restart_call/rpc_restart_call_prepare Clean up. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit ae67bd3821bb0a54d97e7883d211196637d487a9 Author: Trond Myklebust Date: Sun Apr 7 13:58:44 2019 -0400 SUNRPC: Fix up task signalling The RPC_TASK_KILLED flag should really not be set from another context because it can clobber data in the struct task when task->tk_flags is changed non-atomically. Let's therefore swap out RPC_TASK_KILLED with an atomic flag, and add a function to set that flag and safely wake up the task. Signed-off-by: Trond Myklebust Signed-off-by: Anna Schumaker commit 0a790fe4389d88253563c5e22bea47e6d357b525 Author: Gabriel Krisman Bertazi Date: Thu Apr 25 14:13:27 2019 -0400 docs: ext4.rst: document case-insensitive directories Introduces the case-insensitive features on ext4 for system administrators. Explain the minimum of design decisions that are important for sysadmins wanting to enable this feature. Signed-off-by: Gabriel Krisman Bertazi Signed-off-by: Theodore Ts'o commit b886ee3e778ec2ad43e276fd378ab492cf6819b7 Author: Gabriel Krisman Bertazi Date: Thu Apr 25 14:12:08 2019 -0400 ext4: Support case-insensitive file name lookups This patch implements the actual support for case-insensitive file name lookups in ext4, based on the feature bit and the encoding stored in the superblock. A filesystem that has the casefold feature set is able to configure directories with the +F (EXT4_CASEFOLD_FL) attribute, enabling lookups to succeed in that directory in a case-insensitive fashion, i.e: match a directory entry even if the name used by userspace is not a byte per byte match with the disk name, but is an equivalent case-insensitive version of the Unicode string. This operation is called a case-insensitive file name lookup. The feature is configured as an inode attribute applied to directories and inherited by its children. This attribute can only be enabled on empty directories for filesystems that support the encoding feature, thus preventing collision of file names that only differ by case. * dcache handling: For a +F directory, Ext4 only stores the first equivalent name dentry used in the dcache. This is done to prevent unintentional duplication of dentries in the dcache, while also allowing the VFS code to quickly find the right entry in the cache despite which equivalent string was used in a previous lookup, without having to resort to ->lookup(). d_hash() of casefolded directories is implemented as the hash of the casefolded string, such that we always have a well-known bucket for all the equivalencies of the same string. d_compare() uses the utf8_strncasecmp() infrastructure, which handles the comparison of equivalent, same case, names as well. For now, negative lookups are not inserted in the dcache, since they would need to be invalidated anyway, because we can't trust missing file dentries. This is bad for performance but requires some leveraging of the vfs layer to fix. We can live without that for now, and so does everyone else. * on-disk data: Despite using a specific version of the name as the internal representation within the dcache, the name stored and fetched from the disk is a byte-per-byte match with what the user requested, making this implementation 'name-preserving'. i.e. no actual information is lost when writing to storage. DX is supported by modifying the hashes used in +F directories to make them case/encoding-aware. The new disk hashes are calculated as the hash of the full casefolded string, instead of the string directly. This allows us to efficiently search for file names in the htree without requiring the user to provide an exact name. * Dealing with invalid sequences: By default, when a invalid UTF-8 sequence is identified, ext4 will treat it as an opaque byte sequence, ignoring the encoding and reverting to the old behavior for that unique file. This means that case-insensitive file name lookup will not work only for that file. An optional bit can be set in the superblock telling the filesystem code and userspace tools to enforce the encoding. When that optional bit is set, any attempt to create a file name using an invalid UTF-8 sequence will fail and return an error to userspace. * Normalization algorithm: The UTF-8 algorithms used to compare strings in ext4 is implemented lives in fs/unicode, and is based on a previous version developed by SGI. It implements the Canonical decomposition (NFD) algorithm described by the Unicode specification 12.1, or higher, combined with the elimination of ignorable code points (NFDi) and full case-folding (CF) as documented in fs/unicode/utf8_norm.c. NFD seems to be the best normalization method for EXT4 because: - It has a lower cost than NFC/NFKC (which requires decomposing to NFD as an intermediary step) - It doesn't eliminate important semantic meaning like compatibility decompositions. Although: - This implementation is not completely linguistic accurate, because different languages have conflicting rules, which would require the specialization of the filesystem to a given locale, which brings all sorts of problems for removable media and for users who use more than one language. Signed-off-by: Gabriel Krisman Bertazi Signed-off-by: Theodore Ts'o commit 7a64f3f1cffdc3db2e9de885bc49a6a9851aac62 Author: Guo Ren Date: Tue Apr 2 16:02:33 2019 +0800 riscv/signal: Fixup additional syscall restarting The function of do_notify_resume called by entry.S could be entered in loop when SIGPENDING was setted again before sret. So we must add prevent code to make syscall restart (regs->sepc -= 0x4) or it may re-execute unexpected instructions. Just like in_syscall & forget_syscall used by arm. Signed-off-by: Guo Ren Reviewed-by: Christoph Hellwig Signed-off-by: Palmer Dabbelt commit c83ad55eaa91c8e85dd8cc3b7b3485fac45ef7bf Author: Gabriel Krisman Bertazi Date: Thu Apr 25 14:05:42 2019 -0400 ext4: include charset encoding information in the superblock Support for encoding is considered an incompatible feature, since it has potential to create collisions of file names in existing filesystems. If the feature flag is not enabled, the entire filesystem will operate on opaque byte sequences, respecting the original behavior. The s_encoding field stores a magic number indicating the encoding format and version used globally by file and directory names in the filesystem. The s_encoding_flags defines policies for using the charset encoding, like how to handle invalid sequences. The magic number is mapped to the exact charset table, but the mapping is specific to ext4. Since we don't have any commitment to support old encodings, the only encoding I am supporting right now is utf8-12.1.0. The current implementation prevents the user from enabling encoding and per-directory encryption on the same filesystem at the same time. The incompatibility between these features lies in how we do efficient directory searches when we cannot be sure the encryption of the user provided fname will match the actual hash stored in the disk without decrypting every directory entry, because of normalization cases. My quickest solution is to simply block the concurrent use of these features for now, and enable it later, once we have a better solution. Signed-off-by: Gabriel Krisman Bertazi Signed-off-by: Theodore Ts'o commit e765b4abb2215b88f227e3bed7757474b6e77402 Author: Gabriel Krisman Bertazi Date: Thu Apr 25 13:59:56 2019 -0400 MAINTAINERS: add Unicode subsystem entry Signed-off-by: Gabriel Krisman Bertazi Signed-off-by: Theodore Ts'o commit 1215d239e791c54a3abb135553d32c9b91ae96ef Author: Gabriel Krisman Bertazi Date: Thu Apr 25 13:59:17 2019 -0400 unicode: update unicode database unicode version 12.1.0 Regenerate utf8data.h based on the latest UCD files and run tests against the latest version. Signed-off-by: Gabriel Krisman Bertazi Signed-off-by: Theodore Ts'o commit f0d6cc00325b3887f9a9df7755acf85f52b23ff2 Author: Gabriel Krisman Bertazi Date: Thu Apr 25 13:56:01 2019 -0400 unicode: introduce test module for normalized utf8 implementation This implements a in-kernel sanity test module for the utf8 normalization core. At probe time, it will run basic sequences through the utf8n core, to identify problems will equivalent sequences and normalization/casefold code. This is supposed to be useful for regression testing when adding support for a new version of utf8 to linux. Signed-off-by: Gabriel Krisman Bertazi Signed-off-by: Theodore Ts'o commit d2f4a83fe3f7fcc2a8a10a39e367c5d1c6670327 Author: Fuqian Huang Date: Sun Apr 21 19:47:48 2019 +0800 misc: genwqe: Fix misuse of %x The pointer should be printed with %p or %px rather than cast to long long type and printed with %016llx. Change %x to %p to print the pointer. Signed-off-by: Fuqian Huang Signed-off-by: Greg Kroah-Hartman commit 869decd1ff197c3083cb8b58f7dcac201038c381 Author: Tero Kristo Date: Thu Apr 4 11:11:05 2019 +0300 clk: ti: dra7: disable the RNG and TIMER12 clkctrl clocks on HS devices RNG and TIMER12 are reserved for secure side usage only on HS devices, so disable their clkctrl clocks on HS SoCs also. Signed-off-by: Tero Kristo Tested-by: Andrew F. Davis Signed-off-by: Stephen Boyd commit 2b1202d708fd3117bca6bad8770353f389ee0f08 Author: Tero Kristo Date: Thu Apr 4 11:11:04 2019 +0300 clk: ti: dra7x: prevent non-existing clkctrl clocks from registering Certain clkctrl clocks (like the USB_OTG_SS4) do not exist on some variants of the dra7x SoC. Append a flag for these clocks and skip the registration in cases where the clocks do not exist. Reported-by: Peter Ujfalusi Signed-off-by: Tero Kristo Signed-off-by: Stephen Boyd commit 9d53690f0d4e5686e80f034ea584b7a822b356d3 Author: Gabriel Krisman Bertazi Date: Thu Apr 25 13:51:22 2019 -0400 unicode: implement higher level API for string handling This patch integrates the utf8n patches with some higher level API to perform UTF-8 string comparison, normalization and casefolding operations. Implemented is a variation of NFD, and casefold is performed by doing full casefold on top of NFD. These algorithms are based on the core implemented by Olaf Weber from SGI. Signed-off-by: Gabriel Krisman Bertazi Signed-off-by: Theodore Ts'o commit a348f05361c968cf4a54b6a4f3aeb6f9a271956a Author: Tero Kristo Date: Thu Apr 4 11:11:03 2019 +0300 ARM: omap2+: hwmod: drop CLK_IS_BASIC flag usage CLK_IS_BASIC flag is about to get deprecated, and as such, can't be used. Instead, the API call for checking whether a clock is of type hw_omap shall be used, so convert the code to use this. Signed-off-by: Tero Kristo Acked-by: Tony Lindgren Signed-off-by: Stephen Boyd commit b88b5b7182b07ebdc1ab692b4fc6a10abfff208d Author: Tero Kristo Date: Thu Apr 4 11:11:02 2019 +0300 clk: ti: export the omap2_clk_is_hw_omap call There is one instance outside the TI clock driver that needs the info whether a clock is an OMAP HW clock or not. Thus, move the function declaration into the public header. Signed-off-by: Tero Kristo Signed-off-by: Stephen Boyd commit cf7eb03333bb0c2d46b950bbde1a9ba8d7efbd06 Merge: ba2e544075c2 00053de52231 Author: Greg Kroah-Hartman Date: Thu Apr 25 19:50:22 2019 +0200 Merge tag 'extcon-next-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon into char-misc-next Chanwoo writes: Update extcon for v5.2 Detailed description for this pull request: 1. Add new extcon-intel-mrfld.c extcon provider driver - On Intel Merrifield the Basin Cove PMIC provides a feature to detect the USB connection type. This driver utilizes the feature in order to support the USB dual role detection. 2. Update the extcon provider drivers - For extcon-intel-cht-wc.c, make charger detection co-existed with OTG host mode and enable external charger. - For intel extcon driver, add common header file (extcon-intel.h) in order to remove the duplicate definitions. - For extcon-arizonal.c, disable microphone detection on driver removal. 3. - Edit comment of extcon_unregister_notifer() to fix a build warning - Add CONFIG_ACPI dependency to Kconfig to fix a build error for extcon-axp.c * tag 'extcon-next-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/chanwoo/extcon: extcon: arizona: Disable mic detect if running when driver is removed extcon: axp288: Add a depends on ACPI to the Kconfig entry extcon: mrfld: Introduce extcon driver for Basin Cove PMIC extcon: intel: Split out some definitions to a common header extcon: Fix build warning for extcon_unregister_notifier comment extcon: intel-cht-wc: Enable external charger extcon: intel-cht-wc: Make charger detection co-existed with OTG host mode commit a8384c68797ee022f5fd7bcef5f4cc57863d4042 Author: Olaf Weber Date: Thu Apr 25 13:49:18 2019 -0400 unicode: reduce the size of utf8data[] Remove the Hangul decompositions from the utf8data trie, and do algorithmic decomposition to calculate them on the fly. To store the decomposition the caller of utf8lookup()/utf8nlookup() must provide a 12-byte buffer, which is used to synthesize a leaf with the decomposition. This significantly reduces the size of the utf8data[] array. Changes made by Gabriel: Rebase to mainline Fix checkpatch errors Extract robustness fixes and merge back to original mkutf8data.c patch Regenerate utf8data.h Signed-off-by: Olaf Weber Signed-off-by: Gabriel Krisman Bertazi Signed-off-by: Theodore Ts'o commit 7067c96ee8d2d77039aeb49670acfe160f484ef9 Author: Bartosz Golaszewski Date: Mon Apr 1 10:16:35 2019 +0200 drivers: fix a typo in the kernel doc for devm_platform_ioremap_resource() It should have been 'management' not 'managemend'. Fixes: 7945f929f1a7 ("drivers: provide devm_platform_ioremap_resource()") Signed-off-by: Bartosz Golaszewski Reviewed-by: Mukesh Ojha Reviewed-by: Rafael J. Wysocki Signed-off-by: Greg Kroah-Hartman commit ba2e544075c282a5bb21df7752efad3b42d6077b Author: Stephen Rothwell Date: Tue Apr 16 17:27:20 2019 +1000 lib/siphash.c: mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch aims to suppress up to 18 missing-break-in-switch false positives on some architectures. Cc: Gustavo A. R. Silva Cc: Kees Cook Signed-off-by: Stephen Rothwell Reviewed-by: Jason A. Donenfeld Signed-off-by: Greg Kroah-Hartman commit 44594c2fbf42528001dfb1597d26adb40ba6d178 Author: Olaf Weber Date: Thu Apr 25 13:45:46 2019 -0400 unicode: introduce code for UTF-8 normalization Supporting functions for UTF-8 normalization are in utf8norm.c with the header utf8norm.h. Two normalization forms are supported: nfdi and nfdicf. nfdi: - Apply unicode normalization form NFD. - Remove any Default_Ignorable_Code_Point. nfdicf: - Apply unicode normalization form NFD. - Remove any Default_Ignorable_Code_Point. - Apply a full casefold (C + F). For the purposes of the code, a string is valid UTF-8 if: - The values encoded are 0x1..0x10FFFF. - The surrogate codepoints 0xD800..0xDFFFF are not encoded. - The shortest possible encoding is used for all values. The supporting functions work on null-terminated strings (utf8 prefix) and on length-limited strings (utf8n prefix). From the original SGI patch and for conformity with coding standards, the utf8data_t typedef was dropped, since it was just masking the struct keyword. On other occasions, namely utf8leaf_t and utf8trie_t, I decided to keep it, since they are simple pointers to memory buffers, and using uchars here wouldn't provide any more meaningful information. From the original submission, we also converted from the compatibility form to canonical. Changes made by Gabriel: Rebase to Mainline Fix up checkpatch.pl warnings Drop typedefs move out of libxfs Convert from NFKD to NFD Signed-off-by: Olaf Weber Signed-off-by: Gabriel Krisman Bertazi Signed-off-by: Theodore Ts'o commit ae0c2d725512f32a0d1a25f0cf2f07616d33a72e Author: Srinivas Kandagatla Date: Tue Apr 16 10:59:24 2019 +0100 nvmem: core: add NVMEM_SYSFS Kconfig Many nvmem providers are not very keen on having default sysfs nvmem entry, as most of the usecases for them are inside kernel itself. And in some cases read/writes to some areas in nvmem are restricted and trapped at secure monitor level, so accessing them from userspace would result in board reboots. This patch adds new NVMEM_SYSFS Kconfig to make binary sysfs entry an optional one. This provision will give more flexibility to users. This patch also moves existing sysfs code to a new file so that its not compiled in when its not really required. Signed-off-by: Srinivas Kandagatla Reviewed-by: Mika Westerberg Reviewed-by: Gaurav Kohli Tested-by: Gaurav Kohli Signed-off-by: Greg Kroah-Hartman commit fc1eb6ebbd55e20819e8ec5f07a2bf71e3bea5f1 Author: Yangtao Li Date: Sat Apr 13 11:33:05 2019 +0100 nvmem: sunxi_sid: Support SID on H6 Add support for H6's SID controller. It supports 4K-bit EFUSE, bigger than before. Signed-off-by: Yangtao Li Acked-by: Maxime Ripard Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit 055f5df53f28fce845d5c0ae3a14deee756d99a6 Author: Yangtao Li Date: Sat Apr 13 11:33:04 2019 +0100 nvmem: sunxi-sid: convert to SPDX license tags Updates license to use SPDX-License-Identifier. Acked-by: Maxime Ripard Signed-off-by: Yangtao Li Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit f6edbb38ea8369bf366475924ba02178e4c25183 Author: Yangtao Li Date: Sat Apr 13 11:33:03 2019 +0100 nvmem: sunxi-sid: add binding for H6's SID controller Add a binding for H6's SID controller. Acked-by: Maxime Ripard Reviewed-by: Rob Herring Signed-off-by: Yangtao Li Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit b8371fc104d3acb87b04dbc70e75eda4714931e6 Author: Yangtao Li Date: Sat Apr 13 11:33:02 2019 +0100 nvmem: sunxi-sid: fix wrong description in kernel doc qfprom->sunxi-sid Acked-by: Maxime Ripard Reviewed-by: Rob Herring Signed-off-by: Yangtao Li Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit ededa0457b67ebb73d2c24b71822dad8c66a4715 Author: Anson Huang Date: Sat Apr 13 11:33:01 2019 +0100 nvmem: imx-iim: use devm_platform_ioremap_resource() to simplify code Use the new helper devm_platform_ioremap_resource() which wraps the platform_get_resource() and devm_ioremap_resource() together, to simplify the code. Signed-off-by: Anson Huang Reviewed-by: Mukesh Ojha Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit 794a1e229b92a4327ed536dd55a22d5a52762b39 Author: Anson Huang Date: Sat Apr 13 11:33:00 2019 +0100 nvmem: mxs-ocotp: use devm_platform_ioremap_resource() to simplify code Use the new helper devm_platform_ioremap_resource() which wraps the platform_get_resource() and devm_ioremap_resource() together, to simplify the code. Signed-off-by: Anson Huang Reviewed-by: Mukesh Ojha Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit 3b26cd885853764aed83828429f5c50787cfc55a Author: Anson Huang Date: Sat Apr 13 11:32:59 2019 +0100 nvmem: imx-ocotp: use devm_platform_ioremap_resource() to simplify code Use the new helper devm_platform_ioremap_resource() which wraps the platform_get_resource() and devm_ioremap_resource() together, to simplify the code. Signed-off-by: Anson Huang Reviewed-by: Mukesh Ojha Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit 2fe518fecb3a4727393be286db9804cd82ee2d91 Author: Jorge Ramirez-Ortiz Date: Sat Apr 13 11:32:58 2019 +0100 nvmem: core: fix read buffer in place When the bit_offset in the cell is zero, the pointer to the msb will not be properly initialized (ie, will still be pointing to the first byte in the buffer). This being the case, if there are bits to clear in the msb, those will be left untouched while the mask will incorrectly clear bit positions on the first byte. This commit also makes sure that any byte unused in the cell is cleared. Signed-off-by: Jorge Ramirez-Ortiz Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit 0a9b2d1ce42210d087d32b1979d3ada343537708 Author: Fabrice Gasnier Date: Sat Apr 13 11:32:57 2019 +0100 nvmem: core: add nvmem_cell_read_u16 Add nvmem_cell_read_u16() helper to ease read of an u16 value on consumer side. This is inspired by nvmem_cell_read_u32() function. This helper is useful on stm32 that has 16 bits data cells stored in non volatile memory. Signed-off-by: Fabrice Gasnier Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit 7c1cd8fda8fbcc3701f372003ef0a3b6d31e11f4 Author: Fabrice Gasnier Date: Sat Apr 13 11:32:56 2019 +0100 nvmem: stm32: add support for STM32MP15 BSEC to control OTP data On STM32MP15, OTP area may be read/written by using BSEC (boot, security and OTP control). BSEC registers set is composed of various regions, among which control registers and OTP shadow registers. Secure monitor calls are involved in this process to allow (or deny) access to the full range of OTP data. This adds support for reading and writing OTP data using SMC services. Data content can be aligned on 16-bits or 8-bits. Then take care of it, since BSEC data is 32-bits wide. Signed-off-by: Fabrice Gasnier Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit ded1b7fc2cf5a4ae3b902b0e46f592ab724b7828 Author: Fabrice Gasnier Date: Sat Apr 13 11:32:55 2019 +0100 nvmem: Add driver for STM32 factory-programmed read only mem Add a read only nvmem driver for STM32 factory-programmed memory area (on-chip non-volatile storage). Signed-off-by: Fabrice Gasnier Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit 4f4cb173d811ba37aab3048b70583b6c73803d42 Author: Fabrice Gasnier Date: Sat Apr 13 11:32:54 2019 +0100 dt-bindings: nvmem: Add STM32 factory-programmed romem Add documentation for STMicroelectronics STM32 Factory-programmed read only memory area. Signed-off-by: Fabrice Gasnier Reviewed-by: Rob Herring Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit da75b8909756160b8e785104ba421a20b756c975 Author: Chen-Yu Tsai Date: Sat Apr 13 11:32:53 2019 +0100 nvmem: sunxi_sid: Support SID on A83T and H5 The device tree binding already lists compatible strings for these two SoCs. They don't have the defect as seen on the H3, and the size and register layout is the same as the A64. Furthermore, the driver does not include nvmem cell definitions. Add support for these two compatible strings, re-using the config for the A64. Signed-off-by: Chen-Yu Tsai Acked-by: Maxime Ripard Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit 273a474ee843fe6f77c3fef365306018bac9c96d Author: Chen-Yu Tsai Date: Sat Apr 13 11:32:52 2019 +0100 nvmem: sunxi_sid: Read out data in native format Originally the SID e-fuses were thought to be in big-endian format. Later sources show that they are in fact native or little-endian. The most compelling evidence is the thermal sensor calibration data, which is a set of one to three 16-bit values. In native-endian they are in 16-bit cells with increasing offsets, whereas with big-endian they are in the wrong order, and a gap with no data will show if there are one or three cells. Switch to a native endian representation for the nvmem device. For the H3, the register read-out method was already returning data in native endian. This only affects the other SoCs. Signed-off-by: Chen-Yu Tsai Acked-by: Maxime Ripard Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit 7fa5ad23dbb02fc9832ef303adbca06f425250d5 Author: Chen-Yu Tsai Date: Sat Apr 13 11:32:51 2019 +0100 nvmem: sunxi_sid: Dynamically allocate nvmem_config structure The sunxi_sid driver currently uses a statically allocated nvmem_config structure that is updated at probe time. This is sub-optimal as it limits the driver to one instance, and also takes up space even if the device is not present. Modify the driver to allocate the nvmem_config structure at probe time, plugging in the desired parameters along the way. Signed-off-by: Chen-Yu Tsai Acked-by: Maxime Ripard Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit de2a3eaea552f2d562fae46bd495eb83298a1b3c Author: Chen-Yu Tsai Date: Sat Apr 13 11:32:50 2019 +0100 nvmem: sunxi_sid: Optimize register read-out method SID cells are 32-bit aligned, and a multiple of 32 bits in length. The only outlier is the thermal sensor calibration data, which is 16 bits per sensor. However a whole 64 bits is allocated for this purpose, so we could consider it conforming to the rule above. Also, the register read-out method assumes native endian, unlike the direct MMIO method, which assumes big endian. Thus no endian conversion is involved. Under these assumptions, the register read-out method can be slightly optimized. Instead of reading one word then discarding 3 bytes, read the whole word directly into the buffer. However, for reads under 4 bytes or trailing bytes, we still use a scratch buffer to extract the requested bytes. We could go one step further if .word_size was 4, but changing that would affect the sysfs interface's behavior. Signed-off-by: Chen-Yu Tsai Acked-by: Maxime Ripard Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit 9c4adfb5dc1326f94d3e212a8b5dfb238839b9ae Author: Chen-Yu Tsai Date: Sat Apr 13 11:32:49 2019 +0100 nvmem: sunxi_sid: Read out SID for randomness without looping Since the reg_read callbacks already support arbitrary, but 4-byte aligned. offsets and lengths into the SID, there is no need for another for loop just to use it to read 1 byte at a time. Read out the whole SID block in one go. Signed-off-by: Chen-Yu Tsai Acked-by: Maxime Ripard Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit dd4c1047b1d6e05f28a1318aa1c4df627f2e91d4 Author: Lucas Stach Date: Sat Apr 13 11:32:48 2019 +0100 nvmem: imx-ocotp: broaden Kconfig dependency The i.MX OCOTP controller is used in numerous Freescale/NXP SoCs from the MXC family, so the strict dependency on the i.MX6 SoC is too narrow. Broaden it to cover all the MXC familiy members. Signed-off-by: Lucas Stach Reviewed-by: Abel Vesa Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit 38e7b6efe997c4eb9a5a809dc2b2fe6c759b7c4b Author: Lucas Stach Date: Sat Apr 13 11:32:47 2019 +0100 nvmem: imx-ocotp: add support for imx8mq The i.MX8MQ uses the same OCOTP block as the i.MX7D, but with fourfold increase in fuse banks. Signed-off-by: Lucas Stach Reviewed-by: Abel Vesa Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit b0a69f05b9633a593c14d7837ae6b299851d5539 Author: Gustavo A. R. Silva Date: Fri Mar 29 15:20:44 2019 +0000 parport: ieee1284: mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warning: drivers/parport/ieee1284.c: In function ‘parport_read’: drivers/parport/ieee1284.c:722:6: warning: this statement may fall through [-Wimplicit-fallthrough=] if (parport_negotiate (port, IEEE1284_MODE_NIBBLE)) { ^ drivers/parport/ieee1284.c:726:2: note: here case IEEE1284_MODE_NIBBLE: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 Notice that, in this particular case, the code comment is modified in accordance with what GCC is expecting to find. This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Sudip Mukherjee Signed-off-by: Greg Kroah-Hartman commit 49695ac46861180baf2b2b92c62da8619b6bf28f Author: Jean-Francois Dagenais Date: Thu Mar 28 12:41:11 2019 -0400 w1: ds2408: reset on output_write retry with readback When we have success in 'Channel Access Write' but reading back latch states fails, a write is retried without doing a proper slave reset. This leads to protocol errors as the slave treats the next 'Channel Access Write' as the continuation of previous command. This commit is fixing this by making sure if the retry loop re-runs, a reset is performed, whatever the failure (CONFIRM_BYTE or the read back). The loop was quite due for a cleanup and this change mandated it. By isolating the CONFIG_W1_SLAVE_DS2408_READBACK case into it's own function, we vastly reduce the visual and branching(runtime and compile-time) noise. Reported-by: Mariusz Bialonczyk Tested-by: Mariusz Bialonczyk Signed-off-by: Jean-Francois Dagenais Signed-off-by: Greg Kroah-Hartman commit d2ab99403ee00d8014e651728a4702ea1ae5e52c Author: zhong jiang Date: Mon Apr 8 12:07:17 2019 +0800 mm/memory_hotplug: Do not unlock when fails to take the device_hotplug_lock When adding the memory by probing memory block in sysfs interface, there is an obvious issue that we will unlock the device_hotplug_lock when fails to takes it. That issue was introduced in Commit 8df1d0e4a265 ("mm/memory_hotplug: make add_memory() take the device_hotplug_lock") We should drop out in time when fails to take the device_hotplug_lock. Fixes: 8df1d0e4a265 ("mm/memory_hotplug: make add_memory() take the device_hotplug_lock") Reported-by: Yang yingliang Signed-off-by: zhong jiang Reviewed-by: Oscar Salvador Reviewed-by: David Hildenbrand Acked-by: Michal Hocko Cc: stable Signed-off-by: Greg Kroah-Hartman commit 955405d1174eebcd1b89ab335f720adc27d52b67 Author: Gabriel Krisman Bertazi Date: Thu Apr 25 13:38:44 2019 -0400 unicode: introduce UTF-8 character database The decomposition and casefolding of UTF-8 characters are described in a prefix tree in utf8data.h, which is a generate from the Unicode Character Database (UCD), published by the Unicode Consortium, and should not be edited by hand. The structures in utf8data.h are meant to be used for lookup operations by the unicode subsystem, when decoding a utf-8 string. mkutf8data.c is the source for a program that generates utf8data.h. It was written by Olaf Weber from SGI and originally proposed to be merged into Linux in 2014. The original proposal performed the compatibility decomposition, NFKD, but the current version was modified by me to do canonical decomposition, NFD, as suggested by the community. The changes from the original submission are: * Rebase to mainline. * Fix out-of-tree-build. * Update makefile to build 11.0.0 ucd files. * drop references to xfs. * Convert NFKD to NFD. * Merge back robustness fixes from original patch. Requested by Dave Chinner. The original submission is archived at: The utf8data.h file can be regenerated using the instructions in fs/unicode/README.utf8data. - Notes on the update from 8.0.0 to 11.0: The structure of the ucd files and special cases have not experienced any changes between versions 8.0.0 and 11.0.0. 8.0.0 saw the addition of Cherokee LC characters, which is an interesting case for case-folding. The update is accompanied by new tests on the test_ucd module to catch specific cases. No changes to mkutf8data script were required for the updates. Signed-off-by: Gabriel Krisman Bertazi Signed-off-by: Theodore Ts'o commit b909ef83ed8134317de904a858a12b3878d259d3 Merge: 43b8a7ed4739 83fdb2dfb0c2 Author: Greg Kroah-Hartman Date: Thu Apr 25 19:36:09 2019 +0200 Merge tag 'icc-5.2-rc1' of https://git.linaro.org/people/georgi.djakov/linux into char-misc-next Georgi writes: interconnect: for 5.2 Here are some tiny patches for the 5.2-rc1 merge window: - Add linux-pm@ as a mailing list for the interconnect API. - Use DEFINE_SHOW_ATTRIBUTE macro to simplify the code. Signed-off-by: Georgi Djakov * tag 'icc-5.2-rc1' of https://git.linaro.org/people/georgi.djakov/linux: interconnect: convert to DEFINE_SHOW_ATTRIBUTE MAINTAINERS: Add mailing list for the interconnect API commit affada726cad2402804ec29fc000276c7dc23b95 Author: Borislav Petkov Date: Thu Apr 18 19:41:56 2019 +0200 driver core: Clarify which counterparts to use to device_add() It is not absolutely clear from the docs how the cleanup path after device_add() should look like so spell it out explicitly. No functional changes, just documentation. Signed-off-by: Borislav Petkov Reviewed-by: Rafael J. Wysocki Signed-off-by: Greg Kroah-Hartman commit 43b8a7ed4739a86c1e8543489bf5524780f66284 Author: Alexander Usyskin Date: Mon Apr 22 09:51:07 2019 +0300 mei: expose device state in sysfs Expose mei device state to user-space through sysfs. This gives indication to applications that driver is in transition, usefully mostly to detect link reset state. Signed-off-by: Alexander Usyskin Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman commit d65bf04200da3891b1c2e6779323287b25c223f7 Author: Tomas Winkler Date: Mon Apr 22 09:51:06 2019 +0300 mei: hdcp: use own Kconfig file The mei/hdcp module have its own Makefile so naturally it should have associated Kconfig in the same directory. Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman commit 01c60dcea9f7a97ed0e94245e425002a8ddd6c17 Author: Patrick Venture Date: Mon Apr 8 07:42:39 2019 -0700 drivers/misc: Add Aspeed P2A control driver The ASPEED AST2400, and AST2500 in some configurations include a PCI-to-AHB MMIO bridge. This bridge allows a server to read and write in the BMC's physical address space. This feature is especially useful when using this bridge to send large files to the BMC. The host may use this to send down a firmware image by staging data at a specific memory address, and in a coordinated effort with the BMC's software stack and kernel, transmit the bytes. This driver enables the BMC to unlock the PCI bridge on demand, and configure it via ioctl to allow the host to write bytes to an agreed upon location. In the primary use-case, the region to use is known apriori on the BMC, and the host requests this information. Once this request is received, the BMC's software stack will enable the bridge and the region and then using some software flow control (possibly via IPMI packets), copy the bytes down. Once the process is complete, the BMC will disable the bridge and unset any region involved. The default behavior of this bridge when present is: enabled and all regions marked read-write. This driver will fix the regions to be read-only and then disable the bridge entirely. The memory regions protected are: * BMC flash MMIO window * System flash MMIO windows * SOC IO (peripheral MMIO) * DRAM The DRAM region itself is all of DRAM and cannot be further specified. Once the PCI bridge is enabled, the host can read all of DRAM, and if the DRAM section is write-enabled, then it can write to all of it. Signed-off-by: Patrick Venture Reviewed-by: Andrew Jeffery Signed-off-by: Greg Kroah-Hartman commit 28703c6ef6228635f7c8b248c1d846511a2b60a3 Author: Patrick Venture Date: Mon Apr 8 07:42:16 2019 -0700 dt-bindings: misc: aspeed-p2a-ctrl: add support Document the ast2400, ast2500 PCI-to-AHB bridge control driver bindings. Signed-off-by: Patrick Venture Reviewed-by: Rob Herring Reviewed-by: Andrew Jeffery Signed-off-by: Greg Kroah-Hartman commit 027d35d0b6999c02de4c1ef86d0df4b5f4119167 Author: Oded Gabbay Date: Thu Apr 25 20:15:42 2019 +0300 habanalabs: rename restore to ctx_switch when appropriate This patch only does renaming of certain variables and structure members, and their accompanied comments. This is done to better reflect the actions these variables and members represent. There is no functional change in this patch. Signed-off-by: Oded Gabbay commit 147b502bda338f4f2dff19faaa5829b691305ea5 Author: Paolo Bonzini Date: Wed Apr 24 12:32:50 2019 -0700 wlcore: simplify/fix/optimize reg_ch_conf_pending operations Bitmaps are defined on unsigned longs, so the usage of u32[2] in the wlcore driver is incorrect. As noted by Peter Zijlstra, casting arrays to a bitmap is incorrect for big-endian architectures. When looking at it I observed that: - operations on reg_ch_conf_pending is always under the wl_lock mutex, so set_bit is overkill - the only case where reg_ch_conf_pending is accessed a u32 at a time is unnecessary too. This patch cleans up everything in this area, and changes tmp_ch_bitmap to have the proper alignment. Signed-off-by: Paolo Bonzini Signed-off-by: Fenghua Yu Signed-off-by: Kalle Valo commit 324f1feb960c79a07df3acde89a119a5aa80cb10 Author: Kalle Valo Date: Thu Apr 25 20:08:31 2019 +0300 Revert "brcmfmac: send mailbox interrupt twice for specific hardware device" This reverts commit 99d94ef367af67f630b38c93ff46c5819b7d06b6. I accidentally applied this broken (failed to compile) patch due to a bug in my patchwork script. Signed-off-by: Kalle Valo commit 310a997fd74de778b9a4848a64be9cda9f18764a Author: Kirill Tkhai Date: Thu Apr 25 13:06:18 2019 -0400 ext4: actually request zeroing of inode table after grow It is never possible, that number of block groups decreases, since only online grow is supported. But after a growing occured, we have to zero inode tables for just created new block groups. Fixes: 19c5246d2516 ("ext4: add new online resize interface") Signed-off-by: Kirill Tkhai Signed-off-by: Theodore Ts'o Reviewed-by: Jan Kara Cc: stable@kernel.org commit 99d94ef367af67f630b38c93ff46c5819b7d06b6 Author: Wright Feng Date: Thu Apr 25 07:05:46 2019 +0000 brcmfmac: send mailbox interrupt twice for specific hardware device For PCIE wireless device with core revision less than 14, device may miss PCIE to System Backplane Interrupt via PCIEtoSBMailbox. So add sending mail box interrupt twice as a hardware workaround. Signed-off-by: Wright Feng Reviewed-by: Arend van Spriel Signed-off-by: Kalle Valo commit d0e61a0f7cca51ce340a5a73595189972122ff25 Author: Gabor Juhos Date: Wed Apr 24 09:49:24 2019 +0200 rt2x00: add RT3883 support Patch add support for RT3883 chip. Code was taken direclty from openwrt project and merge into one patch. Signed-off-by: Gabor Juhos Signed-off-by: Stanislaw Gruszka Signed-off-by: Kalle Valo commit 4b99faa23c51ca31312b9afb876e8e5878daeb80 Author: Khazhismel Kumykov Date: Thu Apr 25 12:58:01 2019 -0400 ext4: cond_resched in work-heavy group loops Signed-off-by: Khazhismel Kumykov Signed-off-by: Theodore Ts'o Reviewed-by: Andreas Dilger commit b1a0ba8f772d7a6dcb5aa3e856f5bd8274989ebe Author: Hans de Goede Date: Mon Apr 22 22:41:23 2019 +0200 brcmfmac: Add DMI nvram filename quirk for ACEPC T8 and T11 mini PCs The ACEPC T8 and T11 mini PCs contain quite generic names in the sys_vendor and product_name DMI strings, without this patch brcmfmac will try to load: "brcmfmac43455-sdio.Default string-Default string.txt" as nvram file which is way too generic. The DMI strings on which we are matching are somewhat generic too, but "To be filled by O.E.M." is less common then "Default string" and the system-sku and bios-version strings are pretty unique. Beside the DMI strings we also check the wifi-module chip-id and revision. I'm confident that the combination of all this is unique. Both the T8 and T11 use the same wifi-module, this commit adds DMI quirks for both mini PCs pointing to brcmfmac43455-sdio.acepc-t8.txt . BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1690852 Cc: stable@vger.kernel.org Signed-off-by: Hans de Goede Signed-off-by: Kalle Valo commit 8149069db81853570a665f5e5648c0e526dc0e43 Author: Pan Bian Date: Wed Apr 17 17:41:23 2019 +0800 p54: drop device reference count if fails to enable device The function p54p_probe takes an extra reference count of the PCI device. However, the extra reference count is not dropped when it fails to enable the PCI device. This patch fixes the bug. Cc: stable@vger.kernel.org Signed-off-by: Pan Bian Acked-by: Christian Lamparter Signed-off-by: Kalle Valo commit 84242b82d81c54e009a2aaa74d3d9eff70babf56 Author: Gustavo A. R. Silva Date: Tue Apr 16 10:17:22 2019 -0500 rtlwifi: rtl8723ae: Fix missing break in switch statement Add missing break statement in order to prevent the code from falling through to case 0x1025, and erroneously setting rtlhal->oem_id to RT_CID_819X_ACER when rtlefuse->eeprom_svid is equal to 0x10EC and none of the cases in switch (rtlefuse->eeprom_smid) match. This bug was found thanks to the ongoing efforts to enable -Wimplicit-fallthrough. Fixes: 238ad2ddf34b ("rtlwifi: rtl8723ae: Clean up the hardware info routine") Cc: stable@vger.kernel.org Signed-off-by: Gustavo A. R. Silva Signed-off-by: Kalle Valo commit 3b989e58e88ae43331bb268e431caa4360003c13 Author: Colin Ian King Date: Mon Apr 15 15:26:49 2019 +0100 mwifiex: fix spelling mistake "capabilties" -> "capabilities" There various spelling mistakes in function names and in message text. Fix these. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Signed-off-by: Kalle Valo commit b9574ce1d05e6a06be90f37dbc75fb105516a1a9 Author: Colin Ian King Date: Mon Apr 15 11:37:03 2019 +0100 iwlegacy: fix spelling mistake "acumulative" -> "accumulative" Fix spelling mistakes in rx stats text. I missed these from an earlier round of fixing the same spelling mistake. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Signed-off-by: Kalle Valo commit 938c7c80c78e2d372c6b9f220d66d7b5e624a8cb Author: Tamás Szűcs Date: Sun Apr 14 20:36:41 2019 +0200 mwifiex: add support for SD8987 chipset This patch adds support for Marvell 88W8987 chipset with SDIO interface. Register offsets and supported feature flags are updated. The corresponding firmware image file shall be "mrvl/sd8987_uapsta.bin". Signed-off-by: Tamás Szűcs Signed-off-by: Kalle Valo commit 6b583201fa219b7b1b6aebd8966c8fd9357ef9f4 Author: Petr Štetiar Date: Thu Apr 11 20:13:30 2019 +0200 mwl8k: Fix rate_idx underflow It was reported on OpenWrt bug tracking system[1], that several users are affected by the endless reboot of their routers if they configure 5GHz interface with channel 44 or 48. The reboot loop is caused by the following excessive number of WARN_ON messages: WARNING: CPU: 0 PID: 0 at backports-4.19.23-1/net/mac80211/rx.c:4516 ieee80211_rx_napi+0x1fc/0xa54 [mac80211] as the messages are being correctly emitted by the following guard: case RX_ENC_LEGACY: if (WARN_ON(status->rate_idx >= sband->n_bitrates)) as the rate_idx is in this case erroneously set to 251 (0xfb). This fix simply converts previously used magic number to proper constant and guards against substraction which is leading to the currently observed underflow. 1. https://bugs.openwrt.org/index.php?do=details&task_id=2218 Fixes: 854783444bab ("mwl8k: properly set receive status rate index on 5 GHz receive") Cc: Tested-by: Eubert Bao Reported-by: Eubert Bao Signed-off-by: Petr Štetiar Signed-off-by: Kalle Valo commit 09ac2694b0475f96be895848687ebcbba97eeecf Author: YueHaibing Date: Mon Apr 8 11:45:29 2019 +0800 at76c50x-usb: Don't register led_trigger if usb_register_driver failed Syzkaller report this: [ 1213.468581] BUG: unable to handle kernel paging request at fffffbfff83bf338 [ 1213.469530] #PF error: [normal kernel read fault] [ 1213.469530] PGD 237fe4067 P4D 237fe4067 PUD 237e60067 PMD 1c868b067 PTE 0 [ 1213.473514] Oops: 0000 [#1] SMP KASAN PTI [ 1213.473514] CPU: 0 PID: 6321 Comm: syz-executor.0 Tainted: G C 5.1.0-rc3+ #8 [ 1213.473514] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014 [ 1213.473514] RIP: 0010:strcmp+0x31/0xa0 [ 1213.473514] Code: 00 00 00 00 fc ff df 55 53 48 83 ec 08 eb 0a 84 db 48 89 ef 74 5a 4c 89 e6 48 89 f8 48 89 fa 48 8d 6f 01 48 c1 e8 03 83 e2 07 <42> 0f b6 04 28 38 d0 7f 04 84 c0 75 50 48 89 f0 48 89 f2 0f b6 5d [ 1213.473514] RSP: 0018:ffff8881f2b7f950 EFLAGS: 00010246 [ 1213.473514] RAX: 1ffffffff83bf338 RBX: ffff8881ea6f7240 RCX: ffffffff825350c6 [ 1213.473514] RDX: 0000000000000000 RSI: ffffffffc1ee19c0 RDI: ffffffffc1df99c0 [ 1213.473514] RBP: ffffffffc1df99c1 R08: 0000000000000001 R09: 0000000000000004 [ 1213.473514] R10: 0000000000000000 R11: ffff8881de353f00 R12: ffff8881ee727900 [ 1213.473514] R13: dffffc0000000000 R14: 0000000000000001 R15: ffffffffc1eeaaf0 [ 1213.473514] FS: 00007fa66fa01700(0000) GS:ffff8881f7200000(0000) knlGS:0000000000000000 [ 1213.473514] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 1213.473514] CR2: fffffbfff83bf338 CR3: 00000001ebb9e005 CR4: 00000000007606f0 [ 1213.473514] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 1213.473514] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 1213.473514] PKRU: 55555554 [ 1213.473514] Call Trace: [ 1213.473514] led_trigger_register+0x112/0x3f0 [ 1213.473514] led_trigger_register_simple+0x7a/0x110 [ 1213.473514] ? 0xffffffffc1c10000 [ 1213.473514] at76_mod_init+0x77/0x1000 [at76c50x_usb] [ 1213.473514] do_one_initcall+0xbc/0x47d [ 1213.473514] ? perf_trace_initcall_level+0x3a0/0x3a0 [ 1213.473514] ? kasan_unpoison_shadow+0x30/0x40 [ 1213.473514] ? kasan_unpoison_shadow+0x30/0x40 [ 1213.473514] do_init_module+0x1b5/0x547 [ 1213.473514] load_module+0x6405/0x8c10 [ 1213.473514] ? module_frob_arch_sections+0x20/0x20 [ 1213.473514] ? kernel_read_file+0x1e6/0x5d0 [ 1213.473514] ? find_held_lock+0x32/0x1c0 [ 1213.473514] ? cap_capable+0x1ae/0x210 [ 1213.473514] ? __do_sys_finit_module+0x162/0x190 [ 1213.473514] __do_sys_finit_module+0x162/0x190 [ 1213.473514] ? __ia32_sys_init_module+0xa0/0xa0 [ 1213.473514] ? __mutex_unlock_slowpath+0xdc/0x690 [ 1213.473514] ? wait_for_completion+0x370/0x370 [ 1213.473514] ? vfs_write+0x204/0x4a0 [ 1213.473514] ? do_syscall_64+0x18/0x450 [ 1213.473514] do_syscall_64+0x9f/0x450 [ 1213.473514] entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 1213.473514] RIP: 0033:0x462e99 [ 1213.473514] Code: f7 d8 64 89 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 [ 1213.473514] RSP: 002b:00007fa66fa00c58 EFLAGS: 00000246 ORIG_RAX: 0000000000000139 [ 1213.473514] RAX: ffffffffffffffda RBX: 000000000073bf00 RCX: 0000000000462e99 [ 1213.473514] RDX: 0000000000000000 RSI: 0000000020000300 RDI: 0000000000000003 [ 1213.473514] RBP: 00007fa66fa00c70 R08: 0000000000000000 R09: 0000000000000000 [ 1213.473514] R10: 0000000000000000 R11: 0000000000000246 R12: 00007fa66fa016bc [ 1213.473514] R13: 00000000004bcefa R14: 00000000006f6fb0 R15: 0000000000000004 If usb_register failed, no need to call led_trigger_register_simple. Reported-by: Hulk Robot Fixes: 1264b951463a ("at76c50x-usb: add driver") Signed-off-by: YueHaibing Signed-off-by: Kalle Valo commit d1717282afd54a34f01628e5a4559f913c6b0317 Author: Alexey Khoroshilov Date: Sat Apr 6 00:26:38 2019 +0300 mwl8k: fix error handling in mwl8k_post_cmd() If pci_map_single() fails in mwl8k_post_cmd(), it returns -ENOMEM immediately, while cleanup is required. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov Signed-off-by: Kalle Valo commit b25105e126e79d8fb5a8c33b009a653f4a4aea71 Author: Larry Finger Date: Thu Apr 4 13:49:14 2019 -0500 b43: Remove empty function lpphy_papd_cal() In commit d825db346270e ("b43: shut up clang -Wuninitialized variable warning"), the message noted that function lpphy_papd_cal() was empty and had an old TODO regarding its implementation. As the reverse engineering project that created the LP-PHY version of this driver has not been active for some time, it is safe to remove this empty function. Signed-off-by: Larry Finger Cc: Arnd Bergmann Signed-off-by: Kalle Valo commit b4c35c17227fe437ded17ce683a6927845f8c4a4 Author: Dan Carpenter Date: Thu Apr 4 11:44:23 2019 +0300 mwifiex: prevent an array overflow The "rate_index" is only used as an index into the phist_data->rx_rate[] array in the mwifiex_hist_data_set() function. That array has MWIFIEX_MAX_AC_RX_RATES (74) elements and it's used to generate some debugfs information. The "rate_index" variable comes from the network skb->data[] and it is a u8 so it's in the 0-255 range. We need to cap it to prevent an array overflow. Fixes: cbf6e05527a7 ("mwifiex: add rx histogram statistics support") Signed-off-by: Dan Carpenter Signed-off-by: Kalle Valo commit 0c7beb2db9a5aa7aae31725c25226c526aea3660 Author: Gustavo A. R. Silva Date: Wed Apr 3 13:59:05 2019 -0500 zd1211rw: use struct_size() helper Make use of the struct_size() helper instead of an open-coded version in order to avoid any potential type mistakes, in particular in the context in which this code is being used. So, replace code of the following form: sizeof(struct usb_req_write_regs) + count * sizeof(struct reg_data) with: struct_size(req, reg_writes, count) This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Kalle Valo commit ae187ba915412d20de8a6470ebaa7670c4d1e1e5 Author: Gustavo A. R. Silva Date: Wed Apr 3 11:40:52 2019 -0500 mwifiex: use struct_size() in kzalloc() One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example: struct foo { int stuff; struct boo entry[]; }; size = sizeof(struct foo) + count * sizeof(struct boo); instance = kzalloc(size, GFP_KERNEL) Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper: instance = kzalloc(struct_size(instance, entry, count), GFP_KERNEL) Notice that, in this case, variable regd_size is not necessary, hence it is removed. This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Kalle Valo commit 0a60014b76f512f18e48cfb4efc71e07c6791996 Author: Siva Rebbagondla Date: Wed Apr 3 09:43:09 2019 +0530 rsi: miscallaneous changes for 9116 and common Below changes are done: * Device 80MHz clock should be disabled for 9116 in 20MHz band. * Default edca parameters should be used initially before connection. * Default TA aggregation is 3 for 9116. * Bootup parameters should be loaded first when channel is changed. * 4 byte register writes are possible for 9116. Signed-off-by: Siva Rebbagondla Signed-off-by: Kalle Valo commit 17ff2c794f39f8c1bc7119e5fd9957efc69c3c72 Author: Siva Rebbagondla Date: Wed Apr 3 09:43:08 2019 +0530 rsi: reset device changes for 9116 Device reset register(watchdog timer related) addresses and values are different for 9116. Signed-off-by: Siva Rebbagondla Signed-off-by: Kalle Valo commit 1533f976c66896cc3454e48ed48f84addcd740d1 Author: Siva Rebbagondla Date: Wed Apr 3 09:43:07 2019 +0530 rsi: send new tx command frame wlan9116 features For 9116 device, we have introduced w9116 features frame, which shall be send when radio capabilities confirm is received. Signed-off-by: Siva Rebbagondla Signed-off-by: Kalle Valo commit f911c86166d5022da15451a95de34cffaf95516c Author: Siva Rebbagondla Date: Wed Apr 3 09:43:06 2019 +0530 rsi: new bootup parameters for 9116 Bootup parameters are different for 9116 device. Check added for device model where-ever bootup parameters are being send. Signed-off-by: Siva Rebbagondla Signed-off-by: Kalle Valo commit 9ba4562ac195f8b9ceca47e7ff3aab046e9e542a Author: Siva Rebbagondla Date: Wed Apr 3 09:43:05 2019 +0530 rsi: change in device init frame sequence for 9116 Initial frame exchange sequence has been changed for 9116 chip. Getting MAC address using EEPROM read frame will be once common device configuration is done and RESET_MAC frame is sending after bootup parameters confirmation is received, which are different from RS9113 device Signed-off-by: Siva Rebbagondla Signed-off-by: Kalle Valo commit e5a1ecc97e5f717934685bf62a4d398df331459e Author: Siva Rebbagondla Date: Wed Apr 3 09:43:04 2019 +0530 rsi: add firmware loading for 9116 device New firmware files and firmware loading method are added for 9116. Signed-off-by: Siva Rebbagondla Signed-off-by: Kalle Valo commit 3ac61578fbd49dd13c62f11c94aa0044b6daa682 Author: Siva Rebbagondla Date: Wed Apr 3 09:43:03 2019 +0530 rsi: move common part of firmware load to separate function Till software bootloader ready state, communication with device is common for 9113 and 9116. Hence moved that part of firmware loading to separate function rsi_prepare_fw_load(). Also LMAC_VER_OFFSET is different for 9113 and 9116, so renamed existing macro to LMAC_VER_OFFSET_9113 Signed-off-by: Siva Rebbagondla Signed-off-by: Kalle Valo commit 54fdb318c1116814711fad4bd166e6c85a477ef0 Author: Siva Rebbagondla Date: Wed Apr 3 09:43:02 2019 +0530 rsi: add new device model for 9116 9116 device id entry is added in both SDIO and USB interfaces. New enumberation value taken for the device model. Based on the device model detected run time, few device specific operations needs to be performed. adding rsi_dev_model to get device type in run time, as we can use same driver for 9113 and 9116 except few firmware load changes. Signed-off-by: Siva Rebbagondla Signed-off-by: Kalle Valo commit 9ea3812f015b71db93233c6767c89f3cfd9cb1f4 Author: Stanislaw Gruszka Date: Wed Mar 27 10:58:31 2019 +0100 rt2x00mmio: remove legacy comment Remove comment about fields that were removed. Signed-off-by: Stanislaw Gruszka Signed-off-by: Kalle Valo commit d954f9e3fb42250b454d2f5c5b22bf6dfa64baea Author: Stanislaw Gruszka Date: Wed Mar 27 10:58:30 2019 +0100 rt2x00: remove not used entry field Remove not used any longer queue_entry field and flag. Signed-off-by: Stanislaw Gruszka Signed-off-by: Kalle Valo commit eb662b1dc62ed3ecfc000e76d1e8c863ffddb42b Author: Stanislaw Gruszka Date: Wed Mar 27 10:58:29 2019 +0100 rt2x00: remove last_nostatus_check We do not any longer check txstatus timeout from tasklet, so do not need this optimization. Signed-off-by: Stanislaw Gruszka Signed-off-by: Kalle Valo commit e5ceab9df43771f64a63ff06dbbbf455103976fc Author: Stanislaw Gruszka Date: Wed Mar 27 10:58:28 2019 +0100 rt2800mmio: use timer and work for handling tx statuses timeouts Sometimes we can get into situation when there are pending statuses, but we do not get INT_SOURCE_CSR_TX_FIFO_STATUS. Handle this situation by arming timeout timer and read statuses (it will fix case when we just do not have irq) and queue work to handle case we missed statues from hardware FIFO. Signed-off-by: Stanislaw Gruszka Signed-off-by: Kalle Valo commit 2c7ba758cc4b5bb2ce30c52129c5fb69174cd610 Author: Stanislaw Gruszka Date: Wed Mar 27 10:58:27 2019 +0100 rt2800mmio: fetch tx status changes Prepare to use rt2800mmio_fetch_txstatus() in concurrent manner and drop return value since is not longer needed. Signed-off-by: Stanislaw Gruszka Signed-off-by: Kalle Valo commit 6efa798764863195580caada66ad11f4b8ef4542 Author: Stanislaw Gruszka Date: Wed Mar 27 10:58:26 2019 +0100 rt2800: move txstatus pending routine Move rt2800usb_txstatus_pending routine to rt2800lib. It will be reused by rt2800mmio code. Signed-off-by: Stanislaw Gruszka Signed-off-by: Kalle Valo commit f61131505e8588e7accb6040ee7c91970531f5c3 Author: Stanislaw Gruszka Date: Wed Mar 27 10:58:25 2019 +0100 rt2800: new flush implementation for SoC devices Use new flush_queue() callback for SoC devices, what was already done for PCIe devices. Signed-off-by: Stanislaw Gruszka Signed-off-by: Kalle Valo commit 889bb866baafd191275812574cfe57f6c83910eb Author: Stanislaw Gruszka Date: Wed Mar 27 10:58:24 2019 +0100 rt2800: partially restore old mmio txstatus behaviour Do not disable txstatus interrupt and add quota of processed tx statuses in one tasklet. Quota is needed to allow to fed device with new frames during processing of tx statuses. Patch fixes about 15% performance degradation on some scenarios caused by 0b0d556e0ebb ("rt2800mmio: use txdone/txstatus routines from lib"). Signed-off-by: Stanislaw Gruszka Signed-off-by: Kalle Valo commit d5414c2355b20ea8201156d2e874265f1cb0d775 Author: Aditya Pakki Date: Sat Mar 23 15:49:16 2019 -0500 rsi: Fix NULL pointer dereference in kmalloc kmalloc can fail in rsi_register_rates_channels but memcpy still attempts to write to channels. The patch replaces these calls with kmemdup and passes the error upstream. Signed-off-by: Aditya Pakki Signed-off-by: Kalle Valo commit 9490c5602445d81d36311a81a74d0399bbb42170 Author: Tomislav Požega Date: Thu Mar 14 15:19:20 2019 +0100 rt2x00: code-style fix in rt2800usb.c Remove space leftovers. Signed-off-by: Tomislav Požega Signed-off-by: Kalle Valo commit 61a4e5ff0d727d221ddf13aac209aca04afa7eb1 Author: Stanislaw Gruszka Date: Tue Mar 12 10:51:43 2019 +0100 rt2x00: do not print error when queue is full For unknown reasons printk() on some context can cause CPU hung on embedded MT7620 AP/router MIPS platforms. What can result on wifi disconnects. This patch move queue full messages to debug level what is consistent with other mac80211 drivers which drop packet silently if tx queue is full. This make MT7620 OpenWRT routers more stable, what was reported by various users. Signed-off-by: Stanislaw Gruszka Signed-off-by: Kalle Valo commit e383c70474db32b9d4a3de6dfbd08784d19e6751 Author: Stanislaw Gruszka Date: Tue Mar 12 10:51:42 2019 +0100 rt2x00: check number of EPROTO errors Some USB host devices/drivers on some conditions can always return EPROTO error on submitted URBs. That can cause infinity loop in the rt2x00 driver. Since we can have single EPROTO errors we can not mark as device as removed to avoid infinity loop. However we can count consecutive EPROTO errors and mark device as removed if get lot of it. I choose number 10 as threshold. Reported-and-tested-by: Randy Oostdyk Signed-off-by: Stanislaw Gruszka Signed-off-by: Kalle Valo commit bb3b18c925333695261ccaad84c0edc100a4d9e2 Author: Stanislaw Gruszka Date: Tue Mar 12 10:51:41 2019 +0100 rt2x00: use ratelimited variants dev_warn/dev_err As reported by Randy we can overwhelm logs on some USB error conditions. To avoid that use dev_warn_ratelimited() and dev_err_ratelimitd(). Reported-and-tested-by: Randy Oostdyk Signed-off-by: Stanislaw Gruszka Signed-off-by: Kalle Valo commit 0ed2a005347400500a39ea7c7318f1fea57fb3ca Author: Kangjie Lu Date: Tue Mar 12 03:05:02 2019 -0500 net: cw1200: fix a NULL pointer dereference In case create_singlethread_workqueue fails, the fix free the hardware and returns NULL to avoid NULL pointer dereference. Signed-off-by: Kangjie Lu Signed-off-by: Kalle Valo commit b2c01aab9646ed8ffb7c549afe55d5349c482425 Author: YueHaibing Date: Wed Mar 6 19:56:58 2019 +0800 ssb: Fix possible NULL pointer dereference in ssb_host_pcmcia_exit Syzkaller report this: kasan: GPF could be caused by NULL-ptr deref or user memory access general protection fault: 0000 [#1] SMP KASAN PTI CPU: 0 PID: 4492 Comm: syz-executor.0 Not tainted 5.0.0-rc7+ #45 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014 RIP: 0010:sysfs_remove_file_ns+0x27/0x70 fs/sysfs/file.c:468 Code: 00 00 00 41 54 55 48 89 fd 53 49 89 d4 48 89 f3 e8 ee 76 9c ff 48 8d 7d 30 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <80> 3c 02 00 75 2d 48 89 da 48 b8 00 00 00 00 00 fc ff df 48 8b 6d RSP: 0018:ffff8881e9d9fc00 EFLAGS: 00010206 RAX: dffffc0000000000 RBX: ffffffff900367e0 RCX: ffffffff81a95952 RDX: 0000000000000006 RSI: ffffc90001405000 RDI: 0000000000000030 RBP: 0000000000000000 R08: fffffbfff1fa22ed R09: fffffbfff1fa22ed R10: 0000000000000001 R11: fffffbfff1fa22ec R12: 0000000000000000 R13: ffffffffc1abdac0 R14: 1ffff1103d3b3f8b R15: 0000000000000000 FS: 00007fe409dc1700(0000) GS:ffff8881f1200000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000001b2d721000 CR3: 00000001e98b6005 CR4: 00000000007606f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 PKRU: 55555554 Call Trace: sysfs_remove_file include/linux/sysfs.h:519 [inline] driver_remove_file+0x40/0x50 drivers/base/driver.c:122 pcmcia_remove_newid_file drivers/pcmcia/ds.c:163 [inline] pcmcia_unregister_driver+0x7d/0x2b0 drivers/pcmcia/ds.c:209 ssb_modexit+0xa/0x1b [ssb] __do_sys_delete_module kernel/module.c:1018 [inline] __se_sys_delete_module kernel/module.c:961 [inline] __x64_sys_delete_module+0x3dc/0x5e0 kernel/module.c:961 do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x462e99 Code: f7 d8 64 89 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007fe409dc0c58 EFLAGS: 00000246 ORIG_RAX: 00000000000000b0 RAX: ffffffffffffffda RBX: 000000000073bf00 RCX: 0000000000462e99 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 00000000200000c0 RBP: 0000000000000002 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00007fe409dc16bc R13: 00000000004bccaa R14: 00000000006f6bc8 R15: 00000000ffffffff Modules linked in: ssb(-) 3c59x nvme_core macvlan tap pata_hpt3x3 rt2x00pci null_blk tsc40 pm_notifier_error_inject notifier_error_inject mdio cdc_wdm nf_reject_ipv4 ath9k_common ath9k_hw ath pppox ppp_generic slhc ehci_platform wl12xx wlcore tps6507x_ts ioc4 nf_synproxy_core ide_gd_mod ax25 can_dev iwlwifi can_raw atm tm2_touchkey can_gw can sundance adp5588_keys rt2800mmio rt2800lib rt2x00mmio rt2x00lib eeprom_93cx6 pn533 lru_cache elants_i2c ip_set nfnetlink gameport tipc hampshire nhc_ipv6 nhc_hop nhc_udp nhc_fragment nhc_routing nhc_mobility nhc_dest 6lowpan silead brcmutil nfc mt76_usb mt76 mac80211 iptable_security iptable_raw iptable_mangle iptable_nat nf_nat_ipv4 nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 iptable_filter bpfilter ip6_vti ip_gre sit hsr veth vxcan batman_adv cfg80211 rfkill chnl_net caif nlmon vcan bridge stp llc ip6_gre ip6_tunnel tunnel6 tun joydev mousedev serio_raw ide_pci_generic piix floppy ide_core sch_fq_codel ip_tables x_tables ipv6 [last unloaded: 3c59x] Dumping ftrace buffer: (ftrace buffer empty) ---[ end trace 3913cbf8011e1c05 ]--- In ssb_modinit, it does not fail SSB init when ssb_host_pcmcia_init failed, however in ssb_modexit, ssb_host_pcmcia_exit calls pcmcia_unregister_driver unconditionally, which may tigger a NULL pointer dereference issue as above. Reported-by: Hulk Robot Fixes: 399500da18f7 ("ssb: pick PCMCIA host code support from b43 driver") Signed-off-by: YueHaibing Signed-off-by: Kalle Valo commit 3b6edcb3fffeb9af00a7e0d21636ba2d95ef9987 Author: YueHaibing Date: Wed Mar 6 19:48:12 2019 +0800 ray_cs: use remove_proc_subtree to simplify procfs code Use remove_proc_subtree to remove the whole subtree Signed-off-by: YueHaibing Signed-off-by: Kalle Valo commit 444efbde32816a950c1749582f2e9241e3d5ee80 Author: YueHaibing Date: Wed Mar 6 19:46:14 2019 +0800 ray_cs: Check return value of pcmcia_register_driver init_ray_cs does not check value of pcmcia_register_driver, if it fails, there maybe cause a NULL pointer dereference in exit_ray_cs. Signed-off-by: YueHaibing Signed-off-by: Kalle Valo commit d442af2e1bcb1540297210ab2ddb3fc8a444c568 Author: Gustavo A. R. Silva Date: Wed Apr 3 13:23:34 2019 -0500 rndis_wlan: use struct_size() helper Make use of the struct_size() helper instead of an open-coded version in order to avoid any potential type mistakes, in particular in the context in which this code is being used. So, replace code of the following form: sizeof(*pmkids) + max_pmkids * sizeof(pmkids->bssid_info[0]) with: struct_size(pmkids, bssid_info, num_pmkids) This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Kalle Valo commit d3dfc16f8fa10e026509130cd705fd7dc925c946 Merge: 9e98c678c2d6 f4033db5b84e Author: Stephen Boyd Date: Thu Apr 25 08:56:23 2019 -0700 Merge tag 'v5.2-rockchip-clk-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip into clk-rockchip Pull Rockchip clk driver updates from Heiko Stuebner: - Fixes for rk3328 and rk3288 - New sub-type for an upcoming SoC where mux and divider are not necessarily in the same register anymore * tag 'v5.2-rockchip-clk-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip: clk: rockchip: undo several noc and special clocks as critical on rk3288 clk: rockchip: add a COMPOSITE_DIV_OFFSET clock-type clk: rockchip: Turn on "aclk_dmac1" for suspend on rk3288 clk: rockchip: Limit use of USB PHY clock to USB on rk3288 clk: rockchip: Fix video codec clocks on rk3288 clk: rockchip: Make rkpwm a critical clock on rk3288 clk: rockchip: fix wrong clock definitions for rk3328 commit 7bc04c5c2cc467c5b40f2b03ba08da174a0d5fa7 Author: Barret Rhoden Date: Thu Apr 25 11:55:50 2019 -0400 ext4: fix use-after-free race with debug_want_extra_isize When remounting with debug_want_extra_isize, we were not performing the same checks that we do during a normal mount. That allowed us to set a value for s_want_extra_isize that reached outside the s_inode_size. Fixes: e2b911c53584 ("ext4: clean up feature test macros with predicate functions") Reported-by: syzbot+f584efa0ac7213c226b7@syzkaller.appspotmail.com Reviewed-by: Jan Kara Signed-off-by: Barret Rhoden Signed-off-by: Theodore Ts'o Cc: stable@vger.kernel.org commit 8c380ab4b7b59c0c602743810be1b712514eaebc Author: Pan Bian Date: Thu Apr 25 11:44:15 2019 -0400 ext4: avoid drop reference to iloc.bh twice The reference to iloc.bh has been dropped in ext4_mark_iloc_dirty. However, the reference is dropped again if error occurs during ext4_handle_dirty_metadata, which may result in use-after-free bugs. Fixes: fb265c9cb49e("ext4: add ext4_sb_bread() to disambiguate ENOMEM cases") Signed-off-by: Pan Bian Signed-off-by: Theodore Ts'o Reviewed-by: Jan Kara Cc: stable@kernel.org commit d635c3512d3cd38814a77ef40c06078d9a7b1aa3 Merge: 363de1d63e41 d058fb60d56b Author: Stephen Boyd Date: Thu Apr 25 08:31:32 2019 -0700 Merge tag 'clk-imx7ulp-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into clk-imx Pull i.MX7UPL clk changes from Shawn Guo: - Remove SNVS clock from i.MX7UPL clock driver and bindings, as the clock will be visible on M4 core only, and never be accessed by Cortex-A cores * tag 'clk-imx7ulp-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: dt-bindings: clock: imx7ulp: remove SNVS clock clk: imx7ulp: remove snvs clock commit 363de1d63e41c8865f3725f7f501ae0ad88530d8 Merge: 5d27e1cda1b1 de348df5b389 Author: Stephen Boyd Date: Thu Apr 25 08:30:39 2019 -0700 Merge tag 'clk-imx5-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into clk-imx Pull i.MX5 clk changes from Shawn Guo: - A couple of patches from Jonathan Neuschäfer to improve i.MX5 clock driver for i.MX50 support - Rename file clk-imx51-imx53.c to clk-imx5.c, as it covers support for all i.MX5 series SoCs including i.MX50 * tag 'clk-imx5-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: clk: imx: rename clk-imx51-imx53.c to clk-imx5.c clk: imx5: Fix i.MX50 ESDHC clock registers clk: imx5: Fix i.MX50 mainbus clock registers commit 5d27e1cda1b1843e0d6db58abcd803d3f9a2e461 Merge: 9e98c678c2d6 48a15bb42df8 Author: Stephen Boyd Date: Thu Apr 25 08:29:22 2019 -0700 Merge tag 'clk-imx-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux into clk-imx Pull i.MX clk changes from Shawn Guo: - Clean up unused imx_get_clk_hw_fixed() inline function * tag 'clk-imx-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/shawnguo/linux: clk: imx: Remove unused imx_get_clk_hw_fixed commit b9b0f34531e0f8ff7fd0b78adfbc0e8209900f83 Author: Matthew Wilcox Date: Wed Feb 20 16:20:45 2019 -0800 uverbs: Convert idr to XArray The word 'idr' is scattered throughout the API, so I haven't changed it, but the 'idr' variable is now an XArray. Signed-off-by: Matthew Wilcox Signed-off-by: Jason Gunthorpe commit b99561c5131ed7d2da9cd8974d3b058984d639b7 Merge: db5e323feb5f 69166f7a37dc Author: Kalle Valo Date: Thu Apr 25 18:26:23 2019 +0300 Merge tag 'iwlwifi-next-for-kalle-2019-04-18-2' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next Third batch of patches intended for v5.2 * Bump the 20000-series FW API version supported; * Work on the new debugging infra continues; * One clean-up to prevent a bogus warning with clang; * A small cleanup in the PCI ID list; * Work on new hardware continues; * RTT confidence indication support for FTM; * An improvement in HE rate-scaling; commit 449c695d97e0842affa44245582e3b7dee272fde Author: Dmitry Osipenko Date: Fri Apr 12 00:48:35 2019 +0300 clk: tegra124: Remove lock-enable bit from PLLM According to the Tegra124 TRM documentation, PLLM_MISC2 register doesn't have the lock-enable bit as well as any other PLLM-related register. Hence PLLM re-locking can't be initiated by software. The incorrect bit setting should have been harmless since that bit is undefined according to TRM. Tested-by: Steev Klimaszewski Signed-off-by: Dmitry Osipenko Acked-By: Peter De Schrijver Signed-off-by: Stephen Boyd commit 40db569d6769ffa3864fd1b89616b1a7323568a8 Author: Dmitry Osipenko Date: Fri Apr 12 00:48:34 2019 +0300 clk: tegra: Fix PLLM programming on Tegra124+ when PMC overrides divider There are wrongly set parenthesis in the code that are resulting in a wrong configuration being programmed for PLLM. The original fix was made by Danny Huang in the downstream kernel. The patch was tested on Nyan Big Tegra124 chromebook, PLLM rate changing works correctly now and system doesn't lock up after changing the PLLM rate due to EMC scaling. Cc: Tested-by: Steev Klimaszewski Signed-off-by: Dmitry Osipenko Acked-By: Peter De Schrijver Signed-off-by: Stephen Boyd commit cc6be13159316e8bdcd8bbb5209315256e151337 Author: Christoph Hellwig Date: Thu Apr 25 08:12:11 2019 +0200 mtip32xx: remove trim support The trim support in mtip32xx has been "temporarily" disabled for 6 years, which is 3/4 of the time the driver even exists in the tree. Remove it as it obviously is dead code now. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit 7afa8db323e37b9174cf78a1c9ab0ae7a9f5e7dd Author: Laurent Pinchart Date: Thu Mar 28 01:31:32 2019 -0400 media: vsp1: Add support for missing 16-bit RGB555 formats Add support for the V4L2_PIX_FMT_RGBA555, V4L2_PIX_FMT_RGBX555, V4L2_PIX_FMT_ABGR555, V4L2_PIX_FMT_XBGR555, V4L2_PIX_FMT_BGRA555 and V4L2_PIX_FMT_BGRX555 formats to the VSP driver. Signed-off-by: Laurent Pinchart Acked-by: Sakari Ailus Reviewed-by: Jacopo Mondi Signed-off-by: Mauro Carvalho Chehab commit 4735c16b8bdd3051227ca9c617b94009e4614e21 Author: Laurent Pinchart Date: Thu Mar 28 01:31:32 2019 -0400 media: vsp1: Add support for missing 16-bit RGB444 formats Add support for the V4L2_PIX_FMT_RGBA444, V4L2_PIX_FMT_RGBX444, V4L2_PIX_FMT_ABGR444, V4L2_PIX_FMT_XBGR444, V4L2_PIX_FMT_BGRA444 and V4L2_PIX_FMT_BGRX444 formats to the VSP driver. Signed-off-by: Laurent Pinchart Acked-by: Sakari Ailus Reviewed-by: Jacopo Mondi Signed-off-by: Mauro Carvalho Chehab commit 515c45650c9bfee14bfe0597eda933abc0e878d1 Author: Laurent Pinchart Date: Thu Mar 28 01:31:32 2019 -0400 media: vsp1: Add support for missing 32-bit RGB formats Add support for the V4L2_PIX_FMT_BGRA32, V4L2_PIX_FMT_BGRX32, V4L2_PIX_FMT_RGBA32 and V4L2_PIX_FMT_RGBX32 formats to the VSP driver. Signed-off-by: Laurent Pinchart Acked-by: Sakari Ailus Reviewed-by: Jacopo Mondi Signed-off-by: Mauro Carvalho Chehab commit 8b65db13bf59ce0d3aeff4b3558f904e3d98b53a Author: Laurent Pinchart Date: Thu Mar 28 01:23:54 2019 -0400 media: v4l: Add definitions for missing 16-bit RGB555 formats The V4L2 API is missing the 16-bit RGB555 formats for the RGBA, RGBX, ABGR, XBGR, BGRA and BGRX component orders. Add them, using the same 4CCs as DRM. Signed-off-by: Laurent Pinchart Acked-by: Sakari Ailus Reviewed-by: Jacopo Mondi Signed-off-by: Mauro Carvalho Chehab commit 6c84f9b1d2900c80eea74e682637976fd25eb471 Author: Laurent Pinchart Date: Thu Mar 28 01:23:54 2019 -0400 media: v4l: Add definitions for missing 16-bit RGB4444 formats The V4L2 API is missing the 16-bit RGB4444 formats for the RGBA, RGBX, ABGR, XBGR, BGRA and BGRX component orders. Add them, using the same 4CCs as DRM. Signed-off-by: Laurent Pinchart Reviewed-by: Jacopo Mondi Acked-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit 78bc3334a69ff289dbc973a9db7c52a2d7757e5b Author: Jiang Biao Date: Wed Apr 24 08:58:57 2019 +0800 fs/quota: erase unused but set variable warning Local variable *reserved* of remove_dquot_ref() is only used if define CONFIG_QUOTA_DEBUG, but not ebraced in CONFIG_QUOTA_DEBUG macro, which leads to unused-but-set-variable warning when compiling. This patch ebrace it into CONFIG_QUOTA_DEBUG macro like what is done in add_dquot_ref(). Signed-off-by: Jiang Biao Signed-off-by: Jan Kara commit a7b36d5fa86c70fbde311659fb2a7b8a52d965a1 Author: Matthew Wilcox Date: Wed Feb 20 16:21:07 2019 -0800 ib/bnxt: Remove mention of idr_alloc from comment Signed-off-by: Matthew Wilcox Signed-off-by: Jason Gunthorpe commit e25ec9141114c7124eeba09385e272dd76fbe617 Author: Laurent Pinchart Date: Thu Mar 28 01:23:54 2019 -0400 media: v4l: Add definitions for missing 32-bit RGB formats The V4L2 API is missing the 32-bit RGB formats for the ABGR, XBGR, RGBA and RGBX component orders. Add them, using the same 4CCs as DRM. Signed-off-by: Laurent Pinchart Reviewed-by: Jacopo Mondi Acked-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit 01fa017484ad98fccdeaab32db0077c574b6bd6f Author: Sagi Grimberg Date: Mon Mar 11 15:02:25 2019 -0700 nvme: set 0 capacity if namespace block size exceeds PAGE_SIZE If our target exposed a namespace with a block size that is greater than PAGE_SIZE, set 0 capacity on the namespace as we do not support it. This issue encountered when the nvmet namespace was backed by a tempfile. Signed-off-by: Sagi Grimberg Reviewed-by: Keith Busch Signed-off-by: Christoph Hellwig commit 82bebbde02e24ad7b641eca25e632f32579ed52f Author: Minwoo Im Date: Wed Apr 10 23:48:59 2019 +0900 nvme-rdma: fix typo in struct comment struct nvme_rdma_cm_rej has two different attributes: recfmt and sts. And sts will have value what this comment wanted to show. Signed-off-by: Minwoo Im Reviewed-by: Sagi Grimberg Reviewed-by: Chaitanya Kulkarni Signed-off-by: Christoph Hellwig commit 663d6fee66b555f6a080104751be0b54e0bca78a Author: Ming Lei Date: Mon Apr 15 09:51:46 2019 +0800 nvme-loop: kill timeout handler Firstly it doesn't make sense to handle timeout for loop: 1) for admin queue, the request is always completed in code path of queuing IO. 2) for normal IO request, the timeout on these IOs have been handled by underlying queue already. Secondly nvme-loop's timeout handler is simply broken, and easy to cause issue: 1) no any sync/protection between timeout and normal completion, and now it is driver's responsibility to deal with that; 2) bad reset implementation, blk_mq_update_nr_hw_queues() is called after all NSs's queue is stopped(quiesced), and easy to trigger deadlock. So kill the timeout handler. Signed-off-by: Ming Lei Reviewd-by: Keith Busch Reviewed-by: Sagi Grimberg Signed-off-by: Christoph Hellwig commit efb973b19b88642bb7e08b8ce8e03b0bbd2a7e2a Author: Sagi Grimberg Date: Wed Apr 24 11:53:19 2019 -0700 nvme-tcp: rename function to have nvme_tcp prefix usually nvme_ prefix is for core functions. While we're cleaning up, remove redundant empty lines Signed-off-by: Sagi Grimberg Reviewed-by: Minwoo Im Signed-off-by: Christoph Hellwig commit 1007709d7d06fab09bf2d007657575958676282b Author: Sagi Grimberg Date: Wed Apr 24 11:53:18 2019 -0700 nvme-rdma: fix a NULL deref when an admin connect times out If we timeout the admin startup sequence we might not yet have an I/O tagset allocated which causes the teardown sequence to crash. Make nvme_tcp_teardown_io_queues safe by not iterating inflight tags if the tagset wasn't allocated. Fixes: 4c174e636674 ("nvme-rdma: fix timeout handler") Signed-off-by: Sagi Grimberg Signed-off-by: Christoph Hellwig commit 7a42589654ae79e1177f0d74306a02d6cef7bddf Author: Sagi Grimberg Date: Wed Apr 24 11:53:17 2019 -0700 nvme-tcp: fix a NULL deref when an admin connect times out If we timeout the admin startup sequence we might not yet have an I/O tagset allocated which causes the teardown sequence to crash. Make nvme_tcp_teardown_io_queues safe by not iterating inflight tags if the tagset wasn't allocated. Fixes: 39d57757467b ("nvme-tcp: fix timeout handler") Signed-off-by: Sagi Grimberg Signed-off-by: Christoph Hellwig commit 569b3d3db1aac8586a16df1745c9e5a99ff47253 Author: Sagi Grimberg Date: Wed Apr 24 11:53:16 2019 -0700 nvmet-tcp: don't fail maxr2t greater than 1 The host may support it, but nothing prevents us from sending a single r2t at a time like we do anyways. Signed-off-by: Sagi Grimberg Signed-off-by: Christoph Hellwig commit 525ec495e021068aa8635a0e18ff60695f5b1f4f Author: Sagi Grimberg Date: Wed Apr 24 11:43:23 2019 -0700 nvmet-file: clamp-down file namespace lba_shift When the backing file is a tempfile for example, the inode i_blkbits can be 1M in size which causes problems for hosts to support as the disk block size. Instead, expose the minimum between i_blkbits and 12 (4K sector size). Signed-off-by: Sagi Grimberg Reviewed-by:- Chaitanya Kulkarni Signed-off-by: Christoph Hellwig commit a5dffbb66d250a7ef07e27a2e75b8d9d7af2ab41 Author: Enrico Weigelt, metux IT consult Date: Wed Apr 24 12:34:39 2019 +0200 nvmet: include Build breaks: drivers/nvme/target/core.c: In function 'nvmet_req_alloc_sgl': drivers/nvme/target/core.c:939:12: error: implicit declaration of \ function 'sgl_alloc'; did you mean 'bio_alloc'? \ [-Werror=implicit-function-declaration] req->sg = sgl_alloc(req->transfer_len, GFP_KERNEL, &req->sg_cnt); ^~~~~~~~~ bio_alloc drivers/nvme/target/core.c:939:10: warning: assignment makes pointer \ from integer without a cast [-Wint-conversion] req->sg = sgl_alloc(req->transfer_len, GFP_KERNEL, &req->sg_cnt); ^ drivers/nvme/target/core.c: In function 'nvmet_req_free_sgl': drivers/nvme/target/core.c:952:3: error: implicit declaration of \ function 'sgl_free'; did you mean 'ida_free'? [-Werror=implicit-function-declaration] sgl_free(req->sg); ^~~~~~~~ ida_free Cause: 1. missing include to 2. SGL_ALLOC needs to be enabled Therefore adding the missing include, as well as Kconfig dependency. Signed-off-by: Enrico Weigelt, metux IT consult Reviewed-by: Sagi Grimberg Reviewed-by: Minwoo Im Reviewed-by: Chaitanya Kulkarni Signed-off-by: Christoph Hellwig commit 6b7e631b927ca1266b2695307ab71ed7764af75e Author: Minwoo Im Date: Sun Apr 7 15:28:06 2019 +0900 nvmet: return a specified error it subsys_alloc fails nvmet_subsys_alloc() returns its pointer or NULL if it fails. We can see three different steps in this function: 1. memory allocation 2. argument check 3. memory allocation for string But now the callers of this function do not seem to handle case 2 by returning -ENOMEM only even if it fails with an invalid parameter. This patch specifies error codes so that caller can pass it to its own caller. Signed-off-by: Minwoo Im Reviewed-by: Chaitanya Kulkarni . Signed-off-by: Christoph Hellwig commit fc6c9730725d5cc57c851d0e261a5682bba913a7 Author: Max Gurtovoy Date: Mon Apr 8 18:39:59 2019 +0300 nvmet: rename nvme_completion instances from rsp to cqe Use NVMe namings for improving code readability. Signed-off-by: Max Gurtovoy Reviewed-by : Chaitanya Kulkarni Signed-off-by: Christoph Hellwig commit 8dc2ed3f3e5ba245828ad89968f6818be8996e9d Author: Max Gurtovoy Date: Mon Apr 8 18:39:58 2019 +0300 nvmet-rdma: remove p2p_client initialization from fast-path Initialize it during command allocation. Cc: Logan Gunthorpe Cc: Stephen Bates Signed-off-by: Max Gurtovoy Reviewed-by: Logan Gunthorpe Signed-off-by: Christoph Hellwig commit 72813bfbf0276a97c82af038efb5f02dcdd9e310 Author: Roger Pau Monne Date: Tue Apr 23 15:04:16 2019 +0200 xen/pvh: correctly setup the PV EFI interface for dom0 This involves initializing the boot params EFI related fields and the efi global variable. Without this fix a PVH dom0 doesn't detect when booted from EFI, and thus doesn't support accessing any of the EFI related data. Reported-by: PGNet Dev Signed-off-by: Roger Pau Monné Reviewed-by: Boris Ostrovsky Signed-off-by: Boris Ostrovsky Cc: stable@vger.kernel.org # 4.19+ commit c9f804d64bb93c8dbf957df1d7e9de11380e522d Author: Roger Pau Monne Date: Tue Apr 23 15:04:15 2019 +0200 xen/pvh: set xen_domain_type to HVM in xen_pvh_init Or else xen_domain() returns false despite xen_pvh being set. Signed-off-by: Roger Pau Monné Reviewed-by: Boris Ostrovsky Signed-off-by: Boris Ostrovsky Cc: stable@vger.kernel.org # 4.19+ commit 51cf07a7b6cd99d9b910932e2af4e7282782e3fe Author: Mao Wenan Date: Tue Apr 16 12:06:51 2019 +0800 xenbus: drop useless LIST_HEAD in xenbus_write_watch() and xenbus_file_write() Drop LIST_HEAD where the variable it declares is never used. The declarations were introduced with the file, but the declared variables were not used. Fixes: 1107ba885e469 ("xen: add xenfs to allow usermode <-> Xen interaction") Signed-off-by: Mao Wenan Reviewed-by: Juergen Gross Signed-off-by: Boris Ostrovsky commit 8de9930a4618811edfaebc4981a9fafff2af9170 Author: Borislav Petkov Date: Thu Apr 25 16:30:34 2019 +0200 Revert "EDAC/amd64: Support more than two controllers for chip select handling" This reverts commit 0a227af521d6df5286550b62f4b591417170b4ea. Unfortunately, this commit caused wrong detection of chip select sizes on some F17h client machines: --- 00-rc6+ 2019-02-14 14:28:03.126622904 +0100 +++ 01-rc4+ 2019-04-14 21:06:16.060614790 +0200 EDAC amd64: MC: 0: 0MB 1: 0MB -EDAC amd64: MC: 2: 16383MB 3: 16383MB +EDAC amd64: MC: 2: 0MB 3: 2097151MB EDAC amd64: MC: 4: 0MB 5: 0MB EDAC amd64: MC: 6: 0MB 7: 0MB EDAC MC: UMC1 chip selects: EDAC amd64: MC: 0: 0MB 1: 0MB -EDAC amd64: MC: 2: 16383MB 3: 16383MB +EDAC amd64: MC: 2: 0MB 3: 2097151MB EDAC amd64: MC: 4: 0MB 5: 0MB EDAC amd64: MC: 6: 0MB 7: 0M Revert it for now until it has been solved properly. Signed-off-by: Borislav Petkov Cc: Yazen Ghannam commit c9cb7655ebc3b7802a28a827fd368d2246dfaa19 Author: Kevin Hilman Date: Thu Apr 18 11:57:40 2019 -0700 MAINTAINERS: update arch/arm/mach-davinci It's time to officially admit I'm not doing anything useful for mach-davinci anymore. Since Bartosz is bringing all the code I wrote 10+ years ago into the modern era, he should take over. Cc: Sekhar Nori Cc: Bartosz Golaszewski Acked-by: Bartosz Golaszewski Signed-off-by: Kevin Hilman Signed-off-by: Sekhar Nori commit 761e473f6b23f206862d904a1a5fcbc012656b47 Author: Sean Paul Date: Wed Apr 24 16:49:09 2019 -0400 drm/gem: Fix sphinx warnings Sphinx really wants colons after arguments :/ Fixes the following warnings: drm_gem.c:1384: warning: Function parameter or member 'fence_array' not described in 'drm_gem_fence_array_add' drm_gem.c:1384: warning: Function parameter or member 'fence' not described in 'drm_gem_fence_array_add' drm_gem.c:1435: warning: Function parameter or member 'fence_array' not described in 'drm_gem_fence_array_add_implicit' drm_gem.c:1435: warning: Function parameter or member 'obj' not described in 'drm_gem_fence_array_add_implicit' drm_gem.c:1435: warning: Function parameter or member 'write' not described in 'drm_gem_fence_array_add_implicit' Fixes: 5d5a179d3e90 ("drm: Add helpers for setting up an array of dma_fence dependencies.") Cc: Eric Anholt Cc: Qiang Yu (v1) Cc: Maarten Lankhorst Cc: Maxime Ripard Cc: Sean Paul Cc: David Airlie Cc: Daniel Vetter Cc: dri-devel@lists.freedesktop.org Reviewed-by: Eric Anholt Signed-off-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190424204916.222155-1-sean@poorly.run commit be604c616ca71cbf5c860d0cfa4595128ab74189 Author: Kees Cook Date: Wed Apr 24 09:55:37 2019 -0700 arm64: sysreg: Make mrs_s and msr_s macros work with Clang and LTO Clang's integrated assembler does not allow assembly macros defined in one inline asm block using the .macro directive to be used across separate asm blocks. LLVM developers consider this a feature and not a bug, recommending code refactoring: https://bugs.llvm.org/show_bug.cgi?id=19749 As binutils doesn't allow macros to be redefined, this change uses UNDEFINE_MRS_S and UNDEFINE_MSR_S to define corresponding macros in-place and workaround gcc and clang limitations on redefining macros across different assembler blocks. Specifically, the current state after preprocessing looks like this: asm volatile(".macro mXX_s ... .endm"); void f() { asm volatile("mXX_s a, b"); } With GCC, it gives macro redefinition error because sysreg.h is included in multiple source files, and assembler code for all of them is later combined for LTO (I've seen an intermediate file with hundreds of identical definitions). With clang, it gives macro undefined error because clang doesn't allow sharing macros between inline asm statements. I also seem to remember catching another sort of undefined error with GCC due to reordering of macro definition asm statement and generated asm code for function that uses the macro. The solution with defining and undefining for each use, while certainly not elegant, satisfies both GCC and clang, LTO and non-LTO. Co-developed-by: Alex Matveev Co-developed-by: Yury Norov Co-developed-by: Sami Tolvanen Reviewed-by: Nick Desaulniers Reviewed-by: Mark Rutland Signed-off-by: Kees Cook Signed-off-by: Will Deacon commit a8fd61688dfad6fdce95fa64cacd8a66595697b8 Author: Martin Schwidefsky Date: Tue Feb 5 16:15:01 2019 +0100 s390: report new CPU capabilities Add hardware capability bits and features tags to /proc/cpuinfo for 4 new CPU features: "Vector-Enhancements Facility 2" (tag "vxe2", hwcap 2^15) "Vector-Packed-Decimal-Enhancement Facility" (tag "vxp", hwcap 2^16) "Enhanced-Sort Facility" (tag "sort", hwcap 2^17) "Deflate-Conversion Facility" (tag "dflt", hwcap 2^18) Reviewed-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit 769f020b6c9283d61c59de3559375ec7e961a424 Author: Harald Freudenberger Date: Tue Apr 16 13:41:26 2019 +0200 s390/crypto: use TRNG for seeding/reseeding With the z14 machine there came also a CPACF hardware extension which provides a True Random Number Generator. This TRNG can be accessed with a new subfunction code within the CPACF prno instruction and provides random data with very high entropy. So if there is a TRNG available, let's use it for initial seeding and reseeding instead of the current implementation which tries to generate entropy based on stckf (store clock fast) jitters. For details about the amount of data needed and pulled for seeding and reseeding there can be explaining comments in the code found. Signed-off-by: Harald Freudenberger Signed-off-by: Martin Schwidefsky commit 23d1aee92b42587e696ab48a9da774819ecd3718 Author: Harald Freudenberger Date: Thu Apr 11 15:47:34 2019 +0200 s390/crypto: rework generate_entropy function for pseudo random dd Here is a rework of the generate_entropy function of the pseudo random device driver exploiting the prno CPACF instruction. George Spelvin pointed out some issues with the existing implementation. One point was, that the buffer used to store the stckf values is 2 pages which are initially filled with get_random_bytes() for each 64 byte junk produced by the function. Another point was that the stckf values only carry entropy in the LSB and thus a buffer of 2 pages is not really needed. Then there was a comment about the use of the kimd cpacf function without proper initialization. The rework addresses these points and now one page is used and only one half of this is filled with get_random_bytes() on each chunk of 64 bytes requested data. The other half of the page is filled with stckf values exored into with an overlap of 4 bytes. This can be done due to the fact that only the lower 4 bytes carry entropy we need. For more details about the algorithm used, see the header of the function. The generate_entropy() function now uses the cpacf function klmd with proper initialization of the parameter block to perform the sha512 hash. George also pointed out some issues with the internal buffers used for seeding and reads. These buffers are now zeroed with memzero_implicit after use. Signed-off-by: Harald Freudenberger Reported-by: George Spelvin Suggested-by: George Spelvin Reviewed-by: Patrick Steuer Signed-off-by: Martin Schwidefsky commit 1d045aa76fe8105cbb9fc0dfa1d15ae332551f25 Merge: 449a224c10a4 1f1d6abbf0be Author: Jason Gunthorpe Date: Thu Apr 25 10:26:02 2019 -0300 Merge branch 'mlx5_tir_icm' into rdma.git for-next Ariel Levkovich says: ==================== The series exposes the ICM address of the receive transport interface (TIR) of Raw Packet and RSS QPs to the user since they are required to properly create and insert steering rules that direct flows to these QPs. ==================== For dependencies this branch is based on mlx5-next from git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux * branch 'mlx5_tir_icm': IB/mlx5: Expose TIR ICM address to user space net/mlx5: Introduce new TIR creation core API net/mlx5: Expose TIR ICM address in command outbox Signed-off-by: Jason Gunthorpe commit 6c6c1d63c243025956f061e67fff3a615aa0f6be Author: David Howells Date: Thu Apr 25 14:26:52 2019 +0100 afs: Provide mount-time configurable byte-range file locking emulation Provide byte-range file locking emulation that can be configured at mount time to one of four modes: (1) flock=local. Locking is done locally only and no reference is made to the server. (2) flock=openafs. Byte-range locking is done locally only; whole-file locking is done with reference to the server. Whole-file locks cannot be upgraded unless the client holds an exclusive lock. (3) flock=strict. Byte-range and whole-file locking both require a sufficient whole-file lock on the server. (4) flock=write. As strict, but the client always gets an exclusive whole-file lock on the server. Signed-off-by: David Howells commit 80548b03991f58758a336424a90bf9f988e3b077 Author: David Howells Date: Thu Apr 25 14:26:51 2019 +0100 afs: Add more tracepoints Add four more tracepoints: (1) afs_make_fs_call1 - Split from afs_make_fs_call but takes a filename to log also. (2) afs_make_fs_call2 - Like the above but takes two filenames to log. (3) afs_lookup - Log the result of doing a successful lookup, including a negative result (fid 0:0). (4) afs_get_tree - Log the set up of a volume for mounting. It also extends the name buffer on the afs_edit_dir tracepoint to 24 chars and puts quotes around the filename in the text representation. Signed-off-by: David Howells commit 79ddbfa500b37a94fa7501e65ebdd5c0e4c7592d Author: David Howells Date: Thu Apr 25 14:26:51 2019 +0100 afs: Implement sillyrename for unlink and rename Implement sillyrename for AFS unlink and rename, using the NFS variant implementation as a basis. Note that the asynchronous file locking extender/releaser has to be notified with a state change to stop it complaining if there's a race between that and the actual file deletion. A tracepoint, afs_silly_rename, is also added to note the silly rename and the cleanup. The afs_edit_dir tracepoint is given some extra reason indicators and the afs_flock_ev tracepoint is given a silly-delete file lock cancellation indicator. Signed-off-by: David Howells commit 99987c560046ea178eb5aea793043deea255f185 Author: David Howells Date: Thu Apr 25 14:26:51 2019 +0100 afs: Add directory reload tracepoint Add a tracepoint (afs_reload_dir) to indicate when a directory is being reloaded. Signed-off-by: David Howells commit cdfb26b40dfa51127d22d171cef4fe8993cbfb55 Author: David Howells Date: Thu Apr 25 14:26:51 2019 +0100 afs: Handle lock rpc ops failing on a file that got deleted Holding a file lock on an AFS file does not prevent it from being deleted on the server, so we need to handle an error resulting from that when we try setting, extending or releasing a lock. Fix this by adding a "deleted" lock state and cancelling the lock extension process for that file and aborting all waiters for the lock. Fixes: 0fafdc9f888b ("afs: Fix file locking") Reported-by: Jonathan Billings Signed-off-by: David Howells commit 445b10289f766b73527ecb4fb4e388677ad93740 Author: David Howells Date: Thu Apr 25 14:26:51 2019 +0100 afs: Improve dir check failure reports Improve the content of directory check failure reports from: kAFS: afs_dir_check_page(6d57): bad magic 1/2 is 0000 to dump more information about the individual blocks in a directory page. Signed-off-by: David Howells commit d46966013bb4f1fbed7cf995828523a3d1f265c6 Author: David Howells Date: Thu Apr 25 14:26:50 2019 +0100 afs: Add file locking tracepoints Add two tracepoints for monitoring AFS file locking. Firstly, add one that follows the operational part: echo 1 >/sys/kernel/debug/tracing/events/afs/afs_flock_op/enable And add a second that more follows the event-driven part: echo 1 >/sys/kernel/debug/tracing/events/afs/afs_flock_ev/enable Individual file_lock structs seen by afs are tagged with debugging IDs that are displayed in the trace log to make it easier to see what's going on, especially as setting the first lock always seems to involve copying the file_lock twice. Signed-off-by: David Howells commit 4be5975aea154e164696128d049dec9ed341585c Author: David Howells Date: Thu Apr 25 14:26:50 2019 +0100 afs: Further fix file locking Further fix the file locking in the afs filesystem client in a number of ways, including: (1) Don't submit the operation to obtain a lock from the server in a work queue context, but rather do it in the process context of whoever issued the requesting system call. (2) The owner of the file_lock struct at the front of the pending_locks queue now owns right to talk to the server. (3) Write locks can be instantly granted if they don't overlap with any other locks *and* we have a write lock on the server. (4) In the event of an authentication/permission error, all other matching pending locks requests are also immediately aborted. (5) Properly use VFS core locks_lock_file_wait() to distribute the server lock amongst local client locks, including waiting for the lock to become available. Test with: sqlite3 /afs/.../scratch/billings.sqlite < Signed-off-by: David Howells commit 68ce801ffd82e72d5005ab5458e8b9e59f24d9cc Author: David Howells Date: Thu Apr 25 14:26:50 2019 +0100 afs: Fix AFS file locking to allow fine grained locks Fix AFS file locking to allow fine grained locks as some applications, such as firefox, won't work if they can't take such locks on certain state files - thereby preventing the use of kAFS to distribute a home directory. Note that this cannot be made completely functional as the protocol only has provision for whole-file locks, so there exists the possibility of a process deadlocking itself by getting a partial read-lock on a file first and then trying to get a non-overlapping write-lock - but we got the server's read lock with the first lock, so we're now stuck. OpenAFS solves this by just granting any partial-range lock directly without consulting the server - and hoping there's no remote collision. I want to implement that in a separate patch and it requires a bit more thought. Fixes: 8d6c554126b8 ("AFS: implement file locking") Reported-by: Jonathan Billings Signed-off-by: David Howells commit a690f60a2ba3125a2f08cdde176376f5ec1d8a84 Author: David Howells Date: Thu Apr 25 14:26:50 2019 +0100 afs: Calculate lock extend timer from set/extend reply reception Record the timestamp on the first reply DATA packet received in response to a set- or extend-lock operation, then use this to calculate the time remaining till the lock expires rather than using whatever time the requesting process wakes up and finishes processing the operation as a base. Signed-off-by: David Howells commit 0b9bf3812ad1f0d937584e300826285694f53e2b Author: David Howells Date: Thu Apr 25 14:26:50 2019 +0100 afs: Split wait from afs_make_call() Split the call to afs_wait_for_call_to_complete() from afs_make_call() to make it easier to handle asynchronous calls and to make it easier to convert a synchronous call to an asynchronous one in future, for instance when someone tries to interrupt an operation by pressing Ctrl-C. Signed-off-by: David Howells commit d5bb334a8e171b262e48f378bd2096c0ea458265 Author: Marcel Holtmann Date: Wed Apr 24 22:19:17 2019 +0200 Bluetooth: Align minimum encryption key size for LE and BR/EDR connections The minimum encryption key size for LE connections is 56 bits and to align LE with BR/EDR, enforce 56 bits of minimum encryption key size for BR/EDR connections as well. Signed-off-by: Marcel Holtmann Signed-off-by: Johan Hedberg Cc: stable@vger.kernel.org commit 1f1d6abbf0bebe4b1fc33b80730a1b4bfbc8f7bb Author: Ariel Levkovich Date: Sun Mar 31 19:44:50 2019 +0300 IB/mlx5: Expose TIR ICM address to user space This patch exposes the TIR ICM address of raw packet and RSS QPs to user space. In order to pass the new field, the patch extends the mlx5 specific QP creation response structure and fills it with the icm address returned by the FW command, if available. Signed-off-by: Ariel Levkovich Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit e0547c81bfcfad01cbbfa93a5e66bb98ab932f80 Author: Lyude Paul Date: Tue Feb 12 17:02:30 2019 -0500 PCI: Reset Lenovo ThinkPad P50 nvgpu at boot if necessary On ThinkPad P50 SKUs with an Nvidia Quadro M1000M instead of the M2000M variant, the BIOS does not always reset the secondary Nvidia GPU during reboot if the laptop is configured in Hybrid Graphics mode. The reason is unknown, but the following steps and possibly a good bit of patience will reproduce the issue: 1. Boot up the laptop normally in Hybrid Graphics mode 2. Make sure nouveau is loaded and that the GPU is awake 3. Allow the Nvidia GPU to runtime suspend itself after being idle 4. Reboot the machine, the more sudden the better (e.g. sysrq-b may help) 5. If nouveau loads up properly, reboot the machine again and go back to step 2 until you reproduce the issue This results in some very strange behavior: the GPU will be left in exactly the same state it was in when the previously booted kernel started the reboot. This has all sorts of bad side effects: for starters, this completely breaks nouveau starting with a mysterious EVO channel failure that happens well before we've actually used the EVO channel for anything: nouveau 0000:01:00.0: disp: chid 0 mthd 0000 data 00000400 00001000 00000002 This causes a timeout trying to bring up the GR ctx: nouveau 0000:01:00.0: timeout WARNING: CPU: 0 PID: 12 at drivers/gpu/drm/nouveau/nvkm/engine/gr/ctxgf100.c:1547 gf100_grctx_generate+0x7b2/0x850 [nouveau] Hardware name: LENOVO 20EQS64N0B/20EQS64N0B, BIOS N1EET82W (1.55 ) 12/18/2018 Workqueue: events_long drm_dp_mst_link_probe_work [drm_kms_helper] ... nouveau 0000:01:00.0: gr: wait for idle timeout (en: 1, ctxsw: 0, busy: 1) nouveau 0000:01:00.0: gr: wait for idle timeout (en: 1, ctxsw: 0, busy: 1) nouveau 0000:01:00.0: fifo: fault 01 [WRITE] at 0000000000008000 engine 00 [GR] client 15 [HUB/SCC_NB] reason c4 [] on channel -1 [0000000000 unknown] The GPU never manages to recover. Booting without loading nouveau causes issues as well, since the GPU starts sending spurious interrupts that cause other device's IRQs to get disabled by the kernel: irq 16: nobody cared (try booting with the "irqpoll" option) ... handlers: [<000000007faa9e99>] i801_isr [i2c_i801] Disabling IRQ #16 ... serio: RMI4 PS/2 pass-through port at rmi4-00.fn03 i801_smbus 0000:00:1f.4: Timeout waiting for interrupt! i801_smbus 0000:00:1f.4: Transaction timeout rmi4_f03 rmi4-00.fn03: rmi_f03_pt_write: Failed to write to F03 TX register (-110). i801_smbus 0000:00:1f.4: Timeout waiting for interrupt! i801_smbus 0000:00:1f.4: Transaction timeout rmi4_physical rmi4-00: rmi_driver_set_irq_bits: Failed to change enabled interrupts! This causes the touchpad and sometimes other things to get disabled. Since this happens without nouveau, we can't fix this problem from nouveau itself. Add a PCI quirk for the specific P50 variant of this GPU. Make sure the GPU is advertising NoReset- so we don't reset the GPU when the machine is in Dedicated graphics mode (where the GPU being initialized by the BIOS is normal and expected). Map the GPU MMIO space and read the magic 0x2240c register, which will have bit 1 set if the device was POSTed during a previous boot. Once we've confirmed all of this, reset the GPU and re-disable it - bringing it back to a healthy state. Link: https://bugzilla.kernel.org/show_bug.cgi?id=203003 Link: https://lore.kernel.org/lkml/20190212220230.1568-1-lyude@redhat.com Signed-off-by: Lyude Paul Signed-off-by: Bjorn Helgaas Cc: nouveau@lists.freedesktop.org Cc: dri-devel@lists.freedesktop.org Cc: Karol Herbst Cc: Ben Skeggs Cc: stable@vger.kernel.org commit 5513bc8eb4a01d1fad1243c72578070c12519a2b Merge: c9f621524e70 d1ffa760d22a Author: Martin Schwidefsky Date: Thu Apr 25 13:45:09 2019 +0200 Merge tag 'vfio-ccw-20190425' of https://git.kernel.org/pub/scm/linux/kernel/git/kvms390/vfio-ccw into features Pull vfio-ccw from Cornelia Huck with the following changes: - support for sending halt/clear requests to the device - various bug fixes commit 7df95299b94a63ec67a6389fc02dc25019a80ee8 Author: Matt Sickler Date: Mon Apr 22 22:05:58 2019 +0000 staging: kpc2000: Add DMA driver Add Daktronics DMA driver. I've added the SPDX license identifiers, Kconfig entry, and cleaned up as many of the warnings as I could. The AIO support code will be removed in a future patch. Signed-off-by: Matt Sickler Signed-off-by: Greg Kroah-Hartman commit 52c4dfcead4932d6c4097bfd4766535a052d2ad6 Author: Madhumitha Prabakaran Date: Tue Apr 23 09:47:45 2019 -0500 Staging: vc04_services: Cleanup in ctrl_set_bitrate() Remove unnecessary variable from the function and make a corresponding change w.r.t the variable. In addition to that align the parameters in the parentheses to maintain Linux kernel coding style Issue suggested by Coccinelle. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 06e8c289a2366cd0cfc3dc41151a94fc48d9aa0f Author: Michael Straube Date: Mon Apr 22 11:58:26 2019 +0200 staging: rtl8188eu: remove unnecessary parentheses Remove unnecessary parentheses to improve readability. Signed-off-by: Michael Straube Signed-off-by: Greg Kroah-Hartman commit 58585aa8eb2a5d6d4b0f6a9ba17e88178b502e01 Author: Michael Straube Date: Mon Apr 22 11:58:25 2019 +0200 staging: rtl8188eu: add spaces around '-' in rtw_cmd.c Add spaces around '-' to follow kernel coding style. Reported by checkpatch. Signed-off-by: Michael Straube Signed-off-by: Greg Kroah-Hartman commit 74e226b302e8f873316a229d7c0b34baf86d78db Author: Michael Straube Date: Mon Apr 22 11:58:24 2019 +0200 staging: rtl8188eu: replace subtraction with result Replace subtraction with the result to improve readability and clear missing spaces around '-' checkpatch issues. Signed-off-by: Michael Straube Signed-off-by: Greg Kroah-Hartman commit 8e7f59e50d09e871fdee9d105e66690f74e4e15f Author: Michael Straube Date: Mon Apr 22 11:58:23 2019 +0200 staging: rtl8188eu: add spaces around operators in rtw_ap.c Add spaces around '+', '-' and '|' to follow kernel coding style. Reported by checkpatch. Signed-off-by: Michael Straube Signed-off-by: Greg Kroah-Hartman commit 523275a8b38932af7008349a6f92ff59d432425d Author: Jerry Lin Date: Thu Apr 18 14:48:55 2019 +0800 staging: olpc_dcon: Convert all uses of old GPIO API to new descriptor API This commit eliminate all uses of legacy integer base GPIO API in olpc_dcon_xo_1_5.c and replace them with new descriptor GPIO API like those in olpc_dcon_xo_1.c. Also pull some common code with olpc_dcon_xo_1.c to olpc_dcon.h for code sharing. Signed-off-by: Jerry Lin Signed-off-by: Greg Kroah-Hartman commit 0f7741bb87a06d02d86f16d70430c44d549ac9d9 Author: Michael Straube Date: Sun Apr 21 18:56:28 2019 +0200 staging: rtl8188eu: cleanup indenting issue in odm.c Cleanup indenting issue reported by checkpatch. WARNING: suspect code indent for conditional statements (8, 17) Signed-off-by: Michael Straube Signed-off-by: Greg Kroah-Hartman commit e9f1040f47276ef38402963117925d756e40363d Author: Fuqian Huang Date: Tue Apr 23 10:55:13 2019 +0800 staging: vchiq_arm: Fix misuse of %x Pointers should be printed with %p or %px rather than cast to unsigned long type and printed with %lx. Change %lx to %pK to print the pointers. Signed-off-by: Fuqian Huang Signed-off-by: Greg Kroah-Hartman commit 3970d0d81816310175b6272e709ee09dd3e05171 Author: Gustavo A. R. Silva Date: Mon Apr 22 10:40:38 2019 -0500 staging: most: core: replace strcpy() by strscpy() The strcpy() function is being deprecated. Replace it by the safer strscpy() and fix the following Coverity warning: "You might overrun the 80-character fixed-size string iface->p->name by copying iface->description without checking the length." Addresses-Coverity-ID: 1444760 ("Copy into fixed size buffer") Fixes: 131ac62253db ("staging: most: core: use device description as name") Signed-off-by: Gustavo A. R. Silva Signed-off-by: Greg Kroah-Hartman commit 8abd537256f58c1e502c01fc4112afcf7c4eda96 Author: YueHaibing Date: Wed Apr 24 02:51:41 2019 +0000 staging: kpc2000: fix platform_no_drv_owner.cocci warnings Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci Signed-off-by: YueHaibing Signed-off-by: Greg Kroah-Hartman commit 8e77ebce6e3f21c7a2fa400f1cf6dae7d97ad466 Author: YueHaibing Date: Wed Apr 24 02:50:00 2019 +0000 staging: kpc2000: remove duplicated include from kp2000_module.c Remove duplicated include. Signed-off-by: YueHaibing Reviewed-by: Mukesh Ojha Signed-off-by: Greg Kroah-Hartman commit 3fcbb7d49cb7947711888a0e5905bc5cd90cab5d Author: Nathan Chancellor Date: Wed Apr 24 11:57:43 2019 -0700 staging: kpc2000: Use memset to initialize resources Clang warns: drivers/staging/kpc2000/kpc2000/cell_probe.c:96:38: warning: suggest braces around initialization of subobject [-Wmissing-braces] struct resource resources[2] = {0}; ^ {} drivers/staging/kpc2000/kpc2000/cell_probe.c:314:38: warning: suggest braces around initialization of subobject [-Wmissing-braces] struct resource resources[2] = {0}; ^ {} 2 warnings generated. One way to fix these warnings is to add additional braces like Clang suggests; however, there has been a bit of push back from some maintainers, who just prefer memset as it is unambiguous, doesn't depend on a particular compiler version, and properly initializes all subobjects [1][2]. Do that here so there are no more warnings. [1]: https://lore.kernel.org/lkml/022e41c0-8465-dc7a-a45c-64187ecd9684@amd.com/ [2]: https://lore.kernel.org/lkml/20181128.215241.702406654469517539.davem@davemloft.net/ Link: https://github.com/ClangBuiltLinux/linux/issues/455 Signed-off-by: Nathan Chancellor Reviewed-by: Nick Desaulniers Signed-off-by: Greg Kroah-Hartman commit 3ef177ec9d5dc225bf30927a2d222d8bb1fbee0f Author: Chengguang Xu Date: Fri Apr 19 13:46:01 2019 +0800 quota: fix wrong indentation We need to check return code only when calling ->read_dqblk(), so fix it properly. Signed-off-by: Chengguang Xu Signed-off-by: Jan Kara commit 8ef795653d753e3d6ae67e6f4a0168ff3c059deb Author: Fuqian Huang Date: Thu Apr 18 12:35:58 2019 +0800 tty: rocket: deprecate the rp_ioctl The rp_ioctl is deprecated. Add dev_warn_ratelimited to warn the use of rp_ioctl. Signed-off-by: Fuqian Huang Signed-off-by: Greg Kroah-Hartman commit 29973f8a88b001ebc605c88cdee124f7256ecdbf Author: Fuqian Huang Date: Thu Apr 18 12:35:57 2019 +0800 tty: rocket: Remove RCPK_GET_STRUCT ioctl If the cmd is RCPK_GET_STRUCT, copy_to_user will copy info to user space. As info->port.ops is the address of a constant object rocket_port_ops (assigned in init_r_port), a kernel address leakage happens. Remove the RCPK_GET_STRUCT ioctl. Signed-off-by: Fuqian Huang Signed-off-by: Greg Kroah-Hartman commit 8daa89e099708db1ffc694c812cb3c0737f1e22b Author: Johan Hovold Date: Thu Apr 18 18:05:54 2019 +0200 tty: update obsolete termios comment Update an obsolete comment referring to the termios_locked structure which was removed over a decade ago by commit fe6e29fdb1a7 ("tty: simplify ktermios allocation"). While at it, fix the "Thus" typo. Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman commit 4235a5947a16241be1ea331fe60e79e03fa5faa1 Author: Yuantian Tang Date: Wed Apr 24 10:32:23 2019 +0800 cpufreq: qoriq: Add ls1028a chip support Enable cpufreq feature on ls1028a chip by adding its compatible string. Signed-off-by: Yuantian Tang Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki commit 9abb24990a2bfa3d9dd35a6b3b93ff54d9cc7908 Author: Ronald Tschalär Date: Mon Apr 15 01:25:05 2019 -0700 debugfs: update documented return values of debugfs helpers Since commit ff9fb72bc077 ("debugfs: return error values, not NULL") these helper functions do not return NULL anymore (with the exception of debugfs_create_u32_array()). Fixes: ff9fb72bc077 ("debugfs: return error values, not NULL") Signed-off-by: Ronald Tschalär Signed-off-by: Greg Kroah-Hartman commit 60d4885710836595192c42d3e04b27551d30ec91 Author: Tyler Hicks Date: Fri Apr 12 21:59:25 2019 +0000 binder: take read mode of mmap_sem in binder_alloc_free_page() Restore the behavior of locking mmap_sem for reading in binder_alloc_free_page(), as was first done in commit 3013bf62b67a ("binder: reduce mmap_sem write-side lock"). That change was inadvertently reverted by commit 5cec2d2e5839 ("binder: fix race between munmap() and direct reclaim"). In addition, change the name of the label for the error path to accurately reflect that we're taking the lock for reading. Backporting note: This fix is only needed when *both* of the commits mentioned above are applied. That's an unlikely situation since they both landed during the development of v5.1 but only one of them is targeted for stable. Fixes: 5cec2d2e5839 ("binder: fix race between munmap() and direct reclaim") Signed-off-by: Tyler Hicks Acked-by: Todd Kjos Signed-off-by: Greg Kroah-Hartman commit 050dfc09f8a43ae41f966d87f81ef35dfad754d5 Author: Sergey Organov Date: Tue Apr 23 08:06:58 2019 +0300 tty: serial_core: fix error code returned by uart_register_driver() uart_register_driver() returned -ENOMEM on any error, even when tty_register_driver() call returned another one, such as -EBUSY. Signed-off-by: Sergey Organov Signed-off-by: Greg Kroah-Hartman commit bdbd0a7f8f0342dd545cc3f1e47aa30265807846 Author: Long Cheng Date: Thu Apr 25 16:41:31 2019 +0800 serial: 8250-mtk: modify baudrate setting In termios function, add Fractional divider to adjust baudrate. Signed-off-by: Long Cheng Signed-off-by: Greg Kroah-Hartman commit 8ceeb4709845e38560a68b6c1b30cd607282abc0 Author: Long Cheng Date: Thu Apr 25 16:41:30 2019 +0800 serial: 8250-mtk: add follow control Add SW and HW follow control function. Signed-off-by: Long Cheng Signed-off-by: Greg Kroah-Hartman commit f137401780278c5a257945330936607701fbd2fd Author: Mauro Carvalho Chehab Date: Mon Apr 22 10:27:22 2019 -0300 docs: serial: convert docs to ReST and rename to *.rst The converted files are focused at the Kernel internal API, so, this is a good candidate for the kernel API set of books. The conversion is actually: - add blank lines and identation in order to identify paragraphs; - fix tables markups; - add some lists markups; - mark literal blocks; - adjust title markups. At its new index.rst, let's add a :orphan: while this is not linked to the main index.rst file, in order to avoid build warnings. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Greg Kroah-Hartman commit 3e51ceea1006186a73367a78bb5cab76cf39d1bd Author: Su Bao Cheng Date: Thu Apr 18 11:15:04 2019 +0200 serial: 8250_exar: Adjust IOT2000 matching Since there are more IOT2040 variants with identical hardware but different asset tags, the asset tag matching should be adjusted to support them. As only the IOT2040 variants have the Exar chip on board, matching on their board name is enough. In the future there will be no other devices with the "SIMATIC IOT2000" DMI board name but different hardware. Signed-off-by: Su Bao Cheng Reviewed-by: Jan Kiszka Signed-off-by: Greg Kroah-Hartman commit 4cdd17ba1dff20ffc99fdbd2e6f0201fc7fe67df Author: Jiri Slaby Date: Wed Apr 17 10:58:53 2019 +0200 TTY: serial_core, add ->install We need to compute the uart state only on the first open. This is usually what is done in the ->install hook. serial_core used to do this in ->open on every open. So move it to ->install. As a side effect, it ensures the state is set properly in the window after tty_init_dev is called, but before uart_open. This fixes a bunch of races between tty_open and flush_to_ldisc we were dealing with recently. One of such bugs was attempted to fix in commit fedb5760648a (serial: fix race between flush_to_ldisc and tty_open), but it only took care of a couple of functions (uart_start and uart_unthrottle). I was able to reproduce the crash on a SLE system, but in uart_write_room which is also called from flush_to_ldisc via process_echoes. I was *unable* to reproduce the bug locally. It is due to having this patch in my queue since 2012! general protection fault: 0000 [#1] SMP KASAN PTI CPU: 1 PID: 5 Comm: kworker/u4:0 Tainted: G L 4.12.14-396-default #1 SLE15-SP1 (unreleased) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.0-0-ga698c89-prebuilt.qemu.org 04/01/2014 Workqueue: events_unbound flush_to_ldisc task: ffff8800427d8040 task.stack: ffff8800427f0000 RIP: 0010:uart_write_room+0xc4/0x590 RSP: 0018:ffff8800427f7088 EFLAGS: 00010202 RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000 RDX: 000000000000002f RSI: 00000000000000ee RDI: ffff88003888bd90 RBP: ffffffffb9545850 R08: 0000000000000001 R09: 0000000000000400 R10: ffff8800427d825c R11: 000000000000006e R12: 1ffff100084fee12 R13: ffffc900004c5000 R14: ffff88003888bb28 R15: 0000000000000178 FS: 0000000000000000(0000) GS:ffff880043300000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000561da0794148 CR3: 000000000ebf4000 CR4: 00000000000006e0 Call Trace: tty_write_room+0x6d/0xc0 __process_echoes+0x55/0x870 n_tty_receive_buf_common+0x105e/0x26d0 tty_ldisc_receive_buf+0xb7/0x1c0 tty_port_default_receive_buf+0x107/0x180 flush_to_ldisc+0x35d/0x5c0 ... 0 in rbx means tty->driver_data is NULL in uart_write_room. 0x178 is tried to be dereferenced (0x178 >> 3 is 0x2f in rdx) at uart_write_room+0xc4. 0x178 is exactly (struct uart_state *)NULL->refcount used in uart_port_lock from uart_write_room. So revert the upstream commit here as my local patch should fix the whole family. Signed-off-by: Jiri Slaby Cc: Li RongQing Cc: Wang Li Cc: Zhang Yu Cc: Greg Kroah-Hartman Cc: stable Signed-off-by: Greg Kroah-Hartman commit 6bc3703dcf0e6891a55987cbae0823c8c185c5e5 Author: Sugaya Taichi Date: Thu Apr 18 15:21:25 2019 +0900 serial: Fix using plain integer instead of Null pointer Fix build warning that using plain integer as Null pointer. This is reported by kbuild test robot. Fixes: ba44dc043004 ("serial: Add Milbeaut serial control") Signed-off-by: Sugaya Taichi Signed-off-by: Greg Kroah-Hartman commit e60e9a4b231a20a199d7a61caadc48693c30d695 Author: Alexander Shishkin Date: Wed Apr 17 10:35:36 2019 +0300 intel_th: pci: Add Comet Lake support This adds support for Intel TH on Comet Lake. Signed-off-by: Alexander Shishkin Cc: stable Signed-off-by: Greg Kroah-Hartman commit 51e0f227812ed81a368de54157ebe14396b4be03 Author: Alexander Shishkin Date: Wed Apr 17 10:35:35 2019 +0300 stm class: Fix channel bitmap on 32-bit systems Commit 7bd1d4093c2f ("stm class: Introduce an abstraction for System Trace Module devices") naively calculates the channel bitmap size in 64-bit chunks regardless of the size of underlying unsigned long, making the bitmap half as big on a 32-bit system. This leads to an out of bounds access with the upper half of the bitmap. Fix this by using BITS_TO_LONGS. While at it, convert to using struct_size() for the total size calculation of the master struct. Signed-off-by: Alexander Shishkin Fixes: 7bd1d4093c2f ("stm class: Introduce an abstraction for System Trace Module devices") Reported-by: Mulu He Cc: stable@vger.kernel.org # v4.4+ Signed-off-by: Greg Kroah-Hartman commit ee496da4c3915de3232b5f5cd20e21ae3e46fe8d Author: Tingwei Zhang Date: Wed Apr 17 10:35:34 2019 +0300 stm class: Fix channel free in stm output free path Number of free masters is not set correctly in stm free path. Fix this by properly adding the number of output channels before setting them to 0 in stm_output_disclaim(). Currently it is equivalent to doing nothing since master->nr_free is incremented by 0. Fixes: 7bd1d4093c2f ("stm class: Introduce an abstraction for System Trace Module devices") Signed-off-by: Tingwei Zhang Signed-off-by: Sai Prakash Ranjan Cc: stable@vger.kernel.org # v4.4 Signed-off-by: Alexander Shishkin Signed-off-by: Greg Kroah-Hartman commit e434a90f36982c8a962423720ef4d38cccc4d37d Merge: 5450a5f4bfa0 e6f32efb1b12 Author: Greg Kroah-Hartman Date: Thu Apr 25 11:27:48 2019 +0200 Merge tag 'phy-for-5.1-rc-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy into char-misc-next Kishon writes: phy: for 5.1-rc *) Fix sun4i-usb PHY driver to get USB gadget working on H3/R40/V3/V3s *) Fix cable state handling in phy-twl4030-usb driver to get rid of regulator_put() warning *) Fix linker errors and compilation warnings got with randconfig *) Fix sparse warnings and .cocci warnings Signed-off-by: Kishon Vijay Abraham I * tag 'phy-for-5.1-rc-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy: phy: sun4i-usb: Make sure to disable PHY0 passby for peripheral mode phy: fix platform_no_drv_owner.cocci warnings phy: mapphone-mdm6600: add gpiolib dependency phy: ti: usb2: fix OMAP_CONTROL_PHY dependency phy: allwinner: allow compile testing phy: qcom-ufs: Make ufs_qcom_phy_disable_iface_clk static phy: rockchip-typec: Make usb3_pll_cfg and dp_pll_cfg static phy: phy-twl4030-usb: Fix cable state handling commit 5450a5f4bfa0ca953ba4c0ccfbebc12c66554278 Merge: 085b7755808a a0033bd1eae4 Author: Greg Kroah-Hartman Date: Thu Apr 25 11:22:13 2019 +0200 Merge tag 'hyperv-fixes-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux into char-misc-linus Sasha writes: Three fixes: 1. Fix for a race condition in the hyper-v ringbuffer code by Kimberly Brown. 2. Fix to show monitor data only when monitor pages are actually allocated, also by Kimberly Brown. 3. Fix cpu reference counting in the vmbus code by Dexuan Cui. * tag 'hyperv-fixes-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/hyperv/linux: Drivers: hv: vmbus: Remove the undesired put_cpu_ptr() in hv_synic_cleanup() Drivers: hv: vmbus: Fix race condition with new ring_buffer_info mutex Drivers: hv: vmbus: Set ring_info field to 0 and remove memset Drivers: hv: vmbus: Refactor chan->state if statement Drivers: hv: vmbus: Expose monitor data only when monitor pages are used commit 37209783c73a47692dbf1e6b2dba0d07f6ce24b3 Author: Nathan Chancellor Date: Wed Apr 24 11:34:13 2019 -0700 thunderbolt: Make priority unsigned in struct tb_path Clang warns: drivers/thunderbolt/tunnel.c:504:17: warning: implicit truncation from 'int' to bit-field changes value from 5 to -3 [-Wbitfield-constant-conversion] path->priority = 5; ^ ~ 1 warning generated. The priority member in struct tb_path is only ever assigned a positive number: $ rg -n priority drivers/thunderbolt/path.c drivers/thunderbolt/tunnel.c:99: path->priority = 3; drivers/thunderbolt/tunnel.c:308: path->priority = 2; drivers/thunderbolt/tunnel.c:323: path->priority = 1; drivers/thunderbolt/tunnel.c:504: path->priority = 5; Furthermore, that value is only assigned to an unsigned integer in tb_path_activate (the priority member in struct tb_regs_hop). Fixes: 44242d6c9703 ("thunderbolt: Add support for DMA tunnels") Link: https://github.com/ClangBuiltLinux/linux/issues/454 Signed-off-by: Nathan Chancellor Reviewed-by: Nick Desaulniers Signed-off-by: Mika Westerberg commit a4d6a2989dc3f2f2bcd25ca53dd187a1de68ffac Author: Raul E Rangel Date: Fri Apr 19 09:30:22 2019 -0600 usb/hcd: Send a uevent signaling that the host controller had died This change will send an OFFLINE event to udev with the ERROR=DEAD environment variable set when the HC dies. By notifying user space the appropriate policies can be applied. i.e., * Collect error logs. * Notify the user that USB is no longer functional. * Perform a graceful reboot. Reported-by: kbuild test robot Signed-off-by: Raul E Rangel Signed-off-by: Greg Kroah-Hartman commit cf28369c634fafb5f4e81750cba6988cdb4b4490 Author: Ajay Gupta Date: Tue Apr 23 17:21:51 2019 +0300 usb: typec: Add driver for NVIDIA Alt Modes Latest NVIDIA GPUs support VirtualLink device. Since USBIF has not assigned a Standard ID (SID) for VirtualLink so using NVIDA VID 0x955 as SVID. Signed-off-by: Ajay Gupta Signed-off-by: Heikki Krogerus Signed-off-by: Greg Kroah-Hartman commit d266e96820cc3654ba1338c55e5731fc67030d8e Author: Ajay Gupta Date: Tue Apr 23 17:21:50 2019 +0300 usb: typec: displayport: Export probe and remove functions VirtualLink standard extends the DisplayPort Alt Mode by utilizing also the USB 2 pins on the USB Type-C connector. It uses the same messages as DisplayPort, but not the DP SVID. At the time of writing, USB IF has not assigned a Standard ID (SID) for VirtualLink, so the manufacturers of VirtualLink adapters use their Vendor IDs as the SVID. Since the SVID specific communication is exactly the same as with DisplayPort alternate mode, there is no need to implement separate driver for VirtualLink. We'll handle the current VirtualLink adapters with probe drivers, and once there is SVID assigned for it, we add it to the displayport alt mode driver. To support probing drivers, exporting the probe and remove functions, and also changing the DP_HEADER helper macro to use the SVID of the alternate mode device instead of the DisplayPort alt mode SVID. Suggested-by: Heikki Krogerus Signed-off-by: Ajay Gupta Signed-off-by: Heikki Krogerus Signed-off-by: Greg Kroah-Hartman commit af8622f6a585d8d82b11cd7987e082861fd0edd3 Author: Heikki Krogerus Date: Tue Apr 23 17:21:49 2019 +0300 usb: typec: ucsi: Support for DisplayPort alt mode This makes it possible to bind a driver to a DisplayPort alt mode adapter devices. The driver attempts to cope with the limitations of UCSI by "emulating" behaviour and attempting to guess things when ever possible in order to satisfy the requirements the standard DisplayPort alt mode driver has. Tested-by: Ajay Gupta Signed-off-by: Heikki Krogerus Signed-off-by: Greg Kroah-Hartman commit ad74b8649beaf1a22cf8641324e3321fa0269d16 Author: Heikki Krogerus Date: Tue Apr 23 17:21:48 2019 +0300 usb: typec: ucsi: Preliminary support for alternate modes With UCSI the alternate modes, just like everything else related to USB Type-C connectors, are handled in firmware. The operating system can see the status and is allowed to request certain things, for example entering and exiting the modes, but the support for alternate modes is very limited in UCSI. The feature is also optional, which means that even when the platform supports alternate modes, the operating system may not be even made aware of them. UCSI does not support direct VDM reading or writing. Instead, alternate modes can be entered and exited using a single custom command which takes also an optional SVID specific configuration value as parameter. That means every supported alternate mode has to be handled separately in UCSI driver. This commit does not include support for any specific alternate mode. The discovered alternate modes are now registered, but binding a driver to an alternate mode will not be possible until support for that alternate mode is added to the UCSI driver. Tested-by: Ajay Gupta Signed-off-by: Heikki Krogerus Signed-off-by: Greg Kroah-Hartman commit 5c9ae5a87573d38cfc4c740aafda2fa6ce06e401 Author: Ajay Gupta Date: Tue Apr 23 17:21:47 2019 +0300 usb: typec: ucsi: ccg: add firmware flashing support CCGx has two copies of the firmware in addition to the bootloader. If the device is running FW1, FW2 can be updated with the new version. Dual firmware mode allows the CCG device to stay in a PD contract and support USB PD and Type-C functionality while a firmware update is in progress. First we read the currently flashed firmware version of both primary and secondary firmware and then compare it with version of firmware file to determine if flashing is required. Command framework is added to support sending commands to CCGx controller. We wait for response after sending the command and then read the response from RAB_RESPONSE register. Below commands are supported, - ENTER_FLASHING - RESET - PDPORT_ENABLE - JUMP_TO_BOOT - FLASH_ROW_RW - VALIDATE_FW Command specific mutex lock is also added to sync between driver and user threads. PD port number information is added which is required while sending PD_PORT_ENABLE command Signed-off-by: Ajay Gupta [ heikki: Added ABI documentation. ] Signed-off-by: Heikki Krogerus Signed-off-by: Greg Kroah-Hartman commit 5fd958a4f67d49089126d3b8b2d9cc993d8853ef Author: Ajay Gupta Date: Tue Apr 23 17:21:46 2019 +0300 i2c: nvidia-gpu: Supply CCGx driver the fw build info Adding device property "ccgx,firmware-build" for the CCGx device, so the CCGx driver knows which firmware binary to use for a specific vendor. Suggested-by: Heikki Krogerus Signed-off-by: Ajay Gupta Signed-off-by: Heikki Krogerus Signed-off-by: Greg Kroah-Hartman commit 5d438e200215f61ca6a7aa69f3c4e035ac54d8ee Author: Ajay Gupta Date: Tue Apr 23 17:21:45 2019 +0300 usb: typec: ucsi: ccg: add get_fw_info function Function is to get the details of ccg firmware and device version. It will be useful in debugging and also during firmware update. Signed-off-by: Ajay Gupta Signed-off-by: Heikki Krogerus Signed-off-by: Greg Kroah-Hartman commit 6e3c8beb4f92a18a65e521cc5fe75874b6e2c860 Author: Serge Semin Date: Wed Apr 24 17:49:14 2019 +0300 usb: usb251xb: Lock i2c-bus segment the hub resides SMBus slave configuration is activated by CFG_SEL[1:0]=0x1 pins state. This is the mode the hub is supposed to be to let this driver work correctly. But a race condition might happen right after reset is cleared due to CFG_SEL[0] pin being multiplexed with SMBus SCL function. In case if the reset pin is handled by a i2c GPIO expander, which is also placed at the same i2c-bus segment as the usb251x SMB-interface connected to, then the hub reset clearance might cause the CFG_SEL[0] being latched in unpredictable state. So sometimes the hub configuration mode might be 0x1 (as expected), but sometimes being 0x0, which doesn't imply to have the hub SMBus-slave interface activated and consequently causes this driver failure. In order to fix the problem we must make sure the GPIO-reset chip doesn't reside the same i2c-bus segment as the SMBus-interface of the hub. If it doesn't, we can safely block the segment for the time the reset is cleared to prevent anyone generating a traffic at the i2c-bus SCL lane connected to the CFG_SEL[0] pin. But if it does, nothing we can do, so just return an error. If we locked the i2c-bus segment and tried to communicate with the GPIO-expander, it would cause a deadlock. If we didn't lock the i2c-bus segment, it would randomly cause the CFG_SEL[0] bit flip. Signed-off-by: Serge Semin Signed-off-by: Greg Kroah-Hartman commit 77a4946516fe488b6a33390de6d749f934a243ba Author: Marc Gonzalez Date: Wed Apr 24 17:00:57 2019 +0200 usb: dwc3: Allow building USB_DWC3_QCOM without EXTCON Keep EXTCON support optional, as some platforms do not need it. Do the same for USB_DWC3_OMAP while we're at it. Fixes: 3def4031b3e3f ("usb: dwc3: add EXTCON dependency for qcom") Signed-off-by: Marc Gonzalez Cc: stable Signed-off-by: Greg Kroah-Hartman commit 409fba220075379db118b8d52979c574623c0214 Author: Dan Carpenter Date: Wed Apr 24 12:54:14 2019 +0300 usbip: stub_rx: tidy the indenting in is_clear_halt_cmd() There is an extra space character before the return statement. Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman commit bf402c08ebc286f613501f4d2dc00304aed47ceb Merge: 817de6b85914 447ccb4e0834 Author: Greg Kroah-Hartman Date: Thu Apr 25 10:50:51 2019 +0200 Merge tag 'iio-for-5.2b' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next Jonathan writes: Second set of IIO new device support, features and cleanup for the 5.2 cycle. New device suport * ad7606 - Support the AD7616 16 channel, 12bit ADC. * fxas21002c - New driver for this gyroscope with I2C and SPI support. * lsm6dsx - Support the lsm6dsr, new device information structure and dt bindings. * srf04 - Addition device IDs for mb1000, mb1010, mb1020, mb1030 and mb1040 + support of different required trigger pulse lengths. * st-accel - Support the ls2de12, new device info and dt bindings. * ti-ads8344 - New driver for this 8 channel, 16 bit SPI ADC. Binding conversions to yaml - we have started doing these in general for IIO. * avia-hx711 * bmp085 Cleanups and minor fixes / additions * ad5758 - Fixup for some changes between preproduction parts and final part. * ad7606 - Refactor handling of oversampling to make it easy to vary between supported devices. * ad9832 - Organise includes. - Clock framework to handle clocks. * ad9834 - Drop unnecessary parenthesis. * bmc150 - Use __func__ rather than hardcoding. * dummy_evgen. - Fix a memleak on error in probe. * kxcjk1013 - Add KXCJ91008 ACPI ID as seen in the wild. - Use __func__ rather than hardcoding. * imx7d - Local dev variable to simplify code a bit. - dev_err replaces pr_err to give more info. - devm_platform_ioremap_resource for small reduction in boilerplate. - Simplify probe and remove by sharing suspend / resume logic. - Devm for iio_device_register as remove only contains the unregister. * lsm6dsx - Remove a variable that was never read. - Open code values where they are effectively described by what is assigned to them rather than using uninformative defines. * max31856 - Avoid an unintialized ret variable in a path that can't actually occur but is hard for a static checker to know. * max9611 - White space * mpu3050 - Reduce a sleep worst case by switching from msleep to usleep_range. * qcom-spmi-adc5 - Add MODULE_DEVICE_TABLE to assist autoloading of this as a module. * stm32-dfsdm - Fix missing dependencies. * stm32-timer trigger - Fix a build issue when disabled. * ti-ads7950 - Fix mising dependency on CONFIG_GPIOLIB. * tag 'iio-for-5.2b' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (42 commits) iio: adc: qcom-spmi-adc5: Fix of-based module autoloading iio: dummy_evgen: fix possible memleak in evgen init iio:accel:Switch hardcoded function name with a reference to __func__ making the code more maintainable iio: adc: stm32-dfsdm: fix triggered buffer build dependency iio: adc: stm32-dfsdm: fix unmet direct dependencies detected iio: trigger: stm32-timer: fix build issue when disabled iio: imx7d_adc: Use devm_iio_device_register() iio: imx7d_adc: Simplify imx7d_adc_remove() with imx7d_adc_suspend() iio: imx7d_adc: Simplify imx7d_adc_probe() with imx7d_adc_resume() drivers/iio/gyro/mpu3050-core.c: This patch fix the following checkpatch warning. iio: dac: ad5758: Modifications for new revision iio: imu: st_lsm6dsx: inline per-sensor data iio: adc: Add driver for the TI ADS8344 A/DC chips dt-bindings: iio: adc: Add bindings for TI ADS8344 A/DC chips MAINTAINERS: add entry for fxas21002c gyro driver iio: gyro: fxas21002c: add spi driver iio: gyro: fxas21002c: add i2c driver iio: gyro: add core driver for fxas21002c iio: gyro: add DT bindings to fxas21002c Kconfig: change configuration of srf04 ultrasonic iio sensor ... commit d30e413fa482a0e83f958f488bfee31ad3431689 Merge: 1567d661b90f 708310711e6c Author: Greg Kroah-Hartman Date: Thu Apr 25 10:49:34 2019 +0200 Merge tag 'phy-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy into usb-next Kishon writes: phy: for 5.2 *) Add a new *release* phy_ops invoked when the consumer relinquishes PHY that can be used to undo the operation performed in xlate *) Add new driver to support USB2 PHY and shared USB3 + PCIE PHY in Amlogic G12A SoC Family. *) Add new driver to support for Broadcom's Stingray USB PHY (Type 1 has one super speed PHY and one high speed PHY, Type 2 has one high speed PHY) *) Add new driver to support USB PHY in hi3660 SoC of Hisilicon *) Add new driver to support UFS M-PHY in MediaTek SoC *) Add new driver to support XUSB pad controller in Tegra186 SoCs *) Add new driver to support SERDES in TI's AM654 platform *) Add support for generation 2 USB2 PHY and gneration 3 USB2 PHY in r8a77470 to phy-rcar-gen2.c and phy-rcar-gen3-usb2.c respectively *) Add support for PCIe QMP PHY support in msm8998 to phy-qcom-qmp.c *) Add support for SERDES6G in phy-ocelot-serdes.c *) Add support to set drive impedance from device tree in phy-rockchip-emmc.c *) Add support to power up/down the VBUS voltage rail in phy-fsl-imx8mq-usb.c *) Add support to shut off regulators that power UFS during system suspend *) Re-design phy-rcar-gen3-usb2.c to create separate PHY instances for each channel which helps to enable/disable interrupts for each instance independently *) Fix PCIe power up sequence to follow the TRM in order to ensure the DPLL & PHY operates correctly over the entire temperature range. *) Use devm_clk_get_optional to get optional clocks instead of adding custom error checks Signed-off-by: Kishon Vijay Abraham I * tag 'phy-for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/kishon/linux-phy: (51 commits) dt-bindings: phy-qcom-qmp: Tweak qcom,msm8998-qmp-ufs-phy dt-bindings: phy-qcom-qmp: Add qcom,msm8998-qmp-pcie-phy phy: Add usb phy support for hi3660 Soc of Hisilicon dt-bindings: phy: Add support for HiSilicon's hi3660 USB PHY scsi: phy: mediatek: fix typo in author's email address phy: ocelot-serdes: Add support for SERDES6G muxing phy: fsl-imx8mq-usb: add support for VBUS power control dt-bindings: phy-imx8mq-usb: add optional vbus supply regulator phy: qcom-qmp: Add msm8998 PCIe QMP PHY support phy: ti: am654-serdes: Support all clksel values phy: ti: Add a new SERDES driver for TI's AM654x SoC dt-bindings: phy: ti: Add dt binding documentation for SERDES in AM654x SoC phy: core: Invoke pm_runtime_get_*/pm_runtime_put_* before invoking reset callback phy: core: Add *release* phy_ops invoked when the consumer relinquishes PHY phy: phy-meson-gxl-usb2: get optional clock by devm_clk_get_optional() phy: socionext: get optional clock by devm_clk_get_optional() phy: qcom-qusb2: get optional clock by devm_clk_get_optional() phy: phy-mtk-tphy: get optional clock by devm_clk_get_optional() phy: renesas: rcar-gen3-usb2: enable/disable independent irqs phy: renesas: rcar-gen3-usb2: Use pdev's device pointer on dev_vdbg() ... commit 1036633e10f86b793e60dd8698c65df6712cad2a Author: Vitaly Chikunov Date: Wed Apr 24 04:32:40 2019 +0300 crypto: ecrdsa - select ASN1 and OID_REGISTRY for EC-RDSA Fix undefined symbol issue in ecrdsa_generic module when ASN1 or OID_REGISTRY aren't enabled in the config by selecting these options for CRYPTO_ECRDSA. ERROR: "asn1_ber_decoder" [crypto/ecrdsa_generic.ko] undefined! ERROR: "look_up_OID" [crypto/ecrdsa_generic.ko] undefined! Reported-by: Randy Dunlap Cc: Stephen Rothwell Signed-off-by: Vitaly Chikunov Acked-by: Randy Dunlap # build-tested Signed-off-by: Herbert Xu commit 42e37c2edd8e6ef5401e37b1f40cb297ce8b10e3 Author: Masahiro Yamada Date: Fri Apr 19 14:37:57 2019 +0900 crypto: ux500 - use ccflags-y instead of CFLAGS_.o Instead of adding CFLAGS_.o to every file, let's use ccflags-y, which is effective for all C files in the directory. No behavior change. Signed-off-by: Masahiro Yamada Signed-off-by: Herbert Xu commit 3ccf3f0cd1971e007680114ff732e8a717aafbf8 Author: Ulf Hansson Date: Thu Apr 18 12:27:57 2019 +0200 PM / Domains: Enable genpd_dev_pm_attach_by_id|name() for single PM domain If a call to dev_pm_domain_attach() succeeds to attach a device to its single PM domain, the important point is to prevent subsequent dev_pm_domain_attach_by_name|id() calls from failing. That is done by checking the dev->pm_domain pointer and then returning -EEXIST, rather than continuing to call genpd_dev_pm_attach_by_id|name(). For this reason, enable genpd_dev_pm_attach_by_id|name() to be used for single PM domains too. This simplifies future users, so they only need to use dev_pm_domain_attach_by_id|name() instead of having to combine it with dev_pm_domain_attach(). Signed-off-by: Ulf Hansson Acked-by: Viresh Kumar Acked-by: Niklas Cassel Signed-off-by: Rafael J. Wysocki commit 7138377ce10455b7183c6dde4b2c51b33f464c45 Author: Ofir Drang Date: Thu Apr 18 16:39:10 2019 +0300 crypto: ccree - handle tee fips error during power management resume in order to support cryptocell tee fips error that may occurs while cryptocell ree is suspended, an cc_tee_handle_fips_error call added to the cc_pm_resume function. Signed-off-by: Ofir Drang Signed-off-by: Gilad Ben-Yossef Cc: stable@vger.kernel.org # v4.19+ Signed-off-by: Herbert Xu commit 897ab2316910a66bb048f1c9cefa25e6a592dcd7 Author: Ofir Drang Date: Thu Apr 18 16:39:09 2019 +0300 crypto: ccree - add function to handle cryptocell tee fips error Adds function that checks if cryptocell tee fips error occurred and in such case triggers system error through kernel panic. Change fips function to use this new routine. Signed-off-by: Ofir Drang Signed-off-by: Gilad Ben-Yossef Cc: stable@vger.kernel.org # v4.19+ Signed-off-by: Herbert Xu commit 3499efbeed39d114873267683b9e776bcb34b058 Author: Ofir Drang Date: Thu Apr 18 16:39:08 2019 +0300 crypto: ccree - HOST_POWER_DOWN_EN should be the last CC access during suspend During power management suspend the driver need to prepare the device for the power down operation and as a last indication write to the HOST_POWER_DOWN_EN register which signals to the hardware that The ccree is ready for power down. Signed-off-by: Ofir Drang Signed-off-by: Gilad Ben-Yossef Cc: stable@vger.kernel.org # v4.19+ Signed-off-by: Herbert Xu commit 1fc165721be84001d124132947775360bc301511 Author: Ofir Drang Date: Thu Apr 18 16:39:07 2019 +0300 crypto: ccree - remove cc7x3 obsoleted AXIM configs AXIM configuration register modified in cc7x3 and no longer includes AXI interrupt masking fields. Signed-off-by: Ofir Drang Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit 7766dd774d80463cec7b81d90c8672af91de2da1 Author: Ofir Drang Date: Thu Apr 18 16:39:06 2019 +0300 crypto: ccree - pm resume first enable the source clk On power management resume function first enable the device clk source to allow access to the device registers. Signed-off-by: Ofir Drang Signed-off-by: Gilad Ben-Yossef Cc: stable@vger.kernel.org # v4.19+ Signed-off-by: Herbert Xu commit e8662a6a5f8f7f2cadc0edb934aef622d96ac3ee Author: Gilad Ben-Yossef Date: Thu Apr 18 16:39:05 2019 +0300 crypto: ccree - don't map AEAD key and IV on stack The AEAD authenc key and IVs might be passed to us on stack. Copy it to a slab buffer before mapping to gurantee proper DMA mapping. Signed-off-by: Gilad Ben-Yossef Cc: stable@vger.kernel.org # v4.19+ Signed-off-by: Herbert Xu commit 874e163759f27e0a9988c5d1f4605e3f25564fd2 Author: Gilad Ben-Yossef Date: Thu Apr 18 16:39:04 2019 +0300 crypto: ccree - don't map MAC key on stack The MAC hash key might be passed to us on stack. Copy it to a slab buffer before mapping to gurantee proper DMA mapping. Signed-off-by: Gilad Ben-Yossef Cc: stable@vger.kernel.org # v4.19+ Signed-off-by: Herbert Xu commit 18dd574acdb70c9c5bc3878d4e98be88259a2fe3 Author: Gilad Ben-Yossef Date: Thu Apr 18 16:39:03 2019 +0300 crypto: ccree - allow more AEAD assoc data fragments Increase the maximum supported AEAD associated data fragments. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit f3df82b468f00cca241d96ee3697c9a5e7fb6bd0 Author: Gilad Ben-Yossef Date: Thu Apr 18 16:39:02 2019 +0300 crypto: ccree - use correct internal state sizes for export We were computing the size of the import buffer based on the digest size but the 318 and 224 byte variants use 512 and 256 bytes internal state sizes respectfully, thus causing the import buffer to overrun. Fix it by using the right sizes. Signed-off-by: Gilad Ben-Yossef Cc: stable@vger.kernel.org # v4.19+ Signed-off-by: Herbert Xu commit 05c292afb0c0545c0cf084172db13e544eeb8f56 Author: Gilad Ben-Yossef Date: Thu Apr 18 16:39:01 2019 +0300 crypto: ccree - zap entire sg on aead request unmap We were trying to be clever zapping out of the cache only the required length out of scatter list on AEAD request completion and getting it wrong. As Knuth said: "when in douby, use brute force". Zap the whole length of the scatter list. Signed-off-by: Gilad Ben-Yossef Cc: stable@vger.kernel.org # v4.19+ Signed-off-by: Herbert Xu commit c776f7d37b6bf3663c838b2d2223f8ec1b523b12 Author: Gilad Ben-Yossef Date: Thu Apr 18 16:39:00 2019 +0300 crypto: ccree - make AEAD sgl iterator well behaved Fix some scatter list interation code was not handling scatter lists being shorter than expected in a graceful manner. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit da3cf67f1bcf25b069a54ff70fd108860242c8f7 Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:59 2019 +0300 crypto: ccree - don't mangle the request assoclen We were mangling the request struct assoclen field. Fix it by keeping an internal version and working on it. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit c9877cbc83b6ee2f5b0006b3837a3c63569bc122 Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:58 2019 +0300 crypto: ccree - simplify AEAD ICV addr calculation The function cc_prepare_aead_data_dlli() which calculates ICV addresses was needlessly complicate it. This patch simplifies it without altering its functionality. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit 6825cfd6d6f0054ddc35e220dadb3112350b05ae Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:57 2019 +0300 crypto: ccree - simplify fragment ICV detection The code detecting whether the ICV is fragmented was overly complex and limited the number of fragments an ICV may be comprised of with no reason in the current code, casuing the new testmgr tests to fail. This patch removes this legacy limitation and greatly simplifies the code. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit bd233baf223d818aea7336a6702322fc1fbb7a4d Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:56 2019 +0300 crypto: ccree - remove unused defines Remove unused definitions from AEAD driver code. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit d2d34fb560ee5c938468b44429499a0aac4c03f2 Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:55 2019 +0300 crypto: ccree - do not copy zero size MLLI table When we are given a 0 sized cryptlen and assoclen in a scatterlist with two entries we were falsely trying to create a zero length MLLI table, causing the HW to choke. Don't try to copy a zero sized MLLI table. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit 9f31eb6e08cc1b0eb3926eebf4c51467479a7722 Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:54 2019 +0300 crypto: ccree - zero out internal struct before use We did not zero out the internal struct before use causing problem in some rare error code paths. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit 03963caeb0dd77b1ead84a5ec913a7d28e8fe816 Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:53 2019 +0300 crypto: ccree - copyright header update This sacrificial copyright header update is offered to the legal department as atonement for any changes made in this driver files in the course of the current year which have not been duly recorded as such. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit b7ec8530687a5b44654ee59c236579c2d890357f Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:52 2019 +0300 crypto: ccree - use std api when possible Move to use the std api sg_nents_for_len() when we do not in fact require the extra information about the number of bytes in the last entry provided by the in-driver variant cc_get_sgl_nents(). This also resolves a Coverity warning cause by us not using the output value. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit dcb2cf1d2c760bcf6390b72a9a74a3e5482ab949 Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:51 2019 +0300 crypto: ccree - use devm_kzalloc for device data Move some remaining device data allocation to the safer devm_* interface. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit d574b707c873d6ef1a2a155f8cfcfecd821e9a2e Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:50 2019 +0300 crypto: ccree - fix mem leak on error path Fix a memory leak on the error path of IV generation code. Signed-off-by: Gilad Ben-Yossef Cc: stable@vger.kernel.org # v4.19+ Signed-off-by: Herbert Xu commit 1a143cdde4af13e2f564410c5f2a1646f74daa43 Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:49 2019 +0300 crypto: ccree - fix typo in debugfs error path Fix a typo in debugfs interface error path which can result in a panic following a memory allocation failure. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit c4b22bf51b815fb61a35a27fc847a88bc28ebb63 Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:48 2019 +0300 crypto: ccree - remove special handling of chained sg We were handling chained scattergather lists with specialized code needlessly as the regular sg APIs handle them just fine. The code handling this also had an (unused) code path with a use-before-init error, flagged by Coverity. Remove all special handling of chained sg and leave their handling to the regular sg APIs. Signed-off-by: Gilad Ben-Yossef Cc: stable@vger.kernel.org # v4.19+ Signed-off-by: Herbert Xu commit 151ded73a6c4cfaa96a563bb7a2db5341d157188 Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:47 2019 +0300 crypto: ccree - use proper callback completion api Use proper hash callback completion API instead of open coding it. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit a108f9311c01271bccad45d321cf9ddfac852c4b Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:46 2019 +0300 crypto: ccree - fix backlog notifications We were doing backlog notification callbacks via a cipher/hash/aead request structure cast to the base structure, which may or may not work based on how the structure is laid in memory and is not safe. Fix it by delegating the backlog notification to the appropriate internal callbacks which are type aware. Signed-off-by: Gilad Ben-Yossef Cc: stable@vger.kernel.org # v4.19+ Signed-off-by: Herbert Xu commit dcf6285d18ea147b3366de14121825be82a243f2 Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:45 2019 +0300 crypto: ccree - add CID and PID support The new HW uses a new standard product and component ID registers replacing the old ad-hoc version and signature gister schemes. Update the driver to support the new HW ID registers. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit 6f17e00f77d8ab2a8ce1f41848181a88108ed6c7 Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:44 2019 +0300 crypto: ccree - read next IV from HW We were computing the next IV in software instead of reading it from HW on the premise that this can be quicker due to the small size of IVs but this proved to be much more hassle and bug ridden than expected. Move to reading the next IV as computed by the HW. This fixes a number of issue with next IV being wrong for OFB, CTS-CBC and probably most of the other ciphers as well. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit 533edf9f93e84cabeae7c1acc8b3816c79f6f35a Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:43 2019 +0300 crypto: ccree - adapt CPP descriptor to new HW Adapt the CPP descriptor to new HW interface. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit bee711fa354e03efab2862443c17b575b3671cbc Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:42 2019 +0300 crypto: ccree - add SM4 protected keys support Add the registration for the SM4 based policy protected keys ciphers. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit 52f42c650a2be7136b03ca712ecde531d5de3c80 Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:41 2019 +0300 crypto: ccree - add remaining logic for CPP Add the missing logic to set usage policy protections for keys. This enables key policy protection for AES. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit cadfd8987af0e3d5dd74254a302d019a3b369d2d Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:40 2019 +0300 crypto: ccree - add CPP completion handling Add the logic needed to track and report CPP operation rejection. The new logic will be used by the CPP feature introduced later. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit f98f6e2134bd3ee5db0594dc399f9562ecc2d08a Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:39 2019 +0300 crypto: ccree - add support for sec disabled mode Add support for the Security Disabled mode under which only pure cryptographic functionality is enabled and protected keys services are unavailable. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit 4b1d7deb2cf289a6389a73b6c88dd12823ab9b09 Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:38 2019 +0300 crypto: ccree - move MLLI desc. before key load Refactor to move the descriptor copying the MLLI line to SRAM to before the key loading descriptor in preparation to the introduction of CPP later on. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit dd8486c7508550b92804efabd5b7043b9577f113 Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:37 2019 +0300 crypto: ccree - move key load desc. before flow desc. Refactor the descriptor setup code in order to move the key loading descriptor to one before last position. This has no effect on current functionality but is needed for later support of Content Protection Policy keys. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit f0372c00afea759710ddc1f6f3a0717f9bcc18ac Author: Gilad Ben-Yossef Date: Thu Apr 18 16:38:36 2019 +0300 crypto: testmgr - add missing self test entries for protected keys Mark sm4 and missing aes using protected keys which are indetical to same algs with no HW protected keys as tested. Signed-off-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit 0ae1f46c55f87e864c14fc46bd6cf0496fd391d7 Author: Corentin Labbe Date: Thu Apr 18 10:17:35 2019 +0200 crypto: sun4i-ss - fallback when length is not multiple of blocksize sun4i-ss does not handle requests when length are not a multiple of blocksize. This patch adds a fallback for that case. Fixes: 6298e948215f ("crypto: sunxi-ss - Add Allwinner Security System crypto accelerator") Signed-off-by: Corentin Labbe Signed-off-by: Herbert Xu commit f87391558acf816b48f325a493d81d45dec40da0 Author: Corentin Labbe Date: Thu Apr 18 10:17:34 2019 +0200 crypto: sun4i-ss - Fix invalid calculation of hash end When nbytes < 4, end is wronlgy set to a negative value which, due to uint, is then interpreted to a large value leading to a deadlock in the following code. This patch fix this problem. Fixes: 6298e948215f ("crypto: sunxi-ss - Add Allwinner Security System crypto accelerator") Signed-off-by: Corentin Labbe Signed-off-by: Herbert Xu commit 179930a62f3182eb384ae1e4d1ad47e97f6f5e90 Author: Corentin Labbe Date: Thu Apr 18 10:17:33 2019 +0200 crypto: sun4i-ss - remove ivsize from ECB ECB algos does not need IV. Fixes: 6298e948215f ("crypto: sunxi-ss - Add Allwinner Security System crypto accelerator") Signed-off-by: Corentin Labbe Signed-off-by: Herbert Xu commit 82b3ad7445968ba70edc42d97ba3510c4623679a Author: Corentin Labbe Date: Thu Apr 18 10:17:32 2019 +0200 crypto: sun4i-ss - Handle better absence/presence of IV This patch remove the test against areq->info since sun4i-ss could work without it (ECB). Fixes: 6298e948215f ("crypto: sunxi-ss - Add Allwinner Security System crypto accelerator") Signed-off-by: Corentin Labbe Signed-off-by: Herbert Xu commit bee7bdf11f0129f460e83a2f5f50bba8434a6929 Author: Nagadheeraj Rottela Date: Wed Apr 17 11:15:33 2019 +0000 crypto: cavium/nitrox - Fix HW family part name format This patch fixes the NITROX-V family part name format. The fix includes ZIP core performance (feature option) in the part name to differentiate various HW devices. The complete HW part name format is mentioned below Part name: CNN55-BG676-- Signed-off-by: Nagadheeraj Rottela Reviewed-by: Srikanth Jampala Signed-off-by: Herbert Xu commit df80bfd34310935ffc2bc85baa15aed075c12ee3 Author: Horia Geantă Date: Tue Apr 16 19:27:12 2019 +0300 crypto: caam/jr - update gcm detection logic GCM detection logic has to change for two reasons: -some CAAM instantiations with Era < 10, even though they have AES LP, they now support GCM mode -Era 10 upwards, there is a dedicated bit in AESA_VERSION[AESA_MISC] field for GCM support For Era 9 and earlier, all AES accelerator versions support GCM, except for AES LP (CHAVID_LS[AESVID]=3) with revision CRNR[AESRN] < 8. For Era 10 and later, bit 9 of the AESA_VERSION register should be used to detect GCM support in AES accelerator. Note: caam/qi and caam/qi2 are drivers for QI (Queue Interface), which is used in DPAA-based SoCs; for now, we rely on CAAM having an AES HP and this AES accelerator having support for GCM. Signed-off-by: Horia Geantă Reviewed-by: Iuliana Prodan Signed-off-by: Herbert Xu commit 6ddc8e3117d602ebe05f8fcc5429628b6d3a5853 Author: Colin Ian King Date: Mon Apr 15 13:40:21 2019 +0100 crypto: caam - fix spelling mistake "cannote" -> "cannot" There is a spelling mistake in an error message in the qi_error_list array. Fix this. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Signed-off-by: Herbert Xu commit 877b5691f27a1aec0d9b53095a323e45c30069e2 Author: Eric Biggers Date: Sun Apr 14 17:37:09 2019 -0700 crypto: shash - remove shash_desc::flags The flags field in 'struct shash_desc' never actually does anything. The only ostensibly supported flag is CRYPTO_TFM_REQ_MAY_SLEEP. However, no shash algorithm ever sleeps, making this flag a no-op. With this being the case, inevitably some users who can't sleep wrongly pass MAY_SLEEP. These would all need to be fixed if any shash algorithm actually started sleeping. For example, the shash_ahash_*() functions, which wrap a shash algorithm with the ahash API, pass through MAY_SLEEP from the ahash API to the shash API. However, the shash functions are called under kmap_atomic(), so actually they're assumed to never sleep. Even if it turns out that some users do need preemption points while hashing large buffers, we could easily provide a helper function crypto_shash_update_large() which divides the data into smaller chunks and calls crypto_shash_update() and cond_resched() for each chunk. It's not necessary to have a flag in 'struct shash_desc', nor is it necessary to make individual shash algorithms aware of this at all. Therefore, remove shash_desc::flags, and document that the crypto_shash_*() functions can be called from any context. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 75f2222832e0fecba7a45ca6ac07ea895ea1e046 Author: Eric Biggers Date: Sun Apr 14 17:37:08 2019 -0700 crypto: nx - don't abuse shash MAY_SLEEP flag The nx driver uses the MAY_SLEEP flag in shash_desc::flags as an indicator to not retry sending the operation to the hardware as many times before returning -EBUSY. This is bogus because (1) that's not what the MAY_SLEEP flag is for, and (2) the shash API doesn't allow failing if the hardware is busy anyway. For now, just make it always retry the larger number of times. This doesn't actually fix this driver, but it at least makes it not use the shash_desc::flags field anymore. Then this field can be removed, as no other drivers use it. Cc: linuxppc-dev@lists.ozlabs.org Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 54fe792b36bb26c2cbb1557c73414e62d26d2bcc Author: Eric Biggers Date: Sun Apr 14 17:37:07 2019 -0700 crypto: shash - remove useless crypto_yield() in shash_ahash_digest() The crypto_yield() in shash_ahash_digest() occurs after the entire digest operation already happened, so there's no real point. Remove it. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit e8b04de9da71b56dbbc5fa443d4ab52b617977bb Author: Ulf Hansson Date: Thu Apr 18 12:27:56 2019 +0200 PM / Domains: Allow OF lookup for multi PM domain case from ->attach_dev() A genpd provider that uses the ->attach_dev() callback to look up resources for a device fails to do so when the device has multiple PM domains attached. That is because when genpd invokes the ->attach_dev() callback, it passes the allocated virtual device as the in-parameter. To address this problem, simply assign the dev->of_node for the virtual device, based upon the original device's OF node. Signed-off-by: Ulf Hansson Acked-by: Viresh Kumar Acked-by: Niklas Cassel Signed-off-by: Rafael J. Wysocki commit 71b77697af9ef06b559875e4bd8dc3d141807c93 Author: Ulf Hansson Date: Thu Apr 18 12:27:55 2019 +0200 PM / Domains: Don't kfree() the virtual device in the error path It's not correct to call kfree(dev) when device_register(dev) has failed. Fix this by calling put_device(dev) instead. Fixes: 3c095f32a92b ("PM / Domains: Add support for multi PM domains per device to genpd") Signed-off-by: Ulf Hansson Acked-by: Viresh Kumar Acked-by: Niklas Cassel Signed-off-by: Rafael J. Wysocki commit 930c8dfea4b8f320bd7f6a3e5e721ac20e444e03 Author: Aleksei Gimbitskii Date: Tue Apr 23 15:04:13 2019 +0300 drm/i915/gvt: Check if get_next_pt_type() always returns a valid value According to gtt_type_table[] function get_next_pt_type() may returns GTT_TYPE_INVALID in some cases. To prevent driver to try to create memory page with invalid data type, additional check is added. Signed-off-by: Aleksei Gimbitskii Cc: Zhenyu Wang Cc: Zhi Wang Cc: Colin Xu Reviewed-by: Colin Xu Signed-off-by: Zhenyu Wang commit 4feeea1d8d7713c5838d99c1fdfcc2e90c0f977d Author: Aleksei Gimbitskii Date: Tue Apr 23 15:04:10 2019 +0300 drm/i915/gvt: Use snprintf() to prevent possible buffer overflow. For printing the intel_vgpu->id, a buffer with fixed length is allocated on the stack. But if vgpu->id is greater than 6 characters, the buffer overflow will happen. Even the string of the amount of max vgpu is less that the length buffer right now, it's better to replace sprintf() with snprintf(). v2: - Increase the size of the buffer. (Colin Xu) This patch fixed the critical issue #673 reported by klocwork. Signed-off-by: Aleksei Gimbitskii Cc: Zhenyu Wang Cc: Zhi Wang Cc: Colin Xu Reviewed-by: Colin Xu Signed-off-by: Zhenyu Wang commit d9420241d09bac6ba930d95963bd237ec9629db6 Author: Aleksei Gimbitskii Date: Tue Apr 23 15:04:09 2019 +0300 drm/i915/gvt: Do not copy the uninitialized pointer from fb_info In the code the memcpy() function copied uninitialized pointer in fb_info to dmabuf_obj->info. Later the pointer in dmabuf_obj->info will be initialized. To make the code aligned with requirements of the klocwork static code analyzer, the uninitialized pointer should be initialized before memcpy(). v2: - Initialize fb_info.obj in vgpu_get_plane_info(). (Colin Xu) This patch fixed the critical issue #632 reported by klockwork. Signed-off-by: Aleksei Gimbitskii Cc: Zhenyu Wang Cc: Zhi Wang Cc: Colin Xu Reviewed-by: Colin Xu Signed-off-by: Zhenyu Wang commit 0cf8f58d0a340a2ac744f6e0e3402a89780ecf8b Author: Aleksei Gimbitskii Date: Tue Apr 23 15:04:08 2019 +0300 drm/i915/gvt: Remove typedef and let the enumeration starts from zero Typedef is not recommended in the Linux kernel.The klocwork static code analyzer takes the enumeration as the full range of intel_gvt_gtt_type_t. But the intel_gvt_gtt_type_t will never be used in full range. For example, the GTT_TYPE_INVALID will never be used as an index of an array. Remove the typedef and let the enumeration starts from zero to pass klocwork analysis. This patch fixed the critial issues #483, #551, #665 reported by klockwork. v3: - Remove the typedef and let the enumeration starts from zero. Signed-off-by: Aleksei Gimbitskii Cc: Zhenyu Wang Cc: Zhi Wang CC: Colin Xu Reviewed-by: Colin Xu Signed-off-by: Zhenyu Wang commit 4a6eccbcb9ea88cf0408115e9d130ce7062ee6fd Author: Xiong Zhang Date: Wed Apr 10 12:16:34 2019 +0800 drm/i915/gvt: Change fb_info->size from pages to bytes fb_info->size is in pages, but some function need bytes when it is as a parameter. Such as: a. intel_gvt_ggtt_validate_range(), according to function definition b. vifio_device_gfx_plane_info->size, according to the comment of its definition So change fb_info->size into bytes. v2: Keep fb_info->size in real size instead of assinging casted page size(zhenyu) v3: obj->size should be page aligned and delete redundant check(zhenyu) Signed-off-by: Xiong Zhang Reviewed-by: Zhenyu Wang Signed-off-by: Zhenyu Wang commit 2792107dc3af29ecc1a9b3dc5bc873dac4b61cd6 Author: Mike Rapoport Date: Wed Apr 24 16:24:12 2019 +0300 x86/Kconfig: Deprecate DISCONTIGMEM support for 32-bit x86 Mel Gorman says: "32-bit NUMA systems should be non-existent in practice. The last NUMA system I'm aware of that was both NUMA and 32-bit only died somewhere between 2004 and 2007. If someone is running a 64-bit capable system in 32-bit mode with NUMA, they really are just punishing themselves for fun." Mark DISCONTIGMEM broken for now as suggested by Christoph Hellwig, and (hopefully) remove it in a couple of releases. Suggested-by: Christoph Hellwig Signed-off-by: Mike Rapoport Acked-by: Mel Gorman Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Matthew Wilcox Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/1556112252-9339-3-git-send-email-rppt@linux.ibm.com Signed-off-by: Ingo Molnar commit 6ad57f7f2cbf65daced27f023cc99360742a24b9 Author: Mike Rapoport Date: Wed Apr 24 16:24:11 2019 +0300 x86/Kconfig: Make SPARSEMEM default for 32-bit x86 Sparsemem has been a default memory model for x86-64 for over a decade, since: b263295dbffd ("x86: 64-bit, make sparsemem vmemmap the only memory model"). Make it the default for 32-bit NUMA systems (if there any left) as well. Signed-off-by: Mike Rapoport Acked-by: Mel Gorman Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Christoph Hellwig Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Matthew Wilcox Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/1556112252-9339-2-git-send-email-rppt@linux.ibm.com Signed-off-by: Ingo Molnar commit 8ec2fa52eac53bff7ef1cedbc4ad8af650ec937c Author: Christian Borntraeger Date: Wed Apr 3 03:00:35 2019 -0400 KVM: s390: enable MSA9 keywrapping functions depending on cpu model Instead of adding a new machine option to disable/enable the keywrapping options of pckmo (like for AES and DEA) we can now use the CPU model to decide. As ECC is also wrapped with the AES key we need that to be enabled. Signed-off-by: Christian Borntraeger Reviewed-by: David Hildenbrand commit 4f45b90e1c03466202fca7f62eaf32243f220830 Author: Christian Borntraeger Date: Fri Dec 28 10:46:04 2018 +0100 KVM: s390: add deflate conversion facilty to cpu model This enables stfle.151 and adds the subfunctions for DFLTCC. Bit 151 is added to the list of facilities that will be enabled when there is no cpu model involved as DFLTCC requires no additional handling from userspace, e.g. for migration. Please note that a cpu model enabled user space can and will have the final decision on the facility bits for a guests. Signed-off-by: Christian Borntraeger Reviewed-by: Collin Walling Reviewed-by: David Hildenbrand commit cf0c4876684d287b6fe72699598517ca9b827216 Author: Serge Semin Date: Wed Apr 24 01:47:39 2019 +0300 mips: Combine memblock init and memory reservation loops Before bootmem was completely removed from the kernel, the last loop in the bootmem_init() had been used to reserve the correspondingly marked regions, initialize sparsemem sections and to free the low memory pages, which then would be used for early memory allocations. After the bootmem removing patchset had been merged the loop was left to do the first two things only. But it didn't do them quite well. First of all it leaves the BOOT_MEM_INIT_RAM memory types unreserved, which is definitely bug (although it isn't noticeable due to being used by the kernel region only, which is fully marked as reserved). Secondly the reservation is supposed to be done for any memory including the high one. (I couldn't figure out why the highmem was ignored in the first place, since platforms and dts' may declare any memory region for reservation) Thirdly the reserved_end variable had been used here to not accidentally free memory occupied by kernel. Since we already reserved the corresponding region higher in this method there is no need in using the variable here anymore. Fourthly the sparsemem should be aware of all the memory types in the system including the ROM_DATA even if it is going to be reserved for the whole system uptime. Finally after all these notes are fixed the loop of memory reservation can be freely merged into the memory installation loop as it's done in this patch. Signed-off-by: Serge Semin Signed-off-by: Paul Burton Cc: Ralf Baechle Cc: James Hogan Cc: Matt Redfearn Cc: Mike Rapoport Cc: Andrew Morton Cc: Michal Hocko Cc: Greg Kroah-Hartman Cc: Thomas Bogendoerfer Cc: Huacai Chen Cc: Stefan Agner Cc: Stephen Rothwell Cc: Alexandre Belloni Cc: Juergen Gross Cc: linux-mips@vger.kernel.org Cc: linux-kernel@vger.kernel.org commit 6ea3ba6fac31380af86339c37be095a672dd01bb Author: Serge Semin Date: Wed Apr 24 01:47:38 2019 +0300 mips: Discard rudiments from bootmem_init There is a pointless code left in the bootmem_init() method since the bootmem allocator removal. First part resides the PFN ranges calculation loop. The conditional expressions and continue operator are useless there, since nothing is done after them. Second part is in RAM ranges installation loop. We can simplify the conditions cascade a bit without much of the logic redefinition, so to reduce the code length. In particular the end boundary value can be verified after the possible reduction to be below max_low_pfn. Signed-off-by: Serge Semin Signed-off-by: Paul Burton Cc: Ralf Baechle Cc: James Hogan Cc: Matt Redfearn Cc: Mike Rapoport Cc: Andrew Morton Cc: Michal Hocko Cc: Greg Kroah-Hartman Cc: Thomas Bogendoerfer Cc: Huacai Chen Cc: Stefan Agner Cc: Stephen Rothwell Cc: Alexandre Belloni Cc: Juergen Gross Cc: linux-mips@vger.kernel.org Cc: linux-kernel@vger.kernel.org commit a703db3d5b4b43cb7e46b65a661471015cbcba57 Author: Serge Semin Date: Wed Apr 24 01:47:37 2019 +0300 mips: Make sure kernel .bss exists in boot mem pool Current MIPS platform code makes sure the kernel text, data and init sections are added to the boot memory map pool right after the arch-specific memory setup method has been executed. But for some reason the MIPS platform code skipped the kernel .bss section, which definitely should be in the boot mem pool as well in any case. Lets fix this just be adding the space between __bss_start and __bss_stop. Reviewed-by: Matt Redfearn Signed-off-by: Serge Semin Signed-off-by: Paul Burton Cc: Ralf Baechle Cc: James Hogan Cc: Mike Rapoport Cc: Andrew Morton Cc: Michal Hocko Cc: Greg Kroah-Hartman Cc: Thomas Bogendoerfer Cc: Huacai Chen Cc: Stefan Agner Cc: Stephen Rothwell Cc: Alexandre Belloni Cc: Juergen Gross Cc: linux-mips@vger.kernel.org Cc: linux-kernel@vger.kernel.org commit 6b622063451d0756f5f3c5380fd7569afae1c377 Author: Philip Yang Date: Wed Apr 17 22:15:19 2019 +0000 drm: increase drm mmap_range size to 1TB After patch "drm: Use the same mmap-range offset and size for GEM and TTM", application failed to create bo of system memory because drm mmap_range size decrease to 64GB from original 1TB. This is not big enough for applications. Increase the drm mmap_range size to 1TB. Reviewed-by: Thomas Zimmermann Reviewed-by: Christian König Signed-off-by: Philip Yang Signed-off-by: Alex Deucher Link: https://patchwork.freedesktop.org/patch/msgid/20190417221507.933-1-Philip.Yang@amd.com (cherry picked from commit 96354b5ca4ac74d2e47e75987283963001b517f6) commit 709a972efb01efaeb97cad1adc87fe400119c8ab Author: Kees Cook Date: Wed Apr 10 08:48:31 2019 -0700 security: Implement Clang's stack initialization CONFIG_INIT_STACK_ALL turns on stack initialization based on -ftrivial-auto-var-init in Clang builds, which has greater coverage than CONFIG_GCC_PLUGINS_STRUCTLEAK_BYREF_ALL. -ftrivial-auto-var-init Clang option provides trivial initializers for uninitialized local variables, variable fields and padding. It has three possible values: pattern - uninitialized locals are filled with a fixed pattern (mostly 0xAA on 64-bit platforms, see https://reviews.llvm.org/D54604 for more details, but 0x000000AA for 32-bit pointers) likely to cause crashes when uninitialized value is used; zero (it's still debated whether this flag makes it to the official Clang release) - uninitialized locals are filled with zeroes; uninitialized (default) - uninitialized locals are left intact. This patch uses only the "pattern" mode when CONFIG_INIT_STACK_ALL is enabled. Developers have the possibility to opt-out of this feature on a per-variable basis by using __attribute__((uninitialized)), but such use should be well justified in comments. Co-developed-by: Alexander Potapenko Signed-off-by: Alexander Potapenko Signed-off-by: Kees Cook Tested-by: Alexander Potapenko Acked-by: Masahiro Yamada commit b6a6a3772d20b8552e703bb2a651760a22167cf6 Author: Kees Cook Date: Wed Apr 10 09:04:40 2019 -0700 security: Move stackleak config to Kconfig.hardening This moves the stackleak plugin options to Kconfig.hardening's memory initialization menu. Signed-off-by: Kees Cook Reviewed-by: Alexander Popov Acked-by: Masahiro Yamada commit 9f671e58159adea641f76c56d1f0bbdcb3c524ff Author: Kees Cook Date: Wed Apr 10 08:23:44 2019 -0700 security: Create "kernel hardening" config area Right now kernel hardening options are scattered around various Kconfig files. This can be a central place to collect these kinds of options going forward. This is initially populated with the memory initialization options from the gcc-plugins. Signed-off-by: Kees Cook Acked-by: Masahiro Yamada commit 96780e4f46b2fc0fc5ae2b95957002e2c42b11d3 Author: Ariel Levkovich Date: Sun Mar 31 19:44:49 2019 +0300 net/mlx5: Introduce new TIR creation core API Introducing new TIR creation core API which allows caller to receive back from the call the full command outbox. This comes as a preparation for the next patch that will retrieve the TIR ICM address from the command outbox. Signed-off-by: Ariel Levkovich Reviewed-by: Eli Cohen Reviewed-by: Mark Bloch Signed-off-by: Leon Romanovsky Signed-off-by: Saeed Mahameed commit 3e07047021d36674d9051e76454e8b6a3b599036 Author: Ariel Levkovich Date: Sun Mar 31 19:44:48 2019 +0300 net/mlx5: Expose TIR ICM address in command outbox Adding the TIR ICM address to the create_tir command outbox through which the device reports the ICM address of the newly created TIR. The TIR address can be used for direct attachment to a steering rule in SW managed steering mode. Signed-off-by: Ariel Levkovich Reviewed-by: Eli Cohen Reviewed-by: Mark Bloch Signed-off-by: Leon Romanovsky Signed-off-by: Saeed Mahameed commit 9fba2b9b4f1566213a4f0cec658479d8915086fa Author: Ariel Levkovich Date: Sun Mar 31 19:44:43 2019 +0300 net/mlx5: Expose SW ICM related device memory capabilities Add SW ICM related fields to the device memory capabilities structure and sw ownership capability in flow table properties. The currently supported SW ICM types are steering and header modify and the changes exposes the device memory capabilities for each of these two types. SW ICM memory can be allocated by SW and then be accessed by RDMA operations for direct management of the HW packet handling tables. Signed-off-by: Ariel Levkovich Reviewed-by: Eli Cohen Reviewed-by: Mark Bloch Signed-off-by: Leon Romanovsky Signed-off-by: Saeed Mahameed commit 449a224c10a48d047c799c5c5d3b22d6aec98c60 Merge: 3c176c9d7244 4eb6ab13b991 Author: Jason Gunthorpe Date: Wed Apr 24 16:20:34 2019 -0300 Merge branch 'rdma_mmap' into rdma.git for-next Jason Gunthorpe says: ==================== Upon review it turns out there are some long standing problems in BAR mapping area: * BAR pages intended for read-only can be switched to writable via mprotect. * Missing use of rdma_user_mmap_io for the mlx5 clock BAR page. * Disassociate causes SIGBUS when touching the pages. * CPU pages are being mapped through to the process via remap_pfn_range instead of the more appropriate vm_insert_page, causing weird behaviors during disassociation. This series adds the missing VM_* flag manipulation, adds faulting a zero page for disassociation and revises the CPU page mappings to use vm_insert_page. ==================== For dependencies this branch is based on for-rc from git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git * branch 'rdma_mmap': RDMA: Remove rdma_user_mmap_page RDMA/mlx5: Use get_zeroed_page() for clock_info RDMA/ucontext: Fix regression with disassociate RDMA/mlx5: Use rdma_user_map_io for mapping BAR pages RDMA/mlx5: Do not allow the user to write to the clock page Signed-off-by: Jason Gunthorpe commit 4eb6ab13b99148b5bf9bfdae7977fe139b4452f8 Author: Jason Gunthorpe Date: Tue Apr 16 14:07:30 2019 +0300 RDMA: Remove rdma_user_mmap_page Upon further research drivers that want this should simply call the core function vm_insert_page(). The VMA holds a reference on the page and it will be automatically freed when the last reference drops. No need for disassociate to sequence the cleanup. Signed-off-by: Jason Gunthorpe Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit c049d56eb219661c9ae48d596c3e633973f89d1f Author: Vlad Buslov Date: Wed Apr 24 09:53:31 2019 +0300 net: sched: flower: refactor reoffload for concurrent access Recent changes that introduced unlocked flower did not properly account for case when reoffload is initiated concurrently with filter updates. To fix the issue, extend flower with 'hw_filters' list that is used to store filters that don't have 'skip_hw' flag set. Filter is added to the list when it is inserted to hardware and only removed from it after being unoffloaded from all drivers that parent block is attached to. This ensures that concurrent reoffload can still access filter that is being deleted and prevents race condition when driver callback can be removed when filter is no longer accessible trough idr, but is still present in hardware. Refactor fl_change() to respect new filter reference counter and to release filter reference with __fl_put() in case of error, instead of directly deallocating filter memory. This allows for concurrent access to filter from fl_reoffload() and protects it with reference counting. Refactor fl_reoffload() to iterate over hw_filters list instead of idr. Implement fl_get_next_hw_filter() helper function that is used to iterate over hw_filters list with reference counting and skips filters that are being concurrently deleted. Fixes: 92149190067d ("net: sched: flower: set unlocked flag for flower proto ops") Signed-off-by: Vlad Buslov Reviewed-by: Saeed Mahameed Signed-off-by: David S. Miller commit a3ddd94f3efb3a9eda8ce7183f821a9c4fa3b47f Author: Rosen Penev Date: Tue Apr 23 13:46:03 2019 -0700 net: mvneta: Switch to using devm_alloc_etherdev_mqs It allows some of the code to be simplified. Tested on Turris Omnia. Signed-off-by: Rosen Penev Signed-off-by: David S. Miller commit 4109a2c3b91e5f38e401fc4ea56848e65e429785 Author: Eric Dumazet Date: Tue Apr 23 09:24:46 2019 -0700 tipc: tipc_udp_recv() cleanup vs rcu verbs First thing tipc_udp_recv() does is to use rcu_dereference_sk_user_data(), and this is really hinting we already own rcu_read_lock() from the caller (UDP stack). No need to add another rcu_read_lock()/rcu_read_unlock() pair. Also use rcu_dereference() instead of rcu_dereference_rtnl() in the data path. Signed-off-by: Eric Dumazet Cc: Jon Maloy Cc: Ying Xue Signed-off-by: David S. Miller commit f36afdd0f53583759562cef3a8453919e3b86a7c Author: Krzysztof Kozlowski Date: Mon Apr 15 20:34:40 2019 +0200 arm64: dts: exynos: Move fixed-clocks out of soc The XXTI fixed-clock is the input to the SoC therefore it should not be inside the soc node. This also fixes DTC W=1 warning: arch/arm64/boot/dts/exynos/exynos7.dtsi:90.17-94.5: Warning (simple_bus_reg): /soc/xxti: missing or empty reg/ranges property While moving, change the name of the xxti node to match the generic type of device (following DeviceTree specification). Signed-off-by: Krzysztof Kozlowski commit 179a2802ac0f9a8e7ac7a5be83d1a39b03f27056 Author: Krzysztof Kozlowski Date: Mon Apr 15 20:34:39 2019 +0200 arm64: dts: exynos: Move pmu and timer nodes out of soc The ARM PMU and ARM architected timer nodes are part of ARM CPU design therefore they should not be inside the soc node. This also fixes DTC W=1 warnings like: arch/arm64/boot/dts/exynos/exynos7.dtsi:472.11-480.5: Warning (simple_bus_reg): /soc/arm-pmu: missing or empty reg/ranges property arch/arm64/boot/dts/exynos/exynos7.dtsi:482.9-492.5: Warning (simple_bus_reg): /soc/timer: missing or empty reg/ranges property Signed-off-by: Krzysztof Kozlowski commit b4bcbdee137833aab04942671b48a9a3beb0801b Author: Krzysztof Kozlowski Date: Mon Apr 15 21:02:22 2019 +0200 ARM: dts: s5pv210: Fix camera clock provider on Goni board The camera driver (according also to bindings) registers a clock provider if clock-output-names property is present and later the sensors use registered clocks. The DTS for S5Pv210 Goni board was incorrectly adding a child node with clock output cells but without clock-output-names property. Although the DTS was compiling (with "/soc/camera/clock-controller: missing or empty reg/ranges property" warning), the clock provider was not registered. Signed-off-by: Krzysztof Kozlowski commit 0fd5ff9e4cf4469911856d4e48b513e87cd4f279 Author: Krzysztof Kozlowski Date: Mon Apr 15 20:05:10 2019 +0200 ARM: dts: exynos: Properly override node to use MDMA0 on Universal C210 The Universal C210 (Exynos4210) uses the secure interface of MDMA0, instead of regular one - non-secure MDMA1. DTS was overriding MDMA1 node address which caused DTC W=1 warning: arch/arm/boot/dts/exynos4.dtsi:707.25-716.6: Warning (simple_bus_reg): /soc/amba/mdma@12850000: simple-bus unit address format error, expected "12840000" Signed-off-by: Krzysztof Kozlowski commit 1e440c223503c24959fcccb96c2b0e775a6b3bb9 Author: Krzysztof Kozlowski Date: Mon Apr 15 20:05:09 2019 +0200 ARM: dts: exynos: Move fixed-clocks out of soc on Exynos3250 The three fixed-clocks (xusbxti, xxti and xtcxo) are inputs to the Exynos3250 therefore they should not be inside the soc node. This also fixes DTC W=1 warning: arch/arm/boot/dts/exynos3250.dtsi:112.21-139.5: Warning (simple_bus_reg): /soc/fixed-rate-clocks: missing or empty reg/ranges property Signed-off-by: Krzysztof Kozlowski commit 39691e775a52c7f69cf164500bd541f7c88a468f Author: Krzysztof Kozlowski Date: Mon Apr 15 20:05:08 2019 +0200 ARM: dts: exynos: Remove unneeded address/size cells from fixed-clock on Exynos3250 xusbxti fixed-clock should not have address/size cells because it does not have any children. This also fixes DTC W=1 warning: arch/arm/boot/dts/exynos3250.dtsi:112.21-139.5: Warning (simple_bus_reg): /soc/fixed-rate-clocks: missing or empty reg/ranges property Signed-off-by: Krzysztof Kozlowski commit fce638e85350852294096d82d57a696b7cbb22b5 Author: Alan Tull Date: Wed Apr 24 10:39:16 2019 -0500 ARM: socfpga_defconfig: enable LTC2497 Enable the LTC2497 driver to support the two LTC2497's that are on the SoCFPGA Arria10 Devkit. Signed-off-by: Alan Tull Signed-off-by: Dinh Nguyen commit be00300147ae3c0b2fa4dbc5f00d4332a8d00fac Author: Krzysztof Kozlowski Date: Mon Apr 15 20:05:07 2019 +0200 ARM: dts: exynos: Move pmu and timer nodes out of soc The ARM PMU and ARM architected timer nodes are part of ARM CPU design therefore they should not be inside the soc node. This also fixes DTC W=1 warnings like: arch/arm/boot/dts/exynos3250.dtsi:106.21-135.5: Warning (simple_bus_reg): /soc/fixed-rate-clocks: missing or empty reg/ranges property arch/arm/boot/dts/exynos3250.dtsi:676.7-680.5: Warning (simple_bus_reg): /soc/pmu: missing or empty reg/ranges property Signed-off-by: Krzysztof Kozlowski Tested-by: Marek Szyprowski commit ed6c3a6d8996659e3bbf4214ba26b5e5a7440b26 Author: Corey Minyard Date: Wed Apr 24 12:21:13 2019 -0500 ipmi: Remove warning if no slave address is present It's just noise, really, lots of systems don't have it. Reported-by: Kamlakant Patel Signed-off-by: Corey Minyard commit 44f56a39addecd6e93b8aa6fa51a6255259edbbb Author: Corey Minyard Date: Wed Apr 24 10:11:16 2019 -0500 ipmi:ssif: Only unregister the platform driver if it was registered Otherwise you will get an error when the driver is removed if you set trydmi=0. Signed-off-by: Corey Minyard commit 95f18c9d1310730d075499a75aaf13bcd60405a7 Author: Shenghui Wang Date: Thu Apr 25 00:48:43 2019 +0800 bcache: avoid potential memleak of list of journal_replay(s) in the CACHE_SYNC branch of run_cache_set In the CACHE_SYNC branch of run_cache_set(), LIST_HEAD(journal) is used to collect journal_replay(s) and filled by bch_journal_read(). If all goes well, bch_journal_replay() will release the list of jounal_replay(s) at the end of the branch. If something goes wrong, code flow will jump to the label "err:" and leave the list unreleased. This patch will release the list of journal_replay(s) in the case of error detected. v1 -> v2: * Move the release code to the location after label 'err:' to simply the change. Signed-off-by: Shenghui Wang Signed-off-by: Coly Li Signed-off-by: Jens Axboe commit f16277ca20acf2c213fcd4b645f4c1cffcadf533 Author: Shenghui Wang Date: Thu Apr 25 00:48:42 2019 +0800 bcache: fix wrong usage use-after-freed on keylist in out_nocoalesce branch of btree_gc_coalesce Elements of keylist should be accessed before the list is freed. Move bch_keylist_free() calling after the while loop to avoid wrong content accessed. Signed-off-by: Shenghui Wang Signed-off-by: Coly Li Signed-off-by: Jens Axboe commit 631207314d88e9091be02fbdd1fdadb1ae2ed79a Author: Tang Junhui Date: Thu Apr 25 00:48:41 2019 +0800 bcache: fix failure in journal relplay journal replay failed with messages: Sep 10 19:10:43 ceph kernel: bcache: error on bb379a64-e44e-4812-b91d-a5599871a3b1: bcache: journal entries 2057493-2057567 missing! (replaying 2057493-2076601), disabling caching The reason is in journal_reclaim(), when discard is enabled, we send discard command and reclaim those journal buckets whose seq is old than the last_seq_now, but before we write a journal with last_seq_now, the machine is restarted, so the journal with the last_seq_now is not written to the journal bucket, and the last_seq_wrote in the newest journal is old than last_seq_now which we expect to be, so when we doing replay, journals from last_seq_wrote to last_seq_now are missing. It's hard to write a journal immediately after journal_reclaim(), and it harmless if those missed journal are caused by discarding since those journals are already wrote to btree node. So, if miss seqs are started from the beginning journal, we treat it as normal, and only print a message to show the miss journal, and point out it maybe caused by discarding. Patch v2 add a judgement condition to ignore the missed journal only when discard enabled as Coly suggested. (Coly Li: rebase the patch with other changes in bch_journal_replay()) Signed-off-by: Tang Junhui Tested-by: Dennis Schridde Signed-off-by: Coly Li Signed-off-by: Jens Axboe commit eb8cbb6df38f6e5124a3d5f1f8a3dbf519537c60 Author: Coly Li Date: Thu Apr 25 00:48:40 2019 +0800 bcache: improve bcache_reboot() This patch tries to release mutex bch_register_lock early, to give chance to stop cache set and bcache device early. This patch also expends time out of stopping all bcache device from 2 seconds to 10 seconds, because stopping writeback rate update worker may delay for 5 seconds, 2 seconds is not enough. After this patch applied, stopping bcache devices during system reboot or shutdown is very hard to be observed any more. Signed-off-by: Coly Li Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe commit 63d63b51d70fb5155754dcf0baa2c1700bcafcb0 Author: Coly Li Date: Thu Apr 25 00:48:39 2019 +0800 bcache: add comments for closure_fn to be called in closure_queue() Add code comments to explain which call back function might be called for the closure_queue(). This is an effort to make code to be more understandable for readers. Signed-off-by: Coly Li Reviewed-by: Chaitanya Kulkarni Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe commit bb6d355c2aff42d4075a8e7428dd72cb009d6143 Author: Coly Li Date: Thu Apr 25 00:48:38 2019 +0800 bcache: Add comments for blkdev_put() in registration code path Add comments to explain why in register_bcache() blkdev_put() won't be called in two location. Add comments to explain why blkdev_put() must be called in register_cache() when cache_alloc() failed. Signed-off-by: Coly Li Reviewed-by: Chaitanya Kulkarni Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe commit 88c12d42d2bb6e05deb3cfd24d12f6fe80544575 Author: Coly Li Date: Thu Apr 25 00:48:37 2019 +0800 bcache: add error check for calling register_bdev() This patch adds return value to register_bdev(). Then if failure happens inside register_bdev(), its caller register_bcache() may detect and handle the failure more properly. Signed-off-by: Coly Li Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe commit 68d10e6979a3b59e3cd2e90bfcafed79c4cf180a Author: Coly Li Date: Thu Apr 25 00:48:36 2019 +0800 bcache: return error immediately in bch_journal_replay() When failure happens inside bch_journal_replay(), calling cache_set_err_on() and handling the failure in async way is not a good idea. Because after bch_journal_replay() returns, registering code will continue to execute following steps, and unregistering code triggered by cache_set_err_on() is running in same time. First it is unnecessary to handle failure and unregister cache set in an async way, second there might be potential race condition to run register and unregister code for same cache set. So in this patch, if failure happens in bch_journal_replay(), we don't call cache_set_err_on(), and just print out the same error message to kernel message buffer, then return -EIO immediately caller. Then caller can detect such failure and handle it in synchrnozied way. Signed-off-by: Coly Li Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe commit 2d17456eb1cc78803b999fdd503c2dbd42a7d3da Author: Coly Li Date: Thu Apr 25 00:48:35 2019 +0800 bcache: add comments for kobj release callback routine Bcache has several routines to release resources in implicit way, they are called when the associated kobj released. This patch adds code comments to notice when and which release callback will be called, - When dc->disk.kobj released: void bch_cached_dev_release(struct kobject *kobj) - When d->kobj released: void bch_flash_dev_release(struct kobject *kobj) - When c->kobj released: void bch_cache_set_release(struct kobject *kobj) - When ca->kobj released void bch_cache_release(struct kobject *kobj) Signed-off-by: Coly Li Reviewed-by: Chaitanya Kulkarni Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe commit ce3e4cfb59cb382f8e5ce359238aa580d4ae7778 Author: Coly Li Date: Thu Apr 25 00:48:34 2019 +0800 bcache: add failure check to run_cache_set() for journal replay Currently run_cache_set() has no return value, if there is failure in bch_journal_replay(), the caller of run_cache_set() has no idea about such failure and just continue to execute following code after run_cache_set(). The internal failure is triggered inside bch_journal_replay() and being handled in async way. This behavior is inefficient, while failure handling inside bch_journal_replay(), cache register code is still running to start the cache set. Registering and unregistering code running as same time may introduce some rare race condition, and make the code to be more hard to be understood. This patch adds return value to run_cache_set(), and returns -EIO if bch_journal_rreplay() fails. Then caller of run_cache_set() may detect such failure and stop registering code flow immedidately inside register_cache_set(). If journal replay fails, run_cache_set() can report error immediately to register_cache_set(). This patch makes the failure handling for bch_journal_replay() be in synchronized way, easier to understand and debug, and avoid poetential race condition for register-and-unregister in same time. Signed-off-by: Coly Li Signed-off-by: Jens Axboe commit 1bee2addc0c8470c8aaa65ef0599eeae96dd88bc Author: Coly Li Date: Thu Apr 25 00:48:33 2019 +0800 bcache: never set KEY_PTRS of journal key to 0 in journal_reclaim() In journal_reclaim() ja->cur_idx of each cache will be update to reclaim available journal buckets. Variable 'int n' is used to count how many cache is successfully reclaimed, then n is set to c->journal.key by SET_KEY_PTRS(). Later in journal_write_unlocked(), a for_each_cache() loop will write the jset data onto each cache. The problem is, if all jouranl buckets on each cache is full, the following code in journal_reclaim(), 529 for_each_cache(ca, c, iter) { 530 struct journal_device *ja = &ca->journal; 531 unsigned int next = (ja->cur_idx + 1) % ca->sb.njournal_buckets; 532 533 /* No space available on this device */ 534 if (next == ja->discard_idx) 535 continue; 536 537 ja->cur_idx = next; 538 k->ptr[n++] = MAKE_PTR(0, 539 bucket_to_sector(c, ca->sb.d[ja->cur_idx]), 540 ca->sb.nr_this_dev); 541 } 542 543 bkey_init(k); 544 SET_KEY_PTRS(k, n); If there is no available bucket to reclaim, the if() condition at line 534 will always true, and n remains 0. Then at line 544, SET_KEY_PTRS() will set KEY_PTRS field of c->journal.key to 0. Setting KEY_PTRS field of c->journal.key to 0 is wrong. Because in journal_write_unlocked() the journal data is written in following loop, 649 for (i = 0; i < KEY_PTRS(k); i++) { 650-671 submit journal data to cache device 672 } If KEY_PTRS field is set to 0 in jouranl_reclaim(), the journal data won't be written to cache device here. If system crahed or rebooted before bkeys of the lost journal entries written into btree nodes, data corruption will be reported during bcache reload after rebooting the system. Indeed there is only one cache in a cache set, there is no need to set KEY_PTRS field in journal_reclaim() at all. But in order to keep the for_each_cache() logic consistent for now, this patch fixes the above problem by not setting 0 KEY_PTRS of journal key, if there is no bucket available to reclaim. Signed-off-by: Coly Li Reviewed-by: Hannes Reinecke Cc: stable@vger.kernel.org Signed-off-by: Jens Axboe commit 14215ee01f6377c81c25c2cecda729e8811d2826 Author: Coly Li Date: Thu Apr 25 00:48:32 2019 +0800 bcache: move definition of 'int ret' out of macro read_bucket() 'int ret' is defined as a local variable inside macro read_bucket(). Since this macro is called multiple times, and following patches will use a 'int ret' variable in bch_journal_read(), this patch moves definition of 'int ret' from macro read_bucket() to range of function bch_journal_read(). Signed-off-by: Coly Li Reviewed-by: Hannes Reinecke Signed-off-by: Jens Axboe commit a4b732a248d12cbdb46999daf0bf288c011335eb Author: Liang Chen Date: Thu Apr 25 00:48:31 2019 +0800 bcache: fix a race between cache register and cacheset unregister There is a race between cache device register and cache set unregister. For an already registered cache device, register_bcache will call bch_is_open to iterate through all cachesets and check every cache there. The race occurs if cache_set_free executes at the same time and clears the caches right before ca is dereferenced in bch_is_open_cache. To close the race, let's make sure the clean up work is protected by the bch_register_lock as well. This issue can be reproduced as follows, while true; do echo /dev/XXX> /sys/fs/bcache/register ; done& while true; do echo 1> /sys/block/XXX/bcache/set/unregister ; done & and results in the following oops, [ +0.000053] BUG: unable to handle kernel NULL pointer dereference at 0000000000000998 [ +0.000457] #PF error: [normal kernel read fault] [ +0.000464] PGD 800000003ca9d067 P4D 800000003ca9d067 PUD 3ca9c067 PMD 0 [ +0.000388] Oops: 0000 [#1] SMP PTI [ +0.000269] CPU: 1 PID: 3266 Comm: bash Not tainted 5.0.0+ #6 [ +0.000346] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.11.0-2.fc28 04/01/2014 [ +0.000472] RIP: 0010:register_bcache+0x1829/0x1990 [bcache] [ +0.000344] Code: b0 48 83 e8 50 48 81 fa e0 e1 10 c0 0f 84 a9 00 00 00 48 89 c6 48 89 ca 0f b7 ba 54 04 00 00 4c 8b 82 60 0c 00 00 85 ff 74 2f <49> 3b a8 98 09 00 00 74 4e 44 8d 47 ff 31 ff 49 c1 e0 03 eb 0d [ +0.000839] RSP: 0018:ffff92ee804cbd88 EFLAGS: 00010202 [ +0.000328] RAX: ffffffffc010e190 RBX: ffff918b5c6b5000 RCX: ffff918b7d8e0000 [ +0.000399] RDX: ffff918b7d8e0000 RSI: ffffffffc010e190 RDI: 0000000000000001 [ +0.000398] RBP: ffff918b7d318340 R08: 0000000000000000 R09: ffffffffb9bd2d7a [ +0.000385] R10: ffff918b7eb253c0 R11: ffffb95980f51200 R12: ffffffffc010e1a0 [ +0.000411] R13: fffffffffffffff2 R14: 000000000000000b R15: ffff918b7e232620 [ +0.000384] FS: 00007f955bec2740(0000) GS:ffff918b7eb00000(0000) knlGS:0000000000000000 [ +0.000420] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ +0.000801] CR2: 0000000000000998 CR3: 000000003cad6000 CR4: 00000000001406e0 [ +0.000837] Call Trace: [ +0.000682] ? _cond_resched+0x10/0x20 [ +0.000691] ? __kmalloc+0x131/0x1b0 [ +0.000710] kernfs_fop_write+0xfa/0x170 [ +0.000733] __vfs_write+0x2e/0x190 [ +0.000688] ? inode_security+0x10/0x30 [ +0.000698] ? selinux_file_permission+0xd2/0x120 [ +0.000752] ? security_file_permission+0x2b/0x100 [ +0.000753] vfs_write+0xa8/0x1a0 [ +0.000676] ksys_write+0x4d/0xb0 [ +0.000699] do_syscall_64+0x3a/0xf0 [ +0.000692] entry_SYSCALL_64_after_hwframe+0x44/0xa9 Signed-off-by: Liang Chen Cc: stable@vger.kernel.org Signed-off-by: Coly Li Signed-off-by: Jens Axboe commit 3a3947271cd6ce05c5b30c1250fa99de57410500 Author: George Spelvin Date: Thu Apr 25 00:48:30 2019 +0800 bcache: Clean up bch_get_congested() There are a few nits in this function. They could in theory all be separate patches, but that's probably taking small commits too far. 1) I added a brief comment saying what it does. 2) I like to declare pointer parameters "const" where possible for documentation reasons. 3) It uses bitmap_weight(&rand, BITS_PER_LONG) to compute the Hamming weight of a 32-bit random number (giving a random integer with mean 16 and variance 8). Passing by reference in a 64-bit variable is silly; just use hweight32(). 4) Its helper function fract_exp_two is unnecessarily tangled. Gcc can optimize the multiply by (1 << x) to a shift, but it can be written in a much more straightforward way at the cost of one more bit of internal precision. Some analysis reveals that this bit is always available. This shrinks the object code for fract_exp_two(x, 6) from 23 bytes: 0000000000000000 : 0: 89 f9 mov %edi,%ecx 2: c1 e9 06 shr $0x6,%ecx 5: b8 01 00 00 00 mov $0x1,%eax a: d3 e0 shl %cl,%eax c: 83 e7 3f and $0x3f,%edi f: d3 e7 shl %cl,%edi 11: c1 ef 06 shr $0x6,%edi 14: 01 f8 add %edi,%eax 16: c3 retq To 19: 0000000000000017 : 17: 89 f8 mov %edi,%eax 19: 83 e0 3f and $0x3f,%eax 1c: 83 c0 40 add $0x40,%eax 1f: 89 f9 mov %edi,%ecx 21: c1 e9 06 shr $0x6,%ecx 24: d3 e0 shl %cl,%eax 26: c1 e8 06 shr $0x6,%eax 29: c3 retq (Verified with 0 <= frac_bits <= 8, 0 <= x < 16< Signed-off-by: Coly Li Signed-off-by: Jens Axboe commit 792732d9852c0e4505aceff4631ea2168fd02480 Author: Geliang Tang Date: Thu Apr 25 00:48:29 2019 +0800 bcache: use kmemdup_nul for CACHED_LABEL buffer This patch uses kmemdup_nul to create a NUL-terminated string from dc->sb.label. This is better than open coding it. With this, we can move env[2] initialization into env[] array to make code more elegant. Signed-off-by: Geliang Tang Signed-off-by: Coly Li Signed-off-by: Jens Axboe commit 78d4eb8ad9e1d413449d1b7a060f50b6efa81ebd Author: Arnd Bergmann Date: Thu Apr 25 00:48:28 2019 +0800 bcache: avoid clang -Wunintialized warning clang has identified a code path in which it thinks a variable may be unused: drivers/md/bcache/alloc.c:333:4: error: variable 'bucket' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized] fifo_pop(&ca->free_inc, bucket); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/md/bcache/util.h:219:27: note: expanded from macro 'fifo_pop' #define fifo_pop(fifo, i) fifo_pop_front(fifo, (i)) ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/md/bcache/util.h:189:6: note: expanded from macro 'fifo_pop_front' if (_r) { \ ^~ drivers/md/bcache/alloc.c:343:46: note: uninitialized use occurs here allocator_wait(ca, bch_allocator_push(ca, bucket)); ^~~~~~ drivers/md/bcache/alloc.c:287:7: note: expanded from macro 'allocator_wait' if (cond) \ ^~~~ drivers/md/bcache/alloc.c:333:4: note: remove the 'if' if its condition is always true fifo_pop(&ca->free_inc, bucket); ^ drivers/md/bcache/util.h:219:27: note: expanded from macro 'fifo_pop' #define fifo_pop(fifo, i) fifo_pop_front(fifo, (i)) ^ drivers/md/bcache/util.h:189:2: note: expanded from macro 'fifo_pop_front' if (_r) { \ ^ drivers/md/bcache/alloc.c:331:15: note: initialize the variable 'bucket' to silence this warning long bucket; ^ This cannot happen in practice because we only enter the loop if there is at least one element in the list. Slightly rearranging the code makes this clearer to both the reader and the compiler, which avoids the warning. Signed-off-by: Arnd Bergmann Reviewed-by: Nathan Chancellor Signed-off-by: Coly Li Signed-off-by: Jens Axboe commit 4e0c04ec3a304490a83d5c0355e64176acc9b4ba Author: Guoju Fang Date: Thu Apr 25 00:48:27 2019 +0800 bcache: fix inaccurate result of unused buckets To get the amount of unused buckets in sysfs_priority_stats, the code count the buckets which GC_SECTORS_USED is zero. It's correct and should not be overwritten by the count of buckets which prio is zero. Signed-off-by: Guoju Fang Signed-off-by: Coly Li Signed-off-by: Jens Axboe commit 1568ee7e3c6305d9fbb2414bfd4b56e52853d42d Author: Guoju Fang Date: Thu Apr 25 00:48:26 2019 +0800 bcache: fix crashes stopping bcache device before read miss done The bio from upper layer is considered completed when bio_complete() returns. In most scenarios bio_complete() is called in search_free(), but when read miss happens, the bio_compete() is called when backing device reading completed, while the struct search is still in use until cache inserting finished. If someone stops the bcache device just then, the device may be closed and released, but after cache inserting finished the struct search will access a freed struct cached_dev. This patch add the reference of bcache device before bio_complete() when read miss happens, and put it after the search is not used. Signed-off-by: Guoju Fang Signed-off-by: Coly Li Signed-off-by: Jens Axboe commit ddcdc368b1033e19fd3a5f750752e10e28a87826 Author: Jason Gunthorpe Date: Tue Apr 16 14:07:29 2019 +0300 RDMA/mlx5: Use get_zeroed_page() for clock_info get_zeroed_page() returns a virtual address for the page which is better than allocating a struct page and doing a permanent kmap on it. Cc: stable@vger.kernel.org Signed-off-by: Jason Gunthorpe Reviewed-by: Haggai Eran Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 6407f44aaf2a39b5ccbb1cc1d342b906dcfa8a87 Author: Ian Abbott Date: Wed Apr 24 15:14:11 2019 +0100 fuse: Add ioctl flag for x32 compat ioctl Currently, a CUSE server running on a 64-bit kernel can tell when an ioctl request comes from a process running a 32-bit ABI, but cannot tell whether the requesting process is using legacy IA32 emulation or x32 ABI. In particular, the server does not know the size of the client process's `time_t` type. For 64-bit kernels, the `FUSE_IOCTL_COMPAT` and `FUSE_IOCTL_32BIT` flags are currently set in the ioctl input request (`struct fuse_ioctl_in` member `flags`) for a 32-bit requesting process. This patch defines a new flag `FUSE_IOCTL_COMPAT_X32` and sets it if the 32-bit requesting process is using the x32 ABI. This allows the server process to distinguish between requests coming from client processes using IA32 emulation or the x32 ABI and so infer the size of the client process's `time_t` type and any other IA32/x32 differences. Signed-off-by: Ian Abbott Signed-off-by: Miklos Szeredi commit 29cc02d949b19fdeba9de9f54b2641005f5865c6 Author: David Howells Date: Wed Mar 27 23:44:19 2019 +0000 fuse: Convert fusectl to use the new mount API Convert the fusectl filesystem to the new internal mount API as the old one will be obsoleted and removed. This allows greater flexibility in communication of mount parameters between userspace, the VFS and the filesystem. See Documentation/filesystems/mount_api.txt for more information. Signed-off-by: David Howells Signed-off-by: Miklos Szeredi commit 7142fd1be3275a64773a2252ed6b97e924677e9f Author: Alan Somers Date: Fri Apr 19 15:42:46 2019 -0600 fuse: fix changelog entry for protocol 7.9 Retroactively add changelog entry for the atime and mtime "now" flags. This was an oversight in commit 17637cbaba59 ("fuse: improve utimes support"). Signed-off-by: Alan Somers Signed-off-by: Miklos Szeredi commit 68065b84155777335451cf8efdb2e68fddac71ca Author: Alan Somers Date: Fri Apr 19 15:42:45 2019 -0600 fuse: fix changelog entry for protocol 7.12 This was a mistake in the comment in commit e0a43ddcc08c ("fuse: allow umask processing in userspace"). Signed-off-by: Alan Somers Signed-off-by: Miklos Szeredi commit 154603fe3ec4620a4c229a127ddbccf5c69f9463 Author: Alan Somers Date: Fri Apr 19 15:42:44 2019 -0600 fuse: document fuse_fsync_in.fsync_flags The FUSE_FSYNC_DATASYNC flag was introduced by commit b6aeadeda22a ("[PATCH] FUSE - file operations") as a magic number. No new values have been added to fsync_flags since. Signed-off-by: Alan Somers Signed-off-by: Miklos Szeredi commit bbd84f33652f852ce5992d65db4d020aba21f882 Author: Kirill Smelkov Date: Wed Apr 24 07:13:57 2019 +0000 fuse: Add FOPEN_STREAM to use stream_open() Starting from commit 9c225f2655e3 ("vfs: atomic f_pos accesses as per POSIX") files opened even via nonseekable_open gate read and write via lock and do not allow them to be run simultaneously. This can create read vs write deadlock if a filesystem is trying to implement a socket-like file which is intended to be simultaneously used for both read and write from filesystem client. See commit 10dce8af3422 ("fs: stream_open - opener for stream-like files so that read and write can run simultaneously without deadlock") for details and e.g. commit 581d21a2d02a ("xenbus: fix deadlock on writes to /proc/xen/xenbus") for a similar deadlock example on /proc/xen/xenbus. To avoid such deadlock it was tempting to adjust fuse_finish_open to use stream_open instead of nonseekable_open on just FOPEN_NONSEEKABLE flags, but grepping through Debian codesearch shows users of FOPEN_NONSEEKABLE, and in particular GVFS which actually uses offset in its read and write handlers https://codesearch.debian.net/search?q=-%3Enonseekable+%3D https://gitlab.gnome.org/GNOME/gvfs/blob/1.40.0-6-gcbc54396/client/gvfsfusedaemon.c#L1080 https://gitlab.gnome.org/GNOME/gvfs/blob/1.40.0-6-gcbc54396/client/gvfsfusedaemon.c#L1247-1346 https://gitlab.gnome.org/GNOME/gvfs/blob/1.40.0-6-gcbc54396/client/gvfsfusedaemon.c#L1399-1481 so if we would do such a change it will break a real user. Add another flag (FOPEN_STREAM) for filesystem servers to indicate that the opened handler is having stream-like semantics; does not use file position and thus the kernel is free to issue simultaneous read and write request on opened file handle. This patch together with stream_open() should be added to stable kernels starting from v3.14+. This will allow to patch OSSPD and other FUSE filesystems that provide stream-like files to return FOPEN_STREAM | FOPEN_NONSEEKABLE in open handler and this way avoid the deadlock on all kernel versions. This should work because fuse_finish_open ignores unknown open flags returned from a filesystem and so passing FOPEN_STREAM to a kernel that is not aware of this flag cannot hurt. In turn the kernel that is not aware of FOPEN_STREAM will be < v3.14 where just FOPEN_NONSEEKABLE is sufficient to implement streams without read vs write deadlock. Cc: stable@vger.kernel.org # v3.14+ Signed-off-by: Kirill Smelkov Signed-off-by: Miklos Szeredi commit d4b13963f217dd947da5c0cabd1569e914d21699 Author: Kirill Smelkov Date: Wed Mar 27 10:15:15 2019 +0000 fuse: require /dev/fuse reads to have enough buffer capacity A FUSE filesystem server queues /dev/fuse sys_read calls to get filesystem requests to handle. It does not know in advance what would be that request as it can be anything that client issues - LOOKUP, READ, WRITE, ... Many requests are short and retrieve data from the filesystem. However WRITE and NOTIFY_REPLY write data into filesystem. Before getting into operation phase, FUSE filesystem server and kernel client negotiate what should be the maximum write size the client will ever issue. After negotiation the contract in between server/client is that the filesystem server then should queue /dev/fuse sys_read calls with enough buffer capacity to receive any client request - WRITE in particular, while FUSE client should not, in particular, send WRITE requests with > negotiated max_write payload. FUSE client in kernel and libfuse historically reserve 4K for request header. This way the contract is that filesystem server should queue sys_reads with 4K+max_write buffer. If the filesystem server does not follow this contract, what can happen is that fuse_dev_do_read will see that request size is > buffer size, and then it will return EIO to client who issued the request but won't indicate in any way that there is a problem to filesystem server. This can be hard to diagnose because for some requests, e.g. for NOTIFY_REPLY which mimics WRITE, there is no client thread that is waiting for request completion and that EIO goes nowhere, while on filesystem server side things look like the kernel is not replying back after successful NOTIFY_RETRIEVE request made by the server. We can make the problem easy to diagnose if we indicate via error return to filesystem server when it is violating the contract. This should not practically cause problems because if a filesystem server is using shorter buffer, writes to it were already very likely to cause EIO, and if the filesystem is read-only it should be too following FUSE_MIN_READ_BUFFER minimum buffer size. Please see [1] for context where the problem of stuck filesystem was hit for real (because kernel client was incorrectly sending more than max_write data with NOTIFY_REPLY; see also previous patch), how the situation was traced and for more involving patch that did not make it into the tree. [1] https://marc.info/?l=linux-fsdevel&m=155057023600853&w=2 Signed-off-by: Kirill Smelkov Cc: Han-Wen Nienhuys Cc: Jakob Unterwurzacher Signed-off-by: Miklos Szeredi commit 7640682e67b33cab8628729afec8ca92b851394f Author: Kirill Smelkov Date: Wed Mar 27 10:15:19 2019 +0000 fuse: retrieve: cap requested size to negotiated max_write FUSE filesystem server and kernel client negotiate during initialization phase, what should be the maximum write size the client will ever issue. Correspondingly the filesystem server then queues sys_read calls to read requests with buffer capacity large enough to carry request header + that max_write bytes. A filesystem server is free to set its max_write in anywhere in the range between [1*page, fc->max_pages*page]. In particular go-fuse[2] sets max_write by default as 64K, wheres default fc->max_pages corresponds to 128K. Libfuse also allows users to configure max_write, but by default presets it to possible maximum. If max_write is < fc->max_pages*page, and in NOTIFY_RETRIEVE handler we allow to retrieve more than max_write bytes, corresponding prepared NOTIFY_REPLY will be thrown away by fuse_dev_do_read, because the filesystem server, in full correspondence with server/client contract, will be only queuing sys_read with ~max_write buffer capacity, and fuse_dev_do_read throws away requests that cannot fit into server request buffer. In turn the filesystem server could get stuck waiting indefinitely for NOTIFY_REPLY since NOTIFY_RETRIEVE handler returned OK which is understood by clients as that NOTIFY_REPLY was queued and will be sent back. Cap requested size to negotiate max_write to avoid the problem. This aligns with the way NOTIFY_RETRIEVE handler works, which already unconditionally caps requested retrieve size to fuse_conn->max_pages. This way it should not hurt NOTIFY_RETRIEVE semantic if we return less data than was originally requested. Please see [1] for context where the problem of stuck filesystem was hit for real, how the situation was traced and for more involving patch that did not make it into the tree. [1] https://marc.info/?l=linux-fsdevel&m=155057023600853&w=2 [2] https://github.com/hanwen/go-fuse Signed-off-by: Kirill Smelkov Cc: Han-Wen Nienhuys Cc: Jakob Unterwurzacher Signed-off-by: Miklos Szeredi commit ad2ba64dd489805e7ddf5fecf166cae1e09fc5c0 Author: Kirill Smelkov Date: Wed Mar 27 11:14:15 2019 +0000 fuse: allow filesystems to have precise control over data cache On networked filesystems file data can be changed externally. FUSE provides notification messages for filesystem to inform kernel that metadata or data region of a file needs to be invalidated in local page cache. That provides the basis for filesystem implementations to invalidate kernel cache explicitly based on observed filesystem-specific events. FUSE has also "automatic" invalidation mode(*) when the kernel automatically invalidates data cache of a file if it sees mtime change. It also automatically invalidates whole data cache of a file if it sees file size being changed. The automatic mode has corresponding capability - FUSE_AUTO_INVAL_DATA. However, due to probably historical reason, that capability controls only whether mtime change should be resulting in automatic invalidation or not. A change in file size always results in invalidating whole data cache of a file irregardless of whether FUSE_AUTO_INVAL_DATA was negotiated(+). The filesystem I write[1] represents data arrays stored in networked database as local files suitable for mmap. It is read-only filesystem - changes to data are committed externally via database interfaces and the filesystem only glues data into contiguous file streams suitable for mmap and traditional array processing. The files are big - starting from hundreds gigabytes and more. The files change regularly, and frequently by data being appended to their end. The size of files thus changes frequently. If a file was accessed locally and some part of its data got into page cache, we want that data to stay cached unless there is memory pressure, or unless corresponding part of the file was actually changed. However current FUSE behaviour - when it sees file size change - is to invalidate the whole file. The data cache of the file is thus completely lost even on small size change, and despite that the filesystem server is careful to accurately translate database changes into FUSE invalidation messages to kernel. Let's fix it: if a filesystem, through new FUSE_EXPLICIT_INVAL_DATA capability, indicates to kernel that it is fully responsible for data cache invalidation, then the kernel won't invalidate files data cache on size change and only truncate that cache to new size in case the size decreased. (*) see 72d0d248ca "fuse: add FUSE_AUTO_INVAL_DATA init flag", eed2179efe "fuse: invalidate inode mapping if mtime changes" (+) in writeback mode the kernel does not invalidate data cache on file size change, but neither it allows the filesystem to set the size due to external event (see 8373200b12 "fuse: Trust kernel i_size only") [1] https://lab.nexedi.com/kirr/wendelin.core/blob/a50f1d9f/wcfs/wcfs.go#L20 Signed-off-by: Kirill Smelkov Signed-off-by: Miklos Szeredi commit f2294482ff65dd9c9c3c6ae1447f908c6aa60f52 Author: Kirill Smelkov Date: Wed Mar 27 09:15:17 2019 +0000 fuse: convert printk -> pr_* Functions, like pr_err, are a more modern variant of printing compared to printk. They could be used to denoise sources by using needed level in the print function name, and by automatically inserting per-driver / function / ... print prefix as defined by pr_fmt macro. pr_* are also said to be used in Documentation/process/coding-style.rst and more recent code - for example overlayfs - uses them instead of printk. Convert CUSE and FUSE to use the new pr_* functions. CUSE output stays completely unchanged, while FUSE output is amended a bit for "trying to steal weird page" warning - the second line now comes also with "fuse:" prefix. I hope it is ok. Suggested-by: Kirill Tkhai Signed-off-by: Kirill Smelkov Reviewed-by: Kirill Tkhai Signed-off-by: Miklos Szeredi commit 0cbade024ba501313da3b7e5dd2a188a6bc491b5 Author: Liu Bo Date: Thu Apr 18 04:04:41 2019 +0800 fuse: honor RLIMIT_FSIZE in fuse_file_fallocate fstests generic/228 reported this failure that fuse fallocate does not honor what 'ulimit -f' has set. This adds the necessary inode_newsize_ok() check. Signed-off-by: Liu Bo Fixes: 05ba1f082300 ("fuse: add FALLOCATE operation") Cc: # v3.5 Signed-off-by: Miklos Szeredi commit 9de5be06d0a89ca97b5ab902694d42dfd2bb77d2 Author: Miklos Szeredi Date: Wed Apr 24 17:05:06 2019 +0200 fuse: fix writepages on 32bit Writepage requests were cropped to i_size & 0xffffffff, which meant that mmaped writes to any file larger than 4G might be silently discarded. Fix by storing the file size in a properly sized variable (loff_t instead of size_t). Reported-by: Antonio SJ Musumeci Fixes: 6eaf4782eb09 ("fuse: writepages: crop secondary requests") Cc: # v3.13 Signed-off-by: Miklos Szeredi commit 3c176c9d72446217f6451543452692141eb665dc Author: John Fleck Date: Thu Apr 11 07:17:21 2019 -0700 IB/hfi1: Remove reference to RHF.VCRCErr The bit VCRCErr in the receive header flag is actually a reserved field. Remove bit operations on this field. Reviewed-by: Michael J. Ruhl Reviewed-by: Dennis Dalessandro Signed-off-by: John Fleck Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit a9c62e007878ba88b703369c1cd9e26682453665 Author: Mike Marciniszyn Date: Thu Apr 11 07:17:10 2019 -0700 IB/hfi1: Add selected Rcv counters These counters are required for error analysis and debug. Reviewed-by: Dennis Dalessandro Signed-off-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit a9bf3130ebfe0378df449a1b13997c47a58e661a Author: Andrew Murray Date: Tue Apr 9 20:22:17 2019 +0100 arm64: docs: Document perf event attributes The interaction between the exclude_{host,guest} flags, exclude_{user,kernel,hv} flags and presence of VHE can result in different exception levels being filtered by the ARMv8 PMU. As this can be confusing let's document how they work on arm64. Signed-off-by: Andrew Murray Reviewed-by: Suzuki K Poulose Acked-by: Will Deacon Signed-off-by: Marc Zyngier commit 39e3406a090a54e700a7c0820c8258af1196b0c2 Author: Andrew Murray Date: Tue Apr 9 20:22:16 2019 +0100 arm64: KVM: Avoid isb's by using direct pmxevtyper sysreg Upon entering or exiting a guest we may modify multiple PMU counters to enable of disable EL0 filtering. We presently do this via the indirect PMXEVTYPER_EL0 system register (where the counter we modify is selected by PMSELR). With this approach it is necessary to order the writes via isb instructions such that we select the correct counter before modifying it. Let's avoid potentially expensive instruction barriers by using the direct PMEVTYPER_EL0 registers instead. As the change to counter type relates only to EL0 filtering we can rely on the implicit instruction barrier which occurs when we transition from EL2 to EL1 on entering the guest. On returning to userspace we can, at the latest, rely on the implicit barrier between EL2 and EL0. We can also depend on the explicit isb in armv8pmu_select_counter to order our write against any other kernel changes by the PMU driver to the type register as a result of preemption. Signed-off-by: Andrew Murray Reviewed-by: Suzuki K Poulose Signed-off-by: Marc Zyngier commit 435e53fb5e21ad1820c5c69f208304c0e5623d01 Author: Andrew Murray Date: Tue Apr 9 20:22:15 2019 +0100 arm64: KVM: Enable VHE support for :G/:H perf event modifiers With VHE different exception levels are used between the host (EL2) and guest (EL1) with a shared exception level for userpace (EL0). We can take advantage of this and use the PMU's exception level filtering to avoid enabling/disabling counters in the world-switch code. Instead we just modify the counter type to include or exclude EL0 at vcpu_{load,put} time. We also ensure that trapped PMU system register writes do not re-enable EL0 when reconfiguring the backing perf events. This approach completely avoids blackout windows seen with !VHE. Suggested-by: Christoffer Dall Signed-off-by: Andrew Murray Acked-by: Will Deacon Reviewed-by: Suzuki K Poulose Signed-off-by: Marc Zyngier commit 55be8658c7e2feb11a5b5b33ee031791dbd23a69 Author: Kamlakant Patel Date: Wed Apr 24 11:50:43 2019 +0000 ipmi:ssif: compare block number correctly for multi-part return messages According to ipmi spec, block number is a number that is incremented, starting with 0, for each new block of message data returned using the middle transaction. Here, the 'blocknum' is data[0] which always starts from zero(0) and 'ssif_info->multi_pos' starts from 1. So, we need to add +1 to blocknum while comparing with multi_pos. Fixes: 7d6380cd40f79 ("ipmi:ssif: Fix handling of multi-part return messages"). Reported-by: Kiran Kolukuluru Signed-off-by: Kamlakant Patel Message-Id: <1556106615-18722-1-git-send-email-kamlakantp@marvell.com> [Also added a debug log if the block numbers don't match.] Signed-off-by: Corey Minyard Cc: stable@vger.kernel.org # 4.4 commit 3d91befbb3a0fcec6e1eebde45c8074b88cc9441 Author: Andrew Murray Date: Tue Apr 9 20:22:14 2019 +0100 arm64: KVM: Enable !VHE support for :G/:H perf event modifiers Enable/disable event counters as appropriate when entering and exiting the guest to enable support for guest or host only event counting. For both VHE and non-VHE we switch the counters between host/guest at EL2. The PMU may be on when we change which counters are enabled however we avoid adding an isb as we instead rely on existing context synchronisation events: the eret to enter the guest (__guest_enter) and eret in kvm_call_hyp for __kvm_vcpu_run_nvhe on returning. Signed-off-by: Andrew Murray Reviewed-by: Suzuki K Poulose Signed-off-by: Marc Zyngier commit d1947bc4bc63e56014bb4d812e0db89944ed4a0f Author: Andrew Murray Date: Tue Apr 9 20:22:13 2019 +0100 arm64: arm_pmu: Add !VHE support for exclude_host/exclude_guest attributes Add support for the :G and :H attributes in perf by handling the exclude_host/exclude_guest event attributes. We notify KVM of counters that we wish to be enabled or disabled on guest entry/exit and thus defer from starting or stopping events based on their event attributes. With !VHE we switch the counters between host/guest at EL2. We are able to eliminate counters counting host events on the boundaries of guest entry/exit when using :G by filtering out EL2 for exclude_host. When using !exclude_hv there is a small blackout window at the guest entry/exit where host events are not captured. Signed-off-by: Andrew Murray Acked-by: Will Deacon Signed-off-by: Marc Zyngier commit eb41238cf19fda694e3a99c1f4f58bd88479a5ee Author: Andrew Murray Date: Tue Apr 9 20:22:12 2019 +0100 arm64: KVM: Add accessors to track guest/host only counters In order to effeciently switch events_{guest,host} perf counters at guest entry/exit we add bitfields to kvm_cpu_context for guest and host events as well as accessors for updating them. A function is also provided which allows the PMU driver to determine if a counter should start counting when it is enabled. With exclude_host, we may only start counting when entering the guest. Signed-off-by: Andrew Murray Signed-off-by: Marc Zyngier commit 630a16854d2d28d13e96ff27ab43cc5caa4609fc Author: Andrew Murray Date: Tue Apr 9 20:22:11 2019 +0100 arm64: KVM: Encapsulate kvm_cpu_context in kvm_host_data The virt/arm core allocates a kvm_cpu_context_t percpu, at present this is a typedef to kvm_cpu_context and is used to store host cpu context. The kvm_cpu_context structure is also used elsewhere to hold vcpu context. In order to use the percpu to hold additional future host information we encapsulate kvm_cpu_context in a new structure and rename the typedef and percpu to match. Signed-off-by: Andrew Murray Reviewed-by: Suzuki K Poulose Signed-off-by: Marc Zyngier commit 21bb0ebf5d78c669ed887f30889f2d28cf6bf7db Author: Andrew Murray Date: Tue Apr 9 20:22:10 2019 +0100 arm64: arm_pmu: Remove unnecessary isb instruction The armv8pmu_enable_event_counter function issues an isb instruction after enabling a pair of counters - this doesn't provide any value and is inconsistent with the armv8pmu_disable_event_counter. In any case armv8pmu_enable_event_counter is always called with the PMU stopped. Starting the PMU with armv8pmu_start results in an isb instruction being issued prior to writing to PMCR_EL0. Let's remove the unnecessary isb instruction. Signed-off-by: Andrew Murray Reviewed-by: Suzuki K Poulose Acked-by: Mark Rutland Signed-off-by: Marc Zyngier commit d40f69c9b9dff3e47d9647943db267b5792ae215 Author: Mike Marciniszyn Date: Fri Apr 12 06:41:42 2019 -0700 IB/{rdmavt, qib, hfi1}: Use new routine to release reference counts The reference count adjustments on reference count completion are open coded throughout. Add a routine to do all reference count adjustments and use. Reviewed-by: Michael J. Ruhl Signed-off-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit 52cdbcc2b1822974f547c7b892e8e1e8109d185e Author: Mike Marciniszyn Date: Thu Apr 11 07:16:23 2019 -0700 IB/rdmavt: Use more efficient allowed_ops QP creation already records the allowed_ops. Take advantage of that single field to replace multiple qp_type specific tests. Reviewed-by: Michael J. Ruhl Signed-off-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit 715ab1a862c85b08a9881851c7b1fba84b0dc26b Author: Mike Marciniszyn Date: Thu Apr 11 07:16:11 2019 -0700 IB/rdmavt: Fix ab/ba include issues The currently include file ordering for rdmavt headers has an ab/ba include issue the precludes using inlines from rdma_vt.h in rdmavt_qp.h. At the heart of the issue is that rdma_vt.h includes rdmavt_qp.h. Fix the ordering issue by adjusting rdma_vt.h to not require rdmavt_qp.h and move qp related inlines to rdmavt_qp.h. Additionally, promote rvt_mmap_info to rdma_vt.h since it is shared by rdmavt_cq.h and rdmavt_qp.h. Reviewed-by: Michael J. Ruhl Signed-off-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit 62644c1d2bb7c8f7ec259e45a123dca6bbaa0f7b Author: Mike Marciniszyn Date: Thu Apr 11 07:16:00 2019 -0700 IB/hfi1: Make opfn.h self sufficient The opfn.h include file build-ablility depends on the including file having the correct includes. Fix by making opfn.h self sufficient. Reviewed-by: Kaike Wan Signed-off-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit ea752bc5e50a03e337dfa5c8940d357c62300f8a Author: Kaike Wan Date: Thu Apr 11 07:15:49 2019 -0700 IB/{rdmavt, hfi1): Miscellaneous comment fixes This patch fixes miscellaneous comment errors. Reviewed-by: Mike Marciniszyn Signed-off-by: Kaike Wan Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit a243c16d18be130b17cf1064e9115de73bfdff5a Author: Amit Daniel Kachhap Date: Tue Apr 23 10:12:37 2019 +0530 KVM: arm64: Add capability to advertise ptrauth for guest This patch advertises the capability of two cpu feature called address pointer authentication and generic pointer authentication. These capabilities depend upon system support for pointer authentication and VHE mode. The current arm64 KVM partially implements pointer authentication and support of address/generic authentication are tied together. However, separate ABI requirements for both of them is added so that any future isolated implementation will not require any ABI changes. Signed-off-by: Amit Daniel Kachhap Cc: Mark Rutland Cc: Marc Zyngier Cc: Christoffer Dall Cc: kvmarm@lists.cs.columbia.edu Signed-off-by: Marc Zyngier commit a22fa321d13b0264976cbbc1d22f4c27c41d3642 Author: Amit Daniel Kachhap Date: Tue Apr 23 10:12:36 2019 +0530 KVM: arm64: Add userspace flag to enable pointer authentication Now that the building blocks of pointer authentication are present, lets add userspace flags KVM_ARM_VCPU_PTRAUTH_ADDRESS and KVM_ARM_VCPU_PTRAUTH_GENERIC. These flags will enable pointer authentication for the KVM guest on a per-vcpu basis through the ioctl KVM_ARM_VCPU_INIT. This features will allow the KVM guest to allow the handling of pointer authentication instructions or to treat them as undefined if not set. Necessary documentations are added to reflect the changes done. Reviewed-by: Dave Martin Signed-off-by: Amit Daniel Kachhap Cc: Mark Rutland Cc: Marc Zyngier Cc: Christoffer Dall Cc: kvmarm@lists.cs.columbia.edu Signed-off-by: Marc Zyngier commit 384b40caa8afae44a54e8f69bd37097c0279fdce Author: Mark Rutland Date: Tue Apr 23 10:12:35 2019 +0530 KVM: arm/arm64: Context-switch ptrauth registers When pointer authentication is supported, a guest may wish to use it. This patch adds the necessary KVM infrastructure for this to work, with a semi-lazy context switch of the pointer auth state. Pointer authentication feature is only enabled when VHE is built in the kernel and present in the CPU implementation so only VHE code paths are modified. When we schedule a vcpu, we disable guest usage of pointer authentication instructions and accesses to the keys. While these are disabled, we avoid context-switching the keys. When we trap the guest trying to use pointer authentication functionality, we change to eagerly context-switching the keys, and enable the feature. The next time the vcpu is scheduled out/in, we start again. However the host key save is optimized and implemented inside ptrauth instruction/register access trap. Pointer authentication consists of address authentication and generic authentication, and CPUs in a system might have varied support for either. Where support for either feature is not uniform, it is hidden from guests via ID register emulation, as a result of the cpufeature framework in the host. Unfortunately, address authentication and generic authentication cannot be trapped separately, as the architecture provides a single EL2 trap covering both. If we wish to expose one without the other, we cannot prevent a (badly-written) guest from intermittently using a feature which is not uniformly supported (when scheduled on a physical CPU which supports the relevant feature). Hence, this patch expects both type of authentication to be present in a cpu. This switch of key is done from guest enter/exit assembly as preparation for the upcoming in-kernel pointer authentication support. Hence, these key switching routines are not implemented in C code as they may cause pointer authentication key signing error in some situations. Signed-off-by: Mark Rutland [Only VHE, key switch in full assembly, vcpu_has_ptrauth checks , save host key in ptrauth exception trap] Signed-off-by: Amit Daniel Kachhap Reviewed-by: Julien Thierry Cc: Christoffer Dall Cc: kvmarm@lists.cs.columbia.edu [maz: various fixups] Signed-off-by: Marc Zyngier commit 148a97d5a02a62f81b5d6176f871c94a65e1f3af Author: Dan Carpenter Date: Wed Apr 24 17:24:37 2019 +0300 dma-mapping: remove an unnecessary NULL check We already dereferenced "dev" when we called get_dma_ops() so this NULL check is too late. We're not supposed to pass NULL "dev" pointers to dma_alloc_attrs(). Signed-off-by: Dan Carpenter Signed-off-by: Christoph Hellwig commit 07c5ba912401b2ae3f13e3ce214158aec723c3fd Author: Josh Collier Date: Thu Apr 11 07:07:42 2019 -0700 IB/hfi1: Add debugfs to control expansion ROM write protect Some kernels now enable CONFIG_IO_STRICT_DEVMEM which prevents multiple handles to PCI resource0. In order to continue to support expansion ROM updates while the driver is loaded, the driver must now provide an interface to control the expansion ROM write protection. This patch adds an exprom_wp debugfs interface that allows the hfi1_eprom user tool to disable the expansion ROM write protection by opening the file and writing a '1'. The write protection is released when writing a '0' or automatically re-enabled when the file handle is closed. The current implementation will only allow one handle to be opened at a time across all hfi1 devices. Reviewed-by: Dennis Dalessandro Signed-off-by: Josh Collier Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit 0257c0ed5ea3de3e32cb322852c4c40bc09d1b97 Author: Ming Lei Date: Wed Apr 24 19:01:46 2019 +0800 block: don't run get_page() on pages from non-bvec iov iter The refcount has been increased for pages retrieved from non-bvec iov iter via __bio_iov_iter_get_pages(), so don't need to do that again. Otherwise, IO pages are leaked easily. Cc: Christoph Hellwig Reviewed-by: Chaitanya Kulkarni Fixes: 7321ecbfc7cf ("block: change how we get page references in bio_iov_iter_get_pages") Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit d73236383eb1cd4b7b65c33a09f0ed45f6781f40 Author: Corey Minyard Date: Wed Apr 24 08:32:02 2019 -0500 ipmi: Add the i2c-addr property for SSIF interfaces This is required for SSIF to work. There was no way to know if the interface being added was SI or SSIF from the platform data, but that was required so the i2c-addr is only added for SSIF interfaces. So add a field for that. Also rework the logic a bit so that ipmi-type is not set for SSIF interfaces, as it is not necessary for that. Fixes: 3cd83bac481d ("ipmi: Consolidate the adding of platform devices") Reported-by: Kamlakant Patel Signed-off-by: Corey Minyard Cc: stable@vger.kernel.org # 5.1 commit 1de7259275ca4ebc66459de6620558d3e38d4142 Author: Noralf Trønnes Date: Tue Apr 23 16:53:53 2019 +0200 drm/fb-helper: Fix drm_fb_helper_firmware_config() NULL pointer deref Non-atomic drivers like ast doesn't have connector->state set resulting in a NULL pointer deref: [ 29.609593] BUG: unable to handle kernel NULL pointer dereference at 0000000000000010 [ 29.609619] Call Trace: [ 29.609630] ? drm_helper_probe_single_connector_modes+0x27f/0x680 [ 29.609640] drm_setup_crtcs+0x431/0xd80 [drm_kms_helper] [ 29.753065] __drm_fb_helper_initial_config_and_unlock+0x6f/0x6a0 [ 29.753160] ? drm_modeset_unlock_all+0x31/0x50 [drm] [ 29.765758] ast_fbdev_init+0xa8/0xc0 [ast] [ 29.765762] ast_driver_load.cold.7+0x2b3/0xe11 [ast] [ 29.765775] drm_dev_register+0x111/0x150 [drm] Fix by bailing out if the driver does not support atomic modesetting. Fixes: 09ded8af57bc ("drm/i915/fbdev: Move intel_fb_initial_config() to fbdev helper") Reported-by: Thomas Zimmermann Cc: Daniel Vetter Cc: Jani Nikula Signed-off-by: Noralf Trønnes Reviewed-by: Daniel Vetter Tested-by: Thomas Zimmermann Link: https://patchwork.freedesktop.org/patch/msgid/20190423145353.30158-1-noralf@tronnes.org commit 574258222281221444b561b05c3a5fa85947a80c Author: Leon Romanovsky Date: Thu Apr 4 09:56:38 2019 +0300 RDMA/hns: Remove asynchronic QP destroy Verbs destroy callbacks are synchronous operations and can't be delayed. The expectation is that after driver returned from destroy function, the memory can be freed and user won't be able to access it again. Ditch workqueue implementation used in HNS driver. Fixes: d838c481e025 ("IB/hns: Fix the bug when destroy qp") Signed-off-by: Leon Romanovsky Acked-by: oulijun Signed-off-by: Jason Gunthorpe commit 5926459e7c897ee348c134f44da520c8bf234b05 Author: NeilBrown Date: Wed Apr 24 12:00:08 2019 +1000 locks: move checks from locks_free_lock() to locks_release_private() Code that allocates locks using locks_alloc_lock() will free it using locks_free_lock(), and will benefit from the BUG_ON() consistency checks therein. However some code (nfsd and lockd) allocate a lock embedded in some other data structure, and so free the lock themselves after calling locks_release_private(). This path does not benefit from the consistency checks. To help catch future errors, move the BUG_ON() checks to locks_release_private() - which locks_free_lock() already calls. This ensures that all users for locks will find out if the lock isn't detached properly before being free. Signed-off-by: NeilBrown Reviewed-by: Jeff Layton Signed-off-by: J. Bruce Fields commit 0ca0c9d7edcf4996da3ebf07947c4484d1e3de16 Author: J. Bruce Fields Date: Fri Apr 12 16:26:30 2019 -0400 nfsd: fh_drop_write in nfsd_unlink fh_want_write() can now be called twice, but I'm also fixing up the callers not to do that. Other cases include setattr and create. Signed-off-by: J. Bruce Fields commit 0b8f62625dc309651d0efcb6a6247c933acd8b45 Author: J. Bruce Fields Date: Fri Apr 12 16:37:30 2019 -0400 nfsd: allow fh_want_write to be called twice A fuzzer recently triggered lockdep warnings about potential sb_writers deadlocks caused by fh_want_write(). Looks like we aren't careful to pair each fh_want_write() with an fh_drop_write(). It's not normally a problem since fh_put() will call fh_drop_write() for us. And was OK for NFSv3 where we'd do one operation that might call fh_want_write(), and then put the filehandle. But an NFSv4 protocol fuzzer can do weird things like call unlink twice in a compound, and then we get into trouble. I'm a little worried about this approach of just leaving everything to fh_put(). But I think there are probably a lot of fh_want_write()/fh_drop_write() imbalances so for now I think we need it to be more forgiving. Signed-off-by: J. Bruce Fields commit e45d1a1835b889676374fb74ff4d0e6b06ad173f Author: Trond Myklebust Date: Tue Apr 9 12:13:42 2019 -0400 nfsd: knfsd must use the container user namespace Convert knfsd to use the user namespace of the container that started the server processes. Signed-off-by: Trond Myklebust Signed-off-by: J. Bruce Fields commit e6667c73a27d80078f8d7fca516d6b14bc4e18a7 Author: Trond Myklebust Date: Tue Apr 9 12:13:41 2019 -0400 SUNRPC: rsi_parse() should use the current user namespace rsi_parse() is part of a downcall, so we must assume that the uids and gids are encoded using the current user namespace. Signed-off-by: Trond Myklebust Signed-off-by: J. Bruce Fields commit ccfe51a5161c17d24157c08f9963f351a89268fa Author: Trond Myklebust Date: Tue Apr 9 12:13:40 2019 -0400 SUNRPC: Fix the server AUTH_UNIX userspace mappings gid_parse() is part of a downcall, so uids and gids should be assumed encoded using the current user namespace. svcauth_unix_accept() is, on the other hand, decoding uids and gids from the wire, so we assume those are encoded to match the user namespace of the server process. Signed-off-by: Trond Myklebust Signed-off-by: J. Bruce Fields commit 40373b125de6bab186e71d5ea5498bb2b845398b Author: Trond Myklebust Date: Tue Apr 9 12:13:39 2019 -0400 lockd: Pass the user cred from knfsd when starting the lockd server When starting up a new knfsd server, pass the user cred to the supporting lockd server. Signed-off-by: Trond Myklebust Signed-off-by: J. Bruce Fields commit 1237d3545c6715edfd09b94d27585069cd68274c Author: Trond Myklebust Date: Tue Apr 9 12:13:38 2019 -0400 SUNRPC: Temporary sockets should inherit the cred from their parent Temporary sockets should inherit the credential (and hence the user namespace) from the parent listener transport. Signed-off-by: Trond Myklebust Signed-off-by: J. Bruce Fields commit 4df493a260d4c1844437b28009013d5dc408d0df Author: Trond Myklebust Date: Tue Apr 9 12:13:37 2019 -0400 SUNRPC: Cache the process user cred in the RPC server listener In order to be able to interpret uids and gids correctly in knfsd, we should cache the user namespace of the process that created the RPC server's listener. To do so, we refcount the credential of that process. Signed-off-by: Trond Myklebust Signed-off-by: J. Bruce Fields commit e333f3bbefe3e25e2bcff58063f920a2eaba224b Author: Trond Myklebust Date: Tue Apr 9 11:46:19 2019 -0400 nfsd: Allow containers to set supported nfs versions Support use of the --nfs-version/--no-nfs-version arguments to rpc.nfsd in containers. Signed-off-by: Trond Myklebust Signed-off-by: J. Bruce Fields commit 029be5d03357f0797d1b9a6b5aab5e7e311fd76a Author: Trond Myklebust Date: Tue Apr 9 11:46:18 2019 -0400 nfsd: Add custom rpcbind callbacks for knfsd Add custom rpcbind callbacks in preparation for the knfsd per-container version feature. Signed-off-by: Trond Myklebust Signed-off-by: J. Bruce Fields commit 642ee6b209c2f4c20fe0a7ed36b429c470162eae Author: Trond Myklebust Date: Tue Apr 9 11:46:17 2019 -0400 SUNRPC: Allow further customisation of RPC program registration Add a callback to allow customisation of the rpcbind registration. When clients have the ability to turn on and off version support, we want to allow them to also prevent registration of those versions with the rpc portmapper. Signed-off-by: Trond Myklebust Signed-off-by: J. Bruce Fields commit 4532608d71c8ed6049c949a667eeed719cb9291d Author: Trond Myklebust Date: Tue Apr 9 11:46:16 2019 -0400 SUNRPC: Clean up generic dispatcher code Simplify the generic server dispatcher. Signed-off-by: Trond Myklebust Signed-off-by: J. Bruce Fields commit 8e5b67731d088e66fc6a59d9e2fc9a5e4e187303 Author: Trond Myklebust Date: Tue Apr 9 11:46:15 2019 -0400 SUNRPC: Add a callback to initialise server requests Add a callback to help initialise server requests before they are processed. This will allow us to clean up the NFS server version support, and to make it container safe. Signed-off-by: Trond Myklebust Signed-off-by: J. Bruce Fields commit 83dd59a0b9afc3b1a2642fb5c9b0585b1c08768f Author: Trond Myklebust Date: Tue Apr 9 11:46:14 2019 -0400 SUNRPC/nfs: Fix return value for nfs4_callback_compound() RPC server procedures are normally expected to return a __be32 encoded status value of type 'enum rpc_accept_stat', however at least one function wants to return an authentication status of type 'enum rpc_auth_stat' in the case where authentication fails. This patch adds functionality to allow this. Fixes: a4e187d83d88 ("NFS: Don't drop CB requests with invalid principals") Signed-off-by: Trond Myklebust Signed-off-by: J. Bruce Fields commit 8a9f4f41248a4dc00a9f0831a50f8b7a2fd86bfc Author: Scott Mayhew Date: Tue Mar 26 18:06:30 2019 -0400 nfsd: handle legacy client tracking records sent by nfsdcld The new nfsdcld will do a one-time "upgrade" where it searches for records from nfsdcltrack and the legacy tracking during startup. Legacy records will be prefixed with the string "hash:", which we need to strip off before adding to the reclaim_str_hashtbl. When legacy records are encountered, set the new cn_has_legacy flag in the cld_net. When this flag is set, if the search for a reclaim record based on the client name string fails, then do a second search based on the hash of the name string. Note that if there are legacy records then the grace period will not be lifted early via the tracking of RECLAIM_COMPLETEs. Signed-off-by: Scott Mayhew Signed-off-by: J. Bruce Fields commit 869216075b63c7a4030ee193c079cb5a69a918cb Author: Scott Mayhew Date: Tue Mar 26 18:06:29 2019 -0400 nfsd: re-order client tracking method selection The new order is first nfsdcld, then the UMH upcall, and finally the legacy tracking method. Added some printk's to the tracking initialization functions so it's clear which tracking method was ultimately selected. Signed-off-by: Scott Mayhew Signed-off-by: J. Bruce Fields commit 362063a595be959bc08f4163e6405a0266740091 Author: Scott Mayhew Date: Tue Mar 26 18:06:28 2019 -0400 nfsd: keep a tally of RECLAIM_COMPLETE operations when using nfsdcld When using nfsdcld for NFSv4 client tracking, track the number of RECLAIM_COMPLETE operations we receive from "known" clients to help in deciding if we can lift the grace period early (or whether we need to start a v4 grace period at all). Signed-off-by: Scott Mayhew Signed-off-by: J. Bruce Fields commit 74725959c33c14114fdce1e36e3504d106584d53 Author: Scott Mayhew Date: Tue Mar 26 18:06:27 2019 -0400 nfsd: un-deprecate nfsdcld When nfsdcld was released, it was quickly deprecated in favor of the nfsdcltrack usermodehelper, so as to not require another running daemon. That prevents NFSv4 clients from reclaiming locks from nfsd's running in containers, since neither nfsdcltrack nor the legacy client tracking code work in containers. This commit un-deprecates the use of nfsdcld, with one twist: we will populate the reclaim_str_hashtbl on startup. During client tracking initialization, do an upcall ("GraceStart") to nfsdcld to get a list of clients from the database. nfsdcld will do one downcall with a status of -EINPROGRESS for each client record in the database, which in turn will cause an nfs4_client_reclaim to be added to the reclaim_str_hashtbl. When complete, nfsdcld will do a final downcall with a status of 0. This will save nfsd from having to do an upcall to the daemon during nfs4_check_open_reclaim() processing. Even though nfsdcld was quickly deprecated, there is a very small chance of old nfsdcld daemons running in the wild. These will respond to the new "GraceStart" upcall with -EOPNOTSUPP, in which case we will log a message and fall back to the original nfsdcld tracking ops (now called nfsd4_cld_tracking_ops_v0). Signed-off-by: Scott Mayhew Signed-off-by: J. Bruce Fields commit 6b1891052a3f8e3c3217e8512bbed2fd6252977b Author: Scott Mayhew Date: Tue Mar 26 18:06:26 2019 -0400 nfsd: make nfs4_client_reclaim use an xdr_netobj instead of a fixed char array This will allow the reclaim_str_hashtbl to store either the recovery directory names used by the legacy client tracking code or the full client strings used by the nfsdcld client tracking code. Signed-off-by: Scott Mayhew Signed-off-by: J. Bruce Fields commit 9d69338c8c5fc68e9ae3ab23d01356ca024b789e Author: NeilBrown Date: Fri Mar 22 13:16:56 2019 +1100 sunrpc/cache: handle missing listeners better. If no handler (such as rpc.mountd) has opened a cache 'channel', the sunrpc cache responds to all lookup requests with -ENOENT. This is particularly important for the auth.unix.gid cache which is optional. If the channel was open briefly and an upcall was written to it, this upcall remains pending even when the handler closes the channel. When an upcall is pending, the code currently doesn't check if there are still listeners, it only performs that check before sending an upcall. As the cache treads a recently closes channel (closed less than 30 seconds ago) as "potentially still open", there is a reasonable sized window when a request can become pending in a closed channel, and thereby block lookups indefinitely. This can easily be demonstrated by running cat /proc/net/rpc/auth.unix.gid/channel and then trying to mount an NFS filesystem from this host. It will block indefinitely (unless mountd is run with --manage-gids, or krb5 is used). When cache_check() finds that an upcall is pending, it should perform the "cache_listeners_exist()" exist test. If no listeners do exist, the request should be negated. With this change in place, there can still be a 30second wait on mount, until the cache gives up waiting for a handler to come back, but this is much better than an indefinite wait. Signed-off-by: NeilBrown Signed-off-by: J. Bruce Fields commit 0ab88ca4bcf18ba21058d8f19220f60afe0d34d8 Author: Arnd Bergmann Date: Fri Mar 22 15:07:11 2019 +0100 nfsd: avoid uninitialized variable warning clang warns that 'contextlen' may be accessed without an initialization: fs/nfsd/nfs4xdr.c:2911:9: error: variable 'contextlen' is uninitialized when used here [-Werror,-Wuninitialized] contextlen); ^~~~~~~~~~ fs/nfsd/nfs4xdr.c:2424:16: note: initialize the variable 'contextlen' to silence this warning int contextlen; ^ = 0 Presumably this cannot happen, as FATTR4_WORD2_SECURITY_LABEL is set if CONFIG_NFSD_V4_SECURITY_LABEL is enabled. Adding another #ifdef like the other two in this function avoids the warning. Signed-off-by: Arnd Bergmann Signed-off-by: J. Bruce Fields commit 5d7ed2f27bbd482fd29e6b2e204b1a1ee8a0b268 Author: Parav Pandit Date: Wed Apr 10 11:23:04 2019 +0300 RDMA/cma: Consider scope_id while binding to ipv6 ll address When two netdev have same link local addresses (such as vlan and non vlan), two rdma cm listen id should be able to bind to following different addresses. listener-1: addr=lla, scope_id=A, port=X listener-2: addr=lla, scope_id=B, port=X However while comparing the addresses only addr and port are considered, due to which 2nd listener fails to listen. In below example of two listeners, 2nd listener is failing with address in use error. $ rping -sv -a fe80::268a:7ff:feb3:d113%ens2f1 -p 4545& $ rping -sv -a fe80::268a:7ff:feb3:d113%ens2f1.200 -p 4545 rdma_bind_addr: Address already in use To overcome this, consider the scope_ids as well which forms the accurate IPv6 link local address. Signed-off-by: Parav Pandit Reviewed-by: Daniel Jurgens Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 39b3c3a5fbc5d744114e497d35bf0c12f798c134 Author: Benjamin Tissoires Date: Thu Apr 18 09:47:41 2019 +0200 HID: input: fix assignment of .value The value field is actually an array of .maxfield. We should assign the correct number to the correct usage. Not that we never encounter a device that requires this ATM, but better have the proper code path. Fixes: 2dc702c991e377 ("HID: input: use the Resolution Multiplier for high-resolution scrolling") Cc: stable@vger.kernel.org # v5.0+ Signed-off-by: Benjamin Tissoires commit d43c17ead879ba7c076dc2f5fd80cd76047c9ff4 Author: Benjamin Tissoires Date: Wed Apr 3 16:20:20 2019 +0200 HID: input: make sure the wheel high resolution multiplier is set Some old mice have a tendency to not accept the high resolution multiplier. They reply with a -EPIPE which was previously ignored. Force the call to resolution multiplier to be synchronous and actually check for the answer. If this fails, consider the mouse like a normal one. Fixes: 2dc702c991e377 ("HID: input: use the Resolution Multiplier for high-resolution scrolling") Link: https://bugzilla.redhat.com/show_bug.cgi?id=1700071 Reported-and-tested-by: James Feeney Cc: stable@vger.kernel.org # v5.0+ Signed-off-by: Benjamin Tissoires commit c08f38e9fd0b5486957ed42438ec8fa9b6ebbf4f Author: Benjamin Tissoires Date: Wed Apr 24 15:13:52 2019 +0200 HID: logitech-dj: add usbhid dependency in Kconfig An oversight from me. Reported-by: kbuild test robot Signed-off-by: Benjamin Tissoires commit 823b23da71132b80d9f41ab667c68b112455f3b6 Author: Parav Pandit Date: Wed Apr 10 11:23:03 2019 +0300 IB/core: Allow vlan link local address based RoCE GIDs IPv6 link local address for a VLAN netdevice has nothing to do with its resemblance with the default GID, because VLAN link local GID is in different layer 2 domain. Now that RoCE MAD packet processing and route resolution consider the right GID index, there is no need for an unnecessary check which prevents the addition of vlan based IPv6 link local GIDs. Signed-off-by: Parav Pandit Reviewed-by: Daniel Jurgens Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit d1ffa760d22aa1d8190478e5ef555c59a771db27 Author: Farhan Ali Date: Tue Apr 16 17:23:14 2019 -0400 vfio-ccw: Prevent quiesce function going into an infinite loop The quiesce function calls cio_cancel_halt_clear() and if we get an -EBUSY we go into a loop where we: - wait for any interrupts - flush all I/O in the workqueue - retry cio_cancel_halt_clear During the period where we are waiting for interrupts or flushing all I/O, the channel subsystem could have completed a halt/clear action and turned off the corresponding activity control bits in the subchannel status word. This means the next time we call cio_cancel_halt_clear(), we will again start by calling cancel subchannel and so we can be stuck between calling cancel and halt forever. Rather than calling cio_cancel_halt_clear() immediately after waiting, let's try to disable the subchannel. If we succeed in disabling the subchannel then we know nothing else can happen with the device. Suggested-by: Eric Farman Signed-off-by: Farhan Ali Message-Id: <4d5a4b98ab1b41ac6131b5c36de18b76c5d66898.1555449329.git.alifm@linux.ibm.com> Reviewed-by: Eric Farman Acked-by: Halil Pasic Signed-off-by: Cornelia Huck commit b49bdc8602b7c9c7a977758bee4125683f73e59f Author: Farhan Ali Date: Mon Apr 8 17:05:33 2019 -0400 vfio-ccw: Release any channel program when releasing/removing vfio-ccw mdev When releasing the vfio-ccw mdev, we currently do not release any existing channel program and its pinned pages. This can lead to the following warning: [1038876.561565] WARNING: CPU: 2 PID: 144727 at drivers/vfio/vfio_iommu_type1.c:1494 vfio_sanity_check_pfn_list+0x40/0x70 [vfio_iommu_type1] .... 1038876.561921] Call Trace: [1038876.561935] ([<00000009897fb870>] 0x9897fb870) [1038876.561949] [<000003ff8013bf62>] vfio_iommu_type1_detach_group+0xda/0x2f0 [vfio_iommu_type1] [1038876.561965] [<000003ff8007b634>] __vfio_group_unset_container+0x64/0x190 [vfio] [1038876.561978] [<000003ff8007b87e>] vfio_group_put_external_user+0x26/0x38 [vfio] [1038876.562024] [<000003ff806fc608>] kvm_vfio_group_put_external_user+0x40/0x60 [kvm] [1038876.562045] [<000003ff806fcb9e>] kvm_vfio_destroy+0x5e/0xd0 [kvm] [1038876.562065] [<000003ff806f63fc>] kvm_put_kvm+0x2a4/0x3d0 [kvm] [1038876.562083] [<000003ff806f655e>] kvm_vm_release+0x36/0x48 [kvm] [1038876.562098] [<00000000003c2dc4>] __fput+0x144/0x228 [1038876.562113] [<000000000016ee82>] task_work_run+0x8a/0xd8 [1038876.562125] [<000000000014c7a8>] do_exit+0x5d8/0xd90 [1038876.562140] [<000000000014d084>] do_group_exit+0xc4/0xc8 [1038876.562155] [<000000000015c046>] get_signal+0x9ae/0xa68 [1038876.562169] [<0000000000108d66>] do_signal+0x66/0x768 [1038876.562185] [<0000000000b9e37e>] system_call+0x1ea/0x2d8 [1038876.562195] 2 locks held by qemu-system-s39/144727: [1038876.562205] #0: 00000000537abaf9 (&container->group_lock){++++}, at: __vfio_group_unset_container+0x3c/0x190 [vfio] [1038876.562230] #1: 00000000670008b5 (&iommu->lock){+.+.}, at: vfio_iommu_type1_detach_group+0x36/0x2f0 [vfio_iommu_type1] [1038876.562250] Last Breaking-Event-Address: [1038876.562262] [<000003ff8013aa24>] vfio_sanity_check_pfn_list+0x3c/0x70 [vfio_iommu_type1] [1038876.562272] irq event stamp: 4236481 [1038876.562287] hardirqs last enabled at (4236489): [<00000000001cee7a>] console_unlock+0x6d2/0x740 [1038876.562299] hardirqs last disabled at (4236496): [<00000000001ce87e>] console_unlock+0xd6/0x740 [1038876.562311] softirqs last enabled at (4234162): [<0000000000b9fa1e>] __do_softirq+0x556/0x598 [1038876.562325] softirqs last disabled at (4234153): [<000000000014e4cc>] irq_exit+0xac/0x108 [1038876.562337] ---[ end trace 6c96d467b1c3ca06 ]--- Similarly we do not free the channel program when we are removing the vfio-ccw device. Let's fix this by resetting the device and freeing the channel program and pinned pages in the release path. For the remove path we can just quiesce the device, since in the remove path the mediated device is going away for good and so we don't need to do a full reset. Signed-off-by: Farhan Ali Message-Id: Acked-by: Eric Farman Signed-off-by: Cornelia Huck commit cea5dde42a83b5f0a039da672f8686455936b8d8 Author: Farhan Ali Date: Mon Apr 8 17:05:31 2019 -0400 vfio-ccw: Do not call flush_workqueue while holding the spinlock Currently we call flush_workqueue while holding the subchannel spinlock. But flush_workqueue function can go to sleep, so do not call the function while holding the spinlock. Fixes the following bug: [ 285.203430] BUG: scheduling while atomic: bash/14193/0x00000002 [ 285.203434] INFO: lockdep is turned off. .... [ 285.203485] Preemption disabled at: [ 285.203488] [<000003ff80243e5c>] vfio_ccw_sch_quiesce+0xbc/0x120 [vfio_ccw] [ 285.203496] CPU: 7 PID: 14193 Comm: bash Tainted: G W .... [ 285.203504] Call Trace: [ 285.203510] ([<0000000000113772>] show_stack+0x82/0xd0) [ 285.203514] [<0000000000b7a102>] dump_stack+0x92/0xd0 [ 285.203518] [<000000000017b8be>] __schedule_bug+0xde/0xf8 [ 285.203524] [<0000000000b95b5a>] __schedule+0x7a/0xc38 [ 285.203528] [<0000000000b9678a>] schedule+0x72/0xb0 [ 285.203533] [<0000000000b9bfbc>] schedule_timeout+0x34/0x528 [ 285.203538] [<0000000000b97608>] wait_for_common+0x118/0x1b0 [ 285.203544] [<0000000000166d6a>] flush_workqueue+0x182/0x548 [ 285.203550] [<000003ff80243e6e>] vfio_ccw_sch_quiesce+0xce/0x120 [vfio_ccw] [ 285.203556] [<000003ff80245278>] vfio_ccw_mdev_reset+0x38/0x70 [vfio_ccw] [ 285.203562] [<000003ff802458b0>] vfio_ccw_mdev_remove+0x40/0x78 [vfio_ccw] [ 285.203567] [<000003ff801a499c>] mdev_device_remove_ops+0x3c/0x80 [mdev] [ 285.203573] [<000003ff801a4d5c>] mdev_device_remove+0xc4/0x130 [mdev] [ 285.203578] [<000003ff801a5074>] remove_store+0x6c/0xa8 [mdev] [ 285.203582] [<000000000046f494>] kernfs_fop_write+0x14c/0x1f8 [ 285.203588] [<00000000003c1530>] __vfs_write+0x38/0x1a8 [ 285.203593] [<00000000003c187c>] vfs_write+0xb4/0x198 [ 285.203597] [<00000000003c1af2>] ksys_write+0x5a/0xb0 [ 285.203601] [<0000000000b9e270>] system_call+0xdc/0x2d8 Signed-off-by: Farhan Ali Reviewed-by: Eric Farman Reviewed-by: Pierre Morel Message-Id: <626bab8bb2958ae132452e1ddaf1b20882ad5a9d.1554756534.git.alifm@linux.ibm.com> Signed-off-by: Cornelia Huck commit d5afd5d135c8cc43bd2568361b4c91f0bd488c3f Author: Cornelia Huck Date: Mon Jul 23 16:03:27 2018 +0200 vfio-ccw: add handling for async channel instructions Add a region to the vfio-ccw device that can be used to submit asynchronous I/O instructions. ssch continues to be handled by the existing I/O region; the new region handles hsch and csch. Interrupt status continues to be reported through the same channels as for ssch. Acked-by: Eric Farman Reviewed-by: Farhan Ali Signed-off-by: Cornelia Huck commit b0940857379eb930a4310625c4cd89254e4478b6 Author: Cornelia Huck Date: Wed Apr 4 13:03:38 2018 +0200 s390/cio: export hsch to modules The vfio-ccw code will need this, and it matches treatment of ssch and csch. Reviewed-by: Pierre Morel Reviewed-by: Halil Pasic Signed-off-by: Cornelia Huck commit db8e5d17ac03a65e2e0ee0ba50bf61a99741d871 Author: Cornelia Huck Date: Thu Jul 19 17:53:08 2018 +0200 vfio-ccw: add capabilities chain Allow to extend the regions used by vfio-ccw. The first user will be handling of halt and clear subchannel. Reviewed-by: Eric Farman Reviewed-by: Farhan Ali Signed-off-by: Cornelia Huck commit 4f76617378ee97c557b526cb58d3c61eb0a9c963 Author: Cornelia Huck Date: Tue Jan 8 15:53:03 2019 +0100 vfio-ccw: protect the I/O region Introduce a mutex to disallow concurrent reads or writes to the I/O region. This makes sure that the data the kernel or user space see is always consistent. The same mutex will be used to protect the async region as well. Reviewed-by: Eric Farman Signed-off-by: Cornelia Huck commit 690f6a1581c7c08e85451f62bcbfe40f29072842 Author: Cornelia Huck Date: Tue Jan 29 16:13:57 2019 +0100 vfio-ccw: rework ssch state handling The flow for processing ssch requests can be improved by splitting the BUSY state: - CP_PROCESSING: We reject any user space requests while we are in the process of translating a channel program and submitting it to the hardware. Use -EAGAIN to signal user space that it should retry the request. - CP_PENDING: We have successfully submitted a request with ssch and are now expecting an interrupt. As we can't handle more than one channel program being processed, reject any further requests with -EBUSY. A final interrupt will move us out of this state. By making this a separate state, we make it possible to issue a halt or a clear while we're still waiting for the final interrupt for the ssch (in a follow-on patch). It also makes a lot of sense not to preemptively filter out writes to the io_region if we're in an incorrect state: the state machine will handle this correctly. Reviewed-by: Eric Farman Signed-off-by: Cornelia Huck commit 71189f263f8a3db7b72ca75be14e7309375e8707 Author: Cornelia Huck Date: Mon Jan 21 09:55:18 2019 +0100 vfio-ccw: make it safe to access channel programs When we get a solicited interrupt, the start function may have been cleared by a csch, but we still have a channel program structure allocated. Make it safe to call the cp accessors in any case, so we can call them unconditionally. While at it, also make sure that functions called from other parts of the code return gracefully if the channel program structure has not been initialized (even though that is a bug in the caller). Reviewed-by: Eric Farman Reviewed-by: Farhan Ali Signed-off-by: Cornelia Huck commit c9f621524e70774688db3cec60d85fa4c7de52e3 Author: Martin Schwidefsky Date: Wed Apr 24 12:49:44 2019 +0200 s390/mm: fix pxd_bad with folded page tables With git commit d1874a0c2805fcfa9162c972d6b7541e57adb542 "s390/mm: make the pxd_offset functions more robust" and a 2-level page table it can now happen that pgd_bad() gets asked to verify a large segment table entry. If the entry is marked as dirty pgd_bad() will incorrectly return true. Change the pgd_bad(), p4d_bad(), pud_bad() and pmd_bad() functions to first verify the table type, return false if the table level is lower than what the function is suppossed to check, return true if the table level is too high, and otherwise check the relevant region and segment table bits. pmd_bad() has to check against ~SEGMENT_ENTRY_BITS for normal page table pointers or ~SEGMENT_ENTRY_BITS_LARGE for large segment table entries. Same for pud_bad() which has to check against ~_REGION_ENTRY_BITS or ~_REGION_ENTRY_BITS_LARGE. Fixes: d1874a0c2805 ("s390/mm: make the pxd_offset functions more robust") Signed-off-by: Martin Schwidefsky commit 01eb42afb45719cb41bb32c278e068073738899d Author: Vasily Gorbik Date: Tue Apr 23 15:36:36 2019 +0200 s390/kasan: fix strncpy_from_user kasan checks arch/s390/lib/uaccess.c is built without kasan instrumentation. Kasan checks are performed explicitly in copy_from_user/copy_to_user functions. But since those functions could be inlined, calls from files like uaccess.c with instrumentation disabled won't generate kasan reports. This is currently the case with strncpy_from_user function which was revealed by newly added kasan test. Avoid inlining of copy_from_user/copy_to_user when the kernel is built with kasan support to make sure kasan checks are fully functional. Signed-off-by: Vasily Gorbik Signed-off-by: Martin Schwidefsky commit 15854edd193ae5d9daf8f50ce5f9f1724cebe344 Author: Christoph Hellwig Date: Wed Apr 10 10:02:20 2019 +0200 x86/pci: Clean up usage of X86_DEV_DMA_OPS We have supported per-device dma_map_ops in generic code for a long time, and this symbol just guards the inclusion of the dma_map_ops registry used for vmd. Stop enabling it for anything but vmd. No change in functionality intended. Signed-off-by: Christoph Hellwig Acked-by: Bjorn Helgaas Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20190410080220.21705-3-hch@lst.de Signed-off-by: Ingo Molnar commit 328e9f6973be2ee67862cb17bf6c0c5c5918cd72 Author: Takashi Iwai Date: Wed Apr 24 13:00:03 2019 +0200 ALSA: usb-audio: Handle the error from snd_usb_mixer_apply_create_quirk() The error from snd_usb_mixer_apply_create_quirk() is ignored in the current usb-audio driver code, which will continue the probing even after the error. Let's take it more serious. Fixes: 7b1eda223deb ("ALSA: usb-mixer: factor out quirks") Signed-off-by: Takashi Iwai commit 392bef709659abea614abfe53cf228e7a59876a4 Author: Kees Cook Date: Tue Apr 23 11:38:27 2019 -0700 x86/build: Move _etext to actual end of .text When building x86 with Clang LTO and CFI, CFI jump regions are automatically added to the end of the .text section late in linking. As a result, the _etext position was being labelled before the appended jump regions, causing confusion about where the boundaries of the executable region actually are in the running kernel, and broke at least the fault injection code. This moves the _etext mark to outside (and immediately after) the .text area, as it already the case on other architectures (e.g. arm64, arm). Reported-and-tested-by: Sami Tolvanen Signed-off-by: Kees Cook Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20190423183827.GA4012@beast Signed-off-by: Ingo Molnar commit 3855f11d54a07256cc4a6fb85c692000208a73a7 Author: Nick Desaulniers Date: Tue Apr 23 14:15:53 2019 -0700 x86/um/vdso: Drop unnecessary cc-ldoption Towards the goal of removing cc-ldoption, it seems that --hash-style= was added to binutils 2.17.50.0.2 in 2006. The minimal required version of binutils for the kernel according to Documentation/process/changes.rst is 2.20. Suggested-by: Masahiro Yamada Signed-off-by: Nick Desaulniers Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: anton.ivanov@cambridgegreys.com Cc: clang-built-linux@googlegroups.com Cc: jdike@addtoit.com Cc: linux-um@lists.infradead.org Cc: richard@nod.at Link: http://lkml.kernel.org/r/20190423211554.1594-1-ndesaulniers@google.com Link: https://gcc.gnu.org/ml/gcc/2007-01/msg01141.html Signed-off-by: Ingo Molnar commit a65c88e16f32aa9ef2e8caa68ea5c29bd5eb0ff0 Author: Jiri Kosina Date: Wed Apr 24 09:04:57 2019 +0200 x86/mm: Remove in_nmi() warning from 64-bit implementation of vmalloc_fault() In-NMI warnings have been added to vmalloc_fault() via: ebc8827f75 ("x86: Barf when vmalloc and kmemcheck faults happen in NMI") back in the time when our NMI entry code could not cope with nested NMIs. These days, it's perfectly fine to take a fault in NMI context and we don't have to care about the fact that IRET from the fault handler might cause NMI nesting. This warning has already been removed from 32-bit implementation of vmalloc_fault() in: 6863ea0cda8 ("x86/mm: Remove in_nmi() warning from vmalloc_fault()") but the 64-bit version was omitted. Remove the bogus warning also from 64-bit implementation of vmalloc_fault(). Reported-by: Nicolai Stange Signed-off-by: Jiri Kosina Acked-by: Peter Zijlstra (Intel) Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Frederic Weisbecker Cc: Joerg Roedel Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Fixes: 6863ea0cda8 ("x86/mm: Remove in_nmi() warning from vmalloc_fault()") Link: http://lkml.kernel.org/r/nycvar.YFH.7.76.1904240902280.9803@cbobk.fhfr.pm Signed-off-by: Ingo Molnar commit 29da93fea3ea39ab9b12270cc6be1b70ef201c9e Author: Peter Zijlstra Date: Wed Apr 24 09:19:25 2019 +0200 mm/uaccess: Use 'unsigned long' to placate UBSAN warnings on older GCC versions Randy reported objtool triggered on his (GCC-7.4) build: lib/strncpy_from_user.o: warning: objtool: strncpy_from_user()+0x315: call to __ubsan_handle_add_overflow() with UACCESS enabled lib/strnlen_user.o: warning: objtool: strnlen_user()+0x337: call to __ubsan_handle_sub_overflow() with UACCESS enabled This is due to UBSAN generating signed-overflow-UB warnings where it should not. Prior to GCC-8 UBSAN ignored -fwrapv (which the kernel uses through -fno-strict-overflow). Make the functions use 'unsigned long' throughout. Reported-by: Randy Dunlap Signed-off-by: Peter Zijlstra (Intel) Acked-by: Randy Dunlap # build-tested Acked-by: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: luto@kernel.org Link: http://lkml.kernel.org/r/20190424072208.754094071@infradead.org Signed-off-by: Ingo Molnar commit 6ae865615fc43d014da2fd1f1bba7e81ee622d1b Author: Peter Zijlstra Date: Wed Apr 24 09:19:24 2019 +0200 x86/uaccess: Dont leak the AC flag into __put_user() argument evaluation The __put_user() macro evaluates it's @ptr argument inside the __uaccess_begin() / __uaccess_end() region. While this would normally not be expected to be an issue, an UBSAN bug (it ignored -fwrapv, fixed in GCC 8+) would transform the @ptr evaluation for: drivers/gpu/drm/i915/i915_gem_execbuffer.c: if (unlikely(__put_user(offset, &urelocs[r-stack].presumed_offset))) { into a signed-overflow-UB check and trigger the objtool AC validation. Finish this commit: 2a418cf3f5f1 ("x86/uaccess: Don't leak the AC flag into __put_user() value evaluation") and explicitly evaluate all 3 arguments early. Reported-by: Randy Dunlap Signed-off-by: Peter Zijlstra (Intel) Acked-by: Randy Dunlap # build-tested Acked-by: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: luto@kernel.org Fixes: 2a418cf3f5f1 ("x86/uaccess: Don't leak the AC flag into __put_user() value evaluation") Link: http://lkml.kernel.org/r/20190424072208.695962771@infradead.org Signed-off-by: Ingo Molnar commit d4645d30b50d1691c26ff0f8fa4e718b08f8d3bb Author: Sebastian Andrzej Siewior Date: Wed Apr 24 10:52:53 2019 +0200 smpboot: Place the __percpu annotation correctly The test robot reported a wrong assignment of a per-CPU variable which it detected by using sparse and sent a report. The assignment itself is correct. The annotation for sparse was wrong and hence the report. The first pointer is a "normal" pointer and points to the per-CPU memory area. That means that the __percpu annotation has to be moved. Move the __percpu annotation to pointer which points to the per-CPU area. This change affects only the sparse tool (and is ignored by the compiler). Reported-by: kbuild test robot Signed-off-by: Sebastian Andrzej Siewior Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Fixes: f97f8f06a49fe ("smpboot: Provide infrastructure for percpu hotplug threads") Link: http://lkml.kernel.org/r/20190424085253.12178-1-bigeasy@linutronix.de Signed-off-by: Ingo Molnar commit b8c7d7bc8386924f57aac0a745ae3240f07b743b Author: Daniel Vetter Date: Thu Feb 28 15:49:10 2019 +0100 drm/atomic: -EACCESS for lease-denied crtc lookup With the previous patch drm_crtc_find will return NULL when the crtc isn't in our lease, which will then disable the plane/connector. No longer an issue since the lessor can't escape their lease terms anymore, but not quite great semantics yet either. Catch this and return -EACCES, so that at least evil test cases have a better chance of making sure the kernel works correctly. Reviewed-by: Dave Airlie Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190228144910.26488-8-daniel.vetter@ffwll.ch commit 36e4523aaf4a35de963e190064b53839fa131653 Author: Daniel Vetter Date: Thu Feb 28 15:49:09 2019 +0100 drm/atomic: Wire file_priv through for property changes We need this to make sure lessees can only connect their plane/connectors to crtc objects they own. And note that this is irrespective of whether the lessor is atomic or not, lessor cannot prevent lessees from enabling atomic. Cc: stable@vger.kernel.org Cc: Keith Packard Reviewed-by: Dave Airlie Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190228144910.26488-7-daniel.vetter@ffwll.ch commit 204f640da6914844b3270b41b29c84f6e3b74083 Author: Daniel Vetter Date: Thu Feb 28 15:49:08 2019 +0100 drm/lease: Make sure implicit planes are leased If userspace doesn't enable universal planes, then we automatically add the primary and cursor planes. But for universal userspace there's no such check (and maybe we only want to give the lessee one plane, maybe not even the primary one), hence we need to check for the implied plane. v2: don't forget setcrtc ioctl. v3: Still allow disabling of the crtc in SETCRTC. Cc: stable@vger.kernel.org Cc: Keith Packard Reviewed-by: Boris Brezillon Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190228144910.26488-6-daniel.vetter@ffwll.ch commit 46b757780dfe60596124b85befa935554dba73a3 Author: Daniel Vetter Date: Thu Feb 28 15:49:07 2019 +0100 drm/lease: Check for lessor outside of locks The lessor is invariant over a lifetime of a lease, we don't have to grab any locks for that. Speeds up the common case of not being a lease. Cc: Keith Packard Reviewed-by: Boris Brezillon Reviewed-by: Dave Airlie Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190228144910.26488-5-daniel.vetter@ffwll.ch commit 4285c7e1aaad6ffe5520b36047a28fc960e32482 Author: Daniel Vetter Date: Thu Feb 28 15:49:06 2019 +0100 drm/leases: Don't init to 0 in drm_master_create We kzalloc. Cc: Keith Packard Reviewed-by: Boris Brezillon Reviewed-by: Dave Airlie Reviewed-by: Mika Kuoppala Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190228144910.26488-4-daniel.vetter@ffwll.ch commit ae9d6c076c0d39e97c14cd531d278ea8471730f4 Author: Daniel Vetter Date: Thu Feb 28 15:49:05 2019 +0100 drm/lease: Drop recursive leads checks We disallow subleasing, so no point checking whether the master holds all the leases - it will. Spotted while typing exhaustive igt coverage for all these corner cases. Cc: Keith Packard Reviewed-by: Boris Brezillon Reviewed-by: Dave Airlie Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190228144910.26488-3-daniel.vetter@ffwll.ch commit e40b7642884239346265cd7adc06dfbb8988f93d Author: Daniel Vetter Date: Thu Feb 28 15:49:04 2019 +0100 drm/leases: Drop object_id validation for negative ids Not exactly sure what's the aim here, but the canonical nil object has id == 0, we don't use negative object ids for anything. Plus all object_id are valided by the object_idr, there's nothing we need to do on top of that ENOENT check a bit further down. Spotted while typing exhaustive igt coverage for all these corner-cases. Cc: Keith Packard Reviewed-by: Boris Brezillon Reviewed-by: Dave Airlie Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190228144910.26488-2-daniel.vetter@ffwll.ch commit 08269364808fc9db1800a80dc4c147f443aa0015 Merge: abbc0697d5fb ee22f76306a6 Author: Daniel Vetter Date: Wed Apr 24 09:31:31 2019 +0200 Merge branch 'drm-legacy-cleanup' of git://people.freedesktop.org/~airlied/linux into drm-next Pull legacy cleanups from Dave. Signed-off-by: Daniel Vetter From: Dave Airlie Link: https://patchwork.freedesktop.org/patch/msgid/CAPM=9tztr1GoR0gr1CXPv8FsAXE4iuoRZDWKYovtnb6oDGF-Lg@mail.gmail.com commit e668eb1e1578f4fec1cf85ea62e43cb0814b6a6e Author: Balakrishna Godavarthi Date: Thu Apr 18 18:51:23 2019 +0530 Bluetooth: hci_core: Don't stop BT if the BD address missing in dts When flag HCI_QUIRK_USE_BDADDR_PROPERTY is set, we will read the bluetooth address from dts. If the bluetooth address node is missing from the dts we will enable it controller UNCONFIGURED state. This patch enables the normal flow even if the BD address is missing from the dts tree. Signed-off-by: Balakrishna Godavarthi Tested-by: Harish Bandi Signed-off-by: Marcel Holtmann commit abbc0697d5fbf53f74ce0bcbe936670199764cfa Author: Dave Airlie Date: Wed Apr 24 16:33:29 2019 +1000 drm/fb: revert the i915 Actually configure untiled displays from master This code moved in here in master, so revert it the same way. This is the same revert as 9fa246256e09 ("Revert "drm/i915/fbdev: Actually configure untiled displays"") in drm-fixes. Signed-off-by: Dave Airlie commit 447811a686e8da7325516a78069ccfbd139ef1a7 Author: Imre Deak Date: Fri Apr 19 10:10:26 2019 +0300 drm/i915/icl: Fix MG_DP_MODE() register programming Fix the order of lane, port parameters passed to the register macro. Note that this was already partly fixed by commit 37fc7845df7b6 ("drm/i915: Call MG_DP_MODE() macro with the right parameters order") While at it simplify things by using the macro directly instead of an unnecessary redirection via an array. v2: - Add a note the commit message about simplifying things. (José) Fixes: 58106b7d816e1 ("drm/i915: Make MG PHY macros semantically consistent") Cc: José Roberto de Souza Cc: Lucas De Marchi Cc: Aditya Swarup Signed-off-by: Imre Deak Reviewed-by: Lucas De Marchi Link: https://patchwork.freedesktop.org/patch/msgid/20190419071026.32370-1-imre.deak@intel.com (cherry picked from commit 9c11b12184bb01d8ba2c48e655509b184f02c769) Signed-off-by: Joonas Lahtinen commit 929eec99f5fd408fbc7e36f6c25fadbd3f45bfa3 Author: Chris Wilson Date: Wed Apr 17 14:25:07 2019 +0100 drm/i915: Avoid use-after-free in reporting create.size We have to avoid chasing after a userspace race! <3>[ 473.114328] BUG: KASAN: use-after-free in i915_gem_create+0x1d2/0x1f0 [i915] <3>[ 473.114389] Read of size 8 at addr ffff88815bf1d840 by task gem_flink_race/1541 <4>[ 473.114464] CPU: 1 PID: 1541 Comm: gem_flink_race Tainted: G U 5.1.0-rc4-g7d07e025e786-kasan_88+ #1 <4>[ 473.114469] Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./J4205-ITX, BIOS P1.10 09/29/2016 <4>[ 473.114474] Call Trace: <4>[ 473.114488] dump_stack+0x7c/0xbb <4>[ 473.114612] ? i915_gem_create+0x1d2/0x1f0 [i915] <4>[ 473.114621] print_address_description+0x65/0x270 <4>[ 473.114728] ? i915_gem_create+0x1d2/0x1f0 [i915] <4>[ 473.114839] ? i915_gem_create+0x1d2/0x1f0 [i915] <4>[ 473.114848] kasan_report+0x149/0x18d <4>[ 473.114962] ? i915_gem_create+0x1d2/0x1f0 [i915] <4>[ 473.115069] i915_gem_create+0x1d2/0x1f0 [i915] <4>[ 473.115176] ? i915_gem_object_create.part.28+0x4b0/0x4b0 [i915] <4>[ 473.115289] ? i915_gem_dumb_create+0x1a0/0x1a0 [i915] <4>[ 473.115297] drm_ioctl_kernel+0x192/0x260 <4>[ 473.115306] ? drm_ioctl_permit+0x280/0x280 <4>[ 473.115326] drm_ioctl+0x67c/0x960 <4>[ 473.115438] ? i915_gem_dumb_create+0x1a0/0x1a0 [i915] <4>[ 473.115448] ? drm_getstats+0x20/0x20 <4>[ 473.115459] ? __lock_acquire+0xa66/0x3fe0 <4>[ 473.115474] ? _raw_spin_unlock_irqrestore+0x39/0x60 <4>[ 473.115485] ? debug_object_active_state+0x2ea/0x4e0 <4>[ 473.115496] ? debug_show_all_locks+0x2d0/0x2d0 <4>[ 473.115513] do_vfs_ioctl+0x18d/0xfa0 <4>[ 473.115522] ? check_flags.part.27+0x440/0x440 <4>[ 473.115532] ? ioctl_preallocate+0x1a0/0x1a0 <4>[ 473.115547] ? __fget+0x2ac/0x410 <4>[ 473.115561] ? __ia32_sys_dup3+0xb0/0xb0 <4>[ 473.115569] ? rwlock_bug.part.0+0x90/0x90 <4>[ 473.115590] ksys_ioctl+0x35/0x70 <4>[ 473.115597] ? lockdep_hardirqs_off+0x1cb/0x2b0 <4>[ 473.115608] __x64_sys_ioctl+0x6a/0xb0 <4>[ 473.115614] ? lockdep_hardirqs_on+0x342/0x590 <4>[ 473.115623] do_syscall_64+0x97/0x400 <4>[ 473.115633] entry_SYSCALL_64_after_hwframe+0x49/0xbe <4>[ 473.115641] RIP: 0033:0x7fce590d55d7 <4>[ 473.115649] Code: b3 66 90 48 8b 05 b1 48 2d 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 81 48 2d 00 f7 d8 64 89 01 48 <4>[ 473.115655] RSP: 002b:00007fce4d525ba8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 <4>[ 473.115662] RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007fce590d55d7 <4>[ 473.115667] RDX: 00007fce4d525c10 RSI: 00000000c010645b RDI: 0000000000000007 <4>[ 473.115672] RBP: 00007fce4d525c10 R08: 00007fce4d526700 R09: 00007fce4d526700 <4>[ 473.115677] R10: 0000000000000054 R11: 0000000000000246 R12: 00000000c010645b <4>[ 473.115682] R13: 0000000000000007 R14: 0000000000000000 R15: 00007ffe0e4a7450 <3>[ 473.115731] Allocated by task 1541: <4>[ 473.115766] kmem_cache_alloc+0xce/0x290 <4>[ 473.115895] i915_gem_object_create.part.28+0x1c/0x4b0 [i915] <4>[ 473.116000] i915_gem_create+0xe3/0x1f0 [i915] <4>[ 473.116008] drm_ioctl_kernel+0x192/0x260 <4>[ 473.116013] drm_ioctl+0x67c/0x960 <4>[ 473.116020] do_vfs_ioctl+0x18d/0xfa0 <4>[ 473.116026] ksys_ioctl+0x35/0x70 <4>[ 473.116032] __x64_sys_ioctl+0x6a/0xb0 <4>[ 473.116038] do_syscall_64+0x97/0x400 <4>[ 473.116044] entry_SYSCALL_64_after_hwframe+0x49/0xbe <3>[ 473.116071] Freed by task 1542: <4>[ 473.116101] kmem_cache_free+0xb7/0x2f0 <4>[ 473.116205] __i915_gem_free_objects+0x7d4/0xe10 [i915] <4>[ 473.116311] i915_gem_create_ioctl+0xaa/0xd0 [i915] <4>[ 473.116318] drm_ioctl_kernel+0x192/0x260 <4>[ 473.116323] drm_ioctl+0x67c/0x960 <4>[ 473.116330] do_vfs_ioctl+0x18d/0xfa0 <4>[ 473.116335] ksys_ioctl+0x35/0x70 <4>[ 473.116341] __x64_sys_ioctl+0x6a/0xb0 <4>[ 473.116347] do_syscall_64+0x97/0x400 <4>[ 473.116354] entry_SYSCALL_64_after_hwframe+0x49/0xbe Testcase: igt/gem_flink_race/flink_close Fixes: e163484afa8d ("drm/i915: Update size upon return from GEM_CREATE") Signed-off-by: Chris Wilson Cc: Michał Winiarski Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190417132507.27133-1-chris@chris-wilson.co.uk (cherry picked from commit 99534023490686ce4453c45e5cb813535b9bff95) Signed-off-by: Joonas Lahtinen commit 9a05045d2a681d36c80aafc08d9d0b63d4ddbc66 Author: Dragos Bogdan Date: Tue Mar 26 16:07:56 2019 +0200 dmaengine: axi-dmac: Enable DMA_INTERLEAVE capability Since device_prep_interleaved_dma() is already implemented, the DMA_INTERLEAVE capability should be set. Signed-off-by: Dragos Bogdan Signed-off-by: Alexandru Ardelean Signed-off-by: Vinod Koul commit 648865a79d8ee3d1aa64aab5eb2a9d12eeed14f9 Author: Alexandru Ardelean Date: Tue Mar 26 16:05:20 2019 +0200 dmaengine: axi-dmac: Don't check the number of frames for alignment In 2D transfers (for the AXI DMAC), the number of frames (numf) represents Y_LENGTH, and the length of a frame is X_LENGTH. 2D transfers are useful for video transfers where screen resolutions ( X * Y ) are typically aligned for X, but not for Y. There is no requirement for Y_LENGTH to be aligned to the bus-width (or anything), and this is also true for AXI DMAC. Checking the Y_LENGTH for alignment causes false errors when initiating DMA transfers. This change fixes this by checking only that the Y_LENGTH is non-zero. Fixes: 0e3b67b348b8 ("dmaengine: Add support for the Analog Devices AXI-DMAC DMA controller") Signed-off-by: Alexandru Ardelean Signed-off-by: Vinod Koul commit 56009f0d2f54e4ce4305d65ce589eee6c22ac25f Author: Lars-Peter Clausen Date: Tue Mar 26 15:06:28 2019 +0200 dmaengine: axi-dmac: Infer synthesis configuration parameters hardware Some synthesis time configuration parameters of the DMA controller can be inferred from the hardware itself. Use this information as it is more reliably than the information specified in the devicetree which might be outdated if the HDL project got changed. Deprecate the devicetree properties that can be inferred from the hardware itself. Signed-off-by: Lars-Peter Clausen Signed-off-by: Alexandru Ardelean Signed-off-by: Vinod Koul commit a65120bae4b7425a39c5783aa3d4fc29677eef0e Author: David Ahern Date: Tue Apr 23 18:05:33 2019 -0700 ipv6: Use result arg in fib_lookup_arg consistently arg.result is sometimes used as fib6_result and sometimes used to hold the rt6_info. Add rt6_info to fib6_result and make the use of arg.result consistent through ipv6 rules. The rt6 entry is filled in for lookups returning a dst_entry, but not for direct fib_lookups that just want a fib6_info. Fixes: effda4dd97e8 ("ipv6: Pass fib6_result to fib lookups") Signed-off-by: David Ahern Signed-off-by: David S. Miller commit b2f97f7de2f6a4df8e431330cf467576486651c5 Author: David Ahern Date: Tue Apr 23 18:06:30 2019 -0700 ipv6: fib6_rule_action_alt needs to return -EAGAIN fib rule actions should return -EAGAIN for the rules to continue to the next one. A recent change overwrote err with the lookup always returning 0 (future change will make it more like IPv4) which means the rules stopped at the first (e.g., local table lookup only). Catch and reset err to -EAGAIN. Fixes: effda4dd97e87 ("ipv6: Pass fib6_result to fib lookups") Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 6ecac85eadb9d4065b9038fa3d3c66d49038e14b Author: Dave Airlie Date: Fri Apr 5 13:17:15 2019 +1000 drm/udl: move to embedding drm device inside udl device. This should help with some of the lifetime issues, and move us away from load/unload. Acked-by: Alex Deucher Signed-off-by: Dave Airlie Link: https://patchwork.freedesktop.org/patch/msgid/20190405031715.5959-4-airlied@gmail.com commit fd96e0dba19c53c2d66f2a398716bb74df8ca85e Author: Dave Airlie Date: Fri Apr 5 13:17:14 2019 +1000 drm/udl: introduce a macro to convert dev to udl. This just makes it easier to later embed drm into udl. Reviewed-by: Alex Deucher Signed-off-by: Dave Airlie Link: https://patchwork.freedesktop.org/patch/msgid/20190405031715.5959-3-airlied@gmail.com commit 331ca3a3d6a75f9e88b3545a4815502dfce308d4 Merge: 70b5f09e4389 8b9550344d39 Author: Dave Airlie Date: Wed Apr 24 13:09:50 2019 +1000 Merge tag 'exynos-drm-next-for-v5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into drm-next Log cleanups - Correct the use of log macro in error case. - Drop unnecessary messages. - Replace DRM_ERROR/DEBUG with DRM_DEV_ERROR/DEBUG. - Print out debug messages with correct device name in vidi and ipp drivers. One trivial cleanup - Just fix checkpatch error, "foo* bar" to "foo *bar" in g2d driver. Signed-off-by: Dave Airlie From: Inki Dae Link: https://patchwork.freedesktop.org/patch/msgid/1556073313-9923-1-git-send-email-inki.dae@samsung.com commit 7973d9e76727aa42f0824f5569e96248a572d50b Author: David Ahern Date: Tue Apr 23 16:03:29 2019 -0700 mlxsw: spectrum_router: Prevent ipv6 gateway with v4 route via replace and append mlxsw currently does not support v6 gateways with v4 routes. Commit 19a9d136f198 ("ipv4: Flag fib_info with a fib_nh using IPv6 gateway") prevents a route from being added, but nothing stops the replace or append. Add a catch for them too. $ ip ro add 172.16.2.0/24 via 10.99.1.2 $ ip ro replace 172.16.2.0/24 via inet6 fe80::202:ff:fe00:b dev swp1s0 Error: mlxsw_spectrum: IPv6 gateway with IPv4 route is not supported. $ ip ro append 172.16.2.0/24 via inet6 fe80::202:ff:fe00:b dev swp1s0 Error: mlxsw_spectrum: IPv6 gateway with IPv4 route is not supported. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 08308f149b7051afa933e59080734f6d96bf19b0 Merge: ecc5663cce8c 6e734c82be63 Author: David S. Miller Date: Tue Apr 23 19:52:33 2019 -0700 Merge branch 'Taprio-qdisc-fixes' Andre Guedes says: ==================== Taprio qdisc fixes I'm re-sending this series, now with the "net-next" prefix in the subject. The only change from the previous version is in patch 3. As suggested by Cong Wang, it removes the !entry check within should_restart_cycle() since it is already checked by the caller. As a side effect, that function becomes a dummy wrapper on list_is_last() so we simply remove it and call list_is_last() instead. ==================== Signed-off-by: David S. Miller commit 6e734c82be63ef6a0032c29f6d406d60e4386050 Author: Andre Guedes Date: Tue Apr 23 12:44:24 2019 -0700 net: sched: taprio: Fix taprio_dequeue() In case we don't have 'guard' or 'budget' to transmit the skb, we should continue traversing the qdisc list since the remaining guard/budget might be enough to transmit a skb from other children qdiscs. Fixes: 5a781ccbd19e (“tc: Add support for configuring the taprio scheduler”) Signed-off-by: Andre Guedes Signed-off-by: David S. Miller commit 2684d1b75f215bdf521064bcbc0015dfca9156e7 Author: Andre Guedes Date: Tue Apr 23 12:44:23 2019 -0700 net: sched: taprio: Fix taprio_peek() While traversing taprio's children qdisc list, if the gate is closed for a given traffic class, we should continue traversing the list since the remaining qdiscs may have skb ready for transmission. This patch also takes this opportunity and changes the function to use the TAPRIO_ALL_GATES_OPEN macro instead of the magic number '-1'. Fixes: 5a781ccbd19e (“tc: Add support for configuring the taprio scheduler”) Signed-off-by: Andre Guedes Signed-off-by: David S. Miller commit 5175aafe71bfb3fc6a1254a966b0f60e7a46ebba Author: Andre Guedes Date: Tue Apr 23 12:44:22 2019 -0700 net: sched: taprio: Remove should_restart_cycle() The 'entry' argument from should_restart_cycle() cannot be NULL since it is already checked by the caller so the WARN_ON() within should_ restart_cycle() could be removed. By doing that, that function becomes a dummy wrapper on list_is_last() so this patch simply gets rid of it and call list_is_last() within advance_sched() instead. Signed-off-by: Andre Guedes Signed-off-by: David S. Miller commit 8599099f0c58cec677a47c968e777eee8d64fb80 Author: Andre Guedes Date: Tue Apr 23 12:44:21 2019 -0700 net: sched: taprio: Refactor taprio_get_start_time() This patch does a code refactoring to taprio_get_start_time() function to improve readability and report error properly. If 'base' time is later than 'now', the start time is equal to 'base' and taprio_get_start_time() is done. That's the natural case so we move that code to the beginning of the function. Also, if 'cycle' calculation is zero, something went really wrong with taprio and we should log that internal error properly. Signed-off-by: Andre Guedes Signed-off-by: David S. Miller commit 59ab87f6eb920fd0ee3058ae4c0956f52036b893 Author: Andre Guedes Date: Tue Apr 23 12:44:20 2019 -0700 net: sched: taprio: Remove pointless variable assigment This patch removes a pointless variable assigment in taprio_change(). The 'err' variable is not used from this assignment to the next one so this patch removes it. Signed-off-by: Andre Guedes Signed-off-by: David S. Miller commit ecc5663cce8c7d7e4eba32af4e1e3cab296c64b9 Author: David Ahern Date: Tue Apr 23 08:48:09 2019 -0700 net: Change nhc_flags to unsigned char nhc_flags holds the RTNH_F flags for a given nexthop (fib{6}_nh). All of the RTNH_F_ flags fit in an unsigned char, and since the API to userspace (rtnh_flags and lower byte of rtm_flags) is 1 byte it can not grow. Make nhc_flags in fib_nh_common an unsigned char and shrink the size of the struct by 8, from 56 to 48 bytes. Update the flags arguments for up netdevice events and fib_nexthop_info which determines the RTNH_F flags to return on a dump/event. The RTNH_F flags are passed in the lower byte of rtm_flags which is an unsigned int so use a temp variable for the flags to fib_nexthop_info and combine with rtm_flags in the caller. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit ffa8ce54be3aaf6b15abae3bbd08282b867d3a4f Author: David Ahern Date: Tue Apr 23 08:23:41 2019 -0700 lwtunnel: Pass encap and encap type attributes to lwtunnel_fill_encap Currently, lwtunnel_fill_encap hardcodes the encap and encap type attributes as RTA_ENCAP and RTA_ENCAP_TYPE, respectively. The nexthop objects want to re-use this code but the encap attributes passed to userspace as NHA_ENCAP and NHA_ENCAP_TYPE. Since that is the only difference, change lwtunnel_fill_encap to take the attribute type as an input. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit ee22f76306a68359c33809f8895eff603e71584b Author: Dave Airlie Date: Tue Apr 23 10:01:50 2019 +1000 drm/legacy: remove some legacy lock struct members This removes these unless legacy is enabled. The lock count init is unneeded anyways since it's kzalloc. Reviewed-by: Daniel Vetter Signed-off-by: Dave Airlie commit 83c163f7eb5948051b6fcb084ab3b81880c147dd Author: Dave Airlie Date: Tue Apr 23 09:56:01 2019 +1000 drm/legacy: place all drm legacy members under DRM_LEGACY. This places a bunch of the legacy members of drm_device into only being there when legacy is enabled. Reviewed-by: Daniel Vetter Signed-off-by: Dave Airlie commit 61ae227032e7f9278cc7d7224045e77e0dedb33e Author: Dave Airlie Date: Thu Apr 18 17:10:40 2019 +1000 drm: allow removal of legacy codepaths (v4.1) If you don't want the legacy drivers, then lets get rid of all the legacy codepaths from the core module. This drop the size of drm.ko for me by about 10%. 380515 7422 4192 392129 5fbc1 ../../drm-next-build/drivers/gpu/drm/drm.ko 351736 7298 4192 363226 58ada ../../drm-next-build/drivers/gpu/drm/drm.ko v2: drop drm_lock as well, fix some DMA->DRM typos v3: avoid ifdefs in mainline code v4: rework ioctl defs v4.1: fix nouveau Kconfig Reviewed-by: Daniel Vetter Signed-off-by: Dave Airlie commit 848ee53894811e8bd3aade86415e6bc0afe5cbd3 Author: Dave Airlie Date: Tue Apr 23 09:55:20 2019 +1000 drm/legacy: don't include any of ati_pcigart in legacy. (v2) This could probably be done with Kconfig somehow, but I failed in my first 2 minute attempt. v2: use Kconfig better. Reviewed-by: Daniel Vetter Signed-off-by: Dave Airlie commit 1fa32cb612a869e576cae489616b0cc286b93f6c Author: Dave Airlie Date: Tue Apr 23 09:48:13 2019 +1000 drm/legacy: move legacy dev reinit into legacy misc This moves the legacy dev reinit into the legacy misc file. Reviewed-by: Daniel Vetter Signed-off-by: Dave Airlie commit 8437dd73b37f244863d1d8954a69d8b0eecd3470 Author: Dave Airlie Date: Tue Apr 23 09:47:27 2019 +1000 drm/legacy: move init/destroy of struct members into legacy file This introduces drm_legacy_misc.c as a place for some misc legacy code, eventually I want to give the option to remove this from the build. Reviewed-by: Daniel Vetter Signed-off-by: Dave Airlie commit fabb0e2a256944c44e820ac411c91e9f6cfd7080 Author: Dave Airlie Date: Tue Apr 23 09:40:54 2019 +1000 drm/legacy: move map_hash create/destroy into inlines This allows them to be removed later. Reviewed-by: Daniel Vetter Signed-off-by: Dave Airlie commit 058ca50ce3f1d40dac4d918a91684b0af4a0c468 Author: Dave Airlie Date: Tue Apr 23 09:36:54 2019 +1000 drm/legacy: move lock cleanup for master into lock file (v2) This makes it easier to remove legacy code later. v2: move check into lock file as well. Reviewed-by: Daniel Vetter Signed-off-by: Dave Airlie commit 9b7a77435c1d87d89101484c9a96e577742d8cc2 Author: Dave Airlie Date: Tue Apr 23 09:33:56 2019 +1000 drm/radeon: drop unused ati pcigart include. Reviewed-by: Christian König Signed-off-by: Dave Airlie commit 35a280219b32a6960a094e195cf2930ff1702243 Author: Dave Airlie Date: Tue Apr 23 08:45:12 2019 +1000 drm/legacy: move map cleanups into drm_bufs.c This makes it easier to clean this up later. Reviewed-by: Daniel Vetter Signed-off-by: Dave Airlie commit 15e60851e191c0e4ad19d755da7b92fefbf10c7e Author: Dave Airlie Date: Tue Apr 23 08:42:23 2019 +1000 drm/legacy: move drm_legacy_master_rmmaps to non-driver legacy header. This isn't used by drivers, and won't be in the future. Reviewed-by: Daniel Vetter Signed-off-by: Dave Airlie commit b30a43ac7132cdda833ac4b13dd1ebd35ace14b7 Author: Dave Airlie Date: Thu Apr 18 16:45:15 2019 +1000 drm/nouveau: add kconfig option to turn off nouveau legacy contexts. (v3) There was a nouveau DDX that relied on legacy context ioctls to work, but we fixed it years ago, give distros that have a modern DDX the option to break the uAPI and close the mess of holes that legacy context support is. Full context of the story: commit 0e975980d435d58df2d430d688b8c18778b42218 Author: Peter Antoine Date: Tue Jun 23 08:18:49 2015 +0100 drm: Turn off Legacy Context Functions The context functions are not used by the i915 driver and should not be used by modeset drivers. These driver functions contain several bugs and security holes. This change makes these functions optional can be turned on by a setting, they are turned off by default for modeset driver with the exception of the nouvea driver that may require them with an old version of libdrm. The previous attempt was commit 7c510133d93dd6f15ca040733ba7b2891ed61fd1 Author: Daniel Vetter Date: Thu Aug 8 15:41:21 2013 +0200 drm: mark context support as a legacy subsystem but this had to be reverted commit c21eb21cb50d58e7cbdcb8b9e7ff68b85cfa5095 Author: Dave Airlie Date: Fri Sep 20 08:32:59 2013 +1000 Revert "drm: mark context support as a legacy subsystem" v2: remove returns from void function, and formatting (Daniel Vetter) v3: - s/Nova/nouveau/ in the commit message, and add references to the previous attempts - drop the part touching the drm hw lock, that should be a separate patch. Signed-off-by: Peter Antoine (v2) Cc: Peter Antoine (v2) Reviewed-by: Peter Antoine Signed-off-by: Daniel Vetter v2: move DRM_VM dependency into legacy config. v3: fix missing dep (kbuild robot) Cc: stable@vger.kernel.org Reviewed-by: Daniel Vetter Signed-off-by: Dave Airlie commit 8b9550344d3914cf606f365b6fa4279fb3cd4684 Author: Inki Dae Date: Mon Apr 15 17:13:38 2019 +0900 drm/ipp: clean up debug messages Print out debug messages with correct device name. As for this, this patch adds device pointer to exynos_drm_ipp structure, and in case of exynos_drm_ipp_task structure, replace drm_device pointer with device one. This will make each ipp driver to print out debug messages with correct device name. Signed-off-by: Inki Dae commit df90a64eaf57b89ebc910ad0e4e2b4c3dc1567b9 Author: Inki Dae Date: Mon Apr 15 16:35:08 2019 +0900 drm/vidi: replace platform_device pointer with device one Add device pointer to vidi_context and remove platform_device pointer. It doesn't need for vidi_context to contain platform_device object. Instead, this patch makes this driver more simply by replacing platform_device pointer with device one. Signed-off-by: Inki Dae commit 6be900563a9e7420ead7de5737a004e1878ef145 Author: Inki Dae Date: Mon Apr 15 16:25:12 2019 +0900 drm/exynos: use DRM_DEV_DEBUG* instead of DRM_DEBUG macro Use DRM_DEV_DEBUG* instead of DRM_DEBUG macro to print out debug messages. This patch just cleans up the use of debug log macro, which changes the log macro to DRM_DEV_DEBUG*. Signed-off-by: Inki Dae commit 6f83d20838c09936b2884d5b35fed8d208679947 Author: Inki Dae Date: Mon Apr 15 14:24:36 2019 +0900 drm/exynos: use DRM_DEV_ERROR to print out error message This patch just cleans up the use of error log macro, which changes the log macro to DRM_DEV_ERROR. Signed-off-by: Inki Dae commit 62f28738f1f87c5355fc09ba127665a3c353f7be Author: Inki Dae Date: Mon Apr 15 09:41:15 2019 +0900 drm/exynos: remove unnecessary messages This patch removes unnecessary messages from fimd_clear_channels and decon_clear_channels functions which print out just function name. Signed-off-by: Inki Dae commit e59305305c6bf5c1e60e988006e0a9d8da6b3aa1 Author: Inki Dae Date: Mon Apr 15 09:32:53 2019 +0900 drm/fimd: use DRM_ERROR instead of DRM_INFO in error case This patch makes error messages to be printed out using DRM_ERROR instead of DRM_INFO. Signed-off-by: Inki Dae commit f9af3f846c31b4295bc276c57433215414e84392 Author: Seung-Woo Kim Date: Wed Mar 27 14:07:09 2019 +0900 drm/exynos: g2d: remove style error Remove checkpatch error, "foo* bar" should be "foo *bar". Signed-off-by: Seung-Woo Kim Signed-off-by: Inki Dae commit 70b5f09e4389c789263c6d79c539b8378e3af3bc Merge: 42f1a013300d b02872df58ac Author: Dave Airlie Date: Wed Apr 24 11:54:26 2019 +1000 Merge tag 'drm-msm-next-2019-04-21' of https://gitlab.freedesktop.org/drm/msm into drm-next This time around it is a bunch of cleanup and fixes, expanding gpu "zap" shader support (so we can take the GPU out of secure mode on boot) to a6xx, and small UABI extension to support robustness (see mesa MR 673). Signed-off-by: Dave Airlie From: Rob Clark Link: https://patchwork.freedesktop.org/patch/msgid/CAF6AEGsHwsEfi4y2LYKSqeqDEYvffwVgKhiP8jHcHpxp13J5LQ@mail.gmail.com commit 42f1a013300dca601d779b02ed6d41f7b2cea362 Merge: 6e865c723014 f55be0be5b72 Author: Dave Airlie Date: Wed Apr 24 11:24:22 2019 +1000 Merge branch 'drm-next-5.2' of git://people.freedesktop.org/~agd5f/linux into drm-next - Add the amdgpu specific bits for timeline support - Add internal interfaces for xgmi pstate support - DC Z ordering fixes for planes - Add support for NV12 planes in DC - Add colorspace properties for planes in DC - eDP optimizations if the GOP driver already initialized eDP - DC bandwidth validation tracing support Signed-off-by: Dave Airlie From: Alex Deucher Link: https://patchwork.freedesktop.org/patch/msgid/20190419150034.3473-1-alexander.deucher@amd.com commit 0a5d329ffd1be394e3e4176eb11ca51dfde03c40 Author: Simon Horman Date: Tue Apr 23 15:01:53 2019 +0200 ravb: Avoid unsupported internal delay mode for R-Car E3/D3 According to the R-Car Gen3 Hardware Manual Rev 1.50 of Nov 30, 2018, the TX clock internal delay mode isn't supported on R-Car E3 (r8a77990) or D3 (r8a77995). And by extension it is also not supported by RZ/G2E (r9a774c0). This matches all ES versions of the affected SoCs as it is not clear if this problem will be resolved in newer chips. This can be revisited, as necessary. This patch does not error-out if PHY_INTERFACE_MODE_RGMII_ID or PHY_INTERFACE_MODE_RGMII_TXID are used on SoCs where TX clock delay mode is not supported as there is a risk of introducing a regression when used in conjunction with older DT blobs present in the field. Rather, a warning is logged in such cases. Based on work by Kazuya Mizuguchi. Signed-off-by: Simon Horman Reviewed-by: Andrew Lunn Reviewed-by: Sergei Shtylyov Signed-off-by: David S. Miller commit c98f4822ed7e02ff91fd29707218779718cf60f9 Author: Stephen Rothwell Date: Tue Apr 23 17:25:24 2019 +1000 net: fix sparc64 compilation of sock_gettstamp net/core/sock.c: In function 'sock_gettstamp': net/core/sock.c:3007:23: error: expected '}' before ';' token .tv_sec = ts.tv_sec; ^ net/core/sock.c:3011:4: error: expected ')' before 'return' return -EFAULT; ^~~~~~ net/core/sock.c:3013:2: error: expected expression before '}' token } ^ Fixes: c7cbdbf29f48 ("net: rework SIOCGSTAMP ioctl handling") Signed-off-by: Stephen Rothwell Signed-off-by: David S. Miller commit 0fa4122b2dc4732e35ea11cf065bc54e0e45ed1d Author: Fuqian Huang Date: Tue Apr 23 10:56:23 2019 +0800 isdn:mISDN: fix misuse of %x in hfcpci.c Pointers should be printed with %p or %px rather than cast to (u_long) and printed with %lx. Change %lx to %p to print the pointer. Change %lx to %pad to print the dma_addr_t. Signed-off-by: Fuqian Huang Signed-off-by: David S. Miller commit 6f9fd97e3a6b32dc7783b0c21f551a9dff7cbe0a Author: Fuqian Huang Date: Tue Apr 23 10:25:28 2019 +0800 isdn: hisax: Fix misuse of %x in config.c Pointers should be printed with %p or %px rather than cast to (u_long) type and printed with %lX. As the function seems to be for debug purpose. Change %lX to %px to print the pointer value. Signed-off-by: Fuqian Huang Signed-off-by: David S. Miller commit 6e865c7230140126cbac62e0aef5807108e46e63 Merge: 8d8f6f704495 61b51fb51c01 Author: Dave Airlie Date: Wed Apr 24 10:30:41 2019 +1000 Merge tag 'drm/tegra/for-5.2-rc1' of git://anongit.freedesktop.org/tegra/linux into drm-next drm/tegra: Changes for v5.2-rc1 This contains a fix for the usage of shared resets that previously generated a WARN on boot. In addition, there's a fix for CPU cache maintenance of GEM buffers allocated using get_pages(). (airlied: contains a merge from a shared tegra tree) Signed-off-by: Dave Airlie From: Thierry Reding Link: https://patchwork.freedesktop.org/patch/msgid/20190418151447.9430-1-thierry.reding@gmail.com commit 6b18bdfdba2cb11c26f06dea6bacfd6d43a37c88 Merge: 20eb08b2b06b f05713e0916c Author: David S. Miller Date: Tue Apr 23 17:19:48 2019 -0700 Merge branch 'ipv6-fib6_ref-conversion-to-refcount_t' Eric Dumazet says: ==================== ipv6: fib6_ref conversion to refcount_t We are chasing use-after-free in IPv6 that could have their origin in fib6_ref 0 -> 1 transitions. This patch series should help finding the root causes if these illegal transitions ever happen. ==================== Signed-off-by: David S. Miller commit f05713e0916ca46f127641b6afa74bd1a0772423 Author: Eric Dumazet Date: Mon Apr 22 18:35:03 2019 -0700 ipv6: convert fib6_ref to refcount_t We suspect some issues involving fib6_ref 0 -> 1 transitions might cause strange syzbot reports. Lets convert fib6_ref to refcount_t to catch them earlier. Signed-off-by: Eric Dumazet Cc: Wei Wang Acked-by: Wei Wang Reviewed-by: David Ahern Signed-off-by: David S. Miller commit 5ea715289af6e7d0459c8f279c70557a9ee4f322 Author: Eric Dumazet Date: Mon Apr 22 18:35:02 2019 -0700 ipv6: broadly use fib6_info_hold() helper Instead of using atomic_inc(), prefer fib6_info_hold() so that upcoming refcount_t conversion is simpler. Only fib6_info_alloc() is using atomic_set() since we just allocated a new object. Signed-off-by: Eric Dumazet Cc: Wei Wang Acked-by: Wei Wang Reviewed-by: David Ahern Signed-off-by: David S. Miller commit b0270550229b3efeadfcac1cf04415dfea27915e Author: Eric Dumazet Date: Mon Apr 22 18:35:01 2019 -0700 ipv6: fib6_info_destroy_rcu() cleanup We do not need to clear f6i->rt6i_exception_bucket right before freeing f6i. Note that f6i->rt6i_exception_bucket is properly protected by f6i->exception_bucket_flushed being set to one in rt6_flush_exceptions() under the protection of rt6_exception_lock. Signed-off-by: Eric Dumazet Cc: Wei Wang Acked-by: Wei Wang Reviewed-by: David Ahern Signed-off-by: David S. Miller commit 8d8f6f704495b1135ef77b7860d833fda97ea841 Merge: b1c4f7feada5 debcd8f954be Author: Dave Airlie Date: Wed Apr 24 10:12:34 2019 +1000 Merge tag 'drm-misc-next-2019-04-18' of git://anongit.freedesktop.org/drm/drm-misc into drm-next drm-misc-next for v5.2: UAPI Changes: - Document which feature flags belong to which command in virtio_gpu.h - Make the FB_DAMAGE_CLIPS available for atomic userspace only, it's useless for legacy. Cross-subsystem Changes: - Add device tree bindings for lg,acx467akm-7 panel and ST-Ericsson Multi Channel Display Engine MCDE - Add parameters to the device tree bindings for tfp410 - iommu/io-pgtable: Add ARM Mali midgard MMU page table format - dma-buf: Only do a 64-bits seqno compare when driver explicitly asks for it, else wraparound. - Use the 64-bits compare for dma-fence-chains Core Changes: - Make the fb conversion functions use __iomem dst. - Rename drm_client_add to drm_client_register - Move intel_fb_initial_config to core. - Add a drm_gem_objects_lookup helper - Add drm_gem_fence_array helpers, and use it in lima. - Add drm_format_helper.c to kerneldoc. Driver Changes: - Add panfrost driver for mali midgard/bitfrost. - Converts bochs to use the simple display type. - Small fixes to sun4i, tinydrm, ti-fp410. - Fid aspeed's Kconfig options. - Make some symbols/functions static in lima, sun4i and meson. - Add a driver for the lg,acx467akm-7 panel. Signed-off-by: Dave Airlie From: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/737ad994-213d-45b5-207a-b99d795acd21@linux.intel.com commit 20eb08b2b06bf1cf5e5dda2e5212db893c3e8ffe Merge: 539b593d3940 f8ebecf2e32a Author: David S. Miller Date: Tue Apr 23 17:03:40 2019 -0700 Merge tag 'mlx5-updates-2019-04-22' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux Saeed Mahameed says: ==================== mlx5-updates-2019-04-22 This series includes updates to mlx5e driver RX data path and some significant XDP RX/TX improvements to overcome/mitigate HW and PCIE bottlenecks. From Tariq: 1) Some Enhancements in rq->flags 2) Stabilize RX packet rate (on Striding RQ) with multiple outstanding UMR posts In this patch, we add support for multiple outstanding UMR posts, to allow faster gap closure between consuming MPWQEs and reposting them back into the WQ. Performance test: As expected, huge improvement in large-scale (48 cores). xdp_redirect_map, 64B UDP multi-stream. Redirect from ConnectX-5 100Gbps to ConnectX-6 100Gbps. CPU: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz. Before: Unstable, 7 to 30 Mpps After: Stable, at 70.5 Mpps From Shay: 3) XDP, Inline small packets into the TX MPWQE in XDP xmit flow Upon high packet rate with multiple CPUs TX workloads, much of the HCA's resources are spent on prefetching TX descriptors, thus affecting transmission rates. This patch comes to mitigate this problem by moving some workload to the CPU and reducing the HW data prefetch overhead for small packets (<= 256B). When forwarding packets with XDP, a packet that is smaller than a certain size (set to ~256 bytes) would be sent inline within its WQE TX descrptor (mem-copied), when the hardware tx queue is congested beyond a pre-defined water-mark. Performance: Tested packet rate for UDP 64Byte multi-stream over two dual port ConnectX-5 100Gbps NICs. CPU: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz * Tested with hyper-threading disabled XDP_TX: | | before | after | | | 24 rings | 51Mpps | 116Mpps | +126% | | 1 ring | 12Mpps | 12Mpps | same | XDP_REDIRECT: ** Below is the transmit rate, not the redirection rate which might be larger, and is not affected by this patch. | | before | after | | | 32 rings | 64Mpps | 92Mpps | +43% | | 1 ring | 6.4Mpps | 6.4Mpps | same | As we can see, feature significantly improves scaling, without hurting single ring performance. From Maxim: 4) Some trivial refactoring and code improvements prior to a larger series to support AF_XDP. ==================== Acked-by: Jakub Kicinski Signed-off-by: David S. Miller commit b1c4f7feada5a5cf4e13db1631fb4784b1ddcb31 Merge: b3edf499dd5b ad2c467aa92e Author: Dave Airlie Date: Wed Apr 24 10:02:20 2019 +1000 Merge tag 'drm-intel-next-2019-04-17' of git://anongit.freedesktop.org/drm/drm-intel into drm-next UAPI Changes: - uAPI "Fixes:" patch for the upcoming kernel 5.1, included here too We have an Ack from the media folks (only current user) for this late tweak Cross-subsystem Changes: - ALSA: hda: Fix racy display power access (Takashi, Chris) Driver Changes: - DDI and MIPI-DSI clocks fixes for Icelake (Vandita) - Fix Icelake frequency change/locking (RPS) (Mika) - Temporarily disable ppGTT read-only bit on Icelake (Mika) - Add missing Icelake W/As (Mika) - Enable 12 deep CSB status FIFO on Icelake (Mika) - Inherit more Icelake code for Elkhartlake (Bob, Jani) - Handle catastrophic error on engine reset (Mika) - Shortcut readiness to reset check (Mika) - Regression fix for GEM_BUSY causing us to report a mixed uabi-class request as not busy (Chris) - Revert back to max link rate and lane count on eDP (Jani) - Fix pipe BPP readout for BXT/GLK DSI (Ville) - Set DP min_bpp to 8*3 for non-RGB output formats (Ville) - Enable coarse preemption boundaries for Gen8 (Chris) - Do not enable FEC without DSC (Ville) - Restore correct BXT DDI latency optim setting calculation (Ville) - Always reset context's RING registers to avoid running workload twice during reset (Chris) - Set GPU wedged on driver unload (Janusz) - Consolidate two similar barries from timeline into one (Chris) - Only reset the pinned kernel contexts on resume (Chris) - Wakeref tracking improvements (Chris, Imre) - Lockdep fixes for shrinker interactions (Chris) - Bump ready tasks ahead of busywaits in prep of semaphore use (Chris) - Huge step in splitting display code into fine grained files (Jani) - Refactor the IRQ init/reset macros for code saving (Paulo) - Convert IRQ initialization code to uncore MMIO access (Paulo) - Convert workarounds code to use uncore MMIO access (Chris) - Nuke drm_crtc_state and use intel_atomic_state instead (Manasi) - Update SKL clock-gating WA (Radhakrishna, Ville) - Isolate GuC reset code flow (Chris) - Expose force_dsc_enable through debugfs (Manasi) - Header standalone compile testing framework (Jani) - Code cleanups to reduce driver footprint (Chris) - PSR code fixes and cleanups (Jose) - Sparse and kerneldoc updates (Chris) - Suppress spurious combo PHY B warning (Vile) Signed-off-by: Dave Airlie From: Joonas Lahtinen Link: https://patchwork.freedesktop.org/patch/msgid/20190418080426.GA6409@jlahtine-desk.ger.corp.intel.com commit a21b48a2f2afa53bbc989cce6fc81edbed39eab0 Merge: 2aad32613c35 f6ad6accaa99 Author: Daniel Borkmann Date: Wed Apr 24 01:32:27 2019 +0200 Merge branch 'bpf-proto-fixes' Willem de Bruijn says: ==================== Expand the tc tunnel encap support with protocols that convert the network layer protocol, such as 6in4. This is analogous to existing support in bpf_skb_proto_6_to_4. Patch 1 implements the straightforward logic Patch 2 tests it with a 6in4 tunnel Changes v1->v2 - improve documentation in test ==================== Signed-off-by: Daniel Borkmann commit f6ad6accaa99dfa7462d18687961b8421d707c1e Author: Willem de Bruijn Date: Tue Apr 23 14:43:49 2019 -0400 selftests/bpf: expand test_tc_tunnel with SIT encap So far, all BPF tc tunnel testcases encapsulate in the same network protocol. Add an encap testcase that requires updating skb->protocol. The 6in4 tunnel encapsulates an IPv6 packet inside an IPv4 tunnel. Verify that bpf_skb_net_grow correctly updates skb->protocol to select the right protocol handler in __netif_receive_skb_core. The BPF program should also manually update the link layer header to encode the right network protocol. Changes v1->v2 - improve documentation of non-obvious logic Signed-off-by: Willem de Bruijn Tested-by: Alan Maguire Acked-by: Yonghong Song Signed-off-by: Daniel Borkmann commit 1b00e0dfe7d08a17d818c34d4c9968047a3f3e4b Author: Willem de Bruijn Date: Tue Apr 23 14:43:48 2019 -0400 bpf: update skb->protocol in bpf_skb_net_grow Some tunnels, like sit, change the network protocol of packet. If so, update skb->protocol to match the new type. Signed-off-by: Willem de Bruijn Reviewed-by: Alan Maguire Acked-by: Yonghong Song Signed-off-by: Daniel Borkmann commit 6beff00b79ca0b5caf0ce6fb8e11f57311bd95f8 Author: Tycho Andersen Date: Wed Mar 6 13:14:12 2019 -0700 seccomp: fix up grammar in comment This sentence is kind of a train wreck anyway, but at least dropping the extra pronoun helps somewhat. Signed-off-by: Tycho Andersen Acked-by: Kees Cook Signed-off-by: James Morris commit a9a3c0da1427153e74a4ad97b1a897384a6b0404 Author: Jun Lei Date: Mon Apr 8 15:27:53 2019 -0400 drm/amd/display: add explicit handshake between x86 and DMCU [why] When DMCU interrupts x86, it leads to undefined phy programming [how] expand dmcu interface to support new PHY lock and unlock commands if DMCU FW doesn't support these commands, they fail silently so its okay Signed-off-by: Jun Lei Reviewed-by: Anthony Koo Acked-by: Leo Li Signed-off-by: Alex Deucher commit cc602e2b0d78254e41bb81f32e2825f00c7cc69c Author: Eric Bernstein Date: Mon Apr 8 13:47:10 2019 -0400 drm/amd/display: Allow cursor position when plane_res.ipp is NULL [Why] Starting with DCN1, the input_pixel_processor (ipp) struct has been replaced by dpp struct (part of DAL3.1 SW architecture change). Need to update logic to handle cases where ipp is never allocated. [How] Only skip cursor position programming if both ipp and dpp resources are NULL. Signed-off-by: Eric Bernstein Reviewed-by: Dmytro Laktyushkin Acked-by: Leo Li Signed-off-by: Alex Deucher commit 00ae0af700ccef23d8c2ec76a11bd95c46ebdfd2 Author: Aric Cyr Date: Mon Apr 8 08:27:18 2019 -0400 drm/amd/display: 3.2.27 Signed-off-by: Aric Cyr Reviewed-by: Aric Cyr Acked-by: Leo Li Signed-off-by: Alex Deucher commit 5b7c0d8d2bade0f743009e5c2deb541792e0e963 Author: Anthony Koo Date: Thu Apr 4 14:42:44 2019 -0400 drm/amd/display: Fix eDP Black screen after S4 resume [Why] Power down of PHY on eDP requires us to call eDP power control to power on again [How] 1. In the case link rates don't match, disable PHY requires calling of eDP power control ON after 2. Link disable case limit to eDP path since this is not really applicable to DP since we do power down PHY as part of verify link cap 3. Move detection of eDP link settings to be done even for S4 resume cases where other dpcd cap read and edid read can be skipped Signed-off-by: Anthony Koo Reviewed-by: Jun Lei Acked-by: Aric Cyr Acked-by: Leo Li Signed-off-by: Alex Deucher commit abdef7558358ea34c7ad03edc8c82557d0c1df51 Author: Anthony Koo Date: Thu Apr 4 09:44:55 2019 -0400 drm/amd/display: Send DMCU messages only if FW loaded [Why] Some DMCU messages were being sent in cases where there was no DMCU FW at all, which resulted in some wait timeouts [How] Delay sending some of the DMCU messages after FW init is called and DMCU is running. Signed-off-by: Anthony Koo Reviewed-by: Aric Cyr Acked-by: Leo Li Signed-off-by: Alex Deucher commit 43e3ac8389ef68ab2347eb1ae4a6e5b49793614e Author: Wenjing Liu Date: Fri Mar 29 18:22:16 2019 -0400 drm/amd/display: Add function to copy DC streams We'll need the ability to copy a dc_stream_state for some features. Implement it here. Signed-off-by: Wenjing Liu Reviewed-by: Jun Lei Acked-by: Leo Li Signed-off-by: Alex Deucher commit 41629f02c604546e24a911413b99cd9d80e842db Author: Anthony Koo Date: Wed Apr 3 16:59:56 2019 -0400 drm/amd/display: Allow system to enter stutter on init [Why] Workaround was missing in one HW disable path, meaning when all pipes are power gated, stutter was not working [How] Add workaround for init_hw path for stutter workaround Signed-off-by: Anthony Koo Reviewed-by: Aric Cyr Acked-by: Leo Li Signed-off-by: Alex Deucher commit bb20be7510203db17c6c09f888cf328e307f1701 Author: Leo Li Date: Thu Apr 18 11:53:58 2019 -0400 drm/amdgpu: Check if SW SMU is supported before accessing funcs smu.ppt_funcs is only initialized for ASICs supporting SW SMU. On a Hawaii ASIC, attempting to access the udev attribute ATTRS{power_dpm_state} will cause a null pointer deref in amdgpu_get_dpm_state() because of this. Fix by checking if SW SMU is supported first. Signed-off-by: Leo Li Reviewed-by: Alex Deucher Reviewed-by: Huang Rui Signed-off-by: Alex Deucher commit 3b8cea6f645c909783455265f2cb0fb64fd68f51 Author: Leo Li Date: Mon Apr 15 20:57:36 2019 -0400 drm/amd/include: Add HUBPREQ_DEBUG register offsets They will be used by DC when runing ASIC-specific HUBP initialization. Signed-off-by: Leo Li Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 76c547830bd116dbadf9c4b3c04ce5bf4da6dfe9 Author: Charles Keepax Date: Tue Mar 19 13:37:00 2019 +0000 clk: lochnagar: Add support for the Cirrus Logic Lochnagar Lochnagar is an evaluation and development board for Cirrus Logic Smart CODEC and Amp devices. It allows the connection of most Cirrus Logic devices on mini-cards, as well as allowing connection of various application processor systems to provide a full evaluation platform. This driver supports the board controller chip on the Lochnagar board. The Lochnagar can take several input clocks from the host system, provides several of its own clock sources, and provides extensive routing options for those clocks to be supplied to the attached CODEC/Amp device. Signed-off-by: Charles Keepax Signed-off-by: Stephen Boyd commit 3a02cd6854432e0141bcbc80265587b30278fbdd Author: Charles Keepax Date: Tue Mar 19 13:36:59 2019 +0000 clk: lochnagar: Add initial binding documentation Lochnagar is an evaluation and development board for Cirrus Logic Smart CODEC and Amp devices. It allows the connection of most Cirrus Logic devices on mini-cards, as well as allowing connection of various application processor systems to provide a full evaluation platform. This driver supports the board controller chip on the Lochnagar board. Signed-off-by: Charles Keepax Reviewed-by: Rob Herring Signed-off-by: Stephen Boyd commit 1e0221374e30a765a02e00f01f68869eac57c8d3 Author: Nick Desaulniers Date: Tue Apr 23 13:55:19 2019 -0700 mips: vdso: drop unnecessary cc-ldoption Towards the goal of removing cc-ldoption, it seems that --hash-style= was added to binutils 2.17.50.0.2 in 2006. The minimal required version of binutils for the kernel according to Documentation/process/changes.rst is 2.20. --build-id was added in 2.18 according to binutils-gdb/ld/NEWS. Link: https://gcc.gnu.org/ml/gcc/2007-01/msg01141.html Cc: clang-built-linux@googlegroups.com Suggested-by: Masahiro Yamada Signed-off-by: Nick Desaulniers Signed-off-by: Paul Burton Cc: ralf@linux-mips.org Cc: jhogan@kernel.org Cc: Matt Redfearn Cc: Joel Stanley Cc: Hassan Naveed Cc: linux-mips@vger.kernel.org Cc: linux-kernel@vger.kernel.org commit ba11edc65065ffe38508aa76fdf7a7db15ad8161 Author: Alexandru Gagniuc Date: Fri Mar 15 14:29:40 2019 -0500 PCI/ACPI: Advertise _HPX Type 3 support via _OSC _OSC now has a way to inform firmware that OS has the capability to interpret _HPX Type 3 setting records. This was added by the following PCI Firmware Specification ECN: ECN: _HPX and PCIe Completion Timeout related _OSC Enhancements Date: September 12, 2018 Affected Document: PCI Firmware Specification, Rev. 3.2 Signed-off-by: Alexandru Gagniuc Signed-off-by: Bjorn Helgaas commit f873c51a155aaa6dafdc00fa7fda3754f2f9f794 Author: Alexandru Gagniuc Date: Fri Feb 8 10:24:13 2019 -0600 PCI/ACPI: Implement _HPX Type 3 Setting Record The _HPX Type 3 Setting Record is intended to be more generic and allow configuration of settings not possible with Type 2 records. For example, firmware could ensure that the completion timeout value is set accordingly throughout the PCI tree. Implement support for _HPX Type 3 Setting Records, which were added in the ACPI 6.3 spec. Link: https://lore.kernel.org/lkml/20190208162414.3996-4-mr.nuke.me@gmail.com Signed-off-by: Alexandru Gagniuc Signed-off-by: Bjorn Helgaas commit 87fcf12e846a5028c14d21a94a0712fd1ad5bad0 Author: Alexandru Gagniuc Date: Fri Apr 19 14:27:36 2019 -0500 PCI/ACPI: Remove the need for 'struct hotplug_params' We used to first parse all the _HPP and _HPX tables before using the information to program registers of PCIe devices. Up through HPX Type 2, there was only one structure of each type, so we could cheat and store it on the stack. With HPX Type 3 we get an arbitrary number of entries, so the above model doesn't scale that well. Instead of parsing all tables at once, parse and program each entry separately. For _HPP and _HPX Types 0 through 2, this is functionally equivalent. The change enables the upcoming _HPX Type 3 to integrate more easily. Link: https://lore.kernel.org/lkml/20190208162414.3996-3-mr.nuke.me@gmail.com Signed-off-by: Alexandru Gagniuc [bhelgaas: fix build errors] Signed-off-by: Bjorn Helgaas commit e77704501ca00ecb3f2f6439b3eb0d8afbe3a1bf Author: Alexandru Gagniuc Date: Fri Feb 8 10:24:11 2019 -0600 PCI/ACPI: Do not export pci_get_hp_params() pci_get_hp_params() is only used within drivers/pci, and there is no reason to make it available outside of the PCI core, so stop exporting it. Link: https://lore.kernel.org/lkml/20190208162414.3996-2-mr.nuke.me@gmail.com Signed-off-by: Alexandru Gagniuc Signed-off-by: Bjorn Helgaas commit 8221324b1af8c8fe033de6d39c9e1bbc53ed9f2c Author: Ray Jui Date: Wed Apr 3 14:05:35 2019 -0700 i2c: iproc: Change driver to use 'BIT' macro Change the iProc I2C driver to use the 'BIT' macro from all '1 << XXX' bit operations to get rid of compiler warning and improve readability of the code Signed-off-by: Ray Jui Signed-off-by: Wolfram Sang commit 7358a821f0b571e824fa531c4f764000eeee320a Author: Mauro Carvalho Chehab Date: Mon Apr 22 10:27:04 2019 -0300 docs: gpio: convert docs to ReST and rename to *.rst The API described at sysfs.txt is deprecated. Still, as it is still part of the Kernel (and will likely be there for some time, as we don't simply remove APIs). So, it makes sense to keep it there. The conversion of this file is trivial: - add blank lines and identation in order to identify paragraphs; - mark a literal block as such. At its new index.rst, let's add a :orphan: while this is not linked to the main index.rst file, in order to avoid build warnings. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Linus Walleij commit d303ce595cacc741b17b3ff71195f0caa20fc785 Author: Geert Uytterhoeven Date: Wed Mar 20 11:30:03 2019 +0100 i2c: riic: Add Runtime PM support - Replace explicit clock handling by Runtime PM calls, - Streamline Runtime PM handling in error paths, - Enable Runtime PM in .probe(), - Disable Runtime PM in .remove(), - Make sure the device is runtime-resumed when disabling interrupts in .remove(). Signed-off-by: Geert Uytterhoeven Reviewed-by: Niklas Söderlund Tested-by: Chris Brandt Signed-off-by: Wolfram Sang commit 798689e45190756c2eca6656ee4c624370a5012a Author: Katsuhiro Suzuki Date: Wed Mar 27 21:03:17 2019 +0900 arm64: dts: rockchip: fix IO domain voltage setting of APIO5 on rockpro64 This patch fixes IO domain voltage setting that is related to audio_gpio3d4a_ms (bit 1) of GRF_IO_VSEL. This is because RockPro64 schematics P.16 says that regulator supplies 3.0V power to APIO5_VDD. So audio_gpio3d4a_ms bit should be clear (means 3.0V). Power domain map is saying different thing (supplies 1.8V) but I believe P.16 is actual connectings. Fixes: e4f3fb490967 ("arm64: dts: rockchip: add initial dts support for Rockpro64") Cc: stable@vger.kernel.org Suggested-by: Robin Murphy Signed-off-by: Katsuhiro Suzuki Signed-off-by: Heiko Stuebner commit b3edf499dd5bafa0cd3de74d574b9a2538cbc08f Merge: dbb92471674a c601b12fb634 Author: Dave Airlie Date: Wed Apr 24 07:21:30 2019 +1000 Merge branch 'vmwgfx-next' of https://gitlab.freedesktop.org/drawat/linux into drm-next Resource dirtying improvement by Thomas, user-space error logging improvement and some other minor fixes. Signed-off-by: Dave Airlie From: Deepak Rawat Link: https://patchwork.freedesktop.org/patch/msgid/20190423211630.61874-1-drawat@vmware.com commit f3eb39a55a1f770ec768304af49d406dc92637d7 Author: Srinivas Kandagatla Date: Wed Jan 30 11:04:37 2019 +0000 arm64: dts: db820c: Add sound card support This patch adds support both digital and analog audio on DB820c. This board has HDMI port and 3.5mm audio jack to support both digital and analog audio respectively. Signed-off-by: Srinivas Kandagatla Signed-off-by: Andy Gross commit 6edd1dbace0e8529ed167e8a5f9da63c0cc763cc Author: Christoph Hellwig Date: Tue Apr 23 18:38:09 2019 +0200 asm-generic: optimize generic uaccess for 8-byte loads and stores On 64-bit architectures we can also use the direct load/store trick for 8-byte values. Signed-off-by: Christoph Hellwig Signed-off-by: Arnd Bergmann commit bd79f94758c011bdffd8d4afcfb578d169cb5e93 Author: Christoph Hellwig Date: Tue Apr 23 18:38:08 2019 +0200 asm-generic: provide entirely generic nommu uaccess Move the code to implement uaccess using memcpy or direct loads and stores to asm-generic/uaccess.h and make it selectable kconfig option. Signed-off-by: Christoph Hellwig Signed-off-by: Arnd Bergmann commit c67fdc1f00cba9de86c30f5a01eff21d3ea66c8f Author: Christoph Hellwig Date: Tue Apr 23 18:38:07 2019 +0200 arch: mostly remove A few architectures use internally, but nothing in common code does. Remove all the empty or almost empty versions of it, including the asm-generic one. Signed-off-by: Christoph Hellwig Signed-off-by: Arnd Bergmann commit 737d42f75e943fd884ad13acb6d3ee3aff3dcd30 Author: Christoph Hellwig Date: Tue Apr 23 18:38:06 2019 +0200 asm-generic: don't include from is an odd x86 legacy that we shouldn't force on other architectures. arc used it to bring in mm_context_t, but we can do that inside the arc code easily. Signed-off-by: Christoph Hellwig Signed-off-by: Arnd Bergmann commit 1ad69b69558230ed6bfdcc752bd9b69d33c932b4 Author: Archit Taneja Date: Wed Jan 30 11:04:36 2019 +0000 arm64: dts: apq8096-db820c: Add HDMI display support The APQ8096 DB820c platform provides HDMI output. The MDSS block on 8x96 supports a direct HDMI out. Populate the MDSS, MDP and HDMI DT nodes. Also, add the HDMI HPD and DDC pinctrl nodes with the bias and driver strength specified for this platform. Signed-off-by: Archit Taneja Signed-off-by: Srinivas Kandagatla Signed-off-by: Andy Gross commit 69cc3114ab0f59a1ba429b7e5b84b26e2599d207 Author: Jordan Crouse Date: Wed Jan 30 11:04:35 2019 +0000 arm64: dts: Add Adreno GPU definitions Add an initial node for the Adreno GPU. Signed-off-by: Vivek Gautam Signed-off-by: Srinivas Kandagatla Signed-off-by: Jordan Crouse Signed-off-by: Andy Gross commit 3a4547c1fc2fa5a84d4036d865e9a386c7c11359 Author: Archit Taneja Date: Wed Jan 30 11:04:34 2019 +0000 arm64: qcom: msm8996.dtsi: Add Display nodes Signed-off-by: Archit Taneja [Removed instances of mmagic clocks; Use qcom,msm8996-smmu-v2 bindings] Signed-off-by: Vivek Gautam Signed-off-by: Srinivas Kandagatla Signed-off-by: Andy Gross commit 953f6573700651aef1d1ea9d0bb04cb85c5d00a4 Author: Archit Taneja Date: Wed Jan 30 11:04:33 2019 +0000 arm64: dts: msm8996: Add display smmu node Add device node for display smmu, aka. mdp_smmu. Signed-off-by: Archit Taneja Signed-off-by: Vivek Gautam Signed-off-by: Srinivas Kandagatla Signed-off-by: Andy Gross commit d26c474d4cf3f73817073d87da80b0eb37f68f89 Author: Jordan Crouse Date: Wed Jan 30 11:04:32 2019 +0000 arm64: dts: msm8996: Add graphics smmu node Add device node for graphics smmu, aka. adreno_smmu. Signed-off-by: Jordan Crouse Signed-off-by: Vivek Gautam Signed-off-by: Srinivas Kandagatla Signed-off-by: Andy Gross commit ecf2b768bd11e2ff09ecbe621b387d0d58e970cf Author: Matthias Kaehlcke Date: Tue Apr 23 11:16:52 2019 -0700 Bluetooth: hci_qca: Fix crash with non-serdev devices qca_set_baudrate() calls serdev_device_wait_until_sent() assuming that the HCI is always associated with a serdev device. This isn't true for ROME controllers instantiated through ldisc, where the call causes a crash due to a NULL pointer dereferentiation. Only call the function when we have a serdev device. The timeout for ROME devices at the end of qca_set_baudrate() is long enough to be reasonably sure that the command was sent. Fixes: fa9ad876b8e0 ("Bluetooth: hci_qca: Add support for Qualcomm Bluetooth chip wcn3990") Reported-by: Balakrishna Godavarthi Reported-by: Rocky Liao Signed-off-by: Matthias Kaehlcke Reviewed-by: Rocky Liao Tested-by: Rocky Liao Reviewed-by: Balakrishna Godavarthi Signed-off-by: Marcel Holtmann commit b6bc6423fa1a2b1cdf407c22bf1a1bfff73d57bd Author: Matthias Kaehlcke Date: Wed Jan 16 15:40:39 2019 -0800 arm64: dts: sdm845: Add CPU capacity values Specify the relative CPU capacity of all SDM845 AP cores. The values were provided by Qualcomm engineers. Signed-off-by: Matthias Kaehlcke Reviewed-by: Rajendra Nayak Signed-off-by: Andy Gross commit 7b5ee83dfdf8abe5d1c917762e4cabfe6c1b9c68 Author: Matthias Kaehlcke Date: Mon Jan 14 10:42:55 2019 -0800 arm64: dts: sdm845: Add CPU topology The 8 CPU cores of the SDM845 are organized in two clusters of 4 big ("gold") and 4 little ("silver") cores. Add a cpu-map node to the DT that describes this topology. Signed-off-by: Matthias Kaehlcke Reviewed-by: Douglas Anderson Signed-off-by: Andy Gross commit 0c0e72705a3345916192f740e5fd158efc01fefd Author: Matthias Kaehlcke Date: Wed Dec 19 15:55:27 2018 -0800 arm64: dts: sdm845: Set 'bi_tcxo' as ref clock of the DSI PHYs Add 'bi_tcxo' as ref clock for the DSI PHYs, it was previously hardcoded in the PLL 'driver' for the 10nm PHY. Signed-off-by: Matthias Kaehlcke Reviewed-by: Douglas Anderson Reviewed-by: Stephen Boyd Signed-off-by: Andy Gross commit 79e51645a1dd7bc76c70bbb0f211868e94d8331e Author: Matthias Kaehlcke Date: Wed Dec 19 15:55:26 2018 -0800 arm64: dts: qcom: msm8916: Set 'xo_board' as ref clock of the DSI PHY Add 'xo_board' as ref clock for the DSI PHYs, it was previously hardcoded in the PLL 'driver' for the 28nm PHY. Signed-off-by: Matthias Kaehlcke Reviewed-by: Douglas Anderson Reviewed-by: Stephen Boyd Signed-off-by: Andy Gross commit 7bfd90f5a57e49c3b97929ce1f7868629e3e13d0 Author: Matthias Kaehlcke Date: Thu Sep 27 14:22:53 2018 -0700 arm64: dts: qcom: pm8998: Use ADC temperature to temp-alarm node The temperature information from the temp-alarm block itself is very coarse ("temperature is above/below trip points"). Provide the driver with the die temperature channel of the ADC on the PMIC for more precise readings. Signed-off-by: Matthias Kaehlcke Reviewed-by: Douglas Anderson Signed-off-by: Andy Gross commit f8ebecf2e32a62137dc5a98b2c94b1db37a0f9f8 Author: Maxim Mikityanskiy Date: Tue Mar 5 14:46:16 2019 +0200 net/mlx5e: Use #define for the WQE wait timeout constant Create a #define for the timeout of mlx5e_wait_for_min_rx_wqes to clarify the meaning of a magic number. Signed-off-by: Maxim Mikityanskiy Reviewed-by: Tariq Toukan Signed-off-by: Saeed Mahameed commit 03ceda6fe1f7ef92e7a652ea623495e73fe6967a Author: Maxim Mikityanskiy Date: Thu Mar 21 15:22:57 2019 +0200 net/mlx5e: Remove unused rx_page_reuse stat Remove the no longer used page_reuse stat of RQs. Signed-off-by: Maxim Mikityanskiy Reviewed-by: Tariq Toukan Signed-off-by: Saeed Mahameed commit 63d26b490b56fe9e1765dc2413d2188cec7f6bf7 Author: Maxim Mikityanskiy Date: Fri Mar 1 12:05:21 2019 +0200 net/mlx5e: Take HW interrupt trigger into a function mlx5e_trigger_irq posts a NOP to the ICO SQ just to trigger an IRQ and enter the NAPI poll on the right CPU according to the affinity. Use it in mlx5e_activate_rq. Signed-off-by: Maxim Mikityanskiy Reviewed-by: Tariq Toukan Signed-off-by: Saeed Mahameed commit 10961c5606512ea321aa8a589f174e269eafb8fe Author: Maxim Mikityanskiy Date: Wed Mar 27 13:46:50 2019 +0200 net/mlx5e: Remove unused parameter mdev is unused in mlx5e_rx_is_linear_skb. Signed-off-by: Maxim Mikityanskiy Reviewed-by: Tariq Toukan Signed-off-by: Saeed Mahameed commit b1b187e1029a374e83942e6c591ee5bf8b60f070 Author: Maxim Mikityanskiy Date: Wed Mar 27 13:39:21 2019 +0200 net/mlx5e: Add an underflow warning comment mlx5e_mpwqe_get_log_rq_size calculates the number of WQEs (N) based on the requested number of frames in the RQ (F) and the number of packets per WQE (P). It ensures that N is not less than the minimum number of WQEs in an RQ (N_min). Arithmetically, it means that F / P >= N_min should be true. This function deals with logarithms, so it should check that log(F) - log(P) >= log(N_min). However, if F < P, this expression will cause an unsigned underflow. Check log(F) >= log(P) + log(N_min) instead. Signed-off-by: Maxim Mikityanskiy Reviewed-by: Tariq Toukan Signed-off-by: Saeed Mahameed commit 9a22d5d8393fb71a6cc1820c8fb1ef20e26ab149 Author: Maxim Mikityanskiy Date: Wed Mar 27 13:09:27 2019 +0200 net/mlx5e: Move parameter calculation functions to en/params.c This commit moves the parameter calculation functions to a separate file for better modularity and code sharing with future features. Signed-off-by: Maxim Mikityanskiy Reviewed-by: Tariq Toukan Signed-off-by: Saeed Mahameed commit 74bbaebf3c69eb2f92ac8f703399598a5feed316 Author: Maxim Mikityanskiy Date: Tue Mar 19 18:32:37 2019 +0200 net/mlx5e: Report mlx5e_xdp_set errors If the channels fail to reopen after setting an XDP program, return the error code instead of 0. A proper fix is still needed, as now any error while reopening the channels brings the interface down. This patch only adds error reporting. Signed-off-by: Maxim Mikityanskiy Reviewed-by: Tariq Toukan Signed-off-by: Saeed Mahameed commit 83b2fd64bac36c2fdf25eb5d87e2455408ead1fb Author: Maxim Mikityanskiy Date: Thu Mar 7 19:30:30 2019 +0200 net/mlx5e: Remove unused parameter params is unused in mlx5e_init_di_list. Signed-off-by: Maxim Mikityanskiy Reviewed-by: Tariq Toukan Signed-off-by: Saeed Mahameed commit c2273219baa5097a4d7c1c162b992623534f34c1 Author: Shay Agroskin Date: Thu Mar 14 14:54:07 2019 +0200 net/mlx5e: XDP, Inline small packets into the TX MPWQE in XDP xmit flow Upon high packet rate with multiple CPUs TX workloads, much of the HCA's resources are spent on prefetching TX descriptors, thus affecting transmission rates. This patch comes to mitigate this problem by moving some workload to the CPU and reducing the HW data prefetch overhead for small packets (<= 256B). When forwarding packets with XDP, a packet that is smaller than a certain size (set to ~256 bytes) would be sent inline within its WQE TX descrptor (mem-copied), when the hardware tx queue is congested beyond a pre-defined water-mark. This is added to better utilize the HW resources (which now makes one less packet data prefetch) and allow better scalability, on the account of CPU usage (which now 'memcpy's the packet into the WQE). To load balance between HW and CPU and get max packet rate, we use watermarks to detect how much the HW is congested and move the work loads back and forth between HW and CPU. Performance: Tested packet rate for UDP 64Byte multi-stream over two dual port ConnectX-5 100Gbps NICs. CPU: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz * Tested with hyper-threading disabled XDP_TX: | | before | after | | | 24 rings | 51Mpps | 116Mpps | +126% | | 1 ring | 12Mpps | 12Mpps | same | XDP_REDIRECT: ** Below is the transmit rate, not the redirection rate which might be larger, and is not affected by this patch. | | before | after | | | 32 rings | 64Mpps | 92Mpps | +43% | | 1 ring | 6.4Mpps | 6.4Mpps | same | As we can see, feature significantly improves scaling, without hurting single ring performance. Signed-off-by: Shay Agroskin Signed-off-by: Tariq Toukan Signed-off-by: Saeed Mahameed commit 73cab880e7664702681e6d5115225e4fff1d6d98 Author: Shay Agroskin Date: Mon Feb 25 18:02:09 2019 +0200 net/mlx5e: XDP, Add TX MPWQE session counter This counter tracks how many TX MPWQE sessions are started in XDP SQ in XDP TX/REDIRECT flow. It counts per-channel and global stats. Signed-off-by: Shay Agroskin Signed-off-by: Saeed Mahameed commit 15143bf51c57a8868d2c4600d99ddaae7aa3d917 Author: Tariq Toukan Date: Sun Mar 10 15:35:58 2019 +0200 net/mlx5e: XDP, Enhance RQ indication for XDP redirect flush The XDP redirect flush indication belongs to the receive queue, not to its XDP send queue. For this, use a new bit on rq->flags. Signed-off-by: Tariq Toukan Reviewed-by: Shay Agroskin Signed-off-by: Saeed Mahameed commit f03590f74cc280ce5bcfe7aa0729691df79f7718 Author: Tariq Toukan Date: Sun Mar 10 15:29:13 2019 +0200 net/mlx5e: XDP, Fix shifted flag index in RQ bitmap Values in enum mlx5e_rq_flag are used as bit indixes. Intention was to use them with no BIT(i) wrapping. No functional bug fix here, as the same (shifted)flag bit is used for all set, test, and clear operations. Fixes: 121e89275471 ("net/mlx5e: Refactor RQ XDP_TX indication") Signed-off-by: Tariq Toukan Reviewed-by: Shay Agroskin Signed-off-by: Saeed Mahameed commit fd9b4be8002cae5f854c7acd9e86d31780ebaf16 Author: Tariq Toukan Date: Wed Feb 27 12:06:08 2019 +0200 net/mlx5e: RX, Support multiple outstanding UMR posts The buffers mapping of the Multi-Packet WQEs (of Striding RQ) is done via UMR posts, one UMR WQE per an RX MPWQE. A single MPWQE is capable of serving many incoming packets, usually larger than the budget of a single napi cycle. Hence, posting a single UMR WQE per napi cycle (and handling its completion in the next cycle) works fine in many common cases, but not always. When an XDP program is loaded, every MPWQE is capable of serving less packets, to satisfy the packet-per-page requirement. Thus, for the same number of packets more MPWQEs (and UMR posts) are needed (twice as much for the default MTU), giving less latency room for the UMR completions. In this patch, we add support for multiple outstanding UMR posts, to allow faster gap closure between consuming MPWQEs and reposting them back into the WQ. For better SW and HW locality, we combine the UMR posts in bulks of (at least) two. This is expected to improve packet rate in high CPU scale. Performance test: As expected, huge improvement in large-scale (48 cores). xdp_redirect_map, 64B UDP multi-stream. Redirect from ConnectX-5 100Gbps to ConnectX-6 100Gbps. CPU: Intel(R) Xeon(R) CPU E5-2680 v3 @ 2.50GHz. Before: Unstable, 7 to 30 Mpps After: Stable, at 70.5 Mpps No degradation in other tested scenarios. Signed-off-by: Tariq Toukan Signed-off-by: Saeed Mahameed commit 3839f99d21688d3062ebd3cc06db46edb3b99ac1 Merge: be659b8d3c79 c3bdd5e65185 Author: Saeed Mahameed Date: Tue Apr 23 11:57:33 2019 -0700 Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux commit 5834fd75e6236605da8c439a64eaa33f3c8d02fe Author: Jonas Gorski Date: Thu Apr 18 13:12:11 2019 +0200 clk: core: replace clk_{readl,writel} with {readl,writel} Now that clk_{readl,writel} is just an alias for {readl,writel}, we can switch all users of clk_* to use the accessors directly and remove the helpers. Signed-off-by: Jonas Gorski [sboyd@kernel.org: Also convert renesas file so that this can be compile independently] Signed-off-by: Stephen Boyd commit f122498703d65c7dc8a4a15abed6405cc256269e Author: Jonas Gorski Date: Thu Apr 18 13:12:10 2019 +0200 clk: core: remove powerpc special handling Now that the powerpc clocks are properly marked as big endian, we can remove the special handling for PowerPC. Signed-off-by: Jonas Gorski Signed-off-by: Stephen Boyd commit ce0c890e2a2f53b4e242c8b2d29ba966c5ee5c5f Author: Jonas Gorski Date: Thu Apr 18 13:12:09 2019 +0200 powerpc/512x: mark clocks as big endian These clocks' registers are accessed as big endian, so mark them as such. Signed-off-by: Jonas Gorski Signed-off-by: Stephen Boyd commit 3a727519651228d92793291516727d62c6887607 Author: Jonas Gorski Date: Thu Apr 18 13:12:08 2019 +0200 clk: mux: add explicit big endian support Add a clock specific flag to switch register accesses to big endian, to allow runtime configuration of big endian mux clocks. Signed-off-by: Jonas Gorski Signed-off-by: Stephen Boyd commit 9427b71a850581112538c0b92f444d19a7aae28b Author: Jonas Gorski Date: Thu Apr 18 13:12:07 2019 +0200 clk: multiplier: add explicit big endian support Add a clock specific flag to switch register accesses to big endian, to allow runtime configuration of big endian multiplier clocks. Signed-off-by: Jonas Gorski Signed-off-by: Stephen Boyd commit d1c8a501ec07290da5cc2d8dedb6692cf89078d8 Author: Jonas Gorski Date: Thu Apr 18 13:12:06 2019 +0200 clk: gate: add explicit big endian support Add a clock specific flag to switch register accesses to big endian, to allow runtime configuration of big endian gated clocks. Signed-off-by: Jonas Gorski Signed-off-by: Stephen Boyd commit 58a2b4c9bdf98452fec95bb1a5eeed60c01f621a Author: Jonas Gorski Date: Thu Apr 18 13:12:05 2019 +0200 clk: fractional-divider: add explicit big endian support Add a clock specific flag to switch register accesses to big endian, to allow runtime configuration of big endian fractional divider clocks. Signed-off-by: Jonas Gorski Signed-off-by: Stephen Boyd commit 434d69fad63b443d7afc8aa99264359c9b4e2d3a Author: Jonas Gorski Date: Thu Apr 18 13:12:04 2019 +0200 clk: divider: add explicit big endian support Add a clock specific flag to switch register accesses to big endian, to allow runtime configuration of big endian divider clocks. Signed-off-by: Jonas Gorski Signed-off-by: Stephen Boyd commit 366391f04177355320a3dbc5705daa017de5a373 Author: Enric Balletbo i Serra Date: Thu Mar 7 16:20:31 2019 +0100 ARM: multi_v7_defconfig: Enable missing drivers for supported Chromebooks Enable following drivers for merged devices: - Batteries with BQ27XXX chips for Minnie boards. - Elan eKTH I2C touchscreen for Minnie boards. - GPIO charger for all Veyron boards. - Rockchip SARADC driver for all rk3288 boards. - Rockchip eFUSE driver for all rk3288 boards. - TPM security chip for all Veyron boards. - ChromeOS EC userspace interface for all chromebooks boards. - ChromeOS EC light and proximity sensors for some chromebooks. Signed-off-by: Enric Balletbo i Serra Signed-off-by: Heiko Stuebner commit fbd7af041586a15f5dc15b9ec051d25aa5ebe00a Author: Wen Yang Date: Tue Mar 5 19:32:56 2019 +0800 ARM: rockchip: add missing of_node_put in rockchip_smp_prepare_pmu The call to of_get_next_child returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: ./arch/arm/mach-rockchip/platsmp.c:250:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 241, but without a corresponding object release within this function. ./arch/arm/mach-rockchip/platsmp.c:260:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 241, but without a corresponding object release within this function. ./arch/arm/mach-rockchip/platsmp.c:263:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 241, but without a corresponding object release within this function. Signed-off-by: Wen Yang Cc: Russell King Cc: Heiko Stuebner Cc: linux-arm-kernel@lists.infradead.org Cc: linux-rockchip@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Heiko Stuebner commit 539b593d3940fb91468b13b285db099087bfe5a9 Merge: a93f7fe13454 edeb207b8a80 Author: David S. Miller Date: Tue Apr 23 10:47:58 2019 -0700 Merge branch 'net-phy-mscc-Improvements-to-VSC8514-PHY-driver' Kavya Sree Kotagiri says: ==================== net: phy: mscc: Improvements to VSC8514 PHY driver. The VSC8514 PHY is a 4-ports PHY that is 10/100/1000BASE-T, 100BASE-FX, 1000BASE-X, can communicate with the MAC via QSGMII. The MAC interface protocol for each port within QSGMII can be either 1000BASE-X or SGMII, if the QSGMII MAC that the VSC8514 is connecting to supports this functionality. VSC8514 also supports SGMII MAC-side autonegotiation on each individual port, downshifting, can set the blinking pattern of each of its 4 LEDs, SyncE, 1000BASE-T Ring Resiliency as well as HP Auto-MDIX detection. This patch series adds support for 10BASE-T, 100BASE-TX, and 1000BASE-T, QSGMII link with the MAC, downshifting, HP Auto-MDIX detection and blinking pattern for its 4 LEDs. The GPIO register bank is a set of registers that are common to all PHYs in the package. So any modification in any register of this bank affects all PHYs of the package. If the PHYs haven't been reset before booting the Linux kernel and were configured to use interrupts for e.g. link status updates, it is required to clear the interrupts mask register of all PHYs before being able to use interrupts with any PHY. The first PHY of the package that will be init will take care of clearing all PHYs interrupts mask registers. Thus, we need to keep track of the init sequence in the package, if it's already been done or if it's to be done. Most of the init sequence of a PHY of the package is common to all PHYs in the package, thus we use the SMI broadcast feature which enables us to propagate a write in one register of one PHY to all PHYs in the same package. This patch series adds support for VSC8514 in Microsemi driver(mscc.c) and removes support from Vitesse driver(vitesse.c). v8 - mscc: Added appropriate code using phy_modify() in vsc8514_config_init(). v7 - mscc: Handled return values in vsc8514_config_init(). v6 - mscc: Added proper return value in vsc85xx_csr_ctrl_phy_read(). - mscc: Replaced __mdiobus_write and__mdiobus_read with __phy_write and __phy_read resp. - mscc: Replaced register addresses in 8514_config_init() with proper constants. v5 - mscc: Added return error statements for few function calls. - mscc: Added comments in vsc85xx_csr_ctrl_phy_read() and vsc85xx_csr_ctrl_phy_write() v4 - mscc: Removed features settings - mscc: Removed aneg_done settings. v3 - mscc: Used BIT(x) for PHY_MCB_S6G_WRITE and PHY_MCB_S6G_READ instead of hex. - mscc: Replaced magic numbers with proper constants. - mscc: Handled delays and timeouts at appropriate points. - mscc: Added comments/explanation where requested. v2 - mscc: Sorted variable declarations in reverse christmas tree order. v1 - Added 0/2 file. ==================== Signed-off-by: David S. Miller commit edeb207b8a80ece2af89a444feb36539e3bc4ef8 Author: Kavya Sree Kotagiri Date: Mon Apr 22 11:52:04 2019 +0000 net: phy: vitesse: Remove support for VSC8514. Add support for VSC8514 in Microsemi driver (mscc.c) with more features. Signed-off-by: Kavya Sree Kotagiri Signed-off-by: David S. Miller commit e4f9ba642f0b59a7ba3d34e7df7b82c732c31640 Author: Kavya Sree Kotagiri Date: Mon Apr 22 11:51:35 2019 +0000 net: phy: mscc: add support for VSC8514 PHY. The VSC8514 PHY is a 4-ports PHY that is 10/100/1000BASE-T, 100BASE-FX, 1000BASE-X, can communicate with the MAC via QSGMII. The MAC interface protocol for each port within QSGMII can be either 1000BASE-X or SGMII, if the QSGMII MAC that the VSC8514 is connecting to supports this functionality. VSC8514 also supports SGMII MAC-side autonegotiation on each individual port, downshifting, can set the blinking pattern of each of its 4 LEDs, SyncE, 1000BASE-T Ring Resiliency as well as HP Auto-MDIX detection. This adds support for 10BASE-T, 100BASE-TX, and 1000BASE-T, QSGMII link with the MAC, downshifting, HP Auto-MDIX detection and blinking pattern for its 4 LEDs. The GPIO register bank is a set of registers that are common to all PHYs in the package. So any modification in any register of this bank affects all PHYs of the package. If the PHYs haven't been reset before booting the Linux kernel and were configured to use interrupts for e.g. link status updates, it is required to clear the interrupts mask register of all PHYs before being able to use interrupts with any PHY. The first PHY of the package that will be init will take care of clearing all PHYs interrupts mask registers. Thus, we need to keep track of the init sequence in the package, if it's already been done or if it's to be done. Most of the init sequence of a PHY of the package is common to all PHYs in the package, thus we use the SMI broadcast feature which enables us to propagate a write in one register of one PHY to all PHYs in the same package. Signed-off-by: Kavya Sree Kotagiri Signed-off-by: Quentin Schulz Co-developed-by: Quentin Schulz Signed-off-by: David S. Miller commit e4818d615b58f145ace70fefa43aeae8611b55a1 Author: Stephen Boyd Date: Tue Apr 23 10:46:51 2019 -0700 clk: fixed-factor: Initialize clk_init_data on stack This structure can be full of junk from the stack if we don't initialize it. The clk framework tests clk_init_data::parent_names for non-NULL and then considers that as the parent name pointer, but if it's full of junk then we'll try to deref a bad pointer and oops the system. Let's initialize the structure so that only clk_init_data::parent_names or clk_init_data::parent_data is set, and not both. Reported-by: "kernelci.org bot" Tested-by: Geert Uytterhoeven Tested-by: Tony Lindgren Fixes: ecbf3f1795fd ("clk: fixed-factor: Let clk framework find parent") Signed-off-by: Stephen Boyd commit a93f7fe134543649cf2e2d8fc2c50a8f4d742915 Author: Jian Shen Date: Mon Apr 22 21:52:23 2019 +0800 net: phy: marvell: add new default led configure for m88e151x The default m88e151x LED configuration is 0x1177, used LED[0] for 1000M link, LED[1] for 100M link, and LED[2] for active. But for some boards, which use LED[0] for link, and LED[1] for active, prefer to be 0x1040. To be compatible with this case, this patch defines a new dev_flag, and set it before connect phy in HNS3 driver. When phy initializing, using the new LED configuration if this dev_flag is set. Signed-off-by: Jian Shen Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 5bec1fb866df8f58b04a46bcbe27481214977e4c Author: Gustavo A. R. Silva Date: Thu Mar 28 12:30:29 2019 -0500 Bluetooth: Use struct_size() helper One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example: struct foo { int stuff; struct boo entry[]; }; size = sizeof(struct foo) + count * sizeof(struct boo); Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper: size = struct_size(instance, entry, count); This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Marcel Holtmann commit 41be3e2618174fdf3361e49e64f2bf530f40c6b0 Author: Farhan Ali Date: Wed Apr 3 14:22:27 2019 -0400 vfio: Fix WARNING "do not call blocking ops when !TASK_RUNNING" vfio_dev_present() which is the condition to wait_event_interruptible_timeout(), will call vfio_group_get_device and try to acquire the mutex group->device_lock. wait_event_interruptible_timeout() will set the state of the current task to TASK_INTERRUPTIBLE, before doing the condition check. This means that we will try to acquire the mutex while already in a sleeping state. The scheduler warns us by giving the following warning: [ 4050.264464] ------------[ cut here ]------------ [ 4050.264508] do not call blocking ops when !TASK_RUNNING; state=1 set at [<00000000b33c00e2>] prepare_to_wait_event+0x14a/0x188 [ 4050.264529] WARNING: CPU: 12 PID: 35924 at kernel/sched/core.c:6112 __might_sleep+0x76/0x90 .... 4050.264756] Call Trace: [ 4050.264765] ([<000000000017bbaa>] __might_sleep+0x72/0x90) [ 4050.264774] [<0000000000b97edc>] __mutex_lock+0x44/0x8c0 [ 4050.264782] [<0000000000b9878a>] mutex_lock_nested+0x32/0x40 [ 4050.264793] [<000003ff800d7abe>] vfio_group_get_device+0x36/0xa8 [vfio] [ 4050.264803] [<000003ff800d87c0>] vfio_del_group_dev+0x238/0x378 [vfio] [ 4050.264813] [<000003ff8015f67c>] mdev_remove+0x3c/0x68 [mdev] [ 4050.264825] [<00000000008e01b0>] device_release_driver_internal+0x168/0x268 [ 4050.264834] [<00000000008de692>] bus_remove_device+0x162/0x190 [ 4050.264843] [<00000000008daf42>] device_del+0x1e2/0x368 [ 4050.264851] [<00000000008db12c>] device_unregister+0x64/0x88 [ 4050.264862] [<000003ff8015ed84>] mdev_device_remove+0xec/0x130 [mdev] [ 4050.264872] [<000003ff8015f074>] remove_store+0x6c/0xa8 [mdev] [ 4050.264881] [<000000000046f494>] kernfs_fop_write+0x14c/0x1f8 [ 4050.264890] [<00000000003c1530>] __vfs_write+0x38/0x1a8 [ 4050.264899] [<00000000003c187c>] vfs_write+0xb4/0x198 [ 4050.264908] [<00000000003c1af2>] ksys_write+0x5a/0xb0 [ 4050.264916] [<0000000000b9e270>] system_call+0xdc/0x2d8 [ 4050.264925] 4 locks held by sh/35924: [ 4050.264933] #0: 000000001ef90325 (sb_writers#4){.+.+}, at: vfs_write+0x9e/0x198 [ 4050.264948] #1: 000000005c1ab0b3 (&of->mutex){+.+.}, at: kernfs_fop_write+0x1cc/0x1f8 [ 4050.264963] #2: 0000000034831ab8 (kn->count#297){++++}, at: kernfs_remove_self+0x12e/0x150 [ 4050.264979] #3: 00000000e152484f (&dev->mutex){....}, at: device_release_driver_internal+0x5c/0x268 [ 4050.264993] Last Breaking-Event-Address: [ 4050.265002] [<000000000017bbaa>] __might_sleep+0x72/0x90 [ 4050.265010] irq event stamp: 7039 [ 4050.265020] hardirqs last enabled at (7047): [<00000000001cee7a>] console_unlock+0x6d2/0x740 [ 4050.265029] hardirqs last disabled at (7054): [<00000000001ce87e>] console_unlock+0xd6/0x740 [ 4050.265040] softirqs last enabled at (6416): [<0000000000b8fe26>] __udelay+0xb6/0x100 [ 4050.265049] softirqs last disabled at (6415): [<0000000000b8fe06>] __udelay+0x96/0x100 [ 4050.265057] ---[ end trace d04a07d39d99a9f9 ]--- Let's fix this as described in the article https://lwn.net/Articles/628628/. Signed-off-by: Farhan Ali [remove now redundant vfio_dev_present()] Signed-off-by: Alex Williamson commit 7f09d5a6c33be66a5ca19bf9dd1c2d90c5dfcf0d Author: Balakrishna Godavarthi Date: Mon Apr 1 15:19:08 2019 +0530 Bluetooth: hci_qca: Give enough time to ROME controller to bootup. This patch enables enough time to ROME controller to bootup after we bring the enable pin out of reset. Fixes: 05ba533c5c11 ("Bluetooth: hci_qca: Add serdev support"). Signed-off-by: Balakrishna Godavarthi Reviewed-by: Rocky Liao Tested-by: Rocky Liao Tested-by: Claire Chang Signed-off-by: Marcel Holtmann commit 62611abc8f37d00e3b0cff0eb2d72fa92b05fd27 Author: Chen-Yu Tsai Date: Mon Apr 1 11:43:12 2019 +0800 Bluetooth: hci_bcm: Fix empty regulator supplies for Intel Macs The code path for Macs goes through bcm_apple_get_resources(), which skips over the code that sets up the regulator supplies. As a result, the call to regulator_bulk_enable() / regulator_bulk_disable() results in a NULL pointer dereference. This was reported on the kernel.org Bugzilla, bug 202963. Unbreak Broadcom Bluetooth support on Intel Macs by checking if the supplies were set up before enabling or disabling them. The same does not need to be done for the clocks, as the common clock framework API checks for NULL pointers. Fixes: 75d11676dccb ("Bluetooth: hci_bcm: Add support for regulator supplies") Cc: # 5.0.x Signed-off-by: Chen-Yu Tsai Tested-by: Imre Kaloz Signed-off-by: Marcel Holtmann commit cd9151b618da4723877bd94eae952f2e50acbc0e Author: Jaganath Kanakkassery Date: Wed Apr 3 12:11:44 2019 +0530 Bluetooth: Fix incorrect pointer arithmatic in ext_adv_report_evt In ext_adv_report_event rssi comes before data (not after data as in legacy adv_report_evt) so "+ 1" is not required in the ptr arithmatic to point to next report. Signed-off-by: Jaganath Kanakkassery Signed-off-by: Marcel Holtmann commit 039287aa9f7247f27ecae70a6e4aefa43f431d6b Author: Stephan Gerhold Date: Tue Mar 5 14:09:00 2019 +0100 Bluetooth: btbcm: Add entry for BCM2076B1 UART Bluetooth Add the device ID for the BT/FM/GPS combo chip BCM2076 (rev B1) used in the AMPAK AP6476 WiFi/BT/FM/GPS module. Signed-off-by: Stephan Gerhold Signed-off-by: Marcel Holtmann commit f57c4bbf34439531adccd7d3a4ecc14f409c1399 Author: Dan Carpenter Date: Wed Apr 3 08:34:16 2019 +0300 6lowpan: Off by one handling ->nexthdr NEXTHDR_MAX is 255. What happens here is that we take a u8 value "hdr->nexthdr" from the network and then look it up in lowpan_nexthdr_nhcs[]. The problem is that if hdr->nexthdr is 0xff then we read one element beyond the end of the array so the array needs to be one element larger. Fixes: 92aa7c65d295 ("6lowpan: add generic nhc layer interface") Signed-off-by: Dan Carpenter Acked-by: Jukka Rissanen Acked-by: Alexander Aring Signed-off-by: Marcel Holtmann commit f83088981a431f8ee13ebc442cfccbecb0ed95bf Author: Andrey Grodzovsky Date: Mon Apr 15 10:57:14 2019 -0400 drm/amd/display: Use a reasonable timeout for framebuffer fence waits Patch '5edb0c9b Fix deadlock with display during hanged ring recovery' was accidentaly removed during one of DALs code merges. Signed-off-by: Andrey Grodzovsky Reviewed-by: Nicholas Kazlauskas Signed-off-by: Alex Deucher commit 2fac0f53fe5921264c525a0439ee9baf0fe9ada1 Author: Christian König Date: Tue Apr 2 16:28:13 2019 +0200 drm/amd/display: wait for fence without holding reservation lock Don't block others while waiting for the fences to finish, concurrent submission is perfectly valid in this case and holding the lock can prevent killed applications from terminating. Signed-off-by: Christian König Reviewed-by: Nicholas Kazlauskas Signed-off-by: Alex Deucher commit 77e7f82985fd205c66b49fdbf4271e389d8506cc Author: Andrey Grodzovsky Date: Thu Apr 18 18:45:31 2019 -0400 drm/amdgpu: Change VRAM lost print from ERR to INF It's normal for VRAM to lost during GPU reset and so change the log level to INFO to avoid confusing users. Signed-off-by: Andrey Grodzovsky Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 8d01071d26634d6c577f92911177a882935597a3 Author: Chengming Gui Date: Mon Apr 22 16:35:39 2019 +0800 drm/amd/powerplay: enable UMDPSTATE support on raven2 (v2) enable UMDPSTATE support to force performance level for raven2. v2: squash in warning fix (Alex) Signed-off-by: Chengming Gui Reviewed-by: Huang Rui Signed-off-by: Alex Deucher commit 45516e91c2707f38bd78da4fca5558eaf3d2cddd Author: Chengming Gui Date: Wed Mar 27 11:30:00 2019 +0800 drm/amd/powerplay: add set/get_power_profile_mode for Raven (v2) The power profile allows the user to adjust the power state heuristics for clock level transitions. v2: squash in warning fix (Alex) Reviewed-by: Evan Quan Reviewed-by: Huang Rui Signed-off-by: Chengming Gui Signed-off-by: Alex Deucher commit 5035726128cd2e3813ee44deedb9898509edb232 Author: Ferry Toth Date: Tue Apr 9 16:15:50 2019 +0200 Bluetooth: btbcm: Add default address for BCM43341B The BCM43341B has the default MAC address 43:34:1B:00:1F:AC if none is given. This address was found when enabling Bluetooth on multiple Intel Edison modules. It also contains the sequence 43341B, the name the chip identifies itself as. Using the same BD_ADDR is problematic when having multiple Intel Edison modules in each others range. The default address also has the LAA (locally administered address) bit set which prevents a BNEP device from being created, needed for BT tethering. Add this to the list of black listed default MAC addresses and let the user configure a valid one using f.i. `btmgmt -i hci0 public-addr xx:xx:xx:xx:xx:xx` Suggested-by: Andy Shevchenko Signed-off-by: Ferry Toth Reviewed-by: Andy Shevchenko Signed-off-by: Marcel Holtmann commit a1616a5ac99ede5d605047a9012481ce7ff18b16 Author: Young Xiao Date: Fri Apr 12 15:24:30 2019 +0800 Bluetooth: hidp: fix buffer overflow Struct ca is copied from userspace. It is not checked whether the "name" field is NULL terminated, which allows local users to obtain potentially sensitive information from kernel stack memory, via a HIDPCONNADD command. This vulnerability is similar to CVE-2011-1079. Signed-off-by: Young Xiao Signed-off-by: Marcel Holtmann Cc: stable@vger.kernel.org commit 06a916feca2b262ab0c1a2aeb68882f4b1108a07 Author: Dave Martin Date: Thu Apr 18 18:41:38 2019 +0100 arm64: Expose SVE2 features for userspace This patch provides support for reporting the presence of SVE2 and its optional features to userspace. This will also enable visibility of SVE2 for guests, when KVM support for SVE-enabled guests is available. Signed-off-by: Dave Martin Signed-off-by: Will Deacon commit dd523791c939cfe642557cb2fac754ac0fed80fe Author: Will Deacon Date: Tue Apr 23 14:37:24 2019 +0100 arm64: Kconfig: Make CONFIG_COMPAT a menuconfig entry Make CONFIG_COMPAT a menuconfig entry so that we can place CONFIG_KUSER_HELPERS and CONFIG_ARMV8_DEPRECATED underneath it. Signed-off-by: Will Deacon commit af1b3cf2c2a3f42bbb680812ff1bbd715ac8af69 Author: Vincenzo Frascino Date: Mon Apr 15 10:49:37 2019 +0100 arm64: compat: Add KUSER_HELPERS config option When kuser helpers are enabled the kernel maps the relative code at a fixed address (0xffff0000). Making configurable the option to disable them means that the kernel can remove this mapping and any access to this memory area results in a sigfault. Add a KUSER_HELPERS config option that can be used to disable the mapping when it is turned off. This option can be turned off if and only if the applications are designed specifically for the platform and they do not make use of the kuser helpers code. Cc: Catalin Marinas Cc: Will Deacon Signed-off-by: Vincenzo Frascino Reviewed-by: Catalin Marinas [will: Use IS_ENABLED() instead of #ifdef] Signed-off-by: Will Deacon commit 1255a7341bee6cd96df056ed0c13e44b59023687 Author: Vincenzo Frascino Date: Mon Apr 15 10:49:36 2019 +0100 arm64: compat: Refactor aarch32_alloc_vdso_pages() aarch32_alloc_vdso_pages() needs to be refactored to make it easier to disable kuser helpers. Divide the function in aarch32_alloc_kuser_vdso_page() and aarch32_alloc_sigreturn_vdso_page(). Cc: Catalin Marinas Cc: Will Deacon Signed-off-by: Vincenzo Frascino Reviewed-by: Catalin Marinas [will: Inlined sigpage allocation to simplify error paths] Signed-off-by: Will Deacon commit d1e5ca64d5bab864000566ea695617d0e124d27e Author: Vincenzo Frascino Date: Mon Apr 15 10:49:35 2019 +0100 arm64: compat: Split kuser32 To make it possible to disable kuser helpers in aarch32 we need to divide the kuser and the sigreturn functionalities. Split the current version of kuser32 in kuser32 (for kuser helpers) and sigreturn32 (for sigreturn helpers). Cc: Catalin Marinas Cc: Will Deacon Signed-off-by: Vincenzo Frascino Reviewed-by: Catalin Marinas Signed-off-by: Will Deacon commit 73623340546cceff421c95b53abd8140d1f2b2a2 Author: Tamás Szűcs Date: Sun Apr 14 20:38:14 2019 +0200 Bluetooth: btmrvl: add support for SD8987 chipset This patch adds support for Marvell 88W8987 chipset with SDIO interface. Register offsets and supported feature flags are updated. The corresponding firmware image file shall be "mrvl/sd8987_uapsta.bin". Signed-off-by: Tamás Szűcs Signed-off-by: Marcel Holtmann commit 0d747f6585954d7285a3995058e7dfeae7236cf9 Author: Vincenzo Frascino Date: Mon Apr 15 10:49:34 2019 +0100 arm64: compat: Alloc separate pages for vectors and sigpage For AArch32 tasks, we install a special "[vectors]" page that contains the sigreturn trampolines and kuser helpers, which is mapped at a fixed address specified by the kuser helpers ABI. Having the sigreturn trampolines in the same page as the kuser helpers makes it impossible to disable the kuser helpers independently. Follow the Arm implementation, by moving the signal trampolines out of the "[vectors]" page and into their own "[sigpage]". Cc: Catalin Marinas Cc: Will Deacon Signed-off-by: Vincenzo Frascino Reviewed-by: Catalin Marinas [will: tweaked comments and fixed sparse warning] Signed-off-by: Will Deacon commit 2aad32613c353b1e05da5994324bc5f20d0dd55a Merge: 7e6e185c74dd 02ee0658362d Author: Daniel Borkmann Date: Tue Apr 23 18:36:35 2019 +0200 Merge branch 'bpf-eth-get-headlen' Stanislav Fomichev says: ==================== Currently, when eth_get_headlen calls flow dissector, it doesn't pass any skb. Because we use passed skb to lookup associated networking namespace to find whether we have a BPF program attached or not, we always use C-based flow dissector in this case. The goal of this patch series is to add new networking namespace argument to the eth_get_headlen and make BPF flow dissector programs be able to work in the skb-less case. The series goes like this: * use new kernel context (struct bpf_flow_dissector) for flow dissector programs; this makes it easy to distinguish between skb and no-skb case and supports calling BPF flow dissector on a chunk of raw data * convert BPF_PROG_TEST_RUN to use raw data * plumb network namespace into __skb_flow_dissect from all callers * handle no-skb case in __skb_flow_dissect * update eth_get_headlen to include net namespace argument and convert all existing users * add selftest to make sure bpf_skb_load_bytes is not allowed in the no-skb mode * extend test_progs to exercise skb-less flow dissection as well * stop adjusting nhoff/thoff by ETH_HLEN in BPF_PROG_TEST_RUN v6: * more suggestions by Alexei: * eth_get_headlen now takes net dev, not net namespace * test skb-less case via tun eth_get_headlen * fix return errors in bpf_flow_load * don't adjust nhoff/thoff by ETH_HLEN v5: * API changes have been submitted via bpf/stable tree v4: * prohibit access to vlan fields as well (otherwise, inconsistent between skb/skb-less cases) * drop extra unneeded check for skb->vlan_present in bpf_flow.c v3: * new kernel xdp_buff-like context per Alexei suggestion * drop skb_net helper * properly clamp flow_keys->nhoff v2: * moved temporary skb from stack into percpu (avoids memset of ~200 bytes per packet) * tightened down access to __sk_buff fields from flow dissector programs to avoid touching shinfo (whitelist only relevant fields) * addressed suggestions from Willem ==================== Acked-by: Eric Dumazet Acked-by: Willem de Bruijn Signed-off-by: Daniel Borkmann commit 02ee0658362d3713421851bb7487af77a4098bb5 Author: Stanislav Fomichev Date: Mon Apr 22 08:55:52 2019 -0700 bpf/flow_dissector: don't adjust nhoff by ETH_HLEN in BPF_PROG_TEST_RUN Now that we use skb-less flow dissector let's return true nhoff and thoff. We used to adjust them by ETH_HLEN because that's how it was done in the skb case. For VLAN tests that looks confusing: nhoff is pointing to vlan parts :-\ Warning, this is an API change for BPF_PROG_TEST_RUN! Feel free to drop if you think that it's too late at this point to fix it. Signed-off-by: Stanislav Fomichev Signed-off-by: Daniel Borkmann commit fe993c646831105f579976fec28d1842608bd551 Author: Stanislav Fomichev Date: Mon Apr 22 08:55:51 2019 -0700 selftests/bpf: properly return error from bpf_flow_load Right now we incorrectly return 'ret' which is always zero at that point. Signed-off-by: Stanislav Fomichev Signed-off-by: Daniel Borkmann commit 0905beec9f52caf2c7065a8a88c08bc370850710 Author: Stanislav Fomichev Date: Mon Apr 22 08:55:50 2019 -0700 selftests/bpf: run flow dissector tests in skb-less mode Export last_dissection map from flow dissector and use a known place in tun driver to trigger BPF flow dissection. Signed-off-by: Stanislav Fomichev Signed-off-by: Daniel Borkmann commit c9cb2c1e11cee75b3af5699add3302a3997f78e4 Author: Stanislav Fomichev Date: Mon Apr 22 08:55:49 2019 -0700 selftests/bpf: add flow dissector bpf_skb_load_bytes helper test When flow dissector is called without skb, we want to make sure bpf_skb_load_bytes invocations return error. Add small test which tries to read single byte from a packet. bpf_skb_load_bytes should always fail under BPF_PROG_TEST_RUN because it was converted to the skb-less mode. Signed-off-by: Stanislav Fomichev Signed-off-by: Daniel Borkmann commit c43f1255b866b423d2381f77eaa2cbc64a9c49aa Author: Stanislav Fomichev Date: Mon Apr 22 08:55:48 2019 -0700 net: pass net_device argument to the eth_get_headlen Update all users of eth_get_headlen to pass network device, fetch network namespace from it and pass it down to the flow dissector. This commit is a noop until administrator inserts BPF flow dissector program. Cc: Maxim Krasnyansky Cc: Saeed Mahameed Cc: Jeff Kirsher Cc: intel-wired-lan@lists.osuosl.org Cc: Yisen Zhuang Cc: Salil Mehta Cc: Michael Chan Cc: Igor Russkikh Signed-off-by: Stanislav Fomichev Signed-off-by: Daniel Borkmann commit 9b52e3f267a6835efd50ed9002d530666d16a411 Author: Stanislav Fomichev Date: Mon Apr 22 08:55:47 2019 -0700 flow_dissector: handle no-skb use case When called without skb, gather all required data from the __skb_flow_dissect's arguments and use recently introduces no-skb mode of bpf flow dissector. Note: WARN_ON_ONCE(!net) will now trigger for eth_get_headlen users. Signed-off-by: Stanislav Fomichev Signed-off-by: Daniel Borkmann commit 3cbf4ffba5eeec60f82868a5facc1962d8a44d00 Author: Stanislav Fomichev Date: Mon Apr 22 08:55:46 2019 -0700 net: plumb network namespace into __skb_flow_dissect This new argument will be used in the next patches for the eth_get_headlen use case. eth_get_headlen calls flow dissector with only data (without skb) so there is currently no way to pull attached BPF flow dissector program. With this new argument, we can amend the callers to explicitly pass network namespace so we can use attached BPF program. Signed-off-by: Stanislav Fomichev Reviewed-by: Saeed Mahameed Signed-off-by: Daniel Borkmann commit 7b8a1304323b35bbf060e0d29691031056836b73 Author: Stanislav Fomichev Date: Mon Apr 22 08:55:45 2019 -0700 bpf: when doing BPF_PROG_TEST_RUN for flow dissector use no-skb mode Now that we have bpf_flow_dissect which can work on raw data, use it when doing BPF_PROG_TEST_RUN for flow dissector. Simplifies bpf_prog_test_run_flow_dissector and allows us to test no-skb mode. Note, that previously, with bpf_flow_dissect_skb we used to call eth_type_trans which pulled L2 (ETH_HLEN) header and we explicitly called skb_reset_network_header. That means flow_keys->nhoff would be initialized to 0 (skb_network_offset) in init_flow_keys. Now we call bpf_flow_dissect with nhoff set to ETH_HLEN and need to undo it once the dissection is done to preserve the existing behavior. Signed-off-by: Stanislav Fomichev Signed-off-by: Daniel Borkmann commit 089b19a9204fc090793d389a265f54124eacb05d Author: Stanislav Fomichev Date: Mon Apr 22 08:55:44 2019 -0700 flow_dissector: switch kernel context to struct bpf_flow_dissector struct bpf_flow_dissector has a small subset of sk_buff fields that flow dissector BPF program is allowed to access and an optional pointer to real skb. Real skb is used only in bpf_skb_load_bytes helper to read non-linear data. The real motivation for this is to be able to call flow dissector from eth_get_headlen context where we don't have an skb and need to dissect raw bytes. Signed-off-by: Stanislav Fomichev Signed-off-by: Daniel Borkmann commit 7f3c563c575e73c689fe2762c5ec61159caa1568 Author: Sean Wang Date: Thu Apr 18 17:08:02 2019 +0800 Bluetooth: btmtksdio: Add runtime PM support to SDIO based Bluetooth Add runtime PM support to btmtksdio. With this way, there will be the benefit of the device entering the more power saving state once it is been a while data traffic is idle. Signed-off-by: Sean Wang Signed-off-by: Marcel Holtmann commit bcaa7d72dffddfa4196a37108d67fc12fb4edfca Author: Sean Wang Date: Thu Apr 18 17:08:01 2019 +0800 Bluetooth: btmtksdio: Fix hdev->stat.byte_rx accumulation Accumulate hdev->stat.byte_rx only for valid packets as btmtkuart doing. Signed-off-by: Sean Wang Signed-off-by: Marcel Holtmann commit 2e47cc2b3a7dcef7deab3301796f21f80e161b13 Author: Sean Wang Date: Thu Apr 18 17:08:00 2019 +0800 Bluetooth: btmtksdio: Add a bit definition for CHLPCR Add a register bit definition about CHLPCR bit 8 because the bit is quite different in the meaning between reading and writing that bit. The patch adds a definition particularly for the bit read to avoid the confusion about using write definition to read the bit. Signed-off-by: Sean Wang Signed-off-by: Marcel Holtmann commit e1052fb282a4e44d990e857c18edbd943d9ecdaf Author: Sean Wang Date: Thu Apr 18 17:07:59 2019 +0800 Bluetooth: btmtksdio: Drop newline with bt_dev logging macros bt_dev logging macros already include a newline at each output so drop these unnecessary additional newlines in the driver. Signed-off-by: Sean Wang Signed-off-by: Marcel Holtmann commit fe00e50b2db8c60e4ec90befad1f5bab8ca2c800 Author: Masahiro Yamada Date: Thu Apr 18 10:57:49 2019 +0100 ARM: 8858/1: vdso: use $(LD) instead of $(CC) to link VDSO We use $(LD) to link vmlinux, modules, decompressors, etc. VDSO is the only exceptional case where $(CC) is used as the linker driver, but I do not know why we need to do so. VDSO uses a special linker script, and does not link standard libraries at all. I changed the Makefile to use $(LD) rather than $(CC). I confirmed the same vdso.so.raw was still produced. Users will be able to use their favorite linker (e.g. lld instead of of bfd) by passing LD= from the command line. My plan is to rewrite all VDSO Makefiles to use $(LD), then delete cc-ldoption. Signed-off-by: Masahiro Yamada Reviewed-by: Nick Desaulniers Signed-off-by: Russell King commit 32b25e9b984ee26496043280cdb83844519ee861 Author: Masahiro Yamada Date: Fri Mar 29 16:52:00 2019 +0100 ARM: 8855/1: remove unused No one includes this. Signed-off-by: Masahiro Yamada Signed-off-by: Russell King commit 14b5f54b78292fdcf12ffb5e914f8fd2d190bcf5 Author: Peng Fan Date: Tue Mar 19 14:34:32 2019 +0100 ARM: 8850/1: use memblocks_present arm_memory_present is doing same thing as memblocks_present, so let's use common code memblocks_present instead of platform specific arm_memory_present. Patchwork: https://patchwork.kernel.org/patch/10805693/ Signed-off-by: Peng Fan Signed-off-by: Russell King commit fe4fb990202e3f525ebfb95999cc4ea2a4dfa4e1 Author: Stefan Agner Date: Sat Mar 23 12:14:25 2019 +0100 ARM: 8854/1: drop -mauto-it The assembler option -mauto-it is no longer a valid option. The last remaining references have been removed from the documentation in July 2009 [0]. The currently supported binutils version is 2.20 (released in September 2009) or higher where gas supports -mimplicit-it=always. Drop the fallback to -mauto-it and use -mimplicit-it=always only. [0] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=529707530657a333a304c651c808ea630c955223 Signed-off-by: Stefan Agner Reviewed-by: Nick Desaulniers Signed-off-by: Russell King commit e8c24bbda7d5eba6df5ca45e5462fd3f96b8f217 Author: Stefan Agner Date: Mon Feb 18 00:59:06 2019 +0100 ARM: 8846/1: warn if divided syntax assembler is used Remove the -mno-warn-deprecated assembler flag to make sure the GNU assembler warns in case non-unified syntax is used. Signed-off-by: Stefan Agner Acked-by: Nicolas Pitre Reviewed-by: Nick Desaulniers Signed-off-by: Russell King commit 43947b8890b4734e34e889a2df52734e0081a097 Author: Stefan Agner Date: Sat Mar 23 12:13:14 2019 +0100 ARM: 8853/1: drop WASM to work around LLVM issue Currently LLVM's integrated assembler does not recognize .w form of the pld instructions (LLVM Bug 40972 [0]): ./arch/arm/include/asm/processor.h:133:5: error: invalid instruction "pldw.wt%a0 n" ^ :2:1: note: instantiated into assembly here pldw.w [r0] ^ 1 error generated. The W macro for generating wide instructions when targeting Thumb-2 is not strictly required for the preload data instructions (pld, pldw) since they are only available as wide instructions. The GNU assembler works with or without the .w appended when compiling an Thumb-2 kernel. Drop the macro to work around LLVM Bug 40972 issue. [0] https://bugs.llvm.org/show_bug.cgi?id=40972 Signed-off-by: Stefan Agner Reviewed-by: Nick Desaulniers Signed-off-by: Russell King commit fe09d9c641f2064390afabdf436fe09b35e075ff Author: Stefan Agner Date: Sat Mar 23 12:10:44 2019 +0100 ARM: 8852/1: uaccess: use unified assembler language syntax Convert the conditional infix to a postfix to make sure this inline assembly is unified syntax. Since gcc assumes non-unified syntax when emitting ARM instructions, make sure to define the syntax as unified. This allows to use LLVM's integrated assembler. Additionally, for GCC ".syntax unified" for inline assembly. When compiling non-Thumb2 GCC always emits a ".syntax divided" at the beginning of the inline assembly which makes the assembler fail. Since GCC 5 there is the -masm-syntax-unified GCC option which make GCC assume unified syntax asm and hence emits ".syntax unified" even in ARM mode. However, the option is broken since GCC version 6 (see GCC PR88648 [1]). Work around by adding ".syntax unified" as part of the inline assembly. [0] https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html#index-masm-syntax-unified [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88648 Signed-off-by: Stefan Agner Signed-off-by: Russell King commit a6c9e96bf86b8aa86d8696b7887e52c2e95bac0f Author: Stefan Agner Date: Sat Mar 23 12:09:49 2019 +0100 ARM: 8851/1: add TUSERCOND() macro for conditional postfix Unified assembly syntax requires conditionals to be postfixes. TUSER() currently only takes a single argument which then gets appended t (with translation) on every instruction. This fixes a build error when using LLVM's integrated assembler: In file included from kernel/futex.c:72: ./arch/arm/include/asm/futex.h:116:3: error: invalid instruction, did you mean: strt? "2: " TUSER(streq) " %3, [%4]n" ^ :5:4: note: instantiated into assembly here 2: streqt r2, [r4] ^~~~~~ Additionally, for GCC ".syntax unified" for inline assembly. When compiling non-Thumb2 GCC always emits a ".syntax divided" at the beginning of the inline assembly which makes the assembler fail. Since GCC 5 there is the -masm-syntax-unified GCC option which make GCC assume unified syntax asm and hence emits ".syntax unified" even in ARM mode. However, the option is broken since GCC version 6 (see GCC PR88648 [1]). Work around by adding ".syntax unified" as part of the inline assembly. [0] https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html#index-masm-syntax-unified [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88648 Signed-off-by: Stefan Agner Signed-off-by: Russell King commit 71a84402b93e5fbd8f817f40059c137e10171788 Author: Yazen Ghannam Date: Mon Mar 25 16:34:22 2019 +0000 x86/MCE/AMD: Don't report L1 BTB MCA errors on some family 17h models AMD family 17h Models 10h-2Fh may report a high number of L1 BTB MCA errors under certain conditions. The errors are benign and can safely be ignored. However, the high error rate may cause the MCA threshold counter to overflow causing a high rate of thresholding interrupts. In addition, users may see the errors reported through the AMD MCE decoder module, even with the interrupt disabled, due to MCA polling. Clear the "Counter Present" bit in the Instruction Fetch bank's MCA_MISC0 register. This will prevent enabling MCA thresholding on this bank which will prevent the high interrupt rate due to this error. Define an AMD-specific function to filter these errors from the MCE event pool so that they don't get reported during early boot. Rename filter function in EDAC/mce_amd to avoid a naming conflict, while at it. [ bp: Move function prototype to the internal header and massage/cleanup, fix typos. ] Reported-by: Rafał Miłecki Signed-off-by: Yazen Ghannam Signed-off-by: Borislav Petkov Cc: "H. Peter Anvin" Cc: "clemej@gmail.com" Cc: Arnd Bergmann Cc: Ingo Molnar Cc: James Morse Cc: Kees Cook Cc: Mauro Carvalho Chehab Cc: Pu Wen Cc: Qiuxu Zhuo Cc: Shirish S Cc: Thomas Gleixner Cc: Tony Luck Cc: Vishal Verma Cc: linux-edac Cc: x86-ml Cc: # 5.0.x: c95b323dcd35: x86/MCE/AMD: Turn off MC4_MISC thresholding on all family 0x15 models Cc: # 5.0.x: 30aa3d26edb0: x86/MCE/AMD: Carve out the MC4_MISC thresholding quirk Cc: # 5.0.x: 9308fd407455: x86/MCE: Group AMD function prototypes in Cc: # 5.0.x Link: https://lkml.kernel.org/r/20190325163410.171021-2-Yazen.Ghannam@amd.com commit 98df7446c2a2fcc62a605da054ccc0accda1a6a9 Author: Colin Ian King Date: Tue Apr 23 15:50:22 2019 +0100 Bluetooth: hci_h5: fix spelling mistake "sliped" -> "slipped" There is a spelling mistake in a BT_DBG debug message. Fix it. Signed-off-by: Colin Ian King Signed-off-by: Marcel Holtmann commit cac63f9b163700fb70a609ad220697c61b797d6b Author: Sean Wang Date: Tue Mar 5 08:14:25 2019 +0800 Bluetooth: mediatek: Fixed incorrect type in assignment Fixed warning: incorrect type in assignment reported by kbuild test robot. The detailed warning is shown as below. make ARCH=x86_64 allmodconfig make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' All warnings (new ones prefixed by >>): btmtkuart.c:671:18: sparse: warning: incorrect type in assignment (different base types) btmtkuart.c:671:18: sparse: expected unsigned int [usertype] baudrate btmtkuart.c:671:18: sparse: got restricted __le32 [usertype] sparse warnings: (new ones prefixed by >>) btmtkuart.c:671:18: sparse: warning: incorrect type in assignment (different base types) btmtkuart.c:671:18: sparse: expected unsigned int [usertype] baudrate btmtkuart.c:671:18: sparse: got restricted __le32 [usertype] vim +671 drivers/bluetooth/btmtkuart.c 659 660 static int btmtkuart_change_baudrate(struct hci_dev *hdev) 661 { 662 struct btmtkuart_dev *bdev = hci_get_drvdata(hdev); 663 struct btmtk_hci_wmt_params wmt_params; 664 u32 baudrate; 665 u8 param; 666 int err; 667 668 /* Indicate the device to enter the probe state the host is 669 * ready to change a new baudrate. 670 */ > 671 baudrate = cpu_to_le32(bdev->desired_speed); 672 wmt_params.op = MTK_WMT_HIF; Fixes: 22eaf6c9946a ("Bluetooth: mediatek: add support for MediaTek MT7663U and MT7668U UART devices") Reported-by: kernel test robot Signed-off-by: Sean Wang Signed-off-by: Marcel Holtmann commit 637c8e9013912f3161260bcaf74a184440aae363 Author: Sean Wang Date: Tue Mar 19 04:58:33 2019 +0800 Bluetooth: btmtksdio: fix uninitialized symbol errors in btmtksdio_rx_packet Fixed all the below warnings. They would probably cause the following error handling path would use the uninitialized value and then produce unexpected behavior. drivers/bluetooth/btmtksdio.c:470:2: warning: ‘old_len’ may be used uninitialized in this function [-Wmaybe-uninitialized] print_hex_dump(KERN_ERR, "err sdio rx: ", DUMP_PREFIX_NONE, 4, 1, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ old_data, old_len, true); ~~~~~~~~~~~~~~~~~~~~~~~~ drivers/bluetooth/btmtksdio.c:376:15: note: ‘old_len’ was declared here unsigned int old_len; ^~~~~~~ drivers/bluetooth/btmtksdio.c:470:2: warning: ‘old_data’ may be used uninitialized in this function [-Wmaybe-uninitialized] print_hex_dump(KERN_ERR, "err sdio rx: ", DUMP_PREFIX_NONE, 4, 1, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ old_data, old_len, true); ~~~~~~~~~~~~~~~~~~~~~~~~ drivers/bluetooth/btmtksdio.c:375:17: note: ‘old_data’ was declared here unsigned char *old_data; ^~~~~~~~ v2: Remove old_len and old_data because the error path for sdio_readsb also seems wrong. And change the prefix from "mediatek" to "btmtksdio". Fixes: d74eef2834b5 ("Bluetooth: mediatek: add support for MediaTek MT7663S and MT7668S SDIO devices") Reported-by: Dan Carpenter Reported-by: Marcel Holtmann Signed-off-by: Sean Wang Signed-off-by: Marcel Holtmann commit afa8d3160add52e79c1d022ce22d20528d462910 Author: Sean Wang Date: Thu Mar 14 05:02:00 2019 +0800 Bluetooth: btsdio: Use module_sdio_driver helper Macro module_sdio_driver is used for drivers whose init and exit paths only register and unregister to SDIO API. So remove boilerplate code to make code simpler by using module_sdio_driver. Signed-off-by: Sean Wang Acked-by: Ulf Hansson Signed-off-by: Marcel Holtmann commit a6094a468ffca372cb0107cc6bafc7c992477e7b Author: Sean Wang Date: Thu Mar 14 05:01:59 2019 +0800 Bluetooth: mediatek: Use module_sdio_driver helper Macro module_sdio_driver is used for drivers whose init and exit paths only register and unregister to SDIO API. So remove boilerplate code to make code simpler by using module_sdio_driver. Suggested-by: Marcel Holtmann Signed-off-by: Sean Wang Acked-by: Ulf Hansson Signed-off-by: Marcel Holtmann commit db0a390835209c1c5dce7669de3d23a8cba10f34 Author: Sean Wang Date: Thu Mar 14 05:01:58 2019 +0800 mmc: sdio: Add helper macro for sdio_driver boilerplate This patch introduces the module_sdio_driver macro which is a convenience macro for SDIO driver modules similar to module_usb_driver. It is intended to be used by drivers which init/exit section does nothing but register/ unregister the SDIO driver. By using this macro it is possible to eliminate a few lines of boilerplate code per SDIO driver. Suggested-by: Marcel Holtmann Signed-off-by: Sean Wang Acked-by: Ulf Hansson Signed-off-by: Marcel Holtmann commit bbb69b37be15e1cff74730b7fa5659e1ee705795 Author: Fugang Duan Date: Fri Mar 15 03:17:28 2019 +0000 Bluetooth: Add return check for L2CAP security level set Add return check for security level set for socket interface since stack will check the return value. Signed-off-by: Fugang Duan Signed-off-by: Marcel Holtmann commit ba8f5289f706aed94cc95b15cc5b89e22062f61f Author: Luiz Augusto von Dentz Date: Thu Mar 14 15:43:37 2019 +0200 Bluetooth: Fix not initializing L2CAP tx_credits l2cap_le_flowctl_init was reseting the tx_credits which works only for outgoing connection since that set the tx_credits on the response, for incoming connections that was not the case which leaves the channel without any credits causing it to be suspended. Signed-off-by: Luiz Augusto von Dentz Signed-off-by: Marcel Holtmann Cc: stable@vger.kernel.org # 4.20+ commit 75c98a97958158154a61329992d70f08669b2b7a Author: Matthias Kaehlcke Date: Tue Mar 12 16:02:57 2019 -0700 Bluetooth: btqca: Fix misspelling of 'baudrate' Rename the misspelled struct 'qca_bardrate' to 'qca_baudrate' Signed-off-by: Matthias Kaehlcke Signed-off-by: Marcel Holtmann commit 4fdd5a4f8b4407c21897dbfba9d0ee77eb80a42c Author: Matthias Kaehlcke Date: Mon Mar 11 11:38:31 2019 -0700 Bluetooth: hci_qca: Add helper function to get the chip family Many functions obtain a 'struct qca_serdev' only to read the btsoc_type field. Add a helper function that encapsulates this. This also fixes crashes observed on platforms with ROME controllers that are instantiated through ldisc and not as serdev clients. The crashes are caused by NULL pointer dereferentiations, which stem from the driver's assumption that a QCA HCI device is always associated with a serdev device. Fixes: fa9ad876b8e0 ("Bluetooth: hci_qca: Add support for Qualcomm Bluetooth chip wcn3990") Reported-by: Balakrishna Godavarthi Signed-off-by: Matthias Kaehlcke Signed-off-by: Marcel Holtmann commit 9aebfd4a2200ab8075e44379c758bccefdc589bb Author: Sean Wang Date: Fri Mar 8 09:15:44 2019 +0800 Bluetooth: mediatek: add support for MediaTek MT7663S and MT7668S SDIO devices This adds the support of enabling MT7663S and MT7668S SDIO-based Bluetooth function. There are quite many differences between MT766[3,8]S and standard Bluetooth SDIO devices such as Type-A and Type-B devices. For example, MT766[3,8]S have its own SDIO registers layout, definition, SDIO packet format, and the specific flow should be programmed on them to complete the device initialization and low power control and so on. Currently, there are many independent programming sequences from the transport which are exactly the same as the ones in btusb.c about MediaTek support [1] and btmtkuart.c. We can try to split the transport independent Bluetooth setups on the advance, place them into the common files and allow varous transport drivers to reuse them in the future. [1] http://lists.infradead.org/pipermail/linux-mediatek/2019-January/017074.html Signed-off-by: Sean Wang Signed-off-by: Marcel Holtmann commit 756e161993824961fad4ba62c40045d9ab65bdb8 Author: Sean Wang Date: Fri Mar 8 09:15:43 2019 +0800 mmc: add SDIO identifiers for MediaTek Bluetooth devices The SDIO identifier for MediaTek Bluetooth devices were defined in the MediaTek Bluetooth driver. Moving the definitions in MMC header file seems common sense. Signed-off-by: Sean Wang Signed-off-by: Marcel Holtmann commit 45d4b7b9cb88526f6d5bd4c03efab88d75d10e4f Author: Yazen Ghannam Date: Mon Mar 25 16:34:22 2019 +0000 x86/MCE: Add an MCE-record filtering function Some systems may report spurious MCA errors. In general, spurious MCA errors may be disabled by clearing a particular bit in MCA_CTL. However, clearing a bit in MCA_CTL may not be recommended for some errors, so the only option is to ignore them. An MCA error is printed and handled after it has been added to the MCE event pool. So an MCA error can be ignored by not adding it to that pool in the first place. Add such a filtering function. [ bp: Move function prototype to the internal header and massage. ] Signed-off-by: Yazen Ghannam Signed-off-by: Borislav Petkov Cc: Arnd Bergmann Cc: "clemej@gmail.com" Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Pu Wen Cc: Qiuxu Zhuo Cc: "rafal@milecki.pl" Cc: Shirish S Cc: # 5.0.x Cc: Thomas Gleixner Cc: Tony Luck Cc: Vishal Verma Cc: x86-ml Link: https://lkml.kernel.org/r/20190325163410.171021-1-Yazen.Ghannam@amd.com commit 42bc4f3129e6565567ee63116850c530dc561aa0 Author: Hans de Goede Date: Sat Apr 20 13:22:17 2019 +0200 HID: logitech-hidpp: add support for HID++ 1.0 consumer keys reports All Logitech 27 MHz keyboards and also the MX5000 bluetooth keyboard use Logitech custom usages of 0x10xx in the consumer page. The descriptor for the consumer input-report only declares usages up to 652, so we end up dropping all the input-reports reporting 0x10xx usages without reporting events for these to userspace. This commit adds a descriptor_fixup function for this which changes the usage and logical maximum to 0x107f. Mapping these usages to something other then KEY_UNKNOWN is left to userspace (hwdb). Note: 1. The old descriptor_fixup for this in hid-lg.c used a maximimum of 0x104d this is not high enough, the S520 keyboard battery key sends 0x106f. 2. The descriptor_fixup is flexible so that it works with both the kbd- desc. passed by the logitech-dj code and with bluetooth descriptors. The descriptor_fixup makes most keys work on 27 MHz keyboards, but it is not enough to get all keys to work on 27 MHz keyboards and just the fixup is not enough to get the MX5000 to generate 0x10xx events: 1) The LX501 and MX3000 27 MHz kbds both have a button labelled "media" (called "Media Player" by SetPoint) and a button with a remote-control symbol ("Media Life" in SetPoint) which both send an identical consumer usage-page code (0x0183) making the 2 buttons indistinguishable, switching to HID++ 1.0 consumer keys reports makes the remote-control symbol button generate a 0x10xx Logitech specific code instead. 2) The MX5000 Bluetooth keyboard has 11 keys which report 0x10xx consumer page usages, but unlike 27 MHz devices which happily send 0x10xx codes in their normal consumer-page input-report, the MX5000 honors the maximum of 652 from its descriptor and sends a 0x0000 code (so release) whenever these keys are pressed. When switching to HID++ sub-id 0x03 HID++ 1.0 consumer keys reports these 0x10xx codes do get properly reported. This commit adds support for HID++ 1.0 consumer keys reports and enables this for all 27 MHz keyboards and for the MX5000. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 7457bc1b0ebf30d98ce993ec876a5ab2b143539d Author: Hans de Goede Date: Sat Apr 20 13:22:16 2019 +0200 HID: logitech-hidpp: add support for HID++ 1.0 extra mouse buttons reports Some mice have extra buttons which are only reported through HID++ 1.0 extra mouse buttons reports, this commit adds support for this and automatically enables this support for all 27 MHz mice. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 4a79bcc64a0514d630783b8d19cf9a85e46fe988 Author: Hans de Goede Date: Sat Apr 20 13:22:15 2019 +0200 HID: logitech-hidpp: add support for HID++ 1.0 wheel reports Add a quirk for switching wheel event reporting to using the HID++ report for this. This has 2 advantages: 1) Without this tilting the scrollwheel left / right will send a scroll-lock + cursor-left/-right + scroll-lock key-sequence instead of hwheel events 2) The HID++ reports contain the device index instead of using the generic HID implementation, so this will make scroll-wheel events from the wheel on some keyboards be emitted by the right event node. 2. also fixes keyboard scroll-wheel events getting lost in the (mostly theoretical) case of there not being a mouse paired with the receiver. This commit enables this quirk for all 27Mhz mice, it cannot hurt to have it enabled and this avoids the need to keep adding more and more quirks for this. This has been tested in 5 different 27MHz mice, 3 of which have a wheel which can tilt. This commit also adds explicit quirks for 3 keyboards with a zoom-/scroll- wheel. The MX3000 keyboard scroll-wheel can also tilt. I've defined aliases to the new HIDPP_QUIRK_HIDPP_WHEELS for this, so that it is clear why the keyboard has the quirk and in case we want to handle the keyboard wheels and especially the keyboard zoom-wheels differently in the future. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 35839f77238bccb695696bb390732339d53b8062 Author: Hans de Goede Date: Sat Apr 20 13:22:14 2019 +0200 HID: logitech-hidpp: make hidpp10_set_register_bit a bit more generic Make hidpp10_set_register_bit() take a mask and value for the register byte being changed, rather then making it only set a single bit. While at it also at defines for the bits which we will be using. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 0610430e3dea51c9a00565af685745898048fa2b Author: Hans de Goede Date: Sat Apr 20 13:22:13 2019 +0200 HID: logitech-hidpp: add input_device ptr to struct hidpp_device Most device-class specific code needs access to the input_device, instead of storing that in the class specific data-struct, simply store this into the hidpp_device struct itself. In case of the m560 this avoids the need for having private data at all and this will also avoid the need to add private data in some upcoming patches. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit d71b18f7c7999381a9b721d761b0aceffdcd65da Author: Hans de Goede Date: Sat Apr 20 13:22:12 2019 +0200 HID: logitech-hidpp: do not hardcode very long report length The HID++ spec says the following about the very long report length: "n Bytes, depends on HID++ collection declaration". Hardcoding this breaks talking to some HID++ devices over BlueTooth, since they declare only 45 bytes data for the very long report, rather then the hardcoded 63. This commit fixes this by getting the actual report length from the descriptors. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 754a30884886d751ea8b5681a8ccaad59147a914 Author: Hans de Goede Date: Sat Apr 20 13:22:11 2019 +0200 HID: logitech-hidpp: handle devices attached to 27MHz wireless receivers Logitech 27MHz devices are HID++ devices, so handle them in the hidpp driver, this enables battery monitoring on these devices (and more in follow-up patches). Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 096377525cdb8251e4656085efc988bdf733fb4c Author: Hans de Goede Date: Sat Apr 20 13:22:10 2019 +0200 HID: logitech-hidpp: use RAP instead of FAP to get the protocol version According to the logitech_hidpp_2.0_specification_draft_2012-06-04.pdf doc: https://lekensteyn.nl/files/logitech/logitech_hidpp_2.0_specification_draft_2012-06-04.pdf We should use a register-access-protocol request using the short input / output report ids. This is necessary because 27MHz HID++ receivers have a max-packetsize on their HIP++ endpoint of 8, so they cannot support long reports. Using a feature-access-protocol request (which is always long or very-long) with these will cause a timeout error, followed by the hidpp driver treating the device as not being HID++ capable. This commit fixes this by switching to using a rap request to get the protocol version. Besides being tested with a (046d:c517) 27MHz receiver with various 27MHz keyboards and mice, this has also been tested to not cause regressions on a non-unifying dual-HID++ nano receiver (046d:c534) with k270 and m185 HID++-2.0 devices connected and on a unifying/dj receiver (046d:c52b) with a HID++-2.0 Logitech Rechargeable Touchpad T650. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit e54abaf675ca76e026a104790e3aaa2b47ee7497 Author: Hans de Goede Date: Sat Apr 20 13:22:09 2019 +0200 HID: logitech-hidpp: remove unused origin_is_hid_core function parameter All the various populate_input functions have an origin_is_hid_core function parameter, but none use it, remove it. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 205a2ab0c97bb3a532ca25a7ed1debb62706d83d Author: Hans de Goede Date: Sat Apr 20 13:22:08 2019 +0200 HID: logitech-hidpp: remove double assignment from __hidpp_send_report The hidpp variable is already initialized with hid_get_drvdata(hdev) when it is declared, drop the second no-op assignment. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 2ddf07f388af6c8f0db3ec21e17ca0f06b9ec0cc Author: Hans de Goede Date: Sat Apr 20 13:22:07 2019 +0200 HID: logitech-hidpp: do not make failure to get the name fatal With devices attached to a non-unifying 2.4GHz receiver we sometimes fail to get the name. This is not a fatal error, we can just continue with the original name. So instead of bailing out, continue with battery-initialization when this happens. This fixes the battery not getting registered when we fail to get the name. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 22bf6bdef4a1d551fdaebbe8247e57569ea07b6a Author: Hans de Goede Date: Sat Apr 20 13:22:06 2019 +0200 HID: logitech-hidpp: ignore very-short or empty names Some devices report an empty or very short name, in this case stick with the name generated by the logitech-dj code instead of overriding it with e.g. "Logitech ". Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 91cf9a98ae4127551d022e287e283bcd8738ed02 Author: Benjamin Tissoires Date: Sat Apr 20 13:22:05 2019 +0200 HID: logitech-hidpp: make .probe usbhid capable The current custom solution for the G920 is not the best because hid_hw_start() is not called at the end of the .probe(). It means that any configuration retrieved after the initial hid_hw_start would not be exposed to user space without races. We can simply force hid_hw_start to just enable the transport layer by not using a connect_mask. This way, we can have a common path between USB, Unifying and Bluetooth devices. With this change, we can now support the non DJ receivers for low end devices, which will allow us to fetch the actual names of the paired device (instead of 'Logitech Wireless Receiver') Tested with a M185 with the non unifying receiver, a T650 and many other unifying devices, and the T651 over Bluetooth. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit fe3ee1ec007bf7b10d7c02814d4b8fbe7d9bb435 Author: Benjamin Tissoires Date: Sat Apr 20 13:22:04 2019 +0200 HID: logitech-hidpp: allow non HID++ devices to be handled by this module On the gaming mice, there are 2 interfaces, one for the mouse and one for the macros. Better allow everybody to go through hid-logitech-hidpp than trying to be smarter. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit f2113c3020ef9f9bebc4632596ac5a3c3e80dc25 Author: Hans de Goede Date: Sat Apr 20 13:22:03 2019 +0200 HID: logitech-dj: add support for Logitech Bluetooth Mini-Receiver Add support for the Logitech Bluetooth Mini-Receiver in HID proxy mode This requires some special handing in dj_find_receiver_dev because the BT Mini-Receiver contains a built-in hub and has separate USB-devices for the keyboard and mouse interfaces, rather then using 2 interfaces on a single USB device. Otherwise this receiver works identical to the standard non-unifying nano receivers. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 6d3c3f031f43eb4e70b8c1a2352e6a70d0085cb4 Author: Hans de Goede Date: Sat Apr 20 13:22:02 2019 +0200 HID: logitech-dj: make appending of the HID++ descriptors conditional Make the appending of the HID++ descriptors in logi_dj_ll_parse conditional. This is a preparation patch for adding support for the Logitech mini Bluetooth receiver in HID proxy mode (its default mode), where some of the paired devices may not be Logitech devices and thus may not be HID++ capable. This uses a fake bit 63 in reports_supported, which is changed from an u32 to an u64 for this. Bits <= 31 are not usable for this because that would cause a behavioral change in logi_dj_recv_forward_null_report. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit e316aa6e545f0bae82776317bf08ced79a68047d Author: Hans de Goede Date: Sat Apr 20 13:22:01 2019 +0200 HID: logitech-dj: remove false-positive error on double queueing of delayed-work The various functions queueing work-items do not check there already is a work-item queued before calling schedule_work(), as such they may race with each-other and with the re-queuing done by the delayedwork_callback itself. This is fine as the delayedwork_callback simply is a nop if scheduled once too much. I've actually seen the false-positive hid_err for this trigger in practice, so lets remove it. While at it also remove the somewhat overzealous debugging around the schedule_work() calls. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit de76b1d3332d53ccb1d3600b22a83e7e7b8f0b76 Author: Hans de Goede Date: Sat Apr 20 13:22:00 2019 +0200 HID: logitech-dj: pick a better name for non-unifying receivers hidpp_unifying_get_name() does not work for devices attached to non-unifying receivers. Since we do get a device-type in the device- connection report, we can pick a better name for these devices in hid-logitech-dj.c . Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit da12b224b7d514215f4ed978abe03e8100d0426c Author: Hans de Goede Date: Sat Apr 20 13:21:59 2019 +0200 HID: logitech-dj: deal with some KVMs adding an extra interface to the usbdev My Aten cs1764a KVM adds an extra interface to the receiver through which it forwards mouse events, if a separate mouse is plugged in next to the receiver dongle. This interface is present even if no extra mouse is plugged in. logitech-dj trying to handle this extra interface causes mouse events send through the extra interface to not be properly handled. This commit fixes this by treating any extra interfaces as hid-generic interfaces. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit aca22a35396c52492cd61965544c134c74daca68 Author: Hans de Goede Date: Sat Apr 20 13:21:58 2019 +0200 HID: logitech-dj: replace dev_err calls with hid_err calls Use hid_err consistently everywhere. While at it also tweak some of the messages for clarity, to consistently have a space after a ':' and in some cases to fit within 80 chars. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 1f944ac626084e1fafa3bca010a1be3709adb141 Author: Hans de Goede Date: Sat Apr 20 13:21:57 2019 +0200 HID: logitech-dj: add support for 27 MHz mouse-only receivers 27 MHz mouse-only receivers send an unnumbered input report with the mouse data, add special handling for this and add the c51b product-id to the logi_dj_receivers table. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit c9121cf637331b6fc07a60708c6ca0a161e7deb5 Author: Hans de Goede Date: Sat Apr 20 13:21:56 2019 +0200 HID: logitech-dj: add support for 27 MHz receivers Most Logitech wireless keyboard and mice using the 27 MHz are hidpp10 devices, add support to logitech-dj for their receivers. Doing so leads to 2 improvements: 1) All these devices share the same USB product-id for their receiver, making it impossible to properly map some special keys / buttons which differ from device to device. Adding support to logitech-dj to see these as hidpp10 devices allows us to get the actual device-id from the keyboard / mouse. 2) It enables battery-monitoring of these devices This patch uses a new HID group for 27Mhz devices, since the logitech-hidpp code needs to be able to differentiate them from other devices instantiated by the logitech-dj code. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit f5fb57a74e88bd1788f57bf77d587c91d4dc9d57 Author: Benjamin Tissoires Date: Sat Apr 20 13:21:55 2019 +0200 HID: logitech-dj: add support for the gaming unifying receiver This receiver is almost identical to the normal unifying ones except: - it is supposed to be paired to only one device (for performance reasons) - the mice reports have a greater ranges in their values, so they are using a different report ID. Tested on a G403 and a G900. Co-authored-by: Hans de Goede Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 74808f9115cee2bb53e7161432959f3e87b631e4 Author: Hans de Goede Date: Sat Apr 20 13:21:54 2019 +0200 HID: logitech-dj: add support for non unifying receivers We emulate the DJ functionality through the driver. The receiver supports "fake device arrival" which behaves like the probing of DJ devices. A non-unifying receiver has 2 USB interfaces, the first one generates standard keypresses and is compatible with the USB Keyboard Boot Subclass. The second interface sends events for the mouse and special keys such as the consumer-page keys. Events are split this way for BIOS / Windows / generic-hid driver compatibility. This split does not actually match with which device the event originate from, e.g. the consumer-page key events originate from the keyboard but are delivered on the mouse interface. To make sure the events are actually delivered to the dj_device representing the originating device, we pick which dj_dev to forward a "regular" input-report to based on the report-number, rather then based on the originating interface. Co-authored-by: Benjamin Tissoires Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit b6aeeddef68deec9d603e455d163e3b41951f2d9 Author: Hans de Goede Date: Sat Apr 20 13:21:53 2019 +0200 HID: logitech-dj: add logi_dj_recv_queue_unknown_work helper Add a logi_dj_recv_queue_unknown_work helper and implement query rate-limiting inside this helper. The motivations behind this are: 1) We need to queue workitems for reports with no place to forward them from more places with the upcoming non-unifying receiver support, hence the addition of the helper function. 2) When we've missed a pairing info report (or there is a race between the report and input-events) and the input report is e.g. from a mouse being moved, we will get a lot of these before we've finished (re-) querying and enumerating the devices, hence the rate-limiting. Note this also removes the: if (!djrcv_dev->paired_dj_devices[hidpp_report->device_index]) check previously guarding the sending of an unknown workitem, the caller of logi_dj_recv_queue_notification already does this check before calling logi_dj_recv_queue_notification. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit a1d97ccbb4d05c049dffafc23fe62f0dd1a06d83 Author: Hans de Goede Date: Sat Apr 20 13:21:52 2019 +0200 HID: logitech-dj: support sharing struct dj_receiver_dev between USB-interfaces dj/HID++ receivers are really a single logical entity, but for BIOS/Windows compatibility they have multiple USB interfaces. For the upcoming non-unifying receiver support, we need to listen for events from / bind to all USB-interfaces of the receiver. This commit add support to the logitech-dj code for creating a single dj_receiver_dev struct for all interfaces belonging to a single USB-device / receiver, in preparation for adding non-unifying receiver support. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 0ee755449157cf7551a8252a2bafeed7b5acdbb3 Author: Hans de Goede Date: Sat Apr 20 13:21:51 2019 +0200 HID: logitech-dj: rename dj_receiver_dev.hdev to dj_receiver_dev.hidpp For the upcoming non-unifying receiver support, we are going to bind to all USB-interfaces of a receiver, sharing a single struct dj_receiver_dev between the interfaces. This means that dj_receiver_dev will contain multiple pointers to a struct hid_device. Rename the current hdev member to hidpp to prepare for this. While at it switch dev_err calls which we are touching anyways from dev_err to hid_err. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit f41d766c34cbab024412d433a43d2d83a37e5135 Author: Hans de Goede Date: Sat Apr 20 13:21:50 2019 +0200 HID: logitech-dj: protect the paired_dj_devices access in add_djhid_dev with the lock This protects against logi_dj_recv_add_djhid_device, adding a device to paired_dj_devices from the delayedwork callback, racing versus logi_dj_raw_event trying to access that device. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 61d14de2948e1281b178b5b890a72e9c00979cc4 Author: Hans de Goede Date: Sat Apr 20 13:21:49 2019 +0200 HID: logitech-dj: remove unused querying_devices variable querying_devices is never set, so it can safely be removed. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 4fcad95a24bba1601c15b308b97fa7a1090135cd Author: Benjamin Tissoires Date: Sat Apr 20 13:21:48 2019 +0200 HID: logitech-dj: do not schedule the dj report itself This is a preparatory patch for handling non DJ (HID++ only) receivers, through this module. We can not use the dj_report in the delayed work callback as the HID++ notifications are different both in size and meaning. There should be no functional change. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 82c0beb858543f56311fd22609771a671081bd2a Author: Benjamin Tissoires Date: Sat Apr 20 13:21:47 2019 +0200 HID: logitech-dj: remove USB dependency It is better to rely on the actual content of the report descriptors to enable or not a HID interface. While at it, remove the other USB dependency to have a fully USB agnostic driver. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit c034041284e8f2c7bd377b5cce445ef630ec5458 Author: Benjamin Tissoires Date: Sat Apr 20 13:21:46 2019 +0200 HID: logitech-dj: declare and use a few HID++ 1.0 constants For the non DJ receivers, we are going to need to re-use those constants, better have them properly defined. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit a17dd1f2da43ecc1f30a41c21f08265f3c617200 Author: Benjamin Tissoires Date: Sat Apr 20 13:21:45 2019 +0200 HID: logitech-dj: use BIT() macro for RF Report types Use BIT() macro for RF Report types. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 7bb56a5f3809ef47ac4911d561c86725514c4354 Author: Benjamin Tissoires Date: Sat Apr 20 13:21:44 2019 +0200 HID: logitech-dj: fix variable naming in logi_dj_hidpp_event we are not dealing with a dj_report but a hidpp_event. We don't need all of the struct description in this function, but having the variable named `dj_report` feels weird. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 83898234f2ae73fecc3d9dda2c3e708bee46d7e8 Author: Benjamin Tissoires Date: Sat Apr 20 13:21:43 2019 +0200 HID: logitech-dj: reshuffle logi_dj_recv_forward_* logi_dj_recv_forward_report() was only intended for DJ reports. logi_dj_recv_forward_hidpp() is more generic at forwarding random HID reports. So rename logi_dj_recv_forward_report() into logi_dj_recv_forward_dj() and logi_dj_recv_forward_hidpp() into logi_dj_recv_forward_report(). Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 43cd97af70c650c4463817eb28fda3678a1956c9 Author: Benjamin Tissoires Date: Sat Apr 20 13:21:42 2019 +0200 HID: logitech: Stop setting drvdata to NULL on probe failure and remove There is no need to set drvdata to NULL on probe failure and remove, the driver-core already does this for us. [hdegoede@redhat.com: Isolate Logitech changes into a separate patch] Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 2fbe5a5d8853cb5ae302ef0c0ae9278c9fc993ea Author: Benjamin Tissoires Date: Sat Apr 20 13:21:41 2019 +0200 HID: quirks: do not blacklist Logitech devices I am actually suggesting people to not populate this list, and I should probably start to apply my advices to myself. The end result means that if your initrd is lacking hid-logitech-dj or hid-logitech-hidpp, but still contains hid-generic, then your keyboard will work during pre-init. Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 7d3879bd5da4cc48f41443dcbfa46fcd72c5a354 Merge: 1f87b0cd32b3 a50e8e2ecc14 Author: Benjamin Tissoires Date: Tue Apr 23 17:52:33 2019 +0200 Merge branch 'for-5.1/upstream-fixes' into for-5.2/logitech commit 3de5eab3fde1e379be65973a69ded29da3802133 Author: Darrick J. Wong Date: Mon Apr 22 16:28:34 2019 -0700 xfs: unlock inode when xfs_ioctl_setattr_get_trans can't get transaction We passed an inode into xfs_ioctl_setattr_get_trans with join_flags indicating which locks are held on that inode. If we can't allocate a transaction then we need to unlock the inode before we bail out, like all the other error paths do. Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Brian Foster commit 078f4a7d31092a439f81c21b81b4d9cef9994726 Author: Darrick J. Wong Date: Wed Apr 17 16:30:24 2019 -0700 xfs: kill the xfs_dqtrx_t typedef There's only a few uses left, so just kill the typedef while we're at it. Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner Reviewed-by: Christoph Hellwig commit 394aafdc15da01c049f580e097806ee12ad6900e Author: Darrick J. Wong Date: Wed Apr 17 16:30:24 2019 -0700 xfs: widen inode delalloc block counter to 64-bits Widen the incore inode's i_delayed_blks counter to be a 64-bit integer. This is necessary to fix an integer overflow problem that can be reproduced easily now that we use the counter to track blocks that are assigned to the inode in memory but not on disk. This includes actual delalloc reservations as well as real extents in the COW fork that are waiting to be remapped into the data fork. These 'delayed mapping' blocks can easily exceed 2^32 blocks if one creates a very large sparse file of size approximately 2^33 bytes with one byte written every 2^23 bytes, sets a very large COW extent size hint of 2^23 blocks, reflinks the first file into a second file, and then writes a single byte every 2^23 blocks in the original file. When this happens, we'll try to create approximately 1024 2^23 extent reservations in the COW fork, which will overflow the counter and cause problems. Note that on x64 we end up filling a 4-byte gap in the structure so this doesn't increase the incore size. Signed-off-by: Darrick J. Wong Reviewed-by: Allison Collins Reviewed-by: Dave Chinner Reviewed-by: Christoph Hellwig commit 903b1fc2737f1c7086420db0a1e550ba0b479a0c Author: Darrick J. Wong Date: Wed Apr 17 16:30:24 2019 -0700 xfs: widen quota block counters to 64-bit integers Widen the incore quota transaction delta structure to treat block counters as 64-bit integers. This is a necessary addition so that we can widen the i_delayed_blks counter to be a 64-bit integer. Signed-off-by: Darrick J. Wong Reviewed-by: Allison Collins Reviewed-by: Dave Chinner Reviewed-by: Christoph Hellwig commit 1fdeaea4d92c69fb9f871a787af6ad00f32eeea7 Author: Darrick J. Wong Date: Wed Apr 17 08:49:36 2019 -0700 xfs: abort unaligned nowait directio early Dave Chinner noticed that xfs_file_dio_aio_write returns EAGAIN without dropping the IOLOCK when its deciding not to wait, which means that we leak the IOLOCK there. Since we now make unaligned directio always wait, we have the opportunity to bail out before trying to take the lock, which should reduce the overhead of this never-gonna-work case considerably while also solving the dropped lock problem. Reported-by: Dave Chinner Signed-off-by: Darrick J. Wong Reviewed-by: Brian Foster Reviewed-by: Dave Chinner Reviewed-by: Christoph Hellwig commit 362f5e745ae2ee2be9cf181b3a22917d619b81a1 Author: Brian Foster Date: Tue Apr 23 07:54:06 2019 -0700 xfs: assert that we don't enter agfl freeing with a non-permanent transaction Block allocation requires a permanent transaction for deferred AGFL frees. Add an assert in the block allocation path to make explicit and obvious to future callers the requirement of a transaction with a permanent reservation. Reported-by: Darrick J. Wong Signed-off-by: Brian Foster Reviewed-by: Darrick J. Wong [darrick: split this out from the previous patch per hch request] Signed-off-by: Darrick J. Wong commit ccaa75187a5f1d8131b424160eb90a8a94be287f Author: Gustavo A. R. Silva Date: Tue Feb 12 20:54:56 2019 -0600 memstick: mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warnings: drivers/memstick/host/jmb38x_ms.c: In function ‘jmb38x_ms_write_data’: drivers/memstick/host/jmb38x_ms.c:261:15: warning: this statement may fall through [-Wimplicit-fallthrough=] host->io_pos++; ~~~~~~~~~~~~^~ drivers/memstick/host/jmb38x_ms.c:262:2: note: here case 2: ^~~~ drivers/memstick/host/jmb38x_ms.c:264:15: warning: this statement may fall through [-Wimplicit-fallthrough=] host->io_pos++; ~~~~~~~~~~~~^~ drivers/memstick/host/jmb38x_ms.c:265:2: note: here case 1: ^~~~ drivers/memstick/host/tifm_ms.c: In function ‘tifm_ms_write_data’: drivers/memstick/host/tifm_ms.c:168:15: warning: this statement may fall through [-Wimplicit-fallthrough=] host->io_pos++; ~~~~~~~~~~~~^~ drivers/memstick/host/tifm_ms.c:169:2: note: here case 2: ^~~~ drivers/memstick/host/tifm_ms.c:171:15: warning: this statement may fall through [-Wimplicit-fallthrough=] host->io_pos++; ~~~~~~~~~~~~^~ drivers/memstick/host/tifm_ms.c:172:2: note: here case 1: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit 98105e9a60612a2c5fda45aee69a5d084d280f24 Author: Gustavo A. R. Silva Date: Mon Apr 15 16:11:41 2019 -0500 xen-netfront: mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warning: drivers/net/xen-netfront.c: In function ‘netback_changed’: drivers/net/xen-netfront.c:2038:6: warning: this statement may fall through [-Wimplicit-fallthrough=] if (dev->state == XenbusStateClosed) ^ drivers/net/xen-netfront.c:2041:2: note: here case XenbusStateClosing: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 Notice that, in this particular case, the code comment is modified in accordance with what GCC is expecting to find. This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Reviewed-by: Juergen Gross Signed-off-by: Boris Ostrovsky commit 515762b9164a4e4ba5c775ceab89753a20a0c632 Author: Hariprasad Kelam Date: Sat Apr 6 17:59:12 2019 +0530 xen: xen-pciback: fix warning Using plain integer as NULL pointer Changes passing function argument 0 to NULL to avoid below sparse warning CHECK drivers/xen/xen-pciback/xenbus.c drivers/xen/xen-pciback/xenbus.c:700:51: warning: Using plain integer as NULL pointer Signed-off-by: Hariprasad Kelam Reviewed-by: Mukesh Ojha Signed-off-by: Boris Ostrovsky commit 2ec16bc0fc7ab544f2d405fd4fdd0d717c5ec0c5 Author: Ryan Thibodeaux Date: Fri Mar 22 14:29:57 2019 -0400 x86/xen: Add "xen_timer_slop" command line option Add a new command-line option "xen_timer_slop=" that sets the minimum delta of virtual Xen timers. This commit does not change the default timer slop value for virtual Xen timers. Lowering the timer slop value should improve the accuracy of virtual timers (e.g., better process dispatch latency), but it will likely increase the number of virtual timer interrupts (relative to the original slop setting). The original timer slop value has not changed since the introduction of the Xen-aware Linux kernel code. This commit provides users an opportunity to tune timer performance given the refinements to hardware and the Xen event channel processing. It also mirrors a feature in the Xen hypervisor - the "timer_slop" Xen command line option. [boris: updated comment describing TIMER_SLOP] Signed-off-by: Ryan Thibodeaux Reviewed-by: Boris Ostrovsky Signed-off-by: Boris Ostrovsky commit 1c410fd6a561af452aba282b1cd3cabef2080d72 Author: Thomas-Mich Richter Date: Tue Apr 23 11:36:27 2019 +0200 s390/cpum_cf_diag: Add support for CPU-MF SVN 6 Add support for the CPU-Measurement Facility counter second version number 6. This number is used to detect some more counters in the crypto counter set and the extended counter set. Signed-off-by: Thomas Richter Reviewed-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky commit 1a42010cdc26bb7e5912984f3c91b8c6d55f089a Author: Martin Schwidefsky Date: Tue Apr 23 10:53:21 2019 +0200 s390/mm: convert to the generic get_user_pages_fast code Define the gup_fast_permitted to check against the asce_limit of the mm attached to the current task, then replace the s390 specific gup code with the generic implementation in mm/gup.c. Signed-off-by: Martin Schwidefsky commit d1874a0c2805fcfa9162c972d6b7541e57adb542 Author: Martin Schwidefsky Date: Tue Apr 23 10:51:12 2019 +0200 s390/mm: make the pxd_offset functions more robust Change the way how pgd_offset, p4d_offset, pud_offset and pmd_offset walk the page tables. pgd_offset now always calculates the index for the top-level page table and adds it to the pgd, this is either a segment table offset for a 2-level setup, a region-3 offset for 3-levels, region-2 offset for 4-levels, or a region-1 offset for a 5-level setup. The other three functions p4d_offset, pud_offset and pmd_offset will only add the respective offset if they dereference the passed pointer. With the new way of walking the page tables a sequence like this from mm/gup.c now works: pgdp = pgd_offset(current->mm, addr); pgd = READ_ONCE(*pgdp); p4dp = p4d_offset(&pgd, addr); p4d = READ_ONCE(*p4dp); pudp = pud_offset(&p4d, addr); pud = READ_ONCE(*pudp); pmdp = pmd_offset(&pud, addr); pmd = READ_ONCE(*pmdp); Signed-off-by: Martin Schwidefsky commit 1fae0ad1e2032a603f93d4ad752bfa6fe7c9b887 Author: Linus Walleij Date: Sun Feb 10 23:43:33 2019 +0100 ARM: dts: Add queue manager and NPE to the IXP4xx DTSI The AHB queue manager and Network Processing Engines are present on all IXP4xx SoCs, so we add them to the overarching device tree include. Signed-off-by: Linus Walleij commit 9e01a00958405f59e0a85fd16eb4e879e983ea74 Author: Linus Walleij Date: Sun Feb 10 23:41:49 2019 +0100 soc: ixp4xx: qmgr: Add DT probe code This makes the queue manager driver able to probe from the device tree. It only needs to get a memory resource and two interrupts and the platform device provides these as resources, so all is pretty simple. Signed-off-by: Linus Walleij commit 6e2b0f8c9bc8897f6260981cff231632c20d3048 Author: Linus Walleij Date: Sun Feb 10 23:40:28 2019 +0100 soc: ixp4xx: qmgr: Add DT bindings for IXP4xx qmgr This adds device tree bindings for the Intel IXP4xx AHB Queue Manager. Cc: devicetree@vger.kernel.org Reviewed-by: Rob Herring Signed-off-by: Linus Walleij commit e00797f2e05b7f3758bb96e6248aff8d95999cec Author: Linus Walleij Date: Sun Feb 10 22:42:26 2019 +0100 soc: ixp4xx: npe: Add DT probe code This makes the NPE driver able to probe from the device tree. It only needs to get three memory resources and the plaform device provide these, so all is pretty simple. Signed-off-by: Linus Walleij commit 3107fbf7059bcad924a241271f667dc2f74910a5 Author: Linus Walleij Date: Sun Feb 10 22:40:48 2019 +0100 soc: ixp4xx: Add DT bindings for IXP4xx NPE This adds DT bindings for the Intel IXP4xx Network Processing Engine (NPE). These are three firmware-executing units found in the IXP4xx SoC. These bindings use YAML. Cc: devicetree@vger.kernel.org Reviewed-by: Rob Herring Signed-off-by: Linus Walleij commit ecc133c6da60377c54a117841d630612d9f49964 Author: Linus Walleij Date: Sun Feb 10 20:20:10 2019 +0100 soc: ixp4xx: qmgr: Pass resources Instead of using hardcoded base address implicitly obtained through , pass the physical base for the QMGR block as a memory resource and remap it in the driver. Also pass the two IRQs as resources and obtain them in the driver. Use devm_* accessors and simplify the error path in the process. Drop memory region request as this is done by the devm_ioremap* functions. Signed-off-by: Linus Walleij commit 6b39031954568afdf38169573544f6e7c1f4d321 Author: Linus Walleij Date: Sun Feb 10 20:18:06 2019 +0100 soc: ixp4xx: Remove unused functions These former inlines turn out to be unused in the kernel. If they are needed in the future, they can be resurrected by reverting or studying this commit. Signed-off-by: Linus Walleij commit d08502f245f985df54be57eaac13c72907b0a3a7 Author: Linus Walleij Date: Sun Feb 10 20:15:11 2019 +0100 soc: ixp4xx: Uninline several functions These inline functions immediately exploit the static ioremaps for the queue manager memory region. This does not work with multiplatform where everything need to be dynamically remapped, so get rid of these inlines and create new exports for those used by other drivers. Signed-off-by: Linus Walleij commit 0b458d7b10f83eb34b84957e6cf47cee2a97bc49 Author: Linus Walleij Date: Sun Feb 10 19:35:08 2019 +0100 soc: ixp4xx: npe: Pass addresses as resources Instead of using hardcoded base addresses implicitly obtained through , pass the physical base for the three NPE blocks as memory resources and remap these in the driver. Drop the memory request region business, this will anyways be done by devm_* remapping functions. Signed-off-by: Linus Walleij commit 81bca32fcc75ededc51274d11f593a22a027236c Author: Linus Walleij Date: Sun Feb 10 17:14:10 2019 +0100 ARM: ixp4xx: Turn the QMGR into a platform device Instead of registering everything related to the QMGR unconditionally in the module_init() call (which will never work with multiplatform) create a platform device and probe the QMGR like any other device. Put the device second in the list of devices added for the platform so it is there when the dependent network and crypto drivers probe later on. This probe() path will not be taken unconditionally on device tree boots, so remove the DT guard. Signed-off-by: Linus Walleij commit bc4d7eafb7ad590f546b58c40cd7856990fbb303 Author: Linus Walleij Date: Sun Feb 10 17:05:29 2019 +0100 ARM: ixp4xx: Turn the NPE into a platform device Instead of registering everything related to the NPE unconditionally in the module_init() call (which will never work with multiplatform) create a platform device and probe the NPE like any other device. Put the device first in the list of devices added for the platform so it is there when the dependent network and crypto drivers probe later on. This probe() path will not be taken unconditionally on device tree boots, so remove the DT guard. Signed-off-by: Linus Walleij commit 4af20dc583b364fad45df6fb81873606af8b70fb Author: Linus Walleij Date: Sun Feb 10 14:55:58 2019 +0100 ARM: ixp4xx: Move IXP4xx QMGR and NPE headers This moves the IXP4xx Queue Manager and Network Processing Engine headers out of the include path as that is incompatible with multiplatform. Signed-off-by: Linus Walleij commit fcf2d8978cd538a5d614076fccfe9a4af23b9cc9 Author: Linus Walleij Date: Sun Feb 10 14:45:47 2019 +0100 ARM: ixp4xx: Move NPE and QMGR to drivers/soc The Network Processing Engine and Queue Manager are versatile firmware components used by several IXP4xx drivers. Drivers are relying on getting access to these components using headers which does not work with multiplatform. We need to find a better place for the drivers to live. Let's first move them to drivers/soc and the start to refactor a bit by passing resources and moving headers. This patch introduce static IRQ assignments but that will be fixed by later patches in this series. Signed-off-by: Linus Walleij commit b9a35d705a6780b5b89121e685c3e43c9ffa34f8 Author: Linus Walleij Date: Sun Jan 27 14:11:41 2019 +0100 ARM: dts: Add some initial IXP4xx device trees This adds a device tree for the IXP4xx-based Linksys NSLU2 and Gateworks GW2358 which encompass the Gateworks Cambria family. These will be the first IXP4xx device tree platforms. Signed-off-by: Linus Walleij commit 9540724ca29d54b65aaea120072166ebc2d5f4a1 Author: Linus Walleij Date: Sun Jan 27 14:08:36 2019 +0100 ARM: ixp4xx: Add device tree boot support This adds a minimal support for booting IXP4xx systems from device tree. We have to add hacks to the QMGR, NPE and notably also ethernet and watchdog drivers so that they don't crash the platform: these drivers are unconditionally starting to grab regions of statically remapped IO space with no concern of the device model or other platforms. We will go in and properly fix these drivers as we go along but for now this hack gets us to a place where we can start working on proper device tree support for these platforms. Signed-off-by: Linus Walleij commit 50d2c8d29106a6309b97d7ca75b48f2c42850d1f Author: Linus Walleij Date: Sun Feb 3 14:51:12 2019 +0100 ARM: ixp4xx: Add DT bindings This adds initial device tree bindings for the IXP4xx machines. This time I tried something wild and crazy and try to make proper JSON-style YAML bindings for the top level. Cc: devicetree@vger.kernel.org Reviewed-by: Rob Herring Signed-off-by: Linus Walleij commit e4bfb0ff7163febf4958df4662a39240f8cc063a Author: Linus Walleij Date: Mon Jan 28 21:16:44 2019 +0100 gpio: ixp4xx: Add OF probing support This adds device tree probe and registration support for the IXP4xx GPIO driver. Cc: Bartosz Golaszewski Signed-off-by: Linus Walleij commit e8e2f5651d5f6ea33da07421b5e8c114b26e93e2 Author: Linus Walleij Date: Fri Feb 1 21:11:44 2019 +0100 gpio: ixp4xx: Add DT bindings This adds DT bindings for the IXP4xx GPIO controller. Cc: devicetree@vger.kernel.org Reviewed-by: Bartosz Golaszewski Reviewed-by: Rob Herring Signed-off-by: Linus Walleij commit 40df14cc5cc0e7c35366eb70dc2c80dd04cc5fbe Author: Linus Walleij Date: Sun Jan 27 14:06:56 2019 +0100 clocksource/drivers/ixp4xx: Add OF initialization support This adds support for setting up the IXP4xx timer driver from device tree. Cc: Thomas Gleixner Acked-by: Daniel Lezcano Signed-off-by: Linus Walleij commit 7c23b0e1d4d32f1d1a96730ff1abb8b6cc681cfc Author: Linus Walleij Date: Fri Feb 1 19:12:58 2019 +0100 clocksource/drivers/ixp4xx: Add DT bindings This adds device tree bindings for the Intel IXP4xx timers. Cc: Daniel Lezcano Cc: Thomas Gleixner Cc: devicetree@vger.kernel.org Reviewed-by: Rob Herring Signed-off-by: Linus Walleij commit f1497f3d06ad305aa3a8b3ff6b161b5eace89d0e Author: Linus Walleij Date: Sun Jan 27 14:05:53 2019 +0100 irqchip: ixp4xx: Add OF initialization support This adds support for probing and settin up the IXP4xx irqchip from device tree. Cc: Jason Cooper Cc: Thomas Gleixner Acked-by: Marc Zyngier Signed-off-by: Linus Walleij commit 167c6b5ecee1c91867b4a92fcd472e3ddeaeffdc Author: Linus Walleij Date: Fri Feb 1 17:09:46 2019 +0100 irqchip: ixp4xx: Add DT bindings This adds device tree bindings for the IXP4xx interrupt controller. It's a standard 2-cell controller. Cc: Marc Zyngier Cc: Jason Cooper Cc: Thomas Gleixner Cc: devicetree@vger.kernel.org Reviewed-by: Rob Herring Signed-off-by: Linus Walleij commit 65af666713ffd275d6db3f086f80e070594c4732 Author: Linus Walleij Date: Sat Jan 26 00:51:51 2019 +0100 ARM: ixp4xx: Switch to use new timer driver This augments the IXP4xx to select and use the new timer driver in drivers/clocksource and removes the old code in the machine. Cc: Daniel Lezcano Cc: Thomas Gleixner Acked-by: Daniel Lezcano Signed-off-by: Linus Walleij commit 13e0b4059b984a1c63cae5604e1f665472751ea1 Author: Linus Walleij Date: Sat Jan 26 00:49:19 2019 +0100 clocksource/drivers/ixp4xx: Add driver This adds a new slightly rewritten timer driver for the Intel IXP4xx clocksource, clockevent and delay timer. Cc: Daniel Lezcano Cc: Thomas Gleixner Signed-off-by: Linus Walleij commit 55ec465e733e60d2d524bd42ff19b66ed21f01df Author: Linus Walleij Date: Fri Jan 25 22:58:39 2019 +0100 ARM: ixp4xx: Switch to use new IRQ+GPIO drivers This deletes the old irq+gpiochip combo from the IXP4xx machine and switches it over to use the new drivers merged in respective subsystem. Cc: Jason Cooper Cc: Thomas Gleixner Cc: Bartosz Golaszewski Acked-by: Marc Zyngier Signed-off-by: Linus Walleij commit 813e7d36f22762f89856048a32446c8972309566 Author: Linus Walleij Date: Fri Jan 25 21:59:11 2019 +0100 gpio: ixp4xx: Add driver for the IXP4xx GPIO This adds a driver for the IXP4xx GPIO block found in the Intel XScale IXP4xx systems. The GPIO part of this block is pretty straight-forward and just uses the generic MMIO GPIO library. The irqchip side of this driver is hierarchical where the main irqchip will receive a processed level trigger in response to the edge detector of the GPIO block, so for this reason the v2 version of the irqdomain API is used (as well as in the parent IXP4xx irqchip) and masking, unmasking and setting up the type on IRQ happens on several levels. Currently this GPIO controller will grab the parent irqdomain using a special function, but as the platform move toward device tree probing, this will not be needed: we can just look up the parent irqdomain from the device tree. Cc: Bartosz Golaszewski Signed-off-by: Linus Walleij commit 551879a48f01826fd86568d7bd1e774cb0de3295 Author: Ming Lei Date: Tue Apr 23 10:51:04 2019 +0800 block: clarify that bio_add_page() and related helpers can add multi pages bio_add_page() and __bio_add_page() are capable of adding pages into bio, and now we have at least two such usages alreay: - __bio_iov_bvec_add_pages() - nvmet_bdev_execute_rw(). So update comments on these two helpers. The thing is a bit special for __bio_try_merge_page(), given the caller needs to know if the new added page is same with the last added page, then it isn't safe to pass multi-page in case that 'same_page' is true, so adds warning on potential misuse, and updates comment on __bio_try_merge_page(). Cc: linux-xfs@vger.kernel.org Cc: linux-fsdevel@vger.kernel.org Reviewed-by: Hannes Reinecke Reviewed-by: Christoph Hellwig Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit a60170000338c59b4de43e7c6e38413b8a748f0d Author: Kefeng Wang Date: Tue Apr 23 15:50:02 2019 +0800 hwmon: (s3c) Use dev_get_drvdata() Using dev_get_drvdata directly. Cc: Jean Delvare Cc: Guenter Roeck Signed-off-by: Kefeng Wang Signed-off-by: Guenter Roeck commit 212244f76d13bdbb57fa8096a8aa94c5b55c4be5 Author: Guenter Roeck Date: Mon Apr 22 10:12:32 2019 -0700 hwmon: (max6650) Drop call to thermal_cdev_update The call to thermal_cdev_update() causes any fan connected to the chip to stop immediately. If the thermal subsystem is not set up to actually handle the chip as cooling device, the remains stopped until is is restarted manually with a write to a sysfs attribute. There is evidence that thermal_cdev_update() should only be called from thermal governors, not from thermal cooling device drivers. Drop the call. Cc: Jean-Francois Dagenais Tested-by: Jean-Francois Dagenais Signed-off-by: Guenter Roeck commit 9726840d9cf0d42377e1591263d7c1d9ae0988ac Author: Will Deacon Date: Fri Apr 12 13:42:18 2019 +0100 docs/memory-barriers.txt: Update I/O section to be clearer about CPU vs thread The revised I/O ordering section of memory-barriers.txt introduced in 4614bbdee357 ("docs/memory-barriers.txt: Rewrite "KERNEL I/O BARRIER EFFECTS" section") loosely refers to "the CPU", whereas the ordering guarantees generally apply within a thread of execution that can migrate between cores, with the scheduler providing the relevant barrier semantics. Reword the section to refer to "CPU thread" and call out ordering of MMIO writes separately from ordering of writes to memory. Ben also spotted that the string accessors are native-endian, so fix that up too. Link: https://lkml.kernel.org/r/080d1ec73e3e29d6ffeeeb50b39b613da28afb37.camel@kernel.crashing.org Fixes: 4614bbdee357 ("docs/memory-barriers.txt: Rewrite "KERNEL I/O BARRIER EFFECTS" section") Reported-by: Benjamin Herrenschmidt Signed-off-by: Will Deacon commit a50e8e2ecc1428df28c748c6af6255eb65faf9f3 Author: Srinivas Pandruvada Date: Fri Apr 19 19:00:31 2019 -0700 HID: intel-ish-hid: Add Comet Lake PCI device ID Add Comet Lake PCI device ID to the supported device list. Signed-off-by: Srinivas Pandruvada Signed-off-by: Jiri Kosina commit 9bcb929f969e4054732158908b1d70e787ef780f Author: Robin Murphy Date: Tue Apr 16 16:24:25 2019 +0100 perf/arm-ccn: Clean up CPU hotplug handling Like arm-cci, arm-ccn has the same issue of disabling preemption around operations which can take mutexes. Again, remove the definite bug by simply not trying to fight the theoretical races. And since we are touching the hotplug handling code, take the opportunity to streamline it, as there's really no need to store a full-sized cpumask to keep track of a single CPU ID. Reviewed-by: Suzuki K Poulose Signed-off-by: Robin Murphy Signed-off-by: Will Deacon commit 0d2e2a82d4de298d006bf8eddc86829e3c7da820 Author: Robin Murphy Date: Tue Apr 16 16:24:24 2019 +0100 perf/arm-cci: Remove broken race mitigation Uncore PMU drivers face an awkward cyclic dependency wherein: - They have to pick a valid online CPU to associate with before registering the PMU device, since it will get exposed to userspace immediately. - The PMU registration has to be be at least partly complete before hotplug events can be handled, since trying to migrate an uninitialised context would be bad. - The hotplug handler has to be ready as soon as a CPU is chosen, lest it go offline without the user-visible cpumask value getting updated. The arm-cci driver has tried to solve this by using get_cpu() to pick the current CPU and prevent it from disappearing while both registrations are performed, but that results in taking mutexes with preemption disabled, which makes certain configurations very unhappy: [ 1.983337] BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:2004 [ 1.983340] in_atomic(): 1, irqs_disabled(): 0, pid: 1, name: swapper/0 [ 1.983342] Preemption disabled at: [ 1.983353] [] cci_pmu_probe+0x1dc/0x488 [ 1.983360] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.18.20-rt8-yocto-preempt-rt #1 [ 1.983362] Hardware name: ZynqMP ZCU102 Rev1.0 (DT) [ 1.983364] Call trace: [ 1.983369] dump_backtrace+0x0/0x158 [ 1.983372] show_stack+0x24/0x30 [ 1.983378] dump_stack+0x80/0xa4 [ 1.983383] ___might_sleep+0x138/0x160 [ 1.983386] __might_sleep+0x58/0x90 [ 1.983391] __rt_mutex_lock_state+0x30/0xc0 [ 1.983395] _mutex_lock+0x24/0x30 [ 1.983400] perf_pmu_register+0x2c/0x388 [ 1.983404] cci_pmu_probe+0x2bc/0x488 [ 1.983409] platform_drv_probe+0x58/0xa8 It is not feasible to resolve all the possible races outside of the perf core itself, so address the immediate bug by following the example of nearly every other PMU driver and not even trying to do so. Registering the hotplug notifier first should minimise the window in which things can go wrong, so that's about as much as we can reasonably do here. This also revealed an additional race in assigning the global pointer too late relative to the hotplug notifier, which gets fixed in the process. Reported-by: Li, Meng Tested-by: Corentin Labbe Reviewed-by: Suzuki K Poulose Signed-off-by: Robin Murphy Signed-off-by: Will Deacon commit bc580b56cb7888d1f09fff8a50270228fb834ae8 Author: Vivek Gautam Date: Mon Apr 22 12:40:36 2019 +0530 iommu/arm-smmu: Log CBFRSYNRA register on context fault Bits[15:0] in CBFRSYNRA register contain information about StreamID of the incoming transaction that generated the fault. Dump CBFRSYNRA register to get this info. This is specially useful in a distributed SMMU architecture where multiple masters are connected to the SMMU. SID information helps to quickly identify the faulting master device. Reviewed-by: Bjorn Andersson Reviewed-by: Robin Murphy Acked-by: Ard Biesheuvel Signed-off-by: Vivek Gautam Signed-off-by: Will Deacon commit 3f54c447df34ff9efac7809a4a80fd3208efc619 Author: Will Deacon Date: Tue Apr 23 11:59:36 2019 +0100 iommu/arm-smmu-v3: Don't disable SMMU in kdump kernel Disabling the SMMU when probing from within a kdump kernel so that all incoming transactions are terminated can prevent the core of the crashed kernel from being transferred off the machine if all I/O devices are behind the SMMU. Instead, continue to probe the SMMU after it is disabled so that we can reinitialise it entirely and re-attach the DMA masters as they are reset. Since the kdump kernel may not have drivers for all of the active DMA masters, we suppress fault reporting to avoid spamming the console and swamping the IRQ threads. Reported-by: "Leizhen (ThunderTown)" Tested-by: "Leizhen (ThunderTown)" Tested-by: Bhupesh Sharma Signed-off-by: Will Deacon commit b2fc9b4b7ff4e6d237b0118e98573c9153363ecd Author: Jean-Philippe Brucker Date: Wed Apr 17 19:24:48 2019 +0100 iommu/arm-smmu-v3: Disable tagged pointers The ARM architecture has a "Top Byte Ignore" (TBI) option that makes the MMU mask out bits [63:56] of an address, allowing a userspace application to store data in its pointers. This option is incompatible with PCI ATS. If TBI is enabled in the SMMU and userspace triggers DMA transactions on tagged pointers, the endpoint might create ATC entries for addresses that include a tag. Software would then have to send ATC invalidation packets for each 255 possible alias of an address, or just wipe the whole address space. This is not a viable option, so disable TBI. The impact of this change is unclear, since there are very few users of tagged pointers, much less SVA. But the requirement introduced by this patch doesn't seem excessive: a userspace application using both tagged pointers and SVA should now sanitize addresses (clear the tag) before using them for device DMA. Signed-off-by: Jean-Philippe Brucker Signed-off-by: Will Deacon commit 9ce27afc0830fca07daa3baeb4da44423b0673ef Author: Jean-Philippe Brucker Date: Wed Apr 17 19:24:47 2019 +0100 iommu/arm-smmu-v3: Add support for PCI ATS PCIe devices can implement their own TLB, named Address Translation Cache (ATC). Enable Address Translation Service (ATS) for devices that support it and send them invalidation requests whenever we invalidate the IOTLBs. ATC invalidation is allowed to take up to 90 seconds, according to the PCIe spec, so it is possible to get a SMMU command queue timeout during normal operations. However we expect implementations to complete invalidation in reasonable time. We only enable ATS for "trusted" devices, and currently rely on the pci_dev->untrusted bit. For ATS we have to trust that: (a) The device doesn't issue "translated" memory requests for addresses that weren't returned by the SMMU in a Translation Completion. In particular, if we give control of a device or device partition to a VM or userspace, software cannot program the device to access arbitrary "translated" addresses. (b) The device follows permissions granted by the SMMU in a Translation Completion. If the device requested read+write permission and only got read, then it doesn't write. (c) The device doesn't send Translated transactions for an address that was invalidated by an ATC invalidation. Note that the PCIe specification explicitly requires all of these, so we can assume that implementations will cleanly shield ATCs from software. All ATS translated requests still go through the SMMU, to walk the stream table and check that the device is actually allowed to send translated requests. Signed-off-by: Jean-Philippe Brucker Signed-off-by: Will Deacon commit 2a7e62f51696ad476b7fb8157d73307e20257df7 Author: Jean-Philippe Brucker Date: Wed Apr 17 19:24:46 2019 +0100 iommu/arm-smmu-v3: Link domains and devices When removing a mapping from a domain, we need to send an invalidation to all devices that might have stored it in their Address Translation Cache (ATC). In addition when updating the context descriptor of a live domain, we'll need to send invalidations for all devices attached to it. Maintain a list of devices in each domain, protected by a spinlock. It is updated every time we attach or detach devices to and from domains. It needs to be a spinlock because we'll invalidate ATC entries from within hardirq-safe contexts, but it may be possible to relax the read side with RCU later. Signed-off-by: Jean-Philippe Brucker Signed-off-by: Will Deacon commit 8be39a1a04c1491a6a408c1549dfd4e191f3a287 Author: Jean-Philippe Brucker Date: Wed Apr 17 19:24:45 2019 +0100 iommu/arm-smmu-v3: Add a master->domain pointer As we're going to track domain-master links more closely for ATS and CD invalidation, add pointer to the attached domain in struct arm_smmu_master. As a result, arm_smmu_strtab_ent is redundant and can be removed. Signed-off-by: Jean-Philippe Brucker Signed-off-by: Will Deacon commit bcecaee434733d98a9e7a45834f7439b64142eb3 Author: Jean-Philippe Brucker Date: Wed Apr 17 19:24:44 2019 +0100 iommu/arm-smmu-v3: Store SteamIDs in master Simplify the attach/detach code a bit by keeping a pointer to the stream IDs in the master structure. Although not completely obvious here, it does make the subsequent support for ATS, PRI and PASID a bit simpler. Signed-off-by: Jean-Philippe Brucker Signed-off-by: Will Deacon commit b54f4260c7df878c231e7b3a3687636d74d83c8f Author: Jean-Philippe Brucker Date: Wed Apr 17 19:24:43 2019 +0100 iommu/arm-smmu-v3: Rename arm_smmu_master_data to arm_smmu_master The arm_smmu_master_data structure already represents more than just the firmware data associated to a master, and will be used extensively to represent a device's state when implementing more SMMU features. Rename the structure to arm_smmu_master. Signed-off-by: Jean-Philippe Brucker Signed-off-by: Will Deacon commit 5702ee24182f9b3e33476b74b5c92a4f913ad9bd Author: Jean-Philippe Brucker Date: Wed Apr 17 19:24:42 2019 +0100 ACPI/IORT: Check ATS capability in root complex nodes Root complex node in IORT has a bit telling whether it supports ATS or not. Store this bit in the IOMMU fwspec when setting up a device, so it can be accessed later by an IOMMU driver. In the future we'll probably want to store this bit at the host bridge or SMMU rather than in each endpoint. Acked-by: Lorenzo Pieralisi Signed-off-by: Jean-Philippe Brucker Signed-off-by: Will Deacon commit b9ae16d80a357c88fcb7ff6831cfdc196f0a34dd Author: Jean-Philippe Brucker Date: Wed Apr 17 19:24:41 2019 +0100 PCI: Add a stub for pci_ats_disabled() Currently pci_ats_disabled() is only defined when CONFIG_PCI is enabled. Since we're about to use the function in the Arm SMMUv3 driver, which could be built with CONFIG_PCI disabled, add a definition of pci_ats_disabled() for !CONFIG_PCI. Acked-by: Bjorn Helgaas Signed-off-by: Jean-Philippe Brucker Signed-off-by: Will Deacon commit 6e1ffbb7c2ab80df54ecbb01cf3d2c64aafed74a Author: Jean-Philippe Brucker Date: Wed Apr 17 19:24:40 2019 +0100 PCI: Move ATS declarations outside of CONFIG_PCI At the moment, the ATS functions are only defined when CONFIG_PCI is enabled. Since we're about to use them in the Arm SMMUv3 driver, which could be built with CONFIG_PCI disabled, and they are already guarded by CONFIG_PCI_ATS which depends on CONFIG_PCI, move the definitions outside of CONFIG_PCI. Acked-by: Bjorn Helgaas Signed-off-by: Jean-Philippe Brucker Signed-off-by: Will Deacon commit 4a4b119b176e992912941a1e9dfa9d138b1c2faa Author: Jan Kiszka Date: Thu Apr 18 11:23:48 2019 +0200 gpio: sch: Remove write-only core_base Signed-off-by: Jan Kiszka Signed-off-by: Linus Walleij commit 1e9aa2a8164fa5b443b10962045eef01d7eeb9f7 Author: YueHaibing Date: Tue Apr 16 22:56:12 2019 +0800 gpio: pxa: Make two symbols static Fix sparse warnings: drivers/gpio/gpio-pxa.c:580:29: warning: symbol 'pxa_irq_domain_ops' was not declared. Should it be static? drivers/gpio/gpio-pxa.c:819:20: warning: symbol 'pxa_gpio_syscore_ops' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing Signed-off-by: Linus Walleij commit 44a4455ac2c6b0981eace683a2b6eccf47689022 Author: Wen Yang Date: Fri Apr 12 14:02:19 2019 +0800 pinctrl: pistachio: fix leaked of_node references The call to of_get_child_by_name returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: ./drivers/pinctrl/pinctrl-pistachio.c:1422:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 1360, but without a corresponding object release within this function. Signed-off-by: Wen Yang Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Linus Walleij commit cc62383fcebe7f03c274462790fd912f4346304b Author: Ondrej Jirman Date: Sat Apr 13 18:54:13 2019 +0200 pinctrl: sunxi: Support I/O bias voltage setting on H6 H6 SoC has a "pio group withstand voltage mode" register (datasheet description), that needs to be used to select either 1.8V or 3.3V I/O mode, based on what voltage is powering the respective pin banks and is thus used for I/O signals. Add support for configuring this register according to the voltage of the pin bank regulator (if enabled). This is similar to the support for I/O bias voltage setting patch for A80 and the same concerns apply. See: commit 402bfb3c1352 ("Support I/O bias voltage setting on A80") Signed-off-by: Ondrej Jirman Acked-by: Maxime Ripard Signed-off-by: Linus Walleij commit f7275345728a0ff18a0607dd3706f2ca25dc53e0 Author: Ondrej Jirman Date: Sat Apr 13 18:54:12 2019 +0200 pinctrl: sunxi: Prepare for alternative bias voltage setting methods H6 has a different I/O voltage bias setting method than A80. Prepare existing code for using alternative bias voltage setting methods. Signed-off-by: Ondrej Jirman Acked-by: Maxime Ripard Signed-off-by: Linus Walleij commit f4033db5b84ebe4b32c25ba2ed65ab20b628996a Author: Douglas Anderson Date: Fri Apr 12 09:17:47 2019 -0700 clk: rockchip: undo several noc and special clocks as critical on rk3288 This is mostly a revert of commit 55bb6a633c33 ("clk: rockchip: mark noc and some special clk as critical on rk3288") except that we're keeping "pmu_hclk_otg0" as critical still. NOTE: turning these clocks off doesn't seem to do a whole lot in terms of power savings (checking the power on the logic rail). It appears to save maybe 1-2mW. ...but still it seems like we should turn the clocks off if they aren't needed. About "pmu_hclk_otg0" (the one clock from the original commit we're still keeping critical) from an email thread: > pmu ahb clock > > Function: Clock to pmu module when hibernation and/or ADP is > enabled. Must be greater than or equal to 30 MHz. > > If the SOC design does not support hibernation/ADP function, only have > hclk_otg, this clk can be switched according to the usage of otg. > If the SOC design support hibernation/ADP, has two clocks, hclk_otg and > pmu_hclk_otg0. > Hclk_otg belongs to the closed part of otg logic, which can be switched > according to the use of otg. > > pmu_hclk_otg0 belongs to the always on part. > > As for whether pmu_hclk_otg0 can be turned off when otg is not in use, > we have not tested. IC suggest make pmu_hclk_otg0 always on. For the rest of the clocks: atclk: No documentation about this clock other than that it goes to the CPU. CPU functions fine without it on. Maybe needed for JTAG? jtag: Presumably this clock is only needed if you're debugging with JTAG. It doesn't seem like it makes sense to waste power for every rk3288 user. In any case to do JTAG you'd need private patches to adjust the pinctrl the mux the JTAG out anyway. pclk_dbg, pclk_core_niu: On veyron Chromebooks we turn these two clocks on only during kernel panics in order to access some coresight registers. Since nothing in the upstream kernel does this we should be able to leave them off safely. Maybe also needed for JTAG? hsicphy12m_xin12m: There is no indication of why this clock would need to be turned on for boards that don't use HSIC. pclk_ddrupctl[0-1], pclk_publ0[0-1]: On veyron Chromebooks we turn these 4 clocks on only when doing DDR transitions and they are off otherwise. I see no reason why they'd need to be on in the upstream kernel which doesn't support DDRFreq. Signed-off-by: Douglas Anderson Reviewed-by: Elaine Zhang Signed-off-by: Heiko Stuebner commit fe066621c7966fe47fa17c6be6fd81adb3c0509f Author: YueHaibing Date: Fri Apr 12 23:19:11 2019 +0800 gpio: merrifield: Fix build err without CONFIG_ACPI When building CONFIG_ACPI is not set gcc warn this: drivers/gpio/gpio-merrifield.c: In function mrfld_gpio_get_pinctrl_dev_name: drivers/gpio/gpio-merrifield.c:388:19: error: dereferencing pointer to incomplete type struct acpi_device put_device(&adev->dev); ^~ Reported-by: Hulk Robot Fixes: d00d2109c367 ("gpio: merrifield: Convert to use acpi_dev_get_first_match_dev()") Suggested-by: Andy Shevchenko Signed-off-by: YueHaibing Reviewed-by: Andy Shevchenko Acked-by: Linus Walleij Signed-off-by: Rafael J. Wysocki commit 483d70d73beaecab55882fcd2a357af72674e24c Author: Wen Yang Date: Fri Apr 12 14:02:21 2019 +0800 pinctrl: st: fix leaked of_node references The call to of_get_child_by_name returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: ./drivers/pinctrl/pinctrl-st.c:1188:3-9: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 1175, but without a corresponding object release within this function. ./drivers/pinctrl/pinctrl-st.c:1188:3-9: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 1175, but without a corresponding object release within this function. ./drivers/pinctrl/pinctrl-st.c:1199:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 1175, but without a corresponding object release within this function. ./drivers/pinctrl/pinctrl-st.c:1199:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 1175, but without a corresponding object release within this function. Signed-off-by: Wen Yang Cc: Patrice Chotard Cc: Linus Walleij Cc: linux-gpio@vger.kernel.org Cc: linux-kernel@vger.kernel.org (open list) Reviewed-by: Patrice Chotard Signed-off-by: Linus Walleij commit 44b9f86cd41db6c522effa5aec251d664a52fbc0 Author: Wen Yang Date: Fri Apr 12 14:02:22 2019 +0800 pinctrl: samsung: fix leaked of_node references The call to of_find_compatible_node returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: ./drivers/pinctrl/samsung/pinctrl-exynos-arm.c:76:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 66, but without a corresponding object release within this function. ./drivers/pinctrl/samsung/pinctrl-exynos-arm.c:82:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 66, but without a corresponding object release within this function. Signed-off-by: Wen Yang Cc: Linus Walleij Cc: Tomasz Figa Cc: Sylwester Nawrocki Cc: Kukjin Kim Cc: linux-samsung-soc@vger.kernel.org Cc: linux-gpio@vger.kernel.org Cc: linux-kernel@vger.kernel.org Reviewed-by: Krzysztof Kozlowski Signed-off-by: Linus Walleij commit 4db7c34cb41a3d7ed7db7a84413d7c225278c36a Author: Yue Hu Date: Fri Apr 19 14:27:58 2019 +0800 cpufreq: Move ->get callback check outside of __cpufreq_get() Currenly, __cpufreq_get() called by show_cpuinfo_cur_freq() will check ->get callback. That is needless since cpuinfo_cur_freq attribute will not be created if ->get is not set. So let's drop it in __cpufreq_get(). Also keep this check in cpufreq_get(). Signed-off-by: Yue Hu Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki commit b0f65b917987dee71d0b1d3c65c0b52db00a55e0 Author: Kefeng Wang Date: Tue Apr 23 15:49:56 2019 +0800 ACPI / DPTF: Use dev_get_drvdata() Skip conversion to platform_device and use dev_get_drvdata() directly. Signed-off-by: Kefeng Wang [ rjw: Changelog ] Signed-off-by: Rafael J. Wysocki commit 2d3b6db122ce9aa0a0460e618516e6bfa8eef329 Author: Andy Shevchenko Date: Wed Apr 10 18:39:21 2019 +0300 gpiolib: acpi: Respect pin bias setting For now, we don't take into account the pin bias settings supplied by ACPI. This change is targeting the mentioned gap. Signed-off-by: Andy Shevchenko Acked-by: Hans de Goede Reviewed-by: Mika Westerberg Signed-off-by: Linus Walleij commit 606be34440ee3e6da3799691fcab7b69e1ad06cd Author: Andy Shevchenko Date: Wed Apr 10 18:39:20 2019 +0300 gpiolib: acpi: Add acpi_gpio_update_gpiod_lookup_flags() helper This helper consolidates all settings of GPIO descriptor lookup flags and quirks in the future if any. No functional change intended. Signed-off-by: Andy Shevchenko Acked-by: Hans de Goede Reviewed-by: Mika Westerberg Signed-off-by: Linus Walleij commit 24a49543336dbaecb83862a17f6a05d53ec2592f Author: Andy Shevchenko Date: Wed Apr 10 18:39:19 2019 +0300 gpiolib: acpi: Set pin value, based on bias, more accurately ACPI GpioIo() resource may have different bias settings. For now, we distinguish only PullUp() setting in order to configure the initial state of a pin. Take into consideration the rest of the possible choices as well, i.e. PullDown, PullNone and PullDefault, when configuring the initial state of the pin. Signed-off-by: Andy Shevchenko Acked-by: Hans de Goede Reviewed-by: Mika Westerberg Signed-off-by: Linus Walleij commit 80c8d927dacc436963af7c0da711578e8c122db8 Author: Andy Shevchenko Date: Wed Apr 10 18:39:18 2019 +0300 gpiolib: acpi: Change type of dflags Most of the code inside GPIO library is using enum gpiod_flags. Some of the function still operate with unsigned int. In order to be more consistent and better type checking, convert acpi_gpiochip_parse_own_gpio() to use enum gpiod_flags instead of unsigned int. Signed-off-by: Andy Shevchenko Acked-by: Hans de Goede Reviewed-by: Mika Westerberg Signed-off-by: Linus Walleij commit 2d6c06f5a4094ab4ea15b63af72d2dab74e9415a Author: Andy Shevchenko Date: Wed Apr 10 18:39:17 2019 +0300 gpiolib: Introduce GPIO_LOOKUP_FLAGS_DEFAULT Since GPIO library operates with enumerator when it's subject to handle the GPIO lookup flags, it will be better to clearly see what default means. Thus, introduce GPIO_LOOKUP_FLAGS_DEFAULT entry to describe the default assumptions. While here, replace 0 by newly introduced constant. Signed-off-by: Andy Shevchenko Reviewed-by: Mika Westerberg Signed-off-by: Linus Walleij commit fed7026adc7c3a67f992d28d7a5309ff749d3776 Author: Andy Shevchenko Date: Wed Apr 10 18:39:16 2019 +0300 gpiolib: Make use of enum gpio_lookup_flags consistent The library uses enum gpio_lookup_flags to define the possible characteristics of GPIO pin. Since enumerator listed only individual bits the common use of it is in a form of a bitmask of gpio_lookup_flags GPIO_* values. The more correct type for this is unsigned long. Due to above convert all users to use unsigned long instead of enum gpio_lookup_flags except enumerator definition. While here, make field and parameter descriptions consistent as well. Suggested-by: Mika Westerberg Signed-off-by: Andy Shevchenko Reviewed-by: Mika Westerberg Signed-off-by: Linus Walleij commit 4050586b2beec8603d25ad7fc7ba15670143e6ba Author: Andy Shevchenko Date: Wed Apr 10 18:39:15 2019 +0300 gpiolib: Indent entry values of enum gpio_lookup_flags Indent entry values in the enum gpio_lookup_flags for better readability. No functional change. Signed-off-by: Andy Shevchenko Acked-by: Hans de Goede Reviewed-by: Mika Westerberg Signed-off-by: Linus Walleij commit c7d5f21e8d184f255785e02760139037a97fd796 Author: Gustavo A. R. Silva Date: Mon Apr 22 11:39:34 2019 -0500 ACPI: event: replace strcpy() by strscpy() The strcpy() function is being deprecated. Replace it by the safer strscpy() and fix the following Coverity warnings: "You might overrun the 15-character fixed-size string event->bus_id by copying bus_id without checking the length." "You might overrun the 20-character fixed-size string event->device_class by copying device_class without checking the length." Addresses-Coverity-ID: 139001 ("Copy into fixed size buffer") Signed-off-by: Gustavo A. R. Silva Signed-off-by: Rafael J. Wysocki commit a7672c4a3f2957bccc61b126dfc571a41c32aaf0 Author: Alexandre Torgue Date: Wed Apr 10 13:30:23 2019 +0200 pinctrl: stm32: align stm32mp157 pin names Align pins names with names provided in official stm32mp157 datasheet available on st.com. Signed-off-by: Alexandre Torgue Signed-off-by: Linus Walleij commit 6918bf43737cb8b10daab6232c1949bd472e84a2 Author: Alexandre Torgue Date: Wed Apr 10 13:30:22 2019 +0200 pinctrl: stm32: add package information for stm32mp157c This patch adds four new packages support for stm32mp157c die: STM32MP_PKG_AA: LFBGA448 (18*18), 176 IOs STM32MP_PKG_AB: LFBGA354 (16*16), 98 IOs STM32MP_PKG_AC: TFBGA361 (12*12), 148 IOs STM32MP_PKG_AD: TFBGA257 (10*10), 98 IOs Signed-off-by: Alexandre Torgue Signed-off-by: Linus Walleij commit cc528862d961d007d3d72e827897a38b297bc6c8 Author: Alexandre Torgue Date: Wed Apr 10 13:30:21 2019 +0200 pinctrl: stm32: introduce package support A same SoC can be available in several packages. Differences between packages are only the numbers of available balls. In order not to write a driver for each new package, same driver (ex: pinctrl-stm32mp157.c) will be used. This patch introduces the "package" property for each pin. So on a same driver, it will be possible to indicate on which package the pin is available. The package information will be got from the device tree. Signed-off-by: Alexandre Torgue Signed-off-by: Linus Walleij commit 966d9b928f626a54a0c27c0fdae1e3dfe9bab416 Author: Alexandre Torgue Date: Wed Apr 10 13:30:20 2019 +0200 dt-bindings: pinctrl: stm32: add new entry for package information Add "st,package" entry. Possibles values are: -STM32MP_PKG_AA for LFBGA448 (18*18) package -STM32MP_PKG_AB for LFBGA354 (16*16) package -STM32MP_PKG_AC for TFBGA361 (12*12) package -STM32MP_PKG_AD for TFBGA257 (10*10) package Signed-off-by: Alexandre Torgue Signed-off-by: Linus Walleij commit b890d75c4cdc963c96e7774b088120966c23ab8e Author: Amit Daniel Kachhap Date: Tue Apr 23 10:12:34 2019 +0530 KVM: arm64: Add a vcpu flag to control ptrauth for guest A per vcpu flag is added to check if pointer authentication is enabled for the vcpu or not. This flag may be enabled according to the necessary user policies and host capabilities. This patch also adds a helper to check the flag. Reviewed-by: Dave Martin Signed-off-by: Amit Daniel Kachhap Cc: Mark Rutland Cc: Marc Zyngier Cc: Christoffer Dall Cc: kvmarm@lists.cs.columbia.edu Signed-off-by: Marc Zyngier commit bb9cd077e216b886438c5698e1cd75f762ecd3c9 Author: Florian Westphal Date: Wed Apr 17 11:45:13 2019 +0200 xfrm: remove unneeded export_symbols None of them have any external callers, make them static. Signed-off-by: Florian Westphal Signed-off-by: Steffen Klassert commit c53ac41e3720926301c623d6682bb87ce992a3b3 Author: Florian Westphal Date: Tue Apr 16 16:44:39 2019 +0200 xfrm: remove decode_session indirection from afinfo_policy No external dependencies, might as well handle this directly. xfrm_afinfo_policy is now 40 bytes on x86_64. Signed-off-by: Florian Westphal Signed-off-by: Steffen Klassert commit 2e8b4aa816eaaf480fe68b1086614259caf1bf3c Author: Florian Westphal Date: Tue Apr 16 16:44:38 2019 +0200 xfrm: remove init_path indirection from afinfo_policy handle this directly, its only used by ipv6. Signed-off-by: Florian Westphal Signed-off-by: Steffen Klassert commit f24ea52873c726bf7b54318f00ec45050222b367 Author: Florian Westphal Date: Tue Apr 16 16:44:37 2019 +0200 xfrm: remove tos indirection from afinfo_policy Only used by ipv4, we can read the fl4 tos value directly instead. Signed-off-by: Florian Westphal Signed-off-by: Steffen Klassert commit 7e6e185c74dd8a8dc539300c079adc6bc27045d6 Author: Florian Fainelli Date: Mon Apr 22 09:46:44 2019 -0700 net: systemport: Remove need for DMA descriptor All we do is write the length/status and address bits to a DMA descriptor only to write its contents into on-chip registers right after, eliminate this unnecessary step. Signed-off-by: Florian Fainelli Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit 697cd36cda32966bc605bfcf132b0cac4bcd9480 Author: Ido Schimmel Date: Mon Apr 22 09:33:19 2019 +0000 bridge: Fix possible use-after-free when deleting bridge port When a bridge port is being deleted, do not dereference it later in br_vlan_port_event() as it can result in a use-after-free [1] if the RCU callback was executed before invoking the function. [1] [ 129.638551] ================================================================== [ 129.646904] BUG: KASAN: use-after-free in br_vlan_port_event+0x53c/0x5fd [ 129.654406] Read of size 8 at addr ffff8881e4aa1ae8 by task ip/483 [ 129.663008] CPU: 0 PID: 483 Comm: ip Not tainted 5.1.0-rc5-custom-02265-ga946bd73daac #1383 [ 129.672359] Hardware name: Mellanox Technologies Ltd. MSN2100-CB2FO/SA001017, BIOS 5.6.5 06/07/2016 [ 129.682484] Call Trace: [ 129.685242] dump_stack+0xa9/0x10e [ 129.689068] print_address_description.cold.2+0x9/0x25e [ 129.694930] kasan_report.cold.3+0x78/0x9d [ 129.704420] br_vlan_port_event+0x53c/0x5fd [ 129.728300] br_device_event+0x2c7/0x7a0 [ 129.741505] notifier_call_chain+0xb5/0x1c0 [ 129.746202] rollback_registered_many+0x895/0xe90 [ 129.793119] unregister_netdevice_many+0x48/0x210 [ 129.803384] rtnl_delete_link+0xe1/0x140 [ 129.815906] rtnl_dellink+0x2a3/0x820 [ 129.844166] rtnetlink_rcv_msg+0x397/0x910 [ 129.868517] netlink_rcv_skb+0x137/0x3a0 [ 129.882013] netlink_unicast+0x49b/0x660 [ 129.900019] netlink_sendmsg+0x755/0xc90 [ 129.915758] ___sys_sendmsg+0x761/0x8e0 [ 129.966315] __sys_sendmsg+0xf0/0x1c0 [ 129.988918] do_syscall_64+0xa4/0x470 [ 129.993032] entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 129.998696] RIP: 0033:0x7ff578104b58 ... [ 130.073811] Allocated by task 479: [ 130.077633] __kasan_kmalloc.constprop.5+0xc1/0xd0 [ 130.083008] kmem_cache_alloc_trace+0x152/0x320 [ 130.088090] br_add_if+0x39c/0x1580 [ 130.092005] do_set_master+0x1aa/0x210 [ 130.096211] do_setlink+0x985/0x3100 [ 130.100224] __rtnl_newlink+0xc52/0x1380 [ 130.104625] rtnl_newlink+0x6b/0xa0 [ 130.108541] rtnetlink_rcv_msg+0x397/0x910 [ 130.113136] netlink_rcv_skb+0x137/0x3a0 [ 130.117538] netlink_unicast+0x49b/0x660 [ 130.121939] netlink_sendmsg+0x755/0xc90 [ 130.126340] ___sys_sendmsg+0x761/0x8e0 [ 130.130645] __sys_sendmsg+0xf0/0x1c0 [ 130.134753] do_syscall_64+0xa4/0x470 [ 130.138864] entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 130.146195] Freed by task 0: [ 130.149421] __kasan_slab_free+0x125/0x170 [ 130.154016] kfree+0xf3/0x310 [ 130.157349] kobject_put+0x1a8/0x4c0 [ 130.161363] rcu_core+0x859/0x19b0 [ 130.165175] __do_softirq+0x250/0xa26 [ 130.170956] The buggy address belongs to the object at ffff8881e4aa1ae8 which belongs to the cache kmalloc-1k of size 1024 [ 130.184972] The buggy address is located 0 bytes inside of 1024-byte region [ffff8881e4aa1ae8, ffff8881e4aa1ee8) Fixes: 9c0ec2e7182a ("bridge: support binding vlan dev link state to vlan member bridge ports") Signed-off-by: Ido Schimmel Cc: Mike Manning Acked-by: Nikolay Aleksandrov Acked-by: Mike Manning Signed-off-by: David S. Miller commit a6cbcb7793596eb8b8dd9564e534c5cfc0a4fdbc Author: Crag.Wang Date: Mon Apr 22 13:03:43 2019 +0800 r8152: sync sa_family with the media type of network device Without this patch the socket address family sporadically gets wrong value ends up the dev_set_mac_address() fails to set the desired MAC address. Fixes: 25766271e42f ("r8152: Refresh MAC address during USBDEVFS_RESET") Signed-off-by: Crag.Wang Reviewed-by: Jakub Kicinski Reviewed-By: Mario Limonciello Signed-off-by: David S. Miller commit 6ef7c11b31a57e43062da15a36fac54fcb97b533 Author: Bjorn Andersson Date: Tue Feb 5 21:13:30 2019 -0800 arm64: dts: sdm845: Introduce ADSP and CDSP PAS nodes Add the Audio DSP (ADSP) and Compute DSP (CDSP) nodes for TrustZone based remoteproc, supporting booting these cores on e.g. the MTP, and enable the same for the MTP. Tested-by: Sibi Sankar Reviewed-by: Sibi Sankar Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross commit bdecbe6b48a5440dde31274ef7ab44420175c19d Author: Bjorn Andersson Date: Tue Feb 5 21:13:29 2019 -0800 arm64: dts: qcom: sdm845: Define rmtfs memory Define the rmtfs memory node. As the memory region specified in version 10 of the memory map is only 1MB a chunk of unallocated memory is chosen. Tested-by: Sibi Sankar Reviewed-by: Sibi Sankar Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross commit a23b5378b26cbee5dcf3b3df3b0f5f533162ccb6 Author: Bjorn Andersson Date: Tue Feb 5 21:13:28 2019 -0800 arm64: dts: qcom: sdm845: Update reserved memory map Update existing and add missing regions to the reserved memory map, as described in version 10. Reviewed-by: Sibi Sankar Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross commit 71278b058a9f8752e51030e363b7a7306938f64e Author: Evan Green Date: Thu Mar 21 10:17:56 2019 -0700 arm64: dts: sdm845: Add UFS PHY reset Wire up the reset controller in the Qcom UFS controller for the PHY. This will be used to toggle PHY reset during initialization of the PHY. Reviewed-by: Stephen Boyd Signed-off-by: Evan Green Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross commit 6f97955fd2741ac4d73c1ba328870253ded680c8 Merge: 7e5ebd0b785c 7a1ff9f45be5 Author: David S. Miller Date: Mon Apr 22 22:09:33 2019 -0700 Merge branch 'mlxsw-Shared-buffer-improvements' Ido Schimmel says: ==================== mlxsw: Shared buffer improvements This patchset includes two improvements with regards to shared buffer configuration in mlxsw. The first part of this patchset forbids the user from performing illegal shared buffer configuration that can result in unnecessary packet loss. In order to better communicate these configuration failures to the user, extack is propagated from devlink towards drivers. This is done in patches #1-#8. The second part of the patchset deals with the shared buffer configuration of the CPU port. When a packet is trapped by the device, it is sent across the PCI bus to the attached host CPU. From the device's perspective, it is as if the packet is transmitted through the CPU port. While testing traffic directed at the CPU it became apparent that for certain packet sizes and certain burst sizes, the current shared buffer configuration of the CPU port is inadequate and results in packet drops. The configuration is adjusted by patches #9-#14 that create two new pools - ingress & egress - which are dedicated for CPU traffic. ==================== Acked-by: Jakub Kicinski Signed-off-by: David S. Miller commit 7a1ff9f45be5f947ec2d7b2a4d7ffe28d8ddff14 Author: Ido Schimmel Date: Mon Apr 22 12:08:56 2019 +0000 mlxsw: spectrum_buffers: Adjust CPU port shared buffer egress quotas Switch the CPU port to use the new dedicated egress pool instead the previously used egress pool which was shared with normal front panel ports. Add per-port quotas for the amount of traffic that can be buffered for the CPU port and also adjust the per-{port, TC} quotas. Signed-off-by: Ido Schimmel Acked-by: Jiri Pirko Reviewed-by: Petr Machata Signed-off-by: David S. Miller commit 6d28725c4de8a69004b767a25a405ca955360c37 Author: Ido Schimmel Date: Mon Apr 22 12:08:55 2019 +0000 mlxsw: spectrum_buffers: Allow skipping ingress port quota configuration The CPU port is used to transmit traffic that is trapped to the host CPU. It is therefore irrelevant to define ingress quota for it. Add a 'skip_ingress' argument to the function tasked with configuring per-port quotas, so that ingress quotas could be skipped in case the passed local port is the CPU port. Signed-off-by: Ido Schimmel Reviewed-by: Petr Machata Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit 24a7cc1ef6d926a50dd60a90e012d54493496fc3 Author: Ido Schimmel Date: Mon Apr 22 12:08:54 2019 +0000 mlxsw: spectrum_buffers: Split business logic from mlxsw_sp_port_sb_pms_init() The function is used to set the per-port shared buffer quotas. Currently, these quotas are only set for front panel ports, but a subsequent patch will configure these quotas for the CPU port as well. The configuration required for the CPU port is a bit different than that of the front panel ports, so split the business logic into a separate function which will be called with different parameters for the CPU port. No functional changes intended. Signed-off-by: Ido Schimmel Reviewed-by: Petr Machata Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit 50b5b90514a8306c4a8e33f967f15bac5c9ac1f5 Author: Ido Schimmel Date: Mon Apr 22 12:08:52 2019 +0000 mlxsw: spectrum_buffers: Use new CPU ingress pool for control packets Use the new ingress pool that was added in the previous patch for control packets (e.g., STP, LACP) that are trapped to the CPU. The previous management pool is no longer necessary and therefore its size is set to 0. The maximum quota for traffic towards the CPU is increased to 50% of the free space in the new ingress pool and therefore the reserved space is reduced by half, to 10KB - in both the shared and headroom buffer. This allows for more efficient utilization of the shared buffer as reserved space cannot be used for other purposes. Signed-off-by: Ido Schimmel Acked-by: Jiri Pirko Reviewed-by: Petr Machata Signed-off-by: David S. Miller commit 265c49b4b91b2ed0c3dd01cc24d1955934ff6095 Author: Ido Schimmel Date: Mon Apr 22 12:08:51 2019 +0000 mlxsw: spectrum_buffers: Add pools for CPU traffic Packets that are trapped to the CPU are transmitted through the CPU port to the attached host. The CPU port is therefore like any other port and needs to have shared buffer configuration. The maximum quotas configured for the CPU are provided using dynamic threshold and cannot be changed by the user. In order to make sure that these thresholds are always valid, the configuration of the threshold type of these pools is forbidden. Signed-off-by: Ido Schimmel Reviewed-by: Petr Machata Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit 857f138f04a7bf7749c540293ea9b6091a491de7 Author: Ido Schimmel Date: Mon Apr 22 12:08:50 2019 +0000 mlxsw: spectrum_buffers: Remove assumption about pool order The code currently assumes that ingress pools have lower indices than egress pools. This makes it impossible to add more ingress pools without breaking user configuration that relies on a certain pool index to correspond to an egress pool. Remove such assumptions from the code, so that more ingress pools could be added by subsequent patches. Signed-off-by: Ido Schimmel Reviewed-by: Petr Machata Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit f1aaeacdae2bc5e8ef7343674b6cb34d516a8110 Author: Ido Schimmel Date: Mon Apr 22 12:08:49 2019 +0000 mlxsw: spectrum_buffers: Forbid changing multicast TCs' attributes Commit e83c045e53d7 ("mlxsw: spectrum_buffers: Configure MC pool") configured the threshold of the multicast TCs as infinite so that the admission of multicast packets is only depended on per-switch priority threshold. Forbid the user from changing the thresholds of these multicast TCs and their binding to a different pool. Signed-off-by: Ido Schimmel Acked-by: Jiri Pirko Reviewed-by: Petr Machata Signed-off-by: David S. Miller commit 51e15a49784cac783b88f458c27293e479db4bb1 Author: Ido Schimmel Date: Mon Apr 22 12:08:47 2019 +0000 mlxsw: spectrum_buffers: Forbid changing threshold type of first egress pool Multicast packets have three egress quotas: * Per egress port * Per egress port and traffic class * Per switch priority The limits on the switch priority are not exposed to the user and specified as dynamic threshold on the first egress pool. Forbid changing the threshold type of the first egress pool so that these limits are always valid. Signed-off-by: Ido Schimmel Acked-by: Jiri Pirko Reviewed-by: Petr Machata Signed-off-by: David S. Miller commit cce7acca8a006c9f44aa3522239aa7f5709f4fac Author: Ido Schimmel Date: Mon Apr 22 12:08:46 2019 +0000 mlxsw: spectrum_buffers: Forbid configuration of multicast pool Commit e83c045e53d7 ("mlxsw: spectrum_buffers: Configure MC pool") added a dedicated pool for multicast traffic. The pool is visible to the user so that it would be possible to monitor its occupancy, but its configuration should be forbidden in order to maintain its intended operation. Signed-off-by: Ido Schimmel Reviewed-by: Petr Machata Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit f7936d0bcfe4ccb0e4c53fd0dfde0206b071d7ae Author: Ido Schimmel Date: Mon Apr 22 12:08:45 2019 +0000 mlxsw: spectrum_buffers: Add ability to veto TC's configuration Subsequent patches are going to need to veto changes in certain TCs' binding and threshold configurations. Add fields to the TC's struct that indicate if the TC can be bound to a different pool and whether its threshold can change and enforce that. Signed-off-by: Ido Schimmel Acked-by: Jiri Pirko Reviewed-by: Petr Machata Signed-off-by: David S. Miller commit 0636f4de791f4e2b1aaab0a92cced4e0c6c191f1 Author: Ido Schimmel Date: Mon Apr 22 12:08:43 2019 +0000 mlxsw: spectrum_buffers: Add ability to veto pool's configuration Subsequent patches are going to need to veto changes in certain pools' size and / or threshold type (mode). Add two fields to the pool's struct that indicate if either of these attributes is allowed to change and enforce that. Signed-off-by: Ido Schimmel Acked-by: Jiri Pirko Reviewed-by: Petr Machata Signed-off-by: David S. Miller commit 93d3668c027d8f6dd55d0b904d88675726662d99 Author: Ido Schimmel Date: Mon Apr 22 12:08:42 2019 +0000 mlxsw: spectrum_buffers: Use defines for pool indices The pool indices are currently hard coded throughout the code, which makes the code hard to follow and extend. Overcome this by using defines for the pool indices. Signed-off-by: Ido Schimmel Reviewed-by: Petr Machata Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit 8f6862065d8be320ba45a52c8a361b580722fc18 Author: Ido Schimmel Date: Mon Apr 22 12:08:41 2019 +0000 mlxsw: spectrum_buffers: Add extack messages for invalid configurations Add extack messages to better communicate invalid configuration to the user. Example: # devlink sb pool set pci/0000:01:00.0 pool 0 size 104857600 thtype dynamic Error: mlxsw_spectrum: Exceeded shared buffer size. devlink answers: Invalid argument Signed-off-by: Ido Schimmel Acked-by: Jiri Pirko Reviewed-by: Petr Machata Signed-off-by: David S. Miller commit f2ad1a522e9817fba7799008e0a8dc6f8a32bf7d Author: Ido Schimmel Date: Mon Apr 22 12:08:39 2019 +0000 net: devlink: Add extack to shared buffer operations Add extack to shared buffer set operations, so that meaningful error messages could be propagated to the user. Signed-off-by: Ido Schimmel Acked-by: Jiri Pirko Reviewed-by: Petr Machata Cc: Jakub Kicinski Signed-off-by: David S. Miller commit 38a829a389e33d571a3c599fa762d88b3d1f72c4 Author: Nicolas Ferre Date: Wed Apr 3 12:23:59 2019 +0200 dmaengine: at_xdmac: only monitor overflow errors for peripheral xfer The overflow error flag (ROI: Request Overflow Error) is only relevant for the case when the channel handles a peripheral synchronized transfer. Not in the case of memory to memory transfer where there is no hardware request signal. Remove the use of this interrupt source in such a case. It's based on the first descriptor which holds the configuration for the whole linked list transfer. Signed-off-by: Nicolas Ferre Acked-by: Ludovic Desroches Signed-off-by: Vinod Koul commit 223a4f4cfe93de2fce47a8f1f719cf4d0da4e3e6 Author: Nicolas Ferre Date: Wed Apr 3 12:23:58 2019 +0200 dmaengine: at_xdmac: enhance channel errors handling in tasklet Complement the identification of errors with stopping the channel and dumping the descriptor that led to the error case. Signed-off-by: Nicolas Ferre Acked-by: Ludovic Desroches Signed-off-by: Vinod Koul commit e2c114c06da2d9ffad5b16690abf008d6696f689 Author: Nicolas Ferre Date: Wed Apr 3 12:23:57 2019 +0200 dmaengine: at_xdmac: remove BUG_ON macro in tasklet Even if this case shouldn't happen when controller is properly programmed, it's still better to avoid dumping a kernel Oops for this. As the sequence may happen only for debugging purposes, log the error and just finish the tasklet call. Signed-off-by: Nicolas Ferre Acked-by: Ludovic Desroches Signed-off-by: Vinod Koul commit 7e5ebd0b785c5e1dbae685d56017a2bf01bad39f Merge: 3c618c1dbb88 15253b4a719c Author: David S. Miller Date: Mon Apr 22 21:51:00 2019 -0700 Merge branch 'net-clean-up-needless-use-of-module-infrastructure' Paul Gortmaker says: ==================== clean up needless use of module infrastructure People can embed modular includes and modular exit functions into code that never use any of it, and they won't get any errors or warnings. Using modular infrastructure in non-modules might seem harmless, but some of the downfalls this leads to are: (1) it is easy to accidentally write unused module_exit removal code (2) it can be misleading when reading the source, thinking a driver can be modular when the Makefile and/or Kconfig prohibit it (3) an unused include of the module.h header file will in turn include nearly everything else; adding a lot to CPP overhead. (4) it gets copied/replicated into other drivers and spreads quickly. As a data point for #3 above, an empty C file that just includes the module.h header generates over 750kB of CPP output. Repeating the same experiment with init.h and the result is less than 12kB; with export.h it is only about 1/2kB; with both it still is less than 12kB. One driver in this series gets the module.h ---> init.h+export.h conversion. Worse, are headers in include/linux that in turn include as they can impact a whole fleet of drivers, or a whole subsystem, so special care should be used in order to avoid that. Such headers should only include what they need to be stand-alone; they should not be trying to anticipate the various header needs of their possible end users. In this series, four include/linux headers have module.h removed from them because they don't strictly need it. Then three chunks of net related code have modular infrastructure that isn't used, removed. There are no runtime changes, so the biggest risk is a genuine consumer of module.h content relying on implicitly getting it from one of the include/linux instances removed here - thus resulting in a build fail. With that in mind, allmodconfig build testing was done on x86-64, arm64, x86-32, arm. powerpc, and mips on linux-next (and hence net-next). ==================== Signed-off-by: David S. Miller commit 15253b4a719c0fc6ea8e5f5f3460d841f73ec1c9 Author: Paul Gortmaker Date: Sat Apr 20 23:29:48 2019 -0400 net: strparser: make it explicitly non-modular The Kconfig currently controlling compilation of this code is: net/strparser/Kconfig:config STREAM_PARSER net/strparser/Kconfig: def_bool n ...meaning that it currently is not being built as a module by anyone. Lets remove the modular code that is essentially orphaned, so that when reading the driver there is no doubt it is builtin-only. Since module_init translates to device_initcall in the non-modular case, the init ordering remains unchanged with this commit. For clarity, we change the fcn name mod_init to dev_init at the same time. We replace module.h with init.h and export.h ; the latter since this file exports some syms. Cc: "David S. Miller" Cc: Alexei Starovoitov Cc: Daniel Borkmann Cc: Martin KaFai Lau Cc: Song Liu Cc: Yonghong Song Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit 3557b3fdeefacdd111469f90db1a0602902c9698 Author: Paul Gortmaker Date: Sat Apr 20 23:29:47 2019 -0400 net: bpfilter: dont use module_init in non-modular code The Kconfig controlling this code is: bpfilter/Kconfig:menuconfig BPFILTER bpfilter/Kconfig: bool "BPF based packet filtering framework (BPFILTER)" Since it isn't a module, we shouldn't use module_init(). Instead we use device_initcall() - which is exactly what module_init() defaults to for non-modular code/builds. We don't remove from the includes since this file does a request_module() and hence is a valid user of that header file, even though it is not modular itself. Cc: "David S. Miller" Cc: Alexey Kuznetsov Cc: Hideaki YOSHIFUJI Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit 9628495d507709053b40cb631eee56708ff225f2 Author: Paul Gortmaker Date: Sat Apr 20 23:29:46 2019 -0400 cgroup: net: remove left over MODULE_LICENSE tag The Kconfig currently controlling compilation of this code is: net/Kconfig:config CGROUP_NET_PRIO net/Kconfig: bool "Network priority cgroup" ...meaning that it currently is not being built as a module by anyone, as module support was discontinued in 2014. We delete the MODULE_LICENSE tag since all that information is already contained at the top of the file in the comments. We don't delete module.h from the includes since it was no longer there to begin with. Cc: "David S. Miller" Cc: Tejun Heo Cc: "Rosen, Rami" Cc: Daniel Wagner Cc: netdev@vger.kernel.org Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit a130f9b27545f56880034c345da9a4efc2ba2b24 Author: Paul Gortmaker Date: Sat Apr 20 23:29:45 2019 -0400 net: tc_act: drop include of module.h from tc_ife.h Ideally, header files under include/linux shouldn't be adding includes of other headers, in anticipation of their consumers, but just the headers needed for the header itself to pass parsing with CPP. The module.h is particularly bad in this sense, as it itself does include a whole bunch of other headers, due to the complexity of module support. Since tc_ife.h is not going into a module struct looking for specific fields, we can just let it know that module is a struct, just like about 60 other include/linux headers already do. Cc: Jamal Hadi Salim Cc: Cong Wang Cc: Jiri Pirko Cc: "David S. Miller" Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit 113e63286697893127c3ee83471b45ad0cf8d75f Author: Paul Gortmaker Date: Sat Apr 20 23:29:44 2019 -0400 net: fib: drop include of module.h from fib_notifier.h Ideally, header files under include/linux shouldn't be adding includes of other headers, in anticipation of their consumers, but just the headers needed for the header itself to pass parsing with CPP. The module.h is particularly bad in this sense, as it itself does include a whole bunch of other headers, due to the complexity of module support. Since fib_notifier.h is not going into a module struct looking for specific fields, we can just let it know that module is a struct, just like about 60 other include/linux headers already do. Cc: "David S. Miller" Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit c517796ea91d11dd3f0ae7ff61a12fe5d4941eb0 Author: Paul Gortmaker Date: Sat Apr 20 23:29:43 2019 -0400 net: ife: drop include of module.h from net/ife.h Ideally, header files under include/linux shouldn't be adding includes of other headers, in anticipation of their consumers, but just the headers needed for the header itself to pass parsing with CPP. The module.h is particularly bad in this sense, as it itself does include a whole bunch of other headers, due to the complexity of module support. There doesn't appear to be anything in net/ife.h that is module related, and build coverage doesn't appear to show any other files/drivers relying implicitly on getting it from here. So it appears we are simply free to just remove it in this case. Cc: Yotam Gigi Cc: Jamal Hadi Salim Cc: "David S. Miller" Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit a79eda3aaf30bc73752487fff5160cf67e99e313 Author: Paul Gortmaker Date: Sat Apr 20 23:29:42 2019 -0400 net: psample: drop include of module.h from psample.h Ideally, header files under include/linux shouldn't be adding includes of other headers, in anticipation of their consumers, but just the headers needed for the header itself to pass parsing with CPP. The module.h is particularly bad in this sense, as it itself does include a whole bunch of other headers, due to the complexity of module support. There doesn't appear to be anything in psample.h that is module related, and build coverage doesn't appear to show any other files/drivers relying implicitly on getting it from here. So it appears we are simply free to just remove it in this case. Cc: Yotam Gigi Cc: "David S. Miller" Signed-off-by: Paul Gortmaker Signed-off-by: David S. Miller commit 3c618c1dbb8859625c643121ac80af9a6723533f Author: David Ahern Date: Sat Apr 20 09:28:20 2019 -0700 net: Rename net/nexthop.h net/rtnh.h The header contains rtnh_ macros so rename the file accordingly. Allows a later patch to use the nexthop.h name for the new nexthop code. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 7e5f4cdb284be5ff862f84ccda084e2847f73fbb Author: David Ahern Date: Sat Apr 20 09:27:27 2019 -0700 ipv6: Remove fib6_info_nh_lwt fib6_info_nh_lwt is no longer used; remove it. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 0b13c9bb96f6edf03018030f07929a16b4dd77a6 Author: Daniel T. Lee Date: Sun Apr 21 00:50:42 2019 +0900 include/net/tcp.h: whitespace cleanup at tcp_v4_check This patch makes trivial whitespace fix to the function tcp_v4_check at include/net/tcp.h file. It has stylistic issue, which is "space required after that ','" and it can be confirmed with ./scripts/checkpatch.pl tool. ERROR: space required after that ',' (ctx:VxV) #29: FILE: include/net/tcp.h:1317: + return csum_tcpudp_magic(saddr,daddr,len,IPPROTO_TCP,base); ^ Signed-off-by: Daniel T. Lee Signed-off-by: David S. Miller commit 2843ba2ec75948e274d2c4f0a9390980e68a6461 Merge: be659b8d3c79 f79b464fd6b5 Author: David S. Miller Date: Mon Apr 22 21:35:55 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next Alexei Starovoitov says: ==================== pull-request: bpf-next 2019-04-22 The following pull-request contains BPF updates for your *net-next* tree. The main changes are: 1) allow stack/queue helpers from more bpf program types, from Alban. 2) allow parallel verification of root bpf programs, from Alexei. 3) introduce bpf sysctl hook for trusted root cases, from Andrey. 4) recognize var/datasec in btf deduplication, from Andrii. 5) cpumap performance optimizations, from Jesper. 6) verifier prep for alu32 optimization, from Jiong. 7) libbpf xsk cleanup, from Magnus. 8) other various fixes and cleanups. ==================== Signed-off-by: David S. Miller commit 9d1c2f067e50bebb521ed6ced49ddf53bb1deba8 Author: Joseph Salisbury Date: Tue Apr 23 03:37:07 2019 +0000 Input: hyperv-keyboard - add module description Signed-off-by: Joseph Salisbury Signed-off-by: Dmitry Torokhov commit 841cb0f3e4ee06a86c0bafd79e3e8396db6e93f9 Author: Jean Delvare Date: Tue Apr 23 03:30:58 2019 +0000 Input: olpc_apsp - depend on ARCH_MMP The OLPC XO-1.75 and XO-4 are ARM-based laptops, using the Marvell MMP architecture, so don't present this driver on other architectures except for build-testing purposes. Signed-off-by: Jean Delvare Reviewed-by: Lubomir Rintel Acked-by: Pavel Machek Signed-off-by: Dmitry Torokhov commit e2c7f52bcdaf6ee24447cd7bc6100702c0b0f777 Author: Andrey Smirnov Date: Sun Apr 14 11:34:00 2019 -0700 dt-bindings: iio: imx7d-adc: Add #io-channel-cells to required Add #io-channel-cells to list of required properties. Needed to be able to reference that node by phandle. Signed-off-by: Andrey Smirnov Cc: Shawn Guo Cc: Chris Healy Cc: Andrew Lunn Cc: Fabio Estevam Cc: Rob Herring Cc: linux-kernel@vger.kernel.org Cc: devicetree@vger.kernel.org Signed-off-by: Shawn Guo commit 4171797ff78fa1f351b890e18411b7959b506149 Author: Andrey Smirnov Date: Sun Apr 14 11:34:01 2019 -0700 ARM: dts: imx7s: Specify #io-channel-cells in ADC nodes Specify #io-channel-cells in ADC nodes. Needed to be able to reference them by phandle. Signed-off-by: Andrey Smirnov Cc: Shawn Guo Cc: Chris Healy Cc: Andrew Lunn Cc: Fabio Estevam Cc: Rob Herring Cc: linux-kernel@vger.kernel.org Cc: devicetree@vger.kernel.org Signed-off-by: Shawn Guo commit f79b464fd6b56b6256de43bc4c7d5968c0e52968 Merge: 3b8802446d27 45a73c17bfb9 Author: Daniel Borkmann Date: Tue Apr 23 01:50:44 2019 +0200 Merge branch 'bpf-verifier-lock' Alexei Starovoitov says: ==================== Allow the bpf verifier to run in parallel for root. ==================== Acked-by: Andrii Nakryiko Signed-off-by: Daniel Borkmann commit 45a73c17bfb92c3ceebedc80a750ef2c2931c26b Author: Alexei Starovoitov Date: Fri Apr 19 07:44:55 2019 -0700 bpf: drop bpf_verifier_lock Drop bpf_verifier_lock for root to avoid being DoS-ed by unprivileged. The BPF verifier is now fully parallel. All unpriv users are still serialized by bpf_verifier_lock to avoid exhausting kernel memory by running N parallel verifications. Signed-off-by: Alexei Starovoitov Signed-off-by: Daniel Borkmann commit 7df737e991069d75eec1ded1c8b37e81b8c54df9 Author: Alexei Starovoitov Date: Fri Apr 19 07:44:54 2019 -0700 bpf: remove global variables Move three global variables protected by bpf_verifier_lock into 'struct bpf_verifier_env' to allow parallel verification. Signed-off-by: Alexei Starovoitov Signed-off-by: Daniel Borkmann commit 945c941fcd82bac3a8ea2b89c635651f323bd609 Author: Brian Foster Date: Wed Apr 17 08:48:24 2019 -0700 xfs: make tr_growdata a permanent transaction The growdata transaction is used by growfs operations to increase the data size of the filesystem. Part of this sequence involves extending the size of the last preexisting AG in the fs, if necessary. This is implemented by freeing the newly available physical range to the AG. tr_growdata is not a permanent transaction, however, and block allocation transactions must be permanent to handle deferred frees of AGFL blocks. If the grow operation extends an existing AG that requires AGFL fixing, assert failures occur due to a populated dfops list on a non-permanent transaction and the AGFL free does not occur. This is reproduced (rarely) by xfs/104. Change tr_growdata to a permanent transaction with a default log count. This increases initial transaction reservation size, but growfs is an infrequent and non-performance critical operation and so should have minimal impact. Reported-by: Darrick J. Wong Signed-off-by: Brian Foster Reviewed-by: Darrick J. Wong [darrick: add a comment to the assert] Signed-off-by: Darrick J. Wong commit d917fb876f6eaeeea8a2b620d2a266ce26372f4d Author: Shuah Khan Date: Fri Apr 19 16:31:28 2019 -0600 selftests: build and run gpio when output directory is the src dir Build and run gpio when output directory is the src dir. gpio has dependency on tools/gpio and builds tools/gpio objects in the src directory in all cases making the src repo dirty even when object relocation is specified. This fixes the following commands from generating gpio objects in the source repository: make O=dir kselftest export KBUILD_OUTPUT=dir; make kselftest make O=dir -C tools/testing/selftests expoert KBUILD_OUTPUT=dir; make -C tools/testing/selftests The following commands still build gpio objects in the source repo (gpio Makefile needs to fixed): make O=dir kselftest TARGETS="gpio" export KBUILD_OUTPUT=dir; make kselftest TARGETS="gpio" make O=dir -C tools/testing/selftests TARGETS="gpio" expoert KBUILD_OUTPUT=dir; make -C tools/testing/selftests TARGETS="gpio" Signed-off-by: Shuah Khan commit 92f6f2d7f5c844faebf5b47d4a8f15de519b48c2 Author: Vishal Verma Date: Mon Mar 18 19:06:29 2019 -0600 tools/testing/nvdimm: add watermarks for dax_pmem* modules Add nfit_test 'watermarks' for the dax_pmem, dax_pmem_core, and dax_pmem_compat modules. This causes the nfit_test module to fail loading in case any of these modules are also not overridden with the ldconfig wrapped modules. Without this, nfit_test would sometimes fail creation of device-dax namespaces on the nfit_test_bus with an unhelpful error log such as: dax_pmem dax5.0: could not reserve metadata dax_pmem: probe of dax5.0 failed with error -16 Which was caused due to the unwrapped version of devm_request_mem_region() being called. Cc: Dan Williams Signed-off-by: Vishal Verma Signed-off-by: Dan Williams commit d521fbaeda726ef3a9dad91c0239e7207d9864b7 Author: Vishal Verma Date: Mon Mar 18 16:53:37 2019 -0600 dax/pmem: Fix whitespace in dax_pmem A few lines were whitespace damaged, with spaces at the start instead of tabs. This was noticed while debugging an nfit_test failure, so fix them. Cc: Dan Williams Signed-off-by: Vishal Verma Signed-off-by: Dan Williams commit 3b8802446d27522cd6d32178ba975cc492611f31 Author: Alexei Starovoitov Date: Wed Apr 17 18:27:01 2019 -0700 bpf: document the verifier limits Document the verifier limits. Signed-off-by: Alexei Starovoitov Acked-by: Yonghong Song Signed-off-by: Daniel Borkmann commit f786dbbe6f2683d6ed0823f3ee53203afeea1ec7 Author: Mauro Carvalho Chehab Date: Mon Apr 22 08:14:55 2019 -0300 docs: hwmon: remove the extension from .rst files On almost all places, we're including ReST files without the extension. Let's remove the extension here as well, in order to use just one standard. Suggested-by: Jani Nikula Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Guenter Roeck commit e57695e772e87e270ee451483b76ba1ccc1f1cfc Author: Mauro Carvalho Chehab Date: Mon Apr 22 14:39:37 2019 -0300 docs: hwmon: convert three docs to ReST format Those three new drivers were missed on the initial conversion to ReST format. So: - Rename them to .rst; - Add them to the hwmon index.rst index; - add some blank lines at the "Supported systems:" part, in order to allow Sphinx to properly identify new lines, suppressing warnings and avoid it to output some random lines in bold; - When multiple authors are involved, change the authors part to a list, in order to avoid adding blank lines. - adjust the table cells (one of the tables seemed to be assuming that tab is 4 positions instead of 8) and add the table markup. - be sure that the section markups have the same number of characters as the section title. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Guenter Roeck commit c3bdd5e65185f46150b3bac103b3854040487857 Merge: d9cb06759eca 9e98c678c2d6 Author: Saeed Mahameed Date: Mon Apr 22 15:25:39 2019 -0700 Merge tag 'v5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into mlx5-next Linux 5.1-rc1 We forgot to reset the branch last merge window thus mlx5-next is outdated and still based on 5.0-rc2. This merge commit is needed to sync mlx5-next branch with 5.1-rc1. Signed-off-by: Saeed Mahameed commit 6afb7e26978da5e86e57e540fdce65c8b04f398a Author: James Prestwood Date: Mon Jan 7 13:32:48 2019 -0800 PCI: Mark Atheros AR9462 to avoid bus reset When using PCI passthrough with this device, the host machine locks up completely when starting the VM, requiring a hard reboot. Add a quirk to avoid bus resets on this device. Fixes: c3e59ee4e766 ("PCI: Mark Atheros AR93xx to avoid bus reset") Link: https://lore.kernel.org/linux-pci/20190107213248.3034-1-james.prestwood@linux.intel.com Signed-off-by: James Prestwood Signed-off-by: Bjorn Helgaas CC: stable@vger.kernel.org # v3.14+ commit 6c88d73515c444323c57fba9069456b819700e79 Merge: 4d25339e32a1 b2176a1dfb51 Author: Jens Axboe Date: Mon Apr 22 13:57:24 2019 -0600 Merge branch 'md-next' of https://github.com/liu-song-6/linux into for-5.2/block Pull MD fixes from Song. * 'md-next' of https://github.com/liu-song-6/linux: md/raid: raid5 preserve the writeback action after the parity check Revert "Don't jump to compute_result state from check_result state" md: return -ENODEV if rdev has no mddev assigned block: fix use-after-free on gendisk commit 5fb58c9e2fb11edd12379b20be01ee54a7bac026 Author: Mark Bloch Date: Thu Mar 28 15:46:27 2019 +0200 RDMA/mlx5: Don't create IB representors when in multiport RoCE mode Switchdev mode and mutiport RoCE mode aren't compatible at this point. Don't create IB reps when a user switches to switchdev mode and the driver operates in that mode. Signed-off-by: Mark Bloch Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit d3b5cc1cd996ce84d362b3c15f940346603741b9 Author: Mark Bloch Date: Thu Mar 28 15:46:26 2019 +0200 RDMA/mlx5: Initialize roce port info before multiport master init When working in mutliport RoCE mode it is possible to attach a slave before the master. In that case the slave is waiting for a master to be attached. When the master is attached it goes over the list of waiting slaves, finds a slave that is compatible and tries to bind it to itself. The call stack is: mlx5_ib_init_multiport_master() -> mlx5_ib_bind_slave_port() In the bind function we will create a netdev notifier, but this is done before we initialize the RoCE structure (this is done at a later stage by the master in the ROCE stage). Once events are delivered to that notifier we will use mlx5_ib_get_native_port_mdev() to get the actual port and as the native port is zero we will access an invalid index in the port structure. Move the RoCE structure initialization to an earlier stage. Fixes: 32f69e4be269 ("{net, IB}/mlx5: Manage port association for multiport RoCE") Signed-off-by: Mark Bloch Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 7f575103b04246246e76de4f182475174124dd03 Author: Mark Bloch Date: Thu Mar 28 15:46:25 2019 +0200 RDMA/mlx5: Allow DEVX and raw creation flow on reps Remove the limitations that were in place and provide support for DEVX and raw flow creation on reps. Signed-off-by: Mark Bloch Reviewed-by: Maor Gottlieb Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 56e5acd405fadac9b1eeacaac084c945b3f23b37 Author: Maor Gottlieb Date: Thu Mar 28 15:46:24 2019 +0200 RDMA/mlx5: Add query e-switch vport context to devx white list Add MLX5_OP_QUERY_ESW_VPORT_CONTEXT to devx white list. It will be allowed only if HCA_CAP.eswitch_manager==1. Signed-off-by: Maor Gottlieb Reviewed-by: Maor Gottlieb Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 52438be4411271c5e93da54da340c3566b0e4bef Author: Mark Bloch Date: Thu Mar 28 15:46:23 2019 +0200 RDMA/mlx5: Allow inserting a steering rule to the FDB Allow this only via mlx5 raw create flow API, legacy verbs are not supported. To accommodate that, we add a new attribute to matcher creation to indicate the type of flow table to be used. MLX5_IB_ATTR_FLOW_MATCHER_FT_TYPE With this new attribute MLX5_IB_ATTR_FLOW_MATCHER_FLOW_FLAGS is no longer needed, we keep it for compatibility but at most only a single attribute can be passed of the two. When inserting a flow rule to the FDB we require that a DEVX FT is provided as a destination, no other configuration is allowed. Signed-off-by: Mark Bloch Reviewed-by: Maor Gottlieb Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 3b70508a6bfbdc78b565e9da22fd98483263494e Author: Mark Bloch Date: Thu Mar 28 15:46:22 2019 +0200 RDMA/mlx5: Create flow table with max size supported Instead of failing the request, just use the supported number of flow entries. Signed-off-by: Mark Bloch Reviewed-by: Maor Gottlieb Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 13a4376568f6e3a6df21e4c116b027101e28f954 Author: Mark Bloch Date: Thu Mar 28 15:46:21 2019 +0200 RDMA/mlx5: Access the prio bypass inside the FDB flow table namespace Now that we have a specific prio inside the FDB namespace allow retrieving it from the RDMA side. Signed-off-by: Mark Bloch Reviewed-by: Maor Gottlieb Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit a88a7b3eb076ade6205176915fd2ee73a60f4a32 Author: Bjorn Helgaas Date: Sat Mar 30 09:41:35 2019 -0500 vfio: Use dev_printk() when possible Use dev_printk() when possible to make messages consistent with other device-related messages. Signed-off-by: Bjorn Helgaas Acked-by: Eric Auger Reviewed-by: Eric Auger Signed-off-by: Alex Williamson commit 2e5b8a01165e4fe57ec396961daae38713edce35 Author: Parav Pandit Date: Mon Apr 15 13:22:51 2019 +0300 RDMA/core: Add a netlink command to change net namespace of rdma device Provide an option to change the net namespace of a rdma device through a netlink command. When multiple rdma devices exists in a system, and when containers are used, this will limit rdma device visibility to a specified net namespace. An example command to change net namespace of mlx5_1 device to the previously created net namespace 'foo' is: $ ip netns add foo $ rdma dev set mlx5_1 netns foo Signed-off-by: Parav Pandit Signed-off-by: Jason Gunthorpe commit decbc7a6b0073f55b200d80a3ecf5a5e205edd06 Author: Parav Pandit Date: Mon Apr 15 13:22:50 2019 +0300 RDMA/core: Introduce a helper function to change net namespace of rdma device Introduce a helper function that changes rdma device's net namespace which performs mini disable/enable sequence to have device visible only in assigned net namespace. Device unregistration, device rename and device change net namespace may be invoked concurrently. (a) device unregistration needs to wait if a device change (rename or net namespace change) operation is in progress. (b) device net namespace change should not proceed if the unregistration has started. (c) while one cpu is changing device net namespace, other cpu should not be able to rename or change net namespace. To address above concurrency, (a) Use unreg_mutex to synchronize between ib_unregister_device() and net namespace change operation (b) In cases where unregister_device() has started unregistration before change_netns got chance to acquire unreg_mutex, validate the refcount - if it dropped to zero, abort the net namespace change operation. Finally use the helper function to change net namespace of ib device to move the device back to init_net when such net is deleted. Signed-off-by: Parav Pandit Signed-off-by: Jason Gunthorpe commit 3042492bd1f9a08e9cf4c1a4621e359fb0f9a126 Author: Parav Pandit Date: Mon Apr 15 13:22:49 2019 +0300 RDMA/core: Avoid freeing netdevs in disable_device() So we can use the disable_device() helper while changing the net namespace of the rdma device in a subsequent patch, move free_netdevs() out of it. Signed-off-by: Parav Pandit Signed-off-by: Jason Gunthorpe commit 8dce4b265a5357731058f69645840dabc718c687 Author: Hans Verkuil Date: Wed Apr 10 07:02:49 2019 -0400 media: zoran: remove deprecated driver The zoran driver has been marked deprecated for a year now without any interest to update this driver to the vb2 framework. Time to remove it altogether. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit a4dfc8a24796ff312d1d307e11f26f8ca466e938 Author: Neil Armstrong Date: Fri Apr 12 04:31:00 2019 -0400 media: MAINTAINERS: Update AO CEC with ao-cec-g12a driver Update the MAINTAINERS entry with the new AO-CEC driver for G12A. Signed-off-by: Neil Armstrong Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit b7778c46683ce468f49141a18d984f6f13c6c5d2 Author: Neil Armstrong Date: Fri Apr 12 04:30:59 2019 -0400 media: platform: meson: Add Amlogic Meson G12A AO CEC Controller driver The Amlogic G12A SoC embeds a second CEC controller with a totally different design. The two controller can work in the same time since the CEC line can be set to two different pins on the two controllers. This second CEC controller is documented as "AO-CEC-B", thus the registers will be named "CECB_" to differentiate with the other AO-CEC driver. Unlike the other AO-CEC controller, this one takes the Oscillator clock as input and embeds a dual-divider to provide a precise 32768Hz clock for communication. This is handled by registering a clock in the driver. Unlike the other AO-CEC controller, this controller supports setting up to 15 logical addresses and supports the signal_free_time settings in the transmit function. Unfortunately, this controller does not support "monitor" mode. Signed-off-by: Neil Armstrong Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 3473ba384de7cf5df33f0ea3650aa4c7aaf1c995 Author: Neil Armstrong Date: Fri Apr 12 04:30:58 2019 -0400 media: dt-bindings: media: meson-ao-cec: Add G12A AO-CEC-B Compatible The Amlogic G12A embeds a second CEC controller named AO-CEC-B, and the other one is AO-CEC-A described by the current bindings. The register interface is very close but the internal architecture is totally different. The other difference is the clock source, the AO-CEC-B takes the "oscin", the Always-On Oscillator clock, as input and embeds a dual-divider clock divider to provide the precise 32768Hz base clock for CEC communication. Signed-off-by: Neil Armstrong Reviewed-by: Rob Herring Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit cea053bed8534cb7de0b2092a246a84e8e512f64 Author: Hans Verkuil Date: Wed Apr 10 05:13:34 2019 -0400 media: cros-ec-cec: decrement HDMI device refcount The CrosEC CEC driver never decremented the HDMI device refcount. CEC drivers only need the HDMI device pointer as a key in the notifier list, it never accesses the device, so there is no need to keep a reference. Signed-off-by: Hans Verkuil Reviewed-by: Neil Armstrong Signed-off-by: Mauro Carvalho Chehab commit b7f3be1c53280676a7b6036f699b01ef2e97b605 Author: Hans Verkuil Date: Wed Apr 10 05:13:33 2019 -0400 media: seco-cec: decrement HDMI device refcount The SECO CEC driver never decremented the HDMI device refcount. CEC drivers only need the HDMI device pointer as a key in the notifier list, it never accesses the device, so there is no need to keep a reference. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 4d34c9267db7af6c23c29adb73a58882a250c2e0 Author: Hans Verkuil Date: Wed Apr 10 05:13:32 2019 -0400 media: tegra_cec: use new cec_notifier_parse_hdmi_phandle helper The Tegra CEC driver increased the HDMI device refcount when it shouldn't. Use the new helper function to ensure that that doesn't happen and to simplify the driver code. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit e3a7c52de95629cbb0c2840e787523a9393b1fc6 Author: Hans Verkuil Date: Wed Apr 10 05:13:31 2019 -0400 media: stih_cec: use new cec_notifier_parse_hdmi_phandle helper The STI CEC driver increased the HDMI device refcount when it shouldn't. Use the new helper function to ensure that that doesn't happen and to simplify the driver code. Signed-off-by: Hans Verkuil Acked-by: Benjamin Gaignard Signed-off-by: Mauro Carvalho Chehab commit ba9db909d3a4fbc1633bcb18b4118cec84aed668 Author: Hans Verkuil Date: Wed Apr 10 05:13:30 2019 -0400 media: s5p_cec: use new cec_notifier_parse_hdmi_phandle helper The S5P CEC driver increased the HDMI device refcount when it shouldn't. Use the new helper function to ensure that that doesn't happen and to simplify the driver code. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 6bc37729df640748ed1718e3f150d63cbff1dc7e Author: Hans Verkuil Date: Wed Apr 10 05:13:29 2019 -0400 media: meson: ao-cec: use new cec_notifier_parse_hdmi_phandle helper The meson CEC driver increased the HDMI device refcount when it shouldn't. Use the new helper function to ensure that that doesn't happen and to simplify the driver code. Signed-off-by: Hans Verkuil Acked-by: Neil Armstrong Signed-off-by: Mauro Carvalho Chehab commit fbbd403b3286b4467f8b755efa0f10819cef9bba Author: Hans Verkuil Date: Wed Apr 10 05:13:28 2019 -0400 media: cec-notifier: add cec_notifier_parse_hdmi_phandle helper Add helper function to parse the DT for the hdmi-phandle property and return the corresponding struct device pointer. It takes care to avoid increasing the device refcount since all we need is the device pointer. This pointer is used in the notifier list as a key, but it is never accessed by the CEC driver. Signed-off-by: Hans Verkuil Reported-by: Wen Yang Acked-by: Wen Yang Signed-off-by: Mauro Carvalho Chehab commit 2d959849775772d6a78ebedc68ba04ebd2904e7a Author: Chengguang Xu Date: Sat Apr 20 15:55:12 2019 +0800 infiniband/qib: Fix typo in comment Fix typo 'faspath' -> 'pastpath'. Signed-off-by: Chengguang Xu Signed-off-by: Jason Gunthorpe commit 63604a143fe168094fbbccba56f6e3241683e399 Author: Arnd Bergmann Date: Wed Mar 13 17:18:07 2019 -0400 media: seco-cec: fix building with RC_CORE=m I previously added an RC_CORE dependency here, but missed the corner case of CONFIG_VIDEO_SECO_CEC=y with CONFIG_RC_CORE=m, which still causes a link error: drivers/media/platform/seco-cec/seco-cec.o: In function `secocec_probe': seco-cec.c:(.text+0x1b8): undefined reference to `devm_rc_allocate_device' seco-cec.c:(.text+0x2e8): undefined reference to `devm_rc_register_device' drivers/media/platform/seco-cec/seco-cec.o: In function `secocec_irq_handler': seco-cec.c:(.text+0xa2c): undefined reference to `rc_keydown' Refine the dependency to disallow building the RC subdriver in this case. This is the same logic we apply in other drivers like it. Fixes: f27dd0ad6885 ("media: seco-cec: fix RC_CORE dependency") Cc: # 5.1 Signed-off-by: Arnd Bergmann Signed-off-by: Sean Young Signed-off-by: Mauro Carvalho Chehab commit 37d1e62b5bb3b1229d0c49f2ee45e67dc67274be Author: Yizhuo Date: Wed Jan 30 12:33:30 2019 -0500 media: ts2020: Variable "utmp" in function ts2020_set_tuner_rf() could be uninitialized In function ts2020_set_tuner_rf(), local variable "utmp" could be uninitialized if function regmap_read() returns -EINVAL. However, this value is used in if statement and written to the register, which is potentially unsafe. Signed-off-by: Yizhuo Signed-off-by: Sean Young Signed-off-by: Mauro Carvalho Chehab commit 1e98a8400ae8712f2b2d52ed6c1c6231607ed854 Author: YueHaibing Date: Wed Mar 20 21:45:32 2019 -0400 media: si2165: fix platform_no_drv_owner.cocci warnings Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci Signed-off-by: YueHaibing Signed-off-by: Sean Young Signed-off-by: Mauro Carvalho Chehab commit 172876928f98e187daa8c7777361670ce2654b28 Author: Matthias Reichl Date: Sun Mar 24 05:43:51 2019 -0400 media: rc: xbox_remote: add protocol and set timeout The timestamps in ir-keytable -t output showed that the Xbox DVD IR dongle decodes scancodes every 64ms. The last scancode of a longer button press is decodes 64ms after the last-but-one which indicates the decoder doesn't use a timeout but decodes on the last edge of the signal. 267.042629: lirc protocol(unknown): scancode = 0xace 267.042665: event type EV_MSC(0x04): scancode = 0xace 267.042665: event type EV_KEY(0x01) key_down: KEY_1(0x0002) 267.042665: event type EV_SYN(0x00). 267.106625: lirc protocol(unknown): scancode = 0xace 267.106643: event type EV_MSC(0x04): scancode = 0xace 267.106643: event type EV_SYN(0x00). 267.170623: lirc protocol(unknown): scancode = 0xace 267.170638: event type EV_MSC(0x04): scancode = 0xace 267.170638: event type EV_SYN(0x00). 267.234621: lirc protocol(unknown): scancode = 0xace 267.234636: event type EV_MSC(0x04): scancode = 0xace 267.234636: event type EV_SYN(0x00). 267.298623: lirc protocol(unknown): scancode = 0xace 267.298638: event type EV_MSC(0x04): scancode = 0xace 267.298638: event type EV_SYN(0x00). 267.543345: event type EV_KEY(0x01) key_down: KEY_1(0x0002) 267.543345: event type EV_SYN(0x00). 267.570015: event type EV_KEY(0x01) key_up: KEY_1(0x0002) 267.570015: event type EV_SYN(0x00). Add a protocol with the repeat value and set the timeout in the driver to 10ms (to have a bit of headroom for delays) so the Xbox DVD remote performs more responsive. Signed-off-by: Matthias Reichl Acked-by: Benjamin Valentin Signed-off-by: Sean Young Signed-off-by: Mauro Carvalho Chehab commit fdf5de63394f8b7a71359e12bd07ef846d2ba719 Author: Niklas Söderlund Date: Wed Apr 10 10:27:15 2019 -0400 media: rcar-csi2: Move setting of Field Detection Control Register Later datasheet versions (rev 1.00) clarifies that the FLD register should be set after LINKCNT. Signed-off-by: Niklas Söderlund Reviewed-by: Ulrich Hecht Reviewed-by: Kieran Bingham Reviewed-by: Laurent Pinchart Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit cb5585797afd06838e6214ebed9a715e12f08980 Author: Niklas Söderlund Date: Tue Mar 12 19:50:18 2019 -0400 media: rcar-csi2: Update start procedure for H3 ES2 Latest information from hardware engineers reveals that H3 ES2 and ES3 behave differently when working with link speeds bellow 250 Mpbs. Add a SoC match for H3 ES2.* and use the correct startup sequence. Signed-off-by: Niklas Söderlund Reviewed-by: Kieran Bingham Reviewed-by: Laurent Pinchart Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit c1421f1d6c29d6b6234e5b0894ef16b3f2a172e0 Author: Niklas Söderlund Date: Tue Mar 12 19:50:17 2019 -0400 media: rcar-csi2: Update V3M and E3 start procedure The latest datasheet (rev 1.50) updates the start procedure for V3M and E3. Update the driver to match these changes. Signed-off-by: Niklas Söderlund Reviewed-by: Ulrich Hecht Reviewed-by: Laurent Pinchart Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit d245a940d97b5cd0dd4eecd9530fa9ff4c5938c6 Author: Niklas Söderlund Date: Tue Mar 12 19:49:30 2019 -0400 media: rcar-csi2: Use standby mode instead of resetting Later versions of the datasheet updates the reset procedure to more closely resemble the standby mode. Update the driver to enter and exit the standby mode instead of resetting the hardware before and after streaming is started and stopped. This replaces the software reset (SRST.SRST) control. While at it break out the full start and stop procedures from rcsi2_s_stream() into the existing helper functions. Signed-off-by: Niklas Söderlund Reviewed-by: Laurent Pinchart Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit ffaebccddef0a6320643a9d1c911190db579c09f Author: Niklas Söderlund Date: Tue Mar 12 19:49:29 2019 -0400 media: dt-bindings: rcar-csi2: List resets as a mandatory property The resets property will become mandatory to operate the device, list it as such. All device tree source files have always included the reset property so making it mandatory will not introduce any regressions. While at it improve the description for the clocks property. Signed-off-by: Niklas Söderlund Reviewed-by: Laurent Pinchart Reviewed-by: Rob Herring Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 0eecc61947ed329659a9fa9ef7d0959b1c84259d Author: Philipp Zabel Date: Mon Apr 8 08:32:55 2019 -0400 media: coda: throw error on create_bufs with too small size If VIDIOC_CREATE_BUFS is called with a sizeimage smaller than the queue sizeimage, fail with -EINVAL instead of correcting the size and continuing without error. This is required by v4l2-compliance. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 01ba2e65e445d9cc5fb87ba1136f7b693dfb92dc Author: Philipp Zabel Date: Mon Apr 8 08:32:54 2019 -0400 media: coda: allow encoder to set colorimetry on the output queue v4l2-compliance sets colorimetry on the output queue and then verifies that querying colorimetry on the capture queue returns the same configuration. For this to work, the encoder must allow setting context colorimetry parameters on the output queue. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit b03abe535d3734601d2e926b2f5e31745b29825b Author: Philipp Zabel Date: Mon Apr 8 08:32:52 2019 -0400 media: coda: implement encoder frame size enumeration The stateful encoder API requires VIDIOC_ENUM_FRAMESIZES to be implemented. Allow enumeration of supported frame sizes for encoding. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 784867d2135a1a8ebc213bcc3ca26283a2c0d9b8 Author: Philipp Zabel Date: Mon Apr 8 08:32:51 2019 -0400 media: coda: disable encoder command on decoder and vice versa Return -ENOTTY when userspace tries to call VIDIOC_(TRY_)ENCODER_CMD on a decoder instance or VIDIOC_(TRY_)DECODER_CMD on an encoder instance. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit c1b6761e1f4ea9ca6e858c4b0d6fd5461786f2b9 Author: Philipp Zabel Date: Mon Apr 8 08:32:50 2019 -0400 media: coda: add min number of buffers controls Add min number of buffers for capture (decoder) and output (encoder) controls, which are required by the stateful video decoder / encoder interface specification. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit bbeefa7357a648afe70e7183914c87c3878d528d Author: Philipp Zabel Date: Mon Apr 8 08:32:49 2019 -0400 media: coda: clear error return value before picture run The error return value is not written by some firmware codecs, such as MPEG-2 decode on CodaHx4. Clear the error return value before starting the picture run to avoid misinterpreting unrelated values returned by sequence initialization as error return value. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit be9dd094e8f38873ba2db49e3edf5f8aab3679d7 Author: Philipp Zabel Date: Mon Apr 8 08:32:48 2019 -0400 media: coda: remove mask from decoder h.264 level control Since levels are specified in terms of maximum values, there is no reason to filter out lower levels than the supported maximum. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 75480ebf49662d10550a32ecd76702fbf0716331 Author: Philipp Zabel Date: Mon Apr 8 08:32:47 2019 -0400 media: coda: set codec earlier The chosen codec depends on the coded format, which is known as soon as the S_FMT call on the coded queue. This allows to use the codec in callbacks that may be called before start_streaming, such as buf_queue. Signed-off-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit d65842f7126aa1a87fb44b7c9980c12630ed4f33 Author: Hans Verkuil Date: Mon Nov 19 06:09:00 2018 -0500 media: vb2: add waiting_in_dqbuf flag Calling VIDIOC_DQBUF can release the core serialization lock pointed to by vb2_queue->lock if it has to wait for a new buffer to arrive. However, if userspace dup()ped the video device filehandle, then it is possible to read or call DQBUF from two filehandles at the same time. It is also possible to call REQBUFS from one filehandle while the other is waiting for a buffer. This will remove all the buffers and reallocate new ones. Removing all the buffers isn't the problem here (that's already handled correctly by DQBUF), but the reallocating part is: DQBUF isn't aware that the buffers have changed. This is fixed by setting a flag whenever the lock is released while waiting for a buffer to arrive. And checking the flag where needed so we can return -EBUSY. Signed-off-by: Hans Verkuil Reported-by: Syzbot Reviewed-by: Tomasz Figa Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 4d25339e32a1b6e1f490bb78b1e5b0fa9eb3e073 Author: Weiping Zhang Date: Tue Apr 2 21:14:30 2019 +0800 block: don't show io_timeout if driver has no timeout handler If the low level driver has no timeout handler, the /sys/block//queue/io_timeout will not be displayed. Reviewed-by: Bart Van Assche Signed-off-by: Weiping Zhang Signed-off-by: Jens Axboe commit f9f76879bc4521019697970bad3bc1dd0bec211f Author: Christoph Hellwig Date: Fri Apr 19 08:56:24 2019 +0200 block: avoid scatterlist offsets > PAGE_SIZE While we generally allow scatterlists to have offsets larger than page size for an entry, and other subsystems like the crypto code make use of that, the block layer isn't quite ready for that. Flip the switch back to avoid them for now, and revisit that decision early in a merge window once the known offenders are fixed. Fixes: 8a96a0e40810 ("block: rewrite blk_bvec_map_sg to avoid a nth_page call") Reviewed-by: Ming Lei Tested-by: Guenter Roeck Reported-by: Guenter Roeck Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit f6b50160a06d4a0d6a3999ab0c5aec4f52dba248 Author: Hou Tao Date: Mon Apr 22 21:23:21 2019 +0800 brd: re-enable __GFP_HIGHMEM in brd_insert_page() __GFP_HIGHMEM is disabled if dax is enabled on brd, however dax support for brd has been removed since commit (7a862fbbdec6 "brd: remove dax support"), so restore __GFP_HIGHMEM in brd_insert_page(). Also remove the no longer applicable comments about DAX and highmem. Cc: stable@vger.kernel.org Fixes: 7a862fbbdec6 ("brd: remove dax support") Signed-off-by: Hou Tao Signed-off-by: Jens Axboe commit 6fcc44d1d77fea3c7230e4d109b37f6977aa675a Author: Yufen Yu Date: Tue Apr 2 20:06:34 2019 +0800 block: fix use-after-free on gendisk commit 2da78092dda "block: Fix dev_t minor allocation lifetime" specifically moved blk_free_devt(dev->devt) call to part_release() to avoid reallocating device number before the device is fully shutdown. However, it can cause use-after-free on gendisk in get_gendisk(). We use md device as example to show the race scenes: Process1 Worker Process2 md_free blkdev_open del_gendisk add delete_partition_work_fn() to wq __blkdev_get get_gendisk put_disk disk_release kfree(disk) find part from ext_devt_idr get_disk_and_module(disk) cause use after free delete_partition_work_fn put_device(part) part_release remove part from ext_devt_idr Before is removed from ext_devt_idr by delete_partition_work_fn(), we can find the devt and then access gendisk by hd_struct pointer. But, if we access the gendisk after it have been freed, it can cause in use-after-freeon gendisk in get_gendisk(). We fix this by adding a new helper blk_invalidate_devt() in delete_partition() and del_gendisk(). It replaces hd_struct pointer in idr with value 'NULL', and deletes the entry from idr in part_release() as we do now. Thanks to Jan Kara for providing the solution and more clear comments for the code. Fixes: 2da78092dda1 ("block: Fix dev_t minor allocation lifetime") Cc: Al Viro Reviewed-by: Bart Van Assche Reviewed-by: Keith Busch Reviewed-by: Jan Kara Suggested-by: Jan Kara Signed-off-by: Yufen Yu Signed-off-by: Jens Axboe commit 5c61ee2cd5860e41c8ab98837761ffaa93eb4dfe Merge: cdf3e3deb747 085b7755808a Author: Jens Axboe Date: Mon Apr 22 09:47:36 2019 -0600 Merge tag 'v5.1-rc6' into for-5.2/block Pull in v5.1-rc6 to resolve two conflicts. One is in BFQ, in just a comment, and is trivial. The other one is a conflict due to a later fix in the bio multi-page work, and needs a bit more care. * tag 'v5.1-rc6': (770 commits) Linux 5.1-rc6 block: make sure that bvec length can't be overflow block: kill all_q_node in request_queue x86/cpu/intel: Lower the "ENERGY_PERF_BIAS: Set to normal" message's log priority coredump: fix race condition between mmget_not_zero()/get_task_mm() and core dumping mm/kmemleak.c: fix unused-function warning init: initialize jump labels before command line option parsing kernel/watchdog_hld.c: hard lockup message should end with a newline kcov: improve CONFIG_ARCH_HAS_KCOV help text mm: fix inactive list balancing between NUMA nodes and cgroups mm/hotplug: treat CMA pages as unmovable proc: fixup proc-pid-vm test proc: fix map_files test on F29 mm/vmstat.c: fix /proc/vmstat format for CONFIG_DEBUG_TLBFLUSH=y CONFIG_SMP=n mm/memory_hotplug: do not unlock after failing to take the device_hotplug_lock mm: swapoff: shmem_unuse() stop eviction without igrab() mm: swapoff: take notice of completion sooner mm: swapoff: remove too limiting SWAP_UNUSE_MAX_TRIES mm: swapoff: shmem_find_swap_entries() filter out other types slab: store tagged freelist for off-slab slabmgmt ... Signed-off-by: Jens Axboe commit c1ced46c7b49ad7bc064e68d966e0ad303f917fb Author: Dan Carpenter Date: Mon Apr 8 05:52:38 2019 -0400 media: pvrusb2: Prevent a buffer overflow The ctrl_check_input() function is called from pvr2_ctrl_range_check(). It's supposed to validate user supplied input and return true or false depending on whether the input is valid or not. The problem is that negative shifts or shifts greater than 31 are undefined in C. In practice with GCC they result in shift wrapping so this function returns true for some inputs which are not valid and this could result in a buffer overflow: drivers/media/usb/pvrusb2/pvrusb2-ctrl.c:205 pvr2_ctrl_get_valname() warn: uncapped user index 'names[val]' The cptr->hdw->input_allowed_mask mask is configured in pvr2_hdw_create() and the highest valid bit is BIT(4). Fixes: 7fb20fa38caa ("V4L/DVB (7299): pvrusb2: Improve logic which handles input choice availability") Signed-off-by: Dan Carpenter Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit bac875349f8525a75760d0eee525186cb59658ea Author: Jernej Skrabec Date: Sun Apr 7 14:47:28 2019 -0400 media: cedrus: Fix initialization order Currently, MEDIA_IOC_G_TOPOLOGY ioctl on cedrus fails due to incorrect initialization order. Fix that by moving video_register_device() before v4l2_m2m_register_media_controller() and while at it, fix error path. Reported-by: Jonas Karlman Signed-off-by: Jernej Skrabec Acked-by: Paul Kocialkowski Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit dad7e270ba712ba1c99cd2d91018af6044447a06 Author: Alexander Potapenko Date: Thu Apr 4 10:56:46 2019 -0400 media: vivid: use vfree() instead of kfree() for dev->bitmap_cap syzkaller reported crashes on kfree() called from vivid_vid_cap_s_selection(). This looks like a simple typo, as dev->bitmap_cap is allocated with vzalloc() throughout the file. Fixes: ef834f7836ec0 ("[media] vivid: add the video capture and output parts") Signed-off-by: Alexander Potapenko Reported-by: Syzbot Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 1f7f11e8ca15366e6c1e62e4d4dc5d1ecb3b2eb4 Author: Hans Verkuil Date: Mon Apr 1 08:41:58 2019 -0400 media: videobuf2-v4l2.c: move up STATE_DEQUEUED check If a buffer is queued to a request, followed by an attempt to queue the same buffer again, then the second qbuf returns an error since the buffer is not in the DEQUEUED state anymore. However, before it gets to that check it executes the code under the 'if (!vb->prepared)' condition. This clears previously set data needed for request handling, and now querybuf will no longer report that this buffer is part of a request. Move the state check to before the 'if' and make sure to only do the state check when called from QBUF and if V4L2_BUF_FLAG_REQUEST_FD is set. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 411a414b26aa107ddbbd6995e464f6cc18a1aa8c Author: Maoguang Meng Date: Mon Apr 1 04:18:38 2019 -0400 media: mtk-vcodec: fix vp9 content playback error with show exist frame Update referenced frame buffer's reference count when playing vp9 content which has show_existing_frame flag, and copy enough buffer data to current shown frame. Signed-off-by: Maoguang Meng Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit d38b24aab43d2b83fc57bf1186df05210ebb58b6 Author: Sakari Ailus Date: Tue Apr 9 04:06:54 2019 -0400 media: ipu3-imgu: Use %u for formatting unsigned values (not %d) The driver used %d for formatting unsigned values. Use %u instead. Signed-off-by: Sakari Ailus Reviewed-by: Bingbu Cao Signed-off-by: Mauro Carvalho Chehab commit 8ecc7c9da013e702aa889002e1288521d7533293 Author: Bingbu Cao Date: Fri Mar 22 07:14:45 2019 -0400 media: staging/intel-ipu3: parameter buffer refactoring Current ImgU driver processes and releases the parameter buffer immediately after queued from user. This does not align with other image buffers which are grouped in sets and used for the same frame. If user queues multiple parameter buffers continuously, only the last one will take effect. To make consistent buffers usage, this patch changes the parameter buffer handling and group parameter buffer with other image buffers for each frame. Each time driver will queue one more group of buffers when previous frame processed and buffers consumed by css. Signed-off-by: Tianshu Qiu Signed-off-by: Bingbu Cao Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit 642bb5e88fed89e922239106e8dd9e5e6a39d172 Author: Mickael Guene Date: Tue Apr 9 02:15:49 2019 -0400 media: st-mipid02: MIPID02 CSI-2 to PARALLEL bridge driver This V4L2 subdev driver enables STMicroelectronics MIPID02 device. Signed-off-by: Mickael Guene Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit cffc3df28450390f0de4d6907387d7c40459acab Author: Mickael Guene Date: Tue Apr 9 02:15:48 2019 -0400 media: dt-bindings: Document MIPID02 bindings This adds documentation of device tree for MIPID02 CSI-2 to PARALLEL bridge. Reviewed-by: Rob Herring Signed-off-by: Mickael Guene Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit e3521f5687b34f5e007d170f029d98f3cb846955 Author: Mickael Guene Date: Tue Apr 9 02:15:47 2019 -0400 media: uapi: Add MEDIA_BUS_FMT_BGR888_3X8 media bus format This patch adds MEDIA_BUS_FMT_BGR888_3X8 used by STM MIPID02 CSI-2 to PARALLEL bridge driver when input format is MEDIA_BUS_FMT_BGR888_1X24. Signed-off-by: Mickael Guene Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit 384538bda10913e5c94ec5b5d34bd3075931bcf4 Author: Akinobu Mita Date: Sat Mar 30 10:01:32 2019 -0400 media: ov2659: fix unbalanced mutex_lock/unlock Avoid returning with mutex locked. Fixes: fa8cb6444c32 ("[media] ov2659: Don't depend on subdev API") Cc: "Lad, Prabhakar" Signed-off-by: Akinobu Mita Acked-by: Lad, Prabhakar Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit bccb89cf9cd07a0690d519696a00c00a973b3fe4 Author: Akinobu Mita Date: Sat Mar 30 10:01:31 2019 -0400 media: ov2659: make S_FMT succeed even if requested format doesn't match This driver returns an error if unsupported media bus pixel code is requested by VIDIOC_SUBDEV_S_FMT. But according to Documentation/media/uapi/v4l/vidioc-subdev-g-fmt.rst, Drivers must not return an error solely because the requested format doesn't match the device capabilities. They must instead modify the format to match what the hardware can provide. So select default format code and return success in that case. This is detected by v4l2-compliance. Cc: "Lad, Prabhakar" Signed-off-by: Akinobu Mita Acked-by: Lad, Prabhakar Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit c62b96050bee7f1ffbee5cdf3d002fca7f7ce710 Author: Janusz Krzysztofik Date: Fri Mar 29 21:06:10 2019 -0400 media: ov6650: Register with asynchronous subdevice framework Register V4L2 subdevice implemented by the driver to the V4L2 asynchronous subdevice framework. [Sakari Ailus: Remove extra call to v4l2_i2c_subdev_set_name] Signed-off-by: Janusz Krzysztofik Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit ccdd85d518d8b9320ace1d87271f0ba2175f21fa Author: Janusz Krzysztofik Date: Fri Mar 29 21:06:09 2019 -0400 media: ov6650: Move v4l2_clk_get() to ov6650_video_probe() helper In preparation for adding asynchronous subdevice support to the driver, don't acquire v4l2_clk from the driver .probe() callback as that may fail if the clock is provided by a bridge driver which may be not yet initialized. Move the v4l2_clk_get() to ov6650_video_probe() helper which is going to be converted to v4l2_subdev_internal_ops.registered() callback, executed only when the bridge driver is ready. Signed-off-by: Janusz Krzysztofik Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit 933c1320847f5ed6b61a7d10f0a948aa98ccd7b0 Author: Janusz Krzysztofik Date: Sun Mar 24 20:21:12 2019 -0400 media: ov6650: Fix sensor possibly not detected on probe After removal of clock_start() from before soc_camera_init_i2c() in soc_camera_probe() by commit 9aea470b399d ("[media] soc-camera: switch I2C subdevice drivers to use v4l2-clk") introduced in v3.11, the ov6650 driver could no longer probe the sensor successfully because its clock was no longer turned on in advance. The issue was initially worked around by adding that missing clock_start() equivalent to OMAP1 camera interface driver - the only user of this sensor - but a propoer fix should be rather implemented in the sensor driver code itself. Fix the issue by inserting a delay between the clock is turned on and the sensor I2C registers are read for the first time. Tested on Amstrad Delta with now out of tree but still locally maintained omap1_camera host driver. Fixes: 9aea470b399d ("[media] soc-camera: switch I2C subdevice drivers to use v4l2-clk") Signed-off-by: Janusz Krzysztofik Cc: stable@vger.kernel.org Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit f604f0f5afb88045944567f604409951b5eb6af8 Author: Hans Verkuil Date: Tue Apr 2 03:24:15 2019 -0400 media: au0828: stop video streaming only when last user stops If the application was streaming from both videoX and vbiX, and streaming from videoX was stopped, then the vbi streaming also stopped. The cause being that stop_streaming for video stopped the subdevs as well, instead of only doing that if dev->streaming_users reached 0. au0828_stop_vbi_streaming was also wrong since it didn't stop the subdevs at all when dev->streaming_users reached 0. Signed-off-by: Hans Verkuil Tested-by: Shuah Khan Signed-off-by: Mauro Carvalho Chehab commit 10cb050459852fd954a5b38c019d2313f3bfb3e2 Author: Shuah Khan Date: Mon Apr 1 20:43:18 2019 -0400 media: Clear devnode->media_dev holding media_devnode_lock Fix media_devnode_unregister() to clear devnode->media_dev while holding media_devnode_lock. media_devnode_register()'s cdev_add_error handling does this correctly. Signed-off-by: Shuah Khan Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 898bc40bfcc26abb6e06e960d6d4754c36c58b50 Author: Shuah Khan Date: Mon Apr 1 20:43:17 2019 -0400 media: au0828: Fix NULL pointer dereference in au0828_analog_stream_enable() Fix au0828_analog_stream_enable() to check if device is in the right state first. When unbind happens while bind is in progress, usbdev pointer could be invalid in au0828_analog_stream_enable() and a call to usb_ifnum_to_if() will result in the null pointer dereference. This problem is found with the new media_dev_allocator.sh test. kernel: [ 590.359623] BUG: unable to handle kernel NULL pointer dereference at 00000000000004e8 kernel: [ 590.359627] #PF error: [normal kernel read fault] kernel: [ 590.359629] PGD 0 P4D 0 kernel: [ 590.359632] Oops: 0000 [#1] SMP PTI kernel: [ 590.359634] CPU: 3 PID: 1458 Comm: v4l_id Not tainted 5.1.0-rc2+ #30 kernel: [ 590.359636] Hardware name: Dell Inc. OptiPlex 7 90/0HY9JP, BIOS A18 09/24/2013 kernel: [ 590.359641] RIP: 0010:usb_ifnum_to_if+0x6/0x60 kernel: [ 590.359643] Code: 5d 41 5e 41 5f 5d c3 48 83 c4 10 b8 fa ff ff ff 5b 41 5c 41 5d 41 5e 41 5f 5d c3 b8 fa ff ff ff c3 0f 1f 00 6 6 66 66 66 90 55 <48> 8b 97 e8 04 00 00 48 89 e5 48 85 d2 74 41 0f b6 4a 04 84 c 9 74 kernel: [ 590.359645] RSP: 0018:ffffad3cc3c1fc00 EFLAGS: 00010246 kernel: [ 590.359646] RAX: 0000000000000000 RBX: ffff8ded b1f3c000 RCX: 1f377e4500000000 kernel: [ 590.359648] RDX: ffff8dedfa3a6b50 RSI: 00000000 00000000 RDI: 0000000000000000 kernel: [ 590.359649] RBP: ffffad3cc3c1fc28 R08: 00000000 8574acc2 R09: ffff8dedfa3a6b50 kernel: [ 590.359650] R10: 0000000000000001 R11: 00000000 00000000 R12: 0000000000000000 kernel: [ 590.359652] R13: ffff8dedb1f3f0f0 R14: ffffffff adcf7ec0 R15: 0000000000000000 kernel: [ 590.359654] FS: 00007f7917198540(0000) GS:ffff 8dee258c0000(0000) knlGS:0000000000000000 kernel: [ 590.359655] CS: 0010 DS: 0000 ES: 0000 CR0: 00 00000080050033 kernel: [ 590.359657] CR2: 00000000000004e8 CR3: 00000001 a388e002 CR4: 00000000000606e0 kernel: [ 590.359658] Call Trace: kernel: [ 590.359664] ? au0828_analog_stream_enable+0x2c/0x180 kernel: [ 590.359666] au0828_v4l2_open+0xa4/0x110 kernel: [ 590.359670] v4l2_open+0x8b/0x120 kernel: [ 590.359674] chrdev_open+0xa6/0x1c0 kernel: [ 590.359676] ? cdev_put.part.3+0x20/0x20 kernel: [ 590.359678] do_dentry_open+0x1f6/0x360 kernel: [ 590.359681] vfs_open+0x2f/0x40 kernel: [ 590.359684] path_openat+0x299/0xc20 kernel: [ 590.359688] do_filp_open+0x9b/0x110 kernel: [ 590.359695] ? _raw_spin_unlock+0x27/0x40 kernel: [ 590.359697] ? __alloc_fd+0xb2/0x160 kernel: [ 590.359700] do_sys_open+0x1ba/0x260 kernel: [ 590.359702] ? do_sys_open+0x1ba/0x260 kernel: [ 590.359712] __x64_sys_openat+0x20/0x30 kernel: [ 590.359715] do_syscall_64+0x5a/0x120 kernel: [ 590.359718] entry_SYSCALL_64_after_hwframe+0x44/0xa9 Signed-off-by: Shuah Khan Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit bc81c1c796c7a3892ccd445f15a32e041c2174d6 Author: Shuah Khan Date: Mon Apr 1 20:40:24 2019 -0400 media: selftests: media_dev_allocator api test Add a new test for Media Device Allocator API. Media Device Allocator API to allows multiple drivers share a media device. This API solves a very common use-case for media devices where one physical device (an USB stick) provides both audio and video. When such media device exposes a standard USB Audio class, a proprietary Video class, two or more independent drivers will share a single physical USB bridge. In such cases, it is necessary to coordinate access to the shared resource. Using this API, drivers can allocate a media device with the shared struct device as the key. Once the media device is allocated by a driver, other drivers can get a reference to it. The media device is released when all the references are released. This test does a series of unbind/bind tests to make sure media device is released correctly when it is no longer is use and when the last driver releases the reference. Signed-off-by: Shuah Khan Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 383b0e5b6ebb087bde22fbb5fcd9d567c5dbdb92 Author: Shuah Khan Date: Mon Apr 1 20:40:23 2019 -0400 media: au0828: fix enable and disable source audio and video inconsistencies Enable and disable source interfaces aren't consistent in enforcing how video and audio share the tuner resource. Fix these issues to enforce the following rules and allow sharing between audio and video applications. - When DVB is streaming, audio/video/vbi/s-video/composite should find the resource busy. DVB holds the tuner in exclusive mode. - When video/VBI is streaming, audio can share the tuner and vice versa. - v4l2 allows multiple applications to open video device. - Video applications call enable source multiple times during their run-time. Resource should stay locked until the last application releases it. - A shared resource should stay in shared state and locked when it is in use by audio and video. More than one video application is allowed to use the tuner as long as video streaming protocol allows such usage. Resource is released when the last video/audio application releases it. - S-Video and Composite hold the resource in exclusive mode. Signed-off-by: Shuah Khan Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 70c4cf17e445264453bc5323db3e50aa0ac9e81f Author: Wenwen Wang Date: Fri Apr 19 20:49:29 2019 -0500 audit: fix a memory leak bug In audit_rule_change(), audit_data_to_entry() is firstly invoked to translate the payload data to the kernel's rule representation. In audit_data_to_entry(), depending on the audit field type, an audit tree may be created in audit_make_tree(), which eventually invokes kmalloc() to allocate the tree. Since this tree is a temporary tree, it will be then freed in the following execution, e.g., audit_add_rule() if the message type is AUDIT_ADD_RULE or audit_del_rule() if the message type is AUDIT_DEL_RULE. However, if the message type is neither AUDIT_ADD_RULE nor AUDIT_DEL_RULE, i.e., the default case of the switch statement, this temporary tree is not freed. To fix this issue, only allocate the tree when the type is AUDIT_ADD_RULE or AUDIT_DEL_RULE. Signed-off-by: Wenwen Wang Reviewed-by: Richard Guy Briggs Signed-off-by: Paul Moore commit 66354f18fe5fbb65f7b10a519654013d6df09f80 Author: Shuah Khan Date: Mon Apr 1 20:40:22 2019 -0400 media: sound/usb: Use Media Controller API to share media resources Media Device Allocator API to allows multiple drivers share a media device. This API solves a very common use-case for media devices where one physical device (an USB stick) provides both audio and video. When such media device exposes a standard USB Audio class, a proprietary Video class, two or more independent drivers will share a single physical USB bridge. In such cases, it is necessary to coordinate access to the shared resource. Using this API, drivers can allocate a media device with the shared struct device as the key. Once the media device is allocated by a driver, other drivers can get a reference to it. The media device is released when all the references are released. Change the ALSA driver to use the Media Controller API to share media resources with DVB, and V4L2 drivers on a AU0828 media device. The Media Controller specific initialization is done after sound card is registered. ALSA creates Media interface and entity function graph nodes for Control, Mixer, PCM Playback, and PCM Capture devices. snd_usb_hw_params() will call Media Controller enable source handler interface to request the media resource. If resource request is granted, it will release it from snd_usb_hw_free(). If resource is busy, -EBUSY is returned. Media specific cleanup is done in usb_audio_disconnect(). Reviewed-by: Takashi Iwai Signed-off-by: Shuah Khan Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit e377d3e98e70ecd72b3eda158428d88c36881224 Author: Shuah Khan Date: Mon Apr 1 20:40:21 2019 -0400 media: media.h: Enable ALSA MEDIA_INTF_T* interface types Move PCM_CAPTURE, PCM_PLAYBACK, and CONTROL ALSA MEDIA_INTF_T* interface types back into __KERNEL__ scope to get ready for adding ALSA support for these to the media controller. Signed-off-by: Shuah Khan Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 812658d88d26721079fb76afb037669b9c280028 Author: Shuah Khan Date: Mon Apr 1 20:40:20 2019 -0400 media: change au0828 to use Media Device Allocator API Media Device Allocator API to allows multiple drivers share a media device. This API solves a very common use-case for media devices where one physical device (an USB stick) provides both audio and video. When such media device exposes a standard USB Audio class, a proprietary Video class, two or more independent drivers will share a single physical USB bridge. In such cases, it is necessary to coordinate access to the shared resource. Using this API, drivers can allocate a media device with the shared struct device as the key. Once the media device is allocated by a driver, other drivers can get a reference to it. The media device is released when all the references are released. Change au0828 to use Media Device Allocator API to allocate media device with the parent usb struct device as the key, so it can be shared with the snd_usb_audio driver. Signed-off-by: Shuah Khan Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 6e1d824e7a1d324f7fdd276fb7133013109d3764 Author: Shuah Khan Date: Mon Apr 1 20:40:19 2019 -0400 media: Media Device Allocator API Media Device Allocator API to allows multiple drivers share a media device. This API solves a very common use-case for media devices where one physical device (an USB stick) provides both audio and video. When such media device exposes a standard USB Audio class, a proprietary Video class, two or more independent drivers will share a single physical USB bridge. In such cases, it is necessary to coordinate access to the shared resource. Using this API, drivers can allocate a media device with the shared struct device as the key. Once the media device is allocated by a driver, other drivers can get a reference to it. The media device is released when all the references are released. Signed-off-by: Shuah Khan Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 33dfeb62e23c31619d2197850f7e8b50e8cc5466 Author: Hugues Fruchet Date: Mon Apr 1 04:56:09 2019 -0400 media: stm32-dcmi: fix crash when subdev do not expose any formats Do not access sd_formats[] if num_of_sd_formats is zero, ie subdev sensor didn't expose any formats. Signed-off-by: Hugues Fruchet Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 1be0a2b702308f16fc1c1a58ada5aba13afc123e Author: Hugues Fruchet Date: Mon Apr 1 04:55:00 2019 -0400 media: stm32-dcmi: do not emit error trace in case of few overrun Report overrun error only when it exceeds a given threshold. Signed-off-by: Hugues Fruchet Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit d8986600dcb6c55027f171334e4705233cdb8919 Author: Hugues Fruchet Date: Mon Apr 1 04:54:59 2019 -0400 media: stm32-dcmi: fix error messages Revisit and add some error messages. Signed-off-by: Hugues Fruchet Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 0646d347bdc2aece81e993e01528b14ffe9029b8 Author: Colin Ian King Date: Sat Mar 30 11:25:03 2019 -0400 media: dvb: clean up redundant break statements There are several places where a break statement occurs before a following break statement; these are unnecessary and can be removed to clean up the code a little. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit b105581a1939b08ce70d8aa437ff68a032960b16 Author: Yunfei Dong Date: Fri Mar 29 04:37:14 2019 -0400 media: mtk-vcodec: enlarge struct vdec_pic_info fields Enlarge the plane number to support more complex case and add the support for fmt change case. Signed-off-by: Yunfei Dong Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit b4ccd7fd062a0b8514a6f04cdd8f8cbb336a3f65 Author: Sergei Shtylyov Date: Tue Mar 26 12:12:19 2019 -0400 media: dt-bindings: media: Renesas R-Car IMR bindings The image renderer (IMR), or the distortion correction engine, is a drawing processor with a simple instruction system capable of referencing video capture data or data in an external memory as the 2D texture data and performing texture mapping and drawing with respect to any shape that is split into triangular objects. Document the device tree bindings for the image renderer light extended 4 (IMR-LX4) found in the R-Car gen3 SoCs... Signed-off-by: Sergei Shtylyov Acked-by: Rob Herring Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 27c8e733c03812173380d55049b886db4dc89fe5 Author: Wolfram Sang Date: Tue Mar 19 12:36:22 2019 -0400 media: staging: media: imx: imx7-mipi-csis: simplify getting .driver_data We should get 'driver_data' from 'struct device' directly. Going via platform_device is an unneeded step back and forth. Signed-off-by: Wolfram Sang Reviewed-by: Rui Miguel Silva Reviewed-by: Simon Horman Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit b6c61a6c37317efd7327199bfe24770af3d7e799 Author: Helen Fornazier Date: Wed Mar 13 14:29:37 2019 -0400 media: vimc: propagate pixel format in the stream Media bus codes were being mapped to pixelformats, which causes a limitation on vimc because not all pixelformats can be mapped to media bus codes. Also, media bus codes are an internal configuration from the device. Userspace only assures media bus codes matches between pads and expects the image in a given pixelformat. So we can allow almost any media bus format to be configured between pads, except for debayer that expects a media bus code of type bayer in the sink pad. [hverkuil-cisco@xs4all.nl: drop use of v4l2_get_fourcc_name: not yet available] [hverkuil-cisco@xs4all.nl: made vimc_mbus_list static] Signed-off-by: Helen Koike Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit d82b921a7a8a00ec31ba76287245ec663534df9b Author: Helen Fornazier Date: Wed Mar 6 17:42:40 2019 -0500 media: v4l2-common: add bayer formats in v4l2_format_info Add bayer format information in struct v4l2_format_info table. Signed-off-by: Helen Koike Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit f44b969aa3cddabe86e9aff411889643298e8d59 Author: Ezequiel Garcia Date: Thu Mar 28 14:07:04 2019 -0400 media: Introduce helpers to fill pixel format structs Add two new API helpers, v4l2_fill_pixfmt and v4l2_fill_pixfmt_mp, to be used by drivers to calculate plane sizes and bytes per lines. Note that driver-specific padding and alignment are not taken into account, and must be done by drivers using this API. Signed-off-by: Ezequiel Garcia Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 9fb10beb8a57f6fa9fdb592652f213df6b98600a Author: Ezequiel Garcia Date: Thu Mar 28 14:07:03 2019 -0400 media: rockchip/vpu: Rename pixel format helpers The rockchip VPU driver uses generic names for its pixel format helpers. We want to use the same names for generic versions of these helpers, so rename the rockchip ones. The driver will be switched to the generic helpers later. Signed-off-by: Ezequiel Garcia Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit e6c237ad93a08da61d2ccb3c0425ebdb494555b1 Author: Ezequiel Garcia Date: Thu Mar 28 12:16:30 2019 -0400 media: vb2: Minor function naming fix Minor fix for helper function and comment, s/v4l2_vb2_buffer/vb2_v4l2_buffer. Signed-off-by: Ezequiel Garcia Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit c4d1de702575728c6fa15ee15990d39a24e1f638 Author: Hans Verkuil Date: Mon Apr 1 03:42:05 2019 -0400 media: v4l2-ctrls.h: remove spurious text Somehow the string "Controls name" got pasted in two places where it doesn't belong. Remove that text. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 1a726df6078c2fa1ce07f1e086576977d99f7fcf Author: Yannick Fertre Date: Fri Mar 29 08:39:42 2019 -0400 media: platform: stm32: wait end of transmission It is mandatory to write CEC_CFGR only when CECEN=0. To protect transmission, a check have been added to delayed logical address modification. This patch is necessary tp pass all tests of compliance. Signed-off-by: Yannick Fertré Reviewed-by: Benjamin Gaignard Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit b063474e2130b6bab48ac20acd9b821dfc16c171 Author: Eugen Hristev Date: Fri Mar 29 03:38:31 2019 -0400 media: atmel: atmel-isc: removed ARGB32 added ABGR32 and XBGR32 ISC will output the "ARGB32" configuration in byte order: B, G, R, Alpha. This is in fact the format BGRA, aka ABGR32. If alpha is missing, the same format is equivalent to XBGR32. Added both formats and removed ARGB32 which is wrong. Signed-off-by: Eugen Hristev Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 1e8f401474d6b7c2138521d38a73d829eba0138e Author: Eugen Hristev Date: Fri Mar 29 03:38:28 2019 -0400 media: atmel: atmel-isc: reworked driver and formats This change is a redesign in the formats and the way the ISC is configured w.r.t. sensor format and the output format from the ISC. I have changed the splitting between sensor output (which is also ISC input) and ISC output. The sensor format represents the way the sensor is configured, and what ISC is receiving. The format configuration represents the way ISC is interpreting the data and formatting the output to the subsystem. Now it's much easier to figure out what is the ISC configuration for input, and what is the configuration for output. The non-raw format can be obtained directly from sensor or it can be done inside the ISC. The controller format list will include a configuration for each format. The old supported formats are still in place, if we want to dump the sensor format directly to the output, the try format routine will detect and configure the pipeline accordingly. This also fixes the previous issues when the raw format was NULL which resulted in many crashes for sensors which did not have the expected/tested formats. Signed-off-by: Eugen Hristev Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 87effaae9e90474546d441b9123bca824e670a0b Author: Fish Lin Date: Thu Mar 28 23:20:46 2019 -0400 media: v4l: add I / P frame min max QP definitions Add following V4L2 QP parameters for H.264: * V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MIN_QP * V4L2_CID_MPEG_VIDEO_H264_I_FRAME_MAX_QP * V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MIN_QP * V4L2_CID_MPEG_VIDEO_H264_P_FRAME_MAX_QP These controls will limit QP range for intra and inter frame, provide more manual control to improve video encode quality. Signed-off-by: Fish Lin Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 708310711e6cdc1f5d8fb1d3fb531fba09ebae2e Author: Marc Gonzalez Date: Mon Apr 1 16:42:24 2019 +0200 dt-bindings: phy-qcom-qmp: Tweak qcom,msm8998-qmp-ufs-phy Fixup MSM8998 UFS binding now that Evan's reset series has landed. https://lore.kernel.org/lkml/20190321171800.104681-1-evgreen@chromium.org/ Signed-off-by: Marc Gonzalez Signed-off-by: Kishon Vijay Abraham I commit 447ccb4e0834a9f9f0dd5643e421c7f1a1649e6a Author: Bjorn Andersson Date: Tue Apr 16 16:49:27 2019 -0700 iio: adc: qcom-spmi-adc5: Fix of-based module autoloading The of_device_id table needs to be registered as module alias in order for automatic module loading to pick the kernel module based on the DeviceTree compatible. So add MODULE_DEVICE_TABLE() to make this happen. Fixes: e13d757279bb ("iio: adc: Add QCOM SPMI PMIC5 ADC driver") Cc: stable@vger.kernel.org Signed-off-by: Bjorn Andersson Signed-off-by: Jonathan Cameron commit dfd4f6497614ccb34f822849dd2e1fd2c44de37f Author: Pan Bian Date: Thu Apr 18 11:02:56 2019 +0800 iio: dummy_evgen: fix possible memleak in evgen init The memory allocated in the function iio_dummy_evgen_create is not released if it fails to add the evgen device to device hierarchy. This may result in a memory leak bug. Signed-off-by: Pan Bian Signed-off-by: Jonathan Cameron commit ce7afa5c56c4d0e1a5eefb1d1872d331e893c120 Author: Mohan Kumar Date: Fri Apr 19 11:36:51 2019 +0300 iio:accel:Switch hardcoded function name with a reference to __func__ making the code more maintainable It fixes the following checkpatch.pl warning: WARNING: Prefer using '"%s...", __func__' to using function's name, in a string Signed-off-by: Mohan Kumar Signed-off-by: Jonathan Cameron commit 80696785eaaa576e7558f459de7e70b2ace77584 Author: Fabrice Gasnier Date: Mon Apr 15 15:00:51 2019 +0200 iio: adc: stm32-dfsdm: fix triggered buffer build dependency This fixes build errors seen when CONFIG_STM32_DFSDM_ADC is set, as stm32-dfsdm-adc driver now also relies on triggered buffer API: Fixes: 11646e81d775 ("iio: adc: stm32-dfsdm: add support for buffer modes") Signed-off-by: Fabrice Gasnier Signed-off-by: Jonathan Cameron commit ba7ecfe43d6bf12e2aa76705c45f7d187ae3d7c0 Author: Fabrice Gasnier Date: Mon Apr 15 15:00:50 2019 +0200 iio: adc: stm32-dfsdm: fix unmet direct dependencies detected This fixes unmet direct dependencies seen when CONFIG_STM32_DFSDM_ADC is selected: WARNING: unmet direct dependencies detected for IIO_BUFFER_HW_CONSUMER Depends on [n]: IIO [=y] && IIO_BUFFER [=n] Selected by [y]: - STM32_DFSDM_ADC [=y] && IIO [=y] && (ARCH_STM32 [=y] && OF [=y] || COMPILE_TEST [=n]) Fixes: e2e6771c6462 ("IIO: ADC: add STM32 DFSDM sigma delta ADC support") Signed-off-by: Fabrice Gasnier Signed-off-by: Jonathan Cameron commit 20c89b4d1dc4e7cc329d00edcaf7a7aa14278557 Author: Fabrice Gasnier Date: Mon Apr 15 11:47:22 2019 +0200 iio: trigger: stm32-timer: fix build issue when disabled This fixes a build issue when CONFIG_IIO_STM32_TIMER_TRIGGER isn't set but used in stm32-dfsdm-adc driver (e.g. CONFIG_STM32_DFSDM_ADC is set): ERROR: "is_stm32_timer_trigger" [drivers/iio/adc/stm32-dfsdm-adc.ko] undefined! There are two possible options to fix this issue: - select IIO_STM32_TIMER_TRIGGER along with CONFIG_STM32_DFSDM_ADC. This is what's being done currently for CONFIG_STM32_ADC. - stub "is_stm32_timer_trigger" function Choice is made to stub this function as suggested in [1]. This is also inspired by similar "is_stm32_lptim_trigger" function (see [2]) in include/linux/iio/timer/stm32-lptim-trigger.h [1] https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1977377.html [2] https://lkml.org/lkml/2017/9/10/124 Fixes: 11646e81d775 ("iio: adc: stm32-dfsdm: add support for buffer modes") Reported-by: Randy Dunlap Fix-suggested-by: Jonathan Cameron Signed-off-by: Fabrice Gasnier Signed-off-by: Jonathan Cameron commit 9c6126940d646e441c292422c0b33902263c5425 Author: Andrey Smirnov Date: Sun Apr 14 11:35:04 2019 -0700 iio: imx7d_adc: Use devm_iio_device_register() Use devm_iio_device_register() and drop imx7d_adc_remove(). Signed-off-by: Andrey Smirnov Cc: Jonathan Cameron Cc: Hartmut Knaack Cc: Lars-Peter Clausen Cc: Peter Meerwald-Stadler Cc: Chris Healy Cc: linux-iio@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Cameron commit b846676066ebf1d263d1c8fae4845ad4549e61e8 Author: Andrey Smirnov Date: Sun Apr 14 11:35:03 2019 -0700 iio: imx7d_adc: Simplify imx7d_adc_remove() with imx7d_adc_suspend() Since imx7d_adc_remove() does exactly the same thing as imx7d_adc_suspend() we can use the latter together with devm_add_action_or_reset() to simplify the former. Rename imx7d_adc_suspend() to imx7d_adc_disable() for clarity while at it. Signed-off-by: Andrey Smirnov Cc: Jonathan Cameron Cc: Hartmut Knaack Cc: Lars-Peter Clausen Cc: Peter Meerwald-Stadler Cc: Chris Healy Cc: linux-iio@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Cameron commit 4fe86cdf927a3883fcc4bd2573a4131e3129abbc Author: Andrey Smirnov Date: Sun Apr 14 11:35:02 2019 -0700 iio: imx7d_adc: Simplify imx7d_adc_probe() with imx7d_adc_resume() Initialization sequence performed in imx7d_adc_resume() is exactly the same as the one being done in imx7d_adc_probe(). Make use of the former in the latter to avoid code duplication. Rename imx7d_adc_resume() to imx7d_adc_enable() for clarity while at it. Signed-off-by: Andrey Smirnov Cc: Jonathan Cameron Cc: Hartmut Knaack Cc: Lars-Peter Clausen Cc: Peter Meerwald-Stadler Cc: Chris Healy Cc: linux-iio@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Cameron commit 49deef1b1a385a8faccb222da4474bea073f5040 Author: Mohan Kumar Date: Sun Apr 14 18:53:38 2019 +0300 drivers/iio/gyro/mpu3050-core.c: This patch fix the following checkpatch warning. As per Documentation/timers/timers-howto.txt Msleep < 20ms can sleep for up to 20ms. so use usleep_range. Signed-off-by: Mohan Kumar Acked-by: Linus Walleij Signed-off-by: Jonathan Cameron commit edde945257e28104cf865d7d2b9b239f87d815d4 Author: Mircea Caprioru Date: Tue Apr 9 16:35:21 2019 +0300 iio: dac: ad5758: Modifications for new revision This patch will ensure compatibility with the new revision of the AD5758 dac converter. The modifications consist of removing the fault_prot_switch function since this option is no longer available, and enabling the ENABLE_PPC_BUFFERS bit in ADC_CONFIG register before setting the PPC current mode. The previous version of the chip was never released to customers so there is no need to support it going forwards. Signed-off-by: Mircea Caprioru Signed-off-by: Jonathan Cameron commit b9fedb0a177a3b05f5c5e85b499f0e5c96807036 Author: Lorenzo Bianconi Date: Tue Apr 9 22:49:09 2019 +0200 iio: imu: st_lsm6dsx: inline per-sensor data As it has been already done for other st sensors in 'commit 9049531c91b4 ("iio: accel: st_accel: inline per-sensor data")', get rid of some defines and just open code the values into the appropriate struct elements since the semantic meaning is inherent in the name of the C99-addressable fields and there is no reason to duplicate the code Signed-off-by: Lorenzo Bianconi Signed-off-by: Jonathan Cameron commit 8dd2d7c0fed7783c35a21c1c533216a18d98cd7b Author: Gregory CLEMENT Date: Fri Apr 12 11:15:37 2019 +0200 iio: adc: Add driver for the TI ADS8344 A/DC chips This adds support for the Texas Instruments ADS8344 ADC chip. This chip has a 16-bit 8-Channel ADC and is access directly through SPI. Signed-off-by: Gregory CLEMENT Signed-off-by: Jonathan Cameron commit 65c7a3d2cf0bcd528df88033580039b32db04a40 Author: Gregory CLEMENT Date: Fri Apr 12 11:15:36 2019 +0200 dt-bindings: iio: adc: Add bindings for TI ADS8344 A/DC chips This adds device tree bindings for the TI ADS8344 A/DC chips. Signed-off-by: Gregory CLEMENT Reviewed-by: Rob Herring Signed-off-by: Jonathan Cameron commit b074554617ad51798ff5785e42542abd41562f2e Author: Rui Miguel Silva Date: Fri Apr 12 17:49:01 2019 +0100 MAINTAINERS: add entry for fxas21002c gyro driver Add me as maintainer of the nxp fxas21002c gyroscope driver. Signed-off-by: Rui Miguel Silva Signed-off-by: Jonathan Cameron commit 4da38f1be6675734f3330578ebd2316848b383f0 Author: Rui Miguel Silva Date: Fri Apr 12 17:48:59 2019 +0100 iio: gyro: fxas21002c: add spi driver Add driver to talk over spi to a fxas21002c gyroscope device and use the core as main controller. Signed-off-by: Rui Miguel Silva Signed-off-by: Jonathan Cameron commit a034cbe1c412628383609f1634154348e00e2990 Author: Rui Miguel Silva Date: Fri Apr 12 17:48:58 2019 +0100 iio: gyro: fxas21002c: add i2c driver Add the real driver to talk over i2c and use the fxas21002c core for the main tasks. Signed-off-by: Rui Miguel Silva Signed-off-by: Jonathan Cameron commit a0701b6263aebdcb3f0b88add547f81e74da032b Author: Rui Miguel Silva Date: Fri Apr 12 17:48:57 2019 +0100 iio: gyro: add core driver for fxas21002c Add core support for the NXP fxas21002c Tri-axis gyroscope, using the iio subsystem. It supports PM operations, axis reading, temperature, scale factor of the axis, high pass and low pass filtering, and sampling frequency selection. It will have extras modules to support the communication over i2c and spi. Signed-off-by: Rui Miguel Silva Signed-off-by: Jonathan Cameron commit 2c4645439e8f2f6e7c37f158feae6f6a82baa910 Author: Jiang Biao Date: Mon Apr 22 10:49:43 2019 +0800 x86/irq: Fix outdated comments INVALIDATE_TLB_VECTOR_START has been removed by: 52aec3308db8("x86/tlb: replace INVALIDATE_TLB_VECTOR by CALL_FUNCTION_VECTOR") while VSYSCALL_EMU_VECTO(204) has also been removed, by: 3ae36655b97a("x86-64: Rework vsyscall emulation and add vsyscall= parameter") so update the comments in accordingly. Signed-off-by: Jiang Biao Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: bp@alien8.de Link: http://lkml.kernel.org/r/20190422024943.71918-1-benbjiang@tencent.com [ Improved the changelog. ] Signed-off-by: Ingo Molnar commit 1948d498dcf680bc650391f23da2f97e59f9126d Author: Sumeet Pawnikar Date: Mon Apr 15 20:18:30 2019 +0530 thermal: intel: int340x: processor_thermal_device: simplify to get driver data This simplifies getting the 'driver_data' from 'struct device' directly. Going through platform_device or pci_dev is not required. Also removes condition check as the private data stored with dev pointer, means irrespective of enumeration mode, we can use dev_get_drvdata(). This removes the unnecessary step back and forth. Signed-off-by: Sumeet Pawnikar Reviewed-by: Andy Shevchenko Signed-off-by: Zhang Rui commit b2377e032f17c3dd87739a97699f144ed00edf05 Author: Oded Gabbay Date: Mon Apr 22 11:49:06 2019 +0300 habanalabs: use ASIC functions interface for rreg/wreg This patch slightly changes the macros of RREG32 and WREG32, which are used when reading or writing from registers. Instead of directly calling a function in the common code from these macros, the new code calls a function from the ASIC functions interface. This change allows us to share much more code between real ASICs and simulators, which in turn reduces the maintenance burden and the chances for forgetting to port code between the ASIC files. The patch also implements the hl_poll_timeout macro, instead of calling the generic readl_poll_timeout macro. This is required to allow use of this macro in the simulator files. As a result from this change, more functions in goya.c are shared with the simulator and therefore, should not be defined as static. Signed-off-by: Oded Gabbay commit b9ac3849af412fd3887d7652bdbabf29d2aecc16 Author: Dave Young Date: Mon Apr 22 11:19:05 2019 +0800 x86/kdump: Fall back to reserve high crashkernel memory crashkernel=xM tries to reserve memory for the crash kernel under 4G, which is enough, usually. But this could fail sometimes, for example when one tries to reserve a big chunk like 2G, for example. So let the crashkernel=xM just fall back to use high memory in case it fails to find a suitable low range. Do not set the ,high as default because it allocates extra low memory for DMA buffers and swiotlb, and this is not always necessary for all machines. Typically, crashkernel=128M usually works with low reservation under 4G, so keep <4G as default. [ bp: Massage. ] Signed-off-by: Dave Young Signed-off-by: Borislav Petkov Reviewed-by: Ingo Molnar Acked-by: Baoquan He Cc: Dave Young Cc: David Howells Cc: Eric Biederman Cc: Greg Kroah-Hartman Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jiri Kosina Cc: Jonathan Corbet Cc: Juergen Gross Cc: Kees Cook Cc: Konrad Rzeszutek Wilk Cc: linux-doc@vger.kernel.org Cc: "Paul E. McKenney" Cc: Petr Tesarik Cc: piliu@redhat.com Cc: Ram Pai Cc: Sinan Kaya Cc: Thomas Gleixner Cc: Thymo van Beers Cc: vgoyal@redhat.com Cc: x86-ml Cc: Yinghai Lu Cc: Zhimin Gu Link: https://lkml.kernel.org/r/20190422031905.GA8387@dhcp-128-65.nay.redhat.com commit 9ca5c8e632ce8f144ec6d00da2dc5e16b41d593c Author: Dave Young Date: Sun Apr 21 11:50:59 2019 +0800 x86/kdump: Have crashkernel=X reserve under 4G by default The kdump crashkernel low reservation is limited to under 896M even for X86_64. This obscure and miserable limitation exists for compatibility with old kexec-tools but the reason is not documented anywhere. Some more tests/investigations about the background: a) Previously, old kexec-tools could only load purgatory to memory under 2G. Eric removed that limitation in 2012 in kexec-tools: b4f9f8599679 ("kexec x86_64: Make purgatory relocatable anywhere in the 64bit address space.") b) Back in 2013 Yinghai removed all the limitations in new kexec-tools, bzImage64 can be loaded anywhere: 82c3dd2280d2 ("kexec, x86_64: Load bzImage64 above 4G") c) Test results with old kexec-tools with old and latest kernels: 1. Old kexec-tools can not build with modern toolchain anymore, I built it in a RHEL6 vm. 2. 2.0.0 kexec-tools does not work with the latest kernel even with memory under 896M and gives an error: "ELF core (kcore) parse failed" For that it needs below kexec-tools fix: ed15ba1b9977 ("build_mem_phdrs(): check if p_paddr is invalid") 3. Even with patched kexec-tools which fixes 2), it still needs some other fixes to work correctly for KASLR-enabled kernels. So the situation is: * Old kexec-tools is already broken with latest kernels. * We can not keep these limitations forever just for compatibility with very old kexec-tools. * If one must use old tools then he/she can choose crashkernel=X@Y. * People have reported bugs where crashkernel=384M failed because KASLR makes the 0-896M space sparse. * Crashkernel can reserve in low or high area, it is natural to understand low as memory under 4G. Hence drop the 896M limitation and change crashkernel low reservation to reserve under 4G by default. Signed-off-by: Dave Young Signed-off-by: Borislav Petkov Reviewed-by: Ingo Molnar Acked-by: Baoquan He Cc: Dave Hansen Cc: David Howells Cc: Eric Biederman Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Juergen Gross Cc: Petr Tesarik Cc: piliu@redhat.com Cc: Ram Pai Cc: Sinan Kaya Cc: Thomas Gleixner Cc: vgoyal@redhat.com Cc: x86-ml Cc: Yinghai Lu Cc: Zhimin Gu Link: https://lkml.kernel.org/r/20190421035058.943630505@redhat.com commit a691f3334d58b833e41d56de1b9820e687edcd78 Author: Guo Ren Date: Mon Apr 22 14:46:44 2019 +0800 csky/syscall_trace: Fixup return processing flow The function tracehook_report_syscall_entry's return value is __must_check attribute. We should add return processing flow in ptrace.c and set the syscall number to -1 when failed just like riscv's. Signed-off-by: Guo Ren Cc: Arnd Bergmann commit 1a23710c71bbfe2df10584afb9971b99c45e2576 Author: Guo Ren Date: Mon Apr 22 14:21:09 2019 +0800 csky: Fixup compile warning The function of __va() will return "void *", but the pgd_base is unsigned long. Signed-off-by: Guo Ren Cc: Arnd Bergmann commit daac95e70f482e7add3305ee5e38f00dca505268 Author: Mao Han Date: Mon Apr 15 17:17:29 2019 +0800 csky: Add support for perf registers sampling This patch implements the perf registers sampling and validation API for csky arch. The valid registers and their register ID are defined in perf_regs.h. Perf tool can backtrace in userspace with unwind library and the registers/user stack dump support. Signed-off-by: Mao Han Signed-off-by: Guo Ren commit 0eaf50deec8d550164b3cf6a5d68ec1072916f0e Author: Mao Han Date: Thu Apr 18 14:20:40 2019 +0800 csky: add page fault perf event support This patch add support for page fault count, major fault count and minorfault count. Without this patch page faults are not sampled for perf event. Performance counter stats for '/usr/lib/perf-test/callchain_test': 0 page-faults # 0.000 K/sec Signed-off-by: Mao Han Signed-off-by: Guo Ren commit 683fafebf93bcde9948246849348b888e185cb22 Author: Guo Ren Date: Fri Apr 19 17:10:52 2019 +0800 csky: Use va_pa_offset instead of phys_offset The name of phys_offset is so common for global export and it may conflict with some local name. So change phys_offset to va_pa_offset which also used by riscv. Also use __pa() and __va() instead of using phys_offset directly. Signed-off-by: Guo Ren Cc: Arnd Bergmann commit 205353fa06cc5dbfe1949de013ba905bb151c702 Author: Guo Ren Date: Fri Apr 12 19:08:34 2019 +0800 csky: Support vmlinux bootup with MMU off Modify SETUP_MMU macro to fit on both MMU-on or MMU-off enviornment and vmlinux could bootup from MMU off enviornment for some cases. Unify the style of _start and _start_smp_secondary in head.S to make head.S looks more concise and easy to understand. Signed-off-by: Guo Ren Cc: Arnd Bergmann commit b4bf274198bd415e66af0b54a2e181c59fd43ba4 Author: Mao Han Date: Wed Apr 10 10:27:10 2019 +0800 csky: Add perf_arch_fetch_caller_regs support In trace events as tracepoints context are not able to be retrieve with task_pt_regs. Without arch caller regs support the pt_regs context will be all zero, perf can not parsing the callchain and resolving the symbols correctly, some time will even get into deadlock while handling the page fault, eg: perf kmem —page record ls Changelog - Add test case cmd in comment - Use regs_fp(regs) which is defined in abi/regdef.h Signed-off-by: Mao Han Signed-off-by: Guo Ren commit 981bbf274b64496fd4376b44120d47dae4ca94e8 Author: Guo Ren Date: Wed Apr 10 10:55:07 2019 +0800 csky: Fixup wrong update_mmu_cache implementation In our stress test, we found some crash problem caused by: if (!(vma->vm_flags & VM_EXEC)) return; in update_mmu_cache(). Seems current update_mmu_cache implementation is wrong and we retread to the conservative implementation. Also the usage of kmap_atomic in update_mmu_cache is risky, page-virtual may be scheduled out and changed, so we must use preempt_disable & pagefault_disable which is called by kmap_atomic(). Signed-off-by: Guo Ren Cc: Arnd Bergmann commit f62e31623d718a7c20d9da98de48361624d7360a Author: Guo Ren Date: Mon Apr 8 11:12:25 2019 +0800 csky: Support dynamic start physical address Before this patch csky-linux need CONFIG_RAM_BASE to determine start physical address. Now we use phys_offset variable to replace the macro of PHYS_OFFSET and we setup phys_offset with real physical address which is determined during startup in head.S. With this patch we needn't re-compile kernel for different start physical address. ie: 0x0 / 0xc0000000 start physical address could use the same vmlinux, be care different start address must be 512MB aligned. Signed-off-by: Guo Ren Cc: Arnd Bergmann commit bf241682936293291dcf40fd93cdd0f5e6222902 Author: Guo Ren Date: Mon Apr 1 19:06:09 2019 +0800 csky: Reconstruct signal processing Linux kernel has provided some apis for arch signal's implementation. For example: restore_saved_sigmask() set_current_blocked() restore_altstack() But in last version of csky signal.c didn't use them and some codes are confusing, so reconstruct signal.c with reference to riscv's code. Now csky signal.c implementation are very close to riscv and we can get the following benefits: - Clear code structure - The signal code of riscv and csky can be reviewed together - Promoting the unification of arch's signal implementation Also modified the related code in entry.S Signed-off-by: Guo Ren Cc: Arnd Bergmann commit f4625ee0e40a5c724bb3f3eb7fd89e491bfd7646 Author: Guo Ren Date: Sat Mar 30 23:44:34 2019 +0800 csky: Use in_syscall & forget_syscall instead of r11_sig We could use regs->sr 16-24 bits to detect syscall: VEC_TRAP0 and r11_sig is no necessary for current implementation. In this patch, we implement the in_syscall and forget_syscall which are inspired from arm & nds32, but csky pt_regs has no syscall_num element and we just set zero to regs->sr's vector-bits-field instead. For ret_from_fork, current task was forked from parent which is in syscall progress and its regs->sr has been already setted with VEC_TRAP0. See: arch/csky/kernel/process.c: copy_thread() Signed-off-by: Guo Ren commit f335b10f3b6ca2d11adef95092fff65152c31b48 Author: Guo Ren Date: Tue Mar 26 15:56:33 2019 +0800 csky: Add non-uapi asm/ptrace.h namespace Move #ifdef __KERNEL__ code in the uapi namespace to non-uapi include/asm/ptrace.h namespace and remove #ifdef __KERNEL__ in include/asm/ptrace.h. Seperate ptrace.h in uapi and non-uapi is more common and clear. Signed-off-by: Guo Ren Cc: Dmitry V. Levin commit ce63cd5bd4482ded3c5907a48928627de623b185 Author: Jagadeesh Pagadala Date: Sat Mar 23 17:25:17 2019 +0530 csky: mm/fault.c: Remove duplicate header Remove duplicate header which is included twice. Signed-off-by: Jagadeesh Pagadala Signed-off-by: Guo Ren commit 1b2707fb1189b890e538ed09ca3f3512173cb836 Author: Masahiro Yamada Date: Fri Mar 22 20:19:14 2019 +0900 csky: remove redundant generic-y Since commit 7cbbbb8bc297 ("kbuild: warn redundant generic-y"), redundant generic-y is reported. I missed to delete this one. scripts/Makefile.asm-generic:25: redundant generic-y found in arch/csky/include/asm/Kbuild: ftrace.h In this case, csky-specific implementation exists in arch/csky/include/asm/ftrace.h Signed-off-by: Masahiro Yamada Signed-off-by: Guo Ren commit 2f7932b011e7fb9f98732f95a68f6017d4d8c542 Author: Guo Ren Date: Wed Mar 20 18:27:27 2019 +0800 csky: Update syscall_trace_enter/exit implementation Previous syscall_trace implementation couldn't support AUDITSYSCALL and SYSCALL_TRACEPOINTS. Now we redesign it to support audit_syscall and syscall_tracepoints just like other archs'. Signed-off-by: Guo Ren Cc: Dmitry V. Levin Cc: Arnd Bergmann commit cfa4d93b977a1b1129e7207d11b5daecdf0c56c4 Author: Mao Han Date: Thu Feb 21 21:41:26 2019 +0800 csky: Add perf callchain support This patch add support for perf callchain sampling on csky platform. As fp is used to unwind the stack, the program being sampled and the C library need to be compiled with -mbacktrace for user callchains, kernel callchains require CONFIG_STACKTRACE = y. Changelog: - Coding convention with Christoph's advice for riscv's. Signed-off-by: Mao Han Signed-off-by: Guo Ren Cc: Christoph Hellwig commit 28bb030f93334495ddc64ade0bff18721bf7023d Author: Guo Ren Date: Fri Mar 1 08:50:36 2019 +0800 csky/ftrace: Add dynamic function tracer (include graph tracer) Support dynamic ftrace including dynamic graph tracer. Gcc-csky with -pg will produce call site in every function prologue and we can use these call site to hook trace function. gcc with -pg origin call site: push lr jbsr _mcount nop32 nop32 If the (callee - caller)'s offset is in range of bsr instruction, we'll modify code with: push lr bsr _mcount nop32 nop32 Else if the (callee - caller)'s offset is out of bsr instrunction, we'll modify code with: push lr movih r26, ... ori r26, ... jsr r26 (r26 is reserved for jsr link reg in csky abiv2 spec.) Signed-off-by: Guo Ren commit 3dfc242f11d792535db774613c6fd1df565c2137 Author: Guo Ren Date: Tue Feb 19 12:32:41 2019 +0800 csky: Fixup vdsp&fpu issues in kernel This fixup is continue to commit 35ff802af1c4 (csky: fixup remove vdsp implement for kernel.) and in that patch I didn't finish the job. We must forbid gcc to generate any vdsp & fpu instructions and remove vdsp asm in memmove.S. eg: For GCC it's -mcpu=ck860 and For AS it's -Wa,-mcpu=ck860fv Signed-off-by: Guo Ren commit 6eb61a9361951e466628bcb0abaf0a197181ec97 Author: Zhang Rui Date: Sun Apr 21 16:45:11 2019 +0800 thermal/int3403_thermal: favor _TMP instead of PTYP All the INT3403 devices with _TMP can be a sensor. Link: https://bugzilla.kernel.org/show_bug.cgi?id=202671 Signed-off-by: Zhang Rui commit be659b8d3c79afc54e087ebf8d849685d7b0d395 Author: David Ahern Date: Sun Apr 21 17:39:18 2019 -0700 ipv6: Restore RTF_ADDRCONF check in rt6_qualify_for_ecmp The RTF_ADDRCONF flag filters out routes added by RA's in determining which routes can be appended to an existing one to create a multipath route. Restore the flag check and add a comment to document the RA piece. Fixes: 4e54507ab1a9 ("ipv6: Simplify rt6_qualify_for_ecmp") Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 00c5ce8ac0233fb8975448e720bb1702b36d0725 Author: Ran Wang Date: Thu Apr 18 03:42:25 2019 +0000 arm64: dts: lx2160a: add cpu idle support lx2160a supports pw20 which could help save more power during cpu is dile. It needs system firmware support via PSCI. Signed-off-by: Ran Wang Signed-off-by: Shawn Guo commit ade5a57e304e2a880135549393970de03bde4a3a Author: Lucas Stach Date: Mon Apr 15 15:59:22 2019 +0200 arm64: dts: imx8mq: fix GPU clock frequency v2 of "clk: imx: Refactor entire sccg pll clk" dropped the implicit reparenting of the PLL output from the bypass clock to the real PLL. The commit introducing the GPU node had only been tested against v1 of this patch. Without an explicit reparent to the real PLL the GPU is stuck at the bypass clock rate of 25MHz, serverly hampering performance. Signed-off-by: Lucas Stach Reviewed-by: Abel Vesa Signed-off-by: Shawn Guo commit eda73fc8146f633c5c25fa4d25564bdc686ce3e8 Author: Lucas Stach Date: Mon Apr 15 15:01:18 2019 +0200 arm64: dts: fsl: imx8mq-evk: link regulator to GPU domain Link the SW1AB regulator to the GPU domain, so that it gets enabled when needed. Signed-off-by: Lucas Stach Signed-off-by: Shawn Guo commit e85c9d0faa75049290f626c70f1374a1bd6d1b24 Author: Leonard Crestez Date: Fri Apr 12 14:10:03 2019 +0000 arm64: dts: imx8mm: Add cpufreq properties This is very similar to imx8mq cpufreq-dt support. Operating points are from datasheet: https://www.nxp.com/docs/en/data-sheet/IMX8MMCEC.pdf Higher opps were omitted (just like imx8mq) because it requires checking speed grade from OCOTP fuses. Signed-off-by: Leonard Crestez Signed-off-by: Shawn Guo commit 7b2ac489c3972bb73951c04fe438f0af0ef93fb3 Author: Leonard Crestez Date: Sun Apr 21 15:27:46 2019 +0800 arm64: dts: imx8qxp-mek: Add i2c1 with pca9646 Add an initial description of the i2c1 bus with a pca9646 i2c switch and various gpio expanders and sensors behind that. Only add the sensors which already have upstream drivers. According to the datasheet the pca9646 is software compatible with pca9546 so no driver changes should be required. Signed-off-by: Leonard Crestez Signed-off-by: Shawn Guo commit 6b2bcbd8f9dbde57cc0400497944822bc8884b91 Author: Anson Huang Date: Tue Apr 9 05:00:01 2019 +0000 arm64: dts: imx8qxp: enable scu general irq channel On i.MX8QXP, SCU uses MU1 general interrupt channel #3 to notify user for IRQs of RTC alarm, thermal alarm and WDOG etc., mailbox RX doorbell mode is used for this function, this patch adds support for it. Signed-off-by: Anson Huang Reviewed-by: Dong Aisheng Signed-off-by: Shawn Guo commit 45d2c84eb3a2d01af554f85b9ba67e3a3189d7b9 Author: Lucas Stach Date: Thu Apr 4 18:52:11 2019 +0200 arm64: dts: imx8mq: add GPU node This enables the Vivante GC7000L GPU on the i.MX8MQ SoC. Signed-off-by: Lucas Stach Reviewed-by: Guido Günther Signed-off-by: Shawn Guo commit 4a13b3bec3b49cf979cc62005cc3af5e502899c9 Author: Lucas Stach Date: Wed Apr 3 18:45:55 2019 +0200 arm64: dts: imx: add Zii Ultra board support The Zii Ultra design, also known as RDU3, is the i.MX8M based successor to the the i.MX6 based RDU2. This adds the basic board support for all components which are supported by the upstream kernel at this time. The board comes in 2 different versions, called RMB3 and Zest, which are derived from the same design, but have different layouts and a few small differences in the populated components. Signed-off-by: Lucas Stach Reviewed-by: Fabio Estevam Signed-off-by: Shawn Guo commit 2ea5c9b28fab2f34a0ac5d9b3d17216dd35d3162 Author: Andrey Smirnov Date: Sun Apr 14 11:35:58 2019 -0700 ARM: dts: vf610-zii-dev-rev-b: Specify CS as GPIO_ACTIVE_LOW in spi0 Specify CS as GPIO_ACTIVE_LOW in spi0 to fix the following warning: m25p128@0 enforce active low on chipselect handle Signed-off-by: Andrey Smirnov Cc: Shawn Guo Cc: Chris Healy Cc: Andrew Lunn Cc: Fabio Estevam Cc: linux-kernel@vger.kernel.org Signed-off-by: Shawn Guo commit 1437626ec447400d66738b7af5006df456142f44 Author: Andrey Smirnov Date: Sun Apr 14 11:35:57 2019 -0700 ARM: dts: vf610-zii-dev: Mark i2c0 SCL as GPIO_OPEN_DRAIN Mark i2c0 SCL as GPIO_OPEN_DRAIN to fix the following warning: gpio-36 (scl): enforced open drain please flag it properly in DT/ACPI DSDT/board file Signed-off-by: Andrey Smirnov Cc: Shawn Guo Cc: Chris Healy Cc: Andrew Lunn Cc: Fabio Estevam Cc: linux-kernel@vger.kernel.org Signed-off-by: Shawn Guo commit 69ab5392f5177aad19e006c5ba8e78bf059fee68 Author: Andrey Smirnov Date: Sun Apr 14 11:34:03 2019 -0700 ARM: dts: Add support for ZII i.MX7 RPU2 board Add support for ZII's i.MX7 based Remote Peripheral Unit 2 (RPU2) board. Signed-off-by: Andrey Smirnov Reviewed-by: Fabio Estevam Cc: Shawn Guo Cc: Chris Healy Cc: Andrew Lunn Cc: Fabio Estevam Cc: Rob Herring Cc: linux-kernel@vger.kernel.org Cc: devicetree@vger.kernel.org Signed-off-by: Shawn Guo commit f0e79eaf310c61cf4dee08dc9783dda55ac9f9ce Author: Andrey Smirnov Date: Mon Apr 22 09:00:45 2019 +0800 dt-bindings: arm: fsl: Add support for ZII i.MX7 RPU2 board Add support for ZII i.MX7 RPU2 board. Signed-off-by: Andrey Smirnov Reviewed-by: Rob Herring Signed-off-by: Shawn Guo commit 5ea0c200bd30a96732fb50a5d7428d0d75b39d28 Author: Bruno Thomsen Date: Tue Apr 16 11:08:05 2019 +0200 ARM: dts: bugfix tqma7 soft reset issue Running reboot command on the TQMa7 board would just hang infinite at the end of the system shutdown process. Handling of i.MX7 errata e10574: Watchdog: A watchdog timeout or software trigger will not reset the SOC. Moved pinctrl from common mba7 to common tqma7 dtsi as it improves readability of errata handling. Most integrators of this SoM will likely use the development board as inspiration for handling this SoC issue. Signed-off-by: Bruno Thomsen Signed-off-by: Shawn Guo commit 52fde6e70cccc2fcf3f39fed0d0392960e2c2b03 Author: Steven Rostedt (VMware) Date: Sun Apr 21 19:40:44 2019 -0400 function_graph: Have selftest also emulate tr->reset() as it did with tr->init() The function_graph boot up self test emulates the tr->init() function in order to add a wrapper around the function graph tracer entry code to test for lock ups and such. But it does not emulate the tr->reset(), and just calls the function_graph tracer tr->reset() function which will use its own fgraph_ops to unregister function tracing with. As the fgraph_ops is becoming more meaningful with the register_ftrace_graph() and unregister_ftrace_graph() functions, the two need to be the same. The emulated tr->init() uses its own fgraph_ops descriptor, which means the unregister_ftrace_graph() must use the same ftrace_ops, which the selftest currently does not do. By emulating the tr->reset() as the selftest does with the tr->init() it will be able to pass the same fgraph_ops descriptor to the unregister_ftrace_graph() as it did with the register_ftrace_graph(). Signed-off-by: Steven Rostedt (VMware) commit d5984d2a312144bedccf32aea2298f8df05bb617 Author: Gustavo A. R. Silva Date: Fri Jan 4 11:43:27 2019 -0600 i2c: mux: demux-pinctrl: use struct_size() in devm_kzalloc() One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example: struct foo { int stuff; void *entry[]; }; instance = devm_kzalloc(dev, sizeof(struct foo) + sizeof(void *) * count, GFP_KERNEL); Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper: instance = devm_kzalloc(dev, struct_size(instance, entry, count), GFP_KERNEL); This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Acked-by: Wolfram Sang Signed-off-by: Peter Rosin commit f1fb64b04bf414ab04e31ac107bb28137105c5fd Author: Robert Shearman Date: Thu Feb 28 11:43:43 2019 +0000 i2c: mux: pca954x: allow management of device idle state via sysfs The behaviour, by default, to not deselect after each transfer is unsafe when there is a device with an address that conflicts with another device on another mux on the same parent bus, and it may not be convenient to use devicetree to set the deselect mux, e.g. when running on x86_64 when ACPI is used to discover most of the device hierarchy. Therefore, provide the ability to set the idle state behaviour using a new sysfs file, idle_state as a complement to the method of instantiating the device via sysfs. The possible behaviours are disconnect, i.e. to deselect all channels from the mux, as-is (the default), i.e. leave the last channel selected, and set a predetermined channel. The current behaviour of leaving the channel as-is after each transaction is preserved. Signed-off-by: Robert Shearman Signed-off-by: Peter Rosin commit 590085f0f25a169772180f57f56deb92b18ea302 Author: Robert Shearman Date: Thu Feb 28 11:43:42 2019 +0000 i2c: mux: pca9541: remove support for unused platform data There are no in-tree users of the platform data, so remove it to simplify the code slightly. Remove the now unused pca954x.h platform data header. Signed-off-by: Robert Shearman Signed-off-by: Peter Rosin commit ddd7c492d419eaf697733ba4dbad31662d355fc4 Author: Robert Shearman Date: Thu Feb 28 11:43:41 2019 +0000 i2c: mux: pca954x: remove support for unused platform data There are no in-tree users of the pca954x platform data and the per-channel deselect configuration complicates efforts to export the configuration to user-space in a way that could be applied to other muxes. Therefore, remove support for the pca954x platform data. Signed-off-by: Robert Shearman Signed-off-by: Peter Rosin commit 3b8a1f45e1b3886593a7cbb0aca09d4d0a9e23df Merge: c7a6b9e4df4c 085b7755808a Author: Greg Kroah-Hartman Date: Sun Apr 21 23:20:08 2019 +0200 Merge 5.1-rc6 into tty-next We want the serial/tty fixes in here as well. Signed-off-by: Greg Kroah-Hartman commit 817de6b85914a3dda72b971c074d4d342965fba0 Merge: 7dc7967fc39a 085b7755808a Author: Greg Kroah-Hartman Date: Sun Apr 21 23:18:44 2019 +0200 Merge 5.1-rc6 into staging-next We want the fixes in here as well as this resolves an iio driver merge issue. Signed-off-by: Greg Kroah-Hartman commit 3a26172437bb5ecdf6921e3ae24730ef37d3c860 Merge: cef62a615d22 085b7755808a Author: Greg Kroah-Hartman Date: Sun Apr 21 23:14:47 2019 +0200 Merge 5.1-rc6 into char-misc-next We want the fixes, and this resolves a merge error in the fastrpc driver. Signed-off-by: Greg Kroah-Hartman commit ea2f8d60603efbd1cb4e193a593945a2fe24d264 Author: Borislav Petkov Date: Sun Apr 21 20:35:24 2019 +0200 x86/fault: Make fault messages more succinct So we are going to be staring at those in the next years, let's make them more succinct. In particular: - change "address = " to "address: " - "-privileged" reads funny. It should be simply "kernel" or "user" - "from kernel code" reads funny too. "kernel mode" or "user mode" is more natural. An actual example says more than 1000 words, of course: [ 0.248370] BUG: kernel NULL pointer dereference, address: 00000000000005b8 [ 0.249120] #PF: supervisor write access in kernel mode [ 0.249717] #PF: error_code(0x0002) - not-present page Signed-off-by: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: dave.hansen@linux.intel.com Cc: luto@kernel.org Cc: riel@surriel.com Cc: sean.j.christopherson@intel.com Cc: yu-cheng.yu@intel.com Link: http://lkml.kernel.org/r/20190421183524.GC6048@zn.tnic Signed-off-by: Ingo Molnar commit 4e54507ab1a9da05238b986292f6cb702e6696c7 Author: David Ahern Date: Sun Apr 21 08:49:01 2019 -0700 ipv6: Simplify rt6_qualify_for_ecmp After commit c7a1ce397ada ("ipv6: Change addrconf_f6i_alloc to use ip6_route_info_create"), the gateway is no longer filled in for fib6_nh structs in a prefix route. Accordingly, the RTF_ADDRCONF flag check can be dropped from the 'rt6_qualify_for_ecmp'. Further, RTF_DYNAMIC is only set in rt6_info instances, so it can be removed from the check as well. This reduces rt6_qualify_for_ecmp and the mlxsw version to just checking if the nexthop has a gateway which is the real indication of whether entries can be coalesced into a multipath route. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit fa8b9e8bea50c226559381b1ea2dee7329031625 Author: Fuqian Huang Date: Sun Apr 21 19:48:26 2019 +0800 net: hippi:Fix misuse of %x in rrunner.c The pointer should be printed with %p or %px rather than cast to unsigned long type and printed with %08lx. Change %08lx to %p to print the pointer. Signed-off-by: Fuqian Huang Signed-off-by: David S. Miller commit 966cddef20a7a43dc07de4b59997f384b4fd103a Author: Fuqian Huang Date: Sun Apr 21 19:48:06 2019 +0800 net: ax25: fix misuse of %x Pointers should be printed with %p or %px rather than cast to long type and printed with %8.8lx. Change %8.8lx to %p to print the pointer. Signed-off-by: Fuqian Huang Signed-off-by: David S. Miller commit 05453eadbf89c4f428ec0e6e962348f18e3a0caa Author: Fuqian Huang Date: Sun Apr 21 19:46:54 2019 +0800 atm: iphase: fix misuse of %x Pointers should be printed with %p or %px rather than cast to long type and printed with %x. Change %x to %p to print the pointers. Signed-off-by: Fuqian Huang Signed-off-by: David S. Miller commit f9e0d65b1fe3659d299b76c82a4b44a7d71c41e4 Merge: 4ef6cbe80d71 05414dd116c5 Author: David S. Miller Date: Sun Apr 21 10:31:45 2019 -0700 Merge branch 'mlxsw-Small-routing-improvements' Ido Schimmel says: ==================== mlxsw: Small routing improvements Patch #1 switches the driver to use a unique and stable ECMP/LAG seed. This allows for consistent behavior across reboots and avoids hash polarization at the same time. Patch #2 relaxes the FIB rule validation in the driver to allow the installation of rules that direct locally generated traffic (iif=lo). This does not result in a discrepancy between both data paths because packets received by the device would never match such rules. ==================== Signed-off-by: David S. Miller commit 05414dd116c549a0b9dd57ee4e73ddd9a0038e41 Author: Ido Schimmel Date: Sun Apr 21 07:18:36 2019 +0000 mlxsw: spectrum_router: Relax FIB rule validation Currently, mlxsw does not support policy-based routing (PBR) and therefore forbids the installation of non-default FIB rules except for the l3mdev rule which is used for VRFs. Relax the check to allow the installation of FIB rules that would never match packets received by the device. Specifically, if the iif is that of the loopback netdev. This is useful for users that need to redirect locally generated packets based on FIB rules. Signed-off-by: Ido Schimmel Acked-by: Jiri Pirko Tested-by: Alexander Petrovskiy Signed-off-by: David S. Miller commit fa73989f26973fa8043252ae278533eda3b8a658 Author: Ido Schimmel Date: Sun Apr 21 07:18:34 2019 +0000 mlxsw: spectrum: Use a stable ECMP/LAG seed In order to get a consistent behavior of traffic flows across reboots / module unload, we need to use the same ECMP/LAG seed. Calculate the seed by hashing the base MAC of the device. This results in a seed that is both unique (to avoid polarization) and consistent. Signed-off-by: Ido Schimmel Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit e97bb6d478c2943df0867f7fe72ffacc4f993301 Author: Thomas Schreiber Date: Tue Feb 26 08:46:11 2019 +0200 arm64: dts: clearfog-gt-8k: add wlan_disable signal hog There is currently no DT binding for GPIO rfkill signals. To make mini-PCIe attached WiFi devices work, use gpio-hog to hold the wlan_disable signal de-asserted. Signed-off-by: Thomas Schreiber [baruch: add pinctrl node; rename tag] Signed-off-by: Baruch Siach Signed-off-by: Gregory CLEMENT commit 7971cc408d11e9fb6dd2823f81d3a23465700dd0 Author: Chris Packham Date: Mon Feb 18 15:46:45 2019 +1300 ARM: mvebu: kirkwood: remove error message when retrieving mac address Kirkwood has always had the ability to retrieve the local-mac-address from the hardware (usually this was configured by the bootloader). This is particularly useful when dealing with a legacy non-DT aware bootloader. The "error" message just indicated that the board used an old bootloader and in many cases users can't do anything about this. The message probably should have been pr_info() to inform the user that the kernel has been helpful but rather than than let's remove it entirely to make the kernel less noisy. Signed-off-by: Chris Packham Signed-off-by: Gregory CLEMENT commit 71f2b9957d983659586308c9f64acc4dc3d22aa2 Author: Chris Packham Date: Wed Mar 6 09:19:22 2019 +1300 ARM: dts: armada-38x: add interrupts for watchdog The first interrupt is for the regular watchdog timeout. Normally the RSTOUT line will trigger a reset before this interrupt fires but on systems with a non-standard reset it may still trigger. The second interrupt is for a timer1 which is used as a pre-timeout for the watchdog. Signed-off-by: Chris Packham Signed-off-by: Gregory CLEMENT commit b02872df58aca66d0e7af3ec5065dbc6f0630dd1 Author: Jordan Crouse Date: Wed Apr 10 10:58:16 2019 -0600 drm/msm/a6xx: Don't enable GPU state code if dependencies are missing Add CONFIG_DRM_MSM_GPU_STATE to conditionally compile Adreno GPU state code depending on the availability of the dependencies. Reported-by: Hulk Robot Reported-by: YueHaibing Fixes: 1707add81551 ("drm/msm/a6xx: Add a6xx gpu state") Signed-off-by: Jordan Crouse Signed-off-by: Rob Clark commit b55ee6b243bd2743b9cb20b6aa812091748c4304 Author: Jordan Crouse Date: Fri Apr 19 13:46:16 2019 -0600 dt-bindings: drm/msm/gpu: Document a5xx / a6xx zap shader region Describe the zap-shader node that defines a reserved memory region to store the zap shader. Signed-off-by: Jordan Crouse Signed-off-by: Rob Clark commit abccb9fe326743b72c8099d5cc039e9038bc50da Author: Jordan Crouse Date: Fri Apr 19 13:46:15 2019 -0600 drm/msm/a6xx: Add zap shader load The a6xx GPU powers on in secure mode which restricts what memory it can write to. To get out of secure mode the GPU driver can write to REG_A6XX_RBBM_SECVID_TRUST_CNTL but on targets that are "secure" that register region is blocked and writes will cause the system to go down. For those targets we need to execute a special sequence that involves loadinga special shader that clears the GPU registers and use a PM4 sequence to pull the GPU out of secure. Add support for loading the zap shader and executing the secure sequence. For targets that do not support SCM or the specific SCM sequence this should fail and we would fall back to writing the register. Signed-off-by: Jordan Crouse Signed-off-by: Rob Clark commit a9e2559c931d7c44ae7d677b12093956ffa864b9 Author: Jordan Crouse Date: Fri Apr 19 13:46:14 2019 -0600 drm/msm/gpu: Move zap shader loading to adreno a5xx and a6xx both share (mostly) the same code to load the zap shader and bring the GPU out of secure mode. Move the formerly 5xx specific code to adreno to make it available for a6xx too. Signed-off-by: Jordan Crouse Signed-off-by: Rob Clark commit 026ef6354caa661ddd4c399590048e72a9d420bf Author: Jordan Crouse Date: Fri Apr 19 13:56:27 2019 -0600 dt-bindings: drm/msm/a6xx: Document interconnect properties for GPU Add documentation for the interconnect and interconnect-names bindings for the GPU node as detailed by bindings/interconnect/interconnect.txt. Signed-off-by: Jordan Crouse Reviewed-by: Douglas Anderson Reviewed-by: Rob Herring Acked-by: Georgi Djakov Signed-off-by: Rob Clark commit 04eb7fd961bc8ea587cb5cc8639491c7d3d38471 Author: Thomas Petazzoni Date: Wed Feb 20 10:30:24 2019 +0100 arm64: defconfig: enable mv-xor driver The mv-xor DMA driver is used for the XOR engine found in the ARM64 Marvell Armada 3720 SoC, so it makes sense to have it enabled in the arm64 defconfig. A recent boot-time regression was found in mv-xor, which would have been more easily noticed with this driver enabled by default. Signed-off-by: Thomas Petazzoni Cc: Robin Murphy Cc: John David Anglin Signed-off-by: Gregory CLEMENT commit d691171d61b635fa36860ca65c4f8fde718abd09 Author: Oded Gabbay Date: Sun Apr 21 16:20:46 2019 +0300 uapi/habanalabs: add missing fields in bmon params This patch adds missing fields of start address 0 and 1 in the bmon parameter structure that is received from the user in the debug IOCTL. Without these fields, the functionality of the bmon trace is broken, because there is no configuration of the base address of the filter of the bus monitor. Signed-off-by: Oded Gabbay commit 26ad26718dfaa7cf49d106d212ebf2370076c253 Author: Aneesh Kumar K.V Date: Sat Mar 30 11:13:45 2019 +0530 powerpc/mm: Fix section mismatch warning This patch fix the below section mismatch warnings. WARNING: vmlinux.o(.text+0x2d1f44): Section mismatch in reference from the function devm_memremap_pages_release() to the function .meminit.text:arch_remove_memory() WARNING: vmlinux.o(.text+0x2d265c): Section mismatch in reference from the function devm_memremap_pages() to the function .meminit.text:arch_add_memory() Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit 5f53d28608f600d9ee07378453bd2d49e132fff4 Author: Aneesh Kumar K.V Date: Wed Apr 17 18:29:19 2019 +0530 powerpc/mm/hash: Rename KERNEL_REGION_ID to LINEAR_MAP_REGION_ID The region actually point to linear map. Rename the #define to clarify thati. Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit a092a03fa942b14369b8edea7690cd96206403f9 Author: Aneesh Kumar K.V Date: Wed Apr 17 18:29:18 2019 +0530 powerpc/mm: Print kernel map details to dmesg This helps in debugging. We can look at the dmesg to find out different kernel mapping details. On 4K config this shows kernel vmalloc start = 0xc000100000000000 kernel IO start = 0xc000200000000000 kernel vmemmap start = 0xc000300000000000 On 64K config: kernel vmalloc start = 0xc008000000000000 kernel IO start = 0xc00a000000000000 kernel vmemmap start = 0xc00c000000000000 Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit 1c946c1b7f2ba40bc9b521219ad34e5da3fc3088 Author: Aneesh Kumar K.V Date: Wed Apr 17 18:29:17 2019 +0530 powerpc/mm/hash: Simplify the region id calculation. This reduces multiple comparisons in get_region_id to a bit shift operation. Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit 53ed7a5947de2e19c270a0bc0c29257c6d004b0f Author: Aneesh Kumar K.V Date: Wed Apr 17 18:29:16 2019 +0530 powerpc/mm: Drop the unnecessary region check All the regions are now mapped with top nibble 0xc. Hence the region id check is not needed for virt_addr_valid() Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit e09093927e54323018dbb3bf6189c85a7f176bae Author: Aneesh Kumar K.V Date: Wed Apr 17 18:29:15 2019 +0530 powerpc/mm: Validate address values against different region limits This adds an explicit check in various functions. Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit 0034d395f89d9c092bb15adbabdca5283e258b41 Author: Aneesh Kumar K.V Date: Wed Apr 17 18:29:14 2019 +0530 powerpc/mm/hash64: Map all the kernel regions in the same 0xc range This patch maps vmalloc, IO and vmemap regions in the 0xc address range instead of the current 0xd and 0xf range. This brings the mapping closer to radix translation mode. With hash 64K page size each of this region is 512TB whereas with 4K config we are limited by the max page table range of 64TB and hence there regions are of 16TB size. The kernel mapping is now: On 4K hash kernel_region_map_size = 16TB kernel vmalloc start = 0xc000100000000000 kernel IO start = 0xc000200000000000 kernel vmemmap start = 0xc000300000000000 64K hash, 64K radix and 4k radix: kernel_region_map_size = 512TB kernel vmalloc start = 0xc008000000000000 kernel IO start = 0xc00a000000000000 kernel vmemmap start = 0xc00c000000000000 Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit a35a3c6f60657812366fca86a9ce71df1b8f7aff Author: Aneesh Kumar K.V Date: Wed Apr 17 18:29:13 2019 +0530 powerpc/mm/hash64: Add a variable to track the end of IO mapping This makes it easy to update the region mapping in the later patch Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit ef629cc5bf0543eb57d6e344ba776880ac35fd00 Author: Aneesh Kumar K.V Date: Wed Apr 17 18:33:51 2019 +0530 powerc/mm/hash: Reduce hash_mm_context size Allocate subpage protect related variables only if we use the feature. This helps in reducing the hash related mm context struct by around 4K Before the patch sizeof(struct hash_mm_context) = 8288 After the patch sizeof(struct hash_mm_context) = 4160 Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit 701101865f5d3e268281ce7a254eb4a97d16cbdc Author: Aneesh Kumar K.V Date: Wed Apr 17 18:33:50 2019 +0530 powerpc/mm: Reduce memory usage for mm_context_t for radix Currently, our mm_context_t on book3s64 include all hash specific context details like slice mask and subpage protection details. We can skip allocating these with radix translation. This will help us to save 8K per mm_context with radix translation. With the patch applied we have sizeof(mm_context_t) = 136 sizeof(struct hash_mm_context) = 8288 Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit 67fda38f0d688580a916a8f829afd8edaffadfcf Author: Aneesh Kumar K.V Date: Wed Apr 17 18:33:49 2019 +0530 powerpc/mm: Move slb_addr_linit to early_init_mmu Avoid #ifdef in generic code. Also enables us to do this specific to MMU translation mode on book3s64 Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit 60458fba469a695a026334b364cf8adbcd5807e3 Author: Aneesh Kumar K.V Date: Wed Apr 17 18:33:48 2019 +0530 powerpc/mm: Add helpers for accessing hash translation related variables We want to switch to allocating them runtime only when hash translation is enabled. Add helpers so that both book3s and nohash can be adapted to upcoming change easily. Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit 4f40b15f339d896f5726714842947c9339742494 Author: Aneesh Kumar K.V Date: Wed Apr 17 18:33:47 2019 +0530 powerpc/mm: Remove PPC_MM_SLICES #ifdef for book3s64 Book3s64 always have PPC_MM_SLICES enabled. So remove the unncessary #ifdef Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit 6161a37307f3320808b5a7549593b991500f2656 Author: Aneesh Kumar K.V Date: Wed Apr 3 11:35:14 2019 +0530 powerpc/mm: Fix build error with FLATMEM book3s64 config The current value of MAX_PHYSMEM_BITS cannot work with 32 bit configs. We used to have MAX_PHYSMEM_BITS not defined without SPARSEMEM and 32 bit configs never expected a value to be set for MAX_PHYSMEM_BITS. Dependent code such as zsmalloc derived the right values based on other fields. Instead of finding a value that works with different configs, use new values only for book3s_64. For 64 bit booke, use the definition of MAX_PHYSMEM_BITS as per commit a7df61a0e2b6 ("[PATCH] ppc64: Increase sparsemem defaults") That change was done in 2005 and hopefully will work with book3e 64. Fixes: 8bc086899816 ("powerpc/mm: Only define MAX_PHYSMEM_BITS in SPARSEMEM configurations") Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit a68c31fc01ef7863acc0fc74694bf279456a58c4 Author: Christophe Leroy Date: Mon Mar 11 08:30:38 2019 +0000 powerpc/32s: Implement Kernel Userspace Access Protection This patch implements Kernel Userspace Access Protection for book3s/32. Due to limitations of the processor page protection capabilities, the protection is only against writing. read protection cannot be achieved using page protection. The previous patch modifies the page protection so that RW user pages are RW for Key 0 and RO for Key 1, and it sets Key 0 for both user and kernel. This patch changes userspace segment registers are set to Ku 0 and Ks 1. When kernel needs to write to RW pages, the associated segment register is then changed to Ks 0 in order to allow write access to the kernel. In order to avoid having the read all segment registers when locking/unlocking the access, some data is kept in the thread_struct and saved on stack on exceptions. The field identifies both the first unlocked segment and the first segment following the last unlocked one. When no segment is unlocked, it contains value 0. As the hash_page() function is not able to easily determine if a protfault is due to a bad kernel access to userspace, protfaults need to be handled by handle_page_fault when KUAP is set. Signed-off-by: Christophe Leroy [mpe: Drop allow_read/write_to/from_user() as they're now in kup.h, and adapt allow_user_access() to do nothing when to == NULL] Signed-off-by: Michael Ellerman commit f342adca3afc84c4ef648352440ed6331518d72d Author: Christophe Leroy Date: Mon Mar 11 08:30:36 2019 +0000 powerpc/32s: Prepare Kernel Userspace Access Protection This patch prepares Kernel Userspace Access Protection for book3s/32. Due to limitations of the processor page protection capabilities, the protection is only against writing. read protection cannot be achieved using page protection. book3s/32 provides the following values for PP bits: PP00 provides RW for Key 0 and NA for Key 1 PP01 provides RW for Key 0 and RO for Key 1 PP10 provides RW for all PP11 provides RO for all Today PP10 is used for RW pages and PP11 for RO pages, and user segment register's Kp and Ks are set to 1. This patch modifies page protection to use PP01 for RW pages and sets user segment registers to Kp 0 and Ks 0. This will allow to setup Userspace write access protection by settng Ks to 1 in the following patch. Kernel space segment registers remain unchanged. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 31ed2b13c48d779efc838ad54e30121e088a62af Author: Christophe Leroy Date: Mon Mar 11 08:30:35 2019 +0000 powerpc/32s: Implement Kernel Userspace Execution Prevention. To implement Kernel Userspace Execution Prevention, this patch sets NX bit on all user segments on kernel entry and clears NX bit on all user segments on kernel exit. Note that powerpc 601 doesn't have the NX bit, so KUEP will not work on it. A warning is displayed at startup. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 2679f9bd0abafb3044bcbaac0600b32159ac8bf2 Author: Christophe Leroy Date: Mon Mar 11 08:30:34 2019 +0000 powerpc/8xx: Add Kernel Userspace Access Protection This patch adds Kernel Userspace Access Protection on the 8xx. When a page is RO or RW, it is set RO or RW for Key 0 and NA for Key 1. Up to now, the User group is defined with Key 0 for both User and Supervisor. By changing the group to Key 0 for User and Key 1 for Supervisor, this patch prevents the Kernel from being able to access user data. At exception entry, the kernel saves SPRN_MD_AP in the regs struct, and reapply the protection. At exception exit it restores SPRN_MD_AP with the value saved on exception entry. Signed-off-by: Christophe Leroy [mpe: Drop allow_read/write_to/from_user() as they're now in kup.h] Signed-off-by: Michael Ellerman commit 06fbe81b5909847aa13f9c86c2b6f9bbc5c2795b Author: Christophe Leroy Date: Mon Mar 11 08:30:33 2019 +0000 powerpc/8xx: Add Kernel Userspace Execution Prevention This patch adds Kernel Userspace Execution Prevention on the 8xx. When a page is Executable, it is set Executable for Key 0 and NX for Key 1. Up to now, the User group is defined with Key 0 for both User and Supervisor. By changing the group to Key 0 for User and Key 1 for Supervisor, this patch prevents the Kernel from being able to execute user code. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit c341a108a58100b4d0774ddb1dacbd67dfa749b3 Author: Christophe Leroy Date: Mon Mar 11 08:30:32 2019 +0000 powerpc/8xx: Only define APG0 and APG1 Since the 8xx implements hardware page table walk assistance, the PGD entries always point to a 4k aligned page, so the 2 upper bits of the APG are not clobbered anymore and remain 0. Therefore only APG0 and APG1 are used and need a definition. We set the other APG to the lowest permission level. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit e2fb9f5444312fd01627c84a3e018c1fe8ac6ebb Author: Christophe Leroy Date: Mon Mar 11 08:30:31 2019 +0000 powerpc/32: Prepare for Kernel Userspace Access Protection This patch adds ASM macros for saving, restoring and checking the KUAP state, and modifies setup_32 to call them on exceptions from kernel. The macros are defined as empty by default for when CONFIG_PPC_KUAP is not selected and/or for platforms which don't handle (yet) KUAP. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit e291b6d575bc6e4d1d36961b081be521a6c800d6 Author: Christophe Leroy Date: Mon Mar 11 08:30:30 2019 +0000 powerpc/32: Remove MSR_PR test when returning from syscall syscalls are from user only, so we can account time without checking whether returning to kernel or user as it will only be user. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 5e5be3aed23032d40d5ab7407f344f1a74f2765b Author: Michael Ellerman Date: Thu Apr 18 16:51:25 2019 +1000 powerpc/mm: Detect bad KUAP faults When KUAP is enabled we have logic to detect page faults that occur outside of a valid user access region and are blocked by the AMR. What we don't have at the moment is logic to detect a fault *within* a valid user access region, that has been incorrectly blocked by AMR. This is not meant to ever happen, but it can if we incorrectly save/restore the AMR, or if the AMR was overwritten for some other reason. Currently if that happens we assume it's just a regular fault that will be corrected by handling the fault normally, so we just return. But there is nothing the fault handling code can do to fix it, so the fault just happens again and we spin forever, leading to soft lockups. So add some logic to detect that case and WARN() if we ever see it. Arguably it should be a BUG(), but it's more polite to fail the access and let the kernel continue, rather than taking down the box. There should be no data integrity issue with failing the fault rather than BUG'ing, as we're just going to disallow an access that should have been allowed. To make the code a little easier to follow, unroll the condition at the end of bad_kernel_fault() and comment each case, before adding the call to bad_kuap_fault(). Signed-off-by: Michael Ellerman commit 890274c2dc4c0a57ae5a12d6a76fa6d05b599d98 Author: Michael Ellerman Date: Thu Apr 18 16:51:24 2019 +1000 powerpc/64s: Implement KUAP for Radix MMU Kernel Userspace Access Prevention utilises a feature of the Radix MMU which disallows read and write access to userspace addresses. By utilising this, the kernel is prevented from accessing user data from outside of trusted paths that perform proper safety checks, such as copy_{to/from}_user() and friends. Userspace access is disabled from early boot and is only enabled when performing an operation like copy_{to/from}_user(). The register that controls this (AMR) does not prevent userspace from accessing itself, so there is no need to save and restore when entering and exiting userspace. When entering the kernel from the kernel we save AMR and if it is not blocking user access (because eg. we faulted doing a user access) we reblock user access for the duration of the exception (ie. the page fault) and then restore the AMR when returning back to the kernel. This feature can be tested by using the lkdtm driver (CONFIG_LKDTM=y) and performing the following: # (echo ACCESS_USERSPACE) > [debugfs]/provoke-crash/DIRECT If enabled, this should send SIGSEGV to the thread. We also add paranoid checking of AMR in switch and syscall return under CONFIG_PPC_KUAP_DEBUG. Co-authored-by: Michael Ellerman Signed-off-by: Russell Currey Signed-off-by: Michael Ellerman commit ef296729b735e083d8919e76ac213b8ff237eb78 Author: Russell Currey Date: Thu Apr 18 16:51:23 2019 +1000 powerpc/lib: Refactor __patch_instruction() to use __put_user_asm() __patch_instruction() is called in early boot, and uses __put_user_size(), which includes the allow/prevent calls to enforce KUAP, which could either be called too early, or in the Radix case, forced to use "early_" versions of functions just to safely handle this one case. __put_user_asm() does not do this, and thus is safe to use both in early boot, and later on since in this case it should only ever be touching kernel memory. __patch_instruction() was previously refactored to use __put_user_size() in order to be able to return -EFAULT, which would allow the kernel to patch instructions in userspace, which should never happen. This has the functional change of causing faults on userspace addresses if KUAP is turned on, which should never happen in practice. A future enhancement could be to double check the patch address is definitely allowed to be tampered with by the kernel. Signed-off-by: Russell Currey Signed-off-by: Michael Ellerman commit 1bb2bae2e6c7d94e3bc1fdce06baf31b8d811ed6 Author: Russell Currey Date: Thu Apr 18 16:51:22 2019 +1000 powerpc/mm/radix: Use KUEP API for Radix MMU Execution protection already exists on radix, this just refactors the radix init to provide the KUEP setup function instead. Thus, the only functional change is that it can now be disabled. Signed-off-by: Russell Currey Signed-off-by: Michael Ellerman commit b28c97505eb1a5265e367c398c3406be6ce5e313 Author: Russell Currey Date: Thu Apr 18 16:51:21 2019 +1000 powerpc/64: Setup KUP on secondary CPUs Some platforms (i.e. Radix MMU) need per-CPU initialisation for KUP. Any platforms that only want to do KUP initialisation once globally can just check to see if they're running on the boot CPU, or check if whatever setup they need has already been performed. Note that this is only for 64-bit. Signed-off-by: Russell Currey Signed-off-by: Michael Ellerman commit de78a9c42a790011f179bc94a7da3f5d8721f4cc Author: Christophe Leroy Date: Thu Apr 18 16:51:20 2019 +1000 powerpc: Add a framework for Kernel Userspace Access Protection This patch implements a framework for Kernel Userspace Access Protection. Then subarches will have the possibility to provide their own implementation by providing setup_kuap() and allow/prevent_user_access(). Some platforms will need to know the area accessed and whether it is accessed from read, write or both. Therefore source, destination and size and handed over to the two functions. mpe: Rename to allow/prevent rather than unlock/lock, and add read/write wrappers. Drop the 32-bit code for now until we have an implementation for it. Add kuap to pt_regs for 64-bit as well as 32-bit. Don't split strings, use pr_crit_ratelimited(). Signed-off-by: Christophe Leroy Signed-off-by: Russell Currey Signed-off-by: Michael Ellerman commit 0fb1c25ab523614b056ace11be67aac8f8ccabb1 Author: Christophe Leroy Date: Thu Apr 18 16:51:19 2019 +1000 powerpc: Add skeleton for Kernel Userspace Execution Prevention This patch adds a skeleton for Kernel Userspace Execution Prevention. Then subarches implementing it have to define CONFIG_PPC_HAVE_KUEP and provide setup_kuep() function. Signed-off-by: Christophe Leroy [mpe: Don't split strings, use pr_crit_ratelimited()] Signed-off-by: Michael Ellerman commit 69795cabe4cfe5122438d50010ad5310c113a013 Author: Christophe Leroy Date: Thu Apr 18 16:51:18 2019 +1000 powerpc: Add framework for Kernel Userspace Protection This patch adds a skeleton for Kernel Userspace Protection functionnalities like Kernel Userspace Access Protection and Kernel Userspace Execution Prevention The subsequent implementation of KUAP for radix makes use of a MMU feature in order to patch out assembly when KUAP is disabled or unsupported. This won't work unless there's an entry point for KUP support before the feature magic happens, so for PPC64 setup_kup() is called early in setup. On PPC32, feature_fixup() is done too early to allow the same. Suggested-by: Russell Currey Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 53a712bae5dd919521a58d7bad773b949358add0 Author: Michael Ellerman Date: Thu Apr 18 16:51:17 2019 +1000 powerpc/powernv/idle: Restore AMR/UAMOR/AMOR after idle In order to implement KUAP (Kernel Userspace Access Protection) on Power9 we will be using the AMR, and therefore indirectly the UAMOR/AMOR. So save/restore these regs in the idle code. Signed-off-by: Michael Ellerman commit a3f3072db6cad40895c585dce65e36aab997f042 Author: Russell Currey Date: Thu Apr 18 16:51:16 2019 +1000 powerpc/powernv/idle: Restore IAMR after idle Without restoring the IAMR after idle, execution prevention on POWER9 with Radix MMU is overwritten and the kernel can freely execute userspace without faulting. This is necessary when returning from any stop state that modifies user state, as well as hypervisor state. To test how this fails without this patch, load the lkdtm driver and do the following: $ echo EXEC_USERSPACE > /sys/kernel/debug/provoke-crash/DIRECT which won't fault, then boot the kernel with powersave=off, where it will fault. Applying this patch will fix this. Fixes: 3b10d0095a1e ("powerpc/mm/radix: Prevent kernel execution of user space") Cc: stable@vger.kernel.org # v4.10+ Signed-off-by: Russell Currey Reviewed-by: Akshay Adiga Reviewed-by: Nicholas Piggin Signed-off-by: Michael Ellerman commit 74d8139582bd3f367e92c67349db4d97fe3733ee Author: Johan Hovold Date: Thu Apr 18 18:20:20 2019 +0200 USB: serial: digi_acceleport: clean up set_termios Clean up set_termios() by adding missing white space around operators and making a couple of continuation lines more readable. Also drop a couple of redundant braces. Reviewed-by: Greg Kroah-Hartman Signed-off-by: Johan Hovold commit a7f9f29058508430582c9f1916062acf79bfa7a7 Author: Johan Hovold Date: Thu Apr 18 18:20:19 2019 +0200 USB: serial: digi_acceleport: clean up modem-control handling Clean up modem-control handling somewhat by adding missing whitespace around operators and splitting a long statement in two. Reviewed-by: Greg Kroah-Hartman Signed-off-by: Johan Hovold commit 716be61d186939eebacdbccfc14e9ea3bd70f8c6 Author: Marek Vasut Date: Fri Apr 12 12:49:53 2019 +0200 ARM: dts: imx53: Add Menlosystems M53 board Add device tree for the Menlosystems board based on i.MX53 M53 SoM. Signed-off-by: Marek Vasut Cc: Shawn Guo Cc: Fabio Estevam Cc: NXP Linux Team To: linux-arm-kernel@lists.infradead.org Signed-off-by: Shawn Guo commit 6143613a84ada5de602a717f0a41b0ae6c88755f Author: Marek Vasut Date: Fri Apr 12 12:49:52 2019 +0200 ARM: dts: imx53: Rename M53 SoM touchscreen node Rename the touchscreen node to match contemporary design. Signed-off-by: Marek Vasut Cc: Shawn Guo Cc: Fabio Estevam Cc: NXP Linux Team To: linux-arm-kernel@lists.infradead.org Signed-off-by: Shawn Guo commit 4f158e11b14bb08ed18b33d5a73415bfb605408f Author: Marek Vasut Date: Fri Apr 12 12:49:51 2019 +0200 dt-bindings: arm: fsl: Add devicetree binding for M53 Menlo board. Add devicetree binding for iMX53 SoC based M53 Menlo board. Signed-off-by: Marek Vasut Cc: Rob Herring Cc: Shawn Guo Cc: Fabio Estevam Cc: NXP Linux Team Cc: devicetree@vger.kernel.org To: linux-arm-kernel@lists.infradead.org Signed-off-by: Shawn Guo commit c7861adbe37f576931650ad8ef805e0c47564b9a Author: Vladimir Oltean Date: Fri Apr 12 02:23:14 2019 +0300 ARM: dts: ls1021: Fix SGMII PCS link remaining down after PHY disconnect Each eTSEC MAC has its own TBI (SGMII) PCS and private MDIO bus. But due to a DTS oversight, both SGMII-compatible MACs of the LS1021 SoC are pointing towards the same internal PCS. Therefore nobody is controlling the internal PCS of eTSEC0. Upon initial ndo_open, the SGMII link is ok by virtue of U-boot initialization. But upon an ifdown/ifup sequence, the code path from ndo_open -> init_phy -> gfar_configure_serdes does not get executed for the PCS of eTSEC0 (and is executed twice for MAC eTSEC1). So the SGMII link remains down for eTSEC0. On the LS1021A-TWR board, to signal this failure condition, the PHY driver keeps printing '803x_aneg_done: SGMII link is not ok'. Also, it changes compatible of mdio0 to "fsl,etsec2-mdio" to match mdio1 device. Fixes: 055223d4d22d ("ARM: dts: ls1021a: Enable the eTSEC ports on QDS and TWR") Signed-off-by: Vladimir Oltean Reviewed-by: Claudiu Manoil Acked-by: Li Yang Signed-off-by: Shawn Guo commit 883c2459a57d93efbcb974bea1d2d506db3ae9ab Author: Oded Gabbay Date: Sun Apr 21 10:48:41 2019 +0300 habanalabs: re-factor goya_parse_cb_no_ext_queue() This patch re-factors goya_parse_cb_no_ext_queue() to make it more readable by inverting the check inside the first if statement so the bulk of the function won't be inside an if statement. The patch also fixes a spelling error in the name of the function. Signed-off-by: Oded Gabbay commit 7dc7967fc39af81191558f63eeaf3d2b83899b1c Author: Greg Kroah-Hartman Date: Fri Apr 19 20:42:05 2019 +0200 staging: kpc2000: add initial set of Daktronics drivers These drivers have been outside of the kernel tree since the 2.x days, and it's time to bring them into the tree so they can get properly cleaned up. This first dump of drivers is based on a tarball Matt gave to me, minus an odd "dma" driver that I could not get to build at all. I renamed a few files, added the proper SPDX lines to it, added Kconfig entries and tied it into the kernel build. I also fixed up a number of initial obvious kernel build warnings, but left the odd bitfield warning that gcc is spitting out, as I'm not quite sure what to do about that. There's loads of low-hanging coding style cleanups in here for people to start attacking, as well as the more obvious logic and api cleanups as well. Cc: Matt Sickler Signed-off-by: Greg Kroah-Hartman commit f59232a1da5979df7b37983f044c4b7101ef25f4 Author: Madhumitha Prabakaran Date: Fri Apr 19 16:32:56 2019 -0500 Staging: rtlwifi: Replace return type Replace return type and remove the respective assignment. Issue found by Coccinelle. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 2fc489d8acc7d7599b01868d1af9c5debbdc38ec Author: Madhumitha Prabakaran Date: Fri Apr 19 15:58:45 2019 -0500 Staging: rtl8723bs: core: Replace return types Remove unwanted assignments and replace return types. Issue suggested by Coccinelle. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 4f8d374b770a2e26088186d6c18acf582227129d Author: Jean-Francois Dagenais Date: Thu Apr 18 20:57:22 2019 -0400 hwmon: (max6650) add thermal cooling device capability This allows max6650 devices to be referenced in dts as a cooling device. The pwm value seems duplicated in cooling_dev_state but since pwm goes through rounding logic into data->dac, it is modified and messes with the thermal zone state algorithms. It's also better to serve a cache value, thus avoiding periodic actual i2c traffic. Signed-off-by: Jean-Francois Dagenais Signed-off-by: Guenter Roeck commit a7e26f356ca12906a164d83c9e9f8527ee7da022 Author: Abel Vesa Date: Fri Mar 22 16:49:20 2019 +0000 soc: imx: Add generic i.MX8 SoC driver Add generic i.MX8 SoC driver along with the i.MX8MQ SoC specific code. For now, only i.MX8MQ revision B1 is supported. For any other, i.MX8MQ revision it will print 'unknown'. Signed-off-by: Abel Vesa Reviewed-by: Leonard Crestez Signed-off-by: Shawn Guo commit c1fe190c06723322f2dfac31d3b982c581e434ef Author: Michael Neuling Date: Mon Apr 1 17:03:12 2019 +1100 powerpc: Add force enable of DAWR on P9 option This adds a flag so that the DAWR can be enabled on P9 via: echo Y > /sys/kernel/debug/powerpc/dawr_enable_dangerous The DAWR was previously force disabled on POWER9 in: 9654153158 powerpc: Disable DAWR in the base POWER9 CPU features Also see Documentation/powerpc/DAWR-POWER9.txt This is a dangerous setting, USE AT YOUR OWN RISK. Some users may not care about a bad user crashing their box (ie. single user/desktop systems) and really want the DAWR. This allows them to force enable DAWR. This flag can also be used to disable DAWR access. Once this is cleared, all DAWR access should be cleared immediately and your machine once again safe from crashing. Userspace may get confused by toggling this. If DAWR is force enabled/disabled between getting the number of breakpoints (via PTRACE_GETHWDBGINFO) and setting the breakpoint, userspace will get an inconsistent view of what's available. Similarly for guests. For the DAWR to be enabled in a KVM guest, the DAWR needs to be force enabled in the host AND the guest. For this reason, this won't work on POWERVM as it doesn't allow the HCALL to work. Writes of 'Y' to the dawr_enable_dangerous file will fail if the hypervisor doesn't support writing the DAWR. To double check the DAWR is working, run this kernel selftest: tools/testing/selftests/powerpc/ptrace/ptrace-hwbreak.c Any errors/failures/skips mean something is wrong. Signed-off-by: Michael Neuling Signed-off-by: Michael Ellerman commit 558f86493df09f68f79fe056d9028d317a3ce8ab Author: Nathan Lynch Date: Thu Apr 18 13:56:58 2019 -0500 powerpc/numa: document topology_updates_enabled, disable by default Changing the NUMA associations for CPUs and memory at runtime is basically unsupported by the core mm, scheduler etc. We see all manner of crashes, warnings and instability when the pseries code tries to do this. Disable this behavior by default, and document the switch a bit. Signed-off-by: Nathan Lynch Signed-off-by: Michael Ellerman commit 2d4d9b308f8f8dec68f6dbbff18c68ec7c6bd26f Author: Nathan Lynch Date: Thu Apr 18 13:56:57 2019 -0500 powerpc/numa: improve control of topology updates When booted with "topology_updates=no", or when "off" is written to /proc/powerpc/topology_updates, NUMA reassignments are inhibited for PRRN and VPHN events. However, migration and suspend unconditionally re-enable reassignments via start_topology_update(). This is incoherent. Check the topology_updates_enabled flag in start/stop_topology_update() so that callers of those APIs need not be aware of whether reassignments are enabled. This allows the administrative decision on reassignments to remain in force across migrations and suspensions. Signed-off-by: Nathan Lynch Signed-off-by: Michael Ellerman commit 2f9196b67237f1e59f2753b2968f8ad6433d4042 Author: Andrew Donnellan Date: Thu Mar 14 15:27:27 2019 +1100 powerpc/powernv: Squash sparse warnings in opal-call.c sparse complains a lot about opal-call.c: arch/powerpc/platforms/powernv/opal-call.c:128:1: warning: symbol 'opal_invalid_call' was not declared. Should it be static? arch/powerpc/platforms/powernv/opal-call.c:129:1: warning: symbol 'opal_console_write' was not declared. Should it be static? arch/powerpc/platforms/powernv/opal-call.c:130:1: warning: symbol 'opal_console_read' was not declared. Should it be static? Those symbols are forward declared in opal.h, but we can't include that because the function signatures in opal.h are different. So instead, just add an extra forward declaration to the OPAL_CALL macro to shut sparse up. Signed-off-by: Andrew Donnellan Signed-off-by: Michael Ellerman commit 80d04b7fabe161a23d143b3bfcfca1b002c23da1 Author: George Spelvin Date: Thu Mar 21 10:42:22 2019 +0000 powerpc/crypto: Use cheaper random numbers for crc-vpmsum self-test This code was filling a 64K buffer from /dev/urandom in order to compute a CRC over (on average half of) it by two different methods, comparing the CRCs, and repeating. This is not a remotely security-critical application, so use the far faster and cheaper prandom_u32() generator. And, while we're at it, only fill as much of the buffer as we plan to use. Signed-off-by: George Spelvin Acked-by: Daniel Axtens Signed-off-by: Michael Ellerman commit 6917735e8f905da1f62ccdf62830b185524835c7 Author: Jagadeesh Pagadala Date: Sat Mar 23 18:20:55 2019 +0530 powerpc: Remove duplicate headers Remove duplicate headers inclusions. Signed-off-by: Jagadeesh Pagadala Reviewed-by: Mukesh Ojha Signed-off-by: Michael Ellerman commit cc76404feaed597bb4f5234d34d3f49e2d1139bf Author: Wen Yang Date: Tue Mar 26 18:29:51 2019 +0800 powerpc/8xx: Fix possible device node reference leak The call to of_find_compatible_node() returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. irq_domain_add_linear() also calls of_node_get() to increase refcount, so irq_domain() will not be affected when it is released. Detected by coccinelle. Fixes: a8db8cf0d894 ("irq_domain: Replace irq_alloc_host() with revmap-specific initializers") Signed-off-by: Wen Yang Suggested-by: Christophe Leroy Suggested-by: Michael Ellerman Reviewed-by: Peng Hao Reviewed-by: Christophe Leroy Signed-off-by: Michael Ellerman commit 7f177f9810ada8ec2e8b378eddbe2d91fda79c9b Author: Ganesh Goudar Date: Mon Apr 15 15:35:44 2019 +0530 powerpc/pseries: hwpoison the pages upon hitting UE Add support to hwpoison the pages upon hitting machine check exception. This patch queues the address where UE is hit to percpu array and schedules work to plumb it into memory poison infrastructure. Reviewed-by: Mahesh Salgaonkar Signed-off-by: Ganesh Goudar [mpe: Combine #ifdefs, drop PPC_BIT8(), and empty inline stub] Signed-off-by: Michael Ellerman commit 4df2cb633b5b22ba152511f1a55e718efca6c0d9 Author: Julia Lawall Date: Sat Feb 23 14:20:34 2019 +0100 powerpc/83xx: Add missing of_node_put() after of_device_is_available() Add an of_node_put() when a tested device node is not available. Fixes: c026c98739c7e ("powerpc/83xx: Do not configure or probe disabled FSL DR USB controllers") Signed-off-by: Julia Lawall Reviewed-by: Mukesh Ojha Signed-off-by: Michael Ellerman commit 0235854e1c25069d14512a35ea5cd05372e31fd6 Author: Lukas Bulwahn Date: Thu Apr 11 06:27:52 2019 +0200 MAINTAINERS: Update remaining @linux.vnet.ibm.com addresses Paul McKenney attempted to update all email addresses @linux.vnet.ibm.com to @linux.ibm.com in commit 1dfddcdb95c4 ("MAINTAINERS: Update from @linux.vnet.ibm.com to @linux.ibm.com"), but some still remained. We update the remaining email addresses in MAINTAINERS, hopefully finally catching all cases for good. Fixes: 1dfddcdb95c4 ("MAINTAINERS: Update from @linux.vnet.ibm.com to @linux.ibm.com") Signed-off-by: Lukas Bulwahn Acked-by: Paul E. McKenney Signed-off-by: Michael Ellerman commit 679d03f26a686dd609afd94fd7caad7d406eb36e Author: Sukadev Bhattiprolu Date: Wed Apr 10 18:38:46 2019 -0700 MAINTAINERS: Remove non-existent VAS file The file arch/powerpc/include/uapi/asm/vas.h was considered but never merged and should be removed from the MAINTAINERS file. While here, add missing email address. Reported-by: Joe Perches Signed-off-by: Sukadev Bhattiprolu Signed-off-by: Michael Ellerman commit e663e1e06089773cdab03023563aead65cfed042 Author: Qian Cai Date: Sat Apr 6 21:54:47 2019 -0400 powerpc/pseries/pmem: Fix a set but not used value The commit 4c5d87db4978 ("powerpc/pseries: PAPR persistent memory support") set a local variable "count" in dlpar_hp_pmem() but never use it. arch/powerpc/platforms/pseries/pmem.c: In function 'dlpar_hp_pmem': arch/powerpc/platforms/pseries/pmem.c:109:6: warning: variable 'count' set but not used Signed-off-by: Qian Cai Reviewed-by: Mukesh Ojha Signed-off-by: Michael Ellerman commit c05f57fdc34a3d00c9ee28a35772e9d11b5ce100 Author: Qian Cai Date: Sat Apr 6 22:48:08 2019 -0400 powerpc/pseries/iommu: Fix set but not used values The commit b7d6bf4fdd47 ("powerpc/pseries/pci: Remove obsolete SW invalidate") left 2 variables unused. arch/powerpc/platforms/pseries/iommu.c:108:17: warning: variable 'tces' set but not used __be64 *tcep, *tces; ^~~~ arch/powerpc/platforms/pseries/iommu.c:132:17: warning: variable 'tces' set but not used __be64 *tcep, *tces; ^~~~ Also, the commit 68c0449ea16d ("powerpc/pseries/iommu: Use memory@ nodes in max RAM address calculation") set "ranges" in ddw_memory_hotplug_max() but never use it. arch/powerpc/platforms/pseries/iommu.c: In function 'ddw_memory_hotplug_max': arch/powerpc/platforms/pseries/iommu.c:948:7: warning: variable 'ranges' set but not used int ranges, n_mem_addr_cells, n_mem_size_cells, len; ^~~~~~ Signed-off-by: Qian Cai Reviewed-by: Mukesh Ojha Signed-off-by: Michael Ellerman commit bff25143da0d623a1765bf78dbc82044e46da5a4 Author: Qian Cai Date: Thu Mar 7 09:40:31 2019 -0500 powerpc/mm: Silence unused-but-set-variable warnings pte_unmap() compiles away on some powerpc platforms, so silence the warnings below by making it a static inline function. mm/memory.c: In function 'copy_pte_range': mm/memory.c:820:24: warning: variable 'orig_dst_pte' set but not used mm/memory.c:820:9: warning: variable 'orig_src_pte' set but not used mm/madvise.c: In function 'madvise_free_pte_range': mm/madvise.c:318:9: warning: variable 'orig_pte' set but not used mm/swap_state.c: In function 'swap_ra_info': mm/swap_state.c:634:15: warning: variable 'orig_pte' set but not used Suggested-by: Christophe Leroy Signed-off-by: Qian Cai Reviewed-by: Christophe Leroy Signed-off-by: Michael Ellerman commit f172acbfae1a78b1a3c775f78e8d0dcd15b9d768 Author: Laurent Vivier Date: Wed Mar 13 11:25:28 2019 +0100 powerpc/mm: move warning from resize_hpt_for_hotplug() resize_hpt_for_hotplug() reports a warning when it cannot resize the hash page table ("Unable to resize hash page table to target order") but in some cases it's not a problem and can make user thinks something has not worked properly. This patch moves the warning to arch_remove_memory() to only report the problem when it is needed. Reviewed-by: David Gibson Signed-off-by: Laurent Vivier Reviewed-by: Christophe Leroy Signed-off-by: Michael Ellerman commit f89bd8ba834e392ff614a7be9ee68c5679675122 Author: Aneesh Kumar K.V Date: Tue Apr 9 09:33:28 2019 +0530 powerpc/mm/radix: Don't do SLB preload when using the radix MMU Add radix_enabled() check to avoid SLB preload with radix translation. Signed-off-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit 24c174bb23ebcbe4c3979855b220513f2b3a730f Author: Thomas Huth Date: Mon Feb 11 12:37:12 2019 +0100 powerpc/configs: Enable CONFIG_USB_XHCI_HCD by default Recent versions of QEMU provide a XHCI device by default these days instead of an old-fashioned OHCI device: https://git.qemu.org/?p=qemu.git;a=commitdiff;h=57040d451315320b7d27 So to get the keyboard working in the graphical console there again, we should now include XHCI support in the kernel by default, too. Signed-off-by: Thomas Huth Reviewed-by: David Gibson Acked-by: Joel Stanley Signed-off-by: Michael Ellerman commit c9d8dda42372dce00ac3a1c653bef7b8d2dbe3ce Author: Mahesh Salgaonkar Date: Thu Mar 28 17:10:33 2019 +0530 powerpc/pseries/mce: Improve array initialization. This is a follow up to the patch that fixed misleading print for TLB mutlihit due to wrongly populated mc_err_types[] array. Convert all the static array initialization to '[x] = val' style for better readability of array indexing and avoid any further confusion. Suggested-by: Michael Ellerman Signed-off-by: Mahesh Salgaonkar Signed-off-by: Michael Ellerman commit 56c46bba9bbfe229b4472a5be313c44c5b714a39 Author: Russell Currey Date: Wed Mar 27 14:35:54 2019 +1100 powerpc/64: Fix booting large kernels with STRICT_KERNEL_RWX With STRICT_KERNEL_RWX enabled anything marked __init is placed at a 16M boundary. This is necessary so that it can be repurposed later with different permissions. However, in kernels with text larger than 16M, this pushes early_setup past 32M, incapable of being reached by the branch instruction. Fix this by setting the CTR and branching there instead. Fixes: 1e0fc9d1eb2b ("powerpc/Kconfig: Enable STRICT_KERNEL_RWX for some configs") Signed-off-by: Russell Currey [mpe: Fix it to work on BE by using DOTSYM()] Signed-off-by: Michael Ellerman commit 62611c1e241878c538211d80cefef9de72030b56 Author: Mathieu Malaterre Date: Tue Mar 26 21:47:19 2019 +0100 powerpc/embedded6xx: Remove unused functions holly_power_off and holly_halt Silence the following warnings triggered using W=1: arch/powerpc/platforms/embedded6xx/holly.c:236:6: error: no previous prototype for 'holly_power_off' arch/powerpc/platforms/embedded6xx/holly.c:243:6: error: no previous prototype for 'holly_halt' Signed-off-by: Mathieu Malaterre Reviewed-by: Mukesh Ojha Signed-off-by: Michael Ellerman commit 308be6c7817c850b55c3b6ff4bf53c2427e274bc Author: Mathieu Malaterre Date: Tue Mar 26 21:47:18 2019 +0100 powerpc/embedded6xx: Make some functions static In commit cb9e4d10c448 ("[POWERPC] Add support for 750CL Holly board") new functions were added. Since most of these functions can be made static, make it so. Both holly_power_off and holly_halt functions were not changed since they are unused, making them static would have triggered the following warning (treated as error): arch/powerpc/platforms/embedded6xx/holly.c:244:13: error: 'holly_halt' defined but not used Silence the following warnings triggered using W=1: arch/powerpc/platforms/embedded6xx/holly.c:47:5: error: no previous prototype for 'holly_exclude_device' arch/powerpc/platforms/embedded6xx/holly.c:190:6: error: no previous prototype for 'holly_show_cpuinfo' arch/powerpc/platforms/embedded6xx/holly.c:196:17: error: no previous prototype for 'holly_restart' Signed-off-by: Mathieu Malaterre Reviewed-by: Mukesh Ojha Signed-off-by: Michael Ellerman commit ff6d27823f619892ab96f7461764840e0d786b15 Author: Ben Hutchings Date: Fri Mar 22 04:24:37 2019 +0000 powerpc: vdso: Make vdso32 installation conditional in vdso_install The 32-bit vDSO is not needed and not normally built for 64-bit little-endian configurations. However, the vdso_install target still builds and installs it. Add the same config condition as is normally used for the build. Fixes: e0d005916994 ("powerpc/vdso: Disable building the 32-bit VDSO ...") Signed-off-by: Ben Hutchings Signed-off-by: Michael Ellerman commit eea86aa4171d4960f0fcdc99dab358c224d53ffe Author: Michael Ellerman Date: Thu Mar 14 23:54:53 2019 +1100 powerpc/mm/64: Document the sizes of/sizes mapped by Pxx_INDEX_SIZE Add comments describing the size in bytes of the various levels of the page table tree, and the size of the virtual address space mapped by each level, to make it clear what the sizes are without having to also look up other definitions. The code that calculates the sizes actually uses sizeof(pgd_t) etc., so in theory these comments could skew vs the code, but the size of pgd_t etc. is unlikely to change very often. Signed-off-by: Michael Ellerman Reviewed-by: Aneesh Kumar K.V Signed-off-by: Michael Ellerman commit 6c84f8c5cbfb4bf728f88296bc035c4a401c3423 Author: Christophe Leroy Date: Thu Mar 7 09:47:50 2019 +0000 powerpc/highmem: Change BUG_ON() to WARN_ON() In arch/powerpc/mm/highmem.c, BUG_ON() is called only when CONFIG_DEBUG_HIGHMEM is selected, this means the BUG_ON() is not vital and can be replaced by a a WARN_ON(). At the same time, use IS_ENABLED() instead of #ifdef to clean a bit. Signed-off-by: Christophe Leroy Signed-off-by: Michael Ellerman commit af5cd05de5dd38cf25d14ea4d30ae9b791d2420b Author: Michael Ellerman Date: Thu Feb 7 16:16:52 2019 +1100 powerpc: Fix defconfig choice logic when cross compiling Our logic for choosing defconfig doesn't work well in some situations. For example if you're on a ppc64le machine but you specify a non-empty CROSS_COMPILE, in order to use a non-default toolchain, then defconfig will give you ppc64_defconfig (big endian): $ make CROSS_COMPILE=~/toolchains/gcc-8/bin/powerpc-linux- defconfig *** Default configuration is based on 'ppc64_defconfig' This is because we assume that CROSS_COMPILE being set means we can't be on a ppc machine and rather than checking we just default to ppc64_defconfig. We should just ignore CROSS_COMPILE, instead check the machine with uname and if it's one of ppc, ppc64 or ppc64le then use that defconfig. If it's none of those then we fall back to ppc64_defconfig. Signed-off-by: Michael Ellerman commit a273fa386a947612a23b0d56dcfb8823662b8606 Author: Michael Ellerman Date: Thu Feb 7 16:16:51 2019 +1100 powerpc/32: Add ppc_defconfig Add a generic 32-bit defconfig called ppc_defconfig. This means we'll have a defconfig matching "uname -m" for all cases. This config is mostly intended for build testing but if someone wants to tweak it to get it booting on something that would be fine too. Signed-off-by: Michael Ellerman Tested-by: Mathieu Malaterre Signed-off-by: Michael Ellerman commit d3e76a1acd181071b60025a8647b0d7e38ae3828 Merge: 79a3aaa7b82e cf7cf6977f53 Author: Michael Ellerman Date: Sat Apr 20 21:59:57 2019 +1000 Merge branch 'fixes' into next Merge our fixes branch. In particular the radix segment exception handling fix is necessary to avoid odd crashes. commit 09cbd2197e9291d6a3d3f42873f06ca1f388c1a4 Author: WANG Chao Date: Thu Apr 18 03:41:14 2019 +0000 RAS/CEC: Increment cec_entered under the mutex lock Modify ->cec_entered in the critical section of the mutex. Signed-off-by: WANG Chao Signed-off-by: Borislav Petkov Cc: Tony Luck Cc: linux-edac Link: https://lkml.kernel.org/r/20190418034115.75954-2-chao.wang@ucloud.cn commit b7d5dc21072cda7124d13eae2aefb7343ef94197 Author: Sebastian Andrzej Siewior Date: Sat Apr 20 00:09:51 2019 -0400 random: add a spinlock_t to struct batched_entropy The per-CPU variable batched_entropy_uXX is protected by get_cpu_var(). This is just a preempt_disable() which ensures that the variable is only from the local CPU. It does not protect against users on the same CPU from another context. It is possible that a preemptible context reads slot 0 and then an interrupt occurs and the same value is read again. The above scenario is confirmed by lockdep if we add a spinlock: | ================================ | WARNING: inconsistent lock state | 5.1.0-rc3+ #42 Not tainted | -------------------------------- | inconsistent {SOFTIRQ-ON-W} -> {IN-SOFTIRQ-W} usage. | ksoftirqd/9/56 [HC0[0]:SC1[1]:HE0:SE0] takes: | (____ptrval____) (batched_entropy_u32.lock){+.?.}, at: get_random_u32+0x3e/0xe0 | {SOFTIRQ-ON-W} state was registered at: | _raw_spin_lock+0x2a/0x40 | get_random_u32+0x3e/0xe0 | new_slab+0x15c/0x7b0 | ___slab_alloc+0x492/0x620 | __slab_alloc.isra.73+0x53/0xa0 | kmem_cache_alloc_node+0xaf/0x2a0 | copy_process.part.41+0x1e1/0x2370 | _do_fork+0xdb/0x6d0 | kernel_thread+0x20/0x30 | kthreadd+0x1ba/0x220 | ret_from_fork+0x3a/0x50 … | other info that might help us debug this: | Possible unsafe locking scenario: | | CPU0 | ---- | lock(batched_entropy_u32.lock); | | lock(batched_entropy_u32.lock); | | *** DEADLOCK *** | | stack backtrace: | Call Trace: … | kmem_cache_alloc_trace+0x20e/0x270 | ipmi_alloc_recv_msg+0x16/0x40 … | __do_softirq+0xec/0x48d | run_ksoftirqd+0x37/0x60 | smpboot_thread_fn+0x191/0x290 | kthread+0xfe/0x130 | ret_from_fork+0x3a/0x50 Add a spinlock_t to the batched_entropy data structure and acquire the lock while accessing it. Acquire the lock with disabled interrupts because this function may be used from interrupt context. Remove the batched_entropy_reset_lock lock. Now that we have a lock for the data scructure, we can access it from a remote CPU. Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Theodore Ts'o commit 4ef6cbe80d71058dfd53f11a2801be4b6d227a4a Author: Pablo Cascón Date: Fri Apr 19 17:20:09 2019 -0700 nfp: add SR-IOV trusted VF support By default VFs are not trusted. Add ndo_set_vf_trust support to toggle a new per-VF bit. Coupled with FW with this capability allows a trusted VF to change its MAC even after being administratively set by the PF. Also populate the trusted field on ndo_get_vf_config. Add the same ndo to the representors. Signed-off-by: Pablo Cascón Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit 92e507d216139b356a375afbda2824e85235e748 Author: George Spelvin Date: Fri Apr 19 23:48:20 2019 -0400 random: document get_random_int() family Explain what these functions are for and when they offer an advantage over get_random_bytes(). (We still need documentation on rng_is_initialized(), the random_ready_callback system, and early boot in general.) Signed-off-by: George Spelvin Signed-off-by: Theodore Ts'o commit fe6f1a6a8eedc1aa538fee0baa612b6a59639cf8 Author: Jon DeVree Date: Fri Apr 19 23:35:16 2019 -0400 random: fix CRNG initialization when random.trust_cpu=1 When the system boots with random.trust_cpu=1 it doesn't initialize the per-NUMA CRNGs because it skips the rest of the CRNG startup code. This means that the code from 1e7f583af67b ("random: make /dev/urandom scalable for silly userspace programs") is not used when random.trust_cpu=1. crash> dmesg | grep random: [ 0.000000] random: get_random_bytes called from start_kernel+0x94/0x530 with crng_init=0 [ 0.314029] random: crng done (trusting CPU's manufacturer) crash> print crng_node_pool $6 = (struct crng_state **) 0x0 After adding the missing call to numa_crng_init() the per-NUMA CRNGs are initialized again: crash> dmesg | grep random: [ 0.000000] random: get_random_bytes called from start_kernel+0x94/0x530 with crng_init=0 [ 0.314031] random: crng done (trusting CPU's manufacturer) crash> print crng_node_pool $1 = (struct crng_state **) 0xffff9a915f4014a0 The call to invalidate_batched_entropy() was also missing. This is important for architectures like PPC and S390 which only have the arch_get_random_seed_* functions. Fixes: 39a8883a2b98 ("random: add a config option to trust the CPU's hwrng") Signed-off-by: Jon DeVree Signed-off-by: Theodore Ts'o commit d55535232c3dbde9a523a9d10d68670f5fe5dec3 Author: Kees Cook Date: Fri Apr 19 23:27:05 2019 -0400 random: move rand_initialize() earlier Right now rand_initialize() is run as an early_initcall(), but it only depends on timekeeping_init() (for mixing ktime_get_real() into the pools). However, the call to boot_init_stack_canary() for stack canary initialization runs earlier, which triggers a warning at boot: random: get_random_bytes called from start_kernel+0x357/0x548 with crng_init=0 Instead, this moves rand_initialize() to after timekeeping_init(), and moves canary initialization here as well. Note that this warning may still remain for machines that do not have UEFI RNG support (which initializes the RNG pools during setup_arch()), or for x86 machines without RDRAND (or booting without "random.trust=on" or CONFIG_RANDOM_TRUST_CPU=y). Signed-off-by: Kees Cook Signed-off-by: Theodore Ts'o commit 5313794b7915f61d1f503bfa54fbec47ffd8be0b Merge: d7cc399e1227 97afd47b36db Author: David S. Miller Date: Fri Apr 19 18:43:16 2019 -0700 Merge branch 'hns3-next' Huazhong Tan says: ==================== net: hns3: add some DFX info for HNS3 driver This patch-set adds some DFX information to HNS3 driver, for easily debug some problems, and fixes some related bugs. [patch 1/12 - 4/12] adds debug info about reset & interrupt events [patch 5/12 - 7/12] adds debug info about TX time out & fixes related bugs [patch 8/12] adds support for setting netif message level [patch 9/12 - 10/12] adds debugfs command to dump NCL & MAC info [patch 11/12] adds VF's queue statistics info updating [patch 12/12] adds a check for debugfs help function to decide which commands are supportable ==================== Signed-off-by: David S. Miller commit 97afd47b36dbe976c72191cf862a92d2e8756fa9 Author: Yufeng Mo Date: Fri Apr 19 11:05:47 2019 +0800 net: hns3: add function type check for debugfs help information PF supports all debugfs command, but VF only supports part of debugfs command. So VF should not show unsupported help information. This patch adds a check for PF and PF to show the supportable help information. Signed-off-by: Yufeng Mo Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit db01afeb6614b75299b0ecba06b246143d4b894d Author: liuzhongzhu Date: Fri Apr 19 11:05:46 2019 +0800 net: hns3: add queue's statistics update to service task This patch updates VF's TQP statistic info in the service task, and adds a limitation to prevent update too frequently. Signed-off-by: liuzhongzhu Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit a63457878b12b1be3d0a09fdc0c93b348f6161c9 Author: Weihang Li Date: Fri Apr 19 11:05:45 2019 +0800 net: hns3: Add handling of MAC tunnel interruption MAC tnl interruptions are different from other type of RAS and MSI-X errors, because some bits, such as OVF/LR/RF will occur during link up and down. The drivers should clear status of all MAC tnl interruption bits but shouldn't print any message that would mislead the users. In case that link down and re-up in a short time because of some reasons, we record when they occurred, and users can query them by debugfs. Signed-off-by: Weihang Li Signed-off-by: Peng Li Signed-off-by: David S. Miller commit ffd140e2ea980ea0ded8631f8bc1f43bca8a509e Author: Weihang Li Date: Fri Apr 19 11:05:44 2019 +0800 net: hns3: add support for dump ncl config by debugfs This patch allow users to dump content of NCL_CONFIG by using debugfs command. Command format: echo dump ncl_config > cmd It will print as follows: hns3 0000:7d:00.0: offset | data hns3 0000:7d:00.0: 0x0000 | 0x00000020 hns3 0000:7d:00.0: 0x0004 | 0x00000400 hns3 0000:7d:00.0: 0x0008 | 0x08020401 Signed-off-by: Weihang Li Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit bb87be87b1658f7ee95c0b7625553a6e7f8fea1c Author: Yonglong Liu Date: Fri Apr 19 11:05:43 2019 +0800 net: hns3: Add support for netif message level settings This patch adds support for network interface message level settings. The message level can be changed by module parameter or ethtool. Signed-off-by: Yonglong Liu Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit e511c97d0a26454dc2b4b478a7fd90802fca0b6a Author: Jian Shen Date: Fri Apr 19 11:05:42 2019 +0800 net: hns3: dump more information when tx timeout happens Currently we just print few information when tx timeout happens. In order to find out the cause of timeout, this patch prints more information about the packet statistics, tqp registers and napi state. Signed-off-by: Jian Shen Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit fa6c4084b98b82c98cada0f0d5c9f8577579f962 Author: Jian Shen Date: Fri Apr 19 11:05:41 2019 +0800 net: hns3: fix loop condition of hns3_get_tx_timeo_queue_info() In function hns3_get_tx_timeo_queue_info(), it should use netdev->num_tx_queues, instead of netdve->real_num_tx_queues as the loop limitation. Fixes: 424eb834a9be ("net: hns3: Unified HNS3 {VF|PF} Ethernet Driver for hip08 SoC") Signed-off-by: Jian Shen Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit beab694aa32afb7c785c55f075628d9a21ed8011 Author: Jian Shen Date: Fri Apr 19 11:05:40 2019 +0800 net: hns3: refine tx timeout count handle In current codes, tx_timeout_cnt is used before increased, then we can see the tx_timeout_count is still 0 from the print when tx timeout happens, e.g. "hns3 0000:7d:00.3 eth3: tx_timeout count: 0, queue id: 0, SW_NTU: 0xa6, SW_NTC: 0xa4, HW_HEAD: 0xa4, HW_TAIL: 0xa6, INT: 0x1" The tx_timeout_cnt should be updated before used. Signed-off-by: Jian Shen Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit fbf3cd3fc11ce80270a80e65a75e4e32a56a5a7d Author: Huazhong Tan Date: Fri Apr 19 11:05:39 2019 +0800 net: hns3: add some debug info for hclgevf_get_mbx_resp() When wait for response timeout or response code not match, there should be more information for debugging. Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit 147175c92a5cd83337157bf784389466bb380eef Author: Huazhong Tan Date: Fri Apr 19 11:05:38 2019 +0800 net: hns3: add some debug information for hclge_check_event_cause When received vector0 msix and other event interrupt, it should print the value of the register for debugging. Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit c88a6e7d8801fc5ffcd704b0b1f3e67b6266182b Author: Huazhong Tan Date: Fri Apr 19 11:05:37 2019 +0800 net: hns3: add reset statistics for VF This patch adds some statistics for VF reset. Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit f02eb82dfe12a0922b539f8cd3c4151826cae94e Author: Huazhong Tan Date: Fri Apr 19 11:05:36 2019 +0800 net: hns3: add reset statistics info for PF This patch adds statistics for PF's reset information, also, provides a debugfs command to dump these statistics. Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit 4519efa6f8ea343e43ade21b0189b0b295439202 Author: McCabe, Robert J Date: Fri Apr 19 18:37:20 2019 -0500 libbpf: fix BPF_LOG_BUF_SIZE off-by-one error The BPF_PROG_LOAD condition for kernel version <= 5.1 is log->len_total > UINT_MAX >> 8 /* (16 * 1024 * 1024) - 1 */ Signed-off-by: McCabe, Robert J Signed-off-by: Alexei Starovoitov commit d7cc399e1227e74e44f78847d9732a228b46cc91 Author: Eric Dumazet Date: Fri Apr 19 16:02:03 2019 -0700 tcp: properly reset skb->truesize for tx recycling tcp sendmsg() and sendpage() normally advance skb->data_len and skb->truesize by the payload added to an skb. But sendmsg(fd, ..., MSG_ZEROCOPY) has to account for whole pages, even if a single byte of payload is used in the page. This means that we can not assume skb->truesize can be adjusted by skb->data_len. We must instead overwrite its value. Otherwise skb->truesize is too big and can hit socket sndbuf limit, especially if the skb is recycled multiple times :/ Fixes: 472c2e07eef0 ("tcp: add one skb cache for tx") Signed-off-by: Eric Dumazet Cc: Soheil Hassas Yeganeh Cc: Willem de Bruijn Acked-by: Soheil Hassas Yeganeh Signed-off-by: David S. Miller commit a147faa96f832f76e772b1e448e94ea84c774081 Author: Kees Cook Date: Mon Apr 8 10:13:44 2019 -0700 selftests/ipc: Fix msgque compiler warnings This fixes the various compiler warnings when building the msgque selftest. The primary change is using sys/msg.h instead of linux/msg.h directly to gain the API declarations. Fixes: 3a665531a3b7 ("selftests: IPC message queue copy feature test") Signed-off-by: Kees Cook Signed-off-by: Shuah Khan commit dff6d2ae56d0056261e2f7b19c4b96b86b893cd8 Author: Po-Hsu Lin Date: Fri Apr 19 22:04:49 2019 +0800 selftests/efivarfs: clean up test files from test_create*() Test files created by test_create() and test_create_empty() tests will stay in the $efivarfs_mount directory until the system was rebooted. When the tester tries to run this efivarfs test again on the same system, the immutable characteristics in that directory will cause some "Operation not permitted" noises, and a false-positve test result as the file was created in previous run. -------------------- running test_create -------------------- ./efivarfs.sh: line 59: /sys/firmware/efi/efivars/test_create-210be57c-9849-4fc7-a635-e6382d1aec27: Operation not permitted [PASS] -------------------- running test_create_empty -------------------- ./efivarfs.sh: line 78: /sys/firmware/efi/efivars/test_create_empty-210be57c-9849-4fc7-a635-e6382d1aec27: Operation not permitted [PASS] -------------------- Create a file_cleanup() to remove those test files in the end of each test to solve this issue. For the test_create_read, we can move the clean up task to the end of the test to ensure the system is clean. Also, use this function to replace the existing file removal code. Signed-off-by: Po-Hsu Lin Signed-off-by: Shuah Khan commit 8ce72dc32578f16942997f041f62759b4c693b6f Author: Shuah Khan Date: Mon Apr 15 15:51:42 2019 -0600 selftests: fix headers_install circular dependency "make kselftest" fails with "Circular Makefile.o <- prepare dependency dropped." error, when lib.mk invokes "make headers_install". Make level 0: Main make calls selftests run_tests target ... Make level n: selftests lib.mk invokes main make's headers_install The secondary level make inherits builtin-rules which will use the rule to generate Makefile.o and runs into "Circular Makefile.o <- prepare dependency dropped." error, and kselftest compile fails. Invoke headers_install target with --no-builtin-rules to avoid circular error. In addition, lib.mk installs headers in the default HDR_PATH, even when build relocation is requested with O= or export KBUILD_OUTPUT. Fix the problem by passing in INSTALL_HDR_PATH. The headers are installed under the specified output "dir/usr". Signed-off-by: Shuah Khan commit 9f77a60669d13ed4ddfa6cd7374c9d88da378ffa Author: Leo Yan Date: Wed Mar 20 18:05:08 2019 +0800 clk: hi3660: Mark clk_gate_ufs_subsys as critical clk_gate_ufs_subsys is a system bus clock, turning off it will introduce lockup issue during system suspend flow. Let's mark clk_gate_ufs_subsys as critical clock, thus keeps it on during system suspend and resume. Fixes: d374e6fd5088 ("clk: hisilicon: Add clock driver for hi3660 SoC") Cc: stable@vger.kernel.org Cc: Zhong Kaihua Cc: John Stultz Cc: Zhangfei Gao Suggested-by: Dong Zhang Signed-off-by: Leo Yan Signed-off-by: Stephen Boyd commit bff1cef5f23afbe49f5ebd766980dc612f5e9d0a Author: Dmitry Osipenko Date: Fri Apr 19 14:42:26 2019 +0300 clk: tegra: Don't enable already enabled PLLs Initially Common Clock Framework isn't aware of the clock-enable status, this results in enabling of clocks that were enabled by bootloader. This is not a big deal for a regular clock-gates, but for PLL's it may have some unpleasant consequences. Thus re-enabling PLLX (the main CPU parent clock) may result in extra long period of PLL re-locking. Acked-by: Peter De Schrijver Signed-off-by: Dmitry Osipenko Signed-off-by: Stephen Boyd commit 0a9798c123d0eee43e55cc9361b0c10314bb2250 Author: Jiri Pirko Date: Fri Apr 19 13:27:05 2019 +0000 mlxsw: spectrum: Assume CONFIG_NET_DEVLINK is always enabled Since commit f6b19b354d50 ("net: devlink: select NET_DEVLINK from drivers") adds implicit select of NET_DEVLINK for mlxsw, the code does not have to deal with the case when CONFIG_NET_DEVLINK is not enabled. So remove the ifcase and adjust Makefile. Signed-off-by: Jiri Pirko Reviewed-by: Petr Machata Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit 42e5425aa0dfd8a6cdd7e177cfd9703df05c7411 Author: Tung Nguyen Date: Thu Apr 18 21:02:19 2019 +0700 tipc: introduce new socket option TIPC_SOCK_RECVQ_USED When using TIPC_SOCK_RECVQ_DEPTH for getsockopt(), it returns the number of buffers in receive socket buffer which is not so helpful for user space applications. This commit introduces the new option TIPC_SOCK_RECVQ_USED which returns the current allocated bytes of the receive socket buffer. This helps user space applications dimension its buffer usage to avoid buffer overload issue. Signed-off-by: Tung Nguyen Acked-by: Jon Maloy Signed-off-by: David S. Miller commit 03f8264c9b60727ac2cb576c30d47beb2fc929eb Author: Alex Shi Date: Tue Apr 16 10:28:25 2019 +0800 docs/zh_CN: fix typos in 1.Intro.rst file Fixed uncapital issues, thanks for Jonathan Neuschäfer, I am insensitive on captial custom as a non-captial native language reader. Sorry. Also fix a typo. And replace more colloquial words in Chinese. Signed-off-by: Alex Shi Reviewed-by: Jonathan Neuschäfer Signed-off-by: Jonathan Corbet commit 40845f9f80217d0cdc8dd1687d161dd959e6acea Author: Alex Shi Date: Tue Apr 16 10:28:24 2019 +0800 docs/zh_CN: redirect CoC docs to Chinese version That gives more natural reading experience for Chinese. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit ecbf3f1795fda56122632c1d024cfd0d3f4fe353 Author: Stephen Boyd Date: Fri Apr 12 11:31:50 2019 -0700 clk: fixed-factor: Let clk framework find parent Convert this driver to a more modern way of specifying parents now that we have a way to specify clk parents by DT index. This lets us nicely avoid a problem where a parent clk name isn't know because the parent clk hasn't been registered yet. Cc: Miquel Raynal Cc: Jerome Brunet Cc: Russell King Cc: Michael Turquette Cc: Jeffrey Hugo Cc: Chen-Yu Tsai Tested-by: Jeffrey Hugo Signed-off-by: Stephen Boyd commit 601b6e93304a65f8f7c37168763ab9ba5b195ce5 Author: Stephen Boyd Date: Fri Apr 12 11:31:49 2019 -0700 clk: Allow parents to be specified via clkspec index Some clk providers are simple DT nodes that only have a 'clocks' property without having an associated 'clock-names' property. In these cases, we want to let these clk providers point to their parent clks without having to dereference the 'clocks' property at probe time to figure out the parent's globally unique clk name. Let's add an 'index' property to the parent_data structure so that clk providers can indicate that their parent is a particular index in the 'clocks' DT property. Cc: Miquel Raynal Cc: Jerome Brunet Cc: Russell King Cc: Michael Turquette Cc: Jeffrey Hugo Cc: Chen-Yu Tsai Tested-by: Jeffrey Hugo Signed-off-by: Stephen Boyd commit dde4eff47c82c52a72af333d9e55370eee6d95d6 Author: Stephen Boyd Date: Fri Apr 12 11:31:48 2019 -0700 clk: Look for parents with clkdev based clk_lookups In addition to looking for DT based parents, support clkdev based clk_lookups. This should allow non-DT based clk drivers to participate in the parent lookup process. Cc: Miquel Raynal Cc: Jerome Brunet Cc: Russell King Cc: Michael Turquette Cc: Jeffrey Hugo Cc: Chen-Yu Tsai Tested-by: Jeffrey Hugo Signed-off-by: Stephen Boyd commit fc0c209c147f35ed2648adda09db39fcad89e334 Author: Stephen Boyd Date: Fri Apr 12 11:31:47 2019 -0700 clk: Allow parents to be specified without string names The common clk framework is lacking in ability to describe the clk topology without specifying strings for every possible parent-child link. There are a few drawbacks to the current approach: 1) String comparisons are used for everything, including describing topologies that are 'local' to a single clock controller. 2) clk providers (e.g. i2c clk drivers) need to create globally unique clk names to avoid collisions in the clk namespace, leading to awkward name generation code in various clk drivers. 3) DT bindings may not fully describe the clk topology and linkages between clk controllers because drivers can easily rely on globally unique strings to describe connections between clks. This leads to confusing DT bindings, complicated clk name generation code, and inefficient string comparisons during clk registration just so that the clk framework can detect the topology of the clk tree. Furthermore, some drivers call clk_get() and then __clk_get_name() to extract the globally unique clk name just so they can specify the parent of the clk they're registering. We have of_clk_parent_fill() but that mostly only works for single clks registered from a DT node, which isn't the norm. Let's simplify this all by introducing two new ways of specifying clk parents. The first method is an array of pointers to clk_hw structures corresponding to the parents at that index. This works for clks that are registered when we have access to all the clk_hw pointers for the parents. The second method is a mix of clk_hw pointers and strings of local and global parent clk names. If the .fw_name member of the map is set we'll look for that clk by performing a DT based lookup of the device the clk is registered with and the .name specified in the map. If that fails, we'll fallback to the .name member and perform a global clk name lookup like we've always done before. Using either one of these new methods is entirely optional. Existing drivers will continue to work, and they can migrate to this new approach as they see fit. Eventually, we'll want to get rid of the 'parent_names' array in struct clk_init_data and use one of these new methods instead. Cc: Miquel Raynal Cc: Jerome Brunet Cc: Russell King Cc: Michael Turquette Cc: Jeffrey Hugo Cc: Chen-Yu Tsai Cc: Rob Herring Tested-by: Jeffrey Hugo Signed-off-by: Stephen Boyd commit 89a5ddcc799d5d7dbcf6197b79dafc1dc9f997f5 Author: Stephen Boyd Date: Fri Apr 12 11:31:46 2019 -0700 clk: Add of_clk_hw_register() API for early clk drivers In some circumstances drivers register clks early and don't have access to a struct device because the device model isn't initialized yet. Add an API to let drivers register clks associated with a struct device_node so that these drivers can participate in getting parent clks through DT. Cc: Miquel Raynal Cc: Jerome Brunet Cc: Russell King Cc: Michael Turquette Cc: Jeffrey Hugo Cc: Chen-Yu Tsai Cc: Rob Herring Tested-by: Jeffrey Hugo Signed-off-by: Stephen Boyd commit 1b833924e5b3cea92306069a0f366529341dd260 Author: Stephen Boyd Date: Fri Apr 12 11:31:45 2019 -0700 driver core: Let dev_of_node() accept a NULL dev We'd like to chain this in places where the 'dev' argument might be NULL. Let this function take a NULL 'dev' so this can work. Cc: Miquel Raynal Cc: Jerome Brunet Cc: Russell King Cc: Michael Turquette Cc: Jeffrey Hugo Cc: Chen-Yu Tsai Cc: Greg Kroah-Hartman Cc: Rob Herring Acked-by: Greg Kroah-Hartman Tested-by: Jeffrey Hugo Signed-off-by: Stephen Boyd commit fceaa7d8004339820a0026d163b20becc796d1af Author: Stephen Boyd Date: Fri Apr 12 11:31:44 2019 -0700 clk: Prepare for clk registration API that uses DT nodes Split out the body of the clk_register() function so it can be shared between the different types of registration APIs (DT, device). Cc: Miquel Raynal Cc: Jerome Brunet Cc: Russell King Cc: Michael Turquette Cc: Jeffrey Hugo Cc: Chen-Yu Tsai Cc: Rob Herring Tested-by: Jeffrey Hugo Signed-off-by: Stephen Boyd commit d1011cba02f2f931f0a95ea093cb25bc7738ff4d Author: Stephen Boyd Date: Fri Apr 12 11:31:43 2019 -0700 clkdev: Move clk creation outside of 'clocks_mutex' We don't need to hold the 'clocks_mutex' here when we're creating a clk pointer from a clk_lookup structure. Instead, we just need to make sure that the lookup doesn't go away while we dereference the lookup pointer to extract the clk_hw pointer out of it. Let's move things around slightly so that we have a new function to get the clk_hw out of the lookup with the right locking and then chain the two together for what used to be __clk_get_sys(). Cc: Miquel Raynal Cc: Jerome Brunet Cc: Russell King Cc: Michael Turquette Cc: Jeffrey Hugo Cc: Chen-Yu Tsai Tested-by: Jeffrey Hugo Signed-off-by: Stephen Boyd commit a26deec69fa4a1843f11f11e123b49ed0699ff00 Author: Andrew Lunn Date: Thu Apr 18 03:11:39 2019 +0200 net: dsa: mv88e6xxx: Only reconfigure MAC when something changes phylink will call the mac_config() callback once per second when polling a PHY or a fixed link. The MAC driver is not supposed to reconfigure the MAC if nothing has changed. Make the mv88e6xxx driver look at the current configuration of the port, and return early if nothing has changed. Signed-off-by: Andrew Lunn Signed-off-by: David S. Miller commit 0768e17073dc527ccd18ed5f96ce85f9985e9115 Author: Arnd Bergmann Date: Wed Apr 17 22:56:11 2019 +0200 net: socket: implement 64-bit timestamps The 'timeval' and 'timespec' data structures used for socket timestamps are going to be redefined in user space based on 64-bit time_t in future versions of the C library to deal with the y2038 overflow problem, which breaks the ABI definition. Unlike many modern ioctl commands, SIOCGSTAMP and SIOCGSTAMPNS do not use the _IOR() macro to encode the size of the transferred data, so it remains ambiguous whether the application uses the old or new layout. The best workaround I could find is rather ugly: we redefine the command code based on the size of the respective data structure with a ternary operator. This lets it get evaluated as late as possible, hopefully after that structure is visible to the caller. We cannot use an #ifdef here, because inux/sockios.h might have been included before any libc header that could determine the size of time_t. The ioctl implementation now interprets the new command codes as always referring to the 64-bit structure on all architectures, while the old architecture specific command code still refers to the old architecture specific layout. The new command number is only used when they are actually different. Signed-off-by: Arnd Bergmann Signed-off-by: David S. Miller commit 5ce5d8a5a4ae64b281bea7ae028c960f12acae21 Author: Arnd Bergmann Date: Wed Apr 17 22:51:49 2019 +0200 asm-generic: generalize asm/sockios.h ia64, parisc and sparc just use a copy of the generic version of asm/sockios.h, and x86 is a redirect to the same file, so we can just let the header file be generated. Signed-off-by: Arnd Bergmann Signed-off-by: David S. Miller commit c7cbdbf29f488a19982cd9f4a109887f18028bbb Author: Arnd Bergmann Date: Wed Apr 17 22:51:48 2019 +0200 net: rework SIOCGSTAMP ioctl handling The SIOCGSTAMP/SIOCGSTAMPNS ioctl commands are implemented by many socket protocol handlers, and all of those end up calling the same sock_get_timestamp()/sock_get_timestampns() helper functions, which results in a lot of duplicate code. With the introduction of 64-bit time_t on 32-bit architectures, this gets worse, as we then need four different ioctl commands in each socket protocol implementation. To simplify that, let's add a new .gettstamp() operation in struct proto_ops, and move ioctl implementation into the common sock_ioctl()/compat_sock_ioctl_trans() functions that these all go through. We can reuse the sock_get_timestamp() implementation, but generalize it so it can deal with both native and compat mode, as well as timeval and timespec structures. Acked-by: Stefan Schmidt Acked-by: Neil Horman Acked-by: Marc Kleine-Budde Link: https://lore.kernel.org/lkml/CAK8P3a038aDQQotzua_QtKGhq8O9n+rdiz2=WDCp82ys8eUT+A@mail.gmail.com/ Signed-off-by: Arnd Bergmann Acked-by: Willem de Bruijn Signed-off-by: David S. Miller commit 5852b1365df4414523210e444ac7df1dec09acb4 Author: Michael Tretter Date: Fri Apr 12 11:52:20 2019 +0200 clk: zynqmp: use structs for clk query responses The driver retrieves the clock tree by querying the ATF for the clock names, the clock topology, the parents and other attributes. The driver needs to unmarshal the responses. The definition of the fields in the firmware responses to the queries is inconsistent. Some are specified as a mask, some as a shift, and by the length of the previous field. Define C structs for the entire firmware responses to avoid passing pointers to arrays of an implicit size and make the format of the responses to the queries obvious. Signed-off-by: Michael Tretter Reviewed-by: Jolly Shah [sboyd@kernel.org: Drop 0 initializers because sparse complains] Signed-off-by: Stephen Boyd commit 1ab839281cf72476988901a2606378d76530f99c Merge: 7d26c96052cd 8e1acd4fc552 Author: David S. Miller Date: Fri Apr 19 13:58:17 2019 -0700 Merge branch 'net-support-binding-vlan-dev-link-state-to-vlan-member-bridge-ports' Mike Manning says: ==================== net: support binding vlan dev link state to vlan member bridge ports For vlan filtering on bridges, the bridge may also have vlan devices as upper devices. For switches, these are used to provide L3 packet processing for ports that are members of a given vlan. While it is correct that the admin state for these vlan devices is either set directly for the device or inherited from the lower device, the link state is also transferred from the lower device. So this is always up if the bridge is in admin up state and there is at least one bridge port that is up, regardless of the vlan that the port is in. The link state of the vlan device may need to track only the state of the subset of ports that are also members of the corresponding vlan, rather than that of all ports. This series provides an optional vlan flag so that the link state of the vlan device is only up if there is at least one bridge port that is up AND is a member of the corresponding vlan. v2: - Address review comments from Nikolay Aleksandrov in patches 3 & 4 and add patch 5 to address bridge link down due to STP v3: - Address review comment from Nikolay Aleksandrov in patch 4 so as to remove unnecessary inline #ifdef ==================== Signed-off-by: David S. Miller commit 8e1acd4fc552f5590e9d5ff6e5cb5eeafd638d30 Author: Mike Manning Date: Thu Apr 18 18:35:35 2019 +0100 bridge: update vlan dev link state for bridge netdev changes If vlan bridge binding is enabled, then the link state of a vlan device that is an upper device of the bridge tracks the state of bridge ports that are members of that vlan. But this can only be done when the link state of the bridge is up. If it is down, then the link state of the vlan devices must also be down. This is to maintain existing behavior for when STP is enabled and there are no live ports, in which case the link state for the bridge and any vlan devices is down. Signed-off-by: Mike Manning Acked-by: Nikolay Aleksandrov Signed-off-by: David S. Miller commit 80900acd3a30ed32d65ec591ded5d527d6ba373f Author: Mike Manning Date: Thu Apr 18 18:35:34 2019 +0100 bridge: update vlan dev state when port added to or deleted from vlan If vlan bridge binding is enabled, then the link state of a vlan device that is an upper device of the bridge should track the state of bridge ports that are members of that vlan. So if a bridge port becomes or stops being a member of a vlan, then update the link state of the vlan device if necessary. Signed-off-by: Mike Manning Acked-by: Nikolay Aleksandrov Signed-off-by: David S. Miller commit 9c0ec2e7182a508335364c752da0883a2a7f3999 Author: Mike Manning Date: Thu Apr 18 18:35:33 2019 +0100 bridge: support binding vlan dev link state to vlan member bridge ports In the case of vlan filtering on bridges, the bridge may also have the corresponding vlan devices as upper devices. A vlan bridge binding mode is added to allow the link state of the vlan device to track only the state of the subset of bridge ports that are also members of the vlan, rather than that of all bridge ports. This mode is set with a vlan flag rather than a bridge sysfs so that the 8021q module is aware that it should not set the link state for the vlan device. If bridge vlan is configured, the bridge device event handling results in the link state for an upper device being set, if it is a vlan device with the vlan bridge binding mode enabled. This also sets a vlan_bridge_binding flag so that subsequent UP/DOWN/CHANGE events for the ports in that bridge result in a link state update of the vlan device if required. The link state of the vlan device is up if there is at least one bridge port that is a vlan member that is admin & oper up, otherwise its oper state is IF_OPER_LOWERLAYERDOWN. Signed-off-by: Mike Manning Acked-by: Nikolay Aleksandrov Signed-off-by: David S. Miller commit 76052d8c4f2dda6f31390521069bc109204e2f28 Author: Mike Manning Date: Thu Apr 18 18:35:32 2019 +0100 vlan: do not transfer link state in vlan bridge binding mode In vlan bridge binding mode, the link state is no longer transferred from the lower device. Instead it is set by the bridge module according to the state of bridge ports that are members of the vlan. Signed-off-by: Mike Manning Acked-by: Nikolay Aleksandrov Signed-off-by: David S. Miller commit 8c8b3458d0b91b2230f76fbe1b0280568f10d19f Author: Mike Manning Date: Thu Apr 18 18:35:31 2019 +0100 vlan: support binding link state to vlan member bridge ports In the case of vlan filtering on bridges, the bridge may also have the corresponding vlan devices as upper devices. Currently the link state of vlan devices is transferred from the lower device. So this is up if the bridge is in admin up state and there is at least one bridge port that is up, regardless of the vlan that the port is a member of. The link state of the vlan device may need to track only the state of the subset of ports that are also members of the corresponding vlan, rather than that of all ports. Add a flag to specify a vlan bridge binding mode, by which the link state is no longer automatically transferred from the lower device, but is instead determined by the bridge ports that are members of the vlan. Signed-off-by: Mike Manning Acked-by: Nikolay Aleksandrov Signed-off-by: David S. Miller commit d5a71e4646a741f22863b12d0037e15b5844af90 Author: Vladimir Zapolskiy Date: Fri Apr 19 23:54:47 2019 +0300 ARM: dts: lpc32xx: use SPDX license identifier Replace GPLv2+ header with the SPDX identifier. Signed-off-by: Vladimir Zapolskiy commit cea862386791e281c4e9ab07dd118321f6655435 Author: Vladimir Zapolskiy Date: Fri Apr 19 23:54:46 2019 +0300 ARM: dts: lpc32xx: add address and size cell values to SPI controller nodes All 4 SPI controllers on NXP LPC32xx SoC support SPI slaves discerning them by one cell address value, set it as default to avoid duplication in board device tree files. Signed-off-by: Vladimir Zapolskiy commit 4c546175dbe1b9bde68f547666a2c1f75d65b817 Author: Vladimir Zapolskiy Date: Fri Apr 19 23:54:45 2019 +0300 ARM: dts: lpc32xx: disable MAC controller by default NXP LPC3220 and LPC3230 SoCs do NOT contain a MAC controller, so, since for now there is just one dtsi file for all variants of NXP LPC32xx SoCs, it is reasonable to disable the controller by default and enable it in device tree files of particular boards. Signed-off-by: Vladimir Zapolskiy commit 903fa2ab79d832ef3dcf7424f0227799cbeda3da Author: Vladimir Zapolskiy Date: Fri Apr 19 23:54:44 2019 +0300 ARM: dts: lpc32xx: disable I2S controllers by default The I2S controllers found on NXP LPC32xx SoCs are not yet in use by any boards supported in upstream, disable the controllers by default. Signed-off-by: Vladimir Zapolskiy commit 37917ce5b4ee51e3164738cb653266f1a7d53120 Author: Vladimir Zapolskiy Date: Fri Apr 19 23:54:43 2019 +0300 ARM: dts: lpc32xx: change hexadecimal values to lower case This is a non-functional change, all inconsistent hexadecimal values found in the file are now fixed. Taking a chance to interfere into some non-functional change I add my copyright notice for work done during the last few years. Signed-off-by: Vladimir Zapolskiy commit d9aa5ca429ad30dde96e5966173d18004f16f312 Author: Alexandre Belloni Date: Fri Apr 19 10:25:01 2019 +0200 rtc: ds2404: simplify .probe and remove .remove Use devm_add_action_or_reset to simplify .probe and remove .remove Signed-off-by: Alexandre Belloni commit c7ac260fe76fa69caa62fe8e7eef544f7962bf33 Author: Alexandre Belloni Date: Fri Apr 19 10:25:00 2019 +0200 rtc: ds2404: remove ds2404_chip_ops There is only one ds2404_chip_ops struct that is implemented, remove the unnecessary indirection. Signed-off-by: Alexandre Belloni commit 14556f04e546de8c639f8393527a0600f79ca7b7 Author: Alexandre Belloni Date: Fri Apr 19 10:24:59 2019 +0200 rtc: ds2404: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Signed-off-by: Alexandre Belloni commit be2b04371ab198af69a0630abccf7a6110008067 Author: Alexandre Belloni Date: Fri Apr 19 10:24:58 2019 +0200 rtc: ds2404: use .set_time Use .set_time instead of the deprecated .set_mmss. Signed-off-by: Alexandre Belloni commit 53523216ba910935a483f4867077a7f3d1e8c506 Author: Alexandre Belloni Date: Fri Apr 19 10:24:57 2019 +0200 rtc: ds2404: switch to rtc_time64_to_tm Call the 64bit version of rtc_time_to_tm now that the range is enforced by the core. Signed-off-by: Alexandre Belloni commit 13bfa942254f0894f22bcbfccee3480df1bfd89d Author: Alexandre Belloni Date: Fri Apr 19 10:24:56 2019 +0200 rtc: ds2404: set range The real-time clock is a 5-byte binary counter. It is incremented 256 times per second. The least significant byte is a count of fractional seconds. The upper four bytes are a count of seconds. The realtime clock can accumulate 136 years of seconds before rolling over. Signed-off-by: Alexandre Belloni commit d71c7715326b561e5b11768e8146f46287d1edd8 Author: Alexandre Belloni Date: Fri Apr 19 10:00:05 2019 +0200 rtc: ep93xx: fix checkpatch issues Fix sysfs attribute declaration as suggested by checkpatch. Signed-off-by: Alexandre Belloni commit 4fdf4d237fab355f7cc904c6cb1cf0d99b769eff Author: Alexandre Belloni Date: Fri Apr 19 10:00:04 2019 +0200 rtc: ep93xx: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Signed-off-by: Alexandre Belloni commit ef9440a2e363f3ba4de079c5727e34db005aecc4 Author: Alexandre Belloni Date: Fri Apr 19 10:00:03 2019 +0200 rtc: ep93xx: use .set_time Use .set_time instead of the deprecated .set_mmss. Signed-off-by: Alexandre Belloni commit 886a77e73e521a75b7bb5cef63f8c2349edfd8e5 Author: Alexandre Belloni Date: Fri Apr 19 10:00:02 2019 +0200 rtc: ep93xx: switch to rtc_time64_to_tm Call the 64bit version of rtc_time_to_tm now that the range is enforced by the core. Signed-off-by: Alexandre Belloni commit 2d4fc6df77d8effe07a66ec24c093b8c9f0fb998 Author: Alexandre Belloni Date: Fri Apr 19 10:00:01 2019 +0200 rtc: ep93xx: set range The ep93xx RTC is a 32-bit seconds counter. Signed-off-by: Alexandre Belloni commit 09cd030b54466bc7024977bdab9636a597f63c55 Author: Alexandre Belloni Date: Fri Apr 19 10:00:00 2019 +0200 rtc: ep93xx: use rtc_add_group Use rtc_add_group to add the sysfs group in a race free manner. This has the side effect of moving the files to their proper location. Signed-off-by: Alexandre Belloni commit bac68b30d5375fccd42ffcb96d6ab13b51509608 Author: Alexandre Belloni Date: Fri Apr 19 09:59:59 2019 +0200 rtc: ep93xx: convert to devm_rtc_allocate_device This allows further improvement of the driver. Signed-off-by: Alexandre Belloni commit b809d192eb98846476012072481cf5a709420329 Author: Alexandre Belloni Date: Fri Apr 19 09:59:58 2019 +0200 rtc: ep93xx: stop setting platform_data Since commit 28dc5f803899 ("drivers/rtc/rtc-ep93xx.c: use dev_get_platdata()"), platform_data is not used directly, it is not necessary to set it anymore. Signed-off-by: Alexandre Belloni commit 9eec31f310e0f37a25eda4efdfb5b9df32f635d6 Author: Han Nandor Date: Tue Apr 16 10:57:54 2019 +0000 rtc: ds3232: get SRAM access using NVMEM Framework DS3232 RTC has 236 bytes of persistent memory. Add RTC SRAM read and write access using the NVMEM Framework. Signed-off-by: Han Nandor Signed-off-by: Alexandre Belloni commit aa2a0592ceb65bcba5fa1b8d9a7fb8c43d7cadb9 Merge: 9e98c678c2d6 691dc382769e Author: Stephen Boyd Date: Fri Apr 19 13:20:58 2019 -0700 Merge tag 'clk-v5.2-samsung' of https://git.kernel.org/pub/scm/linux/kernel/git/snawrocki/clk into clk-samsung Pull Samsung clk driver updates from Sylwester Nawrocki: - Addition of ADC clock definition for Exynos 5410 SoC (Odroid XU) * tag 'clk-v5.2-samsung' of https://git.kernel.org/pub/scm/linux/kernel/git/snawrocki/clk: clk: samsung: exynos5410: Add gate clock for ADC clk: samsung: dt-bindings: Add ADC clock ID to Exynos5410 clk: samsung: dt-bindings: Put CLK_UART3 in order commit 93737fe93ec6cd3ffe49f631ad854c36a3d78ac2 Merge: 9e98c678c2d6 c77cebac96a9 Author: Stephen Boyd Date: Fri Apr 19 13:11:39 2019 -0700 Merge tag 'sunxi-clk-for-5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into clk-allwinner Pull Allwinner clk driver updates from Maxime Ripard: Our usual bunch of changes, this time, it's mainly: - Export a new clock for the MBUS controller on the A13 - H6 fixes to support a finer clocking of the video and VPU engines - Add some Kconfig options - Some bit offset fixes * tag 'sunxi-clk-for-5.2' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux: clk: sunxi-ng: sun5i: Export the MBUS clock clk: sunxi-ng: a83t: Add pll-video0 as parent of csi-mclk clk: sunxi-ng: h6: Allow video & vpu clocks to change parent rate clk: sunxi-ng: h6: Preset hdmi-cec clock parent clk: sunxi: Add Kconfig options clk: sunxi-ng: f1c100s: fix USB PHY gate bit offset clk: sunxi-ng: Allow DE clock to set parent rate commit e861cfbed091b195eab34874c4af0f85d5388a52 Author: Vladimir Zapolskiy Date: Fri Apr 19 22:55:28 2019 +0300 ARM: lpc32xx: use SPDX license identifier Replace GPLv2+ header with the SPDX identifier. Signed-off-by: Vladimir Zapolskiy commit bbf553c6bb9fa5032539213b8b6e10c286d18f00 Author: Vladimir Zapolskiy Date: Fri Apr 19 22:55:27 2019 +0300 ARM: lpc32xx: remove platform data of SSP0 and SSP1 controllers Both controllers are described in lpc32xx.dtsi and there is no any specific platform data added in the platform file. Signed-off-by: Vladimir Zapolskiy commit a1e65c28f6022e3aee33210335940ae7be6670e7 Author: Vladimir Zapolskiy Date: Fri Apr 19 22:55:26 2019 +0300 ARM: lpc32xx: remove redundant included headers While the majority of platform data was moved to device tree description the list of included header files remained untouched, the change cleans it up to an irreducible and observable subset. Signed-off-by: Vladimir Zapolskiy commit b97369f07e3b826e8da0436e26b01c1f8e36042d Author: Leonardo Brás Date: Mon Oct 22 22:10:22 2018 -0300 x86/vdso: Rename variable to fix -Wshadow warning The go32() and go64() functions has an argument and a local variable called ‘name’. Rename both to clarify the code and to fix a warning with -Wshadow. Signed-off-by: Leonardo Brás Acked-by: Andy Lutomirski Cc: Borislav Petkov Cc: David.Laight@aculab.com Cc: Linus Torvalds Cc: Masahiro Yamada Cc: Michal Marek Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: helen@koikeco.de Cc: linux-kbuild@vger.kernel.org Cc: lkcamp@lists.libreplanetbr.org Link: http://lkml.kernel.org/r/20181023011022.GA6574@WindFlash Signed-off-by: Ingo Molnar commit a93fb4f40788a3d545bd630d248103962a6276a3 Author: Alexandre Belloni Date: Thu Apr 11 16:12:09 2019 +0200 ARM: lpc32xx: stop overwriting TEST_CLK_SEL While the UDA1380 is described in some lpc3250 device trees, there is currently no real user of that codec. Anyway, if the codec needs a clock, it should take it explicitly. lpc3250_machine_init is called for all the lpc32xx machines and some are using test1_clk (for example to strobe an HW watchdog). Overwriting TEST_CLK_SEL prevents booting those platforms. Signed-off-by: Alexandre Belloni Tested-by: Gregory CLEMENT Signed-off-by: Vladimir Zapolskiy commit ad2e379def135ebc079f89a0e0b1d987d243f949 Author: Colin Ian King Date: Wed Nov 28 15:23:50 2018 +0000 sched/debug: Fix spelling mistake "logaritmic" -> "logarithmic" Signed-off-by: Colin Ian King Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: kernel-janitors@vger.kernel.org Link: http://lkml.kernel.org/r/20181128152350.13622-1-colin.king@canonical.com Signed-off-by: Ingo Molnar commit 7d26c96052cd42439180edfeee48cc784075b78a Author: John Hurley Date: Thu Apr 18 01:05:39 2019 +0100 nfp: flower: fix size_t compile warning A recent addition to NFP introduced a function that formats a string with a size_t variable. This is formatted with %ld which is fine on 64-bit architectures but produces a compile warning on 32-bit architectures. Fix this by using the z length modifier. Fixes: a6156a6ab0f9 ("nfp: flower: handle merge hint messages") Signed-off-by: John Hurley Acked-by: Jakub Kicinski Signed-off-by: David S. Miller commit f36e7495dd3990d6848e6d6703c78f1f17a97538 Author: Artem Savkov Date: Thu Nov 29 16:56:15 2018 +0100 x86/tools/relocs: Fix big section header tables In case when the number of entries in the section header table is larger then or equal to SHN_LORESERVE the size of the table is held in the sh_size member of the initial entry in section header table instead of e_shnum. Same with the string table index which is located in sh_link instead of e_shstrndx. This case is easily reproducible with KCFLAGS="-ffunction-sections", bzImage build fails with "String table index out of bounds" error. Signed-off-by: Artem Savkov Reviewed-by: Josh Poimboeuf Acked-by: Joe Lawrence Cc: Eric W . Biederman Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20181129155615.2594-1-asavkov@redhat.com [ Simplify the die() lines. ] Signed-off-by: Ingo Molnar commit b673499ae738e7790b1b9f65e784999e5804abd3 Author: Kristian H. Kristensen Date: Wed Mar 20 10:09:10 2019 -0700 drm/msm: Split submit_lookup_objects() into two loops First loop does copy_from_user() without the table lock held and just stores the handle. Second loop looks up buffer objects with the table_lock held without potentially blocking or faulting. This lets us clean up a bunch of custom, non-faulting copy_from_user() code. Signed-off-by: Kristian H. Kristensen Signed-off-by: Rob Clark commit 8ea274accda92d36bd510a3272adf745c6376d3f Author: Kristian H. Kristensen Date: Wed Mar 20 10:09:09 2019 -0700 drm/msm: Stop dropping struct_mutex in recover_worker() Now that we don't have the mmap_sem lock inversion, we don't need to jump through this particular hoop anymore. Signed-off-by: Kristian H. Kristensen Signed-off-by: Rob Clark commit 48e7f18392c66f9b69ebac11c54f1a2e033ced54 Author: Kristian H. Kristensen Date: Wed Mar 20 10:09:08 2019 -0700 drm/msm: Implement .gem_free_object_unlocked We use a llist and a worker to delay the object cleanup. This avoids taking mmap_sem and struct_mutex in the wrong order when calling drm_gem_object_put_unlocked() from drm_gem_mmap(). Fixes lockdep problem with copy_from_user() in msm_ioctl_gem_submit(). Signed-off-by: Kristian H. Kristensen Signed-off-by: Rob Clark commit fb076b15d50dee36c75eb6c447c1b1026ad12e2e Author: Jordan Crouse Date: Mon Feb 4 09:15:44 2019 -0700 drm/msm/a6xx: Remove an unused struct member The HFI tasklet was removed in df0dff1 ("drm/msm/a6xx: Poll for HFI responses") but the tasklet_struct was accidentally left behind. Signed-off-by: Jordan Crouse Signed-off-by: Rob Clark commit 41570b747cf3ae8fcd1cb0ac954cb1b3240af9bd Author: Jordan Crouse Date: Mon Feb 4 09:15:43 2019 -0700 msm/drm/a6xx: Turn off the GMU if resume fails Currently if the GMU resume function fails all we try to do is clear the BOOT_SLUMBER oob which usually times out and ends up in a cycle of death. If the resume function fails at any point remove any RPMh votes that might have been added and try to shut down the GMU hardware cleanly. Signed-off-by: Jordan Crouse Signed-off-by: Rob Clark commit e31fdb74c183a8cfe32dc31974f3d626b3af4393 Author: Jordan Crouse Date: Mon Feb 4 09:15:42 2019 -0700 drm/msm/a6xx: Make GMU reset useful Now that the GX domain is sorted we can wire up a working GMU reset. IF a GMU hang was detected then try to forcefully shut down the GMU in the power down sequence which should ensure that it can recover normally on the next power up. Signed-off-by: Jordan Crouse Signed-off-by: Rob Clark commit 9325d4266afd4e54ff4aae0018d420d596964126 Author: Jordan Crouse Date: Mon Feb 4 09:15:41 2019 -0700 drm/msm/gpu: Attach to the GPU GX power domain 99.999% of the time during normal operation the GMU is responsible for power and clock control on the GX domain and the CPU remains blissfully unaware. However, there is one situation where the CPU needs to get involved: The power sequencing rules dictate that the GX needs to be turned off before the CX so that the CX can be turned on before the GX during power up. During normal operation when the CPU is taking down the CX domain a stop command is sent to the GMU which turns off the GX domain and then the CPU handles the CX domain. But if the GMU happened to be unresponsive while the GX domain was left then the CPU will need to step in and turn off the GX domain before resetting the CX and rebooting the GMU. This unfortunately means that the CPU needs to be marginally aware of the GX domain even though it is expected to usually keep its hands off. To support this we create a semi-disabled GX power domain that does nothing to the hardware on power up but tries to shut it down normally on power down. In this method the reference counting is correct and we can step in with the pm_runtime_put() at the right time during the failure path. This patch sets up the connection to the GX power domain and does the magic to "enable" and disable it at the right points. Signed-off-by: Jordan Crouse Signed-off-by: Rob Clark commit c6c598535c7cce130cc99fc29a1578a844900cd7 Author: Jordan Crouse Date: Mon Feb 4 09:15:40 2019 -0700 dt-bindings: drm/msm/a6xx: Add GX power-domain for GMU bindings The GMU should have two power domains defined: "cx" and "gx". "cx" is the actual power domain for the device and "gx" will be attached at runtime to manage reference counting on the GPU device in case of a GMU crash. Signed-off-by: Jordan Crouse Signed-off-by: Rob Clark commit b94a6e3737ac7b5c67570cbbd02858b9aec8fbf1 Author: Jordan Crouse Date: Mon Feb 4 09:15:39 2019 -0700 drm/msm/a6xx: Remove unwanted regulator code The GMU code currently has some misguided code to try to work around a hardware quirk that requires the power domains on the GPU be collapsed in a certain order. Upcoming patches will do this the right way so get rid of the unused and unwanted regulator code. Signed-off-by: Jordan Crouse Signed-off-by: Rob Clark commit b0fb66043a0d471a5acfe743adf90a0c447aca6b Author: Jordan Crouse Date: Fri Mar 22 14:21:22 2019 -0600 drm/msm/gpu: Add submit queue queries Add the capability to query information from a submit queue. The first available parameter is for querying the number of GPU faults (hangs) that can be attributed to the queue. This is useful for implementing context robustness. A user context can regularly query the number of faults to see if it is responsible for any and if so it can invalidate itself. This is also helpful for testing by confirming to the user driver if a particular command stream caused a fault (or not as the case may be). Signed-off-by: Jordan Crouse Signed-off-by: Rob Clark commit 48dc4241c9cd62bfbe33625e669e21d7081d35fa Author: Rob Clark Date: Tue Apr 16 16:13:28 2019 -0700 drm/msm: add param to retrieve # of GPU faults (global) For KHR_robustness, userspace wants to know two things, the count of GPU faults globally, and the count of faults attributed to a given context. This patch providees the former, and the next patch provides the latter. Signed-off-by: Rob Clark Reviewed-by: Jordan Crouse commit d674c963af7470b6394b4b7f98cf2716b3a757d7 Author: Rob Clark Date: Mon Apr 15 16:55:45 2019 -0700 drm/msm/gpu: add per-process pagetables param For now it always returns '0' (false), but once the iommu work is in place to enable per-process pagetables we can update the value returned. Userspace needs to know this to make an informed decision about exposing KHR_robustness. Signed-off-by: Rob Clark Reviewed-by: Jordan Crouse commit a496696ab56917baf813dacb4f4837f1ef516c50 Author: Yang Shi Date: Fri Apr 19 04:17:04 2019 +0800 doc: mm: migration doesn't use FOLL_SPLIT anymore When demonstrating FOLL_SPLIT in transhuge document, migration is used as an example. But, since commit 94723aafb9e7 ("mm: unclutter THP migration"), the way of THP migration is totally changed. FOLL_SPLIT is not used by migration anymore due to the change. Remove the obsolete example to avoid confusion. Cc: Michal Hocko Cc: Kirill A. Shutemov Cc: Mike Rapoport Signed-off-by: Yang Shi Reviewed-by: Zi Yan Signed-off-by: Jonathan Corbet commit d8e8bcc3d8de530da43de16bf9cd89aa553ae290 Author: Mauro Carvalho Chehab Date: Fri Apr 19 07:30:51 2019 -0300 docs: doc-guide: remove the extension from .rst files On almost all places, we're including ReST files without the extension. Let's remove the extension here as well, in order to use just one standard. Suggested-by: Jani Nikula Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 9f436194f98547a847ab2529861d7cf22273f32c Author: Shuah Khan Date: Wed Apr 17 17:34:03 2019 -0600 doc: kselftest: Fix KBUILD_OUTPUT usage instructions Fix KBUILD_OUTPUT usage instructions. The current documentation is incorrect. Update and fix outdated information about summary option. Add a reference to kselftest wiki for additional information on the framework and tips on writing new tests. Signed-off-by: Shuah Khan Signed-off-by: Jonathan Corbet commit 5b978c10665973d8ee7050b03ef6e97013066b03 Author: Linus Walleij Date: Fri Jan 25 16:41:25 2019 +0100 irqchip: Add driver for IXP4xx The IXP4xx (arch/arm/mach-ixp4xx) is an old Intel XScale platform that has very wide deployment and use. As part of modernizing the platform, we need to implement a proper irqchip in the irqchip subsystem. The IXP4xx irqchip is tightly jotted together with the GPIO controller, and whereas in the past we would deal with this complex logic by adding necessarily different code, we can nowadays modernize it using a hierarchical irqchip. The actual IXP4 irqchip is a simple active low level IRQ controller, whereas the GPIO functionality resides in a different memory area and adds edge trigger support for the interrupts. The interrupts from GPIO lines 0..12 are 1:1 mapped to a fixed set of hardware IRQs on this IRQchip, so we expect the child GPIO interrupt controller to go in and allocate descriptors for these interrupts. For the other interrupts, as we do not yet have DT support for this platform, we create a linear irqdomain and then go in and allocate the IRQs that the legacy boards use. This code will be removed on the DT probe path when we add DT support to the platform. We add some translation code for supporting DT translations for the fwnodes, but we leave most of that for later. Cc: Marc Zyngier Cc: Jason Cooper Acked-by: Marc Zyngier Signed-off-by: Linus Walleij commit dc8ef8cd3a05632bf15ce8714d6b84ece2836fe9 Author: Linus Walleij Date: Sat Dec 29 15:47:52 2018 +0100 ARM: ixp4xx: Convert to SPARSE_IRQ This localizes the header to the mach-ixp4xx directory, removes NR_IRQS and switches IXP4xx over to using SPARSE_IRQ. This is a prerequisite for DT support. Signed-off-by: Linus Walleij commit 075df31aed44cd9b9f2fd6522b16183415ee3351 Author: Linus Walleij Date: Sat Dec 29 15:49:08 2018 +0100 ARM: ixp4xx: Pass IRQ resource to beeper All IXP4xx devices except the beeper passes the IRQ as a resource, augment the NSLU2 beeper to do the same. This is a prerequisite for SPARSE_IRQ. Signed-off-by: Linus Walleij commit 98ac0cc270b717c49a49787fe7c42041123290bb Author: Linus Walleij Date: Sat Dec 29 14:30:27 2018 +0100 ARM: ixp4xx: Convert to MULTI_IRQ_HANDLER This rewrites the IXP4xx to use MULTI_IRQ_HANDLER and create an irqdomain for the irqchip in the platform. We convert the timer to request the interrupt like any other driver in the process. We bump all IRQs to 16+offset to avoid using IRQ 0 and set NR_IRQS to 512 (the default for most systems). This conveniently fits with the first 16 IRQs being pre-allocated when using SPARSE_IRQ. This is a prerequisite for SPARSE_IRQ and DT boot. Signed-off-by: Linus Walleij commit 64534e060dda5546e6e8b38b8a9422e84a7df84d Author: Linus Walleij Date: Tue Mar 19 08:25:05 2019 +0100 ARM: ixp4xx: Add myself as maintainer I am working on the platform right now so might as well maintain it for a bit. Suggested-by: Krzysztof Hałasa Signed-off-by: Linus Walleij commit afe471ea2d6fcd439c3a7a1fe2df0389e07a67c8 Author: Roman Gushchin Date: Fri Apr 19 10:03:09 2019 -0700 cgroup: document cgroup v2 freezer interface Describe cgroup v2 freezer interface in the cgroup v2 admin guide. Signed-off-by: Roman Gushchin Reviewed-by: Mike Rapoport Signed-off-by: Tejun Heo Cc: linux-doc@vger.kernel.org Cc: kernel-team@fb.com commit 4c476d8cff48853645abc822154aaad208faebcc Author: Roman Gushchin Date: Fri Apr 19 10:03:08 2019 -0700 cgroup: add tracing points for cgroup v2 freezer Add cgroup:cgroup_freeze and cgroup:cgroup_unfreeze events, which are using the existing cgroup tracing infrastructure. Add the cgroup_event event class, which is similar to the cgroup class, but contains an additional integer field to store a new value (the level field is dropped). Also add two tracing events: cgroup_notify_populated and cgroup_notify_frozen, which are raised in a generic way using the TRACE_CGROUP_PATH() macro. This allows to trace cgroup state transitions and is generally helpful for debugging the cgroup freezer code. Signed-off-by: Roman Gushchin Signed-off-by: Tejun Heo commit 712e35178754bbb785d00d5fcf5abaf32699bf11 Author: Roman Gushchin Date: Fri Apr 19 10:03:07 2019 -0700 cgroup: make TRACE_CGROUP_PATH irq-safe To use the TRACE_CGROUP_PATH() macro with css_set_lock locked, let's make the macro irq-safe. It's necessary in order to trace cgroup freezer state transitions (frozen/not frozen), which are happening with css_set_lock locked. Signed-off-by: Roman Gushchin Signed-off-by: Tejun Heo commit 5313bfe425c8aadc582356f575100f3235a6d638 Author: Roman Gushchin Date: Fri Apr 19 10:03:06 2019 -0700 kselftests: cgroup: add freezer controller self-tests This patch implements 9 tests for the freezer controller for cgroup v2: 1) a simple test, which aims to freeze and unfreeze a cgroup with 100 processes 2) a more complicated tree test, which creates a hierarchy of cgroups, puts some processes in some cgroups, and tries to freeze and unfreeze different parts of the subtree 3) a forkbomb test: the test aims to freeze a forkbomb running in a cgroup, kill all tasks in the cgroup and remove the cgroup without the unfreezing. 4) rmdir test: the test creates two nested cgroups, freezes the parent one, checks that the child can be successfully removed, and a new child can be created 5) migration tests: the test checks migration of a task between frozen cgroups: from a frozen to a running, from a running to a frozen, and from a frozen to a frozen. 6) ptrace test: the test checks that it's possible to attach to a process in a frozen cgroup, get some information and detach, and the cgroup will remain frozen. 7) stopped test: the test checks that it's possible to freeze a cgroup with a stopped task 8) ptraced test: the test checks that it's possible to freeze a cgroup with a ptraced task 9) vfork test: the test checks that it's possible to freeze a cgroup with a parent process waiting for the child process in vfork() Expected output: $ ./test_freezer ok 1 test_cgfreezer_simple ok 2 test_cgfreezer_tree ok 3 test_cgfreezer_forkbomb ok 4 test_cgrreezer_rmdir ok 5 test_cgfreezer_migrate ok 6 test_cgfreezer_ptrace ok 7 test_cgfreezer_stopped ok 8 test_cgfreezer_ptraced ok 9 test_cgfreezer_vfork Signed-off-by: Roman Gushchin Signed-off-by: Tejun Heo Cc: Shuah Khan Cc: kernel-team@fb.com Cc: linux-kselftest@vger.kernel.org commit ff9fb7cb515b32ac8d479b086c7c8c565d6905fb Author: Roman Gushchin Date: Fri Apr 19 10:03:05 2019 -0700 kselftests: cgroup: don't fail on cg_kill_all() error in cg_destroy() If the cgroup destruction races with an exit() of a belonging process(es), cg_kill_all() may fail. It's not a good reason to make cg_destroy() fail and leave the cgroup in place, potentially causing next test runs to fail. Signed-off-by: Roman Gushchin Signed-off-by: Tejun Heo Cc: Shuah Khan Cc: kernel-team@fb.com Cc: linux-kselftest@vger.kernel.org commit 76f969e8948d82e78e1bc4beb6b9465908e74873 Author: Roman Gushchin Date: Fri Apr 19 10:03:04 2019 -0700 cgroup: cgroup v2 freezer Cgroup v1 implements the freezer controller, which provides an ability to stop the workload in a cgroup and temporarily free up some resources (cpu, io, network bandwidth and, potentially, memory) for some other tasks. Cgroup v2 lacks this functionality. This patch implements freezer for cgroup v2. Cgroup v2 freezer tries to put tasks into a state similar to jobctl stop. This means that tasks can be killed, ptraced (using PTRACE_SEIZE*), and interrupted. It is possible to attach to a frozen task, get some information (e.g. read registers) and detach. It's also possible to migrate a frozen tasks to another cgroup. This differs cgroup v2 freezer from cgroup v1 freezer, which mostly tried to imitate the system-wide freezer. However uninterruptible sleep is fine when all tasks are going to be frozen (hibernation case), it's not the acceptable state for some subset of the system. Cgroup v2 freezer is not supporting freezing kthreads. If a non-root cgroup contains kthread, the cgroup still can be frozen, but the kthread will remain running, the cgroup will be shown as non-frozen, and the notification will not be delivered. * PTRACE_ATTACH is not working because non-fatal signal delivery is blocked in frozen state. There are some interface differences between cgroup v1 and cgroup v2 freezer too, which are required to conform the cgroup v2 interface design principles: 1) There is no separate controller, which has to be turned on: the functionality is always available and is represented by cgroup.freeze and cgroup.events cgroup control files. 2) The desired state is defined by the cgroup.freeze control file. Any hierarchical configuration is allowed. 3) The interface is asynchronous. The actual state is available using cgroup.events control file ("frozen" field). There are no dedicated transitional states. 4) It's allowed to make any changes with the cgroup hierarchy (create new cgroups, remove old cgroups, move tasks between cgroups) no matter if some cgroups are frozen. Signed-off-by: Roman Gushchin Signed-off-by: Tejun Heo No-objection-from-me-by: Oleg Nesterov Cc: kernel-team@fb.com commit 4dcabece4c3a9f9522127be12cc12cc120399b2f Author: Roman Gushchin Date: Fri Apr 19 10:03:03 2019 -0700 cgroup: protect cgroup->nr_(dying_)descendants by css_set_lock The number of descendant cgroups and the number of dying descendant cgroups are currently synchronized using the cgroup_mutex. The number of descendant cgroups will be required by the cgroup v2 freezer, which will use it to determine if a cgroup is frozen (depending on total number of descendants and number of frozen descendants). It's not always acceptable to grab the cgroup_mutex, especially from quite hot paths (e.g. exit()). To avoid this, let's additionally synchronize these counters using the css_set_lock. So, it's safe to read these counters with either cgroup_mutex or css_set_lock locked, and for changing both locks should be acquired. Signed-off-by: Roman Gushchin Signed-off-by: Tejun Heo Cc: kernel-team@fb.com commit aade7f9efba098859681f8e88d81a5b44ad09b12 Author: Roman Gushchin Date: Fri Apr 19 10:03:02 2019 -0700 cgroup: implement __cgroup_task_count() helper The helper is identical to the existing cgroup_task_count() except it doesn't take the css_set_lock by itself, assuming that the caller does. Also, move cgroup_task_count() implementation into kernel/cgroup/cgroup.c, as there is nothing specific to cgroup v1. Signed-off-by: Roman Gushchin Signed-off-by: Tejun Heo Cc: kernel-team@fb.com commit 50943f3e136adfc421f9768d6ae09ba7b83aaefd Author: Roman Gushchin Date: Fri Apr 19 10:03:01 2019 -0700 cgroup: rename freezer.c into legacy_freezer.c Freezer.c will contain an implementation of cgroup v2 freezer, so let's rename the v1 freezer to avoid naming conflicts. Signed-off-by: Roman Gushchin Signed-off-by: Tejun Heo Cc: kernel-team@fb.com commit cb0c04143b6196f4a479ba113706329fc667ee15 Author: Juri Lelli Date: Wed Dec 19 14:34:45 2018 +0100 sched/topology: Update init_sched_domains() comment Holding hotplug lock is not a requirement anymore for callers of sched_ init_domains after commit: 6acce3ef8452 ("sched: Remove get_online_cpus() usage") Update the relative comment preceding init_sched_domains(). Signed-off-by: Juri Lelli Acked-by: Tejun Heo Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: cgroups@vger.kernel.org Cc: lizefan@huawei.com Link: http://lkml.kernel.org/r/20181219133445.31982-2-juri.lelli@redhat.com Signed-off-by: Ingo Molnar commit b6fbbf31d15b5072250ec6ed79e415a1160e5621 Author: Juri Lelli Date: Wed Dec 19 14:34:44 2018 +0100 cgroup/cpuset: Update stale generate_sched_domains() comments Commit: fc560a26acce ("cpuset: replace cpuset->stack_list with cpuset_for_each_descendant_pre()") removed the local list (q) that was used to perform a top-down scan of all cpusets; however, comments mentioning it were not updated. Update comments to reflect current implementation. Signed-off-by: Juri Lelli Acked-by: Tejun Heo Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: cgroups@vger.kernel.org Cc: lizefan@huawei.com Link: http://lkml.kernel.org/r/20181219133445.31982-1-juri.lelli@redhat.com Signed-off-by: Ingo Molnar commit 8fea0f59e97df3b9b8d2a76af54f633f4586751b Author: Juri Lelli Date: Wed Dec 19 16:16:47 2018 +0100 x86/topology: Make DEBUG_HOTPLUG_CPU0 pr_info() more descriptive DEBUG_HOTPLUG_CPU0 debug feature offlines a CPU as early as possible allowing userspace to boot up without that CPU (so that it is possible to check for unwanted dependencies towards the offlined CPU). After doing so it emits a "CPU %u is now offline" pr_info, which is not enough descriptive of why the CPU was offlined (e.g., one might be running with a config that triggered some problem, not being aware that CONFIG_DEBUG_ HOTPLUG_CPU0 is set). Add a bit more of informative text to the pr_info, so that it is immediately obvious why a CPU has been offlined in early boot stages. Background: Got to scratch my head a bit while debugging a WARNING splat related to the offlining of CPU0. Without being aware yet of this debug option it wasn't immediately obvious why CPU0 was being offlined by the kernel. Signed-off-by: Juri Lelli Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: fenghua.yu@intel.com Link: http://lkml.kernel.org/r/20181219151647.15073-1-juri.lelli@redhat.com [ Merge line-broken line. ] Signed-off-by: Ingo Molnar commit 18ea35c5ed9921867194a8efc2a0ac2d5a3c7d2a Author: Sean Christopherson Date: Fri Dec 21 13:36:57 2018 -0800 x86/fault: Decode and print #PF oops in human readable form Linus pointed out that deciphering the raw #PF error code and printing a more human readable message are two different things, and also that printing the negative cases is mostly just noise[1]. For example, the USER bit doesn't mean the fault originated in user code and stating that an oops wasn't due to a protection keys violation isn't interesting since an oops on a keys violation is a one-in-a-million scenario. Remove the per-bit decoding of the error code and instead print: - the raw error code - why the fault occurred - the effective privilege level of the access - the type of access - whether the fault originated in user code or kernel code This provides the user with the information needed to triage 99.9% of oopses without polluting the log with useless information or conflating the error_code with the CPL. Sample output: BUG: kernel NULL pointer dereference, address = 0000000000000008 #PF: supervisor-privileged instruction fetch from kernel code #PF: error_code(0x0010) - not-present page BUG: unable to handle page fault for address = ffffbeef00000000 #PF: supervisor-privileged instruction fetch from kernel code #PF: error_code(0x0010) - not-present page BUG: unable to handle page fault for address = ffffc90000230000 #PF: supervisor-privileged write access from kernel code #PF: error_code(0x000b) - reserved bit violation [1] https://lkml.kernel.org/r/CAHk-=whk_fsnxVMvF1T2fFCaP2WrvSybABrLQCWLJyCvHw6NKA@mail.gmail.com Suggested-by: Linus Torvalds Signed-off-by: Sean Christopherson Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: Yu-cheng Yu Link: http://lkml.kernel.org/r/20181221213657.27628-3-sean.j.christopherson@intel.com Signed-off-by: Ingo Molnar commit f28b11a2abd9cf5535baa03e28fc63ad0e14f52a Author: Sean Christopherson Date: Fri Dec 21 13:36:56 2018 -0800 x86/fault: Reword initial BUG message for unhandled page faults Reword the NULL pointer dereference case to simply state that a NULL pointer was dereferenced, i.e. drop "unable to handle" as that implies that there are instances where the kernel actual does handle NULL pointer dereferences, which is not true barring funky exception fixup. For the non-NULL case, replace "kernel paging request" with "page fault" as the kernel can technically oops on faults that originated in user code. Dropping "kernel" also allows future patches to provide detailed information on where the fault occurred, e.g. user vs. kernel, without conflicting with the initial BUG message. In both cases, replace "at address=" with wording more appropriate to the oops, as "at" may be interpreted as stating that the address is the RIP of the instruction that faulted. Last, and probably least, further qualify the NULL-pointer path by checking that the fault actually originated in kernel code. It's technically possible for userspace to map address 0, and not printing a super specific message is the least of our worries if the kernel does manage to oops on an actual NULL pointer dereference from userspace. Before: BUG: unable to handle kernel NULL pointer dereference at ffffbeef00000000 BUG: unable to handle kernel paging request at ffffbeef00000000 After: BUG: kernel NULL pointer dereference, address = 0000000000000008 BUG: unable to handle page fault for address = ffffbeef00000000 Suggested-by: Linus Torvalds Signed-off-by: Sean Christopherson Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: Yu-cheng Yu Link: http://lkml.kernel.org/r/20181221213657.27628-2-sean.j.christopherson@intel.com Signed-off-by: Ingo Molnar commit 987ddbe4870b53623d76ac64044c55a13e368113 Author: David Wang Date: Thu Dec 27 16:41:50 2018 +0800 x86/power: Optimize C3 entry on Centaur CPUs For new Centaur CPUs the ucode will take care of the preservation of cache coherence between CPU cores in C-states regardless of how deep the C-states are. So, it is not necessary to flush the caches in software befor entering C3. This useless operation will cause performance drop for the cores which share some caches with the idling core. Signed-off-by: David Wang Reviewed-by: Thomas Gleixner Acked-by: Pavel Machek Cc: Linus Torvalds Cc: Peter Zijlstra Cc: brucechang@via-alliance.com Cc: cooperyan@zhaoxin.com Cc: len.brown@intel.com Cc: linux-pm@kernel.org Cc: qiyuanwang@zhaoxin.com Cc: rjw@rjwysocki.net Cc: timguo@zhaoxin.com Link: http://lkml.kernel.org/r/1545900110-2757-1-git-send-email-davidwang@zhaoxin.com [ Tidy up the comment. ] Signed-off-by: Ingo Molnar commit 28156d7678431312b463361b23a218a1b5645ba5 Author: YueHaibing Date: Fri Dec 28 07:24:13 2018 +0000 x86/mce: Fix debugfs_simple_attr.cocci warnings Use DEFINE_DEBUGFS_ATTRIBUTE() rather than DEFINE_SIMPLE_ATTRIBUTE() for debugfs files. Semantic patch information: Rationale: DEFINE_SIMPLE_ATTRIBUTE + debugfs_create_file() imposes some significant overhead as compared to DEFINE_DEBUGFS_ATTRIBUTE + debugfs_create_file_unsafe(). Generated by: scripts/coccinelle/api/debugfs/debugfs_simple_attr.cocci Signed-off-by: YueHaibing Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tony Luck Cc: Vishal Verma Cc: Yazen Ghannam Cc: kernel-janitors@vger.kernel.org Link: http://lkml.kernel.org/r/1545981853-70877-1-git-send-email-yuehaibing@huawei.com Signed-off-by: Ingo Molnar commit 13e792a19d4e3a1c64e94197ba357685fd584ded Author: Laurent Gauthier Date: Sat Jan 5 00:07:45 2019 +0100 tick: Fix typos in comments Signed-off-by: Laurent Gauthier Cc: Frederic Weisbecker Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit c9d66b361ed1693666dc4816d76ba17b51423014 Author: Colin Ian King Date: Thu Apr 18 11:25:10 2019 +0100 drm/amd/amdgpu: fix spelling mistake "recieve" -> "receive" There is a spelling mistake in a pr_err message. Fix it. Reviewed-by: Mukesh Ojha Signed-off-by: Colin Ian King Signed-off-by: Alex Deucher commit f4895610f2ee3f817eeb0dab1c11fb1432594bcf Author: Colin Ian King Date: Tue Apr 16 12:59:26 2019 +0100 drm/amdgpu: fix spelling mistake "gateing" -> "gating" There is a spelling mistake in a DRM_INFO message. Fix it. Reviewed-by: Mukesh Ojha Signed-off-by: Colin Ian King Signed-off-by: Alex Deucher commit fced5c70da82c94130948b6a3effcf292acc63fb Author: Likun Gao Date: Fri Apr 19 15:12:34 2019 +0800 drm/amdgpu: enable MGCG for PCO Enable MGCG for picasso. Signed-off-by: Likun Gao Reviewed-by: Huang Rui Signed-off-by: Alex Deucher commit 4cb62b50de6fccf957e8926e37a2840c204c2a76 Author: Yintian Tao Date: Tue Apr 16 14:04:38 2019 +0800 drm/amdgpu: disable DRIVER_ATOMIC under SRIOV Under SRIOV, we need disable DRIVER_ATOMIC. Otherwise, it will trigger WARN_ON at drm_universal_plane_init. Signed-off-by: Yintian Tao Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 36e499b2490a470a9a1e8d40096b4e397efac056 Author: wentalou Date: Tue Apr 16 15:09:16 2019 +0800 drm/amdgpu: amdgpu_device_recover_vram got NULL of shadow->parent amdgpu_bo_destroy had a bug by calling amdgpu_bo_unref outside mutex_lock. If amdgpu_device_recover_vram executed between amdgpu_bo_unref and list_del_init, it would get NULL of shadow->parent, then caused Call Trace and GPU reset failed. Signed-off-by: Wentao Lou Reviewed-by: Christian König Signed-off-by: Alex Deucher commit 20299a8812dccdd24acfaa5f935fa8d81222bf9c Author: Leo Li Date: Tue Apr 16 11:32:34 2019 -0400 drm/amd/include: Add USB_C_TYPE to atom_encoder_cap_defs This is needed by DC to support EDID emulation on USB-C ports. CC: Samson Tam CC: Harry Wentland CC: Alex Deucher Signed-off-by: Leo Li Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 0da8b10e36e91b1c68b88cdcc6efb285a3b386ed Author: Amber Lin Date: Fri Apr 12 11:07:16 2019 -0400 drm/amdgpu: get_fw_version isn't ASIC specific Method of getting firmware version is the same across ASICs, so remove them from ASIC-specific files and create one in amdgpu_amdkfd.c. This new created get_fw_version simply reads fw_version from adev->gfx than parsing the ucode header. Signed-off-by: Amber Lin Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher commit a1b11201af9a934f0c4b2218c25a7b75ca2ff42a Author: shaoyunl Date: Mon Apr 15 11:22:38 2019 -0400 drm/powerplay : send SMC message to set XGMI pstate Send message with parameter to SMC to set xgmi pstate Signed-off-by: shaoyunl Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit 46dd9ff7246fd21cc4228a4e7e1d40c30f210dec Author: Nicholas Kazlauskas Date: Mon Apr 15 10:27:50 2019 -0400 drm/amd/display: Expose support for DRM_FORMAT_RGB565 DC and DM already support DRM_FORMAT_RGB565, it's just missing from the list of valid formats. Cc: Harry Wentland Cc: Leo Li Signed-off-by: Nicholas Kazlauskas Acked-by: Alex Deucher Reviewed-by: Harry Wentland Signed-off-by: Alex Deucher commit 017d75f1f96f5d969a04fafb1dcd617f9c27f21a Author: Evan Quan Date: Mon Apr 15 12:07:28 2019 +0800 drm/amdgpu: enable Vega20 BACO reset support PSP SOS firmware needs to be 0x80067 or later. Signed-off-by: Evan Quan Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 01c8327667c249818d3712c3e25c7ad2aca7f389 Author: Libin Yang Date: Sat Apr 13 21:18:12 2019 +0800 ASoC: codec: hdac_hdmi add device_link to card device In resume from S3, HDAC HDMI codec driver dapm event callback may be operated before HDMI codec driver turns on the display audio power domain because of the contest between display driver and hdmi codec driver. This patch adds the device_link between soc card device (consumer) and hdmi codec device (supplier) to make sure the sequence is always correct. Signed-off-by: Libin Yang Reviewed-by: Takashi Iwai Acked-by: Pierre-Louis Bossart Signed-off-by: Mark Brown Cc: stable@vger.kernel.org commit 479879701758206a2cc75176119fcc9dacc40846 Author: YueHaibing Date: Thu Apr 18 10:48:48 2019 +0800 ASoC: Intel: Haswell: Remove set but not used variable 'stage_type' Fixes gcc '-Wunused-but-set-variable' warning: sound/soc/intel/haswell/sst-haswell-ipc.c: In function 'hsw_stream_message': sound/soc/intel/haswell/sst-haswell-ipc.c:669:29: warning: variable 'stage_type' set but not used [-Wunused-but-set-variable] It is never used since introduction in commit ba57f68235cf ("ASoC: Intel: create haswell folder and move haswell platform files in") Signed-off-by: YueHaibing Acked-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit ae061d2a857f84ad47b77b04c3ad37478651ab6c Author: Libin Yang Date: Fri Apr 19 09:53:12 2019 +0800 ASoC: pcm: save fixed-up hw_params of BE Some drivers mandate setting up hw params after resuming from system sleep. Since, the hw_params ioctl is not invoked upon resuming, the fixed-up BE dai hw params should be saved so the driver can use it in its resume sequence. Signed-off-by: Libin Yang Signed-off-by: Mark Brown commit d18360e07fb73c61b5bd850daa9744d986e44d50 Author: Sylwester Nawrocki Date: Fri Apr 19 12:22:02 2019 +0200 ASoC: samsung: tobermory: Convert to SPDX License Identifier Replace GPL v2.0+ license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit 686f47bb72dd77d372bffdc72e257be752752c43 Author: Sylwester Nawrocki Date: Fri Apr 19 12:22:01 2019 +0200 ASoC: samsung: tm2_wm5110: Convert to SPDX License Identifier Replace GPL v2.0+ license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit 14e581c381b942ce5463a7e61326d8ce1c843be7 Author: Andi Kleen Date: Fri Mar 29 17:47:42 2019 -0700 x86/kvm: Make steal_time visible This per cpu variable is accessed from assembler code, so it needs to be visible for LTO. Signed-off-by: Andi Kleen Signed-off-by: Thomas Gleixner Cc: pbonzini@redhat.com Link: https://lkml.kernel.org/r/20190330004743.29541-8-andi@firstfloor.org commit 02143c2931c3c0faf088c5859a10de6c2b4f2d96 Author: Andi Kleen Date: Fri Mar 29 17:47:40 2019 -0700 x86/hyperv: Make hv_vcpu_is_preempted() visible This function is referrenced from assembler, so it needs to be marked visible for LTO. Fixes: 3a025de64bf8 ("x86/hyperv: Enable PV qspinlock for Hyper-V") Signed-off-by: Andi Kleen Signed-off-by: Thomas Gleixner Reviewed-by: Yi Sun Cc: kys@microsoft.com Cc: haiyangz@microsoft.com Link: https://lkml.kernel.org/r/20190330004743.29541-6-andi@firstfloor.org commit 3f8b21fd7960371bfd9f40955e5eb6be8db80bf9 Author: Sylwester Nawrocki Date: Fri Apr 19 12:22:00 2019 +0200 ASoC: samsung: speyside: Convert to SPDX License Identifier Replace GPL v2.0+ license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit dbf0344a4b6ad38732fa246c1b8ea93435af58e0 Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:59 2019 +0200 ASoC: samsung: spdif: Convert to SPDX License Identifier Replace GPL v2.0 license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit ebf4c423dd2a53f3a65f2a1645cc50b4db03de9e Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:58 2019 +0200 ASoC: samsung: snow: Convert to SPDX License Identifier Replace GPL v2.0 license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit f9ff38071cdc2c1c2bbc0e2b81b025476c152982 Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:57 2019 +0200 ASoC: samsung: smdk_wm8994*: Convert to SPDX License Identifier Replace GPL v2.0+ license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit fe20039c8d09d41f9c6773ff96067b10ed9c87a4 Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:56 2019 +0200 ASoC: samsung: smdk_wm8580: Convert to SPDX License Identifier Replace GPL v2.0+ license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit 64301240f86a3bc23adce5ac35c98f6632ad63f1 Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:55 2019 +0200 ASoC: samsung: smdk_spdif: Convert to SPDX License Identifier Replace GPL v2.0+ license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit 8aa0ef201cdc43ea91bfc78f88c313b32c4b1ad3 Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:54 2019 +0200 ASoC: samsung: smartq_wm8987: Convert to SPDX License Identifier Replace GPL v2.0+ license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit 4d19f2cf5f2d292b72e848f8ac6ffa019a5e9c75 Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:53 2019 +0200 ASoC: samsung: s3c24xx_uda134x: Convert to SPDX License Identifier Replace GPL v2.0 license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit ac64529df8dfc127f3e212d51ff16f3ceb092da4 Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:52 2019 +0200 ASoC: samsung: s3c24xx_simtec*: Convert to SPDX License Identifier Replace GPL v2.0 license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit 25bc05fbc464457a2187cb240b26a6dbd609399a Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:51 2019 +0200 ASoC: samsung: s3c2412-i2s: Convert to SPDX License Identifier Replace GPL v2.0+ license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit 2dab7021aa52fb9b31c2ecd93d9b0399808c740b Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:50 2019 +0200 ASoC: samsung: rx1950_uda1380: Convert to SPDX License Identifier Replace GPL v2.0+ license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit 521cc68ea5888a6439a43a35bf84bbf7b5b79363 Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:49 2019 +0200 ASoC: samsung: s3c24xx-i2s: Convert to SPDX License Identifier Replace GPL v2.0(+) license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit 08ac76d01beaf32e8ea4e20c20ccea42206ddc90 Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:48 2019 +0200 ASoC: samsung: s3c-i2s-v2: Convert to SPDX License Identifier Replace GPL v2.0 license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit 65511dc7488eee1d5597e427726297ea49a59998 Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:47 2019 +0200 ASoC: samsung: pcm: Convert to SPDX License Identifier Replace GPL v2.0 license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit 1896b485d3ec849585d60db2dc861a744ba73f1a Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:46 2019 +0200 ASoC: samsung: odroid: Convert to SPDX License Identifier Replace GPL v2.0 license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit 7cab920a891ee635c26d85b04d10c04591333047 Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:45 2019 +0200 ASoC: samsung: neo1973_wm8753: Convert to SPDX License Identifier Replace GPL v2.0+ license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit d5943db34af3825b73690724f10fe2bc95cc8dc2 Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:44 2019 +0200 ASoC: samsung: lowland: Convert to SPDX License Identifier Replace GPL v2.0+ license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit 1643b9fb8c77e1cf31918beea3856754e1d5f834 Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:43 2019 +0200 ASoC: samsung: littlemill: Convert to SPDX License Identifier Replace GPL v2.0+ license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit 9c8df4cd99643759b69e1b8dca7f2065ccf63ed2 Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:42 2019 +0200 ASoC: samsung: jive_wm8750: Convert to SPDX License Identifier Replace GPL v2.0 license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit 1d3279c4ab5738631fa6f775991fcc65803dccff Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:41 2019 +0200 ASoC: samsung: idma: Convert to SPDX License Identifier Replace GPL v2.0+ license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit 7d5b1b8aaa659ff2a26e5a9910f2b6132ea78e45 Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:40 2019 +0200 ASoC: samsung: i2s: Convert to SPDX License Identifier Replace remaining GPL v2.0 license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit 81423c37415fe45057d64196ae0ce8e17a9c7148 Author: Andi Kleen Date: Fri Mar 29 17:47:38 2019 -0700 x86/timer: Don't inline __const_udelay() LTO will happily inline __const_udelay() everywhere it is used. Forcing it noinline saves ~44k text in a LTO build. 13999560 1740864 1499136 17239560 1070e08 vmlinux-with-udelay-inline 13954764 1736768 1499136 17190668 1064f0c vmlinux-wo-udelay-inline Even without LTO this function should never be inlined. Signed-off-by: Andi Kleen Signed-off-by: Thomas Gleixner Link: https://lkml.kernel.org/r/20190330004743.29541-4-andi@firstfloor.org commit 392d20f60d000dd36ee69c993d13e5586ca54e7f Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:39 2019 +0200 ASoC: samsung: h1940_uda1380: Convert to SPDX License Identifier Replace GPL v2.0+ license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit df504eda6a7242d3ed5e5d2c9fbc8c718ca140c4 Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:38 2019 +0200 ASoC: samsung: dmaengine: Convert to SPDX License Indentifier Replace GPL v2.0 license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit 41ce2ac0417c207b4b908108de1f0c72661cc558 Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:37 2019 +0200 ASoC: samsung: bells: Convert to SPDX License Identifier Replace GPL v2.0 license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit 26b31f46f036ad89de20cbbb732b76289411eddb Author: Andi Kleen Date: Fri Mar 29 17:47:36 2019 -0700 x86/cpu/amd: Exclude 32bit only assembler from 64bit build The "vide" inline assembler is only needed on 32bit kernels for old 32bit only CPUs. Guard it with an #ifdef so it's not included in 64bit builds. Signed-off-by: Andi Kleen Signed-off-by: Thomas Gleixner Link: https://lkml.kernel.org/r/20190330004743.29541-2-andi@firstfloor.org commit c03e27506a564ec7db1b179e7464835901f49751 Author: Andi Kleen Date: Fri Mar 29 17:47:35 2019 -0700 x86/asm: Mark all top level asm statements as .text With gcc toplevel assembler statements that do not mark themselves as .text may end up in other sections. This causes LTO boot crashes because various assembler statements ended up in the middle of the initcall section. It's also a latent problem without LTO, although it's currently not known to cause any real problems. According to the gcc team it's expected behavior. Always mark all the top level assembler statements as text so that they switch to the right section. Signed-off-by: Andi Kleen Signed-off-by: Thomas Gleixner Link: https://lkml.kernel.org/r/20190330004743.29541-1-andi@firstfloor.org commit 4c61608402f5408855d54c91e32e61780644dd1d Author: Sylwester Nawrocki Date: Fri Apr 19 12:21:36 2019 +0200 ASoC: samsung: arndale: Convert to SPDX License Identifier Replace GPL v2.0 license statements with SPDX license identifier. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit 41f13084506aba1d50412026764cf7ad460fd9c2 Author: Okash Khawaja Date: Wed Apr 17 13:21:14 2019 +0100 staging: speakup: refactor to use existing code in vt This patch replaces speakup's implementations with calls to functions in tty/vt/selection.c. Those functions are: cancel_selection() set_selection_kernel() paste_selection() Currently setting selection is done in interrupt context. However, set_selection_kernel() can sleep - for instance, it requires console_lock which can sleep. Therefore we offload that work to a work_struct thread, following the same pattern which was already set for paste_selection(). When setting selection, we also get a reference to tty and make sure to release the reference before returning. struct speakup_paste_work has been renamed to the more generic speakup_selection_work because it is now used for both pasting as well as setting selection. When paste work is cancelled, the code wasn't setting tty to NULL. This patch also fixes that by setting tty to NULL so that in case of failure we don't get EBUSY forever. Signed-off-by: Okash Khawaja Reviewed-by: Samuel Thibault Tested-by: Gregory Nowak Signed-off-by: Greg Kroah-Hartman commit 496124e5e16e4974c71404bc9ddaa016156f8cb0 Author: Okash Khawaja Date: Wed Apr 17 13:21:13 2019 +0100 vt: selection: allow functions to be called from inside kernel This patch breaks set_selection() into two functions so that when called from kernel, copy_from_user() can be avoided. The two functions are called set_selection_user() and set_selection_kernel() in order to be explicit about their purposes. This also means updating any references to set_selection() and fixing for name change. It also exports set_selection_kernel() and paste_selection(). These changes are used the following patch where speakup's selection functionality calls into the above functions, thereby doing away with parallel implementation. Signed-off-by: Okash Khawaja Reviewed-by: Samuel Thibault Tested-by: Gregory Nowak Signed-off-by: Greg Kroah-Hartman commit 827c085baede48155c57dff16396620c5377e755 Author: Gustavo A. R. Silva Date: Wed Apr 17 13:44:40 2019 -0500 staging: greybus: power_supply: use struct_size() helper Make use of the struct_size() helper instead of an open-coded version in order to avoid any potential type mistakes, in particular in the context in which this code is being used. So, replace code of the following form: sizeof(*resp) + props_count * sizeof(struct gb_power_supply_props_desc) with: struct_size(resp, props, props_count) This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Reviewed-by: Rui Miguel Silva Reviewed-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman commit 24c9f9b66a706013279b9214e00090ed4c2295e3 Author: Moses Christopher Date: Tue Apr 16 22:38:58 2019 +0530 staging: comedi: use help instead of ---help--- in Kconfig - Resolve the following warning from the Kconfig, "WARNING: prefer 'help' over '---help---' for new help texts" Signed-off-by: Moses Christopher Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman commit 3322d579679dbb030de72ac66434b476663252e5 Author: Bhanusree Pola Date: Fri Apr 19 17:22:14 2019 +0530 Staging: rtl8723bs: Avoid typedefs for structure Avoid typedefs for structure types to maintain kernel coding style. Remove typedefs for _ODM_Phy_Dbg_Info and _ODM_Mac_Status_Info_. This part is done by the following semantic patch: @r1@ identifier i; type t; @@ typedef struct i { ... }t; @r2@ type r1.t; identifier v; @@ t v; @script:python match@ i << r1.i; x; @@ coccinelle.x = i; @r4@ identifier match.x; type r1.t; @@ - typedef struct x + struct x { ... } - t ; @r5@ type r1.t; identifier r2.v, match.x; @@ - t v; + struct x v; Change Structure name _ODM_Phy_Dbg_Info and _ODM_Mac_Status_Info_ to maintain Linux kernel Coding Style. Replace occurences of ODM_PHY_DBG_INFO_T to odm_phy_dbg_info and ODM_MAC_INFO to odm_mac_status_info. Signed-off-by: Bhanusree Pola Signed-off-by: Greg Kroah-Hartman commit 36d657b011ef49b549aae44d0fe49ce845beb975 Author: Sergio Paracuellos Date: Wed Apr 17 13:58:38 2019 +0200 staging: mt7621-pci-phy: convert driver to use kernel regmap API's Instead of using writel and readl use regmap API which makes the driver maintainability easier. Signed-off-by: Sergio Paracuellos Signed-off-by: Greg Kroah-Hartman commit 9445ccb3714c78c26a3a25fafed4d9d965080431 Author: Sergio Paracuellos Date: Wed Apr 17 13:58:37 2019 +0200 staging: mt7621-pci-phy: add quirks for 'E2' revision using 'soc_device_attribute' Depending on revision of the chip, 'mt7621_bypass_pipe_rst' function must be executed. Add better support for this using 'soc_device_match' in driver probe function. Signed-off-by: Sergio Paracuellos Signed-off-by: Greg Kroah-Hartman commit d43f53c6cc926b18316a7e835348363e4a10b61e Author: Sergio Paracuellos Date: Wed Apr 17 13:58:36 2019 +0200 staging: mt7621-pci-phy: remove some unnecessary local variables Device tree is not using child nodes anymore so the 'child_np' variable can safely removed. This also simplifies the error path to be able to directly return errors removing also the 'ret' variable. Signed-off-by: Sergio Paracuellos Signed-off-by: Greg Kroah-Hartman commit fc1e669ad15aff8d1cd14aa661279f2119471d0b Author: Sergio Paracuellos Date: Wed Apr 17 13:58:35 2019 +0200 staging: mt7621-pci-phy: use 'platform_get_resource' Driver is using 'of_address_to_resource' to get memory resources. Make use of 'platform_get_resource' instead which is more accurate for a platform driver. This also makes possible to delete a local variable which is not needed anymore. Signed-off-by: Sergio Paracuellos Signed-off-by: Greg Kroah-Hartman commit 9c5d9e572e0e59c83a3683dff73be9120f0f1acc Author: Colin Ian King Date: Wed Apr 17 13:00:47 2019 +0100 staging: rtl8723bs: fix spelling mistake: "nonprintabl" -> "non-printable" There is a spelling mistake in an RT_TRACE message, fix it. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Signed-off-by: Greg Kroah-Hartman commit 8e227f7005da5b54958e64fd662a6f7a5a9a58de Author: Colin Ian King Date: Wed Apr 17 13:08:22 2019 +0100 staging: rtlwifi: fix spelling mistake "notity" -> "notify" There are two spelling mistake in RT_TRACE messages. Fix them. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Signed-off-by: Greg Kroah-Hartman commit 7c2c18202ce0c0f8f05a4d72999899fdc3fe9de3 Author: Ian Abbott Date: Wed Apr 17 16:16:11 2019 +0100 staging: comedi: dt9812: Call mutex_destroy() on private mutex `dt9812_detach()` is the Comedi "detach" handler for the dt9812 driver. When it is called, the private data for the device is about to be freed. The private data contains a mutex `devpriv->mut` that was initialized when the private data was allocated. Call `mutex_destroy()` to mark it as invalid. Also remove the calls to `mutex_lock()` and `mutex_unlock()` from `dt9812_detach()` as the mutex is only being used around a call to `usb_set_intfdata()` to clear the USB interface's driver data pointer. The mutex lock seems redundant here, especially as it is about to be destroyed. Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman commit 6e1167444c7dd3491739618c6b0481587ac5bdb1 Author: Ian Abbott Date: Wed Apr 17 16:32:49 2019 +0100 staging: comedi: ni_usb6501: Call mutex_destroy() on private mutex `ni6501_detach()` is the Comedi "detach" handler for the ni_usb6501 driver. It is called when the private data for the device is about to be freed. The private data contains a mutex `devpriv->mut` that was initialized when the private data was allocated. Call `mutex_destroy()` to mark it as invalid. Also remove the calls to `mutex_lock()` and `mutex_unlock()` from `ni6501_detach()`. The only other locks of the mutex are by some of the Comedi instruction handlers that cannot contend with the "detach" handler for this mutex. Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman commit 3c03c470f476957d318ea49b7eeb9bcf3cb8b1e9 Author: Ian Abbott Date: Wed Apr 17 16:44:25 2019 +0100 staging: comedi: usbdux: Call mutex_destroy() on private mutex `usbdux_detach()` is the Comedi "detach" handler for the usbdux driver. When it is called, the private data for the device is about to be freed. The private date contains a mutex `devpriv->mut` that was initialized when the private data was allocated. Call `mutex_destroy()` to mark it as invalid. The calls to `mutex_lock()` and `mutex_unlock()` are probably not required, especially as the mutex is about to be destroyed, but leave them alone for now. Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman commit 35756f3dbf4347b8e4b7dcd781da887cafab4786 Author: Ian Abbott Date: Wed Apr 17 16:50:09 2019 +0100 staging: comedi: usbduxfast: Call mutex_destroy() on private mutex `usbduxfast_detach()` is the Comedi "detach" handler for the usbduxfast driver. When it is called, the private data for the device is about to be freed. The private date contains a mutex `devpriv->mut` that was initialized when the private data was allocated. Call `mutex_destroy()` to mark it as invalid. The calls to `mutex_lock()` and `mutex_unlock()` in `usbduxfast_detach()` are probably not required, especially as the mutex is about to be destroyed, but leave them alone for now. Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman commit 2cd0869672426171541330ecd7a39761a40b06a6 Author: Ian Abbott Date: Wed Apr 17 16:55:12 2019 +0100 staging: comedi: usbduxsigma: Call mutex_destroy() on private mutex `usbduxsigma_detach()` is the Comedi "detach" handler for the usbduxsigma driver. When it is called, the private data for the device is about to be freed. The private date contains a mutex `devpriv->mut` that was initialized when the private data was allocated. Call `mutex_destroy()` to mark it as invalid. The calls to `mutex_lock()` and `mutex_unlock()` in `usbduxsigma_detach()` are probably not required, especially as the mutex is about to be destroyed, but leave them alone for now. Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman commit a5c795056c443fd5c5a60c840787a8990f6b24a4 Author: YueHaibing Date: Wed Apr 17 22:58:58 2019 +0800 staging: most: configfs: Make mdev_link_list static Fix sparse warning: drivers/staging/most/configfs.c:34:18: warning: symbol 'mdev_link_list' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing Signed-off-by: Greg Kroah-Hartman commit 8bedf934a33b2635da2304598735ab74f66d4719 Author: Colin Ian King Date: Thu Apr 18 13:20:41 2019 +0100 staging: rtl8723bs: hal: fix spelling mistake "singal" -> "signal" There are multiple spelling mistakes in variable names, fix these. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Signed-off-by: Greg Kroah-Hartman commit a5112277872a56017b777770e2fd4324d4a6c866 Author: Nicholas Mc Guire Date: Fri Apr 19 01:31:08 2019 +0200 staging: vc04_services: handle kzalloc failure The kzalloc here was being used without checking the return - if the kzalloc fails return VCHIQ_ERROR. The call-site of vchiq_platform_init_state() vchiq_init_state() was not responding to an allocation failure so checks for != VCHIQ_SUCCESS and pass VCHIQ_ERROR up to vchiq_platform_init() which then will fail with -EINVAL. Signed-off-by: Nicholas Mc Guire Reported-by: kbuild test robot Acked-By: Stefan Wahren Signed-off-by: Greg Kroah-Hartman commit f44303e85268cc6cd6b1e545d3845f1d81cb6728 Author: Ian Abbott Date: Wed Apr 17 15:39:30 2019 +0100 staging: comedi: Add lockdep_assert_held() calls for dev->attach_lock There are not a lot of functions in the core comedi module that require the R/W semaphore `attach_lock` in `struct comedi_device` to be locked (although there are a few functions that require at least one of `attach_lock` and `mutex` to be locked). One function that requires the caller to lock `attach_lock` is `comedi_device_detach_cleanup()` so add a call to `lockdep_assert_held()` to check and document that. Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman commit 77c21b626be5b6b30ca6f76ccd5ba1d14a8278a9 Author: Ian Abbott Date: Wed Apr 17 15:39:29 2019 +0100 staging: comedi: Add lockdep_assert_held() calls for dev->mutex Lots of functions in the core comedi module expect the mutex in `struct comedi_device` to be held, so add calls to `lockdep_assert_held()` to check and document that. An unusual case is the calls to `lockdep_assert_held()` after successful return from `comedi_alloc_board_minor()` which allocates a `struct comedi_device` and returns with its mutex locked. Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman commit f439696c81fcfe70ad46554fbec1c851bab9345a Author: Ian Abbott Date: Wed Apr 17 15:35:31 2019 +0100 staging: comedi: don't release mutex too early in comedi_auto_config() `comedi_auto_config()` uses `dev->class_dev` for logging a kernel message after releasing `dev->mutex`. There is an unlikely possibility that the Comedi device `dev` will have been removed by the `COMEDI_DEVCONFIG` ioctl() command. Keep hold of the mutex until the kernel message has been sent to prevent that. The function can call `comedi_release_hardware_device()` on error. In that case, the mutex must be unlocked before that. Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman commit 1567d661b90ff670b61bf0b8461afd2dac4a4b7c Author: Chunfeng Yun Date: Wed Apr 17 16:28:21 2019 +0800 usb: mtu3: get optional clock by devm_clk_get_optional() Use devm_clk_get_optional() to get optional clock instead of optional_clk_get() which uses devm_clk_get() to get clock and checks for -EPROBE_DEFER but not -ENOENT as devm_clk_get_optional() does, in fact, only ignoring -ENOENT will cover more errors, so the replacement doesn't change original purpose. Signed-off-by: Chunfeng Yun Reviewed-by: Matthias Brugger Signed-off-by: Greg Kroah-Hartman commit fcafadf71a252009f1d0663b8fcf4bd57f4f2c66 Author: Chunfeng Yun Date: Wed Apr 17 16:28:20 2019 +0800 usb: chipidea: msm: get optional clock by devm_clk_get_optional() When the driver tries to get optional clock, it ignores all errors except -EPROBE_DEFER, but if only ignores -ENOENT, it will cover some real errors, such as -ENOMEM, so use devm_clk_get_optional() to get optional clock. Cc: Peter Chen Signed-off-by: Chunfeng Yun Acked-by: Peter Chen Signed-off-by: Greg Kroah-Hartman commit e894cdc2cb468c49242f8ab39236de475604f0c1 Author: Chunfeng Yun Date: Wed Apr 17 16:28:19 2019 +0800 usb: dwc2: get optional clock by devm_clk_get_optional() When the driver tries to get optional clock, it ignores all errors, but if only ignores -ENOENT, it will cover some real errors, such as -EPROBE_DEFER, so use devm_clk_get_optional() to get optional clock. Cc: Minas Harutyunyan Signed-off-by: Chunfeng Yun Acked-by: Minas Harutyunyan Signed-off-by: Greg Kroah-Hartman commit bbe2028f43c88e58a879eaa8627a871704b01252 Author: Chunfeng Yun Date: Wed Apr 17 16:28:18 2019 +0800 usb: misc: usb3503: get optional clock by devm_clk_get_optional() When the driver tries to get optional clock, it ignores all errors except -EPROBE_DEFER, but if only ignores -ENOENT, it will cover some real errors, such as -ENOMEM, so use devm_clk_get_optional() to get optional clock. And remove unnecessary stack variable clk. Cc: Dongjin Kim Signed-off-by: Chunfeng Yun Signed-off-by: Greg Kroah-Hartman commit 08048c04cc6f7502d60d21d7596b53bbf1157d95 Author: Chunfeng Yun Date: Wed Apr 17 16:28:17 2019 +0800 usb: host: xhci-plat: get optional clock by devm_clk_get_optional() When the driver tries to get optional clock, it ignores all errors except -EPROBE_DEFER, but if only ignores -ENOENT, it will cover some real errors, such as -ENOMEM, so use devm_clk_get_optional() to get optional clock. Cc: Mathias Nyman Signed-off-by: Chunfeng Yun Signed-off-by: Greg Kroah-Hartman commit 9d918dcea0689eb9dd7154dcea976232c7d8d6e6 Author: Chunfeng Yun Date: Wed Apr 17 16:28:16 2019 +0800 usb: xhci-mtk: get optional clock by devm_clk_get_optional() Use devm_clk_get_optional() to get optional clock instead of optional_clk_get() which uses devm_clk_get() to get clock and checks for -EPROBE_DEFER but not -ENOENT as devm_clk_get_optional() does, in fact, only ignoring -ENOENT will cover more errors, so the replacement doesn't change original purpose. Signed-off-by: Chunfeng Yun Signed-off-by: Greg Kroah-Hartman commit 48242e30532b3e30f93f124c214b4308ab267e05 Author: Hans de Goede Date: Tue Apr 16 22:07:54 2019 +0200 usb: typec: fusb302: Revert "Resolve fixed power role contract setup" Some tcpc device-drivers need to explicitly be told to watch for connection events, otherwise the tcpc will not generate any TCPM_CC_EVENTs and devices being plugged into the Type-C port will not be noticed. For dual-role ports tcpm_start_drp_toggling() is used to tell the tcpc to watch for connection events. But for single-role ports we've so far been falling back to just calling tcpm_set_cc(). For some tcpc-s such as the fusb302 this is not enough and no TCPM_CC_EVENT will be generated. Commit ea3b4d5523bc ("usb: typec: fusb302: Resolve fixed power role contract setup") fixed SRPs not working because of this by making the fusb302 driver start connection detection on every tcpm_set_cc() call. It turns out this breaks src->snk power-role swapping because during the swap we first set the Cc pins to Rp, calling set_cc, and then send a PS_RDY message. But the fusb302 cannot send PD messages while its toggling engine is active, so sending the PS_RDY message fails. Struct tcpc_dev now has a new start_srp_connection_detect callback and fusb302.c now implements this. This callback gets called when we the fusb302 needs to start connection detection, fixing fusb302 SRPs not seeing connected devices. This allows us to revert the changes to fusb302's set_cc implementation, making it once again purely setup the Cc-s and matching disconnect detection, fixing src->snk power-role swapping no longer working. Note that since the code was refactored in between, codewise this is not a straight forward revert. Functionality wise this is a straight revert and the original functionality is fully restored. Fixes: ea3b4d5523bc ("usb: typec: fusb302: Resolve fixed power role ...") Cc: Adam Thomson Signed-off-by: Hans de Goede Reviewed-by: Guenter Roeck Acked-by: Heikki Krogerus Tested-by: Adam Thomson Signed-off-by: Greg Kroah-Hartman commit 6258db14d78c6991bcdd56f576788b3b2e16cc3f Author: Hans de Goede Date: Tue Apr 16 22:07:53 2019 +0200 usb: typec: fusb302: Implement start_toggling for all port-types When in single-role port mode, we must start single-role toggling to get an interrupt when a device / cable gets plugged into the port. This commit modifies the fusb302 start_toggling implementation to start toggling for all port-types, so that connection-detection works on single-role ports too. Fixes: ea3b4d5523bc("usb: typec: fusb302: Resolve fixed power role ...") Cc: Adam Thomson Signed-off-by: Hans de Goede Reviewed-by: Guenter Roeck Acked-by: Heikki Krogerus Tested-by: Adam Thomson Signed-off-by: Greg Kroah-Hartman commit 7893f9e1c26d1f9ea02622902ee671de45ad377b Author: Hans de Goede Date: Tue Apr 16 22:07:52 2019 +0200 usb: typec: tcpm: Notify the tcpc to start connection-detection for SRPs Some tcpc device-drivers need to explicitly be told to watch for connection events, otherwise the tcpc will not generate any TCPM_CC_EVENTs and devices being plugged into the Type-C port will not be noticed. For dual-role ports tcpm_start_drp_toggling() is used to tell the tcpc to watch for connection events. Sofar we lack a similar callback to the tcpc for single-role ports. With some tcpc-s such as the fusb302 this means no TCPM_CC_EVENTs will be generated when the port is configured as a single-role port. This commit renames start_drp_toggling to start_toggling and since the device-properties are parsed by the tcpm-core, adds a port_type parameter to the start_toggling callback so that the tcpc_dev driver knows the port-type and can act accordingly when it starts toggling. The new start_toggling callback now always gets called if defined, instead of only being called for DRP ports. To avoid this causing undesirable functional changes all existing start_drp_toggling implementations are not only renamed to start_toggling, but also get a port_type check added and return -EOPNOTSUPP when port_type is not DRP. Fixes: ea3b4d5523bc("usb: typec: fusb302: Resolve fixed power role ...") Cc: Adam Thomson Signed-off-by: Hans de Goede Reviewed-by: Guenter Roeck Acked-by: Heikki Krogerus Tested-by: Adam Thomson Signed-off-by: Greg Kroah-Hartman commit 9bcb762ce02db5cc99e6705f0fcfab6b097a9bc8 Author: Yan Zhu Date: Thu Apr 18 23:25:21 2019 +0800 usb: host: use usb_endpoint_maxp instead of usb_maxpacket fhci_queue_urb() shouldn't use urb->pipe to compute the maxpacket size anyway.It should use usb_endpoint_maxp(&urb->ep->desc). Signed-off-by: Yan Zhu Signed-off-by: Greg Kroah-Hartman commit 5dd50aaeb1853ee0953b60fa6d1143d95429ae7b Author: David Howells Date: Mon Nov 5 17:40:31 2018 +0000 Make anon_inodes unconditional Make the anon_inodes facility unconditional so that it can be used by core VFS code and pidfd code. Signed-off-by: David Howells Signed-off-by: Al Viro [christian@brauner.io: adapt commit message to mention pidfds] Signed-off-by: Christian Brauner commit 1a8b4540db732ca16c9e43ac7c08b1b8f0b252d8 Author: Konstantin Khlebnikov Date: Wed Feb 27 11:10:20 2019 +0300 sched/core: Check quota and period overflow at usec to nsec conversion Large values could overflow u64 and pass following sanity checks. # echo 18446744073750000 > cpu.cfs_period_us # cat cpu.cfs_period_us 40448 # echo 18446744073750000 > cpu.cfs_quota_us # cat cpu.cfs_quota_us 40448 After this patch they will fail with -EINVAL. Signed-off-by: Konstantin Khlebnikov Acked-by: Peter Zijlstra Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/155125502079.293431.3947497929372138600.stgit@buzz Signed-off-by: Ingo Molnar commit 5b61d50ab4ef590f5e1d4df15cd2cea5f5715308 Author: Konstantin Khlebnikov Date: Wed Feb 27 11:10:18 2019 +0300 sched/core: Handle overflow in cpu_shares_write_u64 Bit shift in scale_load() could overflow shares. This patch saturates it to MAX_SHARES like following sched_group_set_shares(). Example: # echo 9223372036854776832 > cpu.shares # cat cpu.shares Before patch: 1024 After pattch: 262144 Signed-off-by: Konstantin Khlebnikov Acked-by: Peter Zijlstra Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/155125501891.293431.3345233332801109696.stgit@buzz Signed-off-by: Ingo Molnar commit 1a010e29cfa00fee2888fd2fd4983f848cbafb58 Author: Konstantin Khlebnikov Date: Wed Feb 27 11:10:17 2019 +0300 sched/rt: Check integer overflow at usec to nsec conversion Example of unhandled overflows: # echo 18446744073709651 > cpu.rt_runtime_us # cat cpu.rt_runtime_us 99 # echo 18446744073709900 > cpu.rt_period_us # cat cpu.rt_period_us 348 After this patch they will fail with -EINVAL. Signed-off-by: Konstantin Khlebnikov Acked-by: Peter Zijlstra Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/155125501739.293431.5252197504404771496.stgit@buzz Signed-off-by: Ingo Molnar commit f6c6010a07734103a31faa0cc977641b358c45b0 Author: Wei Yang Date: Tue Mar 5 16:34:32 2019 +0800 mm/resource: Use resource_overlaps() to simplify region_intersects() The three checks in region_intersects() are basically an open-coded version of resource_overlaps() - so use the real thing. Also fix typos in comments while at it. Signed-off-by: Wei Yang Reviewed-by: Like Xu Reviewed-by: Yuan Yao Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: akpm@linux-foundation.org Cc: bhelgaas@google.com Cc: bp@suse.de Cc: dan.j.williams@intel.com Cc: jack@suse.cz Cc: rdunlap@infradead.org Cc: tiwai@suse.de Link: http://lkml.kernel.org/r/20190305083432.23675-1-richardw.yang@linux.intel.com [ Rewrote the changelog. ] Signed-off-by: Ingo Molnar commit 83b0b15bcb0f700e7c1d070aae2e7841170a4c33 Author: Mathieu Desnoyers Date: Tue Mar 5 14:47:54 2019 -0500 rseq: Remove superfluous rseq_len from task_struct The rseq system call, when invoked with flags of "0" or "RSEQ_FLAG_UNREGISTER" values, expects the rseq_len parameter to be equal to sizeof(struct rseq), which is fixed-size and fixed-layout, specified in uapi linux/rseq.h. Expecting a fixed size for rseq_len is a design choice that ensures multiple libraries and application defining __rseq_abi in the same process agree on its exact size. Considering that this size is and will always be the same value, there is no point in saving this value within task_struct rseq_len. Remove this field from task_struct. No change in functionality intended. Signed-off-by: Mathieu Desnoyers Acked-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Andy Lutomirski Cc: Ben Maurer Cc: Boqun Feng Cc: Catalin Marinas Cc: Chris Lameter Cc: Dave Watson Cc: H. Peter Anvin Cc: Joel Fernandes Cc: Josh Triplett Cc: Linus Torvalds Cc: Michael Kerrisk Cc: Paul E. McKenney Cc: Paul Turner Cc: Peter Zijlstra Cc: Russell King Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Deacon Cc: linux-api@vger.kernel.org Link: http://lkml.kernel.org/r/20190305194755.2602-3-mathieu.desnoyers@efficios.com Signed-off-by: Ingo Molnar commit bff9504bfc9c5c6610b42d47f689f350fd969eb8 Author: Mathieu Desnoyers Date: Tue Mar 5 14:47:53 2019 -0500 rseq: Clean up comments by reflecting removal of event counter The "event counter" was removed from rseq before it was merged upstream. However, a few comments in the source code still refer to it. Adapt the comments to match reality. Signed-off-by: Mathieu Desnoyers Acked-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Andy Lutomirski Cc: Ben Maurer Cc: Boqun Feng Cc: Catalin Marinas Cc: Chris Lameter Cc: Dave Watson Cc: H. Peter Anvin Cc: Joel Fernandes Cc: Josh Triplett Cc: Linus Torvalds Cc: Michael Kerrisk Cc: Paul E. McKenney Cc: Paul Turner Cc: Peter Zijlstra Cc: Russell King Cc: Steven Rostedt Cc: Thomas Gleixner Cc: Will Deacon Cc: linux-api@vger.kernel.org Link: http://lkml.kernel.org/r/20190305194755.2602-2-mathieu.desnoyers@efficios.com Signed-off-by: Ingo Molnar commit 93ddedaa5c9cb828d39a19b5d6e7e1939393085a Author: Ahmed S. Darwish Date: Wed Mar 6 01:44:25 2019 +0100 x86/defconfig: Remove archaic partition tables support On x86 systems, only MSDOS and GPT partition tables are typically encountered. Remove all the rest. Note, CONFIG_EFI_PARTITION is also removed since it defaults to `y'. Signed-off-by: Ahmed S. Darwish Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20190306004425.GA30537@darwi-home-pc Signed-off-by: Ingo Molnar commit bee9853932e90ce94bce4276ec6b7b06bc48070b Author: Joel Savitz Date: Wed Mar 6 20:13:33 2019 -0500 sched/core: Fix typo in comment Signed-off-by: Joel Savitz Cc: Andrew Morton Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: trivial@kernel.org Link: http://lkml.kernel.org/r/1551921213-813-1-git-send-email-jsavitz@redhat.com Signed-off-by: Ingo Molnar commit cef62a615d22369d817757d1e4fe64fdf42a401e Merge: d358b1733fc3 9f201aba56b9 Author: Greg Kroah-Hartman Date: Fri Apr 19 11:53:42 2019 +0200 Merge tag 'misc-habanalabs-next-2019-04-19' of git://people.freedesktop.org/~gabbayo/linux into char-misc-next Oded writes: This tag contains many changes for kernel 5.2. The major changes are: - Add a new IOCTL for debug, profiling and trace operations on the device. This will allow the user to perform profiling and debugging of the deep learning topologies that are executing on the ASIC. - Add a shadow table for the ASIC's MMU page tables to avoid doing page table walks on the device's DRAM during map/unmap operations. - re-factor of ASIC-dependent code to be common code for all ASICs In addition, there are many small fixes and changes. The notable ones are: - Allow accessing the DRAM using virtual address through the debugFS interface. Until now, only physical addresses were valid, but that is useless for debugging when working with MMU. - Allow the user to modify the TPC clock relaxation value to better control TPC power consumption during topology execution. - Allow the user to inquire about the device's status (operational/Malfunction/in-reset) in the INFO IOCTL. - Improvements to the device's removal function, to prevent crash in case of force removal by the OS. - Prevent PTE read/write during hard-reset. This will improve stability of the device during hard-reset. * tag 'misc-habanalabs-next-2019-04-19' of git://people.freedesktop.org/~gabbayo/linux: (31 commits) habanalabs: prevent device PTE read/write during hard-reset habanalabs: improve IOCTLs behavior when disabled or reset habanalabs: all FD must be closed before removing device habanalabs: split mmu/no-mmu code paths in memory ioctl habanalabs: ASIC_AUTO_DETECT enum value is redundant habanalabs: refactoring in goya.c uapi/habanalabs: fix some comments in uapi file habanalabs: add goya implementation for debug configuration habanalabs: add new IOCTL for debug, tracing and profiling habanalabs: remove extra semicolon habanalabs: prevent CPU soft lockup on Palladium habanalabs: remove trailing blank line from EOF habanalabs: improve error messages habanalabs: add device status option to INFO IOCTL habanalabs: allow user to modify TPC clock relaxation value habanalabs: set new golden value to tpc clock relaxation habanalabs: never fail hard reset of device habanalabs: keep track of the device's dma mask habanalabs: add MMU shadow mapping habanalabs: Allow accessing DRAM virtual addresses via debugfs ... commit 169d0869962da362b5058e31f87911b2960418af Author: Len Brown Date: Tue Feb 26 01:20:01 2019 -0500 x86/smpboot: Rename match_die() to match_pkg() Syntax only, no functional or semantic change. This routine matches packages, not die, so name it thus. Signed-off-by: Len Brown Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Will Deacon Link: http://lkml.kernel.org/r/7ca18c4ae7816a1f9eda37414725df676e63589d.1551160674.git.len.brown@intel.com Signed-off-by: Ingo Molnar commit 3a1c779fb8f71e772e2145e68c262936ada815ed Author: Len Brown Date: Tue Feb 26 01:20:00 2019 -0500 topology: Simplify cputopology.txt formatting and wording Syntax only, no functional or semantic change. Signed-off-by: Len Brown Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Will Deacon Cc: linux-doc@vger.kernel.org Link: http://lkml.kernel.org/r/1ca56f8ea922a67f0017bd645912ea02a65a85ec.1551160674.git.len.brown@intel.com Signed-off-by: Ingo Molnar commit ef7c7727f2c18338fa77b339f10ab923a4c0b0f4 Author: Len Brown Date: Tue Feb 26 01:19:59 2019 -0500 x86/topology: Fix documentation typo Syntax only, no functional or semantic change. reflect actual cpuinfo_x86 field name: s/logical_id/logical_proc_id/ Signed-off-by: Len Brown Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Will Deacon Cc: linux-doc@vger.kernel.org Link: http://lkml.kernel.org/r/e2810a5317d3a109a98204e883fd1461f77b9339.1551160674.git.len.brown@intel.com Signed-off-by: Ingo Molnar commit 69166f7a37dc0bde5a3c26945e3cdbfc740b0562 Author: Shahar S Matityahu Date: Tue Mar 19 09:35:29 2019 +0200 iwlwifi: dbg_ini: set dump bit only when trigger collection is certain In case the the trigger occurrences is zero or force_restart is set, the driver sets IWL_FWRT_STATUS_DUMPING without actually scheduling trigger collection. At this point no other dump collection can be performed. Solve this by setting IWL_FWRT_STATUS_DUMPING bit only when the driver is surely going to schedule dump collection Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit f8510d67d658c4f4fb7dcb13560d4c99e4de5082 Author: Nathan Chancellor Date: Thu Mar 7 17:03:22 2019 -0700 iwlwifi: mvm: Change an 'else if' into an 'else' in iwl_mvm_send_add_bcast_sta When building with -Wsometimes-uninitialized, Clang warns: drivers/net/wireless/intel/iwlwifi/mvm/sta.c:2114:12: warning: variable 'queue' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] Clang can't evaluate at this point that WARN(1, ...) always returns true because __ret_warn_on is defined as !!(condition), which isn't immediately evaluated as 1. Change this branch to else so that it's clear to Clang that we intend to bail out here. Link: https://github.com/ClangBuiltLinux/linux/issues/399 Signed-off-by: Nathan Chancellor [added a few more braces] Signed-off-by: Luca Coelho commit 2644f9d0db43043c662f425598ea8329fcb78c4d Author: Luca Coelho Date: Thu Mar 14 12:54:34 2019 +0200 iwlwifi: remove unused 0x40C0 PCI device IDs This device ID and device type was never released, so we can remove it from the PCI IDs list. Signed-off-by: Luca Coelho commit 957a67c828e741ef7e09f69075edd3d5a6148e2c Author: Avraham Stern Date: Mon Feb 25 15:12:26 2019 +0200 iwlwifi: mvm: support rtt confidence indication The range response notification API has changed to add a value that indicates the confidence of the rtt result. Support the new API and print the rtt confidence for debug. Signed-off-by: Avraham Stern Signed-off-by: Luca Coelho commit e91130cebd4749f59e73feeb8c24b4517b213149 Author: Shahar S Matityahu Date: Thu Mar 14 10:05:25 2019 +0200 iwlwifi: dbg: add lmac and umac PC registers to periphery dump Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit 32d2282a35f7afbb73365c43bffed3d00fb40fcc Author: Shahar S Matityahu Date: Wed Mar 6 15:24:20 2019 +0200 iwlwifi: dbg: add periphery memory dumping support to ax210 device family Allows to dump periphery memory on ax210 devices. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit befebbb30af00386bb1579efcdf1bb2d0c574593 Author: Gregory Greenman Date: Wed Feb 20 11:31:10 2019 +0200 iwlwifi: rs: consider LDPC capability in case of HE When building TLC configuration command, consider in case of HE, if LDPC support is turned on in our capabilities. Signed-off-by: Gregory Greenman Signed-off-by: Luca Coelho commit 53032e6ec1bfe2eeefb93e1a7f1253ddd18ea42e Author: Shahar S Matityahu Date: Mon Mar 4 12:14:37 2019 +0200 iwlwifi: dbg_ini: add debug prints to the ini flows Add debug prints to the ini flow and rewrite existing prints to provide more information Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit 2953c393a0a469073d34130c88990924c517cb7a Author: Shahar S Matityahu Date: Mon Mar 4 13:44:43 2019 +0200 iwlwifi: add FW_INFO debug level Add FW_INFO debug level. This level is enabled if INFO or FW debug levels are set. Also, set fw request and callback prints under this debug level. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit 77f99ae6487be9c51b8f42ee20171b1e8ec1a170 Author: Shahar S Matityahu Date: Sun Mar 3 17:29:23 2019 +0200 iwlwifi: dbg_ini: support notification and dhc regions type parsing IWL_FW_INI_REGION_CSR and IWL_FW_INI_REGION_NOTIFICATION does not have memory addresses attached to them so the driver should skip them when parsing the region tlv. Also, instead of declearing what region types should skip the addition of the memory addresses, declare what regions have addition of memory addresses. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit 718a8b23ad045244302220d75e7f726ea3766fb1 Author: Shaul Triebitz Date: Tue Mar 5 09:48:16 2019 +0200 iwlwifi: unite macros with same meaning TFD_*_SLOTS and IWL_*_QUEUE_SIZE both define the TX queue size (number of TFDs). Get rid of TFD_*_SLOTS and use only IWL_*_QUEUE_SIZE. Signed-off-by: Shaul Triebitz Signed-off-by: Luca Coelho commit 9a16ee0c6b4ad24725dfc7b76821e4a71ecd0b34 Author: Shaul Triebitz Date: Thu Feb 28 17:17:58 2019 +0200 iwlwifi: mvm: set 512 TX queue slots for AX210 devices AX210 devices support 256 BA (256 MPDUs in an AMPDU). The firmware requires that the number of TFDs will be minimum twice as big as the BA size (2 * 256 = 512). Signed-off-by: Shaul Triebitz Signed-off-by: Luca Coelho commit 0d37d9faa60d162db7db6d9470f5b6256480bb82 Author: Luca Coelho Date: Thu Jan 10 17:13:12 2019 +0200 iwlwifi: bump FW API to 47 for 22000 series Start supporting API version 47 for 22000 series. The 9000 series is now frozen on version 46. Signed-off-by: Luca Coelho commit db5e323feb5f26be3f11bc395c61136782b75bf4 Merge: 5c2e6e14a0ad fa0b735414f9 Author: Kalle Valo Date: Fri Apr 19 10:20:10 2019 +0300 Merge ath-next from git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git ath.git patches for 5.2. No major changes. commit 6a1faa4a43f5fabf9cbeaa742d916e7b5e73120f Author: Eric Biggers Date: Thu Apr 18 14:44:27 2019 -0700 crypto: ccm - fix incompatibility between "ccm" and "ccm_base" CCM instances can be created by either the "ccm" template, which only allows choosing the block cipher, e.g. "ccm(aes)"; or by "ccm_base", which allows choosing the ctr and cbcmac implementations, e.g. "ccm_base(ctr(aes-generic),cbcmac(aes-generic))". However, a "ccm_base" instance prevents a "ccm" instance from being registered using the same implementations. Nor will the instance be found by lookups of "ccm". This can be used as a denial of service. Moreover, "ccm_base" instances are never tested by the crypto self-tests, even if there are compatible "ccm" tests. The root cause of these problems is that instances of the two templates use different cra_names. Therefore, fix these problems by making "ccm_base" instances set the same cra_name as "ccm" instances, e.g. "ccm(aes)" instead of "ccm_base(ctr(aes-generic),cbcmac(aes-generic))". This requires extracting the block cipher name from the name of the ctr and cbcmac algorithms. It also requires starting to verify that the algorithms are really ctr and cbcmac using the same block cipher, not something else entirely. But it would be bizarre if anyone were actually using non-ccm-compatible algorithms with ccm_base, so this shouldn't break anyone in practice. Fixes: 4a49b499dfa0 ("[CRYPTO] ccm: Added CCM mode") Cc: stable@vger.kernel.org Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit f699594d436960160f6d5ba84ed4a222f20d11cd Author: Eric Biggers Date: Thu Apr 18 14:43:02 2019 -0700 crypto: gcm - fix incompatibility between "gcm" and "gcm_base" GCM instances can be created by either the "gcm" template, which only allows choosing the block cipher, e.g. "gcm(aes)"; or by "gcm_base", which allows choosing the ctr and ghash implementations, e.g. "gcm_base(ctr(aes-generic),ghash-generic)". However, a "gcm_base" instance prevents a "gcm" instance from being registered using the same implementations. Nor will the instance be found by lookups of "gcm". This can be used as a denial of service. Moreover, "gcm_base" instances are never tested by the crypto self-tests, even if there are compatible "gcm" tests. The root cause of these problems is that instances of the two templates use different cra_names. Therefore, fix these problems by making "gcm_base" instances set the same cra_name as "gcm" instances, e.g. "gcm(aes)" instead of "gcm_base(ctr(aes-generic),ghash-generic)". This requires extracting the block cipher name from the name of the ctr algorithm. It also requires starting to verify that the algorithms are really ctr and ghash, not something else entirely. But it would be bizarre if anyone were actually using non-gcm-compatible algorithms with gcm_base, so this shouldn't break anyone in practice. Fixes: d00aa19b507b ("[CRYPTO] gcm: Allow block cipher parameter") Cc: stable@vger.kernel.org Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 2616b3deaf9c5db18f78689968d4c998bda8a983 Author: Andy Gross Date: Tue Apr 9 23:56:44 2019 -0500 MAINTAINERS: Update email for Qualcomm SoC maintainer This patch changes the email for Andy Gross to agross@kernel.org. Reviewed-by: Bjorn Andersson Signed-off-by: Andy Gross commit c8be55410474360e9c791c3cbab42be4e498f363 Author: Marc Gonzalez Date: Fri Apr 5 12:36:27 2019 +0200 arm64: dts: qcom: msm8998: Fix blsp2_i2c5 address blsp1_i2c1 is at 0x0c175000 blsp2_i2c5 is at 0x0c1ba000 (the label is correct) Fixes: 1e71d0c273d0a ("arm64: dts: qcom: msm8998: Enumerate i2c controllers") Signed-off-by: Marc Gonzalez Reviewed-by: Jeffrey Hugo Signed-off-by: Andy Gross commit 3efd4352ba7c1b8c383321aaf9e27feade0f5e3f Author: Khasim Syed Mohammed Date: Mon Mar 4 21:14:24 2019 +0100 arm64: dts: qcom: qcs404-evb: Change the compatible to distinguish platforms The compatible flag should be different for each board to match with the dtb and to let the bootloader pick the appropriate dtb. Signed-off-by: Khasim Syed Mohammed Signed-off-by: Niklas Cassel Signed-off-by: Andy Gross commit d1fe337337edd37233e2fe65a43e7da6155fbec6 Author: Brian Masney Date: Tue Mar 5 19:53:16 2019 -0500 arm64: dts: qcom: pmi8998: add gpio-ranges This adds the gpio-ranges property so that the GPIO pins are initialized by the GPIO framework and not pinctrl. This fixes a circular dependency between these two frameworks so GPIO hogging can be used on this board. This was not tested on this particular hardware, however this same change was tested on qcom-pm8941 using a LG Nexus 5 (hammerhead) phone. Signed-off-by: Brian Masney Signed-off-by: Andy Gross commit 21750eb93ea9ebe445c922f5319c6b490f45f70d Author: Brian Masney Date: Tue Mar 5 19:53:15 2019 -0500 arm64: dts: qcom: pmi8994: add gpio-ranges This adds the gpio-ranges property so that the GPIO pins are initialized by the GPIO framework and not pinctrl. This fixes a circular dependency between these two frameworks so GPIO hogging can be used on this board. This was not tested on this particular hardware, however this same change was tested on qcom-pm8941 using a LG Nexus 5 (hammerhead) phone. Signed-off-by: Brian Masney Signed-off-by: Andy Gross commit 99c70e7286237ea0701523555623faf6b49ce0db Author: Brian Masney Date: Tue Mar 5 19:53:14 2019 -0500 arm64: dts: qcom: pm8998: add gpio-ranges This adds the gpio-ranges property so that the GPIO pins are initialized by the GPIO framework and not pinctrl. This fixes a circular dependency between these two frameworks so GPIO hogging can be used on this board. This was not tested on this particular hardware, however this same change was tested on qcom-pm8941 using a LG Nexus 5 (hammerhead) phone. Signed-off-by: Brian Masney Signed-off-by: Andy Gross commit 136e9d920dc616f74642efaf1413f82096ddd989 Author: Brian Masney Date: Tue Mar 5 19:53:13 2019 -0500 arm64: dts: qcom: pm8005: add gpio-ranges This adds the gpio-ranges property so that the GPIO pins are initialized by the GPIO framework and not pinctrl. This fixes a circular dependency between these two frameworks so GPIO hogging can be used on this board. This was not tested on this particular hardware, however this same change was tested on qcom-pm8941 using a LG Nexus 5 (hammerhead) phone. Signed-off-by: Brian Masney Signed-off-by: Andy Gross commit 5c2e6e14a0ad24a35d9d2b318204c8c012d9d618 Merge: 8a99aa5d997f 6110ed2db3a4 Author: David S. Miller Date: Thu Apr 18 17:43:11 2019 -0700 Merge branch 'net-add-reset-controller-driven-PHY-reset' David Bauer says: ==================== net: add reset-controller driven PHY reset This patchset adds support for a PHY reset driven by a reset-controller. Currently, only GPIO driven resets are supported by the PHY subsystem. It also renames the reset-gpio from 'reset' to 'reset_gpio' to better differentiate between resets wired to a GPIO and resets wired to a reset-controller driven pin. Some systems have the PHY reset-line wired to a pin controlled by a reset-controller (eg. some Atheros AR9132 based boards). In case the bootloader asserts reset before loading the kernel, we currently do not have a clean way of deasserting reset to probe the PHY. v3: - add missing newline in mdio_bus.c v2: - fixed missed rename of "reset" in at803x.c - move initial reset to mdio_device_reset ==================== Signed-off-by: David S. Miller commit 6110ed2db3a41f3b9d676e58ac3d4637c2b497c4 Author: David Bauer Date: Wed Apr 17 23:59:22 2019 +0200 net: mdio: rename mdio_device reset to reset_gpio This renames the GPIO reset of mdio devices from 'reset' to 'reset_gpio' to better differentiate between GPIO and reset-controller driven reset line. Signed-off-by: David Bauer Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 71dd6c0dff51b5f1fef2e9dfa6f6a948aac975f3 Author: David Bauer Date: Wed Apr 17 23:59:21 2019 +0200 net: phy: add support for reset-controller This commit adds support for PHY reset pins handled by a reset controller. Signed-off-by: David Bauer Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit b54dd90cab00f5b64ed8ce533991c20bf781a3cd Author: David Bauer Date: Wed Apr 17 23:59:20 2019 +0200 dt-bindings: net: add PHY reset controller binding Add the documentation for PHY reset lines controlled by a reset controller. Signed-off-by: David Bauer Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit a7634b6f7cbbdc6efcf772e080a6fe845d1f6161 Author: Colin Ian King Date: Thu Apr 18 11:20:25 2019 +0100 scsi: aic7xxx: fix spelling mistake "recevied" -> "received" There is a spelling mistake in a kernel message, fix it. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Signed-off-by: Martin K. Petersen commit c70929752511cb73dfb940d4c3f00e75ab55ef67 Author: YueHaibing Date: Wed Apr 17 23:05:54 2019 +0800 scsi: lpfc: Make lpfc_sli4_oas_verify static Fix sparse warning: drivers/scsi/lpfc/lpfc_init.c:13091:1: warning: symbol 'lpfc_sli4_oas_verify' was not declared. Should it be static? Signed-off-by: YueHaibing Acked-by: James Smart Signed-off-by: Martin K. Petersen commit efc372c1bfe14c3c6c3492b56181c45dcbe17e61 Author: Colin Ian King Date: Wed Apr 17 14:51:09 2019 +0100 scsi: megaraid_sas: fix spelling mistake "oustanding" -> "outstanding" There are a couple of spelling mistakes in some kernel info and notice messages. Fix these. Signed-off-by: Colin Ian King Signed-off-by: Martin K. Petersen commit bc136f4d6e63e85eab77df369ee268b1584a2a3d Author: Colin Ian King Date: Wed Apr 17 14:43:04 2019 +0100 scsi: qedi: fix spelling mistake "oflload" -> "offload" There are a couple of spelling mistakes in some kernel alert messages. Fix these. Signed-off-by: Colin Ian King Acked-by: Manish Rangankar Reviewed-by: Mukesh Ojha Signed-off-by: Martin K. Petersen commit 65b1dc99008de592f7c1c8e5fad446824791b4da Author: Colin Ian King Date: Fri Apr 12 10:48:29 2019 +0100 scsi: qedf: remove memset/memcpy to nfunc and use func instead Currently the qedf_dbg_* family of functions can overrun the end of the source string if it is less than the destination buffer length because of the use of a fixed sized memcpy. Remove the memset/memcpy calls to nfunc and just use func instead as it is always a null terminated string. Addresses-Coverity: ("Out-of-bounds access") Fixes: 61d8658b4a43 ("scsi: qedf: Add QLogic FastLinQ offload FCoE driver framework.") Signed-off-by: Colin Ian King Acked-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 8a99aa5d997fd6b635816a0a372db307a414a224 Merge: 0bc199854405 a06eaaf7913c Author: David S. Miller Date: Thu Apr 18 17:06:15 2019 -0700 Merge branch 'net-some-build-fixes-and-other-improvements' Jakub Kicinski says: ==================== net: some build fixes and other improvements A few unrelated improvements here, mostly trying to make random configs build and W=1 produce a little less warnings under net/ and drivers net/. First two patches fix set but not used warnings with W=1. Next patch fixes 64bit division in sch_taprio.c. Last two patches are getting rid of some (almost) unused asserts in skbuff.h. ==================== Signed-off-by: David S. Miller commit a06eaaf7913cab9dd6cb8ece4f78cfd7a802872a Author: Jakub Kicinski Date: Wed Apr 17 13:51:59 2019 -0700 net: skb: remove unused asserts We are discouraging the use of BUG() these days, remove the unused ASSERT macros from skbuff.h. Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Signed-off-by: David S. Miller commit a115d51aae7509ca3b18d9b627a356dc8da66f10 Author: Jakub Kicinski Date: Wed Apr 17 13:51:58 2019 -0700 net: gemini: remove unnecessary assert The driver does not advertize NETIF_F_FRAGLIST, the stack can't pass skbs with frags lists to the xmit function. Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Signed-off-by: David S. Miller commit 23bddf692d369c6415d570f16ae40d9165eaaa9a Author: Jakub Kicinski Date: Wed Apr 17 13:51:57 2019 -0700 net/sched: taprio: fix build without 64bit div Recent changes to taprio did not use the correct div64 helpers, leading to: net/sched/sch_taprio.o: In function `taprio_dequeue': sch_taprio.c:(.text+0x34a): undefined reference to `__divdi3' net/sched/sch_taprio.o: In function `advance_sched': sch_taprio.c:(.text+0xa0b): undefined reference to `__divdi3' net/sched/sch_taprio.o: In function `taprio_init': sch_taprio.c:(.text+0x1450): undefined reference to `__divdi3' /home/jkicinski/devel/linux/Makefile:1032: recipe for target 'vmlinux' failed Use math64 helpers. Fixes: 7b9eba7ba0c1 ("net/sched: taprio: fix picos_per_byte miscalculation") Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Acked-by: Vinicius Costa Gomes Signed-off-by: David S. Miller commit ce6bf4c141cab2919b0f1b914c93676e37a70ec1 Author: Jakub Kicinski Date: Wed Apr 17 13:51:56 2019 -0700 sb1000: fix variable set but not used warnings GCC 8 complains: drivers/net/sb1000.c: In function ‘card_send_command’: drivers/net/sb1000.c:319:14: warning: variable ‘x’ set but not used [-Wunused-but-set-variable] int status, x; ^ drivers/net/sb1000.c: In function ‘sb1000_check_CRC’: drivers/net/sb1000.c:493:6: warning: variable ‘crc’ set but not used [-Wunused-but-set-variable] int crc, status; ^~~ Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Signed-off-by: David S. Miller commit 503c01880166d4afb77d6059f3128a156190b88d Author: Jakub Kicinski Date: Wed Apr 17 13:51:55 2019 -0700 l2tp: fix set but not used variable GCC complains: net/l2tp/l2tp_ppp.c: In function ‘pppol2tp_ioctl’: net/l2tp/l2tp_ppp.c:1073:6: warning: variable ‘val’ set but not used [-Wunused-but-set-variable] int val; ^~~ Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Signed-off-by: David S. Miller commit 80695946737dff4cfc1ecdefd4ebf300f132d8ee Author: Stanislav Fomichev Date: Thu Apr 18 16:47:52 2019 -0700 bpf: move BPF_PROG_TYPE_FLOW_DISSECTOR documentation to a new common place In commit da7031491786 ("bpf: Document BPF_PROG_TYPE_CGROUP_SYSCTL") Andrey proposes to put per-prog type docs under Documentation/bpf/ Let's move flow dissector documentation there as well. Signed-off-by: Stanislav Fomichev Signed-off-by: Alexei Starovoitov commit 0bc199854405543b0debe67c735c0aae94f1d319 Author: Stephen Suryaputra Date: Wed Apr 17 16:35:49 2019 -0400 ipv6: Add rate limit mask for ICMPv6 messages To make ICMPv6 closer to ICMPv4, add ratemask parameter. Since the ICMP message types use larger numeric values, a simple bitmask doesn't fit. I use large bitmap. The input and output are the in form of list of ranges. Set the default to rate limit all error messages but Packet Too Big. For Packet Too Big, use ratemask instead of hard-coded. There are functions where icmpv6_xrlim_allow() and icmpv6_global_allow() aren't called. This patch only adds them to icmpv6_echo_reply(). Rate limiting error messages is mandated by RFC 4443 but RFC 4890 says that it is also acceptable to rate limit informational messages. Thus, I removed the current hard-coded behavior of icmpv6_mask_allow() that doesn't rate limit informational messages. v2: Add dummy function proc_do_large_bitmap() if CONFIG_PROC_SYSCTL isn't defined, expand the description in ip-sysctl.txt and remove unnecessary conditional before kfree(). v3: Inline the bitmap instead of dynamically allocated. Still is a pointer to it is needed because of the way proc_do_large_bitmap work. Signed-off-by: Stephen Suryaputra Signed-off-by: David S. Miller commit 4cf2d206ff40912e2352a639aac61f7d0332ccbb Author: Heiner Kallweit Date: Wed Apr 17 00:13:09 2019 +0200 net: phy: remove dead code from phy_sanitize_settings phy_sanitize_settings() is called from phy_start_aneg() only, and only if phydev->autoneg isn't set. Therefore the removed code does nothing. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 6056bed93b4f93707b0564aa418b9c06b613ff04 Author: Mika Westerberg Date: Mon Apr 15 11:41:42 2019 +0300 PCI/LINK: Disable bandwidth notification interrupt during suspend If the bandwidth notification interrupt is left unmasked when entering suspend to idle, it triggers immediately bringing the system back to working state. To keep that from happening, disable the interrupt when entering system sleep and enable it again during resume. Reported-by: Imre Deak Signed-off-by: Mika Westerberg Signed-off-by: Bjorn Helgaas commit 849f257f61ff7dde49d59c62802e5913ff7a7cbb Author: Martin KaFai Lau Date: Thu Apr 18 14:33:30 2019 -0700 bpf: Increase MAX_NR_MAPS to 17 in test_verifier.c map_fds[16] is the last one index-ed by fixup_map_array_small. Hence, the MAX_NR_MAPS should be 17 instead. Fixes: fb2abb73e575 ("bpf, selftest: test {rd, wr}only flags and direct value access") Signed-off-by: Martin KaFai Lau Acked-by: Yonghong Song Signed-off-by: Alexei Starovoitov commit 5e42574b022b2640304530c68912ee638c6d9a20 Author: Heiner Kallweit Date: Tue Apr 16 23:54:00 2019 +0200 net: phy: don't set autoneg if it's not supported In phy_device_create() we set phydev->autoneg = 1. This isn't changed even if the PHY doesn't support autoneg. This seems to affect very few PHY's, and they disable phydev->autoneg in their config_init callback. So it's more of an improvement, therefore net-next. The patch also wouldn't apply to older kernel versions because the link mode bitmaps have been introduced recently. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 5de35e3ae9d01796a4909fd0dd8c3660d9316a77 Author: Wang YanQing Date: Fri Apr 19 02:05:13 2019 +0800 selftests/bpf: fix compile errors due to unsync linux/in6.h and netinet/in.h I meet below compile errors: " In file included from test_tcpnotify_kern.c:12: /usr/include/netinet/in.h:101:5: error: expected identifier IPPROTO_HOPOPTS = 0, /* IPv6 Hop-by-Hop options. */ ^ /usr/include/linux/in6.h:131:26: note: expanded from macro 'IPPROTO_HOPOPTS' ^ In file included from test_tcpnotify_kern.c:12: /usr/include/netinet/in.h:103:5: error: expected identifier IPPROTO_ROUTING = 43, /* IPv6 routing header. */ ^ /usr/include/linux/in6.h:132:26: note: expanded from macro 'IPPROTO_ROUTING' ^ In file included from test_tcpnotify_kern.c:12: /usr/include/netinet/in.h:105:5: error: expected identifier IPPROTO_FRAGMENT = 44, /* IPv6 fragmentation header. */ ^ /usr/include/linux/in6.h:133:26: note: expanded from macro 'IPPROTO_FRAGMENT' " The same compile errors are reported for test_tcpbpf_kern.c too. My environment: lsb_release -a: No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.6 LTS Release: 16.04 Codename: xenial dpkg -l | grep libc-dev: ii libc-dev-bin 2.23-0ubuntu11 amd64 GNU C Library: Development binaries ii linux-libc-dev:amd64 4.4.0-145.171 amd64 Linux Kernel Headers for development. The reason is linux/in6.h and netinet/in.h aren't synchronous about how to handle the same definitions, IPPROTO_HOPOPTS, etc. This patch fixes the compile errors by moving to before the . Signed-off-by: Wang YanQing Acked-by: Yonghong Song Signed-off-by: Alexei Starovoitov commit 79b1b30e4c209c2ff1ddd6559b41dba1dfc8bcd8 Author: Magnus Karlsson Date: Thu Apr 18 09:21:10 2019 +0200 libbpf: remove compile time warning from libbpf_util.h Having a helpful compile time warning in libbpf_util.h is not a good idea since all warnings are treated as errors. Change this into a comment in the code instead. Fixes: b7e3a28019c9 ("libbpf: remove dependency on barrier.h in xsk.h") Signed-off-by: Magnus Karlsson Acked-by: Yonghong Song Signed-off-by: Alexei Starovoitov commit da70314917862d4da4a8d7601cd47339df8b3c23 Author: Andrey Ignatov Date: Wed Apr 17 22:28:57 2019 -0700 bpf: Document BPF_PROG_TYPE_CGROUP_SYSCTL Add documentation for BPF_PROG_TYPE_CGROUP_SYSCTL, including general info, attach type, context, return code, helpers, example and usage considerations. A separate file prog_cgroup_sysctl.rst is added to Documentation/bpf/. In the future more program types can be documented in their own prog_.rst files. Another way to place program type specific documentation would be to group program types somehow (e.g. cgroup.rst for all cgroup-bpf programs), but it may not scale well since some program types may belong to different groups, e.g. BPF_PROG_TYPE_CGROUP_SKB can be documented together with either cgroup-bpf programs or programs that access skb. The new file is added to the index and verified by `make htmldocs` / sanity-check by lynx. Signed-off-by: Andrey Ignatov Acked-by: Yonghong Song Signed-off-by: Alexei Starovoitov commit defb149ba42f571017fb4bc265eecf3648ab7d6e Author: Eddie James Date: Tue Apr 2 18:25:03 2019 +0000 clk: Aspeed: Setup video engine clocking Add eclk mux and clock divider table. Also change the video engine reset to the correct clock; it was previously on the video capture but needs to be on the video engine clock. Signed-off-by: Eddie James Reviewed-by: Joel Stanley Signed-off-by: Stephen Boyd commit 7fbb639aea353832046a72ad3201510cada27f9a Author: Colin Ian King Date: Tue Apr 16 12:56:16 2019 +0100 clk: mvebu: fix spelling mistake "gatable" -> "gateable" There are a few spelling mistakes in comments and a pr_err error message. Fix these. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Signed-off-by: Stephen Boyd commit 6e4fcc34e6a35b1ca553940cf952e7c0a1ed4cfe Merge: bc840f3357b8 075001385c66 Author: Stephen Boyd Date: Thu Apr 18 13:30:05 2019 -0700 Merge tag 'meson-clk-5.2-2' of https://github.com/BayLibre/clk-meson into clk-meson Pull more Amlogic Meson clk driver udpates from Jerome Brunet: - Do not register clock inputs in clock provider - Add g12a support in the axg audio clock controller * tag 'meson-clk-5.2-2' of https://github.com/BayLibre/clk-meson: clk: meson: axg-audio: add g12a support clk: meson: axg-audio: don't register inputs in the onecell data clk: meson: axg_audio: replace prefix axg by aud dt-bindings: clk: axg-audio: add g12a support commit 873f258becca87f4dd973fe0ba09b88b737c9b14 Author: Mike Snitzer Date: Thu Apr 18 10:29:48 2019 -0400 dm thin metadata: do not write metadata if no changes occurred Otherwise, just activating a thin-pool and thin device and then deactivating them will cause the thin-pool metadata to be changed (e.g. superblock written) -- even without any metadata being changed. Add 'in_service' flag to struct dm_pool_metadata and set it in pmd_write_lock() because all on-disk metadata changes must take a write lock of pmd->root_lock. Once 'in_service' is set it is never cleared. __commit_transaction() will return 0 if 'in_service' is not set. dm_pool_commit_metadata() is updated to use __pmd_write_lock() so that it isn't the sole reason for putting a thin-pool in service. Also fix dm_pool_commit_metadata() to open the next transaction if the return from __commit_transaction() is 0. Not seeing why the early return ever made since for a return of 0 given that dm-io's async_io(), as used by bufio, always returns 0. Signed-off-by: Mike Snitzer commit 6a1b1ddc6a2cfb32da8f5e75f1aa053280682a05 Author: Mike Snitzer Date: Mon Apr 15 16:54:36 2019 -0400 dm thin metadata: add wrappers for managing write locking of metadata No functional change, but this prepares to hook off of pmd_write_lock() with additional functionality (as provided in next commit). Suggested-by: Joe Thornber Signed-off-by: Mike Snitzer commit a1ed4d9e937678d15990694c32e1d104e54e97a3 Author: Mike Snitzer Date: Mon Apr 15 16:40:08 2019 -0400 dm thin metadata: check __commit_transaction()'s return Fix __reserve_metadata_snap() to return early if __commit_transaction() fails. Signed-off-by: Mike Snitzer commit c6e086e0c9b2133f38563707c96b22fd0906f570 Author: Mike Snitzer Date: Fri Mar 22 16:12:22 2019 -0400 dm space map common: zero entire ll_disk Otherwise, memory that is allocated (and potentially not previously zeroed) will get written to disk as part of the space maps. Signed-off-by: Mike Snitzer commit 84420b1e5d7254e58f551e32244d13c8e124bdcc Author: Huaisheng Ye Date: Fri Apr 12 11:28:14 2019 -0400 dm writecache: add unlikely for returned value of rb_next/prev In functions writecache_discard() and writecache_find_entry() there is a high probablity that the pointer of structure rb_node won't equal NULL. Add unlikely for the pointer node NULL. Signed-off-by: Huaisheng Ye Signed-off-by: Mike Snitzer commit 09f2d6563055b8ff0948cefb8911a4de0d559963 Author: Huaisheng Ye Date: Fri Apr 12 11:27:18 2019 -0400 dm writecache: remove needless dereferences in __writecache_writeback_pmem() bio is already available so there is no need to access it in terms of the wb pointer. Signed-off-by: Huaisheng Ye Signed-off-by: Mike Snitzer commit 3f1637f2103822f9cab4c927d929db57ac4fd933 Author: Nikos Tsironis Date: Sun Mar 17 14:22:58 2019 +0200 dm snapshot: Use fine-grained locking scheme Substitute the global locking scheme with a fine grained one, employing the read-write semaphore and the scalable exception tables with per-bucket locks introduced by the previous two commits. Summarizing, we now use a read-write semaphore to protect the mostly read fields of the snapshot structure, e.g., valid, active, etc., and per-bucket bit spinlocks to protect accesses to the complete and pending exception tables. Finally, we use an extra spinlock (pe_allocation_lock) to serialize the allocation of new exceptions by the exception store. This allocation is really fast, so the extra spinlock doesn't hurt the performance. This scheme allows dm-snapshot to scale better, resulting in increased IOPS and reduced latency. Following are some benchmark results using the null_blk device: modprobe null_blk gb=1024 bs=512 submit_queues=8 hw_queue_depth=4096 \ queue_mode=2 irqmode=1 completion_nsec=1 nr_devices=1 * Benchmark fio_origin_randwrite_throughput_N, from the device mapper test suite [1] (direct IO, random 4K writes to origin device, IO engine libaio): +--------------+-------------+------------+ | # of workers | IOPS Before | IOPS After | +--------------+-------------+------------+ | 1 | 57708 | 66421 | | 2 | 63415 | 77589 | | 4 | 67276 | 98839 | | 8 | 60564 | 109258 | +--------------+-------------+------------+ * Benchmark fio_origin_randwrite_latency_N, from the device mapper test suite [1] (direct IO, random 4K writes to origin device, IO engine psync): +--------------+-----------------------+----------------------+ | # of workers | Latency (usec) Before | Latency (usec) After | +--------------+-----------------------+----------------------+ | 1 | 16.25 | 13.27 | | 2 | 31.65 | 25.08 | | 4 | 55.28 | 41.08 | | 8 | 121.47 | 74.44 | +--------------+-----------------------+----------------------+ * Benchmark fio_snapshot_randwrite_throughput_N, from the device mapper test suite [1] (direct IO, random 4K writes to snapshot device, IO engine libaio): +--------------+-------------+------------+ | # of workers | IOPS Before | IOPS After | +--------------+-------------+------------+ | 1 | 72593 | 84938 | | 2 | 97379 | 134973 | | 4 | 90610 | 143077 | | 8 | 90537 | 180085 | +--------------+-------------+------------+ * Benchmark fio_snapshot_randwrite_latency_N, from the device mapper test suite [1] (direct IO, random 4K writes to snapshot device, IO engine psync): +--------------+-----------------------+----------------------+ | # of workers | Latency (usec) Before | Latency (usec) After | +--------------+-----------------------+----------------------+ | 1 | 12.53 | 10.6 | | 2 | 19.78 | 14.89 | | 4 | 40.37 | 23.47 | | 8 | 89.32 | 48.48 | +--------------+-----------------------+----------------------+ [1] https://github.com/jthornber/device-mapper-test-suite Co-developed-by: Ilias Tsitsimpis Signed-off-by: Nikos Tsironis Acked-by: Mikulas Patocka Signed-off-by: Mike Snitzer commit f79ae415b64c35d9ecca159fe796cf98d2ff9e9c Author: Nikos Tsironis Date: Sun Mar 17 14:22:57 2019 +0200 dm snapshot: Make exception tables scalable Use list_bl to implement the exception hash tables' buckets. This change permits concurrent access, to distinct buckets, by multiple threads. Also, implement helper functions to lock and unlock the exception tables based on the chunk number of the exception at hand. We retain the global locking, by means of down_write(), which is replaced by the next commit. Still, we must acquire the per-bucket spinlocks when accessing the hash tables, since list_bl does not allow modification on unlocked lists. Co-developed-by: Ilias Tsitsimpis Signed-off-by: Nikos Tsironis Acked-by: Mikulas Patocka Signed-off-by: Mike Snitzer commit 4ad8d880b6c4497e365fb6fd16bab52e9974a3f6 Author: Nikos Tsironis Date: Sun Mar 17 14:22:56 2019 +0200 dm snapshot: Replace mutex with rw semaphore dm-snapshot uses a single mutex to serialize every access to the snapshot state. This includes all accesses to the complete and pending exception tables, which occur at every origin write, every snapshot read/write and every exception completion. The lock statistics indicate that this mutex is a bottleneck (average wait time ~480 usecs for 8 processes doing random 4K writes to the origin device) preventing dm-snapshot to scale as the number of threads doing IO increases. The major contention points are __origin_write()/snapshot_map() and pending_complete(), i.e., the submission and completion of pending exceptions. Replace this mutex with a rw semaphore. We essentially revert commit ae1093be5a0ef9 ("dm snapshot: use mutex instead of rw_semaphore") and together with the next two patches we substitute the single mutex with a fine-grained locking scheme, where we use a read-write semaphore to protect the mostly read fields of the snapshot structure, e.g., valid, active, etc., and per-bucket bit spinlocks to protect accesses to the complete and pending exception tables. Co-developed-by: Ilias Tsitsimpis Signed-off-by: Nikos Tsironis Acked-by: Mikulas Patocka Signed-off-by: Mike Snitzer commit 65fc7c37047797a0a7b80d0ad2c063deda569337 Author: Nikos Tsironis Date: Sun Mar 17 14:22:55 2019 +0200 dm snapshot: Don't sleep holding the snapshot lock When completing a pending exception, pending_complete() waits for all conflicting reads to drain, before inserting the final, completed exception. Conflicting reads are snapshot reads redirected to the origin, because the relevant chunk is not remapped to the COW device the moment we receive the read. The completed exception must be inserted into the exception table after all conflicting reads drain to ensure snapshot reads don't return corrupted data. This is required because inserting the completed exception into the exception table signals that the relevant chunk is remapped and both origin writes and snapshot merging will now overwrite the chunk in origin. This wait is done holding the snapshot lock to ensure that pending_complete() doesn't starve if new snapshot reads keep coming for this chunk. In preparation for the next commit, where we use a spinlock instead of a mutex to protect the exception tables, we remove the need for holding the lock while waiting for conflicting reads to drain. We achieve this in two steps: 1. pending_complete() inserts the completed exception before waiting for conflicting reads to drain and removes the pending exception after all conflicting reads drain. This ensures that new snapshot reads will be redirected to the COW device, instead of the origin, and thus pending_complete() will not starve. Moreover, we use the existence of both a completed and a pending exception to signify that the COW is done but there are conflicting reads in flight. 2. In __origin_write() we check first if there is a pending exception and then if there is a completed exception. If there is a pending exception any submitted BIO is delayed on the pe->origin_bios list and DM_MAPIO_SUBMITTED is returned. This ensures that neither writes to the origin nor snapshot merging can overwrite the origin chunk, until all conflicting reads drain, and thus snapshot reads will not return corrupted data. Summarizing, we now have the following possible combinations of pending and completed exceptions for a chunk, along with their meaning: A. No exceptions exist: The chunk has not been remapped yet. B. Only a pending exception exists: The chunk is currently being copied to the COW device. C. Both a pending and a completed exception exist: COW for this chunk has completed but there are snapshot reads in flight which had been redirected to the origin before the chunk was remapped. D. Only the completed exception exists: COW has been completed and there are no conflicting reads in flight. Co-developed-by: Ilias Tsitsimpis Signed-off-by: Nikos Tsironis Acked-by: Mikulas Patocka Signed-off-by: Mike Snitzer commit 34191ae816b04518943fb073207d259881a54315 Author: Nikos Tsironis Date: Sun Mar 17 14:22:54 2019 +0200 list_bl: Add hlist_bl_add_before/behind helpers Add hlist_bl_add_before/behind helpers to add an element before/after an existing element in a bl_list. Co-developed-by: Ilias Tsitsimpis Signed-off-by: Nikos Tsironis Reviewed-by: Paul E. McKenney Signed-off-by: Mike Snitzer commit ae325dcd1905925557dfdd03ae4b97e7ac6cd6a6 Author: Nikos Tsironis Date: Sun Mar 17 14:22:53 2019 +0200 list: Don't use WRITE_ONCE() in hlist_add_behind() Commit 1c97be677f72b3 ("list: Use WRITE_ONCE() when adding to lists and hlists") introduced the use of WRITE_ONCE() to atomically write the list head's ->next pointer. hlist_add_behind() doesn't touch the hlist head's ->first pointer so there is no reason to use WRITE_ONCE() in this case. Co-developed-by: Ilias Tsitsimpis Signed-off-by: Nikos Tsironis Reviewed-by: Paul E. McKenney Signed-off-by: Mike Snitzer commit e28adc3bf34e434b30e8d063df4823ba0f3e0529 Author: Nikos Tsironis Date: Wed Apr 17 17:19:18 2019 +0300 dm cache metadata: Fix loading discard bitset Add missing dm_bitset_cursor_next() to properly advance the bitset cursor. Otherwise, the discarded state of all blocks is set according to the discarded state of the first block. Fixes: ae4a46a1f6 ("dm cache metadata: use bitset cursor api to load discard bitset") Cc: stable@vger.kernel.org Signed-off-by: Nikos Tsironis Signed-off-by: Mike Snitzer commit 7aedf75ff740a98f3683439449cd91c8662d03b2 Author: Damien Le Moal Date: Thu Apr 18 18:03:07 2019 +0900 dm zoned: Fix zone report handling The function blkdev_report_zones() returns success even if no zone information is reported (empty report). Empty zone reports can only happen if the report start sector passed exceeds the device capacity. The conditions for this to happen are either a bug in the caller code, or, a change in the device that forced the low level driver to change the device capacity to a value that is lower than the report start sector. This situation includes a failed disk revalidation resulting in the disk capacity being changed to 0. If this change happens while dm-zoned is in its initialization phase executing dmz_init_zones(), this function may enter an infinite loop and hang the system. To avoid this, add a check to disallow empty zone reports and bail out early. Also fix the function dmz_update_zone() to make sure that the report for the requested zone was correctly obtained. Fixes: 3b1a94c88b79 ("dm zoned: drive-managed zoned block device target") Cc: stable@vger.kernel.org Signed-off-by: Damien Le Moal Reviewed-by: Shaun Tancheff Signed-off-by: Damien Le Moal Signed-off-by: Mike Snitzer commit a3839bc6351d79cf85790f302238dfc84382429f Author: Dan Carpenter Date: Wed Apr 10 11:12:31 2019 +0300 dm zoned: Silence a static checker warning My static checker complains about this line from dmz_get_zoned_device() aligned_capacity = dev->capacity & ~(blk_queue_zone_sectors(q) - 1); The problem is that "aligned_capacity" and "dev->capacity" are sector_t type (which is a u64 under most configs) but blk_queue_zone_sectors(q) returns a u32 so the higher 32 bits in aligned_capacity are cleared to zero. This patch adds a cast to address the issue. Fixes: 114e025968b5 ("dm zoned: ignore last smaller runt zone") Signed-off-by: Dan Carpenter Reviewed-by: Damien Le Moal Signed-off-by: Mike Snitzer commit c13b5487d9dec7189390c76c11358584e327870a Author: Christoph Hellwig Date: Thu Apr 4 18:33:34 2019 +0200 dm crypt: fix endianness annotations around org_sector_of_dmreq The sector used here is a little endian value, so use the right type for it. Signed-off-by: Christoph Hellwig Reviewed-by: Bart Van Assche Signed-off-by: Mike Snitzer commit 231a13d93d5169600f161601de8a25c7bd31af44 Merge: fb24ccfbe1e0 31e220877981 Author: Sebastian Reichel Date: Thu Apr 18 22:04:22 2019 +0200 Merge tag 'psy-olpc-1.75-battery-signed' into psy-next This immutable branch contains the changes required for OLPC 1.75 battery, which touches x86 and power-supply and is based on v5.1-rc1. Signed-off-by: Sebastian Reichel commit 31e220877981d0005d0c4a76f68027a73131212b Author: Lubomir Rintel Date: Thu Apr 18 16:46:55 2019 +0200 power: supply: olpc_battery: Have the framework register sysfs files for us The power framework gained ability to register groups of sysfs attributes in commit cef8fe6a382c ("power: supply: core: add support for custom sysfs attributes"). Signed-off-by: Lubomir Rintel Suggested-by: Sebastian Reichel Signed-off-by: Sebastian Reichel commit 76311b9a329554f592e1ddfe8d8f94feb6e0e663 Author: Lubomir Rintel Date: Thu Apr 18 16:46:54 2019 +0200 power: supply: olpc_battery: Add OLPC XO 1.75 support The battery and the protocol are essentially the same as OLPC XO 1.5, but the responses from the EC are LSB first. Signed-off-by: Lubomir Rintel Acked-by: Pavel Machek Signed-off-by: Sebastian Reichel commit 8ecefda22262030651575a047078045866cedb82 Author: Lubomir Rintel Date: Thu Apr 18 16:46:53 2019 +0200 power: supply: olpc_battery: Avoid using platform_info This wouldn't work on the DT-based ARM platform. Let's read the EC version directly from the EC driver instead. This removes x86 specific bits that would prevent this driver from being used with the EC of ARM-based OLPC XO 1.75. Signed-off-by: Lubomir Rintel Acked-by: Pavel Machek Signed-off-by: Sebastian Reichel commit b0280d05804ae86514f5abca427e360e33fed1bb Author: Lubomir Rintel Date: Thu Apr 18 16:46:52 2019 +0200 power: supply: olpc_battery: Use devm_power_supply_register() This simplifies the error handling. Signed-off-by: Lubomir Rintel Signed-off-by: Sebastian Reichel commit 33554d818a9562f47ba0de3edb35346ccf7c8c1b Author: Lubomir Rintel Date: Thu Apr 18 16:46:51 2019 +0200 power: supply: olpc_battery: Move priv data to a struct The global variables for private data are not too nice. I'd like some more, and that would clutter the global name space even further. Signed-off-by: Lubomir Rintel Reviewed-by: Andy Shevchenko Signed-off-by: Sebastian Reichel commit f7a228eaf4f8aa54c223a763d80bed5dcb072499 Author: Lubomir Rintel Date: Thu Apr 18 16:46:50 2019 +0200 power: supply: olpc_battery: Use DT to get battery version Avoid using the x86 OLPC platform specific call to get the board version. That wouldn't work on FDT-based ARM MMP2 platform. Add the XO 1.5 compatible string too. This is actually not completely necessary as the battery nodes on XO 1.5 claim to be compatible with "olpc,xo1-battery", but there are, in fact, differencies. Signed-off-by: Lubomir Rintel Reviewed-by: Andy Shevchenko Acked-by: Pavel Machek Signed-off-by: Sebastian Reichel commit a7a9bacb9a32f9cebe5feda2e33064440f52d61d Author: Lubomir Rintel Date: Thu Apr 18 16:46:49 2019 +0200 x86/platform/olpc: Use a correct version when making up a battery node The XO-1 and XO-1.5 batteries apparently differ in an ability to report ambient temperature. We need to use a different compatible string for the XO-1.5 battery. Previously olpc_dt_fixup() used the presence of the battery node's compatible property to decide whether the DT is up to date. Now we need to look for a particular value in the compatible string, to decide Signed-off-by: Lubomir Rintel Acked-by: Pavel Machek Acked-by: Thomas Gleixner Signed-off-by: Sebastian Reichel commit 47e120d3337b83ac6de2ebc622b3c9b6c1a9f315 Author: Lubomir Rintel Date: Thu Apr 18 16:46:48 2019 +0200 x86/platform/olpc: Trivial code move in DT fixup This makes the following patch more concise. Signed-off-by: Lubomir Rintel Acked-by: Thomas Gleixner Signed-off-by: Sebastian Reichel commit 0806a13c5a4306b6a49f094cd83bd94860be26a5 Author: Lubomir Rintel Date: Thu Apr 18 16:46:47 2019 +0200 x86/platform/olpc: Don't split string literals when fixing up the DT It was pointed out in a review, and checkpatch.pl complains about this. Breaking it down into multiple ofw evaluations works just as well and reads better. Signed-off-by: Lubomir Rintel Acked-by: Thomas Gleixner Signed-off-by: Sebastian Reichel commit d25ad7fdfb2bedbd6e8e0214bff1acbe7cdab3f1 Author: Lubomir Rintel Date: Thu Apr 18 16:46:46 2019 +0200 dt-bindings: olpc_battery: Add XO-1.5 battery The XO-1 and XO-1.5 batteries apparently differ in an ability to report ambient temperature. Signed-off-by: Lubomir Rintel Reviewed-by: Rob Herring Acked-by: Pavel Machek Signed-off-by: Sebastian Reichel commit fb24ccfbe1e0ae176244733ae300cdab7cc070f7 Author: Artur Rojek Date: Thu Apr 18 20:24:04 2019 +0200 power: supply: add Ingenic JZ47xx battery driver. Add a driver for battery present on Ingenic JZ47xx SoCs. Signed-off-by: Artur Rojek Reviewed-by: Jonathan Cameron Signed-off-by: Sebastian Reichel commit bbdfeea2c6da271813a29344c8515220d0413daf Author: Artur Rojek Date: Sat Mar 23 18:28:08 2019 +0100 dt-bindings: power: supply: Add docs for Ingenic JZ47xx SoCs battery. Add documentation for the ingenic-battery driver, used on JZ47xx SoCs. Signed-off-by: Artur Rojek Acked-by: Jonathan Cameron Signed-off-by: Sebastian Reichel commit ec8242de407f6818f94d0f44ef2f395483215503 Merge: c279adafe6ab 89388ca4955f Author: Sebastian Reichel Date: Thu Apr 18 21:27:38 2019 +0200 Merge 'ib-jz47xx-battery-prereq' into psy-next Merge immutable branch containing the IIO changes required for the new Ingenic JZ47xx battery fuel gauge driver. Signed-off-by: Sebastian Reichel commit 05b8ccfba5d4621072e541603b0f0a14c2203ca8 Author: Jacek Anaszewski Date: Sat Apr 6 19:04:44 2019 +0200 ALSA: line6: Avoid polluting led_* namespace led_colors clashes with the array of the same name being added to the LED class. Do the following amendments to fix this issue and the other prospective one. led_colors -> toneport_led_colors led_init_vals -> toneport_led_init_vals Fixes: f44edd7b2bbed ("ALSA: line6/toneport: Implement LED controls via LED class") Signed-off-by: Jacek Anaszewski Cc: Jaroslav Kysela Cc: Arnd Bergmann Reviewed-by: Takashi Iwai commit b1546edcf2aab710a5afc98d65c948a4bfac0353 Author: YueHaibing Date: Thu Apr 18 22:47:13 2019 +0800 sched/core: Make some functions static Fix these sparse warnings: kernel/sched/core.c:6577:11: warning: symbol 'min_cfs_quota_period' was not declared. Should it be static? kernel/sched/core.c:6657:5: warning: symbol 'tg_set_cfs_quota' was not declared. Should it be static? kernel/sched/core.c:6670:6: warning: symbol 'tg_get_cfs_quota' was not declared. Should it be static? kernel/sched/core.c:6683:5: warning: symbol 'tg_set_cfs_period' was not declared. Should it be static? kernel/sched/core.c:6693:6: warning: symbol 'tg_get_cfs_period' was not declared. Should it be static? kernel/sched/fair.c:2596:6: warning: symbol 'task_tick_numa' was not declared. Should it be static? Signed-off-by: YueHaibing Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20190418144713.34332-1-yuehaibing@huawei.com Signed-off-by: Ingo Molnar commit 16111991dbd72407566ac29acf7892cd15c85bd9 Merge: f9a904efca28 711987bbad18 Author: David S. Miller Date: Thu Apr 18 11:25:33 2019 -0700 Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== 100GbE Intel Wired LAN Driver Updates 2019-04-18 This series contains updates to the ice driver only. Anirudh fixes up code comments which had typos. Added support for DCB into the ice driver, which required a bit of refactoring of the existing code. Also fixed a potential race condition between closing and opening the VSI for a MIB change event, so resolved this by grabbing the rtnl_lock prior to closing. Added support to process LLDP MIB change notifications. Added support for reporting DCB stats via ethtool. Brett updates the calculation to increment ITR to use a direct calculation instead of using estimations. This provides a more accurate value. ==================== Signed-off-by: David S. Miller commit f9a904efca28bed3b971069398a0c933dd6aaa40 Merge: b8fb1ab46169 b5250c9c14c1 Author: David S. Miller Date: Thu Apr 18 11:07:55 2019 -0700 Merge tag 'wireless-drivers-next-for-davem-2019-04-18' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next Kalle Valo says: ==================== wireless-drivers-next patches for 5.2 Nothing really special standing out this time, iwlwifi being the most active driver. Major changes: iwlwifi * send NO_DATA events so they can be captured in radiotap * support for multiple BSSID * support for some new FW API versions * support new hardware * debugfs cleanups by Greg-KH qtnfmac * allow each MAC to specify its own regulatory rules ==================== Signed-off-by: David S. Miller commit 6cd5235c3135ea84b32469ea51b2aae384eda8af Author: Wen Yang Date: Thu Apr 4 00:04:11 2019 +0800 drm/msm: a5xx: fix possible object reference leak The call to of_get_child_by_name returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: drivers/gpu/drm/msm/adreno/a5xx_gpu.c:57:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 47, but without a corresponding object release within this function. drivers/gpu/drm/msm/adreno/a5xx_gpu.c:66:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 47, but without a corresponding object release within this function. drivers/gpu/drm/msm/adreno/a5xx_gpu.c:118:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 47, but without a corresponding object release within this function. drivers/gpu/drm/msm/adreno/a5xx_gpu.c:57:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 51, but without a corresponding object release within this function. drivers/gpu/drm/msm/adreno/a5xx_gpu.c:66:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 51, but without a corresponding object release within this function. drivers/gpu/drm/msm/adreno/a5xx_gpu.c:118:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 51, but without a corresponding object release within this function. Signed-off-by: Wen Yang Cc: Rob Clark Cc: Sean Paul Cc: David Airlie Cc: Daniel Vetter Cc: Jordan Crouse Cc: Mamta Shukla Cc: Thomas Zimmermann Cc: Sharat Masetty Cc: linux-arm-msm@vger.kernel.org Cc: dri-devel@lists.freedesktop.org Cc: freedreno@lists.freedesktop.org Cc: linux-kernel@vger.kernel.org (open list) Reviewed-by: Jordan Crouse Signed-off-by: Rob Clark Signed-off-by: Rob Clark commit e1505f627e2edaf9ba6cad4a352d897db1f99ef3 Author: Douglas Anderson Date: Wed Jan 16 10:46:22 2019 -0800 drm/msm: Cleanup A6XX opp-level reading The patch ("OPP: Add support for parsing the 'opp-level' property") adds an API enabling a cleaner way to read the opp-level. Let's use the new API. Signed-off-by: Douglas Anderson Reviewed-by: Jordan Crouse Signed-off-by: Rob Clark Signed-off-by: Rob Clark commit 4e99851742470a64326d5484a44e7940c0e6d056 Author: Jeykumar Sankaran Date: Wed Feb 13 17:19:16 2019 -0800 drm/msm/dpu: check split role for single flush Removing unwanted access of crtc_state for finding this information. Use split role information to know whether we have slave ctl. Signed-off-by: Jeykumar Sankaran Signed-off-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/1550107156-17625-8-git-send-email-jsanka@codeaurora.org Signed-off-by: Rob Clark commit 9d4c8fd1af4687eb477ae26b7ecc386b336cea72 Author: Jeykumar Sankaran Date: Wed Feb 13 17:19:15 2019 -0800 drm/msm/dpu: assign intf to encoder in mode_set Iterate and assign HW intf block to physical encoders in encoder modeset. Moving all the HW block assignments to encoder modeset to allow easy switching to state based resource management. Signed-off-by: Jeykumar Sankaran Signed-off-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/1550107156-17625-7-git-send-email-jsanka@codeaurora.org Signed-off-by: Rob Clark commit b107603b4ad0f2624425bb2402701480bb59cafe Author: Jeykumar Sankaran Date: Wed Feb 13 17:19:14 2019 -0800 drm/msm/dpu: map mixer/ctl hw blocks in encoder modeset After resource allocation, iterate and populate mixer/ctl hw blocks in encoder modeset thereby centralizing all the resource mapping to the CRTC. This change is made for easy switching to state based allocation using private objects later in this series. Signed-off-by: Jeykumar Sankaran Signed-off-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/1550107156-17625-6-git-send-email-jsanka@codeaurora.org Signed-off-by: Rob Clark commit c2ab55a68a33746591971f3e1d4ef3374f1d7e18 Author: Jeykumar Sankaran Date: Wed Feb 13 17:19:13 2019 -0800 drm/msm/dpu: dont use encoder->crtc in atomic path encoder->crtc is not really meaningful for atomic path. Use crtc->encoder_mask to identify the crtc attached with an encoder. Signed-off-by: Jeykumar Sankaran Signed-off-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/1550107156-17625-5-git-send-email-jsanka@codeaurora.org Signed-off-by: Rob Clark commit a7fcc3237f31a4e206953bb73cf41bd429442f09 Author: Jeykumar Sankaran Date: Wed Feb 13 17:19:12 2019 -0800 drm/msm/dpu: release resources on modeset failure release resources allocated in mode_set if any of the hw check fails. Most of these checks are not necessary and they will be removed in the follow up patches with state based resource allocations. Signed-off-by: Jeykumar Sankaran Signed-off-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/1550107156-17625-4-git-send-email-jsanka@codeaurora.org Signed-off-by: Rob Clark commit 366334a3127eb654410660987919e1de231f15f2 Author: Jeykumar Sankaran Date: Wed Feb 13 17:19:11 2019 -0800 drm/msm/dpu: remove phys_vid subclass Not holding any video encoder specific data. Get rid of it. Signed-off-by: Jeykumar Sankaran Signed-off-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/1550107156-17625-3-git-send-email-jsanka@codeaurora.org Signed-off-by: Rob Clark commit b6057cda8f6cac5f50dbac7ff5ca825fdafdeb39 Author: Jeykumar Sankaran Date: Wed Feb 13 17:19:10 2019 -0800 drm/msm/dpu: move hw_inf encoder baseclass Both video and command physical encoders will have a hw interface assigned to it. So there is really no need to track the hw block in specific encoder subclass. Signed-off-by: Jeykumar Sankaran Signed-off-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/1550107156-17625-2-git-send-email-jsanka@codeaurora.org Signed-off-by: Rob Clark commit f98baa3109cea46083d2361ab14a0207d1b1bd16 Author: Sean Paul Date: Wed Jan 30 11:32:12 2019 -0500 drm/msm: dpu: Don't set frame_busy_mask for async updates The frame_busy mask is used in frame_done event handling, which is not invoked for async commits. So an async commit will leave the frame_busy mask populated after it completes and future commits will start with the busy mask incorrect. This showed up on disable after cursor move. I was hitting the "this should not happen" comment in the frame event worker since frame_busy was set, we queued the event, but there were no frames pending (since async also doesn't set that). Reviewed-by: Fritz Koenig Signed-off-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190130163220.138637-1-sean@poorly.run Signed-off-by: Rob Clark commit be77ef760cd351b27916a3b4e74e7fefb4809c4a Author: Sean Paul Date: Mon Jan 28 15:42:51 2019 -0500 drm/msm: dpu: Don't queue the frame_done watchdog for cursor In the case of an async/cursor update, we don't wait for the frame_done event, which means handle_frame_done is never called, and the frame_done watchdog isn't canceled. Currently, this results in a frame_done timeout every time the cursor moves without a synchronous frame following it up before the timeout expires. Since we don't wait for frame_done, and don't handle it, we shouldn't modify the watchdog. Reviewed-by: Fritz Koenig Signed-off-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190128204306.95076-4-sean@poorly.run Signed-off-by: Rob Clark commit 70df9610de0fd3bbcb746f501ab7426a3052250f Author: Sean Paul Date: Mon Jan 28 15:42:50 2019 -0500 drm/msm: dpu: Untangle frame_done timeout units There exists a bunch of confusion as to what the actual units of frame_done is: - The definition states it's in # of frames - CRTC treats it like it's ms - frame_done_timeout comment thinks it's Hz, but it stores ms - frame_done timer is setup such that it _should_ be in frames, but the timeout is super long So this patch tries to interpret what the driver really wants. I've de-centralized the #define since the consumers are expecting different units. For crtc, we just use 60ms since that's what it was doing before. Perhaps we could get fancy and scale with vrefresh, but that's for another time. For encoder, fix the comments and rename frame_done_timeout so it's obvious what the units are. In practice, frame_done_timeout is really just checked against 0 || !0, which I guess is why the units being wrong didn't matter. I've also dropped the timeout from the previous 60 frames to 5. That seems like more than enough time to give up on a frame, and my guess is that no one intended for the timeout to _actually_ be 60 frames. Reviewed-by: Fritz Koenig Signed-off-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190128204306.95076-3-sean@poorly.run Signed-off-by: Rob Clark commit 2e0391865bd71e076139ca8059bf68469012c27a Author: Sean Paul Date: Mon Jan 28 15:42:49 2019 -0500 drm/msm: dpu: Simplify frame_done watchdog timeout calculation Instead of setting the timeout and then immediately reading it back (along with the hand-rolled msecs_to_jiffies calculation), just calculate it once and set it in both places at the same time. Reviewed-by: Abhinav Kumar Signed-off-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190128204306.95076-2-sean@poorly.run Signed-off-by: Rob Clark commit 6117f86202720cae2397dfcba7acf374cde3c6c9 Author: Sean Paul Date: Mon Jan 28 15:42:48 2019 -0500 drm/msm: Use drm_mode_vrefresh instead of mode->vrefresh Use the drm_mode_vrefresh helper where we need refresh rate in case vrefresh is empty. Reviewed-by: Abhinav Kumar Signed-off-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190128204306.95076-1-sean@poorly.run Signed-off-by: Rob Clark commit 7603df38cc8c1e5d540b18ec9eb9d62d823197d0 Author: Luca Weiss Date: Sat Mar 2 13:35:29 2019 +0100 drm/msm: Fix NULL pointer dereference [ 3.707412] Unable to handle kernel NULL pointer dereference at virtual address 0000009c [ 3.714511] pgd = (ptrval) [ 3.722742] [0000009c] *pgd=00000000 [ 3.725238] Internal error: Oops: 5 [#1] PREEMPT SMP ARM [ 3.728968] Modules linked in: [ 3.734265] CPU: 3 PID: 112 Comm: kworker/3:2 Tainted: G W 5.0.0-rc7-00183-g06a1c31df9eb #4 [ 3.737142] Hardware name: Generic DT based system [ 3.746778] Workqueue: events deferred_probe_work_func [ 3.751542] PC is at msm_gem_map_vma+0x3c/0xac [ 3.756669] LR is at msm_gem_get_and_pin_iova+0xd8/0x134 [ 3.761086] pc : [] lr : [] psr: 60000013 [ 3.766560] sp : ee297be8 ip : ed9ab1c0 fp : ed93b800 [ 3.772546] r10: ee35e180 r9 : 00000000 r8 : ee297c80 [ 3.777752] r7 : 00000000 r6 : 7c100000 r5 : 00000000 r4 : ee35e180 [ 3.782968] r3 : 00000001 r2 : 00000003 r1 : ee35e180 r0 : 00000000 [ 3.789562] Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none [ 3.796079] Control: 10c5787d Table: 2e3a806a DAC: 00000051 [ 3.803282] Process kworker/3:2 (pid: 112, stack limit = 0x(ptrval)) [ 3.809006] Stack: (0xee297be8 to 0xee298000) [ 3.815445] 7be0: 00000000 c1108c48 eda8c000 00000003 eda8c0fc c1108c48 [ 3.819715] 7c00: eda8c000 00000003 eda8c0fc c07d14f8 00000001 c07d1100 7c100000 00000000 [ 3.827873] 7c20: eda8c000 bb7ffb78 00000000 eda8c000 00000000 00000000 c0c8b1d4 ee3bfa00 [ 3.836037] 7c40: ee3b9800 c07d1684 00000000 c1108c48 ee0d7810 ee3b9800 c0c8b1d4 c07d222c [ 3.844193] 7c60: ee3bfd84 ee297c80 00000000 c0b1d5b0 ee3bfc40 c07dcfd8 ee3bfd84 ee297c80 [ 3.852357] 7c80: 0000006d ee3bfc40 ee0d7810 bb7ffb78 c0c8b1d4 00000000 ee3bfc40 c07ddb48 [ 3.860516] 7ca0: 00002004 c0eba384 ee3bfc40 c079eba0 ee3bd040 ee3b9800 00000001 ed93b800 [ 3.868673] 7cc0: ed9aa100 c07db7e8 ee3bf240 ed9a6500 00000001 ee3b9800 ee3bf2d4 c07a0a30 [ 3.876834] 7ce0: ed93b800 7d100000 c1108c48 ee0d7610 ee3b9800 ed93b800 c1108c48 00000000 [ 3.884991] 7d00: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 3.893151] 7d20: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 bb7ffb78 [ 3.901310] 7d40: c12113c4 ed93b800 ee3b9800 c1108c48 ee9eec10 00000000 ed93b800 7d100000 [ 3.909472] 7d60: eff7b000 c07cf748 7d100000 00000000 c0e9a350 c0b1d5b0 c12113c4 c0961e40 [ 3.917633] 7d80: c12113c4 40000113 eeff4bec c0ebe004 00000019 c0b1d230 ee9eeda8 60000113 [ 3.925791] 7da0: ee35d300 ee9eeda8 c07ce260 bb7ffb78 c07ce260 ee35d2c0 00000028 00000002 [ 3.933950] 7dc0: eeb76280 c118f884 ee0be640 c11c6128 c07ce260 c07ea4ac 00000000 c0962b48 [ 3.942108] 7de0: c118f868 00000001 c0ebbc98 ee35d2c0 00000000 eeb76280 00000000 c118f87c [ 3.950270] 7e00: ee35d2c0 00000000 c11c63e0 c118f694 00000019 c07ea5d0 ee0d7810 00000000 [ 3.958430] 7e20: c118f694 00000000 00000000 c07f2b0c c120f55c ee0d7810 c120f560 00000000 [ 3.966590] 7e40: 00000000 c07f08c4 c07f0e8c ee0d7810 c11ba3d0 ee0d7810 c118f694 c07f0e8c [ 3.974748] 7e60: c1108c48 00000001 c0ebc3cc c11c63f8 c11ba3d0 c07f0c08 00000001 c07f2f8c [ 3.982908] 7e80: c118f694 00000000 ee297ed4 c07f0e8c c1108c48 00000001 c0ebc3cc c11c63f8 [ 3.991068] 7ea0: c11ba3d0 c07ee8a0 c11ba3d0 ee82686c ee0baf38 bb7ffb78 ee0d7810 ee0d7810 [ 3.999227] 7ec0: c1108c48 ee0d7844 c118faac c07f05b0 ee0d7810 ee0d7810 00000001 bb7ffb78 [ 4.007389] 7ee0: ee0d7810 ee0d7810 c118fd18 c118faac c11c63e0 c07ef7d0 ee0d7810 c118fa90 [ 4.015548] 7f00: c118fa90 c07efd68 c118fac8 ee27fe00 eefd9c80 eefdcd00 00000000 c118facc [ 4.023708] 7f20: 00000000 c033c038 eefd9c80 eefd9c80 00000008 ee27fe00 ee27fe14 eefd9c80 [ 4.031866] 7f40: 00000008 c1103d00 eefd9c98 ee296000 eefd9c80 c033ce54 ee907eac c0b1d230 [ 4.040026] 7f60: ee907eac eea24440 ee285000 00000000 ee296000 ee27fe00 c033ce24 eea2445c [ 4.048188] 7f80: ee907eac c0341db0 00000000 ee285000 c0341c8c 00000000 00000000 00000000 [ 4.056346] 7fa0: 00000000 00000000 00000000 c03010e8 00000000 00000000 00000000 00000000 [ 4.064505] 7fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 4.072665] 7fe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000 [ 4.080828] [] (msm_gem_map_vma) from [] (msm_gem_get_and_pin_iova+0xd8/0x134) [ 4.088983] [] (msm_gem_get_and_pin_iova) from [] (_msm_gem_kernel_new+0x38/0xac) [ 4.097839] [] (_msm_gem_kernel_new) from [] (msm_gem_kernel_new+0x24/0x2c) [ 4.107130] [] (msm_gem_kernel_new) from [] (dsi_tx_buf_alloc_6g+0x44/0x90) [ 4.115631] [] (dsi_tx_buf_alloc_6g) from [] (msm_dsi_host_modeset_init+0x80/0x104) [ 4.124313] [] (msm_dsi_host_modeset_init) from [] (msm_dsi_modeset_init+0x34/0x1c0) [ 4.133691] [] (msm_dsi_modeset_init) from [] (mdp5_kms_init+0x764/0x7e0) [ 4.143409] [] (mdp5_kms_init) from [] (msm_drm_bind+0x56c/0x740) [ 4.151824] [] (msm_drm_bind) from [] (try_to_bring_up_master+0x238/0x2b4) [ 4.159636] [] (try_to_bring_up_master) from [] (component_add+0xa8/0x170) [ 4.168146] [] (component_add) from [] (platform_drv_probe+0x48/0x9c) [ 4.176737] [] (platform_drv_probe) from [] (really_probe+0x278/0x404) [ 4.184981] [] (really_probe) from [] (driver_probe_device+0x78/0x1c0) [ 4.193147] [] (driver_probe_device) from [] (bus_for_each_drv+0x74/0xb8) [ 4.201389] [] (bus_for_each_drv) from [] (__device_attach+0xd0/0x164) [ 4.209984] [] (__device_attach) from [] (bus_probe_device+0x84/0x8c) [ 4.218143] [] (bus_probe_device) from [] (deferred_probe_work_func+0x48/0xc4) [ 4.226398] [] (deferred_probe_work_func) from [] (process_one_work+0x204/0x574) [ 4.235254] [] (process_one_work) from [] (worker_thread+0x30/0x560) [ 4.244534] [] (worker_thread) from [] (kthread+0x124/0x154) [ 4.252606] [] (kthread) from [] (ret_from_fork+0x14/0x2c) [ 4.259966] Exception stack(0xee297fb0 to 0xee297ff8) [ 4.266998] 7fa0: 00000000 00000000 00000000 00000000 [ 4.272143] 7fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 [ 4.280297] 7fe0: 00000000 00000000 00000000 00000000 00000013 00000000 [ 4.288451] Code: e5813080 1a000013 e3a03001 e5c4307c (e590009c) [ 4.294933] ---[ end trace 18729cc2bca2b4b3 ]--- Signed-off-by: Luca Weiss Signed-off-by: Rob Clark Signed-off-by: Rob Clark commit a6bb79ab48796a6293b9c60597b631bca6011041 Author: Jordan Crouse Date: Tue Feb 19 11:48:20 2019 -0700 drm/msm: Remove pm_runtime calls from msm_iommu.c Currently the IOMMU code calls pm_runtime_get/put on the GPU or display device before doing a IOMMU operation. This was because usually the IOMMU driver didn't do power control of its own and since the hardware used the same clocks and power as the respective multimedia device it was a easy way to make sure that the power was available. Now two things have changed. First, the SMMU devices can do their own power control and more important bringing up the a6xx GPU isn't as easy as turning on some clocks. To bring the GPU up we need the GMU which itself needs the IOMMU so we have a chicken and egg problem. Luckily this is easily fixed by removing the pm_runtime calls from the functions and letting the device link to the IOMMU device handle the magic. Signed-off-by: Jordan Crouse Tested-by: Bjorn Andersson Signed-off-by: Rob Clark Signed-off-by: Rob Clark commit 0abdba47dc1df708c365421d481734d3f7fecb01 Author: Lucas Stach Date: Thu Feb 28 07:23:29 2019 +0100 drm/msm: don't allocate pages from the MOVABLE zone The pages backing the GEM objects are kept pinned in place as long as they are alive, so they must not be allocated from the MOVABLE zone. Blocking page migration for too long will cause the VM subsystem headaches and will outright break CMA, as a few pinned pages in CMA will lead to failure to find the required large contiguous regions. Signed-off-by: Lucas Stach Signed-off-by: Rob Clark Signed-off-by: Rob Clark commit 513eff7fdc77bc85826c2b54b5a08ce1be2ebf5b Author: Marc Gonzalez Date: Tue Apr 9 14:49:00 2019 +0200 dt-bindings: phy-qcom-qmp: Add qcom,msm8998-qmp-pcie-phy Add compatible string for QMP PCIe phy on msm8998. Signed-off-by: Marc Gonzalez Signed-off-by: Kishon Vijay Abraham I commit 94e487a41f57ea9f8bdba7e69791076188d8e111 Author: Yu Chen Date: Fri Mar 29 12:14:03 2019 +0800 phy: Add usb phy support for hi3660 Soc of Hisilicon This driver handles usb phy power on and shutdown for hi3660 Soc of Hisilicon. Cc: Andy Shevchenko Cc: Kishon Vijay Abraham I Cc: "David S. Miller" Cc: Greg Kroah-Hartman Cc: Mauro Carvalho Chehab Cc: Andrew Morton Cc: Arnd Bergmann Cc: Shawn Guo Cc: Pengcheng Li Cc: Jianguo Sun Cc: Masahiro Yamada Cc: Jiancheng Xue Cc: John Stultz Cc: Binghui Wang Reviewed-by: Andy Shevchenko Signed-off-by: Yu Chen Signed-off-by: Kishon Vijay Abraham I commit e4d0cf63f24306d1e16262482fb05a3fc69653e2 Author: Yu Chen Date: Fri Mar 29 12:13:57 2019 +0800 dt-bindings: phy: Add support for HiSilicon's hi3660 USB PHY This patch adds binding documentation for supporting the hi3660 usb phy on boards like the HiKey960. Cc: Rob Herring Cc: Mark Rutland Cc: John Stultz Cc: Binghui Wang Reviewed-by: Rob Herring Signed-off-by: Yu Chen Signed-off-by: Kishon Vijay Abraham I commit ea4059fc93fd3235d28463372354db4fd52f93a3 Author: Colin Ian King Date: Wed Mar 20 21:22:04 2019 +0000 scsi: phy: mediatek: fix typo in author's email address There is a typo in the module author's email address. Fix this. Signed-off-by: Colin Ian King Acked-by: Chunfeng Yun Reviewed-by: Stanley Chu Acked-by: Gustavo A. R. Silva Signed-off-by: Kishon Vijay Abraham I commit 61c67bfaaae6d555588d39f235aae64b6d7b28de Author: Kavya Sree Kotagiri Date: Mon Mar 25 10:13:33 2019 +0000 phy: ocelot-serdes: Add support for SERDES6G muxing Adding support for SERDES6G muxing required for QSGMII mode of operation. Signed-off-by: Kavya Sree Kotagiri Signed-off-by: Quentin Schulz Signed-off-by: Steen Hegelund Co-developed-by: Quentin Schulz Co-developed-by: Steen Hegelund Signed-off-by: Kishon Vijay Abraham I commit eeda879bb54f46c01d7014602aecaae3a2bbeb5d Author: Lucas Stach Date: Thu Apr 4 18:41:48 2019 +0200 phy: fsl-imx8mq-usb: add support for VBUS power control This adds support to the PHY driver to power up/down the VBUS voltage rail at the appropriate times. Signed-off-by: Lucas Stach Signed-off-by: Kishon Vijay Abraham I commit 29c6584f333149157c7ec72aa5dca18aa9253e10 Author: Lucas Stach Date: Thu Apr 4 18:41:47 2019 +0200 dt-bindings: phy-imx8mq-usb: add optional vbus supply regulator Add a vbus supply regulator phandle, so the PHY can enable the VBUS voltage rail when powering up. Signed-off-by: Lucas Stach Signed-off-by: Kishon Vijay Abraham I commit 43b8e1f08938c0fd3b8924e846dba89863badc2f Author: Dave Martin Date: Fri Apr 12 13:25:38 2019 +0100 KVM: arm64: Clarify access behaviour for out-of-range SVE register slice IDs The existing documentation for which SVE register slice IDs are considered out-of-range, and what happens when userspace tries to access them, is cryptic. This patch rewords the text with the aim of making it a bit easier to understand. No functional change. Suggested-by: Andrew Jones Signed-off-by: Dave Martin Reviewed-by: Andrew Jones Signed-off-by: Marc Zyngier commit fe365b4ea6c0df3eb44d636c32c5210ae1e58364 Author: Dave Martin Date: Fri Apr 12 12:59:47 2019 +0100 KVM: Clarify KVM_{SET,GET}_ONE_REG error code documentation The current error code documentation for KVM_GET_ONE_REG and KVM_SET_ONE_REG could be read as implying that all architectures implement these error codes, or that KVM guarantees which error code is returned in a particular situation. Because this is not really the case, this patch waters down the documentation explicitly to remove such guarantees. EPERM is marked as arm64-specific, since for now arm64 really is the only architecture that yields this error code for the finalization-required case. Keeping this as a distinct error code is useful however for debugging due to the statefulness of the API in this instance. No functional change. Suggested-by: Andrew Jones Fixes: 395f562f2b4c ("KVM: Document errors for KVM_GET_ONE_REG and KVM_SET_ONE_REG") Fixes: 50036ad06b7f ("KVM: arm64/sve: Document KVM API extensions for SVE") Signed-off-by: Dave Martin Reviewed-by: Andrew Jones Signed-off-by: Marc Zyngier commit 9df2d660c7f37aed7244ec0b920c0749dbb69167 Author: Dave Martin Date: Fri Apr 12 13:28:05 2019 +0100 KVM: Clarify capability requirements for KVM_ARM_VCPU_FINALIZE Userspace is only supposed to use KVM_ARM_VCPU_FINALIZE when there is some vcpu feature that can actually be finalized. This means that documenting KVM_ARM_VCPU_FINALIZE as available or not depending on the capabilities present is not helpful. This patch amends the documentation to describe availability in terms of which capability is required for each finalizable feature instead. In any case, userspace sees the same error (EINVAL) regardless of whether the given feature is not present or KVM_ARM_VCPU_FINALIZE is not implemented at all. No functional change. Suggested-by: Andrew Jones Signed-off-by: Dave Martin Reviewed-by: Andrew Jones Signed-off-by: Marc Zyngier commit 92e68b2b1ba004be55b2094fb8b5c11d0b24d11d Author: Dave Martin Date: Wed Apr 10 17:17:37 2019 +0100 KVM: arm/arm64: Clean up vcpu finalization function parameter naming Currently, the internal vcpu finalization functions use a different name ("what") for the feature parameter than the name ("feature") used in the documentation. To avoid future confusion, this patch converts everything to use the name "feature" consistently. No functional change. Suggested-by: Andrew Jones Signed-off-by: Dave Martin Reviewed-by: Andrew Jones Signed-off-by: Marc Zyngier commit ecfb6ed4f66e68129c3ab675c68cb6578c28ef9b Author: Dave Martin Date: Thu Apr 11 17:23:00 2019 +0100 KVM: arm64/sve: Explain validity checks in set_sve_vls() Correct virtualization of SVE relies for correctness on code in set_sve_vls() that verifies consistency between the set of vector lengths requested by userspace and the set of vector lengths available on the host. However, the purpose of this code is not obvious, and not likely to be apparent at all to people who do not have detailed knowledge of the SVE system-level architecture. This patch adds a suitable comment to explain what these checks are for. No functional change. Suggested-by: Andrew Jones Signed-off-by: Dave Martin Reviewed-by: Andrew Jones Signed-off-by: Marc Zyngier commit 4bd774e57b29f5bbf296d1daf69cc761e1e75fa8 Author: Dave Martin Date: Thu Apr 11 17:09:59 2019 +0100 KVM: arm64/sve: Simplify KVM_REG_ARM64_SVE_VLS array sizing A complicated DIV_ROUND_UP() expression is currently written out explicitly in multiple places in order to specify the size of the bitmap exchanged with userspace to represent the value of the KVM_REG_ARM64_SVE_VLS pseudo-register. Userspace currently has no direct way to work this out either: for documentation purposes, the size is just quoted as 8 u64s. To make this more intuitive, this patch replaces these with a single define, which is also exported to userspace as KVM_ARM64_SVE_VLS_WORDS. Since the number of words in a bitmap is just the index of the last word used + 1, this patch expresses the bound that way instead. This should make it clearer what is being expressed. For userspace convenience, the minimum and maximum possible vector lengths relevant to the KVM ABI are exposed to UAPI as KVM_ARM64_SVE_VQ_MIN, KVM_ARM64_SVE_VQ_MAX. Since the only direct use for these at present is manipulation of KVM_REG_ARM64_SVE_VLS, no corresponding _VL_ macros are defined. They could be added later if a need arises. Since use of DIV_ROUND_UP() was the only reason for including in guest.c, this patch also removes that #include. Suggested-by: Andrew Jones Signed-off-by: Dave Martin Reviewed-by: Andrew Jones Signed-off-by: Marc Zyngier commit 55ffad3b636a32dae03752078f4a0846bfd3a151 Author: Dave Martin Date: Thu Apr 11 16:37:38 2019 +0100 KVM: arm64/sve: WARN when avoiding divide-by-zero in sve_reg_to_region() sve_reg_to_region() currently passes the result of vcpu_sve_state_size() to array_index_nospec(), effectively leading to a divide / modulo operation. Currently the code bails out and returns -EINVAL if vcpu_sve_state_size() turns out to be zero, in order to avoid going ahead and attempting to divide by zero. This is reasonable, but it should only happen if the kernel contains some other bug that allowed this code to be reached without the vcpu having been properly initialised. To make it clear that this is a defence against bugs rather than something that the user should be able to trigger, this patch marks the check with WARN_ON(). Suggested-by: Andrew Jones Signed-off-by: Dave Martin Reviewed-by: Andrew Jones Signed-off-by: Marc Zyngier commit 52110aa95948deba724739fc9933070c3e2c7239 Author: Dave Martin Date: Thu Apr 11 16:13:39 2019 +0100 KVM: arm64/sve: Make register ioctl access errors more consistent Currently, the way error codes are generated when processing the SVE register access ioctls in a bit haphazard. This patch refactors the code so that the behaviour is more consistent: now, -EINVAL should be returned only for unrecognised register IDs or when some other runtime error occurs. -ENOENT is returned for register IDs that are recognised, but whose corresponding register (or slice) does not exist for the vcpu. To this end, in {get,set}_sve_reg() we now delegate the vcpu_has_sve() check down into {get,set}_sve_vls() and sve_reg_to_region(). The KVM_REG_ARM64_SVE_VLS special case is picked off first, then sve_reg_to_region() plays the role of exhaustively validating or rejecting the register ID and (where accepted) computing the applicable register region as before. sve_reg_to_region() is rearranged so that -ENOENT or -EPERM is not returned prematurely, before checking whether reg->id is in a recognised range. -EPERM is now only returned when an attempt is made to access an actually existing register slice on an unfinalized vcpu. Fixes: e1c9c98345b3 ("KVM: arm64/sve: Add SVE support to register access ioctl interface") Fixes: 9033bba4b535 ("KVM: arm64/sve: Add pseudo-register for the guest's vector lengths") Suggested-by: Andrew Jones Signed-off-by: Dave Martin Reviewed-by: Andrew Jones Signed-off-by: Marc Zyngier commit f8d4635aff7e2e46beedaf61517a1caa4a06ee42 Author: Dave Martin Date: Fri Apr 5 17:31:37 2019 +0100 KVM: arm64/sve: Miscellaneous tidyups in guest.c * Remove a few redundant blank lines that are stylistically inconsistent with code already in guest.c and are just taking up space. * Delete a couple of pointless empty default cases from switch statements whose behaviour is otherwise obvious anyway. * Fix some typos and consolidate some redundantly duplicated comments. * Respell the slice index check in sve_reg_to_region() as "> 0" to be more consistent with what is logically being checked here (i.e., "is the slice index too large"), even though we don't try to cope with multiple slices yet. No functional change. Suggested-by: Andrew Jones Signed-off-by: Dave Martin Reviewed-by: Andrew Jones Signed-off-by: Marc Zyngier commit 8ae6efdde451512e855be576dd0cdf4cb394c289 Author: Dave Martin Date: Fri Apr 5 17:17:08 2019 +0100 KVM: arm64/sve: Clean up UAPI register ID definitions Currently, the SVE register ID macros are not all defined in the same way, and advertise the fact that FFR maps onto the nonexistent predicate register P16. This is really just for kernel convenience, and may lead userspace into bad habits. Instead, this patch masks the ID macro arguments so that architecturally invalid register numbers will not be passed through any more, and uses a literal KVM_REG_ARM64_SVE_FFR_BASE macro to define KVM_REG_ARM64_SVE_FFR(), similarly to the way the _ZREG() and _PREG() macros are defined. Rather than plugging in magic numbers for the number of Z- and P- registers and the maximum possible number of register slices, this patch provides definitions for those too. Userspace is going to need them in any case, and it makes sense for them to come from . sve_reg_to_region() uses convenience constants that are defined in a different way, and also makes use of the fact that the FFR IDs are really contiguous with the P15 IDs, so this patch retains the existing convenience constants in guest.c, supplemented with a couple of sanity checks to check for consistency with the UAPI header. Fixes: e1c9c98345b3 ("KVM: arm64/sve: Add SVE support to register access ioctl interface") Suggested-by: Andrew Jones Signed-off-by: Dave Martin Reviewed-by: Andrew Jones Signed-off-by: Marc Zyngier commit 700698a8a9741063c9804c7bce2dbec6c8d69f3d Author: Dave Martin Date: Fri Apr 5 16:35:50 2019 +0100 KVM: arm64/sve: sys_regs: Demote redundant vcpu_has_sve() checks to WARNs Because of the logic in kvm_arm_sys_reg_{get,set}_reg() and sve_id_visibility(), we should never call {get,set}_id_aa64zfr0_el1() for a vcpu where !vcpu_has_sve(vcpu). To avoid the code giving the impression that it is valid for these functions to be called in this situation, and to help the compiler make the right optimisation decisions, this patch adds WARN_ON() for these cases. Given the way the logic is spread out, this seems preferable to dropping the checks altogether. Suggested-by: Andrew Jones Signed-off-by: Dave Martin Reviewed-by: Andrew Jones Signed-off-by: Marc Zyngier commit 0323e027df13c9f23d399476787918ab7e70a52d Author: Dave Martin Date: Wed Apr 10 17:09:14 2019 +0100 KVM: arm: Make vcpu finalization stubs into inline functions The vcpu finalization stubs kvm_arm_vcpu_finalize() and kvm_arm_vcpu_is_finalized() are currently #defines for ARM, which limits the type-checking that the compiler can do at runtime. The only reason for them to be #defines was to avoid reliance on the definition of struct kvm_vcpu, which is not available here due to circular #include problems. However, because these are stubs containing no code, they don't need the definition of struct kvm_vcpu after all; only a declaration is needed (which is available already). So in the interests of cleanliness, this patch converts them to inline functions. No functional change. Suggested-by: Andrew Jones Signed-off-by: Dave Martin Reviewed-by: Andrew Jones Signed-off-by: Marc Zyngier commit a3be836df7cb777fa8ecbfd662224bfe0394f771 Author: Dave Martin Date: Fri Apr 12 15:30:58 2019 +0100 KVM: arm/arm64: Demote kvm_arm_init_arch_resources() to just set up SVE The introduction of kvm_arm_init_arch_resources() looks like premature factoring, since nothing else uses this hook yet and it is not clear what will use it in the future. For now, let's not pretend that this is a general thing: This patch simply renames the function to kvm_arm_init_sve(), retaining the arm stub version under the new name. Suggested-by: Andrew Jones Signed-off-by: Dave Martin Reviewed-by: Andrew Jones Signed-off-by: Marc Zyngier commit 624835abf9e26bf27e627fd54c2a2b36972b14f0 Author: Dave Martin Date: Thu Apr 11 16:53:18 2019 +0100 arm64/sve: Clarify vq map semantics Currently the meanings of sve_vq_map and the ancillary helpers __bit_to_vq() and __vq_to_bit() are not clearly explained. This patch makes the explanatory comment clearer, and removes the duplicate comment from fpsimd.h. The WARN_ON() currently present in __bit_to_vq() confuses the intended use of this helper. Since these are low-level helpers not intended for general-purpose use anyway, it is better not to make guesses about how these functions will be used: rather, this patch removes the WARN_ON() and relies on callers to use the helpers sensibly. Suggested-by: Andrew Jones Signed-off-by: Dave Martin Reviewed-by: Andrew Jones Signed-off-by: Marc Zyngier commit 6e0c67e34ffced703abb573d6266104b08bc95d4 Author: Chen-Yu Tsai Date: Tue Apr 16 14:40:24 2019 +0800 ARM: dts: sun8i: a83t: Enable USB OTG controller on some boards The Bananapi M3 and Cubietruck Plus both have USB OTG ports wired to the SoC and PMIC in the same way, with the N_VBUSEN pin on the PMIC controlling VBUS output, the PMIC's VBUS input for sensing VBUS, and PH11 on the SoC for sensing the ID pin. Enable OTG on both boards. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 6cb6cfd61ec55690497115b9c08d30ff3c40e74a Author: Quentin Schulz Date: Tue Apr 16 14:40:23 2019 +0800 ARM: dtsi: axp81x: add USB power supply node The AXP813/818 has a VBUS power input. Add a device node for it, now that we support it. Signed-off-by: Quentin Schulz [wens@csie.org: Add commit message] Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 711987bbad18e6d5fc5d8ff07c8991700e2ed1b6 Author: Brett Creeley Date: Thu Feb 28 15:25:47 2019 -0800 ice: Calculate ITR increment based on direct calculation Currently when calculating how much to increment ITR by inside of ice_update_itr() we do some estimations and intermediate calculations. Instead of doing estimations, just do the calculation directly. This allows for a more accurate value and it makes it easier for the next person to understand and update. Also, remove the dividing the ITR value by 2 when latency driven because the ITR values are already so low for 100Gbps speed. This should help get to the desired ITR value faster. Signed-off-by: Brett Creeley Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 9c010de7cf0a76f22fb38800816d34cf95ff9002 Author: Anirudh Venkataramanan Date: Thu Feb 28 15:24:32 2019 -0800 ice: Bump driver version Update driver version to 0.7.4 Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 3a257a1404f8bf751a258ab92262dcb2cce39eef Author: Anirudh Venkataramanan Date: Thu Feb 28 15:24:31 2019 -0800 ice: Add code to control FW LLDP and DCBX This patch adds code to start or stop LLDP and DCBX in firmware through use of ethtool private flags. Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit b832c2f63108a6c38b25c4bbc1d2aef582260970 Author: Anirudh Venkataramanan Date: Thu Feb 28 15:24:30 2019 -0800 ice: Add code for DCB rebuild This patch introduces a new function ice_dcb_rebuild which reinitializes DCB after a reset. Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 4b0fdceb81ba60a8caea1993f0951a91de7a6f52 Author: Anirudh Venkataramanan Date: Thu Feb 28 15:24:29 2019 -0800 ice: Add code to get DCB related statistics This patch adds a new function ice_update_dcb_stats to get DCB stats from the hardware and ethtool support for displaying these stats. Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 5f6aa50e4ece6b9464130d819a2caa75c783c603 Author: Anirudh Venkataramanan Date: Thu Feb 28 15:24:28 2019 -0800 ice: Add priority information into VLAN header This patch introduces a new function ice_tx_prepare_vlan_flags_dcb to insert 802.1p priority information into the VLAN header Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit a629cf0a018b8d80b65bfd2b7f0d209a52834315 Author: Anirudh Venkataramanan Date: Thu Feb 28 15:24:27 2019 -0800 ice: Update rings based on TC information This patch adds a new function ice_vsi_cfg_dcb_rings which updates a VSI's rings based on DCB traffic class information. Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 00cc3f1b3a3011b5fee9711244ffcec418b519f0 Author: Anirudh Venkataramanan Date: Thu Feb 28 15:24:26 2019 -0800 ice: Add code to process LLDP MIB change events This patch adds support to process LLDP MIB change notifications sent by the firmware. Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 0deab659a615a480a68ae17ad36a0f3c37c62e01 Author: Anirudh Venkataramanan Date: Thu Feb 28 15:24:25 2019 -0800 ice: Add code for DCB initialization part 4/4 When the firmware doesn't support LLDP or DCBX, the driver should switch to "software LLDP mode". This patch adds support for the same. Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 7b9ffc76bf5998aad8feaa26d9d3fcb65ec7a21b Author: Anirudh Venkataramanan Date: Thu Feb 28 15:24:24 2019 -0800 ice: Add code for DCB initialization part 3/4 This patch adds a new function ice_pf_dcb_cfg (and related helpers) which applies the DCB configuration obtained from the firmware. As part of this, VSIs/netdevs are updated with traffic class information. This patch requires a bit of a refactor of existing code. 1. For a MIB change event, the associated VSI is closed and brought up again. The gap between closing and opening the VSI can cause a race condition. Fix this by grabbing the rtnl_lock prior to closing the VSI and then only free it after re-opening the VSI during a MIB change event. 2. ice_sched_query_elem is used in ice_sched.c and with this patch, in ice_dcb.c as well. However, ice_dcb.c is not built when CONFIG_DCB is unset. This results in namespace warnings (ice_sched.o: Externally defined symbols with no external references) when CONFIG_DCB is unset. To avoid this move ice_sched_query_elem from ice_sched.c to ice_common.c. Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 0ebd3ff13ccad2940516ba522ca8d21cea4f56f6 Author: Anirudh Venkataramanan Date: Thu Feb 28 15:24:23 2019 -0800 ice: Add code for DCB initialization part 2/4 This patch introduces a new top level function ice_init_dcb (and related lower level helper functions) which continues the DCB init flow. This function uses ice_get_dcb_cfg to get, parse and store the DCB configuration. Once this is done, it sets itself up to be notified by the firmware on LLDP MIB change events. Reviewed-by: Bruce Allan Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 37b6f6469f75070e4fb2e32995eb858e79b8860a Author: Anirudh Venkataramanan Date: Thu Feb 28 15:24:22 2019 -0800 ice: Add code for DCB initialization part 1/4 This patch introduces a skeleton for ice_init_pf_dcb, the top level function for DCB initialization. Subsequent patches will add to this DCB init flow. In this patch, ice_init_pf_dcb checks if DCB is a supported capability. If so, an admin queue call to start the LLDP and DCBx in firmware is issued. If not, an error is reported. Note that we don't fail the driver init if DCB init fails. Reviewed-by: Bruce Allan Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 802abbb44a251a753ad56fcda1e35daf0138ab29 Author: Anirudh Venkataramanan Date: Tue Feb 19 15:04:14 2019 -0800 ice: Bump version Bump driver version to 0.7.3 Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit f9867df6d96593fe678a138230379cda78403429 Author: Anirudh Venkataramanan Date: Tue Feb 19 15:04:13 2019 -0800 ice: Fix incorrect use of abbreviations Capitalize abbreviations and spell out some that aren't obvious. Reviewed-by: Bruce Allan Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 94c4441b5a80f38d203432a4389d2dd349403ae5 Author: Anirudh Venkataramanan Date: Tue Feb 19 15:04:12 2019 -0800 ice: Fix typos in code comments This patch fixes typos in code comments. Reviewed-by: Bruce Allan Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 37e1677330bdc2e96e70f18701e589876f054c67 Author: Masayoshi Mizuma Date: Thu Apr 18 09:59:43 2019 -0400 ktest: introduce REBOOT_RETURN_CODE to confirm the result of REBOOT Unexpected power cycle occurs while the installation of the kernel. ssh root@Test sync ... [0 seconds] SUCCESS ssh root@Test reboot ... [1 second] FAILED! virsh destroy Test; sleep 5; virsh start Test ... [6 seconds] SUCCESS That is because REBOOT, the default is "ssh $SSH_USER@$MACHINE reboot", exits as 255 even if the reboot is successfully done, like as: ]# ssh root@Test reboot Connection to Test closed by remote host. ]# echo $? 255 ]# To avoid the unexpected power cycle, introduce a new parameter, REBOOT_RETURN_CODE to judge whether REBOOT is successfully done or not. Link: http://lkml.kernel.org/r/20190418135943.12640-1-msys.mizuma@gmail.com Signed-off-by: Masayoshi Mizuma Signed-off-by: Steven Rostedt (VMware) commit 7cc399f267813c2b25e04d7dfa0a3dbea6ece94c Author: Jagan Teki Date: Thu Apr 18 19:22:32 2019 +0530 arm64: dts: allwinner: a64-amarula-relic: Add OV5640 camera node Amarula A64-Relic board by default bound with OV5640 camera, so add support for it with below pin information. - PE13, PE12 via i2c-gpio bitbanging - CLK_CSI_MCLK as external clock - PE1 as external clock pin muxing - ALDO1 as AVDD supply - DLDO3 as DOVDD supply - ELDO3 as DVDD supply - PE14 gpio for reset pin - PE15 gpio for powerdown pin Signed-off-by: Jagan Teki Signed-off-by: Maxime Ripard commit f7056b28b7b5b17a732f9928ef7019bcd617a331 Author: Jagan Teki Date: Thu Apr 18 19:22:31 2019 +0530 arm64: dts: allwinner: a64: Add pinmux setting for CSI MCLK on PE1 Some camera modules have the SoC feeding a master clock to the sensor instead of having a standalone crystal. This clock signal is generated from the clock control unit and output from the CSI MCLK function of pin PE1. Add a pinmux setting for it for camera sensors to reference. Signed-off-by: Jagan Teki Signed-off-by: Maxime Ripard commit c8afd03486c26accdda4846e5561aa3f8e862a9d Author: Hans de Goede Date: Thu Apr 18 13:39:33 2019 +0200 ACPI / LPSS: Use acpi_lpss_* instead of acpi_subsys_* functions for hibernate Commit 48402cee6889 ("ACPI / LPSS: Resume BYT/CHT I2C controllers from resume_noirq") makes acpi_lpss_{suspend_late,resume_early}() bail early on BYT/CHT as resume_from_noirq is set. This means that on resume from hibernate dw_i2c_plat_resume() doesn't get called by the restore_early callback, acpi_lpss_resume_early(). Instead it should be called by the restore_noirq callback matching how things are done when resume_from_noirq is set and we are doing a regular resume. Change the restore_noirq callback to acpi_lpss_resume_noirq so that dw_i2c_plat_resume() gets properly called when resume_from_noirq is set and we are resuming from hibernate. Likewise also change the poweroff_noirq callback so that dw_i2c_plat_suspend gets called properly. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=202139 Fixes: 48402cee6889 ("ACPI / LPSS: Resume BYT/CHT I2C controllers from resume_noirq") Reported-by: Kai-Heng Feng Signed-off-by: Hans de Goede Cc: 4.20+ # 4.20+ Signed-off-by: Rafael J. Wysocki commit 0fcc2bdc8aff6e7feb3222930edb78b4b820cd3e Author: Sakari Ailus Date: Tue Apr 2 13:30:37 2019 +0300 device property: Add fwnode_graph_get_endpoint_by_id() fwnode_graph_get_endpoint_by_id() is intended for obtaining local endpoints by a given local port. fwnode_graph_get_endpoint_by_id() is slightly different from its OF counterpart, of_graph_get_endpoint_by_regs(): instead of using -1 as a value to indicate that a port or an endpoint number does not matter, it uses flags to look for equal or greater endpoint. The port number is always fixed. It also returns only remote endpoints that belong to an available device, a behaviour that can be turned off with a flag. Signed-off-by: Sakari Ailus [ rjw: Changelog ] Signed-off-by: Rafael J. Wysocki commit e757e7fa3a93afa54a1bf31953f458b0005e0910 Author: Yangtao Li Date: Tue Apr 16 12:23:05 2019 -0400 PM / Domains: remove unnecessary unlikely() WARN_ON() already contains an unlikely(), so it's not necessary to use unlikely. Signed-off-by: Yangtao Li Reviewed-by: Ulf Hansson Signed-off-by: Rafael J. Wysocki commit aa20236784ab3d0372591d6eca692956bca4ebfb Author: Tomeu Vizoso Date: Thu Apr 18 10:41:48 2019 +0200 drm/panfrost: Prevent concurrent resets If a job times out in slot 0 while a reset is performed because a job timed out in slot 1, the drm-sched core can get into a deadlock. Signed-off-by: Tomeu Vizoso Signed-off-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/20190418084305.45021-1-tomeu.vizoso@collabora.com commit db594ba3fcf9b2b84d71ffcc62a54b49c21427da Author: Steven Price Date: Wed Apr 17 16:29:28 2019 +0100 drm/panfrost: depend on !GENERIC_ATOMIC64 when using COMPILE_TEST Since panfrost has a 'select' on IOMMU_IO_PGTABLE_LPAE we must depend on the same set of flags. Otherwise IOMMU_IO_PGTABLE_LPAE will be forced on even though it cannot build (no support for cmpxchg64). This fixes the following warning from kconfig: WARNING: unmet direct dependencies detected for IOMMU_IO_PGTABLE_LPAE Depends on [n]: IOMMU_SUPPORT [=y] && (ARM || ARM64 || COMPILE_TEST [=y] && !GENERIC_ATOMIC64 [=y]) Selected by [y]: - DRM_PANFROST [=y] && HAS_IOMEM [=y] && DRM [=y] && (ARM || ARM64 || COMPILE_TEST [=y]) && MMU [=y] Reported-by: kbuild test robot Signed-off-by: Steven Price Signed-off-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/20190417152928.10790-1-steven.price@arm.com commit 82c810856955d83a840e84c5b03918a00060efb7 Author: Steven Price Date: Wed Apr 17 15:47:49 2019 +0100 drm/panfrost: Add missing include Fix sparse warnings: drivers/gpu/drm/panfrost/panfrost_devfreq.c:133:5: warning: symbol 'panfrost_devfreq_init' was not declared. Should it be static? drivers/gpu/drm/panfrost/panfrost_devfreq.c:168:6: warning: symbol 'panfrost_devfreq_resume' was not declared. Should it be static? drivers/gpu/drm/panfrost/panfrost_devfreq.c:182:6: warning: symbol 'panfrost_devfreq_suspend' was not declared. Should it be static? drivers/gpu/drm/panfrost/panfrost_devfreq.c:212:6: warning: symbol 'panfrost_devfreq_record_transition' was not declared. Should it be static? Signed-off-by: Steven Price Signed-off-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/7c9d75dd-ec67-4491-ca0c-79743211f308@arm.com commit f1bb4b6aeed414c65ee75dfd65d1859f1898be78 Author: YueHaibing Date: Tue Apr 16 23:00:51 2019 +0800 drm/panfrost: Make panfrost_gem_free_object() static Fix sparse warning: drivers/gpu/drm/panfrost/panfrost_gem.c:17:6: warning: symbol 'panfrost_gem_free_object' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing Reviewed-by: Steven Price Reviewed-by: Tomeu Vizoso Signed-off-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/20190416150051.34092-1-yuehaibing@huawei.com commit b779ceadf548b2fc13ce6694d9a480d6a4330b35 Author: Colin Ian King Date: Thu Apr 18 11:15:02 2019 +0100 char/ipmi: fix spelling mistake "receieved_messages" -> "received_messages" There is a spelling mistake in the documentation. Fix it. Signed-off-by: Colin Ian King Message-Id: <20190418101502.9748-1-colin.king@canonical.com> Reviewed-by: Mukesh Ojha Signed-off-by: Corey Minyard commit 67cb60e4efe7bd9d7a7afb8297f58afe25c28919 Author: Eric Biggers Date: Sun Apr 14 16:23:33 2019 -0700 crypto: shash - fix missed optimization in shash_ahash_digest() shash_ahash_digest(), which is the ->digest() method for ahash tfms that use an shash algorithm, has an optimization where crypto_shash_digest() is called if the data is in a single page. But an off-by-one error prevented this path from being taken unless the user happened to provide extra data in the scatterlist. Fix it. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 626ddb2fbe7931a2996bd7fe88bd1ffd5daf7143 Author: Eric Biggers Date: Fri Apr 12 22:33:12 2019 -0700 crypto: powerpc - convert to use crypto_simd_usable() Replace all calls to in_interrupt() in the PowerPC crypto code with !crypto_simd_usable(). This causes the crypto self-tests to test the no-SIMD code paths when CONFIG_CRYPTO_MANAGER_EXTRA_TESTS=y. The p8_ghash algorithm is currently failing and needs to be fixed, as it produces the wrong digest when no-SIMD updates are mixed with SIMD ones. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 0edf8593eb0985c88aa668b00befcdc1183d004d Author: Eric Biggers Date: Fri Apr 12 21:25:31 2019 -0700 crypto: cavium - remove bogus code handling cryptd The cavium crypto driver adds 'sizeof(struct ablkcipher_request)' to its request size because "the cryptd daemon uses this memory for request_ctx information". This is incorrect and unnecessary; cryptd doesn't require wrapped algorithms to reserve extra request space. So remove this. Also remove the unneeded memset() of the tfm context to 0. It's already zeroed on allocation. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 0a877e354a2c09435c8aea3fd2188cdef3c149f7 Author: Eric Biggers Date: Fri Apr 12 21:23:52 2019 -0700 crypto: cryptd - remove ability to instantiate ablkciphers Remove cryptd_alloc_ablkcipher() and the ability of cryptd to create algorithms with the deprecated "ablkcipher" type. This has been unused since commit 0e145b477dea ("crypto: ablk_helper - remove ablk_helper"). Instead, cryptd_alloc_skcipher() is used. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 8c3fffe3993b06dd1955a79bd2f0f3b143d259b3 Author: Sebastian Andrzej Siewior Date: Fri Apr 12 17:14:15 2019 +0200 crypto: scompress - initialize per-CPU variables on each CPU In commit 71052dcf4be70 ("crypto: scompress - Use per-CPU struct instead multiple variables") I accidentally initialized multiple times the memory on a random CPU. I should have initialize the memory on every CPU like it has been done earlier. I didn't notice this because the scheduler didn't move the task to another CPU. Guenter managed to do that and the code crashed as expected. Allocate / free per-CPU memory on each CPU. Fixes: 71052dcf4be70 ("crypto: scompress - Use per-CPU struct instead multiple variables") Reported-by: Guenter Roeck Signed-off-by: Sebastian Andrzej Siewior Tested-by: Guenter Roeck Signed-off-by: Herbert Xu commit f0cfd57b43fec65761ca61d3892b983a71515f23 Author: Zhang Zhijie Date: Fri Apr 12 17:16:33 2019 +0800 crypto: rockchip - update IV buffer to contain the next IV The Kernel Crypto API request output the next IV data to IV buffer for CBC implementation. So the last block data of ciphertext should be copid into assigned IV buffer. Reported-by: Eric Biggers Fixes: 433cd2c617bf ("crypto: rockchip - add crypto driver for rk3288") Cc: # v4.5+ Signed-off-by: Zhang Zhijie Signed-off-by: Herbert Xu commit c4741b23059794bd99beef0f700103b0d983b3fd Author: Eric Biggers Date: Thu Apr 11 21:57:42 2019 -0700 crypto: run initcalls for generic implementations earlier Use subsys_initcall for registration of all templates and generic algorithm implementations, rather than module_init. Then change cryptomgr to use arch_initcall, to place it before the subsys_initcalls. This is needed so that when both a generic and optimized implementation of an algorithm are built into the kernel (not loadable modules), the generic implementation is registered before the optimized one. Otherwise, the self-tests for the optimized implementation are unable to allocate the generic implementation for the new comparison fuzz tests. Note that on arm, a side effect of this change is that self-tests for generic implementations may run before the unaligned access handler has been installed. So, unaligned accesses will crash the kernel. This is arguably a good thing as it makes it easier to detect that type of bug. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 40153b10d91c9e25f912344ba6ce1f0874400659 Author: Eric Biggers Date: Thu Apr 11 21:57:41 2019 -0700 crypto: testmgr - fuzz AEADs against their generic implementation When the extra crypto self-tests are enabled, test each AEAD algorithm against its generic implementation when one is available. This involves: checking the algorithm properties for consistency, then randomly generating test vectors using the generic implementation and running them against the implementation under test. Both good and bad inputs are tested. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit d435e10e67be0a0df70502aee434cb62a9d65b10 Author: Eric Biggers Date: Thu Apr 11 21:57:40 2019 -0700 crypto: testmgr - fuzz skciphers against their generic implementation When the extra crypto self-tests are enabled, test each skcipher algorithm against its generic implementation when one is available. This involves: checking the algorithm properties for consistency, then randomly generating test vectors using the generic implementation and running them against the implementation under test. Both good and bad inputs are tested. This has already detected a bug in the skcipher_walk API, a bug in the LRW template, and an inconsistency in the cts implementations. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 9a8a6b3f0950c0df220b684b686c26a902cfcf1a Author: Eric Biggers Date: Thu Apr 11 21:57:39 2019 -0700 crypto: testmgr - fuzz hashes against their generic implementation When the extra crypto self-tests are enabled, test each hash algorithm against its generic implementation when one is available. This involves: checking the algorithm properties for consistency, then randomly generating test vectors using the generic implementation and running them against the implementation under test. Both good and bad inputs are tested. This has already detected a bug in the x86 implementation of poly1305, bugs in crct10dif, and an inconsistency in cbcmac. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit f2bb770ae89641be0e80b15f12c134689c770ca7 Author: Eric Biggers Date: Thu Apr 11 21:57:38 2019 -0700 crypto: testmgr - add helpers for fuzzing against generic implementation Add some helper functions in preparation for fuzz testing algorithms against their generic implementation. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 951d13328a8a366a3bc2f9321636ee09e6f61c99 Author: Eric Biggers Date: Thu Apr 11 21:57:37 2019 -0700 crypto: testmgr - identify test vectors by name rather than number In preparation for fuzz testing algorithms against their generic implementation, make error messages in testmgr identify test vectors by name rather than index. Built-in test vectors are simply "named" by their index in testmgr.h, as before. But (in later patches) generated test vectors will be given more descriptive names to help developers debug problems detected with them. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 5283a8ee9badf699bd4a5a622011f9d4d50fecde Author: Eric Biggers Date: Thu Apr 11 21:57:36 2019 -0700 crypto: testmgr - expand ability to test for errors Update testmgr to support testing for specific errors from setkey() and digest() for hashes; setkey() and encrypt()/decrypt() for skciphers and ciphers; and setkey(), setauthsize(), and encrypt()/decrypt() for AEADs. This is useful because algorithms usually restrict the lengths or format of the message, key, and/or authentication tag in some way. And bad inputs should be tested too, not just good inputs. As part of this change, remove the ambiguously-named 'fail' flag and replace it with 'setkey_error = -EINVAL' for the only test vector that used it -- the DES weak key test vector. Note that this tightens the test to require -EINVAL rather than any error code, but AFAICS this won't cause any test failure. Other than that, these new fields aren't set on any test vectors yet. Later patches will do so. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit be08f0c681a8469f2537f04de76e73a68c9c96e1 Author: Vitaly Chikunov Date: Thu Apr 11 18:51:22 2019 +0300 integrity: support EC-RDSA signatures for asymmetric_verify Allow to use EC-RDSA signatures for IMA by determining signature type by the hash algorithm name. This works good for EC-RDSA since Streebog and EC-RDSA should always be used together. Cc: Mimi Zohar Cc: Dmitry Kasatkin Cc: linux-integrity@vger.kernel.org Signed-off-by: Vitaly Chikunov Reviewed-by: Mimi Zohar Signed-off-by: Herbert Xu commit 32fbdbd32e1caafd7ae9b750e12fe8f2ea038add Author: Vitaly Chikunov Date: Thu Apr 11 18:51:21 2019 +0300 crypto: ecrdsa - add EC-RDSA test vectors to testmgr Add testmgr test vectors for EC-RDSA algorithm for every of five supported parameters (curves). Because there are no officially published test vectors for the curves, the vectors are generated by gost-engine. Signed-off-by: Vitaly Chikunov Signed-off-by: Herbert Xu commit 0d7a78643f6972214e99205b364e508f8ea9598e Author: Vitaly Chikunov Date: Thu Apr 11 18:51:20 2019 +0300 crypto: ecrdsa - add EC-RDSA (GOST 34.10) algorithm Add Elliptic Curve Russian Digital Signature Algorithm (GOST R 34.10-2012, RFC 7091, ISO/IEC 14888-3) is one of the Russian (and since 2018 the CIS countries) cryptographic standard algorithms (called GOST algorithms). Only signature verification is supported, with intent to be used in the IMA. Summary of the changes: * crypto/Kconfig: - EC-RDSA is added into Public-key cryptography section. * crypto/Makefile: - ecrdsa objects are added. * crypto/asymmetric_keys/x509_cert_parser.c: - Recognize EC-RDSA and Streebog OIDs. * include/linux/oid_registry.h: - EC-RDSA OIDs are added to the enum. Also, a two currently not implemented curve OIDs are added for possible extension later (to not change numbering and grouping). * crypto/ecc.c: - Kenneth MacKay copyright date is updated to 2014, because vli_mmod_slow, ecc_point_add, ecc_point_mult_shamir are based on his code from micro-ecc. - Functions needed for ecrdsa are EXPORT_SYMBOL'ed. - New functions: vli_is_negative - helper to determine sign of vli; vli_from_be64 - unpack big-endian array into vli (used for a signature); vli_from_le64 - unpack little-endian array into vli (used for a public key); vli_uadd, vli_usub - add/sub u64 value to/from vli (used for increment/decrement); mul_64_64 - optimized to use __int128 where appropriate, this speeds up point multiplication (and as a consequence signature verification) by the factor of 1.5-2; vli_umult - multiply vli by a small value (speeds up point multiplication by another factor of 1.5-2, depending on vli sizes); vli_mmod_special - module reduction for some form of Pseudo-Mersenne primes (used for the curves A); vli_mmod_special2 - module reduction for another form of Pseudo-Mersenne primes (used for the curves B); vli_mmod_barrett - module reduction using pre-computed value (used for the curve C); vli_mmod_slow - more general module reduction which is much slower (used when the modulus is subgroup order); vli_mod_mult_slow - modular multiplication; ecc_point_add - add two points; ecc_point_mult_shamir - add two points multiplied by scalars in one combined multiplication (this gives speed up by another factor 2 in compare to two separate multiplications). ecc_is_pubkey_valid_partial - additional samity check is added. - Updated vli_mmod_fast with non-strict heuristic to call optimal module reduction function depending on the prime value; - All computations for the previously defined (two NIST) curves should not unaffected. * crypto/ecc.h: - Newly exported functions are documented. * crypto/ecrdsa_defs.h - Five curves are defined. * crypto/ecrdsa.c: - Signature verification is implemented. * crypto/ecrdsa_params.asn1, crypto/ecrdsa_pub_key.asn1: - Templates for BER decoder for EC-RDSA parameters and public key. Cc: linux-integrity@vger.kernel.org Signed-off-by: Vitaly Chikunov Signed-off-by: Herbert Xu commit 4a2289dae0cdecd70d93dda610d059bec67551d3 Author: Vitaly Chikunov Date: Thu Apr 11 18:51:19 2019 +0300 crypto: ecc - make ecc into separate module ecc.c have algorithms that could be used togeter by ecdh and ecrdsa. Make it separate module. Add CRYPTO_ECC into Kconfig. EXPORT_SYMBOL and document to what seems appropriate. Move structs ecc_point and ecc_curve from ecc_curve_defs.h into ecc.h. No code changes. Signed-off-by: Vitaly Chikunov Signed-off-by: Herbert Xu commit 3d6228a5052bc059499a7d2c38a459337d74fc5c Author: Vitaly Chikunov Date: Thu Apr 11 18:51:18 2019 +0300 crypto: Kconfig - create Public-key cryptography section Group RSA, DH, and ECDH into Public-key cryptography config section. Signed-off-by: Vitaly Chikunov Signed-off-by: Herbert Xu commit f1774cb8956a35269f539efcee99fe7eda838b77 Author: Vitaly Chikunov Date: Thu Apr 11 18:51:17 2019 +0300 X.509: parse public key parameters from x509 for akcipher Some public key algorithms (like EC-DSA) keep in parameters field important data such as digest and curve OIDs (possibly more for different EC-DSA variants). Thus, just setting a public key (as for RSA) is not enough. Append parameters into the key stream for akcipher_set_{pub,priv}_key. Appended data is: (u32) algo OID, (u32) parameters length, parameters data. This does not affect current akcipher API nor RSA ciphers (they could ignore it). Idea of appending parameters to the key stream is by Herbert Xu. Cc: David Howells Cc: Denis Kenzior Cc: keyrings@vger.kernel.org Signed-off-by: Vitaly Chikunov Reviewed-by: Denis Kenzior Signed-off-by: Herbert Xu commit 83bc0299960477a4b99d9ad11b766d63c0dfaf60 Author: Vitaly Chikunov Date: Thu Apr 11 18:51:16 2019 +0300 KEYS: do not kmemdup digest in {public,tpm}_key_verify_signature Treat (struct public_key_signature)'s digest same as its signature (s). Since digest should be already in the kmalloc'd memory do not kmemdup digest value before calling {public,tpm}_key_verify_signature. Patch is split from the previous as suggested by Herbert Xu. Suggested-by: David Howells Cc: David Howells Cc: keyrings@vger.kernel.org Signed-off-by: Vitaly Chikunov Reviewed-by: Denis Kenzior Signed-off-by: Herbert Xu commit c7381b01287240abe942a081729203e26782d981 Author: Vitaly Chikunov Date: Thu Apr 11 18:51:15 2019 +0300 crypto: akcipher - new verify API for public key algorithms Previous akcipher .verify() just `decrypts' (using RSA encrypt which is using public key) signature to uncover message hash, which was then compared in upper level public_key_verify_signature() with the expected hash value, which itself was never passed into verify(). This approach was incompatible with EC-DSA family of algorithms, because, to verify a signature EC-DSA algorithm also needs a hash value as input; then it's used (together with a signature divided into halves `r||s') to produce a witness value, which is then compared with `r' to determine if the signature is correct. Thus, for EC-DSA, nor requirements of .verify() itself, nor its output expectations in public_key_verify_signature() wasn't sufficient. Make improved .verify() call which gets hash value as input and produce complete signature check without any output besides status. Now for the top level verification only crypto_akcipher_verify() needs to be called and its return value inspected. Make sure that `digest' is in kmalloc'd memory (in place of `output`) in {public,tpm}_key_verify_signature() as insisted by Herbert Xu, and will be changed in the following commit. Cc: David Howells Cc: keyrings@vger.kernel.org Signed-off-by: Vitaly Chikunov Reviewed-by: Denis Kenzior Signed-off-by: Herbert Xu commit 3ecc97259934489e7e03cbeb1d70f6a23cccb3ae Author: Vitaly Chikunov Date: Thu Apr 11 18:51:14 2019 +0300 crypto: rsa - unimplement sign/verify for raw RSA backends In preparation for new akcipher verify call remove sign/verify callbacks from RSA backends and make PKCS1 driver call encrypt/decrypt instead. This also complies with the well-known idea that raw RSA should never be used for sign/verify. It only should be used with proper padding scheme such as PKCS1 driver provides. Cc: Giovanni Cabiddu Cc: qat-linux@intel.com Cc: Tom Lendacky Cc: Gary Hook Cc: Horia Geantă Cc: Aymen Sghaier Signed-off-by: Vitaly Chikunov Reviewed-by: Horia Geantă Acked-by: Gary R Hook Signed-off-by: Herbert Xu commit 78a0324f4a5328088fea9426cfe1d1851276c475 Author: Vitaly Chikunov Date: Thu Apr 11 18:51:13 2019 +0300 crypto: akcipher - default implementations for request callbacks Because with the introduction of EC-RDSA and change in workings of RSA in regard to sign/verify, akcipher could have not all callbacks defined, check the presence of callbacks in crypto_register_akcipher() and provide default implementation if the callback is not implemented. This is suggested by Herbert Xu instead of checking the presence of the callback on every request. Signed-off-by: Vitaly Chikunov Signed-off-by: Herbert Xu commit 3c2bc636219fc0c2ea82c8f0d3fb0c9936cf5146 Author: Herbert Xu Date: Thu Apr 11 16:51:22 2019 +0800 crypto: ux500 - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. It also removes the registration of the non-standard des/des3 ablkcipher algorithms. Signed-off-by: Herbert Xu commit ef7c5c854859d25157aae950d8112c04eb9cc96d Author: Herbert Xu Date: Thu Apr 11 16:51:21 2019 +0800 crypto: talitos - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. Signed-off-by: Herbert Xu commit aee118139afa14398c92030d7d5f722b26281806 Author: Herbert Xu Date: Thu Apr 11 16:51:19 2019 +0800 crypto: sun4i-ss - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. Signed-off-by: Herbert Xu Acked-by: Corentin Labbe Tested-by: Corentin Labbe Signed-off-by: Herbert Xu commit beebb714e79c62704a62456371a8e02b487f7cff Author: Herbert Xu Date: Thu Apr 11 16:51:18 2019 +0800 crypto: stm32 - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. Signed-off-by: Herbert Xu Acked-by: Lionel Debieve Tested-by: Lionel Debieve Signed-off-by: Herbert Xu commit 1ad2267cb6202002f318103e12233fea7a60671a Author: Herbert Xu Date: Thu Apr 11 16:51:17 2019 +0800 crypto: rockchip - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. It also removes a couple of unnecessary key length checks that are already performed by the crypto API. Signed-off-by: Herbert Xu commit 5feaaae1b549f3511475f2583badaa6e015c17bc Author: Herbert Xu Date: Thu Apr 11 16:51:16 2019 +0800 crypto: qce - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. Signed-off-by: Herbert Xu commit aa113da291e430916ed423b71c4bb7ae193af928 Author: Herbert Xu Date: Thu Apr 11 16:51:15 2019 +0800 crypto: picoxcell - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. It also removes an unnecessary key length checks that are already performed by the crypto API. Signed-off-by: Herbert Xu commit 7f88c4d725b64d0e06993ee078eeecee9160004e Author: Herbert Xu Date: Thu Apr 11 16:51:14 2019 +0800 crypto: omap - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. It also removes a couple of unnecessary key length checks that are already performed by the crypto API. Signed-off-by: Herbert Xu commit e4fffa5f527a7e702b933f602847f9627afb65f8 Author: Herbert Xu Date: Thu Apr 11 16:51:13 2019 +0800 crypto: n2 - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. Signed-off-by: Herbert Xu commit cc4bd9f2f2d9d146fd624e6ef4bca236642e7a3f Author: Herbert Xu Date: Thu Apr 11 16:51:12 2019 +0800 crypto: marvell - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. Signed-off-by: Herbert Xu commit dba434a9c18945a5d8c545908f580e0063c8aca6 Author: Herbert Xu Date: Thu Apr 11 16:51:11 2019 +0800 crypto: ixp4xx - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. Signed-off-by: Herbert Xu commit 67ac62bf3d79e4346ab7480dccc333cb2721f901 Author: Herbert Xu Date: Thu Apr 11 16:51:10 2019 +0800 crypto: inside-secure - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. Signed-off-by: Herbert Xu commit 94fc2e0be0e687958e87f58cf8fdfbeafe33cfce Author: Herbert Xu Date: Thu Apr 11 16:51:08 2019 +0800 crypto: hisilicon - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. It also removes a couple of unnecessary key length checks that are already performed by the crypto API. Signed-off-by: Herbert Xu commit 270e21da4890afedddec48a626e1a07ff6595fc6 Author: Herbert Xu Date: Thu Apr 11 16:51:07 2019 +0800 crypto: hifn_795x - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. Signed-off-by: Herbert Xu commit 9fbfcefc9a41d3a481d0c1e484bb503c2cf86674 Author: Herbert Xu Date: Thu Apr 11 16:51:06 2019 +0800 crypto: ccree - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. Signed-off-by: Herbert Xu Acked-by: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit 76a329cdcb1f3f000b58c67829b00e17b6a9fa27 Author: Herbert Xu Date: Thu Apr 11 16:51:05 2019 +0800 crypto: ccp - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. Signed-off-by: Herbert Xu commit 19291691b02f320e1dc4ea15856d61244b4315da Author: Herbert Xu Date: Thu Apr 11 16:51:04 2019 +0800 crypto: nitrox - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. Signed-off-by: Herbert Xu commit 3b2de7247f45e1e6ffc617172afdbe047bb860c6 Author: Herbert Xu Date: Thu Apr 11 16:51:03 2019 +0800 crypto: cavium - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. Signed-off-by: Herbert Xu commit 1b52c40919e60cbc65af6b15ed5cdda0b3775f54 Author: Herbert Xu Date: Thu Apr 11 16:51:02 2019 +0800 crypto: caam - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. Signed-off-by: Herbert Xu Reviewed-by: Horia Geantă Tested-by: Iuliana Prodan Signed-off-by: Herbert Xu commit a66082441369339033841ba554ef41150bb900e2 Author: Herbert Xu Date: Thu Apr 11 16:51:01 2019 +0800 crypto: bcm - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. Signed-off-by: Herbert Xu commit 52ea3cd2917b3fb79ab4996e6355b9f49742b351 Author: Herbert Xu Date: Thu Apr 11 16:51:00 2019 +0800 crypto: atmel - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. This patch also removes the bogus CFB 3DES modes that only work with a short 3DES key not otherwise allowed by the crypto API. Signed-off-by: Herbert Xu commit eee25da50baaa32790dbe82d60754936ceb82042 Author: Herbert Xu Date: Thu Apr 11 16:50:58 2019 +0800 crypto: sparc - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. Signed-off-by: Herbert Xu commit 55902d8514483bd2c94f375b5259224520a1fd6b Author: Herbert Xu Date: Thu Apr 11 16:50:57 2019 +0800 crypto: s390 - Forbid 2-key 3DES in FIPS mode This patch forbids the use of 2-key 3DES (K1 == K3) in FIPS mode. Signed-off-by: Herbert Xu commit d7198ce46d10712b6fdd66e35237d7d0d51afcd6 Author: Herbert Xu Date: Thu Apr 11 16:50:56 2019 +0800 crypto: des_generic - Forbid 2-key in 3DES and add helpers This patch adds a requirement to the generic 3DES implementation such that 2-key 3DES (K1 == K3) is no longer allowed in FIPS mode. We will also provide helpers that may be used by drivers that implement 3DES to make the same check. Signed-off-by: Herbert Xu commit 694e0db6600c12f8172efb51cd4b4bbade958562 Author: Eric Biggers Date: Tue Apr 9 23:46:35 2019 -0700 crypto: vmx - return correct error code on failed setkey In the VMX implementations of AES and AES modes, return -EINVAL when an invalid key length is provided, rather than some unusual error code determined via a series of additions. This makes the behavior match the other AES implementations in the kernel's crypto API. Cc: Daniel Axtens Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 4a8108b70508df0b6c4ffa4a3974dab93dcbe851 Author: Eric Biggers Date: Tue Apr 9 23:46:32 2019 -0700 crypto: arm64/aes-neonbs - don't access already-freed walk.iv If the user-provided IV needs to be aligned to the algorithm's alignmask, then skcipher_walk_virt() copies the IV into a new aligned buffer walk.iv. But skcipher_walk_virt() can fail afterwards, and then if the caller unconditionally accesses walk.iv, it's a use-after-free. xts-aes-neonbs doesn't set an alignmask, so currently it isn't affected by this despite unconditionally accessing walk.iv. However this is more subtle than desired, and unconditionally accessing walk.iv has caused a real problem in other algorithms. Thus, update xts-aes-neonbs to start checking the return value of skcipher_walk_virt(). Fixes: 1abee99eafab ("crypto: arm64/aes - reimplement bit-sliced ARM/NEON implementation for arm64") Cc: # v4.11+ Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 767f015ea0b7ab9d60432ff6cd06b664fd71f50f Author: Eric Biggers Date: Tue Apr 9 23:46:31 2019 -0700 crypto: arm/aes-neonbs - don't access already-freed walk.iv If the user-provided IV needs to be aligned to the algorithm's alignmask, then skcipher_walk_virt() copies the IV into a new aligned buffer walk.iv. But skcipher_walk_virt() can fail afterwards, and then if the caller unconditionally accesses walk.iv, it's a use-after-free. arm32 xts-aes-neonbs doesn't set an alignmask, so currently it isn't affected by this despite unconditionally accessing walk.iv. However this is more subtle than desired, and it was actually broken prior to the alignmask being removed by commit cc477bf64573 ("crypto: arm/aes - replace bit-sliced OpenSSL NEON code"). Thus, update xts-aes-neonbs to start checking the return value of skcipher_walk_virt(). Fixes: e4e7f10bfc40 ("ARM: add support for bit sliced AES using NEON instructions") Cc: # v3.13+ Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit edaf28e996af69222b2cb40455dbb5459c2b875a Author: Eric Biggers Date: Tue Apr 9 23:46:30 2019 -0700 crypto: salsa20 - don't access already-freed walk.iv If the user-provided IV needs to be aligned to the algorithm's alignmask, then skcipher_walk_virt() copies the IV into a new aligned buffer walk.iv. But skcipher_walk_virt() can fail afterwards, and then if the caller unconditionally accesses walk.iv, it's a use-after-free. salsa20-generic doesn't set an alignmask, so currently it isn't affected by this despite unconditionally accessing walk.iv. However this is more subtle than desired, and it was actually broken prior to the alignmask being removed by commit b62b3db76f73 ("crypto: salsa20-generic - cleanup and convert to skcipher API"). Since salsa20-generic does not update the IV and does not need any IV alignment, update it to use req->iv instead of walk.iv. Fixes: 2407d60872dd ("[CRYPTO] salsa20: Salsa20 stream cipher") Cc: stable@vger.kernel.org Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit aec286cd36eacfd797e3d5dab8d5d23c15d1bb5e Author: Eric Biggers Date: Tue Apr 9 23:46:29 2019 -0700 crypto: lrw - don't access already-freed walk.iv If the user-provided IV needs to be aligned to the algorithm's alignmask, then skcipher_walk_virt() copies the IV into a new aligned buffer walk.iv. But skcipher_walk_virt() can fail afterwards, and then if the caller unconditionally accesses walk.iv, it's a use-after-free. Fix this in the LRW template by checking the return value of skcipher_walk_virt(). This bug was detected by my patches that improve testmgr to fuzz algorithms against their generic implementation. When the extra self-tests were run on a KASAN-enabled kernel, a KASAN use-after-free splat occured during lrw(aes) testing. Fixes: c778f96bf347 ("crypto: lrw - Optimize tweak computation") Cc: # v4.20+ Cc: Ondrej Mosnacek Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 11fe71f146ee652a30ffc3c204105c2d81a00d1c Author: YueHaibing Date: Wed Apr 10 02:47:42 2019 +0000 crypto: mxs-dcp - remove set but not used variable 'fini' Fixes gcc '-Wunused-but-set-variable' warning: drivers/crypto/mxs-dcp.c: In function 'dcp_chan_thread_sha': drivers/crypto/mxs-dcp.c:707:11: warning: variable 'fini' set but not used [-Wunused-but-set-variable] It's not used since commit d80771c08363 ("crypto: mxs-dcp - Fix wait logic on chan threads"),so can be removed. Signed-off-by: YueHaibing Signed-off-by: Herbert Xu commit 222f6b85674914a6af124a6856ee3d6b5d8dce6c Author: Joe Perches Date: Tue Apr 9 09:33:13 2019 -0700 crypto: sahara - Convert IS_ENABLED uses to __is_defined IS_ENABLED should be reserved for CONFIG_ uses so convert the uses of IS_ENABLED with a #define to __is_defined. Signed-off-by: Joe Perches Signed-off-by: Herbert Xu commit bbfcac5ff5f26aafa51935a62eb86b6eacfe8a49 Author: Vakul Garg Date: Tue Apr 9 06:38:08 2019 +0000 crypto: caam/jr - Remove extra memory barrier during job ring dequeue In function caam_jr_dequeue(), a full memory barrier is used before writing response job ring's register to signal removal of the completed job. Therefore for writing the register, we do not need another write memory barrier. Hence it is removed by replacing the call to wr_reg32() with a newly defined function wr_reg32_relaxed(). Signed-off-by: Vakul Garg Signed-off-by: Herbert Xu commit f5a2aeb8b254c764772729a6e48d4e0c914bb56a Author: Singh, Brijesh Date: Mon Apr 8 20:42:55 2019 +0000 crypto: ccp - Do not free psp_master when PLATFORM_INIT fails Currently, we free the psp_master if the PLATFORM_INIT fails during the SEV FW probe. If psp_master is freed then driver does not invoke the PSP FW. As per SEV FW spec, there are several commands (PLATFORM_RESET, PLATFORM_STATUS, GET_ID etc) which can be executed in the UNINIT state We should not free the psp_master when PLATFORM_INIT fails. Fixes: 200664d5237f ("crypto: ccp: Add SEV support") Cc: Tom Lendacky Cc: Herbert Xu Cc: Gary Hook Cc: stable@vger.kernel.org # 4.19.y Signed-off-by: Brijesh Singh Signed-off-by: Herbert Xu commit a88be9a7558ae51c3c0782bd5ab4340bb3822105 Author: Lionel Debieve Date: Mon Apr 8 09:41:58 2019 +0200 crypto: stm32/hash - Fix self test issue during export Change the wait condition to check if the hash is busy. Context can be saved as soon as hash has finishing processing data. Remove unused lock in the device structure. Signed-off-by: Lionel Debieve Signed-off-by: Herbert Xu commit 023912dbb80f5faf7a028aad6562774472d82a5a Author: Nicolin Chen Date: Wed Apr 17 16:12:10 2019 -0700 hwmon: (ina3221) Add voltage conversion time settings The CONFIG register has two 3-bit fields for conversion time settings of Bus-voltage and Shunt-voltage, respectively. The conversion settings, along with averaging mode, allow users to optimize available timing requirement. This patch adds an 'update_interval' sysfs node through the hwmon_chip_info of hwmon core. It reflects a total hardware conversion time: samples * channels * (Bus + Shunt conversion times) Though INA3221 supports different conversion time setups for Bus and Shunt voltages, this patch only adds the support of a unified setting for both conversion times, by dividing the conversion time into two equal values. Signed-off-by: Nicolin Chen [groeck: .rst related formatting changes in documentation] Signed-off-by: Guenter Roeck commit 521c0b6116ef60e4b96ba42dbf285b2ad69071d4 Author: Nicolin Chen Date: Wed Apr 17 16:12:09 2019 -0700 hwmon: (ina3221) Do not read-back to cache reg_config Reading back the CONFIG register increases an extra I2C transaction. This's not necessary and could be replaced with a local variable caching the register settings. So this patch replaces two readback regmap_read() calls with a tmp variable. Signed-off-by: Nicolin Chen Signed-off-by: Guenter Roeck commit 083c1b5e50b701899dc32445efa8b153685260d5 Author: Wesley Sheng Date: Mon Apr 15 22:41:42 2019 +0800 switchtec: Fix unintended mask of MRPC event When running application tool switchtec-user's `firmware update` and `event wait` commands concurrently, sometimes the firmware update speed reduced significantly. It is because when the MRPC event happened after MRPC event occurrence check but before the event mask loop reaches its header register in event ISR, the MRPC event would be masked unintentionally. Since there's no chance to enable it again except for a module reload, all the following MRPC execution completion checks time out. Fix this bug by skipping the mask operation for MRPC event in event ISR, same as what we already do for LINK event. Fixes: 52eabba5bcdb ("switchtec: Add IOCTLs to the Switchtec driver") Signed-off-by: Wesley Sheng Signed-off-by: Bjorn Helgaas Reviewed-by: Logan Gunthorpe commit b5250c9c14c139f467a935a4b7edfcf202772c52 Author: Larry Finger Date: Tue Apr 16 19:35:47 2019 -0500 rtlwifi: rtl8188ee: Remove extraneous file Somehow file drivers/net/wireless/realtek/rtlwifi/rtl8188ee/trx.c.rej was incorporated into the sources. Obviously, it can be removed. Signed-off-by: Larry Finger Reported-by: Andrew Morton Cc: Andrew Morton Signed-off-by: Kalle Valo commit 94e4dcc75a47253c75084524e15735585cd220a1 Merge: e53f31bffe1d 91df49e187c1 Author: Ingo Molnar Date: Thu Apr 18 14:42:24 2019 +0200 Merge branch 'for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu Pull RCU and LKMM commits from Paul E. McKenney: - An LKMM commit adding support for synchronize_srcu_expedited() - A couple of straggling RCU flavor consolidation updates - Documentation updates. - Miscellaneous fixes - SRCU updates - RCU CPU stall-warning updates - Torture-test updates Signed-off-by: Ingo Molnar commit 471ba0e686cb13752bc1ff3216c54b69a2d250ea Author: Nicholas Piggin Date: Tue Apr 9 19:34:03 2019 +1000 irq_work: Do not raise an IPI when queueing work on the local CPU The QEMU PowerPC/PSeries machine model was not expecting a self-IPI, and it may be a bit surprising thing to do, so have irq_work_queue_on do local queueing when target is the current CPU. Suggested-by: Steven Rostedt Reported-by: Sebastian Andrzej Siewior Tested-by: Sebastian Andrzej Siewior Signed-off-by: Nicholas Piggin Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Frederic Weisbecker Acked-by: Peter Zijlstra (Intel) Cc: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Cc: Linus Torvalds Cc: Paul Mackerras Cc: Peter Zijlstra Cc: Suraj Jitindar Singh Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190409093403.20994-1-npiggin@gmail.com [ Simplified the preprocessor comments. Fixed unbalanced curly brackets pointed out by Thomas. ] Signed-off-by: Ingo Molnar commit 76e1552466ff2da8b909df0fff3600ec1c27edcc Author: Arash Fotouhi Date: Fri Mar 22 19:28:32 2019 -0700 watchdog: Fix typo in comment Signed-off-by: Arash Fotouhi Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: loberman@redhat.com Cc: vincent.whitchurch@axis.com Link: http://lkml.kernel.org/r/1553308112-3513-1-git-send-email-arash@arashfotouhi.com Signed-off-by: Ingo Molnar commit 3771b0fe9dfc3801eac0142d1af6ba94dee83c6c Author: Arnd Bergmann Date: Mon Mar 25 13:57:57 2019 +0100 locking/lockdep: Avoid bogus Clang warning When lockdep is enabled, and -Wuninitialized warnings are enabled, Clang produces a silly warning for every file we compile: In file included from kernel/sched/fair.c:23: kernel/sched/sched.h:1094:15: error: variable 'cookie' is uninitialized when used here [-Werror,-Wuninitialized] rf->cookie = lockdep_pin_lock(&rq->lock); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/lockdep.h:474:60: note: expanded from macro 'lockdep_pin_lock' #define lockdep_pin_lock(l) ({ struct pin_cookie cookie; cookie; }) ^~~~~~ kernel/sched/sched.h:1094:15: note: variable 'cookie' is declared here include/linux/lockdep.h:474:34: note: expanded from macro 'lockdep_pin_lock' #define lockdep_pin_lock(l) ({ struct pin_cookie cookie; cookie; }) ^ As the 'struct pin_cookie' structure is empty in this configuration, there is no need to initialize it for correctness, but it also does not hurt to set it to an empty structure, so do that to avoid the warning. Signed-off-by: Arnd Bergmann Acked-by: Will Deacon Cc: Bart Van Assche Cc: Joel Fernandes (Google) Cc: Linus Torvalds Cc: Nathan Chancellor Cc: Nick Desaulniers Cc: Peter Zijlstra Cc: Steven Rostedt (VMware) Cc: Thomas Gleixner Cc: Waiman Long Cc: clang-built-linux@googlegroups.com Link: http://lkml.kernel.org/r/20190325125807.1437049-1-arnd@arndb.de Signed-off-by: Ingo Molnar commit 173aec2d5a9fa5f40e462661a8283fcafe04764f Author: Christian Borntraeger Date: Fri Dec 28 10:59:06 2018 +0100 KVM: s390: add enhanced sort facilty to cpu model This enables stfle.150 and adds the subfunctions for SORTL. Bit 150 is added to the list of facilities that will be enabled when there is no cpu model involved as sortl requires no additional handling from userspace, e.g. for migration. Please note that a cpu model enabled user space can and will have the final decision on the facility bits for a guests. Signed-off-by: Christian Borntraeger Reviewed-by: Collin Walling Reviewed-by: David Hildenbrand commit d668139718a9e2260702777bd8d86d71c30b6539 Author: Christian Borntraeger Date: Wed Feb 20 03:04:07 2019 -0500 KVM: s390: provide query function for instructions returning 32 byte Some of the new features have a 32byte response for the query function. Provide a new wrapper similar to __cpacf_query. We might want to factor this out if other users come up, as of today there is none. So let us keep the function within KVM. Signed-off-by: Christian Borntraeger Reviewed-by: Collin Walling Reviewed-by: David Hildenbrand commit 8808a7c65423cdd07ea12f9ecd812e56c7857421 Author: Peter Zijlstra Date: Tue Apr 9 13:59:03 2019 +0200 locking/lockdep: Generate LOCKF_ bit composites Instead of open-coding the bitmasks, generate them using the lockdep_states.h header. This prepares for additional states, which would make the manual masks tedious and error prone. Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Will Deacon Signed-off-by: Ingo Molnar commit 627f364d24c009b61c9199b2c75006e35c294675 Author: Frederic Weisbecker Date: Tue Apr 2 18:02:43 2019 +0200 locking/lockdep: Use expanded masks on find_usage_*() functions In order to optimize check_irq_usage() and factorize all the IRQ usage validations we'll need to be able to check multiple lock usage bits at once. Prepare the low level usage mask check functions for that purpose. Signed-off-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Will Deacon Link: https://lkml.kernel.org/r/20190402160244.32434-4-frederic@kernel.org Signed-off-by: Ingo Molnar commit c902a1e8d9c9b47cd8faa16892710247cdda9b02 Author: Frederic Weisbecker Date: Tue Apr 2 18:02:42 2019 +0200 locking/lockdep: Map remaining magic numbers to lock usage mask names Clarify the code with mapping some more constant numbers that haven't been named after their corresponding LOCK_USAGE_* symbol. Signed-off-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Will Deacon Link: https://lkml.kernel.org/r/20190402160244.32434-3-frederic@kernel.org Signed-off-by: Ingo Molnar commit 0d2cc3b3453254f1c56f9456ba03e092ed4cfb72 Author: Frederic Weisbecker Date: Tue Apr 2 18:02:41 2019 +0200 locking/lockdep: Move valid_state() inside CONFIG_TRACE_IRQFLAGS && CONFIG_PROVE_LOCKING valid_state() and print_usage_bug*() functions are not used beyond irq locking correctness checks under CONFIG_TRACE_IRQFLAGS && CONFIG_PROVE_LOCKING. Sadly the "unused function" warning wouldn't fire because valid_state() is inline so the unused case has remained unseen until now. So move them inside the appropriate CONFIG_TRACE_IRQFLAGS && CONFIG_PROVE_LOCKING section. Signed-off-by: Frederic Weisbecker Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Will Deacon Link: https://lkml.kernel.org/r/20190402160244.32434-2-frederic@kernel.org Signed-off-by: Ingo Molnar commit 67a8d5b0fadfd931f7e6a78e9ee7b2792a7114aa Author: Edward Cragg Date: Fri Mar 8 11:21:55 2019 +0000 memory: tegra: Fix a typos for "fdcdwr2" mc client Fix typo for fdcwr2 to fdcdwr2 to match the TRM. Signed-off-by: Edward Cragg Signed-off-by: Kejia Hu Acked-by: Jon Hunter Reviewed-by: Dmitry Osipenko Signed-off-by: Thierry Reding commit 61b51fb51c01a519a249d28ec55c6513a13be5a3 Author: Dmitry Osipenko Date: Thu Mar 7 01:55:19 2019 +0300 drm/tegra: gem: Fix CPU-cache maintenance for BO's allocated using get_pages() The allocated pages need to be invalidated in CPU caches. On ARM32 the DMA_BIDIRECTIONAL flag only ensures that data is written-back to DRAM and the data stays in CPU cache lines. While the DMA_FROM_DEVICE flag ensures that the corresponding CPU cache lines are getting invalidated and nothing more, that's exactly what is needed for a newly allocated pages. This fixes randomly failing rendercheck tests on Tegra30 using the Opentegra driver for tests that use small-sized pixmaps (10x10 and less, i.e. 1-2 memory pages) because apparently CPU reads out stale data from caches and/or that data is getting evicted to DRAM at the time of HW job execution. Fixes: bd43c9f0fa1f ("drm/tegra: gem: Map pages via the DMA API") Cc: stable Signed-off-by: Dmitry Osipenko Signed-off-by: Thierry Reding commit 1078946b4b2e44ffe924b0261afddbb38ff7d2c2 Author: Dmitry Osipenko Date: Fri Apr 12 01:30:42 2019 +0300 ARM: tegra: Add ACTMON support on Tegra30 Add support for ACTMON on Tegra30. This is used to monitor activity from different components. Based on the collected statistics, the rate at which the external memory needs to be clocked can be derived. Signed-off-by: Dmitry Osipenko Signed-off-by: Thierry Reding commit a359de1b4055b2e9c0e8d650b099fcb5ceca25fe Author: Dmitry Osipenko Date: Fri Apr 12 01:12:50 2019 +0300 Revert "ARM: tegra: Restore memory arbitration on resume from LP1 on Tegra30+" Turned out that the actual bug was in the Memory Controller driver that programmed shadowed registers without latching the new values and then there was a bug on EMEM arbitration configuration calculation that results in a wrong value being latched on resume from suspend. The Memory Controller has been fixed properly now, hence the workaround patch could be reverted safely. Signed-off-by: Dmitry Osipenko Signed-off-by: Thierry Reding commit 48791f972234301a72e4c40745d0abafa0985d2d Author: Dmitry Osipenko Date: Fri Apr 12 01:12:49 2019 +0300 memory: tegra: Replace readl-writel with mc_readl-mc_writel There is no need for a memory barriers on reading/writing of register values as we only care about the read/write order, hence let's use the common helpers. Signed-off-by: Dmitry Osipenko Signed-off-by: Thierry Reding commit b906c056b6023c390f18347169071193fda57dde Author: Dmitry Osipenko Date: Fri Apr 12 01:12:48 2019 +0300 memory: tegra: Fix integer overflow on tick value calculation Multiplying the Memory Controller clock rate by the tick count results in an integer overflow and in result the truncated tick value is being programmed into hardware, such that the GR3D memory client performance is reduced by two times. Cc: stable Signed-off-by: Dmitry Osipenko Signed-off-by: Thierry Reding commit 76b959a44c0b9c60cd41627cecb022c78042ad74 Author: Dmitry Osipenko Date: Fri Apr 12 01:12:47 2019 +0300 memory: tegra: Fix missed registers values latching Some of Memory Controller registers are shadowed and require latching in order to copy assembly state into the active, MC_EMEM_ARB_CFG is one of these registers. Signed-off-by: Dmitry Osipenko Signed-off-by: Thierry Reding commit 36841ba2796324507452f9854bf08b2c65836cce Author: Dmitry Osipenko Date: Sun Feb 24 18:21:14 2019 +0300 ARM: tegra: cpuidle: Handle tick broadcasting within cpuidle core on Tegra20/30 Tegra20/30 drivers do not handle the tick_broadcast_enter() error which potentially could happen when CPU timer isn't permitted to be stopped. Let's just move out the broadcasting to the CPUIDLE core by setting the respective flag in the Tegra20/30 drivers. This patch doesn't fix any problem because currently tick_broadcast_enter() could fail only on ARM64, so consider this change as a minor cleanup. Signed-off-by: Dmitry Osipenko Signed-off-by: Thierry Reding commit 5c14068f87d04adc73ba3f41c2a303d3c3d1fa12 Author: Josh Poimboeuf Date: Wed Apr 17 16:39:02 2019 -0500 x86/speculation/mds: Add 'mitigations=' support for MDS Add MDS to the new 'mitigations=' cmdline option. Signed-off-by: Josh Poimboeuf Signed-off-by: Thomas Gleixner commit c60fed1dfd4472bc8ac31b20c833c0ef3e049511 Author: Tudor Ambarus Date: Mon Apr 15 10:57:42 2019 +0200 ARM: at91: sama5: make ov2640 as a module OV2640 is a detachable camera that we use to test the Image Sensor Interface. Make it as a module, it will reduce the kernel image size. Signed-off-by: Tudor Ambarus Signed-off-by: Ludovic Desroches commit b8f9d7f37b6af829c34c49d1a4f73ce6ed58e403 Author: Vicente Bergas Date: Tue Apr 2 13:37:53 2019 +0200 drm/rockchip: shutdown drm subsystem on shutdown As explained by Robin Murphy: > the IOMMU shutdown disables paging, so if the VOP is still > scanning out then that will result in whatever IOVAs it was using now going > straight out onto the bus as physical addresses. We had a more radical approach before in commit 7f3ef5dedb14 ("drm/rockchip: Allow driver to be shutdown on reboot/kexec") but that resulted in new warnings and oopses on shutdown on rk3399 chromeos devices. So second try is resurrecting Vicentes shutdown change which should achieve the same result but in a less drastic way. Fixes: 63238173b2fa ("Revert "drm/rockchip: Allow driver to be shutdown on reboot/kexec"") Cc: Jeffy Chen Cc: Robin Murphy Cc: Marc Zyngier Cc: Brian Norris Cc: Doug Anderson Cc: stable@vger.kernel.org Suggested-by: JeffyChen Suggested-by: Robin Murphy Signed-off-by: Vicente Bergas [adapted commit message to explain the history] Signed-off-by: Heiko Stuebner Tested-by: Brian Norris Tested-by: Douglas Anderson Acked-by: Marc Zyngier Link: https://patchwork.freedesktop.org/patch/msgid/20190402113753.10118-1-heiko@sntech.de commit c4630d6ae6e33b76fedde5c15bdfc7fa579eac32 Author: Mika Westerberg Date: Mon Jan 21 16:41:27 2019 +0300 thunderbolt: Start firmware on Titan Ridge Apple systems Titan Ridge flow to start the firmware is the same as Alpine Ridge so we can do the same on Titan Ridge based Apple systems. Signed-off-by: Mika Westerberg commit 6755156abc8886f4d1c22e4e5a281f4b9768db7d Author: Mika Westerberg Date: Wed Mar 6 19:33:23 2019 +0200 thunderbolt: Reword output of tb_dump_hop() While tb_dump_hop() prints out necessary information it is in format that is quite hard to read from the logs especially when one needs to follow the path to see that the setup is correct. Signed-off-by: Mika Westerberg commit 62efe699a7f666b48e1d41511147017e13e8d230 Author: Mika Westerberg Date: Mon Sep 17 16:32:13 2018 +0300 thunderbolt: Make rest of the logging to happen at debug level Now that the driver can handle every possible tunnel types there is no point to log everything as info level so turn these to happen at debug level instead. While at it remove duplicated tunnel activation log message (tb_tunnel_activate() calls tb_tunnel_restart() which print the same message) and add one missing '\n' termination. Signed-off-by: Mika Westerberg commit b323a98f9b9b3e345e325dbfdb515900c61df312 Author: Mika Westerberg Date: Wed Mar 6 19:23:38 2019 +0200 thunderbolt: Make __TB_[SW|PORT]_PRINT take const parameters The printing macros do not modify the passed object so make them const. While there make tb_route() to take const parameter as well. Signed-off-by: Mika Westerberg commit 7ea4cd6b2010eecccf37ac3953ac8ecd3688300f Author: Mika Westerberg Date: Fri Sep 28 16:41:01 2018 +0300 thunderbolt: Add support for XDomain connections Two domains (hosts) can be connected through a Thunderbolt cable and in that case they can start software services such as networking over the high-speed DMA paths. Now that we have all the basic building blocks in place to create DMA tunnels over the Thunderbolt fabric we can add this support to the software connection manager as well. Signed-off-by: Mika Westerberg commit 444ac3844895c34ab71ffcec1b3199449d3434a4 Author: Mika Westerberg Date: Sun Dec 30 12:17:52 2018 +0200 thunderbolt: Make tb_switch_alloc() return ERR_PTR() In order to detect possible connections to other domains we need to be able to find out why tb_switch_alloc() fails so make it return ERR_PTR() instead. This allows the caller to differentiate between errors such as -ENOMEM which comes from the kernel and for instance -EIO which comes from the hardware when trying to access the possible switch. Convert all the current call sites to handle this properly. Signed-off-by: Mika Westerberg commit 44242d6c9703208e7e7abd6b4dbb258a930dd01a Author: Mika Westerberg Date: Fri Sep 28 16:35:32 2018 +0300 thunderbolt: Add support for DMA tunnels In addition to PCIe and Display Port tunnels it is also possible to create tunnels that forward DMA traffic from the host interface adapter (NHI) to a NULL port that is connected to another domain through a Thunderbolt cable. These tunnels can be used to carry software messages such as networking packets. To support this we introduce another tunnel type (TB_TUNNEL_DMA) that supports paths from NHI to NULL port and back. Signed-off-by: Mika Westerberg commit 3b4b3235ca5bf1b69ff15a269d9881b2604dd4fa Author: Mika Westerberg Date: Fri Sep 28 16:30:16 2018 +0300 thunderbolt: Add XDomain UUID exchange support Currently ICM has been handling XDomain UUID exchange so there was no need to have it in the driver yet. However, since now we are going to add the same capabilities to the software connection manager it needs to be handled properly. For this reason modify the driver XDomain protocol handling so that if the remote domain UUID is not filled in the core will query it first and only then start the normal property exchange flow. Signed-off-by: Mika Westerberg commit 559c1e1e013437bf190469efbcbd8bc803285853 Author: Mika Westerberg Date: Mon Oct 22 14:47:01 2018 +0300 thunderbolt: Run tb_xdp_handle_request() in system workqueue We run all XDomain requests during discovery in tb->wq and since it only runs one work at the time it means that sending back reply to the other domain may be delayed too much depending whether there is an active XDomain discovery request running. To make sure we can send reply to the other domain as soon as possible run tb_xdp_handle_request() in system workqueue instead. Since the device can be hot-removed in the middle we need to make sure the domain structure is still around when the function is run so increase reference count before we schedule the reply work. Signed-off-by: Mika Westerberg commit ab9f31cfa89ad700f83bfaf30dc8703c4f609d0f Author: Mika Westerberg Date: Wed Mar 6 18:21:08 2019 +0200 thunderbolt: Do not tear down tunnels when driver is unloaded Now that we have capability to discover existing tunnels during driver load there is no point tearing down tunnels when the driver gets unloaded. Instead we can just leave them running. If user disconnects devices while there is no Thunderbolt driver loaded, tunneled protocol hotplug happens and is handled by the corresponding driver (pciehp in case of PCIe tunnel, GFX driver in case of DP tunnel). Signed-off-by: Mika Westerberg commit 4f807e47ee9a75747d042a8eacf398f436da9452 Author: Mika Westerberg Date: Mon Sep 17 16:30:49 2018 +0300 thunderbolt: Add support for Display Port tunnels Display Port tunnels are somewhat more complex than PCIe tunnels as it requires 3 tunnels (AUX Rx/Tx and Video). In addition we are not supposed to create the tunnels immediately when a DP OUT is enumerated. Instead we need to wait until we get hotplug event to that adapter port or check if the port has HPD set before tunnels can be established. This adds Display Port tunneling support to the software connection manager. Signed-off-by: Mika Westerberg commit c5ee6feb34709da96f9909b8a2e1e42875020efb Author: Mika Westerberg Date: Thu Oct 11 11:38:22 2018 +0300 thunderbolt: Rework NFC credits handling NFC (non flow control) credits is actually 20-bit field so update tb_port_add_nfc_credits() to handle this properly. This allows us to set NFC credits for Display Port path in subsequent patches. Also make sure the function does not update the hardware if the underlying switch is already unplugged. Signed-off-by: Mika Westerberg commit e78db6f08b6a2a50eea9ed4146f019026491d63c Author: Mika Westerberg Date: Thu Oct 12 16:45:50 2017 +0300 thunderbolt: Generalize port finding routines to support all port types We will be needing these routines to find Display Port adapters as well so modify them to take port type as the second parameter. Signed-off-by: Mika Westerberg commit 344e06430a72347b554a7fd98f3a961084f37be6 Author: Mika Westerberg Date: Wed Oct 11 17:19:54 2017 +0300 thunderbolt: Scan only valid NULL adapter ports in hotplug The only way to expand Thunderbolt topology is through the NULL adapter ports (typically ports 1, 2, 3 and 4). There is no point handling Thunderbolt hotplug events on any other port. Add a helper function (tb_port_is_null()) that can be used to determine if the port is NULL port, and use it in software connection manager code when hotplug event is handled. Signed-off-by: Mika Westerberg commit 99cabbb006f1eb509e8bbc88c020c806017ed582 Author: Mika Westerberg Date: Sun Dec 30 21:34:08 2018 +0200 thunderbolt: Add support for full PCIe daisy chains Currently the software connection manager (tb.c) has only supported creating a single PCIe tunnel, no PCIe device daisy chaining has been supported so far. This updates the software connection manager so that it now can create PCIe tunnels for full chain of six devices. Because PCIe allows DMA and opens possibility for DMA attacks we change security level to "user" meaning that PCIe tunneling requires that the userspace authorizes the devices first. This makes it possible to block PCIe tunneling completely while still allowing other types of tunnels to be automatically created. Signed-off-by: Mika Westerberg commit 0414bec5f39a3c73fa56474b1bcd899101c2727d Author: Mika Westerberg Date: Sun Feb 19 23:43:26 2017 +0200 thunderbolt: Discover preboot PCIe paths the boot firmware established In Apple Macs the boot firmware (EFI) connects all devices automatically when the system is started, before it hands over to the OS. Instead of ignoring we discover all those PCIe tunnels and record them using our internal structures, just like we do when a device is connected after the OS is already up. By doing this we can properly tear down tunnels when devices are disconnected. Also this allows us to resume the existing tunnels after system suspend/resume cycle. Signed-off-by: Mika Westerberg commit aae9e27f3b72ed58d6b87c8f511e7812601a93c5 Author: Mika Westerberg Date: Sun Feb 19 23:37:35 2017 +0200 thunderbolt: Deactivate all paths before restarting them State of the connected devices and tunnel configuration is not known during resume. For example some paths may not be complete anymore if the user has unplugged the related devices. So instead of marking all paths as inactive we go ahead and deactivate them explicitly before we restart them. Signed-off-by: Mika Westerberg commit 8c7acaaf020fe54baf2eccc5e1071341754d22be Author: Mika Westerberg Date: Sun Feb 19 22:11:41 2017 +0200 thunderbolt: Extend tunnel creation to more than 2 adjacent switches Now that we can allocate hop IDs per port on a path, we can take advantage of this and create tunnels covering longer paths than just between two adjacent switches. PCIe actually does not need this as it is typically a daisy chain between two adjacent switches but this way we do not need to hard-code creation of the tunnel. While there add name to struct tb_path to make debugging easier, and update kernel-doc comments. Signed-off-by: Mika Westerberg commit fb19fac1d734504073fee64e9f9b28ccd41ab350 Author: Mika Westerberg Date: Sun Feb 19 21:51:30 2017 +0200 thunderbolt: Add helper function to iterate from one port to another We need to be able to walk from one port to another when we are creating paths where there are multiple switches between two ports. For this reason introduce a new function tb_next_port_on_path(). Signed-off-by: Mika Westerberg Reviewed-by: Lukas Wunner commit dfe40ca486f60dca1e3223d82acf78cfb39925b8 Author: Mika Westerberg Date: Thu Mar 7 15:26:45 2019 +0200 thunderbolt: Assign remote for both ports in case of dual link Currently the driver only assigns remote port for the primary port if in case of dual link. This makes things such as walking from one port to another more complex than necessary because the code needs to change from secondary to primary port if the path that is established is created using secondary links. In order to always assign both remote pointers we need to prevent the scanning code from following the secondary link. Failing to do that might cause problems as the same switch may be enumerated twice (or removed in case of unplug). Handle that properly by introducing a new function tb_port_has_remote() that returns true only for the primary port. We also update tb_is_upstream_port() to support both dual link ports, make it take const port pointer and move it below tb_upstream_port() to keep similar functions close. Signed-off-by: Mika Westerberg commit 0b2863ac3cfdea2e0e27f9e722d178efb367e4db Author: Mika Westerberg Date: Sun Feb 19 16:57:27 2017 +0200 thunderbolt: Add functions for allocating and releasing HopIDs Each port has a separate path configuration space that is used for finding the next hop (switch) in the path. HopID is an index to this configuration space. HopIDs 0 - 7 are reserved by the protocol. In order to get next available HopID for each direction we provide two pairs of helper functions that can be used to allocate and release HopIDs for a given port. While there remove obsolete TODO comment. Signed-off-by: Mika Westerberg commit 93f36ade5b7b82a842a3d6284b8cdb68adb93e85 Author: Mika Westerberg Date: Sun Feb 19 13:48:29 2017 +0200 thunderbolt: Generalize tunnel creation functionality To be able to tunnel non-PCIe traffic, separate tunnel functionality into generic and PCIe specific parts. Rename struct tb_pci_tunnel to tb_tunnel, and make it hold an array of paths instead of just two. Update all the tunneling functions to take this structure as parameter. We also move tb_pci_port_active() to switch.c (and rename it) where we will be keeping all port and switch related functions. Signed-off-by: Mika Westerberg commit 1752b9f78713c7a188495319ebafbe7868718962 Author: Mika Westerberg Date: Sun Feb 19 10:58:35 2017 +0200 thunderbolt: Rename tunnel_pci to tunnel In order to tunnel non-PCIe traffic as well rename tunnel_pci.[ch] to tunnel.[ch] to reflect this fact. No functional changes. Signed-off-by: Mika Westerberg commit 56183c88f368eef7134c32df826792ee140f2864 Author: Mika Westerberg Date: Sun Feb 19 10:39:34 2017 +0200 thunderbolt: Cache adapter specific capability offset into struct port The adapter specific capability either is there or not if the port does not hold an adapter. Instead of always finding it on-demand we read the offset just once when the port is initialized. While there we update the struct port documentation to follow kernel-doc format. Signed-off-by: Mika Westerberg commit 4944269305df09c719f9c406c20c255f1724542a Author: Mika Westerberg Date: Fri Feb 17 17:05:37 2017 +0200 thunderbolt: Properly disable path We need to wait until all buffers have been drained before the path can be considered disabled. Do this for every hop in a path. This adds another bit field to struct tb_regs_hop even if we are trying to get rid of them but we can clean them up another day. Signed-off-by: Mika Westerberg commit 5480dfc275aa7e5f892505ce082d71635d6a22f8 Author: Mika Westerberg Date: Wed Jan 9 17:25:43 2019 +0200 thunderbolt: Set sleep bit when suspending switch Thunderbolt 2 devices and beyond link controller needs to be notified when a switch is going to be suspended by setting bit 31 in LC_SX_CTRL register. Add this functionality to the software connection manager. Signed-off-by: Mika Westerberg commit e879a709de0210802ba14243a168d632cb7ab527 Author: Mika Westerberg Date: Thu Oct 11 12:33:08 2018 +0300 thunderbolt: Configure lanes when switch is initialized Thunderbolt 2 devices and beyond need to have additional bits set in link controller specific registers. This includes two bits in LC_SX_CTRL that tell the link controller which lane is connected and whether it is upstream facing or not. Signed-off-by: Mika Westerberg commit a9be55824a10653d0247de12dc6b9a741ce3fc98 Author: Mika Westerberg Date: Wed Jan 9 16:42:12 2019 +0200 thunderbolt: Move LC specific functionality into a separate file We will be adding more link controller functionality in subsequent patches and it does not make sense to keep all that in switch.c, so separate LC functionality into its own file. Signed-off-by: Mika Westerberg commit ffd003b2f8cba8dde0f7259e2207d63f75691096 Author: Mika Westerberg Date: Tue Jan 8 19:08:06 2019 +0200 thunderbolt: Add dummy read after port capability list walk on Light Ridge Light Ridge has an issue where reading the next capability pointer location in port config space the read data is not cleared. It is fine to read capabilities each after another so only thing we need to do is to make sure we issue dummy read after tb_port_find_cap() is finished to avoid the issue in next read. Signed-off-by: Mika Westerberg commit 8b0110d9d10d211fc8a0e2cbb2db4533af30d36e Author: Mika Westerberg Date: Tue Jan 8 18:55:09 2019 +0200 thunderbolt: Enable TMU access when accessing port space on legacy devices Light Ridge and Eagle Ridge both need to have TMU access enabled before port space can be fully accessed so make sure it happens on those. This allows us to get rid of the offset quirk in tb_port_find_cap(). Signed-off-by: Mika Westerberg commit f0342e757c271e7c6dd5adedfb6e6695c5af52bf Author: Mika Westerberg Date: Sun Dec 30 12:14:46 2018 +0200 thunderbolt: Do not allocate switch if depth is greater than 6 Maximum depth in Thunderbolt topology is 6 so make sure it is not possible to allocate switches that exceed the depth limit. While at it update tb_switch_alloc() to use upper/lower_32_bits() following tb_switch_alloc_safe_mode(). Signed-off-by: Mika Westerberg commit 09f11b6c99feaf86a26444bca85dc693b3f58f8b Author: Mika Westerberg Date: Tue Mar 19 16:48:41 2019 +0200 thunderbolt: Take domain lock in switch sysfs attribute callbacks switch_lock was introduced because it allowed serialization of device authorization requests from userspace without need to take the big domain lock (tb->lock). This was fine because device authorization with ICM is just one command that is sent to the firmware. Now that we start to handle all tunneling in the driver switch_lock is not enough because we need to walk over the topology to establish paths. For this reason drop switch_lock from the driver completely in favour of big domain lock. There is one complication, though. If userspace is waiting for the lock in tb_switch_set_authorized(), it keeps the device_del() from removing the sysfs attribute because it waits for active users to release the attribute first which leads into following splat: INFO: task kworker/u8:3:73 blocked for more than 61 seconds. Tainted: G W 5.1.0-rc1+ #244 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. kworker/u8:3 D12976 73 2 0x80000000 Workqueue: thunderbolt0 tb_handle_hotplug [thunderbolt] Call Trace: ? __schedule+0x2e5/0x740 ? _raw_spin_lock_irqsave+0x12/0x40 ? prepare_to_wait_event+0xc5/0x160 schedule+0x2d/0x80 __kernfs_remove.part.17+0x183/0x1f0 ? finish_wait+0x80/0x80 kernfs_remove_by_name_ns+0x4a/0x90 remove_files.isra.1+0x2b/0x60 sysfs_remove_group+0x38/0x80 sysfs_remove_groups+0x24/0x40 device_remove_attrs+0x3d/0x70 device_del+0x14c/0x360 device_unregister+0x15/0x50 tb_switch_remove+0x9e/0x1d0 [thunderbolt] tb_handle_hotplug+0x119/0x5a0 [thunderbolt] ? process_one_work+0x1b7/0x420 process_one_work+0x1b7/0x420 worker_thread+0x37/0x380 ? _raw_spin_unlock_irqrestore+0xf/0x30 ? process_one_work+0x420/0x420 kthread+0x118/0x130 ? kthread_create_on_node+0x60/0x60 ret_from_fork+0x35/0x40 We deal this by following what network stack did for some of their attributes and use mutex_trylock() with restart_syscall(). This makes userspace release the attribute allowing sysfs attribute removal to progress before the write is restarted and eventually fail when the attribute is removed. Signed-off-by: Mika Westerberg commit 4708384f35ff6e5aac3dd70555f8765ecf9b6d56 Author: Mika Westerberg Date: Tue Mar 19 17:07:37 2019 +0200 thunderbolt: Block reads and writes if switch is unplugged If switch is already disconnected there is no point sending it commands and waiting for timeout. Instead in that case return error immediately. Signed-off-by: Mika Westerberg commit 8f965efd215a09c20b0b5e5bb4e20009a954472e Author: Mika Westerberg Date: Fri Mar 15 14:56:21 2019 +0200 thunderbolt: Drop duplicated get_switch_at_route() tb_switch_find_by_route() does the same already so use it instead and remove duplicated get_switch_at_route(). Signed-off-by: Mika Westerberg Reviewed-by: Lukas Wunner commit a336b62769499202f27ed2c3b6b28bb44ba9bab8 Author: Mika Westerberg Date: Thu Mar 28 11:59:26 2019 +0300 thunderbolt: Remove unused work field in struct tb_switch This field is not used anywhere so remove it. Reported-by: Lukas Wunner Signed-off-by: Mika Westerberg commit 9872760eb7b1d4f6066ad8b560714a5d0a728fdb Author: Mika Westerberg Date: Fri Sep 28 12:21:17 2018 +0300 net: thunderbolt: Unregister ThunderboltIP protocol handler when suspending The XDomain protocol messages may start as soon as Thunderbolt control channel is started. This means that if the other host starts sending ThunderboltIP packets early enough they will be passed to the network driver which then gets confused because its resume hook is not called yet. Fix this by unregistering the ThunderboltIP protocol handler when suspending and registering it back on resume. Signed-off-by: Mika Westerberg Acked-by: David S. Miller commit 13209ad0395c4de7fa48108b1dac72e341d5c089 Author: Christian Borntraeger Date: Fri Dec 28 09:33:35 2018 +0100 KVM: s390: add MSA9 to cpumodel This enables stfle.155 and adds the subfunctions for KDSA. Bit 155 is added to the list of facilities that will be enabled when there is no cpu model involved as MSA9 requires no additional handling from userspace, e.g. for migration. Please note that a cpu model enabled user space can and will have the final decision on the facility bits for a guests. Signed-off-by: Christian Borntraeger Acked-by: Janosch Frank Reviewed-by: Collin Walling Reviewed-by: David Hildenbrand commit d5cb6ab1e3d4d7e0648a167f6290e89f6e86964e Author: Christian Borntraeger Date: Fri Dec 28 09:45:58 2018 +0100 KVM: s390: add vector BCD enhancements facility to cpumodel If vector support is enabled, the vector BCD enhancements facility might also be enabled. We can directly forward this facility to the guest if available and VX is requested by user space. Please note that user space can and will have the final decision on the facility bits for a guests. Signed-off-by: Christian Borntraeger Reviewed-by: Janosch Frank Reviewed-by: Collin Walling Reviewed-by: David Hildenbrand commit 7832e91cd33f21f3cf82b003478c292915a1ec14 Author: Christian Borntraeger Date: Fri Dec 28 09:43:37 2018 +0100 KVM: s390: add vector enhancements facility 2 to cpumodel If vector support is enabled, the vector enhancements facility 2 might also be enabled. We can directly forward this facility to the guest if available and VX is requested by user space. Please note that user space can and will have the final decision on the facility bits for a guests. Signed-off-by: Christian Borntraeger Reviewed-by: Janosch Frank Reviewed-by: Collin Walling Reviewed-by: David Hildenbrand commit 58616e6a37842740349b7a42dc442ec50fc1d457 Author: Eric Farman Date: Wed Apr 17 02:54:14 2019 +0200 KVM: s390: Fix potential spectre warnings Fix some warnings from smatch: arch/s390/kvm/interrupt.c:2310 get_io_adapter() warn: potential spectre issue 'kvm->arch.adapters' [r] (local cap) arch/s390/kvm/interrupt.c:2341 register_io_adapter() warn: potential spectre issue 'dev->kvm->arch.adapters' [w] Signed-off-by: Eric Farman Message-Id: <20190417005414.47801-1-farman@linux.ibm.com> Reviewed-by: David Hildenbrand Reviewed-by: Cornelia Huck Signed-off-by: Christian Borntraeger commit 6bcf74e2d15c8339f0e4a0f0613638873098e85f Author: Julian Wiedmann Date: Mon Apr 8 13:32:12 2019 +0200 s390/qdio: consolidate index tracking for queue scan qdio.ko offers a small number of high-level functions to drive the scanning of a QDIO queue for ready-to-process SBALs: qdio_get_next_buffers(), __[ti]qdio_inbound_processing() and __qdio_outbound_processing(). Let each of those functions maintain the 'start' index for their current scan, and pass it to lower-level helpers as needed. This improves the code's overall layering, and allows us to eliminate the additional first_to_kick cursor with a follow-on patch. Signed-off-by: Julian Wiedmann Reviewed-by: Jens Remus Signed-off-by: Martin Schwidefsky commit 5b2ad270529ff8abfd8a324ceece1ae1704875a0 Author: Julian Wiedmann Date: Mon Apr 8 11:19:54 2019 +0200 s390/qdio: limit direct access to first_to_check cursor Refactor all the low-level helpers to take the first_to_check cursor as parameter, rather than accessing it directly. Signed-off-by: Julian Wiedmann Reviewed-by: Jens Remus Signed-off-by: Martin Schwidefsky commit 3c454f47e67bf5a65dc892cd50221a7de695870f Author: Masahiro Yamada Date: Wed Apr 3 17:30:12 2019 +0900 x86/build/vdso: Add FORCE to the build rule of %.so $(call if_changed,...) must have FORCE as a prerequisite. Signed-off-by: Masahiro Yamada Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/1554280212-10578-1-git-send-email-yamada.masahiro@socionext.com Signed-off-by: Ingo Molnar commit 1c14fe2167ef4294b41949bcc372ea39c0510c00 Author: Richard Weinberger Date: Wed Apr 17 20:54:33 2019 +0200 mtd: nandsim: switch to exec_op interface Stop using the legacy interface. Reviewed-by: Boris Brezillon Signed-off-by: Richard Weinberger Signed-off-by: Miquel Raynal commit 74aee14c776cd98e87635b7523809db3b3a693eb Author: Richard Weinberger Date: Wed Apr 17 20:54:32 2019 +0200 mtd: nandsim: Embed struct nand_chip in struct nandsim We will need struct nand_controller soon, so more stuff need to be parts of struct nandsim. While we are here, rename "nand" to "ns" to use the same naming scheme everywhere in nandsim. Reviewed-by: Boris Brezillon Signed-off-by: Richard Weinberger Signed-off-by: Miquel Raynal commit 598dce7068179d49b78d116fcb74422beeb3efd7 Author: Frieder Schrempf Date: Wed Apr 17 12:36:37 2019 +0000 mtd: rawnand: AMD: Also use the last page for bad block markers According to the datasheet of some Cypress SLC NANDs, the bad block markers can be in the first, second or last page of a block. So let's check all three locations. Signed-off-by: Frieder Schrempf Reviewed-by: Boris Brezillon Reviewed-by: Miquel Raynal Signed-off-by: Miquel Raynal commit 7a1894a955cc3bf0be0851421d6603c3b5c78323 Author: Frieder Schrempf Date: Wed Apr 17 12:36:37 2019 +0000 mtd: rawnand: ESMT: Also use the last page for bad block markers It is known that some ESMT SLC NANDs have been shipped with the factory bad block markers in the first or last page of the block, instead of the first or second page. To be on the safe side, let's check all three locations. Signed-off-by: Frieder Schrempf Reviewed-by: Boris Brezillon Reviewed-by: Miquel Raynal Signed-off-by: Miquel Raynal commit f90da7818b141e856b723085328d23b36351849d Author: Frieder Schrempf Date: Wed Apr 17 12:36:37 2019 +0000 mtd: rawnand: Support bad block markers in first, second or last page Currently supported bad block marker positions within the block are: * in first page only * in last page only * in first or second page Some ESMT NANDs are known to have been shipped by the manufacturer with bad block markers in the first or last page, instead of the first or second page. Also the datasheets for Cypress/Spansion/AMD NANDs claim that the first, second *and* last page needs to be checked. Therefore we make it possible to set NAND_BBM_FIRSTPAGE, NAND_BBM_SECONDPAGE and NAND_BBM_LASTPAGE independently in any combination. To simplify the code, the logic to evaluate the flags is moved to a a new function nand_bbm_get_next_page(). Signed-off-by: Frieder Schrempf Reviewed-by: Boris Brezillon Signed-off-by: Miquel Raynal commit bb5925480b13f52ad2e29ab20695c7f27e10f382 Author: Frieder Schrempf Date: Wed Apr 17 12:36:36 2019 +0000 mtd: nand: Make flags for bad block marker position more granular To be able to check and set bad block markers in the first and second page of a block independently of each other, we create separate flags for both cases. Previously NAND_BBM_SECONDPAGE meant, that both, the first and the second page were used. With this patch NAND_BBM_FIRSTPAGE stands for using the first page and NAND_BBM_SECONDPAGE for using the second page. This patch is only for preparation of subsequent changes and does not implement the logic to actually handle both flags separately. Signed-off-by: Frieder Schrempf Reviewed-by: Boris Brezillon Reviewed-by: Miquel Raynal Signed-off-by: Miquel Raynal commit c902467cda2d927dba0d6bd2c2efc1988720b8d6 Author: Frieder Schrempf Date: Wed Apr 17 12:36:35 2019 +0000 mtd: nand: Cleanup flags and fields for bad block marker position Now that we have moved the information to the chip level, let's remove all the unused flags and fields. Signed-off-by: Frieder Schrempf Reviewed-by: Miquel Raynal Signed-off-by: Miquel Raynal commit bfd15c904ac584dfacfafb1e382c158f6db73d2a Author: Frieder Schrempf Date: Wed Apr 17 12:36:35 2019 +0000 mtd: onenand: Store bad block marker position in chip struct The information about where the manufacturer puts the bad block markers inside the bad block and in the OOB data is stored in different places. Let's move this information to the chip struct, as we did it for rawnand. Signed-off-by: Frieder Schrempf Reviewed-by: Miquel Raynal Signed-off-by: Miquel Raynal commit 04649ec1335f2289c230f080e52e09f7b9c95c4a Author: Frieder Schrempf Date: Wed Apr 17 12:36:34 2019 +0000 mtd: rawnand: Always store info about bad block markers in chip struct The information about where the manufacturer puts the bad block markers inside the bad block and in the OOB data is stored in different places. Let's move this information to nand_chip.options and nand_chip.badblockpos. As this chip-specific information is not directly related to the bad block table (BBT), we also rename the flags to NAND_BBM_*. Signed-off-by: Frieder Schrempf Reviewed-by: Miquel Raynal Signed-off-by: Miquel Raynal commit 39e01956e2f70ff9f0e97db1a69c9847aa1d5d8b Author: Martin Blumenstingl Date: Fri Apr 12 00:00:56 2019 +0200 mtd: rawnand: meson: only initialize the RB completion once Documentation/scheduler/completion.txt states: Calling init_completion() on the same completion object twice is most likely a bug as it re-initializes the queue to an empty queue and enqueued tasks could get "lost" - use reinit_completion() in that case, but be aware of other races. Initialize nfc->completion in meson_nfc_probe using init_completion and change the call in meson_nfc_queue_rb to reinit_completion so the logic matches what the documentation suggests. Signed-off-by: Martin Blumenstingl Tested-by:Liang Yang Acked-by: Liang Yang Tested-by:Liang Yang Acked-by: Liang Yang Signed-off-by: Miquel Raynal commit c96ffedf8a2f91c9124012ec4eef42a3da01d08b Author: Martin Blumenstingl Date: Fri Apr 12 00:00:55 2019 +0200 mtd: rawnand: meson: use a void pointer for meson_nfc_dma_buffer_setup This simplifies the code because it gets rid of the casts to an u8-pointer when passing "info_buf" from struct meson_nfc_nand_chip. Also it gets rid of the cast of the u8 databuf pointer to a void pointer. The logic inside meson_nfc_dma_buffer_setup() doesn't care about the pointer types themselves because it only passes them to dma_map_single which accepts a void pointer. No functional changes. Signed-off-by: Martin Blumenstingl Tested-by:Liang Yang Acked-by: Liang Yang Tested-by:Liang Yang Acked-by: Liang Yang Tested-by:Liang Yang Acked-by: Liang Yang Signed-off-by: Miquel Raynal commit 2d8ffbf569440f72b05a16f12453c25195220000 Author: Martin Blumenstingl Date: Fri Apr 12 00:00:54 2019 +0200 mtd: rawnand: meson: use of_property_count_elems_of_size helper Use the of_property_count_elems_of_size() helper instead of open-coding it's logic. As a bonus this will now error out if the "reg" property values use an incorrect size (anything other than sizeof(u32)). Signed-off-by: Martin Blumenstingl Tested-by:Liang Yang Acked-by: Liang Yang Signed-off-by: Miquel Raynal commit 5f73f240a4ffe49f596314312f1d3731d011e195 Author: Martin Blumenstingl Date: Fri Apr 12 00:00:53 2019 +0200 mtd: rawnand: meson: use struct_size macro Use the recently introduced struct_size macro instead of open-coding it's logic. No functional changes. Signed-off-by: Martin Blumenstingl Tested-by:Liang Yang Acked-by: Liang Yang Signed-off-by: Miquel Raynal commit f56cad5fd6cd876d0cab9d13d9df7bebf6fddf59 Author: Masahiro Yamada Date: Tue Apr 9 13:53:32 2019 +0900 mtd: rawnand: constify elements of NAND_OP_PARSER(_PATTERN) Currently, drivers are able to constify a nand_op_parser array, but not nand_op_parser_pattern and nand_op_parser_pattern_elem since they are instantiated by using the NAND_OP_PARSER(_PATTERN). Add 'const' to them in order to move more driver data from .data to .rodata section. Signed-off-by: Masahiro Yamada Reviewed-by: Boris Brezillon Signed-off-by: Miquel Raynal commit 2e16dc73ae65c106ede04dc42f439457b582fc8d Author: Miquel Raynal Date: Mon Apr 8 11:28:49 2019 +0200 mtd: rawnand: marvell: Fix helper name in comment Since the migration of the driver to stop using the legacy ->select_chip() hook, the marvell_nfc_select_chip() helper has been 'renamed' to marvell_nfc_select_target(). Update a left-over reference to this helper in a comment in the ->resume() path. Fixes: b25251414f6e00 ("mtd: rawnand: marvell: Stop implementing ->select_chip()") Signed-off-by: Miquel Raynal Reviewed-by: Boris Brezillon commit c49836f05aa15282f7280e06ede3f6f8a6324833 Author: Miquel Raynal Date: Mon Apr 8 09:41:46 2019 +0200 mtd: rawnand: sunxi: Add A23/A33 DMA support Allwinner NAND controllers can make use of DMA to enhance the I/O throughput thanks to ECC pipelining. DMA handling with A23/A33 NAND IP is a bit different than with the older SoCs, hence the introduction of a new compatible to handle: * the differences between register offsets, * the burst length change from 4 to minimum 8, * drive SRAM accesses through the AHB bus instead of the MBUS. Signed-off-by: Miquel Raynal commit a760e77d7598986256305e4770609bbfa9a42520 Author: Miquel Raynal Date: Mon Apr 8 09:41:45 2019 +0200 mtd: rawnand: sunxi: Add a platform data structure Before the introduction of A33 NAND DMA support, let's use a platform data structure for parameters that will differ. Right now, there is only one compatible with one data structure. Signed-off-by: Miquel Raynal commit aee02f82e19a5df848861e0883a394a4996b5bd4 Author: Miquel Raynal Date: Mon Apr 8 09:41:44 2019 +0200 dt-bindings: mtd: sunxi: Add new compatible The A23/A33 NAND controller is slightly different than the A10+ ones, eg. DMA handling is a bit different and a few register offsets changed. Introduce a new compatible to represent this version of the IP. Also append '-controller' to the new compatible (which is required for new compatibles) as this is describing a NAND controller and not a NAND chip. Signed-off-by: Miquel Raynal commit a3c5a11dc82255c126a749d1e82d5de6605e9b26 Author: Maxime Ripard Date: Wed Apr 3 09:48:05 2019 +0200 dt-bindings: mtd: sunxi-nand: Add YAML schemas Switch the DT binding to a YAML schema to enable the DT validation. Reviewed-by: Rob Herring Signed-off-by: Maxime Ripard Signed-off-by: Miquel Raynal commit 212e4969359297e44c8ed879d56ab077f9a52454 Author: Maxime Ripard Date: Wed Apr 3 09:48:04 2019 +0200 dt-bindings: mtd: Add YAML schemas for the generic NAND options The NAND chips in MTD have a bunch of generic options that are needed in a device tree. Add a YAML schemas for those. Signed-off-by: Maxime Ripard Reviewed-by: Rob Herring Signed-off-by: Miquel Raynal commit cf3bbe67be154d9658a7b8644a23a05e6246ea79 Author: YueHaibing Date: Wed Apr 10 22:00:35 2019 +0800 mtd: rawnand: ingenic: Make jz4725b_ooblayout_ops static Fix sparse warning: drivers/mtd/nand/raw/ingenic/ingenic_nand.c:140:32: warning: symbol 'jz4725b_ooblayout_ops' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing Signed-off-by: Miquel Raynal commit 09e030d975490a23f759e44e54520307b8c7e8e2 Author: YueHaibing Date: Thu Apr 4 18:47:11 2019 +0800 mtd: rawnand: ingenic: Add missing MODULE_* information gcc warning this: WARNING: modpost: missing MODULE_LICENSE() in drivers/mtd/nand/raw/ingenic/ingenic_ecc.o Add MODULE_LICENSE,MODULE_AUTHOR and MODULE_DESCRIPTION. Reported-by: Hulk Robot Fixes: 9df5741a577e ("mtd: rawnand: ingenic: Separate top-level and SoC specific code") Signed-off-by: YueHaibing Signed-off-by: Miquel Raynal commit 2dcfc7b3c8992093121056c8dae1b63a652948e4 Author: Masahiro Yamada Date: Tue Apr 2 13:03:09 2019 +0900 mtd: rawnand: denali: clean up coding style Eliminate the following reports from 'scripts/checkpatch.pl --strict'. CHECK: Prefer kernel type 'u8' over 'uint8_t' CHECK: Prefer kernel type 'u32' over 'uint32_t' CHECK: Alignment should match open parenthesis I slightly changed denali_check_erased_page() to shorten it. Signed-off-by: Masahiro Yamada Signed-off-by: Miquel Raynal commit 979da35536251504b6c43f9dd568903fcf637162 Author: Masahiro Yamada Date: Tue Apr 2 13:03:08 2019 +0900 mtd: rawnand: denali: remove DENALI_NR_BANKS macro Use the runtime-detected denali->nbanks instead of hard-coded DENALI_NR_BANKS (=4). The actual number of banks depends on the IP configuration, and can be less than DENALI_NR_BANKS. It is pointless to touch registers of unsupported banks. Signed-off-by: Masahiro Yamada Signed-off-by: Miquel Raynal commit d8e8fd0ebf8b1b8d26a160c2363479a88c1f72c2 Author: Masahiro Yamada Date: Tue Apr 2 13:03:07 2019 +0900 mtd: rawnand: denali: decouple controller and NAND chips Currently, this driver sticks to the legacy NAND model because it was upstreamed before commit 2d472aba15ff ("mtd: nand: document the NAND controller/NAND chip DT representation"). However, relying on the dummy_controller is already deprecated. Switch over to the new controller/chip representation. The struct denali_nand_info has been split into denali_controller and denali_chip, to contain the controller data, per-chip data, respectively. One problem is, this commit changes the DT binding. So, as always, the backward compatibility must be taken into consideration. In the new binding, the controller node expects #address-cells = <1>; #size-cells = <0>; ... since the child nodes represent NAND chips. In the old binding, the controller node may have subnodes, but they are MTD partitions. The denali_dt_is_legacy_binding() exploits it to distinguish old/new platforms. Going forward, the old binding is only allowed for existing DT files. I updated the binding document. Signed-off-by: Masahiro Yamada Acked-by: Rob Herring Signed-off-by: Miquel Raynal commit 13defd47349edaf894d2b13600220ff2b57c4baf Author: Masahiro Yamada Date: Tue Apr 2 13:03:06 2019 +0900 mtd: rawnand: denali_pci: rename goto labels As Documentation/process/coding-style.rst says, choose label names which say what the goto does. The out_ label style is already used in denali_dt.c. Rename likewise for denali_pci.c Signed-off-by: Masahiro Yamada Signed-off-by: Miquel Raynal commit f4f16fd3e7dcee033747b501f281238a65252c75 Author: Masahiro Yamada Date: Tue Apr 2 13:03:05 2019 +0900 mtd: rawnand: denali: use bool type instead of int where appropriate Use 'bool' type for the following boolean parameters. - write (write or read?) - dma_avail (DMA engine available or not?) Signed-off-by: Masahiro Yamada Signed-off-by: Miquel Raynal commit f55411427f1c649c598bf2cfc7653cfbe3f1e603 Author: Masahiro Yamada Date: Tue Apr 2 13:03:04 2019 +0900 mtd: rawnand: denali: switch over to ->exec_op() from legacy hooks Implement ->exec_op(), and remove the deprecated hooks. Signed-off-by: Masahiro Yamada Signed-off-by: Miquel Raynal commit cf067b5be011dbc0eaf8679c743e0c1bc0b77745 Author: Masahiro Yamada Date: Tue Apr 2 13:03:03 2019 +0900 mtd: rawnand: denali: remove unneeded casts in denali_{read, write}_pio Since (u32 *) can accept an opaque pointer, the explicit casting from (void *) to (u32 *) is redundant. Change the function argument type to remove the casts. Signed-off-by: Masahiro Yamada Signed-off-by: Miquel Raynal commit 0e604fc9cffc7c4e3226280bcb35d9870581afc8 Author: Masahiro Yamada Date: Tue Apr 2 13:03:02 2019 +0900 mtd: rawnand: denali: refactor raw page accessors The Denali IP adopts the syndrome page layout (payload and ECC are interleaved). The *_page_raw() and *_oob() callbacks are complicated because they must hide the underlying layout used by the hardware, and always return contiguous in-band and out-of-band data. The Denali IP cannot reuse nand_{read,write}_page_raw_syndrome() in nand_base.c because its hardware ECC engine skips some of first bytes in OOB. That is why this driver implements specially-crafted *_page_raw() and *_oob() hooks. Currently, similar code is duplicated to reorganize the data layout. For example, denali_read_page_raw() and denali_write_page_raw() look almost the same. The complexity is partly due to the DMA transfer used for better performance of *_page_raw() accessors. On second thought, we do not need to care about their performance because MTD_OPS_RAW is rarely used. Let's focus on code cleanups rather than the performance. This commit removes the internal buffer for DMA, and factors out as much code as possible. Signed-off-by: Masahiro Yamada Signed-off-by: Miquel Raynal commit 750f69b82641603700bf8bc1c70ef6d43bba5cab Author: Masahiro Yamada Date: Tue Apr 2 13:03:01 2019 +0900 mtd: rawnand: denali: use more nand_chip pointers for internal functions With the recent refactoring, the NAND driver hooks now take a pointer to nand_chip. Add to_denali() in order to convert (struct nand_chip *) to (struct denali_nand_info *) directly. It is more useful than the current mtd_to_denali(). I changed some helper functions to take (struct nand_chip *). This will avoid pointer conversion back and forth, and ease further development. Signed-off-by: Masahiro Yamada Signed-off-by: Miquel Raynal commit e39bb786816453788836c367caefd72eceea380c Author: Miquel Raynal Date: Mon Apr 1 16:49:01 2019 +0200 mtd: rawnand: atmel: Fix spelling mistake in error message Wrong copy/paste from the previous block, the error message should refer to #size-cells instead of #address-cells. Fixes: f88fc122cc34 ("mtd: nand: Cleanup/rework the atmel_nand driver") Signed-off-by: Miquel Raynal Reviewed-by: Tudor Ambarus commit f6424c22aa3673a0313a306be339495c67c41891 Author: Marek Behún Date: Fri Mar 22 14:26:19 2019 +0100 mtd: rawnand: fsl_elbc: Make SW ECC work Move the code that choses ECC into _attach_chip, which is executed only after the chip->ecc.* properties were loaded from device-tree. This way we know which ECC method was chosen by the device-tree and can set methods appropriately. The chip->ecc.*page methods should be set to fsl_elbc_*page only in HW ECC mode. Signed-off-by: Marek Behún Signed-off-by: Miquel Raynal commit 070fb9744d5b7f893da263149a4f3245bb618bdf Author: Marek Behún Date: Fri Mar 22 14:26:18 2019 +0100 mtd: rawnand: fsl_elbc: Implement RNDOUT command This is needed for SW ECC. Signed-off-by: Marek Behún Signed-off-by: Miquel Raynal commit 9fed311591969cb153eac2ba493875882d29ced6 Author: Marek Behún Date: Fri Mar 22 14:26:17 2019 +0100 mtd: rawnand: fsl_elbc: Cosmetic move Move the fsl_elbc_attach_chip function after the definitions of fsl_elbc_read_page and friends in preparation for the next patch. Signed-off-by: Marek Behún Signed-off-by: Miquel Raynal commit 7e8afca5cf1aeeec183a221c6fc07faf4cc380df Author: Jonathan Neuschäfer Date: Fri Mar 22 00:52:41 2019 +0100 mtd: rawnand: Fix sphinx syntax Sphinx doesn't handle expressions in identifier references. This fixes the following warnings: ./include/linux/mtd/rawnand.h:1184: WARNING: Inline strong start-string without end-string. ./include/linux/mtd/rawnand.h:1186: WARNING: Inline strong start-string without end-string. Signed-off-by: Jonathan Neuschäfer Signed-off-by: Miquel Raynal commit 7019ac5d3bbf1ba98e25c38b0cfb497e0ebdc5f0 Author: Anders Roxell Date: Wed Apr 10 21:58:52 2019 +0200 mtd: rawnand: fix build dependency When enabling CONFIG_MTD_NAND_ECC_SW_BCH as a module, the MTD_NAND_ECC_SW_BCH depends on MTD_NAND, but the module controlled by MTD_NAND links against the module controlled by MTD_NAND_ECC_SW_BCH. This leads to the following link failure. aarch64-linux-gnu-ld: drivers/mtd/nand/raw/nand_base.o: in function `nand_cleanup': ../drivers/mtd/nand/raw/nand_base.c:5886: undefined reference to `nand_bch_free' aarch64-linux-gnu-ld: ../drivers/mtd/nand/raw/nand_base.c:5886:(.text+0x9928): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `nand_bch_free' aarch64-linux-gnu-ld: drivers/mtd/nand/raw/nand_base.o: in function `nand_set_ecc_soft_ops': ../drivers/mtd/nand/raw/nand_base.c:5093: undefined reference to `nand_bch_calculate_ecc' aarch64-linux-gnu-ld: ../drivers/mtd/nand/raw/nand_base.c:5093:(.text+0xe914): relocation truncated to fit: R_AARCH64_ADR_PREL_PG_HI21 against undefined symbol `nand_bch_calculate_ecc' aarch64-linux-gnu-ld: ../drivers/mtd/nand/raw/nand_base.c:5093: undefined reference to `nand_bch_calculate_ecc' aarch64-linux-gnu-ld: ../drivers/mtd/nand/raw/nand_base.c:5094: undefined reference to `nand_bch_correct_data' aarch64-linux-gnu-ld: ../drivers/mtd/nand/raw/nand_base.c:5094:(.text+0xe934): relocation truncated to fit: R_AARCH64_ADR_PREL_PG_HI21 against undefined symbol `nand_bch_correct_data' aarch64-linux-gnu-ld: ../drivers/mtd/nand/raw/nand_base.c:5094: undefined reference to `nand_bch_correct_data' aarch64-linux-gnu-ld: ../drivers/mtd/nand/raw/nand_base.c:5148: undefined reference to `nand_bch_init' aarch64-linux-gnu-ld: ../drivers/mtd/nand/raw/nand_base.c:5148:(.text+0xebbc): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `nand_bch_init' Rework CONFIG_MTD_NAND_ECC_SW_BCH from tristate to bool, and then link the nand_bch.o file into nand.ko if its enabled. Fixes: 51ef1d0b2095 ("mtd: nand: Clarify Kconfig entry for software BCH ECC algorithm") Signed-off-by: Anders Roxell Signed-off-by: Miquel Raynal commit 31bc36c4550785ae854fc80d001fea76ade48fcf Author: Miquel Raynal Date: Wed Feb 6 16:03:13 2019 +0100 mtd: nand: Remove useless line in Kconfig Prepare changes that will lay in this file to better express what is NAND related and what is not in menuconfig. Signed-off-by: Miquel Raynal commit 72c5af00272339af6bbed6fe7275cd731f57be2d Author: Miquel Raynal Date: Wed Feb 6 16:47:44 2019 +0100 mtd: rawnand: Clarify Kconfig entry MTD_NAND MTD_NAND is large and encloses much more than what the symbol is actually used for: raw NAND. Clarify the symbol by naming it MTD_RAW_NAND instead. Signed-off-by: Miquel Raynal commit e787be1f1d45e190adce91de52053539668f6269 Author: Miquel Raynal Date: Wed Feb 6 16:29:14 2019 +0100 mtd: rawnand: Change Kconfig titles and re-order a bit the list This list is a mess, while some items should probably not be in the raw/ sub-directory, others are definitely at the right place but not with the right description. Write uniform titles and group IPs by vendor. NAND controllers will appear under the list named "Raw/parallel NAND flash controllers" while the other drivers will appear under "Misc". Software ECC engines will later be moved out of the raw/ directory. Signed-off-by: Miquel Raynal commit 9bb94643b94115990ffec18c8129f1ab970765c1 Author: Miquel Raynal Date: Fri Feb 8 08:48:37 2019 +0100 mtd: nand: Clarify Kconfig entry for software Hamming ECC entries The software Hamming ECC correction implementation is referred as MTD_NAND_ECC which is too generic. Rename it MTD_NAND_ECC_SW_HAMMING. Also rename MTD_NAND_ECC_SMC which is an SMC quirk in the Hamming implementation as MTD_NAND_ECC_SW_HAMMING_SMC. Signed-off-by: Miquel Raynal commit 714c068228d3275da6d36f29e544f7e5ae648849 Author: Miquel Raynal Date: Wed Feb 6 15:12:27 2019 +0100 mtd: nand: Clarify Kconfig entry for software BCH ECC algorithm There is no point in having two distinct entries, merge them and rename the symbol for more clarity: MTD_NAND_ECC_SW_BCH Signed-off-by: Miquel Raynal commit b8fb1ab46169ac016a8552a6455bb0bfc401f8e2 Author: David Ahern Date: Tue Apr 16 17:31:43 2019 -0700 net ipv6: Prevent neighbor add if protocol is disabled on device Disabling IPv6 on an interface removes existing entries but nothing prevents new entries from being manually added. To that end, add a new neigh_table operation, allow_add, that is called on RTM_NEWNEIGH to see if neighbor entries are allowed on a given device. If IPv6 is disabled on the device, allow_add returns false and passes a message back to the user via extack. $ echo 1 > /proc/sys/net/ipv6/conf/eth1/disable_ipv6 $ ip -6 neigh add fe80::4c88:bff:fe21:2704 dev eth1 lladdr de:ad:be:ef:01:01 Error: IPv6 is disabled on this device. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit ff5eefe6d3a3a2cd93b71165741ebdeda6d58e1d Author: Colin Ian King Date: Tue Apr 16 15:38:04 2019 +0100 RDMA/cxgb4: Fix spelling mistake "immedate" -> "immediate" There is a spelling mistake in a module parameter description. Fix it. Signed-off-by: Colin Ian King Signed-off-by: Jason Gunthorpe commit cea29a70727e7885b3fdf0d266a57818652a89c1 Merge: 6b0a7f84ea1f 7d21fec90438 Author: David S. Miller Date: Wed Apr 17 23:11:52 2019 -0700 Merge branch 'ipv6-Use-fib6_result-for-fib_lookups' David Ahern says: ==================== ipv6: Use fib6_result for fib_lookups Add fib6_result as a single data structure to hold results from a fib lookup. IPv6 currently has everything in 1 data structure - a fib6_info, but with nexthop objects the fib6_nh can be in a nexthop or a nexthop can be a blackhole which affects the fib6_type and flags (REJECT). v2 - fixed 2 bugs in patch12: i. checking return from fib6_table_lookup in fib6_lookup ii. call to fib6_rule_saddr in fib6_rule_action_alt should use res->nh ==================== Signed-off-by: David S. Miller commit 7d21fec90438941b44b699ae73673d2f8a3a9d76 Author: David Ahern Date: Tue Apr 16 14:36:11 2019 -0700 ipv6: Add fib6_type and fib6_flags to fib6_result Add the fib6_flags and fib6_type to fib6_result. Update the lookup helpers to set them and update post fib lookup users to use the version from the result. This allows nexthop objects to have blackhole nexthop. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit effda4dd97e878ab83336bec7411cc41b5cc6d37 Author: David Ahern Date: Tue Apr 16 14:36:10 2019 -0700 ipv6: Pass fib6_result to fib lookups Change fib6_lookup and fib6_table_lookup to take a fib6_result and set f6i and nh rather than returning a fib6_info. For now both always return 0. A later patch set can make these more like the IPv4 counterparts and return EINVAL, EACCESS, etc based on fib6_type. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 8ff2e5b26cb84b1b0f502c0b7a3c62e4c4d86acc Author: David Ahern Date: Tue Apr 16 14:36:09 2019 -0700 ipv6: Pass fib6_result to fib6_table_lookup tracepoint Change fib6_table_lookup tracepoint to take the fib6_result and use the fib6_info and fib6_nh from it. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit b7bc4b6a620becacbc70fc617b8bbdb16f401f85 Author: David Ahern Date: Tue Apr 16 14:36:08 2019 -0700 ipv6: Pass fib6_result to rt6_select and find_rr_leaf Pass fib6_result to rt6_select. Instead of returning the fib entry, it will set f6i and nh based on the lookup. find_rr_leaf is changed to remove the match option in favor of taking fib6_result and having __find_rr_leaf set f6i in the result. In the process, update fib6_info references in __find_rr_leaf to f6i names. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 75ef7389dd2339e5f2a7347aadbdbded8dd8430f Author: David Ahern Date: Tue Apr 16 14:36:07 2019 -0700 ipv6: Pass fib6_result to rt6_device_match Pass fib6_result to rt6_device_match with f6i set. rt6_device_match updates f6i in the result if it finds a better match and sets nh. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit b748f26092626332f73e71d75e4390de6b8bdf9b Author: David Ahern Date: Tue Apr 16 14:36:06 2019 -0700 ipv6: Pass fib6_result to ip6_mtu_from_fib6 and fib6_mtu Change ip6_mtu_from_fib6 and fib6_mtu to take a fib6_result over a fib6_info. Update both to use the fib6_nh from fib6_result. Since the signature of ip6_mtu_from_fib6 is already changing, add const to daddr and saddr. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 5012f0a5944c9181fb4175561b7679a251eaf05a Author: David Ahern Date: Tue Apr 16 14:36:05 2019 -0700 ipv6: Pass fib6_result to rt6_insert_exception Update rt6_insert_exception to take a fib6_result over a fib6_info. Change ort to f6i from the fib6_result and rename to better reflect what it references (a fib6_info). Since this function is already getting changed, update the comments to reference fib6_info variables rather than the older rt6_info. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 0d16158149ab6b02fcd945b2f5a5cf31262a445b Author: David Ahern Date: Tue Apr 16 14:36:04 2019 -0700 ipv6: Pass fib6_result to ip6_rt_get_dev_rcu and ip6_rt_copy_init Now that all callers are update to have a fib6_result, pass it down to ip6_rt_get_dev_rcu, ip6_rt_copy_init, and ip6_rt_init_dst. In the process, change ort to f6i in ip6_rt_copy_init to make it clear it is a reference to a fib6_info. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit db3fedee0cb7a0ea52450137d48b9e41be53ec14 Author: David Ahern Date: Tue Apr 16 14:36:03 2019 -0700 ipv6: Pass fib6_result to pcpu route functions Update ip6_rt_pcpu_alloc, rt6_get_pcpu_route and rt6_make_pcpu_route to a fib6_result over a fib6_info. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 9b6b35abfbde376665c76029c75e4ab03186d378 Author: David Ahern Date: Tue Apr 16 14:36:02 2019 -0700 ipv6: Pass fib6_result to ip6_create_rt_rcu Change ip6_create_rt_rcu to take fib6_result over a fib6_info. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 85bd05deb35a55f04faaf4393faaaa0f3153d515 Author: David Ahern Date: Tue Apr 16 14:36:01 2019 -0700 ipv6: Pass fib6_result to ip6_rt_cache_alloc Change ip6_rt_cache_alloc to take a fib6_result over a fib6_info. Since ip6_rt_cache_alloc is only the caller, update the rt6_is_gw_or_nonexthop helper to take fib6_result. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 7e4b5128757397132ffff1d7b1be9f992e9cd9f2 Author: David Ahern Date: Tue Apr 16 14:36:00 2019 -0700 ipv6: Pass fib6_result to rt6_find_cached_rt Simplify rt6_find_cached_rt for the fast path cases and pass fib6_result to rt6_find_cached_rt. Rename the local return variable to ret to maintain consisting with fib6_result name. Update the comment in rt6_find_cached_rt to reference the new names in a fib6_info vs the old name when fib entries were an rt6_info. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit b1d40991506aa9f1de310a2e74ef8e3bec6ba215 Author: David Ahern Date: Tue Apr 16 14:35:59 2019 -0700 ipv6: Rename fib6_multipath_select and pass fib6_result Add 'struct fib6_result' to hold the fib entry and fib6_nh from a fib lookup as separate entries, similar to what IPv4 now has with fib_result. Rename fib6_multipath_select to fib6_select_path, pass fib6_result to it, and set f6i and nh in the result once a path selection is done. Call fib6_select_path unconditionally for path selection which means moving the sibling and oif check to fib6_select_path. To handle the two different call paths (2 only call multipath_select if flowi6_oif == 0 and the other always calls it), add a new have_oif_match that controls the sibling walk if relevant. Update callers of fib6_multipath_select accordingly and have them use the fib6_info and fib6_nh from the result. This is needed for multipath nexthop objects where a single f6i can point to multiple fib6_nh (similar to IPv4). Signed-off-by: David Ahern Signed-off-by: David S. Miller commit ba02de1aa04e392e15ef503c6dd5166915d9d4de Author: Yonghong Song Date: Wed Apr 17 22:23:30 2019 -0700 selftests/bpf: fix a compilation error I hit the following compilation error with gcc 4.8.5. prog_tests/flow_dissector.c: In function ‘test_flow_dissector’: prog_tests/flow_dissector.c:155:2: error: ‘for’ loop initial declarations are only allowed in C99 mode for (int i = 0; i < ARRAY_SIZE(tests); i++) { ^ prog_tests/flow_dissector.c:155:2: note: use option -std=c99 or -std=gnu99 to compile your code Let us fix the issue by avoiding this particular c99 feature. Fixes: a5cb33464e53 ("selftests/bpf: make flow dissector tests more extensible") Signed-off-by: Yonghong Song Signed-off-by: Alexei Starovoitov commit 68911069f509ba3bf0f513d9af00309e07932906 Author: Masayoshi Mizuma Date: Wed Apr 17 19:58:23 2019 -0400 ktest: Add support for meta characters in GRUB_MENU ktest fails if meta characters are in GRUB_MENU, for example GRUB_MENU = 'Fedora (test)' The failure happens because the meta characters are not escaped, so the menu doesn't match in any entries in GRUB_FILE. Use quotemeta() to escape the meta characters. Link: http://lkml.kernel.org/r/20190417235823.18176-1-msys.mizuma@gmail.com Signed-off-by: Masayoshi Mizuma Signed-off-by: Steven Rostedt (VMware) commit fca797f16354a1e9b411a32bc1da53bb43e7fc5a Author: Steven Rostedt (VMware) Date: Wed Apr 17 22:30:33 2019 -0400 ktest: Show name and iteration on errors If a test has an error, display not only the what type of test failed, but if the test was giving a name, display that too, as well as the current iteration of the tests. Each test has an iteration number associated to it. For error messages display that iteration number along with the test type and test name. This includes the message that gets sent via email. Signed-off-by: Steven Rostedt (VMware) commit 193d0002ef04d331466f4d211d008ff8257bfa6a Merge: 00967e84f742 86d231459d6d Author: Alexei Starovoitov Date: Wed Apr 17 19:09:25 2019 -0700 Merge branch 'bulk-cpumap-redirect' Jesper Dangaard Brouer says: ==================== This patchset utilize a number of different kernel bulk APIs for optimizing the performance for the XDP cpumap redirect feature. Benchmark details are available here: https://github.com/xdp-project/xdp-project/blob/master/areas/cpumap/cpumap03-optimizations.org Performance measurements can be considered micro benchmarks, as they measure dropping packets at different stages in the network stack. Summary based on above: Baseline benchmarks - baseline-redirect: UdpNoPorts: 3,180,074 - baseline-redirect: iptables-raw drop: 6,193,534 Patch1: bpf: cpumap use ptr_ring_consume_batched - redirect: UdpNoPorts: 3,327,729 - redirect: iptables-raw drop: 6,321,540 Patch2: net: core: introduce build_skb_around - redirect: UdpNoPorts: 3,221,303 - redirect: iptables-raw drop: 6,320,066 Patch3: bpf: cpumap do bulk allocation of SKBs - redirect: UdpNoPorts: 3,290,563 - redirect: iptables-raw drop: 6,650,112 Patch4: bpf: cpumap memory prefetchw optimizations for struct page - redirect: UdpNoPorts: 3,520,250 - redirect: iptables-raw drop: 7,649,604 In this V2 submission I have chosen drop the SKB-list patch using netif_receive_skb_list() as it was not showing a performance improvement for these micro benchmarks. ==================== Signed-off-by: Alexei Starovoitov commit 86d231459d6dc9094e70c35c3517f4ef860b2f1e Author: Jesper Dangaard Brouer Date: Fri Apr 12 17:07:48 2019 +0200 bpf: cpumap memory prefetchw optimizations for struct page A lot of the performance gain comes from this patch. While analysing performance overhead it was found that the largest CPU stalls were caused when touching the struct page area. It is first read with a READ_ONCE from build_skb_around via page_is_pfmemalloc(), and when freed written by page_frag_free() call. Measurements show that the prefetchw (W) variant operation is needed to achieve the performance gain. We believe this optimization it two fold, first the W-variant saves one step in the cache-coherency protocol, and second it helps us to avoid the non-temporal prefetch HW optimizations and bring this into all cache-levels. It might be worth investigating if prefetch into L2 will have the same benefit. Signed-off-by: Jesper Dangaard Brouer Acked-by: Ilias Apalodimas Acked-by: Song Liu Signed-off-by: Alexei Starovoitov commit 8f0504a97e1ba6b70e1c8b5a88255c280f263287 Author: Jesper Dangaard Brouer Date: Fri Apr 12 17:07:43 2019 +0200 bpf: cpumap do bulk allocation of SKBs As cpumap now batch consume xdp_frame's from the ptr_ring, it knows how many SKBs it need to allocate. Thus, lets bulk allocate these SKBs via kmem_cache_alloc_bulk() API, and use the previously introduced function build_skb_around(). Notice that the flag __GFP_ZERO asks the slab/slub allocator to clear the memory for us. This does clear a larger area than needed, but my micro benchmarks on Intel CPUs show that this is slightly faster due to being a cacheline aligned area is cleared for the SKBs. (For SLUB allocator, there is a future optimization potential, because SKBs will with high probability originate from same page. If we can find/identify continuous memory areas then the Intel CPU memset rep stos will have a real performance gain.) Signed-off-by: Jesper Dangaard Brouer Acked-by: Song Liu Signed-off-by: Alexei Starovoitov commit ba0509b6881efd0c8b26c36490cba87d8fb324c0 Author: Jesper Dangaard Brouer Date: Fri Apr 12 17:07:37 2019 +0200 net: core: introduce build_skb_around The function build_skb() also have the responsibility to allocate and clear the SKB structure. Introduce a new function build_skb_around(), that moves the responsibility of allocation and clearing to the caller. This allows caller to use kmem_cache (slab/slub) bulk allocation API. Next patch use this function combined with kmem_cache_alloc_bulk. Signed-off-by: Jesper Dangaard Brouer Acked-by: Song Liu Acked-by: Eric Dumazet Signed-off-by: Alexei Starovoitov commit 77361825bb01ecadf3ac8622e2e4dbc28806e858 Author: Jesper Dangaard Brouer Date: Fri Apr 12 17:07:32 2019 +0200 bpf: cpumap use ptr_ring_consume_batched Move ptr_ring dequeue outside loop, that allocate SKBs and calls network stack, as these operations that can take some time. The ptr_ring is a communication channel between CPUs, where we want to reduce/limit any cacheline bouncing. Do a concentrated bulk dequeue via ptr_ring_consume_batched, to shorten the period and times the remote cacheline in ptr_ring is read Batch size 8 is both to (1) limit BH-disable period, and (2) consume one cacheline on 64-bit archs. After reducing the BH-disable section further then we can consider changing this, while still thinking about L1 cacheline size being active. Signed-off-by: Jesper Dangaard Brouer Acked-by: Song Liu Signed-off-by: Alexei Starovoitov commit ba8a39820d4614b2b04ac74a48d1f8de677de750 Author: Wesley Sheng Date: Mon Apr 15 22:41:41 2019 +0800 switchtec: Increase PFF limit from 48 to 255 The Switchtec devices supports two PCIe Function Frameworks (PFFs) per upstream port (one for the port itself and one for the management endoint), and each PFF may have up to 255 ports. Previously the driver only supported 48 of those ports, and the SWITCHTEC_IOCTL_EVENT_SUMMARY ioctl only returned information about those 48. Increase SWITCHTEC_MAX_PFF_CSR from 48 to 255 so the driver supports all 255 possible ports. Rename SWITCHTEC_IOCTL_EVENT_SUMMARY and associated struct switchtec_ioctl_event_summary to SWITCHTEC_IOCTL_EVENT_SUMMARY_LEGACY and switchtec_ioctl_event_summary_legacy with so existing applications work unchanged, supporting up to 48 ports. Add replacement SWITCHTEC_IOCTL_EVENT_SUMMARY and struct switchtec_ioctl_event_summary that new and recompiled applications support up to 255 ports. Signed-off-by: Wesley Sheng [bhelgaas: changelog] Signed-off-by: Bjorn Helgaas Reviewed-by: Logan Gunthorpe commit 47820e73f5b3a1fdb8ebd1219191edc96e0c85c1 Author: Xiaochen Shen Date: Wed Apr 17 19:08:49 2019 +0800 x86/resctrl: Initialize a new resource group with default MBA values Currently, when a new resource group is created, the allocation values of the MBA resource are not initialized and remain meaningless data. For example: mkdir /sys/fs/resctrl/p1 cat /sys/fs/resctrl/p1/schemata MB:0=100;1=100 echo "MB:0=10;1=20" > /sys/fs/resctrl/p1/schemata cat /sys/fs/resctrl/p1/schemata MB:0= 10;1= 20 rmdir /sys/fs/resctrl/p1 mkdir /sys/fs/resctrl/p2 cat /sys/fs/resctrl/p2/schemata MB:0= 10;1= 20 Therefore, when the new group is created, it is reasonable to initialize MBA resource with default values. Initialize the MBA resource and cache resources in separate functions. [ bp: Add newlines between code blocks for better readability. ] Signed-off-by: Xiaochen Shen Signed-off-by: Borislav Petkov Reviewed-by: Fenghua Yu Reviewed-by: Reinette Chatre Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: pei.p.jia@intel.com Cc: Thomas Gleixner Cc: Tony Luck Cc: x86-ml Link: https://lkml.kernel.org/r/1555499329-1170-3-git-send-email-xiaochen.shen@intel.com commit 7390619ab9ea9fd0ba9f4c3e4749ee20262cba7d Author: Xiaochen Shen Date: Wed Apr 17 19:08:48 2019 +0800 x86/resctrl: Move per RDT domain initialization to a separate function Carve out per rdt_domain initialization code from rdtgroup_init_alloc() into a separate function. No functional change, make the code more readable and save us at least two indentation levels. Signed-off-by: Xiaochen Shen Signed-off-by: Borislav Petkov Cc: Fenghua Yu Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: pei.p.jia@intel.com Cc: Reinette Chatre Cc: Thomas Gleixner Cc: Tony Luck Cc: x86-ml Link: https://lkml.kernel.org/r/1555499329-1170-2-git-send-email-xiaochen.shen@intel.com commit 1bddcc645f9b3d81adaf08d86289ebd733affc86 Merge: dc4060a5dc25 a943245adc9a Author: Borislav Petkov Date: Wed Apr 17 23:54:41 2019 +0200 Merge x86/urgent into x86/cache Merge it to pick up dependent urgent changes before applying more resctrl stuff. Signed-off-by: Borislav Petkov commit b433a52aa28733e0650c5e83efdccfd0637b981a Author: Mimi Zohar Date: Mon Apr 1 13:39:44 2019 -0400 selftests/kexec: update get_secureboot_mode The get_secureboot_mode() function unnecessarily requires both CONFIG_EFIVAR_FS and CONFIG_EFI_VARS to be enabled to determine if the system is booted in secure boot mode. On some systems the old EFI variable support is not enabled or, possibly, even implemented. This patch first checks the efivars filesystem for the SecureBoot and SetupMode flags, but falls back to using the old EFI variable support. The "secure_boot_file" and "setup_mode_file" couldn't be quoted due to globbing. This patch also removes the globbing. Signed-off-by: Mimi Zohar Reviewed-by: Petr Vorel Signed-off-by: Shuah Khan commit 726ff75f294672d9accc57b2d5cc7e98e337d2c6 Author: Mimi Zohar Date: Mon Mar 25 14:13:27 2019 -0400 selftests/kexec: make kexec_load test independent of IMA being enabled Verify IMA is enabled before failing tests or emitting irrelevant messages. Suggested-by: Dave Young Signed-off-by: Mimi Zohar Reviewed-by: Dave Young Reviewed-by: Petr Vorel Signed-off-by: Shuah Khan commit 7cea0b9227dcfd632fea1ee6a89f279da64fdd9d Author: Mimi Zohar Date: Tue Mar 12 14:53:54 2019 -0400 selftests/kexec: check kexec_load and kexec_file_load are enabled Skip the kexec_load and kexec_file_load tests, if they aren't configured in the kernel. This change adds a new requirement that ikconfig is configured in the kexec_load test. Suggested-by: Dave Young Signed-off-by: Mimi Zohar Reviewed-by: Petr Vorel Signed-off-by: Shuah Khan commit a4df92adcacdee9c21a076cfda41194621939a59 Author: Petr Vorel Date: Fri Mar 1 00:30:30 2019 +0100 selftests/kexec: Add missing '=y' to config options so the file can be used as kernel config snippet. Signed-off-by: Petr Vorel [zohar@linux.ibm.com: remove CONFIG_KEXEC_VERIFY_SIG from config] Signed-off-by: Mimi Zohar Signed-off-by: Shuah Khan commit 973b71c60f160f58e624795ac5d4b08c881b8d75 Author: Mimi Zohar Date: Thu Jan 24 18:22:06 2019 -0500 selftests/kexec: kexec_file_load syscall test The kernel can be configured to verify PE signed kernel images, IMA kernel image signatures, both types of signatures, or none. This test verifies only properly signed kernel images are loaded into memory, based on the kernel configuration and runtime policies. Signed-off-by: Mimi Zohar Reviewed-by: Petr Vorel Signed-off-by: Shuah Khan commit c660a81796d456f0769937dd3ecf4cfd30f0ece6 Author: Mimi Zohar Date: Wed Mar 6 11:19:45 2019 -0500 selftests/kexec: define "require_root_privileges" Many tests require root privileges. Define a common function. Suggested-by: Petr Vorel Signed-off-by: Mimi Zohar Reviewed-by: Petr Vorel Signed-off-by: Shuah Khan commit 6038c81526d748b2bba691688095ced72a620539 Author: Mimi Zohar Date: Wed Feb 13 11:46:55 2019 -0500 selftests/kexec: define common logging functions Define log_info, log_pass, log_fail, and log_skip functions. Suggested-by: Petr Vorel Signed-off-by: Mimi Zohar Reviewed-by: Petr Vorel Signed-off-by: Shuah Khan commit 5025b0f0fa25a0b71ae7ada96b18b6b63c24302f Author: Mimi Zohar Date: Thu Jan 24 08:57:20 2019 -0500 selftests/kexec: define a set of common functions Define, update and move get_secureboot_mode() to a common file for use by other tests. Updated to check both the efivar SecureBoot-$(UUID) and SetupMode-$(UUID), based on Dave Young's review. Signed-off-by: Mimi Zohar Reviewed-by: Petr Vorel Signed-off-by: Shuah Khan commit 89eba7db8ebf25f654b853776c09eb34129f2d19 Author: Mimi Zohar Date: Thu Jan 24 08:27:25 2019 -0500 selftests/kexec: cleanup the kexec selftest Remove the few bashisms and use the complete option name for clarity. Signed-off-by: Mimi Zohar Reviewed-by: Petr Vorel Signed-off-by: Shuah Khan commit c279adafe6ab333da24e27548e7f119421d9e192 Author: Quentin Schulz Date: Tue Apr 16 14:40:22 2019 +0800 power: supply: axp20x_usb_power: add support for AXP813 This adds support for AXP813 PMIC. It is almost the same as AXP22X but has a different current limit. Signed-off-by: Quentin Schulz Signed-off-by: Chen-Yu Tsai Signed-off-by: Sebastian Reichel commit af7e8d07693712e3944ef0138fc428624e260c78 Author: Quentin Schulz Date: Tue Apr 16 14:40:21 2019 +0800 power: supply: axp20x_usb_power: add function to get max current To prepare for a new PMIC, factor out the code responsible of returning the maximum current to axp20x_get_current_max. Signed-off-by: Quentin Schulz Signed-off-by: Chen-Yu Tsai Signed-off-by: Sebastian Reichel commit 97ec136e7124fa12cf56ce706993e747c5f99a20 Author: Chen-Yu Tsai Date: Tue Apr 16 14:40:20 2019 +0800 power: supply: axp20x_usb_power: use polling to detect vbus status change On AXP221 and later AXP PMICs that have the N_VBUSEN pin, when this pin is high, either due to the PMIC driving it high or as an input, the VBUS detection related interrupt mechanisms are disabled. Previously this was worked around in the phy-sun4i-usb driver, which needed to sense VBUS changes and report them to the musb driver in a timely matter. However this workaround was only for the A31 and A33 type USB PHYs. To support newer platforms we would have to enable it for almost all the post-A31 SoCs. However, since this is actually the result of the PMIC's behavior, the workaround would be better if done in the PMIC driver, in this case the VBUS power supply driver. Add the same workqueue-based polling to the VBUS power supply driver. The polling interval is chosen to be the debounce interval from the USB PHY driver, as this short interval is needed in some cases, but the power supply driver would not know when. Signed-off-by: Chen-Yu Tsai Signed-off-by: Sebastian Reichel commit c11f0b8f226a411915f8d7467bd554a8c9ceec42 Author: Chen-Yu Tsai Date: Tue Apr 16 14:40:19 2019 +0800 power: supply: axp20x_usb_power: Fix typo in VBUS current limit macros The VBUS current limit value macros have VBUS typed as VBUC, while the bitmask macro is named correctly. Fix it. Fixes: 69fb4dcada77 ("power: Add an axp20x-usb-power driver") Signed-off-by: Chen-Yu Tsai Signed-off-by: Sebastian Reichel commit 2e8c9d7bfab23419923e7ef52e53dd8cb288d9c4 Author: Chen-Yu Tsai Date: Tue Apr 16 14:40:18 2019 +0800 dt-bindings: power: supply: axp20x_usb_power: add axp813 compatible This adds the "x-powers,axp813-usb-power-supply" to the list of compatibles for AXP20X VBUS power supply driver. Reviewed-by: Rob Herring Signed-off-by: Chen-Yu Tsai Signed-off-by: Sebastian Reichel commit f4bdfcc29a8bf96fc385a8221348781dd5594128 Author: Linus Walleij Date: Mon Oct 8 13:27:55 2018 +0200 ARM: dts: Ux500: Add MCDE and Samsung display This adds and updates the device tree nodes for the MCDE display controller and connects the Samsung display to the TVK1281618 user interface board (UIB) so we get nicely working graphics on this reference design. Signed-off-by: Linus Walleij commit 61313fb2cca3214ecd93533c7a327ac12b432768 Author: Linus Walleij Date: Fri Apr 12 15:02:20 2019 +0200 ARM: dts: ux500: Add Mali-400 This adds the Mali-400 block, also known as SGA500 or the Smart Graphics Adapter, to the DBx500 DTS file. All resources and bindings are already in place so this just works. Signed-off-by: Linus Walleij commit c3c0e811427632bb1c638377859f80cce956d1b3 Author: Mimi Zohar Date: Wed Mar 13 10:09:10 2019 -0400 selftests/kexec: move the IMA kexec_load selftest to selftests/kexec As requested move the existing kexec_load selftest and subsequent kexec tests to the selftests/kexec directory. Suggested-by: Dave Young Signed-off-by: Mimi Zohar Reviewed-by: Petr Vorel Signed-off-by: Shuah Khan commit debcd8f954be2b1f643e76b2400bc7c3d12b4594 Author: Jonathan Marek Date: Sat Nov 24 15:06:28 2018 -0500 drm/panel: simple: add lg,acx467akm-7 panel Add ACX467AKM-7 4.95" 1080×1920 LCD panel that is found on the LG Nexus 5 (hammerhead) phone. Signed-off-by: Jonathan Marek [masneyb@onstation.org: checkpatch fixes; rename jdi,1080p-hammerhead binding to lg,acx467akm-7.] Signed-off-by: Brian Masney Reviewed-by: Linus Walleij Signed-off-by: Linus Walleij Link: https://patchwork.freedesktop.org/patch/msgid/20181124200628.24393-2-masneyb@onstation.org commit 9e0b597534b4c065e2c083c7478d6f3175088fdd Author: Brian Masney Date: Sat Nov 24 15:06:27 2018 -0500 dt-bindings: drm/panel: simple: add lg,acx467akm-7 panel Add binding for the LG ACX467AKM-7 4.95" 1080×1920 LCD panel that is found on the LG Nexus 5 (hammerhead) phone. This appears to be a JDI panel based on some Internet searches, however a specific model number could not be found. I disassembled an old Nexus 5 with a broken screen and the LG part number is the only model number present on the back of the panel, so I think that is probably the best ID to use. Signed-off-by: Brian Masney Reviewed-by: Linus Walleij Signed-off-by: Linus Walleij Link: https://patchwork.freedesktop.org/patch/msgid/20181124200628.24393-1-masneyb@onstation.org commit bd84995f062563d731bd00f5d017b71d2edd573c Author: Linus Walleij Date: Tue Apr 16 16:28:44 2019 +0200 drm/mcde: Add device tree bindings This adds the device tree bindings for the ST-Ericsson Multi Channel Display Engine MCDE as found in the U8500 SoCs. Cc: devicetree@vger.kernel.org Reviewed-by: Rob Herring Signed-off-by: Linus Walleij Link: https://patchwork.freedesktop.org/patch/msgid/20190416142844.12038-1-linus.walleij@linaro.org commit dbb92471674a48892f5e50779425e03388073ab9 Author: Dave Airlie Date: Thu Apr 18 06:46:33 2019 +1000 Revert "drm: allow render capable master with DRM_AUTH ioctls" This reverts commit 8059add0478e29cb641936011a8fcc9ce9fd80be. This commit while seemingly a good idea, breaks a radv check, for a node being master because something succeeds where it failed before now. Apply the Linus rule, revert early and try again, we don't break userspace. Signed-off-by: Dave Airlie commit bd53280ef042301ea9663824568ecba5a88b2f9d Author: Janusz Krzysztofik Date: Wed Apr 17 15:32:31 2019 +0200 drm/drv: Fix incorrect resolution of merge conflict Commit f06ddb53096b ("BackMerge v5.1-rc5 into drm-next") incorrectly resolved a merge conflict related to a patch having been merged twice: - commit 3f04e0a6cfeb ("drm: Fix drm_release() and device unplug") introduced as a standalone fix via drm-fixes branch, - commit 1ee57d4d75fb ("drm: Fix drm_release() and device unplug") applied as patch 1/2 of a series on drm-next branch. That incorrect resolution of the conflict effectively reverted a change introduced to drivers/gpu/drm/drm_drv.c by patch 2/2 of that series - commit ba3bf37e150a ("drm/drv: drm_dev_unplug(): Move out drm_dev_put() call"). Fix it. Fixes: f06ddb53096b ("BackMerge v5.1-rc5 into drm-next") Signed-off-by: Janusz Krzysztofik Signed-off-by: Dave Airlie Link: https://patchwork.freedesktop.org/patch/msgid/20190417133232.16232-1-janusz.krzysztofik@linux.intel.com commit ea094d53580f40c2124cef3d072b73b2425e7bfd Author: Wenwen Wang Date: Wed Apr 17 09:18:50 2019 -0500 x86/PCI: Fix PCI IRQ routing table memory leak In pcibios_irq_init(), the PCI IRQ routing table 'pirq_table' is first found through pirq_find_routing_table(). If the table is not found and CONFIG_PCI_BIOS is defined, the table is then allocated in pcibios_get_irq_routing_table() using kmalloc(). Later, if the I/O APIC is used, this table is actually not used. In that case, the allocated table is not freed, which is a memory leak. Free the allocated table if it is not used. Signed-off-by: Wenwen Wang [bhelgaas: added Ingo's reviewed-by, since the only change since v1 was to use the irq_routing_table local variable name he suggested] Signed-off-by: Bjorn Helgaas Reviewed-by: Ingo Molnar Acked-by: Thomas Gleixner commit 804ee5be633f051f85270ae3f4770a5fc6cd92d5 Author: Johannes Thumshirn Date: Wed Apr 17 10:23:56 2019 +0200 PCI: Remove unused pci_request_region_exclusive() pci_request_region_exclusive() was introduced with commit e8de1481fd71 ("resource: allow MMIO exclusivity for device drivers") in 2.6.29 which was released 2008. It never had an in tree user since then, so after 11 years later let's remove it. Signed-off-by: Johannes Thumshirn Signed-off-by: Bjorn Helgaas commit 2143bf6d7cfe74feb5694fba7e9000ddcd5fb25e Author: Wen Yang Date: Wed Apr 17 10:43:03 2019 +0800 power: supply: core: fix leaked of_node refs in power_supply_get_battery_info The call to of_parse_phandle returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: ./drivers/power/supply/power_supply_core.c:601:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 595, but without a corresponding object release within this function. ./drivers/power/supply/power_supply_core.c:604:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 595, but without a corresponding object release within this function. ./drivers/power/supply/power_supply_core.c:632:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 595, but without a corresponding object release within this function. ./drivers/power/supply/power_supply_core.c:635:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 595, but without a corresponding object release within this function. ./drivers/power/supply/power_supply_core.c:653:3-9: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 595, but without a corresponding object release within this function. ./drivers/power/supply/power_supply_core.c:664:3-9: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 595, but without a corresponding object release within this function. ./drivers/power/supply/power_supply_core.c:673:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 595, but without a corresponding object release within this function. Signed-off-by: Wen Yang Signed-off-by: Sebastian Reichel commit 0b646fd1b1963bf44fe81853e89f3469aeb94a6c Author: Wen Yang Date: Wed Apr 17 10:43:02 2019 +0800 power: supply: ab8500: fix leaked of_node refs in ab8500_bm_of_probe The call to of_parse_phandle returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. 492 int ab8500_bm_of_probe(struct device *dev, 493 struct device_node *np, 494 struct abx500_bm_data *bm) 495 { 496 const struct batres_vs_temp *tmp_batres_tbl; 497 struct device_node *battery_node; ... 501 /* get phandle to 'battery-info' node */ 502 battery_node = of_parse_phandle(np, "battery", 0); ... 509 if (!btech) { 510 dev_warn(dev, "missing property battery-name/type\n"); 511 return -EINVAL; ---> leaked here 512 } ... 540 of_node_put(battery_node); ---> released here 541 542 return 0; 543 } Detected by coccinelle with the following warnings: ./drivers/power/supply/ab8500_bmdata.c:511:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 502, but without a corresponding object release within this function. Signed-off-by: Wen Yang Signed-off-by: Sebastian Reichel commit 2dbce590117981196fe355efc0569bc6f949ae9b Author: Subbaraya Sundeep Date: Mon Nov 19 18:44:32 2018 +0530 PCI: Assign bus numbers present in EA capability for bridges The "Enhanced Allocation (EA) for Memory and I/O Resources" ECN, approved 23 October 2014, sec 6.9.1.2, specifies a second DW in the capability for type 1 (bridge) functions to describe fixed secondary and subordinate bus numbers. This ECN was included in the PCIe r4.0 spec, but sec 6.9.1.2 was omitted, presumably by mistake. Read fixed bus numbers from the EA capability for bridges. Signed-off-by: Subbaraya Sundeep [bhelgaas: add pci_ea_fixed_busnrs() return value] Signed-off-by: Bjorn Helgaas commit e9fee6fe08eef51cd9a7455d18b9011f1e463f22 Merge: e2c3c94788b0 0336e04a6520 Author: Thomas Gleixner Date: Wed Apr 17 21:38:16 2019 +0200 Merge branch 'core/speculation' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git Pull in the command line updates from the tip tree so the MDS parts can be added. commit 0336e04a6520bdaefdb0769d2a70084fa52e81ed Author: Josh Poimboeuf Date: Fri Apr 12 15:39:31 2019 -0500 s390/speculation: Support 'mitigations=' cmdline option Configure s390 runtime CPU speculation bug mitigations in accordance with the 'mitigations=' cmdline option. This affects Spectre v1 and Spectre v2. The default behavior is unchanged. Signed-off-by: Josh Poimboeuf Signed-off-by: Thomas Gleixner Tested-by: Jiri Kosina (on x86) Reviewed-by: Jiri Kosina Cc: Borislav Petkov Cc: "H . Peter Anvin" Cc: Andy Lutomirski Cc: Peter Zijlstra Cc: Jiri Kosina Cc: Waiman Long Cc: Andrea Arcangeli Cc: Jon Masters Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: linuxppc-dev@lists.ozlabs.org Cc: Martin Schwidefsky Cc: Heiko Carstens Cc: linux-s390@vger.kernel.org Cc: Catalin Marinas Cc: Will Deacon Cc: linux-arm-kernel@lists.infradead.org Cc: linux-arch@vger.kernel.org Cc: Greg Kroah-Hartman Cc: Tyler Hicks Cc: Linus Torvalds Cc: Randy Dunlap Cc: Steven Price Cc: Phil Auld Link: https://lkml.kernel.org/r/e4a161805458a5ec88812aac0307ae3908a030fc.1555085500.git.jpoimboe@redhat.com commit 782e69efb3dfed6e8360bc612e8c7827a901a8f9 Author: Josh Poimboeuf Date: Fri Apr 12 15:39:30 2019 -0500 powerpc/speculation: Support 'mitigations=' cmdline option Configure powerpc CPU runtime speculation bug mitigations in accordance with the 'mitigations=' cmdline option. This affects Meltdown, Spectre v1, Spectre v2, and Speculative Store Bypass. The default behavior is unchanged. Signed-off-by: Josh Poimboeuf Signed-off-by: Thomas Gleixner Tested-by: Jiri Kosina (on x86) Reviewed-by: Jiri Kosina Cc: Borislav Petkov Cc: "H . Peter Anvin" Cc: Andy Lutomirski Cc: Peter Zijlstra Cc: Jiri Kosina Cc: Waiman Long Cc: Andrea Arcangeli Cc: Jon Masters Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: linuxppc-dev@lists.ozlabs.org Cc: Martin Schwidefsky Cc: Heiko Carstens Cc: linux-s390@vger.kernel.org Cc: Catalin Marinas Cc: Will Deacon Cc: linux-arm-kernel@lists.infradead.org Cc: linux-arch@vger.kernel.org Cc: Greg Kroah-Hartman Cc: Tyler Hicks Cc: Linus Torvalds Cc: Randy Dunlap Cc: Steven Price Cc: Phil Auld Link: https://lkml.kernel.org/r/245a606e1a42a558a310220312d9b6adb9159df6.1555085500.git.jpoimboe@redhat.com commit d68be4c4d31295ff6ae34a8ddfaa4c1a8ff42812 Author: Josh Poimboeuf Date: Fri Apr 12 15:39:29 2019 -0500 x86/speculation: Support 'mitigations=' cmdline option Configure x86 runtime CPU speculation bug mitigations in accordance with the 'mitigations=' cmdline option. This affects Meltdown, Spectre v2, Speculative Store Bypass, and L1TF. The default behavior is unchanged. Signed-off-by: Josh Poimboeuf Signed-off-by: Thomas Gleixner Tested-by: Jiri Kosina (on x86) Reviewed-by: Jiri Kosina Cc: Borislav Petkov Cc: "H . Peter Anvin" Cc: Andy Lutomirski Cc: Peter Zijlstra Cc: Jiri Kosina Cc: Waiman Long Cc: Andrea Arcangeli Cc: Jon Masters Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: linuxppc-dev@lists.ozlabs.org Cc: Martin Schwidefsky Cc: Heiko Carstens Cc: linux-s390@vger.kernel.org Cc: Catalin Marinas Cc: Will Deacon Cc: linux-arm-kernel@lists.infradead.org Cc: linux-arch@vger.kernel.org Cc: Greg Kroah-Hartman Cc: Tyler Hicks Cc: Linus Torvalds Cc: Randy Dunlap Cc: Steven Price Cc: Phil Auld Link: https://lkml.kernel.org/r/6616d0ae169308516cfdf5216bedd169f8a8291b.1555085500.git.jpoimboe@redhat.com commit 98af8452945c55652de68536afdde3b520fec429 Author: Josh Poimboeuf Date: Fri Apr 12 15:39:28 2019 -0500 cpu/speculation: Add 'mitigations=' cmdline option Keeping track of the number of mitigations for all the CPU speculation bugs has become overwhelming for many users. It's getting more and more complicated to decide which mitigations are needed for a given architecture. Complicating matters is the fact that each arch tends to have its own custom way to mitigate the same vulnerability. Most users fall into a few basic categories: a) they want all mitigations off; b) they want all reasonable mitigations on, with SMT enabled even if it's vulnerable; or c) they want all reasonable mitigations on, with SMT disabled if vulnerable. Define a set of curated, arch-independent options, each of which is an aggregation of existing options: - mitigations=off: Disable all mitigations. - mitigations=auto: [default] Enable all the default mitigations, but leave SMT enabled, even if it's vulnerable. - mitigations=auto,nosmt: Enable all the default mitigations, disabling SMT if needed by a mitigation. Currently, these options are placeholders which don't actually do anything. They will be fleshed out in upcoming patches. Signed-off-by: Josh Poimboeuf Signed-off-by: Thomas Gleixner Tested-by: Jiri Kosina (on x86) Reviewed-by: Jiri Kosina Cc: Borislav Petkov Cc: "H . Peter Anvin" Cc: Andy Lutomirski Cc: Peter Zijlstra Cc: Jiri Kosina Cc: Waiman Long Cc: Andrea Arcangeli Cc: Jon Masters Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: linuxppc-dev@lists.ozlabs.org Cc: Martin Schwidefsky Cc: Heiko Carstens Cc: linux-s390@vger.kernel.org Cc: Catalin Marinas Cc: Will Deacon Cc: linux-arm-kernel@lists.infradead.org Cc: linux-arch@vger.kernel.org Cc: Greg Kroah-Hartman Cc: Tyler Hicks Cc: Linus Torvalds Cc: Randy Dunlap Cc: Steven Price Cc: Phil Auld Link: https://lkml.kernel.org/r/b07a8ef9b7c5055c3a4637c87d07c296d5016fe0.1555085500.git.jpoimboe@redhat.com commit 442e321ed223d9c01a444c6f874e32fb283c17d2 Author: YueHaibing Date: Wed Apr 17 22:57:22 2019 +0800 ALSA: ps3: Remove set but not used variables 'start_vaddr' and 'pcm_index' Fixes gcc '-Wunused-but-set-variable' warnings: sound/ppc/snd_ps3.c: In function 'snd_ps3_program_dma': sound/ppc/snd_ps3.c:236:8: warning: variable 'start_vaddr' set but not used [-Wunused-but-set-variable] sound/ppc/snd_ps3.c: In function 'snd_ps3_pcm_open': sound/ppc/snd_ps3.c:529:6: warning: variable 'pcm_index' set but not used [-Wunused-but-set-variable] They are never used and can be removed. Reported-by: Hulk Robot Signed-off-by: YueHaibing Acked-by: Geoff Levand Signed-off-by: Takashi Iwai commit e2c3c94788b08891dcf3dbe608f9880523ecd71b Author: Konrad Rzeszutek Wilk Date: Fri Apr 12 17:50:58 2019 -0400 x86/speculation/mds: Print SMT vulnerable on MSBDS with mitigations off This code is only for CPUs which are affected by MSBDS, but are *not* affected by the other two MDS issues. For such CPUs, enabling the mds_idle_clear mitigation is enough to mitigate SMT. However if user boots with 'mds=off' and still has SMT enabled, we should not report that SMT is mitigated: $cat /sys//devices/system/cpu/vulnerabilities/mds Vulnerable; SMT mitigated But rather: Vulnerable; SMT vulnerable Signed-off-by: Konrad Rzeszutek Wilk Signed-off-by: Thomas Gleixner Reviewed-by: Tyler Hicks Reviewed-by: Josh Poimboeuf Link: https://lkml.kernel.org/r/20190412215118.294906495@localhost.localdomain commit cae5ec342645746d617dd420d206e1588d47768a Author: Boris Ostrovsky Date: Fri Apr 12 17:50:57 2019 -0400 x86/speculation/mds: Fix comment s/L1TF/MDS/ Signed-off-by: Boris Ostrovsky Signed-off-by: Konrad Rzeszutek Wilk Signed-off-by: Thomas Gleixner Reviewed-by: Tyler Hicks Reviewed-by: Josh Poimboeuf commit 6b0a7f84ea1fe248df96ccc4dd86e817e32ef65b Merge: cea0aa9cbd5a fe5cdef29e41 Author: David S. Miller Date: Wed Apr 17 11:26:25 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Conflict resolution of af_smc.c from Stephen Rothwell. Signed-off-by: David S. Miller commit 852ce7285c99e3f7b56e76511e1b33c645a2b648 Author: Neil Armstrong Date: Mon Apr 8 11:01:37 2019 +0200 drm/meson: add size and alignment requirements for dumb buffers The Amlogic SoCs Canvas buffers stride must be aligned on 64bytes and overall size should be aligned on PAGE width. Adds a custom dumb_create op to adds these requirements. Fixes: bbbe775ec5b5 ("drm: Add support for Amlogic Meson Graphic Controller") Suggested-by: Sky Zhou Signed-off-by: Neil Armstrong Reviewed-by: Sky Zhou Link: https://patchwork.freedesktop.org/patch/msgid/20190408090137.2402-1-narmstrong@baylibre.com commit 2ccb8433ebe8dc99ed7cd0e3b8ff6976dcc05e3d Author: YueHaibing Date: Sat Apr 13 22:14:55 2019 +0800 drm/meson: Make some functions static Fix sparse warnings: drivers/gpu/drm/meson/meson_viu.c:93:6: warning: symbol 'meson_viu_set_g12a_osd1_matrix' was not declared. Should it be static? drivers/gpu/drm/meson/meson_viu.c:121:6: warning: symbol 'meson_viu_set_osd_matrix' was not declared. Should it be static? drivers/gpu/drm/meson/meson_viu.c:190:6: warning: symbol 'meson_viu_set_osd_lut' was not declared. Should it be static? Signed-off-by: YueHaibing Acked-by: Neil Armstrong Signed-off-by: Neil Armstrong Link: https://patchwork.freedesktop.org/patch/msgid/20190413141455.34020-1-yuehaibing@huawei.com commit 9a75bd18a85bec5d6d0006a3dba6ff78f65d8fe3 Author: Arnd Bergmann Date: Mon Apr 15 17:55:00 2019 +0200 ipmi: avoid atomic_inc in exit function This causes a link failure on ARM in certain configurations, when we reference each atomic operation from .alt.smp.init in order to patch out atomics on non-SMP systems: `.exit.text' referenced in section `.alt.smp.init' of drivers/char/ipmi/ipmi_msghandler.o: defined in discarded section `.exit.text' of drivers/char/ipmi/ipmi_msghandler.o In this case, we can trivially replace the atomic_inc() with an atomic_set() that has the same effect and does not require a fixup. Signed-off-by: Arnd Bergmann Message-Id: <20190415155509.3565087-1-arnd@arndb.de> Signed-off-by: Corey Minyard commit 8fac128ce9a12908b5089ee5e3be435b42e59cac Author: Corey Minyard Date: Fri Apr 12 20:46:34 2019 -0500 ipmi: Remove file from ipmi_file_private It's not used by anything, so just get rid of it. Reported-by: Al Viro Signed-off-by: Corey Minyard commit af4085ddd99b4d794987d88fcc245091f82890bc Author: Dan Carpenter Date: Fri Mar 22 09:54:26 2019 +0300 ipmi_si: remove an unused variable in try_smi_init() The "init_name" variable isn't used any more after commit 90b2d4f15ff7 ("ipmi_si: Remove hacks for adding a dummy platform devices"). Signed-off-by: Dan Carpenter Message-Id: <20190322065426.GB12551@kadam> Signed-off-by: Corey Minyard commit 794a3b6b9f8af8a23bf127d8ec1cd1234ef3fb17 Author: YueHaibing Date: Wed Mar 20 21:35:05 2019 +0800 ipmi: Make ipmi_interfaces_srcu variable static Fix sparse warning: drivers/char/ipmi/ipmi_msghandler.c:635:20: warning: symbol 'ipmi_interfaces_srcu' was not declared. Should it be static? Signed-off-by: YueHaibing Message-Id: <20190320133505.21984-1-yuehaibing@huawei.com> Signed-off-by: Corey Minyard commit 7ebd8b66dd9e5a0b65e5ee5e2b8e7ca382ec97b7 Author: Mauro Carvalho Chehab Date: Wed Apr 17 06:46:29 2019 -0300 docs: hwmon: Add an index file and rename docs to *.rst Now that all files were converted to ReST format, rename them and add an index. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Guenter Roeck commit b04f2f7d387b3160883c2a1f5e2285483a791e82 Author: Mauro Carvalho Chehab Date: Wed Apr 17 06:46:28 2019 -0300 docs: hwmon: convert remaining files to ReST format Convert all other hwmon files to ReST format, in order to allow them to be parsed by Sphinx. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Guenter Roeck commit cea0aa9cbd5ad4efe267e9487ed5d48d16756253 Merge: 3a6f7892acc1 54a50941b7db Author: David S. Miller Date: Wed Apr 17 10:33:59 2019 -0700 Merge branch 's390-next' Julian Wiedmann says: ==================== s390/qeth: updates 2019-04-17 please apply some additional qeth patches to net-next. This patchset converts the driver to use the kernel's multiqueue model. ==================== Signed-off-by: David S. Miller commit 54a50941b7db8726732919daa859b931a9f496e2 Author: Julian Wiedmann Date: Wed Apr 17 18:17:35 2019 +0200 s390/qeth: stop/wake TX queues based on their fill level Current xmit code only stops the txq after attempting to fill an IO buffer that hasn't been TX-completed yet. In many-connection scenarios, this can result in frequent rejected TX attempts, requeuing of skbs with NETDEV_TX_BUSY and extra overhead. Now that we have a proper 1-to-1 relation between stack-side txqs and our HW Queues, overhaul the stop/wake logic so that the xmit code stops the txq as needed. Given that we might map multiple skbs into a single buffer, it's crucial to ensure that the queue always provides an _entirely_ empty IO buffer. Otherwise large skbs (eg TSO) might not fit into the last available buffer. So whenever qeth_do_send_packet() first utilizes an _empty_ buffer, it updates & checks the used_buffers count. This now ensures that an skb passed to qeth_xmit() can always be mapped into an IO buffer, so remove all of the -EBUSY roll-back handling in the TX path. We preserve the minimal safety-checks ("Is this IO buffer really available?"), just in case some nasty future bug ever attempts to corrupt an in-use buffer. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit e6c15b5f34a9c7dede9ba4b251f90abe5fbd40f6 Author: Julian Wiedmann Date: Wed Apr 17 18:17:34 2019 +0200 s390/qeth: simplify QoS code qeth_get_priority_queue() is no longer used for IQD devices, remove the special-casing of their mcast queue. This effectively reverts commit 70deb01662b1 ("qeth: omit outbound queue 3 for unicast packets in Priority Queuing on HiperSockets"). Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 73dc2daf110f4a4e777003b22dda09bb40948fc9 Author: Julian Wiedmann Date: Wed Apr 17 18:17:33 2019 +0200 s390/qeth: add TX multiqueue support for OSA devices This adds trivial support for multiple TX queues on OSA-style devices (both real HW and z/VM NICs). For now we expose the driver's existing QoS mechanism via .ndo_select_queue, and adjust the number of available TX queues when qeth_update_from_chp_desc() detects that the HW configuration has changed. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 3a18d75400ff14cf3518637579974e22aa0113bd Author: Julian Wiedmann Date: Wed Apr 17 18:17:32 2019 +0200 s390/qeth: add TX multiqueue support for IQD devices qeth has been supporting multiple HW Output Queues for a long time. But rather than exposing those queues to the stack, it uses its own queue selection logic in .ndo_start_xmit... with all the drawbacks that entails. Start off by switching IQD devices over to a proper mqs net_device, and converting all the netdev_queue management code. One oddity with IQD devices is the requirement to place all mcast traffic on the _highest_ established HW queue. Doing so via .ndo_select_queue seems straight-forward - but that won't work if only some of the HW queues are active (ie. when dev->real_num_tx_queues < dev->num_tx_queues), since netdev_cap_txqueue() will not allow us to put skbs on the higher queues. To make this work, we 1. let .ndo_select_queue() map all mcast traffic to netdev_queue 0, and 2. later re-map the netdev_queue and HW queue indices in .ndo_start_xmit and the TX completion handler. With this patch we default to a fixed set of 1 ucast and 1 mcast queue. Support for dynamic reconfiguration is added at a later time. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 333ef9d1d5fb68b5f53c5f7f3ceafb65a8a6ff7e Author: Julian Wiedmann Date: Wed Apr 17 18:17:31 2019 +0200 s390/qeth: don't keep statistics for tx timeout struct netdev_queue contains a counter for tx timeouts, which gets updated by dev_watchdog(). So let's not attempt to maintain our own statistics, in particular not by overloading the skb-error counter. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit fdd1a5303efb03bfa4016f29a519f0e553739069 Author: Julian Wiedmann Date: Wed Apr 17 18:17:30 2019 +0200 s390/qeth: don't bother updating the last-tx time As the documentation for netif_trans_update() says, netdev_start_xmit() already updates the last-tx time after every good xmit. So don't duplicate that effort. One odd case is that qeth_flush_buffers() also gets called from our TX completion handler, to flush out any partially filled buffer when we switch the queue to non-packing mode. But as the TX completion handler will _always_ wake the txq, we don't have to worry about the TX watchdog there. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit a4cdc9baee0740748f16e50cd70c2607510df492 Author: Julian Wiedmann Date: Wed Apr 17 18:17:29 2019 +0200 s390/qeth: handle error from qeth_update_from_chp_desc() Subsequent code relies on the values that qeth_update_from_chp_desc() reads from the CHP descriptor. Rather than dealing with weird errors later on, just handle it properly here. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 41c47da3b6e5b8e03d69c3391de0b22f31c3fea1 Author: Julian Wiedmann Date: Wed Apr 17 18:17:28 2019 +0200 s390/qeth: clarify naming for some QDIO helpers The naming of several QDIO helpers doesn't match their actual functionality, or the structures they operate on. Clean this up. s/qeth_alloc_qdio_buffers/qeth_alloc_qdio_queues s/qeth_free_qdio_buffers/qeth_free_qdio_queues s/qeth_alloc_qdio_out_buf/qeth_alloc_output_queue s/qeth_clear_outq_buffers/qeth_drain_output_queue s/qeth_clear_qdio_buffers/qeth_drain_output_queues Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 3a6f7892acc192050cad8f92445424238d06369f Merge: e77b8ba640b2 6e114debb2eb Author: David S. Miller Date: Wed Apr 17 10:31:21 2019 -0700 Merge branch '40GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== 40GbE Intel Wired LAN Driver Updates 2019-04-16 This series contains updates to i40e driver only. Adam fixes i40e so that queues can be restored to its original value if configuring queue channels fails. Bumped the maximum API version supported and added the API version to error messages to clarify supported firmware API versions. Fixed the problem with the driver being able to add only 7 multicast MAC address filters instead of 16. Aleksandr adds support for Dynamic Device Personalization (DDP) which allows loading profiles that change the way internal parser interprets processed frames. Nick fixes an issue where if we modify the VLAN stripping options when a port VLAN is configured, it will break traffic for the VSI, so prevent changes from being made. Jake fixes an issue where a device reset can mess up the clock time because we reset the clock time based on the kernel time every reset. This causes us to potentially completely reset the PTP time, and can cause unexpected behavior in programs like ptp4l. Piotr fixes an LED blink issue with the 'ethtool -p' command, so that identification blinking will work on all hardware. Chinh fixed the error returned to correctly reflect the current state when LLDP or DCBx is not in an operational state. Grzegorz cleans up a misleading error message when untrusted VF tries to exceed addresses beyond the NIC limit. Carolyn fixes the error return code to correctly reflect the error case. v2: updated the URL provided in the DDP patch (#2) ==================== Signed-off-by: David S. Miller commit e77b8ba640b24ed38d010daeab003d83cb1aa9c4 Merge: 17f780b36426 e9989339063d Author: David S. Miller Date: Wed Apr 17 10:14:28 2019 -0700 Merge branch 'stmmac-Enable-Flow-Control' Jose Abreu says: ==================== net: stmmac: Enable Flow Control I don't know of any specific reason why Flow Control is off by default but do let me know if there is any. Tested in B2B between XGMAC2 and GMAC5. ==================== Signed-off-by: David S. Miller commit e9989339063dd3a566b67caaa857e6077bfee2cb Author: Jose Abreu Date: Wed Apr 17 09:33:05 2019 +0200 net: stmmac: Set Flow Control to automatic mode in the driver By default Flow Control feature is not being enabled in stmmac. This is a useful feature that can prevent loss of packets and now that XGMAC already supports it (along with GMAC and QoS) it makes sense to activate it. Switch the module parameter to FLOW_AUTO so that Flow Control is activated. Signed-off-by: Jose Abreu Cc: Joao Pinto Cc: David S. Miller Cc: Giuseppe Cavallaro Cc: Alexandre Torgue Signed-off-by: David S. Miller commit ff82cfc783986f6c64ba947ef2d8ae39f515e40a Author: Jose Abreu Date: Wed Apr 17 09:33:04 2019 +0200 net: stmmac: dwxgmac: Finish the Flow Control implementation Finish the implementation of Flow Control feature. In order for it to work correctly we need to set EHFC bit and the correct threshold values for activating and deactivating it. Signed-off-by: Jose Abreu Cc: Joao Pinto Cc: David S. Miller Cc: Giuseppe Cavallaro Cc: Alexandre Torgue Signed-off-by: David S. Miller commit 1f2f0599579cac371cf9db05a1b00e066db401fb Author: YueHaibing Date: Tue Apr 16 22:58:55 2019 +0800 drm/sun4i: Make some symbols static Fix sparse warnings: drivers/gpu/drm/sun4i/sun8i_tcon_top.c:271:36: warning: symbol 'sun8i_r40_tcon_top_quirks' was not declared. Should it be static? drivers/gpu/drm/sun4i/sun8i_tcon_top.c:276:36: warning: symbol 'sun50i_h6_tcon_top_quirks' was not declared. Should it be static? drivers/gpu/drm/sun4i/sun4i_tcon.c:239:6: warning: symbol 'sun4i_tcon_set_mux' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing Signed-off-by: Maxime Ripard Link: https://patchwork.freedesktop.org/patch/msgid/20190416145855.20852-1-yuehaibing@huawei.com commit b32570a4f0919569bcba13a5419ea97ca5c1d3cf Author: Mauro Carvalho Chehab Date: Wed Apr 17 06:46:27 2019 -0300 docs: hwmon: misc files: convert to ReST format Convert other files maintained by Guenter to ReST format, in order to allow them to be parsed by Sphinx. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Guenter Roeck commit 1f234ff1621787860cfcca6aa8fb626519405a72 Author: Mauro Carvalho Chehab Date: Wed Apr 17 06:46:26 2019 -0300 docs: hwmon: pmbus files: convert to ReST format Convert pmbus files to ReST format, in order to allow them to be parsed by Sphinx. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Guenter Roeck commit 0d9256262f92d26ebd29ee469bd07761a9835739 Author: Mauro Carvalho Chehab Date: Wed Apr 17 06:46:25 2019 -0300 docs: hwmon: k8temp, w83793: convert to ReST format Convert k8temp and w83793 to ReST format, in order to allow them to be parsed by Sphinx. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Guenter Roeck commit 08fae079ea750eec86a5ca7844c0a0a914e70fc2 Author: Mauro Carvalho Chehab Date: Wed Apr 17 06:46:24 2019 -0300 docs: hwmon: da9052, da9055: convert to ReST format Convert da9052 and da9055 to ReST format, in order to allow them to be parsed by Sphinx. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Guenter Roeck commit 4f1158b355a888bc612b8f37d2f9aad7032e55a3 Author: Mauro Carvalho Chehab Date: Wed Apr 17 06:46:23 2019 -0300 docs: hwmon: wm831x, wm8350: convert to ReST format Convert wm831x and wm8350 to ReST format, in order to allow them to be parsed by Sphinx. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Guenter Roeck commit cdc39b091b9d756d62edb74d23a62bd6dba0453d Author: Mauro Carvalho Chehab Date: Wed Apr 17 06:46:22 2019 -0300 docs: hwmon: dme1737, vt1211: convert to ReST format Convert dme1737 and vt1211 to ReST format, in order to allow them to be parsed by Sphinx. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Guenter Roeck commit 33ffc74ffa3d7ae9946524dfeaea6f4b251909a5 Author: Mauro Carvalho Chehab Date: Wed Apr 17 06:46:21 2019 -0300 docs: hwmon: ads1015: convert to ReST format Convert ads1015 to ReST format, in order to allow it to be parsed by Sphinx. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Guenter Roeck commit 1288cfe0437e3affee6cccc68e288eb6492c1f8b Author: Mauro Carvalho Chehab Date: Wed Apr 17 06:46:20 2019 -0300 docs: hwmon: asc7621: convert to ReST format Convert asc7621 to ReST format, in order to allow it to be parsed by Sphinx. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Guenter Roeck commit a4710b72190a5ee1953ffba60cdbdced52a28466 Author: Mauro Carvalho Chehab Date: Wed Apr 17 06:46:19 2019 -0300 docs: hwmon: ibmpowernv: convert to ReST format Convert ibmpowernv to ReST format, in order to allow it to be parsed by Sphinx. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Guenter Roeck commit 9e929c6745da58ab64d2d462ba46b661c03d2060 Author: Mauro Carvalho Chehab Date: Wed Apr 17 06:46:18 2019 -0300 docs: hwmon: aspeed-pwm-tacho: convert to ReST format Convert aspeed-pwm-tacho to ReST format, in order to allow it to be parsed by Sphinx. Signed-off-by: Mauro Carvalho Chehab Acked-by: Andrew Jeffery Signed-off-by: Guenter Roeck commit 270efaa46c2e354a13d03ce08a5e29596ce50a86 Author: Mauro Carvalho Chehab Date: Wed Apr 17 06:46:17 2019 -0300 docs: hwmon: coretemp: convert to ReST format Convert coretemp to ReST format, in order to allow it to be parsed by Sphinx. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Guenter Roeck commit ce09cfb600d373f338809379de5de40fedf9532c Author: Mauro Carvalho Chehab Date: Wed Apr 17 06:46:16 2019 -0300 docs: hwmon: w83791d: convert to ReST format Convert w83791d to ReST format, in order to allow it to be parsed by Sphinx. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Guenter Roeck commit b413e3fa7fb05a8eea42473456b863c3b2a5511d Author: Mauro Carvalho Chehab Date: Wed Apr 17 06:46:15 2019 -0300 docs: hwmon: fam15h_power: convert to ReST format Convert fam15h_power to ReST format, in order to allow it to be parsed by Sphinx. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Guenter Roeck commit a9fc881b9bac7c4ae1e8569ba93e8600ce1a1c09 Author: Mauro Carvalho Chehab Date: Wed Apr 17 06:46:14 2019 -0300 docs: hwmon: pc87360: convert to ReST format Convert pc87360 to ReST format, in order to allow it to be parsed by Sphinx. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Guenter Roeck commit 92e395d7b1738f39cfa9f18b9bd77df8f4b7bc50 Author: Mauro Carvalho Chehab Date: Wed Apr 17 06:46:13 2019 -0300 docs: hwmon: emc2103: convert to ReST format Convert emc2103 to ReST format, in order to allow it to be parsed by Sphinx. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Guenter Roeck commit 42c027a5b7ba04224080ff46b6ef44658ad7554e Author: Mauro Carvalho Chehab Date: Wed Apr 17 06:46:12 2019 -0300 docs: hwmon: sch5627: convert to ReST format Convert sch5627 to ReST format, in order to allow it to be parsed by Sphinx. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Guenter Roeck commit de6f291746075c1c6759747105cbca667f5abb8f Author: Mauro Carvalho Chehab Date: Wed Apr 17 06:46:11 2019 -0300 docs: hwmon: menf21bmc: convert to ReST format Convert menf21bmc to ReST format, in order to allow it to be parsed by Sphinx. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Guenter Roeck commit a449dff630eb9a78d38c7db39428db8a9079b9ea Author: Mauro Carvalho Chehab Date: Wed Apr 17 06:46:10 2019 -0300 docs: hwmon: vexpress: convert to ReST format Convert vexpress to ReST format, in order to allow it to be parsed by Sphinx. Signed-off-by: Mauro Carvalho Chehab Acked-by: Liviu Dudau Signed-off-by: Guenter Roeck commit 2c58d548f5706d085c4b009f6abb945220460632 Author: Eric Biggers Date: Wed Apr 10 13:21:15 2019 -0700 fscrypt: cache decrypted symlink target in ->i_link Path lookups that traverse encrypted symlink(s) are very slow because each encrypted symlink needs to be decrypted each time it's followed. This also involves dropping out of rcu-walk mode. Make encrypted symlinks faster by caching the decrypted symlink target in ->i_link. The first call to fscrypt_get_symlink() sets it. Then, the existing VFS path lookup code uses the non-NULL ->i_link to take the fast path where ->get_link() isn't called, and lookups in rcu-walk mode remain in rcu-walk mode. Also set ->i_link immediately when a new encrypted symlink is created. To safely free the symlink target after an RCU grace period has elapsed, introduce a new function fscrypt_free_inode(), and make the relevant filesystems call it just before actually freeing the inode. Cc: Al Viro Signed-off-by: Eric Biggers Signed-off-by: Theodore Ts'o commit 4c4f7c19b3c721aed418bc97907b411608c5c6a0 Author: Eric Biggers Date: Wed Apr 10 13:21:14 2019 -0700 vfs: use READ_ONCE() to access ->i_link Use 'READ_ONCE(inode->i_link)' to explicitly support filesystems caching the symlink target in ->i_link later if it was unavailable at iget() time, or wasn't easily available. I'll be doing this in fscrypt, to improve the performance of encrypted symlinks on ext4, f2fs, and ubifs. ->i_link will start NULL and may later be set to a non-NULL value by a smp_store_release() or cmpxchg_release(). READ_ONCE() is needed on the read side. smp_load_acquire() is unnecessary because only a data dependency barrier is required. (Thanks to Al for pointing this out.) Acked-by: Al Viro Signed-off-by: Eric Biggers Signed-off-by: Theodore Ts'o commit 362af736508134dddcc4cccd575fbb7c22c29712 Author: Axel Lin Date: Wed Apr 17 22:16:32 2019 +0800 regulator: wm8400: Switch to SPDX identifier Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 87dbc5eb3cff166f8107f5be6a53db858211f23e Author: Axel Lin Date: Wed Apr 17 22:16:31 2019 +0800 regulator: wm8350: Switch to SPDX identifier Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 3cad5fc89ac97e4b0bf5a011d54617ee8b9eeb11 Author: Axel Lin Date: Wed Apr 17 22:16:30 2019 +0800 regulator: wm831x: Switch to SPDX identifier Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit dfc0c82b3368b26250b4e960ee78ef909feba364 Author: Axel Lin Date: Wed Apr 17 22:16:29 2019 +0800 regulator: arizona: Switch to SPDX identifier Signed-off-by: Axel Lin Acked-by: Richard Fitzgerald Signed-off-by: Mark Brown commit e8d59d9a79a1a40e909d5558fb2fa65d733c7a66 Author: Axel Lin Date: Wed Apr 17 22:16:33 2019 +0800 regulator: wm8994: Switch to SPDX identifier Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit f8e8cfda6569859c339ffacbb93e02d9cdb08574 Author: Mauro Carvalho Chehab Date: Wed Apr 17 06:46:09 2019 -0300 docs: hwmon: k10temp: convert to ReST format Convert k10temp to ReST format, in order to allow it to be parsed by Sphinx. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Guenter Roeck commit dc62f951a6a8490bcccc7b6de36cd85bd57be740 Author: Wei Yongjun Date: Wed Apr 17 02:30:59 2019 +0000 regulator: stm32-pwr: Fix return value check in stm32_pwr_regulator_probe() In case of error, the function of_iomap() returns NULL pointer not ERR_PTR(). The IS_ERR() test in the return value check should be replaced with NULL test. Fixes: 6cdae8173f67 ("regulator: Add support for stm32 power regulators") Signed-off-by: Wei Yongjun Signed-off-by: Mark Brown commit 82f26185a91298a21aa33a985893dd5f8ed4c75a Author: kbuild test robot Date: Tue Apr 16 00:52:38 2019 +0800 regulator: ready_mask_table[] can be static Fixes: 6cdae8173f67 ("regulator: Add support for stm32 power regulators") Signed-off-by: kbuild test robot Signed-off-by: Mark Brown commit 0750e8344eb7c48f82a54920172a5d0f78eb223b Author: Magnus Damm Date: Thu Apr 18 00:12:32 2019 +0900 ARM: dts: ape6evm: Reorder bootargs Reorder bootargs parameters to make the APE6EVM board bootargs match other boards from Renesas. No need to be special. Signed-off-by: Magnus Damm Signed-off-by: Simon Horman commit ee8b7420feaecffa56bf2784fa4b6a6038b390f2 Author: Magnus Damm Date: Thu Apr 18 00:12:23 2019 +0900 ARM: dts: marzen: Add rw to bootargs and use ip=dhcp Add rw as bootargs parameter and change from ip=on to ip=dhcp to make the Marzen board bootargs match other boards from Renesas. No need to be special. Signed-off-by: Magnus Damm Signed-off-by: Simon Horman commit 44861e54861ef99f4bec4b084eeeee5010df7915 Author: Magnus Damm Date: Thu Apr 18 00:12:14 2019 +0900 ARM: dts: bockw: Reorder bootargs Reorder bootargs parameters to make the BockW board bootargs match other boards from Renesas. No need to be special. Signed-off-by: Magnus Damm Signed-off-by: Simon Horman commit 94b42a96dad89da7602828bab481feef70b76ccb Author: Magnus Damm Date: Thu Apr 18 00:12:04 2019 +0900 ARM: dts: kzm9d: Add rw parameter to bootargs Add rw as bootargs parameter to make the KZM9D board bootargs match other boards from Renesas. No need to be special. Signed-off-by: Magnus Damm Signed-off-by: Simon Horman commit 9733b072a12a422e2bf17bc7ba8b39769853d4a2 Author: Volodymyr Babchuk Date: Fri Sep 7 21:37:07 2018 +0300 optee: allow to work without static shared memory On virtualized systems it is possible that OP-TEE will provide only dynamic shared memory support. So it is fine to boot without static SHM enabled if dymanic one is supported. Signed-off-by: Volodymyr Babchuk Signed-off-by: Jens Wiklander commit 7aaee3d11689aee0f23f7bf4f6d7b4015bcdb467 Author: Maxime Ripard Date: Tue Apr 16 10:57:45 2019 +0200 ARM: dts: sun8i: mapleboard: Remove cd-inverted The cd-inverted property can also be expressed using the GPIO flags. Use the active low GPIO flag to have the same semantic without the confusion. Signed-off-by: Maxime Ripard commit 275b63178ff29231befa9c5b63d293ca37cdfb9e Author: Maxime Ripard Date: Tue Apr 16 10:57:46 2019 +0200 arm64: dts: allwinner: Fix DE2 bus node name According to the device tree specification, any bus should have a 'bus' node name. Since it isn't the case for us on the DE2 bus, fix that. Signed-off-by: Maxime Ripard commit 66dc4e4bfc0b3ce8b6cb14d31c3676b5dde623cf Author: Maxime Ripard Date: Tue Apr 16 10:57:44 2019 +0200 ARM: dts: sun5i: Reorder pinctrl nodes We try to keep the PIO nodes ordered alphabetically, but this doesn't always work out. Let's fix it. Signed-off-by: Maxime Ripard commit 4b03e16d3013a3991dec2ef44b9b7185338717a6 Author: Maxime Ripard Date: Tue Apr 16 10:57:43 2019 +0200 ARM: dts: sun6i: i7: Remove useless property The I7 DTS uses an spdif-out property with an "okay" value. However, that property isn't documented anywhere, and isn't used anywhere either. Remove it. Signed-off-by: Maxime Ripard commit 15a48503ccd8db4da9bf1e80ed01401b64e18d30 Author: Maxime Ripard Date: Tue Apr 16 10:57:42 2019 +0200 ARM: dts: sun4i: lime: Fix the USB PHY ID detect GPIO properties While the USB PHY Device Tree mandates that the name of the ID detect pin should be usb0_id_det-gpios, a significant number of device tree use usb0_id_det-gpio instead. This was functional because the GPIO framework falls back to the gpio suffix that is legacy, but we should fix this. Commit 2c515b0d05a9 ("ARM: sunxi: Fix the USB PHY ID detect GPIO properties") was supposed to fix this, but one fell through the cracks. Signed-off-by: Maxime Ripard commit 147f3d5cc676defa4d50871abd2cfaea6488c9cf Author: Maxime Ripard Date: Tue Apr 16 10:57:41 2019 +0200 ARM: dts: sun4i: protab2: Remove stale pinctrl-names entry Some nodes still have pinctrl-names entry, yet they don't have any pinctrl group anymore. Drop them. Signed-off-by: Maxime Ripard commit 2f03e39b5bfe41f3a0d9a8b01231e7e5045cb9c4 Author: Thierry Reding Date: Tue Jan 22 15:45:05 2019 +0100 arm64: tegra: Remove regulator hacks on Jetson TX2 Various regulators were marked as always-on for Jetson TX2. At this point, all of the regulators are properly hooked up, so this workaround is no longer required. Signed-off-by: Thierry Reding commit 72f8ae3f8d6dbde8d37e597489f9813c597e846b Author: Thierry Reding Date: Thu Jan 10 12:42:40 2019 +0100 arm64: tegra: Enable XUSB on P2771 Enable the relevant pads for XUSB support on P2771-0000 and hook up the USB supply voltage regulators to the ports. Signed-off-by: Thierry Reding commit 8bfde5183e982691bb75eda34c23898679b31cd6 Author: Thierry Reding Date: Mon Jul 24 17:18:44 2017 +0200 arm64: tegra: Add XUSB and pad controller on Tegra186 Adds the XUSB pad and XUSB controllers on Tegra186. Reviewed-by: JC Kuo Signed-off-by: Thierry Reding commit 4cb5d9eca143f7fbf8cc457be19a91914f978a00 Author: Thierry Reding Date: Wed Apr 10 10:47:28 2019 +0200 firmware: Move Trusted Foundations support Move the Trusted Foundations support out of arch/arm/firmware and into drivers/firmware where most other firmware support implementations are located. Signed-off-by: Thierry Reding commit 59579a8d173ea727561868bbe989f83b2d24216f Author: Jiri Kosina Date: Wed Apr 17 16:39:43 2019 +0200 HID: u2fzero: fail probe if not using USB transport u2fzero driver is USB-only. Therefore we have to give up in ->probe() callback in case we're called with non-USB transport driver bound, otherwise the kernel will crash trying to use USBHID API on a non-USB transport. Fixes: 42337b9d4d958("HID: add driver for U2F Zero built-in LED and RNG") Reported-by: Benjamin Tissoires Signed-off-by: Jiri Kosina commit a6f3d883a6ef19feee1d80bfd90701627b01b98a Author: Thierry Reding Date: Thu Apr 11 11:16:21 2019 +0200 ARM: Enable Trusted Foundations for multiplatform ARM v7 Some 32-bit Tegra devices supported by the multiplatform ARM v7 default configuration ship with the Trusted Foundations firmware. Enable support for it by default. Signed-off-by: Thierry Reding commit 3a4fea460eb71482440a2613f33366d40c3e2f49 Author: Thierry Reding Date: Thu Apr 11 11:11:28 2019 +0200 ARM: tegra: Enable Trusted Foundations by default Support for the Trusted Foundations firmware was recently moved outside of arch/arm and now needs to be selected explicitly. Since some 32-bit Tegra devices use this firmware, enable support for it in the default configuration. Signed-off-by: Thierry Reding commit 153f89ad37e1a023312af879006b1157b6430355 Author: Thierry Reding Date: Thu Apr 11 11:02:29 2019 +0200 ARM: tegra: Update default configuration for v5.1-rc1 Most of the changes here are just symbols that are now enabled by default, have been removed, or which have been moved around and now appear in a different spot. The only notable change here is that BACKLIGHT_CLASS_DEVICE is now built-in. This is to allow BACKLIGHT_PWM to be built-in as well. Signed-off-by: Thierry Reding commit 3aa5572cd8c98e94b9b384f0a88387e899068712 Merge: 9e98c678c2d6 35f8e2e29e74 Author: Thierry Reding Date: Wed Apr 17 16:35:24 2019 +0200 Merge tag 'multi-v7-defconfig-for-v5.2-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into for-5.2/arm/defconfig Update multi_v7_defconfig for dropped and moved options This series of two patches first updates multi_v7_defconfig for dropped options, and then updates it for moved options. We want to do this on regular basis to make it easier to patch multi_v7_defconfig without introducing errors and merge conflicts. We update the defconfig in two patches to make sure we're not accidentally losing any needed options. After this, updating multi_v7_defconfig will become trivial, and most likely only a small follow-up patches are needed after the merge window to update it again for moved options. commit de36d5451299b03e4647c73837d0068b3cc5b9ac Author: Thierry Reding Date: Mon Jan 21 17:11:10 2019 +0100 ARM: tegra: venice2: Move PLL power supplies to XUSB pad controller The XUSB pad controller is responsible for supplying power to the PLLs used to drive the various USB, PCI and SATA pads. Move the PLL power supplies from the PCIe and XUSB controllers to the XUSB pad controller to make sure they are available when needed. Signed-off-by: Thierry Reding commit 965ae23289d4d9cee1dba743b281daa7eb880146 Author: Thierry Reding Date: Mon Jan 21 17:10:30 2019 +0100 ARM: tegra: nyan: Move PLL power supplies to XUSB pad controller The XUSB pad controller is responsible for supplying power to the PLLs used to drive the various USB, PCI and SATA pads. Move the PLL power supplies from the XUSB controller to the XUSB pad controller to make sure they are available when needed. Signed-off-by: Thierry Reding commit cbfe6d036f2a78dcbe33d04ab954d97b43a9e166 Author: Thierry Reding Date: Mon Jan 21 17:09:55 2019 +0100 ARM: tegra: jetson-tk1: Move PLL power supplies to XUSB pad controller The XUSB pad controller is responsible for supplying power to the PLLs used to drive the various USB, PCI and SATA pads. Move the PLL power supplies from the PCIe and XUSB controllers to the XUSB pad controller to make sure they are available when needed. Signed-off-by: Thierry Reding commit 0c2f4ebbd7632e533ca0dfc39781c4b2cb632ec3 Author: Thierry Reding Date: Mon Jan 21 17:08:46 2019 +0100 ARM: tegra: apalis: Move PLL power supplies to XUSB pad controller The XUSB pad controller is responsible for supplying power to the PLLs used to drive the various USB, PCI and SATA pads. Move the PLL power supplies from the PCIe and XUSB controllers to the XUSB pad controller to make sure they are available when needed. Signed-off-by: Thierry Reding commit eb9d1bf079bb438d1a066d72337092935fc770f6 Author: Theodore Ts'o Date: Wed Feb 20 16:06:38 2019 -0500 random: only read from /dev/random after its pool has received 128 bits Immediately after boot, we allow reads from /dev/random before its entropy pool has been fully initialized. Fix this so that we don't allow this until the blocking pool has received 128 bits. We do this by repurposing the initialized flag in the entropy pool struct, and use the initialized flag in the blocking pool to indicate whether it is safe to pull from the blocking pool. To do this, we needed to rework when we decide to push entropy from the input pool to the blocking pool, since the initialized flag for the input pool was used for this purpose. To simplify things, we no longer use the initialized flag for that purpose, nor do we use the entropy_total field any more. Signed-off-by: Theodore Ts'o commit 4a28f63449d0398482e4fb4c8527055250e8e387 Author: Thierry Reding Date: Wed Apr 17 10:59:24 2019 +0200 ARM: tegra: Remove gratuitous parentheses in SPDX license identifier Parentheses in the SPDX license identifier are only used to group sub- expressions. If there's no need for such grouping, the parentheses can be omitted. Reviewed-by: Igor Opaniuk Signed-off-by: Thierry Reding commit 764ed189c82090c1d85f0e30636156736d8f09a8 Author: Rasmus Villemoes Date: Fri Nov 2 12:04:47 2018 +0100 drivers/char/random.c: make primary_crng static Since the definition of struct crng_state is private to random.c, and primary_crng is neither declared or used elsewhere, there's no reason for that symbol to have external linkage. Signed-off-by: Rasmus Villemoes Signed-off-by: Theodore Ts'o commit 3bd0b5bf7dc3ea02070fcbcd682ecf628269e8ef Author: Rasmus Villemoes Date: Fri Nov 2 12:04:46 2018 +0100 drivers/char/random.c: remove unused stuct poolinfo::poolbits This field is never used, might as well remove it. Signed-off-by: Rasmus Villemoes Signed-off-by: Theodore Ts'o commit 26e0854ab3310bbeef1ed404a2c87132fc91f8e1 Author: Rasmus Villemoes Date: Fri Nov 2 12:04:45 2018 +0100 drivers/char/random.c: constify poolinfo_table Never modified, might as well be put in .rodata. Signed-off-by: Rasmus Villemoes Signed-off-by: Theodore Ts'o commit 8cb35d345c08ba2dac3a9df705ae28305f7eaf97 Author: Igor Opaniuk Date: Wed Apr 10 09:10:07 2019 +0200 ARM: tegra: Convert to SPDX license tags for Tegra124 Apalis Replace boiler plate licenses texts with the SPDX license identifiers in Colibri/Apalis DTS files. Signed-off-by: Igor Opaniuk [treding@nvidia.com: drop unneeded parentheses, keep license at X11] Signed-off-by: Thierry Reding commit fd2450a77d3360ac3d54c84e0aa0672f4d8ad4b2 Author: Lucas Stach Date: Tue Feb 19 14:10:51 2019 +0100 drm/etnaviv: clean up etnaviv_gem_new_handle Setting the GFP flags does not need a new code block if moved to the right location, which makes this function a bit easier to read. Signed-off-by: Lucas Stach Reviewed-by: Philipp Zabel Reviewed-by: Christian Gmeiner commit 6772cd0eacc8f91a3539f99ae9d9678c455a9fc6 Author: Thierry Reding Date: Fri Jan 18 13:27:44 2019 +0100 arm64: tegra: Add NVIDIA Jetson Nano Developer Kit support The Jetson Nano Developer Kit is a Tegra X1 based development board. It is similar to Jetson TX1 but it is not pin compatible. It features 4 GB of LPDDR4, an SPI NOR flash for early boot firmware and an SD card slot used for storage. HDMI 2.0 or DP 1.2 are available for display, four USB ports (3 USB 2.0 and 1 USB 3.0) can be used to attach a variety of peripherals and a PCI Ethernet controller provides onboard network connectivity. An M.2 Key-E slot with PCIe x1 adds additional possibilities. A 40-pin header on the board can be used to extend the capabilities and exposed interfaces of the Jetson Nano. Acked-by: Jon Hunter Signed-off-by: Thierry Reding commit fa941e695e105bdf3c1b55b07a53dcef3c95c02e Author: Thierry Reding Date: Mon Jan 21 17:12:08 2019 +0100 arm64: tegra: smaug: Move PLL power supplies to XUSB pad controller The XUSB pad controller is responsible for supplying power to the PLLs used to drive the various USB, PCI and SATA pads. Move the PLL power supplies from the PCIe and XUSB controllers to the XUSB pad controller to make sure they are available when needed. Signed-off-by: Thierry Reding commit 8f68dcd74deb3591f94293e3b428f55b70bac087 Author: Thierry Reding Date: Mon Jan 21 17:11:54 2019 +0100 arm64: tegra: jetson-tx1: Move PLL power supplies to XUSB pad controller The XUSB pad controller is responsible for supplying power to the PLLs used to drive the various USB, PCI and SATA pads. Move the PLL power supplies from the PCIe and XUSB controllers to the XUSB pad controller to make sure they are available when needed. Signed-off-by: Thierry Reding commit b01531db6cec2aa330dbc91bfbfaaef4a0d387a4 Author: Eric Biggers Date: Wed Mar 20 11:39:13 2019 -0700 fscrypt: fix race where ->lookup() marks plaintext dentry as ciphertext ->lookup() in an encrypted directory begins as follows: 1. fscrypt_prepare_lookup(): a. Try to load the directory's encryption key. b. If the key is unavailable, mark the dentry as a ciphertext name via d_flags. 2. fscrypt_setup_filename(): a. Try to load the directory's encryption key. b. If the key is available, encrypt the name (treated as a plaintext name) to get the on-disk name. Otherwise decode the name (treated as a ciphertext name) to get the on-disk name. But if the key is concurrently added, it may be found at (2a) but not at (1a). In this case, the dentry will be wrongly marked as a ciphertext name even though it was actually treated as plaintext. This will cause the dentry to be wrongly invalidated on the next lookup, potentially causing problems. For example, if the racy ->lookup() was part of sys_mount(), then the new mount will be detached when anything tries to access it. This is despite the mountpoint having a plaintext path, which should remain valid now that the key was added. Of course, this is only possible if there's a userspace race. Still, the additional kernel-side race is confusing and unexpected. Close the kernel-side race by changing fscrypt_prepare_lookup() to also set the on-disk filename (step 2b), consistent with the d_flags update. Fixes: 28b4c263961c ("ext4 crypto: revalidate dentry after adding or removing the key") Signed-off-by: Eric Biggers Signed-off-by: Theodore Ts'o commit d456a33f041af4b54f3ce495a86d00c246165032 Author: Eric Biggers Date: Wed Mar 20 11:39:12 2019 -0700 fscrypt: only set dentry_operations on ciphertext dentries Plaintext dentries are always valid, so only set fscrypt_d_ops on ciphertext dentries. Besides marginally improved performance, this allows overlayfs to use an fscrypt-encrypted upperdir, provided that all the following are true: (1) The fscrypt encryption key is placed in the keyring before mounting overlayfs, and remains while the overlayfs is mounted. (2) The overlayfs workdir uses the same encryption policy. (3) No dentries for the ciphertext names of subdirectories have been created in the upperdir or workdir yet. (Since otherwise d_splice_alias() will reuse the old dentry with ->d_op set.) One potential use case is using an ephemeral encryption key to encrypt all files created or changed by a container, so that they can be securely erased ("crypto-shredded") after the container stops. Signed-off-by: Eric Biggers Signed-off-by: Theodore Ts'o commit 0bf3d5c1604ecbbd4e49e9f5b3c79152b87adb0d Author: Eric Biggers Date: Wed Mar 20 11:39:11 2019 -0700 fs, fscrypt: clear DCACHE_ENCRYPTED_NAME when unaliasing directory Make __d_move() clear DCACHE_ENCRYPTED_NAME on the source dentry. This is needed for when d_splice_alias() moves a directory's encrypted alias to its decrypted alias as a result of the encryption key being added. Otherwise, the decrypted alias will incorrectly be invalidated on the next lookup, causing problems such as unmounting a mount the user just mount()ed there. Note that we don't have to support arbitrary moves of this flag because fscrypt doesn't allow dentries with DCACHE_ENCRYPTED_NAME to be the source or target of a rename(). Fixes: 28b4c263961c ("ext4 crypto: revalidate dentry after adding or removing the key") Reported-by: Sarthak Kukreti Signed-off-by: Eric Biggers Signed-off-by: Theodore Ts'o commit 968dd6d0c6d6b6a989c6ddb9e2584a031b83e7b5 Author: Eric Biggers Date: Wed Mar 20 11:39:10 2019 -0700 fscrypt: fix race allowing rename() and link() of ciphertext dentries Close some race conditions where fscrypt allowed rename() and link() on ciphertext dentries that had been looked up just prior to the key being concurrently added. It's better to return -ENOKEY in this case. This avoids doing the nonsensical thing of encrypting the names a second time when searching for the actual on-disk dir entries. It also guarantees that DCACHE_ENCRYPTED_NAME dentries are never rename()d, so the dcache won't have support all possible combinations of moving DCACHE_ENCRYPTED_NAME around during __d_move(). Signed-off-by: Eric Biggers Signed-off-by: Theodore Ts'o commit 6cc248684d3d23bbd073ae2fa73d3416c0558909 Author: Eric Biggers Date: Wed Mar 20 11:39:09 2019 -0700 fscrypt: clean up and improve dentry revalidation Make various improvements to fscrypt dentry revalidation: - Don't try to handle the case where the per-directory key is removed, as this can't happen without the inode (and dentries) being evicted. - Flag ciphertext dentries rather than plaintext dentries, since it's ciphertext dentries that need the special handling. - Avoid doing unnecessary work for non-ciphertext dentries. - When revalidating ciphertext dentries, try to set up the directory's i_crypt_info to make sure the key is really still absent, rather than invalidating all negative dentries as the previous code did. An old comment suggested we can't do this for locking reasons, but AFAICT this comment was outdated and it actually works fine. Signed-off-by: Eric Biggers Signed-off-by: Theodore Ts'o commit 117ed45485413b1977bfc638c32bf5b01d53c62b Author: Thomas Gleixner Date: Sun Apr 14 18:00:08 2019 +0200 x86/irq/64: Remove stack overflow debug code All stack types on x86 64-bit have guard pages now. So there is no point in executing probabilistic overflow checks as the guard pages are a accurate and reliable overflow prevention. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Cc: "H. Peter Anvin" Cc: Andy Lutomirski Cc: Ingo Molnar Cc: Josh Poimboeuf Cc: Nicolai Stange Cc: Sean Christopherson Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160146.466354762@linutronix.de commit 18b7a6bef62de1d598fbff23b52114b7775ecf00 Author: Andy Lutomirski Date: Sun Apr 14 18:00:07 2019 +0200 x86/irq/64: Remap the IRQ stack with guard pages The IRQ stack lives in percpu space, so an IRQ handler that overflows it will overwrite other data structures. Use vmap() to remap the IRQ stack so that it will have the usual guard pages that vmap()/vmalloc() allocations have. With this, the kernel will panic immediately on an IRQ stack overflow. [ tglx: Move the map code to a proper place and invoke it only when a CPU is about to be brought online. No point in installing the map at early boot for all possible CPUs. Fail the CPU bringup if the vmap() fails as done for all other preparatory stages in CPU hotplug. ] Signed-off-by: Andy Lutomirski Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Cc: "H. Peter Anvin" Cc: Andy Lutomirski Cc: Ingo Molnar Cc: Josh Poimboeuf Cc: Nicolai Stange Cc: Sean Christopherson Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160146.363733568@linutronix.de commit e6401c13093173aad709a5c6de00cf8d692ee786 Author: Andy Lutomirski Date: Sun Apr 14 18:00:06 2019 +0200 x86/irq/64: Split the IRQ stack into its own pages Currently, the IRQ stack is hardcoded as the first page of the percpu area, and the stack canary lives on the IRQ stack. The former gets in the way of adding an IRQ stack guard page, and the latter is a potential weakness in the stack canary mechanism. Split the IRQ stack into its own private percpu pages. [ tglx: Make 64 and 32 bit share struct irq_stack ] Signed-off-by: Andy Lutomirski Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Ard Biesheuvel Cc: Boris Ostrovsky Cc: Brijesh Singh Cc: "Chang S. Bae" Cc: Dominik Brodowski Cc: Feng Tang Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jan Beulich Cc: Jiri Kosina Cc: Joerg Roedel Cc: Jordan Borgner Cc: Josh Poimboeuf Cc: Juergen Gross Cc: Konrad Rzeszutek Wilk Cc: Maran Wilson Cc: Masahiro Yamada Cc: Michal Hocko Cc: Mike Rapoport Cc: Nick Desaulniers Cc: Nicolai Stange Cc: Peter Zijlstra Cc: Pu Wen Cc: "Rafael Ávila de Espíndola" Cc: Sean Christopherson Cc: Stefano Stabellini Cc: Vlastimil Babka Cc: x86-ml Cc: xen-devel@lists.xenproject.org Link: https://lkml.kernel.org/r/20190414160146.267376656@linutronix.de commit 0ac26104208450d35c4e68754ce0c67b3a4d7802 Author: Thomas Gleixner Date: Sun Apr 14 18:00:05 2019 +0200 x86/irq/64: Init hardirq_stack_ptr during CPU hotplug Preparatory change for disentangling the irq stack union as a prerequisite for irq stacks with guard pages. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: "Chang S. Bae" Cc: Dominik Brodowski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Josh Poimboeuf Cc: Konrad Rzeszutek Wilk Cc: Nicolai Stange Cc: Pavel Tatashin Cc: Peter Zijlstra Cc: Sean Christopherson Cc: x86-ml Cc: Yi Wang Link: https://lkml.kernel.org/r/20190414160146.177558566@linutronix.de commit 66c7ceb47f628c8bd4f84a6d01c2725ded6a342d Author: Thomas Gleixner Date: Sun Apr 14 18:00:04 2019 +0200 x86/irq/32: Handle irq stack allocation failure proper irq_ctx_init() crashes hard on page allocation failures. While that's ok during early boot, it's just wrong in the CPU hotplug bringup code. Check the page allocation failure and return -ENOMEM and handle it at the call sites. On early boot the only way out is to BUG(), but on CPU hotplug there is no reason to crash, so just abort the operation. Rename the function to something more sensible while at it. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Cc: Alison Schofield Cc: Andrew Morton Cc: Andy Lutomirski Cc: Anshuman Khandual Cc: Boris Ostrovsky Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Josh Poimboeuf Cc: Juergen Gross Cc: Konrad Rzeszutek Wilk Cc: Nicolai Stange Cc: Pu Wen Cc: Sean Christopherson Cc: Shaokun Zhang Cc: Stefano Stabellini Cc: Suravee Suthikulpanit Cc: x86-ml Cc: xen-devel@lists.xenproject.org Cc: Yazen Ghannam Cc: Yi Wang Cc: Zhenzhong Duan Link: https://lkml.kernel.org/r/20190414160146.089060584@linutronix.de commit 451f743a64e1cf979f5fe21a1b2a015feb559f72 Author: Thomas Gleixner Date: Sun Apr 14 18:00:03 2019 +0200 x86/irq/32: Invoke irq_ctx_init() from init_IRQ() irq_ctx_init() is invoked from native_init_IRQ() or from xen_init_IRQ() code. There is no reason to have this split. The interrupt stacks must be allocated no matter what. Invoke it from init_IRQ() before invoking the native or XEN init implementation. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Reviewed-by: Juergen Gross Cc: Andy Lutomirski Cc: Boris Ostrovsky Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Josh Abraham Cc: Josh Poimboeuf Cc: Juergen Gross Cc: Mike Rapoport Cc: Nicolai Stange Cc: Sean Christopherson Cc: Stefano Stabellini Cc: Stephen Rothwell Cc: x86-ml Cc: xen-devel@lists.xenproject.org Link: https://lkml.kernel.org/r/20190414160146.001162606@linutronix.de commit 758a2e312228410f2f5092ade558109e93dc3ee8 Author: Thomas Gleixner Date: Sun Apr 14 18:00:02 2019 +0200 x86/irq/64: Rename irq_stack_ptr to hardirq_stack_ptr Preparatory patch to share code with 32bit. No functional changes. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Andy Lutomirski Cc: "Chang S. Bae" Cc: Dominik Brodowski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jiri Kosina Cc: Josh Poimboeuf Cc: Konrad Rzeszutek Wilk Cc: Michal Hocko Cc: Mike Rapoport Cc: Nick Desaulniers Cc: Nicolai Stange Cc: Peter Zijlstra Cc: Pingfan Liu Cc: Sean Christopherson Cc: Stephen Rothwell Cc: Vlastimil Babka Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160145.912584074@linutronix.de commit a754fe2b76d1d6bce7069657bba975034f3ad961 Author: Thomas Gleixner Date: Sun Apr 14 18:00:01 2019 +0200 x86/irq/32: Rename hard/softirq_stack to hard/softirq_stack_ptr The percpu storage holds a pointer to the stack not the stack itself. Rename it before sharing struct irq_stack with 64-bit. No functional changes. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Dave Hansen Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jiri Kosina Cc: Josh Poimboeuf Cc: Juergen Gross Cc: Nick Desaulniers Cc: Nicolai Stange Cc: Sean Christopherson Cc: Vlastimil Babka Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160145.824805922@linutronix.de commit 231c4846b106d526fa212b02b37447d3f2fcc99d Author: Thomas Gleixner Date: Sun Apr 14 18:00:00 2019 +0200 x86/irq/32: Make irq stack a character array There is no reason to have an u32 array in struct irq_stack. The only purpose of the array is to size the struct properly. Preparatory change for sharing struct irq_stack with 64-bit. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Cc: Alexey Dobriyan Cc: Andrew Morton Cc: Andy Lutomirski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jiri Kosina Cc: Josh Poimboeuf Cc: Nick Desaulniers Cc: Pingfan Liu Cc: Pu Wen Cc: Sean Christopherson Cc: Vlastimil Babka Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160145.736241969@linutronix.de commit aa641c287b2f7676f6f0064a8351daf08eca6b0a Author: Thomas Gleixner Date: Sun Apr 14 17:59:59 2019 +0200 x86/irq/32: Define IRQ_STACK_SIZE On 32-bit IRQ_STACK_SIZE is the same as THREAD_SIZE. To allow sharing struct irq_stack with 32-bit, define IRQ_STACK_SIZE for 32-bit and use it for struct irq_stack. No functional change. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: Dave Hansen Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jiri Kosina Cc: Josh Poimboeuf Cc: Juergen Gross Cc: Michal Hocko Cc: Nick Desaulniers Cc: Sean Christopherson Cc: Suravee Suthikulpanit Cc: Vlastimil Babka Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160145.632513987@linutronix.de commit c450c8f532b63475b30e29bc600c25ab0a4ab282 Author: Thomas Gleixner Date: Sun Apr 14 17:59:58 2019 +0200 x86/dumpstack/64: Speedup in_exception_stack() The current implementation of in_exception_stack() iterates over the exception stacks array. Most of the time this is an useless exercise, but even for the actual use cases (perf and ftrace) it takes at least 2 iterations to get to the NMI stack. As the exception stacks and the guard pages are page aligned the loop can be avoided completely. Add a initial check whether the stack pointer is inside the full exception stack area and leave early if not. Create a lookup table which describes the stack area. The table index is the page offset from the beginning of the exception stacks. So for any given stack pointer the page offset is computed and a lookup in the description table is performed. If it is inside a guard page, return. If not, use the descriptor to fill in the info structure. The table is filled at compile time and for the !KASAN case the interesting page descriptors exactly fit into a single cache line. Just the last guard page descriptor is in the next cacheline, but that should not be accessed in the regular case. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Acked-by: Josh Poimboeuf Cc: "H. Peter Anvin" Cc: Andy Lutomirski Cc: Ingo Molnar Cc: Josh Poimboeuf Cc: Sean Christopherson Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160145.543320386@linutronix.de commit 2a594d4ccf3f10f80b77d71bd3dad10813ac0137 Author: Thomas Gleixner Date: Sun Apr 14 17:59:57 2019 +0200 x86/exceptions: Split debug IST stack The debug IST stack is actually two separate debug stacks to handle #DB recursion. This is required because the CPU starts always at top of stack on exception entry, which means on #DB recursion the second #DB would overwrite the stack of the first. The low level entry code therefore adjusts the top of stack on entry so a secondary #DB starts from a different stack page. But the stack pages are adjacent without a guard page between them. Split the debug stack into 3 stacks which are separated by guard pages. The 3rd stack is never mapped into the cpu_entry_area and is only there to catch triple #DB nesting: --- top of DB_stack <- Initial stack --- end of DB_stack guard page --- top of DB1_stack <- Top of stack after entering first #DB --- end of DB1_stack guard page --- top of DB2_stack <- Top of stack after entering second #DB --- end of DB2_stack guard page If DB2 would not act as the final guard hole, a second #DB would point the top of #DB stack to the stack below #DB1 which would be valid and not catch the not so desired triple nesting. The backing store does not allocate any memory for DB2 and its guard page as it is not going to be mapped into the cpu_entry_area. - Adjust the low level entry code so it adjusts top of #DB with the offset between the stacks instead of exception stack size. - Make the dumpstack code aware of the new stacks. - Adjust the in_debug_stack() implementation and move it into the NMI code where it belongs. As this is NMI hotpath code, it just checks the full area between top of DB_stack and bottom of DB1_stack without checking for the guard page. That's correct because the NMI cannot hit a stackpointer pointing to the guard page between DB and DB1 stack. Even if it would, then the NMI operation still is unaffected, but the resume of the debug exception on the topmost DB stack will crash by touching the guard page. [ bp: Make exception_stack_names static const char * const ] Suggested-by: Andy Lutomirski Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Reviewed-by: Sean Christopherson Cc: Andy Lutomirski Cc: Baoquan He Cc: "Chang S. Bae" Cc: Dave Hansen Cc: Dominik Brodowski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Joerg Roedel Cc: Jonathan Corbet Cc: Josh Poimboeuf Cc: Juergen Gross Cc: "Kirill A. Shutemov" Cc: Konrad Rzeszutek Wilk Cc: linux-doc@vger.kernel.org Cc: Masahiro Yamada Cc: Peter Zijlstra Cc: Qian Cai Cc: Sean Christopherson Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160145.439944544@linutronix.de commit 1bdb67e5aa2d5d43c48cb7d93393fcba276c9e71 Author: Thomas Gleixner Date: Sun Apr 14 17:59:56 2019 +0200 x86/exceptions: Enable IST guard pages All usage sites which expected that the exception stacks in the CPU entry area are mapped linearly are fixed up. Enable guard pages between the IST stacks. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Cc: "H. Peter Anvin" Cc: Andy Lutomirski Cc: Ingo Molnar Cc: Josh Poimboeuf Cc: Sean Christopherson Cc: Thomas Gleixner Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160145.349862042@linutronix.de commit 3207426925d2b4da390be8068df1d1c2b36e5918 Author: Thomas Gleixner Date: Sun Apr 14 17:59:55 2019 +0200 x86/exceptions: Disconnect IST index and stack order The entry order of the TSS.IST array and the order of the stack storage/mapping are not required to be the same. With the upcoming split of the debug stack this is going to fall apart as the number of TSS.IST array entries stays the same while the actual stacks are increasing. Make them separate so that code like dumpstack can just utilize the mapping order. The IST index is solely required for the actual TSS.IST array initialization. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Baoquan He Cc: "Chang S. Bae" Cc: Dominik Brodowski Cc: Dou Liyang Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: Josh Poimboeuf Cc: Kees Cook Cc: "Kirill A. Shutemov" Cc: Konrad Rzeszutek Wilk Cc: Nicolai Stange Cc: Peter Zijlstra Cc: Qian Cai Cc: Sean Christopherson Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160145.241588113@linutronix.de commit d48ae1f0532cef3f57793ea4df551f695e63f788 Author: YueHaibing Date: Tue Apr 16 22:43:53 2019 +0800 drm/lima: Make lima_sched_ops static Fix sparse warning: drivers/gpu/drm/lima/lima_sched.c:356:36: warning: symbol 'lima_sched_ops' was not declared. Should it be static? Fixes: a1d2a6339961 ("drm/lima: driver for ARM Mali4xx GPUs") Reported-by: Hulk Robot Signed-off-by: YueHaibing Signed-off-by: Qiang Yu Link: https://patchwork.freedesktop.org/patch/msgid/20190416144353.34024-1-yuehaibing@huawei.com commit 381419fa720060ba48b7bbc483be787d5b1dca6f Author: Alan Stern Date: Tue Apr 16 10:50:01 2019 -0400 USB: core: Don't unbind interfaces following device reset failure The SCSI core does not like to have devices or hosts unregistered while error recovery is in progress. Trying to do so can lead to self-deadlock: Part of the removal code tries to obtain a lock already held by the error handler. This can cause problems for the usb-storage and uas drivers, because their error handler routines perform a USB reset, and if the reset fails then the USB core automatically goes on to unbind all drivers from the device's interfaces -- all while still in the context of the SCSI error handler. As it turns out, practically all the scenarios leading to a USB reset failure end up causing a device disconnect (the main error pathway in usb_reset_and_verify_device(), at the end of the routine, calls hub_port_logical_disconnect() before returning). As a result, the hub_wq thread will soon become aware of the problem and will unbind all the device's drivers in its own context, not in the error-handler's context. This means that usb_reset_device() does not need to call usb_unbind_and_rebind_marked_interfaces() in cases where usb_reset_and_verify_device() has returned an error, because hub_wq will take care of everything anyway. This particular problem was observed in somewhat artificial circumstances, by using usbfs to tell a hub to power-down a port connected to a USB-3 mass storage device using the UAS protocol. With the port turned off, the currently executing command timed out and the error handler started running. The USB reset naturally failed, because the hub port was off, and the error handler deadlocked as described above. Not carrying out the call to usb_unbind_and_rebind_marked_interfaces() fixes this issue. Signed-off-by: Alan Stern Reported-by: Kento Kobayashi Tested-by: Kento Kobayashi CC: Bart Van Assche CC: Martin K. Petersen CC: Jacky Cao Signed-off-by: Greg Kroah-Hartman commit 4d68c3d0ecd5fcba8876e8a58ac41ffb360de43e Author: Thomas Gleixner Date: Sun Apr 14 17:59:54 2019 +0200 x86/cpu: Remove orig_ist array All users gone. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Cc: Andrew Morton Cc: Andy Lutomirski Cc: "Chang S. Bae" Cc: Dave Hansen Cc: Dominik Brodowski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jiri Kosina Cc: Josh Poimboeuf Cc: Juergen Gross Cc: Konrad Rzeszutek Wilk Cc: Nick Desaulniers Cc: Peter Zijlstra Cc: Pingfan Liu Cc: Pu Wen Cc: Sean Christopherson Cc: Vlastimil Babka Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160145.151435667@linutronix.de commit f6ef73224a0f0400c3979c8bc68b383f9d2eb9d8 Author: Thomas Gleixner Date: Sun Apr 14 17:59:53 2019 +0200 x86/cpu: Prepare TSS.IST setup for guard pages Convert the TSS.IST setup code to use the cpu entry area information directly instead of assuming a linear mapping of the IST stacks. The store to orig_ist[] is no longer required as there are no users anymore. This is the last preparatory step towards IST guard pages. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: "Chang S. Bae" Cc: Dominik Brodowski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Josh Poimboeuf Cc: Konrad Rzeszutek Wilk Cc: Peter Zijlstra Cc: Sean Christopherson Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160145.061686012@linutronix.de commit 1262cc8893ecb0eb2c21e042d0d268cc180edb61 Author: Russell King Date: Mon Feb 25 10:51:30 2019 +0000 drm: etnaviv: avoid DMA API warning when importing buffers During boot, I get this kernel warning: WARNING: CPU: 0 PID: 19001 at kernel/dma/debug.c:1301 debug_dma_map_sg+0x284/0x3dc etnaviv etnaviv: DMA-API: mapping sg segment longer than device claims to support [len=3145728] [max=65536] Modules linked in: ip6t_REJECT nf_reject_ipv6 ip6t_rpfilter xt_tcpudp ipt_REJECT nf_reject_ipv4 xt_conntrack ip_set nfnetlink ebtable_broute ebtable_nat ip6table_raw ip6table_nat nf_nat_ipv6 ip6table_mangle iptable_raw iptable_nat nf_nat_ipv4 nf_nat nf_conntrack nf_defrag_ipv4 nf_defrag_ipv6 libcrc32c iptable_mangle ebtable_filter ebtables ip6table_filter ip6_tables iptable_filter caam_jr error snd_soc_imx_spdif imx_thermal snd_soc_imx_audmux nvmem_imx_ocotp snd_soc_sgtl5000 caam imx_sdma virt_dma coda rc_cec v4l2_mem2mem snd_soc_fsl_ssi snd_soc_fsl_spdif imx_vdoa imx_pcm_dma videobuf2_dma_contig etnaviv dw_hdmi_cec gpu_sched dw_hdmi_ahb_audio imx6q_cpufreq nfsd sch_fq_codel ip_tables x_tables CPU: 0 PID: 19001 Comm: Xorg Not tainted 4.20.0+ #307 Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree) [] (unwind_backtrace) from [] (show_stack+0x10/0x14) [] (show_stack) from [] (dump_stack+0x9c/0xd4) [] (dump_stack) from [] (__warn+0xf8/0x124) [] (__warn) from [] (warn_slowpath_fmt+0x38/0x48) [] (warn_slowpath_fmt) from [] (debug_dma_map_sg+0x284/0x3dc) [] (debug_dma_map_sg) from [] (drm_gem_map_dma_buf+0xc4/0x13c) [] (drm_gem_map_dma_buf) from [] (dma_buf_map_attachment+0x38/0x5c) [] (dma_buf_map_attachment) from [] (drm_gem_prime_import_dev+0x74/0x104) [] (drm_gem_prime_import_dev) from [] (drm_gem_prime_fd_to_handle+0x84/0x17c) [] (drm_gem_prime_fd_to_handle) from [] (drm_prime_fd_to_handle_ioctl+0x38/0x4c) [] (drm_prime_fd_to_handle_ioctl) from [] (drm_ioctl_kernel+0x90/0xc8) [] (drm_ioctl_kernel) from [] (drm_ioctl+0x1e0/0x3b0) [] (drm_ioctl) from [] (do_vfs_ioctl+0x90/0xa48) [] (do_vfs_ioctl) from [] (ksys_ioctl+0x34/0x60) [] (ksys_ioctl) from [] (ret_fast_syscall+0x0/0x28) Exception stack(0xd81a9fa8 to 0xd81a9ff0) 9fa0: b6c69c88 bec613f8 00000009 c00c642e bec613f8 b86c4600 9fc0: b6c69c88 bec613f8 c00c642e 00000036 012762e0 01276348 00000300 012d91f8 9fe0: b6989f18 bec613dc b697185c b667be5c irq event stamp: 47905 hardirqs last enabled at (47913): [] console_unlock+0x46c/0x680 hardirqs last disabled at (47922): [] console_unlock+0xb8/0x680 softirqs last enabled at (47754): [] __do_softirq+0x344/0x540 softirqs last disabled at (47701): [] irq_exit+0x124/0x144 ---[ end trace af477747acbcc642 ]--- The reason is the contiguous buffer exceeds the default maximum segment size of 64K as specified by dma_get_max_seg_size() in linux/dma-mapping.h. Fix this by providing our own segment size, which is set to 2GiB to cover the window found in MMUv1 GPUs. Signed-off-by: Russell King Signed-off-by: Lucas Stach commit 39416c5872db69859e867fa250b9cbb3f1e0d185 Author: Wenwen Wang Date: Mon Apr 15 12:58:06 2019 -0500 udf: fix an uninitialized read bug and remove dead code In udf_lookup(), the pointer 'fi' is a local variable initialized by the return value of the function call udf_find_entry(). However, if the macro 'UDF_RECOVERY' is defined, this variable will become uninitialized if the else branch is not taken, which can potentially cause incorrect results in the following execution. To fix this issue, this patch drops the whole code in the ifdef 'UDF_RECOVERY' region, as it is dead code. Signed-off-by: Wenwen Wang Signed-off-by: Jan Kara commit afcd21dad88b68d646e91ed36948117d58b4c197 Author: Thomas Gleixner Date: Sun Apr 14 17:59:52 2019 +0200 x86/dumpstack/64: Use cpu_entry_area instead of orig_ist The orig_ist[] array is a shadow copy of the IST array in the TSS. The reason why it exists is that older kernels used two TSS variants with different pointers into the debug stack. orig_ist[] contains the real starting points. There is no point anymore to do so because the same information can be retrieved using the base address of the cpu entry area mapping and the offsets of the various exception stacks. No functional change. Preparation for removing orig_ist. Cc: Josh Poimboeuf Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Cc: "H. Peter Anvin" Cc: Andy Lutomirski Cc: Ingo Molnar Cc: Josh Poimboeuf Cc: Sean Christopherson Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160144.974900463@linutronix.de commit bf5882abab773afd1277415e2f826b21de28f30d Author: Thomas Gleixner Date: Sun Apr 14 17:59:51 2019 +0200 x86/irq/64: Use cpu entry area instead of orig_ist The orig_ist[] array is a shadow copy of the IST array in the TSS. The reason why it exists is that older kernels used two TSS variants with different pointers into the debug stack. orig_ist[] contains the real starting points. There is no point anymore to do so because the same information can be retrieved using the base address of the cpu entry area mapping and the offsets of the various exception stacks. No functional change. Preparation for removing orig_ist. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Cc: "H. Peter Anvin" Cc: Andy Lutomirski Cc: Ingo Molnar Cc: Josh Poimboeuf Cc: Nicolai Stange Cc: Sean Christopherson Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160144.885741626@linutronix.de commit d876b67343a648f3613506c7dbfed088fa0c875b Author: Thomas Gleixner Date: Sun Apr 14 17:59:50 2019 +0200 x86/traps: Use cpu_entry_area instead of orig_ist The orig_ist[] array is a shadow copy of the IST array in the TSS. The reason why it exists is that older kernels used two TSS variants with different pointers into the debug stack. orig_ist[] contains the real starting points. There is no point anymore to do so because the same information can be retrieved using the base address of the cpu entry area mapping and the offsets of the various exception stacks. No functional change. Preparation for removing orig_ist. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Cc: "H. Peter Anvin" Cc: Andy Lutomirski Cc: Dave Hansen Cc: Ingo Molnar Cc: Josh Poimboeuf Cc: Peter Zijlstra Cc: Sean Christopherson Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160144.784487230@linutronix.de commit 7623f37e411156e6e09b95cf5c76e509c5fda640 Author: Thomas Gleixner Date: Sun Apr 14 17:59:49 2019 +0200 x86/cpu_entry_area: Provide exception stack accessor Store a pointer to the per cpu entry area exception stack mappings to allow fast retrieval. Required for converting various places from using the shadow IST array to directly doing address calculations on the actual mapping address. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Cc: "H. Peter Anvin" Cc: Andy Lutomirski Cc: Dave Hansen Cc: Ingo Molnar Cc: Josh Poimboeuf Cc: Peter Zijlstra Cc: Sean Christopherson Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160144.680960459@linutronix.de commit a4af767ae59cc579569bbfe49513a0037d5989ee Author: Thomas Gleixner Date: Sun Apr 14 17:59:48 2019 +0200 x86/cpu_entry_area: Prepare for IST guard pages To allow guard pages between the IST stacks each stack needs to be mapped individually. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Cc: "H. Peter Anvin" Cc: Andy Lutomirski Cc: Dave Hansen Cc: Ingo Molnar Cc: Josh Poimboeuf Cc: Peter Zijlstra Cc: Sean Christopherson Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160144.592691557@linutronix.de commit 019b17b3ffe48100e52f609ca1c6ed6e5a40cba1 Author: Thomas Gleixner Date: Sun Apr 14 17:59:47 2019 +0200 x86/exceptions: Add structs for exception stacks At the moment everything assumes a full linear mapping of the various exception stacks. Adding guard pages to the cpu entry area mapping of the exception stacks will break that assumption. As a preparatory step convert both the real storage and the effective mapping in the cpu entry area from character arrays to structures. To ensure that both arrays have the same ordering and the same size of the individual stacks fill the members with a macro. The guard size is the only difference between the two resulting structures. For now both have guard size 0 until the preparation of all usage sites is done. Provide a couple of helper macros which are used in the following conversions. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Reviewed-by: Sean Christopherson Cc: Andy Lutomirski Cc: "Chang S. Bae" Cc: Dave Hansen Cc: Dominik Brodowski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Josh Poimboeuf Cc: Konrad Rzeszutek Wilk Cc: Peter Zijlstra Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160144.506807893@linutronix.de commit 881a463cf21dbf83aab2cf6c9a359f34f88c2491 Author: Thomas Gleixner Date: Sun Apr 14 17:59:46 2019 +0200 x86/cpu_entry_area: Cleanup setup functions No point in retrieving the entry area pointer over and over. Do it once and use unsigned int for 'cpu' everywhere. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Reviewed-by: Sean Christopherson Cc: "H. Peter Anvin" Cc: Andy Lutomirski Cc: Dave Hansen Cc: Ingo Molnar Cc: Josh Poimboeuf Cc: Peter Zijlstra Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160144.419653165@linutronix.de commit 8f34c5b5afce91d171bb0802631197484cb69b8b Author: Thomas Gleixner Date: Sun Apr 14 17:59:45 2019 +0200 x86/exceptions: Make IST index zero based The defines for the exception stack (IST) array in the TSS are using the SDM convention IST1 - IST7. That causes all sorts of code to subtract 1 for array indices related to IST. That's confusing at best and does not provide any value. Make the indices zero based and fixup the usage sites. The only code which needs to adjust the 0 based index is the interrupt descriptor setup which needs to add 1 now. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Reviewed-by: Sean Christopherson Cc: Andy Lutomirski Cc: Baoquan He Cc: "Chang S. Bae" Cc: Dave Hansen Cc: Dominik Brodowski Cc: Dou Liyang Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jonathan Corbet Cc: Josh Poimboeuf Cc: "Kirill A. Shutemov" Cc: Konrad Rzeszutek Wilk Cc: linux-doc@vger.kernel.org Cc: Nicolai Stange Cc: Peter Zijlstra Cc: Qian Cai Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160144.331772825@linutronix.de commit 30842211506e376b76394a9cb4e6d0c9d258b8d4 Author: Thomas Gleixner Date: Sun Apr 14 17:59:44 2019 +0200 x86/exceptions: Remove unused stack defines on 32bit Nothing requires those for 32bit builds. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Cc: "H. Peter Anvin" Cc: Andy Lutomirski Cc: Dave Hansen Cc: Ingo Molnar Cc: Josh Poimboeuf Cc: Michal Hocko Cc: Sean Christopherson Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160144.227822695@linutronix.de commit 2e299cc96952ab5709e809947a6a4ac66f60fdaf Author: Adham Abozaeid Date: Tue Apr 16 23:17:07 2019 +0000 staging: wilc1000: Avoid GFP_KERNEL allocation from atomic context txq_add_mgmt_pkt allocates memory while being called from atomic context so needs to use GFP_ATOMIC Signed-off-by: Adham Abozaeid Signed-off-by: Greg Kroah-Hartman commit 6229fed9ee85f38126ebb0818ada55dddcf9f97a Author: Ian Abbott Date: Tue Apr 16 14:37:48 2019 +0100 staging: comedi: dyna_pci10xx: Set number of AO channels to 1 The "dyna_pci10xx" driver supports the Dynalog India PCI-1050. There seems to be very little online information available about this card, but as far as I can tell[*], it only has 1 AO (analog output) channel, not 16 AO channels as reported in the Comedi subdevice information. Besides, the Comedi "insn_write" handler for the AO subdevice takes no account of channel numbers. Change the `n_chans` member of the AO subdevice structure to 1 to reflect this. [*] The card is no longer mentioned on the manufacturer's web-site and I couldn't find any archived page for the site on archive.org. I found part of a scientific paper which describes the card as having a single channel D/A converter: . Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman commit 4138b1d44f34703508a3d293011216557b6b5e68 Author: Ian Abbott Date: Tue Apr 16 14:37:47 2019 +0100 staging: comedi: dyna_pci10xx: Don't bother configuring len_chanlist In the Comedi "attach" and "auto_attach" handlers that set up the Comedi subdevices, there is no need to initialize the `len_chanlist` member of Comedi subdevices that do not support Comedi asynchronous streaming commands. They can be left set to the initial zeroed out value and the Comedi core will change the `len_chanlist` member to 1 afterwards in that case. The "dyna_pci10xx" driver currently sets the `len_chanlist` members to the same value as the `n_chan` ("number of channels") member, but this is unnecessary as none of them support asynchronous streaming. Remove the initialization of `len_chanlist` from all the subdevices. This will affect the information reported by the COMEDI_SUBDINFO ioctl slightly. Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman commit 6f36bd8d2e8c221eaaf4ce5b0ebbb11c00b0ac98 Author: Thomas Gleixner Date: Sun Apr 14 17:59:43 2019 +0200 x86/64: Remove stale CURRENT_MASK Nothing uses that and before people get the wrong ideas, get rid of it. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Cc: "H. Peter Anvin" Cc: "Kirill A. Shutemov" Cc: Andy Lutomirski Cc: Baoquan He Cc: Ingo Molnar Cc: Josh Poimboeuf Cc: Qian Cai Cc: Sean Christopherson Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160144.139284839@linutronix.de commit 99d334511b337884cadbdfae28da912a4edb1001 Author: Thomas Gleixner Date: Sun Apr 14 17:59:42 2019 +0200 x86/idt: Remove unused macro SISTG Commit d8ba61ba58c8 ("x86/entry/64: Don't use IST entry for #BP stack") removed the last user but left the macro around. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Reviewed-by: Andy Lutomirski Cc: "H. Peter Anvin" Cc: Dou Liyang Cc: Ingo Molnar Cc: Josh Poimboeuf Cc: Nicolai Stange Cc: Sean Christopherson Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160144.050689789@linutronix.de commit df835e7083bee33e98635aca26b39b63ebc6cca7 Author: Thomas Gleixner Date: Sun Apr 14 17:59:41 2019 +0200 x86/irq/64: Sanitize the top/bottom confusion On x86, stacks go top to bottom, but the stack overflow check uses it the other way round, which is just confusing. Clean it up and sanitize the warning string a bit. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Reviewed-by: Sean Christopherson Cc: "H. Peter Anvin" Cc: Andy Lutomirski Cc: Ingo Molnar Cc: Josh Poimboeuf Cc: Nicolai Stange Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160143.961241397@linutronix.de commit 4f44b8f0b33b7111216f0fad353315f796b81617 Author: Andy Lutomirski Date: Sun Apr 14 17:59:40 2019 +0200 x86/irq/64: Remove a hardcoded irq_stack_union access stack_overflow_check() is using both irq_stack_ptr and irq_stack_union to find the IRQ stack. That's going to break when vmapped irq stacks are introduced. Change it to just use irq_stack_ptr. Signed-off-by: Andy Lutomirski Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Reviewed-by: Sean Christopherson Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Josh Poimboeuf Cc: Nicolai Stange Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160143.872549191@linutronix.de commit fa33215422fd415a07ec2a00e9f1acdaf0fa8e94 Author: Andy Lutomirski Date: Sun Apr 14 17:59:39 2019 +0200 x86/dumpstack: Fix off-by-one errors in stack identification The get_stack_info() function is off-by-one when checking whether an address is on a IRQ stack or a IST stack. This prevents an overflowed IRQ or IST stack from being dumped properly. [ tglx: Do the same for 32-bit ] Signed-off-by: Andy Lutomirski Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Reviewed-by: Sean Christopherson Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Josh Poimboeuf Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160143.785651055@linutronix.de commit 1598475c66514ce55b570b623d790172d02046f7 Author: Sven Van Asbroeck Date: Tue Apr 16 11:56:18 2019 -0400 staging: fieldbus: add TODO Add a TODO file which describes what needs to be done in order to get the fieldbus_dev subsystem out of staging. Signed-off-by: Sven Van Asbroeck Signed-off-by: Greg Kroah-Hartman commit debe7c8621def7633a355841f838e35b078868bc Author: Sven Van Asbroeck Date: Tue Apr 16 11:56:17 2019 -0400 staging: fieldbus: support HMS Profinet IRT industrial controller The Anybus-S PROFINET IRT communication module provides instant integration to any Ethernet based LAN via SMTP, FTP, HTTP as well as PROFINET and Modbus-TCP. Additional protocols can be implemented on top of TCP/IP or UDP using the transparent socket interface. Official documentation: https://www.anybus.com/docs/librariesprovider7/default-document-library /manuals-design-guides/hms-hmsi-168-52.pdf This implementation is an Anybus-S client driver, designed to be instantiated by the Anybus-S bus driver when it discovers the Profinet card. If loaded successfully, the driver registers itself as a fieldbus_dev, and userspace can access it through the fieldbus_dev interface. Signed-off-by: Sven Van Asbroeck Signed-off-by: Greg Kroah-Hartman commit d564d73f22649fdb70d18cfbe03925bd9f47ec26 Author: Sven Van Asbroeck Date: Tue Apr 16 11:56:16 2019 -0400 dt-bindings: Add vendor prefix for arcx / Archronix arcx Inc. is an engineering company which provides advanced embedded systems and consulting services. Archronix is a technology design and product engineering firm specializing in hardware control systems and enabling software. Clients include OEM's in the transportation, aerospace, medical and commercial sectors. Websites: http://www.arcx.com/ http://www.archronix.com/ Reviewed-by: Rob Herring Reviewed-by: Andreas Färber Signed-off-by: Sven Van Asbroeck Signed-off-by: Greg Kroah-Hartman commit 20a980e957bf10d78a74f3446a80ce29723c55c8 Author: Sven Van Asbroeck Date: Tue Apr 16 11:56:15 2019 -0400 dt-bindings: anybus-controller: document devicetree binding This patch adds devicetree binding documentation for the Arcx anybus controller. Reviewed-by: Rob Herring Signed-off-by: Sven Van Asbroeck Signed-off-by: Greg Kroah-Hartman commit 17614978ed34b8933e2b9272e2fe5133fdc38a58 Author: Sven Van Asbroeck Date: Tue Apr 16 11:56:14 2019 -0400 staging: fieldbus: anybus-s: support the Arcx anybus controller Add a driver for the Arcx anybus controller. This device implements two Anybus-S hosts (buses), and connects to the SoC via a parallel memory bus. There is also a CAN power readout, unrelated to the Anybus, modelled as a regulator. Signed-off-by: Sven Van Asbroeck Signed-off-by: Greg Kroah-Hartman commit 308ee87a2f1ea7e83c5da49e4359cb133a93217f Author: Sven Van Asbroeck Date: Tue Apr 16 11:56:13 2019 -0400 staging: fieldbus: anybus-s: support HMS Anybus-S bus The Anybus-S/Anybus-M is a series of interchangeable fieldbus communication modules featuring on board memory and processing power. All software and hardware functionality required to communicate on the fieldbus is incorporated in the module itself, allowing the application to focus on other tasks. Typical applications are frequency inverters, HMI and visualization devices, instruments, scales, robotics, PLC’s and intelligent measuring devices. Official documentation: https://www.anybus.com/docs/librariesprovider7/default-document-library/ manuals-design-guides/hms-hmsi-27-275.pdf Signed-off-by: Sven Van Asbroeck Signed-off-by: Greg Kroah-Hartman commit f9a82c4820ac30c80df9ea61577ad5f835968533 Author: Sven Van Asbroeck Date: Tue Apr 16 11:56:12 2019 -0400 staging: add Fieldbus Device subsystem. Fieldbus device (client) adapters allow data exchange with a PLC aka. "Fieldbus Controller" over a fieldbus (Profinet, FLNet, etc.) They are typically used when a Linux device wants to expose itself as an actuator, motor, console light, switch, etc. over the fieldbus. This framework is designed to provide a generic interface to Fieldbus Devices from both the Linux Kernel and the userspace. Signed-off-by: Sven Van Asbroeck Signed-off-by: Greg Kroah-Hartman commit 7dbcf2b0b770eeb803a416ee8dcbef78e6389d40 Author: Thomas Gleixner Date: Sun Apr 14 17:59:38 2019 +0200 x86/irq/64: Limit IST stack overflow check to #DB stack Commit 37fe6a42b343 ("x86: Check stack overflow in detail") added a broad check for the full exception stack area, i.e. it considers the full exception stack area as valid. That's wrong in two aspects: 1) It does not check the individual areas one by one 2) #DF, NMI and #MCE are not enabling interrupts which means that a regular device interrupt cannot happen in their context. In fact if a device interrupt hits one of those IST stacks that's a bug because some code path enabled interrupts while handling the exception. Limit the check to the #DB stack and consider all other IST stacks as 'overflow' or invalid. Signed-off-by: Thomas Gleixner Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Josh Poimboeuf Cc: Mitsuo Hayasaka Cc: Nicolai Stange Cc: Sean Christopherson Cc: x86-ml Link: https://lkml.kernel.org/r/20190414160143.682135110@linutronix.de commit 80552f0f7aebdd8deda8ea455292cbfbf462d655 Author: Qian Cai Date: Tue Apr 16 10:22:57 2019 -0400 mm/slab: Remove store_stackinfo() store_stackinfo() does not seem used in actual SLAB debugging. Potentially, it could be added to check_poison_obj() to provide more information but this seems like an overkill due to the declining popularity of SLAB, so just remove it instead. Signed-off-by: Qian Cai Signed-off-by: Borislav Petkov Acked-by: Thomas Gleixner Acked-by: Vlastimil Babka Cc: Andrew Morton Cc: Andy Lutomirski Cc: Christoph Lameter Cc: David Rientjes Cc: Joonsoo Kim Cc: Josh Poimboeuf Cc: linux-mm Cc: Pekka Enberg Cc: rientjes@google.com Cc: sean.j.christopherson@intel.com Link: https://lkml.kernel.org/r/20190416142258.18694-1-cai@lca.pw commit ad2c467aa92e283e9e8009bb9eb29a5c6a2d1217 Author: Joonas Lahtinen Date: Wed Apr 17 12:07:47 2019 +0300 drm/i915: Update DRIVER_DATE to 20190417 Signed-off-by: Joonas Lahtinen commit 5b354966d0d470488d8dd244f0b5d82e9ecc4e18 Author: Jani Nikula Date: Tue Apr 16 11:28:52 2019 +0300 drm/i915/ehl: inherit icl cdclk init/uninit The cdclk init/uninit code was changed by commit 93a643f29bcb ("drm/i915/cdclk: have only one init/uninit function") between the versions of commit 39564ae86d51 ("drm/i915/ehl: Inherit Ice Lake conditional code"). What got merged fails to do cdclk init/uninit on ehl. Fixes: 39564ae86d51 ("drm/i915/ehl: Inherit Ice Lake conditional code") Cc: José Roberto de Souza Cc: Lucas De Marchi Cc: Bob Paauwe Cc: Rodrigo Vivi Reviewed-by: Bob Paauwe Reviewed-by: José Roberto de Souza Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190416082852.18141-1-jani.nikula@intel.com commit 73d7ec899bd8b8aa5ab14781fe5962139840a76e Author: Marc Gonzalez Date: Tue Apr 9 14:48:22 2019 +0200 phy: qcom-qmp: Add msm8998 PCIe QMP PHY support Documentation for this PHY, and the proper configuration settings, is *not* publicly available. Therefore the initialization sequence is copied wholesale from downstream: https://source.codeaurora.org/quic/la/kernel/msm-4.4/tree/arch/arm/boot/dts/qcom/msm8998-v2.dtsi?h=LE.UM.1.3.r3.25#n372 Reviewed-by: Vivek Gautam Signed-off-by: Marc Gonzalez Signed-off-by: Kishon Vijay Abraham I commit 7e7b8ca66191c5dde9f6521ff8a0180834efa628 Author: Roger Quadros Date: Fri Apr 5 16:38:34 2019 +0530 phy: ti: am654-serdes: Support all clksel values Add support to select all 16 CLKSEL combinations that are shown in "SerDes Reference Clock Distribution" in AM65 TRM. Signed-off-by: Roger Quadros Signed-off-by: Kishon Vijay Abraham I commit 71e2f5c5c2249db05dd26b787b56c45f2a890740 Author: Kishon Vijay Abraham I Date: Wed Apr 17 11:49:39 2019 +0530 phy: ti: Add a new SERDES driver for TI's AM654x SoC Add a new SERDES driver for TI's AM654x SoC which configures the SERDES only for PCIe. Support fo USB3 will be added later. SERDES in am654x has three input clocks (left input, externel reference clock and right input) and two output clocks (left output and right output) in addition to a PLL mux clock which the SERDES uses for Clock Multiplier Unit (CMU refclock). The PLL mux clock can select from one of the three input clocks. The right output can select between left input and external reference clock while the left output can select between the right input and external reference clock. The driver has support to select PLL mux and left/right output mux as specified in device tree. [rogerq@ti.com: Fix boot lockup caused by accessing a structure member (hw->init) allocated in stack of probe() and accessed in get_parent] [rogerq@ti.com: Fix "Failed to find the parent" warnings] Signed-off-by: Roger Quadros Signed-off-by: Kishon Vijay Abraham I commit 4e0ae876f77bc01a7e77724dea57b4b82bd53244 Author: Kishon Vijay Abraham I Date: Fri Apr 5 16:38:32 2019 +0530 dt-bindings: phy: ti: Add dt binding documentation for SERDES in AM654x SoC AM654x has two SERDES instances. Each instance has three input clocks (left input, externel reference clock and right input) and two output clocks (left output and right output) in addition to a PLL mux clock which the SERDES uses for Clock Multiplier Unit (CMU refclock). The PLL mux clock can select from one of the three input clocks. The right output can select between left input and external reference clock while the left output can select between the right input and external reference clock. The left and right input reference clock of SERDES0 and SERDES1 respectively are connected to the SoC clock. In the case of two lane SERDES personality card, the left input of SERDES1 is connected to the right output of SERDES0 in a chained fashion. See section "Reference Clock Distribution" of AM65x Sitara Processors TRM (SPRUID7 – April 2018) for more details. Add dt-binding documentation in order to represent all these different configurations in device tree. Signed-off-by: Kishon Vijay Abraham I commit 4df614c4ab18ba14892dfa82b88c28203096e951 Author: Kishon Vijay Abraham I Date: Fri Apr 5 16:38:31 2019 +0530 phy: core: Invoke pm_runtime_get_*/pm_runtime_put_* before invoking reset callback PHY drivers may try to access PHY registers in the ->reset() callback. Invoke phy_pm_runtime_get_sync() before invoking the ->reset() callback so that the PHY drivers don't have to enable clocks by themselves before accessing PHY registers. Signed-off-by: Kishon Vijay Abraham I commit fec06b2bc436d1cbc3482becd40f656d46cd22b7 Author: Kishon Vijay Abraham I Date: Fri Apr 5 16:38:30 2019 +0530 phy: core: Add *release* phy_ops invoked when the consumer relinquishes PHY Add a new phy_ops *release* invoked when the consumer relinquishes the PHY using phy_put/devm_phy_put. The initializations done by the PHY driver in of_xlate call back can be can be cleaned up here. Signed-off-by: Kishon Vijay Abraham I commit 42c7cb71b5c2b014caab7861f2434f3907900d7c Author: Chunfeng Yun Date: Wed Apr 10 14:13:06 2019 +0800 phy: phy-meson-gxl-usb2: get optional clock by devm_clk_get_optional() Use devm_clk_get_optional() to get optional clock Cc: Martin Blumenstingl Signed-off-by: Chunfeng Yun Acked-by: Martin Blumenstingl Signed-off-by: Kishon Vijay Abraham I commit 752d31a3e19251e15ed241c00872ffe4f65bae0b Author: Chunfeng Yun Date: Wed Apr 10 14:13:05 2019 +0800 phy: socionext: get optional clock by devm_clk_get_optional() Use devm_clk_get_optional() to get optional clock Cc: Kunihiko Hayashi Signed-off-by: Chunfeng Yun Reviewed-by: Kunihiko Hayashi Signed-off-by: Kishon Vijay Abraham I commit 1039596c90e7443c577bf524feb744879b9f195a Author: Chunfeng Yun Date: Wed Apr 10 14:13:04 2019 +0800 phy: qcom-qusb2: get optional clock by devm_clk_get_optional() Use devm_clk_get_optional() to get optional clock Cc: Andy Gross Cc: David Brown Cc: Vivek Gautam Signed-off-by: Chunfeng Yun Signed-off-by: Kishon Vijay Abraham I commit b603c500d7a5c98089f3d68e4c79297e6aabc4ba Author: Chunfeng Yun Date: Wed Apr 10 14:13:03 2019 +0800 phy: phy-mtk-tphy: get optional clock by devm_clk_get_optional() Use devm_clk_get_optional() to get optional clock Signed-off-by: Chunfeng Yun Signed-off-by: Kishon Vijay Abraham I commit 549b6b55b00558183cef4af2c2bb61d4f2ffe508 Author: Yoshihiro Shimoda Date: Thu Apr 11 19:27:36 2019 +0900 phy: renesas: rcar-gen3-usb2: enable/disable independent irqs Since the previous code enabled/disabled the irqs both OHCI and EHCI, it is possible to cause unexpected interruptions. To avoid this, this patch creates multiple phy instances from phandle and enables/disables independent irqs by the instances. Signed-off-by: Yoshihiro Shimoda Reviewed-by: Simon Horman Reviewed-by: Fabrizio Castro Tested-by: Fabrizio Castro Signed-off-by: Kishon Vijay Abraham I commit 92fec1c27caa7b6f2a70566625425190e14c2204 Author: Yoshihiro Shimoda Date: Thu Apr 11 19:27:35 2019 +0900 phy: renesas: rcar-gen3-usb2: Use pdev's device pointer on dev_vdbg() To implement multiple phy instances in the future, this patch uses pdev's device pointer on dev_vdbg() instead of the phy's device pointer. Signed-off-by: Yoshihiro Shimoda Reviewed-by: Simon Horman Reviewed-by: Fabrizio Castro Signed-off-by: Kishon Vijay Abraham I commit 233da2c9ec22dcc885987acf1c8ccb88e8835022 Author: Yoshihiro Shimoda Date: Thu Apr 11 19:27:34 2019 +0900 dt-bindings: phy: rcar-gen3-phy-usb2: Revise #phy-cells property To have the detailed property on each PHY specifier, this patch revises the #phy-cells property. Signed-off-by: Yoshihiro Shimoda Signed-off-by: Kishon Vijay Abraham I commit 5d8042e95fd471d0e342cf14f127194f1a867a01 Author: Biju Das Date: Wed Apr 10 15:48:41 2019 +0100 phy: rcar-gen3-usb2: Add support for r8a77470 This patch adds support for r8a77470 (RZ/G1C). We can reuse this driver for initializing timing/interrupt generation registers. Signed-off-by: Biju Das Reviewed-by: Yoshihiro Shimoda Signed-off-by: Kishon Vijay Abraham I commit b7187e001a103f49ccb118bb2fb62ad31961b666 Author: Biju Das Date: Wed Apr 10 15:48:39 2019 +0100 phy: renesas: phy-rcar-gen2: Add support for r8a77470 This patch adds support for RZ/G1C (r8a77470) SoC. RZ/G1C SoC has a PLL register shared between hsusb0 and hsusb1. Compared to other RZ/G1 and R-Car Gen2/3, USB Host needs to deassert the pll reset. Signed-off-by: Biju Das Reviewed-and-Tested-by: Yoshihiro Shimoda Signed-off-by: Kishon Vijay Abraham I commit d6c4aee8d1218d5cd73ce5e6f27ac68ad8b9430b Author: Biju Das Date: Wed Apr 10 15:48:40 2019 +0100 dt-bindings: rcar-gen3-phy-usb2: Add r8a77470 support Document RZ/G1C (R8A77470) SoC bindings. For RZ/G1C, this driver is used to enable interrupt generation and initializing timing registers which is part of phy_init code. Signed-off-by: Biju Das Reviewed-by: Rob Herring Reviewed-by: Yoshihiro Shimoda Signed-off-by: Kishon Vijay Abraham I commit f56511d0080ce33a17f7192a3f43d65e614da5cf Author: Biju Das Date: Wed Apr 10 15:48:38 2019 +0100 dt-bindings: phy: rcar-gen2: Add r8a77470 support Add USB PHY support for r8a77470 SoC. Renesas RZ/G1C (R8A77470) USB PHY is similar to the R-Car Gen2 family, but has the below feature compared to other RZ/G1 and R-Car Gen2/3 SoCs It has a shared pll reset for usbphy0/usbphy1 and this register reside in usbphy0 block. Signed-off-by: Biju Das Reviewed-by: Rob Herring Reviewed-by: Yoshihiro Shimoda Signed-off-by: Kishon Vijay Abraham I commit 1d1bae7250758904ab09458022e2d97c23cf42b7 Author: Roger Quadros Date: Fri Mar 22 10:58:07 2019 +0200 phy: ti-pipe3: Fix PCIe power up sequence TRM [1] mentions that we need to power up PCIESS_PHY_TX and PCIESS_PHY_RX before configuring PCIe_PHY_RX SCP settings. See "Table 26-81. PCIePHY Subsystem Low-Level Programming Sequence". [1] DRA75x, DRA74x TRM - http://www.ti.com/lit/ug/sprui30f/sprui30f.pdf Signed-off-by: Roger Quadros Signed-off-by: Kishon Vijay Abraham I commit 9d009d9c20624cd8ed2a3ae0e43752c4a34b4893 Author: Roger Quadros Date: Fri Mar 22 10:58:06 2019 +0200 phy: ti-pipe3: Fix SATA & USB PHY power up sequence As per "Table 26-7. SATA PHY Subsystem Low-Level Programming Sequence" in TRM [1] we need to turn on SATA_PHY_TX before SATA_PHY_RX. [1] DRA75x, DRA74x TRM - http://www.ti.com/lit/ug/sprui30f/sprui30f.pdf Signed-off-by: Roger Quadros Signed-off-by: Kishon Vijay Abraham I commit fdef2f9f700fab55c36d45e7c46607e935886c6c Author: Roger Quadros Date: Fri Mar 22 10:58:05 2019 +0200 phy: ti-pipe3: improve DPLL stability for SATA & USB For increased DPLL stability use the settings recommended in the TRM [1] for PHY_RX registers for SATA and USB. For SATA we need to use spread spectrum settings even though we don't have spread spectrum enabled. The suggested non-spread spectrum settings don't work. [1] DRA75x, DRA74x TRM - http://www.ti.com/lit/ug/sprui30f/sprui30f.pdf Signed-off-by: Roger Quadros Signed-off-by: Kishon Vijay Abraham I commit 22940823f0629b2068c259fb859ed150b8563d8a Author: Roger Quadros Date: Fri Mar 22 10:58:04 2019 +0200 phy: ti-pipe3: Introduce mode property in driver data Introduce a mode property in the driver data so that we don't have to keep using "of_device_is_compatible()" throughtout the driver. No functional change. Signed-off-by: Roger Quadros Signed-off-by: Kishon Vijay Abraham I commit e6577cb5103b7ca7c0204c0c86ef4af8aa6288f6 Author: Colin Ian King Date: Tue Feb 19 14:53:49 2019 +0000 phy: ti-pipe3: fix missing bit-wise or operator when assigning val There seems to be a missing bit-wise or operator when setting val, fix this by adding it in. Fixes: 2796ceb0c18a ("phy: ti-pipe3: Update pcie phy settings") Cc: stable@vger.kernel.org # v4.19+ Signed-off-by: Colin Ian King Signed-off-by: Kishon Vijay Abraham I commit 54be9c1a03a3337e39f877f1536bbf25c9e8bff3 Author: Stanley Chu Date: Sat Mar 16 13:04:46 2019 +0800 phy: mediatek: Add UFS M-PHY driver Add UFS M-PHY driver on MediaTek chipsets. Signed-off-by: Stanley Chu Reviewed-by: Chunfeng Yun Signed-off-by: Kishon Vijay Abraham I commit fd7bd3b6bebdf889802db67b8c48b67aa20f4a2b Author: Stanley Chu Date: Sat Mar 16 13:04:44 2019 +0800 dt-bindings: phy: Add document for phy-mtk-ufs Add UFS M-PHY node document for MediaTek SoC chips. Signed-off-by: Stanley Chu Reviewed-by: Rob Herring Signed-off-by: Kishon Vijay Abraham I commit 2c1a4b0cbeb47c0376aa53df2b2a3a79670ca6aa Author: Christoph Muellner Date: Fri Mar 22 12:34:51 2019 +0100 dt-bindings: phy: Add a new property drive-impedance-ohm for RK's emmc PHY This patch documents the new proprty drive-impedance-ohm for Rockchip's eMMC PHY node. Signed-off-by: Christoph Muellner Signed-off-by: Philipp Tomsich Signed-off-by: Kishon Vijay Abraham I commit 043f42edbf2953ea45d0413ac998cff3dae6b268 Author: Christoph Muellner Date: Fri Mar 22 12:34:50 2019 +0100 phy: rockchip-emmc: Allow to set drive impedance via DTS. The rockchip-emmc PHY can be configured with different drive impedance values. Currenlty a value of 50 Ohm is hard coded into the driver. This patch introduces the DTS property 'drive-impedance-ohm' for the rockchip-emmc phy node, which uses the value from the DTS to setup the drive impedance accordingly. Signed-off-by: Christoph Muellner Signed-off-by: Philipp Tomsich Reviewed-by: Heiko Stuebner Signed-off-by: Kishon Vijay Abraham I commit 3f6d1767b1a011165cb404df1acdf003252df153 Author: Evan Green Date: Thu Mar 21 10:18:00 2019 -0700 phy: ufs-qcom: Refactor all init steps into phy_poweron The phy code was using implicit sequencing between the PHY driver and the UFS driver to implement certain hardware requirements. Specifically, the PHY reset register in the UFS controller needs to be deasserted before serdes start occurs in the PHY. Before this change, the code was doing this by utilizing the two phy callbacks, phy_init() and phy_poweron(), as "init step 1" and "init step 2", where the UFS driver would deassert reset between these two steps. This makes it challenging to power off the regulators in suspend, as regulators are initialized in init, not in poweron(), but only poweroff() is called during suspend, not exit(). For UFS, move the actual firing up of the PHY to phy_poweron() and phy_poweroff() callbacks, rather than init()/exit(). UFS calls phy_poweroff() during suspend, so now all clocks and regulators for the phy can be powered down during suspend. QMP is a little tricky because the PHY is also shared with PCIe and USB3, which have their own definitions for init() and poweron(). Rename the meaty functions to _enable() and _disable() to disentangle from the PHY core names, and then create two different ops structures: one for UFS and one for the other PHY types. In phy-qcom-ufs, remove the 'is_powered_on' and 'is_started' guards, as the generic PHY code does the reference counting. The 14/20nm-specific init functions get collapsed into the generic power_on() function, with the addition of a calibrate() callback specific to 14/20nm. Signed-off-by: Evan Green Reviewed-by: Stephen Boyd Signed-off-by: Kishon Vijay Abraham I commit c9b589791fc1b37fdca35b621dae62e98e4c95fc Author: Evan Green Date: Thu Mar 21 10:17:59 2019 -0700 phy: qcom: Utilize UFS reset controller Move the PHY reset from ufs-qcom into the respective PHYs. This will allow us to merge the two phases of UFS PHY initialization. Signed-off-by: Evan Green Reviewed-by: Stephen Boyd Signed-off-by: Kishon Vijay Abraham I commit 12fd5f250db2ad6b292d3a28bc3c0011fe30511f Author: Evan Green Date: Thu Mar 21 10:17:58 2019 -0700 scsi: ufs: qcom: Expose the reset controller for PHY Expose a reset controller that the phy will later use to control its own PHY reset in the UFS controller. This will enable the combining of PHY init functionality into a single function. Signed-off-by: Evan Green Reviewed-by: Stephen Boyd Signed-off-by: Kishon Vijay Abraham I commit 70b894deb78a7deed9157863a17f9e85a4ba87b3 Author: Evan Green Date: Thu Mar 21 10:17:55 2019 -0700 dt-bindings: phy: qcom-ufs: Add resets property Add a resets property to the PHY that represents the PHY reset register in the UFS controller itself. This better describes the complete specification of the PHY, and allows the PHY to perform its initialization in a single function, rather than relying on back-channel sequencing of initialization through the PHY framework. Signed-off-by: Evan Green Reviewed-by: Rob Herring Reviewed-by: Stephen Boyd Signed-off-by: Kishon Vijay Abraham I commit 95cee0b4e30a09a411a17e9a3bc6b72ed92063da Author: Evan Green Date: Thu Mar 21 10:17:54 2019 -0700 dt-bindings: phy-qcom-qmp: Add UFS PHY reset Add a required reset to the SDM845 UFS phy to express the PHY reset bit inside the UFS controller register space. Before this change, this reset was not expressed in the DT, and the driver utilized two different callbacks (phy_init and phy_poweron) to implement a two-phase initialization procedure that involved deasserting this reset between init and poweron. This abused the two callbacks and diluted their purpose. That scheme does not work as regulators cannot be turned off in phy_poweroff because they were turned on in init, rather than poweron. The net result is that regulators are left on in suspend that shouldn't be. This new scheme gives the UFS reset to the PHY, so that it can fully initialize itself in a single callback. We can then turn regulators on during poweron and off during poweroff. Signed-off-by: Evan Green Reviewed-by: Rob Herring Reviewed-by: Stephen Boyd Signed-off-by: Kishon Vijay Abraham I commit 8de4acd397ab96bf3487c6a765fd2b76e2863909 Author: Evan Green Date: Thu Mar 21 10:17:53 2019 -0700 dt-bindings: ufs: Add #reset-cells for Qualcomm controllers Enable Qualcomm UFS controllers to expose the PHY reset via a reset controller. Signed-off-by: Evan Green Reviewed-by: Rob Herring Reviewed-by: Stephen Boyd Signed-off-by: Kishon Vijay Abraham I commit 36077e16c050d1b063cdfec8c1d38d51d112f86d Author: Neil Armstrong Date: Mon Mar 25 10:39:41 2019 +0100 phy: amlogic: Add Amlogic G12A USB3 + PCIE Combo PHY Driver This adds support for the shared USB3 + PCIE PHY found in the Amlogic G12A SoC Family. It supports USB3 Host mode or PCIE 2.0 mode, depending on the layout of the board. Selection is done by the #phy-cells, making the mode static and exclusive. Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Signed-off-by: Kishon Vijay Abraham I commit 16df8bcb672c45e69a7bf4b37bb6de12c705e195 Author: Neil Armstrong Date: Mon Mar 25 10:39:40 2019 +0100 phy: amlogic: add Amlogic G12A USB2 PHY Driver This adds support for the USB2 PHY found in the Amlogic G12A SoC Family. It supports Host and/or Peripheral mode, depending on it's position. The first PHY is only used as Host, but the second supports Dual modes defined by the USB Control Glue HW in front of the USB Controllers. Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Signed-off-by: Kishon Vijay Abraham I commit ab6dbeb24d1a93425b2d1d91b17a7bce79dba41b Author: Neil Armstrong Date: Mon Mar 25 10:39:37 2019 +0100 dt-bindings: phy: Add Amlogic G12A USB3+PCIE Combo PHY Bindings Add the Amlogic G12A Family USB3 + PCIE Combo PHY Bindings. This PHY can provide exclusively USB3 or PCIE support on shared I/Os. Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Reviewed-by: Rob Herring Signed-off-by: Kishon Vijay Abraham I commit 7609db4e846b26bab1c259fb025c56f4c262a21a Author: Neil Armstrong Date: Mon Mar 25 10:39:36 2019 +0100 dt-bindings: phy: Add Amlogic G12A USB2 PHY Bindings Add the Amlogic G12A Family USB2 OTG PHY Bindings The PHY can work in host or peripheral modes depending on it's position. Configuration of the mode is part of the USBCTRL registers which are outside of the PHY registers. Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Reviewed-by: Rob Herring Signed-off-by: Kishon Vijay Abraham I commit 4dcddbb38b640a5c9ecb23e9b9348e36825263f7 Author: Srinath Mannam Date: Tue Mar 19 14:45:43 2019 +0530 phy: sr-usb: Add Stingray USB PHY driver USB PHY driver supports two types of stingray USB PHYs - Type 1 is a combo PHY contains two PHYs, one SS and one HS. - Type 2 is a single HS PHY. These two PHY versons support both Generic xHCI host controller driver and BDC Broadcom device controller driver. Signed-off-by: Srinath Mannam Signed-off-by: Kishon Vijay Abraham I commit 30417ab2a3d78781d45cace7fa0317ad9a044f11 Author: Srinath Mannam Date: Tue Mar 19 14:45:42 2019 +0530 dt-bindings: phy: Add Stingray USB PHY binding document Add DT binding document for Stingray USB PHY. Signed-off-by: Srinath Mannam Reviewed-by: Rob Herring Signed-off-by: Kishon Vijay Abraham I commit bbf711682cd570697086e88388a2c718da918894 Author: JC Kuo Date: Thu Feb 21 16:46:34 2019 +0100 phy: tegra: xusb: Add Tegra186 support Add support for the XUSB pad controller found on Tegra186 SoCs. It is mostly similar to the same IP found on earlier chips, but the number of pads exposed differs, as do the programming sequences. Note that the DVDD_PEX, DVDD_PEX_PLL, HVDD_PEX and HVDD_PEX_PLL power supplies of the XUSB pad controller require strict power sequencing and are therefore controlled by the PMIC on Tegra186. Signed-off-by: JC Kuo Signed-off-by: Thierry Reding [dan.carpenter@oracle.com: Fix testing the wrong variable in probe()] Signed-off-by: Dan Carpenter [yuehaibing@huawei.com: Make two functions static to fix sparse warning] Signed-off-by: YueHaibing Signed-off-by: Kishon Vijay Abraham I commit a630d54dfa937a937e3faf172ca41b9bd2647c72 Author: Thierry Reding Date: Thu Feb 21 16:46:33 2019 +0100 phy: tegra: xusb: Add support for power supplies Support enabling various supplies needed to provide power to the PLLs and logic used to drive the USB, PCI and SATA pads. Reviewed-by: JC Kuo Signed-off-by: Thierry Reding Signed-off-by: Kishon Vijay Abraham I commit 5311a7b89502592045812f97294f756b1fca132b Author: Thierry Reding Date: Thu Feb 21 16:46:32 2019 +0100 phy: tegra: xusb: Parse dual-role mode property The device tree bindings document the "mode" property of "ports" subnodes, but the driver was not parsing the property. In preparation for adding role switching, parse the property at probe time. Based on work by JC Kuo . Reviewed-by: JC Kuo Signed-off-by: Thierry Reding Signed-off-by: Kishon Vijay Abraham I commit 3cffa0818dc82a90d1a3df5ea7111999cb7b8646 Author: JC Kuo Date: Thu Feb 21 16:46:31 2019 +0100 phy: tegra: xusb: Skip single function lane programming Tegra186 USB2 pads and USB3 pads do not have hardware mux for changing the pad function. For such "lanes", we can skip the lane mux register programming. Signed-off-by: JC Kuo Signed-off-by: Thierry Reding Signed-off-by: Kishon Vijay Abraham I commit 2b8d59296cff37a73dc72a0667c148b0e57ae64f Author: Thierry Reding Date: Thu Feb 21 16:46:30 2019 +0100 dt-bindings: phy: tegra: Add Tegra186 support Extend the bindings to cover the set of features found in Tegra186. Note that, technically, there are four more supplies connected to the XUSB pad controller (DVDD_PEX, DVDD_PEX_PLL, HVDD_PEX and HVDD_PEX_PLL), but the power sequencing requirements of Tegra186 require these to be under the control of the PMIC. Reviewed-by: JC Kuo Signed-off-by: Thierry Reding Reviewed-by: Rob Herring Signed-off-by: Kishon Vijay Abraham I commit 6ac2a01de1700c1b6d889f02f61c4c9602573a8d Author: Jon Hunter Date: Tue Apr 16 17:48:08 2019 +0100 soc/tegra: pmc: Move powergate initialisation to probe Commit 8df127456f29 ("soc/tegra: pmc: Enable XUSB partitions on boot") was added as a workaround to ensure that the XUSB powergates or domains were turned on early during boot because as this time the Tegra XHCI driver did not handle the power domains at all. Now that the Tegra XHCI driver has been updated to properly managed the power domains, the workaround to enable the XUSB power domain early has been removed. This also means that we can now move the initialisation of the powergates into the PMC driver probe. Therefore, move the powergate initialisation into the PMC driver probe and return any errors detected. To handle any errors, functions to cleanup and remove any power-domains registered with the generic power-domain framework have been added. Finally the initialisation of the 'powergates_available' bitmask is kept in the PMC early init function to allow the legacy PMC powergate APIs to be called during early boot for enabling secondary CPUs on 32-bit Tegra devices. Signed-off-by: Jon Hunter Signed-off-by: Thierry Reding commit a46b51cd2a57d52d5047e1d48240536243eeab34 Author: Jon Hunter Date: Tue Apr 16 17:48:07 2019 +0100 soc/tegra: pmc: Remove reset sysfs entries on error Commit 5f84bb1a4099 ("soc/tegra: pmc: Add sysfs entries for reset info") added sysfs entries for Tegra reset source and level. However, these sysfs are not removed on error and so if the registering of PMC device is probe deferred, then the next time we attempt to probe the PMC device warnings such as the following will be displayed on boot ... sysfs: cannot create duplicate filename '/devices/platform/7000e400.pmc/reset_reason' Fix this by calling device_remove_file() for each sysfs entry added on failure. Note that we call device_remove_file() unconditionally without checking if the sysfs entry was created in the first place, but this should be OK because kernfs_remove_by_name_ns() will fail silently. Fixes: 5f84bb1a4099 ("soc/tegra: pmc: Add sysfs entries for reset info") Signed-off-by: Jon Hunter Signed-off-by: Thierry Reding commit 00cdaa1b811f36afa52a5956350c263ded4944a6 Author: Jon Hunter Date: Tue Apr 16 17:48:06 2019 +0100 soc/tegra: pmc: Fix reset sources and levels Commit 5f84bb1a4099 ("soc/tegra: pmc: Add sysfs entries for reset info") added support for reading the Tegra reset source and level from sysfs. However, there are a few issues with this commit which are ... 1. The number of reset sources for Tegra210 is defined as 5 but it should be 6. 2. The number of reset sources for Tegra186 is defined as 13 but it should be 15. 3. The SoC data variables num_reset_sources and num_reset_levels are defined but never used. Fix the above by ... 1. Removing the reset source 'AOTAG' from the tegra30_reset_sources because this is only applicable for Tegra210. 2. Adding a new tegra210_reset_sources structure for Tegra210 reset sources. 3. Correct the number of reset sources for Tegra210 and Tegra186 by using the ARRAY_SIZE macro. 4. Updating the functions reset_reason_show() and reset_level_show() to check whether the value read is valid. While we are at it clean-up these functions to remove an unnecessary u32 variable. Fixes: 5f84bb1a4099 ("soc/tegra: pmc: Add sysfs entries for reset info") Signed-off-by: Jon Hunter Signed-off-by: Thierry Reding commit 58a2109f6eb46b2952e2ce3fe776ce02c0c540dd Author: Raul E Rangel Date: Tue Apr 16 15:03:28 2019 -0600 platform/chrome: cros_ec_proto: Add trace event to trace EC commands This is useful to see which EC commands are being executed and when. To enable: echo 1 > /sys/kernel/debug/tracing/events/cros_ec/enable Example: cros_ec_cmd: version: 0, command: EC_CMD_GET_VERSION cros_ec_cmd: version: 0, command: EC_CMD_GET_PROTOCOL_INFO cros_ec_cmd: version: 1, command: EC_CMD_GET_CMD_VERSIONS cros_ec_cmd: version: 1, command: EC_CMD_USB_PD_CONTROL The list of current commands is generated using the following script: sed -n 's/^#define \(EC_CMD_[[:alnum:]_]*\)\s.*/\tTRACE_SYMBOL(\1),\\/p' include/linux/mfd/cros_ec_commands.h Signed-off-by: Raul E Rangel Reviewed-by: Ross Zwisler Reviewed-by: Steven Rostedt (VMware) Signed-off-by: Enric Balletbo i Serra commit 81f6ec233355be6898d99add553d27e31b4b7cd7 Author: Enric Balletbo i Serra Date: Mon Apr 15 23:35:06 2019 +0200 platform/chrome: cros_ec_debugfs: Use cros_ec_cmd_xfer_status helper This patch makes use of cros_ec_cmd_xfer_status() instead of cros_ec_cmd_xfer() so we can remove some redundant code. Signed-off-by: Enric Balletbo i Serra Reviewed-by: Guenter Roeck commit e32d93926477c426d42b3207d814196f2bb0a720 Merge: dc4060a5dc25 cf451adfa392 Author: Rafael J. Wysocki Date: Wed Apr 17 10:17:43 2019 +0200 Merge branch 'for-next' of https://git.kernel.org/pub/scm/linux/kernel/git/mzx/devfreq into pm-devfreq Pull devfreq material for 5.2 from MyungJoo Ham: "This includes: - Number of bugfixes (mainly on exception handling or styles) - Exynos-bus: fix issues related with shutdown/reboot - Rockchip-dfi: code refactoring - RK3399: support trusted firmware - Added trace support for devfreq-event" * 'for-next' of https://git.kernel.org/pub/scm/linux/kernel/git/mzx/devfreq: PM / devfreq: add tracing for scheduling work trace: events: add devfreq trace event file PM / devfreq: rk3399_dmc: Pass ODT and auto power down parameters to TF-A. PM / devfreq: rockchip-dfi: Move GRF definitions to a common place. PM / devfreq: exynos-bus: Suspend all devices on system shutdown PM / devfreq: Fix static checker warning in try_then_request_governor PM / devfreq: Restart previous governor if new governor fails to start PM / devfreq: tegra: remove unneeded variable PM / devfreq: rockchip-dfi: remove unneeded semicolon PM / devfreq: rk3399_dmc: remove unneeded semicolon PM / devfreq: consistent indentation PM / devfreq: fix missing check of return value in devfreq_add_device() PM / devfreq: fix mem leak in devfreq_add_device() PM / devfreq: Use of_node_name_eq for node name comparisons commit 3c7ab90aaa28d5af3b1bd2347f43b77c956f3b8a Author: Maxime Ripard Date: Tue Apr 16 10:28:02 2019 +0200 arm64: dts: allwinner: Remove useless phy-names from EHCI and OHCI Neither the OHCI or EHCI bindings are using the phy-names property, so we can just drop it. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 0a3df8bb6dad730d8d368f0dc4c3d7888bd5b789 Author: Maxime Ripard Date: Tue Apr 16 10:28:01 2019 +0200 ARM: dts: sunxi: h3/h5: Remove useless phy-names from EHCI and OHCI Neither the OHCI or EHCI bindings are using the phy-names property, so we can just drop it. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 3d109bdca9811b5b8362bb8632d621ad36b3bbe7 Author: Maxime Ripard Date: Tue Apr 16 10:28:00 2019 +0200 ARM: dts: sunxi: Remove useless phy-names from EHCI and OHCI Neither the OHCI or EHCI bindings are using the phy-names property, so we can just drop it. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 5f21f3055a32878c0c9d9ebbbafef72d60a1ff49 Author: Shunyong Yang Date: Mon Apr 1 16:26:35 2019 +0800 ACPI: property: restore _DSD data subnodes GUID comment Commit 5f5e4890d57a ("ACPI / property: Allow multiple property compatible _DSD entries") removed the comment of _DSD data subnodes GUID. Restore it. Fixes: 5f5e4890d57a ("ACPI / property: Allow multiple property compatible _DSD entries") Signed-off-by: Shunyong Yang Signed-off-by: Rafael J. Wysocki commit b7147e9a15718f10148435983838bf30c9943ef4 Author: Gerd Hoffmann Date: Tue Apr 16 11:05:33 2019 +0200 drm: add drm_format_helper.c to kerneldoc Also drop the dstclip parameter sphinx has warned about (leftover from an earlier patch version). Signed-off-by: Gerd Hoffmann Acked-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/20190416090533.28374-1-kraxel@redhat.com commit e6f32efb1b128344a2c7df9875bc1a1abaa1d395 Author: Paul Kocialkowski Date: Thu Mar 14 14:05:18 2019 +0100 phy: sun4i-usb: Make sure to disable PHY0 passby for peripheral mode On platforms where the MUSB and HCI controllers share PHY0, PHY passby is required when using the HCI controller with the PHY, but it must be disabled when the MUSB controller is used instead. Without this, PHY0 passby is always enabled, which results in broken peripheral mode on such platforms (e.g. H3/H5). Fixes: ba4bdc9e1dc0 ("PHY: sunxi: Add driver for sunxi usb phy") Signed-off-by: Paul Kocialkowski Signed-off-by: Kishon Vijay Abraham I commit 9dc211c6139b6680db8904547f7c5e23faec7eb5 Author: YueHaibing Date: Thu Feb 14 01:51:17 2019 +0000 phy: fix platform_no_drv_owner.cocci warnings Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci Signed-off-by: YueHaibing Signed-off-by: Kishon Vijay Abraham I commit 208d3423ee463ab257908456f6bbca4024ab63f7 Author: Arnd Bergmann Date: Mon Mar 4 21:23:58 2019 +0100 phy: mapphone-mdm6600: add gpiolib dependency gcc points out that when CONFIG_GPIOLIB is disabled, gpiod_get_array_value_cansleep() returns 0 but fails to set its output: drivers/phy/motorola/phy-mapphone-mdm6600.c: In function 'phy_mdm6600_status': drivers/phy/motorola/phy-mapphone-mdm6600.c:220:24: error: 'values[0]' is used uninitialized in this function [-Werror=uninitialized] This could be fixed more generally in gpiolib by returning a failure code, but for this specific case, the easier workaround is to add a gpiolib dependency. Fixes: 5d1ebbda0318 ("phy: mapphone-mdm6600: Add USB PHY driver for MDM6600 on Droid 4") Signed-off-by: Arnd Bergmann Acked-by: Tony Lindgren Signed-off-by: Kishon Vijay Abraham I commit d41ce98a122c13ea77938af04ef06fb12ae0c69e Author: Arnd Bergmann Date: Mon Mar 4 21:23:57 2019 +0100 phy: ti: usb2: fix OMAP_CONTROL_PHY dependency With randconfig build testing on arm64, we can run into a configuration that has CONFIG_OMAP_CONTROL_PHY=m and CONFIG_OMAP_USB2=y, which in turn causes a link failure: drivers/phy/ti/phy-omap-usb2.o: In function `omap_usb_phy_power': phy-omap-usb2.c:(.text+0x17c): undefined reference to `omap_control_phy_power' I could not come up with a good way to correctly describe the relation of the two symbols, but if we just select CONFIG_OMAP_CONTROL_PHY during compile testing, we can no longer run into the broken configuration. Fixes: 6777cee3a872 ("phy: ti: usb2: Add support for AM654 USB2 PHY") Signed-off-by: Arnd Bergmann Signed-off-by: Kishon Vijay Abraham I commit e03213b9a6eab6456de174afa071af4381e4f2d5 Author: Arnd Bergmann Date: Mon Mar 4 21:23:56 2019 +0100 phy: allwinner: allow compile testing Some allwinner specific drivers can be built for testing purposes on non-sunxi configurations, which then results in a harmless warning: WARNING: unmet direct dependencies detected for PHY_SUN6I_MIPI_DPHY Depends on [n]: ARCH_SUNXI [=n] && HAS_IOMEM [=y] && OF [=y] && RESET_CONTROLLER [=y] Selected by [y]: - DRM_SUN6I_DSI [=y] && HAS_IOMEM [=y] && DRM_SUN4I [=y] Allow compile-test here as well to avoid the warning, and improve overall build coverage. Fixes: 5d134abf9530 ("phy: Move Allwinner A31 D-PHY driver to drivers/phy/") Signed-off-by: Arnd Bergmann Acked-by: Maxime Ripard Signed-off-by: Kishon Vijay Abraham I commit d1172ab3d443e84ade75285f8c107bfac7e386d8 Author: Chris Wilson Date: Fri Apr 12 08:14:16 2019 +0100 drm/i915: Introduce struct class_instance for engines across the uAPI SSEU reprogramming of the context introduced the notion of engine class and instance for a forwards compatible method of describing any engine beyond the old execbuf interface. We wish to adopt this class:instance description for more interfaces, so pull it out into a separate type for userspace convenience. Fixes: e46c2e99f600 ("drm/i915: Expose RPCS (SSEU) configuration to userspace (Gen11 only)") Signed-off-by: Chris Wilson Cc: Joonas Lahtinen Cc: Tvrtko Ursulin Cc: Lionel Landwerlin Cc: Dmitry Rogozhkin Cc: Tony Ye Cc: Andi Shyti Reviewed-by: Tvrtko Ursulin Acked-by: Tony Ye Reviewed-by: Andi Shyti Link: https://patchwork.freedesktop.org/patch/msgid/20190412071416.30097-1-chris@chris-wilson.co.uk commit f4fa968950aef7efb98a0899bb0132405e2edaf1 Author: Takashi Iwai Date: Tue Apr 16 18:18:47 2019 +0200 ALSA: core: Don't refer to snd_cards array directly The snd_cards[] array holds the card pointers that have been currently registered, and it's exported for the external modules that may need to refer a card object. But accessing to this array can be racy against the driver probe or removal, as the card registration or free may happen concurrently. This patch gets rid of the direct access to snd_cards[] array and provides a helper function to give the card object from the index number with a refcount management. Then the caller can access to the given card object safely, and releases it via snd_card_unref(). While we're at it, add a proper comment to snd_card_unref() and make it an inlined function for type-safety, too. Signed-off-by: Takashi Iwai commit c989954938761a2939a21fcbc768af182de6be58 Author: Takashi Iwai Date: Tue Apr 16 18:01:46 2019 +0200 ALSA: emu10k1: Drop superfluous id-uniquification behavior The emu10k1 driver tries to create a unique id string by itself when it's copied from the card list, but it's rather superfluous, as the same thing will be done in ALSA core side at the card registration. Let's drop the code. This allows us removing snd_cards export. Signed-off-by: Takashi Iwai commit e0c546fa72a9b66deb80a2623ffc8b5237840e1b Author: YueHaibing Date: Tue Mar 19 23:27:38 2019 +0800 phy: qcom-ufs: Make ufs_qcom_phy_disable_iface_clk static Fix sparse warning: drivers/phy/qualcomm/phy-qcom-ufs.c:462:6: warning: symbol 'ufs_qcom_phy_disable_iface_clk' was not declared. Should it be static? Signed-off-by: YueHaibing Signed-off-by: Kishon Vijay Abraham I commit f7f6ed925d9fc050911a417804524d2bbfa4b4ac Author: YueHaibing Date: Tue Mar 19 23:30:28 2019 +0800 phy: rockchip-typec: Make usb3_pll_cfg and dp_pll_cfg static Fix sparse warning: drivers/phy/rockchip/phy-rockchip-typec.c:403:16: warning: symbol 'usb3_pll_cfg' was not declared. Should it be static? drivers/phy/rockchip/phy-rockchip-typec.c:420:16: warning: symbol 'dp_pll_cfg' was not declared. Should it be static? Signed-off-by: YueHaibing Reviewed-by: Heiko Stuebner Signed-off-by: Kishon Vijay Abraham I commit 20f795881f4f186fd98d9425053d575b2e577ff5 Author: Tony Lindgren Date: Sun Mar 24 16:26:54 2019 -0700 phy: phy-twl4030-usb: Fix cable state handling With the recent regulator changes I noticed new warnings on doing rmmod of phy-twl4030-usb: WARNING: CPU: 0 PID: 1080 at drivers/regulator/core.c:2046 _regulator_put ... Turns out we can currently miss disconnect at least for cases where status is 0 and linkstat is 0. And in that case doing rmmod phy-twl4030-usb will produce the regulator_put() warning. This is because the missed disconnect causes unbalanced PM runtime calls and the regulators will be on exit. Let's fix the issue by using an atomic flag for the cable state to make sure that PM runtime won't get out of sync with the cable state. That way we can also simplify the code a bit. Note that we can also drop the old comments, those relate to issues that the battery charger driver and musb driver is dealing with rather than the USB PHY driver. Cc: NeilBrown Signed-off-by: Tony Lindgren Signed-off-by: Kishon Vijay Abraham I commit 17f780b364262ec7ff6d7764bb3f51cd710da7e7 Merge: 9bad65e51549 2d6802374c69 Author: David S. Miller Date: Tue Apr 16 21:46:19 2019 -0700 Merge branch 'dpaa2-eth-Add-flow-steering-support-without-masking' Ioana Ciocoi Radulescu says: ==================== dpaa2-eth: Add flow steering support without masking On DPAA2 platforms that lack a TCAM (like LS1088A), masking of flow steering keys is not supported. Until now we didn't offer flow steering capabilities at all on these platforms. Introduce a limited support for flow steering, where we only allow ethtool rules that share a common key (i.e. have the same header fields). If a rule with a new composition key is wanted, the user must first manually delete all previous rules. First patch fixes a minor bug, the next two cleanup and prepare the code and the last one introduces the actual FS support. ==================== Signed-off-by: David S. Miller commit 2d6802374c6900a8cd1f92aa917cb632b15f9374 Author: Ioana Ciocoi Radulescu Date: Tue Apr 16 17:13:30 2019 +0000 dpaa2-eth: Add flow steering support without masking On platforms that lack a TCAM (like LS1088A), masking of flow steering keys is not supported. Until now we didn't offer flow steering capabilities at all on these platforms, since our driver implementation configured a "comprehensive" FS key (containing all supported header fields), with masks used to ignore the fields not present in the rules provided by the user. We now allow ethtool rules that share a common key (i.e. have the same header fields). The FS key is now kept in the driver private data and initialized when the first rule is added to an empty table, rather than at probe time. If a rule with a new composition key is wanted, the user must first manually delete all previous rules. When building a FS table entry to pass to firmware, we still use the old building algorithm, which assumes an all-supported-fields key, and later collapse the fields which aren't actually needed. Masked rules are not supported; if provided, the mask value will be ignored. For firmware versions older than MC10.7.0 (that only offer the legacy ABIs for configuring distribution keys) flow steering without masking support remains unavailable. Signed-off-by: Ioana Radulescu Signed-off-by: David S. Miller commit 3a1e6b84ad2e05877a798be6f03bee4bf52f4f50 Author: Ioana Ciocoi Radulescu Date: Tue Apr 16 17:13:29 2019 +0000 dpaa2-eth: Update hash key composition code Introduce an internal id bitfield to uniquely identify header fields supported by the Rx distribution keys. For the hash key, add a conversion from the RXH_* bitmask provided by ethtool to the internal ids. Signed-off-by: Ioana Radulescu Signed-off-by: David S. Miller commit 61f9bf0011c79323de5888470e22f4f0a7f1676f Author: Ioana Ciocoi Radulescu Date: Tue Apr 16 17:13:29 2019 +0000 dpaa2-eth: Add a couple of macros Add two macros to simplify reading DPNI options. Signed-off-by: Ioana Radulescu Signed-off-by: David S. Miller commit df8e249be866e2f762be11b14a9e7a94752614d4 Author: Ioana Ciocoi Radulescu Date: Tue Apr 16 17:13:28 2019 +0000 dpaa2-eth: Fix Rx classification status Set the Rx flow classification enable flag only if key config operation is successful. Fixes 3f9b5c9 ("dpaa2-eth: Configure Rx flow classification key") Signed-off-by: Ioana Radulescu Signed-off-by: David S. Miller commit 9bad65e51549d89b388f9c677d7527eede419e18 Author: John Hurley Date: Tue Apr 16 15:04:23 2019 +0100 nfp: flower: fix implicit fallthrough warning The nfp_flower_copy_pre_actions function introduces a case statement with an intentional fallthrough. However, this generates a warning if built with the -Wimplicit-fallthrough flag. Remove the warning by adding a fall through comment. Fixes: 1c6952ca587d ("nfp: flower: generate merge flow rule") Signed-off-by: John Hurley Reported-by: Stephen Rothwell Reviewed-by: Jiong Wang Reviewed-by: Simon Horman Signed-off-by: David S. Miller commit 3aed3e2a143c9619f4c8d0a3b8fe74d7d3d79c93 Author: Antoine Tenart Date: Tue Apr 16 12:10:20 2019 +0200 net: phy: micrel: add Asym Pause workaround The Micrel KSZ9031 PHY may fail to establish a link when the Asymmetric Pause capability is set. This issue is described in a Silicon Errata (DS80000691D or DS80000692D), which advises to always disable the capability. This patch implements the workaround by defining a KSZ9031 specific get_feature callback to force the Asymmetric Pause capability bit to be cleared. This fixes issues where the link would not come up at boot time, or when the Asym Pause bit was set later on. Signed-off-by: Antoine Tenart Reviewed-by: Andrew Lunn Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 9c03e2270813173b3690938dfe074a921c11855b Merge: a32b9d91b725 00165c25fa3e Author: David S. Miller Date: Tue Apr 16 21:34:48 2019 -0700 Merge branch 'bnx2x-Support-for-timestamping-in-P2P-mode' Sudarsana Reddy Kalluru says: ==================== bnx2x: Support for timestamping in P2P mode. The patch series adds driver support for timestamping the ptp packets in peer-delay (P2P) mode. - Patch (1) performs the code cleanup. - Patch (2) adds the required implementation. Please consider applying it 'net-next' tree. ==================== Signed-off-by: David S. Miller commit 00165c25fa3e5814f399f9a4fdd998066a06330c Author: Sudarsana Reddy Kalluru Date: Tue Apr 16 01:46:13 2019 -0700 bnx2x: Add support for detection of P2P event packets. The patch adds support for detecting the P2P (peer-to-peer) event packets. This is required for timestamping the PTP packets in peer delay mode. Unmask the below bits (set to 0) for device to detect the p2p packets. NIG_REG_P0/1_LLH_PTP_PARAM_MASK NIG_REG_P0/1_TLLH_PTP_PARAM_MASK bit 1 - IPv4 DA 1 of 224.0.0.107. bit 3 - IPv6 DA 1 of 0xFF02:0:0:0:0:0:0:6B. bit 9 - MAC DA 1 of 0x01-80-C2-00-00-0E. NIG_REG_P0/1_LLH_PTP_RULE_MASK NIG_REG_P0/1_TLLH_PTP_RULE_MASK bit 2 - {IPv4 DA 1; UDP DP 0} bit 6 - MAC Ethertype 0 of 0x88F7. bit 9 - MAC DA 1 of 0x01-80-C2-00-00-0E. Signed-off-by: Sudarsana Reddy Kalluru Signed-off-by: Ariel Elior Signed-off-by: David S. Miller commit b320532c9990e6d8360fcc6831c33da46289e27d Author: Sudarsana Reddy Kalluru Date: Tue Apr 16 01:46:12 2019 -0700 bnx2x: Replace magic numbers with macro definitions. This patch performs code cleanup by defining macros for the ptp-timestamp filters. Signed-off-by: Sudarsana Reddy Kalluru Signed-off-by: Ariel Elior Signed-off-by: David S. Miller commit a32b9d91b72588d6d90ba2772cd431a94b0122a0 Author: Gustavo A. R. Silva Date: Mon Apr 15 16:11:41 2019 -0500 xen-netfront: mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warning: drivers/net/xen-netfront.c: In function ‘netback_changed’: drivers/net/xen-netfront.c:2038:6: warning: this statement may fall through [-Wimplicit-fallthrough=] if (dev->state == XenbusStateClosed) ^ drivers/net/xen-netfront.c:2041:2: note: here case XenbusStateClosing: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 Notice that, in this particular case, the code comment is modified in accordance with what GCC is expecting to find. This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Reviewed-by: Juergen Gross Signed-off-by: David S. Miller commit 00967e84f742f87603e769529628e32076ade188 Merge: d1b7725dfea3 2c5935f1b2b6 Author: Alexei Starovoitov Date: Tue Apr 16 20:13:10 2019 -0700 Merge branch 'af_xdp-smp_mb-fixes' Magnus Karlsson says: ==================== This patch set fixes one bug and removes two dependencies on Linux kernel headers from the XDP socket code in libbpf. A number of people have pointed out that these two dependencies make it hard to build the XDP socket part of libbpf without any kernel header dependencies. The two removed dependecies are: * Remove the usage of likely and unlikely (compiler.h) in xsk.h. It has been reported that the use of these actually decreases the performance of the ring access code due to an increase in instruction cache misses, so let us just remove these. * Remove the dependency on barrier.h as it brings in a lot of kernel headers. As the XDP socket code only uses two simple functions from it, we can reimplement these. As a bonus, the new implementation is faster as it uses the same barrier primitives as the kernel does when the same code is compiled there. Without this patch, the user land code uses lfence and sfence on x86, which are unnecessarily harsh/thorough. In the process of removing these dependencies a missing barrier function for at least PPC64 was discovered. For a full explanation on the missing barrier, please refer to patch 1. So the patch set now starts with two patches fixing this. I have also added a patch at the end removing this full memory barrier for x86 only, as it is not needed there. Structure of the patch set: Patch 1-2: Adds the missing barrier function in kernel and user space. Patch 3-4: Removes the dependencies Patch 5: Optimizes the added barrier from patch 2 so that it does not do unnecessary work on x86. v2 -> v3: * Added missing memory barrier in ring code * Added an explanation on the three barriers we use in the code * Moved barrier functions from xsk.h to libbpf_util.h * Added comment on why we have these functions in libbpf_util.h * Added a new barrier function in user space that makes it possible to remove the full memory barrier on x86. v1 -> v2: * Added comment about validity of ARM 32-bit barriers. Only armv7 and above. /Magnus ==================== Acked-by: Song Liu Signed-off-by: Alexei Starovoitov commit 2c5935f1b2b642cee8e1562396ec8a7781fc4c6d Author: Magnus Karlsson Date: Tue Apr 16 14:58:12 2019 +0200 libbpf: optimize barrier for XDP socket rings The full memory barrier in the XDP socket rings on the consumer side between the load of the data and the store of the consumer ring is there to protect the store from being executed before the load of the data. If this was allowed to happen, the producer might overwrite the data field with a new entry before the consumer got the chance to read it. On x86, stores are guaranteed not to be reordered with older loads, so it does not need a full memory barrier here. A compile time barrier would be enough. This patch introdcues a new primitive in libbpf_util.h that implements a new barrier type (libbpf_smp_rwmb) hindering stores to be reordered with older loads. It is then used in the XDP socket ring access code in libbpf to improve performance. Signed-off-by: Magnus Karlsson Signed-off-by: Alexei Starovoitov commit b7e3a28019c92ffe1f55de278c5641de33b6259a Author: Magnus Karlsson Date: Tue Apr 16 14:58:11 2019 +0200 libbpf: remove dependency on barrier.h in xsk.h The use of smp_rmb() and smp_wmb() creates a Linux header dependency on barrier.h that is unnecessary in most parts. This patch implements the two small defines that are needed from barrier.h. As a bonus, the new implementations are faster than the default ones as they default to sfence and lfence for x86, while we only need a compiler barrier in our case. Just as it is when the same ring access code is compiled in the kernel. Fixes: 1cad07884239 ("libbpf: add support for using AF_XDP sockets") Signed-off-by: Magnus Karlsson Signed-off-by: Alexei Starovoitov commit a06d729646e87afc5ce06e539aecf762cc26c6e3 Author: Magnus Karlsson Date: Tue Apr 16 14:58:10 2019 +0200 libbpf: remove likely/unlikely in xsk.h This patch removes the use of likely and unlikely in xsk.h since they create a dependency on Linux headers as reported by several users. There have also been reports that the use of these decreases performance as the compiler puts the code on two different cache lines instead of on a single one. All in all, I think we are better off without them. Fixes: 1cad07884239 ("libbpf: add support for using AF_XDP sockets") Signed-off-by: Magnus Karlsson Signed-off-by: Alexei Starovoitov commit d5e63fdd443378531fd1a67a15a720a799635d93 Author: Magnus Karlsson Date: Tue Apr 16 14:58:09 2019 +0200 libbpf: fix XDP socket ring buffer memory ordering The ring buffer code of XDP sockets is missing a memory barrier on the consumer side between the load of the data and the write that signals that it is ok for the producer to put new data into the buffer. On architectures that does not guarantee that stores are not reordered with older loads, the producer might put data into the ring before the consumer had the chance to read it. As IA does guarantee this ordering, it would only need a compiler barrier here, but there are no primitives in barrier.h for this specific case (hinder writes to be ordered before older reads) so I had to add a smp_mb() here which will translate into a run-time synch operation on IA. Signed-off-by: Magnus Karlsson Signed-off-by: Alexei Starovoitov commit f63666de2ba9c1c3ac0ec57fc5d3032514ec80f1 Author: Magnus Karlsson Date: Tue Apr 16 14:58:08 2019 +0200 xsk: fix XDP socket ring buffer memory ordering The ring buffer code of XDP sockets is missing a memory barrier on the consumer side between the load of the data and the write that signals that it is ok for the producer to put new data into the buffer. On architectures that does not guarantee that stores are not reordered with older loads, the producer might put data into the ring before the consumer had the chance to read it. As IA does guarantee this ordering, it would only need a compiler barrier here, but there are no primitives in Linux for this specific case (hinder writes to be ordered before older reads) so I had to add a smp_mb() here which will translate into a run-time synch operation on IA. Added a longish comment in the code explaining what each barrier in the ring implementation accomplishes and what would happen if we removed one of them. Signed-off-by: Magnus Karlsson Signed-off-by: Alexei Starovoitov commit d1b7725dfea3e6c1aff2ee94baf3658aba450fbe Author: Prashant Bhole Date: Wed Apr 17 09:22:59 2019 +0900 tools/bpftool: show btf_id in map listing Let's print btf id of map similar to the way we are printing it for programs. Sample output: user@test# bpftool map -f 61: lpm_trie flags 0x1 key 20B value 8B max_entries 1 memlock 4096B 133: array name test_btf_id flags 0x0 key 4B value 4B max_entries 4 memlock 4096B pinned /sys/fs/bpf/test100 btf_id 174 170: array name test_btf_id flags 0x0 key 4B value 4B max_entries 4 memlock 4096B btf_id 240 Signed-off-by: Prashant Bhole Reviewed-by: Quentin Monnet Reviewed-by: Jakub Kicinski Acked-by: Song Liu Signed-off-by: Alexei Starovoitov commit d459b59ee0f5ed2fa96e77bbd919e095b1aeceb0 Author: Prashant Bhole Date: Wed Apr 17 09:22:58 2019 +0900 tools/bpftool: re-organize newline printing for map listing Let's move the final newline printing in show_map_close_plain() at the end of the function because it looks correct and consistent with prog.c. Also let's do related changes for the line which prints pinned file name. Signed-off-by: Prashant Bhole Reviewed-by: Quentin Monnet Reviewed-by: Jakub Kicinski Acked-by: Song Liu Signed-off-by: Alexei Starovoitov commit f25377ee4fb1118650a08b403234aa6f57ce25a9 Author: Andrey Ignatov Date: Tue Apr 16 13:13:47 2019 -0700 bpftool: Support sysctl hook Add support for recently added BPF_PROG_TYPE_CGROUP_SYSCTL program type and BPF_CGROUP_SYSCTL attach type. Example of bpftool output with sysctl program from selftests: # bpftool p load ./test_sysctl_prog.o /mnt/bpf/sysctl_prog type cgroup/sysctl # bpftool p l 9: cgroup_sysctl name sysctl_tcp_mem tag 0dd05f81a8d0d52e gpl loaded_at 2019-04-16T12:57:27-0700 uid 0 xlated 1008B jited 623B memlock 4096B # bpftool c a /mnt/cgroup2/bla sysctl id 9 # bpftool c t CgroupPath ID AttachType AttachFlags Name /mnt/cgroup2/bla 9 sysctl sysctl_tcp_mem # bpftool c d /mnt/cgroup2/bla sysctl id 9 # bpftool c t CgroupPath ID AttachType AttachFlags Name Signed-off-by: Andrey Ignatov Acked-by: Song Liu Acked-by: Jakub Kicinski Signed-off-by: Alexei Starovoitov commit e1d1dc4653ecdea55cb0e96844f88da62c65cd4f Author: Andrii Nakryiko Date: Tue Apr 16 11:47:17 2019 -0700 libbpf: fix printf formatter for ptrdiff_t argument Using %ld for printing out value of ptrdiff_t type is not portable between 32-bit and 64-bit archs. This is causing compilation errors for libbpf on 32-bit platform (discovered as part of an effort to integrate libbpf into systemd ([0])). Proper formatter is %td, which is used in this patch. v2->v1: - add Reported-by - provide more context on how this issue was discovered [0] https://github.com/systemd/systemd/pull/12151 Reported-by: Evgeny Vereshchagin Cc: Daniel Borkmann Cc: Alexei Starovoitov Cc: Yonghong Song Signed-off-by: Andrii Nakryiko Acked-by: Song Liu Signed-off-by: Alexei Starovoitov commit 0d306c31b2f77391dacdeaad4470c577f2aecc4f Author: Prashant Bhole Date: Tue Apr 16 18:13:01 2019 +0900 bpf: use BPF_CAST_CALL for casting bpf call verifier.c uses BPF_CAST_CALL for casting bpf call except at one place in jit_subprogs(). Let's use the macro for consistency. Signed-off-by: Prashant Bhole Acked-by: Song Liu Signed-off-by: Alexei Starovoitov commit 725721a6506eea53bfde81a34e91a06d6162c216 Author: Viet Hoang Tran Date: Mon Apr 15 09:54:55 2019 +0000 bpf: allow clearing all sock_ops callback flags The helper function bpf_sock_ops_cb_flags_set() can be used to both set and clear the sock_ops callback flags. However, its current behavior is not consistent. BPF program may clear a flag if more than one were set, or replace a flag with another one, but cannot clear all flags. This patch also updates the documentation to clarify the ability to clear flags of this helper function. Signed-off-by: Hoang Tran Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit 809041e765055ba311f3a0b8751db1c65739ad51 Author: Peter Oskolkov Date: Wed Apr 3 08:43:38 2019 -0700 selftests: bpf: add VRF test cases to lwt_ip_encap test. This patch adds tests validating that VRF and BPF-LWT encap work together well, as requested by David Ahern. Signed-off-by: Peter Oskolkov Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit a745f7af3cbd04b9c9c9e803429e1c20775b538d Author: Kees Cook Date: Thu Apr 11 17:11:08 2019 -0700 selftests/harness: Add 30 second timeout per test In order to keep tests from hanging forever, this adds an alarm signal to each test run. This assumes an individual test doesn't take longer than 30 seconds. Signed-off-by: Kees Cook Signed-off-by: Shuah Khan commit 9dd3fcb0ab73cb1e00b8562ef027a38521aaff87 Author: Kees Cook Date: Thu Apr 11 16:56:31 2019 -0700 selftests/seccomp: Handle namespace failures gracefully When running without USERNS or PIDNS the seccomp test would hang since it was waiting forever for the child to trigger the user notification since it seems the glibc() abort handler makes a call to getpid(), which would trap again. This changes the getpid filter to getppid, and makes sure ASSERTs execute to stop from spawning the listener. Reported-by: Shuah Khan Fixes: 6a21cc50f0c7 ("seccomp: add a return code to trap to userspace") Cc: stable@vger.kernel.org # > 5.0 Signed-off-by: Kees Cook Reviewed-by: Tycho Andersen Signed-off-by: Shuah Khan commit e37a784d8b6a1e726de5ddc7b4809c086a08db09 Author: Eric Biggers Date: Thu Apr 11 14:32:15 2019 -0700 fscrypt: use READ_ONCE() to access ->i_crypt_info ->i_crypt_info starts out NULL and may later be locklessly set to a non-NULL value by the cmpxchg() in fscrypt_get_encryption_info(). But ->i_crypt_info is used directly, which technically is incorrect. It's a data race, and it doesn't include the data dependency barrier needed to safely dereference the pointer on at least one architecture. Fix this by using READ_ONCE() instead. Note: we don't need to use smp_load_acquire(), since dereferencing the pointer only requires a data dependency barrier, which is already included in READ_ONCE(). We also don't need READ_ONCE() in places where ->i_crypt_info is unconditionally dereferenced, since it must have already been checked. Also downgrade the cmpxchg() to cmpxchg_release(), since RELEASE semantics are sufficient on the write side. Signed-off-by: Eric Biggers Signed-off-by: Theodore Ts'o commit f3fb20074e02865e1724c586eae46a77a7f2266b Author: Eric Anholt Date: Mon Apr 1 15:26:35 2019 -0700 drm/lima: Use the drm_gem_fence_array_add helpers for our deps. It's a pretty direct port of what I did for v3d. Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190401222635.25013-8-eric@anholt.net Reviewed-and-tested-by: Qiang Yu commit ff5d3a97075c65731a46453d36e75b9cf925e165 Author: Eric Biggers Date: Fri Mar 15 14:16:32 2019 -0700 fscrypt: remove WARN_ON_ONCE() when decryption fails If decrypting a block fails, fscrypt did a WARN_ON_ONCE(). But WARN is meant for kernel bugs, which this isn't; this could be hit by fuzzers using fault injection, for example. Also, there is already a proper warning message logged in fscrypt_do_page_crypto(), so the WARN doesn't add much. Just remove the unnessary WARN. Signed-off-by: Eric Biggers Signed-off-by: Theodore Ts'o commit cd0265fcd2eae9004c68ef2123a9dac0dc5a666a Author: Eric Biggers Date: Mon Mar 18 10:23:33 2019 -0700 fscrypt: drop inode argument from fscrypt_get_ctx() The only reason the inode is being passed to fscrypt_get_ctx() is to verify that the encryption key is available. However, all callers already ensure this because if we get as far as trying to do I/O to an encrypted file without the key, there's already a bug. Therefore, remove this unnecessary argument. Signed-off-by: Eric Biggers Signed-off-by: Theodore Ts'o commit 5d5a179d3e90a8385b115e4bd19826ea0bcc6d11 Author: Eric Anholt Date: Mon Apr 1 15:26:33 2019 -0700 drm: Add helpers for setting up an array of dma_fence dependencies. I needed to add implicit dependency support for v3d, and Rob Herring has been working on it for panfrost, and I had recently looked at the lima implementation so I think this will be a good intersection of what we all want and simplify our scheduler implementations. v2: Rebase on xa_limit_32b API change, and tiny checkpatch cleanups on the way in (unsigned int vs unsigned, extra return before EXPORT_SYMBOL_GPL) Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190401222635.25013-6-eric@anholt.net Reviewed-and-tested-by: Qiang Yu (v1) commit d2a9b01ff68210cbe78c499858d51890938dee86 Author: Eddie James Date: Tue Apr 16 15:54:28 2019 +0000 hwmon: (occ) Add more details to Kconfig help text The help text needs to spell out how the driver runs on a BMC, as it previously seemed to indicate it ran on a POWER processor. Signed-off-by: Eddie James Signed-off-by: Guenter Roeck commit afe8419eb628430fe80452b9fd36cd0ebf411bd2 Author: Eddie James Date: Tue Apr 16 15:43:49 2019 +0000 hwmon: (occ) Prevent sysfs error attribute from returning error The error sysfs attribute returns the stored error state of the OCC and doesn't depend on the OCC poll response. Therefore, split the error attribute into it's own function to avoid failing out of the function if the poll response fails. Signed-off-by: Eddie James Signed-off-by: Guenter Roeck commit c8f005684c98f4d9942baec13ad98054dbf312a0 Author: Deepak Rawat Date: Mon Apr 15 10:28:05 2019 -0700 drm: Expose "FB_DAMAGE_CLIPS" property to atomic aware user-space only Plane property "FB_DAMAGE_CLIPS" can only be used by atomic aware user-space, so no point exposing it otherwise. Cc: Signed-off-by: Deepak Rawat Reviewed-by: Daniel Vetter Fixes: d3b21767821e ("drm: Add a new plane property to send damage during plane update") Link: https://patchwork.freedesktop.org/patch/msgid/20190415172814.9840-1-drawat@vmware.com commit b5c46a53ee6b1f97104883d93847b2b2fdddc289 Author: Eddie James Date: Tue Apr 16 15:43:48 2019 +0000 hwmon: (occ) Store error condition for rate-limited polls The OCC driver limits the rate of sending poll commands to the OCC. If a user reads a hwmon entry after a poll response resulted in an error and is rate-limited, the error is invisible to the user. Fix this by storing the last error and returning that in the rate-limited case. Signed-off-by: Eddie James Signed-off-by: Guenter Roeck commit 6e114debb2eb3775b350609811522d3a84f86886 Author: Carolyn Wyborny Date: Wed Feb 6 15:08:26 2019 -0800 i40e: Fix misleading error message This patch changes an error code for an admin queue head overrun to use I40E_ERR_ADMIN_QUEUE_FULL instead of I40E_ERR_QUEUE_EMPTY. Signed-off-by: Carolyn Wyborny Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 06b6e2a2333eb3581567a7ac43ca465ef45f4daa Author: Adam Ludkiewicz Date: Wed Feb 6 15:08:25 2019 -0800 i40e: Able to add up to 16 MAC filters on an untrusted VF This patch fixes the problem with the driver being able to add only 7 multicast MAC address filters instead of 16. The problem is fixed by changing the maximum number of MAC address filters to 16+1+1 (two extra are needed because the driver uses 1 for unicast MAC address and 1 for broadcast). Signed-off-by: Adam Ludkiewicz Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit f38d1347cd0bf936b184ea0e41bce2b3b769f141 Author: Adam Ludkiewicz Date: Wed Feb 6 15:08:24 2019 -0800 i40e: Report advertised link modes on 40GBASE_SR4 Defined the advertised link mode field for 40000baseSR4_Full for use with ethtool. Signed-off-by: Adam Ludkiewicz Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 4fb29bddb57f8f30e7bd565ab8a478d3fb32464a Author: Adam Ludkiewicz Date: Wed Feb 6 15:08:23 2019 -0800 i40e: The driver now prints the API version in error message Added the API version in the error message for clarity. Signed-off-by: Adam Ludkiewicz Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit cce2dffefe6d4dc9fdbbea3f2bd1a2fc75998573 Author: Adam Ludkiewicz Date: Wed Feb 6 15:08:22 2019 -0800 i40e: Changed maximum supported FW API version to 1.8 A new FW has been released, which uses API version 1.8. Signed-off-by: Adam Ludkiewicz Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 735aaafaff7a21f0a7cd6eb88dd7d69e5bb5534b Author: Grzegorz Siwik Date: Wed Feb 6 15:08:21 2019 -0800 i40e: Remove misleading messages for untrusted VF Removed misleading messages when untrusted VF tries to add more addresses than NIC limit Signed-off-by: Grzegorz Siwik Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 54dea0e7efd1b60123748fa48000afc79370f4a8 Author: Chinh T Cao Date: Wed Feb 6 15:08:20 2019 -0800 i40e: Update i40e_init_dcb to return correct error Modify the i40e_init_dcb to return the correct error when LLDP or DCBX is not in operational state. Signed-off-by: Chinh T Cao Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 26221331733137eafd205bf5046846a10539b89c Author: Piotr Marczak Date: Wed Feb 6 15:08:19 2019 -0800 i40e: Fix for 10G ports LED not blinking On some hardware LEDs would not blink after command 'ethtool -p {eth-port}' in certain circumstances. Now, function does not care about the activity of the LED (though still preserves its state) but forcibly executes identification blinking and then restores the LED state. Signed-off-by: Piotr Marczak Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit bf4bf09bdd91a75bb175c172b3f7251a4845f591 Author: Jacob Keller Date: Tue Feb 12 13:56:24 2019 -0800 i40e: save PTP time before a device reset In the case where PTP is running on the hardware clock, but the kernel system time is not being synced, a device reset can mess up the clock time. This occurs because we reset the clock time based on the kernel time every reset. This causes us to potentially completely reset the PTP time, and can cause unexpected behavior in programs like ptp4l. Avoid this by saving the PTP time prior to device reset, and then restoring using that time after the reset. Directly restoring the PTP time we saved isn't perfect, because time should have continued running, but the clock will essentially be stopped during the reset. This is still better than the current solution of assuming that the PTP HW clock is synced to the CLOCK_REALTIME. We can do even better, by saving the ktime and calculating a differential, using ktime_get(). This is based on CLOCK_MONOTONIC, and allows us to get a fairly precise measure of the time difference between saving and restoring the time. Using this, we can update the saved PTP time, and use that as the value to write to the hardware clock registers. This, of course is not perfect. However, it does help ensure that the PTP time is restored as close as feasible to the time it should have been if the reset had not occurred. During device initialization, continue using the system time as the source for the creation of the PTP clock, since this is the best known current time source at driver load. Signed-off-by: Jacob Keller Signed-off-by: Jeff Kirsher commit bfb0ebed53857cfc57f11c63fa3689940d71c1c8 Author: Nicholas Nunley Date: Wed Feb 6 15:08:17 2019 -0800 i40e: don't allow changes to HW VLAN stripping on active port VLANs Modifying the VLAN stripping options when a port VLAN is configured will break traffic for the VSI, and conceptually doesn't make sense, so don't allow this. Signed-off-by: Nicholas Nunley Signed-off-by: Jeff Kirsher commit cdc594e00370e153c323cf8aa9c43b66679e09a0 Author: Aleksandr Loktionov Date: Wed Feb 6 15:08:16 2019 -0800 i40e: Implement DDP support in i40e driver This patch introduces DDP (Dynamic Device Personalization) which allows loading profiles that change the way internal parser interprets processed frames. To load DDP profiles it utilizes ethtool flash feature. The files with recipes must be located in /var/lib/firmware directory. Afterwards the recipe can be loaded by invoking: ethtool -f 100 ethtool -f - 100 See further details of this feature in the i40e documentation, or visit https://www.intel.com/content/www/us/en/architecture-and-technology/ethernet/dynamic-device-personalization-brief.html The driver shall verify DDP profile can be loaded in accordance with the rules: * Package with Group ID 0 are exclusive and can only be loaded the first. * Packages with Group ID 0x01-0xFE can only be loaded simultaneously with the packages from the same group. * Packages with Group ID 0xFF are compatible with all other packages. Signed-off-by: Aleksandr Loktionov Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 3e957b377bf4262aec2dd424f28ece94e36814d4 Author: Adam Ludkiewicz Date: Wed Feb 6 15:08:15 2019 -0800 i40e: Queues are reserved despite "Invalid argument" error Added a new local variable in the i40e_setup_tc function named old_queue_pairs so num_queue_pairs can be restored to the correct value in case configuring queue channels fails. Additionally, moved the exit label in the i40e_setup_tc function so the if (need_reset) block can be executed. Also, fixed data packing in the i40e_setup_tc function. Signed-off-by: Adam Ludkiewicz Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit b2176a1dfb518d870ee073445d27055fea64dfb8 Author: Nigel Croxon Date: Tue Apr 16 09:50:09 2019 -0700 md/raid: raid5 preserve the writeback action after the parity check The problem is that any 'uptodate' vs 'disks' check is not precise in this path. Put a "WARN_ON(!test_bit(R5_UPTODATE, &dev->flags)" on the device that might try to kick off writes and then skip the action. Better to prevent the raid driver from taking unexpected action *and* keep the system alive vs killing the machine with BUG_ON. Note: fixed warning reported by kbuild test robot Signed-off-by: Dan Williams Signed-off-by: Nigel Croxon Signed-off-by: Song Liu commit b16b2a2f70b16089ff460c53471af7c0b33ce37a Author: Paulo Zanoni Date: Wed Apr 10 16:53:44 2019 -0700 drm/i915: fully convert the IRQ initialization macros to intel_uncore Make them take the uncore argument from the caller instead of passing the implicit &dev_priv->uncore directly. This will allow us to finally pass something that's not dev_priv->uncore in the future, and gets rid of the implicit variables in register macros. v2: Rebase on top of the newer patches. Reviewed-by: Ville Syrjälä (v1) Signed-off-by: Paulo Zanoni Link: https://patchwork.freedesktop.org/patch/msgid/20190410235344.31199-6-paulo.r.zanoni@intel.com commit 65f42cdc6e654543a769a5f4df060ae00096a334 Author: Paulo Zanoni Date: Wed Apr 10 16:53:43 2019 -0700 drm/i915: convert the IRQ initialization functions to intel_uncore The IRQ initialization helpers are simple and self-contained. Continue the transition started in the recent uncore rework to get us rid of I915_READ/WRITE and the implicit dev_priv variables. While the implicit dev_priv is removed from the IRQ initialization helpers, we didn't get rid of them in the macro callers. Doing that should be very simple now. v2: Rebase on top of the new patches. Reviewed-by: Ville Syrjälä (v1) Signed-off-by: Paulo Zanoni Link: https://patchwork.freedesktop.org/patch/msgid/20190410235344.31199-5-paulo.r.zanoni@intel.com commit 9d9523d8c12295d69e9ff3693d61e0d36eb00709 Author: Paulo Zanoni Date: Wed Apr 10 16:53:42 2019 -0700 drm/i915: add GEN2_ prefix to the I{E, I, M, S}R registers This discussion started because we use token pasting in the GEN{2,3}_IRQ_INIT and GEN{2,3}_IRQ_RESET macros, so gen2-4 passes an empty argument to those macros, making the code a little weird. The original proposal was to just add a comment as the empty argument, but Ville suggested we just add a prefix to the registers, and that indeed sounds like a more elegant solution. Now doing this is kinda against our rules for register naming since we only add gens or platform names as register prefixes when the given gen/platform changes a register that already existed before. On the other hand, we have so many instances of IIR/IMR in comments that adding a prefix would make the users of these register more easily findable, in addition to make our token pasting macros actually readable. So IMHO opening an exception here is worth it. Cc: Ville Syrjälä Signed-off-by: Paulo Zanoni Reviewed-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190410235344.31199-4-paulo.r.zanoni@intel.com commit 2918c3caefc1589350f1aeb18b853bda94b5bc96 Author: Paulo Zanoni Date: Wed Apr 10 16:53:41 2019 -0700 drm/i915: don't specify the IRQ register in the gen2 macros Like the gen3+ macros, the gen2 versions of the IRQ initialization macros take the register name in the 'type' argument. But gen2 only has one set of registers, so there's really no need to specify the type. This commit removes the type argument and uses the registers directly instead of passing them through variables. Signed-off-by: Paulo Zanoni Reviewed-by: Daniele Ceraolo Spurio Link: https://patchwork.freedesktop.org/patch/msgid/20190410235344.31199-3-paulo.r.zanoni@intel.com commit 68eb49b140c380866ee918d378ae1a798aab9983 Author: Paulo Zanoni Date: Wed Apr 10 16:53:40 2019 -0700 drm/i915: refactor the IRQ init/reset macros The whole point of having macros here is for the token pasting necessary to automatically have IMR, IIR and IER selected. We don't really need or want all the inlining that happens as a consequence. The good thing about the current code is that it works regardless of the relative offsets between these registers (they change after gen4, with the usual VLV/CHV exceptions). One thing which we can do is to split the logic of what we do with imr/ier/iir to functions separate from the macros that pick them. That's what we do in this commit. This allows us to get rid of the gen8 duplicates and also all the inlining: add/remove: 2/0 grow/shrink: 0/21 up/down: 384/-5949 (-5565) Function old new delta gen3_irq_reset - 233 +233 gen3_irq_init - 151 +151 i8xx_irq_postinstall 459 442 -17 gen11_irq_postinstall 804 744 -60 ironlake_irq_postinstall 450 353 -97 vlv_display_irq_postinstall 348 245 -103 i965_irq_postinstall 378 272 -106 i915_irq_postinstall 333 227 -106 gen8_irq_power_well_post_enable 374 240 -134 ironlake_irq_reset 397 218 -179 vlv_display_irq_reset 616 433 -183 i965_irq_reset 374 180 -194 cherryview_irq_reset 379 185 -194 i915_irq_reset 407 209 -198 ibx_irq_reset 332 133 -199 gen5_gt_irq_postinstall 533 332 -201 gen8_irq_power_well_pre_disable 434 204 -230 gen8_gt_irq_postinstall 469 196 -273 gen8_de_irq_postinstall 1200 836 -364 gen5_gt_irq_reset 471 76 -395 gen8_gt_irq_reset 775 99 -676 gen8_irq_reset 1100 333 -767 gen11_irq_reset 1959 686 -1273 Total: Before=2259222, After=2253657, chg -0.25% v2: - Make checkpatch happy with a temporary which_ (Checkpatch). - Reorder the arguments for the INIT macros (Ville). - Correctly explain when the register offsets change in the commit message (Ville). - Use more line breaks in the macro calls to make the arguments look a little more organized/readable. - Update the bloat-o-meter output (minor change only). Reviewed-by: Ville Syrjälä (v1) Signed-off-by: Paulo Zanoni Link: https://patchwork.freedesktop.org/patch/msgid/20190410235344.31199-2-paulo.r.zanoni@intel.com commit b23aa311fa1f376640069e5da897b4a6148d104f Author: Yue Hu Date: Tue Apr 16 10:40:27 2019 +0800 cpufreq: Remove needless bios_limit check in show_bios_limit() Initially, bios_limit attribute will be created if driver->bios_limit is set in cpufreq_add_dev_interface(). So remove the redundant check for latter show operation. Signed-off-by: Yue Hu Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki commit eae2ef0ed2460c56915b13e7d67bb46ae379ec72 Author: Mohan Kumar Date: Mon Apr 15 14:03:58 2019 +0300 drivers/cpufreq/acpi-cpufreq.c: This fixes the following checkpatch warning WARNING: Prefer using '"%s...", __func__' to using function's name, in a string Switch hardcoded function name with a reference to __func__ making the code more maintainable Signed-off-by: Mohan Kumar Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki commit 4302e381a870aafb547e6139830e5a4ee2cb8261 Author: Sudeep Holla Date: Mon Apr 15 12:47:46 2019 +0100 firmware/psci: add support for SYSTEM_RESET2 PSCI v1.1 introduced SYSTEM_RESET2 to allow both architectural resets where the semantics are described by the PSCI specification itself as well as vendor-specific resets. Currently only system warm reset semantics is defined as part of architectural resets by the specification. This patch implements support for SYSTEM_RESET2 by making using of reboot_mode passed by the reboot infrastructure in the kernel. Acked-by: Mark Rutland Tested-by: Aaro Koskinen Signed-off-by: Sudeep Holla Signed-off-by: Rafael J. Wysocki commit adcc00f7dcbf0131070ecc750cf83ee1840f603d Author: Hariprasad Kelam Date: Sat Apr 6 16:29:36 2019 +0530 f2fs: data: fix warning Using plain integer as NULL pointer changed passing function argument "0 to NULL" to fix below sparse warning fs/f2fs/data.c:426:47: warning: Using plain integer as NULL pointer Signed-off-by: Hariprasad Kelam Reviewed-by: Chao Yu Reviewed-by: Mukesh Ojha Signed-off-by: Jaegeuk Kim commit 126ce7214d213412bd4a23c731626ee7fe4cb4ec Author: Chao Yu Date: Tue Apr 2 18:52:22 2019 +0800 f2fs: add tracepoint for f2fs_file_write_iter() This patch adds tracepoint for f2fs_file_write_iter(). Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit 98e2630284ab741804bd0713e932e725466f2f84 Author: Colin Ian King Date: Sat Mar 30 00:17:12 2019 +0000 platform/x86: alienware-wmi: fix kfree on potentially uninitialized pointer Currently the kfree of output.pointer can be potentially freeing an uninitalized pointer in the case where out_data is NULL. Fix this by reworking the case where out_data is not-null to perform the ACPI status check and also the kfree of outpoint.pointer in one block and hence ensuring the pointer is only freed when it has been used. Also replace the if (ptr != NULL) idiom with just if (ptr). Fixes: ff0e9f26288d ("platform/x86: alienware-wmi: Correct a memory leak") Signed-off-by: Colin Ian King Signed-off-by: Darren Hart (VMware) commit 6cc13c28da5beee0f706db6450e190709700b34a Author: Mario Limonciello Date: Wed Mar 27 09:25:34 2019 -0500 platform/x86: dell-laptop: fix rfkill functionality When converting the driver two arguments were transposed leading to rfkill not working. BugLink: https://bugzilla.kernel.org/show_bug.cgi?id=201427 Reported-by: Pepijn de Vos Fixes: 549b49 ("platform/x86: dell-smbios: Introduce dispatcher for SMM calls") Signed-off-by: Mario Limonciello Acked-by: Pali Rohár Cc: # 4.14.x Signed-off-by: Darren Hart (VMware) commit 5c090abf945bf5fd496c861f371410888be8f4de Author: Nicolin Chen Date: Tue Apr 16 12:41:31 2019 -0700 hwmon: (ina3221) Add averaging mode support The CONFIG register has a 3-bit averaging mode field for users to setup the number of samples that are collected and averaged together. This is very useful to filter noise from sensor data. This patch adds a 'samples' sysfs node using hwmon_chip_samples of hwmon core, and updates wait time calculation by taking this samples value into account. Signed-off-by: Nicolin Chen Signed-off-by: Guenter Roeck commit 2d65c42b43e53d61f1fd6b8d0a097451a4cffa24 Author: Gustavo A. R. Silva Date: Wed Apr 10 12:09:14 2019 -0500 genirq/devres: Use struct_size() in devm_kzalloc() One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example: struct foo { int stuff; struct boo entry[]; }; size = sizeof(struct foo) + count * sizeof(struct boo); instance = devm_kzalloc(dev, size, GFP_KERNEL); Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper. instance = devm_kzalloc(dev, struct_size(instance, entry, count), GFP_KERNEL); This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Thomas Gleixner Link: https://lkml.kernel.org/r/20190410170914.GA16161@embeddedor commit 09ee951617d9af8a86d228b2ed34035076ab6001 Author: Martin Blumenstingl Date: Sat Apr 13 18:34:23 2019 +0200 ARM: dts: meson8b: odroid-c1: prepare support for the RTC The Odroid-C1 has the 32.768 kHz oscillator (X3 in the schematics) which is required for the RTC. A battery can be connected separately (to the BT1 header) - then the "rtc" node can be enabled manually. By default the RTC is disabled because the boards typically come without the RTC battery. Signed-off-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit 6ffdc4738c5a8856afc46da92453fe7c086f1eaa Author: Martin Blumenstingl Date: Sat Apr 13 18:34:22 2019 +0200 ARM: dts: meson8b: ec100: enable the RTC The RTC is always enabled on this board since the battery is already connected in the factory. According to the schematics the VCC_RTC regulator (which is either powered by the internal 3.3V or a battery) is connected to the 0.9V RTC_VDD input of the SoCs. Signed-off-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit f6eb973db22ab5636cfcdabe171d4b753525de4e Author: Martin Blumenstingl Date: Sat Apr 13 18:34:21 2019 +0200 ARM: dts: meson: add support for the RTC The 32-bit Meson SoCs have an RTC block in the AO (always on) area. The RTC requires an external 32.768 kHz oscillator to work properly. Whether or not this crystal exists depends on the board, so it has to be added for each board.dts (instead of adding it somewhere in a generic .dtsi). Signed-off-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit 747668dbc061b3e62bc1982767a3a1f9815fcf0e Author: Alan Stern Date: Mon Apr 15 13:19:25 2019 -0400 usb-storage: Set virt_boundary_mask to avoid SG overflows The USB subsystem has always had an unusual requirement for its scatter-gather transfers: Each element in the scatterlist (except the last one) must have a length divisible by the bulk maxpacket size. This is a particular issue for USB mass storage, which uses SG lists created by the block layer rather than setting up its own. So far we have scraped by okay because most devices have a logical block size of 512 bytes or larger, and the bulk maxpacket sizes for USB 2 and below are all <= 512. However, USB 3 has a bulk maxpacket size of 1024. Since the xhci-hcd driver includes native SG support, this hasn't mattered much. But now people are trying to use USB-3 mass storage devices with USBIP, and the vhci-hcd driver currently does not have full SG support. The result is an overflow error, when the driver attempts to implement an SG transfer of 63 512-byte blocks as a single 3584-byte (7 blocks) transfer followed by seven 4096-byte (8 blocks) transfers. The device instead sends 31 1024-byte packets followed by a 512-byte packet, and this overruns the first SG buffer. Ideally this would be fixed by adding better SG support to vhci-hcd. But for now it appears we can work around the problem by asking the block layer to respect the maxpacket limitation, through the use of the virt_boundary_mask. Signed-off-by: Alan Stern Reported-by: Seth Bollinger Tested-by: Seth Bollinger CC: Ming Lei Cc: stable Signed-off-by: Greg Kroah-Hartman commit 659f2563d323b09ca12b0e70bb6a50c1b25af3ee Author: Neil Armstrong Date: Mon Apr 8 11:31:39 2019 +0200 arm64: dts: meson-g12a-u200: Add support for Video Display This patch adds the HDMI, CVBS and CEC attributes and nodes to support full display on the U200 Reference Design. AO-CEC-B is used by default and AO-CEC-A is disabled. Signed-off-by: Neil Armstrong Signed-off-by: Kevin Hilman commit 912a3395df3a80fe789ebc406e595314ebefc45e Author: Neil Armstrong Date: Mon Apr 8 11:31:38 2019 +0200 arm64: dts: meson-g12a-sei510: Add support for Video Display This patch adds the HDMI, CVBS and CEC attributes and nodes to support full display on the SEI510 STB. AO-CEC-B is used by default and AO-CEC-A is disabled. Signed-off-by: Neil Armstrong Signed-off-by: Kevin Hilman commit b0be96160a55701af4748bcebbe0cd5fb7aec697 Author: Neil Armstrong Date: Mon Apr 8 11:31:37 2019 +0200 arm64: dts: meson-g12a-x96-max: Add support for Video Display This patch adds the HDMI, CVBS and CEC attributes and nodes to support full display on the X96 Max STB. AO-CEC-B is used by default and AO-CEC-A is disabled. Signed-off-by: Neil Armstrong Signed-off-by: Kevin Hilman commit 91516e5419cf91947213b4d9c62b4728701063e9 Author: Neil Armstrong Date: Mon Apr 8 11:31:36 2019 +0200 arm64: dts: meson-g12a: Add AO-CEC nodes Amlogic G12A embeds 2 CEC controllers : - AO-CEC-A the same controller as in GXBB, GXL & GXM SoCs - AO-CEC-B is a new controller Note, the two controller can work simultanously since 2 Pads can handle CEC, thus this SoC can handle 2 distinct CEC busses. This patch adds the nodes for the AO-CEC-A and AO-CEC-B controllers. Signed-off-by: Neil Armstrong Signed-off-by: Kevin Hilman commit 083feecd854833dcee8f1e98d7197195f5fd3649 Author: Neil Armstrong Date: Mon Apr 8 11:31:35 2019 +0200 arm64: dts: meson-g12a: Add VPU and HDMI related nodes Add VPU and HDMI display support. Signed-off-by: Neil Armstrong Signed-off-by: Kevin Hilman commit bb1dca3a3900a00b881286c96340d6ab85eafe0c Author: Neil Armstrong Date: Mon Apr 1 09:52:58 2019 +0200 soc: amlogic: meson-gx-pwrc-vpu: Add support for G12A The Amlogic G12A SoC has a very similar VPU Power Controller setup than the older GXBB, GXL & GXm SoCs. This patch adds the variant support for G12A. Signed-off-by: Neil Armstrong Signed-off-by: Kevin Hilman commit 2fe3b4bbc93ec30a173ebae7d2b8c530416df3af Author: Neil Armstrong Date: Mon Apr 1 09:48:01 2019 +0200 soc: amlogic: meson-gx-pwrc-vpu: Fix power on/off register bitmask The register bitmask to power on/off the VPU memories was incorectly set to 0x2 instead of 0x3. While still working, let's use the recommended vendor value instead. Fixes: 75fcb5ca4b46 ("soc: amlogic: add Meson GX VPU Domains driver") Signed-off-by: Neil Armstrong Signed-off-by: Kevin Hilman commit 36a2ba07757df790b4a874efb1a105b9330a9ae7 Author: Kefeng Wang Date: Mon Apr 8 23:21:12 2019 +0800 ACPI/IORT: Reject platform device creation on NUMA node mapping failure In a system where, through IORT firmware mappings, the SMMU device is mapped to a NUMA node that is not online, the kernel bootstrap results in the following crash: Unable to handle kernel paging request at virtual address 0000000000001388 Mem abort info: ESR = 0x96000004 Exception class = DABT (current EL), IL = 32 bits SET = 0, FnV = 0 EA = 0, S1PTW = 0 Data abort info: ISV = 0, ISS = 0x00000004 CM = 0, WnR = 0 [0000000000001388] user address but active_mm is swapper Internal error: Oops: 96000004 [#1] SMP Modules linked in: CPU: 5 PID: 1 Comm: swapper/0 Not tainted 5.0.0 #15 pstate: 80c00009 (Nzcv daif +PAN +UAO) pc : __alloc_pages_nodemask+0x13c/0x1068 lr : __alloc_pages_nodemask+0xdc/0x1068 ... Process swapper/0 (pid: 1, stack limit = 0x(____ptrval____)) Call trace: __alloc_pages_nodemask+0x13c/0x1068 new_slab+0xec/0x570 ___slab_alloc+0x3e0/0x4f8 __slab_alloc+0x60/0x80 __kmalloc_node_track_caller+0x10c/0x478 devm_kmalloc+0x44/0xb0 pinctrl_bind_pins+0x4c/0x188 really_probe+0x78/0x2b8 driver_probe_device+0x64/0x110 device_driver_attach+0x74/0x98 __driver_attach+0x9c/0xe8 bus_for_each_dev+0x84/0xd8 driver_attach+0x30/0x40 bus_add_driver+0x170/0x218 driver_register+0x64/0x118 __platform_driver_register+0x54/0x60 arm_smmu_driver_init+0x24/0x2c do_one_initcall+0xbc/0x328 kernel_init_freeable+0x304/0x3ac kernel_init+0x18/0x110 ret_from_fork+0x10/0x1c Code: f90013b5 b9410fa1 1a9f0694 b50014c2 (b9400804) ---[ end trace dfeaed4c373a32da ]-- Change the dev_set_proximity() hook prototype so that it returns a value and make it return failure if the PXM->NUMA-node mapping corresponds to an offline node, fixing the crash. Acked-by: Lorenzo Pieralisi Signed-off-by: Kefeng Wang Link: https://lore.kernel.org/linux-arm-kernel/20190315021940.86905-1-wangkefeng.wang@huawei.com/ Signed-off-by: Will Deacon commit 81fb8736dd81da3fe94f28968dac60f392ec6746 Author: Vincenzo Frascino Date: Tue Apr 16 17:14:30 2019 +0100 arm64: vdso: Fix clock_getres() for CLOCK_REALTIME clock_getres() in the vDSO library has to preserve the same behaviour of posix_get_hrtimer_res(). In particular, posix_get_hrtimer_res() does: sec = 0; ns = hrtimer_resolution; where 'hrtimer_resolution' depends on whether or not high resolution timers are enabled, which is a runtime decision. The vDSO incorrectly returns the constant CLOCK_REALTIME_RES. Fix this by exposing 'hrtimer_resolution' in the vDSO datapage and returning that instead. Reviewed-by: Catalin Marinas Signed-off-by: Vincenzo Frascino [will: Use WRITE_ONCE(), move adr off COARSE path, renumber labels, use 'w' reg] Signed-off-by: Will Deacon commit 3994fc48957520df061990ed22fff96023cfd953 Author: Darrick J. Wong Date: Mon Apr 15 13:13:21 2019 -0700 xfs: merge adjacent io completions of the same type It's possible for pagecache writeback to split up a large amount of work into smaller pieces for throttling purposes or to reduce the amount of time a writeback operation is pending. Whatever the reason, XFS can end up with a bunch of IO completions that call for the same operation to be performed on a contiguous extent mapping. Since mappings are extent based in XFS, we'd prefer to run fewer transactions when we can. When we're processing an ioend on the list of io completions, check to see if the next items on the list are both adjacent and of the same type. If so, we can merge the completions to reduce transaction overhead. On fast storage this doesn't seem to make much of a difference in performance, though the number of transactions for an overnight xfstests run seems to drop by ~5%. Signed-off-by: Darrick J. Wong Reviewed-by: Brian Foster commit 28408243706e1ec137876154ea212a1316db399a Author: Darrick J. Wong Date: Mon Apr 15 13:13:21 2019 -0700 xfs: remove unused m_data_workqueue Now that we're no longer using m_data_workqueue, remove it. Signed-off-by: Darrick J. Wong Reviewed-by: Brian Foster commit cb357bf3d105f68ff5a5adcf89f1b285da675e2f Author: Darrick J. Wong Date: Mon Apr 15 13:13:20 2019 -0700 xfs: implement per-inode writeback completion queues When scheduling writeback of dirty file data in the page cache, XFS uses IO completion workqueue items to ensure that filesystem metadata only updates after the write completes successfully. This is essential for converting unwritten extents to real extents at the right time and performing COW remappings. Unfortunately, XFS queues each IO completion work item to an unbounded workqueue, which means that the kernel can spawn dozens of threads to try to handle the items quickly. These threads need to take the ILOCK to update file metadata, which results in heavy ILOCK contention if a large number of the work items target a single file, which is inefficient. Worse yet, the writeback completion threads get stuck waiting for the ILOCK while holding transaction reservations, which can use up all available log reservation space. When that happens, metadata updates to other parts of the filesystem grind to a halt, even if the filesystem could otherwise have handled it. Even worse, if one of the things grinding to a halt happens to be a thread in the middle of a defer-ops finish holding the same ILOCK and trying to obtain more log reservation having exhausted the permanent reservation, we now have an ABBA deadlock - writeback completion has a transaction reserved and wants the ILOCK, and someone else has the ILOCK and wants a transaction reservation. Therefore, we create a per-inode writeback io completion queue + work item. When writeback finishes, it can add the ioend to the per-inode queue and let the single worker item process that queue. This dramatically cuts down on the number of kworkers and ILOCK contention in the system, and seems to have eliminated an occasional deadlock I was seeing while running generic/476. Testing with a program that simulates a heavy random-write workload to a single file demonstrates that the number of kworkers drops from approximately 120 threads per file to 1, without dramatically changing write bandwidth or pagecache access latency. Note that we leave the xfs-conv workqueue's max_active alone because we still want to be able to run ioend processing for as many inodes as the system can handle. Signed-off-by: Darrick J. Wong Reviewed-by: Brian Foster commit 4fb7951fde64985bad80dcd2d721430ba584f125 Author: Darrick J. Wong Date: Tue Apr 16 08:22:01 2019 -0700 xfs: scrub should only cross-reference with healthy btrees Skip cross-referencing with a btree if the health report tells us that it's known to be bad. This should reduce the dmesg spew considerably. Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner commit 4860a05d2475d6f50de79f168beb893cc0066a6e Author: Darrick J. Wong Date: Tue Apr 16 08:22:00 2019 -0700 xfs: scrub/repair should update filesystem metadata health Now that we have the ability to track sick metadata in-core, make scrub and repair update those health assessments after doing work. Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner commit 160b5a784525e8a44902873f1938e1f4d77fe112 Author: Darrick J. Wong Date: Tue Apr 16 08:22:00 2019 -0700 xfs: hoist the already_fixed variable to the scrub context Now that we no longer memset the scrub context, we can move the already_fixed variable into the scrub context's state flags instead of passing around pointers to separate stack variables. Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner commit f8c2a2257ca12fb3a04830bbacc85ce860f04ba9 Author: Darrick J. Wong Date: Tue Apr 16 08:21:59 2019 -0700 xfs: collapse scrub bool state flags into a single unsigned int Combine all the boolean state flags in struct xfs_scrub into a single unsigned int, because we're going to be adding more state flags soon. Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner commit 9d71e15586fd7d274a23dd0bbf54278c86fe263f Author: Darrick J. Wong Date: Tue Apr 16 08:21:59 2019 -0700 xfs: refactor scrub context initialization It's a little silly how the memset in scrub context initialization forces us to declare stack variables to preserve context variables across a retry. Since the teardown functions already null out most of the ephemeral state (buffer pointers, btree cursors, etc.), just skip the memset and move the initialization as needed. Signed-off-by: Darrick J. Wong Reviewed-by: Dave Chinner commit a25d8c327bb41742dbd59f8c545f59f3b9c39983 Author: Song Liu Date: Tue Apr 16 09:34:21 2019 -0700 Revert "Don't jump to compute_result state from check_result state" This reverts commit 4f4fd7c5798bbdd5a03a60f6269cf1177fbd11ef. Cc: Dan Williams Cc: Nigel Croxon Cc: Xiao Ni Signed-off-by: Song Liu commit c42d3240990814eec1e4b2b93fa0487fc4873aed Author: Pawel Baldysiak Date: Wed Mar 27 13:48:21 2019 +0100 md: return -ENODEV if rdev has no mddev assigned Mdadm expects that setting drive as faulty will fail with -EBUSY only if this operation will cause RAID to be failed. If this happens, it will try to stop the array. Currently -EBUSY might also be returned if rdev is in the middle of the removal process - for example there is a race with mdmon that already requested the drive to be failed/removed. If rdev does not contain mddev, return -ENODEV instead, so the caller can distinguish between those two cases and behave accordingly. Reviewed-by: NeilBrown Signed-off-by: Pawel Baldysiak Signed-off-by: Song Liu commit fd1a4da3bfd77d3fe15165948b948ead2b522c1c Author: Axel Lin Date: Tue Apr 16 18:17:29 2019 +0800 regulator: tps80031: Switch to SPDX identifier Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 4b77a49cb82652488e35ed8d3809f33cedbad6dc Author: Axel Lin Date: Tue Apr 16 18:17:28 2019 +0800 regulator: tps80031: Constify regulator_ops and tps80031_dcdc_voltages array These regulator_ops variables and tps80031_dcdc_voltages array never need to be modified, make them const so compiler can put them to .rodata. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit de110f387371337cf90f40055cf1ebdf01b6f427 Author: Axel Lin Date: Tue Apr 16 18:17:27 2019 +0800 regulator: tps80031: Remove unused *rdev from struct tps80031_regulator The ri-rdev is assigend but not used, so remove it. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 9fc0fd5077badc3de5c40895beecee4f57d02423 Author: Alexandre Belloni Date: Tue Apr 16 10:33:08 2019 +0200 rtc: mc13xxx: fix style issue Use unsigned int instead of unsigned. Signed-off-by: Alexandre Belloni commit edd6d79ece9ab2b62cc5353b0225f75e18ca66e6 Author: Alexandre Belloni Date: Tue Apr 16 10:33:07 2019 +0200 rtc: mc13xxx: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Signed-off-by: Alexandre Belloni commit eee86deafee8370af3196859bfe91f5410787c45 Author: Alexandre Belloni Date: Tue Apr 16 10:33:06 2019 +0200 rtc: mc13xxx: use .set_time Use .set_time instead of the deprecated .set_mmss64. Signed-off-by: Alexandre Belloni commit e4ae7023e182a8268d6e0ac3fd554ef7c82bd7f2 Author: Alexandre Belloni Date: Tue Apr 16 10:33:05 2019 +0200 rtc: mc13xxx: set range All supported PMICs have a 15 bits days counter and hours, minutes, seconds Signed-off-by: Alexandre Belloni commit 3b6bddda2fb68e0f784f5e5fabe91ba3f7399ef5 Author: Thomas Bogendoerfer Date: Tue Apr 16 11:34:04 2019 +0200 rtc: ds1685: use threaded interrupt Handling of extended interrupts (kickstart, wake-up, ram-clear) was moved off to a work queue, but the interrupts aren't acknowledged in the interrupt handler. This leads to a deadlock, if driver is used with interrupts. To fix this we use a threaded interrupt, get rid of the work queue and do locking with just the rtc mutex lock. Fixes: aaaf5fbf56f1 ("rtc: add driver for DS1685 family of real time clocks") Signed-off-by: Thomas Bogendoerfer Signed-off-by: Alexandre Belloni commit e330c3d547e8ab722dca23f3dc26c3eba5590e55 Author: Thomas Bogendoerfer Date: Tue Apr 16 11:34:03 2019 +0200 rtc: ds1685: remove dead code ds1685_rtc_begin_ctrl_access/ds1685_rtc_end_ctrl_access aren't used, so get rid of it. Signed-off-by: Thomas Bogendoerfer Signed-off-by: Alexandre Belloni commit 22e6c8087e175bc5c507b4e45d1ca588b2bcc61c Author: Nishad Kamdar Date: Tue Apr 16 20:49:35 2019 +0530 arm64: Use the correct style for SPDX License Identifier This patch corrects the SPDX License Identifier style in the arm64 Hardware Architecture related files. Suggested-by: Joe Perches Signed-off-by: Nishad Kamdar Signed-off-by: Will Deacon commit 131e135f7fd14b1de7a5eb26631076705c18073f Author: Mark Rutland Date: Tue Apr 9 12:13:13 2019 +0100 arm64: instrument smp_{load_acquire,store_release} Our __smp_store_release() and __smp_load_acquire() macros use inline assembly, which is opaque to kasan. This means that kasan can't catch erroneous use of these. This patch adds kasan instrumentation to both. Cc: Catalin Marinas Signed-off-by: Mark Rutland [will: consistently use *p as argument to sizeof] Signed-off-by: Will Deacon commit eea1bb2248691ed65c33daff94a253af44feb103 Author: Miles Chen Date: Tue Apr 16 01:36:36 2019 +0800 arm64: mm: check virtual addr in virt_to_page() if CONFIG_DEBUG_VIRTUAL=y This change uses the original virt_to_page() (the one with __pa()) to check the given virtual address if CONFIG_DEBUG_VIRTUAL=y. Recently, I worked on a bug: a driver passes a symbol address to dma_map_single() and the virt_to_page() (called by dma_map_single()) does not work for non-linear addresses after commit 9f2875912dac ("arm64: mm: restrict virt_to_page() to the linear mapping"). I tried to trap the bug by enabling CONFIG_DEBUG_VIRTUAL but it did not work - bacause the commit removes the __pa() from virt_to_page() but CONFIG_DEBUG_VIRTUAL checks the virtual address in __pa()/__virt_to_phys(). A simple solution is to use the original virt_to_page() (the one with__pa()) if CONFIG_DEBUG_VIRTUAL=y. Cc: Ard Biesheuvel Acked-by: Catalin Marinas Signed-off-by: Miles Chen Signed-off-by: Will Deacon commit b9585f53bcf1ada1fbac22c15fd723c65ef67ff1 Author: Andrew Murray Date: Tue Apr 9 10:52:45 2019 +0100 arm64: Advertise ARM64_HAS_DCPODP cpu feature Advertise ARM64_HAS_DCPODP when both DC CVAP and DC CVADP are supported. Even though we don't use this feature now, we provide it for consistency with DCPOP and anticipate it being used in the future. Signed-off-by: Andrew Murray Reviewed-by: Dave Martin Reviewed-by: Suzuki K Poulose Signed-off-by: Will Deacon commit 04a1438e5660ae44ecebd6c870fbcc140dd883a7 Author: Andrew Murray Date: Tue Apr 9 10:52:44 2019 +0100 arm64: add CVADP support to the cache maintenance helper Allow users of dcache_by_line_op to specify cvadp as an op. Signed-off-by: Andrew Murray Reviewed-by: Dave Martin Signed-off-by: Will Deacon commit 671db581815faf17cbedd7fcbc48823a247d90b1 Author: Andrew Murray Date: Tue Apr 9 10:52:43 2019 +0100 arm64: Expose DC CVADP to userspace ARMv8.5 builds upon the ARMv8.2 DC CVAP instruction by introducing a DC CVADP instruction which cleans the data cache to the point of deep persistence. Let's expose this support via the arm64 ELF hwcaps. Signed-off-by: Andrew Murray Reviewed-by: Dave Martin Signed-off-by: Will Deacon commit d16ed4105f5bbd8a34f15053045a6657f4c52c6f Author: Andrew Murray Date: Tue Apr 9 10:52:42 2019 +0100 arm64: Handle trapped DC CVADP The ARMv8.5 DC CVADP instruction may be trapped to EL1 via SCTLR_EL1.UCI therefore let's provide a handler for it. Just like the CVAP instruction we use a 'sys' instruction instead of the 'dc' alias to avoid build issues with older toolchains. Signed-off-by: Andrew Murray Reviewed-by: Mark Rutland Reviewed-by: Dave Martin Signed-off-by: Will Deacon commit aec0bff757c937489d003ab7b36c52e77e4b096a Author: Andrew Murray Date: Tue Apr 9 10:52:41 2019 +0100 arm64: HWCAP: encapsulate elf_hwcap The introduction of AT_HWCAP2 introduced accessors which ensure that hwcap features are set and tested appropriately. Let's now mandate access to elf_hwcap via these accessors by making elf_hwcap static within cpufeature.c. Signed-off-by: Andrew Murray Reviewed-by: Dave Martin Reviewed-by: Suzuki K Poulose Signed-off-by: Will Deacon commit aaba098fe6ce594ae6f963dc041be6307e499f19 Author: Andrew Murray Date: Tue Apr 9 10:52:40 2019 +0100 arm64: HWCAP: add support for AT_HWCAP2 As we will exhaust the first 32 bits of AT_HWCAP let's start exposing AT_HWCAP2 to userspace to give us up to 64 caps. Whilst it's possible to use the remaining 32 bits of AT_HWCAP, we prefer to expand into AT_HWCAP2 in order to provide a consistent view to userspace between ILP32 and LP64. However internal to the kernel we prefer to continue to use the full space of elf_hwcap. To reduce complexity and allow for future expansion, we now represent hwcaps in the kernel as ordinals and use a KERNEL_HWCAP_ prefix. This allows us to support automatic feature based module loading for all our hwcaps. We introduce cpu_set_feature to set hwcaps which complements the existing cpu_have_feature helper. These helpers allow us to clean up existing direct uses of elf_hwcap and reduce any future effort required to move beyond 64 caps. For convenience we also introduce cpu_{have,set}_named_feature which makes use of the cpu_feature macro to allow providing a hwcap name without a {KERNEL_}HWCAP_ prefix. Signed-off-by: Andrew Murray [will: use const_ilog2() and tweak documentation] Signed-off-by: Will Deacon commit 3df5ffd2e5dc11df9dd215c7005e681e44402584 Author: Mauro Carvalho Chehab Date: Mon Apr 15 17:00:05 2019 -0300 docs: trace: fix some Sphinx warnings There are some warnings produced when building trace. Fix them. Signed-off-by: Mauro Carvalho Chehab Acked-by: Steven Rostedt (VMware) Signed-off-by: Jonathan Corbet commit a0bdc85e6dbc6b27030e7d9b3b1a7d905501c334 Author: Dinh Nguyen Date: Mon Apr 8 13:40:22 2019 -0500 MAINTAINERS: Add arm64/intel entry for SoCFPGA Add arch/arm64/boot/dts/intel/ under Dinh Nguyen. Signed-off-by: Dinh Nguyen commit 7dd7788411646c9619aa6495f832bc0a9b0146b5 Author: Peter Zijlstra Date: Tue Apr 9 09:59:05 2019 +0200 sched/core: Unify p->on_rq updates Almost all {,de}activate_task() invocations pair with p->on_rq updates, the exception being the usage in rt/deadline which hold both rq locks and therefore don't strictly need to set TASK_ON_RQ_MIGRATING, but it is harmless if we do anyway. Put the updates in {,de}activate_task() and cut down on repetition. Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit 1b174a2cb67a3a156d5a28426ae14241e6dfa655 Author: Peter Zijlstra Date: Tue Apr 9 09:53:13 2019 +0200 sched/core: Remove ttwu_activate() After the removal of try_to_wake_up_local(), there is only one user of ttwu_activate() left, and since it is a trivial function, remove it. Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit 6d25be5782e482eb93e3de0c94d0a517879377d0 Author: Thomas Gleixner Date: Wed Mar 13 17:55:48 2019 +0100 sched/core, workqueues: Distangle worker accounting from rq lock The worker accounting for CPU bound workers is plugged into the core scheduler code and the wakeup code. This is not a hard requirement and can be avoided by keeping track of the state in the workqueue code itself. Keep track of the sleeping state in the worker itself and call the notifier before entering the core scheduler. There might be false positives when the task is woken between that call and actually scheduling, but that's not really different from scheduling and being woken immediately after switching away. When nr_running is updated when the task is retunrning from schedule() then it is later compared when it is done from ttwu(). [ bigeasy: preempt_disable() around wq_worker_sleeping() by Daniel Bristot de Oliveira ] Signed-off-by: Thomas Gleixner Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Peter Zijlstra (Intel) Acked-by: Tejun Heo Cc: Daniel Bristot de Oliveira Cc: Lai Jiangshan Cc: Linus Torvalds Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/ad2b29b5715f970bffc1a7026cabd6ff0b24076a.1532952814.git.bristot@redhat.com Signed-off-by: Ingo Molnar commit e2abb398115e9c33f3d1e25bf6d1d08badc58b13 Author: Valentin Schneider Date: Tue Apr 16 15:06:21 2019 +0100 sched/fair: Remove unneeded prototype of capacity_of() The prototype of that function was already hoisted up in: commit 3b1baa6496e6 ("sched/fair: Add 'group_misfit_task' load-balance type") but that seems to have been missed. Get rid of the extra prototype. Signed-off-by: Valentin Schneider Acked-by: Quentin Perret Cc: Dietmar.Eggemann@arm.com Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: morten.rasmussen@arm.com Fixes: 2802bf3cd936 ("sched/fair: Add over-utilization/tipping point indicator") Link: http://lkml.kernel.org/r/20190416140621.19884-1-valentin.schneider@arm.com Signed-off-by: Ingo Molnar commit 11e600a8c79db090688475074a6ad13234f07541 Author: Aaro Koskinen Date: Tue Apr 16 02:37:32 2019 +0300 ARM: OMAP1: ams-delta: fix early boot crash when LED support is disabled When we boot with the LED support (CONFIG_NEW_LEDS) disabled, gpio_led_register_device() will return a NULL pointer and we try to dereference it. Fix by checking also for a NULL pointer. Fixes: 19a2668a8ae3 ("ARM: OMAP1: ams-delta: Provide GPIO lookup table for LED device") Signed-off-by: Aaro Koskinen Acked-by: Pavel Machek Signed-off-by: Tony Lindgren commit 76356a966e332fa0f70d10fd74a66d518af8ce0a Author: Joel Stanley Date: Fri Apr 5 18:41:17 2019 +1030 drm: aspeed: Clean up Kconfig options The GFX IP is inside of the ASPEED BMC SoC so there is little use enabling it on a kernel that does not support ASPEED. When building with COMPILE_TEST the architecture many not have CMA support, so to avoid breaking the build we only select these options if the architecture supports the contiguous allocator. I suspect the DRM_PANEL came from a cut/paste error. Fixes: 4f2a8f5898ec ("drm: Add ASPEED GFX driver") Reported-by: Stephen Rothwell Reported-by: kernel test robot Signed-off-by: Joel Stanley Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190405081117.27339-1-joel@jms.id.au commit 21e2079fe4938e84c0c5c0996cc03d63d5f9cacc Author: Vidya Sagar Date: Tue Apr 16 16:21:44 2019 +0530 PCI: tegra: Use the DMA-API to get the MSI address Since the upstream MSI memory writes are generated by downstream devices, it is logically correct to have MSI target memory coming from the DMA pool reserved for PCIe than from the general memory pool reserved for CPU access to avoid PCIe DMA addresses coinciding with MSI target address thereby raising unwanted MSI interrupts. Enforce this behaviour by retrieving the MSI address through the DMA API. Limit the MSI target address to 32-bits to make it work for PCIe endpoints that support only 32-bit MSI target address; endpoints that support 64-bit MSI target address work with 32-bit MSI target address too. Signed-off-by: Vidya Sagar [lorenzo.pieralisi@arm.com: updated commit log] Signed-off-by: Lorenzo Pieralisi Reviewed-by: Robin Murphy Reviewed-by: Thierry Reding Acked-by: Thierry Reding commit ddf567e3d9949aeb7992fb48a8663c81a15e7d81 Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:42 2019 +0530 PCI: dwc: Add callbacks for accessing dbi2 address space Certain platforms like TI's AM654 do not have aseparate address space for dbi2 instead they are accessed using the same address space as dbi with some configuration bit set. In order to support such platforms, add callbacks for accessing dbi2 address space. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit 421db1ab287eebe80fd203eb009ae92836c586ad Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:41 2019 +0530 PCI: dwc: Fix dw_pcie_ep_find_capability() to return correct capability offset commit beb4641a787d ("PCI: dwc: Add MSI-X callbacks handler") while adding MSI-X callback handler, introduced dw_pcie_ep_find_capability() and __dw_pcie_ep_find_next_cap() for finding the MSI and MSIX capability. However if MSI or MSIX capability is the last capability (i.e there are no additional items in the capabilities list and the Next Capability Pointer is set to '0'), __dw_pcie_ep_find_next_cap will return '0' even though MSI or MSIX capability may be present because of incorrect ordering of the "next_cap_ptr" check. Fix it. Fixes: beb4641a787d ("PCI: dwc: Add MSI-X callbacks handler") Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit 91df49e187c1a111e423fe0c3aec3472980385e4 Merge: a5220e7d2e1b 6cdbc07a5adc Author: Paul E. McKenney Date: Tue Apr 16 07:08:07 2019 -0700 Merge LKMM and RCU commits commit 35f8e2e29e74bb7197419d7cd80df5584e2a6311 Author: Tony Lindgren Date: Tue Apr 16 07:05:07 2019 -0700 ARM: multi_v7_defconfig: Update for moved options These options have just moved around, let's update with make savedefconfig to make patching the file easier. Cc: Arnd Bergmann Cc: Geert Uytterhoeven Cc: Olof Johansson Cc: Russell King Cc: Simon Horman Acked-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: Tony Lindgren commit 0d2cd68662f4a607c4fb3464d1a4d91a8c2854df Author: Tony Lindgren Date: Tue Apr 16 07:05:07 2019 -0700 ARM: multi_v7_defconfig: Update for dropped options These are mostly automatically selected with make multi_v7_defconfig, except for SH_DMAE which is selected only by sound/soc/sh/Kconfig. Then CONFIG_SND_SIMPLE_SCU_CARD no longer exists at all. And CONFIG_SOC_CAMERA and CONFIG_SOC_CAMERA_PLATFORM are tagged to depend on BROKEN, so we can drop them. Cc: Arnd Bergmann Cc: Geert Uytterhoeven Cc: Olof Johansson Cc: Russell King Cc: Simon Horman Acked-by: Geert Uytterhoeven Acked-by: Simon Horman Signed-off-by: Tony Lindgren commit e4eabf27ca9073f562af866337b783008acb7efd Merge: adc674cebba7 2bfc4975083a Author: Joonas Lahtinen Date: Tue Apr 16 16:45:26 2019 +0300 Merge tag 'gvt-next-2019-04-16' of https://github.com/intel/gvt-linux into drm-intel-next-queued gvt-next-2019-04-16 - Refine range of MCHBAR snapshot (Yakui) - Refine out-of-sync page struct (Yakui) - Remove unused vGPU sreg (Yan) - Refind MMIO reg names (Xiaolin) - Proper handling of sync/async flip (Colin) - Proper handling of PIPE_CONTROL/MI_FLUSH_DW index mode (Xiaolin) - EXCC reg mask fix (Colin) Signed-off-by: Joonas Lahtinen From: Zhenyu Wang Link: https://patchwork.freedesktop.org/patch/msgid/20190416084814.GH17995@zhen-hp.sh.intel.com commit c110ae578ca0a10064dfbda3d786d6a733b9fe69 Author: Paolo Bonzini Date: Thu Mar 28 17:24:03 2019 +0100 kvm: move KVM_CAP_NR_MEMSLOTS to common code All architectures except MIPS were defining it in the same way, and memory slots are handled entirely by common code so there is no point in keeping the definition per-architecture. Signed-off-by: Paolo Bonzini commit 0a62956312e9dcd0ce5c59be4f0a8d8292a62402 Author: Sean Christopherson Date: Tue Apr 2 08:19:16 2019 -0700 KVM: x86: Inject #GP if guest attempts to set unsupported EFER bits EFER.LME and EFER.NX are considered reserved if their respective feature bits are not advertised to the guest. Signed-off-by: Sean Christopherson Signed-off-by: Paolo Bonzini commit 11988499e62b310f3bf6f6d0a807a06d3f9ccc96 Author: Sean Christopherson Date: Tue Apr 2 08:19:15 2019 -0700 KVM: x86: Skip EFER vs. guest CPUID checks for host-initiated writes KVM allows userspace to violate consistency checks related to the guest's CPUID model to some degree. Generally speaking, userspace has carte blanche when it comes to guest state so long as jamming invalid state won't negatively affect the host. Currently this is seems to be a non-issue as most of the interesting EFER checks are missing, e.g. NX and LME, but those will be added shortly. Proactively exempt userspace from the CPUID checks so as not to break userspace. Note, the efer_reserved_bits check still applies to userspace writes as that mask reflects the host's capabilities, e.g. KVM shouldn't allow a guest to run with NX=1 if it has been disabled in the host. Fixes: d80174745ba39 ("KVM: SVM: Only allow setting of EFER_SVME when CPUID SVM is set") Cc: stable@vger.kernel.org Signed-off-by: Sean Christopherson Signed-off-by: Paolo Bonzini commit c80add0f487e28c48e855245189dc28bd3d5c250 Author: Sean Christopherson Date: Thu Apr 11 12:18:09 2019 -0700 KVM: nVMX: Return -EINVAL when signaling failure in VM-Entry helpers Most, but not all, helpers that are related to emulating consistency checks for nested VM-Entry return -EINVAL when a check fails. Convert the holdouts to have consistency throughout and to make it clear that the functions are signaling pass/fail as opposed to "resume guest" vs. "exit to userspace". Opportunistically fix bad indentation in nested_vmx_check_guest_state(). Signed-off-by: Sean Christopherson Signed-off-by: Paolo Bonzini commit 98d9e858fa966bd7132cc21d65e4c89a97f4fe2d Author: Paolo Bonzini Date: Fri Apr 12 10:19:57 2019 +0200 KVM: nVMX: Return -EINVAL when signaling failure in pre-VM-Entry helpers Convert all top-level nested VM-Enter consistency check functions to return 0/-EINVAL instead of failure codes, since now they can only ever return one failure code. This also does not give the false impression that failure information is always consumed and/or relevant, e.g. vmx_set_nested_state() only cares whether or not the checks were successful. nested_check_host_control_regs() can also now be inlined into its caller, nested_vmx_check_host_state, since the two have effectively become the same function. Based on a patch by Sean Christopherson. Signed-off-by: Paolo Bonzini commit 5478ba349f3f71f8d306cddaed33fa0527cc7b16 Author: Sean Christopherson Date: Thu Apr 11 12:18:06 2019 -0700 KVM: nVMX: Rename and split top-level consistency checks to match SDM Rename the top-level consistency check functions to (loosely) align with the SDM. Historically, KVM has used the terms "prereq" and "postreq" to differentiate between consistency checks that lead to VM-Fail and those that lead to VM-Exit. The terms are vague and potentially misleading, e.g. "postreq" might be interpreted as occurring after VM-Entry. Note, while the SDM lumps controls and host state into a single section, "Checks on VMX Controls and Host-State Area", split them into separate top-level functions as the two categories of checks result in different VM instruction errors. This split will allow for additional cleanup. Note #2, "vmentry" is intentionally dropped from the new function names to avoid confusion with nested_check_vm_entry_controls(), and to keep the length of the functions names somewhat manageable. Suggested-by: Paolo Bonzini Signed-off-by: Sean Christopherson Reviewed-by: Krish Sadhukhan Signed-off-by: Paolo Bonzini commit 9c3e922ba316a5d3d8cbe41e0db97888fca5c359 Author: Sean Christopherson Date: Thu Apr 11 12:18:05 2019 -0700 KVM: nVMX: Move guest non-reg state checks to VM-Exit path Per Intel's SDM, volume 3, section Checking and Loading Guest State: Because the checking and the loading occur concurrently, a failure may be discovered only after some state has been loaded. For this reason, the logical processor responds to such failures by loading state from the host-state area, as it would for a VM exit. In other words, a failed non-register state consistency check results in a VM-Exit, not VM-Fail. Moving the non-reg state checks also paves the way for renaming nested_vmx_check_vmentry_postreqs() to align with the SDM, i.e. nested_vmx_check_vmentry_guest_state(). Fixes: 26539bd0e446a ("KVM: nVMX: check vmcs12 for valid activity state") Signed-off-by: Sean Christopherson Reviewed-by: Krish Sadhukhan Signed-off-by: Paolo Bonzini commit de2bc2bfdf419ad9078736d88cae72beae972a59 Author: Krish Sadhukhan Date: Mon Apr 8 17:35:12 2019 -0400 kvm: nVMX: Check "load IA32_PAT" VM-entry control on vmentry According to section "Checking and Loading Guest State" in Intel SDM vol 3C, the following check is performed on vmentry: If the "load IA32_PAT" VM-entry control is 1, the value of the field for the IA32_PAT MSR must be one that could be written by WRMSR without fault at CPL 0. Specifically, each of the 8 bytes in the field must have one of the values 0 (UC), 1 (WC), 4 (WT), 5 (WP), 6 (WB), or 7 (UC-). Signed-off-by: Krish Sadhukhan Reviewed-by: Karl Heubaum Suggested-by: Sean Christopherson Reviewed-by: Sean Christopherson Reviewed-by: Jim Mattson Signed-off-by: Paolo Bonzini commit f6b0db1fdafad5fdbe10a4a3559da42d286435e6 Author: Krish Sadhukhan Date: Mon Apr 8 17:35:11 2019 -0400 kvm: nVMX: Check "load IA32_PAT" VM-exit control on vmentry According to section "Checks on Host Control Registers and MSRs" in Intel SDM vol 3C, the following check is performed on vmentry: If the "load IA32_PAT" VM-exit control is 1, the value of the field for the IA32_PAT MSR must be one that could be written by WRMSR without fault at CPL 0. Specifically, each of the 8 bytes in the field must have one of the values 0 (UC), 1 (WC), 4 (WT), 5 (WP), 6 (WB), or 7 (UC-). Signed-off-by: Krish Sadhukhan Reviewed-by: Karl Heubaum Suggested-by: Sean Christopherson Reviewed-by: Sean Christopherson Reviewed-by: Jim Mattson Signed-off-by: Paolo Bonzini commit 674ea351cdeb01d2740edce31db7f2d79ce6095d Author: Paolo Bonzini Date: Wed Apr 10 11:41:40 2019 +0200 KVM: x86: optimize check for valid PAT value This check will soon be done on every nested vmentry and vmexit, "parallelize" it using bitwise operations. Reviewed-by: Sean Christopherson Signed-off-by: Paolo Bonzini commit f16cb57be82b20c6a00a6bb1750cb77c08e56c1a Author: Paolo Bonzini Date: Wed Apr 10 11:38:30 2019 +0200 KVM: x86: clear VM_EXIT_SAVE_IA32_PAT This is not needed, PAT writes always take an MSR vmexit. Reviewed-by: Sean Christopherson Signed-off-by: Paolo Bonzini commit 9d609649bb29a882e7e6bf502adb45dcac178fe5 Author: Paolo Bonzini Date: Mon Apr 15 15:14:32 2019 +0200 KVM: vmx: print more APICv fields in dump_vmcs The SVI, RVI, virtual-APIC page address and APIC-access page address fields were left out of dump_vmcs. Add them. KERN_CONT technically isn't SMP safe, but it's okay to use it here since the whole of dump_vmcs() is a single huge multi-line piece of output that isn't SMP-safe. Signed-off-by: Paolo Bonzini commit c7a6b9e4df4c5d9e95e38766923f98117b045c39 Author: Hariprasad Kelam Date: Thu Mar 28 08:47:33 2019 +0530 tty:serial_core: Spelling mistake fix spelling mistake "overriden" -> "overridden" This fix resolves warning reported by checkpatch tool. Signed-off-by: Hariprasad Kelam Reviewed-by: Mukesh Ojha Signed-off-by: Greg Kroah-Hartman commit 3117ff13f104e98b05b61e19cc754d1377e92e15 Author: Vincent Whitchurch Date: Wed Apr 3 13:33:27 2019 +0200 tty: Add NULL TTY driver If no console driver is enabled (or if a non-present driver is selected with something like console=null in an attempt to disable the console), opening /dev/console errors out, and init scripts and other userspace code that relies on the existence of a console will fail. Symlinking /dev/null to /dev/console does not solve the problem since /dev/null does not behave like a real TTY. To just provide a dummy console to userspace when no console driver is available or desired, add a ttynull driver which simply discards all writes. It can be chosen on the command line in the standard way, i.e. with console=ttynull. Signed-off-by: Vincent Whitchurch Signed-off-by: Greg Kroah-Hartman commit 89bb1e1ee529d9d06ca694ba22a35dc2a3d6ac67 Author: Reinis Danne Date: Thu Apr 11 14:50:54 2019 +0300 tty: vt: keyboard: Allow Unicode compose base char Pass Unicode character to k_unicode handler function to honor possible accent_table definition. With introduction of KDSKBDIACRUC ioctl, it has been possible to set compose characters (diacr, base and result) to any Unicode character (below 0xf000 code point) as defined in struct kbdiacruc. But it does not work with characters beyond Latin-1 as base, because they are printed early and not passed to any of the handler functions, thus breaking compose and dead keys. It affects keyboard layouts defining such characters on level 1 and relying on dead keys to access level 3 (e.g., lv-modern with some modifications for extra characters on level 3 for ē, ā and ī keys). Signed-off-by: Reinis Danne Signed-off-by: Greg Kroah-Hartman commit 0d3cb6f6c67aab6284921619c838382fb6e4f5db Author: Johan Hovold Date: Wed Apr 3 09:40:53 2019 +0200 Revert "tty: fix NULL pointer issue when tty_port ops is not set" This reverts commit f4e68d58cf2b20a581759bbc7228052534652673. TTY drivers using the tty-port abstraction all provide a pointer to a set of port operations, which specifically cannot be NULL (or we'd find out at first attempt to open a port). Revert the recent commit which added unnecessary NULL-checks and whose commit message indicated that it was fixing a real problem, which it did not. Note that even the two tty drivers for virtual devices currently providing an empty set of operations probably should be implementing at least some of the callbacks. Cc: Fabien Dessenne Signed-off-by: Johan Hovold Signed-off-by: Greg Kroah-Hartman commit ba44dc04300441b47618f9933bf36e75a280e5fe Author: Sugaya Taichi Date: Mon Apr 15 20:31:40 2019 +0900 serial: Add Milbeaut serial control Add Milbeaut serial control including earlycon and console. Signed-off-by: Sugaya Taichi Signed-off-by: Greg Kroah-Hartman commit fa2b360f261e31f2a54f997095713f91bac0e503 Author: Konstantin Khorenko Date: Mon Apr 15 14:17:55 2019 +0300 tty/vt: avoid high order pages allocation on GIO_UNIMAP ioctl GIO_UNIMAP can easily result in a high order allocation, seen 6th order allocation on radeondrmfb: fbcon: radeondrmfb (fb0) is primary device Console: switching to colour frame buffer device 160x64 radeon 0000:01:05.0: fb0: radeondrmfb frame buffer device WARNING: CPU: 0 PID: 78661 at mm/page_alloc.c:3532 __alloc_pages_nodemask+0x1b1/0x600 order 6 >= 3, gfp 0x40d0 The warning is generated by a debug patch. At the same time it's safe to use kvmalloc() for allocation in con_get_unimap(), so let's do the substitution. And do the same for con_set_unimap(). Signed-off-by: Konstantin Khorenko Signed-off-by: Greg Kroah-Hartman commit f692f7766f335ca38f0d6d1cb4c32dfad81820d4 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 12 12:17:39 2019 +0200 tty: remove redundant 'default n' from Kconfig-s 'default n' is the default value for any bool or tristate Kconfig setting so there is no need to write it explicitly. Also since commit f467c5640c29 ("kconfig: only write '# CONFIG_FOO is not set' for visible symbols") the Kconfig behavior is the same regardless of 'default n' being present or not: ... One side effect of (and the main motivation for) this change is making the following two definitions behave exactly the same: config FOO bool config FOO bool default n With this change, neither of these will generate a '# CONFIG_FOO is not set' line (assuming FOO isn't selected/implied). That might make it clearer to people that a bare 'default n' is redundant. ... Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Greg Kroah-Hartman commit 7a7457ba40f1474aa1bae2010b6f8582ba5ed57f Author: YueHaibing Date: Sat Mar 30 01:47:24 2019 +0000 serial: sprd: Fix a copy-paste err in sprd_request_dma() when dma_request_chan rx_dma fails, dev_err log should print rx_dma err log. Signed-off-by: YueHaibing Reviewed-by: Mukesh Ojha Reviewed-by: Baolin Wang Signed-off-by: Greg Kroah-Hartman commit 9ef8927f45f2f8e365cda7cda81c079f29b8ad74 Author: Colin Ian King Date: Sat Mar 30 00:46:28 2019 +0000 n_tty: check for negative and zero space return from tty_write_room The return from tty_write_room could potentially be negative if a tty write_room driver returns an error number (not that any seem to do). Rather than just check for a zero return, also check for a -ve return. This avoids the unsigned nr being set to a large unsigned value on the assignment from variable space and can lead to overflowing the buffer buf. Better to be safe than assume all write_room implementations in tty drivers are going to do the right thing. Signed-off-by: Colin Ian King Signed-off-by: Greg Kroah-Hartman commit 5e498abf14858945f1249d9cc4ff1e8715a307e3 Author: Christian König Date: Mon Apr 15 14:46:34 2019 +0200 dma-buf: explicitely note that dma-fence-chains use 64bit seqno Instead of checking the upper values of the sequence number use an explicit field in the dma_fence_ops structure to note if a sequence should be 32bit or 64bit. Signed-off-by: Christian König Reviewed-by: Lionel Landwerlin Link: https://patchwork.freedesktop.org/patch/299655/ commit adc674cebba7253dc4b4eeb1e4c1710082ee0f4a Author: Chris Wilson Date: Fri Apr 12 09:53:22 2019 +0100 drm/i915: Mark up ips for RCU protection drivers/gpu/drm/i915/intel_pm.c:8352:9: error: incompatible types in comparison expression (different address spaces) drivers/gpu/drm/i915/intel_pm.c:8359:9: error: incompatible types in comparison expression (different address spaces) Signed-off-by: Chris Wilson Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190412085410.10392-3-chris@chris-wilson.co.uk commit e1f79c148c6590847d51e5d3da9ba4d5c198cfc7 Author: Madhumitha Prabakaran Date: Mon Apr 15 15:27:04 2019 -0500 Staging: rtl8723bs: Remove an unused struct tx_pending_t Remove an unused struct tx_pending_t, as it is never used in kernel tree. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 5ef6c5db04ffff21006099961c3c8acc5727b2c8 Author: Madhumitha Prabakaran Date: Mon Apr 15 15:27:03 2019 -0500 Staging: rtl8723bs: Remove typedef in struct ieee_param Remove typedef in struct ieee_param, as the struct that has elements that can reasonably be directly accessed should never be a typedef. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 74941703accd4a94e7a74c31050d7985216b7034 Author: Madhumitha Prabakaran Date: Mon Apr 15 15:27:02 2019 -0500 Staging: rtl8723bs: Remove typedef in struct ieee_param_ex Remove typedef in struct ieee_param_ex, as the struct that has elements that can reasonably be directly accessed should never be a typedef. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 7be2b288be66e08d78ede27d8ab0adb61b30d4db Author: Sidong Yang Date: Wed Apr 10 05:09:06 2019 +0000 staging: pi433: add dependency to PA0, 1, 2 setting for output power level When setting output power level called, the power level should be checked by power amplifier level register and high power option. There was todo about it. Add some variables for checking power level range. The values that used for checking high power or minimum power are from rf69 datasheets. The maximum power level is always same regardless of mode. Signed-off-by: Sidong Yang Signed-off-by: Greg Kroah-Hartman commit fb563860742a0e389598b92bb48a52bd0ca125db Author: Madhumitha Prabakaran Date: Thu Apr 4 16:27:37 2019 -0500 Staging: vc04_services: bcm2835-camera: Remove an exceptional & Remove an exceptional & on function names, otherwise they are used as pointers without &. Issue suggested using Coccinelle. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 9fdb04e9ccabc71e7107533ab1d1245430b5cbd5 Author: Cesar Santos Date: Thu Apr 4 14:59:08 2019 -0300 staging: vt6655: upc: remove double blank lines Fix checkpatch warning "CHECK: Please don't use multiple blank lines" on upc.h Signed-off-by: Cesar Santos Signed-off-by: Greg Kroah-Hartman commit 94f99bcedaea6e1726dc424092a2545ec7a8b95e Author: Antti Keränen Date: Thu Apr 4 15:44:17 2019 +0300 staging: mt7621-pci-phy: prevent use of uninitialized variable Do not use uninitialized variable 'port' when printing an error message Signed-off-by: Antti Keränen Reviewed-by: Sergio Paracuellos Signed-off-by: Greg Kroah-Hartman commit e291fa1237a74dc4692995a4a598d4818a747191 Author: Gustavo A. R. Silva Date: Wed Apr 3 15:50:43 2019 -0500 staging: ralink-gdma: Use struct_size() in kzalloc() One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example: struct foo { int stuff; struct boo entry[]; }; size = sizeof(struct foo) + count * sizeof(struct boo); instance = kzalloc(size, GFP_KERNEL) Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper: size = struct_size(instance, entry, count); or instance = kzalloc(struct_size(instance, entry, count), GFP_KERNEL) Based on the above, replace gdma_dma_alloc_desc() with kzalloc() and use the new struct_size() helper. This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Greg Kroah-Hartman commit 3b706841c29f1cf2f8f3484713288aa2c375677b Author: Madhumitha Prabakaran Date: Thu Apr 4 14:51:27 2019 -0500 Staging: rtlwifi: Cleanup crc16_ccitt() crc16_ccitt() function does "BIT(0) << i" instead of "BIT(i)". Using !! is slightly shorter than "foo ? 1: 0" and remove unnecessary parentheses to make the code simple. Issue suggested by Coccinelle. Signed-off-by: Madhumitha Prabakaran Reviewed-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman commit d5d682270f35cc324f7074c3d615b5bf8222df16 Author: Madhumitha Prabakaran Date: Thu Apr 4 16:14:41 2019 -0500 Staging: rtlwifi: Remove & on function name Function name is otherwise used as pointers without &. Issue suggested by Coccinelle. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit e7cc9eba71ef82cc5fbc3d47064b551559f61d42 Author: YueHaibing Date: Sat Apr 6 03:12:25 2019 +0000 staging: rtlwifi: base: Remove set but not used variables Fixes gcc '-Wunused-but-set-variable' warning: drivers/staging/rtlwifi/base.c: In function 'rtl_tx_agg_stop': drivers/staging/rtlwifi/base.c:1733:23: warning: variable 'tid_data' set but not used [-Wunused-but-set-variable] drivers/staging/rtlwifi/base.c: In function 'rtl_check_beacon_key': drivers/staging/rtlwifi/base.c:2474:5: warning: variable 'ds_param_len' set but not used [-Wunused-but-set-variable] drivers/staging/rtlwifi/base.c:2472:5: warning: variable 'ht_oper_len' set but not used [-Wunused-but-set-variable] drivers/staging/rtlwifi/base.c:2470:5: warning: variable 'ht_cap_len' set but not used [-Wunused-but-set-variable] They are never used and can be removed. Signed-off-by: YueHaibing Reviewed-by: Mukesh Ojha Signed-off-by: Greg Kroah-Hartman commit 8eee2c467df935dd8ff2ff761e8626e81c302e41 Author: Gabriela Bittencourt Date: Sat Apr 6 19:25:28 2019 -0300 Staging: hal: hal_com_phycfg: fixed a coding style issue Added a blank line after declarations. Signed-off-by: Gabriela Bittencourt Signed-off-by: Greg Kroah-Hartman commit 031ba1fd9172dba01e0193b1d047a2af4868a101 Author: Bartlomiej Zolnierkiewicz Date: Fri Apr 12 12:13:02 2019 +0200 staging: remove redundant 'default n' from Kconfig 'default n' is the default value for any bool or tristate Kconfig setting so there is no need to write it explicitly. Also since commit f467c5640c29 ("kconfig: only write '# CONFIG_FOO is not set' for visible symbols") the Kconfig behavior is the same regardless of 'default n' being present or not: ... One side effect of (and the main motivation for) this change is making the following two definitions behave exactly the same: config FOO bool config FOO bool default n With this change, neither of these will generate a '# CONFIG_FOO is not set' line (assuming FOO isn't selected/implied). That might make it clearer to people that a bare 'default n' is redundant. ... Signed-off-by: Bartlomiej Zolnierkiewicz Signed-off-by: Greg Kroah-Hartman commit 827ad2c7b303dc0102b61820868d4c01d0d8e0b2 Author: Moses Christopher Date: Sat Apr 13 21:59:03 2019 +0530 staging: axis-fifo: Add elaborate description in Kconfig - The Xilinx AXI-Stream FIFO IP core driver description is elaborated. - References: Xilinx PG080 document, axis-fifo.txt Signed-off-by: Moses Christopher Signed-off-by: Greg Kroah-Hartman commit affbeba3a299a8b2e8befa9e487d94bcca744cf7 Author: Madhumitha Prabakaran Date: Thu Apr 11 10:30:14 2019 -0500 Staging: rtl8723bs: Remove typedef in struct sdio_data Remove typedef in struct sdio_data and make the respective changes in associated files, as the struct that has elements that can reasonably be directly accessed should never be a typedef. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit e00fd8ecaa87943bbddccffd7740902492bdbbfb Author: Daniel Junho Date: Tue Apr 9 21:27:05 2019 -0300 staging: rtl8192e: remove a blank line Fix the checkpath error: CHECK: Blank lines aren't necessary after an open brace '{' Signed-off-by: Daniel Junho Signed-off-by: Greg Kroah-Hartman commit 08ce43b9c58cc7f7a3fec39bf57726e855371348 Author: Gabriela Bittencourt Date: Tue Apr 9 17:16:11 2019 -0300 staging: rtl8192e: Remove a not necessary blank line before a close brace '}' Fix a coding style issue. Signed-off-by: Gabriela Bittencourt Signed-off-by: Greg Kroah-Hartman commit 52927d97d80e9a57bf112a2d59aba5e3dc32fa2f Author: YueHaibing Date: Sat Apr 6 03:11:34 2019 +0000 staging: rtl8192e: Remove set but not used variable 'VenderID' Fixes gcc '-Wunused-but-set-variable' warning: drivers/staging/rtl8192e/rtl8192e/rtl_pci.c: In function 'rtl92e_check_adapter': drivers/staging/rtl8192e/rtl8192e/rtl_pci.c:36:6: warning: variable 'VenderID' set but not used [-Wunused-but-set-variable] u16 VenderID; ^ It's never used and can be removed. Signed-off-by: YueHaibing Reviewed-by: Mukesh Ojha Signed-off-by: Greg Kroah-Hartman commit 94be357fe618999c7998da642c37fc0b4a0f6ad3 Author: YueHaibing Date: Sat Apr 6 03:11:18 2019 +0000 staging: rtlwifi: rtl8822be: Remove set but not used variable 'curtxbw_40mhz' Fixes gcc '-Wunused-but-set-variable' warning: drivers/staging/rtlwifi/rtl8822be/hw.c: In function 'rtl8822be_update_hal_rate_mask': drivers/staging/rtlwifi/rtl8822be/hw.c:2144:5: warning: variable 'curtxbw_40mhz' set but not used [-Wunused-but-set-variable] It's never used and can be removed. Signed-off-by: YueHaibing Reviewed-by: Mukesh Ojha Signed-off-by: Greg Kroah-Hartman commit c8ab348df0252be8869f4cbab0263a0f833c3232 Author: William Tustumi Date: Fri Apr 5 00:44:22 2019 -0300 staging: rtl8723bs: add space after enum declaration Add space between "enum TXDESC_SC" and '{' at line 86. Fix the following error from checkpatch.pl WARNING: missing space after enum definition +enum TXDESC_SC{ Signed-off-by: William Tustumi Signed-off-by: Greg Kroah-Hartman commit cd62878c9d6f2c1b0ec213bc43804ae56f7f2742 Author: Caio Salvador Rohwedder Date: Thu Apr 4 22:56:46 2019 -0300 staging: rtl8192u: ieee80211: add space around '==' and before '(' Fix checkpatch coding style errors on rtl819x_TSProc.c - space required before the open parenthesis '(' - spaces required around that '==' Signed-off-by: Caio Salvador Rohwedder Signed-off-by: Greg Kroah-Hartman commit 9e6aac6796a721ed05ca62b17c210198f072d2c1 Author: Gabriel Siqueira Date: Thu Apr 4 14:19:07 2019 -0300 staging: rtl8192u: Add missing space Fix checkpatch error: "ERROR: space required after that close brace '}'". Signed-off-by: Gabriel Siqueira Signed-off-by: Greg Kroah-Hartman commit e4d7efbb91efc3040e3f1c645571c1769095ae79 Author: Beatriz Martins de Carvalho Date: Thu Apr 4 10:09:30 2019 -0300 staging: rtl8723bs: hal: replace spaces by tabs. Fix checkpatch error "ERROR: code indent should use tabs where possible" in hal_com_phycfg.c:1726. Signed-off-by: Beatriz Martins de Carvalho Reviewed-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman commit 307e07486aaa52bbe1642adafa7ccfbd78fc7abb Author: Michael Straube Date: Wed Apr 3 19:07:09 2019 +0200 staging: rtl8188eu: make sta2sta_data_frame() static Function sta2sta_data_frame() is only used in rtw_recv.c. So make it static. Signed-off-by: Michael Straube Signed-off-by: Greg Kroah-Hartman commit 7e894d1086a45c64a0d24db1034ff8d934a85158 Author: Michael Straube Date: Wed Apr 3 19:07:08 2019 +0200 staging: rtl8188eu: remove unnecessary declaration The declaration of sta2sta_data_frame() is directly above the function definition. Remove the unnecessary declaration. This also clears a checkpatch issue. CHECK: Lines should not end with a '(' Signed-off-by: Michael Straube Signed-off-by: Greg Kroah-Hartman commit 391f544e355d442c8a58d395ef64d01dea47ac8d Author: Himadri Pandya Date: Wed Apr 3 21:38:16 2019 +0530 staging: rtl8712: remove unnecessary NULL check List wlan_network is built properly with init_list_head and list_add_tail which cancels out its probability of being NULL because of the precence of list_head at the top of this structure. Hence, the NULL test can be omitted. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit 060ea4271a82270be6d44e8e9aefe8f155fb5626 Author: Vincent Stehlé Date: Sun Apr 14 17:37:26 2019 +0200 staging: android: vsoc: fix copy_from_user overrun The `np->permission' structure is smaller than the `np' structure but sizeof(*np) worth of data is copied in there. Fix the size passed to copy_from_user() to avoid overrun. Fixes: 3d2ec9dcd553 ("staging: Android: Add 'vsoc' driver for cuttlefish.") Signed-off-by: Vincent Stehlé Cc: Greg Kroah-Hartman Reviewed-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman commit deaf3b71550de08c88f9b40b118dbb87b3668af0 Author: Christian Gromm Date: Wed Apr 3 15:19:55 2019 +0200 staging: most: Documentation: update driver documentation This patch updates the driver documentation files to reflect the latest changes regarding configfs. Signed-off-by: Christian Gromm v2: - changed kernel version to 5.2 v3: v4: Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman commit 1a89eb0a8f6d5c25174b0b465cda6d5e480c5830 Author: Christian Gromm Date: Wed Apr 3 15:19:54 2019 +0200 staging: most: configfs: add code for link removal This patch adds code that cleans up established links whenever the destroy attribute is set or if the config_item (directory) is being removed. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman commit a15f465caf09980c14dac115e3efb152f170351f Author: Christian Gromm Date: Wed Apr 3 15:19:53 2019 +0200 staging: most: configfs: make create attributes write-only Reading the create attribute that triggers the creation of a link to a certain channel is not necessary. Hence, it is being removed. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman commit acdbb89753734ff8e3fe7cab97d6898d23ff8ed8 Author: Christian Gromm Date: Wed Apr 3 15:19:52 2019 +0200 staging: most: allow speculative configuration This patch makes the driver accept a link configuration eventhough no device is attached to the bus. Instead the configuration is being applied as soon as a device is being registered with the core. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman commit a1ee286d5a2fa1f35d2893eb83c858f748f14c15 Author: Christian Gromm Date: Wed Apr 3 15:19:51 2019 +0200 staging: most: core: remove attribute add_link This patch removes the driver attribute add_link. It is not needed, because the link management is now done via configfs. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman commit 5b082c2e07d851769f7d5925eeb7dcd4523e693f Author: Christian Gromm Date: Wed Apr 3 15:19:50 2019 +0200 staging: most: usb: remove prefix from description tag This patch cuts off the usb_device prefix of the description string. It is not needed, as the interface type is already available with the interface attribute of a channel. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman commit 787105b30f2388e723c3b94de672056b244164b3 Author: Christian Gromm Date: Wed Apr 3 15:19:49 2019 +0200 staging: most: core: make sysfs attributes read-only This patch changes the access flags of the channel attributes to read-only. This is needed, because configuration is done via configfs. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman commit 919c03ae11b98681aedc2ac7d00110c387b92f16 Author: Christian Gromm Date: Wed Apr 3 15:19:48 2019 +0200 staging: most: enable configfs support This patch enables the configfs functionality of the driver by registering the configfs subsystems and compiling the configfs part of the sources. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman commit 9640baca34f57d1a6c78b11cee9eaa2f61a51e97 Author: Christian Gromm Date: Wed Apr 3 15:19:47 2019 +0200 staging: most: sound: introduce new sound adapter management This patch adapts the sound card management to the configfs changes. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman commit 3d89b2731b1eb6d4162b1164dd978896e25d7708 Author: Christian Gromm Date: Wed Apr 3 15:19:46 2019 +0200 staging: most: core: add configfs interface functions This patch adds the core's interface to configfs file. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman commit dfee92dd50464cbce3d3df2b1ca3eb6c39fb9467 Author: Christian Gromm Date: Wed Apr 3 15:19:45 2019 +0200 staging: most: change signature of function probe_channel This patch adds the param argument to the function parameter of the call-back probe_channel. This parameter is needed to configure the channels of an attached device. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman commit 2bfde348879a3edc402544b2b432420b929cf959 Author: Christian Gromm Date: Wed Apr 3 15:19:44 2019 +0200 staging: most: add new file configfs.c This patch adds the file configfs.c to the driver directory. The file registers the necessary subsystems with configfs in order to move the driver configuration from sysfs to configfs. Signed-off-by: Christian Gromm Signed-off-by: Greg Kroah-Hartman commit 47830c1127ef166af787caf2f871f23089610a7f Author: Johan Hovold Date: Thu Apr 4 08:53:30 2019 +0200 staging: greybus: power_supply: fix prop-descriptor request size Since moving the message buffers off the stack, the dynamically allocated get-prop-descriptor request buffer is incorrectly sized due to using the pointer rather than request-struct size when creating the operation. Fortunately, the pointer size is always larger than this one-byte request, but this could still cause trouble on the remote end due to the unexpected message size. Fixes: 9d15134d067e ("greybus: power_supply: rework get descriptors") Cc: stable # 4.9 Cc: Rui Miguel Silva Signed-off-by: Johan Hovold Reviewed-by: Rui Miguel Silva Signed-off-by: Greg Kroah-Hartman commit 740a998d58eecf00e0ba7bbe8cf1c0351a91a331 Author: Madhumitha Prabakaran Date: Wed Apr 3 10:06:43 2019 -0500 Staging: gasket: Use DIV_ROUND_UP Use DIV_ROUND_UP in-kernel function to make code simple and more understandable. Issue found using Coccinelle. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit e2e89d4a732039d280a6204d8acf2e6daad7f4e9 Author: Colin Ian King Date: Mon Apr 15 17:33:30 2019 +0100 staging: wilc1000: fix spelling mistake "dissconect" -> "disconnect" There is a spelling mistake in a netdev_err error message, fix it. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Signed-off-by: Greg Kroah-Hartman commit c901556a43d282f6666e5fb8fbd3066dcb17c907 Author: Nicholas Mc Guire Date: Thu Apr 11 05:31:21 2019 +0200 staging: wilc1000: give usleep_range a range usleep_range() is called in non-atomic context so there is little point in setting min==max as the jitter of hrtimer is determined by interruptions anyway. usleep_range can only perform the intended coalescence if some room for placing the hrtimer is provided. Given the range of milliseconds the delay will be 2+ anyway - so make it 2-2.5 ms which gives hrtimers space to optimize without negatively impacting performance. Signed-off-by: Nicholas Mc Guire Signed-off-by: Greg Kroah-Hartman commit ae26aa844679cdf660e12c7055f958cb90889eb6 Author: Tetsuo Handa Date: Sun Apr 7 21:58:43 2019 +0900 staging: wilc1000: Avoid GFP_KERNEL allocation from atomic context. Since wilc_set_multicast_list() is called with dev->addr_list_lock spinlock held, we can't use GFP_KERNEL memory allocation. Signed-off-by: Tetsuo Handa Fixes: e624c58cf8eb ("staging: wilc1000: refactor code to avoid use of wilc_set_multicast_list global") Cc: Ajay Singh Reviewed-by: Adham Abozaeid Cc: stable Signed-off-by: Greg Kroah-Hartman commit 8136eaa012c4011bf6df32834899bdec8f2cafdf Author: Nicholas Mc Guire Date: Sat Apr 6 11:45:27 2019 +0200 staging: wilc1000: drop explicit conversion to bool As the expression evaluates to a boolean anyway (relational and logical operators) conversion with the ternary operator is not needed here as coccinelle notes (boolconv.cocci) Signed-off-by: Nicholas Mc Guire Reviewed-by: Julian Calaby Signed-off-by: Greg Kroah-Hartman commit 18073da76973f8ce75ee1d622f2a4d2d1b6121a8 Author: Fabien Parent Date: Sat Mar 23 22:16:10 2019 +0100 dt-bindings: i2c: i2c-mtk: add support for MT8516 Add binding documentation of i2c-mtk for MT8516 SoC. Signed-off-by: Fabien Parent Acked-by: Rob Herring Acked-by: Matthias Brugger Signed-off-by: Wolfram Sang commit 530edb501ce476f904bd42d2c42f6eab9541ce51 Author: Adamski, Krzysztof (Nokia - PL/Wroclaw) Date: Thu Mar 28 11:19:45 2019 +0000 i2c: axxia: use auto cmd for last message Some recent commits to this driver were trying to make sure the TSS interrupt is not generated on busy system due to 25ms timer expiring between commands. It can still happen, however if STOP command is not issued on time at the end of the transmission. If wait_for_completion in axxia_i2c_xfer_msg() would not return after 25ms of getting an interrupt, TSS will be generated and idev->err_msg will be set to -ETIMEDOUT which will be returned from the axxia_i2c_xfer_msg(), even though the transfer did actually succeed (STOP is automatically issued when TSS triggers). Fortunately, apart from already used manual and sequence commands, the controller also has so called auto command. It works just like manual mode but it but an automatic STOP is issued when either transfer length is met or NAK is received from slave device. This patch changes the axxia_i2c_xfer_msg() function so that auto command is used for last message in transaction letting hardware manage issuing STOP. TSS is disabled just after command transferring last message finishes. Auto command, just like sequence, ends with SS interrupt instead of SNS so handling of both had to be unified. The axxia_i2c_stop() is no longer needed as the transfer can only end with following conditions: - fully successful - then last message was send by AUTO command and STOP was issued automatically - NAK received - STOP is issued automatically by controller - arbitration lost - STOP should not be issued as we don't control the bus - IP interrupt received - this is sent when transfer length is set to 0 for auto/sequence command. The check for that is done before START is send so no STOP is required - TSS received between commands - STOP is issued by the controller Signed-off-by: Krzysztof Adamski Reviewed-by: Alexander Sverdlin Signed-off-by: Wolfram Sang commit e155e38830194f59fe26310421bba70f875cab25 Author: Wolfram Sang Date: Wed Apr 3 14:40:19 2019 +0200 i2c: gpio: flag atomic capability if possible If switching GPIOs does not sleep, then we can support atomic transfers. Signed-off-by: Wolfram Sang Reviewed-by: Linus Walleij Reviewed-by Andy Shevchenko Signed-off-by: Wolfram Sang commit 8927fbf481248954ca1fc5e652171936b94905ac Author: Wolfram Sang Date: Wed Apr 3 14:40:18 2019 +0200 i2c: algo: bit: add flag to whitelist atomic transfers Use the new xfer_atomic callback to check a newly introduced flag to whitelist atomic transfers. This will report configurations which worked accidently. Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang commit 252fa60e7054d22c039757d3ef72191d4eb58577 Author: Wolfram Sang Date: Wed Apr 3 14:40:17 2019 +0200 i2c: stu300: use xfer_atomic callback to bail out early Use the new callback to reject atomic transfers. Signed-off-by: Wolfram Sang Reviewed-by: Linus Walleij Signed-off-by: Wolfram Sang commit 3d11a12ece85bc29a80a111a0f8b5498f9831d9f Author: Wolfram Sang Date: Wed Apr 3 14:40:16 2019 +0200 i2c: ocores: enable atomic xfers The driver already has the routine in place, tie it to the new callback. Signed-off-by: Wolfram Sang Cc: Andrew Lunn Reviewed-by: Andrew Lunn Signed-off-by: Wolfram Sang commit dd7dbf0eb090947f521387a9b39e963334af5e38 Author: Wolfram Sang Date: Wed Apr 3 14:40:15 2019 +0200 i2c: ocores: refactor setup for polling By properly setting up the algorithm at probe time, we can skip the check at every transfer. This allows us to get rid of the flags completely. Signed-off-by: Wolfram Sang Cc: Andrew Lunn Acked-by: Peter Korsgaard Reviewed-by: Andrew Lunn Signed-off-by: Wolfram Sang commit 08960b022fb6cf1f866be76388c0bed9adab25c1 Author: Wolfram Sang Date: Wed Apr 3 14:40:14 2019 +0200 i2c: tegra-bpmp: convert to use new atomic callbacks The driver did handle this internally, convert it to use the new callbacks. Reviewed-by: Timo Alho Acked-by: Thierry Reding Reviewed-by: Simon Horman Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang commit 89f845a6dcd38a2b83b995cb6a8c7ef3e5abfd3a Author: Wolfram Sang Date: Wed Apr 3 14:40:13 2019 +0200 i2c: omap: Add the master_xfer_atomic hook Add the master_xfer_atomic hook to enable i2c transactions in irq disabled contexts like the poweroff case. Signed-off-by: Tero Kristo Signed-off-by: Keerthy [wsa: simplified code a little: 'timeout = !ret'] Reviewed-by: Simon Horman Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang commit 77c1e1e062b639c98ce093f607637ac027936d04 Author: Wolfram Sang Date: Wed Apr 3 14:40:12 2019 +0200 i2c: demux: handle the new atomic callbacks If the parent has an atomic callback, we need to translate it the same way as the non-atomic callback. Signed-off-by: Wolfram Sang Reviewed-by Andy Shevchenko Signed-off-by: Wolfram Sang commit 7168bff2cfd710293bda52eab4036582c89e07fc Author: Wolfram Sang Date: Wed Apr 3 14:40:11 2019 +0200 i2c: mux: populate the new *_atomic callbacks If the parent adapter has atomic_xfer callbacks, populate them for the mux adapter as well. We can use the same translation function as for the non-atomic xfer callback. Signed-off-by: Wolfram Sang Reviewed-by: Peter Rosin Reviewed-by Andy Shevchenko Signed-off-by: Wolfram Sang commit 63b96983a5ddfedd7daea72dbbc08ea873c54f27 Author: Wolfram Sang Date: Wed Apr 3 14:40:10 2019 +0200 i2c: core: introduce callbacks for atomic transfers We had the request to access devices very late when interrupts are not available anymore multiple times now. Mostly to prepare shutdown or reboot. Allow adapters to specify a specific callback for this case. Note that we fall back to the generic {master|smbus}_xfer callback if this new atomic one is not present. This is intentional to preserve the previous behaviour and avoid regressions. Because there are drivers not using interrupts or because it might have worked "accidently" before. Signed-off-by: Wolfram Sang Reviewed-by Andy Shevchenko Tested-by: Stefan Lengfeld Signed-off-by: Wolfram Sang commit 83c42212d2544625b85f44a07d0ad96323e69250 Author: Wolfram Sang Date: Wed Apr 3 14:40:09 2019 +0200 i2c: core: use I2C locking behaviour also for SMBUS If I2C transfers are executed in atomic contexts, trylock is used instead of lock. This behaviour was missing for SMBUS, although a lot of transfers are of SMBUS type, either emulated or direct. So, factor out the locking routine into a helper and use it for I2C and SMBUS. Signed-off-by: Wolfram Sang Reviewed-by Andy Shevchenko Signed-off-by: Wolfram Sang commit bae1d3a05a8b99bd748168bbf8155a1d047c562e Author: Wolfram Sang Date: Wed Apr 3 14:40:08 2019 +0200 i2c: core: remove use of in_atomic() Commit cea443a81c9c ("i2c: Support i2c_transfer in atomic contexts") added in_atomic() to the I2C core. However, the use of in_atomic() outside of core kernel code is discouraged and was already[1] when this code was added in early 2008. The above commit was a preparation for commit b7a3670131c7 ("i2c-pxa: Add polling transfer"). Its commit message says explicitly it was added "for cases where I2C transactions have to occur at times interrup[t]s are disabled". So, the intention was 'disabled interrupts'. This matches the use cases for atomic I2C transfers I have seen so far: very late communication (mostly to a PMIC) to powerdown or reboot the system. For those cases, interrupts are disabled then. It doesn't seem that in_atomic() adds value. After a discussion with Peter Zijlstra[2], we came up with a better set of conditionals to match the use case. The I2C core will soon gain an extra callback into bus drivers especially for atomic transfers to make them more generic. The code deciding which transfer to use (atomic/non-atomic) should mimic the behaviour which locking to use (trylock/lock). This is why we add a helper for it. [1] https://lwn.net/Articles/274695/ [2] http://patchwork.ozlabs.org/patch/1067437/ Signed-off-by: Wolfram Sang Reviewed-by Andy Shevchenko Tested-by: Stefan Lengfeld Signed-off-by: Wolfram Sang commit a6d2a5a92e67d151c98886babdc86d530d27111c Author: Colin Ian King Date: Sat Apr 13 17:00:26 2019 +0100 RDMA/cxgb4: Fix null pointer dereference on alloc_skb failure Currently if alloc_skb fails to allocate the skb a null skb is passed to t4_set_arp_err_handler and this ends up dereferencing the null skb. Avoid the NULL pointer dereference by checking for a NULL skb and returning early. Addresses-Coverity: ("Dereference null return") Fixes: b38a0ad8ec11 ("RDMA/cxgb4: Set arp error handler for PASS_ACCEPT_RPL messages") Signed-off-by: Colin Ian King Acked-by: Potnuri Bharat Teja Signed-off-by: Jason Gunthorpe commit b368fa114a62031fa091fc9f7b2100691a12b7e0 Author: Colin Ian King Date: Mon Apr 15 18:49:45 2019 +0100 staging: comedi: adv_pci1710: fix spelling mistake: "droput" -> "dropout" There is a spelling mistake in a dev_error message. Fix it. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman commit 28f69ae49b793a4ac82eaaadd5bdc210d116ce60 Author: Hariprasad Kelam Date: Sat Apr 6 13:53:19 2019 +0530 staging: comedi: dt2811: Fix spelling mistake changes interupts --> interrupts to fix warning reported by checkpatch tool Signed-off-by: Hariprasad Kelam Reviewed-by: Mukesh Ojha Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman commit 3935a6fb4bd7aa6562ad0e789ada025e1481289c Author: YueHaibing Date: Sat Apr 6 03:07:49 2019 +0000 staging: comedi: dyna_pci10xx: remove set but not used variables 'chan' and range' Fixes gcc '-Wunused-but-set-variable' warning: drivers/staging/comedi/drivers/dyna_pci10xx.c: In function 'dyna_pci10xx_insn_write_ao': drivers/staging/comedi/drivers/dyna_pci10xx.c:109:21: warning: variable 'range' set but not used [-Wunused-but-set-variable] unsigned int chan, range; drivers/staging/comedi/drivers/dyna_pci10xx.c:109:15: warning: variable 'chan' set but not used [-Wunused-but-set-variable] unsigned int chan, range; They are never used since introduction in commit 16a7373a8e14 ("Staging: comedi: add dyna_pci10xx driver") Signed-off-by: YueHaibing Reviewed-by: Ian Abbott Reviewed-by: Mukesh Ojha Signed-off-by: Greg Kroah-Hartman commit ba696429d290690db967e5f49463df4b2c1314a4 Author: Vitaly Kuznetsov Date: Wed Apr 3 19:03:09 2019 +0200 x86/hyper-v: Implement EOI assist Hyper-V TLFS suggests an optimization to avoid imminent VMExit on EOI: "The OS performs an EOI by atomically writing zero to the EOI Assist field of the virtual VP assist page and checking whether the "No EOI required" field was previously zero. If it was, the OS must write to the HV_X64_APIC_EOI MSR thereby triggering an intercept into the hypervisor." Implement the optimization in Linux. Tested-by: Long Li Signed-off-by: Vitaly Kuznetsov Cc: Borislav Petkov Cc: Haiyang Zhang Cc: K. Y. Srinivasan Cc: Linus Torvalds Cc: Michael Kelley (EOSG) Cc: Peter Zijlstra Cc: Sasha Levin Cc: Simon Xiao Cc: Stephen Hemminger Cc: Thomas Gleixner Cc: linux-hyperv@vger.kernel.org Link: http://lkml.kernel.org/r/20190403170309.4107-1-vkuznets@redhat.com Signed-off-by: Ingo Molnar commit 6daeb8737f8a93c6d3a3ae57e23dd3dbe8b239da Author: Kan Liang Date: Wed Apr 10 11:57:09 2019 -0700 perf/x86/intel: Add Tremont core PMU support Add perf core PMU support for Intel Tremont CPU. The init code is based on Goldmont plus. The generic purpose counter 0 and fixed counter 0 have less skid. Force :ppp events on generic purpose counter 0. Force instruction:ppp on generic purpose counter 0 and fixed counter 0. Updates LLC cache event table and OFFCORE_RESPONSE mask. Adaptive PEBS, which is already enabled on ICL, is also supported on Tremont. No extra code required. Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: acme@kernel.org Cc: jolsa@kernel.org Link: https://lkml.kernel.org/r/1554922629-126287-3-git-send-email-kan.liang@linux.intel.com Signed-off-by: Ingo Molnar commit 6e394376ee89233508fa21d006546357f8efee31 Author: Kan Liang Date: Tue Apr 2 12:45:09 2019 -0700 perf/x86/intel/uncore: Add Intel Icelake uncore support Add Intel Icelake uncore support: - The init code is based on Skylake - Add new PCI id for IMC - New MSR address for CBOX - Get CBOX# from CNL_UNC_CBO_CONFIG MSR directly - Create a new PMU for fixed clocktick counter Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: acme@kernel.org Cc: jolsa@kernel.org Link: https://lkml.kernel.org/r/20190402194509.2832-13-kan.liang@linux.intel.com Signed-off-by: Ingo Molnar commit cf50d79a8cfe5adae37fec026220b009559bbeed Author: Kan Liang Date: Tue Apr 2 12:45:08 2019 -0700 perf/x86/msr: Add Icelake support Icelake is the same as the existing Skylake parts. Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: acme@kernel.org Cc: jolsa@kernel.org Link: https://lkml.kernel.org/r/20190402194509.2832-12-kan.liang@linux.intel.com Signed-off-by: Ingo Molnar commit b3377c3acb9e54cf86efcfe25f2e792bca599ed4 Author: Kan Liang Date: Tue Apr 2 12:45:07 2019 -0700 perf/x86/intel/rapl: Add Icelake support Icelake support the same RAPL counters as Skylake. Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: acme@kernel.org Cc: jolsa@kernel.org Link: https://lkml.kernel.org/r/20190402194509.2832-11-kan.liang@linux.intel.com Signed-off-by: Ingo Molnar commit f08c47d1f86c6dc666c7e659d94bf6d4492aa9d7 Author: Kan Liang Date: Tue Apr 2 12:45:06 2019 -0700 perf/x86/intel/cstate: Add Icelake support Icelake uses the same C-state residency events as Sandy Bridge. Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: acme@kernel.org Cc: jolsa@kernel.org Link: https://lkml.kernel.org/r/20190402194509.2832-10-kan.liang@linux.intel.com Signed-off-by: Ingo Molnar commit 6017608936c1825ff5d7325270484042f597edff Author: Kan Liang Date: Tue Apr 2 12:45:05 2019 -0700 perf/x86/intel: Add Icelake support Add Icelake core PMU perf code, including constraint tables and the main enable code. Icelake expanded the generic counters to always 8 even with HT on, but a range of events cannot be scheduled on the extra 4 counters. Add new constraint ranges to describe this to the scheduler. The number of constraints that need to be checked is larger now than with earlier CPUs. At some point we may need a new data structure to look them up more efficiently than with linear search. So far it still seems to be acceptable however. Icelake added a new fixed counter SLOTS. Full support for it is added later in the patch series. The cache events table is identical to Skylake. Compare to PEBS instruction event on generic counter, fixed counter 0 has less skid. Force instruction:ppp always in fixed counter 0. Originally-by: Andi Kleen Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: acme@kernel.org Cc: jolsa@kernel.org Link: https://lkml.kernel.org/r/20190402194509.2832-9-kan.liang@linux.intel.com Signed-off-by: Ingo Molnar commit 63b79f6ebc464afb730bc45762c820795e276da1 Author: Peter Zijlstra Date: Tue Apr 2 12:45:04 2019 -0700 perf/x86: Support constraint ranges Icelake extended the general counters to 8, even when SMT is enabled. However only a (large) subset of the events can be used on all 8 counters. The events that can or cannot be used on all counters are organized in ranges. A lot of scheduler constraints are required to handle all this. To avoid blowing up the tables add event code ranges to the constraint tables, and a new inline function to match them. Originally-by: Andi Kleen Signed-off-by: Peter Zijlstra (Intel) # developer hat on Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) # maintainer hat on Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: acme@kernel.org Cc: jolsa@kernel.org Link: https://lkml.kernel.org/r/20190402194509.2832-8-kan.liang@linux.intel.com Signed-off-by: Ingo Molnar commit d3617b98b04583df222f34992e65712862a77bf1 Author: Andi Kleen Date: Tue Apr 2 12:45:03 2019 -0700 perf/x86/lbr: Avoid reading the LBRs when adaptive PEBS handles them With adaptive PEBS the CPU can directly supply the LBR information, so we don't need to read it again. But the LBRs still need to be enabled. Add a special count to the cpuc that distinguishes these two cases, and avoid reading the LBRs unnecessarily when PEBS is active. Signed-off-by: Andi Kleen Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: acme@kernel.org Cc: jolsa@kernel.org Link: https://lkml.kernel.org/r/20190402194509.2832-7-kan.liang@linux.intel.com Signed-off-by: Ingo Molnar commit c22497f5838c237e3094a4dfb99d1c5de6353239 Author: Kan Liang Date: Tue Apr 2 12:45:02 2019 -0700 perf/x86/intel: Support adaptive PEBS v4 Adaptive PEBS is a new way to report PEBS sampling information. Instead of a fixed size record for all PEBS events it allows to configure the PEBS record to only include the information needed. Events can then opt in to use such an extended record, or stay with a basic record which only contains the IP. The major new feature is to support LBRs in PEBS record. Besides normal LBR, this allows (much faster) large PEBS, while still supporting callstacks through callstack LBR. So essentially a lot of profiling can now be done without frequent interrupts, dropping the overhead significantly. The main requirement still is to use a period, and not use frequency mode, because frequency mode requires reevaluating the frequency on each overflow. The floating point state (XMM) is also supported, which allows efficient profiling of FP function arguments. Introduce specific drain function to handle variable length records. Use a new callback to parse the new record format, and also handle the STATUS field now being at a different offset. Add code to set up the configuration register. Since there is only a single register, all events either get the full super set of all events, or only the basic record. Originally-by: Andi Kleen Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: acme@kernel.org Cc: jolsa@kernel.org Link: https://lkml.kernel.org/r/20190402194509.2832-6-kan.liang@linux.intel.com [ Renamed GPRS => GP. ] Signed-off-by: Ingo Molnar commit c3e2485d5f4f8c605c67c0c0ac237be45438edd1 Author: Maxime Ripard Date: Tue Apr 16 10:27:59 2019 +0200 dt-bindings: usb: Convert the generic EHCI binding to YAML The generic EHCI binding is used by many controllers that are using the EHCI spec. Convert that binding to a YAML description to enable the validation on all the nodes using that binding. Signed-off-by: Maxime Ripard Acked-by: Chen-Yu Tsai Signed-off-by: Greg Kroah-Hartman commit c93bcace1098ff4be518649187a763004275b79b Author: Maxime Ripard Date: Tue Apr 16 10:27:58 2019 +0200 dt-bindings: usb: Convert the generic OHCI binding to YAML The generic OHCI binding is used by many controllers that are using the OHCI spec. Convert that binding to a YAML description to enable the validation on all the nodes using that binding. Signed-off-by: Maxime Ripard Acked-by: Chen-Yu Tsai Signed-off-by: Greg Kroah-Hartman commit 14ec072a19ad7a7b45fd997ab0f730d3999eb59a Author: Maxime Ripard Date: Tue Apr 16 10:27:57 2019 +0200 dt-bindings: usb: Convert USB HCD generic binding to YAML The USB HCD generic binding is used by many USB host bindings. In order to allow the DT validation to happen on those, let's create a YAML description for that generic binding that can be referenced later on. Signed-off-by: Maxime Ripard Acked-by: Chen-Yu Tsai Signed-off-by: Greg Kroah-Hartman commit 3bee346bd7f36da44890a1de69a389b128617c5a Author: Mathieu Malaterre Date: Wed Mar 27 20:40:34 2019 +0100 USB: hub: Remove returned value 'status' since never used The returned value in status has never been used since commit 4296c70a5ec3 ("USB/xHCI: Enable USB 3.0 hub remote wakeup.") So remove 'status' completely. Remove warning (W=1): drivers/usb/core/hub.c:3671:8: warning: variable 'status' set but not used [-Wunused-but-set-variable] Signed-off-by: Mathieu Malaterre Signed-off-by: Greg Kroah-Hartman commit 477f00f9617009a9a3a9271885231573b728ca4f Author: Kan Liang Date: Tue Apr 2 12:45:01 2019 -0700 perf/x86/intel/ds: Extract code of event update in short period The drain_pebs() could be called twice in a short period for auto-reload event in pmu::read(). The intel_pmu_save_and_restart_reload() should be called to update the event->count. This case should also be handled on Icelake. Extract the code for later reuse. Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: acme@kernel.org Cc: jolsa@kernel.org Link: https://lkml.kernel.org/r/20190402194509.2832-5-kan.liang@linux.intel.com Signed-off-by: Ingo Molnar commit 48f38aa4cc5a48bc0fe85c5c4b1ab171fbb539b6 Author: Andi Kleen Date: Tue Apr 2 12:45:00 2019 -0700 perf/x86/intel: Extract memory code PEBS parser for reuse Extract some code related to memory profiling from the PEBS record parser into separate functions. It can be reused by the upcoming adaptive PEBS parser. No functional changes. Rename intel_hsw_weight to intel_get_tsx_weight, and intel_hsw_transaction to intel_get_tsx_transaction. Because the input is not the hsw pebs format anymore. Signed-off-by: Andi Kleen Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: acme@kernel.org Cc: jolsa@kernel.org Link: https://lkml.kernel.org/r/20190402194509.2832-4-kan.liang@linux.intel.com Signed-off-by: Ingo Molnar commit 878068ea270ea82767ff1d26c91583263c81fba0 Author: Kan Liang Date: Tue Apr 2 12:44:59 2019 -0700 perf/x86: Support outputting XMM registers Starting from Icelake, XMM registers can be collected in PEBS record. But current code only output the pt_regs. Add a new struct x86_perf_regs for both pt_regs and xmm_regs. The xmm_regs will be used later to keep a pointer to PEBS record which has XMM information. XMM registers are 128 bit. To simplify the code, they are handled like two different registers, which means setting two bits in the register bitmap. This also allows only sampling the lower 64bit bits in XMM. The index of XMM registers starts from 32. There are 16 XMM registers. So all reserved space for regs are used. Remove REG_RESERVED. Add PERF_REG_X86_XMM_MAX, which stands for the max number of all x86 regs including both GPRs and XMM. Add REG_NOSUPPORT for 32bit to exclude unsupported registers. Previous platforms can not collect XMM information in PEBS record. Adding pebs_no_xmm_regs to indicate the unsupported platforms. The common code still validates the supported registers. However, it cannot check model specific registers, e.g. XMM. Add extra check in x86_pmu_hw_config() to reject invalid config of regs_user and regs_intr. The regs_user never supports XMM collection. The regs_intr only supports XMM collection when sampling PEBS event on icelake and later platforms. Originally-by: Andi Kleen Suggested-by: Peter Zijlstra (Intel) Signed-off-by: Kan Liang Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Cc: acme@kernel.org Cc: jolsa@kernel.org Link: https://lkml.kernel.org/r/20190402194509.2832-3-kan.liang@linux.intel.com Signed-off-by: Ingo Molnar commit f447e4eb3ad1e60d173ca997fcb2ef2a66f12574 Author: Stephane Eranian Date: Mon Apr 8 10:32:52 2019 -0700 perf/x86/intel: Force resched when TFA sysctl is modified This patch provides guarantee to the sysadmin that when TFA is disabled, no PMU event is using PMC3 when the echo command returns. Vice-Versa, when TFA is enabled, PMU can use PMC3 immediately (to eliminate possible multiplexing). $ perf stat -a -I 1000 --no-merge -e branches,branches,branches,branches 1.000123979 125,768,725,208 branches 1.000562520 125,631,000,456 branches 1.000942898 125,487,114,291 branches 1.001333316 125,323,363,620 branches 2.004721306 125,514,968,546 branches 2.005114560 125,511,110,861 branches 2.005482722 125,510,132,724 branches 2.005851245 125,508,967,086 branches 3.006323475 125,166,570,648 branches 3.006709247 125,165,650,056 branches 3.007086605 125,164,639,142 branches 3.007459298 125,164,402,912 branches 4.007922698 125,045,577,140 branches 4.008310775 125,046,804,324 branches 4.008670814 125,048,265,111 branches 4.009039251 125,048,677,611 branches 5.009503373 125,122,240,217 branches 5.009897067 125,122,450,517 branches Then on another connection, sysadmin does: $ echo 1 >/sys/devices/cpu/allow_tsx_force_abort Then perf stat adjusts the events immediately: 5.010286029 125,121,393,483 branches 5.010646308 125,120,556,786 branches 6.011113588 124,963,351,832 branches 6.011510331 124,964,267,566 branches 6.011889913 124,964,829,130 branches 6.012262996 124,965,841,156 branches 7.012708299 124,419,832,234 branches [79.69%] 7.012847908 124,416,363,853 branches [79.73%] 7.013225462 124,400,723,712 branches [79.73%] 7.013598191 124,376,154,434 branches [79.70%] 8.014089834 124,250,862,693 branches [74.98%] 8.014481363 124,267,539,139 branches [74.94%] 8.014856006 124,259,519,786 branches [74.98%] 8.014980848 124,225,457,969 branches [75.04%] 9.015464576 124,204,235,423 branches [75.03%] 9.015858587 124,204,988,490 branches [75.04%] 9.016243680 124,220,092,486 branches [74.99%] 9.016620104 124,231,260,146 branches [74.94%] And vice-versa if the syadmin does: $ echo 0 >/sys/devices/cpu/allow_tsx_force_abort Events are again spread over the 4 counters: 10.017096277 124,276,230,565 branches [74.96%] 10.017237209 124,228,062,171 branches [75.03%] 10.017478637 124,178,780,626 branches [75.03%] 10.017853402 124,198,316,177 branches [75.03%] 11.018334423 124,602,418,933 branches [85.40%] 11.018722584 124,602,921,320 branches [85.42%] 11.019095621 124,603,956,093 branches [85.42%] 11.019467742 124,595,273,783 branches [85.42%] 12.019945736 125,110,114,864 branches 12.020330764 125,109,334,472 branches 12.020688740 125,109,818,865 branches 12.021054020 125,108,594,014 branches 13.021516774 125,109,164,018 branches 13.021903640 125,108,794,510 branches 13.022270770 125,107,756,978 branches 13.022630819 125,109,380,471 branches 14.023114989 125,133,140,817 branches 14.023501880 125,133,785,858 branches 14.023868339 125,133,852,700 branches Signed-off-by: Stephane Eranian Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Vince Weaver Cc: kan.liang@intel.com Cc: nelson.dsouza@intel.com Cc: tonyj@suse.com Link: https://lkml.kernel.org/r/20190408173252.37932-3-eranian@google.com Signed-off-by: Ingo Molnar commit c68d224e5ed15605e651e2482c6ffd95915ddf58 Author: Stephane Eranian Date: Mon Apr 8 10:32:51 2019 -0700 perf/core: Add perf_pmu_resched() as global function This patch add perf_pmu_resched() a global function that can be called to force rescheduling of events for a given PMU. The function locks both cpuctx and task_ctx internally. This will be used by a subsequent patch. Signed-off-by: Stephane Eranian [ Simplified the calling convention. ] Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Vince Weaver Cc: kan.liang@intel.com Cc: nelson.dsouza@intel.com Cc: tonyj@suse.com Link: https://lkml.kernel.org/r/20190408173252.37932-2-eranian@google.com Signed-off-by: Ingo Molnar commit d80b5005c5dd113442454b469752f0f95ac15645 Author: Mauro Carvalho Chehab Date: Mon Apr 15 23:56:01 2019 -0300 docs: usb: convert documents to ReST Convert USB documents to ReST, in order to prepare for adding it to the kernel API book, as most of the stuff there are driver or subsystem-related. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Greg Kroah-Hartman commit 5f9be5f3f89921de6e3961bedf3202a383f126c9 Author: JC Kuo Date: Mon Apr 1 12:40:47 2019 +0200 usb: host: xhci-tegra: Add Tegra186 XUSB support This commit adds Tegra186 XUSB host mode controller support. This is very similar to the existing support for Tegra124 and Tegra210, except that the number of ports and PHYs differs and the IPFS wrapper being gone. Signed-off-by: JC Kuo Acked-by: Mathias Nyman Signed-off-by: Thierry Reding Signed-off-by: Greg Kroah-Hartman commit 160fa3a1f55fd7cbab3a8347244a71a173d85cad Author: JC Kuo Date: Mon Apr 1 12:40:46 2019 +0200 usb: host: xhci-tegra: Selectively program IPFS Starting with Tegra186, the XUSB controller no longer has the IPFS wrapper. This commit adds a "has_ipfs" field to struct tegra_xusb_soc that can be used to declare the existence of the IPFS wrapper. For the existing chips (i.e. Tegra124 and Tegra210), the new field is set to true. A future patch adding support for Tegra186 will set it to false. Signed-off-by: JC Kuo Acked-by: Mathias Nyman Signed-off-by: Thierry Reding Signed-off-by: Greg Kroah-Hartman commit ead619de90583f6c191b6a844129df51dda8881f Author: Thierry Reding Date: Mon Apr 1 12:40:45 2019 +0200 dt-bindings: usb: xhci-tegra: Add Tegra186 support Extend the bindings to cover the set of features found in Tegra186. Reviewed-by: Rob Herring Reviewed-by: JC Kuo Signed-off-by: Thierry Reding Signed-off-by: Greg Kroah-Hartman commit cc8670945d43f857dcb99c61ea3beaacfb6ed472 Merge: 496156e3647f 9d5dcc93a6dd Author: Ingo Molnar Date: Tue Apr 16 12:14:46 2019 +0200 Merge branch 'perf/urgent' into perf/core, to pick up fixes Signed-off-by: Ingo Molnar commit 7a2a519a899b44fec5c37ce4bb2b624f9ad1eff5 Author: Chris Wilson Date: Tue Apr 16 09:52:18 2019 +0100 drm/i915: Drop bool return from breadcrumbs signaler Since removal of the "missed interrupt detection" nobody used the result of whether or not we signaled anybody during that invocation, so now remove the return value. References: 789659f4307a ("drm/i915: Drop fake breadcrumb irq") Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190416085218.431-1-chris@chris-wilson.co.uk commit 496156e3647f44e2aab3e64f86b63294afca458a Merge: cabf5ebbabcd 618d919cae2f Author: Ingo Molnar Date: Tue Apr 16 12:02:43 2019 +0200 Merge branch 'linus' into perf/core, to pick up fixes Signed-off-by: Ingo Molnar commit 2de89fd989584c54f5f3fcea808504c0149ba837 Author: Pi-Hsun Shih Date: Fri Apr 12 15:18:50 2019 +0800 platform/chrome: cros_ec: Add EC host command support using rpmsg Add EC host command support through rpmsg. Signed-off-by: Pi-Hsun Shih Signed-off-by: Enric Balletbo i Serra commit 9e2b0e0be64227ba8f09008d32d75280595a5464 Author: Nick Crews Date: Fri Apr 12 12:14:43 2019 -0600 platform/chrome: wilco_ec: Add h1_gpio status to debugfs As part of Chrome OS's FAFT (Fully Automated Firmware Testing) tests, we need to ensure that the H1 chip is properly setting some GPIO lines. The h1_gpio attribute exposes the state of the lines: - ENTRY_TO_FACT_MODE in BIT(0) - SPI_CHROME_SEL in BIT(1) There are two reasons that I am exposing this in debugfs, and not as a GPIO: 1. This is only useful for testing, so end users shouldn't ever care about this. In fact, if it passes the tests, then the value of h1_gpio will always be 2, so it would be really uninteresting for users. 2. This GPIO is not connected to, controlled by, or really even related to the AP. The GPIO runs between the EC and the H1 security chip. Changes in v4: - Use "0x02x\n" instead of "02x\n" for format string - Use DEFINE_DEBUGFS_ATTRIBUTE() - Add documentation Changes in v3: - Fix documentation to correspond with formatting change in v2. Changes in v2: - Zero out the unused fields in the request. - Format result as "%02x\n" instead of as a decimal. Signed-off-by: Nick Crews Signed-off-by: Enric Balletbo i Serra commit a4599f6ec8e844f53dac15f719084d3b5ffe68c3 Author: Seiya Wang Date: Wed Jan 9 16:21:43 2019 +0800 arm64: dts: mt8173: add pmu nodes for mt8173 This patch adds the device nodes of ARM Performance Monitor Uint for mt8173. Signed-off-by: Seiya Wang Signed-off-by: Matthias Brugger commit 2bfc4975083ace0e5777116514c3a75e59b3dbcd Author: Colin Xu Date: Mon Apr 1 14:13:53 2019 +0800 drm/i915/gvt: Fix incorrect mask of mmio 0x22028 in gen8/9 mmio list According to GFX PRM on 01.org, bit 31:16 of mmio 0x22028 should be masks. Fixes: 178657139307 ("drm/i915/gvt: vGPU context switch") Reviewed-by: Zhenyu Wang Signed-off-by: Colin Xu Signed-off-by: Zhenyu Wang commit 5c6e116dce57453ecbeb715e7f47208bca0c157c Author: Seiya Wang Date: Mon Feb 25 14:51:11 2019 +0800 arm64: dts: mt8173: correct cpu type of cpu2 and cpu3 to cortex-a72 The cpu type of cpu2 and cpu3 should be cortex-a72, not cortex-a57. Signed-off-by: Seiya Wang Signed-off-by: Matthias Brugger commit 6969706399cc1687206bc47a10eee3706f0c32fd Author: Fabien Parent Date: Sat Mar 23 22:16:09 2019 +0100 dt-bindings: irq: mtk,sysirq: add support for MT8516 Add binding documentation of mediatek,sysirq for MT8516 SoC. Signed-off-by: Fabien Parent Acked-by: Rob Herring Signed-off-by: Matthias Brugger commit 61a640143f68e953efe2320c65c3784b8fbdcd42 Author: Fabien Parent Date: Sat Mar 23 22:16:08 2019 +0100 dt-bindings: serial: mtk-uart: add support for MT8516 Add binding documentation of mtk-uart for MT8516 SoC. Signed-off-by: Fabien Parent Acked-by: Rob Herring Signed-off-by: Matthias Brugger commit ac071578286ee9abd0243480631510d9f818144d Author: Xiaolin Zhang Date: Wed Apr 3 16:28:04 2019 +0800 drm/i915/gvt: addressed guest GPU hang with HWS index mode with the introduce of "switch to use HWS indices rather than address", guest GPU hang observed when running workloads which will update the seqno to the real HW HWSP, not vitural GPU HWSP and then cause GPU hang. this patch is to revoke index mode in PIPE_CTRL and MI_FLUSH_DW and patch guest GPU HWSP address value to these commands. Fixes: 54939ea0bd85 ("drm/i915: Switch to use HWS indices rather than addresses") Reviewed-by: Zhenyu Wang Signed-off-by: Xiaolin Zhang Signed-off-by: Zhenyu Wang commit ef038a55dc06efeec2501479c038c0fb93d18e1d Author: Fabien Parent Date: Sat Mar 23 22:16:06 2019 +0100 dt-bindings: timer: mtk-timer: add support for MT8516 Add binding documentation of mtk-timer for MT8516 SoC. Signed-off-by: Fabien Parent Acked-by: Rob Herring Acked-by: Daniel Lezcano Signed-off-by: Matthias Brugger commit 95d002e0a34cb0f238abb39987f9980f325d8332 Merge: d57b39e3ee3c 28d618e9ab86 Author: Zhenyu Wang Date: Tue Apr 16 16:50:34 2019 +0800 Merge tag 'drm-intel-next-2019-04-04' into gvt-next Merge back drm-intel-next for engine name definition refinement and 54939ea0bd85 ("drm/i915: Switch to use HWS indices rather than addresses") that would need gvt fixes to depend on. Signed-off-by: Zhenyu Wang commit 02a8c817a31606b6b37c2b755f6569903f44241e Author: Alban Crequy Date: Sun Apr 14 18:58:46 2019 +0200 bpf: add map helper functions push, pop, peek in more BPF programs commit f1a2e44a3aec ("bpf: add queue and stack maps") introduced new BPF helper functions: - BPF_FUNC_map_push_elem - BPF_FUNC_map_pop_elem - BPF_FUNC_map_peek_elem but they were made available only for network BPF programs. This patch makes them available for tracepoint, cgroup and lirc programs. Signed-off-by: Alban Crequy Cc: Mauricio Vasquez B Acked-by: Song Liu Signed-off-by: Daniel Borkmann commit a5cb33464e53482ecc645b4b7703f5b6d151095f Author: Stanislav Fomichev Date: Fri Apr 12 16:43:10 2019 -0700 selftests/bpf: make flow dissector tests more extensible Rewrite selftest to iterate over an array with input packet and expected flow_keys. This should make it easier to extend this test with additional cases without too much boilerplate. Signed-off-by: Stanislav Fomichev Acked-by: Song Liu Signed-off-by: Daniel Borkmann commit 08de198c95438fcbfad7bc06121176794ec92c6e Author: Alexei Starovoitov Date: Fri Apr 12 14:41:32 2019 -0700 selftests/bpf: two scale tests Add two tests to check that sequence of 1024 jumps is verifiable. Signed-off-by: Alexei Starovoitov Acked-by: Song Liu Signed-off-by: Daniel Borkmann commit 3da6e7e408b9c229e5e5cc1ddab7445c7561afc3 Author: Benjamin Poirier Date: Mon Apr 15 16:15:36 2019 +0900 bpftool: Improve handling of ENOSPC on reuseport_array map dumps avoids outputting a series of value: No space left on device The value itself is not wrong but bpf_fd_reuseport_array_lookup_elem() can only return it if the map was created with value_size = 8. There's nothing bpftool can do about it. Instead of repeating this error for every key in the map, print an explanatory warning and a specialized error. example before: key: 00 00 00 00 value: No space left on device key: 01 00 00 00 value: No space left on device key: 02 00 00 00 value: No space left on device Found 0 elements example after: Warning: cannot read values from reuseport_sockarray map with value_size != 8 key: 00 00 00 00 value: key: 01 00 00 00 value: key: 02 00 00 00 value: Found 0 elements Signed-off-by: Benjamin Poirier Reviewed-by: Quentin Monnet Reviewed-by: Jakub Kicinski Signed-off-by: Daniel Borkmann commit 0478c3bf812451315da6eeb79f8cf151db094767 Author: Benjamin Poirier Date: Mon Apr 15 16:15:35 2019 +0900 bpftool: Use print_entry_error() in case of ENOENT when dumping Commit bf598a8f0f77 ("bpftool: Improve handling of ENOENT on map dumps") used print_entry_plain() in case of ENOENT. However, that commit introduces dead code. Per-cpu maps are zero-filled. When reading them, it's all or nothing. There will never be a case where some cpus have an entry and others don't. The truth is that ENOENT is an error case. Use print_entry_error() to output the desired message. That function's "value" parameter is also renamed to indicate that we never use it for an actual map value. The output format is unchanged. Signed-off-by: Benjamin Poirier Reviewed-by: Quentin Monnet Reviewed-by: Jakub Kicinski Signed-off-by: Daniel Borkmann commit 25df480def17eb792860d86b8f90fda00035f0f9 Author: Quentin Monnet Date: Fri Apr 12 14:29:38 2019 +0100 tools: bpftool: add a note on program statistics in man page Linux kernel now supports statistics for BPF programs, and bpftool is able to dump them. However, these statistics are not enabled by default, and administrators may not know how to access them. Add a paragraph in bpftool documentation, under the description of the "bpftool prog show" command, to explain that such statistics are available and that their collection is controlled via a dedicated sysctl knob. Signed-off-by: Quentin Monnet Reviewed-by: Jakub Kicinski Acked-by: Song Liu Signed-off-by: Daniel Borkmann commit 88b3eed805e9edf2646d7ba3e701b616225572e1 Author: Quentin Monnet Date: Fri Apr 12 14:29:37 2019 +0100 tools: bpftool: fix short option name for printing version in man pages Manual pages would tell that option "-v" (lower case) would print the version number for bpftool. This is wrong: the short name of the option is "-V" (upper case). Fix the documentation accordingly. Signed-off-by: Quentin Monnet Reviewed-by: Jakub Kicinski Acked-by: Song Liu Signed-off-by: Daniel Borkmann commit 9a487883bd6bffbfb99e5f58bbfab290a42cd1a6 Author: Quentin Monnet Date: Fri Apr 12 14:29:36 2019 +0100 tools: bpftool: fix man page documentation for "pinmaps" keyword The "pinmaps" keyword is present in the man page, in the verbose description of the "bpftool prog load" command. However, it is missing from the summary of available commands at the beginning of the file. Add it there as well. Signed-off-by: Quentin Monnet Reviewed-by: Jakub Kicinski Acked-by: Song Liu Signed-off-by: Daniel Borkmann commit 39c9f10639a3e8ead677492a7ab41cee5fa481a7 Author: Quentin Monnet Date: Fri Apr 12 14:29:35 2019 +0100 tools: bpftool: reset errno for "bpftool cgroup tree" When trying to dump the tree of all cgroups under a given root node, bpftool attempts to query programs of all available attach types. Some of those attach types do not support queries, therefore several of the calls are actually expected to fail. Those calls set errno to EINVAL, which has no consequence for dumping the rest of the tree. It does have consequences however if errno is inspected at a later time. For example, bpftool batch mode relies on errno to determine whether a command has succeeded, and whether it should carry on with the next command. Setting errno to EINVAL when everything worked as expected would therefore make such command fail: # echo 'cgroup tree \n net show' | \ bpftool batch file - To improve this, reset errno when its value is EINVAL after attempting to show programs for all existing attach types in do_show_tree_fn(). Signed-off-by: Quentin Monnet Reviewed-by: Jakub Kicinski Acked-by: Song Liu Signed-off-by: Daniel Borkmann commit 031ebc1aac3dc26c5ef9f5236ad35366bd57de61 Author: Quentin Monnet Date: Fri Apr 12 14:29:34 2019 +0100 tools: bpftool: remove blank line after btf_id when listing programs Commit 569b0c77735d ("tools/bpftool: show btf id in program information") made bpftool print an empty line after each program entry when listing the BPF programs loaded on the system (plain output). This is especially confusing when some programs have an associated BTF id, and others don't. Let's remove the blank line. Signed-off-by: Quentin Monnet Reviewed-by: Jakub Kicinski Acked-by: Song Liu Signed-off-by: Daniel Borkmann commit 43537b8e2dc515e037e855504db3f6c7cf73c79f Author: Willem de Bruijn Date: Fri Apr 12 09:30:48 2019 -0400 bpf: reserve flags in bpf_skb_net_shrink The ENCAP flags in bpf_skb_adjust_room are ignored on decap with bpf_skb_net_shrink. Reserve these bits for future use. Fixes: 868d523535c2d ("bpf: add bpf_skb_adjust_room encap flags") Signed-off-by: Willem de Bruijn Reviewed-by: Alan Maguire Signed-off-by: Daniel Borkmann commit bfb35c27c65fce60a12e188135ae1344d1b89e24 Author: Alan Maguire Date: Fri Apr 12 12:27:34 2019 +0100 bpf: fix whitespace for ENCAP_L2 defines in bpf.h replace tab after #define with space in line with rest of definitions Signed-off-by: Alan Maguire Acked-by: Song Liu Signed-off-by: Daniel Borkmann commit bcbccad694b7ef0de9a993ecd918231c10a1496a Author: Stanislav Fomichev Date: Thu Apr 11 15:53:16 2019 -0700 selftests/bpf: bring back (void *) cast to set_ipv4_csum in test_tc_tunnel It was removed in commit 166b5a7f2ca3 ("selftests_bpf: extend test_tc_tunnel for UDP encap") without any explanation. Otherwise I see: progs/test_tc_tunnel.c:160:17: warning: taking address of packed member 'ip' of class or structure 'v4hdr' may result in an unaligned pointer value [-Waddress-of-packed-member] set_ipv4_csum(&h_outer.ip); ^~~~~~~~~~ 1 warning generated. Cc: Alan Maguire Cc: Willem de Bruijn Fixes: 166b5a7f2ca3 ("selftests_bpf: extend test_tc_tunnel for UDP encap") Signed-off-by: Stanislav Fomichev Acked-by: Song Liu Reviewed-by: Alan Maguire Signed-off-by: Daniel Borkmann commit 7121f4c0304a8854cfa528d482444aff6b13b71f Author: Fabien Parent Date: Sat Mar 23 22:16:05 2019 +0100 dt-bindings: wdog: mtk-wdt: add support for MT851 Add binding documentation of mtk-wdt for MT8516 SoC. Signed-off-by: Fabien Parent Acked-by: Guenter Roeck Acked-by: Rob Herring Signed-off-by: Matthias Brugger commit efb2ddc4ce5dba9b6c5ec106528d18a645424f3f Author: Andrii Nakryiko Date: Mon Apr 15 16:48:08 2019 -0700 selftests/btf: add VAR and DATASEC case for dedup tests Add test case verifying that dedup happens (INTs are deduped in this case) and VAR/DATASEC types are not deduped, but have their referenced type IDs adjusted correctly. Cc: Daniel Borkmann Cc: Yonghong Song Cc: Alexei Starovoitov Signed-off-by: Andrii Nakryiko Signed-off-by: Daniel Borkmann commit 189cf5a4a7d5e0349f3079f05a8ccf4e4a2f0c3e Author: Andrii Nakryiko Date: Mon Apr 15 16:48:07 2019 -0700 btf: add support for VAR and DATASEC in btf_dedup() This patch adds support for VAR and DATASEC in btf_dedup(). VAR/DATASEC are never deduplicated, but they need to be processed anyway as types they refer to might need to be remapped due to deduplication and compaction. Cc: Daniel Borkmann Cc: Yonghong Song Cc: Alexei Starovoitov Signed-off-by: Andrii Nakryiko Signed-off-by: Daniel Borkmann commit 68e5ab1fc8bd9c17ed94ac172ffe0b9b7e85a59a Author: Andrii Nakryiko Date: Mon Apr 15 14:58:39 2019 -0700 kbuild: handle old pahole more gracefully when generating BTF When CONFIG_DEBUG_INFO_BTF is enabled but available version of pahole is too old to support BTF generation, build script is supposed to emit warning and proceed with the build. Due to using exit instead of return from BASH function, existing handling code prematurely exits exit code 0, not completing some of the build steps. This patch fixes issue by correctly returning just from gen_btf() function only. Fixes: e83b9f55448a ("kbuild: add ability to generate BTF type info for vmlinux") Cc: Masahiro Yamada Cc: Arnaldo Carvalho de Melo Cc: Daniel Borkmann Cc: Alexei Starovoitov Cc: Yonghong Song Cc: Martin KaFai Lau Signed-off-by: Andrii Nakryiko Acked-by: Song Liu Signed-off-by: Daniel Borkmann commit 89502a01979033a1c0c0c4d6d9aef07e59021005 Author: Stephen Kitt Date: Mon Apr 15 17:08:53 2019 +0200 x86/mm: Fix the 56-bit addresses memory map in Documentation/x86/x86_64/mm.txt This fixes a PT typo, and the following 56-bit address-space addresses: * the hole extends from 0100000000000000 to feffffffffffffff * the KASAN shadow memory area stops at fffffbffffffffff (see kasan.h) Signed-off-by: Stephen Kitt Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Brian Gerst Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: alex.popov@linux.com Cc: bhe@redhat.com Cc: corbet@lwn.net Cc: kirill.shutemov@linux.intel.com Cc: linux-doc@vger.kernel.org Link: http://lkml.kernel.org/r/20190415150853.10354-1-steve@sk2.org Signed-off-by: Ingo Molnar commit 948e922fc44611ee2de0c89583ca958cb5307d36 Author: Li Zhong Date: Mon Apr 15 13:20:31 2019 +0800 scsi: core: map PQ=1, PDT=other values to SCSI_SCAN_TARGET_PRESENT commit 84961f28e9d1 ("[SCSI] Don't add scsi_device for devices that return PQ=1, PDT=0x1f") returns SCSI_SCAN_TARGET_PRESENT if inquiry returns PQ=1, and PDT = 0x1f. However, from the scsi spec, it seemed setting PQ=1, and PDT to the type it is capable to support, can also mean the device is not connected. E.g. we see an IBM/2145 returns PQ=1 and PDT=0 for a non-mapped lun (details attached at the end). This patch changes the check condition a bit, so the check don't require PTD to be 0x1f when PQ=1. $ echo 0 0 1 > /sys/class/scsi_host/host1/scan [ 2483.722186] scsi 1:0:0:1: scsi scan: INQUIRY pass 1 length 36 [ 2483.725687] scsi 1:0:0:1: scsi scan: INQUIRY successful with code 0x0 [ 2483.729171] scsi 1:0:0:1: scsi scan: INQUIRY pass 2 length 109 [ 2483.732481] scsi 1:0:0:1: scsi scan: INQUIRY successful with code 0x0 [ 2483.735911] scsi 1:0:0:1: Direct-Access IBM 2145 0000 PQ: 1 ANSI: 6 [ 2483.741282] scsi 1:0:0:1: Attached scsi generic sg2 type 0 $ tail /proc/scsi/scsi Attached devices: Host: scsi1 Channel: 00 Id: 00 Lun: 00 Vendor: IBM Model: 2145 Rev: 0000 Type: Direct-Access ANSI SCSI revision: 06 Host: scsi0 Channel: 00 Id: 00 Lun: 00 Vendor: IBM Model: 2145 Rev: 0000 Type: Direct-Access ANSI SCSI revision: 06 Host: scsi1 Channel: 00 Id: 00 Lun: 01 Vendor: IBM Model: 2145 Rev: 0000 Type: Direct-Access ANSI SCSI revision: 06 $ lsscsi [0:0:0:0] disk IBM 2145 0000 /dev/sdb [1:0:0:0] disk IBM 2145 0000 /dev/sda [1:0:0:1] disk IBM 2145 0000 - Signed-off-by: Li Zhong Reviewed-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit 7c3f8ca8e4c8ac180021b1c2a5a1f82a490db7db Author: YueHaibing Date: Sat Apr 13 22:21:38 2019 +0800 scsi: megaraid_sas: Make megasas_host_device_list_query() static Fix sparse warning: drivers/scsi/megaraid/megaraid_sas_base.c:4652:1: warning: symbol 'megasas_host_device_list_query' was not declared. Should it be static? Signed-off-by: YueHaibing Signed-off-by: Martin K. Petersen commit e0347d894ae879a3cb8977ebca43eb04a5fae1c1 Author: Stanley Chu Date: Mon Apr 15 20:23:38 2019 +0800 scsi: ufs: Print real incorrect request response code If UFS device responds an unknown request response code, we can not know what it was via logs because the code is replaced by "DID_ERROR << 16" before log printing. Fix this to provide precise request response code information for easier issue breakdown. Signed-off-by: Stanley Chu Reviewed-by: Tomas Winkler Signed-off-by: Martin K. Petersen commit 21112e13cc7aba49f68bdecb19306e610fe0c3bf Author: Varun Prakash Date: Sun Apr 14 21:15:12 2019 +0530 scsi: cxgb4i: fix incorrect spelling "reveive" -> "receive" Signed-off-by: Varun Prakash Signed-off-by: Martin K. Petersen commit 74dea0bed79353ce2aadcb06406d3a9d28bae57b Author: Varun Prakash Date: Sun Apr 14 20:23:31 2019 +0530 scsi: libcxgbi: update route finding logic To support vlan and bridge devices first find route using ifindex 0, if route is not found through net device associated with input scsi host then find route using ifindex of net device. Signed-off-by: Varun Prakash Signed-off-by: Martin K. Petersen commit ffcd686b913eab35b7f447d8e373aae16d5fed34 Author: Varun Prakash Date: Sat Apr 13 20:21:54 2019 +0530 scsi: libcxgbi: find cxgbi device by MAC address If cxgbi_device_find_by_netdev() returns NULL then find cxgbi device by MAC address. Signed-off-by: Varun Prakash Signed-off-by: Martin K. Petersen commit 18c4f0a42b08ced680aa287a9cf3c94b6f9a752f Author: Ming Lei Date: Fri Apr 12 11:30:32 2019 +0800 scsi: core: don't hold device refcount in IO path scsi_device's refcount is always grabbed in IO path. Turns out it isn't necessary, because blk_queue_cleanup() will drain any in-flight IOs, then cancel timeout/requeue work, and SCSI's requeue_work is canceled too in __scsi_remove_device(). Also scsi_device won't go away until blk_cleanup_queue() is done. So don't hold the refcount in IO path, especially the refcount isn't required in IO path since blk_queue_enter() / blk_queue_exit() is introduced in the legacy block layer. Cc: Dongli Zhang Cc: James Smart Cc: Bart Van Assche Cc: linux-scsi@vger.kernel.org, Cc: Martin K . Petersen , Cc: Christoph Hellwig , Cc: James E . J . Bottomley , Cc: jianchao wang Reviewed-by: Bart Van Assche Reviewed-by: Hannes Reinecke Signed-off-by: Ming Lei Signed-off-by: Martin K. Petersen commit 1710ac17547ac8b5c44fbd74de41dee3fe26ee81 Author: Himanshu Madhani Date: Fri Apr 12 14:33:09 2019 -0700 scsi: qla2xxx: Fix read offset in qla24xx_load_risc_flash() This patch fixes regression introduced by commit f8f97b0c5b7f ("scsi: qla2xxx: Cleanups for NVRAM/Flash read/write path") where flash read/write routine cleanup left out code which resulted into checksum failure leading to use-after-free stack during driver load. Following stack trace is seen in the log file qla2xxx [0000:00:00.0]-0005: : QLogic Fibre Channel HBA Driver: 10.01.00.16-k. qla2xxx [0000:00:0b.0]-001d: : Found an ISP2532 irq 11 iobase 0x0000000000f47f03. qla2xxx [0000:00:0b.0]-00cd:8: ISP Firmware failed checksum. qla2xxx [0000:00:0b.0]-00cf:8: Setup chip ****FAILED****. qla2xxx [0000:00:0b.0]-00d6:8: Failed to initialize adapter - Adapter flags 2. ================================================================== BUG: KASAN: use-after-free in __list_del_entry_valid+0x15/0xd0 Read of size 8 at addr ffff8880ca05a490 by task modprobe/857 CPU: 0 PID: 857 Comm: modprobe Not tainted 5.1.0-rc1-dbg+ #4 Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 Call Trace: dump_stack+0x86/0xca print_address_description+0x6c/0x234 ? __list_del_entry_valid+0x15/0xd0 kasan_report.cold.3+0x1b/0x34 ? __list_del_entry_valid+0x15/0xd0 ? __kmem_cache_shutdown.cold.95+0xf5/0x176 ? __list_del_entry_valid+0x15/0xd0 __asan_load8+0x54/0x90 __list_del_entry_valid+0x15/0xd0 dma_pool_destroy+0x4f/0x260 ? dma_free_attrs+0xb4/0xd0 qla2x00_mem_free+0x529/0xcc0 [qla2xxx] ? kobject_put+0xdb/0x230 qla2x00_probe_one+0x2b5e/0x45f0 [qla2xxx] ? qla2xxx_pci_error_detected+0x210/0x210 [qla2xxx] ? match_held_lock+0x20/0x240 ? find_held_lock+0xca/0xf0 ? mark_held_locks+0x86/0xb0 ? _raw_spin_unlock_irqrestore+0x52/0x60 ? __pm_runtime_resume+0x5b/0xb0 ? lockdep_hardirqs_on+0x185/0x260 ? _raw_spin_unlock_irqrestore+0x52/0x60 ? trace_hardirqs_on+0x24/0x130 ? preempt_count_sub+0x13/0xc0 ? _raw_spin_unlock_irqrestore+0x3d/0x60 pci_device_probe+0x154/0x1e0 really_probe+0x17d/0x540 ? device_driver_attach+0x90/0x90 driver_probe_device+0x113/0x170 ? device_driver_attach+0x90/0x90 device_driver_attach+0x88/0x90 __driver_attach+0xb5/0x190 bus_for_each_dev+0xf8/0x160 ? subsys_dev_iter_exit+0x10/0x10 ? kasan_check_read+0x11/0x20 ? preempt_count_sub+0x13/0xc0 ? _raw_spin_unlock+0x2c/0x50 driver_attach+0x26/0x30 bus_add_driver+0x238/0x2f0 driver_register+0xd7/0x150 __pci_register_driver+0xd5/0xe0 ? 0xffffffffa06c8000 qla2x00_module_init+0x208/0x254 [qla2xxx] do_one_initcall+0xc0/0x3c9 ? trace_event_raw_event_initcall_finish+0x150/0x150 ? __kasan_kmalloc.constprop.5+0xc7/0xd0 ? kasan_unpoison_shadow+0x35/0x50 ? kasan_poison_shadow+0x2f/0x40 ? __asan_register_globals+0x5a/0x70 do_init_module+0x103/0x330 load_module+0x36df/0x3b70 ? fsnotify+0x611/0x640 ? module_frob_arch_sections+0x20/0x20 ? kernel_read+0x74/0xa0 ? kasan_check_write+0x14/0x20 ? kernel_read_file+0x25e/0x320 ? do_mmap+0x42c/0x6c0 __do_sys_finit_module+0x133/0x1c0 ? __do_sys_finit_module+0x133/0x1c0 ? __do_sys_init_module+0x210/0x210 ? fput_many+0x1b/0xc0 ? fput+0xe/0x10 ? do_syscall_64+0x14/0x210 ? entry_SYSCALL_64_after_hwframe+0x49/0xbe __x64_sys_finit_module+0x3e/0x50 do_syscall_64+0x72/0x210 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x7f8bd5c03219 Code: 00 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 47 fc 0c 00 f7 d8 64 89 01 48 RSP: 002b:00007fff9d11de98 EFLAGS: 00000246 ORIG_RAX: 0000000000000139 RAX: ffffffffffffffda RBX: 000055ef21596b50 RCX: 00007f8bd5c03219 RDX: 0000000000000000 RSI: 000055ef21596570 RDI: 0000000000000004 RBP: 000055ef21596570 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000004 R11: 0000000000000246 R12: 0000000000000000 R13: 000055ef21596c80 R14: 0000000000040000 R15: 000055ef21596b50 Allocated by task 857: save_stack+0x43/0xd0 __kasan_kmalloc.constprop.5+0xc7/0xd0 kasan_kmalloc+0x9/0x10 kmem_cache_alloc_trace+0x144/0x300 dma_pool_create+0xb5/0x3b0 qla2x00_mem_alloc+0xb98/0x1ad0 [qla2xxx] qla2x00_probe_one+0xe28/0x45f0 [qla2xxx] pci_device_probe+0x154/0x1e0 really_probe+0x17d/0x540 driver_probe_device+0x113/0x170 device_driver_attach+0x88/0x90 __driver_attach+0xb5/0x190 bus_for_each_dev+0xf8/0x160 driver_attach+0x26/0x30 bus_add_driver+0x238/0x2f0 driver_register+0xd7/0x150 __pci_register_driver+0xd5/0xe0 qla2x00_module_init+0x208/0x254 [qla2xxx] do_one_initcall+0xc0/0x3c9 do_init_module+0x103/0x330 load_module+0x36df/0x3b70 __do_sys_finit_module+0x133/0x1c0 __x64_sys_finit_module+0x3e/0x50 do_syscall_64+0x72/0x210 entry_SYSCALL_64_after_hwframe+0x49/0xbe Freed by task 857: save_stack+0x43/0xd0 __kasan_slab_free+0x139/0x190 kasan_slab_free+0xe/0x10 kfree+0xf0/0x2c0 dma_pool_destroy+0x24c/0x260 qla2x00_mem_free+0x529/0xcc0 [qla2xxx] qla2x00_free_device+0x167/0x1b0 [qla2xxx] qla2x00_probe_one+0x2b28/0x45f0 [qla2xxx] pci_device_probe+0x154/0x1e0 really_probe+0x17d/0x540 driver_probe_device+0x113/0x170 device_driver_attach+0x88/0x90 __driver_attach+0xb5/0x190 bus_for_each_dev+0xf8/0x160 driver_attach+0x26/0x30 bus_add_driver+0x238/0x2f0 driver_register+0xd7/0x150 __pci_register_driver+0xd5/0xe0 qla2x00_module_init+0x208/0x254 [qla2xxx] do_one_initcall+0xc0/0x3c9 do_init_module+0x103/0x330 load_module+0x36df/0x3b70 __do_sys_finit_module+0x133/0x1c0 __x64_sys_finit_module+0x3e/0x50 do_syscall_64+0x72/0x210 entry_SYSCALL_64_after_hwframe+0x49/0xbe The buggy address belongs to the object at ffff8880ca05a400 which belongs to the cache kmalloc-192 of size 192 The buggy address is located 144 bytes inside of 192-byte region [ffff8880ca05a400, ffff8880ca05a4c0) The buggy address belongs to the page: page:ffffea0003281680 count:1 mapcount:0 mapping:ffff88811bf03380 index:0x0 compound_mapcount: 0 flags: 0x4000000000010200(slab|head) raw: 4000000000010200 0000000000000000 0000000c00000001 ffff88811bf03380 raw: 0000000000000000 0000000080200020 00000001ffffffff 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff8880ca05a380: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc ffff8880ca05a400: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff8880ca05a480: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc ^ ffff8880ca05a500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff8880ca05a580: 00 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc ================================================================== Fixes: f8f97b0c5b7f ("scsi: qla2xxx: Cleanups for NVRAM/Flash read/write path") Reported-by: Bart Van Assche Tested-by: Bart Van Assche Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit a630bdc54f6d41a525694766168ddb9b8ffe8392 Author: Bart Van Assche Date: Thu Apr 11 14:53:25 2019 -0700 scsi: qla2xxx: Move qla2x00_set_fcport_state() from a .h into a .c file The qla2x00_set_fcport_state() function is not in the hot path so move its definition from a .h into a .c file. Cc: Himanshu Madhani Cc: Giridhar Malavali Reviewed-by: Johannes Thumshirn Acked-by: Himanshu Madhani Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit 81bcf1c5cf0ee875de3f3b0c930194dcf56969ee Author: Bart Van Assche Date: Thu Apr 11 14:53:24 2019 -0700 scsi: qla2xxx: Remove two superfluous casts Casting a void pointer into another pointer before assigning the pointer to a variable is not useful. Hence remove such casts. Cc: Himanshu Madhani Cc: Giridhar Malavali Reviewed-by: Johannes Thumshirn Acked-by: Himanshu Madhani Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit bb63e47b6f6832f1eb5be4207c65a6f268e01059 Author: Bart Van Assche Date: Thu Apr 11 14:53:23 2019 -0700 scsi: qla2xxx: Remove qla_tgt_cmd.data_work and qla_tgt_cmd.data_work_free The 'data_work' and 'data_work_free' member variables are set but never used. Hence remove both member variables. See also commit 6bcbb3174caa ("qla2xxx: Fix incorrect tcm_qla2xxx_free_cmd use during TMR ABORT (v2)"). Cc: Himanshu Madhani Cc: Giridhar Malavali Reviewed-by: Johannes Thumshirn Acked-by: Himanshu Madhani Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit 9dfb59a00881a5acbaafdb75ff98f518b9a382bf Author: Bart Van Assche Date: Thu Apr 11 14:53:22 2019 -0700 scsi: qla2xxx: Move the include directive The header file is included because of the readq() macro. Since that macro is only used in qla_nx.c, move that include statement into qla_nx.c. Cc: Himanshu Madhani Cc: Giridhar Malavali Reviewed-by: Johannes Thumshirn Acked-by: Himanshu Madhani Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit c20605edb38a1201d56ec83696b0b7a692a9f157 Author: Bart Van Assche Date: Thu Apr 11 14:53:21 2019 -0700 scsi: qla2xxx: Declare qla24xx_build_scsi_crc_2_iocbs() static Since qla24xx_build_scsi_crc_2_iocbs() is only used inside a single source file, declare this function static. Cc: Himanshu Madhani Cc: Giridhar Malavali Reviewed-by: Johannes Thumshirn Acked-by: Himanshu Madhani Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit c4dc7cd314398f03c1c6e5034b8913aeb40b2646 Author: Bart Van Assche Date: Thu Apr 11 14:53:20 2019 -0700 scsi: qla2xxx: Move the port_state_str[] definition from a .h to a .c file Reduce the size of the qla2xxx kernel module by moving an array definition from a .h into a .c file. Cc: Himanshu Madhani Cc: Giridhar Malavali Reviewed-by: Johannes Thumshirn Acked-by: Himanshu Madhani Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit 58e2753c1163ebce9be0c8938cac2f237716eda1 Author: Bart Van Assche Date: Thu Apr 11 14:53:19 2019 -0700 scsi: qla2xxx: Insert spaces where required Improve source code readability by inserting spaces where these are required according to the coding standard. This patch only inserts whitespace and does not make any other changes. Cc: Himanshu Madhani Cc: Giridhar Malavali Reviewed-by: Johannes Thumshirn Acked-by: Himanshu Madhani Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit 845bbb09b54c1f712d4b1c9a0500cc62d6215398 Author: Bart Van Assche Date: Thu Apr 11 14:53:18 2019 -0700 scsi: qla2xxx: Fix formatting of pointer types Improve source code readability by following the Linux kernel coding style for pointer types. This patch only changes whitespace. Cc: Himanshu Madhani Cc: Giridhar Malavali Reviewed-by: Johannes Thumshirn Acked-by: Himanshu Madhani Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit bd432bb53cffeae1ec3f77338d69bd89d9d45bb2 Author: Bart Van Assche Date: Thu Apr 11 14:53:17 2019 -0700 scsi: qla2xxx: Leave a blank line after declarations This patch improves readability of the qla2xxx source code. Cc: Himanshu Madhani Cc: Giridhar Malavali Reviewed-by: Johannes Thumshirn Acked-by: Himanshu Madhani Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit 2703eaaf4eae64a742fdcf888c8fcf4de567fb7d Author: Bart Van Assche Date: Thu Apr 11 14:53:16 2019 -0700 scsi: qla2xxx: Use tabs to indent code Most but not all code in the qla2xxx driver uses tabs for indentation. Make the qla2xxx code easier to read by using tabs consistently for indentation. This patch improves conformance with the Linux kernel coding style. Cc: Himanshu Madhani Cc: Giridhar Malavali Reviewed-by: Johannes Thumshirn Acked-by: Himanshu Madhani Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit f1b70d16389de2a6eac838ca378a8334d771bcfe Author: Herbert Xu Date: Mon Apr 1 20:54:30 2019 +0800 crypto: mxc-scc - Remove broken driver This driver has been completely broken since the very beginning because it doesn't even have a setkey function. This means that nobody has ever used it as it would crash during setkey. This patch removes this driver. Fixes: d293b640ebd5 ("crypto: mxc-scc - add basic driver for the...") Signed-off-by: Herbert Xu commit 45b72126022923ebdcd9f9b58af1ff47f73452fa Author: Neil Armstrong Date: Mon Mar 25 11:14:53 2019 +0100 arm64: dts: meson-g12a-x96-max: Enable USB Enable the USB2 and USB3 Host ports on the X96 Max Set-Top-Box. Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit 8ad7624453cf1c6788b726e51727a2c7c4f7abd3 Author: Neil Armstrong Date: Mon Mar 25 11:14:52 2019 +0100 arm64: dts: meson-g12a-u200: Enable USB Enable the USB2 OTG and USB3 Host ports on the S905D2 Reference Design. Signed-off-by: Neil Armstrong Acked-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit 41cc4551f45470c6052c84615af81873122cf158 Author: Neil Armstrong Date: Mon Mar 25 11:14:51 2019 +0100 arm64: dts: meson-g12a-sei510: Enable USB Enable the USB2 and USB3 Host ports on the SEI520 Set-Top-Box. Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit d1c023af198835833203f64160d3aefe1fbb45e8 Author: Neil Armstrong Date: Mon Mar 25 11:14:50 2019 +0100 arm64: dts: meson-g12a-sei510: Add ADC Key and BT support Add support for the : - ADC Touch key - Bluetooth Module on UART A Signed-off-by: Neil Armstrong Acked-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit aa77657b018fbd0eebfc78ee3f8b07fec4f5cda7 Author: Jerome Brunet Date: Mon Mar 18 11:04:51 2019 +0100 arm64: dts: meson-g12a-u200: add regulators Add system regulators for the S905D U200 reference design. Add some regulators. Still missing * VDD_EE (0.8V - PWM controlled) * VDD_CPU (PWM controlled) Signed-off-by: Jerome Brunet Signed-off-by: Neil Armstrong Acked-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit f075b344c6ca7730c910e7d2ba667e9dad652435 Merge: fe9fd2ef383c f7450bc6e768 Author: James Morris Date: Mon Apr 15 17:31:32 2019 -0700 Merge branch 'smack-for-5.2' of https://github.com/cschaufler/next-smack into next-smack From Casey: "There's one bug fix for IPv6 handling and two memory use improvements." commit cf451adfa392bd9ba36f31659dbe6a5010b46ef9 Author: Lukasz Luba Date: Mon Feb 18 19:21:09 2019 +0100 PM / devfreq: add tracing for scheduling work This patch add basic tracing of the devfreq workqueue and delayed work. It aims to capture changes of the polling intervals and device state. Signed-off-by: Lukasz Luba Reviewed-by: Chanwoo Choi Signed-off-by: MyungJoo Ham commit 1be0730f1dcd2971db4d2fe5497a20f438b837a7 Author: Lukasz Luba Date: Mon Feb 18 19:21:08 2019 +0100 trace: events: add devfreq trace event file The patch adds a new file for with trace events for devfreq framework. They are used for performance analysis of the framework. It also contains updates in MAINTAINERS file adding new entry for devfreq maintainers. Signed-off-by: Lukasz Luba Reviewed-by: Chanwoo Choi Signed-off-by: MyungJoo Ham commit 9173c5ceb035aab28171cd74dfddf27f47213b99 Author: Enric Balletbo i Serra Date: Thu Mar 21 19:14:38 2019 -0400 PM / devfreq: rk3399_dmc: Pass ODT and auto power down parameters to TF-A. Trusted Firmware-A (TF-A) for rk3399 implements a SiP call to get the on-die termination (ODT) and auto power down parameters from kernel, this patch adds the functionality to do this. Also, if DDR clock frequency is lower than the on-die termination (ODT) disable frequency this driver should disable the DDR ODT. Signed-off-by: Enric Balletbo i Serra Reviewed-by: Chanwoo Choi Signed-off-by: Gaël PORTAY Signed-off-by: MyungJoo Ham commit adfe3b76608ffe547af5a74415f15499b798f32a Author: Enric Balletbo i Serra Date: Thu Mar 21 19:14:36 2019 -0400 PM / devfreq: rockchip-dfi: Move GRF definitions to a common place. Some rk3399 GRF (Generic Register Files) definitions can be used for different drivers. Move these definitions to a common include so we don't need to duplicate these definitions. Signed-off-by: Enric Balletbo i Serra Acked-by: Chanwoo Choi Signed-off-by: Gaël PORTAY Signed-off-by: MyungJoo Ham commit fbb9c3c9a5acfdbcc21114de0ba16c7b488968f6 Author: Marek Szyprowski Date: Thu Mar 21 10:01:10 2019 +0100 PM / devfreq: exynos-bus: Suspend all devices on system shutdown Force all Exynos buses to safe operation points before doing the system reboot operation. There are board on which some aggressive power saving operation points are behind the capabilities of the bootloader to properly reset the hardware and boot the board. This way one can avoid board crash early after reboot. This fixes reboot issue on OdroidU3 board both with eMMC and SD boot. Reported-by: Markus Reichl Signed-off-by: Marek Szyprowski Acked-by: Chanwoo Choi Signed-off-by: MyungJoo Ham commit b53b0128052ffd687797d5f4deeb76327e7b5711 Author: Enric Balletbo i Serra Date: Wed Mar 13 13:22:53 2019 +0100 PM / devfreq: Fix static checker warning in try_then_request_governor The patch 23c7b54ca1cd: "PM / devfreq: Fix devfreq_add_device() when drivers are built as modules." leads to the following static checker warning: drivers/devfreq/devfreq.c:1043 governor_store() warn: 'governor' can also be NULL The reason is that the try_then_request_governor() function returns both error pointers and NULL. It should just return error pointers, so fix this by returning a ERR_PTR to the error intead of returning NULL. Fixes: 23c7b54ca1cd ("PM / devfreq: Fix devfreq_add_device() when drivers are built as modules.") Reported-by: Dan Carpenter Signed-off-by: Enric Balletbo i Serra Reviewed-by: Chanwoo Choi Signed-off-by: MyungJoo Ham commit bc658bef97a70094d4347faab7cabf2f5267d03f Author: Saravana Kannan Date: Mon Mar 11 15:36:30 2019 +0530 PM / devfreq: Restart previous governor if new governor fails to start If the new governor fails to start, switch back to old governor so that the devfreq state is not left in some weird limbo. [Myungjoo: assume fatal on revert failure and set df->governor to NULL] Signed-off-by: Sibi Sankar Signed-off-by: Saravana Kannan Reviewed-by: Chanwoo Choi Signed-off-by: MyungJoo Ham commit 1d1397c3ec1fd0bae330c376269a1c8c7e981a35 Author: Yangtao Li Date: Sat Feb 16 10:18:26 2019 -0500 PM / devfreq: tegra: remove unneeded variable This variable is not used after initialization, so remove it. And in order to unify the code style, move the location where the dev_get_drvdata is called by the way. Signed-off-by: Yangtao Li Reviewed-by: Chanwoo Choi Acked-by: Jon Hunter Signed-off-by: MyungJoo Ham commit 726409698feeac20de12fd107159573539b3e063 Author: Yangtao Li Date: Sat Feb 16 10:18:25 2019 -0500 PM / devfreq: rockchip-dfi: remove unneeded semicolon The semicolon is unneeded, so remove it. Signed-off-by: Yangtao Li Reviewed-by: Chanwoo Choi Signed-off-by: MyungJoo Ham commit e2794d74f1ec6d31e662b147d55041bd00277278 Author: Yangtao Li Date: Sat Feb 16 10:18:24 2019 -0500 PM / devfreq: rk3399_dmc: remove unneeded semicolon The semicolon is unneeded, so remove it. Signed-off-by: Yangtao Li Reviewed-by: Chanwoo Choi Signed-off-by: MyungJoo Ham commit 6d690f77932fe1f3ce5eb2de2c5ac16d33197608 Author: MyungJoo Ham Date: Mon Jan 21 11:11:07 2019 +0900 PM / devfreq: consistent indentation Following up with complaints on inconsistent indentation from Yangtao Li, this fixes indentation inconsistency. In principle, this tries to put arguments aligned to the left including the first argument except for the case where the first argument is on the far-right side. Signed-off-by: MyungJoo Ham Reviewed-by: Chanwoo Choi Acked-by: Yangtao Li commit 25846fa1cedada274b65ffd2413378290a60be47 Author: Yangtao Li Date: Sat Jan 19 11:04:53 2019 -0500 PM / devfreq: fix missing check of return value in devfreq_add_device() devm_kzalloc() could fail, so insert a check of its return value. And if it fails, returns -ENOMEM. Signed-off-by: Yangtao Li Signed-off-by: MyungJoo Ham commit a9487917ba6728dd618ae6d418a7f2197f1b4592 Author: Yangtao Li Date: Sat Jan 19 11:04:54 2019 -0500 PM / devfreq: fix mem leak in devfreq_add_device() 'devfreq' is malloced in devfreq_add_device() and should be freed in the error handling cases, otherwise it will cause memory leak. Signed-off-by: Yangtao Li Signed-off-by: MyungJoo Ham commit 0d00a239f70fa52eb23837ffacf990f8404ecace Author: Rob Herring Date: Wed Dec 5 13:50:22 2018 -0600 PM / devfreq: Use of_node_name_eq for node name comparisons Convert string compares of DT node names to use of_node_name_eq helper instead. This removes direct access to the node name pointer. For instances using of_node_cmp, this has the side effect of now using case sensitive comparisons. This should not matter for any FDT based system which all of these are. Cc: Chanwoo Choi Cc: MyungJoo Ham Cc: Kyungmin Park Cc: Kukjin Kim Cc: 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: Rob Herring Signed-off-by: MyungJoo Ham commit 432bc230700f86801cffa5e159e05dea6229f722 Merge: dcdecdcfe1fc ee2c46f35390 Author: David S. Miller Date: Mon Apr 15 17:22:02 2019 -0700 Merge branch 'hsr-next' Murali Karicheri says: ==================== net: hsr: updates from internal tree This series picks commit from our internal kernel tree. Patch 1/3 fixes a file name issue introduced in my previous series. History: v2: fixed patch 3/3 by moving stats update to inside hsr_forward_skb() ==================== Signed-off-by: David S. Miller commit ee2c46f353901a41513ca0776d6bb6e6fd39cb98 Author: Murali Karicheri Date: Mon Apr 15 11:36:03 2019 -0400 net: hsr: add tx stats for master interface Add tx stats to hsr interface. Without this ifconfig for hsr interface doesn't show tx packet stats. Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller commit 3271273388fb14a4e8c582a8c7eaf5ef958291b1 Author: Murali Karicheri Date: Mon Apr 15 11:36:02 2019 -0400 net: hsr: fix debugfs path to support multiple interfaces Fix the path of hsr debugfs root directory to use the net device name so that it can work with multiple interfaces. While at it, also fix some typos. Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller commit 9c5f8a19b2de2860d4b7764204c52832ac0f4440 Author: Murali Karicheri Date: Mon Apr 15 11:36:01 2019 -0400 net: hsr: fix naming of file and functions Fix the file name and functions to match with existing implementation. Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller commit dcdecdcfe1fc39ded8590aed2fe84d62f14b2392 Author: Heiner Kallweit Date: Fri Apr 12 20:47:03 2019 +0200 net: phy: switch drivers to use dynamic feature detection Recently genphy_read_abilities() has been added that dynamically detects clause 22 PHY abilities. I *think* this detection should work with all supported PHY's, at least for the ones with basic features sets, i.e. PHY_BASIC_FEATURES and PHY_GBIT_FEATURES. So let's remove setting these features explicitly and rely on phylib feature detection. I don't have access to most of these PHY's, therefore I'd appreciate regression testing. v2: - make the feature constant a comment so that readers know which features are supported by the respective PHY Signed-off-by: Heiner Kallweit Tested-by: Andrew Lunn Signed-off-by: David S. Miller commit 038a9c3d1e42420943c60f879fdb00b62f207f9c Author: Maxim Sloyko Date: Mon Apr 15 15:28:07 2019 -0700 hwmon: (pmbus/isl68137) Add driver for Intersil ISL68137 PWM Controller Intersil ISL68137 is a digital output 7-phase configurable PWM controller with an AVSBus interface. Signed-off-by: Maxim Sloyko Signed-off-by: Robert Lippert Signed-off-by: Patrick Venture Signed-off-by: Guenter Roeck commit 991d679951f0df27db170036080746b84115e1e7 Author: krzysztof.adamski@nokia.com Date: Mon Apr 15 14:44:05 2019 -0700 pmbus: support for custom sysfs attributes This patch makes it possible to pass custom struct attribute_group array via the pmbus_driver_info struct so that those can be added to the attribute groups passed to hwmon_device_register_with_groups(). This makes it possible to register custom sysfs attributes by PMBUS drivers similar to how you can do this with most other busses/classes. Signed-off-by: Krzysztof Adamski Signed-off-by: Guenter Roeck commit 9f00995e4eb293679597d76462fec2ce152e3500 Author: Guenter Roeck Date: Mon Apr 15 13:23:48 2019 -0700 hwmon: Add support for samples attributes Add support for the new samples attributes to the hwmon core. Cc: Krzysztof Adamski Cc: Nicolin Chen Acked-by: Nicolin Chen Signed-off-by: Guenter Roeck commit 5d9e8b3f809f1c12e32fea7061ad2319d2848600 Author: Adamski, Krzysztof (Nokia - PL/Wroclaw) Date: Sun Apr 14 21:59:19 2019 +0000 hwmon: (lm25066) Support SAMPLES_FOR_AVG register Manufacturer specific SAMPLES_FOR_AVG register allows setting the number of samples used in computing the average values (PMBUS_VIRT_READ_*_AVG). The number we write is an exponent of base 2 of the number of samples so for example writing 3 will result in 8 samples average. Signed-off-by: Krzysztof Adamski Signed-off-by: Guenter Roeck commit bfe033a048f7ce486e01f3ef5a7a24618088af44 Author: Adamski, Krzysztof (Nokia - PL/Wroclaw) Date: Sun Apr 14 21:58:40 2019 +0000 hwmon: Document the samples attributes Document new ABI attributes: {in,power,curr,temp}_samples and samples. Signed-off-by: Krzysztof Adamski Signed-off-by: Guenter Roeck commit 49c4455dccf241f537758a057861243f81e3ca5d Author: Adamski, Krzysztof (Nokia - PL/Wroclaw) Date: Sun Apr 14 21:58:18 2019 +0000 hwmon: (pmbus) Introduce PMBUS_VIRT_*_SAMPLES registers Those virtual registers can be used to export manufacturer specific functionality for controlling the number of samples for average values reported by the device. Signed-off-by: Krzysztof Adamski Signed-off-by: Guenter Roeck commit 8e742fc2e25ae6c2d2734a4656107ae745263794 Author: Patrick Venture Date: Mon Apr 15 07:17:28 2019 -0700 hwmon: (ir38064) delete incorrect line Delete line indicating the datasheet was not publicly available. This line was originally present as a default during the write-up and was subsequently not removed once the datasheet was located. Signed-off-by: Patrick Venture Signed-off-by: Guenter Roeck commit 3cf10282821a3832eca6c78887e3e69a61c5feda Author: Guenter Roeck Date: Fri Apr 5 12:39:26 2019 -0700 hwmon: (pmbus_core) Replace S_ with octal values Replace S_ with octal values. The conversion was done automatically with coccinelle. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches/. This patch does not introduce functional changes. It was verified by compiling the old and new files and comparing text and data sizes. Signed-off-by: Guenter Roeck commit 00669d196c616c0a9970a3a9ee66efab6868df0c Author: Maxim Sloyko Date: Fri Apr 12 13:37:56 2019 -0700 hwmon: (pmbus/ir38064) Add driver for Infineon IR38064 Voltage Regulator Add the pmbus driver for the Infineon ir38064 voltage regulator. VOUT_MODE is not supported by the device. The driver fakes linear16 mode with exponent value -8. The device supports VOUT_PEAK, IOUT_PEAK, and TEMPERATURE_PEAK, however this driver does not enable them. Signed-off-by: Maxim Sloyko Signed-off-by: Patrick Venture Signed-off-by: Guenter Roeck commit c49b7b3981f5c39b9b50dc65e32d3c6a553825de Author: Patrick Venture Date: Fri Apr 12 09:27:42 2019 -0700 hwmon: (ir35221) fix company name Fix the company name from "Infinion" to "Infineon." Signed-off-by: Patrick Venture Signed-off-by: Guenter Roeck commit 841cf6767bf6eb047fb8ede6c2a2d50976ec5ec9 Author: Robin Murphy Date: Fri Apr 12 15:05:23 2019 +0100 hwmon: (pwm-fan) Report probe errors consistently Printing the error code for a failure provides a head-start for debugging, since it's often sufficient to pinpoint the origin of the failure. We already do this for some probe-failure messages, so let's make the rest of them consistent. Signed-off-by: Robin Murphy Signed-off-by: Guenter Roeck commit 6b1ec4789fb17890a7f95e72670a9393fd9f8c8f Author: Stefan Wahren Date: Thu Apr 11 15:30:11 2019 +0200 hwmon: (pwm-fan) Add RPM support via external interrupt This adds RPM support to the pwm-fan driver in order to use with fancontrol/pwmconfig. This feature is intended for fans with a tachometer output signal, which generate a defined number of pulses per revolution. Signed-off-by: Stefan Wahren Reviewed-by: Robin Murphy Signed-off-by: Robin Murphy [groeck: Drop unused 'devattr' variable] Signed-off-by: Guenter Roeck commit 285d7483aa3323c90891e26b73a0c9d9cc5f53e4 Author: Stefan Wahren Date: Thu Apr 11 15:30:10 2019 +0200 Documentation: pwm-fan: Add description for RPM support This adds a short description for the new RPM support of the pwm-fan driver. Signed-off-by: Stefan Wahren Reviewed-by: Robin Murphy Signed-off-by: Guenter Roeck commit c7366e951469b542fa16ca94ac6d09ac2206d11a Author: Stefan Wahren Date: Thu Apr 11 15:30:09 2019 +0200 dt-bindings: hwmon: (pwm-fan) Add tachometer interrupt This adds the tachometer interrupt to the pwm-fan binding, which is necessary for RPM support. Signed-off-by: Stefan Wahren Reviewed-by: Rob Herring Reviewed-by: Robin Murphy Signed-off-by: Guenter Roeck commit c112d75840fb23e481f3d0db5c8e830391664078 Author: Jean Delvare Date: Wed Apr 10 12:56:35 2019 +0200 hwmon: OCC drivers are ARM-only These drivers are for a BMC inside PowerPC servers. The BMC runs on ARM hardware, so only propose the drivers on this architecture, unless build-testing. Signed-off-by: Jean Delvare Cc: Eddie James Cc: Guenter Roeck Reviewed-by: Eddie James Signed-off-by: Guenter Roeck commit 5679ed99065372bc62c57a895950914e1c0fb9e0 Author: Jean Delvare Date: Wed Apr 10 12:47:26 2019 +0200 hwmon: (occ) Move common code to a separate module Instead of duplicating the common code into the 2 (binary) drivers, move the common code to a separate module. This is cleaner. Signed-off-by: Jean Delvare Cc: Eddie James Cc: Guenter Roeck Reviewed-by: Eddie James Tested-by: Eddie James Signed-off-by: Guenter Roeck commit 14b97ba5c20056102b3dd22696bf17b057e60976 Author: Guenter Roeck Date: Fri Apr 5 08:53:08 2019 -0700 hwmon: (vt1211) Use request_muxed_region for Super-IO accesses Super-IO accesses may fail on a system with no or unmapped LPC bus. Also, other drivers may attempt to access the LPC bus at the same time, resulting in undefined behavior. Use request_muxed_region() to ensure that IO access on the requested address space is supported, and to ensure that access by multiple drivers is synchronized. Fixes: 2219cd81a6cd ("hwmon/vt1211: Add probing of alternate config index port") Signed-off-by: Guenter Roeck commit e95fd518d05bfc087da6fcdea4900a57cfb083bd Author: Guenter Roeck Date: Fri Apr 5 08:44:41 2019 -0700 hwmon: (w83627hf) Use request_muxed_region for Super-IO accesses Super-IO accesses may fail on a system with no or unmapped LPC bus. Also, other drivers may attempt to access the LPC bus at the same time, resulting in undefined behavior. Use request_muxed_region() to ensure that IO access on the requested address space is supported, and to ensure that access by multiple drivers is synchronized. Fixes: b72656dbc491 ("hwmon: (w83627hf) Stop using globals for I/O port numbers") Signed-off-by: Guenter Roeck commit d6410408ad2a798c4cc685252c1baa713be0ad69 Author: Guenter Roeck Date: Thu Apr 4 11:28:37 2019 -0700 hwmon: (smsc47m1) Use request_muxed_region for Super-IO accesses Super-IO accesses may fail on a system with no or unmapped LPC bus. Also, other drivers may attempt to access the LPC bus at the same time, resulting in undefined behavior. Use request_muxed_region() to ensure that IO access on the requested address space is supported, and to ensure that access by multiple drivers is synchronized. Fixes: 8d5d45fb1468 ("I2C: Move hwmon drivers (2/3)") Reported-by: Kefeng Wang Reported-by: John Garry Cc: John Garry Acked-by: John Garry Signed-off-by: Guenter Roeck commit 19f7b17630f22213d6529ed4cfa728d98d039505 Author: Guenter Roeck Date: Mon Mar 11 10:15:45 2019 -0700 hwmon: (adm1029) Use permission specific [SENSOR_][DEVICE_]ATTR variants Use [SENSOR_][DEVICE_]ATTR[_2]_{RO,RW,WO} to simplify the source code, to improve readbility, and to reduce the chance of inconsistencies. Also replace any remaining S_ in the driver with octal values. The conversion was done automatically with coccinelle. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches/. This patch does not introduce functional changes. It was verified by compiling the old and new files and comparing text and data sizes. Cc: Corentin Labbe Signed-off-by: Guenter Roeck commit 502a92ff25b3651e19c4f358643014e96922ebbf Author: Guenter Roeck Date: Tue Jan 22 15:25:47 2019 -0800 hwmon: (w83627hf) Use permission specific SENSOR[_DEVICE]_ATTR variants Use SENSOR[_DEVICE]_ATTR[_2]_{RO,RW,WO} to simplify the source code, to improve readbility, and to reduce the chance of inconsistencies. Also replace any remaining S_ in the driver with octal values. The conversion was done automatically with coccinelle. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches/. This patch does not introduce functional changes. It was verified by compiling the old and new files and comparing text and data sizes. Signed-off-by: Guenter Roeck commit 96c6f81afaa12bb23104293689480fb55e6cfa12 Author: Guenter Roeck Date: Tue Jan 22 15:13:02 2019 -0800 hwmon: (smsc47m1) Use permission specific SENSOR[_DEVICE]_ATTR variants Use SENSOR[_DEVICE]_ATTR[_2]_{RO,RW,WO} to simplify the source code, to improve readbility, and to reduce the chance of inconsistencies. Also replace any remaining S_ in the driver with octal values. The conversion was done automatically with coccinelle. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches/. This patch does not introduce functional changes. It was verified by compiling the old and new files and comparing text and data sizes. Signed-off-by: Guenter Roeck commit f2bec7ea6c494669b4f9d79db581cb92f30e3b4c Author: Guenter Roeck Date: Tue Jan 22 14:46:16 2019 -0800 hwmon: (smsc47m192) Use permission specific SENSOR[_DEVICE]_ATTR variants Use SENSOR[_DEVICE]_ATTR[_2]_{RO,RW,WO} to simplify the source code, to improve readbility, and to reduce the chance of inconsistencies. Also replace any remaining S_ in the driver with octal values. The conversion was done automatically with coccinelle. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches/. This patch does not introduce functional changes. It was verified by compiling the old and new files and comparing text and data sizes. Signed-off-by: Guenter Roeck commit 08ea5a87466b93d4b1b17369f9008fd9b2f8032c Author: Guenter Roeck Date: Tue Jan 22 14:30:27 2019 -0800 hwmon: (vt8231) Use permission specific SENSOR[_DEVICE]_ATTR variants Use SENSOR[_DEVICE]_ATTR[_2]_{RO,RW,WO} to simplify the source code, to improve readbility, and to reduce the chance of inconsistencies. Also replace any remaining S_ in the driver with octal values. The conversion was done automatically with coccinelle. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches/. This patch does not introduce functional changes. It was verified by compiling the old and new files and comparing text and data sizes. Cc: Roger Lucas Signed-off-by: Guenter Roeck commit 60a9c3f150df31c45d3a97a7393d0571b433815a Author: Guenter Roeck Date: Tue Jan 22 14:28:50 2019 -0800 hwmon: (sis5595) Use permission specific SENSOR[_DEVICE]_ATTR variants Use SENSOR[_DEVICE]_ATTR[_2]_{RO,RW,WO} to simplify the source code, to improve readbility, and to reduce the chance of inconsistencies. Also replace any remaining S_ in the driver with octal values. The conversion was done automatically with coccinelle. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches/. This patch does not introduce functional changes. It was verified by compiling the old and new files and comparing text and data sizes. Signed-off-by: Guenter Roeck commit 24f9ec1fa329b478963f72c2e8be4f16d80d4939 Author: Guenter Roeck Date: Tue Jan 22 14:16:57 2019 -0800 hwmon: (menf21bmc_hwmon) Use permission specific SENSOR[_DEVICE]_ATTR variants Use SENSOR[_DEVICE]_ATTR[_2]_{RO,RW,WO} to simplify the source code, to improve readbility, and to reduce the chance of inconsistencies. Also replace any remaining S_ in the driver with octal values. The conversion was done automatically with coccinelle. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches/. This patch does not introduce functional changes. It was verified by compiling the old and new files and comparing text and data sizes. Cc: Andreas Werner Signed-off-by: Guenter Roeck commit 9d5bc0906cc1dc816f5b26e179b6cf764a2ef259 Author: Guenter Roeck Date: Tue Jan 22 14:12:25 2019 -0800 hwmon: (via686a) Use permission specific SENSOR[_DEVICE]_ATTR variants Use SENSOR[_DEVICE]_ATTR[_2]_{RO,RW,WO} to simplify the source code, to improve readbility, and to reduce the chance of inconsistencies. Also replace any remaining S_ in the driver with octal values. The conversion was done automatically with coccinelle. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches/. This patch does not introduce functional changes. It was verified by compiling the old and new files and comparing text and data sizes. Signed-off-by: Guenter Roeck commit 7bc85e492158c157bf7d3c8970fa881dff6052ae Author: Guenter Roeck Date: Tue Jan 22 10:40:33 2019 -0800 hwmon: (lm85) Use permission specific SENSOR[_DEVICE]_ATTR variants Use SENSOR[_DEVICE]_ATTR[_2]_{RO,RW,WO} to simplify the source code, to improve readbility, and to reduce the chance of inconsistencies. Also replace any remaining S_ in the driver with octal values. The conversion was done automatically with coccinelle. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches/. This patch does not introduce functional changes. It was verified by compiling the old and new files and comparing text and data sizes. Signed-off-by: Guenter Roeck commit e7655cfd39d821fc5cfce3f335173cce98f4ebb7 Author: Guenter Roeck Date: Tue Jan 22 10:07:16 2019 -0800 hwmon: (lm78) Use permission specific SENSOR[_DEVICE]_ATTR variants Use SENSOR[_DEVICE]_ATTR[_2]_{RO,RW,WO} to simplify the source code, to improve readbility, and to reduce the chance of inconsistencies. Also replace any remaining S_ in the driver with octal values. The conversion was done automatically with coccinelle. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches/. This patch does not introduce functional changes. It was verified by compiling the old and new files and comparing text and data sizes. Signed-off-by: Guenter Roeck commit f6c93aeb0aad925fed1322f92af90501c5b008c6 Author: Guenter Roeck Date: Mon Jan 21 20:47:57 2019 -0800 hwmon: (lm87) Use permission specific SENSOR[_DEVICE]_ATTR variants Use SENSOR[_DEVICE]_ATTR[_2]_{RO,RW,WO} to simplify the source code, to improve readbility, and to reduce the chance of inconsistencies. Also replace any remaining S_ in the driver with octal values. The conversion was done automatically with coccinelle. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches/. This patch does not introduce functional changes. It was verified by compiling the old and new files and comparing text and data sizes. Signed-off-by: Guenter Roeck commit 8e757e15a509b8623fd02f18c65eedcc1ed9fed3 Author: Guenter Roeck Date: Mon Jan 21 20:37:22 2019 -0800 hwmon: (adm1031) Use permission specific SENSOR[_DEVICE]_ATTR variants Use SENSOR[_DEVICE]_ATTR[_2]_{RO,RW,WO} to simplify the source code, to improve readbility, and to reduce the chance of inconsistencies. Also replace any remaining S_ in the driver with octal values. The conversion was done automatically with coccinelle. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches/. This patch does not introduce functional changes. It was verified by compiling the old and new files and comparing text and data sizes. Signed-off-by: Guenter Roeck commit 29168f30e33b27cfbd3b6da4df59b1a20ac62b63 Author: Guenter Roeck Date: Mon Jan 21 20:26:58 2019 -0800 hwmon: (thmc50) Use permission specific SENSOR[_DEVICE]_ATTR variants Use SENSOR[_DEVICE]_ATTR[_2]_{RO,RW,WO} to simplify the source code, to improve readbility, and to reduce the chance of inconsistencies. Also replace any remaining S_ in the driver with octal values. The conversion was done automatically with coccinelle. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches/. This patch does not introduce functional changes. It was verified by compiling the old and new files and comparing text and data sizes. Signed-off-by: Guenter Roeck commit 7352ae8d00118496b8346ecbc82fbc785077894a Author: Guenter Roeck Date: Mon Jan 21 20:18:52 2019 -0800 hwmon: (adm9240) Use permission specific SENSOR[_DEVICE]_ATTR variants Use SENSOR[_DEVICE]_ATTR[_2]_{RO,RW,WO} to simplify the source code, to improve readbility, and to reduce the chance of inconsistencies. Also replace any remaining S_ in the driver with octal values. The conversion was done automatically with coccinelle. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches/. This patch does not introduce functional changes. It was verified by compiling the old and new files and comparing text and data sizes. Signed-off-by: Guenter Roeck commit 7ded2315ffe2b56628b199df4d14e7ae0535cf8f Author: Guenter Roeck Date: Mon Jan 21 18:34:27 2019 -0800 hwmon: (adm1026) Use permission specific SENSOR[_DEVICE]_ATTR variants Use SENSOR[_DEVICE]_ATTR[_2]_{RO,RW,WO} to simplify the source code, to improve readbility, and to reduce the chance of inconsistencies. Also replace any remaining S_ in the driver with octal values. The conversion was done automatically with coccinelle. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches/. This patch does not introduce functional changes. It was verified by compiling the old and new files and comparing text and data sizes. Signed-off-by: Guenter Roeck commit 66efcd2b6a0df124a14956b3cafce707974ccd64 Author: Guenter Roeck Date: Mon Jan 21 18:33:47 2019 -0800 hwmon: (adm1025) Use permission specific SENSOR[_DEVICE]_ATTR variants Use SENSOR[_DEVICE]_ATTR[_2]_{RO,RW,WO} to simplify the source code, to improve readbility, and to reduce the chance of inconsistencies. Also replace any remaining S_ in the driver with octal values. The conversion was done automatically with coccinelle. The semantic patches and the scripts used to generate this commit log are available at https://github.com/groeck/coccinelle-patches/. This patch does not introduce functional changes. It was verified by compiling the old and new files and comparing text and data sizes. Signed-off-by: Guenter Roeck commit 8c0826756744c0ac1df600a5e4cca1a341b13101 Author: Guenter Roeck Date: Thu Apr 4 11:22:42 2019 -0700 hwmon: (smsc47b397) Use request_muxed_region for Super-IO accesses Super-IO accesses may fail on a system with no or unmapped LPC bus. Also, other drivers may attempt to access the LPC bus at the same time, resulting in undefined behavior. Use request_muxed_region() to ensure that IO access on the requested address space is supported, and to ensure that access by multiple drivers is synchronized. Fixes: 8d5d45fb1468 ("I2C: Move hwmon drivers (2/3)") Reported-by: Kefeng Wang Reported-by: John Garry Cc: John Garry Acked-by: John Garry Signed-off-by: Guenter Roeck commit 755a9b0f8aaa5639ba5671ca50080852babb89ce Author: Guenter Roeck Date: Thu Apr 4 11:16:20 2019 -0700 hwmon: (pc87427) Use request_muxed_region for Super-IO accesses Super-IO accesses may fail on a system with no or unmapped LPC bus. Also, other drivers may attempt to access the LPC bus at the same time, resulting in undefined behavior. Use request_muxed_region() to ensure that IO access on the requested address space is supported, and to ensure that access by multiple drivers is synchronized. Fixes: ba224e2c4f0a7 ("hwmon: New PC87427 hardware monitoring driver") Reported-by: Kefeng Wang Reported-by: John Garry Cc: John Garry Acked-by: John Garry Signed-off-by: Guenter Roeck commit 73e6ff71a7ea924fb7121d576a2d41e3be3fc6b5 Author: Guenter Roeck Date: Thu Apr 4 10:52:43 2019 -0700 hwmon: (f71805f) Use request_muxed_region for Super-IO accesses Super-IO accesses may fail on a system with no or unmapped LPC bus. Unable to handle kernel paging request at virtual address ffffffbffee0002e pgd = ffffffc1d68d4000 [ffffffbffee0002e] *pgd=0000000000000000, *pud=0000000000000000 Internal error: Oops: 94000046 [#1] PREEMPT SMP Modules linked in: f71805f(+) hwmon CPU: 3 PID: 1659 Comm: insmod Not tainted 4.5.0+ #88 Hardware name: linux,dummy-virt (DT) task: ffffffc1f6665400 ti: ffffffc1d6418000 task.ti: ffffffc1d6418000 PC is at f71805f_find+0x6c/0x358 [f71805f] Also, other drivers may attempt to access the LPC bus at the same time, resulting in undefined behavior. Use request_muxed_region() to ensure that IO access on the requested address space is supported, and to ensure that access by multiple drivers is synchronized. Fixes: e53004e20a58e ("hwmon: New f71805f driver") Reported-by: Kefeng Wang Reported-by: John Garry Cc: John Garry Acked-by: John Garry Signed-off-by: Guenter Roeck commit df6b8c70c2109d2221592954aacd67a2ad2f696e Author: Guenter Roeck Date: Thu Apr 4 08:00:57 2019 -0700 hwmon: (ina2xx) Fix build warning The following build warning is seen if CONFIG_OF is disabled. drivers/hwmon/ina2xx.c:510:34: warning: ‘ina2xx_of_match’ defined but not used Mark ina2xx_of_match as __maybe_unused to fix the problem. Signed-off-by: Guenter Roeck commit 8c71c7b943d4c12994e4e3eb2d50dfb3681e0c8d Author: Guenter Roeck Date: Thu Apr 4 07:59:01 2019 -0700 hwmon: (lm63) Fix build warning The following build warning is seen if CONFIG_OF is disabled. drivers/hwmon/lm63.c:1156:34: warning: ‘lm63_of_match’ defined but not used Mark lm63_of_match as __maybe_unused to fix the problem. Signed-off-by: Guenter Roeck commit 0e09e9f939cb1f16391d5f86c9d39f19c23923a5 Author: Guenter Roeck Date: Thu Apr 4 07:52:05 2019 -0700 hwmon: lm95245: Fix build warnings The following build warning is seen if CONFIG_OF is disabled. drivers/hwmon/lm95245.c:626:34: warning: ‘lm95245_of_match’ defined but not used Mark lm95245_of_match as __maybe_unused to fix the problem. The following build warning is always seen. drivers/hwmon/lm95245.c:95:17: warning: ‘lm95245_reg_address’ defined but not used The array is no longer used since commit c0a4b9ec1b43 ("hwmon: (lm95245) Use new hwmon registration API"). Remove it. Signed-off-by: Guenter Roeck commit bd7d56a709004b35ce17854d44b96466cc334613 Author: Guenter Roeck Date: Thu Apr 4 07:50:26 2019 -0700 hwmon: (tmp421) Fix build warning The following build warning is seen if CONFIG_OF is disabled. drivers/hwmon/tmp421.c:73:34: warning: ‘tmp421_of_match’ defined but not used Mark tmp421_of_match as __maybe_unused to fix the problem. Signed-off-by: Guenter Roeck commit 1cbee124dfd4d4388226d995a9c709a50b28f797 Author: Guenter Roeck Date: Thu Apr 4 07:48:55 2019 -0700 hwmon: (stts751) Fix build warning The following build warning is seen if CONFIG_OF is disabled. drivers/hwmon/stts751.c:88:34: warning: ‘stts751_of_match’ defined but not used Mark stts751_of_match as __maybe_unused to fix the problem. Signed-off-by: Guenter Roeck commit 969c45b98b1d862148cd8c5244077a99b0b0eec5 Author: Guenter Roeck Date: Thu Apr 4 07:47:04 2019 -0700 hwmon: (max6621) Fix build warning The following build warning is seen if CONFIG_OF is disabled. drivers/hwmon/max6621.c:573:34: warning: ‘max6621_of_match’ defined but not used Mark max6621_of_match as __maybe_unused to fix the problem. Signed-off-by: Guenter Roeck commit 20b497ab9c38e89e3a0aeaf469c90682520fb095 Author: Guenter Roeck Date: Thu Apr 4 07:44:40 2019 -0700 hwmon: (lm85) Fix build warning The following build warning is seen if CONFIG_OF is disabled. drivers/hwmon/lm85.c:1645:34: warning: ‘lm85_of_match’ defined but not used Mark lm85_of_match as __maybe_unused to ix the problem. Signed-off-by: Guenter Roeck commit 2720ce7e46e1c851890ddd9e94c8548230a13280 Author: Guenter Roeck Date: Thu Apr 4 06:44:14 2019 -0700 hwmon: (max6650) Fix build warning If CONFIG_OF is not enabled, the following build warning is observed. drivers/hwmon/max6650.c:137:34: warning: ‘max6650_dt_match’ defined but not used Mark max6650_dt_match as __maybe_unused to fix the problem. Signed-off-by: Guenter Roeck commit f198a8697dc5192cd3b02b5f941c8d184fa1337c Author: Guenter Roeck Date: Thu Apr 4 06:42:50 2019 -0700 hwmon: (max6697) Fix build warning If CONFIG_OF is not enabled, the following build warning is observed. drivers/hwmon/max6697.c:653:34: warning: ‘max6697_of_match’ defined but not used Mark max6697_of_match as __maybe_unused to fix the problem. Signed-off-by: Guenter Roeck commit 32c2d40252454e539b91d37776869ed69c23b2e8 Author: Guenter Roeck Date: Thu Apr 4 06:41:19 2019 -0700 hwmon: (ina209) Fix build warning If CONFIG_OF is not enabled, the following build warning is observed. drivers/hwmon/ina209.c:590:34: warning: ‘ina209_of_match’ defined but not used Mark ina209_of_match as __maybe_unused to fix the problem. Signed-off-by: Guenter Roeck commit ffa83e784745f2c7ead0b9435564a9189eaa592f Author: Guenter Roeck Date: Thu Apr 4 06:40:00 2019 -0700 hwmon: (lm75) Fix build warning If CONFIG_OF is not enabled, the following build warning is observed. drivers/hwmon/lm75.c:446:34: warning: ‘lm75_of_match’ defined but not used Mark lm75_of_match as __maybe_unused to fix the problem. Signed-off-by: Guenter Roeck commit acb614a393b51c54df52faff5bf69f6f58e396cd Author: Guenter Roeck Date: Thu Apr 4 06:38:17 2019 -0700 hwmon: (w83773g) Fix build warning If CONFIG_OF is not enabled, the following build warning is observed. drivers/hwmon/w83773g.c:47:34: warning: ‘w83773_of_match’ defined but not used Mark w83773_of_match as __maybe_unused to fix the problem. Signed-off-by: Guenter Roeck commit 0337dd9b4ac6a395efa9635649fa0f1f7094a16a Author: Guenter Roeck Date: Thu Apr 4 06:36:51 2019 -0700 hwmon: (ads7828) Fix build warning If CONFIG_OF is not enabled, the following build warning is observed. drivers/hwmon/ads7828.c:203:34: warning: ‘ads7828_of_match’ defined but not used Mark ads7828_of_match as __maybe_unused to fix the problem. Signed-off-by: Guenter Roeck commit a62fe340e27184e929b453f6b5097a2f7c9c160c Author: Guenter Roeck Date: Thu Apr 4 06:35:28 2019 -0700 hwmon: (hih6130) Fix build warning If CONFIG_OF is not enabled, the following build warning is observed. drivers/hwmon/hih6130.c:255:34: warning: ‘hih6130_of_match’ defined but not used Mark hih6130_of_match as __maybe_unused to fix the problem. Signed-off-by: Guenter Roeck commit fe339dbf295a5da2b316e1f8e762e02fae000f50 Author: Guenter Roeck Date: Thu Apr 4 06:33:42 2019 -0700 hwmon: (adt7475) Fix build warning If CONFIG_OF is not enabled, the following build warning is observed. drivers/hwmon/adt7475.c:171:34: warning: ‘adt7475_of_match’ defined but not used Mark adt7475_of_match as __maybe_unused to fix the problem. Signed-off-by: Guenter Roeck commit eb3cb6d5bd51503f646c8a53bc227f20b23f64a5 Author: Guenter Roeck Date: Thu Apr 4 06:29:51 2019 -0700 hwmon: (ads1015) Fix build warning If CONFIG_OF is not enabled, the following build warning is observed. drivers/hwmon/ads1015.c:310:34: warning: ‘ads1015_of_match’ defined but not used Marking ads1015_of_match as __maybe_unused fixes the problem. Signed-off-by: Guenter Roeck commit 20894216d8b2217b4367bfe169b620b24cbad22f Author: Guenter Roeck Date: Thu Apr 4 06:28:34 2019 -0700 hwmon: (tmp103) Fix build warning If CONFIG_OF is not enabled, the following build warning is observed. drivers/hwmon/tmp103.c:173:34: warning: ‘tmp103_of_match’ defined but not used Marking tmp103_of_match as __maybe_unused fixes the problem. Signed-off-by: Guenter Roeck commit 07af9a4a6d151821f2697ca7397deb8a6f2bed5e Author: Guenter Roeck Date: Thu Apr 4 06:27:26 2019 -0700 hwmon: (tmp102) Fix build warning If CONFIG_OF is not enabled, the following build warning is observed. drivers/hwmon/tmp102.c:324:34: warning: ‘tmp102_of_match’ defined but not used Mark it as __maybe_unused to fix the problem. Signed-off-by: Guenter Roeck commit 0718298685f5fc643cbdedec06be0ab505da2b8c Author: Guenter Roeck Date: Thu Apr 4 06:26:08 2019 -0700 hwmon: (ad7414) Fix build warning If CONFIG_OF is not enabled, the following build warning is observed. drivers/hwmon/ad7414.c:218:34: warning: ‘ad7414_of_match’ defined but not used Marking ad7414_of_match as __mayybe_unused fixes the problem. Signed-off-by: Guenter Roeck commit 462d7e7ec9e855895a000c17dba0192bf6489718 Author: Guenter Roeck Date: Thu Apr 4 06:23:59 2019 -0700 hwmon: (adc128d818) Fix build warning If CONFIG_OF is not enabled, the following build warning is observed. drivers/hwmon/adc128d818.c:524:34: warning: ‘adc128_of_match’ defined but not used Mark adc128_of_match as __maybe_unused to fix the problem. Signed-off-by: Guenter Roeck commit 787afaa30fa51bf9e85b56b237a6ad4a0249b3e8 Author: Guenter Roeck Date: Thu Apr 4 06:21:17 2019 -0700 hwmon: (lm90) Fix build warning If CONFIG_OF is not enabled, the following build warning is observed. drivers/hwmon/lm90.c:239:34: warning: ‘lm90_of_match’ defined but not used Mark lm90_of_match as __maybe_unused to fix the problem. Signed-off-by: Guenter Roeck commit a90cdd134546ddc545ba1bcba8bdf1489bf6bee6 Author: Guenter Roeck Date: Thu Apr 4 06:19:50 2019 -0700 hwmon: (ltc4151) Fix build warning If CONFIG_OF is not enabled, the following build warning is observed. drivers/hwmon/ltc4151.c:211:34: warning: ‘ltc4151_match’ defined but not used Mark ltc4151_match as __maybe_unused to fix the problem. Signed-off-by: Guenter Roeck commit 64e5116279581c4014476c4e2afabfc5227f2053 Author: Guenter Roeck Date: Thu Apr 4 06:17:49 2019 -0700 hwmon: (pmbus/ucd900) Fix build warning If CONFIG_OF is not enabled, the following build warning is observed. drivers/hwmon/pmbus/ucd9000.c:154:34: warning: ‘ucd9000_of_match’ defined but not used Mark ucd9000_of_match as __maybe_unused to fix the problem. Signed-off-by: Guenter Roeck commit e91cb17b733f63f8d55c836be76e89d9753c0859 Author: Guenter Roeck Date: Thu Apr 4 06:16:46 2019 -0700 hwmon: (pmbus/tps53679) Fix build warning If CONFIG_OF is not enabled, the following build warning is observed. drivers/hwmon/pmbus/tps53679.c:100:34: warning: ‘tps53679_of_match’ defined but not used Marking tps53679_of_match as __maybe_unused fixes the problem. Signed-off-by: Guenter Roeck commit 9c6b0f75ea9ce7dc97913c7676987dc8e5b58741 Author: Guenter Roeck Date: Thu Apr 4 06:13:31 2019 -0700 hwmon: (pmbus/ucd9200): Mark ucd9200_of_match as maybe_unused If CONFIG_OF is not enabled, the following build warning is observed. drivers/hwmon/pmbus/ucd9200.c:50:34: warning: ‘ucd9200_of_match’ defined but not used Mark it as __maybe_unused to fix the problem. Signed-off-by: Guenter Roeck commit cb202bb8b3238f12fdb682e0361be9570b47288d Author: Andrey Smirnov Date: Tue Apr 2 21:28:11 2019 -0700 hwmon: (iio_hwmon) Simplify attr.name generation in iio_hwmon_probe() Since every call to devm_kasprintf() in the switch statement is mostly the same, we can move all of the shared code outside and capture differencies with two helper variables. No functional change intended. Signed-off-by: Andrey Smirnov Cc: Guenter Roeck Signed-off-by: Guenter Roeck commit 5aaa58734d8876640fe0a730c699ce7b9ea90b1c Author: Guenter Roeck Date: Mon Apr 1 10:36:41 2019 -0700 hwmon: (jz4740) Use devm_platform_ioremap_resource The new helper devm_platform_ioremap_resource() wraps platform_get_resource() and devm_ioremap_resource() together. Use it to simplify the code. Signed-off-by: Guenter Roeck commit 2f2defda176cc885ca1356601a2aa5aef53ae253 Author: Guenter Roeck Date: Sun Mar 31 10:53:51 2019 -0700 hwmon: (w83773g) Use HWMON_CHANNEL_INFO macro The HWMON_CHANNEL_INFO macro simplifies the code, reduces the likelihood of errors, and makes the code easier to read. The conversion was done automatically with coccinelle. The semantic patch used to make this change is as follows. @r@ initializer list elements; identifier i; @@ -u32 i[] = { - elements, - 0 -}; @s@ identifier r.i,j,ty; @@ -struct hwmon_channel_info j = { - .type = ty, - .config = i, -}; @script:ocaml t@ ty << s.ty; elements << r.elements; shorter; elems; @@ shorter := make_ident (List.hd(List.rev (Str.split (Str.regexp "_") ty))); elems := make_ident (String.concat "," (List.map (fun x -> Printf.sprintf "\n\t\t\t %s" x) (Str.split (Str.regexp " , ") elements))) @@ identifier s.j,t.shorter; identifier t.elems; @@ - &j + HWMON_CHANNEL_INFO(shorter,elems) This patch does not introduce functional changes. Many thanks to Julia Lawall for providing the semantic patch. Signed-off-by: Guenter Roeck commit 6cbd4926a2ac1c86ac2e467a2e1987e9504a7b67 Author: Guenter Roeck Date: Sun Mar 31 10:53:51 2019 -0700 hwmon: (tmp108) Use HWMON_CHANNEL_INFO macro The HWMON_CHANNEL_INFO macro simplifies the code, reduces the likelihood of errors, and makes the code easier to read. The conversion was done automatically with coccinelle. The semantic patch used to make this change is as follows. @r@ initializer list elements; identifier i; @@ -u32 i[] = { - elements, - 0 -}; @s@ identifier r.i,j,ty; @@ -struct hwmon_channel_info j = { - .type = ty, - .config = i, -}; @script:ocaml t@ ty << s.ty; elements << r.elements; shorter; elems; @@ shorter := make_ident (List.hd(List.rev (Str.split (Str.regexp "_") ty))); elems := make_ident (String.concat "," (List.map (fun x -> Printf.sprintf "\n\t\t\t %s" x) (Str.split (Str.regexp " , ") elements))) @@ identifier s.j,t.shorter; identifier t.elems; @@ - &j + HWMON_CHANNEL_INFO(shorter,elems) This patch does not introduce functional changes. Many thanks to Julia Lawall for providing the semantic patch. Signed-off-by: Guenter Roeck commit 880782547272d0c3bb47798b1de24d6d3eaa73f6 Author: Guenter Roeck Date: Sun Mar 31 10:53:50 2019 -0700 hwmon: (tmp102) Use HWMON_CHANNEL_INFO macro The HWMON_CHANNEL_INFO macro simplifies the code, reduces the likelihood of errors, and makes the code easier to read. The conversion was done automatically with coccinelle. The semantic patch used to make this change is as follows. @r@ initializer list elements; identifier i; @@ -u32 i[] = { - elements, - 0 -}; @s@ identifier r.i,j,ty; @@ -struct hwmon_channel_info j = { - .type = ty, - .config = i, -}; @script:ocaml t@ ty << s.ty; elements << r.elements; shorter; elems; @@ shorter := make_ident (List.hd(List.rev (Str.split (Str.regexp "_") ty))); elems := make_ident (String.concat "," (List.map (fun x -> Printf.sprintf "\n\t\t\t %s" x) (Str.split (Str.regexp " , ") elements))) @@ identifier s.j,t.shorter; identifier t.elems; @@ - &j + HWMON_CHANNEL_INFO(shorter,elems) This patch does not introduce functional changes. Many thanks to Julia Lawall for providing the semantic patch. Signed-off-by: Guenter Roeck commit 0c42186e3976b92c5d167aeda3e0894103353254 Author: Guenter Roeck Date: Sun Mar 31 10:53:50 2019 -0700 hwmon: (raspberrypi-hwmon) Use HWMON_CHANNEL_INFO macro The HWMON_CHANNEL_INFO macro simplifies the code, reduces the likelihood of errors, and makes the code easier to read. The conversion was done automatically with coccinelle. The semantic patch used to make this change is as follows. @r@ initializer list elements; identifier i; @@ -u32 i[] = { - elements, - 0 -}; @s@ identifier r.i,j,ty; @@ -struct hwmon_channel_info j = { - .type = ty, - .config = i, -}; @script:ocaml t@ ty << s.ty; elements << r.elements; shorter; elems; @@ shorter := make_ident (List.hd(List.rev (Str.split (Str.regexp "_") ty))); elems := make_ident (String.concat "," (List.map (fun x -> Printf.sprintf "\n\t\t\t %s" x) (Str.split (Str.regexp " , ") elements))) @@ identifier s.j,t.shorter; identifier t.elems; @@ - &j + HWMON_CHANNEL_INFO(shorter,elems) This patch does not introduce functional changes. Many thanks to Julia Lawall for providing the semantic patch. Signed-off-by: Guenter Roeck commit dfeace08338cfb8bd993f769655015a7608b28da Author: Guenter Roeck Date: Sun Mar 31 10:53:50 2019 -0700 hwmon: (npcm750-pwm-fan) Use HWMON_CHANNEL_INFO macro The HWMON_CHANNEL_INFO macro simplifies the code, reduces the likelihood of errors, and makes the code easier to read. The conversion was done automatically with coccinelle. The semantic patch used to make this change is as follows. @r@ initializer list elements; identifier i; @@ -u32 i[] = { - elements, - 0 -}; @s@ identifier r.i,j,ty; @@ -struct hwmon_channel_info j = { - .type = ty, - .config = i, -}; @script:ocaml t@ ty << s.ty; elements << r.elements; shorter; elems; @@ shorter := make_ident (List.hd(List.rev (Str.split (Str.regexp "_") ty))); elems := make_ident (String.concat "," (List.map (fun x -> Printf.sprintf "\n\t\t\t %s" x) (Str.split (Str.regexp " , ") elements))) @@ identifier s.j,t.shorter; identifier t.elems; @@ - &j + HWMON_CHANNEL_INFO(shorter,elems) This patch does not introduce functional changes. Many thanks to Julia Lawall for providing the semantic patch. Cc: Avi Fishman Cc: Tomer Maimon Cc: Patrick Venture Cc: Nancy Yuen Cc: Brendan Higgins Signed-off-by: Guenter Roeck commit 725dcf082c878bd62ccb05f544884db534f7d1a4 Author: Guenter Roeck Date: Sun Mar 31 10:53:50 2019 -0700 hwmon: (mlxreg-fan) Use HWMON_CHANNEL_INFO macro The HWMON_CHANNEL_INFO macro simplifies the code, reduces the likelihood of errors, and makes the code easier to read. The conversion was done automatically with coccinelle. The semantic patch used to make this change is as follows. @r@ initializer list elements; identifier i; @@ -u32 i[] = { - elements, - 0 -}; @s@ identifier r.i,j,ty; @@ -struct hwmon_channel_info j = { - .type = ty, - .config = i, -}; @script:ocaml t@ ty << s.ty; elements << r.elements; shorter; elems; @@ shorter := make_ident (List.hd(List.rev (Str.split (Str.regexp "_") ty))); elems := make_ident (String.concat "," (List.map (fun x -> Printf.sprintf "\n\t\t\t %s" x) (Str.split (Str.regexp " , ") elements))) @@ identifier s.j,t.shorter; identifier t.elems; @@ - &j + HWMON_CHANNEL_INFO(shorter,elems) This patch does not introduce functional changes. Many thanks to Julia Lawall for providing the semantic patch. Signed-off-by: Guenter Roeck commit dcb00ee817b41a43e907652219b88087aacd3d8d Author: Guenter Roeck Date: Sun Mar 31 10:53:49 2019 -0700 hwmon: (max6621) Use HWMON_CHANNEL_INFO macro The HWMON_CHANNEL_INFO macro simplifies the code, reduces the likelihood of errors, and makes the code easier to read. The conversion was done automatically with coccinelle. The semantic patch used to make this change is as follows. @r@ initializer list elements; identifier i; @@ -u32 i[] = { - elements, - 0 -}; @s@ identifier r.i,j,ty; @@ -struct hwmon_channel_info j = { - .type = ty, - .config = i, -}; @script:ocaml t@ ty << s.ty; elements << r.elements; shorter; elems; @@ shorter := make_ident (List.hd(List.rev (Str.split (Str.regexp "_") ty))); elems := make_ident (String.concat "," (List.map (fun x -> Printf.sprintf "\n\t\t\t %s" x) (Str.split (Str.regexp " , ") elements))) @@ identifier s.j,t.shorter; identifier t.elems; @@ - &j + HWMON_CHANNEL_INFO(shorter,elems) This patch does not introduce functional changes. Many thanks to Julia Lawall for providing the semantic patch. Signed-off-by: Guenter Roeck commit b605e671cff60ec66115a5cda1c384f377fb07ce Author: Guenter Roeck Date: Sun Mar 31 10:53:49 2019 -0700 hwmon: (max31790) Use HWMON_CHANNEL_INFO macro The HWMON_CHANNEL_INFO macro simplifies the code, reduces the likelihood of errors, and makes the code easier to read. The conversion was done automatically with coccinelle. The semantic patch used to make this change is as follows. @r@ initializer list elements; identifier i; @@ -u32 i[] = { - elements, - 0 -}; @s@ identifier r.i,j,ty; @@ -struct hwmon_channel_info j = { - .type = ty, - .config = i, -}; @script:ocaml t@ ty << s.ty; elements << r.elements; shorter; elems; @@ shorter := make_ident (List.hd(List.rev (Str.split (Str.regexp "_") ty))); elems := make_ident (String.concat "," (List.map (fun x -> Printf.sprintf "\n\t\t\t %s" x) (Str.split (Str.regexp " , ") elements))) @@ identifier s.j,t.shorter; identifier t.elems; @@ - &j + HWMON_CHANNEL_INFO(shorter,elems) This patch does not introduce functional changes. Many thanks to Julia Lawall for providing the semantic patch. Signed-off-by: Guenter Roeck commit f4a407f4ddf078f0f6b04e4b67befa00bb9cce45 Author: Guenter Roeck Date: Sun Mar 31 10:53:49 2019 -0700 hwmon: (ltq-cputemp) Use HWMON_CHANNEL_INFO macro The HWMON_CHANNEL_INFO macro simplifies the code, reduces the likelihood of errors, and makes the code easier to read. The conversion was done automatically with coccinelle. The semantic patch used to make this change is as follows. @r@ initializer list elements; identifier i; @@ -u32 i[] = { - elements, - 0 -}; @s@ identifier r.i,j,ty; @@ -struct hwmon_channel_info j = { - .type = ty, - .config = i, -}; @script:ocaml t@ ty << s.ty; elements << r.elements; shorter; elems; @@ shorter := make_ident (List.hd(List.rev (Str.split (Str.regexp "_") ty))); elems := make_ident (String.concat "," (List.map (fun x -> Printf.sprintf "\n\t\t\t %s" x) (Str.split (Str.regexp " , ") elements))) @@ identifier s.j,t.shorter; identifier t.elems; @@ - &j + HWMON_CHANNEL_INFO(shorter,elems) This patch does not introduce functional changes. Many thanks to Julia Lawall for providing the semantic patch. Signed-off-by: Guenter Roeck commit 0ee508f0cd5188911f449c9b82123c9fe3b7dff5 Author: Guenter Roeck Date: Sun Mar 31 10:53:48 2019 -0700 hwmon: (ltc4245) Use HWMON_CHANNEL_INFO macro The HWMON_CHANNEL_INFO macro simplifies the code, reduces the likelihood of errors, and makes the code easier to read. The conversion was done automatically with coccinelle. The semantic patch used to make this change is as follows. @r@ initializer list elements; identifier i; @@ -u32 i[] = { - elements, - 0 -}; @s@ identifier r.i,j,ty; @@ -struct hwmon_channel_info j = { - .type = ty, - .config = i, -}; @script:ocaml t@ ty << s.ty; elements << r.elements; shorter; elems; @@ shorter := make_ident (List.hd(List.rev (Str.split (Str.regexp "_") ty))); elems := make_ident (String.concat "," (List.map (fun x -> Printf.sprintf "\n\t\t\t %s" x) (Str.split (Str.regexp " , ") elements))) @@ identifier s.j,t.shorter; identifier t.elems; @@ - &j + HWMON_CHANNEL_INFO(shorter,elems) This patch does not introduce functional changes. Many thanks to Julia Lawall for providing the semantic patch. Signed-off-by: Guenter Roeck commit 7aea00647f9cfeae775520398e912dd17100606a Author: Guenter Roeck Date: Sun Mar 31 10:53:48 2019 -0700 hwmon: (lm95245) Use HWMON_CHANNEL_INFO macro The HWMON_CHANNEL_INFO macro simplifies the code, reduces the likelihood of errors, and makes the code easier to read. The conversion was done automatically with coccinelle. The semantic patch used to make this change is as follows. @r@ initializer list elements; identifier i; @@ -u32 i[] = { - elements, - 0 -}; @s@ identifier r.i,j,ty; @@ -struct hwmon_channel_info j = { - .type = ty, - .config = i, -}; @script:ocaml t@ ty << s.ty; elements << r.elements; shorter; elems; @@ shorter := make_ident (List.hd(List.rev (Str.split (Str.regexp "_") ty))); elems := make_ident (String.concat "," (List.map (fun x -> Printf.sprintf "\n\t\t\t %s" x) (Str.split (Str.regexp " , ") elements))) @@ identifier s.j,t.shorter; identifier t.elems; @@ - &j + HWMON_CHANNEL_INFO(shorter,elems) This patch does not introduce functional changes. Many thanks to Julia Lawall for providing the semantic patch. Signed-off-by: Guenter Roeck commit f5011f9fc287a7894abf83c70bebdbf905dd0f78 Author: Guenter Roeck Date: Sun Mar 31 10:53:48 2019 -0700 hwmon: (lm95241) Use HWMON_CHANNEL_INFO macro The HWMON_CHANNEL_INFO macro simplifies the code, reduces the likelihood of errors, and makes the code easier to read. The conversion was done automatically with coccinelle. The semantic patch used to make this change is as follows. @r@ initializer list elements; identifier i; @@ -u32 i[] = { - elements, - 0 -}; @s@ identifier r.i,j,ty; @@ -struct hwmon_channel_info j = { - .type = ty, - .config = i, -}; @script:ocaml t@ ty << s.ty; elements << r.elements; shorter; elems; @@ shorter := make_ident (List.hd(List.rev (Str.split (Str.regexp "_") ty))); elems := make_ident (String.concat "," (List.map (fun x -> Printf.sprintf "\n\t\t\t %s" x) (Str.split (Str.regexp " , ") elements))) @@ identifier s.j,t.shorter; identifier t.elems; @@ - &j + HWMON_CHANNEL_INFO(shorter,elems) This patch does not introduce functional changes. Many thanks to Julia Lawall for providing the semantic patch. Signed-off-by: Guenter Roeck commit a4d41e6730b85ecb992a8084b11168b613e90b7d Author: Guenter Roeck Date: Sun Mar 31 10:53:48 2019 -0700 hwmon: (lm90) Use HWMON_CHANNEL_INFO macro The HWMON_CHANNEL_INFO macro simplifies the code, reduces the likelihood of errors, and makes the code easier to read. The conversion was done automatically with coccinelle. The semantic patch used to make this change is as follows. @r@ initializer list elements; identifier i; @@ -u32 i[] = { - elements, - 0 -}; @s@ identifier r.i,j,ty; @@ -struct hwmon_channel_info j = { - .type = ty, - .config = i, -}; @script:ocaml t@ ty << s.ty; elements << r.elements; shorter; elems; @@ shorter := make_ident (List.hd(List.rev (Str.split (Str.regexp "_") ty))); elems := make_ident (String.concat "," (List.map (fun x -> Printf.sprintf "\n\t\t\t %s" x) (Str.split (Str.regexp " , ") elements))) @@ identifier s.j,t.shorter; identifier t.elems; @@ - &j + HWMON_CHANNEL_INFO(shorter,elems) This patch does not introduce functional changes. Many thanks to Julia Lawall for providing the semantic patch. Signed-off-by: Guenter Roeck commit e4f6fed1271062564296d230acb2b5e32a07d274 Author: Guenter Roeck Date: Sun Mar 31 10:53:47 2019 -0700 hwmon: (lm75) Use HWMON_CHANNEL_INFO macro The HWMON_CHANNEL_INFO macro simplifies the code, reduces the likelihood of errors, and makes the code easier to read. The conversion was done automatically with coccinelle. The semantic patch used to make this change is as follows. @r@ initializer list elements; identifier i; @@ -u32 i[] = { - elements, - 0 -}; @s@ identifier r.i,j,ty; @@ -struct hwmon_channel_info j = { - .type = ty, - .config = i, -}; @script:ocaml t@ ty << s.ty; elements << r.elements; shorter; elems; @@ shorter := make_ident (List.hd(List.rev (Str.split (Str.regexp "_") ty))); elems := make_ident (String.concat "," (List.map (fun x -> Printf.sprintf "\n\t\t\t %s" x) (Str.split (Str.regexp " , ") elements))) @@ identifier s.j,t.shorter; identifier t.elems; @@ - &j + HWMON_CHANNEL_INFO(shorter,elems) This patch does not introduce functional changes. Many thanks to Julia Lawall for providing the semantic patch. Signed-off-by: Guenter Roeck commit 1eade10fe94e75cd638aa61a3161c82ad625f69b Author: Guenter Roeck Date: Sun Mar 31 10:53:47 2019 -0700 hwmon: (jc42) Use HWMON_CHANNEL_INFO macro The HWMON_CHANNEL_INFO macro simplifies the code, reduces the likelihood of errors, and makes the code easier to read. The conversion was done automatically with coccinelle. The semantic patch used to make this change is as follows. @r@ initializer list elements; identifier i; @@ -u32 i[] = { - elements, - 0 -}; @s@ identifier r.i,j,ty; @@ -struct hwmon_channel_info j = { - .type = ty, - .config = i, -}; @script:ocaml t@ ty << s.ty; elements << r.elements; shorter; elems; @@ shorter := make_ident (List.hd(List.rev (Str.split (Str.regexp "_") ty))); elems := make_ident (String.concat "," (List.map (fun x -> Printf.sprintf "\n\t\t\t %s" x) (Str.split (Str.regexp " , ") elements))) @@ identifier s.j,t.shorter; identifier t.elems; @@ - &j + HWMON_CHANNEL_INFO(shorter,elems) This patch does not introduce functional changes. Many thanks to Julia Lawall for providing the semantic patch. Signed-off-by: Guenter Roeck commit 6f307b7c2ba218ac134926624cf9a9e9a5cb17c0 Author: Guenter Roeck Date: Sun Mar 31 10:53:47 2019 -0700 hwmon: (ina3221) Use HWMON_CHANNEL_INFO macro The HWMON_CHANNEL_INFO macro simplifies the code, reduces the likelihood of errors, and makes the code easier to read. The conversion was done automatically with coccinelle. The semantic patch used to make this change is as follows. @r@ initializer list elements; identifier i; @@ -u32 i[] = { - elements, - 0 -}; @s@ identifier r.i,j,ty; @@ -struct hwmon_channel_info j = { - .type = ty, - .config = i, -}; @script:ocaml t@ ty << s.ty; elements << r.elements; shorter; elems; @@ shorter := make_ident (List.hd(List.rev (Str.split (Str.regexp "_") ty))); elems := make_ident (String.concat "," (List.map (fun x -> Printf.sprintf "\n\t\t\t %s" x) (Str.split (Str.regexp " , ") elements))) @@ identifier s.j,t.shorter; identifier t.elems; @@ - &j + HWMON_CHANNEL_INFO(shorter,elems) This patch does not introduce functional changes. Many thanks to Julia Lawall for providing the semantic patch. The patch was post-edited to retain comments. Signed-off-by: Guenter Roeck commit ff56121e71fdee7ad3d6c40beab57d680254e41a Author: Guenter Roeck Date: Sun Mar 31 10:53:46 2019 -0700 hwmon: (adt7411) Use HWMON_CHANNEL_INFO macro The HWMON_CHANNEL_INFO macro simplifies the code, reduces the likelihood of errors, and makes the code easier to read. The conversion was done automatically with coccinelle. The semantic patch used to make this change is as follows. @r@ initializer list elements; identifier i; @@ -u32 i[] = { - elements, - 0 -}; @s@ identifier r.i,j,ty; @@ -struct hwmon_channel_info j = { - .type = ty, - .config = i, -}; @script:ocaml t@ ty << s.ty; elements << r.elements; shorter; elems; @@ shorter := make_ident (List.hd(List.rev (Str.split (Str.regexp "_") ty))); elems := make_ident (String.concat "," (List.map (fun x -> Printf.sprintf "\n\t\t\t %s" x) (Str.split (Str.regexp " , ") elements))) @@ identifier s.j,t.shorter; identifier t.elems; @@ - &j + HWMON_CHANNEL_INFO(shorter,elems) This patch does not introduce functional changes. Many thanks to Julia Lawall for providing the semantic patch. Signed-off-by: Guenter Roeck commit 6bf2db4621fc1ac7a00bb7b770462211a5b7fdf9 Author: Guenter Roeck Date: Sun Mar 31 10:22:24 2019 -0700 hwmon: Documentation: Add usage example for HWMON_CHANNEL_INFO The new HWMON_CHANNEL_INFO macro simplifies the code, reduces the likelihood of errors, and makes the code easier to read. Add a usage example to help driver writers to actually use it. Signed-off-by: Guenter Roeck commit 4ec1d234a96659b881d9e2070978ec0a25668d44 Author: Guenter Roeck Date: Fri Mar 29 13:26:40 2019 -0700 hwmon: (nct7904) Use new HWMON_CHANNEL_INFO() macro The new macro simplifies the code, reduces the likelihood of errors, and makes the code easier to read. Signed-off-by: Guenter Roeck commit 4cdb562147467b3530e86c7c51c3fbffe3067c09 Author: Lucas Tanure Date: Thu Mar 28 13:09:37 2019 +0000 hwmon: lochnagar: Add Lochnagar 2 hardware monitoring driver Lochnagar is an evaluation and development board for Cirrus Logic Smart CODEC and Amp devices. It allows the connection of most Cirrus Logic devices on mini-cards, as well as allowing connection of various application processor systems to provide a full evaluation platform. This driver adds support for the hardware monitoring features of the Lochnagar 2 to the hwmon API. Monitoring is provided for the board voltages, currents and temperature supported by the board controller chip. Signed-off-by: Lucas Tanure Signed-off-by: Charles Keepax Signed-off-by: Guenter Roeck commit 5ad4d7ca2125e7056a959b12e3b75fb745c73b52 Author: Charles Keepax Date: Thu Mar 28 13:09:36 2019 +0000 hwmon: lochnagar: Add device tree binding document Lochnagar is an evaluation and development board for Cirrus Logic Smart CODEC and Amp devices. It allows the connection of most Cirrus Logic devices on mini-cards, as well as allowing connection of various application processor systems to provide a full evaluation platform. This driver supports the board controller chip on the Lochnagar board. Signed-off-by: Charles Keepax Reviewed-by: Rob Herring Signed-off-by: Guenter Roeck commit 0ddca57737867bdcd57a81ebc9854297cd27a82b Author: Guenter Roeck Date: Wed Mar 20 10:36:00 2019 -0700 hwmon: (ntc_thermistor) Use new HWMON_CHANNEL_INFO() macro The new macro is indeed quite useful. Let's use it. Signed-off-by: Guenter Roeck commit c43a113ca2c807c3e66a5de0ec57d69803b8bc10 Author: Charles Keepax Date: Wed Mar 20 14:58:17 2019 +0000 hwmon: Add convience macro to define simple static sensors It takes a fair amount of boiler plate code to add new sensors, add a macro that can be used to specify simple static sensors. Signed-off-by: Charles Keepax Signed-off-by: Guenter Roeck commit b429ebc86f2e389ba9388fdfac64dc30c70d21a6 Author: Vadim Pasternak Date: Mon Mar 18 16:10:28 2019 +0000 hwmon: (mlxreg-fan) Add support for fan capability registers Add support for fan capability registers in order to distinct between the systems which have minor fan configuration differences. This reduces the amount of code used to describe such systems. The capability registers provides system specific information about the number of physically connected tachometers and system specific fan speed scale parameter. For example one system can be equipped with twelve fan tachometers, while the other with for example, eight or six. Or one system should use default fan speed divider value, while the other has a scale parameter defined in hardware, which should be used for divider setting. Reading this information from the capability registers allows to use the same fan structure for the systems with the such differences. Signed-off-by: Vadim Pasternak Signed-off-by: Guenter Roeck commit b88c5049219a7f322bb1fd65fc30d17472a23563 Author: Lei YU Date: Mon Apr 15 18:37:20 2019 +0800 hwmon: (occ) Fix extended status bits The occ's extended status is checked and shown as sysfs attributes. But the code was incorrectly checking the "status" bits. Fix it by checking the "ext_status" bits. Cc: stable@vger.kernel.org Fixes: df04ced684d4 ("hwmon (occ): Add sysfs attributes for additional OCC data") Signed-off-by: Lei YU Reviewed-by: Eddie James Signed-off-by: Guenter Roeck commit 53f1647da3e8fb3e89066798f0fdc045064d353d Author: Stefan Wahren Date: Wed Apr 3 14:48:33 2019 +0200 hwmon: (pwm-fan) Disable PWM if fetching cooling data fails In case pwm_fan_of_get_cooling_data() fails we should disable the PWM just like in the other error cases. Fixes: 2e5219c77183 ("hwmon: (pwm-fan) Read PWM FAN configuration from device tree") Cc: # 4.14+ Reported-by: Guenter Rock Signed-off-by: Stefan Wahren Signed-off-by: Guenter Roeck commit 3c236f8cc63b4593c9627bf0149f416925db8899 Author: John Garry Date: Fri Apr 12 16:57:57 2019 +0800 scsi: libsas: Print expander PHY indexes in decimal Currently we print expander PHY indexes in a mix of decimal and hex. It is more consistent and also more convenient to read decimal, so make this change. We use width of 2 for expander and 1 for root PHYs prints. Some lines which were needlessly spilling multiple lines are unified. Signed-off-by: John Garry Signed-off-by: Martin K. Petersen commit d8649fc1c5e40e691d589ed825998c36a947491c Author: John Garry Date: Fri Apr 12 16:57:56 2019 +0800 scsi: libsas: Do discovery on empty PHY to update PHY info When we discover the PHY is empty in sas_rediscover_dev(), the PHY information (like negotiated linkrate) is not updated. As such, for a user examining sysfs for that PHY, they would see incorrect values: root@(none)$ cd /sys/class/sas_phy/phy-0:0:20 root@(none)$ more negotiated_linkrate 3.0 Gbit root@(none)$ echo 0 > enable root@(none)$ more negotiated_linkrate 3.0 Gbit So fix this, simply discover the PHY again, even though we know it's empty; in the above example, this gives us: root@(none)$ more negotiated_linkrate Phy disabled We must do this after unregistering the device associated with the PHY (in sas_unregister_devs_sas_addr()). Signed-off-by: John Garry Signed-off-by: Martin K. Petersen commit 085f104a83d565097644889bf1f6f1aa6d345cb5 Author: John Garry Date: Fri Apr 12 16:57:55 2019 +0800 scsi: libsas: Inject revalidate event for root port event According to the SAS spec, an expander device shall transmit BROADCAST (CHANGE) from at least one phy in each expander port other than the expander port that is the cause for transmitting BROADCAST (CHANGE). As such, for when the link is lost for a root PHY attached to an expander PHY, we get no broadcast event. This causes an issue for libsas, in that we will not revalidate the domain for these events. As a solution, for when a root PHY is formed or deformed from a root port, insert a broadcast event to trigger a domain revalidation. Signed-off-by: John Garry Signed-off-by: Martin K. Petersen commit a5b38d3159eac6a30c1c57d67707c141b9ac3efb Author: John Garry Date: Fri Apr 12 16:57:54 2019 +0800 scsi: libsas: Improve vague log in SAS rediscovery When an expander PHY which was part of a wideport disconnects, we would see a log like this from sas_rediscover(): [ 39.695554] sas: phy20 part of wide port with phy16 Here, phy20 is the PHY that disconnected, and phy16 is the lowest indexed member PHY of the wideport. The log implies the phy20 is still part of the wideport with phy16, so is misleading or, at least, vague. Improve the logs in SAS rediscovery by removing this log and adding a log in sas_rediscover_dev() to tell what's really going on. While we're at it, also make the logs in sas_find_bcast_dev() more informative (and more consistent with the reset of the expander logs). Signed-off-by: John Garry Signed-off-by: Martin K. Petersen commit f7ddb43eed7bcb096852defb4f57b38393339695 Author: John Garry Date: Fri Apr 12 16:57:53 2019 +0800 scsi: libsas: Try to retain programmed min linkrate for SATA min pathway unmatch fixing Currently for fixing the linkrate matching during discovery such that the linkrate of a SATA PHY does not exceed min pathway to initiator, we set the SATA PHY programmed min linkrate to the same value as the programmed max linkrate. This is unnecessary, and we should be able to keep the same programmed min linkrate if it is already lower than this new max programmed linkrate. This patch makes that change. In effect, this will not make much difference since we generally will negotiate a linkrate at the programmed max linkrate, and the programmed min linkrate will have no impact. Signed-off-by: John Garry Signed-off-by: Martin K. Petersen commit 7b27c5fe247b4288f41551ced5bf458f58dc77b8 Author: John Garry Date: Fri Apr 12 16:57:52 2019 +0800 scsi: libsas: Stop hardcoding SAS address length Many times we use 8 for SAS address length, while we already have a macro for this - SAS_ADDR_SIZE. Replace instances of this with the macro. However, don't touch the SAS address array sizes sas.h, as these are defined according to the SAS spec. Some missing whitespaces are also added, and whitespace indentation in sas_hash_addr() is also fixed (see sas_hash_addr()). Signed-off-by: John Garry Signed-off-by: Martin K. Petersen commit b6ed55cb721c13497c3cddd6caee46a7f92c4e7b Merge: 47a1a225ab35 8af56f40e53b Author: David S. Miller Date: Mon Apr 15 15:45:36 2019 -0700 Merge branch 'nfp-Flower-flow-merging' Simon Horman says: ==================== nfp: Flower flow merging John Hurley says, These patches deal with 'implicit recirculation' on the NFP. This is a firmware feature whereby a packet egresses to an 'internal' port meaning that it will recirculate back to the header extract phase with the 'internal' port now marked as its ingress port. This internal port can then be matched on by another rule. This process simulates how OvS datapath outputs to an internal port. The FW traces the packet's recirculation route and sends a 'merge hint' to the driver telling it which flows it matched against. The driver can then decide if these flows can be merged to a single rule and offloaded. The patches deal with the following issues: - assigning/freeing IDs to/from each of these new internal ports - offloading rules that match on internal ports - offloading neighbour table entries whose egress port is internal - handling fallback traffic with an internal port as ingress - using merge hints to create 'faster path' flows and tracking stats etc. ==================== Signed-off-by: David S. Miller commit 8af56f40e53b102a1f7ef5cd2b057cd6db776d6e Author: John Hurley Date: Mon Apr 15 16:56:03 2019 +0200 nfp: flower: offload merge flows A merge flow is formed from 2 sub flows. The match fields of the merge are the same as the first sub flow that has formed it, with the actions being a combination of the first and second sub flow. Therefore, a merge flow should replace sub flow 1 when offloaded. Offload valid merge flows by using a new 'flow mod' message type to replace an existing offloaded rule. Track the deletion of sub flows that are linked to a merge flow and revert offloaded merge rules if required. Signed-off-by: John Hurley Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit aa6ce2ea0c9301f7d418982d3c0612eec926ac91 Author: John Hurley Date: Mon Apr 15 16:56:02 2019 +0200 nfp: flower: support stats update for merge flows With the merging of 2 sub flows, a new 'merge' flow will be created and written to FW. The TC layer is unaware that the merge flow exists and will request stats from the sub flows. Conversely, the FW treats a merge rule the same as any other rule and sends stats updates to the NFP driver. Add links between merge flows and their sub flows. Use these links to pass merge flow stats updates from FW to the underlying sub flows, ensuring TC stats requests are handled correctly. The updating of sub flow stats is done on (the less time critcal) TC stats requests rather than on FW stats update. Signed-off-by: John Hurley Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit 1c6952ca587d54512f79ba78cb20092c598a7385 Author: John Hurley Date: Mon Apr 15 16:56:01 2019 +0200 nfp: flower: generate merge flow rule When combining 2 sub_flows to a single 'merge flow' (assuming the merge is valid), the merge flow should contain the same match fields as sub_flow 1 with actions derived from a combination of sub_flows 1 and 2. This action list should have all actions from sub_flow 1 with the exception of the output action that triggered the 'implicit recirculation' by sending to an internal port, followed by all actions of sub_flow 2. Any pre-actions in either sub_flow should feature at the start of the action list. Add code to generate a new merge flow and populate the match and actions fields based on the sub_flows. The offloading of the flow is left to future patches. Signed-off-by: John Hurley Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit 107e37bb4f887a2078b9d484f1508c1e44d64985 Author: John Hurley Date: Mon Apr 15 16:56:00 2019 +0200 nfp: flower: validate merge hint flows Two flows can be merged if the second flow (after recirculation) matches on bits that are either matched on or explicitly set by the first flow. This means that if a packet hits flow 1 and recirculates then it is guaranteed to hit flow 2. Add a 'can_merge' function that determines if 2 sub_flows in a merge hint can be validly merged to a single flow. Signed-off-by: John Hurley Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit dbc2d68edc987cd9941428c0845641c64737c3ee Author: John Hurley Date: Mon Apr 15 16:55:59 2019 +0200 nfp: flower: handle merge hint messages If a merge hint is received containing 2 flows that are matched via an implicit recirculation (sending to and matching on an internal port), fw reports that the flows (called sub_flows) may be able to be combined to a single flow. Add infastructure to accept and process merge hint messages. The actual merging of the flows is left as a stub call. Signed-off-by: John Hurley Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit cf4172d5751fcf8531c3df43cbd490bac7a8c84a Author: John Hurley Date: Mon Apr 15 16:55:58 2019 +0200 nfp: flower: get flows by host context Each flow is given a context ID that the fw uses (along with its cookie) to identity the flow. The flows stats are updated by the fw via this ID which is a reference to a pre-allocated array entry. In preparation for flow merge code, enable the nfp_fl_payload structure to be accessed via this stats context ID. Rather than increasing the memory requirements of the pre-allocated array, add a new rhashtable to associate each active stats context ID with its rule payload. While adding new code to the compile metadata functions, slightly restructure the existing function to allow for cleaner, easier to read error handling. Signed-off-by: John Hurley Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit 45756dfedab5fd7056ae87aed66b5089f9d8b039 Author: John Hurley Date: Mon Apr 15 16:55:57 2019 +0200 nfp: flower: allow tunnels to output to internal port The neighbour table in the FW only accepts next hop entries if the egress port is an nfp repr. Modify this to allow the next hop to be an internal port. This means that if a packet is to egress to that port, it will recirculate back into the system with the internal port becoming its ingress port. Signed-off-by: John Hurley Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit f41dd0595d0668e0197eaacc66ac18703a1be758 Author: John Hurley Date: Mon Apr 15 16:55:56 2019 +0200 nfp: flower: support fallback packets from internal ports FW may receive a packet with its ingress port marked as an internal port. If a rule does not exist to match on this port, the packet will be sent to the NFP driver. Modify the flower app to detect packets from such internal ports and convert the ingress port to the correct kernel space netdev. At this point, it is assumed that fallback packets from internal ports are to be sent out said port. Therefore, set the redir_egress bool to true on detection of these ports. Signed-off-by: John Hurley Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit 27f54b582567bef2bfb9ee6f23aed6137cf9cfcb Author: John Hurley Date: Mon Apr 15 16:55:55 2019 +0200 nfp: allow fallback packets from non-reprs Currently, it is assumed that fallback packets will be from reprs. Modify this to allow an app to receive non-repr ports from the fallback channel - e.g. from an internal port. If such a packet is received, do not update repr stats. Change the naming function calls so as not to imply it will always be a repr netdev returned. Add the option to set a bool value to redirect a fallback packet out the returned port rather than RXing it. Setting of this bool in subsequent patches allows the handling of packets falling back when they are due to egress an internal port. Signed-off-by: John Hurley Acked-by: Jakub Kicinski Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit 4d12ba42787b5c1eb41375bc6cc70ad8dd7aa0e0 Author: John Hurley Date: Mon Apr 15 16:55:54 2019 +0200 nfp: flower: allow offloading of matches on 'internal' ports Recent FW modifications allow the offloading of non repr ports. These ports exist internally on the NFP. So if a rule outputs to an 'internal' port, then the packet will recirculate back into the system but will now have this internal port as it's incoming port. These ports are indicated by a specific type field combined with an 8 bit port id. Add private app data to assign additional port ids for use in offloads. Provide functions to lookup or create new ids when a rule attempts to match on an internal netdev - the only internal netdevs currently supported are of type openvswitch. Have a netdev notifier to release port ids on netdev unregister. OvS offloads rules that match on internal ports as TC egress filters. Ensure that such rules are accepted by the driver. Signed-off-by: John Hurley Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit 2f2622f59c70de16277ed85db620fed884f75e6a Author: John Hurley Date: Mon Apr 15 16:55:53 2019 +0200 nfp: flower: turn on recirc and merge hint support in firmware Write to a FW symbol to indicate that the driver supports flow merging. If this symbol does not exist then flow merging and recirculation is not supported on the FW. If support is available, add a stub to deal with FW to kernel merge hint messages. Full flow merging requires the firmware to support of flow mods. If it does not, then do not attempt to 'turn on' flow merging. Signed-off-by: John Hurley Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit 2607fd087370777fd2ae2ff7c1681fe1fb02566d Author: Neil Armstrong Date: Mon Mar 25 11:03:39 2019 +0100 arm64: dts: meson: g12a: Add mali-g31 gpu node This patch adds the ARM Mali G31 GPU node. Signed-off-by: Neil Armstrong Signed-off-by: Kevin Hilman commit 9baf7d6be730cbd996eb56d6047ff1d5147cbff0 Author: Neil Armstrong Date: Mon Mar 25 11:03:38 2019 +0100 arm64: dts: meson: g12a: Add G12A USB nodes This patch adds the nodes for the USB Complex found in the Amlogic G12A SoC. It includes the : - 2 USB2 PHYs - 1 USB3 + PCIE Combo PHY - the USB Glue with it's DWC2 and DWC3 sub-nodes Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit 820873cf38daaf965b37018028c5cc7015735745 Author: Neil Armstrong Date: Mon Mar 25 11:03:37 2019 +0100 arm64: dts: meson: g12a: Add SAR ADC node This patch adds the SAR ADC controller node. Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit 55fbc7287ecaa9b23eeeef4e8e9e6282d66a78dd Merge: 08af83100949 a6256b3a92cb Author: Kevin Hilman Date: Mon Apr 15 15:43:03 2019 -0700 Merge branch 'reset/meson-g12a' of git://git.pengutronix.de/pza/linux into v5.2/dt64 * 'reset/meson-g12a' of git://git.pengutronix.de/pza/linux: dt-bindings: reset: meson-g12a: Add missing USB2 PHY resets commit 08af83100949acbd1cbdb192b3a4c86447f9bf36 Merge: 55d76e83a39d 77a725ff7a64 Author: Kevin Hilman Date: Mon Apr 15 15:30:12 2019 -0700 Merge tag 'meson-clk-headers-5.2' of git://github.com/BayLibre/clk-meson into v5.2/dt64 - Adds VPU and Video Decoder clocks IDs on Meson8b - Finally remove the wrong ABP Meson8b clock id - Adds Video Decoder, PCIe PLL & CPU Clock IDs on G12A - Re-expose SAR_ADC_SEL and CTS_OSCIN on G12A AO clock controller - Unexpose some AXG-Audio input clocks IDs * tag 'meson-clk-headers-5.2' of git://github.com/BayLibre/clk-meson: dt-bindings: clock: meson8b: export the video decoder clocks dt-bindings: clock: meson8b: export the VPU clock dt-bindings: clock: g12a-aoclk: expose CLKID_AO_CTS_OSCIN dt-bindings: clock: meson8b: drop the "ABP" clock definition dt-bindings: clk: g12a-clkc: add VDEC clock IDs dt-bindings: clock: axg-audio: unexpose controller inputs dt-bindings: clk: g12a-clkc: add PCIE PLL clock ID clk: g12a-aoclk: re-export CLKID_AO_SAR_ADC_SEL clock id clk: meson-g12a: add cpu clock bindings commit 55d76e83a39d2cba7ed686327498efb386b7e8f7 Author: Neil Armstrong Date: Wed Mar 13 15:10:30 2019 +0100 dt-bindings: power: amlogic, meson-gx-pwrc: Add G12A compatible The Amlogic G12A has a slighly different Power Control, but uses the same address space and sysctrl registers. Signed-off-by: Neil Armstrong Reviewed-by: Rob Herring Signed-off-by: Kevin Hilman commit 7e8eda734d30de81d06a949c9bf9853c445ede4e Author: Ondrej Mosnacek Date: Wed Apr 10 11:14:20 2019 +0200 ntp: Audit NTP parameters adjustment Emit an audit record every time selected NTP parameters are modified from userspace (via adjtimex(2) or clock_adjtime(2)). These parameters may be used to indirectly change system clock, and thus their modifications should be audited. Such events will now generate records of type AUDIT_TIME_ADJNTPVAL containing the following fields: - op -- which value was adjusted: - offset -- corresponding to the time_offset variable - freq -- corresponding to the time_freq variable - status -- corresponding to the time_status variable - adjust -- corresponding to the time_adjust variable - tick -- corresponding to the tick_usec variable - tai -- corresponding to the timekeeping's TAI offset - old -- the old value - new -- the new value Example records: type=TIME_ADJNTPVAL msg=audit(1530616044.507:7): op=status old=64 new=8256 type=TIME_ADJNTPVAL msg=audit(1530616044.511:11): op=freq old=0 new=49180377088000 The records of this type will be associated with the corresponding syscall records. An overview of parameter changes that can be done via do_adjtimex() (based on information from Miroslav Lichvar) and whether they are audited: __timekeeping_set_tai_offset() -- sets the offset from the International Atomic Time (AUDITED) NTP variables: time_offset -- can adjust the clock by up to 0.5 seconds per call and also speed it up or slow down by up to about 0.05% (43 seconds per day) (AUDITED) time_freq -- can speed up or slow down by up to about 0.05% (AUDITED) time_status -- can insert/delete leap seconds and it also enables/ disables synchronization of the hardware real-time clock (AUDITED) time_maxerror, time_esterror -- change error estimates used to inform userspace applications (NOT AUDITED) time_constant -- controls the speed of the clock adjustments that are made when time_offset is set (NOT AUDITED) time_adjust -- can temporarily speed up or slow down the clock by up to 0.05% (AUDITED) tick_usec -- a more extreme version of time_freq; can speed up or slow down the clock by up to 10% (AUDITED) Signed-off-by: Ondrej Mosnacek Reviewed-by: Richard Guy Briggs Reviewed-by: Thomas Gleixner Signed-off-by: Paul Moore commit 2d87a0674bd60d855e4008e2d84f5b23d7cb9b7d Author: Ondrej Mosnacek Date: Wed Apr 10 11:14:19 2019 +0200 timekeeping: Audit clock adjustments Emit an audit record whenever the system clock is changed (i.e. shifted by a non-zero offset) by a syscall from userspace. The syscalls than can (at the time of writing) trigger such record are: - settimeofday(2), stime(2), clock_settime(2) -- via do_settimeofday64() - adjtimex(2), clock_adjtime(2) -- via do_adjtimex() The new records have type AUDIT_TIME_INJOFFSET and contain the following fields: - sec -- the 'seconds' part of the offset - nsec -- the 'nanoseconds' part of the offset Example record (time was shifted backwards by ~15.875 seconds): type=TIME_INJOFFSET msg=audit(1530616049.652:13): sec=-16 nsec=124887145 The records of this type will be associated with the corresponding syscall records. Signed-off-by: Ondrej Mosnacek Reviewed-by: Richard Guy Briggs Reviewed-by: Thomas Gleixner [PM: fixed a line width problem in __audit_tk_injoffset()] Signed-off-by: Paul Moore commit 2c88e3c7ec32d7a40cc7c9b4a487cf90e4671bdd Author: Yufen Yu Date: Tue Apr 2 20:06:34 2019 +0800 block: fix use-after-free on gendisk commit 2da78092dda "block: Fix dev_t minor allocation lifetime" specifically moved blk_free_devt(dev->devt) call to part_release() to avoid reallocating device number before the device is fully shutdown. However, it can cause use-after-free on gendisk in get_gendisk(). We use md device as example to show the race scenes: Process1 Worker Process2 md_free blkdev_open del_gendisk add delete_partition_work_fn() to wq __blkdev_get get_gendisk put_disk disk_release kfree(disk) find part from ext_devt_idr get_disk_and_module(disk) cause use after free delete_partition_work_fn put_device(part) part_release remove part from ext_devt_idr Before is removed from ext_devt_idr by delete_partition_work_fn(), we can find the devt and then access gendisk by hd_struct pointer. But, if we access the gendisk after it have been freed, it can cause in use-after-freeon gendisk in get_gendisk(). We fix this by adding a new helper blk_invalidate_devt() in delete_partition() and del_gendisk(). It replaces hd_struct pointer in idr with value 'NULL', and deletes the entry from idr in part_release() as we do now. Thanks to Jan Kara for providing the solution and more clear comments for the code. Fixes: 2da78092dda1 ("block: Fix dev_t minor allocation lifetime") Cc: Al Viro Reviewed-by: Bart Van Assche Reviewed-by: Keith Busch Reviewed-by: Jan Kara Suggested-by: Jan Kara Signed-off-by: Yufen Yu Signed-off-by: Jens Axboe commit 7d90fcc14a25b1ba715427f2af706809bb56a6f4 Author: Tony Lindgren Date: Sun Apr 7 11:12:54 2019 -0700 power: supply: cpcap-charger: Fix pointless EPROBE_DEFER warnings With loadable modules we may get the following during init: could not initialize VBUS or ID IIO: -517 Let's not print any pointless error messages for deferred probe. Signed-off-by: Tony Lindgren Acked-by: Pavel Machek Signed-off-by: Sebastian Reichel commit ffaf6f6773af7d2bad983f43f6ffb4246591a578 Author: Tony Lindgren Date: Sun Apr 7 11:12:53 2019 -0700 power: supply: cpcap-battery: Fix pointless EPROBE_DEFER warnings With loadable modules we may get the following during init: could not initialize VBUS or ID IIO: -517 Let's not print any pointless error messages for deferred probe. Signed-off-by: Tony Lindgren Acked-by: Pavel Machek Signed-off-by: Sebastian Reichel commit 5fc27a54192687a41df3d7fd70e0648bb1ca391e Author: Tony Lindgren Date: Sun Apr 7 11:12:52 2019 -0700 power: supply: cpcap-battery: Use accumulator for current and power average We should not use measured current value for average since we have proper coulomb counter values available. Using measured current value should be only used when the value is queried at a higher rate than the 250 ms rate the coulomb counter is configured to run at. Cc: Pavel Machek Signed-off-by: Tony Lindgren Signed-off-by: Sebastian Reichel commit 35439b7ab2dbd458377efaa979820360f4951784 Author: Tony Lindgren Date: Sun Apr 7 11:12:51 2019 -0700 power: supply: cpcap-battery: Fix coulomb counter calibration register use The coulomb counter calibration is not CCO, it's CCM. And the CCM is nine bits wide signed register, so let's use sign_extend32() for it. Signed-off-by: Tony Lindgren Acked-by: Pavel Machek Signed-off-by: Sebastian Reichel commit c68b901ac4fa969db8917b6a9f9b40524a690d20 Author: Tony Lindgren Date: Sun Apr 7 11:12:50 2019 -0700 power: supply: cpcap-battery: Fix signed counter sample register The accumulator sample register is signed 32-bits wide register on droid 4. And only the earlier version of cpcap has a signed 24-bits wide register. We're currently passing it around as unsigned, so let's fix that and use sign_extend32() for the earlier revision. Signed-off-by: Tony Lindgren Acked-by: Pavel Machek Signed-off-by: Sebastian Reichel commit 1a9aadc86ad45f5281ea633c244b6b770dc85b5b Author: Tony Lindgren Date: Sun Apr 7 11:12:49 2019 -0700 power: supply: cpcap-battery: Fix low battery check We need to check current instead of the charge counter to see if a charger is connected. The charge counter shows the cumulated value instead of the current charge current and can be negative or positive. Cc: Pavel Machek Signed-off-by: Tony Lindgren Signed-off-by: Sebastian Reichel commit 6f76aa94e1d2f4e8758f65fd3ea08006303a1582 Merge: df68c44c720a dbe7208c6c4a Author: Sebastian Reichel Date: Mon Apr 15 22:40:29 2019 +0200 Merge branch 'psy-fixes' into psy-next Merge fixes branch into next branch for cpcap-battery patches. Signed-off-by: Sebastian Reichel commit 47a1a225ab35038ac158494fac87b4b7b2e59d58 Merge: c7cf89b5dd38 2566f10676ba Author: David S. Miller Date: Mon Apr 15 13:39:19 2019 -0700 Merge branch 'hns3-next' Huazhong Tan says: ==================== net: hns3: fixes sparse: warning and type error This patchset fixes a sparse warning and a overflow problem. ==================== Signed-off-by: David S. Miller commit 2566f10676ba996b745e138f54f3e2f974311692 Author: Yunsheng Lin Date: Mon Apr 15 21:48:39 2019 +0800 net: hns3: fix for vport->bw_limit overflow problem When setting vport->bw_limit to hdev->tm_info.pg_info[0].bw_limit in hclge_tm_vport_tc_info_update, vport->bw_limit can be as big as HCLGE_ETHER_MAX_RATE (100000), which can not fit into u16 (65535). So this patch fixes it by using u32 for vport->bw_limit. Fixes: 848440544b41 ("net: hns3: Add support of TX Scheduler & Shaper to HNS3 driver") Reported-by: Dan Carpenter Signed-off-by: Yunsheng Lin Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 8a9a654b5b5233e7459abcc5f65c53df14b33f67 Author: Jian Shen Date: Mon Apr 15 21:48:38 2019 +0800 net: hns3: fix sparse: warning when calling hclge_set_vlan_filter_hw() The input parameter "proto" in function hclge_set_vlan_filter_hw() is asked to be __be16, but got u16 when calling it in function hclge_update_port_base_vlan_cfg(). This patch fixes it by converting it with htons(). Reported-by: kbuild test robot Fixes: 21e043cd8124 ("net: hns3: fix set port based VLAN for PF") Signed-off-by: Jian Shen Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit c7cf89b5dd38a9f2aa410f70f80ba0c4c4d02239 Merge: 93144b0ecde5 9dde27de3e5e Author: David S. Miller Date: Mon Apr 15 13:36:51 2019 -0700 Merge branch 'sctp-fully-support-memory-accounting' Xin Long says: ==================== sctp: fully support memory accounting sctp memory accounting is added in this patchset by using these kernel APIs on send side: - sk_mem_charge() - sk_mem_uncharge() - sk_wmem_schedule() - sk_under_memory_pressure() - sk_mem_reclaim() and these on receive side: - sk_mem_charge() - sk_mem_uncharge() - sk_rmem_schedule() - sk_under_memory_pressure() - sk_mem_reclaim() With sctp memory accounting, we can limit the memory allocation by either sysctl: # sysctl -w net.sctp.sctp_mem="10 20 50" or cgroup: # echo $((8<<14)) > \ /sys/fs/cgroup/memory/sctp_mem/memory.kmem.tcp.limit_in_bytes When the socket is under memory pressure, the send side will block and wait, while the receive side will renege or drop. v1->v2: - add the missing Reported/Tested/Acked/-bys. ==================== Signed-off-by: David S. Miller commit 9dde27de3e5efa0d032f3c891a0ca833a0d31911 Author: Xin Long Date: Mon Apr 15 17:15:07 2019 +0800 sctp: implement memory accounting on rx path sk_forward_alloc's updating is also done on rx path, but to be consistent we change to use sk_mem_charge() in sctp_skb_set_owner_r(). In sctp_eat_data(), it's not enough to check sctp_memory_pressure only, which doesn't work for mem_cgroup_sockets_enabled, so we change to use sk_under_memory_pressure(). When it's under memory pressure, sk_mem_reclaim() and sk_rmem_schedule() should be called on both RENEGE or CHUNK DELIVERY path exit the memory pressure status as soon as possible. Note that sk_rmem_schedule() is using datalen to make things easy there. Reported-by: Matteo Croce Tested-by: Matteo Croce Acked-by: Neil Horman Acked-by: Marcelo Ricardo Leitner Signed-off-by: Xin Long Signed-off-by: David S. Miller commit 1033990ac5b2ab6cee93734cb6d301aa3a35bcaa Author: Xin Long Date: Mon Apr 15 17:15:06 2019 +0800 sctp: implement memory accounting on tx path Now when sending packets, sk_mem_charge() and sk_mem_uncharge() have been used to set sk_forward_alloc. We just need to call sk_wmem_schedule() to check if the allocated should be raised, and call sk_mem_reclaim() to check if the allocated should be reduced when it's under memory pressure. If sk_wmem_schedule() returns false, which means no memory is allowed to allocate, it will block and wait for memory to become available. Note different from tcp, sctp wait_for_buf happens before allocating any skb, so memory accounting check is done with the whole msg_len before it too. Reported-by: Matteo Croce Tested-by: Matteo Croce Acked-by: Neil Horman Acked-by: Marcelo Ricardo Leitner Signed-off-by: Xin Long Signed-off-by: David S. Miller commit 93144b0ecde584e1e480abf45429ef47a5e02ac9 Merge: 95337b982107 3321cff3c570 Author: David S. Miller Date: Mon Apr 15 13:29:21 2019 -0700 Merge branch 'mlxsw-Add-neighbour-offload-indication' Ido Schimmel says: ==================== mlxsw: Add neighbour offload indication Neighbour entries are programmed to the device's table so that the correct destination MAC will be specified in a packet after it was routed. Despite being programmed to the device and unlike routes and FDB entries, neighbour entries are currently not marked as offloaded. This patchset changes that. Patch #1 is a preparatory patch to make sure we only mark a neighbour as offloaded in case it was successfully programmed to the device. Patch #2 sets the offload indication on neighbours. Patch #3 adds a test to verify above mentioned functionality. Patched iproute2 version that prints the offload indication is available here [1]. [1] https://github.com/idosch/iproute2/tree/idosch-next ==================== Signed-off-by: David S. Miller commit 3321cff3c5706833651314fa5a3ba20ce63089fc Author: Ido Schimmel Date: Sun Apr 14 18:57:50 2019 +0000 selftests: mlxsw: Test neighbour offload indication Test that neighbour entries are marked as offloaded. Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit caf345a18b2fe14f9b3ad50b8d4853e76ae999e8 Author: Ido Schimmel Date: Sun Apr 14 18:57:49 2019 +0000 mlxsw: spectrum_router: Add neighbour offload indication In a similar fashion to routes and FDB entries, the neighbour table is reflected to the device. Set an offload indication on the neighbour in case it was programmed to the device. Signed-off-by: Ido Schimmel Acked-by: Jiri Pirko Reviewed-by: David Ahern Signed-off-by: David S. Miller commit a85e84e0301b069769f187d281576eaddccb32d6 Author: Ido Schimmel Date: Sun Apr 14 18:57:47 2019 +0000 mlxsw: spectrum_router: Propagate neighbour update errors Next patch will add offload indication to neighbours, but the indication should only be altered in case the neighbour was successfully added to / deleted from the device. Propagate neighbour update errors, so that they could be taken into account by the next patch. Signed-off-by: Ido Schimmel Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit df68c44c720ae6415cb1f0c0d9a2e9893f3b1765 Author: Artur Rojek Date: Sun Apr 14 14:40:39 2019 +0200 power: supply: gpio-charger: Add support for charger status. Introduce optional support of POWER_SUPPLY_PROP_STATUS for chargers which provide charging status GPIO. Signed-off-by: Artur Rojek Signed-off-by: Sebastian Reichel commit 6aae57b788132d2bbb4d58ad0aa2f324eac3a7d4 Author: Artur Rojek Date: Sun Apr 14 14:40:38 2019 +0200 dt-bindings: power: supply: Add charge-status-gpios property Add documentation for the "charge-status-gpios" property. Update the "gpios" property with a valid example. Signed-off-by: Artur Rojek Reviewed-by: Rob Herring Signed-off-by: Sebastian Reichel commit c856dbc887aa5b6674a565dbe227164958103a51 Author: Manasi Navare Date: Mon Apr 15 11:22:10 2019 -0700 drm/i915: Nuke drm_crtc_state and use intel_atomic_state instead This is one of the patches to start replacing drm pointers and use the intel_atomic_state and intel_crtc to derive the necessary intel state variables required for the intel modeset functions. v3: * Remove the unwanted newline (Ville) v2: * Flip the function arguments (Ville) * Remove some remaining instances of drm pointers (Ville) * Use old_crtc_state and new_crtc_state (Ville) Suggested-by: Ville Syrjala Cc: Ville Syrjala Signed-off-by: Manasi Navare Reviewed-by: Ville Syrjala Link: https://patchwork.freedesktop.org/patch/msgid/20190415182210.13347-1-manasi.d.navare@intel.com commit 5ec87ecde235a2e0aa99ceae57b9d0978461ebe4 Author: Enric Balletbo i Serra Date: Mon Apr 15 16:29:18 2019 +0200 power: supply: core: fix typo in function to get current charge control limit There is a spelling mistake in ps_get_cur_charge_cntl_limit function so replace 'chrage' for 'charge'. Signed-off-by: Enric Balletbo i Serra Signed-off-by: Sebastian Reichel commit 95337b982107d7d90f36d048a13ad8448d8b5df6 Merge: e62b2fd5d3b4 dc2f4189dcd2 Author: David S. Miller Date: Mon Apr 15 12:07:35 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next Pablo Neira Ayuso says: ==================== Netfilter/IPVS updates for net-next The following patchset contains Netfilter updates for net-next: 1) Remove the broute pseudo hook, implement this from the bridge prerouting hook instead. Now broute becomes real table in ebtables, from Florian Westphal. This also includes a size reduction patch for the bridge control buffer area via squashing boolean into bitfields and a selftest. 2) Add OS passive fingerprint version matching, from Fernando Fernandez. 3) Support for gue encapsulation for IPVS, from Jacky Hu. 4) Add support for NAT to the inet family, from Florian Westphal. This includes support for masquerade, redirect and nat extensions. 5) Skip interface lookup in flowtable, use device in the dst object. 6) Add jiffies64_to_msecs() and use it, from Li RongQing. 7) Remove unused parameter in nf_tables_set_desc_parse(), from Colin Ian King. 8) Statify several functions, patches from YueHaibing and Florian Westphal. 9) Add an optimized version of nf_inet_addr_cmp(), from Li RongQing. 10) Merge route extension to core, also from Florian. 11) Use IS_ENABLED(CONFIG_NF_NAT) instead of NF_NAT_NEEDED, from Florian. 12) Merge ip/ip6 masquerade extensions, from Florian. This includes netdevice notifier unification. ==================== Signed-off-by: David S. Miller commit 9ccd75c55ac50f0ac23cc5bbb724613d2d7f1c89 Author: Ryder Lee Date: Sun Feb 17 21:50:31 2019 +0800 dt-bindings: soc: fix a typo for MT7623A This fixes a typo for MT7623A Signed-off-by: Ryder Lee Reviewed-by: Rob Herring Signed-off-by: Matthias Brugger commit c4fcbf1186e777c315d934202e9f0faf1987fe3a Author: Ryder Lee Date: Sun Feb 17 21:50:30 2019 +0800 dt-bindings: mediatek: update bindings for MT7629 SoC This updates bindings for MT7629 SoC, which includes very basic items such as system timer, UART, sysirq and scpsys unit. Signed-off-by: Ryder Lee Cc: Marc Zyngier Cc: Greg Kroah-Hartman Reviewed-by: Rob Herring Signed-off-by: Matthias Brugger commit dc2f4189dcd2c87e211d30d9524ae8ebe19af577 Author: Stephen Rothwell Date: Sat Apr 13 14:03:36 2019 +1000 bridge: only include nf_queue.h if needed After merging the netfilter-next tree, today's linux-next build (powerpc ppc44x_defconfig) failed like this: In file included from net/bridge/br_input.c:19: include/net/netfilter/nf_queue.h:16:23: error: field 'state' has incomplete type struct nf_hook_state state; ^~~~~ Fixes: 971502d77faa ("bridge: netfilter: unroll NF_HOOK helper in bridge input path") Signed-off-by: Stephen Rothwell Signed-off-by: Pablo Neira Ayuso commit c750e6929d3c76d13d1d0ba475989d6dd74785d5 Author: Tetsuo Handa Date: Fri Apr 12 19:59:34 2019 +0900 selinux: Check address length before reading address family KMSAN will complain if valid address length passed to bind()/connect() is shorter than sizeof("struct sockaddr"->sa_family) bytes. Signed-off-by: Tetsuo Handa Signed-off-by: Paul Moore commit e5b258e53e58a3afd228bbef4d376c7a470cfa58 Author: Christina Quast Date: Fri Apr 12 18:26:27 2019 +0200 ARM: dts: am335x: wega: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit b1e0c487f31d1fb9536c53301a079e73f2758537 Author: Christina Quast Date: Fri Apr 12 18:26:26 2019 +0200 ARM: dts: am335x: sl50: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit aa7ed183730ab7667293128ad4d11bf1273f5850 Author: Christina Quast Date: Fri Apr 12 18:26:25 2019 +0200 ARM: dts: am335x: shc: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit 631493a16af3acbd7f964f7b2ec8bf76d96a9400 Author: Christina Quast Date: Fri Apr 12 18:26:24 2019 +0200 ARM: dts: am335x: sbc-t335: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit c5ebf24a41d30936cfff3d5b5d762b8e7023fa58 Author: Christina Quast Date: Fri Apr 12 18:26:23 2019 +0200 ARM: dts: am335x: sancloud-bbe: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit a3328bf02d77262e396e9382a10af4f7a6c0e5f1 Author: Christina Quast Date: Fri Apr 12 18:26:22 2019 +0200 ARM: dts: am335x: phycore-som: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit 891ffb8fcd464bd88d385fe7dfbf66f65bc26253 Author: Christina Quast Date: Fri Apr 12 18:26:21 2019 +0200 ARM: dts: am335x: pepper: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit 898c4a59bc62ab6a1beee8ae0d606b8ec5f65e30 Author: Christina Quast Date: Fri Apr 12 18:26:20 2019 +0200 ARM: dts: am335x: pdu001: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit 781288d2bdeff0bd79d129d2bd442e1b20f5080e Author: Christina Quast Date: Fri Apr 12 18:26:19 2019 +0200 ARM: dts: am335x: pcm-953: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit 558fee9ab5042e46f952f7b2db4f65bb5a7a8d1e Author: Christina Quast Date: Fri Apr 12 18:26:18 2019 +0200 ARM: dts: am335x: osd335x-common: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit 443fca762bc33986262bfc7cee5800053f05606b Author: Christina Quast Date: Fri Apr 12 18:26:17 2019 +0200 ARM: dts: am335x: osd3358-sm-red: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit affcce6f7c5c608baf89403443eaa27919aea28b Author: Christina Quast Date: Fri Apr 12 18:26:16 2019 +0200 ARM: dts: am335x: nano: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit c68a4ffd3d75d5e54e8b355218d622d0f4d70f9d Author: Christina Quast Date: Fri Apr 12 18:26:15 2019 +0200 ARM: dts: am335x: moxa-uc-8100-me-t: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit 4a424b0b168ed8ecb301ac6f9b86f1240149afe3 Author: Christina Quast Date: Fri Apr 12 18:26:14 2019 +0200 ARM: dts: am335x: moxa-uc-2101: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit 876144dd533296b0c94b68a8d775d117f55ffefa Author: Christina Quast Date: Fri Apr 12 18:26:13 2019 +0200 ARM: dts: am335x: moxa-uc-2100-common: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit c422b10e88f00edd840aa830b395519d08fbbabd Author: Christina Quast Date: Fri Apr 12 18:26:12 2019 +0200 ARM: dts: am335x: lxm: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit 387fbf73ebe71d7c392e9c258a404c8f9fb3ec68 Author: Christina Quast Date: Fri Apr 12 18:26:11 2019 +0200 ARM: dts: am335x: igep0033: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit ddd0dc915647f12b5cbfa0a5e7d65389dcd71771 Author: Manivannan Sadhasivam Date: Sat Jan 5 12:58:58 2019 +0530 arm64: dts: hisilicon: hi3670: Add UFS controller support Add UFS controller support for HiSilicon HI3670 SoC. Signed-off-by: Manivannan Sadhasivam Signed-off-by: Wei Xu commit d7ba866759c63a65a66eb4f329d6f2e0e8c57a0c Merge: cdf3e3deb747 dc4060a5dc25 Author: Jens Axboe Date: Mon Apr 15 08:14:19 2019 -0600 Merge tag 'v5.1-rc5' into for-5.2/block Pull in v5.1-rc5 to resolve two conflicts. One is in BFQ, in just a comment, and is trivial. The other one is a conflict due to a later fix in the bio multi-page work, and needs a bit more care. * tag 'v5.1-rc5': (476 commits) Linux 5.1-rc5 fs: prevent page refcount overflow in pipe_buf_get mm: prevent get_user_pages() from overflowing page refcount mm: add 'try_get_page()' helper function mm: make page ref count overflow check tighter and more explicit clk: imx: Fix PLL_1416X not rounding rates clk: mediatek: fix clk-gate flag setting arm64: futex: Fix FUTEX_WAKE_OP atomic ops with non-zero result value iommu/amd: Set exclusion range correctly clang-format: Update with the latest for_each macro list perf/core: Fix perf_event_disable_inatomic() race block: fix the return errno for direct IO Revert "SUNRPC: Micro-optimise when the task is known not to be sleeping" NFSv4.1 fix incorrect return value in copy_file_range xprtrdma: Fix helper that drains the transport NFS: Fix handling of reply page vector NFS: Forbid setting AF_INET6 to "struct sockaddr_in"->sin_family. dma-debug: only skip one stackframe entry platform/x86: pmc_atom: Drop __initconst on dmi table nvmet: fix discover log page when offsets are used ... Signed-off-by: Jens Axboe commit 14e14aaf61321ba30d0bbdf4c4668f260ca1141c Author: Nick Crews Date: Thu Apr 4 16:54:15 2019 -0600 platform/chrome: wilco_ec: Standardize mailbox interface The current API for the wilco EC mailbox interface is bad. It assumes that most messages sent to the EC follow a similar structure, with a command byte in MBOX[0], followed by a junk byte, followed by actual data. This doesn't happen in several cases, such as setting the RTC time, using the raw debugfs interface, and reading or writing properties such as the Peak Shift policy (this last to be submitted soon). Similarly for the response message from the EC, the current interface assumes that the first byte of data is always 0, and the second byte is unused. However, in both setting and getting the RTC time, in the debugfs interface, and for reading and writing properties, this isn't true. The current way to resolve this is to use WILCO_EC_FLAG_RAW* flags to specify when and when not to skip these initial bytes in the sent and received message. They are confusing and used so much that they are normal, and not exceptions. In addition, the first byte of response in the debugfs interface is still always skipped, which is weird, since this raw interface should be giving the entire result. Additionally, sent messages assume the first byte is a command, and so struct wilco_ec_message contains the "command" field. In setting or getting properties however, the first byte is not a command, and so this field has to be filled with a byte that isn't actually a command. This is again inconsistent. wilco_ec_message contains a result field as well, copied from wilco_ec_response->result. The message result field should be removed: if the message fails, the cause is already logged, and the callers are alerted. They will never care about the actual state of the result flag. These flags and different cases make the wilco_ec_transfer() function, used in wilco_ec_mailbox(), really gross, dealing with a bunch of different cases. It's difficult to figure out what it is doing. Finally, making these assumptions about the structure of a message make it so that the messages do not correspond well with the specification for the EC's mailbox interface. For instance, this interface specification may say that MBOX[9] in the received message contains some information, but the calling code needs to remember that the first byte of response is always skipped, and because it didn't set the RESPONSE_RAW flag, the next byte is also skipped, so this information is actually contained within wilco_ec_message->response_data[7]. This makes it difficult to maintain this code in the future. To fix these problems this patch standardizes the mailbox interface by: - Removing the WILCO_EC_FLAG_RAW* flags - Removing the command and reserved_raw bytes from wilco_ec_request - Removing the mbox0 byte from wilco_ec_response - Simplifying wilco_ec_transfer() because of these changes - Gives the callers of wilco_ec_mailbox() the responsibility of exactly and consistently defining the structure of the mailbox request and response - Removing command and result from wilco_ec_message. This results in the reduction of total code, and makes it much more maintainable and understandable. Signed-off-by: Nick Crews Acked-by: Alexandre Belloni Signed-off-by: Enric Balletbo i Serra commit 94d4e7af14a1170e34cf082d92e4c02de9e9fb88 Author: Enrico Granata Date: Wed Apr 3 15:40:36 2019 -0700 platform/chrome: cros_ec_proto: check for NULL transfer function As new transfer mechanisms are added to the EC codebase, they may not support v2 of the EC protocol. If the v3 initial handshake transfer fails, the kernel will try and call cmd_xfer as a fallback. If v2 is not supported, cmd_xfer will be NULL, and the code will end up causing a kernel panic. Add a check for NULL before calling the transfer function, along with a helpful comment explaining how one might end up in this situation. Signed-off-by: Enrico Granata Reviewed-by: Jett Rink Signed-off-by: Enric Balletbo i Serra commit 626961dd6d32edcdbea1ebc488305533960b5d08 Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:40 2019 +0530 PCI: dwc: Add const qualifier to struct dw_pcie_ep_ops Add const qualifier to struct dw_pcie_ep_ops member of struct dw_pcie_ep. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit 2a9a801620efac92885fc9cd53594c0b9aba87a4 Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:39 2019 +0530 PCI: endpoint: Add support to specify alignment for buffers allocated to BARs The address that is allocated using pci_epf_alloc_space() is directly written to the target address of the Inbound Address Translation unit (ie the HW component implementing inbound address decoding) on endpoint controllers. Designware IP [1] has a configuration parameter (CX_ATU_MIN_REGION_SIZE [2]) which has 64KB as default value and the lower 16 bits of the Base, Limit and Target registers of the Inbound ATU are fixed to zero. If the programmed memory address is not aligned to 64 KB boundary this causes memory corruption. Modify pci_epf_alloc_space() API to take alignment size as argument in order to allocate buffers to be mapped to BARs with an alignment that suits the platform where they are used. Add an 'align' parameter to epc_features which can be used by platform drivers to specify the BAR allocation alignment requirements and use this while invoking pci_epf_alloc_space(). [1] "I/O and MEM Match Modes" section in DesignWare Cores PCI Express Controller Databook version 4.90a [2] http://www.ti.com/lit/ug/spruid7c/spruid7c.pdf Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit fbb2de891cc4d69c0c80c4116cf870a99235cfe8 Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:38 2019 +0530 PCI: keystone: Add support to set the max link speed from DT PCIe in TI's AM654 devices is by default configured to work in GEN3 mode. However PCIe does not work reliably in GEN3 mode because of SERDES configuration. Add support to set the link speed to GEN1, GEN2 or GEN3 based on "max-link-speed" DT property with GEN2 as the default speed if "max-link-speed" is absent. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit 40e5d614a0cdbf50dc3caa7eb10bd838edcb3ba5 Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:37 2019 +0530 PCI: OF: Allow of_pci_get_max_link_speed() to be used by PCI Endpoint drivers of_pci_get_max_link_speed() is built only if CONFIG_PCI is enabled. Make of_pci_get_max_link_speed() to be also used by PCI Endpoint controllers with just CONFIG_PCI_ENDPOINT enabled. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Sekhar Nori Signed-off-by: Lorenzo Pieralisi Acked-by: Bjorn Helgaas commit b22af42b3e57c3a49a4c4a54c7d8a1363af75e90 Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:36 2019 +0530 PCI: keystone: Invoke phy_reset() API before enabling PHY SERDES connected to the PCIe controller in AM654 requires power on reset enable (POR_EN) to be set in the SERDES. The SERDES driver sets POR_EN in the reset ops and it has to be invoked before init or enable ops. In order for SERDES driver to set POR_EN, invoke the phy_reset() API in pci-keystone driver. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit 18b0415bc802a8bab5dedba5ae2757e83259e6ee Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:35 2019 +0530 PCI: keystone: Add support for PCIe RC in AM654x Platforms Add PCIe RC support for AM654x Platforms in pci-keystone.c Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit 162aaa3b6cc151720392adbdf7c6db9a7e06c769 Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:34 2019 +0530 dt-bindings: PCI: Add PCI RC DT binding documentation for AM654 Add devicetree binding documentation for PCIe in RC mode present in AM654 SoC. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi Reviewed-by: Rob Herring commit f316a2b53cd7f37963ae20ec7072eb27a349a4ce Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:33 2019 +0530 PCI: keystone: Prevent ARM32 specific code to be compiled for ARM64 hook_fault_code() is an ARM32 specific API for hooking into data abort. AM65X platforms (that integrate ARM v8 cores and select CONFIG_ARM64 as arch) rely on pci-keystone.c but on them the enumeration of a non-present BDF does not trigger a bus error, so the fixup exception provided by calling hook_fault_code() is not needed and can be guarded with CONFIG_ARM. Signed-off-by: Kishon Vijay Abraham I [lorenzo.pieralisi@arm.com: commit log] Signed-off-by: Lorenzo Pieralisi commit 2aadcb0cd39198833fabe1c45084f78686e71a6c Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:32 2019 +0530 PCI: dwc: Fix ATU identification for designware version >= 4.80 Synopsys designware version >= 4.80 uses a separate register space for programming ATU. The current code identifies if there exists a separate register space by accessing the register address of ATUs in designware version < 4.80. Accessing this address results in abort in the case of K2G. Fix it here by adding "version" member to struct dw_pcie. This should be set by platform specific drivers and designware core will use it to identify if the platform has a separate ATU space. For platforms which have not populated the version member, the old method of identification will still be used. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit a9f4c2d2f99ec85ebc734a5bfb21a2cf93c169ad Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:31 2019 +0530 PCI: dwc: Enable iATU unroll for endpoint too iatu_unroll_enabled flag is set only for Designware in host mode. However iATU unroll can be applicable for endpoint mode too. Set iatu_unroll_enabled flag in dw_pcie_setup() which is common for both host mode and endpoint mode. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit 26f51e85b3b61106ea8b9e1c0a277aa3851f7433 Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:30 2019 +0530 dt-bindings: PCI: Document "atu" reg-names Document "atu" reg-names required to get the register space for ATU in Synopsys designware core version >= 4.80. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit 156c6fef75a41bc463cc1e3c1b45de140443ae31 Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:29 2019 +0530 PCI: keystone: Explicitly set the PCIe mode Explicitly set the PCIe mode to BOOTCFG_DEVCFG instead of always relying on the default values. This is required when EP mode has to be explicitly written to BOOTCFG_DEVCFG register. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit 1c55c4263fe76f1a65b198787495c7f5f9e48002 Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:28 2019 +0530 dt-bindings: PCI: Add dt-binding to configure PCIe mode Add "ti,syscon-pcie-mode" dt-binding to hold phandle to the syscon register that should be used to configure PCIe in RC mode or EP mode. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi Reviewed-by: Rob Herring commit b1dee41b76927747c1c63c5196ce9eaec6d0e81a Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:27 2019 +0530 PCI: keystone: Move resources initialization to prepare for EP support Move platform_get_resource() calls for resources that are applicable to both host and endpoint mode (ie "dbics" and "app") from ks_add_pcie_port() to the probe() callback, in preparation for adding endpoint support to pci-keystone driver. No functional change intended. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit 78cdfcea289a59026a8410284e972658410e3447 Author: Wolfram Sang Date: Tue Apr 2 18:28:23 2019 +0200 i2c: brcmstb: remove unused struct member No further occurences in the driver. Fixes: dd1aa2524bc5 ("i2c: brcmstb: Add Broadcom settop SoC i2c controller driver") Signed-off-by: Wolfram Sang Signed-off-by: Wolfram Sang commit 25708278f8100b9e5e79b2f24637c8f222256729 Author: Qii Wang Date: Tue Apr 2 20:35:59 2019 +0800 i2c: mediatek: Add i2c support for MediaTek MT8183 Add i2c compatible for MT8183. Compare to MT2712 i2c controller, MT8183 has different register offsets. Ltiming_reg is added to adjust low width of SCL. Arb clock and dma_sync are needed. Signed-off-by: Qii Wang Reviewed-by: Nicolas Boichat Reviewed-by: Matthias Brugger Signed-off-by: Wolfram Sang commit a15c91bac6957065090360c4b733859a52274fb6 Author: Qii Wang Date: Tue Apr 2 20:35:58 2019 +0800 i2c: mediatek: Add i2c and apdma sync in i2c driver When i2c and apdma use different source clocks, we should enable synchronization between them. Signed-off-by: Qii Wang Reviewed-by: Nicolas Boichat Reviewed-by: Matthias Brugger Signed-off-by: Wolfram Sang commit cad6dc5d2887e3d646848849e5e56863480491f4 Author: Qii Wang Date: Tue Apr 2 20:35:57 2019 +0800 i2c: mediatek: Add arb clock in i2c driver When two i2c controllers are internally connected to the same GPIO pins, the arb clock is needed to ensure that the waveforms do not interfere with each other. And we also need to enable the interrupt to find arb lost, old i2c controllers also have the bit. Signed-off-by: Qii Wang Reviewed-by: Nicolas Boichat Reviewed-by: Matthias Brugger Signed-off-by: Wolfram Sang commit a3438152c66728e5dc15a3aa167b836ce7329e68 Author: Qii Wang Date: Tue Apr 2 20:35:56 2019 +0800 dt-bindings: i2c: Add Mediatek MT8183 i2c binding Add MT8183 i2c binding to binding file. Compare to MT2712 i2c controller, MT8183 has different registers, offsets, and clock. Signed-off-by: Qii Wang Reviewed-by: Rob Herring Reviewed-by: Matthias Brugger Signed-off-by: Wolfram Sang commit bc6eaf17097b502919b42098a088fac700e48452 Author: Qii Wang Date: Tue Apr 2 20:35:55 2019 +0800 i2c: mediatek: Add offsets array for new i2c registers New i2c registers would have different offsets, so we use different offsets array to distinguish different i2c registers version. Signed-off-by: Qii Wang Reviewed-by: Matthias Brugger Signed-off-by: Wolfram Sang commit 1ab494cc405ce597beec88145488648e59234924 Author: Chris Wilson Date: Sat Apr 13 13:58:20 2019 +0100 drm/i915/selftests: Skip live timeline/suspend tests if wedged If the driver is wedged, we can not issue the requests to exercise the timelines or the system across suspend, so skip the tests. live_hangcheck is there to fail if we cannot recover. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190413125820.14112-4-chris@chris-wilson.co.uk commit a2679b64719085196a8e1762a40e90e92b1f3cf5 Author: Guenter Roeck Date: Wed Apr 3 16:05:28 2019 +0200 platform/chrome: Add CrOS USB PD logging driver The CrOS USB PD logging feature is logically separate functionality of the charge manager, hence has its own driver. The driver logs the event data for the USB PD charger available in some ChromeOS Embedded Controllers. Signed-off-by: Guenter Roeck [remove macro to APPEND_STRING and minor cleanups] Signed-off-by: Enric Balletbo i Serra commit 37a186225a0c020516bafad2727fdcdfc039a1e4 Author: Douglas Anderson Date: Wed Apr 3 13:31:37 2019 -0700 platform/chrome: cros_ec_spi: Transfer messages at high priority The software running on the Chrome OS Embedded Controller (cros_ec) handles SPI transfers in a bit of a wonky way. Specifically if the EC sees too long of a delay in a SPI transfer it will give up and the transfer will be counted as failed. Unfortunately the timeout is fairly short, though the actual number may be different for different EC codebases. We can end up tripping the timeout pretty easily if we happen to preempt the task running the SPI transfer and don't get back to it for a little while. Historically this hasn't been a _huge_ deal because: 1. On old devices Chrome OS used to run PREEMPT_VOLUNTARY. That meant we were pretty unlikely to take a big break from the transfer. 2. On recent devices we had faster / more processors. 3. Recent devices didn't use "cros-ec-spi-pre-delay". Using that delay makes us more likely to trip this use case. 4. For whatever reasons (I didn't dig) old kernels seem to be less likely to trip this. 5. For the most part it's kinda OK if a few transfers to the EC fail. Mostly we're just polling the battery or doing some other task where we'll try again. Even with the above things, this issue has reared its ugly head periodically. We could solve this in a nice way by adding reliable retries to the EC protocol [1] or by re-designing the code in the EC codebase to allow it to wait longer, but that code doesn't ever seem to get changed. ...and even if it did, it wouldn't help old devices. It's now time to finally take a crack at making this a little better. This patch isn't guaranteed to make every cros_ec SPI transfer perfect, but it should improve things by a few orders of magnitude. Specifically you can try this on a rk3288-veyron Chromebook (which is slower and also _does_ need "cros-ec-spi-pre-delay"): md5sum /dev/zero & md5sum /dev/zero & md5sum /dev/zero & md5sum /dev/zero & while true; do cat /sys/class/power_supply/sbs-20-000b/charge_now > /dev/null; done ...before this patch you'll see boatloads of errors. After this patch I don't see any in the testing I did. The way this patch works is by effectively boosting the priority of the cros_ec transfers. As far as I know there is no simple way to just boost the priority of the current process temporarily so the way we accomplish this is by queuing the work on the system_highpri_wq. NOTE: this patch relies on the fact that the SPI framework attempts to push the messages out on the calling context (which is the one that is boosted to high priority). As I understand from earlier (long ago) discussions with Mark Brown this should be a fine assumption. Even if it isn't true sometimes this patch will still not make things worse. [1] https://crbug.com/678675 Signed-off-by: Douglas Anderson Reviewed-by: Matthias Kaehlcke Reviewed-by: Brian Norris Signed-off-by: Enric Balletbo i Serra commit b18e606ff313e20e72b4a53cdddc16f476f2a740 Author: Enric Balletbo i Serra Date: Mon Apr 8 17:05:38 2019 +0200 platform/chrome: cros_ec_debugfs: no need to check return value of debugfs_create functions When calling debugfs functions, there is no need to ever check the return value. The function can work or not, but the code logic should never do something different based on this. Cc: Greg Kroah-Hartman Signed-off-by: Enric Balletbo i Serra Reviewed-by: Guenter Roeck commit b5fd12d6c0fc64c2c2b5ae095e63824083d27151 Author: Takashi Iwai Date: Mon Apr 15 09:03:01 2019 +0200 ALSA: seq: Correct unlock sequence at snd_seq_client_ioctl_unlock() The doubly unlock sequence at snd_seq_client_ioctl_unlock() is tricky. I took a direct unref call since I thought it would avoid misunderstanding, but rather this seems more confusing. Let's use snd_seq_client_unlock() consistently even if they look strange to be called twice, and add more comments for avoiding reader's confusion. Fixes: 6b580f523172 ("ALSA: seq: Protect racy pool manipulation from OSS sequencer") Reviewed-by: Kai Vehmanen Signed-off-by: Takashi Iwai commit 71c733c4e1aeb83e8221e89caeec893d51f88b7b Author: Sowjanya Komatineni Date: Thu Apr 11 12:18:19 2019 -0700 mmc: tegra: add sdhci tegra suspend and resume This patch adds suspend and resume PM ops for tegra SDHCI. Acked-by: Thierry Reding Signed-off-by: Sowjanya Komatineni Signed-off-by: Ulf Hansson commit c07a48c2651965e84d35cf193dfc0e5f7892d612 Author: Adrian Hunter Date: Fri Apr 5 15:40:20 2019 +0300 mmc: sdhci: Remove finish_tasklet Remove finish_tasklet. Requests that require DMA-unmapping or sdhci_reset are completed either in the IRQ thread or a workqueue if the completion is not initiated by the IRQ. Signed-off-by: Adrian Hunter Reviewed-by: Faiz Abbas Signed-off-by: Ulf Hansson commit 19d2f695f4e82794df7465b029c02b104d1b9903 Author: Adrian Hunter Date: Fri Apr 5 15:40:19 2019 +0300 mmc: sdhci: Call mmc_request_done() from IRQ handler if possible In preparation for removing finish_tasklet, call mmc_request_done() from the IRQ handler if possible. That will alleviate the potential loss of performance from shifting away from finish_tasklet. Signed-off-by: Adrian Hunter Reviewed-by: Faiz Abbas Signed-off-by: Ulf Hansson commit e9a072993d69ae2241def3e9a8fe3e974c4d591f Author: Adrian Hunter Date: Fri Apr 5 15:40:18 2019 +0300 mmc: sdhci: Move some processing to __sdhci_finish_mrq() In preparation for removing finish_tasklet, move some processing from sdhci_request_done() to __sdhci_finish_mrq(). Signed-off-by: Adrian Hunter Reviewed-by: Faiz Abbas Signed-off-by: Ulf Hansson commit 97a1abae46a690a0d1d4c676e00a261b2c12ac1b Author: Adrian Hunter Date: Fri Apr 5 15:40:17 2019 +0300 mmc: sdhci: Move timer and has_requests functions In preparation for removing finish_tasklet, move some functions. Signed-off-by: Adrian Hunter Reviewed-by: Faiz Abbas Signed-off-by: Ulf Hansson commit 2e72ab9b2f565b6f3e1ff4a64a3736bb256c605c Author: Adrian Hunter Date: Fri Apr 5 15:40:16 2019 +0300 mmc: sdhci: Reorganize sdhci_finish_mrq() and __sdhci_finish_mrq() In preparation for removing finish_tasklet, reorganize sdhci_finish_mrq() and __sdhci_finish_mrq() to separate the tasklet scheduling from other processing. Signed-off-by: Adrian Hunter Reviewed-by: Faiz Abbas Signed-off-by: Ulf Hansson commit 6cdae8173f6771977c3863bac7f1455c96bb1f6e Author: Pascal PAILLET-LME Date: Mon Apr 15 09:17:38 2019 +0000 regulator: Add support for stm32 power regulators Add support for 1V1 1V8 USB3V3 power regulators. Signed-off-by: Pascal Paillet Signed-off-by: Mark Brown commit c29687c354c58cd56fb2529fb89266c280206cf9 Author: Pascal PAILLET-LME Date: Mon Apr 15 09:17:37 2019 +0000 dt-bindings: regulator: Add stm32mp1 pwr regulators Document devicetree bindings for stm32mp1 pwr regulators. Signed-off-by: Pascal Paillet Signed-off-by: Mark Brown commit ade024f130f742725da9219624b01666f04bc4a6 Author: YueHaibing Date: Thu Apr 11 02:59:04 2019 +0000 memstick: jmb38x_ms: remove set but not used variable 'data' Fixes gcc '-Wunused-but-set-variable' warning: drivers/memstick/host/jmb38x_ms.c: In function 'jmb38x_ms_issue_cmd': drivers/memstick/host/jmb38x_ms.c:371:17: warning: variable 'data' set but not used [-Wunused-but-set-variable] It's never used since introduction and can be removed. Signed-off-by: YueHaibing Signed-off-by: Ulf Hansson commit cf03fcdc5b9c5627fe9bef74d1ece17658fad752 Author: Ulf Hansson Date: Mon Mar 25 13:24:42 2019 +0100 MAINTAINERS: Add section for MediaTek MMC/SD/SDIO driver Cc: Chaotian Jing Signed-off-by: Ulf Hansson Acked-by: Chaotian Jing commit 765c59675ab571caf7ada456bbfd23a73136b535 Author: Adrian Hunter Date: Mon Apr 8 11:32:11 2019 +0300 mmc: sdhci-pci: Add support for Intel CML Add PCI Ids for Intel CML. Signed-off-by: Adrian Hunter Signed-off-by: Ulf Hansson commit 002ee28e8b322d4d4b7b83234b5d0f4ebd428eda Author: Andrea Merello Date: Fri Apr 5 10:34:58 2019 +0200 mmc: core: make pwrseq_emmc (partially) support sleepy GPIO controllers pwrseq_emmc.c implements a HW reset procedure for eMMC chip by driving a GPIO line. It registers the .reset() cb on mmc_pwrseq_ops and it registers a system restart notification handler; both of them perform reset by unconditionally calling gpiod_set_value(). If the eMMC reset line is tied to a GPIO controller whose driver can sleep (i.e. I2C GPIO controller), then the kernel would spit warnings when trying to reset the eMMC chip by means of .reset() mmc_pwrseq_ops cb (that is exactly what I'm seeing during boot). Furthermore, on system reset we would gets to the system restart notification handler with disabled interrupts - local_irq_disable() is called in machine_restart() at least on ARM/ARM64 - and we would be in trouble when the GPIO driver tries to sleep (which indeed doesn't happen here, likely because in my case the machine specific code doesn't call do_kernel_restart(), I guess..). This patch fixes the .reset() cb to make use of gpiod_set_value_cansleep(), so that the eMMC gets reset on boot without complaints, while, since there isn't that much we can do, we avoid register the restart handler if the GPIO controller has a sleepy driver (and we spit a dev_notice() message to let people know).. This had been tested on a downstream 4.9 kernel with backported commit 83f37ee7ba33 ("mmc: pwrseq: Add reset callback to the struct mmc_pwrseq_ops") and commit ae60fb031cf2 ("mmc: core: Don't do eMMC HW reset when resuming the eMMC card"), because I couldn't boot my board otherwise. Maybe worth to RFT. Signed-off-by: Andrea Merello Signed-off-by: Ulf Hansson commit b65be6355183f6cb82518d02a4067239f6175558 Author: Fabien Parent Date: Wed Apr 3 21:30:50 2019 +0200 mmc: mtk-sd: check for valid optional memory resource 'top_base' memory region is optional. Check that the resource is valid before using it. This avoid getting a "invalid resource" error message printed by the kernel. Signed-off-by: Fabien Parent Signed-off-by: Ulf Hansson commit c278150e0d2a4ac0551f86c9db042665ad51c1e4 Author: Daniel Drake Date: Mon Apr 1 13:42:15 2019 +0800 mmc: alcor: enable DMA transfer of large buffers DMA on this hardware is limited to dealing with a single page at a time. Previously, the driver was set up accordingly to request single-page DMA buffers, however that had the effect of generating a large number of small MMC requests for data I/O. Improve the driver to accept scatter-gather DMA buffers of larger sizes. Iterate through those buffers a page at a time. Testing with dd, this increases write performance from 2mb/sec to 10mb/sec, and increases read performance from 4mb/sec to 14mb/sec. Signed-off-by: Daniel Drake Signed-off-by: Ulf Hansson commit e374e87538f4c7cd364bce6b9048ad5829ccc604 Author: Faiz Abbas Date: Mon Apr 1 18:28:04 2019 +0530 mmc: sdhci_am654: Clear HISPD_ENA in some lower speed modes According to the AM654x Data Manual[1], the setup timing in lower speed modes can only be met if the controller uses a falling edge data launch. To ensure this, the HIGH_SPEED_ENA (HOST_CONTROL[2]) bit should be cleared in default speed, SD high speed, MMC high speed, SDR12 and SDR25 speed modes. Use the sdhci writeb callback to implement this condition. [1] http://www.ti.com/lit/gpn/am6546 Section 5.10.5.16.1 Signed-off-by: Faiz Abbas Acked-by: Adrian Hunter Signed-off-by: Ulf Hansson commit 3b407b4f3a9273467a6b3d6a640948a739794950 Author: Ulf Hansson Date: Fri Mar 22 12:43:45 2019 +0100 MAINTAINERS: Add Ulf Hansson to the MEMORYSTICK section The amount of changes to the memorystick subsystem are limited as of today. However, I have a couple of times been funneling changes through my MMC tree and it have turned out fine. So, I am here by volunteering to continue doing this, by adding myself and the link to the MMC tree to the MEMSTICK section. Cc: Alex Dubov Cc: Alex Dubov Cc: Maxim Levitsky Cc: Kai-Heng Feng Cc: Rui Feng Signed-off-by: Ulf Hansson Acked-by: Maxim Levitsky commit c6645985d77c4aedf99c3c6864bc44eef2eca655 Author: Ulf Hansson Date: Fri Mar 22 12:43:34 2019 +0100 MAINTAINERS: Collect TI FLASH MEDIA drivers into one section The current SONY MEMORYSTICK CARD SUPPORT section is pointing to the TI flash media memorystick driver, which is a bit confusing. Let's make this more clear by moving this part into TI FLASH MEDIA INTERFACE DRIVER section, but rename the section to TI FLASH MEDIA MEMORYSTICK/MMC DRIVERS, as to make it more clear. Finally, add Alex Dubov to the SONY MEMORYSTICK STANDARD SUPPORT, as I believe that has been the intention. Cc: Alex Dubov Cc: Alex Dubov Cc: Maxim Levitsky Signed-off-by: Ulf Hansson commit aad5f19e47366c0583d32764f26ceb5ebd912a50 Author: Andy Shevchenko Date: Wed Mar 27 20:01:10 2019 +0200 mmc: mmc_spi: Convert to use SPDX identifier Reduce size of duplicated comments by switching to use SPDX identifier. No functional change. Signed-off-by: Andy Shevchenko Signed-off-by: Ulf Hansson commit 1ae51603528c9cb8eb2f487bbac8cf770a4691a8 Author: Andy Shevchenko Date: Wed Mar 27 20:01:09 2019 +0200 mmc: mmc_spi: Indentation fixes - spaces surrounding arithmetic operators - utilize full line limit - drop extra spaces / TABs in variable definitions Signed-off-by: Andy Shevchenko Signed-off-by: Ulf Hansson commit 38b2168581bc9cf8e7d55812755e89708044114f Author: Andy Shevchenko Date: Wed Mar 27 20:01:08 2019 +0200 mmc: mmc_spi: Join string literals back For easy grepping on debug purposes join string literals back in the messages. No functional change. While here, join list of module authors as well. Signed-off-by: Andy Shevchenko Signed-off-by: Ulf Hansson commit 70a557e63f1a185d2126910b290d3fbf894bfb48 Author: Andy Shevchenko Date: Wed Mar 27 20:01:07 2019 +0200 mmc: mmc_spi: Remove useless NULL check at ->remove() The mmc pointer can't be NULL at ->remove(), drop the useless check. Signed-off-by: Andy Shevchenko Signed-off-by: Ulf Hansson commit b9ffe4086206d1aedb3c7e62249e84beefdc2bca Author: Andy Shevchenko Date: Wed Mar 27 20:01:06 2019 +0200 mmc: mmc_spi: Remove redundant dev_set_drvdata() Driver core sets it to NULL upon probe failure or release. Signed-off-by: Andy Shevchenko Signed-off-by: Ulf Hansson commit 41ed65e7ce8462cb80063b6dcc3150a252ccaac5 Author: Ludovic Barre Date: Wed Mar 27 10:05:32 2019 +0100 mmc: mmci: replace blksz_datactrlXX by get_datactrl_cfg callback This patch allows to get datactrl configuration specific at variant. This introduce more flexibility on datactlr value. Signed-off-by: Ludovic Barre Signed-off-by: Ulf Hansson commit 8372f9d0ef0b9276439f4ff35dc4263bcddf1408 Author: Ludovic Barre Date: Wed Mar 27 10:05:31 2019 +0100 mmc: mmci: stm32: define get_dctrl_cfg This patch defines get_dctrl_cfg callback for sdmmc variant. sdmmc variant has specific stm32 transfer modes. sdmmc data transfer mode selection could be: -Block data transfer ending on block count. -SDIO multibyte data transfer. -MMC Stream data transfer (not used). -Block data transfer ending with STOP_TRANSMISSION command. Signed-off-by: Ludovic Barre Signed-off-by: Ulf Hansson commit 5db1e1fc7cab400e991eed32131cecd03a5e03db Author: Ludovic Barre Date: Wed Mar 27 10:05:30 2019 +0100 mmc: mmci: qcom: define get_dctrl_cfg This patch defines get_dctrl_cfg callback for qcom variant. qcom variant has a specific block size definition. Signed-off-by: Ludovic Barre Signed-off-by: Ulf Hansson commit b3fb9d64b497b890f7b779a9f0b40b5cc269ea18 Author: Ludovic Barre Date: Wed Mar 27 10:05:29 2019 +0100 mmc: mmci: define get_dctrl_cfg for legacy variant This patch defines get_dctrl_cfg callback for legacy variants whatever DMA_ENGINE configuration. Signed-off-by: Ludovic Barre [Ulf: Fixed a build error] Signed-off-by: Ulf Hansson commit 0732ea75de09f0816f0604e46116ca111bc309d6 Author: Ludovic Barre Date: Wed Mar 27 10:05:28 2019 +0100 mmc: mmci: add get_datactrl_cfg callback and helper functions This patch adds get_datactrl_cfg callback in mmci_host_ops to allow to get datactrl configuration specific at variant. Common helper function is defined and could be call by variant. Signed-off-by: Ludovic Barre Signed-off-by: Ulf Hansson commit e5a34b0c1071e6b6b6cfca4c6887c39cd403dd77 Author: Daniel Drake Date: Tue Mar 26 15:04:15 2019 +0800 mmc: alcor: enable DMA for writes Enable the DMA codepath for writes as well as reads. This improves write speed from 1mb/sec to 2mb/sec (tested with dd). The original ampe_stor vendor driver also uses DMA for writes. Signed-off-by: Daniel Drake Signed-off-by: Ulf Hansson commit 7bda9482e7ed4d27d83c1f9cb5cbe3b34ddac3e8 Author: Christoph Muellner Date: Fri Mar 22 12:38:05 2019 +0100 mmc: sdhci-of-arasan: Add DTS property to disable DCMDs. Direct commands (DCMDs) are an optional feature of eMMC 5.1's command queue engine (CQE). The Arasan eMMC 5.1 controller uses the CQHCI, which exposes a control register bit to enable the feature. The current implementation sets this bit unconditionally. This patch allows to suppress the feature activation, by specifying the property disable-cqe-dcmd. Signed-off-by: Christoph Muellner Signed-off-by: Philipp Tomsich Acked-by: Adrian Hunter Fixes: 84362d79f436 ("mmc: sdhci-of-arasan: Add CQHCI support for arasan,sdhci-5.1") Cc: stable@vger.kernel.org Signed-off-by: Ulf Hansson commit 28f22fb755ecf9f933f045bc0afdb8140641b01c Author: Christoph Muellner Date: Fri Mar 22 12:38:04 2019 +0100 dt-bindings: mmc: Add disable-cqe-dcmd property. Add disable-cqe-dcmd as optional property for MMC hosts. This property allows to disable or not enable the direct command features of the command queue engine. Signed-off-by: Christoph Muellner Signed-off-by: Philipp Tomsich Fixes: 84362d79f436 ("mmc: sdhci-of-arasan: Add CQHCI support for arasan,sdhci-5.1") Cc: stable@vger.kernel.org Signed-off-by: Ulf Hansson commit 2198eeff2344f712eca677db298bd754348aa733 Author: YueHaibing Date: Fri Mar 22 22:11:38 2019 +0800 mmc: sdhci-omap: Make sdhci_omap_reset static Fix sparse warning: drivers/mmc/host/sdhci-omap.c:788:6: warning: symbol 'sdhci_omap_reset' was not declared. Should it be static? Signed-off-by: YueHaibing Reviewed-by: Faiz Abbas Acked-by: Adrian Hunter Signed-off-by: Ulf Hansson commit b77544280ccf924787af1db8d7b26ce5305becdc Author: Sowjanya Komatineni Date: Sat Mar 23 21:45:26 2019 -0700 mmc: tegra: fix CQE enable and resume sequence Tegra CQHCI/SDHCI design prevents write access to SDHCI block size register when CQE is enabled and unhalted. CQHCI driver enables CQE prior to invoking sdhci_cqe_enable which violates this Tegra specific host requirement. This patch fixes this by configuring sdhci block registers prior to CQE unhalt. This patch also has a fix for retry of unhalt due to known Tegra specific CQE resume bug where first unhalt might not succeed when clear all tasks is performed prior to resume and need a second unhalt. This patch also includes CQE enable fix for CMD CRC errors that happen with the specific sandisk emmc device when status command is sent during the transfer of last data block due to marginal timing. Tested-by: Jon Hunter Acked-by: Adrian Hunter Signed-off-by: Sowjanya Komatineni Signed-off-by: Ulf Hansson commit 688956440e80946e164289b23e54309bcbca7144 Author: Sowjanya Komatineni Date: Sat Mar 23 21:45:25 2019 -0700 mmc: cqhci: add CQHCI_SSC1 register CBC field mask This patch adds define for CBC field mask of the register CQHCI_SSC1. Tested-by: Jon Hunter Acked-by: Adrian Hunter Signed-off-by: Sowjanya Komatineni Signed-off-by: Ulf Hansson commit c6e7ab909262f3c9a1f35c1a9cc9f59200531b16 Author: Sowjanya Komatineni Date: Sat Mar 23 21:45:24 2019 -0700 mmc: tegra: add Tegra186 WAR for CQE Tegra186 CQHCI host has a known bug where CQHCI controller selects DATA_PRESENT_SELECT bit to 1 for DCMDs with R1B response type and since DCMD does not trigger any data transfer, DCMD task complete happens leaving the DATA FSM of host controller in wait state for the data. This effects the data transfer tasks issued after the DCMDs with R1b response type resulting in timeout. SW WAR is to set CMD_TIMING to 1 in DCMD task descriptor. This bug and SW WAR is applicable only for Tegra186 and not for Tegra194. This patch implements this WAR thru NVQUIRK_CQHCI_DCMD_R1B_CMD_TIMING for Tegra186 and also implements update_dcmd_desc of cqhci_host_ops interface to set CMD_TIMING bit depending on the NVQUIRK. Tested-by: Jon Hunter Reviewed-by: Ritesh Harjani Signed-off-by: Sowjanya Komatineni Acked-by: Adrian Hunter Signed-off-by: Ulf Hansson commit c46d089aa71d5f136555f694e17b335b97138cbf Author: Sowjanya Komatineni Date: Sat Mar 23 21:45:23 2019 -0700 mmc: cqhci: allow hosts to update dcmd cmd desc This patch adds update_dcmd_desc interface to cqhci_host_ops to allow hosts to update any of the DCMD task descriptor attributes and parameters. Tested-by: Jon Hunter Reviewed-by: Ritesh Harjani Signed-off-by: Sowjanya Komatineni Acked-by: Adrian Hunter Signed-off-by: Ulf Hansson commit ad64a7908c0a4f0712dc518e573054e2ade3aed6 Author: Sowjanya Komatineni Date: Sat Mar 23 21:45:21 2019 -0700 dt-bindings: mmc: tegra: document Tegra194 compatible string SDHCI controller of Tegra194 is similar to SDHCI controller in Tegra186. This patch documents Tegra194 sdhci compatible string. Signed-off-by: Sowjanya Komatineni Signed-off-by: Ulf Hansson commit ea8fc5953e8b4484958d5fb748d73543a236be59 Author: Sowjanya Komatineni Date: Sat Mar 23 21:45:20 2019 -0700 mmc: tegra: update hw tuning process This patch includes below HW tuning related fixes. configures tuning parameters as per Tegra TRM WAR fix for manual tap change HW auto-tuning post process As per Tegra TRM, SDR50 mode tuning execution takes upto maximum of 256 tuning iterations and SDR104/HS200/HS400 modes tuning execution takes upto maximum of 128 tuning iterations. This patch programs tuning control register with maximum tuning iterations needed based on the timing along with the start tap, multiplier, and step size used by the HW tuning. Tegra210 has a known issue of glitch on trimmer output when the tap value is changed with the trimmer input clock running and the WAR is to disable card clock before sending tuning command and after sending tuning command wait for 1usec and issue SW reset followed by enabling card clock. This WAR is applicable when changing tap value manually as well. Tegra SDHCI driver has this implemented correctly for manual tap change but missing SW reset before enabling card clock during sending tuning command. Issuing SW reset during tuning command as a part of WAR and is applicable in cases where tuning is performed with single step size for more iterations. This patch includes this fix. HW auto-tuning finds the best largest passing window and sets the tap at the middle of the window. With some devices like sandisk eMMC driving fast edges and due to high tap to tap delay in the Tegra chipset, auto-tuning does not detect falling tap between the valid windows resulting in a parital window or a merged window and the best tap is set at the signal transition which is actually the worst tap location. Recommended SW solution is to detect if the best passing window picked by the HW tuning is a partial or a merged window based on min and max tap delays found from chip characterization across PVT and perform tuning correction to pick the best tap. This patch has implementation of this post HW tuning process for the tegra hosts that support HW tuning through the callback function tegra_sdhci_execute_hw_tuning and uses the tuned tap delay. Tested-by: Jon Hunter Signed-off-by: Sowjanya Komatineni Acked-by: Adrian Hunter Signed-off-by: Ulf Hansson commit 1d8cd065f7ab2992903f4611d8400ee794de0699 Author: Sowjanya Komatineni Date: Sat Mar 23 21:45:19 2019 -0700 mmc: sdhci: allow host to specify maximum tuning loops As per the Host Controller Standard Specification Version 4.20, limitation of tuning iteration count is removed as PLL locking time can be longer than UHS-1 tuning due to larger PVT fluctuation and it will result in increase of tuning iteration to complete the tuning. This patch creates sdhci_host member tuning_loop_count to allow hosts to specify maximum tuning iterations and also updates execute_tuning to use this specified maximum tuning iteration count. Default tuning_loop_count is set to same as existing loop count of MAX_TUNING_LOOP which is 40 iterations. Tested-by: Jon Hunter Signed-off-by: Sowjanya Komatineni Acked-by: Adrian Hunter Signed-off-by: Ulf Hansson commit 92cd1667d579af5c3ef383680598a112da3695df Author: Sowjanya Komatineni Date: Sat Mar 23 21:45:18 2019 -0700 mmc: tegra: fix ddr signaling for non-ddr modes ddr_signaling is set to true for DDR50 and DDR52 modes but is not set back to false for other modes. This programs incorrect host clock when mode change happens from DDR52/DDR50 to other SDR or HS modes like incase of mmc_retune where it switches from HS400 to HS DDR and then from HS DDR to HS mode and then to HS200. This patch fixes the ddr_signaling to set properly for non DDR modes. Tested-by: Jon Hunter Acked-by: Adrian Hunter Signed-off-by: Sowjanya Komatineni Cc: stable@vger.kernel.org # v4.20 + Signed-off-by: Ulf Hansson commit 89822b73543d986a3057343b38a996f07087741c Author: Fabien Parent Date: Sat Mar 23 22:15:58 2019 +0100 mmc: mtk-sd: add support for MT8516 Add the MSDC configuration for the MT8516 SoC. Signed-off-by: Fabien Parent Signed-off-by: Ulf Hansson commit 91ecbe50b69c90d58ffca12e37cf841212e054c0 Author: Wolfram Sang Date: Tue Mar 19 11:34:17 2019 +0100 mmc: renesas_sdhi: set CBSY flag before probing TMIO host The CBSY flag should be proper before calling tmio_mmc_host_probe() because this function will already use write16 which checks this bit. Signed-off-by: Wolfram Sang Reviewed-by: Simon Horman Reviewed-by: Niklas Söderlund Signed-off-by: Ulf Hansson commit 2a55c1eac78822321d08cb89b1ac2e06e37fd9ff Author: Wolfram Sang Date: Thu Mar 14 23:31:30 2019 +0100 mmc: renesas_sdhi: prevent overflow for max_req_size max_req_size is calculated by 'max_blk_size * max_blk_count' in the TMIO core. So, specifying U32_MAX as max_blk_count will overflow this calculation. It will cause no harm in practice because the immense high number will overflow into another immense high number. However, it is not good coding practice, so calculate max_blk_count so that max_req_size will fit into unsigned int on ARM32/64. Thanks to the Renesas BSP team for the bug report! Reported-by: Yoshihiro Shimoda Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson commit 609e5fba56fc0ad8e2a5917f64b964c2f4979bc5 Author: Wolfram Sang Date: Thu Mar 14 23:31:29 2019 +0100 mmc: tmio: introduce macro for max block size We will need it later for other calculations. Signed-off-by: Wolfram Sang Signed-off-by: Ulf Hansson commit f49bdcde0a0fcaaf7b63a5dc47b51a7d3810aa8c Author: Wolfram Sang Date: Thu Mar 14 23:54:41 2019 +0100 mmc: renesas_sdhi: update copyright information Mostly year updates, but one addition as well. Signed-off-by: Wolfram Sang Reviewed-by: Simon Horman Reviewed-by: Niklas Söderlund Signed-off-by: Ulf Hansson commit 8dcf48e5f4d7b25408fd8f9a4048ed5e23335a2c Author: Stefan Wahren Date: Thu Mar 14 17:18:22 2019 +0100 mmc: mxs-mmc: Enable MMC_CAP_ERASE According to the i.MX23/28 reference manuals both mmc interfaces support the MMC_ERASE command. So enable this capability in the driver to allow erase/discard/trim requests. Signed-off-by: Stefan Wahren Reviewed-by: Fabio Estevam Signed-off-by: Ulf Hansson commit 611025983b7976df0183390a63a2166411d177f1 Author: Kangjie Lu Date: Mon Mar 11 00:53:33 2019 -0500 mmc_spi: add a status check for spi_sync_locked In case spi_sync_locked fails, the fix reports the error and returns the error code upstream. Signed-off-by: Kangjie Lu Reviewed-by: Laurent Pinchart Signed-off-by: Ulf Hansson commit 1f1929f3f2faf0815e602aa31d6ac955fb22163d Author: Yangbo Lu Date: Mon Mar 11 02:16:51 2019 +0000 mmc: sdhci-of-esdhc: add quirk to ignore command inhibit for data For some controllers, in Present State Register, Data Line Active bit is not reliable for commands (such as CMD6, CMD7, CMD12, CMD28, CMD29, or CMD38) with busy signal. DLA affects Command with Data Inhibit bit. Therefore, software driver may not know the busy status in DLA/CDIHB. Futunately MMC core driver has already polled card status with CMD13 after sending any command with busy signal. So we can just ignore CDIHB never released issue for such controllers. This patch is to add a quirk to handle this. Signed-off-by: Yangbo Lu Signed-off-by: Yinbo Zhu Acked-by: Adrian Hunter Signed-off-by: Ulf Hansson commit b214fe592ab72a20d93ab4b252c8ff4607512633 Author: Yinbo Zhu Date: Mon Mar 11 02:16:47 2019 +0000 mmc: sdhci-of-esdhc: add erratum eSDHC7 support Invalid Transfer Complete (IRQSTAT[TC]) bit could be set during multi-write operation even when the BLK_CNT in BLKATTR register has not reached zero. Therefore, Transfer Complete might be reported twice due to this erratum since a valid Transfer Complete occurs when BLK_CNT reaches zero. This erratum is to fix this issue Signed-off-by: Yinbo Zhu Acked-by: Adrian Hunter Signed-off-by: Ulf Hansson commit 5dd195522562542bc6ebe6e7bd47890d8b7ca93c Author: Yinbo Zhu Date: Mon Mar 11 02:16:44 2019 +0000 mmc: sdhci-of-esdhc: add erratum A-009204 support In the event of that any data error (like, IRQSTAT[DCE]) occurs during an eSDHC data transaction where DMA is used for data transfer to/from the system memory, setting the SYSCTL[RSTD] register may cause a system hang. If software sets the register SYSCTL[RSTD] to 1 for error recovery while DMA transferring is not complete, eSDHC may hang the system bus. This happens because the software register SYSCTL[RSTD] resets the DMA engine without waiting for the completion of pending system transactions. This erratum is to fix this issue. Signed-off-by: Yinbo Zhu Acked-by: Adrian Hunter Signed-off-by: Ulf Hansson commit 05cb6b2a66fa7837211a060878e91be5eb10cb07 Author: Yinbo Zhu Date: Mon Mar 11 02:16:40 2019 +0000 mmc: sdhci-of-esdhc: add erratum eSDHC-A001 and A-008358 support eSDHC-A001: The data timeout counter (SYSCTL[DTOCV]) is not reliable for DTOCV values 0x4(2^17 SD clock), 0x8(2^21 SD clock), and 0xC(2^25 SD clock). The data timeout counter can count from 2^13–2^27, but for values 2^17, 2^21, and 2^25, the timeout counter counts for only 2^13 SD clocks. A-008358: The data timeout counter value loaded into the timeout counter is less than expected and can result into early timeout error in case of eSDHC data transactions. The table below shows the expected vs actual timeout period for different values of SYSCTL[DTOCV]: these two erratum has the same quirk to control it, and set SDHCI_QUIRK_RESET_AFTER_REQUEST to fix above issue. Signed-off-by: Yinbo Zhu Acked-by: Adrian Hunter Signed-off-by: Ulf Hansson commit a46e42712596b51874f04c73f1cdf1017f88df52 Author: Yinbo Zhu Date: Mon Mar 11 02:16:36 2019 +0000 mmc: sdhci-of-esdhc: add erratum eSDHC5 support Software writing to the Transfer Type configuration register (system clock domain) can cause a setup/hold violation in the CRC flops (card clock domain), which can cause write accesses to be sent with corrupt CRC values. This issue occurs only for write preceded by read. this erratum is to fix this issue. Signed-off-by: Yinbo Zhu Acked-by: Adrian Hunter Signed-off-by: Ulf Hansson commit 8e9a6919939b8c3bf1bd7cb00cf6c5c7890b4424 Author: Yinbo Zhu Date: Thu Mar 7 02:32:44 2019 +0000 mmc: sdhci-of-esdhc: add erratum A011334 support in lx2160 2.0 SoC This patch is to add erratum A011334 support in lx2160 2.0 SoC Signed-off-by: Yinbo Zhu Acked-by: Adrian Hunter Signed-off-by: Ulf Hansson commit 6f549034bb645d0ec6edbbfde3ff23c2669de225 Author: Enrico Weigelt, metux IT consult Date: Wed Mar 6 19:27:51 2019 +0100 mmc: host: Pedantic cleanups to Kconfig Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Ulf Hansson commit 71953e0e79684d38c86a0b5ad561bcea5f63fd02 Author: Ulf Hansson Date: Wed Mar 6 15:04:56 2019 +0100 mmc: mmci: Make mmci_variant_init() static As mmci_variant_init() is a local function to mmci.c, let's convert it into static. Signed-off-by: Ulf Hansson Acked-by: Linus Walleij commit 62e546be6d9320773f5162c0a4a627392efdb6ea Author: Ulf Hansson Date: Wed Mar 6 15:04:55 2019 +0100 mmc: mmci: Share sdmmc_variant_init() via the common header file It's good practice to share functions via header files, rather than from the c-files. Therefore, let's move sdmmc_variant_init() to mmci.h. Signed-off-by: Ulf Hansson Acked-by: Ludovic Barre Tested-by: Ludovic Barre Acked-by: Linus Walleij commit f7f3e7dac802e4ed11f216027fc35c189c3dba7f Author: Ulf Hansson Date: Wed Mar 6 15:04:54 2019 +0100 mmc: mmci: Drop qcom specific header file It seems a bit silly to have a header file to share only the qcom_variant_init() function. So, let's just drop it and move the declaration of the function into the common mmci.h instead. Signed-off-by: Ulf Hansson Acked-by: Linus Walleij commit ea27c95a7a47ae7303b28d2bf2c5db461bb002c6 Author: Ulf Hansson Date: Wed Mar 6 15:04:53 2019 +0100 mmc: mmci: Re-work code starting DMA for the qcom variant Having mmci_dmae_start() to invoke the shared function, dml_start_xfer(), explicitly for the qcom variant isn't very nice. Let's clean up this code by moving the qcom specific parts into the qcom ->dma_start() callback and then drop dml_start_xfer() altogether. Signed-off-by: Ulf Hansson Acked-by: Linus Walleij commit c21aa7a804160f58e391c9fcb2aff16e7d30c80f Author: Ulf Hansson Date: Wed Mar 6 15:04:52 2019 +0100 mmc: mmci: Drop unnecessary clear of variant->qcom_dml flag There's no point clearing the variant flag in case the qcom variant fails to setup DMA. This is because if mmci_dma_setup() fails, then the use_dma flag remains set to false, which leads to mmci using PIO mode and not DMA. Signed-off-by: Ulf Hansson Acked-by: Linus Walleij commit 6aa35ce74399f70b88e4c0e17c486da8ad6ef33d Author: Ulf Hansson Date: Wed Mar 6 15:04:51 2019 +0100 mmc: mmci: Don't share un-implemented DMA functions Some of the DMA functions are shared via mmci.h, however they are not implemented unless CONFIG_DMA_ENGINE is set. Therefore, add that constraint to the header file as well. Signed-off-by: Ulf Hansson Acked-by: Linus Walleij commit 5d552ad79630d41ca065457e22a20ae2db5b2441 Author: Bharath Vedartham Date: Sun Apr 14 16:54:38 2019 +0530 fs/reiserfs/journal.c: Make remove_journal_hash static This fixes the -WDecl sparse warning in journal.c. Function was declared as static void but the definition was void. Signed-off-by: Bharath Vedartham Signed-off-by: Jan Kara commit c577f4a5a08bb9677e12ddafb62e2f3a901de87f Author: Colin Ian King Date: Sat Mar 30 15:09:10 2019 +0000 PCI: rockchip: Fix rockchip_pcie_ep_assert_intx() bitwise operations Currently the bitwise operations on the u16 variable 'status' with the setting ROCKCHIP_PCIE_EP_CMD_STATUS_IS are incorrect because ROCKCHIP_PCIE_EP_CMD_STATUS_IS is 1UL<<19 which is wider than the u16 variable. Fix this by making status a u32. Fixes: cf590b078391 ("PCI: rockchip: Add EP driver for Rockchip PCIe controller") Signed-off-by: Colin Ian King Signed-off-by: Lorenzo Pieralisi Reviewed-by: Mukesh Ojha Acked-by: Shawn Lin commit 46f5710f0b8829882faea735149d86250db5d0e5 Author: Roope Salmi Date: Sun Apr 14 14:13:06 2019 +0300 ALSA: usb-audio: Add quirk for Focusrite Scarlett Solo The device reports Synch: Synchronous on the playback interface. This causes regular audible napping on sample rates that are not multiples of 1 kHz. Fix to Synch: Asynchronous. Specifically observed on Focusrite Scarlett Solo 2nd generation. I assume the first generation model has a different device ID. A first generation Scarlett 2i2 I was able to test advertised Synch: Asynchronous by default. For example, with a sample rate of 44100 Hz, a silent sample is played every 40.96 seconds (likely 44.0 samples instead of 44.1 transmitted per USB frame on average, 4096 being the size of some internal buffer). There may be some other bug at play here since this doesn't happen on other platforms. However, a feedback endpoint is listed and using it fixes the issue. That is the only change in the quirk, but I didn't find a way to declare only it. Tested on two units and on two different computers. Signed-off-by: Roope Salmi Signed-off-by: Takashi Iwai commit 38a1965f42cc750652ed5ec70bb0cb3f7a4e20b9 Author: Lionel Debieve Date: Mon Apr 1 12:30:46 2019 +0200 hwrng: stm32 - set default random quality Add a default quality to hw_random device to be automatically set as new default entropy. Setting random quality will decrease the crng init time by switching to this hardware random source. Signed-off-by: Lionel Debieve Signed-off-by: Herbert Xu commit af0d4442dd6813de6e77309063beb064fa8e89ae Author: Lionel Debieve Date: Mon Apr 1 12:30:45 2019 +0200 hwrng: stm32 - fix unbalanced pm_runtime_enable No remove function implemented yet in the driver. Without remove function, the pm_runtime implementation complains when removing and probing again the driver. Signed-off-by: Lionel Debieve Signed-off-by: Herbert Xu commit de348df5b389f7ddab388934e84f24d8a9f3c961 Author: Shawn Guo Date: Wed Apr 3 16:11:25 2019 +0700 clk: imx: rename clk-imx51-imx53.c to clk-imx5.c As the driver is handling all i.MX5 series SoCs inlcuding i.MX50, rather than just i.MX51 and i.MX53, let's rename it to clk-imx5.c. Signed-off-by: Shawn Guo Reviewed-by: Stephen Boyd commit e54d1527658f2226c1f63d6fb76fa9b97d1c3947 Author: Florian Westphal Date: Fri Apr 12 10:14:46 2019 +0200 xfrm: kconfig: make xfrm depend on inet when CONFIG_INET is not enabled: net/xfrm/xfrm_output.c: In function ‘xfrm4_tunnel_encap_add’: net/xfrm/xfrm_output.c:234:2: error: implicit declaration of function ‘ip_select_ident’ [-Werror=implicit-function-declaration] ip_select_ident(dev_net(dst->dev), skb, NULL); XFRM only supports ipv4 and ipv6 so change dependency to INET and place user-visible options (pfkey sockets, migrate support and the like) under 'if INET' guard as well. Fixes: 1de70830066b7 ("xfrm: remove output2 indirection from xfrm_mode") Reported-by: Randy Dunlap Signed-off-by: Florian Westphal Acked-by: Randy Dunlap Signed-off-by: Steffen Klassert commit e252e0e0028167ea3d1eafa99c2ff9f62c444b0a Author: Mao Wenan Date: Sat Apr 13 21:44:59 2019 +0800 HID: u2fzero: fix compiling error in u2fzero_probe() There is one compiling error in u2fzero_probe()->u2fzero_init_hwrng(), this is because HW_RANDOM is not set. drivers/hid/hid-u2fzero.o: In function `u2fzero_probe': hid-u2fzero.c:(.text+0xc70): undefined reference to `devm_hwrng_register' Fixes: 42337b9d4d958("HID: add driver for U2F Zero built-in LED and RNG") Reported-by: Hulk Robot Signed-off-by: Mao Wenan Signed-off-by: Jiri Kosina commit 8558c6e21ceb359b7293386fc497ed8d8bc85c13 Author: Andreas Kemnade Date: Fri Apr 12 06:58:32 2019 +0200 ARM: dts: sun8i: h3: bluetooth for Banana Pi M2 Zero board The Banana Pi M2 Zero board has an AP6212 BT+Wifi combo chip with Broadcom internals attached to UART1 and some gpios. This addition is in line with similar boards. Signed-off-by: Andreas Kemnade Signed-off-by: Maxime Ripard commit 0dceab33342d279130252b7c587142a7252a9324 Author: Axel Lin Date: Sun Apr 14 20:48:18 2019 +0800 regulator: max8998: Factor out struct voltage_map_desc The struct voltage_map_desc is used for storing min/max/step fileds, and then setup the min_uV, uV_step and n_voltages fields for regulator_desc. Introduce MAX8998_LINEAR_REG/MAX8998_OTHERS_REG macro to setup these filds directly in regulator_desc to simplify the code. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 7d695f20c27f33173f2149d4d1c6e994e5c0b08e Author: Axel Lin Date: Sun Apr 14 20:48:17 2019 +0800 regulator: max8998: Constify regulator_ops These regulator_ops variables never need to be modified, make them const so compiler can put them to .rodata. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 7a8b0e66df5ad04d0acf31d43b37be46504b9fbc Author: Axel Lin Date: Sat Apr 13 15:30:02 2019 +0800 regulator: tps6524x: Remove *rdev[N_REGULATORS] from struct tps6524x Current code is using devm_regulator_register() so we don't need to store *rdev for clean up, use a local variable instead. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 357db0279a230e009d4440db71c497f3360311bc Author: Axel Lin Date: Sat Apr 13 15:30:01 2019 +0800 regulator: tps6524x: Constify regulator_ops The regulator_ops is never changed, make it const. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 7cfcecfb82afe81fdc94ec214f2ad3d83eb2a4ba Author: Axel Lin Date: Sat Apr 13 10:29:07 2019 +0800 regulator: tps65218: Convert to use regulator_get_current_limit_regmap Use regulator_get_current_limit_regmap helper to save some code. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 7c6b8e3b9fe85af29b66478d585a0cffd6caa1df Author: Axel Lin Date: Fri Apr 12 22:11:58 2019 +0800 regulator: ab8500: Remove *regulator from struct ab8500_regulator_info Current code is using devm_regulator_register() so we don't need to save *regulator for clean up, use a local variable instead. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 6d66d9952ec06f12197174018be76538150aea05 Author: Axel Lin Date: Fri Apr 12 22:11:57 2019 +0800 regulator: ab8500: Constify regulator_ops These regulator_ops variables never need to be modified, make them const so compiler can put them to .rodata. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 8e5be4f7e142daa47303ee8238b891833024e7df Author: Axel Lin Date: Fri Apr 12 22:06:56 2019 +0800 regulator: ab8500-ext: Constify ab8500_ext_regulator_ops ab8500_ext_regulator_ops never need to be modified, make it const so compiler can put it to .rodata. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit b7f5a8e435ecc7198407f44a2a5a6cdae1056b0d Author: Jacopo Mondi Date: Fri Apr 12 13:38:32 2019 +0200 arm64: dts: renesas: r8a77980: Add "renesas,id" to VIN Add the "renesas,id" property to VIN nodes in the R-Car V3H R8A77980 device tree. Fixes: 3182aa4e0bf4 ("arm64: dts: renesas: r8a77980: add CSI2/VIN support") Signed-off-by: Jacopo Mondi Reviewed-by: Niklas Söderlund Signed-off-by: Simon Horman commit 802c2471607919f57d7d1f83f0fddd925309e97c Author: Miroslav Benes Date: Fri Apr 12 15:37:37 2019 +0200 selftests/livepatch: Add functions.sh to TEST_PROGS_EXTENDED Add functions.sh to TEST_PROGS_EXTENDED so that it is installed along with the rest of the selftests and they can be run. Originally-by: Shuah Khan Signed-off-by: Miroslav Benes Acked-by: Joe Lawrence Signed-off-by: Petr Mladek commit 48cb9737edff831a6cd96bad7e9f9f612a7f3a9e Author: Axel Lin Date: Fri Apr 12 22:06:58 2019 +0800 regulator: ab8500-ext: Convert to use simplified DT parsing Use regulator core's simplified DT parsing code to simplify the driver implementation. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 80a9c22a9da953146eacb5b8eb2b16691d4d9925 Author: Axel Lin Date: Fri Apr 12 22:06:57 2019 +0800 regulator: ab8500-ext: Remove *rdev from struct ab8500_ext_regulator_info Current code is using devm_regulator_register() so we don't need to save *rdev for clean up, use a local variable instead. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 32d622f3290b2a10e3d8edd55cd21caa7384b03e Author: Takeshi Kihara Date: Fri Apr 12 14:01:32 2019 +0200 arm64: dts: renesas: r8a77965: Remove reg-names of display node Remove the "reg-names" property from the display node of R-Car Gen3 R8A77965 device tree. No other mainline R-Car Gen3 SoC has that property specified. Fixes: 2f2c71bfc8c5 ("arm64: dts: renesas: r8a77965: Populate the DU instance placeholder") Signed-off-by: Takeshi Kihara [reworded commit message, sent upstream] Signed-off-by: Jacopo Mondi Signed-off-by: Simon Horman commit 3ec25826ae33618a03c28235af8d62e8a7f7f15f Author: Paul Gortmaker Date: Fri Apr 12 22:11:31 2019 -0400 printk: Tie printk_once / printk_deferred_once into .data.once for reset In commit b1fca27d384e ("kernel debug: support resetting WARN*_ONCE") we got the opportunity to reset state on the one shot messages, without having to reboot. However printk_once (printk_deferred_once) live in a different file and didn't get the same kind of update/conversion, so they remain unconditionally one shot, until the system is rebooted. For example, we currently have: sched/rt.c: printk_deferred_once("sched: RT throttling activated\n"); ..which could reasonably be tripped as someone is testing and tuning a new system/workload and their task placements. For consistency, and to avoid reboots in the same vein as the original commit, we make these two instances of _once the same as the WARN*_ONCE instances are. Link: http://lkml.kernel.org/r/1555121491-31213-1-git-send-email-paul.gortmaker@windriver.com Cc: Andi Kleen Cc: Petr Mladek Cc: Sergey Senozhatsky Cc: Steven Rostedt Cc: Andrew Morton Signed-off-by: Paul Gortmaker Reviewed-by: Sergey Senozhatsky Signed-off-by: Petr Mladek commit c09f7471127e9debf3e814ffef4f4012c31a5a3d Author: Nava kishore Manne Date: Mon Apr 15 12:47:48 2019 +0530 fpga manager: Adding FPGA Manager support for Xilinx zynqmp This patch adds FPGA Manager support for the Xilinx ZynqMP chip. Signed-off-by: Nava kishore Manne Reviewed-by: Moritz Fischer Acked-by: Alan Tull Signed-off-by: Michal Simek commit 9b0879620ea8b612f1baab188cb867fd055899d6 Author: Nava kishore Manne Date: Mon Apr 15 12:47:47 2019 +0530 dt-bindings: fpga: Add bindings for ZynqMP fpga driver Add documentation to describe Xilinx ZynqMP fpga driver bindings. Signed-off-by: Nava kishore Manne Reviewed-by: Rob Herring Acked-by: Alan Tull Acked-by: Moritz Fischer Signed-off-by: Michal Simek commit e840decc1954521ff73bbc87b5b3ea36af1704d2 Author: Nava kishore Manne Date: Mon Apr 15 12:47:46 2019 +0530 firmware: xilinx: Add fpga API's This Patch Adds fpga API's to support the Bitstream loading by using firmware interface. Signed-off-by: Nava kishore Manne Reviewed-by: Moritz Fischer Signed-off-by: Michal Simek commit 635e1e78a6857abc6b09c337fb962f86fbefd3a8 Author: Pablo Greco Date: Fri Apr 12 07:33:00 2019 -0300 ARM: dts: sun8i: v40: bananapi-m2-berry: Sort device node dereferences. The device node dereferences are out of order, sort them. Signed-off-by: Pablo Greco Signed-off-by: Maxime Ripard commit 7cf875be2fed79fcfbbe3f08beac3709c7ca9b45 Author: Ondrej Jirman Date: Sat Apr 13 18:54:18 2019 +0200 arm64: dts: allwinner: h6: Add MMC1 pins MMC1 is used on some H6 boards we want to support. Typical use is 4-bit SDIO interface with a WiFi chip. Add pin definitions for this use case. As this is the only possible configration for mmc1, make it the default one, too. Signed-off-by: Ondrej Jirman Signed-off-by: Maxime Ripard commit f06ddb53096b4cddad2c530125a78a3c2a1d28a4 Merge: ecc4946f11a0 dc4060a5dc25 Author: Dave Airlie Date: Mon Apr 15 15:51:49 2019 +1000 BackMerge v5.1-rc5 into drm-next Need rc5 for udl fix to add udl cleanups on top. Signed-off-by: Dave Airlie commit f55be0be5b7296e73f1634e2839a1953dc12d11e Author: Joshua Aberback Date: Mon Apr 1 15:21:24 2019 -0400 drm/amd/display: Add profiling tools for bandwidth validation [Why] We used this change to investigate the performance of bandwidth validation, it will be useful to have if we need to investigate further. [How] We use performance counter tick numbers to profile performance, they live at dc->debug.bw_val_profile (set .enable in debugger to turn on measuring). Signed-off-by: Joshua Aberback Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit afcd526b1ba9dbc5707f9bd8d2d032ae62e337dc Author: Joshua Aberback Date: Mon Apr 1 15:18:29 2019 -0400 drm/amd/display: Add fast_validate parameter Add a fast_validate parameter in dc_validate_global_state for future use Signed-off-by: Joshua Aberback Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit c14a005c1621c3b995ac9df8bf93bb4de8a3e446 Author: Nicholas Kazlauskas Date: Fri Mar 29 14:58:32 2019 -0400 drm/amd/display: Relax requirements for CRTCs to be enabled [Why] As long as we have at least one non-cursor plane enabled on a CRTC then the CRTC itself can remain enabled. This will allow for commits where there's an overlay plane enabled but no primary plane enabled. [How] Remove existing primary plane fb != NULL checks and replace them with the new does_crtc_have_active_plane helper. This will be called from atomic check when validating the CRTC. Since the primary plane state can now potentially be NULL we'll need to guard for that when accessing it in some of the cursor logic. Signed-off-by: Nicholas Kazlauskas Reviewed-by: David Francis Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 004b3938e6374f39d43cc32bd4953f2fe8b8905b Author: Nicholas Kazlauskas Date: Thu Mar 28 15:50:06 2019 -0400 drm/amd/display: Check scaling info when determing update type [Why] Surface scaling info updates can affect bandwidth and blocks. We need to be checking these with global validation to avoid underflow or corruption. [How] Drop the state->allow_modeset early exit in dm_determine_update_type_for_commit. Most of those should be considered fast now anyway. Fill in scaling info and it to the surface update in atomic check. Signed-off-by: Nicholas Kazlauskas Reviewed-by: David Francis Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 6e8dc7b0a7a4d5532c2e0706795a95b7beb9592e Author: Nicholas Kazlauskas Date: Fri Mar 29 11:40:43 2019 -0400 drm/amd/display: Don't warn when DC update type > DM guess [Why] DM thinks that the update type should be full whenever a stream or plane is added or removed (including recreations). This won't match in the case where DC thinks what looks like a fast update to DM is actually a medium or full - like scaling changes that affect bandwidth and clocks. [How] Drop this warning. DC knows better than the DM does for determining cases like this. The other warning can be kept for now since it would warn on a pretty serious DC or DM bug. Signed-off-by: Nicholas Kazlauskas Reviewed-by: David Francis Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit f843b308adb2c412da611351acbe29292190cae8 Author: Nicholas Kazlauskas Date: Thu Jan 10 09:32:31 2019 -0500 drm/amd/display: Use surface directly when checking update type [Why] DC expects the surface memory address to identify the surface. This doesn't work with what we're doing with the temporary surfaces, it will always assume this is a full update because the surface isn't in the current context. [How] Use the surface directly. This doesn't give us much improvement yet, since we always create a new dc_plane_state when state->allow_modeset is true. The call into dc_check_update_surfaces_for_stream also needs to be locked, for two reasons: 1. It checks the current DC state 2. It modifies the surface update flags Both of which could be currently in the middle of commit work from commit tail. A TODO here is to pass the context explicitly into this function and find a way to get the surface update flags out of it without modifying the surface in place. Signed-off-by: Nicholas Kazlauskas Reviewed-by: David Francis Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 6491f0c05abd009631e0d0a33d671bb5a685847a Author: Nicholas Kazlauskas Date: Mon Apr 1 09:43:34 2019 -0400 drm/amd/display: Add basic downscale and upscale valdiation [Why] Planes have downscaling limits and upscaling limits per format and DM is expected to validate these using DC caps. We should fail atomic check validation if we aren't capable of doing the scaling. [How] We don't currently create store which DC plane maps to which DRM plane so we can't easily check the caps directly. For now add basic constraints that cover the absolute min and max downscale / upscale limits for most RGB and YUV formats across ASICs. Leave a TODO indicating that these should really be done with DC caps. We'll probably need to subclass DRM planes again in order to correctly identify which DC plane maps to it. Signed-off-by: Nicholas Kazlauskas Reviewed-by: Harry Wentland Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 5ac4619b9d2fdbb54ef4b247db774637e347d46e Author: Samson Tam Date: Mon Apr 1 17:07:21 2019 -0400 drm/amd/display: change name from dc_link_get_verified_link_cap to dc_link_get_link_cap [Why] DM doesn't need to know which link cap is being retrieved ( verified or preferred ). Let DC figure it out. [How] Change name. Signed-off-by: Samson Tam Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 695af5f9a51914030eb2d9e3ba923d38180a8199 Author: Nicholas Kazlauskas Date: Thu Mar 28 14:45:19 2019 -0400 drm/amd/display: Rework DC plane filling and surface updates [Why] We currently don't do DC validation for medium or full updates where the plane state isn't created. There are some medium and full updates that can cause bandwidth or clock changes to occur resulting in underflow or corruption. We need to be able to fill surface and plane info updates during atomic commit for dm_determine_update_type for commit. Since we already do this during atomic commit tail it would be good if we had the same logic in both places for creating these structures. [How] Introduce fill_dc_scaling_info and fill_dc_plane_info_and_addr. These two functions cover the following three update structures: - struct dc_scaling_info - struct dc_plane_info - struct dc_plane_address Cleanup and adapter the existing fill_plane_* helpers to work with these functions. Update call sites that used most of these sub helpers directly to work with the new functions. The exception being prepare_fb - we just want the new buffer attributes specifically in the case where we're creating the plane. This is needed for dc_commit_state in the case where the FB hasn't been previously been used. This isn't quite a refactor, but functionally driver behavior should be mostly the smae as before. The one exception is that we now check the return code for fill_plane_buffer_attributes which means that commits will be rejected that try to enable DCC with erroneous parameters. Signed-off-by: Nicholas Kazlauskas Reviewed-by: David Francis Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 320932bfd9e30222f427811079323b6c86edf4da Author: Nicholas Kazlauskas Date: Thu Mar 28 09:46:23 2019 -0400 drm/amd/display: Recalculate pitch when buffers change [Why] Pitch was only calculated based on format whenever the plane state was recreated. This could result in surface corruption due to the incorrect pitch being programmed when the surface pitch changed during commits where state->allow_modeset = false. [How] Recalculate pitch at the same time we update the buffer address and other buffer attributes. This function was previously called fill_plane_tiling_attributes but I've also renamed it to fill_plane_buffer_attributes to clarify the actual intent of the function now that it's handling most buffer related attributes. Signed-off-by: Nicholas Kazlauskas Reviewed-by: David Francis Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit f6ff2a08f49d565e38300f1a9d2f13359c7efc54 Author: Nicholas Kazlauskas Date: Mon Mar 25 12:17:14 2019 -0400 drm/amd/display: Maintain z-ordering when creating planes [Why] The overlay will be incorrectly placed *below* the primary plane for commits with state->allow_modeset = true because the primary plane won't be removed and recreated in the same commit. [How] Add the should_reset_plane helper to determine if the plane should be reset or not. If we need to add or force reset any plane in the context then we'll need to do the same for every plane on the stream. Unfortunately we need to do the remove / recreate routine for removing planes as well since DC currently isn't well equipped to handle the plane with the top pipe being removed with other planes still active. Signed-off-by: Nicholas Kazlauskas Reviewed-by: Sun peng Li Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 7817183227798d32e0f49f2bfe865da05e48623a Author: Nicholas Kazlauskas Date: Mon Mar 25 12:06:23 2019 -0400 drm/amd/display: Update plane scaling parameters for fast updates [Why] Plane scaling parameters are not correctly filled or updated when performing fast updates. They're filled when creating the dc plane state and during atomic check. While the atomic check code path happens for the plane even during fast updates, the issue is that they're done in place on the dc_plane_state directly. This dc_plane_state may be the current state plane state being used by the hardware, so these parameters won't be correctly programmed. The new scaling parameters should instead be passed as an update to the plane. [How] Update fill_rects_from_plane_state to not modify dc_plane_state directly. Update the call sites that use this to fill in the appropriate values. Signed-off-by: Nicholas Kazlauskas Reviewed-by: Sun peng Li Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 0a8d85e0a16051c06aa8ae6286dd434e719c55c6 Author: Aric Cyr Date: Fri Mar 29 16:27:50 2019 -0400 drm/amd/display: 3.2.26 Signed-off-by: Aric Cyr Reviewed-by: Aric Cyr Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 32a5b542a6c6c7b175b9a37dd5e155667cbb2e7b Author: Anthony Koo Date: Mon Mar 25 20:33:35 2019 -0400 drm/amd/display: Read eDP link settings on detection [Why] Unlike external DP panels, internal eDP does not perform verify link caps because the panel connection is fixed. So if GOP enabled the eDP at boot, we can retain its trained link settings to optimize. [How] Read the lane count and link rate by reading this information from DPCD 100h, 101h, 115h Signed-off-by: Anthony Koo Reviewed-by: Aric Cyr Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit e54ae524294f0fe66f5fbbde4cdcb4a52e89bdd5 Author: Yongqiang Sun Date: Thu Mar 28 16:49:42 2019 -0400 drm/amd/display: define HUBP_MASK_SH_LIST_DCN for Raven Signed-off-by: Yongqiang Sun Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 623588b8ee601c4e15e717ea5cbea838cd9723ac Author: David Francis Date: Mon Mar 25 09:44:04 2019 -0400 drm/amd/display: Handle get crtc position error [Why] dc_stream_get_crtc_position can return false. This was unhandled in delay_cursor_until_vupdate [How] If dc_stream_get_crtc_position returns false, something is weird. Don't delay. Signed-off-by: David Francis Reviewed-by: Sun peng Li Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit ea36ad34c5b2d6d2e079efc20fb0784e63dad438 Author: Jun Lei Date: Tue Mar 26 17:32:59 2019 -0400 drm/amd/display: expand plane caps to include fp16 and scaling capability [why] there are some scaling capabilities such as fp16 which are known to be unsupported on a given ASIC. exposing these static capabilities allows much simpler implementation for OS interfaces which require to report such static capabilities to reduce the number of dynamic validation calls [how] refactor the existing plane caps to be more extensible, and add fp16 and scaling capabilities Signed-off-by: Jun Lei Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Acked-by: Harry Wentland Signed-off-by: Alex Deucher commit fc8e5230dca9dfe0dae0a9d5ce92c6a3199decb1 Author: Nicholas Kazlauskas Date: Fri Mar 15 15:55:43 2019 -0400 drm/amd/display: Add DRM color properties for primary planes [Why] We need DC's color space to match the color encoding and color space specified by userspace to correctly render YUV surfaces. [How] Add the DRM color properties when the DC plane supports NV12. Signed-off-by: Nicholas Kazlauskas Reviewed-by: Sun peng Li Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 37c6a93b7e535e4269af3e85bfce3955a635c750 Author: Nicholas Kazlauskas Date: Fri Mar 15 15:45:34 2019 -0400 drm/amd/display: Expose support for NV12 on suitable planes [Why] Hardware can support video surfaces and DC tells us which planes are suitable via DC plane caps. [How] The supported formats array will now vary based on what DC tells us, so create an array and fill it dynamically based on plane types and caps. Ideally we'd query support for every format via DC plane caps, but for the framework is in place to do so later with this. Signed-off-by: Nicholas Kazlauskas Reviewed-by: Sun peng Li Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 3be0a0b8501585120f8de68e9077ca143024139b Author: Anthony Koo Date: Thu Mar 28 12:39:48 2019 -0400 drm/amd/display: Add switch for Fractional PWM on or off [Why] Some LED Driver might not like Fractional PWM especially at extreme ranges near 0% or 100%. For example, backlight flashing could be observed. We want a way to switch fractional PWM on/off either for debug, or possibly production. [How] Add DC code that can send new FW command to enable/disable fractional PWM. Signed-off-by: Anthony Koo Reviewed-by: Aric Cyr Acked-by: Leo Li Signed-off-by: Alex Deucher commit 89d139d5ad465e35a9c602421eb1a1ff08ea530d Author: Darrick J. Wong Date: Fri Apr 12 07:41:18 2019 -0700 xfs: report inode health via bulkstat Use space in the bulkstat ioctl structure to report any problems observed with the inode. Signed-off-by: Darrick J. Wong Reviewed-by: Brian Foster commit 1302c6a24fd952555aa6dc811cec5b2a22ac386a Author: Darrick J. Wong Date: Fri Apr 12 07:41:18 2019 -0700 xfs: report AG health via AG geometry ioctl Use the AG geometry info ioctl to report health status too. Signed-off-by: Darrick J. Wong Reviewed-by: Brian Foster commit c23232d409355091502a362e99ed06f800765961 Author: Darrick J. Wong Date: Fri Apr 12 07:41:17 2019 -0700 xfs: report fs and rt health via geometry structure Use our newly expanded geometry structure to report the overall fs and realtime health status. Signed-off-by: Darrick J. Wong Reviewed-by: Brian Foster commit 7cd5006bdb6f6d9d9d7e68aa1d96b6e4a8b68bc5 Author: Darrick J. Wong Date: Fri Apr 12 07:41:17 2019 -0700 xfs: add a new ioctl to describe allocation group geometry Add a new ioctl to describe an allocation group's geometry. Signed-off-by: Darrick J. Wong Reviewed-by: Brian Foster commit 1b6d968de22bffd85a60538d2628185b17228291 Author: Dave Chinner Date: Fri Apr 12 07:41:16 2019 -0700 xfs: bump XFS_IOC_FSGEOMETRY to v5 structures Unfortunately, the V4 XFS_IOC_FSGEOMETRY structure is out of space so we can't just add a new field to it. Hence we need to bump the definition to V5 and and treat the V4 ioctl and structure similar to v1 to v3. While doing this, clean up all the definitions associated with the XFS_IOC_FSGEOMETRY ioctl. Signed-Off-By: Dave Chinner Reviewed-by: Darrick J. Wong [darrick: forward port to 5.1, expand structure size to 256 bytes] Signed-off-by: Darrick J. Wong Reviewed-by: Brian Foster commit 519841c207de9926418d2f39e162097088478781 Author: Darrick J. Wong Date: Fri Apr 12 07:41:16 2019 -0700 xfs: clear BAD_SUMMARY if unmounting an unhealthy filesystem If we know the filesystem metadata isn't healthy during unmount, we want to encourage the administrator to run xfs_repair right away. We can't do this if BAD_SUMMARY will cause an unclean log unmount to force summary recalculation, so turn it off if the fs is bad. Signed-off-by: Darrick J. Wong Reviewed-by: Brian Foster commit 39353ff6e96fb623230341ca89b0f4ef3a04998f Author: Darrick J. Wong Date: Fri Apr 12 07:41:15 2019 -0700 xfs: replace the BAD_SUMMARY mount flag with the equivalent health code Replace the BAD_SUMMARY mount flag with calls to the equivalent health tracking code. Signed-off-by: Darrick J. Wong Reviewed-by: Brian Foster commit 6772c1f11206f270af56d62bc26737864a63608a Author: Darrick J. Wong Date: Fri Apr 12 07:40:25 2019 -0700 xfs: track metadata health status Add the necessary in-core metadata fields to keep track of which parts of the filesystem have been observed and which parts were observed to be unhealthy, and print a warning at unmount time if we have unfixed problems. Signed-off-by: Darrick J. Wong Reviewed-by: Brian Foster commit 2bf9d264efededefa8a339e31995a90df13e5fbe Author: Wang Shilong Date: Fri Apr 12 07:39:21 2019 -0700 xfs,fstrim: fix to return correct minlen This patch tries to address two problems: 1) return @minlen we used to trim to user space. 2) return EINVAL if granularity is larger than avg size, even most of cases, granularity is small(4K), but if devices return a lager granularity for some reaons (testing, bugs etc), fstrim should return failure directly. Signed-off-by: Wang Shilong Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong commit 1ca89fbc48e1ea5044997328e403f8a13513e8c3 Author: Brian Foster Date: Fri Apr 12 07:39:21 2019 -0700 xfs: don't account extra agfl blocks as available The block allocation AG selection code has parameters that allow a caller to perform multiple allocations from a single AG and transaction (under certain conditions). The parameters specify the total block allocation count required by the transaction and the AG selection code selects and locks an AG that will be able to satisfy the overall requirement. If the available block accounting calculation turns out to be inaccurate and a subsequent allocation call fails with -ENOSPC, the resulting transaction cancel leads to filesystem shutdown because the transaction is dirty. This exact problem can be reproduced with a highly parallel space consumer and fsstress workload running long enough to a large filesystem against -ENOSPC conditions. A bmbt block allocation request made for inode extent to bmap format conversion after an extent allocation is expected to be satisfied by the same AG and the same transaction as the extent allocation. The bmbt block allocation fails, however, because the block availability of the AG has changed since the AG was selected (outside of the blocks used for the extent itself). The inconsistent block availability calculation is caused by the deferred block freeing behavior of the AGFL. This immediately removes extra blocks from the AGFL to free up AGFL slots, but rather than immediately freeing such blocks as was done in the past, the block free is deferred such that said blocks are not available for allocation until the current transaction commits. The AG selection logic currently considers all AGFL blocks as available and executes shortly before any extra AGFL blocks are freed. This means the block availability of the current AG can change before the first allocation even occurs, but in practice a failure is more likely to manifest via a subsequent allocation because extent allocation usually has a contiguity requirement larger than a single block that can't be satisfied from the AGFL. In general, XFS prefers operational robustness to absolute allocation efficiency. In other words, we prefer to return -ENOSPC slightly earlier at the expense of not being able to allocate every last block in an AG to avoid this kind of problem. As such, update the AG block availability calculation to consider extra AGFL blocks as unavailable since they are immediately removed following the calculation and will not become available until the current transaction commits. Signed-off-by: Brian Foster Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong commit 22fedd80b652213e694b788e9389892b67b86286 Author: Brian Foster Date: Fri Apr 12 07:39:20 2019 -0700 xfs: shutdown after buf release in iflush cluster abort path If xfs_iflush_cluster() fails due to corruption, the error path issues a shutdown and simulates an I/O completion to release the buffer. This code has a couple small problems. First, the shutdown sequence can issue a synchronous log force, which is unsafe to do with buffer locks held. Second, the simulated I/O completion does not guarantee the buffer is async and thus is unlocked and released. For example, if the last operation on the buffer was a read off disk prior to the corruption event, XBF_ASYNC is not set and the buffer is left locked and held upon return. This results in a memory leak as shown by the following message on module unload: BUG xfs_buf (...): Objects remaining in xfs_buf on __kmem_cache_shutdown() Fix both of these problems by setting XBF_ASYNC on the buffer prior to the simulated I/O error and performing the shutdown immediately after ioend processing when the buffer has been released. Signed-off-by: Brian Foster Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong commit 545aa41f5cba935d595a95cda650ffbdf87575ee Author: Brian Foster Date: Fri Apr 12 07:39:20 2019 -0700 xfs: wake commit waiters on CIL abort before log item abort XFS shutdown deadlocks have been reproduced by fstest generic/475. The deadlock signature involves log I/O completion running error handling to abort logged items and waiting for an inode cluster buffer lock in the buffer item unpin handler. The buffer lock is held by xfsaild attempting to flush an inode. The buffer happens to be pinned and so xfs_iflush() triggers an async log force to begin work required to get it unpinned. The log force is blocked waiting on the commit completion, which never occurs and thus leaves the filesystem deadlocked. The root problem is that aborted log I/O completion pots commit completion behind callback completion, which is unexpected for async log forces. Under normal running conditions, an async log force returns to the caller once the CIL ctx has been formatted/submitted and the commit completion event triggered at the tail end of xlog_cil_push(). If the filesystem has shutdown, however, we rely on xlog_cil_committed() to trigger the completion event and it happens to do so after running log item unpin callbacks. This makes it unsafe to invoke an async log force from contexts that hold locks that might also be required in log completion processing. To address this problem, wake commit completion waiters before aborting log items in the log I/O completion handler. This ensures that an async log force will not deadlock on held locks if the filesystem happens to shutdown. Note that it is still unsafe to issue a sync log force while holding such locks because a sync log force explicitly waits on the force completion, which occurs after log I/O completion processing. Signed-off-by: Brian Foster Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong commit 4d09807f20462d6edf04f6e98d3d47bcdf7a5e2f Author: Brian Foster Date: Fri Apr 12 07:39:19 2019 -0700 xfs: fix use after free in buf log item unlock assert The xfs_buf_log_item ->iop_unlock() callback asserts that the buffer is unlocked when either non-stale or aborted. This assert occurs after the bli refcount has been dropped and the log item potentially freed. The aborted check is thus a potential use after free. This problem has been reproduced with KASAN enabled via generic/475. Fix up xfs_buf_item_unlock() to query aborted state before the bli reference is dropped to prevent a potential use after free. Signed-off-by: Brian Foster Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong commit e62b2fd5d3b4c5c958cf88b92f31960750d88dc5 Author: Heiner Kallweit Date: Sun Apr 14 11:48:39 2019 +0200 r8169: change irq handler to always trigger NAPI polling This check isn't really needed and we can simplify the code and save some CPU cycles by removing it. Only in case of an error none of these bits are set, and calling the NAPI callback doesn't hurt in this case. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 0ed1d3ddedb91158d2756b10c80a6281668bc2eb Merge: c19571264dd7 8344ffffd176 Author: David S. Miller Date: Sun Apr 14 13:50:05 2019 -0700 Merge branch 'r8169-phy-func-ptr-arrays' Heiner Kallweit says: ==================== r8169: create function pointer arrays for PHY and chip hw init functions Using function pointer arrays makes the code easier to read and better maintainable. AFAIK function pointer arrays cause some performance drawback due to Spectre mitigation, but we're not in a hot path. ==================== Signed-off-by: David S. Miller commit 8344ffffd176688d5ba7423ac8cf053d8ab739e7 Author: Heiner Kallweit Date: Sun Apr 14 10:32:07 2019 +0200 r8169: create function pointer array for chip hw init functions Using a function pointer array makes this easier to read and better maintainable. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 1fcd165884c8bc5a5605d429d53de5784def46bb Author: Heiner Kallweit Date: Sun Apr 14 10:30:24 2019 +0200 r8169: create function pointer array for PHY init functions Using a function pointer array makes this easier to read and better maintainable. AFAIK function pointer arrays cause some performance drawback due to Spectre mitigation, but we're not in a hot path here. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit c19571264dd753a8fb7d2ca2d493ef709a57a9c6 Merge: 81f2eeb37074 6814b5900b83 Author: David S. Miller Date: Sun Apr 14 13:47:35 2019 -0700 Merge branch 'hns3-next' Huazhong Tan says: ==================== code optimizations & bugfixes for HNS3 driver This patch-set includes code optimizations and bugfixes for the HNS3 ethernet controller driver. [patch 1/12 - 4/12] optimizes the VLAN freature and adds support for port based VLAN, fixes some related bugs about the current implementation. [patch 5/12 - 12/12] includes some other code optimizations for the HNS3 ethernet controller driver. Change log: V1->V2: modifies some patches' commint log and code. ==================== Signed-off-by: David S. Miller commit 6814b5900b83de632d6709e21f906391496f5fc5 Author: Peng Li Date: Sun Apr 14 09:47:46 2019 +0800 net: hns3: code optimization for command queue' spin lock This patch removes some redundant BH disable when initializing and uninitializing command queue. Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit cc5ff6e90f808f9a4c8229bf2f1de0dfe5d7931c Author: Peng Li Date: Sun Apr 14 09:47:45 2019 +0800 net: hns3: free the pending skb when clean RX ring If there is pending skb in RX flow when close the port, and the pending buffer is not cleaned, the new packet will be added to the pending skb when the port opens again, and the first new packet has error data. This patch cleans the pending skb when clean RX ring. Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 2d0075b4a7b795bb6e6c4e392d36c023b0d0e858 Author: Jian Shen Date: Sun Apr 14 09:47:44 2019 +0800 net: hns3: do not initialize MDIO bus when PHY is inexistent For some cases, PHY may not be connected to MDIO bus, then the driver will initialize fail since MDIO bus initialization fails. This patch fixes it by skipping the MDIO bus initialization when PHY is inexistent. Signed-off-by: Jian Shen Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit c41e672d1e6a51b2b21a23ade4048b414ec76624 Author: Weihang Li Date: Sun Apr 14 09:47:43 2019 +0800 net: hns3: set dividual reset level for all RAS and MSI-X errors According to hardware description, reset level that should be triggered are not consistent in a module. For example, in SSU common errors, the first two bits has no need to do reset, but the other bits need global reset. This patch sets separate reset level for all RAS and MSI-X interrupts by adding a reset_lvel field in struct hclge_hw_error, and fixes some incorrect reset level. Signed-off-by: Weihang Li Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 1a49f3c6146f33c42523c8e4f5a72b6f322d5357 Author: Yunsheng Lin Date: Sun Apr 14 09:47:42 2019 +0800 net: hns3: divide shared buffer between TC Currently hardware may have not enough buffer to receive packet when it has used more than two MPS(maximum packet size) of buffer, but there are still a lot of shared buffer left unused when TC num is small. This patch divides shared buffer to be used between TC when the port supports DCB, and adjusts the waterline and threshold according to user manual for the port that does not support DCB. This patch also change hclge_get_tc_num's return type to u32 to avoid signed-unsigned mix with divide. Signed-off-by: Yunsheng Lin Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit db5936db8f9e024cdbb988dab1606f2c205bb385 Author: Yunsheng Lin Date: Sun Apr 14 09:47:41 2019 +0800 net: hns3: always assume no drop TC for performance reason Currently RX shared buffer' threshold size for speific TC is set to smaller value when the TC's PFC is not enabled, which may cause performance problem because hardware may not have enough hardware buffer when PFC is not enabled. This patch sets the same threshold size for all TC no matter if the specific TC's PFC is enabled. Signed-off-by: Yunsheng Lin Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit d474d88f882610850abbf0ec6cf81ff90014c8ed Author: Yunsheng Lin Date: Sun Apr 14 09:47:40 2019 +0800 net: hns3: add hns3_gro_complete for HW GRO process When a GRO packet is received by driver, the cwr field in the struct tcphdr needs to be checked to decide whether to set the SKB_GSO_TCP_ECN for skb_shinfo(skb)->gso_type. So this patch adds hns3_gro_complete to do that, and adds the hns3_handle_bdinfo to handle the hns3_gro_complete and hns3_rx_checksum. Signed-off-by: Yunsheng Lin Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit a4d2cdcbb878d4d5828cd4124104c330d2817211 Author: Yunsheng Lin Date: Sun Apr 14 09:47:39 2019 +0800 net: hns3: minor refactor for hns3_rx_checksum Change the parameters of hns3_rx_checksum to be more specific to what is used internally, rather than passing in a pointer to the whole hns3_desc. Reduces duplicate code and bring this function inline with the approach used in hns3_set_gro_param. Signed-off-by: Yunsheng Lin Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 92f11ea177cd77ebc790916eb9d3331e1d676b62 Author: Jian Shen Date: Sun Apr 14 09:47:38 2019 +0800 net: hns3: fix set port based VLAN issue for VF In original codes, ndo_set_vf_vlan() in hns3 driver was implemented wrong. It adds or removes VLAN into VLAN filter for VF, but VF is unaware of it. This patch fixes it. When VF loads up, it firstly queries the port based VLAN state from PF. When user change port based VLAN state from PF, PF firstly checks whether the VF is alive. If the VF is alive, then PF notifies the VF the modification; otherwise PF configure the port based VLAN state directly. Fixes: 46a3df9f9718 ("net: hns3: Add HNS3 Acceleration Engine & Compatibility Layer Support") Signed-off-by: Jian Shen Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 21e043cd812492e0a02fbbd956fbe49e19daeb45 Author: Jian Shen Date: Sun Apr 14 09:47:37 2019 +0800 net: hns3: fix set port based VLAN for PF In original codes, ndo_set_vf_vlan() in hns3 driver was implemented wrong. It adds or removes VLAN into VLAN filter for VF, but VF is unaware of it. Indeed, ndo_set_vf_vlan() is expected to enable or disable port based VLAN (hardware inserts a specified VLAN tag to all TX packets for a specified VF) . When enable port based VLAN, we use port based VLAN id as VLAN filter entry. When disable port based VLAN, we use VLAN id of VLAN device. This patch fixes it for PF, enable/disable port based VLAN when calls ndo_set_vf_vlan(). Fixes: 46a3df9f9718 ("net: hns3: Add HNS3 Acceleration Engine & Compatibility Layer Support") Signed-off-by: Jian Shen Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 44e626f720c3176558df7840f2b52ba44cc0d414 Author: Jian Shen Date: Sun Apr 14 09:47:36 2019 +0800 net: hns3: fix VLAN offload handle for VLAN inserted by port Currently, in TX direction, driver implements the TX VLAN offload by checking the VLAN header in skb, and filling it into TX descriptor. Usually it works well, but if enable inserting VLAN header based on port, it may conflict when out_tag field of TX descriptor is already used, and cause RAS error. In RX direction, hardware supports stripping max two VLAN headers. For vlan_tci in skb can only store one VLAN tag, when RX VLAN offload enabled, driver tells hardware to strip one VLAN header from RX packet; when RX VLAN offload disabled, driver tells hardware not to strip VLAN header from RX packet. Now if port based insert VLAN enabled, all RX packets will have the port based VLAN header. This header is useless for stack, driver needs to ask hardware to strip it. Unfortunately, hardware can't drop this VLAN header, and always fill it into RX descriptor, so driver has to identify and drop it. Signed-off-by: Jian Shen Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 741fca1667ea90f6c9a1393d3c1a3e4f9eae3fc7 Author: Jian Shen Date: Sun Apr 14 09:47:35 2019 +0800 net: hns3: modify VLAN initialization to be compatible with port based VLAN Our hardware supports inserting a specified VLAN header for each function when sending packets. User can enable it with command "ip link set vf vlan ". For this VLAN header is inserted by hardware, not from stack, hardware also needs to strip it from received packets before sending to stack. In this case, driver needs to tell hardware which VLAN to insert or strip. The current VLAN initialization doesn't allow inserting VLAN header by hardware, this patch modifies it, in order be compatible with VLAN inserted base on port. Signed-off-by: Jian Shen Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 81f2eeb370749631f70532ac9da2a41eaf27fc26 Merge: 5fa7d3f9d318 c6576bfe2f4b Author: David S. Miller Date: Sun Apr 14 13:37:06 2019 -0700 Merge branch 'net-phy-shrink-PHY-settings-array-and-add-200Gbps-support' Heiner Kallweit says: ==================== net: phy: shrink PHY settings array and add 200Gbps support The definition of array settings[] is quite lengthy meanwhile. Add a macro to shrink the definition. When doing this I saw that the new 200Gbps modes and few 100Gbps/50Gbps modes aren't supported in phylib yet. So add this. To avoid ethtool and phylib mode definitions getting out of sync, add a build bug to check for this. ==================== Signed-off-by: David S. Miller commit c6576bfe2f4baa6cbbcd50a4dcd17e843e28fcd7 Author: Heiner Kallweit Date: Sat Apr 13 20:53:43 2019 +0200 phy: warn if phylib and ethtool PHY mode definitions are out of sync If new PHY modes are added people may miss to update all relevant places in the kernel. Therefore add a build bug check for new modes in enum ethtool_link_mode_bit_indices that haven't been added to phylib yet. Suggested-by: Andrew Lunn Signed-off-by: Heiner Kallweit Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 5a3144e419562181bb223de68173b90a8163ebfd Author: Heiner Kallweit Date: Sat Apr 13 20:50:24 2019 +0200 net: phy: add support for new modes in phylib Recently new modes have been added to ethtool.h, but the related extension to phylib hasn't been done yet. So add support for these modes. v2: - add missing 100Gbps and 50Gbps modes Signed-off-by: Heiner Kallweit Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit f1538eca9ea6ec1f67a8832a8fb011326da971c6 Author: Heiner Kallweit Date: Sat Apr 13 20:48:55 2019 +0200 net: phy: shrink PHY settings array The definition of array settings[] is quite lengthy meanwhile. Add a macro to shrink the definition. v2: - Fix an indentation issue Signed-off-by: Heiner Kallweit Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 9ee8578d953023cc57e7e736ae48502c707c0210 Author: YueHaibing Date: Tue Jan 29 16:03:24 2019 +0800 ARM: pxa: ssp: Fix "WARNING: invalid free of devm_ allocated data" Since commit 1c459de1e645 ("ARM: pxa: ssp: use devm_ functions") kfree, iounmap, clk_put etc are not needed anymore in remove path. Fixes: 1c459de1e645 ("ARM: pxa: ssp: use devm_ functions") Signed-off-by: YueHaibing [ commit message spelling fix ] Signed-off-by: Robert Jarzmik commit 4285f2fcef8001ead0f1c9315ba50302cab68cda Author: Thomas Gleixner Date: Wed Apr 10 12:28:10 2019 +0200 tracing: Remove the ULONG_MAX stack trace hackery No architecture terminates the stack trace with ULONG_MAX anymore. As the code checks the number of entries stored anyway there is no point in keeping all that ULONG_MAX magic around. The histogram code zeroes the storage before saving the stack, so if the trace is shorter than the maximum number of entries it can terminate the print loop if a zero entry is detected. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra (Intel) Cc: Josh Poimboeuf Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Link: https://lkml.kernel.org/r/20190410103645.048761764@linutronix.de commit fa49e2eac9aa8259e1ea540d1bd301448d5b735d Author: Thomas Gleixner Date: Wed Apr 10 12:28:09 2019 +0200 drm: Remove the ULONG_MAX stack trace hackery No architecture terminates the stack trace with ULONG_MAX anymore. Remove the cruft. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra (Intel) Cc: Josh Poimboeuf Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: intel-gfx@lists.freedesktop.org Cc: Joonas Lahtinen Cc: Maarten Lankhorst Cc: dri-devel@lists.freedesktop.org Cc: David Airlie Cc: Jani Nikula Cc: Daniel Vetter Cc: Rodrigo Vivi Link: https://lkml.kernel.org/r/20190410103644.945059666@linutronix.de commit accddc41b96915ab4e5d37796c6d17d70805999c Author: Thomas Gleixner Date: Wed Apr 10 12:28:08 2019 +0200 latency_top: Remove the ULONG_MAX stack trace hackery No architecture terminates the stack trace with ULONG_MAX anymore. The consumer terminates on the first zero entry or at the number of entries, so no functional change. Remove the cruft. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra (Intel) Cc: Josh Poimboeuf Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Link: https://lkml.kernel.org/r/20190410103644.853527514@linutronix.de commit ead97a49ec3a3cb9b5133acbfed9a49b91ebf37c Author: Thomas Gleixner Date: Wed Apr 10 12:28:07 2019 +0200 mm/kasan: Remove the ULONG_MAX stack trace hackery No architecture terminates the stack trace with ULONG_MAX anymore. Remove the cruft. Signed-off-by: Thomas Gleixner Acked-by: Dmitry Vyukov Acked-by: Peter Zijlstra (Intel) Cc: Josh Poimboeuf Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Andrey Ryabinin Cc: kasan-dev@googlegroups.com Cc: linux-mm@kvack.org Link: https://lkml.kernel.org/r/20190410103644.750219625@linutronix.de commit 4621c9858f05ab08434221e3a15cc8098645ef2a Author: Thomas Gleixner Date: Wed Apr 10 12:28:06 2019 +0200 mm/page_owner: Remove the ULONG_MAX stack trace hackery No architecture terminates the stack trace with ULONG_MAX anymore. Remove the cruft. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra (Intel) Cc: Josh Poimboeuf Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Michal Hocko Cc: linux-mm@kvack.org Cc: Mike Rapoport Cc: Andrew Morton Link: https://lkml.kernel.org/r/20190410103644.661974663@linutronix.de commit b8ca7ff7731f57b256fcc13a9b7d4913f5282e5c Author: Thomas Gleixner Date: Wed Apr 10 12:28:05 2019 +0200 mm/slub: Remove the ULONG_MAX stack trace hackery No architecture terminates the stack trace with ULONG_MAX anymore. Remove the cruft. While at it remove the pointless loop of clearing the stack array completely. It's sufficient to clear the last entry as the consumers break out on the first zeroed entry anyway. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra (Intel) Cc: Josh Poimboeuf Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Andrew Morton Cc: Pekka Enberg Cc: linux-mm@kvack.org Cc: David Rientjes Cc: Christoph Lameter Link: https://lkml.kernel.org/r/20190410103644.574058244@linutronix.de commit 2dfed4565afe263751d2451ad22336ad806c25a6 Author: Thomas Gleixner Date: Wed Apr 10 12:28:04 2019 +0200 lockdep: Remove the ULONG_MAX stack trace hackery No architecture terminates the stack trace with ULONG_MAX anymore. Remove the cruft. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra (Intel) Cc: Josh Poimboeuf Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Will Deacon Link: https://lkml.kernel.org/r/20190410103644.485737321@linutronix.de commit 6a28b4c2d93b812512d8d2e5179e61a14f578560 Author: Thomas Gleixner Date: Wed Apr 10 12:28:03 2019 +0200 s390/stacktrace: Remove the pointless ULONG_MAX marker Terminating the last trace entry with ULONG_MAX is a completely pointless exercise and none of the consumers can rely on it because it's inconsistently implemented across architectures. In fact quite some of the callers remove the entry and adjust stack_trace.nr_entries afterwards. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra (Intel) Cc: Josh Poimboeuf Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Martin Schwidefsky Cc: linux-s390@vger.kernel.org Cc: Heiko Carstens Link: https://lkml.kernel.org/r/20190410103644.396788431@linutronix.de commit 4f3bd6ca310b594df09c8f1e319cda9baf502ec8 Author: Thomas Gleixner Date: Wed Apr 10 12:28:02 2019 +0200 parisc/stacktrace: Remove the pointless ULONG_MAX marker Terminating the last trace entry with ULONG_MAX is a completely pointless exercise and none of the consumers can rely on it because it's inconsistently implemented across architectures. In fact quite some of the callers remove the entry and adjust stack_trace.nr_entries afterwards. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra (Intel) Cc: Josh Poimboeuf Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: "James E.J. Bottomley" Cc: Helge Deller Cc: linux-parisc@vger.kernel.org Link: https://lkml.kernel.org/r/20190410103644.308534788@linutronix.de commit 7b2c7b6233497bfab8826ece574bc1c26e97478d Author: Thomas Gleixner Date: Wed Apr 10 12:28:01 2019 +0200 arm64/stacktrace: Remove the pointless ULONG_MAX marker Terminating the last trace entry with ULONG_MAX is a completely pointless exercise and none of the consumers can rely on it because it's inconsistently implemented across architectures. In fact quite some of the callers remove the entry and adjust stack_trace.nr_entries afterwards. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra (Intel) Cc: Josh Poimboeuf Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Catalin Marinas Cc: Will Deacon Cc: linux-arm-kernel@lists.infradead.org Link: https://lkml.kernel.org/r/20190410103644.220247845@linutronix.de commit fa9833992d5ff3c0d6e81d708bec363bce2fb54c Author: Thomas Gleixner Date: Wed Apr 10 12:28:00 2019 +0200 riscv/stacktrace: Remove the pointless ULONG_MAX marker Terminating the last trace entry with ULONG_MAX is a completely pointless exercise and none of the consumers can rely on it because it's inconsistently implemented across architectures. In fact quite some of the callers remove the entry and adjust stack_trace.nr_entries afterwards. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra (Intel) Cc: Josh Poimboeuf Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: linux-riscv@lists.infradead.org Cc: Palmer Dabbelt Cc: Albert Ou Link: https://lkml.kernel.org/r/20190410103644.131061192@linutronix.de commit f8a9a269c28ddd5d741e747ceca753af01c828f2 Author: Thomas Gleixner Date: Wed Apr 10 12:27:59 2019 +0200 unicore32/stacktrace: Remove the pointless ULONG_MAX marker Terminating the last trace entry with ULONG_MAX is a completely pointless exercise and none of the consumers can rely on it because it's inconsistently implemented across architectures. In fact quite some of the callers remove the entry and adjust stack_trace.nr_entries afterwards. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra (Intel) Cc: Josh Poimboeuf Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Guan Xuetao Link: https://lkml.kernel.org/r/20190410103644.036077691@linutronix.de commit b01f6d368d296cac099383a3eb200e135420f885 Author: Thomas Gleixner Date: Wed Apr 10 12:27:58 2019 +0200 sh/stacktrace: Remove the pointless ULONG_MAX marker Terminating the last trace entry with ULONG_MAX is a completely pointless exercise and none of the consumers can rely on it because it's inconsistently implemented across architectures. In fact quite some of the callers remove the entry and adjust stack_trace.nr_entries afterwards. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra (Intel) Cc: Josh Poimboeuf Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Rich Felker Cc: Yoshinori Sato Cc: Kuninori Morimoto Cc: linux-sh@vger.kernel.org Cc: Simon Horman Link: https://lkml.kernel.org/r/20190410103643.932464393@linutronix.de commit 2a2bcfa0c94d8bc4770676a6799928036296c037 Author: Thomas Gleixner Date: Wed Apr 10 12:27:57 2019 +0200 arm/stacktrace: Remove the pointless ULONG_MAX marker Terminating the last trace entry with ULONG_MAX is a completely pointless exercise and none of the consumers can rely on it because it's inconsistently implemented across architectures. In fact quite some of the callers remove the entry and adjust stack_trace.nr_entries afterwards. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra (Intel) Cc: Josh Poimboeuf Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org Link: https://lkml.kernel.org/r/20190410103643.843075256@linutronix.de commit c5c27a0a583844c69a433039e4fd6396ba23551b Author: Thomas Gleixner Date: Wed Apr 10 12:27:56 2019 +0200 x86/stacktrace: Remove the pointless ULONG_MAX marker Terminating the last trace entry with ULONG_MAX is a completely pointless exercise and none of the consumers can rely on it because it's inconsistently implemented across architectures. In fact quite some of the callers remove the entry and adjust stack_trace.nr_entries afterwards. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra (Intel) Cc: Josh Poimboeuf Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Link: https://lkml.kernel.org/r/20190410103643.750954603@linutronix.de commit fdc7833964d83b7f7f39a03e2ee48a229ba0291f Author: Thomas Gleixner Date: Wed Apr 10 12:27:55 2019 +0200 um/stacktrace: Remove the pointless ULONG_MAX marker Terminating the last trace entry with ULONG_MAX is a completely pointless exercise and none of the consumers can rely on it because it's inconsistently implemented across architectures. In fact quite some of the callers remove the entry and adjust stack_trace.nr_entries afterwards. Signed-off-by: Thomas Gleixner Acked-by: Peter Zijlstra (Intel) Cc: Josh Poimboeuf Cc: Andy Lutomirski Cc: Steven Rostedt Cc: Alexander Potapenko Cc: Richard Weinberger Cc: linux-um@lists.infradead.org Link: https://lkml.kernel.org/r/20190410103643.662853876@linutronix.de commit 955e007729542aa019044b4b3ae71a83c879eede Author: Rui Miguel Silva Date: Fri Apr 12 17:48:56 2019 +0100 iio: gyro: add DT bindings to fxas21002c Add device tree bindings for the FXAS21002C gyroscope. Signed-off-by: Rui Miguel Silva Reviewed-by: Rob Herring Signed-off-by: Jonathan Cameron commit 21cf20a84a9f7afabaf64e63a3a0758795ac505b Author: Andreas Klinger Date: Tue Apr 9 21:11:28 2019 +0200 Kconfig: change configuration of srf04 ultrasonic iio sensor reword configuration option for SRF04 list supported types in help text Signed-off-by: Andreas Klinger Signed-off-by: Jonathan Cameron commit d6edf95abdb56e252b183ebc12c9bb2cf831d154 Author: Andreas Klinger Date: Tue Apr 9 21:10:55 2019 +0200 dt-bindings: iio: srf04: add Maxbotix ultrasonic iio proximity sensors add compatibles for Maxbotix ultrasonic iio sensor types to yaml documentation Signed-off-by: Andreas Klinger Reviewed-by: Rob Herring Signed-off-by: Jonathan Cameron commit bb208037ae45eb891765f0cff4198e9f58da7bd8 Author: Andreas Klinger Date: Tue Apr 9 21:10:22 2019 +0200 srf04.c: add maxbotix ultrasonic sensors add Maxbotix LV ultrasonic sensor types mb1000, mb1010, mb1020, mb1030 and mb1040 add a configuration struct with the different trigger pulse lengths Signed-off-by: Andreas Klinger Signed-off-by: Jonathan Cameron commit 1c2fb40546489ce4ad3cf0cb46d70b5bdea05205 Author: YueHaibing Date: Wed Apr 10 16:45:58 2019 +0800 iio: adc: ti-ads7950: Fix build error without CONFIG_GPIOLIB When building with CONFIG_GPIOLIB is not set gcc warns this: drivers/iio/adc/ti-ads7950.c:75:19: error: field chip has incomplete type struct gpio_chip chip; ^~~~ drivers/iio/adc/ti-ads7950.c: In function ti_ads7950_set: drivers/iio/adc/ti-ads7950.c:409:32: error: implicit declaration of function gpiochip_get_data; did you mean acpi_get_data? [-Werror=implicit-function-declaration] struct ti_ads7950_state *st = gpiochip_get_data(chip); ^~~~~~~~~~~~~~~~~ acpi_get_data Reported-by: Hulk Robot Fixes: c97dce792dc8 ("iio: adc: ti-ads7950: add GPIO support") Signed-off-by: YueHaibing Reviewed-by: Justin Chen Reviewed-by: Linus Walleij Signed-off-by: Jonathan Cameron commit 8e4fefec0174b43fd149dee159131c88cb623664 Author: Colin Ian King Date: Wed Apr 10 19:23:51 2019 +0100 iio: temperature: max31856: fix uninitialized error return Currently if mask is neither CHAN_INFO_RAW or CHAN_INFO_SCALE then then an uninitialized error return 'ret' is returned. Fix this by adding a default case that ensures -EINVAL is returned for this specific case. Addresses-Coverity: ("Uninitialized scalar variable") Signed-off-by: Colin Ian King Reported-by: Dan Carpenter Signed-off-by: Jonathan Cameron commit 631bd2f7ec02ad9e3d1fa31765971387e7792483 Author: YueHaibing Date: Tue Apr 9 02:12:17 2019 +0000 iio: imu: st_lsm6dsx: remove set but not used variables 'acc_sensor' and 'gyro_sensor' Fixes gcc '-Wunused-but-set-variable' warning: drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c: In function 'st_lsm6dsx_read_tagged_fifo': drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c:520:41: warning: variable 'gyro_sensor' set but not used [-Wunused-but-set-variable] drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.c:520:28: warning: variable 'acc_sensor' set but not used [-Wunused-but-set-variable] They are not used since commit 14c7c6e1a860 ("iio: imu: st_lsm6dsx: add st_lsm6dsx_push_tagged_data routine") Signed-off-by: YueHaibing Acked-by: Lorenzo Bianconi Signed-off-by: Jonathan Cameron commit 63440a630d3b0cb6ab7c8507dc27a383fc82ed57 Author: Robert Jones Date: Wed Apr 10 17:12:09 2019 -0700 iio: accel: add support to LIS2DE12 Add support to STMicroelectronics LIS2DE12 accelerometer in st_accel framework. http://www.st.com/resource/en/datasheet/lis2de12.pdf Signed-off-by: Robert Jones Signed-off-by: Jonathan Cameron commit 52e77d67dd8d48e4b74341c4825c2e915ceaedcd Author: Robert Jones Date: Wed Apr 10 17:12:08 2019 -0700 dt-bindings: iio: accel: add LIS2DE12 sensor device binding Signed-off-by: Robert Jones Signed-off-by: Jonathan Cameron commit 45e119e403289b660b19250c741f11bd4d937179 Author: Valentin Manea Date: Sun Mar 31 14:54:08 2019 +0000 iio: accel: kxcjk1013: Add KIOX0008 ACPI Hardware-ID Add the ACPI ID for KXCJ9 sensor seen on the a Teclast X80 Power tablet. Signed-off-by: Valentin Manea Signed-off-by: Jonathan Cameron commit 566564e80b0ed23ffa4c40f7ad4224bf3327053a Author: Marcelo Schmitt Date: Mon Apr 1 11:37:45 2019 -0300 staging: iio: ad9832: use clock framework for clock reference Previously external clock were set through platform_data struct. Now device uses clk struct defined in include/linux/clk.h to handle external clock source. It also removes mclk from platform_data struct. Signed-off-by: Marcelo Schmitt Signed-off-by: Jonathan Cameron commit 7fe8f00051c0b052ef03949dd5fdeff7d378c867 Author: Marcelo Schmitt Date: Mon Apr 1 11:37:10 2019 -0300 staging: iio: ad9832: organize includes Organize includes to list them in lexicographic order. Signed-off-by: Marcelo Schmitt Signed-off-by: Jonathan Cameron commit 88aa7ae661284accd4c058429d6d0a3b7397e081 Author: Andreas Klinger Date: Mon Apr 1 19:31:44 2019 +0200 bmp085.yaml: transform DT documentation of iio sensor into YAML use bmp085.txt and change it into yaml format fix links to datasheets in replaced documentation Signed-off-by: Andreas Klinger Reviewed-by: Rob Herring Signed-off-by: Jonathan Cameron commit 5150ec3fe12579b877da17447687c6c90be20911 Author: Andreas Klinger Date: Mon Apr 1 19:33:54 2019 +0200 avia-hx711.yaml: transform DT binding to YAML replace avia-hx711.txt by avia-hx711.yaml as yaml devicetree documentation for avia hx711 iio adc sensor Signed-off-by: Andreas Klinger Reviewed-by: Rob Herring Signed-off-by: Jonathan Cameron commit a8427a7b371bbf21a0628e4611e3154fe9aa2ccb Author: Andrey Smirnov Date: Wed Apr 3 00:03:23 2019 -0700 iio: imx7d_adc: Use devm_platform_ioremap_resource() Use devm_platform_ioremap_resource() to be able to drop a bit of explicit boilerplate code. Signed-off-by: Andrey Smirnov Cc: Jonathan Cameron Cc: Hartmut Knaack Cc: Lars-Peter Clausen Cc: Peter Meerwald-Stadler Cc: Chris Healy Cc: linux-iio@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Cameron commit 8cc393bf300b4bfc4c6d2e2e017c6468086cfecc Author: Andrey Smirnov Date: Wed Apr 3 00:03:21 2019 -0700 iio: imx7d_adc: Replace pr_err with dev_err Replace combination of pr_err()/dev_name() with an equivalent call for dev_err(). Signed-off-by: Andrey Smirnov Cc: Jonathan Cameron Cc: Hartmut Knaack Cc: Lars-Peter Clausen Cc: Peter Meerwald-Stadler Cc: Chris Healy Cc: linux-iio@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Cameron commit aa21a28e9050e77a37728693cdb4efaca75e36fc Author: Andrey Smirnov Date: Wed Apr 3 00:03:20 2019 -0700 iio: imx7d_adc: Add local struct device pointer in imx7d_adc_probe() Use a local "struct device *dev" in imx7d_adc_probe() for brevity. No functional change intended. Signed-off-by: Andrey Smirnov Cc: Jonathan Cameron Cc: Hartmut Knaack Cc: Lars-Peter Clausen Cc: Peter Meerwald-Stadler Cc: Chris Healy Cc: linux-iio@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Cameron commit 3e5ffe47ed8cfe639cb9bd1516fd0fd3ab71b39e Author: Beniamin Bia Date: Tue Apr 2 16:18:41 2019 +0300 dt-bindings: iio: adc: Add AD7616 ADC documentation Document support for AD7616 Analog to Digital Converter. Signed-off-by: Beniamin Bia Reviewed-by: Rob Herring Signed-off-by: Jonathan Cameron commit 7989b4bb23fe489996de7ad97b9327e804d7c158 Author: Beniamin Bia Date: Tue Apr 2 16:18:40 2019 +0300 iio: adc: ad7616: Add support for AD7616 ADC The AD7616 is a 12-bit ADC with 16 channels. The AD7616 can be configured to work in hardware mode by controlling it via gpio pins and read data via spi. No support for software mode yet, but it is a work in progress. This device requires a reset in order to update oversampling, so chip info has got a new attribute to mark this. The current assumption that this driver makes for AD7616, is that it's working in Hardware Mode with Serial, Burst and Sequencer modes activated. To activate them, following pins must be pulled high: -SER/PAR -SEQEN And following must be pulled low: -WR/BURST -DB4/SEQEN Datasheets: Link: https://www.analog.com/media/en/technical-documentation/data-sheets/ad7616.pdf Signed-off-by: Beniamin Bia Signed-off-by: Alexandru Ardelean Signed-off-by: Jonathan Cameron commit 6bf229abce7528bcf70c62d913eeabfc770ee72c Author: Stefan Popa Date: Tue Apr 2 16:18:39 2019 +0300 iio: adc: ad7606: Move oversampling options in chip info and rework *_avail attributes Available oversampling ratios and scales can be shown by calling a common ad7606_show_avail function which takes as parameters the array which stores the values, together with the size of the array. Oversampling options are now defined in chip info structure and they are loaded at probe. Has_Oversampling attribute was removed because oversampling_num was added and it is not needed anymore. The purpose of this patch is to deal with the scale_avail and oversampling_avail arrays in a generic way. This makes it easier to add support for new devices which will work with different scales and oversampling ratios. It is also an intermediate step for adding support for ad7616 which has different oversampling sampling ratios available. Signed-off-by: Stefan Popa Signed-off-by: Beniamin Bia Signed-off-by: Jonathan Cameron commit 9044b6e25e2fba8c5586f958da6ff89582d06a3d Author: Melissa Wen Date: Tue Apr 2 17:18:54 2019 -0300 staging: iio: frequency: ad9834: Remove unnecessary parentheses Remove unneeded parentheses around the arguments of ||. This reduces clutter and code behave in the same way. Change suggested by checkpatch.pl. CHECK: Unnecessary parentheses around 'st->devid == ID_AD9833' CHECK: Unnecessary parentheses around 'st->devid == ID_AD9837' Signed-off-by: Melissa Wen Signed-off-by: Jonathan Cameron commit 8cf614950e391c97405cf9ff489f0900322ef396 Author: Fabrizio Castro Date: Wed Apr 3 16:03:51 2019 +0100 iio: adc: Fix MAX9611 spacing Between "config" and "MAX9611" there is a tab, replace it with a space. Signed-off-by: Fabrizio Castro Signed-off-by: Jonathan Cameron commit 649cc7b17ce8c53d25f12dc0859285456850b9ac Author: Lorenzo Bianconi Date: Thu Apr 4 18:02:35 2019 +0200 dt-bindings: iio: imu: st_lsm6dsx: add lsm6dsr device bindings Signed-off-by: Lorenzo Bianconi Reviewed-by: Rob Herring Signed-off-by: Jonathan Cameron commit 7676e667c841375b41d9438b559756141aa93d0e Author: Charles Keepax Date: Fri Apr 12 09:14:58 2019 +0200 ARM: s3c64xx: Tidy up handling of regulator GPIO lookups Rather than unconditionally registering the GPIO lookup table only do so for devices that require it. Signed-off-by: Charles Keepax [Fixed up to also handle wm5102 and wm5102 reva] Signed-off-by: Linus Walleij Signed-off-by: Krzysztof Kozlowski commit 1615fe41a1959a2ee2814ba62736b2bb54e9802a Author: Steve Moskovchenko Date: Tue Apr 2 23:28:56 2019 -0700 iio: imu: mpu6050: Fix FIFO layout for ICM20602 The MPU6050 driver has recently gained support for the ICM20602 IMU, which is very similar to MPU6xxx. However, the ICM20602's FIFO data specifically includes temperature readings, which were not present on MPU6xxx parts. As a result, the driver will under-read the ICM20602's FIFO register, causing the same (partial) sample to be returned for all reads, until the FIFO overflows. Fix this by adding a table of scan elements specifically for the ICM20602, which takes the extra temperature data into consideration. While we're at it, fix the temperature offset and scaling on ICM20602, since it uses different scale/offset constants than the rest of the MPU6xxx devices. Signed-off-by: Steve Moskovchenko Fixes: 22904bdff978 ("iio: imu: mpu6050: Add support for the ICM 20602 IMU") Signed-off-by: Jonathan Cameron commit 89388ca4955fe2f70936488723c9bb74099f37a3 Author: Artur Rojek Date: Sat Mar 23 18:28:07 2019 +0100 iio: inkern: Convert iio_read_avail_channel_raw into a wrapper Convert "iio_read_avail_channel_raw" over to a wrapper around "iio_read_avail_channel_attribute". With the introduction of "iio_read_avail_channel_attribute", the necessity of having a separate call to read raw channel values became redundant. Signed-off-by: Artur Rojek Signed-off-by: Jonathan Cameron commit 4abbd783d126cabfc20d1b8d50b1d5026b5cba09 Author: Paul Gortmaker Date: Sat Apr 13 11:12:52 2019 -0400 soundwire: intel: fix implicit header use of module.h/export.h These two files are implicitly relying on an instance of including module.h from . Ideally, header files under include/linux shouldn't be adding includes of other headers, in anticipation of their consumers, but just the headers needed for the header itself to pass parsing with CPP. The module.h is particularly bad in this sense, as it itself does include a whole bunch of other headers, due to the complexity of module support. Here, we make those includes explicit, in order to allow a future removal of module.h from linux/acpi.h without causing build breakage. Cc: Vinod Koul Cc: Sanyog Kale Cc: Pierre-Louis Bossart Signed-off-by: Paul Gortmaker Signed-off-by: Vinod Koul commit 9f421096a16e75d22e69f766206f1bb0dc8fcf90 Author: Artur Rojek Date: Sat Mar 23 18:28:06 2019 +0100 iio: inkern: API for reading available iio channel attribute values Extend the inkern API with a function for reading available attribute values of iio channels. Signed-off-by: Artur Rojek Signed-off-by: Jonathan Cameron commit a25eab299165927a4e187bc40f20b549152779d9 Author: Pierre-Louis Bossart Date: Wed Apr 10 22:17:00 2019 -0500 soundwire: stream: remove useless initialization of local variable no need to reset return value. Detected with cppcheck: [drivers/soundwire/stream.c:332]: (style) Variable 'ret' is assigned a value that is never used. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Vinod Koul commit 7de8d238dd91dcb4c1200facdf7d510896927883 Author: Pierre-Louis Bossart Date: Wed Apr 10 22:16:59 2019 -0500 soundwire: remove useless initializations No need for explicit initialization of page and ssp fields, they are already zeroed with a memset. Detected with cppcheck: [drivers/soundwire/bus.c:309]: (style) Variable 'msg->page' is reassigned a value before the old one has been used. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Vinod Koul commit 4ac5627acc3e32c6a2acf5d570efc998792f2a65 Author: Pierre-Louis Bossart Date: Wed Apr 10 22:16:57 2019 -0500 soundwire: intel: fix inversion in devm_kcalloc parameters the number of elements and size are inverted, fix. This probably only worked because the number of properties is hard-coded to 1. Signed-off-by: Pierre-Louis Bossart Reviewed-by: Takashi Iwai Signed-off-by: Vinod Koul commit 26536e7c242e2b0f73c25c46fc50d2525ebe400b Author: Waiman Long Date: Sat Apr 13 13:22:44 2019 -0400 locking/rwsem: Prevent unneeded warning during locking selftest Disable the DEBUG_RWSEMS check when locking selftest is running with debug_locks_silent flag set. Signed-off-by: Waiman Long Cc: Davidlohr Bueso Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tim Chen Cc: Will Deacon Cc: huang ying Link: http://lkml.kernel.org/r/20190413172259.2740-2-longman@redhat.com Signed-off-by: Ingo Molnar commit 113fb03ed1d4c1877cc8817e500867616b222380 Author: Bjorn Helgaas Date: Fri Mar 22 13:06:40 2019 -0500 CPER: Remove unnecessary use of user-space types "__u32" and similar types are intended for things exported to user-space, including structs used in ioctls; see include/uapi/asm-generic/int-l64.h. They are not needed for the CPER struct definitions, which not exported to user-space and not used in ioctls. Replace them with the typical "u32" and similar types. No functional change intended. The reason for changing this is to remove the question of "why do we use __u32 here instead of u32?" We should use __u32 when there's a reason for it; otherwise, we should prefer u32 for consistency. Reference: Documentation/process/coding-style.rst Signed-off-by: Bjorn Helgaas CC: Masahiro Yamada CC: Greg Kroah-Hartman CC: Andrew Morton commit 12fa4f47924c9e0638869c2315dda29d50a94446 Author: Bjorn Helgaas Date: Fri Sep 1 18:14:04 2017 -0500 CPER: Add UEFI spec references Add UEFI spec references for CPER UUIDs and structures, fix a few typos, and remove some useless comments. No functional change intended. Link: http://www.uefi.org/specifications Signed-off-by: Bjorn Helgaas commit 74356addc0b32e891327bcb1e36d7f798f7b1c7d Author: Bjorn Helgaas Date: Wed Jan 9 14:14:42 2019 -0600 PCI: Fix comment typos Fix spelling errors and format function comments consistently. Changes whitespace and comments only; no functional change intended. Signed-off-by: Bjorn Helgaas Reviewed-by: Mukesh Ojha commit a0033bd1eae4650b69be07c17cb87393da584563 Author: Dexuan Cui Date: Fri Apr 12 23:34:45 2019 +0000 Drivers: hv: vmbus: Remove the undesired put_cpu_ptr() in hv_synic_cleanup() With CONFIG_DEBUG_PREEMPT=y, the put_cpu_ptr() triggers an underflow warning in preempt_count_sub(). Fixes: 37cdd991fac8 ("vmbus: put related per-cpu variable together") Cc: stable@vger.kernel.org Cc: Stephen Hemminger Signed-off-by: Dexuan Cui Reviewed-by: Michael Kelley Signed-off-by: Sasha Levin (Microsoft) commit bdfc4027de15ef0a396b7fc49a9f9c094378e9f4 Author: YueHaibing Date: Tue Mar 19 23:19:27 2019 +0800 rtlwifi: rtl8723ae: Make rtl8723e_dm_refresh_rate_adaptive_mask static Fix sparse warning: drivers/net/wireless/realtek/rtlwifi/rtl8723ae/dm.c:666:6: warning: symbol 'rtl8723e_dm_refresh_rate_adaptive_mask' was not declared. Should it be static? Signed-off-by: YueHaibing Acked-by: Ping-Ke Shih Signed-off-by: Kalle Valo commit ddab2eee7949f94b8ecdc5c84ae238826142d35d Author: Larry Finger Date: Thu Apr 4 13:29:31 2019 -0500 rtlwifi: Convert the wake_match variable to local In five of the drivers, the contents of bits 29-31 of one of the RX descriptors is used to set bits in a variable that is used to save the wakeup condition for output in a debugging statement. The resulting variable is not used anywhere else even though it is stored in a struct and could be available in other routines. This variable is changed to be local. Signed-off-by: Larry Finger Signed-off-by: Kalle Valo commit 0961d9874a2e504ecaedf563bb3c73628a0a7088 Author: Larry Finger Date: Thu Apr 4 13:29:30 2019 -0500 rtlwifi: Fix duplicate tests of one of the RX descriptors In drivers rtl8188ee, rtl8821ae, rtl8723be, and rtl8192ee, the reason for a wake-up is returned in the fourth RX descriptor in bits 29-31. Due to typographical errors, all but rtl8821ae test bit 31 twice and fail to test bit 29. This error causes no problems as the tests are only used to set bits in the output of an optional debugging statement. Signed-off-by: Larry Finger Signed-off-by: Kalle Valo commit a927e8d8ab57e696800e20cf09a72b7dfe3bbebb Author: Colin Ian King Date: Tue Apr 9 12:43:33 2019 +0100 brcmfmac: fix leak of mypkt on error return path Currently if the call to brcmf_sdiod_set_backplane_window fails then error return path leaks mypkt. Fix this by returning by a new error path labelled 'out' that calls brcmu_pkt_buf_free_skb to free mypkt. Also remove redundant check on err before calling brcmf_sdiod_skbuff_write. Addresses-Coverity: ("Resource Leak") Fixes: a7c3aa1509e2 ("brcmfmac: Remove brcmf_sdiod_addrprep()") Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Signed-off-by: Kalle Valo commit e3062e05e1cfe378bb9b3fa0bef46711372bcf13 Author: Ondrej Jirman Date: Sat Apr 6 01:45:13 2019 +0200 brcmfmac: Loading the correct firmware for brcm43456 SDIO based brcm43456 is currently misdetected as brcm43455 and the wrong firmware name is used. Correct the detection and load the correct firmware file. Chiprev for brcm43456 is "9". Signed-off-by: Ondrej Jirman Signed-off-by: Kalle Valo commit 0cf83903aad03dc7f444a47990def48c4a9d3276 Author: Gustavo A. R. Silva Date: Wed Apr 3 11:46:11 2019 -0500 brcmfmac: Use struct_size() in kzalloc() One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example: struct foo { int stuff; struct boo entry[]; }; size = sizeof(struct foo) + count * sizeof(struct boo); instance = kzalloc(size, GFP_KERNEL) Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper: instance = kzalloc(struct_size(instance, entry, count), GFP_KERNEL) Notice that, in this case, variable reqsz is not necessary, hence it is removed. This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Kalle Valo commit 5f659c792a31c42d0b5b7a883af4b74f1d8ded0b Merge: 95336d4cb588 ef8a913766cd Author: Kalle Valo Date: Sat Apr 13 13:45:03 2019 +0300 Merge tag 'iwlwifi-next-for-kalle-2019-04-03' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next Second batch of patches intended for v5.2 * Work on the new debugging infra continues; * Fixes for the 22000 series; * Support for some new FW API changes; * Work on new hardware continues; * Some debugfs cleanups by Greg-KH; * General bugfixes; * Other cleanups; commit e61ab9f017493ef42f0374a578b2758c30f41f74 Author: Takashi Iwai Date: Wed Apr 10 16:00:54 2019 +0200 ALSA: hda: Initialize ext-bus-specific fields in snd_hdac_bus_init(), too Some fields in snd_hdac_bus are ext-bus specific, but they still should be initialized in snd_hdac_bus_init() for consistency, at least, for the ones that do need the explicit initialization like the list head. Also move the lock field to the more appropriate place and correct the comment to reflect the recent change where it serves for both the display power and the link management. Signed-off-by: Takashi Iwai commit 99fff44fe339b21c6a4ddd6c1239e587dd439cd3 Merge: 6b580f523172 183ab39eb0ea Author: Takashi Iwai Date: Sat Apr 13 10:09:40 2019 +0200 Merge branch 'for-linus' into for-next Back-merge the 5.1 devel branch for the further HD-audio development. Signed-off-by: Takashi Iwai commit 5d75dc2b08102d82f50cca21963eb718bc1ea802 Author: Chris Wilson Date: Fri Apr 12 21:24:57 2019 +0100 drm/i915: Teach intel_workarounds to use uncore mmio access Start weaning ourselves off the implicit I915_WRITE macro madness and start using the explicit intel_uncore mmio access. Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Cc: Daniele Ceraolo Spurio Cc: Paulo Zanoni Reviewed-by: Daniele Ceraolo Spurio Link: https://patchwork.freedesktop.org/patch/msgid/20190412202458.10653-1-chris@chris-wilson.co.uk commit 01d4e3a2fc07b269eedeefa1f7c5c7090c442900 Author: Xiang Chen Date: Thu Apr 11 20:46:44 2019 +0800 scsi: hisi_sas: Some misc tidy-up Do some minor tidy-up. Signed-off-by: Xiang Chen Signed-off-by: John Garry Signed-off-by: Martin K. Petersen commit 246ea3c0ad02386ddfc1ea3031510da8cc86c892 Author: Luo Jiaxing Date: Thu Apr 11 20:46:43 2019 +0800 scsi: hisi_sas: Don't fail IT nexus reset for Open Reject timeout Currently we call hisi_sas_softreset_ata_disk() in hisi_sas_I_T_nexus_reset(). If this fails for open reject reason, there is no reason to fail the IT nexus reset, so only fail for TMF_RESP_FUNC_FAILED. Some other strings spilled over multiple lines are reunited. Signed-off-by: Luo Jiaxing Signed-off-by: John Garry Signed-off-by: Martin K. Petersen commit a31157002778b18b886536a4329286516f21c1c1 Author: Luo Jiaxing Date: Thu Apr 11 20:46:42 2019 +0800 scsi: hisi_sas: Don't hard reset disk during controller reset In the function of hisi_sas_init_device(), we added ops->hardreset() to clear affiliation of STP target port or handle [STP pending] state. Function hisi_sas_init_device() will be called when a device is found or during controller reset. At controller reset, we call hisi_sas_init_device() to re-init the disks, so calling hardreset() is unnecessary and it also will cause some delay at controller reset. Signed-off-by: Luo Jiaxing Signed-off-by: John Garry Signed-off-by: Martin K. Petersen commit 3168d4f800b874b2f574ae9c20cbb1a0bc551028 Author: Xiaofei Tan Date: Thu Apr 11 20:46:41 2019 +0800 scsi: hisi_sas: Support all RAS events with MSI interrupts This patch is to switch HW all error handling from PCI AER to MSI interrupt due to non-standard PCI implementation. All HW errors which were being reported through PCI AER can be reported through MSI interrupt also. Do two things to complete the switch: 1. Notify FW to switch to MSI handling through ACPI DSM. 2. Add MSI handling for some hw errors, ECC errors and poison errors (we also call some of them AXI reuser error). They were handled only through PCI AER before. For old FW reporting PCI AER events, the PCI AER handler will see that the driver on longer support AER, and will leave the device in offlined state, which is safe. Signed-off-by: Xiaofei Tan Signed-off-by: John Garry Signed-off-by: Martin K. Petersen commit adb5b38c19bb8221df4dfb7bccd1b9572c8072c1 Author: Xiang Chen Date: Thu Apr 11 20:46:40 2019 +0800 scsi: hisi_sas: allocate different SAS address for directly attached situation In commit 8b8d66531555 ("scsi: hisi_sas: make SAS address of SATA disks unique"), we ensured that each SATA disk in the system has a unique SAS address, even if it is fake. That was for v2 hw. Add this for v3 hw. Signed-off-by: Xiang Chen Signed-off-by: John Garry Signed-off-by: Martin K. Petersen commit 18a54b329c1a57613b95b42ce55affb9079af822 Author: Xiang Chen Date: Thu Apr 11 20:46:39 2019 +0800 scsi: hisi_sas: Adjust the printk format of functions hisi_sas_init_device() In function hisi_sas_init_device(), the log is as follows when error for hardreset: hisi_sas_v3_hw 0000:74:02.0: SATA disk hardreset fail: 0xffffffed Actually if hardreset failed, its return value is negative, so change the print format from %x to %d. Signed-off-by: Xiang Chen Signed-off-by: John Garry Signed-off-by: Martin K. Petersen commit c63b88ccff0a0efff1d14aa25439ae3e207a5ccf Author: John Garry Date: Thu Apr 11 20:46:38 2019 +0800 scsi: hisi_sas: Fix for setting the PHY linkrate when disconnected In commit efdcad62e7b8 ("scsi: hisi_sas: Set PHY linkrate when disconnected"), we use the sas_phy_data.enable flag to track whether the PHY was enabled or not, so that we know if we should set the PHY negotiated linkrate at SAS_LINK_RATE_UNKNOWN or SAS_PHY_DISABLED. However, it is not proper to use sas_phy_data.enable, since it is only set when libsas attempts to set the PHY disabled/enabled; hence, it may not even have an initial value. As a solution to this problem, introduce hisi_sas_phy.enable to track whether the PHY is enabled or not, so that we can set the negotiated linkrate properly when the PHY comes down. Signed-off-by: John Garry Signed-off-by: Martin K. Petersen commit 447f78c0e183892bcdd5664472cfcb8846b9081e Author: Xiang Chen Date: Thu Apr 11 20:46:37 2019 +0800 scsi: hisi_sas: Remedy inconsistent PHY down state in software Currently there are two scenarioes which may cause PHY state of hardware (which is 0) is inconsistent with the state held in software: - Unplug SAS wire before get_phys_state when SAS controller reset, then the interrupts of phy down are ignored, phy state is 0 before reset, and it also gets 0 after reset, so phy down doesn't occur even if unplugged SAS wire; - For v3 hw later version, it will close bus when 2 bit ECC error occurs. So if unplug SAS wire at that time, interrupts of phy down also not occur. So at last it will cause host reset. It also get phy state 0 before and after reset, the same issue occurs. To solve it, use hisi_sas_phy_down() directly in rescan topology function. Signed-off-by: Xiang Chen Signed-off-by: John Garry Signed-off-by: Martin K. Petersen commit a97fa586800ea1779cfd83f7c06f11e2e6bb44f5 Author: Xiang Chen Date: Thu Apr 11 20:46:36 2019 +0800 scsi: hisi_sas: add host reset interface for test Add host reset interface to make it easier for testing the host reset feature. Signed-off-by: Xiang Chen Signed-off-by: John Garry Signed-off-by: Martin K. Petersen commit 17631462cd49f3dfa9db38a9e578c59f71ccf414 Merge: 4b3766ec0e18 5c2442fd7899 Author: Martin K. Petersen Date: Fri Apr 12 21:27:23 2019 -0400 Merge branch '5.1/scsi-fixes' into 5.2/merge We have a few submissions for 5.2 that depend on fixes merged post 5.1-rc1. Merge the fixes branch into queue. Signed-off-by: Martin K. Petersen commit 1caf7a70a93f81fad622131e34ce68d131a71064 Author: Lukas Bulwahn Date: Thu Apr 11 05:53:52 2019 +0200 fs: drop unused fput_atomic definition commit d7065da03822 ("get rid of the magic around f_count in aio") added fput_atomic to include/linux/fs.h, motivated by its use in __aio_put_req() in fs/aio.c. Later, commit 3ffa3c0e3f6e ("aio: now fput() is OK from interrupt context; get rid of manual delayed __fput()") removed the only use of fput_atomic in __aio_put_req(), but did not remove the since then unused fput_atomic definition in include/linux/fs.h. We curate this now and finally remove the unused definition. This issue was identified during a code review due to a coccinelle warning from the atomic_as_refcounter.cocci rule pointing to the use of atomic_t in fput_atomic. Suggested-by: Krystian Radlak Signed-off-by: Lukas Bulwahn Signed-off-by: Al Viro commit 5fa7d3f9d3184be18b3a5af2530b4d40a5643a1f Merge: c252aa3e8ed3 ca0b709d1a07 Author: David S. Miller Date: Fri Apr 12 17:34:46 2019 -0700 Merge branch 'rhashtable-bit-locking-m68k' NeilBrown says: ==================== Fix rhashtable bit-locking for m68k As reported by Guenter Roeck, the new rhashtable bit-locking doesn't work on m68k as it only requires 2-byte alignment, so BIT(1) is addresses is not unused. We current use BIT(0) to identify a NULLS marker, but that is only needed in ->next pointers. The bucket head does not need a NULLS marker, so the lsb there can be used for locking. the first 4 patches make some small improvements and re-arrange some code. The final patch converts to using only BIT(0) for these two different special purposes. I had previously suggested dropping the series until I fix it. Given that this was fairly easy, I retract that I think it best simply to add these patches to fix the code. ==================== Tested-by: Guenter Roeck Signed-off-by: David S. Miller commit ca0b709d1a07b1fe1fb356d8d58f220287f85672 Author: NeilBrown Date: Fri Apr 12 11:52:08 2019 +1000 rhashtable: use BIT(0) for locking. As reported by Guenter Roeck, the new bit-locking using BIT(1) doesn't work on the m68k architecture. m68k only requires 2-byte alignment for words and longwords, so there is only one unused bit in pointers to structs - We current use two, one for the NULLS marker at the end of the linked list, and one for the bit-lock in the head of the list. The two uses don't need to conflict as we never need the head of the list to be a NULLS marker - the marker is only needed to check if an object has moved to a different table, and the bucket head cannot move. The NULLS marker is only needed in a ->next pointer. As we already have different types for the bucket head pointer (struct rhash_lock_head) and the ->next pointers (struct rhash_head), it is fairly easy to treat the lsb differently in each. So: Initialize buckets heads to NULL, and use the lsb for locking. When loading the pointer from the bucket head, if it is NULL (ignoring the lock big), report as being the expected NULLS marker. When storing a value into a bucket head, if it is a NULLS marker, store NULL instead. And convert all places that used bit 1 for locking, to use bit 0. Fixes: 8f0db018006a ("rhashtable: use bit_spin_locks to protect hash bucket.") Reported-by: Guenter Roeck Tested-by: Guenter Roeck Signed-off-by: NeilBrown Signed-off-by: David S. Miller commit f4712b46a529ca2da078c82d5d99d367c7ebf82b Author: NeilBrown Date: Fri Apr 12 11:52:08 2019 +1000 rhashtable: replace rht_ptr_locked() with rht_assign_locked() The only times rht_ptr_locked() is used, it is to store a new value in a bucket-head. This is the only time it makes sense to use it too. So replace it by a function which does the whole task: Sets the lock bit and assigns to a bucket head. Signed-off-by: NeilBrown Signed-off-by: David S. Miller commit adc6a3ab192eb40fb9d8b093c87d9aa785af4513 Author: NeilBrown Date: Fri Apr 12 11:52:08 2019 +1000 rhashtable: move dereference inside rht_ptr() Rather than dereferencing a pointer to a bucket and then passing the result to rht_ptr(), we now pass in the pointer and do the dereference in rht_ptr(). This requires that we pass in the tbl and hash as well to support RCU checks, and means that the various rht_for_each functions can expect a pointer that can be dereferenced without further care. There are two places where we dereference a bucket pointer where there is no testable protection - in each case we know that we much have exclusive access without having taken a lock. The previous code used rht_dereference() to pretend that holding the mutex provided protects, but holding the mutex never provides protection for accessing buckets. So instead introduce rht_ptr_exclusive() that can be used when there is known to be exclusive access without holding any locks. Signed-off-by: NeilBrown Signed-off-by: David S. Miller commit c5783311a1248c437614d438b69c5f31fe483ecb Author: NeilBrown Date: Fri Apr 12 11:52:08 2019 +1000 rhashtable: reorder some inline functions and macros. This patch only moves some code around, it doesn't change the code at all. A subsequent patch will benefit from this as it needs to add calls to functions which are now defined before the call-site, but weren't before. Signed-off-by: NeilBrown Signed-off-by: David S. Miller commit e4edbe3c1f44c84f319149aeb998e7e36b3b897f Author: NeilBrown Date: Fri Apr 12 11:52:07 2019 +1000 rhashtable: fix some __rcu annotation errors With these annotations, the rhashtable now gets no warnings when compiled with "C=1" for sparse checking. Signed-off-by: NeilBrown Signed-off-by: David S. Miller commit c252aa3e8ed3ac54060b1838f6a47f29799a133d Author: Gustavo A. R. Silva Date: Thu Apr 11 18:43:06 2019 -0500 rhashtable: use struct_size() in kvzalloc() One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example: struct foo { int stuff; struct boo entry[]; }; size = sizeof(struct foo) + count * sizeof(struct boo); instance = kvzalloc(size, GFP_KERNEL); Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper: instance = kvzalloc(struct_size(instance, entry, count), GFP_KERNEL); This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Signed-off-by: David S. Miller commit 9d60f0ea1c555045aa2dcf15877b178adba3d697 Merge: 1deeb6408c1c bcf0cafab44f Author: David S. Miller Date: Fri Apr 12 17:29:15 2019 -0700 Merge branch 'nfp-update-to-control-structures' Jakub Kicinski says: ==================== nfp: update to control structures This series prepares NFP control structures for crypto offloads. So far we mostly dealt with configuration requests under rtnl lock. This will no longer be the case with crypto. Additionally we will try to reuse the BPF control message format, so we move common code out of BPF. ==================== Signed-off-by: David S. Miller commit bcf0cafab44fd56b92fe284d010d59fd5d7f17eb Author: Jakub Kicinski Date: Thu Apr 11 20:27:07 2019 -0700 nfp: split out common control message handling code BPF's control message handler seems like a good base to built on for request-reply control messages. Split it out to allow for reuse. Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Signed-off-by: David S. Miller commit 0a72d8332ce655c678dc15b0f3b92574c5534d96 Author: Jakub Kicinski Date: Thu Apr 11 20:27:06 2019 -0700 nfp: move vNIC reset before netdev init During probe we clear vNIC configuration in case the device wasn't closed cleanly by previous driver. Move that code before netdev init, so netdev init can already try to apply its config parameters. Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Signed-off-by: David S. Miller commit dd5b2498d845f925904cb2afabb6ba11bfc317c5 Author: Jakub Kicinski Date: Thu Apr 11 20:27:05 2019 -0700 nfp: add a mutex lock for the vNIC ctrl BAR Soon we will try to write to the vNIC mailbox without RTNL held. Add a new mutex to protect access to specific parts of the PCI control BAR. Move the mailbox size checking to the mailbox lock() helper, where it can be more effective (happen prior to potential overwrite of other data). Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Signed-off-by: David S. Miller commit e64718282c0030f7e0e17f614826c914fa422bf4 Author: Dirk van der Merwe Date: Thu Apr 11 20:27:04 2019 -0700 nfp: opportunistically poll for reconfig result If the reconfig was a quick update, we could have results available from firmware within 200us. Signed-off-by: Dirk van der Merwe Signed-off-by: Jakub Kicinski Signed-off-by: David S. Miller commit 4b3766ec0e1840f45bc9238e7e749922bdcb7016 Author: Bart Van Assche Date: Tue Apr 2 12:58:15 2019 -0700 scsi: target/iscsi: Make sure PDU processing continues if parsing a command fails Currently the iSCSI target driver sends a CHECK CONDITION code back to the initiator if the immediate data buffer is too large but it does not discard that immediate data buffer. The result is that the iSCSI target driver attempts to parse the immediate data itself as iSCSI PDUs and that all further iSCSI communication fails. Fix this by receiving and discarding too large immediate data buffers. Cc: Mike Christie Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Nicholas Bellinger Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit 2e39f1c9064d54e51e939ce5f3cf34527ef5603f Author: Bart Van Assche Date: Tue Apr 2 12:58:14 2019 -0700 scsi: target/iscsi: Make iscsit_map_iovec() more robust Make the code for mapping an iovec more robust by checking the bounds of the allocated iovec. This patch avoids that the following crash occurs if a map attempt is made that exceeds the bounds of the iovec that is being mapped: BUG: unable to handle kernel NULL pointer dereference at 00000000 00000014 RIP: 0010:iscsit_map_iovec+0x120/0x190 [iscsi_target_mod] Call Trace: iscsit_get_rx_pdu+0x8a2/0xe00 [iscsi_target_mod] iscsi_target_rx_thread+0x6e/0xa0 [iscsi_target_mod] kthread+0x109/0x140 Cc: Mike Christie Cc: Hannes Reinecke Cc: Christoph Hellwig Cc: Nicholas Bellinger Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit 0ca650c13ba2f53cd3592d1a1d054adcd4164ca4 Author: Bart Van Assche Date: Tue Apr 2 12:58:13 2019 -0700 scsi: target/iscsi: Handle too large immediate data buffers correctly Since target_alloc_sgl() and iscsit_allocate_iovecs() allocate buffer space for se_cmd.data_length bytes and since that number can be smaller than the iSCSI Expected Data Transfer Length (EDTL), ensure that the iSCSI target driver does not attempt to receive more bytes than what fits in the receive buffer. Always receive the full immediate data buffer such that the iSCSI target driver does not attempt to parse immediate data as an iSCSI PDU. Note: the current code base only calls iscsit_get_dataout() if the size of the immediate data buffer does not exceed the buffer size derived from the SCSI CDB. See also target_cmd_size_check(). Cc: Mike Christie Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Nicholas Bellinger Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit 96e8e26dd8dd8a60ef1d0dc3ef0d952ffa70a39f Author: Bart Van Assche Date: Tue Apr 2 12:58:12 2019 -0700 scsi: target/iscsi: Only send R2T if needed If an initiator submits more immediate data than the size derived from the SCSI CDB, do not send any R2T to the initiator. This scenario is triggered by the libiscsi test ALL.iSCSIResiduals.WriteVerify16Residuals if the iSCSI target driver is modified to discard too large immediate data buffers instead of trying to parse these as an iSCSI PDU. This patch avoids that a negative xfer_len value is passed to iscsit_add_r2t_to_list() if too large immediate data buffers are handled correctly. Cc: Mike Christie Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Nicholas Bellinger Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit b0055acaedf56a2717a6e2a4b700f1959a1b60df Author: Bart Van Assche Date: Tue Apr 2 12:58:11 2019 -0700 scsi: target/iscsi: Detect conn_cmd_list corruption early Certain behavior of an initiator can cause the target driver to send both a reject and a SCSI response. If that happens two target_put_sess_cmd() calls will occur without the command having been removed from conn_cmd_list. In other words, conn_cmd_list will get corrupted once the freed memory is reused. Although the Linux kernel can detect list corruption if list debugging is enabled, in this case the context in which list corruption is detected is not related to the context that caused list corruption. Hence add WARN_ON() statements that report the context that is causing list corruption. Cc: Mike Christie Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Nicholas Bellinger Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit be71530aa9742afb02714ae7eab4d3c5ad107590 Author: Bart Van Assche Date: Tue Apr 2 12:58:10 2019 -0700 scsi: target/core: Make the XCOPY setup code easier to read by inlining two functions The target_xcopy_setup_pt_port() and target_xcopy_init_pt_lun() functions obfuscate what is really going on. Hence inline these two functions. This patch does not change any functionality. Cc: Mike Christie Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Nicholas Bellinger Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit 0f57cf5ce7661c9803064d8d1b4e7f3814e84649 Author: Bart Van Assche Date: Tue Apr 2 12:58:09 2019 -0700 scsi: target/core: Simplify LUN initialization in XCOPY implementation Other than removing a few pr_debug() statements, this patch does not change any functionality. Cc: Mike Christie Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Nicholas Bellinger Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit 82b76b4476e3a8938ad84f8ad1c2d6fc44af0522 Author: Bart Van Assche Date: Tue Apr 2 12:58:08 2019 -0700 scsi: target/core: Remove a set-but-not-used member variable from the XCOPY implementation This patch does not change any functionality. Cc: Mike Christie Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Nicholas Bellinger Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit fae43461f8f227a83f8edc3b15325188b56aa023 Author: Bart Van Assche Date: Tue Apr 2 12:58:06 2019 -0700 scsi: target/core: Rework the SPC-2 reservation handling code Instead of tracking the initiator that established an SPC-2 reservation, track the session through which the SPC-2 reservation has been established. This patch does not change any functionality. Cc: Mike Christie Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Nicholas Bellinger Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit 63f7479439c95bcd49b7dd4af809862c316c71a3 Author: Bart Van Assche Date: Tue Apr 2 12:58:05 2019 -0700 scsi: target/core: Fix a race condition in the LUN lookup code The rcu_dereference(deve->se_lun) expression occurs twice in the LUN lookup functions. Since these expressions are not serialized against deve->se_lun assignments each of these expressions may yield a different result. Avoid that the wrong LUN pointer is stored in se_cmd by reading deve->se_lun only once. Cc: Mike Christie Cc: Christoph Hellwig Cc: Hannes Reinecke Cc: Nicholas Bellinger Fixes: 29a05deebf6c ("target: Convert se_node_acl->device_list[] to RCU hlist") # v4.10 Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit a6a6d0589ac4ff3e1eb962f6c53e67d8f6386c18 Author: Hannes Reinecke Date: Wed Apr 10 16:16:19 2019 +0200 scsi: scsi_transport_fc: nvme: display FC-NVMe port roles Currently the FC-NVMe driver is leverating the SCSI FC transport class to access the remote ports. Which means that all FC-NVMe remote ports will be visible to the fc transport layer, but due to missing definitions the port roles will always be 'unknown'. This patch adds the missing definitions to the fc transport class to that the port roles are correctly displayed. Signed-off-by: Hannes Reinecke Reviewed-by: James Smart Reviewed-by: Ewan D. Milne Reviewed-by: Giridhar Malavali Reviewed-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit c342dc109aa5a4f0bb36335cb441aaafc98b98ef Author: Jiong Wang Date: Fri Apr 12 22:59:37 2019 +0100 bpf: refactor "check_reg_arg" to eliminate code redundancy There are a few "regs[regno]" here are there across "check_reg_arg", this patch factor it out into a simple "reg" pointer. The intention is to simplify code indentation and make the later patches in this set look cleaner. Reviewed-by: Jakub Kicinski Signed-off-by: Jiong Wang Signed-off-by: Alexei Starovoitov commit 55e7f3b5ac94a8c9f2e35961a45e9aa526a9e41d Author: Jiong Wang Date: Fri Apr 12 22:59:36 2019 +0100 bpf: factor out reg and stack slot propagation into "propagate_liveness_reg" After code refactor in previous patches, the propagation logic inside the for loop in "propagate_liveness" becomes clear that they are good enough to be factored out into a common function "propagate_liveness_reg". Reviewed-by: Jakub Kicinski Signed-off-by: Jiong Wang Signed-off-by: Alexei Starovoitov commit 3f8cafa4131f67d47c8de326c7dcd561cc65fb38 Author: Jiong Wang Date: Fri Apr 12 22:59:35 2019 +0100 bpf: refactor propagate_liveness to eliminate code redundance Access to reg states were not factored out, the consequence is long code for dereferencing them which made the indentation not good for reading. This patch factor out these code so the core code in the loop could be easier to follow. Reviewed-by: Jakub Kicinski Signed-off-by: Jiong Wang Signed-off-by: Alexei Starovoitov commit 1b04aee7e2182454a663950e68084fa5ada9625a Author: Jiong Wang Date: Fri Apr 12 22:59:34 2019 +0100 bpf: refactor propagate_liveness to eliminate duplicated for loop Propagation for register and stack slot are finished in separate for loop, while they are perfect to be put into a single loop. This could also let them share some common variables in later patches. Signed-off-by: Jiong Wang Signed-off-by: Alexei Starovoitov commit 1deeb6408c1ca9ee2ebb0ee8e0a7ba7c6fadf397 Author: David Ahern Date: Fri Apr 12 10:31:14 2019 -0700 ipv6: Remove flowi6_oif compare from __ip6_route_redirect In the review of 0b34eb004347 ("ipv6: Refactor __ip6_route_redirect"), Martin noted that the flowi6_oif compare is moved to the new helper and should be removed from __ip6_route_redirect. Fix the oversight. Fixes: 0b34eb004347 ("ipv6: Refactor __ip6_route_redirect") Reported-by: Martin Lau Signed-off-by: David Ahern Signed-off-by: David S. Miller commit ea63e60f7a3e9fd494b46d1c68d3d26b068c2d63 Author: Colin Ian King Date: Fri Apr 12 09:33:01 2019 +0100 scsi: cxgbi: remove redundant __kfree_skb call on skb and free cst->atid The error return path via label rel_resource checks for a non-null skb before free'ing it. However, skb is always null at this exit path, so the null check and the free are redundant and can be removed. Removing this allows the original goto's to rel_resource to be cleaned up; the first can be replaced by a return of -EINVAL, the second can be replaced by a more appropriate -ENOMEM return and fix a memory leak by freeing csk->atid. Addresses-Coverity: ("Logically Dead Code") Signed-off-by: Colin Ian King Reviewed-by: Dan Carpenter Signed-off-by: Martin K. Petersen commit 8c5a3ca306a0ade34fb6faafb814422563acf483 Merge: 3c91d1148320 4b3a84bce4e2 Author: David S. Miller Date: Fri Apr 12 16:49:54 2019 -0700 Merge branch 'netdevsim-Mostly-cleanup-in-sdev-bpf-iface-area' Jiri Pirko says: ==================== netdevsim: Mostly cleanup in sdev/bpf iface area This patches does mainly internal netdevsim code shuffle. Nothing serious, just small changes to help readability and preparations for future work. ==================== Signed-off-by: David S. Miller commit 4b3a84bce4e21cb6826ba67c5fc68ce63dad83d9 Author: Jiri Pirko Date: Fri Apr 12 14:49:29 2019 +0200 netdevsim: move sdev-specific init/uninit code into separate functions In order to improve readability and prepare for future code changes, move sdev specific init/uninit code into separate functions. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit b26b6946a62f37c1d0f9181288a74e3bee1bf6bb Author: Jiri Pirko Date: Fri Apr 12 14:49:28 2019 +0200 netdevsim: make bpf_offload_dev_create() per-sdev instead of first ns offload dev is stored in sdev struct. However, first netdevsim instance is used as a priv. Change this to be sdev to as it is shared among multiple netdevsim instances. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 38f58c972334833e0e0804a32e8cee8d8d475cb7 Author: Jiri Pirko Date: Fri Apr 12 14:49:27 2019 +0200 netdevsim: move sdev specific bpf debugfs files to sdev dir Some netdevsim bpf debugfs files are per-sdev, yet they are defined per netdevsim instance. Move them under sdev directory. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit af9095f00d348aebb532b3c443f9397029a98d3e Author: Jiri Pirko Date: Fri Apr 12 14:49:26 2019 +0200 netdevsim: move shared dev creation and destruction into separate file To make code easier to read, move shared dev bits into a separate file. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 3c91d114832027b75a6518734081a2507c5d7a87 Author: Ioana Ciornei Date: Fri Apr 12 14:55:18 2019 +0300 Documentation: net: dsa: transition to the rst format This patch also performs some minor adjustments such as numbering for the receive path sequence, conversion of keywords to inline literals and adding an index page so it looks better in the output of 'make htmldocs'. Signed-off-by: Ioana Ciornei Signed-off-by: David S. Miller commit 53b29c336830db48ad3dc737f88b8c065b1f0851 Author: Dongli Zhang Date: Fri Apr 12 19:38:26 2019 +0800 swiotlb: save io_tlb_used to local variable before leaving critical section When swiotlb is full, the kernel would print io_tlb_used. However, the result might be inaccurate at that time because we have left the critical section protected by spinlock. Therefore, we backup the io_tlb_used into local variable before leaving critical section. Fixes: 83ca25948940 ("swiotlb: dump used and total slots when swiotlb buffer is full") Suggested-by: Håkon Bugge Signed-off-by: Dongli Zhang Signed-off-by: Konrad Rzeszutek Wilk commit 056b21fbe6893239915c0536ad1f0aad7a4eb16e Author: Julian Wiedmann Date: Fri Apr 12 13:06:15 2019 +0200 net: veth: use generic helper to report timestamping info For reporting the common set of SW timestamping capabilities, use ethtool_op_get_ts_info() instead of re-implementing it. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit af730342ec3b0096bca913a963b34884b28a810d Author: Julian Wiedmann Date: Fri Apr 12 13:06:14 2019 +0200 net: loopback: use generic helper to report timestamping info For reporting the common set of SW timestamping capabilities, use ethtool_op_get_ts_info() instead of re-implementing it. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit abe9fd5726e0f56b6954788f525973545d3ec94e Author: Julian Wiedmann Date: Fri Apr 12 13:06:13 2019 +0200 net: dummy: use generic helper to report timestamping info For reporting the common set of SW timestamping capabilities, use ethtool_op_get_ts_info() instead of re-implementing it. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 51356ac89b5a15e5207e8740d5f4f8b71cb7332f Author: Andrey Ignatov Date: Fri Apr 12 16:01:01 2019 -0700 bpf: Fix distinct pointer types warning for ARCH=i386 Fix a new warning reported by kbuild for make ARCH=i386: In file included from kernel/bpf/cgroup.c:11:0: kernel/bpf/cgroup.c: In function '__cgroup_bpf_run_filter_sysctl': include/linux/kernel.h:827:29: warning: comparison of distinct pointer types lacks a cast (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1))) ^ include/linux/kernel.h:841:4: note: in expansion of macro '__typecheck' (__typecheck(x, y) && __no_side_effects(x, y)) ^~~~~~~~~~~ include/linux/kernel.h:851:24: note: in expansion of macro '__safe_cmp' __builtin_choose_expr(__safe_cmp(x, y), \ ^~~~~~~~~~ include/linux/kernel.h:860:19: note: in expansion of macro '__careful_cmp' #define min(x, y) __careful_cmp(x, y, <) ^~~~~~~~~~~~~ >> kernel/bpf/cgroup.c:837:17: note: in expansion of macro 'min' ctx.new_len = min(PAGE_SIZE, *pcount); ^~~ Fixes: 4e63acdff864 ("bpf: Introduce bpf_sysctl_{get,set}_new_value helpers") Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit 2bfebea90dd5e8c57ae1021a5d1bb6c1057eee6d Merge: fe9fd2ef383c 41475a3ebace Author: James Morris Date: Fri Apr 12 15:20:23 2019 -0700 Merge branch 'next-integrity-for-james' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar/linux-integrity into next-integrity From Mimi: "This pull request contains just three patches, the remainder are either included in other pull requests (eg. audit, lockdown) or will be upstreamed via other subsystems (eg. kselftests, Power).  Included in this pull request is one bug fix, one documentation update, and extending the x86 IMA arch policy rules to coordinate the different kernel module signature verification methods." commit 39564ae86d51ada75759c859770c8d973b458eec Author: Bob Paauwe Date: Fri Apr 12 11:09:20 2019 -0700 drm/i915/ehl: Inherit Ice Lake conditional code Most of the conditional code for ICELAKE also applies to ELKHARTLAKE so use IS_GEN(dev_priv, 11) even for PM and Workarounds for now. v2: - Rename commit (Jose) - Include a wm workaround (Jose and Lucas) - Include display core init (Jose and Lucas) v3: Add a missing case of gen greater-than 11 (Jose) Cc: José Roberto de Souza Cc: Lucas De Marchi Signed-off-by: Bob Paauwe Signed-off-by: Rodrigo Vivi Reviewed-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190412180920.22347-1-rodrigo.vivi@intel.com commit a43d05086c5e88e62e11be595dd1966ab08f3803 Merge: e0a092ebebf7 7568f4cbbeae Author: Alexei Starovoitov Date: Fri Apr 12 13:55:50 2019 -0700 Merge branch 'bpf-sysctl-hook' Andrey Ignatov says: ==================== v2->v3: - simplify C based selftests by relying on variable offset stack access. v1->v2: - add fs/proc/proc_sysctl.c mainteners to Cc:. The patch set introduces new BPF hook for sysctl. It adds new program type BPF_PROG_TYPE_CGROUP_SYSCTL and attach type BPF_CGROUP_SYSCTL. BPF_CGROUP_SYSCTL hook is placed before calling to sysctl's proc_handler so that accesses (read/write) to sysctl can be controlled for specific cgroup and either allowed or denied, or traced. The hook has access to sysctl name, current sysctl value and (on write only) to new sysctl value via corresponding helpers. New sysctl value can be overridden by program. Both name and values (current/new) are represented as strings same way they're visible in /proc/sys/. It is up to program to parse these strings. To help with parsing the most common kind of sysctl value, vector of integers, two new helpers are provided: bpf_strtol and bpf_strtoul with semantic similar to user space strtol(3) and strtoul(3). The hook also provides bpf_sysctl context with two fields: * @write indicates whether sysctl is being read (= 0) or written (= 1); * @file_pos is sysctl file position to read from or write to, can be overridden. The hook allows to make better isolation for containerized applications that are run as root so that one container can't change a sysctl and affect all other containers on a host, make changes to allowed sysctl in a safer way and simplify sysctl tracing for cgroups. Patch 1 is preliminary refactoring. Patch 2 adds new program and attach types. Patches 3-5 implement helpers to access sysctl name and value. Patch 6 adds file_pos field to bpf_sysctl context. Patch 7 updates UAPI in tools. Patches 8-9 add support for the new hook to libbpf and corresponding test. Patches 10-14 add selftests for the new hook. Patch 15 adds support for new arg types to verifier: pointer to integer. Patch 16 adds bpf_strto{l,ul} helpers to parse integers from sysctl value. Patch 17 updates UAPI in tools. Patch 18 updates bpf_helpers.h. Patch 19 adds selftests for pointer to integer in verifier. Patches 20-21 add selftests for bpf_strto{l,ul}, including integration C based test for sysctl value parsing. ==================== Signed-off-by: Alexei Starovoitov commit 7568f4cbbeae687e4c545516275479f50c15a7cc Author: Andrey Ignatov Date: Sat Mar 23 15:51:00 2019 -0700 selftests/bpf: C based test for sysctl and strtoX Add C based test for a few bpf_sysctl_* helpers and bpf_strtoul. Make sure that sysctl can be identified by name and that multiple integers can be parsed from sysctl value with bpf_strtoul. net/ipv4/tcp_mem is chosen as a testing sysctl, it contains 3 unsigned longs, they all are parsed and compared (val[0] < val[1] < val[2]). Example of output: # ./test_sysctl ... Test case: C prog: deny all writes .. [PASS] Test case: C prog: deny access by name .. [PASS] Test case: C prog: read tcp_mem .. [PASS] Summary: 39 PASSED, 0 FAILED Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit 8549ddc832d6f36be47279d201e95cc8ade6faa9 Author: Andrey Ignatov Date: Mon Mar 18 18:21:18 2019 -0700 selftests/bpf: Test bpf_strtol and bpf_strtoul helpers Test that bpf_strtol and bpf_strtoul helpers can be used to convert provided buffer to long or unsigned long correspondingly and return both correct result and number of consumed bytes, or proper errno. Example of output: # ./test_sysctl .. Test case: bpf_strtoul one number string .. [PASS] Test case: bpf_strtoul multi number string .. [PASS] Test case: bpf_strtoul buf_len = 0, reject .. [PASS] Test case: bpf_strtoul supported base, ok .. [PASS] Test case: bpf_strtoul unsupported base, EINVAL .. [PASS] Test case: bpf_strtoul buf with spaces only, EINVAL .. [PASS] Test case: bpf_strtoul negative number, EINVAL .. [PASS] Test case: bpf_strtol negative number, ok .. [PASS] Test case: bpf_strtol hex number, ok .. [PASS] Test case: bpf_strtol max long .. [PASS] Test case: bpf_strtol overflow, ERANGE .. [PASS] Summary: 36 PASSED, 0 FAILED Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit c2d5f12e4c6cf7e94cfcb98389db51557cf05f9a Author: Andrey Ignatov Date: Mon Mar 18 18:17:03 2019 -0700 selftests/bpf: Test ARG_PTR_TO_LONG arg type Test that verifier handles new argument types properly, including uninitialized or partially initialized value, misaligned stack access, etc. Example of output: #456/p ARG_PTR_TO_LONG uninitialized OK #457/p ARG_PTR_TO_LONG half-uninitialized OK #458/p ARG_PTR_TO_LONG misaligned OK #459/p ARG_PTR_TO_LONG size < sizeof(long) OK #460/p ARG_PTR_TO_LONG initialized OK Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit 99f57973ac5b8e38ee5b5e5f518cd5bf95e3b1e3 Author: Andrey Ignatov Date: Sat Mar 23 15:47:05 2019 -0700 selftests/bpf: Add sysctl and strtoX helpers to bpf_helpers.h Add bpf_sysctl_* and bpf_strtoX helpers to bpf_helpers.h. Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit b457e5534c9988bc6bcf30a22fa7cd765b14ecbd Author: Andrey Ignatov Date: Mon Mar 18 18:07:01 2019 -0700 bpf: Sync bpf.h to tools/ Sync bpf_strtoX related bpf UAPI changes to tools/. Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit d7a4cb9b6705a89937d12c8158a35a3145dc967a Author: Andrey Ignatov Date: Mon Mar 18 17:55:26 2019 -0700 bpf: Introduce bpf_strtol and bpf_strtoul helpers Add bpf_strtol and bpf_strtoul to convert a string to long and unsigned long correspondingly. It's similar to user space strtol(3) and strtoul(3) with a few changes to the API: * instead of NUL-terminated C string the helpers expect buffer and buffer length; * resulting long or unsigned long is returned in a separate result-argument; * return value is used to indicate success or failure, on success number of consumed bytes is returned that can be used to identify position to read next if the buffer is expected to contain multiple integers; * instead of *base* argument, *flags* is used that provides base in 5 LSB, other bits are reserved for future use; * number of supported bases is limited. Documentation for the new helpers is provided in bpf.h UAPI. The helpers are made available to BPF_PROG_TYPE_CGROUP_SYSCTL programs to be able to convert string input to e.g. "ulongvec" output. E.g. "net/ipv4/tcp_mem" consists of three ulong integers. They can be parsed by calling to bpf_strtoul three times. Implementation notes: Implementation includes "../../lib/kstrtox.h" to reuse integer parsing functions. It's done exactly same way as fs/proc/base.c already does. Unfortunately existing kstrtoX function can't be used directly since they fail if any invalid character is present right after integer in the string. Existing simple_strtoX functions can't be used either since they're obsolete and don't handle overflow properly. Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit 57c3bb725a3dd97d960d7e1cd0845d88de53217f Author: Andrey Ignatov Date: Mon Mar 18 16:57:10 2019 -0700 bpf: Introduce ARG_PTR_TO_{INT,LONG} arg types Currently the way to pass result from BPF helper to BPF program is to provide memory area defined by pointer and size: func(void *, size_t). It works great for generic use-case, but for simple types, such as int, it's overkill and consumes two arguments when it could use just one. Introduce new argument types ARG_PTR_TO_INT and ARG_PTR_TO_LONG to be able to pass result from helper to program via pointer to int and long correspondingly: func(int *) or func(long *). New argument types are similar to ARG_PTR_TO_MEM with the following differences: * they don't require corresponding ARG_CONST_SIZE argument, predefined access sizes are used instead (32bit for int, 64bit for long); * it's possible to use more than one such an argument in a helper; * provided pointers have to be aligned. It's easy to introduce similar ARG_PTR_TO_CHAR and ARG_PTR_TO_SHORT argument types. It's not done due to lack of use-case though. Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit 9a1027e52535db1a0adf7831afdfce745dc0a061 Author: Andrey Ignatov Date: Fri Mar 8 15:25:02 2019 -0800 selftests/bpf: Test file_pos field in bpf_sysctl ctx Test access to file_pos field of bpf_sysctl context, both read (incl. narrow read) and write. # ./test_sysctl ... Test case: ctx:file_pos sysctl:read read ok .. [PASS] Test case: ctx:file_pos sysctl:read read ok narrow .. [PASS] Test case: ctx:file_pos sysctl:read write ok .. [PASS] ... Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit 786047dd08de3334722af036e2827ce3b34205cc Author: Andrey Ignatov Date: Fri Mar 8 15:22:03 2019 -0800 selftests/bpf: Test bpf_sysctl_{get,set}_new_value helpers Test that new value provided by user space on sysctl write can be read by bpf_sysctl_get_new_value and overridden by bpf_sysctl_set_new_value. # ./test_sysctl ... Test case: sysctl_get_new_value sysctl:read EINVAL .. [PASS] Test case: sysctl_get_new_value sysctl:write ok .. [PASS] Test case: sysctl_get_new_value sysctl:write ok long .. [PASS] Test case: sysctl_get_new_value sysctl:write E2BIG .. [PASS] Test case: sysctl_set_new_value sysctl:read EINVAL .. [PASS] Test case: sysctl_set_new_value sysctl:write ok .. [PASS] Summary: 22 PASSED, 0 FAILED Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit 11ff34f74e32f5a4ec1f71621508789cd60775b3 Author: Andrey Ignatov Date: Fri Mar 8 15:17:51 2019 -0800 selftests/bpf: Test sysctl_get_current_value helper Test sysctl_get_current_value on sysctl read and write, buffers with enough space and too small buffers to get E2BIG and truncated result, etc. # ./test_sysctl ... Test case: sysctl_get_current_value sysctl:read ok, gt .. [PASS] Test case: sysctl_get_current_value sysctl:read ok, eq .. [PASS] Test case: sysctl_get_current_value sysctl:read E2BIG truncated .. [PASS] Test case: sysctl_get_current_value sysctl:read EINVAL .. [PASS] Test case: sysctl_get_current_value sysctl:write ok .. [PASS] Summary: 16 PASSED, 0 FAILED Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit 6041c67f28d8b297ef53ab47abdcd319626c765e Author: Andrey Ignatov Date: Fri Mar 8 15:13:43 2019 -0800 selftests/bpf: Test bpf_sysctl_get_name helper Test w/ and w/o BPF_F_SYSCTL_BASE_NAME, buffers with enough space and too small buffers to get E2BIG and truncated result, etc. # ./test_sysctl ... Test case: sysctl_get_name sysctl_value:base ok .. [PASS] Test case: sysctl_get_name sysctl_value:base E2BIG truncated .. [PASS] Test case: sysctl_get_name sysctl:full ok .. [PASS] Test case: sysctl_get_name sysctl:full E2BIG truncated .. [PASS] Test case: sysctl_get_name sysctl:full E2BIG truncated small .. [PASS] Summary: 11 PASSED, 0 FAILED Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit 1f5fa9ab6e2eb16ba81284280a498fe9c543a2d8 Author: Andrey Ignatov Date: Fri Mar 8 15:08:21 2019 -0800 selftests/bpf: Test BPF_CGROUP_SYSCTL Add unit test for BPF_PROG_TYPE_CGROUP_SYSCTL program type. Test that program can allow/deny access. Test both valid and invalid accesses to ctx->write. Example of output: # ./test_sysctl Test case: sysctl wrong attach_type .. [PASS] Test case: sysctl:read allow all .. [PASS] Test case: sysctl:read deny all .. [PASS] Test case: ctx:write sysctl:read read ok .. [PASS] Test case: ctx:write sysctl:write read ok .. [PASS] Test case: ctx:write sysctl:read write reject .. [PASS] Summary: 6 PASSED, 0 FAILED Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit 7007af63da3bf6764c9208029a3585756260b55f Author: Andrey Ignatov Date: Fri Mar 8 09:17:45 2019 -0800 selftests/bpf: Test sysctl section name Add unit test to verify that program and attach types are properly identified for "cgroup/sysctl" section name. Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit 063cc9f06ee6cac12dbc68a504bc4ff56bde790d Author: Andrey Ignatov Date: Fri Mar 8 09:15:26 2019 -0800 libbpf: Support sysctl hook Support BPF_PROG_TYPE_CGROUP_SYSCTL program in libbpf: identifying program and attach types by section name, probe. Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit 196398d4c0ac3de6f016f7774c952a069e116e71 Author: Andrey Ignatov Date: Thu Mar 7 19:09:29 2019 -0800 bpf: Sync bpf.h to tools/ Sync BPF_PROG_TYPE_CGROUP_SYSCTL related bpf UAPI changes to tools/. Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit e1550bfe0de47e30484ba91de1e50a91ec1c31f5 Author: Andrey Ignatov Date: Thu Mar 7 18:50:52 2019 -0800 bpf: Add file_pos field to bpf_sysctl ctx Add file_pos field to bpf_sysctl context to read and write sysctl file position at which sysctl is being accessed (read or written). The field can be used to e.g. override whole sysctl value on write to sysctl even when sys_write is called by user space with file_pos > 0. Or BPF program may reject such accesses. Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit 4e63acdff864654cee0ac5aaeda3913798ee78f6 Author: Andrey Ignatov Date: Thu Mar 7 18:38:43 2019 -0800 bpf: Introduce bpf_sysctl_{get,set}_new_value helpers Add helpers to work with new value being written to sysctl by user space. bpf_sysctl_get_new_value() copies value being written to sysctl into provided buffer. bpf_sysctl_set_new_value() overrides new value being written by user space with a one from provided buffer. Buffer should contain string representation of the value, similar to what can be seen in /proc/sys/. Both helpers can be used only on sysctl write. File position matters and can be managed by an interface that will be introduced separately. E.g. if user space calls sys_write to a file in /proc/sys/ at file position = X, where X > 0, then the value set by bpf_sysctl_set_new_value() will be written starting from X. If program wants to override whole value with specified buffer, file position has to be set to zero. Documentation for the new helpers is provided in bpf.h UAPI. Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit 1d11b3016cec4ed9770b98e82a61708c8f4926e7 Author: Andrey Ignatov Date: Thu Feb 28 19:22:15 2019 -0800 bpf: Introduce bpf_sysctl_get_current_value helper Add bpf_sysctl_get_current_value() helper to copy current sysctl value into provided by BPF_PROG_TYPE_CGROUP_SYSCTL program buffer. It provides same string as user space can see by reading corresponding file in /proc/sys/, including new line, etc. Documentation for the new helper is provided in bpf.h UAPI. Since current value is kept in ctl_table->data in a parsed form, ctl_table->proc_handler() with write=0 is called to read that data and convert it to a string. Such a string can later be parsed by a program using helpers that will be introduced separately. Unfortunately it's not trivial to provide API to access parsed data due to variety of data representations (string, intvec, uintvec, ulongvec, custom structures, even NULL, etc). Instead it's assumed that user know how to handle specific sysctl they're interested in and appropriate helpers can be used. Since ctl_table->proc_handler() expects __user buffer, conversion to __user happens for kernel allocated one where the value is stored. Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit 808649fb787d918a48a360a668ee4ee9023f0c11 Author: Andrey Ignatov Date: Wed Feb 27 13:28:48 2019 -0800 bpf: Introduce bpf_sysctl_get_name helper Add bpf_sysctl_get_name() helper to copy sysctl name (/proc/sys/ entry) into provided by BPF_PROG_TYPE_CGROUP_SYSCTL program buffer. By default full name (w/o /proc/sys/) is copied, e.g. "net/ipv4/tcp_mem". If BPF_F_SYSCTL_BASE_NAME flag is set, only base name will be copied, e.g. "tcp_mem". Documentation for the new helper is provided in bpf.h UAPI. Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit 7b146cebe30cb481b0f70d85779da938da818637 Author: Andrey Ignatov Date: Wed Feb 27 12:59:24 2019 -0800 bpf: Sysctl hook Containerized applications may run as root and it may create problems for whole host. Specifically such applications may change a sysctl and affect applications in other containers. Furthermore in existing infrastructure it may not be possible to just completely disable writing to sysctl, instead such a process should be gradual with ability to log what sysctl are being changed by a container, investigate, limit the set of writable sysctl to currently used ones (so that new ones can not be changed) and eventually reduce this set to zero. The patch introduces new program type BPF_PROG_TYPE_CGROUP_SYSCTL and attach type BPF_CGROUP_SYSCTL to solve these problems on cgroup basis. New program type has access to following minimal context: struct bpf_sysctl { __u32 write; }; Where @write indicates whether sysctl is being read (= 0) or written (= 1). Helpers to access sysctl name and value will be introduced separately. BPF_CGROUP_SYSCTL attach point is added to sysctl code right before passing control to ctl_table->proc_handler so that BPF program can either allow or deny access to sysctl. Suggested-by: Roman Gushchin Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit b1cd609d9b517f01867c211bd520cc805db3068a Author: Andrey Ignatov Date: Tue Mar 12 09:27:09 2019 -0700 bpf: Add base proto function for cgroup-bpf programs Currently kernel/bpf/cgroup.c contains only one program type and one proto function cgroup_dev_func_proto(). It'd be useful to have base proto function that can be reused for new cgroup-bpf program types coming soon. Introduce cgroup_base_func_proto(). Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit 1f55660ff805224b4a532cfd5650753f0ed8dbeb Author: Finley Xiao Date: Wed Apr 3 17:42:26 2019 +0800 clk: rockchip: add a COMPOSITE_DIV_OFFSET clock-type The div offset of some clocks are different from their mux offset and the COMPOSITE clock-type require that div and mux offset are the same, so add a new COMPOSITE_DIV_OFFSET clock-type to handle that. Signed-off-by: Finley Xiao Signed-off-by: Elaine Zhang Signed-off-by: Heiko Stuebner commit 57a20248ef3e429dc822f0774bc4e00136c46c83 Author: Douglas Anderson Date: Thu Apr 11 16:21:53 2019 -0700 clk: rockchip: Turn on "aclk_dmac1" for suspend on rk3288 Experimentally it can be seen that going into deep sleep (specifically setting PMU_CLR_DMA and PMU_CLR_BUS in RK3288_PMU_PWRMODE_CON1) appears to fail unless "aclk_dmac1" is on. The failure is that the system never signals that it made it into suspend on the GLOBAL_PWROFF pin and it just hangs. NOTE that it's confirmed that it's the actual suspend that fails, not one of the earlier calls to read/write registers. Specifically if you comment out the "PMU_GLOBAL_INT_DISABLE" setting in rk3288_slp_mode_set() and then comment out the "cpu_do_idle()" call in rockchip_lpmode_enter() then you can exercise the whole suspend path without any crashing. This is currently not a problem with suspend upstream because there is no current way to exercise the deep suspend code. However, anyone trying to make it work will run into this issue. This was not a problem on shipping rk3288-based Chromebooks because those devices all ran on an old kernel based on 3.14. On that kernel "aclk_dmac1" appears to be left on all the time. There are several ways to skin this problem. A) We could add "aclk_dmac1" to the list of critical clocks and that apperas to work, but presumably that wastes power. B) We could keep a list of "struct clk" objects to enable at suspend time in clk-rk3288.c and use the standard clock APIs. C) We could make the rk3288-pmu driver keep a list of clocks to enable at suspend time. Presumably this would require a dts and bindings change. D) We could just whack the clock on in the existing syscore suspend function where we whack a bunch of other clocks. This is particularly easy because we know for sure that the clock's only parent ("aclk_cpu") is a critical clock so we don't need to do anything more than ungate it. In this case I have chosen D) because it seemed like the least work, but any of the other options would presumably also work fine. Signed-off-by: Douglas Anderson Reviewed-by: Elaine Zhang Signed-off-by: Heiko Stuebner commit 356150e86d75653d1f679c6ef583144b26d0a686 Author: Douglas Anderson Date: Thu Apr 11 16:21:57 2019 -0700 ARM: dts: rockchip: vdd_gpu off in suspend for rk3288-veyron At some point long long ago the downstream GPU driver would crash if we turned the GPU off during suspend. For some context you can see: https://chromium-review.googlesource.com/#/c/215780/5..6/arch/arm/boot/dts/rk3288-pinky-rev2.dts At some point in time not too long after that got fixed. It's unclear why the GPU is left enabled during suspend on the mainline kernel. Everything seems fine if I turn this off, so let's do it. Signed-off-by: Douglas Anderson Reviewed-by: Elaine Zhang Signed-off-by: Heiko Stuebner commit ed27ae71bf610004d04cb956d0a7687342006a1f Author: Douglas Anderson Date: Thu Apr 11 16:21:56 2019 -0700 ARM: dts: rockchip: vcc33_ccd off in suspend for rk3288-veyron-chromebook As per my comments when the device tree for rk3288-veyron-chromebook first landed: > Technically I think vcc33_ccd can be off since we have > 'needs-reset-on-resume' down in the EHCI port (this regulator is for > the USB webcam that's connected to the EHCI port). > > ...but leaving it on for now seems fine until we get suspend/resume > more solid. It's probably about time to do it right. [1] https://lore.kernel.org/linux-arm-kernel/CAD=FV=U37Yx8Mqk75_x05zxonvdc3qRMhqp8TyTDPWGHqSuRqg@mail.gmail.com/ Signed-off-by: Douglas Anderson Reviewed-by: Elaine Zhang Signed-off-by: Heiko Stuebner commit 89e28da82836530f1ac7a3a32fecc31f22d79b3e Author: Nathan Chancellor Date: Thu Mar 7 15:56:51 2019 -0700 soc: mediatek: pwrap: Zero initialize rdata in pwrap_init_cipher When building with -Wsometimes-uninitialized, Clang warns: drivers/soc/mediatek/mtk-pmic-wrap.c:1358:6: error: variable 'rdata' is used uninitialized whenever '||' condition is true [-Werror,-Wsometimes-uninitialized] If pwrap_write returns non-zero, pwrap_read will not be called to initialize rdata, meaning that we will use some random uninitialized stack value in our print statement. Zero initialize rdata in case this happens. Link: https://github.com/ClangBuiltLinux/linux/issues/401 Signed-off-by: Nathan Chancellor Reviewed-by: Nick Desaulniers Reviewed-by: Arnd Bergmann Signed-off-by: Matthias Brugger commit cdf3e3deb747d5e193dee617ed37c83060eb576f Author: Martin Wilck Date: Wed Mar 27 14:51:05 2019 +0100 block: check_events: don't bother with events if unsupported Drivers now report to the block layer if they support media change events. If this is not the case, there's no need to allocate the event structure, and all event handling code can effectively be skipped. This simplifies code flow in particular for non-removable sd devices. This effectively reverts commit 75e3f3ee3c64 ("block: always allocate genhd->ev if check_events is implemented"). The sysfs files for the events are kept in place even if no events are supported, as user space may rely on them being present. The only difference is that an error code is now returned if the user tries to set poll_msecs. Reviewed-by: Hannes Reinecke Reviewed-by: Christoph Hellwig Signed-off-by: Martin Wilck Signed-off-by: Jens Axboe commit 773008f6fe0544aa28140ced0504cefba17381aa Author: Martin Wilck Date: Wed Mar 27 14:51:04 2019 +0100 Revert "block: unexport DISK_EVENT_MEDIA_CHANGE for legacy/fringe drivers" This reverts commit 9fd097b14918875bd6f125ed699d7bbbba5893ee. Instead of leaving disk->events completely empty, we now export the supported events again, and tell the block layer not to forward events to user space by not setting DISK_EVENT_FLAG_UEVENT. This allows the block layer to distinguish between devices that for which events should be handled in kernel only, and devices which don't support any meda change events at all. Cc: Jiri Kosina Cc: Tim Waugh Cc: Michal Simek Reviewed-by: Hannes Reinecke Reviewed-by: Christoph Hellwig Signed-off-by: Martin Wilck Signed-off-by: Jens Axboe commit 3c12c8e94ca04d668ad0cded7857fea2637834b3 Author: Martin Wilck Date: Wed Mar 27 14:51:03 2019 +0100 Revert "ide: unexport DISK_EVENT_MEDIA_CHANGE for ide-gd and ide-cd" This reverts commit 7eec77a1816a7042591a6cbdb4820e9e7ebffe0e. Instead of leaving disk->events completely empty, we now export the supported events again, and tell the block layer not to forward events to user space by not setting DISK_EVENT_FLAG_UEVENT. This allows the block layer to distinguish between devices that for which events should be handled in kernel only, and devices which don't support any meda change events at all. Cc: Borislav Petkov Reviewed-by: Hannes Reinecke Reviewed-by: Christoph Hellwig Signed-off-by: Martin Wilck Signed-off-by: Jens Axboe commit c92e2f04b35938da23eb9a7f7101cbdd5ac7cdc4 Author: Martin Wilck Date: Wed Mar 27 14:51:02 2019 +0100 block: disk_events: introduce event flags Currently, an empty disk->events field tells the block layer not to forward media change events to user space. This was done in commit 7c88a168da80 ("block: don't propagate unlisted DISK_EVENTs to userland") in order to avoid events from "fringe" drivers to be forwarded to user space. By doing so, the block layer lost the information which events were supported by a particular block device, and most importantly, whether or not a given device supports media change events at all. Prepare for not interpreting the "events" field this way in the future any more. This is done by adding an additional field "event_flags" to struct gendisk, and two flag bits that can be set to have the device treated like one that had the "events" field set to a non-zero value before. This applies only to the sd and sr drivers, which are changed to set the new flags. The new flags are DISK_EVENT_FLAG_POLL to enforce polling of the device for synchronous events, and DISK_EVENT_FLAG_UEVENT to tell the blocklayer to generate udev events from kernel events. In order to add the event_flags field to struct gendisk, the events field is converted to an "unsigned short"; it doesn't need to hold values bigger than 2 anyway. This patch doesn't change behavior. Reviewed-by: Christoph Hellwig Signed-off-by: Martin Wilck Signed-off-by: Jens Axboe commit 673387a930059fc4ad8060847a1d46f94e702281 Author: Martin Wilck Date: Wed Mar 27 14:51:01 2019 +0100 block: genhd: remove async_events field The async_events field, intended to be used for drivers that support asynchronous notifications about disk events (aka media change events), isn't currently used by any driver, and apparently that has been that way for a long time (if not forever). Remove it. Reviewed-by: Hannes Reinecke Reviewed-by: Christoph Hellwig Signed-off-by: Martin Wilck Signed-off-by: Jens Axboe commit 4dff47c7607a7ceb9916fec179dc88e7b90f3b7c Author: Rob Herring Date: Thu Apr 11 16:53:13 2019 -0500 drm/panfrost: Add support for 2MB page entries Add support for 2MB sized pages. This will improve our map and unmap times and save a bit of memory by avoiding 3rd level page tables for contiguous allocations. As we use shmem for buffers and huge page allocations for shmem are off by default, there isn't an improvement out of the box and userspace must enable THP for shmem. It's not clear if the h/w can support 1GB page sizes which standard ARM long format descriptors support. In any case, it is unlikely we'll see any contiguous 1GB allocations on current h/w. Cc: Tomeu Vizoso Cc: David Airlie Cc: Daniel Vetter Signed-off-by: Rob Herring Acked-by: Alyssa Rosenzweig Reviewed-by: Steven Price Acked-by: Tomeu Vizoso Link: https://patchwork.freedesktop.org/patch/msgid/20190411215313.1937-1-robh@kernel.org commit 5ce5f61b70f97bd664f7a20aeffd9574d17ab350 Author: Mika Kuoppala Date: Fri Apr 12 19:53:53 2019 +0300 drm/i915: Handle catastrophic error on engine reset If cat error is set, we need to clear it by acking it. Further, if it is set, we must not do a normal request for reset. v2: avoid goto (Chris) v3: comment, error format, direct assign (Chris) Bspec: 12567 Cc: Chris Wilson Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190412165353.16432-1-mika.kuoppala@linux.intel.com commit a5eff7259790d5314eff10563d6e59d358cce482 Author: Sebastian Andrzej Siewior Date: Wed Apr 3 18:41:56 2019 +0200 x86/pkeys: Add PKRU value to init_fpstate The task's initial PKRU value is set partly for fpu__clear()/ copy_init_pkru_to_fpregs(). It is not part of init_fpstate.xsave and instead it is set explicitly. If the user removes the PKRU state from XSAVE in the signal handler then __fpu__restore_sig() will restore the missing bits from `init_fpstate' and initialize the PKRU value to 0. Add the `init_pkru_value' to `init_fpstate' so it is set to the init value in such a case. In theory copy_init_pkru_to_fpregs() could be removed because restoring the PKRU at return-to-userland should be enough. Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andi Kleen Cc: Andy Lutomirski Cc: "Chang S. Bae" Cc: Dominik Brodowski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: "Jason A. Donenfeld" Cc: Konrad Rzeszutek Wilk Cc: kvm ML Cc: Paolo Bonzini Cc: Pavel Tatashin Cc: Peter Zijlstra Cc: Radim Krčmář Cc: Rik van Riel Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-28-bigeasy@linutronix.de commit 019d26004ebad73a5aedaedab958ea8a381c2ffc Author: Mika Kuoppala Date: Fri Apr 12 19:53:35 2019 +0300 drm/i915: Shortcut readiness to reset check If the engine says it is ready for reset, it is ready so avoid further dancing and proceed. v2: reg (Chris) v3: request, ack, mask from following patch (Chris) Cc: Chris Wilson Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190412165335.16347-1-mika.kuoppala@linux.intel.com commit 06b251dff78704c7d122bd109384d970a7dbe94d Author: Sebastian Andrzej Siewior Date: Fri Apr 12 20:16:15 2019 +0200 x86/fpu: Restore regs in copy_fpstate_to_sigframe() in order to use the fastpath If a task is scheduled out and receives a signal then it won't be able to take the fastpath because the registers aren't available. The slowpath is more expensive compared to XRSTOR + XSAVE which usually succeeds. Here are some clock_gettime() numbers from a bigger box with AVX512 during bootup: - __fpregs_load_activate() takes 140ns - 350ns. If it was the most recent FPU context on the CPU then the optimisation in __fpregs_load_activate() will skip the load (which was disabled during the test). - copy_fpregs_to_sigframe() takes 200ns - 450ns if it succeeds. On a pagefault it is 1.8us - 3us usually in the 2.6us area. - The slowpath takes 1.5us - 6us. Usually in the 2.6us area. My testcases (including lat_sig) take the fastpath without __fpregs_load_activate(). I expect this to be the majority. Since the slowpath is in the >1us area it makes sense to load the registers and attempt to save them directly. The direct save may fail but should only happen on the first invocation or after fork() while the page is read-only. [ bp: Massage a bit. ] Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: "Jason A. Donenfeld" Cc: kvm ML Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Rik van Riel Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-27-bigeasy@linutronix.de commit 16b22f85bca246ace984209e9f22af2161450cbd Author: Paul Burton Date: Fri Apr 12 11:04:02 2019 -0700 Revert "MIPS: ralink: fix cpu clock of mt7621 and add dt clk devices" Commit e6046b5e69a0 ("MIPS: ralink: fix cpu clock of mt7621 and add dt clk devices") includes a file that doesn't exist, causing build failures... Revert it. References: https://lore.kernel.org/linux-mips/CAJsYDVJvviz8a2oVmb0XL3OB+=Eecu-3kC9T9vsmxpuC_BqDSA@mail.gmail.com/ Signed-off-by: Paul Burton commit da2f32fb8dc7cbd9433cb2e990693734b30a2465 Author: Sebastian Andrzej Siewior Date: Wed Apr 3 18:41:54 2019 +0200 x86/fpu: Add a fastpath to copy_fpstate_to_sigframe() Try to save the FPU registers directly to the userland stack frame if the CPU holds the FPU registers for the current task. This has to be done with the pagefault disabled because we can't fault (while the FPU registers are locked) and therefore the operation might fail. If it fails try the slowpath which can handle faults. [ bp: Massage a bit. ] Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: "Jason A. Donenfeld" Cc: kvm ML Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Rik van Riel Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-26-bigeasy@linutronix.de commit 1d731e731c4cd7cbd3b1aa295f0932e7610da82f Author: Sebastian Andrzej Siewior Date: Wed Apr 3 18:41:53 2019 +0200 x86/fpu: Add a fastpath to __fpu__restore_sig() The previous commits refactor the restoration of the FPU registers so that they can be loaded from in-kernel memory. This overhead can be avoided if the load can be performed without a pagefault. Attempt to restore FPU registers by invoking copy_user_to_fpregs_zeroing(). If it fails try the slowpath which can handle pagefaults. [ bp: Add a comment over the fastpath to be able to find one's way around the function. ] Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: "Jason A. Donenfeld" Cc: kvm ML Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Rik van Riel Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-25-bigeasy@linutronix.de commit f3ba91228e8e917e5bd6c4b72bfe846933d17370 Author: Rob Herring Date: Mon Sep 10 14:27:58 2018 -0500 drm/panfrost: Add initial panfrost driver This adds the initial driver for panfrost which supports Arm Mali Midgard and Bifrost family of GPUs. Currently, only the T860 and T760 Midgard GPUs have been tested. v2: - Add GPU reset on job hangs (Tomeu) - Add RuntimePM and devfreq support (Tomeu) - Fix T760 support (Tomeu) - Add a TODO file (Rob, Tomeu) - Support multiple in fences (Tomeu) - Drop support for shared fences (Tomeu) - Fill in MMU de-init (Rob) - Move register definitions back to single header (Rob) - Clean-up hardcoded job submit todos (Rob) - Implement feature setup based on features/issues (Rob) - Add remaining Midgard DT compatible strings (Rob) v3: - Add support for reset lines (Neil) - Add a MAINTAINERS entry (Rob) - Call dma_set_mask_and_coherent (Rob) - Do MMU invalidate on map and unmap. Restructure to do a single operation per map/unmap call. (Rob) - Add a missing explicit padding to struct drm_panfrost_create_bo (Rob) - Fix 0-day error: "panfrost_devfreq.c:151:9-16: ERROR: PTR_ERR applied after initialization to constant on line 150" - Drop HW_FEATURE_AARCH64_MMU conditional (Rob) - s/DRM_PANFROST_PARAM_GPU_ID/DRM_PANFROST_PARAM_GPU_PROD_ID/ (Rob) - Check drm_gem_shmem_prime_import_sg_table() error code (Rob) - Re-order power on sequence (Rob) - Move panfrost_acquire_object_fences() before scheduling job (Rob) - Add NULL checks on array pointers in job clean-up (Rob) - Rework devfreq (Tomeu) - Fix devfreq init with no regulator (Rob) - Various WS and comments clean-up (Rob) Cc: Maarten Lankhorst Cc: Maxime Ripard Cc: Sean Paul Cc: David Airlie Cc: Daniel Vetter Cc: Lyude Paul Reviewed-by: Alyssa Rosenzweig Reviewed-by: Eric Anholt Reviewed-by: Steven Price Signed-off-by: Marty E. Plummer Signed-off-by: Tomeu Vizoso Signed-off-by: Neil Armstrong Signed-off-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/20190409205427.6943-4-robh@kernel.org commit c117aa4d8701a713e6dee82657291ae26f0c3c7c Author: Rob Herring Date: Fri Mar 8 14:26:02 2019 -0600 drm: Add a drm_gem_objects_lookup helper Similar to the single handle drm_gem_object_lookup(), drm_gem_objects_lookup() takes an array of handles and returns an array of GEM objects. v2: - Take the userspace pointer directly and allocate the array. - Expand the function documentation. Cc: Maarten Lankhorst Cc: Maxime Ripard Cc: Sean Paul Cc: David Airlie Cc: Daniel Vetter Acked-by: Alyssa Rosenzweig Acked-by: Tomeu Vizoso Signed-off-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/20190409205427.6943-3-robh@kernel.org commit d08d42de6432d5064045159aed060e3db9fa7807 Author: Rob Herring Date: Thu Feb 21 14:23:25 2019 -0600 iommu: io-pgtable: Add ARM Mali midgard MMU page table format ARM Mali midgard GPU is similar to standard 64-bit stage 1 page tables, but have a few differences. Add a new format type to represent the format. The input address size is 48-bits and the output address size is 40-bits (and possibly less?). Note that the later bifrost GPUs follow the standard 64-bit stage 1 format. The differences in the format compared to 64-bit stage 1 format are: The 3rd level page entry bits are 0x1 instead of 0x3 for page entries. The access flags are not read-only and unprivileged, but read and write. This is similar to stage 2 entries, but the memory attributes field matches stage 1 being an index. The nG bit is not set by the vendor driver. This one didn't seem to matter, but we'll keep it aligned to the vendor driver. Cc: Will Deacon Acked-by: Robin Murphy Cc: linux-arm-kernel@lists.infradead.org Cc: iommu@lists.linux-foundation.org Acked-by: Alyssa Rosenzweig Acked-by: Joerg Roedel Signed-off-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/20190409205427.6943-2-robh@kernel.org commit 8bf043635a1adf443fdc56849f8ef0bc23c65949 Author: Zhiyong Tao Date: Mon Apr 1 11:35:33 2019 +0800 arm64: dts: mt8183: add pinctrl file This patch adds pinctrl file for mt8183. Signed-off-by: Zhiyong Tao Signed-off-by: Erin Lo Reviewed-by: Rob Herring Acked-by: Linus Walleij Signed-off-by: Matthias Brugger commit e0a092ebebf714c7b6723cae764fc865e2f8c2a7 Merge: 6dc400af216a 7a62725a50e0 Author: David S. Miller Date: Fri Apr 12 10:50:56 2019 -0700 Merge branch 'smc-next' Ursula Braun says: ==================== net/smc: patches 2019-04-12 here are patches for SMC: * patch 1 improves behavior of non-blocking connect * patches 2, 3, 5, 7, and 8 improve connecting return codes * patches 4 and 6 are a cleanups without functional change ==================== Signed-off-by: David S. Miller commit 7a62725a50e0282ed90185074c769ce2ecb16e59 Author: Karsten Graul Date: Fri Apr 12 12:57:30 2019 +0200 net/smc: improve smc_conn_create reason codes Rework smc_conn_create() to always return a valid DECLINE reason code. This removes the need to translate the return codes on 4 different places and allows to easily add more detailed return codes by changing smc_conn_create() only. Signed-off-by: Karsten Graul Signed-off-by: Ursula Braun Signed-off-by: David S. Miller commit 9aa68d298c80d11a987691258ff92fd67e224af3 Author: Karsten Graul Date: Fri Apr 12 12:57:29 2019 +0200 net/smc: improve smc_listen_work reason codes Rework smc_listen_work() to provide improved reason codes when an SMC connection is declined. This allows better debugging on user side. This also adds 3 more detailed reason codes in smc_clc.h to indicate what type of device was not found (ism or rdma or both), or if ism cannot talk to the peer. Signed-off-by: Karsten Graul Signed-off-by: Ursula Braun Signed-off-by: David S. Miller commit 228bae05be328045e6dfb4d3bf2600e6547c1d13 Author: Karsten Graul Date: Fri Apr 12 12:57:28 2019 +0200 net/smc: code cleanup smc_listen_work In smc_listen_work() the variables rc and reason_code are defined which have the same meaning. Eliminate reason_code in favor of the shorter name rc. No functional changes. Rename the functions smc_check_ism() and smc_check_rdma() into smc_find_ism_device() and smc_find_rdma_device() to make there purpose more clear. No functional changes. Signed-off-by: Karsten Graul Signed-off-by: Ursula Braun Signed-off-by: David S. Miller commit fba7e8ef513ce7309d62eb4999b640100b6db06f Author: Karsten Graul Date: Fri Apr 12 12:57:27 2019 +0200 net/smc: cleanup of get vlan id The vlan_id of the underlying CLC socket was retrieved two times during processing of the listen handshaking. Change this to get the vlan id one time in connect and in listen processing, and reuse the id. And add a new CLC DECLINE return code for the case when the retrieval of the vlan id failed. Signed-off-by: Karsten Graul Signed-off-by: Ursula Braun Signed-off-by: David S. Miller commit bc36d2fc93eb2eaef3ab7fbe40d9fc1c5e8bf969 Author: Karsten Graul Date: Fri Apr 12 12:57:26 2019 +0200 net/smc: consolidate function parameters During initialization of an SMC socket a lot of function parameters need to get passed down the function call path. Consolidate the parameters in a helper struct so there are less enough parameters to get all passed by register. Signed-off-by: Karsten Graul Signed-off-by: Ursula Braun Signed-off-by: David S. Miller commit 598866974c94eecb842291253780274f96b3d919 Author: Karsten Graul Date: Fri Apr 12 12:57:25 2019 +0200 net/smc: check for ip prefix and subnet The check for a matching ip prefix and subnet was only done for SMC-R in smc_listen_rdma_check() but not when an SMC-D connection was possible. Rename the function into smc_listen_prfx_check() and move its call to a place where it is called for both SMC variants. And add a new CLC DECLINE reason for the case when the IP prefix or subnet check fails so the reason for the failing SMC connection can be found out more easily. Signed-off-by: Karsten Graul Signed-off-by: Ursula Braun Signed-off-by: David S. Miller commit 4ada81fddfbbda360bb692aa469d472ebb06b37d Author: Karsten Graul Date: Fri Apr 12 12:57:24 2019 +0200 net/smc: fallback to TCP after connect problems Correct the CLC decline reason codes for internal problems to not have the sign bit set, negative reason codes are interpreted as not eligible for TCP fallback. Signed-off-by: Karsten Graul Signed-off-by: Ursula Braun Signed-off-by: David S. Miller commit 50717a37db032ce783f50685a73bb2ac68471a5a Author: Ursula Braun Date: Fri Apr 12 12:57:23 2019 +0200 net/smc: nonblocking connect rework For nonblocking sockets move the kernel_connect() from the connect worker into the initial smc_connect part to return kernel_connect() errors other than -EINPROGRESS to user space. Reviewed-by: Karsten Graul Signed-off-by: Ursula Braun Signed-off-by: David S. Miller commit 45a0686b91205ad4a83cfe8548e95a04f69565e0 Author: Fabien Parent Date: Sat Mar 23 22:15:53 2019 +0100 soc: mediatek: pwrap: add support for MT8516 pwrap Add the code to support the pwrap IP on the MediaTek MT8516 SoC. Signed-off-by: Fabien Parent Signed-off-by: Matthias Brugger commit a51f4c031de35bc30d56bede232ffd2ae9c5fd6d Author: Fabien Parent Date: Sat Mar 23 22:15:52 2019 +0100 soc: mediatek: pwrap: add missing check on rstc The variable rstc is set only when the SoC PWRAP have the PWRAP_CAP_RESET capability. Check whether rstc is set before using it to avoid errors. Signed-off-by: Fabien Parent Signed-off-by: Matthias Brugger commit 4bad8b0709f59cc210207201b2cba86e4fc28bf5 Author: Fabien Parent Date: Sat Mar 23 22:15:51 2019 +0100 dt-bindings: pwrap: mediatek: add pwrap support for MT8516 Add binding documentation of pwrap for MT8516 SoCs. Signed-off-by: Fabien Parent Acked-by: Rob Herring Signed-off-by: Matthias Brugger commit 5f409e20b794565e2d60ad333e79334630a6c798 Author: Rik van Riel Date: Wed Apr 3 18:41:52 2019 +0200 x86/fpu: Defer FPU state load until return to userspace Defer loading of FPU state until return to userspace. This gives the kernel the potential to skip loading FPU state for tasks that stay in kernel mode, or for tasks that end up with repeated invocations of kernel_fpu_begin() & kernel_fpu_end(). The fpregs_lock/unlock() section ensures that the registers remain unchanged. Otherwise a context switch or a bottom half could save the registers to its FPU context and the processor's FPU registers would became random if modified at the same time. KVM swaps the host/guest registers on entry/exit path. This flow has been kept as is. First it ensures that the registers are loaded and then saves the current (host) state before it loads the guest's registers. The swap is done at the very end with disabled interrupts so it should not change anymore before theg guest is entered. The read/save version seems to be cheaper compared to memcpy() in a micro benchmark. Each thread gets TIF_NEED_FPU_LOAD set as part of fork() / fpu__copy(). For kernel threads, this flag gets never cleared which avoids saving / restoring the FPU state for kernel threads and during in-kernel usage of the FPU registers. [ bp: Correct and update commit message and fix checkpatch warnings. s/register/registers/ where it is used in plural. minor comment corrections. remove unused trace_x86_fpu_activate_state() TP. ] Signed-off-by: Rik van Riel Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: Aubrey Li Cc: Babu Moger Cc: "Chang S. Bae" Cc: Dmitry Safonov Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: "Jason A. Donenfeld" Cc: Joerg Roedel Cc: Konrad Rzeszutek Wilk Cc: kvm ML Cc: Nicolai Stange Cc: Paolo Bonzini Cc: "Radim Krčmář" Cc: Tim Chen Cc: Waiman Long Cc: x86-ml Cc: Yi Wang Link: https://lkml.kernel.org/r/20190403164156.19645-24-bigeasy@linutronix.de commit d9350f21e5fe2614e1f78ef20c3a3e83c4a36391 Author: Aditya Pakki Date: Fri Mar 22 16:55:03 2019 -0500 firmware: arm_scmi: replace of_match_device->data with of_device_get_match_data() of_match_device can return NULL if no matching device is found though it's highly unlikely to happen in scmi_probe as it's called only if a valid match is found. However we can use of_device_get_match_data() instead of of_match_device()->data to handle NULL pointer checks and return -EINVAL in such a scenario. Reviewed-by: Steven Price Signed-off-by: Aditya Pakki Signed-off-by: Sudeep Holla commit fa7fe29a645b4da08efe8ff2392898b88f9ded9f Author: Steven Price Date: Mon Mar 25 17:37:22 2019 +0000 firmware: arm_scmi: fix of_node leak in scmi_mailbox_check of_parse_phandle_with_args() requires the caller to call of_node_put() on the returned args->np pointer. Otherwise the reference count will remain incremented. However, in this case, since we don't actually use the returned pointer, we can simply pass in NULL. Fixes: aa4f886f3893f ("firmware: arm_scmi: add basic driver infrastructure for SCMI") Signed-off-by: Steven Price Signed-off-by: Sudeep Holla commit 6dc400af216a79c10cb082f25a7337bcbf532045 Author: Dongli Zhang Date: Fri Apr 12 14:53:24 2019 +0800 xen-netback: add reference from xenvif to backend_info to facilitate coredump analysis During coredump analysis, it is not easy to obtain the address of backend_info in xen-netback. So far there are two ways to obtain backend_info: 1. Do what xenbus_device_find() does for vmcore to find the xenbus_device and then derive it from dev_get_drvdata(). 2. Extract backend_info from callstack of xenwatch (e.g., netback_remove() or frontend_changed()). This patch adds a reference from xenvif to backend_info so that it would be much more easier to obtain backend_info during coredump analysis. Signed-off-by: Dongli Zhang Acked-by: Wei Liu Signed-off-by: David S. Miller commit df8c9581e258e9e9d50d0653094cc64fcbc7d8fc Author: Erin Lo Date: Fri Feb 15 14:02:33 2019 +0800 dt-bindings: mtk-sysirq: Add compatible for Mediatek MT8183 This adds dt-binding documentation of SYSIRQ for Mediatek MT8183 SoC Platform. Signed-off-by: Erin Lo Acked-by: Rob Herring Reviewed-by: Matthias Brugger Signed-off-by: Matthias Brugger commit fbbad0287cec5e211bbd73c3e866ebd22a59b0d4 Author: Yunfei Dong Date: Thu Feb 14 10:24:52 2019 +0800 arm64: dts: Using standard CCF interface to set vcodec clk Using standard CCF interface to set vdec/venc parent clk and clk rate. Signed-off-by: Yunfei Dong Signed-off-by: Qianqian Yan Signed-off-by: Matthias Brugger commit bcbb63b80284af0061ac44fe944d31a8482d2b8a Author: Roger Quadros Date: Mon Apr 8 12:42:49 2019 +0300 ARM: dts: dra7: Separate AM57 dtsi files AM5 and DRA7 SoC families have different set of modules in them so the SoC sepecific dtsi files need to be separated. e.g. Some of the major differences between AM576 and DRA76 DRA76x AM576x USB3 x USB4 x ATL x VCP x MLB x ISS x PRU-ICSS1 x PRU-ICSS2 x This patch only deals with disabling USB3, USB4 and ATL for AM57 variants. Signed-off-by: Roger Quadros Reviewed-by: Lokesh Vutla Signed-off-by: Tony Lindgren commit 09f837546edfe7f79774a39f99ed8401bb9285f2 Author: Roger Quadros Date: Fri Apr 5 16:28:05 2019 +0300 dt-binding: arm: omap: Add information for AM5748 Add DT binding details for AM5748 SoC and AM5748 IDK. Signed-off-by: Roger Quadros Signed-off-by: Tony Lindgren commit 93abb05fd5d6f3042320ae3c485b034d7c5e8e54 Author: shaoyunl Date: Fri Apr 5 11:55:27 2019 -0400 drm/amdgpu: Set proper function to set xgmi pstate Driver need to call SMU to set xgmi pstate Signed-off-by: shaoyunl Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit e911671cd027e21f576a3b90bc76cc5c18ccaa4b Author: shaoyunl Date: Thu Apr 11 11:01:07 2019 -0400 drm/powerplay: Add smu set xgmi pstate interface XGMI pstate is controlled by SMU, driver need this interface to communicate with SMU Signed-off-by: shaoyunl Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit 3d2aca8c8620346abdba96c6300d2c0b90a1d0cc Author: Christian König Date: Fri Mar 29 19:30:23 2019 +0100 drm/amdgpu: fix old fence check in amdgpu_fence_emit We don't hold a reference to the old fence, so it can go away any time we are waiting for it to signal. Signed-off-by: Christian König Reviewed-by: Chunming Zhou Signed-off-by: Alex Deucher commit 1afeb3144344e303547a211ff29d1e18ba9a9994 Author: Chunming Zhou Date: Mon Apr 1 17:51:03 2019 +0800 drm/amdgpu: update version for timeline syncobj support in amdgpu v2 v2: update version for amd-staging-drm-next merge Signed-off-by: Chunming Zhou Reviewed-by: Lionel Landwerlin Signed-off-by: Christian König Signed-off-by: Alex Deucher commit 2624dd154bcc53ac2de16ecae9746ba867b6ca70 Author: Chunming Zhou Date: Mon Apr 1 17:51:00 2019 +0800 drm/amdgpu: add timeline support in amdgpu CS v3 syncobj wait/signal operation is appending in command submission. v2: separate to two kinds in/out_deps functions v3: fix checking for timeline syncobj Signed-off-by: Chunming Zhou Cc: Tobias Hector Cc: Jason Ekstrand Cc: Dave Airlie Cc: Chris Wilson Cc: Lionel Landwerlin Reviewed-by: Lionel Landwerlin Signed-off-by: Alex Deucher commit a823c35ff2eda73046cc1847326071de350fceda Author: Masami Hiramatsu Date: Fri Apr 12 23:22:01 2019 +0900 arm64: ptrace: Add function argument access API Add regs_get_argument() which returns N th argument of the function call. On arm64, it supports up to 8th argument. Note that this chooses most probably assignment, in some case it can be incorrect (e.g. passing data structure or floating point etc.) This enables ftrace kprobe events to access kernel function arguments via $argN syntax. Signed-off-by: Masami Hiramatsu [will: tidied up the comment a bit] Signed-off-by: Will Deacon commit 33ef1394a97db67118f1e1c2edd3acb6f6782adb Author: Christina Quast Date: Tue Apr 9 18:03:46 2019 +0200 ARM: dts: am335x: icev2: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit 1f757e0616cf55afee24a75b055f0472405d79a8 Author: Christina Quast Date: Tue Apr 9 18:03:45 2019 +0200 ARM: dts: am335x: evmsk: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit ef2791fd13c3f3517ab56cb747db8854c6954ec6 Author: Christina Quast Date: Tue Apr 9 18:03:44 2019 +0200 ARM: dts: am335x: evm: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit 6c4f9ebf86dbc7f73ecb21d005d6a28d844bb7e8 Author: Christina Quast Date: Tue Apr 9 18:03:43 2019 +0200 ARM: dts: am335x: cm-t335: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit 125a6f3c58e3986fbcc49a68db8184b8accdb14e Author: Christina Quast Date: Tue Apr 9 18:03:42 2019 +0200 ARM: dts: am335x: chilisom: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit 4e5835effc3d5dcfd695413c59a59ec3335ac5ad Author: Christina Quast Date: Tue Apr 9 18:03:41 2019 +0200 ARM: dts: am335x: chiliboard: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit e52a7204cdd3e49a6e609a6dc56593a091ad56eb Author: Christina Quast Date: Tue Apr 9 18:03:40 2019 +0200 ARM: dts: am335x: bonegreen-common: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit 9faf08c2e677a391f23c09e22e00fdbce22ae5f9 Author: Christina Quast Date: Tue Apr 9 18:03:39 2019 +0200 ARM: dts: am335x: boneblue: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit ada077fa906e26bfc8665901ccd351e7dfd188b4 Author: Christina Quast Date: Tue Apr 9 18:03:38 2019 +0200 ARM: dts: am335x: bonegreen-wireless: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit 0b119fafc882e23f47968ec5ec2e13ae745b5d6e Author: Christina Quast Date: Tue Apr 9 18:03:37 2019 +0200 ARM: dts: am335x: base0033: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit 11ce1e08971e1fcb8409a8766be79cb259811a0d Author: Christina Quast Date: Tue Apr 9 18:03:36 2019 +0200 ARM: dts: am335x: baltos: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit 8ce8c4b31a826f3c519adfb8079059b2b5300d90 Author: Christina Quast Date: Tue Apr 9 18:03:35 2019 +0200 ARM: dts: am335x: baltos-leds: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit f6385bd149ecd5c40b01874e5599b697d7d9daa4 Author: Christina Quast Date: Tue Apr 9 18:03:34 2019 +0200 ARM: dts: am335x: baltos-ir5221: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit a48d48e6535b3f1247b30bd55d79ed776ebf08e6 Author: Christina Quast Date: Tue Apr 9 18:03:33 2019 +0200 ARM: dts: am335x: baltos-ir3220: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit 7229d544c83ac7bc020db47d0a15b918f157f756 Author: Christina Quast Date: Tue Apr 9 18:03:32 2019 +0200 ARM: dts: am335x: baltos-ir2110: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit c4307836cb6b64bd1265c6bdd363d47ab6621fc0 Author: Sowjanya Komatineni Date: Thu Apr 11 12:37:54 2019 -0700 arm64: tegra: Enable command queue for Tegra186 SDMMC4 The workaround for a hardware bug preventing this from working has been merged now, so command queue support can be enabled again for Tegra186. Tested-by: Jon Hunter Signed-off-by: Sowjanya Komatineni Signed-off-by: Thierry Reding commit e9b001960cf56cfcd94a0bc9ae66a13ea00144c1 Author: Sowjanya Komatineni Date: Thu Apr 11 12:37:53 2019 -0700 arm64: tegra: Fix default tap and trim values Default tap and trim values are incorrect for Tegra186 SDMMC4. This patch fixes them. Tested-by: Jon Hunter Signed-off-by: Sowjanya Komatineni Signed-off-by: Thierry Reding commit 7320733094cfae04acb8a0abbc4aa1d86877794d Author: Jon Hunter Date: Tue Feb 26 16:07:55 2019 +0000 arm64: tegra: Add supply for temperature sensor on P2888 The VCC supply property is not populated for the temperature sensor on the P2888 board and so the following warning is observed on boot ... lm90 0-004c: 0-004c supply vcc not found, using dummy regulator On the P2888 board, the VCC supply for the temperature sensor is connected to the 'vdd_1v8ls' rail. Add the 'vcc-supply' property for the temperature sensor to prevent this warning message from occurring. Fixes: 8b457812f54b ('arm64: tegra: Add temperature sensor on P2888') Signed-off-by: Jon Hunter Signed-off-by: Thierry Reding commit 10ece0c14e11e63ed0e85eac2ac4caf8d727ad57 Author: Sameer Pujar Date: Tue Mar 12 19:55:04 2019 +0530 arm64: tegra: Enable aconnect, ADMA and AGIC on Jetson TX1 These are currently mostly unused because we lack a proper audio driver on Tegra210. However, enabling them makes sure that at least their probe code paths are tested at runtime. Signed-off-by: Sameer Pujar Acked-by: Jon Hunter Signed-off-by: Thierry Reding commit 6c00cac1de5e99c5a7cb91bdfcef63987bd7da9f Author: Joseph Lo Date: Fri Feb 1 11:43:47 2019 +0800 arm64: tegra: Add L2 cache topology to Tegra210 Add L2 cache and make it the next level of cache for each of the CPUs. Signed-off-by: Joseph Lo Signed-off-by: Thierry Reding commit 3056c1ca29393c4aea79d53940c4b06774f9a5ce Author: Joseph Lo Date: Thu Feb 21 15:21:50 2019 +0800 arm64: tegra: Enable CPU idle support for Shield Enable CPU idle support for Shield platform. Signed-off-by: Joseph Lo Signed-off-by: Thierry Reding commit 15e666968f8723d7984fe0e2799a23ced7ddaddd Author: Joseph Lo Date: Thu Feb 21 15:21:49 2019 +0800 arm64: tegra: Enable CPU idle support for Smaug Enable CPU idle support for Smaug platform. Signed-off-by: Joseph Lo Acked-by: Jon Hunter Signed-off-by: Thierry Reding commit d2c19dd714fc6570a0a76a47fb2b1fd8b6d13659 Author: Joseph Lo Date: Thu Feb 21 15:21:48 2019 +0800 arm64: tegra: Enable CPU idle support for Jetson TX1 Enable CPU idle support for Jetson TX1 platform. Signed-off-by: Joseph Lo Acked-by: Jon Hunter Signed-off-by: Thierry Reding commit da77c6d92bf7c8815b143cc271c7f0b8af6aa15b Author: Joseph Lo Date: Thu Feb 21 15:21:47 2019 +0800 arm64: tegra: Add CPU idle states properties for Tegra210 Add idle states properties for generic ARM CPU idle driver. This includes a cpu-sleep state which is the power down state of CPU cores. Signed-off-by: Joseph Lo Acked-by: Jon Hunter Acked-by: Daniel Lezcano Signed-off-by: Thierry Reding commit d9931a1869fbd9d59bee30ef49d2356b468cdf47 Author: Joseph Lo Date: Thu Feb 21 15:21:46 2019 +0800 arm64: tegra: Fix timer node for Tegra210 Fix timer node to make it work with Tegra210 timer driver. Signed-off-by: Joseph Lo Acked-by: Jon Hunter Signed-off-by: Thierry Reding commit 52d52d1c98a90cfe860b83498e4b6074aad95c15 Author: Christoph Hellwig Date: Thu Apr 11 08:23:31 2019 +0200 block: only allow contiguous page structs in a bio_vec We currently have to call nth_page when iterating over pages inside a bio_vec. Jens complained a while ago that this is fairly expensive. To mitigate this we can check that that the actual page structures are contiguous when adding them to the bio, and just do check pointer arithmetics later on. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit 7321ecbfc7cf85211460a1dc6bb0ccfc3dcf9df0 Author: Christoph Hellwig Date: Thu Apr 11 08:23:30 2019 +0200 block: change how we get page references in bio_iov_iter_get_pages Instead of needing a special macro to iterate over all pages in a bvec just do a second passs over the whole bio. This also matches what we do on the release side. The release side helper is moved up to where we need the get helper to clearly express the symmetry. Reviewed-by: Ming Lei Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit 14eacf12dbc75352fa746dfd9e24de3170ba5ff5 Author: Christoph Hellwig Date: Thu Apr 11 08:23:29 2019 +0200 block: don't allow multiple bio_iov_iter_get_pages calls per bio No caller uses bio_iov_iter_get_pages multiple times on a given bio, and that funtionality isn't all that useful. Removing it will make some future changes a little easier and also simplifies the function a bit. Reviewed-by: Ming Lei Reviewed-by: Bart Van Assche Signed-off-by: Christoph Hellwig Reviewed-by: Johannes Thumshirn Signed-off-by: Jens Axboe commit a10584c3cda9cbb1a1ccd072783bfd625f99e40d Author: Christoph Hellwig Date: Thu Apr 11 08:23:28 2019 +0200 block: refactor __bio_iov_bvec_add_pages Return early on error, and add an unlikely annotation for that case. Reviewed-by: Ming Lei Signed-off-by: Christoph Hellwig Reviewed-by: Bart Van Assche Reviewed-by: Johannes Thumshirn Signed-off-by: Jens Axboe commit 8a96a0e408102fb7aa73d8aa0b5e2219cfd51e55 Author: Christoph Hellwig Date: Thu Apr 11 08:23:27 2019 +0200 block: rewrite blk_bvec_map_sg to avoid a nth_page call The offset in scatterlists is allowed to be larger than the page size, so don't go to great length to avoid that case and simplify the arithmetics. Signed-off-by: Christoph Hellwig Reviewed-by: Bart Van Assche Reviewed-by: Ming Lei Reviewed-by: Johannes Thumshirn Signed-off-by: Jens Axboe commit 507b820009a457afa78202da337bcb56791fbb12 Author: Kangjie Lu Date: Fri Mar 15 00:07:10 2019 -0500 PCI: endpoint: Fix a potential NULL pointer dereference In case alloc_workqueue() fails, return -ENOMEM to avoid potential NULL pointer dereferences. Signed-off-by: Kangjie Lu [lorenzo.pieralisi@arm.com: commit log and code update] Signed-off-by: Lorenzo Pieralisi commit 1db86318c4d1a0d1c8a19535290f71a03a2f13ad Author: Colin Ian King Date: Fri Apr 12 11:40:17 2019 +0100 RDMA/mlx5: Check for error return in flow_rule rather than err Currently when the call to create_flow_rule_vport_sq fails, the error check is being performed on err rather than on the return pointer flow_rule. The return flow_rule maybe NULL (which is not considered an error) or an error code, so check for the error on flow_rule. Addresses-Coverity: ("Uninitialized scalar variable") Fixes: d5ed8ac34cef ("RDMA/mlx5: Move default representors SQ steering to rule to modify QP") Signed-off-by: Colin Ian King Acked-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 512de1ce7bb71972e223ec179fced1945221522d Author: Bartosz Golaszewski Date: Fri Apr 12 14:36:40 2019 +0200 usb: ohci-da8xx: drop the vbus GPIO All users now setup a fixed regulator for the vbus supply. We can drop the vbus GPIO code. Signed-off-by: Bartosz Golaszewski Acked-by: Alan Stern Signed-off-by: Sekhar Nori commit 274e4c336192b3cc4a361f131e6d9f53b58e3d83 Author: Bartosz Golaszewski Date: Fri Apr 12 14:36:39 2019 +0200 ARM: davinci: da830-evm: add a fixed regulator for ohci-da8xx Instead of directly using the vbus GPIO we should model it as a fixed regulator. Add all necessary fix-ups for the regulator to be registered and configure the vbus GPIO as its enable pin. Signed-off-by: Bartosz Golaszewski Signed-off-by: Sekhar Nori commit 1d272894ec4f06a0b7880f71de8f521ef68926bc Author: Bartosz Golaszewski Date: Fri Apr 12 14:36:38 2019 +0200 ARM: davinci: omapl138-hawk: add a fixed regulator for ohci-da8xx Instead of directly using the vbus GPIO we should model it as a fixed regulator. Add all necessary fix-ups for the regulator to be registered and configure the vbus GPIO as its enable pin. Signed-off-by: Bartosz Golaszewski Signed-off-by: Sekhar Nori commit d327330185f192411be80563a3c8398f4538cdb2 Author: Bartosz Golaszewski Date: Fri Apr 12 14:36:37 2019 +0200 usb: ohci-da8xx: disable the regulator if the overcurrent irq fired Historically the power supply management in this driver has been handled in two separate places in parallel. Device-tree users simply defined an appropriate regulator, while two boards with no DT support (da830-evm and omapl138-hawk) passed functions defined in their respective board files over platform data. These functions simply used legacy GPIO calls to watch the oc GPIO for interrupts and disable the vbus GPIO when the irq fires. Commit d193abf1c913 ("usb: ohci-da8xx: add vbus and overcurrent gpios") updated these GPIO calls to the modern API and moved them inside the driver. This however is not the optimal solution for the vbus GPIO which should be modeled as a fixed regulator that can be controlled with a GPIO. In order to keep the overcurrent protection available once we move the board files to using fixed regulators we need to disable the enable_reg regulator when the overcurrent indicator interrupt fires. Since we cannot call regulator_disable() from interrupt context, we need to switch to using a oneshot threaded interrupt. Acked-by: Alan Stern Signed-off-by: Bartosz Golaszewski Signed-off-by: Sekhar Nori commit 8e2f5eae24351d6f536c602eccdc4ad12b675c28 Author: Bartosz Golaszewski Date: Fri Apr 12 14:36:36 2019 +0200 usb: ohci-da8xx: let the regulator framework keep track of use count There's no reason to have a separate variable to keep track of the regulator state. The regulator core already does that. Remove reg_enabled from struct da8xx_ohci_hcd. Signed-off-by: Bartosz Golaszewski Acked-by: Alan Stern Signed-off-by: Sekhar Nori commit 3ea9ae57b412391b14d059ba424c9c51bfbc5059 Author: Bartosz Golaszewski Date: Fri Apr 12 14:36:35 2019 +0200 ARM: davinci: add missing sentinels to GPIO lookup tables Some GPIO lookup tables defined in davinci board files are missing array sentinels. If an entry for given device cannot be found, this will cause a kernel panic. Signed-off-by: Bartosz Golaszewski Signed-off-by: Sekhar Nori commit 31f996efbd5a7825f4d30150469e9d110aea00e8 Author: Jisheng Zhang Date: Fri Apr 12 06:43:06 2019 +0000 PCI/AER: Change pci_aer_init() stub to return void Commit 60ed982a4e78 ("PCI/AER: Move internal declarations to drivers/pci/pci.h") changed pci_aer_init() to return "void", but didn't change the stub for when CONFIG_PCIEAER isn't enabled. Change the stub to match. Fixes: 60ed982a4e78 ("PCI/AER: Move internal declarations to drivers/pci/pci.h") Signed-off-by: Jisheng Zhang Signed-off-by: Bjorn Helgaas CC: stable@vger.kernel.org # v4.19+ commit 1c00d7bc96c2a4f5a8c8353705dec93bb036ad78 Author: Devesh Sharma Date: Wed Apr 10 05:10:07 2019 -0400 RDMA/ocrdma: Remove use of idr use pci bdf instead Removing the use of IDR variable just to name the function ids. Using the PCI_FUNC(pdev->devfn) instead to create the device name, associated resources and to print driver into at various places. Reported-by: Matthew Wilcox Signed-off-by: Devesh Sharma Signed-off-by: Jason Gunthorpe commit c2ff9e9a3d9d6c019394a22989a228d02970a8b1 Author: Sebastian Andrzej Siewior Date: Wed Apr 3 18:41:51 2019 +0200 x86/fpu: Merge the two code paths in __fpu__restore_sig() The ia32_fxstate case (32bit with fxsr) and the other (64bit frames or 32bit frames without fxsr) restore both from kernel memory and sanitize the content. The !ia32_fxstate version restores missing xstates from "init state" while the ia32_fxstate doesn't and skips it. Merge the two code paths and keep the !ia32_fxstate one. Copy only the user_i387_ia32_struct data structure in the ia32_fxstate. Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: "Jason A. Donenfeld" Cc: kvm ML Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Rik van Riel Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-23-bigeasy@linutronix.de commit e5604e2fb6d440d91f8f729fa5424cc93c802c76 Author: Ville Syrjälä Date: Thu Apr 11 17:33:49 2019 +0300 drm/i915: Suppress spurious combo PHY B warning On ICL the DMC doesn't reinit combo PHY B so we should not warn about its state being bogus during the display core uninit. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190411143349.17934-1-ville.syrjala@linux.intel.com Reviewed-by: Imre Deak commit 7a412b8f60cd57ab7dcb72ab701fde2bf81752eb Author: Ville Syrjälä Date: Thu Apr 11 19:49:25 2019 +0300 drm/i915: Restore correct bxt_ddi_phy_calc_lane_lat_optim_mask() calculation We are no longer calling bxt_ddi_phy_calc_lane_lat_optim_mask() when intel{hdmi,dp}_compute_config() succeeds, and instead only call it when those fail. This is fallout from the bool->int .compute_config() conversion which failed to invert the return value check before calling bxt_ddi_phy_calc_lane_lat_optim_mask(). Let's just replace it with an early bailout so that it's harder to miss. This restores the correct latency optim setting calculation (which could fix some real failures), and avoids the MISSING_CASE() from bxt_ddi_phy_calc_lane_lat_optim_mask() after intel{hdmi,dp}_compute_config() has failed. Cc: Lyude Paul Fixes: 204474a6b859 ("drm/i915: Pass down rc in intel_encoder->compute_config()") Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109373 Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190411164925.28491-1-ville.syrjala@linux.intel.com Reviewed-by: Lyude Paul commit 0edda1d6813b7ac30593b93edea2daeb2c47ef91 Author: Chris Wilson Date: Fri Apr 12 12:01:59 2019 +0100 drm/i915: Flush the CSB pointer reset The HW resets it CSB tail pointer on resetting the engine. Most of the time. In case it doesn't (and for system resume) we write the expected value anyway. For extra paranoia, flush the write before we invalidate the cacheline. Signed-off-by: Chris Wilson Cc: Mika Kuoppala Acked-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190412110159.10495-1-chris@chris-wilson.co.uk commit 926b21f37b072ae4c117052de45a975c6d468fec Author: Sebastian Andrzej Siewior Date: Wed Apr 3 18:41:50 2019 +0200 x86/fpu: Restore from kernel memory on the 64-bit path too The 64-bit case (both 64-bit and 32-bit frames) loads the new state from user memory. However, doing this is not desired if the FPU state is going to be restored on return to userland: it would be required to disable preemption in order to avoid a context switch which would set TIF_NEED_FPU_LOAD. If this happens before the restore operation then the loaded registers would become volatile. Furthermore, disabling preemption while accessing user memory requires to disable the pagefault handler. An error during FXRSTOR would then mean that either a page fault occurred (and it would have to be retried with enabled page fault handler) or a #GP occurred because the xstate is bogus (after all, the signal handler can modify it). In order to avoid that mess, copy the FPU state from userland, validate it and then load it. The copy_kernel_…() helpers are basically just like the old helpers except that they operate on kernel memory and the fault handler just sets the error value and the caller handles it. copy_user_to_fpregs_zeroing() and its helpers remain and will be used later for a fastpath optimisation. [ bp: Clarify commit message. ] Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: Aubrey Li Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: "Jason A. Donenfeld" Cc: kvm ML Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Rik van Riel Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-22-bigeasy@linutronix.de commit 0725a5478e3b7080666512e6889c94bc361e7b88 Author: Biju Das Date: Wed Apr 10 15:48:50 2019 +0100 ARM: dts: iwg23s-sbc: Enable HS-USB Enable HS-USB device for the iWave SBC based on RZ/G1C. Signed-off-by: Biju Das Signed-off-by: Simon Horman commit 307ca5cf4778b6bf0d2a025b0e4f653742214de8 Author: Biju Das Date: Wed Apr 10 15:48:49 2019 +0100 ARM: dts: r8a77470: Add HSUSB device nodes Define the r8a77470 generic part of the HSUSB0/1 device nodes. Currently the renesas_usbhs driver doesn't handle multiple phys and we don't have a proper hardware to validate such driver changes. So for hsusb1 it is assumed that usbphy0 will be enabled by either channel0 host or device. In future, if any boards support hsusb1, we will need to add multiple phy support in the renesas_usbhs driver and override the board dts to enable the same. Signed-off-by: Biju Das Signed-off-by: Simon Horman commit 034484c4a3c77113304c8b5e1b35a9fad048274e Author: Biju Das Date: Wed Apr 10 15:48:48 2019 +0100 ARM: dts: iwg23s-sbc: Enable USB USB2.0 Host Enable USB2.0 host on the iwg23s sbc. Signed-off-by: Biju Das Signed-off-by: Simon Horman commit ce5940798cf1eb1ba70e94702cbb334ca370f96b Author: Biju Das Date: Wed Apr 10 15:48:47 2019 +0100 ARM: dts: r8a77470: Add USB2.0 Host (EHCI/OHCI) device Define the r8a77470 generic part of the USB2.0 Host Controller device nodes (ehci[01]/ohci[01]). Signed-off-by: Biju Das Signed-off-by: Simon Horman commit e18cfb6e0418e099e42c9fb697dfba24096c90ca Author: Biju Das Date: Wed Apr 10 15:48:46 2019 +0100 ARM: dts: iwg23s-sbc: Enable USB Phy[01] Enable USB phy[01] on iWave iwg23s sbc based on RZ/G1C SoC. Signed-off-by: Biju Das Signed-off-by: Simon Horman commit 1a675db44002ed9674d6e534b1400a9d756ef34b Author: Biju Das Date: Wed Apr 10 15:48:45 2019 +0100 ARM: dts: r8a77470: Add USB PHY DT support Define the r8a77470 generic part of the USB PHY device node. Signed-off-by: Biju Das Signed-off-by: Simon Horman commit b266731b76d5c33c0f6d781c449e43ad9991fb70 Author: Biju Das Date: Wed Apr 10 15:48:44 2019 +0100 ARM: shmobile: Enable USB [EO]HCI HCD PLATFORM support in shmobile_defconfig The USB [EO]HCI controller on RZ/G1C SoC doesn't have PCI bridge like other R-Car Gen2 devices. So enable generic USB [EO]HCI HCD PLATFORM support in shmobile_defconfig. Signed-off-by: Biju Das Signed-off-by: Simon Horman commit 0cd4f4f10245d1d9616e00245093f46acd198141 Author: Biju Das Date: Wed Apr 10 15:48:42 2019 +0100 ARM: shmobile: Enable PHY_RCAR_GEN3_USB2 in shmobile_defconfig Enable PHY_RCAR_GEN3_USB2 in shmobile_defconfig so that boards based on RZ/G1C SoC design can use the corresponding driver. Signed-off-by: Biju Das Signed-off-by: Simon Horman commit 1631b58c7ef690869dcd4b853bf6d06ba54e74d0 Author: Cao Van Dong Date: Tue Apr 9 17:51:46 2019 +0900 ARM: dts: r8a77470: Add VIN support Add vin{0|1} nodes to dtsi for VIN support on the RZ/G1C (r8a77470) SoC. Signed-off-by: Cao Van Dong Reviewed-by: Niklas Söderlund Signed-off-by: Simon Horman commit 3d59e55ef864f5b42bac865912df4aad56d7a67e Author: Cao Van Dong Date: Thu Apr 11 16:54:05 2019 +0900 ARM: dts: r8a77470: Add PWM support Add pwm{0|1|2|3|4|5|6} nodes to dtsi for PWM support on the RZ/G1C (r8a77470) SoC. Signed-off-by: Cao Van Dong Signed-off-by: Simon Horman commit f408170d1829779188aa774ec711bf267349b13b Author: Cao Van Dong Date: Thu Apr 11 16:54:03 2019 +0900 ARM: dts: r8a77470: Add HSCIF support Add hscif{0|1|2} nodes to dtsi for HSCIF support on the RZ/G1C (r8a77470) SoC. Signed-off-by: Cao Van Dong Signed-off-by: Simon Horman commit e0478542cfd4d993e38d5f92a3f3ecd238805e96 Author: Rasmus Villemoes Date: Wed Apr 10 22:27:25 2019 +0200 overflow.h: Add comment documenting __ab_c_size() __ab_c_size() is a somewhat opaque name. Document its purpose, and while at it, rename the parameters to actually match the abc naming. [ bp: glued a complete patch from chunks on LKML. ] Reported-by: Borislav Petkov Signed-off-by: Rasmus Villemoes Signed-off-by: Borislav Petkov Acked-by: Kees Cook Cc: Matthew Wilcox Link: https://lkml.kernel.org/r/20190405045711.30339-1-bp@alien8.de commit 8a5deb4e316a5469f137e62eb1bbf6147ddbfd3d Author: Douglas Anderson Date: Thu Apr 11 16:21:55 2019 -0700 ARM: dts: rockchip: Add DDR retention/poweroff to rk3288-veyron hogs Even though upstream Linux doesn't yet go into deep enough suspend to get DDR into self refresh, there is no harm in setting these pins up. They'll only actually do something if we go into a deeper suspend but leaving them configed always is fine. Signed-off-by: Douglas Anderson Signed-off-by: Heiko Stuebner commit 2dd00d31d488707d0c60088aeb41b6bc2450a7b2 Author: Douglas Anderson Date: Thu Apr 11 16:21:54 2019 -0700 ARM: rockchip: Mark pm-init functions __init The functions rk3288_config_bootdata() and rk3288_suspend_init() are only called in the context of rockchip_suspend_init() which is already marked __init. We can mark them __init too. Signed-off-by: Douglas Anderson Signed-off-by: Heiko Stuebner commit 6b580f523172f2c738b661069a57c23c74a75f88 Author: Takashi Iwai Date: Fri Apr 12 12:44:39 2019 +0200 ALSA: seq: Protect racy pool manipulation from OSS sequencer OSS sequencer emulation still allows to queue and issue the events that manipulate the client pool concurrently in a racy way. This patch serializes the access like the normal sequencer write / ioctl via taking the client ioctl_mutex. Since the access to the sequencer client is done indirectly via a client id number, a new helper to take/release the mutex is introduced. Signed-off-by: Takashi Iwai commit f7b0c4ce8cb3c09cb3cbfc0c663268bf99e5fa9c Author: Lu Baolu Date: Fri Apr 12 12:26:13 2019 +0800 iommu/vt-d: Flush IOTLB for untrusted device in time By default, for performance consideration, Intel IOMMU driver won't flush IOTLB immediately after a buffer is unmapped. It schedules a thread and flushes IOTLB in a batched mode. This isn't suitable for untrusted device since it still can access the memory even if it isn't supposed to do so. Cc: Ashok Raj Cc: Jacob Pan Signed-off-by: Lu Baolu Tested-by: Xu Pengfei Tested-by: Mika Westerberg Signed-off-by: Joerg Roedel commit be068fa236c3d697c77f02f3dc9cd7afeb0538a6 Author: Lu Baolu Date: Fri Apr 12 12:13:26 2019 +0800 vfio/type1: Handle different mdev isolation type This adds the support to determine the isolation type of a mediated device group by checking whether it has an iommu device. If an iommu device exists, an iommu domain will be allocated and then attached to the iommu device. Otherwise, keep the same behavior as it is. Cc: Ashok Raj Cc: Jacob Pan Cc: Kevin Tian Signed-off-by: Sanjay Kumar Signed-off-by: Liu Yi L Signed-off-by: Lu Baolu Reviewed-by: Jean-Philippe Brucker Reviewed-by: Kirti Wankhede Acked-by: Alex Williamson Signed-off-by: Joerg Roedel commit 7bd50f0cd2fd5e8cc910bc0b7db93681c1d325be Author: Lu Baolu Date: Fri Apr 12 12:13:25 2019 +0800 vfio/type1: Add domain at(de)taching group helpers This adds helpers to attach or detach a domain to a group. This will replace iommu_attach_group() which only works for non-mdev devices. If a domain is attaching to a group which includes the mediated devices, it should attach to the iommu device (a pci device which represents the mdev in iommu scope) instead. The added helper supports attaching domain to groups for both pci and mdev devices. Cc: Ashok Raj Cc: Jacob Pan Cc: Kevin Tian Signed-off-by: Sanjay Kumar Signed-off-by: Liu Yi L Signed-off-by: Lu Baolu Reviewed-by: Jean-Philippe Brucker Acked-by: Alex Williamson Signed-off-by: Joerg Roedel commit 8ac13175cbe985e78bd41f9637b613b59df36936 Author: Lu Baolu Date: Fri Apr 12 12:13:24 2019 +0800 vfio/mdev: Add iommu related member in mdev_device A parent device might create different types of mediated devices. For example, a mediated device could be created by the parent device with full isolation and protection provided by the IOMMU. One usage case could be found on Intel platforms where a mediated device is an assignable subset of a PCI, the DMA requests on behalf of it are all tagged with a PASID. Since IOMMU supports PASID-granular translations (scalable mode in VT-d 3.0), this mediated device could be individually protected and isolated by an IOMMU. This patch adds a new member in the struct mdev_device to indicate that the mediated device represented by mdev could be isolated and protected by attaching a domain to a device represented by mdev->iommu_device. It also adds a helper to add or set the iommu device. * mdev_device->iommu_device - This, if set, indicates that the mediated device could be fully isolated and protected by IOMMU via attaching an iommu domain to this device. If empty, it indicates using vendor defined isolation, hence bypass IOMMU. * mdev_set/get_iommu_device(dev, iommu_device) - Set or get the iommu device which represents this mdev in IOMMU's device scope. Drivers don't need to set the iommu device if it uses vendor defined isolation. Cc: Ashok Raj Cc: Jacob Pan Cc: Kevin Tian Cc: Liu Yi L Suggested-by: Kevin Tian Suggested-by: Alex Williamson Signed-off-by: Lu Baolu Reviewed-by: Jean-Philippe Brucker Reviewed-by: Kirti Wankhede Acked-by: Alex Williamson Signed-off-by: Joerg Roedel commit 6740ea6776e97274627e3c261469d1c4ba0a0cb5 Author: Takashi Iwai Date: Fri Apr 12 12:10:14 2019 +0200 ALSA: seq: Simplify snd_seq_kernel_client_enqueue() helper We have two helpers for queuing a sequencer event from the kernel client, and both are used only from OSS sequencer layer without any hop and atomic set. Let's simplify and unify two helpers into one. No functional change, just a call pattern change. Signed-off-by: Takashi Iwai commit 7c32ae35fbf9cffb7aa3736f44dec10c944ca18e Author: Takashi Iwai Date: Fri Apr 12 11:37:19 2019 +0200 ALSA: seq: Cover unsubscribe_port() in list_mutex The call of unsubscribe_port() which manages the group count and module refcount from delete_and_unsubscribe_port() looks racy; it's not covered by the group list lock, and it's likely a cause of the reported unbalance at port deletion. Let's move the call inside the group list_mutex to plug the hole. Reported-by: syzbot+e4c8abb920efa77bace9@syzkaller.appspotmail.com Signed-off-by: Takashi Iwai commit 692802d26b3ae3578fe77ada89b58217fe1c3d75 Author: Thomas Bogendoerfer Date: Thu Apr 11 16:33:21 2019 +0200 rtc: ds1685: fix crash caused by referencing wrong device struct sysfs entries added by rtc_add_group are called with the rtc device as argument and not the underlying device. Fixed by using the dev->parent Fixes: cfb74916e2ec ("rtc: ds1685: use rtc_add_group") Signed-off-by: Thomas Bogendoerfer Signed-off-by: Alexandre Belloni commit 7342e2a73a37ab936e4cabdfdc1b868c898bb805 Author: Alexandre Belloni Date: Tue Apr 9 12:16:31 2019 +0200 rtc: lpc32xx: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Signed-off-by: Alexandre Belloni commit 34b21c9ee812cc2ab4ed22148ffc6a826fc4eed3 Author: Alexandre Belloni Date: Tue Apr 9 12:16:30 2019 +0200 rtc: lpc32xx: use .set_time Use .set_time instead of the deprecated .set_mmss. Signed-off-by: Alexandre Belloni commit f04dd349a343c9399b8e8fe17359fe94cd63d539 Author: Alexandre Belloni Date: Tue Apr 9 12:16:29 2019 +0200 rtc: lpc32xx: switch to rtc_time64_to_tm/rtc_tm_to_time64 Call the 64bit versions of rtc_tm time conversion now that the range is enforced by the core. Signed-off-by: Alexandre Belloni commit ba4a84f5ab6ef91394d745812131a443514f4a99 Author: Alexandre Belloni Date: Tue Apr 9 12:16:28 2019 +0200 rtc: lpc32xx: simplify IRQ setup Move the optional IRQ setup to a single location. Signed-off-by: Alexandre Belloni commit 3a13426908a387555bdfa84c6be3147a2cd31375 Author: Alexandre Belloni Date: Tue Apr 9 12:16:27 2019 +0200 rtc: lpc32xx: set range The LPC32xx RTC is a 32bit second counter. Signed-off-by: Alexandre Belloni commit 6bbad585fd694c25ac0809bbaf9f0f7bf58a6085 Author: Alexandre Belloni Date: Tue Apr 9 12:16:26 2019 +0200 rtc: lpc32xx: convert to devm_rtc_allocate_device This allows further improvement of the driver. Signed-off-by: Alexandre Belloni commit ac60c5e33df4ec2b69c7e3ebbc0ccf1557e7bd5e Author: Matthias Kaehlcke Date: Thu Apr 11 17:01:58 2019 -0700 ARM: dts: rockchip: Add dynamic-power-coefficient for rk3288 The value was determined with the following method: - take CPUs 1-3 offline - for each OPP - set cpufreq min and max freq to OPP freq - start dhrystone benchmark - measure CPU power consumption during 10s - calculate Cx for OPPx - Cx = (Px - P1) / (Vx²fx - V1²f1) [1] using the following units: mW / Ghz / V [2] - C = avg(C2, ..., Cn) [1] see commit 4daa001a1773 ("arm64: dts: juno: Add cpu dynamic-power-coefficient information") [2] https://patchwork.kernel.org/patch/10493615/#22158551 FTR, these are the values for the different OPPs: freq (kHz) mV Px (mW) Cx 126000 900 39 216000 900 66 370 312000 900 95 372 408000 900 122 363 600000 900 177 359 696000 950 230 363 816000 1000 297 361 1008000 1050 404 362 1200000 1100 528 362 1416000 1200 770 377 1512000 1300 984 385 1608000 1350 1156 394 Signed-off-by: Matthias Kaehlcke Signed-off-by: Heiko Stuebner commit 258f250fc5f7f11dec00fc267a0424dd2a0fa8f4 Author: Honghui Zhang Date: Mon Mar 18 16:27:55 2019 +0800 arm64: dts: mt2712: Remove un-used property for PCIe The "num-lanes" property for PCIe is not used, remove it. Signed-off-by: Honghui Zhang Signed-off-by: Lorenzo Pieralisi commit bf297420cce5c6c6de477d27271d9f4645633dad Author: Matthias Kaehlcke Date: Thu Apr 11 10:59:17 2019 -0700 clk: rockchip: Limit use of USB PHY clock to USB on rk3288 The USB PHY clock can be configured as (grand) parent of uart0_sclk and sclk_gpu. It has been observed that UART0 doesn't work reliably in high speed mode with the PHY clock as input when certain USB devices are plugged to the USB HOST1 port (see https://crrev.com/c/320543). Prefix the name of the PHY clock with a '.' in the non-USB muxes to effectively remove the clock as input from these muxes. Signed-off-by: Matthias Kaehlcke Signed-off-by: Heiko Stuebner commit 00c0cd9e59d265b393553e9afa54fee8b10e8158 Author: Douglas Anderson Date: Thu Apr 11 06:55:55 2019 -0700 clk: rockchip: Fix video codec clocks on rk3288 It appears that there is a typo in the rk3288 TRM. For GRF_SOC_CON0[7] it says that 0 means "vepu" and 1 means "vdpu". It's the other way around. How do I know? Here's my evidence: 1. Prior to commit 4d3e84f99628 ("clk: rockchip: describe aclk_vcodec using the new muxgrf type on rk3288") we always pretended that we were using "aclk_vdpu" and the comment in the code said that this matched the default setting in the system. In fact the default setting is 0 according to the TRM and according to reading memory at bootup. In addition rk3288-based Chromebooks ran like this and the video codecs worked. 2. With the existing clock code if you boot up and try to enable the new VIDEO_ROCKCHIP_VPU as a module (and without "clk_ignore_unused" on the command line), you get errors like "failed to get ack on domain 'pd_video', val=0x80208". After flipping vepu/vdpu things init OK. 3. If I export and add both the vepu and vdpu to the list of clocks for RK3288_PD_VIDEO I can get past the power domain errors, but now I freeze when the vpu_mmu gets initted. 4. If I just mark the "vdpu" as IGNORE_UNUSED then everything boots up and probes OK showing that somehow the "vdpu" was important to keep enabled. This is because we were actually using it as a parent. 5. After this change I can hack "aclk_vcodec_pre" to parent from "aclk_vepu" using assigned-clocks and the video codec still probes OK. 6. Rockchip has said so on the mailing list [1]. ...so let's fix it. Let's also add CLK_SET_RATE_PARENT to "aclk_vcodec_pre" as suggested by Jonas Karlman. Prior to the same commit you could do clk_set_rate() on "aclk_vcodec" and it would change "aclk_vdpu". That's because "aclk_vcodec" was a simple gate clock (always gets CLK_SET_RATE_PARENT) and its direct parent was "aclk_vdpu". After that commit "aclk_vcodec_pre" gets in the way so we need to add CLK_SET_RATE_PARENT to it too. [1] https://lkml.kernel.org/r/1d17b015-9e17-34b9-baf8-c285dc1957aa@rock-chips.com Fixes: 4d3e84f99628 ("clk: rockchip: describe aclk_vcodec using the new muxgrf type on rk3288") Suggested-by: Jonas Karlman Suggested-by: Randy Li Signed-off-by: Douglas Anderson Signed-off-by: Heiko Stuebner commit dc351d4c5f4fe4d0f274d6d660227be0c3a03317 Author: Ulf Hansson Date: Wed Apr 10 11:55:16 2019 +0200 PM / core: Propagate dev->power.wakeup_path when no callbacks The dev->power.direct_complete flag may become set in device_prepare() in case the device don't have any PM callbacks (dev->power.no_pm_callbacks is set). This leads to a broken behaviour, when there is child having wakeup enabled and relies on its parent to be used in the wakeup path. More precisely, when the direct complete path becomes selected for the child in __device_suspend(), the propagation of the dev->power.wakeup_path becomes skipped as well. Let's address this problem, by checking if the device is a part the wakeup path or has wakeup enabled, then prevent the direct complete path from being used. Reported-by: Loic Pallardy Signed-off-by: Ulf Hansson [ rjw: Comment cleanup ] Signed-off-by: Rafael J. Wysocki commit 60dd1ead65e83268af9ccd19b97c7011cb50186b Author: Ulf Hansson Date: Wed Apr 10 10:20:25 2019 +0200 drivers: firmware: psci: Announce support for OS initiated suspend mode PSCI firmware v1.0+, supports two different modes for CPU_SUSPEND. The Platform Coordinated mode, which is the default and mandatory mode, while support for the OS initiated (OSI) mode is optional. In some cases it's interesting for the user/developer to know if the OSI mode is supported by the PSCI FW, so print a message to the log if that is the case. Co-developed-by: Lina Iyer Signed-off-by: Ulf Hansson Reviewed-by: Daniel Lezcano Acked-by: Mark Rutland Acked-by: Lorenzo Pieralisi Signed-off-by: Rafael J. Wysocki commit d036b5cfef6360808117abd0c53775b7a8981a2e Author: Ulf Hansson Date: Wed Apr 10 10:20:24 2019 +0200 drivers: firmware: psci: Simplify error path of psci_dt_init() Instead of having each PSCI init function taking care of the of_node_put(), deal with that from psci_dt_init(), as this enables a bit simpler error path for each PSCI init function. Co-developed-by: Lina Iyer Signed-off-by: Ulf Hansson Acked-by: Mark Rutland Reviewed-by: Daniel Lezcano Acked-by: Lorenzo Pieralisi Signed-off-by: Rafael J. Wysocki commit 0865d20c50741e1d37d4a1108764e5e45a83973e Author: Ulf Hansson Date: Wed Apr 10 10:20:23 2019 +0200 drivers: firmware: psci: Split psci_dt_cpu_init_idle() Split the psci_dt_cpu_init_idle() function into two functions. This makes the code clearer and provides better re-usability. Co-developed-by: Lina Iyer Signed-off-by: Ulf Hansson Acked-by: Daniel Lezcano Acked-by: Mark Rutland Acked-by: Lorenzo Pieralisi Signed-off-by: Rafael J. Wysocki commit f0f6ad9092601d95729ce14ec6da3b5055e18714 Author: Ulf Hansson Date: Wed Apr 10 10:20:22 2019 +0200 MAINTAINERS: Update files for PSCI The files for the PSCI firmware driver were moved to a sub-directory, so update MAINTAINERS to reflect that. Suggested-by: Mark Rutland Signed-off-by: Ulf Hansson Acked-by: Daniel Lezcano Acked-by: Mark Rutland Acked-by: Lorenzo Pieralisi Signed-off-by: Rafael J. Wysocki commit e720a6c8fbdb86dcbb493d432e632dfafe6381cc Author: Ulf Hansson Date: Wed Apr 10 10:20:21 2019 +0200 drivers: firmware: psci: Move psci to separate directory Some following changes extends the PSCI driver with some additional files. Avoid to continue cluttering the toplevel firmware directory and first move the PSCI files into a PSCI sub-directory. Suggested-by: Mark Rutland Signed-off-by: Ulf Hansson Acked-by: Daniel Lezcano Acked-by: Mark Rutland Acked-by: Lorenzo Pieralisi Signed-off-by: Rafael J. Wysocki commit 2564002abcde7e655bd0bab7f5f3a592ca586e58 Author: Axel Lin Date: Fri Apr 12 09:54:21 2019 +0800 regulator: dbx500-prcmu: Remove unused fields from struct dbx500_regulator_info The *dev is assigned but not used, remove it. Current driver is using devm_regulator_register(), so no neeed to save *rdev for clean up. Use a local variable instead. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 92722a8fac5349fa2f249dcb366c6083d193922f Author: Axel Lin Date: Fri Apr 12 09:54:20 2019 +0800 regulator: db8500-prcmu: Convert to use simplified DT parsing Use regulator core's simplified DT parsing code to simplify the driver implementation. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 1a18195a2c4e3da5e082ee297b176a71abb9161a Author: Axel Lin Date: Fri Apr 12 09:54:19 2019 +0800 regulator: db8500-prcmu: Constify regulator_ops These regulator_ops variables never need to be modified, make them const so compiler can put them to .rodata. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 13e962140be671f31a011543f11477af67a6c33e Author: Zhang Rui Date: Tue Apr 2 21:38:32 2019 +0800 ACPI: button: reinitialize button state upon resume With commit dfa46c50f65b ("ACPI / button: Fix an issue in button.lid_init_state=ignore mode"), the lid device is considered to be not compliant to SW_LID if the Lid state is unchanged when updating it. This is not wrong, but we overlooked the resume case, where Lid state is updated unconditionally in the button driver .resume() callback. And this results in warning message "ACPI: button: The lid device is not compliant to SW_LID." after resume, if the machine is suspended with Lid opened and then resumed with Lid opened. Fix this by flushing the cached lid state before updating the Lid device in .resume() callback. Fixes: dfa46c50f65b ("ACPI / button: Fix an issue in button.lid_init_state=ignore mode") Reported-and-tested-by: Zhao Lijian Signed-off-by: Zhang Rui Signed-off-by: Rafael J. Wysocki commit f456277ee15ff5d150191cb4a2f0181a8804c851 Merge: c5781ffbbd4f 6c6a828f86d6 Author: Rafael J. Wysocki Date: Fri Apr 12 09:59:56 2019 +0200 Merge back ACPICA changes for v5.2. commit 0eb2766dd6f366d42448121c383420bb0307bcc7 Author: Peter Ujfalusi Date: Mon Apr 1 15:41:43 2019 +0300 drm/bridge: ti-tfp410: Set the bus_format The TFP410 supports 24 bit, single-edge and 12 bit, dual-edge modes. Depending on how many wires are used (24/12) the driver can set the correct bus_format. If the information is not available in DT then assume 24 bit, single-edge setup. Signed-off-by: Peter Ujfalusi Reviewed-by: Laurent Pinchart Reviewed-by: Andrzej Hajda Signed-off-by: Andrzej Hajda Link: https://patchwork.freedesktop.org/patch/msgid/20190401124143.17179-3-peter.ujfalusi@ti.com commit 51c7b4477c8bf1b34b69f7697f70cd8396492ca6 Author: Peter Ujfalusi Date: Mon Apr 1 15:41:42 2019 +0300 dt-bindings: display: tfp410: Add bus-width parameter property tfp410 can be connect to host processor in 24bit, single-edge (24 lines) or 12bit, dual-edge (12 lines). Add bus-width to the documentation so it can be used to select between the two connection scheme. Signed-off-by: Peter Ujfalusi Reviewed-by: Laurent Pinchart Reviewed-by: Rob Herring Signed-off-by: Andrzej Hajda Link: https://patchwork.freedesktop.org/patch/msgid/20190401124143.17179-2-peter.ujfalusi@ti.com commit 3d31e21522819925313a95174b3071ee408c12dd Author: Peter Ujfalusi Date: Mon Apr 1 15:33:42 2019 +0300 drm/bridge: ti-tfp410: Fall back to HPD polling if HPD irq is not available In case either the HPD gpio is not specified or when the HPD gpio can not be used as interrupt we should tell the core that the HPD needs to be polled for detecting hotplug. Signed-off-by: Peter Ujfalusi Reviewed-by: Laurent Pinchart Signed-off-by: Andrzej Hajda Link: https://patchwork.freedesktop.org/patch/msgid/20190401123342.15767-1-peter.ujfalusi@ti.com commit fa9d38f65d3976d8594e84edb0edcdfc75054b17 Author: Radhakrishna Sripada Date: Fri Mar 29 18:19:20 2019 -0700 drm/i915: Fix the inconsistent RMW in WA 827 RMW is used only in the disable path. Using it in enable path for consistency. Suggested-by: Ville Syrjala Cc: Anusha Srivatsa Signed-off-by: Radhakrishna Sripada Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190330011921.10397-2-radhakrishna.sripada@intel.com commit 2474028e4b9abde6cc63ce0e3e3a045040b7815c Author: Radhakrishna Sripada Date: Fri Mar 29 18:19:19 2019 -0700 drm/i915: Rename skl_wa_clkgating to the actual WA No functional change. Renaming the function to reflect the specific WA. Suggested-by: Ville Syrjala Cc: Anusha Srivatsa Signed-off-by: Radhakrishna Sripada Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190330011921.10397-1-radhakrishna.sripada@intel.com commit ecc4946f11a07884f230450a6d5a92337bc21375 Merge: 5c8c397c3e54 fe6382cd69de Author: Dave Airlie Date: Fri Apr 12 14:46:10 2019 +1000 Merge branch 'drm-next-5.2' of git://people.freedesktop.org/~agd5f/linux into drm-next - Fixes for powerplay custom profiles - DC bandwidth clean ups and fixes - RAS fixes for vega20 - DC atomic resume fix - Better plane handling in DC - Freesync improvements - Misc bug fixes and cleanups Signed-off-by: Dave Airlie From: Alex Deucher Link: https://patchwork.freedesktop.org/patch/msgid/20190411031242.3337-1-alexander.deucher@amd.com commit 8af9f7291e22d165ea630856da4171a9d5a6ced3 Merge: 9994677c968e 013b96ec6461 Author: David S. Miller Date: Thu Apr 11 21:33:37 2019 -0700 Merge branch 'sctp-skb-list' David Miller says: ==================== SCTP: Event skb list overhaul. This patch series eliminates the explicit reference to the skb list implementation via skb->prev dereferences. The approach used is to pass a non-empty skb list around instead of an event skb object which may or may not be on a list. I'd like to thank Marcelo Leitner, Xin Long, and Neil Horman for reviewing previous versions of this series. Testing would be very much appreciated, in addition to the review of course. v4 --> v5: Rebase to net-next v3 --> v4: Fix the logic in patch #4 so that we don't miss cases where we should add event to the on-stack temp list. ==================== Signed-off-by: David S. Miller commit 013b96ec64616b57fc631b304dfcecc5bc288f90 Author: David Miller Date: Thu Apr 11 15:02:07 2019 -0700 sctp: Pass sk_buff_head explicitly to sctp_ulpq_tail_event(). Now the SKB list implementation assumption can be removed. And now that we know that the list head is always non-NULL we can remove the code blocks dealing with that as well. Signed-off-by: David S. Miller Acked-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller commit 178ca044aa60cb05102148b635cb82f6986451a3 Author: David Miller Date: Thu Apr 11 15:02:04 2019 -0700 sctp: Make sctp_enqueue_event tak an skb list. Pass this, instead of an event. Then everything trickles down and we always have events a non-empty list. Then we needs a list creating stub to place into .enqueue_event for sctp_stream_interleave_1. Signed-off-by: David S. Miller Acked-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller commit 5e8f641db673cb6ef84b2151e473300f24c9f5a0 Author: David Miller Date: Thu Apr 11 15:02:01 2019 -0700 sctp: Use helper for sctp_ulpq_tail_event() when hooked up to ->enqueue_event This way we can make sure events sent this way to sctp_ulpq_tail_event() are on a list as well. Now all such code paths are fully covered. Signed-off-by: David S. Miller Acked-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller commit 925b93742263f3139856fcab944c165cfabe39f4 Author: David Miller Date: Thu Apr 11 15:01:57 2019 -0700 sctp: Always pass skbs on a list to sctp_ulpq_tail_event(). This way we can simplify the logic and remove assumptions about the implementation of skb lists. Signed-off-by: David S. Miller Acked-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller commit 0eff1052438c360c21aef01cc689ef54ee528af7 Author: David Miller Date: Thu Apr 11 15:01:53 2019 -0700 sctp: Remove superfluous test in sctp_ulpq_reasm_drain(). Inside the loop, we always start with event non-NULL. Signed-off-by: David S. Miller Acked-by: Marcelo Ricardo Leitner Signed-off-by: David S. Miller commit 9994677c968eff50968b2611e61e3afa90b39966 Author: Vlad Buslov Date: Fri Apr 12 00:54:19 2019 +0300 net: sched: flower: fix filter net reference counting Fix net reference counting in fl_change() and remove redundant call to tcf_exts_get_net() from __fl_delete(). __fl_put() already tries to get net before releasing exts and deallocating a filter, so this code caused flower classifier to obtain net twice per filter that is being deleted. Implementation of __fl_delete() called tcf_exts_get_net() to pass its result as 'async' flag to fl_mask_put(). However, 'async' flag is redundant and only complicates fl_mask_put() implementation. This functionality seems to be copied from filter cleanup code, where it was added by Cong with following explanation: This patchset tries to fix the race between call_rcu() and cleanup_net() again. Without holding the netns refcnt the tc_action_net_exit() in netns workqueue could be called before filter destroy works in tc filter workqueue. This patchset moves the netns refcnt from tc actions to tcf_exts, without breaking per-netns tc actions. This doesn't apply to flower mask, which doesn't call any tc action code during cleanup. Simplify fl_mask_put() by removing the flag parameter and always use tcf_queue_work() to free mask objects. Fixes: 061775583e35 ("net: sched: flower: introduce reference counting for filters") Fixes: 1f17f7742eeb ("net: sched: flower: insert filter to ht before offloading it to hw") Fixes: 05cd271fd61a ("cls_flower: Support multiple masks per priority") Reported-by: Ido Schimmel Signed-off-by: Vlad Buslov Signed-off-by: David S. Miller commit 56490b623aa0ffa8526611e3e76a8ac546fe78f6 Author: David Ahern Date: Thu Apr 11 11:51:50 2019 -0700 selftests: Add debugging options to pmtu.sh pmtu.sh script runs a number of tests and dumps a summary of pass/fail. If a test fails, it is near impossible to debug why. For example: TEST: ipv6: PMTU exceptions [FAIL] There are a lot of commands run behind the scenes for this test. Which one is failing? Add a VERBOSE option to show commands that are run and any output from those commands. Add a PAUSE_ON_FAIL option to halt the script if a test fails allowing users to poke around with the setup in the failed state. In the process, rename tracing to TRACING and move declaration to top with the new variables. Signed-off-by: David Ahern Reviewed-by: Stefano Brivio Signed-off-by: David S. Miller commit 5c8c397c3e54397810e80c47498f207174c1c960 Merge: 14d2bd53a47a 80bb8d983224 Author: Dave Airlie Date: Fri Apr 12 14:27:37 2019 +1000 Merge tag 'drm-misc-next-2019-04-10' of git://anongit.freedesktop.org/drm/drm-misc into drm-next drm-misc-next for 5.2: UAPI Changes: - None Cross-subsystem Changes: -MAINTAINERS: Add moderation flag for lima mailing list (Randy) -dt-bindings: Add Mali Bifrost bindings (Neil) -dt-bindings: Add G12A compatibility strings to meson bindings (Neil) Core Changes: -Add a handful of format helpers (Gerd) Driver Changes: -cirrus: Driver rewrite megapatch (Gerd) -meson: Add G12A support to meson driver (Neil) -lima: Couple fixes (Qiang) Cc: Gerd Hoffmann Cc: Randy Dunlap Cc: Neil Armstrong Cc: Qiang Yu Signed-off-by: Dave Airlie From: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190410194907.GA108842@art_vandelay commit 00053de52231117ddc154042549f2256183ffb86 Author: Charles Keepax Date: Thu Apr 4 17:33:56 2019 +0100 extcon: arizona: Disable mic detect if running when driver is removed Microphone detection provides the button detection features on the Arizona CODECs as such it will be running if the jack is currently inserted. If the driver is unbound whilst the jack is still inserted this will cause warnings from the regulator framework as the MICVDD regulator is put but was never disabled. Correct this by disabling microphone detection on driver removal and if the microphone detection was running disable the regulator and put the runtime reference that was currently held. Signed-off-by: Charles Keepax Signed-off-by: Chanwoo Choi commit bb23581b9b38703257acabd520aa5ebf1db008af Merge: 78f07adac861 947e8b595b82 Author: David S. Miller Date: Thu Apr 11 17:00:05 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next Daniel Borkmann says: ==================== pull-request: bpf-next 2019-04-12 The following pull-request contains BPF updates for your *net-next* tree. The main changes are: 1) Improve BPF verifier scalability for large programs through two optimizations: i) remove verifier states that are not useful in pruning, ii) stop walking parentage chain once first LIVE_READ is seen. Combined gives approx 20x speedup. Increase limits for accepting large programs under root, and add various stress tests, from Alexei. 2) Implement global data support in BPF. This enables static global variables for .data, .rodata and .bss sections to be properly handled which allows for more natural program development. This also opens up the possibility to optimize program workflow by compiling ELFs only once and later only rewriting section data before reload, from Daniel and with test cases and libbpf refactoring from Joe. 3) Add config option to generate BTF type info for vmlinux as part of the kernel build process. DWARF debug info is converted via pahole to BTF. Latter relies on libbpf and makes use of BTF deduplication algorithm which results in 100x savings compared to DWARF data. Resulting .BTF section is typically about 2MB in size, from Andrii. 4) Add BPF verifier support for stack access with variable offset from helpers and add various test cases along with it, from Andrey. 5) Extend bpf_skb_adjust_room() growth BPF helper to mark inner MAC header so that L2 encapsulation can be used for tc tunnels, from Alan. 6) Add support for input __sk_buff context in BPF_PROG_TEST_RUN so that users can define a subset of allowed __sk_buff fields that get fed into the test program, from Stanislav. 7) Add bpf fs multi-dimensional array tests for BTF test suite and fix up various UBSAN warnings in bpftool, from Yonghong. 8) Generate a pkg-config file for libbpf, from Luca. 9) Dump program's BTF id in bpftool, from Prashant. 10) libbpf fix to use smaller BPF log buffer size for AF_XDP's XDP program, from Magnus. 11) kallsyms related fixes for the case when symbols are not present in BPF selftests and samples, from Daniel ==================== Signed-off-by: David S. Miller commit 223fd0adfa8af36d5d9b5d38016e579ee052f367 Author: Florian Westphal Date: Thu Apr 11 16:36:42 2019 +0200 bridge: broute: make broute a real ebtables table This makes broute a normal ebtables table, hooking at PREROUTING. The broute hook is removed. It uses skb->cb to signal to bridge rx handler that the skb should be routed instead of being bridged. This change is backwards compatible with ebtables as no userspace visible parts are changed. This means we can also remove the !ops test in ebt_register_table, it was only there for broute table sake. Signed-off-by: Florian Westphal Acked-by: David S. Miller Acked-by: Nikolay Aleksandrov Signed-off-by: Pablo Neira Ayuso commit 971502d77faa50a37c89bc6d172450294ad9a5fd Author: Florian Westphal Date: Thu Apr 11 16:36:41 2019 +0200 bridge: netfilter: unroll NF_HOOK helper in bridge input path Replace NF_HOOK() based invocation of the netfilter hooks with a private copy of nf_hook_slow(). This copy has one difference: it can return the rx handler value expected by the stack, i.e. RX_HANDLER_CONSUMED or RX_HANDLER_PASS. This is needed by the next patch to invoke the ebtables "broute" table via the standard netfilter hooks rather than the custom "br_should_route_hook" indirection that is used now. When the skb is to be "brouted", we must return RX_HANDLER_PASS from the bridge rx input handler, but there is no way to indicate this via NF_HOOK(), unless perhaps by some hack such as exposing bridge_cb in the netfilter core or a percpu flag. text data bss dec filename 3369 56 0 3425 net/bridge/br_input.o.before 3458 40 0 3498 net/bridge/br_input.o.after This allows removal of the "br_should_route_hook" in the next patch. Signed-off-by: Florian Westphal Acked-by: David S. Miller Acked-by: Nikolay Aleksandrov Signed-off-by: Pablo Neira Ayuso commit f12064d1b402c60c5db9c4b63d5ed6d7facb33f6 Author: Florian Westphal Date: Thu Apr 11 16:36:40 2019 +0200 bridge: reduce size of input cb to 16 bytes Reduce size of br_input_skb_cb from 24 to 16 bytes by using bitfield for those values that can only be 0 or 1. igmp is the igmp type value, so it needs to be at least u8. Furthermore, the bridge currently relies on step-by-step initialization of br_input_skb_cb fields as the skb passes through the stack. Explicitly zero out the bridge input cb instead, this avoids having to review/validate that no BR_INPUT_SKB_CB(skb)->foo test can see a 'random' value from previous protocol cb. AFAICS all current fields are always set up before they are read again, so this is not a bug fix. Signed-off-by: Florian Westphal Acked-by: David S. Miller Acked-by: Nikolay Aleksandrov Signed-off-by: Pablo Neira Ayuso commit 26f7fe4a5db5b41d2abe53e37100c8984b157fb2 Author: Florian Westphal Date: Thu Apr 11 16:36:39 2019 +0200 selftests: netfilter: add ebtables broute test case ebtables -t broute allows to redirect packets in a way that they get pushed up the stack, even if the interface is part of a bridge. In case of IP packets to non-local address, this means those IP packets are routed instead of bridged-forwarded, just as if the bridge would not have existed. Expected test output is: PASS: netns connectivity: ns1 and ns2 can reach each other PASS: ns1/ns2 connectivity with active broute rule PASS: ns1/ns2 connectivity with active broute rule and bridge forward drop Signed-off-by: Florian Westphal Acked-by: David S. Miller Acked-by: Nikolay Aleksandrov Signed-off-by: Pablo Neira Ayuso commit fa3c098c2d52a268f6372fa053932e11f50cecb1 Author: YueHaibing Date: Thu Apr 4 22:17:48 2019 +0800 extcon: axp288: Add a depends on ACPI to the Kconfig entry As Hans de Goede pointed, using this driver without ACPI makes little sense, so add ACPI dependency to Kconfig entry to fix a build error while CONFIG_ACPI is not set. drivers/extcon/extcon-axp288.c: In function 'axp288_extcon_probe': drivers/extcon/extcon-axp288.c:363:20: error: dereferencing pointer to incomplete type put_device(&adev->dev); Fixes: 0cf064db948a ("extcon: axp288: Convert to use acpi_dev_get_first_match_dev()") Reported-by: Hulk Robot Suggested-by: Hans de Goede Signed-off-by: YueHaibing Reviewed-by: Hans de Goede Reviewed-by: Mukesh Ojha Signed-off-by: Chanwoo Choi commit 947e8b595b82d3551750641445d0a97b8f29b536 Author: Stanislav Fomichev Date: Thu Apr 11 15:47:07 2019 -0700 bpf: explicitly prohibit ctx_{in, out} in non-skb BPF_PROG_TEST_RUN This should allow us later to extend BPF_PROG_TEST_RUN for non-skb case and be sure that nobody is erroneously setting ctx_{in,out}. Fixes: b0b9395d865e ("bpf: support input __sk_buff context in BPF_PROG_TEST_RUN") Reported-by: Daniel Borkmann Signed-off-by: Stanislav Fomichev Signed-off-by: Daniel Borkmann commit 6b7a21140fca461c6d8d5c65a3746e7da50a409e Author: Daniel Borkmann Date: Tue Apr 9 11:44:46 2019 +0200 tools: add smp_* barrier variants to include infrastructure Add the definition for smp_rmb(), smp_wmb(), and smp_mb() to the tools include infrastructure: this patch adds the implementation for x86-64 and arm64, and have it fall back as currently is for other archs which do not have it implemented at this point. The x86-64 one uses lock + add combination for smp_mb() with address below red zone. This is on top of 09d62154f613 ("tools, perf: add and use optimized ring_buffer_{read_head, write_tail} helpers"), which didn't touch smp_* barrier implementations. Magnus recently rightfully reported however that the latter on x86-64 still wrongly falls back to sfence, lfence and mfence respectively, thus fix that for applications under tools making use of these to avoid such ugly surprises. The main header under tools (include/asm/barrier.h) will in that case not select the fallback implementation. Reported-by: Magnus Karlsson Signed-off-by: Daniel Borkmann Cc: Arnaldo Carvalho de Melo Signed-off-by: Alexei Starovoitov commit 78f07adac86186b5ef0318b7faec377b6d31ea9f Merge: 62720b12d20a 0b34eb004347 Author: David S. Miller Date: Thu Apr 11 14:24:07 2019 -0700 Merge branch 'ipv6-Refactor-nexthop-selection-helpers-during-a-fib-lookup' David Ahern says: ==================== ipv6: Refactor nexthop selection helpers during a fib lookup IPv6 has a fib6_nh embedded within each fib6_info and a separate fib6_info for each path in a multipath route. A side effect is that a fib6_info is passed all the way down the stack when selecting a path on a fib lookup. Refactor the fib lookup functions and associated helper functions to take a fib6_nh when appropriate to enable IPv6 to work with nexthop objects where the fib6_nh is not directly part of a fib entry. ==================== Signed-off-by: David S. Miller commit 0b34eb004347308ed0952ddb5b3898a71869ac3c Author: David Ahern Date: Tue Apr 9 14:41:19 2019 -0700 ipv6: Refactor __ip6_route_redirect Move the nexthop evaluation of a fib entry to a helper that can be leveraged for each fib6_nh in a multipath nexthop object. In the move, 'continue' statements means the helper returns false (loop should continue) and 'break' means return true (found the entry of interest). Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 0c59d00675874f9ee7a0371ad9d9b69386ea2d03 Author: David Ahern Date: Tue Apr 9 14:41:18 2019 -0700 ipv6: Refactor rt6_device_match Move the device and gateway checks in the fib6_next loop to a helper that can be called per fib6_nh entry. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit d83009d462a68ad908a51e1690d46917cbad0440 Author: David Ahern Date: Tue Apr 9 14:41:17 2019 -0700 ipv6: Move fib6_multipath_select down in ip6_pol_route Move the siblings and fib6_multipath_select after the null entry check since a null entry can not have siblings. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit af52a52cbabd8751154483dc8e6685a28746970f Author: David Ahern Date: Tue Apr 9 14:41:16 2019 -0700 ipv6: Be smarter with null_entry handling in ip6_pol_route_lookup Clean up the fib6_null_entry handling in ip6_pol_route_lookup. rt6_device_match can return fib6_null_entry, but fib6_multipath_select can not. Consolidate the fib6_null_entry handling and on the final null_entry check set rt and goto out - no need to defer to a second check after rt6_find_cached_rt. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 30c15f033847c519bae4a3dc23320e1fbee868eb Author: David Ahern Date: Tue Apr 9 14:41:15 2019 -0700 ipv6: Refactor find_rr_leaf find_rr_leaf has 3 loops over fib_entries calling find_match. The loops are very similar with differences in start point and whether the metric is evaluated: 1. start at rr_head, no extra loop compare, check fib metric 2. start at leaf, compare rt against rr_head, check metric 3. start at cont (potential saved point from earlier loops), no extra loop compare, no metric check Create 1 loop that is called 3 different times. This will make a later change with multipath nexthop objects much simpler. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 28679ed1047955e1a618984c90e4f1c6bfdaeb93 Author: David Ahern Date: Tue Apr 9 14:41:14 2019 -0700 ipv6: Refactor find_match find_match primarily needs a fib6_nh (and fib6_flags which it passes through to rt6_score_route). Move fib6_check_expired up to the call sites so find_match is only called for relevant entries. Remove the match argument which is mostly a pass through and use the return boolean to decide if match gets set in the call sites. The end result is a helper that can be called per fib6_nh struct which is needed once fib entries reference nexthop objects that have more than one fib6_nh. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 702cea56852c6e57e997890ae8202e5385c63691 Author: David Ahern Date: Tue Apr 9 14:41:13 2019 -0700 ipv6: Pass fib6_nh and flags to rt6_score_route rt6_score_route only needs the fib6_flags and nexthop data. Change it accordingly. Allows re-use later for nexthop based fib6_nh. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit cc3a86c802f0ba9a2627aef256d95ae3b3fa6e91 Author: David Ahern Date: Tue Apr 9 14:41:12 2019 -0700 ipv6: Change rt6_probe to take a fib6_nh rt6_probe sends probes for gateways in a nexthop. As such it really depends on a fib6_nh, not a fib entry. Move last_probe to fib6_nh and update rt6_probe to a fib6_nh struct. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 6e1809a564ef743052157b78f47b40a2b8373458 Author: David Ahern Date: Tue Apr 9 14:41:11 2019 -0700 ipv6: Remove rt6_check_dev rt6_check_dev is a simpler helper with only 1 caller. Fold the code into rt6_score_route. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 1ba9a8951794751ea3bcbcc5df700d42d525a130 Author: David Ahern Date: Tue Apr 9 14:41:10 2019 -0700 ipv6: Only call rt6_check_neigh for nexthop with gateway Change rt6_check_neigh to take a fib6_nh instead of a fib entry. Move the check on fib_flags and whether the nexthop has a gateway up to the one caller. Remove the inline from the definition as well. Not necessary. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit fbc5ee9a6955e6e1a10b736856f9f8f8984ce809 Author: Anson Huang Date: Thu Apr 11 02:19:48 2019 +0000 rtc: mxc_v2: use dev_pm_set_wake_irq() to simplify code With calling dev_pm_set_wake_irq() to set MXC_V2 RTC as wakeup source for suspend, generic wake irq mechanism will automatically enable it as wakeup source when suspend, then the suspend/resume callback which are ONLY for enabling/disabling irq wake can be removed, it simplifies the code. Signed-off-by: Anson Huang Signed-off-by: Alexandre Belloni commit bc0e731fc2893f96037ef5125e40fd28c6b97bd9 Author: Anson Huang Date: Thu Apr 11 02:06:04 2019 +0000 rtc: mxc: use dev_pm_set_wake_irq() to simplify code With calling dev_pm_set_wake_irq() to set MXC RTC as wakeup source for suspend, generic wake irq mechanism will automatically enable it as wakeup source when suspend, then the suspend/resume callback which are ONLY for enabling/disabling irq wake can be removed, it simplifies the code. Signed-off-by: Anson Huang Signed-off-by: Alexandre Belloni commit 862cac15d2e9d6ade85d77cf9816743b6c0965df Author: Andy Shevchenko Date: Wed Apr 10 17:05:59 2019 +0300 rtc: rx8025: Fix a parameter to %ptR in rx8025_read_alarm() The commit 1921cab11723 ("rtc: rx8025: Switch to use %ptR") converted the driver to use new %p extension, but actually used wrong type of the parameter in one case. Fix a parameter to %ptR in rx8025_read_alarm(). Reported-by: Dan Carpenter Signed-off-by: Andy Shevchenko Signed-off-by: Alexandre Belloni commit 153a9177c1c8df514d6bd307b28d76832a8cefe8 Author: YueHaibing Date: Wed Apr 10 21:43:36 2019 +0800 rtc: sirfsoc: Make sysrtc_regmap_config static Fix sparse warning: drivers/rtc/rtc-sirfsoc.c:282:28: warning: symbol 'sysrtc_regmap_config' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: YueHaibing Signed-off-by: Alexandre Belloni commit 9cb30a71acd45d65321c73160626f15fcdceba7a Author: Jean-Philippe Brucker Date: Thu Apr 11 13:40:27 2019 +0100 PCI: OF: Support "external-facing" property Set the "untrusted" attribute to any PCIe port that has an "external-facing" device tree property. Any device downstream of this port will inherit the attribute and have only the strictest IOMMU protection. Signed-off-by: Jean-Philippe Brucker Signed-off-by: Bjorn Helgaas commit badd9f19f1992218b771c72e0cdc8825dd45938c Author: Jean-Philippe Brucker Date: Thu Apr 11 13:40:26 2019 +0100 dt-bindings: Add "external-facing" PCIe port property Provide a way for the firmware to tell the OS which devices are external to the machine and therefore untrusted. The property can describe for example Thunderbolt and other user-accessible ports, which should always have the strongest IOMMU protection. Signed-off-by: Jean-Philippe Brucker Signed-off-by: Bjorn Helgaas Reviewed-by: Grant Likely Reviewed-by: Rob Herring Reviewed-by: Robin Murphy commit 62720b12d20aecebc2e74642c37a3dc84717ac7a Author: Colin Ian King Date: Tue Apr 9 13:59:12 2019 +0100 dns: remove redundant zero length namelen check The zero namelen check is redundant as it has already been checked for zero at the start of the function. Remove the redundant check. Addresses-Coverity: ("Logically Dead Code") Signed-off-by: Colin Ian King Signed-off-by: David S. Miller commit 94c59aab42ced3af2140acf90b795b4d4f867012 Merge: c695865c5c98 3ec61df82ba0 Author: Daniel Borkmann Date: Thu Apr 11 22:50:58 2019 +0200 Merge branch 'bpf-l2-encap' Alan Maguire says: ==================== Extend bpf_skb_adjust_room growth to mark inner MAC header so that L2 encapsulation can be used for tc tunnels. Patch #1 extends the existing test_tc_tunnel to support UDP encapsulation; later we want to be able to test MPLS over UDP and MPLS over GRE encapsulation. Patch #2 adds the BPF_F_ADJ_ROOM_ENCAP_L2(len) macro, which allows specification of inner mac length. Other approaches were explored prior to taking this approach. Specifically, I tried automatically computing the inner mac length on the basis of the specified flags (so inner maclen for GRE/IPv4 encap is the len_diff specified to bpf_skb_adjust_room minus GRE + IPv4 header length for example). Problem with this is that we don't know for sure what form of GRE/UDP header we have; is it a full GRE header, or is it a FOU UDP header or generic UDP encap header? My fear here was we'd end up with an explosion of flags. The other approach tried was to support inner L2 header marking as a separate room adjustment, i.e. adjust for L3/L4 encap, then call bpf_skb_adjust_room for L2 encap. This can be made to work but because it imposed an order on operations, felt a bit clunky. Patch #3 syncs tools/ bpf.h. Patch #4 extends the tests again to support MPLSoverGRE, MPLSoverUDP, and transparent ethernet bridging (TEB) where the inner L2 header is an ethernet header. Testing of BPF encap against tunnels is done for cases where configuration of such tunnels is possible (MPLSoverGRE[6], MPLSoverUDP, gre[6]tap), and skipped otherwise. Testing of BPF encap/decap is always carried out. Changes since v2: - updated tools/testing/selftest/bpf/config with FOU/MPLS CONFIG variables (patches 1, 4) - reduced noise in patch 1 by avoiding unnecessary movement of code - eliminated inner_mac variable in bpf_skb_net_grow (patch 2) Changes since v1: - fixed formatting of commit references. - BPF_F_ADJ_ROOM_FIXED_GSO flag enabled on all variants (patch 1) - fixed fou6 options for UDP encap; checksum errors observed were due to the fact fou6 tunnel was not set up with correct ipproto options (41 -6). 0 checksums work fine (patch 1) - added definitions for mask and shift used in setting L2 length (patch 2) - allow udp encap with fixed GSO (patch 2) - changed "elen" to "l2_len" to be more descriptive (patch 4) ==================== Acked-by: Willem de Bruijn Signed-off-by: Daniel Borkmann commit 3ec61df82ba0c2d2455da838ee46bf60f2256b56 Author: Alan Maguire Date: Tue Apr 9 15:06:43 2019 +0100 selftests_bpf: add L2 encap to test_tc_tunnel Update test_tc_tunnel to verify adding inner L2 header encapsulation (an MPLS label or ethernet header) works. Signed-off-by: Alan Maguire Signed-off-by: Daniel Borkmann commit 1db04c300a41e17892bf83ed0d1aa681416ee150 Author: Alan Maguire Date: Tue Apr 9 15:06:42 2019 +0100 bpf: sync bpf.h to tools/ for BPF_F_ADJ_ROOM_ENCAP_L2 Sync include/uapi/linux/bpf.h with tools/ equivalent to add BPF_F_ADJ_ROOM_ENCAP_L2(len) macro. Signed-off-by: Alan Maguire Signed-off-by: Daniel Borkmann commit 58dfc900faff6db7eb9bf01555622e0b6c74c262 Author: Alan Maguire Date: Tue Apr 9 15:06:41 2019 +0100 bpf: add layer 2 encap support to bpf_skb_adjust_room commit 868d523535c2 ("bpf: add bpf_skb_adjust_room encap flags") introduced support to bpf_skb_adjust_room for GSO-friendly GRE and UDP encapsulation. For GSO to work for skbs, the inner headers (mac and network) need to be marked. For L3 encapsulation using bpf_skb_adjust_room, the mac and network headers are identical. Here we provide a way of specifying the inner mac header length for cases where L2 encap is desired. Such an approach can support encapsulated ethernet headers, MPLS headers etc. For example to convert from a packet of form [eth][ip][tcp] to [eth][ip][udp][inner mac][ip][tcp], something like the following could be done: headroom = sizeof(iph) + sizeof(struct udphdr) + inner_maclen; ret = bpf_skb_adjust_room(skb, headroom, BPF_ADJ_ROOM_MAC, BPF_F_ADJ_ROOM_ENCAP_L4_UDP | BPF_F_ADJ_ROOM_ENCAP_L3_IPV4 | BPF_F_ADJ_ROOM_ENCAP_L2(inner_maclen)); Signed-off-by: Alan Maguire Signed-off-by: Daniel Borkmann commit 166b5a7f2ca3803ab0a7bb33ac2300e616de2470 Author: Alan Maguire Date: Tue Apr 9 15:06:40 2019 +0100 selftests_bpf: extend test_tc_tunnel for UDP encap commit 868d523535c2 ("bpf: add bpf_skb_adjust_room encap flags") introduced support to bpf_skb_adjust_room for GSO-friendly GRE and UDP encapsulation and later introduced associated test_tc_tunnel tests. Here those tests are extended to cover UDP encapsulation also. Signed-off-by: Alan Maguire Signed-off-by: Daniel Borkmann commit 909620ff72c8fcf95b6ef1dca850b24bf016dd27 Author: Jon Maloy Date: Thu Apr 11 21:56:28 2019 +0200 tipc: use standard write_lock & unlock functions when creating node In the function tipc_node_create() we protect the peer capability field by using the node rw_lock. However, we access the lock directly instead of using the dedicated functions for this, as we do everywhere else in node.c. This cosmetic spot is fixed here. Fixes: 40999f11ce67 ("tipc: make link capability update thread safe") Signed-off-by: Jon Maloy Signed-off-by: David S. Miller commit 6fd3134ae3551d4802a04669c0f39f2f5c56f77d Author: Ville Syrjälä Date: Tue Mar 26 16:49:02 2019 +0200 drm/i915: Do not enable FEC without DSC Currently we enable FEC even when DSC is no used. While that is theoretically valid supposedly there isn't much of a benefit from this. But more importantly we do not account for the FEC link bandwidth overhead (2.4%) in the non-DSC link bandwidth computations. So the code may think we have enough bandwidth when we in fact do not. Cc: stable@vger.kernel.org Cc: Anusha Srivatsa Cc: Manasi Navare Fixes: 240999cf339f ("i915/dp/fec: Add fec_enable to the crtc state.") Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190326144903.6617-1-ville.syrjala@linux.intel.com Reviewed-by: Manasi Navare commit eaa9558d35aee594c9658d92852e537a0fb897d7 Author: Paul Cercueil Date: Tue Mar 19 15:05:36 2019 +0100 clk: ingenic: jz4725b: Add UDC PHY clock Add clock for the USB Device Controller PHY. Signed-off-by: Paul Cercueil Signed-off-by: Stephen Boyd commit e94999688e3aa3c0a8ad5a60352cdc3ca3030434 Author: Ulf Hansson Date: Thu Apr 11 20:17:33 2019 +0200 PM / Domains: Add genpd governor for CPUs After some preceding changes, PM domains managed by genpd may contain CPU devices, so idle state residency values should be taken into account during the state selection process. [The residency value is the minimum amount of time to be spent by a CPU (or a group of CPUs) in an idle state in order to save more energy than could be saved by picking up a shallower idle state.] For this purpose, add a new genpd governor, pm_domain_cpu_gov, to be used for selecting idle states of PM domains with CPU devices attached either directly or through subdomains. The new governor computes the minimum expected idle duration for all online CPUs attached to a PM domain and its subdomains. Next, it finds the deepest idle state whose target residency is within the expected idle duration and selects it as the target idle state of the domain. It should be noted that the minimum expected idle duration computation is based on the closest timer event information stored in the per-CPU variables cpuidle_devices for all of the CPUs in the domain. That needs to be revisited in future, as obviously there are other reasons why a CPU may be woken up from idle. Co-developed-by: Lina Iyer Acked-by: Daniel Lezcano Signed-off-by: Ulf Hansson [ rjw: Changelog ] Signed-off-by: Rafael J. Wysocki commit 93dc07f8b089ee073075c22873ab707225e192b5 Author: Paul Cercueil Date: Tue Mar 19 15:05:35 2019 +0100 dt-bindings: clock: jz4725b-cgu: Add UDC PHY clock Add macro for the UDC PHY clock of the JZ4725B. Signed-off-by: Paul Cercueil Reviewed-by: Rob Herring Signed-off-by: Stephen Boyd commit c0ee0e43c049a13d11e913edf875e4ee376dc84b Author: Marc Gonzalez Date: Mon Mar 25 14:49:54 2019 +0100 clk: qcom: Skip halt checks on gcc_pcie_0_pipe_clk for 8998 See similar issue solved by commit 5f2420ed2189 ("clk: qcom: Skip halt checks on gcc_usb3_phy_pipe_clk for 8998") Without this patch, PCIe PHY init fails: qcom-qmp-phy 1c06000.phy: pipe_clk enable failed err=-16 phy phy-1c06000.phy.0: phy init failed --> -16 Signed-off-by: Marc Gonzalez Reviewed-by: Jeffrey Hugo Fixes: b5f5f525c547 ("clk: qcom: Add MSM8998 Global Clock Control (GCC) driver") Signed-off-by: Stephen Boyd commit 892df0191b29a2309d2dc9e30252b289630a8b4e Author: Bjorn Andersson Date: Wed Mar 6 09:47:58 2019 -0800 clk: qcom: Add QCS404 TuringCC The Turing Clock Controller provides resources related to running the Turing subsystem. PM runtime is used to ensure that the associated AHB clock is ticking while the clock framework is accessing the registers in the Turing clock controller. Signed-off-by: Bjorn Andersson Signed-off-by: Stephen Boyd commit 360fed42282e47dfc3c641c90070c556756d3565 Author: Bjorn Andersson Date: Wed Mar 6 09:47:57 2019 -0800 clk: qcom: branch: Add AON clock ops Some clocks can only be turned on by resetting the block containing them, provide a clock type that allow us to reference these clocks and have the client drivers enable and "disable" them. Signed-off-by: Bjorn Andersson Signed-off-by: Stephen Boyd commit 5f19c6e936f2300fa236773a4aef3b4ec8aaad7c Author: Bjorn Andersson Date: Wed Mar 6 09:47:56 2019 -0800 dt-bindings: clock: Introduce Qualcomm Turing Clock controller Add devicetree binding for the turing clock controller found in QCS404. Signed-off-by: Bjorn Andersson Reviewed-by: Rob Herring Signed-off-by: Stephen Boyd commit 8bc7a04bb7838d6bad8b255959d338f93eb5822d Author: Bjorn Andersson Date: Tue Mar 5 21:51:48 2019 -0800 clk: qcom: gcc-qcs404: Add CDSP related clocks and resets Add the clocks and resets need in order to control the Turing remoteproc. Signed-off-by: Bjorn Andersson Acked-by: Rob Herring Signed-off-by: Stephen Boyd commit dac5d67277d654695444fe6cab94c1a596dff33c Author: James Liao Date: Tue Mar 5 13:05:46 2019 +0800 clk: mediatek: Allow changing PLL rate when it is off Some modules may need to change its clock rate before turn on it. So changing PLL's rate when it is off should be allowed. This patch removes PLL enabled check before set rate, so that PLLs can set new frequency even if they are off. On MT8173 for example, ARMPLL's enable bit can be controlled by other HW. That means ARMPLL may be turned on even if we (CPU / SW) set ARMPLL's enable bit as 0. In this case, SW may want and can still change ARMPLL's rate by changing its pcw and postdiv settings. But without this patch, new pcw setting will not be applied because its enable bit is 0. Signed-off-by: James Liao Acked-by: Michael Turquette Signed-off-by: Weiyi Lu Reviewed-by: James Liao Signed-off-by: Stephen Boyd commit acddfc2c261b3653ab1c1b567a427299bac20d31 Author: Weiyi Lu Date: Tue Mar 5 13:05:45 2019 +0800 clk: mediatek: Add MT8183 clock support Add MT8183 clock support, include topckgen, apmixedsys, infracfg, mcucfg and subsystem clocks. Signed-off-by: Weiyi Lu Tested-by: Nicolas Boichat Reviewed-by: Nicolas Boichat Signed-off-by: Stephen Boyd commit 23fe31dedb7b1836cc23666afc1a9c67ed7de775 Author: Weiyi Lu Date: Tue Mar 5 13:05:44 2019 +0800 clk: mediatek: Add configurable pcw_chg_reg to mtk_pll_data In previous MediaTek PLL design, it assumes the pcw change control is always on the CON1 register. However, the pcw change bit on MT8183 was moved onto CON0 because the the PCW length of audio PLLs are extended to 32-bit. Add configurable pcw_chg_reg to set the pcw change control register address or using the default control register CON1 if without setting in pll data. Signed-off-by: Weiyi Lu Reviewed-by: James Liao Reviewed-by: Nicolas Boichat Tested-by: Nicolas Boichat Signed-off-by: Stephen Boyd commit d90240bc073eccec5fffa80e7038460350c6f073 Author: Weiyi Lu Date: Tue Mar 5 13:05:42 2019 +0800 clk: mediatek: Add dt-bindings for MT8183 clocks Add MT8183 clock dt-bindings, include topckgen, apmixedsys, infracfg, mcucfg and subsystem clocks. Signed-off-by: Weiyi Lu Reviewed-by: Rob Herring Signed-off-by: Stephen Boyd commit 2f41cd9b13ea891e7cc1bd037b70458132a12e31 Author: Weiyi Lu Date: Tue Mar 5 13:05:41 2019 +0800 dt-bindings: ARM: Mediatek: Document bindings for MT8183 This patch adds the binding documentation for apmixedsys, audiosys, camsys, imgsys, infracfg, mcucfg, mfgcfg, mmsys, topckgen, vdecsys, vencsys and ipu for Mediatek MT8183. Signed-off-by: Weiyi Lu Reviewed-by: Rob Herring Acked-by: Stephen Boyd Signed-off-by: Stephen Boyd commit 9d7e1a82b7d195f901c2a18dd5602a1c11e9eefb Author: Owen Chen Date: Tue Mar 5 13:05:40 2019 +0800 clk: mediatek: Add configurable pcwibits and fmin to mtk_pll_data 1. pcwibits: The integer bits of pcw for PLLs is extend to 8 bits, add a variable to indicate this change and backward-compatible. 2. fmin: The PLL frequency lower-bound is vary from 1GHz to 1.5GHz, add a variable to indicate platform-dependent. Signed-off-by: Owen Chen Signed-off-by: Weiyi Lu Acked-by: Sean Wang Reviewed-by: James Liao Reviewed-by: Nicolas Boichat Tested-by: Nicolas Boichat Signed-off-by: Stephen Boyd commit a3ae549917f1634f85c62984617521801505eb1e Author: Owen Chen Date: Tue Mar 5 13:05:39 2019 +0800 clk: mediatek: Add new clkmux register API On both MT8183 & MT6765, there add "set/clr" register for each clkmux setting, and one update register to trigger value change. It is designed to prevent read-modify-write racing issue. The sw design need to add a new API to handle this hw change with a new mtk_clk_mux/mtk_mux struct in new file "clk-mux.c", "clk-mux.h". Signed-off-by: Owen Chen Signed-off-by: Weiyi Lu Reviewed-by: James Liao Reviewed-by: Nicolas Boichat Tested-by: Nicolas Boichat [sboyd@kernel.org: Squash in flags=0 to silence warning] Signed-off-by: Stephen Boyd commit be17ca6ac76a5cfd07cc3a0397dd05d6929fcbbb Author: Owen Chen Date: Tue Mar 5 13:05:38 2019 +0800 clk: mediatek: Disable tuner_en before change PLL rate PLLs with tuner_en bit, such as APLL1, need to disable tuner_en before apply new frequency settings, or the new frequency settings (pcw) will not be applied. The tuner_en bit will be disabled during changing PLL rate and be restored after new settings applied. Fixes: e2f744a82d725 (clk: mediatek: Add MT2712 clock support) Cc: Signed-off-by: Owen Chen Signed-off-by: Weiyi Lu Reviewed-by: James Liao Reviewed-by: Matthias Brugger Signed-off-by: Stephen Boyd commit c695865c5c9803f14eef2c99d8a49d9ad60a3383 Author: Stanislav Fomichev Date: Thu Apr 11 09:12:02 2019 -0700 bpf: fix missing bpf_check_uarg_tail_zero in BPF_PROG_TEST_RUN Commit b0b9395d865e ("bpf: support input __sk_buff context in BPF_PROG_TEST_RUN") started using bpf_check_uarg_tail_zero in BPF_PROG_TEST_RUN. However, bpf_check_uarg_tail_zero is not defined for !CONFIG_BPF_SYSCALL: net/bpf/test_run.c: In function ‘bpf_ctx_init’: net/bpf/test_run.c:142:9: error: implicit declaration of function ‘bpf_check_uarg_tail_zero’ [-Werror=implicit-function-declaration] err = bpf_check_uarg_tail_zero(data_in, max_size, size); ^~~~~~~~~~~~~~~~~~~~~~~~ Let's not build net/bpf/test_run.c when CONFIG_BPF_SYSCALL is not set. Reported-by: kbuild test robot Fixes: b0b9395d865e ("bpf: support input __sk_buff context in BPF_PROG_TEST_RUN") Signed-off-by: Stanislav Fomichev Signed-off-by: Daniel Borkmann commit 2e1e5c5532ffe14ff48811ffe96a40f7dce8645c Author: Chris Wilson Date: Tue Apr 9 18:41:08 2019 +0100 drm/i915: Avoid reclaim taints from runtime-pm debug As intel_runtime_pm_get/_put may be called from any blockable context, we need to avoid allowing reclaim from our mallocs, as we need to avoid tainting any mutexes held by the callers (as they may themselves not allow for allocations as they are taken in the shrinker). <4> [435.339331] WARNING: possible circular locking dependency detected <4> [435.339364] 5.1.0-rc4-CI-Trybot_4116+ #1 Tainted: G U <4> [435.339395] ------------------------------------------------------ <4> [435.339426] gem_caching/1334 is trying to acquire lock: <4> [435.339456] 000000004505c39b (wakeref#3){+.+.}, at: intel_engine_pm_put+0x1b/0x40 [i915] <4> [435.339788] but task is already holding lock: <4> [435.339819] 00000000ee77b4ed (fs_reclaim){+.+.}, at: fs_reclaim_acquire.part.24+0x0/0x30 <4> [435.339879] which lock already depends on the new lock. <4> [435.339918] the existing dependency chain (in reverse order) is: <4> [435.339952] -> #1 (fs_reclaim){+.+.}: <4> [435.339998] fs_reclaim_acquire.part.24+0x24/0x30 <4> [435.340035] kmem_cache_alloc_trace+0x2a/0x290 <4> [435.340311] __print_intel_runtime_pm_wakeref+0x24/0x160 [i915] <4> [435.340590] untrack_intel_runtime_pm_wakeref+0x16e/0x1d0 [i915] <4> [435.340869] intel_runtime_pm_put_unchecked+0xd/0x30 [i915] <4> [435.341147] __intel_wakeref_put_once+0x22/0x40 [i915] <4> [435.341508] i915_request_retire+0x477/0xaf0 [i915] <4> [435.341871] ring_retire_requests+0x86/0x160 [i915] <4> [435.342226] i915_retire_requests+0x58/0xc0 [i915] <4> [435.342576] retire_work_handler+0x5b/0x70 [i915] <4> [435.342615] process_one_work+0x245/0x610 <4> [435.342646] worker_thread+0x37/0x380 <4> [435.342679] kthread+0x119/0x130 <4> [435.342714] ret_from_fork+0x3a/0x50 <4> [435.342739] -> #0 (wakeref#3){+.+.}: <4> [435.342788] lock_acquire+0xa6/0x1c0 <4> [435.342822] __mutex_lock+0x8c/0x960 <4> [435.342853] atomic_dec_and_mutex_lock+0x33/0x50 <4> [435.343151] intel_engine_pm_put+0x1b/0x40 [i915] <4> [435.343501] i915_request_retire+0x477/0xaf0 [i915] <4> [435.343851] ring_retire_requests+0x86/0x160 [i915] <4> [435.344202] i915_retire_requests+0x58/0xc0 [i915] <4> [435.344543] i915_gem_shrink+0xd8/0x5b0 [i915] <4> [435.344835] i915_drop_caches_set+0x17b/0x250 [i915] <4> [435.344877] simple_attr_write+0xb0/0xd0 <4> [435.344911] full_proxy_write+0x51/0x80 <4> [435.344943] vfs_write+0xbd/0x1b0 <4> [435.344972] ksys_write+0x55/0xe0 <4> [435.345002] do_syscall_64+0x55/0x190 <4> [435.345040] entry_SYSCALL_64_after_hwframe+0x49/0xbe Signed-off-by: Chris Wilson Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190409174108.19396-1-chris@chris-wilson.co.uk commit 1863e3020ab50bd5f68d85719ba26356cc282643 Author: Chris Wilson Date: Thu Apr 11 14:05:15 2019 +0100 drm/i915/execlists: Always reset the context's RING registers During reset, we try and stop the active ring. This has the consequence that we often clobber the RING registers within the context image. When we find an active request, we update the context image to rerun that request (if it was guilty, we replace the hanging user payload with NOPs). However, we were ignoring an active context if the request had completed, with the consequence that the next submission on that request would start with RING_HEAD==0 and not the tail of the previous request, causing all requests still in the ring to be rerun. Rare, but occasionally seen within CI where we would spot that the context seqno would reverse and complain that we were retiring an incomplete request. <0> [412.390350] -0 3d.s2 408373352us : __i915_request_submit: rcs0 fence 1e95b:3640 -> current 3638 <0> [412.390350] -0 3d.s2 408373353us : __i915_request_submit: rcs0 fence 1e95b:3642 -> current 3638 <0> [412.390350] -0 3d.s2 408373354us : __i915_request_submit: rcs0 fence 1e95b:3644 -> current 3638 <0> [412.390350] -0 3d.s2 408373354us : __i915_request_submit: rcs0 fence 1e95b:3646 -> current 3638 <0> [412.390350] -0 3d.s2 408373356us : __execlists_submission_tasklet: rcs0 in[0]: ctx=2.1, fence 1e95b:3646 (current 3638), prio=4 <0> [412.390350] i915_sel-4613 0.... 408373374us : __i915_request_commit: rcs0 fence 1e95b:3648 <0> [412.390350] i915_sel-4613 0d..1 408373377us : process_csb: rcs0 cs-irq head=2, tail=3 <0> [412.390350] i915_sel-4613 0d..1 408373377us : process_csb: rcs0 csb[3]: status=0x00000001:0x00000000, active=0x1 <0> [412.390350] i915_sel-4613 0d..1 408373378us : __i915_request_submit: rcs0 fence 1e95b:3648 -> current 3638 <0> [412.390350] -0 3..s1 408373378us : execlists_submission_tasklet: rcs0 awake?=1, active=5 <0> [412.390350] i915_sel-4613 0d..1 408373379us : __execlists_submission_tasklet: rcs0 in[0]: ctx=2.2, fence 1e95b:3648 (current 3638), prio=4 <0> [412.390350] i915_sel-4613 0.... 408373381us : i915_reset_engine: rcs0 flags=4 <0> [412.390350] i915_sel-4613 0.... 408373382us : execlists_reset_prepare: rcs0: depth<-0 <0> [412.390350] -0 3d.s2 408373390us : process_csb: rcs0 cs-irq head=3, tail=4 <0> [412.390350] -0 3d.s2 408373390us : process_csb: rcs0 csb[4]: status=0x00008002:0x00000002, active=0x1 <0> [412.390350] -0 3d.s2 408373390us : process_csb: rcs0 out[0]: ctx=2.2, fence 1e95b:3648 (current 3640), prio=4 <0> [412.390350] i915_sel-4613 0.... 408373401us : intel_engine_stop_cs: rcs0 <0> [412.390350] i915_sel-4613 0d..1 408373402us : process_csb: rcs0 cs-irq head=4, tail=4 <0> [412.390350] i915_sel-4613 0.... 408373403us : intel_gpu_reset: engine_mask=1 <0> [412.390350] i915_sel-4613 0d..1 408373408us : execlists_cancel_port_requests: rcs0:port0 fence 1e95b:3648, (current 3648) <0> [412.390350] i915_sel-4613 0.... 408373442us : intel_engine_cancel_stop_cs: rcs0 <0> [412.390350] i915_sel-4613 0.... 408373442us : execlists_reset_finish: rcs0: depth->0 <0> [412.390350] ksoftirq-26 3..s. 408373442us : execlists_submission_tasklet: rcs0 awake?=1, active=0 <0> [412.390350] ksoftirq-26 3d.s1 408373443us : process_csb: rcs0 cs-irq head=5, tail=5 <0> [412.390350] i915_sel-4613 0.... 408373475us : i915_request_retire: rcs0 fence 1e95b:3640, current 3648 <0> [412.390350] i915_sel-4613 0.... 408373476us : i915_request_retire: __retire_engine_request(rcs0) fence 1e95b:3640, current 3648 <0> [412.390350] i915_sel-4613 0.... 408373494us : __i915_request_commit: rcs0 fence 1e95b:3650 <0> [412.390350] i915_sel-4613 0d..1 408373496us : process_csb: rcs0 cs-irq head=5, tail=5 <0> [412.390350] i915_sel-4613 0d..1 408373496us : __i915_request_submit: rcs0 fence 1e95b:3650 -> current 3648 <0> [412.390350] i915_sel-4613 0d..1 408373498us : __execlists_submission_tasklet: rcs0 in[0]: ctx=2.1, fence 1e95b:3650 (current 3648), prio=6 <0> [412.390350] i915_sel-4613 0.... 408373500us : i915_request_retire_upto: rcs0 fence 1e95b:3648, current 3648 <0> [412.390350] i915_sel-4613 0.... 408373500us : i915_request_retire: rcs0 fence 1e95b:3642, current 3648 <0> [412.390350] i915_sel-4613 0.... 408373501us : i915_request_retire: __retire_engine_request(rcs0) fence 1e95b:3642, current 3648 <0> [412.390350] i915_sel-4613 0.... 408373514us : i915_request_retire: rcs0 fence 1e95b:3644, current 3648 <0> [412.390350] i915_sel-4613 0.... 408373515us : i915_request_retire: __retire_engine_request(rcs0) fence 1e95b:3644, current 3648 <0> [412.390350] i915_sel-4613 0.... 408373527us : i915_request_retire: rcs0 fence 1e95b:3646, current 3640 <0> [412.390350] -0 3..s1 408373569us : execlists_submission_tasklet: rcs0 awake?=1, active=1 <0> [412.390350] -0 3d.s2 408373569us : process_csb: rcs0 cs-irq head=5, tail=1 <0> [412.390350] -0 3d.s2 408373570us : process_csb: rcs0 csb[0]: status=0x00000001:0x00000000, active=0x1 <0> [412.390350] -0 3d.s2 408373570us : process_csb: rcs0 csb[1]: status=0x00000018:0x00000002, active=0x5 <0> [412.390350] -0 3d.s2 408373570us : process_csb: rcs0 out[0]: ctx=2.1, fence 1e95b:3650 (current 3650), prio=6 <0> [412.390350] -0 3d.s2 408373571us : process_csb: rcs0 completed ctx=2 <0> [412.390350] i915_sel-4613 0.... 408373621us : i915_request_retire: i915_request_retire:253 GEM_BUG_ON(!i915_request_completed(request)) v2: Fixup the cancellation path to drain the CSB and reset the pointers. Signed-off-by: Chris Wilson Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190411130515.20716-2-chris@chris-wilson.co.uk commit 292ad25c22d96583b76ce714b7a06941d54bd939 Author: Chris Wilson Date: Thu Apr 11 14:05:14 2019 +0100 drm/i915/guc: Implement reset locally Before causing guc and execlists to diverge further (breaking guc in the process), take a copy of the current reset procedure and make it local to the guc submission backend Signed-off-by: Chris Wilson Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190411130515.20716-1-chris@chris-wilson.co.uk commit 3936867dbc1eb8790aa5985a68d53e4303b3616f Author: Mika Kuoppala Date: Thu Apr 11 11:30:34 2019 +0300 drm/i915: Disable read only ppgtt support for gen11 On gen11 writing to read only ppgtt page causes a gpu hang. This behaviour is different than with previous gen where read only ppgtt access is supported. On those, the write is just dropped without visible side effects. Disable ro ppgtt support on gen11 until a solution can be found to bring it into line with its predecessors. References: HSDES#1807136187 References: https://bugzilla.freedesktop.org/show_bug.cgi?id=108569 Cc: Chris Wilson Signed-off-by: Mika Kuoppala Acked-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190411083034.28311-1-mika.kuoppala@linux.intel.com commit 0c441cb6f3eeed8ac07fd8c3fd5a0dd2ac568362 Author: Chris Wilson Date: Thu Apr 11 13:24:45 2019 +0100 drm/i915: Call i915_sw_fence_fini on request cleanup As i915_requests are put into an RCU-freelist, they may get reused before debugobjects notice them as being freed. On cleanup, explicitly call i915_sw_fence_fini() so that the debugobject is properly tracked. Reported-by: Mika Kuoppala Fixes: b7404c7ecb38 ("drm/i915: Bump ready tasks ahead of busywaits") Signed-off-by: Chris Wilson Cc: Mika Kuoppala Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190411122445.20060-1-chris@chris-wilson.co.uk commit dfe7fb21cd9e730230d55a79bc72cf2ece67cdd5 Author: Douglas Anderson Date: Tue Apr 9 13:47:06 2019 -0700 clk: rockchip: Make rkpwm a critical clock on rk3288 Most rk3288-based boards are derived from the EVB and thus use a PWM regulator for the logic rail. However, most rk3288-based boards don't specify the PWM regulator in their device tree. We'll deal with that by making it critical. NOTE: it's important to make it critical and not just IGNORE_UNUSED because all PWMs in the system share the same clock. We don't want another PWM user to turn the clock on and off and kill the logic rail. This change is in preparation for actually having the PWMs in the rk3288 device tree actually point to the proper PWM clock. Up until now they've all pointed to the clock for the old IP block and they've all worked due to the fact that rkpwm was IGNORE_UNUSED and that the clock rates for both clocks were the same. Signed-off-by: Douglas Anderson Signed-off-by: Heiko Stuebner commit 610a43149cabd0c7aa7bed19cbcf05a0249ab32a Author: Florian Westphal Date: Tue Apr 9 10:44:08 2019 +0200 netfilter: nf_nat_masquerade: unify ipv4/6 notifier registration Only reason for having two different register functions was because of ipt_MASQUERADE and ip6t_MASQUERADE being two different modules. Previous patch merged those into xt_MASQUERADE, so we can merge this too. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit adf82accc5f526f1e812f1a8df7292fef7dad19a Author: Florian Westphal Date: Tue Apr 9 10:44:07 2019 +0200 netfilter: x_tables: merge ip and ipv6 masquerade modules No need to have separate modules for this. before: text data bss dec filename 2038 1168 0 3206 net/ipv4/netfilter/ipt_MASQUERADE.ko 1526 1024 0 2550 net/ipv6/netfilter/ip6t_MASQUERADE.ko after: text data bss dec filename 2521 1296 0 3817 net/netfilter/xt_MASQUERADE.ko Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit bf8981a2aa082d9d64771b47c8a1c9c388d8cd40 Author: Florian Westphal Date: Tue Apr 9 10:44:06 2019 +0200 netfilter: nf_nat: merge ip/ip6 masquerade headers Both are now implemented by nf_nat_masquerade.c, so no need to keep different headers. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit c942081c87dd532397d796b5c0196e95d5d45092 Author: Nicholas Mc Guire Date: Thu Apr 11 13:04:11 2019 +0200 clk: ux500: add range to usleep_range Providing a range for usleep_range() allows the hrtimer subsystem to coalesce timers - the delay is runtime configurable so a factor 2 is taken to provide the range. With the expected range for enable_delay_us being milliseconds, the range should lie in the 250us range which is sufficient for hrtimer optimization. Signed-off-by: Nicholas Mc Guire Acked-by: Ulf Hansson Signed-off-by: Stephen Boyd commit b331db554815d0552c537e189b897eb062486166 Author: YueHaibing Date: Tue Mar 19 23:35:04 2019 +0800 clk: tegra: Make tegra_clk_super_mux_ops static Fix sparse warning: drivers/clk/tegra/clk-super.c:124:22: warning: symbol 'tegra_clk_super_mux_ops' was not declared. Should it be static? Signed-off-by: YueHaibing Acked-by: Thierry Reding Signed-off-by: Stephen Boyd commit e0d3602f933367881bddfff310a744e6e61c284c Author: Sebastian Andrzej Siewior Date: Wed Apr 3 18:41:49 2019 +0200 x86/fpu: Inline copy_user_to_fpregs_zeroing() Start refactoring __fpu__restore_sig() by inlining copy_user_to_fpregs_zeroing(). The original function remains and will be used to restore from userland memory if possible. Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: "Jason A. Donenfeld" Cc: kvm ML Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Rik van Riel Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-21-bigeasy@linutronix.de commit 33c70c13992fef95d95df9a0b71d114e02cdae97 Author: Ding Xiang Date: Fri Mar 15 15:29:24 2019 +0800 clk: davinci: cfgchip: use PTR_ERR_OR_ZERO in da8xx_cfgchip_register_div4p5 use PTR_ERR_OR_ZERO inetead of return code Signed-off-by: Ding Xiang Signed-off-by: Stephen Boyd commit 5d2a2c59108a00ee550fd9a51f26de72e209a703 Author: Mauro Carvalho Chehab Date: Wed Apr 10 06:56:27 2019 -0300 docs: speculation.txt: mark example blocks as such Identify the example blocks there, in order to avoid Sphinx warnings. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 59bc64f0d07cceda125b85d17749f58178606aeb Author: Mauro Carvalho Chehab Date: Wed Apr 10 06:56:26 2019 -0300 docs: ntb.txt: add blank lines to clean up some Sphinx warnings In order to make it easier to parse and produce the right output, add some extra blank lines. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit cf566e1ee2a736967ee89915dbdcfcb7903988d6 Author: Mauro Carvalho Chehab Date: Wed Apr 10 06:56:25 2019 -0300 docs: video-output.txt: convert it to ReST format This file doesn't follow the documentation style we use within the Kernel. Fix it. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 0da3e3e3643288cbce4acf55284ecca168a7b728 Author: Mauro Carvalho Chehab Date: Wed Apr 10 06:56:24 2019 -0300 docs: unaligned-memory-access.txt: use a lowercase title As all other titles at the documentation, use lower case for its title. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 3ac10b02557361fbe5e4cd351a3594369be25774 Author: Mauro Carvalho Chehab Date: Wed Apr 10 06:56:23 2019 -0300 docs: ntb.txt: use Sphinx notation for the two ascii figures In order to make it to build with Sphinx, we need to fix the notation for two ascii artwork. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 26187d18b8d1be18a21bd84419cf89080fecfa1f Author: Mauro Carvalho Chehab Date: Wed Apr 10 06:56:22 2019 -0300 docs: clearing-warn-once.txt: add a title for this document This document misses a title. Add it, in order to follow the documentation standard. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 49618364689cdfb89985e6fe8d21ba4079f947fc Author: Mauro Carvalho Chehab Date: Wed Apr 10 06:56:21 2019 -0300 docs: atomic_bitops.txt: add a title for this document This document misses a title. Add it, in order to follow the documentation standard. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 9fda5130d31cd0c008560122ca147034e504b63b Author: Mauro Carvalho Chehab Date: Wed Apr 10 06:56:20 2019 -0300 docs: DMA-API-HOWTO: add a missing "=" The === line is shorter than the section title. As this will generate a warning with rst build, fix it. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 0d714dba162620fd8b9f5b3104a487e041353c4d Author: Sebastian Andrzej Siewior Date: Wed Apr 3 18:41:48 2019 +0200 x86/fpu: Update xstate's PKRU value on write_pkru() During the context switch the xstate is loaded which also includes the PKRU value. If xstate is restored on return to userland it is required that the PKRU value in xstate is the same as the one in the CPU. Save the PKRU in xstate during modification. Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andi Kleen Cc: Andy Lutomirski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: "Jason A. Donenfeld" Cc: Joerg Roedel Cc: Juergen Gross Cc: "Kirill A. Shutemov" Cc: kvm ML Cc: Michal Hocko Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Rik van Riel Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-20-bigeasy@linutronix.de commit c06e64407e031e71c67f45f07981510ca4c880a1 Author: Michael Tretter Date: Tue Mar 19 11:01:46 2019 +0100 clk: zynqmp: fix check for fractional clock The firmware sets BIT(13) in clkflag to mark a divider as fractional divider. The clock driver copies the clkflag straight to the flags of the common clock framework. In the common clk framework flags, BIT(13) is defined as CLK_DUTY_CYCLE_PARENT. Add a new field to the zynqmp_clk_divider to specify if a divider is a fractional devider. Set this field based on the clkflag when registering a divider. At the same time, unset BIT(13) from clkflag when copying the flags to the common clk framework flags. Signed-off-by: Michael Tretter Signed-off-by: Stephen Boyd commit e91158f1be5b157329ab8f21f86728d591c8f747 Author: Michael Tretter Date: Tue Mar 19 11:01:45 2019 +0100 clk: zynqmp: do not export zynqmp_clk_register_* functions The zynqmp_clk_register_* functions are internal functions of the driver. Only clkc.c uses these functions to register these clocks. Therefore, there is no need to export these functions. The gate and pll already don't export their register_* functions. Signed-off-by: Michael Tretter Signed-off-by: Stephen Boyd commit 5e088faecb4b880d0c9e11324714631610237397 Author: Michael Tretter Date: Tue Mar 19 11:01:44 2019 +0100 clk: zynqmp: fix kerneldoc of __zynqmp_clock_get_parents The kerneldoc refers to __zynqmp_clock_get_topology(), but actually documents __zynqmp_clock_get_parents(). Refer to the correct function name in the kerneldoc. Signed-off-by: Michael Tretter Signed-off-by: Stephen Boyd commit 9e35552ae1eafd666e7388a1a94a321665d2f911 Author: Vlad Buslov Date: Thu Apr 11 19:12:20 2019 +0300 net: sched: flower: use correct ht function to prevent duplicates Implementation of function rhashtable_insert_fast() check if its internal helper function __rhashtable_insert_fast() returns non-NULL pointer and seemingly return -EEXIST in such case. However, since __rhashtable_insert_fast() is called with NULL key pointer, it never actually checks for duplicates, which means that -EEXIST is never returned to the user. Use rhashtable_lookup_insert_fast() hash table API instead. In order to verify that it works as expected and prevent the problem from happening in future, extend tc-tests with new test that verifies that no new filters with existing key can be inserted to flower classifier. Fixes: 1f17f7742eeb ("net: sched: flower: insert filter to ht before offloading it to hw") Signed-off-by: Vlad Buslov Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit d3e4ebc18753c429e64cf92cd70616f51fa6f543 Author: Rajan Vaja Date: Mon Mar 4 15:19:10 2019 -0800 drivers: clk: Update clock driver to handle clock attribute Versal EEMI APIs uses clock device ID which is combination of class, subclass, type and clock index (e.g. 0x8104006 in which 0-13 bits are for index(6 in given example), 14-19 bits are for clock type (i.e pll, out or ref, 1 in given example), 20-25 bits are for subclass which is nothing but clock type only), 26-32 bits are for device class, which is clock(0x2) for all clocks) while zynqmp firmware uses clock ID which is index only (e.g 0, 1, to n, where n is max_clock id). To use zynqmp clock driver for versal platform also, extend use of QueryAttribute API to fetch device class, subclass and clock type to create clock device ID. In case of zynqmp this attributes would be 0 only, so there won't be any effect on clock id as it would use clock index only. Signed-off-by: Tejas Patel Signed-off-by: Rajan Vaja Signed-off-by: Michal Simek Signed-off-by: Jolly Shah Signed-off-by: Stephen Boyd commit 60d74e011c8e7450846563739a8530f823e5d77a Author: Rajan Vaja Date: Mon Mar 4 15:27:46 2019 -0800 drivers: clk: zynqmp: Allow zero divisor value Zero divider is valid and default for some of ZynqMP clocks. Allow zero divisor when CLK_DIVIDER_ALLOW_ZERO for the clock is set. Signed-off-by: Rajan Vaja Signed-off-by: Jolly Shah Signed-off-by: Stephen Boyd commit ecce39ec10937fb0d9f34ab43c75482d6c243292 Author: Guillaume Nault Date: Thu Apr 11 16:45:57 2019 +0200 netns: read NETNSA_NSID as s32 attribute in rtnl_net_getid() NETNSA_NSID is signed. Use nla_get_s32() to avoid confusion. Signed-off-by: Guillaume Nault Acked-by: Nicolas Dichtel Signed-off-by: David S. Miller commit aefa95bacfbe65c3abcd8832575af023bc21cce8 Author: Ville Syrjälä Date: Tue Mar 26 16:49:03 2019 +0200 drm/i915: Clean up DSC vs. not bpp handling No point in duplicating all this code when we can just use a variable to hold the output bpp (the only thing that differs between the two branches). Cc: Anusha Srivatsa Cc: Manasi Navare Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190326144903.6617-2-ville.syrjala@linux.intel.com Reviewed-by: Manasi Navare commit 4e2056e05e6eb646d37e310c11f6ac97a266b355 Author: Ville Syrjälä Date: Tue Mar 26 16:25:56 2019 +0200 drm/i915: Set DP min_bpp to 8*3 for non-RGB output formats 6bpc is only legal for RGB and RAW pixel encodings. For the rest the minimum is 8bpc. Set our lower limit accordingly. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190326142556.21176-6-ville.syrjala@linux.intel.com Reviewed-by: Dhinakaran Pandiyan commit f0654ba94e33699b295ce4f3dc73094db6209035 Author: Takashi Iwai Date: Thu Apr 11 19:58:32 2019 +0200 Revert "ALSA: seq: Protect in-kernel ioctl calls with mutex" This reverts commit feb689025fbb6f0aa6297d3ddf97de945ea4ad32. The fix attempt was incorrect, leading to the mutex deadlock through the close of OSS sequencer client. The proper fix needs more consideration, so let's revert it now. Fixes: feb689025fbb ("ALSA: seq: Protect in-kernel ioctl calls with mutex") Reported-by: syzbot+47ded6c0f23016cde310@syzkaller.appspotmail.com Signed-off-by: Takashi Iwai commit c2f0705f85fdf35a5670df9926f060a37be77439 Author: Stephen Boyd Date: Thu Apr 11 10:32:52 2019 -0700 clk: renesas: rcar-gen3: Remove unused variable This variable is no longer used and the compiler rightly complains that it should be removed. Drop it to silence the following: drivers/clk/renesas/rcar-gen3-cpg.c: In function 'cpg_sd_clk_register': drivers/clk/renesas/rcar-gen3-cpg.c:386:15: warning: unused variable 'i' [-Wunused-variable] unsigned int i; Cc: Geert Uytterhoeven Fixes: b953eaaeb58e ("clk: renesas: rcar-gen3: Fix cpg_sd_clock_round_rate() return value") Signed-off-by: Stephen Boyd commit 013b1857e8177c878d9e591483e50b74f8bc8797 Merge: 9e98c678c2d6 b953eaaeb58e Author: Stephen Boyd Date: Thu Apr 11 10:29:55 2019 -0700 Merge tag 'clk-renesas-for-v5.2-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into clk-renesas Pull renesas clk driver updates from Geert Uytterhoeven: - Add missing PCI USB clock on RZ/N1 - Add Z2 (Cortex-A53) clocks on R-Car E3 and RZ/G2E, incl. a new helper in * tag 'clk-renesas-for-v5.2-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers: clk: renesas: rcar-gen3: Fix cpg_sd_clock_round_rate() return value clk: renesas: r8a77980: Fix RPC-IF module clock's parent clk: renesas: rcar-gen3: Rename DRIF clocks clk: renesas: rcar-gen3: Correct parent clock of Audio-DMAC clk: renesas: rcar-gen3: Correct parent clock of SYS-DMAC clk: renesas: rcar-gen3: Correct parent clock of HS-USB clk: renesas: rcar-gen3: Correct parent clock of EHCI/OHCI clk: renesas: r8a774c0: Add Z2 clock clk: renesas: r8a77990: Add Z2 clock clk: renesas: rcar-gen3: Support Z and Z2 clocks with high frequency parents math64: New DIV64_U64_ROUND_CLOSEST helper clk: renesas: rcar-gen3: Remove CLK_TYPE_GEN3_Z2 clk: renesas: rcar-gen3: Parameterise Z and Z2 clock offset clk: renesas: rcar-gen3: Parameterise Z and Z2 clock fixed divisor clk: renesas: r9a06g032: Add missing PCI USB clock clk: renesas: r7s9210: Always use readl() clk: renesas: rcar-gen3: Pass name/offset to cpg_sd_clk_register() commit 261ac4ddfa9f128b41665abaf8e0e10a8f9e6b33 Author: YueHaibing Date: Thu Apr 11 19:25:12 2019 +0200 video: fbdev: atmel_lcdfb: remove set but not used variable 'pdata' Fixes gcc '-Wunused-but-set-variable' warning: drivers/video/fbdev/atmel_lcdfb.c: In function 'atmel_lcdfb_remove': drivers/video/fbdev/atmel_lcdfb.c:1255:28: warning: variable 'pdata' set but not used [-Wunused-but-set-variable] It's not used since commit 42110e91de7f ("video: atmel_lcdfb: introduce atmel_lcdfb_power_control") Signed-off-by: YueHaibing Acked-by: Nicolas Ferre Cc: Alexandre Belloni Cc: Ludovic Desroches Signed-off-by: Bartlomiej Zolnierkiewicz commit de110fddcb2251c2a3a0dbe32d3d60800e775a88 Author: YueHaibing Date: Thu Apr 11 19:25:12 2019 +0200 video: fbdev: mxsfb: remove set but not used variable 'line_count' Fixes gcc '-Wunused-but-set-variable' warning: drivers/video/fbdev/mxsfb.c: In function 'mxsfb_restore_mode': drivers/video/fbdev/mxsfb.c:633:11: warning: variable 'line_count' set but not used [-Wunused-but-set-variable] It's never used since introduction in commit f0a523b5e5e2 ("video: Add i.MX23/28 framebuffer driver") and can be removed. Signed-off-by: YueHaibing Cc: Shawn Guo Cc: Sascha Hauer Cc: Pengutronix Kernel Team Cc: Fabio Estevam Cc: NXP Linux Team Cc: Melchior Franz [b.zolnierkie: minor patch summary fixup] Signed-off-by: Bartlomiej Zolnierkiewicz commit 730dd516eda738dfad69910b56f24e97fa3bf234 Author: YueHaibing Date: Thu Apr 11 19:25:12 2019 +0200 video: fbdev: pvr2fb: remove set but not used variable 'size' Fixes gcc '-Wunused-but-set-variable' warning: drivers/video/fbdev/pvr2fb.c: In function 'pvr2fb_init': drivers/video/fbdev/pvr2fb.c:1074:6: warning: variable 'size' set but not used [-Wunused-but-set-variable] It's not used since commit 9cd1c6743454 ("pvr2fb: Fix oops when pseudo_palette is written") Signed-off-by: YueHaibing Cc: Andrew Morton Cc: Stephen Rothwell Cc: Kees Cook Cc: Ira Weiny [b.zolnierkie: minor patch summary fixup] Signed-off-by: Bartlomiej Zolnierkiewicz commit 8c40292be9169a9cbe19aadd1a6fc60cbd1af82f Author: Jiufei Xue Date: Thu Apr 11 19:25:12 2019 +0200 fbdev: fix WARNING in __alloc_pages_nodemask bug Syzkaller hit 'WARNING in __alloc_pages_nodemask' bug. WARNING: CPU: 1 PID: 1473 at mm/page_alloc.c:4377 __alloc_pages_nodemask+0x4da/0x2130 Kernel panic - not syncing: panic_on_warn set ... Call Trace: alloc_pages_current+0xb1/0x1e0 kmalloc_order+0x1f/0x60 kmalloc_order_trace+0x1d/0x120 fb_alloc_cmap_gfp+0x85/0x2b0 fb_set_user_cmap+0xff/0x370 do_fb_ioctl+0x949/0xa20 fb_ioctl+0xdd/0x120 do_vfs_ioctl+0x186/0x1070 ksys_ioctl+0x89/0xa0 __x64_sys_ioctl+0x74/0xb0 do_syscall_64+0xc8/0x550 entry_SYSCALL_64_after_hwframe+0x49/0xbe This is a warning about order >= MAX_ORDER and the order is from userspace ioctl. Add flag __NOWARN to silence this warning. Signed-off-by: Jiufei Xue Signed-off-by: Bartlomiej Zolnierkiewicz commit a6fdbd551573d9e303823c93075c0f0edff8d98e Author: Linus Walleij Date: Thu Apr 11 19:25:12 2019 +0200 video: amba-clcd: Decomission Versatile and Nomadik These board families are now handled in the DRM subsystem where we can have reusable panel drivers and some other stuff. The PL111 there is now the driver used in the defconfig for Versatile and Nomadik so no need to keep this code around. There are a few minor machines in arch/arm/ such as mach-netx still using the old driver, so we need to keep the core fbdev driver around for some time. Signed-off-by: Linus Walleij Cc: Russell King Signed-off-by: Bartlomiej Zolnierkiewicz commit 691efbedc60d2a7364a90e38882fc762f06f52c4 Author: Masahiro Yamada Date: Thu Apr 11 18:30:15 2019 +0900 arm64: vdso: use $(LD) instead of $(CC) to link VDSO We use $(LD) to link vmlinux, modules, decompressors, etc. VDSO is the only exceptional case where $(CC) is used as the linker driver, but I do not know why we need to do so. VDSO uses a special linker script, and does not link standard libraries at all. I changed the Makefile to use $(LD) rather than $(CC). I tested this, and VDSO worked for me. Users will be able to use their favorite linker (e.g. lld instead of of bfd) by passing LD= from the command line. My plan is to rewrite all VDSO Makefiles to use $(LD), then delete cc-ldoption. Signed-off-by: Masahiro Yamada Signed-off-by: Will Deacon commit 3d659e7d6513890eb137e7056635004b8b885ce5 Author: Raphael Gault Date: Thu Apr 11 17:16:46 2019 +0100 arm64: perf_event: Remove wrongfully used inline The functions armv8pmu_read_counter() and armv8pmu_write_counter() are `static inline` while they are only referenced when assigned to a function pointer field in a `struct arm_pmu` instance. The inline keyword is thus counter intuitive and shouldn't be used. Acked-by: Mark Rutland Signed-off-by: Raphael Gault Signed-off-by: Will Deacon commit a352a3b7b7920212ee4c45a41500c66826318e92 Author: Rik van Riel Date: Wed Apr 3 18:41:47 2019 +0200 x86/fpu: Prepare copy_fpstate_to_sigframe() for TIF_NEED_FPU_LOAD The FPU registers need only to be saved if TIF_NEED_FPU_LOAD is not set. Otherwise this has been already done and can be skipped. [ bp: Massage a bit. ] Signed-off-by: Rik van Riel Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: "Jason A. Donenfeld" Cc: kvm ML Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Rik van Riel Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-19-bigeasy@linutronix.de commit 69277c98f5eef0d9839699b7825923c3985f665f Author: Rik van Riel Date: Wed Apr 3 18:41:46 2019 +0200 x86/fpu: Always store the registers in copy_fpstate_to_sigframe() copy_fpstate_to_sigframe() stores the registers directly to user space. This is okay because the FPU registers are valid and saving them directly avoids saving them into kernel memory and making a copy. However, this cannot be done anymore if the FPU registers are going to be restored on the return to userland. It is possible that the FPU registers will be invalidated in the middle of the save operation and this should be done with disabled preemption / BH. Save the FPU registers to the task's FPU struct and copy them to the user memory later on. Signed-off-by: Rik van Riel Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: "Jason A. Donenfeld" Cc: kvm ML Cc: Paolo Bonzini Cc: Radim Krčmář Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-18-bigeasy@linutronix.de commit cb2b58391e40d0877b1f60023c8be72696ff8511 Author: Thierry Reding Date: Thu Apr 11 10:48:25 2019 +0200 memory: tegra: Properly spell "tegra" Rename all occurrences of "terga" to "tegra". It's an easy typo to make and a difficult one to spot. Reviewed-by: Dmitry Osipenko Signed-off-by: Thierry Reding commit f7ae70a5e347f7a314e266c66c67876adbab3245 Author: Christoph Hellwig Date: Wed Apr 10 18:14:08 2019 +0200 iommu/vt-d: Don't clear GFP_DMA and GFP_DMA32 flags We already do this in the caller. Signed-off-by: Christoph Hellwig Signed-off-by: Joerg Roedel commit 9cc0c2af8d0387f3f99572bd7fe15ab41eb89bb9 Author: Christoph Hellwig Date: Wed Apr 10 18:14:07 2019 +0200 iommu/vt-d: Use dma_direct for bypass devices The intel-iommu driver currently has a partial reimplementation of the direct mapping code for devices that use pass through mode. Replace that code with calls to the relevant dma_direct routines at the highest level. This means we have exactly the same behvior as the dma direct code itself, and can prepare for eventually only attaching the intel_iommu ops to devices that actually need dynamic iommu mappings. Signed-off-by: Christoph Hellwig Signed-off-by: Joerg Roedel commit 48b2c937ea37a3bece0094b46450ed5267525289 Author: Christoph Hellwig Date: Wed Apr 10 18:14:06 2019 +0200 iommu/vt-d: Clean up iommu_no_mapping Invert the return value to avoid double negatives, use a bool instead of int as the return value, and reduce some indentation after early returns. Signed-off-by: Christoph Hellwig Signed-off-by: Joerg Roedel commit 2fa717a0337e7acafda9283c938b635191b8036b Author: Steven Rostedt (VMware) Date: Thu Apr 11 11:46:13 2019 -0400 ftrace: Do not process STUB functions in ftrace_ops_list_func() The function_graph tracer has a stub function and its ops flag has the FTRACE_OPS_FL_STUB set. As the function graph does not use the ftrace_ops->func pointer but instead is called by a separate part of the ftrace trampoline. The function_graph tracer still requires to pass in a ftrace_ops that may also hold the hash of the functions to call. But there's no reason to test that hash in the function tracing portion. Instead of testing to see if we should call the stub function, just test if the ops has FTRACE_OPS_FL_STUB set, and just skip it. Signed-off-by: Steven Rostedt (VMware) commit 7a5dbf3ab2f04905cf8468c66fcdbfb643068bcb Author: Christoph Hellwig Date: Wed Apr 10 18:50:14 2019 +0200 iommu/amd: Remove the leftover of bypass support The AMD iommu dma_ops are only attached on a per-device basis when an actual translation is needed. Remove the leftover bypass support which in parts was already broken (e.g. it always returns 0 from ->map_sg). Use the opportunity to remove a few local variables and move assignments into the declaration line where they were previously separated by the bypass check. Signed-off-by: Christoph Hellwig Signed-off-by: Joerg Roedel commit 83d18bdff18f680ce2c0af10a663da19f7dede93 Author: Jean-Philippe Brucker Date: Wed Apr 10 16:21:08 2019 +0100 iommu/amd: Use pci_prg_resp_pasid_required() Commit e5567f5f6762 ("PCI/ATS: Add pci_prg_resp_pasid_required() interface.") added a common interface to check the PASID bit in the PRI capability. Use it in the AMD driver. Signed-off-by: Jean-Philippe Brucker Signed-off-by: Joerg Roedel commit 0e8000f8f616df653d0d7fcc43fafae7e5b07c0b Author: Lu Baolu Date: Mon Mar 25 09:30:33 2019 +0800 iommu/vt-d: Return ID associated with an auxiliary domain This adds support to return the default pasid associated with an auxiliary domain. The PCI device which is bound with this domain should use this value as the pasid for all DMA requests of the subset of device which is isolated and protected with this domain. Cc: Ashok Raj Cc: Jacob Pan Cc: Kevin Tian Signed-off-by: Sanjay Kumar Signed-off-by: Liu Yi L Signed-off-by: Lu Baolu Signed-off-by: Joerg Roedel commit 67b8e02b5e76159a4f94f85bee370af1d9f442f9 Author: Lu Baolu Date: Mon Mar 25 09:30:32 2019 +0800 iommu/vt-d: Aux-domain specific domain attach/detach When multiple domains per device has been enabled by the device driver, the device will tag the default PASID for the domain to all DMA traffics out of the subset of this device; and the IOMMU should translate the DMA requests in PASID granularity. This adds the intel_iommu_aux_attach/detach_device() ops to support managing PASID granular translation structures when the device driver has enabled multiple domains per device. Cc: Ashok Raj Cc: Jacob Pan Cc: Kevin Tian Signed-off-by: Sanjay Kumar Signed-off-by: Liu Yi L Signed-off-by: Lu Baolu Signed-off-by: Joerg Roedel commit 8cc3759a6c4931fca2ad9c1b0ead24dc0c30041c Author: Lu Baolu Date: Mon Mar 25 09:30:31 2019 +0800 iommu/vt-d: Move common code out of iommu_attch_device() This part of code could be used by both normal and aux domain specific attach entries. Hence move them into a common function to avoid duplication. Cc: Ashok Raj Cc: Jacob Pan Cc: Kevin Tian Signed-off-by: Lu Baolu Signed-off-by: Joerg Roedel commit 95587a75de179da35aea03735843be8278cf1857 Author: Lu Baolu Date: Mon Mar 25 09:30:30 2019 +0800 iommu/vt-d: Add per-device IOMMU feature ops entries This adds the iommu ops entries for aux-domain per-device feature query and enable/disable. Cc: Ashok Raj Cc: Jacob Pan Cc: Kevin Tian Signed-off-by: Sanjay Kumar Signed-off-by: Liu Yi L Signed-off-by: Lu Baolu Signed-off-by: Joerg Roedel commit d7cbc0f3220fabbdfa9b3aa79275baa5b16fef5d Author: Lu Baolu Date: Mon Mar 25 09:30:29 2019 +0800 iommu/vt-d: Make intel_iommu_enable_pasid() more generic This moves intel_iommu_enable_pasid() out of the scope of CONFIG_INTEL_IOMMU_SVM with more and more features requiring pasid function. Cc: Ashok Raj Cc: Jacob Pan Cc: Kevin Tian Signed-off-by: Lu Baolu Signed-off-by: Joerg Roedel commit 2b899390fdc8b8bdb95ce24269a799194b303388 Merge: 5aba6c47401d 26b25a2b98e4 Author: Joerg Roedel Date: Thu Apr 11 17:15:35 2019 +0200 Merge branch 'api-features' into x86/vt-d commit 26b25a2b98e45aeb40eedcedc586ad5034cbd984 Author: Jean-Philippe Brucker Date: Wed Apr 10 16:15:16 2019 +0100 iommu: Bind process address spaces to devices Add bind() and unbind() operations to the IOMMU API. iommu_sva_bind_device() binds a device to an mm, and returns a handle to the bond, which is released by calling iommu_sva_unbind_device(). Each mm bound to devices gets a PASID (by convention, a 20-bit system-wide ID representing the address space), which can be retrieved with iommu_sva_get_pasid(). When programming DMA addresses, device drivers include this PASID in a device-specific manner, to let the device access the given address space. Since the process memory may be paged out, device and IOMMU must support I/O page faults (e.g. PCI PRI). Using iommu_sva_set_ops(), device drivers provide an mm_exit() callback that is called by the IOMMU driver if the process exits before the device driver called unbind(). In mm_exit(), device driver should disable DMA from the given context, so that the core IOMMU can reallocate the PASID. Whether the process exited or nor, the device driver should always release the handle with unbind(). To use these functions, device driver must first enable the IOMMU_DEV_FEAT_SVA device feature with iommu_dev_enable_feature(). Signed-off-by: Jean-Philippe Brucker Signed-off-by: Joerg Roedel commit a3a195929d40b38833ffd0f82b2db2cc898641eb Author: Lu Baolu Date: Mon Mar 25 09:30:28 2019 +0800 iommu: Add APIs for multiple domains per device Sharing a physical PCI device in a finer-granularity way is becoming a consensus in the industry. IOMMU vendors are also engaging efforts to support such sharing as well as possible. Among the efforts, the capability of support finer-granularity DMA isolation is a common requirement due to the security consideration. With finer-granularity DMA isolation, subsets of a PCI function can be isolated from each others by the IOMMU. As a result, there is a request in software to attach multiple domains to a physical PCI device. One example of such use model is the Intel Scalable IOV [1] [2]. The Intel vt-d 3.0 spec [3] introduces the scalable mode which enables PASID granularity DMA isolation. This adds the APIs to support multiple domains per device. In order to ease the discussions, we call it 'a domain in auxiliary mode' or simply 'auxiliary domain' when multiple domains are attached to a physical device. The APIs include: * iommu_dev_has_feature(dev, IOMMU_DEV_FEAT_AUX) - Detect both IOMMU and PCI endpoint devices supporting the feature (aux-domain here) without the host driver dependency. * iommu_dev_feature_enabled(dev, IOMMU_DEV_FEAT_AUX) - Check the enabling status of the feature (aux-domain here). The aux-domain interfaces are available only if this returns true. * iommu_dev_enable/disable_feature(dev, IOMMU_DEV_FEAT_AUX) - Enable/disable device specific aux-domain feature. * iommu_aux_attach_device(domain, dev) - Attaches @domain to @dev in the auxiliary mode. Multiple domains could be attached to a single device in the auxiliary mode with each domain representing an isolated address space for an assignable subset of the device. * iommu_aux_detach_device(domain, dev) - Detach @domain which has been attached to @dev in the auxiliary mode. * iommu_aux_get_pasid(domain, dev) - Return ID used for finer-granularity DMA translation. For the Intel Scalable IOV usage model, this will be a PASID. The device which supports Scalable IOV needs to write this ID to the device register so that DMA requests could be tagged with a right PASID prefix. This has been updated with the latest proposal from Joerg posted here [5]. Many people involved in discussions of this design. Kevin Tian Liu Yi L Ashok Raj Sanjay Kumar Jacob Pan Alex Williamson Jean-Philippe Brucker Joerg Roedel and some discussions can be found here [4] [5]. [1] https://software.intel.com/en-us/download/intel-scalable-io-virtualization-technical-specification [2] https://schd.ws/hosted_files/lc32018/00/LC3-SIOV-final.pdf [3] https://software.intel.com/en-us/download/intel-virtualization-technology-for-directed-io-architecture-specification [4] https://lkml.org/lkml/2018/7/26/4 [5] https://www.spinics.net/lists/iommu/msg31874.html Cc: Ashok Raj Cc: Jacob Pan Cc: Kevin Tian Cc: Liu Yi L Suggested-by: Kevin Tian Suggested-by: Jean-Philippe Brucker Suggested-by: Joerg Roedel Signed-off-by: Lu Baolu Reviewed-by: Jean-Philippe Brucker Signed-off-by: Joerg Roedel commit beb941b970fb129dae206050593d3e768859b146 Author: Gerd Hoffmann Date: Wed Apr 10 13:42:25 2019 +0200 virtio-gpu api: comment feature flags Add comments to the existing feature flags, documenting which commands belong to them. Signed-off-by: Gerd Hoffmann Reviewed-by: Gurchetan Singh Link: http://patchwork.freedesktop.org/patch/msgid/20190410114227.25846-2-kraxel@redhat.com commit 79b979735e85ec62aeaf007287a871f0b42b027e Author: Gerd Hoffmann Date: Thu Apr 11 06:49:32 2019 +0200 drm: fix drm_fb_xrgb8888_to_rgb888_dstclip() Oops, the __iomem annotation was added to the header file only. Add it to the implementation (and documentation) too. Fixes: 5c5373b51bec ("drm: switch drm_fb_xrgb8888_to_rgb888_dstclip to accept __iomem dst") Signed-off-by: Gerd Hoffmann Reviewed-by: Noralf Trønnes Link: http://patchwork.freedesktop.org/patch/msgid/20190411044932.13247-1-kraxel@redhat.com commit ac2ae48efad76e524cb77934ae5c5649520f0037 Author: Alexandre Belloni Date: Tue Apr 9 21:59:45 2019 +0200 rtc: ab3100: convert to SPDX identifier Use SPDX-License-Identifier instead of the custom license line. Reviewed-by: Linus Walleij Signed-off-by: Alexandre Belloni commit 0dca027bb859e42feac3a196a14c81fee34d9824 Author: Alexandre Belloni Date: Tue Apr 9 21:59:44 2019 +0200 rtc: ab3100: use .set_time Use .set_time instead of the deprecated .set_mmss64. Reviewed-by: Linus Walleij Signed-off-by: Alexandre Belloni commit 386b5941a0dd18dda24b459a421ddc51d5fb0371 Author: Alexandre Belloni Date: Tue Apr 9 21:59:43 2019 +0200 rtc: ab3100: set range The ab3100 has a 48bit counter running at 65536 Hz (despite one of the comment). The max value is then (2^48 - 1)/2^16 == 2^32 - 1. Reviewed-by: Linus Walleij Signed-off-by: Alexandre Belloni commit 56573ca7ee77b37d4995ab3382e891aaec982125 Author: Alexandre Belloni Date: Wed Apr 10 22:56:04 2019 +0200 rtc: pcf85363: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Signed-off-by: Alexandre Belloni commit b21a841c4c1a6b849e2c02e734b8a325a5a1db67 Author: Alexandre Belloni Date: Wed Apr 10 22:56:03 2019 +0200 rtc: pcf85363: remove useless forward declaration It is not necessary to forward declare pcf85363_driver as it is not used before being declared. Signed-off-by: Alexandre Belloni commit 176a5ee32c250918e8e2ad5e0ce0f35eaf3479ee Author: Alexandre Belloni Date: Wed Apr 10 22:56:02 2019 +0200 rtc: pcf85363: remove bogus i2c functionality check regmap is abstracting the i2c functionalities the best it can, there is no need to check. Signed-off-by: Alexandre Belloni commit c0ec8319cc41c69dfb34493de4fb712eaebdf806 Author: Alexandre Belloni Date: Wed Apr 10 22:56:01 2019 +0200 rtc: pcf85363: set range This is a standard BCD RTC that will fail in 2100. Signed-off-by: Alexandre Belloni commit 8f7b1d718a43d4c407facffb48d8bf63de12fe40 Author: Alexandre Belloni Date: Wed Apr 10 22:56:00 2019 +0200 rtc: pcf85363: remove unused struct pcf85363 member pcf85363->dev is unused, remove it. Signed-off-by: Alexandre Belloni commit 838d2d9165992708a84d5a1ac5173886815addbb Author: Alexandre Belloni Date: Sun Apr 7 23:12:23 2019 +0200 rtc: stmp3xxx: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Signed-off-by: Alexandre Belloni commit 622eb9b487d3140a01c49d40804faee825bd8d87 Author: Alexandre Belloni Date: Sun Apr 7 23:12:22 2019 +0200 rtc: stmp3xxx: use .set_time Use .set_time instead of the deprecated .set_mmss. Signed-off-by: Alexandre Belloni commit a659a08180f46cd17a4f838a8f47d5a41f95ffcc Author: Alexandre Belloni Date: Sun Apr 7 23:12:21 2019 +0200 rtc: stmp3xxx: switch to rtc_time64_to_tm/rtc_tm_to_time64 Call the 64bit versions of rtc_tm time conversion now that the range is enforced by the core. Signed-off-by: Alexandre Belloni commit 0d823abd7c04fb4d2ce02ba0c9f525296c530671 Author: Alexandre Belloni Date: Sun Apr 7 23:12:20 2019 +0200 rtc: stmp3xxx: set range From the datasheet: "HW_RTC_SECONDS provides access to the 32-bit real-time seconds counter." Signed-off-by: Alexandre Belloni commit 383c252545edcc708128e2028a2318b05c45ede4 Author: Sebastian Andrzej Siewior Date: Wed Apr 3 18:41:45 2019 +0200 x86/entry: Add TIF_NEED_FPU_LOAD Add TIF_NEED_FPU_LOAD. This flag is used for loading the FPU registers before returning to userland. It must not be set on systems without a FPU. If this flag is cleared, the CPU's FPU registers hold the latest, up-to-date content of the current task's (current()) FPU registers. The in-memory copy (union fpregs_state) is not valid. If this flag is set, then all of CPU's FPU registers may hold a random value (except for PKRU) and it is required to load the content of the FPU registers on return to userland. Introduce it now as a preparatory change before adding the main feature. Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: Aubrey Li Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: "Jason A. Donenfeld" Cc: Konrad Rzeszutek Wilk Cc: kvm ML Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Rik van Riel Cc: Tim Chen Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-17-bigeasy@linutronix.de commit f47056e880574c923165577b77982ffe3395c510 Author: Noralf Trønnes Date: Wed Apr 10 14:43:45 2019 +0200 drm/tinydrm: Fix fbdev pixel format Due to copy/paste error, the fbdev format was changed to 32bpp = XRGB8888 which is an emulated format for the RGB565 drivers. Revert to to using the fallback which is dev->mode_config.preferred_depth for the drivers that set it or 32bpp for those that don't (repaper, st7586). Fixes: 3eba3922819f ("drm/tinydrm: Drop using tinydrm_device") Signed-off-by: Noralf Trønnes Reviewed-by: Neil Armstrong Link: https://patchwork.freedesktop.org/patch/msgid/20190410124345.25945-1-noralf@tronnes.org commit 09ded8af57bcef7287b8242087d3e7556380de62 Author: Noralf Trønnes Date: Sun Apr 7 18:52:34 2019 +0200 drm/i915/fbdev: Move intel_fb_initial_config() to fbdev helper It is generic code and having it in the helper will let other drivers benefit from it. One change was necessary assuming this to be true: INTEL_INFO(dev_priv)->num_pipes == dev->mode_config.num_crtc Suggested-by: Daniel Vetter Cc: Jani Nikula Cc: Joonas Lahtinen Cc: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org Signed-off-by: Noralf Trønnes Reviewed-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190407165243.54043-4-noralf@tronnes.org commit e33898a20744de9c98cbb7d38506734ece824cb4 Author: Noralf Trønnes Date: Wed Apr 3 14:56:58 2019 +0200 drm/client: Rename drm_client_add() to drm_client_register() This is done to stay consistent with our naming scheme of _register() = others can start calling us from any thread. Suggested-by: Daniel Vetter Signed-off-by: Noralf Trønnes Reviewed-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190403125658.32389-1-noralf@tronnes.org commit 83da1bed86cdfe3abb2a33c36a2a5aaf5f390ef6 Author: Wiebe, Wladislav (Nokia - DE/Ulm) Date: Thu Apr 11 09:25:08 2019 +0000 modpost: make KBUILD_MODPOST_WARN also configurable for external modules Commit ea837f1c0503 ("kbuild: make modpost processing configurable") was intended to give KBUILD_MODPOST_WARN flexibility to be configurable. Right now KBUILD_MODPOST_WARN gets just ignored when KBUILD_EXTMOD is set which happens per default when building modules out of the tree. This change gives the opportunity to define module build behaving also in case of out of tree builds and default will become exit on error. Errors which can be detected by the build should be trapped out of the box there, unless somebody wants to notice broken stuff later at runtime. As this patch changes the default behaving from warning to error, users can consider to fix it for external module builds by: - providing module symbol table via KBUILD_EXTRA_SYMBOLS for modules which are dependent - OR getting old behaving back by passing KBUILD_MODPOST_WARN to the build Signed-off-by: Wladislav Wiebe Signed-off-by: Masahiro Yamada commit 0cecca9d03c964abbd2b7927d0670eb70db4ebf2 Author: Rik van Riel Date: Wed Apr 3 18:41:44 2019 +0200 x86/fpu: Eager switch PKRU state While most of a task's FPU state is only needed in user space, the protection keys need to be in place immediately after a context switch. The reason is that any access to userspace memory while running in kernel mode also needs to abide by the memory permissions specified in the protection keys. The "eager switch" is a preparation for loading the FPU state on return to userland. Instead of decoupling PKRU state from xstate, update PKRU within xstate on write operations by the kernel. For user tasks the PKRU should be always read from the xsave area and it should not change anything because the PKRU value was loaded as part of FPU restore. For kernel threads the default "init_pkru_value" will be written. Before this commit, the kernel thread would end up with a random value which it inherited from the previous user task. [ bigeasy: save pkru to xstate, no cache, don't use __raw_xsave_addr() ] [ bp: update commit message, sort headers properly in asm/fpu/xstate.h ] Signed-off-by: Rik van Riel Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andi Kleen Cc: Andy Lutomirski Cc: Aubrey Li Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: "Jason A. Donenfeld" Cc: Joerg Roedel Cc: Juergen Gross Cc: "Kirill A. Shutemov" Cc: kvm ML Cc: Michal Hocko Cc: Paolo Bonzini Cc: Peter Zijlstra Cc: Radim Krčmář Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-16-bigeasy@linutronix.de commit d28ca864c493637f3c957f4ed9348a94fca6de60 Author: Nikolai Kostrigin Date: Mon Apr 8 13:37:25 2019 +0300 PCI: Mark AMD Stoney Radeon R7 GPU ATS as broken ATS is broken on the Radeon R7 GPU (at least for Stoney Ridge based laptop) and causes IOMMU stalls and system failure. Disable ATS on these devices to make them usable again with IOMMU enabled. Thanks to Joerg Roedel for help. [bhelgaas: In the email thread mentioned below, Alex suspects the real problem is in sbios or iommu, so it may affect only certain systems, and it may affect other devices in those systems as well. However, per Joerg we lack the ability to debug further, so this quirk is the best we can do for now.] Link: https://bugzilla.kernel.org/show_bug.cgi?id=194521 Link: https://lore.kernel.org/lkml/20190408103725.30426-1-nickel@altlinux.org Fixes: 9b44b0b09dec ("PCI: Mark AMD Stoney GPU ATS as broken") Signed-off-by: Nikolai Kostrigin Signed-off-by: Bjorn Helgaas Acked-by: Joerg Roedel CC: stable@vger.kernel.org commit 14bd9a607f9082e7b5690c27e69072f2aeae0de4 Author: Jinyu Qi Date: Wed Apr 3 16:35:21 2019 +0800 iommu/iova: Separate atomic variables to improve performance In struct iova_domain, there are three atomic variables, the former two are about TLB flush counters which use atomic_add operation, anoter is used to flush timer that use cmpxhg operation. These variables are in the same cache line, so it will cause some performance loss under the condition that many cores call queue_iova function, Let's isolate the two type atomic variables to different cache line to reduce cache line conflict. Cc: Joerg Roedel Signed-off-by: Jinyu Qi Signed-off-by: Joerg Roedel commit 855811eaeb83a380e30badba7226b02772922de9 Author: Abel Vesa Date: Mon Apr 8 18:38:31 2019 +0000 pinctrl: imx8mq: Add suspend/resume ops To support pinctl hog restore after LPSR resume back, add the generic suspend/resume in pinctrl-imx along with the generic pm ops to be used by platform specific drivers. Then make use of the newly added ops in i.MX8MQ platform specific driver. Signed-off-by: Robin Gong Signed-off-by: Abel Vesa Acked-by: Dong Aisheng Signed-off-by: Linus Walleij commit 21989587f6d0c900195ac818cc55b9a20f960904 Author: Linus Walleij Date: Tue Apr 9 09:04:21 2019 +0200 pinctrl: artpec6: Drop unused function and rename The pincontrol callbacks used to be symmetric: enable/disable. However for a while we only have one function that set the muxing, no disabling. Drop the unused disable function, and rename the *enable() function to *set(). Reported-by: Nathan Chancellor Cc: YueHaibing Reviewed-by: Nathan Chancellor Acked-by: Jesper Nilsson Signed-off-by: Linus Walleij commit 0556cbdc2fbcb3068e5b924a8b3d5386ae0dd27d Author: Sebastian Andrzej Siewior Date: Wed Apr 3 18:41:43 2019 +0200 x86/pkeys: Don't check if PKRU is zero before writing it write_pkru() checks if the current value is the same as the expected value. So instead of just checking if the current and new value is zero (and skip the write in such a case) we can benefit from that. Remove the zero check of PKRU, __write_pkru() provides such a check now. Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: "Jason A. Donenfeld" Cc: kvm ML Cc: Paolo Bonzini Cc: Peter Zijlstra Cc: Radim Krčmář Cc: Rik van Riel Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-15-bigeasy@linutronix.de commit 577ff465f5a6a5a0866d75a033844810baca20a0 Author: Sebastian Andrzej Siewior Date: Wed Apr 3 18:41:42 2019 +0200 x86/fpu: Only write PKRU if it is different from current According to Dave Hansen, WRPKRU is more expensive than RDPKRU. It has a higher cycle cost and it's also practically a (light) speculation barrier. As an optimisation read the current PKRU value and only write the new one if it is different. Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: "Jason A. Donenfeld" Cc: Juergen Gross Cc: kvm ML Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Rik van Riel Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-14-bigeasy@linutronix.de commit c806e88734b9e9aea260bf2261c129aa23968fca Author: Sebastian Andrzej Siewior Date: Wed Apr 3 18:41:41 2019 +0200 x86/pkeys: Provide *pkru() helpers Dave Hansen asked for __read_pkru() and __write_pkru() to be symmetrical. As part of the series __write_pkru() will read back the value and only write it if it is different. In order to make both functions symmetrical, move the function containing only the opcode asm into a function called like the instruction itself. __write_pkru() will just invoke wrpkru() but in a follow-up patch will also read back the value. [ bp: Convert asm opcode wrapper names to rd/wrpkru(). ] Suggested-by: Dave Hansen Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andi Kleen Cc: Andy Lutomirski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: "Jason A. Donenfeld" Cc: Joerg Roedel Cc: Juergen Gross Cc: "Kirill A. Shutemov" Cc: kvm ML Cc: Michal Hocko Cc: Paolo Bonzini Cc: "Radim Krčmář" Cc: Rik van Riel Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-13-bigeasy@linutronix.de commit 12c7a4fc47e4720e96205030b1f0dd6bd2746a3f Author: Alexandre Belloni Date: Tue Apr 9 14:35:46 2019 +0200 gpio: pca953x: add support for pca6416 The NXP PCA6416, documented at [1], is a variant of the PCA GPIO expander with 16 GPIOs, and supporting an interrupt. [1] https://www.nxp.com/docs/en/data-sheet/PCA6416A.pdf Signed-off-by: Alexandre Belloni Signed-off-by: Linus Walleij commit 15e384c446d93d00ab96d34bf2a5c308e3b3d16b Author: Alexandre Belloni Date: Tue Apr 9 14:35:45 2019 +0200 dt-bindings: gpio: pca953x: document the nxp,pca6416 The NXP PCA6416 is a variant of the PCA GPIO expander, with 16 GPIOs. Signed-off-by: Alexandre Belloni Signed-off-by: Linus Walleij commit 01769c4700d8ca156b4a331b16be9eda575dfde9 Author: Alexandre Belloni Date: Tue Apr 9 12:25:17 2019 +0200 gpio: pca953x: add pcal6416 to the of_device_id table When adding support for the pcal6416, the of_device_id table was left out, add the proper entry. Fixes: aac1e3c9680b ("gpio: pca953x: add support for pcal6416 type") Signed-off-by: Alexandre Belloni Signed-off-by: Linus Walleij commit 044e499acd1587e01bdd3434b3e5a1869ea26fdd Author: Russell King Date: Wed Apr 10 12:51:13 2019 -0700 gpio: gpio-omap: Remove conditional pm_runtime handling for GPIO interrupts Commit b764a5863fd8 ("gpio: omap: Remove custom PM calls and use cpu_pm instead") moved interrupt using GPIO banks to idle with cpu_pm in order to drop the use of pm_runtime_irq_safe() in a later patch. The GPIO banks with no interrupts claimed are still being idled based on PM runtime calls. However this caused a regression for am437x suspend for rtc+ddr idle mode where the device cannot enter idle state as reported by Keerthy . To fix the issue, we must not fail the pm_runtime callbacks. For GPIO interrupts, we already have irq_chip_pm_get increment the PM runtime use count as pointed out by Grygorii Strashko . So all we need to do is remove the conditional handling in the runtime_suspend and resume functions and let the CPU PM notifier idle the GPIO banks. Cc: Aaro Koskinen Cc: Grygorii Strashko Cc: Keerthy Cc: Peter Ujfalusi Cc: Tero Kristo Fixes: b764a5863fd8 ("gpio: omap: Remove custom PM calls and use cpu_pm instead") Reported-by: Keerthy Signed-off-by: Russell King [tony@atomide.com: updated patch description, dropped runtime count changes] Signed-off-by: Tony Lindgren Tested-by: Keerthy Reviewed-by: Keerthy Signed-off-by: Linus Walleij commit e6818d29ea1591b3e37d9cf635dc9dbca1a398ae Author: Russell King Date: Mon Apr 8 12:46:53 2019 -0700 gpio: gpio-omap: configure edge detection for level IRQs for idle wakeup The GPIO block can enter idle independently of the CPU power management calls via smart-idle. When the GPIO block enters idle, level detection stops working due to clocks being shut off, and an alternative form of edge detection is used. However, this needs the edge detection registers set to mark the appropriate edges. Arrange to configure the edge detection enables along with the level detection to ensure that any transition to active interrupt state that occurs while the block is idle is detected as a wake-up event. Since we enable the edge detection when configuring the IRQ, both omap2_gpio_enable_level_quirk() nor omap2_gpio_disable_level_quirk() become redundant, which also means OMAP_GPIO_QUIRK_IDLE_REMOVE_TRIGGER can be removed. This can be now done without regressions as patch "gpio: gpio-omap: fix level interrupt idling" allows level interrupts to idle on omap4 without a workaround. Cc: Aaro Koskinen Cc: Grygorii Strashko Cc: Keerthy Cc: Peter Ujfalusi Cc: Tero Kristo Signed-off-by: Russell King [tony@atomide.com: update description for the fix dependency] Signed-off-by: Tony Lindgren Signed-off-by: Linus Walleij commit 43d957b1334670a9b232f9a4a027d51e05155c83 Author: Dmitry Osipenko Date: Thu Mar 7 01:50:09 2019 +0300 iommu/tegra-smmu: Respect IOMMU API read-write protections Set PTE read/write attributes accordingly to the the protections requested by IOMMU API. Signed-off-by: Dmitry Osipenko Acked-by: Thierry Reding Signed-off-by: Joerg Roedel commit 4f97031ff8605c1e8388a650bc5708ceda4357d5 Author: Dmitry Osipenko Date: Thu Mar 7 01:50:08 2019 +0300 iommu/tegra-smmu: Properly release domain resources Release all memory allocations associated with a released domain and emit warning if domain is in-use at the time of destruction. Signed-off-by: Dmitry Osipenko Acked-by: Thierry Reding Signed-off-by: Joerg Roedel commit 43a0541e312f7136e081e6bf58f6c8a2e9672688 Author: Dmitry Osipenko Date: Thu Mar 7 01:50:07 2019 +0300 iommu/tegra-smmu: Fix invalid ASID bits on Tegra30/114 Both Tegra30 and Tegra114 have 4 ASID's and the corresponding bitfield of the TLB_FLUSH register differs from later Tegra generations that have 128 ASID's. In a result the PTE's are now flushed correctly from TLB and this fixes problems with graphics (randomly failing tests) on Tegra30. Cc: stable Signed-off-by: Dmitry Osipenko Acked-by: Thierry Reding Signed-off-by: Joerg Roedel commit 40a0dd4253c03e7ec21dd38f25901486d34b01c7 Author: Katsuhiro Suzuki Date: Sun Apr 7 00:35:57 2019 +0900 arm64: dts: rockchip: fix cts, rts pin assign of UART3 for rk3399 This patch fixes pin assign of cts and rts signal of UART3. Currently GPIO3_C2 and C3 pins are assigned but TRM says that GPIO3_C0 and C1 are correct. Refer: RK3399 TRM v1.4 - Table 19-1 UART Interface Description Signed-off-by: Katsuhiro Suzuki Signed-off-by: Heiko Stuebner commit 07f08d9cee459b4d91d79becb7628c7ddeea0a59 Author: Heiko Stuebner Date: Tue Apr 2 14:08:57 2019 +0200 ARM: dts: rockchip: bulk convert gpios to their constant counterparts Rockchip SoCs use 2 different numbering schemes. Where the gpio- controllers just count 0-31 for their 32 gpios, the underlying iomux controller splits these into 4 separate entities A-D. Device-schematics always use these iomux-values to identify pins, so to make mapping schematics to devicetree easier Andy Yan introduced named constants for the pins but so far we only used them on new additions. Using a sed-script created by Emil Renner Berthing bulk-convert the remaining raw gpio numbers into their descriptive counterparts and also gets rid of the unhelpful RK_FUNC_x -> x and RK_GPIOx -> x mappings: /rockchip,pins *=/bcheck b # to end of script :append-next-line N :check /^[^;]*$/bappend-next-line s/ Signed-off-by: Heiko Stuebner commit d64420e816059661e70db31d891f38e79f483080 Author: Heiko Stuebner Date: Tue Apr 2 13:56:24 2019 +0200 arm64: dts: rockchip: bulk convert gpios to their constant counterparts Rockchip SoCs use 2 different numbering schemes. Where the gpio- controllers just count 0-31 for their 32 gpios, the underlying iomux controller splits these into 4 separate entities A-D. Device-schematics always use these iomux-values to identify pins, so to make mapping schematics to devicetree easier Andy Yan introduced named constants for the pins but so far we only used them on new additions. Using a sed-script created by Emil Renner Berthing bulk-convert the remaining raw gpio numbers into their descriptive counterparts and also gets rid of the unhelpful RK_FUNC_x -> x and RK_GPIOx -> x mappings: /rockchip,pins *=/bcheck b # to end of script :append-next-line N :check /^[^;]*$/bappend-next-line s/ Signed-off-by: Heiko Stuebner Tested-by: Katsuhiro Suzuki Acked-by: Robin Murphy commit efd38668884f3ae0e7b65ba3936871ee84bd4114 Author: Leonidas P. Papadakos Date: Wed Apr 3 21:22:48 2019 +0300 arm64: dts: rockchip: enable display nodes on rk3328-roc-cc Enable necessary nodes to get output on the hdmi port of the board. This is a port of Heiko's patch for the rock64. Signed-off-by: Leonidas P. Papadakos Signed-off-by: Heiko Stuebner commit de674862f76d006c670308c46a010b3a09536fd3 Author: Leonidas P. Papadakos Date: Thu Apr 4 14:23:29 2019 +0300 arm64: dts: rockchip: eMMC additions for rk3328-roc-cc The eMMC 5.x that Libre Computer provide for their boards supports HS200 mode. The support is already included in the dts for their newest board: La Frite (AML-S805X-AC) dts: arch/arm64/boot/dts/amlogic/meson-gxl-s805x-libretech-ac.dts That same eMMC is supported in the ROC-RK3328-CC: https://www.loverpi.com/products/libre-computer-board-emmc-5-x-module This increases the speed of the eMMC significantly. Signed-off-by: Leonidas P. Papadakos [added supplies as suggested by Leonidas] Signed-off-by: Heiko Stuebner commit bbdc00a7de24cc90315b1775fb74841373fe12f7 Author: Douglas Anderson Date: Tue Apr 9 13:49:05 2019 -0700 soc: rockchip: Set the proper PWM for rk3288 The rk3288 SoC has two PWM implementations available, the "old" implementation and the "new" one. You can switch between the two of them by flipping a bit in the grf. The "old" implementation is the default at chip power up but isn't the one that's officially supposed to be used. ...and, in fact, the driver that gets selected in Linux using the rk3288 device tree only supports the "new" implementation. Long ago I tried to get a switch to the right IP block landed in the PWM driver (search for "rk3288: Switch to use the proper PWM IP") but that got rejected. In the mean time the grf has grown a full-fledged driver that already sets other random bits like this. That means we can now get the fix landed. For those wondering how things could have possibly worked for the last 4.5 years, folks have mostly been relying on the bootloader to set this bit. ...but occasionally folks have pointed back to my old patch series [1] in downstream kernels. [1] https://www.mail-archive.com/linux-kernel@vger.kernel.org/msg1391597.html Signed-off-by: Douglas Anderson Signed-off-by: Heiko Stuebner commit 280fa349757bb240c650882feee5a861150ccc2d Author: Matthias Kaehlcke Date: Tue Apr 9 16:14:05 2019 -0700 ARM: dts: rockchip: Add BT_EN to the power sequence for veyron Add GPIO D5 (BT_ENABLE_L) as reset-GPIO to the power sequence for the Bluetooth/WiFi module. On devices with a Broadcom module the signal needs to be asserted to use Bluetooth. Note that BT_ENABLE_L is a misnomer in the schematics, the signal actually is active-high. Signed-off-by: Matthias Kaehlcke Reviewed-by: Douglas Anderson Signed-off-by: Heiko Stuebner commit 913140e221567b3ecd21b4242257a7e3fa279026 Author: Arnd Bergmann Date: Mon Apr 8 23:26:18 2019 +0200 s390: zcrypt: initialize variables before_use The 'func_code' variable gets printed in debug statements without a prior initialization in multiple functions, as reported when building with clang: drivers/s390/crypto/zcrypt_api.c:659:6: warning: variable 'func_code' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] if (mex->outputdatalength < mex->inputdatalength) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/s390/crypto/zcrypt_api.c:725:29: note: uninitialized use occurs here trace_s390_zcrypt_rep(mex, func_code, rc, ^~~~~~~~~ drivers/s390/crypto/zcrypt_api.c:659:2: note: remove the 'if' if its condition is always false if (mex->outputdatalength < mex->inputdatalength) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/s390/crypto/zcrypt_api.c:654:24: note: initialize the variable 'func_code' to silence this warning unsigned int func_code; ^ Add initializations to all affected code paths to shut up the warning and make the warning output consistent. Signed-off-by: Arnd Bergmann Signed-off-by: Martin Schwidefsky commit 6e042492a272bdc507d37982b890dc5266d5bb01 Author: Arnd Bergmann Date: Mon Apr 8 23:26:23 2019 +0200 s390: avoid __builtin_return_address(n) on clang llvm on s390 has problems with __builtin_return_address(n), with n>0, this results in a somewhat cryptic error message: fatal error: error in backend: Unsupported stack frame traversal count To work around it, use the direct return address directly. This is probably not ideal here, but gets things to compile and should only lead to inferior reporting, not to misbehavior of the generated code. Link: https://bugs.llvm.org/show_bug.cgi?id=41424 Signed-off-by: Arnd Bergmann Signed-off-by: Martin Schwidefsky commit 475c8e9e89db2fcecf837ac41dcb6aed4ba72c61 Author: Joe Perches Date: Tue Apr 9 09:33:12 2019 -0700 s390: Convert IS_ENABLED uses to __is_defined IS_ENABLED should be reserved for CONFIG_ uses so convert the uses of IS_ENABLED with a #define to __is_defined. Signed-off-by: Joe Perches Signed-off-by: Martin Schwidefsky commit 9a0ceb9cfbee7da4a005135c620603ea837878a9 Author: Arnd Bergmann Date: Mon Apr 8 23:26:24 2019 +0200 s390: make chkbss work with clang llvm skips an empty .bss section entirely, which makes the check fail with an unexpected error: /tmp/binutils-multi-test/bin/s390x-linux-gnu-objdump: section '.bss' mentioned in a -j option, but not found in any input file error: arch/s390/boot/compressed/decompressor.o .bss section is not empty ../arch/s390/scripts/Makefile.chkbss:20: recipe for target 'arch/s390/boot/compressed/decompressor.o.chkbss' failed Change the check so we first see if a .bss section exists before trying to read its size. Signed-off-by: Arnd Bergmann Signed-off-by: Martin Schwidefsky commit 0a113efc3b48e9a8952e3c6e19dfdcc48b62226f Author: Arnd Bergmann Date: Mon Apr 8 23:26:22 2019 +0200 s390: make __load_psw_mask work with clang clang fails to use the %O and %R inline assembly modifiers the same way as gcc, leading to build failures with every use of __load_psw_mask(): /tmp/nmi-4a9f80.s: Assembler messages: /tmp/nmi-4a9f80.s:571: Error: junk at end of line: `+8(160(%r11))' /tmp/nmi-4a9f80.s:626: Error: junk at end of line: `+8(160(%r11))' Replace these with a more conventional way of passing the addresses that should work with both clang and gcc. Signed-off-by: Arnd Bergmann Signed-off-by: Martin Schwidefsky commit efb150df1de6462003890cbfea5fa02a28821530 Author: Arnd Bergmann Date: Mon Apr 8 23:26:21 2019 +0200 s390: syscall_wrapper: avoid clang warning Building system calls with clang results in a warning about an alias from a global function to a static one: ../fs/namei.c:3847:1: warning: unused function '__se_sys_mkdirat' [-Wunused-function] SYSCALL_DEFINE3(mkdirat, int, dfd, const char __user *, pathname, umode_t, mode) ^ ../include/linux/syscalls.h:219:36: note: expanded from macro 'SYSCALL_DEFINE3' #define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__) ^ ../include/linux/syscalls.h:228:2: note: expanded from macro 'SYSCALL_DEFINEx' __SYSCALL_DEFINEx(x, sname, __VA_ARGS__) ^ ../arch/s390/include/asm/syscall_wrapper.h:126:18: note: expanded from macro '__SYSCALL_DEFINEx' asmlinkage long __se_sys##name(__MAP(x,__SC_LONG,__VA_ARGS__)) \ ^ :31:1: note: expanded from here __se_sys_mkdirat ^ The only reference to the static __se_sys_mkdirat() here is the alias, but this only gets evaluated later. Making this function global as well avoids the warning. Signed-off-by: Arnd Bergmann Signed-off-by: Martin Schwidefsky commit 96ca7674ea66e9f0e2cb9f75588d4d16e5abb724 Author: Arnd Bergmann Date: Mon Apr 8 23:26:15 2019 +0200 s390: don't build vdso32 with clang clang does not support 31 bit object files on s390, so skip the 32-bit vdso here, and only build it when using gcc to compile the kernel. Signed-off-by: Arnd Bergmann Signed-off-by: Martin Schwidefsky commit c1afcaec2af6d80d057b184eb86cbb018fce6517 Author: Arnd Bergmann Date: Mon Apr 8 23:26:14 2019 +0200 s390: remove -fno-strength-reduce flag This was added as a workaround for really old compilers, and it prevents building with clang now. I can see no reason for keeping it, as it has already been removed for most architectures in the pre-git era, so let's remove it everywhere, rather than only for clang. Signed-off-by: Arnd Bergmann Signed-off-by: Martin Schwidefsky commit 7aa0055e06475f7b486c0673bc59c6478bc055fa Author: Martin Schwidefsky Date: Wed Apr 10 15:48:43 2019 +0200 s390: fine-tune stack switch helper The CALL_ON_STACK helper currently does not work with clang and for calls without arguments. It does not initialize r2 although the constraint is "+&d". Rework the CALL_FMT_x and the CALL_ON_STACK macros to work with clang and produce optimal code in all cases. Reported-by: Arnd Bergmann Signed-off-by: Martin Schwidefsky commit 2f60eb2f03b9c3d0a31592c55a88ef62b1403b5d Author: Matthias Kaehlcke Date: Wed Apr 10 11:30:10 2019 -0700 ARM: dts: rockchip: Remove unnecessary setting of UART0 SCLK rate on veyron Some veyron devices have a Bluetooth controller connected on UART0. The UART needs to operate at a high speed, however setting the clock rate at initialization has no practical effect. During initialization user space adjusts the UART baudrate multiple times, which ends up changing the SCLK rate. After a successful initiatalization the clk is running at the desired speed (48MHz). Remove the unnecessary clock rate configuration from the DT. Signed-off-by: Matthias Kaehlcke Reviewed-by: Douglas Anderson Signed-off-by: Heiko Stuebner commit 784c24c3e45cc665226e8529d79f319af7cfd09c Author: Axel Lin Date: Thu Apr 11 09:59:23 2019 +0800 regulator: mcp16502: Remove setup_regulators function It seems a little bit odd current code pass struct regulator_config rather than a pointer to setup_regulators. The setup_regulators is so simple and only has one caller, so remove it. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 4cf469539b635d2588df4f48bf721890f5f2ade5 Author: Axel Lin Date: Thu Apr 11 09:59:22 2019 +0800 regulator: mcp16502: Remove unneeded fields from struct mcp16502 At the context with rdev, we can use rdev->regmap instead of mcp->rmap. The *rdev[NUM_REGULATORS] is not required because current code uses devm_regulator_register() so we don't need to store *rdev for clean up paths. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit ab54a4d7b0dd5f36cb6c2da83894590bc8bda5a5 Author: Axel Lin Date: Thu Apr 11 00:19:37 2019 +0800 regulator: vexpress: Constify regulator_ops vexpress_regulator_ops_ro and vexpress_regulator_ops are never changed, make them const. Signed-off-by: Axel Lin Acked-by: Sudeep Holla Signed-off-by: Mark Brown commit 29dc269a85ef4e413fd03be295fba52a2eb93d7d Author: Axel Lin Date: Thu Apr 11 00:14:27 2019 +0800 regulator: hi6421: Convert to use simplified DT parsing Use regulator core's simplified DT parsing code to simply the driver implementation. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 0cde62a46e88499cf3f62e3682248a3489488f08 Author: Will Deacon Date: Wed Apr 10 14:01:06 2019 +0100 docs/memory-barriers.txt: Fix style, spacing and grammar in I/O section Commit 4614bbdee357 ("docs/memory-barriers.txt: Rewrite "KERNEL I/O BARRIER EFFECTS" section") rewrote the I/O ordering section of memory-barriers.txt. Subsequently, Ingo noticed a number of issues with the style, spacing and grammar of the rewritten section. Fix them based on his suggestions. Link: https://lkml.kernel.org/r/20190410105833.GA116161@gmail.com Fixes: 4614bbdee357 ("docs/memory-barriers.txt: Rewrite "KERNEL I/O BARRIER EFFECTS" section") Reported-by: Ingo Molnar Acked-by: Ingo Molnar Signed-off-by: Will Deacon commit 2341ab4fd5d7ee3db5c67e8ff8506722910df8e9 Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:26 2019 +0530 PCI: keystone: Use platform_get_resource_byname() to get memory resources Use platform_get_resource_byname() instead of platform_get_resource() which uses an index to get memory resources. While at that get the memory resource defined specifically for configuration space instead of deriving the configuration space address from dbics address space. Since the pci-keystone driver has never worked in the mainline kernel, DT backward compatibility is not an issue. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit f3560a9f88ae3aa2b2976a1a0175478f6fd32fe8 Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:25 2019 +0530 PCI: keystone: Perform host initialization in a single function No functional change. Instead of having two functions ks_pcie_add_pcie_port() and ks_pcie_dw_host_init() for initializing host, have a single function to perform all the host initialization. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit 47fe944138a6e34697e1778a74eff00ed9472b2a Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:24 2019 +0530 dt-bindings: PCI: keystone: Add "reg-names" binding information Add "reg-names" binding information in order for device tree node to be populated with the correct register strings. This will break old DT compatibility. However Keystone PCI has never worked in upstream kernel due to lack of SERDES support, so, before SERDES support is added, cleanup the Keystone PCI dt-bindings. This new binding will also be used by PCI in AM654 platform. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi Reviewed-by: Rob Herring commit 0790eb175ee0d8979a6db6bf2ad81e7c83d616df Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:23 2019 +0530 PCI: keystone: Cleanup error_irq configuration pci-keystone driver uses irq_of_parse_and_map() to get irq number of error_irq. Use platform_get_irq() instead and move platform_get_irq() and request_irq() of error_irq from ks_pcie_add_pcie_port to ks_pcie_probe since error_irq is common to both RC mode and EP mode. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit 9afb20d600da83639ad800f113884fadb78a43ae Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:09:22 2019 +0530 PCI: keystone: Add start_link()/stop_link() dw_pcie_ops Add start_link()/stop_link() dw_pcie_ops and invoke ks_pcie_start_link() directly from host_init. start_link()/stop_link() ops are required for adding EP mode support. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit 993d5fe31c7b7cf7f480c6b4bec3ed23a3a24690 Author: Kishon Vijay Abraham I Date: Thu Apr 4 16:36:09 2019 +0530 tools: PCI: Handle pcitest.sh independently from pcitest Handling pcitest.sh along with pcitest (obtained by compiling pcitest.c) results in pcitest.sh getting removed inadvertently while "make -C tools/pci clean". Fix it by handling pcitest.sh independently of pcitest. Fixes: 1ce78ce09430 ("tools: PCI: Change pcitest compiling process") Reported-by: Adrian Hunter Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi Cc: Gustavo Pimentel commit 3fca6a1ab935e69df40dd67e3425627243685b7f Author: Yannick Fertré Date: Fri Mar 29 13:29:00 2019 +0100 ARM: dts: stm32: enable cec on stm32mp157a-dk1 board Enable CEC (Consumer Electronics Control) device. Signed-off-by: Yannick Fertré Signed-off-by: Alexandre Torgue commit 5eaae049416d8a327965e3ba5c271851d3069aaa Author: Yannick Fertré Date: Wed Apr 10 16:06:27 2019 +0200 ARM: dts: stm32: add cec pins muxing on stm32mp157 Add a new pin muxing for cec. Signed-off-by: Yannick Fertré Signed-off-by: Alexandre Torgue commit 63834ff2d60458a45bbe6e6d67363cfada195090 Author: Yannick Fertré Date: Fri Mar 29 13:28:00 2019 +0100 ARM: dts: stm32: add ltdc pins muxing on stm32mp157 Add ltdc pins muxing on stm32mp157. Signed-off-by: Yannick Fertré Signed-off-by: Alexandre Torgue commit f85c8acc7a1f60bedea18e4f4819a0edce16ed76 Author: Yannick Fertré Date: Fri Mar 29 11:48:00 2019 +0100 ARM: dts: stm32: add I2C sleep pins muxing on stm32mp157 Add I2C sleep pins muxing for low power mode. Signed-off-by: Pierre-Yves MORDRET Signed-off-by: Yannick Fertré Signed-off-by: Alexandre Torgue commit 81987fff52f1a5fba8fe814029e37961aaf77ee9 Author: Yannick Fertré Date: Wed Apr 10 15:51:38 2019 +0200 ARM: dts: stm32: add power supply of otm8009a on stm32mp157c-dk2 This patch adds a new property (power-supply) to panel otm8009a (orisetech) on stm32mp157c-dk2 & regulator v3v3. Signed-off-by: Yannick Fertré Signed-off-by: Alexandre Torgue commit 09666b76f3588055743d89de9f16d8d3c09380f8 Author: Gabriel Fernandez Date: Fri Apr 5 09:53:00 2019 +0200 ARM: dts: stm32: Enable STM32F769 clock driver This patch enables clocks for STM32F769 boards. Signed-off-by: Gabriel Fernandez Signed-off-by: Alexandre Torgue commit b3e993a6170c764551d31b4108ebe410eb75d41f Author: Pascal Paillet Date: Tue Apr 9 11:00:39 2019 +0200 ARM: dts: stm32: add stpmic1 support on stm32mp157a dk1 board This patch adds stpmic1 support on stm32mp157a dk1 board. The STPMIC1 is a PMIC from STMicroelectronics. The STPMIC1 integrates 10 regulators, 3 power switches, a watchdog and an input for a power on key. The DMAs are disabled because the PMIC generates a very few traffic and DMA channels may lack for other usage. Signed-off-by: Pascal Paillet Signed-off-by: Alexandre Torgue commit 9c559b1565e6b2dea3e4ad1f588df3b8c566e665 Author: Pascal Paillet Date: Tue Apr 9 10:59:49 2019 +0200 ARM: dts: stm32: add stpmic1 support on stm32mp157c ed1 board This patch adds stpmic1 support on stm32mp157c ed1 board. The STPMIC1 is a PMIC from STMicroelectronics. The STPMIC1 integrates 10 regulators, 3 power switches, a watchdog and an input for a power on key. The DMAs are disabled because the PMIC generates a very few traffic and DMA channels may lack for other usage. Signed-off-by: Pascal Paillet Signed-off-by: Alexandre Torgue commit 94d3d6f4dc693c612fa7272733824e7c967c517a Author: Olivier Moysan Date: Fri Mar 29 11:12:00 2019 +0100 ARM: dts: stm32: add spdfirx pins to stm32mp157c This patch adds spdifrx support on stm32mp157c eval board. Signed-off-by: Olivier Moysan Signed-off-by: Alexandre Torgue commit 411435d39079544d09949070518bdbed13d252b3 Author: Olivier Moysan Date: Wed Apr 10 14:47:52 2019 +0200 ARM: dts: stm32: add spdifrx support on stm32mp157c This patch adds support of STM32 SPDIFRX on stm32mp157c. Signed-off-by: Olivier Moysan Signed-off-by: Alexandre Torgue commit 8d07b78c3e2e8f42b72b7a1b2e0032e494b92ffe Author: Fabrice Gasnier Date: Thu Feb 28 11:19:00 2019 +0100 ARM: dts: stm32: Add romem and temperature calibration on stm32f429 Add & enable stm32 factory-programmed memory. Describe temperature sensor calibration cells. Signed-off-by: Fabrice Gasnier Signed-off-by: Alexandre Torgue commit 3024c18543eaf7c808a826769979b6c44cfeb07e Author: Fabrice Gasnier Date: Thu Feb 28 11:19:00 2019 +0100 ARM: dts: stm32: Add romem and temperature calibration on stm32mp157c Add & enable stm32 factory-programmed memory. Describe temperature sensor calibration cells. Non-volatile calibration data is made available by stm32mp157c bootrom in bsec_dataX registers. Signed-off-by: Fabrice Gasnier Signed-off-by: Alexandre Torgue commit 0f5795069596333493b372fcd0248c45f4152775 Author: Fabrice Gasnier Date: Wed Dec 12 09:48:00 2018 +0100 ARM: dts: stm32: Add clock on stm32mp157c syscfg STM32 syscfg needs a clock to access registers. Signed-off-by: Fabrice Gasnier Signed-off-by: Alexandre Torgue commit 682d099514d8f14538da0d9b99732e4cebc5f2d3 Author: Fabien Dessenne Date: Fri Mar 1 10:18:00 2019 +0100 ARM: dts: stm32: enable IPCC mailbox support on STM32MP157a-dk1 Enable STM32 IPCC mailbox driver for STM32MP157a-dk1 board. Signed-off-by: Fabien Dessenne Signed-off-by: Alexandre Torgue commit 679d9dac52203bbbbee5ca22bf9bfe8ce2ef2a0b Author: Fabien Dessenne Date: Fri Mar 1 10:18:00 2019 +0100 ARM: dts: stm32: enable IPCC mailbox support on STM32MP157c-ed1 Enable STM32 IPCC mailbox driver for STM32MP157c-ed1 board. Signed-off-by: Fabien Dessenne Signed-off-by: Alexandre Torgue commit eb2493172f723ec902a4c951caa90422ec1458ff Author: Fabien Dessenne Date: Fri Mar 1 10:18:00 2019 +0100 ARM: dts: stm32: add IPCC mailbox support on STM32MP157c Add configuration on DT for IPCC mailbox driver. Signed-off-by: Fabien Dessenne Signed-off-by: Alexandre Torgue commit 8f6e0919b7c21400c60693b31e659eb3f6e5179d Author: Ludovic Barre Date: Fri Mar 1 09:47:00 2019 +0100 ARM: dts: stm32: add sdmmc1 support on stm32mp157a dk1 board This patch adds sdmmc1 support on stm32mp157a dk1 board. Signed-off-by: Ludovic Barre Signed-off-by: Alexandre Torgue commit 379edbe434e787a40b757ebe371c779c69fc1038 Author: Ludovic Barre Date: Tue Mar 26 12:01:52 2019 +0100 ARM: dts: stm32: add sdmmc1 support on stm32mp157c ed1 board This patch adds sdmmc1 support on stm32mp157c ed1 board. Signed-off-by: Ludovic Barre Signed-off-by: Alexandre Torgue commit 8d17cf7a8e8b1ed3e979b1740401e72150fca5e9 Author: Ludovic Barre Date: Fri Mar 1 09:47:00 2019 +0100 ARM: dts: stm32: add sdmmc1 support on stm32mp157c This patch adds support of sdmmc1 on stm32mp157c. Signed-off-by: Ludovic Barre Signed-off-by: Alexandre Torgue commit 30a8e03a1f71ec0bd0208944fac10f7e0433fe3a Author: Ludovic Barre Date: Fri Mar 1 09:47:00 2019 +0100 ARM: dts: stm32: add sdmmc1 support on stm32h743i disco board This patch adds sdmmc1 support on stm32h743i disco board. Signed-off-by: Ludovic Barre Signed-off-by: Alexandre Torgue commit 90f16fea400ba7b145e15ed601adceb501d5054f Author: Ludovic Barre Date: Fri Mar 1 09:47:00 2019 +0100 ARM: dts: stm32: add sdmmc1 support on stm32h743i eval board This patch adds sdmmc1 support on stm32h743i eval board. This board has an external driver to control signal direction polarity. Signed-off-by: Ludovic Barre Signed-off-by: Alexandre Torgue commit 61c0f6b8b42d37407cb55594a7883da6a53f70ac Author: Ludovic Barre Date: Fri Mar 1 09:47:00 2019 +0100 ARM: dts: stm32: add sdmmc1 support on stm32h743 This patch adds support of sdmmc1 on stm32h743. Signed-off-by: Ludovic Barre Signed-off-by: Alexandre Torgue commit 20522fefd52277c006ddae43dafc497b99e2f2f8 Author: Hui Wang Date: Thu Apr 11 17:02:03 2019 +0800 Revert "HID: i2c-hid: Disable runtime PM on Synaptics touchpad" This reverts commit 74e7c6c877f620d65a8269692d089bbd066f626c. It finally turns out the touchpad is an engineering sample and it is not the Synaptics touchpad. Let us revert this patch otherwise it will affect the real Synaptics touchpad. Signed-off-by: Hui Wang Signed-off-by: Jiri Kosina commit fbca0b284bd02bf83c9813168d1a58b6ec54d1ca Author: Kishon Vijay Abraham I Date: Thu Apr 4 16:36:08 2019 +0530 tools: PCI: Add 'h' in optstring of getopt() 'h' is a valid option character for the pcitest tool used to print the pcitest usage. Add 'h' in optstring of getopt() in order to get rid of "pcitest: invalid option -- 'h'" warning. While at that remove unncessary case '?'. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Sekhar Nori Signed-off-by: Lorenzo Pieralisi commit 6be22343cc546b46402869668da453d56921c14e Author: Chunfeng Yun Date: Wed Apr 10 14:54:16 2019 +0800 PCI: mediatek: Get optional clocks with devm_clk_get_optional() Update the driver to use devm_clk_get_optional() to claim optional clocks instead of devm_clk_get(). Signed-off-by: Chunfeng Yun Signed-off-by: Lorenzo Pieralisi Acked-by: Ryder Lee Acked-by: Honghui Zhang Cc: Ryder Lee Cc: Honghui Zhang commit f2222a9e8033ceca2ed8b1addea1d541b536ab7b Author: Yue Haibing Date: Wed Apr 10 22:04:50 2019 +0800 memory: tegra: Make terga20_mc_reset_ops static Fix sparse warning: drivers/memory/tegra/tegra20.c:277:33: warning: symbol 'terga20_mc_reset_ops' was not declared. Should it be static? Reported-by: Hulk Robot Signed-off-by: Yue Haibing Signed-off-by: Thierry Reding commit 3daf8e703ec3dcf73a27a7dcabbac152793eb114 Author: Stanislav Fomichev Date: Tue Apr 9 11:49:11 2019 -0700 selftests: bpf: add selftest for __sk_buff context in BPF_PROG_TEST_RUN Simple test that sets cb to {1,2,3,4,5} and priority to 6, runs bpf program that fails if cb is not what we expect and increments cb[i] and priority. When the test finishes, we check that cb is now {2,3,4,5,6} and priority is 7. We also test the sanity checks: * ctx_in is provided, but ctx_size_in is zero (same for ctx_out/ctx_size_out) * unexpected non-zero fields in __sk_buff return EINVAL Signed-off-by: Stanislav Fomichev Acked-by: Martin KaFai Lau Signed-off-by: Daniel Borkmann commit 5e903c656b98614698a891c6e098186272cbba14 Author: Stanislav Fomichev Date: Tue Apr 9 11:49:10 2019 -0700 libbpf: add support for ctx_{size, }_{in, out} in BPF_PROG_TEST_RUN Support recently introduced input/output context for test runs. We extend only bpf_prog_test_run_xattr. bpf_prog_test_run is unextendable and left as is. Signed-off-by: Stanislav Fomichev Acked-by: Martin KaFai Lau Signed-off-by: Daniel Borkmann commit b0b9395d865e3060d97658fbc9ba3f77fecc8da1 Author: Stanislav Fomichev Date: Tue Apr 9 11:49:09 2019 -0700 bpf: support input __sk_buff context in BPF_PROG_TEST_RUN Add new set of arguments to bpf_attr for BPF_PROG_TEST_RUN: * ctx_in/ctx_size_in - input context * ctx_out/ctx_size_out - output context The intended use case is to pass some meta data to the test runs that operate on skb (this has being brought up on recent LPC). For programs that use bpf_prog_test_run_skb, support __sk_buff input and output. Initially, from input __sk_buff, copy _only_ cb and priority into skb, all other non-zero fields are prohibited (with EINVAL). If the user has set ctx_out/ctx_size_out, copy the potentially modified __sk_buff back to the userspace. We require all fields of input __sk_buff except the ones we explicitly support to be set to zero. The expectation is that in the future we might add support for more fields and we want to fail explicitly if the user runs the program on the kernel where we don't yet support them. The API is intentionally vague (i.e. we don't explicitly add __sk_buff to bpf_attr, but ctx_in) to potentially let other test_run types use this interface in the future (this can be xdp_md for xdp types for example). v4: * don't copy more than allowed in bpf_ctx_init [Martin] v3: * handle case where ctx_in is NULL, but ctx_out is not [Martin] * convert size==0 checks to ptr==NULL checks and add some extra ptr checks [Martin] v2: * Addressed comments from Martin Lau Signed-off-by: Stanislav Fomichev Acked-by: Martin KaFai Lau Signed-off-by: Daniel Borkmann commit 569b0c77735d1567963cb4601390877b30458be4 Author: Prashant Bhole Date: Wed Apr 10 13:56:42 2019 +0900 tools/bpftool: show btf id in program information Let's add a way to know whether a program has btf context. Patch adds 'btf_id' in the output of program listing. When btf_id is present, it means program has btf context. Sample output: user@test# bpftool prog list 25: xdp name xdp_prog1 tag 539ec6ce11b52f98 gpl loaded_at 2019-04-10T11:44:20+0900 uid 0 xlated 488B not jited memlock 4096B map_ids 23 btf_id 1 Signed-off-by: Prashant Bhole Acked-by: Jakub Kicinski Signed-off-by: Daniel Borkmann commit d5adbdd77ecc1d841af244a10958792141830d30 Author: Andrey Ignatov Date: Wed Apr 10 18:36:43 2019 -0700 libbpf: Fix build with gcc-8 Reported in [1]. With gcc 8.3.0 the following error is issued: cc -Ibpf@sta -I. -I.. -I.././include -I.././include/uapi -fdiagnostics-color=always -fsanitize=address,undefined -fno-omit-frame-pointer -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Werror -g -fPIC -g -O2 -Werror -Wall -Wno-pointer-arith -Wno-sign-compare -MD -MQ 'bpf@sta/src_libbpf.c.o' -MF 'bpf@sta/src_libbpf.c.o.d' -o 'bpf@sta/src_libbpf.c.o' -c ../src/libbpf.c ../src/libbpf.c: In function 'bpf_object__elf_collect': ../src/libbpf.c:947:18: error: 'map_def_sz' may be used uninitialized in this function [-Werror=maybe-uninitialized] if (map_def_sz <= sizeof(struct bpf_map_def)) { ~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../src/libbpf.c:827:18: note: 'map_def_sz' was declared here int i, map_idx, map_def_sz, nr_syms, nr_maps = 0, nr_maps_glob = 0; ^~~~~~~~~~ According to [2] -Wmaybe-uninitialized is enabled by -Wall. Same error is generated by clang's -Wconditional-uninitialized. [1] https://github.com/libbpf/libbpf/pull/29#issuecomment-481902601 [2] https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html Fixes: d859900c4c56 ("bpf, libbpf: support global data/bss/rodata sections") Reported-by: Evgeny Vereshchagin Signed-off-by: Andrey Ignatov Acked-by: Yonghong Song Signed-off-by: Daniel Borkmann commit 632c7ad6f4509767fcbe76ac034747b4a30a13d9 Author: Mika Kuoppala Date: Fri Apr 5 21:46:57 2019 +0100 drm/i915/icl: Switch to using 12 deep CSB status FIFO Now when we can support variable csb fifo sizes, disable legacy mode. By disabling legacy we hope to get better hw testing coverage by assuming everyone else have switched over. v2: rebase References: https://bugs.freedesktop.org/show_bug.cgi?id=110338 Cc: Chris Wilson Cc: Joonas Lahtinen Cc: Daniele Ceraolo Spurio Cc: Kelvin Gardiner Cc: Paulo Zanoni Signed-off-by: Mika Kuoppala Acked-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190405204657.12887-2-chris@chris-wilson.co.uk commit 7d4c75d9097a0031b0aabf0bbc127ae7dcf93de3 Author: Mika Kuoppala Date: Fri Apr 5 21:46:56 2019 +0100 drm/i915: Prepare for larger CSB status FIFO size Make csb entry count variable in preparation for larger CSB status FIFO size found on gen11+ hardware. v2: adapt to hwsp access only (Chris) non continuous mmio (Daniele) v3: entries (Chris), fix macro for checkpatch v4: num_entries (Chris) v5: consistency on num_entries Cc: Daniele Ceraolo Spurio Cc: Chris Wilson Cc: Joonas Lahtinen Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190405204657.12887-1-chris@chris-wilson.co.uk commit fa0dcb3fe2ca3d51b8a9485e8a23fa70ecc8ba7e Author: Daniel Borkmann Date: Wed Apr 10 11:07:14 2019 +0200 mailmap: add entry for email addresses Redirect email addresses from git log to the mainly used ones for Alexei and myself such that it is consistent with the ones in MAINTAINERS file. Useful in particular when git mailmap is enabled on broader scope, for example: $ git config --global log.mailmap true Signed-off-by: Daniel Borkmann Acked-by: Alexei Starovoitov commit 917dc6b53c273dd7e026f158ad4894ae366da326 Author: Mika Kuoppala Date: Wed Apr 10 13:59:22 2019 +0300 drm/i915: Use Engine1 instance for gen11 pm interrupts With gen11 the interrupt registers are shared between 2 engines, with Engine1 instance being upper word and Engine0 instance being lower. Annoyingly gen11 selected the pm interrupts to be in the Engine1 instance. Rectify the situation by shifting the access accordingly, based on gen. v2: comments, warn on overzealous rps_events Bugzilla: https://bugzilla.freedesktop.org/show_bug.cgi?id=108059 Testcase: igt/i915_pm_rps@min-max-config-loaded Cc: Chris Wilson Signed-off-by: Mika Kuoppala Acked-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190410105923.18546-6-mika.kuoppala@linux.intel.com commit 1071d0f6877e63d3354bac7fb4b1e6c740b388f0 Author: Mika Kuoppala Date: Wed Apr 10 16:24:36 2019 +0300 drm/i915/icl: Disable video turbo mode for rp control There is no video turbo mode for gen11, so don't set it. v2: inline (Chris) v3: brackets (Chris) Cc: Chris Wilson Signed-off-by: Mika Kuoppala Acked-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190410132436.23679-1-mika.kuoppala@linux.intel.com commit 2ea7414159cdbbab76b55f01b4ff560ff2018a4f Author: Mika Kuoppala Date: Wed Apr 10 13:59:19 2019 +0300 drm/i915/icl: Enable media sampler powergate Enable media sampler powergate as recommended. v2: use REG_BIT (Chris) Cc: Chris Wilson Signed-off-by: Mika Kuoppala Acked-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190410105923.18546-3-mika.kuoppala@linux.intel.com commit d105e9ad548daabf641d377fb4c963a1aa2d8127 Author: Mika Kuoppala Date: Wed Apr 10 13:59:18 2019 +0300 drm/i915/icl: Apply a recommended rc6 threshold On gen11 the recommended rc6 threshold differs from previous gens, apply it. Move the write to a correct spot in sequence. v2: do write in 2b, fix bspec ref (Michal) Bspec: 33149 Cc: Michal Wajdeczko Signed-off-by: Mika Kuoppala Acked-by: Chris Wilson Reviewed-by: Michal Wajdeczko Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190410105923.18546-2-mika.kuoppala@linux.intel.com commit a79208de65fe78d684eae529a7a3d606599744a6 Author: Mika Kuoppala Date: Wed Apr 10 13:59:17 2019 +0300 drm/i915: Use dedicated rc6 enabling sequence for gen11 In order not to inflate gen9 rc6 enabling sequence with gen11 specifics, use a separate function for it. Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190410105923.18546-1-mika.kuoppala@linux.intel.com commit 851826c7566e9bb4d03eb050634031ecc802affb Author: Anson Huang Date: Tue Apr 9 04:59:55 2019 +0000 firmware: imx: enable imx scu general irq function The System Controller Firmware (SCFW) controls RTC, thermal and WDOG etc., these resources' interrupt function are managed by SCU. When any IRQ pending, SCU will notify Linux via MU general interrupt channel #3, and Linux kernel needs to call SCU APIs to get IRQ status and notify each module to handle the interrupt. Since there is no data transmission for SCU IRQ notification, so doorbell mode is used for this MU channel, and SCU driver will use notifier mechanism to broadcast to every module which registers the SCU block notifier. Signed-off-by: Anson Huang Reviewed-by: Dong Aisheng Signed-off-by: Shawn Guo commit 564d6fd611f9c66dba4a3ad1da7a4589f8eb699a Author: Maxime Ripard Date: Mon Apr 1 10:56:45 2019 +0200 drm/sun4i: Rely on dma interconnect for our RAM offset Now that we can express our DMA topology, rely on those property instead of hardcoding an offset from the dma_addr_t which wasn't really great. We still need to add some code to deal with the old DT that would lack that property, but we move the offset to the DRM device dma_pfn_offset to be able to rely on just the dma_addr_t associated to the GEM object. Acked-by: Daniel Vetter Acked-by: Robin Murphy Signed-off-by: Maxime Ripard Link: https://patchwork.freedesktop.org/patch/msgid/5df781318e7e05f780a11ed243dcf2b9fe8a08cb.1554108995.git-series.maxime.ripard@bootlin.com commit 9f735c4e94fcbec66aa282eebb92c4aa3de88c6d Author: Anson Huang Date: Mon Apr 1 06:07:13 2019 +0000 soc: imx: gpcv2: use devm_platform_ioremap_resource() to simplify code Use the new helper devm_platform_ioremap_resource() which wraps the platform_get_resource() and devm_ioremap_resource() together, to simplify the code. Signed-off-by: Anson Huang Reviewed-by: Mukesh Ojha Signed-off-by: Shawn Guo commit ccc1de31ab54bbf3e9fe2df1f562ea92d8fe8e44 Author: Anson Huang Date: Mon Apr 1 06:07:08 2019 +0000 soc: imx: gpc: use devm_platform_ioremap_resource() to simplify code Use the new helper devm_platform_ioremap_resource() which wraps the platform_get_resource() and devm_ioremap_resource() together, to simplify the code. Signed-off-by: Anson Huang Reviewed-by: Mukesh Ojha Signed-off-by: Shawn Guo commit 9ad593bc959f9aea22df151c323eb0ed9a65c98f Author: Anson Huang Date: Tue Apr 9 04:59:49 2019 +0000 dt-bindings: fsl: scu: add general interrupt support Add scu general interrupt function support. Signed-off-by: Anson Huang Reviewed-by: Rob Herring Reviewed-by: Dong Aisheng Signed-off-by: Shawn Guo commit 526bb57a6ad6b0ed6de34b3c5eabf394b248618f Author: Lorenzo Bianconi Date: Tue Apr 9 12:03:07 2019 +0200 net: fou: remove redundant code in gue_udp_recv Remove not useful protocol version check in gue_udp_recv since just gue version 0 can hit that code. Moreover remove duplicated hdrlen computation Signed-off-by: Lorenzo Bianconi Signed-off-by: David S. Miller commit 35dc29ef0f5de174537ddeb0f202adb8e99e2ea6 Author: Anson Huang Date: Mon Apr 8 07:44:21 2019 +0000 ARM: dts: imx6dl-sabreauto: update opp table for auto part Update i.MX6DL automotive part's opp table according to i.MX6DL automotive datasheet Rev.9, 11/2018, it adds 996MHz set-point support as below: LDO enabled(min value): 996MHz: VDDARM: 1.275V, VDDSOC: 1.175V; 792MHz: VDDARM: 1.150V, VDDSOC: 1.150V; 396MHz: VDDARM: 1.125V, VDDSOC: 1.150V; Adding 25mV to cover board IR drop, for LDO enabled mode of 996MHz, as the max value of LDO output can NOT exceed 1.3V, so 25mV is NOT added for VDDARM. Signed-off-by: Anson Huang Signed-off-by: Shawn Guo commit 8cfd813c7307a2fe6ef71b346026a62e49d2b53f Author: Lucas Stach Date: Wed Apr 3 18:52:18 2019 +0200 arm64: dts: imx8mq: fix higher CPU operating point According to the datasheet both industrial and consumer variants support at least 1.3GHz CPU frequency at 1.0V. Only the OPP at 1.5GHz is unavailable on some SKUs and thus need further fuse reading support. Signed-off-by: Lucas Stach Reviewed-by: Abel Vesa Signed-off-by: Shawn Guo commit cdfdea07090ba385e3b4835d172252a074f029fa Author: Andrey Smirnov Date: Fri Apr 5 10:30:04 2019 -0700 arm64: dts: imx8mq-evk: Enable PCIE0 interface Enable PCIE0 interface connected to BCM4356 WiFi/Bluetooth module. Signed-off-by: Andrey Smirnov Reviewed-by: Lucas Stach Reviewed-by: Fabio Estevam Cc: Shawn Guo Cc: Fabio Estevam Cc: Chris Healy Cc: Lucas Stach Cc: Leonard Crestez Cc: "A.s. Dong" Cc: Richard Zhu Cc: linux-imx@nxp.com Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Shawn Guo commit fc26e600e97acca6b329eacc32498a773cd9fa49 Author: Andrey Smirnov Date: Fri Apr 5 10:30:03 2019 -0700 arm64: dts: imx8mq: Add nodes for PCIe IP blocks Add nodes for two PCIe controllers found on i.MX8MQ. Signed-off-by: Andrey Smirnov Reviewed-by: Lucas Stach Reviewed-by: Fabio Estevam Cc: Shawn Guo Cc: Fabio Estevam Cc: Chris Healy Cc: Lucas Stach Cc: Leonard Crestez Cc: "A.s. Dong" Cc: Richard Zhu Cc: linux-imx@nxp.com Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Shawn Guo commit de2a538b97a489bb67be7cdc44115d1c6a07e837 Author: Andrey Smirnov Date: Fri Apr 5 10:30:02 2019 -0700 arm64: dts: imx8mq: Combine PCIE power domains According to NXP's FAE feedback and a comment in ATF firmware, PCIE1 and PCIE2 power domains can't really be used independently. Due to shared reset line both power domains have to be turned on at the same time. Account for that quirk by combining PCIE power domains into a single 'pgc_pcie' power domain. Signed-off-by: Andrey Smirnov Reviewed-by: Lucas Stach Reviewed-by: Fabio Estevam Cc: Shawn Guo Cc: Fabio Estevam Cc: Chris Healy Cc: Lucas Stach Cc: Leonard Crestez Cc: "A.s. Dong" Cc: Richard Zhu Cc: linux-imx@nxp.com Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Shawn Guo commit d62a250ea33a14d4cb0605a0e58ff1e1332a6a23 Author: Andrey Smirnov Date: Fri Apr 5 10:30:01 2019 -0700 arm64: dts: imx8mq: Add a node for SRC IP block Add a node for reset controller IP block found on i.MX8MQ. Signed-off-by: Andrey Smirnov Reviewed-by: Lucas Stach Reviewed-by: Fabio Estevam Cc: Shawn Guo Cc: Fabio Estevam Cc: Chris Healy Cc: Lucas Stach Cc: Leonard Crestez Cc: "A.s. Dong" Cc: Richard Zhu Cc: linux-imx@nxp.com Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Shawn Guo commit beea0f22566cb32c35de89ab0980852b5bbc1c60 Author: Andrey Smirnov Date: Fri Apr 5 10:30:00 2019 -0700 arm64: dts: imx8mq: Mark iomuxc_gpr as i.MX6Q compatible Mark iomuxc_gpr as compatible with "fsl,imx6q-iomuxc-gpr" in order for to allow i.MX6 PCIe driver to use it. Signed-off-by: Andrey Smirnov Acked-by: Lucas Stach Reviewed-by: Fabio Estevam Cc: Shawn Guo Cc: Fabio Estevam Cc: Chris Healy Cc: Lucas Stach Cc: Leonard Crestez Cc: "A.s. Dong" Cc: Richard Zhu Cc: linux-imx@nxp.com Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Shawn Guo commit 29fdb6b834b8c3ca8d1ca2071d3c2c36cabce2f1 Author: Daniel Baluta Date: Sat Mar 30 17:07:44 2019 +0000 arm64: dts: imx8qxp: Add lpuart1/lpuart2/lpuart3 nodes lpuart nodes are part of the ADMA subsystem. See Audio DMA memory map in iMX8 QXP RM [1] This patch is based on the dtsi file initially submitted by Teo Hall in i.MX NXP internal tree. [1] https://www.nxp.com/docs/en/reference-manual/IMX8DQXPRM.pdf Signed-off-by: Teo Hall Signed-off-by: Daniel Baluta Reviewed-by: Dong Aisheng Signed-off-by: Shawn Guo commit b7404c7ecb38b66f103cec694e23a8e99252829e Author: Chris Wilson Date: Tue Apr 9 16:29:22 2019 +0100 drm/i915: Bump ready tasks ahead of busywaits Consider two tasks that are running in parallel on a pair of engines (vcs0, vcs1), but then must complete on a shared engine (rcs0). To maximise throughput, we want to run the first ready task on rcs0 (i.e. the first task that completes on either of vcs0 or vcs1). When using semaphores, however, we will instead queue onto rcs in submission order. To resolve this incorrect ordering, we want to re-evaluate the priority queue when each of the request is ready. Normally this happens because we only insert into the priority queue requests that are ready, but with semaphores we are inserting ahead of their readiness and to compensate we penalize those tasks with reduced priority (so that tasks that do not need to busywait should naturally be run first). However, given a series of tasks that each use semaphores, the queue degrades into submission fifo rather than readiness fifo, and so to counter this we give a small boost to semaphore users as their dependent tasks are completed (and so we no longer require any busywait prior to running the user task as they are then ready themselves). v2: Fixup irqsave for schedule_lock (Tvrtko) Testcase: igt/gem_exec_schedule/semaphore-codependency Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Cc: Dmitry Rogozhkin Cc: Dmitry Ermilov Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190409152922.23894-1-chris@chris-wilson.co.uk commit 00e3ff8b980b7604dcaa6ea8b2fb157ff8d16c30 Author: Fabio Estevam Date: Wed Apr 3 09:53:14 2019 -0300 ARM: dts: imx: Use generic node names for Zii dts The devicetree specification recommends using generic node names. Some Zii dts files already follow such recommendation, but some don't, so use generic node names for consistency among the Zii dts files. Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo commit 7ee137a96a880ba303684eacc9a4f7a22836b184 Author: Fabio Estevam Date: Wed Apr 3 09:53:13 2019 -0300 ARM: dts: imx: Switch Zii dts to SPDX identifier Adopt the SPDX license identifier headers to ease license compliance management. Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo commit c9d52f216922425b56b002100b75de34b62b11a0 Author: Simon Horman Date: Tue Apr 9 09:59:07 2019 +0200 fou: correct spelling of encapsulation Correct spelling of encapsulation. Found by inspection. Signed-off-by: Simon Horman Signed-off-by: David S. Miller commit 7aedca875074b33795bc77066b325898b1eb8032 Author: Adam Ford Date: Tue Apr 2 14:32:04 2019 -0500 ARM: dts: imx6q-logicpd: Reduce inrush current on USBH1 Some USB peripherals draw more power, and the sourcing regulator take a little time to turn on. This patch fixes an issue where some devices occasionally do not get detected, because the power isn't quite ready when communication starts, so we add a bit of a delay. Fixes: 1c207f911fe9 ("ARM: dts: imx: Add support for Logic PD i.MX6QD EVM") Signed-off-by: Adam Ford Signed-off-by: Shawn Guo commit dbb58e291cd47e594b64293bd91a4ce40626513c Author: Adam Ford Date: Tue Apr 2 14:19:08 2019 -0500 ARM: dts: imx6q-logicpd: Reduce inrush current on start The main 3.3V regulator sources a series of additional regulators. This patch adds a small delay, so when the 3.3V regulator comes on it delays a bit before the subsequent regulators can come on. This reduces the inrush current a bit on the external DC power supply to help prevent a situation where the sourcing power supply cannot source enough current and overloads and the kit fails to start. Fixes: 1c207f911fe9 ("ARM: dts: imx: Add support for Logic PD i.MX6QD EVM") Signed-off-by: Adam Ford Signed-off-by: Shawn Guo commit 6fd6d6f6a2f06cb921a0185072854c3d35d86ff1 Author: Adam Ford Date: Tue Apr 2 14:25:46 2019 -0500 ARM: dts: imx6q-logicpd: Shutdown LCD regulator during suspend The LCD power sequencer is very finicky. The backlight cannot be driven until after the sequencer is done. Until now, the regulators were marked with 'regulator-always-on' to make sure it came up before the backlight. This patch allows the LCD regulators to power down and prevent the backlight from being used again until the sequencer is ready. This reduces standby power consumption by ~100mW. Signed-off-by: Adam Ford Signed-off-by: Shawn Guo commit 45d91250405b08a13c41d879eb70d71f22773032 Author: Adam Ford Date: Tue Apr 2 14:25:45 2019 -0500 ARM: dts: imx6q-logicpd: Enable Analog audio capture The original submission had functional audio out and was based on reviewing other boards using the same wm8962 codec. However, the Logic PD board uses an analog microphone which was being disabled for a digital mic. This patch corrects that and explicitly sets the gpio-cfg pins all to 0x0000 which allows the analog microphone to capture audio. Signed-off-by: Adam Ford Signed-off-by: Shawn Guo commit 88ec6b93c8e7d6d4ffaf6ad6395ceb3bf552de15 Author: Cédric Le Goater Date: Wed Apr 10 19:04:33 2019 +0200 powerpc/xive: add OPAL extensions for the XIVE native exploitation support The support for XIVE native exploitation mode in Linux/KVM needs a couple more OPAL calls to get and set the state of the XIVE internal structures being used by a sPAPR guest. Signed-off-by: Cédric Le Goater Reviewed-by: David Gibson Signed-off-by: Michael Ellerman commit 4b08ecc7c68525e6e472a3e10ca1ba00e0facb26 Author: Anson Huang Date: Mon Apr 1 02:51:11 2019 +0000 ARM: dts: imx6sll: add cooling-cells for cpu-freq cooling device Add #cooling-cells for i.MX6SLL cpu-freq cooling device usage. Signed-off-by: Anson Huang Signed-off-by: Shawn Guo commit 891d940aef2f98ba043c6e63008a99dbdf68bdc6 Author: Jonathan Neuschäfer Date: Sun Mar 31 21:16:02 2019 +0200 ARM: dts: imx50: Add Kobo Aura DTS The Kobo Aura is an e-book reader released in 2013. With the devicetree in its current state, the kernel will boot and run for about ten seconds. To solve this, the embedded controller needs to be told that the system should stay powered on. This will be done in a later patchset. - The IOMUXC mode bits for the SD interfaces were taken from the vendor's U-Boot fork. - The bus width of the eMMC is 4 bits in the vendor kernel, but I achieved better performance with 8 bits. - The SDIO clock frequency for the WiFi chip is 25MHz in the vendor kernel, but the WiFi chip (BCM43362) supports 50MHz, which works reliably on this board and gives slightly better performance. - The I2C pins' IOMUXC settings come from the vendor's U-Boot fork. Signed-off-by: Jonathan Neuschäfer Signed-off-by: Shawn Guo commit 42b3862658d94b2f9cd625200db4adf50f4b338f Author: Jonathan Neuschäfer Date: Sun Mar 31 21:16:01 2019 +0200 dt-bindings: arm: fsl: Add i.MX50 based boards fsl,imx50-evk has been used in a devicetree for a while. kobo,aura will be used soon. Signed-off-by: Jonathan Neuschäfer Signed-off-by: Shawn Guo commit 189733b0a7e4147d55aa1b26f8741dcc82615ea5 Author: Jonathan Neuschäfer Date: Sun Mar 31 21:16:00 2019 +0200 dt-bindings: Add vendor prefix for Rakuten Kobo, Inc. Rakuten Kobo, Inc. (formerly Kobo, Inc.) is a company that sells e-book readers and related products. More information is available at: - https://en.wikipedia.org/wiki/Kobo_Inc. - https://www.kobo.com/ Signed-off-by: Jonathan Neuschäfer Reviewed-by: Rob Herring Signed-off-by: Shawn Guo commit 0672d22a19244cdb0e5c753125c1a55a120db5d0 Author: Fabio Estevam Date: Wed Apr 3 19:12:41 2019 -0300 ARM: dts: imx: Fix the AR803X phy-mode Commit 6d4cd041f0af ("net: phy: at803x: disable delay only for RGMII mode") exposed an issue on imx DTS files using AR8031/AR8035 PHYs. The end result is that the boards can no longer obtain an IP address via UDHCP, for example. Quoting Andrew Lunn: "The problem here is, all the DTs were broken since day 0. However, because the PHY driver was also broken, nobody noticed and it worked. Now that the PHY driver has been fixed, all the bugs in the DTs now become an issue" To fix this problem, the phy-mode property needs to be "rgmii-id", which has the following meaning as per Documentation/devicetree/bindings/net/ethernet.txt: "RGMII with internal RX and TX delays provided by the PHY, the MAC should not add the RX or TX delays in this case)" Tested on imx6-sabresd, imx6sx-sdb and imx7d-pico boards with successfully restored networking. Based on the initial submission from Steve Twiss for the imx6qdl-sabresd. Signed-off-by: Fabio Estevam Tested-by: Baruch Siach Tested-by: Soeren Moch Tested-by: Steve Twiss Tested-by: Adam Thomson Signed-off-by: Steve Twiss Tested-by: Marc Kleine-Budde Signed-off-by: Marc Kleine-Budde Signed-off-by: Shawn Guo commit cadb32a9c118a1443a95c7a0bbec086b773a0f32 Author: Andrew F. Davis Date: Fri Mar 29 13:13:12 2019 -0500 ARM: dts: imx6qdl-var-dart: Use new CODEC reset pin name The correct DT property for specifying a GPIO used for reset is "reset-gpios", the driver now accepts this name, use it here. Signed-off-by: Andrew F. Davis Signed-off-by: Shawn Guo commit c83bbdc227138d6fdc3ddfa8f7396d8f2b631ecf Author: Andrew F. Davis Date: Fri Mar 29 13:13:11 2019 -0500 ARM: dts: imx6qdl-gw5903: Use new CODEC reset pin name The correct DT property for specifying a GPIO used for reset is "reset-gpios", the driver now accepts this name, use it here. Signed-off-by: Andrew F. Davis Signed-off-by: Shawn Guo commit 1268d8339ca46e3a5c642b38baa1512a19378af4 Author: Andrew F. Davis Date: Fri Mar 29 13:13:10 2019 -0500 ARM: dts: mx6qdl-zii-rdu2: Use new CODEC reset pin name The correct DT property for specifying a GPIO used for reset is "reset-gpios", the driver now accepts this name, use it here. Note the GPIO polarity in the driver was ignored before and always assumed to be active low, when all the DTs are fixed we will start respecting the specified polarity. Switch polarity in DT to the currently assumed one, this way when the driver changes the behavior will not change. Signed-off-by: Andrew F. Davis Signed-off-by: Shawn Guo commit b8c7e2c39dd5369d1cfcdab4630725d97f8987ac Merge: 93e212547700 e0a7683d30e9 Author: David S. Miller Date: Wed Apr 10 19:27:43 2019 -0700 Merge branch 'net-sched-taprio-fix-picos_per_byte-miscalculation' Leandro Dorileo says: ==================== net/sched: taprio: fix picos_per_byte miscalculation This set fixes miscalculations based on invalid link speed values. Changes in v6: + Avoid locking a spinlock while calling __ethtool_get_link_ksettings() (suggested by: Cong Wang); Changes in v5: + Don't iterate over all the net_device maintained list (suggested by: Florian Fainelli); Changes in v4: + converted pr_info calls to netdev_dbg (suggested by: Florian Fainelli); Changes in v3: + yet pr_info() format warnings; Changes in v2: + fixed pr_info() format both on cbs and taprio patches; ==================== Signed-off-by: David S. Miller commit e0a7683d30e91e30ee6cf96314ae58a0314a095e Author: Leandro Dorileo Date: Mon Apr 8 10:12:18 2019 -0700 net/sched: cbs: fix port_rate miscalculation The Credit Based Shaper heavily depends on link speed to calculate the scheduling credits, we can't properly calculate the credits if the device has failed to report the link speed. In that case we can't dequeue packets assuming a wrong port rate that will result into an inconsistent credit distribution. This patch makes sure we fail to dequeue case: 1) __ethtool_get_link_ksettings() reports error or 2) the ethernet driver failed to set the ksettings' speed value (setting link speed to SPEED_UNKNOWN). Additionally we properly re calculate the port rate whenever the link speed is changed. Fixes: 3d0bd028ffb4a ("net/sched: Add support for HW offloading for CBS") Signed-off-by: Leandro Dorileo Reviewed-by: Vedang Patel Signed-off-by: David S. Miller commit 7b9eba7ba0c1b24df42b70b62d154b284befbccf Author: Leandro Dorileo Date: Mon Apr 8 10:12:17 2019 -0700 net/sched: taprio: fix picos_per_byte miscalculation The Time Aware Priority Scheduler is heavily dependent to link speed, it relies on it to calculate transmission bytes per cycle, we can't properly calculate the so called budget if the device has failed to report the link speed. In that case we can't dequeue packets assuming a wrong budget. This patch makes sure we fail to dequeue case: 1) __ethtool_get_link_ksettings() reports error or 2) the ethernet driver failed to set the ksettings' speed value (setting link speed to SPEED_UNKNOWN). Additionally we re calculate the budget whenever the link speed is changed. Fixes: 5a781ccbd19e4 ("tc: Add support for configuring the taprio scheduler") Signed-off-by: Leandro Dorileo Reviewed-by: Vedang Patel Signed-off-by: David S. Miller commit b7b4fda2636296471e29b78c2aa9535d7bedb7a0 Author: Andrey Smirnov Date: Thu Mar 28 23:49:24 2019 -0700 ARM: dts: imx50: Specify IMX5_CLK_IPG as "ahb" clock to SDMA Since 25aaa75df1e6 SDMA driver uses clock rates of "ipg" and "ahb" clock to determine if it needs to configure the IP block as operating at 1:1 or 1:2 clock ratio (ACR bit in SDMAARM_CONFIG). Specifying both clocks as IMX5_CLK_SDMA results in driver incorrectly thinking that ratio is 1:1 which results in broken SDMA funtionality. Fix the code to specify IMX5_CLK_AHB as "ahb" clock for SDMA, to avoid detecting incorrect clock ratio. Signed-off-by: Andrey Smirnov Cc: Angus Ainslie (Purism) Cc: Chris Healy Cc: Lucas Stach Cc: Fabio Estevam Cc: Shawn Guo Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Shawn Guo commit 918bbde8085ae147a43dcb491953e0dd8f3e9d6a Author: Andrey Smirnov Date: Thu Mar 28 23:49:23 2019 -0700 ARM: dts: imx51: Specify IMX5_CLK_IPG as "ahb" clock to SDMA Since 25aaa75df1e6 SDMA driver uses clock rates of "ipg" and "ahb" clock to determine if it needs to configure the IP block as operating at 1:1 or 1:2 clock ratio (ACR bit in SDMAARM_CONFIG). Specifying both clocks as IMX5_CLK_SDMA results in driver incorrectly thinking that ratio is 1:1 which results in broken SDMA funtionality. Fix the code to specify IMX5_CLK_AHB as "ahb" clock for SDMA, to avoid detecting incorrect clock ratio. Signed-off-by: Andrey Smirnov Cc: Angus Ainslie (Purism) Cc: Chris Healy Cc: Lucas Stach Cc: Fabio Estevam Cc: Shawn Guo Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Shawn Guo commit 28c168018e0902c67eb9c60d0fc4c8aa166c4efe Author: Andrey Smirnov Date: Thu Mar 28 23:49:22 2019 -0700 ARM: dts: imx53: Specify IMX5_CLK_IPG as "ahb" clock to SDMA Since 25aaa75df1e6 SDMA driver uses clock rates of "ipg" and "ahb" clock to determine if it needs to configure the IP block as operating at 1:1 or 1:2 clock ratio (ACR bit in SDMAARM_CONFIG). Specifying both clocks as IMX5_CLK_SDMA results in driver incorrectly thinking that ratio is 1:1 which results in broken SDMA funtionality. Fix the code to specify IMX5_CLK_AHB as "ahb" clock for SDMA, to avoid detecting incorrect clock ratio. Signed-off-by: Andrey Smirnov Cc: Angus Ainslie (Purism) Cc: Chris Healy Cc: Lucas Stach Cc: Fabio Estevam Cc: Shawn Guo Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Shawn Guo commit cc839d0f8c284fcb7591780b568f13415bbb737c Author: Andrey Smirnov Date: Thu Mar 28 23:49:21 2019 -0700 ARM: dts: imx6sx: Specify IMX6SX_CLK_IPG as "ahb" clock to SDMA Since 25aaa75df1e6 SDMA driver uses clock rates of "ipg" and "ahb" clock to determine if it needs to configure the IP block as operating at 1:1 or 1:2 clock ratio (ACR bit in SDMAARM_CONFIG). Specifying both clocks as IMX6SL_CLK_SDMA results in driver incorrectly thinking that ratio is 1:1 which results in broken SDMA funtionality. Fix the code to specify IMX6SL_CLK_AHB as "ahb" clock for SDMA, to avoid detecting incorrect clock ratio. Signed-off-by: Andrey Smirnov Cc: Angus Ainslie (Purism) Cc: Chris Healy Cc: Lucas Stach Cc: Fabio Estevam Cc: Shawn Guo Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Shawn Guo commit c5ed5daa65d5f665e666b76c3dbfa503066defde Author: Andrey Smirnov Date: Thu Mar 28 23:49:20 2019 -0700 ARM: dts: imx6sll: Specify IMX6SLL_CLK_IPG as "ipg" clock to SDMA Since 25aaa75df1e6 SDMA driver uses clock rates of "ipg" and "ahb" clock to determine if it needs to configure the IP block as operating at 1:1 or 1:2 clock ratio (ACR bit in SDMAARM_CONFIG). Specifying both clocks as IMX6SLL_CLK_SDMA result in driver incorrectly thinking that ratio is 1:1 which results in broken SDMA funtionality. Fix the code to specify IMX6SLL_CLK_IPG as "ipg" clock for SDMA, to avoid detecting incorrect clock ratio. Signed-off-by: Andrey Smirnov Cc: Angus Ainslie (Purism) Cc: Chris Healy Cc: Lucas Stach Cc: Fabio Estevam Cc: Shawn Guo Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Shawn Guo commit 7b3132ecefdd1fcdf6b86e62021d0e55ea8034db Author: Andrey Smirnov Date: Thu Mar 28 23:49:19 2019 -0700 ARM: dts: imx6ul: Specify IMX6UL_CLK_IPG as "ipg" clock to SDMA Since 25aaa75df1e6 SDMA driver uses clock rates of "ipg" and "ahb" clock to determine if it needs to configure the IP block as operating at 1:1 or 1:2 clock ratio (ACR bit in SDMAARM_CONFIG). Specifying both clocks as IMX6UL_CLK_SDMA results in driver incorrectly thinking that ratio is 1:1 which results in broken SDMA funtionality. Fix the code to specify IMX6UL_CLK_IPG as "ipg" clock for SDMA, to avoid detecting incorrect clock ratio. Signed-off-by: Andrey Smirnov Cc: Angus Ainslie (Purism) Cc: Chris Healy Cc: Lucas Stach Cc: Fabio Estevam Cc: Shawn Guo Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Shawn Guo commit 412b032a1dc72fc9d1c258800355efa6671b6315 Author: Andrey Smirnov Date: Thu Mar 28 23:49:18 2019 -0700 ARM: dts: imx7d: Specify IMX7D_CLK_IPG as "ipg" clock to SDMA Since 25aaa75df1e6 SDMA driver uses clock rates of "ipg" and "ahb" clock to determine if it needs to configure the IP block as operating at 1:1 or 1:2 clock ratio (ACR bit in SDMAARM_CONFIG). Specifying both clocks as IMX7D_CLK_SDMA results in driver incorrectly thinking that ratio is 1:1 which results in broken SDMA funtionality. Fix the code to specify IMX7D_CLK_IPG as "ipg" clock for SDMA, to avoid detecting incorrect clock ratio. Signed-off-by: Andrey Smirnov Cc: Angus Ainslie (Purism) Cc: Chris Healy Cc: Lucas Stach Cc: Fabio Estevam Cc: Shawn Guo Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Shawn Guo commit 8979117765c19edc3b01cc0ef853537bf93eea4b Author: Andrey Smirnov Date: Thu Mar 28 23:49:17 2019 -0700 ARM: dts: imx6sx: Specify IMX6SX_CLK_IPG as "ipg" clock to SDMA Since 25aaa75df1e6 SDMA driver uses clock rates of "ipg" and "ahb" clock to determine if it needs to configure the IP block as operating at 1:1 or 1:2 clock ratio (ACR bit in SDMAARM_CONFIG). Specifying both clocks as IMX6SX_CLK_SDMA results in driver incorrectly thinking that ratio is 1:1 which results in broken SDMA funtionality. Fix the code to specify IMX6SX_CLK_IPG as "ipg" clock for SDMA, to avoid detecting incorrect clock ratio. Signed-off-by: Andrey Smirnov Cc: Angus Ainslie (Purism) Cc: Chris Healy Cc: Lucas Stach Cc: Fabio Estevam Cc: Shawn Guo Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Shawn Guo commit b14c872eebc501b9640b04f4a152df51d6eaf2fc Author: Andrey Smirnov Date: Thu Mar 28 23:49:16 2019 -0700 ARM: dts: imx6qdl: Specify IMX6QDL_CLK_IPG as "ipg" clock to SDMA Since 25aaa75df1e6 SDMA driver uses clock rates of "ipg" and "ahb" clock to determine if it needs to configure the IP block as operating at 1:1 or 1:2 clock ratio (ACR bit in SDMAARM_CONFIG). Specifying both clocks as IMX6QDL_CLK_SDMA results in driver incorrectly thinking that ratio is 1:1 which results in broken SDMA funtionality(this at least breaks RAVE SP serdev driver on RDU2). Fix the code to specify IMX6QDL_CLK_IPG as "ipg" clock for SDMA, to avoid detecting incorrect clock ratio. Signed-off-by: Andrey Smirnov Reviewed-by: Lucas Stach Cc: Angus Ainslie (Purism) Cc: Chris Healy Cc: Lucas Stach Cc: Fabio Estevam Cc: Shawn Guo Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Tested-by: Adam Ford Signed-off-by: Shawn Guo commit e345fd42493c1e3517207762f2588b9e293fa47f Author: Rui Miguel Silva Date: Thu Mar 28 14:25:16 2019 +0000 ARM: dts: imx7s-warp: add ov2680 sensor node Warp7 comes with a Omnivision OV2680 sensor, add the node here to make complete the camera data path for this system. Add the needed regulator to the analog voltage supply, the port and endpoints in mipi_csi node and the pinctrl for the reset gpio. Signed-off-by: Rui Miguel Silva Signed-off-by: Shawn Guo commit 2cd37a97d1ea5861b33822c364554061244b1322 Author: Rui Miguel Silva Date: Thu Mar 28 14:25:15 2019 +0000 ARM: dts: imx7s-warp: add csi and mipi_csi node Add and enable csi and mipi_csi nodes. Signed-off-by: Rui Miguel Silva Signed-off-by: Shawn Guo commit 6a2736fccfb4491c338286bd025c04c8233c36f5 Author: Rui Miguel Silva Date: Thu Mar 28 14:25:14 2019 +0000 ARM: dts: imx7s: Add video mux, csi and mipi_csi Add device tree nodes for csi, video multiplexer and mipi-csi. Signed-off-by: Rui Miguel Silva Reviewed-by: Laurent Pinchart Signed-off-by: Shawn Guo commit 94a905a79f2cf337376c195acda406a2385792f4 Author: Rui Miguel Silva Date: Thu Mar 28 14:25:13 2019 +0000 ARM: dts: imx7s: add multiplexer controls The IOMUXC General Purpose Register has bitfield to control video bus multiplexer to control the CSI input between the MIPI-CSI2 and parallel interface. Add that register and mask. Signed-off-by: Rui Miguel Silva Reviewed-by: Philipp Zabel Signed-off-by: Shawn Guo commit 8137474b9dd4298f7f0ed541b859f30465cbd8a8 Author: Rui Miguel Silva Date: Thu Mar 28 14:25:12 2019 +0000 ARM: dts: imx7s: add mipi phy power domain Add power domain index 0 related with mipi-phy to imx7s. While at it rename pcie power-domain node to remove pgc prefix. Signed-off-by: Rui Miguel Silva Signed-off-by: Shawn Guo commit 071f785511606f2f8732930dd947bed696411d6e Author: Peng Ma Date: Tue Mar 12 09:50:18 2019 +0800 arm64: dts: lx2160a: add sata node support Add SATA device nodes for fsl-lx2160a and enable support for QDS and RDB boards. Signed-off-by: Peng Ma Signed-off-by: Shawn Guo commit 3f3d795804352d4043d83cc4ee4414b5e96e378a Author: Peng Ma Date: Mon Mar 11 15:20:13 2019 +0800 arm64: dts: ls1028a: Corrected the SATA ecc address Ls1028a SATA ecc address with more than 32 bit, so we should corrrect the address. Signed-off-by: Peng Ma Signed-off-by: Shawn Guo commit 684a586741e2be211ca9bc800ae631b69fb3f8aa Author: Bruno Thomsen Date: Wed Apr 3 08:44:27 2019 +0200 ARM: dts: tq imx7d board support This adds support for the TQ TQMa7D SoM together with the MBa7 carrier board and it's based on the NXP i.MX7Dual SoC. Signed-off-by: Bruno Thomsen Signed-off-by: Shawn Guo commit c924f0c07e482c92a74173611d7a2611f91bab22 Author: Bruno Thomsen Date: Wed Apr 3 08:44:26 2019 +0200 ARM: dts: tq imx7s board support This adds support for the TQ TQMa7S SoM together with the MBa7 carrier board and it's based on the NXP i.MX7Solo SoC. Signed-off-by: Bruno Thomsen Signed-off-by: Shawn Guo commit a80a1af6ec8ac59fdddeb013d7c1572bcae4f6eb Author: Bruno Thomsen Date: Wed Apr 3 08:44:25 2019 +0200 ARM: dts: tq imx7 common board support This adds TQMa7 and MBa7 board support. TQMa7 can be mounted with either i.MX7 Solo or Dual. All TQMa7 board variants can be mounted in MBa7 carrier board. Signed-off-by: Bruno Thomsen Signed-off-by: Shawn Guo commit e2f6a7630fc1545c18f1648ca27ac5b3ca2abe13 Author: Bruno Thomsen Date: Wed Apr 3 08:44:24 2019 +0200 dt-bindings: arm: add TQ boards MBa is a series of Carrier Boards / Single Board Computers (SBC) for evaluation of TQMa SoMs. The MBa7 carrier board can only interface with TQMa7 modules. The TQMa7 module can only be mounted with NXP i.MX7 Solo or Dual SoCs. Primary compatible strings are of the form "tq,-". Signed-off-by: Bruno Thomsen Reviewed-by: Rob Herring Signed-off-by: Shawn Guo commit e51fb2536aeafb729cf919f99418f88026c773e9 Author: Bruno Thomsen Date: Wed Apr 3 08:44:23 2019 +0200 dt-bindings: add vendor prefix for TQ Systems GmbH TQ is a German embedded System-on-Module manufacture. Signed-off-by: Bruno Thomsen Reviewed-by: Rob Herring Signed-off-by: Shawn Guo commit bc840f3357b8c471cfda25980efafb59dfbc1864 Merge: 9e98c678c2d6 90751f686e3f Author: Stephen Boyd Date: Wed Apr 10 15:59:11 2019 -0700 Merge tag 'meson-clk-5.2' of https://github.com/BayLibre/clk-meson into clk-meson Pull Amlogic Meson clk driver updates from Neil Armstrong: - Adds VPU and Video Decoder clocks on Meson8b - Finally remove the wrong ABP Meson8b clock id - Adds Video Decoder, PCIe PLL & CPU Clocks on G12A - Re-expose SAR_ADC_SEL and CTS_OSCIN on G12A AO clock controller - Un-expose some AXG-Audio input clocks IDs * tag 'meson-clk-5.2' of https://github.com/BayLibre/clk-meson: clk: meson: meson8b: add the video decoder clock trees clk: meson: meson8b: add the VPU clock trees clk: meson: meson8b: add support for the GP_PLL clock on Meson8m2 clk: meson: meson8b: use a separate clock table for Meson8m2 clk: meson-g12a: add video decoder clocks clk: meson-g12a: add PCIE PLL clocks clk: meson-pll: add reduced specific clk_ops for G12A PCIe PLL clk: meson: g12a: add cpu clocks dt-bindings: clock: meson8b: export the video decoder clocks dt-bindings: clock: meson8b: export the VPU clock dt-bindings: clock: g12a-aoclk: expose CLKID_AO_CTS_OSCIN dt-bindings: clock: meson8b: drop the "ABP" clock definition dt-bindings: clk: g12a-clkc: add VDEC clock IDs dt-bindings: clock: axg-audio: unexpose controller inputs dt-bindings: clk: g12a-clkc: add PCIE PLL clock ID clk: g12a-aoclk: re-export CLKID_AO_SAR_ADC_SEL clock id clk: meson-g12a: add cpu clock bindings commit 14948e39445db674516ccabdf01090586ecfdc9b Author: Kimberly Brown Date: Thu Mar 14 16:05:15 2019 -0400 Drivers: hv: vmbus: Fix race condition with new ring_buffer_info mutex Fix a race condition that can result in a ring buffer pointer being set to null while a "_show" function is reading the ring buffer's data. This problem was discussed here: https://lkml.org/lkml/2018/10/18/779 To fix the race condition, add a new mutex lock to the "hv_ring_buffer_info" struct. Add a new function, "hv_ringbuffer_pre_init()", where a channel's inbound and outbound ring_buffer_info mutex locks are initialized. Acquire/release the locks in the "hv_ringbuffer_cleanup()" function, which is where the ring buffer pointers are set to null. Acquire/release the locks in the four channel-level "_show" functions that access ring buffer data. Remove the "const" qualifier from the "vmbus_channel" parameter and the "rbi" variable of the channel-level "_show" functions so that the locks can be acquired/released in these functions. Acquire/release the locks in hv_ringbuffer_get_debuginfo(). Remove the "const" qualifier from the "hv_ring_buffer_info" parameter so that the locks can be acquired/released in this function. Signed-off-by: Kimberly Brown Reviewed-by: Michael Kelley Signed-off-by: Sasha Levin commit 4713eb7b580a269f827ea82f4c25bebae963e0e8 Author: Kimberly Brown Date: Thu Mar 14 16:05:07 2019 -0400 Drivers: hv: vmbus: Set ring_info field to 0 and remove memset Set "ring_info->priv_read_index" to 0. Now, all of ring_info's fields are explicitly set in this function. The memset() call is no longer necessary, so remove it. Signed-off-by: Kimberly Brown Reviewed-by: Michael Kelley Signed-off-by: Sasha Levin commit fcedbb293ee4d67399a6c231c5e8b7ceecfac9bf Author: Kimberly Brown Date: Thu Mar 14 16:05:00 2019 -0400 Drivers: hv: vmbus: Refactor chan->state if statement The chan->state "if statement" was introduced in commit 6712cc9c2211 ("vmbus: don't return values for uninitalized channels"). That commit states that the purpose of the chan->state "if statement" is to prevent returning garbage or causing a kernel OOPS when the channel ring buffer is not initialized. The changes in this patch provide the same protection. Refactor the chan->state “if statement” in vmbus_chan_attr_show(): - Instead of checking the channel state in the "if statement", check whether the channel ring buffer pointer is NULL. Checking the ring buffer pointer makes this code consistent with hv_ringbuffer_get_debuginfo(). - Move the "if statement" to the four "_show" functions that access a channel ring buffer. Only four of the channel-level "_show" functions access a ring buffer. The ring buffer pointer does not need to be checked before calling the other "_show" functions, and moving the ring buffer pointer "if statement" to the "_show" functions that access a ring buffer makes the purpose of the "if statement" clear. Signed-off-by: Kimberly Brown Reviewed-by: Michael Kelley Signed-off-by: Sasha Levin commit 22391ac30ab9cc2ba610bf7ea2244840b83c8017 Merge: 0d413829bd20 efcd487c69b9 Author: Jens Axboe Date: Wed Apr 10 16:42:02 2019 -0600 Merge branch 'md-next' of https://github.com/liu-song-6/linux into for-5.2/block Pull MD changes from Song. * 'md-next' of https://github.com/liu-song-6/linux: md: add __acquires/__releases annotations to handle_active_stripes md: add __acquires/__releases annotations to (un)lock_two_stripes md: mark md_cluster_mod static md: use correct type in super_1_sync md: use correct type in super_1_load md: use correct types in md_bitmap_print_sb md: add a missing endianness conversion in check_sb_changes md: add mddev->pers to avoid potential NULL pointer dereference commit efcd487c69b9d968552a6bf80e7839c4f28b419d Author: Christoph Hellwig Date: Thu Apr 4 18:56:16 2019 +0200 md: add __acquires/__releases annotations to handle_active_stripes This tells sparse that we release and reacquire the device_lock and avoids a warning. Signed-off-by: Christoph Hellwig Signed-off-by: Song Liu commit 368ecade0532982c8916a49e66b8105413d8db59 Author: Christoph Hellwig Date: Thu Apr 4 18:56:15 2019 +0200 md: add __acquires/__releases annotations to (un)lock_two_stripes This tells sparse that we acquire/release the two stripe locks and avoids a warning. Signed-off-by: Christoph Hellwig Signed-off-by: Song Liu commit 2b598ee54a1e50323143a613aa29eb40377d8792 Author: Christoph Hellwig Date: Thu Apr 4 18:56:14 2019 +0200 md: mark md_cluster_mod static Sparse complains that it has no external declaration, and it turns out that it is never even used outside of md.c. So just mark it static and drop the export. Acked-by: Guoqing Jiang Signed-off-by: Christoph Hellwig Signed-off-by: Song Liu commit ae50640bebc48f1fc0092f16ea004c7c4d12c985 Author: Christoph Hellwig Date: Thu Apr 4 18:56:13 2019 +0200 md: use correct type in super_1_sync If we want to convert from a little endian format we need to cast to a little endian type, otherwise sparse will be unhappy. Signed-off-by: Christoph Hellwig Signed-off-by: Song Liu commit 00485d094244db47ae2bf4f738e8d0f8d9f5890f Author: Christoph Hellwig Date: Thu Apr 4 18:56:12 2019 +0200 md: use correct type in super_1_load If we want to convert from a little endian format we need to cast to a little endian type, otherwise sparse will be unhappy. Signed-off-by: Christoph Hellwig Signed-off-by: Song Liu commit c35403f82ced283807f31eeafc2a7aebf1b20331 Author: Christoph Hellwig Date: Thu Apr 4 18:56:11 2019 +0200 md: use correct types in md_bitmap_print_sb If we want to convert from a little endian format we need to cast to a little endian type, otherwise sparse will be unhappy. Signed-off-by: Christoph Hellwig Signed-off-by: Song Liu commit ed4d0a4ea11e19863952ac6a7cea3bbb27ccd452 Author: Christoph Hellwig Date: Thu Apr 4 18:56:10 2019 +0200 md: add a missing endianness conversion in check_sb_changes The on-disk value is little endian and we need to convert it to native endian before storing the value in the in-core structure. Fixes: 7564beda19b36 ("md-cluster/raid10: support add disk under grow mode") Cc: # 4.20+ Acked-by: Guoqing Jiang Signed-off-by: Christoph Hellwig Signed-off-by: Song Liu commit ee37e62191a59d253fc916b9fc763deb777211e2 Author: Yufen Yu Date: Tue Apr 2 14:22:14 2019 +0800 md: add mddev->pers to avoid potential NULL pointer dereference When doing re-add, we need to ensure rdev->mddev->pers is not NULL, which can avoid potential NULL pointer derefence in fallowing add_bound_rdev(). Fixes: a6da4ef85cef ("md: re-add a failed disk") Cc: Xiao Ni Cc: NeilBrown Cc: # 4.4+ Reviewed-by: NeilBrown Signed-off-by: Yufen Yu Signed-off-by: Song Liu commit fe9fd2ef383c2f5883fcd3f7adce0de9ce2556ff Author: James Morris Date: Wed Apr 10 14:59:20 2019 -0700 Revert "security: inode: fix a missing check for securityfs_create_file" This reverts commit d1a0846006e4325cc951ca0b05c02ed1d0865006. From Al Viro: "Rather bad way to do it - generally, register_filesystem() should be the last thing done by initialization. Any modular code that does unregister_filesystem() on failure exit is flat-out broken; here it's not instantly FUBAR, but it's a bloody bad example. What's more, why not let simple_fill_super() do it? Just static int fill_super(struct super_block *sb, void *data, int silent) { static const struct tree_descr files[] = { {"lsm", &lsm_ops, 0444}, {""} }; and to hell with that call of securityfs_create_file() and all its failure handling..." Signed-off-by: James Morris commit af3be70a32113787da9f15e4ce8a357ae6caa293 Author: Florian Fainelli Date: Wed Apr 3 10:56:33 2019 -0700 of: Improve of_phandle_iterator_next() error message Understanding why of_phandle_iterator_next() returns an error can sometimes be hard to decipher based solely on the error message, a typical error example is that #foo-cells = and the phandle property used has a smaller number of cells specified, e.g.: #thermal-sensor-cells = <1>; phandle = <&scmi_sensor> instead of: phandle <&scmi_sensor 0>; Instead, make it clear what the expectations are towards debugging incorrect Device Tree faster: OF: /thermal-zones/scmi-thermal: #thermal-sensor-cells = 1, found 0 instead Signed-off-by: Florian Fainelli Signed-off-by: Rob Herring commit 12eeae7147af32f7d3bbf0f1753313f88b8ce97b Author: Miquel Raynal Date: Mon Apr 1 15:09:00 2019 +0200 dt-bindings: connector: Spelling mistake Cosmetic change multpile -> multiple. Fixes: 593aa2b405f9 ("dt-bindings: add bindings for USB physical connector") Signed-off-by: Miquel Raynal Signed-off-by: Rob Herring commit a32c3d9d9807edb310afd4b618615b5efca1d5fc Author: Maxime Ripard Date: Mon Apr 1 13:06:59 2019 +0200 dt-bindings: Add schemas for simple-framebuffer The simple framebuffer is a binding that allows the bootloader to setup a framebuffer, describe it in the Device Tree for the OS to pick it up and use it as is. Replace the current binding by a schema to allow the validation tools to check those nodes. Cc: Bartlomiej Zolnierkiewicz Cc: Chen-Yu Tsai Cc: Hans de Goede Cc: Maxime Jourdan Signed-off-by: Maxime Ripard Signed-off-by: Rob Herring commit f83a6e5dea6cf71d39c6b70a07cbe99b4ef48fe1 Author: Maxime Ripard Date: Mon Apr 1 10:56:44 2019 +0200 of: address: Add support for the parent DMA bus Some SoCs have devices that are using a separate bus from the main bus to perform DMA. These buses might have some restrictions and/or different mapping than from the CPU side, so we'd need to express those using the usual dma-ranges, but using a different DT node than the node's parent. Now that the generic interconnect bindings are available, we can model an interconnect with the reserved name "dma-mem" for those use-cases. Reviewed-by: Robin Murphy Signed-off-by: Maxime Ripard Signed-off-by: Rob Herring commit 95835a8d473ee650d5fd13ff223f1cfd568b1bdd Author: Maxime Ripard Date: Mon Apr 1 10:56:43 2019 +0200 of: address: Retrieve a parent through a callback in __of_translate_address The __of_translate_address function is used to translate the device tree addresses to physical addresses using the various ranges property to create the offset. However, it's shared between the CPU addresses (based on the ranges property) and the DMA addresses (based on dma-ranges). Since we're going to add support for a DMA parent node that is not the DT parent node, we need to change the logic a bit to have a callback function that will retrieve the parent node we should use. Reviewed-by: Robin Murphy Signed-off-by: Maxime Ripard Signed-off-by: Rob Herring commit e5ffa40c0305621a0af512ee11d0e1ef199498e5 Author: Maxime Ripard Date: Mon Apr 1 10:56:42 2019 +0200 dt-bindings: bus: Add binding for the Allwinner MBUS controller The MBUS controller drives the MBUS that other devices in the SoC will use to perform DMA. It also has a register interface that allows to monitor and control the bandwidth and priorities for masters on that bus. Signed-off-by: Maxime Ripard Signed-off-by: Rob Herring commit c43a4469402f3d909c89af2c4523a786636605ea Author: Maxime Ripard Date: Mon Apr 1 10:56:41 2019 +0200 dt-bindings: interconnect: Add a dma interconnect name The current DT bindings assume that the DMA will be performed by the devices through their parent DT node, and rely on that assumption for the address translation using dma-ranges. However, some SoCs have devices that will perform DMA through another bus, with separate address translation rules. We therefore need to express that relationship, through the special interconnect name "dma-mem". Acked-by: Georgi Djakov Signed-off-by: Maxime Ripard Signed-off-by: Rob Herring commit ecb0abc1d8528015957fbd034be8bfe760363b3b Author: Chris Packham Date: Fri Mar 22 13:23:41 2019 +1300 of: use correct function prototype for of_overlay_fdt_apply() When CONFIG_OF_OVERLAY is not enabled the fallback stub for of_overlay_fdt_apply() does not match the prototype for the case when CONFIG_OF_OVERLAY is enabled. Update the stub to use the correct function prototype. Fixes: 39a751a4cb7e ("of: change overlay apply input data from unflattened to FDT") Signed-off-by: Chris Packham Reviewed-by: Frank Rowand Signed-off-by: Rob Herring commit 93e2125477006a98200628940e66c922572c0e73 Author: Jakub Kicinski Date: Wed Apr 10 13:18:57 2019 -0700 net: strparser: fix comment Fix comment. Signed-off-by: Jakub Kicinski Signed-off-by: David S. Miller commit 91800660bbe9d4ae7791f0e646e5736180f01fc0 Author: Tyrel Datwyler Date: Fri Mar 22 13:27:22 2019 -0500 PCI: rpaphp: Get/put device node reference during slot alloc/dealloc When allocating the slot structure we store a pointer to the associated device_node. We really should be incrementing the reference count, so add an of_node_get() during slot alloc and an of_node_put() during slot dealloc. Signed-off-by: Tyrel Datwyler Signed-off-by: Bjorn Helgaas commit fb26228bfc4ce3951544848555c0278e2832e618 Author: Tyrel Datwyler Date: Fri Mar 22 13:27:21 2019 -0500 PCI: rpadlpar: Fix leaked device_node references in add/remove paths The find_dlpar_node() helper returns a device node with its reference incremented. Both the add and remove paths use this helper for find the appropriate node, but fail to release the reference when done. Annotate the find_dlpar_node() helper with a comment about the incremented reference count and call of_node_put() on the obtained device_node in the add and remove paths. Also, fixup a reference leak in the find_vio_slot() helper where we fail to call of_node_put() on the vdevice node after we iterate over its children. Signed-off-by: Tyrel Datwyler Signed-off-by: Bjorn Helgaas commit c02f48e070bde326f55bd94544ca82291f7396e3 Author: Borislav Petkov Date: Fri Apr 5 06:28:11 2019 +0200 x86/microcode: Deprecate MICROCODE_OLD_INTERFACE This is the ancient loading interface which requires special tools to be used. The bigger problem with it is that it is as inadequate for proper loading of microcode as the late microcode loading interface is because it happens just as late. iucode_tool's manpage already warns people that it is deprecated. Deprecate it and turn it off by default along with a big fat warning in the Kconfig help. It will go away sometime in the future. Signed-off-by: Borislav Petkov Reviewed-by: Thomas Gleixner Cc: x86@kernel.org Link: https://lkml.kernel.org/r/20190405133010.24249-4-bp@alien8.de commit 24613a04ad1c0588c10f4b5403ca60a73d164051 Author: Borislav Petkov Date: Thu Apr 4 22:14:07 2019 +0200 x86/microcode: Fix the ancient deprecated microcode loading method Commit 2613f36ed965 ("x86/microcode: Attempt late loading only when new microcode is present") added the new define UCODE_NEW to denote that an update should happen only when newer microcode (than installed on the system) has been found. But it missed adjusting that for the old /dev/cpu/microcode loading interface. Fix it. Fixes: 2613f36ed965 ("x86/microcode: Attempt late loading only when new microcode is present") Signed-off-by: Borislav Petkov Reviewed-by: Thomas Gleixner Cc: Jann Horn Link: https://lkml.kernel.org/r/20190405133010.24249-3-bp@alien8.de commit 41475a3ebaceb270e47a77356ddc30960354cb00 Author: Petr Vorel Date: Thu Apr 4 20:23:22 2019 +0200 doc/kernel-parameters.txt: Deprecate ima_appraise_tcb Signed-off-by: Petr Vorel Signed-off-by: Mimi Zohar commit 3d45ad9260c35c597706847e196aae8d966a574f Author: Mimi Zohar Date: Wed Apr 3 22:12:17 2019 -0400 x86/ima: add missing include As reported by 0-DAY kernel test infrastructure: arch/x86//kernel/ima_arch.c: In function 'arch_get_ima_policy': >> arch/x86//kernel/ima_arch.c:78:4: error: implicit declaration of function 'set_module_sig_enforced' [-Werror=implicit-function-declaration] Signed-off-by: Mimi Zohar commit 7e94a7b659eefedda82cde97229a26f319fb1182 Author: Jann Horn Date: Thu Apr 4 13:11:28 2019 +0200 x86/microcode/intel: Refactor Intel microcode blob loading Change generic_load_microcode() to use the iov_iter API instead of a clumsy open-coded version which has to pay attention to __user data or kernel data, depending on the loading method. This allows to avoid explicit casting between user and kernel pointers. Because the iov_iter API makes it hard to read the same location twice, as a side effect, also fix a double-read of the microcode header (which could e.g. lead to out-of-bounds reads in microcode_sanity_check()). Not that it matters much, only root is allowed to load microcode anyway... [ bp: Massage a bit, sort function-local variables. ] Signed-off-by: Jann Horn Signed-off-by: Borislav Petkov Reviewed-by: Thomas Gleixner Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: x86-ml Link: https://lkml.kernel.org/r/20190404111128.131157-1-jannh@google.com commit 9726920b7ea287673eead69e5276b3abff91fd8c Author: Chris Wilson Date: Wed Apr 10 20:01:20 2019 +0100 drm/i915: Only reset the pinned kernel contexts on resume On resume, we know that the only pinned contexts in danger of seeing corruption are the kernel context, and so we do not need to walk the list of all GEM contexts as we tracked them on each engine. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190410190120.830-1-chris@chris-wilson.co.uk commit 3bfaf1f7044c6a3b1e00fcad2d0529f0da449d67 Merge: 669105a74a28 14d2bd53a47a Author: Sean Paul Date: Wed Apr 10 15:50:49 2019 -0400 Merge drm/drm-next into drm-misc-next Finally have a reason for a backmerge other than "it's been a while"! Backmerging drm-next to -misc-next to facilitate Rob Herring's work on Panfrost. Signed-off-by: Sean Paul commit d73f80f921fd323af8f35644fb9f3b129f465f66 Author: David Ahern Date: Wed Apr 10 10:05:51 2019 -0700 ipv4: Handle RTA_GATEWAY set to 0 Govindarajulu reported a regression with Network Manager which sends an RTA_GATEWAY attribute with the address set to 0. Fixup the handling of RTA_GATEWAY to only set fc_gw_family if the gateway address is actually set. Fixes: f35b794b3b405 ("ipv4: Prepare fib_config for IPv6 gateway") Reported-by: Govindarajulu Varadarajan Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 44b9b6ca251c0dabb9013339c4fef7f1f57be37a Merge: 4c75be07f938 73eb628ddfd3 Author: David S. Miller Date: Wed Apr 10 12:20:46 2019 -0700 Merge branch 'net-sched-move-back-qlen-to-per-CPU-accounting' Paolo Abeni says: ==================== net: sched: move back qlen to per CPU accounting The commit 46b1c18f9deb ("net: sched: put back q.qlen into a single location") introduced some measurable regression in the contended scenarios for lock qdisc. As Eric suggested we could replace q.qlen access with calls to qdisc_is_empty() in the datapath and revert the above commit. The TC subsystem updates qdisc->is_empty in a somewhat loose way: notably 'is_empty' is set only when the qdisc dequeue() calls return a NULL ptr. That is, the invocation after the last packet is dequeued. The above is good enough for BYPASS implementation - the only downside is that we end up avoiding the optimization for a very small time-frame - but will break hard things when internal structures consistency for classful qdisc relies on child qdisc_is_empty(). A more strict 'is_empty' update adds a relevant complexity to its life-cycle, so this series takes a different approach: we allow lockless qdisc to switch from per CPU accounting to global stats accounting when the NOLOCK bit is cleared. Since most pieces of infrastructure are already in place, this requires very little changes to the pfifo_fast qdisc, and any later NOLOCK qdisc can hook there with little effort - no need to maintain two different implementations. The first 2 patches removes direct qlen access from non core TC code, the 3rd and 4th patches place and use the infrastructure to allow stats account switching and the 5th patch is the actual revert. v1 -> v2: - fixed build issues - more descriptive commit message for patch 5/5 ==================== Signed-off-by: David S. Miller commit 73eb628ddfd3884d1e58a8022de2e78de7807fc6 Author: Paolo Abeni Date: Wed Apr 10 14:32:41 2019 +0200 Revert: "net: sched: put back q.qlen into a single location" This revert commit 46b1c18f9deb ("net: sched: put back q.qlen into a single location"). After the previous patch, when a NOLOCK qdisc is enslaved to a locking qdisc it switches to global stats accounting. As a consequence, when a classful qdisc accesses directly a child qdisc's qlen, such qdisc is not doing per CPU accounting and qlen value is consistent. In the control path nobody uses directly qlen since commit e5f0e8f8e45 ("net: sched: introduce and use qdisc tree flush/purge helpers"), so we can remove the contented atomic ops from the datapath. v1 -> v2: - complete the qdisc_qstats_atomic_qlen_dec() -> qdisc_qstats_cpu_qlen_dec() replacement, fix build issue - more descriptive commit message Signed-off-by: Paolo Abeni Signed-off-by: David S. Miller commit 8a53e616de294873fec1a75ddb77ecb3d225cee0 Author: Paolo Abeni Date: Wed Apr 10 14:32:40 2019 +0200 net: sched: when clearing NOLOCK, clear TCQ_F_CPUSTATS, too Since stats updating is always consistent with TCQ_F_CPUSTATS flag, we can disable it at qdisc creation time flipping such bit. In my experiments, if the NOLOCK flag is cleared, per CPU stats accounting does not give any measurable performance gain, but it waste some memory. Let's clear TCQ_F_CPUSTATS together with NOLOCK, when enslaving a NOLOCK qdisc to 'lock' one. Use stats update helper inside pfifo_fast, to cope correctly with TCQ_F_CPUSTATS flag change. As a side effect, q.qlen value for any child qdiscs is always consistent for all lock classfull qdiscs. Signed-off-by: Paolo Abeni Signed-off-by: David S. Miller commit 9c01c9f1f2a3ddbddbf3b233cc6bfa86f5a59af0 Author: Paolo Abeni Date: Wed Apr 10 14:32:39 2019 +0200 net: sched: always do stats accounting according to TCQ_F_CPUSTATS The core sched implementation checks independently for NOLOCK flag to acquire/release the root spin lock and for qdisc_is_percpu_stats() to account per CPU values in many places. This change update the last few places checking the TCQ_F_NOLOCK to do per CPU stats accounting according to qdisc_is_percpu_stats() value. The above allows to clean dev_requeue_skb() implementation a bit and makes stats update always consistent with a single flag. v1 -> v2: - do not move qdisc_is_empty definition, fix build issue Signed-off-by: Paolo Abeni Signed-off-by: David S. Miller commit 1f5e6fdd6aec7929e67afad1e42e35d894a119ae Author: Paolo Abeni Date: Wed Apr 10 14:32:38 2019 +0200 net: sched: prefer qdisc_is_empty() over direct qlen access When checking for root qdisc queue length, do not access directly q.qlen. In the following patches we will move back qlen accounting to per CPU values for NOLOCK qdiscs. Instead, prefer the qdisc_is_empty() helper usage. Signed-off-by: Paolo Abeni Signed-off-by: David S. Miller commit b0a231a26d56265521abbb6db1748accd6bb036a Author: Paolo Abeni Date: Wed Apr 10 14:32:37 2019 +0200 net: caif: avoid using qdisc_qlen() Such helper does not cope correctly with NOLOCK qdiscs. In the following patches we will move back qlen to per CPU values for such qdiscs, so qdisc_qlen_sum() is not an option, too. Instead, use qlen only for lock qdiscs, and always set flow off for NOLOCK qdiscs with a not empty tx queue. Signed-off-by: Paolo Abeni Signed-off-by: David S. Miller commit 669105a74a287b14cdec04c64eb51db1bb890f64 Author: Gerd Hoffmann Date: Wed Apr 10 09:48:28 2019 +0200 drm/bochs: use simple display pipe Signed-off-by: Gerd Hoffmann Acked-by: Noralf Trønnes Link: http://patchwork.freedesktop.org/patch/msgid/20190410074828.10296-1-kraxel@redhat.com commit 5c5373b51becbabb16390a5689722a7efd4600b2 Author: Gerd Hoffmann Date: Wed Apr 10 08:38:15 2019 +0200 drm: switch drm_fb_xrgb8888_to_rgb888_dstclip to accept __iomem dst Not all archs have the __io_virt() macro, so cirrus can't simply convert pointers that way. The drm format helpers have to use memcpy_toio() instead. This patch makes drm_fb_xrgb8888_to_rgb888_dstclip() accept a __iomem dst pointer and use memcpy_toio() instead of memcpy(). The helper function (drm_fb_xrgb8888_to_rgb888_line) has been changed to process a single scanline. Signed-off-by: Gerd Hoffmann Reviewed-by: Noralf Trønnes Link: http://patchwork.freedesktop.org/patch/msgid/20190410063815.17062-4-kraxel@redhat.com commit d653bd394823772f0696c0642be94d78d5562e41 Author: Gerd Hoffmann Date: Wed Apr 10 08:38:14 2019 +0200 drm: switch drm_fb_xrgb8888_to_rgb565_dstclip to accept __iomem dst Not all archs have the __io_virt() macro, so cirrus can't simply convert pointers that way. The drm format helpers have to use memcpy_toio() instead. This patch makes drm_fb_xrgb8888_to_rgb565_dstclip() accept a __iomem dst pointer and use memcpy_toio() instead of memcpy(). The helper function (drm_fb_xrgb8888_to_rgb565_line) has been changed to process a single scanline. Signed-off-by: Gerd Hoffmann Reviewed-by: Noralf Trønnes Link: http://patchwork.freedesktop.org/patch/msgid/20190410063815.17062-3-kraxel@redhat.com commit bf4f6d16c89466bbbe2f9c959a5ae366856f3111 Author: Gerd Hoffmann Date: Wed Apr 10 08:38:13 2019 +0200 drm: switch drm_fb_memcpy_dstclip to accept __iomem dst Not all archs have the __io_virt() macro, so cirrus can't simply convert pointers that way. The drm format helpers have to use memcpy_toio() instead. This patch makes drm_fb_memcpy_dstclip() accept a __iomem dst pointer and use memcpy_toio() instead of memcpy(). With that separating out the memcpy loop into the drm_fb_memcpy_lines() helper isn't useful any more, so move the code back into the calling functins. Signed-off-by: Gerd Hoffmann Reviewed-by: Noralf Trønnes Link: http://patchwork.freedesktop.org/patch/msgid/20190410063815.17062-2-kraxel@redhat.com commit 74676a8e247a2163a25fb0ef98f17b74fbad9d21 Author: Thor Thayer Date: Thu Apr 4 09:36:37 2019 -0500 arm64: dts: stratix10: Use new Stratix10 EDAC bindings Use the new Stratix10 binding format for EDAC nodes. Signed-off-by: Thor Thayer Signed-off-by: Borislav Petkov Acked-by: Dinh Nguyen Cc: James Morse Cc: Mark Rutland Cc: devicetree@vger.kernel.org Cc: linux-edac Cc: mark.rutland@arm.com Cc: mchehab@kernel.org Link: https://lkml.kernel.org/r/1554388597-28019-4-git-send-email-thor.thayer@linux.intel.com commit 71eec083eef10b1529f2300d6c3553f0949733a5 Author: Thor Thayer Date: Thu Apr 4 09:36:36 2019 -0500 Documentation: dt: edac: Add Stratix10 Peripheral bindings Add peripheral bindings for Stratix10 EDAC to capture the differences between the ARM64 and ARM32 architecture. Signed-off-by: Thor Thayer Signed-off-by: Borislav Petkov Reviewed-by: Rob Herring Cc: James Morse Cc: Mark Rutland Cc: devicetree@vger.kernel.org Cc: dinguyen@kernel.org Cc: linux-edac Cc: mark.rutland@arm.com Cc: mchehab@kernel.org Link: https://lkml.kernel.org/r/1554388597-28019-3-git-send-email-thor.thayer@linux.intel.com commit fe6382cd69de98802455e77040c6e00d9e12cc47 Author: Dmytro Laktyushkin Date: Tue Mar 26 13:26:37 2019 -0400 drm/amd/display: fix is odm head pipe logic Simply return true/false, don't iterate up the tree. Signed-off-by: Dmytro Laktyushkin Reviewed-by: Nikola Cornij Acked-by: Leo Li Signed-off-by: Alex Deucher commit cc1fec5724d16295979c8bb7cf27ac2f4696b19c Author: Nicholas Kazlauskas Date: Thu Mar 14 15:58:51 2019 -0400 drm/amd/display: Pass plane caps into amdgpu_dm_plane_init [Why] When deciding to add properties or expose formats on DRM planes we should be querying the caps for the DC plane it's supposed to represent. [How] Pass plane caps down into plane initialization, refactoring overlay plane initialization to have the overlay plane be represented by the first overlay capable DC plane. Signed-off-by: Nicholas Kazlauskas Reviewed-by: Leo Li Signed-off-by: Alex Deucher commit c7e557ab46a7395fd28936c24e12e06f1841279c Author: Leo Li Date: Wed Mar 20 09:52:14 2019 -0400 drm/amd/display: Clean up locking in dcn*_apply_ctx_for_surface() [Why] dcn*_disable_plane() doesn't unlock the pipe anymore, making the extra lock unnecessary. In addition - during full plane updates - all necessary pipes should be locked/unlocked together when modifying hubp to avoid tearing in pipesplit setups. [How] Remove redundant locks, and add function to lock all pipes. If an interdependent pipe update is required, lock down all pipes. Otherwise, lock only the top pipe for the updated pipe tree. Signed-off-by: Leo Li Reviewed-by: Tony Cheng Acked-by: Nicholas Kazlauskas Signed-off-by: Alex Deucher commit 113b7a010872117e90b16a3e411558db5cb5979e Author: Leo Li Date: Tue Mar 19 19:29:16 2019 -0400 drm/amd/display: Recreate private_obj->state during S3 resume [Why] When entering S3, amdgpu first calls DRM to cache the current atomic state, then commit the 'all-disabled' state. This sets dc->current_state to point at the private atomic object's dm_atomic_state->context, as any regular atomic commit would. Afterwards, amdgpu_dm calls dc_set_power_state() with S3 power state. This invalidates dc->current_state by wiping it to 0, consequently wiping dm_atomic_state->context. During resume, the cached atomic state is restored. When getting the private object however, the dm_atomic_state - containing the wiped context - is duplicated into the atomic state. This causes DC validation to fail during atomic check, as necessary function pointers in dc_state are now NULL. [How] Recreate the private object's dm_atomic_state->context during resume, restoring any static values such as function pointers. A TODO item is added to move static read-only values out of dc_state - they shouldn't be there anyways. Signed-off-by: Leo Li Reviewed-by: Nicholas Kazlauskas Signed-off-by: Alex Deucher commit fbd06ec492fc6e078a62664c5b4a0d74b90285be Author: Murton Liu Date: Mon Mar 25 14:51:28 2019 -0400 drm/amd/display: HDR visual confirmation incorrectly reports black color [Why] Checking against a TF that is unused causes us to default to black [How] Check against PQ instead Signed-off-by: Murton Liu Reviewed-by: Aric Cyr Acked-by: Leo Li Acked-by: Tony Cheng Signed-off-by: Alex Deucher commit d5ca5fdbeb76ef78af9a8291846d2c9f08ae414b Author: Eric Yang Date: Mon Mar 25 16:11:43 2019 -0400 drm/amd/display: fix underflow on boot [Why] New seamless boot sequence introduced a bug where front end is disabled without blanking otg. [How] Adjust the condition of blanking otg to match seamless boot. Signed-off-by: Eric Yang Reviewed-by: Anthony Koo Acked-by: Leo Li Acked-by: Tony Cheng Signed-off-by: Alex Deucher commit 15ae3b28f8ca406b449d36d36021e96b66aedb5d Author: Anthony Koo Date: Mon Mar 25 14:30:12 2019 -0400 drm/amd/display: disable link before changing link settings [Why] If link is already enabled at a different rate (for example 5.4 Gbps) then calling VBIOS command table to switch to a new rate (for example 2.7 Gbps) will not take effect. This can lead to link training failure to occur. [How] If the requested link rate is different than the current link rate, the link must be disabled in order to re-enable at the new link rate. In today's logic it is currently only impacting eDP since DP connection types will always disable the link during display detection, when initial link verification occurs. Signed-off-by: Anthony Koo Reviewed-by: Aric Cyr Acked-by: Leo Li Acked-by: Tony Cheng Signed-off-by: Alex Deucher commit c85fc65e2241bacbce35e3beb28ac4994e1e033a Author: Anthony Koo Date: Sat Mar 23 13:46:40 2019 -0400 drm/amd/display: init dc_config before rest of DC init [Why] In some cases we want DC init to take in some config options [How] Init dc_config before rest of DC init Signed-off-by: Anthony Koo Reviewed-by: Aric Cyr Acked-by: Leo Li Signed-off-by: Alex Deucher commit 86eb426a0f30ef538109a7b44f86051586390125 Author: SivapiriyanKumarasamy Date: Mon Mar 25 14:04:30 2019 -0400 drm/amd/display: Call hwss.set_cursor_sdr_white_level, if available [Why] In HDR configurations, the cursor - in SDR - needs to have it's white level boosted. [How] Program the cursor boost in update_dchubp_dpp like the other cursor attributes. Signed-off-by: SivapiriyanKumarasamy Reviewed-by: Anthony Koo Acked-by: Leo Li Acked-by: Reza Amini Signed-off-by: Alex Deucher commit 004fefa385b42740a1773381bbf4795ec6b168f5 Author: Nicholas Kazlauskas Date: Fri Mar 15 10:31:50 2019 -0400 drm/amd/display: Set surface color space from DRM plane state [Why] We need DC's color space to match the color encoding and color space specified by userspace to correctly render YUV surfaces. [How] Convert the DRM color encoding and color range properties to the appropriate DC colorspace option and update the color space when performing surface updates. Signed-off-by: Nicholas Kazlauskas Reviewed-by: Leo Li Signed-off-by: Alex Deucher commit 7ee3769a37d3f9d7352bb0182b0bf3a2beabe523 Author: Wenjing Liu Date: Fri Mar 22 19:33:46 2019 -0400 drm/amd/display: prefer preferred link cap over verified link settings [why] when preferred link cap is set, we should always use preferred in all validation. we should not use preferred for some validation but use verified for others. [how] create getter function that gets verified link cap. if preferred is set, return preferred link settings instead. Signed-off-by: Wenjing Liu Reviewed-by: Nikola Cornij Acked-by: Leo Li Signed-off-by: Alex Deucher commit e9164db72aa273a63a78f70b5d89a4509967551c Author: Josip Pavic Date: Thu Mar 21 15:04:32 2019 -0400 drm/amd/display: remove min reduction for abm 2.2 level 3 [Why] Image brightness compensation for solid color full screen images is expected to be optimal for ABM 2.2 at level 3. The min reduction that is currently being enforced prevents this from being achieved. [How] Remove the min reduction for ABM 2.2 at level 3 Signed-off-by: Josip Pavic Reviewed-by: Anthony Koo Acked-by: Leo Li Signed-off-by: Alex Deucher commit 2fbbd495e9fe0f6fffdf999833848bc2e928a1ea Author: Aric Cyr Date: Fri Mar 22 17:27:52 2019 -0400 drm/amd/display: 3.2.25 Signed-off-by: Aric Cyr Reviewed-by: Aric Cyr Acked-by: Leo Li Signed-off-by: Alex Deucher commit b4423fd9cf3e5ba0e36c42cee12db167dae6cf5e Author: Su Sung Chung Date: Thu Mar 21 15:40:44 2019 -0400 drm/amd/display: return correct dc_status for dcn10_validate_global [Why] Before it was returning false in the case of failure even though return type should be enum dc_status [How] Return DC_FAIL_UNSUPPORTED_1 instead Signed-off-by: Su Sung Chung Reviewed-by: Eric Yang Acked-by: Leo Li Signed-off-by: Alex Deucher commit a1e07ba89d49581471d64c48152dbe03b42bd025 Author: Nicholas Kazlauskas Date: Thu Mar 14 13:46:44 2019 -0400 drm/amd/display: Use plane->color_space for dpp if specified [Why] The input color space for the plane was previously ignored even if it was set. If a limited range YUV format was given to DC then the wrong color transformation matrix was being used since DC assumed that it was full range instead. [How] Respect the given color_space format for the plane if it isn't COLOR_SPACE_UNKNOWN. Otherwise, use the implicit default since DM didn't specify. Signed-off-by: Nicholas Kazlauskas Reviewed-by: Sun peng Li Acked-by: Aric Cyr Acked-by: Leo Li Signed-off-by: Alex Deucher commit 332c11914a76200dfbafc6b46ae5e728216aac00 Author: Nikola Cornij Date: Tue Mar 19 19:47:32 2019 -0400 drm/amd/display: Calculate link bandwidth in a common function [why] Currently link bandwidth is calculated in two places, using the same formula. They should be unified into calling one function. [how] Replace all implementations of link bandwidth calculation with a call to a function. Signed-off-by: Nikola Cornij Reviewed-by: Nikola Cornij Acked-by: Leo Li Signed-off-by: Alex Deucher commit 0de34efc7b5f1f34676dcdd7ed8bb8a20038724d Author: Dmytro Laktyushkin Date: Wed Mar 20 17:10:41 2019 -0400 drm/amd/display: fix clk_mgr naming clk_mgr is called dccg in dc_state, this change fixes that Signed-off-by: Dmytro Laktyushkin Reviewed-by: Eric Bernstein Acked-by: Leo Li Signed-off-by: Alex Deucher commit e49f69363adf8920883fff7e8ffecb802d897c6b Author: Wenjing Liu Date: Thu Mar 21 13:05:36 2019 -0400 drm/amd/display: use proper formula to calculate bandwidth from timing [why] The existing calculation uses a wrong formula to calculate bandwidth from timing. [how] Expose the existing proper function that calculates the bandwidth, so dc_link can use it to calculate timing bandwidth correctly. Signed-off-by: Wenjing Liu Reviewed-by: Jun Lei Acked-by: Leo Li Signed-off-by: Alex Deucher commit e5490464f45db8b8006bc62d29ec9280debd0ef9 Author: SivapiriyanKumarasamy Date: Tue Mar 19 15:21:50 2019 -0400 drm/amd/display: fix dp_hdmi_max_pixel_clk units [Why] We are incorrectly using dp_hdmi_max_pixel_clk because the units are not clear. [How] Rename to dp_hdmi_max_pixel_clk_in_khz, and change mode timing validation to use the value correctly. Signed-off-by: SivapiriyanKumarasamy Reviewed-by: Aric Cyr Acked-by: Leo Li Signed-off-by: Alex Deucher commit b62f95d1625100edfa473387fc250d666cf05998 Author: Nicholas Kazlauskas Date: Fri Mar 22 10:11:14 2019 -0400 drm/amd/display: Add debugfs entry for amdgpu_dm_visual_confirm [Why] DC provides a few visual confirmation debug options that can be dynamically changed at runtime to help debug surface programming issues but we don't have any way to access it from userspace. [How] Add the amdgpu_dm_visual_confirm debugfs entry. It accepts a string containing the DC visual confirm enum value using the debugfs attribute helpers. The debugfs_create_file_unsafe can be used instead of debugfs_create_file as per the documentation. v2: Use debugfs helpers for getting and setting the value (Christian) Cc: Leo Li Cc: Harry Wentland Signed-off-by: Nicholas Kazlauskas Reviewed-by: Leo Li Signed-off-by: Alex Deucher commit 2aa632c5ffbedb2ee0e68857683466ea788f17eb Author: Nicholas Kazlauskas Date: Fri Mar 22 09:59:32 2019 -0400 drm/amd/display: Initialize stream_update with memset The brace initialization used here generates warnings on some compilers. For example, on GCC 4.9: [...] In function ‘dm_determine_update_type_for_commit’: [...] error: missing braces around initializer [-Werror=missing-braces] struct dc_stream_update stream_update = { 0 }; ^ Use memset to make this more portable. v2: Specify the compiler / diagnostic in the commit message (Paul) Cc: Sun peng Li Cc: Harry Wentland Signed-off-by: Nicholas Kazlauskas Reviewed-by: Leo Li Signed-off-by: Alex Deucher commit 3d12beb319c4efa18d55454096cc523108320d17 Author: Nicholas Kazlauskas Date: Mon Mar 25 15:27:01 2019 -0400 drm/amd/display: Remove semicolon from to_dm_plane_state definition The extra ; in the macro definition creates an empty statement preventing any variable declarations from occuring after any use of to_dm_plane_state(...). Signed-off-by: Nicholas Kazlauskas Reviewed-by: Leo Li Signed-off-by: Alex Deucher commit bb5a2bdf36a8df79e1437b443299b7fe1ea3abfc Author: Yintian Tao Date: Tue Apr 9 20:33:20 2019 +0800 drm/amdgpu: support dpm level modification under virtualization v3 Under vega10 virtualuzation, smu ip block will not be added. Therefore, we need add pp clk query and force dpm level function at amdgpu_virt_ops to support the feature. v2: add get_pp_clk existence check and use kzalloc to allocate buf v3: return -ENOMEM for allocation failure and correct the coding style Signed-off-by: Yintian Tao Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit b0960c3592a39f1cc6fcab1793158f3850f72c77 Author: shaoyunl Date: Mon Apr 8 18:28:22 2019 -0400 drm/amdgpu: Always enable memory sharing within same XGMI hive XGMI Memory sharing will be disbaled by default for security reason after boot up, it depends on driver to enable the memory sharing Signed-off-by: shaoyunl Acked-by: Evan Quan Signed-off-by: Alex Deucher commit b9c8172eedc1a8285c373564174a724311394472 Author: Thor Thayer Date: Thu Apr 4 09:36:35 2019 -0500 Documentation: dt: edac: Fix Stratix10 IRQ bindings Fix Stratix10 ECC bindings to specify only the single bit error. On Stratix10 double bit errors are handled as SErrors instead of interrupts. Indicate the differences between the ARM64 and ARM32 EDAC architecture in the bindings. Signed-off-by: Thor Thayer Signed-off-by: Borislav Petkov Acked-by: Rob Herring Cc: James Morse Cc: Mark Rutland Cc: devicetree@vger.kernel.org Cc: dinguyen@kernel.org Cc: linux-edac Cc: mark.rutland@arm.com Cc: mchehab@kernel.org Link: https://lkml.kernel.org/r/1554388597-28019-2-git-send-email-thor.thayer@linux.intel.com commit 14cfde84e33e0c5bbb8c30e0c309c29e92d4118a Author: xinhui pan Date: Tue Apr 9 16:53:08 2019 +0800 drm/amdgpu: Add a check to avoid panic because of unexpected irqs IP initialize ras in late_init, because of the BUGs of PSP or any other components, driver receives unexpected irqs. It is ok to add such check anyway. Signed-off-by: xinhui pan Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit 7dd609da9b4e8bc4a5725392c3e528ad65cfe100 Author: xinhui pan Date: Mon Apr 8 14:57:28 2019 +0800 drm/amdgpu: sdma use amdgpu_ras_feature_enable_on_boot handle ras enable on boot. Signed-off-by: xinhui pan Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit 53d650548c386f1e9f246b05c40a1960dae37437 Author: xinhui pan Date: Mon Apr 8 14:56:46 2019 +0800 drm/amdgpu: gmc use amdgpu_ras_feature_enable_on_boot handle ras enable on boot. Signed-off-by: xinhui pan Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit a170d49d084da50b98b840d4cea506559823cb54 Author: xinhui pan Date: Mon Apr 8 14:55:45 2019 +0800 drm/amdgpu: gfx use amdgpu_ras_feature_enable_on_boot handle ras enable on boot. Signed-off-by: xinhui pan Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit 77de502b088fa4b9ed8060085d0c2d49b2e0a306 Author: xinhui pan Date: Mon Apr 8 14:49:37 2019 +0800 drm/amdgpu: Introduce another ras enable function Many parts of the whole SW stack can program the ras enablement state during the boot. Now we handle that case by adding one function which check the ras flags and choose different code path. Reviewed-by: Evan Quan Signed-off-by: xinhui pan Signed-off-by: Alex Deucher commit 191051a1bef8257313d4bc4eafbf201e35e135e7 Author: xinhui pan Date: Wed Apr 3 09:52:59 2019 +0800 drm/amdgpu: Make default ras error type to none Unless IP has implemented its own ras, use ERROR_NONE as the default type. Signed-off-by: xinhui pan Reviewed-by: Alex Deucher Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit 0e4f087ba2fe598a0add8b7cb2a3720e31ace1ed Author: Kevin Wang Date: Mon Apr 8 16:29:49 2019 +0800 drm/amd/powerplay: simplify the code of [get|set]_activity_monitor_coeff use smu_update_table_with_arg to replace old code logic Signed-off-by: Kevin Wang Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit 4825d8d6a0fe689bde668140600663f2c246e88f Author: Kevin Wang Date: Mon Apr 8 16:15:36 2019 +0800 drm/amd/powerplay: optimization function of smu_update_table in fact, the firmware need 2 parameter: 1.table_id, 2.XferArg so change the function interface to match the firmware code Signed-off-by: Kevin Wang Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit ad7999cd701e4e058765d35cf5274ee16801e986 Merge: 15ade5d2e777 f51dcd0f621c Author: Al Viro Date: Wed Apr 10 14:12:44 2019 -0400 Merge branch 'fixes' into work.icache commit fb652d3299023c8fd1af13c9f897c3e3d8a424d3 Author: Mark Bloch Date: Thu Mar 28 15:27:42 2019 +0200 RDMA/mlx5: Remove VF representor profile Now that we have a single IB device with multiple ports we can remove the VF representor profile. Signed-off-by: Mark Bloch Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 26628e2d58c910fa724312c6bcc3f4d12c9e805e Author: Mark Bloch Date: Thu Mar 28 15:27:41 2019 +0200 RDMA/mlx5: Move to single device multiport ports in switchdev mode Move from IB device (representor) per virtual function to single IB device with port per virtual function (port 1 represents the uplink). As number of ports is a static property of an IB device, declare the IB device with as many port as the possible according to the PCI bus. Signed-off-by: Mark Bloch Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit a989ea01cb10a12bcf339ddcbbea9c49e098609f Author: Mark Bloch Date: Thu Mar 28 15:27:40 2019 +0200 RDMA/mlx5: Move SMI caps logic We store the SMI information in the core device's struct, make sure we set that information only once (and not per port), while here make the for loop based on the actual size of the array. Signed-off-by: Mark Bloch Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 35b0aa67b29867cdeaee32f920da3cb300dbb851 Author: Mark Bloch Date: Thu Mar 28 15:27:39 2019 +0200 RDMA/mlx5: Refactor netdev affinity code The design of representors is such that once an IB representor is created, the netdev of representor already exists, we can use that fact to simplify the netdev affinity code. Signed-off-by: Mark Bloch Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit d5ed8ac34cefc678d0633bfb88d0e20523ba3068 Author: Mark Bloch Date: Thu Mar 28 15:27:38 2019 +0200 RDMA/mlx5: Move default representors SQ steering to rule to modify QP Currently the steering for SQs created on representors is done on creation, once we move to representors as ports of an IB device we need the port argument which is given only at the modify QP stage, adjust the code appropriately. Signed-off-by: Mark Bloch Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 6a4d00be08334f15502f2fbec08eabbdddc2e64a Author: Mark Bloch Date: Thu Mar 28 15:27:37 2019 +0200 RDMA/mlx5: Move rep into port struct In preparation of moving into a model of single IB device multiple ports move rep to be part of the port structure. We mark a representor device by setting is_rep, no functional change with this patch. Signed-off-by: Mark Bloch Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 5d8f6a0e92070c938f121258841ac36072d17cc3 Author: Mark Bloch Date: Thu Mar 28 15:27:36 2019 +0200 RDMA/mlx5: Use correct size for device resources On allocation we use the array size and on destruction num_ports, use the array size of destruction as well, in this context the array corresponds to the native/actual ports on the NIC so no need to adjust this logic for representors. Signed-off-by: Mark Bloch Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit da796ccb3e0eba24b15beedb168178c9b74ce6f2 Author: Mark Bloch Date: Thu Mar 28 15:27:35 2019 +0200 RDMA/mlx5: Move ports allocation to outside of INIT stage In downstream patches we will need access to the ports before doing any stages, in order to set net device per representor. Signed-off-by: Mark Bloch Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 4a6dc8552ab2f670fdff317a5ac1bc42f85a8772 Author: Mark Bloch Date: Thu Mar 28 15:27:34 2019 +0200 RDMA/mlx5: Free IB device on remove Simplify the code and move the deallocation of the IB device into the remove function. Signed-off-by: Mark Bloch Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 95579e785a9ae7d98c199b38c4b79b64a31d90fa Author: Mark Bloch Date: Thu Mar 28 15:27:33 2019 +0200 RDMA/mlx5: Move netdev info into the port struct Netdev info is stored in a separate array and holds data relevant on a per port basis, move it to be part of the port struct. Signed-off-by: Mark Bloch Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 5331fa0db73d6b27f90a0359a7ede70264491714 Merge: ab7efbe24b28 d9cb06759eca Author: Jason Gunthorpe Date: Wed Apr 10 14:59:27 2019 -0300 Merge branch 'mlx5-next' into rdma.git for-next From git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux Required for dependencies on the next series * branch 'mlx5-next': net/mlx5: E-Switch, add a new prio to be used by the RDMA side net/mlx5: E-Switch, don't use hardcoded values for FDB prios net/mlx5: Fix false compilation warning net/mlx5: Expose MPEIN (Management PCIE INfo) register layout net/mlx5: Add rate limit print macros net/mlx5: Add explicit bar address field net/mlx5: Replace dev_err/warn/info by mlx5_core_err/warn/info net/mlx5: Use dev->priv.name instead of dev_name net/mlx5: Make mlx5_core messages independent from mdev->pdev net/mlx5: Break load_one into three stages net/mlx5: Function setup/teardown procedures net/mlx5: Move health and page alloc init to mdev_init net/mlx5: Split mdev init and pci init net/mlx5: Remove redundant init functions parameter net/mlx5: Remove spinlock support from mlx5_write64 net/mlx5: Remove unused MLX5_*_DOORBELL_LOCK macros Signed-off-by: Jason Gunthorpe commit feb8846b3a4f88c8807dbbb8176defd419371887 Author: Manasi Navare Date: Fri Apr 5 15:48:21 2019 -0700 drm/i915/dp: Expose force_dsc_enable through debugfs Currently we use force_dsc_enable to force DSC from IGT, but we dont expose this value to userspace through debugfs. This patch exposes this through the same dsc_fec_support debugfs node per connector so that we can restore its value back after the tests are completed. Suggested-by: Imre Deak Cc: Imre Deak Cc: Lyude Paul Cc: Anusha Srivatsa Signed-off-by: Manasi Navare Reviewed-by: Imre Deak Link: https://patchwork.freedesktop.org/patch/msgid/20190405224821.32435-1-manasi.d.navare@intel.com commit ecb8e74dac1aaeea4005c9d8f21337f9423f3d8b Author: Mukesh Ojha Date: Wed Mar 27 13:20:18 2019 +0530 Yama: mark function as static Sparse complains yama_task_prctl can be static. Fix it by making it static. Signed-off-by: Mukesh Ojha Signed-off-by: James Morris commit d1a0846006e4325cc951ca0b05c02ed1d0865006 Author: Kangjie Lu Date: Fri Mar 15 16:00:25 2019 -0500 security: inode: fix a missing check for securityfs_create_file securityfs_create_file may fail. The fix checks its status and returns the error code upstream if it fails. Signed-off-by: Kangjie Lu Signed-off-by: James Morris commit 0b9dc6c9f01c4a726558b82a3b6082a89d264eb5 Author: Jann Horn Date: Wed Mar 27 16:55:08 2019 +0100 keys: safe concurrent user->{session,uid}_keyring access The current code can perform concurrent updates and reads on user->session_keyring and user->uid_keyring. Add a comment to struct user_struct to document the nontrivial locking semantics, and use READ_ONCE() for unlocked readers and smp_store_release() for writers to prevent memory ordering issues. Fixes: 69664cf16af4 ("keys: don't generate user and user session keyrings unless they're accessed") Signed-off-by: Jann Horn Signed-off-by: James Morris commit 5c7e372caa35d303e414caeb64ee2243fd3cac3d Author: Jann Horn Date: Wed Mar 27 16:39:38 2019 +0100 security: don't use RCU accessors for cred->session_keyring sparse complains that a bunch of places in kernel/cred.c access cred->session_keyring without the RCU helpers required by the __rcu annotation. cred->session_keyring is written in the following places: - prepare_kernel_cred() [in a new cred struct] - keyctl_session_to_parent() [in a new cred struct] - prepare_creds [in a new cred struct, via memcpy] - install_session_keyring_to_cred() - from install_session_keyring() on new creds - from join_session_keyring() on new creds [twice] - from umh_keys_init() - from call_usermodehelper_exec_async() on new creds All of these writes are before the creds are committed; therefore, cred->session_keyring doesn't need RCU protection. Remove the __rcu annotation and fix up all existing users that use __rcu. Signed-off-by: Jann Horn Signed-off-by: James Morris commit 1b26fcdb748eb20a73f72900d7f5ab537b2809be Author: Jann Horn Date: Wed Mar 27 00:08:41 2019 +0100 Yama: mark local symbols as static sparse complains that Yama defines functions and a variable as non-static even though they don't exist in any header. Fix it by making them static. Signed-off-by: Jann Horn Reviewed-by: Mukesh Ojha Signed-off-by: James Morris commit 83ca259489409a1fe8a83dad83a82f32174d4f31 Author: Dongli Zhang Date: Fri Apr 5 09:15:25 2019 +0800 swiotlb: dump used and total slots when swiotlb buffer is full So far the kernel only prints the requested size if swiotlb buffer if full. It is not possible to know whether it is simply an out of buffer, or it is because swiotlb cannot allocate buffer with the requested size due to fragmentation. As 'io_tlb_used' is available since commit 71602fe6d4e9 ("swiotlb: add debugfs to track swiotlb buffer usage"), both 'io_tlb_used' and 'io_tlb_nslabs' are printed when swiotlb buffer is full. Signed-off-by: Dongli Zhang Signed-off-by: Konrad Rzeszutek Wilk commit d263119387de9975d2acba1dfd3392f7c5979c18 Author: Vincenzo Frascino Date: Mon Apr 1 12:30:14 2019 +0100 arm64: compat: Reduce address limit Currently, compat tasks running on arm64 can allocate memory up to TASK_SIZE_32 (UL(0x100000000)). This means that mmap() allocations, if we treat them as returning an array, are not compliant with the sections 6.5.8 of the C standard (C99) which states that: "If the expression P points to an element of an array object and the expression Q points to the last element of the same array object, the pointer expression Q+1 compares greater than P". Redefine TASK_SIZE_32 to address the issue. Cc: Catalin Marinas Cc: Will Deacon Cc: Jann Horn Cc: Reported-by: Jann Horn Signed-off-by: Vincenzo Frascino [will: fixed typo in comment] Signed-off-by: Will Deacon commit abd16d68d65229e5acafdadc32704239131bf2ea Author: Sebastian Andrzej Siewior Date: Wed Apr 3 18:41:40 2019 +0200 x86/fpu: Use a feature number instead of mask in two more helpers After changing the argument of __raw_xsave_addr() from a mask to number Dave suggested to check if it makes sense to do the same for get_xsave_addr(). As it turns out it does. Only get_xsave_addr() needs the mask to check if the requested feature is part of what is supported/saved and then uses the number again. The shift operation is cheaper compared to fls64() (find last bit set). Also, the feature number uses less opcode space compared to the mask. :) Make the get_xsave_addr() argument a xfeature number instead of a mask and fix up its callers. Furthermore, use xfeature_nr and xfeature_mask consistently. This results in the following changes to the kvm code: feature -> xfeature_mask index -> xfeature_nr Suggested-by: Dave Hansen Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: "Eric W. Biederman" Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: "Jason A. Donenfeld" Cc: kvm ML Cc: Masami Hiramatsu Cc: Paolo Bonzini Cc: Peter Zijlstra Cc: "Radim Krčmář" Cc: Rasmus Villemoes Cc: Rik van Riel Cc: Sergey Senozhatsky Cc: Siarhei Liakh Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-12-bigeasy@linutronix.de commit 8cc76b1c75722196fb3d7ffe67cbfeb721a7b0e3 Author: Krzysztof Kozlowski Date: Mon Apr 8 07:19:26 2019 +0200 ARM: dts: exynos: Remove console argument from bootargs Remove the "console=ttySAC..." argument from DTSes having a proper stdout-path property. To make the code functionally equivalent, add the serial port baud rate and parity. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Sylwester Nawrocki commit 06d536094645c703ce29d75de91eddb438d361bf Author: Krzysztof Kozlowski Date: Mon Apr 8 07:19:25 2019 +0200 ARM: dts: exynos: Use stdout-path property instead of console in bootargs Replacing bootargs with stdout-path property in chosen node allows using early console by adding just 'earlycon' parameter to the kernel command line. Signed-off-by: Krzysztof Kozlowski Reviewed-by: Sylwester Nawrocki commit 35667d812c38a219ea2dc6f23d33db50de57099e Merge: 5a99ae0092fe 11140cc40ddc Author: Tony Lindgren Date: Wed Apr 10 09:06:01 2019 -0700 Merge branch 'omap-for-v5.2/am4-ddr3' into omap-for-v5.2/am4-pm-v2 commit 2997520c2d4e4d112e7b237bfa5a17a968ffc4bf Author: Marek Szyprowski Date: Tue Apr 9 11:56:02 2019 +0200 ARM: exynos: Set MCPM as mandatory for Exynos542x/5800 SoCs Support for Exynos5420/5422/5800 SoCs requires MCPM to properly boot all CPU cores on all currectly supported platforms: Peach Pit (Exynos5420), Odroid XU3/XU3lite/XU4/HC1 (Exynos5422) and Peach Pi (Exynos5800). Without it some CPU cores fail to come online. Remove then the ability to disable MCPM and make it mandatory when Exynos542x/5800 support is enabled. Signed-off-by: Marek Szyprowski Signed-off-by: Krzysztof Kozlowski commit e24e4712efad737ca09ff299276737331cd021d9 Author: Martin Schwidefsky Date: Wed Apr 10 12:28:41 2019 +0200 s390/rseq: use trap4 for RSEQ_SIG Use trap4 as the guard instruction for the restartable sequence abort handler. Signed-off-by: Martin Schwidefsky commit e91012ee855ad9f5ef2ab106a3de51db93fe4d0c Author: Arnd Bergmann Date: Mon Apr 8 23:26:20 2019 +0200 s390: cio: fix cio_irb declaration clang points out that the declaration of cio_irb does not match the definition exactly, it is missing the alignment attribute: ../drivers/s390/cio/cio.c:50:1: warning: section does not match previous declaration [-Wsection] DEFINE_PER_CPU_ALIGNED(struct irb, cio_irb); ^ ../include/linux/percpu-defs.h:150:2: note: expanded from macro 'DEFINE_PER_CPU_ALIGNED' DEFINE_PER_CPU_SECTION(type, name, PER_CPU_ALIGNED_SECTION) \ ^ ../include/linux/percpu-defs.h:93:9: note: expanded from macro 'DEFINE_PER_CPU_SECTION' extern __PCPU_ATTRS(sec) __typeof__(type) name; \ ^ ../include/linux/percpu-defs.h:49:26: note: expanded from macro '__PCPU_ATTRS' __percpu __attribute__((section(PER_CPU_BASE_SECTION sec))) \ ^ ../drivers/s390/cio/cio.h:118:1: note: previous attribute is here DECLARE_PER_CPU(struct irb, cio_irb); ^ ../include/linux/percpu-defs.h:111:2: note: expanded from macro 'DECLARE_PER_CPU' DECLARE_PER_CPU_SECTION(type, name, "") ^ ../include/linux/percpu-defs.h:87:9: note: expanded from macro 'DECLARE_PER_CPU_SECTION' extern __PCPU_ATTRS(sec) __typeof__(type) name ^ ../include/linux/percpu-defs.h:49:26: note: expanded from macro '__PCPU_ATTRS' __percpu __attribute__((section(PER_CPU_BASE_SECTION sec))) \ ^ Use DECLARE_PER_CPU_ALIGNED() here, to make the two match. Signed-off-by: Arnd Bergmann Reviewed-by: Nathan Chancellor Signed-off-by: Sebastian Ott Signed-off-by: Martin Schwidefsky commit 81a8f2beb32a5951ecf04385301f50879abc092b Author: Thomas Huth Date: Sun Apr 7 14:55:09 2019 +0200 s390/mm: silence compiler warning when compiling without CONFIG_PGSTE If CONFIG_PGSTE is not set (e.g. when compiling without KVM), GCC complains: CC arch/s390/mm/pgtable.o arch/s390/mm/pgtable.c:413:15: warning: ‘pmd_alloc_map’ defined but not used [-Wunused-function] static pmd_t *pmd_alloc_map(struct mm_struct *mm, unsigned long addr) ^~~~~~~~~~~~~ Wrap the function with "#ifdef CONFIG_PGSTE" to silence the warning. Signed-off-by: Thomas Huth Reviewed-by: David Hildenbrand Signed-off-by: Heiko Carstens Signed-off-by: Martin Schwidefsky commit dccbbaff174df174bb30c21e05d7b732d013ea1a Author: Julian Wiedmann Date: Thu Mar 28 10:45:11 2019 +0100 s390/qdio: eliminate queue's last_move cursor This cursor is used for debugging only. But since commit "s390/qdio: pass up count of ready-to-process SBALs" it effectively duplicates the first_to_check cursor, diverging for just a short moment when get_*_buffer_frontier() updates q->first_to_check. Signed-off-by: Julian Wiedmann Reviewed-by: Jens Remus Signed-off-by: Martin Schwidefsky commit 65e4f776385ac5cab021ad8d992e851375305906 Author: Julian Wiedmann Date: Thu Mar 28 10:43:46 2019 +0100 s390/qdio: simplify SBAL range calculation When passing a range of ready-to-process SBALs to the upper-layer driver, use the available 'count' instead of calculating the distance between the first_to_check and first_to_kick cursors. This simplifies the logic of the queue-scan path, and opens up the possibility of scanning all 128 SBALs in one go (as determining the reported count no longer requires wrap-around safe arithmetic on the queue's cursors). Signed-off-by: Julian Wiedmann Reviewed-by: Jens Remus Signed-off-by: Martin Schwidefsky commit b39544c6e02fdf86c394a9367b10e707b800f4d7 Author: Julian Wiedmann Date: Thu Mar 28 10:39:25 2019 +0100 s390/qdio: pass up count of ready-to-process SBALs When qdio_{in,out}bound_q_moved() scans a queue for pending work, it currently only returns a boolean to its caller. The interface to the upper-layer-drivers (qdio_kick_handler() and qdio_get_next_buffers()) then re-calculates the number of pending SBALs from the q->first_to_check and q->first_to_kick cursors. Refactor this so that whenever get_{in,out}bound_buffer_frontier() adjusted the queue's first_to_check cursor, it also returns the corresponding count of ready-to-process SBALs (and 0 else). A subsequent patch will then make use of this additional information. Signed-off-by: Julian Wiedmann Reviewed-by: Jens Remus Signed-off-by: Martin Schwidefsky commit 34298422cc442d65e0ee271e47f2926f63fe91e8 Author: Julian Wiedmann Date: Thu Mar 28 13:48:44 2019 +0100 s390/qdio: fix output of DSCI value in debug file The DSCI is a 1-byte field, placed at the start of an u32. So when printing it to a queue's debug state, limit the output to the part that's actually occupied by the DSCI. When the DSCI is set this gives us the expected output of '1', rather than the current (obscure) value of '16777216'. Suggested-by: Jens Remus Signed-off-by: Julian Wiedmann Reviewed-by: Jens Remus Signed-off-by: Martin Schwidefsky commit 093ddccb55157f909f203f9e50bce0c24431e791 Author: Vasily Gorbik Date: Mon Apr 1 19:11:08 2019 +0200 s390/protvirt: block kernel command line alteration Disallow kernel command line alteration via ipl parameter block if running in protected virtualization environment. Signed-off-by: Vasily Gorbik Signed-off-by: Martin Schwidefsky commit db9492cef45efc347beed7b617dfdfac399f662b Author: Vasily Gorbik Date: Mon Apr 1 19:11:04 2019 +0200 s390/protvirt: add memory sharing for diag 308 set/store Add sharing of ipl parameter block for diag 308 set/store calls to allow kvm access in protected virtualization environment. Signed-off-by: Vasily Gorbik Signed-off-by: Martin Schwidefsky commit 5abb9351dfd937d43193f4d09af9c72bfe2c4180 Author: Vasily Gorbik Date: Mon Apr 1 19:11:03 2019 +0200 s390/uv: introduce guest side ultravisor code The Ultravisor Call Facility (stfle bit 158) defines an API to the Ultravisor (UV calls), a mini hypervisor located at machine level. With help of the Ultravisor, KVM will be able to run "protected" VMs, special VMs whose memory and management data are unavailable to KVM. The protected VMs can also request services from the Ultravisor. The guest api consists of UV calls to share and unshare memory with the kvm hypervisor. To enable this feature support PROTECTED_VIRTUALIZATION_GUEST kconfig option has been introduced. Co-developed-by: Janosch Frank Signed-off-by: Janosch Frank Signed-off-by: Vasily Gorbik Signed-off-by: Martin Schwidefsky commit fd184e1a8b650159ca553c53dd0fee75df799b4a Author: Vasily Gorbik Date: Mon Apr 1 19:10:56 2019 +0200 s390: introduce .boot.preserved.data section compile time validation Same as for .boot.data section make sure that .boot.preserved.data sections of vmlinux and arch/s390/compressed/vmlinux match before producing the compressed kernel image. Symbols presence, order and sizes are cross-checked. Signed-off-by: Vasily Gorbik Signed-off-by: Martin Schwidefsky commit 1e941d39493f1820475d80729a03cd7ab8c3c86d Author: Vasily Gorbik Date: Mon Apr 1 19:10:51 2019 +0200 s390: move ipl block to .boot.preserved.data section .boot.preserved.data is a better fit for ipl block than .boot.data which is discarded after init. Reusing .boot.preserved.data allows to simplify code a little bit and avoid copying data from .boot.data to persistent variables. Signed-off-by: Vasily Gorbik Signed-off-by: Martin Schwidefsky commit bf9921a9c15bad089c08b94c300a6cafa035a612 Author: Gerald Schaefer Date: Mon Apr 1 19:10:45 2019 +0200 s390: introduce .boot.preserved.data section Introduce .boot.preserve.data section which is similar to .boot.data and "shared" between the decompressor code and the decompressed kernel. The decompressor will store values in it, and copy over to the decompressed image before starting it. This method allows to avoid using pre-defined addresses and other hacks to pass values between those boot phases. Unlike .boot.data section .boot.preserved.data is NOT a part of init data, and hence will be preserved for the kernel life time. Signed-off-by: Gerald Schaefer Signed-off-by: Vasily Gorbik Signed-off-by: Martin Schwidefsky commit 8455dad7ba8ca846ebc4d03c2ca905c12fc6a455 Author: Mika Kuoppala Date: Wed Apr 10 16:21:24 2019 +0300 drm/i915/icl: Don't warn on spurious interrupts There is a chance we can see spurious interrupts in live now. We have more engines enabled and that with more elaborate access patterns with pm and display, increases the chances hardware just makes a social call, without anything to work on. Remove the error as we have tests to actually probe if we really miss interrupt, instead of getting spurious ones. Note that now we do write to intr_dw even with a zero value. This is considered advantegous as the write is an ack that sw is done. Cc: Chris Wilson Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190410132124.21795-2-mika.kuoppala@linux.intel.com commit a087bafeeac7ef317b1e44c615e162129c9c0ee2 Author: Mika Kuoppala Date: Wed Apr 10 16:21:23 2019 +0300 drm/i915/icl: Handle rps interrupts without irq lock Unlike previous gens, we already hold the irq_lock on entering the rps handler so we can't use it as it is. Make a gen11 specific rps interrupt handler without locking. v2: return early (Chris) Cc: Chris Wilson Signed-off-by: Mika Kuoppala Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190410132124.21795-1-mika.kuoppala@linux.intel.com commit 322b38ce3dd6458b92ee25acee68c973281dbbde Author: Gustavo A. R. Silva Date: Wed Oct 17 16:28:51 2018 +0200 drm/nouveau/nvkm: mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch aims to suppress 29 missing-break-in-switch false positives. Addresses-Coverity-ID: 1456891 ("Missing break in switch") Addresses-Coverity-ID: 1324063 ("Missing break in switch") Addresses-Coverity-ID: 1324063 ("Missing break in switch") Addresses-Coverity-ID: 141432 ("Missing break in switch") Addresses-Coverity-ID: 141433 ("Missing break in switch") Addresses-Coverity-ID: 141434 ("Missing break in switch") Addresses-Coverity-ID: 141435 ("Missing break in switch") Addresses-Coverity-ID: 141436 ("Missing break in switch") Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit ee6a6500fe1f5c5a3f18de33fe0178a3c627f6d0 Author: Steven Rostedt (VMware) Date: Wed Apr 10 10:45:38 2019 -0400 ftrace: Remove ASSIGN_OPS_HASH() macro from ftrace.c The ASSIGN_OPS_HASH() macro was moved to fgraph.c where it was used, but for some reason it wasn't removed from ftrace.c, as it is no longer referenced there. Signed-off-by: Steven Rostedt (VMware) commit 07baeb04f37c952981d63359ff840118ce8f5434 Author: Sebastian Andrzej Siewior Date: Wed Apr 3 18:41:39 2019 +0200 x86/fpu: Make __raw_xsave_addr() use a feature number instead of mask Most users of __raw_xsave_addr() use a feature number, shift it to a mask and then __raw_xsave_addr() shifts it back to the feature number. Make __raw_xsave_addr() use the feature number as an argument. Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: "Jason A. Donenfeld" Cc: kvm ML Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Rik van Riel Cc: Sergey Senozhatsky Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-11-bigeasy@linutronix.de commit c77cebac96a9edf1f3a508b475110f5d44196901 Author: Maxime Ripard Date: Tue Apr 3 14:26:54 2018 +0200 clk: sunxi-ng: sun5i: Export the MBUS clock The MBUS clock is used by the MBUS controller, so let's export it so that we can use it in our DT node. Reviewed-by: Rob Herring Signed-off-by: Maxime Ripard commit 22f88e311399d4f68abc662934253f553edb18f2 Author: Maxime Ripard Date: Tue Apr 3 14:32:11 2018 +0200 ARM: dts: sun5i: Add the MBUS controller The MBUS (and its associated controller) is the bus in the Allwinner SoCs that DMA devices use in the system to access the memory. Among other things (and depending on the SoC generation), it can also enforce priorities or report bandwidth usages on a per-master basis. One of the most notable thing is that instead of having the same mapping for the RAM than the CPU, it maps it at address 0, which means we'll have to do address translation thanks to the dma-ranges property. Signed-off-by: Maxime Ripard commit 4ee91519e1dccc175665fe24bb20a47c6053575c Author: Rik van Riel Date: Wed Apr 3 18:41:38 2019 +0200 x86/fpu: Add an __fpregs_load_activate() internal helper Add a helper function that ensures the floating point registers for the current task are active. Use with preemption disabled. While at it, add fpregs_lock/unlock() helpers too, to be used in later patches. [ bp: Add a comment about its intended usage. ] Signed-off-by: Rik van Riel Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: Aubrey Li Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: "Jason A. Donenfeld" Cc: kvm ML Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Rik van Riel Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-10-bigeasy@linutronix.de commit d0b8ed47e83a2253897500ea4fcae8e8198942b4 Author: pierre Kuo Date: Tue Feb 19 15:45:00 2019 +0800 of: reserved_mem: fix reserve memory leak The __reserved_mem_init_node will call region specific reserved memory init codes, but once all compatibled init codes failed, the memory region will left in memory.reserved and cause leakage. Take cma reserve memory DTS for example, if user declare 1MB size, which is not align to (PAGE_SIZE << max(MAX_ORDER - 1, pageblock_order)), rmem_cma_setup will return -EINVAL. Meanwhile, rmem_dma_setup will also return -EINVAL since "reusable" property is not set. If finally there is no reserved memory init pick up this memory, kernel will left the 1MB leak in memory.reserved. This patch will remove this kind of memory from memory.reserved, only when __reserved_mem_init_node return neither 0 nor -ENOENT. Signed-off-by: pierre Kuo Signed-off-by: Rob Herring commit deb387d4af5a4be3b656b5d69ae4d87ccee325b8 Author: Maxime Ripard Date: Fri Mar 15 10:22:47 2019 +0100 of: property: Document that of_graph_get_endpoint_by_regs needs of_node_put The node returned by of_graph_get_endpoint_by_regs has a reference taken, and we need to put that reference back when done with the node. However, the documentation for that node doesn't mention it, so let's make sure it does. Signed-off-by: Maxime Ripard Signed-off-by: Rob Herring commit 99838f011a3a8fcfbda526bb17b2905e07288808 Author: Rob Herring Date: Fri Mar 15 18:59:21 2019 -0500 dt-bindings: Require child nodes type to be 'object' A node is always an object (aka a dictionary), so make that explicit for child node schemas. A meta-schema update will enforce having 'type' specified. Cc: Mark Rutland Cc: Thomas Gleixner Cc: Jason Cooper Cc: Marc Zyngier Cc: Daniel Lezcano Signed-off-by: Rob Herring commit b06ce8218c459df167202c75869924e193a2311b Author: Rob Herring Date: Wed Mar 13 09:53:15 2019 -0500 dt-bindings: Add a guide of do's and don't's for writing bindings Devicetree binding reviews have a lot of repeated review comments. Much of the guidelines aren't written down. This list of do's and don't's is by no means an exhaustive guide for how to write bindings, but at least the "rules" are written down in some form. Signed-off-by: Rob Herring commit 0169f53e0d97bb675075506810494bd86b8c934e Author: Sebastian Andrzej Siewior Date: Wed Apr 3 18:41:37 2019 +0200 x86/fpu: Remove user_fpu_begin() user_fpu_begin() sets fpu_fpregs_owner_ctx to task's fpu struct. This is always the case since there is no lazy FPU anymore. fpu_fpregs_owner_ctx is used during context switch to decide if it needs to load the saved registers or if the currently loaded registers are valid. It could be skipped during a taskA -> kernel thread -> taskA switch because the switch to the kernel thread would not alter the CPU's sFPU tate. Since this field is always updated during context switch and never invalidated, setting it manually (in user context) makes no difference. A kernel thread with kernel_fpu_begin() block could set fpu_fpregs_owner_ctx to NULL but a kernel thread does not use user_fpu_begin(). This is a leftover from the lazy-FPU time. Remove user_fpu_begin(), it does not change fpu_fpregs_owner_ctx's content. Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: Aubrey Li Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: "Jason A. Donenfeld" Cc: kvm ML Cc: Nicolai Stange Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Rik van Riel Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-9-bigeasy@linutronix.de commit 2722146eb78451b30e4717a267a3a2b44e4ad317 Author: Sebastian Andrzej Siewior Date: Wed Apr 3 18:41:36 2019 +0200 x86/fpu: Remove fpu->initialized The struct fpu.initialized member is always set to one for user tasks and zero for kernel tasks. This avoids saving/restoring the FPU registers for kernel threads. The ->initialized = 0 case for user tasks has been removed in previous changes, for instance, by doing an explicit unconditional init at fork() time for FPU-less systems which was otherwise delayed until the emulated opcode. The context switch code (switch_fpu_prepare() + switch_fpu_finish()) can't unconditionally save/restore registers for kernel threads. Not only would it slow down the switch but also load a zeroed xcomp_bv for XSAVES. For kernel_fpu_begin() (+end) the situation is similar: EFI with runtime services uses this before alternatives_patched is true. Which means that this function is used too early and it wasn't the case before. For those two cases, use current->mm to distinguish between user and kernel thread. For kernel_fpu_begin() skip save/restore of the FPU registers. During the context switch into a kernel thread don't do anything. There is no reason to save the FPU state of a kernel thread. The reordering in __switch_to() is important because the current() pointer needs to be valid before switch_fpu_finish() is invoked so ->mm is seen of the new task instead the old one. N.B.: fpu__save() doesn't need to check ->mm because it is called by user tasks only. [ bp: Massage. ] Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: Aubrey Li Cc: Babu Moger Cc: "Chang S. Bae" Cc: Dmitry Safonov Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: "Jason A. Donenfeld" Cc: Joerg Roedel Cc: kvm ML Cc: Masami Hiramatsu Cc: Mathieu Desnoyers Cc: Nicolai Stange Cc: Paolo Bonzini Cc: Peter Zijlstra Cc: Radim Krčmář Cc: Rik van Riel Cc: Sergey Senozhatsky Cc: Will Deacon Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-8-bigeasy@linutronix.de commit 4bdc42094d9c4af75f90ee49b9009ea8dfe41444 Author: Takashi Iwai Date: Wed Apr 10 13:03:22 2019 +0200 ALSA: hda: Fix racy display power access snd_hdac_display_power() doesn't handle the concurrent calls carefully enough, and it may lead to the doubly get_power or put_power calls, when a runtime PM and an async work get called in racy way. This patch addresses it by reusing the bus->lock mutex that has been used for protecting the link state change in ext bus code, so that it can protect against racy display state changes. The initialization of bus->lock was moved from snd_hdac_ext_bus_init() to snd_hdac_bus_init() as well accordingly. Testcase: igt/i915_pm_rpm/module-reload #glk-dsi Reported-by: Chris Wilson Cc: Imre Deak Signed-off-by: Takashi Iwai Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/s5h8swiunph.wl-tiwai@suse.de commit f11cb1c19ad0563b3c1ea5eb16a6bac0e401f428 Author: Jani Nikula Date: Fri Apr 5 10:52:20 2019 +0300 drm/i915/dp: revert back to max link rate and lane count on eDP Commit 7769db588384 ("drm/i915/dp: optimize eDP 1.4+ link config fast and narrow") started to optize the eDP 1.4+ link config, both per spec and as preparation for display stream compression support. Sadly, we again face panels that flat out fail with parameters they claim to support. Revert, and go back to the drawing board. v2: Actually revert to max params instead of just wide-and-slow. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109959 Fixes: 7769db588384 ("drm/i915/dp: optimize eDP 1.4+ link config fast and narrow") Cc: Ville Syrjälä Cc: Manasi Navare Cc: Rodrigo Vivi Cc: Matt Atwood Cc: "Lee, Shawn C" Cc: Dave Airlie Cc: intel-gfx@lists.freedesktop.org Cc: # v5.0+ Reviewed-by: Rodrigo Vivi Reviewed-by: Manasi Navare Tested-by: Albert Astals Cid # v5.0 backport Tested-by: Emanuele Panigati # v5.0 backport Tested-by: Matteo Iervasi # v5.0 backport Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190405075220.9815-1-jani.nikula@intel.com commit 39388e80f9b0c3788bfb6efe3054bdce0c3ead45 Author: Sebastian Andrzej Siewior Date: Wed Apr 3 18:41:35 2019 +0200 x86/fpu: Don't save fxregs for ia32 frames in copy_fpstate_to_sigframe() In commit 72a671ced66db ("x86, fpu: Unify signal handling code paths for x86 and x86_64 kernels") the 32bit and 64bit path of the signal delivery code were merged. The 32bit version: int save_i387_xstate_ia32(void __user *buf) … if (cpu_has_xsave) return save_i387_xsave(fp); if (cpu_has_fxsr) return save_i387_fxsave(fp); The 64bit version: int save_i387_xstate(void __user *buf) … if (user_has_fpu()) { if (use_xsave()) err = xsave_user(buf); else err = fxsave_user(buf); if (unlikely(err)) { __clear_user(buf, xstate_size); return err; The merge: int save_xstate_sig(void __user *buf, void __user *buf_fx, int size) … if (user_has_fpu()) { /* Save the live register state to the user directly. */ if (save_user_xstate(buf_fx)) return -1; /* Update the thread's fxstate to save the fsave header. */ if (ia32_fxstate) fpu_fxsave(&tsk->thread.fpu); I don't think that we needed to save the FPU registers to ->thread.fpu because the registers were stored in buf_fx. Today the state will be restored from buf_fx after the signal was handled (I assume that this was also the case with lazy-FPU). Since commit 66463db4fc560 ("x86, fpu: shift drop_init_fpu() from save_xstate_sig() to handle_signal()") it is ensured that the signal handler starts with clear/fresh set of FPU registers which means that the previous store is futile. Remove the copy_fxregs_to_kernel() call because task's FPU state is cleared later in handle_signal() via fpu__clear(). Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: "Jason A. Donenfeld" Cc: kvm ML Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Rik van Riel Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-7-bigeasy@linutronix.de commit 942d1cf48eae3fcd7e973cfb708d5c4860f0c713 Author: Vandita Kulkarni Date: Mon Mar 25 16:56:42 2019 +0530 drm/i915/icl: Fix port disable sequence for mipi-dsi Re-enable clock gating of DDI clocks. v2: Fix the default ddi clk state for mipi-dsi (Imre) Fixes: 1026bea00381 ("drm/i915/icl: Ungate DSI clocks") Signed-off-by: Vandita Kulkarni Reviewed-by: Uma Shankar Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/1553513202-13863-2-git-send-email-vandita.kulkarni@intel.com commit c5b81a325263a891d5811aabe938c87e03db4c37 Author: Vandita Kulkarni Date: Mon Mar 25 16:56:41 2019 +0530 drm/i915/icl: Ungate ddi clocks before IO enable IO enable sequencing needs ddi clocks enabled. These clocks will be gated at a later point in the enable sequence. v2: Fix the commit header (Uma) v3: Remove the redundant read (Ville) Fixes: 949fc52af19e ("drm/i915/icl: add pll mapping for DSI") Signed-off-by: Vandita Kulkarni Reviewed-by: Uma Shankar Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/1553513202-13863-1-git-send-email-vandita.kulkarni@intel.com commit e00dac3daaa75fc91ec67f656ca56859075059c8 Author: Tomer Tayar Date: Wed Apr 10 15:18:46 2019 +0300 habanalabs: Cancel pr_fmt() definition dependency on includes order pr_fmt() should be defined before including linux/printk.h, either directly or indirectly, in order to avoid redefinition of the macro. Currently the macro definition is in habanalabs.h, which is included in many files, and that makes the addition/reorder of includes to be prone to compilation errors. This patch cancels this dependency by defining the macro only in the few source files that use it. Signed-off-by: Tomer Tayar Signed-off-by: Oded Gabbay commit 42337b9d4d958daae266dc455a54e3b9f157862a Author: Andrej Shadura Date: Mon Apr 1 14:42:00 2019 +0200 HID: add driver for U2F Zero built-in LED and RNG U2F Zero supports custom commands for blinking the LED and getting data from the internal hardware RNG. Expose the blinking function as a LED device, and the internal hardware RNG as an HWRNG so that it can be used to feed the enthropy pool. Signed-off-by: Andrej Shadura Signed-off-by: Jiri Kosina commit f34a269229ec0d51f84f557238d1e4dcda8464d2 Author: Axel Lin Date: Wed Apr 10 00:10:39 2019 +0800 regulator: anatop: Remove unneeded fields from struct anatop_regulator These fields are only used in anatop_regulator_probe() so use local variables instead. The *initdata is not used so can be removed. The *anatop is renamed to *regmap for better readability. Use u32 instead of int for the variables used as third argument of of_property_read_u32(). Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 6e1f22ee7e4874c357a95a87f3ebc6eb093562dc Author: Axel Lin Date: Tue Apr 9 21:00:42 2019 +0800 regulator: s2mpa01: Remove unused define for S2MPA01_REGULATOR_CNT The S2MPA01_REGULATOR_CNT is no longer used after converted to use simplified DT parsing. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 29e5cb657e2acdf902b0122ca58620ccd771f297 Author: Axel Lin Date: Mon Apr 8 20:09:33 2019 +0800 regulator: hi655x: Remove ctrl_mask field from struct hi655x_regulator The rdev->desc->enable_mask setting is always the same as BIT(regulator->ctrl_mask), so just use rdev->desc->enable_mask instead. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 784816d46aae28f84a3ec5461b6cf69b6f02d62a Author: Axel Lin Date: Mon Apr 8 20:09:32 2019 +0800 regulator: hi655x: Constify regulators array The regulators array should never need to be modified, make it const so compiler can put it to .rodata. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 28a5c61b5136d58325e2a9504f4673d514ebf2e8 Author: Cao Van Dong Date: Fri Apr 5 14:44:08 2019 +0900 arm64: dts: renesas: r8a77990: Add CMT device nodes This patch adds CMT{0|1|2|3} device nodes for r8a77990 SoC. Signed-off-by: Cao Van Dong Signed-off-by: Simon Horman commit 99cb95103e2d058ba1cd050a926162cb9dffece2 Author: Cao Van Dong Date: Fri Apr 5 14:44:07 2019 +0900 arm64: dts: renesas: r8a77965: Add CMT device nodes This patch adds CMT{0|1|2|3} device nodes for r8a77965 SoC. Tested-by: Cao Van Dong Signed-off-by: Cao Van Dong Signed-off-by: Simon Horman commit 720066d17c973fd8721b326793add4430631c82b Author: Cao Van Dong Date: Fri Apr 5 14:44:06 2019 +0900 arm64: dts: renesas: r8a7795: Add CMT device nodes This patch adds CMT{0|1|2|3} device nodes for r8a7795 SoC. Tested-by: Cao Van Dong Signed-off-by: Cao Van Dong Signed-off-by: Simon Horman commit 364f784f048c984721986db90c95ca8350213c91 Author: Waiman Long Date: Thu Apr 4 13:43:20 2019 -0400 locking/rwsem: Optimize rwsem structure for uncontended lock acquisition For an uncontended rwsem, count and owner are the only fields a task needs to touch when acquiring the rwsem. So they are put next to each other to increase the chance that they will share the same cacheline. On a ThunderX2 99xx (arm64) system with 32K L1 cache and 256K L2 cache, a rwsem locking microbenchmark with one locking thread was run to write-lock and write-unlock an array of rwsems separated 2 cachelines apart in a 1M byte memory block. The locking rates (kops/s) of the microbenchmark when the rwsems are at various "long" (8-byte) offsets from beginning of the cacheline before and after the patch were as follows: Cacheline Offset Pre-patch Post-patch ---------------- --------- ---------- 0 17,449 16,588 1 17,450 16,465 2 17,450 16,460 3 17,453 16,462 4 14,867 16,471 5 14,867 16,470 6 14,853 16,464 7 14,867 13,172 Before the patch, the count and owner are 4 "long"s apart. After the patch, they are only 1 "long" apart. The rwsem data have to be loaded from the L3 cache for each access. It can be seen that the locking rates are more consistent after the patch than before. Note that for this particular system, the performance drop happens whenever the count and owner are at an odd multiples of "long"s apart. No performance drop was observed when only a single rwsem was used (hot cache). So the drop is likely just an idiosyncrasy of the cache architecture of this chip than an inherent problem with the patch. Suggested-by: Linus Torvalds Signed-off-by: Waiman Long Acked-by: Peter Zijlstra Cc: Andrew Morton Cc: Arnd Bergmann Cc: Borislav Petkov Cc: Davidlohr Bueso Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tim Chen Cc: Will Deacon Link: http://lkml.kernel.org/r/20190404174320.22416-12-longman@redhat.com Signed-off-by: Ingo Molnar commit a8654596f0371c2604c4d475422c48f4fc6a56c9 Author: Waiman Long Date: Thu Apr 4 13:43:19 2019 -0400 locking/rwsem: Enable lock event counting Add lock event counting calls so that we can track the number of lock events happening in the rwsem code. With CONFIG_LOCK_EVENT_COUNTS on and booting a 4-socket 112-thread x86-64 system, the rwsem counts after system bootup were as follows: rwsem_opt_fail=261 rwsem_opt_wlock=50636 rwsem_rlock=445 rwsem_rlock_fail=0 rwsem_rlock_fast=22 rwsem_rtrylock=810144 rwsem_sleep_reader=441 rwsem_sleep_writer=310 rwsem_wake_reader=355 rwsem_wake_writer=2335 rwsem_wlock=261 rwsem_wlock_fail=0 rwsem_wtrylock=20583 It can be seen that most of the lock acquisitions in the slowpath were write-locks in the optimistic spinning code path with no sleeping at all. For this system, over 97% of the locks are acquired via optimistic spinning. It illustrates the importance of optimistic spinning in improving the performance of rwsem. Signed-off-by: Waiman Long Acked-by: Peter Zijlstra Acked-by: Davidlohr Bueso Cc: Andrew Morton Cc: Arnd Bergmann Cc: Borislav Petkov Cc: Davidlohr Bueso Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tim Chen Cc: Will Deacon Link: http://lkml.kernel.org/r/20190404174320.22416-11-longman@redhat.com Signed-off-by: Ingo Molnar commit bf20616f46e536fe8affed6f138db4b3040b55a6 Author: Waiman Long Date: Thu Apr 4 13:43:18 2019 -0400 locking/lock_events: Don't show pvqspinlock events on bare metal On bare metal, the pvqspinlock event counts will always be 0. So there is no point in showing their corresponding debugfs files. So they are skipped in this case. Signed-off-by: Waiman Long Acked-by: Peter Zijlstra Acked-by: Davidlohr Bueso Cc: Andrew Morton Cc: Arnd Bergmann Cc: Borislav Petkov Cc: Davidlohr Bueso Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tim Chen Cc: Will Deacon Link: http://lkml.kernel.org/r/20190404174320.22416-10-longman@redhat.com Signed-off-by: Ingo Molnar commit fb346fd9fc081c3d978c3f3d26d39334527a2662 Author: Waiman Long Date: Thu Apr 4 13:43:17 2019 -0400 locking/lock_events: Make lock_events available for all archs & other locks The QUEUED_LOCK_STAT option to report queued spinlocks event counts was previously allowed only on x86 architecture. To make the locking event counting code more useful, it is now renamed to a more generic LOCK_EVENT_COUNTS config option. This new option will be available to all the architectures that use qspinlock at the moment. Other locking code can now start to use the generic locking event counting code by including lock_events.h and put the new locking event names into the lock_events_list.h header file. My experience with lock event counting is that it gives valuable insight on how the locking code works and what can be done to make it better. I would like to extend this benefit to other locking code like mutex and rwsem in the near future. The PV qspinlock specific code will stay in qspinlock_stat.h. The locking event counters will now reside in the /lock_event_counts directory. Signed-off-by: Waiman Long Acked-by: Peter Zijlstra Acked-by: Davidlohr Bueso Cc: Andrew Morton Cc: Arnd Bergmann Cc: Borislav Petkov Cc: Davidlohr Bueso Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tim Chen Cc: Will Deacon Link: http://lkml.kernel.org/r/20190404174320.22416-9-longman@redhat.com Signed-off-by: Ingo Molnar commit ad53fa10fa9e816067bbae7109845940f5e6df50 Author: Waiman Long Date: Thu Apr 4 13:43:16 2019 -0400 locking/qspinlock_stat: Introduce generic lockevent_*() counting APIs The percpu event counts used by qspinlock code can be useful for other locking code as well. So a new set of lockevent_* counting APIs is introduced with the lock event names extracted out into the new lock_events_list.h header file for easier addition in the future. The existing qstat_inc() calls are replaced by either lockevent_inc() or lockevent_cond_inc() calls. The qstat_hop() call is renamed to lockevent_pv_hop(). The "reset_counters" debugfs file is also renamed to ".reset_counts". Signed-off-by: Waiman Long Acked-by: Peter Zijlstra Acked-by: Davidlohr Bueso Cc: Andrew Morton Cc: Arnd Bergmann Cc: Borislav Petkov Cc: Davidlohr Bueso Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tim Chen Cc: Will Deacon Link: http://lkml.kernel.org/r/20190404174320.22416-8-longman@redhat.com Signed-off-by: Ingo Molnar commit 3b4ba6643d26a95e08067fca9a5da1828f9afabf Author: Waiman Long Date: Thu Apr 4 13:43:15 2019 -0400 locking/rwsem: Enhance DEBUG_RWSEMS_WARN_ON() macro Currently, the DEBUG_RWSEMS_WARN_ON() macro just dumps a stack trace when the rwsem isn't in the right state. It does not show the actual states of the rwsem. This may not be that helpful in the debugging process. Enhance the DEBUG_RWSEMS_WARN_ON() macro to also show the current content of the rwsem count and owner fields to give more information about what is wrong with the rwsem. The debug_locks_off() function is called as is done inside DEBUG_LOCKS_WARN_ON(). Signed-off-by: Waiman Long Acked-by: Peter Zijlstra Acked-by: Davidlohr Bueso Cc: Andrew Morton Cc: Arnd Bergmann Cc: Borislav Petkov Cc: Davidlohr Bueso Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tim Chen Cc: Will Deacon Link: http://lkml.kernel.org/r/20190404174320.22416-7-longman@redhat.com Signed-off-by: Ingo Molnar commit a68e2c4c637918da47b3aa270051545cff7d8245 Author: Waiman Long Date: Thu Apr 4 13:43:14 2019 -0400 locking/rwsem: Add debug check for __down_read*() When rwsem_down_read_failed*() return, the read lock is acquired indirectly by others. So debug checks are added in __down_read() and __down_read_killable() to make sure the rwsem is really reader-owned. The other debug check calls in kernel/locking/rwsem.c except the one in up_read_non_owner() are also moved over to rwsem-xadd.h. Signed-off-by: Waiman Long Acked-by: Peter Zijlstra Acked-by: Davidlohr Bueso Cc: Andrew Morton Cc: Arnd Bergmann Cc: Borislav Petkov Cc: Davidlohr Bueso Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tim Chen Cc: Will Deacon Link: http://lkml.kernel.org/r/20190404174320.22416-6-longman@redhat.com Signed-off-by: Ingo Molnar commit a338ecb07a338c9a8b0ca0010e862ebe598b1551 Author: Waiman Long Date: Thu Apr 4 13:43:13 2019 -0400 locking/rwsem: Micro-optimize rwsem_try_read_lock_unqueued() The atomic_long_cmpxchg_acquire() in rwsem_try_read_lock_unqueued() is replaced by atomic_long_try_cmpxchg_acquire() to simpify the code and generate slightly better assembly code. There is no functional change. Signed-off-by: Waiman Long Acked-by: Peter Zijlstra Acked-by: Will Deacon Acked-by: Davidlohr Bueso Cc: Andrew Morton Cc: Arnd Bergmann Cc: Borislav Petkov Cc: Davidlohr Bueso Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tim Chen Link: http://lkml.kernel.org/r/20190404174320.22416-5-longman@redhat.com Signed-off-by: Ingo Molnar commit 12a30a7fc142a123c61da9623bd824d95d36c12e Author: Waiman Long Date: Thu Apr 4 13:43:12 2019 -0400 locking/rwsem: Move rwsem internal function declarations to rwsem-xadd.h We don't need to expose rwsem internal functions which are not supposed to be called directly from other kernel code. Signed-off-by: Waiman Long Acked-by: Peter Zijlstra Acked-by: Will Deacon Acked-by: Davidlohr Bueso Cc: Andrew Morton Cc: Arnd Bergmann Cc: Borislav Petkov Cc: Davidlohr Bueso Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tim Chen Link: http://lkml.kernel.org/r/20190404174320.22416-4-longman@redhat.com Signed-off-by: Ingo Molnar commit c7580c1e84435c9ccc6c612d9fee8e71811f7be6 Author: Waiman Long Date: Thu Apr 4 13:43:11 2019 -0400 locking/rwsem: Move owner setting code from rwsem.c to rwsem.h Move all the owner setting code closer to the rwsem-xadd fast paths directly within rwsem.h file as well as in the slowpaths where owner setting is done after acquring the lock. This will enable us to add DEBUG_RWSEMS check in a later patch to make sure that read lock is really acquired when rwsem_down_read_failed() returns, for instance. Signed-off-by: Waiman Long Acked-by: Peter Zijlstra Acked-by: Davidlohr Bueso Cc: Andrew Morton Cc: Arnd Bergmann Cc: Borislav Petkov Cc: Davidlohr Bueso Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tim Chen Cc: Will Deacon Link: http://lkml.kernel.org/r/20190404174320.22416-3-longman@redhat.com Signed-off-by: Ingo Molnar commit eecec78f777742903ec9167490c625661284155d Author: Waiman Long Date: Thu Apr 4 13:43:10 2019 -0400 locking/rwsem: Relocate rwsem_down_read_failed() The rwsem_down_read_failed*() functions were relocated from above the optimistic spinning section to below that section. This enables the reader functions to use optimisitic spinning in future patches. There is no code change. Signed-off-by: Waiman Long Acked-by: Peter Zijlstra Acked-by: Will Deacon Acked-by: Davidlohr Bueso Cc: Andrew Morton Cc: Arnd Bergmann Cc: Borislav Petkov Cc: Davidlohr Bueso Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tim Chen Link: http://lkml.kernel.org/r/20190404174320.22416-2-longman@redhat.com Signed-off-by: Ingo Molnar commit c8e7755ec62b47482d2f1343d5db3a95f807a73f Author: Thierry Reding Date: Wed Apr 10 10:17:47 2019 +0200 ARM: tegra: Sort dependencies alphabetically The list of dependencies has become unsorted, which makes it difficult to find the right place to insert new dependencies. Restore alphabetical order to make future additions easier. Signed-off-by: Thierry Reding commit a5881bea88616e3aacf521dbdbe0e323257aaba1 Author: Christoph Hellwig Date: Wed Apr 10 10:02:19 2019 +0200 x86/Kconfig: Remove the unused X86_DMA_REMAP KConfig symbol Signed-off-by: Christoph Hellwig Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/20190410080220.21705-2-hch@lst.de Signed-off-by: Ingo Molnar commit f2a424f6c613a98560dc49fd9984589401d51648 Author: Yangtao Li Date: Sat Mar 16 00:59:25 2019 -0400 PM / core: Introduce dpm_async_fn() helper When we want to execute device pm functions asynchronously, we'll do the following for the device: 1) reinit_completion(&dev->power.completion); 2) Check if the device enables asynchronous suspend. 3) If necessary, execute the corresponding function asynchronously. There are a lot of such repeated operations here, in fact we can avoid this. So introduce dpm_async_fn() to have better code readability and reuse. And use this function to do some cleanup. Signed-off-by: Yangtao Li Signed-off-by: Rafael J. Wysocki commit 9df1e2c60d2b90024d5c2544f07ac9f539524322 Author: Yue Hu Date: Wed Apr 10 11:59:52 2019 +0800 cpufreq: boost: Remove CONFIG_CPU_FREQ_BOOST_SW Kconfig option Commit 2fb4719b2560 ("cpufreq / boost: Kconfig: Support for software-managed BOOST") added the CONFIG_CPU_FREQ_BOOST_SW config. However EXYNOS based cpufreq drivers have been removed because of switching to cpufreq-dt driver which will set boost-attr if required. So, let's remove this option and update cpufreq_generic_attr[]. Signed-off-by: Yue Hu Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki commit 547571b5abe61bb33c6005d8981e86e3c61fedcc Author: Jan Beulich Date: Wed Mar 27 09:15:19 2019 -0600 x86/asm: Modernize sync_bitops.h Add missing instruction suffixes and use rmwcc.h just like was (more or less) recently done for bitops.h as well, see: 22636f8c9511: x86/asm: Add instruction suffixes to bitops 288e4521f0f6: x86/asm: 'Simplify' GEN_*_RMWcc() macros No change in functionality intended. Signed-off-by: Jan Beulich Cc: Andy Lutomirski Cc: Boris Ostrovsky Cc: Borislav Petkov Cc: Brian Gerst Cc: Denys Vlasenko Cc: H. Peter Anvin Cc: Juergen Gross Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: http://lkml.kernel.org/r/5C9B93870200007800222289@prv1-mh.provo.novell.com [ Cleaned up the changelog a bit. ] Signed-off-by: Ingo Molnar commit 50bd645b3a21a374dbd0fa8273a5f4e98001fb05 Author: Magnus Karlsson Date: Wed Apr 10 08:54:16 2019 +0200 libbpf: fix crash in XDP socket part with new larger BPF_LOG_BUF_SIZE In commit da11b417583e ("libbpf: teach libbpf about log_level bit 2"), the BPF_LOG_BUF_SIZE was increased to 16M. The XDP socket part of libbpf allocated the log_buf on the stack, but for the new 16M buffer size this is not going to work. Change the code so it uses a 16K buffer instead. Fixes: da11b417583e ("libbpf: teach libbpf about log_level bit 2") Signed-off-by: Magnus Karlsson Signed-off-by: Daniel Borkmann commit 69a0f9ecef22131982ba328e6b74ebb082bc0992 Author: Yonghong Song Date: Tue Apr 9 17:37:41 2019 -0700 bpf, bpftool: fix a few ubsan warnings The issue is reported at https://github.com/libbpf/libbpf/issues/28. Basically, per C standard, for void *memcpy(void *dest, const void *src, size_t n) if "dest" or "src" is NULL, regardless of whether "n" is 0 or not, the result of memcpy is undefined. clang ubsan reported three such instances in bpf.c with the following pattern: memcpy(dest, 0, 0). Although in practice, no known compiler will cause issues when copy size is 0. Let us still fix the issue to silence ubsan warnings. Signed-off-by: Yonghong Song Signed-off-by: Daniel Borkmann commit 67d4f6ff2fb69e02bd6365a91ca3939b7a14deac Author: Valentin Schneider Date: Tue Apr 9 18:35:45 2019 +0100 sched/topology: Skip duplicate group rewrites in build_sched_groups() While staring at build_sched_domains(), I realized that get_group() does several duplicate (thus useless) writes. If you take the Arm Juno r0 (LITTLEs = [0, 3, 4, 5], bigs = [1, 2]), the sched_group build flow would look like this: ('MC[cpu]->sg' means 'per_cpu_ptr(&tl->data->sg, cpu)' with 'tl == MC') build_sched_groups(MC[CPU0]->sd, CPU0) get_group(0) -> MC[CPU0]->sg get_group(3) -> MC[CPU3]->sg get_group(4) -> MC[CPU4]->sg get_group(5) -> MC[CPU5]->sg build_sched_groups(DIE[CPU0]->sd, CPU0) get_group(0) -> DIE[CPU0]->sg get_group(1) -> DIE[CPU1]->sg <=================+ | build_sched_groups(MC[CPU1]->sd, CPU1) | get_group(1) -> MC[CPU1]->sg | get_group(2) -> MC[CPU2]->sg | | build_sched_groups(DIE[CPU1]->sd, CPU1) ^ get_group(1) -> DIE[CPU1]->sg } We've set up these two up here! get_group(3) -> DIE[CPU0]->sg } From this point on, we will only use sched_groups that have been previously visited & initialized. The only new operation will be which group pointer we affect to sd->groups. On the Juno r0 we get 32 get_group() calls, every single one of them writing to a sched_group->cpumask. However, all of the data structures we need are set up after 8 visits (see above). Return early from get_group() if we've already visited (and thus initialized) the sched_group we're looking at. Overlapping domains are not affected as they do not use build_sched_groups(). Tested on a Juno and a 2 * (Xeon E5-2690) system. ( FWIW I initially checked the refs for both sg && sg->sgc, but figured if they weren't both 0 or > 1 then something must have gone wrong, so I threw in a WARN_ON(). ) No change in functionality intended. Signed-off-by: Valentin Schneider Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-kernel@vger.kernel.org Signed-off-by: Ingo Molnar commit d8743230c9f4e92f370ecd2a90c680ddcede6ae5 Author: Valentin Schneider Date: Tue Apr 9 18:35:46 2019 +0100 sched/topology: Fix build_sched_groups() comment The comment was introduced (pre 2.6.12) by: 8a7a2318dc07 ("[PATCH] sched: consolidate sched domains") and referred to sched_group->cpu_power. This was folded into sched_group->sched_group_power in commit 9c3f75cbd144 ("sched: Break out cpu_power from the sched_group structure") The comment was then updated in: ced549fa5fc1 ("sched: Remove remaining dubious usage of "power"") but should have replaced "sg->cpu_capacity" with "sg->sched_group_capacity". Do that now. Signed-off-by: Valentin Schneider Cc: Dietmar.Eggemann@arm.com Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: morten.rasmussen@arm.com Cc: qais.yousef@arm.com Link: http://lkml.kernel.org/r/20190409173546.4747-3-valentin.schneider@arm.com Signed-off-by: Ingo Molnar commit f7c2b7477bdc79a1e0cc3751a26c28031c1ab609 Merge: 54bbfe75cbb1 f1887143f598 Author: Ingo Molnar Date: Wed Apr 10 09:14:55 2019 +0200 Merge branch 'lkmm-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into locking/core Pull various memory-model (LKMM) updates from Paul E. McKenney. Signed-off-by: Ingo Molnar commit 54bbfe75cbb10384b0a62efae80fde21deea1dd0 Merge: ddb20d1d3aed 771acc7e4a6e Author: Ingo Molnar Date: Wed Apr 10 09:14:42 2019 +0200 Merge branch 'linus' into locking/core, to pick up fixes Signed-off-by: Ingo Molnar commit 2f36bde0fc8f1ab79d54bd2caa7c1cf874fd2206 Author: Andrew-sh.Cheng Date: Fri Mar 29 14:46:10 2019 +0800 OPP: Introduce dev_pm_opp_find_freq_ceil_by_volt() This patch introduces a new helper routine in the OPP core, which returns the OPP with the highest frequency which has voltage less than or equal to the target voltage passed to the helper. Signed-off-by: Andrew-sh.Cheng [ Viresh: Massaged the commit log and renamed the helper with some cleanups. ] Signed-off-by: Viresh Kumar commit 5d704b0d3b4855734f029337e516b829c473801c Author: Takashi Iwai Date: Thu Mar 28 17:44:53 2019 +0100 ALSA: timer: Coding style fixes Avoid old school C style but do plain and clear way. Signed-off-by: Takashi Iwai commit 41672c0c24a62699d20aab53b98d843b16483053 Author: Takashi Iwai Date: Thu Mar 28 17:11:10 2019 +0100 ALSA: timer: Simplify error path in snd_timer_open() Just a minor refactoring to use the standard goto for error paths in snd_timer_open() instead of open code. The first mutex_lock() is moved to the beginning of the function to make the code clearer. Signed-off-by: Takashi Iwai commit d9cb06759eca5a420072b937d2a2a670db474008 Author: Mark Bloch Date: Thu Mar 28 15:27:32 2019 +0200 net/mlx5: E-Switch, add a new prio to be used by the RDMA side Create a new prio in the FDB, it will be used when inserting steering rules into the FDB from the RDMA side. We create a new PRIO so rules from the net side and rules from the RDMA side won't be inserted to the same PRIO, each side has it's own sandbox to play in. Signed-off-by: Mark Bloch Reviewed-by: Maor Gottlieb Signed-off-by: Leon Romanovsky commit b6d9ccb1125049941590ea895c38e1167badba5f Author: Mark Bloch Date: Thu Mar 28 15:27:31 2019 +0200 net/mlx5: E-Switch, don't use hardcoded values for FDB prios When creating the FDB prios, use the enum values already defined and not the hardcoded values. Signed-off-by: Mark Bloch Reviewed-by: Maor Gottlieb Signed-off-by: Leon Romanovsky commit bbeac60f064158aa92b4c72fb50b12231e62cbcd Author: Maulik Shah Date: Thu Feb 21 18:10:36 2019 +0530 drivers: soc: qcom: rpmh-rsc: Correct check for slot number The return index value from bitmap_find_next_zero_area can be higher than available slot. So correct the check to return error in such case. Signed-off-by: Maulik Shah Signed-off-by: Raju P.L.S.S.S.N Reviewed-by: Lina Iyer Signed-off-by: Andy Gross commit e5d01196c0428a206f307e9ee5f6842964098ff0 Author: Theodore Ts'o Date: Wed Apr 10 00:37:36 2019 -0400 ext4: ignore e_value_offs for xattrs with value-in-ea-inode In other places in fs/ext4/xattr.c, if e_value_inum is non-zero, the code ignores the value in e_value_offs. The e_value_offs *should* be zero, but we shouldn't depend upon it, since it might not be true in a corrupted/fuzzed file system. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=202897 Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=202877 Signed-off-by: Theodore Ts'o Cc: stable@kernel.org commit f3e35357cd460a8aeb48b8113dc4b761a7d5c828 Author: Christian Lamparter Date: Tue Feb 26 01:12:01 2019 +0100 ARM: dts: qcom: ipq4019: enlarge PCIe BAR range David Bauer reported that the VDSL modem (attached via PCIe) on his AVM Fritz!Box 7530 was complaining about not having enough space in the BAR. A closer inspection of the old qcom-ipq40xx.dtsi pulled from the GL-iNet repository listed: | qcom,pcie@80000 { | compatible = "qcom,msm_pcie"; | reg = <0x80000 0x2000>, | <0x99000 0x800>, | <0x40000000 0xf1d>, | <0x40000f20 0xa8>, | <0x40100000 0x1000>, | <0x40200000 0x100000>, | <0x40300000 0xd00000>; | reg-names = "parf", "phy", "dm_core", "elbi", | "conf", "io", "bars"; Matching the reg-names with the listed reg leads to <0xd00000> as the size for the "bars". Cc: stable@vger.kernel.org BugLink: https://www.mail-archive.com/openwrt-devel@lists.openwrt.org/msg45212.html Reported-by: David Bauer Signed-off-by: Christian Lamparter Signed-off-by: Andy Gross commit 05d86a0ae83b62a11f74760d8edf84580beccb3e Author: Brian Masney Date: Tue Mar 5 19:53:12 2019 -0500 ARM: dts: qcom: pma8084: add gpio-ranges This adds the gpio-ranges property so that the GPIO pins are initialized by the GPIO framework and not pinctrl. This fixes a circular dependency between these two frameworks so GPIO hogging can be used on this board. This was not tested on this particular hardware, however this same change was tested on qcom-pm8941 using a LG Nexus 5 (hammerhead) phone. Signed-off-by: Brian Masney Signed-off-by: Andy Gross commit 546f72e7ecb25594a30f884da0d8ae79ad278cef Author: Brian Masney Date: Tue Mar 5 19:53:11 2019 -0500 ARM: dts: qcom: msm8660: add gpio-ranges This adds the gpio-ranges property so that the GPIO pins are initialized by the GPIO framework and not pinctrl. This fixes a circular dependency between these two frameworks so GPIO hogging can be used on this board. This was not tested on this particular hardware, however this same change was tested on qcom-pm8941 using a LG Nexus 5 (hammerhead) phone. Signed-off-by: Brian Masney Signed-off-by: Andy Gross commit 3bc5163ebbacf0f0d319f73de3d5e09a61e74f92 Author: Brian Masney Date: Tue Mar 5 19:53:10 2019 -0500 ARM: dts: qcom: mdm9615: add gpio-ranges This adds the gpio-ranges property so that the GPIO pins are initialized by the GPIO framework and not pinctrl. This fixes a circular dependency between these two frameworks so GPIO hogging can be used on this board. This was not tested on this particular hardware, however this same change was tested on qcom-pm8941 using a LG Nexus 5 (hammerhead) phone. Signed-off-by: Brian Masney Signed-off-by: Andy Gross commit 33984dd6c4bb89b606e38ed5810a157fe81b241c Author: Brian Masney Date: Tue Mar 5 19:53:09 2019 -0500 ARM: dts: qcom: apq8064: add gpio-ranges This adds the gpio-ranges property so that the GPIO pins are initialized by the GPIO framework and not pinctrl. This fixes a circular dependency between these two frameworks so GPIO hogging can be used on this board. This was not tested on this particular hardware, however this same change was tested on qcom-pm8941 using a LG Nexus 5 (hammerhead) phone. Signed-off-by: Brian Masney Signed-off-by: Andy Gross commit c35b67d3956fa54bb785376d08410d411e3052d4 Author: Marc Gonzalez Date: Mon Apr 1 16:38:37 2019 +0200 arm64: dts: msm8998: Add UFS phy reset Fixup MSM8998 UFS DT nodes now that Evan's reset series has landed. https://lore.kernel.org/lkml/20190321171800.104681-1-evgreen@chromium.org/ Signed-off-by: Marc Gonzalez Signed-off-by: Andy Gross commit 58ad5ab731521a80a848033512467675de06b1f2 Merge: 596a434369f6 10518bb15940 Author: Andy Gross Date: Tue Apr 9 23:08:50 2019 -0500 Merge branch 'arm64-thermal-for-5.2' into arm64-for-5.2 commit 10518bb1594066f7e894832e3cec9306e2d90f22 Author: Amit Kucheria Date: Fri Mar 29 15:42:19 2019 +0530 arm64: dts: msm8916: thermal: Convert camera trip type to hot We don't have any cooling-devices related to the camera. Use the "hot" trip type so allow the temperature to be exported to userspace and remove the "critical" trip. Signed-off-by: Amit Kucheria Signed-off-by: Andy Gross commit bc3ac5d25195fb8e91aa5d6b310ee035aba889f3 Author: Amit Kucheria Date: Fri Mar 29 15:42:18 2019 +0530 arm64: dts: msm8996: thermal: Make trip names consistent Maintain naming consistency with what was landed for sdm845. Simplifies parsing for test tools. Signed-off-by: Amit Kucheria Signed-off-by: Andy Gross commit 032d7c6ee21b0b7e8470cbd0da6df2465c4d83b1 Author: Amit Kucheria Date: Fri Mar 29 15:42:17 2019 +0530 arm64: dts: msm8916: thermal: Make trip names consistent Maintain naming consistency with what was landed for sdm845. Simplifies parsing for test tools. Signed-off-by: Amit Kucheria Signed-off-by: Andy Gross commit ae8876ddb826cc4996199163246e8699a165ca9d Author: Amit Kucheria Date: Fri Mar 29 15:42:16 2019 +0530 arm64: dts: msm8998: thermal: Make trip names consistent Maintain naming consistency with what was landed for sdm845. Simplifies parsing for test tools. Signed-off-by: Amit Kucheria Signed-off-by: Andy Gross commit 1c403ec27c1f597661ea787510200ed897a119b4 Author: Amit Kucheria Date: Fri Mar 29 15:42:15 2019 +0530 arm64: dts: sdm845: thermal: Add temperature sensors near major peripherals sdm845 has a total of 21 temperature sensors. Populate DT with information about them. Signed-off-by: Amit Kucheria Signed-off-by: Andy Gross commit e9d2729dec4b9052528f4c7609d0c5b4cbdf8138 Author: Amit Kucheria Date: Fri Mar 29 15:42:14 2019 +0530 arm64: dts: msm8998: thermal: Add temperature sensors near major peripherals msm8998 has a total of 22 temperature sensors. Populate DT with information about them. Signed-off-by: Amit Kucheria Signed-off-by: Andy Gross commit 2fa2d301cbca51263e615cd07d4140b15047cae0 Author: Amit Kucheria Date: Fri Mar 29 15:42:13 2019 +0530 arm64: dts: msm8998: thermal: GPU has two sensors, add the second The first sensor is on top and the second sensor below the GPU Signed-off-by: Amit Kucheria Signed-off-by: Andy Gross commit 9284aa44a5145a5304c82aca978df2e266524e7d Author: Amit Kucheria Date: Fri Mar 29 15:42:12 2019 +0530 arm64: dts: msm8998: thermal: Fix the gpu sensor number The GPU sensor is sensor ID 13 on controller 0 Fixes: 4449b6f248d9a1 ("arm64: dts: qcom: msm8998: Add tsens and thermal-zones") Signed-off-by: Amit Kucheria Signed-off-by: Andy Gross commit b67d9c5d6f4ae0bf745d380654ca4a18706c3103 Author: Amit Kucheria Date: Fri Mar 29 15:42:11 2019 +0530 arm64: dts: msm8998: thermal: Fix the cpu sensor numbers The silver cluster (typically cpu0-3) are monitored by sensor IDs 1-3 on tsens controller 0. The gold cluster (typically cpu4-7) are monitored by sensor IDs 7-10 on tsens controller 0. Fixes: 4449b6f248d9a1 ("arm64: dts: qcom: msm8998: Add tsens and thermal-zones") Signed-off-by: Amit Kucheria Signed-off-by: Andy Gross commit 0f5f91f01cad1c8ab2ba81e4c6c805608bab3cd5 Author: Amit Kucheria Date: Fri Mar 29 15:42:10 2019 +0530 arm64: dts: msm8996: thermal: Add temperature sensors near major peripherals msm8996 has a total of 21 temperature sensors. Populate DT with information about them. There are 2 sensors on each of the cpus - one on the top, the other below (we only expose one on the top in DT for now). For the GPU, we expose both, the one on the top and the one below. Depending on the version of the silicon, sensor 2 is either placed near the L3 cache or the venus video decoder. It would've been nice to be able to be version-specific but we don't have DTs that differentiate the two versions of silicon yet. Signed-off-by: Amit Kucheria Signed-off-by: Andy Gross commit f2e8b07c1b7265bd862d00a2fbb1e8b729f9eb16 Author: Amit Kucheria Date: Fri Mar 29 15:42:09 2019 +0530 arm64: dts: msm8916: thermal: Add sensor for modem On platforms that have a modem, sensor 0 monitors the modem. Signed-off-by: Amit Kucheria Signed-off-by: Andy Gross commit 86f93c93dd5005f0aeb8ce84c2113e21a6006c7d Author: Amit Kucheria Date: Fri Mar 29 15:42:08 2019 +0530 arm64: dts: msm8998: efficiency is not valid property efficiency comes from downstream. The valid upstream property is capacity-dmips-mhz but until we can come up with those numbers, remove this property. Signed-off-by: Amit Kucheria Signed-off-by: Andy Gross commit 503250482c9c7759ee7c5bdc5d4f5e703cb1b417 Author: Amit Kucheria Date: Fri Mar 29 15:42:07 2019 +0530 arm64: dts: msm8998: thermal: split address space into two We've earlier added support to split the register address space into TM and SROT regions. Split up the regmap address space into two for msm8998 that has a similar register layout. The order is important (TM before SROT) because we make an assumption that SROT is always the second address space in order to support legacy DTs. Signed-off-by: Amit Kucheria Signed-off-by: Andy Gross commit acd92c5a11493bdf137aba6e21e865331d7d90d7 Author: Brian Masney Date: Sun Feb 10 07:16:57 2019 -0500 ARM: qcom_defconfig: add options for LG Nexus 5 phone Add wcn36xx wireless, msm vibrator, pm8941 power key, bq24190 charger, spmi-iadc, spmi-vadc, mpu6515 gyroscope / accelerometer, and tsl2772 proximity / light drivers as modules to support the LG Nexus 5 (hammerhead) phone. CFG80211 is changed to be a module to match MAC80211 since this isn't required for initial bootup. Device manager support is also added as a module since this is needed by postmarketOS. Signed-off-by: Brian Masney Reviewed-by: Linus Walleij Signed-off-by: Andy Gross commit 345c0dbf3a30872d9b204db96b5857cd00808cae Author: Theodore Ts'o Date: Tue Apr 9 23:37:08 2019 -0400 ext4: protect journal inode's blocks using block_validity Add the blocks which belong to the journal inode to block_validity's system zone so attempts to deallocate or overwrite the journal due a corrupted file system where the journal blocks are also claimed by another inode. Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=202879 Signed-off-by: Theodore Ts'o Cc: stable@kernel.org commit c8538b0b9ed65eb22849217fd397d614a42216e7 Author: Bart Van Assche Date: Thu Apr 4 12:44:48 2019 -0700 scsi: tcm_qla2xxx: Minimize #include directives Only include those header files that are needed by the code in this source file. [mkp: include build fix from Bart for SPARC] Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 6316f78306c171f5a857a2442dbeebc7baab3566 Merge: ff466b58055f c861168b7c21 Author: Alexei Starovoitov Date: Tue Apr 9 17:05:48 2019 -0700 Merge branch 'support-global-data' Daniel Borkmann says: ==================== This series is a major rework of previously submitted libbpf patches [0] in order to add global data support for BPF. The kernel has been extended to add proper infrastructure that allows for full .bss/.data/.rodata sections on BPF loader side based upon feedback from LPC discussions [1]. Latter support is then also added into libbpf in this series which allows for more natural C-like programming of BPF programs. For more information on loader, please refer to 'bpf, libbpf: support global data/bss/ rodata sections' patch in this series. Thanks a lot! v5 -> v6: - Removed synchronize_rcu() from map freeze (Jann) - Rest as-is v4 -> v5: - Removed index selection again for ldimm64 (Alexei) - Adapted related test cases and added new ones to test rejection of off != 0 v3 -> v4: - Various fixes in BTF verification e.g. to disallow Var and DataSec to be an intermediate type during resolve (Martin) - More BTF test cases added - Few cleanups in key-less BTF commit (Martin) - Bump libbpf minor version from 2 to 3 - Renamed and simplified read-only locking - Various minor improvements all over the place v2 -> v3: - Implement BTF support in kernel, libbpf, bpftool, add tests - Fix idx + off conversion (Andrii) - Document lower / higher bits for direct value access (Andrii) - Add tests with small value size (Andrii) - Add index selection into ldimm64 (Andrii) - Fix missing fdput() (Jann) - Reject invalid flags in BPF_F_*_PROG (Jakub) - Complete rework of libbpf support, includes: - Add objname to map name (Stanislav) - Make .rodata map full read-only after setup (Andrii) - Merge relocation handling into single one (Andrii) - Store global maps into obj->maps array (Andrii, Alexei) - Debug message when skipping section (Andrii) - Reject non-static global data till we have semantics for sharing them (Yonghong, Andrii, Alexei) - More test cases and completely reworked prog test (Alexei) - Fixes, cleanups, etc all over the set - Not yet addressed: - Make BTF mandatory for these maps (Alexei) -> Waiting till BTF support for these lands first v1 -> v2: - Instead of 32-bit static data, implement full global data support (Alexei) [0] https://patchwork.ozlabs.org/cover/1040290/ [1] http://vger.kernel.org/lpc-bpf2018.html#session-3 ==================== Signed-off-by: Alexei Starovoitov commit c861168b7c219838637aaa8c3acc81707aa495f6 Author: Daniel Borkmann Date: Tue Apr 9 23:20:18 2019 +0200 bpf, selftest: add test cases for BTF Var and DataSec Extend test_btf with various positive and negative tests around BTF verification of kind Var and DataSec. All passing as well: # ./test_btf [...] BTF raw test[4] (global data test #1): OK BTF raw test[5] (global data test #2): OK BTF raw test[6] (global data test #3): OK BTF raw test[7] (global data test #4, unsupported linkage): OK BTF raw test[8] (global data test #5, invalid var type): OK BTF raw test[9] (global data test #6, invalid var type (fwd type)): OK BTF raw test[10] (global data test #7, invalid var type (fwd type)): OK BTF raw test[11] (global data test #8, invalid var size): OK BTF raw test[12] (global data test #9, invalid var size): OK BTF raw test[13] (global data test #10, invalid var size): OK BTF raw test[14] (global data test #11, multiple section members): OK BTF raw test[15] (global data test #12, invalid offset): OK BTF raw test[16] (global data test #13, invalid offset): OK BTF raw test[17] (global data test #14, invalid offset): OK BTF raw test[18] (global data test #15, not var kind): OK BTF raw test[19] (global data test #16, invalid var referencing sec): OK BTF raw test[20] (global data test #17, invalid var referencing var): OK BTF raw test[21] (global data test #18, invalid var loop): OK BTF raw test[22] (global data test #19, invalid var referencing var): OK BTF raw test[23] (global data test #20, invalid ptr referencing var): OK BTF raw test[24] (global data test #21, var included in struct): OK BTF raw test[25] (global data test #22, array of var): OK [...] PASS:167 SKIP:0 FAIL:0 Signed-off-by: Daniel Borkmann Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit b915ebe6d9c8c6b5427e606c0ecee53df921382b Author: Joe Stringer Date: Tue Apr 9 23:20:17 2019 +0200 bpf, selftest: test global data/bss/rodata sections Add tests for libbpf relocation of static variable references into the .data, .rodata and .bss sections of the ELF, also add read-only test for .rodata. All passing: # ./test_progs [...] test_global_data:PASS:load program 0 nsec test_global_data:PASS:pass global data run 925 nsec test_global_data_number:PASS:relocate .bss reference 925 nsec test_global_data_number:PASS:relocate .data reference 925 nsec test_global_data_number:PASS:relocate .rodata reference 925 nsec test_global_data_number:PASS:relocate .bss reference 925 nsec test_global_data_number:PASS:relocate .data reference 925 nsec test_global_data_number:PASS:relocate .rodata reference 925 nsec test_global_data_number:PASS:relocate .bss reference 925 nsec test_global_data_number:PASS:relocate .bss reference 925 nsec test_global_data_number:PASS:relocate .rodata reference 925 nsec test_global_data_number:PASS:relocate .rodata reference 925 nsec test_global_data_number:PASS:relocate .rodata reference 925 nsec test_global_data_string:PASS:relocate .rodata reference 925 nsec test_global_data_string:PASS:relocate .data reference 925 nsec test_global_data_string:PASS:relocate .bss reference 925 nsec test_global_data_string:PASS:relocate .data reference 925 nsec test_global_data_string:PASS:relocate .bss reference 925 nsec test_global_data_struct:PASS:relocate .rodata reference 925 nsec test_global_data_struct:PASS:relocate .bss reference 925 nsec test_global_data_struct:PASS:relocate .rodata reference 925 nsec test_global_data_struct:PASS:relocate .data reference 925 nsec test_global_data_rdonly:PASS:test .rodata read-only map 925 nsec [...] Summary: 229 PASSED, 0 FAILED Note map helper signatures have been changed to avoid warnings when passing in const data. Joint work with Daniel Borkmann. Signed-off-by: Joe Stringer Signed-off-by: Daniel Borkmann Acked-by: Andrii Nakryiko Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit fb2abb73e575b6fcb428f803faf928ef04d5bb1e Author: Daniel Borkmann Date: Tue Apr 9 23:20:16 2019 +0200 bpf, selftest: test {rd, wr}only flags and direct value access Extend test_verifier with various test cases around the two kernel extensions, that is, {rd,wr}only map support as well as direct map value access. All passing, one skipped due to xskmap not present on test machine: # ./test_verifier [...] #948/p XDP pkt read, pkt_meta' <= pkt_data, bad access 1 OK #949/p XDP pkt read, pkt_meta' <= pkt_data, bad access 2 OK #950/p XDP pkt read, pkt_data <= pkt_meta', good access OK #951/p XDP pkt read, pkt_data <= pkt_meta', bad access 1 OK #952/p XDP pkt read, pkt_data <= pkt_meta', bad access 2 OK Summary: 1410 PASSED, 1 SKIPPED, 0 FAILED Signed-off-by: Daniel Borkmann Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit 817998afa038c156bbc1a6e69c48aa26282cc41f Author: Daniel Borkmann Date: Tue Apr 9 23:20:15 2019 +0200 bpf: bpftool support for dumping data/bss/rodata sections Add the ability to bpftool to handle BTF Var and DataSec kinds in order to dump them out of btf_dumper_type(). The value has a single object with the section name, which itself holds an array of variables it dumps. A single variable is an object by itself printed along with its name. From there further type information is dumped along with corresponding value information. Example output from .rodata: # ./bpftool m d i 150 [{ "value": { ".rodata": [{ "load_static_data.bar": 18446744073709551615 },{ "num2": 24 },{ "num5": 43947 },{ "num6": 171 },{ "str0": [97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,0,0,0,0,0,0 ] },{ "struct0": { "a": 42, "b": 4278120431, "c": 1229782938247303441 } },{ "struct2": { "a": 0, "b": 0, "c": 0 } } ] } } ] Signed-off-by: Daniel Borkmann Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit 1713d68b3bf039d029afd74653c9325f5003ccbe Author: Daniel Borkmann Date: Tue Apr 9 23:20:14 2019 +0200 bpf, libbpf: add support for BTF Var and DataSec This adds libbpf support for BTF Var and DataSec kinds. Main point here is that libbpf needs to do some preparatory work before the whole BTF object can be loaded into the kernel, that is, fixing up of DataSec size taken from the ELF section size and non-static variable offset which needs to be taken from the ELF's string section. Upstream LLVM doesn't fix these up since at time of BTF emission it is too early in the compilation process thus this information isn't available yet, hence loader needs to take care of it. Note, deduplication handling has not been in the scope of this work and needs to be addressed in a future commit. Signed-off-by: Daniel Borkmann Link: https://reviews.llvm.org/D59441 Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit d859900c4c56dc4f0f8894c92a01dad86917453e Author: Daniel Borkmann Date: Tue Apr 9 23:20:13 2019 +0200 bpf, libbpf: support global data/bss/rodata sections This work adds BPF loader support for global data sections to libbpf. This allows to write BPF programs in more natural C-like way by being able to define global variables and const data. Back at LPC 2018 [0] we presented a first prototype which implemented support for global data sections by extending BPF syscall where union bpf_attr would get additional memory/size pair for each section passed during prog load in order to later add this base address into the ldimm64 instruction along with the user provided offset when accessing a variable. Consensus from LPC was that for proper upstream support, it would be more desirable to use maps instead of bpf_attr extension as this would allow for introspection of these sections as well as potential live updates of their content. This work follows this path by taking the following steps from loader side: 1) In bpf_object__elf_collect() step we pick up ".data", ".rodata", and ".bss" section information. 2) If present, in bpf_object__init_internal_map() we add maps to the obj's map array that corresponds to each of the present sections. Given section size and access properties can differ, a single entry array map is created with value size that is corresponding to the ELF section size of .data, .bss or .rodata. These internal maps are integrated into the normal map handling of libbpf such that when user traverses all obj maps, they can be differentiated from user-created ones via bpf_map__is_internal(). In later steps when we actually create these maps in the kernel via bpf_object__create_maps(), then for .data and .rodata sections their content is copied into the map through bpf_map_update_elem(). For .bss this is not necessary since array map is already zero-initialized by default. Additionally, for .rodata the map is frozen as read-only after setup, such that neither from program nor syscall side writes would be possible. 3) In bpf_program__collect_reloc() step, we record the corresponding map, insn index, and relocation type for the global data. 4) And last but not least in the actual relocation step in bpf_program__relocate(), we mark the ldimm64 instruction with src_reg = BPF_PSEUDO_MAP_VALUE where in the first imm field the map's file descriptor is stored as similarly done as in BPF_PSEUDO_MAP_FD, and in the second imm field (as ldimm64 is 2-insn wide) we store the access offset into the section. Given these maps have only single element ldimm64's off remains zero in both parts. 5) On kernel side, this special marked BPF_PSEUDO_MAP_VALUE load will then store the actual target address in order to have a 'map-lookup'-free access. That is, the actual map value base address + offset. The destination register in the verifier will then be marked as PTR_TO_MAP_VALUE, containing the fixed offset as reg->off and backing BPF map as reg->map_ptr. Meaning, it's treated as any other normal map value from verification side, only with efficient, direct value access instead of actual call to map lookup helper as in the typical case. Currently, only support for static global variables has been added, and libbpf rejects non-static global variables from loading. This can be lifted until we have proper semantics for how BPF will treat multi-object BPF loads. From BTF side, libbpf will set the value type id of the types corresponding to the ".bss", ".data" and ".rodata" names which LLVM will emit without the object name prefix. The key type will be left as zero, thus making use of the key-less BTF option in array maps. Simple example dump of program using globals vars in each section: # bpftool prog [...] 6784: sched_cls name load_static_dat tag a7e1291567277844 gpl loaded_at 2019-03-11T15:39:34+0000 uid 0 xlated 1776B jited 993B memlock 4096B map_ids 2238,2237,2235,2236,2239,2240 # bpftool map show id 2237 2237: array name test_glo.bss flags 0x0 key 4B value 64B max_entries 1 memlock 4096B # bpftool map show id 2235 2235: array name test_glo.data flags 0x0 key 4B value 64B max_entries 1 memlock 4096B # bpftool map show id 2236 2236: array name test_glo.rodata flags 0x80 key 4B value 96B max_entries 1 memlock 4096B # bpftool prog dump xlated id 6784 int load_static_data(struct __sk_buff * skb): ; int load_static_data(struct __sk_buff *skb) 0: (b7) r6 = 0 ; test_reloc(number, 0, &num0); 1: (63) *(u32 *)(r10 -4) = r6 2: (bf) r2 = r10 ; int load_static_data(struct __sk_buff *skb) 3: (07) r2 += -4 ; test_reloc(number, 0, &num0); 4: (18) r1 = map[id:2238] 6: (18) r3 = map[id:2237][0]+0 <-- direct addr in .bss area 8: (b7) r4 = 0 9: (85) call array_map_update_elem#100464 10: (b7) r1 = 1 ; test_reloc(number, 1, &num1); [...] ; test_reloc(string, 2, str2); 120: (18) r8 = map[id:2237][0]+16 <-- same here at offset +16 122: (18) r1 = map[id:2239] 124: (18) r3 = map[id:2237][0]+16 126: (b7) r4 = 0 127: (85) call array_map_update_elem#100464 128: (b7) r1 = 120 ; str1[5] = 'x'; 129: (73) *(u8 *)(r9 +5) = r1 ; test_reloc(string, 3, str1); 130: (b7) r1 = 3 131: (63) *(u32 *)(r10 -4) = r1 132: (b7) r9 = 3 133: (bf) r2 = r10 ; int load_static_data(struct __sk_buff *skb) 134: (07) r2 += -4 ; test_reloc(string, 3, str1); 135: (18) r1 = map[id:2239] 137: (18) r3 = map[id:2235][0]+16 <-- direct addr in .data area 139: (b7) r4 = 0 140: (85) call array_map_update_elem#100464 141: (b7) r1 = 111 ; __builtin_memcpy(&str2[2], "hello", sizeof("hello")); 142: (73) *(u8 *)(r8 +6) = r1 <-- further access based on .bss data 143: (b7) r1 = 108 144: (73) *(u8 *)(r8 +5) = r1 [...] For Cilium use-case in particular, this enables migrating configuration constants from Cilium daemon's generated header defines into global data sections such that expensive runtime recompilations with LLVM can be avoided altogether. Instead, the ELF file becomes effectively a "template", meaning, it is compiled only once (!) and the Cilium daemon will then rewrite relevant configuration data from the ELF's .data or .rodata sections directly instead of recompiling the program. The updated ELF is then loaded into the kernel and atomically replaces the existing program in the networking datapath. More info in [0]. Based upon recent fix in LLVM, commit c0db6b6bd444 ("[BPF] Don't fail for static variables"). [0] LPC 2018, BPF track, "ELF relocation for static data in BPF", http://vger.kernel.org/lpc-bpf2018.html#session-3 Signed-off-by: Daniel Borkmann Acked-by: Andrii Nakryiko Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit f8c7a4d4dc39991c1bc05847ea4378282708f935 Author: Joe Stringer Date: Tue Apr 9 23:20:12 2019 +0200 bpf, libbpf: refactor relocation handling Adjust the code for relocations slightly with no functional changes, so that upcoming patches that will introduce support for relocations into the .data, .rodata and .bss sections can be added independent of these changes. Signed-off-by: Joe Stringer Signed-off-by: Daniel Borkmann Acked-by: Andrii Nakryiko Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit c83fef6bc5627bd0484a151212449270ab294cd9 Author: Daniel Borkmann Date: Tue Apr 9 23:20:11 2019 +0200 bpf: sync {btf, bpf}.h uapi header from tools infrastructure Pull in latest changes from both headers, so we can make use of them in libbpf. Signed-off-by: Daniel Borkmann Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit 2824ecb7010f6a20e9a4140512b798469ab066cc Author: Daniel Borkmann Date: Tue Apr 9 23:20:10 2019 +0200 bpf: allow for key-less BTF in array map Given we'll be reusing BPF array maps for global data/bss/rodata sections, we need a way to associate BTF DataSec type as its map value type. In usual cases we have this ugly BPF_ANNOTATE_KV_PAIR() macro hack e.g. via 38d5d3b3d5db ("bpf: Introduce BPF_ANNOTATE_KV_PAIR") to get initial map to type association going. While more use cases for it are discouraged, this also won't work for global data since the use of array map is a BPF loader detail and therefore unknown at compilation time. For array maps with just a single entry we make an exception in terms of BTF in that key type is declared optional if value type is of DataSec type. The latter LLVM is guaranteed to emit and it also aligns with how we regard global data maps as just a plain buffer area reusing existing map facilities for allowing things like introspection with existing tools. Signed-off-by: Daniel Borkmann Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit 1dc92851849cc2235a1efef8f8d5a9255efc5f13 Author: Daniel Borkmann Date: Tue Apr 9 23:20:09 2019 +0200 bpf: kernel side support for BTF Var and DataSec This work adds kernel-side verification, logging and seq_show dumping of BTF Var and DataSec kinds which are emitted with latest LLVM. The following constraints apply: BTF Var must have: - Its kind_flag is 0 - Its vlen is 0 - Must point to a valid type - Type must not resolve to a forward type - Size of underlying type must be > 0 - Must have a valid name - Can only be a source type, not sink or intermediate one - Name may include dots (e.g. in case of static variables inside functions) - Cannot be a member of a struct/union - Linkage so far can either only be static or global/allocated BTF DataSec must have: - Its kind_flag is 0 - Its vlen cannot be 0 - Its size cannot be 0 - Must have a valid name - Can only be a source type, not sink or intermediate one - Name may include dots (e.g. to represent .bss, .data, .rodata etc) - Cannot be a member of a struct/union - Inner btf_var_secinfo array with {type,offset,size} triple must be sorted by offset in ascending order - Type must always point to BTF Var - BTF resolved size of Var must be <= size provided by triple - DataSec size must be >= sum of triple sizes (thus holes are allowed) btf_var_resolve(), btf_ptr_resolve() and btf_modifier_resolve() are on a high level quite similar but each come with slight, subtle differences. They could potentially be a bit refactored in future which hasn't been done here to ease review. Signed-off-by: Daniel Borkmann Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit f063c889c9458354a92b235a51cbb60d30321070 Author: Daniel Borkmann Date: Tue Apr 9 23:20:08 2019 +0200 bpf: add specification for BTF Var and DataSec kinds This adds the BTF specification and UAPI bits for supporting BTF Var and DataSec kinds. This is following LLVM upstream commit ac4082b77e07 ("[BPF] Add BTF Var and DataSec Support") which has been merged recently. Var itself is for describing a global variable and DataSec to describe ELF sections e.g. data/bss/rodata sections that hold one or multiple global variables. Signed-off-by: Daniel Borkmann Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit 3e0ddc4f3ff1436970e96e76f3df3c3b5f5173b6 Author: Daniel Borkmann Date: Tue Apr 9 23:20:07 2019 +0200 bpf: allow . char as part of the object name Trivial addition to allow '.' aside from '_' as "special" characters in the object name. Used to allow for substrings in maps from loader side such as ".bss", ".data", ".rodata", but could also be useful for other purposes. Signed-off-by: Daniel Borkmann Acked-by: Andrii Nakryiko Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit 87df15de441bd4add7876ef584da8cabdd9a042a Author: Daniel Borkmann Date: Tue Apr 9 23:20:06 2019 +0200 bpf: add syscall side map freeze support This patch adds a new BPF_MAP_FREEZE command which allows to "freeze" the map globally as read-only / immutable from syscall side. Map permission handling has been refactored into map_get_sys_perms() and drops FMODE_CAN_WRITE in case of locked map. Main use case is to allow for setting up .rodata sections from the BPF ELF which are loaded into the kernel, meaning BPF loader first allocates map, sets up map value by copying .rodata section into it and once complete, it calls BPF_MAP_FREEZE on the map fd to prevent further modifications. Right now BPF_MAP_FREEZE only takes map fd as argument while remaining bpf_attr members are required to be zero. I didn't add write-only locking here as counterpart since I don't have a concrete use-case for it on my side, and I think it makes probably more sense to wait once there is actually one. In that case bpf_attr can be extended as usual with a flag field and/or others where flag 0 means that we lock the map read-only hence this doesn't prevent to add further extensions to BPF_MAP_FREEZE upon need. A map creation flag like BPF_F_WRONCE was not considered for couple of reasons: i) in case of a generic implementation, a map can consist of more than just one element, thus there could be multiple map updates needed to set the map into a state where it can then be made immutable, ii) WRONCE indicates exact one-time write before it is then set immutable. A generic implementation would set a bit atomically on map update entry (if unset), indicating that every subsequent update from then onwards will need to bail out there. However, map updates can fail, so upon failure that flag would need to be unset again and the update attempt would need to be repeated for it to be eventually made immutable. While this can be made race-free, this approach feels less clean and in combination with reason i), it's not generic enough. A dedicated BPF_MAP_FREEZE command directly sets the flag and caller has the guarantee that map is immutable from syscall side upon successful return for any future syscall invocations that would alter the map state, which is also more intuitive from an API point of view. A command name such as BPF_MAP_LOCK has been avoided as it's too close with BPF map spin locks (which already has BPF_F_LOCK flag). BPF_MAP_FREEZE is so far only enabled for privileged users. Signed-off-by: Daniel Borkmann Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit 591fe9888d7809d9ee5c828020b6c6ae27c37229 Author: Daniel Borkmann Date: Tue Apr 9 23:20:05 2019 +0200 bpf: add program side {rd, wr}only support for maps This work adds two new map creation flags BPF_F_RDONLY_PROG and BPF_F_WRONLY_PROG in order to allow for read-only or write-only BPF maps from a BPF program side. Today we have BPF_F_RDONLY and BPF_F_WRONLY, but this only applies to system call side, meaning the BPF program has full read/write access to the map as usual while bpf(2) calls with map fd can either only read or write into the map depending on the flags. BPF_F_RDONLY_PROG and BPF_F_WRONLY_PROG allows for the exact opposite such that verifier is going to reject program loads if write into a read-only map or a read into a write-only map is detected. For read-only map case also some helpers are forbidden for programs that would alter the map state such as map deletion, update, etc. As opposed to the two BPF_F_RDONLY / BPF_F_WRONLY flags, BPF_F_RDONLY_PROG as well as BPF_F_WRONLY_PROG really do correspond to the map lifetime. We've enabled this generic map extension to various non-special maps holding normal user data: array, hash, lru, lpm, local storage, queue and stack. Further generic map types could be followed up in future depending on use-case. Main use case here is to forbid writes into .rodata map values from verifier side. Signed-off-by: Daniel Borkmann Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit be70bcd53de66e86f2726e576307cbdaebd3b1a5 Author: Daniel Borkmann Date: Tue Apr 9 23:20:04 2019 +0200 bpf: do not retain flags that are not tied to map lifetime Both BPF_F_WRONLY / BPF_F_RDONLY flags are tied to the map file descriptor, but not to the map object itself! Meaning, at map creation time BPF_F_RDONLY can be set to make the map read-only from syscall side, but this holds only for the returned fd, so any other fd either retrieved via bpf file system or via map id for the very same underlying map object can have read-write access instead. Given that, keeping the two flags around in the map_flags attribute and exposing them to user space upon map dump is misleading and may lead to false conclusions. Since these two flags are not tied to the map object lets also not store them as map property. Signed-off-by: Daniel Borkmann Acked-by: Martin KaFai Lau Signed-off-by: Alexei Starovoitov commit d8eca5bbb2be9bc7546f9e733786fa2f1a594c67 Author: Daniel Borkmann Date: Tue Apr 9 23:20:03 2019 +0200 bpf: implement lookup-free direct value access for maps This generic extension to BPF maps allows for directly loading an address residing inside a BPF map value as a single BPF ldimm64 instruction! The idea is similar to what BPF_PSEUDO_MAP_FD does today, which is a special src_reg flag for ldimm64 instruction that indicates that inside the first part of the double insns's imm field is a file descriptor which the verifier then replaces as a full 64bit address of the map into both imm parts. For the newly added BPF_PSEUDO_MAP_VALUE src_reg flag, the idea is the following: the first part of the double insns's imm field is again a file descriptor corresponding to the map, and the second part of the imm field is an offset into the value. The verifier will then replace both imm parts with an address that points into the BPF map value at the given value offset for maps that support this operation. Currently supported is array map with single entry. It is possible to support more than just single map element by reusing both 16bit off fields of the insns as a map index, so full array map lookup could be expressed that way. It hasn't been implemented here due to lack of concrete use case, but could easily be done so in future in a compatible way, since both off fields right now have to be 0 and would correctly denote a map index 0. The BPF_PSEUDO_MAP_VALUE is a distinct flag as otherwise with BPF_PSEUDO_MAP_FD we could not differ offset 0 between load of map pointer versus load of map's value at offset 0, and changing BPF_PSEUDO_MAP_FD's encoding into off by one to differ between regular map pointer and map value pointer would add unnecessary complexity and increases barrier for debugability thus less suitable. Using the second part of the imm field as an offset into the value does /not/ come with limitations since maximum possible value size is in u32 universe anyway. This optimization allows for efficiently retrieving an address to a map value memory area without having to issue a helper call which needs to prepare registers according to calling convention, etc, without needing the extra NULL test, and without having to add the offset in an additional instruction to the value base pointer. The verifier then treats the destination register as PTR_TO_MAP_VALUE with constant reg->off from the user passed offset from the second imm field, and guarantees that this is within bounds of the map value. Any subsequent operations are normally treated as typical map value handling without anything extra needed from verification side. The two map operations for direct value access have been added to array map for now. In future other types could be supported as well depending on the use case. The main use case for this commit is to allow for BPF loader support for global variables that reside in .data/.rodata/.bss sections such that we can directly load the address of them with minimal additional infrastructure required. Loader support has been added in subsequent commits for libbpf library. Signed-off-by: Daniel Borkmann Signed-off-by: Alexei Starovoitov commit 3e3d1dfda4d6a17666fe0beae5c56b97b42e2c7a Author: Paul Burton Date: Fri Apr 5 22:50:37 2019 +0000 MIPS: generic: Enable CONFIG_JUMP_LABEL Enable CONFIG_JUMP_LABEL for generic configs in order to better optimize at runtime and get better test coverage for our jump label support. Signed-off-by: Paul Burton Cc: linux-mips@vger.kernel.org commit 9b6584e35f407a391de39938fd0b4fb29671924f Author: Paul Burton Date: Fri Apr 5 22:50:36 2019 +0000 MIPS: jump_label: Use compact branches for >= r6 MIPSr6 introduced compact branches which have no delay slots. Make use of them for jump labels in order to avoid the need for a nop to fill the branch or jump delay slot, saving 4 bytes of code for each static branch. Signed-off-by: Paul Burton Cc: linux-mips@vger.kernel.org commit c838b580ca9dcf16b07aa72bb61a914e9db0fd2c Author: Paul Burton Date: Fri Apr 5 22:50:35 2019 +0000 MIPS: jump_label: Remove redundant nops Both arch_static_branch() & arch_static_branch_jump() emit a control transfer instruction (ie. branch or jump) without disabling assembler re-ordering. As such the assembler will automatically fill their delay slots. Both functions follow their branch or jump with an explicit nop that at first appears to be there to fill the delay slot, but given that the assembler will do that the explicit nops serve no purpose & we end up with our branch or jump followed by 2 nops. Remove the redundant nops. Signed-off-by: Paul Burton Cc: linux-mips@vger.kernel.org commit ec86e545c19a5d7364b6da06dd755d43d130bf4f Merge: e6046b5e69a0 f6cab793d4a7 Author: Paul Burton Date: Tue Apr 9 16:19:48 2019 -0700 Merge tag 'mips_fixes_5.1_1' into mips-next A small batch of MIPS fixes for 5.1: - An interrupt masking fix for Loongson-based Lemote 2F systems (fixing a regression from v3.19). - A relocation fix for configurations in which the devicetree is stored in an ELF section (fixing a regression from v4.7). - Fix jump labels for MIPSr6 kernels where they previously could inadvertently place a control transfer instruction in a forbidden slot & take unexpected exceptions (fixing MIPSr6 support added in v4.0). - Extend an existing USB power workaround for the Netgear WNDR3400 to v2 boards in addition to the v3 ones that already used it. - Remove the custom MIPS32 definition of __kernel_fsid_t to make it consistent with MIPS64 & every other architecture, in particular resolving issues for code which tries to print the val field whose type previously differed (though had identical memory layout). Merged into mips-next to gain the MIPSr6 jump label fix before enabling jump labels by default for generic kernel builds. Signed-off-by: Paul Burton commit 1d8b29fdb7ef39bd76bcd7a7f516938163097b0e Author: Al Viro Date: Tue Apr 2 09:42:50 2019 -0400 sysv: bury the broken "quietly truncate the long filenames" logics It's contrary to the normal semantics, only sysv and adfs try to do that (on any other filesystem you'll get -ENAMETOOLONG instead of quiet truncation) and nobody actually uses that - it got accidentally broken 5 years ago and nobody noticed. Time to bury it... Signed-off-by: Al Viro commit 357ab5b5d240a284b261a62451e838dd9f76e6b9 Author: Al Viro Date: Fri Mar 22 23:26:22 2019 -0400 nsfs: unobfuscate 1) IS_ERR(p) && PTR_ERR(p) == -E... is spelled p == ERR_PTR(-E...) 2) yes, you can open-code do-while and sometimes there's even a good reason to do so. Not in this case, though. Signed-off-by: Al Viro commit ab1152dd5650d35da6f0f6d3c0cc18f86fdc0725 Author: Al Viro Date: Fri Mar 15 22:58:11 2019 -0400 unexport d_alloc_pseudo() No modular uses since introducion of alloc_file_pseudo(), and the only non-modular user not in alloc_file_pseudo() had actually been wrong - should've been d_alloc_anon(). Signed-off-by: Al Viro commit ce285c267a003acbf607f3540ff71287f82e5282 Author: Al Viro Date: Tue Apr 2 15:17:34 2019 -0400 autofs: fix use-after-free in lockless ->d_manage() autofs_d_release() can overlap with lockless ->d_manage(), ending up with autofs_dentry_ino() freed under the latter. Make freeing autofs_info instances RCU-delayed... Signed-off-by: Al Viro commit 5467a68cbf6884c9a9d91e2a89140afb1839c835 Author: Al Viro Date: Fri Mar 15 22:23:19 2019 -0400 dcache: sort the freeing-without-RCU-delay mess for good. For lockless accesses to dentries we don't have pinned we rely (among other things) upon having an RCU delay between dropping the last reference and actually freeing the memory. On the other hand, for things like pipes and sockets we neither do that kind of lockless access, nor want to deal with the overhead of an RCU delay every time a socket gets closed. So delay was made optional - setting DCACHE_RCUACCESS in ->d_flags made sure it would happen. We tried to avoid setting it unless we knew we need it. Unfortunately, that had led to recurring class of bugs, in which we missed the need to set it. We only really need it for dentries that are created by d_alloc_pseudo(), so let's not bother with trying to be smart - just make having an RCU delay the default. The ones that do *not* get it set the replacement flag (DCACHE_NORCU) and we'd better use that sparingly. d_alloc_pseudo() is the only such user right now. FWIW, the race that finally prompted that switch had been between __lock_parent() of immediate subdirectory of what's currently the root of a disconnected tree (e.g. from open-by-handle in progress) racing with d_splice_alias() elsewhere picking another alias for the same inode, either on outright corrupted fs image, or (in case of open-by-handle on NFS) that subdirectory having been just moved on server. It's not easy to hit, so the sky is not falling, but that's not the first race on similar missed cases and the logics for settinf DCACHE_RCUACCESS has gotten ridiculously convoluted. Cc: stable@vger.kernel.org Signed-off-by: Al Viro commit 6d46d2934aeab54bd560e68bf5c73f016f9317a2 Author: Chengguang Xu Date: Tue Apr 9 18:37:52 2019 +0800 fs/block_dev.c: remove unused include Just remove unused include from fs/block_dev.c. Signed-off-by: Chengguang Xu Reviewed-by: Bart Van Assche Signed-off-by: Al Viro commit d7830ce3c5e0fe6aee645a1a01c9ae367d31bb9e Author: Michael Hennerich Date: Tue Apr 9 08:24:41 2019 +0200 power: supply: ltc3651-charger: Fix device name (rename files) rename only - no functional changes Signed-off-by: Michael Hennerich Signed-off-by: Sebastian Reichel commit 2e220e6eb3ce97af898046a78725715b6898fe23 Author: Michael Hennerich Date: Tue Apr 9 08:24:40 2019 +0200 power: supply: ltc3651-charger: Fix device name There never was a device called LTC3651, it always was just LT3651. This circumstance makes it pretty difficult to identify what this driver is meant to control.channges since Signed-off-by: Michael Hennerich Signed-off-by: Sebastian Reichel commit 6f9b83ac877fb5558d76b9f78590f3afd1bdf421 Author: Ulf Hansson Date: Wed Mar 27 15:35:47 2019 +0100 cpuidle: Export the next timer expiration for CPUs To be able to predict the sleep duration for a CPU entering idle, it is essential to know the expiration time of the next timer. Both the teo and the menu cpuidle governors already use this information for CPU idle state selection. Moving forward, a similar prediction needs to be made for a group of idle CPUs rather than for a single one and the following changes implement a new genpd governor for that purpose. In order to support that feature, add a new function called tick_nohz_get_next_hrtimer() that will return the next hrtimer expiration time of a given CPU to be invoked after deciding whether or not to stop the scheduler tick on that CPU. Make the cpuidle core call tick_nohz_get_next_hrtimer() right before invoking the ->enter() callback provided by the cpuidle driver for the given state and store its return value in the per-CPU struct cpuidle_device, so as to make it available to code outside of cpuidle. Note that at the point when cpuidle calls tick_nohz_get_next_hrtimer(), the governor's ->select() callback has already returned and indicated whether or not the tick should be stopped, so in fact the value returned by tick_nohz_get_next_hrtimer() always is the next hrtimer expiration time for the given CPU, possibly including the tick (if it hasn't been stopped). Co-developed-by: Lina Iyer Co-developed-by: Daniel Lezcano Acked-by: Daniel Lezcano Signed-off-by: Ulf Hansson [ rjw: Subject & changelog ] Signed-off-by: Rafael J. Wysocki commit eb594b7325f61835555140922a4cb715264a325c Author: Ulf Hansson Date: Wed Mar 27 15:35:46 2019 +0100 PM / Domains: Add support for CPU devices to genpd To enable a CPU device to be attached to a PM domain managed by genpd, make a few changes to it for convenience. To be able to quickly find out what CPUs are attached to a genpd, which typically becomes useful from a genpd governor as subsequent changes are about to show, add a cpumask to struct generic_pm_domain to be updated when a CPU device gets attached to the genpd containing that cpumask. Also, propagate the cpumask changes upwards in the domain hierarchy to the master PM domains. This way, the cpumask for a genpd hierarchically reflects all CPUs attached to the topology below it. Finally, make this an opt-in feature, to avoid having to manage CPUs and the cpumask for a genpd that don't need it. To that end, add a new genpd configuration bit, GENPD_FLAG_CPU_DOMAIN. Co-developed-by: Lina Iyer Acked-by: Daniel Lezcano Signed-off-by: Ulf Hansson [ rjw: Changelog ] Signed-off-by: Rafael J. Wysocki commit 49a27e279052cf71ba931a26b00194ff46510480 Author: Ulf Hansson Date: Wed Mar 27 15:35:45 2019 +0100 PM / Domains: Add generic data pointer to struct genpd_power_state Add a data pointer to the genpd_power_state struct, to allow a genpd backend driver to store per-state specific data. To introduce the pointer, change the way genpd deals with freeing of the corresponding allocated data. More precisely, clarify the responsibility of whom that shall free the data, by adding a ->free_states() callback to the generic_pm_domain structure. The one allocating the data will be expected to set the callback, to allow genpd to invoke it from genpd_remove(). Co-developed-by: Lina Iyer Acked-by: Daniel Lezcano Signed-off-by: Ulf Hansson [ rjw: Subject & changelog ] Signed-off-by: Rafael J. Wysocki commit 66e9c46c5cdbd9767d730c88049e1ef0438f749a Author: Tobin C. Harding Date: Tue Apr 9 10:43:59 2019 +1000 docs: Use reference to link to rst file Current document includes the path to an RST doc file. Since this is an RST file we can make this a link. Keeps the path as the link title since that what the original author wrote. Use reference to link to rst file. Signed-off-by: Tobin C. Harding Signed-off-by: Jonathan Corbet commit 8c1007fdc71fdf993885d47ad17d9cc0e0b97b1c Author: Tobin C. Harding Date: Tue Apr 9 10:43:57 2019 +1000 docs: Add colon clearing sphinx warning Sphinx emits various warnings all caused by a missing colon before code block: WARNING: Block quote ends without a blank line; unexpected unindent. ERROR: Unexpected indentation. WARNING: Block quote ends without a blank line; unexpected unindent. Add the colon, clearing sphinx warnings. Signed-off-by: Tobin C. Harding Signed-off-by: Jonathan Corbet commit 49afe7e99350b8eaf586ffdebe0c1c48c6d339c0 Author: Tobin C. Harding Date: Tue Apr 9 10:43:56 2019 +1000 docs: Fix spelling mistake Documentation contains a spelling mistake / typo. s/descibed/described/ Fix spelling mistake. Signed-off-by: Tobin C. Harding Signed-off-by: Jonathan Corbet commit 4c75be07f9385364be3a5033ff3a20faf3f3bce0 Author: Heiner Kallweit Date: Sun Apr 7 12:11:35 2019 +0200 net: phy: remove unnecessary callback settings in C45 drivers genphy_c45_aneg_done() is used by phylib as fallback for c45 PHY's if callback aneg_done isn't defined. So we don't have to set this explicitly. Same for genphy_c45_pma_read_abilities(). Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit fbcc9e0c37ba3186c41b5eb1aee2f7f3b711bc1e Author: Sebastian Andrzej Siewior Date: Wed Apr 3 18:41:34 2019 +0200 x86/fpu: Remove fpu->initialized usage in copy_fpstate_to_sigframe() With lazy-FPU support the (now named variable) ->initialized was set to true if the CPU's FPU registers were holding a valid state of the FPU registers for the active process. If it was set to false then the FPU state was saved in fpu->state and the FPU was deactivated. With lazy-FPU gone, ->initialized is always true for user threads and kernel threads never call this function so ->initialized is always true in copy_fpstate_to_sigframe(). The using_compacted_format() check is also a leftover from the lazy-FPU time. In the ->initialized == false case copy_to_user() would copy the compacted buffer while userland would expect the non-compacted format instead. So in order to save the FPU state in the non-compacted form it issues XSAVE to save the *current* FPU state. If the FPU is not enabled, the attempt raises the FPU trap, the trap restores the FPU contents and re-enables the FPU and XSAVE is invoked again and succeeds. *This* does not longer work since commit bef8b6da9522 ("x86/fpu: Handle #NM without FPU emulation as an error") Remove the check for ->initialized because it is always true and remove the false condition. Update the comment to reflect that the state is always live. [ bp: Massage. ] Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: "Jason A. Donenfeld" Cc: kvm ML Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Rik van Riel Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-6-bigeasy@linutronix.de commit 0c9381d9bcfbd7dbc26b6e5f296e90d6396ea4db Merge: 310655b07ae8 027d4ca6f0f5 Author: David S. Miller Date: Tue Apr 9 11:16:59 2019 -0700 Merge branch 'netdevsim-small-spring-cleanup' Jiri Pirko says: ==================== netdevsim: small spring cleanup Nothing serious, just cosmetics. ==================== Signed-off-by: David S. Miller commit 027d4ca6f0f589ae18c5086ddb04cd1819708ffa Author: Jiri Pirko Date: Tue Apr 9 17:14:54 2019 +0200 netdevsim: assume CONFIG_NET_DEVLINK is always enabled Since commit f6b19b354d50 ("net: devlink: select NET_DEVLINK from drivers") adds implicit select of NET_DEVLINK for netdevsim, the code does not have to deal with the case when CONFIG_NET_DEVLINK is not enabled. So remove the ifcase. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit c3d9a435d9398294231cc398173780bae951d60f Author: Jiri Pirko Date: Tue Apr 9 17:14:53 2019 +0200 netdevsim: let net core to free netdevsim netdev No need to free it ourselves, just set the "needs_free_netdev" flag and leave the work to net core. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 7d1df2c978dc472bc514f92c9ecb1db33503b298 Author: Jiri Pirko Date: Tue Apr 9 17:14:52 2019 +0200 netdevsim: remove nsim_dellink() implementation Remove nsim_dellink() implementation. The rtnetlink code sets the dellink op to unregister_netdevice_queue(), so this is not needed. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 88f5260a3bf9bfb276b5b4aac2e81587e425a1d7 Author: Sebastian Andrzej Siewior Date: Wed Apr 3 18:41:33 2019 +0200 x86/fpu: Always init the state in fpu__clear() fpu__clear() only initializes the state if the CPU has FPU support. This initialisation is also required for FPU-less systems and takes place in math_emulate(). Since fpu__initialize() only performs the initialization if ->initialized is zero it does not matter that it is invoked each time an opcode is emulated. It makes the removal of ->initialized easier if the struct is also initialized in the FPU-less case at the same time. Move fpu__initialize() before the FPU feature check so it is also performed in the FPU-less case too. [ bp: Massage a bit. ] Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: Aubrey Li Cc: Bill Metzenthen Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: "Jason A. Donenfeld" Cc: kvm ML Cc: Nicolai Stange Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Rik van Riel Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-5-bigeasy@linutronix.de commit 60e528d6ce3f60a058bbb64f8acb2a07f84b172a Author: Sebastian Andrzej Siewior Date: Wed Apr 3 18:41:32 2019 +0200 x86/fpu: Remove preempt_disable() in fpu__clear() The preempt_disable() section was introduced in commit a10b6a16cdad8 ("x86/fpu: Make the fpu state change in fpu__clear() scheduler-atomic") and it was said to be temporary. fpu__initialize() initializes the FPU struct to its initial value and then sets ->initialized to 1. The last part is the important one. The content of the state does not matter because it gets set via copy_init_fpstate_to_fpregs(). A preemption here has little meaning because the registers will always be set to the same content after copy_init_fpstate_to_fpregs(). A softirq with a kernel_fpu_begin() could also force to save FPU's registers after fpu__initialize() without changing the outcome here. Remove the preempt_disable() section in fpu__clear(), preemption here does not hurt. Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: "Jason A. Donenfeld" Cc: kvm ML Cc: Nicolai Stange Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Rik van Riel Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-4-bigeasy@linutronix.de commit 6dd677a044e606fd343e31c2108b13d74aec1ca5 Author: Sebastian Andrzej Siewior Date: Wed Apr 3 18:41:31 2019 +0200 x86/fpu: Remove fpu__restore() There are no users of fpu__restore() so it is time to remove it. The comment regarding fpu__restore() and TS bit is stale since commit b3b0870ef3ffe ("i387: do not preload FPU state at task switch time") and has no meaning since. Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Cc: Andy Lutomirski Cc: Aubrey Li Cc: Babu Moger Cc: "Chang S. Bae" Cc: Dmitry Safonov Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: "Jason A. Donenfeld" Cc: Joerg Roedel Cc: Jonathan Corbet Cc: kvm ML Cc: linux-doc@vger.kernel.org Cc: Nicolai Stange Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Rik van Riel Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-3-bigeasy@linutronix.de commit 39ea9baffda91df8bfee9b45610242a3191ea1ec Author: Sebastian Andrzej Siewior Date: Wed Apr 3 18:41:30 2019 +0200 x86/fpu: Remove fpu->initialized usage in __fpu__restore_sig() This is a preparation for the removal of the ->initialized member in the fpu struct. __fpu__restore_sig() is deactivating the FPU via fpu__drop() and then setting manually ->initialized followed by fpu__restore(). The result is that it is possible to manipulate fpu->state and the state of registers won't be saved/restored on a context switch which would overwrite fpu->state: fpu__drop(fpu): ... fpu->initialized = 0; preempt_enable(); <--- context switch Don't access the fpu->state while the content is read from user space and examined/sanitized. Use a temporary kmalloc() buffer for the preparation of the FPU registers and once the state is considered okay, load it. Should something go wrong, return with an error and without altering the original FPU registers. The removal of fpu__initialize() is a nop because fpu->initialized is already set for the user task. [ bp: Massage a bit. ] Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Borislav Petkov Reviewed-by: Dave Hansen Reviewed-by: Thomas Gleixner Acked-by: Borislav Petkov Cc: Andy Lutomirski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: "Jason A. Donenfeld" Cc: kvm ML Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Rik van Riel Cc: x86-ml Link: https://lkml.kernel.org/r/20190403164156.19645-2-bigeasy@linutronix.de commit a01bcfd6990d18d97f88c01d3082e562a562cc4d Author: Gustavo A. R. Silva Date: Tue Feb 12 11:35:21 2019 -0600 NFC: st21nfca: Fix fall-through warnings In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warnings by adding a missing break and a fall-through annotation: drivers/nfc/st21nfca/dep.c: In function ‘st21nfca_tm_event_send_data’: drivers/nfc/st21nfca/dep.c:391:3: warning: this statement may fall through [-Wimplicit-fallthrough=] switch (cmd1) { ^~~~~~ drivers/nfc/st21nfca/dep.c:404:2: note: here default: ^~~~~~~ In file included from ./include/linux/kernel.h:15, from ./include/linux/skbuff.h:17, from ./include/net/nfc/hci.h:21, from drivers/nfc/st21nfca/dep.c:17: drivers/nfc/st21nfca/dep.c: In function ‘st21nfca_im_recv_dep_res_cb’: ./include/linux/printk.h:303:2: warning: this statement may fall through [-Wimplicit-fallthrough=] printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/nfc/st21nfca/dep.c:622:4: note: in expansion of macro ‘pr_err’ pr_err("Received a ACK/NACK PDU\n"); ^~~~~~ drivers/nfc/st21nfca/dep.c:623:3: note: here case ST21NFCA_NFC_DEP_PFB_I_PDU: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit 2eabc5ec8ab4d4748a82050dfcb994119b983750 Author: Takashi Iwai Date: Tue Apr 9 18:04:17 2019 +0200 ALSA: seq: Fix race of get-subscription call vs port-delete ioctls The snd_seq_ioctl_get_subscription() retrieves the port subscriber information as a pointer, while the object isn't protected, hence it may be deleted before the actual reference. This race was spotted by syzkaller and may lead to a UAF. The fix is simply copying the data in the lookup function that performs in the rwsem to protect against the deletion. Reported-by: syzbot+9437020c82413d00222d@syzkaller.appspotmail.com Signed-off-by: Takashi Iwai commit feb689025fbb6f0aa6297d3ddf97de945ea4ad32 Author: Takashi Iwai Date: Tue Apr 9 17:35:22 2019 +0200 ALSA: seq: Protect in-kernel ioctl calls with mutex ALSA OSS sequencer calls the ioctl function indirectly via snd_seq_kernel_client_ctl(). While we already applied the protection against races between the normal ioctls and writes via the client's ioctl_mutex, this code path was left untouched. And this seems to be the cause of still remaining some rare UAF as spontaneously triggered by syzkaller. For the sake of robustness, wrap the ioctl_mutex also for the call via snd_seq_kernel_client_ctl(), too. Reported-by: syzbot+e4c8abb920efa77bace9@syzkaller.appspotmail.com Signed-off-by: Takashi Iwai commit 9fe0a75908903428ef33d05a4f4842a057b36a62 Author: Gustavo A. R. Silva Date: Wed Feb 13 12:54:03 2019 -0600 NFC: pn533: mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warnings: drivers/nfc/pn533/pn533.c: In function ‘pn533_transceive’: drivers/nfc/pn533/pn533.c:2142:6: warning: this statement may fall through [-Wimplicit-fallthrough=] if (dev->tgt_active_prot == NFC_PROTO_FELICA) { ^ drivers/nfc/pn533/pn533.c:2150:2: note: here default: ^~~~~~~ drivers/nfc/pn533/pn533.c: In function ‘pn533_wq_mi_recv’: drivers/nfc/pn533/pn533.c:2267:6: warning: this statement may fall through [-Wimplicit-fallthrough=] if (dev->tgt_active_prot == NFC_PROTO_FELICA) { ^ drivers/nfc/pn533/pn533.c:2276:2: note: here default: ^~~~~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Addresses-Coverity-ID: 1230487 ("Missing break in switch") Addresses-Coverity-ID: 1230488 ("Missing break in switch") Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit e16fb3a8d27189a76037e143fec8b89f551b96bf Author: Gustavo A. R. Silva Date: Wed Jan 23 00:33:09 2019 -0600 block: Mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warnings: drivers/block/drbd/drbd_int.h:1774:6: warning: this statement may fall through [-Wimplicit-fallthrough=] drivers/block/drbd/drbd_int.h:1774:6: warning: this statement may fall through [-Wimplicit-fallthrough=] drivers/block/drbd/drbd_int.h:1774:6: warning: this statement may fall through [-Wimplicit-fallthrough=] drivers/block/drbd/drbd_int.h:1774:6: warning: this statement may fall through [-Wimplicit-fallthrough=] drivers/block/drbd/drbd_int.h:1774:6: warning: this statement may fall through [-Wimplicit-fallthrough=] drivers/block/drbd/drbd_receiver.c:3093:6: warning: this statement may fall through [-Wimplicit-fallthrough=] drivers/block/drbd/drbd_receiver.c:3120:6: warning: this statement may fall through [-Wimplicit-fallthrough=] drivers/block/drbd/drbd_req.c:856:6: warning: this statement may fall through [-Wimplicit-fallthrough=] Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough Reviewed-by: Chaitanya Kulkarni Acked-by: Roland Kammerer Signed-off-by: Gustavo A. R. Silva commit b2770b2d6f1b4d33e919fc2a9ccf536efedc1e40 Author: Tony Lindgren Date: Tue Apr 9 09:00:54 2019 -0700 ARM: dts: Add l4 abe interconnect hierarchy and ti-sysc data for omap5 We can now add l4 abe interconnect hierarchy and ti-sysc data with ti-sysc driver supporting external optional clocks needed by mcpdm. This data is generated based on platform data from a booted system and the interconnect acces protection registers for ranges. To avoid regressions, we initially validate the device tree provided data against the existing platform data on boot. Note that mcpdm we now need to enable at module level only for devices that have the external pdmclk wired from the PMIC as the clock is needed for the module to be accessible. Also note that abe seems to be the same as on omap4 except for domains and clocks and we may be able to combine the l4 abe data later on. But let's play it safe and just initially use what we have already defined in the platform data. Cc: devicetree@vger.kernel.org Cc: Peter Ujfalusi Signed-off-by: Tony Lindgren commit 5b5975312903a90220dc980a366a259faedc6808 Author: Tony Lindgren Date: Tue Apr 9 09:00:53 2019 -0700 ARM: dts: Add l4 abe interconnect hierarchy and ti-sysc data for omap4 We can now add l4 abe interconnect hierarchy and ti-sysc data with ti-sysc driver supporting external optional clocks needed by mcpdm. This data is generated based on platform data from a booted system and the interconnect acces protection registers for ranges. To avoid regressions, we initially validate the device tree provided data against the existing platform data on boot. Note that mcpdm we now need to enable at module level only for devices that have the external pdmclk wired from the PMIC as the clock is needed for the module to be accessible. Cc: devicetree@vger.kernel.org Cc: Peter Ujfalusi Signed-off-by: Tony Lindgren commit ed01ffd9dd1c7e585f73b08877192a2cf754d006 Author: Tony Lindgren Date: Tue Apr 9 09:00:53 2019 -0700 ARM: dts: Add common mcpdm dts file for omap4 The mcpdm module found on omap4 and 5 needs pdmclk clock from the pmic that may or may not be wired. Without this clock we cannot read the registers for mcpdm at all. For the external mcpdm clock to work, it needs to be muxed at the module level for ti-sysc driver probe to mux it early enough for probe. Let's set up a common file for it to make things a bit easier to make l4 abe interconnect to probe with ti-sysc driver. Note that this is not needed for omap5 as we can just update mcpdm muxing in omap5-board-common.dtsi in later patches. Cc: devicetree@vger.kernel.org Cc: Peter Ujfalusi Signed-off-by: Tony Lindgren commit d59b60564cbfe77d85c2f51b29941d8ed14984d1 Author: Roger Quadros Date: Mon Apr 8 12:52:39 2019 +0300 bus: ti-sysc: Add generic enable/disable functions For non legacy cases, add generic sysc_enable_module() and sysc_disable_module() functions. Signed-off-by: Roger Quadros Signed-off-by: Tony Lindgren commit 11140cc40ddc3e7a2f2e3352e8a0587a93ba75df Author: Dave Gerlach Date: Tue Apr 2 11:57:43 2019 -0500 ARM: OMAP2+: sleep43xx: Run EMIF HW leveling on resume path When returning from DeepSleep mode on AM437x platforms the EMIF must run DDR hardware leveling, same as done during u-boot, to properly restore the EMIF PHY to it's operational state on platforms using DDR3. Call the ti-emif-sram-pm run_hw_leveling routine to perform this. This happens after all other EMIF values are restored so the exact same configuration used at boot is used at the end of EMIF resume as well. Signed-off-by: Dave Gerlach Signed-off-by: Tony Lindgren commit 6c110561eb2d4d1496961c13a92f96f29eea7c72 Author: Dave Gerlach Date: Tue Apr 2 11:57:42 2019 -0500 memory: ti-emif-sram: Add ti_emif_run_hw_leveling for DDR3 hardware leveling In certain situations, such as when returning from low power modes, the EMIF must re-run hardware leveling to properly restore DDR3 access. This is accomplished by introducing a new ti-emif-sram-pm call, ti_emif_run_hw_leveling, to check if DDR3 is in use and if so, trigger the full write and read leveling processes. Suggested-by: Brad Griffis Signed-off-by: Dave Gerlach Acked-by: Santosh Shilimkar Signed-off-by: Tony Lindgren commit 2fef32766861c6e171f436ab99c89198cf0ca6e1 Author: Binbin Wu Date: Mon Apr 8 18:49:26 2019 +0800 pinctrl: pinctrl-intel: move gpio suspend/resume to noirq phase In current driver, SET_LATE_SYSTEM_SLEEP_PM_OPS is used to install the callbacks for suspend/resume. GPIO pin may be used as the interrupt pin by some device. However, using SET_LATE_SYSTEM_SLEEP_PM_OPS() to install the callbacks, the resume callback is called after resume_device_irqs(). Unintended interrupts may arrive due to resuming device irqs first, but the GPIO controller is not properly restored. Normally, for a SMP system, there are multiple cores, so even when there are unintended interrupts, BSP gets the chance to initialize the GPIO chip soon. But when there is only 1 core is active (other cores are offlined or single core) during resume, it is more easily to observe the unintended interrupts. This patch renames the suspend/resume function by adding suffix "_noirq", and installs the callbacks using SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(). Signed-off-by: Binbin Wu Acked-by: Mika Westerberg Signed-off-by: Andy Shevchenko commit f823b8a75527dca0b93cf577bbabbe47fd79b2a8 Author: Takashi Iwai Date: Thu Mar 28 16:21:01 2019 +0100 ALSA: seq: Remove superfluous irqsave flags spin_lock_irqsave() is used unnecessarily in various places in sequencer core code although it's pretty obvious that the context is sleepable. Remove irqsave and use the plain spin_lock_irq() in such places for simplicity. Signed-off-by: Takashi Iwai commit 4b24b960b10b6a4e30beba3ce097fa867b4a085f Author: Takashi Iwai Date: Thu Mar 28 15:55:08 2019 +0100 ALSA: seq: Align temporary re-locking with irqsave version In a few places in sequencer core, we temporarily unlock / re-lock the pool spin lock while waiting for the allocation in the blocking mode. There spin_unlock_irq() / spin_lock_irq() pairs are called while initially spin_lock_irqsave() is used (and spin_lock_irqrestore() at the end of the function again). This is likely OK for now, but it's a bit confusing and error-prone. This patch replaces these temporary relocking lines with the irqsave variant to make the lock/unlock sequence more consistently. Signed-off-by: Takashi Iwai commit fd7ae83de11a597cbe15770382f101c784a79b1c Author: Takashi Iwai Date: Thu Mar 28 16:09:45 2019 +0100 ALSA: seq: Use kvmalloc() for cell pools Use kvmalloc() for allocating cell pools since the pool size can be relatively small that may be covered better by slab. Signed-off-by: Takashi Iwai commit b453c417609fa035c76e6a9c0c3dcf2cb42c1112 Author: Andrew F. Davis Date: Fri Mar 29 13:13:13 2019 -0500 ARM: dts: omap2420-n810: Use new CODEC reset pin name The correct DT property for specifying a GPIO used for reset is "reset-gpios", the driver now accepts this name, use it here. Signed-off-by: Andrew F. Davis Signed-off-by: Tony Lindgren commit 6cdbc07a5adc376104cb4d56eff2d4eb58bcfac7 Merge: bee58fe34675 884b429ae667 add0d37b4f1e f5ad3991493c 6c70e9cd5f3c 164a4daaeaec Author: Paul E. McKenney Date: Tue Apr 9 08:08:13 2019 -0700 Merge branches 'consolidate.2019.04.09a', 'doc.2019.03.26b', 'fixes.2019.03.26b', 'srcu.2019.03.26b', 'stall.2019.03.26b' and 'torture.2019.03.26b' into HEAD consolidate.2019.04.09a: Lingering RCU flavor consolidation cleanups. doc.2019.03.26b: Documentation updates. fixes.2019.03.26b: Miscellaneous fixes. srcu.2019.03.26b: SRCU updates. stall.2019.03.26b: RCU CPU stall warning updates. torture.2019.03.26b: Torture-test updates. commit bee58fe346750d53e3cf141554eea6164c8c748a Author: Paul E. McKenney Date: Wed Jan 9 14:52:05 2019 -0800 net/ipv4/netfilter: Update comment from call_rcu_bh() to call_rcu() The RCU flavors have been consolidated, so this commit replaces a comment's mention of call_rcu_bh() with call_rcu(). Signed-off-by: Paul E. McKenney Cc: Florian Westphal Cc: "David S. Miller" Cc: Alexey Kuznetsov Cc: Hideaki YOSHIFUJI Cc: Cc: Cc: Acked-by: Pablo Neira Ayuso commit 72aff4ecf1cb85a3c6e6b42ccbda0bc631b090b3 Author: Kabir Sahane Date: Tue Apr 9 08:05:17 2019 -0700 ARM: OMAP2+: pm33xx-core: Do not Turn OFF CEFUSE as PPA may be using it This area is used to store keys by HSPPA in case of AM438x SOC. Leave it active. Signed-off-by: Kabir Sahane Signed-off-by: Andrew F. Davis Signed-off-by: Tony Lindgren commit f8033678c6fe11a3e4cd31bca36b38e05c6ba9e5 Author: Andrew F. Davis Date: Tue Apr 9 08:05:16 2019 -0700 ARM: OMAP2+: Wakeupgen: AM43xx HS devices should save context like non-HS Unlike some previous generation devices, AM43xx HS IRQ and Wakegen context is handled by the ROM for us, and no secure service call is needed or supported. Non-GP AM43xx devices should take the same path as GP. Signed-off-by: Andrew F. Davis Signed-off-by: Tony Lindgren commit e74cf9186be870e4a78ddfd59b0c4b57ab549c0e Author: Andrew F. Davis Date: Fri Mar 29 12:53:34 2019 -0500 ARM: dts: am43xx-epos-evm: Add matrix keypad as wakeup source Mark matrix-keypad as a wakeup source. Signed-off-by: Andrew F. Davis Signed-off-by: Tony Lindgren commit 177425ef586a932b968d4adf6a258da61b0ae727 Author: Mike Erdahl Date: Fri Mar 29 12:53:33 2019 -0500 ARM: dts: am43xx-epos-evm: Keep DCDC3 regulator on in suspend to memory When going to suspend to ram mode (or rtc-only mode), the DDR regulator must be told to stay on, else this rail will go down when the PMIC_EN signal is deasserted. Signed-off-by: Mike Erdahl Signed-off-by: Andrew F. Davis Signed-off-by: Tony Lindgren commit d921e53a51076c4494c6435ab142d36b21687755 Author: Kabir Sahane Date: Fri Mar 29 12:53:32 2019 -0500 ARM: dts: am43xx-epos-evm: Keep DCDC5 and DCDC6 always on These regulator outputs are needed even in deep sleep modes to prevent low-voltage detection events. Make these always ON to avoid this. Signed-off-by: Kabir Sahane Signed-off-by: Andrew F. Davis Signed-off-by: Tony Lindgren commit b5acec09e259d9972b0e82e3a97ca019f0df29bb Author: Kishon Vijay Abraham I Date: Mon Mar 25 15:15:25 2019 +0530 ARM: dts: dra7: Add properties to enable PCIe x2 lane mode ti,syscon-lane-sel and ti,syscon-lane-conf properties specific to enable PCIe x2 lane mode are added here. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Sekhar Nori Signed-off-by: Tony Lindgren commit 78ee399f1632a00a92dcdb0ebba8cfe0081a3e5d Author: Dmitry Osipenko Date: Mon Mar 18 01:52:10 2019 +0300 ARM: tegra: Add firmware calls required for suspend-resume on Tegra30 In order to suspend-resume CPU with Trusted Foundations firmware being present on Tegra30, the LP1/LP2 boot vectors and CPU caches need to be set up using the firmware calls and then suspend code shall avoid re-disabling parts that were disabled by the firmware. Tested-by: Robert Yang Tested-by: Michał Mirosław Signed-off-by: Dmitry Osipenko Signed-off-by: Thierry Reding commit dae84be59d667089a7ad3d27a0662e6b71f13116 Author: Dmitry Osipenko Date: Mon Mar 18 01:52:09 2019 +0300 ARM: tegra: Always boot CPU in ARM-mode CPU always jumps into reset handler in ARM-mode from the Trusted Foundations firmware, hence let's make CPU to always jump into kernel in ARM-mode regardless of the firmware presence. This is required to make Thumb-2 kernel working with the Trusted Foundations firmware on Tegra30. Tested-by: Robert Yang Tested-by: Michał Mirosław Signed-off-by: Dmitry Osipenko Signed-off-by: Thierry Reding commit 2af6597ac3fab8a3796786bb73f8bd14a9f2d376 Author: Dmitry Osipenko Date: Mon Mar 18 01:52:08 2019 +0300 ARM: tegra: Don't apply CPU erratas in insecure mode CPU isn't allowed to touch secure registers while running under secure monitor. Hence skip applying of CPU erratas in the reset handler if Trusted Foundations firmware presents. Partially based on work done by Michał Mirosław [1]. [1] https://www.spinics.net/lists/arm-kernel/msg594768.html Tested-by: Robert Yang Tested-by: Michał Mirosław Signed-off-by: Michał Mirosław Signed-off-by: Dmitry Osipenko Signed-off-by: Thierry Reding commit 6ad27b8350401a3c79899b431097afc361b46374 Author: Dmitry Osipenko Date: Mon Mar 18 01:52:07 2019 +0300 ARM: tegra: Set up L2 cache using Trusted Foundations firmware On Tegra30 L2 cache should be initialized using firmware call if CPU is running in insecure mode. Set up the required outer-cache write_sec() callback early during boot using the firmware API, it is always a NO-OP on T114+ and is NO-OP on T20/30 if Trusted Foundations firmware node isn't present in device-tree. Tested-by: Robert Yang Tested-by: Michał Mirosław Signed-off-by: Dmitry Osipenko Signed-off-by: Thierry Reding commit ebc7c1a26578683a4d12ab3434a92c225a97e240 Author: Dmitry Osipenko Date: Mon Mar 18 01:52:06 2019 +0300 ARM: trusted_foundations: Provide information about whether firmware is registered Add a helper that provides information about whether Trusted Foundations firmware operations have been registered. Tested-by: Robert Yang Tested-by: Michał Mirosław Signed-off-by: Dmitry Osipenko Signed-off-by: Thierry Reding commit 96446e21d6e9303cce0374af3f4012556dc501ce Author: Dmitry Osipenko Date: Mon Mar 18 01:52:05 2019 +0300 ARM: trusted_foundations: Make prepare_idle call to take mode argument The Trusted Foundations firmware call varies depending on the required suspend-mode. Make the firmware API to take the mode argument in order to expose all of the modes to firmware user. Tested-by: Robert Yang Tested-by: Michał Mirosław Signed-off-by: Dmitry Osipenko Signed-off-by: Thierry Reding commit ebca2a6ee161502828de017b28a8f1d7422073f0 Author: Dmitry Osipenko Date: Mon Mar 18 01:52:04 2019 +0300 ARM: trusted_foundations: Support L2 cache maintenance Implement L2 cache initialization firmware callback that should be invoked early during boot in order to set up the required outer cache driver's callbacks and add the callback required for L2X0 maintenance. Partially based on work done by Michał Mirosław [1]. [1] https://www.spinics.net/lists/arm-kernel/msg594765.html Tested-by: Robert Yang Tested-by: Michał Mirosław Signed-off-by: Michał Mirosław Signed-off-by: Dmitry Osipenko Signed-off-by: Thierry Reding commit 0d413829bd20d5563c2c3287479a7348810cb13f Author: Minwoo Im Date: Sun Apr 7 17:19:38 2019 +0900 block: null: Add documentation for "zone_nr_conv" param zone_nr_conv module parameter was introduced by a commit ea2c18e1("null_blk: Add conventional zone configuration for zoned support"). This patch describes "zone_nr_conv" module parameter to the document. Reviewed-by: Chaitanya Kulkarni Signed-off-by: Minwoo Im Signed-off-by: Jens Axboe commit a1d78317f84bf5b5ed3775b911a7dea344a884a9 Author: Peng Ma Date: Mon Mar 11 15:20:14 2019 +0800 ahci: qoriq: add ls1028a platforms support Ls1028a is a new introduced soc which supports ATA3.0 Signed-off-by: Peng Ma Signed-off-by: Jens Axboe commit 2be8481a8a444bb36d1cddc47f05f00ac1cf703e Author: Peng Ma Date: Tue Mar 12 09:50:19 2019 +0800 ahci: qoriq: add lx2160 platforms support Lx2160a is a new introduced soc which supports ATA3.0 Signed-off-by: Peng Ma Signed-off-by: Jens Axboe commit a788b2ed81abeb949325fd50d7527f45203c1b21 Author: Masahiro Yamada Date: Sun Apr 7 19:43:51 2019 +0900 kbuild: check arch/$(SRCARCH)/include/generated before out-of-tree build After cross-compiling the kernel, "make mrproper" should be executed with the proper ARCH= option. Otherwise, stale objects will remain under arch/$(SRCARCH)/. One bad scenario is like this: $ make ARCH=arm defconfig all # cross-compile the kernel for arm $ make mrproper # mrproper for host-arch (i.e. x86) $ make ARCH=arm O=build_dir defconfig all If you miss ARCH= for mrproper and cross-compile the kernel with O= and ARCH= options, Kbuild will happily start to build, but may fail due to stale objects in the srctree. If $(srctree)/arch/$(SRCARCH)/include/generated/ exists, let's stop the out-of-tree build. To detect this, mrproper should clean only arch/$(SRCARCH)/include/generated/. Signed-off-by: Masahiro Yamada commit 24512795df0901f79a670f8285c450ae912c009d Author: Masahiro Yamada Date: Sun Apr 7 19:03:18 2019 +0900 kbuild: remove unneeded dependency for include/config/kernel.release This is unneeded since commit 43fee2b23895 ("kbuild: do not redirect the first prerequisite for filechk"). Signed-off-by: Masahiro Yamada commit b63e37bc9ec4b47a1ffc06bdb631594161758f0f Author: Petr Vorel Date: Mon Apr 8 01:02:39 2019 +0200 kconfig: Make nconf-cfg.sh executable Although it's not required for the build *conf-cfg.sh scripts to be executable (they're run by CONFIG_SHELL), let's be consistent with other scripts. Signed-off-by: Petr Vorel Signed-off-by: Masahiro Yamada commit ab7efbe24b283b38f323f906502ef6ea09156ebc Author: Steve Wise Date: Thu Apr 4 16:56:58 2019 -0300 RDMA/cxgb4: Use ib_device_set_netdev() cxgb4 has a simple non-dynamic use of get_netdev, so conversion is straightforward. Signed-off-by: Steve Wise Signed-off-by: Jason Gunthorpe commit 4b38da75e089a149d224fde8f3be1f8be7c0d32e Author: Jason Gunthorpe Date: Thu Apr 4 16:56:57 2019 -0300 RDMA/drivers: Convert easy drivers to use ib_device_set_netdev() Drivers that never change their ndev dynamically do not need to use the get_netdev callback. Signed-off-by: Jason Gunthorpe Acked-by: Selvin Xavier Acked-by: Michal Kalderon Acked-by: Adit Ranadive commit 98a3308ea864afa1e42ae546ddbe5e4641f7716c Author: Marek Szyprowski Date: Tue Mar 26 15:03:59 2019 +0100 ARM: exynos: Fix infinite loops on CPU powerup failure Add timeout to infinite loops during the CPU powerup procedures. It is better to report an error instead of busylooping for infinite time in case of failure. Signed-off-by: Marek Szyprowski Signed-off-by: Krzysztof Kozlowski commit d75f773c86a2b8b7278e2c33343b46a4024bc002 Author: Sakari Ailus Date: Mon Mar 25 21:32:28 2019 +0200 treewide: Switch printk users from %pf and %pF to %ps and %pS, respectively %pF and %pf are functionally equivalent to %pS and %ps conversion specifiers. The former are deprecated, therefore switch the current users to use the preferred variant. The changes have been produced by the following command: git grep -l '%p[fF]' | grep -v '^\(tools\|Documentation\)/' | \ while read i; do perl -i -pe 's/%pf/%ps/g; s/%pF/%pS/g;' $i; done And verifying the result. Link: http://lkml.kernel.org/r/20190325193229.23390-1-sakari.ailus@linux.intel.com Cc: Andy Shevchenko Cc: linux-arm-kernel@lists.infradead.org Cc: sparclinux@vger.kernel.org Cc: linux-um@lists.infradead.org Cc: xen-devel@lists.xenproject.org Cc: linux-acpi@vger.kernel.org Cc: linux-pm@vger.kernel.org Cc: drbd-dev@lists.linbit.com Cc: linux-block@vger.kernel.org Cc: linux-mmc@vger.kernel.org Cc: linux-nvdimm@lists.01.org Cc: linux-pci@vger.kernel.org Cc: linux-scsi@vger.kernel.org Cc: linux-btrfs@vger.kernel.org Cc: linux-f2fs-devel@lists.sourceforge.net Cc: linux-mm@kvack.org Cc: ceph-devel@vger.kernel.org Cc: netdev@vger.kernel.org Signed-off-by: Sakari Ailus Acked-by: David Sterba (for btrfs) Acked-by: Mike Rapoport (for mm/memblock.c) Acked-by: Bjorn Helgaas (for drivers/pci) Acked-by: Rafael J. Wysocki Signed-off-by: Petr Mladek commit 8fe62f1286311762ecc0066d3a7c7ea5042a5c32 Author: Ondrej Jirman Date: Tue Apr 9 02:24:41 2019 +0200 arm64: dts: allwinner: h6: Add Orange Pi 3 DTS Orange Pi 3 is a H6 based SBC made by Xulong, released in January 2019. It has the following features: - Allwinner H6 quad-core 64-bit ARM Cortex-A53 - GPU Mali-T720 - 1GB or 2GB LPDDR3 RAM - AXP805 PMIC - AP6256 Wifi/BT 5.0 - USB 2.0 host port (A) - USB 2.0 micro usb, OTG - USB 3.0 Host + 4 port USB hub (GL3510) - Gigabit Ethernet (Realtek RTL8211E phy) - HDMI 2.0 port - soldered eMMC (optional) - 3x LED (one is on the bottom) - microphone - audio jack - PCIe Add basic support for the board. Signed-off-by: Ondrej Jirman Signed-off-by: Maxime Ripard commit 827a108e354db633698f0b4a10c1ffd2b1f8d1d0 Author: Jean-Philippe Brucker Date: Mon Apr 8 18:17:19 2019 +0100 arm64: Save and restore OSDLR_EL1 across suspend/resume When the CPU comes out of suspend, the firmware may have modified the OS Double Lock Register. Save it in an unused slot of cpu_suspend_ctx, and restore it on resume. Cc: Signed-off-by: Jean-Philippe Brucker Signed-off-by: Will Deacon commit 6fda41bf12615ee7c3ddac88155099b1a8cf8d00 Author: Jean-Philippe Brucker Date: Mon Apr 8 18:17:18 2019 +0100 arm64: Clear OSDLR_EL1 on CPU boot Some firmwares may reboot CPUs with OS Double Lock set. Make sure that it is unlocked, in order to use debug exceptions. Cc: Signed-off-by: Jean-Philippe Brucker Signed-off-by: Will Deacon commit 80bb8d983224337b713a93babfffedb376031034 Author: Qiang Yu Date: Tue Apr 9 08:36:17 2019 +0800 drm/lima: include used header file explicitly To prevent build fail on some platform which does not have it in the include file chain. Reviewed-by: Neil Armstrong Suggested-by: Randy Dunlap Fixes: a1d2a6339961 ("drm/lima: driver for ARM Mali4xx GPUs") Signed-off-by: Qiang Yu Link: https://patchwork.freedesktop.org/patch/msgid/20190409003617.4470-2-yuq825@gmail.com commit 2b5440bc17564b411949c4c8c57f0810acd03a72 Author: Qiang Yu Date: Tue Apr 9 08:36:16 2019 +0800 drm/lima: add missing Kconfig dependency Current implementation does not support MMU-less plarforms. Suggested-by: Randy Dunlap Reviewed-by: Neil Armstrong Fixes: a1d2a6339961 ("drm/lima: driver for ARM Mali4xx GPUs") Signed-off-by: Qiang Yu Link: https://patchwork.freedesktop.org/patch/msgid/20190409003617.4470-1-yuq825@gmail.com commit df55531b8b0eea9d2473f5697ae4f38d0df6bec7 Author: Takashi Iwai Date: Tue Apr 9 12:25:32 2019 +0200 ALSA: timer: Revert active callback sync check at close This is essentially a revert of the commit a7588c896b05 ("ALSA: timer: Check ack_list emptiness instead of bit flag"). The intended change by the commit turns out to be insufficient, as snd_timer_close*() always calls snd_timer_stop() that deletes the ack_list beforehand. In theory, we can change the behavior of snd_timer_stop() to sync the pending ack_list, but this will become a deadlock for the callback like sequencer that calls again snd_timer_stop() from itself. So, reverting the change is a more straightforward solution. Fixes: a7588c896b05 ("ALSA: timer: Check ack_list emptiness instead of bit flag") Reported-by: syzbot+58813d77154713f4de15@syzkaller.appspotmail.com Signed-off-by: Takashi Iwai commit 475ba3fc194b6429eebcca0e1cf9917de6fa173e Author: Will Deacon Date: Mon Apr 8 11:23:48 2019 +0100 arm64: mm: Consolidate early page table allocation The logic for early allocation of page tables is duplicated between pgd_kernel_pgtable_alloc() and pgd_pgtable_alloc(). Drop the duplication by calling one from the other and renaming pgd_kernel_pgtable_alloc() accordingly. Signed-off-by: Will Deacon commit 54c8d9119ec85de48fd0707946a5e57df9ad7acf Author: Yu Zhao Date: Mon Mar 11 18:57:49 2019 -0600 arm64: mm: enable per pmd page table lock Switch from per mm_struct to per pmd page table lock by enabling ARCH_ENABLE_SPLIT_PMD_PTLOCK. This provides better granularity for large system. I'm not sure if there is contention on mm->page_table_lock. Given the option comes at no cost (apart from initializing more spin locks), why not enable it now. We only do so when pmd is not folded, so we don't mistakenly call pgtable_pmd_page_ctor() on pud or p4d in pgd_pgtable_alloc(). Signed-off-by: Yu Zhao Signed-off-by: Will Deacon commit 14b94d07572619af896c6d2d83b1196c4041fe19 Author: Anshuman Khandual Date: Tue Mar 12 18:55:45 2019 +0530 KVM: ARM: Remove pgtable page standard functions from stage-2 page tables ARM64 standard pgtable functions are going to use pgtable_page_[ctor|dtor] or pgtable_pmd_page_[ctor|dtor] constructs. At present KVM guest stage-2 PUD|PMD|PTE level page tabe pages are allocated with __get_free_page() via mmu_memory_cache_alloc() but released with standard pud|pmd_free() or pte_free_kernel(). These will fail once they start calling into pgtable_ [pmd]_page_dtor() for pages which never originally went through respective constructor functions. Hence convert all stage-2 page table page release functions to call buddy directly while freeing pages. Reviewed-by: Suzuki K Poulose Acked-by: Yu Zhao Acked-by: Marc Zyngier Signed-off-by: Anshuman Khandual Signed-off-by: Will Deacon commit 369aaab845a65b90ceac2801edd577fae442476c Author: Yu Zhao Date: Mon Mar 11 18:57:47 2019 -0600 arm64: mm: don't call page table ctors for init_mm init_mm doesn't require page table lock to be initialized at any level. Add a separate page table allocator for it, and the new one skips page table ctors. The ctors allocate memory when ALLOC_SPLIT_PTLOCKS is set. Not calling them avoids memory leak in case we call pte_free_kernel() on init_mm. Acked-by: Mark Rutland Signed-off-by: Yu Zhao Signed-off-by: Will Deacon commit 90292aca9854a2cbd904127337d6fea30f46290c Author: Yu Zhao Date: Mon Mar 11 18:57:46 2019 -0600 arm64: mm: use appropriate ctors for page tables For pte page, use pgtable_page_ctor(); for pmd page, use pgtable_pmd_page_ctor(); and for the rest (pud, p4d and pgd), don't use any. For now, we don't select ARCH_ENABLE_SPLIT_PMD_PTLOCK and pgtable_pmd_page_ctor() is a nop. When we do in patch 3, we make sure pmd is not folded so we won't mistakenly call pgtable_pmd_page_ctor() on pud or p4d. Acked-by: Mark Rutland Signed-off-by: Yu Zhao Signed-off-by: Will Deacon commit ab6211c90052435126ad1319e9223b68e154b9f0 Author: Will Deacon Date: Tue Feb 26 15:39:47 2019 +0000 arm64: debug: Clean up brk_handler() brk_handler() now looks pretty strange and can be refactored to drop its funny 'handler_found' local variable altogether. Reviewed-by: Mark Rutland Signed-off-by: Will Deacon commit 453b7740ebfda2d84be7fb583c54f0c91c592869 Author: Will Deacon Date: Tue Feb 26 15:06:42 2019 +0000 arm64: probes: Move magic BRK values into brk-imm.h kprobes and uprobes reserve some BRK immediates for installing their probes. Define these along with the other reservations in brk-imm.h and rename the ESR definitions to be consistent with the others that we already have. Reviewed-by: Mark Rutland Signed-off-by: Will Deacon commit fb610f2a2006322bebeb30408fefce6a01df09ea Author: Will Deacon Date: Tue Feb 26 15:37:09 2019 +0000 arm64: debug: Remove redundant user_mode(regs) checks from debug handlers Now that the debug hook dispatching code takes the triggering exception level into account, there's no need for the hooks themselves to poke around with user_mode(regs). Reviewed-by: Mark Rutland Signed-off-by: Will Deacon commit a22d570aee77ae626e4d3532478ae8058a24bdb3 Author: Will Deacon Date: Tue Feb 26 14:35:00 2019 +0000 arm64: kprobes: Avoid calling kprobes debug handlers explicitly Kprobes bypasses our debug hook registration code so that it doesn't get tangled up with recursive debug exceptions from things like lockdep: http://lists.infradead.org/pipermail/linux-arm-kernel/2015-February/324385.html However, since then, (a) the hook list has become RCU protected and (b) the kprobes hooks were found not to filter out exceptions from userspace correctly. On top of that, the step handler is invoked directly from single_step_handler(), which *does* use the debug hook list, so it's clearly not the end of the world. For now, have kprobes use the debug hook registration API like everybody else. We can revisit this in the future if this is found to limit coverage significantly. Reviewed-by: Mark Rutland Signed-off-by: Will Deacon commit 26a04d84bc5311d7785b229b353f327e866ab61a Author: Will Deacon Date: Tue Feb 26 12:52:47 2019 +0000 arm64: debug: Separate debug hooks based on target exception level Mixing kernel and user debug hooks together is highly error-prone as it relies on all of the hooks to figure out whether the exception came from kernel or user, and then to act accordingly. Make our debug hook code a little more robust by maintaining separate hook lists for user and kernel, with separate registration functions to force callers to be explicit about the exception levels that they care about. Reviewed-by: Mark Rutland Signed-off-by: Will Deacon commit cb764a69fa41179fb222b53b1a33a9d7373f9249 Author: Will Deacon Date: Mon Feb 25 13:22:17 2019 +0000 arm64: debug: Remove meaningless comment The comment next to the definition of our 'break_hook' list head is at best wrong but mainly just meaningless. Rip it out. Reviewed-by: Mark Rutland Signed-off-by: Will Deacon commit 5a9132add862f446d5f0d7fa7468887108b5898a Author: Will Deacon Date: Mon Feb 25 12:42:26 2019 +0000 arm64: debug: Rename addr parameter for non-watchpoint exception hooks Since the 'addr' parameter contains an UNKNOWN value for non-watchpoint debug exceptions, rename it to 'unused' for those hooks so we don't get tempted to use it in the future. Reviewed-by: Mark Rutland Signed-off-by: Will Deacon commit 52c6d145da15a9a9cea14678be307c127ccc6ef5 Author: Will Deacon Date: Mon Feb 25 12:06:43 2019 +0000 arm64: debug: Remove unused return value from do_debug_exception() do_debug_exception() goes out of its way to return a value that isn't ever used, so just make the thing void. Reviewed-by: Mark Rutland Signed-off-by: Will Deacon commit 0b237cb2fc7b10b2c4e92477760fa7442847c804 Author: Yangtao Li Date: Fri Mar 15 23:48:41 2019 -0400 PM / core: fix kerneldoc comment for device_pm_wait_for_dev() Rearrange comment to make the comment style consistent, the previous function parameters are described first. Signed-off-by: Yangtao Li Acked-by: Pavel Machek Signed-off-by: Rafael J. Wysocki commit c4a586fdd440931c2773a9da42c1fc564068f128 Author: Yangtao Li Date: Fri Mar 15 23:37:51 2019 -0400 PM / core: fix kerneldoc comment for dpm_watchdog_handler() This brings the kernel doc in line with the function signature. Signed-off-by: Yangtao Li Acked-by: Pavel Machek Signed-off-by: Rafael J. Wysocki commit e2092740b72384e95b9c8a418536b35d628a1642 Author: Torsten Duwe Date: Fri Feb 8 16:10:14 2019 +0100 kasan: Makefile: Replace -pg with CC_FLAGS_FTRACE In preparation for arm64 supporting ftrace built on other compiler options, let's have Makefiles remove the $(CC_FLAGS_FTRACE) flags, whatever these may be, rather than assuming '-pg'. There should be no functional change as a result of this patch. Reviewed-by: Mark Rutland Acked-by: Andrey Ryabinin Signed-off-by: Torsten Duwe Signed-off-by: Will Deacon commit e1a7eafb7350ff118e7538aca76b3f79e9280a8f Author: Torsten Duwe Date: Fri Feb 8 16:10:11 2019 +0100 efi/arm/arm64: Makefile: Replace -pg with CC_FLAGS_FTRACE In preparation for arm64 supporting ftrace built on other compiler options, let's have Makefiles remove the $(CC_FLAGS_FTRACE) flags, whatever these maybe, rather than assuming '-pg'. While at it, fix arm32 as well. There should be no functional change as a result of this patch. Reviewed-by: Mark Rutland Acked-by: Ard Biesheuvel Signed-off-by: Torsten Duwe Signed-off-by: Will Deacon commit edf072d36dbfdf74465b66988f30084b6c996fbf Author: Torsten Duwe Date: Fri Feb 8 16:10:07 2019 +0100 arm64: Makefile: Replace -pg with CC_FLAGS_FTRACE In preparation for arm64 supporting ftrace built on other compiler options, let's have the arm64 Makefiles remove the $(CC_FLAGS_FTRACE) flags, whatever these may be, rather than assuming '-pg'. There should be no functional change as a result of this patch. Reviewed-by: Mark Rutland Signed-off-by: Torsten Duwe Signed-off-by: Will Deacon commit fcccc5c838c1999785a5aeb9e3bdcd00957f3e15 Author: Kyle Lin Date: Tue Apr 9 16:43:04 2019 +0800 cpufreq: stats: Use lock by stat to replace global spin lock Stats is updated by each policy, using the lock by stat can reduce the contention. Signed-off-by: Kyle Lin Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki commit 3b7c1237a72a970daca99a6dc30f980f8bbaa34c Author: Neil Armstrong Date: Mon Mar 25 15:18:24 2019 +0100 drm/meson: Add G12A support for the DW-HDMI Glue The Amlogic G12A embeds the same Synopsys DW-HDMI Controller, but with : - a "backport" of the HDR signaling registers from more recent DW-HDMI controllers, this will need a tweak since it's not normally present on this version of the DW-HDMI controller - A direct mapping of TOP and DW-HDMI registers instead of an internal bus accessed using read/write registers - Support for RX-SENSE, but not yet implemented - Support for HDMI 2.1 Dynamic HDR, but not yet implemented - Different registers mapping for the HDMI PHY setup This patchs adds support for these changes while providing exact same support as the previous GXBB, GXL & GXM SoCs. Signed-off-by: Neil Armstrong Tested-by: Jerome Brunet Reviewed-by: Jerome Brunet Link: https://patchwork.freedesktop.org/patch/msgid/20190325141824.21259-12-narmstrong@baylibre.com commit 4deb190aa3551dfb2b7508960dc217702cb7278d Author: Neil Armstrong Date: Mon Mar 25 15:18:23 2019 +0100 drm/meson: Add G12A compatible Finally add the Amlogic G12A SoC compatible for the VPU driver. Signed-off-by: Neil Armstrong Tested-by: Jerome Brunet Reviewed-by: Jerome Brunet Link: https://patchwork.freedesktop.org/patch/msgid/20190325141824.21259-11-narmstrong@baylibre.com commit 202b9808f8edc8508f34f99a96c6cbe88042aff1 Author: Neil Armstrong Date: Mon Mar 25 15:18:22 2019 +0100 drm/meson: Add G12A Video Clock setup While switching to the Common Clock Framework is still Work In Progress, this patch adds the corresponding G12A HDMI PLL setup to be on-par with the other SoCs support. The G12A has only a single tweak about the high frequency setup, where the HDMI PLL needs a specific setup to handle correctly the 5.94GHz DCO frequency. Apart that, it handls ecorrectly all the other HDMI frequencies and can achieve even better DMT clock frequency precision with the larger fractional dividier width. Signed-off-by: Neil Armstrong Tested-by: Jerome Brunet Reviewed-by: Jerome Brunet Link: https://patchwork.freedesktop.org/patch/msgid/20190325141824.21259-10-narmstrong@baylibre.com commit 64d598a106c3d6c06071fd66780d3d7d7d15251a Author: Neil Armstrong Date: Mon Mar 25 15:18:21 2019 +0100 drm/meson: Add G12A support for CVBS Encoder The Meson G12A SoCs uses the exact same CVBS encoder except a simple CVBS DAC register offset and settings delta. Signed-off-by: Neil Armstrong [narmstrong: fixed subject typo] Tested-by: Jerome Brunet Reviewed-by: Jerome Brunet Link: https://patchwork.freedesktop.org/patch/msgid/20190325141824.21259-9-narmstrong@baylibre.com commit 68679d41a3d6d7e55ed49b4e5688d1089de7c5a7 Author: Neil Armstrong Date: Mon Mar 25 15:18:20 2019 +0100 drm/meson: Add G12A support for plane handling in CRTC driver This patch adds support for the new OSD+VD Plane blending module in the CRTC code by adding the G12A code to manage the blending module and setting the right OSD1 & VD1 plane registers. Signed-off-by: Neil Armstrong Tested-by: Jerome Brunet Reviewed-by: Jerome Brunet Link: https://patchwork.freedesktop.org/patch/msgid/20190325141824.21259-8-narmstrong@baylibre.com commit 11c2d4c751e5b339f8a3c6b9f19120bb331af0ef Author: Neil Armstrong Date: Mon Mar 25 15:18:19 2019 +0100 drm/meson: Add G12A Support for the Overlay video plane Amlogic G12A SoC supports the same set of Video Planes, but now are handled by the new OSD plane blender module. This patch uses the same VD1 plane for G12A, using the exact same scaler and VD1 setup registers, except using the new blender register to disable the plane. Signed-off-by: Neil Armstrong [narmstrong: fix typo in commit log] Tested-by: Jerome Brunet Reviewed-by: Jerome Brunet Link: https://patchwork.freedesktop.org/patch/msgid/20190325141824.21259-7-narmstrong@baylibre.com commit 6c6a828f86d67c157c7a2b26d46ebca0ed0d9c47 Author: Bob Moore Date: Mon Apr 8 13:42:30 2019 -0700 ACPICA: Update version to 20190405 ACPICA commit 0c1495275a35071b957ab59549761c6cd3f413b7 Version 20190405. Link: https://github.com/acpica/acpica/commit/0c149527 Signed-off-by: Bob Moore Signed-off-by: Erik Schmauss Signed-off-by: Rafael J. Wysocki commit df9271d69f4016c1169699de9a826745688103bd Author: Erik Schmauss Date: Mon Apr 8 13:42:29 2019 -0700 ACPICA: Namespace: add check to avoid null pointer dereference ACPICA commit 7586a625f9c34c3169efd88470192bf63119e31a Some ACPICA userspace tools call acpi_ut_subsystem_shutdown() during cleanup and dereference a null pointer when cleaning up the namespace. Link: https://github.com/acpica/acpica/commit/7586a625 Signed-off-by: Erik Schmauss Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki commit 985d5124bfb0773edb8353237e5e8ddb614c3442 Author: Bob Moore Date: Mon Apr 8 13:42:28 2019 -0700 ACPICA: Update version to 20190329 ACPICA commit 802ec363be67580f52251219ef90613008495392 Version 20190329. Link: https://github.com/acpica/acpica/commit/802ec363 Signed-off-by: Bob Moore Signed-off-by: Erik Schmauss Signed-off-by: Rafael J. Wysocki commit f49c90e8958ef2745224e36c3158ead27289d645 Author: Erik Schmauss Date: Mon Apr 8 13:42:27 2019 -0700 ACPICA: utilities: fix spelling of PCC to platform_comm_channel ACPICA commit 5e5c349e73982aea5d9f74416c0b2eea1b0767a1 Link: https://github.com/acpica/acpica/commit/5e5c349e Signed-off-by: Erik Schmauss Signed-off-by: Bob Moore Signed-off-by: Rafael J. Wysocki commit 490f50c109d1178aae4124cd9138b231d030e554 Author: Neil Armstrong Date: Mon Mar 25 15:18:18 2019 +0100 drm/meson: Add G12A support for OSD1 Plane Amlogic G12A SoC supports now up to 3 OSD planes (1 more than the previous SoCs) and a brand new OSD plane blender module. This patch uses the same OSD1 plane for G12A, using the exact same scaler and OSD1 setup registers, except using the new blender register to disable the plane. Signed-off-by: Neil Armstrong [narmstrong: fixed typo in commit log] Tested-by: Jerome Brunet Reviewed-by: Jerome Brunet Link: https://patchwork.freedesktop.org/patch/msgid/20190325141824.21259-6-narmstrong@baylibre.com commit 728883948b0d3c01492c1f83d505645aa2ca09d0 Author: Neil Armstrong Date: Mon Mar 25 15:18:17 2019 +0100 drm/meson: Add G12A Support for VIU setup Amlogic G12A SoC needs a different VIU setup code, handle it. Signed-off-by: Neil Armstrong Tested-by: Jerome Brunet Reviewed-by: Jerome Brunet Link: https://patchwork.freedesktop.org/patch/msgid/20190325141824.21259-5-narmstrong@baylibre.com commit e4d1ae1fa3603614ed9799b4407a8d09a796fb0b Author: Neil Armstrong Date: Mon Mar 25 15:18:16 2019 +0100 drm/meson: Add G12A Support for VPP setup Amlogic G12A needs a different VPP setup code, handle it here. Signed-off-by: Neil Armstrong Tested-by: Jerome Brunet Reviewed-by: Jerome Brunet Link: https://patchwork.freedesktop.org/patch/msgid/20190325141824.21259-4-narmstrong@baylibre.com commit 3278675567dfb901d831d46849c386a4f932905e Author: Bob Moore Date: Mon Apr 8 13:42:25 2019 -0700 ACPICA: Rename nameseg length macro/define for clarity ACPICA commit 24870bd9e73d71e2a1ff0a1e94519f8f8409e57d ACPI_NAME_SIZE changed to ACPI_NAMESEG_SIZE This clarifies that this is the length of an individual nameseg, not the length of a generic namestring/namepath. Improves understanding of the code. Link: https://github.com/acpica/acpica/commit/24870bd9 Signed-off-by: Bob Moore Signed-off-by: Erik Schmauss Signed-off-by: Rafael J. Wysocki commit b93a66faeea9ddf3dd00c51af0f13a65d3c18cd1 Author: Neil Armstrong Date: Mon Mar 25 15:18:15 2019 +0100 drm/meson: Add registers for G12A SoC This patch adds the new VPU registers added since the Amlogic GXM SoCs. Signed-off-by: Neil Armstrong Tested-by: Jerome Brunet Reviewed-by: Jerome Brunet Link: https://patchwork.freedesktop.org/patch/msgid/20190325141824.21259-3-narmstrong@baylibre.com commit 61af6e22ec265849133bdfc4058bf0f1b28c5c24 Author: Neil Armstrong Date: Mon Mar 25 15:18:14 2019 +0100 drm/meson: Switch PLL to 5.94GHz base for 297Mhz pixel clock On Amlogic G12A SoC, the 2,97GHz PLL frequency is not stable enough to provide a correct 297MHz pixel clock, so switch the PLL base frequency with a /2 OD when the 297MHz pixel clock is requested. This solves the issue on G12A and also works fine on GXBB, GXL & GXM. Signed-off-by: Neil Armstrong Tested-by: Jerome Brunet Reviewed-by: Jerome Brunet Link: https://patchwork.freedesktop.org/patch/msgid/20190325141824.21259-2-narmstrong@baylibre.com commit 6c28dca669c6ee3377a9e52ed9432c0158d43ed6 Author: Neil Armstrong Date: Wed Mar 13 15:10:29 2019 +0100 dt-bindings: display: amlogic, meson-dw-hdmi: Add G12A compatible and ports The Amlogic G12A SoC has a slighly modified DW-HDMI Glue with support for HDMI 2.1 and a different DW-HDMI register access. Signed-off-by: Neil Armstrong Reviewed-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/20190313141030.5958-3-narmstrong@baylibre.com commit 71bfbaa47b6ddf267ee383350f96cf3d3401bdc5 Author: Neil Armstrong Date: Wed Mar 13 15:10:28 2019 +0100 dt-bindings: display: amlogic, meson-vpu: Add G12A compatible and ports The Amlogic G12A VPU is very similar to the Amlogic GXM VPU but with : - an enhanced plane blender, with up to 3 OSD planes - support for AFBC 1.2 decoder (for Bifrost GPU) - support display mode up to 4k60@75Hz Signed-off-by: Neil Armstrong Reviewed-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/20190313141030.5958-2-narmstrong@baylibre.com commit 174221e8491588aa9d44ebfa3242bea11eacc64f Author: Chris Wilson Date: Mon Apr 8 10:17:14 2019 +0100 drm/i915/guc: Replace preempt_client lookup with engine->preempt_context Circumvent the dance we currently perform to find the preempt_client and lookup its HW context for this engine, as we know we have already pinned the preempt_context on the engine. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190408091728.20207-15-chris@chris-wilson.co.uk commit ebc41018d84bc526e9f873a80228aba24c9f9189 Author: Neil Armstrong Date: Mon Apr 1 10:09:49 2019 +0200 dt-bindings: gpu: add bindings for the ARM Mali Bifrost GPU Add the bindings for the Bifrost family of ARM Mali GPUs. The Bifrost GPU architecture is similar to the Midgard family, but with a different Shader Core & Execution Engine structures. Bindings are based on the Midgard family bindings, but the inner architectural changes makes it a separate family needing separate bindings. The Bifrost GPUs are present in a number of recent SoCs, like the Amlogic G12A Family, and many other vendors. The Amlogic vendor specific compatible is added to handle the specific IP integration differences and dependencies. Signed-off-by: Neil Armstrong Reviewed-by: Rob Herring [narmstrong: fixed small typo in compatible description] Link: https://patchwork.freedesktop.org/patch/msgid/20190401080949.14550-1-narmstrong@baylibre.com commit 493ab13a5d382f1a06c4cb791f277acec55b9250 Author: Ondrej Jirman Date: Tue Apr 9 02:24:40 2019 +0200 dt-bindings: sunxi: Add compatible for OrangePi 3 board Add new Xunlong Orange Pi 3 board compatible string to the bindings documentation. Signed-off-by: Ondrej Jirman Signed-off-by: Maxime Ripard commit 5599fb69355d7a558f32206dac7539e945a1f604 Author: Bob Moore Date: Mon Apr 8 13:42:24 2019 -0700 ACPICA: Rename nameseg compare macro for clarity ACPICA commit 92ec0935f27e217dff0b176fca02c2ec3d782bb5 ACPI_COMPARE_NAME changed to ACPI_COMPARE_NAMESEG This clarifies (1) this is a compare on 4-byte namesegs, not a generic compare. Improves understanding of the code. Link: https://github.com/acpica/acpica/commit/92ec0935 Signed-off-by: Bob Moore Signed-off-by: Erik Schmauss Signed-off-by: Rafael J. Wysocki commit a3ce7a8e0dd9baa5932c480b789ab54afa3ab116 Author: Bob Moore Date: Mon Apr 8 13:42:23 2019 -0700 ACPICA: Rename nameseg copy macro for clarity ACPICA commit 19c18d3157945d1b8b64a826f0a8e848b7dbb127 ACPI_MOVE_NAME changed to ACPI_COPY_NAMESEG This clarifies (1) this is a copy operation, and (2) it operates on ACPI name_segs. Improves understanding of the code. Link: https://github.com/acpica/acpica/commit/19c18d31 Signed-off-by: Bob Moore Signed-off-by: Erik Schmauss Signed-off-by: Rafael J. Wysocki commit 013df97be45f023f5902c1102606c4034c668ba5 Author: Chen-Yu Tsai Date: Tue Apr 9 00:57:43 2019 +0800 ARM: dts: sun8i: a83t: Add I2C2 pinmux setting for PE pins I2C2 is available on the PE pingroup, on the same pins as the camera sensor interface (CSI) controller's camera control interface pins. This provides an option to use I2C2 instead of that control interface to configure camera sensors. Add a pinctrl node for it. The property /omit-if-no-ref/ is added to keep the device tree blob size down if it is unused. Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 89f98d7e5fa8f7e1ba627537dc8a3cef5add7b04 Author: Yue Hu Date: Tue Apr 9 10:25:36 2019 +0800 cpufreq: Remove cpufreq_driver check in cpufreq_boost_supported() Currently there are three calling paths for cpufreq_boost_supported() in all as below, we can see the cpufreq_driver null check is needless since it is already checked before. cpufreq_enable_boost_support() |-> if (!cpufreq_driver) |-> cpufreq_boost_supported() cpufreq_register_driver() |-> if (!driver_data ... |-> cpufreq_driver = driver_data |-> cpufreq_boost_supported() |-> remove_boost_sysfs_file() |-> cpufreq_boost_supported() cpufreq_unregister_driver() |-> if (!cpufreq_driver ... |-> remove_boost_sysfs_file() |-> cpufreq_boost_supported() Signed-off-by: Yue Hu Acked-by: Viresh Kumar Signed-off-by: Rafael J. Wysocki commit b3adde03ba39e730178f6da01229f6f97a9919e8 Author: Chen-Yu Tsai Date: Tue Apr 9 00:57:39 2019 +0800 clk: sunxi-ng: a83t: Add pll-video0 as parent of csi-mclk Allwinner's BSP for the A83T lists pll-video0 as the first parent to csi-mclk with index 0. This parent is not listed in the datasheet, but actually works, and makes more sense considering the index is the default value out of reset. Add pll-video0 as a parent to csi-mclk with index 0. Fixes: 05359be1176b ("clk: sunxi-ng: Add driver for A83T CCU") Signed-off-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 1e7011fad854e64a7a30a8c4f217229c250fc8c6 Author: Clément Péron Date: Mon Apr 8 17:27:53 2019 +0200 dt-bindings: arm: sunxi: Add Beelink GS1 board Beelink GS1 device-tree has been introduced. Add it to the sunxi yaml documentation. Signed-off-by: Clément Péron Signed-off-by: Maxime Ripard commit 089bee8dd119ba084dee6b17a2e1a53df4f30193 Author: Clément Péron Date: Mon Apr 8 17:27:52 2019 +0200 arm64: dts: allwinner: h6: Introduce Beelink GS1 board Beelink GS1 is an Allwinner H6 based TV box, which support: - Allwinner H6 Quad-core 64-bit ARM Cortex-A53 - GPU Mali-T720 - 2GB LPDDR3 RAM - AXP805 PMIC - 1Gbps GMAC via RTL8211E - FN-Link 6222B-SRB Wifi/BT - 1x USB 2.0 Host and 1x USB 3.0 Host - HDMI port - S/PDIF Tx - IR receiver - 5V/2A DC power supply Signed-off-by: Clément Péron Signed-off-by: Maxime Ripard commit 2c98d9e47533b35f583b330bc3380f566589a9bf Author: Clément Péron Date: Mon Apr 8 17:27:51 2019 +0200 dt-bindings: vendor-prefixes: add AZW Shenzhen AZW Technology Co. Ltd. is a manufacturer specialized in Android smart TV boxes, Intel mini PCs and home cloud TV boxes with NAS. Add the vendor prefix for AZW. Signed-off-by: Clément Péron Reviewed-by: Robin Murphy Signed-off-by: Maxime Ripard commit 6ba2e45d57afdfd982d12f168edd6a79a65075d8 Author: Clément Péron Date: Mon Apr 8 17:27:50 2019 +0200 arm64: dts: allwinner: h6: move MMC pinctrl to dtsi There is only one pinmuxing available for each MMC controller. Move the pinctrl to the SOC Signed-off-by: Clément Péron Signed-off-by: Maxime Ripard commit 5824c8ebb94d362ff0a278ff420bc22f7e075d32 Author: Ondrej Jirman Date: Wed Mar 27 03:33:39 2019 +0100 ARM: dts: sun8i: tbs-a711: Add support for volume keys input TBS A711 tablet has volume up/down keys connected to r_lradc. Add support for these keys. Signed-off-by: Ondrej Jirman Signed-off-by: Maxime Ripard commit d6212ce3fc93ef85bce84edb216a32090cabd80c Author: Ziping Chen Date: Wed Mar 27 03:33:38 2019 +0100 ARM: dts: sunxi: Add R_LRADC support for A83T Allwinner A83T SoC has a low res adc like the one in Allwinner A10 SoC. Now the driver has been modified to support it. Add support for it. Signed-off-by: Ziping Chen Signed-off-by: Ondrej Jirman Signed-off-by: Maxime Ripard commit 310655b07ae8ef0b8fdb641b610ded2052215664 Merge: 7f301cff1fc2 869e3305f23d Author: David S. Miller Date: Mon Apr 8 23:39:36 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net commit 59c209a689a66190e6eba7286e9be18ddb3df85b Author: Bart Van Assche Date: Thu Apr 4 12:44:47 2019 -0700 scsi: qla2xxx: Unregister resources in the opposite order of the registration order Make sure that resources are only unregistered after the users of these resources have been unregistered. Only unregister the character device if registration of it succeeded. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit c794d24ec9eb6658909955772e70f34bef5b5b91 Author: Bart Van Assche Date: Thu Apr 4 12:44:46 2019 -0700 scsi: qla2xxx: Unregister chrdev if module initialization fails If module initialization fails after the character device has been registered, unregister the character device. Additionally, avoid duplicating error path code. Cc: Himanshu Madhani Cc: Giridhar Malavali Fixes: 6a03b4cd78f3 ("[SCSI] qla2xxx: Add char device to increase driver use count") # v2.6.35. Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit 2c26348c4d090caeb308530ea893b37897e4a58d Author: Bart Van Assche Date: Thu Apr 4 12:44:45 2019 -0700 scsi: qla2xxx: Use get/put_unaligned where appropriate This patch makes the code easier to read but does not change any functionality. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit 7b006b9755ac099f0e5b414425534353f620d585 Author: Bart Van Assche Date: Thu Apr 4 12:44:44 2019 -0700 scsi: qla2xxx: Make qla2x00_process_response_queue() easier to read Make qla2x00_process_response_queue() easier to read by splitting this function. This patch does not change any functionality. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 6515ad717bd723f7564581ffdfd5d8064602f29f Author: Bart Van Assche Date: Thu Apr 4 12:44:43 2019 -0700 scsi: qla2xxx: Reduce the number of forward declarations Move the SCSI host template definition after the definition of the functions that it references. Remove the forward declarations that became unnecessary by that change. This patch does not change any functionality. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit b3ede8ea78e8f4c2377d89763e30b140b70f93c0 Author: Bart Van Assche Date: Thu Apr 4 12:44:42 2019 -0700 scsi: qla2xxx: Declare local symbols static This patch avoids that sparse complains that a declaration is missing. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit b0a1c5b5c38ad6ee813875a28472774474d72589 Author: Bart Van Assche Date: Thu Apr 4 12:44:41 2019 -0700 scsi: qla2xxx: Use ARRAY_SIZE() in the definition of QLA_LAST_SPEED Make the code easier to read by avoiding to use a hard-coded constant. This patch does not change any functionality. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit abe5706dcf47cfdf0b929fff727279614df3c263 Author: Bart Van Assche Date: Thu Apr 4 12:44:40 2019 -0700 scsi: qla2xxx: Remove a comment that refers to the SCSI host lock Since qla2xxx_queuecommand() no longer takes the SCSI host lock, remove a comment that refers to the host lock. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit c02ee1e5a946575feea01367f647c56e24525f22 Author: Bart Van Assche Date: Thu Apr 4 12:44:39 2019 -0700 scsi: qla2xxx: Change a stack variable into a static const variable Make qla2x00_get_host_fabric_name() slightly faster by changing a stack array into a static array. Declare that array const now that the wwn_to_u64() argument pointer has been declared const. Cc: Himanshu Madhani Cc: Giridhar Malavali Signed-off-by: Bart Van Assche Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 5585cbddce0e1bb6f501c861334f1fac1c601567 Author: Bart Van Assche Date: Thu Apr 4 12:44:38 2019 -0700 scsi: scsi_transport_fc: Declare wwn_to_u64() argument const Since the wwn_to_u64() function does not change its input, make its argument const. Cc: James Smart Cc: Hannes Reinecke Cc: Johannes Thumshirn Cc: Steffen Maier Signed-off-by: Bart Van Assche Reviewed-by: Johannes Thumshirn Signed-off-by: Martin K. Petersen commit ef19af9c2852a39878d54f185a1b32b781719542 Author: Colin Ian King Date: Mon Apr 8 09:20:14 2019 +0100 scsi: qla2xxx: fix spelling mistake "alredy" -> "already" There is a spelling mistake in a ql_log message. Fix it. Signed-off-by: Colin Ian King Acked-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 1a61e5486aeb90d94dd6116c9749e36edd10bf9b Author: James Smart Date: Fri Apr 5 16:04:23 2019 -0700 scsi: lpfc: add support for posting FC events on FPIN reception This patch adds support to recognize FPIN ELS's that are received. When one is received, the fc transport will be called to handle the the FPIN. Signed-off-by: James Smart Reviewed-by: Ewan D. Milne Signed-off-by: Martin K. Petersen commit c39e0af64bce3bba61c3986d6083df7b8f29a310 Author: James Smart Date: Fri Apr 5 16:04:22 2019 -0700 scsi: scsi_transport_fc: Add FPIN fc event codes Add a new event type - an FPIN event. Add a new routine, fc_host_fpin_rcv(), that lldd's call when an FPIN is received. The routine processes the fpin payload. For now, the routine only logs an FPIN event. Signed-off-by: Muneendra Signed-off-by: James Smart Reviewed-by: Ewan D. Milne Signed-off-by: Martin K. Petersen commit 2b1be55819dc7ae35576b3ba621c7fed0c323e04 Author: James Smart Date: Fri Apr 5 16:04:21 2019 -0700 scsi: scsi_transport_fc: refactor event posting routines There are two routines generating transport events that do the same thing with only a couple of values set differently. Refactor so there's a single routine doing the netlink operations to send the event. All the differences are passed as arguments. Export the symbol so the generic routine can be called by llds. Modify the existing two event routines to use the helper. Signed-off-by: James Smart Reviewed-by: Ewan D. Milne Signed-off-by: Martin K. Petersen commit a7dff3ad4787381a3aa831d558fb720b8f354435 Author: James Smart Date: Fri Apr 5 16:04:20 2019 -0700 scsi: fc: add FPIN ELS definition T11 has introduced a new Fabric Notifications mechanism whereby the fabric can notify a port of events occurring in the fabric. The notifications are given by the FPIN ELS. Add the FPIN ELS definitions to the kernel. Signed-off-by: James Smart Reviewed-by: Ewan D. Milne Signed-off-by: Martin K. Petersen commit d964b3e5343851fc6e7d8272d643007a29788139 Author: Bart Van Assche Date: Fri Apr 5 09:14:10 2019 -0700 scsi: lpfc: Fix a recently introduced compiler warning This patch avoids that the following compiler warning is reported with CONFIG_NVME_FC=n: drivers/scsi/lpfc/lpfc_nvme.c:2140:1: warning: 'lpfc_nvme_lport_unreg_wait' defined but not used [-Wunused-function] lpfc_nvme_lport_unreg_wait(struct lpfc_vport *vport, ^~~~~~~~~~~~~~~~~~~~~~~~~~ Fixes: 3999df75bccb ("scsi: lpfc: Declare local functions static") Cc: James Smart Signed-off-by: Bart Van Assche Acked-by: James Smart Signed-off-by: Martin K. Petersen commit afb33e40d54e365457a4fb5eada6df55cd11a9cf Author: Gustavo A. R. Silva Date: Fri Jan 25 14:46:46 2019 -0600 ASN.1: mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warnings: lib/asn1_decoder.c:386:6: warning: this statement may fall through [-Wimplicit-fallthrough=] lib/asn1_decoder.c:449:6: warning: this statement may fall through [-Wimplicit-fallthrough=] Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enabling -Wimplicit-fallthrough. Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit 8a05452ca460b05c985eadc7b5a4f040f124463e Author: Gustavo A. R. Silva Date: Fri Jan 25 14:25:24 2019 -0600 lib/cmdline.c: mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warnings: lib/cmdline.c:137:7: warning: this statement may fall through [-Wimplicit-fallthrough=] lib/cmdline.c:140:7: warning: this statement may fall through [-Wimplicit-fallthrough=] lib/cmdline.c:143:7: warning: this statement may fall through [-Wimplicit-fallthrough=] lib/cmdline.c:146:7: warning: this statement may fall through [-Wimplicit-fallthrough=] lib/cmdline.c:149:7: warning: this statement may fall through [-Wimplicit-fallthrough=] Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enabling -Wimplicit-fallthrough. Acked-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit 224b44d46ffe9ad7785cc45c7a18934d492e66ec Author: Gustavo A. R. Silva Date: Thu Jan 24 21:37:43 2019 -0600 lib: zstd: Mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warnings: lib/zstd/bitstream.h:261:30: warning: this statement may fall through [-Wimplicit-fallthrough=] lib/zstd/bitstream.h:262:30: warning: this statement may fall through [-Wimplicit-fallthrough=] lib/zstd/bitstream.h:263:30: warning: this statement may fall through [-Wimplicit-fallthrough=] lib/zstd/bitstream.h:264:30: warning: this statement may fall through [-Wimplicit-fallthrough=] lib/zstd/bitstream.h:265:30: warning: this statement may fall through [-Wimplicit-fallthrough=] lib/zstd/compress.c:3183:16: warning: this statement may fall through [-Wimplicit-fallthrough=] lib/zstd/decompress.c:1770:18: warning: this statement may fall through [-Wimplicit-fallthrough=] lib/zstd/decompress.c:2376:15: warning: this statement may fall through [-Wimplicit-fallthrough=] lib/zstd/decompress.c:2404:15: warning: this statement may fall through [-Wimplicit-fallthrough=] lib/zstd/decompress.c:2435:16: warning: this statement may fall through [-Wimplicit-fallthrough=] lib/zstd/huf_compress.c: In function ‘HUF_compress1X_usingCTable’: lib/zstd/huf_compress.c:535:5: warning: this statement may fall through [-Wimplicit-fallthrough=] if (sizeof((stream)->bitContainer) * 8 < HUF_TABLELOG_MAX * 4 + 7) \ ^ lib/zstd/huf_compress.c:558:54: note: in expansion of macro ‘HUF_FLUSHBITS_2’ case 3: HUF_encodeSymbol(&bitC, ip[n + 2], CTable); HUF_FLUSHBITS_2(&bitC); ^~~~~~~~~~~~~~~ lib/zstd/huf_compress.c:559:2: note: here case 2: HUF_encodeSymbol(&bitC, ip[n + 1], CTable); HUF_FLUSHBITS_1(&bitC); ^~~~ lib/zstd/huf_compress.c:531:5: warning: this statement may fall through [-Wimplicit-fallthrough=] if (sizeof((stream)->bitContainer) * 8 < HUF_TABLELOG_MAX * 2 + 7) \ ^ lib/zstd/huf_compress.c:559:54: note: in expansion of macro ‘HUF_FLUSHBITS_1’ case 2: HUF_encodeSymbol(&bitC, ip[n + 1], CTable); HUF_FLUSHBITS_1(&bitC); ^~~~~~~~~~~~~~~ lib/zstd/huf_compress.c:560:2: note: here case 1: HUF_encodeSymbol(&bitC, ip[n + 0], CTable); HUF_FLUSHBITS(&bitC); ^~~~ AR lib/zstd//built-in.a Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enabling -Wimplicit-fallthrough. Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit 0779ad71aa087b18b0e8eb671ad487430f3211cd Author: Gustavo A. R. Silva Date: Mon Nov 26 14:16:54 2018 -0600 scsi: sym53c8xx_2: sym_nvram: Mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit 7c2901107d1a14e98f0943f530459cb0d15ddf1b Author: Gustavo A. R. Silva Date: Mon Nov 26 14:14:18 2018 -0600 scsi: sym53c8xx_2: sym_hipd: mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. Addresses-Coverity-ID: 114996 ("Missing break in switch") Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit 2d5ffc2611f45de5ada90047c5d8723a3b33db38 Author: Gustavo A. R. Silva Date: Mon Nov 26 14:06:48 2018 -0600 scsi: ppa: mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. Addresses-Coverity-ID: 114988 ("Missing break in switch") Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit 6bb0497834d4440be1802bff417bc5b91d060b91 Author: Gustavo A. R. Silva Date: Mon Nov 26 14:04:29 2018 -0600 scsi: osst: mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. Addresses-Coverity-ID: 114983 ("Missing break in switch") Addresses-Coverity-ID: 114984 ("Missing break in switch") Addresses-Coverity-ID: 114985 ("Missing break in switch") Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit 88216a783b1552c485901218f3d17d68471ccd34 Author: Gustavo A. R. Silva Date: Mon Nov 26 13:38:36 2018 -0600 scsi: lpfc: lpfc_scsi: Mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. Notice that, in this particular case, I replaced "Drop thru" with "fall through" annotations, which is what GCC is expecting to find. Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit 309cf28a04515d9adf84a40b7183c7b085110b79 Author: Gustavo A. R. Silva Date: Mon Nov 26 13:35:08 2018 -0600 scsi: lpfc: lpfc_nvme: Mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit e305c8dfa5ece43f2047ec18a2f460e56ee1b832 Author: Gustavo A. R. Silva Date: Mon Nov 26 13:33:58 2018 -0600 scsi: lpfc: lpfc_nportdisc: Mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit f60deecb96616ae188b08ba99a6d8fb41ee7a48f Author: Gustavo A. R. Silva Date: Mon Nov 26 13:30:39 2018 -0600 scsi: lpfc: lpfc_hbadisc: Mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. Notice that, in this particular case, I replaced "Drop thru" with a "fall through" annotation, which is what GCC is expecting to find. Addresses-Coverity-ID: 114976 ("Missing break in switch") Addresses-Coverity-ID: 114977 ("Missing break in switch") Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit bf9598bdb311fc4013208b83c41357cde9d97522 Author: Gustavo A. R. Silva Date: Mon Nov 26 13:23:34 2018 -0600 scsi: lpfc: lpfc_els: Mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. Addresses-Coverity-ID: 114978 ("Missing break in switch") Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit dbb744ba4129ee94f7729ae369e387079e9a5f1d Author: Gustavo A. R. Silva Date: Mon Nov 26 13:21:29 2018 -0600 scsi: lpfc: lpfc_ct: Mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit 7f301cff1fc20c5b91203c5e610cf95782081d5d Author: Michael Zhivich Date: Mon Apr 8 15:00:46 2019 -0400 ethtool: thunder_bgx: use ethtool.h constants for speed and duplex Use constants provided by ethtool.h for speed and duplex values instead of raw integer constants to increase code readability. thunder_bgx already uses SPEED_UNKNOWN and DUPLEX_UNKNOWN constants, also provided by ethtool.h. Signed-off-by: Michael Zhivich Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 9fa29a670bb8e887b40e95d4ce79a8e0d21d47ac Author: Gustavo A. R. Silva Date: Mon Nov 26 12:31:53 2018 -0600 scsi: imm: mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. Notice that, in this particular case, I placed all the "Phase N - ..." comments on the same line as its corresponding switch case. The same way in which similar comments appear in drivers/scsi/ppa.c. This makes it possible to place the "fall through" annotations at the bottom of each switch case, which is what GCC is expecting to find. Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit 1f7716373901768afa504638a34221236dfb708c Author: Gustavo A. R. Silva Date: Mon Nov 26 12:15:47 2018 -0600 scsi: csiostor: csio_wr: mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. Addresses-Coverity-ID: 1056538 ("Missing break in switch") Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit 8fabc0eb9daabb120b579af2686abe49083dc1b5 Author: Gustavo A. R. Silva Date: Mon Nov 26 11:52:21 2018 -0600 scsi: bfa: bfa_fcpim: Mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. Notice that I replaced "Fall through !!!" with a "fall through" annotation, which is what GCC is expecting to find. Addresses-Coverity-ID: 114971 ("Missing break in switch") Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit a8308767c1694e70e05133e0ac708d1f09b96a87 Author: Gustavo A. R. Silva Date: Mon Nov 26 11:49:38 2018 -0600 scsi: be2iscsi: be_main: Mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. Addresses-Coverity-ID: 1357387 ("Missing break in switch") Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit 6a29edc41e13c28d8450520195b2243e0d9efc96 Author: Gustavo A. R. Silva Date: Mon Nov 26 11:46:20 2018 -0600 scsi: be2iscsi: be_iscsi: Mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit e2e801644eb345c563bbd0bb004907e89b932543 Author: Gustavo A. R. Silva Date: Mon Nov 26 11:41:47 2018 -0600 scsi: aic7xxx: mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. Notice that, in some cases, I replaced "FALLTHROUGH" with a "fall through" annotation and then placed it at the bottom of the corresponding switch case, which is what GCC is expecting to find. Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit 74f79099efe0125b2cc1816655996b5288bb8446 Author: Gustavo A. R. Silva Date: Mon Jan 14 14:30:36 2019 -0600 adfs: mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit e690c9e3f4fb2cc589414c5bf502dcfe04e685de Author: Gustavo A. R. Silva Date: Thu Jan 10 15:52:25 2019 -0600 afs: Mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. Notice that in many cases I placed a /* Fall through */ comment at the bottom of the case, which what GCC is expecting to find. In other cases I had to tweak a bit the format of the comments. This patch suppresses ALL missing-break-in-switch false positives in fs/afs Addresses-Coverity-ID: 115042 ("Missing break in switch") Addresses-Coverity-ID: 115043 ("Missing break in switch") Addresses-Coverity-ID: 115045 ("Missing break in switch") Addresses-Coverity-ID: 1357430 ("Missing break in switch") Addresses-Coverity-ID: 115047 ("Missing break in switch") Addresses-Coverity-ID: 115050 ("Missing break in switch") Addresses-Coverity-ID: 115051 ("Missing break in switch") Addresses-Coverity-ID: 1467806 ("Missing break in switch") Addresses-Coverity-ID: 1467807 ("Missing break in switch") Addresses-Coverity-ID: 1467811 ("Missing break in switch") Addresses-Coverity-ID: 115041 ("Missing break in switch") Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit b7f29f8ce170c1b22779d62cbd24bf336ef0372b Author: Heiner Kallweit Date: Mon Apr 8 19:28:28 2019 +0200 net: phy: fix setting autoneg_complete in genphy_update_link The original patch didn't set phydev->autoneg_complete in one exit path. Fix this. Fixes: 4950c2ba49cc ("net: phy: fix autoneg mismatch case in genphy_read_status") Reported-by: Simon Horman Tested-by: Simon Horman Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 13ee7d49733b4579566f72c29b336a33cf3233c7 Merge: e4bf63482c30 be0faac952e1 Author: David S. Miller Date: Mon Apr 8 16:28:01 2019 -0700 Merge branch 'mlxsw-Add-support-for-devlink-info-command' Ido Schimmel says: ==================== mlxsw: Add support for devlink info command Shalom says: Expose the following ASIC information via devlink info command: - Driver name - Hardware revision - Firmware PSID - Running firmware version Standard output example: $ devlink dev info pci/0000:03:00.0 pci/0000:03:00.0: versions: fixed: hw.revision A0 fw.psid MT_2750110033 running: fw.version 13.1910.622 Pretty JSON example: $ devlink -jp dev info pci/0000:03:00.0 { "info": { "pci/0000:03:00.0": { "versions": { "fixed": { "hw.revision": "A0", "fw.psid": "MT_2750110033" }, "running": { "fw.version": "13.1910.622" } } } } } v2: - Add fw.psid documentation - Add driver name ==================== Signed-off-by: David S. Miller commit be0faac952e1643237931956ab8ec5ceaeda41b0 Author: Shalom Toledo Date: Mon Apr 8 06:59:36 2019 +0000 Documentation: networking: devlink-info-versions: Add fw.psid Add firmware parameter id (fw.psid). Signed-off-by: Shalom Toledo Acked-by: Jiri Pirko Signed-off-by: Ido Schimmel Acked-by: Jakub Kicinski Signed-off-by: David S. Miller commit a9c8336f65446b5ef7e483cdcc72a04d1b517bea Author: Shalom Toledo Date: Mon Apr 8 06:59:35 2019 +0000 mlxsw: core: Add support for devlink info command Expose the following ASIC information via devlink info command: - Driver name - Hardware revision - Firmware PSID - Running firmware version Standard output example: $ devlink dev info pci/0000:03:00.0 pci/0000:03:00.0: driver mlxsw_spectrum versions: fixed: hw.revision A0 fw.psid MT_2750110033 running: fw.version 13.1910.622 Signed-off-by: Shalom Toledo Acked-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit 8d77d4bfb0c140dad1d98e2035735e45d85c4d50 Author: Shalom Toledo Date: Mon Apr 8 06:59:34 2019 +0000 mlxsw: reg: Add MGIR register Add MGIR register. MGIR, Management General Information Register, allows software to query the hardware and firmware general information. Signed-off-by: Shalom Toledo Acked-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit e4bf63482c309287ca84d91770ffa7dcc18e37eb Author: Kristian Evensen Date: Sun Apr 7 15:39:09 2019 +0200 qmi_wwan: Add quirk for Quectel dynamic config Most, if not all, Quectel devices use dynamic interface numbers, and users are able to change the USB configuration at will. Matching on for example interface number is therefore not possible. Instead, the QMI device can be identified by looking at the interface class, subclass and protocol (all 0xff), as well as the number of endpoints. The reason we need to look at the number of endpoints, is that the diagnostic port interface has the same class, subclass and protocol as QMI. However, the diagnostic port only has two endpoints, while QMI has three. Until now, we have identified the QMI device by combining a match on class, subclass and protocol, with a call to the function quectel_diag_detect(). In quectel_diag_detect(), we check if the number of endpoints matches for known Quectel vendor/product ids. Adding new vendor/product ids to quectel_diag_detect() is not a good long-term solution. This commit replaces the function with a quirk, and applies the quirk to affected Quectel devices that I have been able to test the change with (EP06, EM12 and EC25). If the quirk is set and the number of endpoints equal two, we return from qmi_wwan_probe() with -ENODEV. Signed-off-by: Kristian Evensen Acked-by: Bjørn Mork Signed-off-by: David S. Miller commit 22b56e827093dd1af2379d294aba7d629b3f3436 Author: Heiner Kallweit Date: Sun Apr 7 13:55:01 2019 +0200 net: phy: replace genphy_10g_driver with genphy_c45_driver Recently a number of generic functions for Clause 45 PHY's has been added. So let's replace the old very limited genphy_10g_driver with a genphy_c45_driver. This driver isn't limited to 10G, however it's worth to be noted that Clause 45 doesn't cover 1000Base-T. For using 1000Base-T with a Clause 45 PHY a dedicated PHY driver using vendor registers is needed. Signed-off-by: Heiner Kallweit Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 0a4c92657f2543bb8fd480c5af90c6bb87f18e00 Author: Gustavo A. R. Silva Date: Wed Jan 23 02:48:28 2019 -0600 fs: mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warnings: fs/affs/affs.h:124:38: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/configfs/dir.c:1692:11: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/configfs/dir.c:1694:7: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/ceph/file.c:249:3: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/ext4/hash.c:233:15: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/ext4/hash.c:246:15: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/ext2/inode.c:1237:7: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/ext2/inode.c:1244:7: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/ext4/indirect.c:1182:6: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/ext4/indirect.c:1188:6: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/ext4/indirect.c:1432:6: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/ext4/indirect.c:1440:6: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/f2fs/node.c:618:8: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/f2fs/node.c:620:8: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/btrfs/ref-verify.c:522:15: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/gfs2/bmap.c:711:7: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/gfs2/bmap.c:722:7: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/jffs2/fs.c:339:6: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/nfsd/nfs4proc.c:429:12: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/ufs/util.h:62:6: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/ufs/util.h:43:6: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/fcntl.c:770:7: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/seq_file.c:319:10: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/libfs.c:148:11: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/libfs.c:150:7: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/signalfd.c:178:7: warning: this statement may fall through [-Wimplicit-fallthrough=] fs/locks.c:1473:16: warning: this statement may fall through [-Wimplicit-fallthrough=] Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enabling -Wimplicit-fallthrough. Reviewed-by: Kees Cook Signed-off-by: Gustavo A. R. Silva commit e14d314c7a489f060d6d691866fef5f131281718 Author: Roman Gushchin Date: Mon Apr 8 15:12:30 2019 -0700 selftests: cgroup: fix cleanup path in test_memcg_subtree_control() Dan reported, that cleanup path in test_memcg_subtree_control() triggers a static checker warning: ./tools/testing/selftests/cgroup/test_memcontrol.c:76 \ test_memcg_subtree_control() error: uninitialized symbol 'child2'. Fix this by initializing child2 and parent2 variables and split the cleanup path into few stages. Signed-off-by: Roman Gushchin Fixes: 84092dbcf901 ("selftests: cgroup: add memory controller self-tests") Reported-by: Dan Carpenter Cc: Dan Carpenter Cc: Shuah Khan (Samsung OSG) Cc: Mike Rapoport Signed-off-by: Shuah Khan commit f8a0590f0e01402873ec28a0da46f979f6bc56f1 Author: ZhangXiaoxu Date: Tue Mar 19 11:24:31 2019 +0800 selftests: efivarfs: remove the test_create_read file if it was exist After the first run, the test case 'test_create_read' will always fail because the file is exist and file's attr is 'S_IMMUTABLE', open with 'O_RDWR' will always return -EPERM. Signed-off-by: ZhangXiaoxu Signed-off-by: Shuah Khan commit 0a7dc82ef2ed7f4c244fe55b59ea05909a408108 Author: Mathieu Desnoyers Date: Tue Mar 5 14:47:55 2019 -0500 rseq/selftests: Adapt number of threads to the number of detected cpus On smaller systems, running a test with 200 threads can take a long time on machines with smaller number of CPUs. Detect the number of online cpus at test runtime, and multiply that by 6 to have 6 rseq threads per cpu preempting each other. Signed-off-by: Mathieu Desnoyers Cc: Shuah Khan Cc: Thomas Gleixner Cc: Joel Fernandes Cc: Peter Zijlstra Cc: Catalin Marinas Cc: Dave Watson Cc: Will Deacon Cc: Andi Kleen Cc: linux-kselftest@vger.kernel.org Cc: "H . Peter Anvin" Cc: Chris Lameter Cc: Russell King Cc: Michael Kerrisk Cc: "Paul E . McKenney" Cc: Paul Turner Cc: Boqun Feng Cc: Josh Triplett Cc: Steven Rostedt Cc: Ben Maurer Cc: Andy Lutomirski Cc: Andrew Morton Cc: Linus Torvalds Signed-off-by: Shuah Khan commit 0b0600c8c97abe070724140802f3b8c8aee93170 Author: Tobin C. Harding Date: Fri Apr 5 12:58:59 2019 +1100 lib: Add test module for strscpy_pad Add a test module for the new strscpy_pad() function. Tie it into the kselftest infrastructure for lib/ tests. Acked-by: Kees Cook Signed-off-by: Tobin C. Harding Signed-off-by: Shuah Khan commit 458a3bf82df4fe1f951d0f52b1e0c1e9d5a88a3b Author: Tobin C. Harding Date: Fri Apr 5 12:58:58 2019 +1100 lib/string: Add strscpy_pad() function We have a function to copy strings safely and we have a function to copy strings and zero the tail of the destination (if source string is shorter than destination buffer) but we do not have a function to do both at once. This means developers must write this themselves if they desire this functionality. This is a chore, and also leaves us open to off by one errors unnecessarily. Add a function that calls strscpy() then memset()s the tail to zero if the source string is shorter than the destination buffer. Acked-by: Kees Cook Signed-off-by: Tobin C. Harding Signed-off-by: Shuah Khan commit 6b1a4d5b1a26ae830d50e08d7b3ca0e8b3e6b453 Author: Tobin C. Harding Date: Fri Apr 5 12:58:57 2019 +1100 lib: Use new kselftest header We just added a new C header file for use with test modules that are intended to be run with kselftest. We can reduce code duplication by using this header. Use new kselftest header to reduce code duplication in test_printf and test_bitmap test modules. Acked-by: Kees Cook Signed-off-by: Tobin C. Harding Signed-off-by: Shuah Khan commit eebf4dd452377921e3a2635f0f5df2042470faef Author: Tobin C. Harding Date: Fri Apr 5 12:58:56 2019 +1100 kselftest: Add test module framework header kselftest runs as a userspace process. Sometimes we need to test things from kernel space. One way of doing this is by creating a test module. Currently doing so requires developers to write a bunch of boiler plate in the module if kselftest is to be used to run the tests. This means we currently have a load of duplicate code to achieve these ends. If we have a uniform method for implementing test modules then we can reduce code duplication, ensure uniformity in the test framework, ease code maintenance, and reduce the work required to create tests. This all helps to encourage developers to write and run tests. Add a C header file that can be included in test modules. This provides a single point for common test functions/macros. Implement a few macros that make up the start of the test framework. Add documentation for new kselftest header to kselftest documentation. Acked-by: Kees Cook Signed-off-by: Tobin C. Harding Signed-off-by: Shuah Khan commit d3460527706eaacae0b24889885570d85cc0869a Author: Tobin C. Harding Date: Fri Apr 5 12:58:55 2019 +1100 kselftest: Add test runner creation script Currently if we wish to use kselftest to run tests within a kernel module we write a small script to load/unload and do error reporting. There are a bunch of these under tools/testing/selftests/lib/ that are all identical except for the test name. We can reduce code duplication and improve maintainability if we have one version of this. However kselftest requires an executable for each test. We can move all the script logic to a central script then have each individual test script call the main script. Oneliner to call kselftest_module.sh courtesy of Kees, thanks! Add test runner creation script. Convert tools/testing/selftests/lib/*.sh to use new test creation script. Testing ------- Configure kselftests for lib/ then build and boot kernel. Then run kselftests as follows: $ cd /path/to/kernel/tree $ sudo make O=$output_path -C tools/testing/selftests TARGETS="lib" run_tests and also $ cd /path/to/kernel/tree $ cd tools/testing/selftests $ sudo make O=$output_path TARGETS="lib" run_tests and also $ cd /path/to/kernel/tree $ cd tools/testing/selftests $ sudo make TARGETS="lib" run_tests Acked-by: Kees Cook Signed-off-by: Tobin C. Harding Signed-off-by: Shuah Khan commit 5af82f5205f156977fed1c8d2f214f1c58fb263b Merge: 0ed8c3dc4133 e233516e6a92 Author: David S. Miller Date: Mon Apr 8 15:30:49 2019 -0700 Merge branch 'hns3-next' Huazhong Tan says: ==================== code optimizations & bugfixes for HNS3 driver This patchset includes bugfixes and code optimizations for the HNS3 ethernet controller driver. ==================== Signed-off-by: David S. Miller commit e233516e6a92baeec20aa40fa5b63be6b94f1627 Author: Huazhong Tan Date: Sat Apr 6 15:43:36 2019 +0800 net: hns3: fix keep_alive_timer not stop problem When hclgevf_client_start() fails or VF driver unloaded, there is nobody to disable keep_alive_timer. So this patch fixes them. Fixes: a6d818e31d08 ("net: hns3: Add vport alive state checking support") Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit 7d60070668e4bf53571f43c6cf30838ca5dccffd Author: Huazhong Tan Date: Sat Apr 6 15:43:35 2019 +0800 net: hns3: remove resetting check in hclgevf_reset_task_schedule The checking of HCLGEVF_STATE_RST_HANDLING flag in the hclgevf_reset_task_schedule() will make some scheduling of reset pending fail. This flag will be checked in the hclgevf_reset_service_task(), it is unnecessary to check it in the hclgevf_reset_task_schedule(). So this patch removes it. Fixes: 35a1e50343bd ("net: hns3: Add VF Reset Service Task to support event handling") Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 4339ef396ab65a61f7f22f36d7ba94b6e9e0939b Author: Huazhong Tan Date: Sat Apr 6 15:43:34 2019 +0800 net: hns3: add error handler for initializing command queue This patch adds error handler for the failure of command queue initialization both PF and VF. Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit 18e2488881c61957b8fc1a25c0bb8419e25ddb6f Author: Huazhong Tan Date: Sat Apr 6 15:43:33 2019 +0800 net: hns3: stop mailbox handling when command queue need re-init If the command queue needs re-initialization, the mailbox handling task should do nothing, otherwise this task will just get some error print. Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit cf1f212916d9d59977aadd558a54aef6109bc2d1 Author: Huazhong Tan Date: Sat Apr 6 15:43:32 2019 +0800 net: hns3: handle pending reset while reset fail The ongoing lower-level reset will fail when there is a higher-level reset occurs, so the error handler should deal with this situation. Fixes: 6a5f6fa382f3 ("net: hns3: add error handler for hclgevf_reset()") Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit 4f765d3e5213da43a5f410ea62445f9591bfa4dc Author: Huazhong Tan Date: Sat Apr 6 15:43:31 2019 +0800 net: hns3: do not request reset when hardware resetting When hardware reset does not finish, the driver should not request a new reset, otherwise the ongoing hardware reset will get problem. Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 0fdf4d304c24eb2fb99d1f81db5bc46c85f24009 Author: Huazhong Tan Date: Sat Apr 6 15:43:30 2019 +0800 net: hns3: ignore lower-level new coming reset It is unnecessary to deal with the new coming reset if it is lower than the ongoing one. Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit 056cbab332940b53d0841b052ed1cf4abf7307a5 Author: Huazhong Tan Date: Sat Apr 6 15:43:29 2019 +0800 net: hns3: deactive the reset timer when reset successfully If the reset has been done successfully, the ongoing reset timer is unnecessary. Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit eb32c896f10a8685162480279bd79f992b33319e Author: Huazhong Tan Date: Sat Apr 6 15:43:28 2019 +0800 net: hns3: adjust the timing of hns3_client_stop when unloading hns3_client_stop() should be called after unregister_netdev(), otherwise the ongoing reset task may start the client just after it. Fixes: a6d818e31d08 ("net: hns3: Add vport alive state checking support") Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit cc645dfa89a747382beaf62d69daafe60fd1cd94 Author: Huazhong Tan Date: Sat Apr 6 15:43:27 2019 +0800 net: hns3: not reset vport who not alive when PF reset If a vport is not alive, it is unnecessary to notify it to reset before PF asserting a reset. So before inform vport to reset, we need to check its alive state firstly. Fixes: aa5c4f175be6 ("net: hns3: add reset handling for VF when doing PF reset") Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit cd513a69750b4be20b8c077e05c5112f0fd014f2 Author: Huazhong Tan Date: Sat Apr 6 15:43:26 2019 +0800 net: hns3: set up the vport alive state while reinitializing When reinitializing, the vport alive state needs to be set up. Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit 0f14c5b1a9c9d082d9b567e3775e299ec075721d Author: Huazhong Tan Date: Sat Apr 6 15:43:25 2019 +0800 net: hns3: set vport alive state to default while resetting When resetting, the vport alive state should be set to default, otherwise the alive state of the vport whose driver not running is wrong before the timer to check it out. Fixes: a6d818e31d08 ("net: hns3: Add vport alive state checking support") Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit 0ed8c3dc41338d6b6442a6b692552f24ad523a9b Merge: 3b8b11f96616 228ddb3315ba Author: David S. Miller Date: Mon Apr 8 15:22:41 2019 -0700 Merge branch 'ipv4-Enable-support-for-IPv6-gateway-with-IPv4-routes' David Ahern says: ==================== ipv4: Enable support for IPv6 gateway with IPv4 routes Last set of three with the end goal of enabling IPv6 gateways with IPv4 routes. This set adds fib6_nh_init and release to the IPv6 stubs, and adds neighbor helpers that IPv4 code invokes to resolve an IPv6 address. When using an IPv6 neighbor entry the hh_cache is bypassed as it contains the wrong ethernet header for an IPv4 packet. The nh_common nhc_has_gw was a temporary field used to convert existing code from fib{6}_nh to fib_nh_common. That field is now converted to nhc_gw_family to differentiate the address family of the gateway entry as opposed to the address family of the container of fib_nh_common. Existing code for rtable and fib_config is refactored to prepare for a v6 address and then support is added. From there various miscellaneous functions are updated to handle a v6 gateway - from validating the v6 address to lookups in bpf code to verifying the nexthop state. Offload drivers - mlxsw and rocker - are modified to detect the v6 gateway and reject the route as 'unsupported'. e.g., $ ip ro add 172.16.101.0/24 via inet6 fe80::202:ff:fe00:b dev swp1s0 Error: mlxsw_spectrum: IPv6 gateway with IPv4 route is not supported. This can be removed in time once support is added to each. With the infrastructure changes in place, patch 17 enables it by adding support for RTA_VIA to IPv4. RTA_VIA can be used for IPv4 addresses as well. Only one of RTA_VIA and RTA_GATEWAY can be passed in a request. Patch 18 adds a few test cases to fib_tests.sh. v2 - comments from Ido - fixed typos as noted and updated messages - add commit message to patch 1 - In patch 9, ipv4: Add fib_check_nh_v6_gw, moved the call to fib6_nh_release under the 'if (!err)' check as the intention is that release should not be called if init fails. ==================== Signed-off-by: David S. Miller commit 228ddb3315baf03fc32ebb1cdd928c4839b49e13 Author: David Ahern Date: Fri Apr 5 16:30:41 2019 -0700 selftests: fib_tests: Add tests for ipv6 gateway with ipv4 route Add tests for ipv6 gateway with ipv4 route. Tests include basic single path with ping to verify connectivity and multipath. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit d15662682db232da77136cd348f4c9df312ca6f9 Author: David Ahern Date: Fri Apr 5 16:30:40 2019 -0700 ipv4: Allow ipv6 gateway with ipv4 routes Add support for RTA_VIA and allow an IPv6 nexthop for v4 routes: $ ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0 $ ip ro ls ... 172.16.1.0/24 via inet6 2001:db8::1 dev eth0 For convenience and simplicity, userspace can use RTA_VIA to specify AF_INET or AF_INET6 gateway. The common fib_nexthop_info dump function compares the gateway address family to the nh_common family to know if the gateway should be encoded as RTA_VIA or RTA_GATEWAY. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 19a9d136f198cd7c4e26ea6897a0cf067d3f7ecb Author: David Ahern Date: Fri Apr 5 16:30:39 2019 -0700 ipv4: Flag fib_info with a fib_nh using IPv6 gateway Until support is added to the offload drivers, they need to be able to reject routes with an IPv6 gateway. To that end add a flag to fib_info that indicates if any fib_nh has a v6 gateway. The flag allows the drivers to efficiently know the use of a v6 gateway without walking all fib_nh tied to a fib_info each time a route is added. Update mlxsw and rocker to reject the routes with extack message as to why. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 1a38c43d319e745cf12055a266a1f459e2ba9ec3 Author: David Ahern Date: Fri Apr 5 16:30:38 2019 -0700 ipv4: Handle ipv6 gateway in fib_good_nh Update fib_good_nh to handle an ipv6 gateway. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 619d1826269b4be5c992bec0029bbfcc823d663d Author: David Ahern Date: Fri Apr 5 16:30:37 2019 -0700 ipv4: Handle ipv6 gateway in fib_detect_death Update fib_detect_death to handle an ipv6 gateway. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 6de9c0557e4fc7e1b2f8ed6178aad32f64e1d7da Author: David Ahern Date: Fri Apr 5 16:30:36 2019 -0700 ipv4: Handle ipv6 gateway in ipv4_confirm_neigh Update ipv4_confirm_neigh to handle an ipv6 gateway. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 6f5f68d05ec0f648a4e59a07442d663d1e1a4d2f Author: David Ahern Date: Fri Apr 5 16:30:35 2019 -0700 bpf: Handle ipv6 gateway in bpf_ipv4_fib_lookup Update bpf_ipv4_fib_lookup to handle an ipv6 gateway. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 5c9f7c1dfc2e0776551ef1ceb335187c6698d1ff Author: David Ahern Date: Fri Apr 5 16:30:34 2019 -0700 ipv4: Add helpers for neigh lookup for nexthop A common theme in the output path is looking up a neigh entry for a nexthop, either the gateway in an rtable or a fallback to the daddr in the skb: nexthop = (__force u32)rt_nexthop(rt, ip_hdr(skb)->daddr); neigh = __ipv4_neigh_lookup_noref(dev, nexthop); if (unlikely(!neigh)) neigh = __neigh_create(&arp_tbl, &nexthop, dev, false); To allow the nexthop to be an IPv6 address we need to consider the family of the nexthop and then call __ipv{4,6}_neigh_lookup_noref based on it. To make this simpler, add a ip_neigh_gw4 helper similar to ip_neigh_gw6 added in an earlier patch which handles: neigh = __ipv4_neigh_lookup_noref(dev, nexthop); if (unlikely(!neigh)) neigh = __neigh_create(&arp_tbl, &nexthop, dev, false); And then add a second one, ip_neigh_for_gw, that calls either ip_neigh_gw4 or ip_neigh_gw6 based on the address family of the gateway. Update the output paths in the VRF driver and core v4 code to use ip_neigh_for_gw simplifying the family based lookup and making both ready for a v6 nexthop. ipv4_neigh_lookup has a different need - the potential to resolve a passed in address in addition to any gateway in the rtable or skb. Since this is a one-off, add ip_neigh_gw4 and ip_neigh_gw6 diectly. The difference between __neigh_create used by the helpers and neigh_create called by ipv4_neigh_lookup is taking a refcount, so add rcu_read_lock_bh and bump the refcnt on the neigh entry. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 0353f28231c79416191326810e7fe656b69c63b7 Author: David Ahern Date: Fri Apr 5 16:30:33 2019 -0700 neighbor: Add skip_cache argument to neigh_output A later patch allows an IPv6 gateway with an IPv4 route. The neighbor entry will exist in the v6 ndisc table and the cached header will contain the ipv6 protocol which is wrong for an IPv4 packet. For an IPv4 packet to use the v6 neighbor entry, neigh_output needs to skip the cached header and just use the output callback for the neigh entry. A future patchset can look at expanding the hh_cache to handle 2 protocols. For now, IPv6 gateways with an IPv4 route will take the extra overhead of generating the header. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 717a8f5b2923c44da9157e145c294c4343a5f6de Author: David Ahern Date: Fri Apr 5 16:30:32 2019 -0700 ipv4: Add fib_check_nh_v6_gw Add helper to use fib6_nh_init to validate a nexthop spec with an IPv6 gateway. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller commit 448d7248191706cbbd7761e3bc72c2985c4d38a7 Author: David Ahern Date: Fri Apr 5 16:30:31 2019 -0700 ipv4: Refactor fib_check_nh fib_check_nh is currently huge covering multiple uses cases - device only, device + gateway, and device + gateway with ONLINK. The next patch adds validation checks for IPv6 which only further complicates it. So, break fib_check_nh into 2 helpers - one for gateway validation and one for device only. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller commit a4ea5d43c807be28545625c1e0641905022fa0d1 Author: David Ahern Date: Fri Apr 5 16:30:30 2019 -0700 ipv4: Add support to fib_config for IPv6 gateway Add support for an IPv6 gateway to fib_config. Since a gateway is either IPv4 or IPv6, make it a union with fc_gw4 where fc_gw_family decides which address is in use. Update current checks on family and gw4 to handle ipv6 as well. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller commit 0f5f7d7bf6e6bda4dffe7b42812a16ada6ea9816 Author: David Ahern Date: Fri Apr 5 16:30:29 2019 -0700 ipv4: Add support to rtable for ipv6 gateway Add support for an IPv6 gateway to rtable. Since a gateway is either IPv4 or IPv6, make it a union with rt_gw4 where rt_gw_family decides which address is in use. When dumping the route data, encode an ipv6 nexthop using RTA_VIA. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller commit f35b794b3b405e2478654ea875bc0b29fe1a1bc5 Author: David Ahern Date: Fri Apr 5 16:30:28 2019 -0700 ipv4: Prepare fib_config for IPv6 gateway Similar to rtable, fib_config needs to allow the gateway to be either an IPv4 or an IPv6 address. To that end, rename fc_gw to fc_gw4 to mean an IPv4 address and add fc_gw_family. Checks on 'is a gateway set' are changed to see if fc_gw_family is set. In the process prepare the code for a fc_gw_family == AF_INET6. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller commit 1550c171935d264f522581fd037db5e64a716bb6 Author: David Ahern Date: Fri Apr 5 16:30:27 2019 -0700 ipv4: Prepare rtable for IPv6 gateway To allow the gateway to be either an IPv4 or IPv6 address, remove rt_uses_gateway from rtable and replace with rt_gw_family. If rt_gw_family is set it implies rt_uses_gateway. Rename rt_gateway to rt_gw4 to represent the IPv4 version. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller commit bdf004677107e3b847c5db09c9fbf8edefa24996 Author: David Ahern Date: Fri Apr 5 16:30:26 2019 -0700 net: Replace nhc_has_gw with nhc_gw_family Allow the gateway in a fib_nh_common to be from a different address family than the outer fib{6}_nh. To that end, replace nhc_has_gw with nhc_gw_family and update users of nhc_has_gw to check nhc_gw_family. Now nhc_family is used to know if the nh_common is part of a fib_nh or fib6_nh (used for container_of to get to route family specific data), and nhc_gw_family represents the address family for the gateway. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller commit 71df5777aaaeff673c242a49b945b1b96fe81718 Author: David Ahern Date: Fri Apr 5 16:30:25 2019 -0700 ipv6: Add neighbor helpers that use the ipv6 stub Add ipv6 helpers to handle ndisc references via the stub. Update bpf_ipv6_fib_lookup to use __ipv6_neigh_lookup_noref_stub instead of the open code ___neigh_lookup_noref with the stub. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller commit 1aefd3de7bc667115bb77cb0bc21e874c7e190fc Author: David Ahern Date: Fri Apr 5 16:30:24 2019 -0700 ipv6: Add fib6_nh_init and release to stubs Add fib6_nh_init and fib6_nh_release to ipv6_stubs. If fib6_nh_init fails, callers should not invoke fib6_nh_release, so there is no reason to have a dummy stub for the IPv6 is not enabled case. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller commit 6989808ee7636188cc091224bc76ab8e1696088a Author: Tobin C. Harding Date: Fri Apr 5 12:58:54 2019 +1100 lib/test_printf: Add empty module_exit function Currently the test_printf module does not have an exit function, this prevents the module from being unloaded. If we cannot unload the module we cannot run the tests a second time. Add an empty exit function. Acked-by: Kees Cook Signed-off-by: Tobin C. Harding Signed-off-by: Shuah Khan commit 6f9e64b0ff26aab12ae126e0fe274fbd5720fd91 Author: Sabyasachi Gupta Date: Wed Mar 6 21:50:19 2019 +0530 selftest/gpio: Remove duplicate header Remove duplicate header which are included twice. Signed-off-by: Sabyasachi Gupta Signed-off-by: Souptick Joarder Signed-off-by: Shuah Khan commit cde53520e2877f7f3a493e3a55d636baaf46903c Author: Sabyasachi Gupta Date: Wed Mar 6 21:46:51 2019 +0530 selftest/rseq: Remove duplicate header Remove duplicate header which is included twice Signed-off-by: Sabyasachi Gupta Signed-off-by: Souptick Joarder Acked-by: Mathieu Desnoyers Signed-off-by: Shuah Khan commit a04a67845cfab05bfd0c006b669addb8f6036c3c Author: Sabyasachi Gupta Date: Wed Mar 6 21:52:52 2019 +0530 selftest/timers: Remove duplicate header Remove duplicate header which is included twice. Signed-off-by: Sabyasachi Gupta Signed-off-by: Souptick Joarder Signed-off-by: Shuah Khan commit d11a7e376ad728a03c391bcf1b281b3e279cc574 Author: Sabyasachi Gupta Date: Wed Mar 6 21:59:04 2019 +0530 selftest/x86/mpx-dig.c: Remove duplicate header Remove duplicate header which is included twice. Signed-off-by: Sabyasachi Gupta Signed-off-by: Souptick Joarder Signed-off-by: Shuah Khan commit 3b8b11f96616c2e763ebcc093b778b309fc07a92 Author: Heiner Kallweit Date: Fri Apr 5 21:23:13 2019 +0200 net: phy: improve link partner capability detection genphy_read_status() so far checks phydev->supported, not the actual PHY capabilities. This can make a difference if the supported speeds have been limited by of_set_phy_supported() or phy_set_max_speed(). It seems that this issue only affects the link partner advertisements as displayed by ethtool. Also this patch wouldn't apply to older kernels because linkmode bitmaps have been introduced recently. Therefore net-next. Signed-off-by: Heiner Kallweit Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 699c1868a743f530081f429058616a2dd5d8a4b2 Author: Richard Guy Briggs Date: Mon Apr 8 12:50:57 2019 -0400 audit: purge unnecessary list_empty calls The original conditions that led to the use of list_empty() to optimize list_for_each_entry_rcu() in auditfilter.c and auditsc.c code have been removed without removing the list_empty() call, but this code example has been copied several times. Remove the unnecessary list_empty() calls. Please see upstream github issue https://github.com/linux-audit/audit-kernel/issues/112 Signed-off-by: Richard Guy Briggs Signed-off-by: Paul Moore commit 583b3845915de3b537560d4ab543cb3a9d8b5699 Author: Alex Shi Date: Mon Apr 8 17:18:27 2019 +0800 docs/zh_CN: correct a word in managment-style. "made up" used here means 'fictional' instead of 'consist of'. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit ad4b009f2d7b06b86d18c2aa3e427b9e96657b48 Author: Jonathan Neuschäfer Date: Sat Apr 6 12:15:27 2019 +0200 Documentation: kernel-docs: Remove entry for vfs.txt It's unnecessary to point to an external mirror of the Documentation directory. Jonathan Corbet writes in favor of removing this entry, instead of moving it under "Docs at the Linux Kernel tree": > We don't want to turn kernel-docs.rst into yet another out-of-date > index for the rest of Documentation/, and the removal of the external > URL takes away the only bit of additional information that this entry > offers. Signed-off-by: Jonathan Neuschäfer Signed-off-by: Jonathan Corbet commit 8bb309e67f5722b32aa28121c9ad95c10b6801be Merge: ed514fc5615d 6d7ee2edaa54 Author: David S. Miller Date: Mon Apr 8 14:31:25 2019 -0700 Merge tag 'mlx5-updates-2019-04-02' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux Saeed Mamameed says: ==================== mlx5-updates-2019-04-02 This series provides misc updates to mlx5 driver 1) Aya Levin (1): Handle event of power detection in the PCIE slot 2) Eli Britstein (6): Some TC VLAN related updates and fixes to the previous VLAN modify action support patchset. Offload TC e-switch rules with egress/ingress VLAN devices 3) Max Gurtovoy (1): Fix double mutex initialization in esiwtch.c 4) Tariq Toukan (3): Misc small updates A write memory barrier is sufficient in EQ ci update Obsolete param field holding a constant value Unify logic of MTU boundaries 5) Tonghao Zhang (4): Misc updates to en_tc.c Make the log friendly when decapsulation offload not supported Remove 'parse_attr' argument in parse_tc_fdb_actions() Deletes unnecessary setting of esw_attr->parse_attr Return -EOPNOTSUPP when attempting to offload an unsupported action ==================== Signed-off-by: David S. Miller commit 3b0a081db1f730373993c7a27936778402a3322c Author: Florian Westphal Date: Thu Apr 4 10:58:20 2019 +0200 netfilter: make two functions static They have no external callers anymore. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit 22c7652cdaa8cd33ce78bacceb4e826a3f795873 Author: Fernando Fernandez Mancera Date: Wed Mar 27 11:36:26 2019 +0100 netfilter: nft_osf: Add version option support Add version option support to the nftables "osf" expression. Signed-off-by: Fernando Fernandez Mancera Signed-off-by: Pablo Neira Ayuso commit 6978cdb129da13f46bcc4362639ba5ee8fc82921 Author: Florian Westphal Date: Wed Mar 27 09:22:29 2019 +0100 kselftests: extend nft_nat with inet family based nat hooks With older nft versions, this will cause: [..] PASS: ipv6 ping to ns1 was ip6 NATted to ns2 /dev/stdin:4:30-31: Error: syntax error, unexpected to, expecting newline or semicolon ip daddr 10.0.1.99 dnat ip to 10.0.2.99 ^^ SKIP: inet nat tests PASS: ip IP masquerade for ns2 [..] as there is currently no way to detect if nft will be able to parse the inet format. redirect and masquerade tests need to be skipped in this case for inet too because nft userspace has overzealous family check and rejects their use in the inet family. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit 63ce3940f3ab1d81e7c6d310dba52aed85db6aa1 Author: Florian Westphal Date: Wed Mar 27 09:22:28 2019 +0100 netfilter: nft_redir: add inet support allows to redirect both ipv4 and ipv6 with a single rule in an inet nat table. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit 071657d2c38c54bf047cf2280fc96e4a3e8a91f2 Author: Florian Westphal Date: Wed Mar 27 09:22:27 2019 +0100 netfilter: nft_masq: add inet support This allows use of a single masquerade rule in nat inet family to handle both ipv4 and ipv6. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit 4806e975729f99c7908d1688a143f1e16d464e6c Author: Florian Westphal Date: Wed Mar 27 09:22:26 2019 +0100 netfilter: replace NF_NAT_NEEDED with IS_ENABLED(CONFIG_NF_NAT) NF_NAT_NEEDED is true whenever nat support for either ipv4 or ipv6 is enabled. Now that the af-specific nat configuration switches have been removed, IS_ENABLED(CONFIG_NF_NAT) has the same effect. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit c1deb065cf3b5bcd483e3f03479f930edb151b99 Author: Florian Westphal Date: Wed Mar 27 09:22:25 2019 +0100 netfilter: nf_tables: merge route type into core very little code, so it really doesn't make sense to have extra modules or even a kconfig knob for this. Merge them and make functionality available unconditionally. The merge makes inet family route support trivial, so add it as well here. Before: text data bss dec hex filename 835 832 0 1667 683 nft_chain_route_ipv4.ko 870 832 0 1702 6a6 nft_chain_route_ipv6.ko 111568 2556 529 114653 1bfdd nf_tables.ko After: text data bss dec hex filename 113133 2556 529 116218 1c5fa nf_tables.ko Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit d164385ec572cbe3335a635ac308760e126d4ec0 Author: Florian Westphal Date: Wed Mar 27 09:22:24 2019 +0100 netfilter: nat: add inet family nat support We need minimal support from the nat core for this, as we do not want to register additional base hooks. When an inet hook is registered, interally register ipv4 and ipv6 hooks for them and unregister those when inet hooks are removed. Signed-off-by: Florian Westphal Signed-off-by: Pablo Neira Ayuso commit 01902f8c85bfde343a4c2b7428d18762442f3a25 Author: Li RongQing Date: Tue Mar 26 20:06:20 2019 +0800 netfilter: optimize nf_inet_addr_cmp optimize nf_inet_addr_cmp by 64bit xor computation similar to ipv6_addr_equal() Signed-off-by: Yuan Linsi Signed-off-by: Li RongQing Signed-off-by: Pablo Neira Ayuso commit 84c0d5e96f3ae20344fb3a79161eab18905dae56 Author: Jacky Hu Date: Tue Mar 26 18:31:21 2019 +0800 ipvs: allow tunneling with gue encapsulation ipip packets are blocked in some public cloud environments, this patch allows gue encapsulation with the tunneling method, which would make tunneling working in those environments. Signed-off-by: Jacky Hu Acked-by: Julian Anastasov Signed-off-by: Simon Horman Signed-off-by: Pablo Neira Ayuso commit 227e1e4d0d6c5ea006864c9730f1404843d6d84a Author: Pablo Neira Ayuso Date: Wed Mar 20 08:40:47 2019 +0100 netfilter: nf_flowtable: skip device lookup from interface index Use the output device from the route that we cache in the flowtable entry. Signed-off-by: Pablo Neira Ayuso commit b3dfee340a9b35ccde43f886b1dd59d634945b50 Author: YueHaibing Date: Tue Mar 19 22:40:21 2019 +0800 netfilter: nft_redir: Make nft_redir_dump static Fix sparse warning: net/netfilter/nft_redir.c:85:5: warning: symbol 'nft_redir_dump' was not declared. Should it be static? Signed-off-by: YueHaibing Signed-off-by: Pablo Neira Ayuso commit f7e840ee4dca312c78bd66de6f34fed84c305ede Author: Colin Ian King Date: Sun Mar 17 17:27:06 2019 +0000 netfilter: nf_tables: remove unused parameter ctx Function nf_tables_set_desc_parse parameter ctx is not being used so remove it as it is redundant. Signed-off-by: Colin Ian King Signed-off-by: Pablo Neira Ayuso commit 3b15d09f7e6db44065aaba5fd16dc7420035c5ad Author: Li RongQing Date: Thu Feb 28 13:13:26 2019 +0800 time: Introduce jiffies64_to_msecs() there is a similar helper in net/netfilter/nf_tables_api.c, this maybe become a common request someday, so move it to time.c Signed-off-by: Zhang Yu Signed-off-by: Li RongQing Acked-by: John Stultz Signed-off-by: Pablo Neira Ayuso commit bc236d6fb5617e990f692efe91ef2be9adf0c1a7 Author: Fabien Parent Date: Sat Mar 23 22:16:03 2019 +0100 pinctrl: mt65xx: add OF bindings for MT8516 Add binding documentation of pinctrl-mt65xx for MT8516 SoC. Signed-off-by: Fabien Parent Acked-by: Rob Herring Signed-off-by: Linus Walleij commit 24acfb71822566e4d469b4992a7b3b9f873e0083 Author: Thomas Gleixner Date: Wed Mar 13 17:55:47 2019 +0100 workqueue: Use normal rcu There is no need for sched_rcu. The undocumented reason why sched_rcu is used is to avoid a few explicit rcu_read_lock()/unlock() pairs by the fact that sched_rcu reader side critical sections are also protected by preempt or irq disabled regions. Replace rcu_read_lock_sched with rcu_read_lock and acquire the RCU lock where it is not yet explicit acquired. Replace local_irq_disable() with rcu_read_lock(). Update asserts. Signed-off-by: Thomas Gleixner [bigeasy: mangle changelog a little] Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Tejun Heo commit 6484775766e37049883d49e7ee9c1a174f0d0524 Author: Chris Wilson Date: Sun Apr 7 20:26:49 2019 +0100 drm/i915/selftests: Mark live_forcewake_ops as unreliable A couple of machines in the farm show quite frequent errors in the powerwells not being released. Either there is an external agent interferring with the powerwells, or the powerwell doesn't quite behave as we anticipate -- either way, the test is not reliable enough to be enabled by default in CI. It has served its immediate purpose in providing coverage as we made tweaks to forcewake, so keep it available for future testing. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110210 Signed-off-by: Chris Wilson Cc: Daniele Ceraolo Spurio Cc: Mika Kuoppala Reviewed-by: Daniele Ceraolo Spurio Link: https://patchwork.freedesktop.org/patch/msgid/20190407192649.14750-1-chris@chris-wilson.co.uk commit 9ae11e237d951f52a7c0e1a404dc7dd4ae1ee4fa Author: Guenter Roeck Date: Tue Mar 26 13:29:12 2019 -0700 platform/x86: intel_pmc_core: Mark local function static 0day reports: drivers/platform/x86/intel_pmc_core.c:833:5: sparse: symbol 'quirk_xtal_ignore' was not declared. Should it be static? Mark the function static since it is indeed only called locally. Cc: Rajneesh Bhardwaj Fixes: 238f9c11351f ("platform/x86: intel_pmc_core: Quirk to ignore XTAL shutdown") Signed-off-by: Guenter Roeck Signed-off-by: Andy Shevchenko commit e61985d0550df8c2078310202aaad9b41049c36c Author: Junxiao Chang Date: Mon Apr 8 17:40:22 2019 +0800 platform/x86: intel_pmc_ipc: adding error handling If punit or telemetry device initialization fails, pmc driver should unregister and return failure. This change is to fix a kernel panic when removing kernel module intel_pmc_ipc. Fixes: 48c1917088ba ("platform:x86: Add Intel telemetry platform device") Signed-off-by: Junxiao Chang Signed-off-by: Andy Shevchenko commit 7ae6ad6fbd83c74c37e70b7699248256eaa152a8 Author: José Roberto de Souza Date: Fri Apr 5 17:51:12 2019 -0700 drm/i915/psr: Do not enable PSR in interlaced mode for all GENs This interlaced mode restriction applies to all gens, not only to Haswell. Also while at it updating the debug message to. Cc: Dhinakaran Pandiyan Cc: Rodrigo Vivi Reviewed-by: Rodrigo Vivi Reviewed-by: Dhinakaran Pandiyan Signed-off-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190406005112.27205-4-jose.souza@intel.com commit 98c0d19ec72cd75ff85f9e84c52d11deb3c82032 Author: José Roberto de Souza Date: Fri Apr 5 17:51:11 2019 -0700 drm/i915/psr: Initialize PSR mutex even when sink is not reliable Even when driver is reloaded and hits this scenario the PSR mutex should be initialized, otherwise reading PSR debugfs status will execute mutex_lock() over a mutex that was not initialized. Cc: Dhinakaran Pandiyan Cc: Rodrigo Vivi Reviewed-by: Rodrigo Vivi Signed-off-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190406005112.27205-3-jose.souza@intel.com commit c0f6ffb2cd6a99ace18e7e195048381d6185cfcb Author: José Roberto de Souza Date: Fri Apr 5 17:51:10 2019 -0700 drm/i915: Remove unused VLV/CHV PSR registers PSR support for VLV and CHV was dropped in commit ce3508fd2a77 ("drm/i915/psr: Nuke PSR support for VLV and CHV") so no need to keep this registers around. Cc: Dhinakaran Pandiyan Cc: Rodrigo Vivi Reviewed-by: Rodrigo Vivi Signed-off-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190406005112.27205-2-jose.souza@intel.com commit 15b7dae0076befcce99cf843dca7af3c3bdf31e4 Author: José Roberto de Souza Date: Fri Apr 5 17:51:09 2019 -0700 drm/i915/psr: Update PSR2 SU corruption workaround comment Turn out it is not a DMC bug it is actually a HW one, so this workaround will be needed for current gens, lets update the comment and remove the FIXME. BSpec: 7723 Cc: Dhinakaran Pandiyan Cc: Rodrigo Vivi Reviewed-by: Rodrigo Vivi Signed-off-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190406005112.27205-1-jose.souza@intel.com commit 5a99ae0092fe24fd581fdb6b9c2b48f94f92cf32 Author: Keerthy Date: Wed Apr 3 10:27:42 2019 +0530 soc: ti: pm33xx: AM437X: Add rtc_only with ddr in self-refresh support During RTC-only suspend, power is lost to the wkup domain, so we need to save and restore the state of that domain. We also need to store some information within the RTC registers so that u-boot can do the right thing at powerup. The state is entered by getting the RTC to bring the pmic_power_en line low which will instruct the PMIC to disable the appropriate power rails after putting DDR into self-refresh mode. To bring pmic_power_en low, we need to get an ALARM2 event. Since we are running from SRAM at that point, it means calculating what the next second is (via ASM) and programming that into the RTC. This patch also adds support for wake up source detection. Signed-off-by: Keerthy Signed-off-by: Dave Gerlach Signed-off-by: Tony Lindgren commit 1c6c03545089ef13a5dd6ef85900765be64aea49 Author: Keerthy Date: Wed Apr 3 10:27:41 2019 +0530 soc: ti: pm33xx: Move the am33xx_push_sram_idle to the top Move the am33xx_push_sram_idle function to the top as a preparation for rtc+ddr mode as the function will be called by multiple functions currently present before it. No functional changes. Signed-off-by: Keerthy Signed-off-by: Tony Lindgren commit 44c22a2d12a5c04da56e746819a5d2cc4cf4a5d7 Author: Keerthy Date: Wed Apr 3 10:27:40 2019 +0530 ARM: OMAP2+: pm33xx: Add support for rtc+ddr in self refresh mode Add support for rtc+ddr in self refresh mode. Add addtional pm hooks for save/restore and rtc suspend/resume. Signed-off-by: Keerthy Signed-off-by: Tony Lindgren commit c601b12fb634e2d0c2669706b38dba98a3c3a832 Author: YueHaibing Date: Mon Mar 25 10:32:17 2019 -0700 drm/vmwgfx: Remove set but not used variable 'fb_offset, fb_depth' Fixes gcc '-Wunused-but-set-variable' warning: drivers/gpu/drm/vmwgfx/vmwgfx_fb.c: In function 'vmw_fb_init': drivers/gpu/drm/vmwgfx/vmwgfx_fb.c:645:29: warning: variable 'fb_offset' set but not used [-Wunused-but-set-variable] drivers/gpu/drm/vmwgfx/vmwgfx_fb.c:645:19: warning: variable 'fb_depth' set but not used [-Wunused-but-set-variable] They're not used any more, so can be removed. Signed-off-by: YueHaibing Reviewed-by: Deepak Rawat Signed-off-by: Deepak Rawat commit a5020f4f537ff1a0b73ea4eb78be185c34b261ae Author: Nathan Chancellor Date: Mon Mar 11 20:24:46 2019 -0700 drm/vmwgfx: Zero initialize handle in vmw_execbuf_process When building with -Wsometimes-uninitialized, Clang warns: drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c:3964:7: warning: variable 'handle' is used uninitialized whenever '?:' condition is false [-Wsometimes-uninitialized] It's not wrong; however, in practice, this is never an issue because the value of handle isn't used when user_fence_rep is NULL because vmw_execbuf_copy_fence_user returns immediately when that is the case. Just zero initialize this variable so that Clang no longer warns. Link: https://github.com/ClangBuiltLinux/linux/issues/397 Signed-off-by: Nathan Chancellor Reviewed-by: Nick Desaulniers Signed-off-by: Deepak Rawat commit 11c454196610ae25784ac19dc3f886a4328007e4 Author: Deepak Rawat Date: Thu Feb 14 16:15:39 2019 -0800 drm/vmwgfx: Use preprocessor macro for FIFO allocation Whenever FIFO allocation fails an error message is printed to dmesg. Since this is common operation a lot of similar messages are scattered everywhere. Use preprocessor macro to remove this cluttering. Signed-off-by: Deepak Rawat Reviewed-by: Thomas Hellstrom commit 680360a4d3f6958f18029264bdc277e130f43ab4 Author: Deepak Rawat Date: Wed Feb 13 13:20:42 2019 -0800 drm/vmwgfx: Fix formatting and spaces in vmwgfx_execbuf.c No functional change with this change, just fixing formatting and spaces. v2: Rebase. Signed-off-by: Deepak Rawat Reviewed-by: Thomas Hellstrom commit 4062dd3e6ad6b6fbc910406562a41c7110e5374d Author: Deepak Rawat Date: Wed Feb 13 15:39:51 2019 -0800 drm/vmwgfx: Use VMW_DEBUG_USER for device command buffer errors DRM_ERROR overwhelms dmesgi so use VMW_DEBUG_USER instead. Any malformed command should not really go to device so WARN_ONCE to spot this. Signed-off-by: Deepak Rawat Reviewed-by: Thomas Hellstrom commit b289840455ce99a12f202587a9dc1939c698d501 Author: Deepak Rawat Date: Mon Feb 11 14:59:57 2019 -0800 drm/vmwgfx: Clean up some debug messages in vmwgfx_execbuf.c Now that vmw_cmd_check prints debug message whenever a command verifier fails, some of debug statements are unnecessary. Also rearranged some debug print-out with this patch. Signed-off-by: Deepak Rawat Reviewed-by: Thomas Hellstrom commit 45399b112a72e8ab41684164e860765fb96be99d Author: Deepak Rawat Date: Mon Feb 11 12:57:38 2019 -0800 drm/vmwgfx: Print message when command verifier returns with error Whenever command verifier function returns with an error, print a debug message using VMW_DEBUG_USER. This will make sure failing commands can be easily tracked for debugging purpose. Signed-off-by: Deepak Rawat Reviewed-by: Thomas Hellstrom commit 5724f899ed8265386c2b1f067f836c35aebc7d6e Author: Deepak Rawat Date: Mon Feb 11 11:46:27 2019 -0800 drm/vmwgfx: Add a new define for vmwgfx user-space debugging Error messages or debugging message reported during user-space command submission should not be printed to dmesg by default. So add a new preprocessor define called VMW_DEBUG_USER which translates to DRM_DEBUG_DRIVER. v2: Use VMW_DEBUG_USER instead of using DRM_DEBUG_DRIVER directly. Signed-off-by: Deepak Rawat Reviewed-by: Thomas Hellstrom commit d01316d0469fdda754cdae0351b6e96c90698485 Author: Deepak Rawat Date: Fri Feb 8 15:50:40 2019 -0800 drm/vmwgfx: Use preprocessor macro for cmd struct Use preprocessor macro for repetitive device command struct format. v2: Name-space distinction for preprocessor macro. v3: Struct name as macro parameter and rebase. Signed-off-by: Deepak Rawat Reviewed-by: Thomas Hellstrom commit 6f74fd911d19187673edce52a28c391b2aa987e9 Author: Deepak Rawat Date: Fri Feb 8 12:53:57 2019 -0800 drm/vmwgfx: Use preprocessor macro to get valid context node Several command verifier function check if context node is present or not and if not present print an error and return. Use a preprocessor macro to print the message. v2: Name-space distinction for preprocessor macro Signed-off-by: Deepak Rawat Reviewed-by: Thomas Hellstrom commit 4efa6661154f8a33d9a91b8d71499b9077c4564b Author: Chengguang Xu Date: Fri Mar 1 10:14:06 2019 -0800 drm/vmwgfx: remove redundant unlikely annotation unlikely has already included in IS_ERR(), so just remove redundant unlikely annotation. Signed-off-by: Chengguang Xu Reviewed-by: Deepak Rawat Signed-off-by: Deepak Rawat commit b2130cca9c8db5073b71d832da2a6c8311a8f3bb Author: YueHaibing Date: Fri Mar 1 09:47:43 2019 -0800 drm/vmwgfx: Remove set but not used variable 'restart' Fixes gcc '-Wunused-but-set-variable' warning: drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c: In function 'vmw_cmdbuf_work_func': drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c:514:7: warning: variable 'restart' set but not used [-Wunused-but-set-variable] It not used any more after commit dc366364c4ef ("drm/vmwgfx: Fix multiple command buffer context use") Signed-off-by: YueHaibing Reviewed-by: Deepak Rawat Signed-off-by: Deepak Rawat Fixes: dc366364c4ef ("drm/vmwgfx: Fix multiple command buffer context use") commit a9f58c456e9dde6f272e7be4d6bed607fd7008aa Author: Thomas Hellstrom Date: Wed Feb 20 08:21:26 2019 +0100 drm/vmwgfx: Be more restrictive when dirtying resources Currently we flag resources as dirty (GPU contents not yet read back to the backing MOB) whenever they have been part of a command stream. Obviously many resources can't be dirty and others can only be dirty when written to by the GPU. That is when they are either bound to the context as render-targets, depth-stencil, copy / clear destinations and stream-output targets, or similarly when there are corresponding views into them. So mark resources dirty only in these special cases. Context- and cotable resources are always marked dirty when referenced. This is important for upcoming emulated coherent memory, since we can avoid issuing automatic readbacks to non-dirty resources when the CPU tries to access part of the backing MOB. Testing: Unigine Heaven with max GPU memory set to 256MB resulting in heavy resource thrashing. --- v2: Addressed review comments by Deepak Rawat. v3: Added some documentation Signed-off-by: Thomas Hellstrom Reviewed-by: Deepak Rawat commit 6256f7f7f217b2216fcb73929508325f4ee98237 Author: Keerthy Date: Wed Apr 3 10:27:39 2019 +0530 rtc: OMAP: Add support for rtc-only mode Prepare rtc driver for rtc-only with DDR in self-refresh mode. omap_rtc_power_off now should cater to two features: 1) RTC plus DDR in self-refresh is power a saving mode where in the entire system including the different voltage rails from PMIC are shutdown except the ones feeding on to RTC and DDR. DDR is kept in self-refresh hence the contents are preserved. RTC ALARM2 is connected to PMIC_EN line once we the ALARM2 is triggered we enter the mode with DDR in self-refresh and RTC Ticking. After a predetermined time an RTC ALARM1 triggers waking up the system[1]. The control goes to bootloader. The bootloader then checks RTC scratchpad registers to confirm it was an rtc_only wakeup and follows a different path, configure bare minimal clocks for ddr and then jumps to the resume address in another RTC scratchpad registers and transfers the control to Kernel. Kernel then restores the saved context. omap_rtc_power_off_program does the ALARM2 programming part. [1] http://www.ti.com/lit/ug/spruhl7h/spruhl7h.pdf Page 2884 2) Power-off: This is usual poweroff mode. omap_rtc_power_off calls the above omap_rtc_power_off_program function and in addition to that programs the OMAP_RTC_PMIC_REG for any external wake ups for PMIC like the pushbutton and shuts off the PMIC. Hence the split in omap_rtc_power_off. Signed-off-by: Keerthy Acked-by: Alexandre Belloni [tony@atomide.com: folded in a fix for compile warning] Signed-off-by: Tony Lindgren commit 9a4b33d4d22f3ff3fb1a24b8be5edae3be1c795d Author: Jiaxun Yang Date: Fri Mar 8 21:14:26 2019 +0800 platform/x86: thinkpad_acpi: Read EC information on newer models Newer ThinkPads have a totally different EC program information DMI table. And thermal subdriver can't work without correct EC version. Read from this entry if the old method failed to get EC information. Signed-off-by: Jiaxun Yang Signed-off-by: Andy Shevchenko commit f7db839fccf087664e5587966220821289b6a9cb Author: Jiaxun Yang Date: Thu Mar 7 17:37:16 2019 +0800 platform/x86: thinkpad_acpi: Disable Bluetooth for some machines Some AMD based ThinkPads have a firmware bug that calling "GBDC" will cause Bluetooth on Intel wireless cards blocked. Probe these models by DMI match and disable Bluetooth subdriver if specified Intel wireless card exist. Cc: stable # 4.14+ Signed-off-by: Jiaxun Yang Signed-off-by: Andy Shevchenko commit e79e74a51c26fbf6838bb5ee80205c96a9e3cd17 Author: Gabriel Lazar Date: Fri Mar 15 15:31:14 2019 +0200 platform/x86: touchscreen_dmi: Add info for Myria MY8307 2-in-1 Add touchscreen platform data for the Myrya MY8307 2-in-1 laptop. Signed-off-by: Gabriel Lazar Reviewed-by: Hans de Goede Signed-off-by: Andy Shevchenko commit e28f296ea155da36f710eb1f1173d8780fbac49d Author: Valdis Kl ē tnieks Date: Tue Mar 12 07:26:06 2019 -0400 platform/x86: dell-rbtn: Add missing #include Building with W=1 complains: CC [M] drivers/platform/x86/dell-rbtn.o drivers/platform/x86/dell-rbtn.c:345:5: warning: no previous prototype for 'dell_rbtn_notifier_register' [-Wmissing-prototypes] 345 | int dell_rbtn_notifier_register(struct notifier_block *nb) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/platform/x86/dell-rbtn.c:371:5: warning: no previous prototype for 'dell_rbtn_notifier_unregister' [-Wmissing-prototypes] 371 | int dell_rbtn_notifier_unregister(struct notifier_block *nb) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The real problem is a missing include. Add it to keep dell-rbtn.c and .h in sync. Fixes: b05ffc95f9ed ("dell-rbtn: Export notifier for other kernel modules") Signed-off-by: Valdis Kletnieks [andy: massaged commit message, added Fixes tag] Signed-off-by: Andy Shevchenko commit d80caf9516a52d5d39dcedd439427ae056ae8a91 Author: Tony Lindgren Date: Mon Apr 1 10:17:18 2019 -0700 ARM: OMAP2+: Drop mcspi platform data for omap4 We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren commit fbf3b4b9f4ba0bf7ac683b32b9ece09e62a7ddf3 Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 ARM: OMAP2+: Drop uart platform data for dra7 We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren commit 19326ef5d5e9e56f41cb129bb57ff08892e144d0 Author: Tony Lindgren Date: Thu Mar 21 09:38:36 2019 -0700 ARM: OMAP2+: Drop gpio platform data for dra7 We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren commit a688939a975e7a2a78efc92ea92f0ad2dfa67606 Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 ARM: OMAP2+: Drop i2c platform data for dra7 We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren commit ede0ac642213bf7743bd9287d88bc56bafe3639f Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 ARM: OMAP2+: Drop mmc platform data for dra7 We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren commit 2af5473e2bf027075184b549a4fe7e077aa32a5f Author: Tony Lindgren Date: Tue Mar 26 11:24:49 2019 -0700 ARM: OMAP2+: Drop uart platform data for omap5 We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren commit 3aa60e82f00e90549c076175e14742a9066c215e Author: Tony Lindgren Date: Tue Mar 26 11:22:53 2019 -0700 ARM: OMAP2+: Drop gpio platform data for omap5 We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren commit 655332d3ba43590567c15a7b94fd6480daf081c7 Author: Tony Lindgren Date: Tue Mar 26 11:21:25 2019 -0700 ARM: OMAP2+: Drop i2c platform data for omap5 We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren commit 514c7fc6647f08e34226f2d2ffc830934c6a8a8d Author: Tony Lindgren Date: Tue Mar 26 11:17:50 2019 -0700 ARM: OMAP2+: Drop mmc platform data for omap5 We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren commit 12a2a95421e46f7378a5564cb858ac231e029748 Author: Tony Lindgren Date: Tue Mar 26 10:59:14 2019 -0700 ARM: OMAP2+: Drop uart platform data for am33xx and am43xx We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren commit a071e407ffbe32f7afe77ce5ffdb926d8682f17c Author: Tony Lindgren Date: Tue Mar 26 10:54:40 2019 -0700 ARM: OMAP2+: Drop gpio platform data for am33xx and am43xx We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren commit cb682853c98ff0205ea40e961ef667d2fff5599a Author: Tony Lindgren Date: Tue Mar 26 10:51:24 2019 -0700 ARM: OMAP2+: Drop i2c platform data for am33xx and am43xx We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren commit 4e27f752ab8c06ed7983376741ac2b69474b4e5e Author: Tony Lindgren Date: Tue Mar 26 08:17:47 2019 -0700 ARM: OMAP2+: Drop mmc platform data for am330x and am43xx We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren commit 91abfb9847b25223c44b1324fd2a7706bd88f544 Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 ARM: OMAP2+: Drop uart platform data for omap4 We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren commit e1c59a3bf6db272ead316eee26d7233e374e39cd Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 ARM: OMAP2+: Drop gpio platform data for omap4 We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren commit f9d34da30346e8b7ac4a5019be55e369800079ee Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 ARM: OMAP2+: Drop i2c platform data for omap4 We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren commit 92168478680b28474c4627dd99d30f0fa9ac032e Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 ARM: OMAP2+: Drop mmc platform data for omap4 We can now drop legacy platform data one interconnect target module at a time in favor of the device tree based data that has been added earlier. Signed-off-by: Tony Lindgren commit 05165a63d6057669269b9c7856e874577382e238 Author: Christina Quast Date: Mon Apr 8 10:01:53 2019 -0700 ARM: dts: am335x: pocketbeagle: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit 682668df1f64efedccabdca0eee3028d9f04b29c Author: Christina Quast Date: Mon Apr 8 10:01:52 2019 -0700 ARM: dts: am335x: boneblack-wireless: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit 399c6b924a834b3c1f2db48614682ed1b50d512d Author: Christina Quast Date: Mon Apr 8 10:01:52 2019 -0700 ARM: dts: am335x: boneblack-common: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit 3b6150a6eb61f03df60ca6b835e7a5f671372a1a Author: Christina Quast Date: Mon Apr 8 10:01:51 2019 -0700 ARM: dts: am335x: bone-common: Replaced register offsets with defines The defines are taken from dt-bindings/pinctrl/am33xx.h Signed-off-by: Christina Quast Signed-off-by: Tony Lindgren commit f1ff9be7652b716c7eea67c9ca795027d911f148 Author: Christina Quast Date: Mon Apr 8 10:01:51 2019 -0700 ARM: dts: am33xx: Added AM33XX_PADCONF macro AM33XX_PADCONF takes three instead of two parameters, to make future changes to #pinctrl-cells easier. For old boards which are not mainlined, we left the AM33XX_IOPAD macro. Signed-off-by: Christina Quast Reviewed-by: Rob Herring Signed-off-by: Tony Lindgren commit ed514fc5615d7688b7c227a76863e98a92fb0d54 Author: Vishal Kulkarni Date: Mon Apr 8 18:03:49 2019 +0530 cxgb4: Don't return EAGAIN when TCAM is full. During hash filter programming, driver needs to return ENOSPC error intead of EAGAIN when TCAM is full. Signed-off-by: Vishal Kulkarni Signed-off-by: David S. Miller commit 7ebd1ea798a4932231b18499df136fb552f6f648 Author: Christina Quast Date: Mon Apr 8 10:01:50 2019 -0700 ARM: dts: am33xx: Added macros for numeric pinmux addresses The values are extraced from the "AM335x SitaraTM Processors Technical Reference Manual", Section 9.3.1 CONTROL_MODULE Registers, based on the file autogenerated by TI PinMux. Signed-off-by: Christina Quast Reviewed-by: Rob Herring Signed-off-by: Tony Lindgren commit fcf9782573eccb6a9a79140ff221898c02923fd0 Author: Alexandru Ardelean Date: Mon Apr 8 12:01:57 2019 +0300 net: xilinx: emaclite: add minimal ndo_do_ioctl hook This hook only implements a minimal set of ioctl hooks to be able to access MII regs by using phytool. When using this simple MAC controller, it's pretty difficult to do debugging of the PHY chip without checking MII regs. Signed-off-by: Alexandru Ardelean Reviewed-by: Radhey Shyam Pandey Signed-off-by: David S. Miller commit 9a80ba067a9c6435a142d0afd6c369091c0ff990 Author: Alexandru Ardelean Date: Mon Apr 8 12:01:36 2019 +0300 net: xilinx: emaclite: add minimal ethtool ops This set adds a minimal set of ethtool hooks to the driver, which provide a decent amount of link information via ethtool. With this change, running `ethtool ethX` in user-space provides all the neatly-formatted information about the link (what was negotiated, what is advertised, etc). Signed-off-by: Alexandru Ardelean Reviewed-by: Radhey Shyam Pandey Signed-off-by: David S. Miller commit b21e11c5c8311b8bf6923ff29d57f2a5f997e939 Author: Ming Lei Date: Tue Apr 2 10:26:44 2019 +0800 block: fix build warning in merging bvecs Commit f6970f83ef79 ("block: don't check if adjacent bvecs in one bio can be mergeable") changes bvec merge by only considering two bvecs from different bios. However, if the former bio doesn't inlcude any io bvec, then the following warning may be triggered: warning: ‘bvec.bv_offset’ may be used uninitialized in this function [-Wmaybe-uninitialized] In practice, it shouldn't be triggered. Fixes it by adding check on former bio, the check shouldn't add any cost given 'bio->bi_iter' can be hit in cache. Reported-by: Jens Axboe Fixes: f6970f83ef79 ("block: don't check if adjacent bvecs in one bio can be mergeable") Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit fd69c399c7d6262086b6b820757c6aeaa71feeba Author: Paolo Abeni Date: Mon Apr 8 10:15:59 2019 +0200 datagram: remove rendundant 'peeked' argument After commit a297569fe00a ("net/udp: do not touch skb->peeked unless really needed") the 'peeked' argument of __skb_try_recv_datagram() and friends is always equal to !!'flags & MSG_PEEK'. Since such argument is really a boolean info, and the callers have already 'flags & MSG_PEEK' handy, we can remove it and clean-up the code a bit. Signed-off-by: Paolo Abeni Acked-by: Willem de Bruijn Signed-off-by: David S. Miller commit 2b277dae0679c8177f161278dbad035688838d6e Author: chenglang Date: Sun Apr 7 13:23:37 2019 +0800 RDMA/hns: Support to create 1M srq queue In mhop 0 mode, 64*bt_num queues can be supported. In mhop 1 mode, 32K*bt_num queues can be supported. Config srqc_hop_num to 1 to support 1M SRQ queues. Signed-off-by: chenglang Signed-off-by: Jason Gunthorpe commit 636b8fe86bede8c9f797365986b8406ff2183f13 Author: Angelo Ruocco Date: Mon Apr 8 17:35:34 2019 +0200 block, bfq: fix some typos in comments Some of the comments in the bfq files had typos. This patch fixes them. Signed-off-by: Angelo Ruocco Signed-off-by: Paolo Valente Signed-off-by: Jens Axboe commit d0b5c01bb446f87e94265b172c00f4e89829116d Author: Shiraz Saleem Date: Thu Apr 4 10:22:47 2019 -0500 RDMA/umem: Use correct value for SG entries in sg_copy_to_buffer() With page combining, the assumption that number of SG entries in umem SGL equal to number of system pages in umem no longer holds. umem->sg_nents tracks the SG entries in umem SGL. Use it in sg_pcopy_to_buffer() as opposed to ib_umem_num_pages(umem). Fixes: d10bcf947a3e ("RDMA/umem: Combine contiguous PAGE_SIZE regions in SGEs") Reported-by: Jason Gunthorpe Signed-off-by: Shiraz Saleem Signed-off-by: Jason Gunthorpe commit e1c9a0dc2939e7d51926265123ee93b1caa5e93e Author: Lijun Ou Date: Mon Apr 1 19:13:35 2019 +0800 RDMA/hns: Dump detailed driver-specific CQ This patch adds support of resource track for hip08 and take dumping cq context state used for debugging as an example. More resources track supports for hns driver will be added in future. The output should be as follows. $ rdma res show cq dev hnseth0 -d dev hnseth0 cqe 1023 users 2 poll-ctx WORKQUEUE pid 0 comm [ib_core] drv_state 2 drv_ceq n 0 drv_cqn 0 drv_hopnum 1 drv_pi 0 drv_ci 0 drv_coalesce 0 drv_period 0 drv_cnt 0 Signed-off-by: Tao Tian Signed-off-by: Yangyang Li Signed-off-by: chenglang Signed-off-by: Lijun Ou Reviewed-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 68e326dea1dba935f6a5299a24343a58b33eed10 Author: Leon Romanovsky Date: Wed Apr 3 16:42:43 2019 +0300 RDMA: Handle SRQ allocations by IB/core Convert SRQ allocation from drivers to be in the IB/core Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit d345691471b426e540140a4cc431c69f80abfcb6 Author: Leon Romanovsky Date: Wed Apr 3 16:42:42 2019 +0300 RDMA: Handle AH allocations by IB/core Simplify drivers by ensuring lifetime of ib_ah object. The changes in .create_ah() go hand in hand with relevant update in .destroy_ah(). We will use this opportunity and convert .destroy_ah() to don't fail, as it was suggested a long time ago, because there is nothing to do in case of failure during destroy. Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit f6316032fd3243d3544603d94f237b976f90bb73 Author: Leon Romanovsky Date: Thu Mar 28 15:12:58 2019 +0200 RDMA/core: Support object allocation in atomic context AH objects are allocated in atomic context and those allocations should be done with GFP_ATOMIC. Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit feec576a6af299143e40dcfb34b6c5604e4ff397 Author: Jason Gunthorpe Date: Mon Apr 1 17:08:24 2019 -0300 IB: When attrs.udata/ufile is available use that instead of uobject The ucontext and ufile should not be accessed via the uobject, all these cases have an attrs so use that instead. Signed-off-by: Jason Gunthorpe commit e79c9c60622a59a814c54a1ee70298afe544441a Author: Jason Gunthorpe Date: Mon Apr 1 17:08:23 2019 -0300 IB/mlx5: Remove references to uboject->context These should all go through udata now. Add mlx5_udata_to_mdev to convert a udata into the struct mlx5_ib_dev as these call sites require. Signed-off-by: Jason Gunthorpe commit 9e886b39a73ad0219b3f2ff574c135d770118a6b Author: Leon Romanovsky Date: Tue Apr 2 21:50:34 2019 +0300 RDMA/nldev: Return device protocol Add new RDMA_NLDEV_ATTR_DEV_PROTOCOL attribute to give ability for UDEV rules create IB device stable names based on link type protocol. The assumption that devices like mlx4 with duality in their link type under one IB device struct won't be allowed in the future. Signed-off-by: Leon Romanovsky Reviewed-by: Parav Pandit Signed-off-by: Jason Gunthorpe commit c87e65cfb97c7f325132a68288ed76ba7bdcd2c6 Author: Leon Romanovsky Date: Mon Mar 11 14:40:31 2019 +0200 RDMA/cm: Move debug counters to be under relevant IB device The sysfs layout is created by CM incorrectly presented RDMA devices with InfiniBand link layer. Layout of such devices represents device tree of connections. By moving CM statistics to be under relevant port of IB device, we will fix the following issues: * Symlink name - It used device name instead of specific identifier. * Target location - It was supposed to point to PCI-ID/infiniband_cm/ instead of PCI-ID/infiniband/ * Target name - It created extra device file under already existing device folder, e.g. mlx5_0/mlx5_0 * Crash during boot with RDMA persistent naming patches. sysfs: cannot create duplicate filename '/class/infiniband_cm/mlx5_0' CPU: 29 PID: 433 Comm: modprobe Not tainted 5.0.0-rc5+ #178 Call Trace: dump_stack+0xcc/0x180 sysfs_warn_dup.cold.3+0x17/0x2d sysfs_do_create_link_sd.isra.2+0xd0/0xf0 device_add+0x7cb/0x1450 device_create_groups_vargs+0x1ae/0x220 device_create+0x93/0xc0 cm_add_one+0x38f/0xf60 [ib_cm] add_client_context+0x167/0x210 [ib_core] enable_device_and_get+0x230/0x3f0 [ib_core] ib_register_device+0x823/0xbf0 [ib_core] __mlx5_ib_add+0x45/0x150 [mlx5_ib] mlx5_ib_add+0x1b3/0x5e0 [mlx5_ib] mlx5_add_device+0x130/0x3a0 [mlx5_core] mlx5_register_interface+0x1a9/0x270 [mlx5_core] do_one_initcall+0x14f/0x5de do_init_module+0x247/0x7c0 load_module+0x4c2f/0x60d0 entry_SYSCALL_64_after_hwframe+0x49/0xbe After this change: [leonro@server ~]$ ls -al /sys/class/infiniband/ibp0s12f0/ports/1/ drwxr-xr-x 2 root root 0 Mar 11 11:17 cm_rx_duplicates drwxr-xr-x 2 root root 0 Mar 11 11:17 cm_rx_msgs drwxr-xr-x 2 root root 0 Mar 11 11:17 cm_tx_msgs drwxr-xr-x 2 root root 0 Mar 11 11:17 cm_tx_retries Fixes: 110cf374a809 ("infiniband: make cm_device use a struct device and not a kobject.") Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 4d2e11d42fe4117c24e79a012904cf0fa7fdcfe3 Author: Colin Ian King Date: Thu Apr 4 11:04:39 2019 +0100 opa_vnic: fix check on record->event, incorrect operator used The check on record->event is always true because the wrong operator is being used, used && instead of || Addresses-Coverity: ("Constant expression result") Fixes: fae7a699a925 ("opa_vnic: Convert vport_idr to XArray") Signed-off-by: Colin Ian King Acked-by: Dennis Dalessandro Reviewed-by: Mukesh Ojha Signed-off-by: Jason Gunthorpe commit d10bcf947a3ea240351a8182d71e4aa9c8ddba56 Author: Shiraz Saleem Date: Tue Apr 2 14:52:52 2019 -0500 RDMA/umem: Combine contiguous PAGE_SIZE regions in SGEs Combine contiguous regions of PAGE_SIZE pages into single scatter list entry while building the scatter table for a umem. This minimizes the number of the entries in the scatter list and reduces the DMA mapping overhead, particularly with the IOMMU. Set default max_seg_size in core for IB devices to 2G and do not combine if we exceed this limit. Also, purge npages in struct ib_umem as we now DMA map the umem SGL with sg_nents and npage computation is not needed. Drivers should now be using ib_umem_num_pages(), so fix the last stragglers. Move npages tracking to ib_umem_odp as ODP drivers still need it. Suggested-by: Jason Gunthorpe Reviewed-by: Michael J. Ruhl Reviewed-by: Ira Weiny Acked-by: Adit Ranadive Signed-off-by: Shiraz Saleem Tested-by: Gal Pressman Tested-by: Selvin Xavier Signed-off-by: Jason Gunthorpe commit de220cc21967fd745d91fbd3fc23a13372730db8 Author: Chris Wilson Date: Mon Apr 8 10:17:03 2019 +0100 drm/i915: Consolidate the timeline->barrier The timeline is strictly ordered, so by inserting the timeline->barrier request into the timeline->last_request it naturally provides the same barrier. Consolidate the pair of barriers into one as they serve the same purpose. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190408091728.20207-4-chris@chris-wilson.co.uk commit da23379f1508dba4a02feb1ed4f53122fb4ecf64 Author: Chris Wilson Date: Mon Apr 8 10:17:02 2019 +0100 drm/i915: Use static allocation for i915_globals_park() In order to avoid the malloc inside i915_globals_park() occurring underneath a lock connected to the shrinker (thus causing circular lockdeps warnings), move the rcu_worker to a global. <4> [39.085073] ====================================================== <4> [39.085273] WARNING: possible circular locking dependency detected <4> [39.085552] 5.1.0-rc3-CI-Trybot_4088+ #1 Tainted: G U <4> [39.085752] ------------------------------------------------------ <4> [39.085949] kswapd0/32 is trying to acquire lock: <4> [39.086121] 00000000004b5f91 (wakeref#3){+.+.}, at: intel_engine_pm_put+0x1b/0x40 [i915] <4> [39.086493] but task is already holding lock: <4> [39.086682] 00000000dd009a9a (fs_reclaim){+.+.}, at: __fs_reclaim_acquire+0x0/0x30 <4> [39.086910] which lock already depends on the new lock. <4> [39.087139] the existing dependency chain (in reverse order) is: <4> [39.087356] -> #2 (fs_reclaim){+.+.}: <4> [39.087604] fs_reclaim_acquire.part.24+0x24/0x30 <4> [39.087785] kmem_cache_alloc_trace+0x2a/0x290 <4> [39.087998] i915_globals_park+0x22/0xa0 [i915] <4> [39.088478] idle_work_handler+0x1df/0x220 [i915] <4> [39.089016] process_one_work+0x245/0x610 <4> [39.089447] worker_thread+0x37/0x380 <4> [39.089956] kthread+0x119/0x130 <4> [39.090374] ret_from_fork+0x3a/0x50 <4> [39.090868] -> #1 (wakeref#4){+.+.}: <4> [39.091569] __mutex_lock+0x8c/0x960 <4> [39.092054] atomic_dec_and_mutex_lock+0x33/0x50 <4> [39.092521] intel_gt_pm_put+0x1b/0x40 [i915] <4> [39.093047] intel_engine_park+0xeb/0x1d0 [i915] <4> [39.093514] __intel_wakeref_put_once+0x10/0x30 [i915] <4> [39.094062] i915_request_retire+0x477/0xaf0 [i915] <4> [39.094547] ring_retire_requests+0x86/0x160 [i915] <4> [39.095110] i915_retire_requests+0x58/0xc0 [i915] <4> [39.095587] i915_gem_wait_for_idle.part.22+0xb2/0xf0 [i915] <4> [39.096142] switch_to_kernel_context_sync+0x2a/0x70 [i915] <4> [39.096633] i915_gem_init+0x59c/0x9c0 [i915] <4> [39.097174] i915_driver_load+0xd96/0x1880 [i915] <4> [39.097640] i915_pci_probe+0x29/0xa0 [i915] <4> [39.098145] pci_device_probe+0xa1/0x120 <4> [39.098607] really_probe+0xf3/0x3e0 <4> [39.099031] driver_probe_device+0x10a/0x120 <4> [39.099599] device_driver_attach+0x4b/0x50 <4> [39.100033] __driver_attach+0x97/0x130 <4> [39.100525] bus_for_each_dev+0x74/0xc0 <4> [39.100954] bus_add_driver+0x13f/0x210 <4> [39.101441] driver_register+0x56/0xe0 <4> [39.101891] do_one_initcall+0x58/0x2e0 <4> [39.102319] do_init_module+0x56/0x1ea <4> [39.102805] load_module+0x2701/0x29e0 <4> [39.103231] __se_sys_finit_module+0xd3/0xf0 <4> [39.103727] do_syscall_64+0x55/0x190 <4> [39.104153] entry_SYSCALL_64_after_hwframe+0x49/0xbe <4> [39.104736] -> #0 (wakeref#3){+.+.}: <4> [39.105437] lock_acquire+0xa6/0x1c0 <4> [39.105923] __mutex_lock+0x8c/0x960 <4> [39.106345] atomic_dec_and_mutex_lock+0x33/0x50 <4> [39.106897] intel_engine_pm_put+0x1b/0x40 [i915] <4> [39.107375] i915_request_retire+0x477/0xaf0 [i915] <4> [39.107930] ring_retire_requests+0x86/0x160 [i915] <4> [39.108412] i915_retire_requests+0x58/0xc0 [i915] <4> [39.108934] i915_gem_shrink+0xd8/0x5b0 [i915] <4> [39.109431] i915_gem_shrinker_scan+0x59/0x130 [i915] <4> [39.109884] do_shrink_slab+0x131/0x3e0 <4> [39.110380] shrink_slab+0x228/0x2c0 <4> [39.110810] shrink_node+0x177/0x460 <4> [39.111317] balance_pgdat+0x239/0x580 <4> [39.111743] kswapd+0x186/0x570 <4> [39.112221] kthread+0x119/0x130 <4> [39.112641] ret_from_fork+0x3a/0x50 Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190408091728.20207-3-chris@chris-wilson.co.uk commit bfd04533138427846ab711c68320c71c6275a0a3 Author: Chris Wilson Date: Mon Apr 8 10:17:01 2019 +0100 drm/i915/guc: Replace WARN with a DRM_ERROR Replace the WARN with a simple if() + error message to squech the sparse warning that entire wait_for() macro was being stringified: drivers/gpu/drm/i915/intel_guc_submission.c:658:9: error: too long token expansion Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190408091728.20207-2-chris@chris-wilson.co.uk commit e43e2657fe77a37b13643e2469670ecdb0ba5e10 Author: Christoph Hellwig Date: Fri Dec 21 14:32:02 2018 +0100 x86/dma: Remove the x86_dma_fallback_dev hack Now that we removed support for the NULL device argument in the DMA API, there is no need to cater for that in the x86 code. Signed-off-by: Christoph Hellwig commit d7e02a931235de0779d44c6f8d211df0eca304b8 Author: Christoph Hellwig Date: Wed Mar 13 18:45:21 2019 +0100 dma-mapping: remove leftover NULL device support Most dma_map_ops implementations already had some issues with a NULL device, or did simply crash if one was fed to them. Now that we have cleaned up all the obvious offenders we can stop to pretend we support this mode. Signed-off-by: Christoph Hellwig commit 5ab6a91a1cacd827382897a80425df8a2d27744a Author: Christoph Hellwig Date: Fri Dec 21 14:56:38 2018 +0100 arm: use a dummy struct device for ISA DMA use of the DMA API This gets rid of the last NULL dev argument passed to the DMA API. Signed-off-by: Christoph Hellwig commit 02c486f483434286bbc775d160fa901fdb4f9ff6 Author: Christoph Hellwig Date: Fri Dec 21 14:44:02 2018 +0100 pxa3xx-gcu: pass struct device to dma_mmap_coherent Just like we do for all other DMA operations. Signed-off-by: Christoph Hellwig Acked-by: Bartlomiej Zolnierkiewicz commit 9f989e8c06feb7b52a8080d3fc0a463dae548302 Author: Christoph Hellwig Date: Fri Dec 21 14:42:27 2018 +0100 gbefb: switch to managed version of the DMA allocator gbefb uses managed resources, so it should do the same for DMA allocations. Signed-off-by: Christoph Hellwig Acked-by: Bartlomiej Zolnierkiewicz commit 12a7b035cacc8e0c59698213db6c5643540b82f4 Author: Christoph Hellwig Date: Wed Jan 23 09:05:27 2019 +0100 da8xx-fb: pass struct device to DMA API functions The DMA API generally relies on a struct device to work properly, and only barely works without one for legacy reasons. Pass the easily available struct device from the platform_device to remedy this. Signed-off-by: Christoph Hellwig Acked-by: Bartlomiej Zolnierkiewicz commit 4217efa353c6754005bf5198001a79fed751fe76 Author: Christoph Hellwig Date: Fri Dec 21 14:07:11 2018 +0100 parport_ip32: pass struct device to DMA API functions The DMA API generally relies on a struct device to work properly, and only barely works without one for legacy reasons. Pass the easily available struct device from the platform_device to remedy this. Signed-off-by: Christoph Hellwig commit c13edf8106f6ad1edb9b7e011351fbaf83ceb992 Author: Clément Leger Date: Wed Mar 27 14:06:27 2019 +0100 dma: select GENERIC_ALLOCATOR for DMA_REMAP When DMA_REMAP is enabled, code in remap.c needs generic allocator. It currently worked since few architectures uses it (arm64, csky) and they both select GENERIC_ALLOCATOR. Select it when using DMA_REMAP to have correct dependencies. Signed-off-by: Clement Leger Signed-off-by: Christoph Hellwig commit 6d09e003db3dd71587705eb5ac6ad0a5578705f8 Author: John Stultz Date: Thu Apr 4 01:16:28 2019 -0700 arm64: dts: hi3660: Fixup unofficial dma-min-chan to dma-channel-mask A undocumented and unimplemented binding got into the hi3660 dtsi, and this switches that binding to the now documented one. Cc: Tanglei Han Cc: Zhuangluan Su Cc: Ryan Grachek Cc: Manivannan Sadhasivam Cc: Wei Xu Cc: Rob Herring Cc: Mark Rutland Cc: linux-arm-kernel@lists.infradead.org Cc: devicetree@vger.kernel.org Signed-off-by: John Stultz Signed-off-by: Wei Xu commit c9726326006535d95556b19aae524db6f8f8cc5e Author: Youlin Wang Date: Thu Apr 4 01:16:27 2019 -0700 arm64: dts: hi3660: Add hisi asp dma device Add asp-dma device to hi3660 dts Cc: Tanglei Han Cc: Zhuangluan Su Cc: Ryan Grachek Cc: Manivannan Sadhasivam Cc: Wei Xu Cc: Rob Herring Cc: Mark Rutland Cc: linux-arm-kernel@lists.infradead.org Cc: devicetree@vger.kernel.org Acked-by: Manivannan Sadhasivam Signed-off-by: Youlin Wang Signed-off-by: Tanglei Han Signed-off-by: John Stultz Signed-off-by: Wei Xu commit 792cea3f48add8ed13febab52a616cb52c3c7c7a Author: John Stultz Date: Thu Apr 4 01:16:26 2019 -0700 arm64: dts: hi3660: Add dma to uart nodes Try to add DMA support to the uart nodes following the assignments made in the dts from the victoria vendor kernel here: https://consumer.huawei.com/en/opensource/detail/?siteCode=worldwide&keywords=p10&fileType=openSourceSoftware&pageSize=10&curPage=1 Cc: Tanglei Han Cc: Zhuangluan Su Cc: Ryan Grachek Cc: Manivannan Sadhasivam Cc: Wei Xu Cc: Rob Herring Cc: Mark Rutland Cc: linux-arm-kernel@lists.infradead.org Cc: devicetree@vger.kernel.org Acked-by: Manivannan Sadhasivam Signed-off-by: John Stultz Signed-off-by: Wei Xu commit 1761101048a3144bf141359b15a6132c3d3cc001 Author: Manivannan Sadhasivam Date: Thu Feb 28 21:15:11 2019 +0530 arm64: dts: hisilicon: hikey970: Add SD and WiFi support Add SD and WiFi support for HiKey970 board based on HI3670 SoC. Due to the absence of the PMIC driver, fixed regulators are sourced to make the driver working. Signed-off-by: Manivannan Sadhasivam Signed-off-by: Wei Xu commit 570274cdba34c01fb1e84db3648cb22b258cc394 Author: Manivannan Sadhasivam Date: Thu Feb 28 21:15:10 2019 +0530 arm64: dts: hisilicon: hi3670: Add MMC controller support Add MMC controller support for HiSilicon HI3670 SoC reusing the HI3660 Designware MMC driver. There are 2 DWMMC controllers present in this SoC: 1. DWMMC1 is used for SD card (SD) 2. DWMMC2 is used for WiFi (SDIO) Signed-off-by: Manivannan Sadhasivam Signed-off-by: Wei Xu commit 8aa576a8ee1ba1f76785ed3cd12de20121971854 Author: Manivannan Sadhasivam Date: Thu Feb 28 21:15:09 2019 +0530 dt-bindings: mmc: Add HI3670 MMC controller binding HI3670 SoC is architecturally same as the HI3660 SoC. Hence, the same K3 specific designware driver is reused for HI3670 SoC and the binding is documented with fallback approach for compatible property. Signed-off-by: Manivannan Sadhasivam Reviewed-by: Rob Herring Signed-off-by: Wei Xu commit 757a4b2913eb46df23af9e151e2cdd326d4542b5 Author: Manivannan Sadhasivam Date: Fri Feb 15 11:19:55 2019 +0530 arm64: dts: hisilicon: hi3670: Add reset controller support Add reset controller support for HiSilicon HI3670 SoC. Signed-off-by: Manivannan Sadhasivam Signed-off-by: Wei Xu commit 43bd3a95c98e1a86b8b55d97f745c224ecff02b9 Author: Miroslav Benes Date: Thu Apr 4 20:44:11 2019 +0200 kbuild: use -flive-patching when CONFIG_LIVEPATCH is enabled GCC 9 introduces a new option, -flive-patching. It disables certain optimizations which could make a compilation unsafe for later live patching of the running kernel. The option is used only if CONFIG_LIVEPATCH is enabled and $(CC) supports it. Performance impact of the option was measured on three different Intel machines - two bigger NUMA boxes and one smaller UMA box. Kernel intensive (IO, scheduling, networking) benchmarks were selected, plus a set of HPC workloads from NAS Parallel Benchmark. The tests were done on upstream kernel 5.0-rc8 with openSUSE Leap 15.0 userspace. The majority of the tests is unaffected. The only significant exception is the scheduler section which suffers 1-3% degradation. Evaluated-by: Giovanni Gherdovich Signed-off-by: Miroslav Benes Acked-by: Josh Poimboeuf Signed-off-by: Petr Mladek commit 258bbef06ce962dbe1864c379aa90d84ff57f819 Author: Manivannan Sadhasivam Date: Fri Feb 15 11:19:54 2019 +0530 dt-bindings: reset: Add HI3670 reset controller binding HI3670 SoC is architecturally same as the HI3660 SoC. Hence, the same driver is reused for HI3670 SoC and the binding is documented here which uses the fallback approach. Signed-off-by: Manivannan Sadhasivam Acked-by: Philipp Zabel Reviewed-by: Rob Herring Signed-off-by: Wei Xu commit d0b0a81acbd809228b57fb27a89028ecd0fc542a Author: Hisao Tanabe Date: Mon Apr 8 00:27:42 2019 +0900 block: remove unused variable 'def' The 'def' local variable became unused after commit f382fb0bcef4 ("block: remove legacy IO schedulers"), let's remove it. Reviewed-by: Christoph Hellwig Signed-off-by: Hisao Tanabe Signed-off-by: Jens Axboe commit 9bc00750f5b6a33764918be4f80745d936c95f1a Author: Dongli Zhang Date: Tue Mar 12 09:31:56 2019 +0800 virtio_blk: replace 0 by HCTX_TYPE_DEFAULT to index blk_mq_tag_set->map Use HCTX_TYPE_DEFAULT instead of 0 to avoid hardcoding. Signed-off-by: Dongli Zhang Signed-off-by: Jens Axboe commit 4779a066e71dee0784e09eeebb57dcd56cb7c7f6 Merge: 12f2639038ef b0d2569d8276 Author: Linus Walleij Date: Mon Apr 8 15:48:11 2019 +0200 Merge tag 'gpio-v5.2-updates-for-linus-part1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into devel gpio: updates for v5.2 (part 1) - batch of improvements for the vf610 driver which shrink the code and make use of resource managed helpers - support for a new variant of pca953x - make gpio-mockup buildable on systems without IOMEM - make gpio-74x164 more flexible by using generic device properties plus minor improvements - new driver for Mellanox BlueField - fixes for wakeup GPIOs in gpio-omap - use devm_platform_ioremap_resource() in gpio-mxc - a couple improvements of kernel docs for ACPI code - don't WARN() in gpiod_put() on optional GPIOs commit 4f5fbd78a7b40bab538ae0d316363530da751e42 Author: Yafang Shao Date: Tue Mar 26 20:13:11 2019 +0800 rcu: validate arguments for rcu tracepoints When CONFIG_RCU_TRACE is not set, all these tracepoints are defined as do-nothing macro. We'd better make those inline functions that take proper arguments. As RCU_TRACE() is defined as do-nothing marco as well when CONFIG_RCU_TRACE is not set, so we can clean it up. Link: http://lkml.kernel.org/r/1553602391-11926-4-git-send-email-laoar.shao@gmail.com Reviewed-by: Paul E. McKenney Signed-off-by: Yafang Shao Signed-off-by: Steven Rostedt (VMware) commit 2a09b5de235a6b5f76193a2ed46546a2944f98bf Author: Yafang Shao Date: Tue Mar 26 20:13:10 2019 +0800 sched/fair: do not expose some tracepoints to user if CONFIG_SCHEDSTATS is not set The tracepoints trace_sched_stat_{iowait, blocked, wait, sleep} should be not exposed to user if CONFIG_SCHEDSTATS is not set. Link: http://lkml.kernel.org/r/1553602391-11926-3-git-send-email-laoar.shao@gmail.com Acked-by: Peter Zijlstra (Intel) Signed-off-by: Yafang Shao Signed-off-by: Steven Rostedt (VMware) commit 163363455b42a1cf833742177149d1352dfe673e Author: Yafang Shao Date: Tue Mar 26 20:13:09 2019 +0800 tracing: introduce TRACE_EVENT_NOP() Sometimes we want to define a tracepoint as a do-nothing function. So I introduce TRACE_EVENT_NOP, DECLARE_EVENT_CLASS_NOP and DEFINE_EVENT_NOP for this kind of usage. Link: http://lkml.kernel.org/r/1553602391-11926-2-git-send-email-laoar.shao@gmail.com Signed-off-by: Yafang Shao Signed-off-by: Steven Rostedt (VMware) commit a8d655792a32312f6715ac789b860fee50168106 Author: Tom Zanussi Date: Sun Mar 31 18:48:25 2019 -0500 tracing: Add error_log to README Add brief blurb about error_log to the 'Important files' section. Link: http://lkml.kernel.org/r/c81e60f9aded495081231a32d2d1023c4d043a7a.1554072478.git.tom.zanussi@linux.intel.com Acked-by: Masami Hiramatsu Acked-by: Namhyung Kim Signed-off-by: Tom Zanussi Signed-off-by: Steven Rostedt (VMware) commit 26a944917989d57c0dddec284b3088fa31127717 Author: Tom Zanussi Date: Sun Mar 31 18:48:24 2019 -0500 tracing: Add tracing/error_log Documentation Move most of the hist trigger extended error documentation to ftrace.rst and expand on it to fully document tracing/error_log. Link: http://lkml.kernel.org/r/c5d53c8f643ef6844d6ad8d0200c116936730b01.1554072478.git.tom.zanussi@linux.intel.com Acked-by: Masami Hiramatsu Acked-by: Namhyung Kim Signed-off-by: Tom Zanussi Signed-off-by: Steven Rostedt (VMware) commit 4eab1cc461a6e820eddf88ac63eed98793c96a7c Author: Tom Zanussi Date: Sun Mar 31 18:48:23 2019 -0500 selftests/ftrace: Add tracing/error_log testcase Add a testcase verifying basic tracing/error_log functionality. Link: http://lkml.kernel.org/r/bf1c0d47a24672df945331462682d96296d1ab28.1554072478.git.tom.zanussi@linux.intel.com Acked-by: Masami Hiramatsu Acked-by: Namhyung Kim Signed-off-by: Tom Zanussi Signed-off-by: Steven Rostedt (VMware) commit 0ae8dde9d7b62b40fb16b5d3feef467604b9a771 Author: Tom Zanussi Date: Sun Mar 31 18:48:22 2019 -0500 selftests/ftrace: Remove trigger-extended-error-support testcase Error handling has been moved to the common tracing/error_log, so this test is no longer valid. Link: http://lkml.kernel.org/r/876a98b21018814cbf46f0a3605ae0906c51d53c.1554072478.git.tom.zanussi@linux.intel.com Acked-by: Masami Hiramatsu Acked-by: Namhyung Kim Signed-off-by: Tom Zanussi Signed-off-by: Steven Rostedt (VMware) commit c5e4114fee0b6582b6e86804ffef95bf82bb5f78 Author: Tom Zanussi Date: Sun Mar 31 18:48:21 2019 -0500 selftests/ftrace: Move kprobe/uprobe check_error() to test.d/functions The k/uprobe_sytax_errors test case defines a check_error() function used to run a command and check the position of the caret in the output. This would be useful for other ftrace facilities too, so move it to test.d/functions for use by anyone. In the process, rename it to ftrace_errlog_check() and parametrize it for general use. Link: http://lkml.kernel.org/r/9f88080a06f1755811f69081926afe7e5cb53178.1554072478.git.tom.zanussi@linux.intel.com Acked-by: Masami Hiramatsu Signed-off-by: Tom Zanussi Signed-off-by: Steven Rostedt (VMware) commit 8ab4483eb660b37251847e1e2a1f787b8d568e81 Author: Masami Hiramatsu Date: Sun Mar 31 18:48:20 2019 -0500 selftests/ftrace: Add error_log testcase for probe errors Add error_log testcase for error logs on probe events. This tests most of error cases and checks the error position is correct. Link: http://lkml.kernel.org/r/63d695b74e0965988fa54ffa12beeb2c3475250d.1554072478.git.tom.zanussi@linux.intel.com Acked-by: Namhyung Kim Signed-off-by: Masami Hiramatsu [tom.zanussi@linux.intel.com: changed >& redirection to 2>] Signed-off-by: Tom Zanussi Signed-off-by: Steven Rostedt (VMware) commit 2f754e771b1a6feba670782e82c45555984ac43b Author: Steven Rostedt (VMware) Date: Mon Apr 1 22:52:21 2019 -0400 tracing: Have the error logs show up in the proper instances As each instance has their own error_log file, it makes more sense that the instances show the errors of their own instead of all error_logs having the same data. Make it that the errors show up in the instance error_log file that the error happens in. If no instance trace_array is available, then NULL can be passed in which will create the error in the top level instance (the one at the top of the tracefs directory). Reviewed-by: Masami Hiramatsu Reviewed-by: Tom Zanussi Tested-by: Tom Zanussi Signed-off-by: Steven Rostedt (VMware) commit d0cd871ba0d613e09366e4b6a17946dfcf51db7c Author: Steven Rostedt (VMware) Date: Mon Apr 1 22:30:22 2019 -0400 tracing: Have histogram code pass around trace_array for error handling Have the trace_array that associates the trace instance of the histogram passed around to functions so that error handling can display the error message in the proper instance. Reviewed-by: Masami Hiramatsu Reviewed-by: Tom Zanussi Tested-by: Tom Zanussi Signed-off-by: Steven Rostedt (VMware) commit 1e144d73f7295f766568c357448a11eb12868e29 Author: Steven Rostedt (VMware) Date: Mon Apr 1 16:07:48 2019 -0400 tracing: Add trace_array parameter to create_event_filter() Pass in the trace_array that represents the instance the filter being changed is in to create_event_filter(). This will allow for error messages that happen when writing to the filter can be displayed in the proper instance "error_log" file. Note, for calls to create_filter() (that was also modified to support create_event_filter()), that changes filters that do not exist in a instance (for perf for example), NULL may be passed in, which means that there will not be any message to log for that filter. Reviewed-by: Masami Hiramatsu Reviewed-by: Tom Zanussi Tested-by: Tom Zanussi Signed-off-by: Steven Rostedt (VMware) commit 12f2639038ef420fe796171ffb810b30d1ac0619 Author: Uwe Kleine-König Date: Fri Apr 5 21:46:12 2019 +0200 tracing: stop making gpio tracing configurable gpio tracing was made configurable in 4.4-rc1 (commit ddd70280bf0e ("tracing: gpio: Add Kconfig option for enabling/disabling trace events")). Since then it is the only event type that can be compiled conditionally. Given that there is only little overhead I don't understand the reasoning and I was annoyed more than once that gpio events were not available without recompiling. So drop the Kconfig symbol and make gpio events available unconditionally. Signed-off-by: Uwe Kleine-König Signed-off-by: Linus Walleij commit b6838275be1f41b89f634014f420e551597e6315 Author: Alexandre Belloni Date: Sun Apr 7 23:16:46 2019 +0200 rtc: tegra: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Acked-by: Thierry Reding Signed-off-by: Alexandre Belloni commit 34ea0ac3e2e6c876d425c557e9f828327bab63ce Author: Alexandre Belloni Date: Sun Apr 7 23:16:45 2019 +0200 rtc: tegra: switch to rtc_time64_to_tm/rtc_tm_to_time64 Call the 64bit versions of rtc_tm time conversion now that the range is enforced by the core. Acked-by: Thierry Reding Signed-off-by: Alexandre Belloni commit e1089802467dcfc76c0cf39910200b418faa4d72 Author: Alexandre Belloni Date: Sun Apr 7 23:16:44 2019 +0200 rtc: tegra: set range The Tegra 20 RTC is a 32bit seconds counter (with an unused millisecond counter). Acked-by: Thierry Reding Signed-off-by: Alexandre Belloni commit f70fbc15bae2c89ffd72f2693d462b12fe05d847 Author: Geert Uytterhoeven Date: Wed Mar 20 11:39:27 2019 +0100 gpio: pca953x: Configure wake-up path when wake-up is enabled If a device is part of the wake-up path, it should indicate this by setting its power.wakeup_path field. This allows the genpd core code to keep the device enabled during system suspend when needed. As regulators powering devices are not handled by genpd, the driver handles these itself, and thus must skip regulator control when the device is part of the wake-up path. Signed-off-by: Geert Uytterhoeven Reviewed-by: Ulf Hansson Signed-off-by: Linus Walleij commit 279ffafaf39d60b3c37cb3f0f7de310d0dd834ad Author: Sandeep Singh Date: Thu Apr 4 13:16:26 2019 +0000 pinctrl: Added IRQF_SHARED flag for amd-pinctrl driver Some of the AMD reference boards used single GPIO line for multiple devices. So added IRQF_SHARED flag in amd pinctrl driver. Signed-off-by: Sandeep Singh Signed-off-by: Shyam Sundar S K cc: Nehal Shah Signed-off-by: Linus Walleij commit 7d624621b704d3cfd0c6735956f5d96b24508165 Author: Alexandre Belloni Date: Sun Apr 7 23:10:27 2019 +0200 rtc: coh901331: convert to SPDX identifier Use SPDX-License-Identifier instead of the custom license line. Reviewed-by: Linus Walleij Signed-off-by: Alexandre Belloni commit febad7946072dd4f0bb28f3e1a7acb3817ca29d6 Author: Alexandre Belloni Date: Sun Apr 7 23:10:26 2019 +0200 rtc: coh901331: use .set_time Use .set_time instead of the deprecated .set_mmss. Acked-by: Linus Walleij Signed-off-by: Alexandre Belloni commit 9cf2f9b5adcb8e76e55d58266c908e30ceacf837 Author: Alexandre Belloni Date: Sun Apr 7 23:10:25 2019 +0200 rtc: coh901331: switch to rtc_time64_to_tm/rtc_tm_to_time64 Call the 64bit versions of rtc_tm time conversion now that the range is enforced by the core. Acked-by: Linus Walleij Signed-off-by: Alexandre Belloni commit 06cfd668ec67b2431034ea30782acdebad1440ef Author: Alexandre Belloni Date: Sun Apr 7 23:10:24 2019 +0200 rtc: coh901331: set range The COH 901 331 is a 32bit seconds counter. Acked-by: Linus Walleij Signed-off-by: Alexandre Belloni commit e3a7691321aee378083b7bc2d7964e49bb940e9d Author: Alexandre Belloni Date: Sun Apr 7 23:05:41 2019 +0200 rtc: ds1672: switch debug message to %ptR Use %ptR to simplify debug message. Signed-off-by: Alexandre Belloni commit 69468320a94d55ec219eaf629d6774d753a9eb99 Author: Alexandre Belloni Date: Sun Apr 7 23:05:40 2019 +0200 rtc: ds1672: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Signed-off-by: Alexandre Belloni commit 219219d9b89b4be4cb58c1503393cd715d48933a Author: Alexandre Belloni Date: Sun Apr 7 23:05:39 2019 +0200 rtc: ds1672: use .set_time Use .set_time instead of the deprecated .set_mmss. Signed-off-by: Alexandre Belloni commit 520d6516736e1c3f5b7178b2eba13c0b9e172f37 Author: Alexandre Belloni Date: Sun Apr 7 23:05:38 2019 +0200 rtc: ds1672: use rtc_time64_to_tm Use the 64bit version of rtc_time_to_tm.rtc_time_to_tm. Signed-off-by: Alexandre Belloni commit 7a5670c754b81a241c970b383a9af3e1a9fa35c0 Author: Alexandre Belloni Date: Sun Apr 7 23:05:37 2019 +0200 rtc: ds1672: remove useless indirection ds1672_get_datetime and ds1672_set_mmss are only used after casting dev to an i2c_client. Remove that useless indirection. Signed-off-by: Alexandre Belloni commit c346065582f80f56005a679c9675ddad77e3e823 Author: Alexandre Belloni Date: Sun Apr 7 23:05:36 2019 +0200 rtc: ds1672: remove sysfs debug interface Remove the control sysfs file as it is not documented, read only and was only used to provide the oscillator state. Signed-off-by: Alexandre Belloni commit 10e3efc16569a126456c413274b90b00e60454ca Author: Alexandre Belloni Date: Sun Apr 7 23:05:35 2019 +0200 rtc: ds1672: move oscillator handling to .read_time Return -EINVAL when trying to read an invalid time instead of just probe because this is a useful information for userspace. Signed-off-by: Alexandre Belloni commit d1fbe695d889959e2430379cc989cd399fa9e253 Author: Alexandre Belloni Date: Sun Apr 7 23:05:34 2019 +0200 rtc: ds1672: set range The ds1672 is a 32bit seconds counter. Also remove erroneous comment claiming that epoch is set to 2000, it was not. Signed-off-by: Alexandre Belloni commit cb74e9775871f8c82a1297cf76209f10ab5bbe3d Author: Sunil Dutt Date: Wed Feb 20 16:18:07 2019 +0530 cfg80211/nl80211: Offload OWE processing to user space in AP mode This interface allows the host driver to offload OWE processing to user space. This intends to support OWE (Opportunistic Wireless Encryption) AKM by the drivers that implement SME but rely on the user space for the cryptographic/OWE processing in AP mode. Such drivers are not capable of processing/deriving the DH IE. A new NL80211 command - NL80211_CMD_UPDATE_OWE_INFO is introduced to send the request/event between the host driver and user space. Driver shall provide the OWE info (MAC address and DH IE) of the peer to user space for cryptographic processing of the DH IE through the event. Accordingly, the user space shall update the OWE info/DH IE to the driver. Following is the sequence in AP mode for OWE authentication. Driver passes the OWE info obtained from the peer in the Association Request to the user space through the event cfg80211_update_owe_info_event. User space shall process the OWE info received and generate new OWE info. This OWE info is passed to the driver through NL80211_CMD_UPDATE_OWE_INFO request. Driver eventually uses this OWE info to send the Association Response to the peer. This OWE info in the command interface carries the IEs that include PMKID of the peer if the PMKSA is still valid or an updated DH IE for generating a new PMKSA with the peer. Signed-off-by: Liangwei Dong Signed-off-by: Sunil Dutt Signed-off-by: Srinivas Dasari [remove policy initialization - no longer exists] Signed-off-by: Johannes Berg commit 6f61a82507c95f146c4e529d28ef7e5ac93242c9 Author: Randy Dunlap Date: Sun Apr 7 12:12:10 2019 -0700 MAINTAINERS: mark lima mailing list as moderated Note that the lima mailing list is moderated. Signed-off-by: Randy Dunlap Cc: Qiang Yu Cc: dri-devel@lists.freedesktop.org Cc: lima@lists.freedesktop.org Signed-off-by: Qiang Yu Link: https://patchwork.freedesktop.org/patch/msgid/9138d8e8-5390-0650-9bc3-050b869e978c@infradead.org Reviewed-by: Neil Armstrong commit 99fa4bc26d74e49e3d7d70f29a106943f48924ea Author: Imre Deak Date: Fri Apr 5 18:36:57 2019 +0300 drm/i915/icl: Simplify release of encoder power refs We can unconditionally release the power references during encoder disabling. The references for each port used by the encoder are guaranteed to be enabled at this point. Cc: Vandita Kulkarni Signed-off-by: Imre Deak Reviewed-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190405153657.20921-2-imre.deak@intel.com commit 3a52fb7e7953f0b13df8c05d0d74b56a66888f30 Author: Imre Deak Date: Sun Apr 7 15:46:55 2019 +0300 drm/i915: Get power refs in encoder->get_power_domains() Push getting the reference for the encoders' power domains into the encoder get_power_domains() hook instead of doing this from the caller. This way the encoder can store away the corresponding wakerefs. This fixes the DSI encoder disabling, which didn't release these power references it acquired during HW state readout. Note that longtime ownership for the corresponding wakerefs can be thus acquired / released in two ways. Nevertheless there is always only one owner for them: After HW readout (booting/system resume): - encoder->get_power_domains() acquires - encoder->disable*() releases After a modeset (calling intel_atomic_commit()): - encoder->enable*() acquires - encoder->disable*() releases * can be any of the encoder enable/disable hooks. v2: - Check that the DSI io_wakerefs are unset both during encoder HW readout and enabling. (Chris) Fixes: 0e6e0be4c9523 ("drm/i915: Markup paired operations on display power domains") Cc: Vandita Kulkarni Cc: Chris Wilson Signed-off-by: Imre Deak Reviewed-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190407124655.31536-1-imre.deak@intel.com commit 5490c77d596ad220022637b3e277edb50bb3ae35 Author: Christina Quast Date: Wed Mar 13 15:20:40 2019 +0100 dt-bindings: pinctrl: imx7d: Fix PAD_CTL_DSE_X* In the iMX7d datasheet, the PAD_CTL_DSE_X* values are different from the documentation. Changes since v2: * Changed patch title to 'dt-bindings: pinctrl: imx7d:' Signed-off-by: Christina Quast Reviewed-by: Rob Herring Acked-by: Dong Aisheng Signed-off-by: Linus Walleij commit ad4d1216f2c55439e9703de1515812c018984dca Author: Masahiro Yamada Date: Sat Mar 30 21:04:18 2019 +0900 memory: squash drivers/memory/Makefile.asm-offsets drivers/memory/Makefile.asm-offsets is small enough, and included from a single place. Squash it into drivers/memory/Makefile. Signed-off-by: Masahiro Yamada commit ab60633c7136c300f15a390f3469d7c4be15a055 Author: Narayanraddi Masti Date: Thu Feb 7 12:16:05 2019 -0800 mac80211: Add support for NL80211_STA_INFO_AIRTIME_LINK_METRIC Add support for mesh airtime link metric attribute NL80211_STA_INFO_AIRTIME_LINK_METRIC. Signed-off-by: Narayanraddi Masti Signed-off-by: Johannes Berg commit a4a11b7934a5350fa825fee35b4bbbbe581a313a Author: Alexandre Belloni Date: Wed Apr 3 22:52:19 2019 +0200 ARM: dts: at91-vinco: use SPDX-License-Identifier External E-Mail The X11 license text [1] is explicitly for the X Consortium and has a couple of extra clauses. The MIT license text [2] is actually what the current DT files claim. [1] https://spdx.org/licenses/X11.html [2] https://spdx.org/licenses/MIT.html Signed-off-by: Alexandre Belloni Acked-by: Gregory CLEMENT Acked-by: Nicolas Ferre Signed-off-by: Ludovic Desroches commit 43216d05eda5792cb43651c5c4a5689dd70efbc3 Author: Alexandre Belloni Date: Wed Apr 3 22:52:18 2019 +0200 ARM: dts: atmel boards: use SPDX-License-Identifier External E-Mail The X11 license text [1] is explicitly for the X Consortium and has a couple of extra clauses. The MIT license text [2] is actually what the current DT files claim. [1] https://spdx.org/licenses/X11.html [2] https://spdx.org/licenses/MIT.html Signed-off-by: Alexandre Belloni Acked-by: Nicolas Ferre Signed-off-by: Ludovic Desroches commit 7015533ee0e964b061656ccd9ac476cbd2b23b26 Author: Alexandre Belloni Date: Wed Apr 3 22:52:17 2019 +0200 ARM: dts: at91sam9xe: use SPDX-License-Identifier External E-Mail The X11 license text [1] is explicitly for the X Consortium and has a couple of extra clauses. The MIT license text [2] is actually what the current DT files claim. [1] https://spdx.org/licenses/X11.html [2] https://spdx.org/licenses/MIT.html Signed-off-by: Alexandre Belloni Acked-by: Nicolas Ferre Signed-off-by: Ludovic Desroches commit c848f3ba0029414da9147310afa727c50d6005cd Author: Alexandre Belloni Date: Wed Apr 3 22:52:16 2019 +0200 ARM: dts: sama5d{2,4}: use SPDX-License-Identifier External E-Mail The X11 license text [1] is explicitly for the X Consortium and has a couple of extra clauses. The MIT license text [2] is actually what the current DT files claim. [1] https://spdx.org/licenses/X11.html [2] https://spdx.org/licenses/MIT.html Signed-off-by: Alexandre Belloni Acked-by: Nicolas Ferre Signed-off-by: Ludovic Desroches commit 1e1b11b6a1111cd9e8af1fd6ccda270a9fa3eacf Author: vamsi krishna Date: Fri Feb 1 18:34:51 2019 +0530 nl80211/cfg80211: Specify band specific min RSSI thresholds with sched scan This commit adds the support to specify the RSSI thresholds per band for each match set. This enhances the current behavior which specifies a single rssi_threshold across all the bands by introducing the rssi_threshold_per_band. These per band rssi thresholds are referred through NL80211_BAND_* (enum nl80211_band) variables as attribute types. Such attributes/values per each band are nested through NL80211_ATTR_SCHED_SCAN_MIN_RSSI. These band specific rssi thresholds shall take precedence over the current rssi_thold per match set. Drivers indicate this support through %NL80211_EXT_FEATURE_SCHED_SCAN_BAND_SPECIFIC_RSSI_THOLD. These per band rssi attributes/values does not specify "default RSSI filter" as done by NL80211_SCHED_SCAN_MATCH_ATTR_RSSI to stay backward compatible. That said, these per band rssi values have to be specified for the corresponding matchset. Signed-off-by: vamsi krishna Signed-off-by: Srinivas Dasari [rebase on refactoring, add policy] Signed-off-by: Johannes Berg commit e05487d45b2328e668d46669d568f92a2c3de354 Author: Anson Huang Date: Mon Apr 1 05:07:49 2019 +0000 pinctrl: freescale: use devm_platform_ioremap_resource() to simplify code Use the new helper devm_platform_ioremap_resource() which wraps the platform_get_resource() and devm_ioremap_resource() together, to simplify the code. Signed-off-by: Anson Huang Reviewed-by: Mukesh Ojha Signed-off-by: Linus Walleij commit d39f3b4f33d245a08a7296a04bab80bd52466f58 Author: Johannes Berg Date: Mon Apr 8 13:40:47 2019 +0200 nl80211: reindent some sched scan code The sched scan code here is really deep - avoid one level of indentation by short-circuiting the loop instead of putting everything into the if block. Signed-off-by: Johannes Berg commit 01e3b958efe85a26d9b1b77be3a0a1491bb4cb36 Author: Will Deacon Date: Fri Feb 22 17:25:29 2019 +0000 arch: Remove dummy mmiowb() definitions from arch code Now that no driver code is using mmiowb() directly, remove the dummy definitions remaining in architectures that don't make use of asm-generic/io.h, as well as the definition in asm-generic/io.h itself. Acked-by: Linus Torvalds Signed-off-by: Will Deacon commit 96670b2fd0254a2c51cc2bb4b4f3057a6b6f5d29 Author: Will Deacon Date: Fri Feb 22 17:21:02 2019 +0000 net/ethernet/silan/sc92031: Remove stale comment about mmiowb() mmiowb() is no more. It has ceased to be. It is an ex-barrier. So remove all references to it from comments. Acked-by: Linus Torvalds Signed-off-by: Will Deacon commit 1b8546d7e23872c77d0ef6a4c311ac7037380c24 Author: Will Deacon Date: Fri Feb 22 17:19:22 2019 +0000 i40iw: Redefine i40iw_mmiowb() to do nothing mmiowb() is now implicit in spin_unlock(), so there's no reason to call it from driver code. Redefine i40iw_mmiowb() to do nothing instead. Acked-by: Linus Torvalds Signed-off-by: Will Deacon commit 161861a4c8279f136e5419deb95c58176af83e48 Author: Will Deacon Date: Fri Feb 22 17:18:02 2019 +0000 scsi/qla1280: Remove stale comment about mmiowb() All mmiowb() invocations have been removed, so there's no need to keep banging on about it. Acked-by: Linus Torvalds Signed-off-by: Will Deacon commit c7df94c64ca20d13ba0b9442e355f80a1f5c3e43 Author: Dan Carpenter Date: Thu Mar 28 17:40:22 2019 +0300 pinctrl: imx: remove an unnecessary NULL check The address of "ipctl->pin_regs[pin_id]" can't be NULL. It's the offset into an array in the middle of a struct. This patch removes the check. Signed-off-by: Dan Carpenter Acked-by: Dong Aisheng Signed-off-by: Linus Walleij commit a71a81e7975843504170e69fe52605478f3c8e04 Author: Geert Uytterhoeven Date: Fri Mar 29 09:42:29 2019 +0100 gpio: of: Optimize quirk checks Simple string comparisons are cheaper than DT lookups, as the latter involve taking a spinlock and traversing properties. Hence optimize quirk checks by postponing DT lookups after string comparisons. Signed-off-by: Geert Uytterhoeven Reviewed-by: Mukesh Ojha Signed-off-by: Linus Walleij commit 26af34079f1d8299932303cfd2b376b9cf55a35c Merge: 27157af66324 79a3aaa7b82e Author: Linus Walleij Date: Mon Apr 8 13:03:09 2019 +0200 Merge tag 'v5.1-rc3' into devel Linux 5.1-rc3 commit fb24ea52f78e0d595852e09e3a55697c8f442189 Author: Will Deacon Date: Fri Feb 22 17:14:59 2019 +0000 drivers: Remove explicit invocations of mmiowb() mmiowb() is now implied by spin_unlock() on architectures that require it, so there is no reason to call it from driver code. This patch was generated using coccinelle: @mmiowb@ @@ - mmiowb(); and invoked as: $ for d in drivers include/linux/qed sound; do \ spatch --include-headers --sp-file mmiowb.cocci --dir $d --in-place; done NOTE: mmiowb() has only ever guaranteed ordering in conjunction with spin_unlock(). However, pairing each mmiowb() removal in this patch with the corresponding call to spin_unlock() is not at all trivial, so there is a small chance that this change may regress any drivers incorrectly relying on mmiowb() to order MMIO writes between CPUs using lock-free synchronisation. If you've ended up bisecting to this commit, you can reintroduce the mmiowb() calls using wmb() instead, which should restore the old behaviour on all architectures other than some esoteric ia64 systems. Acked-by: Linus Torvalds Signed-off-by: Will Deacon commit 949b8c72768e3a7c69d270962b8a142ee8deec1b Author: Will Deacon Date: Fri Feb 22 16:56:31 2019 +0000 drivers: Remove useless trailing comments from mmiowb() invocations In preparation for using coccinelle to remove all mmiowb() instances from drivers, remove all trailing comments since they won't be picked up by spatch later on and will end up being preserved in the code. Acked-by: Linus Torvalds Signed-off-by: Will Deacon commit 915530396c788d75c40f200edd67b56ac363c728 Author: Will Deacon Date: Fri Feb 22 16:17:54 2019 +0000 Documentation: Kill all references to mmiowb() The guarantees provided by mmiowb() are now provided implicitly by spin_unlock(), so remove all references to this most confusing of barriers from our Documentation. Good riddance. Acked-by: Linus Torvalds Signed-off-by: Will Deacon commit b012980d1c6e27f5c4adf0c19defca8658956820 Author: Will Deacon Date: Fri Feb 22 14:45:42 2019 +0000 riscv/mmiowb: Hook up mmwiob() implementation to asm-generic code In a bid to kill off explicit mmiowb() usage in driver code, hook up the asm-generic mmiowb() tracking code for riscv, so that an mmiowb() is automatically issued from spin_unlock() if an I/O write was performed in the critical section. Reviewed-by: Palmer Dabbelt Acked-by: Linus Torvalds Signed-off-by: Will Deacon commit 420af1554790a95e6813f56f63b6d2361614082b Author: Will Deacon Date: Fri Feb 22 14:45:42 2019 +0000 powerpc/mmiowb: Hook up mmwiob() implementation to asm-generic code In a bid to kill off explicit mmiowb() usage in driver code, hook up the asm-generic mmiowb() tracking code but provide a definition of arch_mmiowb_state() so that the tracking data can remain in the paca as it does at present This replaces the existing (flawed) implementation. Acked-by: Michael Ellerman Acked-by: Linus Torvalds Signed-off-by: Will Deacon commit 49ca6462fc9e0f5a67cd96eeddd844efc3fb33b9 Author: Will Deacon Date: Fri Feb 22 13:37:21 2019 +0000 ia64/mmiowb: Add unconditional mmiowb() to arch_spin_unlock() The mmiowb() macro is horribly difficult to use and drivers will continue to work most of the time if they omit a call when it is required. Rather than rely on driver authors getting this right, push mmiowb() into arch_spin_unlock() for ia64. If this is deemed to be a performance issue, a subsequent optimisation could make use of ARCH_HAS_MMIOWB to elide the barrier in cases where no I/O writes were performed inside the critical section. Acked-by: Linus Torvalds Signed-off-by: Will Deacon commit 346e91ee090b07da8d15e36bc3169ddea6968713 Author: Will Deacon Date: Fri Feb 22 13:37:21 2019 +0000 mips/mmiowb: Add unconditional mmiowb() to arch_spin_unlock() The mmiowb() macro is horribly difficult to use and drivers will continue to work most of the time if they omit a call when it is required. Rather than rely on driver authors getting this right, push mmiowb() into arch_spin_unlock() for mips. If this is deemed to be a performance issue, a subsequent optimisation could make use of ARCH_HAS_MMIOWB to elide the barrier in cases where no I/O writes were performed inside the critical section. Acked-by: Paul Burton Acked-by: Linus Torvalds Signed-off-by: Will Deacon commit e9e8543fecd2e1ca53616ba82fbd55a25cd2ab8a Author: Will Deacon Date: Fri Feb 22 13:37:21 2019 +0000 sh/mmiowb: Add unconditional mmiowb() to arch_spin_unlock() The mmiowb() macro is horribly difficult to use and drivers will continue to work most of the time if they omit a call when it is required. Rather than rely on driver authors getting this right, push mmiowb() into arch_spin_unlock() for sh. If this is deemed to be a performance issue, a subsequent optimisation could make use of ARCH_HAS_MMIOWB to elide the barrier in cases where no I/O writes were performed inside the critical section. Cc: Yoshinori Sato Cc: Rich Felker Acked-by: Linus Torvalds Signed-off-by: Will Deacon commit 0f43ca692dcb55108ea9a59c11a1a0e359dba367 Author: Will Deacon Date: Fri Feb 22 13:03:18 2019 +0000 m68k/io: Remove useless definition of mmiowb() m68k includes asm-generic/io.h, which provides a dummy definition of mmiowb() if one isn't already provided by the architecture. Remove the useless definition. Acked-by: Geert Uytterhoeven Reviewed-by: Geert Uytterhoeven Acked-by: Linus Torvalds Signed-off-by: Will Deacon commit 335b5c638bfd72b959b22c80f65dea3f614b6cca Author: Will Deacon Date: Fri Feb 22 13:07:37 2019 +0000 nds32/io: Remove useless definition of mmiowb() mmiowb() only makes sense for SMP platforms, so remove it entirely for nds32. Acked-by: Linus Torvalds Signed-off-by: Will Deacon commit 08f1f3a72f4cea136686585b81a251baa3539f12 Author: Will Deacon Date: Fri Feb 22 13:03:18 2019 +0000 x86/io: Remove useless definition of mmiowb() x86 maps mmiowb() to barrier(), but this is superfluous because a compiler barrier is already implied by spin_unlock(). Since x86 also includes asm-generic/io.h in its asm/io.h file, remove the definition entirely and pick up the dummy definition from core code. Acked-by: Linus Torvalds Reviewed-by: Thomas Gleixner Signed-off-by: Will Deacon commit d51575621f0fd6c6dd62f7b29a0309425681b813 Author: Will Deacon Date: Fri Feb 22 13:03:18 2019 +0000 arm64/io: Remove useless definition of mmiowb() arm64 includes asm-generic/io.h, which provides a dummy definition of mmiowb() if one isn't already provided by the architecture. Remove the useless definition. Acked-by: Linus Torvalds Signed-off-by: Will Deacon commit 7fdae81dd415b14b601952163f7c09c67e9f4e81 Author: Will Deacon Date: Fri Feb 22 13:03:18 2019 +0000 ARM/io: Remove useless definition of mmiowb() ARM includes asm-generic/io.h, which provides a dummy definition of mmiowb() if one isn't already provided by the architecture. Remove the useless definition. Acked-by: Linus Torvalds Signed-off-by: Will Deacon commit 60ca1e5a200cd294a12907fa36dece4241db4ab8 Author: Will Deacon Date: Fri Feb 22 12:59:59 2019 +0000 mmiowb: Hook up mmiowb helpers to spinlocks and generic I/O accessors Removing explicit calls to mmiowb() from driver code means that we must now call into the generic mmiowb_spin_{lock,unlock}() functions from the core spinlock code. In order to elide barriers following critical sections without any I/O writes, we also hook into the asm-generic I/O routines. Acked-by: Linus Torvalds Signed-off-by: Will Deacon commit fdcd06a8ab775cbe716ff893372bed580e4c8a1c Author: Will Deacon Date: Fri Feb 22 12:49:41 2019 +0000 arch: Use asm-generic header for asm/mmiowb.h Hook up asm-generic/mmiowb.h to Kbuild for all architectures so that we can subsequently include asm/mmiowb.h from core code. Cc: Masahiro Yamada Cc: Arnd Bergmann Acked-by: Linus Torvalds Signed-off-by: Will Deacon commit d1be6a28b13ce6d1bc42bf9b6a9454c65839225b Author: Will Deacon Date: Fri Feb 22 12:48:44 2019 +0000 asm-generic/mmiowb: Add generic implementation of mmiowb() tracking In preparation for removing all explicit mmiowb() calls from driver code, implement a tracking system in asm-generic based loosely on the PowerPC implementation. This allows architectures with a non-empty mmiowb() definition to have the barrier automatically inserted in spin_unlock() following a critical section containing an I/O write. Acked-by: Linus Torvalds Signed-off-by: Will Deacon commit 4614bbdee35706ed77c130d23f12e21479b670ff Author: Will Deacon Date: Mon Feb 11 15:24:56 2019 +0000 docs/memory-barriers.txt: Rewrite "KERNEL I/O BARRIER EFFECTS" section The "KERNEL I/O BARRIER EFFECTS" section of memory-barriers.txt is vague, x86-centric, out-of-date, incomplete and demonstrably incorrect in places. This is largely because I/O ordering is a horrible can of worms, but also because the document has stagnated as our understanding has evolved. Attempt to address some of that, by rewriting the section based on recent(-ish) discussions with Arnd, BenH and others. Maybe one day we'll find a way to formalise this stuff, but for now let's at least try to make the English easier to understand. Cc: Benjamin Herrenschmidt Cc: Michael Ellerman Cc: Arnd Bergmann Cc: Peter Zijlstra Cc: Andrea Parri Cc: Palmer Dabbelt Cc: Daniel Lustig Cc: David Howells Cc: Alan Stern Cc: "Maciej W. Rozycki" Cc: Mikulas Patocka Acked-by: Linus Torvalds Reviewed-by: Paul E. McKenney Signed-off-by: Will Deacon commit 7973b799dbea1770742851487a98276a24c961a5 Author: Rafael J. Wysocki Date: Thu Apr 4 00:08:18 2019 +0200 admin-guide: pm: intel_epb: Add SPDX license tag and copyright notice Add an SPDX license tag and a copyright notice to the intel_epb.rst file under Documentation/admin-quide/pm. Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar commit fc1860d6b17fa00d16df5e608eed0526e11ccad1 Author: Rafael J. Wysocki Date: Thu Apr 4 00:06:15 2019 +0200 Documentation: PM: Unify copyright notices Unify copyright notices in the .rst files under Documentation/driver-api/pm and Documentation/admin-quide/pm. Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar commit fc7db767b16cf2af3be9e87a4b88e206d0e1a8b2 Author: Rafael J. Wysocki Date: Thu Apr 4 00:04:43 2019 +0200 Documentation: PM: Add SPDX license tags to multiple files Add SPDX license tags to .rst files under Documentation/driver-api/pm and Documentation/admin-quide/pm. Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar commit 1120b0f9850cb01fffcb5f4379a69c8ab7a6658f Author: Rafael J. Wysocki Date: Thu Apr 4 00:03:30 2019 +0200 cpufreq: intel_pstate: Documentation: Add references sections Add separate refereces sections to the cpufreq.rst and intel_pstate.rst documents under admin-quide/pm and list the references to external documentation in there. Update the ACPI specification URL while at it. Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar commit fbc9418f099d457b91bf14aef8c4bfc498bb2437 Author: Rafael J. Wysocki Date: Wed Apr 3 23:58:01 2019 +0200 ACPI: PM: Print debug messages when enabling GPEs for wakeup In sufficiently complicated GPE configurations it is hard to determine which GPE could be the source of system wakeup from a sleep state, so make __acpi_device_wakeup_enable() print that information to the kernel log if debugging is enabled. Signed-off-by: Rafael J. Wysocki commit e75135e601ee9084953e21a452053d6a21a72db8 Merge: 4ab526468344 108ec36b6994 Author: Rafael J. Wysocki Date: Mon Apr 8 12:47:41 2019 +0200 Merge back cpufreq material for v5.2. commit c1d1090c3c7674c965552e22a65b29423aa4f090 Author: Viresh Kumar Date: Mon Apr 8 15:46:10 2019 +0530 cpufreq: maple: Remove redundant code from maple_cpufreq_init() The success path and error path both look the same, don't duplicate the code. Signed-off-by: Viresh Kumar Acked-by: Rafael J. Wysocki commit 28e3ace70c3d2ea47a62dffe046011d1b74ee839 Author: Borislav Petkov Date: Fri Mar 29 20:00:38 2019 +0100 x86/mm: Convert some slow-path static_cpu_has() callers to boot_cpu_has() Using static_cpu_has() is pointless on those paths, convert them to the boot_cpu_has() variant. No functional changes. Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: Dave Hansen Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: x86@kernel.org Link: https://lkml.kernel.org/r/20190330112022.28888-5-bp@alien8.de commit 67e87d43b794a8886b5d075b3e0fdd0c615a595f Author: Borislav Petkov Date: Fri Mar 29 19:52:59 2019 +0100 x86: Convert some slow-path static_cpu_has() callers to boot_cpu_has() Using static_cpu_has() is pointless on those paths, convert them to the boot_cpu_has() variant. No functional changes. Reported-by: Nadav Amit Signed-off-by: Borislav Petkov Reviewed-by: Rik van Riel Reviewed-by: Juergen Gross # for paravirt Cc: Aubrey Li Cc: Dave Hansen Cc: Dominik Brodowski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Jann Horn Cc: Joerg Roedel Cc: "Kirill A. Shutemov" Cc: Konrad Rzeszutek Wilk Cc: Thomas Lendacky Cc: linux-edac@vger.kernel.org Cc: Masami Hiramatsu Cc: Peter Zijlstra Cc: "Rafael J. Wysocki" Cc: Sebastian Andrzej Siewior Cc: Thomas Gleixner Cc: Tony Luck Cc: virtualization@lists.linux-foundation.org Cc: x86@kernel.org Link: https://lkml.kernel.org/r/20190330112022.28888-3-bp@alien8.de commit 233298032803f2802fe99892d0de4ab653bfece4 Author: Wen Yang Date: Mon Apr 1 09:37:54 2019 +0800 cpufreq: ppc_cbe: fix possible object reference leak The call to of_get_cpu_node returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: ./drivers/cpufreq/ppc_cbe_cpufreq.c:89:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 76, but without a corresponding object release within this function. ./drivers/cpufreq/ppc_cbe_cpufreq.c:89:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 76, but without a corresponding object release within this function. Signed-off-by: Wen Yang Cc: "Rafael J. Wysocki" Cc: Viresh Kumar Cc: linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Viresh Kumar commit 8d10dc28a9ea6e8c02e825dab28699f3c72b02d9 Author: Wen Yang Date: Mon Apr 1 09:37:53 2019 +0800 cpufreq: pmac32: fix possible object reference leak The call to of_find_node_by_name returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: ./drivers/cpufreq/pmac32-cpufreq.c:557:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 552, but without a corresponding object release within this function. ./drivers/cpufreq/pmac32-cpufreq.c:569:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 552, but without a corresponding object release within this function. ./drivers/cpufreq/pmac32-cpufreq.c:598:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 587, but without a corresponding object release within this function. Signed-off-by: Wen Yang Cc: "Rafael J. Wysocki" Cc: Viresh Kumar Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Cc: Michael Ellerman Cc: linux-pm@vger.kernel.org Cc: linuxppc-dev@lists.ozlabs.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Viresh Kumar commit a9acc26b75f652f697e02a9febe2ab0da648a571 Author: Wen Yang Date: Mon Apr 1 09:37:52 2019 +0800 cpufreq/pasemi: fix possible object reference leak The call to of_get_cpu_node returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: ./drivers/cpufreq/pasemi-cpufreq.c:212:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 147, but without a corresponding object release within this function. ./drivers/cpufreq/pasemi-cpufreq.c:220:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 147, but without a corresponding object release within this function. Signed-off-by: Wen Yang Cc: "Rafael J. Wysocki" Cc: Viresh Kumar Cc: linuxppc-dev@lists.ozlabs.org Cc: linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Viresh Kumar commit ddb07fba1c645791ead16d1eee0639a033fb8cf9 Author: Wen Yang Date: Mon Apr 1 09:37:51 2019 +0800 cpufreq: maple: fix possible object reference leak The call to of_cpu_device_node_get returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: ./drivers/cpufreq/maple-cpufreq.c:213:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 177, but without a corresponding object release within this function. Signed-off-by: Wen Yang Cc: "Rafael J. Wysocki" Cc: Viresh Kumar Cc: linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Viresh Kumar commit 7c468966f05ac9c17bb5948275283d34e6fe0660 Author: Wen Yang Date: Mon Apr 1 09:37:50 2019 +0800 cpufreq: kirkwood: fix possible object reference leak The call to of_get_child_by_name returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: ./drivers/cpufreq/kirkwood-cpufreq.c:127:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 118, but without a corresponding object release within this function. ./drivers/cpufreq/kirkwood-cpufreq.c:133:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 118, but without a corresponding object release within this function. and also do some cleanup: - of_node_put(np); - np = NULL; ... of_node_put(np); Signed-off-by: Wen Yang Cc: "Rafael J. Wysocki" Cc: Viresh Kumar Cc: linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Viresh Kumar commit ddb64c5db3cc8fb9c1242214d5798b2c2865681c Author: Wen Yang Date: Mon Apr 1 09:37:49 2019 +0800 cpufreq: imx6q: fix possible object reference leak The call to of_node_get returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: ./drivers/cpufreq/imx6q-cpufreq.c:391:4-10: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 348, but without a corresponding object release within this function. ./drivers/cpufreq/imx6q-cpufreq.c:395:3-9: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 348, but without a corresponding object release within this function. Signed-off-by: Wen Yang Cc: "Rafael J. Wysocki" Cc: Viresh Kumar Cc: Shawn Guo Cc: Sascha Hauer Cc: Pengutronix Kernel Team Cc: Fabio Estevam Cc: NXP Linux Team Cc: linux-pm@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Viresh Kumar commit b623fa320f8360f049a6f3c3ccc487cb85af4c5b Author: Wen Yang Date: Mon Apr 1 09:37:48 2019 +0800 cpufreq: ap806: fix possible object reference leak The call to of_find_compatible_node returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: ./drivers/cpufreq/armada-8k-cpufreq.c:187:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 130, but without a corresponding object release within this function. ./drivers/cpufreq/armada-8k-cpufreq.c:191:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 130, but without a corresponding object release within this function. Signed-off-by: Wen Yang Cc: Jason Cooper Cc: Andrew Lunn Cc: Gregory Clement Cc: Sebastian Hesselbarth Cc: "Rafael J. Wysocki" Cc: Viresh Kumar Cc: linux-arm-kernel@lists.infradead.org Cc: linux-pm@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Viresh Kumar commit bfdd5a67c8cb02c147c6b012543e84cb1f5759ba Author: Borislav Petkov Date: Fri Mar 29 19:35:24 2019 +0100 x86/asm: Clarify static_cpu_has()'s intended use Clarify when one should use static_cpu_has() and when one should use boot_cpu_has(). Requested-by: Nadav Amit Signed-off-by: Borislav Petkov Cc: x86@kernel.org Link: https://lkml.kernel.org/r/20190330112022.28888-2-bp@alien8.de commit 108ec36b699475001f5af81ff7db624427d14dbe Author: Borislav Petkov Date: Sat Mar 30 12:20:22 2019 +0100 drivers/cpufreq: Convert some slow-path static_cpu_has() callers to boot_cpu_has() Using static_cpu_has() is pointless on those paths, convert them to the boot_cpu_has() variant. No functional changes. Signed-off-by: Borislav Petkov Signed-off-by: Rafael J. Wysocki commit 9083e4986124389e2a7c0ffca95630a4983887f0 Author: Rafael J. Wysocki Date: Tue Mar 26 12:19:52 2019 +0100 cpufreq: intel_pstate: Update max frequency on global turbo changes While the cpuinfo.max_freq value doesn't really matter for intel_pstate in the active mode, in the passive mode it is used by governors as the maximum physical frequency of the CPU and the results of governor computations generally depend on it. Also it is made available to user space via sysfs and it should match the current HW configuration. For this reason, make intel_pstate update cpuinfo.max_freq for all CPUs if it detects a global change of turbo frequency settings from "disable" to "enable" or the other way associated with a _PPC change notification from the platform firmware. Note that policy_is_inactive(), cpufreq_cpu_acquire(), cpufreq_cpu_release(), and cpufreq_set_policy() need to be made available to it for this purpose. Link: https://bugzilla.kernel.org/show_bug.cgi?id=200759 Reported-by: Gabriele Mazzotta Tested-by: Gabriele Mazzotta Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar commit 9eca544b1491df90ea7102a7ed14acc3c562d97b Author: Rafael J. Wysocki Date: Thu Mar 28 11:33:21 2019 +0100 cpufreq: schedutil: Simplify iowait boosting There is not reason for the minimum iowait boost value in the schedutil cpufreq governor to depend on the available range of CPU frequencies. In fact, that dependency is generally confusing, because it causes the iowait boost to behave somewhat differently on CPUs with the same maximum frequency and different minimum frequencies, for example. For this reason, replace the min field in struct sugov_cpu with a constant and choose its values to be 1/8 of SCHED_CAPACITY_SCALE (for consistency with the intel_pstate driver's internal governor). [Note that policy->cpuinfo.max_freq will not be a constant any more after a subsequent change, so this change is depended on by it.] Link: https://lore.kernel.org/lkml/20190305083202.GU32494@hirez.programming.kicks-ass.net/T/#ee20bdc98b7d89f6110c0d00e5c3ee8c2ced93c3d Suggested-by: Peter Zijlstra Signed-off-by: Rafael J. Wysocki Acked-by: Peter Zijlstra (Intel) Acked-by: Viresh Kumar commit 5e73de3413c5e0c104588a197cbd158baa085aca Author: Zhiyong Tao Date: Mon Apr 1 11:35:35 2019 +0800 pinctrl: add drive for I2C related pins on MT8183 This patch provides the advanced drive for I2C used pins on MT8183. The detail strength specification description of the I2C pin: When E1=0/E0=0, the strength is 0.125mA. When E1=0/E0=1, the strength is 0.25mA. When E1=1/E0=0, the strength is 0.5mA. When E1=1/E0=1, the strength is 1mA. For I2C pins, there are existing generic driving setup and the above specific driving setup. I2C pins can only support 2/4/6/8/10/12/14/16mA driving adjustment in generic driving setup. But in specific driving setup, they can support 0.125/0.25/0.5/1mA adjustment. If we enable specific driving setup for I2C pins, the existing generic driving setup will be disabled. For some special features, we need the I2C pins specific driving setup. The specific driving setup is controlled by E1E0EN. So we need add extra vendor driving preperty instead of the generic driving property. We can add "mediatek,drive-strength-adv = ;" to describe the specific driving setup property. "XXX" means the value of E1E0EN. So the valid arguments of "mediatek,drive-strength-adv" are from 0 to 7. Signed-off-by: Zhiyong Tao Signed-off-by: Linus Walleij commit 9f325c9837251519968821fe82cdd81b2c450a71 Author: Zhiyong Tao Date: Mon Apr 1 11:35:32 2019 +0800 pinctrl: mt8183: add DT binding document The commit adds mt8183 compatible node in binding document. Signed-off-by: Zhiyong Tao Signed-off-by: Erin Lo Reviewed-by: Rob Herring Signed-off-by: Linus Walleij commit 1adc90c7395742827d754a5f02f446818a77c379 Author: Aditya Pakki Date: Tue Mar 12 10:19:10 2019 -0500 pinctrl: axp209: Fix NULL pointer dereference after allocation axp20x_build_funcs_groups allocates groups via devm_kcalloc and tries to dereference without checking for NULL. This patch avoids such a scenario. Signed-off-by: Aditya Pakki Signed-off-by: Linus Walleij commit 182e80eeaff5e0e036cc240f17ece49501dd6d17 Author: Linus Walleij Date: Fri Apr 5 09:30:25 2019 +0700 gpiolib: devprop: Fix syntax error EXPORT_SYMBOL_GPL() needs a semicolon at the end, also explicitly include as well. Fixes: 64ebde5b0fdb ("gpiolib: export devprop_gpiochip_set_names()") Acked-by: Jan Kundrát Signed-off-by: Linus Walleij commit 27157af66324d529b43231c12b5d1e1a3e9fa620 Author: Linus Walleij Date: Thu Apr 4 23:55:14 2019 +0700 gpio: mmio: Drop bgpio_dir_inverted The direction inversion semantics are now handled by simply using the registers for in/out available, no need to keep track of inversion semantics exmplicitly anymore. Reviewed-by: Bartosz Golaszewski Reviewed-by: Jan Kotas Signed-off-by: Linus Walleij commit dccd30ea59922d1eacff925400acd66afcd05cff Author: Miquel Raynal Date: Mon Apr 8 09:41:47 2019 +0200 ARM: dts: sunxi: Improve A33 NAND transfers by using DMA In the current state, A33 NAND controllers use PIO during transfers. Throughput can be increased thanks to the use of DMA (mostly during reads, because of the ECC pipelining feature). Besides the usual addition of DMA DT properties, because the A33 NAND DMA handling is different than for older SoCs, we must also update the compatible which has recently been introduced for this purpose. Signed-off-by: Miquel Raynal Signed-off-by: Maxime Ripard commit e90a619fb7e1acb5e18f1ab618c6d10b08f0fc70 Author: Miquel Raynal Date: Thu Feb 7 15:28:24 2019 +0100 mtd: nand: omap: Fix comment in platform data using wrong Kconfig symbol The symbol that is being used in the #if/#endif block is not the one which is mentioned at the bottom. Fixes: 93af53b8633c ("nand: omap2: Remove horrible ifdefs to fix module probe") Signed-off-by: Miquel Raynal commit 6a1b66d6c8d691b1395d5c3b660ac4469c25bc28 Author: Boris Brezillon Date: Sun Nov 4 16:09:42 2018 +0100 mtd: rawnand: Get rid of chip->ecc_{strength,step}_ds nand_device embeds a nand_ecc_req object which contains the minimum strength and step-size required by the NAND device. Drop the chip->ecc_{strength,step}_ds fields and use chip->base.eccreq.{strength,step_size} instead. Signed-off-by: Boris Brezillon Signed-off-by: Miquel Raynal Reviewed-by: Frieder Schrempf commit 32813e288414fecce18f37f8f0d0414a64b45c56 Author: Boris Brezillon Date: Mon Oct 29 11:58:29 2018 +0100 mtd: rawnand: Get rid of chip->numchips The same information is provided by nanddev_ntargets(). Signed-off-by: Boris Brezillon Signed-off-by: Miquel Raynal Reviewed-by: Frieder Schrempf commit 6c836d515ff85e333488692c67969f714654a1c6 Author: Boris Brezillon Date: Mon Oct 29 11:22:16 2018 +0100 mtd: rawnand: Get rid of chip->chipsize The target size can now be returned by nanddev_get_targetsize(). Get rid of the chip->chipsize field and use this helper instead. Signed-off-by: Boris Brezillon Reviewed-by: Frieder Schrempf Signed-off-by: Miquel Raynal commit 298151689b33e04eaf09cf22e1d42396f7723690 Author: Boris Brezillon Date: Thu Oct 25 17:16:47 2018 +0200 mtd: rawnand: Get rid of chip->bits_per_cell Now that we inherit from nand_device, we can use nand_device->memorg.bits_per_cell instead of having our own field at the nand_chip level. Signed-off-by: Boris Brezillon Signed-off-by: Miquel Raynal Reviewed-by: Frieder Schrempf commit 7beb37e5f0d29d7d23aec0e47900ff4dfa8c2e55 Author: Boris Brezillon Date: Sun Nov 4 14:50:28 2018 +0100 mtd: rawnand: Use nanddev_mtd_max_bad_blocks() nanddev_mtd_max_bad_blocks() is implemented by the generic NAND layer and is already doing what we need. Reuse this function instead of having our own implementation. While at it, get rid of the ->max_bb_per_die and ->blocks_per_die fields which are now unused. Signed-off-by: Boris Brezillon Signed-off-by: Miquel Raynal Reviewed-by: Frieder Schrempf commit d974541e23791e189c5faa0462223d29352cecc6 Author: Boris Brezillon Date: Sun Oct 28 16:12:45 2018 +0100 mtd: rawnand: Move all page cache related fields to a sub-struct Looking at the field names it's hard to tell what ->data_buf, ->pagebuf and ->pagebuf_bitflips are for. Clarify that by moving those fields in a sub-struct named pagecache. Signed-off-by: Boris Brezillon Signed-off-by: Miquel Raynal Reviewed-by: Frieder Schrempf commit eeab717483e5fb529c8001d36fbda14011905e5f Author: Boris Brezillon Date: Sun Oct 28 15:27:55 2018 +0100 mtd: rawnand: Provide a helper to get chip->data_buf We plan to move cache related fields to a pagecache struct in nand_chip but some drivers access ->pagebuf directly to invalidate the cache before they start using ->data_buf. Let's provide an helper that returns a pointer to ->data_buf after invalidating the cache. Signed-off-by: Boris Brezillon Signed-off-by: Miquel Raynal Reviewed-by: Frieder Schrempf commit a7ab085d7c16a7367a0c93ee39d0750d23b537f9 Author: Boris Brezillon Date: Thu Oct 25 22:10:36 2018 +0200 mtd: rawnand: Initialize the nand_device object In order to use some of the nanddev_xxx() helpers, we need to initialize the nand_device object embedded in nand_chip using nanddev_init(). This requires implementing nand_ops. We also drop useless mtd->xxx initialization when they're already taken case of by nanddev_init(). Signed-off-by: Boris Brezillon Signed-off-by: Miquel Raynal Reviewed-by: Frieder Schrempf commit 629a442cad5facbebc204ff81e1974f8febab636 Author: Boris Brezillon Date: Thu Oct 25 17:10:37 2018 +0200 mtd: rawnand: Fill memorg during detection If we want to use the generic NAND layer, we need to have the memorg struct appropriately filled. Patch the detection code to fill this struct. Signed-off-by: Boris Brezillon Reviewed-by: Frieder Schrempf Signed-off-by: Miquel Raynal commit 3020e30af6f81beedfeb4cf4eecc693bba55a6c2 Author: Boris Brezillon Date: Thu Oct 25 15:21:08 2018 +0200 mtd: rawnand: Prepare things to reuse the generic NAND layer The generic NAND layer provides abstraction of NAND devices no matter the bus that is used to communicate with the chip. Basing the raw NAND core on this generic layer should avoid duplication of common operations, like iterating over all pages/blocks for MTD IO/erase operations. In order to re-use this layer, we must first inherit from nand_device and then initialize the nand_device struct appropriately. This patch is taking care of the former. Signed-off-by: Boris Brezillon Signed-off-by: Miquel Raynal Reviewed-by: Frieder Schrempf commit 080d66e94d69a5b1d197ac411db6c27700868af8 Author: Boris Brezillon Date: Thu Oct 25 15:05:39 2018 +0200 mtd: rawnand: Use nand_to_mtd() in nand_{set,get}_flash_node() Use the nand_to_mtd() helper to access chip->mtd as done everywhere else. Signed-off-by: Boris Brezillon Signed-off-by: Miquel Raynal Reviewed-by: Frieder Schrempf commit 509198485bf2600f4104fdf391b8632cf69f2dd8 Author: Boris Brezillon Date: Sun Nov 4 14:45:57 2018 +0100 mtd: spinand: Implement mtd->_max_bad_blocks We just have to use nanddev_mtd_max_bad_blocks(). Signed-off-by: Boris Brezillon Signed-off-by: Miquel Raynal Reviewed-by: Frieder Schrempf commit 46b01d7efda29356d4dff88825e5ef51dd9f6bae Author: Boris Brezillon Date: Mon Oct 29 17:18:39 2018 +0100 mtd: nand: Add a helper to retrieve the number of pages per target Will be used by the raw NAND framework. Signed-off-by: Boris Brezillon Signed-off-by: Miquel Raynal Reviewed-by: Frieder Schrempf commit 7c4ecca103b3d70c50adc693c9f5d39d292e13e0 Author: Boris Brezillon Date: Mon Oct 29 10:29:48 2018 +0100 mtd: nand: Add a helper returning the number of eraseblocks per target Some drivers in the raw NAND framework seems to need this helper, so let's just add it instead of open-coding the logic. Signed-off-by: Boris Brezillon Signed-off-by: Miquel Raynal Reviewed-by: Frieder Schrempf commit 377e517b5fa53590418a7b4c2206082d92434fa3 Author: Boris Brezillon Date: Sun Nov 4 14:43:37 2018 +0100 mtd: nand: Add max_bad_eraseblocks_per_lun info to memorg NAND datasheets usually give the maximum number of bad blocks per LUN and this number can be used to help upper layers decide how much blocks they should reserve for bad block handling. Add a max_bad_eraseblocks_per_lun to the nand_memory_organization struct and update the NAND_MEMORG() macro (and its users) accordingly. We also provide a default mtd->_max_bad_blocks() implementation. Signed-off-by: Boris Brezillon Signed-off-by: Miquel Raynal Reviewed-by: Frieder Schrempf commit d090c25028e9df186bb0d31379f7d5605c57fa79 Author: Liang Yang Date: Thu Mar 21 20:14:01 2019 +0800 mtd: rawnand: meson: set oob layout ops Specify the oob layout operation to avoid no oob scheme defined for some nand flash. Fixes: 8fae856c5350 ("mtd: rawnand: meson: add support for Amlogic NAND flash controller") Signed-off-by: Liang Yang Tested-by: Martin Blumenstingl Signed-off-by: Miquel Raynal commit 6f0ce4dfc5a35bcb21f26d5347f4797fdde52810 Author: Aditya Pakki Date: Mon Mar 18 18:24:34 2019 -0500 mtd: rawnand: vf610: Avoid a potential NULL pointer dereference of_match_device can return NULL if there is no matching device. Avoid a potential NULL pointer dereference by checking for the return value and passing the error upstream. Signed-off-by: Aditya Pakki Signed-off-by: Miquel Raynal commit e84950691bf7aec716ae671a8b6e82322df6d54a Author: Paul Cercueil Date: Tue Mar 19 15:54:03 2019 +0100 mtd: rawnand: ingenic: Move BBTs out of ECC area The generic layout for BBT markers will most likely overlap with our ECC bytes in the OOB, so move the BBT markers outside the OOB area. Signed-off-by: Paul Cercueil Signed-off-by: Miquel Raynal commit 2a73858364aae7103d0ad786634303a69d28471b Author: Paul Cercueil Date: Tue Mar 19 15:54:02 2019 +0100 mtd: rawnand: ingenic: Add ooblayout for the Qi Ben Nanonote The Ben Nanonote from Qi Hardware expects a specific OOB layout on its NAND. Signed-off-by: Paul Cercueil Signed-off-by: Miquel Raynal commit 3e6ac2ad90b351f040d9f8b05da40487f0f35cfe Author: Paul Cercueil Date: Tue Mar 19 15:54:01 2019 +0100 mtd: rawnand: ingenic: Add support for the JZ4725B The boot ROM of the JZ4725B SoC expects a specific OOB layout on the NAND, so we use it unconditionally in the ingenic-nand driver. Also add the jz4725b-bch driver to support the JZ4725B-specific BCH hardware. Signed-off-by: Paul Cercueil Signed-off-by: Miquel Raynal commit a0ac778eb82c43b74d50cb0e31815bf5f24b295c Author: Paul Cercueil Date: Tue Mar 19 15:54:00 2019 +0100 mtd: rawnand: ingenic: Add support for the JZ4740 Add support for probing the ingenic-nand driver on the JZ4740 SoC from Ingenic, and the jz4740-ecc driver to support the JZ4740-specific ECC hardware. Signed-off-by: Paul Cercueil Signed-off-by: Miquel Raynal commit f838154add45b94c553b96f302c181d32aa3440d Author: Paul Cercueil Date: Tue Mar 19 15:53:59 2019 +0100 mtd: rawnand: ingenic: Make use of ecc-engine property Use the 'ecc-engine' standard property instead of the custom 'ingenic,bch-controller' custom property, which is now deprecated. Signed-off-by: Paul Cercueil Signed-off-by: Miquel Raynal commit 15de8c6efd0effef3a5226bd5ab7f101c9f4948f Author: Paul Cercueil Date: Tue Mar 19 15:53:58 2019 +0100 mtd: rawnand: ingenic: Separate top-level and SoC specific code The ingenic-nand driver uses an API provided by the jz4780-bch driver. This makes it difficult to support other SoCs in the jz4780-bch driver. To work around this, we separate the API functions from the SoC-specific code, so that these API functions are SoC-agnostic. Signed-off-by: Paul Cercueil Signed-off-by: Miquel Raynal commit 075001385c66a00fba9810b9ecb88d644384df88 Author: Maxime Jourdan Date: Fri Mar 29 17:06:49 2019 +0100 clk: meson: axg-audio: add g12a support The g12a audio clock controller is largely similar to the existing axg controller, with the addition of the spdif output B and TDM pad clocks. This commit extends the existing axg audio clock controller driver to work with multiple compatibles and add the g12a specific clocks Signed-off-by: Maxime Jourdan Signed-off-by: Jerome Brunet Signed-off-by: Neil Armstrong Link: https://lkml.kernel.org/r/20190329160649.31603-5-jbrunet@baylibre.com commit 43dae505dae6ac86105fedb5e2ee3530e6aa1770 Author: Alexandre Belloni Date: Sun Apr 7 23:30:12 2019 +0200 rtc: test: use .set_time Use .set_time instead of the deprecated .set_mmss64. Signed-off-by: Alexandre Belloni commit 6d6d2a24b2c7a717a75f4e5f3a0e2ebd35ae5573 Author: Jerome Brunet Date: Fri Mar 29 17:06:48 2019 +0100 clk: meson: axg-audio: don't register inputs in the onecell data Clock inputs should not be exported outside the controller. It is a hack to have a stable global clock name within the clock controller, even for clocks external to the controller. There is an ongoing effort to replace this hack with something better. The first step is to not register those clocks in the provider anymore, so we can completely remove them later on. Signed-off-by: Jerome Brunet Signed-off-by: Neil Armstrong Link: https://lkml.kernel.org/r/20190329160649.31603-4-jbrunet@baylibre.com commit b18819c4acf16ac3273192b79c53f3b833b9a1f8 Author: Jerome Brunet Date: Fri Mar 29 17:06:47 2019 +0100 clk: meson: axg_audio: replace prefix axg by aud The audio clock controller is compatible with axg and g12a SoC family. Having each clock name prefixed with "axg_" looks weird on the g12a. This change replace the "axg_" by "aud_" in fron the clock names. Signed-off-by: Jerome Brunet Signed-off-by: Neil Armstrong Link: https://lkml.kernel.org/r/20190329160649.31603-3-jbrunet@baylibre.com commit 403365680975896e0e7a2c48d7ca6e5d3686b49d Merge: 90751f686e3f 8554926b3fcb Author: Neil Armstrong Date: Mon Apr 8 09:57:46 2019 +0200 Merge branch 'next/headers' into next/drivers commit 8554926b3fcb703a788018d5eba0ddd377abeecd Author: Jerome Brunet Date: Fri Mar 29 17:06:46 2019 +0100 dt-bindings: clk: axg-audio: add g12a support Add a new compatible string and additional clock ids for audio clock controller of the g12a SoC family. Signed-off-by: Jerome Brunet Reviewed-by: Rob Herring Signed-off-by: Neil Armstrong Link: https://lkml.kernel.org/r/20190329160649.31603-2-jbrunet@baylibre.com commit 7558f978f9b66a2bc284a0e8c0764b88305bc29f Author: Sowjanya Komatineni Date: Thu Apr 4 17:14:18 2019 -0700 spi: document tx/rx clock delay properties Tegra SPI controller has TX and RX trimmers to tuning the delay of SPI master clock with respect to the data. TX and RX tap values are based on the platform validation across the PVT and the trimmer values vary based on the trace lengths to the corresponding SPI devices. Signed-off-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit daae4c583534a3e20f08701ef6659066ebf60ca7 Author: Annaliese McDermond Date: Fri Apr 5 14:54:30 2019 -0700 ASoC: tlv320aic32x4: Fix spacing Fix some cosmetic spacing issues reported by Julia Lawall . Signed-off-by: Annaliese McDermond Signed-off-by: Mark Brown commit 2390c9b473da217ee086e5382869ade82c217a30 Author: Jenny TC Date: Tue Mar 26 22:50:56 2019 +0530 ASoC: Intel: kbl_da7219_max98927: remove headset kbl_da7219_max98927 supports two configurations - One with da7219 & max98927/373 and other one with max98927/373 alone. This patch removes the headset dais from max98927/373 configuration. Since the snd_soc_dapm_ignore_suspend for DMIC is called from da7219_codec_init, the code is re-arranged to invoke snd_soc_dapm_ignore_suspend from kabylake_dmic_init. Signed-off-by: Jenny TC Acked-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit c9500d7b7de8ff6ac88ee3e38b782889f1616593 Author: Florian Westphal Date: Fri Mar 29 21:16:32 2019 +0100 xfrm: store xfrm_mode directly, not its address This structure is now only 4 bytes, so its more efficient to cache a copy rather than its address. No significant size difference in allmodconfig vmlinux. With non-modular kernel that has all XFRM options enabled, this series reduces vmlinux image size by ~11kb. All xfrm_mode indirections are gone and all modes are built-in. before (ipsec-next master): text data bss dec filename 21071494 7233140 11104324 39408958 vmlinux.master after this series: 21066448 7226772 11104324 39397544 vmlinux.patched With allmodconfig kernel, the size increase is only 362 bytes, even all the xfrm config options removed in this series are modular. before: text data bss dec filename 15731286 6936912 4046908 26715106 vmlinux.master after this series: 15731492 6937068 4046908 26715468 vmlinux Signed-off-by: Florian Westphal Reviewed-by: Sabrina Dubroca Signed-off-by: Steffen Klassert commit 4c145dce26013763490df88f2473714f5bc7857d Author: Florian Westphal Date: Fri Mar 29 21:16:31 2019 +0100 xfrm: make xfrm modes builtin after previous changes, xfrm_mode contains no function pointers anymore and all modules defining such struct contain no code except an init/exit functions to register the xfrm_mode struct with the xfrm core. Just place the xfrm modes core and remove the modules, the run-time xfrm_mode register/unregister functionality is removed. Before: text data bss dec filename 7523 200 2364 10087 net/xfrm/xfrm_input.o 40003 628 440 41071 net/xfrm/xfrm_state.o 15730338 6937080 4046908 26714326 vmlinux 7389 200 2364 9953 net/xfrm/xfrm_input.o 40574 656 440 41670 net/xfrm/xfrm_state.o 15730084 6937068 4046908 26714060 vmlinux The xfrm*_mode_{transport,tunnel,beet} modules are gone. v2: replace CONFIG_INET6_XFRM_MODE_* IS_ENABLED guards with CONFIG_IPV6 ones rather than removing them. Signed-off-by: Florian Westphal Reviewed-by: Sabrina Dubroca Signed-off-by: Steffen Klassert commit 733a5fac2f15b55b9059230d098ed04341d2d884 Author: Florian Westphal Date: Fri Mar 29 21:16:30 2019 +0100 xfrm: remove afinfo pointer from xfrm_mode Adds an EXPORT_SYMBOL for afinfo_get_rcu, as it will now be called from ipv6 in case of CONFIG_IPV6=m. This change has virtually no effect on vmlinux size, but it reduces afinfo size and allows followup patch to make xfrm modes const. v2: mark if (afinfo) tests as likely (Sabrina) re-fetch afinfo according to inner_mode in xfrm_prepare_input(). Signed-off-by: Florian Westphal Reviewed-by: Sabrina Dubroca Signed-off-by: Steffen Klassert commit 1de70830066b72b6a8e259e5363f6c0bc4ba7bbc Author: Florian Westphal Date: Fri Mar 29 21:16:29 2019 +0100 xfrm: remove output2 indirection from xfrm_mode similar to previous patch: no external module dependencies, so we can avoid the indirection by placing this in the core. This change removes the last indirection from xfrm_mode and the xfrm4|6_mode_{beet,tunnel}.c modules contain (almost) no code anymore. Before: text data bss dec hex filename 3957 136 0 4093 ffd net/xfrm/xfrm_output.o 587 44 0 631 277 net/ipv4/xfrm4_mode_beet.o 649 32 0 681 2a9 net/ipv4/xfrm4_mode_tunnel.o 625 44 0 669 29d net/ipv6/xfrm6_mode_beet.o 599 32 0 631 277 net/ipv6/xfrm6_mode_tunnel.o After: text data bss dec hex filename 5359 184 0 5543 15a7 net/xfrm/xfrm_output.o 171 24 0 195 c3 net/ipv4/xfrm4_mode_beet.o 171 24 0 195 c3 net/ipv4/xfrm4_mode_tunnel.o 172 24 0 196 c4 net/ipv6/xfrm6_mode_beet.o 172 24 0 196 c4 net/ipv6/xfrm6_mode_tunnel.o v2: fold the *encap_add functions into xfrm*_prepare_output preserve (move) output2 comment (Sabrina) use x->outer_mode->encap, not inner fix a build breakage on ppc (kbuild robot) Signed-off-by: Florian Westphal Reviewed-by: Sabrina Dubroca Signed-off-by: Steffen Klassert commit b3284df1c86f7ac078dcb8fb250fe3d6437e740c Author: Florian Westphal Date: Fri Mar 29 21:16:28 2019 +0100 xfrm: remove input2 indirection from xfrm_mode No external dependencies on any module, place this in the core. Increase is about 1800 byte for xfrm_input.o. The beet helpers get added to internal header, as they can be reused from xfrm_output.c in the next patch (kernel contains several copies of them in the xfrm{4,6}_mode_beet.c files). Before: text data bss dec filename 5578 176 2364 8118 net/xfrm/xfrm_input.o 1180 64 0 1244 net/ipv4/xfrm4_mode_beet.o 171 40 0 211 net/ipv4/xfrm4_mode_transport.o 1163 40 0 1203 net/ipv4/xfrm4_mode_tunnel.o 1083 52 0 1135 net/ipv6/xfrm6_mode_beet.o 172 40 0 212 net/ipv6/xfrm6_mode_ro.o 172 40 0 212 net/ipv6/xfrm6_mode_transport.o 1056 40 0 1096 net/ipv6/xfrm6_mode_tunnel.o After: text data bss dec filename 7373 200 2364 9937 net/xfrm/xfrm_input.o 587 44 0 631 net/ipv4/xfrm4_mode_beet.o 171 32 0 203 net/ipv4/xfrm4_mode_transport.o 649 32 0 681 net/ipv4/xfrm4_mode_tunnel.o 625 44 0 669 net/ipv6/xfrm6_mode_beet.o 172 32 0 204 net/ipv6/xfrm6_mode_ro.o 172 32 0 204 net/ipv6/xfrm6_mode_transport.o 599 32 0 631 net/ipv6/xfrm6_mode_tunnel.o v2: pass inner_mode to xfrm_inner_mode_encap_remove to fix AF_UNSPEC selector breakage (bisected by Benedict Wong) Signed-off-by: Florian Westphal Reviewed-by: Sabrina Dubroca Signed-off-by: Steffen Klassert commit 7613b92b1ae37141704948b77e8762c5de896510 Author: Florian Westphal Date: Fri Mar 29 21:16:27 2019 +0100 xfrm: remove gso_segment indirection from xfrm_mode These functions are small and we only have versions for tunnel and transport mode for ipv4 and ipv6 respectively. Just place the 'transport or tunnel' conditional in the protocol specific function instead of using an indirection. Before: 3226 12 0 3238 net/ipv4/esp4_offload.o 7004 492 0 7496 net/ipv4/ip_vti.o 3339 12 0 3351 net/ipv6/esp6_offload.o 11294 460 0 11754 net/ipv6/ip6_vti.o 1180 72 0 1252 net/ipv4/xfrm4_mode_beet.o 428 48 0 476 net/ipv4/xfrm4_mode_transport.o 1271 48 0 1319 net/ipv4/xfrm4_mode_tunnel.o 1083 60 0 1143 net/ipv6/xfrm6_mode_beet.o 172 48 0 220 net/ipv6/xfrm6_mode_ro.o 429 48 0 477 net/ipv6/xfrm6_mode_transport.o 1164 48 0 1212 net/ipv6/xfrm6_mode_tunnel.o 15730428 6937008 4046908 26714344 vmlinux After: 3461 12 0 3473 net/ipv4/esp4_offload.o 7000 492 0 7492 net/ipv4/ip_vti.o 3574 12 0 3586 net/ipv6/esp6_offload.o 11295 460 0 11755 net/ipv6/ip6_vti.o 1180 64 0 1244 net/ipv4/xfrm4_mode_beet.o 171 40 0 211 net/ipv4/xfrm4_mode_transport.o 1163 40 0 1203 net/ipv4/xfrm4_mode_tunnel.o 1083 52 0 1135 net/ipv6/xfrm6_mode_beet.o 172 40 0 212 net/ipv6/xfrm6_mode_ro.o 172 40 0 212 net/ipv6/xfrm6_mode_transport.o 1056 40 0 1096 net/ipv6/xfrm6_mode_tunnel.o 15730424 6937008 4046908 26714340 vmlinux Signed-off-by: Florian Westphal Reviewed-by: Sabrina Dubroca Signed-off-by: Steffen Klassert commit 303c5fab1272888b22088fbdd08cb770205ccb7a Author: Florian Westphal Date: Fri Mar 29 21:16:26 2019 +0100 xfrm: remove xmit indirection from xfrm_mode There are only two versions (tunnel and transport). The ip/ipv6 versions are only differ in sizeof(iphdr) vs ipv6hdr. Place this in the core and use x->outer_mode->encap type to call the correct adjustment helper. Before: text data bss dec filename 15730311 6937008 4046908 26714227 vmlinux After: 15730428 6937008 4046908 26714344 vmlinux (about 117 byte increase) v2: use family from x->outer_mode, not inner Signed-off-by: Florian Westphal Reviewed-by: Sabrina Dubroca Signed-off-by: Steffen Klassert commit 0c620e97b3490890facbbe06d5deed9b024de255 Author: Florian Westphal Date: Fri Mar 29 21:16:25 2019 +0100 xfrm: remove output indirection from xfrm_mode Same is input indirection. Only exception: we need to export xfrm_outer_mode_output for pktgen. Increases size of vmlinux by about 163 byte: Before: text data bss dec filename 15730208 6936948 4046908 26714064 vmlinux After: 15730311 6937008 4046908 26714227 vmlinux xfrm_inner_extract_output has no more external callers, make it static. v2: add IS_ENABLED(IPV6) guard in xfrm6_prepare_output add two missing breaks in xfrm_outer_mode_output (Sabrina Dubroca) add WARN_ON_ONCE for 'call AF_INET6 related output function, but CONFIG_IPV6=n' case. make xfrm_inner_extract_output static Signed-off-by: Florian Westphal Reviewed-by: Sabrina Dubroca Signed-off-by: Steffen Klassert commit c2d305e51038167dd9de8d476c72f667d84cad8b Author: Florian Westphal Date: Fri Mar 29 21:16:24 2019 +0100 xfrm: remove input indirection from xfrm_mode No need for any indirection or abstraction here, both functions are pretty much the same and quite small, they also have no external dependencies. xfrm_prepare_input can then be made static. With allmodconfig build, size increase of vmlinux is 25 byte: Before: text data bss dec filename 15730207 6936924 4046908 26714039 vmlinux After: 15730208 6936948 4046908 26714064 vmlinux v2: Fix INET_XFRM_MODE_TRANSPORT name in is-enabled test (Sabrina Dubroca) change copied comment to refer to transport and network header, not skb->{h,nh}, which don't exist anymore. (Sabrina) make xfrm_prepare_input static (Eyal Birger) Signed-off-by: Florian Westphal Reviewed-by: Sabrina Dubroca Signed-off-by: Steffen Klassert commit b45714b164cac71f503ad73654b3c880cb9f2590 Author: Florian Westphal Date: Fri Mar 29 21:16:23 2019 +0100 xfrm: prefer family stored in xfrm_mode struct Now that we have the family available directly in the xfrm_mode struct, we can use that and avoid one extra dereference. Signed-off-by: Florian Westphal Reviewed-by: Sabrina Dubroca Signed-off-by: Steffen Klassert commit f1ca9992ced71029735784de138f53446363087f Author: Sowjanya Komatineni Date: Thu Apr 4 17:14:16 2019 -0700 spi: add a method for configuring CS timing This patch creates set_cs_timing SPI master optional method for SPI masters to implement configuring CS timing if applicable. This patch also creates spi_cs_timing accessory for SPI clients to use for requesting SPI master controllers to configure device requested CS setup time, hold time and inactive delay. Signed-off-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit b262a69582a4676c7378a73077b7bb186c7c5b2a Author: Florian Westphal Date: Fri Mar 29 21:16:22 2019 +0100 xfrm: place af number into xfrm_mode struct This will be useful to know if we're supposed to decode ipv4 or ipv6. While at it, make the unregister function return void, all module_exit functions did just BUG(); there is never a point in doing error checks if there is no way to handle such error. Signed-off-by: Florian Westphal Reviewed-by: Sabrina Dubroca Signed-off-by: Steffen Klassert commit 24496da6927fa7399f7f60ab31b4cea27ec3ed00 Author: Sowjanya Komatineni Date: Thu Apr 4 17:14:15 2019 -0700 spi-summary: document set_cs_timing This patch documents set_cs_timing SPI master method. Signed-off-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit fa28fd3421373794e98eb3e511969fea5a8b2fc3 Author: Sowjanya Komatineni Date: Thu Apr 4 17:14:12 2019 -0700 spi: tegra114: add support for interrupt mask This patch creates tegra_spi_soc_data structure to maintain and implement SPI HW feature differences between different Tegra chips and also creates a separate compatible string for T124/T210. Tegra210 and later has a separate interrupt mask register SPI_INTR_MASK for enabling or disabling interrupts while Tegra124 and prior uses interrupt enable bits in SPI_DMA_CTL register. This patch creates flag has_intr_mask_reg in tegra_spi_soc_data to identify this and implements accordingly. Signed-off-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit 9d199231b000414e420a35912760f2d67e9c56d7 Author: Sowjanya Komatineni Date: Thu Apr 4 17:14:08 2019 -0700 spi: tegra114: add 3 wire transfer mode support This patch adds 3 wire transfer support to SPI mode list along with its implementation. 3 wire or Bi-directional mode uses only one serial data pin for the transfer. SPI in master mode uses MOSI data line only and MISO data line is not used. Signed-off-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit 9877a347f2056f7aa4e770de9a20048ad288f545 Author: Sowjanya Komatineni Date: Thu Apr 4 17:14:07 2019 -0700 spi: tegra114: add dual mode support This patch adds support for dual mode SPI transfer. Dual mode uses both MOSI and MISO lines in parallel where the data is interleaved on MOSI and MISO lines increasing the throughput. Packet from Tx FIFO is transmitted on both MOSI and MISO lines and packet to Rx FIFO is received from both MOSI and MISO lines. Even bits are transmitted or received on the MOSI data line and odd bits are transmitted or received on the MISO data line. Signed-off-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit 79567c1a321e7396e734135d56950311dde07db2 Author: Andrey Smirnov Date: Tue Apr 2 21:01:33 2019 -0700 spi: gpio: Use devm_spi_register_master() Replace spi_bitbang_start() with a combination of spi_bitbang_init() and devm_spi_register_master() and drop all of the explicit cleanup-related code that's no longer necessary. Signed-off-by: Andrey Smirnov Cc: Mark Brown Cc: Chris Healy Cc: linux-spi@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Mark Brown commit 45beec3519983cb11768cd3ee350f44975bf4cea Author: Andrey Smirnov Date: Tue Apr 2 21:01:32 2019 -0700 spi: bitbang: Introduce spi_bitbang_init() Move all of the code doing struct spi_bitbang initialization, so that it can be paired with devm_spi_register_master() in order to avoid having to call spi_bitbang_stop() explicitly. Signed-off-by: Andrey Smirnov Cc: Mark Brown Cc: Chris Healy Cc: linux-spi@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Mark Brown commit 8b797490b4db09492acda4b4a4a4355d2311a614 Author: Andrey Smirnov Date: Tue Apr 2 21:01:31 2019 -0700 spi: gpio: Make sure spi_master_put() is called in every error path There's a number of failure paths in spi_gpio_probe() that do not call spi_master_put() potentially leaking memory. Fix this problem by registering a cleanup funciont via devm_add_action_or_reset() right after SPI controller is allocated. Signed-off-by: Andrey Smirnov Cc: Mark Brown Cc: Chris Healy Cc: linux-spi@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Mark Brown commit 8b57b11bc45ee512566513259cd3c302df3c9dae Author: Flavio Suligoi Date: Fri Apr 5 14:40:22 2019 +0200 spi: pxa2xxx: change "no DMA channels..." msg from debug to warning Change the type of the diagnostic message: "no DMA channels available, using PIO" from debug to warning. The lack of an available DMA channel is very important regard the spi-pxa2xx performance. The transfer speed can be reduced more than 50%. So it is very important to warn the user about this, without enabling the full SPI debug with CONFIG_SPI_DEBUG. Moreover, enabling the full SPI debug only to enable this specific debug message, the dmesg buffer fills quickly with a lot of repetitive information during the SPI data transfer. This cause the loss of all the first important messages written during the initialization. Signed-off-by: Flavio Suligoi Signed-off-by: Mark Brown commit 5d785141c8b30d252ebab897429022da379bdb0f Author: Axel Lin Date: Sun Apr 7 22:58:17 2019 +0800 spi: fsl-lpspi: Clean up fsl_lpspi_probe Use is_slave local variable to avoid calling of_property_read_bool() twice. Remove redudant assignment for controller->bus_num, set it once is enough. Move setting controller->bits_per_word_mask close to the code init other controller fields. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit a18656ea39855519495c9b996205b5fe9cf86123 Author: Axel Lin Date: Sun Apr 7 22:58:16 2019 +0800 spi: fsl-lpspi: Fix build warning when !CONFIG_PM Add #ifdef CONFIG_PM guard to fix build warning when !CONFIG_PM drivers/spi/spi-fsl-lpspi.c:810:12: warning: ‘fsl_lpspi_runtime_suspend’ defined but not used [-Wunused-function] static int fsl_lpspi_runtime_suspend(struct device *dev) ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/spi/spi-fsl-lpspi.c:789:12: warning: ‘fsl_lpspi_runtime_resume’ defined but not used [-Wunused-function] static int fsl_lpspi_runtime_resume(struct device *dev) ^~~~~~~~~~~~~~~~~~~~~~~~ Fixes: 944c01a889d9 ("spi: lpspi: enable runtime pm for lpspi") Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 6599be346daf9250b9fddfdea30a1d4779538730 Author: Axel Lin Date: Sun Apr 7 22:58:15 2019 +0800 spi: fsl-lpspi: Fix problematic dev_set_drvdata call The original code already set controller as drvdata: platform_set_drvdata(pdev, controller); But commit 944c01a889d9 ("spi: lpspi: enable runtime pm for lpspi") added dev_set_drvdata(&pdev->dev, fsl_lpspi); so fsl_lpspi_remove() will get wrong pointer by platform_get_drvdata(). Fixes: 944c01a889d9 ("spi: lpspi: enable runtime pm for lpspi") Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 9d8371e287b9bd8f5b28386e6d7e8e9514a40aad Author: Sergei Shtylyov Date: Sat Apr 6 21:33:29 2019 +0300 spi-mem: fix kernel-doc for spi_mem_dirmap_{read|write}() The function names in the kernel-doc comments were mistyped, with a word "dirmap" being repeated twice, so fix them. Fixes: aa167f3fed0c ("spi: spi-mem: Add a new API to support direct mapping") Signed-off-by: Sergei Shtylyov Signed-off-by: Mark Brown commit 9b186e9a65bffaef5ed56878095544b64584c29c Author: YueHaibing Date: Sat Apr 6 23:14:57 2019 +0800 spi: bcm2835aux: Fix build error without CONFIG_DEBUG_FS When building CONFIG_DEBUG_FS is not set gcc warn this: drivers/spi/spi-bcm2835aux.c: In function bcm2835aux_spi_probe: drivers/spi/spi-bcm2835aux.c:591:2: error: too many arguments to function bcm2835aux_debugfs_create bcm2835aux_debugfs_create(bs, dev_name(&pdev->dev)); ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/spi/spi-bcm2835aux.c:145:13: note: declared here static void bcm2835aux_debugfs_create(struct bcm2835aux_spi *bs) Reported-by: Hulk Robot Fixes: 8048d151eb4d ("spi: bcm2835aux: add driver stats to debugfs") Signed-off-by: YueHaibing Reviewed-by: Mukesh Ojha Signed-off-by: Mark Brown commit b93318a22f23cad8a3732451d83c604f289fcfc7 Author: Sergei Shtylyov Date: Fri Apr 5 18:48:50 2019 +0300 spi: kill useless initializer in spi_register_controller() The 'status' local variable is initialized but this value is never used, thus kill that initializer. Signed-off-by: Sergei Shtylyov Signed-off-by: Mark Brown commit 0677c3ea53dcb38314718e8ed7d851972eabf102 Author: Axel Lin Date: Thu Apr 4 23:07:09 2019 +0800 regulator: s2mpa01: Convert to use simplified DT parsing Use regulator core's simplified DT parsing code to simply the driver implementation. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 0a245f0efcb5f5d70f3512bfd0ed8277256503c5 Author: Axel Lin Date: Sun Apr 7 17:03:02 2019 +0800 regulator: bd718x7: Use rdev_get_id() to get regulator id Use rdev_get_id() instead of directly access rdev->desc->id. While at it also remove unneeded init for ramp_value variable. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 45a310136b3ed52267e757c57e835f583140aa5f Author: Nicholas Mc Guire Date: Sun Apr 7 04:59:34 2019 +0200 ASoC: ab8500: add range to usleep_range Providing a range for usleep_range() allows the hrtimer subsystem to coalesce timers - as this delay has no upper limit anyway (interrupts or context switch is possible) it should not hurt to extend this from 2 to 2-4 milliseconds. Signed-off-by: Nicholas Mc Guire Signed-off-by: Mark Brown commit a8d218f4fe8116395e4c4a13b63029ecf00d4035 Author: Paul Cercueil Date: Fri Mar 29 22:50:45 2019 +0100 ASoC: Intel: bytcht_es8316: Add quirk for the Teclast X98+ II The Teclast X98+ II is a Cherrytrail tablet, which require two quirks: - it has stereo speakers, - its jack detection mechanism is inverted. Signed-off-by: Paul Cercueil Signed-off-by: Mark Brown commit ba49cf6f8e4ad44ee752eb13413a26a7191893ae Author: Paul Cercueil Date: Fri Mar 29 22:50:44 2019 +0100 ASoC: Intel: bytcht_es8316: Add quirk for inverted jack detect Add a quirk to support boards whose jack detection mechanism is inverted. It will set the 'everest,jack-detect-inverted' boolean device property for the es8316 codec driver. Signed-off-by: Paul Cercueil Signed-off-by: Mark Brown commit a03584b75a28450a2a64646e3c1b3d6c48aacf3b Author: Andra Danciu Date: Fri Apr 5 14:50:10 2019 +0300 ASoC: wm1133-ev1: Switch to SPDX identifier Adopt the SPDX license identifier headers to ease license compliance management. Signed-off-by: Andra Danciu Signed-off-by: Mark Brown commit e5eec5ee98a6379b6a515beb27db4f9a80bd9276 Author: Andra Danciu Date: Fri Apr 5 14:50:09 2019 +0300 ASoC: phycore-ac97: Switch to SPDX identifier Adopt the SPDX license identifier headers to ease license compliance management. Signed-off-by: Andra Danciu Signed-off-by: Mark Brown commit 6e3398c67e682486b1f18672519a8e607d902172 Author: Andra Danciu Date: Fri Apr 5 14:50:08 2019 +0300 ASoC: pcm030-audio-fabric: Switch to SPDX identifier Adopt the SPDX license identifier headers to ease license compliance management. Signed-off-by: Andra Danciu Signed-off-by: Mark Brown commit 8acfeb65cbaa92ff2e4f3305c7a18a6edabd1d92 Author: Andra Danciu Date: Fri Apr 5 14:50:07 2019 +0300 ASoC: p1022_rdk: Switch to SPDX identifier Adopt the SPDX license identifier headers to ease license compliance management. Signed-off-by: Andra Danciu Signed-off-by: Mark Brown commit ab78529cfec09bf1a4327d48c4ba6d3d159a1540 Author: Andra Danciu Date: Fri Apr 5 14:50:06 2019 +0300 ASoC: p1022_ds: Switch to SPDX identifier Adopt the SPDX license identifier headers to ease license compliance management. Signed-off-by: Andra Danciu Signed-off-by: Mark Brown commit 1021ec41a909ee7961f63f38afd90b5ccc592c49 Author: Andra Danciu Date: Fri Apr 5 14:50:05 2019 +0300 ASoC: mx27vis-aic32x4: Switch to SPDX identifier Adopt the SPDX license identifier headers to ease license compliance management. Signed-off-by: Andra Danciu Signed-off-by: Mark Brown commit eed9bb238e08619547585e563499f79a700109b8 Author: Andra Danciu Date: Fri Apr 5 14:50:04 2019 +0300 ASoC: mpc8610_hpcd: Switch to SPDX identifier Adopt the SPDX license identifier headers to ease license compliance management. Signed-off-by: Andra Danciu Signed-off-by: Mark Brown commit 864a8472c4412dd9bedb6484ce41ec906e812d57 Author: Andra Danciu Date: Fri Apr 5 14:50:03 2019 +0300 ASoC: mpc5200_psc_i2s: Switch to SPDX identifier Adopt the SPDX license identifier headers to ease license compliance management. Signed-off-by: Andra Danciu Signed-off-by: Mark Brown commit 1af301d46246942a00e15294603dbd3abfb41a82 Author: Andra Danciu Date: Fri Apr 5 14:50:02 2019 +0300 ASoC: mpc5200_psc_ac97: Switch to SPDX identifier Adopt the SPDX license identifier headers to ease license compliance management. Signed-off-by: Andra Danciu Signed-off-by: Mark Brown commit 1edfc2485d8dcf4c766a5be8049cab1cddc6700d Author: Andra Danciu Date: Fri Apr 5 14:50:01 2019 +0300 ASoC: mpc5200_dma: Switch to SPDX identifier Adopt the SPDX license identifier headers to ease license compliance management. Signed-off-by: Andra Danciu Signed-off-by: Mark Brown commit 93a643f29bcbaac1f2199a5802536b202a553bbe Author: Jani Nikula Date: Fri Apr 5 14:00:26 2019 +0300 drm/i915/cdclk: have only one init/uninit function While transitioning to having better clarity between the modules, it's desirable to have the function name prefixes reflect the module. Functions in intel_foo.c should be prefixed intel_foo_. Expose only one CDCLK init/uninit function from intel_cdclk.c instead of one per platform. Obviously this adds one "unnecessary" if ladder within the entry points. However it should be considered more of a CDCLK implementation detail how this is done per platform, instead of exposing the fact. In other words, abstract the CDCLK module better. No functional changes. Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/f63ed6e129098a32c63735be6cffa4756e7947af.1554461791.git.jani.nikula@intel.com commit bdc16b5748926412ca90cf0521c718a46e2ca2b7 Author: Andra Danciu Date: Fri Apr 5 14:50:00 2019 +0300 ASoC: imx-ssi: Switch to SPDX identifier Adopt the SPDX license identifier headers to ease license compliance management. Signed-off-by: Andra Danciu Signed-off-by: Mark Brown commit e7674ef682f2a018bc34a25f0b32ac9baddf44da Author: Jani Nikula Date: Fri Apr 5 14:00:25 2019 +0300 drm/i915: extract intel_cdclk.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/c128d7be3f621391e571e86b03f302f3ffd0ed2b.1554461791.git.jani.nikula@intel.com commit f9a79f9aeeee6e5e139e93d9e79915f313489d33 Author: Jani Nikula Date: Fri Apr 5 14:00:24 2019 +0300 drm/i915: extract intel_sprite.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/679c857a1933ee3d0706f978ab05ca880cd30a00.1554461791.git.jani.nikula@intel.com commit 75a4639a9f9a15de1525eaa898574179b09d7b26 Author: Jani Nikula Date: Fri Apr 5 14:00:23 2019 +0300 drm/i915: extract intel_dvo.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/1ccf9000ad33b895aea06be41053a5b7bac8459e.1554461791.git.jani.nikula@intel.com commit 42406fdc282c7f2447a80063f5030260524f8091 Author: Jani Nikula Date: Fri Apr 5 14:00:22 2019 +0300 drm/i915: extract intel_lvds.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/5d54d02cf7b7bfe3f78ed60d28534c5726371af3.1554461791.git.jani.nikula@intel.com commit efe57eeae510229703bc6544dbefb801335a00de Author: Jani Nikula Date: Fri Apr 5 14:00:21 2019 +0300 drm/i915: extract intel_tv.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/f44c21e3d154e47233ebef4267ce1a924fa38df7.1554461791.git.jani.nikula@intel.com commit c6a35b9cf9e2af89a34fc35ed8006c666b8fcad9 Author: Jani Nikula Date: Fri Apr 5 14:00:20 2019 +0300 drm/i915: extract intel_pipe_crc.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/b106b21ef11ff7fc34537b2c029a1332c8573fcc.1554461791.git.jani.nikula@intel.com commit 56dabc93025220eb5d09ff95adfc560cb665d3e0 Author: Jani Nikula Date: Fri Apr 5 14:00:19 2019 +0300 drm/i915: extract intel_atomic_plane.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. v2: revert intel_plane_destroy_state() movement within intel_atomic_plane.c Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/fd56c1cbba22b9f195ad944d79f7977423b2b533.1554461791.git.jani.nikula@intel.com commit 58dbd1015d3ed47d53a99e7c4da0bbd3543177da Author: Andra Danciu Date: Fri Apr 5 14:49:59 2019 +0300 ASoC: imx-spdif: Switch to SPDX identifier Adopt the SPDX license identifier headers to ease license compliance management. Signed-off-by: Andra Danciu Signed-off-by: Mark Brown commit 0550691d58f9ce7e72118916f05f9c510183767f Author: Jani Nikula Date: Fri Apr 5 14:00:18 2019 +0300 drm/i915: extract intel_hdmi.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/357856c31e309f0af8eed0d800623a5253ff3a37.1554461791.git.jani.nikula@intel.com commit 27fec1f9734d33539df6c05fceb84fd981792899 Author: Jani Nikula Date: Fri Apr 5 14:00:17 2019 +0300 drm/i915: extract intel_dp.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/f86f9beed730eaad0bdcc18b18817b3d221e16e2.1554461791.git.jani.nikula@intel.com commit 6dfccb95cf17cd7e144d5214f2c41c17e7e31ec4 Author: Jani Nikula Date: Fri Apr 5 14:00:16 2019 +0300 drm/i915: extract intel_fbdev.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/82d11bf634094f44a7469a096de3d3768314d6bc.1554461791.git.jani.nikula@intel.com commit 696173b064c6dacd4e88d2ca15021e9bfc91328e Author: Jani Nikula Date: Fri Apr 5 14:00:15 2019 +0300 drm/i915: extract intel_pm.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. v2: gen6_rps_reset_ei() is in i915_irq.c not intel_pm.c. Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/adc6463b95eef3440fba9826793f7d1c5f3b0b4a.1554461791.git.jani.nikula@intel.com commit 44c1220a441ca79783c0c541c495c6978448d9f3 Author: Jani Nikula Date: Fri Apr 5 14:00:14 2019 +0300 drm/i915: extract intel_panel.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/c9f02ae09123866bc55269175ab75e844ffbd6ac.1554461791.git.jani.nikula@intel.com commit d4451c159a0b63efd5028d62cae501737d8679fa Author: Andra Danciu Date: Fri Apr 5 14:49:58 2019 +0300 ASoC: imx-pcm-fiq: Switch to SPDX identifier Adopt the SPDX license identifier headers to ease license compliance management. Signed-off-by: Andra Danciu Signed-off-by: Mark Brown commit 408bd91786665b8cb78540d67dbd148f287a1685 Author: Jani Nikula Date: Fri Apr 5 14:00:13 2019 +0300 drm/i915: extract intel_hdcp.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/8348620b32cb4438ccfb5f7bbe9a18ff6b7c48a0.1554461791.git.jani.nikula@intel.com commit 596fee14fbc9798ca1a969e87d7827d358ed2e5f Author: Jani Nikula Date: Fri Apr 5 14:00:12 2019 +0300 drm/i915: extract intel_sdvo.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/c507e15fef019541da5bb33f2fbe920a5ad2f3dc.1554461791.git.jani.nikula@intel.com commit f3e18947942756d17b02d4f34436f2d6e4a5d68b Author: Jani Nikula Date: Fri Apr 5 14:00:11 2019 +0300 drm/i915: extract intel_lspcon.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/b01cae3b5307d31c34de2321d6d2913f1cc39a12.1554461791.git.jani.nikula@intel.com commit 78c61320c5423cda757ae9119df542ecca39eca5 Author: Jani Nikula Date: Fri Apr 5 14:00:10 2019 +0300 drm/i915: extract intel_color.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/fe5928586b4ca538cc4bc99212c5b699e891c75e.1554461791.git.jani.nikula@intel.com commit a134f42eaacaa4d31785d51cf19a45845721b212 Author: Andra Danciu Date: Fri Apr 5 14:49:57 2019 +0300 ASoC: imx-mc13783: Switch to SPDX identifier Adopt the SPDX license identifier headers to ease license compliance management. Signed-off-by: Andra Danciu Signed-off-by: Mark Brown commit 55367a275ada04960a385c0371193f2953b870e6 Author: Jani Nikula Date: Fri Apr 5 14:00:09 2019 +0300 drm/i915: extract intel_psr.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. v2: Fix checkpatch whitespace complaint Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/7e776690bf139ccdd0306b30df08dc68e74603de.1554461791.git.jani.nikula@intel.com commit 98afa316d1edb6e64c11a65385de6175849abd19 Author: Jani Nikula Date: Fri Apr 5 14:00:08 2019 +0300 drm/i915: extract intel_fbc.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. v2: Remove stray newline (Chris) Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/db44ba199c86f24bfa9e490531eddf51cccd89da.1554461791.git.jani.nikula@intel.com commit 174594db632a2d484ee462bda606239b400dd078 Author: Jani Nikula Date: Fri Apr 5 14:00:07 2019 +0300 drm/i915: extract intel_csr.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. v2: Add function argument names to fix checkpatch warning Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/44ceebca0206de9c40dc6794b660d84b8994f700.1554461791.git.jani.nikula@intel.com commit 0fe61fc0c243b965d941f24e8b25cfc94697757a Author: Andra Danciu Date: Fri Apr 5 14:49:56 2019 +0300 ASoC: imx-es8328: Switch to SPDX identifier Adopt the SPDX license identifier headers to ease license compliance management. Signed-off-by: Andra Danciu Signed-off-by: Mark Brown commit ec7f29ff0d144c45d17d6e7c08f4e575956f9a56 Author: Jani Nikula Date: Fri Apr 5 14:00:06 2019 +0300 drm/i915: extract intel_connector.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/4b8e9d1fa8f0f0420ecc65063bdb7d068c13086e.1554461791.git.jani.nikula@intel.com commit fdc24cf30897d8ec96fe5a69fe4ac6c25b23bd8b Author: Jani Nikula Date: Fri Apr 5 14:00:05 2019 +0300 drm/i915: extract intel_ddi.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/61d159117475a48a5db7bd7d652c198d4fa08d7b.1554461791.git.jani.nikula@intel.com commit d2ee2e8afeeab62a7049b02d57fd7a90eac48ada Author: Jani Nikula Date: Fri Apr 5 14:00:04 2019 +0300 drm/i915: extract intel_crt.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/19c39bfcfb82f50c77382e8dea4fe1ad6cd043ed.1554461791.git.jani.nikula@intel.com commit 331c201a07261120cceb50ee71736bdc3dd07368 Author: Jani Nikula Date: Fri Apr 5 14:00:03 2019 +0300 drm/i915: extract intel_audio.h from intel_drv.h It used to be handy that we only had a couple of headers, but over time intel_drv.h has become unwieldy. Extract declarations to a separate header file corresponding to the implementation module, clarifying the modularity of the driver. Ensure the new header is self-contained, and do so with minimal further includes, using forward declarations as needed. Include the new header only where needed, and sort the modified include directives while at it and as needed. No functional changes. Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/e0284c4d62effa5bad72ce034206c26e3aa02884.1554461791.git.jani.nikula@intel.com commit 47bbcbfeb8ac99164067485a8322d92e69044211 Author: Andra Danciu Date: Fri Apr 5 14:49:55 2019 +0300 ASoC: imx-audmux: Switch to SPDX identifier Adopt the SPDX license identifier headers to ease license compliance management. Signed-off-by: Andra Danciu Signed-off-by: Mark Brown commit e1ef734eaec54b3162c61fcba1b49ba014a25ee5 Author: Jani Nikula Date: Fri Apr 5 14:00:02 2019 +0300 drm/i915: make intel_frontbuffer.h self-contained This will be helpful in the follow-up work. No functional changes. Reviewed-by: Chris Wilson Acked-by: Joonas Lahtinen Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/9a19d43987006e4249b335f3d843da43c998376c.1554461791.git.jani.nikula@intel.com commit e073564fe653eacbef6723a0a5210131b3998000 Author: Andra Danciu Date: Fri Apr 5 14:49:54 2019 +0300 ASoC: fsl-dma: Switch to SPDX identifier Adopt the SPDX license identifier headers to ease license compliance management. Signed-off-by: Andra Danciu Signed-off-by: Mark Brown commit ecf4630f1b9857141e38ea798bc30b8fd7c11dfc Author: Andra Danciu Date: Fri Apr 5 14:49:53 2019 +0300 ASoC: eukrea-tlv320: Switch to SPDX identifier Adopt the SPDX license identifier headers to ease license compliance management. Signed-off-by: Andra Danciu Signed-off-by: Mark Brown commit 1c05c1ed6f4dd267a2ca30bacd63870cd5ecc860 Author: Andra Danciu Date: Fri Apr 5 14:49:51 2019 +0300 ASoC: imx-pcm: Switch to SPDX identifier Adopt the SPDX license identifier headers to ease license compliance management. Signed-off-by: Andra Danciu Signed-off-by: Mark Brown commit b0d2569d8276439eb3d6f7d221f47bfc503ae00e Author: YueHaibing Date: Thu Mar 28 01:39:58 2019 +0000 gpio: mlxbf: remove unused including Remove including that don't need it. Signed-off-by: YueHaibing Signed-off-by: Bartosz Golaszewski commit eda69b0c06bc615f4b055d560ed19001619e611a Author: Eric Biggers Date: Sun Mar 31 13:09:14 2019 -0700 crypto: testmgr - add panic_on_fail module parameter Add a module parameter cryptomgr.panic_on_fail which causes the kernel to panic if any crypto self-tests fail. Use cases: - More easily detect crypto self-test failures by boot testing, e.g. on KernelCI. - Get a bug report if syzkaller manages to use the template system to instantiate an algorithm that fails its self-tests. The command-line option "fips=1" already does this, but it also makes other changes not wanted for general testing, such as disabling "unapproved" algorithms. panic_on_fail just does what it says. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit f6e9af87661530e60d9faf1d96675e8f22127aa8 Author: Eric Biggers Date: Sun Mar 31 13:04:21 2019 -0700 crypto: arm64/cbcmac - handle empty messages in same way as template My patches to make testmgr fuzz algorithms against their generic implementation detected that the arm64 implementations of "cbcmac(aes)" handle empty messages differently from the cbcmac template. Namely, the arm64 implementations return the encrypted initial value, but the cbcmac template returns the initial value directly. This isn't actually a meaningful case because any user of cbcmac needs to prepend the message length, as CCM does; otherwise it's insecure. However, we should keep the behavior consistent; at the very least this makes testing easier. Do it the easy way, which is to change the arm64 implementations to have the same behavior as the cbcmac template. For what it's worth, ghash does things essentially the same way: it returns its initial value when given an empty message, even though in practice ghash is never passed an empty message. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit c31a871985cac1a594a7e61e7ab808c0f81845ee Author: Eric Biggers Date: Sun Mar 31 13:04:20 2019 -0700 crypto: cts - don't support empty messages My patches to make testmgr fuzz algorithms against their generic implementation detected that the arm64 implementations of "cts(cbc(aes))" handle empty messages differently from the cts template. Namely, the arm64 implementations forbids (with -EINVAL) all messages shorter than the block size, including the empty message; but the cts template permits empty messages as a special case. No user should be CTS-encrypting/decrypting empty messages, but we need to keep the behavior consistent. Unfortunately, as noted in the source of OpenSSL's CTS implementation [1], there's no common specification for CTS. This makes it somewhat debatable what the behavior should be. However, all CTS specifications seem to agree that messages shorter than the block size are not allowed, and OpenSSL follows this in both CTS conventions it implements. It would also simplify the user-visible semantics to have empty messages no longer be a special case. Therefore, make the cts template return -EINVAL on *all* messages shorter than the block size, including the empty message. [1] https://github.com/openssl/openssl/blob/master/crypto/modes/cts128.c Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit c5c46887cfe7d0dff743d9eda7c91de625e96960 Author: Eric Biggers Date: Sun Mar 31 13:04:19 2019 -0700 crypto: streebog - fix unaligned memory accesses Don't cast the data buffer directly to streebog_uint512, as this violates alignment rules. Fixes: fe18957e8e87 ("crypto: streebog - add Streebog hash function") Cc: Vitaly Chikunov Signed-off-by: Eric Biggers Reviewed-by: Vitaly Chikunov Signed-off-by: Herbert Xu commit 5e27f38f1f3f45a0c938299c3a34a2d2db77165a Author: Eric Biggers Date: Sun Mar 31 13:04:16 2019 -0700 crypto: chacha20poly1305 - set cra_name correctly If the rfc7539 template is instantiated with specific implementations, e.g. "rfc7539(chacha20-generic,poly1305-generic)" rather than "rfc7539(chacha20,poly1305)", then the implementation names end up included in the instance's cra_name. This is incorrect because it then prevents all users from allocating "rfc7539(chacha20,poly1305)", if the highest priority implementations of chacha20 and poly1305 were selected. Also, the self-tests aren't run on an instance allocated in this way. Fix it by setting the instance's cra_name from the underlying algorithms' actual cra_names, rather than from the requested names. This matches what other templates do. Fixes: 71ebc4d1b27d ("crypto: chacha20poly1305 - Add a ChaCha20-Poly1305 AEAD construction, RFC7539") Cc: # v4.2+ Cc: Martin Willi Signed-off-by: Eric Biggers Reviewed-by: Martin Willi Signed-off-by: Herbert Xu commit dcaca01a42cc2c425154a13412b4124293a6e11e Author: Eric Biggers Date: Sun Mar 31 13:04:15 2019 -0700 crypto: skcipher - don't WARN on unprocessed data after slow walk step skcipher_walk_done() assumes it's a bug if, after the "slow" path is executed where the next chunk of data is processed via a bounce buffer, the algorithm says it didn't process all bytes. Thus it WARNs on this. However, this can happen legitimately when the message needs to be evenly divisible into "blocks" but isn't, and the algorithm has a 'walksize' greater than the block size. For example, ecb-aes-neonbs sets 'walksize' to 128 bytes and only supports messages evenly divisible into 16-byte blocks. If, say, 17 message bytes remain but they straddle scatterlist elements, the skcipher_walk code will take the "slow" path and pass the algorithm all 17 bytes in the bounce buffer. But the algorithm will only be able to process 16 bytes, triggering the WARN. Fix this by just removing the WARN_ON(). Returning -EINVAL, as the code already does, is the right behavior. This bug was detected by my patches that improve testmgr to fuzz algorithms against their generic implementation. Fixes: b286d8b1a690 ("crypto: skcipher - Add skcipher walk interface") Cc: # v4.10+ Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit dec3d0b1071a0f3194e66a83d26ecf4aa8c5910e Author: Eric Biggers Date: Sun Mar 31 13:04:13 2019 -0700 crypto: x86/crct10dif-pcl - fix use via crypto_shash_digest() The ->digest() method of crct10dif-pclmul reads the current CRC value from the shash_desc context. But this value is uninitialized, causing crypto_shash_digest() to compute the wrong result. Fix it. Probably this wasn't noticed before because lib/crc-t10dif.c only uses crypto_shash_update(), not crypto_shash_digest(). Likewise, crypto_shash_digest() is not yet tested by the crypto self-tests because those only test the ahash API which only uses shash init/update/final. Fixes: 0b95a7f85718 ("crypto: crct10dif - Glue code to cast accelerated CRCT10DIF assembly as a crypto transform") Cc: # v3.11+ Cc: Tim Chen Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 307508d1072979f4435416f87936f87eaeb82054 Author: Eric Biggers Date: Sun Mar 31 13:04:12 2019 -0700 crypto: crct10dif-generic - fix use via crypto_shash_digest() The ->digest() method of crct10dif-generic reads the current CRC value from the shash_desc context. But this value is uninitialized, causing crypto_shash_digest() to compute the wrong result. Fix it. Probably this wasn't noticed before because lib/crc-t10dif.c only uses crypto_shash_update(), not crypto_shash_digest(). Likewise, crypto_shash_digest() is not yet tested by the crypto self-tests because those only test the ahash API which only uses shash init/update/final. This bug was detected by my patches that improve testmgr to fuzz algorithms against their generic implementation. Fixes: 2d31e518a428 ("crypto: crct10dif - Wrap crc_t10dif function all to use crypto transform framework") Cc: # v3.11+ Cc: Tim Chen Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit f947d7fd12ab1ffddd4f25970ff6c06a879226e6 Author: YueHaibing Date: Sat Mar 30 13:54:29 2019 +0800 crypto: nx842 - remove set but not used variables 'dpadding' and 'max_sync_size' Fixes gcc '-Wunused-but-set-variable' warning: drivers/crypto/nx/nx-842.c: In function 'decompress': drivers/crypto/nx/nx-842.c:356:25: warning: variable 'dpadding' set but not used [-Wunused-but-set-variable] drivers/crypto/nx/nx-842-pseries.c: In function 'nx842_pseries_compress': drivers/crypto/nx/nx-842-pseries.c:299:15: warning: variable 'max_sync_size' set but not used [-Wunused-but-set-variable] drivers/crypto/nx/nx-842-pseries.c: In function 'nx842_pseries_decompress': drivers/crypto/nx/nx-842-pseries.c:430:15: warning: variable 'max_sync_size' set but not used [-Wunused-but-set-variable] They are not used any more and can be removed. Signed-off-by: YueHaibing Reviewed-by: Mukesh Ojha Signed-off-by: Herbert Xu commit dbbaffefd2699c49b8ebdf6e81538a3bb01b0137 Author: YueHaibing Date: Sat Mar 30 13:52:21 2019 +0800 crypto: mxs-dcp - return errcode in mxs_dcp_aes_enqueue and dcp_sha_update_fx 'err' is set in err path, but it's not returned to callers. Don't always return -EINPROGRESS, return err. Signed-off-by: YueHaibing Reviewed-by: Mukesh Ojha Signed-off-by: Herbert Xu commit d31549774d5dfcddd391a5085806026ac569d478 Author: YueHaibing Date: Sat Mar 30 13:28:58 2019 +0800 crypto: marvell - remove set but not used variable 'index' Fixes gcc '-Wunused-but-set-variable' warning: drivers/crypto/marvell/hash.c: In function 'mv_cesa_ahash_pad_req': drivers/crypto/marvell/hash.c:138:15: warning: variable 'index' set but not used [-Wunused-but-set-variable] It's never used and can be removed. Signed-off-by: YueHaibing Reviewed-by: Mukesh Ojha Signed-off-by: Herbert Xu commit 8316da02e3e07b0da9b2d812a619b5513c7f59d2 Author: YueHaibing Date: Sat Mar 30 01:43:16 2019 +0000 crypto: ccp - Use kmemdup in ccp_copy_and_save_keypart() Use kmemdup rather than duplicating its implementation Signed-off-by: YueHaibing Acked-by: Gary R Hook Signed-off-by: Herbert Xu commit 61abc356bf310d346d2d469cb009f6d4334f34de Author: Andi Kleen Date: Fri Mar 29 17:46:29 2019 -0700 crypto: aes - Use ___cacheline_aligned for aes data cacheline_aligned is a special section. It cannot be const at the same time because it's not read-only. It doesn't give any MMU protection. Mark it ____cacheline_aligned to not place it in a special section, but just align it in .rodata Cc: herbert@gondor.apana.org.au Suggested-by: Rasmus Villemoes Signed-off-by: Andi Kleen Acked-by: Ard Biesheuvel Signed-off-by: Herbert Xu commit 71052dcf4be70be4077817297dcde7b155e745f2 Author: Sebastian Andrzej Siewior Date: Fri Mar 29 14:09:56 2019 +0100 crypto: scompress - Use per-CPU struct instead multiple variables Two per-CPU variables are allocated as pointer to per-CPU memory which then are used as scratch buffers. We could be smart about this and use instead a per-CPU struct which contains the pointers already and then we need to allocate just the scratch buffers. Add a lock to the struct. By doing so we can avoid the get_cpu() statement and gain lockdep coverage (if enabled) to ensure that the lock is always acquired in the right context. On non-preemptible kernels the lock vanishes. It is okay to use raw_cpu_ptr() in order to get a pointer to the struct since it is protected by the spinlock. The diffstat of this is negative and according to size scompress.o: text data bss dec hex filename 1847 160 24 2031 7ef dbg_before.o 1754 232 4 1990 7c6 dbg_after.o 1799 64 24 1887 75f no_dbg-before.o 1703 88 4 1795 703 no_dbg-after.o The overall size increase difference is also negative. The increase in the data section is only four bytes without lockdep. Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Herbert Xu commit 6a4d1b18ef00a7b182740b7b4d8a0fcd317368f8 Author: Sebastian Andrzej Siewior Date: Fri Mar 29 14:09:55 2019 +0100 crypto: scompress - return proper error code for allocation failure If scomp_acomp_comp_decomp() fails to allocate memory for the destination then we never copy back the data we compressed. It is probably best to return an error code instead 0 in case of failure. I haven't found any user that is using acomp_request_set_params() without the `dst' buffer so there is probably no harm. Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Herbert Xu commit d6112ea0cb344d6f5ed519991e24f69ba4b43d0e Author: Singh, Brijesh Date: Thu Mar 28 21:58:52 2019 +0000 crypto: ccp - introduce SEV_GET_ID2 command The current definition and implementation of the SEV_GET_ID command does not provide the length of the unique ID returned by the firmware. As per the firmware specification, the firmware may return an ID length that is not restricted to 64 bytes as assumed by the SEV_GET_ID command. Introduce the SEV_GET_ID2 command to overcome with the SEV_GET_ID limitations. Deprecate the SEV_GET_ID in the favor of SEV_GET_ID2. At the same time update SEV API web link. Cc: Janakarajan Natarajan Cc: Herbert Xu Cc: Gary Hook Cc: Tom Lendacky Cc: Nathaniel McCallum Signed-off-by: Brijesh Singh Signed-off-by: Herbert Xu commit ffecb696d462de995fad2ad4429a509f439ddef0 Author: Dan Carpenter Date: Thu Mar 28 17:36:01 2019 +0300 crypto: caam/qi - Change a couple IS_ERR_OR_NULL() checks to IS_ERR() create_caam_req_fq() doesn't return NULL pointers so there is no need to check. The NULL checks are problematic because it's hard to say how a NULL return should be handled, so removing the checks is a nice cleanup. Signed-off-by: Dan Carpenter Reviewed-by: Horia Geantă Signed-off-by: Herbert Xu commit 8a3719a5b9ef55724b0b0e3667ff542f1d301cfd Author: Nagadheeraj Rottela Date: Thu Mar 28 13:15:49 2019 +0000 crypto: cavium/nitrox - Added rfc4106(gcm(aes)) cipher support Added rfc4106(gcm(aes)) cipher. Signed-off-by: Nagadheeraj Rottela Reviewed-by: Srikanth Jampala Signed-off-by: Herbert Xu commit 499653501baf27d26e73cb5ce744869df3400509 Author: Ville Syrjälä Date: Fri Apr 5 17:13:49 2019 +0300 drm/i915: Fix pipe_bpp readout for BXT/GLK DSI The only bpc information in pipe registers for BXT/GLK DSI is the PIPEMISC dither bpc. Let's try to use that to read out pipe_bpp on these platforms. However, I'm not sure if this will be correctly populated by the GOP since bspec suggests it's only needed if dithering is actually enabled. If not I guess we'll have to go one step further and extract pipe_bpp from the DSI pixel format when dithering is disabled. Cc: Hans de Goede Fixes: ca0b04db14a5 ("drm/i915/dsi: Fix pipe_bpp for handling for 6 bpc pixel-formats") References: https://bugs.freedesktop.org/show_bug.cgi?id=109516 Signed-off-by: Ville Syrjälä Reviewed-by: Imre Deak Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190405141349.11950-1-ville.syrjala@linux.intel.com commit ab3e023b1b4c9887c9f0f761b47f3f0516bd3434 Author: Gerd Hoffmann Date: Fri Apr 5 11:52:19 2019 +0200 drm/cirrus: rewrite and modernize driver. Time to kill some bad sample code people are copying from ;) This is a complete rewrite of the cirrus driver. The cirrus_mode_set() function is pretty much the only function which is carried over largely unmodified. Everything else is upside down. It is a single monster patch. But given that it does some pretty fundamental changes to the drivers workflow and also reduces the code size by roughly 70% I think it'll still be alot easier to review than a longish baby-step patch series. Changes summary: - Given the small amout of video memory (4 MB) the cirrus device has the rewritten driver doesn't try to manage buffers there. Instead it will blit (memcpy) the active framebuffer to video memory. - All gem objects are stored in main memory and are manged using the new shmem helpers. ttm is out. - It supports RG16, RG24 and XR24 formats. XR24 gets converted to RG24 or RG16 at blit time if needed, to avoid the pitch becoming larger than what the cirrus hardware can handle. - The simple display pipeline is used. - The generic fbdev emulation is used. - It's a atomic driver now. - It runs wayland. Signed-off-by: Gerd Hoffmann Acked-by: Daniel Vetter Reviewed-by: Sam Ravnborg Acked-by: Noralf Trønnes Link: http://patchwork.freedesktop.org/patch/msgid/20190405095219.9231-6-kraxel@redhat.com commit ec3de7a43e9cac8a2dc1fce069321cb9538f0b34 Author: Gerd Hoffmann Date: Fri Apr 5 11:52:18 2019 +0200 drm: add drm_fb_xrgb8888_to_rgb888_dstclip() Simliar to drm_fb_xrgb8888_to_rgb565_dstclip() but converts to rgb888 instead of rgb565. Signed-off-by: Gerd Hoffmann Reviewed-by: Noralf Trønnes Link: http://patchwork.freedesktop.org/patch/msgid/20190405095219.9231-5-kraxel@redhat.com commit bcc4442008aca0e1566b7367f51670143d1ea7bf Author: Gerd Hoffmann Date: Fri Apr 5 11:52:17 2019 +0200 drm: add drm_fb_xrgb8888_to_rgb565_dstclip() It is a drm_fb_xrgb8888_to_rgb565() variant which checks the clip rectangle for the destination too. Common code between drm_fb_xrgb8888_to_rgb565() and drm_fb_xrgb8888_to_rgb565_dstclip() was factored out into the drm_fb_xrgb8888_to_rgb565_lines() helper function. Signed-off-by: Gerd Hoffmann Reviewed-by: Noralf Trønnes Link: http://patchwork.freedesktop.org/patch/msgid/20190405095219.9231-4-kraxel@redhat.com commit 26f024f54ab69a1012214755223d6ed61dd7bc98 Author: Gerd Hoffmann Date: Fri Apr 5 11:52:16 2019 +0200 drm: add drm_fb_memcpy_dstclip() helper It is a drm_fb_memcpy() variant which checks the clip rectangle for the destination too. Common code between drm_fb_memcpy() and drm_fb_memcpy_dstclip() was factored out into the drm_fb_memcpy_lines() helper function. Signed-off-by: Gerd Hoffmann Reviewed-by: Noralf Trønnes Link: http://patchwork.freedesktop.org/patch/msgid/20190405095219.9231-3-kraxel@redhat.com commit 7415287e1f3675996a4a6919fe500c30d30951f6 Author: Gerd Hoffmann Date: Fri Apr 5 11:52:15 2019 +0200 drm: move tinydrm format conversion helpers to new drm_format_helper.c Also rename them from tinydrm_* to drm_fb_* Pure code motion, no functional change. Signed-off-by: Gerd Hoffmann Reviewed-by: Sam Ravnborg Reviewed-by: Noralf Trønnes Link: http://patchwork.freedesktop.org/patch/msgid/20190405095219.9231-2-kraxel@redhat.com commit 1f17f7742eeba73dbd5ae8bdec1a85ce5877001e Author: Vlad Buslov Date: Fri Apr 5 20:56:26 2019 +0300 net: sched: flower: insert filter to ht before offloading it to hw John reports: Recent refactoring of fl_change aims to use the classifier spinlock to avoid the need for rtnl lock. In doing so, the fl_hw_replace_filer() function was moved to before the lock is taken. This can create problems for drivers if duplicate filters are created (commmon in ovs tc offload due to filters being triggered by user-space matches). Drivers registered for such filters will now receive multiple copies of the same rule, each with a different cookie value. This means that the drivers would need to do a full match field lookup to determine duplicates, repeating work that will happen in flower __fl_lookup(). Currently, drivers do not expect to receive duplicate filters. To fix this, verify that filter with same key is not present in flower classifier hash table and insert the new filter to the flower hash table before offloading it to hardware. Implement helper function fl_ht_insert_unique() to atomically verify/insert a filter. This change makes filter visible to fast path at the beginning of fl_change() function, which means it can no longer be freed directly in case of error. Refactor fl_change() error handling code to deallocate the filter with rcu timeout. Fixes: 620da4860827 ("net: sched: flower: refactor fl_change") Reported-by: John Hurley Signed-off-by: Vlad Buslov Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit 9186c90bbb9525f46eddb590be26c749b5b1def7 Merge: 1e045a62eea6 149212f07856 Author: David S. Miller Date: Sun Apr 7 19:12:12 2019 -0700 Merge branch 'rhashtable-bitlocks' NeilBrown says: ==================== Convert rhashtable to use bitlocks This series converts rhashtable to use a per-bucket bitlock rather than a separate array of spinlocks. This: reduces memory usage results in slightly fewer memory accesses slightly improves parallelism makes a configuration option unnecessary The main change from previous version is to use a distinct type for the pointer in the bucket which has a bit-lock in it. This helped find two places where rht_ptr() was missed, one in rhashtable_free_and_destroy() in print_ht in the test code. ==================== Signed-off-by: David S. Miller commit 149212f07856b25a9d342bfd6d736519b2ef66dc Author: NeilBrown Date: Tue Apr 2 10:07:45 2019 +1100 rhashtable: add lockdep tracking to bucket bit-spin-locks. Native bit_spin_locks are not tracked by lockdep. The bit_spin_locks used for rhashtable buckets are local to the rhashtable implementation, so there is little opportunity for the sort of misuse that lockdep might detect. However locks are held while a hash function or compare function is called, and if one of these took a lock, a misbehaviour is possible. As it is quite easy to add lockdep support this unlikely possibility seems to be enough justification. So create a lockdep class for bucket bit_spin_lock and attach through a lockdep_map in each bucket_table. Without the 'nested' annotation in rhashtable_rehash_one(), lockdep correctly reports a possible problem as this lock is taken while another bucket lock (in another table) is held. This confirms that the added support works. With the correct nested annotation in place, lockdep reports no problems. Signed-off-by: NeilBrown Signed-off-by: David S. Miller commit 8f0db018006a421956965e1149234c4e8db718ee Author: NeilBrown Date: Tue Apr 2 10:07:45 2019 +1100 rhashtable: use bit_spin_locks to protect hash bucket. This patch changes rhashtables to use a bit_spin_lock on BIT(1) of the bucket pointer to lock the hash chain for that bucket. The benefits of a bit spin_lock are: - no need to allocate a separate array of locks. - no need to have a configuration option to guide the choice of the size of this array - locking cost is often a single test-and-set in a cache line that will have to be loaded anyway. When inserting at, or removing from, the head of the chain, the unlock is free - writing the new address in the bucket head implicitly clears the lock bit. For __rhashtable_insert_fast() we ensure this always happens when adding a new key. - even when lockings costs 2 updates (lock and unlock), they are in a cacheline that needs to be read anyway. The cost of using a bit spin_lock is a little bit of code complexity, which I think is quite manageable. Bit spin_locks are sometimes inappropriate because they are not fair - if multiple CPUs repeatedly contend of the same lock, one CPU can easily be starved. This is not a credible situation with rhashtable. Multiple CPUs may want to repeatedly add or remove objects, but they will typically do so at different buckets, so they will attempt to acquire different locks. As we have more bit-locks than we previously had spinlocks (by at least a factor of two) we can expect slightly less contention to go with the slightly better cache behavior and reduced memory consumption. To enhance type checking, a new struct is introduced to represent the pointer plus lock-bit that is stored in the bucket-table. This is "struct rhash_lock_head" and is empty. A pointer to this needs to be cast to either an unsigned lock, or a "struct rhash_head *" to be useful. Variables of this type are most often called "bkt". Previously "pprev" would sometimes point to a bucket, and sometimes a ->next pointer in an rhash_head. As these are now different types, pprev is NULL when it would have pointed to the bucket. In that case, 'blk' is used, together with correct locking protocol. Signed-off-by: NeilBrown Signed-off-by: David S. Miller commit ff302db965b57c141297911ea647d36d11fedfbe Author: NeilBrown Date: Tue Apr 2 10:07:45 2019 +1100 rhashtable: allow rht_bucket_var to return NULL. Rather than returning a pointer to a static nulls, rht_bucket_var() now returns NULL if the bucket doesn't exist. This will make the next patch, which stores a bitlock in the bucket pointer, somewhat cleaner. This change involves introducing __rht_bucket_nested() which is like rht_bucket_nested(), but doesn't provide the static nulls, and changing rht_bucket_nested() to call this and possible provide a static nulls - as is still needed for the non-var case. Signed-off-by: NeilBrown Signed-off-by: David S. Miller commit 7a41c294c1463100fdc82a356e22e36bbaa6b0f9 Author: NeilBrown Date: Tue Apr 2 10:07:45 2019 +1100 rhashtable: use cmpxchg() in nested_table_alloc() nested_table_alloc() relies on the fact that there is at most one spinlock allocated for every slot in the top level nested table, so it is not possible for two threads to try to allocate the same table at the same time. This assumption is a little fragile (it is not explicit) and is unnecessary as cmpxchg() can be used instead. A future patch will replace the spinlocks by per-bucket bitlocks, and then we won't be able to protect the slot pointer with a spinlock. So replace rcu_assign_pointer() with cmpxchg() - which has equivalent barrier properties. If it the cmp fails, free the table that was just allocated. Signed-off-by: NeilBrown Signed-off-by: David S. Miller commit b9c273babce791cf228fc466577f55056a699f9c Author: Rafael J. Wysocki Date: Thu Mar 21 23:20:17 2019 +0100 PM / arch: x86: MSR_IA32_ENERGY_PERF_BIAS sysfs interface The Performance and Energy Bias Hint (EPB) is expected to be set by user space through the generic MSR interface, but that interface is not particularly nice and there are security concerns regarding it, so it is not always available. For this reason, add a sysfs interface for reading and updating the EPB, in the form of a new attribute, energy_perf_bias, located under /sys/devices/system/cpu/cpu#/power/ for online CPUs that support the EPB feature. Signed-off-by: Rafael J. Wysocki Reviewed-by: Hannes Reinecke Acked-by: Borislav Petkov commit 5861381d486601430cccf64849bd0a226154bc0d Author: Rafael J. Wysocki Date: Thu Mar 21 23:18:01 2019 +0100 PM / arch: x86: Rework the MSR_IA32_ENERGY_PERF_BIAS handling The current handling of MSR_IA32_ENERGY_PERF_BIAS in the kernel is problematic, because it may cause changes made by user space to that MSR (with the help of the x86_energy_perf_policy tool, for example) to be lost every time a CPU goes offline and then back online as well as during system-wide power management transitions into sleep states and back into the working state. The first problem is that if the current EPB value for a CPU going online is 0 ('performance'), the kernel will change it to 6 ('normal') regardless of whether or not this is the first bring-up of that CPU. That also happens during system-wide resume from sleep states (including, but not limited to, hibernation). However, the EPB may have been adjusted by user space this way and the kernel should not blindly override that setting. The second problem is that if the platform firmware resets the EPB values for any CPUs during system-wide resume from a sleep state, the kernel will not restore their previous EPB values that may have been set by user space before the preceding system-wide suspend transition. Again, that behavior may at least be confusing from the user space perspective. In order to address these issues, rework the handling of MSR_IA32_ENERGY_PERF_BIAS so that the EPB value is saved on CPU offline and restored on CPU online as well as (for the boot CPU) during the syscore stages of system-wide suspend and resume transitions, respectively. However, retain the policy by which the EPB is set to 6 ('normal') on the first bring-up of each CPU if its initial value is 0, based on the observation that 0 may mean 'not initialized' just as well as 'performance' in that case. While at it, move the MSR_IA32_ENERGY_PERF_BIAS handling code into a separate file and document it in Documentation/admin-guide. Fixes: abe48b108247 (x86, intel, power: Initialize MSR_IA32_ENERGY_PERF_BIAS) Fixes: b51ef52df71c (x86/cpu: Restore MSR_IA32_ENERGY_PERF_BIAS after resume) Reported-by: Thomas Renninger Signed-off-by: Rafael J. Wysocki Reviewed-by: Hannes Reinecke Acked-by: Borislav Petkov Acked-by: Thomas Gleixner commit 174c9526ac8930955a6c332a273aa04e04146f72 Merge: 6e6c214f16e4 bc1b8492c764 Author: Jacek Anaszewski Date: Sun Apr 7 20:55:14 2019 +0200 Merge tag 'lm3532-driver-improvements' into for-next Merge immutable branch between LEDs, MFD and OMAP Device Tree due to LM3532 backlight driver improvements and relocation. * tag 'lm3532-driver-improvements': leds: lm3532: Introduce the lm3532 LED driver mfd: ti-lmu: Remove LM3532 backlight driver references ARM: dts: omap4-droid4: Update backlight dt properties dt: lm3532: Add lm3532 dt doc and update ti_lmu doc commit bc1b8492c764fea940fc66206047e37a7f8d77e1 Author: Dan Murphy Date: Thu Mar 21 09:28:38 2019 -0500 leds: lm3532: Introduce the lm3532 LED driver Introduce the Texas Instruments LM3532 White LED driver. The driver supports ALS configurability or manual brightness control. The driver also supports associating LED strings with specific control banks in a group or as individually controlled strings. Signed-off-by: Dan Murphy Tested-by: Tony Lindgren Signed-off-by: Jacek Anaszewski commit e4b3b4435562fba5cf66dbada95568f3070f8a9f Author: Dan Murphy Date: Thu Mar 21 09:28:37 2019 -0500 mfd: ti-lmu: Remove LM3532 backlight driver references Remove the LM3532 backlight driver references from the ti-lmu code as dedicated driver support is available. Signed-off-by: Dan Murphy Acked-for-MFD-by: Lee Jones Signed-off-by: Jacek Anaszewski commit 863a0618226eb0d802e7fd830135a947bae5d2fa Author: Dan Murphy Date: Thu Mar 21 09:28:36 2019 -0500 ARM: dts: omap4-droid4: Update backlight dt properties Update the properties for the lm3532 device node for droid4. With this change the backlight LED string and the keypad LED strings will be controlled separately. Signed-off-by: Dan Murphy Acked-by: Tony Lindgren [tony@atomide.com: remove the line "backlight = <&lcd_backlight>"] Signed-off-by: Tony Lindgren Signed-off-by: Jacek Anaszewski commit 6ccc7435fab7cc4f158440b086105c263b62a36f Author: Dan Murphy Date: Thu Mar 21 09:28:35 2019 -0500 dt: lm3532: Add lm3532 dt doc and update ti_lmu doc Add the lm3532 device tree documentation. Remove lm3532 device tree reference from the ti_lmu devicetree documentation. With the addition of the dedicated lm3532 documentation the device can be removed from the ti_lmu.txt. The reason for this is that the lm3532 dt documentation now defines the ability to control LED output strings against different control banks or groups multiple strings to be controlled by a single control bank. Another addition was for ALS lighting control and configuration. The LM3532 has a feature that can take in the ALS reading from 2 separate ALS devices and adjust the brightness on the strings that are configured to support this feature. Finally the device specific properties were moved to the parent node as these properties are not control bank configurable. These include the runtime ramp and the ALS configuration. Signed-off-by: Dan Murphy Reviewed-by: Rob Herring Acked-for-MFD-by: Lee Jones Acked-by: Tony Lindgren Signed-off-by: Jacek Anaszewski commit 24cccab42c4199c6daa0a6981e6f6a1ffb0b5a09 Author: Kees Cook Date: Sat Apr 6 08:59:19 2019 -0700 lkdtm/bugs: Adjust recursion test to avoid elision While I was able to trick gcc into keeping a pathological recursion, Clang was not so easily fooled. Instead, switch to using "volatile" and side-effects to keep the stack variable allocated and to run the function. Additionally renames "OVERFLOW" to "EXHAUST_STACK" to better describe the test. Signed-off-by: Kees Cook commit 2bf8496f6e9b7e9a557f65eb95eab16fea7958c7 Author: Kees Cook Date: Sat Apr 6 08:52:11 2019 -0700 lkdtm/usercopy: Moves the KERNEL_DS test to non-canonical The prior implementation of the KERNEL_DS fault checking would work on any unmapped kernel address, but this was narrowed to the non-canonical range instead. This adjusts the LKDTM test to match. Fixes: 00c42373d397 ("x86-64: add warning for non-canonical user access address dereferences") Signed-off-by: Kees Cook commit 1e83bc8156028a938845a869a3317c3cab9630ac Author: Arnd Bergmann Date: Sun Apr 7 12:24:43 2019 -0400 ext4: use BUG() instead of BUG_ON(1) BUG_ON(1) leads to bogus warnings from clang when CONFIG_PROFILE_ANNOTATED_BRANCHES is set: fs/ext4/inode.c:544:4: error: variable 'retval' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized] BUG_ON(1); ^~~~~~~~~ include/asm-generic/bug.h:61:36: note: expanded from macro 'BUG_ON' ^~~~~~~~~~~~~~~~~~~ include/linux/compiler.h:48:23: note: expanded from macro 'unlikely' ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ fs/ext4/inode.c:591:6: note: uninitialized use occurs here if (retval > 0 && map->m_flags & EXT4_MAP_MAPPED) { ^~~~~~ fs/ext4/inode.c:544:4: note: remove the 'if' if its condition is always true BUG_ON(1); ^ include/asm-generic/bug.h:61:32: note: expanded from macro 'BUG_ON' ^ fs/ext4/inode.c:502:12: note: initialize the variable 'retval' to silence this warning Change it to BUG() so clang can see that this code path can never continue. Signed-off-by: Arnd Bergmann Signed-off-by: Theodore Ts'o Reviewed-by: Nick Desaulniers Reviewed-by: Jan Kara commit d454a27384f6eb05904a59d1607461b7ad312aa9 Author: Liu Xiang Date: Sun Apr 7 11:54:27 2019 -0400 ext4: fix prefetchw of NULL page In ext4_mpage_readpages(), if the parameter pages is not NULL, another parameter page is NULL. At the first time prefetchw(&page->flags) works on NULL. From second time, prefetchw(&page->flags) always works on the last consumed page. This might do little improvment for handling current page. So prefetchw() should be called while the page pointer has just been updated. Signed-off-by: Liu Xiang Signed-off-by: Theodore Ts'o commit 513a4c5589b4a07d3cc1c42329ff3e93505613e5 Author: Chris Wilson Date: Sat Apr 6 09:03:41 2019 +0100 drm/i915: Track the temporary wakerefs used for hsw_get_pipe_config Haswell+ require many power wells to probe the current HW display state. Under the wakeref tracking scheme, we want each owner to store and release the wakeref they use, so we can identify callers that have leaked their wakeref. For hsw_get_pipe_config, this means we have to keep the array of all wakerefs as it current acquires its power wells piecemeal and releases them en masse. By tracking these wakerefs, we should be able to eliminate a lot of noise from the runtime-pm debug logs. Signed-off-by: Chris Wilson Reviewed-by: Imre Deak Link: https://patchwork.freedesktop.org/patch/msgid/20190406080341.2654-1-chris@chris-wilson.co.uk commit 0db8aa49a97e7f40852a64fd35abcc1292a7c365 Author: Vincent Stehlé Date: Sun Mar 31 20:54:23 2019 +0200 iio: adc: ads124: avoid buffer overflow When initializing the priv->data array starting from index 1, there is one less element to consider than when initializing the full array. Fixes: e717f8c6dfec8f76 ("iio: adc: Add the TI ads124s08 ADC code") Signed-off-by: Vincent Stehlé Reviewed-by: Mukesh Ojha Reviewed-by: Dan Murphy Cc: Signed-off-by: Jonathan Cameron commit 43901008fde098fafd0ac000d769c30240c7bee9 Author: Lorenzo Bianconi Date: Thu Apr 4 18:02:34 2019 +0200 iio: imu: st_lsm6dsx: add support to LSM6DSR Add support to STM LSM6DSR 6-axis (acc + gyro) Mems sensor https://www.st.com/resource/en/datasheet/lsm6dsr.pdf Signed-off-by: Lorenzo Bianconi Signed-off-by: Jonathan Cameron commit 4e63ed6b90803eeb400c392e9ff493200d926b06 Author: Tomer Maimon Date: Sun Apr 7 11:19:28 2019 +0300 iio: adc: modify NPCM ADC read reference voltage Checking if regulator is valid before reading NPCM ADC regulator voltage to avoid system crash in a case the regulator is not valid. Signed-off-by: Tomer Maimon Cc: Signed-off-by: Jonathan Cameron commit ff466b58055f2d28d8ddc1388af312e87a693efe Author: Andrey Ignatov Date: Sat Apr 6 22:37:34 2019 -0700 libbpf: Ignore -Wformat-nonliteral warning vsprintf() in __base_pr() uses nonliteral format string and it breaks compilation for those who provide corresponding extra CFLAGS, e.g.: https://github.com/libbpf/libbpf/issues/27 If libbpf is built with the flags from PR: libbpf.c:68:26: error: format string is not a string literal [-Werror,-Wformat-nonliteral] return vfprintf(stderr, format, args); ^~~~~~ 1 error generated. Ignore this warning since the use case in libbpf.c is legit. Signed-off-by: Andrey Ignatov Acked-by: Yonghong Song Signed-off-by: Alexei Starovoitov commit 1e045a62eea6a60f0463b01f72256a5ba483da1c Merge: f1054c65bca6 5150b45fd355 Author: David S. Miller Date: Sat Apr 6 18:32:21 2019 -0700 Merge branch 'net-hsr-improvements-and-bug-fixes' Murali Karicheri says: ==================== net: hsr: improvements and bug fixes This series has some coding style fixes and other bug fixes. Patch 12/14, I have also done SPDX conversion. Not sure if that is the only thing needed and is correct. So please pay close attention to this patch before merge as I would like to avoid any issue related to licensing applicable for this code. ==================== Signed-off-by: David S. Miller commit 5150b45fd3553bf86b4a3d58d17146877480c0cc Author: Aaron Kramer Date: Fri Apr 5 13:31:36 2019 -0400 net: hsr: Fix node prune function for forget time expiry HSR should forget nodes after configured node forget time expiry based on HSR_NODE_FORGET_TIME. As part of hsr_prune_nodes(), code checks to see if entries are to be flushed out if not heard for longer than forget time. But currently hsr_prune_nodes() is called only once during device creation. Restart the timer at the end of hsr_prune_nodes() so that hsr_prune_nodes() gets called periodically and forgotten entries are removed from node table. Signed-off-by: Aaron Kramer Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller commit fc4ecaeebd26c77d463c898d9dd3edee234e371c Author: Murali Karicheri Date: Fri Apr 5 13:31:35 2019 -0400 net: hsr: add debugfs support for display node list This adds a debugfs interface to allow display the nodes learned by the hsr master. Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller commit 0e7623bdf34fff6587f96c27132aebe8c585631d Author: Murali Karicheri Date: Fri Apr 5 13:31:34 2019 -0400 net: hsr: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller commit 9f73c2bb46f4fae27c2b3b54d1964276439c02e8 Author: Murali Karicheri Date: Fri Apr 5 13:31:33 2019 -0400 net: hsr: add blank line after function declaration Add a blank line after function declaration as suggested by checkpatch.pl -f Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller commit b1b4aa914080286aa82d4e629d1a646738f2f94c Author: Murali Karicheri Date: Fri Apr 5 13:31:32 2019 -0400 net: hsr: remove camel case usage in the code Current driver code uses camel case in many places. This is seen when ran checkpatch.pl -f on files under net/hsr. This patch fixes the code to remove camel case usage. Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller commit d131fcc690b9f204581ed14581f5c7f2347cb140 Author: Murali Karicheri Date: Fri Apr 5 13:31:31 2019 -0400 net: hsr: add missing space around operator in code This patch add missing space around operator in code. This is seen when ran checkpatch.pl -f on files under net/hsr. Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller commit 059477830022e1886f55a9641702461c249fa864 Author: Murali Karicheri Date: Fri Apr 5 13:31:30 2019 -0400 net: hsr: fix placement of logical operator in a multi-line statement In a multi-line statement exceeding 80 characters, logical operator should be at the end of a line instead of being at the start. This is seen when ran checkpatch.pl -f on files under net/hsr. The change is per suggestion from checkpatch. Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller commit 5fa9677803643f96f8eb76d2aff7966b26078187 Author: Murali Karicheri Date: Fri Apr 5 13:31:29 2019 -0400 net: hsr: remove unnecessary space after a cast This patch removes unnecessary space after a cast. This is seen when ran checkpatch.pl -f on files under net/hsr. Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller commit 05ca6e644dc9b733379009137ba4cc7afce2256d Author: Murali Karicheri Date: Fri Apr 5 13:31:28 2019 -0400 net: hsr: fix NULL checks in the code This patch replaces all instance of NULL checks such as if (foo == NULL) with if (!foo) Also if (foo != NULL) with if (foo) This is seen when ran checkpatch.pl -f on files under net/hsr and suggestion is to replace as above. Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller commit 0525fc069f03dfd871752eb7afc85075444c8b28 Author: Murali Karicheri Date: Fri Apr 5 13:31:27 2019 -0400 net: hsr: fix lines that ends with a '(' This patch fixes function calls that ends with '(' in a line. This is seen when ran checkpatch.pl -f option on files under net/hsr. Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller commit 4fe25bd8c3e74519e3a0682b001d248fdf23838b Author: Murali Karicheri Date: Fri Apr 5 13:31:26 2019 -0400 net: hsr: fix alignment issues in the code for functions This patch fixes alignment issues in code for functions. This is seen when ran checkpatch.pl -f option on files under net/hsr. Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller commit 5670342ced28b87f598d97e49d27bd99b38c1665 Author: Murali Karicheri Date: Fri Apr 5 13:31:25 2019 -0400 net: hsr: remove unnecessary paranthesis from the code This patch fixes unnecessary paranthesis from the code. This is seen when ran checkpatch.pl -f option on files under net/hsr. Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller commit d4730775ed4ba91615f462415ab66f49431ee794 Author: Murali Karicheri Date: Fri Apr 5 13:31:24 2019 -0400 net: hsr: fix multiple blank lines in the code This patch fixes multiple blank lines in the code. This is seen when ran checkpatch.pl -f option for files under net/hsr Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller commit d595b85a6cea56874cee16ddc739289f552a9a2f Author: Murali Karicheri Date: Fri Apr 5 13:31:23 2019 -0400 net: hsr: fix lines exceeding 80 characters This patch fixes lines exceeding 80 characters. This is seen when ran checkpatch.pl with -f option for files under net/hsr. Signed-off-by: Murali Karicheri Signed-off-by: David S. Miller commit f1054c65bca637c220fe8e32648156459361bb99 Author: Nikolay Aleksandrov Date: Fri Apr 5 18:40:47 2019 +0300 selftests: forwarding: test for bridge mcast traffic after report and leave This test is split in two, the first part checks if a report creates a corresponding mdb entry and if traffic is properly forwarded to it, and the second part checks if the mdb entry is deleted after a leave and if traffic is *not* forwarded to it. Since the mcast querier is enabled we should see standard mcast snooping bridge behaviour. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller commit ea401685a20b5d631957f024bda86e1f6118eb20 Author: Colin Ian King Date: Fri Apr 5 14:59:16 2019 +0100 net: hns: fix unsigned comparison to less than zero Currently mskid is unsigned and hence comparisons with negative error return values are always false. Fix this by making mskid an int. Fixes: f058e46855dc ("net: hns: fix ICMP6 neighbor solicitation messages discard problem") Addresses-Coverity: ("Operands don't affect result") Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Signed-off-by: David S. Miller commit afdb3df2925a240fd6e73ca53fdb885e90da88ba Merge: d1edc0855597 25766271e42f Author: David S. Miller Date: Sat Apr 6 18:21:46 2019 -0700 Merge branch 'r8152-runtime-mac-changes' Mario Limonciello says: ==================== r8152: Support runtime changes of vendor mac passthu policy On some platforms ACPI method `\\_SB.AMAC` is dynamic and changes to it can influence changing the behavior of MAC pass through and what MAC address is used. When running USB reset, re-read the MAC address to use to support tools that change the policy. This is quite similar to using `SIOCSIFHWADDR` except that the actual MAC to use comes from ASL rather than from userspace. Changes from v1: * Remove an extra unneeded `ether_addr_copy` call * Use `dev_set_mac_address` to ensure all notifiers are called * Shuffle functions to allow code re-use. ==================== Signed-off-by: David S. Miller commit 25766271e42f6b15b72ba156cb42a3fea91b5b21 Author: Mario Limonciello Date: Thu Apr 4 13:46:53 2019 -0500 r8152: Refresh MAC address during USBDEVFS_RESET On some platforms it is possible to dynamically change the policy of what MAC address is selected from the ASL at runtime. These tools will reset the USB device and expect the change to be made immediately. Signed-off-by: Mario Limonciello Signed-off-by: David S. Miller commit 78fdde30d4bd3175f77bcdfc1bb18f96e3dedef0 Author: Mario Limonciello Date: Thu Apr 4 13:46:52 2019 -0500 r8152: remove extra action copying ethernet address This already happens later on in `rtl8152_set_mac_address` Signed-off-by: Mario Limonciello Signed-off-by: David S. Miller commit d1edc085559744fbda7a55e97eeae8bd6135a11b Author: Colin Ian King Date: Thu Apr 4 15:46:03 2019 +0100 tcp: remove redundant check on tskb The non-null check on tskb is always false because it is in an else path of a check on tskb and hence tskb is null in this code block. This is check is therefore redundant and can be removed as well as the label coalesc. if (tsbk) { ... } else { ... if (unlikely(!skb)) { if (tskb) /* can never be true, redundant code */ goto coalesc; return; } } Addresses-Coverity: ("Logically dead code") Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit cdf369cd5808fccd1d10cbf68f39429709410f31 Merge: 7934b481ab1a fad137c4ef07 Author: David S. Miller Date: Sat Apr 6 18:16:58 2019 -0700 Merge branch 'net-phy-add-Amlogic-g12a-support' Jerome Brunet says: ==================== net: phy: add Amlogic g12a support This patchset adds the necessary bits to support network on the Amlogic g12a SoC family. Only the internal PHY and related MDIO mux needed to be addressed. The GMAC remains compatible with axg SoC family This series has been tested on the u200 (S905D2) with both the internal and external (Realtek) PHYs. Change since v2 [1]: * Change 'clk part' Reviewed-by as suggested * Remove default callback from phy drivers * Use exact match PHY macros * Default MDIO g12a as module if ARCH_MESON is enabled * Don't print error on probe defer in the g12a mdio mux Change since v1 [0]: * drop '_' from function name unrelated to locking * fix peripheral clock disable on error * fix variable declaration reverse Xmas trees * fix Kconfig dependency on CCF (Actually needed for 'struct clk_hw', Thx Andrew !) * Minor fix in the DT exemple as reported by Rob [0] https://lkml.kernel.org/r/20190314140135.19184-1-jbrunet@baylibre.com [1] https://lkml.kernel.org/r/20190329141512.29867-1-jbrunet@baylibre.com ==================== Signed-off-by: David S. Miller commit fad137c4ef073c45fe7696680a555262d48319db Author: Jerome Brunet Date: Thu Apr 4 15:11:47 2019 +0200 net: phy: meson-gxl: clean-up gxl variant driver The purpose of this change is to align the gxl and g12a driver declaration. Like on the g12a variant, remove genphy_aneg_done() from the driver declaration as the net phy framework will default to it anyway. Also, the gxl phy id should be an exact match as well, so let's change this and use the macro provided. Signed-off-by: Jerome Brunet Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 5c3407abb3382fb0621a503662d00495f7ab65c4 Author: Jerome Brunet Date: Thu Apr 4 15:11:46 2019 +0200 net: phy: meson-gxl: add g12a support The g12a SoC family uses the type of internal PHY that was used on the gxl family. The quirks of gxl family, like the LPA register corruption, appear to have been resolved on this new SoC generation. Signed-off-by: Jerome Brunet Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 7090425104dbd87959bd424e9bd5a8711fde0986 Author: Jerome Brunet Date: Thu Apr 4 15:11:45 2019 +0200 net: phy: add amlogic g12a mdio mux support Add support for the mdio mux and internal phy glue of the g12a SoC family Reviewed-by: Neil Armstrong # clk parts Signed-off-by: Jerome Brunet Signed-off-by: David S. Miller commit 867934e9c9babe9192797726f6910554bbdc28ce Author: Jerome Brunet Date: Thu Apr 4 15:11:44 2019 +0200 dt-bindings: net: phy: add g12a mdio mux documentation Add documentation for the device tree bindings of the MDIO mux of Amlogic g12a SoC family Reviewed-by: Rob Herring Signed-off-by: Jerome Brunet Signed-off-by: David S. Miller commit 7934b481ab1a363ecf184ab05ef769441163f8cc Author: Yuval Shaia Date: Wed Apr 3 12:10:13 2019 +0300 virtio-net: Fix some minor formatting errors Signed-off-by: Yuval Shaia Signed-off-by: David S. Miller commit 6221333ab213c70e3838e0be260c8ed5bb0b3f87 Author: Yuval Shaia Date: Wed Apr 3 11:20:45 2019 +0300 virtio-net: Remove inclusion of pci.h This header is not in use - remove it. Signed-off-by: Yuval Shaia Signed-off-by: David S. Miller commit 742b06b5628f2cd23cb51a034cb54dc33c6162c5 Author: Jiufei Xue Date: Sat Apr 6 18:57:40 2019 -0400 jbd2: check superblock mapped prior to committing We hit a BUG at fs/buffer.c:3057 if we detached the nbd device before unmounting ext4 filesystem. The typical chain of events leading to the BUG: jbd2_write_superblock submit_bh submit_bh_wbc BUG_ON(!buffer_mapped(bh)); The block device is removed and all the pages are invalidated. JBD2 was trying to write journal superblock to the block device which is no longer present. Fix this by checking the journal superblock's buffer head prior to submitting. Reported-by: Eric Ren Signed-off-by: Jiufei Xue Signed-off-by: Theodore Ts'o Reviewed-by: Jan Kara Cc: stable@kernel.org commit fe53cbc5a39852a7e98d9993e617d49b61055b66 Author: Eric Biggers Date: Sat Apr 6 18:53:05 2019 -0400 ext4: remove incorrect comment for NEXT_ORPHAN() The comment above NEXT_ORPHAN() was meant for ext4_encrypted_inode(), which was moved by commit a7550b30ab70 ("ext4 crypto: migrate into vfs's crypto engine") but the comment was accidentally left in place. Since ext4_encrypted_inode() has now been removed, just remove the comment. Signed-off-by: Eric Biggers Signed-off-by: Theodore Ts'o Reviewed-by: Jan Kara commit 31562b954b60f02acb91b7349dc6432d3f8c3c5f Author: Jan Kara Date: Sat Apr 6 18:33:06 2019 -0400 ext4: make sanity check in mballoc more strict The sanity check in mb_find_extent() only checked that returned extent does not extend past blocksize * 8, however it should not extend past EXT4_CLUSTERS_PER_GROUP(sb). This can happen when clusters_per_group < blocksize * 8 and the tail of the bitmap is not properly filled by 1s which happened e.g. when ancient kernels have grown the filesystem. Signed-off-by: Jan Kara Signed-off-by: Theodore Ts'o Cc: stable@kernel.org commit fb203751099eecf145317685ee480a51e5b246de Author: Liu Song Date: Sat Apr 6 18:14:17 2019 -0400 jbd2: remove repeated assignments in __jbd2_log_wait_for_space() At the beginning, nblocks has been assigned. There is no need to repeat the assignment in the while loop, and remove it. Signed-off-by: Liu Song Signed-off-by: Theodore Ts'o Reviewed-by: Jan Kara commit eb94dc9aabdf0b34454966e652ebc7d4a767ba24 Author: Heiner Kallweit Date: Sun Mar 31 15:43:59 2019 +0200 r8169: disable tx interrupt coalescing on RTL8168 In contrast to switching rx irq coalescing off what fixed an issue, switching tx irq coalescing off is merely a latency optimization, therefore net-next. As part of this change: - Remove INTT_0 .. INTT_3 constants, they aren't used. - Remove comment in rtl_hw_start_8169(), we now have a detailed description by the code in rtl_set_coalesce(). - Due to switching irq coalescing off per default we don't need the initialization in rtl_hw_start_8168(). If ethtool is used to switch on coalescing then rtl_set_coalesce() will configure this register. For the sake of completeness: This patch just changes the default. Users still have the option to configure irq coalescing via ethtool. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit a80f36cc64f09956686f3729bf3eb65b7abfc32e Author: David Kozub Date: Thu Feb 14 01:16:08 2019 +0100 block: sed-opal: rename next to execute_steps As the function is responsible for executing the individual steps supplied in the steps argument, execute_steps is a more descriptive name than the rather generic next. Signed-off-by: David Kozub Reviewed-by: Scott Bauer Reviewed-by: Christoph Hellwig Reviewed-by: Jon Derrick Signed-off-by: Jens Axboe commit 0af2648ec30cf811b835f01a8501b4747f3a9022 Author: David Kozub Date: Thu Feb 14 01:16:07 2019 +0100 block: sed-opal: don't repeat opal_discovery0 in each steps array Originally each of the opal functions that call next include opal_discovery0 in the array of steps. This is superfluous and can be done always inside next. Acked-by: Jon Derrick Reviewed-by: Christoph Hellwig Reviewed-by: Scott Bauer Signed-off-by: David Kozub Signed-off-by: Jens Axboe commit 3db87236cfb29f143028b91293a8aee01cf932e7 Author: David Kozub Date: Thu Feb 14 01:16:06 2019 +0100 block: sed-opal: pass steps via argument rather than via opal_dev The steps argument is only read by the next function, so it can be passed directly as an argument rather than via opal_dev. Normally, the steps is an array on the stack, so the pointer stops being valid then the function that set opal_dev.steps returns. If opal_dev.steps was not set to NULL before return it would become a dangling pointer. When the steps are passed as argument this becomes easier to see and more difficult to misuse. Acked-by: Jon Derrick Reviewed-by: Christoph Hellwig Reviewed-by: Scott Bauer Signed-off-by: David Kozub Signed-off-by: Jens Axboe commit 372be408447506c43cc1bede4261324ef66d8fb4 Author: David Kozub Date: Thu Feb 14 01:16:05 2019 +0100 block: sed-opal: use named Opal tokens instead of integer literals Replace integer literals by Opal tokens defined in opal_proto.h where possible. Reviewed-by: Christoph Hellwig Acked-by: Jon Derrick Reviewed-by: Scott Bauer Signed-off-by: David Kozub Signed-off-by: Jens Axboe commit 3fff234b851cf7cd638efea658e9cbcf33c3a691 Author: David Kozub Date: Thu Feb 14 01:16:04 2019 +0100 block: sed-opal: unify retrieval of table columns Instead of having multiple places defining the same argument list to get a specific column of a sed-opal table, provide a generic version and call it from those functions. Co-authored-by: David Kozub Signed-off-by: Jonas Rabenstein Signed-off-by: David Kozub Reviewed-by: Scott Bauer Reviewed-by: Christoph Hellwig Reviewed-by: Jon Derrick Signed-off-by: Jens Axboe commit a4ddbd1b7b2cf5d18f34fdf8ddbb539f4c307564 Author: David Kozub Date: Thu Feb 14 01:16:03 2019 +0100 block: sed-opal: add token for OPAL_LIFECYCLE Define OPAL_LIFECYCLE token and use it instead of literals in get_lsp_lifecycle. Acked-by: Jon Derrick Reviewed-by: Christoph Hellwig Reviewed-by: Scott Bauer Signed-off-by: David Kozub Signed-off-by: Jens Axboe commit 285599590e2e1f067d56a5855244e95f6303b28f Author: Jonas Rabenstein Date: Thu Feb 14 01:16:02 2019 +0100 block: sed-opal: split generation of bytestring header and content Split the header generation from the (normal) memcpy part if a bytestring is copied into the command buffer. This allows in-place generation of the bytestring content. For example, copy_from_user may be used without an intermediate buffer. Signed-off-by: Jonas Rabenstein Signed-off-by: David Kozub Reviewed-by: Scott Bauer Reviewed-by: Christoph Hellwig Reviewed-by: Jon Derrick Signed-off-by: Jens Axboe commit b2f9c6eb3f5f44d2fded05856f69050d7170eeff Author: Jonas Rabenstein Date: Thu Feb 14 01:16:01 2019 +0100 block: sed-opal: print failed function address Add function address (and if available its symbol) to the message if a step function fails. Signed-off-by: Jonas Rabenstein Signed-off-by: David Kozub Reviewed-by: Scott Bauer Reviewed-by: Christoph Hellwig Reviewed-by: Jon Derrick commit b68f09ecdeaa7d59397429cb95aa83f02b9bd107 Author: David Kozub Date: Thu Feb 14 01:16:00 2019 +0100 block: sed-opal: reuse response_get_token to decrease code duplication response_get_token had already been in place, its functionality had been duplicated within response_get_{u64,bytestring} with the same error handling. Unify the handling by reusing response_get_token within the other functions. Co-authored-by: Jonas Rabenstein Signed-off-by: David Kozub Signed-off-by: Jonas Rabenstein Reviewed-by: Scott Bauer Reviewed-by: Christoph Hellwig Reviewed-by: Jon Derrick Signed-off-by: Jens Axboe commit 7d9b62ae2a7db6dfa218999b7dd65517a6f9cfb7 Author: David Kozub Date: Thu Feb 14 01:15:59 2019 +0100 block: sed-opal: unify error handling of responses response_get_{string,u64} include error handling for argument resp being NULL but response_get_token does not handle this. Make all three of response_get_{string,u64,token} handle NULL resp in the same way. Co-authored-by: Jonas Rabenstein Signed-off-by: David Kozub Signed-off-by: Jonas Rabenstein Reviewed-by: Scott Bauer Reviewed-by: Christoph Hellwig Reviewed-by: Jon Derrick Signed-off-by: Jens Axboe commit e8b2922459cf15140ab8cc1f92b6861674fff1a3 Author: David Kozub Date: Thu Feb 14 01:15:58 2019 +0100 block: sed-opal: unify cmd start Every step starts with resetting the cmd buffer as well as the comid and constructs the appropriate OPAL_CALL command. Consequently, those actions may be combined into one generic function. On should take care that the opening and closing tokens for the argument list are already emitted by cmd_start and cmd_finalize respectively and thus must not be additionally added. Co-authored-by: Jonas Rabenstein Signed-off-by: David Kozub Signed-off-by: Jonas Rabenstein Reviewed-by: Scott Bauer Reviewed-by: Christoph Hellwig Acked-by: Jon Derrick Signed-off-by: Jens Axboe commit 78d584ca31efbadfd8db105dec09c362d75b97b9 Author: David Kozub Date: Thu Feb 14 01:15:57 2019 +0100 block: sed-opal: close parameter list in cmd_finalize Every step ends by calling cmd_finalize (via finalize_and_send) yet every step adds the token OPAL_ENDLIST on its own. Moving this into cmd_finalize decreases code duplication. Co-authored-by: Jonas Rabenstein Signed-off-by: David Kozub Signed-off-by: Jonas Rabenstein Reviewed-by: Scott Bauer Reviewed-by: Christoph Hellwig Acked-by: Jon Derrick Signed-off-by: Jens Axboe commit e2821a50b17c1b760e7d597777de61241f22fd55 Author: Jonas Rabenstein Date: Thu Feb 14 01:15:56 2019 +0100 block: sed-opal: unify space check in add_token_* All add_token_* functions have a common set of conditions that have to be checked. Use a common function for those checks in order to avoid different behaviour as well as code duplication. Acked-by: Jon Derrick Reviewed-by: Christoph Hellwig Reviewed-by: Scott Bauer Co-authored-by: David Kozub Signed-off-by: Jonas Rabenstein Signed-off-by: David Kozub Signed-off-by: Jens Axboe commit 1b6b75b0137fd2b5af533eceba5f5db62b1c45b0 Author: Jonas Rabenstein Date: Thu Feb 14 01:15:55 2019 +0100 block: sed-opal: use correct macro for method length Also the values of OPAL_UID_LENGTH and OPAL_METHOD_LENGTH are the same, it is weird to use OPAL_UID_LENGTH for the definition of the methods. Signed-off-by: Jonas Rabenstein Signed-off-by: David Kozub Reviewed-by: Scott Bauer Reviewed-by: Christoph Hellwig Reviewed-by: Jon Derrick Signed-off-by: Jens Axboe commit 1e815b33c5ccd3936b71292b5ffb84e97e1df9e0 Author: David Kozub Date: Thu Feb 14 01:15:54 2019 +0100 block: sed-opal: fix typos and formatting This should make no change in functionality. The formatting changes were triggered by checkpatch.pl. Reviewed-by: Scott Bauer Reviewed-by: Jon Derrick Reviewed-by: Christoph Hellwig Signed-off-by: David Kozub Signed-off-by: Jens Axboe commit 78bf47353b0041865564deeed257a54f047c2fdc Author: David Kozub Date: Thu Feb 14 01:15:53 2019 +0100 block: sed-opal: fix IOC_OPAL_ENABLE_DISABLE_MBR The implementation of IOC_OPAL_ENABLE_DISABLE_MBR handled the value opal_mbr_data.enable_disable incorrectly: enable_disable is expected to be one of OPAL_MBR_ENABLE(0) or OPAL_MBR_DISABLE(1). enable_disable was passed directly to set_mbr_done and set_mbr_enable_disable where is was interpreted as either OPAL_TRUE(1) or OPAL_FALSE(0). The end result was that calling IOC_OPAL_ENABLE_DISABLE_MBR with OPAL_MBR_ENABLE actually disabled the shadow MBR and vice versa. This patch adds correct conversion from OPAL_MBR_DISABLE/ENABLE to OPAL_FALSE/TRUE. The change affects existing programs using IOC_OPAL_ENABLE_DISABLE_MBR but this is typically used only once when setting up an Opal drive. Acked-by: Jon Derrick Reviewed-by: Christoph Hellwig Reviewed-by: Scott Bauer Signed-off-by: David Kozub Signed-off-by: Jens Axboe commit 72deb455b5ec619ff043c30bc90025aa3de3cdda Author: Christoph Hellwig Date: Fri Apr 5 18:08:59 2019 +0200 block: remove CONFIG_LBDAF Currently support for 64-bit sector_t and blkcnt_t is optional on 32-bit architectures. These types are required to support block device and/or file sizes larger than 2 TiB, and have generally defaulted to on for a long time. Enabling the option only increases the i386 tinyconfig size by 145 bytes, and many data structures already always use 64-bit values for their in-core and on-disk data structures anyway, so there should not be a large change in dynamic memory usage either. Dropping this option removes a somewhat weird non-default config that has cause various bugs or compiler warnings when actually used. Signed-off-by: Christoph Hellwig Signed-off-by: Jens Axboe commit 83fdb2dfb0c2925f253449677830ed11461ac5c8 Author: Yangtao Li Date: Wed Mar 27 09:31:37 2019 -0400 interconnect: convert to DEFINE_SHOW_ATTRIBUTE Use DEFINE_SHOW_ATTRIBUTE macro to simplify the code. Signed-off-by: Yangtao Li Signed-off-by: Georgi Djakov commit f03f73c2a974f784251e9b1a829178cab7a2000a Author: Georgi Djakov Date: Fri Mar 22 12:04:41 2019 +0200 MAINTAINERS: Add mailing list for the interconnect API Add a mailing list for patch reviews and discussions related to tuning the on-chip interconnects. For now i am not expecting a lot of traffic, so let's use the linux-pm@ list. Acked-by: Rafael J. Wysocki Signed-off-by: Georgi Djakov commit 658eec837b11fbfab9082ebf8da24d94cefa47c0 Author: Stefan Mätje Date: Fri Mar 29 18:07:36 2019 +0100 PCI: Rework pcie_retrain_link() wait loop Transform wait code to a "do {} while (time_before())" loop as recommended by reviewer. No functional change intended. Signed-off-by: Stefan Mätje Signed-off-by: Bjorn Helgaas Reviewed-by: Andy Shevchenko commit 4ec73791a64bab25cabf16a6067ee478692e506d Author: Stefan Mätje Date: Fri Mar 29 18:07:35 2019 +0100 PCI: Work around Pericom PCIe-to-PCI bridge Retrain Link erratum Due to an erratum in some Pericom PCIe-to-PCI bridges in reverse mode (conventional PCI on primary side, PCIe on downstream side), the Retrain Link bit needs to be cleared manually to allow the link training to complete successfully. If it is not cleared manually, the link training is continuously restarted and no devices below the PCI-to-PCIe bridge can be accessed. That means drivers for devices below the bridge will be loaded but won't work and may even crash because the driver is only reading 0xffff. See the Pericom Errata Sheet PI7C9X111SLB_errata_rev1.2_102711.pdf for details. Devices known as affected so far are: PI7C9X110, PI7C9X111SL, PI7C9X130. Add a new flag, clear_retrain_link, in struct pci_dev. Quirks for affected devices set this bit. Note that pcie_retrain_link() lives in aspm.c because that's currently the only place we use it, but this erratum is not specific to ASPM, and we may retrain links for other reasons in the future. Signed-off-by: Stefan Mätje [bhelgaas: apply regardless of CONFIG_PCIEASPM] Signed-off-by: Bjorn Helgaas Reviewed-by: Andy Shevchenko CC: stable@vger.kernel.org commit 86fa6a344209d9414ea962b1f1ac6ade9dd7563a Author: Stefan Mätje Date: Fri Mar 29 18:07:34 2019 +0100 PCI: Factor out pcie_retrain_link() function Factor out pcie_retrain_link() to use for Pericom Retrain Link quirk. No functional change intended. Signed-off-by: Stefan Mätje Signed-off-by: Bjorn Helgaas Reviewed-by: Andy Shevchenko CC: stable@vger.kernel.org commit 73f28f714a8fd0ecb692a225bb7a5979d902ecb5 Author: Xuefeng Wang Date: Fri Feb 15 11:13:59 2019 +0800 rtc: lib: check whether tm->tm_year in int32 range When setting rtc alarm (RTC_WKALM_SET), the tm_year is not checked if it is in suiteable range. Use INT_MAX - 1900 to check it. UBSAN: Undefined behaviour in drivers/rtc/rtc-lib.c:119:30 signed integer overflow: 2147483647 + 1900 cannot be represented in type 'int' CPU: 1 PID: 20994 Comm: syz-executor0 Not tainted 4.19.18-514.55.6.9.x86_64 + #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0xca/0x13e lib/dump_stack.c:113 ubsan_epilogue+0xe/0x81 lib/ubsan.c:159 handle_overflow+0x193/0x1e2 lib/ubsan.c:190 rtc_tm_to_time64+0x267/0x280 drivers/rtc/rtc-lib.c:119 rtc_tm_to_ktime+0x16/0x70 drivers/rtc/rtc-lib.c:129 rtc_set_alarm+0x1a9/0x2d0 drivers/rtc/interface.c:466 rtc_dev_ioctl+0x6db/0x810 drivers/rtc/rtc-dev.c:380 vfs_ioctl fs/ioctl.c:46 [inline] do_vfs_ioctl+0x1a5/0x10b0 fs/ioctl.c:690 ksys_ioctl+0x89/0xa0 fs/ioctl.c:705 __do_sys_ioctl fs/ioctl.c:712 [inline] __se_sys_ioctl fs/ioctl.c:710 [inline] __x64_sys_ioctl+0x74/0xb0 fs/ioctl.c:710 do_syscall_64+0xc8/0x580 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x462589 Code: f7 d8 64 89 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f5348896c58 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 RAX: ffffffffffffffda RBX: 000000000072bf00 RCX: 0000000000462589 RDX: 0000000020000000 RSI: 000000004028700f RDI: 0000000000000003 RBP: 0000000000000003 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00007f53488976bc R13: 00000000004bf67e R14: 00000000006f96e0 R15: 00000000ffffffff ========================================================================== Signed-off-by: Xuefeng Wang Signed-off-by: Alexandre Belloni commit 9f201aba56b92c3daa4b76efae056ddbb80d91e6 Author: Oded Gabbay Date: Sat Apr 6 15:33:38 2019 +0300 habanalabs: prevent device PTE read/write during hard-reset During hard-reset, contexts are closed as part of the tear-down process. After a context is closed, the driver cleans up the page tables of that context in the device's DRAM. This action is both dangerous and unnecessary. It is unnecessary, because the device is going through a hard-reset, which means the device's DRAM contents are no longer valid and the device's MMU is being reset. It is dangerous, because if the hard-reset came as a result of a PCI freeze, this action may cause the entire host machine to hang. Therefore, prevent all device PTE updates when a hard-reset operation is pending. Signed-off-by: Oded Gabbay commit 3f5398cfbf051dc1850b4f64fbe5267cbd699ce0 Author: Oded Gabbay Date: Sat Apr 6 15:41:35 2019 +0300 habanalabs: improve IOCTLs behavior when disabled or reset This patch makes some improvement in how IOCTLs behave when the device is disabled or under reset. The new code checks, at the start of every IOCTL, if the device is disabled or in reset. If so, it prints an appropriate kernel message and returns -EBUSY to user-space. In addition, the code modifies the location of where the hard_reset_pending flag is being set or cleared: 1. It is now cleared immediately after the reset *tear-down* flow is finished but before the re-initialization flow begins. 2. It is being set in the remove function of the device, to make the behavior the same with the hard-reset flow There are two exceptions to the disable or in reset check: 1. The HL_INFO_DEVICE_STATUS opcode in the INFO IOCTL. This opcode allows the user to inquire about the status of the device, whether it is operational, in reset or malfunction (disabled). If the driver will block this IOCTL, the user won't be able to retrieve the status in case of malfunction or in reset. 2. The WAIT_FOR_CS IOCTL. This IOCTL allows the user to inquire about the status of a CS. We want to allow the user to continue to do so, even if we started a soft-reset process because it will allow the user to get the correct error code for each CS he submitted. Signed-off-by: Oded Gabbay commit 141f3767e7b8f32ce7210ef4b716d41bae72a54d Author: Janusz Krzysztofik Date: Sat Apr 6 11:40:34 2019 +0100 drm/i915: Mark GEM wedged right after marking device unplugged As soon as a device is considered unplugged, not only prevent pending users from accessing the device structures but also cancel all their pending requests so all consumed resources can be cleaned up as soon as possible. Suggested-by: Chris Wilson Signed-off-by: Janusz Krzysztofik Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190406104034.31380-1-chris@chris-wilson.co.uk commit caa3c8e52582fc4d2ed82afd5e7ea164c18ef4fe Author: Oded Gabbay Date: Sat Apr 6 13:23:54 2019 +0300 habanalabs: all FD must be closed before removing device This patch fixes a bug in the implementation of the function that removes the device. The bug can happen when the device is removed but not the driver itself (e.g. remove by the OS due to PCI freeze in Power architecture). In that case, there maybe open users that are calling IOCTLs while the device is removed. This is a possible race condition that the driver must handle. Otherwise, a kernel panic may occur. This race is prevented in the hard-reset flow, because the driver makes sure the users are closed before continuing with the hard-reset. This race can not occur when the driver itself is removed because the OS makes sure all the file descriptors are closed. The fix is to make sure the open users close their file descriptors and if they don't (after a certain amount of time), the driver sends them a SIGKILL, because the remove of the device can't be stopped. The patch re-uses the same code that is called from the hard-reset flow. Signed-off-by: Oded Gabbay commit 09d7d3e5291b3a531e36a5b6ef6d6088bb541aad Author: Dinh Nguyen Date: Wed Apr 3 16:50:10 2019 -0500 arm64: defconfig: include the Agilex platform to the arm64 defconfig Build the Agilex platform in the standard arm64 defconfig. Signed-off-by: Dinh Nguyen commit 6302bf3ef78dd210b5ff4a922afcb7d8eff8a211 Author: Jean-Philippe Brucker Date: Mon Mar 18 16:07:18 2019 +0000 PCI: Init PCIe feature bits for managed host bridge alloc Two functions allocate a host bridge: devm_pci_alloc_host_bridge() and pci_alloc_host_bridge(). At the moment, only the unmanaged one initializes the PCIe feature bits, which prevents from using features such as hotplug or AER on some systems, when booting with device tree. Make the initialization code common. Fixes: 02bfeb484230 ("PCI/portdrv: Simplify PCIe feature permission checking") Signed-off-by: Jean-Philippe Brucker Signed-off-by: Bjorn Helgaas CC: stable@vger.kernel.org # v4.17+ commit 1d960858bed2d975717703ccce0f3d0b736de813 Author: Colin Ian King Date: Thu Apr 4 12:16:57 2019 +0100 Documentation: bus: ti-sysc: fix spelling mistakes "multipe" and "interconnet" There is are a couple of spelling mistakes in the Documentation. Fix them. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Signed-off-by: Tony Lindgren commit 13aad51935df4d2600edd795bb520df11e6186ad Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 bus: ti-sysc: Detect DMIC for debugging Detect DMIC to see what we have connected if config DEBUG is enabled. Signed-off-by: Tony Lindgren commit b4a9a7a38917e9f947b5e69f7e8d4138d4c82845 Author: Tony Lindgren Date: Thu Mar 21 13:27:08 2019 -0700 bus: ti-sysc: Handle swsup idle mode quirks In preparation of dropping interconnect target module platform data in favor of devicetree based data, we must pass swsup idle quirks to the platform data functions. For now, let's only tag the UART modules with the SWSUP_SIDLE_ACT quirk. The other modules will get tagged with swsup quirks as we drop the platform data and test the changes. Signed-off-by: Tony Lindgren commit 10645e81b9677c5ed9de371b382234564eb73660 Author: Tony Lindgren Date: Fri Mar 22 08:08:06 2019 -0700 bus: ti-sysc: Pass clockactivity quirk to platform functions We already have the clockactivity quirk set for some modules like i2c, timers and smartreflex. But we're not passing it to the platform functions yet. Let's start doing that in preparation of dropping interconnect target module platform data in favor of device tree based data. Signed-off-by: Tony Lindgren commit 4b36daf9ada30a66c93f8701e8c6f23bc3ce94e2 Author: Dinh Nguyen Date: Wed Apr 3 16:43:51 2019 -0500 arm64: dts: agilex: Add initial support for Intel's Agilex SoCFPGA Add the initial device tree files for Intel's Agilex SoCFPGA platform. Signed-off-by: Dinh Nguyen commit f83f7151950dd9e0f6b4a1a405bf5e55c5294e4d Merge: 8f4043f12532 7f46774c6480 Author: David S. Miller Date: Fri Apr 5 14:14:19 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net Minor comment merge conflict in mlx5. Staging driver has a fixup due to the skb->xmit_more changes in 'net-next', but was removed in 'net'. Signed-off-by: David S. Miller commit 6d7ee2edaa54d676026b7f0d50ae472e62a84564 Author: Tariq Toukan Date: Tue Jan 22 13:42:10 2019 +0200 net/mlx5e: Unify logic of MTU boundaries Expose a new helper that wraps the logic for setting the netdevice's MTU boundaries. Use it for the different components (Eth, rep, IPoIB). Set the netdevice min MTU to ETH_MIN_MTU, and the max according to both the FW capability and the kernel definition. Signed-off-by: Tariq Toukan Signed-off-by: Saeed Mahameed commit 0b77f2305f38d63fbf0c501adfd342848d695718 Author: Tariq Toukan Date: Thu Jan 17 15:58:09 2019 +0200 net/mlx5e: Obsolete param field holding a constant value The LRO WQE size is a constant, obsolete the parameter field that holds it. Signed-off-by: Tariq Toukan Reviewed-by: Maxim Mikityanskiy Signed-off-by: Saeed Mahameed commit 98df6d5b877c26012bbafcf07ff51326db4ef3f7 Author: Tariq Toukan Date: Sun Dec 16 17:20:31 2018 +0200 net/mlx5: A write memory barrier is sufficient in EQ ci update Soften the memory barrier call of mb() by a sufficient wmb() in the consumer index update of the event queues. Signed-off-by: Tariq Toukan Signed-off-by: Saeed Mahameed commit 27c11b6b844cd9473330ff29ddb55a535d2dd14a Author: Eli Britstein Date: Sun Mar 17 18:01:48 2019 +0000 net/mlx5e: Do not rewrite fields with the same match If we have a match for the same value of a rewrite field, there is no point for the rewrite. In order to save rewrite actions, and avoid entirely rewrite actions (if all rewrites are the same), ignore such rewrite fields. Signed-off-by: Eli Britstein Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit 35a605db168c5ce4e6b69d66d7aa8d81769ad8a6 Author: Eli Britstein Date: Thu Mar 14 07:50:12 2019 +0000 net/mlx5e: Offload TC e-switch rules with ingress VLAN device Offload TC rule on a VLAN device by matching the VLAN properties of the VLAN device and emulating vlan pop actions. Signed-off-by: Eli Britstein Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit 278748a95aa3cabcf55afcb9c2720520d6cfd1ce Author: Eli Britstein Date: Sun Dec 16 16:57:44 2018 +0200 net/mlx5e: Offload TC e-switch rules with egress VLAN device Upon redirection to an uplink VLAN device, emulate vlan push actions according to the VLAN properties of the VLAN device and redirect to the uplink. Signed-off-by: Eli Britstein Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit 6fca9d1e603aa86e4902ccb0ab17995c2c34f82a Author: Eli Britstein Date: Thu Mar 14 14:55:09 2019 +0000 net/mlx5e: Allow VLAN rewrite of prio field with the same match Changing the prio field of the VLAN is not supported. With commit 37410902874c ("net/mlx5e: Support VLAN modify action") zero value indicated "no-change". Allow the vid rewrite if the prio match is the same as the prio set value. Fixes: 37410902874c ("net/mlx5e: Support VLAN modify action") Signed-off-by: Eli Britstein Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit bf2f3bca1c5dee845e436d8af96ca3811f2aa2f9 Author: Eli Britstein Date: Thu Mar 14 14:41:40 2019 +0000 net/mlx5e: Deny VLAN rewrite if there is no VLAN header match Rewrite of the packet in the VLAN offset may corrupt the packet if it's not VLAN tagged. Deny the rewrite in this case. Fixes: 37410902874c ("net/mlx5e: Support VLAN modify action") Signed-off-by: Eli Britstein Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit 8377629e76bcdf5ba1d3f2d220eebbfd947cfe7a Author: Eli Britstein Date: Tue Mar 19 07:04:56 2019 +0000 net/mlx5e: Use helpers to get headers criteria and value pointers The headers criteria and value pointers may be either of the inner packet, if a tunnel exists, or of the outer. Simplify the code by using helper functions to retrieve them. Signed-off-by: Eli Britstein Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit 2cc1cb1d17352aaf6400774793353720be221945 Author: Tonghao Zhang Date: Wed Feb 27 07:31:19 2019 -0800 net/mlx5e: Return -EOPNOTSUPP when attempting to offload an unsupported action * Now the encapsulation is not supported for mlx5 VFs. When we try to offload that action, the -EINVAL is returned, but not -EOPNOTSUPP. This patch changes the returned value and ignore to confuse user. The command is shown as below [1]. * When max modify header action is zero, we return -EOPNOTSUPP directly. In this way, we can ignore wrong message info (e.g. "mlx5: parsed 0 pedit actions, can't do more"). This happens when offloading pedit actions on mlx(cx4) VFs. The command is shown as below [2]. For example: (p2p1_0 is VF net device) [1] $ tc filter add dev p2p1_0 protocol ip parent ffff: prio 1 flower skip_sw \ src_mac e4:11:22:33:44:01 \ action tunnel_key set \ src_ip 1.1.1.100 \ dst_ip 1.1.1.200 \ dst_port 4789 id 100 \ action mirred egress redirect dev vxlan0 [2] $ tc filter add dev p2p1_0 parent ffff: protocol ip prio 1 \ flower skip_sw dst_mac 00:10:56:fb:64:e8 \ dst_ip 1.1.1.100 src_ip 1.1.1.200 \ action pedit ex munge eth src set 00:10:56:b4:5d:20 Signed-off-by: Tonghao Zhang Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit 20bb4a813e139947c03d612ae9a562ad30d2314d Author: Tonghao Zhang Date: Wed Feb 27 07:31:18 2019 -0800 net/mlx5e: Deletes unnecessary setting of esw_attr->parse_attr This patch deletes unnecessary setting of the esw_attr->parse_attr to parse_attr in parse_tc_fdb_actions() because it is already done by the mlx5e_flow_esw_attr_init() function. Signed-off-by: Tonghao Zhang Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit 6f9af8ff11665f6c7ab3fe80664e6f26b0f3c1b3 Author: Tonghao Zhang Date: Wed Feb 27 07:31:17 2019 -0800 net/mlx5e: Remove 'parse_attr' argument in parse_tc_fdb_actions() This patch is a little improvement. Simplify the parse_tc_fdb_actions(). Signed-off-by: Tonghao Zhang Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit 1b18b781516dc5d7f6680a2e88b3df32926c25f6 Author: Tonghao Zhang Date: Wed Feb 27 07:31:16 2019 -0800 net/mlx5e: Make the log friendly when decapsulation offload not supported If we try to offload decapsulation actions to VFs hw, we get the log [1]. It's not friendly, because the kind of net device is null, and we don't know what '0' means. [1] "mlx5_core 0000:05:01.2 vf_0: decapsulation offload is not supported for net device (0)" Signed-off-by: Tonghao Zhang Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit eda99e11a097fba938880f1304f1d937d2b49f3a Author: Max Gurtovoy Date: Wed Feb 27 16:10:16 2019 +0200 net/mlx5: E-Switch, Fix double mutex initialization Delete mutex_init call of a lock that's initialized in inner function. Fixes: eca8cc389535 ("net/mlx5: E-Switch, Refactor offloads flow steering init/cleanup") Signed-off-by: Max Gurtovoy Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit 5d3c537f907036c1f18bd325ffc356e24cde664c Author: Aya Levin Date: Sun Mar 24 09:21:40 2019 +0200 net/mlx5: Handle event of power detection in the PCIE slot Handle event of power state change in the PCIE slot. When the event occurs, check if query power state and PCI power fields is supported. If so, read these fields from MPEIN (management PCIE info) register and issue a corresponding message. Signed-off-by: Aya Levin Signed-off-by: Saeed Mahameed commit b6460c72c36df973b4935492bacd90b2bbff7028 Merge: 3eed52842b9f aef6c443fe84 Author: Saeed Mahameed Date: Tue Apr 2 15:43:45 2019 -0700 Merge branch 'mlx5-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mellanox/linux This merge commit includes some misc shared code updates from mlx5-next branch needed for net-next. 1) From Maxim, Remove un-used macros and spinlock from mlx5 code. 2) From Aya, Expose Management PCIE info register layout and add rate limit print macros. 3) From Tariq, Compilation warning fix in fs_core.c 4) From Vu, Huy and Saeed, Improve mlx5 initialization flow: The goal is to provide a better logical separation of mlx5 core device initialization flow and will help to seamlessly support creating different mlx5 device types such as PF, VF and SF mlx5 sub-function virtual devices. Mlx5_core driver needs to separate HCA resources from pci resources. Its initialize/load/unload will be broken into stages: 1. Initialize common data structures 2. Setup function which initializes pci resources (for PF/VF) or some other specific resources for virtual device 3. Initialize software objects according to hardware capabilities 4. Load all mlx5_core components It is also necessary to detach mlx5_core mdev name/message from pci device mdev->pdev name/message for a clearer report/debug of different mlx5 device types. Signed-off-by: Saeed Mahameed commit 95007efbe608fe888469b5c22d01c54c4d2b3bf1 Author: Chris Wilson Date: Fri Apr 5 21:24:19 2019 +0100 drm/i915: Convert i915_reset.c over to using uncore mmio Currently i915_reset.c mixes calls to intel_uncore, pci and our old style I915_READ mmio interfaces. Cast aside the old implicit macros, and harmonise on using uncore throughout. add/remove: 1/1 grow/shrink: 0/4 up/down: 65/-207 (-142) Function old new delta rmw_register - 65 +65 gen8_reset_engines 945 942 -3 g4x_do_reset 407 376 -31 intel_gpu_reset 545 509 -36 clear_register 63 - -63 i915_clear_error_registers 461 387 -74 A little bit of pointer dancing elimination works wonders. v2: Roll up the helpers into intel_uncore for general use With the helpers gcc was a little more eager to inline: add/remove: 0/1 grow/shrink: 1/3 up/down: 99/-133 (-34) Function old new delta i915_clear_error_registers 461 560 +99 gen8_reset_engines 945 942 -3 g4x_do_reset 407 376 -31 intel_gpu_reset 545 509 -36 clear_register 63 - -63 Total: Before=1544400, After=1544366, chg -0.00% Win some, lose some, gcc is gcc. Signed-off-by: Chris Wilson Cc: Daniele Ceraolo Spurio Cc: Paulo Zanoni Reviewed-by: Paulo Zanoni Link: https://patchwork.freedesktop.org/patch/msgid/20190405202419.3093-1-chris@chris-wilson.co.uk commit bbba0e7c5cdadb47a91edea1d5cd0caadbbb016f Author: Daniel Lezcano Date: Thu Mar 28 16:13:36 2019 +0100 genirq/timings: Add array suffix computation code The previous approach based on the variance was discarding values from the timings when they were considered as anomalies as stated by the normal law statistical model. However in the interrupt life, there can be multiple anomalies due to the nature of the device generating the interrupts, and most of the time a repeating pattern can be observed, that is particulary true for network, console, MMC or SSD devices. The variance approach missed the patterns and it was only able to deal with the interrupt coming in regular intervals, thus reducing considerably the scope of what is predictable. In order to find out the repeating patterns, the interrupt intervals are grouped in a ilog2 basis to create a suite of numbers with small amplitude. Every group contains an exponential moving average of the values belonging to the group. The array suffix, a data structure used for string searching, data compression, etc ..., is built from the suite of numbers and the suffixes are then searched in this suite. The tests showed the algorithm is able to find all repeating patterns, as well as regular interval in less than 1us on x86-i7. Signed-off-by: Daniel Lezcano Signed-off-by: Thomas Gleixner Cc: rjw@rjwysocki.net Cc: ulf.hansson@linaro.org Cc: linux-pm@vger.kernel.org Link: https://lkml.kernel.org/r/20190328151336.5316-2-daniel.lezcano@linaro.org commit bfe83844987a52dc1f71f757b60523811502dc93 Author: Daniel Lezcano Date: Thu Mar 28 16:13:35 2019 +0100 genirq/timings: Remove variance computation code The variance computation did not provide the expected results and will be replaced with a different approach to compute the next interrupt based on the array suffixes derived algorithm. There is no good way to transform the variance code to the new algorithm, so for ease of review remove the existing code first. Signed-off-by: Daniel Lezcano Signed-off-by: Thomas Gleixner Cc: rjw@rjwysocki.net Cc: ulf.hansson@linaro.org Cc: linux-pm@vger.kernel.org Link: https://lkml.kernel.org/r/20190328151336.5316-1-daniel.lezcano@linaro.org commit b569c18434987163a05f05a12cdf6a9975c55ff3 Author: Baoquan He Date: Fri Mar 8 10:56:16 2019 +0800 x86/mm/KASLR: Reduce randomization granularity for 5-level paging to 1GB The current randomization granularity of 5-level is 512 GB. The mapping of the real mode trampoline has been reduced to one PUD entry, so there is no restriction anymore. Reduce the granularity to 1GB for 5-level paging mode which allows better randomization. [ tglx: Massaged changelog ] Signed-off-by: Baoquan He Signed-off-by: Thomas Gleixner Acked-by: Kirill A. Shutemov Cc: dave.hansen@linux.intel.com Cc: luto@kernel.org Cc: peterz@infradead.org Cc: bp@alien8.de Cc: hpa@zytor.com Cc: keescook@chromium.org Cc: thgarnie@google.com Link: https://lkml.kernel.org/r/20190308025616.21440-3-bhe@redhat.com commit 0925dda5962e9b55e4d38a72eba93858f24bac41 Author: Baoquan He Date: Fri Mar 8 10:56:15 2019 +0800 x86/mm/KASLR: Use only one PUD entry for real mode trampoline The current code builds identity mapping for the real mode trampoline by borrowing page tables from the direct mapping section if KASLR is enabled. It copies present entries of the first PUD table in 4-level paging mode, or the first P4D table in 5-level paging mode. However, there's only a very small area under low 1 MB reserved for the real mode trampoline in reserve_real_mode() so it makes no sense to build up a really large mapping for it. Reduce it to one PUD (1GB) entry. This matches the randomization granularity in 4-level paging mode and allows to change the randomization granularity in 5-level paging mode from 512GB to 1GB later. [ tglx: Massaged changelog and comments ] Signed-off-by: Baoquan He Signed-off-by: Thomas Gleixner Acked-by: Kirill A. Shutemov Cc: dave.hansen@linux.intel.com Cc: luto@kernel.org Cc: peterz@infradead.org Cc: bp@alien8.de Cc: hpa@zytor.com Cc: keescook@chromium.org Cc: thgarnie@google.com Link: https://lkml.kernel.org/r/20190308025616.21440-2-bhe@redhat.com commit fdc4e9267f9b7bcfafb9d95940a8765c538fb507 Author: Chris Wilson Date: Fri Apr 5 19:15:50 2019 +0100 drm/i915: Make use of 'engine->uncore' The engine has a direct link to the intel_uncore mmio handler, so make use of it rather than going indirectly via &engine->i915->uncore. v2: Update gen11_lock_sfc() to use engine->uncore as well Signed-off-by: Chris Wilson Cc: Daniele Ceraolo Spurio Cc: Paulo Zanoni Reviewed-by: Paulo Zanoni Reviewed-by: Daniele Ceraolo Spurio Link: https://patchwork.freedesktop.org/patch/msgid/20190405181550.7630-1-chris@chris-wilson.co.uk commit e1074d4b1deb2d26cca5a4aae765939ead91f551 Author: Chao Yu Date: Tue Apr 2 18:52:20 2019 +0800 f2fs: add comment for conditional compilation statement Commit af033b2aa8a8 ("f2fs: guarantee journalled quota data by checkpoint") added function is_journalled_quota() in f2fs.h, but it located outside of _LINUX_F2FS_H macro coverage, it has been fixed with commit 0af725fcb77a ("f2fs: fix wrong #endif"). But anyway, in order to avoid making same mistake latter, let's add single line comment to notice which #if the last #endif is corresponding to. Signed-off-by: Chao Yu [Jaegeuk Kim: Remove unnecessary empty EOL] Signed-off-by: Jaegeuk Kim commit 186857c5a14aee85cace2ae7a36c6e43b9d3c7a5 Author: Chao Yu Date: Tue Apr 2 18:52:19 2019 +0800 f2fs: fix potential recursive call when enabling data_flush As Hagbard Celine reported: Hi, this is a long standing bug that I've hit before on older kernels, but I was not able to get the syslog saved because of the nature of the bug. This time I had booted form a pen-drive, and was able to save the log to it's efi-partition. What i did to trigger it was to create a partition and format it f2fs, then mount it with options: "rw,relatime,lazytime,background_gc=on,disable_ext_identify,discard,heap,user_xattr,inline_xattr,acl,inline_data,inline_dentry,flush_merge,data_flush,extent_cache,mode=adaptive,active_logs=6,whint_mode=fs-based,alloc_mode=default,fsync_mode=strict". Then I unpacked a big .tar.xz to the partition (I used a gentoo-stage3-tarball as I was in process of installing Gentoo). Same options just without data_flush gives no problems. Mar 20 20:54:01 usbgentoo kernel: FAT-fs (nvme0n1p4): Volume was not properly unmounted. Some data may be corrupt. Please run fsck. Mar 20 21:05:23 usbgentoo kernel: kworker/dying (1588) used greatest stack depth: 12064 bytes left Mar 20 21:06:40 usbgentoo kernel: BUG: stack guard page was hit at 00000000a4b0733c (stack is 0000000056016422..0000000096e7463f) Mar 20 21:06:40 usbgentoo kernel: kernel stack overflow ...... Mar 20 21:06:40 usbgentoo kernel: Call Trace: Mar 20 21:06:40 usbgentoo kernel: read_node_page+0x71/0xf0 Mar 20 21:06:40 usbgentoo kernel: ? xas_load+0x8/0x50 Mar 20 21:06:40 usbgentoo kernel: __get_node_page+0x73/0x2a0 Mar 20 21:06:40 usbgentoo kernel: f2fs_get_dnode_of_data+0x34e/0x580 Mar 20 21:06:40 usbgentoo kernel: f2fs_write_inline_data+0x5e/0x2a0 Mar 20 21:06:40 usbgentoo kernel: __write_data_page+0x421/0x690 Mar 20 21:06:40 usbgentoo kernel: f2fs_write_cache_pages+0x1cf/0x460 Mar 20 21:06:40 usbgentoo kernel: f2fs_write_data_pages+0x2b3/0x2e0 Mar 20 21:06:40 usbgentoo kernel: ? f2fs_inode_chksum_verify+0x1d/0xc0 Mar 20 21:06:40 usbgentoo kernel: ? read_node_page+0x71/0xf0 Mar 20 21:06:40 usbgentoo kernel: do_writepages+0x3c/0xd0 Mar 20 21:06:40 usbgentoo kernel: __filemap_fdatawrite_range+0x7c/0xb0 Mar 20 21:06:40 usbgentoo kernel: f2fs_sync_dirty_inodes+0xf2/0x200 Mar 20 21:06:40 usbgentoo kernel: f2fs_balance_fs_bg+0x2a3/0x2c0 Mar 20 21:06:40 usbgentoo kernel: ? f2fs_inode_dirtied+0x21/0xc0 Mar 20 21:06:40 usbgentoo kernel: f2fs_balance_fs+0xd6/0x2b0 Mar 20 21:06:40 usbgentoo kernel: __write_data_page+0x4fb/0x690 ...... Mar 20 21:06:40 usbgentoo kernel: __writeback_single_inode+0x2a1/0x340 Mar 20 21:06:40 usbgentoo kernel: ? soft_cursor+0x1b4/0x220 Mar 20 21:06:40 usbgentoo kernel: writeback_sb_inodes+0x1d5/0x3e0 Mar 20 21:06:40 usbgentoo kernel: __writeback_inodes_wb+0x58/0xa0 Mar 20 21:06:40 usbgentoo kernel: wb_writeback+0x250/0x2e0 Mar 20 21:06:40 usbgentoo kernel: ? 0xffffffff8c000000 Mar 20 21:06:40 usbgentoo kernel: ? cpumask_next+0x16/0x20 Mar 20 21:06:40 usbgentoo kernel: wb_workfn+0x2f6/0x3b0 Mar 20 21:06:40 usbgentoo kernel: ? __switch_to_asm+0x40/0x70 Mar 20 21:06:40 usbgentoo kernel: process_one_work+0x1f5/0x3f0 Mar 20 21:06:40 usbgentoo kernel: worker_thread+0x28/0x3c0 Mar 20 21:06:40 usbgentoo kernel: ? rescuer_thread+0x330/0x330 Mar 20 21:06:40 usbgentoo kernel: kthread+0x10e/0x130 Mar 20 21:06:40 usbgentoo kernel: ? kthread_create_on_node+0x60/0x60 Mar 20 21:06:40 usbgentoo kernel: ret_from_fork+0x35/0x40 The root cause is that we run into an infinite recursive calling in between f2fs_balance_fs_bg and writepage() as described below: - f2fs_write_data_pages --- A - __write_data_page - f2fs_balance_fs - f2fs_balance_fs_bg --- B - f2fs_sync_dirty_inodes - filemap_fdatawrite - f2fs_write_data_pages --- A ... - f2fs_balance_fs_bg --- B ... In order to fix this issue, let's detect such condition in __write_data_page() and just skip calling f2fs_balance_fs() recursively. Reported-by: Hagbard Celine Signed-off-by: Chao Yu Signed-off-by: Jaegeuk Kim commit 7f3d7719c1888f98f12b584bcd6058e2c23d1961 Author: Damien Le Moal Date: Sat Mar 16 09:13:08 2019 +0900 f2fs: improve discard handling with multi-device volumes f2fs_hw_support_discard() only tests if the super block device supports discard. However, for a multi-device volume, not all disks used may support discard. Improve the check performed to test all devices of the volume and report discard as supported if at least one device of the volume supports discard. To implement this, introduce the helper function f2fs_bdev_support_discard(), which returns true for zoned block devices (where discard is processed as a zone reset) and for regular disks supporting the discard command. f2fs_bdev_support_discard() is also used in __queue_discard_cmd() to handle discard command issuing for a particular device of the volume. That is, prevent issuing a discard command for block devices that do not support it. Signed-off-by: Damien Le Moal Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim commit 95175dafc4399ab5b9e937da205b2a6927b19227 Author: Damien Le Moal Date: Sat Mar 16 09:13:07 2019 +0900 f2fs: Reduce zoned block device memory usage For zoned block devices, an array of zone types for each device is allocated and initialized in order to determine if a section is stored on a sequential zone (zone reset needed) or a conventional zone (no zone reset needed and regular discard applies). Considering this usage, the zone types stored in memory can be replaced with a bitmap to indicate an equivalent information, that is, if a zone is sequential or not. This reduces the memory usage for each zoned device by roughly 8: on a 14TB disk with zones of 256 MB, the zone type array consumes 13x4KB pages while the bitmap uses only 2x4KB pages. This patch changes the f2fs_dev_info structure blkz_type field to the bitmap blkz_seq. Access to this bitmap is done using the helper function f2fs_blkz_is_seq(), which is a rewrite of the function get_blkz_type(). Signed-off-by: Damien Le Moal Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim commit 0916878da355650d7e77104a7ac0fa1784eca852 Author: Damien Le Moal Date: Sat Mar 16 09:13:06 2019 +0900 f2fs: Fix use of number of devices For a single device mount using a zoned block device, the zone information for the device is stored in the sbi->devs single entry array and sbi->s_ndevs is set to 1. This differs from a single device mount using a regular block device which does not allocate sbi->devs and sets sbi->s_ndevs to 0. However, sbi->s_devs == 0 condition is used throughout the code to differentiate a single device mount from a multi-device mount where sbi->s_ndevs is always larger than 1. This results in problems with single zoned block device volumes as these are treated as multi-device mounts but do not have the start_blk and end_blk information set. One of the problem observed is skipping of zone discard issuing resulting in write commands being issued to full zones or unaligned to a zone write pointer. Fix this problem by simply treating the cases sbi->s_ndevs == 0 (single regular block device mount) and sbi->s_ndevs == 1 (single zoned block device mount) in the same manner. This is done by introducing the helper function f2fs_is_multi_device() and using this helper in place of direct tests of sbi->s_ndevs value, improving code readability. Fixes: 7bb3a371d199 ("f2fs: Fix zoned block device support") Cc: Signed-off-by: Damien Le Moal Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim commit 252fbeb86ceffa549af9842cefca2412d53a7653 Author: Sven Van Asbroeck Date: Fri Feb 15 16:43:03 2019 -0500 power: supply: max14656: fix potential use-after-free Explicitly cancel/sync the irq_work delayed work, otherwise there's a chance that it will run after the device is removed, which would result in a use-after-free. Note that cancel/sync should happen: - after irq's have been disabled, as the isr re-schedules the work - before the power supply is unregistered, because the work func uses the power supply handle. Cc: Alexander Kurz Signed-off-by: Sven Van Asbroeck Signed-off-by: Sebastian Reichel commit 0cd0e49711556d2331a06b1117b68dd786cb54d2 Author: Sven Van Asbroeck Date: Fri Feb 15 16:43:02 2019 -0500 power: supply: max14656: fix potential use-before-alloc Call order on probe(): - max14656_hw_init() enables interrupts on the chip - devm_request_irq() starts processing interrupts, isr could be called immediately - isr: schedules delayed work (irq_work) - irq_work: calls power_supply_changed() - devm_power_supply_register() registers the power supply Depending on timing, it's possible that power_supply_changed() is called on an unregistered power supply structure. Fix by registering the power supply before requesting the irq. Cc: Alexander Kurz Signed-off-by: Sven Van Asbroeck Signed-off-by: Sebastian Reichel commit ec4628effbb7cf1f5241b41936540d986715f3bb Author: Claudiu Beznea Date: Thu Feb 21 13:45:56 2019 +0000 dt-bindings: arm: atmel: add binding for SAM9X60 shutdown controller Add documentation for SAM9X60 shutdown controller. Signed-off-by: Claudiu Beznea Acked-by: Nicolas Ferre Reviewed-by: Rob Herring Signed-off-by: Sebastian Reichel commit 17d2e876b49771f2fb6e6ad73e6dd53f888fa34c Author: Claudiu Beznea Date: Thu Feb 21 13:45:51 2019 +0000 power: reset: at91-poweroff: add support for SAM9X60 Add support for SAM9X60 shutdown controller. Signed-off-by: Claudiu Beznea Acked-by: Nicolas Ferre Signed-off-by: Sebastian Reichel commit 5c6c513ddbc702b11ceef1e881d95a061f6b854f Author: Claudiu Beznea Date: Thu Feb 21 13:45:48 2019 +0000 power: reset: at91-poweroff: add RTT wakeup capability Add RTT wakeup capability. Signed-off-by: Claudiu Beznea Acked-by: Nicolas Ferre Signed-off-by: Sebastian Reichel commit 4ceabaf7909d109db6afbffc4ed182741fc32043 Author: Hans de Goede Date: Thu Apr 4 15:51:32 2019 +0200 HID: core: Do not call request_module() in async context request_module() may not be called form async context and in some cases hid devices may be added from an async context. One example of this happening is under hyperv, where this was triggering a WARN_ON in request_module(): [ 11.174497] hid_add_device+0xee/0x2b0 [hid] [ 11.174499] mousevsc_probe+0x223/0x2eb [hid_hyperv] [ 11.174501] vmbus_probe+0x3a/0x90 [ 11.174504] really_probe+0x229/0x420 [ 11.174506] driver_probe_device+0x115/0x130 [ 11.174507] __driver_attach_async_helper+0x87/0x90 [ 11.174509] async_run_entry_fn+0x37/0x150 This commit skips the request_module(), falling back to the old behavior of letting userspace deal with this, in case we are called from an async context. Cc: Lili Deng Reported-by: Lili Deng Signed-off-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 75199aa5269f66d0958aa9971fa81a92de83d7f9 Merge: 2b24e6f63ac9 d0de579c043c Author: Jens Axboe Date: Fri Apr 5 09:08:51 2019 -0600 Merge branch 'nvme-5.2' of git://git.infradead.org/nvme into for-5.2/block Pull NVMe changes from Christoph: "Below is the first batch of nvme updates for 5.2. This includes the performance improvements for single segment I/O on PCIe, which introduce new block helpers, so it might be a good idea to get them in early. - various performance optimizations in the PCIe code (Keith and me) - new block helpers to support the above (me) - nvmet error conversion cleanup (me) - nvmet-fc variable sized array cleanup (Gustavo) - passthrough ioctl error printk cleanup (Kenneth) - small nvmet fixes (Max) - endianess conversion cleanup (Max) - nvmet-tcp faspath completion optimization (Sagi)" * 'nvme-5.2' of git://git.infradead.org/nvme: (24 commits) nvme: log the error status on Identify Namespace failure nvmet: add safety check for subsystem lock during nvmet_ns_changed nvmet: never fail double namespace enablement nvme-pci: tidy up nvme_map_data nvme-pci: optimize mapping single segment requests using SGLs nvme-pci: optimize mapping of small single segment requests nvme-pci: remove the inline scatterlist optimization nvme-pci: split metadata handling from nvme_map_data / nvme_unmap_data nvme-pci: do not build a scatterlist to map metadata nvme-pci: only call nvme_unmap_data for requests transferring data nvme-pci: merge nvme_free_iod into nvme_unmap_data nvme-pci: move the call to nvme_cleanup_cmd out of nvme_unmap_data nvme-pci: remove nvme_init_iod block: add dma_map_bvec helper block: add a rq_dma_dir helper block: add a rq_integrity_vec helper block: add a req_bvec helper nvme-pci: remove unused nvme_iod member nvme-pci: remove q_dmadev from nvme_queue nvme-pci: use a flag for polled queues ... commit 41eb0df1926aa7e8cbd621e66533d8bc35e82a26 Author: Ondrej Jirman Date: Mon Apr 1 13:56:16 2019 +0200 ARM: dts: sun8i: tbs-a711: Enable UART2 (for NEO-6M GPS module) TBS A711 tablet contains u-blox NEO-6M module connected to UART2. Enable UART2 to gain access to the module from userspace. Signed-off-by: Ondrej Jirman Signed-off-by: Maxime Ripard commit ce8873c77c840977722deb73d7649653a4fcf31a Author: Sebastien Bourdelin Date: Thu Mar 28 16:35:18 2019 -0400 dt-bindings: power: supply: gpio-charger: add missing semi-colon in example Fix the example documentation which is missing a semi-colon. Signed-off-by: Sebastien Bourdelin Signed-off-by: Sebastian Reichel commit 347807d3876aa9c75f64001c736e0a16a6b21acf Merge: 636e78b1cdb4 1fbd20f8b77b Author: Daniel Borkmann Date: Fri Apr 5 16:50:08 2019 +0200 Merge branch 'bpf-varstack-fixes' Andrey Ignatov says: ==================== v2->v3: - sanity check max value for variable offset. v1->v2: - rely on meta = NULL to reject var_off stack access to uninit buffer. This patch set is a follow-up for discussion [1]. It fixes variable offset stack access handling for raw and unprivileged mode, rejecting both of them, and sanity checks max variable offset value. Patch 1 handles raw (uninitialized) mode. Patch 2 adds test for raw mode. Patch 3 handles unprivileged mode. Patch 4 adds test for unprivileged mode. Patch 5 adds sanity check for max value of variable offset. Patch 6 adds test for variable offset max value checking. Patch 7 is a minor fix in verbose log. Unprivileged mode is an interesting case since one (and only?) way to come up with variable offset is to use pointer arithmetics. Though pointer arithmetics is already prohibited for unprivileged mode. I'm not sure if it's enough though and it seems like a good idea to still reject variable offset for unpriv in check_stack_boundary(). Please see patches 3 and 4 for more details on this. [1] https://marc.info/?l=linux-netdev&m=155419526427742&w=2 ==================== Signed-off-by: Daniel Borkmann commit 1fbd20f8b77b366ea4aeb92ade72daa7f36a7e3b Author: Andrey Ignatov Date: Wed Apr 3 23:22:43 2019 -0700 bpf: Add missed newline in verifier verbose log check_stack_access() that prints verbose log is used in adjust_ptr_min_max_vals() that prints its own verbose log and now they stick together, e.g.: variable stack access var_off=(0xfffffffffffffff0; 0x4) off=-16 size=1R2 stack pointer arithmetic goes out of range, prohibited for !root Add missing newline so that log is more readable: variable stack access var_off=(0xfffffffffffffff0; 0x4) off=-16 size=1 R2 stack pointer arithmetic goes out of range, prohibited for !root Fixes: f1174f77b50c ("bpf/verifier: rework value tracking") Signed-off-by: Andrey Ignatov Signed-off-by: Daniel Borkmann commit 07f9196241f8bceef975dd15f894f8ed51425d55 Author: Andrey Ignatov Date: Wed Apr 3 23:22:42 2019 -0700 selftests/bpf: Test unbounded var_off stack access Test the case when reg->smax_value is too small/big and can overflow, and separately min and max values outside of stack bounds. Example of output: # ./test_verifier #856/p indirect variable-offset stack access, unbounded OK #857/p indirect variable-offset stack access, max out of bound OK #858/p indirect variable-offset stack access, min out of bound OK Signed-off-by: Andrey Ignatov Signed-off-by: Daniel Borkmann commit 107c26a70ca81bfc33657366ad69d02fdc9efc9d Author: Andrey Ignatov Date: Wed Apr 3 23:22:41 2019 -0700 bpf: Sanity check max value for var_off stack access As discussed in [1] max value of variable offset has to be checked for overflow on stack access otherwise verifier would accept code like this: 0: (b7) r2 = 6 1: (b7) r3 = 28 2: (7a) *(u64 *)(r10 -16) = 0 3: (7a) *(u64 *)(r10 -8) = 0 4: (79) r4 = *(u64 *)(r1 +168) 5: (c5) if r4 s< 0x0 goto pc+4 R1=ctx(id=0,off=0,imm=0) R2=inv6 R3=inv28 R4=inv(id=0,umax_value=9223372036854775807,var_off=(0x0; 0x7fffffffffffffff)) R10=fp0,call_-1 fp-8=mmmmmmmm fp-16=mmmmmmmm 6: (17) r4 -= 16 7: (0f) r4 += r10 8: (b7) r5 = 8 9: (85) call bpf_getsockopt#57 10: (b7) r0 = 0 11: (95) exit , where R4 obviosly has unbounded max value. Fix it by checking that reg->smax_value is inside (-BPF_MAX_VAR_OFF; BPF_MAX_VAR_OFF) range. reg->smax_value is used instead of reg->umax_value because stack pointers are calculated using negative offset from fp. This is opposite to e.g. map access where offset must be non-negative and where umax_value is used. Also dedicated verbose logs are added for both min and max bound check failures to have diagnostics consistent with variable offset handling in check_map_access(). [1] https://marc.info/?l=linux-netdev&m=155433357510597&w=2 Fixes: 2011fccfb61b ("bpf: Support variable offset stack access from helpers") Reported-by: Daniel Borkmann Signed-off-by: Andrey Ignatov Signed-off-by: Daniel Borkmann commit 2c6927dbdc3fbd41207e671212f53a98bbebf6ba Author: Andrey Ignatov Date: Wed Apr 3 23:22:40 2019 -0700 selftests/bpf: Test indirect var_off stack access in unpriv mode Test that verifier rejects indirect stack access with variable offset in unprivileged mode and accepts same code in privileged mode. Since pointer arithmetics is prohibited in unprivileged mode verifier should reject the program even before it gets to helper call that uses variable offset, at the time when that variable offset is trying to be constructed. Example of output: # ./test_verifier ... #859/u indirect variable-offset stack access, priv vs unpriv OK #859/p indirect variable-offset stack access, priv vs unpriv OK Signed-off-by: Andrey Ignatov Signed-off-by: Daniel Borkmann commit 088ec26d9c2da9d879ab73e3f4117f9df6c566ee Author: Andrey Ignatov Date: Wed Apr 3 23:22:39 2019 -0700 bpf: Reject indirect var_off stack access in unpriv mode Proper support of indirect stack access with variable offset in unprivileged mode (!root) requires corresponding support in Spectre masking for stack ALU in retrieve_ptr_limit(). There are no use-case for variable offset in unprivileged mode though so make verifier reject such accesses for simplicity. Pointer arithmetics is one (and only?) way to cause variable offset and it's already rejected in unpriv mode so that verifier won't even get to helper function whose argument contains variable offset, e.g.: 0: (7a) *(u64 *)(r10 -16) = 0 1: (7a) *(u64 *)(r10 -8) = 0 2: (61) r2 = *(u32 *)(r1 +0) 3: (57) r2 &= 4 4: (17) r2 -= 16 5: (0f) r2 += r10 variable stack access var_off=(0xfffffffffffffff0; 0x4) off=-16 size=1R2 stack pointer arithmetic goes out of range, prohibited for !root Still it looks like a good idea to reject variable offset indirect stack access for unprivileged mode in check_stack_boundary() explicitly. Fixes: 2011fccfb61b ("bpf: Support variable offset stack access from helpers") Reported-by: Daniel Borkmann Signed-off-by: Andrey Ignatov Signed-off-by: Daniel Borkmann commit f68a5b44647bce6c34b10d5560c5b2c0aff31afc Author: Andrey Ignatov Date: Wed Apr 3 23:22:38 2019 -0700 selftests/bpf: Test indirect var_off stack access in raw mode Test that verifier rejects indirect access to uninitialized stack with variable offset. Example of output: # ./test_verifier ... #859/p indirect variable-offset stack access, uninitialized OK Signed-off-by: Andrey Ignatov Signed-off-by: Daniel Borkmann commit f2bcd05ec7b839ff826d2008506ad2d2dff46a59 Author: Andrey Ignatov Date: Wed Apr 3 23:22:37 2019 -0700 bpf: Reject indirect var_off stack access in raw mode It's hard to guarantee that whole memory is marked as initialized on helper return if uninitialized stack is accessed with variable offset since specific bounds are unknown to verifier. This may cause uninitialized stack leaking. Reject such an access in check_stack_boundary to prevent possible leaking. There are no known use-cases for indirect uninitialized stack access with variable offset so it shouldn't break anything. Fixes: 2011fccfb61b ("bpf: Support variable offset stack access from helpers") Reported-by: Daniel Borkmann Signed-off-by: Andrey Ignatov Signed-off-by: Daniel Borkmann commit 636e78b1cdb40b77a79b143dbd9d94847b360efa Author: Alexei Starovoitov Date: Thu Apr 4 14:37:14 2019 -0700 samples/bpf: fix build with new clang clang started to error on invalid asm clobber usage in x86 headers and many bpf program samples failed to build with the message: CLANG-bpf /data/users/ast/bpf-next/samples/bpf/xdp_redirect_kern.o In file included from /data/users/ast/bpf-next/samples/bpf/xdp_redirect_kern.c:14: In file included from ../include/linux/in.h:23: In file included from ../include/uapi/linux/in.h:24: In file included from ../include/linux/socket.h:8: In file included from ../include/linux/uio.h:14: In file included from ../include/crypto/hash.h:16: In file included from ../include/linux/crypto.h:26: In file included from ../include/linux/uaccess.h:5: In file included from ../include/linux/sched.h:15: In file included from ../include/linux/sem.h:5: In file included from ../include/uapi/linux/sem.h:5: In file included from ../include/linux/ipc.h:9: In file included from ../include/linux/refcount.h:72: ../arch/x86/include/asm/refcount.h:72:36: error: asm-specifier for input or output variable conflicts with asm clobber list r->refs.counter, e, "er", i, "cx"); ^ ../arch/x86/include/asm/refcount.h:86:27: error: asm-specifier for input or output variable conflicts with asm clobber list r->refs.counter, e, "cx"); ^ 2 errors generated. Override volatile() to workaround the problem. Signed-off-by: Alexei Starovoitov Signed-off-by: Daniel Borkmann commit 6d4257284a87ecbd0fd7eaed0d98531a009f579f Author: Chris Wilson Date: Fri Apr 5 13:38:31 2019 +0100 drm/i915: Make RING_PDP relative to engine->mmio_base The PDP registers are an oddity inside the set of context saved registers in that they take the engine as a parameter to the macro and not the mmio_base as the others do. Make it accept the engine->mmio_base for consistency in programming the context registers. add/remove: 0/0 grow/shrink: 2/1 up/down: 3/-32 (-29) Function old new delta emit_ppgtt_update 324 326 +2 capture 5102 5103 +1 execlists_init_reg_state.isra 1128 1096 -32 And similar savings later! Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190405123831.9724-1-chris@chris-wilson.co.uk commit c3422ad5f84a66739ec6a37251ca27638c85b6be Author: Gustavo A. R. Silva Date: Mon Mar 18 11:14:39 2019 -0500 power: supply: axp288_charger: Fix unchecked return value Currently there is no check on platform_get_irq() return value in case it fails, hence never actually reporting any errors and causing unexpected behavior when using such value as argument for function regmap_irq_get_virq(). Fix this by adding a proper check, a message reporting any errors and returning *pirq* Addresses-Coverity-ID: 1443940 ("Improper use of negative value") Fixes: 843735b788a4 ("power: axp288_charger: axp288 charger driver") Cc: stable@vger.kernel.org Signed-off-by: Gustavo A. R. Silva Reviewed-by: Hans de Goede Signed-off-by: Sebastian Reichel commit f0459fe14713081294b18bf1243f8de459814131 Author: Maxime Ripard Date: Mon Mar 18 14:36:29 2019 +0100 power: supply: Fix the simple battery property names Commit c08b1f45d7d1 ("power: supply: core: Add power_supply_battery_info and API") introduced code to parse the simple-battery node and express battery charging constraints. However, it parsed that node using the properties constant_charge_current_max_microamp and constant_charge_voltage_max_microvolt, while the device tree binding for the simple-battery node uses dashes to separate the words in those properties (constant-charge-current-max-microamp and constant-charge-voltage-max-microvolt). Let's make the code match the binding. Fixes: c08b1f45d7d1 ("power: supply: core: Add power_supply_battery_info and API") Signed-off-by: Maxime Ripard Signed-off-by: Sebastian Reichel commit 75cf4f5aa903604e1bd7bec2c0988d643c6fb946 Author: Kangjie Lu Date: Thu Mar 14 01:02:47 2019 -0500 power: charger-manager: fix a potential NULL pointer dereference In case create_freezable_workqueue fails, the fix return -ENOMEM to avoid a potential NULL pointer dereference. Signed-off-by: Kangjie Lu Signed-off-by: Sebastian Reichel commit b5b447b6b4e899e0978b95cb42d272978f8c7b4d Author: Valentin Schneider Date: Mon Mar 11 22:47:51 2019 +0000 x86/entry: Remove unneeded need_resched() loop Since the enabling and disabling of IRQs within preempt_schedule_irq() is contained in a need_resched() loop, there is no need for the outer architecture specific loop. Signed-off-by: Valentin Schneider Signed-off-by: Thomas Gleixner Cc: Andy Lutomirski Cc: Borislav Petkov Cc: "H. Peter Anvin" Link: https://lkml.kernel.org/r/20190311224752.8337-14-valentin.schneider@arm.com commit 077d9951f7c9ef5845fdcf4363d3a4630d142e4f Author: Martin Schiller Date: Fri Mar 8 08:49:30 2019 +0100 power: reset: syscon-reboot: add a mask property Make the syscon-reboot driver accept value and mask instead of just value. Prior to this patch, the property name for the value was 'mask'. If only the mask property is defined on a node, maintain compatibility by using it as the value. This patch is based on commit f2c199db477e ("power: reset: syscon-poweroff: add a mask property") and does the same change for the syscon-reboot driver. Signed-off-by: Martin Schiller Acked-by: Rob Herring Signed-off-by: Sebastian Reichel commit 91b350a605136c4c007df928779f81b58146a4f9 Author: Sean Paul Date: Wed Apr 3 16:56:45 2019 -0400 Documentation/gpu/meson: Remove link to meson_canvas.c The file was removed in the below patch and is causing this error: WARNING: kernel-doc '../scripts/kernel-doc -rst -enable-lineno -function Canvas ../drivers/gpu/drm/meson/meson_canvas.c' failed with return code Fixes: 2bf6b5b0e374 ("drm/meson: exclusively use the canvas provider module") Cc: Maxime Jourdan Cc: Neil Armstrong Cc: Kevin Hilman Cc: dri-devel@lists.freedesktop.org Cc: linux-amlogic@lists.infradead.org Cc: linux-arm-kernel@lists.infradead.org Acked-by: Neil Armstrong Signed-off-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190403205652.183496-1-sean@poorly.run commit e57ce4b193a306ac8ccaf47c1cac3c49e6bd7190 Author: Chris Wilson Date: Fri Apr 5 12:14:30 2019 +0100 drm/i915/selftests: Fix plain use of integer 0 as NULL Quelch a sparse warning: drivers/gpu/drm/i915/gt/selftest_lrc.c:119:54: warning: Using plain integer as NULL pointer Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Cc: Matthew Auld Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190405111430.18495-1-chris@chris-wilson.co.uk commit f6e564354a01dd943ba92c514ddf386080d7baa4 Author: Alexandru Elisei Date: Fri Apr 5 11:20:12 2019 +0100 arm64: Use defines instead of magic numbers Following assembly code is not trivial; make it slightly easier to read by replacing some of the magic numbers with the defines which are already present in sysreg.h. Reviewed-by: Dave Martin Signed-off-by: Alexandru Elisei Signed-off-by: Will Deacon commit cabf5ebbabcd4ad59b6eb216876c4c2e56fd3386 Merge: 1279e41d535e 1c3a2c864d2d Author: Thomas Gleixner Date: Fri Apr 5 13:28:15 2019 +0200 Merge tag 'perf-core-for-mingo-5.2-20190402' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core Pull perf/core improvements and fixes from Arnaldo: perf record: Alexey Budankov: - Implement --mmap-flush= option, to control a threshold for draining the mmap ring buffers and consequently the size of the write calls to the output, be it perf.data, pipe mode or soon a compressor that with bigger buffers will do a better job before dumping compressed data into a new perf.data content mode, which is in the final steps of reviewing and testing. perf trace: Arnaldo Carvalho de Melo: - Add 'string' event alias to select syscalls with string args, i.e. for testing the BPF program used to copy those strings, allow for: # perf trace -e string To select all the syscalls that have things like pathnames. - Use a PERCPU_ARRAY BPF map to copy more string bytes than what is possible using the BPF stack, just like pioneered by the sysdig tool. Feature detection: Alexey Budankov: - Implement libzstd feature check, which is a library that provides a uniform API to various compression formats, will be used in 'perf record', see note about --mmap-flush feature. perf stat: Andi Kleen: - Implement a tool specific 'duration_time' event to allow showing the "time elapsed" line in the default 'perf stat' output as one of the events that can be asked for when using --field-separator and other script consumable outputs. Intel vendor events (JSON files): Andi Kleen: - Update metrics from TMAM 3.5. - Update events: Bonnell to V4 Broadwell-DE to v7 Broadwell to v23 BroadwellX to v14 GoldmontPlus to v1.01 Goldmont to v13 Haswell to v28 HaswellX to v20 IvyBridge to v21 IvyTown to v20 JakeTown to v20 KnightsLanding to v9 SandyBridge to v16 Silvermont to v14 Skylake to v42 SkylakeX to v1.12 IBM S/390 vendor events (JSON): Thomas Richter: - Fix s390 counter long description for L1D_RO_EXCL_WRITES. tools lib traceevent: Steven Rostedt (Red Hat): - Add more debugging to see various internal ring buffer entries. Steven Rostedt (VMWare): - Handle trace_printk() "%px". - Add mono clocks to be parsed in seconds. - Removed unneeded !! and return parenthesis. Tzvetomir Stoyanov : - Implement a new API, tep_list_events_copy(). - Implement new traceevent APIs for accessing struct tep_handler fields. - Remove tep filter trivial APIs, not used anymore. - Remove call to exit() from tep_filter_add_filter_str(), library routines shouldn't kill tools using it. - Make traceevent APIs more consistent. Signed-off-by: Arnaldo Carvalho de Melo commit 4df4309587e18a3c91e68138638dcb9d2a968906 Author: Gustavo A. R. Silva Date: Wed Apr 3 13:42:30 2019 -0500 x86/kexec/crash: Use struct_size() in vzalloc() One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example: struct foo { int stuff; struct boo entry[]; }; instance = vzalloc(sizeof(struct foo) + count * sizeof(struct boo)); Instead of leaving these open-coded and prone to type mistakes, use the new struct_size() helper: instance = vzalloc(struct_size(instance, entry, count)); This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Thomas Gleixner Cc: "H. Peter Anvin" Link: https://lkml.kernel.org/r/20190403184230.GA5295@embeddedor commit 7c21383f3429dd70da39c0c7f1efa12377a47ab6 Author: Kees Cook Date: Thu Apr 4 14:40:27 2019 -0700 x86/build: Keep local relocations with ld.lld The LLVM linker (ld.lld) defaults to removing local relocations, which causes KASLR boot failures. ld.bfd and ld.gold already handle this correctly. This adds the explicit instruction "--discard-none" during the link phase. There is no change in output for ld.bfd and ld.gold, but ld.lld now produces an image with all the needed relocations. Signed-off-by: Kees Cook Signed-off-by: Borislav Petkov Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Nick Desaulniers Cc: Thomas Gleixner Cc: clang-built-linux@googlegroups.com Cc: x86-ml Link: https://lkml.kernel.org/r/20190404214027.GA7324@beast Link: https://github.com/ClangBuiltLinux/linux/issues/404 commit bac24f59f45419a3853af2f58130cb82b7bdca64 Author: Chris Wilson Date: Fri Mar 29 13:40:24 2019 +0000 drm/i915/execlists: Enable coarse preemption boundaries for gen8 When we introduced preemption, we chose to keep it disabled for gen8 as supporting preemption inside GPGPU user batches required various w/a in userspace. Since then, the desire to preempt long queues of requests between batches (e.g. within busywaiting semaphores) has grown. So allow arbitration within the busywaits and between requests, but disable arbitration within user batches so that we can preempt between requests and not risk breaking GPGPU. However, since this preemption is much coarser and doesn't interfere with userspace, we decline to include it amongst the scheduler capabilities. (This is also required for us to skip over the preemption selftests that expect to be able to preempt user batches.) Michal suggested that we could perhaps allow preemption inside gen8 userspace batches if we can satisfy ourselves that the default preemption settings are viable with existing userspace (principally OpenCL which already should carry any known workaround). We could then merge the two code paths back into one, even dropping the artifical has-preemption device feature flag. Testcase: igt/gem_exec_scheduler/semaphore-user References: beecec901790 ("drm/i915/execlists: Preemption!") Fixes: e88619646971 ("drm/i915: Use HW semaphores for inter-engine synchronisation on gen8+") Signed-off-by: Chris Wilson Cc: Michal Winiarski Cc: Tvrtko Ursulin Reviewed-by: Michal Winiarski #irc Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190329134024.5254-1-chris@chris-wilson.co.uk commit e43c426a777eb2554d8a29d31311debe897badd9 Author: Enric Balletbo i Serra Date: Wed Apr 3 15:47:18 2019 +0200 platform/chrome: cros_ec_debugfs: Remove dev_warn when console log is not supported If the debugfs interface is enabled, every time a CrOS device is instantiated a warning like this can appear for every probed device. "device does not support reading the console log" The warning message adds nothing, rather it is source of confusion as this is expected on some cases. For example, on Samus, that has a cros-ec and a cros-pd instance the message appears twice, and I suspect this will happen also on those devices that has a non-standard EC. If the command is not supported just return silently and don't print the warning, otherwise the code will already print an error. Signed-off-by: Enric Balletbo i Serra Reviewed-by: Guenter Roeck commit b66ea2c2cf59b80c38a14127fafb49fdf0df9180 Author: Chris Wilson Date: Wed Apr 3 09:21:32 2019 +0100 drm/i915: Use lockdep_pin_lock() over the construction of the request During request construction, we take the timeline->mutex to ensure exclusive access to the ringbuffer (for command emission) and the timeline itself (for command ordering). The timeline->mutex should not be dropped by callers until we release it in i915_request_add(). lockdep provides a pin/unpin lock facility to detect accidental unlocks inside critical sections, so put it to use for request construction. Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190403082132.327-1-chris@chris-wilson.co.uk commit fcf041fbacbc205bfadf50b68ad550f26e1568f3 Author: Yangtao Li Date: Thu Apr 4 13:01:46 2019 -0400 arm64: dts: allwinner: h6: Add device node for SID The device tree binding already lists compatible strings for H6 SoC, so add a device node for it. Signed-off-by: Yangtao Li Signed-off-by: Maxime Ripard commit 954a03be033c7cef80ddc232e7cbdb17df735663 Author: Douglas Anderson Date: Fri Mar 1 11:20:17 2019 -0800 iommu/arm-smmu: Break insecure users by disabling bypass by default If you're bisecting why your peripherals stopped working, it's probably this CL. Specifically if you see this in your dmesg: Unexpected global fault, this could be serious ...then it's almost certainly this CL. Running your IOMMU-enabled peripherals with the IOMMU in bypass mode is insecure and effectively disables the protection they provide. There are few reasons to allow unmatched stream bypass, and even fewer good ones. This patch starts the transition over to make it much harder to run your system insecurely. Expected steps: 1. By default disable bypass (so anyone insecure will notice) but make it easy for someone to re-enable bypass with just a KConfig change. That's this patch. 2. After people have had a little time to come to grips with the fact that they need to set their IOMMUs properly and have had time to dig into how to do this, the KConfig will be eliminated and bypass will simply be disabled. Folks who are truly upset and still haven't fixed their system can either figure out how to add 'arm-smmu.disable_bypass=n' to their command line or revert the patch in their own private kernel. Of course these folks will be less secure. Suggested-by: Robin Murphy Reviewed-by: Marc Gonzalez Tested-by: Marc Gonzalez Signed-off-by: Douglas Anderson Signed-off-by: Will Deacon commit d0de579c043c3a2ab60ce75eb6cf4d414becc676 Author: Kenneth Heitke Date: Thu Apr 4 12:57:45 2019 -0600 nvme: log the error status on Identify Namespace failure Identify Namespace failures are logged as a warning but there is not an indication of the cause for the failure. Update the log message to include the error status. Signed-off-by: Kenneth Heitke Reviewed-by: Chaitanya Kulkarni Signed-off-by: Christoph Hellwig commit 013a63ef4edcd2366299225c3b081102171e8fa9 Author: Max Gurtovoy Date: Tue Apr 2 14:51:54 2019 +0300 nvmet: add safety check for subsystem lock during nvmet_ns_changed we need to make sure that subsystem lock is taken during ctrl's list traversing. nvmet_ns_changed function is not static and can be used from various callers simultaneously. Signed-off-by: Max Gurtovoy Reviewed-by: Johannes Thumshirn Signed-off-by: Christoph Hellwig commit e84c2091a45228b62867ec0565898ef5404706a2 Author: Max Gurtovoy Date: Tue Apr 2 14:52:47 2019 +0300 nvmet: never fail double namespace enablement In case we create N namespaces while N < NVMET_MAX_NAMESPACES, we can perform "echo 1 > /enable" as much as we want. In case N == NVMET_MAX_NAMESPACES we fail. Make sure we have the same flow for any N. Signed-off-by: Max Gurtovoy Reviewed-by: Johannes Thumshirn Signed-off-by: Christoph Hellwig commit 70479b71bc80ae6f63c8d6644cc76dff99f79686 Author: Christoph Hellwig Date: Tue Mar 5 05:59:02 2019 -0700 nvme-pci: tidy up nvme_map_data Remove two pointless local variables, remove ret assignment that is never used, move the use_sgl initialization closer to where it is used. Signed-off-by: Christoph Hellwig Reviewed-by: Keith Busch Reviewed-by: Sagi Grimberg Reviewed-by: Chaitanya Kulkarni commit 297910571f08f1d7e398793df6e606ebb375a3f1 Author: Christoph Hellwig Date: Tue Mar 5 05:54:18 2019 -0700 nvme-pci: optimize mapping single segment requests using SGLs If the controller supports SGLs we can take another short cut for single segment request, given that we can always map those without another indirection structure, and thus don't need to create a scatterlist structure. Signed-off-by: Christoph Hellwig Reviewed-by: Keith Busch Reviewed-by: Sagi Grimberg Reviewed-by: Chaitanya Kulkarni commit dff824b2aadb7808f50ceb0927acaec5ad750ce7 Author: Christoph Hellwig Date: Tue Mar 5 05:49:34 2019 -0700 nvme-pci: optimize mapping of small single segment requests If a request is single segment and fits into one or two PRP entries we do not have to create a scatterlist for it, but can just map the bio_vec directly. Signed-off-by: Christoph Hellwig Reviewed-by: Keith Busch Reviewed-by: Sagi Grimberg Reviewed-by: Chaitanya Kulkarni commit d43f1ccfad053dbefba1d15443cdc36ca60958f0 Author: Christoph Hellwig Date: Tue Mar 5 05:46:58 2019 -0700 nvme-pci: remove the inline scatterlist optimization We'll have a better way to optimize for small I/O that doesn't require it soon, so remove the existing inline_sg case to make that optimization easier to implement. Signed-off-by: Christoph Hellwig Reviewed-by: Keith Busch Reviewed-by: Sagi Grimberg Reviewed-by: Chaitanya Kulkarni commit 4aedb705437f6f98b45f45c394e6803ca67abd33 Author: Christoph Hellwig Date: Sun Mar 3 09:46:28 2019 -0700 nvme-pci: split metadata handling from nvme_map_data / nvme_unmap_data This prepares for some bigger changes to the data mapping helpers. Signed-off-by: Christoph Hellwig Reviewed-by: Keith Busch Reviewed-by: Sagi Grimberg Reviewed-by: Chaitanya Kulkarni commit 783b94bd9250478154904fa782d2cfc46336cdf6 Author: Christoph Hellwig Date: Sun Mar 3 08:19:18 2019 -0700 nvme-pci: do not build a scatterlist to map metadata We always have exactly one segment, so we can simply call dma_map_bvec. Signed-off-by: Christoph Hellwig Reviewed-by: Keith Busch Reviewed-by: Sagi Grimberg Reviewed-by: Chaitanya Kulkarni commit b15c592de37ed9d71499a3b8a750d1b235fcba3d Author: Christoph Hellwig Date: Sun Mar 3 08:52:21 2019 -0700 nvme-pci: only call nvme_unmap_data for requests transferring data This mirrors how nvme_map_pci is called and will allow simplifying some checks in nvme_unmap_pci later on. Signed-off-by: Christoph Hellwig Reviewed-by: Keith Busch Reviewed-by: Sagi Grimberg Reviewed-by: Chaitanya Kulkarni commit 7fe07d14f71fabef642a478626248a9121e95b7b Author: Christoph Hellwig Date: Sun Mar 3 08:15:19 2019 -0700 nvme-pci: merge nvme_free_iod into nvme_unmap_data This means we now have a function that undoes everything nvme_map_data does and we can simplify the error handling a bit. Signed-off-by: Christoph Hellwig Reviewed-by: Keith Busch Reviewed-by: Sagi Grimberg Reviewed-by: Chaitanya Kulkarni commit 915f04c93db4e3a7388c8ad8ddfc28830e4cbce3 Author: Christoph Hellwig Date: Sun Mar 3 08:13:03 2019 -0700 nvme-pci: move the call to nvme_cleanup_cmd out of nvme_unmap_data Cleaning up the command setup isn't related to unmapping data, and disentangling them will simplify error handling a bit down the road. Signed-off-by: Christoph Hellwig Reviewed-by: Keith Busch Reviewed-by: Sagi Grimberg Reviewed-by: Chaitanya Kulkarni commit 9b048119a153590b934ef49aae309b723587f527 Author: Christoph Hellwig Date: Sun Mar 3 08:04:01 2019 -0700 nvme-pci: remove nvme_init_iod nvme_init_iod should really be split into two parts: initialize a few general iod fields, which can easily be done at the beginning of nvme_queue_rq, and allocating the scatterlist if needed, which logically belongs into nvme_map_data with the code making use of it. Signed-off-by: Christoph Hellwig Reviewed-by: Keith Busch Reviewed-by: Sagi Grimberg Reviewed-by: Chaitanya Kulkarni commit 3ab3a0313cb8c50391d74e40fd46a3408d8e4de9 Author: Christoph Hellwig Date: Sun Mar 3 08:40:36 2019 -0700 block: add dma_map_bvec helper Provide a nice little shortcut for mapping a single bvec. Signed-off-by: Christoph Hellwig Reviewed-by: Keith Busch Reviewed-by: Sagi Grimberg Reviewed-by: Chaitanya Kulkarni commit 9d9de535f385a8b3ba0e88ca0abf386c5704bbfc Author: Christoph Hellwig Date: Sun Mar 3 08:18:30 2019 -0700 block: add a rq_dma_dir helper In a lot of places we want to know the DMA direction for a given struct request. Add a little helper to make it a littler easier. Signed-off-by: Christoph Hellwig Reviewed-by: Keith Busch Reviewed-by: Sagi Grimberg Reviewed-by: Chaitanya Kulkarni commit 2a876f5e25e8ec9fa5777d36e5695ee33dd63f6f Author: Christoph Hellwig Date: Sun Mar 3 08:38:29 2019 -0700 block: add a rq_integrity_vec helper This provides a nice little shortcut to get the integrity data for drivers like NVMe that only support a single integrity segment. Signed-off-by: Christoph Hellwig Reviewed-by: Keith Busch Reviewed-by: Sagi Grimberg Reviewed-by: Chaitanya Kulkarni commit 3aef3cae4342c1d8137a1c0782cbb66f1be3943c Author: Christoph Hellwig Date: Sun Mar 3 09:14:01 2019 -0700 block: add a req_bvec helper Return the currently active bvec segment, potentially spanning multiple pages. Signed-off-by: Christoph Hellwig Reviewed-by: Keith Busch Reviewed-by: Sagi Grimberg Reviewed-by: Chaitanya Kulkarni commit 39f8e36401142d73e33a954ac4bdf844fb5de9ae Author: Keith Busch Date: Fri Mar 8 10:43:13 2019 -0700 nvme-pci: remove unused nvme_iod member Signed-off-by: Keith Busch Reviewed-by: Sagi Grimberg Signed-off-by: Christoph Hellwig commit 88a041f4c1f6a21284c70b491929ed35336a0ea9 Author: Keith Busch Date: Fri Mar 8 10:43:11 2019 -0700 nvme-pci: remove q_dmadev from nvme_queue We don't need to save the dma device as it's not used in the hot path and hasn't in a long time. Shrink the struct nvme_queue removing this unnecessary member. Signed-off-by: Keith Busch Reviewed-by: Sagi Grimberg Signed-off-by: Christoph Hellwig commit 7c349dde26b75db3fa1863e36984ac2271cd797a Author: Keith Busch Date: Fri Mar 8 10:43:06 2019 -0700 nvme-pci: use a flag for polled queues A negative value for the cq_vector used to mean the queue is either disabled or a polled queue. However, we have a queue enabled flag, so the cq_vector had been serving double duty. Don't overload the meaning of cq_vector. Use a flag specific to the polled queues instead. Signed-off-by: Keith Busch Reviewed-by: Sagi Grimberg Signed-off-by: Christoph Hellwig commit 70583295388a3ceabc22bddeb16e788f58225d70 Author: Sagi Grimberg Date: Fri Mar 8 15:41:21 2019 -0800 nvmet-tcp: implement C2HData SUCCESS optimization TP 8000 says that the use of the SUCCESS flag depends on weather the controller support disabling sq_head pointer updates. Given that we support it by default, makes sense that we go the extra mile to actually use the SUCCESS flag. When we create the C2HData PDU header, we check if sqhd_disabled is set on our queue, if so, we set the SUCCESS flag in the PDU header and skip sending a completion response capsule. Signed-off-by: Sagi Grimberg Reviewed-by: Oliver Smith-Denny Tested-by: Oliver Smith-Denny Signed-off-by: Christoph Hellwig commit 6b80f1d2cc5a76f0121a43a612515bc8a8976e66 Author: Gustavo A. R. Silva Date: Sat Feb 23 12:51:08 2019 -0600 nvmet-fc: use zero-sized array and struct_size() in kzalloc() Update the code to use a zero-sized array instead of a pointer in structure nvmet_fc_tgt_queue and use struct_size() in kzalloc(). Notice that one of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example: struct foo { int stuff; struct boo entry[]; }; instance = kzalloc(sizeof(struct foo) + sizeof(struct boo) * count, GFP_KERNEL); Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper: instance = kzalloc(struct_size(instance, entry, count), GFP_KERNEL); This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Reviewed-by: James Smart Signed-off-by: Christoph Hellwig commit cfe03c2ec46200dfefa5167e6a2bb50c0426c5f4 Author: Christoph Hellwig Date: Tue Mar 12 18:05:10 2019 +0100 nvmet: avoid double errno conversions Use errno_to_nvme_status to convert from a negative errno to a nvme status field instead of going through a blk_status_t. Also remove the pointless status variable in nvmet_bdev_execute_write_zeroes. Signed-off-by: Christoph Hellwig Reviewed-by: Sagi Grimberg Reviewed-by: Chaitanya Kulkarni commit 43e2d08d0790a09ee1d2c838e33343ee1bcaf610 Author: Max Gurtovoy Date: Mon Feb 25 13:00:04 2019 +0200 nvme: avoid double dereference to convert le to cpu Use le16_to_cpu instead of le16_to_cpup and le64_to_cpu instead of le64_to_cpup. This will also align the code to nvme-core driver convention. Signed-off-by: Max Gurtovoy Signed-off-by: Christoph Hellwig commit 6d00c6f8d2e781e3c821fc9c614f404cc981804d Author: Joel Stanley Date: Wed Oct 3 14:35:07 2018 +0200 ARM: dts: aspeed: Add RTC node The ASPEED ast2400 and ast2500 both contain an on board RTC device. Signed-off-by: Joel Stanley commit 780726f996551a23bcf34f9980f14375abda073e Author: Edward A. James Date: Wed Apr 3 11:59:11 2019 -0500 ARM: dts: aspeed: witherspoon: Update BMC partitioning Add simplified partitions for BMC and alternate flash. Include these by default in Witherspoon. Signed-off-by: Edward A. James Signed-off-by: Adriana Kobylak Reviewed-by: Cédric Le Goater Reviewed-by: Andrew Jeffery Signed-off-by: Joel Stanley commit 972f0e069d11f7b217033f92f89af1309a29736b Author: Tao Ren Date: Tue Feb 5 14:46:19 2019 -0800 ARM: dts: aspeed: cmm: enable iio-hwmon-adc Bind aspeed ADC channels 0-7 to "iio-hwmon" driver so the data of these voltage sensing channels can be accessed by "lm_sensors". Channels 8-15 are not used on CMM BMC. Signed-off-by: Tao Ren Signed-off-by: Joel Stanley commit ffdbf494821dd81de0c625f3fcfbed8a0f2d9f51 Author: Vijay Khemka Date: Wed Jan 30 10:14:26 2019 -0800 ARM: dts: aspeed: tiogapass: Enable VUART Enabling vuart for Facebook tiogapass Signed-off-by: Vijay Khemka Signed-off-by: Joel Stanley commit 796b440701995445c0365cfa3f6e558c9a9e76f7 Author: Eddie James Date: Tue Apr 2 18:25:04 2019 +0000 ARM: dts: aspeed-g5: Add video engine Add a node to describe the video engine on the AST2500. Signed-off-by: Eddie James Signed-off-by: Joel Stanley commit 5de3b03173f8054e2fd52420452dbc46568f3f2e Author: Joel Stanley Date: Thu Apr 19 13:50:03 2018 +0930 ARM: dts: aspeed: Enable the GFX IP The GFX controller is the internal graphics device used by the SoC (opposed to the one connected via the PCIe device and used by the host). This configures it with a framebuffer region and adds it to the command line so kernel boot messages appear on the display. Enabled for Romulus, Witherspoon, and the ASPEED AST2500 EVB. Reviewed-by: Andrew Jeffery Signed-off-by: Joel Stanley commit e1920e704829f00cdfe6131f51f23dbe590b217f Author: Joel Stanley Date: Thu Apr 19 13:50:02 2018 +0930 ARM: dts: aspeed-g5: Add resets and clocks to GFX node The ast2500 has a reset for the CRT device that must be deasserted before it can be used. Similarly it has a clock gate for a clock called D1CLK that must be set to running. Reviewed-by: Andrew Jeffery Signed-off-by: Joel Stanley commit 66e7ff850f5213fb0a20fc28ddfd8b07604eaff6 Author: Eddie James Date: Thu Mar 21 14:30:09 2019 -0500 ARM: dts: aspeed: witherspoon: Enable vhub Enable the virtual USB hub. Signed-off-by: Eddie James Signed-off-by: Joel Stanley commit 67dca5e580f1e93a66177389981541cac208c817 Author: Naga Sureshkumar Relli Date: Mon Apr 1 13:29:13 2019 +0530 spi: spi-mem: Add support for Zynq QSPI controller Add support for QSPI controller driver used by Xilinx Zynq SOC. Signed-off-by: Naga Sureshkumar Relli Signed-off-by: Mark Brown commit d2920ef5d094b59254bedfccb1fab984d101c332 Author: Naga Sureshkumar Relli Date: Mon Apr 1 13:28:32 2019 +0530 dt-bindings: spi: Add device tree binding documentation for Zynq QSPI controller This patch adds the dts binding document for Zynq SOC QSPI controller. Reviewed-by: Rob Herring Signed-off-by: Naga Sureshkumar Relli Signed-off-by: Mark Brown commit 45f7718ae713e52def029c071cdba19a8045ac52 Author: Andrey Smirnov Date: Tue Apr 2 21:01:30 2019 -0700 spi: gpio: Drop unused pdev field in struct spi_gpio There's no code using 'pdev' field in struct spi_gpio. Drop it. Signed-off-by: Andrey Smirnov Cc: Mark Brown Cc: Chris Healy Cc: linux-spi@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Mark Brown commit 5c8283c172c1597eb7c30b25f186de3ec6ee6cb5 Author: Andrey Smirnov Date: Tue Apr 2 21:01:29 2019 -0700 spi: gpio: Drop mflags argument from spi_gpio_request() The logic of setting mflags in spi_gpio_request() is very simple and there isn't much benefit in having it in that function. Move all of that code outside into spi_gpio_probe() in order to simplify things. Signed-off-by: Andrey Smirnov Cc: Mark Brown Cc: Chris Healy Cc: linux-spi@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Mark Brown commit 0a919ae49223d32ac0e8be3494547fcd1e4aa0aa Author: Andrey Smirnov Date: Tue Apr 2 21:01:28 2019 -0700 spi: Don't call spi_get_gpio_descs() before device name is set Move code calling spi_get_gpio_descs() to happen after ctlr->dev's name is set in order to have proper GPIO consumer names. Before: cat /sys/kernel/debug/gpio gpiochip0: GPIOs 0-31, parent: platform/40049000.gpio, vf610-gpio: gpio-6 ( |regulator-usb0-vbus ) out lo gpiochip1: GPIOs 32-63, parent: platform/4004a000.gpio, vf610-gpio: gpio-36 ( |scl ) in hi gpio-37 ( |sda ) in hi gpio-40 ( |(null) CS1 ) out lo gpio-41 ( |(null) CS0 ) out lo ACTIVE LOW gpio-42 ( |miso ) in hi gpio-43 ( |mosi ) in lo gpio-44 ( |sck ) out lo After: cat /sys/kernel/debug/gpio gpiochip0: GPIOs 0-31, parent: platform/40049000.gpio, vf610-gpio: gpio-6 ( |regulator-usb0-vbus ) out lo gpiochip1: GPIOs 32-63, parent: platform/4004a000.gpio, vf610-gpio: gpio-36 ( |scl ) in hi gpio-37 ( |sda ) in hi gpio-40 ( |spi0 CS1 ) out lo gpio-41 ( |spi0 CS0 ) out lo ACTIVE LOW gpio-42 ( |miso ) in hi gpio-43 ( |mosi ) in lo gpio-44 ( |sck ) out lo Signed-off-by: Andrey Smirnov Cc: Mark Brown Cc: Chris Healy Cc: linux-spi@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Mark Brown commit 249e2632dcd0509b8f8f296f5aabf4d48dfd6da8 Author: Andrey Smirnov Date: Tue Apr 2 21:01:27 2019 -0700 spi: gpio: Don't request CS GPIO in DT use-case DT use-case already relies on SPI core to control CS (requested by of_spi_register_master() and controlled spi_set_cs()), so there's no need to try to request those GPIO in spi-gpio code. Change the code such that spi-gpio's CS related code is only used if device is probed via pdata. Signed-off-by: Andrey Smirnov Cc: Mark Brown Cc: Chris Healy Cc: linux-spi@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Mark Brown commit d9088966c851ecbe820c053b347e8d565e4fa05c Author: Sowjanya Komatineni Date: Thu Apr 4 17:14:06 2019 -0700 spi: tegra114: set bus number based on id This patch sets SPI device id from the device tree as the bus number. Signed-off-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit 76457eea24db3c7d51f623c08838bbffda6ac3ad Author: Sowjanya Komatineni Date: Thu Apr 4 17:14:01 2019 -0700 spi: tegra114: use unpacked mode for below 4 bytes Packed mode expects minimum transfer length of 4 bytes. This patch fixes this by using unpacked mode for transfers less than 4 bytes. Signed-off-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit f0a0bc90c6e7060778911c2b55d085105809d6cf Author: Sowjanya Komatineni Date: Thu Apr 4 17:14:05 2019 -0700 spi: tegra114: set supported bits per word Tegra SPI supports 4 through 32 bits per word. This patch sets bits_per_word_mask accordingly to support transfer with these bits per word. Signed-off-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit a0253c8fa18129f423c22f175a83d81423e60715 Author: Sowjanya Komatineni Date: Thu Apr 4 17:14:04 2019 -0700 spi: tegra114: dump SPI registers during timeout This patch dumps SPI registers on transfer error or timeout for debug purpose. Signed-off-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit e1a7d1673062a6a9160b1fc94e1540b747398e01 Merge: 9fda6693335c a026525d4e45 Author: Mark Brown Date: Fri Apr 5 10:19:10 2019 +0700 Merge branch 'spi-5.1' into spi-5.2 commit a026525d4e45e3d9690bffd0b05d018ff5638b5a Author: Sowjanya Komatineni Date: Thu Apr 4 17:14:03 2019 -0700 spi: tegra114: avoid reset call in atomic context This patch moves SPI controller reset out of spin lock. Signed-off-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit f3e182c33e534f4caeb255a3ab927debc0d222aa Author: Sowjanya Komatineni Date: Thu Apr 4 17:14:02 2019 -0700 spi: tegra114: de-assert CS before SPI mode change With SW CS, during the transfer completion CS is de-asserted by writing default command1 register value to SPI_COMMAND1 register. With this both mode and CS state are set at the same time and if current transfer mode is different to default SPI mode and if mode change happens prior to CS de-assert, clock polarity can change while CS is active before transfer finishes. This causes Slave to see spurious clock edges resulting in data mismatch. This patch fixes this by de-asserting CS before writing SPI_COMMAND1 to its default value so through out the transfer it will be in same SPI mode. Signed-off-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit 4110e9a1868332e305f64d5c5b32368597caeb8f Author: Olivier Moysan Date: Wed Apr 3 15:23:35 2019 +0200 ASoC: cs42l51: change mic bias DAPM Use SND_SOC_DAPM_SUPPLY for mic bias DAPM instead of deprecated SND_SOC_DAPM_MICBIAS. Signed-off-by: Olivier Moysan Signed-off-by: Mark Brown commit 1997ee89f36da906efb8e700f1d08368c73883be Author: S.j. Wang Date: Thu Apr 4 09:40:56 2019 +0000 ASoC: fsl_esai: Support synchronous mode In ESAI synchronous mode, the clock is generated by Tx, So we should always set registers of Tx which relate with the bit clock and frame clock generation (TCCR, TCR, ECR), even there is only Rx is working. Signed-off-by: Shengjiu Wang Acked-by: Nicolin Chen Signed-off-by: Mark Brown commit 063773011d33bb36588a90385aa9eb75d13c6d80 Author: Charles Keepax Date: Thu Apr 4 16:32:18 2019 +0100 regulator: core: Avoid potential deadlock on regulator_unregister Lockdep reports the following issue on my setup: Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock((work_completion)(&(&rdev->disable_work)->work)); lock(regulator_list_mutex); lock((work_completion)(&(&rdev->disable_work)->work)); lock(regulator_list_mutex); The problem is that regulator_unregister takes the regulator_list_mutex and then calls flush_work on disable_work. But regulator_disable_work calls regulator_lock_dependent which will also take the regulator_list_mutex. Resulting in a deadlock if the flush_work call actually needs to flush the work. Fix this issue by moving the flush_work outside of the regulator_list_mutex. The list mutex is not used to guard the point at which the delayed work is queued, so its use adds no additional safety. Fixes: f8702f9e4aa7 ("regulator: core: Use ww_mutex for regulators locking") Signed-off-by: Charles Keepax Reviewed-by: Dmitry Osipenko Signed-off-by: Mark Brown commit 2114171d9cce1a897bee394b06f6c224247f095c Author: Pierre-Louis Bossart Date: Thu Apr 4 14:13:58 2019 -0500 ASoC: topology: fix big-endian check Use an explicit define to avoid Sparse issues coming from the use of cpu_to_be32 Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 5aebe7c7f9c20ef225c0c3a25c06a20c3938e390 Author: Pierre-Louis Bossart Date: Thu Apr 4 14:13:57 2019 -0500 ASoC: topology: fix endianness issues Use le16/32/64_to_cpu() as needed to make Sparse happy. Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit aa191a37b801be6c5abebe77e67dcec7c5c0faee Author: Jerome Brunet Date: Thu Apr 4 13:17:33 2019 +0200 ASoC: meson: axg-tdmout: add g12a support The axg tdmout driver just need a different skew offset to operate correctly on the g12a SoC family. Signed-off-by: Jerome Brunet Signed-off-by: Mark Brown commit f01bc67f58fde599b48d2dde5d0f48dccd84c4f1 Author: Jerome Brunet Date: Thu Apr 4 13:17:32 2019 +0200 ASoC: meson: axg-tdm-formatter: rework quirks settings The g12a tdmout requires a different signal skew offset than the axg. With this change, the skew offset is added as a parameter of the tdm formatters to prepare the addition of the g12a support. Signed-off-by: Jerome Brunet Signed-off-by: Mark Brown commit fcced66f208d778aa2dea05910161689503c16bf Author: Jerome Brunet Date: Thu Apr 4 13:17:31 2019 +0200 ASoC: meson: axg-frddr: add g12a support On the axg, frddr could only be connected to 1 downstream element, so the playback was possible on 1 interface only at a time. On the g12a, the frddr may connect and wait for the request of up to 3 downstream elements. With this, it possible for single playback to be played on several interfaces at the same time. Like the toddr fifo, the g12a frddr also need to take care of resetting the read pointer to the initial fifo address when preparing a playback. Signed-off-by: Jerome Brunet Signed-off-by: Mark Brown commit a3c23a8ad4dc07100d916d75ca30c982288b868d Author: Jerome Brunet Date: Thu Apr 4 13:17:30 2019 +0200 ASoC: meson: axg-toddr: add g12a support Since the g12a SoC fifo can set the fifo initial start address, we must make sure to actually reset the write pointer to this address when starting a capture. Signed-off-by: Jerome Brunet Signed-off-by: Mark Brown commit 7c02509a8a9981fb2c16b75904423e7ab2f9f43a Author: Jerome Brunet Date: Thu Apr 4 13:17:29 2019 +0200 ASoC: meson: axg-fifo: add g12a support The g12a fifos gained the ability to set the initial address of the pointer within the buffer, instead of defaulting to the buffer start address. It is not very useful to us (yet) but we need to put a copy the buffer start address in the related register for the fifo to work properly on the g12a SoC family Signed-off-by: Jerome Brunet Signed-off-by: Mark Brown commit 679f4e6cfd45bcc14bb563576e419ac9e43fad7c Author: Jerome Brunet Date: Thu Apr 4 13:17:28 2019 +0200 ASoC: meson: add g12a compatibles Add new compatible strings for the g12a devices. Audio wise, the g12a is fairly to close to the axg, yet some differences need to be handled. Signed-off-by: Jerome Brunet Signed-off-by: Mark Brown commit f96fb7d198ca624fe33c4145a004eb5a3d0eddec Author: Ranjani Sridharan Date: Thu Apr 4 17:30:40 2019 -0700 ASoC: core: remove link components before cleaning up card resources When the card is registered by the machine driver, dai link components are probed after the snd_card is created. This is done in snd_soc_bind_card() which calls snd_soc_instantiate_card() to first create the snd_card and then probes the link components by calling soc_probe_link_components(). The snd_card is used by the component driver to add the kcontrols associated with dapm widgets to the card. When the machine driver is unregistered, the snd_card is freed when the card resources are cleaned up. But the snd_card needs to be valid while unloading the topology dapm widgets in order to remove the kcontrols from the card. Since, unloading topology is done when the component driver is removed, the link components should be removed in snd_soc_unbind_card(). This will ensure that the kcontrols are removed before the card resources are cleaned up and the snd_card itself is freed. Signed-off-by: Ranjani Sridharan Signed-off-by: Mark Brown commit 14d2bd53a47a7e1cb3e03d00a6b952734cf90f3f Merge: 5ebffda25773 f15a3ea80391 Author: Dave Airlie Date: Fri Apr 5 11:21:47 2019 +1000 Merge tag 'drm-misc-next-2019-04-04' of git://anongit.freedesktop.org/drm/drm-misc into drm-next drm-misc-next for 5.2: UAPI Changes: -syncobj: Add TIMELINE_WAIT|QUERY|TRANSFER|TIMELINE_SIGNAL ioctls (Chunming) -Clarify that 1.0 can be represented by drm_color_lut (Daniel) Cross-subsystem Changes: -dt-bindings: Add binding for rk3066 hdmi (Johan) -dt-bindings: Add binding for Feiyang FY07024DI26A30-D panel (Jagan) -dt-bindings: Add Rocktech vendor prefix and jh057n00900 panel bindings (Guido) -MAINTAINERS: Add lima and ASPEED entries (Joel & Qiang) Core Changes: -memory: use dma_alloc_coherent when mem encryption is active (Christian) -dma_buf: add support for a dma_fence chain (Christian) -shmem_gem: fix off-by-one bug in new shmem gem helpers (Dan) Driver Changes: -rockchip: Add support for rk3066 hdmi (Johan) -ASPEED: Add driver supporting ASPEED BMC display controller to drm (Joel) -lima: Add driver supporting Arm Mali4xx gpus to drm (Qiang) -vc4/v3d: Various cleanups and improved error handling (Eric) -panel: Add support for Feiyang FY07024DI26A30-D MIPI-DSI panel (Jagan) -panel: Add support for Rocktech jh057n00900 MIPI-DSI panel (Guido) Cc: Johan Jonker Cc: Christian König Cc: Chunming Zhou Cc: Dan Carpenter Cc: Eric Anholt Cc: Qiang Yu Cc: Daniel Vetter Cc: Jagan Teki Cc: Guido Günther Cc: Joel Stanley [airlied: fixed XA limit build breakage, Rodrigo also submitted the same patch, but I squashed it in the merge.] Signed-off-by: Dave Airlie From: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190404201016.GA139524@art_vandelay commit 8f4043f1253292495dbf9c8be0c1b07b4b9902b7 Merge: 29502bb127b1 58ee86b8c775 Author: David S. Miller Date: Thu Apr 4 18:29:25 2019 -0700 Merge branch 'tipc-improve-TIPC-unicast-link-throughput' Tuong Lien says: ==================== tipc: improve TIPC unicast link throughput The series introduces an algorithm to improve TIPC throughput especially in terms of packet loss, also tries to reduce packet duplication due to overactive NACK sending mechanism. The link failover situation is also covered by the patches. ==================== Signed-off-by: David S. Miller commit 58ee86b8c7750a6b67d665a031aa3ff13a9b6863 Author: Tuong Lien Date: Thu Apr 4 11:09:53 2019 +0700 tipc: adapt link failover for new Gap-ACK algorithm In commit 0ae955e2656d ("tipc: improve TIPC throughput by Gap ACK blocks"), we enhance the link transmq by releasing as many packets as possible with the multi-ACKs from peer node. This also means the queue is now non-linear and the peer link deferdq becomes vital. Whereas, in the case of link failover, all messages in the link transmq need to be transmitted as tunnel messages in such a way that message sequentiality and cardinality per sender is preserved. This requires us to maintain the link deferdq somehow, so that when the tunnel messages arrive, the inner user messages along with the ones in the deferdq will be delivered to upper layer correctly. The commit accomplishes this by defining a new queue in the TIPC link structure to hold the old link deferdq when link failover happens and process it upon receipt of tunnel messages. Also, in the case of link syncing, the link deferdq will not be purged to avoid unnecessary retransmissions that in the worst case will fail because the packets might have been freed on the sending side. Acked-by: Ying Xue Acked-by: Jon Maloy Signed-off-by: Tuong Lien Signed-off-by: David S. Miller commit 382f598fb66b14a8451f2794abf70ea7b5826c96 Author: Tuong Lien Date: Thu Apr 4 11:09:52 2019 +0700 tipc: reduce duplicate packets for unicast traffic For unicast transmission, the current NACK sending althorithm is over- active that forces the sending side to retransmit a packet that is not really lost but just arrived at the receiving side with some delay, or even retransmit same packets that have already been retransmitted before. As a result, many duplicates are observed also under normal condition, ie. without packet loss. One example case is: node1 transmits 1 2 3 4 10 5 6 7 8 9, when node2 receives packet #10, it puts into the deferdq. When the packet #5 comes it sends NACK with gap [6 - 9]. However, shortly after that, when packet #6 arrives, it pulls out packet #10 from the deferfq, but it is still out of order, so it makes another NACK with gap [7 - 9] and so on ... Finally, node1 has to retransmit the packets 5 6 7 8 9 a number of times, but in fact all the packets are not lost at all, so duplicates! This commit reduces duplicates by changing the condition to send NACK, also restricting the retransmissions on individual packets via a timer of about 1ms. However, it also needs to say that too tricky condition for NACKs or too long timeout value for retransmissions will result in performance reducing! The criterias in this commit are found to be effective for both the requirements to reduce duplicates but not affect performance. The tipc_link_rcv() is also improved to only dequeue skb from the link deferdq if it is expected (ie. its seqno <= rcv_nxt). Acked-by: Ying Xue Acked-by: Jon Maloy Signed-off-by: Tuong Lien Signed-off-by: David S. Miller commit 9195948fbf3406f75b1f133ddb57304169c44341 Author: Tuong Lien Date: Thu Apr 4 11:09:51 2019 +0700 tipc: improve TIPC throughput by Gap ACK blocks During unicast link transmission, it's observed very often that because of one or a few lost/dis-ordered packets, the sending side will fastly reach the send window limit and must wait for the packets to be arrived at the receiving side or in the worst case, a retransmission must be done first. The sending side cannot release a lot of subsequent packets in its transmq even though all of them might have already been received by the receiving side. That is, one or two packets dis-ordered/lost and dozens of packets have to wait, this obviously reduces the overall throughput! This commit introduces an algorithm to overcome this by using "Gap ACK blocks". Basically, a Gap ACK block will consist of numbers that describes the link deferdq where packets have been got by the receiving side but with gaps, for example: link deferdq: [1 2 3 4 10 11 13 14 15 20] --> Gap ACK blocks: <4, 5>, <11, 1>, <15, 4>, <20, 0> The Gap ACK blocks will be sent to the sending side along with the traditional ACK or NACK message. Immediately when receiving the message the sending side will now not only release from its transmq the packets ack-ed by the ACK but also by the Gap ACK blocks! So, more packets can be enqueued and transmitted. In addition, the sending side can now do "multi-retransmissions" according to the Gaps reported in the Gap ACK blocks. The new algorithm as verified helps greatly improve the TIPC throughput especially under packet loss condition. So far, a maximum of 32 blocks is quite enough without any "Too few Gap ACK blocks" reports with a 5.0% packet loss rate, however this number can be increased in the furture if needed. Also, the patch is backward compatible. Acked-by: Ying Xue Acked-by: Jon Maloy Signed-off-by: Tuong Lien Signed-off-by: David S. Miller commit 492929c547913f77460c20be994482d57bc74840 Author: Andy Shevchenko Date: Tue Mar 19 16:30:42 2019 +0200 extcon: mrfld: Introduce extcon driver for Basin Cove PMIC On Intel Merrifield the Basin Cove PMIC provides a feature to detect the USB connection type. This driver utilizes the feature in order to support the USB dual role detection. Signed-off-by: Andy Shevchenko Signed-off-by: Chanwoo Choi commit 098b7ae8ec431465b319e2157f848df50dc6b7e0 Author: Andy Shevchenko Date: Tue Mar 19 16:30:41 2019 +0200 extcon: intel: Split out some definitions to a common header We are going to use some definitions in the other Intel extcon drivers, thus, split out them to a common header file. Signed-off-by: Andy Shevchenko Signed-off-by: Chanwoo Choi commit db8b4aefd17b1ccf108d81a4fbb181c8e50abf0e Author: Valdis Klētnieks Date: Tue Mar 12 06:42:31 2019 -0400 extcon: Fix build warning for extcon_unregister_notifier comment Give the line the asterisk it wanted to fix the build warning. [Build warning message] Building with W=1 reports: CC drivers/extcon/devres.o drivers/extcon/devres.c:208: warning: bad line: - Resource-managed extcon_unregister_notifier() Signed-off-by: Valdis Kletnieks [cw00.choi: Edit the patch subject and description] Signed-off-by: Chanwoo Choi commit a72a1be0de71b3bdab3d8b2e708267f32ea33ee2 Author: Yauhen Kharuzhy Date: Sun Mar 3 23:16:13 2019 +0300 extcon: intel-cht-wc: Enable external charger In some configuration external charger "#charge enable" signal is connected to PMIC. Enable it at device probing to allow charging. Save CHGRCTRL0 and CHGDISCTR registers at driver probing and restore them at driver unbind to re-enable hardware charging control if it was enabled before. Tested at Lenovo Yoga Book (YB1-X91L). Signed-off-by: Yauhen Kharuzhy Reviewed-by: Andy Shevchenko Reviewed-by: Hans de Goede Tested-by: Hans de Goede Signed-off-by: Chanwoo Choi commit 3137301b6d970219706d887eb6bdcabbf54f1f3b Author: Yauhen Kharuzhy Date: Sun Mar 3 23:16:12 2019 +0300 extcon: intel-cht-wc: Make charger detection co-existed with OTG host mode Whiskey Cove Cherry Trail PMIC requires disabling OTG host mode before of charger detection procedure. Do this by manipulationg of CHGRCTRL1 register. Source: APCI DSDT code of Lenovo Yoga Book YB1-X91L and open-sourced Intel's drivers. Signed-off-by: Yauhen Kharuzhy Reviewed-by: Andy Shevchenko Reviewed-by: Hans de Goede Tested-by: Hans de Goede Signed-off-by: Chanwoo Choi commit 9419a3191dcb27f24478d288abaab697228d28e6 Author: Al Viro Date: Thu Apr 4 21:04:13 2019 -0400 acct_on(): don't mess with freeze protection What happens there is that we are replacing file->path.mnt of a file we'd just opened with a clone and we need the write count contribution to be transferred from original mount to new one. That's it. We do *NOT* want any kind of freeze protection for the duration of switchover. IOW, we should just use __mnt_{want,drop}_write() for that switchover; no need to bother with mnt_{want,drop}_write() there. Tested-by: Amir Goldstein Reported-by: syzbot+2a73a6ea9507b7112141@syzkaller.appspotmail.com Signed-off-by: Al Viro commit 29502bb127b14841f4fdab8898c851a4a83e136f Merge: e177163d36d5 32a069d807f3 Author: David S. Miller Date: Thu Apr 4 17:55:37 2019 -0700 Merge branch 'genphy-ability' Heiner Kallweit says: ==================== net: phy: use generic PHY ability readers if callback get_features isn't set Meanwhile we have generic functions for reading the abilities of Clause 22 / 45 PHY's. This allows to use them as fallback in case callback get_features isn't set. Benefit is the reduction of boilerplate code in PHY drivers. v2: - adjust a comment in patch 1 to match the code ==================== Signed-off-by: David S. Miller commit 32a069d807f3cc9d0e09e86d87e654814ea44656 Author: Heiner Kallweit Date: Wed Apr 3 23:15:17 2019 +0200 net: phy: realtek: remove setting callback get_features and use phylib fallback Now that phylib uses genphy_read_abilities() as fallback, we don't have to set callback get_features any longer. Signed-off-by: Heiner Kallweit Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit a1deab17b2e9017e8a12e8b9e32ddda290f2b269 Author: Heiner Kallweit Date: Wed Apr 3 23:14:33 2019 +0200 net: phy: allow a PHY driver to define neither features nor get_features Meanwhile we have generic functions for reading the abilities of Clause 22 / 45 PHY's. This allows to use them as fallback in case callback get_features isn't set. Benefit is the reduction of boilerplate code in PHY drivers. v2: - adjust the comment in phy_driver_register to match the code Signed-off-by: Heiner Kallweit Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit e177163d36d531f7def3807a2ccf24ba3fe97624 Author: Nikolay Aleksandrov Date: Wed Apr 3 23:44:18 2019 +0300 net: bridge: mcast: remove unused br_ip_equal function Since the mcast conversion to rhashtable this function has been unused, so remove it. Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller commit 448a24130b2585d1397ea9a8b95a8df2332825b9 Author: Heiner Kallweit Date: Wed Apr 3 19:54:12 2019 +0200 Revert "r8169: use netif_receive_skb_list batching" This reverts commit 6578229d4efb7ea6287861bfc2bd306140458e07. netif_receive_skb_list() doesn't support GRO, therefore we may have scenarios with decreased performance. See discussion here [0]. [0] https://marc.info/?t=155403847400001&r=1&w=2 Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit f6fee16dbbe3fe4f942858192b88507c1f2f21ce Author: Tilmans, Olivier (Nokia - BE/Antwerp) Date: Wed Apr 3 13:49:42 2019 +0000 tcp: Accept ECT on SYN in the presence of RFC8311 Linux currently disable ECN for incoming connections when the SYN requests ECN and the IP header has ECT(0)/ECT(1) set, as some networks were reportedly mangling the ToS byte, hence could later trigger false congestion notifications. RFC8311 §4.3 relaxes RFC3168's requirements such that ECT can be set one TCP control packets (including SYNs). The main benefit of this is the decreased probability of losing a SYN in a congested ECN-capable network (i.e., it avoids the initial 1s timeout). Additionally, this allows the development of newer TCP extensions, such as AccECN. This patch relaxes the previous check, by enabling ECN on incoming connections using SYN+ECT if at least one bit of the reserved flags of the TCP header is set. Such bit would indicate that the sender of the SYN is using a newer TCP feature than what the host implements, such as AccECN, and is thus implementing RFC8311. This enables end-hosts not supporting such extensions to still negociate ECN, and to have some of the benefits of using ECN on control packets. Signed-off-by: Olivier Tilmans Suggested-by: Bob Briscoe Cc: Koen De Schepper Signed-off-by: Eric Dumazet Acked-by: Neal Cardwell Acked-by: Yuchung Cheng Signed-off-by: David S. Miller commit 6124d0670d0b610df3b86f7815c5358cb3124b34 Merge: 8dc350202d32 119c0b5721da Author: David S. Miller Date: Thu Apr 4 17:42:36 2019 -0700 Merge branch 'net-extend-devlink-port-attrs-with-switch-ID' Jiri Pirko says: ==================== net: extend devlink port attrs with switch ID Extend devlink port attrs to contain switch ID and change drivers that register devlink ports to use that. ==================== Signed-off-by: David S. Miller commit 119c0b5721da9d97f95202c4ad1be2919dac64b0 Author: Jiri Pirko Date: Wed Apr 3 14:24:27 2019 +0200 net: devlink: add warning for ndo_get_port_parent_id set when not needed Currently if the driver registers devlink port instance, he should set the devlink port attributes as well. Then the devlink core is able to obtain switch id itself, no need for driver to implement the ndo. Once all drivers will implement devlink port registration, this ndo should be removed. This warning guides new drivers to do things as they should be done. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 15b04aceeb83086ea3109c331cb7d8c2767fa0c6 Author: Jiri Pirko Date: Wed Apr 3 14:24:26 2019 +0200 dsa: pass switch ID through devlink_port_attrs_set() Pass the switch ID down the to devlink through devlink_port_attrs_set() so it can be used by devlink_compat_switch_id_get(). Leave ndo_get_port_parent_id implementation only for legacy. Signed-off-by: Jiri Pirko Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit df535f4c47a60fd6bf8f1327e9f87628e581e136 Author: Jiri Pirko Date: Wed Apr 3 14:24:25 2019 +0200 mlxsw: switch_ib: Pass valid HW id down to mlxsw_core_port_init() Obtain HW id and pass it down to mlxsw_core_port_init() as it would be used as switch_id in devlink and exposed to user. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit c25f08ac65e4e6a308babd2b39d89b362e9086c6 Author: Jiri Pirko Date: Wed Apr 3 14:24:24 2019 +0200 nfp: remove ndo_get_port_parent_id implementation Remove implementation of get_port_parent_id ndo and rely on core calling into devlink for the information directly. Signed-off-by: Jiri Pirko Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit 1b15c90270c5051799fe5a557684d66dbc95d7b4 Author: Jiri Pirko Date: Wed Apr 3 14:24:23 2019 +0200 nfp: pass switch ID through devlink_port_attrs_set() Pass the switch ID down the to devlink through devlink_port_attrs_set() so it can be used by devlink_compat_switch_id_get(). Signed-off-by: Jiri Pirko Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit 56d9f4e8f70e6f47ad4da7640753cf95ae51a356 Author: Jiri Pirko Date: Wed Apr 3 14:24:22 2019 +0200 bnxt: remove ndo_get_port_parent_id implementation for physical ports Remove implementation of get_port_parent_id ndo and rely on core calling into devlink for the information directly. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 6605a226781eb1224c2dcf974a39eea11862b864 Author: Jiri Pirko Date: Wed Apr 3 14:24:21 2019 +0200 bnxt: pass switch ID through devlink_port_attrs_set() Pass the switch ID down the to devlink through devlink_port_attrs_set() so it can be used by devlink_compat_switch_id_get(). Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 03213a996531e507e03c085d411a313e34357498 Author: Jiri Pirko Date: Wed Apr 3 14:24:20 2019 +0200 bnxt: move bp->switch_id initialization to PF probe Currently the switch_id is being only initialized when switching eswitch mode from "legacy" to "switchdev". However, nothing prevents the id to be initialized from the very beginning. Physical ports can show it even in "legacy" mode. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit aef36b88229a6e5ea4f23d19e8b5c72cf1261f18 Author: Jiri Pirko Date: Wed Apr 3 14:24:19 2019 +0200 mlxsw: Remove ndo_get_port_parent_id implementation Remove implementation of get_port_parent_id ndo and rely on core calling into devlink for the information directly. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit cdf29f4a262527feb11cd0071f0b3cedceaba745 Author: Jiri Pirko Date: Wed Apr 3 14:24:18 2019 +0200 mlxsw: Pass switch ID through devlink_port_attrs_set() Pass the switch ID down the to devlink through devlink_port_attrs_set() so it can be used by devlink_compat_switch_id_get(). Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 7e1146e8c10c00f859843817da8ecc5d902ea409 Author: Jiri Pirko Date: Wed Apr 3 14:24:17 2019 +0200 net: devlink: introduce devlink_compat_switch_id_get() helper Introduce devlink_compat_switch_id_get() helper which fills up switch_id according to passed netdev pointer. Call it directly from dev_get_port_parent_id() as a fallback when ndo_get_port_parent_id is not defined for given netdev. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit bec5267cded268acdf679b651778c300d204e9f2 Author: Jiri Pirko Date: Wed Apr 3 14:24:16 2019 +0200 net: devlink: extend port attrs for switch ID Extend devlink_port_attrs_set() to pass switch ID for ports which are part of switch and store it in port attrs. For other ports, this is NULL. Note that this allows the driver to group devlink ports into one or more switches according to the actual topology. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 407dd706fb5245c138f3a972f8aaa1c8a09a574c Author: Jiri Pirko Date: Wed Apr 3 14:24:15 2019 +0200 net: devlink: convert devlink_port_attrs bools to bits In order to save space in the struct, convert bools to bits. Signed-off-by: Jiri Pirko Reviewed-by: Florian Fainelli Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit 8dc350202d32dbd9482b97dbf8ca22fbcb2a7918 Author: Nikolay Aleksandrov Date: Wed Apr 3 13:49:24 2019 +0300 net: bridge: optimize backup_port fdb convergence We can optimize the fdb convergence when a backup_port is present by not immediately flushing the entries of the stopped port since traffic for those entries will flow towards the backup_port. There are 2 cases specifically that benefit most: - when the stopped port comes up before the entries expire by themselves - when there's an external entry refresh and they're kept while the backup_port is operating (e.g. mlag) Signed-off-by: Nikolay Aleksandrov Signed-off-by: David S. Miller commit a0640e610f7bc02935092ca7be1b45b1381425b0 Author: Yuval Shaia Date: Wed Apr 3 12:15:07 2019 +0300 net: Remove inclusion of pci.h This header is not in use - remove it. Signed-off-by: Yuval Shaia Signed-off-by: David S. Miller commit 53a6b206e36f160dbaa5727e68f8418de0b10bbf Author: YueHaibing Date: Wed Apr 3 15:54:09 2019 +0800 ibmvnic: remove set but not used variable 'netdev' Fixes gcc '-Wunused-but-set-variable' warning: drivers/net/ethernet/ibm/ibmvnic.c: In function '__ibmvnic_reset': drivers/net/ethernet/ibm/ibmvnic.c:1971:21: warning: variable 'netdev' set but not used [-Wunused-but-set-variable] It's never used since introduction in commit ed651a10875f ("ibmvnic: Updated reset handling") Signed-off-by: YueHaibing Reviewed-by: Mukesh Ojha Signed-off-by: David S. Miller commit fe1ec0bdfba4e7bfe6db81a1e4ac74beb36691e8 Author: YueHaibing Date: Wed Apr 3 15:52:08 2019 +0800 ehea: remove set but not used variables 'epa' and 'cq_handle_ref' Fixes gcc '-Wunused-but-set-variable' warning: drivers/net/ethernet/ibm/ehea/ehea_qmr.c: In function 'ehea_create_cq': drivers/net/ethernet/ibm/ehea/ehea_qmr.c:127:7: warning: variable 'cq_handle_ref' set but not used [-Wunused-but-set-variable] drivers/net/ethernet/ibm/ehea/ehea_qmr.c:126:15: warning: variable 'epa' set but not used [-Wunused-but-set-variable] They are never used since commit 7a291083225a ("[PATCH] ehea: IBM eHEA Ethernet Device Driver") Signed-off-by: YueHaibing Reviewed-by: Mukesh Ojha Signed-off-by: David S. Miller commit 1789b8aabefb3e87456a4c63fe547bb330b16fe0 Author: YueHaibing Date: Wed Apr 3 15:50:27 2019 +0800 net: pasemi: remove set but not used variable 'cpyhdr' Fixes gcc '-Wunused-but-set-variable' warning: drivers/net/ethernet/pasemi/pasemi_mac.c: In function 'pasemi_mac_queue_csdesc': drivers/net/ethernet/pasemi/pasemi_mac.c:1358:29: warning: variable 'cpyhdr' set but not used [-Wunused-but-set-variable] It's never used since commit 8d636d8bc5ff ("pasemi_mac: jumbo frame support") and can be removed. Signed-off-by: YueHaibing Reviewed-by: Mukesh Ojha Signed-off-by: David S. Miller commit c8f191282f819ab4e9b47b22a65c6c29734cefce Author: YueHaibing Date: Wed Apr 3 15:47:59 2019 +0800 ehea: Fix a copy-paste err in ehea_init_port_res pr->tx_bytes should be assigned to tx_bytes other than rx_bytes. Reported-by: Hulk Robot Fixes: ce45b873028f ("ehea: Fixing statistics") Signed-off-by: YueHaibing Reviewed-by: Mukesh Ojha Signed-off-by: David S. Miller commit 28b05b92886871bdd8e6a9df73e3a15845fe8ef4 Author: Florian Westphal Date: Wed Apr 3 08:28:35 2019 +0200 net: use correct this_cpu primitive in dev_recursion_level syzbot reports: BUG: using __this_cpu_read() in preemptible code: caller is dev_recursion_level include/linux/netdevice.h:3052 [inline] __this_cpu_preempt_check+0x246/0x270 lib/smp_processor_id.c:47 dev_recursion_level include/linux/netdevice.h:3052 [inline] ip6_skb_dst_mtu include/net/ip6_route.h:245 [inline] I erronously downgraded a this_cpu_read to __this_cpu_read when moving dev_recursion_level() around. Reported-by: syzbot+51471b4aae195285a4a3@syzkaller.appspotmail.com Fixes: 97cdcf37b57e ("net: place xmit recursion in softnet data") Signed-off-by: Florian Westphal Reviewed-by: Eric Dumazet Signed-off-by: David S. Miller commit e1279ff7aec19d7154da30bf5b83e797a13fbced Author: Hoang Le Date: Wed Apr 3 13:05:04 2019 +0700 tipc: add NULL pointer check skb somehow dequeued out of inputq before processing, it causes to NULL pointer and kernel crashed. Add checking skb valid before using. Fixes: c55c8edafa9 ("tipc: smooth change between replicast and broadcast") Reported-by: Tuong Lien Tong Acked-by: Ying Xue Signed-off-by: Hoang Le Acked-by: Jon Maloy Signed-off-by: David S. Miller commit 95e27a4da6143ad8a0c908215a0f402031b9ebf3 Author: John Hurley Date: Tue Apr 2 23:53:20 2019 +0100 net: sched: ensure tc flower reoffload takes filter ref Recent changes to TC flower remove the requirement for rtnl lock when accessing and modifying filters. Refcounts now ensure access and deletion do not happen concurrently. However, the reoffload function which cycles through all filters and replays them to registered hw drivers is not protected. Use the fl_get_next_filter() function to cycle the filters for reoffload and ensure the ref taken by this function is put when done with each filter. Signed-off-by: John Hurley Reviewed-by: Jakub Kicinski Reviewed-by: Vlad Buslov Signed-off-by: David S. Miller commit a5220e7d2e1b13e62c0d5eab3fbfaef401186e3b Author: Paul E. McKenney Date: Tue Mar 19 13:25:03 2019 -0700 tools/memory-model: Add support for synchronize_srcu_expedited() Given that synchronize_rcu_expedited() is supported, this commit adds support for synchronize_srcu_expedited(). Signed-off-by: Paul E. McKenney Acked-by: Andrea Parri commit d6e486ee0ef2f99a4069d9186e53dac61b28cb3c Author: Shakeel Butt Date: Wed Apr 3 16:03:54 2019 -0700 cgroup: remove extra cgroup_migrate_finish() call The callers of cgroup_migrate_prepare_dst() correctly call cgroup_migrate_finish() for success and failure cases both. No need to call it in cgroup_migrate_prepare_dst() in failure case. Signed-off-by: Shakeel Butt Reviewed-by: Daniel Jordan Signed-off-by: Tejun Heo commit 932f98922f6fca9f8c45274346b49058dd50d51a Merge: 44b8ef17c435 df1d80aee963 Author: Greg Kroah-Hartman Date: Thu Apr 4 22:25:29 2019 +0200 Merge tag 'iio-for-5.2a-2' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio into staging-next Jonathan writes: First set of new device support, features and fixes for IIO in the 5.2 cycle Staging graduations * ad7780 - Move this ADC driver out of staging. Included adding some new features along the way (see below). Also added DT bindings. New device support * adis16480 - Support the ADIS16495 and ADIS16497 IMU devices making heavy use of refactoring of various aspects of the driver in precursor patches. * lsm6dsx - Support for the ASM330LHH 6-axis (accelerometer + gyro) sensor. - Support for the LSM6DS0X * matbotix mb1232 - New driver for this ultrasound ranging device family. Including bindings. - Supports mb1202, mb1212, mb1222, mb1232, mb1242, mb7040 and mb7137. * max31856 - New driver for this thermocouple temperature sensor. * meson saradc - Support the Meson-G12A (ID addition only). * stmpe-adc - New driver supporting generic ADC alongside touchscreen support which previously existed. Includes DT bindings. * vcnl4000 - Support for the vcln4040 proximity and light sensor, including adding DT bindings for this and parts previously supported. Features * core - Allow reading of mount matrices from ACPI in addition to DT. - Common binding for theromcouple types. * ad5933 - Add ABI docs as there are a few 'unsual' elements about this device - perhaps because it's our only impedance analyser. * ad7780 - Add gain and filter gpio support + readback of current gain and filter. * adis16480 - Allow selection fo the dataready pin to be used. - Device tree ID table and binding documentation. - Support external clock modes, including new bindings. * bma180 - Mount matrix support. * bmc150 - Mount matrix support. * bmg160 - Mount matrix support. - DT id table and bindings doc. * bmp280 - Put calibration data into the entropy pool. * hmc5843 - Mount matrix support. * itg3200 - Mount matrix support. * kxcjk1013 - Device tree id table, and binding docs. * lpc32xx - Add scale when regulator specified including DT docs for regulator. * pms7003 - Add device IDs for all supported parts to driver and binding. * stm32-dfsdm - Enable hw consumer support, scan mode control and a complex set of triggered buffer modes. - Power management. * stm32-lptimer-counter - power management. - Document the pinctrl sleep state binding. * ti-ads7950 - GPIO pin support. Cleanups, minor fixes * core - Use bitmap_zalloc to make it explicit that is what we are doing. - Tidy up all the Kconfig files (which had slowly gotten messy) - Fix a forwards definition missing issue in iio/driver.h * ad sigma delta core - Improve handling of SPI bus locking vs CS assertion. This has been wrong a long time so not rushing this in. * ad5064 - Mlock to local lock. * ad5933 (staging cleanup) - Multiline comment fixes. - Include ordering. - SPDX. - Tidy up Kconfig help which was a bit missleading. - Change some non standard attributes to ABI defined ones. * ad7124 - White space fix. * ad7192 - White space. - Use DT clock binding. - Improve error reporting. - Platform data to DT conversion. - Use read_avail callback, mostly to avoid the endless series of patches from new contributors trying to falsely put spaces around the negative sign. * ad7280a - Add brackets to macros to avoid potential precedence isseus. - Add temp vars for event codes to reduce indent and improved readability. - Clean out som CamelCase notation. - White space. * ad7606 - Fix broken file naming in MAINTAINERS. * ad7780 - Missing switch defaults to supress warnings and harden the code slightly. - Set pattern masks more directly. - Add ID values and masks for all supported chips. - SPDX + add Renato as a copyright holder as he has done a lot of work on this driver. - Add brackets to macros to avoid potential precedence issues. * ad7923 - White space fixes. - Use BIT macro to improve readability. - Add brackets to macros to avoid potential precedence issues. - Tidy up a null comparisom. * ad9523 - Fix a typo in naming of variables. * adis16400 - Combine trigger file into main code as no advantage in separate files. Rename core file to just adis16400. - Squash the header into the c file now there is only one file. - Generalize burst mode to support new variants. * ak8975 - Local variable to improve readability around mount matrix support. * as3935 - Avoid potential race by ensuring remove does exact opposite of probe rather than a slightly different order. * cross_ec - Drop some unnecessary includes. - Fix some warning and the slightly 'unusual' code. - Add some docs for non obvious function. - SPDX * hmc5843 - Potential unhandled error case. * iio trigger core - Print an error if there is no available irq due to max consumers per trigger being set to low. * iio loop trigger - Drop an unlikely on IS_ERR as IS_ERR already has the annotation. * ingenic-adc - Drop a redundant dev_err call as devm_ioremap_resource reports the same internally. * lmp91000 - Drop some unncessary parentheses and white space tidy up. - Invert and if statement to improve readability. - Fix a wrong error message. * lpc32xx - Header sorting + drop some unused ones. * mma8542 - Mark a switch fallthrough. * mpu6050 - Add a local variable to improve code readability around mount matrix support. * mxs-lradc-adc - Handle devm_iio_trigger_alloc failure. * sps30 - Fix up a kernel version in the ABI docs. * srf04 - DT binding doc converted to yaml. * ssp_sensors - Supress a clang build warning due to lack of visibility of conditional within a iio_push_to_buffers_with_timestamp. (reasonable false warning!) * st_accel - Drop pointless less than 0 comparisom of unsigned int. * stm32-dfsdm - Improve accuracy of spi_master_frequency calculation. - Improve calculation fo sampling frequency. - Rework various internals to simplify adding triggered buffer support. - Claim direct mode to avoid racing around read_raw and being in buffered mode. * stmpe - Fix a clang false positive warning. * ti-ads7950 - Use local lock rather than using the core mlock when not locking around the device mode. * vcnl4000 - Use word writes instead of byte writes. It seems byte writes are fine for some parts (undocument) but not others that the driver will shortly support. Other * mailmap - Add email address change for Sean Nyekjaer. Update in relevant drivers * tag 'iio-for-5.2a-2' of git://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio: (129 commits) iio: ad_sigma_delta: Properly handle SPI bus locking vs CS assertion iio: adc: stm32-dfsdm: add PM support iio: adc: stm32-dfsdm: improve sampling frequency accuracy staging: iio: adc: ad7280a: Tab alignment MAINTAINERS: Fix the link to ad7606 dt-bindings iio:temperature: Add MAX31856 thermocouple support iio:temperature:max31856:Add device tree bind info dt-bindings: iio/temperature: Add thermocouple types (and doc) devantech-srf04.yaml: transform DT binding to YAML iio: frequency: ad9523: Fix typo in ad9523_platform_data iio: Make possible to include driver.h first dt-bindings: iio: add Bosch BMG160 gyroscope sensor iio: gyro: bmg160: add device tree compatibility table staging: iio: adc: ad7192: Use read_avail for available attributes dt-bindings: iio: light: add vcnl4040 devicetree bindings iio: light: vcnl4000 add support for the VCNL4040 proximity and light sensor dt-bindings: iio: light: add vcnl4000 devicetree bindings iio: light: vcnl4000 add devicetree hooks iio: light: vcnl4000 use word writes instead of byte writes iio: adc: stm32-dfsdm: claim direct mode for raw read and settings ... commit bc29d3a69d4c1bd1a103e8b3c1ed81b807c1870b Author: Wen Yang Date: Thu Apr 4 00:04:13 2019 +0800 drm/pl111: fix possible object reference leak The call to of_find_matching_node_and_match returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: drivers/gpu/drm/pl111/pl111_versatile.c:333:3-9: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 317, but without a corresponding object release within this function. drivers/gpu/drm/pl111/pl111_versatile.c:340:3-9: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 317, but without a corresponding object release within this function. drivers/gpu/drm/pl111/pl111_versatile.c:346:3-9: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 317, but without a corresponding object release within this function. drivers/gpu/drm/pl111/pl111_versatile.c:354:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 317, but without a corresponding object release within this function. drivers/gpu/drm/pl111/pl111_versatile.c:395:3-9: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 317, but without a corresponding object release within this function. drivers/gpu/drm/pl111/pl111_versatile.c:402:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 317, but without a corresponding object release within this function. Signed-off-by: Wen Yang Cc: Eric Anholt (supporter:DRM DRIVER FOR ARM PL111 CLCD) Cc: David Airlie (maintainer:DRM DRIVERS) Cc: Daniel Vetter (maintainer:DRM DRIVERS) Cc: dri-devel@lists.freedesktop.org (open list:DRM DRIVERS) Cc: linux-kernel@vger.kernel.org (open list) Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/1554307455-40361-6-git-send-email-wen.yang99@zte.com.cn commit e31b97ef19df5ec6cba24b1de86eead7dc6fa617 Author: kbuild test robot Date: Thu Apr 4 05:36:29 2019 +0800 drm/vc4: vc4_debugfs_regset32() can be static Fixes: c9be804c8c7a ("drm/vc4: Use common helpers for debugfs setup by the driver components.") Signed-off-by: kbuild test robot Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190403213629.GA31570@lkp-ib03 commit df1d80aee963480c5c2938c64ec0ac3e4a0df2e0 Author: Lars-Peter Clausen Date: Tue Mar 19 13:37:55 2019 +0200 iio: ad_sigma_delta: Properly handle SPI bus locking vs CS assertion For devices from the SigmaDelta family we need to keep CS low when doing a conversion, since the device will use the MISO line as a interrupt to indicate that the conversion is complete. This is why the driver locks the SPI bus and when the SPI bus is locked keeps as long as a conversion is going on. The current implementation gets one small detail wrong though. CS is only de-asserted after the SPI bus is unlocked. This means it is possible for a different SPI device on the same bus to send a message which would be wrongfully be addressed to the SigmaDelta device as well. Make sure that the last SPI transfer that is done while holding the SPI bus lock de-asserts the CS signal. Signed-off-by: Lars-Peter Clausen Signed-off-by: Alexandru Ardelean Signed-off-by: Jonathan Cameron commit 6ec417d2f1a028705a1ae6f59d3e15344f6a4fbe Author: Fabrice Gasnier Date: Mon Mar 25 15:49:28 2019 +0100 iio: adc: stm32-dfsdm: add PM support Add PM and runtime PM support to STM32 DFSDM drivers: - stm32-dfsdm-core: manage clocks. - stm32-dfsdm-adc: restore channels configuration upon resume. Also stop restart everything in case of buffer mode. Signed-off-by: Fabrice Gasnier Signed-off-by: Jonathan Cameron commit 9f57110d2e3de5411730f2cdd160d60f4b59acc5 Author: Fabrice Gasnier Date: Mon Mar 25 15:24:01 2019 +0100 iio: adc: stm32-dfsdm: improve sampling frequency accuracy The sample frequency is driven using the oversampling ratio depending on the SPI bus frequency. Currently, oversampling ratio is computed by an entire division: - spi_freq / sample_freq. This may result in inaccurate value. Using DIV_ROUND_CLOSEST improves resulting sample frequency, which is useful for audio that requests fixed rates (such as: 8, 16 or 32 kHz). BTW, introduce new routine to re-factor sample frequency setting, and move frequency accuracy message from warning to debug level. Signed-off-by: Fabrice Gasnier Signed-off-by: Jonathan Cameron commit 65500c53aa6d0a6c4e40fcc7788332af9720ad14 Author: Cristian Sicilia Date: Sun Mar 24 18:23:09 2019 +0100 staging: iio: adc: ad7280a: Tab alignment Aligned some parameters. Signed-off-by: Cristian Sicilia Signed-off-by: Jonathan Cameron commit 0976f94f7602cb1f3f48cbc99ecdee98129965cc Author: Stefan Popa Date: Tue Mar 26 12:59:52 2019 +0200 MAINTAINERS: Fix the link to ad7606 dt-bindings The devicetree bindings documentation for ad7606 should also include the vendor prefix: ad7606.txt -> adi,ad7606.txt Fixes: 6e33a125df66 ("dt-bindings: iio: adc: Add docs for AD7606 ADC") Signed-off-by: Stefan Popa Reviewed-by: Mukesh Ojha Signed-off-by: Jonathan Cameron commit fb55a51310d1791b439e8d70f693410f5ef616a4 Author: Paresh Chaudhary Date: Tue Mar 26 12:18:42 2019 +0100 iio:temperature: Add MAX31856 thermocouple support This patch adds support for Maxim MAX31856 thermocouple temperature sensor support. More information can be found in: https://www.maximintegrated.com/en/ds/MAX31856.pdf NOTE: Driver support only Comparator Mode. Signed-off-by: Paresh Chaudhary Signed-off-by: Matt Weber Signed-off-by: Patrick Havelange Signed-off-by: Jonathan Cameron commit 8fede567b8472b36e2af3eac94ba68b234533bac Author: Paresh Chaudhary Date: Tue Mar 26 12:18:41 2019 +0100 iio:temperature:max31856:Add device tree bind info This patch added device tree binding info for MAX31856 driver. Signed-off-by: Paresh Chaudhary Signed-off-by: Matt Weber Signed-off-by: Patrick Havelange Reviewed-by: Rob Herring Signed-off-by: Jonathan Cameron commit 023e41632e065d49bcbe31b3c4b336217f96a271 Author: Patrick Havelange Date: Tue Mar 26 12:18:40 2019 +0100 dt-bindings: iio/temperature: Add thermocouple types (and doc) This patch introduces common thermocouple types used by various temperature sensors. Also a brief documentation explaining this "thermocouple-type" property. Signed-off-by: Patrick Havelange Signed-off-by: Jonathan Cameron commit 52f171abaecb822f8c3fee4dc9887d12bea0e63a Author: Andreas Klinger Date: Tue Mar 26 14:39:40 2019 +0100 devantech-srf04.yaml: transform DT binding to YAML devantech-srf04.yaml: yaml devicetree binding for iio ultrasonic proximity driver of devantech srf04 use devantech-srf04.txt, transform binding into yaml and remove the outdated DT documentation Signed-off-by: Andreas Klinger Reviewed-by: Rob Herring Signed-off-by: Jonathan Cameron commit 5cd66239574df8b1aa4ed73e6b5ed3f51eda9057 Author: Lars-Peter Clausen Date: Tue Mar 26 15:40:03 2019 +0200 iio: frequency: ad9523: Fix typo in ad9523_platform_data Replace diff_{m1,m2} with div_{m1,m2} since they are dividers and not a differential settings. Signed-off-by: Lars-Peter Clausen Signed-off-by: Alexandru Ardelean Signed-off-by: Jonathan Cameron commit 89c16919a0781308db6ca45e51a995e67cd90367 Author: Andy Shevchenko Date: Tue Mar 26 15:47:00 2019 +0200 iio: Make possible to include driver.h first If we put headers alphabetically sorted in the IIO driver, the compilation will abort because of unknown type to handle. Simple add a forward declaration of opaque struct iio_dev. Suggested-by: Jonathan Cameron Signed-off-by: Andy Shevchenko Signed-off-by: Jonathan Cameron commit e8379e05e811daa7a07aa0ac3ed958fedee1c504 Author: H. Nikolaus Schaller Date: Mon Mar 18 16:14:15 2019 +0100 dt-bindings: iio: add Bosch BMG160 gyroscope sensor Define bindings for "bosch,bmg160" and "bosch,bmi055_gyro". Signed-off-by: H. Nikolaus Schaller Reviewed-by: Rob Herring Signed-off-by: Jonathan Cameron commit 94bceb3cf5d1bfc56c747f6a986b4d60989b0843 Author: H. Nikolaus Schaller Date: Mon Mar 18 16:14:14 2019 +0100 iio: gyro: bmg160: add device tree compatibility table Add of_match_table. Signed-off-by: H. Nikolaus Schaller Signed-off-by: Jonathan Cameron commit 2b0d1c6f121907a5bee0b6d81b47e2e7105119a4 Author: Mircea Caprioru Date: Tue Mar 19 16:25:20 2019 +0200 staging: iio: adc: ad7192: Use read_avail for available attributes This patch removes the in_voltage-voltage_scale_available and in_voltage_scale_available attributes. These are replaced with available attributes added in info_mask_shared_by_type_available. With this modification the iio core will be responsible with naming the attributes thus removing the checkpatch warning related to in_voltage-voltage_scale_available naming. Signed-off-by: Mircea Caprioru Signed-off-by: Jonathan Cameron commit 54480943235e0533d5ffd6d64697eb38df8b7c0c Author: Angus Ainslie (Purism) Date: Thu Mar 21 08:40:47 2019 -0700 dt-bindings: iio: light: add vcnl4040 devicetree bindings Document the vishay VCNL4040 devicetree bindings. Signed-off-by: Angus Ainslie (Purism) Reviewed-by: Rob Herring Signed-off-by: Jonathan Cameron commit 5a441aade5b381fd2a0a2f83cea5e1b1f57d6afd Author: Angus Ainslie (Purism) Date: Thu Mar 21 08:40:46 2019 -0700 iio: light: vcnl4000 add support for the VCNL4040 proximity and light sensor The VCNL4040 is almost identical to the VCNL4200 as far as register layout goes but just need to check a different ID register location. Signed-off-by: Angus Ainslie (Purism) Signed-off-by: Jonathan Cameron commit 5da8affed2f8f8251653733d7812807c7eac7637 Author: Angus Ainslie (Purism) Date: Thu Mar 21 08:40:45 2019 -0700 dt-bindings: iio: light: add vcnl4000 devicetree bindings Document the vishay VCNL4000 devicetree bindings. Signed-off-by: Angus Ainslie (Purism) Reviewed-by: Rob Herring Signed-off-by: Jonathan Cameron commit ebd457d55911b5b5bc79404d460e1b72df806dea Author: Angus Ainslie (Purism) Date: Thu Mar 21 08:40:44 2019 -0700 iio: light: vcnl4000 add devicetree hooks Add an of_match table for devicetree probing. Signed-off-by: Angus Ainslie (Purism) Signed-off-by: Jonathan Cameron commit 78ed050dd2962560d01ce8ee7b011bb7ccc3f502 Author: Angus Ainslie (Purism) Date: Thu Mar 21 08:40:43 2019 -0700 iio: light: vcnl4000 use word writes instead of byte writes The VCNL4200 datasheet says that word read and writes should be used to access the registers. Signed-off-by: Angus Ainslie (Purism) Tested-by: Tomas Novotny Signed-off-by: Jonathan Cameron commit 37ada026be2cb61b4a99b5e4cb5a542df727b752 Author: Fabrice Gasnier Date: Thu Mar 21 17:47:29 2019 +0100 iio: adc: stm32-dfsdm: claim direct mode for raw read and settings Claim direct mode to ensure no buffer mode is in use for: - single conversion - sample rate setting (must be set when filter isn't enabled). - oversampling ratio (must be set when filter isn't enabled). Signed-off-by: Fabrice Gasnier Signed-off-by: Jonathan Cameron commit 11646e81d7750d57b78db716bd6a34e27dff61e8 Author: Fabrice Gasnier Date: Thu Mar 21 17:47:28 2019 +0100 iio: adc: stm32-dfsdm: add support for buffer modes DFSDM conversions can be launched continuously, or using various triggers: - by software - hardware triggers (e.g. like in stm32-adc: TIM, LPTIM, EXTI) - synchronously with DFSDM filter 0. e.g. for filters 1, 2 Launching conversions can be done using two methods: a - injected: - scan mode can be used to convert several channels each time a trigger occurs. - When not is scan mode, channels are converted in sequence, one upon each trigger. b - regular: - supports software triggers or synchronous with filter 0 - single or continuous conversions This patch finalizes DFSDM operating modes using IIO buffer modes: - INDIO_BUFFER_SOFTWARE: regular continuous conversions (no trigger) but limited to 1 channel. Users must set sampling frequency in this case. For filters > 1, conversions can be started synchronously with filter 0. - INDIO_BUFFER_TRIGGERED: triggered conversions uses injected mode for launching conversions. DFSDM can use hardware triggers (e.g. STM32 timer or lptimer), so add INDIO_HARDWARE_TRIGGERED to supported modes. - INDIO_DIRECT_MODE: Only support DMA-based buffer modes. In case no DMA is available, only support single conversions. From userland perspective, to summarize various use cases: 1 - single conversion on any filter: $ cd iio:deviceX $ cat in_voltageY_raw This uses regular a conversion (not continuous) 2 - Using sampling frequency without trigger (single channel, buffer) $ cd iio:deviceX $ echo 100 > sampling_frequency $ echo "" > trigger/current_trigger $ echo 1 > scan_elements/in_voltageY_en $ echo 1 > buffer/enable This uses regular conversion in continuous mode (Frequency is achieved by tuning filter parameters) 3 - sync mode with filter 0: other filters can be converted when using "st,filter0-sync" dt property. The conversions will get started at the same time as filter 0. So for any filters > 1: $ cd iio:deviceX $ echo 100 > sampling_frequency $ echo "" > trigger/current_trigger $ echo 1 > scan_elements/in_voltageY_en $ echo 1 > buffer/enable Then start filter 0 as in 2 above. 4 - Using a hardware trigger (with one channel): - check trigger, configure it: $ cat /sys/bus/iio/devices/trigger1/name tim6_trgo $ echo 100 > /sys/bus/iio/devices/trigger1/sampling_frequency - go to any filter: $ echo 1 > scan_elements/in_voltageY_en $ echo tim6_trgo > trigger/current_trigger $ echo 1 > buffer/enable This uses injected conversion as it uses a hardware trigger (without scan) 5 - Using a hardware trigger (with 2+ channel): Same as in 4/ above, but enable two or more channels in scan_elements. This uses injected conversion as it uses a hardware trigger (with scan mode) Signed-off-by: Fabrice Gasnier Signed-off-by: Jonathan Cameron commit a6096762e98b698ccd7658c9ba8c5747f7ad2557 Author: Fabrice Gasnier Date: Thu Mar 21 17:47:27 2019 +0100 iio: adc: stm32-dfsdm: add support for scan mode In order to support multiple channels in buffer mode, add support for scan mode. This is precursor patch to ease support of triggered buffer mode. Currently, only audio uses buffer mode: Regular continuous conversions with a single channel (per filter). DFSDM hardware supports scan mode (only) with injected conversions. Conversions can be launched by software (JSWSTART), trigger or synchronously with filter 0 (e.g. JSYNC). Continuous conversion mode isn't available for injected. Signed-off-by: Fabrice Gasnier Signed-off-by: Jonathan Cameron commit 9491f75fe2ea7a8bff0d05af560a0d6e266263ec Author: Fabrice Gasnier Date: Thu Mar 21 17:47:26 2019 +0100 iio: adc: stm32-dfsdm: enable hw consumer Optionally enable IIO hw consumer, when provided (e.g. for DFSDM_IIO type). This is precursor patch to introduce buffer modes. Signed-off-by: Fabrice Gasnier Signed-off-by: Jonathan Cameron commit 7464850873714b888dbcfbbbffd4ad63bf64909c Author: Fabrice Gasnier Date: Thu Mar 21 17:47:25 2019 +0100 iio: adc: stm32-dfsdm: move dma slave config to start routine Move DMA slave configuration to start routine: depending on regular or injected mode is in use, DMA needs to read resp. RDATAR or JDATAR. This is precursor patch to introduce injected mode (used for scan). Signed-off-by: Fabrice Gasnier Signed-off-by: Jonathan Cameron commit caf9c1e59809347690584178ed17b76334acbf39 Author: Fabrice Gasnier Date: Thu Mar 21 17:47:24 2019 +0100 iio: adc: stm32-dfsdm: move dma enable from start_conv() to start_dma() Move DMA enable (e.g. set RDMAEN bit) away from start_conv() that is used for both buffer and single conversions. Thus, single conv rely on interrupt, not dma. Note: take care to prepare all DMA stuff and set RDMAEN before starting filter (can be set only when DFEN=0). This is precursor patch to ease support of triggered buffer mode. Signed-off-by: Fabrice Gasnier Signed-off-by: Jonathan Cameron commit 6f2c4a59d9fce60df5d87d0042ff17803462669d Author: Fabrice Gasnier Date: Thu Mar 21 17:47:23 2019 +0100 iio: adc: stm32-dfsdm: continuous mode depends on current mode DFSDM regular continuous mode usage depends on current mode (not DMA): - for single conversion, RCONT doesn't need to be set. - for buffer mode, RCONT has to be set (e.g. INDIO_BUFFER_SOFTWARE used by audio currently). This is related to filter configuration, move it to relevant routine. This is precursor patch to ease support of triggered buffer mode. Signed-off-by: Fabrice Gasnier Signed-off-by: Jonathan Cameron commit 2e19ba661ece580b23115f7eff1e5fad25317172 Author: Fabrice Gasnier Date: Thu Mar 21 17:47:22 2019 +0100 iio: adc: stm32-dfsdm: make spi_master_freq more accurate Current ckout divider may be set to a value that makes ckout to exceed spi-max-frequency. Rather use lower value (e.g. round up divider when ckout isn't accurate). Also when the SPI clock isn't accurate, 'spi_master_freq' is filled in with expected frequency. Use computed value instead to be more accurate: - e.g. source clock / (CKOUTDIV + 1) Enforce checks on the divider: ckoutdiv range can be from 1-255 to provide divider of 2-256. Signed-off-by: Fabrice Gasnier Signed-off-by: Jonathan Cameron commit 57565828adf56e1a3200dd488ad86c84673a361e Author: Marcelo Schmitt Date: Thu Mar 21 15:42:13 2019 -0300 staging: iio: ad5933: change attributes to match ABI Change device attributes' names to match ABI documentation. Names were chosen such that they tend to be similar to existing ABI so it should be easier to standardize them when necessary. Signed-off-by: Marcelo Schmitt Signed-off-by: Jonathan Cameron commit bf2da9707900299489ea74c48295e5c99c28b655 Author: Vladimir Petrigo Date: Fri Mar 22 00:15:28 2019 +0300 iio: adc: ad7780: Add parentheses to macros - Fix CHECK Macro argument 'wordsize' may be better as '(wordsize)' to avoid precedence issues Slightly modified by Jonathan to take into account the staging graduation and a copy and paste version of the same item on the following line. Signed-off-by: Vladimir Petrigo Signed-off-by: Jonathan Cameron commit 3cb5161317b2b7680a438910c53ba1d6befd221c Author: Alexandru Ardelean Date: Fri Mar 22 22:44:42 2019 +0200 iio: imu: adis16400: move adis16400.h into adis16400.c Final part of the re-organization. Move the `adis16400.h` into `adis16400.c` since it no longer needs to be shared among other files. Signed-off-by: Alexandru Ardelean Signed-off-by: Jonathan Cameron commit 5447e3f15c4339f53c4a86e0a1bd6476f6baf051 Author: Alexandru Ardelean Date: Fri Mar 22 22:44:41 2019 +0200 iio: imu: adis16400: rename adis16400_core.c -> adi16400.c This change does a simple 1-to-1 rename of the adis16400_core.c file. Now that the `adis16400_buffer.c` file was removed, everything can be moved into a single driver file. But first, this rename. Signed-off-by: Alexandru Ardelean Signed-off-by: Jonathan Cameron commit 0e92e2d036232da1543599dc9b7acc1ce4289d1b Author: Alexandru Ardelean Date: Fri Mar 22 22:44:40 2019 +0200 iio: imu: adis16400: move burst logic to ADIS lib This change has been done separately, so that it's easier to visualize the changed logic in the adis_scan_update() function. Most of the function in this `adis16400_update_scan_mode()` that deals with burst-mode will be re-used in the ADIS16480, but with different parameters. Signed-off-by: Alexandru Ardelean Signed-off-by: Jonathan Cameron commit 5075e0720d93a84e059759c5d8c6a78613d0face Author: Alexandru Ardelean Date: Fri Mar 22 22:44:39 2019 +0200 iio: imu: adis: generalize burst mode support Some variants in the ADIS16400 family support burst mode. This mechanism is implemented in the `adis16400_buffer.c` file. Some variants in ADIS16480 are also adding burst mode, which is functionally similar to ADIS16400, but with different parameters. To get there, a `adis_burst` struct is added to parametrize certain bits of the SPI communication to setup: the register that triggers burst-mode, and the extra-data-length that needs be accounted for when building the bust-length buffer. The trigger handler cannot be made generic, since it's very specific to each ADIS164XX family. A future enhancement of this `adis_burst` mode will be the possibility to enable/disable burst-mode. For the ADIS16400 family it's hard-coded to on by default. But for ADIS16480 there will be a need to disable this. When that will be implemented, both ADIS16400 & ADIS16480 will have the burst-mode enable-able/disable-able. Signed-off-by: Alexandru Ardelean Signed-off-by: Jonathan Cameron commit 74878d4fa816443716bd8adf4f9f6986f5c6f256 Author: Alexandru Ardelean Date: Fri Mar 22 22:44:38 2019 +0200 iio: imu: adis16400: move trigger handler into adis16400_core The trigger handler for the ADIS16400 is very different from the generic one in the ADIS library. Keeping it in a separate file won't make much sense once the update_scan_mode function will be made more generic and moved into the ADIS library. Signed-off-by: Alexandru Ardelean Signed-off-by: Jonathan Cameron commit 9bf1468e9d62c144b91ca9684b91dfc84c3f2a4b Author: Cristian Sicilia Date: Sat Mar 23 20:21:49 2019 +0100 staging: iio: adc: ad7280a: Remove CamelCase notation Fix CamelCase naming. Signed-off-by: Cristian Sicilia Signed-off-by: Jonathan Cameron commit 6c249591eef2d318af7a11ee688573d635e616ca Author: Cristian Sicilia Date: Sat Mar 23 20:21:45 2019 +0100 staging: iio: adc: ad7280a: Adding temp var to improve readability Creating a temporary variable to improve readability Signed-off-by: Cristian Sicilia Signed-off-by: Jonathan Cameron commit d04411c2a67892360a018c38168e4d17fa1896cf Author: Cristian Sicilia Date: Sat Mar 23 20:21:42 2019 +0100 staging: iio: adc: ad7280a: Avoid precedence issues in macro Enclosing parameter with parenthesis due to avoid possible precedence issue. Signed-off-by: Cristian Sicilia Signed-off-by: Jonathan Cameron commit 10b5d3d107594b27202df21d13e6416826911311 Author: Andreas Klinger Date: Sun Mar 17 21:38:29 2019 +0100 MAINTAINERS: add maintainer for maxbotix ultrasonic driver add a maintainer for the newly created ultrasonic driver family of maxbotix Signed-off-by: Andreas Klinger Signed-off-by: Jonathan Cameron commit 16b05261537e36cc64369291688a84c36ac3cae3 Author: Andreas Klinger Date: Sun Mar 17 21:38:03 2019 +0100 mb1232.c: add distance iio sensor with i2c Add I2CXL-MaxSonar ultrasonic distance sensors of types mb1202, mb1212, mb1222, mb1232, mb1242, mb7040, mb7137 using an i2c interface Implemented functionality: - reading the distance via in_distance_raw - buffered mode with trigger - make use of interrupt to announce completion of ranging Add mb1232 driver to Kconfig and Makefile Signed-off-by: Andreas Klinger Signed-off-by: Jonathan Cameron commit 7483e40d7e43fb718d1014cee650b2333cf23116 Author: Andreas Klinger Date: Sun Mar 17 21:35:27 2019 +0100 dt-bindings: maxbotix,mb1232: Add MaxBotix i2c ultrasonic rangers Add doc for dt binding maxbotix,mb1232. This binding is for MaxBotix I2CXL-MaxSonar ultrasonic rangers which share a common i2c interface. Signed-off-by: Andreas Klinger Reviewed-by: Rob Herring Signed-off-by: Jonathan Cameron commit 835ab93dcdcfb492609db7769c2717097b12e1ae Author: Andreas Klinger Date: Sun Mar 17 21:35:00 2019 +0100 dt-bindings: Add vendor prefix for MaxBotix Add MaxBotix, which is a vendor of ultrasonic rangers in different varieties and interfaces. Signed-off-by: Andreas Klinger Reviewed-by: Andreas Färber Reviewed-by: Rob Herring Signed-off-by: Jonathan Cameron commit 536cc27deade8f1ec3c1beefa60d5fbe0f6fcb28 Author: Kangjie Lu Date: Sat Mar 16 17:08:33 2019 -0500 iio: hmc5843: fix potential NULL pointer dereferences devm_regmap_init_i2c may fail and return NULL. The fix returns the error when it fails. Signed-off-by: Kangjie Lu Signed-off-by: Jonathan Cameron commit a816646f08ce18e8787d241e1dbda5cbc314e5ea Author: Marcelo Schmitt Date: Sat Mar 16 12:07:32 2019 -0300 staging: iio: ad5933: add ABI documentation Add an ABI documentation for the ad5933 driver. Signed-off-by: Marcelo Schmitt Signed-off-by: Jonathan Cameron commit 8fce3d34d70c98cd546cdb99365659087a408e02 Author: Marcelo Schmitt Date: Sat Mar 16 12:07:18 2019 -0300 staging: iio: ad5933: change help rule message Remove the previous comment about direct access via sysfs which would lead one think ad5933 driver has limitations it actually doesn't. Signed-off-by: Marcelo Schmitt Signed-off-by: Jonathan Cameron commit adb0ef4120bb43b735e2ae13b3d993f31a5a62f7 Author: Marcelo Schmitt Date: Sat Mar 16 12:07:03 2019 -0300 staging: iio: ad5933: add SPDX identifier Add SPDX identifier of GPL-2.0 for the ad5933 driver. Signed-off-by: Marcelo Schmitt Signed-off-by: Jonathan Cameron commit 700e8911a6816046c7051f9cf2739be0479a3188 Author: Marcelo Schmitt Date: Sat Mar 16 12:06:50 2019 -0300 staging: iio: ad5933: organize includes Organize includes to list them in lexicographic order. Signed-off-by: Marcelo Schmitt Signed-off-by: Jonathan Cameron commit 3204683722c2b1cb924b46d5cd30f5336a1c433a Author: Marcelo Schmitt Date: Sat Mar 16 12:06:18 2019 -0300 staging: iio: ad5933: change multi-line comment style Make multi-line comments compliant with the preferred code style. Signed-off-by: Marcelo Schmitt Signed-off-by: Jonathan Cameron commit 46c1eb4bb137cd290ded6a2d593acff1594cbfe7 Author: Renato Lui Geh Date: Fri Mar 15 23:16:13 2019 -0300 staging: iio: ad7780: add device tree binding Adds a device tree binding for the ad7780 driver. Signed-off-by: Renato Lui Geh Signed-off-by: Jonathan Cameron commit 9fb27f807ecc23718d36346baa28c2b8b2c9ea2b Author: Renato Lui Geh Date: Fri Mar 15 23:15:55 2019 -0300 staging: iio: ad7780: moving ad7780 out of staging Move ad7780 ADC driver out of staging and into the mainline. The ad7780 is a sigma-delta analog to digital converter. This driver provides reading voltage values and status bits from both the ad778x and ad717x series. Its interface also allows writing on the FILTER and GAIN GPIO pins on the ad778x. Signed-off-by: Renato Lui Geh Signed-off-by: Giuliano Belinassi Co-developed-by: Giuliano Belinassi Signed-off-by: Jonathan Cameron commit 69fdf26f6ffea72495eb05acb7302311d9e5d711 Author: Renato Lui Geh Date: Fri Mar 15 23:15:26 2019 -0300 staging: iio: ad7780: add new copyright holder This patch adds a new copyright holder to the ad7780 driver. Signed-off-by: Renato Lui Geh Signed-off-by: Jonathan Cameron commit bb4af619a603383a7464be72065044e82b335ecb Author: Renato Lui Geh Date: Fri Mar 15 23:15:13 2019 -0300 staging: iio: ad7780: add SPDX identifier Add SPDX identifier (GPL-2.0) to the AD7780 driver. Signed-off-by: Renato Lui Geh Signed-off-by: Jonathan Cameron commit 5bb30e7daf00d3b655585cdeca87ba27af7fd066 Author: Renato Lui Geh Date: Fri Mar 15 23:14:59 2019 -0300 staging: iio: ad7780: move regulator to after GPIO init To maintain consistency between ad7780_probe and ad7780_remove orders, regulator initialization has been moved to after GPIO initializations. Signed-off-by: Renato Lui Geh Signed-off-by: Jonathan Cameron commit 4812a14a78c82cfe81cb5fd7555a9de723b49a59 Author: Renato Lui Geh Date: Fri Mar 15 23:14:27 2019 -0300 staging:iio:ad7780: add chip ID values and mask The ad7780 supports both the ad778x and ad717x families. Each chip has a corresponding ID. This patch provides a mask for extracting ID values from the status bits and also macros for the correct values for the ad7170, ad7171, ad7780 and ad7781. Signed-off-by: Renato Lui Geh Signed-off-by: Jonathan Cameron commit 33e1f90204f0a291f898c371f68557892526160c Author: Renato Lui Geh Date: Fri Mar 15 23:14:14 2019 -0300 staging: iio: ad7780: set pattern values and masks directly The AD7780 driver contains status pattern bits designed for checking whether serial transfers have been correctly performed. Pattern macros were previously generated through bit fields. This patch sets good pattern values directly and masks through GENMASK. Signed-off-by: Renato Lui Geh Signed-off-by: Jonathan Cameron commit 0ee6d5ebe13df2281c192c03adbd59c3e4f4e468 Author: Renato Lui Geh Date: Fri Mar 15 23:13:42 2019 -0300 staging: iio: ad7780: add filter reading to ad778x This patch adds the new feature of reading the filter odr value for ad778x chips. This value is stored in the chip's state struct whenever a read or write call is performed on the chip's driver. This feature requires sharing SAMP_FREQ. Since the ad717x does not have a filter option, the driver only shares the relevant info mask for the ad778x family. Signed-off-by: Renato Lui Geh Signed-off-by: Jonathan Cameron commit 0149ba2d5b6d6799e6aeb1ae25773008745c1c5a Author: Renato Lui Geh Date: Fri Mar 15 23:13:13 2019 -0300 staging: iio: ad7780: add gain reading to ad778x This patch adds a new functionality of reading gain values from the ad778x chips. This value is stored in the chip's state struct and is updated whenever a read or write call is performed on the driver. Signed-off-by: Renato Lui Geh Signed-off-by: Jonathan Cameron commit ae9f86feb4294864cf7274acae6561ec4d95a7d0 Author: Renato Lui Geh Date: Fri Mar 15 23:12:53 2019 -0300 staging: iio: ad7780: add missing switch default case This patch simply adds a missing switch default case in read_raw. Signed-off-by: Renato Lui Geh Signed-off-by: Jonathan Cameron commit 9085daa4abcc3a1c19ae4eb00e609842ef28275a Author: Renato Lui Geh Date: Fri Mar 15 23:12:27 2019 -0300 staging: iio: ad7780: add gain & filter gpio support Previously, the AD7780 driver only supported gpio for the 'powerdown' pin. This commit adds suppport for the 'gain' and 'filter' pin. Signed-off-by: Renato Lui Geh Signed-off-by: Giuliano Belinassi Co-developed-by: Giuliano Belinassi Signed-off-by: Jonathan Cameron commit caeffabc36cbb6a3cdfe5b7894f8e1bfef6504b3 Author: Gregory CLEMENT Date: Fri Mar 15 10:52:31 2019 +0100 dt-bindings: iio: adc: lpc32xx-adc: Document vref-supply As most of the other ADC the lpc32xx one use a vref-supply property: document it. Reviewed-by: Rob Herring Signed-off-by: Gregory CLEMENT Signed-off-by: Jonathan Cameron commit e32cff6f6163fa03b41812eeab0f8d6a429ef416 Author: Gregory CLEMENT Date: Fri Mar 15 10:52:30 2019 +0100 iio: adc: lpc32xx: Add scale feature Until now this driver only exposed the raw value of the channels. With this patch, the scale value is also exposed. It depends of a regulator supply, and unlike most of the other driver, do not having this regulator won't prevent to use the driver. The reason for it is to allow to continue to use this driver with an old device tree. If there is no regulator supply then the scale won't be exposed. Signed-off-by: Gregory CLEMENT Signed-off-by: Jonathan Cameron commit 9f29b00c582641b865d3476dd81944375415ae0e Author: Gregory CLEMENT Date: Fri Mar 15 10:52:29 2019 +0100 iio: adc: lpc32xx: Cleanup headers A few headers is useless: remove them. Signed-off-by: Gregory CLEMENT Signed-off-by: Jonathan Cameron commit 163321094ba1ec2255fd2d63a5bcba597d9bdac0 Author: Gregory CLEMENT Date: Fri Mar 15 10:52:28 2019 +0100 iio: adc: lpc32xx: Sort headers Sort the headers in alphabetic order in order to ease the maintenance for this part. Signed-off-by: Gregory CLEMENT Signed-off-by: Jonathan Cameron commit eb4f07a5ba05a8fc6ed0b53f3308c7d2cbd63536 Author: Mircea Caprioru Date: Fri Mar 15 13:29:03 2019 +0200 staging: iio: adc: ad7192: Convert platform data to DT properties This patch will remove platform data members and replace them with device tree properties. These properties will be subject to further modifications and probably replaced with other functionalities at some point in time. Signed-off-by: Mircea Caprioru Signed-off-by: Jonathan Cameron commit 6be4f55456f938130891e76cb011e546162ad365 Author: Lorenzo Bianconi Date: Fri Mar 15 11:08:25 2019 +0100 dt-bindings: iio: imu: st_lsm6dsx: add lsm6dsox device bindings Signed-off-by: Lorenzo Bianconi Signed-off-by: Jonathan Cameron commit 6af0e8a9a7a5ec324dbc32bc81feea81e44908dc Author: Lorenzo Bianconi Date: Fri Mar 15 11:08:24 2019 +0100 iio: imu: st_lsm6dsx: add support to LSM6DSOX Add support to STM LSM6DSOX 6-axis (acc + gyro) Mems sensor https://www.st.com/resource/en/datasheet/lsm6dsox.pdf Signed-off-by: Lorenzo Bianconi Signed-off-by: Jonathan Cameron commit 753a9870e04166ac49384aa71f91591cd8f6aa24 Author: Mircea Caprioru Date: Fri Mar 15 13:14:25 2019 +0200 staging: iio: adc: ad7192: Report error directly in ad7192_setup This patch removes the goto out statement and uninformative print message. This improves readability. Signed-off-by: Mircea Caprioru Signed-off-by: Jonathan Cameron commit 3ad7a939c931e8f97fe1eecdbb964c76a90eadcd Author: Mircea Caprioru Date: Fri Mar 15 13:29:02 2019 +0200 staging: iio: adc: ad7192: Use DT clock binding This patch replaces the platform data clock select member with DT clock binding. Through the DT the external clock binding is specified. If this is not provided then the device will use the internal clock source. With the external clock binding there is the option to use a clock or a crystal as the clock source. When an external crystal is used it is connected to MCLK1 and MCLK2 pins. If the external clock is used only MCLK2 pin will be connected. Signed-off-by: Mircea Caprioru Signed-off-by: Jonathan Cameron commit 17b90e6a0df28eaf1847ad3da6a3080bf4d70124 Author: Mircea Caprioru Date: Fri Mar 15 13:14:24 2019 +0200 staging: iio: adc: ad7192: Fix identation This patch fixes the odd indentation inside function ad7192_calibrate_all. Signed-off-by: Mircea Caprioru Signed-off-by: Jonathan Cameron commit b34d6c835d6b6ba8c2412cc954f2bb227378d184 Author: Colin Ian King Date: Thu Mar 14 23:26:03 2019 +0000 iio: adc: ad7124 fix indentation issue, remove extra tab A return statement is indented one level too deeply; clean this up by removing a tab. Signed-off-by: Colin Ian King Acked-by: Stefan Popa Signed-off-by: Jonathan Cameron commit 37aa055c417211913240c36aa394edb6266d5ca1 Author: Enric Balletbo i Serra Date: Wed Mar 13 12:41:20 2019 +0100 iio: cros_ec: Switch to SPDX identifier. Adopt the SPDX license identifier headers to ease license compliance management. Also fix MODULE_LICENSE for cros_ec_accel_legacy to match the SPDX and boiler plate license. Signed-off-by: Enric Balletbo i Serra Signed-off-by: Jonathan Cameron commit ad9cc622f10116046a88181e8c2f7d6a19af7fc0 Author: Gwendal Grignou Date: Wed Mar 13 12:40:50 2019 +0100 iio: cros_ec: Add kernel-doc for cros_ec_sensors_read_lpc Document cros_ec_sensors_read_lpc, adding an additional note to explain that this is the safe function for reading the EC data. Signed-off-by: Gwendal Grignou Signed-off-by: Enric Balletbo i Serra Signed-off-by: Jonathan Cameron commit b921d928a31c78b083a34140204f2ad183bcc083 Author: Guenter Roeck Date: Wed Mar 13 12:40:32 2019 +0100 iio: cros_ec: Drop unnecessary include files The cros_ec sensors drivers do not call any sysfs functions or use any sysfs defines, and thus do not need to include linux/sysfs.h. Also, some cros_ec drivers include linux/delay.h and is not used. Signed-off-by: Guenter Roeck [remove linux/delay.h] Signed-off-by: Enric Balletbo i Serra Signed-off-by: Jonathan Cameron commit 6282b5c620183f4787f788da2e642c7c61f9b557 Author: Linus Walleij Date: Tue Mar 12 09:40:18 2019 +0100 iio: pressure: bmp280: BMP280 calibration to entropy The BMP280/BME280 calibration data should also go into the entropy pool, like we do for BMP180. This just adds the temperature and pressure calibration, the humidity calibration seems like too much annoying calls to add. Cc: Tomasz Duszynski Cc: Stefan Tatschner Cc: Andreas Klinger Signed-off-by: Linus Walleij Signed-off-by: Jonathan Cameron commit 3b5de76b285eebe152d691a8481483e9cedd07a0 Author: Stefan Popa Date: Mon Mar 11 11:46:37 2019 +0200 dt-bindings: iio: imu: adis16480: Document external clock Add documentation for optional use of external clock. All devices supported by this driver can work with an external clock in sync mode. Another mode, called Pulse Per Second (PPS) is supported only by adis1649x devices. The mode is selected by using the "clock-names" property. The pin which is used as external clock input is selected by using a custom optional property called "adi,ext-clk-pin". If this field is left empty, DIO2 is assigned as default external clock input pin. Signed-off-by: Stefan Popa Signed-off-by: Jonathan Cameron commit 326e2357553d39769aacf737fd19650f2d81671a Author: Stefan Popa Date: Mon Mar 11 11:45:29 2019 +0200 iio: imu: adis16480: Add support for external clock Inertial sensor data collection and processing can be controlled by configuring one of the DIOx lines as an external clock input. This option is available for all devices supported by this driver. However, only adis1649x devices support different modes for the external clock. Sync mode is supported by all devices. In this mode, the output data rate is equal with the clock frequency divided by DEC_RATE + 1. This mode of calculation is similar with the case when the internal clock is used. Pulse Per Second (PPS) Mode, is only supported by adis1649x devices. In this mode, the output data rate is equal to the product of the external clock frequency and the scale factor in the SYNC_SCALE register. This patch uses the "clock-names" property to enable the external clock in one of the two supported modes: "sync" or "pps". This property is optional. If it is not specified, the internal clock is used. This patch also offers the option to select the DIOx line to be used as an external clock input via the custom "adi,ext-clk-pin" property. If this field is left empty, DIO2 is assigned as default external clock input pin. Each DIOx pin supports only one function at a time (data ready line selection or external clock input). Signed-off-by: Stefan Popa Signed-off-by: Jonathan Cameron commit 20d9248e704a3a852cfc35a4003732349cb7cf3d Author: Jonathan Cameron Date: Wed Feb 20 18:23:44 2019 +0000 iio:dac:ad5064 mlock cleanup - move to a local lock. indio_dev->mlock is intended to protect state transitions in the core. It's scope is tightly defined. For device specific uses such as those made here, we should define a local lock allowing the scope of the lock to be defined near to what it is protecting. These mlock changes can be non obvious, but given we don't do anything other than direct for DACs, these ones are easy to do. If anyone wants to help with this particular effort it would be most welcome! Signed-off-by: Jonathan Cameron commit d626be00e856c0cec3b5f420e7f061829538d63b Author: Enrico Weigelt, metux IT consult Date: Wed Mar 6 15:52:23 2019 +0100 drivers: iio: Kconfig: pedantic cleanup Formatting of Kconfig files doesn't look so pretty, so just take damp cloth and clean it up. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Jonathan Cameron commit 17104ca2713ba443f9a02a7c4090514ad1e46ee9 Author: Nathan Chancellor Date: Thu Mar 7 10:16:04 2019 -0700 iio: adc: stmpe-adc: Shuffle an if statement around in stmpe_adc_isr When building with -Wsometimes-uninitialized, Clang warns: drivers/iio/adc/stmpe-adc.c:204:13: warning: variable 'data' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] Clang can't tell that data will never be used uninitialized because the two if statements take care of all cases. Remove the first if statement and make it the else branch of the second one so that it is apparent to Clang that all cases are covered. Link: https://github.com/ClangBuiltLinux/linux/issues/387 Suggested-by: Nick Desaulniers Signed-off-by: Nathan Chancellor Reviewed-by: NIck Desaulniers Signed-off-by: Jonathan Cameron commit 6f9ca1d3eb74b81f811a87002de2d51640d135b1 Author: Nathan Chancellor Date: Thu Mar 7 14:45:46 2019 -0700 iio: common: ssp_sensors: Initialize calculated_time in ssp_common_process_data When building with -Wsometimes-uninitialized, Clang warns: drivers/iio/common/ssp_sensors/ssp_iio.c:95:6: warning: variable 'calculated_time' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] While it isn't wrong, this will never be a problem because iio_push_to_buffers_with_timestamp only uses calculated_time on the same condition that it is assigned (when scan_timestamp is not zero). While iio_push_to_buffers_with_timestamp is marked as inline, Clang does inlining in the optimization stage, which happens after the semantic analysis phase (plus inline is merely a hint to the compiler). Fix this by just zero initializing calculated_time. Link: https://github.com/ClangBuiltLinux/linux/issues/394 Signed-off-by: Nathan Chancellor Reviewed-by: Nick Desaulniers Signed-off-by: Jonathan Cameron commit 11362b7a43bac15607e26d501d6095235b38567b Author: Sven Van Asbroeck Date: Fri Mar 8 12:59:35 2019 -0500 iio: proximity: as3935: fix use-after-free on device remove This driver's probe() uses a mix of devm_ and non-devm_ functions. This means that the remove order will not be the exact opposite of the probe order. Remove order: 1. remove() executes: iio_device_unregister iio_triggered_buffer_cleanup iio_trigger_unregister (A) 2. core frees devm resources in reverse order: free_irq iio_trigger_free iio_device_free In (A) the trigger has been unregistered, but the irq handler is still registered and active, so the trigger may still be touched via interrupt -> as3935_event_work. This is a potential use-after-unregister. Given that the delayed work is never canceled explicitly, it may run even after iio_device_free. This is a potential use-after-free. Solution: convert all probe functions to their devm_ equivalents. Add a devm callback, called by the core on remove right after irq_free, which explicitly cancels the delayed work. This will guarantee that all resources are freed in the correct order. As an added bonus, some boilerplate code can be removed. Signed-off-by: Sven Van Asbroeck Signed-off-by: Jonathan Cameron commit 71a7766b36f32ece32346985e9bed63e23847914 Author: Anderson Reis Date: Fri Mar 8 16:46:55 2019 -0300 iio:potentiostat:lmp91000: change dev_err message Change dev_err message on line 215 in order to inform that tia-gain-ohm is not defined and an external resistor is not specified. Signed-off-by: Anderson Reis Signed-off-by: Lucas Oshiro Signed-off-by: Jonathan Cameron commit b11a89d5d2493f440b6c718bbcd7dbb0733b02b5 Author: Anderson Reis Date: Fri Mar 8 16:46:54 2019 -0300 iio:potentiostat:lmp91000: invert if statement Invert if statement arms in line 214, in order to make the code cleaner, solve these checkpatch.pl CHECKs: - lmp9100.c:214: CHECK: braces {} should be used on all arms of this statement - lmp9100.c:216: CHECK: Unbalanced braces around else statement Signed-off-by: Lucas Oshiro Signed-off-by: Anderson Reis Signed-off-by: Jonathan Cameron commit cd4779f120c1acc5448b803c8d9374d0dc064996 Author: Anderson Reis Date: Fri Mar 8 16:46:53 2019 -0300 iio:potentiostat:lmp91000: reduce line width and remove blank line Break the line 258 in order fit the line width on 80 characters. Remove the blank line 279, as the line before is also a blank line. Solve these checkpath.el WARNING and CHECK: - lmp91000.c:258: WARNING: line over 80 characters - lmp91000.c:279: CHECK: Please don't use multiple blank lines Signed-off-by: Lucas Oshiro Signed-off-by: Anderson Reis Signed-off-by: Jonathan Cameron commit 681ca4477933017e77188dcba74035823e823152 Author: Lucas Oshiro Date: Fri Mar 8 16:46:52 2019 -0300 iio:potentiostat:lmp91000: remove unnecessary parentheses Remove unnecessary parentheses on line 116. Signed-off-by: Lucas Oshiro Signed-off-by: Anderson Reis Signed-off-by: Jonathan Cameron commit c97dce792dc8da9d934931b7a05c253371472e09 Author: Justin Chen Date: Fri Mar 8 14:03:28 2019 -0800 iio: adc: ti-ads7950: add GPIO support The ADS79XX has GPIO pins that can be used. Add support for the GPIO pins using the GPIO chip framework. Signed-off-by: Justin Chen Reviewed-by: Linus Walleij Signed-off-by: Jonathan Cameron commit 13814627c9658cf8382dd052bc251ee415670a55 Author: Kangjie Lu Date: Fri Mar 8 22:53:55 2019 -0600 iio: adc: fix a potential NULL pointer dereference devm_iio_trigger_alloc may fail and return NULL. The fix returns ENOMEM when it fails. Signed-off-by: Kangjie Lu Signed-off-by: Jonathan Cameron commit d43102f525d9d7a727e086d23e7c27dd665a36d4 Author: Sean Nyekjaer Date: Tue Mar 5 08:36:27 2019 +0100 iio: dac: ti-dac5571: Update the module author email address Update the module author to the current email address Signed-off-by: Sean Nyekjaer Signed-off-by: Jonathan Cameron commit bcccd7ab3dcd5cb8d011dd523b571c6dd082d0a5 Author: Sean Nyekjaer Date: Tue Mar 5 08:36:26 2019 +0100 iio: adc: ti-ads8688: Update the module author email address Update the module author to the current email address. Signed-off-by: Sean Nyekjaer Signed-off-by: Jonathan Cameron commit 3b866fd28ff17b8d7ea8ef6b109618a7f2cc1042 Author: Robert Yang Date: Mon Mar 4 10:19:12 2019 -0500 iio: accel: kxcjk1013: Add device tree support Add device tree support for kxcjk-1013 accelerometer sensors. Signed-off-by: Robert Yang Signed-off-by: Jonathan Cameron commit 0d90fe4786cb8542b900257b4fa7316cbdd9d01f Author: Robert Yang Date: Mon Mar 4 10:19:11 2019 -0500 dt-bindings: iio: accel: kxcjk1013: Add device tree binding documentation Document device tree bindings for Kionix KXCJK-1013 Accelerometer driver. Signed-off-by: Robert Yang Reviewed-by: Rob Herring Signed-off-by: Jonathan Cameron commit 2e5cee6c762297359d670a19e6b87c73c5ceaccb Author: Robert Yang Date: Mon Mar 4 10:19:10 2019 -0500 dt-bindings: Add vendor prefix for Kionix, Inc. Kionix manufactured MEMs sensors. There are Kionix acceleromoter sensor drivers which can be used with device tree. Signed-off-by: Robert Yang Reviewed-by: Rob Herring Signed-off-by: Jonathan Cameron commit e415a1659ec9f04cda81875cd7e7acb73da16e89 Author: Neil Armstrong Date: Mon Mar 4 12:12:17 2019 +0100 iio: adc: meson-saradc: add support for Meson G12A Add the SAR ADC driver for the Amlogic Meson-G12A SoC. Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Signed-off-by: Jonathan Cameron commit a29b8657d322daef2b9fd3fd7c03f5f5bebfde86 Author: Neil Armstrong Date: Mon Mar 4 12:12:16 2019 +0100 dt-bindings: iio: adc: document the Meson G12A support Update the documentation to explicitly support the Meson-G12A SoC. Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Signed-off-by: Jonathan Cameron commit 35a4ae6d7aee51938d3bedccfa6a7626938293e5 Author: Sean Nyekjaer Date: Mon Mar 4 11:08:08 2019 +0100 mailmap: Update email for Sean Nyekjaer As I'll no longer be working with Prevas, add a mailmap entry so any mail directed towards me reaches the appropriate mailbox. Signed-off-by: Sean Nyekjaer Signed-off-by: Jonathan Cameron commit 3862828a903d3c2b1e9415dca0f4f5d9de52e836 Author: Andy Shevchenko Date: Mon Mar 4 10:55:40 2019 +0200 iio: buffer: Switch to bitmap_zalloc() Switch to bitmap_zalloc() to show clearly what we are allocating. Besides that it returns pointer of bitmap type instead of opaque void *. Signed-off-by: Andy Shevchenko Signed-off-by: Jonathan Cameron commit 74c420e0a581c2e333c2f5742506e86f198af70b Author: Gustavo A. R. Silva Date: Wed Feb 20 20:06:33 2019 -0600 iio: cros_ec_accel_legacy: Refactor code in cros_ec_accel_legacy_probe Refactor some code in order to fix both the technical implementation and the following warnings: drivers/iio/accel/cros_ec_accel_legacy.c: In function ‘cros_ec_accel_legacy_probe’: drivers/iio/accel/cros_ec_accel_legacy.c:387:36: warning: this statement may fall through [-Wimplicit-fallthrough=] ec_accel_channels[X].scan_index = Y; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~ drivers/iio/accel/cros_ec_accel_legacy.c:388:3: note: here case Y: ^~~~ drivers/iio/accel/cros_ec_accel_legacy.c:389:36: warning: this statement may fall through [-Wimplicit-fallthrough=] ec_accel_channels[Y].scan_index = X; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~ drivers/iio/accel/cros_ec_accel_legacy.c:390:3: note: here case Z: ^~~~ Notice that neither the for loop nor the switch statement is needed. Also, "state->sign[Y] = 1" should be unconditional. This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Acked-by: Kees Cook Acked-by: Enric Balletbo i Serra Signed-off-by: Jonathan Cameron commit f6672544df43020013c4675cefd324009a3ce1b9 Author: Colin Ian King Date: Thu Feb 21 10:46:36 2019 +0000 iio: st_accel: remove redundant unsigned less than zero check The check that variable val is less than zero is redundant since val is an unsigned int and hence can never be less than zero. Remove it. Signed-off-by: Colin Ian King Signed-off-by: Jonathan Cameron commit e132f62b9fabad809dccc9f8e1847496b1538376 Author: Lorenzo Bianconi Date: Thu Feb 21 16:20:21 2019 +0100 dt-bindings: iio: imu: st_lsm6dsx: add asm330lhh device bindings Signed-off-by: Lorenzo Bianconi Signed-off-by: Jonathan Cameron commit 3054c4ff28bfdb37fdb5dc077ee611bfa5547e99 Author: Lorenzo Bianconi Date: Thu Feb 21 16:20:20 2019 +0100 iio: imu: st_lsm6dsx: add support to ASM330LHH Add support to STM ASM330LHH 6-axis (acc + gyro) Mems sensor https://www.st.com/resource/en/datasheet/asm330lhh.pdf Tested-by: Mario Tesi Signed-off-by: Lorenzo Bianconi Signed-off-by: Jonathan Cameron commit 67b9d4d0985f7041fa59252a78b2bdb7ae5b46b0 Author: H. Nikolaus Schaller Date: Thu Feb 21 18:02:55 2019 +0100 iio: ak8975: improve code readability - use temporary variable in get_mount_matrix() - remove , after { } Signed-off-by: H. Nikolaus Schaller Reviewed-by: Andy Shevchenko Reviewed-by: Linus Walleij Signed-off-by: Jonathan Cameron commit 28799ceac014a1a349e0371f5dec136bccf72fb7 Author: H. Nikolaus Schaller Date: Thu Feb 21 18:02:54 2019 +0100 iio: mpu6050: improve code readability - use temporary variable in get_mount_matrix() - remove , after { } Signed-off-by: H. Nikolaus Schaller Reviewed-by: Linus Walleij Reviewed-by: Andy Shevchenko Signed-off-by: Jonathan Cameron commit 8d7ea73814b4ede8bdf31021779e1345bee15acc Author: H. Nikolaus Schaller Date: Thu Feb 21 18:02:53 2019 +0100 iio: magnetometer: hmc5843: add mount matrix support This patch allows to read a mount-matrix device tree property and report to user-space or in-kernel iio clients. Signed-off-by: H. Nikolaus Schaller Reviewed-by: Linus Walleij Reviewed-by: Andy Shevchenko Signed-off-by: Jonathan Cameron commit d9842c770a47e35a3264359989fff69d58e5cbaa Author: H. Nikolaus Schaller Date: Thu Feb 21 18:02:52 2019 +0100 iio: magnetometer: bmc150: add mount matrix support This patch allows to read a mount-matrix device tree property and report to user-space or in-kernel iio clients. Signed-off-by: H. Nikolaus Schaller Reviewed-by: Linus Walleij Reviewed-by: Andy Shevchenko Signed-off-by: Jonathan Cameron commit 70b5fdbb2eaea57e3025081b1dfbabf12a4d91ee Author: H. Nikolaus Schaller Date: Thu Feb 21 18:02:51 2019 +0100 iio: gyro: itg3200: add mount matrix support This patch allows to read a mount-matrix device tree property and report to user-space or in-kernel iio clients. Signed-off-by: H. Nikolaus Schaller Reviewed-by: Andy Shevchenko Reviewed-by: Linus Walleij Signed-off-by: Jonathan Cameron commit 3a6049f6dbab9240d0f465067c2a42fb182fc663 Author: H. Nikolaus Schaller Date: Thu Feb 21 18:02:50 2019 +0100 iio: gyro: bmg160: add mount matrix support This patch allows to read a mount-matrix device tree property and report to user-space or in-kernel iio clients. Signed-off-by: H. Nikolaus Schaller Reviewed-by: Linus Walleij Reviewed-by: Andy Shevchenko Signed-off-by: Jonathan Cameron commit 587c2bea23f8ce17c4deeaf66cb1351d6e170d3c Author: H. Nikolaus Schaller Date: Thu Feb 21 18:02:49 2019 +0100 iio: accel: bma180: add mount matrix support This patch allows to read a mount-matrix device tree property and report to user-space or in-kernel iio clients. Signed-off-by: H. Nikolaus Schaller Reviewed-by: Linus Walleij Reviewed-by: Andy Shevchenko Signed-off-by: Jonathan Cameron commit 3c35e20a1118337ee6ba6e134f3b713503d48f80 Author: H. Nikolaus Schaller Date: Thu Feb 21 18:02:48 2019 +0100 iio: accel: bmc150: add mount matrix support This patch allows to read a mount-matrix device tree property and report to user-space or in-kernel iio clients. Signed-off-by: H. Nikolaus Schaller Reviewed-by: Linus Walleij Reviewed-by: Andy Shevchenko Signed-off-by: Jonathan Cameron commit fb1589710efe73228c9acdd1479a520a609c08a0 Author: Andy Shevchenko Date: Thu Feb 21 18:02:46 2019 +0100 iio: Allow to read mount matrix from ACPI Currently mount matrix is allowed in Device Tree, though there is no technical issue to extend it to support ACPI. Convert the function to use device_property_read_string_array() and thus allow to read mount matrix from ACPI if available. Example of use in _DSD method: Name (_DSD, Package () { ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), Package () { Package () { "mount-matrix", Package() { "1", "0", "0", "0", "0.866", "0.5", "0", "-0.5", "0.866", } }, } }) At the same time drop the "of" prefix from its name and convert current users. No functional change intended. Signed-off-by: Andy Shevchenko Reviewed-by: Linus Walleij Signed-off-by: Jonathan Cameron commit 0a39ac29e0701f4957aabc285f5d1d7028094f94 Author: Bárbara Fernandes Date: Fri Feb 22 17:31:59 2019 -0300 iio:adc:ad7923: Rewrite comparison to NULL Solves checkpath.pl's message: CHECK: Comparison to NULL could be written "!indio_dev" Signed-off-by: Bárbara Fernandes Signed-off-by: Jonathan Cameron commit 385c301cec0ba269322e8aaadb331c1a39a7f491 Author: Bárbara Fernandes Date: Fri Feb 22 17:31:58 2019 -0300 iio:adc:ad7923: Put macro argument between ()'s Put macro argument between parenthesis in order to avoid precedence issues. Solves the following checkpath.pl's messages: CHECK: Macro argument 'mode' may be better as '(mode)' to avoid precedence issues CHECK: Macro argument 'channel' may be better as '(channel)' to avoid precedence issues CHECK: Macro argument reuse 'sequence' - possible side-effects? CHECK: Macro argument 'sequence' may be better as '(sequence)' to avoid precedence issues CHECK: Macro argument 'val' may be better as '(val)' to avoid precedence issues CHECK: Macro argument 'dec' may be better as '(dec)' to avoid precedence issues CHECK: Macro argument 'bits' may be better as '(bits)' to avoid precedence issues Signed-off-by: Bárbara Fernandes Signed-off-by: Jonathan Cameron commit c1fc8bb0f6587995b080f81422ab496b34e77a4d Author: Bárbara Fernandes Date: Fri Feb 22 17:31:57 2019 -0300 iio:adc:ad7923: Use BIT macro instead of bitshift Replace use of the operation '<<' by the BIT macro. Solves checkpath.pl's message: CHECK: Prefer using the BIT macro Signed-off-by: Bárbara Fernandes Signed-off-by: Jonathan Cameron commit 66deb5c170a596e45ad1d00720365e1a07487f58 Author: Bárbara Fernandes Date: Fri Feb 22 17:31:56 2019 -0300 iio:adc:ad7923: Align broken line to parenthesis Get broken line aligned with parenthesis on upper line. Solves checkpatch.pl's message: CHECK: Alignment should match open parenthesis Signed-off-by: Bárbara Fernandes Signed-off-by: Jonathan Cameron commit 6dc3e36fbc4c68d57f588c3241e78c25b24d48aa Author: Fabrice Gasnier Date: Mon Feb 25 11:42:47 2019 +0100 iio: counter: stm32-lptimer: Add power management support Add suspend/resume PM sleep ops. When going to low power, disable active counter. Only active counter should be resumed: don't touch disabled counter, as it may be used by other LPTimer MFD child driver. Signed-off-by: Fabrice Gasnier Signed-off-by: Jonathan Cameron commit 74896202dfb71e7142adc4042f0cc812cb4be4c5 Author: Fabrice Gasnier Date: Mon Feb 25 11:42:46 2019 +0100 dt-bindings: iio: stm32-lptimer-counter: document pinctrl sleep state Add documentation for optional pinctrl sleep state that can be used by STM32 LPTimer encoder/counter. Signed-off-by: Fabrice Gasnier Signed-off-by: Jonathan Cameron commit 722f2cca9a29b7dc27d8bdc15257aaba36394812 Author: Tomasz Duszynski Date: Mon Feb 25 19:17:40 2019 +0100 iio: chemical: sps30: fix attribute kernel version 4.22 have never existed and this change was actually added to 5.0 hence fix the numbering. Signed-off-by: Tomasz Duszynski Signed-off-by: Jonathan Cameron commit 1842a700ec592169c773ac6b6867a6f5e7166bc6 Author: Stefan Popa Date: Wed Feb 27 18:14:28 2019 +0200 iio: imu: adis16480: Add docs for ADIS16480 IMU Document support for ADIS16480 Inertial Measurement Unit. Signed-off-by: Stefan Popa Reviewed-by: Rob Herring Signed-off-by: Jonathan Cameron commit 82e7a1b2501709cce9294b744224e70cc3be96cd Author: Stefan Popa Date: Wed Feb 27 18:14:27 2019 +0200 iio: imu: adis16480: Add support for ADIS1649x family of devices The ADIS16495 and ADIS16497 are inertial systems that include a triaxis gyroscope and a triaxis accelerometer. The serial peripheral interface (SPI) provide a simple interface for data collection and configuration control. The devices are similar to ADIS16475, ADIS16480, ADIS16485 and ADIS16488, the main differences are highlighted below: * The temperature data scale is 0.00565 C/LSB for ADIS16475 and ADIS1648x devices, while for ADIS1649x 0.0125 C/LSB. * ADIS1649x devices support different gyroscope measurement ranges which are dependent on the dash number (-1, -2, -3), see Table 24 in the ADIS16495 datasheet. However, the ADIS16497 gyroscopes have the same scale as ADIS16495. * ADIS16495 devices support the acceleration maximum range of 8g, while ADIS16497 devices go up to 40g. * The internal clock for ADIS1649x devices is 4.25 kSPS. The sampling frequency is calculated by applying a decimation rate which can take a maximum value of 4250. * ADIS1649x devices support different default filter frequencies. Datasheets: Link: https://www.analog.com/media/en/technical-documentation/data-sheets/adis16495.pdf Link: https://www.analog.com/media/en/technical-documentation/data-sheets/adis16497.pdf Signed-off-by: Stefan Popa Signed-off-by: Jonathan Cameron commit 83ec2d5404bfdf3aa67abfc594d0e6118d16ac06 Author: Stefan Popa Date: Wed Feb 27 18:14:26 2019 +0200 iio: imu: adis16480: Deal with filter freq in a generic way When setting the filter frequency, the driver looks into the adis16480_def_filter_freqs table for the best match. Pass this table to the chip_info struct since future devices will need to use a different table. Signed-off-by: Stefan Popa Signed-off-by: Jonathan Cameron commit e0e6398e1e4e27b06307457be8a85a7a5c0f9ef0 Author: Stefan Popa Date: Wed Feb 27 18:14:25 2019 +0200 iio: imu: adis16480: Calculate the sampling frequency in a generic way The adis1648x devices have an internal clock of 2.46 kSPS. The sampling frequency is calculated by applying a decimation rate which can take the maximum value of 2047. Although all adis1648x devices are similar in this regard, devices that will use this feature will be added in the future. Signed-off-by: Stefan Popa Signed-off-by: Jonathan Cameron commit 6cf7b866bdd5cfbeb401cb65b928ebd46440490d Author: Stefan Popa Date: Wed Feb 27 18:14:24 2019 +0200 iio: imu: adis16480: Treat temperature scale in a generic way All supported devices provide internal temperature measurement from -40 C to +85 C, with +25 C representing value 0x00. This patch treats the temperature scale in a generic way, similar to the accelerometer and gyroscope scales. So far, there are no temperature max scale differences between the supported devices. However, devices that will make use of this feature will be added in the future. Signed-off-by: Stefan Popa Signed-off-by: Jonathan Cameron commit 304840c476ee84ef21f57f284922040ab0d0ce41 Author: Stefan Popa Date: Wed Feb 27 18:14:23 2019 +0200 iio: imu: adis16480: Add OF device ID table The driver does not have a struct of_device_id table, but supported devices are registered via Device Trees. This patch adds OF device ID table. Signed-off-by: Stefan Popa Signed-off-by: Jonathan Cameron commit cede2f899d8f85baea32ff2e8a89a97aaac339b9 Author: Stefan Popa Date: Wed Feb 27 18:14:22 2019 +0200 iio: imu: adis16480: Add support for configurable drdy indicator The FNCTIO_CTRL register provides configuration control for each I/O pin (DIO1, DIO2, DIO3 and DIO4). This patch adds the option to configure each DIOx pin as data ready indicator with positive or negative polarity by reading the 'interrupts' and 'interrupt-names' properties from the devicetree. The 'interrupt-names' property is optional, if it is not specified, then the DIO1 pin is used as default data ready signal. Although the factory default assigns DIO2 as data ready signal, in the versions previous this patch, DIO1 pin was used. We should leave this configuration as is, since some devices might be expecting the interrupt on the wrong physical pin. Signed-off-by: Stefan Popa Signed-off-by: Jonathan Cameron commit abbde2792999c9ad3514dd25d7f8d9a96034fe16 Author: Justin Chen Date: Thu Feb 28 14:16:48 2019 -0800 iio: adc: ti-ads7950: Fix improper use of mlock Indio->mlock is used for protecting the different iio device modes. It is currently not being used in this way. Replace the lock with an internal lock specifically used for protecting the SPI transfer buffer. Signed-off-by: Justin Chen Signed-off-by: Jonathan Cameron commit be35d281da6af5f147383f06d050426901b2d25f Author: Mathieu Othacehe Date: Wed Feb 20 17:49:10 2019 +0100 iio: trigger: Print an error if there is no available irq If there are more trigger consumers than CONFIG_IIO_CONSUMERS_PER_TRIGGER, iio_trigger_attach_poll_func will silently fail. Add an error message to inform the user that CONFIG_IIO_CONSUMERS_PER_TRIGGER limit might be exceeded. Signed-off-by: Mathieu Othacehe Signed-off-by: Jonathan Cameron commit cb57f2eb0156829f61dd946d96b1270ea7535b76 Author: Gustavo A. R. Silva Date: Mon Feb 11 16:23:18 2019 -0600 iio: mma8452: mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warning: drivers/iio/accel/mma8452.c: In function ‘mma8452_probe’: drivers/iio/accel/mma8452.c:1581:6: warning: this statement may fall through [-Wimplicit-fallthrough=] if (ret == data->chip_info->chip_id) ^ drivers/iio/accel/mma8452.c:1584:2: note: here default: ^~~~~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 Notice that, in this particular case, the code comment is modified in accordance with what GCC is expecting to find. This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Jonathan Cameron commit faad0af1623c5dd214aa3207ba43186ee37c685d Author: Tomasz Duszynski Date: Sun Feb 17 20:22:13 2019 +0100 dt-bindings: iio: chemical: pms7003: extend supported sensors list Add other sensors to the compatible list. Signed-off-by: Tomasz Duszynski Signed-off-by: Jonathan Cameron commit 036aa1fee1cc8ba73705972df2f9b6824d9804df Author: Tomasz Duszynski Date: Sun Feb 17 20:22:12 2019 +0100 iio: chemical: pms7003: extend supported sensors list Add other sensors to the compatible list. Signed-off-by: Tomasz Duszynski Signed-off-by: Jonathan Cameron commit 76838a8f2973f632a1759fe169e1e77a39bc5aa3 Author: Wei Yongjun Date: Mon Feb 18 06:57:35 2019 +0000 iio: adc: ingenic: remove redundant dev_err call in ingenic_adc_probe() There is a error message within devm_ioremap_resource already, so remove the dev_err call to avoid redundant error message. Signed-off-by: Wei Yongjun Signed-off-by: Jonathan Cameron commit 6b079a807b368dc0b6ccafb8654329c72e0812a5 Author: Chengguang Xu Date: Mon Feb 18 15:53:26 2019 +0800 iio: remove redundant unlikely annotation unlikely has already included in IS_ERR(), so just remove redundant unlikely annotation. Signed-off-by: Chengguang Xu Signed-off-by: Jonathan Cameron commit 4c4591173f687a8e891b913b4e510807e821da5c Author: Ziping Chen Date: Thu Apr 4 11:47:14 2019 -0700 Input: sun4i-a10-lradc-keys - add support for A83T Allwinner A83T SoC has a low res adc like the one in Allwinner A10 SoC, however, the A10 SoC's vref of lradc internally is divided by 2/3 and the A83T SoC's vref of lradc internally is divided by 3/4, thus add a hardware variant for it to be compatible with various devices. Signed-off-by: Ziping Chen Acked-by: Maxime Ripard Acked-by: Rob Herring Signed-off-by: Dmitry Torokhov commit fb3c09ba20fff0fb7c5a6bcb2091dc62b6cce5e0 Author: Anson Huang Date: Wed Apr 3 15:15:44 2019 -0700 Input: snvs_pwrkey - use dev_pm_set_wake_irq() to simplify code With calling dev_pm_set_wake_irq() to set SNVS ON/OFF button as wakeup source for suspend, generic wake irq mechanism will automatically enable it as wakeup source when suspend, then the enable_irq_wake()/disable_irq_wake() can be removed in suspend/resume callback, it simplifies the code. Signed-off-by: Anson Huang Signed-off-by: Dmitry Torokhov commit 24541dede9dbe0638c82ace2b072c08fd1ec786b Author: Vladimir Zapolskiy Date: Wed Apr 3 10:52:49 2019 -0700 Input: lpc32xx-key - add clocks property and fix DT binding example The keypad controller on NXP LPC32xx requires its clock gate to be open, therefore add description of the requires 'clocks' property. In addition adjust the example by adding description of required 'clocks' property and by fixing 'interrupts' property. Signed-off-by: Vladimir Zapolskiy Reviewed-by: Dmitry Torokhov Reviewed-by: Rob Herring Signed-off-by: Dmitry Torokhov commit aaca981e4588906aece15392f26cc861b6f455ac Author: Dmitry Torokhov Date: Tue Mar 26 14:27:42 2019 -0700 Input: i8042 - signal wakeup from atkbd/psmouse Instead of signalling wakeup directly from i8042, let psmouse and atkbd drivers execute basic protocol handling and only then signal wakeup condition. This solves the issue where we increment wakeup counter simply because we are getting responses from keyboard/mouse to the commands we ourselves send to them as part of suspend transition. Acked-by: Rafael J. Wysocki Signed-off-by: Dmitry Torokhov commit e6046b5e69a070f8a1af868bba788cf796bcd9a8 Author: Chuanhong Guo Date: Thu Mar 21 22:42:51 2019 +0800 MIPS: ralink: fix cpu clock of mt7621 and add dt clk devices For a long time the mt7621 uses a fixed cpu clock which causes a problem if the cpu frequency is not 880MHz. This patch fixes the cpu clock calculation and adds the cpu/bus clkdev which will be used in dts. Ported from OpenWrt: c7ca224299 ramips: fix cpu clock of mt7621 and add dt clk devices Signed-off-by: Weijie Gao Signed-off-by: Chuanhong Guo Signed-off-by: Paul Burton Cc: linux-mips@vger.kernel.org Cc: Ralf Baechle Cc: James Hogan Cc: John Crispin Cc: linux-kernel@vger.kernel.org commit 5de363b66a37a0193e28a2de64fa4996159bd5ee Author: Greg Kroah-Hartman Date: Tue Apr 2 15:32:01 2019 +0200 drivers: base: power: add proper SPDX identifiers on files that did not have them. There were a few files in the driver core power code that did not have SPDX identifiers on them, so fix that up. At the same time, remove the "free form" text that specified the license of the file, as that is impossible for any tool to properly parse. Cc: "Rafael J. Wysocki" Signed-off-by: Greg Kroah-Hartman commit 50f86aedfa96c53498971a416d1b34cf1b13282e Author: Greg Kroah-Hartman Date: Tue Apr 2 15:32:02 2019 +0200 drivers: base: firmware_loader: add proper SPDX identifiers on files that did not have them. There were two files in the firmware_loader code that did not have SPDX identifiers on them, so fix that up. Cc: Luis Chamberlain Signed-off-by: Greg Kroah-Hartman commit 47bcc18c7e76adfa0b0d9fe99c78f0cbc0ca6b9c Author: Greg Kroah-Hartman Date: Tue Apr 2 15:32:03 2019 +0200 drivers: base: test: add proper SPDX identifier to Makefile The Makefile in the drivers/base/test/ directory did not have a SPDX identifier on it, so fix that up. Cc: "Rafael J. Wysocki" Signed-off-by: Greg Kroah-Hartman commit 847d44efad07c4e4e37eddd8cdfea3bc9a5df51b Author: Pablo Neira Ayuso Date: Thu Apr 4 13:56:38 2019 +0200 net: bridge: update multicast stats from maybe_deliver() Simplify this code by updating bridge multicast stats from maybe_deliver(). Note that commit 6db6f0eae605 ("bridge: multicast to unicast"), in case the port flag BR_MULTICAST_TO_UNICAST is set, never updates the previous port pointer, therefore it is always going to be different from the existing port in this deduplicated list iteration. Signed-off-by: Pablo Neira Ayuso Acked-by: Nikolay Aleksandrov Signed-off-by: David S. Miller commit 942f146a63cecaa6d7fb1e8d255efab217126c50 Author: Pablo Neira Ayuso Date: Thu Apr 4 13:54:20 2019 +0200 net: use kfree_skb_list() from ip_do_fragment() Just like 46cfd725c377 ("net: use kfree_skb_list() helper in more places"). Signed-off-by: Pablo Neira Ayuso Acked-by: Florian Westphal Signed-off-by: David S. Miller commit da0dde94ad481714f3194d367b9afb008de1d5d2 Merge: b571bc623eb9 d223dfa40a8f Author: David S. Miller Date: Thu Apr 4 10:20:39 2019 -0700 Merge branch 'hnx3-next' Huazhong Tan says: ==================== code optimizations & bugfixes for HNS3 driver This patchset includes bugfixes and code optimizations for the HNS3 ethernet controller driver. Change log: V1->V2: fixes comments from Sergei Shtylyov ==================== Signed-off-by: David S. Miller commit d223dfa40a8f3811a56b3682a9377d7ada73f507 Author: Jian Shen Date: Thu Apr 4 16:17:59 2019 +0800 net: hns3: split function hnae3_match_n_instantiate() The function hnae3_match_n_instantiate() was called both by initializing or uninitializing client. For uninitializing, the return value was never used. To make it more clear, this patch splits it to two functions, hnae3_init_client_instance() and hnae3_uninit_client_instance(). Signed-off-by: Jian Shen Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 1eeb3367897a3f9f852e186695e28bb623b09f92 Author: Huazhong Tan Date: Thu Apr 4 16:17:58 2019 +0800 net: hns3: modify HNS3_NIC_STATE_INITED flag in hns3_reset_notify_uninit_enet In the hns3_reset_notify_uninit_enet() HNS3_NIC_STATE_INITED flag should be checked and cleared firstly. Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit 6ff7ed8049ebf932643eee8680bb1d75691fa801 Author: Huazhong Tan Date: Thu Apr 4 16:17:57 2019 +0800 net: hns3: prevent change MTU when resetting When resetting, the changing of MTU is not allowed, so this patch adds checking reset status in hns3_nic_change_mtu() to do that. Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit c4e401e5a934bb0798ebbba98e08dab129695eff Author: Huazhong Tan Date: Thu Apr 4 16:17:56 2019 +0800 net: hns3: check resetting status in hns3_get_stats() hns3_get_stats() should check the resetting status firstly, since the device will be reinitialized when resetting. If the reset has not completed, the hns3_get_stats() may access invalid memory. Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit 389775a6605e040dddea21a778a88eaaa57c068d Author: Jian Shen Date: Thu Apr 4 16:17:55 2019 +0800 net: hns3: add protect when handling mac addr list It used netdev->uc and netdev->mc list in function hns3_recover_hw_addr() and hns3_remove_hw_addr(). We should add protect for them. Fixes: f05e21097121 ("net: hns3: Clear mac vlan table entries when unload driver or function reset") Signed-off-by: Jian Shen Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit ffd0a922cdea3f37438aeb76a154da1775e82626 Author: Huazhong Tan Date: Thu Apr 4 16:17:54 2019 +0800 net: hns3: simplify hclgevf_cmd_csq_clean csq is used as a ring buffer, the value of the desc will be replaced in next use. This patch removes the unnecessary memset, and just updates the next_to_clean. Signed-off-by: Huazhong Tan Signed-off-by: Peng Li Signed-off-by: David S. Miller commit ceca4a5e3223dbb99c062990a64f7a8c32906674 Author: Yunsheng Lin Date: Thu Apr 4 16:17:53 2019 +0800 net: hns3: minor optimization for datapath This patch adds a likely case for hns3_fill_desc and limits the local variables' scope as much as possible, also avoid div operation when the tqp_vector->num_tqps is one. Signed-off-by: Yunsheng Lin Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 0aa3d88a9197fd7176dbaf5db769837be6afdf46 Author: Yunsheng Lin Date: Thu Apr 4 16:17:52 2019 +0800 net: hns3: minor optimization for ring_space This patch optimizes the ring_space by calculating the ring space without calling ring_dist. Also ring_dist is only used by ring_space, so this patch removes it when it is no longer used. Signed-off-by: Yunsheng Lin Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 72110b567479f0282489a9b3747e76d8c67d75f5 Author: Peng Li Date: Thu Apr 4 16:17:51 2019 +0800 net: hns3: return 0 and print warning when hit duplicate MAC When set 2 same MAC to different function of one port, IMP will return error as the later one may modify the origin one. This will cause bond fail for 2 VFs of one port. Driver just print warning and return 0 with this patch, so if set same MAC address, it will return 0 but do not really configure HW. Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 9c3e713020fc8e08e02d6756b401125ab5cb702c Author: liuzhongzhu Date: Thu Apr 4 16:17:50 2019 +0800 net: hns3: modify the VF network port media type acquisition method Method for obtaining the media type of the VF network port periodically, regular tasks will not run until the network port UP. When the network port is DOWN, the network port cannot obtain the media type. Modifies the media type obtained when initializing the VF network port. Signed-off-by: liuzhongzhu Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 962e31bdfce9dfe50af66ffe3b9014f227ffcf3b Author: Yonglong Liu Date: Thu Apr 4 16:17:49 2019 +0800 net: hns3: reduce resources use in kdump kernel When the kdump kernel started, the HNS3 driver fail to register: [14.753340] hns3 0000:7d:00.0: Alloc umv space failed, want 512, get 0 [14.795034] hns3 0000:7d:00.0: add uc mac address fail, ret =-22. By default, the HNS3 driver will use about 512M memory, but usually the reserved memory of kdump kernel is 576M, so the HNS3 driver fail to register. This patch reduces the memory use in kdump kernel to about 16M. And when the kdump kernel starts, we must clear ucast mac address first to avoid add fail. Signed-off-by: Yonglong Liu Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 95dbab9f3606e9f3724fc0e38298830b09a57559 Author: Peng Li Date: Thu Apr 4 16:17:48 2019 +0800 net: hns3: check 1000M half for hns3_ethtool_ops.set_link_ksettings Hip08 SOC does not support 1000M half, this patch adds 1000M half check for hns3_ethtool_ops.set_link_ksettings, so the user can not set 1000M half by ethtool. Signed-off-by: Peng Li Signed-off-by: Huazhong Tan Signed-off-by: David S. Miller commit 4f2f95e9a81299266a4a4f771ac6eb9395528d73 Author: Jan Kotas Date: Mon Apr 1 10:09:42 2019 +0100 gpio: mmio: Fix bgpio_get_set & bgpio_get_set_multiple During my regression testing I noticed the cadence GPIO driver fails on the latest gpio for-next tree. I think the reason is this patch: commit 96cd559817f2 ("Merge branch 'devel' into for-next") Here is a part of the test log: Loopback 8 -> 24 TESTING: gpio: 488: output direction PASSED TESTING: gpio: 504: input direction PASSED TESTING: gpio: 488: 0 PASSED TESTING: gpio: 488 -> 504: 0 PASSED TESTING: gpio: 488: 1 FAILED TESTING: gpio: 488 -> 504: 1 FAILED TESTING: gpio: 488: 0 PASSED TESTING: gpio: 488 -> 504: 0 PASSED It looks like the issue is that gc->bgpio_dir has changed its meaning. It used to be set to the register value (so it was being inverted). Now it's always set to 1 for output and 0 for input. However the bgpio_get_set functions were not updated. So they invert the bit again, which means a wrong register is being accessed. This patch fixes that by removing the unnecessary inversion. Signed-off-by: Jan Kotas Signed-off-by: Linus Walleij commit 542f36159f9466faf4bd8d776fdc79f07c048c42 Author: Maxime Ripard Date: Thu Mar 14 20:32:50 2019 +0100 gpio: Set proper argument value to set_config The gpio_set_config function creates a pinconf configuration for a given pinc_config_param. However, it always uses an arg of 0, which might not be a valid argument for a given param. A good example of that would be the bias parameters, where 0 means that the pull up or down resistor is null, and the pin is directly connected to VCC/GND. The framework uses in some other places the value 1 as a default argument to enable the pull resistor, so let's use the same one here. Signed-off-by: Maxime Ripard Signed-off-by: Linus Walleij commit 58f57f864c034b8e49b7d9637601e813ffac69bd Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 20:50:05 2019 +0100 gpio: omap: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Acked-by: Grygorii Strashko Signed-off-by: Linus Walleij commit 7c68571f77fbc1d2a6ed70dbc9b2c0782d282d43 Author: Arnd Bergmann Date: Thu Mar 7 11:33:32 2019 +0100 gpio: omap: avoid clang warning clang warns about a tentative array definition in the gpio-omap driver: drivers/gpio/gpio-omap.c:1282:34: error: tentative array definition assumed to have one element [-Werror] static const struct of_device_id omap_gpio_match[]; It's best to just reorder the entire file to avoid forward declarations, which lets us use the regular declaration. To do this, the unnecessary CONFIG_OF check must also be removed. Signed-off-by: Arnd Bergmann Reviewed-by: Grygorii Strashko Signed-off-by: Linus Walleij commit 430c1ce304e4e190a89b065aa75d7a0ea725560b Author: Jan Kundrát Date: Thu Mar 7 14:38:04 2019 +0100 pinctrl: mcp23s08: debugfs: remove custom printer The comment for this dbg_show says that it is supposed to return more than what the generic code is showing, including de-glitching. That's wrong because: - this chip does not support deglitching, - the code does not print anything extra compared to the generic handler, - its behavior is different because it skips unrequested GPIOs; the generic code prints their names if they're assigned There is an important difference, though. Previously, dbg_show would re-check some registers to see if they still match what the regmap thinks should be in there. This was semi-useful when develpoing the HW board because it immediately pointed to SPI wiring problem if a CS connection was missing (0xffs are easy to see). However, I do not think that this makes much sense -- and one could always do this in some other way if needed. Signed-off-by: Jan Kundrát Cc: Phil Reid Cc: Linus Walleij Signed-off-by: Linus Walleij commit 77bc0e69c3e264214e5234bcde5654f40fe1e7db Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:55:21 2019 +0100 gpio: zynq: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit 3883de0287d0b9beacb8715854e7f41ed2cbefa5 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:55:20 2019 +0100 drivers: gpio: xlp: devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit 8d86f985ac4118cf3ea6168cd593c8fd96a1d83d Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:55:19 2019 +0100 drivers: gpio: zx: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit 6ff49fba4007f5705af017f56f941e9957baae76 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:55:18 2019 +0100 drivers: gpio: xgene-sb: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit df53665b4f18ed5ee68a4ec814ae3bc9951931ed Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:55:16 2019 +0100 drivers: gpio: vf610: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit 83fa76b65cd2008ca0c657830cdc2a18699672b7 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:55:15 2019 +0100 drivers: gpio: uniphier: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Acked-by: Masahiro Yamada Signed-off-by: Linus Walleij commit f7a6e467eaf1e188c58da741e046e28a178cf274 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:55:14 2019 +0100 drivers: gpio: ts4800: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit aa6c9b91089b40d7efa411cec3de537f324debd8 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:55:13 2019 +0100 drivers: gpio: timberdale: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit a0b81f1ca4323fcb78781a46af0f02b5a0efd47a Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:55:12 2019 +0100 drivers: gpio: tegra: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Acked-by: Thierry Reding Signed-off-by: Linus Walleij commit 5b827ff598b08085e7e8b64fa06420e9dc8ef620 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:55:11 2019 +0100 drivers: gpio: tb10x: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit 6ba7c53b799d2cfbd18d5cc63bc12fb95550ca02 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:55:10 2019 +0100 drivers: gpio: stp-xway: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit c68a520f6a05eef09fb64784625f38b6caf1c93c Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:55:09 2019 +0100 drivers: gpio: sta2x11: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit 7290f152fecc2db1f6262e040f457b723bba8aa1 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:55:07 2019 +0100 drivers: gpio: spear-spics: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit ecbf7c2e8bb323cf96758b3911766058fabc360e Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:55:06 2019 +0100 drivers: gpio: rcar: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Reviewed-by: Geert Uytterhoeven Signed-off-by: Linus Walleij commit 542c25b7a209697f383b781da2762154fb59eaa8 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:55:04 2019 +0100 drivers: gpio: pxa: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit 037ae5bc377859916a298c8656d56bb034e8d219 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 20:48:21 2019 +0100 drivers: gpio: octeon: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit 123ac0e5356cebb7b1bc51d5fb141a74d0a9db43 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:55:01 2019 +0100 drivers: gpio: mxc: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit dc02a0cacb6cfe37ca7c8590e46c1a3c985c3092 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:55:00 2019 +0100 drivers: gpio: mvebu: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit 92d718fd47749ed79a3823947690dede1fd673cc Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:54:59 2019 +0100 drivers: gpio: mt7621: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Reviewed-by: Matthias Brugger Signed-off-by: Linus Walleij commit 329e23f9bc0a28fc58e3910b100358309a2d3156 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:54:58 2019 +0100 drivers: gpio: mb86s7x: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit 47b4916cb4fb691d10bcb82185737c15291a27ac Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:54:57 2019 +0100 drivers: gpio: lpc18xx: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Acked-by: Vladimir Zapolskiy Signed-off-by: Linus Walleij commit 62fe072a24e2a6520802cbc57bd2943e0ab8f640 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:54:56 2019 +0100 drivers: gpio: loongon1: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit 38b1e6805e1d134b3966e283013695af586e09e9 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:54:54 2019 +0100 drivers: gpio: janz-ttl: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit 30f8c521000213db30fca8afac4175e428509fe7 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:54:53 2019 +0100 drivers: gpio: iop: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit 8f701e1dd64f078d616a271de026a4853f127c8f Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:54:52 2019 +0100 drivers: gpio: hlwd: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit b35263db10a78519e07dd459669f8ea73cb15de0 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:54:50 2019 +0100 drivers: gpio: ftgpio010: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit 94a2d4279924ca65df513cb5dbac803607f7279d Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:55:08 2019 +0100 drivers: gpio: sprd: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Reviewed-by: Baolin Wang Signed-off-by: Linus Walleij commit 2a7194e9759586dea43f3b76b2bf37c31e771726 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:54:47 2019 +0100 drivers: gpio: dwap: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit 09ec4735921498e9f3e368e079367225d74ab8a6 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:54:46 2019 +0100 drivers: gpio: clps711x: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit b2c09588f242b1414f4c7535f2bc390e66794743 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:54:45 2019 +0100 drivers: gpio: cadence: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit 72d8cb715477721106bc89248f3964d38cc0a2a0 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:54:44 2019 +0100 drivers: gpio: bcm-kona: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Reviewed-by: Florian Fainelli Signed-off-by: Linus Walleij commit aee70b77fb992a465a420e89a067254a818dd9d9 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:54:43 2019 +0100 drivers: gpio: aspeed: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit bb17a27a5f48f70593e4d29137a258561733171a Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:54:41 2019 +0100 drivers: gpio: amdpt: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit 3faf1e6f7e368a944691a3f9b60f095ca503b283 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 19:54:40 2019 +0100 drivers: gpio: 74xx-mmio: use devm_platform_ioremap_resource() Use the new helper that wraps the calls to platform_get_resource() and devm_ioremap_resource() together. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit c42e34c9fdbaf28857825a4f58834c967c2c967a Author: Enrico Weigelt, metux IT consult Date: Tue Mar 5 01:35:31 2019 +0100 drivers: gpio: Kconfig: pedantic formatting cleanups Align the Kconfig formatting with the vast majority of the Kconfig files, to make it a bit easier / more pleasant to read ;-) Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Linus Walleij commit 7e9fa3c9d3e3d4f5f13f66383666cd0f32ef3b81 Author: Geert Uytterhoeven Date: Thu Mar 28 14:13:49 2019 +0100 gpio: Remove obsolete comment about gpiochip_free_hogs() usage gpiochip_free_hogs() was always called from gpiochip_remove(), not of_gpiochip_remove(). It is now also called from the failure patch in gpiochip_add_data_with_key(). Fixes: f625d4601759f1cf ("gpio: add GPIO hogging mechanism") Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Walleij commit 2ebf47176b7ee1f1a013e76189f2096788d0ad2f Author: Joe Perches Date: Thu Apr 4 08:06:09 2019 -0700 drm/panel: Rocktech jh057n00900: Add terminating newlines to logging These were missing '\n' terminations, add them. Signed-off-by: Joe Perches Reviewed-by: Guido Günther Signed-off-by: Thierry Reding Link: https://patchwork.freedesktop.org/patch/msgid/da6f2344396555034cf2476c8338b0ce1c56e0a7.camel@perches.com commit f69e00bd21aa6a1961c521b6eb199137fcb8a76a Author: Linus Walleij Date: Fri Feb 22 11:14:44 2019 +0100 gpio: mmio: Support two direction registers It turns out that one specific hardware has two direction registers: one to set a GPIO line as input and another one to set a GPIO line as output. So in theory a line can be configured as input and output at the same time. Make the MMIO GPIO helper deal with this: store both registers in the state container, use both in the generic code if present. Synchronize the input register to the output register when we register a GPIO chip, with the output settings taking precedence. Keep the helper variable to detect inverted direction semantics (only direction in register) but augment the code to be more straight-forward for the generic case when setting the registers. Fix some flunky with unreadable direction registers at the same time as we're touching this code. Cc: David Woods Cc: Shravan Kumar Ramani Signed-off-by: Linus Walleij commit c2400ec3b6d15beea34d652ee18962ed13433528 Author: Jani Nikula Date: Wed Apr 3 16:52:36 2019 +0300 drm/i915: add Makefile magic for testing headers are self-contained The below commits added dummy files to test that certain headers are self-contained, i.e. compilable as standalone units: 39e2f501c1b4 ("drm/i915: Split struct intel_context definition to its own header") 3a891a626794 ("drm/i915: Move intel_engine_mask_t around for use by i915_request_types.h") 8b74594aa455 ("drm/i915: Split out i915_priolist_types into its own header") The idea is fine, but the implementation is a bit tedious and inflexible, and does not really scale well. Implement the same in make using autogenerated dummy sources to include the headers. v2 by Chris: - Use patsubst - Add .gitignore - Add clean-files for generated dummy sources v3 by Jani: - Fix make clean - Add the tests to i915-y instead of extra-y v4 by Jani: - quiet_cmd whitespace fix Cc: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Chris Wilson Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190403135236.8398-1-jani.nikula@intel.com commit f16aa97d3f575ea660f49d4698efe1c4a4c60919 Author: Greg Kroah-Hartman Date: Tue Apr 2 16:07:08 2019 +0200 tty: fix up a few remaining files without SPDX identifiers There were a few straggling files under drivers/tty/ that did not have any SPDX identifier either because they entered the tree recently, or they somehow missed the mass-tagging of commit b24413180f56 ("License cleanup: add SPDX GPL-2.0 license identifier to files with no license") This commit follows the same rule as b24413180f56 ("License cleanup: add SPDX GPL-2.0 license identifier to files with no license") where files without any specified license in them fall under GPL-2.0 as the correct license for the individual file. Add that identifier to these remaining files so that we don't have to guess at the license of them in the future. Cc: Jiri Slaby Cc: "David S. Miller" Reviewed-by: Mukesh Ojha Signed-off-by: Greg Kroah-Hartman commit 38c91d1d55fe842bf7edde4469e812b34a711cd8 Author: Greg Kroah-Hartman Date: Tue Apr 2 16:07:07 2019 +0200 tty: add SPDX identifiers to Kconfig and Makefiles There were a few Kconfig and Makefiles under drivers/tty/ that were missing a SPDX identifier. Fix that up so that automated tools can properly classify all kernel source files. Cc: Jiri Slaby Cc: Jiri Kosina Cc: Rob Herring Acked-by: David Sterba Reviewed-by: Mukesh Ojha Signed-off-by: Greg Kroah-Hartman commit 5d777b185f6db92d8e201a7402f7b242958aafad Author: Lingutla Chandrasekhar Date: Mon Apr 1 09:54:41 2019 +0530 arch_topology: Make cpu_capacity sysfs node as read-only If user updates any cpu's cpu_capacity, then the new value is going to be applied to all its online sibling cpus. But this need not to be correct always, as sibling cpus (in ARM, same micro architecture cpus) would have different cpu_capacity with different performance characteristics. So, updating the user supplied cpu_capacity to all cpu siblings is not correct. And another problem is, current code assumes that 'all cpus in a cluster or with same package_id (core_siblings), would have same cpu_capacity'. But with commit '5bdd2b3f0f8 ("arm64: topology: add support to remove cpu topology sibling masks")', when a cpu hotplugged out, the cpu information gets cleared in its sibling cpus. So, user supplied cpu_capacity would be applied to only online sibling cpus at the time. After that, if any cpu hotplugged in, it would have different cpu_capacity than its siblings, which breaks the above assumption. So, instead of mucking around the core sibling mask for user supplied value, use device-tree to set cpu capacity. And make the cpu_capacity node as read-only to know the asymmetry between cpus in the system. While at it, remove cpu_scale_mutex usage, which used for sysfs write protection. Tested-by: Dietmar Eggemann Tested-by: Quentin Perret Reviewed-by: Quentin Perret Acked-by: Sudeep Holla Signed-off-by: Lingutla Chandrasekhar Signed-off-by: Greg Kroah-Hartman commit 13bac55ef7aef8ecb67ff3005d24b05a464d28ea Author: Keith Busch Date: Mon Mar 11 14:56:06 2019 -0600 doc/mm: New documentation for memory performance Platforms may provide system memory where some physical address ranges perform differently than others, or is cached by the system on the memory side. Add documentation describing a high level overview of such systems and the perforamnce and caching attributes the kernel provides for applications wishing to query this information. Reviewed-by: Mike Rapoport Reviewed-by: Jonathan Cameron Signed-off-by: Keith Busch Tested-by: Brice Goglin Signed-off-by: Greg Kroah-Hartman commit d9e8844c7d8165d97848950ae6bf66b2be86ef06 Author: Keith Busch Date: Mon Mar 11 14:56:05 2019 -0600 acpi/hmat: Register memory side cache attributes Register memory side cache attributes with the memory's node if HMAT provides the side cache iniformation table. Acked-by: Rafael J. Wysocki Signed-off-by: Keith Busch Tested-by: Brice Goglin Signed-off-by: Greg Kroah-Hartman commit 8d59f5a2ca765f65fd86db86f233678c3770819f Author: Keith Busch Date: Mon Mar 11 14:56:04 2019 -0600 acpi/hmat: Register performance attributes Save the best performance access attributes and register these with the memory's node if HMAT provides the locality table. While HMAT does make it possible to know performance for all possible initiator-target pairings, we export only the local pairings at this time. Acked-by: Rafael J. Wysocki Signed-off-by: Keith Busch Tested-by: Brice Goglin Signed-off-by: Greg Kroah-Hartman commit 665ac7e92757fb74d249b2817dd91b3d9439d0a0 Author: Keith Busch Date: Mon Mar 11 14:56:03 2019 -0600 acpi/hmat: Register processor domain to its memory If the HMAT Subsystem Address Range provides a valid processor proximity domain for a memory domain, or a processor domain matches the performance access of the valid processor proximity domain, register the memory target with that initiator so this relationship will be visible under the node's sysfs directory. Since HMAT requires valid address ranges have an equivalent SRAT entry, verify each memory target satisfies this requirement. Reviewed-by: Jonathan Cameron Signed-off-by: Keith Busch Acked-by: Rafael J. Wysocki Reviewed-by: Brice Goglin Tested-by: Brice Goglin Signed-off-by: Greg Kroah-Hartman commit acc02a109b0497e917c83f986a89c51e47d0022c Author: Keith Busch Date: Mon Mar 11 14:56:02 2019 -0600 node: Add memory-side caching attributes System memory may have caches to help improve access speed to frequently requested address ranges. While the system provided cache is transparent to the software accessing these memory ranges, applications can optimize their own access based on cache attributes. Provide a new API for the kernel to register these memory-side caches under the memory node that provides it. The new sysfs representation is modeled from the existing cpu cacheinfo attributes, as seen from /sys/devices/system/cpu//cache/. Unlike CPU cacheinfo though, the node cache level is reported from the view of the memory. A higher level number is nearer to the CPU, while lower levels are closer to the last level memory. The exported attributes are the cache size, the line size, associativity indexing, and write back policy, and add the attributes for the system memory caches to sysfs stable documentation. Signed-off-by: Keith Busch Reviewed-by: Rafael J. Wysocki Reviewed-by: Brice Goglin Tested-by: Brice Goglin Signed-off-by: Greg Kroah-Hartman commit e1cf33aafb8462c7d0a0e6349925870316f040ee Author: Keith Busch Date: Mon Mar 11 14:56:01 2019 -0600 node: Add heterogenous memory access attributes Heterogeneous memory systems provide memory nodes with different latency and bandwidth performance attributes. Provide a new kernel interface for subsystems to register the attributes under the memory target node's initiator access class. If the system provides this information, applications may query these attributes when deciding which node to request memory. The following example shows the new sysfs hierarchy for a node exporting performance attributes: # tree -P "read*|write*"/sys/devices/system/node/nodeY/accessZ/initiators/ /sys/devices/system/node/nodeY/accessZ/initiators/ |-- read_bandwidth |-- read_latency |-- write_bandwidth `-- write_latency The bandwidth is exported as MB/s and latency is reported in nanoseconds. The values are taken from the platform as reported by the manufacturer. Memory accesses from an initiator node that is not one of the memory's access "Z" initiator nodes linked in the same directory may observe different performance than reported here. When a subsystem makes use of this interface, initiators of a different access number may not have the same performance relative to initiators in other access numbers, or omitted from the any access class' initiators. Descriptions for memory access initiator performance access attributes are added to sysfs stable documentation. Acked-by: Jonathan Cameron Tested-by: Jonathan Cameron Signed-off-by: Keith Busch Reviewed-by: Rafael J. Wysocki Tested-by: Brice Goglin Signed-off-by: Greg Kroah-Hartman commit 08d9dbe72b1f899468b2b34f9309e88a84f440f2 Author: Keith Busch Date: Mon Mar 11 14:56:00 2019 -0600 node: Link memory nodes to their compute nodes Systems may be constructed with various specialized nodes. Some nodes may provide memory, some provide compute devices that access and use that memory, and others may provide both. Nodes that provide memory are referred to as memory targets, and nodes that can initiate memory access are referred to as memory initiators. Memory targets will often have varying access characteristics from different initiators, and platforms may have ways to express those relationships. In preparation for these systems, provide interfaces for the kernel to export the memory relationship among different nodes memory targets and their initiators with symlinks to each other. If a system provides access locality for each initiator-target pair, nodes may be grouped into ranked access classes relative to other nodes. The new interface allows a subsystem to register relationships of varying classes if available and desired to be exported. A memory initiator may have multiple memory targets in the same access class. The target memory's initiators in a given class indicate the nodes access characteristics share the same performance relative to other linked initiator nodes. Each target within an initiator's access class, though, do not necessarily perform the same as each other. A memory target node may have multiple memory initiators. All linked initiators in a target's class have the same access characteristics to that target. The following example show the nodes' new sysfs hierarchy for a memory target node 'Y' with access class 0 from initiator node 'X': # symlinks -v /sys/devices/system/node/nodeX/access0/ relative: /sys/devices/system/node/nodeX/access0/targets/nodeY -> ../../nodeY # symlinks -v /sys/devices/system/node/nodeY/access0/ relative: /sys/devices/system/node/nodeY/access0/initiators/nodeX -> ../../nodeX The new attributes are added to the sysfs stable documentation. Reviewed-by: Jonathan Cameron Signed-off-by: Keith Busch Reviewed-by: Rafael J. Wysocki Tested-by: Brice Goglin Signed-off-by: Greg Kroah-Hartman commit 3accf7ae37a96c3bf4b51999f3c395ac5ffcd6d4 Author: Keith Busch Date: Mon Mar 11 14:55:59 2019 -0600 acpi/hmat: Parse and report heterogeneous memory Systems may provide different memory types and export this information in the ACPI Heterogeneous Memory Attribute Table (HMAT). Parse these tables provided by the platform and report the memory access and caching attributes to the kernel messages. Reviewed-by: Rafael J. Wysocki Acked-by: Jonathan Cameron Tested-by: Jonathan Cameron Signed-off-by: Keith Busch Tested-by: Brice Goglin Signed-off-by: Greg Kroah-Hartman commit 3bc0e8eb179deebf1c06f5c4261d362c24b26ce1 Author: Keith Busch Date: Mon Mar 11 14:55:58 2019 -0600 acpi: Add HMAT to generic parsing tables The Heterogeneous Memory Attribute Table (HMAT) header has different field lengths than the existing parsing uses. Add the HMAT type to the parsing rules so it may be generically parsed. Reviewed-by: Rafael J. Wysocki Acked-by: Jonathan Cameron Tested-by: Jonathan Cameron Signed-off-by: Keith Busch Tested-by: Brice Goglin Signed-off-by: Greg Kroah-Hartman commit 60574d1e05b094d222162260dd9cac49f4d0996a Author: Keith Busch Date: Mon Mar 11 14:55:57 2019 -0600 acpi: Create subtable parsing infrastructure Parsing entries in an ACPI table had assumed a generic header structure. There is no standard ACPI header, though, so less common layouts with different field sizes required custom parsers to go through their subtable entry list. Create the infrastructure for adding different table types so parsing the entries array may be more reused for all ACPI system tables and the common code doesn't need to be duplicated. Reviewed-by: Rafael J. Wysocki Acked-by: Jonathan Cameron Tested-by: Jonathan Cameron Signed-off-by: Keith Busch Tested-by: Brice Goglin Signed-off-by: Greg Kroah-Hartman commit 95336d4cb588860283047e01050ae41993e0147d Author: Gustavo A. R. Silva Date: Wed Apr 3 12:02:36 2019 -0500 qtnfmac: replace qtnf_cmd_acl_data_size() with struct_size() One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example: struct foo { int stuff; struct boo entry[]; }; size = sizeof(struct foo) + count * sizeof(struct boo); instance = kzalloc(size, GFP_KERNEL) Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper: size = struct_size(instance, entry, count); or instance = kzalloc(struct_size(instance, entry, count), GFP_KERNEL) Based on the above, replace qtnf_cmd_acl_data_size() with the new struct_size() helper. This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Reviewed-by: Sergey Matyukevich Signed-off-by: Kalle Valo commit fd8a44bd5b76dc77133f814dd63d414d49dc74c0 Author: Kishon Vijay Abraham I Date: Thu Mar 21 15:29:27 2019 +0530 PCI: dwc: Remove default MSI initialization for platform specific MSI chips Platforms which populate msi_host_init() have their own MSI controller logic. Writing to MSI control registers on platforms which do not use Designware's MSI controller logic might have side effects. To be safe, do not write to MSI control registers if the platform uses its own MSI controller logic instead of Designware's MSI one. Signed-off-by: Kishon Vijay Abraham I [lorenzo.pieralisi@arm.com: updated commit log] Signed-off-by: Lorenzo Pieralisi commit dad5258999e91ba368dbdd31ecac94e095acb844 Author: Kishon Vijay Abraham I Date: Thu Mar 21 15:29:26 2019 +0530 PCI: dwc: Remove Keystone specific dw_pcie_host_ops Now that Keystone started using its own msi_irq_chip, remove Keystone specific callback functions defined in dw_pcie_host_ops. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit 117c3b60bd5372ec23f8c1a9652ad78dc2b9982a Author: Kishon Vijay Abraham I Date: Thu Mar 21 15:29:25 2019 +0530 PCI: keystone: Use Keystone specific msi_irq_chip Use Keystone specific msi_irq_chip to configure the MSI controller logic in the PCIe keystone wrapper instead of using the default Designware msi_irq chip (dw_pci_msi_bottom_irq_chip) with callback functions for configuring the Keystone MSI controller. This will help to remove Keystone specific callback functions added in dw_pcie_host_ops. Move the default msi_irq_chip assignment to dw_pcie_host_init since platforms that doesn't use the default msi_irq_chip will assign msi_irq_chip in the msi_host_init() callback. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit 9f67437b3a085865fbf5c2d0cbf60fb1b465411c Author: Kishon Vijay Abraham I Date: Thu Mar 21 15:29:24 2019 +0530 PCI: dwc: Add support to use non default msi_irq_chip Platforms using DesignWare IP use dw_pci_msi_bottom_irq_chip for configuring the MSI controller logic within the DesignWare IP. However certain platforms like Keystone (K2G) which uses DesignWare IP have their own MSI controller logic. For handling such platforms, the irqchip ops use msi_irq_ack(), msi_set_irq(), msi_clear_irq() callback functions. Add support to use different msi_irq_chip with default set to dw_pci_msi_bottom_irq_chip. This is in preparation to get rid of msi_irq_ack(), msi_set_irq(), msi_clear_irq() and other Keystone specific dw_pcie_host_ops. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit 66c10eca595293cd7a87afea112ca97179924d2a Author: Kishon Vijay Abraham I Date: Thu Mar 21 15:29:23 2019 +0530 PCI: keystone: Cleanup ks_pcie_msi_irq_handler() ks_pcie_msi_irq_handler() invokes ks_pcie_handle_msi_irq() for handling the interrupts. Having two functions for handling the interrupt was used when keystone PCIe driver was implemented using two files but with commit b492aca35c98 ("PCI: keystone: Merge pci-keystone-dw.c and pci-keystone.c"), which merged the keystone PCIe driver to use a single file, two functions for handling the interrupt handler are not required. Handle MSI interrupt in a single interrupt handler here. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit f6f2900ca9b7c79d304e0cc264b010ed1c86a6b1 Author: Kishon Vijay Abraham I Date: Thu Mar 21 15:29:22 2019 +0530 PCI: keystone: Use hwirq to get the MSI IRQ number offset ks_pcie_msi_irq_handler() uses 'virq' to get the IRQ number offset. This offset is used to get the correct MSI_IRQ_STATUS register corresponding to the IRQ line that raised the interrupt. There is no guarantee that 'virq' assigned for consecutive hardware IRQ will be contiguous and this might get us an incorrect IRQ number offset. Fix it here by using 'hwirq' to get the IRQ number offset. Since we don't store the 'virq' numbers of all the IRQ numbers, stop checking if irq count is greater than MAX_MSI_HOST_IRQS and remove MAX_MSI_HOST_IRQS. Link: https://lkml.kernel.org/r/bb081d21-7c03-0357-4294-7e92d95d838c@arm.com Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit 1146c2953dcbd5eb01e415f528015206479e8fe3 Author: Kishon Vijay Abraham I Date: Thu Mar 21 15:29:21 2019 +0530 PCI: keystone: Add separate functions for configuring MSI and legacy interrupt ks_pcie_get_irq_controller_info() is used to configure both MSI and legacy interrupt. This will prevent MSI or legacy interrupt specific intializations. Add separate functions to configure MSI and legacy interrupts. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit 1beb55126937aff7601ddfca8df29870d29f2d86 Author: Kishon Vijay Abraham I Date: Thu Mar 21 15:29:20 2019 +0530 PCI: keystone: Cleanup interrupt related macros No functional change. Change both MSI interrupt and legacy interrupt related macros to take an additional argument in order to return the correct register offset. Signed-off-by: Kishon Vijay Abraham I Signed-off-by: Lorenzo Pieralisi commit 24062fe85860debfdae0eeaa495f27c9971ec163 Author: Shameer Kolothum Date: Tue Mar 26 15:17:53 2019 +0000 perf/smmuv3: Enable HiSilicon Erratum 162001800 quirk HiSilicon erratum 162001800 describes the limitation of SMMUv3 PMCG implementation on HiSilicon Hip08 platforms. On these platforms, the PMCG event counter registers (SMMU_PMCG_EVCNTRn) are read only and as a result it is not possible to set the initial counter period value on event monitor start. To work around this, the current value of the counter is read and used for delta calculations. OEM information from ACPI header is used to identify the affected hardware platforms. Signed-off-by: Shameer Kolothum Reviewed-by: Hanjun Guo Reviewed-by: Robin Murphy Acked-by: Lorenzo Pieralisi [will: update silicon-errata.txt and add reason string to acpi match] Signed-off-by: Will Deacon commit f202cdab3b48d8c2c1846c938ea69cb8aa897699 Author: Shameer Kolothum Date: Tue Mar 26 15:17:52 2019 +0000 perf/smmuv3: Add MSI irq support This adds support for MSI-based counter overflow interrupt. Signed-off-by: Shameer Kolothum Reviewed-by: Robin Murphy Signed-off-by: Will Deacon commit 7d839b4b9e00645e49345d6ce5dfa8edf53c1a21 Author: Neil Leeder Date: Tue Mar 26 15:17:51 2019 +0000 perf/smmuv3: Add arm64 smmuv3 pmu driver Adds a new driver to support the SMMUv3 PMU and add it into the perf events framework. Each SMMU node may have multiple PMUs associated with it, each of which may support different events. SMMUv3 PMCG devices are named as smmuv3_pmcg_ where is the physical page address of the SMMU PMCG wrapped to 4K boundary. For example, the PMCG at 0xff88840000 is named smmuv3_pmcg_ff88840 Filtering by stream id is done by specifying filtering parameters with the event. options are: filter_enable - 0 = no filtering, 1 = filtering enabled filter_span - 0 = exact match, 1 = pattern match filter_stream_id - pattern to filter against Example: perf stat -e smmuv3_pmcg_ff88840/transaction,filter_enable=1, filter_span=1,filter_stream_id=0x42/ -a netperf Applies filter pattern 0x42 to transaction events, which means events matching stream ids 0x42 & 0x43 are counted as only upper StreamID bits are required to match the given filter. Further filtering information is available in the SMMU documentation. SMMU events are not attributable to a CPU, so task mode and sampling are not supported. Signed-off-by: Neil Leeder Signed-off-by: Shameer Kolothum Reviewed-by: Robin Murphy [will: fold in review feedback from Robin] [will: rewrite Kconfig text and allow building as a module] Signed-off-by: Will Deacon commit 7cdd4dc58d282904629c9131bf4a2ff1af34f442 Author: Evan Quan Date: Thu Mar 28 09:46:36 2019 +0800 drm/amd/powerplay: check for invalid profile mode before switching Need to check for invalid profile mode settings before determining to switch to that. Signed-off-by: Evan Quan Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 2b24e6f63ac9e817630424c6d8f008256348dfc4 Author: Johannes Thumshirn Date: Wed Apr 3 11:15:19 2019 +0200 block: bio: ensure newly added bio flags don't override BVEC_POOL_IDX With the introduction of BIO_NO_PAGE_REF we've used up all available bits in bio::bi_flags. Convert the defines of the flags to an enum and add a BUILD_BUG_ON() call to make sure no-one adds a new one and thus overrides the BVEC_POOL_IDX causing crashes. Reviewed-by: Ming Lei Reviewed-by: Hannes Reinecke Reviewed-by: Bart Van Assche Reviewed-by: Christoph Hellwig Signed-off-by: Johannes Thumshirn Signed-off-by: Jens Axboe commit 1889ae50a906411b38282f11a5ea9a0375bf867f Author: YueHaibing Date: Thu Mar 21 23:09:09 2019 +0800 pinctrl: artpec6: Make two functions static Fix sparse warnings: drivers/pinctrl/pinctrl-artpec6.c:691:5: warning: symbol 'artpec6_pmx_enable' was not declared. Should it be static? drivers/pinctrl/pinctrl-artpec6.c:705:6: warning: symbol 'artpec6_pmx_disable' was not declared. Should it be static? Signed-off-by: YueHaibing Acked-by: Jesper Nilsson Reviewed-by: Mukesh Ojha Signed-off-by: Linus Walleij commit 8fb44c1d82588860e84b7ca4fe2e836de6aa2585 Author: Chris Wilson Date: Thu Apr 4 08:33:57 2019 +0100 drm/i915: Fixup kerneldoc for intel_cdclk_needs_cd2x_update drivers/gpu/drm/i915/intel_cdclk.c:2116: warning: Function parameter or member 'dev_priv' not described in 'intel_cdclk_needs_cd2x_update' Signed-off-by: Chris Wilson Cc: Ville Syrjälä Cc: Abhay Kumar Cc: Imre Deak Reviewed-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190404073357.18795-1-chris@chris-wilson.co.uk commit 6960d9cfc721d9e577631b9057c07eecea8bdc0f Author: Chris Wilson Date: Thu Apr 4 11:19:14 2019 +0100 drm/i915: Be precise in types for i915_gem_busy Mixing u8 and -1u together leads to zero-extended integer expansion, and comparing 0x000000ff against 0xffffffff, causing us to report a mixed uabi-class request as not busy. The input flag is a u8, and we want to generate a u32 uABI response, mark our functions so. Fixes: c8b502422bfe ("drm/i915: Remove last traces of exec-id (GEM_BUSY)") Testcase: igt/gem_exec_balance/busy Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190404101914.7231-1-chris@chris-wilson.co.uk commit 3846e6a06160053d7631594fa60fd55dff286b54 Merge: d1ff8d07166b 0a042b355e60 Author: Linus Walleij Date: Thu Apr 4 22:20:59 2019 +0700 Merge tag 'sh-pfc-for-v5.2-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel pinctrl: sh-pfc: Updates for v5.2 - Add HSCIF (serial) pin groups on R-Car H1, - Add I2C[035] pin groups on R-Car M3-N, - Add CANFD pin groups on RZ/G2M and RZ/G2E, - Retain SDHI/MMC clock return path delay configuration across suspend/resume on R-Car Gen3, - More validation of pinmux tables at build and runtime, including compile-test coverage of all drivers, - Small fixes, improvements, and cleanups. commit 28d618e9ab86f26a31af0b235ced55beb3e343c8 Author: Joonas Lahtinen Date: Thu Apr 4 17:43:58 2019 +0300 drm/i915: Update DRIVER_DATE to 20190404 Signed-off-by: Joonas Lahtinen commit e67b2c715415b121339049b630f0b4e1ede888dc Author: Daniel T. Lee Date: Thu Apr 4 07:17:56 2019 +0900 samples, selftests/bpf: add NULL check for ksym_search Since, ksym_search added with verification logic for symbols existence, it could return NULL when the kernel symbols are not loaded. This commit will add NULL check logic after ksym_search. Signed-off-by: Daniel T. Lee Signed-off-by: Daniel Borkmann commit 0979ff7992fb6f4eb837995b12f4071dcafebd2d Author: Daniel T. Lee Date: Thu Apr 4 07:17:55 2019 +0900 selftests/bpf: ksym_search won't check symbols exists Currently, ksym_search located at trace_helpers won't check symbols are existing or not. In ksym_search, when symbol is not found, it will return &syms[0](_stext). But when the kernel symbols are not loaded, it will return NULL, which is not a desired action. This commit will add verification logic whether symbols are loaded prior to the symbol search. Signed-off-by: Daniel T. Lee Signed-off-by: Daniel Borkmann commit e04232c38190ec4485c62ceff94cf2b1c0caba20 Author: Olivier Moysan Date: Wed Apr 3 15:23:37 2019 +0200 ASoC: cs42l51: add adc volume control Add ADC boost volume control for CS42L51 codec. Signed-off-by: Olivier Moysan Signed-off-by: Mark Brown commit 75a714823e89ceeb168092b4c4d0a3f52b415461 Author: Olivier Moysan Date: Wed Apr 3 15:23:36 2019 +0200 ASoC: cs42l51: add power management Add sleep PM callbacks to support system low power modes. Signed-off-by: Olivier Moysan Signed-off-by: Mark Brown commit 2f7c4ce09a43457666592f36e18a5db58cca86a0 Author: Olivier Moysan Date: Wed Apr 3 15:23:34 2019 +0200 ASoC: cs42l51: add support of master mode Add support of master mode for cs42l51 cirrus audio codec. Signed-off-by: Olivier Moysan Signed-off-by: Mark Brown commit 11b9cd748e3107df5c5e040a4daa986a3c6d8b75 Author: Olivier Moysan Date: Wed Apr 3 15:23:33 2019 +0200 ASoC: cs42l51: add reset management Manage cs42l51 audio codec reset pin. Signed-off-by: Olivier Moysan Signed-off-by: Mark Brown commit f77b6ea70f3a672092e2d7eca2e67be09c0b8c54 Author: Olivier Moysan Date: Wed Apr 3 15:23:32 2019 +0200 ASoC: cs42l51: add regulator management Add cs42l51 audio codec power supply management through regulator framework. Signed-off-by: Olivier Moysan Signed-off-by: Mark Brown commit 26bde6ad6d59b2e1347995de6198205ef6138b52 Author: Olivier Moysan Date: Wed Apr 3 15:23:31 2019 +0200 ASoC: dt-bindings: update cs42l51 bindings Add compatible, reg, regulator, and reset to Cirrus CS42L51 audio codec bindings. Signed-off-by: Olivier Moysan Signed-off-by: Mark Brown commit aa612f2b006aa3552871dabcd6a8e90e33f65e09 Author: Charles Keepax Date: Thu Apr 4 13:56:01 2019 +0100 ASoC: wm_adsp: Avoid calling snd_compr_stop_error from WDT expiry It is unsafe to call snd_compr_stop_error from outside of the compressed ops. Firstly the compressed device lock needs to be held and secondly it queues error work to issue a trigger stop which should not happen after the stream has been freed. To avoid these issues use the same trick used for the IRQ handling, simply send a snd_compr_fragment_elapsed to cause user-space to wake on the poll, then report the error when user-space issues the pointer request after it wakes. Fixes: a2bcbc1b9ac2f ("ASoC: wm_adsp: Shutdown any compressed streams on DSP watchdog timeout") Signed-off-by: Charles Keepax Signed-off-by: Mark Brown Cc: stable@kernel.org commit fdf34366d3242d5eeffa1b4d9a3497ebf30a4ecb Author: Jerome Brunet Date: Thu Apr 4 13:50:15 2019 +0200 ASoC: max98357a: add missing supported rates According the publicly available datasheet (and some test) the max98357a also supports 32, 44.1 and 88.2 kHz sample rate. Signed-off-by: Jerome Brunet Signed-off-by: Mark Brown commit d3e6e374566e1154820a9a3dc82f7eef646fcf95 Author: Annaliese McDermond Date: Wed Apr 3 21:01:55 2019 -0700 ASoC: tlv320aic32x4: Add Playback PowerTune Controls PowerTune controls the power level of the chip. On playback this indirectly controls things like the gain of the various output amplifiers. This can allow for the decrease of output levels from the codec. This adds controls for those power levels to the driver. Signed-off-by: Annaliese McDermond Signed-off-by: Mark Brown commit 44ceee847e27c828f2f1ef4e400e6bc0c8d04de3 Author: Annaliese McDermond Date: Wed Apr 3 21:01:54 2019 -0700 ASoC: tlv320aic32x4: Add Switch for Setting Common Mode Voltage Add a switch for setting common mode voltage. This can allow for higher drive levels on the amplifier outputs. Signed-off-by: Annaliese McDermond Signed-off-by: Mark Brown commit 1537ad15c9c59ce852748578eb5633139053e86b Author: Ondrej Mosnacek Date: Wed Apr 3 09:29:41 2019 +0200 kernfs: fix xattr name handling in LSM helpers The implementation of kernfs_security_xattr_*() helpers reuses the kernfs_node_xattr_*() functions, which take the suffix of the xattr name and extract full xattr name from it using xattr_full_name(). However, this function relies on the fact that the suffix passed to xattr handlers from VFS is always constructed from the full name by just incerementing the pointer. This doesn't necessarily hold for the callers of kernfs_security_xattr_*(), so their usage will easily lead to out-of-bounds access. Fix this by moving the xattr name reconstruction to the VFS xattr handlers and replacing the kernfs_security_xattr_*() helpers with more general kernfs_xattr_*() helpers that take full xattr name and allow accessing all kernfs node's xattrs. Reported-by: kernel test robot Fixes: b230d5aba2d1 ("LSM: add new hook for kernfs node initialization") Fixes: ec882da5cda9 ("selinux: implement the kernfs_init_security hook") Signed-off-by: Ondrej Mosnacek Signed-off-by: Paul Moore commit 24e516049360eda85cf3fe9903221d43886c2689 Author: Neil Leeder Date: Tue Mar 26 15:17:50 2019 +0000 ACPI/IORT: Add support for PMCG Add support for the SMMU Performance Monitor Counter Group information from ACPI. This is in preparation for its use in the SMMUv3 PMU driver. Signed-off-by: Neil Leeder Signed-off-by: Hanjun Guo Signed-off-by: Shameer Kolothum Reviewed-by: Robin Murphy Acked-by: Lorenzo Pieralisi Signed-off-by: Will Deacon commit 2eb3c3e6eafb8f3c243b7640335b24da0f340821 Author: Colin Ian King Date: Thu Apr 4 08:58:57 2019 +0100 HID: intel-ish-hid: fix spelling mistake "multipe" -> "multiple" There is a spelling mistake in a dev_err message, fix it. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Signed-off-by: Benjamin Tissoires commit 54303a1aef95b0cbd6a04c3b729c93da7a58e0f7 Author: Oded Gabbay Date: Thu Apr 4 14:42:26 2019 +0300 habanalabs: split mmu/no-mmu code paths in memory ioctl To make the memory ioctl code more readable, this patch moves the legacy/debug code path of mmu-disabled to a separate function, which is called (if necessary) from the main memory ioctl function. Signed-off-by: Oded Gabbay commit 295938406cbcb541de8893d0280a2265c41e506d Author: Oded Gabbay Date: Thu Apr 4 14:33:34 2019 +0300 habanalabs: ASIC_AUTO_DETECT enum value is redundant This patch removes the enum value of ASIC_AUTO_DETECT because we can use the validity of the pdev variable to know whether we have a real device or a simulator. For a real device, we detect the asic type from the device ID while for a simulator, the simulator code calls create_hdev() with the specified ASIC type. Set ASIC_INVALID as the first option in the enum to make sure that no other enum value will receive the value 0 (which indicates a non-existing entry in the simulator array). Signed-off-by: Oded Gabbay commit c7252a6532995fe6971295b7878e5a74b4f85d0c Author: Leon Romanovsky Date: Tue Apr 2 15:39:55 2019 +0300 RDMA/cm: Remove useless zeroing of static global variable Static global variables are initialized to zero by C standard, there is no need to zero them again. Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit d2c33370ae73105c7c7df8f7048d20653991b4cb Author: Potnuri Bharat Teja Date: Tue Apr 2 14:46:11 2019 +0530 RDMA/iw_cxgb4: Always disconnect when QP is transitioning to TERMINATE state On receiving a TERM from tje peer, Host moves the QP to TERMINATE state and then moves the adapter out of RDMA mode. After issuing a TERM, peer issues a CLOSE and at this point of time if the connectivity between peer and host is lost for a significant amount of time, the QP remains in TERMINATE state. Therefore c4iw_modify_qp() needs to initiate a close on entering terminate state. Signed-off-by: Potnuri Bharat Teja Signed-off-by: Jason Gunthorpe commit 0f51427bd0976fc4824ca16e73b7985f224cbbf8 Author: Leon Romanovsky Date: Mon Feb 25 08:56:14 2019 +0200 RDMA/mlx5: Cleanup WQE page fault handler Refactor the page fault handler to be more readable and extensible, this cleanup was triggered by the error reported below. The code structure made it unclear to the automatic tools to identify that such a flow is not possible in real life because "requestor != NULL" means that "qp != NULL" too. drivers/infiniband/hw/mlx5/odp.c:1254 mlx5_ib_mr_wqe_pfault_handler() error: we previously assumed 'qp' could be null (see line 1230) Fixes: 08100fad5cac ("IB/mlx5: Add ODP SRQ support") Reported-by: Dan Carpenter Reviewed-by: Moni Shoua Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit a27beb5820d1a52b1e2863a4ae5545a1dd4ab35a Author: Wolfram Sang Date: Sun Mar 17 10:34:45 2019 +0100 PCI: rcar: Do not shadow the 'irq' variable The sparse tool rightfully detects: drivers/pci/controller/pcie-rcar.c:741:30: warning: symbol 'irq' shadows an earlier one Fix it now to avoid future surprises and for good coding style. No functional change intended. Signed-off-by: Wolfram Sang [lorenzo.pieralisi@arm.com: commit log refactoring] Signed-off-by: Lorenzo Pieralisi Reviewed-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit f0d14edd2ba43b995bef4dd5da5ffe0ae19321a1 Author: Kangjie Lu Date: Fri Mar 15 02:29:43 2019 -0500 PCI: rcar: Fix a potential NULL pointer dereference In case __get_free_pages() fails and returns NULL, fix the return value to -ENOMEM and release resources to avoid dereferencing a NULL pointer. Signed-off-by: Kangjie Lu Signed-off-by: Lorenzo Pieralisi Reviewed-by: Ulrich Hecht Reviewed-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit 954b4b752a4c4e963b017ed8cef4c453c5ed308d Author: Marek Vasut Date: Mon Mar 25 12:41:01 2019 +0100 PCI: rcar: Fix 64bit MSI message address handling The MSI message address in the RC address space can be 64 bit. The R-Car PCIe RC supports such a 64bit MSI message address as well. The code currently uses virt_to_phys(__get_free_pages()) to obtain a reserved page for the MSI message address, and the return value of which can be a 64 bit physical address on 64 bit system. However, the driver only programs PCIEMSIALR register with the bottom 32 bits of the virt_to_phys(__get_free_pages()) return value and does not program the top 32 bits into PCIEMSIAUR, but rather programs the PCIEMSIAUR register with 0x0. This worked fine on older 32 bit R-Car SoCs, however may fail on new 64 bit R-Car SoCs. Since from a PCIe controller perspective, an inbound MSI is a memory write to a special address (in case of this controller, defined by the value in PCIEMSIAUR:PCIEMSIALR), which triggers an interrupt, but never hits the DRAM _and_ because allocation of an MSI by a PCIe card driver obtains the MSI message address by reading PCIEMSIAUR:PCIEMSIALR in rcar_msi_setup_irqs(), incorrectly programmed PCIEMSIAUR cannot cause memory corruption or other issues. There is however the possibility that if virt_to_phys(__get_free_pages()) returned address above the 32bit boundary _and_ PCIEMSIAUR was programmed to 0x0 _and_ if the system had physical RAM at the address matching the value of PCIEMSIALR, a PCIe card driver could allocate a buffer with a physical address matching the value of PCIEMSIALR and a remote write to such a buffer by a PCIe card would trigger a spurious MSI. Fixes: e015f88c368d ("PCI: rcar: Add support for R-Car H3 to pcie-rcar") Signed-off-by: Marek Vasut Signed-off-by: Lorenzo Pieralisi Reviewed-by: Simon Horman Reviewed-by: Geert Uytterhoeven Cc: Geert Uytterhoeven Cc: Phil Edworthy Cc: Simon Horman Cc: Wolfram Sang Cc: linux-renesas-soc@vger.kernel.org commit 42a58f73e9ea4002692732d45a6ea1a0df9e125b Author: Marek Vasut Date: Mon Mar 25 12:41:00 2019 +0100 PCI: rcar: Clean up debug messages Drop useless casts from debug messages, they are no longer needed due to the data type cleanup. Signed-off-by: Marek Vasut Signed-off-by: Lorenzo Pieralisi Reviewed-by: Simon Horman Reviewed-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Cc: Geert Uytterhoeven Cc: Phil Edworthy Cc: Simon Horman Cc: Wolfram Sang Cc: linux-renesas-soc@vger.kernel.org commit 29ffa6db40430e7c89fb1fc37cd78a90b27d4d2a Author: Marek Vasut Date: Mon Mar 25 12:40:59 2019 +0100 PCI: rcar: Replace (8 * n) with (BITS_PER_BYTE * n) Replace (8 * n) with (BITS_PER_BYTE * n) to make bit shift operations consistent. No functional change. Signed-off-by: Marek Vasut Signed-off-by: Lorenzo Pieralisi Reviewed-by: Simon Horman Reviewed-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Cc: Geert Uytterhoeven Cc: Phil Edworthy Cc: Simon Horman Cc: Wolfram Sang Cc: linux-renesas-soc@vger.kernel.org commit d8fa26609b91394f9f2d17ae6956a2c3e3632fbb Author: Marek Vasut Date: Mon Mar 25 12:40:58 2019 +0100 PCI: rcar: Replace various variable types with unsigned ones for register values Replace various variable types with u32 or unsigned int type for variables holding register values, since the registers are 32bit. Note that rcar_pcie_msi_irq() still uses various variable types because both find_first_bit() and __fls() require various variable types as an argument. Signed-off-by: Marek Vasut Signed-off-by: Lorenzo Pieralisi Reviewed-by: Simon Horman Reviewed-by: Geert Uytterhoeven Cc: Geert Uytterhoeven Cc: Phil Edworthy Cc: Simon Horman Cc: Wolfram Sang Cc: linux-renesas-soc@vger.kernel.org commit 7dc13a7939e09caa20ed3a0a8417f23b4ec4e6e2 Author: Marek Vasut Date: Mon Mar 25 12:40:57 2019 +0100 PCI: rcar: Replace unsigned long with u32/unsigned int in register accessors Replace unsigned long with u32 and unsigned int in register accessor functions, since they access 32bit registers. Signed-off-by: Marek Vasut Signed-off-by: Lorenzo Pieralisi Reviewed-by: Simon Horman Reviewed-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Cc: Geert Uytterhoeven Cc: Phil Edworthy Cc: Simon Horman Cc: Wolfram Sang Cc: linux-renesas-soc@vger.kernel.org commit b2c615457b2891931d3e1eec5edf4b8b380e48fb Author: Marek Vasut Date: Mon Mar 25 12:40:56 2019 +0100 PCI: rcar: Clean up remaining macros defining bits Replace macros using constants with BIT()s instead, no functional change. Signed-off-by: Marek Vasut Signed-off-by: Lorenzo Pieralisi Reviewed-by: Simon Horman Reviewed-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Cc: Geert Uytterhoeven Cc: Phil Edworthy Cc: Simon Horman Cc: Wolfram Sang Cc: linux-renesas-soc@vger.kernel.org To: linux-pci@vger.kernel.org commit 7cc10c5cb14397d61d203d0a319ef796d4f6d943 Author: Ondrej Jirman Date: Mon Apr 1 13:56:14 2019 +0200 gnss: ubx: add u-blox,neo-6m compatible Add compatible for u-blox NEO-6M GPS module. Signed-off-by: Ondrej Jirman Signed-off-by: Johan Hovold commit ae40e94fca6d5747f85188d01686df350e524019 Author: Ondrej Jirman Date: Mon Apr 1 13:56:15 2019 +0200 dt-bindings: gnss: add u-blox,neo-6m compatible Add compatible for u-blox NEO-6M GPS module. Signed-off-by: Ondrej Jirman Reviewed-by: Rob Herring Signed-off-by: Johan Hovold commit ad68fa5fe8c12262cf4156b8e0726117aa3be8c8 Author: Fabrizio Castro Date: Fri Mar 1 11:05:47 2019 +0000 arm64: dts: renesas: cat874: Add USB-HOST support This patch adds USB 2.0 HOST support to the CAT874 board. Signed-off-by: Fabrizio Castro Signed-off-by: Simon Horman commit 38bb0baea310fc4b5897ec47b1546bc989b33663 Author: Jeff Xie Date: Tue Mar 19 22:31:10 2019 +0800 rtlwifi: move spin_lock_bh to spin_lock in tasklet It is unnecessary to call spin_lock_bh in a tasklet. Signed-off-by: Jeff Xie Acked-by: Ping-Ke Shih Signed-off-by: Kalle Valo commit 60209d482b97743915883d293c8b85226d230c19 Author: Ping-Ke Shih Date: Tue Mar 12 17:06:48 2019 +0800 rtlwifi: fix potential NULL pointer dereference In case dev_alloc_skb fails, the fix safely returns to avoid potential NULL pointer dereference. Signed-off-by: Ping-Ke Shih Signed-off-by: Kalle Valo commit 765976285a8c8db3f0eb7f033829a899d0c2786e Author: Kangjie Lu Date: Tue Mar 12 02:56:33 2019 -0500 rtlwifi: fix a potential NULL pointer dereference In case alloc_workqueue fails, the fix reports the error and returns to avoid NULL pointer dereference. Signed-off-by: Kangjie Lu Signed-off-by: Kalle Valo commit 2cd2b42439ea7d1231b6b3f0eb0fe606f2ba5160 Author: Dan Carpenter Date: Tue Apr 2 10:03:38 2019 +0300 mwifiex: add a bounds check in mwifiex_process_sta_rx_packet() Smatch complains that "local_rx_pd->priority" can't be trusted because it comes from skb->data and it can go up to 255 instead of being capped in the 0-7 range. A few lines earlier, on the other side of the if statement, we cap priority so it seems harmless to add a bounds check here as well. Signed-off-by: Dan Carpenter Reviewed-by: Brian Norris Signed-off-by: Kalle Valo commit 003b686ace820ce2d635a83f10f2d7f9c147dabc Author: YueHaibing Date: Tue Mar 12 15:03:58 2019 +0800 mwifiex: Fix mem leak in mwifiex_tm_cmd 'hostcmd' is alloced by kzalloc, should be freed before leaving from the error handling cases, otherwise it will cause mem leak. Fixes: 3935ccc14d2c ("mwifiex: add cfg80211 testmode support") Signed-off-by: YueHaibing Signed-off-by: Kalle Valo commit e5b9b206f3f6376b9a1406b67eafe4e7bb9f123c Author: Kangjie Lu Date: Tue Mar 12 00:31:07 2019 -0500 net: mwifiex: fix a NULL pointer dereference In case dev_alloc_skb fails, the fix returns -ENOMEM to avoid NULL pointer dereference. Signed-off-by: Kangjie Lu Signed-off-by: Kalle Valo commit 6603c5844a44fc58f0a3c9cbb57b35b75d7d86be Author: Colin Ian King Date: Sat Mar 30 20:14:22 2019 +0000 iwlegacy: remove redundant assignment to *res Currently 1 is being assigned to *res and then it is immediately updated with the computed result. The first assignment is redundant and can be removed. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Signed-off-by: Kalle Valo commit d825db346270dbceef83b7b750dbc29f1d7dcc0e Author: Arnd Bergmann Date: Fri Mar 22 15:37:02 2019 +0100 b43: shut up clang -Wuninitialized variable warning Clang warns about what is clearly a case of passing an uninitalized variable into a static function: drivers/net/wireless/broadcom/b43/phy_lp.c:1852:23: error: variable 'gains' is uninitialized when used here [-Werror,-Wuninitialized] lpphy_papd_cal(dev, gains, 0, 1, 30); ^~~~~ drivers/net/wireless/broadcom/b43/phy_lp.c:1838:2: note: variable 'gains' is declared here struct lpphy_tx_gains gains, oldgains; ^ 1 error generated. However, this function is empty, and its arguments are never evaluated, so gcc in contrast does not warn here. Both compilers behave in a reasonable way as far as I can tell, so we should change the code to avoid the warning everywhere. We could just eliminate the lpphy_papd_cal() function entirely, given that it has had the TODO comment in it for 10 years now and is rather unlikely to ever get done. I'm doing a simpler change here, and just pass the 'oldgains' variable in that has been initialized, based on the guess that this is what was originally meant. Fixes: 2c0d6100da3e ("b43: LP-PHY: Begin implementing calibration & software RFKILL support") Signed-off-by: Arnd Bergmann Acked-by: Larry Finger Reviewed-by: Nathan Chancellor Signed-off-by: Kalle Valo commit 46953f97224d56a12ccbe9c6acaa84ca0dab2780 Author: Kangjie Lu Date: Fri Mar 15 12:04:32 2019 -0500 brcmfmac: fix missing checks for kmemdup In case kmemdup fails, the fix sets conn_info->req_ie_len and conn_info->resp_ie_len to zero to avoid buffer overflows. Signed-off-by: Kangjie Lu Acked-by: Arend van Spriel Signed-off-by: Kalle Valo commit a9fd0953fa4a62887306be28641b4b0809f3b2fd Author: Piotr Figiel Date: Wed Mar 13 09:52:42 2019 +0000 brcmfmac: convert dev_init_lock mutex to completion Leaving dev_init_lock mutex locked in probe causes BUG and a WARNING when kernel is compiled with CONFIG_PROVE_LOCKING. Convert mutex to completion which silences those warnings and improves code readability. Fix below errors when connecting the USB WiFi dongle: brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43143 for chip BCM43143/2 BUG: workqueue leaked lock or atomic: kworker/0:2/0x00000000/434 last function: hub_event 1 lock held by kworker/0:2/434: #0: 18d5dcdf (&devinfo->dev_init_lock){+.+.}, at: brcmf_usb_probe+0x78/0x550 [brcmfmac] CPU: 0 PID: 434 Comm: kworker/0:2 Not tainted 4.19.23-00084-g454a789-dirty #123 Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree) Workqueue: usb_hub_wq hub_event [<8011237c>] (unwind_backtrace) from [<8010d74c>] (show_stack+0x10/0x14) [<8010d74c>] (show_stack) from [<809c4324>] (dump_stack+0xa8/0xd4) [<809c4324>] (dump_stack) from [<8014195c>] (process_one_work+0x710/0x808) [<8014195c>] (process_one_work) from [<80141a80>] (worker_thread+0x2c/0x564) [<80141a80>] (worker_thread) from [<80147bcc>] (kthread+0x13c/0x16c) [<80147bcc>] (kthread) from [<801010b4>] (ret_from_fork+0x14/0x20) Exception stack(0xed1d9fb0 to 0xed1d9ff8) 9fa0: 00000000 00000000 00000000 00000000 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 ====================================================== WARNING: possible circular locking dependency detected 4.19.23-00084-g454a789-dirty #123 Not tainted ------------------------------------------------------ kworker/0:2/434 is trying to acquire lock: e29cf799 ((wq_completion)"events"){+.+.}, at: process_one_work+0x174/0x808 but task is already holding lock: 18d5dcdf (&devinfo->dev_init_lock){+.+.}, at: brcmf_usb_probe+0x78/0x550 [brcmfmac] which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #2 (&devinfo->dev_init_lock){+.+.}: mutex_lock_nested+0x1c/0x24 brcmf_usb_probe+0x78/0x550 [brcmfmac] usb_probe_interface+0xc0/0x1bc really_probe+0x228/0x2c0 __driver_attach+0xe4/0xe8 bus_for_each_dev+0x68/0xb4 bus_add_driver+0x19c/0x214 driver_register+0x78/0x110 usb_register_driver+0x84/0x148 process_one_work+0x228/0x808 worker_thread+0x2c/0x564 kthread+0x13c/0x16c ret_from_fork+0x14/0x20 (null) -> #1 (brcmf_driver_work){+.+.}: worker_thread+0x2c/0x564 kthread+0x13c/0x16c ret_from_fork+0x14/0x20 (null) -> #0 ((wq_completion)"events"){+.+.}: process_one_work+0x1b8/0x808 worker_thread+0x2c/0x564 kthread+0x13c/0x16c ret_from_fork+0x14/0x20 (null) other info that might help us debug this: Chain exists of: (wq_completion)"events" --> brcmf_driver_work --> &devinfo->dev_init_lock Possible unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&devinfo->dev_init_lock); lock(brcmf_driver_work); lock(&devinfo->dev_init_lock); lock((wq_completion)"events"); *** DEADLOCK *** 1 lock held by kworker/0:2/434: #0: 18d5dcdf (&devinfo->dev_init_lock){+.+.}, at: brcmf_usb_probe+0x78/0x550 [brcmfmac] stack backtrace: CPU: 0 PID: 434 Comm: kworker/0:2 Not tainted 4.19.23-00084-g454a789-dirty #123 Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree) Workqueue: events request_firmware_work_func [<8011237c>] (unwind_backtrace) from [<8010d74c>] (show_stack+0x10/0x14) [<8010d74c>] (show_stack) from [<809c4324>] (dump_stack+0xa8/0xd4) [<809c4324>] (dump_stack) from [<80172838>] (print_circular_bug+0x210/0x330) [<80172838>] (print_circular_bug) from [<80175940>] (__lock_acquire+0x160c/0x1a30) [<80175940>] (__lock_acquire) from [<8017671c>] (lock_acquire+0xe0/0x268) [<8017671c>] (lock_acquire) from [<80141404>] (process_one_work+0x1b8/0x808) [<80141404>] (process_one_work) from [<80141a80>] (worker_thread+0x2c/0x564) [<80141a80>] (worker_thread) from [<80147bcc>] (kthread+0x13c/0x16c) [<80147bcc>] (kthread) from [<801010b4>] (ret_from_fork+0x14/0x20) Exception stack(0xed1d9fb0 to 0xed1d9ff8) 9fa0: 00000000 00000000 00000000 00000000 9fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000 Signed-off-by: Piotr Figiel Signed-off-by: Kalle Valo commit 24d413a31afaee9bbbf79226052c386b01780ce2 Author: Piotr Figiel Date: Wed Mar 13 09:52:01 2019 +0000 brcmfmac: fix Oops when bringing up interface during USB disconnect Fix a race which leads to an Oops with NULL pointer dereference. The dereference is in brcmf_config_dongle() when cfg_to_ndev() attempts to get net_device structure of interface with index 0 via if2bss mapping. This shouldn't fail because of check for bus being ready in brcmf_netdev_open(), but it's not synchronised with USB disconnect and there is a race: after the check the bus can be marked down and the mapping for interface 0 may be gone. Solve this by modifying disconnect handling so that the removal of mapping of ifidx to brcmf_if structure happens after netdev removal (which is synchronous with brcmf_netdev_open() thanks to rtln being locked in devinet_ioctl()). This assures brcmf_netdev_open() returns before the mapping is removed during disconnect. Unable to handle kernel NULL pointer dereference at virtual address 00000008 pgd = bcae2612 [00000008] *pgd=8be73831 Internal error: Oops: 17 [#1] PREEMPT SMP ARM Modules linked in: brcmfmac brcmutil nf_log_ipv4 nf_log_common xt_LOG xt_limit iptable_mangle xt_connmark xt_tcpudp xt_conntrack nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 iptable_filter ip_tables x_tables usb_f_mass_storage usb_f_rndis u_ether usb_serial_simple usbserial cdc_acm smsc95xx usbnet ci_hdrc_imx ci_hdrc usbmisc_imx ulpi 8250_exar 8250_pci 8250 8250_base libcomposite configfs udc_core [last unloaded: brcmutil] CPU: 2 PID: 24478 Comm: ifconfig Not tainted 4.19.23-00078-ga62866d-dirty #115 Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree) PC is at brcmf_cfg80211_up+0x94/0x29c [brcmfmac] LR is at brcmf_cfg80211_up+0x8c/0x29c [brcmfmac] pc : [<7f26a91c>] lr : [<7f26a914>] psr: a0070013 sp : eca99d28 ip : 00000000 fp : ee9c6c00 r10: 00000036 r9 : 00000000 r8 : ece4002c r7 : edb5b800 r6 : 00000000 r5 : 80f08448 r4 : edb5b968 r3 : ffffffff r2 : 00000000 r1 : 00000002 r0 : 00000000 Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment none Control: 10c5387d Table: 7ca0c04a DAC: 00000051 Process ifconfig (pid: 24478, stack limit = 0xd9e85a0e) Stack: (0xeca99d28 to 0xeca9a000) 9d20: 00000000 80f873b0 0000000d 80f08448 eca99d68 50d45f32 9d40: 7f27de94 ece40000 80f08448 80f08448 7f27de94 ece4002c 00000000 00000036 9d60: ee9c6c00 7f27262c 00001002 50d45f32 ece40000 00000000 80f08448 80772008 9d80: 00000001 00001043 00001002 ece40000 00000000 50d45f32 ece40000 00000001 9da0: 80f08448 00001043 00001002 807723d0 00000000 50d45f32 80f08448 eca99e58 9dc0: 80f87113 50d45f32 80f08448 ece40000 ece40138 00001002 80f08448 00000000 9de0: 00000000 80772434 edbd5380 eca99e58 edbd5380 80f08448 ee9c6c0c 80805f70 9e00: 00000000 ede08e00 00008914 ece40000 00000014 ee9c6c0c 600c0013 00001043 9e20: 0208a8c0 ffffffff 00000000 50d45f32 eca98000 80f08448 7ee9fc38 00008914 9e40: 80f68e40 00000051 eca98000 00000036 00000003 80808b9c 6e616c77 00000030 9e60: 00000000 00000000 00001043 0208a8c0 ffffffff 00000000 80f08448 00000000 9e80: 00000000 816d8b20 600c0013 00000001 ede09320 801763d4 00000000 50d45f32 9ea0: eca98000 80f08448 7ee9fc38 50d45f32 00008914 80f08448 7ee9fc38 80f68e40 9ec0: ed531540 8074721c 00000800 00000001 00000000 6e616c77 00000030 00000000 9ee0: 00000000 00001002 0208a8c0 ffffffff 00000000 50d45f32 80f08448 7ee9fc38 9f00: ed531560 ec8fc900 80285a6c 80285138 edb910c0 00000000 ecd91008 ede08e00 9f20: 80f08448 00000000 00000000 816d8b20 600c0013 00000001 ede09320 801763d4 9f40: 00000000 50d45f32 00021000 edb91118 edb910c0 80f08448 01b29000 edb91118 9f60: eca99f7c 50d45f32 00021000 ec8fc900 00000003 ec8fc900 00008914 7ee9fc38 9f80: eca98000 00000036 00000003 80285a6c 00086364 7ee9fe1c 000000c3 00000036 9fa0: 801011c4 80101000 00086364 7ee9fe1c 00000003 00008914 7ee9fc38 00086364 9fc0: 00086364 7ee9fe1c 000000c3 00000036 0008630c 7ee9fe1c 7ee9fc38 00000003 9fe0: 000a42b8 7ee9fbd4 00019914 76e09acc 600c0010 00000003 00000000 00000000 [<7f26a91c>] (brcmf_cfg80211_up [brcmfmac]) from [<7f27262c>] (brcmf_netdev_open+0x74/0xe8 [brcmfmac]) [<7f27262c>] (brcmf_netdev_open [brcmfmac]) from [<80772008>] (__dev_open+0xcc/0x150) [<80772008>] (__dev_open) from [<807723d0>] (__dev_change_flags+0x168/0x1b4) [<807723d0>] (__dev_change_flags) from [<80772434>] (dev_change_flags+0x18/0x48) [<80772434>] (dev_change_flags) from [<80805f70>] (devinet_ioctl+0x67c/0x79c) [<80805f70>] (devinet_ioctl) from [<80808b9c>] (inet_ioctl+0x210/0x3d4) [<80808b9c>] (inet_ioctl) from [<8074721c>] (sock_ioctl+0x350/0x524) [<8074721c>] (sock_ioctl) from [<80285138>] (do_vfs_ioctl+0xb0/0x9b0) [<80285138>] (do_vfs_ioctl) from [<80285a6c>] (ksys_ioctl+0x34/0x5c) [<80285a6c>] (ksys_ioctl) from [<80101000>] (ret_fast_syscall+0x0/0x28) Exception stack(0xeca99fa8 to 0xeca99ff0) 9fa0: 00086364 7ee9fe1c 00000003 00008914 7ee9fc38 00086364 9fc0: 00086364 7ee9fe1c 000000c3 00000036 0008630c 7ee9fe1c 7ee9fc38 00000003 9fe0: 000a42b8 7ee9fbd4 00019914 76e09acc Code: e5970328 eb002021 e1a02006 e3a01002 (e5909008) ---[ end trace 5cbac2333f3ac5df ]--- Signed-off-by: Piotr Figiel Signed-off-by: Kalle Valo commit 504f06725d015954a0fcafdf1d90a6795ca8f769 Author: Piotr Figiel Date: Fri Mar 8 15:25:09 2019 +0000 brcmfmac: remove unused variable i from brcmf_usb_free_q Variable i is not used so remove it. Signed-off-by: Piotr Figiel Signed-off-by: Kalle Valo commit 2b78e5f5223666d403d4fdb30af4ad65c8da3cdb Author: Piotr Figiel Date: Fri Mar 8 15:25:06 2019 +0000 brcmfmac: remove pending parameter from brcmf_usb_free_q brcmf_usb_free_q is no longer called with pending=true thus this boolean parameter is no longer needed. Signed-off-by: Piotr Figiel Signed-off-by: Kalle Valo commit db3b9e2e1d58080d0754bdf9293dabf8c6491b67 Author: Piotr Figiel Date: Fri Mar 8 15:25:04 2019 +0000 brcmfmac: fix race during disconnect when USB completion is in progress It was observed that rarely during USB disconnect happening shortly after connect (before full initialization completes) usb_hub_wq would wait forever for the dev_init_lock to be unlocked. dev_init_lock would remain locked though because of infinite wait during usb_kill_urb: [ 2730.656472] kworker/0:2 D 0 260 2 0x00000000 [ 2730.660700] Workqueue: events request_firmware_work_func [ 2730.664807] [<809dca20>] (__schedule) from [<809dd164>] (schedule+0x4c/0xac) [ 2730.670587] [<809dd164>] (schedule) from [<8069af44>] (usb_kill_urb+0xdc/0x114) [ 2730.676815] [<8069af44>] (usb_kill_urb) from [<7f258b50>] (brcmf_usb_free_q+0x34/0xa8 [brcmfmac]) [ 2730.684833] [<7f258b50>] (brcmf_usb_free_q [brcmfmac]) from [<7f2517d4>] (brcmf_detach+0xa0/0xb8 [brcmfmac]) [ 2730.693557] [<7f2517d4>] (brcmf_detach [brcmfmac]) from [<7f251a34>] (brcmf_attach+0xac/0x3d8 [brcmfmac]) [ 2730.702094] [<7f251a34>] (brcmf_attach [brcmfmac]) from [<7f2587ac>] (brcmf_usb_probe_phase2+0x468/0x4a0 [brcmfmac]) [ 2730.711601] [<7f2587ac>] (brcmf_usb_probe_phase2 [brcmfmac]) from [<7f252888>] (brcmf_fw_request_done+0x194/0x220 [brcmfmac]) [ 2730.721795] [<7f252888>] (brcmf_fw_request_done [brcmfmac]) from [<805748e4>] (request_firmware_work_func+0x4c/0x88) [ 2730.731125] [<805748e4>] (request_firmware_work_func) from [<80141474>] (process_one_work+0x228/0x808) [ 2730.739223] [<80141474>] (process_one_work) from [<80141a80>] (worker_thread+0x2c/0x564) [ 2730.746105] [<80141a80>] (worker_thread) from [<80147bcc>] (kthread+0x13c/0x16c) [ 2730.752227] [<80147bcc>] (kthread) from [<801010b4>] (ret_from_fork+0x14/0x20) [ 2733.099695] kworker/0:3 D 0 1065 2 0x00000000 [ 2733.103926] Workqueue: usb_hub_wq hub_event [ 2733.106914] [<809dca20>] (__schedule) from [<809dd164>] (schedule+0x4c/0xac) [ 2733.112693] [<809dd164>] (schedule) from [<809e2a8c>] (schedule_timeout+0x214/0x3e4) [ 2733.119621] [<809e2a8c>] (schedule_timeout) from [<809dde2c>] (wait_for_common+0xc4/0x1c0) [ 2733.126810] [<809dde2c>] (wait_for_common) from [<7f258d00>] (brcmf_usb_disconnect+0x1c/0x4c [brcmfmac]) [ 2733.135206] [<7f258d00>] (brcmf_usb_disconnect [brcmfmac]) from [<8069e0c8>] (usb_unbind_interface+0x5c/0x1e4) [ 2733.143943] [<8069e0c8>] (usb_unbind_interface) from [<8056d3e8>] (device_release_driver_internal+0x164/0x1fc) [ 2733.152769] [<8056d3e8>] (device_release_driver_internal) from [<8056c078>] (bus_remove_device+0xd0/0xfc) [ 2733.161138] [<8056c078>] (bus_remove_device) from [<8056977c>] (device_del+0x11c/0x310) [ 2733.167939] [<8056977c>] (device_del) from [<8069cba8>] (usb_disable_device+0xa0/0x1cc) [ 2733.174743] [<8069cba8>] (usb_disable_device) from [<8069507c>] (usb_disconnect+0x74/0x1dc) [ 2733.181823] [<8069507c>] (usb_disconnect) from [<80695e88>] (hub_event+0x478/0xf88) [ 2733.188278] [<80695e88>] (hub_event) from [<80141474>] (process_one_work+0x228/0x808) [ 2733.194905] [<80141474>] (process_one_work) from [<80141a80>] (worker_thread+0x2c/0x564) [ 2733.201724] [<80141a80>] (worker_thread) from [<80147bcc>] (kthread+0x13c/0x16c) [ 2733.207913] [<80147bcc>] (kthread) from [<801010b4>] (ret_from_fork+0x14/0x20) It was traced down to a case where usb_kill_urb would be called on an URB structure containing more or less random data, including large number in its use_count. During the debugging it appeared that in brcmf_usb_free_q() the traversal over URBs' lists is not synchronized with operations on those lists in brcmf_usb_rx_complete() leading to handling brcmf_usbdev_info structure (holding lists' head) as lists' element and in result causing above problem. Fix it by walking through all URBs during brcmf_cancel_all_urbs using the arrays of requests instead of linked lists. Signed-off-by: Piotr Figiel Signed-off-by: Kalle Valo commit 5cdb0ef6144f47440850553579aa923c20a63f23 Author: Piotr Figiel Date: Mon Mar 4 15:42:52 2019 +0000 brcmfmac: fix NULL pointer derefence during USB disconnect In case USB disconnect happens at the moment transmitting workqueue is in progress the underlying interface may be gone causing a NULL pointer dereference. Add synchronization of the workqueue destruction with the detach implementation in core so that the transmitting workqueue is stopped during detach before the interfaces are removed. Fix following Oops: Unable to handle kernel NULL pointer dereference at virtual address 00000008 pgd = 9e6a802d [00000008] *pgd=00000000 Internal error: Oops: 5 [#1] PREEMPT SMP ARM Modules linked in: nf_log_ipv4 nf_log_common xt_LOG xt_limit iptable_mangle xt_connmark xt_tcpudp xt_conntrack nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 iptable_filter ip_tables x_tables usb_f_mass_storage usb_f_rndis u_ether usb_serial_simple usbserial cdc_acm brcmfmac brcmutil smsc95xx usbnet ci_hdrc_imx ci_hdrc ulpi usbmisc_imx 8250_exar 8250_pci 8250 8250_base libcomposite configfs udc_core CPU: 0 PID: 7 Comm: kworker/u8:0 Not tainted 4.19.23-00076-g03740aa-dirty #102 Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree) Workqueue: brcmf_fws_wq brcmf_fws_dequeue_worker [brcmfmac] PC is at brcmf_txfinalize+0x34/0x90 [brcmfmac] LR is at brcmf_fws_dequeue_worker+0x218/0x33c [brcmfmac] pc : [<7f0dee64>] lr : [<7f0e4140>] psr: 60010093 sp : ee8abef0 ip : 00000000 fp : edf38000 r10: ffffffed r9 : edf38970 r8 : edf38004 r7 : edf3e970 r6 : 00000000 r5 : ede69000 r4 : 00000000 r3 : 00000a97 r2 : 00000000 r1 : 0000888e r0 : ede69000 Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment none Control: 10c5387d Table: 7d03c04a DAC: 00000051 Process kworker/u8:0 (pid: 7, stack limit = 0x24ec3e04) Stack: (0xee8abef0 to 0xee8ac000) bee0: ede69000 00000000 ed56c3e0 7f0e4140 bf00: 00000001 00000000 edf38004 edf3e99c ed56c3e0 80d03d00 edfea43a edf3e970 bf20: ee809880 ee804200 ee971100 00000000 edf3e974 00000000 ee804200 80135a70 bf40: 80d03d00 ee804218 ee809880 ee809894 ee804200 80d03d00 ee804218 ee8aa000 bf60: 00000088 80135d5c 00000000 ee829f00 ee829dc0 00000000 ee809880 80135d30 bf80: ee829f1c ee873eac 00000000 8013b1a0 ee829dc0 8013b07c 00000000 00000000 bfa0: 00000000 00000000 00000000 801010e8 00000000 00000000 00000000 00000000 bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 bfe0: 00000000 00000000 00000000 00000000 00000013 00000000 00000000 00000000 [<7f0dee64>] (brcmf_txfinalize [brcmfmac]) from [<7f0e4140>] (brcmf_fws_dequeue_worker+0x218/0x33c [brcmfmac]) [<7f0e4140>] (brcmf_fws_dequeue_worker [brcmfmac]) from [<80135a70>] (process_one_work+0x138/0x3f8) [<80135a70>] (process_one_work) from [<80135d5c>] (worker_thread+0x2c/0x554) [<80135d5c>] (worker_thread) from [<8013b1a0>] (kthread+0x124/0x154) [<8013b1a0>] (kthread) from [<801010e8>] (ret_from_fork+0x14/0x2c) Exception stack(0xee8abfb0 to 0xee8abff8) bfa0: 00000000 00000000 00000000 00000000 bfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 bfe0: 00000000 00000000 00000000 00000000 00000013 00000000 Code: e1530001 0a000007 e3560000 e1a00005 (05942008) ---[ end trace 079239dd31c86e90 ]--- Signed-off-by: Piotr Figiel Signed-off-by: Kalle Valo commit c80d26e81ef1802f30364b4ad1955c1443a592b9 Author: Piotr Figiel Date: Mon Mar 4 15:42:49 2019 +0000 brcmfmac: fix WARNING during USB disconnect in case of unempty psq brcmu_pkt_buf_free_skb emits WARNING when attempting to free a sk_buff which is part of any queue. After USB disconnect this may have happened when brcmf_fws_hanger_cleanup() is called as per-interface psq was never cleaned when removing the interface. Change brcmf_fws_macdesc_cleanup() in a way that it removes the corresponding packets from hanger table (to avoid double-free when brcmf_fws_hanger_cleanup() is called) and add a call to clean-up the interface specific packet queue. Below is a WARNING during USB disconnect with Raspberry Pi WiFi dongle running in AP mode. This was reproducible when the interface was transmitting during the disconnect and is fixed with this commit. ------------[ cut here ]------------ WARNING: CPU: 0 PID: 1171 at drivers/net/wireless/broadcom/brcm80211/brcmutil/utils.c:49 brcmu_pkt_buf_free_skb+0x3c/0x40 Modules linked in: nf_log_ipv4 nf_log_common xt_LOG xt_limit iptable_mangle xt_connmark xt_tcpudp xt_conntrack nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 iptable_filter ip_tables x_tables usb_f_mass_storage usb_f_rndis u_ether cdc_acm smsc95xx usbnet ci_hdrc_imx ci_hdrc ulpi usbmisc_imx 8250_exar 8250_pci 8250 8250_base libcomposite configfs udc_core CPU: 0 PID: 1171 Comm: kworker/0:0 Not tainted 4.19.23-00075-gde33ed8 #99 Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree) Workqueue: usb_hub_wq hub_event [<8010ff84>] (unwind_backtrace) from [<8010bb64>] (show_stack+0x10/0x14) [<8010bb64>] (show_stack) from [<80840278>] (dump_stack+0x88/0x9c) [<80840278>] (dump_stack) from [<8011f5ec>] (__warn+0xfc/0x114) [<8011f5ec>] (__warn) from [<8011f71c>] (warn_slowpath_null+0x40/0x48) [<8011f71c>] (warn_slowpath_null) from [<805a476c>] (brcmu_pkt_buf_free_skb+0x3c/0x40) [<805a476c>] (brcmu_pkt_buf_free_skb) from [<805bb6c4>] (brcmf_fws_cleanup+0x1e4/0x22c) [<805bb6c4>] (brcmf_fws_cleanup) from [<805bc854>] (brcmf_fws_del_interface+0x58/0x68) [<805bc854>] (brcmf_fws_del_interface) from [<805b66ac>] (brcmf_remove_interface+0x40/0x150) [<805b66ac>] (brcmf_remove_interface) from [<805b6870>] (brcmf_detach+0x6c/0xb0) [<805b6870>] (brcmf_detach) from [<805bdbb8>] (brcmf_usb_disconnect+0x30/0x4c) [<805bdbb8>] (brcmf_usb_disconnect) from [<805e5d64>] (usb_unbind_interface+0x5c/0x1e0) [<805e5d64>] (usb_unbind_interface) from [<804aab10>] (device_release_driver_internal+0x154/0x1ec) [<804aab10>] (device_release_driver_internal) from [<804a97f4>] (bus_remove_device+0xcc/0xf8) [<804a97f4>] (bus_remove_device) from [<804a6fc0>] (device_del+0x118/0x308) [<804a6fc0>] (device_del) from [<805e488c>] (usb_disable_device+0xa0/0x1c8) [<805e488c>] (usb_disable_device) from [<805dcf98>] (usb_disconnect+0x70/0x1d8) [<805dcf98>] (usb_disconnect) from [<805ddd84>] (hub_event+0x464/0xf50) [<805ddd84>] (hub_event) from [<80135a70>] (process_one_work+0x138/0x3f8) [<80135a70>] (process_one_work) from [<80135d5c>] (worker_thread+0x2c/0x554) [<80135d5c>] (worker_thread) from [<8013b1a0>] (kthread+0x124/0x154) [<8013b1a0>] (kthread) from [<801010e8>] (ret_from_fork+0x14/0x2c) Exception stack(0xecf8dfb0 to 0xecf8dff8) dfa0: 00000000 00000000 00000000 00000000 dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 dfe0: 00000000 00000000 00000000 00000000 00000013 00000000 ---[ end trace 38d234018e9e2a90 ]--- ------------[ cut here ]------------ Signed-off-by: Piotr Figiel Signed-off-by: Kalle Valo commit 0a042b355e60269ad30725b5b5ca68fc5371a8df Author: Takeshi Kihara Date: Wed Apr 3 16:45:15 2019 +0200 pinctrl: sh-pfc: r8a77965: Add I2C{0,3,5} pins, groups and functions This patch adds I2C{0,3,5} pins, groups and functions to the R8A7796 SoC. These pins are physically muxed with other pins. Therefore, setup of MOD_SEL is needed for exclusive control with other pins. [takeshi.kihara.df: add blank lines after function declarations] Signed-off-by: Takeshi Kihara [uli: use standard macros PINMUX_IPSR_PHYS and PINMUX_IPSR_PHYS_MSEL] Signed-off-by: Ulrich Hecht Signed-off-by: Geert Uytterhoeven commit f05603fa6aa30430f444620344a2f75adeeddbd2 Author: Ulrich Hecht Date: Wed Apr 3 16:45:16 2019 +0200 pinctrl: sh-pfc: r8a7796: Remove placeholder I2C pin data Pin data for I2C controllers 0, 3 and 5 is properly defined already. Signed-off-by: Ulrich Hecht Signed-off-by: Geert Uytterhoeven commit baaa2effc684e491d144c5d98901e39e644a6701 Author: Geert Uytterhoeven Date: Fri Mar 29 16:30:08 2019 +0100 pinctrl: sh-pfc: r8a77970: Fix spacing Replace "F_(0,0)" by "F_(0, 0)". Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit 4684997d9eea29380000e062755aa6d368d789a3 Author: Rafał Miłecki Date: Tue Feb 26 14:11:19 2019 +0100 brcmfmac: reset PCIe bus on a firmware crash This includes bus reset & reloading a firmware. It should be sufficient for a user space to (setup and) use a wireless device again. Support for reset on USB & SDIO can be added later. Signed-off-by: Rafał Miłecki Reviewed-by: Arend van Spriel Signed-off-by: Kalle Valo commit a2ec87ddbf1637f854ffcfff9d12d392fa30758b Author: Rafał Miłecki Date: Tue Feb 26 14:11:18 2019 +0100 brcmfmac: add a function designated for handling firmware fails This improves handling PCIe firmware halts by printing a clear error message and replaces a similar code in the SDIO bus support. It will also allow further improvements like trying to recover from a firmware crash. Signed-off-by: Rafał Miłecki Reviewed-by: Arend van Spriel Signed-off-by: Kalle Valo commit c9692820710f57c826b2e43a6fb1e4cd307508b0 Author: Rafał Miłecki Date: Tue Feb 26 14:11:16 2019 +0100 brcmfmac: support repeated brcmf_fw_alloc_request() calls During a normal brcmfmac lifetime brcmf_fw_alloc_request() is called once only during the probe. It's safe to assume provided array is clear. Further brcmfmac improvements may require calling it multiple times though. This patch allows it by fixing invalid firmware paths like: brcm/brcmfmac4366c-pcie.binbrcm/brcmfmac4366c-pcie.bin Signed-off-by: Rafał Miłecki Reviewed-by: Arend van Spriel Signed-off-by: Kalle Valo commit b63967cae6b105a3e0e31bff6c5ec89faa077ee5 Author: Igor Mitsyanko Date: Wed Mar 20 10:04:11 2019 +0000 qtnfmac: use scan duration param for different scan types Use scan duration param for both active and passive scan dwell times. Document what different types of dwell times are used for. Explicitly specify that if unset, automatic selection by device firmware will be used. Signed-off-by: Igor Mitsyanko Signed-off-by: Kalle Valo commit bc70732f9bd98a451cdbddf57a183543df618367 Author: Igor Mitsyanko Date: Wed Mar 20 10:04:09 2019 +0000 qtnfmac: send EAPOL frames via control path Use control path to send EAPOL frames to make sure they are sent with higher priority with aggregation disabled. Signed-off-by: Igor Mitsyanko Signed-off-by: Kalle Valo commit 72b3270e01ab5bd85222ada2f4dc1cd6824f1ab7 Author: Sergey Matyukevich Date: Wed Mar 20 10:04:05 2019 +0000 qtnfmac: allow changing the netns Allow to change netns for wireless interfaces created by qtnfmac driver. Signed-off-by: Sergey Matyukevich Signed-off-by: Kalle Valo commit 83b00f6eb863c399987f923dc022625afbf362b1 Author: Sergey Matyukevich Date: Wed Mar 20 10:04:04 2019 +0000 qtnfmac: simplify firmware state tracking This patch streamlines firmware state tracking. In particular, state QTNF_FW_STATE_FW_DNLD_DONE is removed, states QTNF_FW_STATE_RESET and QTNF_FW_STATE_DETACHED are merged into a single state. Besides, new state QTNF_FW_STATE_RUNNING is introduced to distinguish between the following two cases: - firmware load succeeded, firmware init process is ongoing - firmware init succeeded, firmware is fully functional Signed-off-by: Sergey Matyukevich Signed-off-by: Kalle Valo commit ae1946be26bc602dae3e6637df80a78fba5ff58b Author: Sergey Matyukevich Date: Wed Mar 20 10:04:02 2019 +0000 qtnfmac: fix core attach error path in pcie backend Report that firmware is up and running only for successful firmware download. Simplify qtnf_pcie_fw_boot_done: modify error path so that no need to pass firmware dowload result to this function. Finally, do not create debugfs entries if firmware download succeeded, but core attach failed. Signed-off-by: Sergey Matyukevich Signed-off-by: Kalle Valo commit 93eeab26791df9ddd9a2c38f68d8fb78973ef06a Author: Igor Mitsyanko Date: Wed Mar 20 10:04:00 2019 +0000 qtnfmac: update bands information on CHANGE_INTF command In some regions, different regulatory limits (like max Tx power) may be defined for different operating modes. As an example: in ETSI regions DFS master devices may use higher transmit powers compared to DFS slave devices. Update bands information in CHANGE_INTF command if mode of operation changes. Signed-off-by: Igor Mitsyanko Signed-off-by: Kalle Valo commit 438fb43bcab15aeafd3318dd305cea9769dd24d0 Author: Igor Mitsyanko Date: Wed Mar 20 10:03:58 2019 +0000 qtnfmac: pass DFS region to firmware on region update Pass DFS region as requested by regulatory core directly to firmware so it can initialize radar detection block accordingly. Signed-off-by: Igor Mitsyanko Signed-off-by: Kalle Valo commit c698bce01562363682bbeb8f0fda8679736a42a6 Author: Igor Mitsyanko Date: Wed Mar 20 10:03:57 2019 +0000 qtnfmac: allow each MAC to specify its own regulatory rules Currently driver uses the same regulatory rules to register all wiphy instances. This is not logically correct since each wiphy may have different capabilities (different supported bands, EIRP etc). Allow firmware to pass regulatory rules for each MAC separately. Signed-off-by: Igor Mitsyanko Signed-off-by: Kalle Valo commit 48cefdfbcb577a44fb6fada7539bb1cdaa8cb17a Author: Igor Mitsyanko Date: Wed Mar 20 10:03:55 2019 +0000 qtnfmac: flexible regulatory domain registration logic Use REGULATORY_CUSTOM_REG flag only if firmware advertised a custom regulatory domain prior to wiphy registration. Use REGULATORY_STRICT_REG flag only if firmware knows its regulatory domain. Signed-off-by: Igor Mitsyanko Signed-off-by: Kalle Valo commit 2c31129f8f40ace206e9a3df9fb5581c29cd51fb Author: Igor Mitsyanko Date: Wed Mar 20 10:03:53 2019 +0000 qtnfmac: pass complete channel info in regulatory notifier Currently only a portion of per-channel information is passed to firmware. Extend logic to pass all useful per-channel data. Signed-off-by: Igor Mitsyanko Signed-off-by: Kalle Valo commit a2fbaaf757e312e9fa120908929f5bed6d5f81e5 Author: Igor Mitsyanko Date: Wed Mar 20 10:03:51 2019 +0000 qtnfmac: include full channels info to regulatory notifier Before regulatory notifier is invoked by a wireless core, it will update band information for the wiphy. Pass this information to firmware together with new region alpha2 code. Signed-off-by: Igor Mitsyanko Signed-off-by: Kalle Valo commit 642f15a5cee74de7f4aab5e04f19045db8dcf871 Author: Igor Mitsyanko Date: Wed Mar 20 10:03:49 2019 +0000 qtnfmac: simplify error reporting in regulatory notifier Error reporting in qtnf_cfg80211_reg_notifier only requires to print one type of message and an error code. Firmware will report success for an attempt to set regulatory region to the same value, so no special handling is required for this case. Signed-off-by: Igor Mitsyanko Signed-off-by: Kalle Valo commit d123172175db84a65bf66245bfa15aaabaa361a9 Author: Igor Mitsyanko Date: Wed Mar 20 10:03:48 2019 +0000 qtnfmac: make regulatory notifier work on per-phy basis Wireless core calls regulatory notifier for each wiphy and it only guarantees that bands info is updated for this particular wiphy prior to calling a notifier. Hence updating all wiphy which belong to driver in a single notifier callback is redundant and incorrect. Signed-off-by: Igor Mitsyanko Signed-off-by: Kalle Valo commit b953eaaeb58efc944f51cffd3f6838657958f0f8 Author: Takeshi Kihara Date: Mon Feb 25 11:48:38 2019 +0900 clk: renesas: rcar-gen3: Fix cpg_sd_clock_round_rate() return value cpg_sd_clock_round_rate() may return an unsupported clock rate for the requested clock rate. Therefore, when cpg_sd_clock_set_rate() sets the clock rate acquired by cpg_sd_clock_round_rate(), an error may occur. This is not conform the clk API design. This patch fixes that by making sure cpg_sd_clock_calc_div() considers only the division values defined in cpg_sd_div_table[]. With this fix, the cpg_sd_clock_round_rate() always return a support clock rate. Signed-off-by: Takeshi Kihara Fixes: 90c073e53909da85 ("clk: shmobile: r8a7795: Add SD divider support") Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit 3037271388eee90633b97a92445cb3b216394911 Author: Nicolas Ferre Date: Thu Mar 28 16:33:07 2019 +0100 ARM: at91: remove HAVE_FB_ATMEL for sama5 SoC as they use DRM SAMA5 devices use the newer DRM driver for LCD. They don't need the older FB driver: remove the Kconfig option for them. Signed-off-by: Nicolas Ferre Signed-off-by: Ludovic Desroches commit b126fc07328749269021ac53173f9afdd6947248 Author: Sugar Zhang Date: Thu Apr 4 11:57:08 2019 +0800 ASoC: rockchip: pdm: Mark RXFIFO_DATA as volatile and precious This patch marks RXFIFO_DATA as precious to avoid being read outside a call from the driver, such as regmap debugfs Signed-off-by: Sugar Zhang Signed-off-by: Mark Brown commit 47fa5773f11c7cc9117d74ea5a18a22502d8f0f3 Author: Colin Ian King Date: Thu Apr 4 08:56:03 2019 +0100 ASoC: sprd: Fix spelling mistake "faied" -> "failed" There are two identical spelling mistakes in dev_err messages. Fix them. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Reviewed-by: Baolin Wang Signed-off-by: Mark Brown commit 54cd97cfe02e9bb93db53e7cbfa9b672bf4a5ac8 Author: Sugar Zhang Date: Thu Apr 4 11:57:57 2019 +0800 ASoC: rockchip: pdm: Correct PDM_CTRL0 reg value This patch fix the wrong reg value for rk322x/rk322xh, cuz there is no STORE JUSTIFIED MODE on it. on rk322x/rk322xh, the same bit means PDM_MODE/RESERVED, if the bit is set to RESERVED, the controller will not work. Signed-off-by: Sugar Zhang Signed-off-by: Mark Brown commit 430f5da69b9323d5e7faca95bc30e61be4fcbbbf Author: Sugar Zhang Date: Thu Apr 4 11:56:29 2019 +0800 ASoC: rockchip: pdm: adjust waterlevel in frame unit This patch make the waterlevel more reasonable, because the pdm controller share the single FIFO(128 entries) with each channel. adjust waterlevel in frame to meet the vad or dma frames request. Signed-off-by: Sugar Zhang Signed-off-by: Mark Brown commit 2a050b7a746e2c59a733a3641eb1c01cf2e573b4 Author: Sugar Zhang Date: Thu Apr 4 11:55:45 2019 +0800 dt-bindings: sound: add compatible for rk1808 This patch adds bindings for rk1808 soc. Signed-off-by: Sugar Zhang Signed-off-by: Mark Brown commit 717d97879b346d56fc47a6e3fe0ad44fea9949b2 Author: Sugar Zhang Date: Thu Apr 4 11:54:30 2019 +0800 ASoC: rockchip: pdm: add compatible for rk1808 This patch adds support for rk1808, the pdm controller is the same as rk3308. Signed-off-by: Sugar Zhang Signed-off-by: Mark Brown commit 6bfff707985fff14fa79c851e53f9630e76a4860 Author: Sugar Zhang Date: Thu Apr 4 11:53:15 2019 +0800 dt-bindings: sound: rockchip: add compatible for rk3308/px30 This patch adds bindings for rk3308/px30. Signed-off-by: Sugar Zhang Signed-off-by: Mark Brown commit 624e8e00acafe3d31a7c31e67fa95ce06e324bf8 Author: Sugar Zhang Date: Thu Apr 4 11:51:09 2019 +0800 ASoC: rockchip: pdm: fixup pdm fractional div This patch adds support fractional div for rk3308. Signed-off-by: Sugar Zhang Signed-off-by: Mark Brown commit 072cb68a43663eacae7fe84dcbfd1a81dc692185 Merge: 252163a66a06 86a7b6ffd900 Author: Mark Brown Date: Thu Apr 4 15:07:34 2019 +0700 Merge branch 'asoc-5.1' into asoc-5.2 commit c48cadf5bf4becefcd0751b97995d2350aa9bb57 Author: Wolfram Sang Date: Wed Apr 3 17:19:52 2019 +0200 rtc: don't reference bogus function pointer in kdoc The mentioned function pointer is long gone since early 2011. Remove the reference in the comment and reword it slightly. Fixes: 51ba60c5bb3b ("RTC: Cleanup rtc_class_ops->update_irq_enable()") Signed-off-by: Wolfram Sang Signed-off-by: Alexandre Belloni commit 169680dee73d308f2a355eafd58bc5754cd2f9e3 Author: Alexandre Belloni Date: Tue Apr 2 23:54:47 2019 +0200 rtc: remove unnecessary Kconfig dependencies Remove the unused "depends on I2C" as the config options are already guarded by if I2C. Signed-off-by: Alexandre Belloni commit 27ff836d2f44e73370e247b2fa535166a7dcfbb9 Author: Alexandre Belloni Date: Mon Apr 1 18:08:16 2019 +0200 rtc: pcf85063: add RTC_VL_READ/RTC_VL_CLR support Allow reading the oscillator status bit. Also allow clearing it even if that makes little sense and can't be done in a race free way. Signed-off-by: Alexandre Belloni commit 85370d3dd0d10a1ae5731c76409d7196ad9f5786 Author: Alexandre Belloni Date: Mon Apr 1 18:08:15 2019 +0200 rtc: pcf85063: add offset correction support The PCF850363 has an offset correction with two modes: With mode 0, the correction is triggered once every two hours and then correction pulses are applied once per minute until the programmed correction values have been implemented. This gives a step of 4.34 ppm. With mode 1, the correction is triggered once every four minutes and then correction pulses are applied once per second up to a maximum of 60 pulses. When correction values greater than 60 pulses are used, additional correction pulses are made in the 59 th second. This gives a step of 4.069 ppm. Use the correction closest to the requested value. Signed-off-by: Alexandre Belloni commit fadfd092ee9138825d8c2a4f95719d2e2e3202b9 Author: Alexandre Belloni Date: Mon Apr 1 18:08:14 2019 +0200 rtc: pcf85063: add nvram support The pcf85063 has one byte of nvram. Signed-off-by: Alexandre Belloni commit 5b3a3ade02937ab9c5aac2a9a36c6c81e1327eb8 Author: Alexandre Belloni Date: Mon Apr 1 18:08:13 2019 +0200 rtc: pcf85063: add Micro Crystal RV8263 support The Micro Crystal RV8263 has the same IC as the pcf85063 but has an on board crystal. This means that the CAP_SEL bit has to be cleared so the correct capacitance is selected for the crystal. Signed-off-by: Alexandre Belloni commit 05cb3a56ee8cc3f75bf34ce73d06cb798ec5f73a Author: Alexandre Belloni Date: Mon Apr 1 18:08:12 2019 +0200 rtc: pcf85063: add alarm support Add support for the alarms. The match on the weekday is not used as it it not necessarily properly set. The tested RTC shows a behaviour where setting an alarm on the second right after an alarm that fired is not working, probably because of the circuit that ensures an alarm only fires once. This is why uie_unsupported is set. Signed-off-by: Alexandre Belloni commit 0e2e87779ab8699e1c9a82fbf08b9462c34fd974 Author: Alexandre Belloni Date: Mon Apr 1 18:08:11 2019 +0200 rtc: pcf85063: differentiate pcf85063a and pcf85063tp As stated in a comment pcf85063a and pcf85063tp don't have the same number of registers. Especially, pcf85063tp doesn't have alarm support. Signed-off-by: Alexandre Belloni commit e89b60d02801b1fc334256261cb6c2511413ab69 Author: Alexandre Belloni Date: Mon Apr 1 18:08:10 2019 +0200 rtc: pcf85063: switch to regmap Switch to regmap to simplify register accesses and remove the need for pcf85063_stop_clock/pcf85063_start_clock. Signed-off-by: Alexandre Belloni commit 802a779aeb662fadc0012aafba1da111debc623d Author: Alexandre Belloni Date: Mon Apr 1 18:08:09 2019 +0200 rtc: pcf85063: set range This is a standard BCD RTC that will fail in 2100. Signed-off-by: Alexandre Belloni commit 3555a3425822601ea16a3508b803fa7c1158cba0 Author: Alexandre Belloni Date: Mon Apr 1 18:08:08 2019 +0200 rtc: pcf85063: convert to devm_rtc_allocate_device This allows further improvement of the driver. Signed-off-by: Alexandre Belloni commit 191c0da112e0e880587c50b692beff7ba5300a75 Author: Alexandre Belloni Date: Mon Apr 1 18:08:07 2019 +0200 rtc: pcf85063: remove bogus i2c functionality check Only smbus reads and write are done in the driver, plain i2c functionality is not required. Signed-off-by: Alexandre Belloni commit de311aa8d47f9fe8d11de305273a944578d92f67 Author: Alexandre Belloni Date: Mon Apr 1 18:33:49 2019 +0200 rtc: pcf85063: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Signed-off-by: Alexandre Belloni commit 0f21700ac40cb6c1619bef497f8f4390fa690310 Author: Alexandre Belloni Date: Mon Apr 1 18:08:05 2019 +0200 rtc: pcf85063: switch to probe_new struct i2c_device_id argument of probe() is not used, so use probe_new() instead. Signed-off-by: Alexandre Belloni commit 0c46b07ce4d5000855d810d61bb18fb4b0c4cc3b Author: Anson Huang Date: Mon Apr 1 05:29:13 2019 +0000 rtc: snvs: use devm_platform_ioremap_resource() to simplify code Use the new helper devm_platform_ioremap_resource() which wraps the platform_get_resource() and devm_ioremap_resource() together, to simplify the code. Signed-off-by: Anson Huang Signed-off-by: Alexandre Belloni commit cf37fa79a7617049223172f1e7729da8deb5cd01 Author: Anson Huang Date: Mon Apr 1 05:21:43 2019 +0000 rtc: mxc: use devm_platform_ioremap_resource() to simplify code Use the new helper devm_platform_ioremap_resource() which wraps the platform_get_resource() and devm_ioremap_resource() together, to simplify the code. Signed-off-by: Anson Huang Signed-off-by: Alexandre Belloni commit e7afddb2b4d24fba318f5e74216bae06dcb36a10 Author: Anson Huang Date: Wed Mar 27 06:18:20 2019 +0000 rtc: snvs: use dev_pm_set_wake_irq() to simplify code With calling dev_pm_set_wake_irq() to set SNVS RTC as wakeup source for suspend, generic wake irq mechanism will automatically enable it as wakeup source when suspend, then the suspend/resume callback which are ONLY for enabling/disabling irq wake can be removed, it simplifies the code. Signed-off-by: Anson Huang Signed-off-by: Alexandre Belloni commit 184a182ed52a9b224cfa081a01e920c6ab1ce0bd Author: Joel Stanley Date: Wed Mar 27 11:32:15 2019 +1030 rtc: Add ASPEED RTC driver Read and writes the time to the non-battery backed RTC in the ASPEED BMC system on chip families. Signed-off-by: Joel Stanley Signed-off-by: Alexandre Belloni commit e3b371109e01a9f12715e7d43a3a4e187c246ae3 Author: Joel Stanley Date: Wed Mar 27 11:32:14 2019 +1030 dt-bindings: rtc: Add on-chip ASPEED RTC documentation Describe the RTC as used in the ASPEED BMC SoCs. Signed-off-by: Joel Stanley Signed-off-by: Alexandre Belloni commit 9a8f2d12ffaf323f12a2ca3208bc3d47b2d9ca58 Author: Alexandre Belloni Date: Mon Mar 25 18:17:19 2019 +0100 rtc: brcmstb-waketimer: switch to rtc_time64_to_tm Call the 64bit version of rtc_time_to_tm as the range is enforced by the core. Reviewed-by: Florian Fainelli Signed-off-by: Alexandre Belloni commit 24db953e942bd7a983e97892bdaddf69d00b1199 Author: Pi-Hsun Shih Date: Mon Mar 11 15:55:40 2019 +0800 rtc: mt6397: Don't call irq_dispose_mapping. The IRQ mapping was changed to not being created in the rtc-mt6397 driver, so the irq_dispose_mapping is no longer needed. Also the dev_id passed to free_irq should be the same as the last argument passed to request_threaded_irq. This prevents a "Trying to free already-free IRQ 274" warning when unbinding the driver. Fixes: e695d3a0b3b3 ("mfd: mt6397: Create irq mappings in mfd core driver") Signed-off-by: Pi-Hsun Shih Signed-off-by: Alexandre Belloni commit fd86b2d4bbfc66a42af51677a72254d304d79c99 Author: YueHaibing Date: Tue Mar 19 23:25:31 2019 +0800 rtc: opal: Make opal_tpo_alarm_irq_enable static Fix sparse warning: drivers/rtc/rtc-opal.c:227:5: warning: symbol 'opal_tpo_alarm_irq_enable' was not declared. Should it be static? Signed-off-by: YueHaibing Signed-off-by: Alexandre Belloni commit d3062d1d7415cb5a37777220357aca51a491c3d7 Author: Geert Uytterhoeven Date: Fri Mar 22 08:26:12 2019 +0100 rtc: Fix timestamp value for RTC_TIMESTAMP_BEGIN_1900 Printing "mktime64(1900, 1, 1, 0, 0, 0)" gives -2208988800. Fixes: 83bbc5ac63326433 ("rtc: Add useful timestamp definitions") Signed-off-by: Geert Uytterhoeven Signed-off-by: Alexandre Belloni commit e07fa839d943142487af2dd053dac8974d59e5dd Author: Alexandre Belloni Date: Fri Mar 22 08:16:11 2019 +0100 rtc: wm831x: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Acked-by: Charles Keepax Signed-off-by: Alexandre Belloni commit 23992449886837abef8c13e901b05c93aa0ca3a1 Author: Alexandre Belloni Date: Fri Mar 22 08:16:10 2019 +0100 rtc: wm831x: switch to rtc_time64_to_tm/rtc_tm_to_time64 Call the 64bit versions of rtc_tm time conversion now that the range is enforced by the core. Acked-by: Charles Keepax Signed-off-by: Alexandre Belloni commit d315bc1be9553be33ea5ae5df20e0b2743bca2ff Author: Alexandre Belloni Date: Fri Mar 22 08:16:09 2019 +0100 rtc: wm831x: remove unnecessary goto There is no specific handling in the error path of wm831x_rtc_probe, remove the unnecessary goto and label. Acked-by: Charles Keepax Signed-off-by: Alexandre Belloni commit b9a1d801a9dd2c20c4ac3a3f0f220ad589a56f88 Author: Alexandre Belloni Date: Fri Mar 22 08:16:08 2019 +0100 rtc: wm831x: set range The wm831x has a 32bit second counter. Acked-by: Charles Keepax Signed-off-by: Alexandre Belloni commit b599db3a9f40582d0a3aad6ec16ba1c3712d57c2 Author: Alexandre Belloni Date: Thu Mar 21 11:15:57 2019 +0100 rtc: da9063: switch to rtc_time64_to_tm/rtc_tm_to_time64 Call the 64bit versions of rtc_tm time conversion now that the range is enforced by the core. Acked-by: Steve Twiss Signed-off-by: Alexandre Belloni commit 5ff404d1496e131f2fccc100cfc153ee2b34b4d3 Author: Alexandre Belloni Date: Thu Mar 21 11:15:56 2019 +0100 rtc: da9063: set range The DA9062 and DA9063 have a year register that can go up to 0x3F. Acked-by: Steve Twiss Signed-off-by: Alexandre Belloni commit 64bef02c92fa16c9f1d1d1770154f4d74b8f04a0 Author: Alexandre Belloni Date: Fri Mar 22 08:22:56 2019 +0100 rtc: sun4v: switch to SPDX identifier Use SPDX-License-Identifier to be clearer on the license. Choose the v2 only as this is the default Linux license. Acked-by: David S. Miller Signed-off-by: Alexandre Belloni commit 3ec99d6136f00d1a73295ba18544fdbfd8fa2a1e Author: Alexandre Belloni Date: Fri Mar 22 08:22:55 2019 +0100 rtc: sun4v: set range The Sun4v Hypervisor Core API Specification states: Time is described by a single unsigned 64-bit word equivalent to a time_t for the POSIX time(2) system call. The word contains the time since the Epoch (00:00:00 UTC, January 1, 1970), measured in seconds. Acked-by: David S. Miller Signed-off-by: Alexandre Belloni commit 65c6f638d600181f66a6a5aa2e86a4162ca87a38 Author: Alexandre Belloni Date: Fri Mar 22 08:22:54 2019 +0100 rtc: sun4v: switch to rtc_time64_to_tm/rtc_tm_to_time64 Call the 64bit versions of rtc_tm time conversion as the hypervisor handles 64bit values. Acked-by: David S. Miller Signed-off-by: Alexandre Belloni commit 58c92990cc2798da8c6c795a37248695d960b3e3 Author: Alexandre Belloni Date: Mon Mar 18 14:22:55 2019 +0100 rtc: omap: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Signed-off-by: Alexandre Belloni commit 28c6852e47a96cfab4ab26fe31ae57f1dbd415ad Author: Alexandre Belloni Date: Mon Mar 18 14:26:08 2019 +0100 rtc: omap: switch to rtc_time64_to_tm/rtc_tm_to_time64 Call the 64bit versions of rtc_time_to_tm now that the range is enforced by the core. Signed-off-by: Alexandre Belloni commit 72dd89c0bcd3d1def1eb6e8a8ecd8456d9bea288 Author: Alexandre Belloni Date: Wed Mar 20 13:44:28 2019 +0100 rtc: ps3: set range The PS3 has a 64bit second counter from 2000. While this exceeds the 64bit UNIX timestamp, there is not doubt that non of them will still be working by then. Signed-off-by: Alexandre Belloni commit 0b5e47bbaa5ea5a91c8bfc9249fcb34203c66390 Author: Alexandre Belloni Date: Wed Mar 20 13:44:27 2019 +0100 rtc: ps3: convert to devm_rtc_allocate_device This allows further improvement of the driver. Signed-off-by: Alexandre Belloni commit e85b930bc6b7d39421556e57cad638651a9d6588 Author: Alexandre Belloni Date: Wed Mar 20 13:44:26 2019 +0100 rtc: ps3: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Reviewed-by: Geert Uytterhoeven Signed-off-by: Alexandre Belloni commit 70c805c23fce48ff48c222e1ba3f8bff63cfe26f Author: Alexandre Belloni Date: Wed Mar 20 13:44:25 2019 +0100 rtc: ps3: switch to rtc_time64_to_tm/rtc_tm_to_time64 Call the 64bit versions of rtc_tm time conversion as the PS3 handles 64bit values. Signed-off-by: Alexandre Belloni commit be8bf986c0bf97701cb871cb12cdb405b4e54ef9 Author: Alexandre Belloni Date: Wed Mar 20 13:40:42 2019 +0100 rtc: at91sam9: correct trivial checkpatch warnings Correct trivial checkpatch warnings, mostly whitespace issues and unbalanced braces. Acked-by: Nicolas Ferre Signed-off-by: Alexandre Belloni commit bc40072d71d5d0d1b073a115ad48b7ab72c97a3c Author: Alexandre Belloni Date: Wed Mar 20 13:40:41 2019 +0100 rtc: at91sam9: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text Acked-by: Nicolas Ferre Signed-off-by: Alexandre Belloni commit 8af760a3ec9b76d1ee22e6ab66688e5401132cdf Author: Alexandre Belloni Date: Wed Mar 20 13:40:40 2019 +0100 rtc: at91sam9: switch to rtc_time64_to_tm/rtc_tm_to_time64 Call the 64bit versions of rtc_tm time conversion as the range is enforced by the core. Acked-by: Nicolas Ferre Signed-off-by: Alexandre Belloni commit 255c43ca01427442447173bc37678eb458bedec7 Author: Alexandre Belloni Date: Wed Mar 20 13:40:39 2019 +0100 rtc: at91sam9: set range The AT91 RTT is a 32bit second counter that is saved in a 32bit global purpose register. Acked-by: Nicolas Ferre Signed-off-by: Alexandre Belloni commit 6c7293e7290a0baeb3017020564d929df2132efd Author: Alexandre Belloni Date: Wed Mar 20 13:40:38 2019 +0100 rtc: at91sam9: convert to devm_rtc_allocate_device This allows further improvement of the driver. Acked-by: Nicolas Ferre Signed-off-by: Alexandre Belloni commit 1a76a77c8800a50b98bd38b7b1ffec32fe107bc1 Author: Alexandre Belloni Date: Wed Mar 20 13:40:37 2019 +0100 rtc: at91sam9: drop platform_data support ARCH_AT91 is DT only for a while, drop platform data support. Acked-by: Nicolas Ferre Signed-off-by: Alexandre Belloni commit beee05dfbead2331a3183dee8ddcf10066278355 Author: Alexandre Belloni Date: Wed Mar 20 12:30:10 2019 +0100 rtc: sh: set range The SH RTC is a BCD RTC with some version having 4 digits for the year. The range for the RTCs with only 2 digits for the year was unfortunately shifted to handle 1999 to 2098. Reviewed-by: Geert Uytterhoeven Signed-off-by: Alexandre Belloni commit 1097998d27da39578542e79ff865b4d74e755cd0 Author: Alexandre Belloni Date: Wed Mar 20 12:30:09 2019 +0100 rtc: sh: fix possible race condition The IRQ is requested before the struct rtc is allocated and registered, but this struct is used in the IRQ handler. This may lead to a NULL pointer dereference. Switch to devm_rtc_allocate_device/rtc_register_device to allocate the rtc struct before requesting the IRQ. Reviewed-by: Geert Uytterhoeven Tested-by: Geert Uytterhoeven Signed-off-by: Alexandre Belloni commit 9852023d204b97324e7fa84f50f28a9d602b79fb Author: Alexandre Belloni Date: Wed Mar 20 12:30:08 2019 +0100 rtc: sh: stop resetting time to epoch There is no point in resetting the time to epoch as this means that userspace will never get the valuable information that time is actually invalid. Reviewed-by: Geert Uytterhoeven Tested-by: Geert Uytterhoeven [Anders Roxell : remove unused variable r] Signed-off-by: Anders Roxell Signed-off-by: Alexandre Belloni commit c1576497b286f71e7abd0208f846245f01b3671e Author: Alexandre Belloni Date: Wed Mar 20 13:43:35 2019 +0100 rtc: dm355evm: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text Signed-off-by: Alexandre Belloni commit c5655adc02c409435846844831f0e8785ab12180 Author: Alexandre Belloni Date: Wed Mar 20 13:43:34 2019 +0100 rtc: dm355evm: switch to rtc_time64_to_tm/rtc_tm_to_time64 Call the 64bit versions of rtc_tm time conversion as the range is enforced by the core. Signed-off-by: Alexandre Belloni commit 4bc85a3873c60f9617e9095c556d2823cbda2237 Author: Alexandre Belloni Date: Wed Mar 20 13:43:33 2019 +0100 rtc: dm355evm: set range The MSP430 has a 32bit second counter. Signed-off-by: Alexandre Belloni commit c50fd69a4f9eb5147ff2b44b7ee9b226217e4106 Author: Alexandre Belloni Date: Wed Mar 20 13:43:32 2019 +0100 rtc: dm355evm: convert to devm_rtc_allocate_device This allows further improvement of the driver. Signed-off-by: Alexandre Belloni commit 2be7f1b5d096e789f4bad1708ec566697b17b24e Author: Alexandre Belloni Date: Wed Mar 20 13:34:17 2019 +0100 rtc: goldfish: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text Signed-off-by: Alexandre Belloni commit b509306d1f01c5a78e51fb3e197495ca27b2ff3f Author: Alexandre Belloni Date: Wed Mar 20 13:34:16 2019 +0100 rtc: goldfish: switch to rtc_time64_to_tm/rtc_tm_to_time64 This RTC handles dates after 2106 (up to July 2554), call the 64bit versions of rtc_tm time conversion. Signed-off-by: Alexandre Belloni commit 6a6ec8c15d35815af1ca83e269f48944c49aff9b Author: Alexandre Belloni Date: Wed Mar 20 13:34:15 2019 +0100 rtc: goldfish: allow building on more than MIPS Goldfish can be ARM or x86, allow building the driver for more than just MIPS. Signed-off-by: Alexandre Belloni commit bd01386e2c28c8565937a7a13129c30757db9bc5 Author: Alexandre Belloni Date: Wed Mar 20 13:34:14 2019 +0100 rtc: goldfish: sort headers Sort headers alphabetically. Signed-off-by: Alexandre Belloni commit 5e2954fd8e3f4e01cb7315e9950fb772b9402130 Author: Alexandre Belloni Date: Wed Mar 20 13:34:13 2019 +0100 rtc: goldfish: add range This RTC has a 64bit nanosecond counter. Signed-off-by: Alexandre Belloni commit 409b84e3eb941bf3a9486f9f90626a6d31d33b41 Author: Alexandre Belloni Date: Wed Mar 20 13:34:12 2019 +0100 rtc: goldfish: convert to devm_rtc_allocate_device This allows further improvement of the driver. Signed-off-by: Alexandre Belloni commit 58f889150a665426495abf2d294708f3576738ff Author: Alexandre Belloni Date: Wed Mar 20 13:32:33 2019 +0100 rtc: xgene: use .set_time Use .set_time instead of the deprecated .set_mmss. Signed-off-by: Alexandre Belloni commit 43f327fa48480af31678576513458f4a5e66a3f6 Author: Alexandre Belloni Date: Wed Mar 20 13:32:32 2019 +0100 rtc: xgene: switch to rtc_time64_to_tm/rtc_tm_to_time64 Call the 64bit versions of rtc_tm time conversion as the range is enforced by the core. Signed-off-by: Alexandre Belloni commit 9a842a7ebb169c2a8d8b9a3489d8cacfc235f6bf Author: Alexandre Belloni Date: Wed Mar 20 13:32:31 2019 +0100 rtc: xgene: stop caching alarm_time There is no point in caching alarm_time for .read_alarm because .read_alarm is only called at boo time and thus alarm_time is always 0. Signed-off-by: Alexandre Belloni commit db7853414b3eb8fbd16017edd3d60e6f717170ff Author: Alexandre Belloni Date: Wed Mar 20 13:32:30 2019 +0100 rtc: xgene: correct checkpatch issues Correct trivial whitespace issues. Also sort the headers. Signed-off-by: Alexandre Belloni commit 3a205b9dc87de108e096ac128e49feda9e3e58a8 Author: Alexandre Belloni Date: Wed Mar 20 13:32:29 2019 +0100 rtc: xgene: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Signed-off-by: Alexandre Belloni commit 490595abfd36f29fbff9cb940531f1a7c58dd489 Author: Alexandre Belloni Date: Wed Mar 20 13:32:28 2019 +0100 rtc: xgene: set range CCVR is a 32bit second counter. Signed-off-by: Alexandre Belloni commit a652e00ee1233e251a337c28e18a1da59224e5ce Author: Alexandre Belloni Date: Wed Mar 20 13:32:27 2019 +0100 rtc: xgene: fix possible race condition The IRQ is requested before the struct rtc is allocated and registered, but this struct is used in the IRQ handler. This may lead to a NULL pointer dereference. Switch to devm_rtc_allocate_device/rtc_register_device to allocate the rtc struct before requesting the IRQ. Signed-off-by: Alexandre Belloni commit 540a11d8bd00a89222220efcaa2f33fcbc68404f Author: Alexandre Belloni Date: Wed Mar 20 13:03:12 2019 +0100 rtc: test: do not use assignment in if condition Fix checkpatch error: drivers/rtc/rtc-test.c:155: ERROR: do not use assignment in if condition Signed-off-by: Alexandre Belloni commit 8bc9630ad1ae6e38e0568c7ec27e4a9a45427c11 Author: Alexandre Belloni Date: Wed Mar 20 13:02:57 2019 +0100 rtc: 88pm80x: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Signed-off-by: Alexandre Belloni commit 9c3ab8558632577b8fd52a680337a39bb6d14bbe Author: Alexandre Belloni Date: Wed Mar 20 12:59:59 2019 +0100 rtc: ab-b5ze-s3: correct checkpatch issues Correct trivial whitespace and split strings issues. Signed-off-by: Alexandre Belloni commit 606cc43c720bdef01a22c9d221434c635139d84e Author: Alexandre Belloni Date: Wed Mar 20 12:59:09 2019 +0100 rtc: core: correct trivial checkpatch warnings Correct trivial checkpatch warnings, mostly whitespace issues and unbalanced braces. Signed-off-by: Alexandre Belloni commit 6875404fdb44f5353ef374c7c95c7701862fe2b3 Author: Linus Walleij Date: Tue Mar 19 08:40:14 2019 +0100 rtc: x1205: Add DT probing support This makes it possible to probe the X1205 RTC from the device tree. This is needed when adding device tree boot support for the IXP4xx-based NSLU2 which has this RTC. Signed-off-by: Linus Walleij Signed-off-by: Alexandre Belloni commit 87b7cbbc704ded68183e13e9382455e10e5c0e8e Author: Linus Walleij Date: Tue Mar 19 08:40:13 2019 +0100 rtc: x1205: Add DT bindings This adds device tree bindings for the Xircom X1205 RTC found in the Linksys NSLU2. Cc: devicetree@vger.kernel.org Signed-off-by: Linus Walleij [alexandre.belloni@bootlin.com: move doc to rtc.txt] Signed-off-by: Alexandre Belloni commit 737842e575570d1a025068c22d82af68f8fb8532 Author: Wolfram Sang Date: Mon Mar 18 16:57:27 2019 +0100 rtc: da9063: convert header to SPDX Covnert the header of the source file to SPDX. Signed-off-by: Wolfram Sang Reviewed-by: Simon Horman Signed-off-by: Alexandre Belloni commit 35118b7a4ea063305a812208caf2cb8a56b2062e Author: Alexandre Belloni Date: Mon Mar 18 13:44:38 2019 +0100 rtc: omap: let the core handle range Let the core handle the RTC range instead of open coding it. Tested-by: Keerthy Reviewed-by: Keerthy Signed-off-by: Alexandre Belloni commit b46c5815be4c6fa27dbb66447e15902261a21ace Author: Alexandre Belloni Date: Fri Mar 15 14:35:10 2019 +0100 rtc: mv: add range This RTC handles time from 2000-01-01 00:00:00 to 2099-12-31 23:59:59 with a weird rollover to 2000-06-23 00:00:00. Tested-by: Gregory CLEMENT Signed-off-by: Alexandre Belloni commit 5b25a71b68eb9fcdc1c99447fdc4ee3c1d23a64f Author: Alexandre Belloni Date: Fri Mar 15 14:35:09 2019 +0100 rtc: mv: convert to devm_rtc_allocate_device This allows further improvement of the driver. Tested-by: Gregory CLEMENT Signed-off-by: Alexandre Belloni commit 252163a66a06859f468ef1e00fa5a1f377b16eed Author: Sugar Zhang Date: Wed Apr 3 21:40:48 2019 +0800 ASoC: rockchip: pdm: optimize clear logic There is no need to reset controller every time, do this once in pdm_probe. Signed-off-by: Sugar Zhang Signed-off-by: Mark Brown commit a7980cd212cef9002fe9683f440d27609d1aae37 Author: Sugar Zhang Date: Wed Apr 3 21:40:47 2019 +0800 ASoC: rockchip: pdm: add default regs This patch add default regs value for controller. Signed-off-by: Sugar Zhang Signed-off-by: Mark Brown commit fb20de606316a446efdfb0f775a892f782165783 Author: Sugar Zhang Date: Wed Apr 3 21:40:46 2019 +0800 ASoC: rockchip: pdm: using left justified store mode This patch set left justified store mode default. Signed-off-by: Sugar Zhang Signed-off-by: Mark Brown commit b67436152959361bd3960b948de61c055ef5cd76 Author: Alexandre Belloni Date: Fri Mar 15 14:35:08 2019 +0100 rtc: mv: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Reviewed-by: Gregory CLEMENT Signed-off-by: Alexandre Belloni commit 1d7765ba15aca68f3bc52f59434c1c34855bbb54 Author: Andy Shevchenko Date: Tue Mar 26 17:21:14 2019 +0200 gpiolib: Don't WARN on gpiod_put() for optional GPIO In case of debug and optional GPIO requested, the gpiod_put() is not aware of and will WARN, which is not the case. Make gpiod_put() NULL-aware to keep silent for optional GPIOs. Signed-off-by: Andy Shevchenko Signed-off-by: Bartosz Golaszewski commit 6597ce3de9e443f0cab693496fc529f55ae6eb01 Author: Jernej Skrabec Date: Wed Apr 3 17:14:03 2019 +0200 clk: sunxi-ng: h6: Allow video & vpu clocks to change parent rate Video related clocks need to set rate as close as possible to the requested one, so they should be able to change parent clock rate. When processing 4K video, VPU clock has to be set to higher rate than it is default parent rate. Because of that, VPU clock should be able to change parent clock rate. Add CLK_SET_RATE_PARENT flag to tcon-lcd0, tcon-tv0 and ve. Signed-off-by: Jernej Skrabec Signed-off-by: Maxime Ripard commit 18009b802bd1c577b7bb2ad9b506d4a186bac72d Author: Maxime Ripard Date: Mon Mar 11 16:14:50 2019 +0100 ARM: dts: sunxi: Remove useless pinctrl nodes We have for the H3 boards some kind of cargo cult apparently, where we would have a pinctrl node even for GPIOs without any particular settings. This is pretty much useless, so let's remove them. Acked-by: Chen-Yu Tsai Reviewed-by: Linus Walleij Signed-off-by: Maxime Ripard commit a107bd2b6b63d510fecc402657f627dcfb205c89 Author: Maxime Ripard Date: Mon Mar 11 16:09:47 2019 +0100 ARM: dts: sunxi: Remove pinctrl groups setting bias So far we've enabled pull-up and pull-down resistors on GPIOs using a pinctrl node. Now that the GPIO binding allows for a flag to declare this, let's switch to it. This brings us closer to removing all the GPIO pinctrl nodes, which will in turn allow us to switch the pinctrl strict mode on. Acked-by: Chen-Yu Tsai Reviewed-by: Linus Walleij Signed-off-by: Maxime Ripard commit 9fda6693335cd51b0a74cffaac266c83439f7efe Author: Geert Uytterhoeven Date: Wed Apr 3 17:08:52 2019 +0200 spi: sh-msiof: Convert to use GPIO descriptors Convert GPIO chip selects in the Renesas MSIOF SPI driver from legacy GPIO numbers to GPIO descriptors. Notes: - The board file for the SH7724-based Ecovec24 development board now registers a GPIO descriptor lookup, instead of passing a GPIO number through controller_data, - sh_msiof_get_cs_gpios() must release all GPIOs, else spi_get_gpio_descs() cannot claim them during SPI controller registration. Signed-off-by: Geert Uytterhoeven Signed-off-by: Mark Brown commit 1a8fa5166ec53927e2c978bce9a107c9f8d5bf60 Author: kbuild test robot Date: Thu Apr 4 02:16:51 2019 +0800 spi: bcm2835aux: polling_limit_us can be static Fixes: 5fd917afc4bf ("spi: bcm2835aux: make the polling duration limits configurable") Signed-off-by: kbuild test robot Signed-off-by: Mark Brown commit 1723fdec5fcbc4de3d26bbb23a9e1704ee258955 Author: Geert Uytterhoeven Date: Wed Apr 3 16:46:56 2019 +0200 spi: Add missing error handling for CS GPIOs While devm_gpiod_get_index_optional() returns NULL if the GPIO is not present (i.e. -ENOENT), it may still return other error codes, like -EPROBE_DEFER. Currently these are not handled, leading to unrecoverable failures later in case of probe deferral: gpiod_set_consumer_name: invalid GPIO (errorpointer) gpiod_direction_output: invalid GPIO (errorpointer) gpiod_set_value_cansleep: invalid GPIO (errorpointer) gpiod_set_value_cansleep: invalid GPIO (errorpointer) gpiod_set_value_cansleep: invalid GPIO (errorpointer) Detect and propagate errors to fix this. Fixes: f3186dd876697e69 ("spi: Optionally use GPIO descriptors for CS GPIOs") Signed-off-by: Geert Uytterhoeven Signed-off-by: Mark Brown commit 807195f2103f8662f8c0f9baf71dd7bc1a6b745b Author: Geert Uytterhoeven Date: Wed Apr 3 16:46:02 2019 +0200 spi: spi-gpio: Remove spi->controller_data comment The conversion from GPIO numbers to GPIO descriptors removed the use of spi->controller_data, but forgot to update a comment referring to it. Fixes: 9b00bc7b901ff672 ("spi: spi-gpio: Rewrite to use GPIO descriptors") Signed-off-by: Geert Uytterhoeven Signed-off-by: Mark Brown commit 8a1d95c393d971e624fc28f11516b0bc3a7fa706 Author: Annaliese McDermond Date: Wed Apr 3 21:17:16 2019 -0700 ASoC: tlv320aic32x4: Update copyright and use SPDX identifier Update the copyright dates and use the SPDX identifier instead of reciting the license. Signed-off-by: Annaliese McDermond Signed-off-by: Mark Brown commit adcc9f2b064e60f569979fb1de1f158e8bed8a6d Author: Baolin Wang Date: Wed Apr 3 00:47:55 2019 -0700 ASoC: sprd: Fix the smatch warning Remove the unnecessary validation of the 'cstream' variable to fix below smatch warning: sprd_platform_compr_drain_notify() warn: variable dereferenced before check 'cstream' (see line 105) Reported-by: Dan Carpenter Signed-off-by: Baolin Wang Signed-off-by: Mark Brown commit d82e78b0a578a712629cdb6cb7bfc66fb3215306 Author: YueHaibing Date: Wed Apr 3 07:11:59 2019 +0000 ASoC: Mediatek: MT8183: Fix platform_no_drv_owner.cocci warnings Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci Signed-off-by: YueHaibing Signed-off-by: Mark Brown commit b6c573e5e8652330525d61b583203e7b71a09c53 Author: YueHaibing Date: Wed Apr 3 07:11:39 2019 +0000 ASoC: Mediatek: MT8183: Fix platform_no_drv_owner.cocci warnings Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci Signed-off-by: YueHaibing Signed-off-by: Mark Brown commit d1ff8d07166b7388901137c551a4118054ca4760 Author: YueHaibing Date: Wed Mar 20 22:14:25 2019 +0800 pinctrl: fsl: Make pinctrl_ipc_handle static Fix sparse warning: drivers/pinctrl/freescale/pinctrl-scu.c:38:19: warning: symbol 'pinctrl_ipc_handle' was not declared. Should it be static? Signed-off-by: YueHaibing Reviewed-by: Mukesh Ojha Signed-off-by: Linus Walleij commit 0548448b719ac78fa18fdbcd03856952ba6cc7dc Author: Charles Keepax Date: Tue Mar 19 13:48:51 2019 +0000 pinctrl: lochnagar: Add support for the Cirrus Logic Lochnagar Lochnagar is an evaluation and development board for Cirrus Logic Smart CODEC and Amp devices. It allows the connection of most Cirrus Logic devices on mini-cards, as well as allowing connection of various application processor systems to provide a full evaluation platform. This driver supports the board controller chip on the Lochnagar board. Lochnagar provides many pins which can generally be used for an audio function such as an AIF or a PDM interface, but also as GPIOs. Signed-off-by: Charles Keepax Reviewed-by: Linus Walleij Signed-off-by: Linus Walleij commit e3097b6b2e0d791a462b337941e9176c533d39f3 Author: Charles Keepax Date: Tue Mar 19 13:48:50 2019 +0000 pinctrl: lochnagar: Add initial binding documentation Lochnagar is an evaluation and development board for Cirrus Logic Smart CODEC and Amp devices. It allows the connection of most Cirrus Logic devices on mini-cards, as well as allowing connection of various application processor systems to provide a full evaluation platform. This driver supports the board controller chip on the Lochnagar board. Signed-off-by: Charles Keepax Reviewed-by: Rob Herring Acked-by: Linus Walleij Signed-off-by: Linus Walleij commit b571bc623eb969a9dc004bba0b9185f0a02814ed Merge: 4950c2ba49cc c0a720770c01 Author: David S. Miller Date: Wed Apr 3 21:50:20 2019 -0700 Merge branch 'net-More-movement-to-fib_nh_common' David Ahern says: ==================== net: More movement to fib_nh_common Second set of three with the end goal of enabling IPv6 gateways with IPv4 routes. This set moves: - the ipv4 tracepoint to take a fib_nh_common and updates it to handle a v6 gateway. - consolidates route notifications to use the same fill functions for both ipv4 and ipv6 v4 - enhanced the commit message for patches 1 and 2 v3 - comments from Martin: + renamed FIB_RES_NH to FIB_RES_NHC + removed family check from fib_result_prefsrc + in fib_nexthop_info, renamed nexthop arg to nhc and dropped for_ipv4 arg v2 - dropped patches moving cached routes and exception buckets to fib_nh_common. The goal is allowing a fib6_nh to be used with an IPv4 route. The hold up is the need for separate exception buckets - one for v6 routes and one for v4 routes. When all of the nexthop patches are in, adding a secondi exception bucket pushes IPv6 fib6_info allocations over 256 which means fib6_info allocations roll up to 512. Hence, deferring the patches until some data mining can be done to keep the allocations at 256. ==================== Acked-by: Martin KaFai Lau Signed-off-by: David S. Miller commit c0a720770c01e67374b15f348f17a52409f6545c Author: David Ahern Date: Tue Apr 2 14:11:58 2019 -0700 ipv6: Flip to fib_nexthop_info Export fib_nexthop_info and fib_add_nexthop for use by IPv6 code. Remove rt6_nexthop_info and rt6_add_nexthop in favor of the IPv4 versions. Update fib_nexthop_info for IPv6 linkdown check and RTA_GATEWAY for AF_INET6. Signed-off-by: David Ahern Acked-by: Martin KaFai Lau Signed-off-by: David S. Miller commit c236419981224d37a5d0a6e7781f73479d4a030e Author: David Ahern Date: Tue Apr 2 14:11:57 2019 -0700 ipv4: Change fib_nexthop_info and fib_add_nexthop to take fib_nh_common With the exception of the nexthop weight, the nexthop attributes used by fib_nexthop_info and fib_add_nexthop come from the fib_nh_common struct. Update both to use it and change fib_nexthop_info to check the family as needed. nexthop weight comes from the common struct for existing use cases, but for nexthop groups the weight is outside of the fib_nh_common to allow the same nexthop definition to be used in multiple groups with different weights. Signed-off-by: David Ahern Acked-by: Martin KaFai Lau Signed-off-by: David S. Miller commit b0f60193632e4eab4c9663101bb435dd7bc27ae8 Author: David Ahern Date: Tue Apr 2 14:11:56 2019 -0700 ipv4: Refactor nexthop attributes in fib_dump_info Similar to ipv6, move addition of nexthop attributes to dump message into helpers that are called for both single path and multipath routes. Align the new helpers to the IPv6 variant which most notably means computing the flags argument based on settings in nh_flags. The RTA_FLOW argument is unique to IPv4, so it is appended after the new fib_nexthop_info helper. The intent of a later patch is to make both fib_nexthop_info and fib_add_nexthop usable for both IPv4 and IPv6. This patch is stepping stone in that direction. Signed-off-by: David Ahern Acked-by: Martin KaFai Lau Signed-off-by: David S. Miller commit eba618abacade71669eb67c3360eecfee810cc88 Author: David Ahern Date: Tue Apr 2 14:11:55 2019 -0700 ipv4: Add fib_nh_common to fib_result Most of the ipv4 code only needs data from fib_nh_common. Add fib_nh_common selection to fib_result and update users to use it. Right now, fib_nh_common in fib_result will point to a fib_nh struct that is embedded within a fib_info: fib_info --> fib_nh fib_nh ... fib_nh ^ fib_result->nhc ----+ Later, nhc can point to a fib_nh within a nexthop struct: fib_info --> nexthop --> fib_nh ^ fib_result->nhc ---------------+ or for a nexthop group: fib_info --> nexthop --> nexthop --> fib_nh nexthop --> fib_nh ... nexthop --> fib_nh ^ fib_result->nhc ---------------------------+ In all cases nhsel within fib_result will point to which leg in the multipath route is used. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 0af7e7c128eb33f2dc16ed088ced00675785d628 Author: David Ahern Date: Tue Apr 2 14:11:54 2019 -0700 ipv4: Update fib_table_lookup tracepoint to take common nexthop Update fib_table_lookup tracepoint to take a fib_nh_common struct and dump the v6 gateway address if the nexthop uses it. Over the years saddr has not proven useful and the output of the tracepoint produces very long lines. Since saddr is not part of fib_nh_common, drop it. If it needs to be added later, fib_nh which contains saddr can be obtained from a fib_nh_common via container_of. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 4950c2ba49cc6f2b38dbedcfa0ff67acf761419a Author: Heiner Kallweit Date: Tue Apr 2 20:43:30 2019 +0200 net: phy: fix autoneg mismatch case in genphy_read_status The original patch didn't consider the case that autoneg process finishes successfully but both link partners have no mode in common. In this case there's no link, nevertheless we may be interested in what the link partner advertised. Like phydev->link we set phydev->autoneg_complete in genphy_update_link() and use the stored value in genphy_read_status(). This way we don't have to read register BMSR again. Fixes: b6163f194c69 ("net: phy: improve genphy_read_status") Signed-off-by: Heiner Kallweit Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 49ffba361d5b3637d3b926d8bfe79dde9710272c Merge: 0fd128428a14 e02c4a9d9b0d Author: David S. Miller Date: Wed Apr 3 21:45:49 2019 -0700 Merge branch 'marvel10g-suspend-resume' Antoine Tenart says: ==================== net: phy: marvell10g: implement suspend/resume callbacks This series implements the suspend/resume callbacks in the marvell10g PHY driver. Thanks, Antoine Since v3: - Use the new phy_set/clear_bits_mmd() instead of phy_modify_mmd(). - Use VEND2.f001.11 to power down the port instead of the per-mode LPOWER. Since v2: - Removed the third patch, setting the PHY in low power by default, as the change was controversial. - Rebased on the latest net-next. Since v1: - Fixed a mix up in the patches where two implementations of the suspend/resume callbacks were kept in the driver. - Rebased on the latest net-next. ==================== Signed-off-by: David S. Miller commit e02c4a9d9b0dea1fcdecef38710e9602d5ffdba6 Author: Antoine Tenart Date: Tue Apr 2 15:10:29 2019 +0200 net: phy: marvell10g: add the suspend/resume callbacks for the 88x2210 When the 88x2110 PHY support was added, the suspend and resume callbacks were forgotten. This patch adds them to the 88x2110 PHY callback definition. Signed-off-by: Antoine Tenart Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit af3e28cb9b271c0898d8919931f275d6aaf82e93 Author: Antoine Tenart Date: Tue Apr 2 15:10:28 2019 +0200 net: phy: marvell10g: implement suspend/resume callbacks This patch adds the suspend/resume callbacks for Marvell 10G PHYs. The three PCS (base-t, base-r and 1000base-x) are set in low power (the PCS are powered down) when the PHY isn't used. Signed-off-by: Antoine Tenart Reviewed-by: Heiner Kallweit Signed-off-by: David S. Miller commit 0fd128428a1494d01b826d201dad4cc6571bf2b5 Author: Gustavo A. R. Silva Date: Mon Apr 1 15:34:49 2019 -0500 net: dsa: microchip: mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warning: drivers/net/dsa/microchip/ksz9477.c: In function ‘ksz9477_get_interface’: drivers/net/dsa/microchip/ksz9477.c:1145:6: warning: this statement may fall through [-Wimplicit-fallthrough=] if (gbit) ^ drivers/net/dsa/microchip/ksz9477.c:1147:2: note: here case 0: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Signed-off-by: David S. Miller commit 936ee65ffc8fa35de4f20ffc867a3509568e1868 Author: Gustavo A. R. Silva Date: Mon Apr 1 14:39:31 2019 -0500 rxrpc: Mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warning: net/rxrpc/local_object.c: In function ‘rxrpc_open_socket’: net/rxrpc/local_object.c:175:6: warning: this statement may fall through [-Wimplicit-fallthrough=] if (ret < 0) { ^ net/rxrpc/local_object.c:184:2: note: here case AF_INET: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 Currently, GCC is expecting to find the fall-through annotations at the very bottom of the case and on its own line. That's why I had to add the annotation, although the intentional fall-through is already mentioned in a few lines above. This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Signed-off-by: David S. Miller commit c69a26b57bd8680aa947a443cbf37635f089bf50 Author: Maxime Ripard Date: Tue Mar 19 15:42:03 2019 +0100 pinctrl: sunxi: Allow to disable pinctrl drivers Our pinctrl drivers are consisting of some common code, and big pin tables that are SoC-specific. This is fine in most cases, but when you want to reduce the size of the particular kernel image, those big tables are, well, quite big. We haven't had the option to disable them in the past since they were hidden Kconfig options based on the SoC support. However, that granularity isn't great since we don't have one Kconfig option per-SoC, but rather one by family. Make those options selectable by the user so that they can disable it if needed, while keeping the current default to not change the standard case. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard Signed-off-by: Linus Walleij commit 04ed8c0c5b82c284f40449bed3458a822ad70cdb Author: Maxime Ripard Date: Thu Mar 14 20:32:53 2019 +0100 pinctrl: sunxi: Declare set_config on the GPIO chip Our pin controller can configure the pins no matter how they are muxed, so it makes sense to allow this for GPIOs as well. Add the generic set_config function so that we can rely on the existing pinctrl code we have. Signed-off-by: Maxime Ripard Acked-by: Chen-Yu Tsai Signed-off-by: Linus Walleij commit fb7dea6056286dd39067f936e226702b997e3e63 Author: Maxime Ripard Date: Thu Mar 14 20:32:52 2019 +0100 pinctrl: sunxi: Fix variable assignment syntax Lines are usually ended with a semi-column in C, yet this was copied from a structure declaration to the init variant while keeping the comma at the end. Make sure we have a normal syntax, instead of multiple assignments. Fixes: d83c82ce7ccd ("pinctrl: sunxi: support multiple pin controller") Signed-off-by: Maxime Ripard Acked-by: Chen-Yu Tsai Signed-off-by: Linus Walleij commit 90be64e27621dda449b102f95f795392828d3627 Author: Maxime Ripard Date: Thu Mar 14 20:32:51 2019 +0100 pinctrl: sunxi: implement pin_config_set The sunxi pinctrl only implements the pin_config_group_set callback at the moment, whereas the gpiochip_generic_config function relies on pin_config_set. Rework the functions a little to support pin_config_set, and rely on it for pin_config_group_set. Signed-off-by: Maxime Ripard Acked-by: Chen-Yu Tsai Signed-off-by: Linus Walleij commit 25ea6b19db54a76879e388ff4dfd67be48890f0d Author: YueHaibing Date: Sat Mar 23 21:27:53 2019 +0800 scsi: qla2xxx: Remove useless set memory to zero use memset() The memory return by kzalloc() has already be set to zero, so remove useless memset(0). Signed-off-by: YueHaibing Signed-off-by: Martin K. Petersen commit c2b997508078d907e431c77a72e03410c3002f68 Author: Gustavo A. R. Silva Date: Wed Mar 20 15:31:39 2019 -0500 scsi: mptscsih: Mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warnings: drivers/message/fusion/mptscsih.c: In function mptscsih_io_done : drivers/message/fusion/mptscsih.c:741:7: warning: this statement may fall through [-Wimplicit-fallthrough=] if ( ioc->bus_type == SAS ) { ^ drivers/message/fusion/mptscsih.c:790:3: note: here case MPI_IOCSTATUS_SCSI_TASK_TERMINATED: /* 0x0048 */ ^~~~ drivers/message/fusion/mptscsih.c:884:4: warning: this statement may fall through [-Wimplicit-fallthrough=] scsi_set_resid(sc, 0); ^~~~~~~~~~~~~~~~~~~~~ drivers/message/fusion/mptscsih.c:885:3: note: here case MPI_IOCSTATUS_SCSI_RECOVERED_ERROR: /* 0x0040 */ ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Martin K. Petersen commit c9d61a5aa39025caee2971dac7f471fbe761cb27 Author: Stanley Chu Date: Fri Mar 29 23:32:48 2019 +0800 scsi: dt-bindings: ufs: Add VCC capability on MediaTek UFS driver Add VCC supply for ufs-mediatek driver to provide power-saving operation during low-power modes. For example VCC can be turned-off during system suspend and turned-on after system is resumed. Signed-off-by: Stanley Chu Signed-off-by: Martin K. Petersen commit 55dc9b3c3156f469d1de209ea03afafeaf6fca08 Author: Stanley Chu Date: Fri Mar 29 23:32:47 2019 +0800 scsi: dt-bindings: ufs: Remove custom property "-fixed-regulator" Custom device tree property "-fixed-regulator" can be removed because, 1) It is not used anywhere in tree. 2) All handlings for "-fixed-regulator" have been removed in UFS driver. 3) There is no issue if an existed regulator defined "-fixed-regulator" property in device tree. Signed-off-by: Stanley Chu Signed-off-by: Martin K. Petersen commit 4fed62bc1c2679d5d4684d71c5ef48a384f29e98 Author: Jan Kotas Date: Wed Mar 27 14:44:05 2019 +0000 scsi: ufs-cdns: Add support for UFSHCI with M31 PHY This patch adds an additional PHY initialization, required for M31 PHY when used with Cadence UFS HC. A new compatible string has been added for this purpose. [mkp: nuke superfluous status return] Signed-off-by: Jan Kotas Signed-off-by: Martin K. Petersen commit 5328efce9461ce39c04e7b0b6eec563f5ac1f3e9 Author: Jan Kotas Date: Wed Mar 27 14:44:04 2019 +0000 scsi: dt-bindings: ufs-cdns: Update Cadence UFS compatibility list This patch adds a new compatible string description for CDNS UFS HCD + M31 16nm PHY. Signed-off-by: Jan Kotas Reviewed-by: Rob Herring Signed-off-by: Martin K. Petersen commit 60b7b823fb4158d89e5d4ca798c219bd97639a73 Author: Zeng Guangyue Date: Sat Mar 30 17:03:13 2019 +0800 scsi: ufs: remove unnecessary pointer evaluation The pointer value is initialized as &hba->vreg_info, and it's never changed. It's not necessary to check the pointer is null or not. Signed-off-by: Zeng Guangyue Acked-by: Tomas Winkler Signed-off-by: Martin K. Petersen commit 6087550338ad03f369eaddc1b995c0751a0a68ab Author: YueHaibing Date: Sat Mar 30 01:47:41 2019 +0000 scsi: qedf: Remove set but not used variable 'fr_len' Fixes gcc '-Wunused-but-set-variable' warning: drivers/scsi/qedf/qedf_fip.c: In function 'qedf_fcoe_send_vlan_req': drivers/scsi/qedf/qedf_fip.c:22:6: warning: variable 'fr_len' set but not used [-Wunused-but-set-variable] It's never used since introduction and can be removed. Signed-off-by: YueHaibing Acked-by: Manish Rangankar Signed-off-by: Martin K. Petersen commit f310a4eab8193ca1c6e29af4262a472d805ea6a4 Author: Colin Ian King Date: Fri Mar 29 23:44:23 2019 +0000 scsi: pm8001: fix spelling mistake, interupt -> interrupt Rename the functions pm8001_chip_is_our_interupt, pm80xx_chip_is_our_interupt and function pointer is_our_interrupt to fix spelling mistakes. Signed-off-by: Colin Ian King Acked-by: Jack Wang Signed-off-by: Martin K. Petersen commit 292c04cca8b7a260a8fbbd75bd3cc627409fa347 Author: Colin Ian King Date: Thu Mar 28 23:43:28 2019 +0000 scsi: pm8001: clean up dead code when PM8001_USE_MSIX is defined When macro PM8001_USE_MSIX is defined there are redundant dead code calls to pm8001_chip_intx_interrupt_{enable|disable} and pm8001_cr32. Clean this up for the defined PM8001_USE_MSIX and undefined PM8001_USE_MSIX cases. [mkp: squashed two patches] Signed-off-by: Colin Ian King Acked-by: Jack Wang Reviewed-by: Mukesh Ojha Signed-off-by: Martin K. Petersen commit f99b77e0bf4d4e53b81b6b0d16fdd34835891f7c Author: Himanshu Madhani Date: Tue Apr 2 14:24:34 2019 -0700 scsi: qla2xxx: Update driver version to 10.01.00.16-k Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 711a08d79f718abcdd3f86f44ffa8473ef1486ef Author: Giridhar Malavali Date: Tue Apr 2 14:24:33 2019 -0700 scsi: qla2xxx: Change abort wait_loop from msleep to wait_event_timeout This patch converts driver wait time from using msleep to wair_event_timeout to prevent race condition. Signed-off-by: Giridhar Malavali Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit b2d1453a45aa8477b1d33ee94a7694146bb8b340 Author: Giridhar Malavali Date: Tue Apr 2 14:24:32 2019 -0700 scsi: qla2xxx: Fix driver unload when FC-NVMe LUNs are connected This patch allows driver to unload using "modprobe -r" when FC-NVMe LUNs are connected. Signed-off-by: Giridhar Malavali Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit e39a6645d9ec3a9be6470adae1df0f924d1f0737 Author: Anil Gurumurthy Date: Tue Apr 2 14:24:31 2019 -0700 scsi: qla2xxx: Cleanup redundant qla2x00_abort_all_cmds during unload This patch removes redundant qla2x00_abort_all_cmds() during driver unload. Signed-off-by: Anil Gurumurthy Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit ffc81fc07efc94a04695a8c1d458a06aecaf9f30 Author: Giridhar Malavali Date: Tue Apr 2 14:24:30 2019 -0700 scsi: qla2xxx: Set remote port devloss timeout to 0 This patch sets remote_port_devloss value to 0. This indicates to FC-NVMe transport that driver is unloading and transport should not retry. Fixes: e476fe8af5ff ("scsi: qla2xxx: Fix unload when NVMe devices are configured") Cc: stable@vger.kernel.org Signed-off-by: Giridhar Malavali Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit ffbc64766683634d2c233519f2e70d2123580108 Author: Quinn Tran Date: Tue Apr 2 14:24:29 2019 -0700 scsi: qla2xxx: Cleanup fcport memory to prevent leak Clean up fcport list and loopid in one place and iterate through for loop. Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit a6b95d1c71e9adef5ab5ba77c42a50d0b7b409d6 Author: Quinn Tran Date: Tue Apr 2 14:24:28 2019 -0700 scsi: qla2xxx: Use mutex protection during qla2x00_sysfs_read_fw_dump() Add mutex protection to prevent driver from freeing the FW dump buffer while the extraction is in progress. [mkp: commit desc] Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit a4226ec3ef1214b0973abdba64db66e10f6b0a1c Author: Quinn Tran Date: Tue Apr 2 14:24:27 2019 -0700 scsi: qla2xxx: Fix fw dump corruption If fw dump buffer size changes and there is an existing fw dump, then save the old dump in the newly allocated buffer. Signed-off-by: Quinn Tran Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit e81d1bcbde06ad2b6413b1d75630a1a8c19175d0 Author: Andrew Vasquez Date: Tue Apr 2 14:24:26 2019 -0700 scsi: qla2xxx: Further limit FLASH region write access from SysFS Recent ISPs have larger and more complex flash-write semantics (secure-access and signing). The BSG interfaces support these semantics for all ISPs and is exclusively used by QLogic user-space tools. Limit flash-write operations to ISPs <= 25xx. Signed-off-by: Andrew Vasquez Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 5cbdae10bf11f96e30b4d14de7b08c8b490e903c Author: Andrew Vasquez Date: Tue Apr 2 14:24:25 2019 -0700 scsi: qla2xxx: Fix incorrect region-size setting in optrom SYSFS routines Commit e6f77540c067 ("scsi: qla2xxx: Fix an integer overflow in sysfs code") incorrectly set 'optrom_region_size' to 'start+size', which can overflow option-rom boundaries when 'start' is non-zero. Continue setting optrom_region_size to the proper adjusted value of 'size'. Fixes: e6f77540c067 ("scsi: qla2xxx: Fix an integer overflow in sysfs code") Cc: stable@vger.kernel.org Signed-off-by: Andrew Vasquez Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit e50c667b6432264b3920823facc0853bc15a1fc0 Author: Lei YU Date: Fri Feb 15 15:47:21 2019 +0800 ARM: dts: aspeed: palmetto: Fix flash_memory region The flash_memory region was incorrect and exceeds AST2400's RAM range. Fix it by putting it before coldfire region, and aligned with 32MiB. Signed-off-by: Lei YU Acked-by: Andrew Jeffery Signed-off-by: Joel Stanley commit a9fc10280225443f92df6344ac6313d8a2f88c77 Author: Joel Stanley Date: Mon Dec 18 16:46:00 2017 +1030 ARM: dts: aspeed: ast2500: Update flash layout Move to the openbmc-flash-layout.dtsi file. Signed-off-by: Joel Stanley commit 5da05a26b8305a625bc9d537671b981795b46dab Author: Giridhar Malavali Date: Tue Apr 2 14:24:24 2019 -0700 scsi: qla2xxx: Disable T10-DIF feature with FC-NVMe during probe With FC-NVMe enabled, driver does not support T10 DIF/DIX. This patch disables T10-PI information when ql2xnvmeenable is set. Signed-off-by: Giridhar Malavali Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 6b1f44466d9b3d7de04e4988a680f0e1a0850360 Author: Giridhar Malavali Date: Tue Apr 2 14:24:23 2019 -0700 scsi: qla2xxx: Increase the max_sgl_segments to 1024 This patch increases max_sgl_segments value from 128 to the maximum supported which is 1024. Increasing max_sgl_segments will allow the driver to support larger I/O sizes [mkp: commit desc tweak] Signed-off-by: Giridhar Malavali Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 0257eda08e806b82ee1fc90ef73583b6f022845c Author: Giridhar Malavali Date: Tue Apr 2 14:24:22 2019 -0700 scsi: qla2xxx: Reset the FCF_ASYNC_{SENT|ACTIVE} flags Driver maintains state machine for processing and completing switch commands. This patch resets FCF_ASYNC_{SENT|ACTIVE} flag to indicate if the previous command is active or sent, in order for next GPSC command to advance the state machine. [mkp: commit desc typo] Signed-off-by: Giridhar Malavali Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit ae6ccb0f8153fe9e3b9287a74aa9742ea212e89c Author: Giridhar Malavali Date: Tue Apr 2 14:24:21 2019 -0700 scsi: qla2xxx: Set the qpair in SRB to NULL when SRB is released This patch sets QPair pointer to NULL to prevent abort command racing ahead of normal command completion handling during scsi_done call. Signed-off-by: Giridhar Malavali Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 740e29358e350077d18ee08700199e37b206edad Author: Giridhar Malavali Date: Tue Apr 2 14:24:20 2019 -0700 scsi: qla2xxx: Set the SCSI command result before calling the command done This patch tries to address race condition between abort handler and completion handler. When scsi command result is set by both abort and completion handler, scsi_done() is only called after refcount on SRB structure goes to zero. The abort handler sets this result prematurely even when the refcount is non-zero value. Fix this by setting SCSI cmd->result before scsi_done() is called. Signed-off-by: Giridhar Malavali Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit d6d189ceab75560e312ffefe6e8d423a5c3aa0e6 Author: Bart Van Assche Date: Thu Mar 28 11:06:22 2019 -0700 scsi: lpfc: Change smp_processor_id() into raw_smp_processor_id() This patch avoids that a kernel warning appears when smp_processor_id() is called with preempt debugging enabled. Cc: James Smart Signed-off-by: Bart Van Assche Acked-by: James Smart Signed-off-by: Martin K. Petersen commit d8c2040bf9873deb35422776ad06a27f0dc5c020 Author: Bart Van Assche Date: Thu Mar 28 11:06:21 2019 -0700 scsi: lpfc: Remove unused functions Remove those functions that are not called from outside the removed functions. Cc: James Smart Signed-off-by: Bart Van Assche Acked-by: James Smart Signed-off-by: Martin K. Petersen commit b27cbd5549509397c6e85b8aed1d9e95538c919e Author: Bart Van Assche Date: Thu Mar 28 11:06:20 2019 -0700 scsi: lpfc: Remove set-but-not-used variables This patch does not change any functionality but avoids that the compiler complains about set-but-not-used variables when building with W=1. Cc: James Smart Signed-off-by: Bart Van Assche Acked-by: James Smart Signed-off-by: Martin K. Petersen commit a73cb814923ab948fae64e34802cebe228228a88 Author: Bart Van Assche Date: Thu Mar 28 11:06:19 2019 -0700 scsi: lpfc: Move trunk_errmsg[] from a header file into a .c file Arrays should be defined in .c files instead of in a header file. This patch reduces the size of the lpfc kernel module. Cc: James Smart Signed-off-by: Bart Van Assche Acked-by: James Smart Signed-off-by: Martin K. Petersen commit cd05c155d720f9a499c0796aecb58397dfa8618d Author: Bart Van Assche Date: Thu Mar 28 11:06:18 2019 -0700 scsi: lpfc: Annotate switch/case fall-through This patch avoids that the compiler warns about missing fall-through annotation when building with W=1. Cc: James Smart Signed-off-by: Bart Van Assche Acked-by: James Smart Signed-off-by: Martin K. Petersen commit ffd43814d930941f1b5984155881ce186baa60e8 Author: Bart Van Assche Date: Thu Mar 28 11:06:17 2019 -0700 scsi: lpfc: Fix indentation and balance braces This patch avoid that smatch complains about misleading indentation. Cc: James Smart Signed-off-by: Bart Van Assche Acked-by: James Smart Signed-off-by: Martin K. Petersen commit 3999df75bccb54722a3bbb5e2b1fa9a2af76c637 Author: Bart Van Assche Date: Thu Mar 28 11:06:16 2019 -0700 scsi: lpfc: Declare local functions static This patch avoids that the compiler complains about missing declarations when building with W=1. Cc: James Smart Signed-off-by: Bart Van Assche Acked-by: James Smart Signed-off-by: Martin K. Petersen commit 94e424c6b6a002673ac82cb6926ab6bfd9a3ccbb Author: Stanley Chu Date: Thu Mar 28 17:16:27 2019 +0800 scsi: ufs: Remove "-fixed-regulator" device tree property "-fixed-regulator" device tree property can be safely removed because below things are fixed or resolved, 1. "-max-microamp" becomes optional property: Undefined "-max-microamp" will not cause initialization fail if "-fixed-regulator" is not defined. 2. Current switching operation (by regulator_set_load) now has rules: Regulators will have undefined current limit if "-fixed-regulator" is not defined. But this is safe because only regulator which has configured current limit from "-max-microamp" property is allowed to change its load. Although "-fixed-regulator" is not used in any dt-bindings in tree, this patch is still safe for regulators already defined "-fixed-regulator". To be more clear, if a regulator defined "-fixed-regulator" before, the behavior difference after this patch is, 1. "-max-microamp": If a regulator defined "-fixed-regulator", it is not necessary to define "-max-microamp" property in device tree and it is expected to have an undefined current limit, i.e., "max_uA" field is zero in struct ufs_vreg. This is exactly the same as patched. 2. "vcc-supply-1p8" or volatge range settings: * For vcc, vccq or vccq2, these three regulators shall not define "-fixed-regulator" because defining it will lead to undefined voltage range and thus voltage switching will be unexpected. * For other regulators with undefined voltage range, voltage range will be still undefined after patched. Therefore this patch is safe for all existed regulators with "-fixed-regulator" property already defined. Signed-off-by: Stanley Chu Reviewed-by: Avri Altman Acked-by: Alim Akhtar Signed-off-by: Martin K. Petersen commit 12e3ffb932dce136343b7c990e46758ea017b194 Author: Stanley Chu Date: Thu Mar 28 17:16:26 2019 +0800 scsi: ufs: Change "-max-microamp" to non-mandatory property In dt-bindings for ufs, "-max-microamp" property indicates current limit and is mandatory if "-fixed-regulator" is not defined on a specified regulator. However, in some platforms, regulators without "-fixed-regulator" property may not need to define their current limit because they may want to define voltage range only for proper voltage switching in different power modes, especially for vcc, vccq or vccq2. Currently missing "-max-microamp" property in device tree will lead initialization to fail, thus such limitation shall be resolved to tolerate this kind of regulators. After resolving this, regulators without "-max-microamp" property will have undefined "max current" value, i.e., zero value in "max_uA" field in struct ufs_vreg. Because we do bypass current switching operation (by regulator_set_load) in case of undefined current limit, this patch shall be safe. Signed-off-by: Stanley Chu Reviewed-by: Avri Altman Acked-by: Alim Akhtar Signed-off-by: Martin K. Petersen commit 0487fff76632ec023d394a05b82e87a971db8c03 Author: Stanley Chu Date: Thu Mar 28 17:16:25 2019 +0800 scsi: ufs: Fix regulator load and icc-level configuration Currently if a regulator has "-fixed-regulator" property in device tree, it will skip current limit initialization. This lead to a zero "max_uA" value in struct ufs_vreg. However, "regulator_set_load" operation shall be required on regulators which have valid current limits, otherwise a zero "max_uA" set by "regulator_set_load" may cause unexpected behavior when this regulator is enabled or set as high power mode. Similarly, in device's icc_level configuration flow, the target icc_level shall be updated if regulator also has valid current limit, otherwise a wrong icc_level will be calculated by zero "max_uA" and thus causes unexpected results after it is written to device. Signed-off-by: Stanley Chu Reviewed-by: Avri Altman Acked-by: Alim Akhtar Signed-off-by: Martin K. Petersen commit 3b141e8cfd54ba3e5c610717295b2a02aab26a05 Author: Stanley Chu Date: Thu Mar 28 17:16:24 2019 +0800 scsi: ufs: Avoid configuring regulator with undefined voltage range For regulators used by UFS, vcc, vccq and vccq2 will have voltage range initialized by ufshcd_populate_vreg(), however other regulators may have undefined voltage range if dt-bindings have no such definition. In above undefined case, both "min_uV" and "max_uV" fields in ufs_vreg struct will be zero values and these values will be configured on regulators in different power modes. Currently this may have no harm if both "min_uV" and "max_uV" always keep "zero values" because regulator_set_voltage() will always bypass such invalid values and return "good" results. However improper values shall be fixed to avoid potential bugs. Simply bypass voltage configuration if voltage range is not defined. Signed-off-by: Stanley Chu Reviewed-by: Avri Altman Acked-by: Alim Akhtar Signed-off-by: Martin K. Petersen commit e040362c573fc09834cb00867897e071e6777ee2 Author: Stanley Chu Date: Thu Mar 28 17:16:23 2019 +0800 scsi: ufs: Remove unused min_uA field in struct ufs_vreg There are two fields related to regulator current limit in struct ufs_vreg: "min_uA" and "max_uA". "max_uA" is probed by "-max-microamp" property from device tree and used for - regulator_set_load operations - icc_level configuration in device However "min_uA" field is not used anywhere, thus we can remove it. Signed-off-by: Stanley Chu Reviewed-by: Marc Gonzalez Reviewed-by: Avri Altman Acked-by: Alim Akhtar Signed-off-by: Martin K. Petersen commit 9e29a682c6d32241add436c910076ef363295523 Author: Ding Xiang Date: Fri Mar 29 11:24:12 2019 +0800 scsi: bnx2fc: remove unneeded variable The rc variable is not needed in bnx2fc_abts_cleanup(). Remove it and just return SUCCESS. [mkp: commit desc] Signed-off-by: Ding Xiang Acked-by: Manish Rangankar Reviewed-by: Mukesh Ojha Signed-off-by: Martin K. Petersen commit f15a3ea80391e83f32d4a23f83b1f02415cd5889 Author: Joel Stanley Date: Wed Apr 3 10:49:09 2019 +1030 MAINTAINERS: Add ASPEED BMC GFX DRM driver entry This hardware is found inside ASPEED Baseboard Management Controller (BMC) system on chips. It is called the 'SOC Display Controller' or 'GFX'. Signed-off-by: Joel Stanley Acked-by: Andrew Jeffery Link: https://patchwork.freedesktop.org/patch/msgid/20190403001909.31637-4-joel@jms.id.au commit 4f2a8f5898ecd806cc0ccece1df4c0f143f80a74 Author: Joel Stanley Date: Wed Apr 3 10:49:08 2019 +1030 drm: Add ASPEED GFX driver This driver is for the ASPEED BMC SoC's GFX display hardware. This driver runs on the ARM based BMC systems, unlike the ast driver which runs on a host CPU and is is for a PCI graphics device. Signed-off-by: Joel Stanley Acked-by: Daniel Vetter Reviewed-by: Noralf Trønnes Reviewed-by: Sam Ravnborg Link: https://patchwork.freedesktop.org/patch/msgid/20190403001909.31637-3-joel@jms.id.au commit eff9f244c1237f681c41dd66b811efec590e9deb Author: Joel Stanley Date: Wed Apr 3 10:49:07 2019 +1030 dt-bindings: gpu: Add ASPEED GFX bindings document This describes the ASPEED BMC SoC's display controller. Signed-off-by: Joel Stanley Reviewed-by: Andrew Jeffery Link: https://patchwork.freedesktop.org/patch/msgid/20190403001909.31637-2-joel@jms.id.au commit cc441a69486bbeda9b99438246720c8214781255 Merge: e83b9f55448a 8aa2d4b4b92c Author: Daniel Borkmann Date: Thu Apr 4 01:27:39 2019 +0200 Merge branch 'bpf-verifier-scalability' Alexei Starovoitov says: ==================== v1->v2: - fixed typo in patch 1 - added a patch to convert kcalloc to kvcalloc - added a patch to verbose 16-bit jump offset check - added a test with 1m insns This patch set is the first step to be able to accept large programs. The verifier still suffers from its brute force algorithm and large programs can easily hit 1M insn_processed limit. A lot more work is necessary to be able to verify large programs. v1: Realize two key ideas to speed up verification speed by ~20 times 1. every 'branching' instructions records all verifier states. not all of them are useful for search pruning. add a simple heuristic to keep states that were successful in search pruning and remove those that were not 2. mark_reg_read walks parentage chain of registers to mark parents as LIVE_READ. Once the register is marked there is no need to remark it again in the future. Hence stop walking the chain once first LIVE_READ is seen. 1st optimization gives 10x speed up on large programs and 2nd optimization reduces the cost of mark_reg_read from ~40% of cpu to <1%. Combined the deliver ~20x speedup on large programs. Faster and bounded verification time allows to increase insn_processed limit to 1 million from 130k. Worst case it takes 1/10 of a second to process that many instructions and peak memory consumption is peak_states * sizeof(struct bpf_verifier_state) which is around ~5Mbyte. Increase insn_per_program limit for root to insn_processed limit. Add verification stats and stress tests for verifier scalability. ==================== Signed-off-by: Daniel Borkmann commit 8aa2d4b4b92cd534d53353b0c2fb079572b97fdf Author: Alexei Starovoitov Date: Mon Apr 1 21:27:49 2019 -0700 selftests/bpf: synthetic tests to push verifier limits Add a test to generate 1m ld_imm64 insns to stress the verifier. Bump the size of fill_ld_abs_vlan_push_pop test from 4k to 29k and jump_around_ld_abs from 4k to 5.5k. Larger sizes are not possible due to 16-bit offset encoding in jump instructions. Signed-off-by: Alexei Starovoitov Signed-off-by: Daniel Borkmann commit e5e7a8f2d858a91b79c4afc51a3f15edcbf9cb60 Author: Alexei Starovoitov Date: Mon Apr 1 21:27:48 2019 -0700 selftests/bpf: add few verifier scale tests Add 3 basic tests that stress verifier scalability. test_verif_scale1.c calls non-inlined jhash() function 90 times on different position in the packet. This test simulates network packet parsing. jhash function is ~140 instructions and main program is ~1200 insns. test_verif_scale2.c force inlines jhash() function 90 times. This program is ~15k instructions long. test_verif_scale3.c calls non-inlined jhash() function 90 times on But this time jhash has to process 32-bytes from the packet instead of 14-bytes in tests 1 and 2. jhash function is ~230 insns and main program is ~1200 insns. $ test_progs -s can be used to see verifier stats. Signed-off-by: Alexei Starovoitov Signed-off-by: Daniel Borkmann commit da11b417583ece875f862d84578259a2ab27ad86 Author: Alexei Starovoitov Date: Mon Apr 1 21:27:47 2019 -0700 libbpf: teach libbpf about log_level bit 2 Allow bpf_prog_load_xattr() to specify log_level for program loading. Teach libbpf to accept log_level with bit 2 set. Increase default BPF_LOG_BUF_SIZE from 256k to 16M. There is no downside to increase it to a maximum allowed by old kernels. Existing 256k limit caused ENOSPC errors and users were not able to see verifier error which is printed at the end of the verifier log. If ENOSPC is hit, double the verifier log and try again to capture the verifier error. Signed-off-by: Alexei Starovoitov Signed-off-by: Daniel Borkmann commit 7a9f5c65abcc9644b11738ca0815510cb5510eaf Author: Alexei Starovoitov Date: Mon Apr 1 21:27:46 2019 -0700 bpf: increase verifier log limit The existing 16Mbyte verifier log limit is not enough for log_level=2 even for small programs. Increase it to 1Gbyte. Note it's not a kernel memory limit. It's an amount of memory user space provides to store the verifier log. The kernel populates it 1k at a time. Signed-off-by: Alexei Starovoitov Reviewed-by: Jakub Kicinski Signed-off-by: Daniel Borkmann commit c04c0d2b968ac45d6ef020316808ef6c82325a82 Author: Alexei Starovoitov Date: Mon Apr 1 21:27:45 2019 -0700 bpf: increase complexity limit and maximum program size Large verifier speed improvements allow to increase verifier complexity limit. Now regardless of the program composition and its size it takes little time for the verifier to hit insn_processed limit. On typical x86 machine non-debug kernel processes 1M instructions in 1/10 of a second. (before these speed improvements specially crafted programs could be hitting multi-second verification times) Full kasan kernel with debug takes ~1 second for the same 1M insns. Hence bump the BPF_COMPLEXITY_LIMIT_INSNS limit to 1M. Also increase the number of instructions per program from 4k to internal BPF_COMPLEXITY_LIMIT_INSNS limit. 4k limit was confusing to users, since small programs with hundreds of insns could be hitting BPF_COMPLEXITY_LIMIT_INSNS limit. Sometimes adding more insns and bpf_trace_printk debug statements would make the verifier accept the program while removing code would make the verifier reject it. Some user space application started to add #define MAX_FOO to their programs and do: MAX_FOO=100; again: compile with MAX_FOO; try to load; if (fails_to_load) { reduce MAX_FOO; goto again; } to be able to fit maximum amount of processing into single program. Other users artificially split their single program into a set of programs and use all 32 iterations of tail_calls to increase compute limits. And the most advanced folks used unlimited tc-bpf filter list to execute many bpf programs. Essentially the users managed to workaround 4k insn limit. This patch removes the limit for root programs from uapi. BPF_COMPLEXITY_LIMIT_INSNS is the kernel internal limit and success to load the program no longer depends on program size, but on 'smartness' of the verifier only. The verifier will continue to get smarter with every kernel release. Signed-off-by: Alexei Starovoitov Signed-off-by: Daniel Borkmann commit 4f73379ec5c2891598aa715c6df7ac9afdc86fbf Author: Alexei Starovoitov Date: Mon Apr 1 21:27:44 2019 -0700 bpf: verbose jump offset overflow check Larger programs may trigger 16-bit jump offset overflow check during instruction patching. Make this error verbose otherwise users cannot decipher error code without printks in the verifier. Signed-off-by: Alexei Starovoitov Signed-off-by: Daniel Borkmann commit 71dde681a8cea1ccff2c7b3be83c043ab6b2a977 Author: Alexei Starovoitov Date: Mon Apr 1 21:27:43 2019 -0700 bpf: convert temp arrays to kvcalloc Temporary arrays used during program verification need to be vmalloc-ed to support large bpf programs. Signed-off-by: Alexei Starovoitov Signed-off-by: Daniel Borkmann commit 25af32dad8047d180e70e233c85b909dd6587cc5 Author: Alexei Starovoitov Date: Mon Apr 1 21:27:42 2019 -0700 bpf: improve verification speed by not remarking live_read With large verifier speed improvement brought by the previous patch mark_reg_read() becomes the hottest function during verification. On a typical program it consumes 40% of cpu. mark_reg_read() walks parentage chain of registers to mark parents as LIVE_READ. Once the register is marked there is no need to remark it again in the future. Hence stop walking the chain once first LIVE_READ is seen. This optimization drops mark_reg_read() time from 40% of cpu to <1% and overall 2x improvement of verification speed. For some programs the longest_mark_read_walk counter improves from ~500 to ~5 Signed-off-by: Alexei Starovoitov Reviewed-by: Jakub Kicinski Reviewed-by: Edward Cree Signed-off-by: Daniel Borkmann commit 9f4686c41bdff051f557accb531af79dd1773687 Author: Alexei Starovoitov Date: Mon Apr 1 21:27:41 2019 -0700 bpf: improve verification speed by droping states Branch instructions, branch targets and calls in a bpf program are the places where the verifier remembers states that led to successful verification of the program. These states are used to prune brute force program analysis. For unprivileged programs there is a limit of 64 states per such 'branching' instructions (maximum length is tracked by max_states_per_insn counter introduced in the previous patch). Simply reducing this threshold to 32 or lower increases insn_processed metric to the point that small valid programs get rejected. For root programs there is no limit and cilium programs can have max_states_per_insn to be 100 or higher. Walking 100+ states multiplied by number of 'branching' insns during verification consumes significant amount of cpu time. Turned out simple LRU-like mechanism can be used to remove states that unlikely will be helpful in future search pruning. This patch introduces hit_cnt and miss_cnt counters: hit_cnt - this many times this state successfully pruned the search miss_cnt - this many times this state was not equivalent to other states (and that other states were added to state list) The heuristic introduced in this patch is: if (sl->miss_cnt > sl->hit_cnt * 3 + 3) /* drop this state from future considerations */ Higher numbers increase max_states_per_insn (allow more states to be considered for pruning) and slow verification speed, but do not meaningfully reduce insn_processed metric. Lower numbers drop too many states and insn_processed increases too much. Many different formulas were considered. This one is simple and works well enough in practice. (the analysis was done on selftests/progs/* and on cilium programs) The end result is this heuristic improves verification speed by 10 times. Large synthetic programs that used to take a second more now take 1/10 of a second. In cases where max_states_per_insn used to be 100 or more, now it's ~10. There is a slight increase in insn_processed for cilium progs: before after bpf_lb-DLB_L3.o 1831 1838 bpf_lb-DLB_L4.o 3029 3218 bpf_lb-DUNKNOWN.o 1064 1064 bpf_lxc-DDROP_ALL.o 26309 26935 bpf_lxc-DUNKNOWN.o 33517 34439 bpf_netdev.o 9713 9721 bpf_overlay.o 6184 6184 bpf_lcx_jit.o 37335 39389 And 2-3 times improvement in the verification speed. Signed-off-by: Alexei Starovoitov Reviewed-by: Jakub Kicinski Signed-off-by: Daniel Borkmann commit 06ee7115b0d1742de745ad143fb5e06d77d27fba Author: Alexei Starovoitov Date: Mon Apr 1 21:27:40 2019 -0700 bpf: add verifier stats and log_level bit 2 In order to understand the verifier bottlenecks add various stats and extend log_level: log_level 1 and 2 are kept as-is: bit 0 - level=1 - print every insn and verifier state at branch points bit 1 - level=2 - print every insn and verifier state at every insn bit 2 - level=4 - print verifier error and stats at the end of verification When verifier rejects the program the libbpf is trying to load the program twice. Once with log_level=0 (no messages, only error code is reported to user space) and second time with log_level=1 to tell the user why the verifier rejected it. With introduction of bit 2 - level=4 the libbpf can choose to always use that level and load programs once, since the verification speed is not affected and in case of error the verbose message will be available. Note that the verifier stats are not part of uapi just like all other verbose messages. They're expected to change in the future. Signed-off-by: Alexei Starovoitov Signed-off-by: Daniel Borkmann commit a5f50c501321249d67611353dde6d68d48c5b959 Author: Jagan Teki Date: Wed Apr 3 16:05:34 2019 -0700 Input: goodix - add GT5663 CTP support GT5663 is capacitive touch controller with customized smart wakeup gestures. Add support for it by adding compatible and supported chip data. The chip data on GT5663 is similar to GT1151, like - config data register has 0x8050 address - config data register max len is 240 - config data checksum has 16-bit Signed-off-by: Jagan Teki Reviewed-by: Rob Herring Signed-off-by: Dmitry Torokhov commit ae97fb589648cd5558f1ceea317404a639307501 Author: Jagan Teki Date: Wed Apr 3 15:20:26 2019 -0700 Input: goodix - add regulators suppot Goodix CTP controllers require AVDD28, VDDIO regulators for power-on sequence. The delay between these regualtor operations as per Power-on Timing from datasheet[1] is 0 (T1 >= 0 usec). So, enable and disable these regulators in proper order using normal regulator functions without any delay in between. [1] GT5663 Datasheet_English_20151106_Rev.01 Signed-off-by: Jagan Teki Reviewed-by: Rob Herring Signed-off-by: Dmitry Torokhov commit ecdf3a965826d8d900a747f0650acb172191dc9b Author: Gustavo A. R. Silva Date: Wed Apr 3 10:51:10 2019 -0700 Input: evdev - use struct_size() in kzalloc() and vzalloc() One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example: struct foo { int stuff; struct boo entry[]; }; size = sizeof(struct foo) + count * sizeof(struct boo); instance = kzalloc(size, GFP_KERNEL); Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper: instance = kzalloc(struct_size(instance, entry, count), GFP_KERNEL); Notice that, in this case, variable size is not necessary, hence it is removed. This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Dmitry Torokhov commit f7450bc6e76860564f3842a41892f9b74313cc23 Author: Casey Schaufler Date: Wed Apr 3 14:28:38 2019 -0700 Smack: Fix IPv6 handling of 0 secmark Handle the case where the skb for an IPv6 packet contains a 0 in the secmark for a packet generated locally. This can only happen for system packets, so allow the access. Signed-off-by: Casey Schaufler commit 0ec4b562c378ea2f1da7a5aa1b783114b84fed5f Author: Bjorn Helgaas Date: Mon Mar 25 13:36:52 2019 -0500 i2c: isch: Remove unnecessary acpi.h include Commit 54fb4a05af0a ("i2c: Check for ACPI resource conflicts") included so we could use acpi_check_region(). Commit fd46a0064af1 ("i2c: convert i2c-isch to platform_device") removed the use of acpi_check_region() but not the include. Remove the now-unnecessary include of . No functional change intended. Fixes: fd46a0064af1 ("i2c: convert i2c-isch to platform_device") Signed-off-by: Bjorn Helgaas Reviewed-by: Jean Delvare Reviewed-by: Mukesh Ojha Signed-off-by: Wolfram Sang commit d469127528ec48437a010620c22f2443053003c1 Author: Dan Carpenter Date: Thu Mar 28 17:16:09 2019 +0300 i2c: nomadik: remove an unnecessary NULL check in nmk_i2c_remove() "res" can't be NULL because it's a pointer to somewhere in the middle of the "adev" struct. Also probe() succeeded so there is no need to check here. Signed-off-by: Dan Carpenter Acked-by: Linus Walleij Signed-off-by: Wolfram Sang commit 9a1038728037521d177042522bd05c3c51e744a4 Author: Rayagonda Kokatanur Date: Tue Apr 2 18:18:29 2019 -0700 i2c: iproc: add NIC I2C support Add NIC I2C support to the iProc I2C driver. Access to the NIC I2C base registers requires going through the IDM wrapper to map into the NIC's address space Signed-off-by: Rayagonda Kokatanur Signed-off-by: Ray Jui Signed-off-by: Wolfram Sang commit 12402f825d3b83de57bd2902989dc54a5a2128d4 Author: Rayagonda Kokatanur Date: Tue Apr 2 18:18:28 2019 -0700 dt-bindings: i2c: iproc: add "brcm, iproc-nic-i2c" compatible string Update iProc I2C binding document to add new compatible string "brcm,iproc-nic-i2c". Optional property "brcm,ape-hsls-addr-mask" is also added that allows configuration of the host view into the APE's address for "brcm,iproc-nic-i2c" Signed-off-by: Rayagonda Kokatanur Signed-off-by: Ray Jui Reviewed-by: Rob Herring Signed-off-by: Wolfram Sang commit a9f0a81ef88bc58af4e1af911e0f9306090b6082 Author: Rayagonda Kokatanur Date: Tue Apr 2 18:18:27 2019 -0700 i2c: iproc: use wrapper for read/write access Use the following wrapper for read/write access of iProc i2c registers: u32 iproc_i2c_rd_reg(struct bcm_iproc_i2c_dev *iproc_i2c, u32 offset) void iproc_i2c_wr_reg(struct bcm_iproc_i2c_dev *iproc_i2c, u32 offset, u32 val) This preps the driver for support of indirect register access required by certain SoCs with this iProc I2C block integrated Signed-off-by: Rayagonda Kokatanur Signed-off-by: Ray Jui Signed-off-by: Wolfram Sang commit 3f98ad45e585c0019327a6547f9bf8e36423ec18 Author: Rayagonda Kokatanur Date: Tue Apr 2 18:18:26 2019 -0700 i2c: iproc: add polling support Add polling support to the iProc I2C driver. Polling mode is activated when the driver fails to obtain an interrupt ID from device tree Signed-off-by: Rayagonda Kokatanur Signed-off-by: Ray Jui Signed-off-by: Wolfram Sang commit 682587080da998886461cb0dc9b609d1b6205277 Author: Ray Jui Date: Tue Apr 2 18:18:25 2019 -0700 dt-bindings: i2c: iproc: make 'interrupts' optional Update the binding document to make the 'interrupts' property optional. For certain revisions of the I2C controller (e.g., iProc NIC I2C), I2C interrupt is unwired to the interrupt controller. In such case, this 'interrupts' property should be left unspecified, and driver will fall back to polling mode Signed-off-by: Ray Jui Signed-off-by: Rayagonda Kokatanur Reviewed-by: Rob Herring Signed-off-by: Wolfram Sang commit 1b23fa2e18f0fb485583733a53941c7103fc3b90 Author: Michael Cheng Date: Tue Apr 2 18:18:24 2019 -0700 i2c: iproc: Add support for more master error status Add support for more master error status including FIFO underrun and RX FIFO full Signed-off-by: Michael Cheng Signed-off-by: Ray Jui Signed-off-by: Wolfram Sang commit f34b8d9093d7b82b0dbe47825ef15565c5be7aff Author: Shreesha Rajashekar Date: Tue Apr 2 18:18:23 2019 -0700 i2c: iproc: Add slave mode support Add slave mode support to the iProc I2C driver. Signed-off-by: Rayagonda Kokatanur Signed-off-by: Michael Cheng Signed-off-by: Shreesha Rajashekar Signed-off-by: Ray Jui Signed-off-by: Wolfram Sang commit c24b8d574b7c6f9cc2c50ed1e674f4333cc53736 Author: Shreesha Rajashekar Date: Tue Apr 2 18:18:22 2019 -0700 i2c: iproc: Extend I2C read up to 255 bytes Add support to allow I2C master read transfer up to 255 bytes. Signed-off-by: Shreesha Rajashekar Signed-off-by: Rayagonda Kokatanur Signed-off-by: Ray Jui Signed-off-by: Wolfram Sang commit 6e6c214f16e418ac8583e3dc8ea967a8cc59d9f0 Author: Dan Murphy Date: Wed Apr 3 13:19:22 2019 -0500 leds: Small fixes for Flash class description Fix misspelling and capitalization of LED in the Kconfig. Reported-by: Randy Dunlap Signed-off-by: Dan Murphy Acked-by: Pavel Machek Signed-off-by: Jacek Anaszewski commit ffc26740714962e3e8801dca7ef32b636b3781db Author: Eric Anholt Date: Mon Apr 1 11:35:59 2019 -0700 drm/vc4: Disable V3D interactions if the v3d component didn't probe. One might want to use the VC4 display stack without using Mesa. Similar to the debugfs fixes for not having all of the possible display bits enabled, make sure you can't oops in vc4 if v3d isn't enabled. v2: Fix matching against other v3d variants (review by Paul), don't forget to set irq_enabled so that the vblank uapi works v3: Use -ENODEV instead of -EINVAL on Paul's suggestion. Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190401183559.3823-2-eric@anholt.net Reviewed-by: Paul Kocialkowski commit c9be804c8c7a2d3fcd8e236407c8623be0356a01 Author: Eric Anholt Date: Mon Apr 1 11:35:58 2019 -0700 drm/vc4: Use common helpers for debugfs setup by the driver components. The global list of all debugfs entries for the driver was painful: the list couldn't see into the components' structs, so each component had its own debugs show function to find the component, then find the regset and dump it. The components also had to be careful to check that they were actually registered in vc4 before dereferencing themselves, in case they weren't probed on a particular platform. They routinely failed at that. Instead, we can have the components add their debugfs callbacks to a little list in vc4 to be registered at drm_dev_register() time, which gets vc4_debugfs.c out of the business of knowing the whole list of components. Thanks to this change, dsi0 (if it existed) would register its node. v2: Rebase on hvs_underrun addition. v3: whitespace fixup Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190401183559.3823-1-eric@anholt.net Reviewed-by: Paul Kocialkowski commit 795f672b88ba4a616a10fb1bd9e0098edf108eb7 Author: Ville Syrjälä Date: Wed Apr 3 22:16:33 2019 +0300 drm/i915: Expose full 1024 LUT entries on ivb+ On ivb+ we can select between the regular 10bit LUT mode with 1024 entries, and the split mode where the LUT is split into seprate degamma and gamma halves (each with 512 entries). Currently we expose the split gamma size of 512 as the GAMMA/DEGAMMA_LUT_SIZE. When using only degamma or gamma (not both) we are wasting half of the hardware LUT entries. Let's flip that around so that we expose the full 1024 entries and just throw away half of the user provided entries when using the split gamma mode. Cc: Matt Roper Suggested-by: Matt Roper Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190401200231.2333-8-ville.syrjala@linux.intel.com Reviewed-by: Uma Shankar commit 821062478ce4377b8333e96be8758670679868f3 Author: Ville Syrjälä Date: Mon Apr 1 23:02:30 2019 +0300 drm/i915: Expose the legacy LUT via the GAMMA_LUT/GAMMA_LUT_SIZE props on gen2/3 Just so we don't leave gen2/3 out in the cold let's advertize the legacy LUT via the GAMMA_LUT/GAMMA_LUT_SIZE props. Without the GAMMA_LUT prop we can't actually load a LUT using the atomic ioctl (in preparation for the day of 100% atomic driver). Supposedly some gen2/3 platforms have an interpolated 10bit gamma mode as well. It's slightly funkier than the i965+ mode since you have to specify the slope for the interpolation by hand. But when I tried it I couldn't get it to work, the hardware just insisted on using the 8bit more regardless of the state of the relevant PIPECONF bit. Reviewed-by: Maarten Lankhorst Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190401200231.2333-7-ville.syrjala@linux.intel.com Reviewed-by: Uma Shankar commit e262568eb58fe79917167817d16ebf8e39b7d696 Author: Ville Syrjälä Date: Mon Apr 1 23:02:29 2019 +0300 drm/i915: Add "10.6" LUT mode for i965+ i965+ have an interpolate 10bit LUT mode. Let's expose that so that we can actually enjoy real 10bpc. v2: Don't use I915_WRITE_FW() yet Reviewed-by: Maarten Lankhorst Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190401200231.2333-6-ville.syrjala@linux.intel.com Reviewed-by: Uma Shankar commit 514462caf757700541e9d91adede9ea0eea1c6ad Author: Ville Syrjälä Date: Mon Apr 1 23:02:28 2019 +0300 drm/i915: Add 10bit LUT for ilk/snb Plop in support for 10bit LUT on ilk/snb. There is no split gamma mode on these platforms, so we have to choose between degamma and gamma. That could be a runtime choice but for now let's just advertize the gamma as having 1024 entries. We'll also keep the ctm hidden for now. v2: Don't use I915_WRITE_FW() yet Introduce bool has_ctm (Maarten) Call drm_crtc_enable_color_mgmt() uncoditionally (Maarten) Reviewed-by: Matt Roper Reviewed-by: Maarten Lankhorst Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190401200231.2333-5-ville.syrjala@linux.intel.com Reviewed-by: Uma Shankar commit c21ce2effc5278de11c5726b3fde9f39c4de17ce Author: Ville Syrjälä Date: Mon Apr 1 23:02:27 2019 +0300 drm/i915: Implement split/10bit gamma for ivb/hsw Reuse the bdw+ code to get split/10bit gamma for ivb/hsw. The hardware is nearly identical. The only slight snag is that on ivb/hsw the precision palette auto increment mode does not work. So we must increment the index manually. We'll probably want to stick to the auto increment mode on bdw+ in the name of efficiency. Also we want to avoid using the CSC for limited range RGB output as PIPECONF will take care of that on IVB. v2: Rebase due to EXT_GC_MAX/EXT2_GC_MAX changes Reviewed-by: Matt Roper Reviewed-by: Maarten Lankhorst Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190401200231.2333-4-ville.syrjala@linux.intel.com Reviewed-by: Uma Shankar commit 5bda1aca5d9475ee2035d29d4855dbf97ad164ad Author: Ville Syrjälä Date: Mon Apr 1 23:02:26 2019 +0300 drm/i915: Don't use split gamma when we don't have to Using the split gamma mode when we don't have to has the annoying requirement of loading a linear LUT to the unused half. Instead let's make life simpler by switching to the 10bit gamma mode and duplicating each entry. This also allows us to load the software gamma LUT into the hardware degamma LUT, thus removing some of the buggy configurations we currently allow (YCbCr/limited range RGB + gamma LUT). We do still have other configurations that are also buggy, but those will need more complicated fixes or they just need to be rejected. Sadly GLK doesn't have this flexibility anymore and the degamma and gamma LUTs are very different so no help there. v2: Apply a mask when checking gamma_mode on icl since it contains more bits than just the gamma mode v3: Rebase due to EXT_GC_MAX/EXT2_GC_MAX changes v4: s/advertize/advertise/ (Uma) Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190401200231.2333-3-ville.syrjala@linux.intel.com Reviewed-by: Uma Shankar commit 320d41b33ade094f08c6a0cbb7a0bd305fceaf5f Author: Ville Syrjälä Date: Mon Apr 1 23:02:25 2019 +0300 drm/i915: Extract ilk_lut_10() Extract a helper to calculate the ILK+ 10bit gamma LUT entry. It's already duplicated twice, and soon we'll have more. v2: s/it/bit/ (Matt) Reviewed-by: Matt Roper Reviewed-by: Maarten Lankhorst Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190401200231.2333-2-ville.syrjala@linux.intel.com Reviewed-by: Uma Shankar commit 1c726c44210f8d2185cf61adfea850d1b87e75ab Merge: 061ccb52d23c 747b931fbe23 Author: Jason Gunthorpe Date: Wed Apr 3 15:28:05 2019 -0300 Merge HFI1 updates into k.o/for-next Based on rdma.git for-rc for dependencies. From Dennis Dalessandro: ==================== Here are some code improvement patches and fixes for less serious bugs to TID RDMA than we sent for RC. ==================== * HFI1 updates: IB/hfi1: Implement CCA for TID RDMA protocol IB/hfi1: Remove WARN_ON when freeing expected receive groups IB/hfi1: Unify the software PSN check for TID RDMA READ/WRITE IB/hfi1: Add a function to read next expected psn from hardware flow IB/hfi1: Delay the release of destination mr for TID RDMA WRITE DATA Signed-off-by: Jason Gunthorpe commit 747b931fbe2362366dee30617f816501f3126882 Author: Kaike Wan Date: Mon Mar 18 12:20:59 2019 -0700 IB/hfi1: Implement CCA for TID RDMA protocol Currently, FECN handling is not implemented on TID RDMA expected receive packets and therefore CCA can't be turned on when TID RDMA is enabled. This patch adds the CCA support to TID RDMA protocol by: - modifying FECN RSM rule to include kernel receive contexts - For TID_RDMA READ RESP or TID RDMA ACK packet, a CNP will be sent out if the FECN bit is set. For other TID RDMA packets that generate at least one response packet, the BECN bit will be set in the first response packet - Copying expected packet data to destination buffer when FECN bit is set in the TID RDMA READ RESP or TID RDMA WRITE DATA packet. In this case, the expected packet is received as an eager packet - Handling the TID sequence error for subsequent normal expected packets. Reviewed-by: Mike Marciniszyn Reviewed-by: Dennis Dalessandro Reviewed-by: Michael J. Ruhl Signed-off-by: Kaike Wan Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit 8da0f0f26f80612efadc23beb72d5b66a498a386 Author: Kaike Wan Date: Mon Mar 18 09:59:00 2019 -0700 IB/hfi1: Remove WARN_ON when freeing expected receive groups When PSM user receive context is freed, the expected receive groups allocated by the receive context will also been freed. However, if there are still TID entries in use, the receive groups rcd->tid_full_list or rcd->tid_used_list will not be empty, and thus triggering the WARN_ONs in the function hfi1_free_ctxt_rcv_groups(). Even if the two lists may not be empty, the hfi1 driver will free all TID entries and receive groups associated with the receive context to prevent any resource leakage. Since a clean user application exit is not controlled by the hfi1 driver, this patch will remove the WARN_ONs in hfi1_free_ctxt_rcv_groups(). Reviewed-by: Mike Marciniszyn Reviewed-by: Michael J. Ruhl Reviewed-by: Dennis Dalessandro Signed-off-by: Kaike Wan Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit b885d5be9ca10dff6110a8738c45eb4b3fb5a40a Author: Kaike Wan Date: Mon Mar 18 09:58:50 2019 -0700 IB/hfi1: Unify the software PSN check for TID RDMA READ/WRITE For expected packet receiving, the hfi1 hardware checks the KDETH PSN automatically. However, when sequence error occurs, the hfi1 driver can check the sequence instead until the hardware flow generation is reloaded. TID RDMA READ and WRITE protocols implement similar software checking mechanisms, but with different flags and different local variables to store next expected PSN. Unify the handling by using only one set of flag and local variable for both TID RDMA READ and WRITE protocols. Reviewed-by: Mike Marciniszyn Reviewed-by: Dennis Dalessandro Reviewed-by: Michael J. Ruhl Signed-off-by: Kaike Wan Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit 6a40693a884dacae68c1771d369ad3be0594ba1c Author: Kaike Wan Date: Mon Mar 18 09:58:40 2019 -0700 IB/hfi1: Add a function to read next expected psn from hardware flow This patch adds a function to read next expected KDETH PSN from hardware flow to simplify the code. Reviewed-by: Mike Marciniszyn Reviewed-by: Dennis Dalessandro Reviewed-by: Michael J. Ruhl Signed-off-by: Kaike Wan Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit f6f3f532556e4fcaa2d259fd04a800bfb4f9670d Author: Kaike Wan Date: Mon Mar 18 09:58:30 2019 -0700 IB/hfi1: Delay the release of destination mr for TID RDMA WRITE DATA The reference of destination memory region is first obtained when TID RDMA WRITE request is first received on the responder side. This reference is released once all TID RDMA WRITE RESP packets are sent to the requester side, even though not all TID RDMA WRITE DATA packets may have been received. This early release will especially be undesired if the software needs to access the destination memory before the last data packet is received. This patch delays the release of the MR until all TID RDMA DATA packets have been received. A helper function to release the reference is also created to simplify the code. Reviewed-by: Mike Marciniszyn Reviewed-by: Dennis Dalessandro Reviewed-by: Michael J. Ruhl Signed-off-by: Kaike Wan Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit 061ccb52d23cfa2cf3195546a21c3a87194db5b7 Author: Leon Romanovsky Date: Tue Apr 2 15:35:13 2019 +0300 RDMA/cma: Set proper port number as index Conversion from IDR to XArray missed the fact that idr_alloc() returned index as a return value, this index was saved in port variable and used as query index later on. This caused to the following error. BUG: KASAN: use-after-free in cma_check_port+0x86a/0xa20 [rdma_cm] Read of size 8 at addr ffff888069fde998 by task ucmatose/387 CPU: 3 PID: 387 Comm: ucmatose Not tainted 5.1.0-rc2+ #253 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.11.0-0-g63451fca13-prebuilt.qemu-project.org 04/01/2014 Call Trace: dump_stack+0x7c/0xc0 print_address_description+0x6c/0x23c ? cma_check_port+0x86a/0xa20 [rdma_cm] kasan_report.cold.3+0x1c/0x35 ? cma_check_port+0x86a/0xa20 [rdma_cm] ? cma_check_port+0x86a/0xa20 [rdma_cm] cma_check_port+0x86a/0xa20 [rdma_cm] rdma_bind_addr+0x11bc/0x1b00 [rdma_cm] ? find_held_lock+0x33/0x1c0 ? cma_ndev_work_handler+0x180/0x180 [rdma_cm] ? wait_for_completion+0x3d0/0x3d0 ucma_bind+0x120/0x160 [rdma_ucm] ? ucma_resolve_addr+0x1a0/0x1a0 [rdma_ucm] ucma_write+0x1f8/0x2b0 [rdma_ucm] ? ucma_open+0x260/0x260 [rdma_ucm] vfs_write+0x157/0x460 ksys_write+0xb8/0x170 ? __ia32_sys_read+0xb0/0xb0 ? trace_hardirqs_off_caller+0x5b/0x160 ? do_syscall_64+0x18/0x3c0 do_syscall_64+0x95/0x3c0 entry_SYSCALL_64_after_hwframe+0x49/0xbe Allocated by task 381: __kasan_kmalloc.constprop.5+0xc1/0xd0 cma_alloc_port+0x4d/0x160 [rdma_cm] rdma_bind_addr+0x14e7/0x1b00 [rdma_cm] ucma_bind+0x120/0x160 [rdma_ucm] ucma_write+0x1f8/0x2b0 [rdma_ucm] vfs_write+0x157/0x460 ksys_write+0xb8/0x170 do_syscall_64+0x95/0x3c0 entry_SYSCALL_64_after_hwframe+0x49/0xbe Freed by task 381: __kasan_slab_free+0x12e/0x180 kfree+0xed/0x290 rdma_destroy_id+0x6b6/0x9e0 [rdma_cm] ucma_close+0x110/0x300 [rdma_ucm] __fput+0x25a/0x740 task_work_run+0x10e/0x190 do_exit+0x85e/0x29e0 do_group_exit+0xf0/0x2e0 get_signal+0x2e0/0x17e0 do_signal+0x94/0x1570 exit_to_usermode_loop+0xfa/0x130 do_syscall_64+0x327/0x3c0 entry_SYSCALL_64_after_hwframe+0x49/0xbe Reported-by: Reported-by: Ran Rozenstein Fixes: 638267537ad9 ("cma: Convert portspace IDRs to XArray") Signed-off-by: Leon Romanovsky Reviewed-by: Bart Van Assche Tested-by: Bart Van Assche Signed-off-by: Jason Gunthorpe commit 697e96ed1720d6aad196e7a663d545df2edd44a4 Author: Masahiro Yamada Date: Wed Apr 3 17:48:22 2019 +0900 arm64: vdso: fix and clean-up Makefile - $(call if_changed,...) must have FORCE as a prerequisite - vdso.lds is a generated file, so it should be prefixed with $(obj)/ instead of $(src)/. - cmd_vdsosym is a one-liner rule, so the assignment with '=' is simpler. Signed-off-by: Masahiro Yamada Signed-off-by: Will Deacon commit 70b3d237bd7f52d3322c750a358581bf5a267699 Author: Will Deacon Date: Wed Apr 3 17:58:39 2019 +0100 arm64: mm: Ensure we ignore the initrd if it is placed out of range If the initrd payload isn't completely accessible via the linear map, then we print a warning during boot and nobble the virtual address of the payload so that we ignore it later on. Unfortunately, since commit c756c592e442 ("arm64: Utilize phys_initrd_start/phys_initrd_size"), the virtual address isn't initialised until later anyway, so we need to nobble the size of the payload to ensure that we don't try to use it later on. Fixes: c756c592e442 ("arm64: Utilize phys_initrd_start/phys_initrd_size") Reported-by: Pierre Kuo Acked-by: Florian Fainelli Signed-off-by: Will Deacon commit 6752bea8b03e77c98be7d8d25b0a9d86a00b3cf7 Author: Nicholas Kazlauskas Date: Mon Mar 11 10:33:35 2019 -0400 drm/amd/display: Prevent cursor hotspot overflow for RV overlay planes [Why] The actual position for the cursor on the screen is essentially: x_out = x - x_plane - x_hotspot y_out = y - y_plane - y_hotspot The register values for cursor position and cursor hotspot need to be greater than zero when programmed, but we also need to subtract off the plane position to display the cursor at the correct position. Since we don't want x or y to be less than zero, we add the plane position as a positive value to x_hotspot or y_hotspot. However, what this doesn't take into account is that the hotspot registers are limited by the maximum cursor size. On DCN10 the cursor hotspot regitsers are masked to 0xFF, so they have a maximum value of 0-255. Values greater this will wrap, causing the cursor to display in the wrong position. In practice this means that for sufficiently large plane positions, the cursor will be drawn twice on the screen, and can cause screen flashes or p-state WARNS depending on what the wrapped value is. So we need a way to remove the value from x_plane and y_plane without exceeding the maximum cursor size. [How] Subtract as much as x_plane/y_plane as possible from x and y and place the remainder in the cursor hotspot register. The value for x_hotspot and y_hotspot can still wrap around but it won't happen in a case where the cursor is actually enabled. The cursor plane needs to intersect at least one pixel of the plane's rectangle to be enabled, so the cursor position + hotspot provided by userspace must always be strictly less than the maximum cursor size for the cursor to actually be enabled. Signed-off-by: Nicholas Kazlauskas Reviewed-by: Sun peng Li Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 805ab8f7da89c7f2a2ad39b149ac82beb62ba513 Author: Leo Li Date: Thu Mar 21 10:36:07 2019 -0400 drm/amd/display: Fix "dc has no member named dml" compile error For DCN disabled builds, dc->dml is stripped out. Therefore, guard usage in dc_create_state() with CONFIG_DRM_AMD_DC_DCN1_0. It fixes the following error: drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc.c: In function 'dc_create_state': >> drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc.c:1237:34: error: 'struct dc' has no member named 'dml' memcpy(&context->bw_ctx.dml, &dc->dml, sizeof(struct display_mode_lib)); ^~ Signed-off-by: Leo Li Acked-by: Alex Deucher Reviewed-by: Nicholas Kazlauskas Signed-off-by: Alex Deucher commit 813d20dccf93f84f4c16236f7c037dc34db48f10 Author: Aidan Wood Date: Fri Feb 22 13:37:03 2019 -0500 drm/amd/display: Fix multi-thread writing to 1 state [Why] Multiple threads were writing back to one global VBA in DC resulting in multiple threads overwriting eachother's data [How] Add an instance of DML (which contains VBA) to each context and change all calls that used dc->dml to use context->dml. Created a seperate copy constructor for linux in a case where there is no access to DC. Signed-off-by: Aidan Wood Reviewed-by: Jun Lei Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit fc13d7100299d4a10fd77bfd87954b33312f796f Author: Yannick Fertré Date: Thu Mar 21 09:07:26 2019 +0100 drm/panel: otm8009a: Set clock to 29.70 Mhz The panel does not support clock frequency over 30.74 MHz. The clock rate has been reduced to 29.70 MHz & new timings have been computed to get a framerate of 50 fps. Signed-off-by: Yannick Fertré Reviewed-by: Philippe Cornu Tested-by: Philippe Cornu Signed-off-by: Thierry Reding Link: https://patchwork.freedesktop.org/patch/msgid/1553155646-13636-1-git-send-email-yannick.fertre@st.com commit 135281dfd49393125828f1b7354a298b4784fb39 Author: Yannick Fertré Date: Thu Mar 21 09:05:35 2019 +0100 drm/panel: rm68200: No error msg if probe deferred Do not print an error message if the regulator framework returns EPROBE_DEFER. Signed-off-by: Yannick Fertré Reviewed-by: Philippe Cornu Signed-off-by: Thierry Reding Link: https://patchwork.freedesktop.org/patch/msgid/1553155535-13555-1-git-send-email-yannick.fertre@st.com commit f390d43e11cd254c87765ca1d5796104758896cb Author: Yannick Fertré Date: Thu Mar 21 09:04:44 2019 +0100 drm/panel: otm8009a: No error msg if probe deferred Do not print an error message if the regulator framework returns EPROBE_DEFER. Signed-off-by: Yannick Fertré Reviewed-by: Philippe Cornu Tested-by: Philippe Cornu Signed-off-by: Thierry Reding Link: https://patchwork.freedesktop.org/patch/msgid/1553155484-13460-1-git-send-email-yannick.fertre@st.com commit 0084c3c71126fc878c6dab8a6ab8ecc484c2be02 Author: Yannick Fertré Date: Thu Mar 21 09:04:05 2019 +0100 drm/panel: otm8009a: Add delay at the end of initialization At the end of initialization, a delay is required by the panel. Without this delay, the panel could received a frame early & generate a crash of panel (black screen). Signed-off-by: Yannick Fertré Reviewed-by: Philippe Cornu Tested-by: Philippe Cornu Signed-off-by: Thierry Reding Link: https://patchwork.freedesktop.org/patch/msgid/1553155445-13407-1-git-send-email-yannick.fertre@st.com commit 530b19698dc8ab125068ee3bf946f4cc1aca18fd Author: Guido Günther Date: Mon Apr 1 12:35:35 2019 +0200 drm/panel: Add Rocktech jh057n00900 panel driver Support Rocktech jh057n00900 5.5" 720x1440 TFT LCD panel. It is a MIPI DSI video mode panel. The panel seems to use a Sitronix ST7703 look alike (most of the commands look similar to the ST7703's data sheet but use a different number of parameters). The initial version of the DSI init sequence (including sleeps) were provided by the vendor. Sleeps were reduced considerably though to speed up initialization. Signed-off-by: Guido Günther Reviewed-by: Sam Ravnborg Signed-off-by: Thierry Reding Link: https://patchwork.freedesktop.org/patch/msgid/1a9ce687be283c66dfb26d1dfb52a7bf695090fa.1554114302.git.agx@sigxcpu.org commit 89c30fcb39f345cef7c66386387b71891e12df9d Author: Guido Günther Date: Mon Apr 1 12:35:34 2019 +0200 dt-bindings: Add Rocktech jh057n00900 panel bindings The Rocktec jh057n00900 is a 5.5" MIPI DSI video mode panel with a 720x1440 resolution and a built in backlight. Signed-off-by: Guido Günther Signed-off-by: Thierry Reding Link: https://patchwork.freedesktop.org/patch/msgid/ec59b22907ac28764ffb3bec33445b6e019945a4.1554114302.git.agx@sigxcpu.org commit 3ecd76d9640e3eedd0088acd7c623923aea789f6 Author: Guido Günther Date: Mon Apr 1 12:35:33 2019 +0200 dt-bindings: Add vendor prefix for ROCKTECH DISPLAYS LIMITED Add ROCKTECH DISPLAYS LIMITED (https://rocktech.com.hk) LCD panel supplier. Signed-off-by: Guido Günther Signed-off-by: Thierry Reding Link: https://patchwork.freedesktop.org/patch/msgid/b8db03faa344c834e6cc81eef1eca154e1a1bd90.1554114302.git.agx@sigxcpu.org commit 8c089d642fd176dfab0dac9e0b71a16547de3d02 Author: Guido Günther Date: Mon Mar 25 17:08:10 2019 +0100 dt-bindings: display/panel: Add missing unit names Some examples were missing the unit names triggering Warning (unit_address_vs_reg): .../panel: node has a reg or ranges property, but no unit name warnings when used verbatim in DTs and running dtc with W=1. Signed-off-by: Guido Günther Signed-off-by: Thierry Reding Link: https://patchwork.freedesktop.org/patch/msgid/901e836ea06889a9d91a799102b2a6b836d93dcd.1553529797.git.agx@sigxcpu.org commit 69dc678abc2b9d36ff005413ca6e9edabe4c369a Author: Jagan Teki Date: Wed Feb 13 02:11:09 2019 +0530 drm/panel: Add Feiyang FY07024DI26A30-D MIPI-DSI LCD panel Feiyang FY07024DI26A30-D is 1024x600, 4-lane MIPI-DSI LCD panel. Add panel driver for it. Signed-off-by: Jagan Teki Reviewed-by: Sam Ravnborg Tested-by: Bhushan Shah Tested-by: Merlijn Wajer Signed-off-by: Thierry Reding Link: https://patchwork.freedesktop.org/patch/msgid/20190212204109.3528-2-jagan@amarulasolutions.com commit 7f347dd535cea5d55c822574519bf86c8d04b205 Author: Jagan Teki Date: Wed Feb 13 02:11:08 2019 +0530 dt-bindings: panel: Add Feiyang FY07024DI26A30-D MIPI-DSI LCD panel Feiyang FY07024DI26A30-D is 1024x600, 4-lane MIPI-DSI LCD panel. Add dt-bingings for it. Signed-off-by: Jagan Teki Reviewed-by: Rob Herring Signed-off-by: Thierry Reding Link: https://patchwork.freedesktop.org/patch/msgid/20190212204109.3528-1-jagan@amarulasolutions.com commit bd9ae25314f275cea87a20db11756f32ed88dc15 Author: Jon Hunter Date: Wed Feb 27 15:53:39 2019 +0000 arm64: defconfig: Add PWM Fan support The Tegra194 Jetson AGX Xavier board includes a PWM based fan. Enable PWM fan support in the ARM64 defconfig to support the fan on this board. Please note that the device-tree PWM fan node is already present for this board. Signed-off-by: Jon Hunter Signed-off-by: Thierry Reding commit fb8bd68fcfff2fd6a1fa4899a610b18575fa32bc Author: Jon Hunter Date: Thu Mar 7 16:46:48 2019 +0000 arm64: defconfig: Enable Tegra HDA support Enable support for Tegra HDA controller in the ARM64 defconfig which is used by Tegra210, Tegra186 and Tegra194. Please note that the Tegra HDA controller requires the HDA HDMI/DP codec driver and so enable this as well. Signed-off-by: Jon Hunter Signed-off-by: Thierry Reding commit a54275f4ab204137c9995c686c7f1cd2682cc0a4 Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 bus: ti-sysc: Add quirk handling for external optional functional clock We cannot access mcpdm registers at all unless there is an optional pdmclk configured. As this is currently only needed for mcpdm, let's check for mcpdm in sysc_get_clocks(). If it turns out to be needed for other modules too, we can add more flags to the quirks table for this. Signed-off-by: Tony Lindgren commit 42b9c5c99bfc26eb2c82fa2a2440cda82d0258e3 Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 bus: ti-sysc: Add support for early quirks based on register address At least mcpdm needs an optional external clock enabled to function and this clock typically comes from the PMIC. We can detect mcpdm based on the interconnect target module address and set a quirk flag early. To do this, let's initialize the clocks a bit later and add a new function for sysc_init_early_quirks(). Note that we cannot yet enable the early quirks for mcpdm until the optional external clocks are handled in the in the following patch. Signed-off-by: Tony Lindgren commit b11c1ea1f636438d4e69381714c73abd9006cdcc Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 bus: ti-sysc: Move rstctrl reset to happen later We can do the rsstctrl a bit later, but need to deassert rstctrl reset before the clocks are enabled if asserted. Let's only init restctrl in sysc_init_resets() and do the reset later on just before we enable the device clocks. Signed-off-by: Tony Lindgren commit 93de83a21e76eda25517562a9e62f7b6a6f38126 Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 bus: ti-sysc: Manage clocks for the interconnect target module in all cases We are currently not managing interconnect target module clocks in the for legacy platform data based case. This causes a problem for using the platform data based functions when dropping the platform data for the interconnect target module configuration. To avoid a situation where we need to populate the main and optional clocks also for the platform data based functions, let's just manage the clocks directly in ti-sysc driver. This means that until the interconnect target module confugration platform data is dropped our use count for clk_enable() will be 2 instead of 1. Signed-off-by: Tony Lindgren commit a3e92e7b32f2f932239666e826988a13db10e513 Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 bus: ti-sysc: Allocate mdata as needed and do platform data based init later The platform data based init functions typically reset the interconnect target module configure the registers. As we may need the interconnect target module specific quirks configured based on the revision register, we want to move the platform data based init to happen later. Let's allocate mdata as needed so it's available for sysc_legacy_init() that we call with module clocks enabled from sysc_init_module(). Signed-off-by: Tony Lindgren commit 1a5cd7c23cc52445fcc4e82beb343ba43103ecdc Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 bus: ti-sysc: Enable all clocks directly during init to read revision The first thing we want to do is just read the module revision register to be able to configure the module specific quirks and configure the module registers. As the interconnect target module may not yet be properly configured and may need a reset first, we don't want to use pm_runtime_get() at this point. To read the revision register, let's just enable the all the clocks for the interconnect target module during init even if the optional clocks are not needed. That way we can read the revision register to configure the quirks needed for PM runtime. Signed-off-by: Tony Lindgren commit 1fa6fa1cad3aff9924aaf74f21ab80bd67a96ef4 Author: Daniel Vetter Date: Fri Mar 29 10:20:27 2019 +0100 drm/gamma: Clarify gamma lut uapi Interpreting it as a 0.16 fixed point means we can't accurately represent 1.0. Which is one of the values we really should be able to represent. Since most (all?) luts have lower precision this will only affect rounding of 0xffff. Cc: Uma Shankar Cc: Ville Syrjälä Cc: Shashank Sharma Cc: "Kumar, Kiran S" Cc: Kausal Malladi Cc: Lionel Landwerlin Cc: Matt Roper Cc: Rob Bradford Cc: Daniel Stone Cc: Stefan Schake Cc: Eric Anholt Cc: Maarten Lankhorst Cc: Harry Wentland Cc: Leo Li Cc: amd-gfx@lists.freedesktop.org Cc: James (Qian) Wang Cc: Liviu Dudau Cc: Mali DP Maintainers Cc: CK Hu Cc: Philipp Zabel Cc: Yannick Fertre Cc: Philippe Cornu Cc: Benjamin Gaignard Cc: Vincent Abriou Cc: Tomi Valkeinen Cc: Boris Brezillon Signed-off-by: Daniel Vetter Acked-by: Liviu Dudau Acked-by: Lionel Landwerlin Reviewed-by: Ville Syrjälä Reviewed-by: Matt Roper Reviewed-by: Philippe Cornu Reviewed-by: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/20190329092027.3430-1-daniel.vetter@ffwll.ch commit 59f9e9cab3a1e6762fb707d0d829b982930f1349 Author: Ville Syrjälä Date: Wed Mar 27 12:13:21 2019 +0200 drm/i915: Skip modeset for cdclk changes if possible If we have only a single active pipe and the cdclk change only requires the cd2x divider to be updated bxt+ can do the update with forcing a full modeset on the pipe. Try to hook that up. v2: - Wait for vblank after an optimized CDCLK change. - Avoid optimization if the pipe needs a modeset (or was disabled). - Split CDCLK change to a pre/post plane update step. v3: - Use correct version of CDCLK state as old state. (Ville) - Remove unused intel_cdclk_can_skip_modeset() v4: - For consistency call intel_set_cdclk_post_plane_update() only during modesets (and not fastsets). v5: - Remove the logic to update the CD2X divider on-the-fly on ICL, since only a divider of 1 is supported there. Clint also noticed that the pipe select bits in CDCLK_CTL are oddly defined on ICL, it's not clear yet whether that's only an error in the specification. Signed-off-by: Ville Syrjälä Signed-off-by: Abhay Kumar Tested-by: Abhay Kumar Signed-off-by: Imre Deak Reviewed-by: Clint Taylor Link: https://patchwork.freedesktop.org/patch/msgid/20190327101321.3095-1-imre.deak@intel.com commit 2b21dfbeee725778daed2c3dd45a3fc808176feb Author: Imre Deak Date: Wed Mar 20 15:54:38 2019 +0200 drm/i915: Remove redundant store of logical CDCLK state We copied the original state into the atomic state already earlier in the function, so no need to do it a second time. Cc: Ville Syrjälä Signed-off-by: Imre Deak Reviewed-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190320135439.12201-3-imre.deak@intel.com commit 48d9f87ddd2108663fd866b254e05d422243cc56 Author: Imre Deak Date: Wed Mar 20 15:54:37 2019 +0200 drm/i915: Save the old CDCLK atomic state The old state will be needed by an upcoming patch to determine if the commit increases or decreases CDCLK, so move the old state to the atomic state (while keeping the new one in dev_priv). cdclk.logical and cdclk.actual in the atomic state isn't used atm anywhere after the atomic check phase, so this should be safe. v2: - Use swap() instead of opencoding it. (Ville) Suggested-by: Ville Syrjälä Cc: Ville Syrjälä Signed-off-by: Imre Deak Reviewed-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190320135439.12201-2-imre.deak@intel.com commit 905801fe72377b4dc53c6e13eea1a91c6a4aa0c4 Author: Ville Syrjälä Date: Wed Mar 20 15:54:36 2019 +0200 drm/i915: Force 2*96 MHz cdclk on glk/cnl when audio power is enabled CDCLK has to be at least twice the BLCK regardless of audio. Audio driver has to probe using this hook and increase the clock even in absence of any display. v2: Use atomic refcount for get_power, put_power so that we can call each once(Abhay). v3: Reset power well 2 to avoid any transaction on iDisp link during cdclk change(Abhay). v4: Remove Power well 2 reset workaround(Ville). v5: Remove unwanted Power well 2 register defined in v4(Abhay). v6: - Use a dedicated flag instead of state->modeset for min CDCLK changes - Make get/put audio power domain symmetric - Rebased on top of intel_wakeref tracking changes. Signed-off-by: Ville Syrjälä Signed-off-by: Abhay Kumar Tested-by: Abhay Kumar Signed-off-by: Imre Deak Reviewed-by: Clint Taylor Link: https://patchwork.freedesktop.org/patch/msgid/20190320135439.12201-1-imre.deak@intel.com commit 161f62cd07fde123fd52bf6d5b6fd6513cca968e Author: Alex Henrie Date: Tue Apr 2 21:18:17 2019 -0600 HID: macally: Add support for Macally ikey keyboard This enables the power and equals keys on the Macally ikey keyboard. Based on the Cougar gaming keyboard HID driver, which uses the same vendor ID. Signed-off-by: Alex Henrie Reviewed-by: Hans de Goede Signed-off-by: Benjamin Tissoires commit 71bbe51a0839f77fb75b473b23485b026d74ab75 Author: Mario Kleiner Date: Fri Mar 29 13:00:57 2019 +0100 drm/amd/display: Make pageflip event delivery compatible with VRR. We want vblank counts and timestamps of flip completion as sent in pageflip completion events to be consistent with the vblank count and timestamp of the vblank of flip completion, like in non VRR mode. In VRR mode, drm_update_vblank_count() - and thereby vblank count and timestamp updates - must be delayed until after the end of front-porch of each vblank, as it is only safe to calculate vblank timestamps outside of the front-porch, when we actually know when the vblank will end or has ended. The function drm_update_vblank_count() which updates timestamps and counts gets called by drm_crtc_accurate_vblank_count() or by drm_crtc_handle_vblank(). Therefore we must make sure that pageflip events for a completed flip are only sent out after drm_crtc_accurate_vblank_count() or drm_crtc_handle_vblank() is executed, after end of front-porch for the vblank of flip completion. Two cases: a) Pageflip irq handler executes inside front-porch: In this case we must defer sending pageflip events until drm_crtc_handle_vblank() executes after end of front-porch, and thereby calculates proper vblank count and timestamp. Iow. the pflip irq handler must just arm a pageflip event to be sent out by drm_crtc_handle_vblank() later on. b) Pageflip irq handler executes after end of front-porch, e.g., after flip completion in back-porch or due to a massively delayed handler invocation into the active scanout of the new frame. In this case we can call drm_crtc_accurate_vblank_count() to safely force calculation of a proper vblank count and timestamp, and must send the pageflip completion event ourselves from the pageflip irq handler. This is the same behaviour as needed for standard fixed refresh rate mode. To decide from within pageflip handler if we are in case a) or b), we check the current scanout position against the boundary of front-porch. In non-VRR mode we just do what we did in the past. Signed-off-by: Mario Kleiner Reviewed-by: Nicholas Kazlauskas Signed-off-by: Alex Deucher commit d2574c33bb719575bac7a7044daed24081601804 Author: Mario Kleiner Date: Fri Mar 29 13:00:56 2019 +0100 drm/amd/display: In VRR mode, do DRM core vblank handling at end of vblank. (v2) In VRR mode, proper vblank/pageflip timestamps can only be computed after the display scanout position has left front-porch. Therefore delay calls to drm_crtc_handle_vblank(), and thereby calls to drm_update_vblank_count() and pageflip event delivery, to after the end of front-porch when in VRR mode. We add a new vupdate irq, which triggers at the end of the vupdate interval, ie. at the end of vblank, and calls the core vblank handler function. The new irq handler is not executed in standard non-VRR mode, so vblank handling for fixed refresh rate mode is identical to the past implementation. v2: Implement feedback by Nicholas and Paul Menzel. Signed-off-by: Mario Kleiner Acked-by: Harry Wentland Reviewed-by: Nicholas Kazlauskas Signed-off-by: Alex Deucher commit fdd1fe57c00ef96c8a8ab6e5eab03d248deecca6 Author: Mario Kleiner Date: Tue Apr 2 17:00:06 2019 -0500 drm/amd/display: Rework vrr flip throttling for late vblank irq. For throttling to work correctly, we always need a baseline vblank count last_flip_vblank that increments at start of front-porch. This is the case for drm_crtc_vblank_count() in non-VRR mode, where the vblank irq fires at start of front-porch and triggers DRM core vblank handling, but it is no longer the case in VRR mode, where core vblank handling is done later, after end of front-porch. Therefore drm_crtc_vblank_count() is no longer useful for this. We also can't use drm_crtc_accurate_vblank_count(), as that would screw up vblank timestamps in VRR mode when called in front-porch. To solve this, use the cooked hardware vblank counter returned by amdgpu_get_vblank_counter_kms() instead, as that one is cooked to always increment at start of front-porch, independent of when vblank related irq's fire. This patch allows vblank irq handling to happen anywhere within vblank of even after it, without a negative impact on flip throttling, so followup patches can shift the vblank core handling trigger point wherever they need it. Signed-off-by: Mario Kleiner Reviewed-by: Nicholas Kazlauskas Signed-off-by: Alex Deucher commit 66b0c973d7f74e3f45dbe9904ad02298d1dc430f Author: Mario Kleiner Date: Fri Mar 29 13:00:54 2019 +0100 drm/amd/display: Prevent vblank irq disable while VRR is active. (v3) During VRR mode we can not allow vblank irq dis-/enable transitions, as an enable after a disable can happen at an arbitrary time during the video refresh cycle, e.g., with a high likelyhood inside vblank front-porch. An enable during front-porch would cause vblank timestamp updates/calculations which are completely bogus, given the code can't know when the vblank will end as long as we are in front-porch with no page flip completed. Hold a permanent vblank reference on the crtc while in active VRR mode to prevent a vblank disable, and drop the reference again when switching back to fixed refresh rate non-VRR mode. v2: Make sure transition is also handled if vrr is disabled and stream gets disabled in the same atomic commit by moving the call to the transition function outside of plane commit. Suggested by Nicholas. v3: Trivial rebase onto previous patch. Signed-off-by: Mario Kleiner Reviewed-by: Nicholas Kazlauskas Signed-off-by: Alex Deucher commit e854194c8b6e27b970f3f993909451d9cc26a21e Author: Mario Kleiner Date: Fri Mar 29 13:00:53 2019 +0100 drm/amd/display: Update VRR state earlier in atomic_commit_tail. We need the VRR active/inactive state info earlier in the commit sequence, so VRR related setup functions like amdgpu_dm_handle_vrr_transition() know the final VRR state when they need to do their hw setup work. Split update_freesync_state_on_stream() into an early part, that can run at the beginning of commit tail before the vrr transition handling, and a late part that must run after vrr transition handling inside the commit planes code for enabled crtc's. Suggested by Nicholas Kazlauskas. Signed-off-by: Mario Kleiner Reviewed-by: Nicholas Kazlauskas Signed-off-by: Alex Deucher commit e178f10726d136e54080a43382b858020ea694a3 Author: Kent Russell Date: Mon Apr 1 07:19:06 2019 -0400 drm/amdgpu: Allow switching to CUSTOM profile on Vega20 Vega20 stores a CUSTOM profile on the GPU, but it may not be valid. Add a bool to vega20_hwmgr to determine whether or not a valid CUSTOM profile has been set, and use that to check when a user requests switching to the CUSTOM profile without passing in any arguments. Then if the CUSTOM profile has been set already, we can switch to it without providing the parameters again Signed-off-by: Kent Russell Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit bbdf38cc0dce5c68658e20b777720b8611dc286c Author: Kent Russell Date: Mon Apr 1 06:43:39 2019 -0400 drm/amdgpu: Allow switching to CUSTOM profile on Vega10 v2 Don't return an error if the CUSTOM profile is selected, just apply it with the values saved to the GPU. But ensure that we zero out the copy stored in adev to ensure that a valid profile has been submitted at some point first v2: Fix comment that wasn't updated from previous patch Signed-off-by: Kent Russell Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit 233d3ee4ba3636c0215714ee9f282e08147a452b Author: Kent Russell Date: Fri Mar 22 09:01:26 2019 -0400 drm/amdgpu: Allow switching to CUSTOM profile on smu7 v2 Allow changing to the CUSTOM profile without requiring the parameters being passed in each time. Store the values in the smu7_profiling table since it's defined here anyways v2: Add check that CUSTOM was previously set Signed-off-by: Kent Russell Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit b4ae4fe6cdbbfedb9e71294a4d9aa2b4a37edf16 Author: shaoyunl Date: Tue Mar 26 14:47:57 2019 -0400 drm/amdgpu: Add preferred_domain check when determine XGMI state Avoid unnecessary XGMI hight pstate trigger when mapping none-vram memory for peer device Signed-off-by: shaoyunl Reviewed-by: Felix Kuehling Reviewed-by: Christian König Signed-off-by: Alex Deucher commit c4229c6e37c203fd99397c1bcfe83a2bc1d30d96 Author: Christian König Date: Mon Mar 25 16:13:44 2019 +0100 drm/amdgpu: provide the page fault queue to the VM code We are going to need that for recoverable page faults. Signed-off-by: Christian König Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher commit b6f3a51e0a3427fe6e737c37f911d07afb50683f Author: Christian König Date: Thu Mar 28 13:51:23 2019 +0100 drm/amdgpu: handle leaf PDEs as PTEs on Vega This way we get retry faults for missing PDs. Signed-off-by: Christian König Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher commit 5fa76a9dfe9fe501203d1a12a646d467db79aa90 Author: Christian König Date: Thu Mar 28 13:53:38 2019 +0100 drm/amdgpu: fix ATC handling for Ryzen Otherwise we don't correctly use translate further. Signed-off-by: Christian König Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher commit 795c1b8d0730541f4bfd09921d61bb824f7070f6 Author: shaoyunl Date: Mon Mar 25 16:07:23 2019 -0400 drm/amdgpu: Adjust TMR address alignment as per HW requirement According to HW engineer, they prefer the TMR address be "naturally aligned", e.g. the start address must be an integer divide of TME size. Signed-off-by: shaoyunl Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit af67772d0a763a62b3d14e12e9d1c08c6974eac9 Author: Emily Deng Date: Thu Mar 28 17:29:10 2019 +0800 drm/amdgpu: Correct the irq types' num of sdma Fix the issue about TDR-2 will have "fallback timer expired on ring sdma1". It is because the wrong number of irq types setting. Signed-off-by: Emily Deng Reviewed-by: Christian König Signed-off-by: Alex Deucher commit a6cbfbe6677efb5ca47bb7958c2718236c25126e Author: Jann Horn Date: Fri Mar 29 22:46:52 2019 +0100 x86/uaccess: Fix implicit cast of __user pointer The first two arguments of __user_atomic_cmpxchg_inatomic() are: - @uval is a kernel pointer into which the old value should be stored - @ptr is the user pointer on which the cmpxchg should operate This means that casting @uval to __typeof__(ptr) is wrong. Since @uval is only used once inside the macro, just get rid of __uval and use (uval) directly. Signed-off-by: Jann Horn Signed-off-by: Borislav Petkov Reviewed-by: Mukesh Ojha Cc: Andrew Morton Cc: Andy Lutomirski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Mike Rapoport Cc: Qiaowei Ren Cc: Thomas Gleixner Cc: Will Deacon Cc: x86-ml Link: https://lkml.kernel.org/r/20190329214652.258477-4-jannh@google.com commit 4c6ce5c99084411391ba892a821f61cf42c79157 Author: Chris Wilson Date: Fri Mar 29 15:49:12 2019 +0000 drm/i915: Move the decision to use the breadcrumb tasklet to the backend Use the engine->flags to store whether we want to kick the submission tasklet on receipt of a breadcrumb interrupt, so that this decision can be made by the submission backend and not dependent on a limited feature test within the interrupt handler. This should make it easier to adapt to different submission backends. Signed-off-by: Chris Wilson Cc: Michal Wajdeczko Cc: Xiaolin Zhang Cc: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190329154912.13781-1-chris@chris-wilson.co.uk Reviewed-by: Tvrtko Ursulin commit 91b228107da3e41558449a62cd93816b47b3b4b5 Author: Rushikesh S Kadam Date: Tue Apr 2 11:17:41 2019 +0530 HID: intel-ish-hid: ISH firmware loader client driver This driver adds support for loading Intel Integrated Sensor Hub (ISH) firmware from host file system to ISH SRAM and start execution. At power-on, the ISH subsystem shall boot to an interim Shim loader-firmware, which shall expose an ISHTP loader device. The driver implements an ISHTP client that communicates with the Shim ISHTP loader device over the intel-ish-hid stack, to download the main ISH firmware. Signed-off-by: Rushikesh S Kadam Acked-by: Srinivas Pandruvada Acked-by: Nick Crews Tested-by: Jett Rink Signed-off-by: Jiri Kosina commit ddb20d1d3aed8f130519c0a29cd5392efcc067b8 Author: Waiman Long Date: Fri Mar 22 10:30:08 2019 -0400 locking/rwsem: Optimize down_read_trylock() Modify __down_read_trylock() to optimize for an unlocked rwsem and make it generate slightly better code. Before this patch, down_read_trylock: 0x0000000000000000 <+0>: callq 0x5 0x0000000000000005 <+5>: jmp 0x18 0x0000000000000007 <+7>: lea 0x1(%rdx),%rcx 0x000000000000000b <+11>: mov %rdx,%rax 0x000000000000000e <+14>: lock cmpxchg %rcx,(%rdi) 0x0000000000000013 <+19>: cmp %rax,%rdx 0x0000000000000016 <+22>: je 0x23 0x0000000000000018 <+24>: mov (%rdi),%rdx 0x000000000000001b <+27>: test %rdx,%rdx 0x000000000000001e <+30>: jns 0x7 0x0000000000000020 <+32>: xor %eax,%eax 0x0000000000000022 <+34>: retq 0x0000000000000023 <+35>: mov %gs:0x0,%rax 0x000000000000002c <+44>: or $0x3,%rax 0x0000000000000030 <+48>: mov %rax,0x20(%rdi) 0x0000000000000034 <+52>: mov $0x1,%eax 0x0000000000000039 <+57>: retq After patch, down_read_trylock: 0x0000000000000000 <+0>: callq 0x5 0x0000000000000005 <+5>: xor %eax,%eax 0x0000000000000007 <+7>: lea 0x1(%rax),%rdx 0x000000000000000b <+11>: lock cmpxchg %rdx,(%rdi) 0x0000000000000010 <+16>: jne 0x29 0x0000000000000012 <+18>: mov %gs:0x0,%rax 0x000000000000001b <+27>: or $0x3,%rax 0x000000000000001f <+31>: mov %rax,0x20(%rdi) 0x0000000000000023 <+35>: mov $0x1,%eax 0x0000000000000028 <+40>: retq 0x0000000000000029 <+41>: test %rax,%rax 0x000000000000002c <+44>: jns 0x7 0x000000000000002e <+46>: xor %eax,%eax 0x0000000000000030 <+48>: retq By using a rwsem microbenchmark, the down_read_trylock() rate (with a load of 10 to lengthen the lock critical section) on a x86-64 system before and after the patch were: Before Patch After Patch # of Threads rlock rlock ------------ ----- ----- 1 14,496 14,716 2 8,644 8,453 4 6,799 6,983 8 5,664 7,190 On a ARM64 system, the performance results were: Before Patch After Patch # of Threads rlock rlock ------------ ----- ----- 1 23,676 24,488 2 7,697 9,502 4 4,945 3,440 8 2,641 1,603 For the uncontended case (1 thread), the new down_read_trylock() is a little bit faster. For the contended cases, the new down_read_trylock() perform pretty well in x86-64, but performance degrades at high contention level on ARM64. Suggested-by: Linus Torvalds Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Acked-by: Linus Torvalds Cc: Andrew Morton Cc: Arnd Bergmann Cc: Borislav Petkov Cc: Davidlohr Bueso Cc: H. Peter Anvin Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tim Chen Cc: Will Deacon Cc: linux-arm-kernel@lists.infradead.org Cc: linux-c6x-dev@linux-c6x.org Cc: linux-m68k@lists.linux-m68k.org Cc: linux-riscv@lists.infradead.org Cc: linux-um@lists.infradead.org Cc: linux-xtensa@linux-xtensa.org Cc: linuxppc-dev@lists.ozlabs.org Cc: nios2-dev@lists.rocketboards.org Cc: openrisc@lists.librecores.org Cc: uclinux-h8-devel@lists.sourceforge.jp Link: https://lkml.kernel.org/r/20190322143008.21313-4-longman@redhat.com Signed-off-by: Ingo Molnar commit 390a0c62c23cb026cd4664a66f6f45fed3a215f6 Author: Waiman Long Date: Fri Mar 22 10:30:07 2019 -0400 locking/rwsem: Remove rwsem-spinlock.c & use rwsem-xadd.c for all archs Currently, we have two different implementation of rwsem: 1) CONFIG_RWSEM_GENERIC_SPINLOCK (rwsem-spinlock.c) 2) CONFIG_RWSEM_XCHGADD_ALGORITHM (rwsem-xadd.c) As we are going to use a single generic implementation for rwsem-xadd.c and no architecture-specific code will be needed, there is no point in keeping two different implementations of rwsem. In most cases, the performance of rwsem-spinlock.c will be worse. It also doesn't get all the performance tuning and optimizations that had been implemented in rwsem-xadd.c over the years. For simplication, we are going to remove rwsem-spinlock.c and make all architectures use a single implementation of rwsem - rwsem-xadd.c. All references to RWSEM_GENERIC_SPINLOCK and RWSEM_XCHGADD_ALGORITHM in the code are removed. Suggested-by: Peter Zijlstra Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Acked-by: Linus Torvalds Cc: Andrew Morton Cc: Arnd Bergmann Cc: Borislav Petkov Cc: Davidlohr Bueso Cc: H. Peter Anvin Cc: Paul E. McKenney Cc: Thomas Gleixner Cc: Tim Chen Cc: Will Deacon Cc: linux-arm-kernel@lists.infradead.org Cc: linux-c6x-dev@linux-c6x.org Cc: linux-m68k@lists.linux-m68k.org Cc: linux-riscv@lists.infradead.org Cc: linux-um@lists.infradead.org Cc: linux-xtensa@linux-xtensa.org Cc: linuxppc-dev@lists.ozlabs.org Cc: nios2-dev@lists.rocketboards.org Cc: openrisc@lists.librecores.org Cc: uclinux-h8-devel@lists.sourceforge.jp Link: https://lkml.kernel.org/r/20190322143008.21313-3-longman@redhat.com Signed-off-by: Ingo Molnar commit 46ad0840b1584b92b5ff2cc3ed0b011dd6b8e0f1 Author: Waiman Long Date: Fri Mar 22 10:30:06 2019 -0400 locking/rwsem: Remove arch specific rwsem files As the generic rwsem-xadd code is using the appropriate acquire and release versions of the atomic operations, the arch specific rwsem.h files will not be that much faster than the generic code as long as the atomic functions are properly implemented. So we can remove those arch specific rwsem.h and stop building asm/rwsem.h to reduce maintenance effort. Currently, only x86, alpha and ia64 have implemented architecture specific fast paths. I don't have access to alpha and ia64 systems for testing, but they are legacy systems that are not likely to be updated to the latest kernel anyway. By using a rwsem microbenchmark, the total locking rates on a 4-socket 56-core 112-thread x86-64 system before and after the patch were as follows (mixed means equal # of read and write locks): Before Patch After Patch # of Threads wlock rlock mixed wlock rlock mixed ------------ ----- ----- ----- ----- ----- ----- 1 29,201 30,143 29,458 28,615 30,172 29,201 2 6,807 13,299 1,171 7,725 15,025 1,804 4 6,504 12,755 1,520 7,127 14,286 1,345 8 6,762 13,412 764 6,826 13,652 726 16 6,693 15,408 662 6,599 15,938 626 32 6,145 15,286 496 5,549 15,487 511 64 5,812 15,495 60 5,858 15,572 60 There were some run-to-run variations for the multi-thread tests. For x86-64, using the generic C code fast path seems to be a little bit faster than the assembly version with low lock contention. Looking at the assembly version of the fast paths, there are assembly to/from C code wrappers that save and restore all the callee-clobbered registers (7 registers on x86-64). The assembly generated from the generic C code doesn't need to do that. That may explain the slight performance gain here. The generic asm rwsem.h can also be merged into kernel/locking/rwsem.h with no code change as no other code other than those under kernel/locking needs to access the internal rwsem macros and functions. Signed-off-by: Waiman Long Signed-off-by: Peter Zijlstra (Intel) Acked-by: Linus Torvalds Cc: Andrew Morton Cc: Arnd Bergmann Cc: Borislav Petkov Cc: Davidlohr Bueso Cc: H. Peter Anvin Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Tim Chen Cc: Will Deacon Cc: linux-arm-kernel@lists.infradead.org Cc: linux-c6x-dev@linux-c6x.org Cc: linux-m68k@lists.linux-m68k.org Cc: linux-riscv@lists.infradead.org Cc: linux-um@lists.infradead.org Cc: linux-xtensa@linux-xtensa.org Cc: linuxppc-dev@lists.ozlabs.org Cc: nios2-dev@lists.rocketboards.org Cc: openrisc@lists.librecores.org Cc: uclinux-h8-devel@lists.sourceforge.jp Link: https://lkml.kernel.org/r/20190322143008.21313-2-longman@redhat.com Signed-off-by: Ingo Molnar commit 92606ec9285fb84cd9b5943df23f07d741384bfc Author: Wen Yang Date: Tue Mar 5 19:34:05 2019 +0800 arm64: cpu_ops: fix a leaked reference by adding missing of_node_put The call to of_get_next_child returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: ./arch/arm64/kernel/cpu_ops.c:102:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 69, but without a corresponding object release within this function. Signed-off-by: Wen Yang Reviewed-by: Florian Fainelli Cc: Catalin Marinas Cc: Will Deacon Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Will Deacon commit fa0b735414f90bbd08637630dbad5cb1278dd661 Author: Maya Erez Date: Thu Feb 28 11:35:10 2019 +0200 wil6210: print error in FW and board files load failures Add an error print-out in case FW and board files load fails, as such an error is not printed on all failures and user may not understand why the interface up operations didn't succeed. Signed-off-by: Maya Erez Signed-off-by: Kalle Valo commit b4a967b7d0f5cee75cfa343b7498eb92a8735594 Author: Maya Erez Date: Thu Feb 28 11:35:08 2019 +0200 wil6210: reset buff id in status message after completion Since DR bit and buffer id are written in different dwords of the status message, the DR bit can already be set to 1 while the buffer id is not updated yet. Resetting the buffer id in the status message will allow the driver to identify such cases and re-read the status message until the buffer id is written by HW. In case DR bit is set but buffer id is zero, need to read the status message again, until a valid id is identified. In addition to that, move the completed buffer id to the tail of the free list to prevent its immediate reuse in the upcoming refill. Signed-off-by: Maya Erez Signed-off-by: Kalle Valo commit 8454e72a3644c7f3617ed85be899291f344dba7f Author: Ahmad Masri Date: Thu Feb 28 11:35:05 2019 +0200 wil6210: add support for ucode tracing The driver needs to expose RGF_USER_USAGE_2 register that contains the offset of the ucode logging table. Signed-off-by: Ahmad Masri Signed-off-by: Maya Erez Signed-off-by: Kalle Valo commit 1683a001d5bf244bc6d9751d0b50ec382006ec27 Author: Maya Erez Date: Thu Feb 28 11:35:03 2019 +0200 wil6210: prevent access to RGF_CAF_ICR in Talyn Due to access control RGF_CAF_ICR cannot be accessed by host. Such an access will cause device AHB logger to halt and it will not capture future AHB fault if there is any. Signed-off-by: Maya Erez Signed-off-by: Kalle Valo commit 49122ec42634f73babb1dc96f170023e5228d080 Author: Lior David Date: Thu Feb 28 11:35:01 2019 +0200 wil6210: fix return code of wmi_mgmt_tx and wmi_mgmt_tx_ext The functions that send management TX frame have 3 possible results: success and other side acknowledged receive (ACK=1), success and other side did not acknowledge receive(ACK=0) and failure to send the frame. The current implementation incorrectly reports the ACK=0 case as failure. Signed-off-by: Lior David Signed-off-by: Maya Erez Signed-off-by: Kalle Valo commit 4bf019865cf327df2fed403d35bb36ecb6617e8a Author: Ahmad Masri Date: Thu Feb 28 11:34:59 2019 +0200 wil6210: fix report of rx packet checksum in edma mode Update the rx packet checksum of received packet according to edma HW spec: No need to calculate checksum in the following cases: L4_status=0 and L3_status=0 - No L3 and no L4 known protocols found L4_status=0 and L3_status=1 - L3 was found, and checksum check passed. No known L4 protocol was found. L4_status=1 - L4 was found, and checksum check passed. Recalculate checksum in the following cases: L4_status=3 and L3_status=1 - It means that L3 protocol was found, and checksum passed, but L4 checksum failed. L4_status=3 and L3_status=2 - Both L3 and L4 checksum check failed. Signed-off-by: Ahmad Masri Signed-off-by: Maya Erez Signed-off-by: Kalle Valo commit 7048a5973eb1d6a747b516334c052d92d8ed7ab4 Author: Will Deacon Date: Wed Apr 3 13:36:54 2019 +0100 arm64: mm: Make show_pte() a static function show_pte() doesn't have any external callers, so make it static. Signed-off-by: Will Deacon commit 29ca376066df05760a7d7038a95aba1c3b968e9e Author: Dedy Lansky Date: Thu Feb 28 11:34:57 2019 +0200 wil6210: free edma_rx_swtail upon reset edma_rx_swtail dma memory free is missing. Add this part of Rx desc ring free. Signed-off-by: Dedy Lansky Signed-off-by: Maya Erez Signed-off-by: Kalle Valo commit 7b834639c4c4cbb19acb0842a8f4ee11ea079c6f Author: Dedy Lansky Date: Thu Feb 28 11:34:54 2019 +0200 wil6210: use OEM MAC address from OTP In addition to existing MAC address field in OTP, new field added for OEM MAC address. wil6210 gives precedence to the new OEM MAC address and will use it if its valid. Signed-off-by: Dedy Lansky Signed-off-by: Maya Erez Signed-off-by: Kalle Valo commit e4a29bdd8f82627d88644971235dc12b70c4150b Author: Ahmad Masri Date: Thu Feb 28 11:34:52 2019 +0200 wil6210: check mid is valid Check that the mid is valid and that it does not exceed the memory size allocated to vifs array. Signed-off-by: Ahmad Masri Signed-off-by: Maya Erez Signed-off-by: Kalle Valo commit 044974fbeadee4a5c0554ee7d83d22495ad3d450 Author: Maya Erez Date: Thu Feb 28 11:34:50 2019 +0200 wil6210: update WIL_MCS_MAX to 15 Update max MCS to 15, which is supported by Talyn-MB. This will allow collecting statistics on number of RX packets in higher MCS. Signed-off-by: Maya Erez Signed-off-by: Kalle Valo commit f6194f769dfce79cb3084086118e0cea056e8676 Author: Maya Erez Date: Thu Feb 28 11:34:48 2019 +0200 wil6210: do not set BIT_USER_SUPPORT_T_POWER_ON_0 in Talyn-MB In Sparrow, FW might sleep long time due to T_Power_On calculation in slow clock, so T_Power_On was set to zero to shorten the L1SS wake-up time. In Talyn-MB the L1SS wake-up procedure is handled by the PMU (HW), hence T_Power_On calculation is accurate and should not be forced to zero. Signed-off-by: Maya Erez Signed-off-by: Kalle Valo commit 5793fe9d4fde6897dbf821444ab57c45cb0a10db Author: Maya Erez Date: Thu Feb 28 11:34:46 2019 +0200 wil6210: increase PCP stop command timeout In case there are connected stations, FW needs to disconnect them before handling PCP stop. This flow can take several seconds. Increasing PCP stop timeout to 5 seconds to allow that. Signed-off-by: Maya Erez Signed-off-by: Kalle Valo commit a061894587ef61d19e5196c601ac250cc19f406f Author: Ahmad Masri Date: Thu Feb 28 11:34:44 2019 +0200 wil6210: prevent device memory access while in reset or suspend Accessing some of the memory of the device while the device is resetting or suspending may cause unexpected error as the HW is still not in a stable state. Prevent this access to guarantee successful read/write memory operations. Signed-off-by: Ahmad Masri Signed-off-by: Maya Erez Signed-off-by: Kalle Valo commit 73a7d1e34d889ee4b23ac0698bd924e5ef63969c Author: Alexei Avshalom Lazar Date: Thu Feb 28 11:34:42 2019 +0200 wil6210: align to latest auto generated wmi.h Align to latest version of the auto generated wmi file describing the interface with FW. Signed-off-by: Alexei Avshalom Lazar Signed-off-by: Maya Erez Signed-off-by: Kalle Valo commit 0f1bf7e39822476b2f921435cf990f67a61f5f92 Author: Matteo Croce Date: Mon Apr 1 12:44:47 2019 +0200 arm64/vdso: don't leak kernel addresses Since commit ad67b74d2469d9b8 ("printk: hash addresses printed with %p"), two obfuscated kernel pointer are printed at every boot: vdso: 2 pages (1 code @ (____ptrval____), 1 data @ (____ptrval____)) Remove the the print completely, as it's useless without the addresses. Fixes: ad67b74d2469d9b8 ("printk: hash addresses printed with %p") Acked-by: Mark Rutland Signed-off-by: Matteo Croce Signed-off-by: Will Deacon commit 89833fab15d6017ba006a45b5af68caa067171a7 Author: Jann Horn Date: Fri Mar 29 22:46:51 2019 +0100 x86/fpu: Fix __user annotations In save_xstate_epilog(), use __user when type-casting userspace pointers. In setup_sigcontext() and x32_setup_rt_frame(), cast the userspace pointers to 'unsigned long __user *' before writing into them. These pointers are originally '__u32 __user *' or '__u64 __user *', causing sparse to complain when a userspace pointer is written into them. The casts are okay because the pointers always point to pointer-sized values. Thanks to Luc Van Oostenryck and Al Viro for explaining this to me. Signed-off-by: Jann Horn Signed-off-by: Borislav Petkov Cc: Andy Lutomirski Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Mathieu Desnoyers Cc: Mukesh Ojha Cc: Qiaowei Ren Cc: Sebastian Andrzej Siewior Cc: Thomas Gleixner Cc: Will Deacon Cc: x86-ml Link: https://lkml.kernel.org/r/20190329214652.258477-3-jannh@google.com commit 19d6242ece1f35aa004a7da9adf52e0ec18a854e Author: Miles Chen Date: Thu Mar 21 12:21:25 2019 +0800 arm64: setup min_low_pfn When debugging with CONFIG_PAGE_OWNER, I noticed that the min_low_pfn on arm64 is always zero and the page owner scanning has to start from zero. We have to loop a while before we see the first valid pfn. (see: read_page_owner()) Setup min_low_pfn to save some loops. Before setting min_low_pfn: [ 21.265602] min_low_pfn=0, *ppos=0 Page allocated via order 0, mask 0x100cca(GFP_HIGHUSER_MOVABLE) PFN 262144 type Movable Block 512 type Movable Flags 0x8001e referenced|uptodate|dirty|lru|swapbacked) prep_new_page+0x13c/0x140 get_page_from_freelist+0x254/0x1068 __alloc_pages_nodemask+0xd4/0xcb8 After setting min_low_pfn: [ 11.025787] min_low_pfn=262144, *ppos=0 Page allocated via order 0, mask 0x100cca(GFP_HIGHUSER_MOVABLE) PFN 262144 type Movable Block 512 type Movable Flags 0x8001e referenced|uptodate|dirty|lru|swapbacked) prep_new_page+0x13c/0x140 get_page_from_freelist+0x254/0x1068 __alloc_pages_nodemask+0xd4/0xcb8 shmem_alloc_page+0x7c/0xa0 shmem_alloc_and_acct_page+0x124/0x1e8 shmem_getpage_gfp.isra.7+0x118/0x878 shmem_write_begin+0x38/0x68 Signed-off-by: Miles Chen Signed-off-by: Will Deacon commit 10d64c871c309afb2403a3fadf5ff3ab7d96d8ed Author: Andy Shevchenko Date: Wed Mar 13 13:58:25 2019 +0200 pinctrl: cedarfork: Update pin names according to v1.13c Version 1.13c of pin list has some changes in pin names for Intel Cedarfork. Update the driver accordingly. Signed-off-by: Andy Shevchenko Acked-by: Mika Westerberg Acked-by: Linus Walleij commit b1ce45e86b81e8ce354c47a7440d263e4cd5dc56 Author: Qian Cai Date: Thu Mar 14 12:16:19 2019 -0400 arm64/mm: fix kernel-doc comments Building a kernel with W=1 generates several warnings due to abuse of kernel-doc comments: | arch/arm64/mm/numa.c:281: warning: Cannot understand * | on line 281 - I thought it was a doc line Tidy up the comments to remove the warnings. Fixes: 1a2db300348b ("arm64, numa: Add NUMA support for arm64 platforms.") Signed-off-by: Qian Cai Signed-off-by: Will Deacon commit 7240d7d41fd05e7d841a744cd2d77019d7b1286f Author: Angus Ainslie (Purism) Date: Fri Mar 29 08:21:30 2019 -0700 arm64: dts: imx8mq: Change ahb clock for imx8mq Set ahb clock on sdma1 to get rid of "Timeout waiting for CH0" on the imx8mq. Signed-off-by: Angus Ainslie (Purism) Signed-off-by: Shawn Guo commit b6c846b954c0b1a4b56215233484ed2240226f80 Author: Angus Ainslie (Purism) Date: Fri Mar 29 08:21:28 2019 -0700 arm64: dts: imx8mq: Fix the fsl,imx8mq-sdma compatible string Fix a typo in the compatible string Signed-off-by: Angus Ainslie (Purism) Reviewed-by: Daniel Baluta Signed-off-by: Shawn Guo commit ea2df11f7221a149546e337f5404e8d1c932c104 Author: Srinath Mannam Date: Fri Mar 1 10:22:16 2019 +0530 PCI: iproc: Allow outbound configuration for 32-bit I/O region The IProc host controller has I/O memory windows allocated in the AXI memory map that can be used to address PCI I/O memory space. Mapping from AXI memory windows to PCI outbound memory windows is carried out in the host controller through OARR/OMAP registers pairs that permit to define power of two region size AXI<->PCI mappings, the smallest of which is 128MB. Current code enables AXI memory window to PCI outbound memory window mapping only for AXI windows matching one of the OARR/OMAP window sizes, that are SoC dependent and the smallest of which is 128MB. Some SoCs implementing the IProc host controller have a 32-bit AXI memory window into PCI I/O memory space, eg: Base address | Size ----------------------------- (1) 0x42000000 | 0x2000000 (2) 0x400000000 | 0x80000000 but its size (32MB - (1) above) is smaller than the smallest AXI<->PCI region size provided by OARR (128MB), so the current driver rejects mappings for the 32-bit region making the IProc host controller driver unusable on 32-bit systems. However, there is no reason why the 32-bit I/O memory window cannot be enabled by mapping it through an OARR/OMAP region bigger in size (ie 32-bit AXI window size is 32MB but can be mapped using a 128MB OARR/OMAP region). Allow outbound window configuration of I/O memory windows that are smaller in size than the host controller OARR/OMAP region, so that the 32-bit AXI memory window can actually be enabled, making the IProc host controller operational on 32-bit systems. Link: https://lore.kernel.org/linux-pci/1551415936-30174-3-git-send-email-srinath.mannam@broadcom.com/ Signed-off-by: Srinath Mannam Signed-off-by: Abhishek Shah Signed-off-by: Ray Jui [lorenzo.pieralisi@arm.com: rewrote the commit log] Signed-off-by: Lorenzo Pieralisi Acked-by: Scott Branden commit 73b9e4d3309c540d9c855322e6ccedfa8ef698fc Author: Srinath Mannam Date: Fri Mar 1 10:22:15 2019 +0530 PCI: iproc: Add CRS check in config read The IPROC PCIe host controller implementation returns CFG_RETRY_STATUS (0xffff0001) data when it receives a CRS completion, regardless of the address of the read or the CRS Software Visibility Enable bit. As a workaround the driver retries in software any read that returns CFG_RETRY_STATUS even though, for reads of registers that are not Vendor ID, the register value can correspond to CFG_RETRY_STATUS; this situation would cause a timeout and failure of reading a valid register value. IPROC PCIe host controller PAXB v2 has a register to show config read status flags like SC, UR, CRS and CA. Using this status flag, an extra check is added to confirm the CRS using status flags before reissuing a config read, fixing the issue. Signed-off-by: Srinath Mannam [lorenzo.pieralisi@arm.com: rewrote commit log] Signed-off-by: Lorenzo Pieralisi Acked-by: Scott Branden commit 71b47eaf6fb29b7f9722dc1646c26eb8a96e0a6d Author: YueHaibing Date: Wed Mar 20 21:38:39 2019 +0800 sched/fair: Make sync_entity_load_avg() and remove_entity_load_avg() static Fix these sparse warnigs: kernel/sched/fair.c:3570:6: warning: symbol 'sync_entity_load_avg' was not declared. Should it be static? kernel/sched/fair.c:3583:6: warning: symbol 'remove_entity_load_avg' was not declared. Should it be static? Signed-off-by: YueHaibing Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Mike Galbraith Cc: Peter Zijlstra Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/20190320133839.21392-1-yuehaibing@huawei.com Signed-off-by: Ingo Molnar commit 7ba7319f9e3898101bff5d63cbae5a6cc174c8c9 Author: Joel Fernandes (Google) Date: Wed Mar 20 20:34:26 2019 -0400 sched/core: Annotate perf_domain pointer with __rcu This fixes the following sparse errors in sched/fair.c: fair.c:6506:14: error: incompatible types in comparison expression fair.c:8642:21: error: incompatible types in comparison expression Using __rcu will also help sparse catch any future bugs. Signed-off-by: Joel Fernandes (Google) Signed-off-by: Peter Zijlstra (Intel) [ From an RCU perspective. ] Reviewed-by: Paul E. McKenney Cc: Josh Triplett Cc: Lai Jiangshan Cc: Linus Torvalds Cc: Luc Van Oostenryck Cc: Mathieu Desnoyers Cc: Mike Galbraith Cc: Morten Rasmussen Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: keescook@chromium.org Cc: kernel-hardening@lists.openwall.com Cc: kernel-team@android.com Link: https://lkml.kernel.org/r/20190321003426.160260-5-joel@joelfernandes.org Signed-off-by: Ingo Molnar commit 03f4b48edae7d936c5bf23488c1ce3fbe7fc2733 Author: Joel Fernandes (Google) Date: Wed Mar 20 20:34:25 2019 -0400 rcuwait: Annotate task_struct with __rcu This suppresses sparse error generated due to the recently added rcu_assign_pointer sparse check. percpu-rwsem.c:162:9: sparse: error: incompatible types in comparison expression exit.c:316:16: sparse: error: incompatible types in comparison expression Signed-off-by: Joel Fernandes (Google) Signed-off-by: Peter Zijlstra (Intel) [ From an RCU perspective. ] Reviewed-by: Paul E. McKenney Cc: Josh Triplett Cc: Lai Jiangshan Cc: Linus Torvalds Cc: Luc Van Oostenryck Cc: Mathieu Desnoyers Cc: Mike Galbraith Cc: Morten Rasmussen Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: keescook@chromium.org Cc: kernel-hardening@lists.openwall.com Cc: kernel-team@android.com Link: https://lkml.kernel.org/r/20190321003426.160260-4-joel@joelfernandes.org Signed-off-by: Ingo Molnar commit 994aeb7a93e43d28f6074195ccb03a384342e1bf Author: Joel Fernandes (Google) Date: Wed Mar 20 20:34:24 2019 -0400 sched_domain: Annotate RCU pointers properly The scheduler uses RCU API in various places to access sched_domain pointers. These cause sparse errors as below. Many new errors show up because of an annotation check I added to rcu_assign_pointer(). Let us annotate the pointers correctly which also will help sparse catch any potential future bugs. This fixes the following sparse errors: rt.c:1681:9: error: incompatible types in comparison expression deadline.c:1904:9: error: incompatible types in comparison expression core.c:519:9: error: incompatible types in comparison expression core.c:1634:17: error: incompatible types in comparison expression fair.c:6193:14: error: incompatible types in comparison expression fair.c:9883:22: error: incompatible types in comparison expression fair.c:9897:9: error: incompatible types in comparison expression sched.h:1287:9: error: incompatible types in comparison expression topology.c:612:9: error: incompatible types in comparison expression topology.c:615:9: error: incompatible types in comparison expression sched.h:1300:9: error: incompatible types in comparison expression topology.c:618:9: error: incompatible types in comparison expression sched.h:1287:9: error: incompatible types in comparison expression topology.c:621:9: error: incompatible types in comparison expression sched.h:1300:9: error: incompatible types in comparison expression topology.c:624:9: error: incompatible types in comparison expression topology.c:671:9: error: incompatible types in comparison expression stats.c:45:17: error: incompatible types in comparison expression fair.c:5998:15: error: incompatible types in comparison expression fair.c:5989:15: error: incompatible types in comparison expression fair.c:5998:15: error: incompatible types in comparison expression fair.c:5989:15: error: incompatible types in comparison expression fair.c:6120:19: error: incompatible types in comparison expression fair.c:6506:14: error: incompatible types in comparison expression fair.c:6515:14: error: incompatible types in comparison expression fair.c:6623:9: error: incompatible types in comparison expression fair.c:5970:17: error: incompatible types in comparison expression fair.c:8642:21: error: incompatible types in comparison expression fair.c:9253:9: error: incompatible types in comparison expression fair.c:9331:9: error: incompatible types in comparison expression fair.c:9519:15: error: incompatible types in comparison expression fair.c:9533:14: error: incompatible types in comparison expression fair.c:9542:14: error: incompatible types in comparison expression fair.c:9567:14: error: incompatible types in comparison expression fair.c:9597:14: error: incompatible types in comparison expression fair.c:9421:16: error: incompatible types in comparison expression fair.c:9421:16: error: incompatible types in comparison expression Signed-off-by: Joel Fernandes (Google) Signed-off-by: Peter Zijlstra (Intel) [ From an RCU perspective. ] Reviewed-by: Paul E. McKenney Cc: Josh Triplett Cc: Lai Jiangshan Cc: Linus Torvalds Cc: Luc Van Oostenryck Cc: Mathieu Desnoyers Cc: Mike Galbraith Cc: Morten Rasmussen Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: keescook@chromium.org Cc: kernel-hardening@lists.openwall.com Cc: kernel-team@android.com Link: https://lkml.kernel.org/r/20190321003426.160260-3-joel@joelfernandes.org Signed-off-by: Ingo Molnar commit b10abd0a8859493a93c6b8020f2be2587557749d Author: Joel Fernandes (Google) Date: Wed Mar 20 20:34:23 2019 -0400 sched/cpufreq: Annotate cpufreq_update_util_data pointer with __rcu Recently I added an RCU annotation check to rcu_assign_pointer(). All pointers assigned to RCU protected data are to be annotated with __rcu inorder to be able to use rcu_assign_pointer() similar to checks in other RCU APIs. This resulted in a sparse error: kernel//sched/cpufreq.c:41:9: sparse: error: incompatible types in comparison expression (different address spaces) Fix this by annotating cpufreq_update_util_data pointer with __rcu. This will also help sparse catch any future RCU misuage bugs. Signed-off-by: Joel Fernandes (Google) [ From an RCU perspective. ] Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Paul E. McKenney Cc: Josh Triplett Cc: Lai Jiangshan Cc: Linus Torvalds Cc: Luc Van Oostenryck Cc: Mathieu Desnoyers Cc: Mike Galbraith Cc: Morten Rasmussen Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Cc: keescook@chromium.org Cc: kernel-hardening@lists.openwall.com Cc: kernel-team@android.com Link: https://lkml.kernel.org/r/20190321003426.160260-2-joel@joelfernandes.org Signed-off-by: Ingo Molnar commit 8c5dc8d9f19c7992b5ed557b865127a80149041b Author: Alexander Shiyan Date: Thu Jan 17 16:33:35 2019 +0300 video: backlight: Remove useless BACKLIGHT_LCD_SUPPORT kernel symbol We have two *_CLASS_DEVICE kernel config options (LCD_CLASS_DEVICE and BACKLIGHT_LCD_DEVICE) that do the same job. The patch removes useless BACKLIGHT_LCD_SUPPORT option and converts LCD_CLASS_DEVICE into a menu. Signed-off-by: Alexander Shiyan Acked-by: Bartlomiej Zolnierkiewicz Acked-by: Daniel Thompson Signed-off-by: Lee Jones commit 4b81dad109ad7d7b288804fcdc6475b48f242210 Author: Christina Quast Date: Tue Apr 2 14:16:48 2019 +0200 ALSA: doc: my_chip has no element ioport chip->ioport is dereferenced in two places, but the struct is defined as follows: struct mychip { struct snd_card *card; struct pci_dev *pci; unsigned long port; int irq; }; Signed-off-by: Christina Quast Signed-off-by: Takashi Iwai commit 640cde65b48ae6c773f00cbbdece7e67945b3f34 Author: Tvrtko Ursulin Date: Wed Apr 3 07:44:07 2019 +0100 drm/i915: Fix uninitialized mask in intel_device_info_subplatform_init Mask need to be initialized to zero since device id checks may not match. Signed-off-by: Tvrtko Ursulin Reported-by: Dan Carpenter Fixes: 805446c8347c ("drm/i915: Introduce concept of a sub-platform") Cc: Tvrtko Ursulin Cc: Chris Wilson Cc: Jani Nikula Cc: Lucas De Marchi Cc: Jose Souza Cc: Ville Syrjälä Cc: Paulo Zanoni Cc: Jani Nikula Cc: Joonas Lahtinen Cc: Rodrigo Vivi Cc: Dan Carpenter Reviewed-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190403064407.25646-1-tvrtko.ursulin@linux.intel.com commit a1247d06d01045d7ab2882a9c074fbf21137c690 Author: Peter Zijlstra Date: Tue Mar 19 13:18:56 2019 +0100 locking/static_key: Fix false positive warnings on concurrent dec/inc Even though the atomic_dec_and_mutex_lock() in __static_key_slow_dec_cpuslocked() can never see a negative value in key->enabled the subsequent sanity check is re-reading key->enabled, which may have been set to -1 in the meantime by static_key_slow_inc_cpuslocked(). CPU A CPU B __static_key_slow_dec_cpuslocked(): static_key_slow_inc_cpuslocked(): # enabled = 1 atomic_dec_and_mutex_lock() # enabled = 0 atomic_read() == 0 atomic_set(-1) # enabled = -1 val = atomic_read() # Oops - val == -1! The test case is TCP's clean_acked_data_enable() / clean_acked_data_disable() as tickled by KTLS (net/ktls). Suggested-by: Jakub Kicinski Reported-by: Jakub Kicinski Tested-by: Jakub Kicinski Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Linus Torvalds Cc: Paul E. McKenney Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Will Deacon Cc: ard.biesheuvel@linaro.org Cc: oss-drivers@netronome.com Cc: pbonzini@redhat.com Signed-off-by: Ingo Molnar commit 87fd3ce28b4694397692cecba233fe4e12298413 Author: Andrey Smirnov Date: Tue Mar 26 23:38:41 2019 -0700 ARM: dts: imx6qdl: Specify viewport count for PCIE block i.MX6 comes with 4 viewports, so configure PCIE node accordingly so that the driver won't assume we only have 2. Signed-off-by: Andrey Smirnov Cc: Richard Zhu Cc: Chris Healy Cc: Lucas Stach Cc: Fabio Estevam Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Reviewed-by: Lucas Stach Signed-off-by: Shawn Guo commit 1279e41d535e28cc3b56fa4a09e71a709641cae6 Author: Shaokun Zhang Date: Wed Apr 3 14:54:24 2019 +0800 perf/headers: Fix stale comment for struct perf_addr_filter The @inode field has been removed after: 9511bce9fe8e ("perf/core: Fix bad use of igrab()") Update the description. Signed-off-by: Shaokun Zhang Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Song Liu Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Link: https://lkml.kernel.org/r/1554274464-5739-1-git-send-email-zhangshaokun@hisilicon.com Signed-off-by: Ingo Molnar commit a8ab3547c7b4db9fb58fa3cbf136f3c94948effd Author: Andrey Smirnov Date: Tue Mar 26 23:38:40 2019 -0700 ARM: dts: imx7d: Specify viewport count for PCIE block i.MX7D comes with 4 viewports, so configure PCIE node accordingly so that the driver won't assume we only have 2. Signed-off-by: Andrey Smirnov Cc: Richard Zhu Cc: Chris Healy Cc: Lucas Stach Cc: Fabio Estevam Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Reviewed-by: Lucas Stach Signed-off-by: Shawn Guo commit 5f068190cc102f2e7980622ee7da5c0b2cd8c849 Author: Geert Uytterhoeven Date: Mon Apr 1 14:01:50 2019 +0200 ARM: multi_v7_defconfig: Enable support for CFI NOR FLASH Enable the config options needed to access the CFI NOR FLASH on the APE6EVM board. Signed-off-by: Geert Uytterhoeven Reviewed-by: Niklas Söderlund Signed-off-by: Simon Horman commit c8bb03f65cc04612c6684829cf1bad39e35973b1 Author: Geert Uytterhoeven Date: Mon Apr 1 14:01:49 2019 +0200 ARM: shmobile: defconfig: Enable support for CFI NOR FLASH Enable the config options needed to access the CFI NOR FLASH on the APE6EVM board. Signed-off-by: Geert Uytterhoeven Reviewed-by: Niklas Söderlund Signed-off-by: Simon Horman commit a7586ad99e4727bcd92df374b88930400635c420 Author: Marek Vasut Date: Sat Mar 30 08:08:11 2019 +0100 ARM: dts: alt: Enable USB support Add nodes enabling internal PCI controllers to which the internal USB controllers are connected, add USB PHY node and pinmux nodes. Signed-off-by: Marek Vasut Signed-off-by: Simon Horman commit 6e3f17ee73f7e3c2ef0e2c8fd8624b2ece8ef2c9 Author: Noralf Trønnes Date: Mon Apr 1 16:13:58 2019 +0200 drm/fb-helper: generic: Call drm_client_add() after setup is done Hotplug can happen while drm_fbdev_generic_setup() is running so move drm_client_add() call after setup is done to avoid drm_fbdev_client_hotplug() running in two threads at the same time. Fixes: 9060d7f49376 ("drm/fb-helper: Finish the generic fbdev emulation") Cc: stable@vger.kernel.org Reported-by: Daniel Vetter Signed-off-by: Noralf Trønnes Reviewed-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190401141358.25309-1-noralf@tronnes.org commit 44b8ef17c435ecc1a2a505e39e8556f26c0da4ef Author: Greg Kroah-Hartman Date: Tue Apr 2 12:32:03 2019 +0200 staging: media: tegra-vde: add proper SPDX identifiers on file that did not have it. There was a single file for the tegra-vde driver that did not have SPDX identifiers on it, so fix that up. At the same time, remove the "free form" text that specified the license of the file, as that is impossible for any tool to properly parse. Cc: Dmitry Osipenko Cc: Mauro Carvalho Chehab Cc: Jonathan Hunter Cc: linux-media@vger.kernel.org Cc: linux-tegra@vger.kernel.org Acked-by: Thierry Reding Signed-off-by: Greg Kroah-Hartman commit ffe00b0a0e655d7140ea855c8d1bf4c84154f9d0 Author: Greg Kroah-Hartman Date: Tue Apr 2 12:32:02 2019 +0200 staging: media: imx: add proper SPDX identifiers on files that did not have them. There were a few files for the imx media drivers that did not have SPDX identifiers on them, so fix that up. At the same time, remove the "free form" text that specified the license of the file, as that is impossible for any tool to properly parse. Cc: Philipp Zabel Cc: Mauro Carvalho Chehab Cc: Shawn Guo Cc: Sascha Hauer Cc: Fabio Estevam Cc: NXP Linux Team Cc: linux-media@vger.kernel.org Acked-by: Steve Longerbeam Signed-off-by: Greg Kroah-Hartman commit 26855d5ace5e86bffb4dbed3f0c1deabd26962c4 Author: Greg Kroah-Hartman Date: Tue Apr 2 12:32:01 2019 +0200 staging: media: soc_camera: add proper SPDX identifiers on files that did not have them. There were a few files for the soc_camera drivers that did not have SPDX identifiers on them, so fix that up. At the same time, remove the "free form" text that specified the license of the file, as that is impossible for any tool to properly parse. Cc: Mauro Carvalho Chehab Cc: Shawn Guo Cc: Sascha Hauer Cc: Fabio Estevam Cc: NXP Linux Team Cc: Sakari Ailus Cc: Hans Verkuil Cc: linux-media@vger.kernel.org Signed-off-by: Greg Kroah-Hartman commit b20deecfd1d10e184ef70e2f23c8786683eab553 Author: Greg Kroah-Hartman Date: Tue Apr 2 12:32:00 2019 +0200 staging: media: zoran: add proper SPDX identifiers on files that did not have them. There were a few files for the zoran driver that did not have SPDX identifiers on them, so fix that up. At the same time, remove the "free form" text that specified the license of the file, as that is impossible for any tool to properly parse. Cc: Mauro Carvalho Chehab Cc: Hans Verkuil Cc: linux-media@vger.kernel.org Cc: mjpeg-users@lists.sourceforge.net Signed-off-by: Greg Kroah-Hartman commit b36bcbe511f820f8dcd43a2bb30fd9fba128e912 Author: Greg Kroah-Hartman Date: Tue Apr 2 12:31:59 2019 +0200 staging: rtl8192e: delete license file. There is no need for yet-another-copy of the gpl to be in the kernel source tree, especially for just a single driver. This got added as part of the import of the driver from when it was a stand-along chunk of code. Signed-off-by: Greg Kroah-Hartman commit 18056f34c3b755f027a0923b0bb9d50a2e339caa Author: Greg Kroah-Hartman Date: Tue Apr 2 12:31:58 2019 +0200 staging: rtl8192e: add proper SPDX identifiers on files that did not have them. There were a few files for the rtl8192e driver that did not have SPDX identifiers on them, so fix that up. At the same time, remove the "free form" text that specified the license of the file, as that is impossible for any tool to properly parse. Signed-off-by: Greg Kroah-Hartman commit 53b6f8bc53f7e80d3dbdbc78341feac157310fe4 Author: Greg Kroah-Hartman Date: Tue Apr 2 12:31:57 2019 +0200 staging: ralink-gdma: add proper SPDX identifiers on ralink-gdma file The ralink-gdma.c driver did not have a SPDX identifier on it, so fix that up. At the same time, remove the "free form" text that specified the license of the file, as that is impossible for any tool to properly parse. Cc: Lars-Peter Clausen Signed-off-by: Greg Kroah-Hartman commit 21baa36d92a0264347d916d8377e420f09bbb5b7 Author: Greg Kroah-Hartman Date: Tue Apr 2 12:31:56 2019 +0200 staging: rtl8192u: add proper SPDX identifiers on files that did not have them. There were a few files for the rtl8192u driver that did not have SPDX identifiers on them, so fix that up. At the same time, remove the "free form" text that specified the license of the file, as that is impossible for any tool to properly parse. Cc: John Whitmore Cc: Bhanusree Pola Cc: Sanjana Sanikommu Cc: Jia-Ju Bai Signed-off-by: Greg Kroah-Hartman commit 2506abea7f40ea9d7633828941f25d5c2dab4925 Author: Greg Kroah-Hartman Date: Tue Apr 2 12:31:55 2019 +0200 staging: iio: add proper SPDX identifiers to remaining driver files There are a number of IIO staging drivers that do not have a proper SPDX identifier on it. So fix that up and at the same time, remove the "free form" license text, as that's pretty much impossible for any tool to parse. Cc: Lars-Peter Clausen Cc: Michael Hennerich Cc: Jonathan Cameron Cc: Hartmut Knaack Cc: Peter Meerwald-Stadler Signed-off-by: Greg Kroah-Hartman commit 7beaea29453bcd59ac8034f0d8fe9656f4f6fa14 Author: Greg Kroah-Hartman Date: Tue Apr 2 12:31:54 2019 +0200 staging: comedi: quatec_daqp_cs: add proper SPDX identifier to driver By default all files without license information are under the default license of the kernel, which is GPL version 2. Because of this, add the GPL-2.0 identifier to the quatec_daqp_cs driver which did not have any license identifiers in it at all. Cc: Ian Abbott Cc: H Hartley Sweeten Cc: Brent Baccala Cc: David A. Schleef Signed-off-by: Greg Kroah-Hartman commit 3baad68a978059707d46ce0f43738b7b80d8f59e Author: Greg Kroah-Hartman Date: Tue Apr 2 12:31:53 2019 +0200 staging: vc04_services: remove remaining redundant license text Now that the SPDX tag is in all vc04_services files, that identifies the license in a specific and legally-defined manner. So the extra GPL and BSD text wording can be removed as it is no longer needed at all. This is done on a quest to remove the 700+ different ways that files in the kernel describe the license text. No copyright headers or other non-license-description text was removed. Cc: Eric Anholt Cc: Tuomas Tynkkynen Cc: Aymen Qader Cc: "Tobias Büttner" Cc: Dominic Braun Cc: Nicolas Saenz Julienne Cc: Alejandro Ismael Silva Cc: Phil Elwell Cc: Luis Chamberlain Cc: Arnd Bergmann Acked-by: Stefan Wahren Signed-off-by: Greg Kroah-Hartman commit 371ebdbe1b7463dc008feb3373ef2699a49402b3 Author: Greg Kroah-Hartman Date: Tue Apr 2 12:31:52 2019 +0200 staging: vc04_services: add proper SPDX identifier for dual licensed files There are a number of vc04_services files that are dual licensed under the GPL2 and BSD-3 licenses. They currently do not have a SPDX identifier on them, so fix that up and add the proper identifier so that tools can pick it up easily. Cc: Eric Anholt Cc: Tuomas Tynkkynen Cc: Aymen Qader Cc: "Tobias Büttner" Cc: Dominic Braun Cc: Nicolas Saenz Julienne Cc: Alejandro Ismael Silva Cc: Phil Elwell Cc: Luis Chamberlain Cc: Arnd Bergmann Acked-by: Stefan Wahren Signed-off-by: Greg Kroah-Hartman commit 25338628bbfca07076318459e3e92b540122fb88 Author: Greg Kroah-Hartman Date: Tue Apr 2 12:31:51 2019 +0200 staging: sm750fb: add proper SPDX identifier to driver By default all files without license information are under the default license of the kernel, which is GPL version 2. Because of this, add the GPL-2.0 identifier to the sm750fb driver which did not have any license identifiers in it at all. Cc: Sudip Mukherjee Cc: Teddy Wang Signed-off-by: Greg Kroah-Hartman commit 441bf7332d55c4d34afae9ffc3bbec621093f4d1 Author: Greg Kroah-Hartman Date: Tue Apr 2 12:31:50 2019 +0200 staging: m57621-mmc: delete driver from the tree. The license text in this driver is "interesting" and not really obvious that it is supposed to be able to be distributed in the kernel source tree. Yes, the MODULE_LICENSE() text says GPL, so it's probably ok, but to be safe, I am deleting this driver. I will be glad to add it back if the license is properly sorted out, but for now, this isn't worth the potential risk, I should have never taken it in the first place. Cc: Matthias Brugger Cc: NeilBrown Cc: George Hilliard Cc: "Christian Lütke-Stetzkamp" Cc: Nishad Kamdar Cc: Sergej Perschin Cc: John Crispin Signed-off-by: Greg Kroah-Hartman commit 97ed8eab2a0067bee21aa634c938454660e76a38 Author: Greg Kroah-Hartman Date: Tue Apr 2 12:31:49 2019 +0200 staging: add missing SPDX lines to Makefile files There are a few remaining drivers/staging/*/Makefile files that do not have SPDX identifiers in them. Add the correct GPL-2.0 identifier to them to make scanning tools happy. Reviewed-by: Mukesh Ojha Signed-off-by: Greg Kroah-Hartman commit 99b75a4e3275e85814db0fa2f49274bd3d5359d3 Author: Greg Kroah-Hartman Date: Tue Apr 2 12:31:48 2019 +0200 staging: add missing SPDX lines to Kconfig files There are a few remaining drivers/staging/*/Kconfig files that do not have SPDX identifiers in them. Add the correct GPL-2.0 identifier to them to make scanning tools happy. Signed-off-by: Greg Kroah-Hartman commit 1e06250983b132fe5d93e812e2ede05eb234e5a8 Author: Jonathan Neuschäfer Date: Tue Mar 26 19:22:58 2019 +0100 clk: imx5: Fix i.MX50 ESDHC clock registers The MUX bits for esdhc_{a,c,d}_sel are shifted by one bit within CSCMR1, because esdhc_b_sel (ESDHC3_CLK_SEL in the Reference Manual) is extended by one bit. Signed-off-by: Jonathan Neuschäfer Signed-off-by: Shawn Guo commit 639eb92531166a17bdb459437fbadf97459c5370 Author: Jonathan Neuschäfer Date: Tue Mar 26 19:22:57 2019 +0100 clk: imx5: Fix i.MX50 mainbus clock registers i.MX50 does not have a periph_apm clock. Instead, the main bus clock (a.k.a. periph_clk) comes directly from a MUX between pll1_sw, pll2_sw, pll3_sw, and lp_apm. Signed-off-by: Jonathan Neuschäfer Signed-off-by: Shawn Guo commit d7f9b83913f12b918906b8c1f4a4b90b5f4347d3 Author: Noralf Trønnes Date: Tue Mar 26 18:55:46 2019 +0100 drm/vc4: Call drm_dev_register() after all setup is done drm_dev_register() initializes internal clients like bootsplash as the last thing it does, so all setup needs to be done at this point. Fix by calling vc4_kms_load() before registering. Also check the error code returned from that function. Cc: Eric Anholt Signed-off-by: Noralf Trønnes Reviewed-by: Daniel Vetter Reviewed-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190326175546.18126-17-noralf@tronnes.org commit dc88057f36eee13cfc0c7a4a45f91e85a83e6ea0 Author: Hildo Guillardi Júnior Date: Tue Apr 2 17:48:53 2019 -0700 Staging: rtl8192e: Fix spaces around "+" Fix checkpatch error: CHECK: spaces preferred around that '+' (ctx:VxV) 99: FILE: drivers/staging/rtl8192e/rtllib_module.c:99: + memset(ieee, 0, sizeof(struct rtllib_device)+sizeof_priv); Signed-off-by: Hildo Guillardi Júnior Signed-off-by: Greg Kroah-Hartman commit 2d2d5b861abbdae2cdb9dfc299f89e292893a3f4 Author: Cristiano Borges Cardoso Date: Tue Apr 2 21:40:10 2019 -0400 staging: zoran: fix brace in the wrong line fix the following error from checkpatch: ERROR: that open brace { should be on the previous line Signed-off-by: Cristiano Borges Cardoso Signed-off-by: Greg Kroah-Hartman commit 9fc6eeb7cbe56d481528a65c5cfbc27fae2b2af4 Author: Mario Balan Date: Wed Apr 3 00:07:13 2019 -0300 staging: vchiq_arm: remove space after open '(' Fix checkpatch error "ERROR: space prohibited after that open parenthesis '('" in vchiq_arm.c:563. Signed-off-by: Mario Balan Acked-by: Stefan Wahren Signed-off-by: Greg Kroah-Hartman commit 4e37138ed3f9bf4d18f5b4dad7924c47fd56d97f Author: Nishka Dasgupta Date: Wed Apr 3 01:54:09 2019 +0530 staging: ralink-gdma: Remove print statement on failure of devm_kzalloc Remove print statement after failure of devm_kzalloc. Issue found with Coccinelle. Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit b5243475c1c7374d5d6761b41a0d332ba032581e Author: Nishka Dasgupta Date: Wed Apr 3 01:52:17 2019 +0530 staging: mt7621-dma: Remove print statement on devm_kzalloc error Remove print statement following error of devm_kzalloc. Issue found with Coccinelle. Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit dc2971f20a3c9662b227fd77d39dff398e1f322e Author: Nishka Dasgupta Date: Wed Apr 3 01:44:30 2019 +0530 staging: media: zoran: Remove print statement for failed kmalloc Remove print statement indicating failure of kmalloc. Issue found with Coccinelle. Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit 1fbd0bcc363ab34d9bd1b78c84a2d47d6121f0f1 Author: Nishka Dasgupta Date: Wed Apr 3 01:43:02 2019 +0530 staging: media: zoran: Remove print statement Remove print statement following unsuccessful kmalloc. Issue found with the following Coccinelle script: @@ identifier e1, print; char [] c; @@ e1 = kmalloc(...); if(!e1){ -print(...,c,...); ... when any } Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit d45c6c9bbfb3e543e5b0e6bc5af4ec9f51dbac23 Author: Madhumitha Prabakaran Date: Tue Apr 2 13:11:46 2019 -0500 Staging: media: davinci_vpfe: Drop macro and use an in-kernel function Drop macro CEIL and use an in-kernel function DIV_ROUND_UP. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 65a102f68005891d7f39354cfd79099908df6d51 Author: Noralf Trønnes Date: Tue Mar 26 18:55:32 2019 +0100 drm/fb-helper: dpms_legacy(): Only set on connectors in use For each enabled crtc the functions sets dpms on all registered connectors. Limit this to only doing it once and on the connectors actually in use. Signed-off-by: Noralf Trønnes Fixes: 023eb571a1d0 ("drm: correctly update connector DPMS status in drm_fb_helper") Reviewed-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190326175546.18126-3-noralf@tronnes.org commit 3de6f8529461706dcea78044dd4ccf1290a62e50 Author: Daniele Ceraolo Spurio Date: Tue Apr 2 13:10:32 2019 -0700 drm/i915: rename init/fini/prune uncore functions Add "_mmio" postfix to be consistent from the init/fini phase they're called from. Signed-off-by: Daniele Ceraolo Spurio Suggested-by: Chris Wilson Cc: Chris Wilson Cc: Paulo Zanoni Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190402201032.15841-2-daniele.ceraolospurio@intel.com commit 6cbe88303621b79ceba4cb00062312030f51d18e Author: Daniele Ceraolo Spurio Date: Tue Apr 2 13:10:31 2019 -0700 drm/i915: add intel_uncore_init_early Encapsulate the uncore early init and be consistent with the "_early" naming. Signed-off-by: Daniele Ceraolo Spurio Cc: Chris Wilson Cc: Paulo Zanoni Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190402201032.15841-1-daniele.ceraolospurio@intel.com commit b9ed8cff037b8586365d0eb15a3da969ea39ffc9 Author: Noralf Trønnes Date: Tue Mar 26 18:55:31 2019 +0100 drm/fb-helper: Remove unused gamma_size variable The gamma_size variable has not been used since commit 4abe35204af8 ("drm/kms/fb: use slow work mechanism for normal hotplug also.") While in the area move a comment back to its code block. They got separated by commit d50ba256b5f1 ("drm/kms: start adding command line interface using fb."). Signed-off-by: Noralf Trønnes Reviewed-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190326175546.18126-2-noralf@tronnes.org commit 64604d54d3115fee89598bfb6d8d2252f8a2d114 Author: Peter Zijlstra Date: Tue Mar 19 11:35:46 2019 +0100 sched/x86_64: Don't save flags on context switch Now that we have objtool validating AC=1 state for all x86_64 code, we can once again guarantee clean flags on schedule. Signed-off-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit 2f0f9e9ad7b3459c5c54ef2c03145a98e65dd158 Author: Peter Zijlstra Date: Mon Feb 25 11:10:55 2019 +0100 objtool: Add Direction Flag validation Having DF escape is BAD(tm). Linus; you suggested this one, but since DF really is only used from ASM and the failure case is fairly obvious, do we really need this? OTOH the patch is fairly small and simple, so let's just do this to demonstrate objtool's superior awesomeness. Suggested-by: Linus Torvalds Signed-off-by: Peter Zijlstra (Intel) Acked-by: Josh Poimboeuf Cc: Borislav Petkov Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit ea24213d8088f9da73e1b6aadf7abd2435b70397 Author: Peter Zijlstra Date: Mon Feb 25 12:50:09 2019 +0100 objtool: Add UACCESS validation It is important that UACCESS regions are as small as possible; furthermore the UACCESS state is not scheduled, so doing anything that might directly call into the scheduler will cause random code to be ran with UACCESS enabled. Teach objtool too track UACCESS state and warn about any CALL made while UACCESS is enabled. This very much includes the __fentry__() and __preempt_schedule() calls. Note that exceptions _do_ save/restore the UACCESS state, and therefore they can drive preemption. This also means that all exception handlers must have an otherwise redundant UACCESS disable instruction; therefore ignore this warning for !STT_FUNC code (exception handlers are not normal functions). Signed-off-by: Peter Zijlstra (Intel) Acked-by: Josh Poimboeuf Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit 54262aa2830151f89699fa8a6c5aa05f0992e672 Author: Peter Zijlstra Date: Wed Mar 6 12:58:15 2019 +0100 objtool: Fix sibling call detection It turned out that we failed to detect some sibling calls; specifically those without relocation records; like: $ ./objdump-func.sh defconfig-build/mm/kasan/generic.o __asan_loadN 0000 0000000000000840 <__asan_loadN>: 0000 840: 48 8b 0c 24 mov (%rsp),%rcx 0004 844: 31 d2 xor %edx,%edx 0006 846: e9 45 fe ff ff jmpq 690 So extend the cross-function jump to also consider those that are not between known (or newly detected) parent/child functions, as sibling-cals when they jump to the start of the function. The second part of that condition is to deal with random jumps to the middle of other function, as can be found in arch/x86/lib/copy_user_64.S for example. This then (with later patches applied) makes the above recognise the sibling call: mm/kasan/generic.o: warning: objtool: __asan_loadN()+0x6: call to check_memory_region() with UACCESS enabled Also make sure to set insn->call_dest for sibling calls so we can know who we're calling. This is useful information when printing validation warnings later. Signed-off-by: Peter Zijlstra (Intel) Acked-by: Josh Poimboeuf Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit 764eef4b109ae11e6c987de9c14fc7c482041be0 Author: Peter Zijlstra Date: Fri Mar 1 11:19:03 2019 +0100 objtool: Rewrite alt->skip_orig Really skip the original instruction flow, instead of letting it continue with NOPs. Since the alternative code flow already continues after the original instructions, only the alt-original is skipped. Signed-off-by: Peter Zijlstra (Intel) Acked-by: Josh Poimboeuf Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit 7697eee3ddd768a1fd78c1e687afaa6c5aa5072d Author: Peter Zijlstra Date: Fri Mar 1 11:15:49 2019 +0100 objtool: Add --backtrace support For when you want to know the path that reached your fail state: $ ./objtool check --no-fp --backtrace arch/x86/lib/usercopy_64.o arch/x86/lib/usercopy_64.o: warning: objtool: .altinstr_replacement+0x3: UACCESS disable without MEMOPs: __clear_user() arch/x86/lib/usercopy_64.o: warning: objtool: __clear_user()+0x3a: (alt) arch/x86/lib/usercopy_64.o: warning: objtool: __clear_user()+0x2e: (branch) arch/x86/lib/usercopy_64.o: warning: objtool: __clear_user()+0x18: (branch) arch/x86/lib/usercopy_64.o: warning: objtool: .altinstr_replacement+0xffffffffffffffff: (branch) arch/x86/lib/usercopy_64.o: warning: objtool: __clear_user()+0x5: (alt) arch/x86/lib/usercopy_64.o: warning: objtool: __clear_user()+0x0: <=== (func) 0000000000000000 <__clear_user>: 0: e8 00 00 00 00 callq 5 <__clear_user+0x5> 1: R_X86_64_PLT32 __fentry__-0x4 5: 90 nop 6: 90 nop 7: 90 nop 8: 48 89 f0 mov %rsi,%rax b: 48 c1 ee 03 shr $0x3,%rsi f: 83 e0 07 and $0x7,%eax 12: 48 89 f1 mov %rsi,%rcx 15: 48 85 c9 test %rcx,%rcx 18: 74 0f je 29 <__clear_user+0x29> 1a: 48 c7 07 00 00 00 00 movq $0x0,(%rdi) 21: 48 83 c7 08 add $0x8,%rdi 25: ff c9 dec %ecx 27: 75 f1 jne 1a <__clear_user+0x1a> 29: 48 89 c1 mov %rax,%rcx 2c: 85 c9 test %ecx,%ecx 2e: 74 0a je 3a <__clear_user+0x3a> 30: c6 07 00 movb $0x0,(%rdi) 33: 48 ff c7 inc %rdi 36: ff c9 dec %ecx 38: 75 f6 jne 30 <__clear_user+0x30> 3a: 90 nop 3b: 90 nop 3c: 90 nop 3d: 48 89 c8 mov %rcx,%rax 40: c3 retq Signed-off-by: Peter Zijlstra (Intel) Acked-by: Josh Poimboeuf Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit aaf5c623b915d64beba676b8c2e9708d1fda94d6 Author: Peter Zijlstra Date: Wed Feb 27 14:04:13 2019 +0100 objtool: Rewrite add_ignores() The whole add_ignores() thing was wildly weird; rewrite it according to 'modern' ways. Signed-off-by: Peter Zijlstra (Intel) Acked-by: Josh Poimboeuf Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit 09f30d83d33029faf6377a86f5ae80a658af9254 Author: Peter Zijlstra Date: Thu Feb 28 14:17:50 2019 +0100 objtool: Handle function aliases Function aliases result in different symbols for the same set of instructions; track a canonical symbol so there is a unique point of access. This again prepares the way for function attributes. And in particular the need for aliases comes from how KASAN uses them. Signed-off-by: Peter Zijlstra (Intel) Acked-by: Josh Poimboeuf Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit a4d09dde9093a04a9b48fb9e5ef3177bdfaff199 Author: Peter Zijlstra Date: Mon Feb 25 10:31:24 2019 +0100 objtool: Set insn->func for alternatives In preparation of function attributes, we need each instruction to have a valid link back to its function. Therefore make sure we set the function association for alternative instruction sequences; they are, after all, still part of the function. Signed-off-by: Peter Zijlstra (Intel) Acked-by: Josh Poimboeuf Cc: Borislav Petkov Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit 40ea97290b08be2e038b31cbb33097d1145e8169 Author: Peter Zijlstra Date: Thu Mar 7 19:54:25 2019 +0100 x86/uaccess, kcov: Disable stack protector New tooling noticed this mishap: kernel/kcov.o: warning: objtool: write_comp_data()+0x138: call to __stack_chk_fail() with UACCESS enabled kernel/kcov.o: warning: objtool: __sanitizer_cov_trace_pc()+0xd9: call to __stack_chk_fail() with UACCESS enabled All the other instrumentation (KASAN,UBSAN) also have stack protector disabled. Signed-off-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit 4a6c91fbdef846ec7250b82f2eeeb87ac5f18cf9 Author: Peter Zijlstra Date: Thu Mar 7 11:09:13 2019 +0100 x86/uaccess, ftrace: Fix ftrace_likely_update() vs. SMAP For CONFIG_TRACE_BRANCH_PROFILING=y the likely/unlikely things get overloaded and generate callouts to this code, and thus also when AC=1. Make it safe. Signed-off-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Steven Rostedt Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit d08965a27e84ca090b504844d50c24fc98587b11 Author: Peter Zijlstra Date: Wed Apr 3 09:40:16 2019 +0200 x86/uaccess, ubsan: Fix UBSAN vs. SMAP UBSAN can insert extra code in random locations; including AC=1 sections. Typically this code is not safe and needs wrapping. So far, only __ubsan_handle_type_mismatch* have been observed in AC=1 sections and therefore only those are annotated. Signed-off-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: Dmitry Vyukov Cc: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit 57b78a62e7f23c4686fe54091cdc3d12e60d6513 Author: Peter Zijlstra Date: Wed Apr 3 09:39:50 2019 +0200 x86/uaccess, kasan: Fix KASAN vs SMAP KASAN inserts extra code for every LOAD/STORE emitted by te compiler. Much of this code is simple and safe to run with AC=1, however the kasan_report() function, called on error, is most certainly not safe to call with AC=1. Therefore wrap kasan_report() in user_access_{save,restore}; which for x86 SMAP, saves/restores EFLAGS and clears AC before calling the real function. Also ensure all the functions are without __fentry__ hook. The function tracer is also not safe. Signed-off-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: Dmitry Vyukov Cc: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit a936af8ea3580855adcc80daa8e01c0196afeb15 Author: Peter Zijlstra Date: Thu Mar 7 14:44:44 2019 +0100 x86/smap: Ditch __stringify() Linus noticed all users of __ASM_STAC/__ASM_CLAC are with __stringify(). Just make them a string. Suggested-by: Linus Torvalds Signed-off-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: Josh Poimboeuf Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit e74deb11931ff682b59d5b9d387f7115f689698e Author: Peter Zijlstra Date: Wed Apr 3 09:39:48 2019 +0200 x86/uaccess: Introduce user_access_{save,restore}() Introduce common helpers for when we need to safely suspend a uaccess section; for instance to generate a {KA,UB}SAN report. Signed-off-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit 80acbaee26b5a6842ec64fb7efb2d7af68921060 Author: Geert Uytterhoeven Date: Mon Apr 1 13:56:25 2019 +0200 ARM: shmobile: defconfig: Refresh for v5.1-rc1 Update the defconfig for Renesas ARM boards: - Move CMA-related config options (moved in commit ddb26d8e1e97af23 ("dma-mapping: move CONFIG_DMA_CMA to kernel/dma/Kconfig"), - Drop CONFIG_DRM_RCAR_LVDS=y (auto-enabled since commit 02f2b30032c12b1b ("drm: rcar-du: lvds: Add API to enable/disable clock output")), - Drop CONFIG_SND_SIMPLE_SCU_CARD=y (removed in commit c8ed6aca6b824018 ("ASoC: simple-scu-card: remove simple-scu-card")). Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman commit c78d160d0520e0bc040076c83f6d30ac28d83f04 Author: Anson Huang Date: Thu Mar 21 02:27:06 2019 +0000 arm64: dts: imx8qxp: add system controller watchdog support Add i.MX8QXP system controller watchdog support. Signed-off-by: Anson Huang Signed-off-by: Shawn Guo commit 6455959819bf2469190ae9f6b4ccebaa9827e884 Author: Peter Zijlstra Date: Tue Feb 19 14:38:37 2019 +0100 ia64/tlb: Eradicate tlb_migrate_finish() callback Only ia64-sn2 uses this as an optimization, and there it is of questionable correctness due to the mm_users==1 test. Remove it entirely. No change in behavior intended. Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit 0a8caf211bcf52cbb59e100ead4908fe88d2a510 Author: Peter Zijlstra Date: Thu Sep 20 10:55:10 2018 +0200 asm-generic/tlb: Remove tlb_table_flush() There are no external users of this API (nor should there be); remove it. Signed-off-by: Peter Zijlstra (Intel) Acked-by: Will Deacon Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit fa0aafb8acb684e68231ff0a547ed249f8dc31a5 Author: Peter Zijlstra Date: Thu Sep 20 10:54:04 2018 +0200 asm-generic/tlb: Remove tlb_flush_mmu_free() As the comment notes; it is a potentially dangerous operation. Just use tlb_flush_mmu(), that will skip the (double) TLB invalidate if it really isn't needed anyway. No change in behavior intended. Signed-off-by: Peter Zijlstra (Intel) Acked-by: Will Deacon Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit b3fa8ed4e48802e6ba0aa5f3283313a27dcbf46f Author: Peter Zijlstra Date: Thu Sep 20 10:51:01 2018 +0200 asm-generic/tlb: Remove CONFIG_HAVE_GENERIC_MMU_GATHER Since all architectures are now using it, it is redundant. Signed-off-by: Peter Zijlstra (Intel) Acked-by: Will Deacon Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit 1808d65b55e4489770dd4f76fb0dff5b81eb9b11 Author: Peter Zijlstra Date: Thu Sep 20 10:50:11 2018 +0200 asm-generic/tlb: Remove arch_tlb*_mmu() Now that all architectures are converted to the generic code, remove the arch hooks. No change in behavior intended. Signed-off-by: Peter Zijlstra (Intel) Acked-by: Will Deacon Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit 9de7d833e3708213bf99d75c37483e0f773f5e16 Author: Martin Schwidefsky Date: Tue Sep 18 14:51:51 2018 +0200 s390/tlb: Convert to generic mmu_gather No change in behavior intended. Signed-off-by: Martin Schwidefsky Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: aneesh.kumar@linux.vnet.ibm.com Cc: heiko.carstens@de.ibm.com Cc: linux@armlinux.org.uk Cc: npiggin@gmail.com Cc: will.deacon@arm.com Link: http://lkml.kernel.org/r/20180918125151.31744-3-schwidefsky@de.ibm.com Signed-off-by: Ingo Molnar commit 952a31c9e6fa963eabf3692f31a769e59f4c8303 Author: Martin Schwidefsky Date: Tue Sep 18 14:51:50 2018 +0200 asm-generic/tlb: Introduce CONFIG_HAVE_MMU_GATHER_NO_GATHER=y Add the Kconfig option HAVE_MMU_GATHER_NO_GATHER to the generic mmu_gather code. If the option is set the mmu_gather will not track individual pages for delayed page free anymore. A platform that enables the option needs to provide its own implementation of the __tlb_remove_page_size() function to free pages. No change in behavior intended. Signed-off-by: Martin Schwidefsky Signed-off-by: Peter Zijlstra (Intel) Acked-by: Will Deacon Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: aneesh.kumar@linux.vnet.ibm.com Cc: heiko.carstens@de.ibm.com Cc: linux@armlinux.org.uk Cc: npiggin@gmail.com Link: http://lkml.kernel.org/r/20180918125151.31744-2-schwidefsky@de.ibm.com Signed-off-by: Ingo Molnar commit 6137fed0823247e32306bde2b48cac627c24f894 Author: Peter Zijlstra Date: Tue Sep 4 17:04:07 2018 +0200 arch/tlb: Clean up simple architectures For the architectures that do not implement their own tlb_flush() but do already use the generic mmu_gather, there are two options: 1) the platform has an efficient flush_tlb_range() and asm-generic/tlb.h doesn't need any overrides at all. 2) the platform lacks an efficient flush_tlb_range() and we select MMU_GATHER_NO_RANGE to minimize full invalidates. Convert all 'simple' architectures to one of these two forms. alpha: has no range invalidate -> 2 arc: already used flush_tlb_range() -> 1 c6x: has no range invalidate -> 2 hexagon: has an efficient flush_tlb_range() -> 1 (flush_tlb_mm() is in fact a full range invalidate, so no need to shoot down everything) m68k: has inefficient flush_tlb_range() -> 2 microblaze: has no flush_tlb_range() -> 2 mips: has efficient flush_tlb_range() -> 1 (even though it currently seems to use flush_tlb_mm()) nds32: already uses flush_tlb_range() -> 1 nios2: has inefficient flush_tlb_range() -> 2 (no limit on range iteration) openrisc: has inefficient flush_tlb_range() -> 2 (no limit on range iteration) parisc: already uses flush_tlb_range() -> 1 sparc32: already uses flush_tlb_range() -> 1 unicore32: has inefficient flush_tlb_range() -> 2 (no limit on range iteration) xtensa: has efficient flush_tlb_range() -> 1 Note this also fixes a bug in the existing code for a number platforms. Those platforms that did: tlb_end_vma() -> if (!full_mm) flush_tlb_*() tlb_flush -> if (full_mm) flush_tlb_mm() missed the case of shift_arg_pages(), which doesn't have @fullmm set, nor calls into tlb_*vma(), but still frees page-tables and thus needs an invalidate. The new code handles this by detecting a non-empty range, and either issuing the matching range invalidate or a full invalidate, depending on the capabilities. No change in behavior intended. Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Andy Lutomirski Cc: Aneesh Kumar K.V Cc: Borislav Petkov Cc: Dave Hansen Cc: David S. Miller Cc: Greentime Hu Cc: Guan Xuetao Cc: H. Peter Anvin Cc: Helge Deller Cc: Jonas Bonn Cc: Ley Foon Tan Cc: Linus Torvalds Cc: Mark Salter Cc: Max Filippov Cc: Michal Simek Cc: Nick Piggin Cc: Paul Burton Cc: Peter Zijlstra Cc: Richard Henderson Cc: Richard Kuo Cc: Rik van Riel Cc: Thomas Gleixner Cc: Vineet Gupta Cc: Will Deacon Signed-off-by: Ingo Molnar commit 7bb8709d6ad3ceeb5010a98b0d7eb11db8836da1 Author: Peter Zijlstra Date: Tue Sep 4 17:54:03 2018 +0200 um/tlb: Convert to generic mmu_gather Generic mmu_gather provides the simple flush_tlb_range() based range tracking mmu_gather UM needs. No change in behavior intended. Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Andy Lutomirski Cc: Aneesh Kumar K.V Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Nick Piggin Cc: Peter Zijlstra Cc: Richard Weinberger Cc: Rik van Riel Cc: Thomas Gleixner Cc: Will Deacon Signed-off-by: Ingo Molnar commit c5b27a889da92f4a969d61df77bd4f79ffce57c9 Author: Peter Zijlstra Date: Tue Sep 4 14:45:04 2018 +0200 sh/tlb: Convert SH to generic mmu_gather Generic mmu_gather provides everything SH needs (range tracking and cache coherency). No change in behavior intended. Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Andy Lutomirski Cc: Aneesh Kumar K.V Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Nick Piggin Cc: Peter Zijlstra Cc: Rich Felker Cc: Rik van Riel Cc: Thomas Gleixner Cc: Will Deacon Cc: Yoshinori Sato Signed-off-by: Ingo Molnar commit e154700774e83264386483aa50bbd5cec44c2d7a Author: Peter Zijlstra Date: Tue Sep 4 14:31:27 2018 +0200 ia64/tlb: Convert to generic mmu_gather Generic mmu_gather provides everything ia64 needs (range tracking). No change in behavior intended. Signed-off-by: Peter Zijlstra (Intel) Cc: Andrew Morton Cc: Andy Lutomirski Cc: Aneesh Kumar K.V Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Nick Piggin Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Cc: Tony Luck Cc: Will Deacon Signed-off-by: Ingo Molnar commit b78180b97dcf667350aac716cd3f32356eaf4984 Author: Peter Zijlstra Date: Tue Sep 4 14:09:30 2018 +0200 arm/tlb: Convert to generic mmu_gather Generic mmu_gather provides everything that ARM needs: - range tracking - RCU table free - VM_EXEC tracking - VIPT cache flushing The one notable curiosity is the 'funny' range tracking for classical ARM in __pte_free_tlb(). No change in behavior intended. Signed-off-by: Peter Zijlstra (Intel) Acked-by: Will Deacon Cc: Andrew Morton Cc: Andy Lutomirski Cc: Aneesh Kumar K.V Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Nick Piggin Cc: Peter Zijlstra Cc: Rik van Riel Cc: Russell King Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit 96bc9567cbe112e9320250f01b9c060c882e8619 Author: Peter Zijlstra Date: Wed Sep 19 13:24:41 2018 +0200 asm-generic/tlb, arch: Invert CONFIG_HAVE_RCU_TABLE_INVALIDATE Make issuing a TLB invalidate for page-table pages the normal case. The reason is twofold: - too many invalidates is safer than too few, - most architectures use the linux page-tables natively and would thus require this. Make it an opt-out, instead of an opt-in. No change in behavior intended. Signed-off-by: Peter Zijlstra (Intel) Acked-by: Will Deacon Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit 8b6dd0c47894e2c190560914318aa4181bc8c2f2 Author: Peter Zijlstra Date: Tue Sep 4 16:00:53 2018 +0200 asm-generic/tlb, ia64: Conditionally provide tlb_migrate_finish() Needed for ia64 -- alternatively we drop the entire hook. Signed-off-by: Peter Zijlstra (Intel) Acked-by: Will Deacon Cc: Andrew Morton Cc: Andy Lutomirski Cc: Aneesh Kumar K.V Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Nick Piggin Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit a30e32bd79e924f460b8b83408d88af34a402f6d Author: Peter Zijlstra Date: Thu Oct 11 16:51:51 2018 +0200 asm-generic/tlb: Provide generic tlb_flush() based on flush_tlb_mm() When an architecture does not have (an efficient) flush_tlb_range(), but instead always uses full TLB invalidates, the current generic tlb_flush() is sub-optimal, for it will generate extra flushes in order to keep the range small. But if we cannot do range flushes, that is a moot concern. Optionally provide this simplified default. No change in behavior intended. Signed-off-by: Peter Zijlstra (Intel) Acked-by: Will Deacon Cc: Andrew Morton Cc: Andy Lutomirski Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit 5f307be18b32aeff7bbad540c0d3897ecedbeb56 Author: Peter Zijlstra Date: Tue Sep 4 13:18:15 2018 +0200 asm-generic/tlb, arch: Provide generic tlb_flush() based on flush_tlb_range() Provide a generic tlb_flush() implementation that relies on flush_tlb_range(). This is a little awkward because flush_tlb_range() assumes a VMA for range invalidation, but we no longer have one. Audit of all flush_tlb_range() implementations shows only vma->vm_mm and vma->vm_flags are used, and of the latter only VM_EXEC (I-TLB invalidates) and VM_HUGETLB (large TLB invalidate) are used. Therefore, track VM_EXEC and VM_HUGETLB in two more bits, and create a 'fake' VMA. This allows architectures that have a reasonably efficient flush_tlb_range() to not require any additional effort. No change in behavior intended. Signed-off-by: Peter Zijlstra (Intel) Acked-by: Will Deacon Cc: Andrew Morton Cc: Andy Lutomirski Cc: Aneesh Kumar K.V Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Nick Piggin Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit e7fd28a706bfaf9cd65dccf18140187f7ad04839 Author: Peter Zijlstra Date: Mon Aug 27 13:00:17 2018 +0200 asm-generic/tlb, arch: Provide generic VIPT cache flush The one obvious thing SH and ARM want is a sensible default for tlb_start_vma(). (also: https://lkml.org/lkml/2004/1/15/6 ) Avoid all VIPT architectures providing their own tlb_start_vma() implementation and rely on architectures to provide a no-op flush_cache_range() when it is not relevant. This patch makes tlb_start_vma() default to flush_cache_range(), which should be right and sufficient. The only exceptions that I found where (oddly): - m68k-mmu - sparc64 - unicore Those architectures appear to have flush_cache_range(), but their current tlb_start_vma() does not call it. No change in behavior intended. Signed-off-by: Peter Zijlstra (Intel) Acked-by: Will Deacon Cc: Andrew Morton Cc: Andy Lutomirski Cc: Aneesh Kumar K.V Cc: Borislav Petkov Cc: Dave Hansen Cc: David Miller Cc: Guan Xuetao Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Nick Piggin Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit ed6a79352cad00e9a49d6e438be40e45107207bf Author: Peter Zijlstra Date: Fri Aug 31 14:46:08 2018 +0200 asm-generic/tlb, arch: Provide CONFIG_HAVE_MMU_GATHER_PAGE_SIZE Move the mmu_gather::page_size things into the generic code instead of PowerPC specific bits. No change in behavior intended. Signed-off-by: Peter Zijlstra (Intel) Acked-by: Will Deacon Cc: Andrew Morton Cc: Andy Lutomirski Cc: Aneesh Kumar K.V Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Nick Piggin Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit dea2434c23c102b3e7d320849ec1cfeb432edb60 Author: Peter Zijlstra Date: Tue Sep 4 10:43:14 2018 +0200 asm-generic/tlb: Provide a comment Write a comment explaining some of this.. Signed-off-by: Peter Zijlstra (Intel) Acked-by: Will Deacon Cc: Andrew Morton Cc: Andy Lutomirski Cc: Aneesh Kumar K.V Cc: Borislav Petkov Cc: Dave Hansen Cc: H. Peter Anvin Cc: Linus Torvalds Cc: Nick Piggin Cc: Peter Zijlstra Cc: Rik van Riel Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit ef8a913766cd5e341da68c011b4a0ff5e2c0f5d1 Author: Ihab Zhaika Date: Mon Mar 4 10:15:28 2019 +0200 iwlwifi: remove misconfigured pci ids from 22260 series Two of the PCI ID entries for the 22260 series were incorrectly using the subsystem vendor ID (which we ignore) as the PCI device ID. This is obviously wrong and can be simply removed since we already have the correct entries in the list. Signed-off-by: Ihab Zhaika Signed-off-by: Luca Coelho commit d14ae796f8498933fb4437efe83f7b3423b1793f Author: Sara Sharon Date: Thu Feb 7 13:17:37 2019 +0200 iwlwifi: mvm: support HE context cmd API change Support API change to pass all mbssid parameters to the firmware. Signed-off-by: Sara Sharon Signed-off-by: Luca Coelho commit c30aef01bae92f189dc6cf92ab7d9798135fe253 Author: Shaul Triebitz Date: Wed Feb 27 16:18:11 2019 +0200 iwlwifi: set 512 TX queue slots for AX210 devices AX210 devices support 256 BA (256 MPDUs in an AMPDU). The firmware requires that the number of TFDs will be minimum twice as big as the BA size (2 * 256 = 512). Signed-off-by: Shaul Triebitz Signed-off-by: Luca Coelho commit afc1e3b4fc8f979150e85fc7649444019aeffe18 Author: Avraham Stern Date: Wed Feb 27 11:51:11 2019 +0200 iwlwifi: mvm: use correct GP2 register address for 22000 family The device time register address has changed for 22000 devices. Add a util function for getting the GP2 time and use the correct register address depending on the device family. Signed-off-by: Avraham Stern Signed-off-by: Luca Coelho commit 56fe12d2837fbe5ddaebe8011538d25c48163d49 Author: Shahar S Matityahu Date: Tue Feb 26 17:59:17 2019 +0200 iwlwifi: dbg: fill radio registers data regardless of fifos data dumping The driver calculates memory regions dump size, allocate memory and fills the data. The driver fills the radio registers data only if the memory size of the fifos is greater then zero, so in case the user masked out the fifos from the dump, the driver will skip filling the radio register data. Solve this by checking filling radio registers data independently from fifos data. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit cf5d566322bed40850594fd0118626ab5d1f2f7b Author: Greg Kroah-Hartman Date: Tue Jan 22 16:21:20 2019 +0100 iwlwifi: pcie: no need to check return value of debugfs_create functions When calling debugfs functions, there is no need to ever check the return value. The function can work or not, but the code logic should never do something different based on this. Cc: Johannes Berg Cc: Emmanuel Grumbach Cc: Luca Coelho Cc: Intel Linux Wireless Cc: Kalle Valo Cc: linux-wireless@vger.kernel.org Signed-off-by: Greg Kroah-Hartman Signed-off-by: Luca Coelho commit c9af7528c3311a5c20dccf915ef1a8db623053f7 Author: Greg Kroah-Hartman Date: Tue Jan 22 16:21:23 2019 +0100 iwlwifi: mvm: no need to check return value of debugfs_create functions When calling debugfs functions, there is no need to ever check the return value. The function can work or not, but the code logic should never do something different based on this. Cc: Johannes Berg Cc: Emmanuel Grumbach Cc: Luca Coelho Cc: Intel Linux Wireless Cc: Kalle Valo Cc: linux-wireless@vger.kernel.org Signed-off-by: Greg Kroah-Hartman Signed-off-by: Luca Coelho commit 3f7fbc8cc11e2a305247a908bc67bb5f571fbf00 Author: Johannes Berg Date: Wed Feb 20 22:15:17 2019 +0100 iwlwifi: mvm: remove buggy and unnecessary hw_queue initialization After converting the driver to TXQs, it no longer has any reason to initialize vif->hw_queue/vif->cab_queue since it no longer sets the HW_QUEUE_CONTROL flag. Remove the code that initialized those, it was broken due to relying on an uninitialized stack value in used_hw_queues, as Colin reported. Reported-by: Colin Ian King Signed-off-by: Johannes Berg Signed-off-by: Luca Coelho commit 30eba3f9a454a7dbaf602e2aa4f5b3df18030be5 Author: Shahar S Matityahu Date: Tue Feb 19 15:34:09 2019 +0200 iwlwifi: dbg_ini: apply rx fifo offset after reading the region registers The region registers comes in abolute value so read the registers before applying the rx fifo offset. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit 33a403861572e7e10656fa89f6c0b9cd14ff2bd6 Author: Shahar S Matityahu Date: Sun Feb 17 17:21:33 2019 +0200 iwlwifi: dbg_ini: remove redundant type argument from iwl_dump_ini_mem Since iwl_dump_ini_mem receive struct iwl_fw_ini_region_cfg which holds the region type, there is no point to pass the type separately. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit 84294b5be15acb1c4eaf9264e33d93b1da3257cf Author: Shahar S Matityahu Date: Sun Feb 17 17:15:31 2019 +0200 iwlwifi: dbg_ini: remove redundant curly brackets from trigger collection flow remove redundant curly brackets from iwl_fw_ini_dump_trigger and iwl_fw_ini_get_trigger_len Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit 0bfefe2f41dd5bd60c7b695e450fc3a931875980 Author: Liad Kaufman Date: Wed Feb 20 05:05:00 2019 +0200 iwlwifi: mvm: fix pointer reference when setting HE QAM thres Pointer referencing when setting HE QAM thresholds (when nominal packet padding bit is on) caused kernel crash due to bad referencing. Fix that. Signed-off-by: Liad Kaufman Signed-off-by: Luca Coelho commit 4c704534c38fb1125b111fd4ffc8a36d79dd7339 Author: Shahar S Matityahu Date: Sun Feb 17 17:07:53 2019 +0200 iwlwifi: dbg_ini: add monitor header to smem monitor Add write pointer and cycle count registers to smem monitor header. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit d63916aeba5768a9aedcd3bfddf32ffff4dae076 Author: Shahar S Matityahu Date: Sun Feb 17 14:46:22 2019 +0200 iwlwifi: dbg_ini: fix the dram monitor header size Add sizeof(struct iwl_fw_ini_error_dump_range) to the header of the dram monitor. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit f0e1e1c20d5fc9ff6d94193100ab90d5945a6d08 Author: Shahar S Matityahu Date: Sun Feb 17 14:13:12 2019 +0200 iwlwifi: dbg_ini: change memory range base address to u64 AX210 devices will use u64 for the base address to the DRAM monitor buffer. To support this, change the structure for all device families so both address sizes fit. Also move range_data_size to the top of the struct to ease the parsing of the memory range. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit 192a7e1f731fd9a64216cce35287eb23360437f6 Author: Johannes Berg Date: Tue Feb 19 14:22:11 2019 +0100 iwlwifi: mvm: IBSS: use BE FIFO for multicast Back in commit 4d339989acd7 ("iwlwifi: mvm: support ibss in dqa mode") we changed queue selection for IBSS to be: if (ieee80211_is_probe_resp(fc) || ieee80211_is_auth(fc) || ieee80211_is_deauth(fc)) return IWL_MVM_DQA_AP_PROBE_RESP_QUEUE; if (info->hw_queue == info->control.vif->cab_queue) return info->hw_queue; return IWL_MVM_DQA_AP_PROBE_RESP_QUEUE; Clearly, the thought at the time must've been that mac80211 will select the hw_queue as the cab_queue, so that we'll return and use that, where we store the multicast queue for IBSS. This, however, isn't true because mac80211 doesn't implement powersave for IBSS and thus selects the normal IBSS interface AC queue (best effort). This therefore always used the probe response queue, which maps to the BE FIFO. In commit cfbc6c4c5b91 ("iwlwifi: mvm: support mac80211 TXQs model") we rethought this code, and as a consequence now started mapping the multicast traffic to the multicast hardware queue since we no longer relied on mac80211 selecting the queue, doing it ourselves instead. This queue is mapped to the MCAST FIFO. however, this isn't actually enabled/controlled by the firmware in IBSS mode because we don't implement powersave, and frames from this queue can never go out in this case. Therefore, we got queue hang reports such as https://bugzilla.kernel.org/show_bug.cgi?id=201707 Fix this by mapping the multicast queue to the BE FIFO in IBSS so that all the frames can go out. Fixes: cfbc6c4c5b91 ("iwlwifi: mvm: support mac80211 TXQs model") Signed-off-by: Johannes Berg Signed-off-by: Luca Coelho commit 60eeaf572f3ed00e1ac01bfa43a70369eb32e40d Author: Shahar S Matityahu Date: Sun Feb 17 14:08:50 2019 +0200 iwlwifi: dbg_ini: add registers addresses in fifo dump Add to the fifo dump the registers addresses. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit 186e6c871b92648453ef4b333c1fffdaacbb2035 Author: Shaul Triebitz Date: Sun Feb 17 10:42:12 2019 +0200 iwlwifi: trust calling function When initializing or overriding HE band capabilities, no need to check the band validity. Trust the calling function to use a valid band. Signed-off-by: Shaul Triebitz Signed-off-by: Luca Coelho commit 1cdb4d8f2a4b682a5cd9f0138098cddae55dddc3 Author: Shahar S Matityahu Date: Sun Feb 17 13:16:13 2019 +0200 iwlwifi: dbg_ini: add region id to the region dump Add the region id of the collected memory to the header of the memory region. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit 990ffe3e81962ff2428ca3d41621dfdd774c8d57 Author: Shahar S Matityahu Date: Sun Feb 17 12:16:53 2019 +0200 iwlwifi: dbg_ini: add version to dump header Add version to dump header to allow future changes of the dump struct, once the ini debug flow becomes operational, without breaking backwards compatibility. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit 9802162f98b4e587bd5dbb11c352c04e204bf9f0 Author: Shahar S Matityahu Date: Sun Feb 17 17:37:27 2019 +0200 iwlwifi: dbg_ini: add memory offset to the base address of a memory region Add the offset to the base address of a memory region to show the actual addresses being read. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit 4bdb2676d8fdd48fadbb59a945792c0e1811c67e Author: Shahar S Matityahu Date: Sun Feb 17 17:28:04 2019 +0200 iwlwifi: dbg_ini: fix iwl_dump_ini_dev_mem_iter memory base address The driver is using range->start_addr before assigning it a value. Set value into range->start_addr and then use it. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit bfa34c332964e90f6222b2ff665990484c22f6f2 Author: Shahar S Matityahu Date: Mon Feb 11 12:12:08 2019 +0200 iwlwifi: dbg_ini: enforce always on domain checking Enforce domain checking before sending host commands and collecting memory regions. Currently the driver supports always on domain only. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit 4b1831e4897437b3b8e812cfa09784ef5d687af9 Author: Shahar S Matityahu Date: Sun Feb 10 15:59:46 2019 +0200 iwlwifi: dbg_ini: support HW error trigger Differentiate between SW and HW error interrupts and support ini HW error trigger. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit 26fae7a41313506931c9be5f532c12d8d654f153 Author: Jernej Skrabec Date: Tue Apr 2 23:06:22 2019 +0200 clk: sunxi-ng: h6: Preset hdmi-cec clock parent H6 manual and BSP clock driver both states that hdmi-cec clock has two possible parents, osc32k and pll-periph0-2x with 36621 predivider. Because pll-periph0-2x is always 1.2 GHz, both parents give same hdmi-cec rate - 32768 Hz, which is exactly the rate needed for HDMI CEC controller to operate correctly. However, for some reason, HDMI CEC controller doesn't work if default parent (osc32k) is used. BSP HDMI driver also always use pll-periph0-2x as hdmi-cec clock parent. In order to solve the issue, preset hdmi-cec clock parent to pll-periph0-2x. Signed-off-by: Jernej Skrabec Signed-off-by: Maxime Ripard commit d18bf4229b1772e91c0c36772737c01cf9726720 Author: Valdis Kletnieks Date: Tue Mar 12 04:06:37 2019 -0400 perf/core: Make perf_swevent_init_cpu() static 'make W=1' causes GCC to complain: kernel/events/core.c:11877:6: warning: no previous prototype for 'perf_swevent_init_cpu' [-Wmissing-prototypes] It's not referenced anywhere else, make it static. Signed-off-by: Valdis Kletnieks Signed-off-by: Peter Zijlstra (Intel) Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Link: https://lkml.kernel.org/r/28974.1552377997@turing-police Signed-off-by: Ingo Molnar commit f64c3ab230682e8395a7fbd01f3eb5140c837d4e Author: Johan Hovold Date: Tue Apr 2 10:19:31 2019 +0200 USB: serial: pl2303: fix tranceiver suspend mode Add helper function to update register bits instead of overwriting the entire control register when updating the flow-control settings. This specifically avoids having the tranceiver suspend mode (bit 0) depend on the flow control setting. The tranceiver is currently configured at probe to be disabled during suspend, but this was overridden when disabling flow control or enabling xon/xoff. Fixes: 715f9527c1c1 ("USB: flow control fix for pl2303") Fixes: 7041d9c3f01b ("USB: serial: pl2303: add support for tx xon/xoff flow control") Reviewed-by: Greg Kroah-Hartman Signed-off-by: Johan Hovold commit 68270dab97107b5679080b596aa2f5a360f79873 Author: Johan Hovold Date: Tue Apr 2 10:19:30 2019 +0200 USB: serial: pl2303: fix non-supported xon/xoff Older pl2303 devices do not support automatic xon/xoff flow control, so add add a flag to prevent trying to enable it for legacy device types. Refactor the IXON test into a helper function to improve readability. Fixes: 7041d9c3f01b ("USB: serial: pl2303: add support for tx xon/xoff flow control") Reviewed-by: Greg Kroah-Hartman Signed-off-by: Johan Hovold commit 88e4718275c1bddca6f61f300688b4553dc8584b Author: Peter Zijlstra Date: Wed Apr 3 09:39:48 2019 +0200 x86/uaccess, signal: Fix AC=1 bloat Occasionally GCC is less agressive with inlining and the following is observed: arch/x86/kernel/signal.o: warning: objtool: restore_sigcontext()+0x3cc: call to force_valid_ss.isra.5() with UACCESS enabled arch/x86/kernel/signal.o: warning: objtool: do_signal()+0x384: call to frame_uc_flags.isra.0() with UACCESS enabled Cure this by moving this code out of the AC=1 region, since it really isn't needed for the user access. Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Andy Lutomirski Cc: Borislav Petkov Cc: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit b7f89bfe52cd523a229d6dd22639225b2e3681dc Author: Peter Zijlstra Date: Wed Apr 3 09:39:47 2019 +0200 x86/uaccess: Always inline user_access_begin() If GCC out-of-lines it, the STAC and CLAC are in different fuctions and objtool gets upset. Signed-off-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit 4fc0f0e9471ec573ab2d44e7f462d996d614536e Author: Peter Zijlstra Date: Wed Mar 6 19:09:08 2019 +0100 x86/uaccess, xen: Suppress SMAP warnings drivers/xen/privcmd.o: warning: objtool: privcmd_ioctl()+0x1414: call to hypercall_page() with UACCESS enabled Some Xen hypercalls allow parameter buffers in user land, so they need to set AC=1. Avoid the warning for those cases. Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Juergen Gross Cc: Borislav Petkov Cc: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: andrew.cooper3@citrix.com Signed-off-by: Ingo Molnar commit ff05ab2305aaeb21a3002ae95a17e176c198b71b Author: Peter Zijlstra Date: Mon Mar 18 14:33:07 2019 +0100 x86/nospec, objtool: Introduce ANNOTATE_IGNORE_ALTERNATIVE To facillitate other usage of ignoring alternatives; rename ANNOTATE_NOSPEC_IGNORE to ANNOTATE_IGNORE_ALTERNATIVE. Signed-off-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit b69656fa7ea2f75e47d7bd5b9430359fa46488af Author: Peter Zijlstra Date: Wed Apr 3 09:39:45 2019 +0200 x86/uaccess: Fix up the fixup New tooling got confused about this: arch/x86/lib/memcpy_64.o: warning: objtool: .fixup+0x7: return with UACCESS enabled While the code isn't wrong, it is tedious (if at all possible) to figure out what function a particular chunk of .fixup belongs to. This then confuses the objtool uaccess validation. Instead of returning directly from the .fixup, jump back into the right function. Signed-off-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit 3693ca81151eacd498675baae56abede577e8b31 Author: Peter Zijlstra Date: Fri Mar 1 15:24:33 2019 +0100 x86/uaccess: Move copy_user_handle_tail() into asm By writing the function in asm we avoid cross object code flow and objtool no longer gets confused about a 'stray' CLAC. Also; the asm version is actually _simpler_. Signed-off-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit 8f4faed01e3015955801c8ef066ec7fd7a8b3902 Author: Peter Zijlstra Date: Thu Feb 28 13:52:31 2019 +0100 i915, uaccess: Fix redundant CLAC New tooling noticed this: drivers/gpu/drm/i915/i915_gem_execbuffer.o: warning: objtool: .altinstr_replacement+0x3c: redundant UACCESS disable drivers/gpu/drm/i915/i915_gem_execbuffer.o: warning: objtool: .altinstr_replacement+0x66: redundant UACCESS disable You don't need user_access_end() if user_access_begin() fails. Signed-off-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: Chris Wilson Cc: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit 67a0514afdbb8b2fc70b771b8c77661a9cb9d3a9 Author: Peter Zijlstra Date: Mon Feb 25 12:56:35 2019 +0100 x86/ia32: Fix ia32_restore_sigcontext() AC leak Objtool spotted that we call native_load_gs_index() with AC set. Re-arrange the code to avoid that. Signed-off-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Signed-off-by: Ingo Molnar commit 37686b1353cfc30e127cef811959cdbcd0495d98 Author: Josh Poimboeuf Date: Thu Mar 7 11:48:02 2019 -0600 tracing: Improve "if" macro code generation With CONFIG_PROFILE_ALL_BRANCHES=y, the "if" macro converts the conditional to an array index. This can cause GCC to create horrible code. When there are nested ifs, the generated code uses register values to encode branching decisions. Make it easier for GCC to optimize by keeping the conditional as a conditional rather than converting it to an integer. This shrinks the generated code quite a bit, and also makes the code sane enough for objtool to understand. Reported-by: Peter Zijlstra Signed-off-by: Josh Poimboeuf Signed-off-by: Peter Zijlstra (Intel) Cc: Borislav Petkov Cc: Linus Torvalds Cc: Thomas Gleixner Cc: brgerst@gmail.com Cc: catalin.marinas@arm.com Cc: dvlasenk@redhat.com Cc: dvyukov@google.com Cc: hpa@zytor.com Cc: james.morse@arm.com Cc: julien.thierry@arm.com Cc: luto@amacapital.net Cc: luto@kernel.org Cc: rostedt@goodmis.org Cc: valentin.schneider@arm.com Cc: will.deacon@arm.com Link: https://lkml.kernel.org/r/20190307174802.46fmpysxyo35hh43@treble Signed-off-by: Ingo Molnar commit 6690e86be83ac75832e461c141055b5d601c0a6d Author: Peter Zijlstra Date: Thu Feb 14 10:30:52 2019 +0100 sched/x86: Save [ER]FLAGS on context switch Effectively reverts commit: 2c7577a75837 ("sched/x86_64: Don't save flags on context switch") Specifically because SMAP uses FLAGS.AC which invalidates the claim that the kernel has clean flags. In particular; while preemption from interrupt return is fine (the IRET frame on the exception stack contains FLAGS) it breaks any code that does synchonous scheduling, including preempt_enable(). This has become a significant issue ever since commit: 5b24a7a2aa20 ("Add 'unsafe' user access functions for batched accesses") provided for means of having 'normal' C code between STAC / CLAC, exposing the FLAGS.AC state. So far this hasn't led to trouble, however fix it before it comes apart. Reported-by: Julien Thierry Signed-off-by: Peter Zijlstra (Intel) Acked-by: Andy Lutomirski Cc: Borislav Petkov Cc: Josh Poimboeuf Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: stable@kernel.org Fixes: 5b24a7a2aa20 ("Add 'unsafe' user access functions for batched accesses") Signed-off-by: Ingo Molnar commit f80deefa41890f9484802d7b67f11daf28055150 Author: Peter Zijlstra Date: Thu Mar 14 13:25:02 2019 +0100 perf/x86: Add sanity checks to x86_schedule_events() By computing the 'committed' index earlier, we can use it to validate the cached constraint state. Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar commit 109717de57b95d6dd9582c18a74f154d69fea536 Author: Peter Zijlstra Date: Thu Mar 14 13:17:51 2019 +0100 perf/x86: Optimize x86_schedule_events() Now that cpuc->event_constraint[] is retained, we can avoid calling get_event_constraints() over and over again. Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar commit 2c9651c38d1789d179c8d50724d037152ba85e56 Author: Peter Zijlstra Date: Thu Mar 14 13:03:00 2019 +0100 perf/x86: Clear ->event_constraint[] on put The current code unconditionally clears cpuc->event_constraint[i] before calling get_event_constraints(.idx=i). The only site that cares is intel_get_event_constraints() where the c1 load will always be NULL. However, always calling get_event_constraints() on all events is wastefull, most times it will return the exact same result. Therefore retain the logic in intel_get_event_constraints() and change the generic code to only clear the constraint on put. Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Stephane Eranian Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar commit c090cb70c6152fc97ce91242789d7c322109f1a1 Author: Peter Zijlstra Date: Thu Mar 14 13:01:14 2019 +0100 perf/x86/intel: Optimize intel_get_excl_constraints() Avoid the POPCNT by noting we can decrement the weight for each cleared bit. Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Stephane Eranian Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar commit 1f6a1e2d7d7135280125418b25d35aebd6fa0952 Author: Peter Zijlstra Date: Thu Mar 14 12:58:52 2019 +0100 perf/x86: Remove PERF_X86_EVENT_COMMITTED The flag PERF_X86_EVENT_COMMITTED is used to find uncommitted events for which to call put_event_constraint() when scheduling fails. These are the newly added events to the list, and must form, per definition, the tail of cpuc->event_list[]. By computing the list index of the last successfull schedule, then iteration can start there and the flag is redundant. There are only 3 callers of x86_schedule_events(), notably: - x86_pmu_add() - x86_pmu_commit_txn() - validate_group() For x86_pmu_add(), cpuc->n_events isn't updated until after schedule_events() succeeds, therefore cpuc->n_events points to the desired index. For x86_pmu_commit_txn(), cpuc->n_events is updated, but we can trivially compute the desired value with cpuc->n_txn -- the number of events added in this transaction. For validate_group(), we can make the rule for x86_pmu_add() work by simply setting cpuc->n_events to 0 before calling schedule_events(). Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Stephane Eranian Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar commit 21d65555cd878c8d6ff2b2902e6c16b2ca73f33d Author: Peter Zijlstra Date: Thu Mar 14 09:57:57 2019 +0100 perf/x86: Simplify x86_pmu.get_constraints() interface There is a special case for validate_events() where we'll call x86_pmu.get_constraints(.idx=-1). It's purpose, up until recent, seems to be to avoid taking a previous constraint from cpuc->event_constraint[] in intel_get_event_constraints(). (I could not find any other get_event_constraints() implementation using @idx) However, since that cpuc is freshly allocated, that array will in fact be initialized with NULL pointers, achieving the very same effect. Therefore remove this exception. Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Stephane Eranian Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar commit 1a81542abfdae21716a1a32ea8472de7a271dde6 Author: Peter Zijlstra Date: Thu Mar 14 09:47:18 2019 +0100 perf/x86/intel: Simplify intel_tfa_commit_scheduling() validate_group() calls x86_schedule_events(.assign=NULL) and therefore will not call intel_tfa_commit_scheduling(). So there is no point in checking cpuc->is_fake, we'll never get there. Signed-off-by: Peter Zijlstra (Intel) Cc: Alexander Shishkin Cc: Arnaldo Carvalho de Melo Cc: Jiri Olsa Cc: Linus Torvalds Cc: Peter Zijlstra Cc: Stephane Eranian Cc: Thomas Gleixner Cc: Vince Weaver Signed-off-by: Ingo Molnar commit 0f9e47b3fd92c809a8c68719cd60ba863c4c48e0 Author: Mark Brown Date: Wed Apr 3 11:55:40 2019 +0700 ASoC: sprd: Fix modular build Reported-by: Stephen Rothwell Suggested-by: Baolin Wang Tested-by: Baolin Wang Signed-off-by: Mark Brown commit 52a30f3bb1b15c7d27233e9947370c1c14b5cbae Author: YueHaibing Date: Wed Apr 3 12:15:52 2019 +0800 ASoC: Mediatek: MT8183: Fix build error in mt8183_da7219_max98357_dev_probe When building CONFIG_SND_SOC_MT8183_DA7219_MAX98357A=m gcc warn this: sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c: In function mt8183_da7219_max98357_dev_probe: sound/soc/mediatek/mt8183/mt8183-da7219-max98357.c:413:13: error: struct snd_soc_dai_link has no member named platform; did you mean platforms? dai_link->platform = NULL; ^~~~~~~~ platforms use 'dai_link->platforms' instead of 'dai_link->platform'. Fixes: 11c0269017b2 ("ASoC: Mediatek: MT8183: Add machine driver with TS3A227") Signed-off-by: YueHaibing Signed-off-by: Mark Brown commit 8048d151eb4d74d5c533dbe10a846ea0b7495c6b Author: Martin Sperl Date: Sat Mar 30 10:13:53 2019 +0000 spi: bcm2835aux: add driver stats to debugfs To estimate efficiency add statistics on transfer types (polling and interrupt) used to debugfs. Signed-off-by: Martin Sperl Signed-off-by: Mark Brown commit fedd6940682afeddb22bfd855d8eaf527bcc473a Author: Geert Uytterhoeven Date: Tue Apr 2 16:40:23 2019 +0200 spi: sh-msiof: Add reset of registers before starting transfer In accordance with hardware specification Ver 1.0, reset register transmission / reception setting before transfer. Signed-off-by: Hiromitsu Yamasaki [geert: Use readl_poll_timeout_atomic()] Signed-off-by: Geert Uytterhoeven Reviewed-by: Wolfram Sang Signed-off-by: Mark Brown commit 9115b4d89b213dc73fd35844e0199b1763f751d6 Author: Geert Uytterhoeven Date: Tue Apr 2 16:40:22 2019 +0200 spi: sh-msiof: Use readl_poll_timeout_atomic() instead of open-coding Replace the open-coded loop in sh_msiof_modify_ctr_wait() by a call to the readl_poll_timeout_atomic() helper macro. Suggested-by: Wolfram Sang Signed-off-by: Geert Uytterhoeven Reviewed-by: Wolfram Sang Signed-off-by: Mark Brown commit 8863eca8c46affaa91ae35390b00358b925483eb Author: Clark Wang Date: Tue Apr 2 12:45:53 2019 +0000 spi: lpspi: add missing complete in abort func at dma mode Add the missing complete operations for dma_completion to fix the problem of blocking at the wait_for_completion_interruptible() function when use spi_slave_abort(). Signed-off-by: Clark Wang Signed-off-by: Mark Brown commit 703b476695237dda54233d2dadb37d2d49de23cf Author: Andrey Smirnov Date: Tue Apr 2 21:01:26 2019 -0700 spi: gpio: Drop unused pdata copy in struct spi_gpio Drop unused pdata copy in struct spi_gpio. No functional change intended. Signed-off-by: Andrey Smirnov Cc: Mark Brown Cc: Chris Healy Cc: linux-spi@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Mark Brown commit 68cd9dc2cc00b2ab0dbcdbbec446d5bdc56fea4b Author: Andrey Smirnov Date: Tue Apr 2 21:01:25 2019 -0700 spi: gpio: Simplify SPI_MASTER_NO_TX check in spi_gpio_probe() Swap branches of the if statement in order to simplify it's logical condition being checked. No functional change intended. Signed-off-by: Andrey Smirnov Cc: Mark Brown Cc: Chris Healy Cc: linux-spi@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Mark Brown commit 15dd0e9e002ad39d93a0ff6935bc619d42ce3551 Author: Andrey Smirnov Date: Tue Apr 2 21:01:24 2019 -0700 spi: gpio: Add local struct spi_bitbang pointer in spi_gpio_probe() Use a local "struct spi_bitbang *bb" in spi_gpio_probe() for brevity. No functional change intended. Signed-off-by: Andrey Smirnov Cc: Mark Brown Cc: Chris Healy Cc: linux-spi@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Mark Brown commit 96cad6d78f7f8feac456002020971cba6073bff9 Author: Andrey Smirnov Date: Tue Apr 2 21:01:23 2019 -0700 spi: gpio: Add local struct device pointer in spi_gpio_probe() Use a local "struct device *dev" in spi_gpio_probe() for brevity. No functional change intended. Signed-off-by: Andrey Smirnov Cc: Mark Brown Cc: Chris Healy Cc: linux-spi@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Mark Brown commit 4d9f8fed42694016b015cbfe201effe8aff0d1b3 Author: Andrey Smirnov Date: Tue Apr 2 21:01:22 2019 -0700 spi: gpio: Drop unused spi_to_pdata() Spi_to_pdata() is not used anywhere in the code. Drop it. Signed-off-by: Andrey Smirnov Cc: Mark Brown Cc: Chris Healy Cc: linux-spi@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Mark Brown commit 5fd917afc4bfe77686a29a7923c301b6f55b2377 Author: Martin Sperl Date: Sat Mar 30 09:31:06 2019 +0000 spi: bcm2835aux: make the polling duration limits configurable Under some circumstances the default 30 us polling limit is not optimal and may lead to long delays because we are waiting on an interrupt. with this patch we have the possibility to influence this policy. So make this limit (in us) configurable via a module parameters (but also modifyable via /sys/modules/...) Signed-off-by: Martin Sperl Acked-by: Stefan Wahren Signed-off-by: Mark Brown commit ccd978b708b03b18196205b3baee83b5047ee453 Author: Martin Sperl Date: Sat Mar 30 09:31:04 2019 +0000 spi: bcm2835aux: setup gpio-cs to output and correct level during setup Setup gpio-cs to the correct levels during setup and also make the gpio definitely an output GPIO. This is transparently fixing some badly configured DTs in the process where cs-gpio is set but the gpios are still configured with native cs. It also makes 100% sure that the initial CS levels are as expected - especially on systems with devices on a bus with mixed CS_HIGH/CS_LOW settings. Fixes: 1ea29b39f4c812ec ("spi: bcm2835aux: add bcm2835 auxiliary spi device...") Signed-off-by: Martin Sperl Acked-by: Stefan Wahren Signed-off-by: Mark Brown commit 519f2c22a6c71a9fefed1166c36d48246e010514 Author: Martin Sperl Date: Sat Mar 30 09:31:03 2019 +0000 spi: bcm2835aux: warn in dmesg that native cs is not really supported From personal bad experience (even as the author of the original driver) it shows that native-cs is "somewhat" supported by the spi bus driver when using a buggy device tree. So make sure that the driver is warning in dmesg about this fact that we are running in a not supported mode that may have surprizing limitations. Fixes: 1ea29b39f4c812ec ("spi: bcm2835aux: add bcm2835 auxiliary spi device...") Signed-off-by: Martin Sperl Acked-by: Stefan Wahren Signed-off-by: Mark Brown commit 509c583620e9053e43d611bf1614fc3d3abafa96 Author: Martin Sperl Date: Sat Mar 30 09:31:02 2019 +0000 spi: bcm2835aux: fix driver to not allow 65535 (=-1) cs-gpios The original driver by default defines num_chipselects as -1. This actually allicates an array of 65535 entries in of_spi_register_master. There is a side-effect for buggy device trees that (contrary to dt-binding documentation) have no cs-gpio defined. This mode was never supported by the driver due to limitations of native cs and additional code complexity and is explicitly not stated to be implemented. To keep backwards compatibility with such buggy DTs we limit the number of chip_selects to 1, as for all practical purposes it is only ever realistic to use a single chip select in native cs mode without negative side-effects. Fixes: 1ea29b39f4c812ec ("spi: bcm2835aux: add bcm2835 auxiliary spi device...") Signed-off-by: Martin Sperl Acked-by: Stefan Wahren Signed-off-by: Mark Brown commit 08a8549509b6e9a9f0d373257f45533df439c70f Author: Martin Sperl Date: Sat Mar 30 09:31:01 2019 +0000 spi: bcm2835aux: remove dead code Remove dead code that never can get reached, as we limit count to a max of 3. Suggested-by: Hubert Denkmair Signed-off-by: Martin Sperl Acked-by: Stefan Wahren Signed-off-by: Mark Brown commit 73b114ee7db1750c0b535199fae383b109bd61d0 Author: Martin Sperl Date: Sat Mar 30 09:31:00 2019 +0000 spi: bcm2835aux: fix corruptions for longer spi transfers On long running tests with a mcp2517fd can controller it showed that on rare occations the data read shows corruptions for longer spi transfers. Example of a 22 byte transfer: expected (as captured on logic analyzer): FF FF 78 00 00 00 08 06 00 00 91 20 77 56 84 85 86 87 88 89 8a 8b read by the driver: FF FF 78 00 00 00 08 06 00 00 91 20 77 56 84 88 89 8a 00 00 8b 9b To fix this use BCM2835_AUX_SPI_STAT_RX_LVL to determine when we may read data from the fifo reliably without any corruption. Surprisingly the only values ever empirically read in BCM2835_AUX_SPI_STAT_RX_LVL are 0x00, 0x10, 0x20 and 0x30. So whenever the mask is not 0 we can read from the fifo in a safe manner. The patch has now been tested intensively and we are no longer able to reproduce the "RX" issue any longer. Fixes: 1ea29b39f4c812ec ("spi: bcm2835aux: add bcm2835 auxiliary spi device...") Reported-by: Hubert Denkmair Signed-off-by: Martin Sperl Acked-by: Stefan Wahren Signed-off-by: Mark Brown commit c7de8500fd8ecbb544846dd5f11dca578c3777e1 Author: Martin Sperl Date: Sat Mar 30 09:30:59 2019 +0000 spi: bcm2835aux: remove dangerous uncontrolled read of fifo This read of the fifo is a potential candidate for a race condition as the spi transfer is not necessarily finished and so can lead to an early read of the fifo that still misses data. So it has been removed. Fixes: 1ea29b39f4c812ec ("spi: bcm2835aux: add bcm2835 auxiliary spi device...") Suggested-by: Hubert Denkmair Signed-off-by: Martin Sperl Acked-by: Stefan Wahren Signed-off-by: Mark Brown commit 7188a6f0eee3f1fae5d826cfc6d569657ff950ec Author: Martin Sperl Date: Sat Mar 30 09:30:58 2019 +0000 spi: bcm2835aux: unifying code between polling and interrupt driven code Sharing more code between polling and interrupt-driven mode. Signed-off-by: Martin Sperl Acked-by: Stefan Wahren Signed-off-by: Mark Brown commit 46109648052fe778c75f199d72255c899578d6f7 Author: Naga Sureshkumar Relli Date: Mon Apr 1 13:29:00 2019 +0530 spi: spi-mem: export spi_mem_default_supports_op() Export spi_mem_default_supports_op(), so that controller drivers can use this. spi-mem driver already exports this using EXPORT_SYMBOL, but not declared it in spi-mem.h. This patch declares spi_mem_default_supports_op() in spi-mem.h and also removes the static from the function prototype. Signed-off-by: Naga Sureshkumar Relli Signed-off-by: Mark Brown commit 5a4df21e83710dea9c6c4636f3183090b018cbcc Author: Geert Uytterhoeven Date: Tue Apr 2 16:40:21 2019 +0200 spi: sh-msiof: Use BIT() and GENMASK() Improve maintainability by converting the register bit, bitmask, and bitfield definitions from hexadecimal constants to constructs using BIT(), GENMASK(), or "val << shift". Suggested-by: Simon Horman Signed-off-by: Geert Uytterhoeven Acked-by: Wolfram Sang Signed-off-by: Mark Brown commit 401861f51a470ef9b21c949b3c86aa525bd5e7dc Author: Axel Lin Date: Wed Apr 3 07:41:54 2019 +0800 regulator: twl: Constify regulator_ops These regulator_ops variables never need to be modified, make them const so compiler can put them to .rodata. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 55c083d89634d3325f9d9e0d20459c308a575620 Author: Axel Lin Date: Tue Apr 2 20:13:48 2019 +0800 regulator: lm363x: Constify regulator_ops The lm363x_boost_voltage_table_ops and lm363x_regulator_voltage_table_ops never need to be modified, make them const so compiler can put them to .rodata. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 8a76f107216f770c0f6e6ea13bb962fbe4568b5f Author: Axel Lin Date: Tue Apr 2 20:13:47 2019 +0800 regulator: lm363x: Use proper data type for regmap_read arguments regmap_read() takes unsigned int reg and unsigned int *val arguments, use proper data type for these arguments. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 8b9f9d4dc511309918c4f6793bae7387c0c638af Author: Han Nandor Date: Tue Apr 2 08:01:22 2019 +0000 regmap: verify if register is writeable before writing operations regmap provides a couple of ways to validate the register range used. a) maxim allowed register, b) writable/readable register tables, c) callback function that can be provided by the driver to validate a register. regmap framework should verify if registers are writeable before every write operation. However this doesn't seems to happen in every situation. The method `_regmap_raw_write_impl` is only using the `writeable_reg` callback to verify if register is writeable, ignoring the other two. This can lead to undefined behaviour since this allows to write to registers that could be declared un-writeable by using any other option. Change `_regmap_raw_write_impl` to use the `regmap_writeable` method to verify if registers are writable before the write operation. Signed-off-by: Nandor Han Signed-off-by: Mark Brown commit 2b7bcdad3af9fbd104d5f300dbb90f684c36aa09 Author: Anders Roxell Date: Wed Apr 3 05:05:01 2019 +0200 ASoC: Mediatek: MT8183: TS3A227: fix build error When building CONFIG_SND_SOC_MT8183_MT6358_TS3A227E_MAX98357A=m the following error pops up: ../sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c: In function ‘mt8183_mt6358_ts3a227_max98357_dev_probe’: ../sound/soc/mediatek/mt8183/mt8183-mt6358-ts3a227-max98357.c:325:13: error: ‘struct snd_soc_dai_link’ has no member named ‘platform’; did you mean ‘platforms’? dai_link->platform = NULL; ^~~~~~~~ platforms Rework to use 'dai_link->platforms' instead of 'dai_link->platform'. Fixes: 11c0269017b2 ("ASoC: Mediatek: MT8183: Add machine driver with TS3A227") Signed-off-by: Anders Roxell Signed-off-by: Mark Brown commit 789b930a8f0de609fd2ef9f2ebf73726b7087fea Author: Charles Keepax Date: Tue Apr 2 13:49:16 2019 +0100 ASoC: wm_adsp: Make use of local variables Tidy up some instances of dereferencing to obtain things that are already stored in local variables. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown commit 26ffa016a3c1b34fbfcc8368edb315f2829504ae Author: Charles Keepax Date: Tue Apr 2 13:49:15 2019 +0100 ASoC: wm_adsp: Remove redundant NULL check in wm_adsp_buffer_free wm_adsp_compr_detach is NULL aware so there is no need to check for NULL before calling it, remove the redundant check. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown commit 7742a5b418c91b1f27a08ebf90cb662cf4c06604 Author: kbuild test robot Date: Tue Apr 2 19:46:18 2019 +0800 ASoC: tlv320aic31xx: aic31xx_set_jack() can be static Fixes: ebf3326cd969 ("ASoC: tlv320aic31xx: Add headphone/headset detection") Signed-off-by: kbuild test robot Signed-off-by: Mark Brown commit 5ebffda257731a11cf1db6c6142c82d5b30aec35 Merge: 457109829f4e 04c8a1ec395b Author: Dave Airlie Date: Wed Apr 3 13:42:15 2019 +1000 Merge commit 'refs/for-upstream/mali-dp' of git://linux-arm.org/linux-ld into drm-next This pull requests adds initial Mali D71 support into the Arm "komeda" DRM driver. The code has been reviewed at the end of last year, I just been too slow with pushing it into mainline. Since it started baking in linux-next we had a kbuild-bot issue raised and one from Joe Perches on the MAINTAINERS entry, for which I'm including fixes here. Signed-off-by: Dave Airlie From: Liviu Dudau Link: https://patchwork.freedesktop.org/patch/msgid/20190401192833.GW21747@e110455-lin.cambridge.arm.com commit 457109829f4ee4107e8c7108237afba21fabbb5e Merge: b4e4538a0ab5 7a65bdc6903d Author: Dave Airlie Date: Wed Apr 3 11:36:52 2019 +1000 Merge branch 'drm-next-5.2' of git://people.freedesktop.org/~agd5f/linux into drm-next amdgpu: - Switch to HMM for userptr (reverted until HMM fixes land) - New experimental SMU 11 replacement for powerplay for vega20 (not enabled by default) - Initial RAS support for vega20 - BACO support for vega12 - BACO fixes for vega20 - Rework IH handling for page fault and retry interrupts - Cleanly split CPU and GPU paths for GPUVM updates - Powerplay fixes - XGMI fixes - Rework how DC interacts with atomic for planes - Clean up and simplify DC/Powerplay interfaces - Misc cleanups and bug fixes amdkfd: - Switch to HMM for userptr (reverted until HMM fixes land) - Add initial RAS support - MQD fixes ttm: - Unify DRM_FILE_PAGE_OFFSET handling - Account for kernel allocations in kernel zone only - Misc cleanups Signed-off-by: Dave Airlie From: Alex Deucher Link: https://patchwork.freedesktop.org/patch/msgid/20190402170820.22197-1-alexander.deucher@amd.com commit 5674a92ca4b7e5a6a19231edd10298d30324cd27 Author: Dan Carpenter Date: Thu Mar 28 17:18:41 2019 +0300 soc/fsl/qe: Fix an error code in qe_pin_request() We forgot to set "err" on this error path. Fixes: 1a2d397a6eb5 ("gpio/powerpc: Eliminate duplication of of_get_named_gpio_flags()") Signed-off-by: Dan Carpenter Signed-off-by: Li Yang commit f14382d7e40cc8872d4e4c71f06000ea499c8384 Author: Stephen Boyd Date: Tue Apr 2 15:54:10 2019 -0700 clk: Drop duplicate clk_register() documentation clk_register() isn't the main way to register a clk anymore. Developers should use clk_hw_register() instead. Furthermore, this whole chunk of documentation duplicates what's in the C file, so let's just use that. Signed-off-by: Stephen Boyd commit e83b9f55448afce3fe1abcd1d10db9584f8042a6 Author: Andrii Nakryiko Date: Tue Apr 2 09:49:50 2019 -0700 kbuild: add ability to generate BTF type info for vmlinux This patch adds new config option to trigger generation of BTF type information from DWARF debuginfo for vmlinux and kernel modules through pahole, which in turn relies on libbpf for btf_dedup() algorithm. The intent is to record compact type information of all types used inside kernel, including all the structs/unions/typedefs/etc. This enables BPF's compile-once-run-everywhere ([0]) approach, in which tracing programs that are inspecting kernel's internal data (e.g., struct task_struct) can be compiled on a system running some kernel version, but would be possible to run on other kernel versions (and configurations) without recompilation, even if the layout of structs changed and/or some of the fields were added, removed, or renamed. This is only possible if BPF loader can get kernel type info to adjust all the offsets correctly. This patch is a first time in this direction, making sure that BTF type info is part of Linux kernel image in non-loadable ELF section. BTF deduplication ([1]) algorithm typically provides 100x savings compared to DWARF data, so resulting .BTF section is not big as is typically about 2MB in size. [0] http://vger.kernel.org/lpc-bpf2018.html#session-2 [1] https://facebookmicrosites.github.io/bpf/blog/2018/11/14/btf-enhancement.html Cc: Masahiro Yamada Cc: Arnaldo Carvalho de Melo Cc: Daniel Borkmann Cc: Alexei Starovoitov Cc: Yonghong Song Cc: Martin KaFai Lau Signed-off-by: Andrii Nakryiko Acked-by: David S. Miller Acked-by: Alexei Starovoitov Acked-by: Daniel Borkmann Signed-off-by: Daniel Borkmann commit ab105a4fb89496c71c5a0f3222347c506c30feb0 Author: Masami Hiramatsu Date: Sun Mar 31 18:48:19 2019 -0500 tracing: Use tracing error_log with probe events Use tracing error_log with probe events for logging error more precisely. This also makes all parse error returns -EINVAL (except for -ENOMEM), because user can see better error message in error_log file now. Link: http://lkml.kernel.org/r/6a4d90e141d138040ea61f4776b991597077451e.1554072478.git.tom.zanussi@linux.intel.com Acked-by: Masami Hiramatsu Acked-by: Namhyung Kim Signed-off-by: Masami Hiramatsu Signed-off-by: Steven Rostedt (VMware) commit 34f76afaac7a437a2ce381225135563928b359dd Author: Tom Zanussi Date: Sun Mar 31 18:48:18 2019 -0500 tracing: Use tracing error_log with trace event filters Use tracing_log_err() from the new tracing error_log mechanism to send filter parse errors to tracing/error_log. With this change, users will be able to see filter errors by looking at tracing/error_log. The same errors will also be available in the filter file, as expected. Link: http://lkml.kernel.org/r/1d942c419941539a11d78a6810fc5740a99b2974.1554072478.git.tom.zanussi@linux.intel.com Acked-by: Masami Hiramatsu Acked-by: Namhyung Kim Signed-off-by: Tom Zanussi Signed-off-by: Steven Rostedt (VMware) commit d566c5e9d1bad6773fe9cce3d4514cca2cc32e4e Author: Tom Zanussi Date: Sun Mar 31 18:48:17 2019 -0500 tracing: Use tracing error_log with hist triggers Replace hist_err() and hist_err_event() with tracing_log_err() from the new tracing error_log mechanism. Also add a couple related helper functions and remove most of the old hist_err()-related code. With this change, users no longer read the hist files for hist trigger error information, but instead look at tracing/error_log for the same information. Link: http://lkml.kernel.org/r/c98f77a97c9715d18b623eeb5741057b330d5ac0.1554072478.git.tom.zanussi@linux.intel.com Acked-by: Masami Hiramatsu Acked-by: Namhyung Kim Signed-off-by: Tom Zanussi Signed-off-by: Steven Rostedt (VMware) commit a1a05bb40e229d148c071fcd2ed787b21f61ff8b Author: Tom Zanussi Date: Sun Mar 31 18:48:16 2019 -0500 tracing: Save the last hist command's associated event name In preparation for making use of the new trace error log, save the subsystem and event name associated with the last hist command - it will be passed as the location param in the event_log_err() calls. Link: http://lkml.kernel.org/r/eb0fd1362be8f39facb86c83eecf441b7a5876f8.1554072478.git.tom.zanussi@linux.intel.com Acked-by: Masami Hiramatsu Acked-by: Namhyung Kim Signed-off-by: Tom Zanussi Signed-off-by: Steven Rostedt (VMware) commit 8a062902be725f647dc8da532b04d836546a369a Author: Tom Zanussi Date: Sun Mar 31 18:48:15 2019 -0500 tracing: Add tracing error log Introduce a new ftrace file, tracing/error_log, for ftrace commands to log errors. This is useful for allowing more complex commands such as hist trigger and kprobe_event commands to point out specifically where something may have gone wrong without forcing them to resort to more ad hoc methods such as tacking error messages onto existing output files. To log a tracing error, call the event_log_err() function, passing it a location string describing where it came from e.g. kprobe_events or system:event, the command that caused the error, an array of static error strings describing errors and an index within that array which describes the specific error, along with the position to place the error caret. Reading the log displays the last (currently) 8 errors logged in the following format: [timestamp] : error: Command: ^ Memory for the error log isn't allocated unless there has been a trace event error, and the error log can be cleared and have its memory freed by writing the empty string in truncation mode to it: # echo > tracing/error_log. Link: http://lkml.kernel.org/r/0c2c82571fd38c5f3a88ca823627edff250e9416.1554072478.git.tom.zanussi@linux.intel.com Acked-by: Masami Hiramatsu Suggested-by: Masami Hiramatsu Improvements-suggested-by: Steve Rostedt Acked-by: Namhyung Kim Signed-off-by: Tom Zanussi Signed-off-by: Steven Rostedt (VMware) commit f45d1225adb0479478cee989e2ae2d7d2c62b31b Author: Divya Indi Date: Wed Mar 20 11:28:51 2019 -0700 tracing: Kernel access to Ftrace instances Ftrace provides the feature “instances” that provides the capability to create multiple Ftrace ring buffers. However, currently these buffers are created/accessed via userspace only. The kernel APIs providing these features are not exported, hence cannot be used by other kernel components. This patch aims to extend this infrastructure to provide the flexibility to create/log/remove/ enable-disable existing trace events to these buffers from within the kernel. Link: http://lkml.kernel.org/r/1553106531-3281-2-git-send-email-divya.indi@oracle.com Signed-off-by: Divya Indi Reviewed-by: Joe Jin Signed-off-by: Steven Rostedt (VMware) commit 40ed29b373381532ef222e509c5aa69a1d8561ea Author: YueHaibing Date: Sun Sep 23 12:11:33 2018 +0000 ring-buffer: Fix ring buffer size in rb_write_something() 'cnt' should be used to calculate ring buffer size rather than data->cnt Link: http://lkml.kernel.org/r/1537704693-184237-1-git-send-email-yuehaibing@huawei.com Signed-off-by: YueHaibing Signed-off-by: Steven Rostedt (VMware) commit 99182beed858a1bde22f60046602b9b223225f73 Merge: 9de2640b06ec 7596aa3ea8a0 Author: Daniel Borkmann Date: Tue Apr 2 23:17:19 2019 +0200 Merge branch 'bpf-selftest-clang-fixes' Stanislav Fomichev says: ==================== This series contains small fixes to make bpf selftests compile cleanly with clangs. All of them are not real problems, but it's nice to have an option to use clang for the tests themselves. ==================== Signed-off-by: Daniel Borkmann commit 7596aa3ea8a0b478a8a5c6207e69cc7fcc035d45 Author: Stanislav Fomichev Date: Tue Apr 2 10:08:35 2019 -0700 selftests: bpf: remove duplicate .flags initialization in ctx_skb.c verifier/ctx_skb.c:708:11: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides] .flags = F_NEEDS_EFFICIENT_UNALIGNED_ACCESS, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Signed-off-by: Stanislav Fomichev Signed-off-by: Daniel Borkmann commit a918b03e8c956d159b13fdde8608847393d54ef9 Author: Stanislav Fomichev Date: Tue Apr 2 10:08:34 2019 -0700 selftests: bpf: fix -Wformat-invalid-specifier for bpf_obj_id.c Use standard C99 %zu for sizeof, not GCC's custom %Zu: bpf_obj_id.c:76:48: warning: invalid conversion specifier 'Z' Signed-off-by: Stanislav Fomichev Signed-off-by: Daniel Borkmann commit 94e8f3c7125a36c6cedf37c8838cb77c8a8d8cf9 Author: Stanislav Fomichev Date: Tue Apr 2 10:08:33 2019 -0700 selftests: bpf: fix -Wformat-security warning for flow_dissector_load.c flow_dissector_load.c:55:19: warning: format string is not a string literal (potentially insecure) [-Wformat-security] error(1, errno, command); ^~~~~~~ flow_dissector_load.c:55:19: note: treat the string as an argument to avoid this error(1, errno, command); ^ "%s", 1 warning generated. Signed-off-by: Stanislav Fomichev Signed-off-by: Daniel Borkmann commit 6b7b6995c43e17f994c51c107740daedd948255a Author: Stanislav Fomichev Date: Tue Apr 2 10:08:32 2019 -0700 selftests: bpf: tests.h should depend on .c files, not the output This makes sure we don't put headers as input files when doing compilation, because clang complains about the following: clang-9: error: cannot specify -o when generating multiple output files ../lib.mk:152: recipe for target 'xxx/tools/testing/selftests/bpf/test_verifier' failed make: *** [xxx/tools/testing/selftests/bpf/test_verifier] Error 1 make: *** Waiting for unfinished jobs.... clang-9: error: cannot specify -o when generating multiple output files ../lib.mk:152: recipe for target 'xxx/tools/testing/selftests/bpf/test_progs' failed Signed-off-by: Stanislav Fomichev Signed-off-by: Daniel Borkmann commit a719004282c0b74974620d81c521c83a850a97cc Author: Gerd Hoffmann Date: Tue Apr 2 11:04:59 2019 +0200 drm/cirrus: drop mode_info.mode_config_initialized Signed-off-by: Gerd Hoffmann Reviewed-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/20190402090459.12126-3-kraxel@redhat.com commit 31c17924564f92971428ebd5752ffe2ac5681fb3 Author: Gerd Hoffmann Date: Tue Apr 2 11:04:58 2019 +0200 drm/bochs: drop mode_config_initialized Signed-off-by: Gerd Hoffmann Reviewed-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/20190402090459.12126-2-kraxel@redhat.com commit f722b8c1e2a2a85add58a8ffd9cb794d4d6287ff Author: Bob Paauwe Date: Wed Mar 20 14:15:46 2019 -0700 drm/i915/ehl: All EHL ports are combo phys Unlike ICL, all of the output ports are combo phys so just return true in intel_port_is_combophy for all EHL ports to indicate that. v2: Return false in intel_port_is_tc since no EHL ports are TC. (Jose) Cc: Jose Souza Signed-off-by: Bob Paauwe Signed-off-by: Rodrigo Vivi Reviewed-by: José Roberto de Souza Signed-off-by: Lucas De Marchi Link: https://patchwork.freedesktop.org/patch/msgid/20190320211547.519266-1-bob.j.paauwe@intel.com commit 3eed52842b9fd291233c15f65fed34c5d3241183 Author: Vlad Buslov Date: Mon Apr 1 14:16:59 2019 +0300 net: sched: don't set tunnel for decap action Action tunnel_key doesn't have a metadata/tunnel for release(decap) action. Drivers do not dereference entry->tunnel pointer for that action type, so this behavior doesn't result in a crash at the moment. However, this needs to be corrected as a preparation for updating hardware offloads API to not rely on rtnl lock, for which flow_action code will copy the tunnel data to temporary buffer to prevent concurrent action overwrite from invalidating/freeing it. Fixes: 3a7b68617de7 ("cls_api: add translator to flow_action representation") Signed-off-by: Vlad Buslov Signed-off-by: David S. Miller commit 40d0690bd0b681a797d5b9752b72c2890d9d1220 Merge: fa288a42646c 372fcc1b8b66 Author: David S. Miller Date: Tue Apr 2 13:16:17 2019 -0700 Merge branch 'net-phy-improve-genphy_c45_read_lpa' Heiner Kallweit says: ==================== net: phy: improve genphy_c45_read_lpa This series improves genphy_c45_read_lpa: - Use clause 45 standard register / bit to detect link partner autoneg capability. - Consider that lpa register values may be invalid if "autoneg complete" bit isn't set. ==================== Signed-off-by: David S. Miller commit 372fcc1b8b66148367af8374d09d48b6a0385faf Author: Heiner Kallweit Date: Sun Mar 31 19:54:07 2019 +0200 net: phy: deal properly with autoneg incomplete in genphy_c45_read_lpa The link partner advertisement registers are not guaranteed to contain valid values if autoneg is incomplete. Therefore, if MDIO_AN_STAT1_COMPLETE isn't set, let's clear all link partner capability bits. This also avoids unnecessary register reads if link is down and phylib is in polling mode. Signed-off-by: Heiner Kallweit Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 5d237a07f131938e3e35635d483397a0ef0901e6 Author: Heiner Kallweit Date: Sun Mar 31 19:52:51 2019 +0200 net: phy: use c45 standard to detect link partner autoneg capability Currently mii_lpa_mod_linkmode_lpa_t() checks bit LPA_LPACK to detect whether link partner supports autoneg. This doesn't work correctly at least on Aquantia AQCS109 when it negotiates 1000Base-T2 mode. The "link partner is autoneg-capable" bit as defined by clause 45 is set however. Better let's switch in general to use the clause 45 standard for link partner autoneg detection. Signed-off-by: Heiner Kallweit Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit fa288a42646c3294c5061812c2314a822bfd537c Merge: 6d670497e018 48e4adf9afbe Author: David S. Miller Date: Tue Apr 2 13:09:56 2019 -0700 Merge branch 'genphy_read_abilities' Heiner Kallweit says: ==================== net: phy: add and use new function genphy_read_abilities Similar to genphy_c45_pma_read_abilities() add a function to dynamically detect the abilities of a Clause 22 PHY. This is mainly copied from genphy_config_init(). Main benefit is that PHY drivers no longer have to specify whether they support GBit or not (provided they keep to the C22 standard). ==================== Signed-off-by: David S. Miller commit 48e4adf9afbe5256d0dab383baf310889973811d Author: Heiner Kallweit Date: Wed Mar 27 22:00:32 2019 +0100 net: phy: realtek: use genphy_read_abilities Use new function genphy_read_abilities(). This allows to remove all calls to genphy_config_init(). Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 2a4d8674b8ec1fc0cf91a4d59b0ca119052036ce Author: Heiner Kallweit Date: Wed Mar 27 21:59:33 2019 +0100 net: phy: use genphy_read_abilities in genphy driver Currently the genphy driver populates phydev->supported like this: First all possible feature bits are set, then genphy_config_init() reads the available features from the chip and remove all unsupported features from phydev->supported. This can be simplified by using genphy_read_abilities(). Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 045925e3fe5b98e402337a176d154252c56cef2e Author: Heiner Kallweit Date: Wed Mar 27 21:58:44 2019 +0100 net: phy: add genphy_read_abilities Similar to genphy_c45_pma_read_abilities() add a function to dynamically detect the abilities of a Clause 22 PHY. This is mainly copied from genphy_config_init(). Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit aef6c443fe84d09cd4a272bc68837b58b584dc6f Author: Tariq Toukan Date: Fri Mar 29 15:38:04 2019 -0700 net/mlx5: Fix false compilation warning Fix the following warning: drivers/net/ethernet/mellanox/mlx5/core//fs_core.c:845:5: warning: 'err' may be used uninitialized in this function [-Wmaybe-uninitialized] No real issue here. This is only a false compiler warning. The 'err' variable is guaranteed to be init by time of usage. gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-4) Signed-off-by: Tariq Toukan Reviewed-by: Alex Vesker Signed-off-by: Saeed Mahameed commit 4039049b5c462d3bb9ee8a68c4375582f037d5f2 Author: Aya Levin Date: Fri Mar 29 15:38:03 2019 -0700 net/mlx5: Expose MPEIN (Management PCIE INfo) register layout Expose PRM layout for handling MPEIN (Management PCIE Info). It will be used in the downstream patch for querying MPEIN via the driver. Signed-off-by: Aya Levin Signed-off-by: Saeed Mahameed commit 3732b9720ffe0fedcadbcb5dc3add1dd0d926bcf Author: Aya Levin Date: Fri Mar 29 15:38:02 2019 -0700 net/mlx5: Add rate limit print macros Add rate limited print macros for warning and info level. This protects the system from burst of prints depleting HW resources and spamming dmesg. Signed-off-by: Aya Levin Signed-off-by: Saeed Mahameed commit aa8106f137b93628d531ef5ecbbcbecef99370d7 Author: Huy Nguyen Date: Fri Mar 29 15:38:01 2019 -0700 net/mlx5: Add explicit bar address field Add bar_addr field to store bar-0 address to avoid calling pci_resource_start with hard-coded bar-0 as parameter. Also note that different mlx5 device types will have bar_addr on different bars. This patch does not change any functionality. Signed-off-by: Huy Nguyen Signed-off-by: Vu Pham Signed-off-by: Saeed Mahameed commit 98a8e6fc482d96809d90fcab661835ed299359c5 Author: Huy Nguyen Date: Fri Mar 29 15:38:00 2019 -0700 net/mlx5: Replace dev_err/warn/info by mlx5_core_err/warn/info Replace pci dev_err/warn/info messages with mlx5_core_err/warn/info messages to provide a better report/debug of different mlx5 device types. This patch does not change any functionality. Signed-off-by: Huy Nguyen Signed-off-by: Vu Pham Signed-off-by: Saeed Mahameed commit b09989a2142897f0c4cc6c93831f68bd7b02bedd Author: Huy Nguyen Date: Fri Mar 29 15:37:59 2019 -0700 net/mlx5: Use dev->priv.name instead of dev_name Use mlx5_core mdev private name in message instead of using pci dev_name to provide a better report/debug of different mlx5 device types. This patch does not change any functionality. Signed-off-by: Huy Nguyen Signed-off-by: Vu Pham Signed-off-by: Saeed Mahameed commit d05120f50b5d29f6642b1c802c1e0b948437459a Author: Huy Nguyen Date: Fri Mar 29 15:37:58 2019 -0700 net/mlx5: Make mlx5_core messages independent from mdev->pdev Detach mlx5_core mdev messages from pci device mdev->pdev messages and provide a better report/debug of different mlx5 device types. This patch does not change any functionality. Signed-off-by: Huy Nguyen Signed-off-by: Vu Pham Signed-off-by: Saeed Mahameed Reviewed-by: Parav Pandit commit a80d1b68c8b7a06b85434f89d138f0c28f3d27c9 Author: Saeed Mahameed Date: Fri Mar 29 15:37:57 2019 -0700 net/mlx5: Break load_one into three stages Using foundation from previous patches to factor mlx5_load_one flow into three stages: 1. mlx5_function_setup() from previous patch to setup function 2. mlx5_init_once() from previous patch to init software objects according to hw caps 3. New mlx5_load() to load mlx5 components This provides a better logical separation of mlx5 core device initialization flow and will help to seamlessly support creating different mlx5 device types such as PF, VF and SF mlx5 sub-function virtual device. This patch does not change any functionality. Signed-off-by: Vu Pham Signed-off-by: Saeed Mahameed commit e161105e58da81fa9170921284559800fd6aa86a Author: Saeed Mahameed Date: Fri Mar 29 15:37:56 2019 -0700 net/mlx5: Function setup/teardown procedures Function setup and teardown procedures are the basic procedure that each mlx5 pci function should perform to boot up a mlx5 device function and initialize basic communication with FW, before allocating any higher level software/firmware resources. This provides a better logical separation of mlx5 core device initialization flow and will help to seamlessly support creating different mlx5 device types such as PF, VF and SF mlx5 sub-function virtual device. This patch does not change any functionality. Signed-off-by: Vu Pham Signed-off-by: Saeed Mahameed commit 52c368dc3da7beb7b283133024af1b6d07bf93b9 Author: Saeed Mahameed Date: Fri Mar 29 15:37:55 2019 -0700 net/mlx5: Move health and page alloc init to mdev_init Software structure initialization should be in mdev_init stage. This provides a better logical separation of mlx5 core device initialization flow and will help to seamlessly support creating different mlx5 device types such as PF, VF and SF mlx5 sub-function virtual device. This patch does not change any functionality. Signed-off-by: Vu Pham Signed-off-by: Saeed Mahameed commit 11f3b84d7068397df9f329b8bcf1177507061938 Author: Saeed Mahameed Date: Fri Mar 29 15:37:54 2019 -0700 net/mlx5: Split mdev init and pci init Separate resources initialization from pci initialization. This provides a better logical separation of mlx5 core device initialization flow and will help to seamlessly support creating different mlx5 device types such as PF, VF and SF mlx5 sub-function virtual device. This patch does not change any functionality. Signed-off-by: Vu Pham Signed-off-by: Saeed Mahameed commit 868bc06b240334a0caf2de25898d2e97b895e3c9 Author: Saeed Mahameed Date: Fri Mar 29 15:37:53 2019 -0700 net/mlx5: Remove redundant init functions parameter This patch does not change any functionality. Signed-off-by: Vu Pham Signed-off-by: Saeed Mahameed commit bbf29f618e8c5bfd6efdad5fdc050a84bab795ab Author: Maxim Mikityanskiy Date: Fri Mar 29 15:37:52 2019 -0700 net/mlx5: Remove spinlock support from mlx5_write64 As there is no user of mlx5_write64 that passes a spinlock to mlx5_write64, remove this functionality and simplify the function. Signed-off-by: Maxim Mikityanskiy Reviewed-by: Eran Ben Elisha Signed-off-by: Saeed Mahameed commit 38702cce547a74493687fd8bb925fbb5c3898ce3 Author: Maxim Mikityanskiy Date: Fri Mar 29 15:37:51 2019 -0700 net/mlx5: Remove unused MLX5_*_DOORBELL_LOCK macros MLX5_*_DOORBELL_LOCK macros provided a way to avoid locking for mlx5_write64 on 64-bit platforms where it's not necessary. Currently all calls to mlx5_write64 don't use a spinlock, so the macros became unused. Signed-off-by: Maxim Mikityanskiy Reviewed-by: Eran Ben Elisha Signed-off-by: Saeed Mahameed commit 857b079b1a43e9a1556902d8a0a1d3a6b0747d96 Author: Colin Ian King Date: Sat Mar 30 20:37:57 2019 +0000 leds: blinkm: clean up double assignment to data->i2c_addr Currently data->i2c_addr is being assigned twice, first with the value 0x09 and then immediately afterwards with the value 0x08. The first assignment is redundant and can be removed. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Acked-by: Pavel Machek Signed-off-by: Jacek Anaszewski commit 4e328b08882a68649df2c2b76fd208b0d0b85503 Author: Casey Schaufler Date: Tue Apr 2 11:37:12 2019 -0700 Smack: Create smack_rule cache to optimize memory usage This patch allows for small memory optimization by creating the kmem cache for "struct smack_rule" instead of using kzalloc. For adding new smack rule, kzalloc is used to allocate the memory for "struct smack_rule". kzalloc will always allocate 32 or 64 bytes for 1 structure depending upon the kzalloc cache sizes available in system. Although the size of structure is 20 bytes only, resulting in memory wastage per object in the default pool. For e.g., if there are 20000 rules, then it will save 240KB(20000*12) which is crucial for small memory targets. Signed-off-by: Vishal Goel Signed-off-by: Amit Sahrawat Signed-off-by: Casey Schaufler commit 460d95a1d69d5c0352379a3651c9cb6ec09e4ddb Author: Vishal Goel Date: Thu Mar 7 16:55:24 2019 +0530 smack: removal of global rule list In this patch, global rule list has been removed. Now all smack rules will be read using "smack_known_list". This list contains all the smack labels and internally each smack label structure maintains the list of smack rules corresponding to that smack label. So there is no need to maintain extra list. 1) Small Memory Optimization For eg. if there are 20000 rules, then it will save 625KB(20000*32), which is critical for small embedded systems. 2) Reducing the time taken in writing rules on load/load2 interface 3) Since global rule list is just used to read the rules, so there will be no performance impact on system Signed-off-by: Vishal Goel Signed-off-by: Amit Sahrawat Signed-off-by: Casey Schaufler commit 39226ef02bfb43248b7db12a4fdccb39d95318e3 Author: Josh Poimboeuf Date: Tue Apr 2 10:00:51 2019 -0500 x86/speculation/mds: Add SMT warning message MDS is vulnerable with SMT. Make that clear with a one-time printk whenever SMT first gets enabled. Signed-off-by: Josh Poimboeuf Signed-off-by: Thomas Gleixner Reviewed-by: Tyler Hicks Acked-by: Jiri Kosina commit 7c3658b20194a5b3209a143f63bc9c643c6a3ae2 Author: Josh Poimboeuf Date: Tue Apr 2 10:00:14 2019 -0500 x86/speculation: Move arch_smt_update() call to after mitigation decisions arch_smt_update() now has a dependency on both Spectre v2 and MDS mitigations. Move its initial call to after all the mitigation decisions have been made. Signed-off-by: Josh Poimboeuf Signed-off-by: Thomas Gleixner Reviewed-by: Tyler Hicks Acked-by: Jiri Kosina commit d71eb0ce109a124b0fa714832823b9452f2762cf Author: Josh Poimboeuf Date: Tue Apr 2 09:59:33 2019 -0500 x86/speculation/mds: Add mds=full,nosmt cmdline option Add the mds=full,nosmt cmdline option. This is like mds=full, but with SMT disabled if the CPU is vulnerable. Signed-off-by: Josh Poimboeuf Signed-off-by: Thomas Gleixner Reviewed-by: Tyler Hicks Acked-by: Jiri Kosina commit a35342d0f8b348fad38e6250f9b646b99aa210c7 Author: Sidong Yang Date: Tue Apr 2 12:14:31 2019 +0000 staging: pi433: Return thread immediately when kthread_should_stop() call. When kthread_stop() called by removing module, running thread should return immediately. Otherwise, It is very dangerous that thread may access any released data like struct pi433_device. Signed-off-by: Sidong Yang Signed-off-by: Greg Kroah-Hartman commit e7c3d05459673d21f62a3fd82fa3a1ee6ef8de55 Author: Payal Kshirsagar Date: Tue Apr 2 21:19:04 2019 +0530 staging: iio: adc: ad7816.c: Replace bit shifting with BIT macro Challenge suggested by coccinelle. Prefer using BIT and replace bit shifting with the BIT(x) macro. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 6082ac0412a6f8cb9562234256a69587eff450bb Author: Payal Kshirsagar Date: Tue Apr 2 21:11:25 2019 +0530 staging: iio: impedance-analyzer: ad5933.c: Replace bit shifting with BIT macro Challenge suggested by coccinelle. Prefer using BIT and replace bit shifting with the BIT(x) macro. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 58ff7e7aaa513a3aad257d2a083586f3b3fdb6df Author: Payal Kshirsagar Date: Tue Apr 2 20:54:13 2019 +0530 staging: rtl8712: rtl871x_mlme.c: use !x in place of NULL comparison Challenge suggested by coccinelle. Avoid NULL comparison, compare using boolean operator. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit ab6426e3353ac9731f92218ccf4f36bb8d933407 Author: Payal Kshirsagar Date: Tue Apr 2 20:24:54 2019 +0530 staging: emxx_udc: emxx_udc.c: Replace bit shifting with BIT macro Challenge suggested by coccinelle. Prefer using BIT and replace bit shifting with the BIT(x) macro. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 36cbd6851d57bcdd3500bbcc3b98ea16f81939ca Author: Payal Kshirsagar Date: Tue Apr 2 20:07:44 2019 +0530 staging: fbtft: fb_ssd1351.c: Replace bit shifting with BIT macro Challenge suggested by coccinelle. Prefer using BIT and replace bit shifting with the BIT(x) macro. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 46a49a52d1c0e760a39ca0be56ce8a71f5661393 Author: Payal Kshirsagar Date: Tue Apr 2 20:07:43 2019 +0530 staging: fbtft: fb_agm1264k-fl.c: Replace bit shifting with BIT macro Challenge suggested by coccinelle. Prefer using BIT and replace bit shifting with the BIT(x) macro. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit a3b3e835d6caf31aa763a400db2dbae2c7c396fe Author: Payal Kshirsagar Date: Tue Apr 2 19:47:29 2019 +0530 staging: rtlwifi: base.c: Replace bit shifting with BIT macro Challenge suggested by coccinelle. Prefer using BIT and replace bit shifting with the BIT(x) macro and remove cast. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit f36fa2d94b3d79f1c73ea72bd85a270094499e17 Author: Payal Kshirsagar Date: Tue Apr 2 19:47:28 2019 +0530 staging: rtl8723bs: core: Replace bit shifting with BIT macro Challenge suggested by coccinelle. Prefer using BIT and replace bit shifting with the BIT(x) macro. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 37b299c7c49acffa675c61018132e6de4f88a1ed Author: Payal Kshirsagar Date: Tue Apr 2 18:58:34 2019 +0530 staging: rtl8192u: ieee80211: ieee80211_crypt_tkip.c: Replace bit shifting with BIT macro Challenge suggested by coccinelle. Prefer using BIT and replace bit shifting with the BIT(x) macro. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 9f383969ae908d48f52ba61403734858a6dc674f Author: Payal Kshirsagar Date: Tue Apr 2 18:58:33 2019 +0530 staging: rtl8192u: ieee80211: ieee80211_crypt_ccmp.c: Replace bit shifting with BIT macro Challenge suggested by coccinelle. Prefer using BIT and replace bit shifting with the BIT(x) macro. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 9361076277c04720a4e546d076b0effc3feef1e1 Author: Payal Kshirsagar Date: Tue Apr 2 18:58:32 2019 +0530 staging: rtl8192u: ieee80211: ieee80211_rx.c: Replace bit shifting with BIT macro Challenge suggested by coccinelle. Prefer using BIT and replace bit shifting with the BIT(x) macro. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 6d670497e01803b486aa72cc1a718401ab986896 Author: Dan Carpenter Date: Tue Apr 2 09:53:14 2019 +0300 openvswitch: use after free in __ovs_ct_free_action() We free "ct_info->ct" and then use it on the next line when we pass it to nf_ct_destroy_timeout(). This patch swaps the order to avoid the use after free. Fixes: 06bd2bdf19d2 ("openvswitch: Add timeout support to ct action") Signed-off-by: Dan Carpenter Acked-by: Yi-Hung Wei Signed-off-by: David S. Miller commit f0dfecc93a60d6ac2acae886103ee0449a25a9c9 Author: Jon Maxwell Date: Tue Apr 2 16:07:56 2019 +1100 tg3: allow ethtool -p to work for NICs in down state Make tg3 behave like other drivers and let "ethtool -p" identify the NIC even when it's in the DOWN state. Before this patch it would get an error as follows if the NIC was down: # ip link set down dev em4 # ethtool -p em4 Cannot identify NIC: Resource temporarily unavailable With this patch ethtool identify works regardless of whether the NIC is up or down as it does for other drivers. Signed-off-by: Jon Maxwell Acked-by: Michael Chan Signed-off-by: David S. Miller commit 005fb2de9a8a2074a75923000b922bad9124cb32 Author: Madhumitha Prabakaran Date: Tue Apr 2 09:37:33 2019 -0500 Staging: rtl8723bs: Remove typedef in struct dynamic_primary_CCA Remove typedef in struct dynamic_primary_CCA, as a struct that has elements that can reasonably be directly accessed should never be a typedef. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit fa8e35c70a62db32a92a97601e6e596cbad78f33 Author: Nishka Dasgupta Date: Tue Apr 2 14:12:26 2019 +0530 staging: rtlwifi: rtl8822be: Remove functions Remove functions _rtl8822be_set_fw_ps_rf_on and rtl8822be_fw_clk_off_timer_callback as they do not appear in the results of `git grep` and the driver can be compiled without them. Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit 5e3ec254e086f348346df3f00a6d372defd10d4e Author: Jonathan Corbet Date: Tue Apr 2 09:58:08 2019 -0600 docs: Fix a build error in coding-style.rst A reference typo caused an unsightly build error; fix it. Signed-off-by: Jonathan Corbet commit d005aa750c9b7ca7f77dafd6dda33a0fcb6e7ae3 Author: Randy Dunlap Date: Tue Apr 2 08:20:08 2019 -0700 reset: fix linux/reset.h errors The header file uses errno constant(s) and the ERR_PTR() macro but does not #include the appropriate header files that provide those facilities, so add 2 header files to fix build errors. CC [M] drivers/gpu/drm/lima/lima_device.o In file included from ../drivers/gpu/drm/lima/lima_device.c:5:0: ../include/linux/reset.h: In function ‘__device_reset’: ../include/linux/reset.h:77:25: error: ‘ENOTSUPP’ undeclared (first use in this function) return optional ? 0 : -ENOTSUPP; ../include/linux/reset.h:77:25: note: each undeclared identifier is reported only once for each function it appears in ../include/linux/reset.h: In function ‘__of_reset_control_get’: ../include/linux/reset.h:85:36: error: ‘ENOTSUPP’ undeclared (first use in this function) return optional ? NULL : ERR_PTR(-ENOTSUPP); ../include/linux/reset.h: In function ‘__reset_control_get’: ../include/linux/reset.h:93:36: error: ‘ENOTSUPP’ undeclared (first use in this function) return optional ? NULL : ERR_PTR(-ENOTSUPP); ../include/linux/reset.h: In function ‘__devm_reset_control_get’: ../include/linux/reset.h:101:36: error: ‘ENOTSUPP’ undeclared (first use in this function) return optional ? NULL : ERR_PTR(-ENOTSUPP); ../include/linux/reset.h: In function ‘devm_reset_control_array_get’: ../include/linux/reset.h:107:36: error: ‘ENOTSUPP’ undeclared (first use in this function) return optional ? NULL : ERR_PTR(-ENOTSUPP); ../include/linux/reset.h: In function ‘of_reset_control_array_get’: ../include/linux/reset.h:114:36: error: ‘ENOTSUPP’ undeclared (first use in this function) return optional ? NULL : ERR_PTR(-ENOTSUPP); In file included from ../drivers/gpu/drm/lima/lima_device.c:5:0: ../include/linux/reset.h: In function ‘__devm_reset_control_get’: ../include/linux/reset.h:102:1: warning: control reaches end of non-void function [-Wreturn-type] } Signed-off-by: Randy Dunlap Signed-off-by: Philipp Zabel commit e84549146e6869e8697a463ff9ab3da2b2fb6fac Author: Alex Shi Date: Mon Apr 1 22:45:06 2019 +0800 docs/zh_CN: add Alex Shi as Chinese documentation maintainer It's kind of fun to learn and tranlate kernel docs into Chinese. I'd like to help people on this work. And willing to be the 'blamed' people if sth wrong in this area. :) Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Greg Kroah-Hartman Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit ae7e727681006891c40a66c633f7cdeb1df1ed6a Author: Alex Shi Date: Mon Apr 1 22:45:05 2019 +0800 docs/zh_CN: correct the disclaimer file The original disclaimer remind people to get help from the specific Chinese doc maintainers. But there are lots docs has no 'specific maintainers' and some of maintainer doesn't updated the docs for years. So replace the Chinese word maintainer with translator. That's more precise for these people's role of their docs. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 8cd43e35f345cb889ab94ed2fef524ce9bc947a5 Author: Alex Shi Date: Mon Apr 1 22:45:04 2019 +0800 docs/zh_CN: redirect coding-sytle to Chinese version It's time to link the doc into Chinese version. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Federico Vaga Cc: SeongJae Park Cc: Tom Levy Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit efd298e4afddbb52228ca5c1633e53c984cc785b Author: Alex Shi Date: Mon Apr 1 22:45:03 2019 +0800 docs/zh_CN: update coding-sytle.rst Replace the disclaimer part and give the link name of this file: cn_codingsytle. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Bart Van Assche Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit f5acf9397b5d89de170ec738bc59fadee615a220 Author: Alex Shi Date: Mon Apr 1 22:45:02 2019 +0800 docs/zh_CN: redirect stable-api-nonsense to Chinese version It's time to redirect it to Chinese version. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Federico Vaga Cc: SeongJae Park Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit a8f49dc4251820a8f41ebd5b97ba78b918616260 Author: Alex Shi Date: Mon Apr 1 22:45:01 2019 +0800 docs/zh_CN: Cleanup stable-api-nonscense in Chinese remove the duplicated disclaimers and maintainers info. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 9b73a0e90324ec9792635acce0509ed74d60a7cc Author: Alex Shi Date: Mon Apr 1 22:45:00 2019 +0800 docs/zh_CN: redirect management-style to Chinese one It's time to redirect the link to Chinese version. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Federico Vaga Cc: SeongJae Park Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit e97f5f2fd763a835895ee9117141f8e7c0b01680 Author: Alex Shi Date: Mon Apr 1 22:44:59 2019 +0800 docs/zh_CN: link management-style into process/index Now we could find it's link after 'make htmldocs' etc. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit c4b3b4383322d4e5abb6b3b1dde1d131e823e8e4 Author: Alex Shi Date: Mon Apr 1 22:44:58 2019 +0800 docs/zh_CN: add disclaimer and translator info in management-style Credit the translator. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit f1ab43760e1c1c8e11da23f8ceb4744e4abcb74c Author: Alex Shi Date: Mon Apr 1 22:44:57 2019 +0800 docs/zh_CN: add management-style.rst in Chinese It's a enjoy to read and translate this doc, although I cann't find the original author from git history -- it came with 2.6.12-rc2, the initial git repo. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit d5187f5c1c0e829ecd7c143196a1a9c447f7ac2d Author: Alex Shi Date: Mon Apr 1 22:44:56 2019 +0800 docs/zh_CN: redirect the email-clients link to Chinese version Since we update the email-clients docs to latest version, it's time to redirect it in Chinese version. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Tom Levy Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit eebfcbbe4beba5308cf1122ede4a76b5e4df1508 Author: Alex Shi Date: Mon Apr 1 22:44:55 2019 +0800 docs/zh_CN: add Alex into translator in email-clients Give the credit/responsiblity to translator Alex. Also remove the duplicate part of disclaimer. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit bb08dbb36a7ad0a7d68f111bbffce4dd92b0ca75 Author: Alex Shi Date: Mon Apr 1 22:44:54 2019 +0800 docs/zh_CN: Update mutt setting info in email-clients Update mutt setting info into Chinese. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 4ed38de756c9e7562ce313e21148a4d877ab861f Author: Alex Shi Date: Mon Apr 1 22:44:53 2019 +0800 docs/zh_CN: add git setting in email-clients Add the Chinese translation of git in email-clients file Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit b307d9bdf17a0942fb839e7e1dc4fb8f3d251669 Author: Alex Shi Date: Mon Apr 1 22:44:52 2019 +0800 docs/zh_CN: add disclaimer and translator info into programming-language add disclaimer and translator info into programming-language.rst file Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 98a5c9fce71247987ad03cb3e7fd2ce2ff8bbf9f Author: Alex Shi Date: Mon Apr 1 22:44:51 2019 +0800 docs/zh_CN: link programming-language into process/index It could be found in index now. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit edf30385b686b9b1cc5694fa19506aa89fe27b25 Author: Alex Shi Date: Mon Apr 1 22:44:50 2019 +0800 docs/zh_CN: add programming-language.rst Now we have this file in Chinese. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 08075b0b1104d630621899840013ec94634774cb Author: Alex Shi Date: Mon Apr 1 22:44:49 2019 +0800 docs/zh_CN: update co-developed-by info after English version commit 24a2bb90741b ("docs: Clarify the usage and sign-off requirements for Co-developed-by") give more info of co-developed-by tag usage. update Chinese docs to follow it. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Tom Levy Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit c0099c97dabaf68442502ce3af570d2df137eeaa Author: Alex Shi Date: Mon Apr 1 22:44:48 2019 +0800 docs/zh_CN: redirect submit-checklist Now we has the Chinese version submit-checklist, so redirect it in Chinese docs. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Tom Levy Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 6db147a8bb89f62304ce5f0b30bf80ce9b2ea7cb Author: Alex Shi Date: Mon Apr 1 22:44:47 2019 +0800 docs/zh_CN: redirect the submitting-patches to Chinese doc Now we have latest Chinese version submitting-patches.rst, it's time to use it in other docs. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Federico Vaga Cc: SeongJae Park Cc: James Morris Cc: Mauro Carvalho Chehab Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 1cc9990f528ddae93c25d454dbf8e38336cfde12 Author: Alex Shi Date: Mon Apr 1 22:44:46 2019 +0800 docs/zh_CN: update translator info in submitting-patches Add Alex as the 2nd translator, and remove duplicated infos. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Tom Levy Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 62130affd7b30cce7f67f066922def351ba31aa4 Author: Alex Shi Date: Mon Apr 1 22:44:45 2019 +0800 docs/zh_CN: update to latest submitting-patches.rst Updated huge changes for this docs. Seems we forget this for decades. And use local stub to pointer this Chinese docs. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Tom Levy Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 5ada65696c7f6821e3cf5ed7e1a10183d10256dd Author: Alex Shi Date: Mon Apr 1 22:44:44 2019 +0800 docs/zh_CN: redirect howto.rst link to Chinese version The howto doc is translated from latest version. Now it's time to point the link to it. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit da6cfbf90d033f8aed3118a2ff5c3701cc9b4db4 Author: Alex Shi Date: Mon Apr 1 22:44:43 2019 +0800 docs/zh_CN: redirect license-rules to Chinese doc The latest license-rules.rst was translated into Chinese. So it's time to set a link for it. Also fix typos around SPDX. Signed-off-by: Alex Shi Signed-off-by: Dust Li Cc: Harry Wei Cc: Jonathan Corbet Cc: Federico Vaga Cc: SeongJae Park Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 56d75cc22dc15f6e2b7aa6da0f833da10fc7baab Author: Alex Shi Date: Mon Apr 1 22:44:42 2019 +0800 docs/zh_CN: update translator info and comments in howto Since we has disclaimer, don't need duplicate comments. Add myself into translators. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Federico Vaga Cc: SeongJae Park Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 40d93e4961800b5a7b047f0c8585f0eb8a85e2e3 Author: Alex Shi Date: Mon Apr 1 22:44:41 2019 +0800 docs/zh_CN: update howto.rst to latest version This removed the obsolete 2.6.x examples, sub-system tree and updated some links/items following latest Englisht version howto Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Federico Vaga Cc: SeongJae Park Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 973a9f6c70de96337926fc045546cf5d48365cc4 Author: Alex Shi Date: Mon Apr 1 22:44:40 2019 +0800 docs/zh_CN: fix link issue in howto.rst Now we could follow links in created html files. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Federico Vaga Cc: SeongJae Park Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit d0373af462d77cbe1543b25134541efa1152c1e2 Author: Alex Shi Date: Mon Apr 1 22:44:39 2019 +0800 docs/zh_CN: link CoC interpretation into index So people could be easy to find it. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 883992a6052f16881c8c895c0c61161dcdeed0ae Author: Alex Shi Date: Mon Apr 1 22:44:38 2019 +0800 docs/zh_CN: add disclaim and translator into CoC interp That's give translator credit and a way for complain Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 60bef260f66390cc82c2426c984535ff2de4a488 Author: Alex Shi Date: Mon Apr 1 22:44:37 2019 +0800 docs/zh_CN: add CoC interpretation Translated CoC interpretation into Chinese Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit c670321486934e03867563e2019bddb411684c54 Author: Alex Shi Date: Mon Apr 1 22:44:36 2019 +0800 docs/zh_CN: link the CoC into process/index Let it appears in html links. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 7f2ac11bd4fe1b511ae1feb838cf64d82bb57302 Author: Alex Shi Date: Mon Apr 1 22:44:35 2019 +0800 docs/zh_CN: add disclaimer and translator info in CoC Give the translator credit and a way people to share complain. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 27a0f904348a8ab89510858f6b21b65df465ee3f Author: Alex Shi Date: Mon Apr 1 22:44:34 2019 +0800 docs/zh_CN: add CoC doc Translated code-of-conduct doc in Chinese. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 1ea0d2a3c812864537eb53a52c78d9b398ae1327 Author: Alex Shi Date: Mon Apr 1 22:44:33 2019 +0800 docs/zh_CN: link the submit-checklist into process/index That's helpful to let people find it in process/index.html. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit e1d0ceca8c093cf2e8fa7b226222246732d28a26 Author: Alex Shi Date: Mon Apr 1 22:44:32 2019 +0800 docs/zh_CN: add disclaimer and transtlator info in submit-checklist Credit the translator and get a way for people to complain. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 3cabb71cdc61e0502be5e8543b8d111ad519a7e6 Author: Alex Shi Date: Mon Apr 1 22:44:31 2019 +0800 docs/zh_CN: add submit-checklist file Now it appears in 'make htmldocs' in Chinese version. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 2ca130147131f0c02c5e6e44eadb09f3d8f9f4b0 Author: Alex Shi Date: Mon Apr 1 22:44:30 2019 +0800 docs/zh_CN: link the license-rules file into process index Make it appear in 'make htmldocs' Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit d355a5a4c69a006e17026d10751d3010dd30c798 Author: Alex Shi Date: Mon Apr 1 22:44:29 2019 +0800 docs/zh_CN: include Chinese translation header for license-rules Enable the Chinese translation disclaimer and translator info. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 7c0a4a0a59a67c8f5711c48a25e5cc74a2823b45 Author: Alex Shi Date: Mon Apr 1 22:44:28 2019 +0800 docs/zh_CN: fix links failure in license-rules rST doc uses backquote `` to mark a link, which need a space before and after the backquote sign in Chinese docs. Otherwise the link will be translated as common context. Use this patch to highlight this request. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 173584cbdc289a13918071737589787d039df5fd Author: Alex Shi Date: Mon Apr 1 22:44:27 2019 +0800 docs/zh_CN: add license-rules Chinese translation This is the first version of license-rules Chinese translation Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit cc5844ee781a2e93f3ec6d459bbee4017417cd55 Author: Alex Shi Date: Mon Apr 1 22:44:26 2019 +0800 docs/zh_CN: add disclaimer and translator info in 8.Conclusion Give people a link to send comments. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit b68a32258f3aa8ddfd36f38a52641bf89439fbe6 Author: Alex Shi Date: Mon Apr 1 22:44:25 2019 +0800 docs/zh_CN: add 8.Conclusion.rst in development-process Now, the full developmen-process doc appears in 'make htmldocs' in Chinese. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit ca30230dd44a5ba99f0dadd7271f15ea9ffb5429 Author: Alex Shi Date: Mon Apr 1 22:44:24 2019 +0800 docs/zh_CN: add disclaimer and translator info in 7.Advancedtopics To let people know where to give comments. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 455d59d30196b7e778b128019f43a1972585ecb7 Author: Alex Shi Date: Mon Apr 1 22:44:23 2019 +0800 docs/zh_CN: translate 7.AdvanceTopics.rst This is the 7th doc of development-process. Now we could get Chinese version in 'make htmldocs'. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 13ea8294480bd8c837b43d67110eac19146da735 Author: Alex Shi Date: Mon Apr 1 22:44:22 2019 +0800 docs/zh_CN: add disclaimer and translator info in 6.Followthrough To let people know where to complain. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 3b12cfded0a608fec634a62e183e25a9ba0f5bb5 Author: Alex Shi Date: Mon Apr 1 22:44:21 2019 +0800 docs/zh_CN: add the 6th doc 6.Followthrought.rst Now the doc could be found with 'make htmldocs' in Chinese. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit c9300515f0a068b42e3c68776f625c4c7ba07a52 Author: Alex Shi Date: Mon Apr 1 22:44:20 2019 +0800 docs/zh_CN: add disclaimer and translator info in 5.Posting To give way for people's comments Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit ea09bbd4ce77dd89cdc8e2ee0b2bf469e59d4967 Author: Alex Shi Date: Mon Apr 1 22:44:19 2019 +0800 docs/zh_CN: add 5.Posting.rst into development-process Since the doc stub was mentained in development-process.rst, it will appears in 'make htmldocs'. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit c654ddd8ba911dc0b436743f29d2abc1645aa58d Author: Alex Shi Date: Mon Apr 1 22:44:18 2019 +0800 docs/zh_CN: add disclaimer and translator info in 4.Coding To let people know where to complain. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 513b308378a808c719ffaa77d95dfc91624db9e4 Author: Alex Shi Date: Mon Apr 1 22:44:17 2019 +0800 docs/zh_CN: add 4.Coding.rst The file was translated and could be found in developement-process Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 7c691d647c2ae0bb945586501826dc0ede3aa99c Author: Alex Shi Date: Mon Apr 1 22:44:16 2019 +0800 docs/zh_CN: add disclaimer/translator info in 3.Early-stage For people reviewing/complain. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 2c573b189ac11ca91b0613bf1d18a917a8c9b068 Author: Alex Shi Date: Mon Apr 1 22:44:15 2019 +0800 docs/zh_CN: translate 3.Early-stage of development process Now it is ready to appear in 'make htmldocs' Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit a42d71ee6fd455285a41b22731e129c78950b753 Author: Alex Shi Date: Mon Apr 1 22:44:14 2019 +0800 docs/zh_CN: add disclaimer and translator info in 2.Process Now people know where to complain :). Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 061ea8c3e876c46088d04ae2f5f87159c2e08c23 Author: Alex Shi Date: Mon Apr 1 22:44:13 2019 +0800 docs/zh_CN: add 2.Process.rst for development-process New it's done. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 4a6c7b428dbbff744e29cf28288ef5442a72beed Author: Alex Shi Date: Mon Apr 1 22:44:12 2019 +0800 docs/zh_CN: add disclaimer and translator info into 1.Intro So people know where to complain if the transolation isn't good. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 6c8d1355951f1ece4199b0990454aee0286f1837 Author: Alex Shi Date: Mon Apr 1 22:44:11 2019 +0800 docs/zh_CN: add Chinese 1.Intro file This is the Chinese version of 1.Intro.rst file. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 7fe1fde5d7a0e81248a672d7acab3fc7ecf12625 Author: Alex Shi Date: Mon Apr 1 22:44:10 2019 +0800 docs/zh_CN: link development-process into process index Then this doc could be find via process index. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit cc789dca4e582e6b61d87eff09b97b2514cdab0c Author: Alex Shi Date: Mon Apr 1 22:44:09 2019 +0800 docs/zh_CN: add disclaimer and translator info in development-process Add disclaimer and translator info into development process doc Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit 9aacb03d05a5e4e1ce5e14696b523904773bc51d Author: Alex Shi Date: Mon Apr 1 22:44:08 2019 +0800 docs/zh_CN: translate development-process into Chinese Start development process translation. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: linux-doc@vger.kernel.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Jonathan Corbet commit d358b1733fc33d9f0261ce07c3d328787652245d Author: Chengguang Xu Date: Fri Feb 15 20:27:14 2019 +0800 chardev: update comment based on the code The function comment of __register_chrdev_region() is out of date, so update it based on the code. Signed-off-by: Chengguang Xu Signed-off-by: Greg Kroah-Hartman commit 4b0be572603233b4240f6072f0bd35542d311ed8 Author: Chengguang Xu Date: Fri Feb 15 20:27:13 2019 +0800 chardev: code cleanup for __register_chrdev_region() It's just code cleanup, not functional change. Signed-off-by: Chengguang Xu Signed-off-by: Greg Kroah-Hartman commit 4712d3796f19b32241b41e538107fb7ae7a3fcff Author: Chengguang Xu Date: Fri Feb 15 20:27:12 2019 +0800 chardev: add a check for given minor range register_chrdev_region() carefully checks minor range before calling __register_chrdev_region() but there is another path from alloc_chrdev_region() which does not check the range properly. So add a check for given minor range in __register_chrdev_region(). Signed-off-by: Chengguang Xu Signed-off-by: Greg Kroah-Hartman commit de36e16d1557a0b6eb328bc3516359a12ba5c25c Author: Chengguang Xu Date: Fri Feb 15 20:27:11 2019 +0800 chardev: add additional check for minor range overlap Current overlap checking cannot correctly handle a case which is baseminor < existing baseminor && baseminor + minorct > existing baseminor + minorct. Signed-off-by: Chengguang Xu Signed-off-by: Greg Kroah-Hartman commit fad9fab975cb9fae651854c811cb07a30bc2b98a Author: Thor Thayer Date: Tue Apr 2 17:40:56 2019 +0200 EDAC/altera, firmware/intel: Add Stratix10 ECC DBE SMC call Reserve ECC Double Bit Error SMC call to alert U-Boot that a DBE has occurred. Move the call from local EDAC header file to a common header. [ bp: Merge the two patches. ] Signed-off-by: Thor Thayer Signed-off-by: Borislav Petkov Reviewed-by: Richard Gong Reviewed-by: Alan Tull # firmware Cc: Greg KH Cc: James Morse Cc: linux-edac Cc: mchehab@kernel.org Link: https://lkml.kernel.org/r/1553870639-23895-1-git-send-email-thor.thayer@linux.intel.com Signed-off-by: Borislav Petkov commit 9dc20113988b9a75ea6b3abd68dc45e2d73ccdab Author: Yifeng Li Date: Tue Apr 2 17:14:10 2019 +0200 fbdev: sm712fb: fix memory frequency by avoiding a switch/case fallthrough A fallthrough in switch/case was introduced in f627caf55b8e ("fbdev: sm712fb: fix crashes and garbled display during DPMS modesetting"), due to my copy-paste error, which would cause the memory clock frequency for SM720 to be programmed to SM712. Since it only reprograms the clock to a different frequency, it's only a benign issue without visible side-effect, so it also evaded Sudip Mukherjee's code review and regression tests. scripts/checkpatch.pl also failed to discover the issue, possibly due to nested switch statements. This issue was found by Stephen Rothwell by building linux-next with -Wimplicit-fallthrough. Reported-by: Stephen Rothwell Fixes: f627caf55b8e ("fbdev: sm712fb: fix crashes and garbled display during DPMS modesetting") Signed-off-by: Yifeng Li Cc: Sudip Mukherjee Cc: "Gustavo A. R. Silva" Cc: Kees Cook Signed-off-by: Bartlomiej Zolnierkiewicz commit 9a41691e5e01ba38865afa7a1eaa352974bf4a6e Author: Vishnu DASA Date: Mon Mar 11 23:19:42 2019 +0000 VMCI: Use BIT() macro for bit definitions No functional changes, cleanup only. Reviewed-by: Adit Ranadive Reviewed-by: Jorgen Hansen Signed-off-by: Vishnu Dasa Signed-off-by: Greg Kroah-Hartman commit a025a18fecd4429f4ca66b1746001263c052ecbb Author: Hans de Goede Date: Tue Apr 2 16:18:46 2019 +0200 HID: core: Call request_module before doing device_add Recent kernels allow the generic-hid driver to be used as fallback for devices with a specialized driver, when the hiddev is not listed in hid_have_special_driver. Over time we are removing more and more devices from the hid_have_special_driver table as devices get tested to support this setup. Before this commit the following happens when a HID device which has a special-driver and is no longer listed in hid_have_special_driver, gets enumerated: 1) device_add() gets called 2) bus_add_device() looks for a matching already registered hid driver, and bind hid-generic to the new device 3) kobject_uevent(&dev->kobj, KOBJ_ADD) gets called notifying userspace of the new hid_dev. udev calls modprobe based on the modalias in the uevent 4) The special driver gets loaded by modprobe 5) __hid_bus_reprobe_drivers() unbinds hid-generic and binds the new driver There are a couple of downsides to this: a) The probing messages printend when a HID driver bounds show up twice in dmesg, which is confusing for the user b) The (un)binding typically causes one or more evdev device-nodes to get (un)registered firing of udev events to which e.g. the xserver responds by (un)registering xinput devices and reporting this to interested clients. IOW the i. bind generic, ii. unbind generic, iii. bind special driver dance sets in motion a whole chain of events each step, while we really only want the events from step iii. to be reported to userspace. This commits introduces a request_module call before the device_add() call, so that the special-driver is loaded when step 2) looks for a matching driver and we directly bind the specialized driver. Note the request_module call translates to an execve("/sbin/modprobe", ...) and we now do this for each HID device added. So this is not entirely free, but adding HID devices is not something which happens 100s of times a second, so this should be fine. Signed-off-by: Hans de Goede [bentiss: fixed typo in commit message found by checkpatch.pl] Signed-off-by: Benjamin Tissoires commit 7881e6057586b0bdaaffef13d9f88c95a86ba484 Author: Chris Wilson Date: Mon Apr 1 17:26:41 2019 +0100 drm/i915: Only emit one semaphore per request Ideally we only need one semaphore per ring to accommodate waiting on multiple engines in parallel. However, since we do not know which fences we will finally be waiting on, we emit a semaphore for every fence. It turns out to be quite easy to trick ourselves into exhausting our ringbuffer causing an error, just by feeding in a batch that depends on several thousand contexts. Since we never can be waiting on more than one semaphore in parallel (other than perhaps the desire to busywait on multiple engines), just pick the first fence for our semaphore. If we pick the wrong fence to busywait on, we just miss an opportunity to reduce latency. An adaption might be to use sched.flags as either a semaphore counter, or to track the first busywait on each engine, converting it back to a single use bit prior to closing the request. v2: Track first semaphore used per-engine (this caters for our basic igt that semaphores are working). Reported-by: Mika Kuoppala Testcase: igt/gem_exec_fence/long-history Fixes: e88619646971 ("drm/i915: Use HW semaphores for inter-engine synchronisation on gen8+") Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Cc: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190401162641.10963-3-chris@chris-wilson.co.uk Reviewed-by: Tvrtko Ursulin commit 8b74594aa45506ea6de9f827cfb2865718fa210e Author: Chris Wilson Date: Mon Apr 1 17:26:40 2019 +0100 drm/i915: Split out i915_priolist_types into its own header For more intel_engine_mask_t detangling. This time so that we can use intel_engine_mask_t inside the scheduling structs. Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190401162641.10963-2-chris@chris-wilson.co.uk Reviewed-by: Tvrtko Ursulin commit a9a49c2ad9b9b8ee20668c15ca2b806dbed8ea40 Author: Masahiro Yamada Date: Sat Mar 30 21:04:17 2019 +0900 kbuild: use $(srctree) instead of KBUILD_SRC to check out-of-tree build KBUILD_SRC was conventionally used for some different purposes: [1] To remember the source tree path [2] As a flag to check if sub-make is already done [3] As a flag to check if Kbuild runs out of tree For [1], we do not need to remember it because the top Makefile can compute it by $(realpath $(dir $(lastword $(MAKEFILE_LIST)))) [2] has been replaced with self-commenting 'sub_make_done'. For [3], we can distinguish in-tree/out-of-tree by comparing $(srctree) and '.' This commit converts [3] to prepare for the KBUILD_SRC removal. Signed-off-by: Masahiro Yamada commit 48b5ffd1268788afb01525e71e864e901e9aa070 Author: Masahiro Yamada Date: Sat Mar 30 21:04:16 2019 +0900 kbuild: mkmakefile: generate a simple wrapper of top Makefile Now that Kbuild is able to start from any directory, the generated Makefile can simply wrap the top Makefile. Signed-off-by: Masahiro Yamada Reviewed-by: Kieran Bingham commit e07cf4fd7d72546bf46279927b28fe9d74308868 Author: Masahiro Yamada Date: Sat Mar 30 21:04:15 2019 +0900 kbuild: mkmakefile: do not check the generated Makefile marker This hunk was added to avoid accidental overwrite of the top Makefile in case O= points to the top of the source tree. As commit 4f1127e20437 ("kbuild: fix infinite make recursion"), it caused some troubles in the past because Kbuild assumes O= as out-of-tree build, while it actually works in the source tree. Now this works more properly; if O= points to the source directory, it is handled as in-tree build. So, this sanity check is unneeded. Signed-off-by: Masahiro Yamada commit 25b146c5b8ceecd43c311552d325a4e403c639f2 Author: Masahiro Yamada Date: Sat Mar 30 21:04:14 2019 +0900 kbuild: allow Kbuild to start from any directory Kbuild always runs in the top of the output directory. If Make starts in the source directory with O=, it relocates the working directory to the location specified by O=. Also, users can start build from the output directory by using the Makefile generated by scripts/mkmakefile. With a little more effort, Kbuild will be able to start from any directory path. This commit allows to specify the source directory by using the -f option. For example, you can do: $ cd path/to/output/dir $ make -f path/to/source/dir/Makefile Or, for the equivalent behavior, you can do: $ make O=path/to/output/dir -f path/to/source/dir/Makefile KBUILD_SRC is now deprecated. Signed-off-by: Masahiro Yamada Reviewed-by: Kieran Bingham commit 7a65bdc6903d4cae56855eceabfd8f879a3b8f6e Author: Alex Deucher Date: Fri Mar 29 14:14:10 2019 -0500 drm/amdgpu/smu11: fix warning on 32bit arches Fixes warning: cast from pointer to integer of different size [-Wpointer-to-int-cast] on 32 bit platforms. Reviewed-by: Tao Zhou Signed-off-by: Alex Deucher commit 58e75155009cc800005629955d3482f36a1e0eec Author: Nicolas Saenz Julienne Date: Wed Mar 27 11:18:48 2019 +0100 HID: core: move Usage Page concatenation to Main item As seen on some USB wireless keyboards manufactured by Primax, the HID parser was using some assumptions that are not always true. In this case it's s the fact that, inside the scope of a main item, an Usage Page will always precede an Usage. The spec is not pretty clear as 6.2.2.7 states "Any usage that follows is interpreted as a Usage ID and concatenated with the Usage Page". While 6.2.2.8 states "When the parser encounters a main item it concatenates the last declared Usage Page with a Usage to form a complete usage value." Being somewhat contradictory it was decided to match Window's implementation, which follows 6.2.2.8. In summary, the patch moves the Usage Page concatenation from the local item parsing function to the main item parsing function. Signed-off-by: Nicolas Saenz Julienne Reviewed-by: Terry Junge Signed-off-by: Benjamin Tissoires commit 3a891a62679424e5625a551b9af9c33af6ea59b3 Author: Chris Wilson Date: Mon Apr 1 17:26:39 2019 +0100 drm/i915: Move intel_engine_mask_t around for use by i915_request_types.h We want to use intel_engine_mask_t inside i915_request.h, which means extracting it from the general header file mess and placing it inside a types.h. A knock on effect is that the compiler wants to warn about type-contraction of ALL_ENGINES into intel_engine_maskt_t, so prepare for the worst. v2: Use intel_engine_mask_t consistently v3: Move I915_NUM_ENGINES to its natural home at the end of the enum Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Cc: Mika Kuoppala Cc: John Harrison Link: https://patchwork.freedesktop.org/patch/msgid/20190401162641.10963-1-chris@chris-wilson.co.uk Reviewed-by: Tvrtko Ursulin commit 491a3e883cef93acbbe3d68189892150537ed607 Author: Jonathan Neuschäfer Date: Mon Apr 1 00:34:22 2019 +0200 Documentation: soundwire: Ensure that code is inside the code blocks The way the document is written now, Sphinx renders empty code blocks followed by the lines that should be inside them. Unindent the code-block directives to fix this. Signed-off-by: Jonathan Neuschäfer Signed-off-by: Jonathan Corbet commit 4022ab4fc17d6b9b8107214125670059b53fa76e Author: Jonathan Neuschäfer Date: Sun Mar 31 23:41:58 2019 +0200 docs: core-api: Drop reference to flexible-arrays This file doesn't exist anymore. Fixes: 586187d7de71 ("Drop flex_arrays") Reviewed-by: Mukesh Ojha Signed-off-by: Jonathan Neuschäfer Signed-off-by: Jonathan Corbet commit 5ee23456041a95c2236063eeba68236f7ee0af51 Author: Alessia Mantegazza Date: Sat Mar 30 22:19:56 2019 +0100 doc:it_IT: translation for maintainer-pgp-guide It translates the maintainer-pgp-guide in Italian. Signed-off-by: Alessia Mantegazza Signed-off-by: Federico Vaga Signed-off-by: Jonathan Corbet commit 6734b2973565e36659e97e12ab0d0faf1d9f3fbe Author: Leon Romanovsky Date: Tue Mar 19 11:10:08 2019 +0200 RDMA/hns: Fix bad endianess of port_pd variable port_pd is treated as le32 in declaration and read, fix assignment to be in le32 too. This change fixes the following compilation warnings. drivers/infiniband/hw/hns/hns_roce_ah.c:67:24: warning: incorrect type in assignment (different base types) drivers/infiniband/hw/hns/hns_roce_ah.c:67:24: expected restricted __le32 [usertype] port_pd drivers/infiniband/hw/hns/hns_roce_ah.c:67:24: got restricted __be32 [usertype] Fixes: 9a4435375cd1 ("IB/hns: Add driver files for hns RoCE driver") Signed-off-by: Leon Romanovsky Reviewed-by: Gal Pressman Reviewed-by: Lijun Ou Signed-off-by: Jason Gunthorpe commit b01720bfcdf9d4410a2968fac0769246ea3de81b Author: Chris Wilson Date: Mon Apr 1 14:39:09 2019 +0100 drm/i915: Prefault before locking pages in shmem_pwrite If the user passes in a pointer to a GGTT mmaping of the same buffer being written to, we can hit a deadlock in acquiring the shmemfs page (once as the write destination and then as the read source). [<0>] io_schedule+0xd/0x30 [<0>] __lock_page+0x105/0x1b0 [<0>] find_lock_entry+0x55/0x90 [<0>] shmem_getpage_gfp+0xbb/0x800 [<0>] shmem_read_mapping_page_gfp+0x2d/0x50 [<0>] shmem_get_pages+0x158/0x5d0 [i915] [<0>] ____i915_gem_object_get_pages+0x17/0x90 [i915] [<0>] __i915_gem_object_get_pages+0x57/0x70 [i915] [<0>] i915_gem_fault+0x1b4/0x5c0 [i915] [<0>] __do_fault+0x2d/0x80 [<0>] __handle_mm_fault+0xad4/0xfb0 [<0>] handle_mm_fault+0xe6/0x1f0 [<0>] __do_page_fault+0x18f/0x3f0 [<0>] page_fault+0x1b/0x20 [<0>] copy_user_enhanced_fast_string+0x7/0x10 [<0>] _copy_from_user+0x37/0x60 [<0>] shmem_pwrite+0xf0/0x160 [i915] [<0>] i915_gem_pwrite_ioctl+0x14e/0x520 [i915] [<0>] drm_ioctl_kernel+0x81/0xd0 [<0>] drm_ioctl+0x1a7/0x310 [<0>] do_vfs_ioctl+0x88/0x5d0 [<0>] ksys_ioctl+0x35/0x70 [<0>] __x64_sys_ioctl+0x11/0x20 [<0>] do_syscall_64+0x39/0xe0 [<0>] entry_SYSCALL_64_after_hwframe+0x44/0xa9 We can reduce (but not eliminate!) the chance of this happening by faulting the user_data before we take the page lock in pagecache_write_begin(). One way to eliminate the potential recursion here is by disabling pagefaults for the copy, and handling the fallback to use an alternative method -- so convert to use kmap_atomic (which should disable preemption and pagefaulting for the copy) and report ENODEV instead of EFAULT so that our caller tries again with a different copy mechanism -- we already check that the page should have been faultable so a false negative should be rare. Testcase: igt/gem_pwrite/self Signed-off-by: Chris Wilson Cc: Joonas Lahtinen Cc: Matthew Auld Reviewed-by: Matthew Auld Link: https://patchwork.freedesktop.org/patch/msgid/20190401133909.31203-1-chris@chris-wilson.co.uk commit bedd14425d86a8fac6972055dcd7591de21c10be Author: Oded Gabbay Date: Tue Apr 2 15:56:16 2019 +0300 habanalabs: refactoring in goya.c This patch does some refactoring in goya.c to make code more reusable between goya code and the goya simulator code (which is not upstreamed). In addition, the patch removes some dead functions from goya.c which are not used by the current upstream code Signed-off-by: Oded Gabbay commit 90027296adad1e9935a893f1e5973959274fa0d1 Author: Oded Gabbay Date: Wed Apr 3 09:51:04 2019 +0300 uapi/habanalabs: fix some comments in uapi file This patch adds a better explanation about the sequence number that is returned per CS. It also fixes the comment about queue numbering rules. Signed-off-by: Oded Gabbay commit 612625bb96b02c579174e8470eaec289b202001a Author: Maxime Ripard Date: Mon Apr 1 23:13:56 2019 +0200 ARM: dts: sunxi: Remove useless address and size cells The NAND chips in our DTs have address and size cells, even though they don't have any child nodes. Remove them. Reviewed-by: Miquel Raynal Signed-off-by: Maxime Ripard commit c9d10c3e0e6ccdecf1a2a1e618a04c3d1c4f87e7 Author: Maxime Ripard Date: Mon Apr 1 23:13:55 2019 +0200 ARM: dts: sunxi: Conform to DT spec for NAND controller The NAND controller node name should be nand-controller and not nand as we used previously according to the devicetree specification. Let's fix our DTs. Reviewed-by: Miquel Raynal Signed-off-by: Maxime Ripard commit de7b77e5bb9451417ca57f1b6501da654587c048 Author: Josh Poimboeuf Date: Wed Mar 27 07:00:29 2019 -0500 cpu/hotplug: Create SMT sysfs interface for all arches Make the /sys/devices/system/cpu/smt/* files available on all arches, so user space has a consistent way to detect whether SMT is enabled. The 'control' file now shows 'notimplemented' for architectures which don't yet have CONFIG_HOTPLUG_SMT. [ tglx: Make notimplemented a real state ] Signed-off-by: Josh Poimboeuf Signed-off-by: Thomas Gleixner Cc: Andrea Arcangeli Cc: Waiman Long Cc: Peter Zijlstra Cc: Jiri Kosina Link: https://lkml.kernel.org/r/469c2b98055f2c41e75748e06447d592a64080c9.1553635520.git.jpoimboe@redhat.com commit 6d5e2bf9d203e4d9e08ca2e9420c6ff22ad190af Merge: b820d52e7eed 257f9053c020 Author: Mark Brown Date: Tue Apr 2 16:20:47 2019 +0700 Merge branch 'acpi-utils' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm into asoc-5.2 commit e543e0293ca2cd72c7d3a16bdc675c25ed6ce520 Author: Gerd Hoffmann Date: Mon Apr 1 16:03:06 2019 +0200 drm/cirrus: add missing drm_helper_force_disable_all() call. Signed-off-by: Gerd Hoffmann Reviewed-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/20190401140306.28063-4-kraxel@redhat.com commit 175d176a1a6ff247d1aa6c1576e66f79a07da353 Author: Gerd Hoffmann Date: Mon Apr 1 16:03:05 2019 +0200 drm/bochs: add missing drm_atomic_helper_shutdown() call. Signed-off-by: Gerd Hoffmann Reviewed-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/20190401140306.28063-3-kraxel@redhat.com commit 7ff8a316d10b7eca9dbf4bd6aaedb0db1757139d Author: Gerd Hoffmann Date: Mon Apr 1 16:03:04 2019 +0200 drm/virtio: add missing drm_atomic_helper_shutdown() call. Signed-off-by: Gerd Hoffmann Reviewed-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/20190401140306.28063-2-kraxel@redhat.com commit c64546b17bc940643545dd34eac21f51764d633c Author: Harry Pan Date: Mon Feb 25 20:36:43 2019 +0800 PM / sleep: Measure the time of filesystems syncing Measure the filesystems sync time during system sleep more precisely. Among other things, this allows the pr_cont() to be dropped from ksys_sync_helper() and makes automatic system suspend and hibernation profiling somewhat more straightforward. Signed-off-by: Harry Pan [ rjw: Changelog ] Signed-off-by: Rafael J. Wysocki commit b5dee3130bb4014511f5d0dd46855ed843e3fdc8 Author: Harry Pan Date: Mon Feb 25 20:36:41 2019 +0800 PM / sleep: Refactor filesystems sync to reduce duplication Create a common helper to sync filesystems for system suspend and hibernation. Signed-off-by: Harry Pan Acked-by: Pavel Machek [ rjw: Changelog ] Signed-off-by: Rafael J. Wysocki commit 21ab095cbc069a351fa9cef919f2dafc43a8fde7 Author: Sergei Shtylyov Date: Thu Mar 7 22:53:19 2019 +0300 clk: renesas: r8a77980: Fix RPC-IF module clock's parent Testing has shown that the RPC-IF module clock's parent is the RPCD2 clock, not the RPC one -- the RPC-IF register reads stall otherwise... Fixes: 94e3935b5756 ("clk: renesas: r8a77980: Add RPC clocks") Signed-off-by: Sergei Shtylyov Signed-off-by: Geert Uytterhoeven commit 3c14505c68ca6b3b4d5258886e238f2a81729f06 Author: Takeshi Kihara Date: Fri Mar 8 20:53:19 2019 +0900 clk: renesas: rcar-gen3: Rename DRIF clocks According to the R-Car Gen3 Hardware Manual Errata for Rev. 1.50 of Feb 12, 2019, the DRIF clocks have been renamed as follows: DRIF0 to DRIF00 DRIF1 to DRIF01 DRIF2 to DRIF10 DRIF3 to DRIF11 DRIF4 to DRIF20 DRIF5 to DRIF21 DRIF6 to DRIF30 DRIF7 to DRIF31 Therefore, this patch renames the DRIF clocks from DRIFn to DRIFmm. Signed-off-by: Takeshi Kihara Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit b9df2ea2b8d09ad850afe4d4a0403cb23d9e0c02 Author: Takeshi Kihara Date: Fri Sep 28 16:33:06 2018 +0900 clk: renesas: rcar-gen3: Correct parent clock of Audio-DMAC The clock sources of the AXI-bus clock (266.66 MHz) used for Audio-DMAC DMA transfers are: Channel R-Car H3 R-Car M3-W R-Car M3-N R-Car E3 --------------------------------------------------------------- Audio-DMAC0 S1D2 S1D2 S1D2 S1D2 Audio-DMAC1 S1D2 S1D2 S1D2 - As a result, change the parent clocks of the Audio-DMAC{0,1} module clocks on R-Car H3, R-Car M3-W, and R-Car M3-N to S1D2, and change the parent clock of the Audio-DMAC0 module on R-Car E3 to S1D2. NOTE: This information will be reflected in a future revision of the R-Car Gen3 Hardware Manual. Signed-off-by: Takeshi Kihara [geert: Update R-Car D3, RZ/G2M, and RZ/G2E] Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit 3c772f71a552d343a96868ed9a809f9047be94f5 Author: Takeshi Kihara Date: Fri Sep 28 16:18:00 2018 +0900 clk: renesas: rcar-gen3: Correct parent clock of SYS-DMAC The clock sources of the AXI BUS clock (266.66 MHz) used for SYS-DMAC DMA transfers are: Channel R-Car H3 R-Car M3-W R-Car M3-N ------------------------------------------------- SYS-DMAC0 S0D3 S0D3 S0D3 SYS-DMAC1 S3D1 S3D1 S3D1 SYS-DMAC2 S3D1 S3D1 S3D1 As a result, change the parent clocks of the SYS-DMAC{1,2} module clocks on R-Car H3, R-Car M3-W, and R-Car M3-N to S3D1. NOTE: This information will be reflected in a future revision of the R-Car Gen3 Hardware Manual. Signed-off-by: Takeshi Kihara [geert: Update RZ/G2M] Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit c2182095c850a02e150613ac026be99ce1c2ff9f Author: Kazuya Mizuguchi Date: Wed Jul 25 18:07:05 2018 +0900 clk: renesas: rcar-gen3: Correct parent clock of HS-USB According to the R-Car Gen3 Hardware Manual Rev. 1.00, and the RZ/G2 Hardware Manual Rev. 0.61, the parent clock of the HS-USB module clocks on R-Car Gen3 and RZ/G2 SoCs is S3D2. Signed-off-by: Kazuya Mizuguchi [takeshi: Update R-Car H3, M3-N, and E3] Signed-off-by: Takeshi Kihara [geert: Update RZ/G2M and RZ/G2E] Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit 8d36fdcce21c1713eacf45380696f8cec3d724bf Author: Kazuya Mizuguchi Date: Wed Jul 25 18:10:21 2018 +0900 clk: renesas: rcar-gen3: Correct parent clock of EHCI/OHCI According to the R-Car Gen3 Hardware Manual Rev. 1.00, and the RZ/G2 Hardware Manual Rev. 0.61, the parent clock of the EHCI/OHCI module clocks on R-Car Gen3 and RZ/G2 SoCs is S3D2. Signed-off-by: Kazuya Mizuguchi [takeshi: Update R-Car H3, M3-N, and E3] Signed-off-by: Takeshi Kihara [geert: Update RZ/G2M and RZ/G2E] Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit e551122cdb7fcb9a0fef3c22cf3dfbb34626bafc Author: Takeshi Kihara Date: Fri Mar 8 21:55:23 2019 +0900 pinctrl: sh-pfc: rcar-gen3: Rename SEL_NDFC to SEL_NDF According to the R-Car Gen3 Hardware Manual Errata for Rev 1.50 of Feb 12, 2019, the sel_ndfc MOD_SEL register bit is renamed to sel_ndf. Update the pin control drivers to reflect this. Signed-off-by: Takeshi Kihara [geert: Update R-Car E3] Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit a040f3dec8eb7b11c2fd28762bd4f838da4d166b Author: Takeshi Kihara Date: Fri Sep 28 17:32:00 2018 +0900 pinctrl: sh-pfc: rcar-gen3: Rename SEL_ADG_{A,B,C} to SEL_ADG{A,B,C} According to the R-Car Gen3 Hardware Manual Errata for Rev 0.80 of Dec 22, 2017, and the Errata for Rev 1.50 of Dec 25, 2018, MOD_SEL0 register bits 3, 4, 17, and 18 are renamed from SEL_ADG_{A,B,C} to SEL_ADG{A,B,C}. Update the pin control drivers to reflect this. Signed-off-by: Takeshi Kihara Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit 624a7a12cc0cc776c9c82347ffe5ddce7218eeca Author: Takeshi Kihara Date: Fri Mar 8 22:42:43 2019 +0900 pinctrl: sh-pfc: rcar-gen3: Rename RTS{0,1,3,4}# pin function definitions According to the R-Car Gen3 Hardware Manual Errata for Rev 1.50 of Feb 12, 2019, the RTS{0,1,3,4}_#/TANS pin names defined in the GPSR and IPSR registers are renamed to RTS{0,1,3,4}_#. This patch updates the pin control drivers to reflect this. Signed-off-by: Takeshi Kihara [geert: Update R-Car H3 ES1.x, V3M, V3H, and D3] Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit 662dc924a05e9dffd62f602c7111d6b7ada8fa88 Author: Takeshi Kihara Date: Fri Sep 28 18:09:33 2018 +0900 pinctrl: sh-pfc: rcar-gen3: Remove CC5_OSCOUT pin According to the R-Car Gen3 Hardware Manual Errata for Rev 1.00 of Jun 4, 2018, the CC5_OSCOUT pin is removed. Update the pin control drivers to reflect this. Signed-off-by: Takeshi Kihara [geert: Update R-Car V3M, V3H] Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit 5671f8e0270ad5e33e3088e5f0fa71af67129630 Author: Takeshi Kihara Date: Fri Sep 28 17:38:27 2018 +0900 pinctrl: sh-pfc: rcar-gen3: Remove HDMI CEC pins, groups, and functions The HDMI CEC function is not supported by the R-Car Gen3 Hardware Manual Rev 1.00. Therefore, delete the corresponding pin groups and functions, and rename the HDMI[01]_CEC definitions to match their GPIO functionality. Signed-off-by: Takeshi Kihara [geert: Squashed several commits] Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit e87882eb9be10b2b9e28156922c2a47d877f5db4 Author: Takeshi Kihara Date: Thu Dec 6 16:42:43 2018 +0900 pinctrl: sh-pfc: r8a77990: Fix MOD_SEL1 bit30 when using SSI_SCK2 and SSI_WS2 According to the R-Car Gen3 Hardware Manual Errata for Rev 1.00 of Aug 24, 2018, there is no need to configure MOD_SEL1 bit30 when the SSI_SCK2_{A,B} or SSI_WS2_{A,B} pin functions are selected. Signed-off-by: Takeshi Kihara [geert: Remove now unused definitions, mark MOD_SEL1 bit30 reserved] Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit e167d723e1a472d252e5c4baf823b77ce5543b05 Author: Takeshi Kihara Date: Thu Dec 6 15:38:43 2018 +0900 pinctrl: sh-pfc: r8a77990: Fix MOD_SEL1 bit31 when using SIM0_D According to the R-Car Gen3 Hardware Manual Errata for Rev 1.00 of Aug 24, 2018, there is no need to configure MOD_SEL1 bit31 when the SIM0_D_{A,B} pin function is selected. Signed-off-by: Takeshi Kihara [geert: Remove now unused definitions, mark MOD_SEL1 bit31 reserved] Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit 943ff71281c6ce44ca48ea1b08c55f1e63648d00 Author: Takeshi Kihara Date: Sat Dec 1 15:35:53 2018 +0900 pinctrl: sh-pfc: r8a77990: Fix MOD_SEL0 bit16 when using NFALE and NFRB_N According to the R-Car Gen3 Hardware Manual Errata for Rev 1.00 of Aug 24, 2018, the MOD_SEL0 bit16 must be set to 0 when the NFALE_A and NFRB_N_A pin functions are selected. Signed-off-by: Takeshi Kihara Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit 360328c7dc15f48dd9b6187e7d4a9517a64e51f7 Author: Geert Uytterhoeven Date: Wed Mar 20 10:47:26 2019 +0100 pinctrl: sh-pfc: Improve PINMUX_IPSR_PHYS() documentation - The IPSR field is meant for documentation only, - The function name refers to the pin function, not to the IPSR field. Signed-off-by: Geert Uytterhoeven Reviewed-by: Niklas Söderlund commit e005da0ef77e3b4426a6d0a0289fd1b74a5738f0 Author: Geert Uytterhoeven Date: Tue Nov 13 09:38:35 2018 +0100 pinctrl: rza1: Remove unneeded spinlock acquisitions rza1_get_bit() is just a single register read. Hence there's no need to synchronize it with other register writes to the same bank. Signed-off-by: Geert Uytterhoeven Acked-by: Jacopo Mondi commit fa4d36712f20e2425171ab1f62341ebb6416d3ea Author: Geert Uytterhoeven Date: Thu Dec 13 15:48:45 2018 +0100 pinctrl: sh-pfc: Validate enum IDs for regs with variable-width fields Add a run-time check to the PINMUX_CFG_REG_VAR() macro, to ensure the number of provided enum IDs is correct. This cannot be done at build time, as the number of values depends on the variable-width fields in the config register. This helps catching bugs early. Signed-off-by: Geert Uytterhoeven commit c481c8178420b8cc8b188807fe6eee8b069ce2d8 Author: Geert Uytterhoeven Date: Tue Dec 18 09:31:49 2018 +0100 pinctrl: sh-pfc: Validate enum IDs for regs with fixed-width fields Add build-time checks to the PINMUX_CFG_REG() and PINMUX_DATA_REG() macros, to ensure the number of provided enum IDs is correct. This helps catching bugs early. Signed-off-by: Geert Uytterhoeven commit 19b593a1cf068effeca496f5dc92e5ad43f91bb2 Author: Geert Uytterhoeven Date: Mon Jan 21 19:20:53 2019 +0100 pinctrl: sh-pfc: Absorb enum IDs in PINMUX_DATA_REG() macro Currently the PINMUX_DATA_REG() macro must be followed by initialization data, specifying all enum IDs. Hence the macro itself does not know anything about the enum IDs, preventing the macro from performing any validation on it. Make the macro accept the enum IDs as a parameter, and update all users. Note that array data enclosed by curly braces cannot be passed to a macro as a parameter, hence the enum IDs are wrapped using the GROUP() macro. No functional changes. Signed-off-by: Geert Uytterhoeven commit 69f7be1c6314fb0b1d5e2b101726db0c90f1ee61 Author: Geert Uytterhoeven Date: Wed Dec 12 19:57:19 2018 +0100 pinctrl: sh-pfc: Absorb enum IDs in PINMUX_CFG_REG_VAR() macro Currently the PINMUX_CFG_REG_VAR() macro must be followed by initialization data, specifying all enum IDs. Hence the macro itself does not know anything about the enum IDs, preventing the macro from performing any validation on it. Make the macro accept the enum IDs as a parameter, and update all users. Note that array data enclosed by curly braces cannot be passed to a macro as a parameter, hence both the register field widths and the enum IDs are wrapped using the GROUP() macro. No functional changes. Signed-off-by: Geert Uytterhoeven commit efca8da0c5fcc7f5617bab769faa595f7efdc593 Author: Geert Uytterhoeven Date: Wed Dec 12 19:50:36 2018 +0100 pinctrl: sh-pfc: Absorb enum IDs in PINMUX_CFG_REG() macro Currently the PINMUX_CFG_REG() macro must be followed by initialization data, specifying all enum IDs. Hence the macro itself does not know anything about the enum IDs, preventing the macro from performing any validation on it. Make the macro accept the enum IDs as a parameter, and update all users. Note that array data enclosed by curly braces cannot be passed to a macro as a parameter, hence the enum IDs are wrapped using a new macro GROUPS(). No functional changes. Signed-off-by: Geert Uytterhoeven commit 01ff33a3ea57a7abf486e48a8d4d62435964038c Author: Geert Uytterhoeven Date: Mon Jan 21 19:47:18 2019 +0100 pinctrl: sh-pfc: Allow compile-testing of all drivers Enable compile-testing of all Renesas SuperH and ARM pin control drivers, in a similar way as was done before for clock and SoC drivers in commits 371dd373c6edd557 ("clk: renesas: Allow compile-testing of all (sub)drivers") and 8be381a131c29c47 ("soc: renesas: Rework Kconfig and Makefile logic"). The SuperH pin control drivers need specific include files, hence make sure they are always found when compile-testing. Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit 8440bb9b944c02222c7a840d406141ed42e945cd Author: Geert Uytterhoeven Date: Mon Feb 11 13:58:43 2019 +0100 sh: sh7786: Add explicit I/O cast to sh7786_mm_sel() When compile-testing on arm: arch/sh/include/cpu-sh4/cpu/sh7786.h: In function ‘sh7786_mm_sel’: arch/sh/include/cpu-sh4/cpu/sh7786.h:135:21: warning: passing argument 1 of ‘__raw_readl’ makes pointer from integer without a cast [-Wint-conversion] return __raw_readl(0xFC400020) & 0x7; ^~~~~~~~~~ In file included from include/linux/io.h:25:0, from arch/sh/include/cpu-sh4/cpu/sh7786.h:14, from drivers/pinctrl/sh-pfc/pfc-sh7786.c:15: arch/arm/include/asm/io.h:113:21: note: expected ‘const volatile void *’ but argument is of type ‘unsigned int’ #define __raw_readl __raw_readl ^ arch/arm/include/asm/io.h:114:19: note: in expansion of macro ‘__raw_readl’ static inline u32 __raw_readl(const volatile void __iomem *addr) ^~~~~~~~~~~ __raw_readl() on SuperH is a macro that casts the passed I/O address to the correct type, while the implementations on most other architectures expect to be passed the correct pointer type. Add an explicit cast to fix this. Note that this also gets rid of a sparse warning on SuperH: arch/sh/include/cpu-sh4/cpu/sh7786.h:135:16: warning: incorrect type in argument 1 (different base types) arch/sh/include/cpu-sh4/cpu/sh7786.h:135:16: expected void const volatile [noderef] * arch/sh/include/cpu-sh4/cpu/sh7786.h:135:16: got unsigned int Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit 2f9f5094f8b7a1da8852c4a50b205232e62d72dc Author: Geert Uytterhoeven Date: Fri Jan 25 14:57:53 2019 +0100 pinctrl: sh-pfc: Add missing #include Source files using -Exxx error codes should include . On ARM, this header file is included indirectly; on SuperH, it is not, leading to "error: ‘EINVAL’ undeclared" failures when enabling compile-testing later. Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit 0ace959614bc2bbea9efde24b150f6c5513f1980 Author: Geert Uytterhoeven Date: Mon Jan 21 17:05:45 2019 +0100 pinctrl: sh-pfc: Introduce PINCTRL_SH_FUNC_GPIO helper symbol Pinctrl drivers for SuperH platforms use legacy function GPIOs. Currently this support is compiled in based on the SUPERH platform dependency, which hinders the introduction of compile-testing support for the affected pinctrl drivers. Introduce a new Kconfig symbol PINCTRL_SH_FUNC_GPIO, which is auto-selected when needed. This symbol in turn selects PINCTRL_SH_PFC_GPIO, to reduce the number of per-driver selects. Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit 6161b39a14380815f22851c753c00acf81cfa62a Author: Geert Uytterhoeven Date: Thu Dec 13 15:48:45 2018 +0100 pinctrl: sh-pfc: Validate pinmux tables at runtime when debugging Perform some basic sanity checks on all built-in pinmux tables when DEBUG is defined, to help catching bugs early. For now the following checks are included: - Check register and field widths in descriptors for config registers with variable-width fields, - Check relations between pin groups and functions: - All pin functions must refer to existing pin groups, - All pin groups must be referred to by a pin function, - Warn if a pin group is referred to by multiple pin functions (which is OK for backwards-compatibility aliases), - Provide suggestions for reducing table sizes: reserved fields of more than 3 bits can better be split in smaller subfields, as the storage need is proportional to the square of the width of the (sub)field, Note that a dummy non-matching entry is added to the DT match table for checking r8a7795es1_pinmux_info, as R-Car H3 ES1.0 is matched using soc_device_match() in r8a7795_pinmux_init(), instead of by the DT match table. Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit 4aeed945b7024e454bafb4beb68b8c0298832efb Author: Simon Horman Date: Mon Mar 25 17:35:56 2019 +0100 clk: renesas: r8a774c0: Add Z2 clock Adds support for RZ/G2E (r8a774c0) Z2 clock. Signed-off-by: Simon Horman Tested-by: Fabrizio Castro Reviewed-by: Fabrizio Castro Signed-off-by: Geert Uytterhoeven commit 787fe096fe42829f3091888835562ffce4d23bff Author: Takeshi Kihara Date: Mon Mar 25 17:35:55 2019 +0100 clk: renesas: r8a77990: Add Z2 clock Adds support for R-Car E3 (r8a77990) Z2 clock. Signed-off-by: Takeshi Kihara [simon: reworked changelog; rebased] Signed-off-by: Simon Horman Signed-off-by: Geert Uytterhoeven commit 71119b54a2e6d9345f22d9501c4d3c28b06f955a Author: Simon Horman Date: Mon Mar 25 17:35:54 2019 +0100 clk: renesas: rcar-gen3: Support Z and Z2 clocks with high frequency parents Support Z and Z2 clocks with parent frequencies greater than UINT32_MAX Hz (~4.29GHz). The DIV_ROUND_CLOSEST_ULL() macro accepts a 64bit dividend and 32bit divisor. This leads to truncation of the divisor, which is the Z or Z2 parent clock frequency in HZ, on platforms where frequency of that clock is greater than UINT32_MAX Hz. To resolve this problem the DIV64_U64_ROUND_CLOSEST() macro, which takes on an unsigned 64bit dividend and divisor, is used. An earlier version of this patch made use of the existing DIV_ROUND_CLOSEST() macro, which accepts the prevailing type of the dividend and divisor. However, this does not compile on 32bit systems, such as i386 and mips, when called with the types used at this call site, an unsigned long long dividend and unsigned long divisor. This work is in preparation for supporting the Z2 clock on the R-Car Gen3 E3 (r8a77990) SoC which has a 4.8GHz parent clock. Signed-off-by: Simon Horman Signed-off-by: Geert Uytterhoeven commit cb8be119d21d8a0affc3598a928dd0baf5da238f Author: Simon Horman Date: Mon Mar 25 17:35:53 2019 +0100 math64: New DIV64_U64_ROUND_CLOSEST helper Provide DIV64_U64_ROUND_CLOSEST helper which performs division rounded to the closest integer using an unsigned 64bit dividend and divisor. This will be used in a follow-up patch to allow calculation of clock divisors with high frequency parents in the R-Car Gen3 CPG MSSR driver where overflow occurs if either the dividend or divisor is 32bit. Signed-off-by: Simon Horman Signed-off-by: Geert Uytterhoeven commit e0836e36384321ab1b4af05ab441c0c59a972596 Author: Simon Horman Date: Mon Mar 25 17:35:52 2019 +0100 clk: renesas: rcar-gen3: Remove CLK_TYPE_GEN3_Z2 After recent reworking of Z and Z2 clk handling CLK_TYPE_GEN3_Z and CLK_TYPE_GEN3_Z2 have come to have precisely the same meaning. Remove this redundancy by eliminating the latter. This is not expected to have any run-time effect. As suggested by Geert Uytterhoeven. Signed-off-by: Simon Horman Signed-off-by: Geert Uytterhoeven commit 10d9ea5100c89afd677a202036e0e34e129a6c52 Author: Simon Horman Date: Mon Mar 25 17:35:51 2019 +0100 clk: renesas: rcar-gen3: Parameterise Z and Z2 clock offset Parameterise the offset of control bits within the FRQCRC register for Z and Z2 clocks. This is in preparation for supporting the Z2 clock on the R-Car E3 (r8a77990) SoC which uses a different offset for control bits to other, already, supported SoCs. As suggested by Geert Uytterhoeven. Signed-off-by: Simon Horman Signed-off-by: Geert Uytterhoeven commit 20cc05ba04a93f05d6c50789fe35d762a2db4e96 Author: Takeshi Kihara Date: Mon Mar 25 17:35:50 2019 +0100 clk: renesas: rcar-gen3: Parameterise Z and Z2 clock fixed divisor Parameterise Z and Z2 clock fixed divisor to allow clocks with a fixed divisor other than 2, the value used by all such clocks supported to date. This is in preparation for supporting the Z2 clock on the R-Car E3 (r8a77990) SoC which has a fixed divisor of 4. Signed-off-by: Takeshi Kihara [simon: squashed several patches; rewrote changelog; added r8a774a1 change] Signed-off-by: Simon Horman Signed-off-by: Geert Uytterhoeven commit 1addd6d568d02a9a1ce44307ec9c678e66e18c9e Author: Gareth Williams Date: Fri Mar 22 11:33:04 2019 +0000 clk: renesas: r9a06g032: Add missing PCI USB clock The clock driver is missing support for the clk_pci_usb clock that is present on the SoC. This is added to allow the clock to be supported. Signed-off-by: Gareth Williams Signed-off-by: Geert Uytterhoeven commit 9c561be8d8f2e01afaa9657051fc22e1e68f1914 Author: Geert Uytterhoeven Date: Tue Mar 12 09:02:52 2019 +0100 clk: renesas: r7s9210: Always use readl() On arm32, there is no reason to use the (soon deprecated) clk_readl(). Hence use the generic readl() instead. Signed-off-by: Geert Uytterhoeven Reviewed-by: Simon Horman commit 9df8a97088f26170aa78cbb3acac59f5963bb663 Author: Ojaswin Mujoo Date: Sun Mar 31 14:44:36 2019 +0530 staging: vt6656: Fix styling of the comment related to SPDX-License-Identifier Fix checkpatch.pl styling error related to SPDX-License-Identifier comment in vt6656/*.h Signed-off-by: Ojaswin Mujoo Reviewed-by: Mukesh Ojha Signed-off-by: Greg Kroah-Hartman commit 18f0e249da67baf333cee97c412b0530c357f67b Author: Nishka Dasgupta Date: Tue Apr 2 10:41:56 2019 +0530 staging: mt7621-spi: Remove parentheses Remove unnecessary parentheses around right hand side of expression. Issue found with Coccinelle. Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit 8f4ebe9b331ef3d39c8375ff38c623f26dbc1735 Author: Thor Thayer Date: Mon Mar 11 17:18:08 2019 -0500 arm64: dts: stratix10: New System Manager compatible Use the new compatible string defined for the Stratix10 System Manager. Remove syscon since it is not correct on this platform. Signed-off-by: Thor Thayer Reviewed-by: Arnd Bergmann Signed-off-by: Lee Jones commit 54a5afb4818ecbe864056946d663de28e39e2010 Author: Thor Thayer Date: Mon Mar 11 17:18:07 2019 -0500 net: stmmac: socfpga: Use shared System Manager driver The ARM64 System Manager requires a different method of reading the System Manager than ARM32. A new System Manager driver was created to steer ARM32 System Manager calls to regmap_mmio and ARM64 System Manager calls to the new access method. Convert from syscon to the shared System Manager driver so that both ARM64 and ARM32 are supported. Signed-off-by: Thor Thayer Acked-by: David S. Miller Reviewed-by: Arnd Bergmann Signed-off-by: Lee Jones commit 5dd2814b0249fc0ff43f8bc1902fab199f7de9a5 Author: Thor Thayer Date: Mon Mar 11 17:18:06 2019 -0500 arm64: defconfig: Enable CONFIG_MTD_ALTERA_SYSMGR Enable the Stratix10 System Manager by default. Signed-off-by: Thor Thayer Reviewed-by: Arnd Bergmann Signed-off-by: Lee Jones commit 5ab96af1ecfc5427d4f01b0b1e7b68f7bef96157 Author: Thor Thayer Date: Mon Mar 11 17:18:05 2019 -0500 ARM: socfpga_defconfig: Enable CONFIG_MTD_ALTERA_SYSMGR Add System Manager driver by default for SOCFPGA ARM32 platforms. Signed-off-by: Thor Thayer Reviewed-by: Arnd Bergmann Signed-off-by: Lee Jones commit a957abb58ddfc83fa95406bb97b4541f30c78421 Author: Thor Thayer Date: Mon Mar 11 17:18:04 2019 -0500 dt-bindings: arm: socfpga: Add S10 System Manager binding Add the device tree bindings for the Stratix10 System Manager. Signed-off-by: Thor Thayer Reviewed-by: Rob Herring Reviewed-by: Arnd Bergmann Signed-off-by: Lee Jones commit f36e789a1f8d0b75ee2b459dfac10efd7d299a6d Author: Thor Thayer Date: Mon Mar 11 17:18:03 2019 -0500 mfd: altera-sysmgr: Add SOCFPGA System Manager The SOCFPGA System Manager register block aggregates different peripheral functions into one area. On 32 bit ARM parts, handle in the same way as syscon. On 64 bit ARM parts, the System Manager can only be accessed by EL3 secure mode. Since a SMC call to EL3 is required, this new driver uses regmaps similar to syscon to handle the SMC call. Since regmaps abstract out the underlying register access, the changes to drivers accessing the System Manager are minimal. Signed-off-by: Thor Thayer Reviewed-by: Arnd Bergmann Signed-off-by: Lee Jones commit af0e6242909c3c4297392ca3e94eff1b4db71a97 Author: Rasmus Villemoes Date: Wed Mar 27 14:30:52 2019 +0000 spi: spi-fsl-spi: automatically adapt bits-per-word in cpu mode Taking one interrupt for every byte is rather slow. Since the controller is perfectly capable of transmitting 32 bits at a time, change t->bits_per-word to 32 when the length is divisible by 4 and large enough that the reduced number of interrupts easily compensates for the one or two extra fsl_spi_setup_transfer() calls this causes. Signed-off-by: Rasmus Villemoes Signed-off-by: Mark Brown commit a798a7086c38d91d304132c194cff9f02197f5cd Author: Rasmus Villemoes Date: Wed Mar 27 14:30:51 2019 +0000 spi: spi-fsl-spi: allow changing bits_per_word while CS is still active Commit c9bfcb315104 (spi_mpc83xx: much improved driver) introduced logic to ensure bits_per_word and speed_hz stay the same for a series of spi_transfers with CS active, arguing that The current driver may cause glitches on SPI CLK line since one must disable the SPI controller before changing any HW settings. This sounds quite reasonable. So this is a quite naive attempt at relaxing this sanity checking to only ensure that speed_hz is constant - in the faint hope that if we do not causes changes to the clock-related fields of the SPMODE register (DIV16 and PM), those glitches won't appear. The purpose of this change is to allow automatically optimizing large transfers to use 32 bits-per-word; taking one interrupt for every byte is extremely slow. Signed-off-by: Rasmus Villemoes Signed-off-by: Mark Brown commit 748fbadf951a8b32713351e10ef989181a4b47a6 Author: Jarkko Nikula Date: Fri Mar 29 15:00:46 2019 +0200 spi: pxa2xx: Unify remaing prints in pxa2xx_spi_transfer_one() Use SPI device pointer in the remaining two error and warning prints in pxa2xx_spi_transfer_one() instead of platform device of the controller It make prints in the function uniform and more useful especially the error print here as it can reveal the driver that has mapped the DMA itself and attempts to transfer more than the maximum supported DMA transfer length. Signed-off-by: Jarkko Nikula Signed-off-by: Mark Brown commit 20f4c379c39d54a8912a2a472cee41782a3a312a Author: Jarkko Nikula Date: Fri Mar 29 15:00:45 2019 +0200 spi: pxa2xx: Use struct spi_device directly in pxa2xx_spi_transfer_one() Pointer to a SPI device is passed to pxa2xx_spi_transfer_one() so there is no need to access it through the current SPI message pointer. Signed-off-by: Jarkko Nikula Signed-off-by: Mark Brown commit b820d52e7eed7b30b2dfef5f4213a2bc3cbea6f3 Author: Wen Yang Date: Tue Feb 26 16:17:51 2019 +0800 ASoC: eukrea-tlv320: fix a leaked reference by adding missing of_node_put The call to of_parse_phandle returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: ./sound/soc/fsl/eukrea-tlv320.c:121:3-9: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 102, but without a correspo nding object release within this function. ./sound/soc/fsl/eukrea-tlv320.c:127:3-9: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 102, but without a correspo nding object release within this function. Signed-off-by: Wen Yang Cc: Liam Girdwood Cc: Mark Brown Cc: Jaroslav Kysela Cc: Takashi Iwai Cc: alsa-devel@alsa-project.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Mark Brown commit c705247136a523488eac806bd357c3e5d79a7acd Author: Wen Yang Date: Tue Feb 26 16:17:50 2019 +0800 ASoC: fsl_utils: fix a leaked reference by adding missing of_node_put The call to of_parse_phandle returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: ./sound/soc/fsl/fsl_utils.c:74:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 38, but without a corresponding object release within this function. Signed-off-by: Wen Yang Cc: Timur Tabi Cc: Nicolin Chen Cc: Xiubo Li Cc: Fabio Estevam Cc: Liam Girdwood Cc: Mark Brown Cc: Jaroslav Kysela Cc: Takashi Iwai Cc: alsa-devel@alsa-project.org Cc: linuxppc-dev@lists.ozlabs.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Mark Brown commit 64b92de9603f22b5455da925ee57268ef7fb4e80 Author: Wen Yang Date: Tue Feb 26 16:17:49 2019 +0800 ASoC: wcd9335: fix a leaked reference by adding missing of_node_put The call to of_parse_phandle returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: ./sound/soc/codecs/wcd9335.c:5193:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 5183, but without a correspon ding object release within this function. Signed-off-by: Wen Yang Cc: Liam Girdwood Cc: Mark Brown Cc: Jaroslav Kysela Cc: Takashi Iwai Cc: Srinivas Kandagatla Cc: Vinod Koul Cc: Dan Carpenter (commit_signer:1/11=9%,authored:1/11=9%) Cc: alsa-devel@alsa-project.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Mark Brown commit 8f24f505fc2a151ff8bf67fcf11e4c7c6bfcbf49 Author: Madhumitha Prabakaran Date: Mon Apr 1 17:26:21 2019 -0500 Staging: rtl8723bs: core: Remove typecast in kfree Remove typecast in kfree, as per definition of kfree in include/linux/slab.h#L144, the parameter type of kfree is void*, and hence C compiler casts any pointer type to void*. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 02b6424509e0c8a36d02b0ee36445be8d1fb128a Author: Liam Girdwood Date: Fri Mar 1 19:08:52 2019 -0600 ASoC: topology: Align tplg pointer increment across all kcontrols This aligns all kcontrol tplg pointer increments to be consistent in the respective create methods and ensures that the position is pointing to the next widget rather the current invalid widget. Signed-off-by: Liam Girdwood Signed-off-by: Ranjani Sridharan Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit e194098bf9098083f8ae9687924a6878540f8561 Author: Pierre-Louis Bossart Date: Fri Mar 1 19:08:51 2019 -0600 ASoC: core: support driver alias names for FE topology overrides When the same machine driver is reused between platforms but with a different alias, using the driver name is not enough. Add additional fallback case to use the card device name. Tested on GeminiLake with bxt_da7219_max98357a machine driver Suggested-by: Liam Girdwood Signed-off-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit cce1396936ef2b347d622b4d49718818eb32029d Author: Baolin Wang Date: Wed Mar 27 19:47:03 2019 +0800 ASoC: sprd: Add Spreadtrum audio compress offload support We use 2-stage DMA mode to support Spreadtrum audio compress offload, which means we use one DMA source channel to transfer data from IRAM buffer to the DSP fifo to do decoding/encoding, once IRAM buffer is empty by transferring done, another DMA destination channel will be triggered automatically to start to transfer data from DDR buffer to the IRAM buffer. This can reduce the AP subsystem wakeup times to save power. Co-developed-by: Yintang Ren Signed-off-by: Baolin Wang Signed-off-by: Mark Brown commit f661fa2804af6950d1b7f5ffa22f6a80dcf52958 Author: Randy Dunlap Date: Wed Mar 27 08:43:19 2019 -0700 ASoC: fix SND_SOC_LOCHNAGAR_SC kconfig warning Fix kconfig warning for SND_SOC_LOCHNAGAR_SC: WARNING: unmet direct dependencies detected for SND_SOC_LOCHNAGAR_SC Depends on [n]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=m] && MFD_LOCHNAGAR [=n] Selected by [m]: - SND_SOC_ALL_CODECS [=m] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=m] && COMPILE_TEST [=y] Signed-off-by: Randy Dunlap Cc: Piotr Stankiewicz Cc: Charles Keepax Cc: Richard Fitzgerald Cc: patches@opensource.cirrus.com Cc: Liam Girdwood Cc: Mark Brown Cc: alsa-devel@alsa-project.org Acked-by: Charles Keepax Signed-off-by: Mark Brown commit a4e73625cb12f662b2a72d292f34232c61cca47f Author: Axel Lin Date: Mon Apr 1 22:42:36 2019 +0800 regulator: bcm590xx: Convert to use simplified DT parsing Use regulator core's simplified DT parsing code to simply the driver implementation. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 90f0202bf2e15e8933a550b7dfd439b500a76e1c Author: Andrew F. Davis Date: Mon Apr 1 10:13:29 2019 -0500 ASoC: tlv320aic31xx: Add button press detection This device can optionally detect headset or microphone button presses. Add support for this by passing this event to the jack layer. Signed-off-by: Andrew F. Davis Signed-off-by: Mark Brown commit ebf3326cd96989a498892a1b344faee3110f7877 Author: Andrew F. Davis Date: Mon Apr 1 10:13:28 2019 -0500 ASoC: tlv320aic31xx: Add headphone/headset detection This device can detect the insertion/removal of headphones and headsets. Enable reporting this status by enabling this interrupt and forwarding this to upper-layers if a jack has been defined. This jack definition and the resulting operation from a jack detection event must currently be defined by sound card platform code until CODEC outputs to jack mappings can be defined generically. Signed-off-by: Andrew F. Davis Signed-off-by: Mark Brown commit 11f8e119ed22c750ac5ac0b195b5ecd17868e0e9 Author: Christian Hewitt Date: Fri Mar 15 14:56:55 2019 +0100 arm64: dts: meson-gxm: Add Mali-T820 node The Amlogic Meson GXM SoC embeds an ARM Mali T820 GPU. This patch adds the node with all the needed properties to power on the GPU. This has been tested with the work-in-progress PanFrost project aiming support for ARM Mali Midgard and later GPUs. Signed-off-by: Christian Hewitt Signed-off-by: Neil Armstrong Signed-off-by: Kevin Hilman commit d5ff1adb3809e2f74a3b57cea2e57c8e37d693c4 Author: Neil Armstrong Date: Fri Mar 15 14:56:54 2019 +0100 dt-bindings: gpu: mali-midgard: Add resets property The Amlogic ARM Mali Midgard requires reset controls to power on and software reset the GPU, adds these as optional in the bindings. Signed-off-by: Neil Armstrong Reviewed-by: Rob Herring Signed-off-by: Kevin Hilman commit 5d8d4af24460d079ecdb190254b14b528add1228 Author: Marc Zyngier Date: Tue Apr 2 03:28:39 2019 +0100 arm64: KVM: Fix system register enumeration The introduction of the SVE registers to userspace started with a refactoring of the way we expose any register via the ONE_REG interface. Unfortunately, this change doesn't exactly behave as expected if the number of registers is non-zero and consider everything to be an error. The visible result is that QEMU barfs very early when creating vcpus. Make sure we only exit early in case there is an actual error, rather than a positive number of registers... Fixes: be25bbb392fa ("KVM: arm64: Factor out core register ID enumeration") Signed-off-by: Marc Zyngier commit e142723700baaa621c1b4649ec17a714a4d4a582 Author: Florian Westphal Date: Mon Apr 1 22:59:09 2019 +0200 macsec: add noinline tag to avoid a frame size warning seen with debug config: drivers/net/macsec.c: In function 'dump_secy': drivers/net/macsec.c:2597: warning: the frame size of 2216 bytes is larger than 2048 bytes [-Wframe-larger-than=] just mark it with noinline_for_stack, this is netlink dump code. v2: use 'static noinline_for_stack int' consistently Cc: Sabrina Dubroca Signed-off-by: Florian Westphal Reviewed-by: Sabrina Dubroca Signed-off-by: David S. Miller commit 3dc93e85f9b10215c61433179f0f03e1d1e4b838 Merge: 74dcb4c1a52c 4f296edeb9d4 Author: David S. Miller Date: Mon Apr 1 18:35:02 2019 -0700 Merge branch 'xmit_more-softnet_data' Florian Westphal says: ==================== net: move skb->xmit_more to percpu softnet data Eric Dumazet mentioned we could place xmit_more hint in same spot as device xmit recursion counter, instead of using an sk_buff flag bit. This series places xmit_recursion counter and xmit_more hint in softnet data, filling a hole. After this, skb->xmit_more is always zero. Drivers are converted to use "netdev_xmit_more()" helper instead. Last patch removes the skb->xmit_more flag. ==================== Signed-off-by: David S. Miller commit 4f296edeb9d4cf76b876869461a7ae627c307110 Author: Florian Westphal Date: Mon Apr 1 16:42:17 2019 +0200 drivers: net: aurora: use netdev_xmit_more helper This is the last driver using always-0 skb->xmit_more. Switch it to netdev_xmit_more and remove the now unused xmit_more flag from sk_buff. Signed-off-by: Florian Westphal Signed-off-by: David S. Miller commit f79c957a0b537d6871a8aa195d5b5bcc7e480957 Author: Florian Westphal Date: Mon Apr 1 16:42:16 2019 +0200 drivers: net: sfc: use netdev_xmit_more helper skb->xmit_more hint is now always 0, this switches the sfc driver to use the netdev_xmit_more helper instead. Cc: Solarflare linux maintainers Cc: Edward Cree Cc: Bert Kenward Signed-off-by: Florian Westphal Signed-off-by: David S. Miller commit 3c31ff22b25f15c6a642bb775884a599379a3cb5 Author: Florian Westphal Date: Mon Apr 1 16:42:15 2019 +0200 drivers: mellanox: use netdev_xmit_more() helper skb->xmit_more hint is now always 0. This switches the mellanox drivers to the netdev_xmit_more() helper. Cc: Saeed Mahameed Cc: Leon Romanovsky Cc: Boris Pismenny Cc: Ilya Lesokhin Cc: Eran Ben Elisha Signed-off-by: Florian Westphal Signed-off-by: David S. Miller commit 6b16f9ee89b8d5709f24bc3ac89ae8b5452c0d7c Author: Florian Westphal Date: Mon Apr 1 16:42:14 2019 +0200 net: move skb->xmit_more hint to softnet data There are two reasons for this. First, the xmit_more flag conceptually doesn't fit into the skb, as xmit_more is not a property related to the skb. Its only a hint to the driver that the stack is about to transmit another packet immediately. Second, it was only done this way to not have to pass another argument to ndo_start_xmit(). We can place xmit_more in the softnet data, next to the device recursion. The recursion counter is already written to on each transmit. The "more" indicator is placed right next to it. Drivers can use the netdev_xmit_more() helper instead of skb->xmit_more to check the "more packets coming" hint. skb->xmit_more is retained (but always 0) to not cause build breakage. This change takes care of the simple s/skb->xmit_more/netdev_xmit_more()/ conversions. Remaining drivers are converted in the next patches. Suggested-by: Eric Dumazet Signed-off-by: Florian Westphal Signed-off-by: David S. Miller commit 97cdcf37b57e3f204be3000b9eab9686f38b4356 Author: Florian Westphal Date: Mon Apr 1 16:42:13 2019 +0200 net: place xmit recursion in softnet data This fills a hole in softnet data, so no change in structure size. Also prepares for xmit_more placement in the same spot; skb->xmit_more will be removed in followup patch. Signed-off-by: Florian Westphal Signed-off-by: David S. Miller commit 74dcb4c1a52c7c6666319a149ad4adb001f1d00b Author: Heiner Kallweit Date: Sun Mar 31 17:42:24 2019 +0200 net: phy: aquantia: add SGMII statistics The AQR107 family has SGMII statistics counters. Let's expose them to ethtool. To interpret the counters correctly one has to be aware that rx on SGMII side is tx on ethernet side. The counters are populated by the chip in 100Mbps/1Gbps mode only. v2: - add constant AQR107_SGMII_STAT_SZ - add struct aqr107_priv to be prepared for more private data fields - let aqr107_get_stat() return U64_MAX in case of an error Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 5869b8fadad0be948e310c456f111c4103f5fbfb Author: Xin Long Date: Sun Mar 31 17:03:02 2019 +0800 net: use rcu_dereference_protected to fetch sk_dst_cache in sk_destruct As Eric noticed, in .sk_destruct, sk->sk_dst_cache update is prevented, and no barrier is needed for this. So change to use rcu_dereference_protected() instead of rcu_dereference_check() to fetch sk_dst_cache in there. v1->v2: - no change, repost after net-next is open. Reported-by: Eric Dumazet Signed-off-by: Xin Long Signed-off-by: David S. Miller commit b6163f194c699ff75fa6aa4565b1eb8946c2c652 Author: Heiner Kallweit Date: Sat Mar 30 10:22:45 2019 +0100 net: phy: improve genphy_read_status This patch improves few aspects of genphy_read_status(): - Don't initialize lpagb, it's not needed. - Move initializing phydev->speed et al before the if clause. - In auto-neg case, skip populating lp_advertising if we don't have a link. This avoids quite some unnecessary MDIO reads in case of phylib polling mode. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 9dfe6aa077f5d75febcb3db276802973f6b51b52 Merge: ac9e81c230eb 61f7c6f44870 Author: David S. Miller Date: Mon Apr 1 18:05:13 2019 -0700 Merge branch 'nfp-flower-improvement-and-SFF-module-EEPROM' Jakub Kicinski says: ==================== nfp: flower improvement and SFF module EEPROM The first patch in this series from Pieter improves the handling of mangle actions in TC flower offload. These used to be sent down to the driver in groups, but after Pablo N's patches they are split out causing suboptimal expression. The ramaining two patches from Dirk add support for reading SFF module EEPROM data. ==================== Signed-off-by: David S. Miller commit 61f7c6f44870bfb17db9f94e1a5a0ffa33e0e404 Author: Dirk van der Merwe Date: Fri Mar 29 19:24:43 2019 -0700 nfp: implement ethtool get module EEPROM Now that the NSP provides the ability to read from the SFF modules' EEPROM, we can use this interface to implement the ethtool callback. If the NSP only provides partial data, we log the event from within the driver but pass a success code to ethtool to prevent it from discarding the partial data. Signed-off-by: Dirk van der Merwe Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit 593cb18285c1686f2370ab8dffcdece69bf1a3b7 Author: Dirk van der Merwe Date: Fri Mar 29 19:24:42 2019 -0700 nfp: nsp: implement read SFF module EEPROM The NSP now provides the ability to read from the SFF module EEPROM. Note that even if an error occurs, the NSP may still provide some of the data. Signed-off-by: Dirk van der Merwe Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit eff07b42d8cdb30af0d185335c3e48b7cfffc7ce Author: Pieter Jansen van Vuuren Date: Fri Mar 29 19:24:41 2019 -0700 nfp: flower: reduce action list size by coalescing mangle actions With the introduction of flow_action_for_each pedit actions are no longer grouped together, instead pedit actions are broken out per 32 byte word. This results in an inefficient use of the action list that is pushed to hardware where each 32 byte word becomes its own action. Therefore we combine groups of 32 byte word before sending the action list to hardware. Signed-off-by: Pieter Jansen van Vuuren Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit ac9e81c230eb4b5f849768379aff9c1d4f1dccea Author: Heiner Kallweit Date: Fri Mar 29 21:09:27 2019 +0100 net: phy: aquantia: add suspend / resume callbacks for AQR107 family Add suspend / resume callbacks for AQR107 family. Suspend powers down the complete chip except MDIO and internal CPU. Signed-off-by: Heiner Kallweit Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 191aeea41804761cd79f574247a642293b563365 Author: Grygorii Strashko Date: Fri Mar 29 17:58:34 2019 +0200 net: ethernet: ti: davinci_mdio: switch to readl/writel() Switch to readl/writel() APIs, because this is recommended API and the MDIO block is reused on Keystone 2 SoCs where LE/BE modes are supported. Cc: Arnd Bergmann Signed-off-by: Grygorii Strashko Signed-off-by: David S. Miller commit 3370b5883f04ea955dcf4a466f2962ed804ebe5d Merge: a2c7023f7075 db4863fdb897 Author: David S. Miller Date: Mon Apr 1 15:01:46 2019 -0700 Merge branch 'cxgb3-undefined-behaviour-and-use-struct_size' Gustavo A. R. Silva says: ==================== cxgb3/l2t: Fix undefined behaviour and use struct_size() helper This patchset aims to fix an undefined behaviour when using a zero-sized array and, add the use of the struct_size() helper in kvzalloc(). You might consider the first patch in this series for stable. More details in the commit logs. ==================== Signed-off-by: David S. Miller commit db4863fdb897f6c55461a0446592c524dae6bfbe Author: Gustavo A. R. Silva Date: Fri Mar 29 10:28:41 2019 -0500 cxgb3/l2t: Use struct_size() in kvzalloc() One of the more common cases of allocation size calculations is finding the size of a structure that has a zero-sized array at the end, along with memory for some number of elements for that array. For example: struct foo { int stuff; struct boo entry[]; }; size = sizeof(struct foo) + count * sizeof(struct boo); instance = kvzalloc(size, GFP_KERNEL); Instead of leaving these open-coded and prone to type mistakes, we can now use the new struct_size() helper: instance = kvzalloc(struct_size(instance, entry, count), GFP_KERNEL); Notice that, in this case, variable size is not necessary, hence it is removed. This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva Signed-off-by: David S. Miller commit 76497732932f15e7323dc805e8ea8dc11bb587cf Author: Gustavo A. R. Silva Date: Fri Mar 29 10:27:26 2019 -0500 cxgb3/l2t: Fix undefined behaviour The use of zero-sized array causes undefined behaviour when it is not the last member in a structure. As it happens to be in this case. Also, the current code makes use of a language extension to the C90 standard, but the preferred mechanism to declare variable-length types such as this one is a flexible array member, introduced in C99: struct foo { int stuff; struct boo array[]; }; By making use of the mechanism above, we will get a compiler warning in case the flexible array does not occur last. Which is beneficial to cultivate a high-quality code. Fixes: e48f129c2f20 ("[SCSI] cxgb3i: convert cdev->l2opt to use rcu to prevent NULL dereference") Signed-off-by: Gustavo A. R. Silva Signed-off-by: David S. Miller commit a2c7023f7075ca9b80f944d3f20f60e6574538e2 Author: Xiaofei Shen Date: Fri Mar 29 11:04:58 2019 +0530 net: dsa: read mac address from DT for slave device Before creating a slave netdevice, get the mac address from DTS and apply in case it is valid. Signed-off-by: Xiaofei Shen Signed-off-by: Vinod Koul Signed-off-by: David S. Miller commit 74a1dd86d1739eae2015a3832f62c1d6546893a7 Author: Stephen Boyd Date: Mon Mar 25 10:24:56 2019 -0700 PM / wakeup: Use pm_pr_dbg() instead of pr_debug() These prints are useful if we're doing PM suspend debugging. Having them at pr_debug() level means that we need to either enable DEBUG in this file, or compile the kernel with dynamic debug capabilities. Both of these options have drawbacks like custom compilation or opting into all debug statements being included into the kernel image. Given that we already have infrastructure to collect PM debugging information with CONFIG_PM_DEBUG and friends, let's change the pr_debug usage here to be pm_pr_dbg() instead so we can collect the wakeup information in the kernel logs. Signed-off-by: Stephen Boyd Signed-off-by: Rafael J. Wysocki commit c324f43aed89b33eee37aaf022b32c31a2b3104d Author: Marek Szyprowski Date: Thu Mar 28 14:33:58 2019 +0100 cpuidle: exynos: Unify target residency for AFTR and coupled AFTR states Since commit 45f1ff59e27c ("cpuidle: Return nohz hint from cpuidle_select()") Exynos CPUidle driver stopped entering C1 (AFTR) mode on Exynos4412-based Trats2 board. Further analysis revealed that the CPUidle framework changed the way it handles predicted timer ticks and reported target residency for the given idle states. As a result, the C1 (AFTR) state was not chosen anymore on completely idle device. The main issue was to high target residency value. The similar C1 (AFTR) state for 'coupled' CPUidle version used 10 times lower value for the target residency, despite the fact that it is the same state from the hardware perspective. The 100000us value for standard C1 (AFTR) mode is there from the begining of the support for this idle state, added by the commit 67173ca492ab ("ARM: EXYNOS: Add support AFTR mode on EXYNOS4210"). That commit doesn't give any reason for it, instead it looks like it was blindly copied from the WFI/IDLE state of the same driver that time. That time, that value was probably not really used by the framework for any critical decision, so it didn't matter that much. Now it turned out to be an issue, so unify the target residency with the 'coupled' version, as it seems to better match the real use case values and restores the operation of the Exynos CPUidle driver on the idle device. Signed-off-by: Marek Szyprowski Reviewed-by: Krzysztof Kozlowski Acked-by: Daniel Lezcano Acked-by: Bartlomiej Zolnierkiewicz Signed-off-by: Rafael J. Wysocki commit 540a375822a40675868c5f62ae57b608a579e56a Author: Rafael J. Wysocki Date: Tue Mar 26 12:16:58 2019 +0100 cpufreq: Add cpufreq_cpu_acquire() and cpufreq_cpu_release() It sometimes is necessary to find a cpufreq policy for a given CPU and acquire its rwsem (for writing) immediately after that, so introduce cpufreq_cpu_acquire() as a helper for that and the complementary cpufreq_cpu_release(). Make cpufreq_update_policy() use the new functions. Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar commit 5a25e3f7cc538fb49e11267c1e41c54ccf83835e Author: Rafael J. Wysocki Date: Tue Mar 26 12:15:13 2019 +0100 cpufreq: intel_pstate: Driver-specific handling of _PPC updates In some cases, the platform firmware disables or enables turbo frequencies for all CPUs globally before triggering a _PPC change notification for one of them. Obviously, that global change affects all CPUs, not just the notified one, and it needs to be acted upon by cpufreq. The intel_pstate driver is able to detect such global changes of the settings, but it also needs to update policy limits for all CPUs if that happens, in particular if turbo frequencies are enabled globally - to allow them to be used. For this reason, introduce a new cpufreq driver callback to be invoked on _PPC notifications, if present, instead of simply calling cpufreq_update_policy() for the notified CPU and make intel_pstate use it to trigger policy updates for all CPUs in the system if global settings change. Link: https://bugzilla.kernel.org/show_bug.cgi?id=200759 Reported-by: Gabriele Mazzotta Tested-by: Gabriele Mazzotta Signed-off-by: Rafael J. Wysocki Acked-by: Viresh Kumar commit bba757d8578ff65b5168f6420552fbba3c159774 Author: Joe Perches Date: Sat Mar 30 10:25:03 2019 -0700 coding-style.rst: Generic alloc functions do not need OOM logging Generic allocation functions already emit a dump_stack() so additional error logging isn't useful. Document it as such and add a reference to the allocation API. Signed-off-by: Joe Perches Signed-off-by: Jonathan Corbet commit 0663a0588440e6f3d41667287b6f001161d2d7c7 Author: Federico Vaga Date: Wed Mar 27 23:28:35 2019 +0100 doc:it: alignement clarification about sign-off and Co-developed-by Align Italian documentation after the following patch to the main documents commit 24a2bb90741b docs: Clarify the usage and sign-off requirements for Co-developed-by Signed-off-by: Federico Vaga Signed-off-by: Jonathan Corbet commit 5f6df00fd4569cf76f4e9636bbfc826ea32e2dde Author: Mauro Carvalho Chehab Date: Sat Mar 30 10:45:59 2019 -0300 docs: scripts/sphinx-pre-install: suggest latexmk for building pdf The usage of latexmk improves the PDF output, as it re-run xelatex when it detects the need, in order to properly generate indexes and cross-references. As this is not a mandatory requirement, only suggest its addition. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 28f7c994255a9811caa17253353036559852c99c Author: Mauro Carvalho Chehab Date: Sat Mar 30 10:45:58 2019 -0300 docs: Makefile: use latexmk if available In the past, Sphinx was generating a LaTex Makefile that would run xelatex 3 times. Running it multiple times is needed in order to make the indexes right. However, newer versions of it runs it just once, as it expects the machine to use the "latexmk" build, with automatically detects the need for rebuilds. So, add a logic at the Makefile in order to detect if latexmk is installed. If so, it will call it. As an additional bonus, the output of latexmk is a little bit better, making easier to identify build problems. Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Jonathan Corbet commit 8ba2876ddf935b845340571e2d197347b428879e Author: Omer Shpigelman Date: Mon Apr 1 22:23:02 2019 +0300 habanalabs: add goya implementation for debug configuration This patch adds the ASIC-specific function for GOYA to configure the coresight components. Most of the components have an enabled/disabled flag, depending on whether the user wants to enable the component or disable it. For some of the components, such as ETR and SPMU, the user can also request to read values from them. Those values are needed for the user to parse the trace data. The ETR configuration is also checked for security purposes, to make sure the trace data is written to the device's DRAM. Signed-off-by: Omer Shpigelman Signed-off-by: Oded Gabbay commit 315bc055ed5667232859b17adb837f87c1629f81 Author: Omer Shpigelman Date: Mon Apr 1 22:31:22 2019 +0300 habanalabs: add new IOCTL for debug, tracing and profiling Habanalabs ASICs use the ARM coresight infrastructure to support debug, tracing and profiling of neural networks topologies. Because the coresight is configured using register writes and reads, and some of the registers hold sensitive information (e.g. the address in the device's DRAM where the trace data is written to), the user must go through the kernel driver to configure this mechanism. This patch implements the common code of the IOCTL and calls the ASIC-specific function for the actual H/W configuration. The IOCTL supports configuration of seven coresight components: ETR, ETF, STM, FUNNEL, BMON, SPMU and TIMESTAMP The user specifies which component he wishes to configure and provides a pointer to a structure (located in its process space) that contains the relevant configuration. The common code copies the relevant data from the user-space to kernel space and then calls the ASIC-specific function to do the H/W configuration. After the configuration is done, which is usually composed of several IOCTL calls depending on what the user wanted to trace, the user can start executing the topology. The trace data will be written to the user's area in the device's DRAM. After the tracing operation is complete, and user will call the IOCTL again to disable the tracing operation. The user also need to read values from registers for some of the components (e.g. the size of the trace data in the device's DRAM). In that case, the user will provide a pointer to an "output" structure in user-space, which the IOCTL code will fill according the to selected component. Signed-off-by: Omer Shpigelman Signed-off-by: Oded Gabbay commit a1c92d1c2a67d7b61dd5ed2d3bce810269613d37 Author: Oded Gabbay Date: Tue Apr 2 15:46:02 2019 +0300 habanalabs: remove extra semicolon This patch removes an extra ; after the closing brackets of a while loop. Signed-off-by: Oded Gabbay Reviewed-by: Mukesh Ojha commit 04c8a1ec395b22f060b836b72d2d4480e7e859f8 Author: Liviu Dudau Date: Tue Mar 26 10:23:40 2019 +0000 MAINTAINERS: Fix pattern for Documentation path for Arm Mali Komeda The Device Tree bindings documentation file is in a simplified path that doesn't match the MAINTAINERS entry. Reported-by: Joe Perches Reviewed-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit 57683268189140d3a02c71bb39933a0faec39234 Author: Liviu Dudau Date: Mon Mar 25 16:31:44 2019 +0000 arm/komeda: Compile komeda_debugfs_init() only if CONFIG_DEBUG_FS is enabled We don't call this function if CONFIG_DEBUG_FS is not defined, but we should not be compiling it either, as the declaration of the debugfs core functions is not included. Reported by the kbuild test robot. Reviewed-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit 1c3a2c864d2da0454bca1e41d3e0090c18678909 Author: Andi Kleen Date: Thu Mar 14 14:56:26 2019 -0700 perf vendor events intel: Update Silvermont to v14 Signed-off-by: Andi Kleen Cc: Kan Liang Cc: Jiri Olsa Link: https://lkml.kernel.org/r/20190315165219.GA21223@tassilo.jf.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit c53dd58988385c3f0861ea1d487489bad8cc69a7 Author: Andi Kleen Date: Thu Mar 14 14:55:53 2019 -0700 perf vendor events intel: Update GoldmontPlus to v1.01 Signed-off-by: Andi Kleen Cc: Kan Liang Cc: Jiri Olsa Link: https://lkml.kernel.org/r/20190315165219.GA21223@tassilo.jf.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit f3ef08583ea61eb4d86dfb33f0e0ebe2bc4f6e64 Author: Andi Kleen Date: Thu Mar 14 14:55:34 2019 -0700 perf vendor events intel: Update Goldmont to v13 Signed-off-by: Andi Kleen Cc: Kan Liang Cc: Jiri Olsa Link: https://lkml.kernel.org/r/20190315165219.GA21223@tassilo.jf.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit b1580f542ca7d4bec387559b05e62b1b2f5f08d2 Author: Andi Kleen Date: Thu Mar 14 14:55:07 2019 -0700 perf vendor events intel: Update Bonnell to V4 Signed-off-by: Andi Kleen Cc: Kan Liang Cc: Jiri Olsa Link: https://lkml.kernel.org/r/20190315165219.GA21223@tassilo.jf.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 643e72255e35f49ac1a2e1ca409a8ccd5b4598b6 Author: Andi Kleen Date: Thu Mar 14 08:43:04 2019 -0700 perf vendor events intel: Update KnightsLanding events to v9 Signed-off-by: Andi Kleen Cc: Kan Liang Cc: Jiri Olsa Link: https://lkml.kernel.org/r/20190315165219.GA21223@tassilo.jf.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit efc351f1b55070887184549ec3b8b47a3570ae78 Author: Andi Kleen Date: Thu Mar 14 08:42:14 2019 -0700 perf vendor events intel: Update Haswell events to v28 Signed-off-by: Andi Kleen Cc: Kan Liang Cc: Jiri Olsa Link: https://lkml.kernel.org/r/20190315165219.GA21223@tassilo.jf.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 2111da70ff1094ed65d15f00e6285b668f689b87 Author: Andi Kleen Date: Thu Mar 14 08:41:35 2019 -0700 perf vendor events intel: Update IvyBridge events to v21 Signed-off-by: Andi Kleen Cc: Kan Liang Cc: Jiri Olsa Link: https://lkml.kernel.org/r/20190315165219.GA21223@tassilo.jf.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 59da390e54a4bfa674c6a61727a5e0243ba0ad74 Author: Andi Kleen Date: Thu Mar 14 08:41:12 2019 -0700 perf vendor events intel: Update SandyBridge events to v16 Signed-off-by: Andi Kleen Cc: Kan Liang Cc: Jiri Olsa Link: https://lkml.kernel.org/r/20190315165219.GA21223@tassilo.jf.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit e6b32be4455f57884bf2a312692c1f4135e35e02 Author: Andi Kleen Date: Thu Mar 14 08:40:51 2019 -0700 perf vendor events intel: Update JakeTown events to v20 Signed-off-by: Andi Kleen Cc: Kan Liang Cc: Jiri Olsa Link: https://lkml.kernel.org/r/20190315165219.GA21223@tassilo.jf.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 009edd9ae0e77e5cbc6d8767e02be15b4e8b55c5 Author: Andi Kleen Date: Thu Mar 14 08:40:32 2019 -0700 perf vendor events intel: Update IvyTown events to v20 Signed-off-by: Andi Kleen Cc: Kan Liang Cc: Jiri Olsa Link: https://lkml.kernel.org/r/20190315165219.GA21223@tassilo.jf.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit e313477f7e76f23c3e2d45428f9456ba675bc702 Author: Andi Kleen Date: Thu Mar 14 08:39:49 2019 -0700 perf vendor events intel: Update HaswellX events to v20 Signed-off-by: Andi Kleen Cc: Kan Liang Cc: Jiri Olsa Link: https://lkml.kernel.org/r/20190315165219.GA21223@tassilo.jf.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 9f0f4a242c24221ed006f449c3f67b863b12985c Author: Andi Kleen Date: Thu Mar 14 08:39:28 2019 -0700 perf vendor events intel: Update BroadwellX events to v14 Signed-off-by: Andi Kleen Cc: Kan Liang Cc: Jiri Olsa Link: https://lkml.kernel.org/r/20190315165219.GA21223@tassilo.jf.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 19f2d40c57141bf586c5b4f6bd5d8fedf7b54f3e Author: Andi Kleen Date: Thu Mar 14 08:39:05 2019 -0700 perf vendor events intel: Update SkylakeX events to v1.12 Signed-off-by: Andi Kleen Cc: Kan Liang Cc: Jiri Olsa Link: https://lkml.kernel.org/r/20190315165219.GA21223@tassilo.jf.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 24339348b9153047c08b5879bc69d3327cb07783 Author: Andi Kleen Date: Thu Mar 14 08:38:43 2019 -0700 perf vendor events intel: Update Skylake events to v42 Signed-off-by: Andi Kleen Cc: Kan Liang Cc: Jiri Olsa Link: https://lkml.kernel.org/r/20190315165219.GA21223@tassilo.jf.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit d2243329ef3c5107d00dee4327a9884a394ef715 Author: Andi Kleen Date: Thu Mar 14 08:37:33 2019 -0700 perf vendor events intel: Update Broadwell-DE events to v7 Signed-off-by: Andi Kleen Cc: Kan Liang Cc: Jiri Olsa Link: https://lkml.kernel.org/r/20190315165219.GA21223@tassilo.jf.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 8313fe2d685da168b732421f85714cfd702d2141 Author: Andi Kleen Date: Thu Mar 14 08:36:31 2019 -0700 perf vendor events intel: Update Broadwell events to v23 Signed-off-by: Andi Kleen Cc: Kan Liang Cc: Jiri Olsa Link: https://lkml.kernel.org/r/20190315165219.GA21223@tassilo.jf.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit fd5500989c8f3c3944ac0a144be04bae2506f7ba Author: Andi Kleen Date: Thu Mar 14 08:03:48 2019 -0700 perf vendor events intel: Update metrics from TMAM 3.5 Update all the Intel JSON metrics from Ahmad Yasin's TMAM 3.5 for Intel big core from Sandy Bridge to Cascade Lake. This has many improvements and new metircs - New TopDownL1_SMT group that provides a per SMT thread version of --topdown that does not require -a anymore. The drawback is increased multiplexing though since L1 TopDown does not fit into 4 generic counters anymore. - Added SMT aware versions of other metrics - Split SMT aware metrics into separate metrics to avoid unnecessary event collections - New metrics for better branch analysis: Estimated Branch_Mispredict_Costs, Instructions per taken Branch, Branch Instructions per Taken Branch, etc. - Instruction mix metrics: Instructions per load, Instructions per store, Instructions per Branch, Instructions per Call - New Cache metrics: Bandwidth to L1/L2/L3 caches. L1/L2/L3 misses per kilo instructions. memory level parallelism - New memory controller metrics: Normalized memory bandwidth in interval mode, Average memory latency, Average number of parallel read requests, - 3DXP persistent memory metrics for Cascade Lake: 3dxp read latency, 3dxp read/write bandwidth - Some other useful metrics like Instruction Level Parallelism, - Various other improvements. Not all metrics are available on all CPUs. Skylake has best coverage. Signed-off-by: Andi Kleen Cc: Kan Liang Cc: Jiri Olsa Link: https://lkml.kernel.org/r/20190315165219.GA21223@tassilo.jf.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 470530bbb8fbbf2a09bd1d7150bb92501c5c54e6 Author: Alexey Budankov Date: Mon Mar 18 20:40:26 2019 +0300 perf record: Implement --mmap-flush= option Implement a --mmap-flush option that specifies minimal number of bytes that is extracted from mmaped kernel buffer to store into a trace. The default option value is 1 byte what means every time trace writing thread finds some new data in the mmaped buffer the data is extracted, possibly compressed and written to a trace. $ tools/perf/perf record --mmap-flush 1024 -e cycles -- matrix.gcc $ tools/perf/perf record --aio --mmap-flush 1K -e cycles -- matrix.gcc The option is independent from -z setting, doesn't vary with compression level and can serve two purposes. The first purpose is to increase the compression ratio of a trace data. Larger data chunks are compressed more effectively so the implemented option allows specifying data chunk size to compress. Also at some cases executing more write syscalls with smaller data size can take longer than executing less write syscalls with bigger data size due to syscall overhead so extracting bigger data chunks specified by the option value could additionally decrease runtime overhead. The second purpose is to avoid self monitoring live-lock issue in system wide (-a) profiling mode. Profiling in system wide mode with compression (-a -z) can additionally induce data into the kernel buffers along with the data from monitored processes. If performance data rate and volume from the monitored processes is high then trace streaming and compression activity in the tool is also high. High tool process activity can lead to subtle live-lock effect when compression of single new byte from some of mmaped kernel buffer leads to generation of the next single byte at some mmaped buffer. So perf tool process ends up in endless self monitoring. Implemented synch parameter is the mean to force data move independently from the specified flush threshold value. Despite the provided flush value the tool needs capability to unconditionally drain memory buffers, at least in the end of the collection. Committer testing: Running with the default value, i.e. as soon as there is something to read go on consuming, we first write the synthesized events, small chunks of about 128 bytes: # perf trace -m 2048 --call-graph dwarf -e write -- perf record 101.142 ( 0.004 ms): perf/25821 write(fd: 3, buf: 0x210db60, count: 120) = 120 __libc_write (/usr/lib64/libpthread-2.28.so) ion (/home/acme/bin/perf) record__write (inlined) process_synthesized_event (/home/acme/bin/perf) perf_tool__process_synth_event (inlined) perf_event__synthesize_mmap_events (/home/acme/bin/perf) Then we move to reading the mmap buffers consuming the events put there by the kernel perf infrastructure: 107.561 ( 0.005 ms): perf/25821 write(fd: 3, buf: 0x7f1befc02000, count: 336) = 336 __libc_write (/usr/lib64/libpthread-2.28.so) ion (/home/acme/bin/perf) record__write (inlined) record__pushfn (/home/acme/bin/perf) perf_mmap__push (/home/acme/bin/perf) record__mmap_read_evlist (inlined) record__mmap_read_all (inlined) __cmd_record (inlined) cmd_record (/home/acme/bin/perf) 12919.953 ( 0.136 ms): perf/25821 write(fd: 3, buf: 0x7f1befc83150, count: 184984) = 184984 12920.094 ( 0.155 ms): perf/25821 write(fd: 3, buf: 0x7f1befc02150, count: 261816) = 261816 12920.253 ( 0.093 ms): perf/25821 write(fd: 3, buf: 0x7f1befb81120, count: 170832) = 170832 If we limit it to write only when more than 16MB are available for reading, it throttles that to a quarter of the --mmap-pages set for 'perf record', which by default get to 528384 bytes, found out using 'record -v': mmap flush: 132096 mmap size 528384B With that in place all the writes coming from record__mmap_read_evlist(), i.e. from the mmap buffers setup by the kernel perf infrastructure were at least 132096 bytes long. Trying with a bigger mmap size: perf trace -e write perf record -v -m 2048 --mmap-flush 16M 74982.928 ( 2.471 ms): perf/26500 write(fd: 3, buf: 0x7ff94a6cc000, count: 3580888) = 3580888 74985.406 ( 2.353 ms): perf/26500 write(fd: 3, buf: 0x7ff949ecb000, count: 3453256) = 3453256 74987.764 ( 2.629 ms): perf/26500 write(fd: 3, buf: 0x7ff9496ca000, count: 3859232) = 3859232 74990.399 ( 2.341 ms): perf/26500 write(fd: 3, buf: 0x7ff948ec9000, count: 3769032) = 3769032 74992.744 ( 2.064 ms): perf/26500 write(fd: 3, buf: 0x7ff9486c8000, count: 3310520) = 3310520 74994.814 ( 2.619 ms): perf/26500 write(fd: 3, buf: 0x7ff947ec7000, count: 4194688) = 4194688 74997.439 ( 2.787 ms): perf/26500 write(fd: 3, buf: 0x7ff9476c6000, count: 4029760) = 4029760 Was again limited to a quarter of the mmap size: mmap flush: 2098176 mmap size 8392704B A warning about that would be good to have but can be added later, something like: "max flush is a quarter of the mmap size, if wanting to bump the mmap flush further, bump the mmap size as well using -m/--mmap-pages" Also rename the 'sync' parameters to 'synch' to keep tools/perf building with older glibcs: cc1: warnings being treated as errors builtin-record.c: In function 'record__mmap_read_evlist': builtin-record.c:775: warning: declaration of 'sync' shadows a global declaration /usr/include/unistd.h:933: warning: shadowed declaration is here builtin-record.c: In function 'record__mmap_read_all': builtin-record.c:856: warning: declaration of 'sync' shadows a global declaration /usr/include/unistd.h:933: warning: shadowed declaration is here Signed-off-by: Alexey Budankov Reviewed-by: Jiri Olsa Tested-by: Arnaldo Carvalho de Melo Cc: Alexander Shishkin Cc: Andi Kleen Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/f6600d72-ecfa-2eb7-7e51-f6954547d500@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit 3b1c5d9659718263c7f9c93af82f98221c58f171 Author: Alexey Budankov Date: Mon Mar 18 20:39:49 2019 +0300 tools build: Implement libzstd feature check, LIBZSTD_DIR and NO_LIBZSTD defines Implement libzstd feature check, NO_LIBZSTD and LIBZSTD_DIR defines to override Zstd library sources or disable the feature from the command line: $ make -C tools/perf LIBZSTD_DIR=/path/to/zstd/sources/ clean all $ make -C tools/perf NO_LIBZSTD=1 clean all Auto detection feature status is reported just before compilation starts. If your system has some version of the zstd library preinstalled then the build system finds and uses it during the build. If you still prefer to compile with some other version of zstd library you have capability to refer the compilation to that version using LIBZSTD_DIR define. Signed-off-by: Alexey Budankov Reviewed-by: Jiri Olsa Cc: Alexander Shishkin Cc: Andi Kleen Cc: Namhyung Kim Cc: Peter Zijlstra Link: http://lkml.kernel.org/r/9b4cd8b0-10a3-1f1e-8d6b-5922a7ca216b@linux.intel.com Signed-off-by: Arnaldo Carvalho de Melo commit c9bd7796959a8b92afe79c392dd54992bfc67328 Author: Tzvetomir Stoyanov Date: Mon Apr 1 12:43:20 2019 -0400 tools lib traceevent: Rename input arguments and local variables of libtraceevent from pevent to tep "pevent" to "tep" renaming of: - all "pevent" input arguments of libtraceevent internal functions. - all local "pevent" variables of libtraceevent. This makes the implementation consistent with the chosen naming convention, tep (trace event parser), and will avoid any confusion with the old pevent name Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lore.kernel.org/linux-trace-devel/20190401132111.13727-5-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190401164344.944953447@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 6b1f4c426a60387f1291d2ba3838c7b0914be12f Author: Tzvetomir Stoyanov Date: Mon Apr 1 12:43:19 2019 -0400 perf tools, tools lib traceevent: Rename "pevent" member of struct tep_event_filter to "tep" The member "pevent" of the struct tep_event_filter is renamed to "tep". This makes the struct consistent with the chosen naming convention: tep (trace event parser), instead of the old pevent. Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lore.kernel.org/linux-trace-devel/20190401132111.13727-4-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190401164344.785896189@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 69769ce159cbfd7567815a86cfc3ea63423de61b Author: Tzvetomir Stoyanov Date: Mon Apr 1 12:43:18 2019 -0400 perf tools, tools lib traceevent: Rename "pevent" member of struct tep_event to "tep" The member "pevent" of the struct tep_event is renamed to "tep". This makes the struct consistent with the chosen naming convention: tep (trace event parser), instead of the old pevent. Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lore.kernel.org/linux-trace-devel/20190401132111.13727-3-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190401164344.627724996@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 047ff221e3ab07129a3566683e95a4d142f7c3c0 Author: Tzvetomir Stoyanov Date: Mon Apr 1 12:43:17 2019 -0400 tools lib traceevent: Rename input arguments of libtraceevent APIs from pevent to tep Input arguments of libtraceevent APIs are renamed from "struct tep_handle *pevent" to "struct tep_handle *tep". This makes the API consistent with the chosen naming convention: tep (trace event parser), instead of the old pevent. Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lore.kernel.org/linux-trace-devel/20190401132111.13727-2-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190401164344.465573837@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 55c34ae076f62ed7ad0fc86cd8b697a6f577c431 Author: Tzvetomir Stoyanov Date: Mon Apr 1 12:43:16 2019 -0400 tools tools, tools lib traceevent: Make traceevent APIs more consistent Rename some traceevent APIs for consistency: tep_pid_is_registered() to tep_is_pid_registered() tep_file_bigendian() to tep_is_file_bigendian() to make the names and return values consistent with other tep_is_... APIs tep_data_lat_fmt() to tep_data_latency_format() to make the name more descriptive tep_host_bigendian() to tep_is_bigendian() tep_set_host_bigendian() to tep_set_local_bigendian() tep_is_host_bigendian() to tep_is_local_bigendian() "host" can be confused with VMs, and "local" is about the local machine. All tep_is_..._bigendian(struct tep_handle *tep) APIs return the saved data in the tep handle, while tep_is_bigendian() returns the running machine's endianness. All tep_is_... functions are modified to return bool value, instead of int. Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/20190327141946.4353-2-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190401164344.288624897@goodmis.org [ Removed some extra parenthesis around return statements ] Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit fea6b632235b9bedc58c72cd24f1865bb0c365db Author: Tzvetomir Stoyanov Date: Mon Apr 1 12:43:15 2019 -0400 tools lib traceevent: Remove call to exit() from tep_filter_add_filter_str() This patch removes call to exit() from tep_filter_add_filter_str(). A library function should not force the application to exit. In the current implementation tep_filter_add_filter_str() calls exit() when a special "test_filters" mode is set, used only for debugging purposes. When this mode is set and a filter is added - its string is printed to the console and exit() is called. This patch changes the logic - when in "test_filters" mode, the filter string is still printed, but the exit() is not called. It is up to the application to track when "test_filters" mode is set and to call exit, if needed. Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/20190326154328.28718-9-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190401164344.121717482@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit a634b278ec2504fdd2acd694f5158ae79016fb70 Author: Tzvetomir Stoyanov Date: Mon Apr 1 12:43:14 2019 -0400 tools lib traceevent: Remove tep filter trivial APIs This patch removes trivial filter tep APIs: enum tep_filter_trivial_type tep_filter_event_has_trivial() tep_update_trivial() tep_filter_clear_trivial() Trivial filters is an optimization, used only in the first version of KernelShark. The API is deprecated, the next KernelShark release does not use it. Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lkml.kernel.org/r/20190326154328.28718-4-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190401164343.968458918@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 2ce4639f6936261bf6e0bae5c21a0c09a8daeacc Author: Steven Rostedt (VMware) Date: Mon Apr 1 12:43:13 2019 -0400 tools lib traceevent: Removed unneeded !! and return parenthesis As return is not a function we do not need parenthesis around the return value. Also, a function returning bool does not need to add !!. Signed-off-by: Steven Rostedt (VMware) Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: Tzvetomir Stoyanov Link: http://lkml.kernel.org/r/20190401164343.817886725@goodmis.org Signed-off-by: Arnaldo Carvalho de Melo commit 80c5526c8544ae76cba31fb9702ab8accac1f0f3 Author: Tzvetomir Stoyanov Date: Mon Apr 1 12:43:12 2019 -0400 tools lib traceevent: Implement new traceevent APIs for accessing struct tep_handler fields As struct tep_handler definition is not exposed as part of libtraceevent API, its fields cannot be accessed directly by the library users. This patch implements new APIs, which can be used to access the struct tep_handler fields: tep_get_event() - retrieves an event pointer at a specific index tep_get_first_event() - is modified to use tep_get_event() tep_clear_flag() - clears a tep handle flag tep_test_flag() - test if a given flag is set tep_get_header_timestamp_size() - returns the size of the timestamp stored in the header. tep_get_cpus() - returns the number of CPUs tep_is_old_format() - returns true if data was created by an older kernel with the old data format tep_set_print_raw() - have the output print in the raw format tep_set_test_filters() - debugging utility for testing tep filters Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lore.kernel.org/linux-trace-devel/20190325145017.30246-4-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190401164343.679629539@goodmis.org [ Renamed some newly added "pevent" to "tep" ] Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit d5d2d05bd5b02efa8545a3323a60465de9efb21e Author: Tzvetomir Stoyanov Date: Mon Apr 1 12:43:11 2019 -0400 tools lib traceevent: Coding style fixes Fixed few coding style problems in event-parse-api.c Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lore.kernel.org/linux-trace-devel/20190325145017.30246-3-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190401164343.537086316@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 489b34948cbbc725755e1b1125dbdb16401eea07 Author: Tzvetomir Stoyanov Date: Mon Apr 1 12:43:10 2019 -0400 tools lib traceevent: Change description of few APIs APIs descriptions should describe the purpose of the function, its parameters and return value. While working on man pages implementation, I noticed mismatches in the descriptions of few APIs. This patch changes the description of these APIs, making them consistent with the man pages: - tep_print_num_field() - tep_print_func_field() - tep_get_header_page_size() - tep_get_long_size() - tep_set_long_size() - tep_get_page_size() - tep_set_page_size() Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lore.kernel.org/linux-trace-devel/20190325145017.30246-2-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190401164343.396759247@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit 70df6a7311186a7ab0b19f481dee4ca540a73837 Author: Steven Rostedt (Red Hat) Date: Mon Apr 1 12:43:09 2019 -0400 tools lib traceevent: Add more debugging to see various internal ring buffer entries When trace-cmd report --debug is set, show the internal ring buffer entries like time-extends and padding. This requires adding new kbuffer API to retrieve these items. Signed-off-by: Steven Rostedt (VMware) Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: Tzvetomir Stoyanov Link: http://lkml.kernel.org/r/20190401164343.257591565@goodmis.org Signed-off-by: Arnaldo Carvalho de Melo commit 6699ed712a97f70267e017f509126b890f6f6b28 Author: Tzvetomir Stoyanov Date: Mon Apr 1 12:43:08 2019 -0400 tools lib traceevent: Implement a new API, tep_list_events_copy() Existing API tep_list_events() is not thread safe, it uses the internal array sort_events to keep cache of the sorted events and reuses it. This patch implements a new API, tep_list_events_copy(), which allocates new sorted array each time it is called. It could be used when a sorted events functionality is needed in thread safe use cases. It is up to the caller to free the array. Signed-off-by: Tzvetomir Stoyanov Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Link: http://lore.kernel.org/linux-trace-devel/20181218133013.31094-1-tstoyanov@vmware.com Link: http://lkml.kernel.org/r/20190401164343.117437443@goodmis.org Signed-off-by: Steven Rostedt (VMware) Signed-off-by: Arnaldo Carvalho de Melo commit fed33e905c4beea96a066686f8be2b489eb5068e Author: Steven Rostedt (VMware) Date: Mon Apr 1 12:43:07 2019 -0400 tools lib traceevent: Add mono clocks to be parsed in seconds The mono clocks can display in seconds instead of whole numbers: trace-cmd-521 [001] 99176715281005: sched_waking: comm=kworker/u16:2 pid=32118 prio=120 target_cpu=002 trace-cmd-521 [001] 99176715286349: sched_wake_idle_without_ipi: cpu=2 trace-cmd-521 [001] 99176715288047: sched_wakeup: kworker/u16:2:32118 [120] success=1 CPU:002 trace-cmd-521 [001] 99176715290022: sched_waking: comm=trace-cmd pid=523 prio=120 target_cpu=000 trace-cmd-521 [001] 99176715292332: sched_wake_idle_without_ipi: cpu=0 trace-cmd-521 [001] 99176715292855: sched_wakeup: trace-cmd:523 [120] success=1 CPU:000 trace-cmd-521 [001] 99176715300697: sched_stat_runtime: comm=trace-cmd pid=521 runtime=80233 [ns] vruntime=66705540554 [ns Break it up in seconds: trace-cmd-521 [001] 99176.715281: sched_waking: comm=kworker/u16:2 pid=32118 prio=120 target_cpu=002 trace-cmd-521 [001] 99176.715286: sched_wake_idle_without_ipi: cpu=2 trace-cmd-521 [001] 99176.715288: sched_wakeup: kworker/u16:2:32118 [120] success=1 CPU:002 trace-cmd-521 [001] 99176.715290: sched_waking: comm=trace-cmd pid=523 prio=120 target_cpu=000 trace-cmd-521 [001] 99176.715292: sched_wake_idle_without_ipi: cpu=0 trace-cmd-521 [001] 99176.715293: sched_wakeup: trace-cmd:523 [120] success=1 CPU:000 trace-cmd-521 [001] 99176.715301: sched_stat_runtime: comm=trace-cmd pid=521 runtime=80233 [ns] vruntime=66705540554 [ns] Signed-off-by: Steven Rostedt (VMware) Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: Tzvetomir Stoyanov Link: http://lkml.kernel.org/r/20190401164342.976554023@goodmis.org Signed-off-by: Arnaldo Carvalho de Melo commit 328b82b7497787cf4e4856a216dbf4e8a54c06a6 Author: Steven Rostedt (VMware) Date: Mon Apr 1 12:43:06 2019 -0400 tools lib traceevent: Handle trace_printk() "%px" With security updates, %p in the kernel is hashed to protect true kernel locations. But trace_printk() is not allowed in production systems, and when a pointer is used, there are many times that the actual address is needed. "%px" produces the real address. But libtraceevent does not know how to handle that extension. Add it. Signed-off-by: Steven Rostedt (VMware) Cc: Andrew Morton Cc: Jiri Olsa Cc: Namhyung Kim Cc: Tzvetomir Stoyanov Link: http://lkml.kernel.org/r/20190401164342.837312153@goodmis.org Signed-off-by: Arnaldo Carvalho de Melo commit 2bc13b83e6298486371761de503faeffd15b7534 Author: NeilBrown Date: Fri Mar 29 10:46:17 2019 -0700 md: batch flush requests. Currently if many flush requests are submitted to an md device is quick succession, they are serialized and can take a long to process them all. We don't really need to call flush all those times - a single flush call can satisfy all requests submitted before it started. So keep track of when the current flush started and when it finished, allow any pending flush that was requested before the flush started to complete without waiting any more. Test results from Xiao: Test is done on a raid10 device which is created by 4 SSDs. The tool is dbench. 1. The latest linux stable kernel Operation Count AvgLat MaxLat -------------------------------------------------- Deltree 768 10.509 78.305 Flush 2078376 0.013 10.094 Close 21787697 0.019 18.821 LockX 96580 0.007 3.184 Mkdir 384 0.008 0.062 Rename 1255883 0.191 23.534 ReadX 46495589 0.020 14.230 WriteX 14790591 7.123 60.706 Unlink 5989118 0.440 54.551 UnlockX 96580 0.005 2.736 FIND_FIRST 10393845 0.042 12.079 SET_FILE_INFORMATION 2415558 0.129 10.088 QUERY_FILE_INFORMATION 4711725 0.005 8.462 QUERY_PATH_INFORMATION 26883327 0.032 21.715 QUERY_FS_INFORMATION 4929409 0.010 8.238 NTCreateX 29660080 0.100 53.268 Throughput 1034.88 MB/sec (sync open) 128 clients 128 procs max_latency=60.712 ms 2. With patch1 "Revert "MD: fix lock contention for flush bios"" Operation Count AvgLat MaxLat -------------------------------------------------- Deltree 256 8.326 36.761 Flush 693291 3.974 180.269 Close 7266404 0.009 36.929 LockX 32160 0.006 0.840 Mkdir 128 0.008 0.021 Rename 418755 0.063 29.945 ReadX 15498708 0.007 7.216 WriteX 4932310 22.482 267.928 Unlink 1997557 0.109 47.553 UnlockX 32160 0.004 1.110 FIND_FIRST 3465791 0.036 7.320 SET_FILE_INFORMATION 805825 0.015 1.561 QUERY_FILE_INFORMATION 1570950 0.005 2.403 QUERY_PATH_INFORMATION 8965483 0.013 14.277 QUERY_FS_INFORMATION 1643626 0.009 3.314 NTCreateX 9892174 0.061 41.278 Throughput 345.009 MB/sec (sync open) 128 clients 128 procs max_latency=267.939 m 3. With patch1 and patch2 Operation Count AvgLat MaxLat -------------------------------------------------- Deltree 768 9.570 54.588 Flush 2061354 0.666 15.102 Close 21604811 0.012 25.697 LockX 95770 0.007 1.424 Mkdir 384 0.008 0.053 Rename 1245411 0.096 12.263 ReadX 46103198 0.011 12.116 WriteX 14667988 7.375 60.069 Unlink 5938936 0.173 30.905 UnlockX 95770 0.005 4.147 FIND_FIRST 10306407 0.041 11.715 SET_FILE_INFORMATION 2395987 0.048 7.640 QUERY_FILE_INFORMATION 4672371 0.005 9.291 QUERY_PATH_INFORMATION 26656735 0.018 19.719 QUERY_FS_INFORMATION 4887940 0.010 7.654 NTCreateX 29410811 0.059 28.551 Throughput 1026.21 MB/sec (sync open) 128 clients 128 procs max_latency=60.075 ms Cc: # v4.19+ Tested-by: Xiao Ni Signed-off-by: NeilBrown Signed-off-by: Song Liu Signed-off-by: Jens Axboe commit 4bc034d35377196c854236133b07730a777c4aba Author: NeilBrown Date: Fri Mar 29 10:46:16 2019 -0700 Revert "MD: fix lock contention for flush bios" This reverts commit 5a409b4f56d50b212334f338cb8465d65550cd85. This patch has two problems. 1/ it make multiple calls to submit_bio() from inside a make_request_fn. The bios thus submitted will be queued on current->bio_list and not submitted immediately. As the bios are allocated from a mempool, this can theoretically result in a deadlock - all the pool of requests could be in various ->bio_list queues and a subsequent mempool_alloc could block waiting for one of them to be released. 2/ It aims to handle a case when there are many concurrent flush requests. It handles this by submitting many requests in parallel - all of which are identical and so most of which do nothing useful. It would be more efficient to just send one lower-level request, but allow that to satisfy multiple upper-level requests. Fixes: 5a409b4f56d5 ("MD: fix lock contention for flush bios") Cc: # v4.19+ Tested-by: Xiao Ni Signed-off-by: NeilBrown Signed-off-by: Song Liu Signed-off-by: Jens Axboe commit 4f4fd7c5798bbdd5a03a60f6269cf1177fbd11ef Author: Nigel Croxon Date: Fri Mar 29 10:46:15 2019 -0700 Don't jump to compute_result state from check_result state Changing state from check_state_check_result to check_state_compute_result not only is unsafe but also doesn't appear to serve a valid purpose. A raid6 check should only be pushing out extra writes if doing repair and a mis-match occurs. The stripe dev management will already try and do repair writes for failing sectors. This patch makes the raid6 check_state_check_result handling work more like raid5's. If somehow too many failures for a check, just quit the check operation for the stripe. When any checks pass, don't try and use check_state_compute_result for a purpose it isn't needed for and is unsafe for. Just mark the stripe as in sync for passing its parity checks and let the stripe dev read/write code and the bad blocks list do their job handling I/O errors. Repro steps from Xiao: These are the steps to reproduce this problem: 1. redefined OPT_MEDIUM_ERR_ADDR to 12000 in scsi_debug.c 2. insmod scsi_debug.ko dev_size_mb=11000 max_luns=1 num_tgts=1 3. mdadm --create /dev/md127 --level=6 --raid-devices=5 /dev/sde1 /dev/sde2 /dev/sde3 /dev/sde5 /dev/sde6 sde is the disk created by scsi_debug 4. echo "2" >/sys/module/scsi_debug/parameters/opts 5. raid-check It panic: [ 4854.730899] md: data-check of RAID array md127 [ 4854.857455] sd 5:0:0:0: [sdr] tag#80 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE [ 4854.859246] sd 5:0:0:0: [sdr] tag#80 Sense Key : Medium Error [current] [ 4854.860694] sd 5:0:0:0: [sdr] tag#80 Add. Sense: Unrecovered read error [ 4854.862207] sd 5:0:0:0: [sdr] tag#80 CDB: Read(10) 28 00 00 00 2d 88 00 04 00 00 [ 4854.864196] print_req_error: critical medium error, dev sdr, sector 11656 flags 0 [ 4854.867409] sd 5:0:0:0: [sdr] tag#100 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE [ 4854.869469] sd 5:0:0:0: [sdr] tag#100 Sense Key : Medium Error [current] [ 4854.871206] sd 5:0:0:0: [sdr] tag#100 Add. Sense: Unrecovered read error [ 4854.872858] sd 5:0:0:0: [sdr] tag#100 CDB: Read(10) 28 00 00 00 2e e0 00 00 08 00 [ 4854.874587] print_req_error: critical medium error, dev sdr, sector 12000 flags 4000 [ 4854.876456] sd 5:0:0:0: [sdr] tag#101 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE [ 4854.878552] sd 5:0:0:0: [sdr] tag#101 Sense Key : Medium Error [current] [ 4854.880278] sd 5:0:0:0: [sdr] tag#101 Add. Sense: Unrecovered read error [ 4854.881846] sd 5:0:0:0: [sdr] tag#101 CDB: Read(10) 28 00 00 00 2e e8 00 00 08 00 [ 4854.883691] print_req_error: critical medium error, dev sdr, sector 12008 flags 4000 [ 4854.893927] sd 5:0:0:0: [sdr] tag#166 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE [ 4854.896002] sd 5:0:0:0: [sdr] tag#166 Sense Key : Medium Error [current] [ 4854.897561] sd 5:0:0:0: [sdr] tag#166 Add. Sense: Unrecovered read error [ 4854.899110] sd 5:0:0:0: [sdr] tag#166 CDB: Read(10) 28 00 00 00 2e e0 00 00 10 00 [ 4854.900989] print_req_error: critical medium error, dev sdr, sector 12000 flags 0 [ 4854.902757] md/raid:md127: read error NOT corrected!! (sector 9952 on sdr1). [ 4854.904375] md/raid:md127: read error NOT corrected!! (sector 9960 on sdr1). [ 4854.906201] ------------[ cut here ]------------ [ 4854.907341] kernel BUG at drivers/md/raid5.c:4190! raid5.c:4190 above is this BUG_ON: handle_parity_checks6() ... BUG_ON(s->uptodate < disks - 1); /* We don't need Q to recover */ Cc: # v3.16+ OriginalAuthor: David Jeffery Cc: Xiao Ni Tested-by: David Jeffery Signed-off-by: David Jeffy Signed-off-by: Nigel Croxon Signed-off-by: Song Liu Signed-off-by: Jens Axboe commit 81ba6abd2bcd2812974bd3a4c43d1d032acfa751 Author: Ming Lei Date: Thu Mar 28 11:05:31 2019 +0800 block: loop: mark bvec as ITER_BVEC_FLAG_NO_REF loop is one block device, for any bio submitted to this device, the upper layer does guarantee that pages added to loop's bio won't go away when the bio is in-flight. So mark loop's bvec as ITER_BVEC_FLAG_NO_REF then get_page/put_page can be saved for serving loop's IO. Cc: linux-fsdevel@vger.kernel.org Cc: Christoph Hellwig Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit f6970f83ef79503cb24ca8324e5cfa1188674f85 Author: Ming Lei Date: Sun Mar 17 18:01:12 2019 +0800 block: don't check if adjacent bvecs in one bio can be mergeable Now both passthrough and FS IO have supported multi-page bvec, and bvec merging has been handled actually when adding page to bio, then adjacent bvecs won't be mergeable any more if they belong to same bio. So only try to merge bvecs if they are from different bios. Cc: Omar Sandoval Cc: Christoph Hellwig Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit 16e3e4187758d8936d358b26149de785b7d5a9b7 Author: Ming Lei Date: Sun Mar 17 18:01:11 2019 +0800 block: reuse __blk_bvec_map_sg() for mapping page sized bvec Inside __blk_segment_map_sg(), page sized bvec mapping is optimized a bit with one standalone branch. So reuse __blk_bvec_map_sg() to do that. Cc: Omar Sandoval Cc: Christoph Hellwig Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit cae6c2e54cc10514fec26e333f63c5cded9d2383 Author: Ming Lei Date: Sun Mar 17 18:01:10 2019 +0800 block: remove argument of 'request_queue' from __blk_bvec_map_sg The argument of 'request_queue' isn't used by __blk_bvec_map_sg(), so remove it. Cc: Omar Sandoval Cc: Christoph Hellwig Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit 489fbbcb51d0249569d863f9220de69cb31f1922 Author: Ming Lei Date: Fri Mar 29 15:08:00 2019 +0800 block: enable multi-page bvec for passthrough IO Now block IO stack is basically ready for supporting multi-page bvec, however it isn't enabled on passthrough IO. One reason is that passthrough IO is dispatched to LLD directly and bio split is bypassed, so the bio has to be built correctly for dispatch to LLD from the beginning. Implement multi-page support for passthrough IO by limitting each bvec as block device's segment and applying all kinds of queue limit in blk_add_pc_page(). Then we don't need to calculate segments any more for passthrough IO any more, turns out code is simplified much. Cc: Omar Sandoval Cc: Christoph Hellwig Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit 190470871ae28da7bdb3909f6124385c8472fc97 Author: Ming Lei Date: Sun Mar 17 18:01:08 2019 +0800 block: put the same page when adding it to bio When the added page is merged to last same page in bio_add_pc_page(), the user may need to put this page for avoiding page leak. bio_map_user_iov() needs this kind of handling, and now it deals with it by itself in hack style. Moves the handling of put page into __bio_add_pc_page(), so bio_map_user_iov() may be simplified a bit, and maybe more users can benefit from this change. Cc: Omar Sandoval Cc: Christoph Hellwig Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit 5919482e222908d40279a616b1fe6400549e32b4 Author: Ming Lei Date: Sun Mar 17 18:01:07 2019 +0800 block: check if page is mergeable in one helper Now the check for deciding if one page is mergeable to current bvec becomes a bit complicated, and we need to reuse the code before adding pc page. So move the check in one dedicated helper. No function change. Cc: Omar Sandoval Cc: Christoph Hellwig Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit 5a8ce240d4d302d27a58fd34499b2404b3a8df4f Author: Ming Lei Date: Sun Mar 17 18:01:06 2019 +0800 block: cleanup bio_add_pc_page REQ_PC is out of date, so replace it with passthrough IO. Also remove the local variable of 'prev' since we can reuse the top local variable of 'bvec'. No function change. Cc: Omar Sandoval Cc: Christoph Hellwig Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit fd7d8d4232f08b0df623d9ea7e941f0350a26e14 Author: Ming Lei Date: Sun Mar 17 18:01:05 2019 +0800 block: don't merge adjacent bvecs to one segment in bio blk_queue_split For normal filesystem IO, each page is added via blk_add_page(), in which bvec(page) merge has been handled already, and basically not possible to merge two adjacent bvecs in one bio. So not try to merge two adjacent bvecs in blk_queue_split(). Cc: Omar Sandoval Cc: Christoph Hellwig Reviewed-by: Boris Ostrovsky Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit db5ebd6edd2627d7e81a031643cf43587f63e66c Author: Ming Lei Date: Sun Mar 17 18:01:04 2019 +0800 block: avoid to break XEN by multi-page bvec XEN has special page merge requirement, see xen_biovec_phys_mergeable(). We can't merge pages into one bvec simply for XEN. So move XEN's specific check on page merge into __bio_try_merge_page(), then abvoid to break XEN by multi-page bvec. Cc: ris Ostrovsky Cc: xen-devel@lists.xenproject.org Cc: Omar Sandoval Cc: Christoph Hellwig Reviewed-by: Juergen Gross Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit 0383ad4374f7ad7edd925a2ee4753035c3f5508a Author: Ming Lei Date: Fri Mar 29 15:07:54 2019 +0800 block: pass page to xen_biovec_phys_mergeable xen_biovec_phys_mergeable() only needs .bv_page of the 2nd bio bvec for checking if the two bvecs can be merged, so pass page to xen_biovec_phys_mergeable() directly. No function change. Cc: ris Ostrovsky Cc: Juergen Gross Cc: xen-devel@lists.xenproject.org Cc: Omar Sandoval Cc: Christoph Hellwig Reviewed-by: Christoph Hellwig Reviewed-by: Boris Ostrovsky Signed-off-by: Ming Lei Signed-off-by: Jens Axboe commit ff23dfa134576e071ace69e91761d229a0f73139 Author: Shamir Rabinovitch Date: Sun Mar 31 19:10:07 2019 +0300 IB: Pass only ib_udata in function prototypes Now when ib_udata is passed to all the driver's object create/destroy APIs the ib_udata will carry the ib_ucontext for every user command. There is no need to also pass the ib_ucontext via the functions prototypes. Make ib_udata the only argument psssed. Signed-off-by: Shamir Rabinovitch Signed-off-by: Jason Gunthorpe commit bdeacabd1a5fb4c0274b949d7220501c3401a3b4 Author: Shamir Rabinovitch Date: Sun Mar 31 19:10:06 2019 +0300 IB: Remove 'uobject->context' dependency in object destroy APIs Now that we have the udata passed to all the ib_xxx object destroy APIs and the additional macro 'rdma_udata_to_drv_context' to get the ib_ucontext from ib_udata stored in uverbs_attr_bundle, we can finally start to remove the dependency of the drivers in the ib_xxx->uobject->context. Signed-off-by: Shamir Rabinovitch Signed-off-by: Jason Gunthorpe commit c4367a26357be501338e41ceae7ebb7ce57064e5 Author: Shamir Rabinovitch Date: Sun Mar 31 19:10:05 2019 +0300 IB: Pass uverbs_attr_bundle down ib_x destroy path The uverbs_attr_bundle with the ucontext is sent down to the drivers ib_x destroy path as ib_udata. The next patch will use the ib_udata to free the drivers destroy path from the dependency in 'uobject->context' as we already did for the create path. Signed-off-by: Shamir Rabinovitch Signed-off-by: Jason Gunthorpe commit a6a3797df2741aa81f33fe48f609247dba98f3f7 Author: Shamir Rabinovitch Date: Sun Mar 31 19:10:04 2019 +0300 IB: Pass uverbs_attr_bundle down uobject destroy path Pass uverbs_attr_bundle down the uobject destroy path. The next patch will use this to eliminate the dependecy of the drivers in ib_x->uobject pointers. Signed-off-by: Shamir Rabinovitch Signed-off-by: Jason Gunthorpe commit 70f06b26f07ea42d158b41bba460ce06ffa3510a Author: Shamir Rabinovitch Date: Sun Mar 31 19:10:03 2019 +0300 IB: ucontext should be set properly for all cmd & ioctl paths the Attempt to use the below commit to initialize the ucontext for the uobject destroy path has shown that the below commit is incomplete. Parts were reverted and the ucontext set up in the uverbs_attr_bundle was moved to rdma_lookup_get_uobject which is called from the uobj_get_XXX macros and rdma_alloc_begin_uobject which is called when uobject is created. Fixes: 3d9dfd060391 ("IB/uverbs: Add ib_ucontext to uverbs_attr_bundle sent from ioctl and cmd flows") Signed-off-by: Shamir Rabinovitch Signed-off-by: Jason Gunthorpe commit 5e0861baa3fa73e8bd861a4b7ba7fa992b1dff82 Author: Andi Kleen Date: Tue Mar 26 15:18:23 2019 -0700 perf list: Output tool events Add support in 'perf list' to output tool internal events, currently only 'duration_time'. Committer testing: $ perf list dur* List of pre-defined events (to be used in -e): duration_time [Tool event] Metric Groups: $ perf list sw List of pre-defined events (to be used in -e): alignment-faults [Software event] bpf-output [Software event] context-switches OR cs [Software event] cpu-clock [Software event] cpu-migrations OR migrations [Software event] dummy [Software event] emulation-faults [Software event] major-faults [Software event] minor-faults [Software event] page-faults OR faults [Software event] task-clock [Software event] duration_time [Tool event] $ perf list | grep duration duration_time [Tool event] [L1D miss outstandings duration in cycles] page walk duration are excluded in Skylake] load. EPT page walk duration are excluded in Skylake] page walk duration are excluded in Skylake] store. EPT page walk duration are excluded in Skylake] (instruction fetch) request. EPT page walk duration are excluded in instruction fetch request. EPT page walk duration are excluded in $ Signed-off-by: Andi Kleen Tested-by: Arnaldo Carvalho de Melo Acked-by: Jiri Olsa Link: http://lkml.kernel.org/r/20190326221823.11518-5-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo commit 3371f389e4be6efc496ca395b21911a8f2c2d23f Author: Andi Kleen Date: Tue Mar 26 15:18:22 2019 -0700 perf evsel: Support printing evsel name for 'duration_time' Implement printing the correct name for duration_time Signed-off-by: Andi Kleen Acked-by: Jiri Olsa Link: http://lkml.kernel.org/r/20190326221823.11518-4-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo commit f0fbb114e3025f3f737a1e1c5c39c5b2b2e671bd Author: Andi Kleen Date: Tue Mar 26 15:18:21 2019 -0700 perf stat: Implement duration_time as a proper event The perf metric expression use 'duration_time' internally to normalize events. Normal 'perf stat' without -x also prints the duration time. But when using -x, the interval is not output anywhere, which is inconvenient for any post processing which often wants to normalize values to time. So implement 'duration_time' as a proper perf event that can be specified explicitely with -e. The previous implementation of 'duration_time' only worked for metric processing. This adds the concept of a tool event that is handled by the tool. On the kernel level it is still mapped to the dummy software event, but the values are not read anymore, but instead computed by the tool. Add proper plumbing to handle this in the event parser, and display it in 'perf stat'. We don't want 'duration_time' to be added up, so it's only printed for the first CPU. % perf stat -e duration_time,cycles true Performance counter stats for 'true': 555,476 ns duration_time 771,958 cycles 0.000555476 seconds time elapsed 0.000644000 seconds user 0.000000000 seconds sys Signed-off-by: Andi Kleen Acked-by: Jiri Olsa Link: http://lkml.kernel.org/r/20190326221823.11518-3-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo commit c2b3c170db610896e4e633cba2135045333811c2 Author: Andi Kleen Date: Tue Mar 26 15:18:20 2019 -0700 perf stat: Revert checks for duration_time This reverts e864c5ca145e ("perf stat: Hide internal duration_time counter") but doing it manually since the code has now moved to a different file. The next patch will properly implement duration_time as a full event, so no need to hide it anymore. Signed-off-by: Andi Kleen Acked-by: Jiri Olsa Link: http://lkml.kernel.org/r/20190326221823.11518-2-andi@firstfloor.org Signed-off-by: Arnaldo Carvalho de Melo commit 7fcfa9a2d9a7c1b428d61992c2deaa9e37a437b0 Author: Thomas Richter Date: Fri Mar 29 14:33:37 2019 +0100 perf list: Fix s390 counter long description for L1D_RO_EXCL_WRITES Command # perf list --long-desc pmu lists the long description of the available counters. For counter named L1D_RO_EXCL_WRITES on machine types 3906 and 3907 the long description contains the counter number 'Counter:128 Name:' prefix. This is wrong. The fix changes the description text and removes this prefix. Output before: [root@m35lp76 perf]# ./perf list --long-desc pmu ... L1D_ONDRAWER_L4_SOURCED_WRITES [A directory write to the Level-1 Data cache directory where the returned cache line was sourced from On-Drawer Level-4 cache] L1D_RO_EXCL_WRITES [Counter:128 Name:L1D_RO_EXCL_WRITES A directory write to the Level-1 Data cache where the line was originally in a Read-Only state in the cache but has been updated to be in the Exclusive state that allows stores to the cache line] ... Output after: [root@m35lp76 perf]# ./perf list --long-desc pmu ... L1D_ONDRAWER_L4_SOURCED_WRITES [A directory write to the Level-1 Data cache directory where the returned cache line was sourced from On-Drawer Level-4 cache] L1D_RO_EXCL_WRITES [L1D_RO_EXCL_WRITES A directory write to the Level-1 Data cache where the line was originally in a Read-Only state in the cache but has been updated to be in the Exclusive state that allows stores to the cache line] ... Signed-off-by: Thomas Richter Cc: Heiko Carstens Cc: Hendrik Brueckner Cc: Martin Schwidefsky Fixes: 109d59b900e7 ("perf vendor events s390: Add JSON files for IBM z14") Link: http://lkml.kernel.org/r/20190329133337.60255-1-tmricht@linux.ibm.com Signed-off-by: Arnaldo Carvalho de Melo commit 514c54039da970f953164c1960d0284f87db969d Author: Arnaldo Carvalho de Melo Date: Wed Mar 27 15:22:52 2019 -0300 perf tools: Add header defining used namespace struct to event.h When adding the 'struct namespaces_event' to event.h, referencing the 'struct perf_ns_link_info' type, we forgot to add the header where it is defined, getting that definition only by sheer luck. Cc: Adrian Hunter Cc: Hari Bathini Cc: Jiri Olsa Cc: Namhyung Kim Fixes: f3b3614a284d ("perf tools: Add PERF_RECORD_NAMESPACES to include namespaces related info") Link: https://lkml.kernel.org/n/tip-qkrld0v7boc9uabjbd8csxux@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit b64f1cc6d02ce92f7752545c0bd82dc052013167 Author: Arnaldo Carvalho de Melo Date: Wed Mar 27 10:16:43 2019 -0300 perf trace beauty renameat: No need to include linux/fs.h There is no use for what is in that file, as everything is built by the tools/perf/trace/beauty/rename_flags.sh script from the copied kernel headers, the end result being: $ cat /tmp/build/perf/trace/beauty/generated/rename_flags_array.c static const char *rename_flags[] = { [0 + 1] = "NOREPLACE", [1 + 1] = "EXCHANGE", [2 + 1] = "WHITEOUT", }; $ I.e. no use of any defines from uapi/linux/fs.h Cc: Adrian Hunter Cc: Jiri Olsa Cc: Namhyung Kim Link: https://lkml.kernel.org/n/tip-lgugmfa8z4bpw5zsbuoitllb@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit 59f3bd7802d3ff7e6ddcce600f361bed288a97dd Author: Arnaldo Carvalho de Melo Date: Fri Mar 22 14:48:26 2019 -0300 perf augmented_raw_syscalls: Use a PERCPU_ARRAY map to copy more string bytes The previous method, copying to the BPF stack limited us in how many bytes we could copy from strings, use a PERCPU_ARRAY map like devised by the sysdig guys[1] to copy more bytes: Before: # trace --no-inherit -e openat touch `python -c "print "$s" 'a' * 2000"` touch: cannot touch 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa': File name too long openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/lib64/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", O_CREAT|O_NOCTTY|O_NONBLOCK|O_WRONLY, S_IRUGO|S_IWUGO) = -1 ENAMETOOLONG (File name too long) openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/usr/share/locale/en_US.UTF-8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) openat(AT_FDCWD, "/usr/share/locale/en_US.utf8/LC_MESSAGES/coreutils.mo", O_RDONLY) = -1 ENOENT (No such file or directory) # After: [root@quaco acme]# trace --no-inherit -e openat touch `python -c "print "$s" 'a' * 2000"` openat(AT_FDCWD, "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", O_CREAT|O_NOCTTY|O_NONBLOC) = -1 ENAMETOOLONG (File name too long) If we leave something like 'perf trace -e string' to trace all syscalls with a string, and then do some 'perf top', to get some annotation for the augmented_raw_syscalls.o BPF program we get: │ → callq *ffffffffc45576d1 ▒ │ augmented_args->filename.size = probe_read_str(&augmented_args->filename.value, ▒ 0.05 │ mov %eax,0x40(%r13) Looking with pahole, expanding types, asking for hex offsets and sizes, and use of BTF type information to see what is at that 0x40 offset from %r13: # pahole -F btf -C augmented_args_filename --expand_types --hex /home/acme/git/perf/tools/perf/examples/bpf/augmented_raw_syscalls.o struct augmented_args_filename { struct syscall_enter_args { long long unsigned int common_tp_fields; /* 0 0x8 */ long int syscall_nr; /* 0x8 0x8 */ long unsigned int args[6]; /* 0x10 0x30 */ } args; /* 0 0x40 */ /* --- cacheline 1 boundary (64 bytes) --- */ struct augmented_filename { unsigned int size; /* 0x40 0x4 */ int reserved; /* 0x44 0x4 */ char value[4096]; /* 0x48 0x1000 */ } filename; /* 0x40 0x1008 */ /* size: 4168, cachelines: 66, members: 2 */ /* last cacheline: 8 bytes */ }; # Then looking if PATH_MAX leaves some signature in the tests: │ if (augmented_args->filename.size < sizeof(augmented_args->filename.value)) { ▒ │ cmp $0xfff,%rdi 0xfff == 4095 sizeof(augmented_args->filename.value) == PATH_MAX == 4096 [1] https://sysdig.com/blog/the-art-of-writing-ebpf-programs-a-primer/ Cc: Adrian Hunter Cc: Andrii Nakryiko Cc: Daniel Borkmann Cc: Gianluca Borello Cc: Jesper Dangaard Brouer Cc: Jiri Olsa Cc: Luis Cláudio Gonçalves cc: Martin Lau Cc: Namhyung Kim Cc: Wang Nan Cc: Yonghong Song Link: https://lkml.kernel.org/n/tip-76gce2d2ghzq537ubwhjkone@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit c52a82f7796306d2d2aafadba47617da619b0918 Author: Arnaldo Carvalho de Melo Date: Fri Mar 22 14:25:14 2019 -0300 perf augmented_raw_syscalls: Copy strings from all syscalls with 1st or 2nd string arg Gets the augmented_raw_syscalls a bit more useful as-is, add a comment stating that the intent is to have all this in a map populated by userspace via the 'syscalls' BPF map, that right now has only a flag stating if the syscall is filtered or not. With it: # grep -B1 augmented_raw ~/.perfconfig [trace] add_events = /home/acme/git/perf/tools/perf/examples/bpf/augmented_raw_syscalls.o # # perf trace -e string weechat/6001 stat("/etc/localtime", 0x7ffe22c23d10) = 0 gnome-shell/1943 openat(AT_FDCWD, "/proc/self/stat", O_RDONLY) = 81 weechat/6001 stat("/etc/localtime", 0x7ffe22c23d10) = 0 gmain/2475 inotify_add_watch(20, "/home/acme/.config/firewall", 16789454) = -1 ENOENT (No such file or directory) gmain/2391 inotify_add_watch(3, "", 16789454) = -1 ENOENT (No such file or directory) gmain/2391 inotify_add_watch(3, "/var/cache/app-info/yaml", 16789454) = -1 ENOENT (No such file or directory) gmain/2391 inotify_add_watch(3, "/var/lib/app-info/xmls", 16789454) = -1 ENOENT (No such file or directory) gmain/2391 inotify_add_watch(3, "/var/lib/app-info/yaml", 16789454) = -1 ENOENT (No such file or directory) gmain/2391 inotify_add_watch(3, "/usr/share/app-info/yaml", 16789454) = -1 ENOENT (No such file or directory) gmain/2391 inotify_add_watch(3, "/usr/local/share/app-info/xmls", 16789454) = -1 ENOENT (No such file or directory) gmain/2391 inotify_add_watch(3, "/usr/local/share/app-info/yaml", 16789454) = -1 ENOENT (No such file or directory) gmain/2391 inotify_add_watch(3, "/home/acme/.local/share/app-info/yaml", 16789454) = -1 ENOENT (No such file or directory) gmain/1121 inotify_add_watch(12, "/etc/NetworkManager/VPN", 16789454) = -1 ENOENT (No such file or directory) weechat/6001 stat("/etc/localtime", 0x7ffe22c23d10) = 0 gmain/2050 inotify_add_watch(8, "/home/acme/~", 16789454) = -1 ENOENT (No such file or directory) gmain/2521 inotify_add_watch(6, "/var/lib/fwupd/remotes.d/lvfs-testing", 16789454) = -1 ENOENT (No such file or directory) weechat/6001 stat("/etc/localtime", 0x7ffe22c23d10) = 0 DOM Worker/22714 ... [continued]: openat()) = 257 FS Broker 3982/3990 openat(AT_FDCWD, "/dev/urandom", O_RDONLY|O_CLOEXEC|O_NOCTTY) = 187 DOMCacheThread/16652 mkdir("/home/acme/.mozilla/firefox/ina67tev.default/storage/default/https+++web.whatsapp.com/cache/morgue/192", S_IRUGO|S_IXUGO|S_IWUSR) = -1 EEXIST (File exists) ^C# Cc: Adrian Hunter Cc: Jiri Olsa Cc: Luis Cláudio Gonçalves Cc: Namhyung Kim Cc: Wang Nan Link: https://lkml.kernel.org/n/tip-a1hxffoy8t43e0wq6bzhp23u@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit 2b64b2ed277ff23e785fbdb65098ee7e1252d64f Author: Arnaldo Carvalho de Melo Date: Fri Mar 22 14:18:21 2019 -0300 perf trace: Add 'string' event alias to select syscalls with string args Will be used in conjunction with the change to augmented_raw_syscalls.c in the next cset that adds all syscalls with a first or second arg string. With just what we have in the syscall tracepoints we get: # perf trace -e string ls > /dev/null ? ( ): ls/22382 ... [continued]: execve()) = 0 0.043 ( 0.004 ms): ls/22382 access(filename: 0x51ad420, mode: R) = -1 ENOENT (No such file or directory) 0.051 ( 0.004 ms): ls/22382 openat(dfd: CWD, filename: 0x51aa8b3, flags: RDONLY|CLOEXEC) = 3 0.071 ( 0.004 ms): ls/22382 openat(dfd: CWD, filename: 0x51b4d00, flags: RDONLY|CLOEXEC) = 3 0.138 ( 0.009 ms): ls/22382 openat(dfd: CWD, filename: 0x51684d0, flags: RDONLY|CLOEXEC) = 3 0.192 ( 0.004 ms): ls/22382 openat(dfd: CWD, filename: 0x51689c0, flags: RDONLY|CLOEXEC) = 3 0.255 ( 0.004 ms): ls/22382 openat(dfd: CWD, filename: 0x5168eb0, flags: RDONLY|CLOEXEC) = 3 0.342 ( 0.003 ms): ls/22382 openat(dfd: CWD, filename: 0x51693a0, flags: RDONLY|CLOEXEC) = 3 0.380 ( 0.003 ms): ls/22382 openat(dfd: CWD, filename: 0x5169950, flags: RDONLY|CLOEXEC) = 3 0.670 ( 0.011 ms): ls/22382 statfs(pathname: 0x515c783, buf: 0x7fff54d75b70) = 0 0.683 ( 0.005 ms): ls/22382 statfs(pathname: 0x515c783, buf: 0x7fff54d75a60) = 0 0.725 ( 0.004 ms): ls/22382 access(filename: 0x515c7ab) = 0 0.744 ( 0.005 ms): ls/22382 openat(dfd: CWD, filename: 0x50fba20, flags: RDONLY|CLOEXEC) = 3 0.793 ( 0.004 ms): ls/22382 openat(dfd: CWD, filename: 0x9e3e8390, flags: RDONLY|CLOEXEC|DIRECTORY|NONBLOCK) = 3 0.921 ( 0.006 ms): ls/22382 openat(dfd: CWD, filename: 0x50f7d90) = 3 # If we put the vfs_getname probe point in place: # perf probe 'vfs_getname=getname_flags:73 pathname=result->name:string' Added new events: probe:vfs_getname (on getname_flags:73 with pathname=result->name:string) probe:vfs_getname_1 (on getname_flags:73 with pathname=result->name:string) You can now use it in all perf tools, such as: perf record -e probe:vfs_getname_1 -aR sleep 1 # perf trace -e string ls > /dev/null ? ( ): ls/22440 ... [continued]: execve()) = 0 0.048 ( 0.008 ms): ls/22440 access(filename: /etc/ld.so.preload, mode: R) = -1 ENOENT (No such file or directory) 0.061 ( 0.007 ms): ls/22440 openat(dfd: CWD, filename: /etc/ld.so.cache, flags: RDONLY|CLOEXEC) = 3 0.092 ( 0.008 ms): ls/22440 openat(dfd: CWD, filename: /lib64/libselinux.so.1, flags: RDONLY|CLOEXEC) = 3 0.165 ( 0.007 ms): ls/22440 openat(dfd: CWD, filename: /lib64/libcap.so.2, flags: RDONLY|CLOEXEC) = 3 0.216 ( 0.007 ms): ls/22440 openat(dfd: CWD, filename: /lib64/libc.so.6, flags: RDONLY|CLOEXEC) = 3 0.282 ( 0.007 ms): ls/22440 openat(dfd: CWD, filename: /lib64/libpcre2-8.so.0, flags: RDONLY|CLOEXEC) = 3 0.340 ( 0.007 ms): ls/22440 openat(dfd: CWD, filename: /lib64/libdl.so.2, flags: RDONLY|CLOEXEC) = 3 0.383 ( 0.007 ms): ls/22440 openat(dfd: CWD, filename: /lib64/libpthread.so.0, flags: RDONLY|CLOEXEC) = 3 0.697 ( 0.021 ms): ls/22440 statfs(pathname: /sys/fs/selinux, buf: 0x7ffee7dc9010) = 0 0.720 ( 0.007 ms): ls/22440 statfs(pathname: /sys/fs/selinux, buf: 0x7ffee7dc8f00) = 0 0.757 ( 0.007 ms): ls/22440 access(filename: /etc/selinux/config) = 0 0.779 ( 0.009 ms): ls/22440 openat(dfd: CWD, filename: /usr/lib/locale/locale-archive, flags: RDONLY|CLOEXEC) = 3 0.830 ( 0.006 ms): ls/22440 openat(dfd: CWD, filename: ., flags: RDONLY|CLOEXEC|DIRECTORY|NONBLOCK) = 3 0.958 ( 0.010 ms): ls/22440 openat(dfd: CWD, filename: /usr/lib64/gconv/gconv-modules.cache) = 3 # Cc: Adrian Hunter Cc: Jiri Olsa Cc: Luis Cláudio Gonçalves Cc: Namhyung Kim Cc: Wang Nan Link: https://lkml.kernel.org/n/tip-6fh1myvn7ulf4xwq9iz3o776@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo commit 3c77ff8f8bae4d328de662b26921bc4da1d293f1 Author: Kangjie Lu Date: Sun Mar 24 18:16:02 2019 -0500 drm/v3d: fix a missing check of pm_runtime_get_sync pm_runtime_get_sync could fail and thus deserves a check. The patch adds such a check and return its error code upstream if it indeed failed. Signed-off-by: Kangjie Lu Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190324231602.2436-1-kjlu@umn.edu Reviewed-by: Mukesh Ojha commit f8b347064b89aaac2c82bbf77de60deaaf87b116 Author: Qiang Yu Date: Fri Mar 29 21:47:48 2019 +0800 MAINTAINERS: add drm/lima driver info Signed-off-by: Qiang Yu Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190329134748.8269-1-yuq825@gmail.com Acked-by: Neil Armstrong Acked-by: Daniel Vetter commit a1d2a6339961efc078208dc3b2f006e9e9a8e119 Author: Qiang Yu Date: Sat Mar 9 20:20:12 2019 +0800 drm/lima: driver for ARM Mali4xx GPUs - Mali 4xx GPUs have two kinds of processors GP and PP. GP is for OpenGL vertex shader processing and PP is for fragment shader processing. Each processor has its own MMU so prcessors work in virtual address space. - There's only one GP but multiple PP (max 4 for mali 400 and 8 for mali 450) in the same mali 4xx GPU. All PPs are grouped togather to handle a single fragment shader task divided by FB output tiled pixels. Mali 400 user space driver is responsible for assign target tiled pixels to each PP, but mali 450 has a HW module called DLBU to dynamically balance each PP's load. - User space driver allocate buffer object and map into GPU virtual address space, upload command stream and draw data with CPU mmap of the buffer object, then submit task to GP/PP with a register frame indicating where is the command stream and misc settings. - There's no command stream validation/relocation due to each user process has its own GPU virtual address space. GP/PP's MMU switch virtual address space before running two tasks from different user process. Error or evil user space code just get MMU fault or GP/PP error IRQ, then the HW/SW will be recovered. - Use GEM+shmem for MM. Currently just alloc and pin memory when gem object creation. GPU vm map of the buffer is also done in the alloc stage in kernel space. We may delay the memory allocation and real GPU vm map to command submission stage in the furture as improvement. - Use drm_sched for GPU task schedule. Each OpenGL context should have a lima context object in the kernel to distinguish tasks from different user. drm_sched gets task from each lima context in a fair way. mesa driver can be found here before upstreamed: https://gitlab.freedesktop.org/lima/mesa v8: - add comments for in_sync - fix ctx free miss mutex unlock v7: - remove lima_fence_ops with default value - move fence slab create to device probe - check pad ioctl args to be zero - add comments for user/kernel interface v6: - fix comments by checkpatch.pl v5: - export gp/pp version to userspace - rebase on drm-misc-next v4: - use get param interface to get info - separate context create/free ioctl - remove unused max sched task param - update copyright time - use xarray instead of idr - stop using drmP.h v3: - fix comments from kbuild robot - restrict supported arch to tested ones v2: - fix syscall argument check - fix job finish fence leak since kernel 5.0 - use drm syncobj to replace native fence - move buffer object GPU va map into kernel - reserve syscall argument space for future info - remove kernel gem modifier - switch TTM back to GEM+shmem MM - use time based io poll - use whole register name - adopt gem reservation obj integration - use drm_timeout_abs_to_jiffies Cc: Eric Anholt Cc: Rob Herring Cc: Christian König Cc: Daniel Vetter Cc: Alex Deucher Cc: Sam Ravnborg Cc: Rob Clark Cc: Dave Airlie Signed-off-by: Andreas Baierl Signed-off-by: Erico Nunes Signed-off-by: Heiko Stuebner Signed-off-by: Marek Vasut Signed-off-by: Neil Armstrong Signed-off-by: Simon Shields Signed-off-by: Vasily Khoruzhick Signed-off-by: Qiang Yu Reviewed-by: Eric Anholt Reviewed-by: Rob Herring Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/291200/ commit 6234fc0fb03743536eefba47c08ff8d4c9cf2fae Author: Eric Anholt Date: Wed Feb 20 13:03:43 2019 -0800 drm/vc4: Make sure that the v3d ident debugfs has vc4's power on. Otherwise, you sometimes decode the ident fields based on 0xdeadbeef register reads. Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190220210343.28157-7-eric@anholt.net Reviewed-by: Paul Kocialkowski commit cb74f6ee8e3a00e85d53697d5d84ec21d416e5ef Author: Eric Anholt Date: Wed Feb 20 13:03:42 2019 -0800 drm/vc4: Add helpers for pm get/put. This makes sure the vc4_reset doesn't hit an obscure race with the GET_PARAM ioctl, fixes a decrement outside of the lock, and prevents future code from making mistakes with the weird return value of pm_runtime_get_sync(). Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190220210343.28157-6-eric@anholt.net Reviewed-by: Paul Kocialkowski commit 13f0ec3417c566ae29603eb5d18f4b7d581ade52 Author: Eric Anholt Date: Wed Feb 20 13:03:40 2019 -0800 drm/vc4: Use drm_printer for the debugfs and runtime bo stats output. Now I can extend the stats without more copy and pasting between the two. Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190220210343.28157-4-eric@anholt.net Reviewed-by: Paul Kocialkowski commit 3a3fe6e766630aacf8cc212cceb1d57d7b346463 Author: Dan Carpenter Date: Fri Mar 22 09:41:25 2019 +0300 drm: shmem: Off by one in drm_gem_shmem_fault() The shmem->pages[] array has "num_pages" elements so the > should be >= to prevent reading beyond the end of the array. The shmem->pages[] array is allocated in drm_gem_shmem_prime_import_sg_table(). Fixes: 2194a63a818d ("drm: Add library for shmem backed GEM objects") Signed-off-by: Dan Carpenter Signed-off-by: Eric Anholt Reviewed-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190322064125.GA12551@kadam commit 3051719af11eb48dc8947826cfb66dbe0f281c7d Author: Eric Anholt Date: Wed Feb 20 13:03:38 2019 -0800 drm/vc4: Use drm_print_regset32() for our debug register dumping. This removes a bunch of duplicated boilerplate for the debugfs vs runtime printk debug dumping. Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190220210343.28157-2-eric@anholt.net Reviewed-by: Paul Kocialkowski commit 5f513cc89edfbb395b71ebf09d971666e23758db Author: Eric Anholt Date: Wed Feb 20 13:03:37 2019 -0800 drm: Add a helper function for printing a debugfs_regset32. The debugfs_regset32 is nice to use for reducing boilerplate in dumping a bunch of regs in debugfs, but we also want to be able to print to dmesg them at runtime for driver debugging. drm_printer lets us format debugfs and the printk the same way. v2: Add some kerneldoc for the function (requested by danvet) Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190220210343.28157-1-eric@anholt.net Reviewed-by: Paul Kocialkowski (v1) Reviewed-by: Daniel Vetter commit 3f0b646e1a54248bcd5304f1de71091dad4e7b1e Author: Eric Anholt Date: Wed Mar 13 16:52:09 2019 -0700 drm/v3d: Rename the fence signaled from IRQs to "irq_fence". We have another thing called the "done fence" that tracks when the scheduler considers the job done, and having the shared name was confusing. Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190313235211.28995-2-eric@anholt.net Reviewed-by: Dave Emett commit ad8d68b214c79c7db7ffc10cd3a0c706cb15ad05 Author: Eric Anholt Date: Wed Mar 13 16:52:08 2019 -0700 drm/v3d: Add a note about OOM vs FLDONE, which may be racing on v3.3. We deref v3d->bin_job in the work handler, but v3d->bin_job doesn't actually hold a ref on the job. v2: typo fix FRDONE -> FLDONE Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190313235211.28995-1-eric@anholt.net Reviewed-by: Dave Emett commit b7987debe3563355050c3b9ce8ecef7cac988f34 Author: Payal Kshirsagar Date: Mon Apr 1 11:50:21 2019 +0530 staging: rtl8712: rtl871x_mp.c: Compress two lines into one line Challenge suggested by coccinelle. Compresse two lines into one line and remove unnecessary variable. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 07f9ef042048a1372ffdfc1ceaded0b502e40bf1 Author: Sanjana Sanikommu Date: Mon Apr 1 20:05:31 2019 +0530 staging: vc04_services: Remove unnecessary casts. Explicit type casting of variable, with same type as that of variable, is not required. Issue found using coccinelle. Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit d34709c64de1ecfd9ae2a204f3d8f7d021ba462a Author: Sanjana Sanikommu Date: Sun Mar 31 15:52:11 2019 +0530 staging: rtl8188eu: Modify return statement. Challenge suggested by coccinelle. Remove return variable and directly return the value Issue found using ret.cocci Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit 557e36194ed4052a8767e356784027b545c8a311 Author: Sanjana Sanikommu Date: Sun Mar 31 16:17:30 2019 +0530 staging: comedi: Prefer using BIT macro in various files. Challenge suggested by coccinelle. Replace bit shifting on 1 with the BIT(x) macro. Coccinelle script: @@ constant c; @@ -(1 << c) +BIT(c) Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit 9a3aebc02a8469decafd0aae557082ff15259b85 Author: Sanjana Sanikommu Date: Sun Mar 31 16:11:42 2019 +0530 staging: sm750fb: Remove unnecessary parenthesis. Challenge suggested by coccinelle. Remove unnecessary parenthesis around the right hand of the assignment using the below script. @@ binary operator op = {!=,&&,||,>=,<=,&,|}; expression l, r, t; @@ ( l = (r op t) | l = -( r -) ) Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit d53fef0be4a5f2f12219c231cdb6f838fbbf680c Author: Rodrigo Vivi Date: Fri Mar 15 12:19:38 2019 -0700 x86/gpu: add ElkhartLake to gen11 early quirks Let's reserve EHL stolen memory for graphics. ElkhartLake is a gen11 platform which is compatible with ICL changes. Cc: Thomas Gleixner Cc: Ingo Molnar Cc: Borislav Petkov Cc: "H. Peter Anvin" Cc: x86@kernel.org Cc: José Roberto de Souza Signed-off-by: Rodrigo Vivi Reviewed-by: José Roberto de Souza Acked-by: Borislav Petkov Link: https://patchwork.freedesktop.org/patch/msgid/20190315191938.22211-2-rodrigo.vivi@intel.com commit 135afb2b2184d95c5b57207b558e8f781b1e7f0e Author: Sanjana Sanikommu Date: Mon Apr 1 19:01:18 2019 +0530 staging: media: zoran: Modify return statement. Challenge suggested by coccinelle. Remove return variable and directly return the value Issue found using ret.cocci Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit 0d15252370ec4f82d4f8afe828c2671485fc84f5 Author: Sanjana Sanikommu Date: Mon Apr 1 19:26:37 2019 +0530 staging: media: imx: Replace list_entry with list_for_each_entry_safe Challenge suggested by coccinelle. Replace use of the combination of list_empty() and list_entry() with list_for_each_entry_safe() to simplify the code. Issue found using below Coccinelle script. @@ expression E1; identifier I1, I2; type T; iterator name list_for_each_entry_safe; @@ T *I1; + T *tmp; ... - while (list_empty(&E1) == 0) + list_for_each_entry_safe (I1, tmp, &E1, I2) { ...when != T *I1; - I1 = list_entry(E1.next, T, I2); ... } Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit 643cd0a25d5d1605eb3e6b083ef5accaddc616cf Author: Payal Kshirsagar Date: Sun Mar 31 23:33:47 2019 +0530 staging: comedi: use !x in place of NULL comparison Challenge suggested by coccinelle. Avoid NULL comparison, compare using boolean operator. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 198980e079a4de0da49ec0d88f07f9124b4fbcd0 Author: Payal Kshirsagar Date: Sun Mar 31 23:33:48 2019 +0530 staging: rtlwifi: use !x in place of NULL comparison Challenge suggested by coccinelle. Avoid NULL comparison, compare using boolean operator. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 0514b848a82bfc2aceeb4b436912ff146c63f580 Author: Payal Kshirsagar Date: Sun Mar 31 20:11:34 2019 +0530 staging: rtlwifi: halmac: halmac_api.c: Compress two lines into one line Challenge suggested by coccinelle. Compresses two lines into one line and remove unnecessary variable. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 2e6c3a037f6b9134786c2a4468b7733501fb58bf Author: Payal Kshirsagar Date: Sun Mar 31 20:11:33 2019 +0530 staging: rtlwifi: halmac: Compress two lines into one line Challenge suggested by coccinelle. Compresses two lines into one line and remove unnecessary variable. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit d3830cc03ee0021aa78e19c1b8c5589ba1308a97 Author: Payal Kshirsagar Date: Sun Mar 31 20:11:32 2019 +0530 staging: rtlwifi: halmac: halmac_88xx: Compress two lines into one line Challenge suggested by coccinelle. Compresses two lines into one line and remove unnecessary variable. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit bce05d152864f034922044d1d0325f06c818602d Author: Payal Kshirsagar Date: Sun Mar 31 20:11:31 2019 +0530 staging: rtlwifi: btcoexist: Compress two lines into one line Challenge suggested by coccinelle. Compresses two lines into one line and remove unnecessary variable. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 22228e6a6e46058af487b9a7998f2689731e0427 Author: Payal Kshirsagar Date: Sun Mar 31 20:11:30 2019 +0530 staging: rtlwifi: phydm: phydm_rainfo.c: Compress two lines into one line Challenge suggested by coccinelle. Compresses two lines into one line and remove unnecessary variable. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit a161c66faf7a724883da4228c89b17627a710b03 Author: Payal Kshirsagar Date: Sun Mar 31 20:11:29 2019 +0530 staging: rtlwifi: phydm: phydm.c: Compress two lines into one line Challenge suggested by coccinelle. Compresses two lines into one line and remove unnecessary variables. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit f5d547676ca068e10934687f59ac1e798eaae87a Author: Eric Dumazet Date: Mon Apr 1 03:09:20 2019 -0700 tcp: fix tcp_inet6_sk() for 32bit kernels It turns out that struct ipv6_pinfo is not located as we think. inet6_sk_generic() and tcp_inet6_sk() disagree on 32bit kernels by 4-bytes, because struct tcp_sock has 8-bytes alignment, but ipv6_pinfo size is not a multiple of 8. sizeof(struct ipv6_pinfo): 116 (not padded to 8) I actually first coded tcp_inet6_sk() as this patch does, but thought that "container_of(tcp_sk(sk), struct tcp6_sock, tcp)" was cleaner. As Julian told me : Nobody should use tcp6_sock.inet6 directly, it should be accessed via tcp_inet6_sk() or inet6_sk(). This happened when we added the first u64 field in struct tcp_sock. Fixes: 93a77c11ae79 ("tcp: add tcp_inet6_sk() helper") Signed-off-by: Eric Dumazet Bisected-by: Julian Anastasov Signed-off-by: David S. Miller commit 19605872ae9822510aaa88f51c989f534b4c40f4 Author: Nishka Dasgupta Date: Sun Mar 31 01:18:16 2019 +0530 staging: rtlwifi: phydm: Move function arguments to previous line Move function arguments to previous line to solve Checkpatch warning "Line should not end with a '('". Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit 00de2287a7699b6488fea374826f24549a0a487f Author: Nishka Dasgupta Date: Sun Mar 31 01:18:15 2019 +0530 staging: rtlwifi: phydm: Move operator to left hand side Simplify expressions from `status = status & ` to `status &= ` to make the code more readable. Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit 1bb608f231b2b0d866e7490978d31f66ab6d07b6 Author: Briana Oursler Date: Sun Mar 31 17:10:47 2019 -0700 Staging: vt6655: rxtx: Add spaces around '*' Add spaces around *. Issue found with checkpatch. Signed-off-by: Briana Oursler Signed-off-by: Greg Kroah-Hartman commit 591ad6f1af1b418b1aebf69ae4e2e86b8eb2b0ad Author: Sanjana Sanikommu Date: Sun Mar 31 21:34:02 2019 +0530 staging: greybus: hid: Remove print following unsuccessful kmalloc Challenge suggested by Coccinelle Remove print statement following unsuccessful kmalloc when there is not enough memory. Kmalloc and variants normally produce a backtrace in such a case. Hence, a print statement is not necessary. Found using the following Coccinelle semantic patch: @@ identifier i,print; constant char [] c; @@ i = (\(kmalloc\|devm_kzalloc\|kmalloc_array\| devm_ioremap\|usb_alloc_urb\|alloc_netdev\|dev_alloc_skb\| kzalloc\|kcalloc\|kmem_cache_alloc\|kmem_cache_zalloc\| kmem_cache_alloc_node\|kmalloc_node\|kzalloc_node\)(...)); ( if (i == NULL) { -print(...,c,...); ...when any } | if (!i) { -print(...,c,...); ...when any } ) Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit fae7a699a92577e383c82ae42918ec257cf3bba9 Author: Matthew Wilcox Date: Wed Feb 20 16:21:01 2019 -0800 opa_vnic: Convert vport_idr to XArray Signed-off-by: Matthew Wilcox Signed-off-by: Jason Gunthorpe commit 7d3cfb70a604d215e195ba9282df42dd6edff16a Author: james qian wang (Arm Technology China) Date: Tue Jan 22 09:24:34 2019 +0000 drm/komeda: Add debugfs node "register" for register dump Add a debugfs node "register" and entry function dump_register to dev/pipeline/component to register dump, then user can read "/sys/kernel/debug/komeda/register" to get the register values via these chip function. Signed-off-by: James Qian Wang (Arm Technology China) [Added the d71_layer_dump() function that was in a previous commit] Signed-off-by: Liviu Dudau commit 0dac37bf1c5dc1e8454fbe8d548f6e312cfd982d Author: james qian wang (Arm Technology China) Date: Tue Jan 22 09:24:25 2019 +0000 drm/komeda: Add irq handling 1. Added irq_handler/irq_enable/irq_disable to komeda_dev_func, then the Komeda-CORE can control the HW irq via these chip function. 2. Install irq and register irq_handler to system by DRM, so once the IRQ coming, the handling sequence is: komeda_kms_irq_handler(int irq, void *data) /* step 1. call into the CHIP to recognize event */ mdev->funcs->irq_handler(mdev, &evts); /* step 2. notify the crtc to handle the events */ for (i = 0; i < kms->n_crtcs; i++) komeda_crtc_handle_event(&kms->crtcs[i], &evts); v2: - Move get IRQ number into this change. - Enable irq before drm_dev_register. Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit 321e925c5813c228bafda5ea3729ebddb00a3040 Author: james qian wang (Arm Technology China) Date: Tue Jan 22 09:24:16 2019 +0000 drm/komeda: Add komeda_assemble_pipelines komeda_accemble_pipelines is for: 1. Verifing the component->supported_inputs according to the pipeline->avail_components. 2. Generating component->supported_outputs. v2: Lower the debug message of komeda_component_dump to DRM_DEBUG. Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit f5f0a68e00688311fe9104fa32422e4e27ae8d3b Author: james qian wang (Arm Technology China) Date: Tue Jan 22 09:24:07 2019 +0000 drm/komeda: Add D71 improc and timing_ctrlr Add and initialize improc and timing_ctrlr according to D71 capablitites v2: Rebase. Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit 7013b667b3d15f09adfcd4e8d6a601d59ceeb3cc Author: james qian wang (Arm Technology China) Date: Tue Jan 22 09:23:58 2019 +0000 drm/komeda: Add d71 compiz component Implement d71_compiz_init and add compiz component to komeda-CORE v2: Rebase. Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit 71c420b7bf8a9303ae9b6b40d11ff23b4595e5aa Author: james qian wang (Arm Technology China) Date: Tue Jan 22 09:23:49 2019 +0000 drm/komeda: Add d71 layer 1. Add detailed layer/layer_state definitions 2. Add d71_layer_init to report layer features and capabilities according to D71 layer block. 3. Add d71_layer_updat/disable v2: Rebase. Signed-off-by: James Qian Wang (Arm Technology China) [removed d71_layer_dump() from this commit] Signed-off-by: Liviu Dudau commit fc0c77fcbfb7c8e022a0bd655eeb7fa5f9bb1684 Author: Dan Carpenter Date: Thu Mar 21 09:27:31 2019 +0300 drm/v3d: fix a NULL vs error pointer mixup The drm_gem_shmem_create() returns error pointers and v3d_bo_create() is also supposed to return error pointers. Fixes: 40609d4820b2 ("drm/v3d: Use the new shmem helpers to reduce driver boilerplate.") Signed-off-by: Dan Carpenter Signed-off-by: Eric Anholt Reviewed-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190321062731.GC21489@kadam commit 181e5bf29e06bd8ade7ebc21de056b9dc866fcc2 Author: Eric Anholt Date: Wed Feb 6 15:25:50 2019 -0800 drm/vc4: Make sure to emit a tile coordinates between two MSAA loads. The HW only executes a load once the tile coordinates packet happens, and only tracks one at a time, so by emitting our two MSAA loads back to back we would end up with an undefined color or Z buffer. Fixes dEQP-EGL.functional.render.multi_context.gles2.rgb888_window Signed-off-by: Eric Anholt Reviewed-by: Paul Kocialkowski Cc: Maxime Ripard Link: https://patchwork.freedesktop.org/patch/msgid/20190206232550.12012-1-eric@anholt.net commit 059d48fbf61bec9aae7cd9a00604d7ccf95463b5 Author: Matthew Wilcox Date: Wed Feb 20 16:21:00 2019 -0800 qib: Convert qib_unit_table to XArray Also remove qib_devs_list. Signed-off-by: Matthew Wilcox Reviewed-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit 03b92789e5cfdac66805c1a98f1ec67336199d56 Author: Matthew Wilcox Date: Fri Feb 8 15:41:29 2019 -0500 hfi1: Convert hfi1_unit_table to XArray Also remove hfi1_devs_list. Signed-off-by: Matthew Wilcox Reviewed-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit 805446c8347c9e743912cb7acf795683d9af7972 Author: Tvrtko Ursulin Date: Wed Mar 27 14:23:28 2019 +0000 drm/i915: Introduce concept of a sub-platform Concept of a sub-platform already exist in our code (like ULX and ULT platform variants and similar),implemented via the macros which check a list of device ids to determine a match. With this patch we consolidate device ids checking into a single function called during early driver load. A few low bits in the platform mask are reserved for sub-platform identification and defined as a per-platform namespace. At the same time it future proofs the platform_mask handling by preparing the code for easy extending, and tidies the very verbose WARN strings generated when IS_PLATFORM macros are embedded into a WARN type statements. v2: Fixed IS_SUBPLATFORM. Updated commit msg. v3: Chris was right, there is an ordering problem. v4: * Catch-up with new sub-platforms. * Rebase for RUNTIME_INFO. * Drop subplatform mask union tricks and convert platform_mask to an array for extensibility. v5: * Fix subplatform check. * Protect against forgetting to expand subplatform bits. * Remove platform enum tallying. * Add subplatform to error state. (Chris) * Drop macros and just use static inlines. * Remove redundant IRONLAKE_M. (Ville) v6: * Split out Ironlake change. * Optimize subplatform check. * Use __always_inline. (Lucas) * Add platform_mask comment. (Paulo) * Pass stored runtime info in error capture. (Chris) v7: * Rebased for new AML ULX device id. * Bump platform mask array size for EHL. * Stop mentioning device ids in intel_device_subplatform_init by using the trick of splitting macros i915_pciids.h. (Jani) * AML seems to be either a subplatform of KBL or CFL so express it like that. v8: * Use one device id table per subplatform. (Jani) Signed-off-by: Tvrtko Ursulin Suggested-by: Chris Wilson Cc: Chris Wilson Cc: Jani Nikula Cc: Lucas De Marchi Cc: Jose Souza Cc: Ville Syrjälä Cc: Paulo Zanoni Reviewed-by: Chris Wilson Acked-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190327142328.31780-1-tvrtko.ursulin@linux.intel.com commit 4ae61358cc1ad537973b242cf390163a2f7b15b2 Author: Tvrtko Ursulin Date: Tue Mar 26 07:40:56 2019 +0000 drm/i915: Split some PCI ids into separate groups This will enable the following patch to consolidate most device ids into i915_pciids.h. While cross-referencing the ids listed in i915_drv.h, with the ones listed in i915_pciids.h, and also the comments in the latter, a bug for bug approach was used. This means two things: 1. Some ids are only present in i915_drv.h - obviously this means those parts would not have been probed at all so they were not added to i915_pciids.h 2. Some part type comments in i915_pciids.h were in disagreement with i915_drv.h. For instance parts labeled as ULT or ULX were not considered as such in i915_drv.h. The existing behaviour takes precedence here. Signed-off-by: Tvrtko Ursulin Suggested-by: Jani Nikula Cc: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190326074057.27833-4-tvrtko.ursulin@linux.intel.com Reviewed-by: Chris Wilson commit e08891a5b7e6d8b66c09bd6b0a1d3544083461c4 Author: Tvrtko Ursulin Date: Tue Mar 26 07:40:55 2019 +0000 drm/i915: Remove redundant device id from IS_IRONLAKE_M macro IS_IRONLAKE_M can use the already defined intel_device_info.is_mobile for this platform, so remove the instance of Ironlake's mobile device id from the header file and replace it with an IS_MOBILE check. v2: * Improved commit text. (Chris) v3: * Rebased for EHL. Signed-off-by: Tvrtko Ursulin Suggested-by: Ville Syrjälä Cc: Ville Syrjälä Cc: Chris Wilson Reviewed-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190326074057.27833-3-tvrtko.ursulin@linux.intel.com commit 86d35d4e7625f7c056d81316da107bd3a7564fb3 Author: Tvrtko Ursulin Date: Tue Mar 26 07:40:54 2019 +0000 drm/i915: Split Pineview device info into desktop and mobile This allows the IS_PINEVIEW_ macros to be removed and avoid duplication of device ids already defined in i915_pciids.h. !IS_MOBILE check can be used in place of existing IS_PINEVIEW_G call sites. Signed-off-by: Tvrtko Ursulin Suggested-by: Ville Syrjälä Cc: Ville Syrjälä Cc: Chris Wilson Reviewed-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190326074057.27833-2-tvrtko.ursulin@linux.intel.com commit cf84807f6dd0be5214378e66460cfc9187f532f9 Author: Shile Zhang Date: Mon Apr 1 17:47:00 2019 +0200 fbdev: fix divide error in fb_var_to_videomode To fix following divide-by-zero error found by Syzkaller: divide error: 0000 [#1] SMP PTI CPU: 7 PID: 8447 Comm: test Kdump: loaded Not tainted 4.19.24-8.al7.x86_64 #1 Hardware name: Alibaba Cloud Alibaba Cloud ECS, BIOS rel-1.12.0-0-ga698c8995f-prebuilt.qemu.org 04/01/2014 RIP: 0010:fb_var_to_videomode+0xae/0xc0 Code: 04 44 03 46 78 03 4e 7c 44 03 46 68 03 4e 70 89 ce d1 ee 69 c0 e8 03 00 00 f6 c2 01 0f 45 ce 83 e2 02 8d 34 09 0f 45 ce 31 d2 <41> f7 f0 31 d2 f7 f1 89 47 08 f3 c3 66 0f 1f 44 00 00 0f 1f 44 00 RSP: 0018:ffffb7e189347bf0 EFLAGS: 00010246 RAX: 00000000e1692410 RBX: ffffb7e189347d60 RCX: 0000000000000000 RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffb7e189347c10 RBP: ffff99972a091c00 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000100 R13: 0000000000010000 R14: 00007ffd66baf6d0 R15: 0000000000000000 FS: 00007f2054d11740(0000) GS:ffff99972fbc0000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f205481fd20 CR3: 00000004288a0001 CR4: 00000000001606a0 Call Trace: fb_set_var+0x257/0x390 ? lookup_fast+0xbb/0x2b0 ? fb_open+0xc0/0x140 ? chrdev_open+0xa6/0x1a0 do_fb_ioctl+0x445/0x5a0 do_vfs_ioctl+0x92/0x5f0 ? __alloc_fd+0x3d/0x160 ksys_ioctl+0x60/0x90 __x64_sys_ioctl+0x16/0x20 do_syscall_64+0x5b/0x190 entry_SYSCALL_64_after_hwframe+0x44/0xa9 RIP: 0033:0x7f20548258d7 Code: 44 00 00 48 8b 05 b9 15 2d 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 89 15 2d 00 f7 d8 64 89 01 48 It can be triggered easily with following test code: #include #include #include int main(void) { struct fb_var_screeninfo var = {.activate = 0x100, .pixclock = 60}; int fd = open("/dev/fb0", O_RDWR); if (fd < 0) return 1; if (ioctl(fd, FBIOPUT_VSCREENINFO, &var)) return 1; return 0; } Signed-off-by: Shile Zhang Cc: Fredrik Noring Cc: Daniel Vetter Reviewed-by: Mukesh Ojha Signed-off-by: Bartlomiej Zolnierkiewicz commit 4ed7d2ccb7684510ec5f7a8f7ef534bc6a3d55b2 Author: Yifeng Li Date: Mon Apr 1 17:46:59 2019 +0200 fbdev: sm712fb: use 1024x768 by default on non-MIPS, fix garbled display Loongson MIPS netbooks use 1024x600 LCD panels, which is the original target platform of this driver, but nearly all old x86 laptops have 1024x768. Lighting 768 panels using 600's timings would partially garble the display. Since it's not possible to distinguish them reliably, we change the default to 768, but keep 600 as-is on MIPS. Further, earlier laptops, such as IBM Thinkpad 240X, has a 800x600 LCD panel, this driver would probably garbled those display. As we don't have one for testing, the original behavior of the driver is kept as-is, but the problem has been documented is the comments. Signed-off-by: Yifeng Li Tested-by: Sudip Mukherjee Cc: Teddy Wang Cc: # v4.4+ Signed-off-by: Bartlomiej Zolnierkiewicz commit 6053d3a4793e5bde6299ac5388e76a3bf679ff65 Author: Yifeng Li Date: Mon Apr 1 17:46:59 2019 +0200 fbdev: sm712fb: fix support for 1024x768-16 mode In order to support the 1024x600 panel on Yeeloong Loongson MIPS laptop, the original 1024x768-16 table was modified to 1024x600-16, without leaving the original. It causes problem on x86 laptop as the 1024x768-16 support was still claimed but not working. Fix it by introducing the 1024x768-16 mode. Signed-off-by: Yifeng Li Tested-by: Sudip Mukherjee Cc: Teddy Wang Cc: # v4.4+ Signed-off-by: Bartlomiej Zolnierkiewicz commit f627caf55b8e735dcec8fa6538e9668632b55276 Author: Yifeng Li Date: Mon Apr 1 17:46:59 2019 +0200 fbdev: sm712fb: fix crashes and garbled display during DPMS modesetting On a Thinkpad s30 (Pentium III / i440MX, Lynx3DM), blanking the display or starting the X server will crash and freeze the system, or garble the display. Experiments showed this problem can mostly be solved by adjusting the order of register writes. Also, sm712fb failed to consider the difference of clock frequency when unblanking the display, and programs the clock for SM712 to SM720. Fix them by adjusting the order of register writes, and adding an additional check for SM720 for programming the clock frequency. Signed-off-by: Yifeng Li Tested-by: Sudip Mukherjee Cc: Teddy Wang Cc: # v4.4+ Signed-off-by: Bartlomiej Zolnierkiewicz commit 9e0e59993df0601cddb95c4f6c61aa3d5e753c00 Author: Yifeng Li Date: Mon Apr 1 17:46:59 2019 +0200 fbdev: sm712fb: fix crashes during framebuffer writes by correctly mapping VRAM On a Thinkpad s30 (Pentium III / i440MX, Lynx3DM), running fbtest or X will crash the machine instantly, because the VRAM/framebuffer is not mapped correctly. On SM712, the framebuffer starts at the beginning of address space, but SM720's framebuffer starts at the 1 MiB offset from the beginning. However, sm712fb fails to take this into account, as a result, writing to the framebuffer will destroy all the registers and kill the system immediately. Another problem is the driver assumes 8 MiB of VRAM for SM720, but some SM720 system, such as this IBM Thinkpad, only has 4 MiB of VRAM. Fix this problem by removing the hardcoded VRAM size, adding a function to query the amount of VRAM from register MCR76 on SM720, and adding proper framebuffer offset. Please note that the memory map may have additional problems on Big-Endian system, which is not available for testing by myself. But I highly suspect that the original code is also broken on Big-Endian machines for SM720, so at least we are not making the problem worse. More, the driver also assumed SM710/SM712 has 4 MiB of VRAM, but it has a 2 MiB version as well, and used in earlier laptops, such as IBM Thinkpad 240X, the driver would probably crash on them. I've never seen one of those machines and cannot fix it, but I have documented these problems in the comments. Signed-off-by: Yifeng Li Tested-by: Sudip Mukherjee Cc: Teddy Wang Cc: # v4.4+ Signed-off-by: Bartlomiej Zolnierkiewicz commit ec1587d5073f29820e358f3a383850d61601d981 Author: Yifeng Li Date: Mon Apr 1 17:46:59 2019 +0200 fbdev: sm712fb: fix boot screen glitch when sm712fb replaces VGA When the machine is booted in VGA mode, loading sm712fb would cause a glitch of random pixels shown on the screen. To prevent it from happening, we first clear the entire framebuffer, and we also need to stop calling smtcfb_setmode() during initialization, the fbdev layer will call it for us later when it's ready. Signed-off-by: Yifeng Li Tested-by: Sudip Mukherjee Cc: Teddy Wang Cc: # v4.4+ Signed-off-by: Bartlomiej Zolnierkiewicz commit dcf9070595e100942c539e229dde4770aaeaa4e9 Author: Yifeng Li Date: Mon Apr 1 17:46:58 2019 +0200 fbdev: sm712fb: fix VRAM detection, don't set SR70/71/74/75 On a Thinkpad s30 (Pentium III / i440MX, Lynx3DM), the amount of Video RAM is not detected correctly by the xf86-video-siliconmotion driver. This is because sm712fb overwrites the GPR71 Scratch Pad Register, which is set by BIOS on x86 and used to indicate amount of VRAM. Other Scratch Pad Registers, including GPR70/74/75, don't have the same side-effect, but overwriting to them is still questionable, as they are not related to modesetting. Stop writing to SR70/71/74/75 (a.k.a GPR70/71/74/75). Signed-off-by: Yifeng Li Tested-by: Sudip Mukherjee Cc: Teddy Wang Cc: # v4.4+ Signed-off-by: Bartlomiej Zolnierkiewicz commit 5481115e25e42b9215f2619452aa99c95f08492f Author: Yifeng Li Date: Mon Apr 1 17:46:58 2019 +0200 fbdev: sm712fb: fix brightness control on reboot, don't set SR30 On a Thinkpad s30 (Pentium III / i440MX, Lynx3DM), rebooting with sm712fb framebuffer driver would cause the role of brightness up/down button to swap. Experiments showed the FPR30 register caused this behavior. Moreover, even if this register don't have side-effect on other systems, over- writing it is also highly questionable, since it was originally configurated by the motherboard manufacturer by hardwiring pull-down resistors to indicate the type of LCD panel. We should not mess with it. Stop writing to the SR30 (a.k.a FPR30) register. Signed-off-by: Yifeng Li Tested-by: Sudip Mukherjee Cc: Teddy Wang Cc: # v4.4+ Signed-off-by: Bartlomiej Zolnierkiewicz commit 8069053880e0ee3a75fd6d7e0a30293265fe3de4 Author: Yifeng Li Date: Mon Apr 1 17:46:58 2019 +0200 fbdev: sm712fb: fix white screen of death on reboot, don't set CR3B-CR3F On a Thinkpad s30 (Pentium III / i440MX, Lynx3DM), rebooting with sm712fb framebuffer driver would cause a white screen of death on the next POST, presumably the proper timings for the LCD panel was not reprogrammed properly by the BIOS. Experiments showed a few CRTC Scratch Registers, including CRT3D, CRT3E and CRT3F may be used internally by BIOS as some flags. CRT3B is a hardware testing register, we shouldn't mess with it. CRT3C has blanking signal and line compare control, which is not needed for this driver. Stop writing to CR3B-CR3F (a.k.a CRT3B-CRT3F) registers. Even if these registers don't have side-effect on other systems, writing to them is also highly questionable. Signed-off-by: Yifeng Li Tested-by: Sudip Mukherjee Cc: Teddy Wang Cc: # v4.4+ Signed-off-by: Bartlomiej Zolnierkiewicz commit 1d84353d205a953e2381044953b7fa31c8c9702d Author: Kangjie Lu Date: Mon Apr 1 17:46:58 2019 +0200 video: imsttfb: fix potential NULL pointer dereferences In case ioremap fails, the fix releases resources and returns -ENOMEM to avoid NULL pointer dereferences. Signed-off-by: Kangjie Lu Cc: Aditya Pakki Cc: Finn Thain Cc: Rob Herring Cc: Greg Kroah-Hartman [b.zolnierkie: minor patch summary fixup] Signed-off-by: Bartlomiej Zolnierkiewicz commit ec7f6aad57ad29e4e66cc2e18e1e1599ddb02542 Author: Kangjie Lu Date: Mon Apr 1 17:46:58 2019 +0200 video: hgafb: fix potential NULL pointer dereference When ioremap fails, hga_vram should not be dereferenced. The fix check the failure to avoid NULL pointer dereference. Signed-off-by: Kangjie Lu Cc: Aditya Pakki Cc: Ferenc Bakonyi [b.zolnierkie: minor patch summary fixup] Signed-off-by: Bartlomiej Zolnierkiewicz commit b0e999c9558194a7b8908c41eaa7903e27fdb8c8 Author: Gerd Hoffmann Date: Mon Apr 1 17:46:57 2019 +0200 fbdev: list all pci memory bars as conflicting apertures Simply add all pci memory bars to struct apertures_struct in remove_conflicting_pci_framebuffers(), without depending on the res_id parameter. The plan is to drop the res_id parameter later on. For now keep the parameter, use it for sanity-checking and warn on inconsistencies. Signed-off-by: Gerd Hoffmann Reviewed-by: Daniel Vetter Signed-off-by: Bartlomiej Zolnierkiewicz commit a4bd25259e9744948a408c5d2ee575a9f1888fb4 Author: Enrico Weigelt, metux IT consult Date: Mon Apr 1 17:46:57 2019 +0200 drivers: video: fbdev: Kconfig: pedantic cleanups Formatting of Kconfig files doesn't look so pretty, so let the Great White Handkerchief come around and clean it up. Signed-off-by: Enrico Weigelt, metux IT consult [b.zolnierkie: add missing patch description] Signed-off-by: Bartlomiej Zolnierkiewicz commit 31fa6e2ae65feed0de10823c5d1eea21a93086c9 Author: Aditya Pakki Date: Mon Apr 1 17:46:57 2019 +0200 omapfb: Fix potential NULL pointer dereference in kmalloc Memory allocated, using kmalloc, for new_compat may fail. This patch checks for such an error and prevents potential NULL pointer dereference. Signed-off-by: Aditya Pakki Cc: Kangjie Lu Signed-off-by: Bartlomiej Zolnierkiewicz commit 17de805aa69e594785592f08ea08c85602432bb9 Author: Gustavo A. R. Silva Date: Mon Apr 1 17:46:57 2019 +0200 xen, fbfront: mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warning: drivers/video/fbdev/xen-fbfront.c: In function ‘xenfb_backend_changed’: drivers/video/fbdev/xen-fbfront.c:678:6: warning: this statement may fall through [-Wimplicit-fallthrough=] if (dev->state == XenbusStateClosed) ^ drivers/video/fbdev/xen-fbfront.c:681:2: note: here case XenbusStateClosing: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 Notice that, in this particular case, the code comment is modified in accordance with what GCC is expecting to find. This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Cc: Kees Cook Signed-off-by: Bartlomiej Zolnierkiewicz commit babc250e278eac7b0e671bdaedf833759b43bb78 Author: Mikulas Patocka Date: Mon Apr 1 17:46:57 2019 +0200 udlfb: introduce a rendering mutex Rendering calls may be done simultaneously from the workqueue, dlfb_ops_write, dlfb_ops_ioctl, dlfb_ops_set_par and dlfb_dpy_deferred_io. The code is robust enough so that it won't crash on concurrent rendering. However, concurrent rendering may cause display corruption if the same pixel is simultaneously being rendered. In order to avoid this corruption, this patch adds a mutex around the rendering calls. Signed-off-by: Mikulas Patocka Cc: Bernie Thompson Cc: Ladislav Michl Cc: [b.zolnierkie: replace "dlfb:" with "uldfb:" in the patch summary] Signed-off-by: Bartlomiej Zolnierkiewicz commit 6b11f9d8433b471fdd3ebed232b43a4b723be6ff Author: Mikulas Patocka Date: Mon Apr 1 17:46:56 2019 +0200 udlfb: fix sleeping inside spinlock If a framebuffer device is used as a console, the rendering calls (copyarea, fillrect, imageblit) may be done with the console spinlock held. On udlfb, these function call dlfb_handle_damage that takes a blocking semaphore before acquiring an URB. In order to fix the bug, this patch changes the calls copyarea, fillrect and imageblit to offload USB work to a workqueue. A side effect of this patch is 3x improvement in console scrolling speed because the device doesn't have to be updated after each copyarea call. Signed-off-by: Mikulas Patocka Cc: Bernie Thompson Cc: Ladislav Michl Cc: Signed-off-by: Bartlomiej Zolnierkiewicz commit bd86b6c5c60711dbd4fa21bdb497a188ecb6cf63 Author: Mikulas Patocka Date: Mon Apr 1 17:46:56 2019 +0200 udlfb: delete the unused parameter for dlfb_handle_damage Remove the unused parameter "data" and unused variable "ret". Signed-off-by: Mikulas Patocka Cc: Bernie Thompson Cc: Ladislav Michl Cc: Signed-off-by: Bartlomiej Zolnierkiewicz commit 546f98c1e94157d5d58ac6f452bb409ebd1e37b2 Author: Alexandre Belloni Date: Mon Apr 1 17:46:56 2019 +0200 video: fbdev: atmel_lcdfb: drop AVR and platform_data support Make the driver OF only as since AVR32 has been removed from the kernel, there are only OF enabled platform using it. Signed-off-by: Alexandre Belloni Acked-by: Nicolas Ferre Reviewed-by: Sam Ravnborg Signed-off-by: Bartlomiej Zolnierkiewicz commit 787a79230a0f9984e59549b9baa4daf274973a0d Author: Julia Lawall Date: Mon Apr 1 17:46:56 2019 +0200 omapfb: add missing of_node_put after of_device_is_available Add an of_node_put when a tested device node is not available. The semantic patch that fixes this problem is as follows (http://coccinelle.lip6.fr): // @@ identifier f; local idexpression e; expression x; @@ e = f(...); ... when != of_node_put(e) when != x = e when != e = x when any if (<+...of_device_is_available(e)...+>) { ... when != of_node_put(e) ( return e; | + of_node_put(e); return ...; ) } // Fixes: f76ee892a99e6 ("omapfb: copy omapdss & displays for omapfb") Signed-off-by: Julia Lawall Signed-off-by: Bartlomiej Zolnierkiewicz commit 36884ceb76661b09af62005c3b60b41670ae71aa Author: Finn Thain Date: Mon Apr 1 17:46:55 2019 +0200 video/macfb: Always initialize DAFB colour table pointer register Don't skip the framebuffer CLUT pointer register initialization when the first dafb_setpalette() invocation has regno equal to zero. Suggested-by: Geert Uytterhoeven Signed-off-by: Finn Thain Signed-off-by: Bartlomiej Zolnierkiewicz commit f82301661c6ca3414fb0f6c223f206be938b9495 Author: Finn Thain Date: Mon Apr 1 17:46:55 2019 +0200 video/macfb: Call fb_invert_cmaps() The 'inverse' parameter has no effect otherwise. Remove set-but-unused variable. Signed-off-by: Finn Thain Signed-off-by: Bartlomiej Zolnierkiewicz commit cbb91d5d487dfd2f8fc0ddd4604563477c8efd2a Author: Geert Uytterhoeven Date: Mon Apr 1 17:46:55 2019 +0200 fbdev: atafb: Modernize printing of kernel messages Now the driver has been converted to a platform driver, the legacy printk() calls without any log level can be replaced by proper dev_*() calls. Signed-off-by: Geert Uytterhoeven Cc: Michael Schmitz Cc: Paul Gortmaker Signed-off-by: Bartlomiej Zolnierkiewicz commit 80cf96357db7f0f41912c7ff30ae5f01ef515993 Author: Geert Uytterhoeven Date: Mon Apr 1 17:46:55 2019 +0200 fbdev: atafb: Fix broken frame buffer after kexec On Falcon, Atari frame buffer initialization relies on preprogrammed register values. These register values are changed to blank the console. Hence when using kexec to boot into a new kernel while the console is blanked, the new kernel cannot determine the current video configuration, and the Atari frame buffer driver fails to initialize: atafb: phys_screen_base 6ce000 screen_len 4096 Fix this by doing a straight-forward conversion of the driver to a platform device driver, and adding a shutdown handler that unblanks the display. Signed-off-by: Geert Uytterhoeven Cc: Michael Schmitz Cc: Paul Gortmaker Signed-off-by: Bartlomiej Zolnierkiewicz commit 577eabb2cbe2e7d0ab1ceef3047ea698caf5db15 Author: Geert Uytterhoeven Date: Mon Apr 1 17:46:55 2019 +0200 fbdev: atafb: Remove obsolete module support CONFIG_FB_ATARI is bool, hence the Atari frame buffer driver cannot be built as a module. In addition, the module support code refers to a function atafb_deinit(), which never existed. Replace module_init() by device_initcall(). Signed-off-by: Geert Uytterhoeven Cc: Michael Schmitz Cc: Paul Gortmaker Signed-off-by: Bartlomiej Zolnierkiewicz commit e4bedbb625c9fbf205d9fd3d9532e7ebda4a977d Author: Geert Uytterhoeven Date: Mon Apr 1 17:46:54 2019 +0200 fbdev: atafb: Stop printing virtual screen_base Printing (hashed) virtual addresses is useless. Signed-off-by: Geert Uytterhoeven Cc: Michael Schmitz Cc: Paul Gortmaker Signed-off-by: Bartlomiej Zolnierkiewicz commit e4995b12e749873f25bd4c64ba056f506a6d2f1a Author: Finn Thain Date: Mon Apr 1 17:46:54 2019 +0200 video/macfb: Remove redundant code The value of info->var.bits_per_pixel get checked in macfb_setcolreg(). Remove additional checks as they are redundant. macfb_defined.activate gets initialized to FB_ACTIVATE_NOW by the struct initializer. Remove redundant assignments. macfb_defined.bits_per_pixel, .width and .height all get assigned unconditionally. Remove redundant initializers. Signed-off-by: Finn Thain Tested-by: Stan Johnson Reviewed-by: Geert Uytterhoeven Signed-off-by: Bartlomiej Zolnierkiewicz commit 3f98434235c9d15d389458a9f30fb184db9693ac Author: Colin Ian King Date: Mon Apr 1 17:46:54 2019 +0200 video: fbdev: savage: fix indentation issue The indentation in the if statement is not indented correctly, fix this with extra level of indentation. Signed-off-by: Colin Ian King Cc: Antonino Daplas Signed-off-by: Bartlomiej Zolnierkiewicz commit a7ae716ecfe76d455ccb21864d1c926293a4656a Author: Colin Ian King Date: Mon Apr 1 17:46:54 2019 +0200 video: fbdev: vesafb: fix indentation issue There are a couple of statements that are indented too deeply, fix this by removing tabs. Also add a space after a comma to clean up a cppcheck warning. Signed-off-by: Colin Ian King Signed-off-by: Bartlomiej Zolnierkiewicz commit 767f17a70e5cc5147ddba112977fe7bed0a31bd2 Author: Melchior Franz Date: Mon Apr 1 17:46:53 2019 +0200 fbdev: mxsfb: implement FB_PRE_INIT_FB option The FB_PRE_INIT_FB option keeps the kernel from reinitializing the display and prevents flickering during the transition from a bootloader splash screen to the kernel logo screen. Make this option available for the mxsfb driver. Signed-off-by: Melchior Franz Signed-off-by: Martin Kepplinger Signed-off-by: Manfred Schlaegl Cc: Shawn Guo Cc: Sascha Hauer Cc: Pengutronix Kernel Team Cc: Fabio Estevam Signed-off-by: Bartlomiej Zolnierkiewicz commit d878970f6ce127a0b5288e1ef20fbbbff7676792 Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 bus: ti-sysc: Add separate functions for handling clocks At least McPDM module depends on an external optional clock to be usable. To make handling of the McPDM clock easier in the following patches, let's add separate functions for handling the main clocks and the optional clocks. Let's also add error handling to shut down already enabled clocks while at it. Signed-off-by: Tony Lindgren commit ff43728c4aa29c139fdc6c9be30e4cae4d2b7339 Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 bus: ti-sysc: Move legacy platform data idling into separate functions Let's move the legacy idle and enable into separate functions to simplify PM runtime functions a bit. Signed-off-by: Tony Lindgren commit b7182b42a93790eefa21bb7710cad584a3bc89c0 Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 bus: ti-sysc: Make functions static We can make sysc_write() and sysc_child_pm_domain static as noted by sparse. Signed-off-by: Tony Lindgren commit 386cb76681ca6248878c7b76d3d5aa0e8b8a07bb Author: Tony Lindgren Date: Fri Mar 22 07:49:30 2019 -0700 bus: ti-sysc: Handle missed no-idle property in addition to no-idle-on-init We have ti,no-idle in use in addition to ti,no-idle-on-init but we're missing handling for it in the ti-sysc interconnect target module driver. Let's also group the idle defines together and update the binding documentation for it. Cc: devicetree@vger.kernel.org Reviewed-by: Rob Herring Signed-off-by: Tony Lindgren commit aaa29bb01cc4bf5a87dbdb219efba3b09f259d8e Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 bus: ti-sysc: Fix sysc_unprepare() when no clocks have been allocated If we return early before ddata->clocks have been allocated we will get a NULL pointer dereference in sysc_unprepare(). Let's fix this by returning early when no clocks are allocated. Fixes: 0eecc636e5a2 ("bus: ti-sysc: Add minimal TI sysc interconnect target driver") Signed-off-by: Tony Lindgren commit 344bf332ceb2364a2fcd3ab4133dce5ea35c2594 Author: Muchun Song Date: Sat Mar 30 21:13:46 2019 +0800 arm64: mm: fix incorrect assignment of 'max_mapnr' Although we don't actually make use of the 'max_mapnr' global variable, we do set it to a junk value for !CONFIG_FLATMEM configurations that leave mem_map uninitialised. To avoid somebody tripping over this in future, set 'max_mapnr' using max_pfn, which is calculated directly from the memblock information. Reviewed-by: Catalin Marinas Signed-off-by: Muchun Song Signed-off-by: Will Deacon commit 3764db4f0b4eefbf4aa97ef7255ae3c29b56ee8c Author: Ondrej Jirman Date: Mon Apr 1 15:36:10 2019 +0200 ARM: dts: sun8i: a83t: Add missing CPU clock references A83T DTSI has cpu clocks defined only on the first CPU in each cluster. We can bring down any CPU in the cluster, so we need to define clock for each CPU, so that the system knows what clock to use if the first CPU is down. Also move the clocks property below the compatible on cpus where it is already defined. Property "clock-names" is not needed. Signed-off-by: Ondrej Jirman Signed-off-by: Maxime Ripard commit 56a85fd8376ef32458efb6ea97a820754e12f6bb Author: Holger Hoffstätte Date: Tue Feb 12 15:54:24 2019 -0700 loop: properly observe rotational flag of underlying device The loop driver always declares the rotational flag of its device as rotational, even when the device of the mapped file is nonrotational, as is the case with SSDs or on tmpfs. This can confuse filesystem tools which are SSD-aware; in my case I frequently forget to tell mkfs.btrfs that my loop device on tmpfs is nonrotational, and that I really don't need any automatic metadata redundancy. The attached patch fixes this by introspecting the rotational flag of the mapped file's underlying block device, if it exists. If the mapped file's filesystem has no associated block device - as is the case on e.g. tmpfs - we assume nonrotational storage. If there is a better way to identify such non-devices I'd love to hear them. Cc: Jens Axboe Cc: linux-block@vger.kernel.org Cc: holger@applied-asynchrony.com Signed-off-by: Holger Hoffstätte Signed-off-by: Gwendal Grignou Signed-off-by: Benjamin Gordon Reviewed-by: Guenter Roeck Signed-off-by: Jens Axboe commit 4438cf50e7b315ff4bc4cfff8520b906428c3024 Author: Paolo Valente Date: Tue Mar 12 09:59:35 2019 +0100 doc, block, bfq: add information on bfq execution time The execution time of BFQ has been slightly lowered. Report the new execution time in BFQ documentation. Signed-off-by: Paolo Valente Signed-off-by: Jens Axboe commit fffca087d587b03d0d0dca2e86bf8e688fbf2c18 Author: Francesco Pollicino Date: Tue Mar 12 09:59:34 2019 +0100 block, bfq: save & resume weight on a queue merge/split bfq saves the state of a queue each time a merge occurs, to be able to resume such a state when the queue is associated again with its original process, on a split. Unfortunately bfq does not save & restore also the weight of the queue. If the weight is not correctly resumed when the queue is recycled, then the weight of the recycled queue could differ from the weight of the original queue. This commit adds the missing save & resume of the weight. Tested-by: Holger Hoffstätte Tested-by: Oleksandr Natalenko Signed-off-by: Francesco Pollicino Signed-off-by: Paolo Valente Signed-off-by: Jens Axboe commit 1e66413c4f68e2a61a210e4f5ff5df7a2ab86a5b Author: Francesco Pollicino Date: Tue Mar 12 09:59:33 2019 +0100 block, bfq: print SHARED instead of pid for shared queues in logs The function "bfq_log_bfqq" prints the pid of the process associated with the queue passed as input. Unfortunately, if the queue is shared, then more than one process is associated with the queue. The pid that gets printed in this case is the pid of one of the associated processes. Which process gets printed depends on the exact sequence of merge events the queue underwent. So printing such a pid is rather useless and above all is often rather confusing because it reports a random pid between those of the associated processes. This commit addresses this issue by printing SHARED instead of a pid if the queue is shared. Tested-by: Holger Hoffstätte Tested-by: Oleksandr Natalenko Signed-off-by: Francesco Pollicino Signed-off-by: Paolo Valente Signed-off-by: Jens Axboe commit 84a746891e1d8364485c0a37533fe6c1380270d4 Author: Paolo Valente Date: Tue Mar 12 09:59:32 2019 +0100 block, bfq: always protect newly-created queues from existing active queues If many bfq_queues belonging to the same group happen to be created shortly after each other, then the processes associated with these queues have typically a common goal. In particular, bursts of queue creations are usually caused by services or applications that spawn many parallel threads/processes. Examples are systemd during boot, or git grep. If there are no other active queues, then, to help these processes get their job done as soon as possible, the best thing to do is to reach a high throughput. To this goal, it is usually better to not grant either weight-raising or device idling to the queues associated with these processes. And this is exactly what BFQ currently does. There is however a drawback: if, in contrast, some other queues are already active, then the newly created queues must be protected from the I/O flowing through the already existing queues. In this case, the best thing to do is the opposite as in the other case: it is much better to grant weight-raising and device idling to the newly-created queues, if they deserve it. This commit addresses this issue by doing so if there are already other active queues. This change also helps eliminating false positives, which occur when the newly-created queues do not belong to an actual large burst of creations, but some background task (e.g., a service) happens to trigger the creation of new queues in the middle, i.e., very close to when the victim queues are created. These false positive may cause total loss of control on process latencies. Tested-by: Holger Hoffstätte Tested-by: Oleksandr Natalenko Signed-off-by: Paolo Valente Signed-off-by: Jens Axboe commit 7074f076ff153021f408229b0ce63063dde9a400 Author: Paolo Valente Date: Tue Mar 12 09:59:31 2019 +0100 block, bfq: do not tag totally seeky queues as soft rt Sync random I/O is likely to be confused with soft real-time I/O, because it is characterized by limited throughput and apparently isochronous arrival pattern. To avoid false positives, this commits prevents bfq_queues containing only random (seeky) I/O from being tagged as soft real-time. Tested-by: Holger Hoffstätte Tested-by: Oleksandr Natalenko Signed-off-by: Paolo Valente Signed-off-by: Jens Axboe commit 8cacc5ab3eacf5284bc9b0d7d5b85b748a338104 Author: Paolo Valente Date: Tue Mar 12 09:59:30 2019 +0100 block, bfq: do not merge queues on flash storage with queueing To boost throughput with a set of processes doing interleaved I/O (i.e., a set of processes whose individual I/O is random, but whose merged cumulative I/O is sequential), BFQ merges the queues associated with these processes, i.e., redirects the I/O of these processes into a common, shared queue. In the shared queue, I/O requests are ordered by their position on the medium, thus sequential I/O gets dispatched to the device when the shared queue is served. Queue merging costs execution time, because, to detect which queues to merge, BFQ must maintain a list of the head I/O requests of active queues, ordered by request positions. Measurements showed that this costs about 10% of BFQ's total per-request processing time. Request processing time becomes more and more critical as the speed of the underlying storage device grows. Yet, fortunately, queue merging is basically useless on the very devices that are so fast to make request processing time critical. To reach a high throughput, these devices must have many requests queued at the same time. But, in this configuration, the internal scheduling algorithms of these devices do also the job of queue merging: they reorder requests so as to obtain as much as possible a sequential I/O pattern. As a consequence, with processes doing interleaved I/O, the throughput reached by one such device is likely to be the same, with and without queue merging. In view of this fact, this commit disables queue merging, and all related housekeeping, for non-rotational devices with internal queueing. The total, single-lock-protected, per-request processing time of BFQ drops to, e.g., 1.9 us on an Intel Core i7-2760QM@2.40GHz (time measured with simple code instrumentation, and using the throughput-sync.sh script of the S suite [1], in performance-profiling mode). To put this result into context, the total, single-lock-protected, per-request execution time of the lightest I/O scheduler available in blk-mq, mq-deadline, is 0.7 us (mq-deadline is ~800 LOC, against ~10500 LOC for BFQ). Disabling merging provides a further, remarkable benefit in terms of throughput. Merging tends to make many workloads artificially more uneven, mainly because of shared queues remaining non empty for incomparably more time than normal queues. So, if, e.g., one of the queues in a set of merged queues has a higher weight than a normal queue, then the shared queue may inherit such a high weight and, by staying almost always active, may force BFQ to perform I/O plugging most of the time. This evidently makes it harder for BFQ to let the device reach a high throughput. As a practical example of this problem, and of the benefits of this commit, we measured again the throughput in the nasty scenario considered in previous commit messages: dbench test (in the Phoronix suite), with 6 clients, on a filesystem with journaling, and with the journaling daemon enjoying a higher weight than normal processes. With this commit, the throughput grows from ~150 MB/s to ~200 MB/s on a PLEXTOR PX-256M5 SSD. This is the same peak throughput reached by any of the other I/O schedulers. As such, this is also likely to be the maximum possible throughput reachable with this workload on this device, because I/O is mostly random, and the other schedulers basically just pass I/O requests to the drive as fast as possible. [1] https://github.com/Algodev-github/S Tested-by: Holger Hoffstätte Tested-by: Oleksandr Natalenko Tested-by: Francesco Pollicino Signed-off-by: Alessio Masola Signed-off-by: Paolo Valente Signed-off-by: Jens Axboe commit 2341d662e9a2a5751ff8ac4ffa640fb493b0ee84 Author: Paolo Valente Date: Tue Mar 12 09:59:29 2019 +0100 block, bfq: tune service injection basing on request service times The processes associated with a bfq_queue, say Q, may happen to generate their cumulative I/O at a lower rate than the rate at which the device could serve the same I/O. This is rather probable, e.g., if only one process is associated with Q and the device is an SSD. It results in Q becoming often empty while in service. If BFQ is not allowed to switch to another queue when Q becomes empty, then, during the service of Q, there will be frequent "service holes", i.e., time intervals during which Q gets empty and the device can only consume the I/O already queued in its hardware queues. This easily causes considerable losses of throughput. To counter this problem, BFQ implements a request injection mechanism, which tries to fill the above service holes with I/O requests taken from other bfq_queues. The hard part in this mechanism is finding the right amount of I/O to inject, so as to both boost throughput and not break Q's bandwidth and latency guarantees. To this goal, the current version of this mechanism measures the bandwidth enjoyed by Q while it is being served, and tries to inject the maximum possible amount of extra service that does not cause Q's bandwidth to decrease too much. This solution has an important shortcoming. For bandwidth measurements to be stable and reliable, Q must remain in service for a much longer time than that needed to serve a single I/O request. Unfortunately, this does not hold with many workloads. This commit addresses this issue by changing the way the amount of injection allowed is dynamically computed. It tunes injection as a function of the service times of single I/O requests of Q, instead of Q's bandwidth. Single-request service times are evidently meaningful even if Q gets very few I/O requests completed while it is in service. As a testbed for this new solution, we measured the throughput reached by BFQ for one of the nastiest workloads and configurations for this scheduler: the workload generated by the dbench test (in the Phoronix suite), with 6 clients, on a filesystem with journaling, and with the journaling daemon enjoying a higher weight than normal processes. With this commit, the throughput grows from ~100 MB/s to ~150 MB/s on a PLEXTOR PX-256M5. Tested-by: Holger Hoffstätte Tested-by: Oleksandr Natalenko Tested-by: Francesco Pollicino Signed-off-by: Paolo Valente Signed-off-by: Jens Axboe commit fb53ac6cd0269987b1b77f957db453b3ec7bf7e4 Author: Paolo Valente Date: Tue Mar 12 09:59:28 2019 +0100 block, bfq: do not idle for lowest-weight queues In most cases, it is detrimental for throughput to plug I/O dispatch when the in-service bfq_queue becomes temporarily empty (plugging is performed to wait for the possible arrival, soon, of new I/O from the in-service queue). There is however a case where plugging is needed for service guarantees. If a bfq_queue, say Q, has a higher weight than some other active bfq_queue, and is sync, i.e., contains sync I/O, then, to guarantee that Q does receive a higher share of the throughput than other lower-weight queues, it is necessary to plug I/O dispatch when Q remains temporarily empty while being served. For this reason, BFQ performs I/O plugging when some active bfq_queue has a higher weight than some other active bfq_queue. But this is unnecessarily overkill. In fact, if the in-service bfq_queue actually has a weight lower than or equal to the other queues, then the queue *must not* be guaranteed a higher share of the throughput than the other queues. So, not plugging I/O cannot cause any harm to the queue. And can boost throughput. Taking advantage of this fact, this commit does not plug I/O for sync bfq_queues with a weight lower than or equal to the weights of the other queues. Here is an example of the resulting throughput boost with the dbench workload, which is particularly nasty for BFQ. With the dbench test in the Phoronix suite, BFQ reaches its lowest total throughput with 6 clients on a filesystem with journaling, in case the journaling daemon has a higher weight than normal processes. Before this commit, the total throughput was ~80 MB/sec on a PLEXTOR PX-256M5, after this commit it is ~100 MB/sec. Tested-by: Holger Hoffstätte Tested-by: Oleksandr Natalenko Signed-off-by: Paolo Valente Signed-off-by: Jens Axboe commit 778c02a236a8728bb992de10ed1f12c0be5b7b0e Author: Paolo Valente Date: Tue Mar 12 09:59:27 2019 +0100 block, bfq: increase idling for weight-raised queues If a sync bfq_queue has a higher weight than some other queue, and remains temporarily empty while in service, then, to preserve the bandwidth share of the queue, it is necessary to plug I/O dispatching until a new request arrives for the queue. In addition, a timeout needs to be set, to avoid waiting for ever if the process associated with the queue has actually finished its I/O. Even with the above timeout, the device is however not fed with new I/O for a while, if the process has finished its I/O. If this happens often, then throughput drops and latencies grow. For this reason, the timeout is kept rather low: 8 ms is the current default. Unfortunately, such a low value may cause, on the opposite end, a violation of bandwidth guarantees for a process that happens to issue new I/O too late. The higher the system load, the higher the probability that this happens to some process. This is a problem in scenarios where service guarantees matter more than throughput. One important case are weight-raised queues, which need to be granted a very high fraction of the bandwidth. To address this issue, this commit lower-bounds the plugging timeout for weight-raised queues to 20 ms. This simple change provides relevant benefits. For example, on a PLEXTOR PX-256M5S, with which gnome-terminal starts in 0.6 seconds if there is no other I/O in progress, the same applications starts in - 0.8 seconds, instead of 1.2 seconds, if ten files are being read sequentially in parallel - 1 second, instead of 2 seconds, if, in parallel, five files are being read sequentially, and five more files are being written sequentially Tested-by: Holger Hoffstätte Tested-by: Oleksandr Natalenko Signed-off-by: Paolo Valente Signed-off-by: Jens Axboe commit 9de2640b06ecf0e6ef4b24b07a5573a2804d77d0 Author: Yonghong Song Date: Thu Mar 28 22:30:53 2019 -0700 bpf: add bpffs multi-dimensional array tests in test_btf For multiple dimensional arrays like below, int a[2][3] both llvm and pahole generated one BTF_KIND_ARRAY type like . element_type: int . index_type: unsigned int . number of elements: 6 Such a collapsed BTF_KIND_ARRAY type will cause the divergence in BTF vs. the user code. In the compile-once-run-everywhere project, the header file is generated from BTF and used for bpf program, and the definition in the header file will be different from what user expects. But the kernel actually supports chained multi-dimensional array types properly. The above "int a[2][3]" can be represented as Type #n: . element_type: int . index_type: unsigned int . number of elements: 3 Type #(n+1): . element_type: type #n . index_type: unsigned int . number of elements: 2 The following llvm commit https://reviews.llvm.org/rL357215 also enables llvm to generated proper chained multi-dimensional arrays. The test_btf already has a raw test ("struct test #1") for chained multi-dimensional arrays. This patch added amended bpffs test for chained multi-dimensional arrays. Acked-by: Martin KaFai Lau Signed-off-by: Yonghong Song Signed-off-by: Alexei Starovoitov Signed-off-by: Daniel Borkmann commit 1f87b0cd32b3456d7efdfb017fcf74d0bfe3ec29 Author: Hans de Goede Date: Fri Mar 22 08:41:40 2019 +0100 HID: logitech-hidpp: change low battery level threshold from 31 to 30 percent According to hidpp20_batterylevel_get_battery_info my Logitech K270 keyboard reports only 2 battery levels. This matches with what I've seen after testing with batteries at varying level of fullness, it always reports either 5% or 30%. Windows reports "battery good" for the 30% level. I've captured an USB trace of Windows reading the battery and it is getting the same info as the Linux hidpp code gets. Now that Linux handles these devices as hidpp devices, it reports the battery as being low as it treats anything under 31% as low, this leads to the user constantly getting a "Keyboard battery is low" warning from GNOME3, which is very annoying. This commit fixes this by changing the low threshold to anything under 30%, which I assume is what Windows does. Signed-off-by: Hans de Goede Signed-off-by: Jiri Kosina commit 090760d4269d03d05341e428b6a7ef68f94c5dcc Author: Hans de Goede Date: Fri Mar 22 08:41:39 2019 +0100 HID: logitech-hidpp: remove hidpp_is_connected() Remove the hidpp_is_connected() function wrapper, and have the callers directly call hidpp_root_get_protocol_version() instead. Signed-off-by: Hans de Goede Signed-off-by: Jiri Kosina commit 9576af6a95dbabd035a59fa6ffc5b88baa07f221 Author: Hans de Goede Date: Fri Mar 22 08:41:38 2019 +0100 HID: logitech-hidpp: simplify printing of HID++ version Simply always print the HID++ version on hidpp_root_get_protocol_version success. This also fixes the version not being printed when a HID++ device connected through a receiver is already connected when the hidpp driver is loaded. Signed-off-by: Hans de Goede Signed-off-by: Jiri Kosina commit 31ec8c14566e2bad88a71daf209d2caf80036a3e Author: Ondrej Jirman Date: Mon Apr 1 13:56:13 2019 +0200 ARM: dts: sun8i: a83t: Add UART2 PB pins Add pin definitions for UART2 PB pins. These are used on TBS-A711 tablet. Signed-off-by: Ondrej Jirman Signed-off-by: Maxime Ripard commit 2efcca8ae68897a5b4c4994fc9ee4c7366e57e24 Author: Ondrej Jirman Date: Mon Apr 1 13:56:12 2019 +0200 ARM: dts: sun8i: tbs-a711: Add node for BMA250 accelerometer A711 tablet has BMA250 accelerometer connected to I2C1 bus. Enable both the I2C1 bus and add the accelerometer device to it. Signed-off-by: Ondrej Jirman Signed-off-by: Maxime Ripard commit dcb4b22eeaf44f9122721ffc2b14d84363871454 Author: Jonas Bonn Date: Wed Mar 20 08:16:04 2019 +0100 spi-nor: s25fl512s supports region locking Both the BP[0-2] bits and the TBPROT bit are supported on this chip. Tested and verified on a Cypress s25fl512s. Signed-off-by: Jonas Bonn Reviewed-by: Tudor Ambarus Signed-off-by: Miquel Raynal commit 2b75ebeea6f4937d4d05ec4982c471cef9a29b7f Author: Alexander Sverdlin Date: Tue Mar 19 17:18:07 2019 +0000 mtd: spi-nor: intel-spi: Avoid crossing 4K address boundary on read/write It was observed that reads crossing 4K address boundary are failing. This limitation is mentioned in Intel documents: Intel(R) 9 Series Chipset Family Platform Controller Hub (PCH) Datasheet: "5.26.3 Flash Access Program Register Access: * Program Register Accesses are not allowed to cross a 4 KB boundary..." Enhanced Serial Peripheral Interface (eSPI) Interface Base Specification (for Client and Server Platforms): "5.1.4 Address For other memory transactions, the address may start or end at any byte boundary. However, the address and payload length combination must not cross the naturally aligned address boundary of the corresponding Maximum Payload Size. It must not cross a 4 KB address boundary." Avoid this by splitting an operation crossing the boundary into two operations. Fixes: 8afda8b26d01 ("spi-nor: Add support for Intel SPI serial flash controller") Cc: stable@vger.kernel.org Reported-by: Romain Porte Tested-by: Pascal Fabreges Signed-off-by: Alexander Sverdlin Reviewed-by: Tudor Ambarus Acked-by: Mika Westerberg Signed-off-by: Miquel Raynal commit 90751f686e3f0415f1f931bf47ff14dd34316ea5 Author: Martin Blumenstingl Date: Sun Mar 24 16:14:23 2019 +0100 clk: meson: meson8b: add the video decoder clock trees This adds the four video decoder clock trees. VDEC_1 is split into two paths on Meson8b and Meson8m2: - input mux called "vdec_1_sel" - two dividers ("vdec_1_1_div" and "vdec_1_2_div") and gates ("vdec_1_1" and "vdec_1_2") - and an output mux (probably glitch-free) called "vdec_1" On Meson8 the VDEC_1 tree is simpler because there's only one path: - input mux called "vdec_1_sel" - divider ("vdec_1_1_div") and gate ("vdec_1_1") - (the gate is used as output directly, there's no mux) The VDEC_HCODEC and VDEC_2 clocks are simple composite clocks each consisting of an input mux, divider and a gate. The VDEC_HEVC clock seems to have two paths similar to the VDEC_1 clock. However, the register offsets of the second clock path is not known. Amlogic's 3.10 kernel (which is used as reference) sets HHI_VDEC2_CLK_CNTL[31] to 1 before changing the VDEC_HEVC clock and back to 0 afterwards. For now, leave a TODO comment and only add the first path. Signed-off-by: Martin Blumenstingl Reviewed-by: Neil Armstrong Reviewed-by: Maxime Jourdan Acked-by: Jerome Brunet Signed-off-by: Neil Armstrong Link: https://lkml.kernel.org/r/20190324151423.19063-3-martin.blumenstingl@googlemail.com commit 41785ce562491db935471b31211481941a65c68f Author: Martin Blumenstingl Date: Sun Mar 24 16:11:04 2019 +0100 clk: meson: meson8b: add the VPU clock trees The VPU clock tree is slightly different on all three supported SoCs: Meson8 only has an input mux (which chooses between "fclk_div4", "fclk_div3", "fclk_div5" and "fclk_div7"), a divider and a gate. Meson8b has two VPU clock trees, each with an input mux (using the same parents as the input mux on Meson8), divider and a gates. The final VPU clock is a glitch-free mux which chooses between VPU_1 and VPU_2. Meson8m2 uses a similar clock tree as Meson8b but the last input clock is different: instead of using "fclk_div7" as input Meson8m2 uses "gp_pll". This was probably done in hardware to improve the accuracy of the clock because fclk_div7 gives us 2550MHz / 7 = 364.286MHz while GP_PLL can achieve 364.0MHz. Signed-off-by: Martin Blumenstingl Reviewed-by: Neil Armstrong Acked-by: Jerome Brunet Signed-off-by: Neil Armstrong Link: https://lkml.kernel.org/r/20190324151104.18397-5-martin.blumenstingl@googlemail.com commit b882964b376f214ef3d96d8a643c7c46121c30a8 Author: Martin Blumenstingl Date: Sun Mar 24 16:11:03 2019 +0100 clk: meson: meson8b: add support for the GP_PLL clock on Meson8m2 Meson8m2 has a GP_PLL clock (similar to GP0_PLL on GXBB/GXL/GXM) which is used as input for the VPU clocks. The only supported frequency (based on Amlogic's vendor kernel sources) is 364MHz which is achieved using the following parameters: - input: XTAL (24MHz) - M = 182 - N = 3 - OD = 2 ^ 2 Signed-off-by: Martin Blumenstingl Reviewed-by: Neil Armstrong Acked-by: Jerome Brunet Signed-off-by: Neil Armstrong Link: https://lkml.kernel.org/r/20190324151104.18397-4-martin.blumenstingl@googlemail.com commit 32cd198a1a505566f8e9d2c925bcfc8b889bbc23 Author: Martin Blumenstingl Date: Sun Mar 24 16:11:02 2019 +0100 clk: meson: meson8b: use a separate clock table for Meson8m2 Meson8, Meson8b and Meson8m2 implement a similar clock controller. However, there are a few differences between the three actual IP blocks. One example where Meson8m2 differs from Meson8b is the VPU clock setup: - the VPU input mux can choose between "fclk_div4", "fclk_div3", "fclk_div5" and "fclk_div7" on Meson8b - however, on Meson8m2 it can choose between "fclk_div4", "fclk_div3", "fclk_div5" and "gp_pll" (GP_PLL only exists on Meson8m2, it's the predecessor of the GP0_PLL clock on GXBB/GXL/GXM)) Add a separate clk_hw_onecell_data table for Meson8m2 so these differences can be implemented in our clock controller driver. For now meson8m2_hw_onecell_data is a clone of our existing meson8b_hw_onecell_data. Signed-off-by: Martin Blumenstingl Reviewed-by: Neil Armstrong Acked-by: Jerome Brunet Signed-off-by: Neil Armstrong Link: https://lkml.kernel.org/r/20190324151104.18397-3-martin.blumenstingl@googlemail.com commit df7686101956929dcea410971656e34926773b88 Merge: 9a9f1d1a81a9 79a3aaa7b82e Author: Bartlomiej Zolnierkiewicz Date: Mon Apr 1 13:12:09 2019 +0200 Merge tag 'v5.1-rc3' of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into fbdev-for-next Linux 5.1-rc3 Sync with upstream (which now contains fbdev-v5.1 changes) to prepare a base for fbdev-v5.2 changes. commit 50d1ebef79ef6d09f4fb91f0b424e4f87db1d8a8 Author: Chunming Zhou Date: Mon Apr 1 17:51:02 2019 +0800 drm/syncobj: add timeline signal ioctl for syncobj v5 v2: individually allocate chain array, since chain node is free independently. v3: all existing points must be already signaled before cpu perform signal operation, so add check condition for that. v4: remove v3 change and add checking to prevent out-of-order v5: unify binary and timeline Signed-off-by: Chunming Zhou Signed-off-by: Christian König Cc: Tobias Hector Cc: Jason Ekstrand Cc: Dave Airlie Cc: Chris Wilson Reviewed-by: Lionel Landwerlin Link: https://patchwork.freedesktop.org/patch/295792/?series=58813&rev=1 commit ea569910cbab980abb42daa603ad4e8f5f9deaaa Author: Chunming Zhou Date: Mon Apr 1 17:51:01 2019 +0800 drm/syncobj: add transition iotcls between binary and timeline v2 we need to import/export timeline point. v2: unify to one transfer ioctl Signed-off-by: Chunming Zhou Signed-off-by: Christian König Reviewed-by: Lionel Landwerlin Link: https://patchwork.freedesktop.org/patch/295790/?series=58813&rev=1 commit bc9c80fe01a2570a2fd78abbc492b377b5fda068 Author: Christian König Date: Mon Apr 1 17:50:59 2019 +0800 drm/syncobj: use the timeline point in drm_syncobj_find_fence v4 Implement finding the right timeline point in drm_syncobj_find_fence. v2: return -EINVAL when the point is not submitted yet. v3: fix reference counting bug, add flags handling as well v4: add timeout for find fence Signed-off-by: Christian König Reviewed-by: Lionel Landwerlin Link: https://patchwork.freedesktop.org/patch/295786/?series=58813&rev=1 commit 27b575a9aa2ff0358c5f4410a14f6413d5c792e4 Author: Chunming Zhou Date: Mon Apr 1 17:50:58 2019 +0800 drm/syncobj: add timeline payload query ioctl v6 user mode can query timeline payload. v2: check return value of copy_to_user v3: handle querying entry by entry v4: rebase on new chain container, simplify interface v5: query last signaled timeline point, not last point. v6: add unorder point check Signed-off-by: Chunming Zhou Signed-off-by: Christian König Cc: Tobias Hector Cc: Jason Ekstrand Cc: Dave Airlie Cc: Chris Wilson Reviewed-by: Lionel Landwerlin Link: https://patchwork.freedesktop.org/patch/295784/?series=58813&rev=1 commit 01d6c357837918d8186b9f520e167d98e3d560cc Author: Chunming Zhou Date: Mon Apr 1 17:50:57 2019 +0800 drm/syncobj: add support for timeline point wait v8 points array is one-to-one match with syncobjs array. v2: add seperate ioctl for timeline point wait, otherwise break uapi. v3: userspace can specify two kinds waits:: a. Wait for time point to be completed. b. and wait for time point to become available v4: rebase v5: add comment for xxx_WAIT_AVAILABLE v6: rebase and rework on new container v7: drop _WAIT_COMPLETED, it is the default anyway v8: correctly handle garbage collected fences Signed-off-by: Chunming Zhou Signed-off-by: Christian König Cc: Tobias Hector Cc: Jason Ekstrand Cc: Dave Airlie Cc: Chris Wilson Reviewed-by: Lionel Landwerlin Link: https://patchwork.freedesktop.org/patch/295782/?series=58813&rev=1 commit 44f8a1396e83f1030eaf18591b3f106235118a64 Author: Christian König Date: Mon Apr 1 17:50:56 2019 +0800 drm/syncobj: add new drm_syncobj_add_point interface v4 Use the dma_fence_chain object to create a timeline of fence objects instead of just replacing the existing fence. v2: rebase and cleanup v3: fix garbage collection parameters v4: add unorder point check, print a warn calltrace Signed-off-by: Christian König Reviewed-by: Lionel Landwerlin Link: https://patchwork.freedesktop.org/patch/295780/?series=58813&rev=1 commit 7bf60c52e093d9309752dbc3569fa213a80fb815 Author: Christian König Date: Mon Apr 1 17:50:55 2019 +0800 dma-buf: add new dma_fence_chain container v7 Lockless container implementation similar to a dma_fence_array, but with only two elements per node and automatic garbage collection. v2: properly document dma_fence_chain_for_each, add dma_fence_chain_find_seqno, drop prev reference during garbage collection if it's not a chain fence. v3: use head and iterator for dma_fence_chain_for_each v4: fix reference count in dma_fence_chain_enable_signaling v5: fix iteration when walking each chain node v6: add __rcu for member 'prev' of struct chain node v7: fix rcu warnings from kernel robot Signed-off-by: Christian König Reviewed-by: Lionel Landwerlin Link: https://patchwork.freedesktop.org/patch/295778/?series=58813&rev=1 commit 64e1f830ea5b3516a4256ed1c504a265d7f2a65c Author: Christian König Date: Wed Mar 13 10:11:19 2019 +0100 drm: fallback to dma_alloc_coherent when memory encryption is active We can't just map any randome page we get when memory encryption is active. Signed-off-by: Christian König Acked-by: Alex Deucher Link: https://patchwork.kernel.org/patch/10850833/ commit ff7a5a0a8562434f114035a5a4cbbeec5cb6320c Author: Wen Yang Date: Wed Feb 27 12:40:42 2019 +0800 PCI: mediatek: Fix a leaked reference by adding missing of_node_put() The call to of_get_next_child() returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. irq_domain_add_linear() also calls of_node_get() to increase refcount, so irq_domain will not be affected when it is released. Detected by coccinelle with the following warnings: ./drivers/pci/controller/pcie-mediatek.c:577:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 567, but without a corresponding object release within this function. ./drivers/pci/controller/pcie-mediatek.c:583:3-9: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 567, but without a corresponding object release within this function. ./drivers/pci/controller/pcie-mediatek.c:586:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 567, but without a corresponding object release within this function. Signed-off-by: Wen Yang Signed-off-by: Lorenzo Pieralisi Acked-by: Honghui Zhang Cc: Ryder Lee Cc: Lorenzo Pieralisi Cc: Bjorn Helgaas Cc: Matthias Brugger Cc: linux-pci@vger.kernel.org Cc: linux-mediatek@lists.infradead.org Cc: linux-kernel@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org commit 8956388d3670c5050825a6410761843ffd7e4848 Author: Wen Yang Date: Wed Feb 27 12:40:41 2019 +0800 PCI: iproc: Fix a leaked reference by adding missing of_node_put() The call to of_parse_phandle() returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. iproc_msi_init() also calls of_node_get() to increase refcount: proc_msi_init() -> iproc_msi_alloc_domains() -> pci_msi_create_irq_domain() -> msi_create_irq_domain() -> irq_domain_create_linear() -> __irq_domain_add() so irq_domain will not be affected when it is released. Detected by coccinelle with the following warnings: ./drivers/pci/controller/pcie-iproc.c:1323:3-9: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 1299, but without a corresponding object release within this function. ./drivers/pci/controller/pcie-iproc.c:1330:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 1299, but without a corresponding object release within this function. Signed-off-by: Wen Yang Signed-off-by: Lorenzo Pieralisi Cc: Lorenzo Pieralisi Cc: Bjorn Helgaas Cc: Ray Jui Cc: Scott Branden Cc: bcm-kernel-feedback-list@broadcom.com Cc: linux-pci@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org commit 3842f5166bf1ef286fe7a39f262b5c9581308366 Author: Wen Yang Date: Wed Feb 27 12:40:40 2019 +0800 PCI: aardvark: Fix a leaked reference by adding missing of_node_put() The call to of_get_next_child() returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. irq_domain_add_linear() also calls of_node_get() to increase refcount, so irq_domain will not be affected when it is released. Detected by coccinelle with the following warnings: ./drivers/pci/controller/pci-aardvark.c:826:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 798, but without a corresponding object release within this function. Signed-off-by: Wen Yang Signed-off-by: Lorenzo Pieralisi Cc: Thomas Petazzoni Cc: Lorenzo Pieralisi Cc: Bjorn Helgaas Cc: linux-pci@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org commit 69adea738eb2be70b4753dbb60eb1de9abbfb4dc Author: Wen Yang Date: Wed Feb 27 12:40:39 2019 +0800 PCI: rockchip: Fix a leaked reference by adding missing of_node_put() The call to of_get_child_by_name() returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. irq_domain_add_linear() also calls of_node_get() to increase refcount, so irq_domain will not be affected when it is released. Detected by coccinelle with the following warnings: ./drivers/pci/controller/pcie-rockchip-host.c:729:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 718, but without a corresponding object release within this function. ./drivers/pci/controller/pcie-rockchip-host.c:732:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 718, but without a corresponding object release within this function. Signed-off-by: Wen Yang Signed-off-by: Lorenzo Pieralisi Cc: Shawn Lin Cc: Lorenzo Pieralisi Cc: Bjorn Helgaas Cc: Heiko Stuebner Cc: linux-pci@vger.kernel.org Cc: linux-rockchip@lists.infradead.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org commit b35c0e4543945fe9b21e6ed9ab72cdb5efb30718 Author: Wen Yang Date: Wed Feb 27 12:40:38 2019 +0800 PCI: dwc: layerscape: Fix a leaked reference by adding missing of_node_put() The call to of_parse_phandle() returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: ./drivers/pci/controller/dwc/pci-layerscape.c:204:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 198, but without a corresponding object release within this function. Signed-off-by: Wen Yang Signed-off-by: Lorenzo Pieralisi Cc: Minghuan Lian Cc: Mingkai Hu Cc: Roy Zang Cc: Lorenzo Pieralisi Cc: Bjorn Helgaas Cc: linuxppc-dev@lists.ozlabs.org Cc: linux-pci@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org commit 088aed8bcab0fd63785144a0fdf53cbb6cee2ea8 Author: Mans Rullgard Date: Thu Mar 28 13:02:49 2019 +0000 drm/sun4i: hdmi: add support for ddc-i2c-bus property Sometimes it is desirabled to use a separate i2c controller for ddc access. This adds support for the ddc-i2c-bus property of the hdmi-connector node, using the specified controller if provided. Signed-off-by: Mans Rullgard Signed-off-by: Maxime Ripard Link: https://patchwork.freedesktop.org/patch/msgid/20190328130249.19356-1-mans@mansr.com commit aefa763b18a220f5fc1d5ab02af09158b6cc36ea Author: Zhang Rui Date: Mon Apr 1 09:24:39 2019 +0800 ACPI: video: Use vendor backlight on Sony VPCEH3U1E On Sony Vaio VPCEH3U1E, ACPI backlight control does not work, and native backlight works. Thus force use vendor backlight control on this system. Link: https://bugzilla.kernel.org/show_bug.cgi?id=202401 Signed-off-by: Zhang Rui Signed-off-by: Rafael J. Wysocki commit df61c776657fa5986267199fdf271bf0fca32d69 Author: Yannick Fertré Date: Thu Mar 21 09:15:20 2019 +0100 drm/stm: add sleep power management Implements system sleep power management ops. Signed-off-by: Yannick Fertré Acked-by: Philippe Cornu Signed-off-by: Benjamin Gaignard Link: https://patchwork.freedesktop.org/patch/msgid/1553156120-13851-1-git-send-email-yannick.fertre@st.com commit 257f9053c0204ea47491aa236004fd1226f75fa8 Author: Andy Shevchenko Date: Thu Mar 28 19:17:29 2019 +0200 ACPI / utils: Remove deprecated function since no user left There is no more user of acpi_dev_get_first_match_name(), which is deprecated and has no user left, so, remove it for good. Signed-off-by: Andy Shevchenko Reviewed-by: Mika Westerberg Signed-off-by: Rafael J. Wysocki commit b664e6fe2225972e0eb3df0bb8dbedd1a0fc641f Author: Andy Shevchenko Date: Thu Mar 28 19:17:28 2019 +0200 ASoC: Intel: cht_bsw_rt5672: Convert to use acpi_dev_get_first_match_dev() acpi_dev_get_first_match_name() is deprecated and going to be removed because it leaks a reference. Convert the driver to use acpi_dev_get_first_match_dev() instead. Signed-off-by: Andy Shevchenko Acked-by: Pierre-Louis Bossart Reviewed-by: Mika Westerberg Signed-off-by: Rafael J. Wysocki commit fe4c283a79db91ac0d4402a363024789275c3fd1 Author: Andy Shevchenko Date: Thu Mar 28 19:17:27 2019 +0200 ASoC: Intel: cht_bsw_rt5645: Convert to use acpi_dev_get_first_match_dev() acpi_dev_get_first_match_name() is deprecated and going to be removed because it leaks a reference. Convert the driver to use acpi_dev_get_first_match_dev() instead. Signed-off-by: Andy Shevchenko Acked-by: Pierre-Louis Bossart Reviewed-by: Mika Westerberg Signed-off-by: Rafael J. Wysocki commit 7075e9babb5db302907cf32b1db688eb83c85f77 Author: Andy Shevchenko Date: Thu Mar 28 19:17:26 2019 +0200 ASoC: Intel: bytcr_rt5651: Convert to use acpi_dev_get_first_match_dev() acpi_dev_get_first_match_name() is deprecated and going to be removed because it leaks a reference. Convert the driver to use acpi_dev_get_first_match_dev() instead. Signed-off-by: Andy Shevchenko Acked-by: Pierre-Louis Bossart Reviewed-by: Mika Westerberg Signed-off-by: Rafael J. Wysocki commit a320d89e67d6a08af18603b538021087a41bb182 Author: Andy Shevchenko Date: Thu Mar 28 19:17:25 2019 +0200 ASoC: Intel: bytcr_rt5640: Convert to use acpi_dev_get_first_match_dev() acpi_dev_get_first_match_name() is deprecated and going to be removed because it leaks a reference. Convert the driver to use acpi_dev_get_first_match_dev() instead. Signed-off-by: Andy Shevchenko Acked-by: Pierre-Louis Bossart Reviewed-by: Mika Westerberg Signed-off-by: Rafael J. Wysocki commit 645056da677082811b978f6285bf1ec0be947340 Author: Andy Shevchenko Date: Thu Mar 28 19:17:24 2019 +0200 ASoC: Intel: bytcht_es8316: Convert to use acpi_dev_get_first_match_dev() acpi_dev_get_first_match_name() is deprecated and going to be removed because it leaks a reference. Convert the driver to use acpi_dev_get_first_match_dev() instead. Signed-off-by: Andy Shevchenko Acked-by: Pierre-Louis Bossart Reviewed-by: Mika Westerberg Signed-off-by: Rafael J. Wysocki commit 1b55f1c6fd64efd7b1339664edc1222ad99f9c9b Author: Andy Shevchenko Date: Thu Mar 28 19:17:23 2019 +0200 ASoC: Intel: bytcht_da7213: Convert to use acpi_dev_get_first_match_dev() acpi_dev_get_first_match_name() is deprecated and going to be removed because it leaks a reference. Convert the driver to use acpi_dev_get_first_match_dev() instead. Signed-off-by: Andy Shevchenko Acked-by: Pierre-Louis Bossart Reviewed-by: Mika Westerberg Signed-off-by: Rafael J. Wysocki commit d00d2109c3679bf87d412b1667bcb6d42c1ac12f Author: Andy Shevchenko Date: Thu Mar 28 19:17:22 2019 +0200 gpio: merrifield: Convert to use acpi_dev_get_first_match_dev() acpi_dev_get_first_match_name() is deprecated and going to be removed because it leaks a reference. Convert the driver to use acpi_dev_get_first_match_dev() instead. Signed-off-by: Andy Shevchenko Reviewed-by: Hans de Goede Reviewed-by: Mika Westerberg Signed-off-by: Rafael J. Wysocki commit 0cf064db948aca1e760fc513594536f761dee1cd Author: Andy Shevchenko Date: Thu Mar 28 19:17:21 2019 +0200 extcon: axp288: Convert to use acpi_dev_get_first_match_dev() acpi_dev_get_first_match_name() is deprecated and going to be removed because it leaks a reference. Convert the driver to use acpi_dev_get_first_match_dev() instead. Signed-off-by: Andy Shevchenko Acked-by: Chanwoo Choi Reviewed-by: Mika Westerberg Signed-off-by: Rafael J. Wysocki commit 1861a1ffbc08ad53e1f07af8d754514298c22eb4 Author: Yannick Fertré Date: Thu Mar 21 09:13:53 2019 +0100 drm/stm: dw_mipi_dsi-stm: add sleep power management Implements system sleep power management ops. Signed-off-by: Yannick Fertré Acked-by: Philippe Cornu Signed-off-by: Benjamin Gaignard Link: https://patchwork.freedesktop.org/patch/msgid/1553156033-13792-1-git-send-email-yannick.fertre@st.com commit 817b4d64da036f5559297a2fdb82b8b14f4ffdcd Author: Andy Shevchenko Date: Mon Mar 18 23:00:54 2019 +0300 ACPI / utils: Introduce acpi_dev_get_first_match_dev() helper The acpi_dev_get_first_match_name() is missing put_device() call and thus keeping reference counting unbalanced. In order to fix the issue introduce a new helper to convert existing users one-by-one to a better API. Signed-off-by: Andy Shevchenko Reviewed-by: Hans de Goede Reviewed-by: Mika Westerberg Acked-by: Mark Brown Signed-off-by: Rafael J. Wysocki commit 2b17a3c759e5e2ed3faafb69e243ec312e3bf0da Author: Sowjanya Komatineni Date: Tue Mar 26 22:56:33 2019 -0700 spi: tegra114: add SPI_LSB_FIRST support Tegra SPI controller supports lsb first mode. Default is MSB bit first and on selection of SPI_LSB_FIRST through SPI mode transmission happens with LSB bit first. This patch adds SPI_LSB_FIRST flag to mode_bits and also configures it on request. Signed-off-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit fc9ba6e3e28afcedf3bb3105b1d8cbc5c183c2a3 Author: Sowjanya Komatineni Date: Tue Mar 26 22:56:25 2019 -0700 spi: tegra114: use packed mode for 32 bits per word Fixes: Use packed mode for 32 bits per word transfers to increase performance as each packet is a full 32-bit word. Signed-off-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit 17ecffa289489e8442306bbc62ebb964e235cdad Author: Rasmus Villemoes Date: Wed Mar 27 14:30:51 2019 +0000 spi: spi-fsl-spi: relax message sanity checking a little The comment says that we should not allow changes (to bits_per_word/speed_hz) while CS is active, and indeed the code below does fsl_spi_setup_transfer() when the ->cs_change of the previous spi_transfer was set (and for the very first transfer). So the sanity checking is a bit too strict - we can change it to follow the same logic as is used by the actual transfer loop. Signed-off-by: Rasmus Villemoes Signed-off-by: Mark Brown commit 24c363623361b430fb79459ca922e816e6f48603 Author: Rasmus Villemoes Date: Wed Mar 27 14:30:50 2019 +0000 spi: spi-fsl-spi: remove always-true conditional in fsl_spi_do_one_msg __spi_validate() in the generic SPI code sets ->speed_hz and ->bits_per_word to non-zero values, so this condition is always true. Signed-off-by: Rasmus Villemoes Signed-off-by: Mark Brown commit 77a725ff7a640ab24ff9cf9450e6eae072c49f16 Author: Martin Blumenstingl Date: Sun Mar 24 16:14:22 2019 +0100 dt-bindings: clock: meson8b: export the video decoder clocks Export the four video decoder clocks so they can be used by the video decoder driver: - VDEC_1 - VDEC_HCODEC - VDEC_2 - VDEC_HEVC Signed-off-by: Martin Blumenstingl Acked-by: Jerome Brunet Reviewed-by: Rob Herring Signed-off-by: Neil Armstrong Link: https://lkml.kernel.org/r/20190324151423.19063-2-martin.blumenstingl@googlemail.com commit 4b0f73055acaced436d5de909b26d001ea7f667c Author: Maxime Jourdan Date: Tue Mar 19 11:11:38 2019 +0100 clk: meson-g12a: add video decoder clocks Add the necessary clock parts for: - VDEC_1: used to feed VDEC_1 - VDEC_HEVC: the "back" part of the VDEC_HEVC block - VDEC_HEVCF: the "front" part of the VDEC_HEVC block In previous SoC generations (GXL, GXBB), there was only one VDEC_HEVC clock, which got split in two parts for G12A. Signed-off-by: Maxime Jourdan Acked-by: Neil Armstrong Signed-off-by: Neil Armstrong Link: https://lkml.kernel.org/r/20190319101138.27520-2-mjourdan@baylibre.com commit ba1ce88efa3af0c4b437c5d6aa3b1cae6bc42855 Author: Martin Blumenstingl Date: Sun Mar 24 16:11:01 2019 +0100 dt-bindings: clock: meson8b: export the VPU clock The VPU clock is an input the the "VPU" (Video Processing Unit), which is one of the components of the display controller. Signed-off-by: Martin Blumenstingl Reviewed-by: Rob Herring Acked-by: Jerome Brunet Signed-off-by: Neil Armstrong Link: https://lkml.kernel.org/r/20190324151104.18397-2-martin.blumenstingl@googlemail.com commit 34775209ba37bff3b4e60ddee0a2d69966146a5d Author: Neil Armstrong Date: Thu Mar 7 15:14:55 2019 +0100 clk: meson-g12a: add PCIE PLL clocks Add the PCIe reference clock feeding the USB3 + PCIE combo PHY. This PLL needs a very precise register sequence to permit to be locked, thus using the specific clk-pll pcie ops. The PLL is then followed by : - a fixed /2 divider - a 5-bit 1-based divider - a final /2 divider This reference clock is fixed to 100MHz, thus only a single PLL setup is added. Signed-off-by: Neil Armstrong Acked-by: Jerome Brunet Link: https://lkml.kernel.org/r/20190307141455.23879-4-narmstrong@baylibre.com commit 133bb341b99d096d332108f412234d0cf641c15d Author: Neil Armstrong Date: Thu Mar 21 10:20:10 2019 +0100 dt-bindings: clock: g12a-aoclk: expose CLKID_AO_CTS_OSCIN When submitted v2 of the G12A AO-CLK IDs, the CLKID_AO_CTS_OSCIN was moved to the internal non-exported bindings, but this clock is necessary for the second AO-CEC-B module since it embeds the 32768Hz dual-divider clock generator unlike the AO-CEC-A module. Export it back to the public bindings. Fixes: be3d960b0aeb ("dt-bindings: clk: add G12A AO Clock and Reset Bindings") Signed-off-by: Neil Armstrong Reviewed-by: Rob Herring Link: https://lkml.kernel.org/r/20190321092010.14382-1-narmstrong@baylibre.com commit 39b8500283b45252e2f9ad9d60992f2c0d3a1659 Author: Neil Armstrong Date: Thu Mar 7 15:14:53 2019 +0100 clk: meson-pll: add reduced specific clk_ops for G12A PCIe PLL The Meson G12A PCIE PLL is fined tuned to deliver a very precise 100MHz reference clock for the PCIe Analog PHY, and thus requires a strict register sequence to enable the PLL. To simplify, use the _init() op to enable the PLL and keep the other ops except set_rate since the rate is fixed. Signed-off-by: Neil Armstrong Acked-by: Jerome Brunet Link: https://lkml.kernel.org/r/20190307141455.23879-2-narmstrong@baylibre.com commit 23e9ae2826466f17d4733b80bf1cc98645e90ef2 Author: Martin Blumenstingl Date: Tue Mar 19 22:41:23 2019 +0100 dt-bindings: clock: meson8b: drop the "ABP" clock definition Commit 8e1dd17c8b0e3f ("dt-bindings: clock: meson8b: export the CPU post dividers") added a new clock ID "CLKID_ABP" which contains a typo. This was fixed by adding a new (typo-free) #define CLKID_APB in commit 40d08f774c17ad ("dt-bindings: clock: meson8b: add APB clock definition"). Now that the new #define is used by the driver we can remove the old one (because the old one is not used anywhere). Signed-off-by: Martin Blumenstingl Acked-by: Neil Armstrong Reviewed-by: Rob Herring Signed-off-by: Neil Armstrong Link: https://lkml.kernel.org/r/20190319214123.27219-2-martin.blumenstingl@googlemail.com commit 370294e2667fa1648eb05aab6c4657419634ff83 Author: Neil Armstrong Date: Mon Mar 4 14:11:29 2019 +0100 clk: meson: g12a: add cpu clocks Add the Amlogic G12A Family CPU Clock tree in read/only for now. The CPU clock can either use the SYS_PLL for > 1GHz frequencies or use a couple of div+mux from 1GHz/667MHz/24MHz source with 2 non-glitch muxes. Proper DVFS support will come in a second time. Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Acked-by: Jerome Brunet [narmstrong: fixed cpu clocks namings] Link: https://lkml.kernel.org/r/20190304131129.7762-3-narmstrong@baylibre.com commit 19478907951afef2249506acc8afec89c3133d9d Author: Maxime Jourdan Date: Tue Mar 19 11:11:37 2019 +0100 dt-bindings: clk: g12a-clkc: add VDEC clock IDs Expose the three clocks related to the video decoder. Signed-off-by: Maxime Jourdan Reviewed-by: Rob Herring Signed-off-by: Neil Armstrong Link: https://lkml.kernel.org/r/20190319101138.27520-2-mjourdan@baylibre.com commit e4c1e95facf9ddf70bb1a737f8ab1c7d38acd234 Author: Jerome Brunet Date: Wed Feb 13 10:58:35 2019 +0100 dt-bindings: clock: axg-audio: unexpose controller inputs Remove the bindings ID of the clock input of the controller. These clocks are purely internal to the controller, exposing them was a mistake. Actually, these should not even be in the provider and have IDs to begin with. Unexpose these IDs before: * someone starts using them (even if there no valid reason to do so) * the actual clocks are removed. The fact that they exist is just the result of an ugly hack. This will be resolved in CCF when we can reference DT directly in parent table. Signed-off-by: Jerome Brunet Acked-by: Maxime Jourdan Reviewed-by: Rob Herring Signed-off-by: Neil Armstrong Link: https://lkml.kernel.org/r/20190213095835.17448-1-jbrunet@baylibre.com commit 019194933339b3e9b486639c8cb3692020844d65 Author: Sowjanya Komatineni Date: Tue Mar 26 22:56:32 2019 -0700 spi: tegra114: reset controller on probe Fixes: SPI driver can be built as module so perform SPI controller reset on probe to make sure it is in valid state before initiating transfer. Signed-off-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit f4ce428c41fb22e3ed55496dded94df44cb920fa Author: Sowjanya Komatineni Date: Tue Mar 26 22:56:29 2019 -0700 spi: tegra114: configure dma burst size to fifo trig level Fixes: Configure DMA burst size to be same as SPI TX/RX trigger levels to avoid mismatch. SPI FIFO trigger levels are calculated based on the transfer length. So this patch moves DMA slave configuration to happen before start of DMAs. Signed-off-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit c4fc9e5b28ff787e35137c2cc13316bb11d7657b Author: Sowjanya Komatineni Date: Tue Mar 26 22:56:28 2019 -0700 spi: tegra114: flush fifos Fixes: Flush TX and RX FIFOs before start of new transfer and on FIFO overflow or underrun errors. Signed-off-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit 32bd1a9551cae34e6889afa235c7afdfede9aeac Author: Sowjanya Komatineni Date: Tue Mar 26 22:56:27 2019 -0700 spi: tegra114: terminate dma and reset on transfer timeout Fixes: terminate DMA and perform controller reset on transfer timeout to clear the FIFO's and errors. Signed-off-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit 85edcd01a902885fcb7bc02b7fc0f6e6a01b9386 Author: Andy Shevchenko Date: Sat Mar 30 00:33:45 2019 +0300 gpiolib: acpi: Fix references in kernel doc and amend This patch does the following bunch of changes: - append () to the functions for reference - convert gpiochip(s) -> GPIO chip(s) - add a note about returned error code type [acpi_find_gpio()] - move long summary to a description [acpi_gpio_count()] Signed-off-by: Andy Shevchenko Acked-by: Mika Westerberg Signed-off-by: Bartosz Golaszewski commit 35146467bd43704c52d1d5760af9839a10ad5b12 Author: YueHaibing Date: Mon Mar 25 03:17:40 2019 +0000 ASoC: simple-card-utils: remove set but not used variable 'dai_name' Fixes gcc '-Wunused-but-set-variable' warning: sound/soc/generic/simple-card-utils.c: In function 'asoc_simple_parse_clk': sound/soc/generic/simple-card-utils.c:164:18: warning: parameter 'dai_name' set but not used [-Wunused-but-set-parameter] It's not used since commit 0580dde59438 ("ASoC: simple-card-utils: add asoc_simple_debug_info()"), so can be removed. Signed-off-by: YueHaibing Acked-by: Kuninori Morimoto Reviewed-by: Mukesh Ojha Signed-off-by: Mark Brown commit 0bbcedd6bb41b82b77115fc001441ff34e7c4ea7 Author: Paul Cercueil Date: Fri Mar 29 22:50:43 2019 +0100 ASoC: es8316: Add support for inverted jack detect On some devices (Teclast X98+ II tablet, maybe others), the jack detection has been wired backwards, so when the ES8316 reports headphones being present it means they are actually not plugged. Use a quirk around this incorrect behaviour, which can be enabled through the 'everest,jack-detect-inverted' boolean device property. Signed-off-by: Paul Cercueil Signed-off-by: Mark Brown commit 1a89ac5b91895127f7c586ec5075c3753ca25501 Author: Sowjanya Komatineni Date: Tue Mar 26 22:56:24 2019 -0700 spi: tegra114: fix for unpacked mode transfers Fixes: computation of actual bytes to fill/receive in/from FIFO in unpacked mode when transfer length is not a multiple of requested bits per word. unpacked mode transfers fails when the transfer includes partial bytes in the last word. Total words to be written/read to/from FIFO is computed based on transfer length and bits per word. Unpacked mode includes 0 padding bytes for partial words to align with bits per word and these extra bytes are also accounted for calculating bytes left to transfer in the current driver. This causes extra bytes access of tx/rx buffers along with buffer index position crossing actual length where remain_len becomes negative and due to unsigned type, negative value is a 32 bit representation of signed value and transferred bytes never meets the actual transfer length resulting in transfer timeout and a hang. This patch fixes this with proper computation of the actual bytes to fill in FIFO during transmit and the actual bytes to read from FIFO during receive ignoring 0 padded bytes. Signed-off-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit 7b3d10cdf54b8bc1dc0da21faed9789ac4da3684 Author: Sowjanya Komatineni Date: Tue Mar 26 22:56:23 2019 -0700 spi: tegra114: clear packed bit for unpacked mode Fixes: Clear packed bit when not using packed mode. Packed bit is not cleared when not using packed mode. This results in transfer timeouts for the unpacked mode transfers followed by the packed mode transfers. Signed-off-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit 94b18a86eb5c82c5778bfb1ce815651f0e331bb5 Author: Cezary Gapinski Date: Tue Mar 26 22:48:59 2019 +0100 spi: pic32: fix dma channels termination When timeout occurs DMA TX and RX channels should be stopped instead of stopping RX channel twice time. Signed-off-by: Cezary Gapinski Signed-off-by: Mark Brown commit 261e1a6e4ae5f5bfe8ad8d44580b880da99b81eb Author: Ondrej Jirman Date: Thu Mar 28 12:31:58 2019 +0100 ARM: dts: sun8i: a83t: Add missing cooling device properties for CPUs Enable to use CPUs as cooling device in the future, by adding "#cooling-cells" to each CPU node. This property should be present for all the CPUs of a cluster. If these are present only for a subset of CPUs of a cluster then things will start falling apart as soon as the CPUs are brought online in a different order. For example, this will happen because the operating system looks for such properties in the CPU node it is trying to bring up, so that it can register a cooling device. Signed-off-by: Ondrej Jirman Signed-off-by: Maxime Ripard commit 7dc6c766a7d712e19cc03630610e037b9680d32f Author: Axel Lin Date: Wed Mar 27 09:29:47 2019 +0800 regulator: as3722: Slightly improve readability Add a local variable *desc to avoid too many change lines due to over 80 characters. Signed-off-by: Axel Lin Acked-by: Laxman Dewangan Signed-off-by: Mark Brown commit ce0a383db3cd8ecd3a19d051de01cc14515e5683 Author: Axel Lin Date: Wed Mar 27 09:29:46 2019 +0800 regulator: as3722: Convert to use regulator_set/get_current_limit_regmap Use regulator_set/get_current_limit_regmap helpers to save some code. Signed-off-by: Axel Lin Acked-by: Laxman Dewangan Signed-off-by: Mark Brown commit f979c08f762441188abb9be42689a72953efbbf7 Author: Axel Lin Date: Thu Mar 28 20:02:25 2019 +0800 regulator: tps6507x: Convert to regulator core's simplified DT parsing code Use regulator core's simplified DT parsing code to simply the driver implementation. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 69c57b97db9c4886b1f338613fccb0b8408b324b Author: Axel Lin Date: Thu Mar 28 20:02:24 2019 +0800 regulator: tps6507x: Remove unused *rdev[] from struct tps6507x_pmic This driver is using devm_regulator_register so no need to save *rdev for clean up. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 646e268e66ec8664317ae677a3b774b7dc812c84 Author: Axel Lin Date: Thu Mar 28 20:02:23 2019 +0800 regulator: tps6507x: Constify tps6507x_pmic_ops The tps6507x_pmic_ops never need to be modified, make it const so compiler can put it to .rodata. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 9e488c0a59cbb8353962dae974b77361920c1777 Author: Axel Lin Date: Fri Mar 29 09:46:31 2019 +0800 regulator: vctrl: Remove unneeded continue statement Signed-off-by: Axel Lin Reviewed-by: Mukesh Ojha Reviewed-by: Matthias Kaehlcke Signed-off-by: Mark Brown commit c07608f737bd5ecf336b68427d4c9671283bf7b9 Author: Axel Lin Date: Wed Mar 27 19:54:13 2019 +0800 regulator: rc5t583: Get rid of struct rc5t583_regulator The struct rc5t583_regulator only has 2 members, the *rdev is no longer used because this driver is using devm_regulator_register now. After remove *rdev, only *reg_info left. We can use struct rc5t583_regulator_info directly, so remove struct rc5t583_regulator. Signed-off-by: Axel Lin Acked-by: Laxman Dewangan Signed-off-by: Mark Brown commit 8293488205f145aeefbec76f231303c8e32647a2 Author: Srinivas Kandagatla Date: Thu Mar 28 16:22:18 2019 +0000 regmap: regmap-irq: fix getting type default values Checking for value of type default value just after allocating will always be zero and the type register default values will never be read, so fix this! Without this patch setting irq type will be silently ignored. Patch "regmap: regmap-irq: Remove default irq type setting from core" did remove the default mask but it forgot to remove the check before reading the default type register. Fixes: 84267d1b18ab ("regmap: regmap-irq: Remove default irq type setting from core") Signed-off-by: Srinivas Kandagatla Signed-off-by: Mark Brown commit 43c691e6232cef62daeca3d434e8729a725b2fe2 Author: Anson Huang Date: Mon Apr 1 05:09:50 2019 +0000 gpio: mxc: use devm_platform_ioremap_resource() to simplify code Use the new helper devm_platform_ioremap_resource() which wraps the platform_get_resource() and devm_ioremap_resource() together, to simplify the code. Signed-off-by: Anson Huang Signed-off-by: Bartosz Golaszewski commit 5a79acf9a9188d85e1f1a697ed7531e0f0f36943 Author: Shunli Wang Date: Fri Mar 29 16:34:49 2019 +0800 ASoC: Mediatek: Add document for mt8183-da7219-max98357 This patch adds document for the machine board with mt6358, da7219 and max98357 codecs. Signed-off-by: Shunli Wang Signed-off-by: Mark Brown commit 809589a94dcce27cb5f2081280d1155c71ae45f7 Author: Charles Keepax Date: Wed Mar 27 15:24:51 2019 +0000 ASoC: wm_adsp: Fix typo in comment Signed-off-by: Charles Keepax Signed-off-by: Mark Brown commit de70b2a581125a8a627db6fdc1d7f9c05536fe84 Author: Colin Ian King Date: Thu Mar 28 09:28:16 2019 +0000 ASoC: fsl: fix spelling mistake: "missign" -> "missing" There is a spelling mistake in a dev_err message. Fix this. Signed-off-by: Colin Ian King Reviewed-by: Mukesh Ojha Acked-by: Viorel Suman Signed-off-by: Mark Brown commit ebbddc75bbe8d8eab64d3285b0480f5ae9232b2e Author: Shunli Wang Date: Fri Mar 29 16:34:48 2019 +0800 ASoC: Mediatek: MT8183: Add machine driver with DA7219 This patch adds support for the machine board with mt6358, da7219 and max98357 codecs. Signed-off-by: Shunli Wang Signed-off-by: Mark Brown commit 9067cdea17954f4c5b0d5b114a588b8d85ce3219 Author: Shunli Wang Date: Fri Mar 29 16:34:47 2019 +0800 ASoC: Mediatek: Add document for mt8183-mt6358-ts3a227-max98357 This patch adds document for the machine board with mt6358, ts3a227 and max98357 codecs. Signed-off-by: Shunli Wang Signed-off-by: Mark Brown commit 11c0269017b212fd47c593307d2dc3eb9713b2d0 Author: Shunli Wang Date: Fri Mar 29 16:34:46 2019 +0800 ASoC: Mediatek: MT8183: Add machine driver with TS3A227 This patch adds support for the machine board with TS3A227. Signed-off-by: Shunli Wang Signed-off-by: Mark Brown commit 2b070f6739025ecbf2ccb55daf9e19d3fb343c7e Author: Oder Chiou Date: Thu Mar 28 10:27:00 2019 +0800 ASoC: rt5677-spi: Add ACPI ID Add the ACPI ID for the product "chromebook pixel 2015" to match the coreboot settings. Signed-off-by: Oder Chiou Signed-off-by: Mark Brown commit ad6bb3067c4d7c684488eb9f8f8a32f623b12af3 Author: Olivier Moysan Date: Fri Mar 29 16:37:37 2019 +0100 ASoC: cs42l51: add multi endpoint support Support multiple endpoints on cs42L51 codec port when used in of_graph context. This patch allows to share the codec port between two CPU DAIs. Example: STM32MP157C-DK2 board uses CS42L51 audio codec. This codec is connected to two serial audio interfaces, which are configured either as rx or tx. From AsoC point of view the topolgy is the following: // 2 CPU DAIs (SAI2A/B), 1 Codec (CS42L51) Playback: CPU-A-DAI(slave) -> (master)CODEC-DAI/port0 Record: CPU-B-DAI(slave) <- (master)CODEC-DAI/port0 In the DT two endpoints have to be associated to the codec port: cs42l51_port: port { cs42l51_tx_endpoint: endpoint@0 { remote-endpoint = <&sai2a_endpoint>; }; cs42l51_rx_endpoint: endpoint@1 { remote-endpoint = <&sai2b_endpoint>; }; }; However, when the audio graph card parses the codec nodes, it expects to find DAI interface indexes matching the endpoints indexes. The current patch forces the use of DAI id 0 for both endpoints, which allows to share the codec DAI between the two CPU DAIs for playback and capture streams respectively. Signed-off-by: Olivier Moysan Signed-off-by: Mark Brown commit 86e2f89075ac0e4f99e051b9bc30b6ce9d0095b3 Author: Ondrej Jirman Date: Wed Mar 27 01:18:39 2019 +0100 ARM: dts: sun8i: a83t: Add nodes for UART2-UART4 A83T has 5 UART interfaces, but only the first two have their nodes defined in sun8i-a83t.dtsi. Add nodes for the missing interfaces. Signed-off-by: Ondrej Jirman Signed-off-by: Maxime Ripard commit 2a63a027ea15ecc0e3a09817b0fe0b33547230fb Author: Ondrej Jirman Date: Wed Mar 27 01:18:37 2019 +0100 ARM: dts: sun8i: tbs-a711: Enable bluetooth TBS A711 tablet has a bcm20702a1 bluetooth chip (part of AP6210 WiFi/BT module) connected to UART1. Add node for the blutooth chip. The driver needs brcm/BCM20702A1.hcd firmware file to run. Signed-off-by: Ondrej Jirman Signed-off-by: Maxime Ripard commit b397f82585c3101dcf92642dd359891e66d00c55 Merge: b60080197af4 79a3aaa7b82e Author: Greg Kroah-Hartman Date: Mon Apr 1 07:49:24 2019 +0200 Merge 5.1-rc3 into staging-next We want those fixes and this resolves an erofs merge conflict. Signed-off-by: Greg Kroah-Hartman commit 8cdfd068c1ea54cca7d7ad6ad31335cc5d0d9905 Merge: 4d537f37e0d3 79a3aaa7b82e Author: Greg Kroah-Hartman Date: Mon Apr 1 07:42:04 2019 +0200 Merge 5.1-rc3 into usb-next We want the USB fixes in here as well. Signed-off-by: Greg Kroah-Hartman commit b63d443be43bd64392fc72f6cae01249c3c3683e Merge: 0eae4686a128 79a3aaa7b82e Author: Greg Kroah-Hartman Date: Mon Apr 1 07:40:47 2019 +0200 Merge 5.1-rc3 into tty-next We want the tty/serial fixes in here as well. Signed-off-by: Greg Kroah-Hartman commit c03a0fd0b609e2f5c669c2b7f27c8e1928e9196e Author: Tetsuo Handa Date: Sun Mar 17 14:02:31 2019 +0900 kobject: Don't trigger kobject_uevent(KOBJ_REMOVE) twice. syzbot is hitting use-after-free bug in uinput module [1]. This is because kobject_uevent(KOBJ_REMOVE) is called again due to commit 0f4dafc0563c6c49 ("Kobject: auto-cleanup on final unref") after memory allocation fault injection made kobject_uevent(KOBJ_REMOVE) from device_del() from input_unregister_device() fail, while uinput_destroy_device() is expecting that kobject_uevent(KOBJ_REMOVE) is not called after device_del() from input_unregister_device() completed. That commit intended to catch cases where nobody even attempted to send "remove" uevents. But there is no guarantee that an event will ultimately be sent. We are at the point of no return as far as the rest of the kernel is concerned; there are no repeats or do-overs. Also, it is not clear whether some subsystem depends on that commit. If no subsystem depends on that commit, it will be better to remove the state_{add,remove}_uevent_sent logic. But we don't want to risk a regression (in a patch which will be backported) by trying to remove that logic. Therefore, as a first step, let's avoid the use-after-free bug by making sure that kobject_uevent(KOBJ_REMOVE) won't be triggered twice. [1] https://syzkaller.appspot.com/bug?id=8b17c134fe938bbddd75a45afaa9e68af43a362d Reported-by: syzbot Analyzed-by: Dmitry Torokhov Fixes: 0f4dafc0563c6c49 ("Kobject: auto-cleanup on final unref") Cc: Kay Sievers Signed-off-by: Tetsuo Handa Signed-off-by: Greg Kroah-Hartman commit 1be01d4a57142ded23bdb9e0c8d9369e693b26cc Author: Geert Uytterhoeven Date: Thu Mar 14 12:13:50 2019 +0100 driver: base: Disable CONFIG_UEVENT_HELPER by default Since commit 7934779a69f1184f ("Driver-Core: disable /sbin/hotplug by default"), the help text for the /sbin/hotplug fork-bomb says "This should not be used today [...] creates a high system load, or [...] out-of-memory situations during bootup". The rationale for this was that no recent mainstream system used this anymore (in 2010!). A few years later, the complete uevent helper support was made optional in commit 86d56134f1b67d0c ("kobject: Make support for uevent_helper optional."). However, if was still left enabled by default, to support ancient userland. Time passed by, and nothing should use this anymore, so it can be disabled by default. Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Kroah-Hartman commit 159ef31e81edd75225c6a844115faf999de67b38 Author: Greg Kroah-Hartman Date: Tue Feb 26 15:32:29 2019 +0100 device.h: reorganize struct device struct device is big, around 760 bytes on x86_64. It's not a critical structure, but it is embedded everywhere, so making it smaller is always a good thing. With a recent patch that moved a field from struct device to the private structure, some benchmarks showed a very odd regression, despite this structure having nothing to do with those benchmarks. That caused me to look into the layout of the structure. Using 'pahole', it showed a number of holes and ways that the structure could be reordered in order to align some cachelines better, as well as reduce the size of the overall structure. Move 'struct kobj' to the start of the structure, to keep that access in the first cacheline, and try to organize things a bit more compactly where possible By doing these few moves, the result removes at least 8 bytes from 'struct device' on a 64bit system. Given we know there are systems with at least 30k devices in memory at once, every little byte counts, and this change could be a savings of 240k of kernel memory for them. On "normal" systems the overall memory savings would be much less. Cc: "Rafael J. Wysocki" Cc: Johan Hovold Signed-off-by: Greg Kroah-Hartman commit 62fa78436e1beb17210df25b38c347ccb44b396b Merge: ae21f41e1f56 79a3aaa7b82e Author: Greg Kroah-Hartman Date: Mon Apr 1 07:34:09 2019 +0200 Merge 5.1-rc3 into char-misc-next We want the char-misc fixes in here as well. Signed-off-by: Greg Kroah-Hartman commit 6b1a9a02c72fdb6e1d67949bb01b66e07d88ace9 Author: Masahiro Yamada Date: Sat Mar 30 21:04:13 2019 +0900 kbuild: pass $(MAKECMDGOALS) to sub-make as is Manipulating $(MAKECMDGOALS) for sub-make seems odd to me. [1] 'make O=foo sub-make' is turned into 'make O=foo', which builds the default targets. It would make sense to terminate the build with: *** No rule to make target 'sub-make'. Stop. [2] 'make O=foo defconfig _all' is turned into 'make O=foo defconfig', which changes the behavior. Let's pass $(MAKECMDGOALS) as is. Signed-off-by: Masahiro Yamada commit 0209987fc81c8118e9fc99a115a45b273e8acc75 Author: Masahiro Yamada Date: Tue Mar 26 15:32:16 2019 +0900 kbuild: fix warning "overriding recipe for target 'Makefile'" If you do "make Makefile" with GNU Make 3.x, the following warning is displayed: $ make Makefile Makefile:165: warning: overriding recipe for target 'Makefile' Makefile:51: warning: ignoring old recipe for target 'Makefile' make[1]: Nothing to be done for 'Makefile'. make: Nothing to be done for 'Makefile'. Signed-off-by: Masahiro Yamada commit 669e06b19de8f844521a55afbdddbbccf26e5322 Author: Masahiro Yamada Date: Tue Mar 26 15:11:12 2019 +0900 kbuild: move RETPOLINE flags below config-targets When you run a "make *config" target, the retpoline compiler flags are evaluated for nothing because the code is located above the 'ifeq ($(config-targets),1)'. Move it a bit below to avoid unneeded computation in the Kconfig stage. Signed-off-by: Masahiro Yamada commit e850b89f50d2c1439f58d547b888ee6e43312dea Author: Oded Gabbay Date: Sun Mar 31 21:37:42 2019 +0300 habanalabs: prevent CPU soft lockup on Palladium Unmapping ptes in the device MMU on Palladium can take a long time, which can cause a kernel BUG of CPU soft lockup. This patch minimize the chances for this bug by sleeping a little between unmapping ptes. Signed-off-by: Oded Gabbay commit 0b6034d84b0077e60038163e9dd683d43135ba8b Author: Andy Shevchenko Date: Mon Mar 25 16:02:07 2019 +0200 leds: pca963x: Make use of device property API Make use of device property API in this driver so that both OF based system and ACPI based system can use this driver. Signed-off-by: Andy Shevchenko Acked-by: Pavel Machek Signed-off-by: Jacek Anaszewski commit 967f69de81478c491f49681d10c71c66b6e7fb96 Author: Andy Shevchenko Date: Mon Mar 25 16:05:00 2019 +0200 leds: pca955x: Make use of device property API Make use of device property API in this driver so that both OF based system and ACPI based system can use this driver. Signed-off-by: Andy Shevchenko Signed-off-by: Jacek Anaszewski commit 1c310074ad6cf5197d47b83cc64c272c538d7e1d Author: YueHaibing Date: Sat Mar 23 11:26:59 2019 +0000 leds: lt3593: Remove unneeded assignment in lt3593_led_probe As the chip can't be queried for it's current state, the "keep" option doesn't make sense. The only option in DT should be turn the LED on or off at probe time. Also 'flags' is never used since introduction. Signed-off-by: YueHaibing Signed-off-by: Jacek Anaszewski commit dd08e136f77bfbd1cc2917bafbd690ad5f40a61b Author: Daniel Mack Date: Wed Mar 20 22:52:27 2019 +0100 leds: lt3593: drop pdata handling code The only user of this driver in mainline has now moved to DTS, so the pdata code is no longer in use by anyone. Let's drop some dead code, and make the driver depend on CONFIG_OF. Signed-off-by: Daniel Mack Signed-off-by: Jacek Anaszewski commit 5b6cd445dbef2e59174504e06f7918627d0ae8fd Author: Andy Shevchenko Date: Fri Mar 15 21:13:42 2019 +0200 leds: pca955x: Revert "Add ACPI support" There is no evidence of officially registered ACPI IDs for these devices. Thus, revert commit 44b3e31d540e917a4d2292b902ade63fa1748d9a. Signed-off-by: Andy Shevchenko Signed-off-by: Jacek Anaszewski commit c90fbae3612d2effdfc9797e3a48063cea67182d Author: Andy Shevchenko Date: Fri Mar 15 21:13:41 2019 +0200 leds: pca963x: Revert "Add ACPI support" There is no evidence of officially registered ACPI IDs for these devices. Thus, revert commit f26dab9fc745540f7e30aa8840be6e49b9671080. Signed-off-by: Andy Shevchenko Signed-off-by: Jacek Anaszewski commit 0eae60583f3229dc67dab952d2be76936c5f56c1 Author: Enrico Weigelt, metux IT consult Date: Wed Mar 6 19:15:46 2019 +0100 drivers: leds: Kconfig: pedantic cleanups Clean up spaces before tabs. Signed-off-by: Enrico Weigelt, metux IT consult Acked-by: Pavel Machek Signed-off-by: Jacek Anaszewski commit 6578229d4efb7ea6287861bfc2bd306140458e07 Author: Heiner Kallweit Date: Sun Mar 31 15:18:48 2019 +0200 r8169: use netif_receive_skb_list batching Use netif_receive_skb_list() instead of napi_gro_receive() to benefit from batched skb processing. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit e66075555f89474e535b08f9107e13753520ad52 Merge: 35f861e3c58e a4e76ba6b499 Author: David S. Miller Date: Sun Mar 31 11:01:23 2019 -0700 Merge branch 'mlxsw-spectrum_acl-Get-rid-of-failed_rollback-mechanism' Ido Schimmel says: ==================== mlxsw: spectrum_acl: Get rid of failed_rollback mechanism Jiri says: Currently if vregion rehash fails, it rolls back to the original ERP set. However, in case of unlikely rollback fail, the vregion is in a zombie state and never gets rehashed again. With the recent changes, it is possible to try to continue the rollback. Do it from the last failed ventry. ==================== Signed-off-by: David S. Miller commit a4e76ba6b4994773fbe7a4eed8228e47862ac8a3 Author: Jiri Pirko Date: Sun Mar 31 06:49:41 2019 +0000 mlxsw: spectrum_acl: Rename rehash_dis trace The name of the trace is no longer correct, since there is no disable of rehash done. So name it "rehash_rollback_failed". Signed-off-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit 7c33c72beff9f9cc76284995358b56deccded544 Author: Jiri Pirko Date: Sun Mar 31 06:49:40 2019 +0000 mlxsw: spectrum_acl: Remove failed_rollback dead end Currently if a rollback ends with error, the vregion is in a zombie state until end of the existence. Instead of that, rather try to continue where rollback ended later on (after rehash interval). Signed-off-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit f3d4ef1a533a0521c73e343f8191b23702fe8ad6 Author: Jiri Pirko Date: Sun Mar 31 06:49:39 2019 +0000 mlxsw: spectrum_acl: Move rehash_dis trace call and err msg to vregion_migrate() Move the call of rehash_dis trace and the error message to vregion_migrate() next to the failed_rollback flag set. Signed-off-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit 44fd86cb7e6d01f32a0db1e6ba25272dcf5dc9f4 Author: Jiri Pirko Date: Sun Mar 31 06:49:38 2019 +0000 mlxsw: spectrum_acl: Remove redundant failed_rollback from migrate_start() The flag is set by the caller mlxsw_sp_acl_tcam_vregion_migrate() anyway, so don't set it here. Signed-off-by: Jiri Pirko Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit 4b028ebd4e3d86c61161b3a937b746043006dcbe Author: Johan Jonker Date: Sat Mar 30 10:56:38 2019 +0100 ARM: dts: rockchip: enable vop0 and hdmi nodes to rk3066a-mk808 This patch enables the vop0 and hdmi nodes for a MK808 with rk3066 processor. Signed-off-by: Johan Jonker Signed-off-by: Heiko Stuebner commit fadc78062477409afd758525d5c228a0d4d1eaaf Author: Zheng Yang Date: Sat Mar 30 10:56:37 2019 +0100 ARM: dts: rockchip: add rk3066 hdmi nodes This patch adds the hdmi nodes to rk3066. Signed-off-by: Zheng Yang Signed-off-by: Johan Jonker Signed-off-by: Heiko Stuebner commit f84d3d37b7fbb022e33b79d54374466f6fbc7186 Author: Zheng Yang Date: Sat Mar 30 10:56:36 2019 +0100 drm: rockchip: introduce rk3066 hdmi The RK3066 HDMI TX serves as interface between a LCD Controller and a HDMI bus. A HDMI TX consists of one HDMI transmitter controller and one HDMI transmitter PHY. The interface has three (3) 8-bit data channels which can be configured for a number of bus widths (8/10/12/16/20/24-bit) and different video formats (RGB, YCbCr). Features: HDMI version 1.4a, HDCP revision 1.4 and DVI version 1.0 compliant transmitter. Supports DTV resolutions from 480i to 1080i/p HD. Master I2C interface for a DDC connection. HDMI TX supports multiple power save modes. The HDMI TX input can switch between LCDC0 and LCDC1. (Sound support is not included in this patch) Signed-off-by: Zheng Yang Signed-off-by: Johan Jonker Signed-off-by: Heiko Stuebner Link: https://patchwork.freedesktop.org/patch/msgid/20190330095639.14626-2-jbx6244@gmail.com commit ee8efa80799f0f7d84c87bec6c4def7fa3556b95 Author: Chris Wilson Date: Sun Mar 31 10:46:20 2019 +0100 drm/i915: Check domains for userptr on release When we return pages to the system, we release control over them and should defensively return them to the CPU write domain so that we catch any external writes on reacquiring them (e.g. to transparently swapout/swapin). While we did this defensive clflushing for ordinary shmem pages, it was forgotten for userptr. Fortunately, userptr objects are normally cache coherent and so oblivious to the forgotten domain tracking. References: a679f58d0510 ("drm/i915: Flush pages on acquisition") References: 754a25442705 ("drm/i915: Skip object locking around a no-op set-domain ioctl") Signed-off-by: Chris Wilson Cc: Matthew Auld Cc: Tvrtko Ursulin Reviewed-by: Matthew Auld Link: https://patchwork.freedesktop.org/patch/msgid/20190331094620.15185-1-chris@chris-wilson.co.uk commit 17e5bb37c53a8b93a26173d5a619495028e9f096 Author: Johan Jonker Date: Sat Mar 30 10:56:39 2019 +0100 dt-bindings: display: rockchip: add document for rk3066 hdmi This patch adds a binding that describes the HDMI controller for rk3066. Signed-off-by: Johan Jonker Reviewed-by: Rob Herring Signed-off-by: Heiko Stuebner Link: https://patchwork.freedesktop.org/patch/msgid/20190330095639.14626-5-jbx6244@gmail.com commit 9336c0216782d3a4cd108b584efe24b64cad8a63 Author: Oded Gabbay Date: Sun Mar 31 11:29:53 2019 +0300 habanalabs: remove trailing blank line from EOF GIT does not like extra blank lines at the end of the file, so this patch removes those lines. Signed-off-by: Oded Gabbay Reviewed-by: Mukesh Ojha commit cde5f7edd511b190c175ab817f3f02c5f0897895 Author: Chris Wilson Date: Sat Mar 30 10:03:49 2019 +0000 drm/i915: Avoid using ctx->file_priv during construction As we only set ctx->file_priv on registering the GEM context after construction, it is invalid to try and use it in the middle for setting various parameters. Indeed, we put the file_priv into struct create_ext so that we have the right file_private available without having to look at ctx->file_priv. However, it helps to use it! Reported-by: Jordan Justen Fixes: b91715417244 ("drm/i915: Extend CONTEXT_CREATE to set parameters upon construction") Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Cc: Jordan Justen Reviewed-by: Jordan Justen Tested-by: Jordan Justen Link: https://patchwork.freedesktop.org/patch/msgid/20190330100349.30642-1-chris@chris-wilson.co.uk commit a5c0fa44e9c18223a6651f2697e97b223a693c3a Author: Urja Rannikko Date: Mon Mar 18 15:44:12 2019 +0000 drm/rockchip: vop: Support dithering to RGB666 Splits out the dither register bits and introduces the same config enumerations as in the rockchip kernel tree. Tested to fix the banding on my ASUS C201. Signed-off-by: Urja Rannikko Signed-off-by: Heiko Stuebner Link: https://patchwork.freedesktop.org/patch/msgid/20190318154412.26994-1-urjaman@gmail.com commit 593854c05210fccf92a5883ab8a8505837b82199 Author: Paul Moore Date: Sat Mar 30 17:57:35 2019 -0400 MAINTAINERS: update SELinux file patterns Update MAINTAINERS to reflect that there are no SELinux headers under include/linux, but we do have include/uapi/linux/selinux_netlink.h. Reported-by: Joe Perches Signed-off-by: Paul Moore commit b60080197af4a78ef0563c90cfca1074034def55 Author: Nishka Dasgupta Date: Sat Mar 30 22:16:07 2019 +0530 staging: rtlwifi: phydm: Remove parentheses Remove parentheses on right hand side of expression. Issue found with Coccinelle. Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit 7997c3670126ccf57325676d2ba0c49cb0993e77 Author: Payal Kshirsagar Date: Sat Mar 30 20:01:26 2019 +0530 staging: rtl8723bs: core: rtw_efuse.c: Compress two lines into one line Challenge suggested by coccinelle. Return value directly without saving it in a variable and remove that variable. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 1bba5b2110b2bcef2705cb0d975182c422654383 Author: Payal Kshirsagar Date: Sat Mar 30 18:31:11 2019 +0530 staging: rtl8723bs: Compress two lines into one line Challenge suggested by coccinelle. Return value directly without saving it in a variable and remove that variable. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 1c3ec30bb23023d738b538e64ac3028902d53692 Author: Mauro Carvalho Chehab Date: Sat Mar 30 09:33:54 2019 -0400 media: index.rst: exclude Indexes section from latex/pdf output With LaTex, the Index at the end will always be present. Having an extra chapter for it there will just add extra noise to the document. Signed-off-by: Mauro Carvalho Chehab commit 5b07a3905fc073519707fe6a1a409d265dcd59d1 Author: Payal Kshirsagar Date: Sat Mar 30 10:42:47 2019 +0530 staging: rtl8723bs: os_dep: ioctl_linux.c: Remove unnecessary parentheses Challenge suggested by coccinelle. Remove unnecessary parentheses around an expression and fix identation issue. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 454e27b977db4cdf30fc9f1e37344fef99bcabfe Author: Payal Kshirsagar Date: Sat Mar 30 10:42:46 2019 +0530 staging: rtl8723bs: core: rtw_ieee80211.c: Remove unnecessary parentheses Challenge suggested by coccinelle. Remove unnecessary parentheses around expressions. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit fbf99f66707c1a60db9e8e627f0a38809ea7b782 Author: Payal Kshirsagar Date: Sat Mar 30 10:42:44 2019 +0530 staging: rtl8723bs: core: rtw_mlme.c: Remove unnecessary parentheses Challenge suggested by coccinelle. Remove unnecessary parentheses around expressions. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 2beb8a8189a87969feda9ce7aeef0ab45c881ab8 Author: Payal Kshirsagar Date: Sat Mar 30 10:42:43 2019 +0530 staging: rtl8723bs: hal: odm_HWConfig.c: Remove unnecessary parentheses Challenge suggested by coccinelle. Remove unnecessary parentheses around an expression, add spaces around operator and remove trailing space. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 74907e2d83fb9565664a47a90b880ccecd0c8a87 Author: Payal Kshirsagar Date: Sat Mar 30 10:42:42 2019 +0530 staging: rtl8723bs: hal: hal_com.c: Remove unnecessary parentheses Challenge suggested by coccinelle. Remove unnecessary parentheses around expressions. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit eb322b764ffcaf72381e7c80ab3bc82e3412e44e Author: Payal Kshirsagar Date: Sat Mar 30 10:42:41 2019 +0530 staging: rtl8723bs: hal: rtl8723b_phycfg.c: Remove unnecessary parentheses Challenge suggested by coccinelle. Remove unnecessary parentheses around an expression. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 13b7e0139bf1e67f6ff86244ba37e0284701aae7 Author: Payal Kshirsagar Date: Sat Mar 30 10:42:40 2019 +0530 staging: rtl8723bs: hal: sdio_ops.c: Remove unnecessary parentheses Challenge suggested by coccinelle. Remove unnecessary parentheses around expressions. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 41604797e524ff7fc9ee64c79f33c5bc8a61b7e8 Author: Vatsala Narang Date: Sat Mar 30 01:55:09 2019 +0530 staging: rtl8723bs: core: Remove unnecessary parentheses Removes unnecessary parentheses while returning an expression.Issue found using coccinelle. Semantic patch used to solve the problem is as follows: @@ expression e; @@ return -( e -) ; Signed-off-by: Vatsala Narang Signed-off-by: Greg Kroah-Hartman commit e920b8081b61107c7fd6721f0457cd5d6cccb6c7 Author: Vatsala Narang Date: Sat Mar 30 04:18:25 2019 +0530 staging: rtl8723bs: core: Fix a comparison warning. Move the constant to the right side of comparison to get rid of checkpatch warning. Signed-off-by: Vatsala Narang Signed-off-by: Greg Kroah-Hartman commit db920621eb85aa4c81a6b1ba533b37a4f9241465 Author: Vatsala Narang Date: Sat Mar 30 06:43:43 2019 +0530 staging: rtl8712: Fix a space issue Remove unnecessary space after a cast to get rid of checkpatch warning. Signed-off-by: Vatsala Narang Signed-off-by: Greg Kroah-Hartman commit ce957fe2b7359bcd97494393c2020ee7dcbd4304 Author: Vatsala Narang Date: Sat Mar 30 07:11:51 2019 +0530 staging: media: zoran: Fix block comment style Add trailing */ on a separate line for block comments to get rid of checkpatch warning. Signed-off-by: Vatsala Narang Signed-off-by: Greg Kroah-Hartman commit 309614bb458f6c39d5c96a279b266ddee79fdce6 Author: Payal Kshirsagar Date: Sat Mar 30 11:09:36 2019 +0530 staging: rtlwifi: Remove unnecessary parentheses Challenge suggested by coccinelle. Remove unnecessary parentheses around the right hand side of an assignment. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 52b832606038c5b3cb1070e7653e4115b7942606 Author: Robert M. Fosha Date: Fri Mar 29 16:17:46 2019 -0700 drm/i915/guc: Retry GuC load for all load failures Currently we only retry to load GuC firmware if the load fails due to timeout. On Gen9 GuC loading may fail for different reasons, not just hang/timeout. Direction from the GuC team is to retry for all cases of GuC load failure on Gen9, not just for timeout. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108593 Signed-off-by: Robert M. Fosha Cc: Daniele Ceraolo Spurio Cc: Michal Wajdeczko Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190329231746.9129-1-robert.m.fosha@intel.com commit 124dbd750da4a9bf494ae9d8cbed364058140731 Author: Vitor Soares Date: Wed Mar 27 22:49:19 2019 +0100 i3c: master: dw: remove dead code from dw_i3c_master_*_xfers() Detected by CoverityScan (Event result_independent_of_operands): "(i3c_xfers + i).len > 65536" is always false regardless of the values of its operands. This occurs as the logical operand of "if" "(i2c_xfers + i).len > 65536" is always false regardless of the values of its operands. This occurs as the logical operand of "if" Signed-off-by: Vitor Soares Signed-off-by: Boris Brezillon commit 8db32fa400916333c20184793d1400bd74e1f740 Merge: 35f861e3c58e fe63f21b20df Author: Kalle Valo Date: Sat Mar 30 08:37:38 2019 +0200 Merge tag 'iwlwifi-next-for-kalle-2019-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/iwlwifi/iwlwifi-next First batch of patches intended for v5.2 * Send NO_DATA events so they can be captured in radiotap; * Some channel-switch changes; * Support for multiple BSSID; * Continued work and bugfixes for the new debugging infra; * Support for some new FW API versions; * Some work to support new hardware; * General bugfixes; * Other cleanups; commit 94fa831e3b359f24c01b9936de33b84c38caacbb Author: Mauro Carvalho Chehab Date: Fri Mar 29 12:13:50 2019 -0400 media: pdf docs: adjust several tables for better display Avoid cell overlapping by changing some sizes, and changing the font sizes when needed. Tested with Sphinx 1.7.8. Signed-off-by: Mauro Carvalho Chehab commit 8b0a61d1f72e75e43aaebd52d7bc89e9899cdb5f Author: Mauro Carvalho Chehab Date: Fri Mar 29 11:58:14 2019 -0400 media: pixfmt-packed-yuv.rst: fix PDF output Some lines inside this table has more than 34 columns, which isn't what is expected, according to the .. tabularcolumns:: definition. That causes the PDF output to fail. This patch ensures that all columns will have exactly the same size, merging the unused ones using :cpan: Signed-off-by: Mauro Carvalho Chehab commit 12d5290e63a88ae8b93fe51e7554e66415f3986c Author: Mauro Carvalho Chehab Date: Fri Mar 29 11:28:45 2019 -0400 media: staging: use strscpy() instead of strlcpy() There are a few left overs at staging which were still using the deprecated strlcpy() function. Reviewed-by: Hans Verkuil Reviewed-by: Mukesh Ojha Signed-off-by: Mauro Carvalho Chehab commit ee6df5694a9a2e30566ae05e9c145a0f6d5e087f Author: Chris Wilson Date: Fri Mar 29 16:51:52 2019 +0000 drm/i915: Always backoff after a drm_modeset_lock() deadlock If drm_modeset_lock() reports a deadlock it sets the ctx->contexted field and insists that the caller calls drm_modeset_backoff() or else it generates a WARN on cleanup. <4> [1601.870376] WARNING: CPU: 3 PID: 8445 at drivers/gpu/drm/drm_modeset_lock.c:228 drm_modeset_drop_locks+0x35/0x40 <4> [1601.870395] Modules linked in: vgem snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic x86_pkg_temp_thermal i915 coretemp crct10dif_pclmul <6> [1601.870403] Console: switching <4> [1601.870403] snd_hda_intel <4> [1601.870406] to colour frame buffer device 320x90 <4> [1601.870406] crc32_pclmul snd_hda_codec snd_hwdep ghash_clmulni_intel e1000e snd_hda_core cdc_ether ptp usbnet mii pps_core snd_pcm i2c_i801 mei_me mei prime_numbers <4> [1601.870422] CPU: 3 PID: 8445 Comm: cat Tainted: G U 5.0.0-rc7-CI-CI_DRM_5650+ #1 <4> [1601.870424] Hardware name: Intel Corporation Ice Lake Client Platform/IceLake U DDR4 SODIMM PD RVP TLC, BIOS ICLSFWR1.R00.2402.AD3.1810170014 10/17/2018 <4> [1601.870427] RIP: 0010:drm_modeset_drop_locks+0x35/0x40 <4> [1601.870430] Code: 29 48 8b 43 60 48 8d 6b 60 48 39 c5 74 19 48 8b 43 60 48 8d b8 70 ff ff ff e8 87 ff ff ff 48 8b 43 60 48 39 c5 75 e7 5b 5d c3 <0f> 0b eb d3 0f 1f 80 00 00 00 00 41 56 41 55 41 54 55 53 48 8b 6f <4> [1601.870432] RSP: 0018:ffffc90000d67ce8 EFLAGS: 00010282 <4> [1601.870435] RAX: 00000000ffffffdd RBX: ffffc90000d67d00 RCX: 5dbbe23d00000000 <4> [1601.870437] RDX: 0000000000000000 RSI: 0000000093e6194a RDI: ffffc90000d67d00 <4> [1601.870439] RBP: ffff88849e62e678 R08: 0000000003b7329a R09: 0000000000000001 <4> [1601.870441] R10: 0000000000000000 R11: 0000000000000000 R12: ffff888492100410 <4> [1601.870442] R13: ffff88849ea50958 R14: ffff8884a67eb028 R15: ffff8884a67eb028 <4> [1601.870445] FS: 00007fa7a27745c0(0000) GS:ffff8884aff80000(0000) knlGS:0000000000000000 <4> [1601.870447] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 <4> [1601.870449] CR2: 000055af07e66000 CR3: 00000004a8cc2006 CR4: 0000000000760ee0 <4> [1601.870451] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 <4> [1601.870453] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 <4> [1601.870454] PKRU: 55555554 <4> [1601.870456] Call Trace: <4> [1601.870505] i915_dsc_fec_support_show+0x91/0x190 [i915] <4> [1601.870522] seq_read+0xdb/0x3c0 <4> [1601.870531] full_proxy_read+0x51/0x80 <4> [1601.870538] __vfs_read+0x31/0x190 <4> [1601.870546] ? __se_sys_newfstat+0x3c/0x60 <4> [1601.870552] vfs_read+0x9e/0x150 <4> [1601.870557] ksys_read+0x50/0xc0 <4> [1601.870564] do_syscall_64+0x55/0x190 <4> [1601.870569] entry_SYSCALL_64_after_hwframe+0x49/0xbe <4> [1601.870572] RIP: 0033:0x7fa7a226d081 <4> [1601.870574] Code: fe ff ff 48 8d 3d 67 9c 0a 00 48 83 ec 08 e8 a6 4c 02 00 66 0f 1f 44 00 00 48 8d 05 81 08 2e 00 8b 00 85 c0 75 13 31 c0 0f 05 <48> 3d 00 f0 ff ff 77 57 f3 c3 0f 1f 44 00 00 41 54 55 49 89 d4 53 <4> [1601.870576] RSP: 002b:00007ffcc05140c8 EFLAGS: 00000246 ORIG_RAX: 0000000000000000 <4> [1601.870579] RAX: ffffffffffffffda RBX: 0000000000020000 RCX: 00007fa7a226d081 <4> [1601.870581] RDX: 0000000000020000 RSI: 000055af07e63000 RDI: 0000000000000007 <4> [1601.870583] RBP: 0000000000020000 R08: 000000000000007b R09: 0000000000000000 <4> [1601.870585] R10: 000055af07e60010 R11: 0000000000000246 R12: 000055af07e63000 <4> [1601.870587] R13: 0000000000000007 R14: 000055af07e634bf R15: 0000000000020000 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109745 Fixes: e845f099f1c6 ("drm/i915/dsc: Add Per connector debugfs node for DSC support/enable") Signed-off-by: Chris Wilson Cc: Rodrigo Vivi Cc: Ville Syrjala Cc: Anusha Srivatsa Cc: Lyude Paul Cc: Manasi Navare Reviewed-by: Manasi Navare Link: https://patchwork.freedesktop.org/patch/msgid/20190329165152.29259-1-chris@chris-wilson.co.uk commit e2cffeb398f4830b004774444809ee256b9bc653 Author: Neil Armstrong Date: Wed Mar 27 11:21:57 2019 +0100 arm64: dts: meson-g12a: Add CMA reserved memory In order to handle Video Output and later on Video decoding, add a reserved CMA pool with a similar 256MiB size as other SoCs. Signed-off-by: Neil Armstrong Signed-off-by: Kevin Hilman commit 029da5e5266c113c533abac6f5a7ca5ffef02bf1 Author: Martin Blumenstingl Date: Thu Mar 28 21:51:22 2019 +0100 ARM: multi_v7_defconfig: enable the Amlogic Meson ADC and eFuse drivers With the SAR ADC driver ADC measurements can be taken though the IIO framework. Additionally the SAR ADC has a channel which is connected to an internal temperature sensor. The calibration data for this internal temperature sensor is stored in the eFuse. Enable the SAR ADC driver and the eFuse driver for the 32-bit Amlogic Meson SoCs so we can expose the chip temperature to userspace through the IIO hwmon driver (whose config option is already enabled: CONFIG_SENSORS_IIO_HWMON=y). Signed-off-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit 07f9da2900674e8e7b15b090b878d8defe223277 Author: Martin Blumenstingl Date: Thu Mar 28 21:47:21 2019 +0100 ARM: dts: meson8b: odroidc1: add the GPIO line names This adds the GPIO line names from the schematics to get them displayed in the debugfs output of each GPIO controller. The schematics from Odroid-C1+ PCB revision 0.4 20150615 are used as referenced. Signed-off-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit c5c9c7cff2692d75a24761b081d717a78ad535c8 Author: Neil Armstrong Date: Mon Mar 25 11:14:49 2019 +0100 arm64: dts: meson-g12a-x96-max: Enable BT Module Enable the Bluetooth Module on the X96 Max Set-Top-Box. Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit c9206b42ccbe339e1c72481cf9fefd3b26d79345 Author: Guillaume La Roque Date: Mon Mar 25 11:14:48 2019 +0100 arm64: dts: meson-g12a-x96-max: add regulators Add system regulators for the X96 Max Set-Top-Box. Still missing * VDD_EE (0.8V - PWM controlled) * VDD_CPU (PWM controlled) Signed-off-by: Guillaume La Roque Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit 35f861e3c58e128f0ecb5669c43159285ea5254a Author: Julian Wiedmann Date: Fri Mar 29 14:38:19 2019 +0100 net: bridge: use netif_is_bridge_port() Replace the br_port_exists() macro with its twin from netdevice.h CC: Roopa Prabhu CC: Nikolay Aleksandrov Signed-off-by: Julian Wiedmann Acked-by: Roopa Prabhu Signed-off-by: David S. Miller commit acb10eac5100ba905ac4d54d698348210666b27a Author: Julian Wiedmann Date: Fri Mar 29 14:37:07 2019 +0100 team: use netif_is_team_port() Replace the team_port_exists() macro with its twin from netdevice.h CC: Jiri Pirko Signed-off-by: Julian Wiedmann Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit 9f764898c73d21fac3ff22b20826f15418345a60 Author: Vishal Kulkarni Date: Fri Mar 29 18:24:03 2019 +0530 cxgb4/cxgb4vf: Display advertised FEC in ethtool This patch advertises Forward Error Correction in ethtool Signed-off-by: Casey Leedom Signed-off-by: Vishal Kulkarni Signed-off-by: David S. Miller commit 5d10de34d43bf3d1d5a7164b6c64a8a4c73b4a6c Author: Vishal Kulkarni Date: Fri Mar 29 16:56:09 2019 +0530 cxgb4: Update 1.23.3.0 as the latest firmware supported. Change t4fw_version.h to update latest firmware version number to 1.23.3.0. Signed-off-by: Vishal Kulkarni Signed-off-by: David S. Miller commit 18b6f717483a835fb98de9f0df6c724df9324e78 Author: wenxu Date: Thu Mar 28 12:43:23 2019 +0800 openvswitch: Make metadata_dst tunnel work in IP_TUNNEL_INFO_BRIDGE mode There is currently no support for the multicast/broadcast aspects of VXLAN in ovs. In the datapath flow the tun_dst must specific. But in the IP_TUNNEL_INFO_BRIDGE mode the tun_dst can not be specific. And the packet can forward through the fdb table of vxlan devcice. In this mode the broadcast/multicast packet can be sent through the following ways in ovs. ovs-vsctl add-port br0 vxlan -- set in vxlan type=vxlan \ options:key=1000 options:remote_ip=flow ovs-ofctl add-flow br0 in_port=LOCAL,dl_dst=ff:ff:ff:ff:ff:ff, \ action=output:vxlan bridge fdb append ff:ff:ff:ff:ff:ff dev vxlan_sys_4789 dst 172.168.0.1 \ src_vni 1000 vni 1000 self bridge fdb append ff:ff:ff:ff:ff:ff dev vxlan_sys_4789 dst 172.168.0.2 \ src_vni 1000 vni 1000 self Signed-off-by: wenxu Acked-by: Pravin B Shelar Signed-off-by: David S. Miller commit eb70a1ae2339769156f8ecddd7f6cd59ac994888 Author: Eric Dumazet Date: Fri Mar 29 12:46:17 2019 -0700 tcp: cleanup sk_tx_skb_cache before reuse TCP stack relies on the fact that a freshly allocated skb has skb->cb[] and skb_shinfo(skb)->tx_flags cleared. When recycling tx skb, we must ensure these fields are cleared. Fixes: 472c2e07eef0 ("tcp: add one skb cache for tx") Signed-off-by: Eric Dumazet Cc: Soheil Hassas Yeganeh Cc: Willem de Bruijn Acked-by: Soheil Hassas Yeganeh Signed-off-by: David S. Miller commit faddd6cf67fddb8f208ab69ffef0daff6a34400c Author: Boris Pismenny Date: Fri Mar 29 20:19:44 2019 +0300 MAINTAINERS: Fix mellanox Innova IPsec The Innova IPsec driver is part of all Innova drivers, and its maintainenece is covered by an existing entry in this file. Signed-off-by: Boris Pismenny Signed-off-by: David S. Miller commit c3969de8acbc3b1a0806f47d87e154790ac2946c Merge: dd399ac9e343 8ff80e96e3cc Author: Alexei Starovoitov Date: Fri Mar 29 12:05:36 2019 -0700 Merge branch 'variable-stack-access' Andrey Ignatov says: ==================== The patch set adds support for stack access with variable offset from helpers. Patch 1 is the main patch in the set and provides more details. Patch 2 adds selftests for new functionality. ==================== Signed-off-by: Alexei Starovoitov commit 8ff80e96e3ccea5ff0a890d4f18997e0344dbec2 Author: Andrey Ignatov Date: Thu Mar 28 18:01:58 2019 -0700 selftests/bpf: Test variable offset stack access Test different scenarios of indirect variable-offset stack access: out of bound access (>0), min_off below initialized part of the stack, max_off+size above initialized part of the stack, initialized stack. Example of output: ... #856/p indirect variable-offset stack access, out of bound OK #857/p indirect variable-offset stack access, max_off+size > max_initialized OK #858/p indirect variable-offset stack access, min_off < min_initialized OK #859/p indirect variable-offset stack access, ok OK ... Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit 2011fccfb61bbd1d7c8864b2b3ed7012342e9ba3 Author: Andrey Ignatov Date: Thu Mar 28 18:01:57 2019 -0700 bpf: Support variable offset stack access from helpers Currently there is a difference in how verifier checks memory access for helper arguments for PTR_TO_MAP_VALUE and PTR_TO_STACK with regard to variable part of offset. check_map_access, that is used for PTR_TO_MAP_VALUE, can handle variable offsets just fine, so that BPF program can call a helper like this: some_helper(map_value_ptr + off, size); , where offset is unknown at load time, but is checked by program to be in a safe rage (off >= 0 && off + size < map_value_size). But it's not the case for check_stack_boundary, that is used for PTR_TO_STACK, and same code with pointer to stack is rejected by verifier: some_helper(stack_value_ptr + off, size); For example: 0: (7a) *(u64 *)(r10 -16) = 0 1: (7a) *(u64 *)(r10 -8) = 0 2: (61) r2 = *(u32 *)(r1 +0) 3: (57) r2 &= 4 4: (17) r2 -= 16 5: (0f) r2 += r10 6: (18) r1 = 0xffff888111343a80 8: (85) call bpf_map_lookup_elem#1 invalid variable stack read R2 var_off=(0xfffffffffffffff0; 0x4) Add support for variable offset access to check_stack_boundary so that if offset is checked by program to be in a safe range it's accepted by verifier. Signed-off-by: Andrey Ignatov Signed-off-by: Alexei Starovoitov commit c377a43d4f38d95f7c12594b39ecf51e3272726c Author: Madhumitha Prabakaran Date: Fri Mar 29 11:48:51 2019 -0500 Staging: media: davinci_vpfe: Convert macro 'IPIPE_S12Q8' into inline Convert macro 'IPIPE_S12Q8' into an inline function to maintain Linux kernel coding style based on which inline function is preferable to macro resembling function. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit d247b0357fa61814b8be8a61a2a68b9e1520083c Author: Madhumitha Prabakaran Date: Fri Mar 29 11:55:29 2019 -0500 Staging: rtl8192u: ieee80211: Remove custom macro IEEE80211_DEBUG Remove the custom macro IEEE80211_DEBUG for printing message in dev_alloc_skb in order to maintain Linux kernel coding style based on which kernel does not print failure warning. Issue suggested by Coccinelle Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 8eaade886198dfc413957d0f58c51103a4cdc527 Author: Payal Kshirsagar Date: Sat Mar 30 00:06:06 2019 +0530 staging: rtl8723bs: Remove unnecessary parentheses Challenge suggested by coccinelle. Remove unnecessary parentheses around expressions and add spaces around operator. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 502da13a72dad49690f5ac1c4d1a182ab7810eaa Author: Uma Shankar Date: Fri Mar 29 19:59:16 2019 +0530 drm/i915: Program EXT2 GC MAX registers EXT2 GC MAX registers are introduced from Gen10+ to program values from 3.0 to 7.0. Enabled the same, but currently limiting it to 1.0 as userspace ABI is limited at that currently. v2: Updated the 1.0 programming and aligned as per GLK, also added GLK along with GEN10+ check, as per Ville's feedback. Signed-off-by: Uma Shankar Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/1553869756-4546-3-git-send-email-uma.shankar@intel.com commit 61eae851c92b0b5b089a3f5da92219500dc99d59 Author: Uma Shankar Date: Fri Mar 29 19:59:15 2019 +0530 drm/i915: Fix GCMAX color register programming GC MAX register is used to program values from 1.0 to less than 3.0. A different register was used instead of the intended one. Fixed the same. Currently limiting it to 1.0 due to ABI limitations. v2: Updated the 1.0 programming and aligned as per GLK, based on Ville's feedback. Reported-by: Ville Syrjälä Signed-off-by: Uma Shankar Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/1553869756-4546-2-git-send-email-uma.shankar@intel.com commit 5fc670a87e31be7327ea4fa3865fc746965b867b Author: Dinh Nguyen Date: Fri Mar 29 13:22:57 2019 -0500 arm64: dts: stratix10: increase QSPI max frequency to 100MHz The Stratix10 devkit's QSPI can support up to 100MHz. Cc: Thor Thayer Signed-off-by: Dinh Nguyen commit 49b1b4a19ca70fa6964a7394121726b7093c2303 Author: Dmytro Linkin Date: Thu Mar 28 16:09:31 2019 +0000 selftests: tc-testing: Add pedit tests Add 36 pedit action tests to check pedit options described in tc-pedit(8) man page. Test cases can be specified by categories: actions, pedit, raw_op, layered_op. RAW_OP cases check offset option for u8, u16 and u32 offset size. LAYERED_OP cases check fields option for eth, ip, ip6, tcp and udp headers. Include following tests: 377e - Add pedit action with RAW_OP offset u32 a0ca - Add pedit action with RAW_OP offset u32 (INVALID) dd8a - Add pedit action with RAW_OP offset u16 u16 53db - Add pedit action with RAW_OP offset u16 (INVALID) 5c7e - Add pedit action with RAW_OP offset u8 add value 2893 - Add pedit action with RAW_OP offset u8 quad 3a07 - Add pedit action with RAW_OP offset u8-u16-u8 ab0f - Add pedit action with RAW_OP offset u16-u8-u8 9d12 - Add pedit action with RAW_OP offset u32 set u16 clear u8 invert ebfa - Add pedit action with RAW_OP offset overflow u32 (INVALID) f512 - Add pedit action with RAW_OP offset u16 at offmask shift set c2cb - Add pedit action with RAW_OP offset u32 retain value 86d4 - Add pedit action with LAYERED_OP eth set src & dst c715 - Add pedit action with LAYERED_OP eth set src (INVALID) ba22 - Add pedit action with LAYERED_OP eth type set/clear sequence 5810 - Add pedit action with LAYERED_OP ip set src & dst 1092 - Add pedit action with LAYERED_OP ip set ihl & dsfield 02d8 - Add pedit action with LAYERED_OP ip set ttl & protocol 3e2d - Add pedit action with LAYERED_OP ip set ttl (INVALID) 31ae - Add pedit action with LAYERED_OP ip ttl clear/set 486f - Add pedit action with LAYERED_OP ip set duplicate fields e790 - Add pedit action with LAYERED_OP ip set ce, df, mf, firstfrag, nofrag fields 6829 - Add pedit action with LAYERED_OP beyond ip set dport & sport afd8 - Add pedit action with LAYERED_OP beyond ip set icmp_type & icmp_code 3143 - Add pedit action with LAYERED_OP beyond ip set dport (INVALID) fc1f - Add pedit action with LAYERED_OP ip6 set src & dst 6d34 - Add pedit action with LAYERED_OP ip6 dst retain value (INVALID) 6f5e - Add pedit action with LAYERED_OP ip6 flow_lbl 6795 - Add pedit action with LAYERED_OP ip6 set payload_len, nexthdr, hoplimit 1442 - Add pedit action with LAYERED_OP tcp set dport & sport b7ac - Add pedit action with LAYERED_OP tcp sport set (INVALID) cfcc - Add pedit action with LAYERED_OP tcp flags set 3bc4 - Add pedit action with LAYERED_OP tcp set dport, sport & flags fields f1c8 - Add pedit action with LAYERED_OP udp set dport & sport d784 - Add pedit action with mixed RAW/LAYERED_OP #1 70ca - Add pedit action with mixed RAW/LAYERED_OP #2 Signed-off-by: Dmytro Linkin Signed-off-by: David S. Miller commit ae37a8cd9b0ad3416d71e54cfaeb3744178189a8 Author: Borislav Petkov Date: Thu Mar 7 15:54:51 2019 +0100 x86/cpufeature: Remove __pure attribute to _static_cpu_has() __pure is used to make gcc do Common Subexpression Elimination (CSE) and thus save subsequent invocations of a function which does a complex computation (without side effects). As a simple example: bool a = _static_cpu_has(x); bool b = _static_cpu_has(x); gets turned into bool a = _static_cpu_has(x); bool b = a; However, gcc doesn't do CSE with asm()s when those get inlined - like it is done with _static_cpu_has() - because, for example, the t_yes/t_no labels are different for each inlined function body and thus cannot be detected as equivalent anymore for the CSE heuristic to hit. However, this all is beside the point because best it should be avoided to have more than one call to _static_cpu_has(X) in the same function due to the fact that each such call is an alternatives patch site and it is simply pointless. Therefore, drop the __pure attribute as it is not doing anything. Reported-by: Nadav Amit Signed-off-by: Borislav Petkov Cc: Peter Zijlstra Cc: x86@kernel.org Link: https://lkml.kernel.org/r/20190307151036.GD26566@zn.tnic commit d3243da8e3700eaccb41b93b498d0dfc77c90d37 Author: Leon Romanovsky Date: Sun Mar 10 17:27:46 2019 +0200 RDMA/core: Don't compare specific bit after boolean AND There is no need to perform extra comparison after boolean AND. Signed-off-by: Leon Romanovsky Reviewed-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit 065d55237ad1c72bb849434542842e1328305a29 Author: Leon Romanovsky Date: Sun Mar 10 17:27:45 2019 +0200 RDMA/netlink: Remove unused data structure Delete structure which is not connected due to removal in commit cited in Fixes line. Fixes: a78e8723a505 ("RDMA/cma: Remove CM_ID statistics provided by rdma-cm module") Signed-off-by: Leon Romanovsky Reviewed-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit e15be4298f3570366d40dbec06e5b0d6e0626eb4 Author: Daniele Ceraolo Spurio Date: Fri Mar 29 09:50:18 2019 -0700 drm/i915: fix i9xx irq enable/disable Those functions are used on gen4 as well and gen4 does have a non-RCS engine, so remove the BUG_ON and flip back the logic to what it was before the ENGINE_READ/WRITE update v2: update the posting read as well (Chris, Ville). Fixes: baba6e572b38 ("drm/i915: take a reference to uncore in the engine and use it") Signed-off-by: Daniele Ceraolo Spurio Cc: Chris Wilson Cc: Paulo Zanoni Cc: Ville Syrjälä Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190329165018.32953-1-daniele.ceraolospurio@intel.com commit 9fd15987ed27b14f57370bed7861868565663739 Author: Matthew Wilcox Date: Wed Feb 20 16:20:59 2019 -0800 qedr: Convert srqidr to XArray Signed-off-by: Matthew Wilcox Signed-off-by: Jason Gunthorpe commit b6014f9e5f39e389f0034a6c82b7a6542eb6477e Author: Matthew Wilcox Date: Wed Feb 20 16:20:58 2019 -0800 qedr: Convert qpidr to XArray Signed-off-by: Matthew Wilcox Signed-off-by: Jason Gunthorpe commit 3616d08bcbb564c7765187cd45ad392e49bad73a Author: David Ahern Date: Fri Mar 22 06:06:09 2019 -0700 ipv6: Move ipv6 stubs to a separate header file The number of stubs is growing and has nothing to do with addrconf. Move the definition of the stubs to a separate header file and update users. In the move, drop the vxlan specific comment before ipv6_stub. Code move only; no functional change intended. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 0ee3b915b1b03c4deeea9d47af3e6a8e5e66c262 Author: Matthew Wilcox Date: Wed Feb 20 16:20:57 2019 -0800 hfi1: Convert vesw_idr to XArray Signed-off-by: Matthew Wilcox Signed-off-by: Jason Gunthorpe commit 736b5a70db9875970dca0f89a9036d17835771ee Author: Matthew Wilcox Date: Thu Oct 25 11:15:34 2018 -0400 RDMA/hns: Convert qp_table_tree to XArray Also fully initialise the qp before storing it in the XArray. Signed-off-by: Matthew Wilcox Signed-off-by: Jason Gunthorpe commit 5f4d6749c0659fe15c2e3b8d47c10f6e241c18c7 Merge: 113e59d09fbc 979e276ebebd Author: David S. Miller Date: Fri Mar 29 10:48:04 2019 -0700 Merge branch 'net-Move-fib_nh-and-fib6_nh-to-a-common-struct' David Ahern says: ==================== net: Move fib_nh and fib6_nh to a common struct First set of three with the end goal of enabling IPv6 gateways with IPv4 routes. This set refactors ipv4 and ipv6 code to create init and release helpers for each protocol and moving common elements to a fib_nh_common struct. v3 - split the reject setting into 2 with helper to the checks. This avoids changing cfg->fc_flags in fib6_nh_init v2 - addressed Ido's comments: cleanup on failure path in nh_init helpers, ordering in fib6_nh_release, and removal of RTF_GATEWAY from fib6_info uses in mlxsw ==================== Signed-off-by: David S. Miller commit 979e276ebebd537782797c439c9cb42b6d3aba27 Author: David Ahern Date: Wed Mar 27 20:53:58 2019 -0700 net: Use common nexthop init and release helpers With fib_nh_common in place, move common initialization and release code into helpers used by both ipv4 and ipv6. For the moment, the init is just the lwt encap and the release is both the netdev reference and the the lwt state reference. More will be added later. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Acked-by: Alexei Starovoitov Signed-off-by: David S. Miller commit f1741730dd18828fe3ea5fa91c22f41cf001c625 Author: David Ahern Date: Wed Mar 27 20:53:57 2019 -0700 net: Add fib_nh_common and update fib_nh and fib6_nh Add fib_nh_common struct with common nexthop attributes. Convert fib_nh and fib6_nh to use it. Use macros to move existing fib_nh_* references to the new nh_common.nhc_*. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller commit ad1601ae0260551f85691ca1ac814773fdcec239 Author: David Ahern Date: Wed Mar 27 20:53:56 2019 -0700 ipv6: Rename fib6_nh entries Rename fib6_nh entries that will be moved to a fib_nh_common struct. Specifically, the device, gateway, flags, and lwtstate are common with all nexthop definitions. In some places new temporary variables are declared or local variables renamed to maintain line lengths. Rename only; no functional change intended. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit b75ed8b1aa9c3a99702159c3be8b0c1d54972ae5 Author: David Ahern Date: Wed Mar 27 20:53:55 2019 -0700 ipv4: Rename fib_nh entries Rename fib_nh entries that will be moved to a fib_nh_common struct. Specifically, the device, oif, gateway, flags, scope, lwtstate, nh_weight and nh_upper_bound are common with all nexthop definitions. In the process shorten fib_nh_lwtstate to fib_nh_lws to avoid really long lines. Rename only; no functional change intended. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 572bf4dd7186584991019a258285432f0d9a7cea Author: David Ahern Date: Wed Mar 27 20:53:54 2019 -0700 ipv6: Change rt6_add_nexthop and rt6_nexthop_info to take fib6_nh rt6_add_nexthop and rt6_nexthop_info only need the fib6_info for the gateway flag and the nexthop weight, and the presence of a gateway is now per-nexthop. Update the signatures to take a fib6_nh and nexthop weight and better align with the ipv4 versions. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller commit 6d3d07b45c86f984424ccbad110ca500397fd18c Author: David Ahern Date: Wed Mar 27 20:53:53 2019 -0700 ipv6: Refactor fib6_ignore_linkdown fib6_ignore_linkdown takes a fib6_info but only looks at the net_device and its IPv6 config. Change it to take a net_device over a fib6_info as its input argument. In addition, move it to a header file to make the check inline and usable later with IPv4 code without going through the ipv6 stub, and rename to ip6_ignore_linkdown since it is only checking the setting based on the ipv6 struct on a device. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller commit 2b2450ca4a2d9d772dc45e1220c04cb3ba761843 Author: David Ahern Date: Wed Mar 27 20:53:52 2019 -0700 ipv6: Move gateway checks to a fib6_nh setting The gateway setting is not per fib6_info entry but per-fib6_nh. Add a new fib_nh_has_gw flag to fib6_nh and convert references to RTF_GATEWAY to the new flag. For IPv6 address the flag is cheaper than checking that nh_gw is non-0 like IPv4 does. While this increases fib6_nh by 8-bytes, the effective allocation size of a fib6_info is unchanged. The 8 bytes is recovered later with a fib_nh_common change. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller commit dac7d0f27075ce54017a7efdd6ae0a55352a0f80 Author: David Ahern Date: Wed Mar 27 20:53:51 2019 -0700 ipv6: Create cleanup helper for fib6_nh Move the fib6_nh cleanup code to a new helper, fib6_nh_release. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller commit 83c442515917812d4ff643e90cd456c630b7e762 Author: David Ahern Date: Wed Mar 27 20:53:50 2019 -0700 ipv6: Create init helper for fib6_nh Similar to IPv4, consolidate the fib6_nh initialization into a helper. As a new standalone function, add a cleanup path to put lwtstate on error. To avoid modifying fib6_config flags, move the reject check to a helper that is invoked once by fib6_nh_init to reset the device and then again in ip6_route_info_create to set the fib6_flags. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller commit faa041a40b9fa64913789fcc0161c7c73161f57e Author: David Ahern Date: Wed Mar 27 20:53:49 2019 -0700 ipv4: Create cleanup helper for fib_nh Move the fib_nh cleanup code from free_fib_info_rcu into a new helper, fib_nh_release. Move classid accounting into fib_nh_release which is called per fib_nh to make accounting symmetrical with fib_nh_init. Export the helper to allow for use with nexthop objects in the future. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller commit e4516ef65490ef29d48a98ad4d7c90dccf39068f Author: David Ahern Date: Wed Mar 27 20:53:48 2019 -0700 ipv4: Create init helper for fib_nh Consolidate the fib_nh initialization which is duplicated between fib_create_info for single path and fib_get_nhs for multipath. Export the helper to allow for use with nexthop objects in the future. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller commit 331c7a402358de6206232f6aab7aa48ec6c1088a Author: David Ahern Date: Wed Mar 27 20:53:47 2019 -0700 ipv4: Move IN_DEV_IGNORE_ROUTES_WITH_LINKDOWN to helper in_dev lookup followed by IN_DEV_IGNORE_ROUTES_WITH_LINKDOWN check is called in several places, some with the rcu lock and others with the rtnl held. Move the check to a helper similar to what IPv6 has. Since the helper can be invoked from either context use rcu_dereference_rtnl to dereference ip_ptr. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller commit 8373c6c84e6748e1dd8b82c43af37572ab040233 Author: David Ahern Date: Wed Mar 27 20:53:46 2019 -0700 ipv4: Define fib_get_nhs when CONFIG_IP_ROUTE_MULTIPATH is disabled Define fib_get_nhs to return EINVAL when CONFIG_IP_ROUTE_MULTIPATH is not enabled and remove the ifdef check for CONFIG_IP_ROUTE_MULTIPATH in fib_create_info. Signed-off-by: David Ahern Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller commit 27e19f45108959f99b23a414be391b6a2a282caa Author: Matthew Wilcox Date: Wed Feb 20 16:20:39 2019 -0800 RDMA/hns: Convert cq_table to XArray Change the locking to not disable interrupts as the lookup in interrupt context will not see a freed CQ, thanks to the synchronize_irq() call before freeing the CQ. Signed-off-by: Matthew Wilcox Signed-off-by: Jason Gunthorpe commit e12bfa013c0972dd94c2f849e05c87f5e1913e96 Author: Wen Yang Date: Wed Feb 27 12:40:37 2019 +0800 PCI: uniphier: Fix a leaked reference by adding missing of_node_put() The call to of_get_child_by_name() returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. irq_domain_add_linear() also calls of_node_get() to increase refcount, so irq_domain will not be affected when it is released. Detected by coccinelle with the following warnings: ./drivers/pci/controller/dwc/pcie-uniphier.c:283:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 274, but without a corresponding object release within this function. ./drivers/pci/controller/dwc/pcie-uniphier.c:290:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 274, but without a corresponding object release within this function. ./drivers/pci/controller/dwc/pcie-uniphier.c:296:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 274, but without a corresponding object release within this function. Signed-off-by: Wen Yang Signed-off-by: Lorenzo Pieralisi Cc: Kunihiko Hayashi Cc: Lorenzo Pieralisi Cc: Bjorn Helgaas Cc: Masahiro Yamada Cc: linux-pci@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org commit 91e0a58e663ffdae2c96a27541794ab5a6fefb22 Author: Wen Yang Date: Wed Feb 27 12:40:36 2019 +0800 PCI: dwc: pci-dra7xx: Fix a leaked reference by adding missing of_node_put() The call to of_get_next_child() returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. irq_domain_add_linear() also calls of_node_get() to increase refcount, so irq_domain will not be affected when it is released. Detected by coccinelle with the following warnings: ./drivers/pci/controller/dwc/pci-dra7xx.c:252:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 241, but without a corresponding object release within this function. ./drivers/pci/controller/dwc/pci-dra7xx.c:255:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 241, but without a corresponding object release within this function. Signed-off-by: Wen Yang Signed-off-by: Lorenzo Pieralisi Cc: Kishon Vijay Abraham I Cc: Lorenzo Pieralisi Cc: Bjorn Helgaas Cc: linux-omap@vger.kernel.org Cc: linux-pci@vger.kernel.org Cc: linux-kernel@vger.kernel.org commit b5af36e3e5aa074605a4d90a89dd8f714b30909b Author: Kangjie Lu Date: Thu Mar 14 01:45:24 2019 -0500 staging: greybus: audio_manager: fix a missing check of ida_simple_get ida_simple_get could fail. The fix inserts a check for its return value. Signed-off-by: Kangjie Lu Reviewed-by: Vaibhav Agarwal Acked-by: Viresh Kumar Signed-off-by: Greg Kroah-Hartman commit d5cac52c092ad9f97f00dc0647ad65ad795c97bc Author: Armando Miraglia Date: Sun Mar 17 09:44:45 2019 +0100 staging: mediatek: addres minor style issues flagged by clang-format. Running clang-format on mtk-hsdma.c I noticed that few lines would not need to be wrapped, since they fit 80 columns. This change changes such lines to better fit the style-guide. Signed-off-by: Armando Miraglia Acked-by: Sean Wang Signed-off-by: Greg Kroah-Hartman commit 699ca30162686bf305cdf94861be02eb0cf9bda2 Author: Kangjie Lu Date: Mon Mar 25 17:19:09 2019 -0500 PCI: xilinx: Check for __get_free_pages() failure If __get_free_pages() fails, return -ENOMEM to avoid a NULL pointer dereference. Signed-off-by: Kangjie Lu Signed-off-by: Lorenzo Pieralisi Reviewed-by: Steven Price Reviewed-by: Mukesh Ojha commit e933158d984bd5c851a3f3f9d8a5efba45800acf Author: Sergio Paracuellos Date: Fri Mar 29 06:52:43 2019 +0100 staging: mt7621-pci-phy: change driver to don't use child nodes Device tree has been simplified to don't use child nodes and use the #phy-cells property instead. Change the driver accordly implementing custom 'xlate' function to return the correct phy for each port. Signed-off-by: Sergio Paracuellos Reviewed-by: NeilBrown Signed-off-by: Greg Kroah-Hartman commit 200ff80dc7ed88f51002ead015c94185f53c2a53 Author: Sergio Paracuellos Date: Fri Mar 29 06:52:42 2019 +0100 staging: mt7621-pci-phy: update bindings documentation Device tree has been simplified to use phy-cells instead of using child nodes. Update documentation accordly. Signed-off-by: Sergio Paracuellos Reviewed-by: NeilBrown Signed-off-by: Greg Kroah-Hartman commit 7d304e1cdf6080dde520882f0f9c803434e05772 Author: Sergio Paracuellos Date: Fri Mar 29 06:52:41 2019 +0100 staging: mt7621-dts: simplify pcie phy bindings If each phy port doesn't have its own resources, then we don't need child nodes. Handle it using #phy-cells to 1 for both phy's. Signed-off-by: Sergio Paracuellos Reviewed-by: NeilBrown Signed-off-by: Greg Kroah-Hartman commit c27d975a0356ee46161d1f5b474d404b5e10010f Author: Nishka Dasgupta Date: Fri Mar 29 01:00:40 2019 +0530 staging: rtlwifi: phydm: phydm_adc_sampling.c Remove brackets Remove parentheses around right hand side of expression. Issue found with Coccinelle. Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit b12ccd2e6ce0648d4c8caf5be067703dd2ef268b Author: Nishka Dasgupta Date: Fri Mar 29 01:00:39 2019 +0530 staging: rtlwifi: phydm: phydm_hwconfig.c: Remove parentheses Remove parentheses around right hand side of expression. Issue found with Coccinelle. Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit 1c948eaa011d5d80f903b60fa1ddde53871a0dc7 Author: Sanjana Sanikommu Date: Thu Mar 28 22:05:22 2019 +0530 staging: rtlwifi: Remove return variable. Remove return variable and return "return" value directly. Issue found by Coccinelle using ret.cocci. Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit 041273721201e0935915aabb8d6b7499b9b949c3 Author: Sanjana Sanikommu Date: Thu Mar 28 20:04:24 2019 +0530 staging: gasket: apex: Prefer using the BIT macro Challenge suggested by coccinelle. Replace bit shifting on 1 with the BIT(x) macro. Coccinelle script: @@ constant c; @@ -(1 << c) +BIT(c) Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit bdcca44e16a2e701724ee305c265e07c36beace7 Author: Vatsala Narang Date: Fri Mar 29 00:39:43 2019 +0530 staging: rtl8192u: ieee80211: Use !x in place of NULL comparison Change NULL comparison to Boolean negation.Issue found using Coccinelle Semantic patch used to solve the problem is as follows: @replace_rule@ expression e; @@ - e == NULL + !e Signed-off-by: Vatsala Narang Signed-off-by: Greg Kroah-Hartman commit 4e1a0d1142584d686f4e76063891787d45860611 Author: Madhumitha Prabakaran Date: Thu Mar 28 10:53:33 2019 -0500 Staging: rtl8192u: Use BIT macro Use BIT macro, as kernel provides the macro for improving uniform and more readable way to define these constants. Issue suggested by Coccinelle. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 7a4f9419eb9458b4497f6b84e1d2831cae45deda Author: Julius Hemanth Pitti Date: Wed Mar 27 15:40:17 2019 -0700 staging: rtl8192u: ieee80211: ieee80211_wx: add space before open brace Fix checkpatch error "ERROR: space required before the open brace '{'" in ieee80211_wx.c. Signed-off-by: Julius Hemanth Pitti Signed-off-by: Greg Kroah-Hartman commit eab0754655a6bb20a0e3a863ef3e46b176040ca7 Author: Adham Abozaeid Date: Wed Mar 27 20:28:34 2019 +0000 staging: wilc1000: assign scan result callback before starting the scan When scan is triggered, sometimes scan results are received before the scan result callback is assigned, causing the recieved results to be ignored. Signed-off-by: Adham Abozaeid Signed-off-by: Greg Kroah-Hartman commit 3589e74873a91b2d1ab4b902bc55cbebc0581317 Author: Sanjana Sanikommu Date: Wed Mar 27 22:09:30 2019 +0530 staging: rtl8192e: Remove unnecessary parentheses. Challenge suggested by coccinelle. Remove unnecessary parentheses around the right hand of assignment using the below script. @@ local idexpression id; expression e; @@ id = -( e -) @@ expression e, e1, e2,e3,e4; @@ e = -(((e1) & (e2)) | -(e3 << e4)) +(e1 & e2) | +(e3 << e4) Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit 5c724e197eb57336696a0a573b199a273db9466b Author: Ian Abbott Date: Wed Mar 27 15:15:15 2019 +0000 staging: comedi: ni_tio: Use data[insn->n-1] in ni_tio_insn_write() The `insn_write` handler for the counter subdevices (`ni_tio_insn_write()`) writes a single data value `data[0]` to the channel. Technically, `insn->n` specifies the number of successive values from `data[]` to write to the channel, but when there is little benefit in writing multiple data values, the usual Comedi convention is to just write the last data value `data[insn->n - 1]`. Change the function to follow that convention and use `data[insn->n - 1]` instead of `data[0]`. (In practice, `insn->n` would normally be 1 anyway.) Also follow the usual Comedi convention and return `insn->n` from the handler to indicate success instead of 0 (although any non-negative return value will do). Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman commit 81a6e1cc312ea43b4a23e6f371dda1bd233ea750 Author: Sidong Yang Date: Thu Mar 28 09:49:14 2019 +0000 staging: pi433: Fix rf69_set_tx_cfg() logic Moved code to configure sync to where check enable_sync option before. There is no need to check enable_sync twice. Configuring sync should be executed immediately after enabling sync. Signed-off-by: Sidong Yang Signed-off-by: Greg Kroah-Hartman commit a4f93fc7183f2799c8689a402adc5f355b926e02 Author: Sanjana Sanikommu Date: Thu Mar 28 23:36:32 2019 +0530 staging: media: ipu3: Avoid unnecessary blank line. Remove unnecessary blank line. Issue found using checkpatch.pl Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit 0eae4686a128d87503863a261e84887750c8bc68 Author: Greg Kroah-Hartman Date: Fri Mar 29 15:47:40 2019 +0100 Revert "tty: pty: Fix race condition between release_one_tty and pty_write" This reverts commit b9ca5f8560af244489b4a1bc1ae88b341f24bc95 as 0-day shows it has a circular locking dependency. Fixes: b9ca5f8560af ("tty: pty: Fix race condition between release_one_tty and pty_write") Reported-by: kernel test robot Cc: Sahara Cc: stable Signed-off-by: Greg Kroah-Hartman commit dfe571ca8daaf0655d36ef1a86900b77fe752fb7 Author: Sakari Ailus Date: Tue Mar 26 05:24:11 2019 -0400 media: soc_camera: Remove leftover files, add TODO Remove a few files left over from the mt9t031 driver. While at it, add a TODO file for the SoC camera framework as a whole. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit 95db3cc936f5340ebbb6acc44579a2084f2866aa Author: Sakari Ailus Date: Tue Mar 26 05:19:28 2019 -0400 media: MAINTAINERS: Fix files for obsolete SoC camera framework The SoC camera was moved to the staging tree but we missed updating MAINTAINERS. Do that now. Fixes: 280de94a6519 ("media: soc_camera: Move to the staging tree") Reported-by: Joe Perches Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit c4b50cabd6a2c018c5b388392cce4d842d15ad86 Author: Akinobu Mita Date: Mon Mar 18 11:25:43 2019 -0400 media: ov7740: enable to get exposure control in autoexposure mode The exposure control is clustered with the autoexposure control and flagged as volatile, but the g_volatile_ctrl() doesn't handle V4L2_CID_EXPOSURE_AUTO. So, the value of the exposure control can't be read in autoexposure mode. This enables to get the exposure control in autoexposure mode by making ov7740_get_volatile_ctrl() deal with V4L2_CID_EXPOSURE_AUTO. This also sets the exposure control as volatile by specifying the argument to v4l2_ctrl_auto_cluster() instead of manually flagging it. Cc: Wenyou Yang Cc: Eugen Hristev Signed-off-by: Akinobu Mita Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit 50036ad06b7f31f7312b43752185e37cf1d0b663 Author: Dave Martin Date: Fri Sep 28 14:39:27 2018 +0100 KVM: arm64/sve: Document KVM API extensions for SVE This patch adds sections to the KVM API documentation describing the extensions for supporting the Scalable Vector Extension (SVE) in guests. Signed-off-by: Dave Martin Signed-off-by: Marc Zyngier commit 395f562f2b4cf9aef0db540d460b859fcde110b6 Author: Dave Martin Date: Tue Jan 15 17:02:08 2019 +0000 KVM: Document errors for KVM_GET_ONE_REG and KVM_SET_ONE_REG KVM_GET_ONE_REG and KVM_SET_ONE_REG return some error codes that are not documented (but hopefully not surprising either). To give an indication of what these may mean, this patch adds brief documentation. Signed-off-by: Dave Martin Signed-off-by: Marc Zyngier commit 555f3d03e7fb43a539050aee91337978da14a25e Author: Dave Martin Date: Tue Jan 15 12:21:22 2019 +0000 KVM: arm64: Add a capability to advertise SVE support To provide a uniform way to check for KVM SVE support amongst other features, this patch adds a suitable capability KVM_CAP_ARM_SVE, and reports it as present when SVE is available. Signed-off-by: Dave Martin Reviewed-by: Julien Thierry Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit 9a3cdf26e3363ec5460ebe20c508114fa63bcf26 Author: Dave Martin Date: Thu Feb 28 18:56:50 2019 +0000 KVM: arm64/sve: Allow userspace to enable SVE for vcpus Now that all the pieces are in place, this patch offers a new flag KVM_ARM_VCPU_SVE that userspace can pass to KVM_ARM_VCPU_INIT to turn on SVE for the guest, on a per-vcpu basis. As part of this, support for initialisation and reset of the SVE vector length set and registers is added in the appropriate places, as well as finally setting the KVM_ARM64_GUEST_HAS_SVE vcpu flag, to turn on the SVE support code. Allocation of the SVE register storage in vcpu->arch.sve_state is deferred until the SVE configuration is finalized, by which time the size of the registers is known. Setting the vector lengths supported by the vcpu is considered configuration of the emulated hardware rather than runtime configuration, so no support is offered for changing the vector lengths available to an existing vcpu across reset. Signed-off-by: Dave Martin Reviewed-by: Julien Thierry Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit 9033bba4b53527b57bec217509a967a25cb19357 Author: Dave Martin Date: Thu Feb 28 18:46:44 2019 +0000 KVM: arm64/sve: Add pseudo-register for the guest's vector lengths This patch adds a new pseudo-register KVM_REG_ARM64_SVE_VLS to allow userspace to set and query the set of vector lengths visible to the guest. In the future, multiple register slices per SVE register may be visible through the ioctl interface. Once the set of slices has been determined we would not be able to allow the vector length set to be changed any more, in order to avoid userspace seeing inconsistent sets of registers. For this reason, this patch adds support for explicit finalization of the SVE configuration via the KVM_ARM_VCPU_FINALIZE ioctl. Finalization is the proper place to allocate the SVE register state storage in vcpu->arch.sve_state, so this patch adds that as appropriate. The data is freed via kvm_arch_vcpu_uninit(), which was previously a no-op on arm64. To simplify the logic for determining what vector lengths can be supported, some code is added to KVM init to work this out, in the kvm_arm_init_arch_resources() hook. The KVM_REG_ARM64_SVE_VLS pseudo-register is not exposed yet. Subsequent patches will allow SVE to be turned on for guest vcpus, making it visible. Signed-off-by: Dave Martin Reviewed-by: Julien Thierry Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit 7dd32a0d0103a5941efbb971f85a3e930cc5665e Author: Dave Martin Date: Wed Dec 19 14:27:01 2018 +0000 KVM: arm/arm64: Add KVM_ARM_VCPU_FINALIZE ioctl Some aspects of vcpu configuration may be too complex to be completed inside KVM_ARM_VCPU_INIT. Thus, there may be a requirement for userspace to do some additional configuration before various other ioctls will work in a consistent way. In particular this will be the case for SVE, where userspace will need to negotiate the set of vector lengths to be made available to the guest before the vcpu becomes fully usable. In order to provide an explicit way for userspace to confirm that it has finished setting up a particular vcpu feature, this patch adds a new ioctl KVM_ARM_VCPU_FINALIZE. When userspace has opted into a feature that requires finalization, typically by means of a feature flag passed to KVM_ARM_VCPU_INIT, a matching call to KVM_ARM_VCPU_FINALIZE is now required before KVM_RUN or KVM_GET_REG_LIST is allowed. Individual features may impose additional restrictions where appropriate. No existing vcpu features are affected by this, so current userspace implementations will continue to work exactly as before, with no need to issue KVM_ARM_VCPU_FINALIZE. As implemented in this patch, KVM_ARM_VCPU_FINALIZE is currently a placeholder: no finalizable features exist yet, so ioctl is not required and will always yield EINVAL. Subsequent patches will add the finalization logic to make use of this ioctl for SVE. No functional change for existing userspace. Signed-off-by: Dave Martin Reviewed-by: Julien Thierry Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit 0f062bfe36b63cd24f16afe2822d0df7c27904d9 Author: Dave Martin Date: Thu Feb 28 18:33:00 2019 +0000 KVM: arm/arm64: Add hook for arch-specific KVM initialisation This patch adds a kvm_arm_init_arch_resources() hook to perform subarch-specific initialisation when starting up KVM. This will be used in a subsequent patch for global SVE-related setup on arm64. No functional change. Signed-off-by: Dave Martin Reviewed-by: Julien Thierry Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit ead9e430c0fba1a7aa6d948a626c48ef9c4aa069 Author: Dave Martin Date: Fri Sep 28 14:39:21 2018 +0100 arm64/sve: In-kernel vector length availability query interface KVM will need to interrogate the set of SVE vector lengths available on the system. This patch exposes the relevant bits to the kernel, along with a sve_vq_available() helper to check whether a particular vector length is supported. __vq_to_bit() and __bit_to_vq() are not intended for use outside these functions: now that these are exposed outside fpsimd.c, they are prefixed with __ in order to provide an extra hint that they are not intended for general-purpose use. Signed-off-by: Dave Martin Reviewed-by: Alex Bennée Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit 8e3c54c8b6a9286b1571c4a4ba1d4afbd217f297 Author: Dave Martin Date: Fri Sep 28 14:39:20 2018 +0100 KVM: arm64: Enumerate SVE register indices for KVM_GET_REG_LIST This patch includes the SVE register IDs in the list returned by KVM_GET_REG_LIST, as appropriate. On a non-SVE-enabled vcpu, no new IDs are added. On an SVE-enabled vcpu, IDs for the FPSIMD V-registers are removed from the list, since userspace is required to access the Z- registers instead in order to access the V-register content. For the variably-sized SVE registers, the appropriate set of slice IDs are enumerated, depending on the maximum vector length for the vcpu. As it currently stands, the SVE architecture never requires more than one slice to exist per register, so this patch adds no explicit support for enumerating multiple slices. The code can be extended straightforwardly to support this in the future, if needed. Signed-off-by: Dave Martin Reviewed-by: Julien Thierry Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit e1c9c98345b356ad2890ac7e9223593cae8b4dba Author: Dave Martin Date: Fri Sep 28 14:39:19 2018 +0100 KVM: arm64/sve: Add SVE support to register access ioctl interface This patch adds the following registers for access via the KVM_{GET,SET}_ONE_REG interface: * KVM_REG_ARM64_SVE_ZREG(n, i) (n = 0..31) (in 2048-bit slices) * KVM_REG_ARM64_SVE_PREG(n, i) (n = 0..15) (in 256-bit slices) * KVM_REG_ARM64_SVE_FFR(i) (in 256-bit slices) In order to adapt gracefully to future architectural extensions, the registers are logically divided up into slices as noted above: the i parameter denotes the slice index. This allows us to reserve space in the ABI for future expansion of these registers. However, as of today the architecture does not permit registers to be larger than a single slice, so no code is needed in the kernel to expose additional slices, for now. The code can be extended later as needed to expose them up to a maximum of 32 slices (as carved out in the architecture itself) if they really exist someday. The registers are only visible for vcpus that have SVE enabled. They are not enumerated by KVM_GET_REG_LIST on vcpus that do not have SVE. Accesses to the FPSIMD registers via KVM_REG_ARM_CORE is not allowed for SVE-enabled vcpus: SVE-aware userspace can use the KVM_REG_ARM64_SVE_ZREG() interface instead to access the same register state. This avoids some complex and pointless emulation in the kernel to convert between the two views of these aliased registers. Signed-off-by: Dave Martin Reviewed-by: Julien Thierry Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit 8c86dfe39d5d3c91fb201b67b72826f75bd2b655 Author: Dave Martin Date: Tue Dec 11 20:31:08 2018 +0000 KVM: arm64: Reject ioctl access to FPSIMD V-regs on SVE vcpus In order to avoid the pointless complexity of maintaining two ioctl register access views of the same data, this patch blocks ioctl access to the FPSIMD V-registers on vcpus that support SVE. This will make it more straightforward to add SVE register access support. Since SVE is an opt-in feature for userspace, this will not affect existing users. Signed-off-by: Dave Martin Reviewed-by: Julien Thierry Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit be25bbb392fad3a721d6d21b78639b60612b5439 Author: Dave Martin Date: Fri Mar 15 15:47:04 2019 +0000 KVM: arm64: Factor out core register ID enumeration In preparation for adding logic to filter out some KVM_REG_ARM_CORE registers from the KVM_GET_REG_LIST output, this patch factors out the core register enumeration into a separate function and rebuilds num_core_regs() on top of it. This may be a little more expensive (depending on how good a job the compiler does of specialising the code), but KVM_GET_REG_LIST is not a hot path. This will make it easier to consolidate ID filtering code in one place. No functional change. Signed-off-by: Dave Martin Reviewed-by: Julien Thierry Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit dc52f31a928ba591757aac4e72b35ea163713b57 Author: Dave Martin Date: Thu Feb 14 11:49:36 2019 +0000 KVM: arm64: Add missing #include of in guest.c arch/arm64/kvm/guest.c uses the string functions, but the corresponding header is not included. We seem to get away with this for now, but for completeness this patch adds the #include, in preparation for adding yet more memset() calls. Signed-off-by: Dave Martin Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit 2b953ea348128ef4d70b0e21f01c1bdee48ee4dc Author: Dave Martin Date: Fri Sep 28 14:39:18 2018 +0100 KVM: Allow 2048-bit register access via ioctl interface The Arm SVE architecture defines registers that are up to 2048 bits in size (with some possibility of further future expansion). In order to avoid the need for an excessively large number of ioctls when saving and restoring a vcpu's registers, this patch adds a #define to make support for individual 2048-bit registers through the KVM_{GET,SET}_ONE_REG ioctl interface official. This will allow each SVE register to be accessed in a single call. There are sufficient spare bits in the register id size field for this change, so there is no ABI impact, providing that KVM_GET_REG_LIST does not enumerate any 2048-bit register unless userspace explicitly opts in to the relevant architecture-specific features. Signed-off-by: Dave Martin Reviewed-by: Alex Bennée Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit b43b5dd990eb28047dafe639ce44db347496cb56 Author: Dave Martin Date: Fri Sep 28 14:39:17 2018 +0100 KVM: arm64/sve: Context switch the SVE registers In order to give each vcpu its own view of the SVE registers, this patch adds context storage via a new sve_state pointer in struct vcpu_arch. An additional member sve_max_vl is also added for each vcpu, to determine the maximum vector length visible to the guest and thus the value to be configured in ZCR_EL2.LEN while the vcpu is active. This also determines the layout and size of the storage in sve_state, which is read and written by the same backend functions that are used for context-switching the SVE state for host tasks. On SVE-enabled vcpus, SVE access traps are now handled by switching in the vcpu's SVE context and disabling the trap before returning to the guest. On other vcpus, the trap is not handled and an exit back to the host occurs, where the handle_sve() fallback path reflects an undefined instruction exception back to the guest, consistently with the behaviour of non-SVE-capable hardware (as was done unconditionally prior to this patch). No SVE handling is added on non-VHE-only paths, since VHE is an architectural and Kconfig prerequisite of SVE. Signed-off-by: Dave Martin Reviewed-by: Julien Thierry Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit 73433762fcaeb9d59e84d299021c6b15466c96dd Author: Dave Martin Date: Fri Sep 28 14:39:16 2018 +0100 KVM: arm64/sve: System register context switch and access support This patch adds the necessary support for context switching ZCR_EL1 for each vcpu. ZCR_EL1 is trapped alongside the FPSIMD/SVE registers, so it makes sense for it to be handled as part of the guest FPSIMD/SVE context for context switch purposes instead of handling it as a general system register. This means that it can be switched in lazily at the appropriate time. No effort is made to track host context for this register, since SVE requires VHE: thus the hosts's value for this register lives permanently in ZCR_EL2 and does not alias the guest's value at any time. The Hyp switch and fpsimd context handling code is extended appropriately. Accessors are added in sys_regs.c to expose the SVE system registers and ID register fields. Because these need to be conditionally visible based on the guest configuration, they are implemented separately for now rather than by use of the generic system register helpers. This may be abstracted better later on when/if there are more features requiring this model. ID_AA64ZFR0_EL1 is RO-RAZ for MRS/MSR when SVE is disabled for the guest, but for compatibility with non-SVE aware KVM implementations the register should not be enumerated at all for KVM_GET_REG_LIST in this case. For consistency we also reject ioctl access to the register. This ensures that a non-SVE-enabled guest looks the same to userspace, irrespective of whether the kernel KVM implementation supports SVE. Signed-off-by: Dave Martin Reviewed-by: Julien Thierry Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit 7f34e40903947f4723e6cec292e4ec705319c5d7 Author: Dave Martin Date: Fri Sep 28 14:39:15 2018 +0100 KVM: arm64: Support runtime sysreg visibility filtering Some optional features of the Arm architecture add new system registers that are not present in the base architecture. Where these features are optional for the guest, the visibility of these registers may need to depend on some runtime configuration, such as a flag passed to KVM_ARM_VCPU_INIT. For example, ZCR_EL1 and ID_AA64ZFR0_EL1 need to be hidden if SVE is not enabled for the guest, even though these registers may be present in the hardware and visible to the host at EL2. Adding special-case checks all over the place for individual registers is going to get messy as the number of conditionally- visible registers grows. In order to help solve this problem, this patch adds a new sysreg method visibility() that can be used to hook in any needed runtime visibility checks. This method can currently return REG_HIDDEN_USER to inhibit enumeration and ioctl access to the register for userspace, and REG_HIDDEN_GUEST to inhibit runtime access by the guest using MSR/MRS. Wrappers are added to allow these flags to be conveniently queried. This approach allows a conditionally modified view of individual system registers such as the CPU ID registers, in addition to completely hiding register where appropriate. Signed-off-by: Dave Martin Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit 1c19991390aefe7f1fc5d53d0b767122ff8043f8 Author: Dave Martin Date: Fri Sep 28 14:39:13 2018 +0100 KVM: arm64: Propagate vcpu into read_id_reg() Architecture features that are conditionally visible to the guest will require run-time checks in the ID register accessor functions. In particular, read_id_reg() will need to perform checks in order to generate the correct emulated value for certain ID register fields such as ID_AA64PFR0_EL1.SVE for example. This patch propagates vcpu into read_id_reg() so that future patches can add run-time checks on the guest configuration here. For now, there is no functional change. Signed-off-by: Dave Martin Reviewed-by: Alex Bennée Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit 1765edbab16e3dc73367bda04e45337cea3e51a0 Author: Dave Martin Date: Fri Sep 28 14:39:12 2018 +0100 KVM: arm64: Add a vcpu flag to control SVE visibility for the guest Since SVE will be enabled or disabled on a per-vcpu basis, a flag is needed in order to track which vcpus have it enabled. This patch adds a suitable flag and a helper for checking it. Signed-off-by: Dave Martin Reviewed-by: Alex Bennée Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit 0495067420f352a0b8ed37ee412d7dd8e7b95c61 Author: Dave Martin Date: Fri Sep 28 14:39:11 2018 +0100 arm64/sve: Enable SVE state tracking for non-task contexts The current FPSIMD/SVE context handling support for non-task (i.e., KVM vcpu) contexts does not take SVE into account. This means that only task contexts can safely use SVE at present. In preparation for enabling KVM guests to use SVE, it is necessary to keep track of SVE state for non-task contexts too. This patch adds the necessary support, removing assumptions from the context switch code about the location of the SVE context storage. When binding a vcpu context, its vector length is arbitrarily specified as SVE_VL_MIN for now. In any case, because TIF_SVE is presently cleared at vcpu context bind time, the specified vector length will not be used for anything yet. In later patches TIF_SVE will be set here as appropriate, and the appropriate maximum vector length for the vcpu will be passed when binding. Signed-off-by: Dave Martin Reviewed-by: Alex Bennée Reviewed-by: Julien Grall Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit d06b76be8dad2e2fa62f68264887cc295d67a3ef Author: Dave Martin Date: Fri Sep 28 14:39:10 2018 +0100 arm64/sve: Check SVE virtualisability Due to the way the effective SVE vector length is controlled and trapped at different exception levels, certain mismatches in the sets of vector lengths supported by different physical CPUs in the system may prevent straightforward virtualisation of SVE at parity with the host. This patch analyses the extent to which SVE can be virtualised safely without interfering with migration of vcpus between physical CPUs, and rejects late secondary CPUs that would erode the situation further. It is left up to KVM to decide what to do with this information. Signed-off-by: Dave Martin Reviewed-by: Julien Thierry Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit 8b08e8401fb49fe1274a91bb5fa981c2f819589c Author: Dave Martin Date: Thu Dec 6 16:32:35 2018 +0000 arm64/sve: Clarify role of the VQ map maintenance functions The roles of sve_init_vq_map(), sve_update_vq_map() and sve_verify_vq_map() are highly non-obvious to anyone who has not dug through cpufeatures.c in detail. Since the way these functions interact with each other is more important here than a full understanding of the cpufeatures code, this patch adds comments to make the functions' roles clearer. No functional change. Signed-off-by: Dave Martin Reviewed-by: Julien Thierry Reviewed-by: Julien Grall Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit 3f61f40947e88b069ac1103727c81582d6e91dea Author: Dave Martin Date: Fri Sep 28 14:39:08 2018 +0100 KVM: arm64: Add missing #includes to kvm_host.h kvm_host.h uses some declarations from other headers that are currently included by accident, without an explicit #include. This patch adds a few #includes that are clearly missing. Although the header builds without them today, this should help to avoid future surprises. Signed-off-by: Dave Martin Acked-by: Mark Rutland Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit 7aa92cf318f8136c445c1656d291f50df189b56a Author: Dave Martin Date: Fri Sep 28 14:39:07 2018 +0100 KVM: arm64: Refactor kvm_arm_num_regs() for easier maintenance kvm_arm_num_regs() adds together various partial register counts in a freeform sum expression, which makes it harder than necessary to read diffs that add, modify or remove a single term in the sum (which is expected to the common case under maintenance). This patch refactors the code to add the term one per line, for maximum readability. Signed-off-by: Dave Martin Reviewed-by: Alex Bennée Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit 38abf22e122e00d20e99408fce4471b5cb65133b Author: Dave Martin Date: Fri Sep 28 14:39:06 2018 +0100 KVM: arm64: Delete orphaned declaration for __fpsimd_enabled() __fpsimd_enabled() no longer exists, but a dangling declaration has survived in kvm_hyp.h. This patch gets rid of it. Signed-off-by: Dave Martin Reviewed-by: Alex Bennée Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit efbc20249fee68c5740ac49704f437ecee7eda6f Author: Dave Martin Date: Fri Sep 28 14:39:05 2018 +0100 arm64: fpsimd: Always set TIF_FOREIGN_FPSTATE on task state flush This patch updates fpsimd_flush_task_state() to mirror the new semantics of fpsimd_flush_cpu_state() introduced by commit d8ad71fa38a9 ("arm64: fpsimd: Fix TIF_FOREIGN_FPSTATE after invalidating cpu regs"). Both functions now implicitly set TIF_FOREIGN_FPSTATE to indicate that the task's FPSIMD state is not loaded into the cpu. As a side-effect, fpsimd_flush_task_state() now sets TIF_FOREIGN_FPSTATE even for non-running tasks. In the case of non-running tasks this is not useful but also harmless, because the flag is live only while the corresponding task is running. This function is not called from fast paths, so special-casing this for the task == current case is not really worth it. Compiler barriers previously present in restore_sve_fpsimd_context() are pulled into fpsimd_flush_task_state() so that it can be safely called with preemption enabled if necessary. Explicit calls to set TIF_FOREIGN_FPSTATE that accompany fpsimd_flush_task_state() calls and are now redundant are removed as appropriate. fpsimd_flush_task_state() is used to get exclusive access to the representation of the task's state via task_struct, for the purpose of replacing the state. Thus, the call to this function should happen before manipulating fpsimd_state or sve_state etc. in task_struct. Anomalous cases are reordered appropriately in order to make the code more consistent, although there should be no functional difference since these cases are protected by local_bh_disable() anyway. Signed-off-by: Dave Martin Reviewed-by: Alex Bennée Reviewed-by: Julien Grall Tested-by: zhang.lei Signed-off-by: Marc Zyngier commit fd3bc912d3d1ca3049beb9f905ee68df3b82282b Author: Dave Martin Date: Fri Sep 28 14:39:26 2018 +0100 KVM: Documentation: Document arm64 core registers in detail Since the the sizes of individual members of the core arm64 registers vary, the list of register encodings that make sense is not a simple linear sequence. To clarify which encodings to use, this patch adds a brief list to the documentation. Signed-off-by: Dave Martin Reviewed-by: Julien Grall Reviewed-by: Peter Maydell Signed-off-by: Marc Zyngier commit 39f0584ee695f1d75f4181b209602b9c49e73821 Author: Borislav Petkov Date: Tue Mar 12 19:39:23 2019 +0100 x86/mce: Remove mce_report_event() Calling this function has been wrong for a while now: * Can't call schedule_work() in #MC context. * mce_notify_irq() either. * None of that noodling is needed anymore - all it needs to do is kick the IRQ work which would self-IPI so that once the #MC handler is done, the work queue will run and process queued MCE records. So remove it. Reported-by: Peter Zijlstra Signed-off-by: Borislav Petkov Cc: Tony Luck Cc: x86@kernel.org Link: https://lkml.kernel.org/r/20190325172121.7926-1-bp@alien8.de commit 05fa38fd63e557d2681b063f053c5b94d9c442e3 Author: Mauro Carvalho Chehab Date: Fri Mar 29 10:29:40 2019 -0400 media: bt8xx: avoid a needless u8 to char conversion Instead of doing the cast, just change the type to char. Suggested-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 85709cbf152465c77a9c2de48a6f4ef23c8c3d83 Author: Mauro Carvalho Chehab Date: Mon Sep 10 08:19:16 2018 -0400 media: replace strncpy() by strscpy() The strncpy() function is being deprecated upstream. Replace it by the safer strscpy(). While here, replace a few occurences of strlcpy() that were recently added to also use strscpy(). Reviewed-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit a72a19327b92e09dab0eb9fd2bc83466465cbffb Author: Jann Horn Date: Fri Mar 29 00:09:39 2019 +0100 x86/mm/tlb: Define LOADED_MM_SWITCHING with pointer-sized number sparse complains that LOADED_MM_SWITCHING's definition casts an int to a pointer: arch/x86/mm/tlb.c:409:17: warning: non size-preserving integer to pointer cast Use a pointer-sized integer constant instead. Signed-off-by: Jann Horn Signed-off-by: Borislav Petkov Reviewed-by: Mukesh Ojha Cc: Andy Lutomirski Cc: Dave Hansen Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Peter Zijlstra Cc: Rik van Riel Cc: Sai Praneeth Cc: Sebastian Andrzej Siewior Cc: Thomas Gleixner Cc: x86-ml Link: https://lkml.kernel.org/r/20190328230939.15711-1-jannh@google.com commit 060162c1af5cd807384247cc95a0d5cb016e316a Author: Mauro Carvalho Chehab Date: Thu Mar 28 15:02:23 2019 -0400 media: vim2m: Fix RGB 565 BE/LE support The support for those two formats are archtecture-dependent. Use the endianness to CPU macros to do it right. Signed-off-by: Mauro Carvalho Chehab commit aba0954327c831f593702e3a81ef3ad4bec7a838 Author: Borislav Petkov Date: Fri Mar 29 11:28:52 2019 +0100 tick/broadcast: Fix warning about undefined tick_broadcast_oneshot_offline() Randconfig builds with CONFIG_TICK_ONESHOT=y CONFIG_HOTPLUG_CPU=n trigger kernel/time/tick-broadcast.c:39:13: warning: ‘tick_broadcast_oneshot_offline’ \ declared ‘static’ but never defined [-Wunused-function] due to that function's definition missing. Move the CONFIG_HOTPLUG_CPU ifdeffery around its declaration too. Fixes: 1b72d4323798 ("tick: Remove outgoing CPU from broadcast masks") Signed-off-by: Borislav Petkov Acked-by: Thomas Gleixner Reviewed-by: Mukesh Ojha Cc: Valentin Schneider Cc: Frederic Weisbecker Cc: x86@kernel.org Link: https://lkml.kernel.org/r/20190329110508.6621-1-bp@alien8.de commit b4a7113f84128ed0acbc5ff886bd5cf4d87ab733 Author: Dan Carpenter Date: Thu Mar 28 10:41:38 2019 -0400 media: wl128x: Fix some error handling in fmc_prepare() The st_register() returns have changed over time, but these days it never returns -1. We should just be checking for any negative error codes. Signed-off-by: Dan Carpenter Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 9c2ccc324b3a6cbc865ab8b3e1a09e93d3c8ade9 Author: Dan Carpenter Date: Tue Mar 26 01:12:07 2019 -0400 media: wl128x: prevent two potential buffer overflows Smatch marks skb->data as untrusted so it warns that "evt_hdr->dlen" can copy up to 255 bytes and we only have room for two bytes. Even if this comes from the firmware and we trust it, the new policy generally is just to fix it as kernel hardenning. I can't test this code so I tried to be very conservative. I considered not allowing "evt_hdr->dlen == 1" because it doesn't initialize the whole variable but in the end I decided to allow it and manually initialized "asic_id" and "asic_ver" to zero. Fixes: e8454ff7b9a4 ("[media] drivers:media:radio: wl128x: FM Driver Common sources") Signed-off-by: Dan Carpenter Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 2e7682ebfc750177a4944eeb56e97a3f05734528 Author: YueHaibing Date: Thu Mar 14 22:01:24 2019 -0400 media: tw5864: Fix possible NULL pointer dereference in tw5864_handle_frame 'vb' null check should be done before dereferencing it in tw5864_handle_frame, otherwise a NULL pointer dereference may occur. Fixes: 34d1324edd31 ("[media] pci: Add tw5864 driver") Signed-off-by: YueHaibing Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit f8ee34c3e77afd8cfc13f98e326325f17494f1e5 Author: Kangjie Lu Date: Sat Mar 9 02:42:26 2019 -0500 media: usbvision: fix a potential NULL pointer dereference In case usb_alloc_coherent fails, the fix returns -ENOMEM to avoid a potential NULL pointer dereference. Signed-off-by: Kangjie Lu Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit aeb0d0f581e2079868e64a2e5ee346d340376eae Author: Kangjie Lu Date: Sat Mar 9 02:20:56 2019 -0500 media: video-mux: fix null pointer dereferences devm_kcalloc may fail and return a null pointer. The fix returns -ENOMEM upon failures to avoid null pointer dereferences. Signed-off-by: Kangjie Lu Reviewed-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 99df48ec7c5b10d00a394cc260726c5316640c81 Author: Alexandre Courbot Date: Tue Mar 26 03:44:46 2019 -0400 media: mtk-vcodec: remove ready_to_display This member is never read throughout the code, so remove it. Signed-off-by: Alexandre Courbot Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 52fafc58c3535c9f4f53864686dbaee3bcbadcb4 Author: Alexandre Courbot Date: Tue Mar 26 03:44:23 2019 -0400 media: mtk-vcodec: fix access to incorrect planes member Commit 0650a91499e0 ("media: mtk-vcodec: Correct return type for mem2mem buffer helpers") fixed the return types for mem2mem buffer helper functions by changing a few local variables from vb2_buffer to vb2_v4l2_buffer. However, it left a few accesses to vb2_buffer::planes as-is, accidentally turning them into accesses to vb2_v4l2_buffer::planes and resulting in values being read from/written to the wrong place. Fix this by inserting vb2_buf into these accesses so they mimic their original behavior. Fixes: 0650a91499e0 ("media: mtk-vcodec: Correct return type for mem2mem buffer helpers") Signed-off-by: Alexandre Courbot Reviewed-by: Ezequiel Garcia Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit d7a955c8ef7cd8fecfd9e900c47f72e67dfcc49a Author: Dan Carpenter Date: Mon Mar 25 05:06:26 2019 -0400 media: v4l2-ctrl: potential shift wrapping bugs This code generates a static checker warning: drivers/media/v4l2-core/v4l2-ctrls.c:2921 v4l2_querymenu() warn: should '(1 << i)' be a 64 bit type? The problem is that "ctrl->menu_skip_mask" is a u64 and we're only testing the lower 32 bits. Signed-off-by: Dan Carpenter Reviewed-by: Sakari Ailus Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 0e633f97162c1c74c68e2eb20bbd9259dce87cd9 Author: Arnd Bergmann Date: Fri Mar 22 10:34:22 2019 -0400 media: davinci-isif: avoid uninitialized variable use clang warns about a possible variable use that gcc never complained about: drivers/media/platform/davinci/isif.c:982:32: error: variable 'frame_size' is uninitialized when used here [-Werror,-Wuninitialized] dm365_vpss_set_pg_frame_size(frame_size); ^~~~~~~~~~ drivers/media/platform/davinci/isif.c:887:2: note: variable 'frame_size' is declared here struct vpss_pg_frame_size frame_size; ^ 1 error generated. There is no initialization for this variable at all, and there has never been one in the mainline kernel, so we really should not put that stack data into an mmio register. On the other hand, I suspect that gcc checks the condition more closely and notices that the global isif_cfg.bayer.config_params.test_pat_gen flag is initialized to zero and never written to from any code path, so anything depending on it can be eliminated. To shut up the clang warning, just remove the dead code manually, it has probably never been used because any attempt to do so would have resulted in undefined behavior. Fixes: 63e3ab142fa3 ("V4L/DVB: V4L - vpfe capture - source for ISIF driver on DM365") Signed-off-by: Arnd Bergmann Reviewed-by: Nathan Chancellor Acked-by: Lad, Prabhakar Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 5f2efda71c09b12012053f457fac7692f268b72c Author: Koen Vandeputte Date: Mon Mar 18 12:40:05 2019 -0400 media: i2c: tda1997x: select V4L2_FWNODE Building tda1997x fails now unless V4L2_FWNODE is selected: drivers/media/i2c/tda1997x.o: in function `tda1997x_parse_dt' undefined reference to `v4l2_fwnode_endpoint_parse' While at it, also sort the selections alphabetically Fixes: 9ac0038db9a7 ("media: i2c: Add TDA1997x HDMI receiver driver") Signed-off-by: Koen Vandeputte Cc: stable@vger.kernel.org # v4.17+ Acked-by: Sakari Ailus Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit fc1209602959ffc022432b527fae54b48bf0623a Author: Arnd Bergmann Date: Wed Mar 13 17:17:32 2019 -0400 media: staging: media: imx7-mipi-csis: fix debugfs compilation When CONFIG_DEBUGFS is enabled, we get a warning about an incorrect section annotation that can lead to undefined behavior: WARNING: vmlinux.o(.text+0xd3c7c4): Section mismatch in reference from the function mipi_csis_probe() to the function .init.text:mipi_csis_debugfs_init() The function mipi_csis_probe() references the function __init mipi_csis_debugfs_init(). This is often because mipi_csis_probe lacks a __init annotation or the annotation of mipi_csis_debugfs_init is wrong. The same function for an unknown reason has a different version for !CONFIG_DEBUGFS, which does not have this problem, but behaves the same way otherwise (it does nothing when debugfs is disabled). Consolidate the two versions, using the correct section from one version, and the implementation from the other. Signed-off-by: Arnd Bergmann Reviewed-by: Rui Miguel Silva Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 2980c03e1f09a4ba36cb0d818a6a203213e98868 Author: Arnd Bergmann Date: Wed Mar 13 17:10:29 2019 -0400 media: staging: media: davinci_vpfe: fix large stack usage with clang clang is unable to optimize the isif_ioctl() in the same way that gcc does, as it fails to prove that the local copy of the 'struct vpfe_isif_raw_config' argument is unnecessary: drivers/staging/media/davinci_vpfe/dm365_isif.c:622:13: error: stack frame size of 1344 bytes in function 'isif_ioctl' [-Werror,-Wframe-larger-than=] Marking it as 'const' while passing the data down clearly shows us that the copy is never modified, and we can skip copying it entirely, which reduces the stack usage to just eight bytes. Signed-off-by: Arnd Bergmann Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit bcfc16eb1650f14053eb70725574f98648bb7c0a Author: Lucas Leonardo Ciancaglini Date: Mon Mar 11 01:34:38 2019 -0400 media: staging/imx: Fix inconsistent long line breaks Small readability changes to make the breaking of some lines cleaner. Signed-off-by: Lucas Leonardo Ciancaglini Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 9b9ea7c2b57a0c9c3341fc6db039d1f7971a432e Author: Ezequiel Garcia Date: Thu Feb 28 10:28:34 2019 -0500 media: gspca: Kill URBs on USB device disconnect In order to prevent ISOC URBs from being infinitely resubmitted, the driver's USB disconnect handler must kill all the in-flight URBs. While here, change the URB packet status message to a debug level, to avoid spamming the console too much. This commit fixes a lockup caused by an interrupt storm coming from the URB completion handler. Signed-off-by: Ezequiel Garcia Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit f6ac993fb0ca5d8c0233ac17a71aacb22f84ac54 Author: Daniele Ceraolo Spurio Date: Thu Mar 28 10:45:32 2019 -0700 drm/i915: move the edram detection out of uncore init edram is not part of uncore and there is no requirement for the detection to be done before we initialize the uncore functions. The first check on HAS_EDRAM is in the ggtt_init path, so move it to i915_driver_init_hw, where other dram-related detection happens. While at it, save the size in MB instead of the capabilities because the size is the only thing we look at outside of the init function. Signed-off-by: Daniele Ceraolo Spurio Cc: Paulo Zanoni Cc: Chris Wilson Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190328174533.31532-1-daniele.ceraolospurio@intel.com commit 788586efd116d6d7d05985881eda503333e702b4 Author: Thor Thayer Date: Tue Mar 26 16:29:31 2019 -0500 EDAC/altera: Initialize peripheral FIFOs in probe() The FIFO memory and ECC initialization doesn't need to be done as a separate operation early in the startup. Improve the Arria10 and Stratix10 peripheral FIFO init by initializing memory and enabling ECC as part of the device driver initialization. Signed-off-by: Thor Thayer Signed-off-by: Borislav Petkov Cc: James Morse Cc: Mauro Carvalho Chehab Cc: linux-edac Link: https://lkml.kernel.org/r/1553635771-32693-2-git-send-email-thor.thayer@linux.intel.com commit 436b0a583af0497b4b84cb73c12f8bd620f868af Author: Thor Thayer Date: Tue Mar 26 16:29:30 2019 -0500 EDAC/altera: Do less intrusive error injection Improve the Arria10 and Stratix10 error injection routine by reading the data and changing just 1 bit before writing back out. Previous routine would overwrite the first bytes to 0 then change 1 bit but this method is less intrusive. Signed-off-by: Thor Thayer Signed-off-by: Borislav Petkov Cc: James Morse Cc: Mauro Carvalho Chehab Cc: linux-edac Link: https://lkml.kernel.org/r/1553635771-32693-1-git-send-email-thor.thayer@linux.intel.com commit 02562d0ca1084a688ac5c92e0e92947f62f13093 Author: Ard Biesheuvel Date: Thu Mar 28 20:34:29 2019 +0100 efi/libstub/arm: Omit unneeded stripping of ksymtab/kcrctab sections Commit f922c4abdf764 ("module: allow symbol exports to be disabled") introduced a way to inhibit generation of kcrctab/ksymtab sections when building ordinary kernel code to be used in a different execution context (decompressor, EFI stub, etc) That means we no longer have to strip those sections explicitly when building the EFI libstub objects, so drop this from the Makefile. Signed-off-by: Ard Biesheuvel Cc: Linus Torvalds Cc: Matt Fleming Cc: Nick Desaulniers Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/20190328193429.21373-6-ard.biesheuvel@linaro.org Signed-off-by: Ingo Molnar commit 0fca08122eaf5c956a2cbe12775245d747f8b1ac Author: Robert Richter Date: Thu Mar 28 20:34:28 2019 +0100 efi: Unify DMI setup code over the arm/arm64, ia64 and x86 architectures All architectures (arm/arm64, ia64 and x86) do the same here, so unify the code. Note: We do not need to call dump_stack_set_arch_desc() in case of !dmi_available. Both strings, dmi_ids_string and dump_stack_arch_ desc_str are initialized zero and thus nothing would change. Signed-off-by: Robert Richter Signed-off-by: Ard Biesheuvel Reviewed-by: Jean Delvare Cc: Linus Torvalds Cc: Matt Fleming Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/20190328193429.21373-5-ard.biesheuvel@linaro.org Signed-off-by: Ingo Molnar commit 5e83cfe947444c7f201f8c39ce0189922ec9f578 Author: Marcin Benka Date: Thu Mar 28 20:34:27 2019 +0100 efi/arm: Show SMBIOS bank/device location in CPER and GHES error logs Run dmi_memdev_walk() for arch arm* as other architectures do. This improves error logging as the memory device handle is translated now to the DIMM entry's name provided by the DMI handle. Before: {1}[Hardware Error]: DIMM location: not present. DMI handle: 0x0038 After: {1}[Hardware Error]: DIMM location: N0 DIMM_A0 Signed-off-by: Marcin Benka Signed-off-by: Robert Richter Signed-off-by: Ard Biesheuvel Cc: Linus Torvalds Cc: Matt Fleming Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/20190328193429.21373-4-ard.biesheuvel@linaro.org Signed-off-by: Ingo Molnar commit c2999c281ea2d2ebbdfce96cecc7b52e2ae7c406 Author: Ard Biesheuvel Date: Thu Mar 28 20:34:26 2019 +0100 efifb: Omit memory map check on legacy boot Since the following commit: 38ac0287b7f4 ("fbdev/efifb: Honour UEFI memory map attributes when mapping the FB") efifb_probe() checks its memory range via efi_mem_desc_lookup(), and this leads to a spurious error message: EFI_MEMMAP is not enabled at every boot on KVM. This is quite annoying since the error message appears even if you set "quiet" boot option. Since this happens on legacy boot, which strangely enough exposes a EFI framebuffer via screen_info, let's double check that we are doing an EFI boot before attempting to access the EFI memory map. Reported-by: Takashi Iwai Tested-by: Takashi Iwai Signed-off-by: Ard Biesheuvel Cc: Linus Torvalds Cc: Matt Fleming Cc: Peter Jones Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/20190328193429.21373-3-ard.biesheuvel@linaro.org Signed-off-by: Ingo Molnar commit e8d368ad20f514dce86a64931fe4a6f06a0a6703 Author: Masahiro Yamada Date: Thu Mar 28 20:34:25 2019 +0100 efi/libstub: Refactor the cmd_stubcopy Makefile command It took me a while to understand what is going on in the nested if-blocks. Simplify it by removing unneeded code. - if_changed automatically adds 'set -e', so any failure in the series of commands makes it immediately fail as a whole. So, the outer if block is entirely redundant. - Since commit 9c2af1c7377a ("kbuild: add .DELETE_ON_ERROR special target"), GNU Make automatically deletes the target on any failure in its recipe. The explicit 'rm -f $@' is redundant. - Surrounding commands with ( ) will spawn a subshell to execute them in it, but it is rarely useful to do so. Signed-off-by: Masahiro Yamada Signed-off-by: Ard Biesheuvel Cc: Linus Torvalds Cc: Matt Fleming Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: linux-efi@vger.kernel.org Link: http://lkml.kernel.org/r/20190328193429.21373-2-ard.biesheuvel@linaro.org Signed-off-by: Ingo Molnar commit 46a984ffb86c8542fa510656fa8cb33befe8ee8f Author: Thomas Richter Date: Thu Mar 28 11:21:47 2019 +0100 s390/cpum_cf: Add support for CPU-MF SVN 6 Add support for the CPU-Measurement Facility counter second version number 6. This number is used to detect some more counters in the crypto counter set and the extended counter set. Signed-off-by: Thomas Richter Reviewed-by: Hendrik Brueckner Signed-off-by: Martin Schwidefsky commit 2f2f3839fb8d0fb548fa6ee2d3bec656dc61f1ac Author: Julian Wiedmann Date: Tue Oct 30 08:21:27 2018 +0100 s390/qdio: clean up qdio_check_outbound_after_thinint() This helper is not thinint-specific, qdio_get_next_buffers() also calls it for non-thinint devices. So give it a more fitting name, and while at it adjust its parameter. Signed-off-by: Julian Wiedmann Reviewed-by: Benjamin Block Signed-off-by: Martin Schwidefsky commit f85b2b297c16b6d9fa8d9f2f26b73b5571dfb859 Author: Julian Wiedmann Date: Tue Oct 30 08:19:54 2018 +0100 s390/qdio: clean up pci_out_supported() pci_out_supported() currently takes a single queue as parameter, even though Output IRQ support is a per-device feature. Adjust the parameter, so that the macro can also be used in code paths with no access to a queue struct. This allows us to remove the remaining open-coded checks for QIB_AC_OUTBOUND_PCI_SUPPORTED. Signed-off-by: Julian Wiedmann Reviewed-by: Benjamin Block Signed-off-by: Martin Schwidefsky commit b4e4538a0ab5079ae5dc401970e11f0ff2ba13a7 Merge: 233709186c50 530b28426a94 Author: Dave Airlie Date: Fri Mar 29 14:01:55 2019 +1000 Merge tag 'drm-misc-next-2019-03-28-1' of git://anongit.freedesktop.org/drm/drm-misc into drm-next drm-misc-next for 5.2: UAPI Changes: - Remove unused DRM_DISPLAY_INFO_LEN (Ville) Cross-subsystem Changes: - None Core Changes: - Fix compilation when CONFIG_FBDEV not selected (Daniel) - fbdev: Make skip_vt_switch default (Daniel) - Merge fb_helper_fill_fix, fb_helper_fill_var into fb_helper_fill_info (Daniel) - Remove unused fields in connector, display_info, and edid_quirks (Ville) Driver Changes: - virtio: package function args in virtio_gpu_object_params (Gerd) - vkms: Fix potential NULL-dereference bug (Kangjie) Signed-off-by: Dave Airlie From: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190328183045.GA44823@art_vandelay commit 5f0a88a1aabb2b332e2fa01598cc24e708552771 Author: Andrey Smirnov Date: Mon Mar 25 11:30:17 2019 -0700 ARM: dts: vf610-zii-cfu1: Disable NOR flash/SPI controller Only a certain number of CFU1's come with NOR flash populated. Disable it by default to avoid trying to probe NOR flash on devices that don't have it. Devices that do have it can rely on the bootloader to enable this node. Signed-off-by: Andrey Smirnov Cc: Shawn Guo Cc: Chris Healy Cc: Andrew Lunn Cc: Fabio Estevam Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Shawn Guo commit dae9f076d1c3c5d1e4bb7363d8b1ccd6145200b1 Author: Andrey Smirnov Date: Mon Mar 25 11:22:43 2019 -0700 ARM: dts: vf610: Add ZII SPB4 board Add Device Tree for VF610 based Zodiac Seat Power Box. Signed-off-by: Andrey Smirnov Reviewed-by: Fabio Estevam Cc: Shawn Guo Cc: Chris Healy Cc: Andrew Lunn Cc: Heiner Kallweit Cc: Fabio Estevam Cc: Rob Herring Cc: devicetree@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Cc: linux-imx@nxp.com Signed-off-by: Shawn Guo commit 2bfad1f83eced545442fd2312963c4039c831a13 Author: Andrey Smirnov Date: Mon Mar 25 11:22:42 2019 -0700 dt-bindings: arm: fsl: Add support for ZII VF610 SPB4 Add support for ZII VF610 SPB4. Signed-off-by: Andrey Smirnov Cc: Shawn Guo Cc: Chris Healy Cc: Andrew Lunn Cc: Fabio Estevam Cc: Rob Herring Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Cc: devicetree@vger.kernel.org Reviewed-by: Rob Herring Signed-off-by: Shawn Guo commit 82d1c7a1e8c043e8be6d0d7c65d6617c4e084177 Author: Andrey Smirnov Date: Mon Mar 25 11:22:41 2019 -0700 dt-bindings: arm: fsl: Add supported ZII VF610 boards to DT schema Add already supported ZII VF610 boards to DT schema. Signed-off-by: Andrey Smirnov Cc: Shawn Guo Cc: Chris Healy Cc: Andrew Lunn Cc: Fabio Estevam Cc: Rob Herring Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Cc: devicetree@vger.kernel.org Reviewed-by: Rob Herring Signed-off-by: Shawn Guo commit d57b39e3ee3cdb4b00452090e386d197980cefc9 Author: Colin Xu Date: Mon Mar 25 09:52:17 2019 +0800 drm/i915/gvt: Enable async flip on plane surface mmio writes According to Intel GFX PRM on 01.org, plane surface address can be updated synchronously or asynchronously. Synchronous flip will hold plane surface address update to start of next vsync, which is current implementation. Asynchronous flip will update the address as soon as possible. Without async flip, some 3D application could not reach better performance and the maximum performance is no higher than vsync frequency. The patch enables the async flip on plane surface address mmio update, and increment flip count correctly. With async flip enabled, some 3D applications have significant performance improvement. i.e. 3DMark Ice Storm has a 300%~400% increment on score. v2: Use bit operation definition for flip mode. (zhenyu) Reviewed-by: Zhenyu Wang Signed-off-by: Colin Xu Signed-off-by: Zhenyu Wang commit d39af942822feaccc8559b18f0ca8215c739492e Author: Colin Xu Date: Mon Mar 25 09:52:16 2019 +0800 drm/i915/gvt: Enable synchronous flip on handling MI_DISPLAY_FLIP According to Intel GFX PRM on 01.org, the MI_DISPLAY_FLIP command can either request display plane flip synchronously or asynchronously. In synchronous flip, flip will be hold until next vsync, which is not implemented yet in GVT. In asynchronous flip, flip will happen immediately, which is current implementation. The patch enables the sync flip on handling MI_DISPLAY_FLIP, and increment flip count correctly by only increment on primary plane. v2: Use bit operation definition for flip mode. (zhenyu) Reviewed-by: Zhenyu Wang Signed-off-by: Colin Xu Signed-off-by: Zhenyu Wang commit aee183baaa3aadbf0d013d647b2e4cdaba66f872 Author: Colin Xu Date: Mon Mar 25 09:52:15 2019 +0800 drm/i915/gvt: Add macro define for mmio 0x50080 and gvt flip event Add SKL_FLIP_EVENT to address into intel_gvt_event_type for primary and sprite0 plane flip event. Add macro to address REG_50080 offset. v2: Add bit operation definition for flip mode. (zhenyu) Reviewed-by: Zhenyu Wang Signed-off-by: Colin Xu Signed-off-by: Zhenyu Wang commit 43226e6fe798b7ede55027a25f97fd73b940ce7d Author: Xiaolin Zhang Date: Wed Mar 20 13:14:03 2019 -0400 drm/i915/gvt: replaced register address with name in init_skil_mmio_info, replaced register address with the known name from i915_reg.h definition to improve code readbility. Reviewed-by: Zhenyu Wang Signed-off-by: Xiaolin Zhang Signed-off-by: Zhenyu Wang commit cddbea8d3d055e39fedf849808a4fe5459cbd62b Author: Fabio Estevam Date: Mon Mar 25 12:19:59 2019 -0300 arm64: dts: imx8mq: Move thermal-zones out of bus node thermal-zones node does not have any register properties and thus shouldn't be placed inside the bus. Move thermal-zones node from soc node to root node in order to fix the following build warning with W=1: arch/arm64/boot/dts/freescale/imx8mq.dtsi:305.18-364.6: Warning (simple_bus_reg): /soc@0/bus@30000000/thermal-zones: missing or empty reg/ranges property Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo commit 233709186c502b48f53aa383fe78f7a9f0a74416 Merge: e0a3def2b15a 00d082cc4ea6 Author: Dave Airlie Date: Fri Mar 29 11:30:04 2019 +1000 Merge tag 'du-next-20190328' of git://linuxtv.org/pinchartl/media into drm-next R-Car DU miscellaneous changes for v5.2 Signed-off-by: Dave Airlie From: Laurent Pinchart Link: https://patchwork.freedesktop.org/patch/msgid/20190328042035.GA4846@pendragon.ideasonboard.com commit e0a3def2b15a4880ab84f8ad1cd7492fefb28ade Merge: f144e67b0e68 a01b2c6f47d8 Author: Dave Airlie Date: Fri Mar 29 11:01:04 2019 +1000 Merge tag 'drm-intel-next-2019-03-28' of git://anongit.freedesktop.org/drm/drm-intel into drm-next UAPI Changes: - Make mmap code more asynchronous. Avoid full SET_DOMAIN on GTT mmap pagefault, and flushes pages on acquisition instead. Moves some of the work from mmap fault time to execbuf time to avoid lock contention during mmap access. Has neutral to positive impact on perf as the flushing moves to execbuf time in real world workloads on the current known userspaces due to recycling of BOs. If there exist an unknown non-recycling userspace, they should explicitly do the SET_DOMAIN and not rely on kernel doing implicit SET_DOMAIN because swapout/in might have happenedt. - Restore the accidentally removed behaviour of returning object size on GEM_CREATE From 2011: ff72145badb8 ("drm: dumb scanout create/mmap for intel/radeon (v3)") - Includes a some neutered patches to prepare to complete the earlier Mesa recovery feature uAPI. Looking to enable this in the next PR. Driver Changes: - Add Elkhartlake (Gen11) support code and PCI IDs - Add missing Amberlake PCI ID 0x87CA (Ville) - Fix to Bugzilla #109780: Pick the first mode from EDID as the fixed mode when there is no preferred mode (Ville) - Fix GCC 4.8 build by using __is_constexpr() (Chris, Randy, Uma) - Add "Broadcast RGB", "force_audio" and "max_bpc" properties to DP MST (Ville) - Remove 8bpc limitation from DP MST (Ville) - Fix changing between limited and full range RGB output in DP fastsets (Ville) - Reject unsupported HDR formats (Maarten) - Handle YUV subpixel support better (Maarten) - Various plane watermarks fixes and cleaning of the code (Ville) - Icelake port sync master select fix (Manasi) - Icelake VEBOX disable bitmask fix (Jose) - Close a race where userspace could see incompletely initialized GEM context (Chris) - Avoid C3 on i945gm to keep vblank interrupts steady (Ville) - Avoid recalculating PLL HW readout each time (Lucas) - A ton of patches to modularize uncore code (Daniel) - Instead of storing media fuse value, immediately derive engine masks (Daniele) - Reduce struct_mutex usage (Chris) - Iterate over child devices to initialize ddi_port_info (Jani) - Fixes to return correct error values when bailing out of functions (Dan) - Use bitmap_zalloc() (Andy) - Reorder and clarify Gen3/4 code (Ville) - Refactor out common code in display mode handling (Ville) - GuC code fixes (Sujaritha, Michal) - Selftest improvements (Chris) Signed-off-by: Dave Airlie From: Joonas Lahtinen Link: https://patchwork.freedesktop.org/patch/msgid/20190328151515.GA9606@jlahtine-desk.ger.corp.intel.com commit 113e59d09fbc7aadfe6fdb25d86c73be6cabc7bb Merge: eda3d1b02284 30905dc63bad Author: David S. Miller Date: Thu Mar 28 17:20:53 2019 -0700 Merge branch 'selftests-forwarding-Add-new-test-cases' Ido Schimmel says: ==================== selftests: forwarding: Add new test cases This patchset mainly adds new forwarding test cases and performs small changes in existing infrastructure. Patches #1-#3 add new test cases for multicast RPF check, PCP and VLAN matching using flower and tc VLAN modify action. The rest of the patches are from Petr who says: In patches #4 and #5, devlink_lib.sh is fixed to first not cause double inclusion of lib.sh, and then to deduce the device name in a simpler way. In patch #6, helpers for dealing with shared buffer configuration are added to devlink_lib.sh. In patch #7, MC-awareness test is fixed to configure shared buffers explicitly. In patch #8, several helpers are extracted from the MC-awareness test and put into a new mlxsw-specific library, qos_lib.sh. In patch #9, a new test is added which checks configuration of strictly-prioritized streams. ==================== Signed-off-by: David S. Miller commit 30905dc63badb17e5960fa73fa49ed1459790494 Author: Petr Machata Date: Thu Mar 28 12:12:27 2019 +0000 selftests: mlxsw: Add a new test for strict priority Test that when strict priority is configured on a system, the higher-priority traffic does actually win all the available bandwidth. The test uses a similar approach to qos_mc_aware.sh to run and account the traffic. Signed-off-by: Petr Machata Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit 573363a68f27c75f92b029345eed0026a2bac0c0 Author: Petr Machata Date: Thu Mar 28 12:12:26 2019 +0000 selftests: mlxsw: Add qos_lib.sh Extract reusable code from qos_mc_aware.sh and put into a new library. Signed-off-by: Petr Machata Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit 5dde21b3a7f648342d873ec964e0c486c329b91c Author: Petr Machata Date: Thu Mar 28 12:12:25 2019 +0000 selftests: mlxsw: qos_mc_aware: Configure shared buffers This test runs two streams of traffic from two independent ports to create congestion on one egress port. It is necessary to configure the shared buffer thresholds correctly, to make sure that there is traffic from both streams in the shared buffer. Only then can the test actually test prioritization among these streams. Without this configuration, it is possible, that one of the streams takes all of port-pool quota, and the other stream is not even admitted, thus invalidating the result. On Spectrum-1, this is not a problem, because MC traffic uses a separate pool. But for Spectrum-2, MC and UC share the same pool, and the correct configuration is important. Signed-off-by: Petr Machata Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit d04cc726c8da45732c815549f2841a646332cc94 Author: Petr Machata Date: Thu Mar 28 12:12:24 2019 +0000 selftests: forwarding: devlink_lib: Add shared buffer helpers Add helpers to obtain, set, and restore a pool size, and a port-pool and tc-pool threshold. Signed-off-by: Petr Machata Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit 8e46aee69722054e85ae4b6029d0aed678016950 Author: Petr Machata Date: Thu Mar 28 12:12:23 2019 +0000 selftests: forwarding: devlink_lib: Simplify deduction of DEVLINK_DEV Use devlink -j and jq for more accurate querying. Use cut -f-2 instead of rev-cut-rev combo. Signed-off-by: Petr Machata Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit 2cca8751af36d5f84eaa05d63632afa25a523b69 Author: Petr Machata Date: Thu Mar 28 12:12:23 2019 +0000 selftests: forwarding: devlink_lib: Avoid double sourcing of lib.sh Don't source lib.sh twice and make the script work with ifnames passed on the command line. Signed-off-by: Petr Machata Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit 2fcbc0b15e39019e84863a69c822b3c3103cfd56 Author: Danielle Ratson Date: Thu Mar 28 12:12:21 2019 +0000 selftests: forwarding: Test action VLAN modify Construct a basic topology consisting of two hosts connected using a VLAN-aware bridge. Put each port in a different VLAN and test that ping fails. Add ingress and egress filters with a VLAN modify action and test that ping passes. Signed-off-by: Danielle Ratson Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit 0637e1f878b5b670485ee0afbd9e22c9cea2ffe0 Author: Amit Cohen Date: Thu Mar 28 12:12:20 2019 +0000 selftests: forwarding: Add PCP match and VLAN match tests Send packets with VLAN and PCP set and check that TC flower filters can match on these keys. Signed-off-by: Amit Cohen Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit ca059af85283ba33d816b833a2654cb9a4b697de Author: Ido Schimmel Date: Thu Mar 28 12:12:19 2019 +0000 selftests: forwarding: Add reverse path forwarding (RPF) test cases In case a packet is routed using a multicast route whose specified ingress interface does not match the interface from which the packet was received, the packet is dropped. Add IPv4 and IPv6 test cases for above mentioned scenario. Signed-off-by: Ido Schimmel Signed-off-by: David S. Miller commit eda3d1b0228484fb52b7244a68fd4cc8a985ed10 Author: Maxime Chevallier Date: Wed Mar 27 17:31:06 2019 +0100 net: mvneta: Add 2500BaseT support Some PHYs will use the 2500BaseX PHY_INTERFACE_MODE when being linked with a partner using 2.5GBaseT. Since we can't autonegotiate this speed between the MAC and the PHY, we need to have the proper comphy support enabled, to make sure we can safely advertise 2.5G and 1G in BaseT and be able to switch between both corresponding PHY interface modes. This is now possible since comphy support was added to this driver. This commit adds the 2500BaseT mode to the list of supported modes when using 2500BaseX, and was tested on a setup with an Armada385 and a 88E2010 PHY, both with and without the comphy node in the DT. Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit 06bd2bdf19d2f3d22731625e1a47fa1dff5ac407 Author: Yi-Hung Wei Date: Tue Mar 26 11:31:14 2019 -0700 openvswitch: Add timeout support to ct action Add support for fine-grain timeout support to conntrack action. The new OVS_CT_ATTR_TIMEOUT attribute of the conntrack action specifies a timeout to be associated with this connection. If no timeout is specified, it acts as is, that is the default timeout for the connection will be automatically applied. Example usage: $ nfct timeout add timeout_1 inet tcp syn_sent 100 established 200 $ ovs-ofctl add-flow br0 in_port=1,ip,tcp,action=ct(commit,timeout=timeout_1) CC: Pravin Shelar CC: Pablo Neira Ayuso Signed-off-by: Yi-Hung Wei Acked-by: Pravin B Shelar Signed-off-by: David S. Miller commit 717700d183d65bd2e6511566aa6d32395419d158 Author: Yi-Hung Wei Date: Tue Mar 26 11:31:13 2019 -0700 netfilter: Export nf_ct_{set,destroy}_timeout() This patch exports nf_ct_set_timeout() and nf_ct_destroy_timeout(). The two functions are derived from xt_ct_destroy_timeout() and xt_ct_set_timeout() in xt_CT.c, and moved to nf_conntrack_timeout.c without any functional change. It would be useful for other users (i.e. OVS) that utilizes the finer-grain conntrack timeout feature. CC: Pablo Neira Ayuso CC: Pravin Shelar Signed-off-by: Yi-Hung Wei Signed-off-by: David S. Miller commit c63d11ba5266245ba64794a8c4f8f9d3b4bcb473 Merge: 1571e2fdac90 2e873d100d14 Author: David S. Miller Date: Thu Mar 28 12:57:24 2019 -0700 Merge branch 's390-next' Julian Wiedmann says: ==================== s390/qeth: updates 2019-03-28 please apply the following patchset to net-next. This reworks the control IO code in qeth so that we no longer need to poll for cmd completion, and refactors the IDX setup code to also use this improved IO path. ==================== Signed-off-by: David S. Miller commit 2e873d100d1418ba0f49163cf46df8e4e792a528 Author: Julian Wiedmann Date: Thu Mar 28 16:39:28 2019 +0100 s390/qeth: send IDX cmds via qeth_send_control_data() This converts the IDX code to use qeth_send_control_data(), replacing a bunch of duplicated IO code and unbounded waits. It also allows the IDX sequence to benefit from the improved timeout & notify infrastructure, so that we can eliminate the DOWN -> ACTIVATING -> UP transition in the channel state machine. The patch looks rather big, but most of it is a straight-forward conversion of the old IDX cmd setup & callbacks to the new model. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 48ce6f89fcb10fa73622c71e455645a9d59a1aa2 Author: Julian Wiedmann Date: Thu Mar 28 16:39:27 2019 +0100 s390/qeth: use callback to finalize cmd To avoid concurrency issues, some parts of the cmd setup are delayed until qeth_send_control_data() holds the IO channel's irq_pending "lock". Rather than hard-coding those setup steps for each cmd type, have the cmd provide a callback. This will make it easier to also issue IDX commands via qeth_send_control_data(). Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 61e04465ddbff0c84bb28a2690a07ece87ab916e Author: Julian Wiedmann Date: Thu Mar 28 16:39:26 2019 +0100 s390/qeth: let qeth_notify_reply() set the notify reason As trivial cleanup before adding more users to qeth_notify_reply(), move the setup of reply->rc from the caller into the helper. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 988a747d88df706e4a157ab328a9d566f6f025c0 Author: Julian Wiedmann Date: Thu Mar 28 16:39:25 2019 +0100 s390/qeth: clarify default cmd callback Current code makes it look like qeth_send_control_data_cb() is some sort of default callback for all cmds. But in practice, it is only used for half of the cmd buffers we issue. Reduce the confusion by only setting this callback for cmds that actually want it, and while at it give the callback a name that matches the established naming scheme. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 782e4a79214723d13eab4258c2c416a9a9719080 Author: Julian Wiedmann Date: Thu Mar 28 16:39:24 2019 +0100 s390/qeth: don't poll for cmd IO completion All callers are running in process context now, so we can safely sleep in qeth_send_control_data() while waiting for a cmd to complete. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit df2a2a5225cccb9b738230d52c3fb74f83cf4456 Author: Julian Wiedmann Date: Thu Mar 28 16:39:23 2019 +0100 s390/qeth: convert IP table spinlock to mutex All users of the lock are running in process context now. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 7686e4b6ef4439be96bf797e1cb73a6919c3ac3f Author: Julian Wiedmann Date: Thu Mar 28 16:39:22 2019 +0100 s390/qeth: defer IPv6 address notifier events The inet6addr_chain is atomic. So instead of starting the cmd IO for SETIP / DELIP straight from the notifier callback, run it from a workqueue. This is the last step towards removal of cmd IO completion polling. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 05a17851341c053421b9430db36d365da8283bc7 Author: Julian Wiedmann Date: Thu Mar 28 16:39:21 2019 +0100 s390/qeth: add wrapper for IP table access Extract a little helper, so that high-level callers can manipulate the IP table without worrying about the locking. This will make it easier to convert the code to a different locking primitive later on. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 5c0aebc6db8cf81c5dd888388dcb455beb1a87b8 Author: Julian Wiedmann Date: Thu Mar 28 16:39:20 2019 +0100 s390/qeth: remove locking for RX modeset cache The L2 and L3 .ndo_set_rx_mode callbacks maintain an address cache to decide which addresses have changed since the last modeset. When the card is set offline, qeth_l?_stop_card() drains this cache. This happens only after 1) the net_device has been detached, and 2) any pending RX modeset has completed. Consequently we can access the cache lock-free. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit d0c748256611f8612728bcbf9933eb103c077763 Author: Julian Wiedmann Date: Thu Mar 28 16:39:19 2019 +0100 s390/qeth: defer RX modesetting .ndo_set_rx_mode gets called in process context, but while holding the addr_list spinlock. Which means we currently can't sleep while re-programming the HW, and need to poll for IO completion. That's bad, in particular since receiving the cmd response can fail silently and we're then polling until the timeout hits. As a first step towards eliminating the IO completion polling, run the RX modeset from a work element and only take the addr_list lock while updating the RX mode address cache. Signed-off-by: Julian Wiedmann Signed-off-by: David S. Miller commit 1571e2fdac902c25d7ba47cd6a3258c55fa9afa9 Merge: ede1fd185146 746364f298d4 Author: David S. Miller Date: Thu Mar 28 12:55:31 2019 -0700 Merge branch 'net-call-for-phys_port_name-into-devlink-directly-if-possible' Jiri Pirko says: =================== net: call for phys_port_name into devlink directly if possible phys_port_name may be assembled by a helper in devlink. It is currently the case only for mlxsw driver. Benefit from the get_devlink_port ndo and call into devlink directly from dev_get_phys_port_name(). That saves the trip to the driver, simplifies the code and makes it similar to recently introduced ethtool-devlink compat helpers. Move bnxt, partly nfp and dsa to let devlink core generate the name too. =================== Signed-off-by: David S. Miller commit 746364f298d48cc89067e6d0c9bc1a4da1efb52a Author: Jiri Pirko Date: Thu Mar 28 13:56:46 2019 +0100 net: devlink: add warning for ndo_get_phys_port_name set when not needed Currently if the driver registers devlink port instance, it should set the devlink port attributes as well. Then the devlink core is able to obtain physical port name itself, no need for driver to implement the ndo. Once all drivers will implement devlink port registration, this ndo should be removed. This warning guides new drivers to do things as they should be done. Signed-off-by: Jiri Pirko Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit f1fa719cfd552dccdfe80e6f81be8d15503dfcce Author: Jiri Pirko Date: Thu Mar 28 13:56:45 2019 +0100 nfp: do not handle nn->port defined case in nfp_net_get_phys_port_name() If nn->port is defined it means that devlink_port has been registered for this port as well. Devlink core is handling the port name formatting. Signed-off-by: Jiri Pirko Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit d484210bf745ee6d8269b7d747bc5b94c4416ff1 Author: Jiri Pirko Date: Thu Mar 28 13:56:44 2019 +0100 dsa: do not support ndo_get_phys_port_name for non-legacy ports Since each non-legacy slave has its own devlink port instance correctly set, rely on devlink core to generate correct phys port name. Signed-off-by: Jiri Pirko Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 716efee200a7fcf4d1eedf9f6e71751d4ed8e806 Author: Jiri Pirko Date: Thu Mar 28 13:56:43 2019 +0100 dsa: implement ndo_get_devlink_port In order for devlink compat functions to work, implement ndo_get_devlink_port. Legacy slaves does not have devlink port instances created for themselves. Signed-off-by: Jiri Pirko Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit ab178b058c4354ea16a0b0be28914874f7e2972d Author: Jiri Pirko Date: Thu Mar 28 13:56:42 2019 +0100 bnxt: remove ndo_get_phys_port_name implementation Rely on the previously introduced fallback and let the core call devlink in order to get the physical port name. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit c9c49a65e53ee5115bb33e3531be66ad261ab675 Author: Jiri Pirko Date: Thu Mar 28 13:56:41 2019 +0100 bnxt: implement ndo_get_devlink_port In order for devlink compat functions to work, implement ndo_get_devlink_port. Legacy slaves does not have devlink port instances created for themselves. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 14c03ac4c100e4b81ec4747f5ec861701ff52de2 Author: Jiri Pirko Date: Thu Mar 28 13:56:40 2019 +0100 net: devlink: remove unused devlink_port_get_phys_port_name() function Now it is unused, remove it. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 59a6b35a1cf57e1427a273e30b3998014e02909d Author: Jiri Pirko Date: Thu Mar 28 13:56:39 2019 +0100 mlxsw: Remove ndo_get_phys_port_name implementation Rely on the previously introduced fallback and let the core call devlink directly in order to get the physical port name. Signed-off-by: Jiri Pirko Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit 011d32560242f8bd93a33b17bfcff310ab8d569b Author: Jiri Pirko Date: Thu Mar 28 13:56:38 2019 +0100 mlxsw: Implement ndo_get_devlink_port In order for devlink compat functions to work, implement ndo_get_devlink_port. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit af3836df9a59e7339d60c9c46729a7d9094d0582 Author: Jiri Pirko Date: Thu Mar 28 13:56:37 2019 +0100 net: devlink: introduce devlink_compat_phys_port_name_get() Introduce devlink_compat_phys_port_name_get() helper that gets the physical port name for specified netdevice according to devlink port attributes. Call this helper from dev_get_phys_port_name() in case ndo_get_phys_port_name is not defined. Signed-off-by: Jiri Pirko Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit 5dc37bb9b03586e8fdeb47d25e8d2a0399984936 Author: Jiri Pirko Date: Thu Mar 28 13:56:36 2019 +0100 net: replace ndo_get_devlink with ndo_get_devlink_port Follow-up patch is going to need a devlink port instance according to a netdev. Devlink port instance should be always available when devlink is used. So change the recently introduced ndo_get_devlink to ndo_get_devlink_port. With that, adjust the wrapper for the only user to get devlink pointer. Signed-off-by: Jiri Pirko Reviewed-by: Michal Kubecek Reviewed-by: Florian Fainelli Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit 335bc0dde0120b9e46a726309cf6010e39d56c82 Author: Jiri Pirko Date: Thu Mar 28 13:56:35 2019 +0100 nfp: register devlink port before netdev Change the init/fini flow and register devlink port instance before netdev. Now it is needed for correct behavior of phys_port_name generation, but in general it makes sense to register devlink port first. Signed-off-by: Jiri Pirko Reviewed-by: Jakub Kicinski Signed-off-by: David S. Miller commit c4128ce7d59e811e3b229ac17bc67a6699cc525b Author: Ville Syrjälä Date: Wed Mar 27 17:50:45 2019 +0200 drm/i915: Skip the linear degamma LUT load on ICL+ Don't load the linear degamma LUT on ICL. The hardware no longer has any silly linkages between the CSC enable and degamma LUT enable so the degamma LUT is only needed when it's actually enabled. Also add comments to explain the situation on GLK. v2: Drop useless parens around 1<<16 v3: Add missing const Signed-off-by: Ville Syrjälä Reviewed-by: Matt Roper Link: https://patchwork.freedesktop.org/patch/msgid/20190327155045.28446-11-ville.syrjala@linux.intel.com commit c25abff511ad058e473c663286463a41bfc968f5 Author: Ville Syrjälä Date: Wed Mar 27 17:50:44 2019 +0200 drm/i915: Drop the pointless linear legacy LUT load on CHV We now bypass the legacy LUT when it's not needed, so no point in filling it up with a linear LUT. Signed-off-by: Ville Syrjälä Reviewed-by: Matt Roper Link: https://patchwork.freedesktop.org/patch/msgid/20190327155045.28446-10-ville.syrjala@linux.intel.com commit f65d5528c023752d058c6cdce6e656740c858c42 Author: Ville Syrjälä Date: Wed Mar 27 17:50:43 2019 +0200 drm/i915: Extract ilk_color_check() With everything else moved out of the way only ilk+ remains using _intel_color_check(). Streamline the logic into ilk_color_check(). v2: Add some comments explaining we that we don't expose the full hardware capabilities currently (Matt) Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190327155045.28446-9-ville.syrjala@linux.intel.com Reviewed-by: Matt Roper commit 1eb6315611209dbb81c626a0d8e6fa32a6b42609 Author: Ville Syrjälä Date: Wed Mar 27 17:50:42 2019 +0200 drm/i915: Extract bdw_color_check() Provide a separate .color_check() for BDW+ where we currently provide the split gamma mode etc. Signed-off-by: Ville Syrjälä Reviewed-by: Matt Roper Link: https://patchwork.freedesktop.org/patch/msgid/20190327155045.28446-8-ville.syrjala@linux.intel.com commit fbeb4f36221358f01c9608b959b8d542e7becae6 Author: Ville Syrjälä Date: Wed Mar 27 17:50:41 2019 +0200 drm/i915: Extract glk_color_check() Unlike the earlier platforms GLK has dedicated degamma and gamma LUTs. And quite curiously the degamma LUT is actually controlled via the PLANE_COLOR_CTL CSC enable bit. Hence we must compute gamma_enable and csc_enable differently to pre-GLK platforms. Signed-off-by: Ville Syrjälä Reviewed-by: Matt Roper Link: https://patchwork.freedesktop.org/patch/msgid/20190327155045.28446-7-ville.syrjala@linux.intel.com commit 1b386cf84931a75676d3d14c4868929c0296d6c1 Author: Ville Syrjälä Date: Wed Mar 27 17:50:40 2019 +0200 drm/i915: Extract icl_color_check() ICL is rather easy when it comes to .color_check() as it finally provides us with a full color pipeline with individual knobs for each stage. We'll also start bypassing each LUT individually when it is not needed. Signed-off-by: Ville Syrjälä Reviewed-by: Matt Roper Link: https://patchwork.freedesktop.org/patch/msgid/20190327155045.28446-6-ville.syrjala@linux.intel.com commit 3cdd5174cfc6d5ddc73913d507a08b14cb947764 Author: Ville Syrjälä Date: Wed Mar 27 17:50:39 2019 +0200 drm/i915: Extract chv_color_check() Since CHV has the CGM unit we require a custom implementation of .color_check(). This fixes the computation of gamma_enable as previously we left it enabled even when were using the CGM gamma instead. Now we turn off the legacy LUT unless it's actually required. v2: Add some comment explaining the color pipeline (Matt) Signed-off-by: Ville Syrjälä Reviewed-by: Matt Roper Link: https://patchwork.freedesktop.org/patch/msgid/20190327155045.28446-5-ville.syrjala@linux.intel.com commit e98f35624ca4a477c9f526196c1338e46c18abd1 Author: Ville Syrjälä Date: Wed Mar 27 17:50:38 2019 +0200 drm/i915: Extract i9xx_color_check() Apart from CHV the other gmch platforms don't currently require much work in .color_check(). So let's start by extracting i9xx_color_check(). Signed-off-by: Ville Syrjälä Reviewed-by: Matt Roper Link: https://patchwork.freedesktop.org/patch/msgid/20190327155045.28446-4-ville.syrjala@linux.intel.com commit 9d9cb9c18c7019a6e740af3b29eb19610733d763 Author: Ville Syrjälä Date: Wed Mar 27 17:50:37 2019 +0200 drm/i915: Turn intel_color_check() into a vfunc The current intel_color_check() is a mess, and worse yet it is in fact incorrect for several platforms. The hardware has evolved quite a bit over the years, so let's just go for a clean split between the platforms by turning this into a vfunc. The actual work to split it up will follow. v2: Assign the vfuncs in the order they appear in the struct (Matt) Signed-off-by: Ville Syrjälä Reviewed-by: Matt Roper Link: https://patchwork.freedesktop.org/patch/msgid/20190327155045.28446-3-ville.syrjala@linux.intel.com commit e0510da051920e6edbfdff1305b85d6c1e209a1b Author: Ville Syrjälä Date: Wed Mar 27 17:50:36 2019 +0200 drm/i915: Extract check_luts() In prepartion for per-platform color_check() functions extract the common code into a separate function. v2: Improve the C8 comment (Matt) Signed-off-by: Ville Syrjälä Reviewed-by: Matt Roper Link: https://patchwork.freedesktop.org/patch/msgid/20190327155045.28446-2-ville.syrjala@linux.intel.com commit 122d0e8dd050cc5dc3fb9e9b5f2dee3c5276ce35 Author: Mauro Carvalho Chehab Date: Thu Mar 28 14:36:14 2019 -0400 media: dvbdev: remove double-unlock As warned by smatch: drivers/media/dvb-core/dvbdev.c: drivers/media/dvb-core/dvbdev.c:529 dvb_register_device() error: double unlock 'sem:&minor_rwsem' Reported-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 2b34c558022673c0d6393dd7941d417f1b5a7236 Author: Parav Pandit Date: Tue Feb 26 14:01:49 2019 +0200 RDMA/core: Add command to set ib_core device net namspace sharing mode Add netlink command that enables/disables sharing rdma device among multiple net namespaces. Using rdma tool, $rdma sys set netns shared (default mode) When rdma subsystem netns mode is set to shared mode, rdma devices will be accessible in all net namespaces. Using rdma tool, $rdma sys set netns exclusive When rdma subsystem netns mode is set to exclusive mode, devices will be accessible in only one net namespace at any given point of time. If there are any net namespaces other than default init_net exists, while executing this command, it will fail and mode cannot be changed. To change this mode, netlink command is used instead of sysctl, because netlink command allows to auto load a module. Signed-off-by: Parav Pandit Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit cb7e0e130503cb8e5ee6a7e8983bf71ed408516f Author: Parav Pandit Date: Tue Feb 26 14:01:48 2019 +0200 RDMA/core: Add interface to read device namespace sharing mode Add an interface via netlink command to query whether rdma devices are shared among multiple net namespaces or not. When using RDMAtool, it can be queried as, $rdma system show netns netns shared Signed-off-by: Parav Pandit Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 37eeab55aeca98cb6648b471f09c0e651ccb1e7c Author: Parav Pandit Date: Tue Feb 26 14:01:47 2019 +0200 RDMA/core: Extend ib_device_get_by_index for net namespace Extend ib_device_get_by_index() API to check device access for net namespace for serving netlink commands. Also enforce net ns check on dumpit commands which iterate over all registered rdma devices and which don't call ib_device_get_by_index(). Signed-off-by: Parav Pandit Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 41c6140189afdf67bd07d7bbe2d8f9382b6f9ef7 Author: Parav Pandit Date: Tue Feb 26 14:01:46 2019 +0200 RDMA: Check net namespace access for uverbs, umad, cma and nldev Introduce an API rdma_dev_access_netns() to check whether a rdma device can be accessed from the specified net namespace or not. Use rdma_dev_access_netns() while opening character uverbs, umad network device and also check while rdma cm_id binds to rdma device. Signed-off-by: Parav Pandit Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit a56bc45b27b92954d99c811cb047e789b6cc5a81 Author: Parav Pandit Date: Tue Feb 26 14:01:45 2019 +0200 RDMA/core: Add module param to disable device sharing among net ns Add module parameter to change a sharing mode of ib_core early in the boot process. This parameter helps to those systems where modern up to date rdma tool (iproute2) package may not be available during kernel upgrade cycle. Signed-off-by: Parav Pandit Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 5417783eabb2c66738394149123fbcdd0cca0f51 Author: Parav Pandit Date: Tue Feb 26 13:56:15 2019 +0200 RDMA/core: Support core port attributes in non init_net Now that sysfs compatibility layer for non init_net exists, add core port attributes such as pkey and gid table to non init_net ns. Signed-off-by: Parav Pandit Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 4e0f7b9070726a34bbd87a74e407d4cced6d49ab Author: Parav Pandit Date: Tue Feb 26 13:56:13 2019 +0200 RDMA/core: Implement compat device/sysfs tree in net namespace Implement compatibility layer sysfs entries of ib_core so that non init_net net namespaces can also discover rdma devices. Each non init_net net namespace has ib_core_device created in it. Such ib_core_device sysfs tree resembles rdma devices found in init_net namespace. This allows discovering rdma devices in multiple non init_net net namespaces via sysfs entries and helpful to rdma-core userspace. Signed-off-by: Parav Pandit Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 62dfa7955e842e7ff6827edc034a0839b009c326 Author: Parav Pandit Date: Tue Feb 26 13:56:12 2019 +0200 RDMA/core: Restrict sysfs entries view to init_net This is a preparation patch to provide isolation of rdma device in a network namespace. As first step, make rdma device visible only in init net namespace. Subsequent patch will enable rdma device visibility back in multiple net namespaces using compat ib_core_device device/sysfs tree. Given that the IB subsystem depends on net stack, it needs to be initialized after netdev and since it support devices, it needs to be initialized before the device subsystem; therefore, change initcall sequence to fs_initcall, so that when ib_core is compiled in the kernel image, the right init sequence is followed. Signed-off-by: Parav Pandit Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit cebe556bd755d16559c8bc0d1fe5545db6bbeaf0 Author: Parav Pandit Date: Tue Feb 26 13:56:11 2019 +0200 RDMA/core: Introduce ib_core_device to hold device In order to support sysfs entries in multiple net namespaces for a rdma device, introduce a ib_core_device whose scope is limited to hold core device and per port sysfs related entries. This is preparation patch so that multiple ib_core_devices in each net namespace can be created in subsequent patch who all can share ib_device. (a) Move sysfs specific fields to ib_core_device. (b) Make sysfs and device life cycle related routines to work on ib_core_device. (c) Introduce and use rdma_init_coredev() helper to initialize coredev fields. Signed-off-by: Parav Pandit Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 629e6f9db6bf4c5702212dd77da534b838f14859 Author: Shiraz Saleem Date: Thu Mar 28 11:49:47 2019 -0500 RDMA/rdmavt: Use correct sizing on buffers holding page DMA addresses The buffer that holds the page DMA addresses is sized off umem->nmap. This can potentially cause out of bound accesses on the PBL array when iterating the umem DMA-mapped SGL. This is because if umem pages are combined, umem->nmap can be much lower than the number of system pages in umem. Use ib_umem_num_pages() to size this buffer. Cc: Dennis Dalessandro Cc: Mike Marciniszyn Cc: Michael J. Ruhl Signed-off-by: Shiraz Saleem Signed-off-by: Jason Gunthorpe commit 93923d309bda99bc52f8cee6ea4774895b18ae5b Author: Shiraz Saleem Date: Thu Mar 28 11:49:46 2019 -0500 RDMA/rxe: Use correct sizing on buffers holding page DMA addresses The buffer that holds the page DMA addresses is sized off umem->nmap. This can potentially cause out of bound accesses on the PBL array when iterating the umem DMA-mapped SGL. This is because if umem pages are combined, umem->nmap can be much lower than the number of system pages in umem. Use ib_umem_num_pages() to size this buffer. Cc: Moni Shoua Signed-off-by: Shiraz Saleem Signed-off-by: Jason Gunthorpe commit 41d34865b24c6a0b594b0a69bfe9ea56dff5abcd Author: Shiraz Saleem Date: Thu Mar 28 11:49:45 2019 -0500 RDMA/mthca: Use correct sizing on buffers holding page DMA addresses The buffer that holds the page DMA addresses is sized off umem->nmap. This can potentially cause out of bound accesses on the PBL array when iterating the umem DMA-mapped SGL. This is because if umem pages are combined, umem->nmap can be much lower than the number of system pages in umem. Use ib_umem_num_pages() to size this buffer. Signed-off-by: Shiraz Saleem Signed-off-by: Jason Gunthorpe commit 5f818d676ac455bbc812ffaaf5bf780be5465114 Author: Shiraz Saleem Date: Thu Mar 28 11:49:44 2019 -0500 RDMA/cxbg: Use correct sizing on buffers holding page DMA addresses The PBL array that hold the page DMA address is sized off umem->nmap. This can potentially cause out of bound accesses on the PBL array when iterating the umem DMA-mapped SGL. This is because if umem pages are combined, umem->nmap can be much lower than the number of system pages in umem. Use ib_umem_num_pages() to size this array. Cc: Potnuri Bharat Teja Signed-off-by: Shiraz Saleem Signed-off-by: Jason Gunthorpe commit 5aa8484080115cff2da68080ad1d115613648504 Author: Selvin Xavier Date: Thu Mar 28 11:49:43 2019 -0500 RDMA/bnxt_re: Use correct sizing on buffers holding page DMA addresses umem->nmap is used while allocating internal buffer for storing page DMA addresses. This causes out of bounds array access while iterating the umem DMA-mapped SGL with umem page combining as umem->nmap can be less than number of system pages in umem. Use ib_umem_num_pages() instead of umem->nmap to size the page array. Add a new structure (bnxt_qplib_sg_info) to pass sglist, npages and nmap. Signed-off-by: Selvin Xavier Signed-off-by: Shiraz Saleem Signed-off-by: Jason Gunthorpe commit ede1fd1851467a107f14faace274479dfe28a36c Merge: 356d71e00d27 32e727449c79 Author: David S. Miller Date: Thu Mar 28 09:52:42 2019 -0700 Merge tag 'batadv-next-for-davem-20190328' of git://git.open-mesh.org/linux-merge Simon Wunderlich says: ==================== This feature/cleanup patchset includes the following patches: - Drop license boilerplate (obsoleted by SPDX license IDs), by Sven Eckelmann - Drop documentation for sysfs and debugfs Documentation, by Sven Eckelmann (2 patches) - Mark sysfs as optional and deprecated, by Sven Eckelmann (3 patches) - Update MAINTAINERS Tree, Chat and Bugtracker, by Sven Eckelmann (3 patches) - Rename batadv_dat_send_data, by Sven Eckelmann - update DAT entries with incoming ARP replies, by Linus Luessing - add multicast-to-unicast support for limited destinations, by Linus Luessing ==================== Signed-off-by: David S. Miller commit 1427736e64c3a8b513cd984332f596055a7ca196 Author: Sameer Pujar Date: Wed Mar 13 10:11:59 2019 +0530 bus: tegra-aconnect: add system sleep callbacks pm_runtime_force_suspend() and pm_runtime_force_resume() are used as system sleep noirq suspend and resume callbacks. If the driver is active till late suspend, where runtime PM cannot run, force suspend is essential for the device. This makes sure that the device is put into low power state during system wide PM transitions to sleep states. Signed-off-by: Sameer Pujar Acked-by: Jon Hunter Signed-off-by: Thierry Reding commit 0d7dab926130e194decf1b4dabbf66de6e68bf0c Author: Sameer Pujar Date: Wed Mar 13 10:11:58 2019 +0530 bus: tegra-aconnect: use devm_clk_*() helpers aconnect bus driver is using pm_clk_*() interface for managing clocks. With this, clocks seem to be always ON. This happens on Tegra devices which use BPMP co-processor to manage clock resources, where clocks are enabled during prepare phase. This is necessary because calls to BPMP are always blocking. When pm_clk_*() interface is used on such Tegra devices, clock prepare count is not balanced till driver remove() gets executed and hence clocks are seen ON always. Thus this patch replaces pm_clk_*() with devm_clk_*() framework. Suggested-by: Mohan Kumar D Reviewed-by: Jonathan Hunter Signed-off-by: Sameer Pujar Signed-off-by: Thierry Reding commit f94c0c38689695eb9d8700da112b9584c514a225 Author: Dinh Nguyen Date: Thu Mar 28 11:18:42 2019 -0500 arm64: defconfig: enable fpga and service layer Enable FPGA framework, Intel Stratix10 SoC FPGA manager, Stratix10 service layer, and Altera Freeze Bridge drivers. Intel Stratix10 service layer driver was added with commit 7ca5ce896524 ("firmware: add Intel Stratix10 service layer driver"). Intel Stratix10 service layer provides kernel APIs for drivers to request access to the secure features. Such features include FPGA programming, remote status update, and read and write secure registers. While clients of the service layer can be built as modules, the service layer itself has to be configured as built-in. The service layer is dependent on ARCH_STRATIX10. Enabling Altera Freeze Bridge depends on commit 38cd7ad5bd25 ("fpga: altera_freeze_bridge: remove restriction to socfpga"). Signed-off-by: Richard Gong Signed-off-by: Dinh Nguyen commit 7b0d021fbe418c11e61ae5047d33c108dd0698c5 Author: Dinh Nguyen Date: Thu Mar 28 09:58:16 2019 -0500 arm64: defconfig: enable PCIE_ALTERA Enable CONFIG_PCIE_ALTERA and CONFIG_PCIE_ALTERA_MSI. Also do a make savedefconfig to clean up. Signed-off-by: Dinh Nguyen commit 40b2bb1b132a0f07e8ebbdc364e28270c9dbbc08 Author: Sameer Pujar Date: Wed Feb 27 13:50:28 2019 +0530 ARM: tegra: enforce PM requirement Currently runtime PM is enabled for Tegra HDA driver. One of the concern raised was about handling !PM case in HDA driver. In this case, there is a need to manage clocks and power explicitly in the driver and reviewers were not really convinced about this. The consensus at the end was to enforce PM requirement to keep things simple, rather driver mentioning a dependency on PM. This is how it is done for ARM 64-bit Tegra platforms and the same can be done for 32-bit Tegra platforms too. Finally the objective is to remove dependency on PM availability for all Tegra drivers. The detailed discussion can be found in following patch, https://patchwork.ozlabs.org/patch/1031007/ Signed-off-by: Sameer Pujar Reviewed-by: Thierry Reding Reviewed-by: Jonathan Hunter Reviewed-by: Dmitry Osipenko Signed-off-by: Thierry Reding commit dd399ac9e343c7573c47d6820e4a23013c54749d Author: Luca Boccassi Date: Thu Mar 28 11:33:53 2019 +0000 tools/bpf: generate pkg-config file for libbpf Generate a libbpf.pc file at build time so that users can rely on pkg-config to find the library, its CFLAGS and LDFLAGS. Signed-off-by: Luca Boccassi Acked-by: Andrey Ignatov Signed-off-by: Daniel Borkmann commit cb46b0991c273a001e73ca9cd44b067e2c596892 Author: Andrey Zhizhikin Date: Wed Feb 27 16:50:18 2019 +0000 ARM: socfpga_defconfig: enable support for large block devices Enable CONFIG_LBDAF, which is required by ext4 fs. This option could handle both ext3 and ext4, with ext4 requires this option to be enabled, otherwise the filesystem is mounted RO mode. Since the LBDAF is enabled by default for 32-bit systems, simply removing the current "not set" entry enables the support. Signed-off-by: Andrey Zhizhikin Signed-off-by: Dinh Nguyen commit 296bb163e2d549c0fcae307e6aff1e407bb1a998 Author: Alex Deucher Date: Thu Mar 28 10:16:12 2019 -0500 Revert "drm/amdgpu: use HMM callback to replace mmu notifier" This reverts commit 57731a07795ae80790c6ae7d8e7001cdbd6d14c0. This depends on an HMM fix which is not upstream yet. Signed-off-by: Alex Deucher commit 20d059278ebef66d9a915893d67e5e76f92e633f Author: Alex Deucher Date: Thu Mar 28 10:15:49 2019 -0500 Revert "drm/amdkfd: avoid HMM change cause circular lock" This reverts commit 8dd69e69f42397c9b17764a951c44480b340858e. This depends on an HMM fix which is not upstream yet. Signed-off-by: Alex Deucher commit 318c3f4bf337d904d442997274d8b63c8f1ea1ae Author: Alex Deucher Date: Thu Mar 28 10:15:26 2019 -0500 Revert "drm/amdgpu: replace get_user_pages with HMM mirror helpers" This reverts commit 915d3eecfa23693bac9e54cdacf84fb4efdcc5c4. This depends on an HMM fix which is not upstream yet. Signed-off-by: Alex Deucher commit 8944042dece3ed80cd7320ef1f0de8920220ca49 Author: Alex Deucher Date: Thu Mar 28 10:15:03 2019 -0500 Revert "drm/amdgpu: fix HMM config dependency issue" This reverts commit 6b8f7e3dee7883084932bbdfce471a2960c6db5d. This depends on an HMM fix which is not upstream yet. Signed-off-by: Alex Deucher commit 96aa5bfa091cb5ad1bba6eab90df27add8c45068 Author: Alex Deucher Date: Thu Mar 28 10:14:33 2019 -0500 Revert "drm/amdkfd: support concurrent userptr update for HMM" This reverts commit 386a68e78620c793ed1ba9bc5789b90c18be262a. This depends on an HMM fix which is not upstream yet. Signed-off-by: Alex Deucher commit ac83d0ff9cbfa500f74c0035634fe8f7f52088b3 Author: Alex Deucher Date: Thu Mar 28 10:14:03 2019 -0500 Revert "drm/amdgpu: support userptr cross VMAs case with HMM" This reverts commit 5aeaccca30023c00d982dfa7bfd25b384523460a. This depends on an HMM fix which is not upstream yet. Signed-off-by: Alex Deucher commit b523c3a613941fbe259e4816beed6fcd3bfcb8e7 Author: Alex Deucher Date: Thu Mar 28 10:12:39 2019 -0500 Revert "drm/amdgpu: more descriptive message if HMM not enabled" This reverts commit 194f87ddffe26bbbd124c549a9bf12a96a7f2919. This depends on an HMM fix which is not upstream yet. Signed-off-by: Alex Deucher commit 196b4ce57d1612ca03be3c7f14bfb6b0740c5c53 Author: Bart Van Assche Date: Wed Mar 27 16:50:51 2019 -0700 IB/qib: Remove a set-but-not-used variable This patch avoids that a compiler warning is reported when building with W=1. Reviewed-by: Leon Romanovsky Fixes: 49c0e2414b20 ("IB/qib: Change SDMA progression mode depending on single- or multi-rail") Signed-off-by: Bart Van Assche Signed-off-by: Jason Gunthorpe commit 920d10e45844d1448d4d279d07fa91e5a7cee4f1 Author: Bart Van Assche Date: Wed Mar 27 16:50:50 2019 -0700 IB/hfi1: Fix two format strings Enable format string checking for hfi1_cdbg() and fix the resulting compiler warnings. Signed-off-by: Bart Van Assche Signed-off-by: Jason Gunthorpe commit 1c7651f43777cdd59c1aaa82c87324d3e7438c7b Author: Eugene Loh Date: Mon Feb 25 11:59:58 2019 -0800 kallsyms: store type information in its own array When a module is loaded, its symbols' Elf_Sym information is stored in a symtab. Further, type information is also captured. Since Elf_Sym has no type field, historically the st_info field has been hijacked for storing type: st_info was overwritten. commit 5439c985c5a83a8419f762115afdf560ab72a452 ("module: Overwrite st_size instead of st_info") changes that practice, as its one-liner indicates. Unfortunately, this change overwrites symbol size, information that a tool like DTrace expects to find. Allocate a typetab array to store type information so that no Elf_Sym field needs to be overwritten. Fixes: 5439c985c5a8 ("module: Overwrite st_size instead of st_info") Signed-off-by: Eugene Loh Reviewed-by: Nick Alcock [jeyu: renamed typeoff -> typeoffs ] Signed-off-by: Jessica Yu commit 1f687edee2aed32586b4f5959b26da401026b6b3 Author: Bart Van Assche Date: Wed Mar 27 16:50:48 2019 -0700 IB/mlx5: Declare devx_async_cmd_event_fops static Avoid that sparse complains about a missing declaration. Reviewed-by: Leon Romanovsky Fixes: 6bf8f22aea0d ("IB/mlx5: Introduce MLX5_IB_OBJECT_DEVX_ASYNC_CMD_FD") Signed-off-by: Bart Van Assche Signed-off-by: Jason Gunthorpe commit 0080aed4e4ca0d58e718df5a907aa12c1f9b9226 Author: Bart Van Assche Date: Wed Mar 27 16:50:47 2019 -0700 RDMA/uverbs: Allow the compiler to verify declaration and definition consistency This patch avoids that sparse reports the following warnings: drivers/infiniband/core/uverbs_std_types_flow_action.c:442:30: warning: symbol 'uverbs_def_obj_flow_action' was not declared. Should it be static? drivers/infiniband/core/uverbs_std_types_dm.c:112:30: warning: symbol 'uverbs_def_obj_dm' was not declared. Should it be static? drivers/infiniband/core/uverbs_std_types_counters.c:153:30: warning: symbol 'uverbs_def_obj_counters' was not declared. Should it be static? drivers/infiniband/core/uverbs_std_types_mr.c:213:30: warning: symbol 'uverbs_def_obj_mr' was not declared. Should it be static? Reviewed-by: Leon Romanovsky Fixes: 0bd01f3d0907 ("RDMA/uverbs: Require all objects to have a driver destroy function") Signed-off-by: Bart Van Assche Signed-off-by: Jason Gunthorpe commit 2dcdebff5e84356824c800ae5217c02ef0f78b06 Author: Bart Van Assche Date: Wed Mar 27 16:50:46 2019 -0700 RDMA/uverbs: Annotate uverbs_request_next_ptr() return value as a __user pointer This patch avoids that sparse complains about a mismatch between the returned value and the function return type. Reviewed-by: Leon Romanovsky Fixes: c3bea3d2dc53 ("RDMA/uverbs: Use the iterator for ib_uverbs_unmarshall_recv()") Signed-off-by: Bart Van Assche Signed-off-by: Jason Gunthorpe commit 259e66bcdff59b5d92b8f43e42237aaea2c4d457 Author: Bart Van Assche Date: Wed Mar 27 16:50:45 2019 -0700 RDMA/uverbs: Add a __user annotation to a pointer This patch avoids that sparse and smatch report the following: warning: cast removes address space of expression Reviewed-by: Leon Romanovsky Fixes: 3a6532c9af1a ("RDMA/uverbs: Use uverbs_attr_bundle to pass udata for write") Signed-off-by: Bart Van Assche Signed-off-by: Jason Gunthorpe commit a01b2c6f47d86c7d1a9fa822b3b91ec233b61784 Author: Joonas Lahtinen Date: Thu Mar 28 14:41:55 2019 +0200 drm/i915: Update DRIVER_DATE to 20190328 Signed-off-by: Joonas Lahtinen commit 7a8e61f8478639072d402a26789055a4a4de8f77 Author: Thomas Gleixner Date: Sat Mar 23 11:36:19 2019 +0100 timekeeping: Force upper bound for setting CLOCK_REALTIME Several people reported testing failures after setting CLOCK_REALTIME close to the limits of the kernel internal representation in nanoseconds, i.e. year 2262. The failures are exposed in subsequent operations, i.e. when arming timers or when the advancing CLOCK_MONOTONIC makes the calculation of CLOCK_REALTIME overflow into negative space. Now people start to paper over the underlying problem by clamping calculations to the valid range, but that's just wrong because such workarounds will prevent detection of real issues as well. It is reasonable to force an upper bound for the various methods of setting CLOCK_REALTIME. Year 2262 is the absolute upper bound. Assume a maximum uptime of 30 years which is plenty enough even for esoteric embedded systems. That results in an upper bound of year 2232 for setting the time. Once that limit is reached in reality this limit is only a small part of the problem space. But until then this stops people from trying to paper over the problem at the wrong places. Reported-by: Xiongfeng Wang Reported-by: Hongbo Yao Signed-off-by: Thomas Gleixner Cc: John Stultz Cc: Stephen Boyd Cc: Miroslav Lichvar Cc: Arnd Bergmann Cc: Richard Cochran Cc: Peter Zijlstra Link: https://lkml.kernel.org/r/alpine.DEB.2.21.1903231125480.2157@nanos.tec.linutronix.de commit 4828d64e7f38c68cdfdc62fc75bfebcdb2eacd16 Author: Joonas Lahtinen Date: Thu Mar 28 13:53:18 2019 +0200 drm/i915: Update DRIVER_DATE to 20190328 Signed-off-by: Joonas Lahtinen commit a24dac922fdace8d9109b4225abfd3b04516de7a Author: Joonas Lahtinen Date: Thu Mar 28 13:15:45 2019 +0200 drm/i915: Update DRIVER_DATE to 20190328 Signed-off-by: Joonas Lahtinen commit 530b28426a94b822b3c03491cde5c9a961d80e7f Author: Gerd Hoffmann Date: Mon Mar 18 12:33:32 2019 +0100 drm/virtio: rework resource creation workflow. This patch moves the virtio_gpu_cmd_create_resource() call (which notifies the host about the new resource created) into the virtio_gpu_object_create() function. That way we can call virtio_gpu_cmd_create_resource() before ttm_bo_init(), so the host already knows about the object when ttm initializes the object and calls our driver callbacks. Specifically the object is already created when the virtio_gpu_ttm_tt_bind() callback invokes virtio_gpu_object_attach(), so the extra virtio_gpu_object_attach() calls done after virtio_gpu_object_create() are not needed any more. The fence support for the create ioctl becomes a bit more tricky though. The code moved into virtio_gpu_object_create() too. We first submit the (fenced) virtio_gpu_cmd_create_resource() command, then initialize the ttm object, and finally attach just created object to the fence for the command in case it didn't finish yet. Signed-off-by: Gerd Hoffmann Acked-by: Noralf Trønnes Link: http://patchwork.freedesktop.org/patch/msgid/20190318113332.10900-6-kraxel@redhat.com commit fd4d6a4277713b647885f68543b4216150540fca Author: Gerd Hoffmann Date: Mon Mar 18 12:33:31 2019 +0100 drm/virtio: params struct for virtio_gpu_cmd_create_resource_3d() Add 3d resource parameters to virtio_gpu_object_params struct. With that in place we can use it for virtio_gpu_cmd_resource_create_3d() calls. Signed-off-by: Gerd Hoffmann Acked-by: Noralf Trønnes Link: http://patchwork.freedesktop.org/patch/msgid/20190318113332.10900-5-kraxel@redhat.com commit f9659329f222a687571a15f7233753ae2f88610f Author: Gerd Hoffmann Date: Mon Mar 18 12:33:30 2019 +0100 drm/virtio: params struct for virtio_gpu_cmd_create_resource() Add format, width and height fields to the virtio_gpu_object_params struct. With that in place we can use the parameter struct for virtio_gpu_cmd_create_resource() calls too. Signed-off-by: Gerd Hoffmann Acked-by: Noralf Trønnes Link: http://patchwork.freedesktop.org/patch/msgid/20190318113332.10900-4-kraxel@redhat.com commit 4441235f9566e66467bcb9d9fe744d21c68213fc Author: Gerd Hoffmann Date: Mon Mar 18 12:33:29 2019 +0100 drm/virtio: use struct to pass params to virtio_gpu_object_create() Create virtio_gpu_object_params, use that to pass object parameters to virtio_gpu_object_create. This is just the first step, followup patches will add more parameters to the struct. The plan is to use the struct for all object parameters. Drop unused "kernel" parameter for virtio_gpu_alloc_object(), it is unused and always false. Also drop "pinned" parameter. virtio-gpu doesn't shuffle around objects, so effecively they all are pinned anyway. Hardcode TTM_PL_FLAG_NO_EVICT so ttm knows. Doesn't change much for the moment as virtio-gpu supports TTM_PL_FLAG_TT only so there is no opportunity to move around objects. That'll probably change in the future though. Signed-off-by: Gerd Hoffmann Acked-by: Noralf Trønnes Link: http://patchwork.freedesktop.org/patch/msgid/20190318113332.10900-3-kraxel@redhat.com commit 42ca472603a210a03f4e5d34d2adbf4239f6b1aa Author: Gerd Hoffmann Date: Mon Mar 18 12:33:28 2019 +0100 drm/virtio: move virtio_gpu_object_{attach, detach} calls. Drop the dummy ttm backend implementation, add a real one for TTM_PL_FLAG_TT objects. The bin/unbind callbacks will call virtio_gpu_object_{attach,detach}, to update the object state on the host side, instead of invoking those calls from the move_notify() callback. With that in place the move and move_notify callbacks are not needed any more, so drop them. Signed-off-by: Gerd Hoffmann Acked-by: Noralf Trønnes Link: http://patchwork.freedesktop.org/patch/msgid/20190318113332.10900-2-kraxel@redhat.com commit 6bbeae35b67b339b81e42c9ab56789788491dc00 Author: Gerd Hoffmann Date: Wed Mar 20 09:36:12 2019 +0100 drm/virtio: add virtio-gpu-features debugfs file. This file prints which features the virtio-gpu device has. Also add "virtio-gpu-" prefix to the existing fence file, to make clear this is a driver-specific debugfs file. Signed-off-by: Gerd Hoffmann Acked-by: Noralf Trønnes Link: http://patchwork.freedesktop.org/patch/msgid/20190320083612.32067-1-kraxel@redhat.com commit df16a224d2b59213385cf012ecdb68a72a003fc6 Author: YueHaibing Date: Mon Mar 25 09:26:31 2019 +0000 drm/virtio: remove set but not used variable 'vgdev' Fixes gcc '-Wunused-but-set-variable' warning: drivers/gpu/drm/virtio/virtgpu_ttm.c: In function 'virtio_gpu_init_mem_type': drivers/gpu/drm/virtio/virtgpu_ttm.c:117:28: warning: variable 'vgdev' set but not used [-Wunused-but-set-variable] drivers/gpu/drm/virtio/virtgpu_ttm.c: In function 'virtio_gpu_bo_swap_notify': drivers/gpu/drm/virtio/virtgpu_ttm.c:300:28: warning: variable 'vgdev' set but not used [-Wunused-but-set-variable] It is never used since introduction in dc5698e80cf7 ("Add virtio gpu driver.") Signed-off-by: YueHaibing Reviewed-by: Mukesh Ojha Link: http://patchwork.freedesktop.org/patch/msgid/20190325092631.152060-1-yuehaibing@huawei.com Signed-off-by: Gerd Hoffmann commit 2725d70aa5138284ba2cebf0ef51dd23e0c9ea21 Author: Claudiu Beznea Date: Thu Feb 14 15:55:06 2019 +0000 ARM: at91: pm: do not disable/enable PLLA for ULP modes There is no need to disable/enable PLLA when switching to one of the ULP modes. The PLLA consumers should take care of this. Signed-off-by: Claudiu Beznea Signed-off-by: Alexandre Belloni Signed-off-by: Ludovic Desroches commit bc0779bd8f1317faddf65385f7af1f1fe229f23b Author: Claudiu Beznea Date: Thu Feb 14 15:55:01 2019 +0000 ARM: at91: pm: disable RC oscillator in ULP0 Disable RC oscillator in ULP0 as datasheet specifies. Signed-off-by: Claudiu Beznea Signed-off-by: Alexandre Belloni Signed-off-by: Ludovic Desroches commit eaedc0d379da6d1157a4f274d186001d11615b2b Author: Claudiu Beznea Date: Thu Feb 14 15:54:57 2019 +0000 ARM: at91: pm: add ULP1 support for SAM9X60 Add ULP1 support for SAM9X60. In pm_suspend.S enable RC oscillator in PMC if it is not enabled. At resume the state before suspend is restored. Signed-off-by: Claudiu Beznea Acked-by: Stephen Boyd Signed-off-by: Alexandre Belloni Signed-off-by: Ludovic Desroches commit a958156dac936d336f6f56fd2de86e36bc868ff4 Author: Claudiu Beznea Date: Thu Feb 14 15:54:51 2019 +0000 ARM: at91: pm: add support for per SoC wakeup source configuration Add support for per SoC wakeup source configuration. In this way we could have per SoC wakeup sources, shutdown controller and power management controller configurations for ULP1 power management mode. Signed-off-by: Claudiu Beznea Signed-off-by: Alexandre Belloni Signed-off-by: Ludovic Desroches commit 2fa86e5200a49b3f236a0835f3976c3148148206 Author: Claudiu Beznea Date: Thu Feb 14 15:54:47 2019 +0000 ARM: at91: pm: keep at91_pm_backup_init() only for SAMA5D2 SoCs In at91_pm_backup_init() return if it is not about SAMA5D2 SoCs. Signed-off-by: Claudiu Beznea Signed-off-by: Alexandre Belloni Signed-off-by: Ludovic Desroches commit 01c7031cfa7308c2a6d46636bda2e51be6474cf4 Author: Claudiu Beznea Date: Thu Feb 14 15:54:41 2019 +0000 ARM: at91: pm: initial PM support for SAM9X60 Add initial PM support for SAM9X60. This include idle, WFI and ULP0. Signed-off-by: Claudiu Beznea Signed-off-by: Alexandre Belloni Signed-off-by: Ludovic Desroches commit db9630273f90a328eabef48fe46589b6af3f8ab9 Author: Claudiu Beznea Date: Thu Feb 14 15:54:37 2019 +0000 dt-bindings: arm: atmel: add binding for SAM9X60 SoC Add device tree binding for SAM9X60 SoC. Signed-off-by: Claudiu Beznea Signed-off-by: Alexandre Belloni Signed-off-by: Ludovic Desroches commit c3f5b8fde71f6ab15d4fd8921997d62ef98d803a Author: Claudiu Beznea Date: Thu Feb 14 15:54:31 2019 +0000 ARM: at91: pm: introduce at91_soc_pm structure To have per SoC PM information add a new structure which embed a member of type struct at91_pm_data. This will allow easy addition of new information without contaminate struct at91_pm_data that is passed to the last phase suspend function (at91_suspend_sram_fn). Signed-off-by: Claudiu Beznea Signed-off-by: Alexandre Belloni Signed-off-by: Ludovic Desroches commit 7784a6eb89d431a5681833d4a6a3c7f01b03ae52 Author: Boris Brezillon Date: Thu Dec 13 12:50:06 2018 +0000 ARM: dts: at91: sama5d2_xplained: Add proper regulator states for suspend-to-mem When entering suspend-to-mem, all PMIC outputs are disabled except VDDIODDR which is put in power saving mode, and whose voltage is increased (probably to counter the poor accuracy of power saving mode). Signed-off-by: Boris Brezillon [claudiu.beznea@microchip.com: use regulator-changeable-in-suspend, regulator-suspend-max-microvolt, regulator-suspend-max-microvolt, use macros for regulators' states, add regulator-inital-state] Signed-off-by: Claudiu Beznea Signed-off-by: Alexandre Belloni Signed-off-by: Ludovic Desroches commit 1ba8994faa330b8ab80ca41e5ab3f90719050d5d Author: Nicolas Ferre Date: Thu Feb 7 11:15:47 2019 +0100 ARM: dts: at91: sama5d2: add labels to soc dtsi for derivative boards This adds labels to commonly used device-tree nodes so that derivative boards can avoid ahb/apb hierarchy. Signed-off-by: Nicolas Ferre Signed-off-by: Alexandre Belloni Signed-off-by: Ludovic Desroches commit 4d720e2a8c5f5829ca6d79e02f653ca8b1470b8b Author: Thomas Preston Date: Mon Mar 25 16:53:38 2019 +0000 Documentation: acpi: Add an example for PRP0001 Add an example for the magic PRP0001 device ID which allows matching ACPI devices against drivers using OF Device Tree compatible property. Signed-off-by: Thomas Preston Reviewed-by: Andy Shevchenko Acked-by: Mika Westerberg Signed-off-by: Rafael J. Wysocki commit fd21b79e541e4666c938a344f3ad2df74b4f5120 Author: Aditya Pakki Date: Mon Mar 25 16:25:22 2019 -0500 thunderbolt: Fix to check the return value of kmemdup uuid in add_switch is allocted via kmemdup which can fail. The patch logs the error and cleans up the allocated memory for switch. Signed-off-by: Aditya Pakki Reviewed-by: Mukesh Ojha Signed-off-by: Mika Westerberg commit 6183d5a51866f3acdeeb66b75e87d44025b01a55 Author: Kangjie Lu Date: Mon Mar 25 15:23:08 2019 -0500 thunderbolt: property: Fix a missing check of kzalloc No check is enforced for the return value of kzalloc, which may lead to NULL-pointer dereference. The patch fixes this issue. Signed-off-by: Kangjie Lu Reviewed-by: Mukesh Ojha Signed-off-by: Mika Westerberg commit 3a23fd0415cbd074b726fe730747d1bb41f8d0d7 Merge: 36b8defc4476 fe1b26c93d43 Author: Takashi Iwai Date: Thu Mar 28 08:33:20 2019 +0100 Merge branch 'topic/timer-fixes' into for-next Pull yet another ALSA core timer fixes and cleanups. Signed-off-by: Takashi Iwai commit 33d69455e402ad45f3c9f8df6af14866454655e7 Author: Iuliana Prodan Date: Fri Mar 22 15:39:28 2019 +0200 crypto: caam - limit AXI pipeline to a depth of 1 Some i.MX6 devices (imx6D, imx6Q, imx6DL, imx6S, imx6DP and imx6DQ) have an issue wherein AXI bus transactions may not occur in the correct order. This isn't a problem running single descriptors, but can be if running multiple concurrent descriptors. Reworking the CAAM driver to throttle to single requests is impractical, so this patch limits the AXI pipeline to a depth of one (from a default of 4) to preclude this situation from occurring. This patch applies to known affected platforms. Signed-off-by: Radu Solea Signed-off-by: Iuliana Prodan Reviewed-by: Horia Geantă Signed-off-by: Herbert Xu commit c23116e48a9b8ffe2fa520add3ba5ba52049327a Author: Vakul Garg Date: Fri Mar 22 02:00:37 2019 +0000 crypto: caam/jr - Remove extra memory barrier during job ring enqueue In caam_jr_enqueue(), a write barrier is needed to order stores to job ring slot before declaring addition of new job into input job ring. The register write is done using wr_reg32() which internally uses iowrite32() for write operation. The api iowrite32() issues a write barrier before issuing write operation. Therefore, the wmb() preceding wr_reg32() can be safely removed. Signed-off-by: Vakul Garg Reviewed-by: Horia Geanta Signed-off-by: Herbert Xu commit 1b30b989cbea4052302bc304cc6179ee2f33ea9b Author: Vakul Garg Date: Fri Mar 22 02:00:35 2019 +0000 crypto: caam/jr - Removed redundant vars from job ring private data For each job ring, the variable 'ringsize' is initialised but never used. Similarly variables 'inp_ring_write_index' and 'head' always track the same value and instead of 'inp_ring_write_index', caam_jr_enqueue() can use 'head' itself. Both these variables have been removed. Signed-off-by: Vakul Garg Signed-off-by: Herbert Xu commit a118dfa0dbfcc8e95833b4bb7d83271ba85cf397 Author: Vakul Garg Date: Fri Mar 22 02:00:34 2019 +0000 crypto: caam/jr - Remove spinlock for output job ring For each job ring pair, the output ring is processed exactly by one cpu at a time under a tasklet context (one per ring). Therefore, there is no need to protect a job ring's access & its private data structure using a lock. Hence the lock can be removed. Signed-off-by: Vakul Garg Reviewed-by: Horia Geanta Signed-off-by: Herbert Xu commit e44e77ab8bbf03ae164090ca7b8cc0fb8970dae9 Author: YueHaibing Date: Thu Mar 21 23:11:48 2019 +0800 crypto: vmx - Make p8_init and p8_exit static Fix sparse warnings: drivers/crypto/vmx/vmx.c:44:12: warning: symbol 'p8_init' was not declared. Should it be static? drivers/crypto/vmx/vmx.c:70:13: warning: symbol 'p8_exit' was not declared. Should it be static? Signed-off-by: YueHaibing Signed-off-by: Herbert Xu commit d99324c22643f5ecbbf7849a1c660db569c268a7 Author: Geert Uytterhoeven Date: Wed Mar 20 11:41:03 2019 +0100 crypto: fips - Grammar s/options/option/, s/to/the/ Fixes: ccb778e1841ce04b ("crypto: api - Add fips_enable flag") Signed-off-by: Geert Uytterhoeven Reviewed-by: Mukesh Ojha Signed-off-by: Herbert Xu commit 2ff9dff5aadf69e5051a1807780c2983eef4c646 Author: YueHaibing Date: Tue Mar 19 21:59:32 2019 +0800 crypto: cavium - Make cptvf_device_init static Fix sparse warning: drivers/crypto/cavium/cpt/cptvf_main.c:644:6: warning: symbol 'cptvf_device_init' was not declared. Should it be static? Signed-off-by: YueHaibing Signed-off-by: Herbert Xu commit 78ea86da5a64e6ec7cfcbee2c5f1fc32cf1866ac Author: YueHaibing Date: Tue Mar 19 21:57:49 2019 +0800 crypto: bcm - remove unused array tag_to_hash_idx It's never used since introduction in commit 9d12ba86f818 ("crypto: brcm - Add Broadcom SPU driver") Signed-off-by: YueHaibing Signed-off-by: Herbert Xu commit 8355003c502e6fa66b52c7a5b2cf8f53dfa484b5 Author: YueHaibing Date: Tue Mar 19 21:55:07 2019 +0800 crypto: zip - Make some functions static Fix following sparse warnings: drivers/crypto/cavium/zip/zip_crypto.c:72:5: warning: symbol 'zip_ctx_init' was not declared. Should it be static? drivers/crypto/cavium/zip/zip_crypto.c:110:6: warning: symbol 'zip_ctx_exit' was not declared. Should it be static? drivers/crypto/cavium/zip/zip_crypto.c:122:5: warning: symbol 'zip_compress' was not declared. Should it be static? drivers/crypto/cavium/zip/zip_crypto.c:158:5: warning: symbol 'zip_decompress' was not declared. Should it be static? Signed-off-by: YueHaibing Signed-off-by: Herbert Xu commit 52c899ec472e88e33c31c33bea844217c0963a05 Author: YueHaibing Date: Tue Mar 19 21:50:35 2019 +0800 crypto: ccp - Make ccp_register_rsa_alg static Fix sparse warning: drivers/crypto/ccp/ccp-crypto-rsa.c:251:5: warning: symbol 'ccp_register_rsa_alg' was not declared. Should it be static? Signed-off-by: YueHaibing Acked-by: Gary R Hook Signed-off-by: Herbert Xu commit cd1af982338def24744eb82ab3ec59169ad98dea Author: YueHaibing Date: Tue Mar 19 21:43:48 2019 +0800 crypto: cavium - Make some functions static Fix sparse warnings: drivers/crypto/cavium/cpt/cptvf_reqmanager.c:226:5: warning: symbol 'send_cpt_command' was not declared. Should it be static? drivers/crypto/cavium/cpt/cptvf_reqmanager.c:273:6: warning: symbol 'do_request_cleanup' was not declared. Should it be static? drivers/crypto/cavium/cpt/cptvf_reqmanager.c:319:6: warning: symbol 'do_post_process' was not declared. Should it be static? Signed-off-by: YueHaibing Signed-off-by: Herbert Xu commit 6469a3c96585e274c77e7eba2f4ad3b1bc69cf05 Author: YueHaibing Date: Tue Mar 19 21:37:00 2019 +0800 crypto: cavium - remove unused fucntions cptvf_mbox_send_ack and cptvf_mbox_send_nack are never used since introdution in commit c694b233295b ("crypto: cavium - Add the Virtual Function driver for CPT") Signed-off-by: YueHaibing Signed-off-by: Herbert Xu commit 596a434369f6ed9339c398d36b44a680ad317de6 Author: Rajendra Nayak Date: Wed Mar 20 13:39:45 2019 +0530 arm64: dts: sdm845: Include rpmpd DT header In order to fix dependencies with rpmpd DT entries, the header was dropped and hardcoded values were added for opp-level, during the previous merge window. Add the header back in now and remove the hardcodings, effectively reverting commit '08585d21de9875a6064b350957faa0460a4c69a6: arm64: dts: sdm845: Fixup dependency on RPMPD includes' Signed-off-by: Rajendra Nayak Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross commit 60f77ae7d1c1ffbc5af34c5b1a7f3f7ecc52637c Author: Bjorn Andersson Date: Mon Mar 4 23:08:23 2019 -0800 arm64: dts: qcom: qcs404-evb: Enable uart3 and add Bluetooth Enable blsp1_uart3, define its pinconf and add the bluetooth node. It seems provisioning is lacking a valid BD address, preventing the interface from initializing, so provide a dummy for now. Tested-by: Vinod Koul Reviewed-by: Vinod Koul Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross commit 8faea8edbb35c09d1c3b23d7e8f1459cea40ab6b Author: Jorge Ramirez-Ortiz Date: Tue Mar 26 22:29:34 2019 +0530 arm64: dts: qcom: qcs404-evb: add spmi regulators Define the EVB pms405_s3 supplies. Signed-off-by: Jorge Ramirez-Ortiz Signed-off-by: Khasim Syed Mohammed Signed-off-by: Vinod Koul Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross commit a60a072c5e7fa49ca3ae5bb45b6038fd05b84295 Author: Jorge Ramirez-Ortiz Date: Tue Mar 26 22:29:33 2019 +0530 arm64: dts: qcom: pms405: add spmi regulators The PMS405 sports 5 SMPS and 13 LDO regulators, add the regulators to pms405 DTS. Signed-off-by: Jorge Ramirez-Ortiz Signed-off-by: Khasim Syed Mohammed Signed-off-by: Vinod Koul [bjorn: updated label] Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross commit cd3dbe2a4e6cedec80e6d1f07aea8bcbef365170 Author: Marc Gonzalez Date: Mon Feb 25 13:18:43 2019 +0100 arm64: dts: qcom: msm8998: Add UFS nodes Add host controller and PHY DT nodes. Tested-by: Lee Jones Signed-off-by: Marc Gonzalez Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross commit 695942de1da7a095f1dc8742fc94acf864eb4f18 Author: Marc Gonzalez Date: Mon Feb 25 13:17:44 2019 +0100 arm64: dts: qcom: msm8998: Allow UFSHC driver to set-load The UFS host controller driver needs to set the load on 3 power rails (l20, l26, s4) but the operation fails silently unless we specify the regulator-allow-set-load property in the corresponding DT nodes. Tested-by: Lee Jones Reviewed-by: Jeffrey Hugo Signed-off-by: Marc Gonzalez Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross commit cb79a81fd98fc485a9d0506391ad197791ba023f Author: Marc Gonzalez Date: Mon Feb 25 13:17:02 2019 +0100 dt-bindings: ufs: Add msm8998 compatible string Add "qcom,msm8998-ufshc" compatible string. Tested-by: Lee Jones Signed-off-by: Marc Gonzalez Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross commit 6703a27327ddc7375c922ffeeffcc48a6bc98720 Author: Khasim Syed Mohammed Date: Sun Mar 24 22:02:09 2019 +0530 arm64: dts: qcom: qcs404: Remove default setting of controlled-remotely for BAM DMA The property controlled-remotely should not be set by default for qcs-404 device, it should be set based on the secure boot options (TZ or ATF) preferred by the platform. Hence, the controlled-remotely property is moved to platform specific dts files. Signed-off-by: Khasim Syed Mohammed Signed-off-by: Srinivas Kandagatla Signed-off-by: Bjorn Andersson Signed-off-by: Vinod Koul Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross commit 331ab98f8c4a38b804ec65bd99fbef07614950a3 Author: Bjorn Andersson Date: Sun Mar 24 22:02:06 2019 +0530 arm64: dts: qcom: qcs404: Fix voltages l3 PMS405 L3 is outside the acceptable range, causing PCIe to fail. Fix these. Signed-off-by: Bjorn Andersson Signed-off-by: Khasim Syed Mohammed Signed-off-by: Vinod Koul [bjorn: Hunk fixing up S5 already applied, updated commit message] Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross commit 0253735f503ac502fa775e96375d2f6c192bfe07 Author: Vinod Koul Date: Sun Mar 24 22:02:05 2019 +0530 arm64: dts: qcom: qcs404: Enable ethernet for EVB-4000 EVB-4000 comes with ethernet so enable it and add pinctrl bindings. Co-developed-by: Niklas Cassel Signed-off-by: Niklas Cassel Signed-off-by: Vinod Koul Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross commit 4dfa70ea0f74bd4fd819292fe950f734ffe47c86 Author: Vinod Koul Date: Sun Mar 24 22:02:04 2019 +0530 arm64: dts: qcom: qcs404: Add Ethernet node Add the ethernet node found in QCS404 platform. Co-developed-by: Niklas Cassel Signed-off-by: Niklas Cassel Signed-off-by: Vinod Koul Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross commit 71f1fdd9c300a92027126dfab5db7125dc4e283d Author: Georgi Djakov Date: Mon Mar 11 16:06:02 2019 +0200 arm64: dts: sdm845: Include the interconnect resources DT header Include the device tree header for the on-chip interconnect endpoint resources on sdm845 devices. This will allow using the "interconnects" property in DT nodes to describe the interconnect path resources they use. The sdm845 interconnect provider DT node is already present, but the header file with the resources is not included, so let's fix this. Reviewed-by: Evan Green Signed-off-by: Georgi Djakov Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross commit f95f57e4372207ede83ac28f300aba719b271ed5 Author: Bjorn Andersson Date: Thu Dec 13 10:32:00 2018 -0800 arm64: dts: qcom: qcs404: Fix regulator supply names The regulator definition got their supply names cleaned up during upstreaming, so they no longer match the driver defined names. Update the supply names. Also fill out the missing voltage of SMPS 5. Fixes: 0b363f5b871c ("arm64: dts: qcom: qcs404: Add PMS405 RPM regulators") Reported-by: Nicolas Dechesne Reviewed-by: Niklas Cassel Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross commit d6e5a4f84e2882f95b088c20995aba73e90e35fd Author: Amit Kucheria Date: Wed Dec 12 15:47:54 2018 +0530 dt-bindings: iio: adc: Add binding for ADC on pms405 PMIC PMS405 contains a variant of the spmi-adc-rev2 ADC. Create a new compatible inorder to handle any differences. Reviewed-by: Rob Herring Signed-off-by: Amit Kucheria Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross commit 93b260528020792032e50725383f27a27897bb0f Author: Dan Carpenter Date: Thu Feb 28 08:48:49 2019 +0300 soc: qcom: cmd-db: Fix an error code in cmd_db_dev_probe() The memremap() function doesn't return error pointers, it returns NULL. This code is returning "ret = PTR_ERR(NULL);" which is success, but it should return -ENOMEM. Fixes: 312416d9171a ("drivers: qcom: add command DB driver") Signed-off-by: Dan Carpenter Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross commit 9324df5817c01f55fcde24da0da9df2c2f9392ac Author: Chris Lew Date: Thu Feb 21 18:33:39 2019 -0800 soc: qcom: qmi: Change txn wait to non-interruptible Current QMI clients are not userspace facing, if their threads are signaled, they do not do any signal checking or propagate the ERESTARTSYS return code up. Remove the interruptible option so clients can finish their QMI transactions even if the thread is signaled. Reviewed-by: Bjorn Andersson Signed-off-by: Chris Lew Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross commit 8da3daaa097171edd9658a82bbd3f335bc2e03ad Author: Ankit Jain Date: Mon Feb 4 10:15:43 2019 +0530 soc: qcom: rmtfs: Add support for mmap functionality This change adds mmap functionality to rmtfs_mem driver. Userspace application can map the address and use this mapped address directly as buffer for read/write call to disk. and avoid the read/write call to the shared path to copy the buffer to userspace application. Reviewed-by: Bjorn Andersson Signed-off-by: Ankit Jain Signed-off-by: Bjorn Andersson Signed-off-by: Andy Gross commit 00d082cc4ea6e42ec4fed832a1020231bb1ca150 Author: Laurent Pinchart Date: Wed Mar 6 22:48:35 2019 +0200 drm: rcar-du: lvds: Set LVEN and LVRES bits together on D3 On the D3 SoC the LVDS PHY must be enabled in the same register write that enables the LVDS output. Skip writing the LVEN bit independently on that platform, it will be set by the write that sets LVRES. Signed-off-by: Laurent Pinchart Reviewed-by: Jacopo Mondi commit 871370308675e477abd57a69ce66ca4730a4249c Author: Laurent Pinchart Date: Sun Mar 3 22:29:21 2019 +0200 drm: rcar-du: lvds: Adjust operating frequency for D3 and E3 The D3 and E3 SoCs have different pixel clock frequency limits for the LVDS encoder than the other SoCs in the Gen3 family. Adjust the mode fixup implementation accordingly. Signed-off-by: Laurent Pinchart Reviewed-by: Jacopo Mondi commit b764f2f66ed48c7f0df2c4b1350c7973109a1d14 Author: Kieran Bingham Date: Fri Mar 15 17:01:05 2019 +0000 drm: rcar-du: Link CRTCs to the DU device The rcar_du_crtc functions have a heavy reliance on the rcar_du_group structure, in many cases just to access the DU device context. To better separate the groups out of the CRTC handling code, give the rcar_du_crtc its own pointer to the device and remove the indirection through the group pointers. Signed-off-by: Kieran Bingham Reviewed-by: Laurent Pinchart Signed-off-by: Laurent Pinchart commit 167e535438ecc73d299340bb1269616432020dfb Author: Laurent Pinchart Date: Tue Mar 12 18:18:17 2019 +0200 drm: rcar-du: lvds: Fix post-DLL divider calculation The PLL parameters are computed by looping over the range of acceptable M, N and E values, and selecting the combination that produces the output frequency closest to the target. The internal frequency constraints are taken into account by restricting the tested values for the PLL parameters, reducing the search space. The target frequency, however, is only taken into account when computing the post-PLL divider, which can result in a 0 value for the divider when the PLL output frequency being tested is lower than half of the target frequency. Subsequent loops will produce a better set of PLL parameters, but for some of the iterations this can result in a division by 0. Fix it by clamping the divider value. We could instead restrict the E values being tested in the inner loop, but that would require additional calculation that would likely be less efficient as the E parameter can only take three different values. Fixes: c25c01361199 ("drm: rcar-du: lvds: D3/E3 support") Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham commit 2471e7a534b7c7b42803b175d2fcc2b9dca600c3 Author: Laurent Pinchart Date: Wed Mar 13 12:29:05 2019 +0200 drm: Forward-declare struct drm_format_info in drm_framebuffer.h drm_framebuffer.h makes use of a pointer to struct drm_format_info but doesn't include drm_fourcc.h (neither directly nor indirectly). Forward-declare the structure. Signed-off-by: Laurent Pinchart Reviewed-by: Jani Nikula Reviewed-by: Sam Ravnborg commit b1fed71c4a559c7cb191e2cf4942c541e77f049f Author: Kieran Bingham Date: Thu Mar 14 22:04:20 2019 +0000 drm: rcar-du: Remove unused prototypes The CRTC suspend and resume functions have been replaced, but the prototypes were not removed. Remove the redundant definitions. Signed-off-by: Kieran Bingham Reviewed-by: Simon Horman Reviewed-by: Laurent Pinchart Signed-off-by: Laurent Pinchart commit fcb32cbab0dc9b86504405d0c432416d5c3aba91 Author: Kieran Bingham Date: Thu Mar 14 22:04:19 2019 +0000 drm: rcar-du: crtc: Make local functions static The rcar_du_crtc_mode_valid() and rcar_du_crtc_get_crc_sources() functions are accessed only through a function pointer table. Convert the function definitions to be static to the module. Signed-off-by: Kieran Bingham Reviewed-by: Simon Horman Reviewed-by: Laurent Pinchart Signed-off-by: Laurent Pinchart commit bb10211058880b14da5ec2ff927ff7d3b424aa05 Author: Kieran Bingham Date: Thu Mar 14 22:04:18 2019 +0000 drm: Fix subtle spelling error in drm_crtc_state The drm_crtc_state documentation contains a subtle misspelling of the word subtle. Correct it. Signed-off-by: Kieran Bingham Reviewed-by: Daniel Vetter Reviewed-by: Simon Horman Reviewed-by: Laurent Pinchart Signed-off-by: Laurent Pinchart commit 73eb5476df7207d2416227703f510ae6cc5f2f5f Author: Laurent Pinchart Date: Sat Mar 2 18:13:04 2019 +0200 drm: rcar-du: Support panels connected directly to the DPAD outputs The R-Car DU driver assumes that a bridge is always connected to the DU output. This is valid for the LVDS and HDMI outputs, but the DPAD outputs can be connected directly to a panel, in which case no bridge is available. To support this use case, detect whether the entities connected to the DU DPAD outputs are encoders or panels based on the number of ports of their DT node, and retrieve the corresponding type of DRM objects. For panels, additionally create panel bridge instances. Signed-off-by: Laurent Pinchart Tested-by: Kevin Key Reviewed-by: Kieran Bingham Reviewed-by: Jacopo Mondi commit e815a9e62b3225c1495552c5d80553648f13a5d2 Author: Evan Quan Date: Tue Mar 26 17:16:36 2019 +0800 drm/amd/powerplay: update current profile mode only when it's really applied No need to update current profile mode if the new profile mode does not take effect in fact. Signed-off-by: Evan Quan Reviewed-by: Kent Russell Signed-off-by: Alex Deucher commit c0415c8722a43aa3f97f24ab54334107c34f9290 Author: Dmytro Laktyushkin Date: Fri Mar 15 13:59:25 2019 -0400 drm/amd/display: fix odm output gamma programming Currently only top pipe gets output tf programmed. This change makes all odm head pipes get output tf programmed. Signed-off-by: Dmytro Laktyushkin Reviewed-by: Nikola Cornij Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 0cbba1638b8ef1272ea9ef9b4b95274596214443 Author: Joshua Aberback Date: Mon Mar 18 13:40:47 2019 -0400 drm/amd/display: Populate macro_tile_size field for dml Create a functions to return swizzle types for dml Signed-off-by: Joshua Aberback Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 248cbed60db05f39913707c1ad74999730487fd6 Author: Eric Bernstein Date: Thu Feb 28 14:45:13 2019 -0500 drm/amd/display: use dc_is_virtual instead of ENUM Signed-off-by: Eric Bernstein Reviewed-by: Dmytro Laktyushkin Reviewed-by: Nevenko Stupar Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit a5706c61cb8e0b504df6e534e1e37d07cff456d3 Author: Aric Cyr Date: Sat Mar 16 16:06:58 2019 -0400 drm/amd/display: 3.2.24 Signed-off-by: Aric Cyr Reviewed-by: Aric Cyr Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit bb1cb98e215c5136651335d8f2b183e8ee85d52c Author: Nikola Cornij Date: Tue Mar 12 20:11:37 2019 -0400 drm/amd/display: Pass SDP spliting in parameters pass SDP splitting when setting stream attributes for future use Signed-off-by: Nikola Cornij Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 3a66541c63bc06419a0d9b998befc11a2b4b781c Author: Eryk Brol Date: Wed Mar 13 11:51:15 2019 -0400 drm/amd/display: Create clock funcs Create dccg_init and init_clocks for future use Signed-off-by: Eryk Brol Reviewed-by: Jun Lei Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit bc07dfb3660fcb354d8a7ae8531b920f97b55430 Author: Fatemeh Darbehani Date: Tue Mar 12 13:57:36 2019 -0400 drm/amd/display: Clean up old pplib interface functions [Why] set_display_requirement, dcn1_pplib_apply_display_requirements are no longer used and should be removed. Signed-off-by: Fatemeh Darbehani Reviewed-by: Hersen Wu Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit d9673c920c035df8f17445d5c81142dbe4bf51a0 Author: Harry Wentland Date: Wed Feb 13 16:20:27 2019 -0500 drm/amd/display: Pass init_data into DCN resource creation [WHY] The resource constructor currently needs num_virtual_links from init_data but will need access to other items provided by DM. [HOW] Pass init_data into DCN create_resource_pool functions. Signed-off-by: Harry Wentland Reviewed-by: Nicholas Kazlauskas Acked-by: Bhawanpreet Lakha Acked-by: Hersen Wu Signed-off-by: Alex Deucher commit a504ad265dec380d7314b8e02984c8d294ab0bd5 Author: Hugo Hu Date: Mon Feb 25 19:16:52 2019 +0800 drm/amd/display: Handle branch device with DFP count = 0 case. [Why] When you have a SST branch device the driver, Even no sink device connected, it also send HPD with a valid EDID. Driver will config it to DP sink. Therefore, there're two displays in display setting. DPCD 0x05, DFP_PRESENT = 1 (branch device), DFP_TYPE = 00 (Display Port) [How] Driver determine DPCD 0x05 DFP_PRESENT = 1(branch) as an active dongle And check DFP count. Signed-off-by: Hugo Hu Reviewed-by: Hugo Hu Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 3ae42acde349e0f983945da5901282de9352d929 Author: hersen wu Date: Fri Mar 1 11:54:02 2019 -0500 drm/amd/display: program default output gamma program default output gamma if no user specific gamma parameters passed. Signed-off-by: hersen wu Reviewed-by: Sun peng Li Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 5581192d72337146ae8ca3128359ecd0bad0f8c7 Author: Jun Lei Date: Tue Mar 12 15:12:41 2019 -0400 drm/amd/display: add preferred pipe split logic [why] existing logic finds "first free pipe from 5 -> 0" to split this will cause certain sequences to require DC to move an MPCC from one tree to another, which is unsupported this leads to blackscreen to mitigate this problem, we will always try to acquire the "preferred" pipe, and each pipe has a unique preferred pipe this means we avoid most of the scenarios where pipe splitting leads to moving MPCC from one tree to another Signed-off-by: Jun Lei Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit fda43ab68ce4de56c3cd3b488cd70496cd1135d7 Author: Christian König Date: Wed Mar 27 11:34:24 2019 +0100 drm/amdgpu: don't put the root PD into the relocated list Instead of skipping the root PD while processing the relocated list just never put it on the list in the first place. This avoids walking the list all together when the root PD is the only entry and so also avoids trying to submit a zero sized IB to the SDMA. Signed-off-by: Christian König Tested-by: Michel Dänzer Signed-off-by: Alex Deucher commit 110aef572afccc8d18c8d1ad6cb027795ec01cda Author: Christian König Date: Thu Mar 21 16:43:39 2019 +0100 drm/amdgpu: drop the ib from the VM update parameters It is redundant with the job pointer. Signed-off-by: Christian König Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher commit ecf96b52bf98a22f14bd33c7deee0aad8eb6b569 Author: Christian König Date: Thu Mar 21 16:34:18 2019 +0100 drm/amdgpu: move VM table mapping into the backend as well Clean that up further and also fix another case where the BO wasn't kmapped for CPU based updates. Signed-off-by: Christian König Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher commit df399b064118bf9a5b9a3faaa67feb1cbb34e9d4 Author: shaoyunl Date: Wed Mar 20 16:14:56 2019 -0400 drm/amdgpu: XGMI pstate switch initial support Driver vote low to high pstate switch whenever there is an outstanding XGMI mapping request. Driver vote high to low pstate when all the outstanding XGMI mapping is terminated. Signed-off-by: shaoyunl Reviewed-by: Christian König Signed-off-by: Alex Deucher commit adc7e863f68466aa63861242449c2c0fd57d60ab Author: Christian König Date: Mon Mar 18 21:15:57 2019 +0100 drm/amdgpu: use the new VM backend for clears And remove the existing code when it is unused. Signed-off-by: Christian König Reviewed-by: Chunming Zhou Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher commit 37945a3ad56f2859868959a25143c8da90626944 Author: Evan Quan Date: Fri Mar 15 16:25:15 2019 +0800 drm/amdgpu: defer cmd/fence/fw buffers destroy on hw_init failure As the cleanup jobs performed in pre_fini may still need these buffers. NULL pointer dereference will be triggered without them. Signed-off-by: Evan Quan Reviewed-by: Feifei Xu Signed-off-by: Alex Deucher commit 7a3d7bf606ca29d2d43fae761e5b30ab9658153e Author: Evan Quan Date: Fri Mar 15 10:26:49 2019 +0800 drm/amdgpu: add more debug friendly prompts Large piece of codes share one error prompt. That is not friendly for debugging. Signed-off-by: Evan Quan Reviewed-by: Feifei Xu Signed-off-by: Alex Deucher commit 39fee32b467c2773fdd71cb7cb2e0cdcb4104269 Author: Evan Quan Date: Fri Mar 15 10:02:59 2019 +0800 drm/amdgpu: error out on mode1 reset failure The error return value should be correctly reflected. Signed-off-by: Evan Quan Reviewed-by: Feifei Xu Signed-off-by: Alex Deucher commit fed184e9057a438910e7093ca7d9cf564b71bb16 Author: Evan Quan Date: Fri Mar 15 10:04:34 2019 +0800 drm/amdgpu: trivial typo fix "error" was not correctly spelled. Signed-off-by: Evan Quan Reviewed-by: Christian König Signed-off-by: Alex Deucher commit 190211ab7554c4ebe603b02adfb956dbc3e8e2af Author: xinhui pan Date: Thu Mar 21 15:00:47 2019 +0800 drm/amdgpu: remove per obj debugfs write there is ras_control node which can do its job. Signed-off-by: xinhui pan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 828cfa29093f86ef126f505a2b7fc1831aeeed74 Author: xinhui pan Date: Thu Mar 21 15:13:38 2019 +0800 drm/amdgpu: Fix amdgpu ras to ta enums conversion Add helpes to transalte the two enums. And it will catch bugs easily. Signed-off-by: xinhui pan Signed-off-by: Nathan Chancellor Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 9f491d731c9dfb79511ad2573c9a58d07ed4ca46 Author: xinhui pan Date: Thu Mar 21 12:47:07 2019 +0800 drm/amdgpu: use macro instead of enum for flags better to use macro. Signed-off-by: xinhui pan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 73aa8e1a3a84609dce2b84391308017331cc8f24 Author: xinhui pan Date: Tue Mar 19 11:16:32 2019 +0800 drm/amdgpu: Fix some sanity check ras context might be NULL, so move con->h_data after check !con also fix sizeof wrong type while at it. Signed-off-by: xinhui pan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit fb17358ce8a081c0c4c5cdcdd625b404285a4315 Author: Saurav Kashyap Date: Tue Mar 26 00:38:58 2019 -0700 scsi: qedf: Update the driver version to 8.37.25.19 - Update the driver version. Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit efc8fe9b6cab7be8043006c5cdeb8e37b4b52df3 Author: Saurav Kashyap Date: Tue Mar 26 00:38:57 2019 -0700 scsi: qedf: Fix lport may be used uninitialized warning - lport was getting used without initialization, initialize it to fix a warning. Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit fe2043d19e4a10fd697756ca6edf0edc1c0392ef Author: Saurav Kashyap Date: Tue Mar 26 00:38:56 2019 -0700 scsi: qedf: Correctly handle refcounting of rdata - Handle refcount of rdata during error conditions. Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit faea5719d373f38d785961ee724de1b392e869e8 Author: Shyam Sundar Date: Tue Mar 26 00:38:55 2019 -0700 scsi: qedf: Cleanup rrq_work after QEDF_CMD_OUTSTANDING is cleared Here is the relevant logs for the problem we are solving: qedf_flush_active_ios:1707]:3: Flush active i/o's num=0x17 fcport=0xffff948168fbcc80 port_id=0x550200 scsi_id=0. qedf_flush_active_ios:1708]:3: Locking flush mutex. qedf_flush_active_ios:1758]:3: Not outstanding, xid=0xaaf, cmd_type=3 refcount=1. qedf_flush_active_ios:1896]:3: Flushed 0x16 I/Os, active=0x1. qedf_flush_active_ios:1901]:3: Flushed 0x16 I/Os, active=0x1 cnt=60. qedf_send_rrq:295]:3: Sending RRQ orig io = ffffb48b8f7d7158, orig_xid = 0xaaf qedf_initiate_els:37]:3: Sending ELS qedf_initiate_els:68]:3: initiate_els els_req = 0xffffb48b8f6d3098 cb_arg = ffff948fd5e4de80 xid = 4c6 qedf_init_mp_req:2172]:3: Entered. qedf_init_mp_task:727]:3: Initializing MP task for cmd_type=4 qedf_initiate_els:134]:3: Ringing doorbell for ELS req qedf_flush_active_ios:1901]:3: Flushed 0x16 I/Os, active=0x2 cnt=20. qedf_cmd_timeout:96]:3: ELS timeout, xid=0x4c6. qedf_rrq_compl:186]:3: Entered. qedf_rrq_compl:204]:3: rrq_compl: orig io = ffffb48b8f7d7158, orig xid = 0xaaf, rrq_xid = 0x4c6, refcount=1 qedf_flush_active_ios:1935]:3: Unlocking flush mutex. qedf_upload_connection:1579]:3: Uploading connection port_id=550200. We found an ABTS command for which CMD_OUTSTANDING was cleared (line 3). For this command, delayed send_rrq was queued, but would take 10 secs to execute. Adding capability to detect that (based on io_req->state that is being introduced), and attempt to cancel rrq_work. If we succeed, we drop the reference and free the io_req. If we cannot, then the els will get sent out and we will wait for 10 secs for it to complete. Signed-off-by: Shyam Sundar Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit f2c98af4a27ddd93c7fe1490a62feb363c953085 Author: Saurav Kashyap Date: Tue Mar 26 00:38:54 2019 -0700 scsi: qedf: Check for tm_flags instead of cmd_type during cleanup cmd_type is over written to QEDF_CLEANUP during cleanup, so check for tm_flags. Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit feac47f507879f7b786fe4b1327fd09596518d7a Author: Shyam Sundar Date: Tue Mar 26 00:38:53 2019 -0700 scsi: qedf: Add a flag to help debugging io_req which could not be cleaned - The flag will help in to figure out if io_req is cleaned or not. Signed-off-by: Shyam Sundar Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 582a47274a578dce4629c3b2dd2c079ef367bd98 Author: Saurav Kashyap Date: Tue Mar 26 00:38:52 2019 -0700 scsi: qedf: Don't send ABTS for under run scenario - Command is already completed with underrun so no need to send ABTS. Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit ff543e2886f0574300c1f8b78c1a1da3f988712d Author: Shyam Sundar Date: Tue Mar 26 00:38:51 2019 -0700 scsi: qedf: Don't queue anything if upload is in progress - I/Os, aborts and tmf should not be queued if flush is in progress. Signed-off-by: Shyam Sundar Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit fc37ddce937bb245cc3490fbaa98e64f31bb6751 Author: Chad Dupuis Date: Tue Mar 26 00:38:50 2019 -0700 scsi: qedf: Check both the FCF and fabric ID before servicing clear virtual link - Check proper values before servicing CVL. Signed-off-by: Chad Dupuis Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 56efc304b18cbfa4a2b355c0ae817f61acea38c4 Author: Hannes Reinecke Date: Tue Mar 26 00:38:49 2019 -0700 scsi: qedf: fc_rport_priv reference counting fixes The fc_rport_priv structure is reference counted, so we need to ensure that the reference is increased before accessing the structure. Signed-off-by: Hannes Reinecke Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 6f15d0c02950c75f85542031ccbf6a9725ca9925 Author: Chad Dupuis Date: Tue Mar 26 00:38:48 2019 -0700 scsi: qedf: Add missing return in qedf_scsi_done() On completions where we do not have a bad scsi_cmnd pointer we should return before the the label lest we do a double kref_put. Signed-off-by: Chad Dupuis Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit a66c6cd2a8ade6150364687f5872934a7e623fb2 Author: Chad Dupuis Date: Tue Mar 26 00:38:47 2019 -0700 scsi: qedf: Wait for upload and link down processing during soft ctx reset - Wait for all the connections to get uploaded. Signed-off-by: Chad Dupuis Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 627cc7dd73f6aa3025398507c729b97fb19c270b Author: Chad Dupuis Date: Tue Mar 26 00:38:46 2019 -0700 scsi: qedf: Add additional checks for io_req->sc_cmd validity - Check the validity of various pointers before processing. Signed-off-by: Chad Dupuis Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 78a8ab3cc0f95a66c8fb2429030289103de173e7 Author: Hannes Reinecke Date: Tue Mar 26 00:38:45 2019 -0700 scsi: qedf: fixup bit operations test_bit() is atomic, test_bit() || test_bit() is not. So protect consecutive bit tests with a lock to avoid races. Signed-off-by: Hannes Reinecke Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 6d1368e8f987dd4bb1be6506d5416cb90b4ecf7a Author: Hannes Reinecke Date: Tue Mar 26 00:38:44 2019 -0700 scsi: qedf: fixup locking in qedf_restart_rport() fc_rport_create() needs to be called with disc_mutex held. And we should re-assign the 'rdata' pointer in case it got changed. Signed-off-by: Hannes Reinecke Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 4262d35c32c652344b6784cad51ec5a0e2e5258b Author: Hannes Reinecke Date: Tue Mar 26 00:38:43 2019 -0700 scsi: qedf: missing kref_put in qedf_xmit() qedf_xmit() calls fc_rport_lookup(), but discards the returned rdata structure almost immediately without decreasing the refcount. This leads to a refcount leak and the rdata never to be freed. Signed-off-by: Hannes Reinecke Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 76dbf4ff068c730bf6927193a481b692e87f9f3e Author: Saurav Kashyap Date: Tue Mar 26 00:38:42 2019 -0700 scsi: qedf: Check for link state before processing LL2 packets and send fipvlan retries - Check if link is UP before sending and processing any packets on wire. Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 0cbd0075390db67324cfd33a50fa4998b605a085 Author: Chad Dupuis Date: Tue Mar 26 00:38:41 2019 -0700 scsi: qedf: Add missing fc_disc_init call after allocating lport When receiving an unsolicited frame we could crash on a list traversal in fc_rport_lookup while searching the rport which is associated with our lport. Initialize the lport's discovery node after allocating the lport in __qedf_probe(). Signed-off-by: Chad Dupuis Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 90ccf7579873f498ea1254c12044477056692432 Author: Andrew Vasquez Date: Tue Mar 26 00:38:40 2019 -0700 scsi: qedf: Correct the memory barriers in qedf_ring_doorbell - Correct memory barriers to make sure all cmnds are flushed. Signed-off-by: Andrew Vasquez Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 96b1765a099b3b38d5a77796c45ee11a6ea6bf84 Author: Chad Dupuis Date: Tue Mar 26 00:38:39 2019 -0700 scsi: qedf: Use a separate completion for cleanup commands - If a TMF and cleanup are issued at the same time they could cause a call trace if issued against the same xid as the io_req->tm_done completion is used for both. - Set and clear cleanup bit in cleanup routine. Signed-off-by: Chad Dupuis Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 69ef2c692510d5154c613569caeeed3c74806231 Author: Saurav Kashyap Date: Tue Mar 26 00:38:38 2019 -0700 scsi: qedf: Modify abort and tmf handler to handle edge condition and flush An I/O can be in any state when flush is called, it can be in abort, waiting for abort, RRQ send and waiting or TMF send. - HZ can be different on different architecture, correctly set abort timeout value. - Flush can complete the I/Os prematurely, handle refcount for aborted I/Os and for which RRQ is pending. - Differentiate LUN/TARGET reset, as cleanup needs to be send to firmware accordingly. - Add flush mutex to sync cleanup call from abort and flush routine. - Clear abort/outstanding bit on timeout. Signed-off-by: Shyam Sundar Signed-off-by: Chad Dupuis Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 5d5e55659b375a39a42dad988869cd9966d20255 Author: Shyam Sundar Date: Tue Mar 26 00:38:37 2019 -0700 scsi: qedf: Modify flush routine to handle all I/Os and TMF The purpose of flush routine is to cleanup I/Os to the firmware and complete them to scsi middle layer. This routine is invoked before connection is uploaded because of rport going away. - Don't process any I/Os, aborts, TMFs coming when flush in progress. - Add flags to handle cleanup and release of I/Os because flush can prematurely complete I/Os. - Original command can get completed to driver when cleanup for same is posted to firmware, handle this condition. - Modify flush to handle I/Os in all the states like abort, TMF, RRQ and timeouts. Signed-off-by: Shyam Sundar Signed-off-by: Chad Dupuis Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 3e2c11b3fb7a237683f9405f14482a6f089b7e37 Author: Chad Dupuis Date: Tue Mar 26 00:38:36 2019 -0700 scsi: qedf: Simplify s/g list mapping When mapping the pages from a scatter/gather list from the SCSI layer we only need to follow these rules: - Max SGEs for each I/O request is 256 - No size limit on each SGE - No need to split OS provided SGEs to 4K before sending to firmware. - Slow SGE is applicable only when: - There are > 8 SGEs and any middle SGE is less than a page size (4K) Make necessary changes so that driver follows these rules. Applicable only for Write requests (not for Read requests). No need to check SGE address alignment requirements (first, middle or last) before declaring slow SGE. Signed-off-by: Chad Dupuis Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit c5e06ba2f76809ad1492fdad312e81335df46bc5 Author: Chad Dupuis Date: Tue Mar 26 00:38:35 2019 -0700 scsi: qedf: Add missing return in qedf_post_io_req() in the fcport offload check Fixes the following crash as the return was missing from the check if an fcport is offloaded. If we hit this code we continue to try to post an invalid task which can lead to the crash: [30259.616411] [0000:61:00.3]:[qedf_post_io_req:989]:3: Session not offloaded yet. [30259.616413] [0000:61:00.3]:[qedf_upload_connection:1340]:3: Uploading connection port_id=490020. [30259.623769] BUG: unable to handle kernel NULL pointer dereference at 0000000000000198 [30259.631645] IP: [] qedf_init_task.isra.16+0x3d/0x450 [qedf] [30259.638816] PGD 0 [30259.640841] Oops: 0000 [#1] SMP [30259.644098] Modules linked in: fuse xt_CHECKSUM iptable_mangle ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat nf_nat_ipv4 nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack ipt_REJECT nf_reject_ipv4 tun bridge stp llc ebtable_filter ebtables devlink ip6table_filter ip6_tables iptable_filter vfat fat ib_isert iscsi_target_mod ib_srpt target_core_mod ib_srp scsi_transport_srp ib_ipoib ib_ucm ib_umad dm_service_time skx_edac intel_powerclamp coretemp intel_rapl iosf_mbi kvm_intel kvm irqbypass crc32_pclmul ghash_clmulni_intel aesni_intel rpcrdma sunrpc rdma_ucm ib_uverbs lrw gf128mul ib_iser rdma_cm iw_cm ib_cm libiscsi scsi_transport_iscsi qedr(OE) glue_helper ablk_helper cryptd ib_core dm_round_robin joydev pcspkr ipmi_ssif ses enclosure ipmi_si ipmi_devintf ipmi_msghandler mei_me [30259.715529] mei sg hpilo hpwdt shpchp wmi lpc_ich acpi_power_meter dm_multipath ip_tables xfs libcrc32c sd_mod crc_t10dif crct10dif_generic uas usb_storage mgag200 qedf(OE) i2c_algo_bit libfcoe drm_kms_helper libfc syscopyarea sysfillrect scsi_transport_fc qede(OE) sysimgblt fb_sys_fops ptp ttm pps_core drm qed(OE) smartpqi crct10dif_pclmul crct10dif_common crc32c_intel i2c_core scsi_transport_sas scsi_tgt dm_mirror dm_region_hash dm_log dm_mod [30259.754237] CPU: 9 PID: 977 Comm: kdmwork-253:7 Kdump: loaded Tainted: G W OE ------------ 3.10.0-862.el7.x86_64 #1 [30259.765664] Hardware name: HPE Synergy 480 Gen10/Synergy 480 Gen10 Compute Module, BIOS I42 04/04/2018 [30259.775000] task: ffff8c801efd0000 ti: ffff8c801efd8000 task.ti: ffff8c801efd8000 [30259.782505] RIP: 0010:[] [] qedf_init_task.isra.16+0x3d/0x450 [qedf] [30259.792116] RSP: 0018:ffff8c801efdbbb0 EFLAGS: 00010046 [30259.797444] RAX: 0000000000000000 RBX: ffffa7f1450948d8 RCX: ffff8c7fe5bc40c8 [30259.804600] RDX: ffff8c800715b300 RSI: ffffa7f1450948d8 RDI: ffff8c80169c2480 [30259.811755] RBP: ffff8c801efdbc30 R08: 00000000000000ae R09: ffff8c800a314540 [30259.818911] R10: ffff8c7fe5bc40c8 R11: ffff8c801efdb8ae R12: 0000000000000000 [30259.826068] R13: ffff8c800715b300 R14: ffff8c80169c2480 R15: ffff8c8005da28e0 [30259.833223] FS: 0000000000000000(0000) GS:ffff8c803f840000(0000) knlGS:0000000000000000 [30259.841338] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [30259.847100] CR2: 0000000000000198 CR3: 000000081242e000 CR4: 00000000007607e0 [30259.854256] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [30259.861412] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [30259.868568] PKRU: 00000000 [30259.871278] Call Trace: [30259.873737] [] qedf_post_io_req+0x148/0x680 [qedf] [30259.880201] [] qedf_queuecommand+0x1f0/0x240 [qedf] [30259.886749] [] scsi_dispatch_cmd+0xb0/0x240 [30259.892600] [] scsi_request_fn+0x4cc/0x680 [30259.898364] [] __blk_run_queue+0x39/0x50 [30259.903954] [] __elv_add_request+0xd3/0x260 [30259.909805] [] blk_insert_cloned_request+0xf0/0x1b0 [30259.916358] [] map_request+0x142/0x220 [dm_mod] [30259.922560] [] map_tio_request+0x16/0x40 [dm_mod] [30259.928932] [] kthread_worker_fn+0x85/0x180 [30259.934782] [] ? kthread_stop+0xf0/0xf0 [30259.940284] [] kthread+0xd1/0xe0 [30259.945176] [] ? insert_kthread_work+0x40/0x40 [30259.951290] [] ret_from_fork_nospec_begin+0x7/0x21 [30259.957750] [] ? insert_kthread_work+0x40/0x40 [30259.963860] Code: fe 41 55 49 89 d5 41 54 53 48 89 f3 48 83 ec 58 4c 8b 67 28 4c 8b 4e 18 65 48 8b 04 25 28 00 00 00 48 89 45 d0 31 c0 4c 8b 7e 58 <49> 8b 84 24 98 01 00 00 48 8b 00 f6 80 31 01 00 00 10 0f 85 0b [30259.983372] RIP [] qedf_init_task.isra.16+0x3d/0x450 [qedf] [30259.990630] RSP [30259.994127] CR2: 0000000000000198 Signed-off-by: Chad Dupuis Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 650ce64c9eada94bd40c6a71c77b19d6f38a03a1 Author: Chad Dupuis Date: Tue Mar 26 00:38:34 2019 -0700 scsi: qedf: Correct xid range overlap between offloaded requests and libfc requests There is currently an overlap where exchange IDs between what is used for offloaded commands and by libfc for ELS commands. Correct this so that exchange ID range is: Offloaded requests: 0 to 0xfff libfc requests: 0x1000 to 0xfffe Signed-off-by: Chad Dupuis Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit f1c43590365bac054d753d808dbbd207d09e088d Author: Chad Dupuis Date: Tue Mar 26 00:38:33 2019 -0700 scsi: qedf: Do not retry ELS request if qedf_alloc_cmd fails If we cannot allocate an ELS middlepath request, simply fail instead of trying to delay and then reallocate. This delay logic is causing soft lockup messages: NMI watchdog: BUG: soft lockup - CPU#2 stuck for 22s! [kworker/2:1:7639] Modules linked in: xt_CHECKSUM ipt_MASQUERADE nf_nat_masquerade_ipv4 tun devlink ip6t_rpfilter ipt_REJECT nf_reject_ipv4 ip6t_REJECT nf_reject_ipv6 xt_conntrack ip_set nfnetlink ebtable_nat ebtable_broute bridge stp llc ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_security ip6table_raw iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_security iptable_raw ebtable_filter ebtables ip6table_filter ip6_tables iptable_filter dm_service_time vfat fat rpcrdma sunrpc ib_isert iscsi_target_mod ib_iser libiscsi scsi_transport_iscsi ib_srpt target_core_mod ib_srp scsi_transport_srp ib_ipoib rdma_ucm ib_ucm ib_uverbs ib_umad rdma_cm ib_cm iw_cm sb_edac intel_powerclamp coretemp intel_rapl iosf_mbi kvm_intel kvm irqbypass crc32_pclmul ghash_clmulni_intel aesni_intel lrw gf128mul glue_helper ablk_helper cryptd iTCO_wdt iTCO_vendor_support qedr(OE) ib_core joydev ipmi_ssif pcspkr hpilo hpwdt sg ipmi_si ipmi_devintf ipmi_msghandler ioatdma shpchp lpc_ich wmi dca acpi_power_meter dm_multipath ip_tables xfs libcrc32c sd_mod crc_t10dif crct10dif_generic qedf(OE) libfcoe mgag200 libfc i2c_algo_bit drm_kms_helper scsi_transport_fc qede(OE) syscopyarea sysfillrect sysimgblt fb_sys_fops ttm qed(OE) drm crct10dif_pclmul e1000e crct10dif_common crc32c_intel scsi_tgt hpsa i2c_core ptp scsi_transport_sas pps_core dm_mirror dm_region_hash dm_log dm_mod CPU: 2 PID: 7639 Comm: kworker/2:1 Kdump: loaded Tainted: G OEL ------------ 3.10.0-861.el7.x86_64 #1 Hardware name: HP ProLiant DL580 Gen9/ProLiant DL580 Gen9, BIOS U17 07/21/2016 Workqueue: qedf_2_dpc qedf_handle_rrq [qedf] task: ffff959edd628fd0 ti: ffff959ed6f08000 task.ti: ffff959ed6f08000 RIP: 0010:[] [] delay_tsc+0x3a/0x60 RSP: 0018:ffff959ed6f0bd30 EFLAGS: 00000246 RAX: 000000008ef5f791 RBX: 5f646d635f666465 RCX: 0000025b8ededa2f RDX: 000000000000025b RSI: 0000000000000002 RDI: 0000000000217d1e RBP: ffff959ed6f0bd30 R08: ffffffffc079aae8 R09: 0000000000000200 R10: ffffffffc07952c6 R11: 0000000000000000 R12: 6c6c615f66646571 R13: ffff959ed6f0bcc8 R14: ffff959ed6f0bd08 R15: ffff959e00000028 FS: 0000000000000000(0000) GS:ffff959eff480000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f4117fa1eb0 CR3: 0000002039e66000 CR4: 00000000003607e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: [] __const_udelay+0x2d/0x30 [] qedf_initiate_els+0x13a/0x450 [qedf] [] ? qedf_srr_compl+0x2a0/0x2a0 [qedf] [] qedf_send_rrq+0x127/0x230 [qedf] [] qedf_handle_rrq+0x15/0x20 [qedf] [] process_one_work+0x17f/0x440 [] worker_thread+0x126/0x3c0 [] ? manage_workers.isra.24+0x2a0/0x2a0 [] kthread+0xd1/0xe0 [] ? insert_kthread_work+0x40/0x40 [] ret_from_fork_nospec_begin+0x21/0x21 [] ? insert_kthread_work+0x40/0x40 Signed-off-by: Chad Dupuis Signed-off-by: Saurav Kashyap Signed-off-by: Martin K. Petersen commit 155f425025fd8c7cd47170fc832c8d40f3da5fe5 Author: Stanley Chu Date: Wed Mar 27 14:27:05 2019 +0800 scsi: MAINTAINERS: Add maintainer for MediaTek UFS driver Signed-off-by: Stanley Chu Signed-off-by: Martin K. Petersen commit 46333cebe77883ff38be59c3e7200c5a5145d6ee Author: Nathan Chancellor Date: Tue Mar 26 15:04:46 2019 -0700 scsi: qla2xxx: Simplify conditional check again Clang warns when it sees a logical not on the left side of a conditional statement because it thinks the logical not should be applied to the whole statement, not just the left side: drivers/scsi/qla2xxx/qla_nx.c:3703:7: warning: logical not is only applied to the left hand side of this comparison [-Wlogical-not-parentheses] This particular instance was already fixed by commit 0bfe7d3cae58 ("scsi: qla2xxx: Simplify conditional check") upstream but it was reintroduced by commit 3695310e37b4 ("scsi: qla2xxx: Update flash read/write routine") in the 5.2/scsi-queue. Fixes: 3695310e37b4 ("scsi: qla2xxx: Update flash read/write routine") Link: https://github.com/ClangBuiltLinux/linux/issues/80 Signed-off-by: Nathan Chancellor Reviewed-by: Nick Desaulniers Signed-off-by: Martin K. Petersen commit d16ece577bf2cee7f94bab75a0d967bcb89dd2a7 Author: Bart Van Assche Date: Wed Mar 20 13:09:20 2019 -0700 scsi: sd: Inline sd_probe_part2() Make sd_probe() easier to read by inlining sd_probe_part2(). This patch does not change any functionality. Cc: Lee Duncan Cc: Hannes Reinecke Cc: Luis Chamberlain Cc: Johannes Thumshirn Cc: Christoph Hellwig Cc: Greg Kroah-Hartman Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit 21e6ba3f0e0257cce1a226c1f15e0a8ba4338ca3 Author: Bart Van Assche Date: Wed Mar 20 13:09:19 2019 -0700 scsi: sd: Rely on the driver core for asynchronous probing As explained during the 2018 LSF/MM session about increasing SCSI disk probing concurrency, the problems with the current probing approach are as follows: - The driver core is unaware of asynchronous SCSI LUN probing. wait_for_device_probe() waits for all asynchronous probes except asynchronous SCSI disk probes. - There is unnecessary serialization between sd_probe() and sd_remove(). This can lead to a deadlock. Hence this patch that modifies the sd driver such that it uses the driver core framework for asynchronous probing. The async domains and get_device()/put_device() pairs that became superfluous due to this change are removed. This patch does not affect the time needed for loading the scsi_debug kernel module with parameters delay=0 and max_luns=256. This patch depends on commit ef0ff68351be ("driver core: Probe devices asynchronously instead of the driver") that went upstream in kernel version v5.1-rc1. Cc: Lee Duncan Cc: Hannes Reinecke Cc: Luis Chamberlain Cc: Johannes Thumshirn Cc: Christoph Hellwig Cc: Greg Kroah-Hartman Cc: Dan Williams Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit ea9006dfda65b7dc369aaa2359b3dedfc1bb08b6 Author: Colin Ian King Date: Wed Mar 20 16:50:00 2019 +0000 scsi: mpt3sas: fix indentation issue There are a couple of statements that are incorrectly indented, fix these. Signed-off-by: Colin Ian King Signed-off-by: Martin K. Petersen commit 8378573353728a02602d6f956a3df48db0505c65 Author: Colin Ian King Date: Sat Mar 16 22:57:09 2019 +0000 scsi: libcxgbi: remove uninitialized variable len The variable len is not being inintialized and the uninitialized value is being returned. However, this return path is never reached because the default case in the switch statement returns -ENOSYS. Clean up the code by replacing the return -ENOSYS with a break for the default case and returning -ENOSYS at the end of the function. This allows len to be removed. Signed-off-by: Colin Ian King Signed-off-by: Martin K. Petersen commit 356d71e00d278d865f8c7f68adebd6ce4698a7e2 Merge: df453700e8d8 1a9df9e29c2a Author: David S. Miller Date: Wed Mar 27 17:37:58 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net commit 82129697df9d90afd22736acd89d24f98bde2522 Author: tangwenji Date: Wed Mar 27 21:59:06 2019 +0800 scsi: target: alua: fix the tg_pt_gps_count Reducing the count should be alua_tg_pt_gps_count instead of alua_tg_pt_gps_counter when free alua group. Signed-off-by: tangwenji Reviewed-by: Mike Christie Signed-off-by: Martin K. Petersen commit a1aa08a01f734d48a8f76b12aca9f4e4adae7649 Author: Richard Guy Briggs Date: Tue Mar 26 14:49:20 2019 -0400 audit: link integrity evm_write_xattrs record to syscall event In commit fa516b66a1bf ("EVM: Allow runtime modification of the set of verified xattrs"), the call to audit_log_start() is missing a context to link it to an audit event. Since this event is in user context, add the process' syscall context to the record. In addition, the orphaned keyword "locked" appears in the record. Normalize this by changing it to logging the locking string "." as any other user input in the "xattr=" field. Please see the github issue https://github.com/linux-audit/audit-kernel/issues/109 Signed-off-by: Richard Guy Briggs Acked-by: Mimi Zohar Signed-off-by: Paul Moore commit df453700e8d81b1bdafdf684365ee2b9431fb702 Author: Eric Dumazet Date: Wed Mar 27 12:40:33 2019 -0700 inet: switch IP ID generator to siphash According to Amit Klein and Benny Pinkas, IP ID generation is too weak and might be used by attackers. Even with recent net_hash_mix() fix (netns: provide pure entropy for net_hash_mix()) having 64bit key and Jenkins hash is risky. It is time to switch to siphash and its 128bit keys. Signed-off-by: Eric Dumazet Reported-by: Amit Klein Reported-by: Benny Pinkas Signed-off-by: David S. Miller commit 180a8c3d5dad5862b2f19727b363069bfecb26d8 Author: Colin Ian King Date: Wed Mar 27 16:15:20 2019 +0000 net: phy: mdio-bcm-unimac: remove redundant !timeout check The check for zero timeout is always true at the end of the proceeding while loop; the only other exit path in the loop is if the unimac MDIO is not busy. Remove the redundant zero timeout check and always return -ETIMEDOUT on this timeout return path. Signed-off-by: Colin Ian King Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 4f661542a40217713f2cee0bb6678fbb30d9d367 Author: Eric Dumazet Date: Tue Mar 26 08:34:55 2019 -0700 tcp: fix zerocopy and notsent_lowat issues My recent patch had at least three problems : 1) TX zerocopy wants notification when skb is acknowledged, thus we need to call skb_zcopy_clear() if the skb is cached into sk->sk_tx_skb_cache 2) Some applications might expect precise EPOLLOUT notifications, so we need to update sk->sk_wmem_queued and call sk_mem_uncharge() from sk_wmem_free_skb() in all cases. The SOCK_QUEUE_SHRUNK flag must also be set. 3) Reuse of saved skb should have used skb_cloned() instead of simply checking if the fast clone has been freed. Fixes: 472c2e07eef0 ("tcp: add one skb cache for tx") Signed-off-by: Eric Dumazet Cc: Willem de Bruijn Cc: Soheil Hassas Yeganeh Acked-by: Soheil Hassas Yeganeh Tested-by: Holger Hoffstätte Signed-off-by: David S. Miller commit 4d5ec89fc8d14dcdab7214a0c13a1c7321dc6ea9 Author: Numan Siddique Date: Tue Mar 26 06:13:46 2019 +0530 net: openvswitch: Add a new action check_pkt_len This patch adds a new action - 'check_pkt_len' which checks the packet length and executes a set of actions if the packet length is greater than the specified length or executes another set of actions if the packet length is lesser or equal to. This action takes below nlattrs * OVS_CHECK_PKT_LEN_ATTR_PKT_LEN - 'pkt_len' to check for * OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_GREATER - Nested actions to apply if the packet length is greater than the specified 'pkt_len' * OVS_CHECK_PKT_LEN_ATTR_ACTIONS_IF_LESS_EQUAL - Nested actions to apply if the packet length is lesser or equal to the specified 'pkt_len'. The main use case for adding this action is to solve the packet drops because of MTU mismatch in OVN virtual networking solution. When a VM (which belongs to a logical switch of OVN) sends a packet destined to go via the gateway router and if the nic which provides external connectivity, has a lesser MTU, OVS drops the packet if the packet length is greater than this MTU. With the help of this action, OVN will check the packet length and if it is greater than the MTU size, it will generate an ICMP packet (type 3, code 4) and includes the next hop mtu in it so that the sender can fragment the packets. Reported-at: https://mail.openvswitch.org/pipermail/ovs-discuss/2018-July/047039.html Suggested-by: Ben Pfaff Signed-off-by: Numan Siddique CC: Gregory Rose CC: Pravin B Shelar Acked-by: Pravin B Shelar Tested-by: Greg Rose Reviewed-by: Greg Rose Signed-off-by: David S. Miller commit d7aa033831b3a51ad0c87d706e160e00271761a8 Merge: 7b7ed885aff2 69f42be8af71 Author: David S. Miller Date: Wed Mar 27 13:51:49 2019 -0700 Merge branch 'ethtool-add-support-for-Fast-Link-Down-as-new-PHY-tunable' Heiner Kallweit says: ==================== ethtool: add support for Fast Link Down as new PHY tunable This adds support for Fast Link Down as new PHY tunable. Fast Link Down reduces the time until a link down event is reported for 1000BaseT. According to the standard it's 750ms what is too long for several use cases. This is the kernel-related series, the ethtool userspace extension I'd submit once the kernel part has been applied. v2: - add describing comment in patch 1 ==================== Signed-off-by: David S. Miller commit 69f42be8af7158e6f10eecde20036cb411bd78f2 Author: Heiner Kallweit Date: Mon Mar 25 19:35:41 2019 +0100 net: phy: marvell: add PHY tunable fast link down support for 88E1540 1000BaseT standard requires that a link is reported as down earliest after 750ms. Several use case however require a much faster detecion of a broken link. Fast Link Down supports this by intentionally violating a the standard. This patch exposes the Fast Link Down feature of 88E1540 and 88E6390. These PHY's can be found as internal PHY's in several switches: 88E6352, 88E6240, 88E6176, 88E6172, and 88E6390(X). Fast Link Down and EEE are mutually exclusive. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 3aeb0803f7ea11ff2fc478f7d58f2b8e713af380 Author: Heiner Kallweit Date: Mon Mar 25 19:34:58 2019 +0100 ethtool: add PHY Fast Link Down support This adds support for Fast Link Down as new PHY tunable. Fast Link Down reduces the time until a link down event is reported for 1000BaseT. According to the standard it's 750ms what is too long for several use cases. v2: - add comment describing the constants Signed-off-by: Heiner Kallweit Reviewed-by: Florian Fainelli Reviewed-by: Michal Kubecek Signed-off-by: David S. Miller commit 7b7ed885aff2eede24d641c3b042ebcf7517a5c5 Author: Bart Van Assche Date: Mon Mar 25 09:17:23 2019 -0700 net/core: Allow the compiler to verify declaration and definition consistency Instead of declaring a function in a .c file, declare it in a header file and include that header file from the source files that define and that use the function. That allows the compiler to verify consistency of declaration and definition. See also commit 52267790ef52 ("sock: add MSG_ZEROCOPY") # v4.14. Cc: Willem de Bruijn Signed-off-by: Bart Van Assche Signed-off-by: David S. Miller commit a986967eb8e991481d688b74266d817e5341916a Author: Bart Van Assche Date: Mon Mar 25 09:17:22 2019 -0700 net/core: Fix rtnetlink kernel-doc headers This patch avoids that the following warnings are reported when building with W=1: net/core/rtnetlink.c:3580: warning: Function parameter or member 'ndm' not described in 'ndo_dflt_fdb_add' net/core/rtnetlink.c:3580: warning: Function parameter or member 'tb' not described in 'ndo_dflt_fdb_add' net/core/rtnetlink.c:3580: warning: Function parameter or member 'dev' not described in 'ndo_dflt_fdb_add' net/core/rtnetlink.c:3580: warning: Function parameter or member 'addr' not described in 'ndo_dflt_fdb_add' net/core/rtnetlink.c:3580: warning: Function parameter or member 'vid' not described in 'ndo_dflt_fdb_add' net/core/rtnetlink.c:3580: warning: Function parameter or member 'flags' not described in 'ndo_dflt_fdb_add' net/core/rtnetlink.c:3718: warning: Function parameter or member 'ndm' not described in 'ndo_dflt_fdb_del' net/core/rtnetlink.c:3718: warning: Function parameter or member 'tb' not described in 'ndo_dflt_fdb_del' net/core/rtnetlink.c:3718: warning: Function parameter or member 'dev' not described in 'ndo_dflt_fdb_del' net/core/rtnetlink.c:3718: warning: Function parameter or member 'addr' not described in 'ndo_dflt_fdb_del' net/core/rtnetlink.c:3718: warning: Function parameter or member 'vid' not described in 'ndo_dflt_fdb_del' net/core/rtnetlink.c:3861: warning: Function parameter or member 'skb' not described in 'ndo_dflt_fdb_dump' net/core/rtnetlink.c:3861: warning: Function parameter or member 'cb' not described in 'ndo_dflt_fdb_dump' net/core/rtnetlink.c:3861: warning: Function parameter or member 'filter_dev' not described in 'ndo_dflt_fdb_dump' net/core/rtnetlink.c:3861: warning: Function parameter or member 'idx' not described in 'ndo_dflt_fdb_dump' net/core/rtnetlink.c:3861: warning: Excess function parameter 'nlh' description in 'ndo_dflt_fdb_dump' Cc: Hubert Sokolowski Signed-off-by: Bart Van Assche Signed-off-by: David S. Miller commit d79b3bafabc27ce32ecd71d9133bee39522d3f51 Author: Bart Van Assche Date: Mon Mar 25 09:17:21 2019 -0700 net/core: Document __skb_flow_dissect() flags argument This patch avoids that the following warning is reported when building with W=1: warning: Function parameter or member 'flags' not described in '__skb_flow_dissect' Cc: Tom Herbert Fixes: cd79a2382aa5 ("flow_dissector: Add flags argument to skb_flow_dissector functions") # v4.3. Signed-off-by: Bart Van Assche Signed-off-by: David S. Miller commit b3c0fd61e6ab0bf7381b31cb4edef76e2ec2f2bf Author: Bart Van Assche Date: Mon Mar 25 09:17:20 2019 -0700 net/core: Document all dev_ioctl() arguments This patch avoids that the following warnings are reported when building with W=1: net/core/dev_ioctl.c:378: warning: Function parameter or member 'ifr' not described in 'dev_ioctl' net/core/dev_ioctl.c:378: warning: Function parameter or member 'need_copyout' not described in 'dev_ioctl' net/core/dev_ioctl.c:378: warning: Excess function parameter 'arg' description in 'dev_ioctl' Cc: Al Viro Fixes: 44c02a2c3dc5 ("dev_ioctl(): move copyin/copyout to callers") # v4.16. Signed-off-by: Bart Van Assche Signed-off-by: David S. Miller commit 37f3c421e8f09eeee3b78991af4fe13c126616d9 Author: Bart Van Assche Date: Mon Mar 25 09:17:19 2019 -0700 net/core: Document reuseport_add_sock() bind_inany argument This patch avoids that the following warning is reported when building with W=1: warning: Function parameter or member 'bind_inany' not described in 'reuseport_add_sock' Cc: Martin KaFai Lau Fixes: 2dbb9b9e6df6 ("bpf: Introduce BPF_PROG_TYPE_SK_REUSEPORT") # v4.19. Signed-off-by: Bart Van Assche Signed-off-by: David S. Miller commit 863d1a8d5523d345186277014cebe861f2782130 Author: Heiner Kallweit Date: Sat Mar 23 19:45:13 2019 +0100 net: dsa: mv88e6xxx: remove unneeded cmode initialization This partially reverts ed8fe20205ac ("net: dsa: mv88e6xxx: prevent interrupt storm caused by mv88e6390x_port_set_cmode"). I missed that chip->ports[].cmode is overwritten anyway by the cmode caching in mv88e6xxx_setup(). Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 32705592f944f0f7a3ec58ffd562d828b24f659a Author: Sudarsana Reddy Kalluru Date: Wed Mar 27 04:40:43 2019 -0700 bnx2x: Utilize FW 7.13.11.0. Commit 8fcf0ec44c11f "bnx2x: Add FW 7.13.11.0" added said .bin FW to linux-firmware; This patch incorporates the FW in the bnx2x driver. This introduces few FW fixes and the support for Tx VLAN filtering. Please consider applying it to 'net-next' tree. Signed-off-by: Sudarsana Reddy Kalluru Signed-off-by: Ariel Elior Signed-off-by: David S. Miller commit 1713cb37bf671e5d98919536941a8b56337874fd Author: Kristian Evensen Date: Wed Mar 27 11:16:03 2019 +0100 fou: Support binding FoU socket An FoU socket is currently bound to the wildcard-address. While this works fine, there are several use-cases where the use of the wildcard-address is not desirable. For example, I use FoU on some multi-homed servers and would like to use FoU on only one of the interfaces. This commit adds support for binding FoU sockets to a given source address/interface, as well as connecting the socket to a given destination address/port. udp_tunnel already provides the required infrastructure, so most of the code added is for exposing and setting the different attributes (local address, peer address, etc.). The lookups performed when we add, delete or get an FoU-socket has also been updated to compare all the attributes a user can set. Since the comparison now involves several elements, I have added a separate comparison-function instead of open-coding. In order to test the code and ensure that the new comparison code works correctly, I started by creating a wildcard socket bound to port 1234 on my machine. I then tried to create a non-wildcarded socket bound to the same port, as well as fetching and deleting the socket (including source address, peer address or interface index in the netlink request). Both the create, fetch and delete request failed. Deleting/fetching the socket was only successful when my netlink request attributes matched those used to create the socket. I then repeated the tests, but with a socket bound to a local ip address, a socket bound to a local address + interface, and a bound socket that was also «connected» to a peer. Add only worked when no socket with the matching source address/interface (or wildcard) existed, while fetch/delete was only successful when all attributes matched. In addition to testing that the new code work, I also checked that the current behavior is kept. If none of the new attributes are provided, then an FoU-socket is configured as before (i.e., wildcarded). If any of the new attributes are provided, the FoU-socket is configured as expected. v1->v2: * Fixed building with IPv6 disabled (kbuild). * Fixed a return type warning and make the ugly comparison function more readable (kbuild). * Describe more in detail what has been tested (thanks David Miller). * Make peer port required if peer address is specified. Signed-off-by: Kristian Evensen Signed-off-by: David S. Miller commit 1755ecedc485e8a898ac27b90be664784ddb6b57 Author: Paul E. McKenney Date: Wed Jan 9 14:50:29 2019 -0800 doc/kprobes: Update obsolete RCU update functions The RCU flavors have been consolidated, so this commit replaces mentions of the now-obsolete synchronize_sched() function with synchronize_rcu(). Signed-off-by: Paul E. McKenney Cc: "Naveen N. Rao" Cc: Anil S Keshavamurthy Cc: "David S. Miller" Cc: Jonathan Corbet Cc: Acked-by: Masami Hiramatsu commit 08304d714638dff08bf001e92ce56411e2e902c7 Author: Zhu Yanjun Date: Wed Mar 27 05:50:47 2019 -0400 IB/rxe: Replace av->network_type with skb->protocol In the function rxe_init_packet, based on av->network_type, skb->protocol is set to ipv4 or ipv6. The functions rxe_prepare and rxe_send are called after the functin rxe_init_packet. So in these functions, av->network_type can be replaced with skb->protocol. The functions are in the xmit fast path. So with skb->protocol, the performance will be better. Signed-off-by: Zhu Yanjun Signed-off-by: Jason Gunthorpe commit 0ac01febd4753809d7d4d785f71cac2abde6b1c3 Author: Ira Weiny Date: Tue Mar 19 14:11:49 2019 -0700 BPF: Add sample code for new ib_umad tracepoint Provide a count of class types for a summary of MAD packets. The example shows one way to filter the trace data based on management class. Signed-off-by: Ira Weiny Signed-off-by: Jason Gunthorpe commit 2ccfbb70c2773ab0f257319c7e3b1cefb766d82e Author: Ira Weiny Date: Tue Mar 19 14:11:48 2019 -0700 IB/MAD: Add SMP details to MAD tracing Decode more information from the packet and include it in the trace. Reviewed-by: "Ruhl, Michael J" Signed-off-by: Ira Weiny Signed-off-by: Jason Gunthorpe commit 056533192a9e04cac5ecd0ac683a1d659cb712ad Author: Ira Weiny Date: Tue Mar 19 14:11:47 2019 -0700 IB/UMAD: Add umad trace points Trace MADs going to/from user space. Suggested-by: Steven Rostedt (VMware) Signed-off-by: Ira Weiny Signed-off-by: Jason Gunthorpe commit 0e65bae205cbec92029ff7b3c3a14ec90456f7eb Author: Ira Weiny Date: Tue Mar 19 14:11:46 2019 -0700 IB/MAD: Add agent trace points Trace agent details when agents are [un]registered. In addition, report agent details on send/recv. Reviewed-by: "Ruhl, Michael J" Reviewed-by: Steven Rostedt (VMware) Signed-off-by: Ira Weiny Signed-off-by: Jason Gunthorpe commit 821bf1de45a1a084e2e11b1a2308777434194bfe Author: Ira Weiny Date: Tue Mar 19 14:11:45 2019 -0700 IB/MAD: Add recv path trace point Trace received MAD details. Reviewed-by: "Ruhl, Michael J" Reviewed-by: Steven Rostedt (VMware) Signed-off-by: Ira Weiny Signed-off-by: Jason Gunthorpe commit 4d60cad5db7fb450e64532afbbaba85af235fa5d Author: Ira Weiny Date: Tue Mar 19 14:11:44 2019 -0700 IB/MAD: Add send path trace points Use the standard Linux trace mechanism to trace MADs being sent. 4 trace points are added, when the MAD is posted to the qp, when the MAD is completed, if a MAD is resent, and when the MAD completes in error. Reviewed-by: "Ruhl, Michael J" Suggested-by: Steven Rostedt (VMware) Reviewed-by: Steven Rostedt (VMware) Signed-off-by: Ira Weiny Signed-off-by: Jason Gunthorpe commit 2dd0cf77c93f615810d1735e6bd1582b73a9ca94 Author: Potnuri Bharat Teja Date: Tue Mar 26 18:31:47 2019 +0530 iw_cxgb4: Update Maintainer details Remove Steve and add undersigned as maintainer for iw_cxgb4 drivers. Signed-off-by: Potnuri Bharat Teja Acked-by: Steve Wise Signed-off-by: Jason Gunthorpe commit ec8bf1942567bf0736314da9723e93bcc73c131f Author: Daniel Vetter Date: Wed Mar 27 13:58:19 2019 +0100 drm/fb-helper: Fixup fill_info cleanup I forgot the !CONFIG_FBDEV case. Also some kerneldoc needed more adjusting. Cc: Noralf Trønnes Cc: Alex Deucher Reported-by: kbuild test robot Reviewed-by: Noralf Trønnes Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190327125819.16478-1-daniel.vetter@ffwll.ch commit 6a1096611cc57ac7307a3121b5df12b07c01a2c6 Author: Yuval Shaia Date: Wed Mar 20 16:14:18 2019 +0200 RDMA/vmw_pvrdma: Skip zeroing device attrs Caller already clears props before calling query_device. Signed-off-by: Yuval Shaia Acked-by: Adit Ranadive Signed-off-by: Jason Gunthorpe commit d623dfd2836114507d647c9793a80d213d8bffe8 Author: Artemy Kovalyov Date: Tue Mar 19 11:24:39 2019 +0200 IB/mlx5: Compare only index part of a memory window rkey The InfiniBand Architecture Specification section 10.6.7.2.4 TYPE 2 MEMORY WINDOWS says that if the CI supports the Base Memory Management Extensions defined in this specification, the R_Key format for a Type 2 Memory Window must consist of: * 24 bit index in the most significant bits of the R_Key, which is owned by the CI, and * 8 bit key in the least significant bits of the R_Key, which is owned by the Consumer. This means that the kernel should compare only the index part of a R_Key to determine equality with another R_Key. Fixes: db570d7deafb ("IB/mlx5: Add ODP support to MW") Signed-off-by: Artemy Kovalyov Signed-off-by: Moni Shoua Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 1e5887b700ddbfa42365b5bf95dda5de11b76259 Author: Artemy Kovalyov Date: Tue Mar 19 11:24:37 2019 +0200 IB/mlx5: WQE dump jumps over first 16 bytes Move index increment after its is used or otherwise it will start the dump of the WQE from second WQE BB. Fixes: 34f4c9554d8b ("IB/mlx5: Use fragmented QP's buffer for in-kernel users") Signed-off-by: Artemy Kovalyov Signed-off-by: Moni Shoua Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit e95e52a1788d4a8af547261875c0fbae2e6e3028 Author: Leon Romanovsky Date: Tue Mar 19 11:10:09 2019 +0200 RDMA/hns: Limit scope of hns_roce_cmq_send() The forgotten static keyword causes to the following error to appear while building HNS driver. Declare hns_roce_cmq_send() to be static function to fix this warning. drivers/infiniband/hw/hns/hns_roce_hw_v2.c:1089:5: warning: no previous prototype for _hns_roce_cmq_send_ [-Wmissing-prototypes] int hns_roce_cmq_send(struct hns_roce_dev *hr_dev, Fixes: 6a04aed6afae ("RDMA/hns: Fix the chip hanging caused by sending mailbox&CMQ during reset") Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit eec7e2954df2d4fbe1687e9af4d06595de7f4a90 Merge: b0be25c5752e 64f4b9437f7c Author: David S. Miller Date: Wed Mar 27 11:19:13 2019 -0700 Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== 100GbE Intel Wired LAN Driver Updates 2019-03-26 This series contains more updates to the ice driver only. Jeremiah provides his first patch to the Linux kernel to clean up un-necessary newlines in driver log messages. Mitch updates the ice driver to use existing status codes in the iavf driver so that when errors occur, it will not report nonsensical results. Adds support for VF admin queue interrupts by programming the VPINT_MBX_CTL register array. Brett adds a check for a bit that we set while preparing for a reset, to ensure we are prepared to do a proper reset. Also implemented PCI error handling operations. Went through and audited the hot path with pahole and made modifications based on the results since 2 structures were taking up more space than necessary due to cache alignment issues. Fixed an issue where when flow control was disabled, the state of flow control was being displayed as "Unknown". Anirudh fixes adaptive interrupt moderation changes by adding code that was missed, that should have been added in the initial patch to add that support. Cleaned up a function prototype that was never implemented. Did additional code cleanup by removing unneeded braces and redundant code comments. Akeem fixes an issue that occurs when the VF is attempting to remove the default LAN/MAC address, which is programmed by the administrator by updating the error message to explicitly say that the VF cannot change the MAC programmed by the PF. Preethi fixes the driver to not fall into the error path when a added filter already exists, but instead continue to process the rest of the function and add appropriate checks after adding MAC filters. ==================== Signed-off-by: David S. Miller commit b0be25c5752e6389a1404c1587d8cb584be55b52 Merge: 5133a4a800fd c2d3d8eebe7c Author: David S. Miller Date: Wed Mar 27 11:10:58 2019 -0700 Merge branch 'net-mvpp2-Classifier-updates-and-cleanups' Maxime Chevallier says: ==================== net: mvpp2: Classifier updates and cleanups In preparation for the future addition of classification offload support, this series cleans-up the current code dealing with the classification engines. As of today, the classification code only deals with RSS, which is a very narrow use-case when considering all of the classifier's features. This lead to design and naming decisions that don't really stand when considering using more classification features. This series therefore includes quite a lot a renaming of functions and macros, and tries to make the naming schemes more consistent and the code more readable. The debugfs interface that allows reading the various Parsing and Classification engines has been cleaned-up and made more generic, allowing to read the Flow Table and C2 engine hit counters on a per-entry basis. The Classifier itself has been made more robust by introducing the lu_type field in classification lookups, that prevents false-positive matches in the future. We also initialise the various engine in a more extensive and less error-prone way by assining default values to all entries in the C2 and Flow table. This is a pretty big series considering it's mostly cleanup, but my goal is to make the future series that will contain new big features easier to review, focusing on the real logic. Besides the debugfs interface, this series doesn't intend to introduce any new features or change in behaviours. ==================== Signed-off-by: David S. Miller commit c2d3d8eebe7c78e3070838c3a81e8c7cc2828c9b Author: Maxime Chevallier Date: Wed Mar 27 09:44:22 2019 +0100 net: mvpp2: cls: Rework C2 engine macros The C2 classification engine has a 256 entry TCAM, used for ternary matches on an 8 byte Header Extracted Key. For now, we compute the various indices for classification and RSS that use this engine thanks to a set of macros. This commit mainly renames the macros used to make it clear that they should be used with the C2 engine, but also make use of the full 256 entries in the engine. For now, the C2 entries are only used for RSS. These entries are put at the end of the TCAM range, in case we want to add higher priority matches later on. Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit 693131db1d5f2c1d97a6eaa58cf291984737f63b Author: Maxime Chevallier Date: Wed Mar 27 09:44:21 2019 +0100 net: mvpp2: cls: Initialize lookup priorities for all entries in the flow When classifying a packet pertaining to a given flow, the classifier will issue multiple lookup commands until it finds one with the 'last' bit set. It expects all prorities to be assign continuously (although not necessarily in an ordered fashion) from 0 to the number of lookups. We can initialize this once, and make sure unused lookups are given an empty port map. This avoids having to maintain priorities and the information of which lookup is the last. Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit 8d2847d9462d82a822898f7afcb46f080f8dc392 Author: Maxime Chevallier Date: Wed Mar 27 09:44:20 2019 +0100 net: mvpp2: cls: Invalidate all C2 entries except the ones we use C2 TCAM entries can be invalidated to avoid unwanted matches. Make sure all entries are invalidated at init, then validate only the ones we use. Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit ff2f3cb6eb899c13dbc039f7c3e7b274c37cdc18 Author: Maxime Chevallier Date: Wed Mar 27 09:44:19 2019 +0100 net: mvpp2: cls: Rename the flow table macros The Flow Table dictates what lookups will be issued for each flow type. The lookup sequence for each flow is similar, and the index of each lookup is computed by some macros. There are similar mechanisms for the C2 TCAM lookups, so in order to avoid confusion, rename the flow table index computing macros with a common prefix. The only difference in behaviour is that we now use the very first entry in the flow for the RSS lookup (the first entry was previously unused). Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit 5b3538063627053cf1f3159fe3fda05e0aa7622a Author: Maxime Chevallier Date: Wed Mar 27 09:44:18 2019 +0100 net: mvpp2: cls: Don't use the sequence attribute for classification The classifier allows to combine multiple lookups in one "sequence" that is counted as a single lookup to an engine, with a single result. We don't actually use that feature, so remove any places where we set this field, so that the classifier doesn't try to interpret these fields. Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit 6310f77d9919b9d31ff6f73c565698ae349aa505 Author: Maxime Chevallier Date: Wed Mar 27 09:44:17 2019 +0100 net: mvpp2: cls: Rename classifer per-port functions This commit renames some of the classifier functions to follow the naming 'mvpp2_port_*' that's used for function that act on a given port. This commit is purely cosmetic. Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit b11ffdc538be3f817aa79768420ecc396f65c695 Author: Maxime Chevallier Date: Wed Mar 27 09:44:16 2019 +0100 net: mvpp2: cls: Move C2 read/write helpers around Move C2 read/write helpers higher in the file to ease future work that rely on these helpers Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit 147c538e7975ce9c6c4fdd175fd703aec4280ec8 Author: Maxime Chevallier Date: Wed Mar 27 09:44:15 2019 +0100 net: mvpp2: cls: Write C2 TCAM data last when writing a C2 entry When writing a C2 entry to hardware, some registers writes will only take effect when the TCAM_DATA4 register is written. This includes all C2 TCAM registers, and the C2 invalidate register. To make sure we always write C2 entries correctly, document that behaviour with a comment, and move TCAM writes to the end of the mvpp2_cls_c2_write helper. Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit e4bfb4aced83dbff6b84b7153483c038eed99939 Author: Maxime Chevallier Date: Wed Mar 27 09:44:14 2019 +0100 net: mvpp2: cls: Use iterators to go through the cls_table The cls_table is a global read-only table containing the different parameters that are used by various tables in the classifier. It describes the links between the Header Parser, the decoding table and the flow_table. There are several possible way we want to iterate over that table, depending on wich classifier engine we want to configure. For the Header Parser, we want to iterate over each entry. For the Decoding table, we want to iterate over each entry having a unique flow_id. Finally, when configuring an ethtool flow, we want to iterate over each entry having a unique flow_id and that has a given flow_type. This commit introduces some iterator to both provide syntactic sugar and also clarify the way we want to iterate over the table. Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit b607cc61be41a86019bb669930f6334c8c73994c Author: Maxime Chevallier Date: Wed Mar 27 09:44:13 2019 +0100 net: mvpp2: debugfs: Allow reading the C2 engine table from debugfs PPv2's Classifier uses multiple engines to perform classification. So far, only the C2 engine is used, which has a 256 entries TCAM. So far, we only accessed the relevant entries from the C2 engines, which are the one implementing RSS. To implement and debug ntuple classification offload, beaing able to see the hit count for each C2 entry is helpful, so this commit moves the logic to a dedicated directory allowing to access each entry. Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit 8aa651060ff236101d3999a93eff354ce9798c51 Author: Maxime Chevallier Date: Wed Mar 27 09:44:12 2019 +0100 net: mvpp2: debugfs: Allow reading the flow table from debugfs The Classifier flow table is the central part of the PPv2 Classifier, since it describes all classification steps performed for each flow. It has 512 entries, shared between all ports, which are divided into sequences that are pointed-to by the decoding table. Being able to see which entries in the flow table were hit is a key point when implementing and debugging classification offload. This commit allows reading each flow table entry's hit count independently, with a clear-on-read behaviour. Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit 7cb5e368591a2100a9c079b926991d093b76e1bb Author: Maxime Chevallier Date: Wed Mar 27 09:44:11 2019 +0100 net: mvpp2: debugfs: Store debugfs entries data in mvpp2 struct The current way to store the required private data needed to access various debugfs entries is to alloc them on the fly, share them within the entries that need to access them, and finally have one entry free that data upon closing. This leads to hard to maintain code, and is very error-prone. This commit stores all debugfs related data in the same place, making sure this is allocated only when the debugfs directory is successfully created, so that we don't waste memory when we don't use this feature. Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit 0b27f8650f20714c49b797da278a4bb86843209c Author: Maxime Chevallier Date: Wed Mar 27 09:44:10 2019 +0100 net: mvpp2: cls: Make the flow definitions const The cls_flow table represent the overall configuration of the classifier, used to match the different traffic classes in the Parsing and Classification engines. This configuration is static, and applies to all PPv2 instances, we must therefore keep it const so that no modifications of this table are performed at runtime. Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit 93c2589c92597fa4b3c36f6105219910888b6ddb Author: Maxime Chevallier Date: Wed Mar 27 09:44:09 2019 +0100 net: mvpp2: cls: Rename MVPP2_N_FLOWS to MVPP2_N_PRS_FLOWS The macro definition MVPP2_N_FLOWS is ambiguous because it really represents the number of entries in the Header Parser that are used to identify the classification flows. Rename the macro to clearly state that we represent the number of flows in the Header Parser. Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit 32f1a672d404b567ae7fcfb04d0cf47b1270e033 Author: Maxime Chevallier Date: Wed Mar 27 09:44:08 2019 +0100 net: mvpp2: cls: use Lookup Type in classification engines The PPv2 classifier allows to perform multiple lookups on the same engine when classifying a packet. These lookups can match similar parts of a packet header, but perform different actions upon matching. To differentiate these types of lookups, it's possible to specify a Lookup Type in the flow table entries, which will be part of the key for the lookup engines. This commit introduces the use of Lookup Types for C2 matches. Since for now we only perform C2 lookups to enable RSS, we only need one Lookup Type. Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit dc61b37fd9dcfa9400de5e7a36c85f61abf9b852 Author: Maxime Chevallier Date: Wed Mar 27 09:44:07 2019 +0100 net: mvpp2: cls: Start cls flow entries from beginning of table The Classifier flow table has 512 entries, that contains lookups commands executed consecutively for every flow. Since we have 21 different flows, we have to carefully manage the flow table use. As of today, the start index of a lookup sequence is computed directly based in the flow->id. There are 8 reserved flow ids, from 0-7, which don't have any corresponding sequence in the flow table. We can therefore ignore them when computing the index, and make so that the first non-reserved flow point to the very beginning of the flow table. Signed-off-by: Maxime Chevallier Suggested-by: Alan Winkowski Signed-off-by: David S. Miller commit 1f29a8c4c68f1d6ac35bc0a29967658116e196e7 Author: Maxime Chevallier Date: Wed Mar 27 09:44:06 2019 +0100 net: mvpp2: cls: Add missing MAC_DA field extraction PPv2's classifier supports extracting the MAC Destination Address from the L2 header to perform RSS and flow steering. Add the missing case when setting the Header Extracted Key fields in the flow table. Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit c9dbb6cf51e0b91505d1ee18a09f73e908d4b1ee Author: Maxime Chevallier Date: Wed Mar 27 09:44:05 2019 +0100 net: mvpp2: Don't use an int to store netdev_features_t int is not long enough to store all netdev_features, use the correct dedicated type to store them when building the list of dev->features. Signed-off-by: Maxime Chevallier Signed-off-by: David S. Miller commit ae21f41e1f569b51e69d8822005d72ed5b8c2e7f Author: Stephen Boyd Date: Mon Mar 18 12:41:16 2019 -0700 firmware: vpd: Drop __iomem usage for memremap() memory memremap() doesn't return an iomem pointer, so we can just use memcpy() and drop the __iomem annotation here. This silences a sparse warning. Cc: Guenter Roeck Reviewed-by: Guenter Roeck Cc: Dmitry Torokhov Cc: Anton Vasilyev Signed-off-by: Stephen Boyd Signed-off-by: Greg Kroah-Hartman commit 5cb27d30fc3a281e830a2099d520b469e2b82008 Author: Mariusz Bialonczyk Date: Mon Mar 4 12:23:36 2019 +0100 w1: ds2482: cosmetic fixes after 54865314f5a1 We have a helper function ds2482_calculate_config() which is calculating the config value, so just use it instead of passing the same variable in all calls to this function. Also fixes the placement of module parameters to match with: 50fa2951bd74 (w1: Organize driver source to natural/common order) by Andrew F. Davis Signed-off-by: Mariusz Bialonczyk Cc: Andrew Worsley Cc: Andrew F. Davis Signed-off-by: Greg Kroah-Hartman commit 13bd14a41ce3105d5b1f3cd8b4d1e249d17b6d9b Author: Kangjie Lu Date: Fri Mar 8 21:50:24 2019 -0600 char: hpet: fix a missing check of ioremap Check if ioremap fails, and if so, return AE_ERROR. Signed-off-by: Kangjie Lu Signed-off-by: Greg Kroah-Hartman commit d8fb3fafa220035a8fc6af9822ab6f591ca83a57 Author: Gustavo A. R. Silva Date: Wed Mar 20 11:03:18 2019 -0500 sgi-xpc: mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warning: drivers/misc/sgi-xp/xpc_uv.c: In function ‘xpc_handle_activate_mq_msg_uv’: drivers/misc/sgi-xp/xpc_uv.c:573:3: warning: this statement may fall through [-Wimplicit-fallthrough=] xpc_wakeup_channel_mgr(part); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/misc/sgi-xp/xpc_uv.c:575:2: note: here case XPC_ACTIVATE_MQ_MSG_MARK_ENGAGED_UV: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Acked-by: Robin Holt Signed-off-by: Greg Kroah-Hartman commit 19f8d67fc6c261ec55a199afe8863b4a4f04e80b Author: YueHaibing Date: Thu Mar 21 23:20:50 2019 +0800 uio: uio_fsl_elbc_gpcm: Make dev_attr_reg_br and dev_attr_reg_or static Fix sparse warnings: drivers/uio/uio_fsl_elbc_gpcm.c:71:1: warning: symbol 'dev_attr_reg_br' was not declared. Should it be static? drivers/uio/uio_fsl_elbc_gpcm.c:72:1: warning: symbol 'dev_attr_reg_or' was not declared. Should it be static? Signed-off-by: YueHaibing Reviewed-by: Mukesh Ojha commit f1cf11c296c599b81549aa2c5221d75138a58aa4 Author: Srinivas Kandagatla Date: Thu Mar 7 10:12:29 2019 +0000 misc: fastrpc: increase max init file size to 64 MB In some cases where Neural Processing is required the size of init process exceeds default size of 2MB, increase this size to 64MB which is required for QCS404 CDSP Neural Processing. Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit 02b45b47fbe84e23699bb6bdc74d4c2780e282b4 Author: Srinivas Kandagatla Date: Thu Mar 7 10:12:28 2019 +0000 misc: fastrpc: fix remote page size calculation Remote page size should be calculated based on address and size, fix this! Without this we will endup with one page less in cases where the buffer is across 3 pages. Fixes: c68cfb718c8f ("misc: fastrpc: Add support for context Invoke method") Reported-by: Krishnaiah Tadakamalla Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit 25e8dfb83cda0a123bb1e091d6c3599cde050d76 Author: Srinivas Kandagatla Date: Thu Mar 7 10:12:27 2019 +0000 misc: fastrpc: take into account of overlapping buffers Argument buffers that are passed could be derived from a big buffer, and some of the arguments buffers could overlap each other. Take care of such instanaces. This is optimization that DSP expects while sending buffers which overlap. So make the DSP happy doing it. Without which DSP seems to crash. Fixes: c68cfb718c8f ("misc: fastrpc: Add support for context Invoke method") Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit 80f3afd72bd4149c57daf852905476b43bb47647 Author: Srinivas Kandagatla Date: Thu Mar 7 10:12:26 2019 +0000 misc: fastrpc: consider address offset before sending to DSP While passing address phy address to DSP, take care of the offset calculated from virtual address vma. Fixes: c68cfb718c8f ("misc: fastrpc: Add support for context Invoke method") Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit 977e6c8d1d18061e083080c3657631eec17ca3ff Author: Srinivas Kandagatla Date: Thu Mar 7 10:12:25 2019 +0000 misc: fastrpc: use correct spinlock variant context spin lock can be interrupted from callback path so use correct spinlock so that we do not hit spinlock recursion. Fixes: c68cfb718c8f ("misc: fastrpc: Add support for context Invoke method") Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit 415a0729bd1225f0ffbc0ba82888dd65772554f7 Author: Srinivas Kandagatla Date: Thu Mar 7 10:12:24 2019 +0000 misc: fastrpc: make sure memory read and writes are visible dma_alloc_coherent buffers could have writes queued in store buffers so commit them before sending buffer to DSP using correct dma barriers. Same with vice-versa. Fixes: c68cfb718c8f ("misc: fastrpc: Add support for context Invoke method") Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit b49f6d83e290f17e20f4e5cf31288d3bb4955ea6 Author: Thierry Escande Date: Thu Mar 7 10:12:23 2019 +0000 misc: fastrpc: Fix a possible double free This patch fixes the error exit path of fastrpc_init_create_process(). If the DMA allocation or the DSP invoke fails the fastrpc_map was freed but not removed from the mapping list leading to a double free once the mapping list is emptied in fastrpc_device_release(). [srinivas kandagatla]: Cleaned up error path labels and reset init mem to NULL after free Fixes: d73f71c7c6ee("misc: fastrpc: Add support for create remote init process") Signed-off-by: Thierry Escande Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit 8e7389c79b40ed44c855193bfb46b496ac25676f Author: Thierry Escande Date: Thu Mar 7 10:12:22 2019 +0000 misc: fastrpc: Avoid free of DMA buffer in interrupt context When the remote DSP invocation is interrupted by the user, the associated DMA buffer can be freed in interrupt context causing a kernel BUG. This patch adds a worker thread associated to the fastrpc context. It is scheduled in the rpmsg callback to decrease its refcount out of the interrupt context. Fixes: c68cfb718c8f ("misc: fastrpc: Add support for context Invoke method") Signed-off-by: Thierry Escande Signed-off-by: Srinivas Kandagatla Signed-off-by: Greg Kroah-Hartman commit 34bf9ce91e04ea6a341463f453c3e042e974a29e Author: Dan Carpenter Date: Tue Mar 5 14:47:46 2019 +0300 misc: rtsx: clean up some indenting These lines weren't indented far enough. Signed-off-by: Dan Carpenter Signed-off-by: Greg Kroah-Hartman commit 1e55b609b983f99290d210bf6578cb1a2eb905d2 Author: Tomas Winkler Date: Tue Mar 12 00:10:44 2019 +0200 mei: adjust the copyright notice in the files. Use unified version of the copyright notice in the files Update copyright years according the year the files were touched, except this patch and SPDX conversions. Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman commit 514c37e320a24507590bd023a554a6671e7fca92 Author: Tomas Winkler Date: Tue Mar 12 00:10:43 2019 +0200 mei/hdcp: Fix SPDX identifiers 1. Remove redundant parentheses around single license 2. Fix the license to GPL-2.0 and not GPL-2.0+ in mei_hdcp.h Cc: Ramalingam C Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman commit 191b0700727ca936d7b34496244cfea27074ddd9 Author: Tomas Winkler Date: Tue Mar 12 00:10:42 2019 +0200 nfc/mei: convert to SPDX license tags Replace boiler plate licenses texts with the SPDX license identifiers in the mei nfc files header. Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman commit 9fff0425aab086c10b29ce50d440afde7d31a740 Author: Tomas Winkler Date: Tue Mar 12 00:10:41 2019 +0200 mei: convert to SPDX license tags Replace boiler plate licenses texts with the SPDX license identifiers in the mei files header. Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman commit 3634946f5224c29c88095fc97c5468e0735719d4 Author: Tomas Winkler Date: Tue Mar 12 00:10:40 2019 +0200 mei: add missing SPDX tag to mei Kconfig Add SPDX tag with GPLv2 license to mei Kconfig. Signed-off-by: Tomas Winkler Signed-off-by: Greg Kroah-Hartman commit e9a88dc2876616cc4d1ffb28ec95f2df650fe3d1 Author: Maarten Lankhorst Date: Fri Mar 22 14:59:54 2019 +0100 drm/i915: Reject rotation for some hdr formats 90/270 rotation is not supported for Y21x and the 12/16 bits XVYU formats, reject support for them. Signed-off-by: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/20190322135954.20434-3-maarten.lankhorst@linux.intel.com Reviewed-by: Ville Syrjälä commit 546f0f6550676db1b5c74ecdabc65bb99de3e0f6 Author: Maarten Lankhorst Date: Fri Mar 22 14:59:53 2019 +0100 drm/i915: Reject Yf tiling for HDR formats, v2. This was missing in the original addition of those formats, but in PLANE_SIZE description it's mentioned that 8 cpp formats are not valid with Yf tiling. Reject this case properly. Also reject Y21x Yf tiling support this is also not supported. Changes since v1: - Reject Y21x as well. Signed-off-by: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/20190322135954.20434-2-maarten.lankhorst@linux.intel.com Reviewed-by: Ville Syrjälä commit 3bd02fa4be3aba778cd5aa0ca9e072244ce45a74 Author: Maarten Lankhorst Date: Fri Mar 22 14:59:52 2019 +0100 drm/i915: Handle YUV subpixel support better Y41x formats is a 4:4:4 format, so it can be addressed with pixel level accuracy. Meanwhile it seems that while rotating YUYV 4:2:2 formats need a multiple of 2 for width and height, otherwise corruption occurs. For YUV 4:2:2, the spec says that w/h should always be even, but we get away with odd height while unrotated. When rotating it seems corruption occurs with an odd x/y, and w/h should always be even. Just to be completely paranoid, reject odd x/y w/h when rotating 90/270. Signed-off-by: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/20190322135954.20434-1-maarten.lankhorst@linux.intel.com Reviewed-by: Ville Syrjälä commit 21c75ad65f8e5213ec542d99c259ffe3e3671e81 Author: YueHaibing Date: Thu Mar 21 16:26:28 2019 +0800 parport_cs: Fix memory leak in parport_config parport_probe() alloc parport device 'info', but while parport_config failed it does not free it. Signed-off-by: YueHaibing Reviewed-by: Mukesh Ojha Signed-off-by: Greg Kroah-Hartman commit 4b0a2c5ff7215206ea6135a405f17c5f6fca7d00 Author: Pankaj Gupta Date: Tue Mar 19 11:34:06 2019 +0530 virtio_console: initialize vtermno value for ports For regular serial ports we do not initialize value of vtermno variable. A garbage value is assigned for non console ports. The value can be observed as a random integer with [1]. [1] vim /sys/kernel/debug/virtio-ports/vport*p* This patch initialize the value of vtermno for console serial ports to '1' and regular serial ports are initiaized to '0'. Reported-by: siliu@redhat.com Signed-off-by: Pankaj Gupta Signed-off-by: Greg Kroah-Hartman commit 67fbfc3943e03464541d2cbe8ff8ff77cfe7fe93 Author: Jakub Wilk Date: Mon Mar 11 10:08:45 2019 +0100 vt: use /dev/vcs (not /dev/vcs0) in comment Both /dev/vcs and /dev/vcs0 were in use in the past, but these days /dev/vcs0 is mostly historical curiosity. * "/dev/vcs" is the name that has always been in the Linux allocated devices list. * "vcs" is the device name in sysfs since Linux v2.6.12. * MAKEDEV(1) in Debian used to create /dev/vcs0 only, but /dev/vcs was added in 1999: https://bugs.debian.org/45698 * MAKEDEV(1) in RedHat switched from /dev/vcs0 to /dev/vcs in 2000: * Fri Oct 20 2000 Nalin Dahyabhai - change vcs0 to vcs (ditto for vcsa0) Signed-off-by: Jakub Wilk Signed-off-by: Greg Kroah-Hartman commit b9ca5f8560af244489b4a1bc1ae88b341f24bc95 Author: Sahara Date: Mon Feb 11 11:09:15 2019 +0400 tty: pty: Fix race condition between release_one_tty and pty_write Especially when a linked tty is used such as pty, the linked tty port's buf works have not been cancelled while master tty port's buf work has been cancelled. Since release_one_tty and flush_to_ldisc run in workqueue threads separately, when pty_cleanup happens and link tty port is freed, flush_to_ldisc tries to access freed port and port->itty, eventually it causes a panic. This patch utilizes the magic value with holding the tty_mutex to check if the tty->link is valid. Fixes: 2b022ab7542d ("pty: cancel pty slave port buf's work in tty_release") Signed-off-by: Sahara Cc: stable Signed-off-by: Greg Kroah-Hartman commit 75ddbc1fb11efac87b611d48e9802f6fe2bb2163 Author: Yifeng Li Date: Tue Mar 5 07:02:49 2019 +0800 tty: vt.c: Fix TIOCL_BLANKSCREEN console blanking if blankinterval == 0 Previously, in the userspace, it was possible to use the "setterm" command from util-linux to blank the VT console by default, using the following command. According to the man page, > The force option keeps the screen blank even if a key is pressed. It was implemented by calling TIOCL_BLANKSCREEN. case BLANKSCREEN: ioctlarg = TIOCL_BLANKSCREEN; if (ioctl(STDIN_FILENO, TIOCLINUX, &ioctlarg)) warn(_("cannot force blank")); break; However, after Linux 4.12, this command ceased to work anymore, which is unexpected. By inspecting the kernel source, it shows that the issue was triggered by the side-effect from commit a4199f5eb809 ("tty: Disable default console blanking interval"). The console blanking is implemented by function do_blank_screen() in vt.c: "blank_state" will be initialized to "blank_normal_wait" in con_init() if AND ONLY IF ("blankinterval" > 0). If "blankinterval" is 0, "blank_state" will be "blank_off" (== 0), and a call to do_blank_screen() will always abort, even if a forced blanking is required from the user by calling TIOCL_BLANKSCREEN, the console won't be blanked. This behavior is unexpected from a user's point-of-view, since it's not mentioned in any documentation. The setterm man page suggests it will always work, and the kernel comments in uapi/linux/tiocl.h says > /* keep screen blank even if a key is pressed */ > #define TIOCL_BLANKSCREEN 14 To fix it, we simply remove the "blank_state != blank_off" check, as pointed out by Nicolas Pitre, this check doesn't logically make sense and it's safe to remove. Suggested-by: Nicolas Pitre Fixes: a4199f5eb809 ("tty: Disable default console blanking interval") Signed-off-by: Yifeng Li Cc: stable Signed-off-by: Greg Kroah-Hartman commit 46ca3f735f345c9d87383dd3a09fa5d43870770e Author: Sergei Trofimovich Date: Sun Mar 10 21:24:15 2019 +0000 tty/vt: fix write/write race in ioctl(KDSKBSENT) handler The bug manifests as an attempt to access deallocated memory: BUG: unable to handle kernel paging request at ffff9c8735448000 #PF error: [PROT] [WRITE] PGD 288a05067 P4D 288a05067 PUD 288a07067 PMD 7f60c2063 PTE 80000007f5448161 Oops: 0003 [#1] PREEMPT SMP CPU: 6 PID: 388 Comm: loadkeys Tainted: G C 5.0.0-rc6-00153-g5ded5871030e #91 Hardware name: Gigabyte Technology Co., Ltd. To be filled by O.E.M./H77M-D3H, BIOS F12 11/14/2013 RIP: 0010:__memmove+0x81/0x1a0 Code: 4c 89 4f 10 4c 89 47 18 48 8d 7f 20 73 d4 48 83 c2 20 e9 a2 00 00 00 66 90 48 89 d1 4c 8b 5c 16 f8 4c 8d 54 17 f8 48 c1 e9 03 48 a5 4d 89 1a e9 0c 01 00 00 0f 1f 40 00 48 89 d1 4c 8b 1e 49 RSP: 0018:ffffa1b9002d7d08 EFLAGS: 00010203 RAX: ffff9c873541af43 RBX: ffff9c873541af43 RCX: 00000c6f105cd6bf RDX: 0000637882e986b6 RSI: ffff9c8735447ffb RDI: ffff9c8735447ffb RBP: ffff9c8739cd3800 R08: ffff9c873b802f00 R09: 00000000fffff73b R10: ffffffffb82b35f1 R11: 00505b1b004d5b1b R12: 0000000000000000 R13: ffff9c873541af3d R14: 000000000000000b R15: 000000000000000c FS: 00007f450c390580(0000) GS:ffff9c873f180000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffff9c8735448000 CR3: 00000007e213c002 CR4: 00000000000606e0 Call Trace: vt_do_kdgkb_ioctl+0x34d/0x440 vt_ioctl+0xba3/0x1190 ? __bpf_prog_run32+0x39/0x60 ? mem_cgroup_commit_charge+0x7b/0x4e0 tty_ioctl+0x23f/0x920 ? preempt_count_sub+0x98/0xe0 ? __seccomp_filter+0x67/0x600 do_vfs_ioctl+0xa2/0x6a0 ? syscall_trace_enter+0x192/0x2d0 ksys_ioctl+0x3a/0x70 __x64_sys_ioctl+0x16/0x20 do_syscall_64+0x54/0xe0 entry_SYSCALL_64_after_hwframe+0x49/0xbe The bug manifests on systemd systems with multiple vtcon devices: # cat /sys/devices/virtual/vtconsole/vtcon0/name (S) dummy device # cat /sys/devices/virtual/vtconsole/vtcon1/name (M) frame buffer device There systemd runs 'loadkeys' tool in tapallel for each vtcon instance. This causes two parallel ioctl(KDSKBSENT) calls to race into adding the same entry into 'func_table' array at: drivers/tty/vt/keyboard.c:vt_do_kdgkb_ioctl() The function has no locking around writes to 'func_table'. The simplest reproducer is to have initrams with the following init on a 8-CPU machine x86_64: #!/bin/sh loadkeys -q windowkeys ru4 & loadkeys -q windowkeys ru4 & loadkeys -q windowkeys ru4 & loadkeys -q windowkeys ru4 & loadkeys -q windowkeys ru4 & loadkeys -q windowkeys ru4 & loadkeys -q windowkeys ru4 & loadkeys -q windowkeys ru4 & wait The change adds lock on write path only. Reads are still racy. CC: Greg Kroah-Hartman CC: Jiri Slaby Link: https://lkml.org/lkml/2019/2/17/256 Signed-off-by: Sergei Trofimovich Cc: stable Signed-off-by: Greg Kroah-Hartman commit 1bbb1c318cd8a3a39e8c3e2e83d5e90542d6c3e3 Author: Kangjie Lu Date: Fri Mar 15 02:07:12 2019 -0500 tty: ipwireless: fix missing checks for ioremap ipw->attr_memory and ipw->common_memory are assigned with the return value of ioremap. ioremap may fail, but no checks are enforced. The fix inserts the checks to avoid potential NULL pointer dereferences. Signed-off-by: Kangjie Lu Reviewed-by: David Sterba Signed-off-by: Greg Kroah-Hartman commit cf90c06f8115016fa4a94644a26a4ba093f0055e Author: David Emett Date: Sun Mar 10 21:43:47 2019 +0000 tty: fix read of tty->pgrp outside of ctrl_lock The intention was clearly to use the tty_pgrp local variable rather than re-read tty->pgrp outside of ctrl_lock, so do that. This bug was introduced by commit 2812d9e9fd94 ("tty: Combine SIGTTOU/SIGTTIN handling"). Signed-off-by: David Emett Signed-off-by: Greg Kroah-Hartman commit 3adf2aa8af2d5122917b78988de9cdeb828cdd9d Author: Valdis Klētnieks Date: Tue Mar 12 07:49:03 2019 -0400 drivers/tty/tty_jobctrl.c - fix non-kerneldoc comment Building with W=1 reports (among other things): CC drivers/tty/tty_jobctrl.o drivers/tty/tty_jobctrl.c:317: warning: Cannot understand * on line 317 - I thought it was a doc line Fix up the non-kerneldoc comment. (other warnings to be cleaned up in separate patch) Signed-off-by Valdis Kletnieks Signed-off-by: Greg Kroah-Hartman commit 6ac972dd4db42ef4e298669647b946de4e0243aa Author: Julien Grall Date: Wed Mar 13 11:40:34 2019 +0000 tty/sysrq: Convert show_lock to raw_spinlock_t Systems which don't provide arch_trigger_cpumask_backtrace() will invoke showacpu() from a smp_call_function() function which is invoked with disabled interrupts even on -RT systems. The function acquires the show_lock lock which only purpose is to ensure that the CPUs don't print simultaneously. Otherwise the output would clash and it would be hard to tell the output from CPUx apart from CPUy. On -RT the spin_lock() can not be acquired from this context. A raw_spin_lock() is required. It will introduce the system's latency by performing the sysrq request and other CPUs will block on the lock until the request is done. This is okay because the user asked for a backtrace of all active CPUs and under "normal circumstances in production" this path should not be triggered. Signed-off-by: Julien Grall [bigeasy@linuxtronix.de: commit description] Signed-off-by: Sebastian Andrzej Siewior Acked-by: Sebastian Andrzej Siewior Signed-off-by: Greg Kroah-Hartman commit 0e2f54f88b8b9bbdb3a73b6e67cffb402187c73f Merge: 96fd2c6633b0 0bec6219e5a0 Author: Joonas Lahtinen Date: Wed Mar 27 18:23:53 2019 +0200 Merge drm/drm-next into drm-intel-next-queued This is needed to get the fourcc code merged without conflicts. Signed-off-by: Joonas Lahtinen commit 36b8defc447627c3e91058c43941ec15d827556e Author: Takashi Iwai Date: Sat Mar 16 08:48:52 2019 +0100 ALSA: us122l: Use alloc_pages_exact() alloc_pages_exact() is more suitable choice for allocating the sound buffers, as it doesn't need to align with power-of-two. Along with the conversion, we can drop __GFP_COMP as well. The patch also replace the error messages to be more explicit. Acked-by: Michal Hocko Signed-off-by: Takashi Iwai commit 734b5a0bbdf43518e6739c8156a985e385e557fe Author: Takashi Iwai Date: Fri Nov 23 19:38:13 2018 +0100 ALSA: Replace snd_malloc_pages() and snd_free_pages() with standard helpers, take#2 snd_malloc_pages() and snd_free_pages() are merely thin wrappers of the standard page allocator / free functions. Even the arguments are compatible with some standard helpers, so there is little merit of keeping these wrappers. This patch replaces the all existing callers of snd_malloc_pages() and snd_free_pages() with the direct calls of the standard helper functions. In this version, we use a recently introduced one, alloc_pages_exact(), which suits better than the old snd_malloc_pages() implementation for our purposes. Then we can avoid the waste of pages by alignment to power-of-two. Since alloc_pages_exact() does split pages, we need no longer __GFP_COMP flag; or better to say, we must not pass __GFP_COMP to alloc_pages_exact(). So the former unconditional addition of __GFP_COMP flag in snd_malloc_pages() is dropped, as well as in most other places. Reviewed-by: Takashi Sakamoto Acked-by: Michal Hocko Signed-off-by: Takashi Iwai commit fe1b26c93d430400ac37d820425e2468218ae8b2 Author: Takashi Iwai Date: Wed Mar 27 17:02:40 2019 +0100 ALSA: timer: Make snd_timer_close() really kill pending actions snd_timer_close() is supposed to close the timer instance and sync with the deactivation of pending actions. However, there are still some overlooked cases: - It calls snd_timer_stop() at the beginning, but some other might re-trigger the timer right after that. - snd_timer_stop() calls del_timer_sync() only when all belonging instances are closed. If multiple instances were assigned to a timer object and one is closed, the timer is still running. Then the pending action assigned to this timer might be left. Actually either of the above is the likely cause of the reported syzkaller UAF. This patch plug these holes by introducing SNDRV_TIMER_IFLG_DEAD flag. This is set at the beginning of snd_timer_close(), and the flag is checked at snd_timer_start*() and else, so that no longer new action is left after snd_timer_close(). Reported-by: syzbot+d5136d4d3240cbe45a2a@syzkaller.appspotmail.com Signed-off-by: Takashi Iwai commit cbe706b0526837a9dfd26e4492c399e8ab0df5aa Author: Shravan Kumar Ramani Date: Wed Mar 27 10:15:15 2019 -0400 gpio: mlxbf: Add dependency on 64BIT to Kconfig entry Fixes a compile test failure Fixes: c78c42d77165 ("gpio: add driver for Mellanox BlueField GPIO controller") Signed-off-by: Shravan Kumar Ramani Signed-off-by: Bartosz Golaszewski commit a7588c896b05444929ecb3d0115481988720abf6 Author: Takashi Iwai Date: Wed Mar 27 16:56:08 2019 +0100 ALSA: timer: Check ack_list emptiness instead of bit flag For checking the pending timer instance that is still left on the timer object that is being closed, we set/clear a bit flag SNDRV_TIMER_IFLG_CALLBACK around the call of callbacks. This can be simplified by replace with the list_empty() call for ti->ack_list. This covers the existence more comprehensively and safely. A gratis bonus is that we can get rid of SNDRV_TIMER_IFLG_CALLBACK bit flag definition as well. Signed-off-by: Takashi Iwai commit 7bb4a8a2cc9382da720b46988bc976ebccaa49fd Author: Takashi Iwai Date: Wed Mar 27 16:51:58 2019 +0100 ALSA: timer: Make sure to clear pending ack list When a card is under disconnection, we bail out immediately at each timer interrupt or tasklet. This might leave some items left in ack list. For a better integration of the upcoming change to check ack_list emptiness, clear out the whole list upon the emergency exit route. Signed-off-by: Takashi Iwai commit 8748b850beccdbc87aa8776d63abd6b5628720c8 Author: Takashi Iwai Date: Wed Mar 27 16:42:51 2019 +0100 ALSA: timer: Unify timer callback process code The timer core has two almost identical code for processing callbacks: once in snd_timer_interrupt() for fast callbacks and another in snd_timer_tasklet() for delayed callbacks. Let's unify them. In the new version, the resolution is read from ti->resolution at each call, and this must be fine; ti->resolution is set in the preparation step in snd_timer_interrupt(). Signed-off-by: Takashi Iwai commit 6b77908fea62f8416b0f67d55c30b472a8eae890 Author: Andy Shevchenko Date: Mon Mar 18 12:29:17 2019 +0200 serial: sc16is7xx: Drop of_match_ptr() use There is an ACPI method to enumerate such devices via specific ACPI ID and use of compatible strings. It will not work for the drivers which have no OF match ID table present. Reported-by: Georgii Staroselskii Tested-By: Georgii Staroselskii Signed-off-by: Andy Shevchenko Signed-off-by: Greg Kroah-Hartman commit 00d9f0c65401a35100f4b98741576b4d2536fa28 Author: Andy Shevchenko Date: Mon Mar 18 12:29:16 2019 +0200 serial: sc16is7xx: Switch to use device_get_match_data() Instead of open coded variants, switch to direct use of device_get_match_data(). Tested-By: Georgii Staroselskii Signed-off-by: Andy Shevchenko Signed-off-by: Greg Kroah-Hartman commit 24bc6e68efa00f95034dbef0ba91661dd80bd37d Author: Andy Shevchenko Date: Mon Mar 18 12:29:15 2019 +0200 serial: sc16is7xx: Respect clock-frequency property If the property is provided and there are no other possibilities to detect UART clock frequency, use it as a fallback. Tested-By: Georgii Staroselskii Signed-off-by: Andy Shevchenko Signed-off-by: Greg Kroah-Hartman commit 8650e026c819f4b6dfc1bee078498a92a0f5a223 Author: Andy Shevchenko Date: Mon Mar 18 12:29:14 2019 +0200 dt-bindings: sc16is7xx: Add alternative clock-frequency property For the platforms which have no clock provider for the sc16is7xx type of UART, introduce an alternative clock-frequency property which would be used instead. Cc: Rob Herring Cc: devicetree@vger.kernel.org Signed-off-by: Andy Shevchenko Signed-off-by: Greg Kroah-Hartman commit f4487db58eb780a52d768f3b36aaaa8fd5839215 Author: Lanqing Liu Date: Mon Mar 4 16:58:24 2019 +0800 serial: sprd: Add DMA mode support Add DMA mode support for the Spreadtrum serial controller. Signed-off-by: Lanqing Liu Signed-off-by: Baolin Wang Signed-off-by: Greg Kroah-Hartman commit 083206100d971b457dc6a942748bdb3ccc72c947 Author: Lanqing Liu Date: Mon Mar 4 16:58:23 2019 +0800 dt-bindings: serial: sprd: Add dma properties to support DMA mode This patch adds dmas and dma-names properties for the UART DMA mode. Signed-off-by: Lanqing Liu Signed-off-by: Baolin Wang Reviewed-by: Rob Herring Signed-off-by: Greg Kroah-Hartman commit 4007098f4ce46c87c16ba34ddc00b042aa444b59 Author: Lanqing Liu Date: Mon Mar 4 16:58:22 2019 +0800 serial: sprd: Add power management for the Spreadtrum serial controller This patch adds power management for the Spreadtrum serial controller. Signed-off-by: Lanqing Liu Signed-off-by: Baolin Wang Signed-off-by: Greg Kroah-Hartman commit 984df54e4304d1ebe3e2320a9750b12236f14f0a Author: Lanqing Liu Date: Mon Mar 4 16:58:21 2019 +0800 dt-bindings: serial: sprd: Add clocks and clocks-names properties This patch adds clocks and clocks-names properties, which are used to do power management for our UART driver. Reviewed-by: Rob Herring Signed-off-by: Lanqing Liu Signed-off-by: Baolin Wang Signed-off-by: Greg Kroah-Hartman commit 9828def35a366fc1045cb794d99b6b12de89fa70 Author: YueHaibing Date: Tue Mar 19 23:16:46 2019 +0800 serial: 8250_fintek: Make fintek_8250_set_termios static Fix sparse warning: drivers/tty/serial/8250/8250_fintek.c:306:6: warning: symbol 'fintek_8250_set_termios' was not declared. Should it be static? Signed-off-by: YueHaibing Signed-off-by: Greg Kroah-Hartman commit 96fd2c6633b0484b030eb15e646ad50426c41e6a Author: Chris Wilson Date: Wed Mar 27 10:58:14 2019 +0000 drm/i915: Drop new chunks of context creation ABI (for now) The intent was to expose these as part of the means to perform full context recovery (though not the SINGLE_TIMELINE, that is for later and just sucked as collateral damage). As that requires a couple more patches to complete the series, roll back the earlier chunks of ABI for an intervening PR. We keep all the internals intact and under selftests. Signed-off-by: Chris Wilson Cc: Joonas Lahtinen Link: https://patchwork.freedesktop.org/patch/msgid/20190327105814.14694-1-chris@chris-wilson.co.uk Reviewed-by: Joonas Lahtinen commit a2deb87396b0903d30ce73af6fc8fc82e9e32c62 Author: Zhenyu Wang Date: Wed Mar 27 17:06:36 2019 +0800 drm/i915: Disable semaphore on vGPU for now This is to disable semaphore usage when on vGPU for now. Unfortunately GVT-g hasn't fully enabled semaphore usage yet, so current guest with semaphore use would cause vGPU failure. Although current semaphore failure with vGPU can be simply resolved by allowing cmd parser to accept MI_SEMAPHORE_WAIT command with address audit, we're checking general usage of semaphore and how we should handle it properly for virtualization in consider of function and security concern. So we decide to request to disable it for now in guest driver. Once GVT could support it, we would add new compat bit to turn it on. Fixes: e88619646971 ("drm/i915: Use HW semaphores for inter-engine synchronisation on gen8+") #vgpu Cc: Kevin Tian Cc: Chris Wilson Cc: Rodrigo Vivi Signed-off-by: Zhenyu Wang Acked-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190327090636.3547-1-zhenyuw@linux.intel.com commit 7ca8c2c8bbeda2a2a2a9898cd35066bc1dc83836 Author: George Hilliard Date: Tue Mar 26 19:50:57 2019 -0600 staging: mt7621-mmc: Initialize completions a single time during probe The module was initializing completions whenever it was going to wait on them, and not when the completion was allocated. This is incorrect according to the completion docs: Calling init_completion() on the same completion object twice is most likely a bug [...] Re-initialization is also unnecessary because the module never uses complete_all(). Fix this by only ever initializing the completion a single time, and log if the completions are not consumed as intended (this is not a fatal problem, but should not go unnoticed). Signed-off-by: George Hilliard Signed-off-by: Greg Kroah-Hartman commit 4195b4f11fbb5a103a81ee257d60d027695eebf6 Author: George Hilliard Date: Tue Mar 26 19:50:56 2019 -0600 staging: mt7621-mmc: Remove obsolete Kconfig flags These values are not referred to anywhere else in the kernel. Card detect is controlled by the device tree property "mediatek,cd-poll", and there is no driver support for eMMC whatsoever. Signed-off-by: George Hilliard Signed-off-by: Greg Kroah-Hartman commit 3f6363462937494fdbab1ff4133626f1848474d7 Author: Anirudh Rayabharam Date: Tue Mar 26 23:55:07 2019 +0530 staging: rtl8723bs: core: fix line over 80 characters warning Shorten the expression by re-using the part that was already computed to fix the line over 80 characters warning reported by checkpatch.pl. Signed-off-by: Anirudh Rayabharam Signed-off-by: Greg Kroah-Hartman commit b83970f23f36f0e2968872140e69f68118d82fe3 Author: Emiliano Ingrassia Date: Mon Mar 25 23:57:19 2019 +0100 staging: emxx_udc: remove unneeded parenthesis Fix 5 warnings detected by checkpatch.pl about unneeded parenthesis around conditions tests. Signed-off-by: Emiliano Ingrassia Signed-off-by: Greg Kroah-Hartman commit ac118d87cff7eb9b799c6676ca0646928cb65e85 Author: Adham Abozaeid Date: Mon Mar 25 22:27:26 2019 +0000 staging: wilc1000: use cfg80211 ssid list instead of repacking it Avoid repacking ssid values into struct wilc_probe_ssid, and use the cfg80211 provided struct to pass the ssid list to wilc_scan. With this change, struct wilc_probe_ssid, struct wilc_probe_ssid_info and function wilc_wfi_cfg_alloc_fill_ssid will not be needed anymore. Signed-off-by: Adham Abozaeid Signed-off-by: Greg Kroah-Hartman commit ffb99752e93053242988e858ff879855cc87bf89 Author: Jasminko Dedic Date: Mon Mar 25 01:17:05 2019 +0800 staging: vc04_services: add missing __user annotations This patch fixes the following sparse warnings by adding missing __user annotations. It also cleans up two related unnecessary casts by reuseing casts already made a few lines up. Remaining sparse warnings are of a different type. vchiq_arm.c:1606:14: warning: incorrect type in assignment (different address spaces) vchiq_arm.c:1606:14: expected struct vchiq_queue_message *args vchiq_arm.c:1606:14: got void [noderef] * vchiq_arm.c:1612:13: warning: incorrect type in argument 1 (different address spaces) vchiq_arm.c:1612:13: expected void const volatile [noderef] * vchiq_arm.c:1612:13: got unsigned int * vchiq_arm.c:1613:13: warning: incorrect type in argument 1 (different address spaces) vchiq_arm.c:1613:13: expected void const volatile [noderef] * vchiq_arm.c:1613:13: got unsigned int * vchiq_arm.c:1614:13: warning: incorrect type in argument 1 (different address spaces) vchiq_arm.c:1614:13: expected void const volatile [noderef] * vchiq_arm.c:1614:13: got struct vchiq_element const [noderef] ** vchiq_arm.c:1638:21: warning: incorrect type in argument 1 (different address spaces) vchiq_arm.c:1638:21: expected void const volatile [noderef] * vchiq_arm.c:1638:21: got struct vchiq_element const [noderef] ** Signed-off-by: Jasminko Dedic Signed-off-by: Greg Kroah-Hartman commit 8db5da0b8618df79eceea99672e205d4a2a6309e Author: Mimi Zohar Date: Sun Jan 27 19:03:45 2019 -0500 x86/ima: require signed kernel modules Have the IMA architecture specific policy require signed kernel modules on systems with secure boot mode enabled; and coordinate the different signature verification methods, so only one signature is required. Requiring appended kernel module signatures may be configured, enabled on the boot command line, or with this patch enabled in secure boot mode. This patch defines set_module_sig_enforced(). To coordinate between appended kernel module signatures and IMA signatures, only define an IMA MODULE_CHECK policy rule if CONFIG_MODULE_SIG is not enabled. A custom IMA policy may still define and require an IMA signature. Signed-off-by: Mimi Zohar Reviewed-by: Luis Chamberlain Acked-by: Jessica Yu commit b6e24d0e2118c6fbd8cec76c2a45d53ffd4e0b59 Author: Branden Bonaby Date: Tue Mar 26 13:29:30 2019 -0400 staging: rtl8712: Remove comparison to true Remove the comparison to true in the if statement. CHECK: Using comparison to true is error prone. Signed-off-by: Branden Bonaby Signed-off-by: Greg Kroah-Hartman commit 27903f9f6b6ca135612046ca06b07cd4c9bd974a Author: Branden Bonaby Date: Tue Mar 26 13:29:28 2019 -0400 staging: rtl8712: remove unnecessary parentheses Remove unnecessary parentheses in rtl8712_xmit.c. Reported by checkpatch. Signed-off-by: Branden Bonaby Signed-off-by: Greg Kroah-Hartman commit 49103a816a49c6f3da420dbcab97c47038109a61 Author: Sanjana Sanikommu Date: Tue Mar 26 22:39:42 2019 +0530 staging: rtl8192u: Remove typedef for struct. Challenge suggested by coccinelle. Linux kernel coding style guidelines suggest not using typedefs for structure. 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: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit f40c9e3d7703e1af411aa0d163ce4ade1b333f93 Author: Madhumitha Prabakaran Date: Tue Mar 26 09:57:42 2019 -0500 Staging: rtl8188eu: Get rid of custom macro, DBG_88E in kmalloc Get rid of custom macro, DBG_88E for printing message in kmalloc in order to maintain Linux kernel coding style based on which kernel does not print failure warning. Issue suggested by Coccinelle. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit f0977109a5775a211948c1b8a675932f9699022d Author: Jules Irenge Date: Mon Mar 25 22:23:13 2019 +0000 staging: sm750fb: lower case to fix camelcase checkpatch warning Lower case to fix CamelCase checkpatch.pl warning "CHECK: Avoid CamelCase: ". Signed-off-by: Jules Irenge Signed-off-by: Greg Kroah-Hartman commit 5aa2c9ae9371326d9ee9199fe5dee072cc16c6a8 Author: Ville Syrjälä Date: Tue Mar 26 16:25:55 2019 +0200 drm/i915: Update TRANS_MSA_MISC for fastsets Update the DP MSA MISC bits for fastsets. This is needed when we change between limited and full range RGB output. On HSW+ changing limited_range does not currently result in a full modeset since we have don't have the readout code for it (for DP we could, and probably should, readout from TRANS_MSA_MISC itself, for HDMI we would have to rely on the infoframe). So the PIPE_CONF_CHECK() is only performed for pre-HSW platforms. That means any change in the value will result in a fastset instead. Fortunately there is no prohibition to changing TRANS_MSA_MISC dynamically, so it looks like we can legally do fastsets for this. Signed-off-by: Ville Syrjälä Reviewed-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190326142556.21176-5-ville.syrjala@linux.intel.com commit 5ca0ef8a56b8c4812ed78ef9ca53052191dab6e7 Author: Ville Syrjälä Date: Tue Mar 26 16:25:54 2019 +0200 drm/i915: Add max_bpc property for DP MST Allow the user to limit the output bpc with DP MST. Signed-off-by: Ville Syrjälä Reviewed-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190326142556.21176-4-ville.syrjala@linux.intel.com commit f1477219869cc943ef9e0248b308da7b900c65ec Author: Ville Syrjälä Date: Tue Mar 26 16:25:53 2019 +0200 drm/i915: Remove the 8bpc shackles from DP MST Allow DP MST to output any color depth. This means deep color as well as falling back to 6bpc if we would otherwise require too much bandwidth. TODO: We should probably extend bw_contstrained scheme to force all streams on the link to 6bpc if we can't fit the new stream(s) otherwise. v2: Use a proper for-loop (Jani) Signed-off-by: Ville Syrjälä Reviewed-by: Jani Nikula #v1 Link: https://patchwork.freedesktop.org/patch/msgid/20190326142556.21176-3-ville.syrjala@linux.intel.com commit da38ef3ed10a09248e13ae16530c2c6d448dc47d Author: Tony Lindgren Date: Mon Mar 25 15:43:18 2019 -0700 gpio: gpio-omap: add check for off wake capable gpios We are currently assuming all GPIOs are non-wakeup capable GPIOs as we not configuring the bank->non_wakeup_gpios like we used to earlier with platform_data. Let's add omap_gpio_is_off_wakeup_capable() to make the handling clearer while considering that later patches may want to configure SoC specific bank->non_wakeup_gpios for the GPIOs in wakeup domain. Cc: Aaro Koskinen Cc: Grygorii Strashko Cc: Keerthy Cc: Peter Ujfalusi Cc: Russell King Cc: Tero Kristo Reported-by: Grygorii Strashko Signed-off-by: Tony Lindgren Signed-off-by: Bartosz Golaszewski commit 06dce84ec76bef5698acc498b76457e585b9efda Author: Tony Lindgren Date: Mon Mar 25 15:43:17 2019 -0700 gpio: gpio-omap: always scan for triggered non-wakeup capable interrupts The bank->workaround_enabled should be for omap24xx erratum 1.101 but is not needed any longer as erratum 1.101 handling only needs to happen based on !bank->loses_context with patch "gpio: omap: Limit errata 1.101 handling to wkup domain gpios only". Further Grygorii Strashko points out that we are now tagging all edge GPIOs as non-wakeup GPIOs and rely on original erratum 1.101 handling for scacnning for edge interrupts that have triggered during idle. Also the TI Android kernel tree has an earlier commit "GPIO: OMAP: Always scan gpios during runtime resume" by Tero Kristo saying: "This allows the driver to generate interrupts for GPIOs that can't wakeup but have changed state during runtime suspend. We cannot depend on the decision based on no need to restore, as the system state might change and pending events could gather up." So let's remove bank->workaround_enabled and always scan for triggered edge interrupts on resume. We do that based on bank->enabled_non_wakeup_gpios. Cc: Aaro Koskinen Cc: Grygorii Strashko Cc: Keerthy Cc: Peter Ujfalusi Cc: Russell King Cc: Tero Kristo Reported-by: Grygorii Strashko Signed-off-by: Tony Lindgren Signed-off-by: Bartosz Golaszewski commit 21e2118f470302f16bee7ebd1444505eadbc2c20 Author: Tony Lindgren Date: Mon Mar 25 15:43:16 2019 -0700 gpio: gpio-omap: limit errata 1.101 handling to wkup domain gpios only We need to only apply errata 1.101 handling to clear non-wakeup edge gpios for idle to the gpio bank(s) in the wkup domain to prevent spurious wake-up events. And we must restore what we did after idle manually as the gpio bank in wkup domain is not restored otherwise. Let's keep bank->saved_datain register reading separate, that's not related to the 1.101 errata and is used separately on restore. Cc: Aaro Koskinen Cc: Grygorii Strashko Cc: Keerthy Cc: Peter Ujfalusi Cc: Russell King Cc: Tero Kristo Reported-by: Grygorii Strashko Signed-off-by: Tony Lindgren Signed-off-by: Bartosz Golaszewski commit dc7fe518b0493faa0af0568d6d8c2a33c00f58d0 Author: Leon Romanovsky Date: Sun Mar 17 12:11:14 2019 +0200 overflow: Fix -Wtype-limits compilation warnings Attempt to use check_shl_overflow() with inputs of unsigned type produces the following compilation warnings. drivers/infiniband/hw/mlx5/qp.c: In function _set_user_rq_size_: ./include/linux/overflow.h:230:6: warning: comparison of unsigned expression >= 0 is always true [-Wtype-limits] _s >= 0 && _s < 8 * sizeof(*d) ? _s : 0; \ ^~ drivers/infiniband/hw/mlx5/qp.c:5820:6: note: in expansion of macro _check_shl_overflow_ if (check_shl_overflow(rwq->wqe_count, rwq->wqe_shift, &rwq->buf_size)) ^~~~~~~~~~~~~~~~~~ ./include/linux/overflow.h:232:26: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits] (_to_shift != _s || *_d < 0 || _a < 0 || \ ^ drivers/infiniband/hw/mlx5/qp.c:5820:6: note: in expansion of macro _check_shl_overflow_ if (check_shl_overflow(rwq->wqe_count, rwq->wqe_shift, &rwq->buf_size)) ^~~~~~~~~~~~~~~~~~ ./include/linux/overflow.h:232:36: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits] (_to_shift != _s || *_d < 0 || _a < 0 || \ ^ drivers/infiniband/hw/mlx5/qp.c:5820:6: note: in expansion of macro _check_shl_overflow_ if (check_shl_overflow(rwq->wqe_count, rwq->wqe_shift,&rwq->buf_size)) ^~~~~~~~~~~~~~~~~~ Fixes: 0c66847793d1 ("overflow.h: Add arithmetic shift helper") Reviewed-by: Bart Van Assche Acked-by: Kees Cook Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 9513ea4f67280a17365f5adfa31fac7d344150c6 Author: Colin Ian King Date: Sat Mar 16 23:05:12 2019 +0000 IB/iser: remove uninitialized variable len The variable len is not being inintialized and the uninitialized value is being returned. However, this return path is never reached because the default case in the switch statement returns -ENOSYS. Clean up the code by replacing the return -ENOSYS with a break for the default case and returning -ENOSYS at the end of the function. This allows len to be removed. Also remove redundant break that follows a return statement. Signed-off-by: Colin Ian King Reviewed-by: Max Gurtovoy Reviewed-by: Sagi Grimberg Signed-off-by: Jason Gunthorpe commit 765bdb0b3948747dda8c9bab300013e34f76fe88 Author: Ville Syrjälä Date: Wed Mar 27 15:19:29 2019 +0200 drm/i915: Expose the force_audio property with DP MST We already expose the force_audio property with SST. Do the same with MST. Signed-off-by: Ville Syrjälä Reviewed-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190326142556.21176-2-ville.syrjala@linux.intel.com commit 37aa52bff2bcd4377c0f747f730f3d436f2fe58e Author: Ville Syrjälä Date: Tue Mar 26 16:25:51 2019 +0200 drm/i915: Add broadcast RGB property for DP MST Add the "Broadcast RGB" property to MST connectors, and implement the same logic for it as we have in the SST code. v2: Extract and reuse intel_dp_limited_color_range() Cc: Ivan Vlk Tested-by: Ivan Vlk Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108821 Signed-off-by: Ville Syrjälä Reviewed-by: Jani Nikula #v1 Link: https://patchwork.freedesktop.org/patch/msgid/20190326142556.21176-1-ville.syrjala@linux.intel.com commit e2a438bd7116889af36304903b92e56d0f347228 Author: Kangjie Lu Date: Fri Mar 15 01:57:14 2019 -0500 RDMA/i40iw: Handle workqueue allocation failure alloc_ordered_workqueue may fail and return NULL. The fix captures the failure and handles it properly to avoid potential NULL pointer dereferences. Signed-off-by: Kangjie Lu Reviewed-by: Shiraz, Saleem Signed-off-by: Jason Gunthorpe commit f6ac28d61675e05cb1227cbba44ff538f8671e54 Author: Wolfram Sang Date: Sat Mar 2 14:47:29 2019 +0100 i2c: apply coding style for struct i2c_adapter Signed-off-by: Wolfram Sang Reviewed-by: Simon Horman Reviewed-by: Andy Shevchenko Signed-off-by: Wolfram Sang commit 70cd8121ca7dd3b00048d7f8f282c4c028a0f895 Author: Andy Shevchenko Date: Wed Mar 20 15:22:25 2019 +0200 HID: picolcd: Convert to use sysfs_streq() Convert to use sysfs_streq() instead of custom approach. Signed-off-by: Andy Shevchenko Signed-off-by: Jiri Kosina commit 265bd824e17f4d390c4c05a791bc79b745a565b2 Author: Andy Shevchenko Date: Thu Mar 21 12:36:34 2019 +0300 i2c: at91: Convert to use struct i2c_timings Instead of using custom variables and parser, convert the driver to use the ones provided by I2C core. No functional change intended. Signed-off-by: Andy Shevchenko Acked-by: Ludovic Desroches Signed-off-by: Wolfram Sang commit 77f9f7721866c97ea6314e05a83d50fc97bb5b1c Author: Wolfram Sang Date: Tue Mar 19 17:36:38 2019 +0100 HID: hid-sensor-custom: simplify getting .driver_data We should get 'driver_data' from 'struct device' directly. Going via platform_device is an unneeded step back and forth. Signed-off-by: Wolfram Sang Acked-by: Srinivas Pandruvada Reviewed-by: Simon Horman Signed-off-by: Jiri Kosina commit b4e1728232d64b8040dae9b5405cf2db7ebd4e8b Author: Christoph Muellner Date: Fri Mar 22 12:34:53 2019 +0100 arm64: dts: rockchip: Decrease emmc-phy's drive impedance on rk3399-puma The RK3399-Q7 (Puma) requires 33 Ohm drive strength to ensure signal integrity at HS-400 (200MHz clock, DDR signalling). A repeated EMC testing run validates that this increase does not negatively impact EMC compliance (emissions have ample distance to the regulatory limits). Signed-off-by: Christoph Muellner Signed-off-by: Philipp Tomsich Tested-by: Jakob Unterwurzacher Tested-by: Klaus Goger Signed-off-by: Heiko Stuebner commit fb8b7460c9950001b923da446f393c452d0ccf09 Author: Christoph Muellner Date: Fri Mar 22 12:34:52 2019 +0100 arm64: dts: rockchip: Define drive-impedance-ohm for RK3399's emmc-phy. A previous patch introduced the property 'drive-impedance-ohm' for the RK3399's emmc phy node. This patch sets this value explicitly to the default value of 50 Ohm. Signed-off-by: Christoph Muellner Signed-off-by: Philipp Tomsich Signed-off-by: Heiko Stuebner commit 0e694df356c0a24ca0de27cca8f70d900969988a Author: Randolph Maaßen Date: Tue Mar 26 15:30:50 2019 +0100 spi: tegra20-slink: change chip select action order To transfer via SPI the tegra20-slink driver first sets the command register, which contains the chip select value, and after that the command2 register, which contains the chip select line. This leads to a small spike in the chip selct 0 line between the set of the value and the selection of the chip select line. This commit changes the order of the register writes so that first the chip select line is chosen and then the value is set, removing the spike. Signed-off-by: Randolph Maaßen Reviewed-by: Sowjanya Komatineni Signed-off-by: Mark Brown commit 5fb94d46c3179cb7afd805a5a9252111316a926f Author: Viorel Suman Date: Wed Mar 27 09:29:38 2019 +0000 ASoC: fsl_audmix: Fix kbuild failure The format in dev_dbg function must be a constant. Signed-off-by: Viorel Suman Signed-off-by: Mark Brown commit a3eec13b8fd2b9791a21fa16e38dfea8111579bf Author: Christoph Muellner Date: Fri Mar 22 12:38:06 2019 +0100 arm64: dts: rockchip: Disable DCMDs on RK3399's eMMC controller. When using direct commands (DCMDs) on an RK3399, we get spurious CQE completion interrupts for the DCMD transaction slot (#31): [ 931.196520] ------------[ cut here ]------------ [ 931.201702] mmc1: cqhci: spurious TCN for tag 31 [ 931.206906] WARNING: CPU: 0 PID: 1433 at /usr/src/kernel/drivers/mmc/host/cqhci.c:725 cqhci_irq+0x2e4/0x490 [ 931.206909] Modules linked in: [ 931.206918] CPU: 0 PID: 1433 Comm: irq/29-mmc1 Not tainted 4.19.8-rt6-funkadelic #1 [ 931.206920] Hardware name: Theobroma Systems RK3399-Q7 SoM (DT) [ 931.206924] pstate: 40000005 (nZcv daif -PAN -UAO) [ 931.206927] pc : cqhci_irq+0x2e4/0x490 [ 931.206931] lr : cqhci_irq+0x2e4/0x490 [ 931.206933] sp : ffff00000e54bc80 [ 931.206934] x29: ffff00000e54bc80 x28: 0000000000000000 [ 931.206939] x27: 0000000000000001 x26: ffff000008f217e8 [ 931.206944] x25: ffff8000f02ef030 x24: ffff0000091417b0 [ 931.206948] x23: ffff0000090aa000 x22: ffff8000f008b000 [ 931.206953] x21: 0000000000000002 x20: 000000000000001f [ 931.206957] x19: ffff8000f02ef018 x18: ffffffffffffffff [ 931.206961] x17: 0000000000000000 x16: 0000000000000000 [ 931.206966] x15: ffff0000090aa6c8 x14: 0720072007200720 [ 931.206970] x13: 0720072007200720 x12: 0720072007200720 [ 931.206975] x11: 0720072007200720 x10: 0720072007200720 [ 931.206980] x9 : 0720072007200720 x8 : 0720072007200720 [ 931.206984] x7 : 0720073107330720 x6 : 00000000000005a0 [ 931.206988] x5 : ffff00000860d4b0 x4 : 0000000000000000 [ 931.206993] x3 : 0000000000000001 x2 : 0000000000000001 [ 931.206997] x1 : 1bde3a91b0d4d900 x0 : 0000000000000000 [ 931.207001] Call trace: [ 931.207005] cqhci_irq+0x2e4/0x490 [ 931.207009] sdhci_arasan_cqhci_irq+0x5c/0x90 [ 931.207013] sdhci_irq+0x98/0x930 [ 931.207019] irq_forced_thread_fn+0x2c/0xa0 [ 931.207023] irq_thread+0x114/0x1c0 [ 931.207027] kthread+0x128/0x130 [ 931.207032] ret_from_fork+0x10/0x20 [ 931.207035] ---[ end trace 0000000000000002 ]--- The driver shows this message only for the first spurious interrupt by using WARN_ONCE(). Changing this to WARN() shows, that this is happening quite frequently (up to once a second). Since the eMMC 5.1 specification, where CQE and CQHCI are specified, does not mention that spurious TCN interrupts for DCMDs can be simply ignored, we must assume that using this feature is not working reliably. The current implementation uses DCMD for REQ_OP_FLUSH only, and I could not see any performance/power impact when disabling this optional feature for RK3399. Therefore this patch disables DCMDs for RK3399. Signed-off-by: Christoph Muellner Signed-off-by: Philipp Tomsich Fixes: 84362d79f436 ("mmc: sdhci-of-arasan: Add CQHCI support for arasan,sdhci-5.1") Cc: stable@vger.kernel.org [the corresponding code changes are queued for 5.2 so doing that as well] Signed-off-by: Heiko Stuebner commit 01b2a2d52169372d73ec3639620b2b3255d5eb53 Author: Douglas Anderson Date: Mon Mar 25 09:20:05 2019 -0700 ARM: dts: rockchip: Add device tree for rk3288-veyron-mighty Mighty is basically the same Chromebook as Jaq but it has a full-sized SD slot and some different (slightly more rugged) plastics around it. Like Jaq, Mighty may show up with various different brandings but all of them have the same board inside. In the downstream kernel Mighty and Jaq share a "dtsi" and Mighty just adds the SD write protect (needed for a full-sized SD slot). We'll do this upstream by just including the Jaq dts and make the changes. Signed-off-by: Douglas Anderson Signed-off-by: Heiko Stuebner commit d2a6cfdaca9eba061fba08ce9e8866ed500a948d Author: Douglas Anderson Date: Mon Mar 25 09:20:04 2019 -0700 dt-bindings: ARM: dts: rockchip: Add bindings for rk3288-veyron-mighty Mighty is basically the same Chromebook as Jaq but it has a full-sized SD slot and some different (slightly more rugged) plastics around it. Like Jaq, Mighty may show up with various different brandings but all of them have the same board inside. Signed-off-by: Douglas Anderson Reviewed-by: Rob Herring Signed-off-by: Heiko Stuebner commit 006c077041dc73b9490fffc4c6af5befe0687110 Author: Yazen Ghannam Date: Fri Jul 27 16:40:09 2018 -0500 x86/mce: Handle varying MCA bank counts Linux reads MCG_CAP[Count] to find the number of MCA banks visible to a CPU. Currently, this number is the same for all CPUs and a warning is shown if there is a difference. The number of banks is overwritten with the MCG_CAP[Count] value of each following CPU that boots. According to the Intel SDM and AMD APM, the MCG_CAP[Count] value gives the number of banks that are available to a "processor implementation". The AMD BKDGs/PPRs further clarify that this value is per core. This value has historically been the same for every core in the system, but that is not an architectural requirement. Future AMD systems may have different MCG_CAP[Count] values per core, so the assumption that all CPUs will have the same MCG_CAP[Count] value will no longer be valid. Also, the first CPU to boot will allocate the struct mce_banks[] array using the number of banks based on its MCG_CAP[Count] value. The machine check handler and other functions use the global number of banks to iterate and index into the mce_banks[] array. So it's possible to use an out-of-bounds index on an asymmetric system where a following CPU sees a MCG_CAP[Count] value greater than its predecessors. Thus, allocate the mce_banks[] array to the maximum number of banks. This will avoid the potential out-of-bounds index since the value of mca_cfg.banks is capped to MAX_NR_BANKS. Set the value of mca_cfg.banks equal to the max of the previous value and the value for the current CPU. This way mca_cfg.banks will always represent the max number of banks detected on any CPU in the system. This will ensure that all CPUs will access all the banks that are visible to them. A CPU that can access fewer than the max number of banks will find the registers of the extra banks to be read-as-zero. Furthermore, print the resulting number of MCA banks in use. Do this in mcheck_late_init() so that the final value is printed after all CPUs have been initialized. Finally, get bank count from target CPU when doing injection with mce-inject module. [ bp: Remove out-of-bounds example, passify and cleanup commit message. ] Signed-off-by: Yazen Ghannam Signed-off-by: Borislav Petkov Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: linux-edac Cc: Pu Wen Cc: Thomas Gleixner Cc: Tony Luck Cc: Vishal Verma Cc: x86-ml Link: https://lkml.kernel.org/r/20180727214009.78289-1-Yazen.Ghannam@amd.com commit 1792a0f35319af8bf2726ed12bef5194d397d3d1 Author: Geert Uytterhoeven Date: Wed Mar 20 20:44:10 2019 +0100 ARM: dts: rskrza1: Add remaining LEDs Describe the remaining 3 LEDs, which are driven by the first CAT9554 port expander. Drop the superfluous status property from the leds node while at it. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman commit 129ca9e185ab34e939eab91ef8f10c115fc43ba5 Author: Geert Uytterhoeven Date: Wed Mar 20 20:44:09 2019 +0100 ARM: dts: rskrza1: Add I2C support Enable the I2C bus, and add the following devices: - Two CAT9554 port expanders (8 GPIOs, interrupt not wired by default), - R1EX24016ASAS0A EEPROM. The bus also contains a MAX9856 Audio Codec, which is not yet supported. All devices (incl. the audio codec) are documented to support an I2C bus running at 400 kHz. Pinctrl is based on the RZ/A BSP. Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman commit e3414b8c45afa5cdfb1ffd10f5334da3458c4aa5 Author: Laurent Pinchart Date: Sun Aug 19 22:44:55 2018 +0300 arm64: dts: renesas: salvator-common: Add GPIO keys support The Salvator-X and XS boards have a 4 lines DIP switch and 3 push buttons connected to SoC GPIOs, meant to be used as general-purpose test keys. Add a corresponding node in DT, mapping (semi-randomly) the DIP switch to keys 1-4 and the push buttons to keys A-C. Signed-off-by: Laurent Pinchart Signed-off-by: Simon Horman commit 9d5549d8a865793a1faf6ac9a48df08a3e850af6 Author: Ville Syrjälä Date: Fri Mar 22 19:42:44 2019 +0200 drm/edid: Remove defunct EDID_QUIRK_FIRST_DETAILED_PREFERRED Looks like EDID_QUIRK_FIRST_DETAILED_PREFERRED never did anything. Its counterpart in f86EdidModes.c is properly hooked up but somehow that functionality was lost when it was copied into the kernel. The concensus seems to be that this quirk is a bit misguided anyway so let's nuke the leftovers. For posterity here are some links to known cases: * Proview AY765C https://bugs.freedesktop.org/show_bug.cgi?id=15160 * Unknown Acer https://bugzilla.redhat.com/show_bug.cgi?id=284231 (got the reference from xf86EdidModes.c) * Peacock Ergovision 19 (only in xf86EdidModes.c) https://bugzilla.redhat.com/show_bug.cgi?id=492359 * Philips 107p5 CRT "Reported on xorg@ with pastebin", didn't find the mail(s) Cc: Adam Jackson Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190322174244.23945-1-ville.syrjala@linux.intel.com Reviewed-by: Jani Nikula Reviewed-by: Adam Jackson commit a9282a8e696683b83dbe98db9541505968be6967 Author: Ville Syrjälä Date: Tue Mar 26 19:34:01 2019 +0200 drm/uapi: Remove unused DRM_DISPLAY_INFO_LEN Remove the unused DRM_DISPLAY_INFO_LEN from the uapi headers. I presume the original plan was to expose the display name via getconnector, but looks like that never happened. So we have the define for the length of the string but no string anywhere. A quick scan didn't seem to reveal userspace referencing this so hopefully we can just nuke it. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190326173401.7329-4-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter commit 35f51863e30db67f967a21447e897cbab111d39c Author: Ville Syrjälä Date: Tue Mar 26 19:34:00 2019 +0200 drm: Kill drm_display_info.name drm_display_info.name is only ever set by a few panel drivers but never actually used anywhere except in i915 debugfs code. Trash it. v2: Fix typo in commit msg (Sam Ravnborg) Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190326173401.7329-3-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter commit a9ab81d9f52afb8a6aec9399205753cb57ca3730 Author: Ville Syrjälä Date: Tue Mar 26 19:33:59 2019 +0200 drm: Fix tabs vs. spaces A set of 8 spaces has snuck in. Replace with a tab, and toss in an extra newline while at it. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190326173401.7329-2-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter commit ee7f5cbed2eb30777b57326eb6f9925e5f45a52b Author: Ville Syrjälä Date: Tue Mar 26 19:33:58 2019 +0200 drm: Nuke unused drm_display_info.pixel_clock drm_display_info.pixel_clock is unused. Let's get rid of it. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190326173401.7329-1-ville.syrjala@linux.intel.com Reviewed-by: Daniel Vetter commit 7a516e49d9753119e099fd924574a58e69c9ae84 Author: Jiada Wang Date: Tue Mar 26 18:58:26 2019 +0900 arm64: dts: renesas: use extended audio dmac register Basic audio dmac register only supports busif from 0 to 3, in order to use busif4 ~ busif7, extended audio dmac register need to be used. This patch updates H3 (= r8a7795), M3-W (= r8a7796) and M3-N (=r8a77965) to use extended audio dmac register set. Signed-off-by: Jiada Wang Acked-by: Kuninori Morimoto Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman commit 05f1d882d28b871f0c32a6307c7777fa834b2541 Author: Kazuya Mizuguchi Date: Wed Feb 13 11:32:55 2019 +0100 arm64: dts: renesas: r8a77995: draak: Fix EthernetAVB phy mode to rgmii According to the R-Car Gen3 Hardware Manual Errata for Rev 1.00 of August 24, 2018, the TX clock internal Delay mode does'nt support on R-Car D3. This patch fixes EthernetAVB phy mode to rgmii. This is achieved by simply dropping the phy-mode property from r8a77995-draak.dts as the default property for this for r8a77995, as set in r8a77995.dtsi, is "rgmii". Signed-off-by: Kazuya Mizuguchi Signed-off-by: Takeshi Kihara Signed-off-by: Simon Horman Tested-by: Ulrich Hecht commit de8e8daaf7190efd650bf9d6fed12927c660f235 Author: Takeshi Kihara Date: Fri Mar 22 10:25:02 2019 +0100 arm64: dts: renesas: salvator-common: Sort node label This patch sorts the node label to improve maintainability. The sort has been done alphabetically with the node label name as the key. This patch does not include functional changes. Signed-off-by: Takeshi Kihara Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman commit e2fa79de7ecbef43c35ccd7fbd40b0fb3b16c767 Author: Magnus Damm Date: Tue Mar 19 22:42:48 2019 +0900 arm64: dts: renesas: Update Ebisu and Draak bootargs Update Ebisu and Draak bootargs to match other boards Signed-off-by: Magnus Damm Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman commit f19501aa07f18268ab14f458b51c1c6b7f72a134 Author: Tony Luck Date: Tue Mar 12 10:09:38 2019 -0700 x86/mce: Fix machine_check_poll() tests for error types There has been a lurking "TBD" in the machine check poll routine ever since it was first split out from the machine check handler. The potential issue is that the poll routine may have just begun a read from the STATUS register in a machine check bank when the hardware logs an error in that bank and signals a machine check. That race used to be pretty small back when machine checks were broadcast, but the addition of local machine check means that the poll code could continue running and clear the error from the bank before the local machine check handler on another CPU gets around to reading it. Fix the code to be sure to only process errors that need to be processed in the poll code, leaving other logged errors alone for the machine check handler to find and process. [ bp: Massage a bit and flip the "== 0" check to the usual !(..) test. ] Fixes: b79109c3bbcf ("x86, mce: separate correct machine check poller and fatal exception handler") Fixes: ed7290d0ee8f ("x86, mce: implement new status bits") Reported-by: Ashok Raj Signed-off-by: Tony Luck Signed-off-by: Borislav Petkov Cc: Ashok Raj Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: linux-edac Cc: Thomas Gleixner Cc: x86-ml Cc: Yazen Ghannam Link: https://lkml.kernel.org/r/20190312170938.GA23035@agluck-desk commit 547fcf9b1c608cf5c43c156a8773a94c6a38dc44 Author: José Roberto de Souza Date: Tue Mar 26 16:02:23 2019 -0700 drm/i915/icl: Fix VEBOX mismatch BUG_ON() GT VEBOX DISABLE is only 4 bits wide but it was using a 8 bits wide mask, the remaning reserved bits is set to 0 causing 4 more nonexistent VEBOX engines being detected as enabled, triggering the BUG_ON() because of mismatch between vebox_mask and newly added VEBOX_MASK(). [ 64.081621] [drm:intel_device_info_init_mmio [i915]] vdbox enable: 0005, instances: 0005 [ 64.081763] [drm:intel_device_info_init_mmio [i915]] vebox enable: 00f1, instances: 0001 [ 64.081825] intel_device_info_init_mmio:925 GEM_BUG_ON(vebox_mask != ({ unsigned int first__ = (VECS0); unsigned int count__ = (2); ((&(dev_priv)->__info)->engine_mask & (((~0UL) - (1UL << (first__)) + 1) & (~0UL >> (64 - 1 - (first__ + count__ - 1))))) >> first__; })) [ 64.082047] ------------[ cut here ]------------ [ 64.082054] kernel BUG at drivers/gpu/drm/i915/intel_device_info.c:925! BSpec: 20680 Fixes: 9511cb6481af ("drm/i915: Adding missing '; ' to ENGINE_INSTANCES") Fixes: 26376a7e74d2 ("drm/i915/icl: Check for fused-off VDBOX and VEBOX instances") Cc: Chris Wilson Cc: Tvrtko Ursulin Cc: Oscar Mateo Signed-off-by: José Roberto de Souza Reviewed-by: Tvrtko Ursulin Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190326230223.26336-1-jose.souza@intel.com commit 168b85e9b2237d3507255dad484eae2399d6b270 Author: Daniel Vetter Date: Tue Mar 26 14:20:08 2019 +0100 drm/fb-helper: Unexport fill_{var,info} Not used by drivers anymore. v2: Rebase Reviewed-by: Noralf Trønnes Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190326132008.11781-21-daniel.vetter@ffwll.ch commit 5a3887ba8a529682a71740308e4e67b30a2b87b4 Author: Daniel Vetter Date: Tue Mar 26 14:20:06 2019 +0100 drm/udl: Use drm_fb_helper_fill_info This should not result in any changes. v2: Rebase v3: Don't forget to remove the info->par assignment (Noralf) Acked-by: Noralf Trønnes Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter Cc: Dave Airlie Cc: Sean Paul Cc: Mikulas Patocka Cc: Daniel Vetter Cc: Greg Kroah-Hartman Cc: Emil Lundmark Link: https://patchwork.freedesktop.org/patch/msgid/20190326132008.11781-19-daniel.vetter@ffwll.ch commit c8613fc6293b0f8c1d303c991338d085cf4d9f12 Author: Daniel Vetter Date: Tue Mar 26 14:20:07 2019 +0100 drm/vboxvideo: Use drm_fb_helper_fill_info This should not result in any changes. v2: Rebase over vbox changes - vbox gained it's own line to fill fix.id. v3: Rebase Reviewed-by: Noralf Trønnes Reviewed-by: Alex Deucher Reviewed-by: Greg Kroah-Hartman (v2) Signed-off-by: Daniel Vetter Cc: Greg Kroah-Hartman Cc: Hans de Goede Cc: Daniel Vetter Cc: Alexander Kapshuk Cc: Bartlomiej Zolnierkiewicz Link: https://patchwork.freedesktop.org/patch/msgid/20190326132008.11781-20-daniel.vetter@ffwll.ch commit 4a536934e6c97708ebe725977bc329bdf306ad78 Author: Daniel Vetter Date: Tue Mar 26 14:20:05 2019 +0100 drm/tegra: Use drm_fb_helper_fill_info Another driver that didn't set fbinfo->fix.id before. v2: Fix subject and rebase Reviewed-by: Noralf Trønnes Reviewed-by: Alex Deucher Acked-by: Thierry Reding Signed-off-by: Daniel Vetter Cc: Thierry Reding Cc: Jonathan Hunter Cc: linux-tegra@vger.kernel.org Link: https://patchwork.freedesktop.org/patch/msgid/20190326132008.11781-18-daniel.vetter@ffwll.ch commit 668447e5aa3d883485a51dc47b83de5fca05f25a Author: Daniel Vetter Date: Tue Mar 26 14:20:04 2019 +0100 drm/rockchip: Use drm_fb_helper_fill_info This will set an fb name for the first time! v2: Rebase Reviewed-by: Noralf Trønnes Reviewed-by: Alex Deucher Reviewed-by: Heiko Stuebner Signed-off-by: Daniel Vetter Cc: Sandy Huang Cc: "Heiko Stübner" Cc: linux-arm-kernel@lists.infradead.org Cc: linux-rockchip@lists.infradead.org Link: https://patchwork.freedesktop.org/patch/msgid/20190326132008.11781-17-daniel.vetter@ffwll.ch commit 19d8a4e3d91fda26a20bd1a4c89ee92ca8e330c4 Author: Daniel Vetter Date: Tue Mar 26 14:20:03 2019 +0100 drm/radeon: Use drm_fb_helper_fill_info This should not result in any changes. v2: Rebase Acked-by: Noralf Trønnes Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter Cc: Alex Deucher Cc: "Christian König" Cc: "David (ChunMing) Zhou" Cc: amd-gfx@lists.freedesktop.org Link: https://patchwork.freedesktop.org/patch/msgid/20190326132008.11781-16-daniel.vetter@ffwll.ch commit e8f9ad5a00ada5c12912b9fcf80e4aa17c0eea8a Author: Daniel Vetter Date: Tue Mar 26 14:20:02 2019 +0100 drm/omap: Use drm_fb_helper_fill_info This changes the fb name from "omapdrm" to "omapdrmfb". v2: Rebase Reviewed-by: Noralf Trønnes Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter Cc: Tomi Valkeinen Link: https://patchwork.freedesktop.org/patch/msgid/20190326132008.11781-15-daniel.vetter@ffwll.ch commit f243dd06180a4a7ff4145ce0c7d62ea1b2267515 Author: Daniel Vetter Date: Tue Mar 26 14:20:01 2019 +0100 drm/nouveau: Use drm_fb_helper_fill_info This changes the fb name from "nouveaufb" to "nouveaudrmfb". Aside: I wonder whether the in_interrupt() check is good enough for the nouveau acceleration. Cargo-cult says drm_can_sleep() is needed, which isn't actually working if you pick a .config without PREEMPT. For the generic fbdev defio support we've gone with offloading everything to a worker. For the non-accel callbacks (set_par, blank and friends) checking for oops_in_progress is good enough to catch all the evil calling contexts. v2: Rebase Acked-by: Noralf Trønnes Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter Cc: Ben Skeggs Cc: nouveau@lists.freedesktop.org Link: https://patchwork.freedesktop.org/patch/msgid/20190326132008.11781-14-daniel.vetter@ffwll.ch commit d4eae71f815eeab73561c532bfbca6b44a1f720f Author: Daniel Vetter Date: Tue Mar 26 14:20:00 2019 +0100 drm/msm: Use drm_fb_helper_fill_info This will change the fb name from "msm" to "msmdrmfb". v2: Rebase v3: Fix subject prefix (Noralf) Reviewed-by: Noralf Trønnes Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter Cc: Rob Clark Cc: linux-arm-msm@vger.kernel.org Cc: freedreno@lists.freedesktop.org Link: https://patchwork.freedesktop.org/patch/msgid/20190326132008.11781-13-daniel.vetter@ffwll.ch commit 82367d80d8e9dd9f8fca64f5e7ee3e25ff5127a8 Author: Daniel Vetter Date: Tue Mar 26 14:19:59 2019 +0100 drm/mga200g: Use drm_fb_helper_fill_info Only changes the name of the fb from "mgadrmfb" to "mga200drmfb". v2: Rebase v3: Note the name change (Noralf) Acked-by: Noralf Trønnes Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter Cc: Dave Airlie Cc: Alex Deucher Cc: "Christian König" Cc: Junwei Zhang Cc: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190326132008.11781-12-daniel.vetter@ffwll.ch commit 7a0f9ef9703d4ac938ab790e6188b99712ff1568 Author: Daniel Vetter Date: Tue Mar 26 14:19:58 2019 +0100 drm/i915: Use drm_fb_helper_fill_info This changes the fb name from "inteldrmfb" to "i915drmfb". v2: Rebase Reviewed-by: Noralf Trønnes Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter Cc: Jani Nikula Cc: Joonas Lahtinen Cc: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org Link: https://patchwork.freedesktop.org/patch/msgid/20190326132008.11781-11-daniel.vetter@ffwll.ch commit 2b617b14536ce16a9a9cf6c2565892374dbab471 Author: Daniel Vetter Date: Tue Mar 26 14:19:57 2019 +0100 drm/hibmc: Use drm_fb_helper_fill_info Should not result in any changes. v2: Rebase Acked-by: Noralf Trønnes Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter Cc: Alex Deucher Cc: Junwei Zhang Cc: Xinliang Liu Cc: "Christian König" Cc: Ajit Negi Cc: Souptick Joarder Cc: Daniel Vetter Cc: John Garry Link: https://patchwork.freedesktop.org/patch/msgid/20190326132008.11781-10-daniel.vetter@ffwll.ch commit abfe3c4560684864f66641438fee3075de098e89 Author: Joe Lawrence Date: Tue Mar 26 11:26:01 2019 -0400 selftests/livepatch: use TEST_PROGS for test scripts Adrian reports that 'make -C tools clean' results in removal of the livepatch selftest shell scripts. As per the selftest lib.mk file, TEST_PROGS are for test shell scripts, not TEST_GEN_PROGS. Adjust the livepatch selftest Makefile accordingly. Reported-by: Adrian Hunter Signed-off-by: Joe Lawrence Tested-by: Adrian Hunter Signed-off-by: Petr Mladek commit dfec164ea90c5087cd811bd2b3de0d0fffa3a4f3 Author: Daniel Vetter Date: Tue Mar 26 14:19:56 2019 +0100 drm/gma500: Use drm_fb_helper_fill_info This will change the fb name from "psbdrmfb" to "gma500drmfb". v2: Rebase Acked-by: Noralf Trønnes Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter Cc: Patrik Jakobsson Link: https://patchwork.freedesktop.org/patch/msgid/20190326132008.11781-9-daniel.vetter@ffwll.ch commit fb68e5969fc66923a917ff1679d716b7394514e5 Author: Daniel Vetter Date: Tue Mar 26 14:19:55 2019 +0100 drm/exynos: Use drm_fb_helper_fill_info This will give the exynos fbdev a name! v2: Rebase Reviewed-by: Noralf Trønnes Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter Cc: Inki Dae Cc: Joonyoung Shim Cc: Seung-Woo Kim Cc: Kyungmin Park Cc: Kukjin Kim Cc: Krzysztof Kozlowski Cc: linux-arm-kernel@lists.infradead.org Cc: linux-samsung-soc@vger.kernel.org Link: https://patchwork.freedesktop.org/patch/msgid/20190326132008.11781-8-daniel.vetter@ffwll.ch commit f68aeae67170f731daeae2feb39858c4bf55bb5c Author: Daniel Vetter Date: Tue Mar 26 14:19:54 2019 +0100 drm/cirrus: Use drm_fb_helper_fill_info Should not result in any changes. v2: Rebase Acked-by: Noralf Trønnes Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter Cc: Gerd Hoffmann Link: https://patchwork.freedesktop.org/patch/msgid/20190326132008.11781-7-daniel.vetter@ffwll.ch commit 2f5791cd03b9d4b649c4871e48c18dba6101eb58 Author: Daniel Vetter Date: Tue Mar 26 14:19:53 2019 +0100 drm/ast: Use drm_fb_helper_fill_info Should not result in any changes. v2: Rebase Acked-by: Noralf Trønnes Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter Cc: Dave Airlie Cc: Junwei Zhang Cc: Alex Deucher Cc: "Christian König" Cc: Daniel Vetter Cc: Sean Paul Cc: YueHaibing Cc: Sam Bobroff Link: https://patchwork.freedesktop.org/patch/msgid/20190326132008.11781-6-daniel.vetter@ffwll.ch commit f21b6e47eb1dd0c719487338cecd4a9cd983ed43 Author: Daniel Vetter Date: Tue Mar 26 14:19:52 2019 +0100 drm/armada: Use drm_fb_helper_fill_info Only changes the name of the fb from "armada-drmfb" to armadadrmfb. v2: Rebase v3: Fix commit message (Noralf) Reviewed-by: Noralf Trønnes Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter Cc: Russell King Link: https://patchwork.freedesktop.org/patch/msgid/20190326132008.11781-5-daniel.vetter@ffwll.ch commit bb1c08f9828889ebe3496cf94f6a5f9d6c27fdaf Author: Daniel Vetter Date: Tue Mar 26 14:19:51 2019 +0100 drm/amdgpu: Use drm_fb_helper_fill_info Should not cause any changes. v2: Rebase Reviewed-by: Noralf Trønnes Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter Cc: Alex Deucher Cc: "Christian König" Cc: Samuel Li Cc: "Michel Dänzer" Cc: Huang Rui Cc: Junwei Zhang Cc: Daniel Vetter Cc: Daniel Stone Cc: Shirish S Link: https://patchwork.freedesktop.org/patch/msgid/20190326132008.11781-4-daniel.vetter@ffwll.ch commit ecbfc474f0df67e827bc1d9f39111c05bbef786a Author: Daniel Vetter Date: Tue Mar 26 14:19:50 2019 +0100 drm/fb_helper: set info->par in fill_info() The fbdev emulation helpers pretty much assume that this is set. Let's do it for everyone. Reviewed-by: Sam Ravnborg Cc: Sam Ravnborg Reviewed-by: Noralf Trønnes Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190326132008.11781-3-daniel.vetter@ffwll.ch commit f1eca684b71375f688bc5c29fcb6013ab78c35f3 Author: Daniel Vetter Date: Tue Mar 26 14:19:49 2019 +0100 drm/fb-helper: set fbi->fix.id in fill_info() Looking at the oldest/most popular drivers ${driver}drmfb seems to be the standard, except i915.ko went with "inteldrmfb". I guess renaming that for consistency won't hurt, it definitely confused me when I started with kms 10 years ago. I hope this never became uapi ... worst case drivers can overwrite it after having called fill_info(). Since subsequent patches change this for some drivers later on in the series, here's the exhaustive list of where all fix.id is used: - /proc/fb which prints the minor number and fix.id name. - per-fb sysfs name file - getfix ioctl, which is used by fbset only to print out the name when dumping information - lots and lots of places in dmesg, anytime anything happens with an fbdev really I think minimal to 0 chances that changing this will screw up a config script or something, since outside of informational message it's not used by anything to identify which fbdev maps to which minor. After all the last fbset release is from 1999, and that predates even devfs I think. v2: Rebase and amend commit message, thanks to Ilia for pointing out that this needs to be spelled out. Cc: Ilia Mirkin Reviewed-by: Noralf Trønnes Reviewed-by: Alex Deucher Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190326132008.11781-2-daniel.vetter@ffwll.ch commit 3df3116ab4b164942cdc081a490d188eb9bc43ac Author: Daniel Vetter Date: Tue Mar 26 14:19:48 2019 +0100 drm/fb-helper: Add fill_info() functions The fbdev split between fix and var information is kinda pointless for drm drivers since everything is fixed: The fbdev emulation doesn't support changing modes at all. Create a new simplified helper and use it in the generic fbdev helper code. Follow-up patches will beef it up more and roll it out to all drivers. v2: We need to keep sizes, since they might not match the fb dimensions (Noralf) v3: Fix typo in commit message and remove extraneous line in kerneldoc (Noralf) Reviewed-by: Noralf Trønnes Reviewed-by: Alex Deucher Cc: Noralf Trønnes Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190326132008.11781-1-daniel.vetter@ffwll.ch commit 98721b84bc8319ffcbc450ca7de032702248b2ba Author: Daniele Ceraolo Spurio Date: Tue Mar 26 16:38:17 2019 -0700 drm/i915: fix i386 build of 64b raw_uncore functions When building with ARCH=i386, readq and writeq are not defined, resulting in: intel_uncore.h: In function ‘__raw_uncore_read64’: intel_uncore.h:257:9: error: implicit declaration of function ‘readq’; did you mean ‘readl’? [-Werror=implicit-function-declaration] return read##s__(uncore->regs + i915_mmio_reg_offset(reg)); \ ^ and: intel_uncore.h: In function ‘__raw_uncore_write64’: intel_uncore.h:264:2: error: implicit declaration of function ‘writeq’; did you mean ‘writel’? [-Werror=implicit-function-declaration] write##s__(val, uncore->regs + i915_mmio_reg_offset(reg)); \ ^ Add the io-64-nonatomic-lo-hi include to have readq and writeq available for all builds. This header internally includes linux/io.h, so the native readq and writeq definitions will be used when available. Fixes: 6cc5ca768825 ("drm/i915: rename raw reg access functions") Signed-off-by: Daniele Ceraolo Spurio Cc: Chris Wilson Cc: Paulo Zanoni Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190326233817.5417-1-daniele.ceraolospurio@intel.com commit cab8e3e20d5cb89c876c30d24d38f1caf1d9bdb8 Author: Oded Gabbay Date: Wed Mar 27 09:44:28 2019 +0200 habanalabs: improve error messages This patch improves two error messages to help the user to better understand what error occurred. Signed-off-by: Oded Gabbay commit 5133a4a800fd3a5d1ab7c016196fd416af3a3f1c Merge: fa7e428c6b7e b4b6aa83433e Author: David S. Miller Date: Tue Mar 26 21:44:13 2019 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next Alexei Starovoitov says: ==================== pull-request: bpf-next 2019-03-26 The following pull-request contains BPF updates for your *net-next* tree. The main changes are: 1) introduce bpf_tcp_check_syncookie() helper for XDP and tc, from Lorenz. 2) allow bpf_skb_ecn_set_ce() in tc, from Peter. 3) numerous bpf tc tunneling improvements, from Willem. 4) and other miscellaneous improvements from Adrian, Alan, Daniel, Ivan, Stanislav. ==================== Signed-off-by: David S. Miller commit 8d93e952fba216cd0811247f6360d97e0465d5fc Author: Denis Efremov Date: Tue Feb 26 23:49:12 2019 +0300 LSM: lsm_hooks.h: fix documentation format Fix for name mismatch and omitted colons in the security_list_options documentation. Signed-off-by: Denis Efremov Acked-by: Kees Cook Acked-by: Casey Schaufler Signed-off-by: James Morris commit 9c53cb9d5648e9daacf6a21bcd8bb2919bed3536 Author: Denis Efremov Date: Tue Feb 26 23:49:11 2019 +0300 LSM: fix documentation for the shm_* hooks The shm_* hooks were changed in the commit "shm/security: Pass kern_ipc_perm not shmid_kernel into the shm security hooks" (7191adff2a55). The type of the argument shp was changed from shmid_kernel to kern_ipc_perm. This patch updates the documentation for the hooks accordingly. Signed-off-by: Denis Efremov Acked-by: Kees Cook Acked-by: Casey Schaufler Signed-off-by: James Morris commit e9220bc8b79aebfaa8bc4fee2e8785618daeb42a Author: Denis Efremov Date: Tue Feb 26 23:49:10 2019 +0300 LSM: fix documentation for the sem_* hooks The sem_* hooks were changed in the commit "sem/security: Pass kern_ipc_perm not sem_array into the sem security hooks" (aefad9593ec5). The type of the argument sma was changed from sem_array to kern_ipc_perm. This patch updates the documentation for the hooks accordingly. Signed-off-by: Denis Efremov Acked-by: Kees Cook Acked-by: Casey Schaufler Signed-off-by: James Morris commit ab012bc83615e843f14d6ba2556f52c60ecf121f Author: Denis Efremov Date: Tue Feb 26 23:49:09 2019 +0300 LSM: fix documentation for the msg_queue_* hooks The msg_queue_* hooks were changed in the commit "msg/security: Pass kern_ipc_perm not msg_queue into the msg_queue security hooks" (d8c6e8543294). The type of the argument msq was changed from msq_queue to kern_ipc_perm. This patch updates the documentation for the hooks accordingly. Signed-off-by: Denis Efremov Acked-by: Kees Cook Acked-by: Casey Schaufler Signed-off-by: James Morris commit 5fdd268f6eb8e84f04ae2458cc640f7c7331dd19 Author: Denis Efremov Date: Tue Feb 26 23:49:08 2019 +0300 LSM: fix documentation for the audit_* hooks This patch updates the documentation for the audit_* hooks to use the same arguments names as in the hook's declarations. Signed-off-by: Denis Efremov Acked-by: Kees Cook Acked-by: Casey Schaufler Signed-off-by: James Morris commit 6b6b6476a32f763843c9a3c91dff4d91faa1267e Author: Denis Efremov Date: Tue Feb 26 23:49:07 2019 +0300 LSM: fix documentation for the path_chmod hook The path_chmod hook was changed in the commit "switch security_path_chmod() to struct path *" (cdcf116d44e7). The argument @mnt was removed from the hook, @dentry was changed to @path. This patch updates the documentation accordingly. Signed-off-by: Denis Efremov Acked-by: Kees Cook Acked-by: Casey Schaufler Signed-off-by: James Morris commit 2f991d7ae86a81eba7e564a0f054d9e5dbfbfe34 Author: Denis Efremov Date: Tue Feb 26 23:49:06 2019 +0300 LSM: fix documentation for the socket_getpeersec_dgram hook The socket_getpeersec_dgram hook was changed in the commit "[AF_UNIX]: Kernel memory leak fix for af_unix datagram getpeersec patch" (dc49c1f94e34). The arguments @secdata and @seclen were changed to @sock and @secid. This patch updates the documentation accordingly. Signed-off-by: Denis Efremov Acked-by: Kees Cook Acked-by: Casey Schaufler Signed-off-by: James Morris commit a890e6378201626d1723f4f2b92a017e141c1144 Author: Denis Efremov Date: Tue Feb 26 23:49:05 2019 +0300 LSM: fix documentation for the task_setscheduler hook The task_setscheduler hook was changed in the commit "security: remove unused parameter from security_task_setscheduler()" (b0ae19811375). The arguments @policy, @lp were removed from the hook. This patch updates the documentation accordingly. Signed-off-by: Denis Efremov Acked-by: Kees Cook Acked-by: Casey Schaufler Signed-off-by: James Morris commit 68b3edbd9fd852e7fb5aae0f84f99bf2b19b97cb Author: Denis Efremov Date: Tue Feb 26 23:49:04 2019 +0300 LSM: fix documentation for the socket_post_create hook This patch slightly fixes the documentation for the socket_post_create hook. The documentation states that i_security field is accessible through inode field of socket structure (i.e., 'sock->inode->i_security'). There is no inode field in the socket structure. The i_security field is accessible through SOCK_INODE macro. The patch updates the documentation to reflect this. Signed-off-by: Denis Efremov Acked-by: Kees Cook Acked-by: Casey Schaufler Signed-off-by: James Morris commit 5f4b97555c2e54bc5555be9d8a14ac07ddf82345 Author: Denis Efremov Date: Tue Feb 26 23:49:03 2019 +0300 LSM: fix documentation for the syslog hook The syslog hook was changed in the commit "capabilities/syslog: open code cap_syslog logic to fix build failure" (12b3052c3ee8). The argument @from_file was removed from the hook. This patch updates the documentation for the syslog hook accordingly. Signed-off-by: Denis Efremov Acked-by: Kees Cook Acked-by: Casey Schaufler Signed-off-by: James Morris commit 733e4467dd068922d64e8b42530ea9b2784175dd Author: Denis Efremov Date: Tue Feb 26 23:49:02 2019 +0300 LSM: fix documentation for sb_copy_data hook The @type argument of the sb_copy_data hook was removed in the commit "LSM/SELinux: Interfaces to allow FS to control mount options" (e0007529893c). This commit removes the description of the @type argument from the LSM documentation. Signed-off-by: Denis Efremov Acked-by: Kees Cook Acked-by: Casey Schaufler Signed-off-by: James Morris commit 9d7b7bfbafba5e6cad609f1188243a7f0cd0d293 Merge: 468e91cecb32 8c2ffd917477 Author: James Morris Date: Tue Mar 26 16:28:01 2019 -0700 Merge tag 'v5.1-rc2' into next-general Merge to Linux 5.1-rc2 for subsystems to work with. commit fc00c6a416381010c4a721a4142ddd0260d68f20 Author: Yazen Ghannam Date: Thu Feb 28 15:36:12 2019 +0000 EDAC/amd64: Adjust printed chip select sizes when interleaved AMD systems may support chip select interleaving. However, on family 17h+ this was not taken into account when printing the chip select sizes. Add support to detect if chip selects are interleaved on family 17h+, and adjust the sizes accordingly. Signed-off-by: Yazen Ghannam Signed-off-by: Borislav Petkov Tested-by: Kim Phillips Cc: James Morse Cc: Mauro Carvalho Chehab Cc: linux-edac Link: https://lkml.kernel.org/r/20190228153558.127292-6-Yazen.Ghannam@amd.com commit 0a227af521d6df5286550b62f4b591417170b4ea Author: Yazen Ghannam Date: Thu Feb 28 15:36:11 2019 +0000 EDAC/amd64: Support more than two controllers for chip select handling The struct chip_select array that's used for saving chip select bases and masks is fixed at length of two. There should be one struct chip_select for each controller, so this array should be increased to support systems that may have more than two controllers. Increase the size of the struct chip_select array to eight, which is the largest number of controllers per die currently supported on AMD systems. Also, carve out the Family 17h+ reading of the bases/masks into a separate function. This effectively reverts the original bases/masks reading code to before Family 17h support was added. Signed-off-by: Yazen Ghannam Signed-off-by: Borislav Petkov Tested-by: Kim Phillips Cc: James Morse Cc: Mauro Carvalho Chehab Cc: linux-edac Link: https://lkml.kernel.org/r/20190228153558.127292-5-Yazen.Ghannam@amd.com commit 7835961d377b75ab9ae77f715e378fcb72508306 Author: Yazen Ghannam Date: Thu Feb 28 15:36:11 2019 +0000 EDAC/amd64: Recognize x16 symbol size Future AMD systems may support x16 symbol sizes. Recognize if a system is using x16 symbol size. Also, simplify the print statement. Note that a x16 syndrome vector table is not necessary like with x4 or x8 syndromes. This is because systems that support x16 symbol sizes are SMCA systems and in that case, the syndrome can be directly extracted from the MCA_SYND[Syndrome] field. [ bp: massage. ] Signed-off-by: Yazen Ghannam Signed-off-by: Borislav Petkov Tested-by: Kim Phillips Cc: James Morse Cc: Mauro Carvalho Chehab Cc: linux-edac Link: https://lkml.kernel.org/r/20190228153558.127292-4-Yazen.Ghannam@amd.com commit 869adc4316ea348e3c52af2494d9b1f6bd68abbd Author: Yazen Ghannam Date: Mon Mar 25 20:33:30 2019 +0000 EDAC/amd64: Set maximum channel layer size depending on family The AMD64 EDAC module currently hardcodes the EDAC channel layer size count to two. Future AMD systems may have more channels than this. Set the EDAC channel layer size equal to the maximum number of channels possible for the system. On Family 17h and later, this is set in the num_umcs variable. Older systems will continue to use two as the default. Signed-off-by: Yazen Ghannam Signed-off-by: Borislav Petkov Cc: James Morse Cc: Mauro Carvalho Chehab Cc: linux-edac Link: https://lkml.kernel.org/r/20190325203319.7603-1-Yazen.Ghannam@amd.com commit bdcee7747f5c490297665af0e1e0fbeb4368804d Author: Yazen Ghannam Date: Thu Feb 28 15:36:10 2019 +0000 EDAC/amd64: Support more than two Unified Memory Controllers The first few models of Family 17h all had 2 Unified Memory Controllers per Die, so this was treated as a fixed value. However, future systems may have more Unified Memory Controllers per Die. Related to this, the channel number and base address of a Unified Memory Controller were found by matching on fixed, known values. However, current and future systems follow this pattern for the channel number and base address of a Unified Memory Controller: 0xYXXXXX, where Y is the channel number. So matching on hardcoded values is not necessary. Set the number of Unified Memory Controllers at driver init time based on the family/model. Also, update the functions that find the channel number and base address of a Unified Memory Controller to support more than two. [ bp: Move num_umcs into the .c file and simplify comment. ] Signed-off-by: Yazen Ghannam Signed-off-by: Borislav Petkov Tested-by: Kim Phillips Cc: James Morse Cc: Mauro Carvalho Chehab Cc: linux-edac Link: https://lkml.kernel.org/r/20190228153558.127292-3-Yazen.Ghannam@amd.com commit 4d30d2bc3c23e63c2608bc5b03b0960490d5b740 Author: Yazen Ghannam Date: Thu Feb 28 15:36:10 2019 +0000 EDAC/amd64: Use a macro for iterating over Unified Memory Controllers Define and use a macro for looping over the number of Unified Memory Controllers. No functional change. Signed-off-by: Yazen Ghannam Signed-off-by: Borislav Petkov Tested-by: Kim Phillips Cc: James Morse Cc: Mauro Carvalho Chehab Cc: linux-edac Link: https://lkml.kernel.org/r/20190228153558.127292-2-Yazen.Ghannam@amd.com commit 6e846239e5487cbb89ac8192d5f11437d010130e Author: Yazen Ghannam Date: Thu Feb 28 15:36:09 2019 +0000 EDAC/amd64: Add Family 17h Model 30h PCI IDs Add the new Family 17h Model 30h PCI IDs to the AMD64 EDAC module. This also fixes a probe failure that appeared when some other PCI IDs for Family 17h Model 30h were added to the AMD NB code. Fixes: be3518a16ef2 (x86/amd_nb: Add PCI device IDs for family 17h, model 30h) Signed-off-by: Yazen Ghannam Signed-off-by: Borislav Petkov Tested-by: Kim Phillips Cc: James Morse Cc: Mauro Carvalho Chehab Cc: linux-edac Link: https://lkml.kernel.org/r/20190228153558.127292-1-Yazen.Ghannam@amd.com commit 64f4b9437f7c36814966c2132c2ab443a67a6710 Author: Anirudh Venkataramanan Date: Tue Feb 19 15:04:11 2019 -0800 ice: Remove "2 BITS" comment Some enums in ice_tx_desc_cmd_bits have a trailing /* 2 BITS */ comment, but the value has just one bit set (ex. ICE_TX_DESC_CMD_L4T_EOFT_SCTP has the value 0x200 (i.e. only bit 9 is set). This is confusing and misleading. So remove the comment. Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 92414f329262c9240223b8279aa9f544a754d78f Author: Brett Creeley Date: Tue Feb 19 15:04:10 2019 -0800 ice: Update comment regarding the ITR_GRAN_S Since the driver now hard codes the ITR granularity to 2 us in the GLINT_CTL register the comment next to ITR_GRAN_S needs to be updated. Signed-off-by: Brett Creeley Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 6c2f997af50c7f5a14337082ca88c543b3f902b6 Author: Anirudh Venkataramanan Date: Tue Feb 19 15:04:09 2019 -0800 ice: Update function header for __ice_vsi_get_qs Remove some redundant text in the function header for __ice_vsi_get_qs Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit ac4667551ea56ccd11af8169427bc89874cfade1 Author: Anirudh Venkataramanan Date: Tue Feb 19 15:04:08 2019 -0800 ice: Remove unnecessary braces Single statement if conditions don't need braces. Remove it. Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 10c7e4c5fca7f7bb94df63ab36d552231787fde5 Author: Anirudh Venkataramanan Date: Tue Feb 19 15:04:07 2019 -0800 ice: Remove unused function prototype Commit 37bb83901286 ("ice: Move common functions out of ice_main.c part 7/7") seems to have inadvertently introduced a function prototype for ice_vsi_cfg_tc without a corresponding function implementation. Remove it. Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 203a068ac9e2722e4d118116acaa3a5586f9468a Author: Brett Creeley Date: Tue Feb 19 15:04:06 2019 -0800 ice: Add missing case in print_link_msg for printing flow control Currently we aren't checking for the ICE_FC_NONE case for the current flow control mode. This is causing "Unknown" to be printed for the current flow control method if flow control is disabled. Fix this by adding the case for ICE_FC_NONE to print "None". Signed-off-by: Brett Creeley Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 8244dd2d23b251dcba3238e42216e9277beb5729 Author: Brett Creeley Date: Tue Feb 19 15:04:05 2019 -0800 ice: Audit hotpath structures with pahole Currently the ice_q_vector structure and ice_ring_container structure are taking up more space than necessary due to cache alignment holes and unnecessary variables respectively. This is not helping the driver's performance. The following fixes were done to improve cache alignment, reduce wasted space, and increase performance. 1. Remove the ice_latency_range enum as it is unused. 2. Remove the latency_range variable in the ice_ring_container structure. 3. Change the size of the itr_idx in the ice_ring_container structure from an int to an u16. This reduced the size of ice_ring_container structure to 32 Bytes so it has no holes or padding. 4. Re-arrange the ice_q_vector structure using pahole to align members as best as possible in regards to 64 Byte cache line size. Signed-off-by: Brett Creeley Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 89f3e4a5b762db66de94c44cfea11195f9d549b3 Author: Preethi Banala Date: Tue Feb 19 15:04:04 2019 -0800 ice: Do not bail out when filter already exists If filter already exists, do not go through error path flow but instead continue to process rest of the function. Hence have an appropriate check after adding MAC filters. Signed-off-by: Preethi Banala Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 4e1af7bf22ca913502fb04c06477b9265b54684f Author: Akeem G Abodunrin Date: Wed Feb 20 09:11:48 2019 -0800 ice: Fix issue with VF attempt to delete default MAC address This patch fixes issue that occurs when VF is attempting to remove default LAN/MAC address, which is programmed by the administrator. We shouldn't return error for the call by the VF, but continue with the remaining steps to handle MAC opcode. Also update the dev_err message to explicitly say that VF can't change MAC programmed by PF. Also change "mac" to "MAC" for kernel print statements in the same file. Signed-off-by: Akeem G Abodunrin Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 164a4daaeaecb69b0373f20eead9626026352963 Author: Paul E. McKenney Date: Tue Mar 26 13:09:33 2019 -0700 torture: Suppress false-positive CONFIG_INITRAMFS_SOURCE complaint The scripting must supply the CONFIG_INITRAMFS_SOURCE Kconfig option so that kbuild can find the desired initrd, but the configcheck.sh script gets confused by this option because it takes a string instead of the expected y/n/m. This causes checkconfig.sh to complain about CONFIG_INITRAMFS_SOURCE in the torture-test output (though not in the summary). As more people use rcutorture, the resulting confusion is an increasing concern. This commit therefore suppresses this false-positive warning by filtering CONFIG_INITRAMFS_SOURCE from within the checkconfig.sh script. Reported-by: Joel Fernandes Signed-off-by: Paul E. McKenney commit a9d6938ddb7f892552013b93e4842fc1a538628d Author: Paul E. McKenney Date: Thu Mar 21 13:30:01 2019 -0700 locktorture: NULL cxt.lwsa and cxt.lrsa to allow bad-arg detection Currently, lock_torture_cleanup() uses the values of cxt.lwsa and cxt.lrsa to detect bad parameters that prevented locktorture from initializing, let alone running. In this case, lock_torture_cleanup() does no cleanup aside from invoking torture_cleanup_begin() and torture_cleanup_end(), as required to permit future torture tests to run. However, this heuristic fails if the run with bad parameters was preceded by a previous run that actually ran: In this case, both cxt.lwsa and cxt.lrsa will remain non-zero, which means that the current lock_torture_cleanup() invocation will be unable to detect the fact that it should skip cleanup, which can result in charming outcomes such as double frees. This commit therefore NULLs out both cxt.lwsa and cxt.lrsa at the end of any run that actually ran. Signed-off-by: Paul E. McKenney Cc: Davidlohr Bueso Cc: Josh Triplett commit ad092c027713a68a34168942a5ef422e42e039f4 Author: Paul E. McKenney Date: Thu Mar 21 10:26:41 2019 -0700 rcuperf: Fix cleanup path for invalid perf_type strings If the specified rcuperf.perf_type is not in the rcu_perf_init() function's perf_ops[] array, rcuperf prints some console messages and then invokes rcu_perf_cleanup() to set state so that a future torture test can run. However, rcu_perf_cleanup() also attempts to end the test that didn't actually start, and in doing so relies on the value of cur_ops, a value that is not particularly relevant in this case. This can result in confusing output or even follow-on failures due to attempts to use facilities that have not been properly initialized. This commit therefore sets the value of cur_ops to NULL in this case and inserts a check near the beginning of rcu_perf_cleanup(), thus avoiding relying on an irrelevant cur_ops value. Signed-off-by: Paul E. McKenney commit b813afae7ab6a5e91b4e16cc567331d9c2ae1f04 Author: Paul E. McKenney Date: Thu Mar 21 09:27:28 2019 -0700 rcutorture: Fix cleanup path for invalid torture_type strings If the specified rcutorture.torture_type is not in the rcu_torture_init() function's torture_ops[] array, rcutorture prints some console messages and then invokes rcu_torture_cleanup() to set state so that a future torture test can run. However, rcu_torture_cleanup() also attempts to end the test that didn't actually start, and in doing so relies on the value of cur_ops, a value that is not particularly relevant in this case. This can result in confusing output or even follow-on failures due to attempts to use facilities that have not been properly initialized. This commit therefore sets the value of cur_ops to NULL in this case and inserts a check near the beginning of rcu_torture_cleanup(), thus avoiding relying on an irrelevant cur_ops value. Reported-by: kernel test robot Signed-off-by: Paul E. McKenney commit d44ac1bebc47e46d62019808a893582f56496a98 Author: Neeraj Upadhyay Date: Sat Mar 9 00:40:45 2019 +0530 rcutorture: Fix expected forward progress duration in OOM notifier The rcutorture_oom_notify() function has a misplaced close parenthesis that results in increasingly long delays in rcu_fwd_progress_check()'s checking for various RCU forward-progress problems. This commit therefore puts the parenthesis in the right place. Signed-off-by: Neeraj Upadhyay Signed-off-by: Paul E. McKenney commit f47cb1bb0da23162f4c17e0c0023df4889ecb492 Author: Paul E. McKenney Date: Thu Feb 28 15:59:43 2019 -0800 rcutorture: Remove ->ext_irq_conflict field Back when there was a separate RCU-bh flavor, the ->ext_irq_conflict field was used to prevent executing local_bh_enable() while interrupts were disabled. However, there is no longer an RCU-bh flavor, so this commit removes the no-longer-needed ->ext_irq_conflict field. Signed-off-by: Paul E. McKenney commit a3b0e1e59ef1757488ef05b66bc376eaf7b06ada Author: Paul E. McKenney Date: Thu Feb 28 15:06:13 2019 -0800 rcutorture: Make rcutorture_extend_mask() comment match the code The code actually rarely uses more than one type of RCU read-side protection, as is actually desired given that we need some reasonable probability of preempting RCU read-side critical sections, which cannot happen with multiple types of protection. This comment therefore adjusts the comment. Signed-off-by: Paul E. McKenney commit fef141f6195be5829c76ff061cc5263badc39a89 Author: Paul E. McKenney Date: Mon Feb 11 07:14:09 2019 -0800 tools/.../rcutorture: Convert to SPDX license identifier Replace the license boiler plate with a SPDX license identifier. While in the area, update an email address and add copyright notices. Signed-off-by: Paul E. McKenney commit 24aca4aea4f0179e0e56cf9ec610c27d07702945 Author: Paul E. McKenney Date: Tue Jan 22 19:23:00 2019 -0800 torture: Don't try to offline the last CPU If there is only one online CPU, it doesn't make sense to try to offline it, as any such attempt is guaranteed to fail. This commit therefore check for this condition and refuses to attempt the nonsensical. Reported-by: Su Yue Signed-off-by: Paul E. McKenney Tested-By: Su Yue commit 6c70e9cd5f3c6d93f3e1da6d101073e898f39170 Author: Neeraj Upadhyay Date: Fri Mar 8 11:57:48 2019 -0800 rcu: Fix nohz status in stall warning The Documentation/RCU/stallwarn.txt file says that stall warnings print "D" if dyntick-idle processing is enabled, but the code in print_cpu_stall_fast_no_hz() prints "." instead. This commit therefore reverses the sense of the test to make the code match the documentation. Signed-off-by: Neeraj Upadhyay Signed-off-by: Paul E. McKenney commit b51bcbbf16ef0ea352e8b924dd8638112e4037a5 Author: Paul E. McKenney Date: Tue Jan 15 07:01:33 2019 -0800 rcu: Move forward-progress checkers into tree_stall.h This commit further consolidates stall-warning functionality by moving forward-progress checkers into kernel/rcu/tree_stall.h, updating a comment or two while in the area. More specifically, this commit moves show_rcu_gp_kthreads(), rcu_check_gp_start_stall(), rcu_fwd_progress_check(), sysrq_rcu, sysrq_show_rcu(), sysrq_rcudump_op, and rcu_sysrq_init() from kernel/rcu/tree.c to kernel/rcu/tree_stall.h. Signed-off-by: Paul E. McKenney commit 7ac1907c9e7ba5f80d3c298fe9d2dbf620566a49 Author: Paul E. McKenney Date: Mon Jan 14 10:19:20 2019 -0800 rcu: Move irq-disabled stall-warning checking to tree_stall.h The rcu_iw_handler() function's sole purpose in life is to indicate whether a stalled CPU had interrupts disabled, so it belongs in kernel/rcu/tree_stall.h. This commit therefore makes that move, clarifying its header comment while in the area. Signed-off-by: Paul E. McKenney commit e23344c2ca42d0083596bb39964675bef00ad691 Author: Paul E. McKenney Date: Sat Jan 12 09:35:44 2019 -0800 rcu: Organize functions in tree_stall.h This commit does only code movement, removal of now-unneeded forward declarations, and addition of comments. It organizes the functions that implement RCU CPU stall warnings for normal grace periods into three categories: 1. Control of RCU CPU stall warnings, including computing timeouts. 2. Interaction of stall warnings with grace periods. 3. Actual printing of the RCU CPU stall-warning messages. Signed-off-by: Paul E. McKenney commit 59b73a27681c5841440391f970a9a085228ba975 Author: Paul E. McKenney Date: Fri Jan 11 21:05:17 2019 -0800 rcu: Move FAST_NO_HZ stall-warning code to tree_stall.h This commit further consolidates the stall-warning code by moving print_cpu_stall_info() and its helper functions along with zero_cpu_stall_ticks() to kernel/rcu/tree_stall.h. Signed-off-by: Paul E. McKenney commit 40e69ac7d0c5a19ea14656bc3131c55719baec96 Author: Paul E. McKenney Date: Fri Jan 11 20:58:58 2019 -0800 rcu: Inline RCU stall-warning info helper functions The print_cpu_stall_info_begin() and print_cpu_stall_info_end() print a single character each onto the console, and are a holdover from a time when RCU CPU stall warning messages could be abbreviated using a long-gone Kconfig option. This commit therefore adds these single characters to already-printed strings in the calling functions, and then eliminates both print_cpu_stall_info_begin() and print_cpu_stall_info_end(). Signed-off-by: Paul E. McKenney commit d87cda5094585b7a0f62075de68266cb9c1b35ca Author: Paul E. McKenney Date: Fri Jan 11 20:51:49 2019 -0800 rcu: Move rcu_print_task_exp_stall() to tree_exp.h Because expedited CPU stall warnings are contained within the kernel/rcu/tree_exp.h file, rcu_print_task_exp_stall() should live there too. This commit carries out the required code motion. Signed-off-by: Paul E. McKenney commit 21d0d79ab051bf9facb9960a30e58b93a31c75a5 Author: Paul E. McKenney Date: Fri Jan 11 20:36:45 2019 -0800 rcu: Inline RCU task stall-warning helper functions The rcu_print_detail_task_stall(), rcu_print_task_stall_begin(), and rcu_print_task_stall_end() functions were defined to allow long-gone Kconfig options to provide an abbreviated RCU CPU stall warning printout. This commit saves a few lines of code by inlining them into their sole callers. While in the area, a useless call of rcu_print_detail_task_stall_rnp() on the root rcu_node structure was eliminated. If there is only one rcu_node structure, its tasks get printed twice, but if there are more, the root rcu_node structure is guaranteed to have an empty list of blocked tasks, hence the uselessness. (Long ago, root rcu_node structures with non-empty ->blkd_tasks lists could happen, but no longer.) Signed-off-by: Paul E. McKenney commit 32255d51b6ed00de2b88970ceea8db0ec3bae6f8 Author: Paul E. McKenney Date: Fri Jan 11 16:57:41 2019 -0800 rcu: Move RCU CPU stall-warning code out of tree.c This commit completes the process of consolidating the code for RCU CPU stall warnings for normal grace periods by moving the remaining such code from kernel/rcu/tree.c to kernel/rcu/tree_stall.h. Signed-off-by: Paul E. McKenney commit 3fc3d1709fc75995ee09ad4f35f160cf360b397b Author: Paul E. McKenney Date: Fri Jan 11 16:34:47 2019 -0800 rcu: Move RCU CPU stall-warning code out of tree_plugin.h The RCU CPU stall-warning code for normal grace periods is currently scattered across two files, due to earlier Tiny RCU support for RCU CPU stall warnings and for old Kconfig options that have long since been retired. Given that it is hard for the lead RCU maintainer to find relevant stall-warning code, it would be good to consolidate it. This commit continues this process by moving stall-warning code from kernel/rcu/tree_plugin.c to a new kernel/rcu/tree_stall.h file. Signed-off-by: Paul E. McKenney commit 10462d6f58fb6dbde7563e9343505d98d5bfba3d Author: Paul E. McKenney Date: Fri Jan 11 16:10:57 2019 -0800 rcu: Move RCU CPU stall-warning code out of update.c The RCU CPU stall-warning code for normal grace periods is currently scattered across three files, due to earlier Tiny RCU support for RCU CPU stall warnings and for old Kconfig options that have long since been retired. Given that it is hard for the lead RCU maintainer to find relevant stall-warning code, it would be good to consolidate it. This commit starts this process by moving stall-warning code from kernel/rcu/update.c to a new kernel/rcu/tree_stall.h file. Note that the definitions of rcu_cpu_stall_suppress and rcu_cpu_stall_timeout must remain in kernel/rcu/update.h to provide compatibility for kernel boot parameter lists. Signed-off-by: Paul E. McKenney commit 2e018c59fe8fbc4ae1a8db1523ea0f6159f48b4b Author: Bjorn Helgaas Date: Mon Mar 25 13:34:01 2019 -0500 ACPI / tables: Clean up whitespace Cleanup some whitespace to match the rest of the file. No functional change intended. Signed-off-by: Bjorn Helgaas Signed-off-by: Rafael J. Wysocki commit f5ad3991493c69d203d42b94d32349b54c58a3f1 Author: Paul E. McKenney Date: Wed Feb 13 13:54:37 2019 -0800 srcu: Remove cleanup_srcu_struct_quiesced() The cleanup_srcu_struct_quiesced() function was added because NVME used WQ_MEM_RECLAIM workqueues and SRCU did not, which meant that NVME workqueues waiting on SRCU workqueues could result in deadlocks during low-memory conditions. However, SRCU now also has WQ_MEM_RECLAIM workqueues, so there is no longer a potential for deadlock. Furthermore, it turns out to be extremely hard to use cleanup_srcu_struct_quiesced() correctly due to the fact that SRCU callback invocation accesses the srcu_struct structure's per-CPU data area just after callbacks are invoked. Therefore, the usual practice of using srcu_barrier() to wait for callbacks to be invoked before invoking cleanup_srcu_struct_quiesced() fails because SRCU's callback-invocation workqueue handler might be delayed, which can result in cleanup_srcu_struct_quiesced() being invoked (and thus freeing the per-CPU data) before the SRCU's callback-invocation workqueue handler is finished using that per-CPU data. Nor is this a theoretical problem: KASAN emitted use-after-free warnings because of this problem on actual runs. In short, NVME can now safely invoke cleanup_srcu_struct(), which avoids the use-after-free scenario. And cleanup_srcu_struct_quiesced() is quite difficult to use safely. This commit therefore removes cleanup_srcu_struct_quiesced(), switching its sole user back to cleanup_srcu_struct(). This effectively reverts the following pair of commits: f7194ac32ca2 ("srcu: Add cleanup_srcu_struct_quiesced()") 4317228ad9b8 ("nvme: Avoid flush dependency in delete controller flow") Reported-by: Bart Van Assche Signed-off-by: Paul E. McKenney Reviewed-by: Bart Van Assche Tested-by: Bart Van Assche commit 5cdfd174ea6c2dc1d331b61bdc9572698658600a Author: Paul E. McKenney Date: Tue Feb 12 10:44:33 2019 -0800 srcu: Check for in-flight callbacks in _cleanup_srcu_struct() If someone fails to drain the corresponding SRCU callbacks (for example, by failing to invoke srcu_barrier()) before invoking either cleanup_srcu_struct() or cleanup_srcu_struct_quiesced(), the resulting diagnostic is an ambiguous use-after-free diagnostic, and even then only if you are running something like KASAN. This commit therefore improves SRCU diagnostics by adding checks for in-flight callbacks at _cleanup_srcu_struct() time. Note that these diagnostics can still be defeated, for example, by invoking call_srcu() concurrently with cleanup_srcu_struct(). Which is a really bad idea, but sometimes all too easy to do. But even then, these diagnostics have at least some probability of catching the problem. Reported-by: Sagi Grimberg Reported-by: Bart Van Assche Signed-off-by: Paul E. McKenney Tested-by: Bart Van Assche commit add0d37b4f1e77de7d170ece43c8d765572a1eab Author: Paul E. McKenney Date: Tue Mar 26 10:22:22 2019 -0700 rcu: Correct READ_ONCE()/WRITE_ONCE() for ->rcu_read_unlock_special The task_struct structure's ->rcu_read_unlock_special field is only ever read or written by the owning task, but it is accessed both at process and interrupt levels. It may therefore be accessed using plain reads and writes while interrupts are disabled, but must be accessed using READ_ONCE() and WRITE_ONCE() or better otherwise. This commit makes a few adjustments to align with this discipline. Signed-off-by: Paul E. McKenney commit f1a98045abd824df833354b309b5fa64ff95f792 Author: Paul E. McKenney Date: Sat Mar 23 09:19:12 2019 -0700 rcu: Fix typo in tree_exp.h comment This commit changes a rcu_exp_handler() comment from rcu_preempt_defer_qs() to rcu_preempt_deferred_qs() in order to better match reality. Signed-off-by: Paul E. McKenney commit a2badefa8574a7a424a72f67a3bd43248141f76a Author: Paul E. McKenney Date: Thu Mar 21 16:29:50 2019 -0700 rcu: Eliminate redundant NULL-pointer check Because rcu_wake_cond() checks for a null task_struct pointer, there is no need for its callers to do so. This commit eliminates the redundant check. Signed-off-by: Paul E. McKenney commit 5d8a752e31aaa4c9703f201956a40b45ed791217 Author: Zhouyi Zhou Date: Wed Mar 20 03:33:00 2019 +0000 rcu: Fix force_qs_rnp() header comment Previously, threads blocked on offlining CPUS were migrated to the root rcu_node structure, thus requiring RCU priority boosting on this structure. However, since commit d19fb8d1f3f6 ("rcu: Don't migrate blocked tasks even if all corresponding CPUs offline"), RCU does not migrate blocked tasks. Consequently, RCU no longer does RCU priority boosting on the root rcu_node structure as of commit 1be0085b515e ("rcu: Don't initiate RCU priority boosting on root rcu_node"). This commit therefore brings comments for the force_qs_rnp() function's header comment in line with this new no-root-boosting reality. Signed-off-by: Zhouyi Zhou [ paulmck: Also remove obsolete comment on suppressing new grace periods. ] Signed-off-by: Paul E. McKenney commit 85f2b60c4321b088ba08ec9a05b8a7b68e4ada2a Author: Paul E. McKenney Date: Mon Mar 11 15:45:13 2019 -0700 rcu: Update jiffies_to_sched_qs and adjust_jiffies_till_sched_qs() comments This commit better documents the jiffies_to_sched_qs default-value strategy used by adjust_jiffies_till_sched_qs() Reported-by: Joel Fernandes Signed-off-by: Paul E. McKenney commit b699cce1604e828f19c39845252626eb78cdf38a Author: Neeraj Upadhyay Date: Mon Mar 11 17:28:03 2019 +0530 rcu: Do a single rhp->func read in rcu_head_after_call_rcu() The rcu_head_after_call_rcu() function reads the rhp->func pointer twice, which can result in a false-positive WARN_ON_ONCE() if the callback were passed to call_rcu() between the two reads. Although racing rcu_head_after_call_rcu() with call_rcu() is to be a dubious use case (the return value is not reliable in that case), intermittent and irreproducible warnings are also quite dubious. This commit therefore uses a single READ_ONCE() to pick up the value of rhp->func once, then tests that value twice, thus guaranteeing consistent processing within rcu_head_after_call_rcu()(). Neverthless, racing rcu_head_after_call_rcu() with call_rcu() is still a dubious use case. Signed-off-by: Neeraj Upadhyay [ paulmck: Add blank line after declaration per checkpatch.pl. ] Signed-off-by: Paul E. McKenney commit 6973032a602ee678c98644a30d57ebf9c72dd6d3 Author: Neeraj Upadhyay Date: Mon Mar 11 15:16:11 2019 +0530 rcu: Default jiffies_to_sched_qs to jiffies_till_sched_qs The current code only calls adjust_jiffies_till_sched_qs() if jiffies_till_sched_qs is left at its default value, so when the jiffies_till_sched_qs kernel-boot parameter actually is specified, jiffies_to_sched_qs will be left with the value zero, which will result in useless slowdowns of cond_resched(). This commit therefore changes rcu_init_geometry() to unconditionally invoke adjust_jiffies_till_sched_qs(), which ensures that jiffies_to_sched_qs will be initialized in all cases, thus maintaining good cond_resched() performance. Signed-off-by: Neeraj Upadhyay Signed-off-by: Paul E. McKenney commit 0f58d2ac2c87d27006c2b610668ebc4ff1f7c3ba Author: Neeraj Upadhyay Date: Fri Mar 8 15:16:18 2019 +0530 rcu: Fix self-wakeups for grace-period kthread The current rcu_gp_kthread_wake() function uses in_interrupt() and thus does a self-wakeup from all interrupt contexts, including the pointless case where the GP kthread happens to be running with bottom halves disabled, along with the impossible case where the GP kthread is running within an NMI handler (you are not supposed to invoke rcu_gp_kthread_wake() from within an NMI handler. This commit therefore replaces the in_interrupt() with in_irq(), so that the self-wakeups happen only from handlers for hardware interrupts and softirqs. This also makes the code match the comment. Signed-off-by: Neeraj Upadhyay Signed-off-by: Paul E. McKenney Acked-by: Steven Rostedt (VMware) commit 497e42600b69aca1b799c840d2cfc7ad60bb8017 Author: Paul E. McKenney Date: Wed Mar 6 14:47:56 2019 -0800 rcu: Report error for bad rcu_nocbs= parameter values This commit prints a console message when cpulist_parse() reports a bad list of CPUs, and sets all CPUs' bits in that case. The reason for setting all CPUs' bits is that this is the safe(r) choice for real-time workloads, which would normally be the ones using the rcu_nocbs= kernel boot parameter. Either way, later RCU console log messages list the actual set of CPUs whose RCU callbacks will be offloaded. Signed-off-by: Paul E. McKenney commit da8739f23fadf05809c6c37c327367b229467045 Author: Paul E. McKenney Date: Tue Mar 5 15:28:19 2019 -0800 rcu: Allow rcu_nocbs= to specify all CPUs Currently, the rcu_nocbs= kernel boot parameter requires that a specific list of CPUs be specified, and has no way to say "all of them". As noted by user RavFX in a comment to Phoronix topic 1002538, this is an inconvenient side effect of the removal of the RCU_NOCB_CPU_ALL Kconfig option. This commit therefore enables the rcu_nocbs= kernel boot parameter to be given the string "all", as in "rcu_nocbs=all" to specify that all CPUs on the system are to have their RCU callbacks offloaded. Another approach would be to make cpulist_parse() check for "all", but there are uses of cpulist_parse() that do other checking, which could conflict with an "all". This commit therefore focuses on the specific use of cpulist_parse() in rcu_nocb_setup(). Just a note to other people who would like changes to Linux-kernel RCU: If you send your requests to me directly, they might get fixed somewhat faster. RavFX's comment was posted on January 22, 2018 and I first saw it on March 5, 2019. And the only reason that I found it -at- -all- was that I was looking for projects using RCU, and my search engine showed me that Phoronix comment quite by accident. Your choice, though! ;-) Signed-off-by: Paul E. McKenney commit b2eb85b49a576515fb845cb12568b173c2bedffc Author: Akira Yokosawa Date: Sat Mar 2 17:25:19 2019 +0900 rcu: Move common code out of if-else block As the result of recent addition of "rdp->core_needs_qs = false;" in the "if" block, now both branches of the if-else have the same assignment. Factor it out and reduce line count. Signed-off-by: Akira Yokosawa Cc: Joel Fernandes Signed-off-by: Paul E. McKenney Acked-by: Joel Fernandes (Google) commit 9145b505bbbd87c6c8d4854ec411daeb33ed3deb Author: Paul E. McKenney Date: Sat Mar 16 16:42:49 2019 -0700 MAINTAINERS: Add -rcu branch name ("dev") Signed-off-by: Paul E. McKenney commit bdead419fb1ddd9df99be9f98b40631ae697a623 Author: Paul E. McKenney Date: Thu Feb 28 12:31:06 2019 -0800 MAINTAINERS: RCU now has its own email list This commit makes rcu@vger.kernel.org be the official list for RCU-related topics. Signed-off-by: Paul E. McKenney commit 3ffe3d1adc0b6cfb9b24db9995a537bb0aa30a8b Author: Liu Song Date: Thu Feb 21 22:13:27 2019 +0800 rcu: Set rcutree.kthread_prio sysfs access to read-only The rcutree.kthread_prio kernel-boot parameter is used to set the priority for boost (rcub), per-CPU (rcuc), and grace-period (rcu_preempt or rcu_sched) kthreads. It is also used by rcutorture to check whether it is possible to meaningfully test RCU priority boosting. However, all of these cases will either ignore or be confused by any post-boot changes to rcutree.kthread_prio. Note that the user really can change the priorities of all of these kthreads using chrt, given sufficient privileges. Therefore, the read-write nature of sysfs access to rcutree.kthread_prio is thus at best an attractive nuisance. This commit therefore changes sysfs access to rcutree.kthread_prio to be read-only. Signed-off-by: Liu Song Signed-off-by: Paul E. McKenney commit 884157cef0acf05648fe921d80c680afababb428 Author: Paul E. McKenney Date: Mon Feb 11 07:21:29 2019 -0800 rcu: Make exit_rcu() handle non-preempted RCU readers The purpose of exit_rcu() is to handle cases where buggy code causes a task to exit within an RCU read-side critical section. It currently does that in the case where said RCU read-side critical section was preempted at least once, but fails to handle cases where preemption did not occur. This case needs to be handled because otherwise the final context switch away from the exiting task will incorrectly behave as if task exit were instead a preemption of an RCU read-side critical section, and will therefore queue the exiting task. The exiting task will have exited, and thus won't ever execute rcu_read_unlock(), which means that it will remain queued forever, blocking all subsequent grace periods, and eventually resulting in OOM. Although this is arguably better than letting grace periods proceed and having a later rcu_read_unlock() access the now-freed task structure that once belonged to the exiting tasks, it would obviously be better to correctly handle this case. This commit therefore sets ->rcu_read_lock_nesting to 1 in that case, so that the subsequence call to __rcu_read_unlock() causes the exiting task to exit its dangling RCU read-side critical section. Note that deferred quiescent states need not be considered. The reason is that removing the task from the ->blkd_tasks[] list in the call to rcu_preempt_deferred_qs() handles the per-task component of any deferred quiescent state, and all other components of any deferred quiescent state are associated with the CPU, which isn't going anywhere until some later CPU-hotplug operation, which will report any remaining deferred quiescent states from within the rcu_report_dead() function. Note also that negative values of ->rcu_read_lock_nesting need not be considered. First, these won't show up in exit_rcu() unless there is a serious bug in RCU, and second, setting ->rcu_read_lock_nesting sets the state so that the RCU read-side critical section will be exited normally. Again, this code has no effect unless there has been some prior bug that prevents a task from leaving an RCU read-side critical section before exiting. Furthermore, there have been no reports of the bug fixed by this commit appearing in production. This commit is therefore absolutely -not- recommended for backporting to -stable. Reported-by: ABHISHEK DUBEY Reported-by: BHARATH Y MOURYA Reported-by: Aravinda Prasad Signed-off-by: Paul E. McKenney Tested-by: ABHISHEK DUBEY commit 18d7e40679ef574e428f893101be1c0035e95ee3 Author: Cyrill Gorcunov Date: Thu Jan 24 21:14:37 2019 +0300 rcu: rcu_qs -- Use raise_softirq_irqoff to not save irqs twice The rcu_qs is disabling IRQs by self so no need to do the same in raise_softirq but instead we can save some cycles using raise_softirq_irqoff directly. CC: Paul E. McKenney Signed-off-by: Cyrill Gorcunov Signed-off-by: Paul E. McKenney commit 671a63517cf983ad8eaa324167165cef245ab744 Author: Joel Fernandes (Google) Date: Sat Jan 19 11:14:18 2019 -0500 rcu: Avoid unnecessary softirq when system is idle When there are no callbacks pending on an idle system, I noticed that RCU softirq is continuously firing. During this the cpu_no_qs is set to false, and core_needs_qs is set to true indefinitely. This causes rcu_process_callbacks to be repeatedly called, even though the node corresponding to the CPU has that CPU's mask bit cleared and the system is idle. I believe the race is when such mask clearing is done during idle CPU scan of the quiescent state forcing stage in the kthread instead of the softirq. Since the rnp mask is cleared, but the flags on the CPU's rdp are not cleared, the CPU thinks it still needs to report to core RCU. Cure this by clearing the core_needs_qs flag when the CPU detects that its node is already updated which will avoid the unwanted softirq raises to the benefit of real-time systems. Test: Ran rcutorture for various tree RCU configs. Signed-off-by: Joel Fernandes (Google) Signed-off-by: Paul E. McKenney commit e85e6a21b2b5f31148cc3f2e785262b37c3e1ec7 Author: Paul E. McKenney Date: Thu Jan 10 15:30:15 2019 -0800 rcu: Unconditionally expedite during suspend/hibernate The rcu_pm_notify() function refuses to switch to/from expedited grace periods on systems with more than 256 CPUs due to the serialized initialization of expedited grace periods. However, expedited grace periods are now initialized in parallel, removing this concern. This commit therefore removes the checks from rcu_pm_notify(), so that expedited grace periods are used unconditionally during suspend/resume and hibernate/wake operations. As always, real-time workloads wishing to completely avoid expedited grace periods can use the rcupdate.rcu_normal= kernel parameter. Signed-off-by: Paul E. McKenney commit 884b429ae66758bd2e006dc5fd56757e0fde896d Author: Paul E. McKenney Date: Wed Mar 6 11:24:35 2019 -0800 doc: Fix typos and otherwise modernize checklist.txt This commit fixes some issues with Documentation/RCU/checklist.txt. Signed-off-by: Paul E. McKenney commit d1b493bbe101d85c86970f1b6c0401d4c1c473ed Author: Paul E. McKenney Date: Tue Feb 12 07:51:24 2019 -0800 doc: Describe choice of rcu_dereference() APIs and __rcu usage Reported-by: Andrew Morton Signed-off-by: Paul E. McKenney commit 0fa201d1618e0b39a60b1045aa1b323f9d351721 Author: Tycho Andersen Date: Tue Jan 29 15:05:46 2019 -0700 doc: Repair some whitespace damage A diagram in whatisRCU.txt has space character before tabs. This commit therefore makes this diagram consistent with elsewhere in the document: Use one leading tab, followed by spaces for any additional whitespace required. Signed-off-by: Tycho Andersen Signed-off-by: Paul E. McKenney commit 4fea6ef0b219d66b8a901fea1744745a1ed2f79b Author: Paul E. McKenney Date: Wed Jan 9 14:48:09 2019 -0800 doc: Remove obsolete RCU update functions from RCU documentation Now that synchronize_rcu_bh, synchronize_rcu_bh_expedited, call_rcu_bh, rcu_barrier_bh, synchronize_sched, synchronize_sched_expedited, call_rcu_sched, rcu_barrier_sched, get_state_synchronize_sched, and cond_synchronize_sched are obsolete, let's remove them from the documentation aside from a small historical section. Signed-off-by: Paul E. McKenney commit 5ceb5f0522bdc20d507fef2cd77fec2caa4e541e Author: Bjorn Helgaas Date: Mon Mar 25 13:34:03 2019 -0500 ACPI / scan: Add labels for PNP button devices Subsequent code treats button_device_ids[] entries differently, and it's hard to follow without a hint as to which is which. Add comments to identify the power button, lid, and sleep button devices. The "PNP" prefix is owned by Microsoft, so they distribute the canonical list of "PNP" IDs. Link: https://uefi.org/PNP_ACPI_Registry Link: https://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/devids.txt Signed-off-by: Bjorn Helgaas Signed-off-by: Rafael J. Wysocki commit 40381a3c1fa3ed37458c7f745e51fc81e9b48fe2 Author: Bjorn Helgaas Date: Mon Mar 25 13:34:02 2019 -0500 ACPI / scan: Simplify acpi_bus_extract_wakeup_device_power_package() acpi_bus_extract_wakeup_device_power_package() is a static function with a single caller that supplies (device->handle, &device->wakeup). Simplify the interface so the caller need only supply "device". This makes it obvious that "wakeup", i.e., &device->wakeup, can never be NULL, so remove the unnecessary check for that. Signed-off-by: Bjorn Helgaas Signed-off-by: Rafael J. Wysocki commit 603fadf33604a2e170eb833f99f569d3597f1f09 Author: Bjorn Helgaas Date: Mon Mar 25 13:34:00 2019 -0500 ACPI: Fix comment typos Fix some misspellings in comments. No functional change intended. Signed-off-by: Bjorn Helgaas Signed-off-by: Rafael J. Wysocki commit 9511cb6481af8c903f7649f82706ae908c224383 Author: Chris Wilson Date: Tue Mar 26 18:00:07 2019 +0000 drm/i915: Adding missing '; ' to ENGINE_INSTANCES Tvrtko spotted that I left off the trailing ';'. It went unnoticed by CI because despite adding the macro, we didn't add a user, so include one as well (a simple debug print). Reported-by: Tvrtko Ursulin Fixes: 97ee6e925552 ("drm/i915: stop storing the media fuse") Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190326180007.11722-1-chris@chris-wilson.co.uk commit a7c9b47bc9936c97325cfc3eb22a1dbbca61b4b6 Author: Mitch Williams Date: Tue Feb 19 15:04:02 2019 -0800 ice: enable VF admin queue interrupts The VPINT_MBX_CTL register array must be programmed to enable VF admin queue interrupts. Without this, VFs never get interrupts on vector 0, and some VF drivers will fail to init. Signed-off-by: Mitch Williams Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 64a59d05a4b3ddb37eb5ad3a3be0f17148f449f5 Author: Anirudh Venkataramanan Date: Tue Feb 19 15:04:01 2019 -0800 ice: Fix for adaptive interrupt moderation commit 63f545ed1285 ("ice: Add support for adaptive interrupt moderation") was meant to add support for adaptive interrupt moderation but there was an error on my part while formatting the patch, and thus only part of the patch ended up being submitted. This patch rectifies the error by adding the rest of the code. Fixes: 63f545ed1285 ("ice: Add support for adaptive interrupt moderation") Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 5995b6d0c6fcdb9b29ef9339c5beeb6e02aae737 Author: Brett Creeley Date: Wed Feb 13 10:51:15 2019 -0800 ice: Implement pci_error_handler ops This patch implements the following pci_error_handler ops: .error_detected = ice_pci_err_detected .slot_reset = ice_pci_err_slot_reset .reset_notify = ice_pci_err_reset_notify .reset_prepare = ice_pci_err_reset_prepare .reset_done = ice_pci_err_reset_done .resume = ice_pci_err_resume Signed-off-by: Brett Creeley Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 5abac9d7e1bb9a373673811154774d4c89a7f85e Author: Brett Creeley Date: Wed Feb 13 10:51:14 2019 -0800 ice: Put __ICE_PREPARED_FOR_RESET check in ice_prepare_for_reset Currently we check if the __ICE_PREPARED_FOR_RESET bit is set prior to calling ice_prepare_for_reset in ice_reset_subtask(), but we aren't checking that bit in ice_do_reset() before calling ice_prepare_for_reset(). This is not consistent and can cause issues if ice_prepare_for_reset() is called prior to ice_do_reset(). Fix this by checking if the __ICE_PREPARED_FOR_RESET bit is set internal to ice_prepare_for_reset(). Signed-off-by: Brett Creeley Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit cf6c6e01bf5debe1d144bab6c8c903b926fa8882 Author: Mitch Williams Date: Wed Feb 13 10:51:13 2019 -0800 ice: use virt channel status codes When communicating with the AVF driver, we need to use the status codes from virtchnl.h, not our own ice-specific codes. Without this, when an error occurs, the VF will report nonsensical results. NOTE: this depends on changes made to include/linux/avf/virtchnl.h by commit bb58fd7eeffc ("i40e: Update status codes") Signed-off-by: Mitch Williams Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit e163484afa8d6b1775cd35201fe7d523a45e0409 Author: Michał Winiarski Date: Tue Mar 26 18:02:18 2019 +0100 drm/i915: Update size upon return from GEM_CREATE Since GEM_CREATE is trying to outsmart the user by rounding up unaligned objects, we used to update the size returned to userspace. This update seems to have been lost throughout the history. v2: Use round_up(), reorder locals (Chris) References: ff72145badb8 ("drm: dumb scanout create/mmap for intel/radeon (v3)") Signed-off-by: Michał Winiarski Cc: Chris Wilson Cc: Janusz Krzysztofik Cc: Joonas Lahtinen Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190326170218.13255-1-michal.winiarski@intel.com commit baba6e572b38ecd399048cb5b03db88e67069902 Author: Daniele Ceraolo Spurio Date: Mon Mar 25 14:49:40 2019 -0700 drm/i915: take a reference to uncore in the engine and use it A few advantages: - Prepares us for the planned split of display uncore from GT uncore - Improves our engine-centric view of the world in the engine code and allows us to avoid jumping back to dev_priv. - Allows us to wrap accesses to engine register in nice macros that automatically pick the right mmio base. Signed-off-by: Daniele Ceraolo Spurio Cc: Paulo Zanoni Cc: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190325214940.23632-10-daniele.ceraolospurio@intel.com commit 97a04e0d07c4b32dd76c6a03b3384170b738972f Author: Daniele Ceraolo Spurio Date: Mon Mar 25 14:49:39 2019 -0700 drm/i915: switch intel_wait_for_register to uncore The intel_uncore structure is the owner of register access, so subclass the function to it. While at it, use a local uncore var and switch to the new read/write functions where it makes sense. Signed-off-by: Daniele Ceraolo Spurio Cc: Paulo Zanoni Cc: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190325214940.23632-9-daniele.ceraolospurio@intel.com commit d2d551c06f81775baae3afb69fae3252271190f9 Author: Daniele Ceraolo Spurio Date: Mon Mar 25 14:49:38 2019 -0700 drm/i915: intel_wait_for_register_fw to uncore The intel_uncore structure is the owner of register access, so subclass the function to it. While at it, use a local uncore var and switch to the new read/write functions where it makes sense. Signed-off-by: Daniele Ceraolo Spurio Cc: Paulo Zanoni Cc: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190325214940.23632-8-daniele.ceraolospurio@intel.com commit 4319382e9b1bbcf39aa6bfc89db7a431776b693a Author: Daniele Ceraolo Spurio Date: Mon Mar 25 14:49:37 2019 -0700 drm/i915: switch intel_uncore_forcewake_for_reg to intel_uncore The intel_uncore structure is the owner of FW, so subclass the function to it. While at it, use a local uncore var and switch to the new read/write functions where it makes sense. Signed-off-by: Daniele Ceraolo Spurio Cc: Paulo Zanoni Cc: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190325214940.23632-7-daniele.ceraolospurio@intel.com commit a2b4abfc626b13d2f2728f11435c8f3c4b9b39d8 Author: Daniele Ceraolo Spurio Date: Mon Mar 25 14:49:36 2019 -0700 drm/i915: switch uncore mmio funcs to use intel_uncore The full read/write ops can now work on the intel_uncore struct. Introduce intel_uncore_read/write functions working on intel_uncore and switch the I915_READ/WRITE macro to internally call those. v2: no change v3: add intel_uncore_read/write functions (Chris), update commit msg Signed-off-by: Daniele Ceraolo Spurio Cc: Paulo Zanoni Cc: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190325214940.23632-6-daniele.ceraolospurio@intel.com commit eb17af67eb1e2c57cc4fff9f59982d0ce6e9c802 Author: Daniele Ceraolo Spurio Date: Mon Mar 25 14:49:35 2019 -0700 drm/i915: take a ref to the rpm in the uncore structure Remove a bit of pointer dancing in the reg access path. Signed-off-by: Daniele Ceraolo Spurio Cc: Paulo Zanoni Cc: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190325214940.23632-5-daniele.ceraolospurio@intel.com commit 91dab5d53f4d8d05ebe1e4505fabe94021acf50f Author: Jeremiah Kyle Date: Wed Feb 13 10:51:12 2019 -0800 ice: Remove unnecessary newlines from log messages Two log messages contained newlines in the middle of the message. This resulted in unexpected driver log output. This patch removes the newlines to restore consistency with the rest of the driver log messages. Signed-off-by: Jeremiah Kyle Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit fa7e428c6b7ed3281610511a2b2ec716d9894be8 Author: Flavio Leitner Date: Mon Mar 25 15:58:31 2019 -0300 openvswitch: add seqadj extension when NAT is used. When the conntrack is initialized, there is no helper attached yet so the nat info initialization (nf_nat_setup_info) skips adding the seqadj ext. A helper is attached later when the conntrack is not confirmed but is going to be committed. In this case, if NAT is needed then adds the seqadj ext as well. Fixes: 16ec3d4fbb96 ("openvswitch: Fix cached ct with helper.") Signed-off-by: Flavio Leitner Acked-by: Pravin B Shelar Signed-off-by: David S. Miller commit b4b6aa83433ea4675d4ba1be56774623db81f14f Author: Stanislav Fomichev Date: Tue Mar 19 14:53:24 2019 -0700 selftests: bpf: don't depend on hardcoded perf sample_freq When running stacktrace_build_id_nmi, try to query kernel.perf_event_max_sample_rate sysctl and use it as a sample_freq. If there was an error reading sysctl, fallback to 5000. kernel.perf_event_max_sample_rate sysctl can drift and/or can be adjusted by the perf tool, so assuming a fixed number might be problematic on a long running machine. Signed-off-by: Stanislav Fomichev Signed-off-by: Alexei Starovoitov commit 340d455699400f2c2c0f9b3f703ade3085cdb501 Author: Dexuan Cui Date: Mon Mar 4 21:34:49 2019 +0000 PCI: hv: Add pci_destroy_slot() in pci_devices_present_work(), if necessary When we hot-remove a device, usually the host sends us a PCI_EJECT message, and a PCI_BUS_RELATIONS message with bus_rel->device_count == 0. When we execute the quick hot-add/hot-remove test, the host may not send us the PCI_EJECT message if the guest has not fully finished the initialization by sending the PCI_RESOURCES_ASSIGNED* message to the host, so it's potentially unsafe to only depend on the pci_destroy_slot() in hv_eject_device_work() because the code path create_root_hv_pci_bus() -> hv_pci_assign_slots() is not called in this case. Note: in this case, the host still sends the guest a PCI_BUS_RELATIONS message with bus_rel->device_count == 0. In the quick hot-add/hot-remove test, we can have such a race before the code path pci_devices_present_work() -> new_pcichild_device() adds the new device into the hbus->children list, we may have already received the PCI_EJECT message, and since the tasklet handler hv_pci_onchannelcallback() may fail to find the "hpdev" by calling get_pcichild_wslot(hbus, dev_message->wslot.slot) hv_pci_eject_device() is not called; Later, by continuing execution create_root_hv_pci_bus() -> hv_pci_assign_slots() creates the slot and the PCI_BUS_RELATIONS message with bus_rel->device_count == 0 removes the device from hbus->children, and we end up being unable to remove the slot in hv_pci_remove() -> hv_pci_remove_slots() Remove the slot in pci_devices_present_work() when the device is removed to address this race. pci_devices_present_work() and hv_eject_device_work() run in the singled-threaded hbus->wq, so there is not a double-remove issue for the slot. We cannot offload hv_pci_eject_device() from hv_pci_onchannelcallback() to the workqueue, because we need the hv_pci_onchannelcallback() synchronously call hv_pci_eject_device() to poll the channel ringbuffer to work around the "hangs in hv_compose_msi_msg()" issue fixed in commit de0aa7b2f97d ("PCI: hv: Fix 2 hang issues in hv_compose_msi_msg()") Fixes: a15f2c08c708 ("PCI: hv: support reporting serial number as slot information") Signed-off-by: Dexuan Cui [lorenzo.pieralisi@arm.com: rewritten commit log] Signed-off-by: Lorenzo Pieralisi Reviewed-by: Stephen Hemminger Reviewed-by: Michael Kelley Cc: stable@vger.kernel.org commit 15becc2b56c6eda3d9bf5ae993bafd5661c1fad1 Author: Dexuan Cui Date: Mon Mar 4 21:34:48 2019 +0000 PCI: hv: Add hv_pci_remove_slots() when we unload the driver When we unload the pci-hyperv host controller driver, the host does not send us a PCI_EJECT message. In this case we also need to make sure the sysfs PCI slot directory is removed, otherwise a command on a slot file eg: "cat /sys/bus/pci/slots/2/address" will trigger a "BUG: unable to handle kernel paging request" and, if we unload/reload the driver several times we would end up with stale slot entries in PCI slot directories in /sys/bus/pci/slots/ root@localhost:~# ls -rtl /sys/bus/pci/slots/ total 0 drwxr-xr-x 2 root root 0 Feb 7 10:49 2 drwxr-xr-x 2 root root 0 Feb 7 10:49 2-1 drwxr-xr-x 2 root root 0 Feb 7 10:51 2-2 Add the missing code to remove the PCI slot and fix the current behaviour. Fixes: a15f2c08c708 ("PCI: hv: support reporting serial number as slot information") Signed-off-by: Dexuan Cui [lorenzo.pieralisi@arm.com: reformatted the log] Signed-off-by: Lorenzo Pieralisi Reviewed-by: Stephen Hemminger Reviewed-by: Michael Kelley Cc: stable@vger.kernel.org commit 4ae27444100f54e6db3a046f086ba4e70e1ac22b Author: Ira Weiny Date: Wed Mar 13 12:05:59 2019 -0700 IB/core: Ensure an invalidate_range callback on ODP MR No device supports ODP MR without an invalidate_range callback. Warn on any any device which attempts to support ODP without supplying this callback. Then we can remove the checks for the callback within the code. This stems from the discussion https://www.spinics.net/lists/linux-rdma/msg76460.html ...which concluded this code was no longer necessary. Acked-by: John Hubbard Reviewed-by: Haggai Eran Signed-off-by: Ira Weiny Signed-off-by: Jason Gunthorpe commit 2cf7bf6f2f206700d1560d68f1464b4cb7882291 Author: Daniele Ceraolo Spurio Date: Mon Mar 25 14:49:34 2019 -0700 drm/i915: add uncore flags for unclaimed mmio Save the HW capabilities to avoid having to jump back to dev_priv every time. Signed-off-by: Daniele Ceraolo Spurio Cc: Paulo Zanoni Cc: Chris Wilson Reviewed-by: Paulo Zanoni Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190325214940.23632-4-daniele.ceraolospurio@intel.com commit 5a0ba777098a9b90f88ccca2c53dd7382bfba30c Author: Daniele Ceraolo Spurio Date: Mon Mar 25 14:49:33 2019 -0700 drm/i915: add HAS_FORCEWAKE flag to uncore We have several cases where we don't have forcewake (older gens, GVT and planned display-only uncore), so, instead of checking every time against the various condition, save the info in a flag and use that. Note that this patch also change the behavior for gen5 with vpgu enabled, but this is not an issue since we don't support vgpu on gen5. v2: split out from previous path, fix check for missing case (Paulo) v3: Inline helper for clarity in testing flags Signed-off-by: Daniele Ceraolo Spurio Cc: Paulo Zanoni Cc: Chris Wilson Reviewed-by: Paulo Zanoni Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190325214940.23632-3-daniele.ceraolospurio@intel.com commit 6cc5ca76882521998c5138cd1ba67659e8f7f58c Author: Daniele Ceraolo Spurio Date: Mon Mar 25 14:49:32 2019 -0700 drm/i915: rename raw reg access functions They now work on uncore, so use raw_uncore_ prefix. Also move them to uncore.h Signed-off-by: Daniele Ceraolo Spurio Cc: Paulo Zanoni Cc: Chris Wilson Reviewed-by: Paulo Zanoni Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190325214940.23632-2-daniele.ceraolospurio@intel.com commit 05f151a73ec2b23ffbff706e5203e729a995cdc2 Author: Dexuan Cui Date: Mon Mar 4 21:34:48 2019 +0000 PCI: hv: Fix a memory leak in hv_eject_device_work() When a device is created in new_pcichild_device(), hpdev->refs is set to 2 (i.e. the initial value of 1 plus the get_pcichild()). When we hot remove the device from the host, in a Linux VM we first call hv_pci_eject_device(), which increases hpdev->refs by get_pcichild() and then schedules a work of hv_eject_device_work(), so hpdev->refs becomes 3 (let's ignore the paired get/put_pcichild() in other places). But in hv_eject_device_work(), currently we only call put_pcichild() twice, meaning the 'hpdev' struct can't be freed in put_pcichild(). Add one put_pcichild() to fix the memory leak. The device can also be removed when we run "rmmod pci-hyperv". On this path (hv_pci_remove() -> hv_pci_bus_exit() -> hv_pci_devices_present()), hpdev->refs is 2, and we do correctly call put_pcichild() twice in pci_devices_present_work(). Fixes: 4daace0d8ce8 ("PCI: hv: Add paravirtual PCI front-end for Microsoft Hyper-V VMs") Signed-off-by: Dexuan Cui [lorenzo.pieralisi@arm.com: commit log rework] Signed-off-by: Lorenzo Pieralisi Reviewed-by: Stephen Hemminger Reviewed-by: Michael Kelley Cc: stable@vger.kernel.org commit 0164945de1b88655befa0319e6d0e3fbcf965a63 Author: Mans Rullgard Date: Tue Mar 26 11:29:02 2019 +0000 ARM: dts: sun7i: fix typos in uart pin mux The recently added uart mux options had a few typos. Fix them. Fixes: 43d0fe112585 ("ARM: dts: sun7i: add pinctrl for missing uart mux options") Reported-by: Werner Böllmann Signed-off-by: Mans Rullgard Signed-off-by: Maxime Ripard commit a79668c17684a999200b63a13c4c61132a46a38b Author: Maxime Ripard Date: Mon Mar 25 14:52:49 2019 +0100 ARM: dts: sun9i: Remove deprecated pinctrl properties We switched to the generic pinctrl binding some time ago, yet the GMAC pinctrl node apparently slipped through. Fix this. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit ac7fcfa1ecde5957c0c25d06dc4fff61e489b1aa Author: Maxime Ripard Date: Mon Mar 25 14:52:59 2019 +0100 arm64: dts: allwinner: a64: Fix the Codec I2S binding The I2S binding never mentions a reset-names property, or mentions which value it should have. To avoid any further issue, remove it. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 0973c06bb8fb959a0ccf1dc25cdaed8cff2e1059 Author: Maxime Ripard Date: Mon Mar 25 14:52:55 2019 +0100 arm64: dts: allwinner: a64: Add default dr_mode The USB OTG binding we have mandates to have a dr_mode property, yet not all boards are setting it. Since the generic otg binding states that the default mode should be the OTG mode, let's use that one in our DTSI. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 88a20adde5f63407a40fe6907766d9c1ddc8b173 Author: Maxime Ripard Date: Mon Mar 25 14:52:54 2019 +0100 ARM: dts: sun8i: h3: Add default dr_mode The USB OTG binding we have mandates to have a dr_mode property, yet not all boards are setting it. Since the generic otg binding states that the default mode should be the OTG mode, let's use that one in our DTSI. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 0a25d92c6f4facaf2852f1aac4cebfe01dd57a91 Author: Ioana Ciornei Date: Mon Mar 25 13:42:39 2019 +0000 dpaa2-eth: use netif_receive_skb_list Take advantage of the software Rx batching by using netif_receive_skb_list instead of napi_gro_receive. Signed-off-by: Ioana Ciornei Signed-off-by: David S. Miller commit 6da88a82df758de32c2346084b08c18b692481b0 Author: Wei Yongjun Date: Mon Mar 25 06:31:09 2019 +0000 tipc: fix return value check in tipc_mcast_send_sync() Fix the return value check which testing the wrong variable in tipc_mcast_send_sync(). Fixes: c55c8edafa91 ("tipc: smooth change between replicast and broadcast") Reported-by: Hulk Robot Signed-off-by: Wei Yongjun Acked-by: Jon Maloy Signed-off-by: David S. Miller commit f7f9467ad3c3da66ae79cee0e5da4b4e10e73f39 Merge: 6146dd453e23 2d64610934b4 Author: David S. Miller Date: Tue Mar 26 11:33:43 2019 -0700 Merge branch 'net-phy-aquantia-report-Aquantia-specific-settings-and-features' Heiner Kallweit says: ==================== net: phy: aquantia: report Aquantia-specific settings and features This series detects and reports quite some Aquantia-specific settings and features. v2: - propagate timeout in patch 2 ==================== Signed-off-by: David S. Miller commit 2d64610934b4687bee09c50ec4e3e4c30fa49b3b Author: Heiner Kallweit Date: Sun Mar 24 11:09:41 2019 +0100 net: phy: aquantia: inform about proprietary 1000Base-T2 mode being in use The AQCS109 supports a proprietary 2-pair 1Gbps mode. The standard registers don't allow to tell between 1000BaseT and 1000BaseT2. Add reporting this proprietary mode based on a vendor register. Signed-off-by: Heiner Kallweit Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 43429a0353af8586fe6f3a56c3931284ff5ede83 Author: Heiner Kallweit Date: Sun Mar 24 11:08:13 2019 +0100 net: phy: aquantia: report PHY details like firmware version Add reporting firmware details. These details are available only once the firmware has finished initializing the chip. This can take some time and we need to poll for init completion. v2: - Propagate timeout in aqr107_wait_reset_complete(). Don't bail out completely on timeout because chip may be functional even w/o firmware image. Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 9d685c11bf980bdd8036fb003db5a28913192f2e Author: Heiner Kallweit Date: Sun Mar 24 11:04:21 2019 +0100 net: phy: aquantia: print remote capabilities if link partner is Aquantia PHY If both link partners are Aquantia PHY's then additional information is exchanged as part of the auto-negotiation. Report remote capabilities if link partner is Aquantia PHY. Signed-off-by: Heiner Kallweit Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 6146dd453e235c487d85ae4dc6cc08978a1c890f Author: Vladimir Oltean Date: Sun Mar 24 01:24:07 2019 +0200 net: dsa: Avoid null pointer when failing to connect to PHY When phylink_of_phy_connect fails, dsa_slave_phy_setup tries to save the day by connecting to an alternative PHY, none other than a PHY on the switch's internal MDIO bus, at an address equal to the port's index. However this does not take into consideration the scenario when the switch that failed to probe an external PHY does not have an internal MDIO bus at all. Fixes: aab9c4067d23 ("net: dsa: Plug in PHYLINK support") Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit 8b30919a4e3c7aba32dd72e8208147a6496cb16c Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 ARM: OMAP2+: Handle reset quirks for dynamically allocated modules For dynamically allocated struct omap_hwmod data, we need to populate the device IP specific reset quirks. Cc: Paul Walmsley Cc: Tero Kristo Signed-off-by: Tony Lindgren commit 70451127873fee41b966328e1617ccc04f6998e7 Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 ARM: OMAP2+: Remove hwmod .rev data and use local SoC checks instead We can just check for omap2 and 3 for i2c and smartreflex locally. The rest of the .rev data is already unused. Cc: Paul Walmsley Cc: Tero Kristo Signed-off-by: Tony Lindgren commit b57250fa5eb35cd805e7eee7f7b5a4b3b3cb4227 Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 ARM: OMAP2+: Allocate struct omap_hwmod based on dts data With ti-sysc interconnect target module, we can allocate struct omap_hwmod data based on the devicetree data. This allows dropping the static SoC specific data eventually so we will only boot with data we actually need. To allocate struct omap_hwmod dynamically, we need to add a mutex for modifying the list, and remove __init for few functions. Note that we are not initialized oh->_clk or the optional clocks and their related quirks. That can be directly handled by the interconnect target module driver. Cc: Paul Walmsley Cc: Tero Kristo Signed-off-by: Tony Lindgren commit 6d63b12d182ec9924a8236f7cd1db5966c3bcd20 Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 ARM: OMAP2+: Define _HWMOD_STATE_DEFAULT and use it For dynamically allocated struct hwmod entries probing with ti-sysc interconnect target module driver, we need to specify the initial default state the same way as we do for the platform data cases. Let's prepare for that by adding _HWMOD_STATE_DEFAULT that we can then use to set the initial default state without a need to add similar CONFIG_PM handling in multiple places. Cc: Paul Walmsley Cc: Tero Kristo Signed-off-by: Tony Lindgren commit 513a4abb19d55253ea9490288986ec781a78b786 Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 ARM: OMAP2+: Prepare class allocation for dynamically allocated modules For dynamically allocated sysconfig data we only need to allocate a new class for the cases where the class is shared. For dynamically allocated struct omap_hwmod we will always allocate a new class. Let's add detection for when we need to allocate a new class by comparing the class name against the module name. If they match, there's no need to allocate a new calls as we don't have case of mixed platform data and dts data initialized modules for the same class. Let's also move the init of class data inside the spinlock. Cc: Paul Walmsley Cc: Tero Kristo Signed-off-by: Tony Lindgren commit 798bd175ab0d8024652ddba2cacaba6768c63c30 Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 ARM: OMAP2+: Make interconnect target module allocation functions static Only omap_hwmod_init_module() gets called, the rest of the interconnect target module allocation functions can be static. Cc: Paul Walmsley Cc: Tero Kristo Signed-off-by: Tony Lindgren commit 7f0d078667a494466991aa7133f49594f32ff6a2 Author: Tony Lindgren Date: Thu Mar 21 11:00:21 2019 -0700 ARM: OMAP2+: Fix potentially uninitialized return value for _setup_reset() Commit 747834ab8347 ("ARM: OMAP2+: hwmod: revise hardreset behavior") made the call to _enable() conditional based on no oh->rst_lines_cnt. This caused the return value to be potentially uninitialized. Curiously we see no compiler warnings for this, probably as this gets inlined. We call _setup_reset() from _setup() and only _setup_postsetup() if the return value is zero. Currently the return value can be uninitialized for cases where oh->rst_lines_cnt is set and HWMOD_INIT_NO_RESET is not set. Fixes: 747834ab8347 ("ARM: OMAP2+: hwmod: revise hardreset behavior") Cc: Paul Walmsley Cc: Tero Kristo Signed-off-by: Tony Lindgren commit 9675db398b15f74abd6e7ff4f445dd9f79060849 Author: Heiner Kallweit Date: Sat Mar 23 14:35:20 2019 +0100 net: phy: aquantia: simplify aqr_config_aneg Simplify aqr_config_aneg(). Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit c78c42d77165791c8198d7a86d1989ba65cf73a8 Author: Shravan Kumar Ramani Date: Tue Mar 26 10:42:48 2019 -0400 gpio: add driver for Mellanox BlueField GPIO controller This patch adds support for the GPIO controller used by Mellanox BlueField SOCs. Reviewed-by: David Woods Signed-off-by: Shravan Kumar Ramani Signed-off-by: Bartosz Golaszewski commit 9a9982d4601e34ef62fa970e3fca868ca61c22a8 Author: Andy Shevchenko Date: Mon Mar 25 15:47:48 2019 +0200 gpio: 74x164: Convert to use SPDX identifier Reduce size of duplicated comments by switching to use SPDX identifier. No functional change. Signed-off-by: Andy Shevchenko Signed-off-by: Bartosz Golaszewski commit 517ec43927c85f4d1f67f3a51e8c36e28b2a41a4 Author: Andy Shevchenko Date: Mon Mar 25 15:47:47 2019 +0200 gpio: 74x164: Remove linux/init.h and sort headers There is no need to include linux/init.h when at the same time we include linux/module.h. Remove redundant inclusion. While here, sort header block alphabetically for easy maintenance. Signed-off-by: Andy Shevchenko Signed-off-by: Bartosz Golaszewski commit 3c7469514dbe126a32d9d7452080570d89ff9d16 Author: Andy Shevchenko Date: Mon Mar 25 15:47:46 2019 +0200 gpio: 74x164: Make use of device properties ACPI-enabled platforms can use this device via unified device properties API. Convert driver to support this. Signed-off-by: Andy Shevchenko Signed-off-by: Bartosz Golaszewski commit be67101fbf27913efdd2a81ed7c6233ddbab44a7 Merge: 68cc2999f692 86e81794acdf Author: David S. Miller Date: Tue Mar 26 09:41:27 2019 -0700 Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== 100GbE Intel Wired LAN Driver Updates 2019-03-25 This series contains updates to the ice driver only. Victor updates the ice driver to be able to update the VSI queue configuration dynamically, by providing the ability to increase or decrease the VSI's number of queues. Michal fixes an issue when the VM starts or the VF driver is reloaded, the VLAN switch rule was lost (i.e. not added), so ensure it gets added in these cases. Brett updates the driver to support link events over the admin receive queue, instead of polling link events. Maciej refactors the code a bit to introduce a new function to fetch the receiver buffer and do the DMA synchronization to reduce the code duplication. Also added ice_can_reuse_rx_page() to verify whether the page can be reused so that in the future, we can use this check elsewhere in the driver. Additional driver optimizations so that we can drop the ice_pull_tail() altogether. Added support for bulk updates of refcount instead of doing it one by one. Refactored the page counting and buffer recycling so that we can use this code to clean up receive buffers when there is no skb allocated, like XDP. Added DMA_ATTR_WEAK_ORDERING and DMA_ATTR_SKIP_CPU_SYNC attributes to the DMA API during the mapping operations on the receive side, so that nonx86 platforms will be able to sync with what is being used (2k buffers) instead of the entire page. Dave fixes the driver to perform the most intrusive of the resets requested and clear the other request bits so that we do not end up with repeated reset, after reset. Bruce adds a iterator macro to clean up several for() loops. Chinh modifies the packet flags to be more generic so that they can be used for both receive and transmit. ==================== Signed-off-by: David S. Miller commit e42dd3ee3f9c6007c569386a8477a19d3e7503f9 Author: Takashi Iwai Date: Tue Mar 26 17:32:02 2019 +0100 ALSA: emux: Add support of loading GUS-patch It's a feature request for the ancient sutff, but it's still valid; the loading of a GUS-patch isn't available via hwdep device although it's supported over OSS sequencer. The only missing piece is the call of snd_soundfont_load_guspatch() in synth emux hwdep code. Signed-off-by: Takashi Iwai commit 077973c8c37fff683b607f7d0966db1eee47fb4f Author: Lucas De Marchi Date: Fri Mar 22 15:37:51 2019 -0700 drm/i915/icl: reduce pll_id scope and use enum type Now that pll_id is not used anymore for combophy, reduce its scope. Signed-off-by: Lucas De Marchi Link: https://patchwork.freedesktop.org/patch/msgid/20190322223751.22089-6-lucas.demarchi@intel.com Reviewed-by: Ville Syrjälä commit 02c99d26f5200210c1080f4bf13d344329d85cd8 Author: Lucas De Marchi Date: Fri Mar 22 15:37:50 2019 -0700 drm/i915/icl: use previous pll hw readout By the time icl_ddi_clock_get() is called we've just got the hw state from the pll registers. We don't need to read them again: we can rather reuse what was cached in the dpll_hw_state. While at it, s/refclk/ref_clock/ just to be consistent with the name used in code nearby. Signed-off-by: Lucas De Marchi Link: https://patchwork.freedesktop.org/patch/msgid/20190322223751.22089-5-lucas.demarchi@intel.com Reviewed-by: Ville Syrjälä commit 5e65216d8dd1765d02c6d519a61e95b80e518344 Author: Lucas De Marchi Date: Fri Mar 22 15:37:49 2019 -0700 drm/i915/cnl: use previous pll hw readout By the time cnl_ddi_clock_get() is called we've just got the hw state from the pll registers. We don't need to read them again: we can rather reuse what was cached in the dpll_hw_state. This also affects the code for ICL since it partially reuses the CNL code. However the more intricate part on ICL is left for another patch. Signed-off-by: Lucas De Marchi Link: https://patchwork.freedesktop.org/patch/msgid/20190322223751.22089-4-lucas.demarchi@intel.com Reviewed-by: Ville Syrjälä commit 47c9877e9be326f2dfaca5c771919ea3bb7e0ef8 Author: Lucas De Marchi Date: Fri Mar 22 15:37:48 2019 -0700 drm/i915/bxt: make bxt_calc_pll_link() similar to skl Rename state to pll_state and use it as the argument to bxt_calc_pll_link(), similar to how it's done in the skl variant. The WARN_ON(!crtc_state->shared_dpll) is not very useful, so remove it as well. Signed-off-by: Lucas De Marchi Link: https://patchwork.freedesktop.org/patch/msgid/20190322223751.22089-3-lucas.demarchi@intel.com Reviewed-by: Ville Syrjälä commit 947f44174684eb0499f2255c256a8b61ae985057 Author: Lucas De Marchi Date: Fri Mar 22 15:37:47 2019 -0700 drm/i915/skl: use previous pll hw readout By the time skl_ddi_clock_get() is called - and thus skl_calc_wrpll_link() - we've just got the hw state from the pll registers. We don't need to read them again: we can rather reuse what was cached in the dpll_hw_state. v2: rename state variable to pll_state, make argument const in skl_calc_wrpll_link() and remove not useful warning (from Ville) Signed-off-by: Lucas De Marchi Reviewed-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190322223751.22089-2-lucas.demarchi@intel.com commit 766460852cfaeca4042e5f3aeb9616b3689147bc Author: Kangjie Lu Date: Mon Mar 25 15:29:22 2019 -0500 x86/platform/uv: Fix missing checks of kcalloc() return values Handle potential errors returned from kcalloc(). [ bp: rewrite commit message. ] Signed-off-by: Kangjie Lu Signed-off-by: Borislav Petkov Cc: Andrew Banman Cc: Andy Shevchenko Cc: Colin Ian King Cc: Darren Hart Cc: "Gustavo A. R. Silva" Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Kees Cook Cc: Mike Travis Cc: Nicolai Stange Cc: pakki001@umn.edu Cc: platform-driver-x86@vger.kernel.org Cc: Thomas Gleixner Cc: Varsha Rao Cc: x86-ml Link: https://lkml.kernel.org/r/20190325202924.4624-1-kjlu@umn.edu commit a4b7013db23e93824ac53083eeb3e4efdef4b5b0 Author: Leon Romanovsky Date: Tue Mar 12 10:15:44 2019 +0200 RDMA/rxe: Fix slab-out-bounds access which lead to kernel crash later BUG: KASAN: slab-out-of-bounds in rxe_mem_init_user+0x6c1/0x740 [rdma_rxe] Read of size 8 at addr ffff88805c01a608 by task ib_send_bw/573 CPU: 24 PID: 573 Comm: ib_send_bw Not tainted 5.0.0-rc5+ #189 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.11.0-0-g63451fca13-prebuilt.qemu-project.org 04/01/2014 Call Trace: rxe_mem_init_user+0x6c1/0x740 [rdma_rxe] rxe_reg_user_mr+0x9b/0x110 [rdma_rxe] ib_uverbs_reg_mr+0x428/0x9c0 [ib_uverbs] ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x2b0/0x410 [ib_uverbs] ib_uverbs_run_method+0x79c/0x1da0 [ib_uverbs] rxe_mem_init_user+0x6c1/0x740 [rdma_rxe] rxe_reg_user_mr+0x9b/0x110 [rdma_rxe] ib_uverbs_reg_mr+0x428/0x9c0 [ib_uverbs] ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x2b0/0x410 [ib_uverbs] ib_uverbs_run_method+0x79c/0x1da0 [ib_uverbs] ib_uverbs_cmd_verbs+0x5f2/0xf20 [ib_uverbs] ib_uverbs_ioctl+0x202/0x310 [ib_uverbs] do_vfs_ioctl+0x193/0x1440 ksys_ioctl+0x3a/0x70 __x64_sys_ioctl+0x6f/0xb0 do_syscall_64+0x13f/0x570 entry_SYSCALL_64_after_hwframe+0x49/0xbe Allocated by task 573: __kasan_kmalloc.constprop.5+0xc1/0xd0 __kmalloc+0x161/0x310 rxe_mem_alloc+0x52/0x470 [rdma_rxe] rxe_mem_init_user+0x113/0x740 [rdma_rxe] rxe_reg_user_mr+0x9b/0x110 [rdma_rxe] ib_uverbs_reg_mr+0x428/0x9c0 [ib_uverbs] ib_uverbs_handler_UVERBS_METHOD_INVOKE_WRITE+0x2b0/0x410 [ib_uverbs] ib_uverbs_run_method+0x79c/0x1da0 [ib_uverbs] ib_uverbs_cmd_verbs+0x5f2/0xf20 [ib_uverbs] ib_uverbs_ioctl+0x202/0x310 [ib_uverbs] do_vfs_ioctl+0x193/0x1440 ksys_ioctl+0x3a/0x70 __x64_sys_ioctl+0x6f/0xb0 do_syscall_64+0x13f/0x570 entry_SYSCALL_64_after_hwframe+0x49/0xbe Freed by task 0: __kasan_slab_free+0x12e/0x180 kfree+0x10a/0x2c0 rcu_process_callbacks+0xa77/0x1260 __do_softirq+0x2ad/0xacb Test scenario: ib_send_bw -x 1 -d rxe0 -a & ib_send_bw -x 1 -d rxe0 -a localhost Fixes: 8700e3e7c485 ("Soft RoCE driver") Reported-by: Parav Pandit Reviewed-by: Zhu Yanjun Tested-by: Zhu Yanjun Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 1a2e158327c957baef21a50f3a7f6e6942cbca1e Author: Enrico Weigelt, metux IT consult Date: Wed Mar 6 23:08:45 2019 +0100 drivers: infiniband: Fix whitespace in kconfig Adjust the kconfig whitespace in bnxt_re/iser to match the kernel standard. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Jason Gunthorpe commit 8782c647aec43e64142e6f23b72443ff0891d878 Author: Daniel Vetter Date: Tue Nov 27 18:34:24 2018 +0100 drm/fbdev: Make skip_vt_switch the default KMS drivers really should all be able to restore their display state on resume without fbcon helping out. So make this the default. Since I'm not entirely foolish, make it only a default, which drivers can still override. That way when the inevitable regression report happens I can fix things up with a one-liner plus FIXME comment that someone should fix up the suspend/resume code in that driver. But at least all new drivers won't be broken by accident as soon as you turn off fbcon because "suspend/resume worked when I tested it". v2: Keep this for radeon because of commit 18c437caa5b18a235dd65cec224eab54bebcee65 Author: Alex Deucher Date: Tue Nov 14 17:19:29 2017 -0500 Revert "drm/radeon: dont switch vt on suspend" Thanks to Michel Dänzer for pointing this one out. Signed-off-by: Daniel Vetter Cc: Michel Dänzer Cc: Maarten Lankhorst Cc: Maxime Ripard Cc: Sean Paul Cc: David Airlie Cc: Jani Nikula Cc: Joonas Lahtinen Cc: Rodrigo Vivi Cc: Ben Skeggs Cc: Sandy Huang Cc: "Heiko Stübner" Cc: Alex Deucher Cc: "Christian König" Cc: Samuel Li Cc: "Michel Dänzer" Cc: Daniel Vetter Cc: Junwei Zhang Cc: Huang Rui Cc: Shirish S Cc: Daniel Stone Cc: "Noralf Trønnes" Cc: intel-gfx@lists.freedesktop.org Cc: nouveau@lists.freedesktop.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-rockchip@lists.infradead.org Reviewed-by: Maarten Lankhorst Acked-by: Heiko Stuebner Tested-by: Heiko Stuebner Reviewed-by: Samuel Li Link: https://patchwork.freedesktop.org/patch/msgid/20181127173424.301-1-daniel.vetter@ffwll.ch commit a6a9274a7c71573c8921080da990696702f7301c Author: Colin Ian King Date: Sat Mar 2 23:06:36 2019 +0000 RDMA/nes: remove redundant check on udata The non-null check on udata is redundant as this check was performed just a few statements earlier and the check is always true as udata must be non-null at this point. Remove redundant the check on udata and the redundant else part that can never be executed. Detected by CoverityScan, CID#1477317 ("Logically dead code") Fixes: 899444505473 ("IB/{hw,sw}: Remove 'uobject->context' dependency in object creation APIs") Signed-off-by: Colin Ian King Signed-off-by: Jason Gunthorpe commit 638267537ad9c751f9f8b4763e616fe237d379c9 Author: Matthew Wilcox Date: Wed Feb 20 16:21:06 2019 -0800 cma: Convert portspace IDRs to XArray Signed-off-by: Matthew Wilcox Signed-off-by: Jason Gunthorpe commit 602cbe8efc523ba56e1f41e8f74c7aa835672593 Author: Dan Carpenter Date: Tue Mar 26 08:08:43 2019 +0300 drm/i915/selftests: Fix an IS_ERR() vs NULL check The live_context() function returns error pointers. It never returns NULL. Fixes: 9c1477e83e62 ("drm/i915/selftests: Exercise adding requests to a full GGTT") Signed-off-by: Dan Carpenter Reviewed-by: Mika Kuoppala Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190326050843.GA20038@kadam commit 81cc440883d4f79f5d8b349bdc02818d683aeebf Author: Matthew Wilcox Date: Wed Feb 20 16:21:03 2019 -0800 ucm: Convert ctx_id_table to XArray Signed-off-by: Matthew Wilcox Signed-off-by: Jason Gunthorpe commit 8e5a9d61e258b5210877375485d73bb613feb2e8 Author: Matthew Wilcox Date: Wed Feb 20 16:20:46 2019 -0800 ib core: Convert query_idr to XArray Signed-off-by: Matthew Wilcox Signed-off-by: Jason Gunthorpe commit ae78ff3a0f0c23234c5c75e9bc6921eb7f4d8652 Author: Matthew Wilcox Date: Wed Feb 20 16:20:43 2019 -0800 RDMA/cm: Convert local_id_table to XArray Also introduce cm_local_id() to reduce the amount of boilerplate when converting a local ID to an XArray index. Signed-off-by: Matthew Wilcox Signed-off-by: Jason Gunthorpe commit 949a2370466b09682ad0afb33826f83403458a57 Author: Matthew Wilcox Date: Wed Feb 20 16:20:42 2019 -0800 IB/mad: Convert ib_mad_clients to XArray Pull the allocation function out into its own function to reduce the length of ib_register_mad_agent() a little and keep all the allocation logic together. Signed-off-by: Matthew Wilcox Signed-off-by: Jason Gunthorpe commit b86ef5367761603df5f66ce08fb014b991f6b51d Author: Viorel Suman Date: Tue Jan 22 11:14:30 2019 +0000 ASoC: fsl: Add Audio Mixer machine driver This patch implements Audio Mixer machine driver for NXP iMX8 SOCs. It connects together Audio Mixer and related SAI instances. Signed-off-by: Viorel Suman Signed-off-by: Mark Brown commit d0d9071b724123ebde89bdf6b52b86c3289abe85 Author: Viorel Suman Date: Tue Jan 22 11:14:27 2019 +0000 ASoC: add fsl_audmix DT binding documentation Add the DT binding documentation for NXP Audio Mixer CPU DAI driver. Signed-off-by: Viorel Suman Signed-off-by: Mark Brown commit be1df61cf06efb355c90702e46b8d46f055acb4e Author: Viorel Suman Date: Tue Jan 22 11:14:26 2019 +0000 ASoC: fsl: Add Audio Mixer CPU DAI driver This patch implements Audio Mixer CPU DAI driver for NXP iMX8 SOCs. The Audio Mixer is a on-chip functional module that allows mixing of two audio streams into a single audio stream. Audio Mixer datasheet is available here: https://www.nxp.com/docs/en/reference-manual/IMX8DQXPRM.pdf Signed-off-by: Viorel Suman Signed-off-by: Mark Brown commit 7cae255d2757eb085736be082df3ef4140846bc9 Author: Axel Lin Date: Fri Mar 22 14:38:20 2019 +0800 regulator: act8865: Constify regulator_ops The act8865_ops and act8865_ldo_ops never need to be modified, make them const so compiler can put them to .rodata. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 253c9c79adbcf79350cb1ae1c801f8df00186455 Author: Axel Lin Date: Fri Mar 22 14:38:19 2019 +0800 regulator: act8865: Convert to regulator core's simplified DT parsing code Use regulator core's simplified DT parsing code to simply the driver implementation. With this conversion, also move the NULL test against pdata in act8865_get_regulator_data() to the caller. This makes it clear the code path to explicitly set init_data is for non-DT case only. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 0b5e200cc7ee339694693a6d89816b66ccbd663a Author: Axel Lin Date: Sun Mar 24 14:00:04 2019 +0800 regulator: tps65217: Fix off-by-one for latest seletor of tps65217_uv1_ranges According to the datasheet the latest seletor 11 1111b = 3.3 V. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 245308c6217027c0d7fc8c3cf2bf95858c704d7b Author: Ludovic Barre Date: Mon Mar 25 18:01:40 2019 +0100 spi: stm32-qspi: add dma support This patch adds the dma support for the stm32-qspi hardware. The memory buffer constraints (lowmem, vmalloc, kmap) are taken into account by framework. In read mode, the memory map is preferred vs dma (due to better throughput). If the dma transfer fails the buffer is sent by polling. Signed-off-by: Ludovic Barre Signed-off-by: Mark Brown commit a88eceb17ac7e8dc4ad9995681af61c8371668f4 Author: Ludovic Barre Date: Mon Mar 25 18:01:39 2019 +0100 spi: stm32-qspi: add spi_master_put in release function This patch adds spi_master_put in release function to drop the controller's refcount. Signed-off-by: Ludovic Barre Signed-off-by: Mark Brown commit 883ce2421ed7fc1aaf94ff58d099e9a843345dfa Author: Axel Lin Date: Tue Mar 26 07:57:39 2019 +0800 regulator: sc2731: Constify regulators The regulators array should never need to be modified, make it const so compiler can put it to .rodata. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 5de219ccc1a7e1dab98848de53166e15af44bbff Author: Wolfram Sang Date: Mon Mar 25 21:31:55 2019 +0100 regulator: da9063: convert header to SPDX Covnert the header of the source file to SPDX. Signed-off-by: Wolfram Sang Signed-off-by: Mark Brown commit f0f0657b108c4691af1d4549148ca8fef2207088 Author: Daniel Vetter Date: Tue Mar 26 10:05:55 2019 +0100 drm/doc: Drop "content type" from the legacy kms property table We want new stuff documented in more verbose form, this table is deprecated. "content type" is already documented properly. Reviewed-by: Ville Syrjälä Fixes: 50525c332b55 ("drm: content-type property for HDMI connector") Cc: Hans Verkuil Cc: Daniel Vetter Cc: Stanislav Lisovskiy Cc: Ville Syrjälä Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190326090555.5969-1-daniel.vetter@ffwll.ch commit 64f01d2b5ccc621c3aa66b82daf9154f5581f36a Author: Mark Brown Date: Tue Mar 26 13:10:13 2019 +0000 ASoC: tlv320aic32x4: Only enable with common clock Some architectures do not yet support the common clock API at all but the tlv320aic32x4 driver now requires it. Reported-by: Stephen Rothwell Signed-off-by: Mark Brown commit f1430536e008cd3b70794e12c414c20d54aabec2 Author: Matthew Wilcox Date: Wed Feb 20 16:20:44 2019 -0800 mlx4: Convert pv_id_table to XArray Signed-off-by: Matthew Wilcox Acked-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit b02a29eb8841bd4f210110bddb346c80478366a1 Author: Matthew Wilcox Date: Wed Feb 20 16:20:37 2019 -0800 mlx5: Convert mlx5_srq_table to XArray Remove the custom spinlock as the XArray handles its own locking. Signed-off-by: Matthew Wilcox Acked-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit 270a9833b2697d455f6ae12669b8220d3ea48f18 Author: Mike Marciniszyn Date: Tue Feb 26 08:46:16 2019 -0800 IB/hfi1: Add running average for adaptive pio The adaptive PIO implementation only considers the current packet size when deciding between SDMA and pio for a packet. This causes credit return forces if small and large packets are interleaved. Add a running average to avoid costly credit forces so that a large sequence of small packets is required to go below the threshold that chooses pio. Reviewed-by: Michael J. Ruhl Signed-off-by: Mike Marciniszyn Signed-off-by: Dennis Dalessandro Signed-off-by: Jason Gunthorpe commit be20bbcb0a8cb5597cc62b3e28d275919f3431df Author: Kazufumi Ikeda Date: Mon Mar 25 20:43:19 2019 +0100 PCI: rcar: Add the initialization of PCIe link in resume_noirq() Reestablish the PCIe link very early in the resume process in case it went down to prevent PCI accesses from hanging the bus. Such accesses can happen early in the PCI resume process, as early as the SUSPEND_RESUME_NOIRQ step, thus the link must be reestablished in the driver resume_noirq() callback. Fixes: e015f88c368d ("PCI: rcar: Add support for R-Car H3 to pcie-rcar") Signed-off-by: Kazufumi Ikeda Signed-off-by: Gaku Inami Signed-off-by: Marek Vasut [lorenzo.pieralisi@arm.com: reformatted commit log] Signed-off-by: Lorenzo Pieralisi Reviewed-by: Simon Horman Reviewed-by: Geert Uytterhoeven Acked-by: Wolfram Sang Cc: stable@vger.kernel.org Cc: Geert Uytterhoeven Cc: Phil Edworthy Cc: Simon Horman Cc: Wolfram Sang Cc: linux-renesas-soc@vger.kernel.org commit 27942ef503a5e95865473c7c8c93ee9f167641cb Author: Sascha Hauer Date: Tue Mar 26 08:54:31 2019 +0100 quota: remove trailing whitespaces This removes all trailing whitespaces in fs/quota/. Signed-off-by: Sascha Hauer Signed-off-by: Jan Kara commit df15a2a59d0b29d86e17140b83ed231adaded12f Author: Chengguang Xu Date: Wed Mar 20 13:03:59 2019 +0800 quota: code cleanup for __dquot_alloc_space() Replace (flags & DQUOT_SPACE_RESERVE) with variable reserve. Signed-off-by: Chengguang Xu Signed-off-by: Jan Kara commit 1206d028b2c8f159506e0efd6dad66aca82e8de8 Author: Shuning Zhang Date: Wed Mar 6 09:47:35 2019 +0800 ext2: Adjust the comment of function ext2_alloc_branch The name of argument is error in the header comment. @num should be @indirect_blks. At the same time, there was a lack of description of the two parameters @blks and @goal. This commit therefore fixes this header comment. Signed-off-by: Shuning Zhang Signed-off-by: Jan Kara commit a768a9abc625d554f7b6428517089c193fcb5962 Author: Jan Kara Date: Tue Mar 19 09:48:59 2019 +0100 udf: Explain handling of load_nls() failure Add comment explaining that load_nls() failure gets handled back in udf_fill_super() to avoid false impression that it is unhandled. Signed-off-by: Jan Kara commit 547e12325d0e5ebe8f40e410f8de10a114f70db5 Author: Jacky Bai Date: Fri Mar 22 09:40:41 2019 +0000 arm64: dts: imx: Add i.mx8mm evk basic dts support Add basic dts support for i.MM8MM LPDDR4 EVK. Signed-off-by: Jacky Bai Signed-off-by: Shawn Guo commit a05ea40eb384e28205ed7200384f55cf210d8b63 Author: Jacky Bai Date: Fri Mar 22 09:40:29 2019 +0000 arm64: dts: imx: Add i.mx8mm dtsi support The i.MX8M Mini is new SOC of the i.MX8M family. it is focused on delivering the latest and greatest video and audio experience combining state-of-the-art media-specific features with high-performance processing while optimized for lowest power consumption. The i.MX 8M Mini Media Applications Processor is 14nm FinFET product of the growing i.MX8M family targeting the consumer & industrial market. It is built in 14LPP to achieve both high performance and low power consumption and relies on a powerful fully coherent core complex based on a quad Cortex-A53 cluster with video and graphics accelerators This patch adds the basic dtsi support for i.MX8MM. Signed-off-by: Jacky Bai Signed-off-by: Shawn Guo commit 9d9521e89081cbc332b35cd44bfd335ed2f0cf3b Author: Jacky Bai Date: Fri Mar 22 09:40:35 2019 +0000 dt-bindings: arm: imx: Add the soc binding for imx8mm Add the soc & board binding for i.MX8MM. Signed-off-by: Jacky Bai Reviewed-by: Rob Herring Signed-off-by: Shawn Guo commit 496456058b506233a88ca60dbedbcb0e681d2423 Author: Anson Huang Date: Fri Mar 22 06:31:56 2019 +0000 ARM: dts: imx7ulp: add ocotp support Add i.MX7ULP OCOTP support, its clock source is from M4 BUS clock which is NOT available in Linux clock tree, but M4 BUS clock is always ON when A7 (Linux) is alive, so just use dummy clock here. Signed-off-by: Anson Huang Signed-off-by: Shawn Guo commit 48a15bb42df85d30e13281642a12fd27221668fa Author: Abel Vesa Date: Thu Mar 21 15:25:54 2019 +0000 clk: imx: Remove unused imx_get_clk_hw_fixed This is never used and the imx_clk_hw_fixed does the same thing. Signed-off-by: Abel Vesa Signed-off-by: Shawn Guo commit 811c94f1e866efd02060acdfa697274a9973d5c3 Author: Uwe Kleine-König Date: Wed Mar 20 10:12:53 2019 +0100 ARM: dts: Add devicetree for Eckelmann ci4x10 This is one of two boards that make use of the recently introduced SIOX bus. Apart from the devices described in the dts it features a display with touch that I didn't include here because it needs some non-mainline change to operate correctly. Reviewed-by: Fabio Estevam Signed-off-by: Uwe Kleine-König Signed-off-by: Shawn Guo commit 5930a57fb08ad93574b82592540006641fb3272a Author: Uwe Kleine-König Date: Wed Mar 20 10:12:52 2019 +0100 dt-bindings: arm: fsl: Add devicetree binding for Eckelmann ci4x10 Add devicetree binding for Eckelmann's ci4x10 board which is powered by an i.MX6DL SoC. Signed-off-by: Uwe Kleine-König Reviewed-by: Rob Herring Signed-off-by: Shawn Guo commit a352e2b337b827403b01df2a88059e873cc8c171 Author: Alexandre Torgue Date: Tue Feb 5 10:07:00 2019 +0100 ARM: dts: stm32: add initial support of stm32mp157c-dk2 board Add support of stm32mp157c discovery2 board (part number: STM32MP157C-DK2). This board is a "super-set" of stm32mp157a-dk1. It embeds a STM32MP157c SOC with AC package (TFBGA361, 148 ios) and 512MB of DDR3. Same connections than stm32mp157a-dk1 board are available. Display panel (otm8009a) and Murata wifi/BT combo is added. This patch adds basic support for a kernel boot and enable otm8009a display panel. Signed-off-by: Alexandre Torgue commit 37eadb8555c09395e7dd2b6af83ff82ff9a1e990 Author: Alexandre Torgue Date: Tue Feb 5 10:07:00 2019 +0100 ARM: dts: stm32: add initial support of stm32mp157a-dk1 board Add support of stm32mp157a discovery1 board (part number: STM32MP157A-DK1). This board embeds a STM32MP157a SOC with AC package (TFBGA361, 148 ios) and 512MB of DDR3. Several connections are available on this boards: 4*USB2.0, 1*USB2.0 typeC, SDcard, RJ45, HDMI, Arduino connector, ... This patch enables basic support for a kernel boot. Signed-off-by: Alexandre Torgue commit 4d537f37e0d39f64687be71087dca607ee507f5a Author: Chunfeng Yun Date: Thu Mar 21 10:27:56 2019 +0800 usb: introduce usb_ep_type_string() function In some places, the code prints a human-readable USB endpoint transfer type (e.g. "bulk"). This involves a switch statement sometimes wrapped around in ({ ... }) block leading to code repetition. To make this scenario easier, here introduces usb_ep_type_string() function, which returns a human-readable name of provided endpoint type. It also changes a few places switch was used to use this new function. Signed-off-by: Chunfeng Yun Signed-off-by: Greg Kroah-Hartman commit 2a738137b4c2dfddae03cd44f5b5f24f745c2864 Author: YueHaibing Date: Wed Mar 20 22:12:02 2019 +0800 usb: typec: fusb302: Make fusb302_irq_work static Fix sparse warning: drivers/usb/typec/tcpm/fusb302.c:1454:6: warning: symbol 'fusb302_irq_work' was not declared. Should it be static? Signed-off-by: YueHaibing Reviewed-by: Guenter Roeck Reviewed-by: Heikki Krogerus Reviewed-by: Mukesh Ojha Signed-off-by: Greg Kroah-Hartman commit 3de3dbe7c13210171ba8411e36b409a2c29c7415 Author: Kangjie Lu Date: Tue Mar 19 12:34:06 2019 -0500 usb: u132-hcd: fix potential NULL pointer dereference In case create_singlethread_workqueue fails, the fix notifies callers the error to avoid potential NULL pointer dereferences. Signed-off-by: Kangjie Lu Signed-off-by: Greg Kroah-Hartman commit 4c912bff46cc1b37490fda2eac33471ddd0fadf2 Author: Heikki Krogerus Date: Tue Mar 19 15:53:24 2019 +0300 usb: typec: wcove: Provide fwnode for the port By registering a software fwnode for the port, we can supply the connector capabilities to the tcpm using the common USB connector device properties instead of relying on platform data (struct tcpc_config). Signed-off-by: Heikki Krogerus Reviewed-by: Guenter Roeck Signed-off-by: Greg Kroah-Hartman commit 8ead7e817224d7832fe51a19783cb8fcadc79467 Author: Tony Lindgren Date: Fri Mar 22 14:54:05 2019 -0700 usb: core: Add PM runtime calls to usb_hcd_platform_shutdown If ohci-platform is runtime suspended, we can currently get an "imprecise external abort" on reboot with ohci-platform loaded when PM runtime is implemented for the SoC. Let's fix this by adding PM runtime support to usb_hcd_platform_shutdown. Signed-off-by: Tony Lindgren Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit 1a137b47ce6bd4f4b14662d2f5ace913ea7ffbf8 Author: Kangjie Lu Date: Sun Mar 24 22:08:28 2019 -0500 usb: sierra: fix a missing check of device_create_file device_create_file() could fail and return an error code. The fix captures the error and returns the error code upstream in case it indeed failed. Signed-off-by: Kangjie Lu Acked-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit f926da42218c9d6a6e34a314cd5c9535bcd81627 Author: Chunfeng Yun Date: Thu Mar 21 10:53:49 2019 +0800 usb: mtu3: add a function to switch mailbox state to string By introducing mailbox_state_string(), allow to make debug log more readable Signed-off-by: Chunfeng Yun Signed-off-by: Greg Kroah-Hartman commit 83374e035b6286731c5aa617844c7b724294c2a7 Author: Chunfeng Yun Date: Thu Mar 21 10:53:48 2019 +0800 usb: mtu3: add tracepoints to help debug This patch implements a few initial tracepoints for the mtu3 driver. More traces can be added as necessary in order to ease the task of debugging. Signed-off-by: Chunfeng Yun Signed-off-by: Greg Kroah-Hartman commit 4aab6ad24a101b9fa3779acc27eefd8a730a6f63 Author: Chunfeng Yun Date: Thu Mar 21 10:53:47 2019 +0800 usb: mtu3: move vbus and mode debugfs interfaces into mtu3_debugfs.c Due to the separated debugfs files are added, move vbus and mode debugfs interfaces related with dual-role switch from mtu3_dr.c into mtu3_debugfs.c Signed-off-by: Chunfeng Yun Signed-off-by: Greg Kroah-Hartman commit ae07809255d3e3419205b673aba6d1dce16a0d65 Author: Chunfeng Yun Date: Thu Mar 21 10:53:46 2019 +0800 usb: mtu3: add debugfs interface files This adds more debugfs consumers. The debugfs entries read some important registers, fifo status, QMU ring, endpoint status, and IPPC probe interface to get internal status. With these entries, users can check the registers, endpoint and GPD used during run time. Signed-off-by: Chunfeng Yun Signed-off-by: Greg Kroah-Hartman commit 48e0d3735aa557a8adaf94632ca3cf78798e8505 Author: Chunfeng Yun Date: Thu Mar 21 10:53:45 2019 +0800 usb: mtu3: supports new QMU format In order to support U3gen2 ISOC transfer upto 96DPs, extend the data buffer length. Signed-off-by: Chunfeng Yun Signed-off-by: Greg Kroah-Hartman commit 09befc326eea250cf6a3175114e1578d498a21ea Author: Chunfeng Yun Date: Thu Mar 21 10:53:44 2019 +0800 usb: mtu3: rebuild qmu_gpd struct to prepare to support new QMU format To support USB3 Gen2 ISOC, the data buffer length need be extended, it's hard to make the current qmu_gpd struct compatible, so here rebuild qmu_gpd struct and make easy to support new QMU format Signed-off-by: Chunfeng Yun Signed-off-by: Greg Kroah-Hartman commit 4c5964b4c2cbeca2f61e93bb004416bd9c1f1145 Author: Chunfeng Yun Date: Thu Mar 21 10:53:43 2019 +0800 usb: mtu3: fix transfer error of USB3 Gen2 isoc To support USB3 Gen2 ISOC, the registers of TXCSR1 and RXCSR1 are adjusted to support greater maxpkt and mult value, this patch fix this issue Signed-off-by: Chunfeng Yun Signed-off-by: Greg Kroah-Hartman commit 918f0f2361e919ac7e0923a96bb7fe1b2ddea86c Author: Chunfeng Yun Date: Thu Mar 21 10:53:42 2019 +0800 usb: mtu3: rebuild the code of getting vbus regulator Remove local variable @vbus and use @dev instead of @pdev->dev Signed-off-by: Chunfeng Yun Signed-off-by: Greg Kroah-Hartman commit 13d944ebdc02703a94c1d446078a4bc3f9996883 Author: Chunfeng Yun Date: Thu Mar 21 10:53:41 2019 +0800 usb: mtu3: remove unnecessary local variable @req The local variable @req is unnecessary in qmu_tx_zlp_error_handler, so remove it. Signed-off-by: Chunfeng Yun Signed-off-by: Greg Kroah-Hartman commit c858b4f373825062d9fae84e6918cbfeaa8e9534 Author: Chunfeng Yun Date: Thu Mar 21 10:53:40 2019 +0800 usb: mtu3: print useful information also for device and host modes Print useful information not only dual-role mode but also device mode and host mode. Signed-off-by: Chunfeng Yun Signed-off-by: Greg Kroah-Hartman commit 03d8bfc13089e657faf2ea73884ec3c726d8a6f9 Author: Chunfeng Yun Date: Thu Mar 21 10:53:39 2019 +0800 usb: mtu3: check return value of devm_extcon_register_notifier() Check the return value of devm_extcon_register_notifier() and add error handling. Signed-off-by: Chunfeng Yun Signed-off-by: Greg Kroah-Hartman commit bcc5c1bbf76c40764735a5b3bdb884575e7fd822 Author: Tony Luck Date: Mon Mar 25 16:56:27 2019 -0700 MAINTAINERS: Add entry for EDAC-I10NM Updating the MAINTAINERS file when adding this new driver was forgotten. Fix it. Fixes: d4dc89d069aa ("EDAC, i10nm: Add a driver for Intel 10nm server processors") Signed-off-by: Tony Luck Signed-off-by: Borislav Petkov Cc: "David S. Miller" Cc: Aristeu Rozanski Cc: Greg Kroah-Hartman Cc: Linus Torvalds Cc: Mauro Carvalho Chehab Cc: Nicolas Ferre Cc: Qiuxu Zhuo Cc: linux-edac Link: https://lkml.kernel.org/r/20190325235627.GA11938@agluck-desk commit 76fc276f4a91bdf96940c276398954f291daf034 Author: Tony Luck Date: Mon Mar 25 16:29:33 2019 -0700 MAINTAINERS: Update entry for EDAC-SKYLAKE Code refactoring to share some source code with a new EDAC driver resulted in renaming one file (skx_edac.c became skx_base.c) and adding a new file (skx_common.c). Update the file pattern in MAINTAINERS to take account of this change. Fixes: 98f2fc829e3b ("EDAC, skx_edac: Delete duplicated code") Reported-by: Joe Perches Signed-off-by: Tony Luck Signed-off-by: Borislav Petkov Cc: "David S. Miller" Cc: Aristeu Rozanski Cc: Greg Kroah-Hartman Cc: Linus Torvalds Cc: Mauro Carvalho Chehab Cc: Nicolas Ferre Cc: Qiuxu Zhuo Cc: linux-edac Link: https://lkml.kernel.org/r/20190325232932.GA8869@agluck-desk commit 1762058319f1cf34b11fc6b82678828ecc88c8ee Author: Tony Luck Date: Mon Mar 25 16:34:17 2019 -0700 MAINTAINERS: Fix file pattern for X86 MCE INFRASTRUCTURE Code restructuring renamed arch/x86/kernel/cpu/mcheck/ to be arch/x86/kernel/cpu/mce/ Update the MAINTAINERS file pattern to account for this change. Fixes: 21afaf181362 ("x86/mce: Streamline MCE subsystem's naming") Reported-by: Joe Perches Signed-off-by: Tony Luck Signed-off-by: Borislav Petkov Cc: "David S. Miller" Cc: "H. Peter Anvin" Cc: Greg Kroah-Hartman Cc: Ingo Molnar Cc: Mauro Carvalho Chehab Cc: Nicolas Ferre Cc: Thomas Gleixner Cc: linux-edac Link: https://lkml.kernel.org/r/20190325233416.GB8869@agluck-desk commit 3e14592da654d53d87987aa09753d5a26e45446f Author: Nathan Chancellor Date: Thu Mar 7 16:18:39 2019 -0700 scsi: gdth: Only call dma_free_coherent when buf is not NULL in ioc_general When building with -Wsometimes-uninitialized, Clang warns: drivers/scsi/gdth.c:3662:6: warning: variable 'paddr' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] Don't attempt to call dma_free_coherent when buf is NULL (meaning that we never called dma_alloc_coherent and initialized paddr), which avoids this warning. Link: https://github.com/ClangBuiltLinux/linux/issues/402 Signed-off-by: Nathan Chancellor Reviewed-by: Arnd Bergmann Signed-off-by: Martin K. Petersen commit a4b207dea9783bbf60af03d6f2c8080b0cee0543 Author: YueHaibing Date: Sat Mar 23 02:15:59 2019 +0000 scsi: pm8001: remove set but not used variables 'param, sas_ha' Fixes gcc '-Wunused-but-set-variable' warning: drivers/scsi/pm8001/pm8001_hwi.c: In function 'mpi_smp_completion': drivers/scsi/pm8001/pm8001_hwi.c:2901:6: warning: variable 'param' set but not used [-Wunused-but-set-variable] drivers/scsi/pm8001/pm8001_hwi.c: In function 'pm8001_bytes_dmaed': drivers/scsi/pm8001/pm8001_hwi.c:3247:24: warning: variable 'sas_ha' set but not used [-Wunused-but-set-variable] They're never used since introduction, so can be removed. Signed-off-by: YueHaibing Acked-by: Jack Wang Signed-off-by: Martin K. Petersen commit 608f729c31d4caf52216ea00d20092a80959256d Author: Arnd Bergmann Date: Fri Mar 22 15:25:03 2019 +0100 scsi: qla4xxx: avoid freeing unallocated dma memory Clang -Wuninitialized notices that on is_qla40XX we never allocate any DMA memory in get_fw_boot_info() but attempt to free it anyway: drivers/scsi/qla4xxx/ql4_os.c:5915:7: error: variable 'buf_dma' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized] if (!(val & 0x07)) { ^~~~~~~~~~~~~ drivers/scsi/qla4xxx/ql4_os.c:5985:47: note: uninitialized use occurs here dma_free_coherent(&ha->pdev->dev, size, buf, buf_dma); ^~~~~~~ drivers/scsi/qla4xxx/ql4_os.c:5915:3: note: remove the 'if' if its condition is always true if (!(val & 0x07)) { ^~~~~~~~~~~~~~~~~~~ drivers/scsi/qla4xxx/ql4_os.c:5885:20: note: initialize the variable 'buf_dma' to silence this warning dma_addr_t buf_dma; ^ = 0 Skip the call to dma_free_coherent() here. Fixes: 2a991c215978 ("[SCSI] qla4xxx: Boot from SAN support for open-iscsi") Signed-off-by: Arnd Bergmann Reviewed-by: Nathan Chancellor Signed-off-by: Martin K. Petersen commit faf5a744f4f8d76e7c03912b5cd381ac8045f6ec Author: Arnd Bergmann Date: Fri Mar 22 15:25:49 2019 +0100 scsi: lpfc: avoid uninitialized variable warning clang -Wuninitialized incorrectly sees a variable being used without initialization: drivers/scsi/lpfc/lpfc_nvme.c:2102:37: error: variable 'localport' is uninitialized when used here [-Werror,-Wuninitialized] lport = (struct lpfc_nvme_lport *)localport->private; ^~~~~~~~~ drivers/scsi/lpfc/lpfc_nvme.c:2059:38: note: initialize the variable 'localport' to silence this warning struct nvme_fc_local_port *localport; ^ = NULL 1 error generated. This is clearly in dead code, as the condition leading up to it is always false when CONFIG_NVME_FC is disabled, and the variable is always initialized when nvme_fc_register_localport() got called successfully. Change the preprocessor conditional to the equivalent C construct, which makes the code more readable and gets rid of the warning. Signed-off-by: Arnd Bergmann Acked-by: James Smart Signed-off-by: Martin K. Petersen commit e7f7b6f38a44697428f5a2e7c606de028df2b0e3 Author: Silvio Cesare Date: Thu Mar 21 09:44:32 2019 -0700 scsi: lpfc: change snprintf to scnprintf for possible overflow Change snprintf to scnprintf. There are generally two cases where using snprintf causes problems. 1) Uses of size += snprintf(buf, SIZE - size, fmt, ...) In this case, if snprintf would have written more characters than what the buffer size (SIZE) is, then size will end up larger than SIZE. In later uses of snprintf, SIZE - size will result in a negative number, leading to problems. Note that size might already be too large by using size = snprintf before the code reaches a case of size += snprintf. 2) If size is ultimately used as a length parameter for a copy back to user space, then it will potentially allow for a buffer overflow and information disclosure when size is greater than SIZE. When the size is used to index the buffer directly, we can have memory corruption. This also means when size = snprintf... is used, it may also cause problems since size may become large. Copying to userspace is mitigated by the HARDENED_USERCOPY kernel configuration. The solution to these issues is to use scnprintf which returns the number of characters actually written to the buffer, so the size variable will never exceed SIZE. Signed-off-by: Silvio Cesare Signed-off-by: Willy Tarreau Signed-off-by: James Smart Cc: Dick Kennedy Cc: Dan Carpenter Cc: Kees Cook Cc: Will Deacon Cc: Greg KH Signed-off-by: Martin K. Petersen commit 7766d129bbff7095ae04c8296faf5dfcb7c3d3fa Author: Anders Roxell Date: Thu Mar 21 14:24:44 2019 +0100 scsi: ufs-mediatek: Add missing MODULE_* information When building the ufs-mediatek module the following warning shows up: WARNING: modpost: missing MODULE_LICENSE() in drivers/scsi/ufs/ufs-mediatek.o Rework to add MODULE_LICENSE,MODULE_AUTHOR and MODULE_DESCRIPTION. Fixes: ddd90623ce26 ("scsi: ufs-mediatek: Add UFS support for Mediatek SoC chips") Signed-off-by: Anders Roxell Reviewed-by: Stanley Chu Signed-off-by: Martin K. Petersen commit 3aa222cdfc2c90b97539e8f4e70a4aec0b1258a6 Author: YueHaibing Date: Thu Mar 21 01:45:17 2019 +0000 scsi: ufs-mediatek: Fix platform_no_drv_owner.cocci warnings Remove .owner field if calls are used which set it automatically Generated by: scripts/coccinelle/api/platform_no_drv_owner.cocci Signed-off-by: YueHaibing Reviewed-by: Stanley Chu Signed-off-by: Martin K. Petersen commit 19b1a294b0b3f4e8080584cd560fc058f12123fb Author: Erez Alfasi Date: Mon Feb 25 08:52:30 2019 +0200 RDMA: Use __packed annotation instead of __attribute__ ((packed)) "__attribute__" set of macros has been standardized, have became more potentially portable and consistent code back in v2.6.21 by commit 82ddcb040 ("[PATCH] extend the set of "__attribute__" shortcut macros"). Moreover, nowadays checkpatch.pl warns about using __attribute__((packed)) instead of __packed. This patch converts all the "__attribute__ ((packed))" annotations to "__packed" within the RDMA subsystem. Signed-off-by: Erez Alfasi Signed-off-by: Leon Romanovsky Signed-off-by: Jason Gunthorpe commit d0a935563bc0f447abed7799388fa3f13099cc0d Author: Lijun Ou Date: Sat Feb 23 20:01:28 2019 +0800 RDMA/hns: Delete unused variable in hns_roce_v2_modify_qp function The src_mac array is not used in hns_roce_v2_modify_qp function. Signed-off-by: Lijun Ou Signed-off-by: Jason Gunthorpe commit 82342e493b7e53f5e0d0698a48190f05e84d6690 Author: Lijun Ou Date: Sat Feb 23 20:01:26 2019 +0800 RDMA/hns: Bugfix for sending with invalidate According to IB protocol, the send with invalidate operation will not invalidate mr that was created through a register mr or reregister mr. Fixes: e93df0108579 ("RDMA/hns: Support local invalidate for hip08 in kernel space") Signed-off-by: Lijun Ou Signed-off-by: Jason Gunthorpe commit 07c2339a91c1ec3a8b8ada00361eced7b153ec0c Author: Lijun Ou Date: Sat Feb 23 20:01:25 2019 +0800 RDMA/hns: Hide error print information with roce vf device The driver should not print the error information when the hip08 driver not support virtual function. Signed-off-by: Lijun Ou Signed-off-by: Jason Gunthorpe commit 5b01b243b0b3725b4460e8924e1f105bb4038969 Author: Lijun Ou Date: Sat Feb 23 20:01:24 2019 +0800 RDMA/hns: Only assgin some fields if the relatived attr_mask is set According to IB protocol, some fields of qp context are filled with optional when the relatived attr_mask are set. The relatived attr_mask include IB_QP_TIMEOUT, IB_QP_RETRY_CNT, IB_QP_RNR_RETRY and IB_QP_MIN_RNR_TIMER. Besides, we move some assignments of the fields of qp context into the outside of the specific qp state jump function. Signed-off-by: Lijun Ou Signed-off-by: Jason Gunthorpe commit 834fa8cf6f7002706b02873fc0d16f9b06ef4819 Author: Lijun Ou Date: Sat Feb 23 20:01:23 2019 +0800 RDMA/hns: Update the range of raq_psn field of qp context According to hip08 UM(User Manual), the raq_psn field size is [23:0]. Signed-off-by: Lijun Ou Signed-off-by: Jason Gunthorpe commit 601f3e6d067c4399953dc7ede8f4c5448f91b02a Author: Lijun Ou Date: Sat Feb 23 20:01:22 2019 +0800 RDMA/hns: Only assign the fields of the rq psn if IB_QP_RQ_PSN is set Only when the IB_QP_RQ_PSN flags of attr_mask is set is it valid to assign the relatived fields of rq'psn into the qp context when modified qp. Signed-off-by: Lijun Ou Signed-off-by: Jason Gunthorpe commit f04cc17878b47bfa47af2e50f481d7f6eaaf3ca7 Author: Lijun Ou Date: Sat Feb 23 20:01:21 2019 +0800 RDMA/hns: Only assign the relatived fields of psn if IB_QP_SQ_PSN is set Only when the IB_QP_SQ_PSN flags of attr_mask is set is it valid to assign the relatived fields of psn into the qp context when modified qp. Signed-off-by: Lijun Ou Signed-off-by: Jason Gunthorpe commit 401b44804c2ae7ea1121235fa9c9827d12c2a573 Author: Matthew Wilcox Date: Wed Feb 20 16:20:55 2019 -0800 cxgb4: Convert stid_idr to XArray Signed-off-by: Matthew Wilcox Acked-by: Steve Wise Signed-off-by: Jason Gunthorpe commit 9f5a9632e412ac35f34de1d8bc8b7e99b72414cf Author: Matthew Wilcox Date: Wed Feb 20 16:20:54 2019 -0800 cxgb4: Convert atid_idr to XArray Signed-off-by: Matthew Wilcox Signed-off-by: Jason Gunthorpe commit ded716267196862809e5926072adc962a611a1e3 Author: Mauro Carvalho Chehab Date: Mon Mar 25 17:09:05 2019 -0400 media: hfi_parser: don't trick gcc with a wrong expected size Smatch warns about small size on two structs: drivers/media/platform/qcom/venus/hfi_parser.c:103 parse_profile_level() error: memcpy() 'proflevel' too small (8 vs 128) drivers/media/platform/qcom/venus/hfi_parser.c: drivers/media/platform/qcom/venus/hfi_parser.c:129 parse_caps() error: memcpy() 'cap' too small (16 vs 512) The reason is that the hfi_parser actually expects: - multiple data entries on hfi_capabilities - multiple profile_level on hfi_profile_level_supported However, the structs trick gcc, making it to believe that there's just one value for each. Signed-off-by: Mauro Carvalho Chehab commit bf78f23acf023d5bc9d31bab2918a3092dc821f0 Author: Mauro Carvalho Chehab Date: Mon Mar 25 16:47:13 2019 -0400 media: rcar-dma: p_set can't be NULL The only way for p_set to be NULL would be if vin_coef_set would be an empty array. On such case, the driver will OOPS, as it would try to de-reference a NULL value. So, the check if p_set is not NULL doesn't make any sense. Solves those two smatch warnings: drivers/media/platform/rcar-vin/rcar-dma.c:489 rvin_set_coeff() warn: variable dereferenced before check 'p_set' (see line 484) drivers/media/platform/rcar-vin/rcar-dma.c:494 rvin_set_coeff() error: we previously assumed 'p_set' could be null (see line 489) Signed-off-by: Mauro Carvalho Chehab commit 1021cd56772b636ebccc3941c44094ef6b0fac4e Author: Mauro Carvalho Chehab Date: Mon Mar 25 16:32:19 2019 -0400 media: sti/delta: remove uneeded check At the error logic, ipc_buf was already asigned to &ctx->ipc_buf_struct, with can't be null, as warned by smatch: drivers/media/platform/sti/delta/delta-ipc.c:223 delta_ipc_open() warn: variable dereferenced before check 'ctx->ipc_buf' (see line 183) So, remove the uneeded check. Signed-off-by: Mauro Carvalho Chehab commit 4f777d011bdd9e78fcf02701e89c8be457504a6c Author: Mauro Carvalho Chehab Date: Mon Mar 25 16:20:47 2019 -0400 media: pwc-ctl: pChoose can't be NULL The way the code works, compression will be a valid value (less or equal to 3) on both set_video_mode_foo() calls at the beginning of the while() loop. So, the value for pChoose can't be NULL. Solves those smatch warnings: drivers/media/usb/pwc/pwc-ctrl.c: drivers/media/usb/pwc/pwc-ctrl.c:252 set_video_mode_Timon() warn: variable dereferenced before check 'pChoose' (see line 248) drivers/media/usb/pwc/pwc-ctrl.c: drivers/media/usb/pwc/pwc-ctrl.c:302 set_video_mode_Kiara() warn: variable dereferenced before check 'pChoose' (see line 298) and simplifies the code a little bit. Signed-off-by: Mauro Carvalho Chehab commit 3d19cde7be76d4471426edc348bcf3b45c64f097 Author: Mauro Carvalho Chehab Date: Mon Mar 25 15:09:30 2019 -0400 media: cx2341x: replace badly designed macros There are some macros at cx2341x_update() with seemed to be introduced in order to ensure that lines would be less than 80 columns. Well, the thing is that they make the code harder to be analized, not only by humans, but also for static code analyzers: drivers/media/common/cx2341x.c:1116 cx2341x_update() error: we previously assumed 'old' could be null (see line 1047) So, remove the "force" var, and replace the NEQ macro to a better designed one that makes clearer about what it is doing. While here, also remove the "temporal" var, as it is just another way of doing the same type of check as the new CMP_FIELD() macro already does. Finally, fix coding style at the block code. remove such macros. Signed-off-by: Mauro Carvalho Chehab commit 97ee6e925552438600f6c244595e3f07612bbf6f Author: Daniele Ceraolo Spurio Date: Thu Mar 21 17:24:31 2019 -0700 drm/i915: stop storing the media fuse We're already updating the engine_mask to reflect what's in the HW, so we can just get the info from there. A couple of macros have been added to facilitate this. v2: Appease checkpatch Suggested-by: Chris Wilson Signed-off-by: Daniele Ceraolo Spurio Cc: Chris Wilson Cc: Michal Wajdeczko Reviewed-by: Chris Wilson Reviewed-by: Michal Wajdeczko Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190322002431.9585-1-daniele.ceraolospurio@intel.com commit e6331a321aafcc291a60ceedf4d6b0051a6117ca Author: Paul Burton Date: Fri Mar 22 18:04:04 2019 +0000 MIPS: KVM: Use prandom_u32_max() to generate tlbwr index Emulation of the tlbwr instruction, which writes a TLB entry to a random index in the TLB, currently uses get_random_bytes() to generate a 4 byte random number which we then mask to form the index. This is overkill in a couple of ways: - We don't need 4 bytes here since we mask the value to form a 6 bit number anyway, so we waste /dev/random entropy generating 3 random bytes that are unused. - We don't need crypto-grade randomness here - the architecture spec allows implementations to use any algorithm & merely encourages that some pseudo-randomness be used rather than a simple counter. The fast prandom_u32() function fits that criteria well. So rather than using get_random_bytes() & consuming /dev/random entropy, switch to using the faster prandom_u32_max() which provides what we need here whilst also performing the masking/modulo for us. Signed-off-by: Paul Burton Reported-by: George Spelvin Cc: James Hogan Cc: linux-mips@vger.kernel.org commit 14a56ec65bab351a3e1535882f15a6af21912cac Author: Gao Xiang Date: Mon Mar 25 11:40:09 2019 +0800 staging: erofs: support IO read error injection Used to simulate disk IO read error for testing fatal error tolerance. Here are the details, 1) use bio->bi_private to indicate super_block for non-compressed bios since some (mainly meta) pages can be of the corresponding bdev inode; 2) get super_block dynamically for compressed bios, therefore it could not inject bios full of staging pages, yet it doesn't affect the normal usage. Signed-off-by: Gao Xiang Reviewed-by: Chao Yu Signed-off-by: Greg Kroah-Hartman commit d61fbb6b163494219335a25812dab9acb291c4b6 Author: Gao Xiang Date: Mon Mar 25 11:40:08 2019 +0800 staging: erofs: introduce erofs_page_is_managed() 1) In order to clean up unnecessary page->mapping == MNGD_MAPPING(sbi) wrapped by #ifdefs; 2) Needed by "staging: erofs: support IO read error injection". Reviewed-by: Chao Yu Signed-off-by: Gao Xiang Signed-off-by: Greg Kroah-Hartman commit 11152496021ea872dac150e0fdad610f6e63773d Author: Gao Xiang Date: Mon Mar 25 11:40:07 2019 +0800 staging: erofs: fix error handling when failed to read compresssed data Complete read error handling paths for all three kinds of compressed pages: 1) For cache-managed pages, PG_uptodate will be checked since read_endio will unlock and SetPageUptodate for these pages; 2) For inplaced pages, read_endio cannot SetPageUptodate directly since it should be used to mark the final decompressed data, PG_error will be set with page locked for IO error instead; 3) For staging pages, PG_error is used, which is similar to what we do for inplaced pages. Fixes: 3883a79abd02 ("staging: erofs: introduce VLE decompression support") Cc: # 4.19+ Reviewed-by: Chao Yu Signed-off-by: Gao Xiang Signed-off-by: Greg Kroah-Hartman commit c8723cb8d06bb1064508055881c1bd0c90a15a18 Author: Sanjana Sanikommu Date: Mon Mar 25 13:14:01 2019 +0530 staging: sm750fb: Prefer using the BIT macro Challenge suggested by coccinelle. Replace bit shifting on 1 with the BIT(x) macro. Coccinelle script: @@ constant c; @@ -(1 << c) +BIT(c) Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit dc1e3766ec72f6d5b5a610eb772ea1868d367163 Author: Sammy Abed Date: Sun Mar 24 20:15:03 2019 -0700 staging: rtl8723bs: include: Fix indentation and spacing issues Replaced spaces with tabs at the beginning of lines. Added spaces around a (+) operator. Signed-off-by: Sammy Abed Signed-off-by: Greg Kroah-Hartman commit 96711664002c023afa4be165f6aa2c377ed85339 Author: Dominik Adamski Date: Sun Mar 24 20:20:20 2019 +0100 staging: ralink-gdma: ralink-gdma.c fixed line width Fix checkpatch issue: line over 80 characters Signed-off-by: Dominik Adamski Signed-off-by: Greg Kroah-Hartman commit d638e7eeda54d2cab74374215281a3831f1bbe3d Author: Michael Straube Date: Sun Mar 24 18:21:51 2019 +0100 staging: rtl8188eu: cleanup long line in odm.c Align a comment to clear a line over 80 characters checkpatch warning. Signed-off-by: Michael Straube Signed-off-by: Greg Kroah-Hartman commit e5adddf5ae97811abe917b267a0d11daec5ccc16 Author: Sidong Yang Date: Sun Mar 24 14:54:41 2019 +0000 staging: pi433: remove unnecessary calling rf69_set_mode() Remove unnecessary rf69_set_mode() function call when rx is waiting for a telegram. There is waste to call rf69_set_mode() twice for becoming standby mode. Signed-off-by: Sidong Yang Signed-off-by: Greg Kroah-Hartman commit 344201e0f866853e739cf1eb073ca4c8a5823b24 Author: Bharath Vedartham Date: Sun Mar 24 15:32:35 2019 +0530 staging: ralink-gdma: Remove space after cast This fixes the checkpatch.pl check: "No space is necessary after the cast". Signed-off-by: Bharath Vedartham Signed-off-by: Greg Kroah-Hartman commit 4da99b90ce06c45da07138f7d9e4031898ad8284 Author: Bharath Vedartham Date: Sun Mar 24 15:18:03 2019 +0530 staging: ralink-gdma: Change unsigned to unsigned int This fixes the checkpatch.pl warning: "Prefer unsigned to unsigned int" Signed-off-by: Bharath Vedartham Signed-off-by: Greg Kroah-Hartman commit 506bce733590fb625989ecf53f3eb8f9afa838c9 Author: Jules Irenge Date: Mon Mar 25 17:42:06 2019 +0000 staging: tegra-vde: remove unnecessary boilerplate license identifier text Remove unnecessary boilerplate license identifier text. Signed-off-by: Jules Irenge Signed-off-by: Greg Kroah-Hartman commit 3d107833139b434539fa4b4b6aa1a934267d34e0 Author: Jules Irenge Date: Mon Mar 25 17:42:05 2019 +0000 staging: tegra-vde: Add SPDX GPL-2.0+ license identifier to fix checkpatch warning Add the SPDX GPL-2.0+ license identifier to fix checkpatch.pl warning "WARNING: Missing or malformed SPDX-License-Identifier tag in line 1" Signed-off-by: Jules Irenge Signed-off-by: Greg Kroah-Hartman commit 993e826884e542cc1602bfaba0b63c3f7e81bc8f Author: Madhumitha Prabakaran Date: Mon Mar 25 11:42:55 2019 -0500 Staging: media: davinci_vpfe: Drop macros Drop macros instead use functions set_bit() and clear_bit directly. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit a3703713e18a74103c2a0c2206ebc759fe068ca6 Author: Madhumitha Prabakaran Date: Mon Mar 25 11:53:37 2019 -0500 Staging: media: davinci_vpfe: Fix preferred form of passing a size Fix preferred form of passing a size of a struct to improve readability and eradicate an opportunity for a bug when the pointer variable type is changed but the corresponding sizeof that is passed to a memory allocator is not. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit ac394266dc7fd7c8b14b68888ca1349cc4e42768 Author: Vatsala Narang Date: Sun Mar 24 04:50:07 2019 +0530 staging: media: zoran: Use unsigned int instead of unsigned Replace 'unsigned' with 'unsigned int' to get rid of checkpatch warning Signed-off-by: Vatsala Narang Signed-off-by: Greg Kroah-Hartman commit 1ec119f09420ab2cb8b55c713d0821335e1aff39 Author: Bhanusree Pola Date: Sat Mar 23 13:21:29 2019 +0530 Staging: media: imx: mipi-csi2: Remove unnecessary error messages The function devm_ioremap already prints error message when there is no enough memory. Remove print statements that give error messages Issue found using coccinelle The following semantic patch is used to solve this: @@ expression x; constant char[] C; identifier f; @@ x = (\(kmalloc\|devm_kzalloc\|kmalloc_array\|devm_ioremap\| usb_alloc_urb\|alloc_netdev\|dev_alloc_skb\)(...)); if(x==NULL) { ... ( -f(C,...); | -f(...,C); ) ... } Signed-off-by: Bhanusree Pola Reviewed-by: Fabio Estevam Signed-off-by: Greg Kroah-Hartman commit ab2a7a292a783b0c9ff0849c27c32c9ce7ed8237 Author: Vatsala Narang Date: Mon Mar 25 16:57:24 2019 +0530 staging: vt6655: lines should not end with a parentheses Adjust code to fix the style issue-lines should not end with a parentheses Signed-off-by: Vatsala Narang Signed-off-by: Greg Kroah-Hartman commit 03f4a7b688014c5e1adddca13a8a6a698acf4d06 Author: Ganesh Biradar Date: Sun Mar 24 18:36:09 2019 +0530 staging: vt6655: Modify comment style of SPDX License Identifier Fix the comment style of SPDX license identifier based on header file type Signed-off-by: Ganesh Biradar Signed-off-by: Greg Kroah-Hartman commit d4fe5b1507dfe0c11cb148712e509db49e7a2571 Author: Maxime Ripard Date: Mon Mar 25 14:52:53 2019 +0100 ARM: dts: sunxi: Add default dr_mode The USB OTG binding we have mandates to have a dr_mode property, yet not all boards are setting it. Since the generic otg binding states that the default mode should be the OTG mode, let's use that one in our DTSI. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 1b97cf4987fb2e3242880d460a530eaccd8c4759 Author: Maxime Ripard Date: Mon Mar 25 14:52:48 2019 +0100 ARM: dts: sun8i: A23/A33: Fix pinctrl node names The NAND pinctrl nodes names don't follow the pattern we've used and enforced for some time. Make sure they do. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 1befb26623737d77f5ed43d5e24a28a7f666088d Author: Maxime Ripard Date: Mon Mar 25 14:52:47 2019 +0100 ARM: dts: sunxi: Remove pinctrl size-cells property The children nodes of the pinctrl node hadn't have any reg property for quite some time, so we don't need the size-cells property. Remove it. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 327384569871e7e3ed637d89726abacda3902098 Author: Maxime Ripard Date: Mon Mar 25 14:52:45 2019 +0100 ARM: dts: sun8i: r40: Remove useless AHCI properties The SATA controller never have any children nodes, so we don't need the address and size cells properties. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit b9f6b80e04ad061ff4e12bdb72ea21af3518d79f Author: Maxime Ripard Date: Mon Mar 25 14:52:44 2019 +0100 ARM: dts: sun8i: r40: Fix AHCI reset-names property The AHCI node was introduced with a typo in the reset-names property that got written resets-name instead. This was working because the reset is optional for that driver, and the controller was put out of reset by the bootloader. Fixes: 41c64d3318aa ("ARM: dts: sun8i: r40: add sata node") Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 655c0f429fff6e17e0d5bde141bc759ed5d1927f Author: Maxime Ripard Date: Mon Mar 25 14:52:43 2019 +0100 ARM: sunxi: dts: Split USB PHY cells into an array Even though it doesn't make any difference at the binary level, the reg property is an array of cells, and should be represented as such. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 939b6654344c8b37399adfea12018b10a53c67de Author: Maxime Ripard Date: Mon Mar 25 14:52:42 2019 +0100 ARM: dts: sun8i: tbs-a711: Fix typo in regulators The regulator properties suffix is -supply, yet a _supply slipped in. This was working because the regulator framework will provide a dummy regulator when none is provided in the device tree, and the regulator itself was always enabled. Fixes: 90c5d7cdae64 ("ARM: dts: sun8i: a711: Add regulator support") Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 09f29dcc22d5d465b52bbe95c09d0315e23c787b Author: Maxime Ripard Date: Mon Mar 25 14:52:41 2019 +0100 ARM: dts: sunxi: Fix the TCON output clock Even though we shouldn't really have any external user of the clock provided by the TCON, if clock-output-names is set, then #clock-cells must be there as well. Fix this. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 033914f877e8d1febf802242174a62ce566a5901 Author: Maxime Ripard Date: Mon Mar 25 14:52:40 2019 +0100 ARM: sunxi: Fix the USB PHY VBUS detect GPIO properties While the USB PHY Device Tree mandates that the name of the VBUS detect pin should be usb0_vbus_det-gpios, a significant number of device tree use usb0_vbus_det-gpio instead. This was functional because the GPIO framework falls back to the gpio suffix that is legacy, but we should fix this. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 2c515b0d05a9894af288a71aa6e6ed7d1d8ef32f Author: Maxime Ripard Date: Mon Mar 25 14:52:39 2019 +0100 ARM: sunxi: Fix the USB PHY ID detect GPIO properties While the USB PHY Device Tree mandates that the name of the ID detect pin should be usb0_id_det-gpios, a significant number of device tree use usb0_id_det-gpio instead. This was functional because the GPIO framework falls back to the gpio suffix that is legacy, but we should fix this. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 0c64f75d89cb57eb4b9e956251dd87ee8e080563 Author: Maxime Ripard Date: Mon Mar 25 14:52:38 2019 +0100 ARM: dts: sunxi: Switch to new GPIOs properties for i2c-gpio The i2c-gpio driver uses named gpios now and the array of GPIOs is deprecated. Switch to the new binding. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 5400cdc1410b25321235d9e52a092a6132168c74 Author: Maxime Ripard Date: Mon Mar 25 14:52:37 2019 +0100 ARM: dts: sunxi: Fix GIC compatible As can be shown by the YAML schema now, the combination of GIC compatibles we were using has never been an option. Switch to the gic-400 variant, which is the more correct option. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 1cf0444a23fa690539175bb3fb9c66f27e81a153 Author: Maxime Ripard Date: Mon Mar 25 14:52:36 2019 +0100 ARM: dts: sun5i: lichee-pi one: Remove stale pinctrl-names entry Some nodes still have pinctrl-names entry, yet they don't have any pinctrl group anymore. Drop them. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit c2a5b554751545023056559121a8ecf86aebe541 Author: Maxime Ripard Date: Mon Mar 25 14:52:34 2019 +0100 ARM: dts: sun9i: optimus: Fix fixed-regulators Commit 1848f3f44444 ("ARM: dts: sun9i: Remove GPIO pinctrl nodes to avoid warnings") was wrong on the optimus, and instead of droping the pinctrl-names property, it dropped the regulator-name one. Obviously, that wasn't what was intended. Reinstate regulator-name and drop pinctrl-names. Fixes: 1848f3f44444 ("ARM: dts: sun9i: Remove GPIO pinctrl nodes to avoid warnings") Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit be354500c101d0cbd779fd8c86be2ed809db7ea9 Author: Maxime Ripard Date: Mon Mar 25 14:52:33 2019 +0100 dt-bindings: arm: Remove the CPU compatible documentation Commit 1f8afea8fee0 ("dt-bindings: Add YAML description for Allwinner boards") added an exhaustive list of the valid compatibles used for both the SoCs and boards. We can therefore remove the old documentation, that never got as well updated as it should have. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit ebc42b478b0c9a6d69a0edebc9182d9ec302f603 Author: Maxime Ripard Date: Mon Mar 18 13:56:13 2019 +0100 ARM: dts: sun8i: a23/a33: Add R_I2C Controller The A23 and A33 both have an I2C controller in the ARISC domain, that share the same pins with the RSB bus. Even if it's an unusual configuration, that device can be used to drive the PMIC, so let's use it. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 4f6faf7864481b81fe90a5c98c48dbe50cdd9349 Author: Maxime Ripard Date: Mon Mar 18 11:26:02 2019 +0100 ARM: dts: sun8i: a33: Add default address and size cells to the DSI node The DSI bindings require that an address cell size of 1, and a size cell of 0. Instead of duplicating it in each and every board DTS file, let's put it in the DTSI. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 7ee02cb56c3f86c9707224f5770f70395ffbba70 Author: Maxime Ripard Date: Fri Mar 15 10:36:51 2019 +0100 dt-bindings: Add YAML description for Allwinner boards We've never had a board compatibles documentation for the Allwinner boards so far. Let's create a json-schema for them. Reviewed-by: Rob Herring Signed-off-by: Maxime Ripard commit 927489b1570e12803324bf753173e36b82b02be7 Author: Maxime Ripard Date: Thu Mar 14 21:16:34 2019 +0100 ARM: dts: sun9i: Add missing unit address The soc node in the A80 DTSI has a ranges property, but no matching unit address, which results in a DTC warning. Add the unit address to remove that warning. Signed-off-by: Maxime Ripard commit c4953ba1eddde084ddca25ec7cec994b4f3b7e42 Author: Maxime Ripard Date: Thu Mar 14 21:16:33 2019 +0100 ARM: dts: sun9i: Fix Display Engine DTC warnings Our display engine endpoints trigger some DTC warnings due to the fact that we're having a single endpoint that doesn't need any reg property, and since we don't have a reg property, we don't need the address-cells and size-cells properties anymore. Fix those Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 109b7bfa777b513bb751bb208f9d9286ffc6a4d3 Author: Maxime Ripard Date: Thu Mar 14 21:16:32 2019 +0100 ARM: dts: sun8i: r40: Fix Display Engine DTC warnings Our display engine endpoints trigger some DTC warnings due to the fact that we're having a single endpoint that doesn't need any reg property, and since we don't have a reg property, we don't need the address-cells and size-cells properties anymore. Fix those Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 56975bfbb7fbdfaacd79e3522576302c07956593 Author: Maxime Ripard Date: Thu Mar 14 21:16:31 2019 +0100 ARM: dts: sun8i: a83t: Fix Display Engine DTC warnings Our display engine endpoints trigger some DTC warnings due to the fact that we're having a single endpoint that doesn't need any reg property, and since we don't have a reg property, we don't need the address-cells and size-cells properties anymore. Fix those Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit f79d79534dba544678343275e0459bb1a675cbea Author: Maxime Ripard Date: Thu Mar 14 21:16:30 2019 +0100 ARM: dts: sun8i: v3s: Fix Display Engine DTC warnings Our display engine endpoints trigger some DTC warnings due to the fact that we're having a single endpoint that doesn't need any reg property, and since we don't have a reg property, we don't need the address-cells and size-cells properties anymore. Fix those Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 5bab80efb750722e8d0cdb8144511a4957b2a1d6 Author: Maxime Ripard Date: Thu Mar 14 21:16:29 2019 +0100 ARM: dts: sun8i: a23/a33: Fix Display Engine DTC warnings Our display engine endpoints trigger some DTC warnings due to the fact that we're having a single endpoint that doesn't need any reg property, and since we don't have a reg property, we don't need the address-cells and size-cells properties anymore. Fix those Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 73b65f45bc60f16e07e0aad42e6406f2abddc248 Author: Maxime Ripard Date: Thu Mar 14 21:16:28 2019 +0100 ARM: dts: sun6i: Fix Display Engine DTC warnings Our display engine endpoints trigger some DTC warnings due to the fact that we're having a single endpoint that doesn't need any reg property, and since we don't have a reg property, we don't need the address-cells and size-cells properties anymore. Fix those Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit a8735656955994fb75fbc835ede2b46052f86b60 Author: Maxime Ripard Date: Thu Mar 14 21:16:27 2019 +0100 ARM: dts: sun5i: Fix Display Engine DTC warnings Our display engine endpoints trigger some DTC warnings due to the fact that we're having a single endpoint that doesn't need any reg property, and since we don't have a reg property, we don't need the address-cells and size-cells properties anymore. Fix those Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 9d803c1cf8513e82654210fffd805879325d0e22 Author: Maxime Ripard Date: Thu Mar 14 21:16:26 2019 +0100 ARM: dts: sun5i: Fix display pipeline endpoint warnings in DTC Since most of the display IPs have a single endpoint, having a reg property, a unit-address and #address-cells and #size-cells will emit a warning. Let's remove those. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 67fec9db606f24fb81809a9a04078cbca0c24fa7 Author: Maxime Ripard Date: Thu Mar 14 21:16:24 2019 +0100 ARM: dts: sun8i: a83t: Add cross links for the mixers Unlike what the binding for multiple pipeline documents, the A83t doesn't have the cross links between the TCON and the mixers. Let's add them. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit cd42ca0515d3952fc78a591618d57dd54f881d1f Author: Priit Laes Date: Tue Feb 26 16:15:25 2019 +0200 ARM: dts: sun7i: olimex-lime2: Add regulators for GPIO banks Make sure that A20 Olimex Lime2 pin bank regulators are properly represented. While pin banks A, B and F are connected to 3.3V static regulator, pin banks E and G tied with LDO3 and LDO4 regulators with 2.8V reference. Signed-off-by: Priit Laes Signed-off-by: Maxime Ripard commit ff8e860249e8c705d9150e307d81305e66b55d06 Author: Mans Rullgard Date: Wed Feb 20 14:25:36 2019 +0000 ARM: dts: sun7i: add /omit-if-no-ref/ tags to pin group nodes Since only one alternative at a time is used, and some functions may not be used at all, this cuts down the size of the board dtb files a bit. Signed-off-by: Mans Rullgard Signed-off-by: Maxime Ripard commit cfec64e8f2e73cc8167f05eada39510365afcd5b Author: Mans Rullgard Date: Wed Feb 20 14:25:35 2019 +0000 ARM: dts: sun7i: add pinctrl for EMAC in PH bank This adds pinctrl settings the EMAC using pins in the PH block. Signed-off-by: Mans Rullgard Signed-off-by: Maxime Ripard commit 7a13e1820a6b5dc42fd837a5001bedf552a8f9c9 Author: Mans Rullgard Date: Wed Feb 20 14:25:34 2019 +0000 ARM: dts: sun7i: add pinctrl for CAN in PA bank This adds pinctrl settings for the CAN controller using pins PA16 and PA17. Signed-off-by: Mans Rullgard Signed-off-by: Maxime Ripard commit 73b670023327a014688c2d5309a43604cd553f1e Author: Mans Rullgard Date: Wed Feb 20 12:07:17 2019 +0000 ARM: dts: sun7i: add pinctrl for missing uart mux options This adds pinctrl settings for various missing uart options. Signed-off-by: Mans Rullgard Signed-off-by: Maxime Ripard commit f144e67b0e683cbb2c476b20a93e27aa1cd9d458 Merge: 0bec6219e5a0 1284ec985572 Author: Dave Airlie Date: Tue Mar 26 06:15:27 2019 +1000 Merge tag 'drm-intel-next-2019-03-20' of git://anongit.freedesktop.org/drm/drm-intel into drm-next UAPI Changes: - Report an error early instead of SIGBUS later when mmap beyond BO size Core Changes: - This includes backmerge of drm-next and two merges of Maarten's topic/hdr-formats Driver Changes: - Add Comet Lake (Gen9) PCI IDs to Coffee Lake ID list (Anusha) - Add missing ICL PCI ID (Jose) - Fix legacy gamma mode for ICL (Ville) - Assume eDP is present on port A when there is no VBT (Thomas) - Corrections to eDP training patterns (Jose) - Fix PSR2 selective update corruption after PSR1 setup (Jose) - Fix CRC mismatch error for DP link layer compliance (Aditya) - Fix CNL DPLL readout and clean up code (Ville) - Turn off the CUS when turning off a HDR plane (Ville) - Avoid a race with execlist tasklet during race (Chris) - Add missing CSC readout and clean up code (Ville) - Avoid unnecessary wakeref during debugfs/drop_caches/set (Chris, Caz) - Hold references to ring/HW context/context explicitly when used (Chris) - Assume next platforms inherit old platform (Rodrigo) - Use HWS indices rather than addresses for breadcrumbs (Chris) - Add REG_BIT/REG_GENMASK and REG_FIELD_PREP macros (Jani) - Convert crept in C99 types to kernel fixed size types (Jani) - Avoid passing full dev_priv in forcewake functions (Daniele) - Reset GuC on GPU reset (Sujaritha) - Rework MG and Combo PLLs to vfuncs (Lucas) - Explicitly track ppGTT size (Chris, Bob) - Coding style improvements and code modularization (Ville) - Selftest and debugging improvements (Chris) Signed-off-by: Dave Airlie # Conflicts: # drivers/gpu/drm/i915/intel_hdmi.c From: Joonas Lahtinen Link: https://patchwork.freedesktop.org/patch/msgid/20190325124925.GA12726@jlahtine-desk.ger.corp.intel.com commit a4dc791974e568a15f7f37131729b1a6912f4811 Author: Maxime Ripard Date: Mon Mar 25 14:52:52 2019 +0100 ARM: dts: sun8i: h3: Refactor the pinctrl node names The H3 and H5 have never been converted to the new convention we want to have for the pinctrl nodes. Convert them. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 75f9a058838be9880afd75c4cb14e1bf4fe34a0b Author: Maxime Ripard Date: Mon Mar 25 14:52:35 2019 +0100 ARM: dts: sunxi: h3/h5: Remove stale pinctrl-names entry Some nodes still have pinctrl-names entry, yet they don't have any pinctrl group anymore. Drop them. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 54eac67bbe3af1f6ad95bd656cf332c7f23dda78 Author: Maxime Ripard Date: Mon Mar 25 14:52:51 2019 +0100 arm64: dts: allwinner: Fix pinctrl node names Some pinctrl node names for the A64 and H6 do not follow the convention that we switched to and enforced, most notably by using underscores in node names, which also trigger a DTC warning. Let's change that. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 562bf19611c000cb7219431c3cc78aa60c2b371e Author: Maxime Ripard Date: Mon Mar 25 14:52:50 2019 +0100 arm64: dts: allwinner: a64: Add missing PIO clocks The pinctrl binding mandates that we have the three clocks fed into the PIO described. Even though the old case is still supported for backward compatibility, we should update our DTs to fix this. Fixes: 6bc37fac30cf ("arm64: dts: add Allwinner A64 SoC .dtsi") Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit d41a43a0d365e5427efbc4ab4054fb3922994692 Author: Maxime Ripard Date: Mon Mar 25 14:52:46 2019 +0100 arm64: dts: allwinner: a64: Fix display pipeline endpoints Commit a7f7047ffcee ("arm64: dts: allwinner: a64: Add cross links for the mixers") introduced a few errors while fixing the cross links. Make sure to correct them. Fixes: a7f7047ffcee ("arm64: dts: allwinner: a64: Add cross links for the mixers") Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 26c609d5d219cf52191580acf3fc0f2884f624b4 Author: Maxime Ripard Date: Mon Mar 25 14:52:41 2019 +0100 arm64: dts: allwinner: a64: Fix the TCON output clock Even though we shouldn't really have any external user of the clock provided by the TCON, if clock-output-names is set, then #clock-cells must be there as well. Fix this. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit f254ba6ae5474cb3f1c1863b102368483963e858 Author: Matthew Wilcox Date: Wed Feb 20 16:20:53 2019 -0800 cxgb4: Convert hwtid_idr to XArray Signed-off-by: Matthew Wilcox Acked-by: Steve Wise Signed-off-by: Jason Gunthorpe commit 153d11cc530cb2a3045167253582d3d2849ad519 Author: Mauro Carvalho Chehab Date: Fri Dec 7 06:43:03 2018 -0500 media: imx214: don't de-reference a NULL pointer As warned by smatch: drivers/media/i2c/imx214.c:591 imx214_set_format() warn: variable dereferenced before check 'format' (see line 589) It turns that the code at imx214_set_format() has support for being called with the format being NULL. I've no idea why, as it is only called internally with the pointer set, and via subdev API (with should also set it). Also, the entire logic there depends on having format != NULL, so just remove the bogus broken support for a null format. Signed-off-by: Mauro Carvalho Chehab Reviewed-by: Hans Verkuil Reviewed-by: Ricardo Ribalda Delgado Signed-off-by: Mauro Carvalho Chehab commit 7a268a93973c07f93e952d96c2faa88df8ed38d8 Author: Matthew Wilcox Date: Wed Feb 20 16:20:52 2019 -0800 cxgb4: Convert mmidr to XArray Signed-off-by: Matthew Wilcox Acked-by: Steve Wise Signed-off-by: Jason Gunthorpe commit 2f43129127e62b25f56ff82a37c40b42c0e6f883 Author: Matthew Wilcox Date: Wed Feb 20 16:20:51 2019 -0800 cxgb4: Convert qpidr to XArray Signed-off-by: Matthew Wilcox Acked-by: Steve Wise Signed-off-by: Jason Gunthorpe commit 52e124c27e7bfb78980189bdfec049594d7612be Author: Matthew Wilcox Date: Wed Feb 20 16:20:50 2019 -0800 cxgb4: Convert cqidr to XArray Signed-off-by: Matthew Wilcox Acked-by: Steve Wise Signed-off-by: Jason Gunthorpe commit e64a7c02f101b91840f6a5ccde6937d67ffbd825 Author: Matthew Wilcox Date: Wed Feb 20 16:20:49 2019 -0800 cxgb3: Convert mmidr to XArray Signed-off-by: Matthew Wilcox Acked-by: Steve Wise Signed-off-by: Jason Gunthorpe commit 27114876ceaa66064472f1f0957068b8cdc51a29 Author: Matthew Wilcox Date: Wed Feb 20 16:20:48 2019 -0800 cxgb3: Convert qpidr to XArray Signed-off-by: Matthew Wilcox Acked-by: Steve Wise Signed-off-by: Jason Gunthorpe commit a2f409713e44ff59f704e00b3ec91fed1c19168b Author: Matthew Wilcox Date: Wed Feb 20 16:20:47 2019 -0800 cxgb3: Convert cqidr to XArray It would make sense to convert this to an allocating XArray and remove the kfifo that is currently used to allocate the CQID, but that work is better done by someone who has the hardware to test with. Signed-off-by: Matthew Wilcox Acked-by: Steve Wise Signed-off-by: Jason Gunthorpe commit 149e31e90b505ae0cc909bd0d92b2ba4826574d6 Author: Laurent Pinchart Date: Sun Apr 22 04:00:08 2018 -0400 media: v4l: rcar_fdp1: Fix indentation oddities Indentation is odd in several places, especially when printing messages to the kernel log. Fix it to match the usual coding style. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham Signed-off-by: Mauro Carvalho Chehab commit 35e2e8b5fb0799206efb9005564334ef80e49e34 Author: Dafna Hirschfeld Date: Wed Mar 6 16:13:43 2019 -0500 media: vicodec: set pixelformat to V4L2_PIX_FMT_FWHT_STATELESS for stateless decoder for stateless decoder, set the output pixelformat to V4L2_PIX_FMT_FWHT_STATELESS and the pix info to pixfmt_stateless_fwht Signed-off-by: Dafna Hirschfeld Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 997deb811bf55731a7c0bd972d8d0a266ef8d7e5 Author: Dafna Hirschfeld Date: Wed Mar 6 16:13:42 2019 -0500 media: vicodec: Add support for stateless decoder. Implement a stateless decoder for the new node. Signed-off-by: Dafna Hirschfeld Signed-off-by: Hans Verkuil [hverkuil-cisco@xs4all.nl: add 'return 0;' before default case in vicodec_try_ctrl()] Signed-off-by: Mauro Carvalho Chehab commit fde649b418d15867a1ce0805cc984e4ccc221766 Author: Dafna Hirschfeld Date: Wed Mar 6 16:13:41 2019 -0500 media: vicodec: Register another node for stateless decoder Add stateless decoder instance field to the dev struct and register another node for the statelsess decoder. The stateless API for the node will be implemented in further patches. Signed-off-by: Dafna Hirschfeld Signed-off-by: Hans Verkuil [hverkuil-cisco@xs4all.nl: fix typo: videdev-stateless-dec -> stateless-decoder] Signed-off-by: Mauro Carvalho Chehab commit f05a51b98eaf4f4bf798169ba7793f90cc256e69 Author: Hans Verkuil Date: Wed Mar 13 10:44:20 2019 -0400 media: v4l2-ioctl.c: add V4L2_PIX_FMT_FWHT_STATELESS to v4l_fill_fmtdesc Add V4L2_PIX_FMT_FWHT_STATELESS to the list of pixelformats that v4l_fill_fmtdesc() understands. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 2495f39ce1fa027aab0c3161c14f074295f81c71 Author: Dafna Hirschfeld Date: Wed Mar 6 16:13:40 2019 -0500 media: vicodec: Introducing stateless fwht defs and structs Add structs and definitions needed to implement stateless decoder for fwht and add I/P-frames QP controls to the public api. Signed-off-by: Dafna Hirschfeld Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit ee3963c492ccdb2aa32a45481dea62865bce603d Author: Dafna Hirschfeld Date: Wed Mar 6 16:13:39 2019 -0500 media: vicodec: add documentation to V4L2_PIX_FMT_FWHT_STATELESS add documentation to V4L2_PIX_FMT_FWHT_STATELESS in pixfmt-compressed.rst Signed-off-by: Dafna Hirschfeld Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit f94368e3b04aca0d204d56a076bfca572e2c6c5f Author: Dafna Hirschfeld Date: Wed Mar 6 16:13:38 2019 -0500 media: vicodec: add documentation to V4L2_CID_MPEG_VIDEO_FWHT_PARAMS add documentation to V4L2_CID_MPEG_VIDEO_FWHT_PARAMS control and its related 'v4l2_ctrl_fwht_params' struct [mchehab+samsung@kernel.org: remove extra blank lines] Signed-off-by: Dafna Hirschfeld Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit b663e57cb490cb7a712057e4a4e5159f174cf9e8 Author: Dafna Hirschfeld Date: Wed Mar 6 16:13:37 2019 -0500 media: vicodec: add documentation to V4L2_CID_FWHT_I/P_FRAME_QP add documentation to V4L2_CID_FWHT_I/P_FRAME_QP controls in ext-ctrls-codec.rst [mchehab+samsung@kernel.org: remove extra blank lines] Signed-off-by: Dafna Hirschfeld Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit c022a4a9572265fbc81e245e1322211c8ab0f4f4 Author: Dafna Hirschfeld Date: Wed Mar 6 16:13:36 2019 -0500 media: vicodec: add struct for encoder/decoder instance Add struct 'vicodec_dev_instance' for the fields in vicodec_dev that have have both decoder and encoder versions. Signed-off-by: Dafna Hirschfeld Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 747993722d20ff6586c1c2237f3fd779036f1c56 Author: Dafna Hirschfeld Date: Wed Mar 6 16:13:35 2019 -0500 media: vicodec: Handle the case that the reference buffer is NULL In the stateless decoder the reference buffer is null if the frame is an I-frame (flagged with FWHT_FL_I_FRAME). Make sure not to dereference it in that case. Signed-off-by: Dafna Hirschfeld Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 50e4c5e1b6e4ff583a0335d97a6386a00da56446 Author: Dafna Hirschfeld Date: Wed Mar 6 16:13:34 2019 -0500 media: vicodec: rename v4l2_fwht_default_fmt to v4l2_fwht_find_nth_fmt Rename 'v4l2_fwht_default_fmt' to 'v4l2_fwht_find_nth_fmt' and add a function 'v4l2_fwht_validate_fmt' to check if a format info matches the parameters. This function will also be used to validate the stateless params when adding support for stateless codecs. Signed-off-by: Dafna Hirschfeld Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 92dc64d41276c34343dcd542c2b7a1ed2bea42ad Author: Dafna Hirschfeld Date: Wed Mar 6 16:13:33 2019 -0500 media: vicodec: Validate version dependent header values in a separate function Move the code that validates version dependent header values to a separate function 'validate_by_version' Signed-off-by: Dafna Hirschfeld Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 86764b88c447f9690765db59189ecbeb72325e4c Author: Dafna Hirschfeld Date: Wed Mar 6 16:13:32 2019 -0500 media: vicodec: keep the ref frame according to the format in decoder In the decoder, save the inner reference frame in the same format as the capture buffer. The decoder writes directly to the capture buffer and then the capture buffer is copied to the reference buffer. This will simplify the stateless decoder. Signed-off-by: Dafna Hirschfeld Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit bdbfd992bb9f19817911205cb7173cc6328de2a3 Author: Dafna Hirschfeld Date: Wed Mar 6 16:13:31 2019 -0500 media: vicodec: add field 'buf' to fwht_raw_frame Add the field 'buf' to fwht_raw_frame to indicate the start of the raw frame buffer. This field will be used to copy the capture buffer to the reference buffer in the next patch. Signed-off-by: Dafna Hirschfeld Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 30364c41bd27ff28bc600a5080558b3b11c008ba Author: Dafna Hirschfeld Date: Wed Mar 6 16:13:30 2019 -0500 media: vicodec: Move raw frame preparation code to a function Introduce 'prepare_raw_frame' function that fills the values of a raw frame struct according to the format. Signed-off-by: Dafna Hirschfeld Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit a04a7a2108a1f13addbbcedbeb2cbf7b89dcf970 Author: Dafna Hirschfeld Date: Wed Mar 6 16:13:29 2019 -0500 media: vicodec: bugfix: free compressed_frame upon device release Free compressed_frame buffer upon device release. Signed-off-by: Dafna Hirschfeld Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 8eead25cbdf911e17cff321903bd3397bc6ea22c Author: Dafna Hirschfeld Date: Wed Mar 6 16:13:28 2019 -0500 media: vicodec: bugfix - call v4l2_m2m_buf_copy_metadata also if decoding fails The function 'v4l2_m2m_buf_copy_metadata' should be called even if decoding/encoding ends with status VB2_BUF_STATE_ERROR, so that the metadata is copied from the source buffer to the dest buffer. Signed-off-by: Dafna Hirschfeld Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 86e81794acdfcc48dc6fde79195208e5c8324234 Author: Chinh T Cao Date: Wed Feb 13 10:51:11 2019 -0800 ice: Create a generic name for the ice_rx_flg64_bits structure This structure is used to define the packet flags. These flags are applicable for both TX and RX packet. Thus, this patch changes its name from ice_rx_flag64_bits to ice_flg64_bits, and its member definition. Signed-off-by: Chinh T Cao Reviewed-by: Bruce Allan Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 2bdc97be97136004e4a13d3ade50ad2e6d6c7d44 Author: Bruce Allan Date: Wed Feb 13 10:51:10 2019 -0800 ice: add and use new ice_for_each_traffic_class() macro There are numerous for() loops iterating over each of the max traffic classes. Use a simple iterator macro instead to make the code cleaner. Signed-off-by: Bruce Allan Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit f902796a51a849ad2fc6671817d7b60156dc7559 Author: Dafna Hirschfeld Date: Wed Mar 6 16:13:27 2019 -0500 media: vicodec: change variable name for the return value of v4l2_fwht_encode v4l2_fwht_encode returns either an error code on failure or the size of the compressed frame on success. So change the var assigned to it from 'ret' to 'comp_sz_or_errcode' to clarify that. Signed-off-by: Dafna Hirschfeld Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 09ca38a50795a263d2b16dc95794dc5bc17c1d5c Author: Dafna Hirschfeld Date: Wed Mar 6 16:13:26 2019 -0500 media: v4l2-ctrl: v4l2_ctrl_request_setup returns with error upon failure If one of the controls fails to set, then 'v4l2_ctrl_request_setup' immediately returns with the error code. Signed-off-by: Dafna Hirschfeld Reviewed-by: Paul Kocialkowski Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 4d10452cd1ed619d95fde81cef837069f4c754cd Author: Dafna Hirschfeld Date: Wed Mar 6 16:13:25 2019 -0500 media: vicodec: upon release, call m2m release before freeing ctrl handler 'v4l2_m2m_ctx_release' calls request complete so it should be called before 'v4l2_ctrl_handler_free'. Signed-off-by: Dafna Hirschfeld Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit fb56f4be05adb64674a8a4ec230090960a61732e Author: Hans Verkuil Date: Tue Mar 12 07:53:55 2019 -0400 media: vicodec: fix g_selection: either handle crop or compose The logic of g_selection was wrong: encoders support crop, decoders support compose, but the code allowed both. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 7243e5a06e484746b4bead36dc7fc692781c738b Author: Dafna Hirschfeld Date: Wed Mar 6 16:13:24 2019 -0500 media: vicodec: selection api should only check single buffer types The selection api should check only single buffer types because multiplanar types are converted to single in drivers/media/v4l2-core/v4l2-ioctl.c Signed-off-by: Dafna Hirschfeld Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit e79c7159d471fa5e818bf9ec13e095e22033c792 Author: Hans Verkuil Date: Wed Mar 20 10:31:18 2019 -0400 media: media requests: return EBADR instead of EACCES If requests are used when they shouldn't, or not used when they should, then return EBADR (Invalid request descriptor) instead of EACCES. The reason for this change is that EACCES has more to do with permissions (not being the owner of the resource), but in this case the request file descriptor is just wrong for the current mode of the device. Update the documentation accordingly. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit ca0d1bd489a4e4cb0979a84d5b9ed037764d709f Author: Hans Verkuil Date: Wed Mar 6 16:13:23 2019 -0500 media: cedrus: set requires_requests The cedrus stateless decoder requires the use of request, so indicate this by setting requires_requests to 1. Note that the cedrus driver never checked for this, and as far as I can tell would just crash if an attempt was made to queue a buffer without a request. Signed-off-by: Hans Verkuil Acked-by: Paul Kocialkowski Signed-off-by: Mauro Carvalho Chehab commit 90675d391e9196e95a9e9e31eaa9693d4a995927 Author: Hans Verkuil Date: Wed Mar 6 16:13:21 2019 -0500 media: vb2: add requires_requests bit for stateless codecs Stateless codecs require the use of the Request API as opposed of it being optional. So add a bit to indicate this and let vb2 check for this. If an attempt is made to queue a buffer without an associated request, then the EBADR error is returned to userspace. Doing this check in the vb2 core simplifies drivers, since they don't have to check for this, they can just set this flag. Signed-off-by: Hans Verkuil Reviewed-by: Paul Kocialkowski Signed-off-by: Mauro Carvalho Chehab commit 105e5bc23a3a9de3f6c2d6af116bfc0d2334519a Author: Preethi Banala Date: Wed Feb 13 10:51:09 2019 -0800 ice: change VF VSI tc info along with num_queues Update VF VSI tc info along with vsi->num_txq/num_rxq when VF requests to configure queues. Signed-off-by: Preethi Banala Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 2ebd4428d93a2f6ce0c813b10a1a43b6a8241fe5 Author: Dave Ertman Date: Wed Feb 13 10:51:08 2019 -0800 ice: Prevent unintended multiple chain resets In the current implementation of ice_reset_subtask, if multiple reset types are set in the pf->state, the most intrusive one is meant to be performed only, but the bits requesting the other types are not being cleared. This would lead to another reset being performed the next time the service task is scheduled. Change the flow of ice_reset_subtask so that all reset request bits in pf->state are cleared, and we still perform the most intrusive of the resets requested. Signed-off-by: Dave Ertman Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit a65f71fed5add2ec5713fcc605842f5f2dff22a3 Author: Maciej Fijalkowski Date: Wed Feb 13 10:51:07 2019 -0800 ice: map Rx buffer pages with DMA attributes Provide DMA_ATTR_WEAK_ORDERING and DMA_ATTR_SKIP_CPU_SYNC attributes to the DMA API during the mapping operations on Rx side. With this change the non-x86 platforms will be able to sync only with what is being used (2k buffer) instead of entire page. This should yield a slight performance improvement. Furthermore, DMA unmap may destroy the changes that were made to the buffer by CPU when platform is not a x86 one. DMA_ATTR_SKIP_CPU_SYNC attribute usage fixes this issue. Also add a sync_single_for_device call during the Rx buffer assignment, to make sure that the cache lines are cleared before device attempting to write to the buffer. Signed-off-by: Maciej Fijalkowski Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 712edbbb67d404bae055d88e162e13980b426663 Author: Maciej Fijalkowski Date: Wed Feb 13 10:51:06 2019 -0800 ice: Limit the ice_add_rx_frag to frag addition Refactor ice_fetch_rx_buf and ice_add_rx_frag in a way that we have standalone functions that do either the skb construction or frag addition to previously constructed skb. The skb handling between rx_bufs is spread among various functions. The ice_get_rx_buf will retrieve the skb pointer from rx_buf and if it is a NULL pointer then we do the ice_construct_skb, otherwise we add a frag to the current skb via ice_add_rx_frag. Then, on the ice_put_rx_buf the skb pointer that belongs to rx_buf will be cleared. Moving further, if the current frame is not EOP frame we assign the current skb to the rx_buf that is pointed by updated next_to_clean indicator. What is more during the buffer reuse let's assign each member of ice_rx_buf individually so we avoid the unnecessary copy of skb. Last but not least, this logic split will allow us for better code reuse when adding a support for build_skb. Signed-off-by: Maciej Fijalkowski Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 1fb8c97f9d96400cd0a7f5553844da1eae5594e4 Author: Benjamin Drung Date: Sun Feb 3 21:13:30 2019 +0100 ARM: dts: exynos: Fix spelling mistake of EXYNOS5420 The SoC name EXYNOS5420 was misspelled. Signed-off-by: Benjamin Drung Signed-off-by: Krzysztof Kozlowski commit 1d032bc77bb8f85d8adfd14a1a8c67c12b07eece Author: Maciej Fijalkowski Date: Wed Feb 13 10:51:05 2019 -0800 ice: Gather the rx buf clean-up logic for better reuse Pull out the code responsible for page counting and buffer recycling so that it will be possible to clean up the Rx buffers in cases where we won't allocate skb (ex. XDP) Signed-off-by: Maciej Fijalkowski Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 6c5d24eef7be7adfcb608f2852ab69b58935133b Author: Sean Christopherson Date: Fri Mar 22 14:11:37 2019 -0700 checkpatch: Warn on improper usage of Co-developed-by The purpose of Co-developed-by: is to give attribution to authors who aren't already attributed by the From: tag, i.e. who aren't the nominal patch author. Because Co-developed-by: is essentially a variation of From:, it must be accompanied by a Signed-off-by: of the associated co-author. To ease the burden of determining whether or not co-authors have signed off, Co-developed-by and Signed-off-by: must be explicitly paired, i.e. on consecutive lines for a given co-author. Suggested-by: Joe Perches Signed-off-by: Sean Christopherson Signed-off-by: Jonathan Corbet commit c55760806d082ff9947560950cfd6cf180ab491e Author: Joel Stanley Date: Mon Mar 25 21:03:22 2019 +1030 Documentation: rtc: Correct location of rtctest.c The useful little rtctest program moved location a while back. Fixes: a12ab9e125f1 ("selftests: move RTC tests to rtc subfolder") Signed-off-by: Joel Stanley Signed-off-by: Jonathan Corbet commit 03c66a1376616015b04b6783feadfcf02ba37c3f Author: Maciej Fijalkowski Date: Wed Feb 13 10:51:04 2019 -0800 ice: Introduce bulk update for page count {get,put}_page are atomic operations which we use for page count handling. The current logic for refcount handling is that we increment it when passing a skb with the data from the first half of page up to netstack and recycle the second half of page. This operation protects us from losing a page since the network stack can decrement the refcount of page from skb. The performance can be gently improved by doing the bulk updates of refcount instead of doing it one by one. During the buffer initialization, maximize the page's refcount and don't allow the refcount to become less than two. Signed-off-by: Maciej Fijalkowski Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 24a2bb90741bf86ddcf6558be419e182ff44fc95 Author: Sean Christopherson Date: Fri Mar 22 14:11:36 2019 -0700 docs: Clarify the usage and sign-off requirements for Co-developed-by The documentation for Co-developed-by is a bit light on details, e.g. it doesn't explicitly state that: - Multiple Co-developed-by tags are perfectly acceptable - Co-developed-by and Signed-off-by must be paired together - SOB ordering should still follow standard sign-off procedure Lack of explicit direction has resulted in developers taking a variety of approaches, often lacking any intent whatsoever, e.g. scattering SOBs willy-nilly, collecting them all at the end or the beginning, etc... Tweak the wording to make it clear that multiple co-authors are allowed, and document the expectation that standard sign-off procedures are to be followed. The use of "original author" has also led to confusion as many patches don't have just one "original" author, e.g. when multiple developers are involved from the genesis of the patch. Remove all usage of "original" and instead call out that Co-developed-by is simply a way to provide attribution in addition to the From tag, i.e. neither tag is intended to imply anything with regard to who did what. Provide examples to (hopefully) eliminate any ambiguity. Cc: Tobin C. Harding Cc: Thomas Gleixner Cc: Jani Nikula Cc: Jorge Ramirez-Ortiz Cc: Jonathan Cameron Cc: Joe Perches Cc: Greg Kroah-Hartman Cc: Niklas Cassel Cc: Jonathan Corbet Signed-off-by: Sean Christopherson Signed-off-by: Jonathan Corbet commit 23b846396b9501f9500cd8fb033a866f8c01f1a6 Author: Michael Hennerich Date: Thu Feb 28 14:39:43 2019 +0200 dmaengine: axi-dmac: extend support for ZynqMP arch The AXI DMAC driver is currently supported also on the Xilinx ZynqMP architecture. This change allows this driver to be enabled & used on it as well. Signed-off-by: Michael Hennerich Signed-off-by: Alexandru Ardelean Signed-off-by: Vinod Koul commit f177a43121949b2c0ff7b0f775949e4cedafd721 Author: Jeff Xie Date: Wed Mar 20 00:45:19 2019 +0800 dmaengine: xgene-dma: move spin_lock_bh to spin_lock in tasklet It is unnecessary to call spin_lock_bh in a tasklet. Signed-off-by: Jeff Xie Signed-off-by: Vinod Koul commit 2ff25c1c3279b09b7f4ad1a06be5dc3b55d29027 Author: Jean-Nicolas Graux Date: Mon Mar 4 16:03:58 2019 +0100 dmaengine: pl08x: be fair when re-assigning physical channel Current way we find a waiting virtual channel for the next transfer at the time one physical channel becomes free is not really fair. More in details, in case there is more than one channel waiting at a time, by just going through the arrays of memcpy and slave channels and stopping as soon as state match waiting state, channels with high indexes can be penalized. Whenever dma engine is substantially overloaded so that we constantly get several channels waiting, channels with highest indexes might not be served for a substantial time which in the worse case, might hang task that wait for dma transfer to complete. This patch makes physical channel re-assignment more fair by storing time in jiffies when a channel is put in waiting state. Whenever a physical channel has to be re-assigned, this time is used to select channel that is waiting for the longest time. Signed-off-by: Jean-Nicolas Graux Reviewed-by: Linus Walleij Reviewed-by: Nicolas Guion Signed-off-by: Vinod Koul commit 921234e0c5d77b510ccc22d9fcfa844f20de970a Author: Lars-Peter Clausen Date: Fri Mar 8 15:02:35 2019 +0200 dmaengine: axi-dmac: Split too large segments The axi-dmac driver currently rejects transfers with segments that are larger than what the hardware can handle. Re-work the driver so that these large segments are split into multiple segments instead where each segment is smaller or equal to the maximum segment size. This allows the driver to handle transfers with segments of arbitrary size. Signed-off-by: Lars-Peter Clausen Signed-off-by: Bogdan Togorean Signed-off-by: Alexandru Ardelean Signed-off-by: Vinod Koul commit b45aef3aef63610e75fa67c7ae8b838304bdad3e Author: Katsuhiro Suzuki Date: Sun Mar 17 19:03:06 2019 +0900 dmaengine: pl330: introduce debugfs interface This patch adds debugfs interface to show the relationship between DMA threads (hardware resource for transferring data) and DMA channel ID of DMA slave. Typically, PL330 has many slaves than number of DMA threads. So sometimes PL330 cannot allocate DMA threads for all slaves even if a user specify DMA channel ID in devicetree. This interface will be useful for checking that DMA threads are allocated or not. Below is an output sample: $ sudo cat /sys/kernel/debug/ff1f0000.dmac PL330 physical channels: THREAD: CHANNEL: -------- ----- 0 8 1 9 2 11 3 12 4 14 5 15 6 10 7 -- Signed-off-by: Katsuhiro Suzuki Signed-off-by: Vinod Koul commit 1857ca42a734d41261f4c30e5f625fa7e2b70b0d Author: Maciej Fijalkowski Date: Wed Feb 13 10:51:03 2019 -0800 ice: Get rid of ice_pull_tail Instead of adding a frag and later when dealing with EOP frame accessing that frag in order to copy the headers onto linear part of skb, we can do this in ice_add_rx_frag in case where the data_len is still 0 and frame won't fit onto the linear part as a whole. Function comment of ice_pull_tail was a bit misleading because of mentioned optimizations that can be performed (drop a frag/maintaining accurate truesize of skb) - it seems that this part of logic was dropped and the comment was not updated to reflect this change. Signed-off-by: Maciej Fijalkowski Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 224b1e860c74044b211c0322d0f757573106f184 Author: Federico Vaga Date: Sat Mar 23 18:54:16 2019 +0100 doc: minor fixes to translation's disclaimer - move TOC on top because that's the most interesting part - a couple of minor fixes Signed-off-by: Federico Vaga Signed-off-by: Jonathan Corbet commit 4318f9bb736c9874204b5c94c825f0c57bed78d7 Author: Tom Levy Date: Thu Mar 21 14:37:56 2019 +1300 docs: remove spaces from shell variable assignment The instructions for generating patches are given as shell commands with variables as placeholders. They use the syntax "SRCTREE= linux", which is wrong for the Bourne shell family (it runs the command "linux" with the variable "SRCTREE" set to the empty string). Remove the spaces to avoid confusion. This breaks the pretty alignment but helps new contributors who try to run the commands as written. Signed-off-by: Tom Levy Cc: Jonathan Corbet Signed-off-by: Jonathan Corbet commit 6d56ee1550b8a81bc63c80051ff78d8d704b09ba Author: Annaliese McDermond Date: Thu Mar 21 17:58:54 2019 -0700 ASoC: tlv320aic32x4: Allow 192000 Sample Rate The clocking and processing blocks are now properly set up to support 192000 sample rates. Allow drivers to ask for that. Signed-off-by: Annaliese McDermond Signed-off-by: Mark Brown commit 78f2d58a289302e56a7def96a783a7686ebf27e2 Author: Annaliese McDermond Date: Thu Mar 21 17:58:53 2019 -0700 ASoC: tlv320aic32x4: Remove mclk references mclk is not used by anything anymore. Remove support for it. All that information now comes from the clock tree. Signed-off-by: Annaliese McDermond Signed-off-by: Mark Brown commit aa6a60f7be925210d5156f0e8025f3afe1f4f54d Author: Annaliese McDermond Date: Thu Mar 21 17:58:52 2019 -0700 ASoC: tlv320aic32x4: Restructure set_dai_sysclk The sysclk is now managed by the CCF. Change this function to merely find the system clock and set it using clk_set_rate. Signed-off-by: Annaliese McDermond Signed-off-by: Mark Brown commit 96c3bb00239de4fb5f4ddca42c1f90d6d9b3c697 Author: Annaliese McDermond Date: Thu Mar 21 17:58:51 2019 -0700 ASoC: tlv320aic32x4: Dynamically Determine Clocking The existing code uses a static lookup table to determine the settings of the various clock devices on board the chip. This is limiting in a couple of ways. First, this doesn't allow for any master clock rates other than the three that have been precalculated. Additionally, new sample rates are difficult to add to the table. Witness that the chip is capable of 192000 Hz sampling, but it is not provided by this driver. Last, if the driver is clocked by something that isn't a crystal, the upstream clock may not be able to achieve exactly the rate requested in the driver. This will mean that clocking will be slightly off for the sampling clock or that it won't work at all. This patch determines the settings for all of the clocks at runtime considering the real conditions of the clocks in the system. The rules for the clocks are in TI's SLAA557 application guide on pages 37, 51 and 77. Signed-off-by: Annaliese McDermond Signed-off-by: Mark Brown commit fbafbf6517274a797e6e6508c18dd8dba5920c89 Author: Annaliese McDermond Date: Thu Mar 21 17:58:50 2019 -0700 ASoC: tlv320aic32x4: Move aosr and dosr setting to separate functions Move these to separate helper functions. This looks cleaner and fits better with the new clock setting in CCF. Signed-off-by: Annaliese McDermond Signed-off-by: Mark Brown commit d25970b5fd51e9fcf0afbe190908ea4049454da4 Author: Annaliese McDermond Date: Thu Mar 21 17:58:49 2019 -0700 ASoC: tlv320aic32x4: Control clock gating with CCF Control the clock gating to the various clock components to use the CCF. This allows us to prepare_enalbe only 3 clocks and the relationships assigned to them will cause upstream clockss to enable automatically. Additionally we can do this in a single call to the CCF. Signed-off-by: Annaliese McDermond Signed-off-by: Mark Brown commit 9b484124ebd906c4d6bc826cc0d417e80cc1105c Author: Annaliese McDermond Date: Thu Mar 21 17:58:48 2019 -0700 ASoC: tlv320aic32x4: Model BDIV divider in CCF Model and manage BDIV divider as components in the Core Clock Framework. This should allow us to do some more complex clock management and power control. Also, some of the on-board chip clocks can be exposed to the outside, and this change will make those clocks easier to consume by other parts of the kernel. Signed-off-by: Annaliese McDermond Signed-off-by: Mark Brown commit cc809ed885097eafff7b711ef03c20261651ec3a Author: Jakub Wilk Date: Mon Mar 18 18:34:21 2019 +0100 Documentation: fix core_pattern max length The buffer size for core_pattern is 128, but one character is used for terminating null byte, so the actual limit is 127: # printf '%0999d' > /proc/sys/kernel/core_pattern # tr -d '\n' < /proc/sys/kernel/core_pattern | wc -c 127 Signed-off-by: Jakub Wilk Signed-off-by: Jonathan Corbet commit a51b50062091619915c5155085bbe13a7aca6903 Author: Annaliese McDermond Date: Thu Mar 21 17:58:47 2019 -0700 ASoC: tlv320aic32x4: Model DAC/ADC dividers in CCF Model and manage DAC/ADC dividers as components in the Core Clock Framework. This should allow us to do some more complex clock management and power control. Also, some of the on-board chip clocks can be exposed to the outside, and this change will make those clocks easier to consume by other parts of the kernel. Signed-off-by: Annaliese McDermond Signed-off-by: Mark Brown commit fd2df3aeafa4b4cc468d58e147e0822967034b71 Author: Annaliese McDermond Date: Thu Mar 21 17:58:46 2019 -0700 ASoC: tlv320aic32x4: Model CODEC_CLKIN in CCF Model and manage codec clock input as a component in the Core Clock Framework. This should allow us to do some more complex clock management and power control. Also, some of the on-board chip clocks can be exposed to the outside, and this change will make those clocks easier to consume by other parts of the kernel. Signed-off-by: Annaliese McDermond Signed-off-by: Mark Brown commit 514b044cba667e4b7c383ec79b42b997e624b91d Author: Annaliese McDermond Date: Thu Mar 21 17:58:45 2019 -0700 ASoC: tlv320aic32x4: Model PLL in CCF Model and manage the on-board PLL as a component in the Core Clock Framework. This should allow us to do some more complex clock management and power control. Also, some of the on-board chip clocks can be exposed to the outside, and this change will make those clocks easier to consume by other parts of the kernel. Signed-off-by: Annaliese McDermond Signed-off-by: Mark Brown commit 8633d44002ba5c98f44bacc1397190adba832fd6 Author: Pankaj Bharadiya Date: Fri Mar 22 21:53:39 2019 +0530 ASoC: dapm: Initialize private_value in snd_soc_dapm_new_dai In case of single config, private_value is left uninitialized. The private_value does need to be initialized or in snd_soc_dapm_new_control_unlocked() call failure case, it leads to a bogus free in snd_soc_dapm_free_kcontrol() Signed-off-by: Pankaj Bharadiya Signed-off-by: Mark Brown commit 50e0908412e6937ebf38b1edae35035a550a6f09 Author: Timo Wischer Date: Mon Mar 25 16:14:14 2019 +0100 ALSA: aloop: Support S24 sample formats Currently snd_aloop supports only S16 and S32 audio sample formats. With this patch the S24 formats are also supported. Signed-off-by: Timo Wischer Reviewed-by: Jaroslav Kysela Signed-off-by: Takashi Iwai commit bbb97808a0eff71fd841d297dba8cd3ebc4d700d Author: Maciej Fijalkowski Date: Wed Feb 13 10:51:02 2019 -0800 ice: Pull out page reuse checks onto separate function Introduce ice_can_reuse_rx_page which will verify whether the page can be reused and return the boolean result to caller. Signed-off-by: Maciej Fijalkowski Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 6c869cb7a8f02b0c5f5494bb37c29b6686711ec8 Author: Maciej Fijalkowski Date: Wed Feb 13 10:51:01 2019 -0800 ice: Retrieve rx_buf in separate function Introduce ice_get_rx_buf, which will fetch the Rx buffer and do the DMA synchronization. Length of the packet that hardware Rx descriptor contains is now read in ice_clean_rx_irq, so we can feed ice_get_rx_buf with it and resign from rx_desc passed as argument in ice_fetch_rx_buf and ice_add_rx_frag. Signed-off-by: Maciej Fijalkowski Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 250c3b3e0aa25ad09c0c7638ba9ba3c0e54464a1 Author: Brett Creeley Date: Tue Feb 26 16:35:23 2019 -0800 ice: Enable link events over the ARQ The hardware now supports link events over the admin receive queue (ARQ), so enable HW link events over the ARQ and remove code for link event polling. Signed-off-by: Brett Creeley Reviewed-by: Bruce Allan Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 8d051b8b5d52a32ac096a62bb932193202e2e759 Author: Alan Brady Date: Tue Feb 26 16:35:22 2019 -0800 ice: use irq_num var in ice_vsi_req_irq_msix Someone went through the effort of making this a variable so let's use it instead of recalculating it again. Signed-off-by: Alan Brady Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 840bcd88f899da6a5076ab4bc8dd0f6fcd8d19ef Author: Michal Swiatkowski Date: Tue Feb 26 16:35:21 2019 -0800 ice: Restore VLAN switch rule if port VLAN existed before The VLAN rule is lost when VM starts or the AVF driver (iavf.ko) is reloaded. So it is necessary to add this rule again. Signed-off-by: Michal Swiatkowski Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 98bbbb76f2edcfb8fb2b8f4b3ccc7b6e99d64bd8 Author: Arnd Bergmann Date: Mon Mar 25 15:23:11 2019 +0100 selinux: avoid uninitialized variable warning clang correctly points out a code path that would lead to an uninitialized variable use: security/selinux/netlabel.c:310:6: error: variable 'addr' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized] if (ip_hdr(skb)->version == 4) { ^~~~~~~~~~~~~~~~~~~~~~~~~ security/selinux/netlabel.c:322:40: note: uninitialized use occurs here rc = netlbl_conn_setattr(ep->base.sk, addr, &secattr); ^~~~ security/selinux/netlabel.c:310:2: note: remove the 'if' if its condition is always true if (ip_hdr(skb)->version == 4) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ security/selinux/netlabel.c:291:23: note: initialize the variable 'addr' to silence this warning struct sockaddr *addr; ^ = NULL This is probably harmless since we should not see ipv6 packets of CONFIG_IPV6 is disabled, but it's better to rearrange the code so this cannot happen. Signed-off-by: Arnd Bergmann [PM: removed old patchwork link, fixed checkpatch.pl style errors] Signed-off-by: Paul Moore commit 9e0cfe28fa32f6fefd831192a4d0b19c804c746b Author: Ondrej Mosnacek Date: Mon Mar 25 09:11:15 2019 +0100 selinux: remove useless assignments The code incorrectly assigned directly to the variables instead of the values they point to. Since the values are already set to NULL/0 at the beginning of the function, we can simply remove these useless assignments. Reported-by: Hariprasad Kelam Fixes: fede148324c3 ("selinux: log invalid contexts in AVCs") Signed-off-by: Ondrej Mosnacek [PM: removed a bad comment that was causing compiler warnings] Signed-off-by: Paul Moore commit b0153fdd7e8a625d4879f07d3cfb1ee1e2364222 Author: Victor Raj Date: Tue Feb 26 16:35:20 2019 -0800 ice: update VSI config dynamically When VSI increases the number of queues dynamically, the scheduler just needs to add the new required nodes rather than re-adjusting with previously allocated number of nodes. Readjusting didn't provide enough parents to add the upper layer nodes also can't place lan and rdma subtrees separately. In decrease case, keep the VSI configuration with max number of queues always. This will leave some extra nodes in the tree but no harm done. Signed-off-by: Victor Raj Reviewed-by: Bruce Allan Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 529766e0a0114438887382a68d97341fbf8349fb Author: Elie Morisse Date: Tue Mar 5 12:13:19 2019 -0300 i2c: Add drivers for the AMD PCIe MP2 I2C controller MP2 controllers have two separate busses, so may accommodate up to two I2C adapters. Those adapters are listed in the ACPI namespace with the "AMDI0011" HID, and probed by a platform driver. Communication with the MP2 takes place through MMIO registers, or through DMA for more than 32 bytes transfers. This is major rework of the patch submitted by Nehal-bakulchandra Shah from AMD (https://patchwork.kernel.org/patch/10597369/). Most of the event handling of v3 was rewritten to make it work with more than one bus (e.g on Ryzen-based Lenovo Yoga 530), and this version contains many other improvements. Signed-off-by: Elie Morisse Signed-off-by: Wolfram Sang commit 24f7c45fdb2a17ef6ad3142e9a8ba4066ac674a2 Author: Ondrej Mosnacek Date: Mon Mar 25 09:05:35 2019 +0100 LSM: lsm_hooks.h - fix missing colon in docstring Apparently without it it is incorrect syntax and causes a warning about undocumented struct field. Fixes: b230d5aba2d1 ("LSM: add new hook for kernfs node initialization") Reported-by: kbuild test robot Signed-off-by: Ondrej Mosnacek Signed-off-by: Paul Moore commit 0c4ea7f87abbdb56df616678bc23f10e51a0b4f8 Author: Alan Maguire Date: Mon Mar 25 09:36:37 2019 +0000 bpf: test_tc_tunnel.sh needs reverse path filtering disabled test_tc_tunnel.sh sets up a pair of namespaces connected by a veth pair to verify encap/decap using bpf_skb_adjust_room. In testing this, it uses tunnel links as the peer of the bpf-based encap/decap. However because the same IP header is used for inner and outer IP, when packets arrive at the tunnel interface they will be dropped by reverse path filtering as those packets are expected on the veth interface (where the destination IP of the decapped packet is configured). To avoid this, ensure reverse path filtering is disabled for the namespace using tunneling. Fixes: 98cdabcd0798 ("selftests/bpf: bpf tunnel encap test") Signed-off-by: Alan Maguire Acked-by: Willem de Bruijn Signed-off-by: Daniel Borkmann commit 8cec63e52966b6c1242f8323535532d791d440e8 Author: Lu Baolu Date: Wed Mar 20 09:40:24 2019 +0800 iommu: Remove iommu_callback_data The iommu_callback_data is not used anywhere, remove it to make the code more concise. Signed-off-by: Lu Baolu Signed-off-by: Joerg Roedel commit b024ab9b2d3aa1551ed0be371a01a0ba426bbb1f Author: Jani Nikula Date: Fri Mar 22 14:10:08 2019 +0200 drm/i915/bios: iterate over child devices to initialize ddi_port_info Iterate over child devices instead of ports in parse_ddi_ports() to initialize ddi_port_info. We'll eventually need to decide some stuff based on the child device order, which may be different from the port order. As a bonus, this allows better abstractions for e.g. dvo port mapping. There's a subtle change in the DDC pin and AUX channel sanitization as we change the order. Otherwise, this should not change behaviour. Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190322121008.4456-1-jani.nikula@intel.com commit 864c2fee4ee93f53a8efed206c01ebce546df4e9 Author: Douglas Anderson Date: Thu Mar 21 13:19:44 2019 -0700 ARM: dts: rockchip: Add vdd_logic to rk3288-veyron The vdd_logic rail controls the voltage supplied to misc logic on rk3288, including the voltage supplied to the memory controller. The vcc logic is implemented by a PWM regulator. Right now there are no consumers of vdd_logic on veyron but if anyone ever wants to try to add DDR Freq they'd need it. Note that in the downstream Chrome OS kernel the PWM regulator has a voltage table with these points: 1350000 0% 1300000 10% 1250000 20% 1200000 31% 1150000 41% 1125000 46% 1100000 52% 1050000 62% 1000000 72% 950000 83% The DDR Freq driver in the downstream kernel only uses some of those points, namely: DDR3: 1200000, 1150000, 1100000, 1050000 LPDDR: 1150000, 1100000, 1050000 When adapting the downstream kernel to upstream I have opted to switch to using the "continuous" mode of the PWM regulator driver. This was the only way I could get the upstream driver to achieve _exactly_ the same voltages as the downstream driver could. Specifically note that the old driver in downstream Chrome OS 3.14 _didn't_ have the DIV_ROUND_CLOSEST_ULL() in the Rockchip PLL driver. That means if I use the same (downstream) table I might end up with a duty cycle that's 1 larger than was used downstream, leading to a slightly different voltage. Due to the way the rounding worked I couldn't even just adjust the "percent" by 1 for a given voltage level--certain duty cycles just aren't achievable with the upstream math for voltage tables. Using continuous mode you can achieve the exact same duty cycle by simply adjusting the voltage you use by a tad bit. The voltages that are equivalent to the ones used in the downstream kernel's table are: 1350000, 1304472, 1255691, 1200407, 1154878, 1128862, 1099593, 1050813, 1005285, 950000 Note that the top/bottom voltage is exactly the same just due to the way that continuous mode is calculated and the fact that I used those as anchors. I didn't make any attempt to do the resistor math (as was done on rk3399-gru). If anyone ever gets DDRFreq working on veyron upstream they should thus adjust the voltage specified in the DDRFreq operating points slightly (as per the above) to obtain the existing/tested values. AKA you'd use: DDR3: 1200407, 1154878, 1099593, 1050813 LPDDR: 1154878, 1099593, 1050813 A few other notes: - The "period" here (1994) is different than the "period" downstream (2000) for similar reasons: there's a DIV_ROUND_CLOSEST_ULL() that wasn't downstream. With 1994 upstream comes up with the same value (0x94) to program into the hardware that downstream put there. As far as I can tell 0x94 actually means 1993.27. - The duty cycle unit of 0x94 was picked by just matching the period which nicely allows us to insert 0x7b as that value to program into the hardware for 950mV. The 0x7b was found by observing what the downstream kernel calculated (not that the system can actually run with vdd_log at 950 mV). - The downstream kernel can also be seen to program a different value into the CTRL field. Upstream achieves 0x0b and downstream 0x1b. This is because the upstream commit bc834d7b07b4 ("pwm: rockchip: Move the configuration of polarity") fixed a bug by adding "ctrl &= ~PWM_POLARITY_MASK". Downstream accidentally left bit 4 set. Luckily this bit doesn't matter--it's only used when the PWM goes inactive (AKA if it's in oneshot mode or is disabled) and we don't do that for the PWM regulator. I measured the voltage of vdd_log while adjusting it and found that with the upstream kernel voltage difference between requested and actual was 9.2 mV at 950 mV and 13.4 mV at 1350 mV with in-between voltages consistently showing ~1% error. This error is likely expected as voltage can be seen to sag a bit when more load is put on the rail. Signed-off-by: Douglas Anderson Signed-off-by: Heiko Stuebner commit 21f843ff948b4283c5d1f309651e90f978f5494e Author: Douglas Anderson Date: Fri Mar 22 09:52:09 2019 -0700 ARM: dts: rockchip: Add dvs-gpios to rk3288-veyron-jerry When the rk3288-jerry device tree was first submitted we left out the dvs-gpios because I pointed out that the property "dvs-gpios" wasn't yet supported upstream [1]. Soon after that the property was added in commit bad47ad2eef3 ("regulator: rk808: fixed the overshoot when adjust voltage"). ...but we forgot to go back and add the property to the jerry device tree file. Let's do so now. NOTE: without this patch, jerry is likely still stable (thanks to the fallback of making many small jumps in the rk808 regulator code) but it'll take quite a bit longer to make voltage transitions. [1] https://lore.kernel.org/linux-arm-kernel/CAD=FV=WwFgjzbk9xF5TU_ie6UnHQMyrZ176D4+jJTWWOoaKC2Q@mail.gmail.com/ Fixes: f3ee390e4ef2 ("ARM: dts: rockchip: add veyron-jerry board") Signed-off-by: Douglas Anderson Signed-off-by: Heiko Stuebner commit 0c4cac5e8f0313a8777055c0c66a2216f78c6054 Author: Douglas Anderson Date: Fri Mar 22 12:59:24 2019 -0700 ARM: dts: rockchip: Add rk3288-veyron-jerry rev 10-15 As far as I can tell/remember rev10 was originally created to support making a SKU of jerry that had a different LCD. rev11-rev15 were added to give some wiggle room for future builds. Downstream has a separate device tree for rev10-rev15 (compared to rev3-rev7) with the expectation that differences relating to the LCD would be accounted for there but nothing was ever added to the rev10-rev15 making it identical to the rev3-rev7 one. It's likely nothing actually shipped with rev10-rev15 but they are listed in the downstream kernel's device tree and it seems like it should add a little safety if we match them here just in case something actually shipped with one of these revisions and that device will break if we don't claim support. Signed-off-by: Douglas Anderson Signed-off-by: Heiko Stuebner commit 4e92348dc0030b09b33c76ef15341e8ea383dddd Author: Douglas Anderson Date: Fri Mar 22 12:59:23 2019 -0700 dt-bindings: ARM: dts: rockchip: Add rk3288-veyron-jerry rev 10-15 As far as I can tell/remember rev10 was originally created to support making a SKU of jerry that had a different LCD. rev11-rev15 were added to give some wiggle room for future builds. Downstream has a separate device tree for rev10-rev15 (compared to rev3-rev7) with the expectation that differences relating to the LCD would be accounted for there but nothing was ever added to the rev10-rev15 making it identical to the rev3-rev7 one. It's likely nothing actually shipped with rev10-rev15 but they are listed in the downstream kernel's device tree and it seems like it should add a little safety if we match them here just in case something actually shipped with one of these revisions and that device will break if we don't claim support. Signed-off-by: Douglas Anderson Reviewed-by: Rob Herring Signed-off-by: Heiko Stuebner commit 2c33b50e6201881709b092b9b8566ae4b6dfc3ab Author: Axel Lin Date: Sun Mar 24 14:00:05 2019 +0800 regulator: tps65217: Constify regulator_ops These regulator_ops variables never need to be modified, make them const so compiler can put them to .rodata. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit d1030b439934cbc23def17f88e60cfb35e2723ac Author: Axel Lin Date: Sun Mar 24 10:05:42 2019 +0800 regulator: tps65218: Constify regulator_ops These regulator_ops variables never need to be modified, make them const so compiler can put them to .rodata. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit cbd66c626e16743b05af807ad48012c0a097b9fb Author: Stefan Roese Date: Mon Mar 25 09:29:25 2019 +0100 spi: mt7621: Move SPI driver out of staging This patch moves the MT7621 SPI driver, which is used on some Ralink / MediaTek MT76xx MIPS SoC's, out of the staging directory. No changes to the source code are done in this patch. This driver version was tested successfully on an MT7688 based platform with an SPI NOR on CS0 and an SPI NAND on CS1 without any issues (so far). This patch also documents the devicetree bindings for the MT7621 SPI device driver. Signed-off-by: Stefan Roese Cc: Rob Herring Cc: Mark Brown Cc: Greg Kroah-Hartman Cc: NeilBrown Cc: Sankalp Negi Cc: Chuanhong Guo Cc: John Crispin Cc: Armando Miraglia Signed-off-by: Mark Brown commit 72dca1f6744b073eaead4ec9acc128efeed153f2 Author: Axel Lin Date: Thu Mar 21 23:53:48 2019 +0800 spi: at91-usart: Remove duplicated checking for spi->bits_per_word This checking is already done in __spi_validate_bits_per_word(). Signed-off-by: Axel Lin Acked-by: Nicolas Ferre Signed-off-by: Mark Brown commit 55e3dacaf538745b7d57dce43b9950687ff878ab Author: YueHaibing Date: Thu Mar 21 23:16:56 2019 +0800 spi: atmel-quadspi: Make atmel_qspi_get_name static Fix sparse warning: drivers/spi/atmel-quadspi.c:369:12: warning: symbol 'atmel_qspi_get_name' was not declared. Should it be static? Signed-off-by: YueHaibing Signed-off-by: Mark Brown commit a71bcdfe6476b66cf6c632b1a4d0bdcb046e3d82 Author: Axel Lin Date: Mon Mar 25 18:59:19 2019 +0800 regulator: uniphier: Fix build dependency This driver does not use any syscon APIs, so remove MFD_SYSCON dependency. Select REGMAP_MMIO since this driver uses devm_regmap_init_mmio(). Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 78540a259b050480d20354efaf1055c233728b3b Author: Aditya Pakki Date: Fri Mar 22 17:00:29 2019 -0500 ASoC: sirf-audio: Remove redundant of_match_node call Unlike other drivers probe method, of_match_node return value is not used or checked. This patch removes the redundant code. Signed-off-by: Aditya Pakki Reviewed-by: Steven Price Signed-off-by: Mark Brown commit cf8817733d10c0147a01c97219dd0551bcf25e08 Author: Olivier Moysan Date: Thu Mar 21 16:34:56 2019 +0100 ASoC: stm32: sai: add power management Add support of low power modes to STM32 SAI driver. Signed-off-by: Olivier Moysan Signed-off-by: Mark Brown commit eddb6084305e5418ce28b8379a6c3d0058a61463 Author: Andi Kleen Date: Thu Mar 21 15:00:05 2019 -0700 ASoC: AMD: Fix incorrect extern When using bare externs outside include files that types should at least match. This fixes a type confusion between bool and int. Cc: broonie@kernel.org Signed-off-by: Andi Kleen Signed-off-by: Mark Brown commit 3a9ce0f1b2961f6c3ad2a49dcf85449784c18bb5 Author: John Hsu Date: Fri Mar 22 12:25:35 2019 +0800 ASoC: nau8810: fix the issue of 64 bits division Do division with div_u64 for the PLL calculation. These errors are fixed and list as follows: 1."__udivdi3" [sound/soc/codecs/snd-soc-nau8810.ko] undefined! 2."__aeabi_uldivmod" [sound/soc/codecs/snd-soc-nau8810.ko] undefined! 3. nau8810.c:(.text.nau8810_calc_pll+0xd8): undefined reference to `__udivdi3' Signed-off-by: John Hsu Signed-off-by: Mark Brown commit 26c9d79b3730dff03d1c3ea6aee3e2968d36fe15 Author: Fabrizio Castro Date: Tue Mar 19 12:21:39 2019 +0000 ARM: dts: iwg23s-sbc: Add HDMI support This patch adds HDMI video output support to the iwg23s board from iWave. Due to a problem with the bootloader not dealing with the configuration of one of the pins correctly, we have to use a gpio-hog for the interrupt line to make sure the pin is configured as GPIO-input when requesting the interrupt. Signed-off-by: Fabrizio Castro Signed-off-by: Simon Horman commit 4ec778fb0f26692419609d2f39b6f8c829ed1fb5 Author: Fabrizio Castro Date: Tue Mar 19 12:21:38 2019 +0000 ARM: dts: r8a77470: Add DU support This commit adds DU support to the RZ/G1C (a.k.a. r8a77470) specific device tree. Signed-off-by: Fabrizio Castro Signed-off-by: Simon Horman commit fa44328f4eb0b762a1fcb148809068e9646e7156 Author: Maxime Ripard Date: Mon Mar 18 12:00:41 2019 +0100 ARM: dts: sun8i: a33: Reintroduce default pinctrl muxing Commit d02752149759 ("ARM: dts: sun8i-a23-a33: Move NAND controller device node to sort by address") moved the NAND controller node around, but dropped the default muxing in the process. Reintroduce it. Fixes: d02752149759 ("ARM: dts: sun8i-a23-a33: Move NAND controller device node to sort by address") Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 0bec6219e5a0cf2dd17716949a7592807e10f3d7 Merge: 535f6f5d7b7f ff01e6971ecd Author: Daniel Vetter Date: Mon Mar 25 11:05:11 2019 +0100 Merge tag 'drm-misc-next-2019-03-21' of git://anongit.freedesktop.org/drm/drm-misc into drm-next drm-misc-next for 5.2: UAPI Changes: - Add Colorspace connector property (Uma) - fourcc: Several new YUV formats from ARM (Brian & Ayan) - fourcc: Fix merge conflicts between new formats above and Swati's that went in via topic/hdr-formats-2019-03-07 branch (Maarten) Cross-subsystem Changes: - Typed component support via topic/component-typed-2019-02-11 (Maxime/Daniel) Core Changes: - Improve component helper documentation (Daniel) - Avoid calling drm_dev_unregister() twice on unplugged devices (Noralf) - Add device managed (devm) drm_device init function (Noralf) - Graduate TINYDRM_MODE to DRM_SIMPLE_MODE in core (Noralf) - Move MIPI/DSI rate control params computation into core from i915 (David) - Add support for shmem backed gem objects (Noralf) Driver Changes: - various: Use of_node_name_eq for node name comparisons (Rob Herring) - sun4i: Add DSI burst mode support (Konstantin) - panel: Add Ronbo RB070D30 MIPI/DSI panel support (Konstantin) - virtio: A few prime improvements (Gerd) - tinydrm: Remove tinydrm_device (Noralf) - vc4: Add load tracker to driver to detect underflow in atomic check (Boris) - vboxvideo: Move it out of staging \o/ (Hans) - v3d: Add support for V3D v4.2 (Eric) Cc: Konstantin Sudakov Cc: Rob Herring Cc: Daniel Vetter Cc: Maxime Ripard Cc: Uma Shankar Cc: Noralf Trønnes Cc: Gerd Hoffmann Cc: David Francis Cc: Boris Brezillon Cc: Eric Anholt Cc: Hans de Goede Cc: Brian Starkey Cc: Ayan Kumar Halder Cc: Maarten Lankhorst Signed-off-by: Daniel Vetter From: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190321170805.GA50145@art_vandelay commit 32c13bcd3544405f3c37ae6130ab14b313294222 Author: Chris Wilson Date: Mon Mar 25 09:03:52 2019 +0000 drm/i915: Report the correct errno from i915_gem_context_open() Fixup the errno as we adjusted the error path to receive the errno and not compute it itself from ERR_PTR(ctx) anymore. drivers/gpu/drm/i915/i915_gem_context.c:793 i915_gem_context_open() warn: passing a valid pointer to 'PTR_ERR' Reported-by: Dan Carpenter Fixes: 3aa9945a528e ("drm/i915: Separate GEM context construction and registration to userspace") Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190325090413.19906-2-chris@chris-wilson.co.uk commit 733df11cfc3614254e2b9a5c81ac205e98a90b82 Author: Geert Uytterhoeven Date: Mon Mar 18 08:41:48 2019 +0100 m68k: defconfig: Update defconfigs for v5.1-rc1 Actual changes: -CONFIG_FS_ENCRYPTION=m -CONFIG_NET_DEVLINK=m -CONFIG_NFT_CHAIN_NAT_IPV4=m -CONFIG_NFT_CHAIN_NAT_IPV6=m -CONFIG_NFT_MASQ_IPV4=m -CONFIG_NFT_MASQ_IPV6=m -CONFIG_NFT_REDIR_IPV4=m -CONFIG_NFT_REDIR_IPV6=m +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_XTS=m +CONFIG_TEST_STACKINIT=m +CONFIG_TEST_VMALLOC=m +# CONFIG_VALIDATE_FS_PARSER is not set +CONFIG_XDP_SOCKETS_DIAG=m Signed-off-by: Geert Uytterhoeven commit 19999a8b8782d7f887353753c3c7cb5fca2f3784 Author: Finn Thain Date: Sat Dec 1 11:53:10 2018 +1100 m68k: mvme16x: Handle timer counter overflow Reading the timer counter races with timer overflow (and the corresponding interrupt). This is resolved by reading the overflow register and taking this value into account. The interrupt handler must clear the overflow register when it eventually executes. Suggested-by: Thomas Gleixner Signed-off-by: Finn Thain Signed-off-by: Geert Uytterhoeven commit 3d744eee38f11cafb0fc332c3081ab1cd07a89f7 Author: Finn Thain Date: Sat Dec 1 11:53:10 2018 +1100 m68k: mvme16x: Convert to clocksource API Add a platform clocksource by adapting the existing arch_gettimeoffset implementation. Signed-off-by: Finn Thain Acked-by: Linus Walleij Signed-off-by: Geert Uytterhoeven commit 7529b90d051e4629884771ba2b1d3a87d2c6a9d7 Author: Finn Thain Date: Sat Dec 1 11:53:10 2018 +1100 m68k: mvme147: Handle timer counter overflow Reading the timer counter races with timer overflow (and the corresponding interrupt). This is resolved by reading the overflow register and taking this value into account. The interrupt handler must clear the overflow register when it eventually executes. Suggested-by: Thomas Gleixner Signed-off-by: Finn Thain Signed-off-by: Geert Uytterhoeven commit fc4c47b3b5b8fe2b5d2940b9bd6203609b571b50 Author: Finn Thain Date: Sat Dec 1 11:53:10 2018 +1100 m68k: mvme147: Convert to clocksource API Add a platform clocksource by adapting the existing arch_gettimeoffset implementation. Signed-off-by: Finn Thain Acked-by: Linus Walleij Signed-off-by: Geert Uytterhoeven commit 481fa139b893ff3fdbab6ea1b98271f6dde11135 Author: Finn Thain Date: Sat Dec 1 11:53:10 2018 +1100 m68k: mac: Convert to clocksource API Add a platform clocksource by adapting the existing arch_gettimeoffset implementation. Signed-off-by: Finn Thain Acked-by: Linus Walleij Tested-by: Stan Johnson Signed-off-by: Geert Uytterhoeven commit 4be2ba93cf2e7a7639e13605aebe0cd656ef9d93 Author: Finn Thain Date: Sat Dec 1 11:53:10 2018 +1100 m68k: hp300: Handle timer counter overflow Because hp300_read_clk() never checks the timer interrupt flag it may fail to notice that the timer has wrapped, allowing the clock to jump backwards. This is not a new problem. This is resolved by checking the interrupt flag and, if need be, taking wrap-around into account. The interrupt handler clears the flag when it eventually executes. Signed-off-by: Finn Thain Signed-off-by: Geert Uytterhoeven commit 2ed16626f58f88892864ed0cd68f841872ed1ca1 Author: Finn Thain Date: Sat Dec 1 11:53:10 2018 +1100 m68k: hp300: Convert to clocksource API Add a platform clocksource by adapting the existing arch_gettimeoffset implementation. Signed-off-by: Finn Thain Acked-by: Linus Walleij Signed-off-by: Geert Uytterhoeven commit 3384df06c131833ef5fbc117cccfe6aac331bdda Author: Finn Thain Date: Sat Dec 1 11:53:10 2018 +1100 m68k: bvme6000: Convert to clocksource API Add a platform clocksource by adapting the existing arch_gettimeoffset implementation. Signed-off-by: Finn Thain Acked-by: Linus Walleij Signed-off-by: Geert Uytterhoeven commit 26ccd2d376d9b7de9a27b9a7ed71e16216101921 Author: Finn Thain Date: Sat Dec 1 11:53:10 2018 +1100 m68k: atari: Convert to clocksource API Add a platform clocksource by adapting the existing arch_gettimeoffset implementation. Normally the MFP timer C interrupt flag would be used to check for timer counter wrap-around. Unfortunately, that flag gets cleared by the MFP itself (due to automatic End-of-Interrupt mode). This means that mfp_timer_c_handler() and atari_read_clk() must race when accounting for counter wrap-around. That problem is avoided by effectively stopping the clock when it might otherwise jump backwards (due to interrupt latency). Note that this may affect clock accuracy. After the timer interrupt is asserted, wait for the counter to be reloaded so that atari_read_clk() will not see the intermediate state as that would cause the clock to jump backwards. Signed-off-by: Finn Thain Acked-by: Linus Walleij Tested-by: Michael Schmitz Signed-off-by: Geert Uytterhoeven commit 5afd3d06e5cb30a312aaa34348f9457b9fb38a52 Author: Finn Thain Date: Sat Dec 1 11:53:10 2018 +1100 m68k: amiga: Convert to clocksource API Add a platform clocksource by adapting the existing arch_gettimeoffset implementation. Signed-off-by: Finn Thain Acked-by: Linus Walleij Tested-by: Michael Schmitz Signed-off-by: Geert Uytterhoeven commit 7d6ca23554e34f25a70cb25666194f25b38c319b Author: Finn Thain Date: Sat Dec 1 11:53:10 2018 +1100 m68k: Drop ARCH_USES_GETTIMEOFFSET The functions that implement arch_gettimeoffset are re-used by new clocksource drivers in subsequent patches. Signed-off-by: Finn Thain Acked-by: Linus Walleij Signed-off-by: Geert Uytterhoeven commit 6242c94d14304673e6a62f3ff77cf52404af875a Author: Finn Thain Date: Sat Dec 1 11:53:10 2018 +1100 m68k: apollo, q40, sun3, sun3x: Remove arch_gettimeoffset implementations These dummy implementations are no better than default_arch_gettimeoffset() so remove them. Signed-off-by: Finn Thain Signed-off-by: Geert Uytterhoeven commit 0ca7ce7db771580433bf24454f7a1542bd326078 Author: Finn Thain Date: Sat Dec 1 11:53:10 2018 +1100 m68k: mac: Fix VIA timer counter accesses This resolves some bugs that affect VIA timer counter accesses. Avoid lost interrupts caused by reading the counter low byte register. Make allowance for the fact that the counter will be decremented to 0xFFFF before being reloaded. Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2") Signed-off-by: Finn Thain Signed-off-by: Geert Uytterhoeven commit 1efdd4bd254311498123a15fa0acd565f454da97 Author: Finn Thain Date: Sat Dec 1 11:53:10 2018 +1100 m68k: Call timer_interrupt() with interrupts disabled Some platforms execute their timer handler with the interrupt priority level set below 6. That means the handler could be interrupted by another driver and this could lead to re-entry of the timer core. Avoid this by use of local_irq_save/restore for timer interrupt dispatch. This provides mutual exclusion around the timer interrupt flag access which is needed later in this series for the clocksource conversion. Reported-by: Thomas Gleixner Link: http://lkml.kernel.org/r/alpine.DEB.2.21.1811131407120.2697@nanos.tec.linutronix.de Signed-off-by: Finn Thain Signed-off-by: Geert Uytterhoeven commit 32e727449c792b689c2a06a8b4cc9fef6270c5a7 Author: Linus Lüssing Date: Sat Mar 23 05:47:41 2019 +0100 batman-adv: Add multicast-to-unicast support for multiple targets With this patch multicast packets with a limited number of destinations (current default: 16) will be split and transmitted by the originator as individual unicast transmissions. Wifi broadcasts with their low bitrate are still a costly undertaking. In a mesh network this cost multiplies with the overall size of the mesh network. Therefore using multiple unicast transmissions instead of broadcast flooding is almost always less burdensome for the mesh network. The maximum amount of unicast packets can be configured via the newly introduced multicast_fanout parameter. If this limit is exceeded distribution will fall back to classic broadcast flooding. The multicast-to-unicast conversion is performed on the initial multicast sender node and counts on a final destination node, mesh-wide basis (and not next hop, neighbor node basis). Signed-off-by: Linus Lüssing Signed-off-by: Sven Eckelmann Signed-off-by: Simon Wunderlich commit 099e6cc1582dc2903fecb898bbeae8f7cf4262c7 Author: Linus Lüssing Date: Thu Feb 14 16:52:43 2019 +0100 batman-adv: allow updating DAT entry timeouts on incoming ARP Replies Currently incoming ARP Replies, for example via a DHT-PUT message, do not update the timeout for an already existing DAT entry. These ARP Replies are dropped instead. This however defeats the purpose of the DHCPACK snooping, for instance. Right now, a DAT entry in the DHT will be purged every five minutes, likely leading to a mesh-wide ARP Request broadcast after this timeout. Which then recreates the entry. The idea of the DHCPACK snooping is to be able to update an entry before a timeout happens, to avoid ARP Request flooding. This patch fixes this issue by updating a DAT entry on incoming ARP Replies even if a matching DAT entry already exists. While still filtering the ARP Reply towards the soft-interface, to avoid duplicate messages on the client device side. Signed-off-by: Linus Lüssing Acked-by: Antonio Quartulli Signed-off-by: Sven Eckelmann Signed-off-by: Simon Wunderlich commit c2d8b9a6c17a3848136b3eb31f26d3c5880acd89 Author: Sven Eckelmann Date: Sun Mar 17 10:50:50 2019 +0100 batman-adv: Adjust name for batadv_dat_send_data The send functions in batman-adv are expected to consume the skb when either the data is queued up for the underlying driver or when some precondition failed. batadv_dat_send_data didn't do this and instead created a copy of the skb, modified it and queued the copy up for transmission. The caller has to take care that the skb is handled correctly (for example free'd) when batadv_dat_send_data returns. This unclear behavior already lead to memory leaks in the recent past. Renaming the function to batadv_dat_forward_data should make it easier to identify that the data is forwarded but the skb is not actually send+consumed. Signed-off-by: Sven Eckelmann Signed-off-by: Simon Wunderlich commit cedb0dbbb2b0811e58c999a0eb57739e29424352 Author: Sven Eckelmann Date: Sun Mar 17 10:07:02 2019 +0100 MAINTAINERS: Add T(ree) field for batman-adv The linux-merge.git repository on git.open-mesh.org is used since 8 years to send PRs for net.git and net-next.git. It is time to officially specify list it as SCM tree. Signed-off-by: Sven Eckelmann Signed-off-by: Simon Wunderlich commit b755636e5c146363f3f2e17a42231e7cc189b2d8 Author: Sven Eckelmann Date: Sun Mar 17 10:04:09 2019 +0100 MAINTAINERS: Add C(hat) field for batman-adv The #batman channel on freenode was created to discuss various B.A.T.M.A.N. related topics (like batman-adv). Signed-off-by: Sven Eckelmann Signed-off-by: Simon Wunderlich commit a4357c0edf30ddbdcda16b5b04cd5b6cd5547177 Author: Sven Eckelmann Date: Sun Mar 17 10:01:57 2019 +0100 MAINTAINERS: Add B(ugtracker) field for batman-adv While it is acceptable to discuss problems on the mailing list, it is easier to track bugs in the official bugtracker. Registration is required to get access to the submission form. Signed-off-by: Sven Eckelmann Signed-off-by: Simon Wunderlich commit 1392f553a4bfc1a10fd1e3a1a44e6c0acff46fbe Author: Sven Eckelmann Date: Sun Mar 3 18:02:59 2019 +0100 batman-adv: Warn about sysfs file access The sysfs files to read and modify the configuration settings were replaced by the batadv generic netlink family. They are also marked as obsolete in the ABI documentation. But not all users of this functionality might follow changes in the Documentation/ABI/obsolete/ folder. They might benefit from a warning messages about the deprecation of the functionality which they just tried to access batman_adv: [Deprecated]: batctl (pid 30381) Use of sysfs file "orig_interval". Use batadv genl family instead Signed-off-by: Sven Eckelmann Signed-off-by: Simon Wunderlich commit 42cdd521487f6509f52096fa08590f275073e81b Author: Sven Eckelmann Date: Sun Mar 3 18:02:58 2019 +0100 batman-adv: ABI: Mark sysfs files as deprecated The sysfs files are replaced by the batadv generic netlink family. The old sysfs configuration interface was frowned upon by other kernel developers. But the files cannot be removed immediately because userspace tools might still depend on it. Instead schedule for its removal in 2021. Signed-off-by: Sven Eckelmann Signed-off-by: Simon Wunderlich commit 0fa4c30d710d7e646688073339312dabc58d89a2 Author: Sven Eckelmann Date: Sun Mar 3 18:02:57 2019 +0100 batman-adv: Make sysfs support optional The sysfs files will be marked as deprecated in the near future. They are already replaced by the batadv generic netlink family. Add an Kconfig option to disable the sysfs support for users who want to test their tools or want to safe some space. This setting should currently still be enabled by default to keep backward compatible with legacy tools. Signed-off-by: Sven Eckelmann Signed-off-by: Simon Wunderlich commit 208c6e8cff1b96eca401adbd544ac00133df9e90 Author: Kangjie Lu Date: Fri Mar 8 22:36:27 2019 -0600 drm: vkms: check status of alloc_ordered_workqueue alloc_ordered_workqueue may fail and return NULL. The fix returns ENOMEM when it fails to avoid potential NULL pointer dereference. Signed-off-by: Kangjie Lu Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190309043628.6078-1-kjlu@umn.edu commit 60e6ecfb616f0d2b927ce2e47dbd0e50c8c9253e Author: Luca Ceresoli Date: Wed Mar 13 16:35:37 2019 +0100 drm/doc: fix missing verb Add a missing "be". While there, also fix the syntax for struct drm_device. Signed-off-by: Luca Ceresoli Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190313153537.22654-2-luca@lucaceresoli.net commit 825d1b579d0b080b51431dbd282a6629075e1d9c Author: Daniel Vetter Date: Thu Feb 21 16:58:56 2019 +0100 drm/hibmc: Drop best_encoder This is the default for atomic drivers. Acked-by: Gerd Hoffmann Acked-by: Noralf Trønnes Signed-off-by: Daniel Vetter Cc: Daniel Vetter Cc: Sam Ravnborg Cc: Neil Armstrong Cc: Luc Van Oostenryck Cc: Rodrigo Vivi Link: https://patchwork.freedesktop.org/patch/msgid/20190221155857.19773-1-daniel.vetter@ffwll.ch commit 52735a6f0bd2593d681001ded2f7fbbee168a235 Author: Sven Eckelmann Date: Sun Mar 3 18:02:56 2019 +0100 batman-adv: Drop documentation about sysfs files The sysfs files will be marked as deprecated in the near future. They are already replaced by the batadv generic netlink family. The documentation should not advertise its usage anymore and instead promote the generic netlink family and a userspace tool to access it. Signed-off-by: Sven Eckelmann Signed-off-by: Simon Wunderlich commit 4c35e15a8311fbf5dd95b598a43bb28985876ee2 Author: Sven Eckelmann Date: Sun Mar 3 18:02:55 2019 +0100 batman-adv: Drop documentation about debugfs files The debugfs files were marked as deprecated by commit 00caf6a2b318 ("batman-adv: Mark debugfs functionality as deprecated"). The documentation should not advertise its usage anymore and instead promote the generic netlink family and a userspace tool to access it. Signed-off-by: Sven Eckelmann Signed-off-by: Simon Wunderlich commit 0d5f20c42b24adffa1505ec3d4930d11dfaea82f Author: Sven Eckelmann Date: Sun Mar 3 15:52:07 2019 +0100 batman-adv: Drop license boilerplate All files got a SPDX-License-Identifier with commit 7db7d9f369a4 ("batman-adv: Add SPDX license identifier above copyright header"). All the required information about the license conditions can be found in LICENSES/. Signed-off-by: Sven Eckelmann Signed-off-by: Simon Wunderlich commit 0df3f09d00ae9659a250014cdbd0a14dca83a561 Author: Ville Syrjälä Date: Fri Mar 22 20:08:04 2019 +0200 drm/i915: Use vblank_disable_immediate on gen2 The vblank timestamp->counter guesstimator seems to be working sufficiently well, so there's no reason not to disable vblank interrupts ASAP even on gen2. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190322180804.3300-2-ville.syrjala@linux.intel.com Acked-by: Chris Wilson commit d938da6b132a2d6addeba4c57a67ec3c07824843 Author: Ville Syrjälä Date: Fri Mar 22 20:08:03 2019 +0200 drm/i915: Disable C3 when enabling vblank interrupts on i945gm The AGPBUSY thing doesn't work on i945gm anymore. This means the gmch is incapable of waking the CPU from C3 when an interrupt is generated. The interrupts just get postponed indefinitely until something wakes up the CPU. This is rather annoying for vblank interrupts as we are unable to maintain a steady framerate unless the machine is sufficiently loaded to stay out of C3. To combat this let's use pm_qos to prevent C3 whenever vblank interrupts are enabled. To maintain reasonable amount of powersaving we will attempt to limit this to C3 only while leaving C1 and C2 enabled. v2: Use READ_ONCE() (Chris) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=30364 Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190322180804.3300-1-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson commit 57b1c4460dc46a00f6ec439f3f11d670736b0209 Author: Ville Syrjälä Date: Fri Mar 22 22:49:44 2019 +0200 drm/i915: Mark AML 0x87CA as ULX If I'm reading the spec right AML 0x87CA is a Y SKU, so it should be marked as ULX in our old style terminology. Cc: stable@vger.kernel.org Cc: José Roberto de Souza Cc: Rodrigo Vivi Cc: Tvrtko Ursulin Fixes: c0c46ca461f1 ("drm/i915/aml: Add new Amber Lake PCI ID") Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190322204944.23613-1-ville.syrjala@linux.intel.com Reviewed-by: José Roberto de Souza commit 74fca241e6a0c0a4c33d84f64708e4f88ee73402 Author: Sameer Pujar Date: Wed Mar 13 17:02:37 2019 +0530 dmaengine: tegra210-adma: update system sleep callbacks If the driver is active till late suspend, where runtime PM cannot run, force suspend is essential in such case to put the device in low power state. Thus pm_runtime_force_suspend and pm_runtime_force_resume are used as system sleep callbacks during system wide PM transitions. Late system sleep callbacks are used to ensure, for instance, that the sound core has suspended any on-going activity, including stopping the ADMA if active, before we attempt to suspend the ADMA. Suggested-by: Jonathan Hunter Signed-off-by: Sameer Pujar Acked-by: Jon Hunter Signed-off-by: Vinod Koul commit f6ed6491d565c336a360471e0c29228e34f4380e Author: Sameer Pujar Date: Wed Mar 13 17:02:36 2019 +0530 dmaengine: tegra210-adma: use devm_clk_*() helpers adma driver is using pm_clk_*() interface for managing clock resources. With this it is observed that clocks remain ON always. This happens on Tegra devices which use BPMP co-processor to manage clock resources, where clocks are enabled during prepare phase. This is necessary because clocks to BPMP are always blocking. When pm_clk_*() interface is used on such Tegra devices, clock prepare count is not balanced till remove call happens for the driver and hence clocks are seen ON always. Thus this patch replaces pm_clk_*() with devm_clk_*() framework. Suggested-by: Mohan Kumar D Reviewed-by: Jonathan Hunter Signed-off-by: Sameer Pujar Signed-off-by: Vinod Koul commit 535f6f5d7b7f7b3127c1c8172ff0504260d14f45 Merge: b9e687fc0aa4 12e32f554d8d Author: Dave Airlie Date: Mon Mar 25 10:55:43 2019 +1000 Merge tag 'du-next-20190318' of git://linuxtv.org/pinchartl/media into drm-next Renesas display drivers changes for v5.2: - Display writeback (includes VSP changes and DRM/KMS API changes) (All v4l patches acked by Mauro) Signed-off-by: Dave Airlie From: Laurent Pinchart Link: https://patchwork.freedesktop.org/patch/msgid/20190318153613.GE12707@pendragon.ideasonboard.com commit b9e687fc0aa40307af873dbd4ccb66bd95989ae5 Merge: 8c2ffd917477 5880955fc7a5 Author: Dave Airlie Date: Mon Mar 25 10:45:51 2019 +1000 Merge tag 'omapdrm-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux into drm-next omapdrm changes for 5.2 - Implement drm_bridge and drm_panel support for omapdrm - Drop omapdrm's panel-dpi, tfp410 and connector-dvi drivers - New DRM_BUS_FLAG_*_(DRIVE|SAMPLE)_(POS|NEG)EDGE flags - Improvements to tfp410 driver - OSD070T1718-19TS panel support to simple-panel - panel-tpo-td028ttec1 backlight support Signed-off-by: Dave Airlie From: Tomi Valkeinen Link: https://patchwork.freedesktop.org/patch/msgid/670dc1ce-feaf-b88e-780f-b99251b88a82@ti.com commit 62b31b42cff924c7d1e9a095b68ff3bbfc49b15b Author: Willem de Bruijn Date: Sat Mar 23 12:23:07 2019 -0400 bpf: silence uninitialized var warning in bpf_skb_net_grow These three variables are set in one branch and used in another with the same condition. But on some architectures they still generate compiler warnings of the kind: warning: 'inner_trans' may be used uninitialized in this function [-Wmaybe-uninitialized] Silence these false positives. Use the straightforward approach to always initialize them, if a bit superfluous. Fixes: 868d523535c2 ("bpf: add bpf_skb_adjust_room encap flags") Reported-by: kbuild test robot Signed-off-by: Willem de Bruijn Signed-off-by: Alexei Starovoitov commit 36ea73cb9a42aaf67451f6a9373777363a6ce508 Author: Bich HEMON Date: Wed Mar 6 15:11:51 2019 +0000 dt-bindings: i2c: stm32: update optional properties for stm32h7/stm32mp1 Add STM32H7 and STM32MP1 in the list of compatible socs for each optional property. Signed-off-by: Bich Hemon Reviewed-by: Pierre-Yves MORDRET Signed-off-by: Wolfram Sang commit 472ec0ce3ef4111c1b55e6f677599cef4b52eed1 Author: Bich HEMON Date: Wed Mar 6 15:11:51 2019 +0000 dt-bindings: i2c: stm32: remove extra spaces Remove extra spaces before colons. Signed-off-by: Bich Hemon Reviewed-by: Pierre-Yves MORDRET Signed-off-by: Wolfram Sang commit 9d3ca54b550ca070d3e3ed0c137ed1655fcf2772 Author: Juergen Fitschen Date: Fri Feb 22 10:25:22 2019 +0100 i2c: at91: added slave mode support Slave mode driver is based on the concept of i2c-designware driver. Signed-off-by: Juergen Fitschen [ludovic.desroches@microchip.com: rework Kconfig and replace IS_ENABLED by defined] Signed-off-by: Ludovic Desroches Signed-off-by: Wolfram Sang commit ad7d142f8951ce00e0366ba54bfaf8ab086eb4b9 Author: Juergen Fitschen Date: Fri Feb 22 10:25:21 2019 +0100 i2c: at91: split driver into core and master file The single file i2c-at91.c has been split into core code (i2c-at91-core.c) and master mode specific code (i2c-at91-master.c). This should enhance maintainability and reduce ifdeffery for slave mode related code. The code itself hasn't been touched. Shared functions only had to be made non-static. Furthermore, includes have been cleaned up. Signed-off-by: Juergen Fitschen [ludovic.desroches@microchip.com: fix checkpatch errors and use SPDX] Signed-off-by: Ludovic Desroches Signed-off-by: Wolfram Sang commit 07345ab220d80ac7edf4b6bfa4b43800dfbd2c97 Author: Juergen Fitschen Date: Fri Feb 22 10:25:20 2019 +0100 i2c: at91: segregate master mode specific code from probe and init func In order to implement slave mode support for the at91 hardware we have to segregate all master mode specific function parts from the general parts. The upcoming slave mode patch will call its sepcific probe resp. init function instead of the master mode functions after the shared general code has been executed. This concept has been influenced by the i2c-designware driver. Signed-off-by: Juergen Fitschen Signed-off-by: Ludovic Desroches Signed-off-by: Wolfram Sang commit dd19f6bf9245dd17fa9e7f89ceda56c930a130d4 Author: Chris Wilson Date: Sat Mar 23 21:40:09 2019 +0000 drm/i915: Remove defunct intel_suspend_gt_powersave() Since commit b7137e0cf1e5 ("drm/i915: Defer enabling rc6 til after we submit the first batch/context"), intel_suspend_gt_powersave() has been a no-op. As we still do not need to do anything explicitly on suspend (we do everything required on idling), remove the defunct function. References: b7137e0cf1e5 ("drm/i915: Defer enabling rc6 til after we submit the first batch/context") Suggested-by: "Hiatt, Don" Signed-off-by: Chris Wilson Reviewed-by: Sagar Arun Kamble Link: https://patchwork.freedesktop.org/patch/msgid/20190323214009.23294-1-chris@chris-wilson.co.uk commit 59c39840f5abf4a71e1810a8da71aaccd6c17d26 Author: Prasad Sodagudi Date: Sun Mar 24 07:57:04 2019 -0700 genirq: Prevent use-after-free and work list corruption When irq_set_affinity_notifier() replaces the notifier, then the reference count on the old notifier is dropped which causes it to be freed. But nothing ensures that the old notifier is not longer queued in the work list. If it is queued this results in a use after free and possibly in work list corruption. Ensure that the work is canceled before the reference is dropped. Signed-off-by: Prasad Sodagudi Signed-off-by: Thomas Gleixner Cc: marc.zyngier@arm.com Link: https://lkml.kernel.org/r/1553439424-6529-1-git-send-email-psodagud@codeaurora.org commit f28d3d5346e97e60c81f933ac89ccf015430e5cf Author: Anna-Maria Gleixner Date: Thu Mar 21 13:09:21 2019 +0100 timer/trace: Improve timer tracing Timers are added to the timer wheel off by one. This is required in case a timer is queued directly before incrementing jiffies to prevent early timer expiry. When reading a timer trace and relying only on the expiry time of the timer in the timer_start trace point and on the now in the timer_expiry_entry trace point, it seems that the timer fires late. With the current timer_expiry_entry trace point information only now=jiffies is printed but not the value of base->clk. This makes it impossible to draw a conclusion to the index of base->clk and makes it impossible to examine timer problems without additional trace points. Therefore add the base->clk value to the timer_expire_entry trace point, to be able to calculate the index the timer base is located at during collecting expired timers. Signed-off-by: Anna-Maria Gleixner Signed-off-by: Thomas Gleixner Cc: fweisbec@gmail.com Cc: peterz@infradead.org Cc: Steven Rostedt Link: https://lkml.kernel.org/r/20190321120921.16463-5-anna-maria@linutronix.de commit 6849cbb0f9a8dbc1ba56e9abc6955613103e01e3 Author: Anna-Maria Gleixner Date: Thu Mar 21 13:09:20 2019 +0100 timer/trace: Replace deprecated vsprintf pointer extension %pf by %ps Since commit 04b8eb7a4ccd ("symbol lookup: introduce dereference_symbol_descriptor()") %pf is deprecated, because %ps is smart enough to handle function pointer dereference on platforms where such a dereference is required. While at it add proper line breaks to stay in the 80 character limit. Signed-off-by: Anna-Maria Gleixner Signed-off-by: Thomas Gleixner Cc: fweisbec@gmail.com Cc: peterz@infradead.org Cc: Steven Rostedt Link: https://lkml.kernel.org/r/20190321120921.16463-4-anna-maria@linutronix.de commit dc1e7dc5ac6254ba0502323381a7ec847e408f1d Author: Anna-Maria Gleixner Date: Thu Mar 21 13:09:19 2019 +0100 timer: Move trace point to get proper index When placing the timer_start trace point before the timer wheel bucket index is calculated, the index information in the trace point is useless. It is not possible to simply move the debug_activate() call after the index calculation, because debug_object_activate() needs to be called before touching the object. Therefore split debug_activate() and move the trace point into enqueue_timer() after the new index has been calculated. The debug_object_activate() call remains at the original place. Signed-off-by: Anna-Maria Gleixner Signed-off-by: Thomas Gleixner Cc: fweisbec@gmail.com Cc: peterz@infradead.org Cc: Steven Rostedt Link: https://lkml.kernel.org/r/20190321120921.16463-3-anna-maria@linutronix.de commit d6b87eaf10bd061914f6d277d7428b3285d8850e Author: Anna-Maria Gleixner Date: Thu Mar 21 13:09:18 2019 +0100 tick/sched: Update tick_sched struct documentation Adapt the documentation order of struct members to the effective order of struct members and add missing descriptions. Signed-off-by: Anna-Maria Gleixner Signed-off-by: Thomas Gleixner Cc: fweisbec@gmail.com Cc: peterz@infradead.org Link: https://lkml.kernel.org/r/20190321120921.16463-2-anna-maria@linutronix.de commit 68cc2999f6926590c7783f2de12ba467ecad8c7d Merge: 956ca8fc5c64 f6b19b354d50 Author: David S. Miller Date: Sun Mar 24 14:55:31 2019 -0400 Merge branch 'devlink-small-spring-cleanup' Jiri Pirko says: ==================== devlink: small spring cleanup Mostly cosmetics and janitor work. ==================== Signed-off-by: David S. Miller commit f6b19b354d50c5ae46ad66b5273f92e563fbc847 Author: Jiri Pirko Date: Sun Mar 24 11:14:38 2019 +0100 net: devlink: select NET_DEVLINK from drivers Some drivers are becoming more dependent on NET_DEVLINK being selected in configuration. With upcoming compat functions, the behavior would be wrong in case devlink was not compiled in. So make the drivers select NET_DEVLINK and rely on the functions being there, not just stubs. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit b8f975545cdbcc316cf20e827e7966d4410b5c5a Author: Jiri Pirko Date: Sun Mar 24 11:14:37 2019 +0100 net: devlink: add port type spinlock Add spinlock to protect port type and type_dev pointer consistency. Without that, userspace may see inconsistent type and type_dev combinations. Signed-off-by: Jiri Pirko v1->v2: - rebased Signed-off-by: David S. Miller commit 2b239e7090b89d1e2b73b48300686221ca948637 Author: Jiri Pirko Date: Sun Mar 24 11:14:36 2019 +0100 net: devlink: warn on setting type on unregistered port Port needs to be registered first before the type is set. Warn and bail-out in case it is not. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit d0d54e8c359399a8d07656779d5b6ddae68ef3c7 Author: Jiri Pirko Date: Sun Mar 24 11:14:35 2019 +0100 bnxt: set devlink port type after registration Move the type set of devlink port after it is registered. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit faaccbe6eb07ecd590bebae11eb236661ecfb069 Author: Jiri Pirko Date: Sun Mar 24 11:14:34 2019 +0100 nfp: move devlink port type set after netdev registration Similar to other driver, move the port type set after netdev registration is done. Along with that, clear the type before unregistration. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 45b861120e0c2694cabf082c63b022465ac572bb Author: Jiri Pirko Date: Sun Mar 24 11:14:33 2019 +0100 net: devlink: disallow port_attrs_set() to be called before register Since the port attributes are static and cannot change during the port lifetime, WARN_ON if some driver calls it after registration. Also, no need to call notifications as it is noop anyway due to check of devlink_port->registered there. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit d8ba36204cc74c727f6653abc47310d513634e2e Author: Jiri Pirko Date: Sun Mar 24 11:14:32 2019 +0100 dsa: move devlink_port_attrs_set() call before register Since attrs are static during the existence of devlink port, set the before registration of the port. Signed-off-by: Jiri Pirko Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit e519418f8992b0165728a3c2272000ff57c8c9c3 Author: Jiri Pirko Date: Sun Mar 24 11:14:31 2019 +0100 mlxsw: Move devlink_port_attrs_set() call before register Since attrs are static during the existence of devlink port, set the before registration of the port. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 773b1f38e34e1493fefeed714386d7f973d4b31d Author: Jiri Pirko Date: Sun Mar 24 11:14:30 2019 +0100 net: devlink: don't pass return value of __devlink_port_type_set() __devlink_port_type_set() returns void, it makes no sense to pass it on, so don't do that. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit e0dcd386d1fc6ed9e90d76dfdf533287555d79d2 Author: Jiri Pirko Date: Sun Mar 24 11:14:29 2019 +0100 net: devlink: don't take devlink_mutex for devlink_compat_* The netdevice is guaranteed to not disappear so we can rely that devlink_port and devlink won't disappear as well. No need to take devlink_mutex so don't take it here. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit c3f10cbcaa3d5e1980733c3ccd0261df426412d2 Author: Jiri Pirko Date: Sun Mar 24 11:14:28 2019 +0100 bnxt: call devlink_port_type_eth_set() before port register Call devlink_port_type_eth_set() before devlink_port_register(). Bnxt instances won't change type during lifetime. This avoids one extra userspace devlink notification. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit a0e18132ec51301414a5c92e6c258c2e62fdf08f Author: Jiri Pirko Date: Sun Mar 24 11:14:27 2019 +0100 bnxt: set devlink port attrs properly Set the attrs properly so delink has enough info to generate physical port names. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 402f99e550c6f7df835dde707920038591384d20 Author: Jiri Pirko Date: Sun Mar 24 11:14:26 2019 +0100 dsa: add missing net/devlink.h include devlink functions are in use, so include the related header file. Signed-off-by: Jiri Pirko Reviewed-by: Andrew Lunn Signed-off-by: David S. Miller commit 477edb7806b652043750aa33c584b9838a7c2123 Author: Jiri Pirko Date: Sun Mar 24 11:14:25 2019 +0100 bnxt: add missing net/devlink.h include devlink functions are in use, so include the related header file. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 375cf8c6439f44fbb51f9ba4eba6686d73d06229 Author: Jiri Pirko Date: Sun Mar 24 11:14:24 2019 +0100 net: devlink: add couple of missing mutex_destroy() calls Add missing called to mutex_destroy() for two mutexes used in devlink code. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit 47c3b5e9b38b9da8db62d8c354be722852ea9d83 Author: Michal Wajdeczko Date: Thu Mar 21 12:00:04 2019 +0000 drm/i915/guc: Support for extended GuC notification messages GuC may send notification messages with payload larger than single u32. Prepare driver to accept longer messages. Signed-off-by: Michal Wajdeczko Cc: Daniele Ceraolo Spurio Cc: Vinay Belgaumkar Cc: Michal Winiarski Cc: Tomasz Lis Reviewed-by: Daniele Ceraolo Spurio Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190321120004.53012-1-michal.wajdeczko@intel.com commit ddad5babb05e92e655cae137c1f8a3ed2c43a685 Author: Zhenyu Wang Date: Mon Mar 11 10:37:47 2019 +0800 drm/i915: always pin hw_id for GVT context Initially found issue with closed context debug check when pin hw_id for GVT context, looks we should always pin hw_id for that as GVT context is fixed for each vGPU life cycle, and we'd also like to get pinned hw_id e.g for perf reason, etc. Cc: Chris Wilson Signed-off-by: Zhenyu Wang Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190311023747.1426-1-zhenyuw@linux.intel.com commit 9308fd4074551f222f30322d1ee8c5aff18e9747 Author: Yazen Ghannam Date: Fri Mar 22 20:29:00 2019 +0000 x86/MCE: Group AMD function prototypes in There are two groups of "ifdef CONFIG_X86_MCE_AMD" function prototypes in . Merge these two groups. No functional change. [ bp: align vertically. ] Signed-off-by: Yazen Ghannam Signed-off-by: Borislav Petkov Cc: Arnd Bergmann Cc: "clemej@gmail.com" Cc: "H. Peter Anvin" Cc: Ingo Molnar Cc: Pu Wen Cc: Qiuxu Zhuo Cc: "rafal@milecki.pl" Cc: Thomas Gleixner Cc: Tony Luck Cc: Vishal Verma Cc: x86-ml Link: https://lkml.kernel.org/r/20190322202848.20749-3-Yazen.Ghannam@amd.com commit 6a023205d2d712dd623856f0b7f2e1531da924b8 Author: Payal Kshirsagar Date: Sun Mar 24 09:13:42 2019 +0530 staging: rts5208: correction in spelling Correct misspelled word. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 9c0867e0b836d4e273a204ee904ed7b408bc0502 Author: Vatsala Narang Date: Sun Mar 24 03:39:15 2019 +0530 staging: rtl8723bs: include: Fix identation issue Corrected the identation of switch case to get rid of checkpatch error Signed-off-by: Vatsala Narang Signed-off-by: Greg Kroah-Hartman commit d01deea6d72cdfd6c8c0c5910cf0f78fc671637b Author: Vatsala Narang Date: Sun Mar 24 03:35:14 2019 +0530 staging: rtl8723bs: include: Fix a space issue Replace 'foo * bar' with 'foo *bar' to fix a checkpatch warning Signed-off-by: Vatsala Narang Signed-off-by: Greg Kroah-Hartman commit 3fe9ff487746b021f739a6dd1ca419ab52e28ba5 Author: Vatsala Narang Date: Sat Mar 23 16:09:24 2019 +0530 staging: rtl8723bs: include: Fix spelling mistake Replace negoitation with negotiation to get rid of checkpatch warning. Signed-off-by: Vatsala Narang Signed-off-by: Greg Kroah-Hartman commit 8e97f7d8662302643448f1af3ad7b0d2df91c537 Author: Nishka Dasgupta Date: Fri Mar 22 20:08:26 2019 +0530 staging: rtl8723bs: Remove function rtw_alloc_network() Remove function rtw_alloc_network() as all it does is call _rtw_alloc_network(). Rename _rtw_alloc_network() to rtw_alloc_network(). Change references to _rtw_alloc_network() to refer to rtw_alloc_network(). Issue first noticed while using Coccinelle and ret.cocci. Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit 367cdd1305ac091813fe98342e868219d8146e5a Author: Nishka Dasgupta Date: Fri Mar 22 20:08:25 2019 +0530 staging: rtl8723bs: core: Remove parentheses Remove unnecessary parentheses around variables. Issue found with Checkpatch. Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit 2c506ddfd51b884138ab999faf7516d8e2c3b788 Author: Nishka Dasgupta Date: Fri Mar 22 20:08:24 2019 +0530 staging: rtl8723bs: core: Change datatype from sint to int Change datatype of local variable from sint to int. Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit cb8de77c78c73541edd32eeb62501af1bd73c76a Author: Nishka Dasgupta Date: Fri Mar 22 20:08:23 2019 +0530 staging; rtl8723bs: Remove unnecessary function rtw_init_mlme_priv() Remove function rtw_init_mlme_priv() as all it does is call _rtw_init_mlme_priv(). Change the name of _rtw_init_mlme_priv() to rtw_init_mlme_priv() and its return type to int. Remove references to _rtw_init_mlme_priv() from the corresponding header file. Suggestion to delete return variable from rtw_init_mlme_priv() put forward by Coccinelle using ret.cocci. Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit f981c57ffd2d7cf2dd4b6d6f8fcb3965df42f54c Author: Jeremy Sowden Date: Sat Mar 23 14:43:02 2019 +0000 vti4: eliminated some duplicate code. The ipip tunnel introduced in commit dd9ee3444014 ("vti4: Fix a ipip packet processing bug in 'IPCOMP' virtual tunnel") largely duplicated the existing vti_input and vti_recv functions. Refactored to deduplicate the common code. Signed-off-by: Jeremy Sowden Signed-off-by: Steffen Klassert commit 65fd2c2afac31a4b46a80150347a1748fa9101cb Author: Boris Pismenny Date: Thu Mar 21 16:41:37 2019 +0200 xfrm: gso partial offload support This patch introduces support for gso partial ESP offload. Signed-off-by: Boris Pismenny Signed-off-by: Raed Salem Signed-off-by: Steffen Klassert commit aa957088b4e846146b230e431dd9dad59e907f9a Author: Dalit Ben Zoor Date: Sun Mar 24 10:15:44 2019 +0200 habanalabs: add device status option to INFO IOCTL This patch adds a new opcode to INFO IOCTL that returns the device status. This will allow users to query the device status in order to avoid sending command submissions while device is in reset. Signed-off-by: Dalit Ben Zoor Signed-off-by: Oded Gabbay commit 64ebde5b0fdb69fc4061bea0de661421af54f918 Author: Jan Kundrát Date: Thu Mar 7 14:30:13 2019 +0100 gpiolib: export devprop_gpiochip_set_names() This function is needed in mcp23s08. That driver is a special snowflake because it supports several hardware chips as a single "GPIO chip" under Linux. Signed-off-by: Jan Kundrát Cc: Linus Walleij Cc: Phil Reid Acked-by: Mika Westerberg Signed-off-by: Linus Walleij commit 956ca8fc5c648b236917a8253c361a04e6f20d93 Merge: d64fee0a0320 d0d443cddbef Author: David S. Miller Date: Sat Mar 23 22:16:54 2019 -0400 Merge branch 'aquantia-rx-perf' Igor Russkikh says: ==================== net: aquantia: RX performance optimization patches Here is a set of patches targeting for performance improvement on various platforms and protocols. Our main target was rx performance on iommu systems, notably NVIDIA Jetson TX2 and NVIDIA Xavier platforms. We introduce page reuse strategy to better deal with iommu dma mapping costs. With it we see 80-90% of page reuse under some test configurations on UDP traffic. This shows good improvements on other systems with IOMMU hardware, like AMD Ryzen. We've also improved TCP LRO configuration parameters, allowing packets to better coalesce. Page reuse tests were carried out using iperf3, iperf2, netperf and pktgen. Mainly on UDP traffic, with various packet lengths. Jetson TX2, UDP, Default MTU: RX Lost Datagrams Before: Max: 69% Min: 68% Avg: 68.5% After: Max: 41% Min: 38% Avg: 39.2% Maximum throughput Before: 1.27 Gbits/sec After: 2.41 Gbits/sec AMD Ryzen 5 2400G, UDP, Default MTU: RX Lost Datagrams Before: Max: 12% Min: 4.5% Avg: 7.17% After: Max: 6.2% Min: 2.3% Avg: 4.26% ==================== Signed-off-by: David S. Miller commit d0d443cddbefd5c9ab28b56c4a9463cac5f8ae17 Author: Igor Russkikh Date: Sat Mar 23 15:23:42 2019 +0000 net: aquantia: enable driver build for arm64 or compile_test The driver is now constantly tested in our lab on aarch64 hardware: Jetson tx2, Pascal and Xavier tegra based hardware. Many of tegra smmu related HW bugs were fixed or workarounded already. Thus, add ARM64 into Kconfig. Add also COMPILE_TEST dependency. Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit 1eef4757ce5e639ec20e438f0cdd6784c49ce37a Author: Nikita Danilov Date: Sat Mar 23 15:23:40 2019 +0000 net: aquantia: improve LRO configuration Default LRO HW configuration was very conservative. Low Number of Descriptors per LRO Sequence, small session timeout, inefficient settings in interrupt generation logic. Change max number of LRO descriptors from 2 to 16 to increase performance. Increase maximum coalescing interval in HW to 250uS. Tune up HW LRO interrupt generation setting to prevent hw issues with long LRO sessions. Signed-off-by: Nikita Danilov Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit 1b09e72d1670d3861c7a4c0a12fa4aa1cc417d63 Author: Igor Russkikh Date: Sat Mar 23 15:23:38 2019 +0000 net: aquantia: Increase rx ring default size from 1K to 2K For multigig rates 1K ring size is often not enough and causes extra packet drops in hardware. Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit 8bd7e7639dafe13ebc172f3cfbdebea18bd19db6 Author: Igor Russkikh Date: Sat Mar 23 15:23:36 2019 +0000 net: aquantia: Make RX default frame size 2K This correlates with default internet MTU. This also allows page flip/reuse to be activated, since each allocated RX page now serves for two frags/packets. Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit 9773ef18b83d8acc5862ea7e727d6e4d52846dd7 Author: Igor Russkikh Date: Sat Mar 23 15:23:34 2019 +0000 net: aquantia: Introduce rx refill threshold value Before that, we've refilled ring even on single descriptor move. Under high packet load that caused page allocation logic to be triggered too often. That made overall ring processing slower. Moreover, with page buffer reuse implemented, we should give a chance higher networking levels to process received packets faster, release the pages they consumed and therefore give a higher chance for these pages to be reused. RX ring is now refilled only when AQ_CFG_RX_REFILL_THRES or more descriptors were processed (32 by default). Under regular traffic this gives quite enough time for packet to be consumed and page to be reused. Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit 46f4c29d9de6e4a9d4ed7de9a37dd42501d89f86 Author: Igor Russkikh Date: Sat Mar 23 15:23:32 2019 +0000 net: aquantia: optimize rx performance by page reuse strategy We introduce internal aq_rxpage wrapper over regular page where extra field is tracked: rxpage offset inside of allocated page. This offset allows to reuse one page for multiple packets. When needed (for example with large frames processing), allocated pageorder could be customized. This gives even larger page reuse efficiency. page_ref_count is used to track page users. If during rx refill underlying page has users, we increase pg_off by rx frame size thus the top half of the page is reused. Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit 7e2698c4fd35f30fd3e5932ca2825fe5a461e265 Author: Igor Russkikh Date: Sat Mar 23 15:23:31 2019 +0000 net: aquantia: optimize rx path using larger preallocated skb len Atlantic driver used 14 bytes preallocated skb size. That made L3 protocol processing inefficient because pskb_pull had to fetch all the L3/L4 headers from extra fragments. Specially on UDP flows that caused extra packet drops because CPU was overloaded with pskb_pull. This patch uses eth_get_headlen for skb preallocation. Signed-off-by: Igor Russkikh Signed-off-by: David S. Miller commit d64fee0a0320ecc678903c30c2fed56b68979011 Merge: 071d08af388c 76b496b1bd79 Author: David S. Miller Date: Sat Mar 23 22:03:44 2019 -0400 Merge tag 'mlx5-updates-2019-03-20' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux Saeed Mahameed says: ==================== mlx5-updates-2019-03-20 This series includes updates to mlx5 driver, 1) Compiler warnings cleanup from Saeed Mahameed 2) Parav Pandit simplifies sriov enable/disables 3) Gustavo A. R. Silva, Removes a redundant assignment 4) Moshe Shemesh, Adds Geneve tunnel stateless offload support 5) Eli Britstein, Adds the Support for VLAN modify action and Replaces TC VLAN pop and push actions with VLAN modify Note: This series includes two simple non-mlx5 patches, 1) Declare IANA_VXLAN_UDP_PORT definition in include/net/vxlan.h, and use it in some drivers. 2) Declare GENEVE_UDP_PORT definition in include/net/geneve.h, and use it in mlx5 and nfp drivers. ==================== Signed-off-by: David S. Miller commit 071d08af388cee8afb3cc28f6c091038f2de4989 Merge: bdaba8959e92 f1ef73f50b3e Author: David S. Miller Date: Sat Mar 23 22:02:54 2019 -0400 Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== 100GbE Intel Wired LAN Driver Updates 2019-03-22 This series contains updates to ice driver only. Akeem enables MAC anti-spoofing by default when a new VSI is being created. Fixes an issue when reclaiming VF resources back to the pool after reset, by freeing VF resources separately using the first VF vector index to traverse the list, instead of starting at the last assigned vectors list. Added support for VF & PF promiscuous mode in the ice driver. Fixed the PF driver from letting the VF know it is "not trusted" when it attempts to add more than its permitted additional MAC addresses. Altered how the driver gets the VF VSIs instances, instead of using the mailbox messages to retrieve VSIs, get it directly via the VF object in the PF data structure. Bruce fixes return values to resolve static analysis warnings. Made whitespace changes to increase readability and reduce code wrapping. Anirudh cleans up code by removing a function prototype that was never implemented and removed an unused field in the ice_sched_vsi_info structure. Kiran fixes a potential divide by zero issue by adding a check. Victor cleans up the transmit scheduler by adjusting the stack variable usage and added/modified debug prints to make them more useful. Yashaswini updates the driver in VEB mode to ensure that the LAN_EN bit is set if all the right conditions are met. Christopher ensures the loopback enable bit is not set for prune switch rules, since all transmit traffic would be looped back to the internal switch and dropped. ==================== Signed-off-by: David S. Miller commit bdaba8959e9248524f3d148d1aa47f13944ba8e8 Merge: 7c1508e5f64a 8b27dae5a2e8 Author: David S. Miller Date: Sat Mar 23 21:57:38 2019 -0400 Merge branch 'tcp-rx-tx-cache' Eric Dumazet says: ==================== tcp: add rx/tx cache to reduce lock contention On hosts with many cpus we can observe a very serious contention on spinlocks used in mm slab layer. The following can happen quite often : 1) TX path sendmsg() allocates one (fclone) skb on CPU A, sends a clone. ACK is received on CPU B, and consumes the skb that was in the retransmit queue. 2) RX path network driver allocates skb on CPU C recvmsg() happens on CPU D, freeing the skb after it has been delivered to user space. In both cases, we are hitting the asymetric alloc/free pattern for which slab has to drain alien caches. At 8 Mpps per second, this represents 16 Mpps alloc/free per second and has a huge penalty. In an interesting experiment, I tried to use a single kmem_cache for all the skbs (in skb_init() : skbuff_fclone_cache = skbuff_head_cache = kmem_cache_create("skbuff_fclone_cache", sizeof(struct sk_buff_fclones),); qnd most of the contention disappeared, since cpus could better use their local slab per-cpu cache. But we can do actually better, in the following patches. TX : at ACK time, no longer free the skb but put it back in a tcp socket cache, so that next sendmsg() can reuse it immediately. RX : at recvmsg() time, do not free the skb but put it in a tcp socket cache so that it can be freed by the cpu feeding the incoming packets in BH. This increased the performance of small RPC benchmark by about 10 % on a host with 112 hyperthreads. v2 : - Solved a race condition : sk_stream_alloc_skb() to make sure the prior clone has been freed. - Really test rps_needed in sk_eat_skb() as claimed. - Fixed rps_needed use in drivers/net/tun.c v3: Added a #ifdef CONFIG_RPS, to avoid compile error (kbuild robot) ==================== Signed-off-by: David S. Miller commit 8b27dae5a2e89a61c46c6dbc76c040c0e6d0ed4c Author: Eric Dumazet Date: Fri Mar 22 08:56:40 2019 -0700 tcp: add one skb cache for rx Often times, recvmsg() system calls and BH handling for a particular TCP socket are done on different cpus. This means the incoming skb had to be allocated on a cpu, but freed on another. This incurs a high spinlock contention in slab layer for small rpc, but also a high number of cache line ping pongs for larger packets. A full size GRO packet might use 45 page fragments, meaning that up to 45 put_page() can be involved. More over performing the __kfree_skb() in the recvmsg() context adds a latency for user applications, and increase probability of trapping them in backlog processing, since the BH handler might found the socket owned by the user. This patch, combined with the prior one increases the rpc performance by about 10 % on servers with large number of cores. (tcp_rr workload with 10,000 flows and 112 threads reach 9 Mpps instead of 8 Mpps) This also increases single bulk flow performance on 40Gbit+ links, since in this case there are often two cpus working in tandem : - CPU handling the NIC rx interrupts, feeding the receive queue, and (after this patch) freeing the skbs that were consumed. - CPU in recvmsg() system call, essentially 100 % busy copying out data to user space. Having at most one skb in a per-socket cache has very little risk of memory exhaustion, and since it is protected by socket lock, its management is essentially free. Note that if rps/rfs is used, we do not enable this feature, because there is high chance that the same cpu is handling both the recvmsg() system call and the TCP rx path, but that another cpu did the skb allocations in the device driver right before the RPS/RFS logic. To properly handle this case, it seems we would need to record on which cpu skb was allocated, and use a different channel to give skbs back to this cpu. Signed-off-by: Eric Dumazet Acked-by: Soheil Hassas Yeganeh Acked-by: Willem de Bruijn Signed-off-by: David S. Miller commit 472c2e07eef045145bc1493cc94a01c87140780a Author: Eric Dumazet Date: Fri Mar 22 08:56:39 2019 -0700 tcp: add one skb cache for tx On hosts with a lot of cores, RPC workloads suffer from heavy contention on slab spinlocks. 20.69% [kernel] [k] queued_spin_lock_slowpath 5.64% [kernel] [k] _raw_spin_lock 3.83% [kernel] [k] syscall_return_via_sysret 3.48% [kernel] [k] __entry_text_start 1.76% [kernel] [k] __netif_receive_skb_core 1.64% [kernel] [k] __fget For each sendmsg(), we allocate one skb, and free it at the time ACK packet comes. In many cases, ACK packets are handled by another cpus, and this unfortunately incurs heavy costs for slab layer. This patch uses an extra pointer in socket structure, so that we try to reuse the same skb and avoid these expensive costs. We cache at most one skb per socket so this should be safe as far as memory pressure is concerned. Signed-off-by: Eric Dumazet Acked-by: Soheil Hassas Yeganeh Acked-by: Willem de Bruijn Signed-off-by: David S. Miller commit dc05360fee660a9dbe59824b3f7896534210432b Author: Eric Dumazet Date: Fri Mar 22 08:56:38 2019 -0700 net: convert rps_needed and rfs_needed to new static branch api We prefer static_branch_unlikely() over static_key_false() these days. Signed-off-by: Eric Dumazet Acked-by: Soheil Hassas Yeganeh Acked-by: Willem de Bruijn Signed-off-by: David S. Miller commit 7c1508e5f64a784988be4659dd4d6b791c008bbf Merge: 576fd2f7cac3 ba27b4cdaaa6 Author: David S. Miller Date: Sat Mar 23 21:52:37 2019 -0400 Merge branch 'net-dev-BYPASS-for-lockless-qdisc' Paolo Abeni says: ==================== net: dev: BYPASS for lockless qdisc This patch series is aimed at improving xmit performances of lockless qdisc in the uncontended scenario. After the lockless refactor pfifo_fast can't leverage the BYPASS optimization. Due to retpolines the overhead for the avoidables enqueue and dequeue operations has increased and we see measurable regressions. The first patch introduces the BYPASS code path for lockless qdisc, and the second one optimizes such path further. Overall this avoids up to 3 indirect calls per xmit packet. Detailed performance figures are reported in the 2nd patch. v2 -> v3: - qdisc_is_empty() has a const argument (Eric) v1 -> v2: - use really an 'empty' flag instead of 'not_empty', as suggested by Eric ==================== Signed-off-by: David S. Miller commit ba27b4cdaaa66561aaedb2101876e563738d36fe Author: Paolo Abeni Date: Fri Mar 22 16:01:56 2019 +0100 net: dev: introduce support for sch BYPASS for lockless qdisc With commit c5ad119fb6c0 ("net: sched: pfifo_fast use skb_array") pfifo_fast no longer benefit from the TCQ_F_CAN_BYPASS optimization. Due to retpolines the cost of the enqueue()/dequeue() pair has become relevant and we observe measurable regression for the uncontended scenario when the packet-rate is below line rate. After commit 46b1c18f9deb ("net: sched: put back q.qlen into a single location") we can check for empty qdisc with a reasonably fast operation even for nolock qdiscs. This change extends TCQ_F_CAN_BYPASS support to nolock qdisc. The new chunk of code mirrors closely the existing one for traditional qdisc, leveraging a newly introduced helper to read atomically the qdisc length. Tested with pktgen in queue xmit mode, with pfifo_fast, a MQ device, and MQ root qdisc: threads vanilla patched kpps kpps 1 2465 2889 2 4304 5188 4 7898 9589 Same as above, but with a single queue device: threads vanilla patched kpps kpps 1 2556 2827 2 2900 2900 4 5000 5000 8 4700 4700 No mesaurable changes in the contended scenarios, and more 10% improvement in the uncontended ones. v1 -> v2: - rebased after flag name change Signed-off-by: Paolo Abeni Tested-by: Ivan Vecera Reviewed-by: Eric Dumazet Reviewed-by: Ivan Vecera Signed-off-by: David S. Miller commit 28cff537ef2eed9307bc7e4e40745075637bec56 Author: Paolo Abeni Date: Fri Mar 22 16:01:55 2019 +0100 net: sched: add empty status flag for NOLOCK qdisc The queue is marked not empty after acquiring the seqlock, and it's up to the NOLOCK qdisc clearing such flag on dequeue. Since the empty status lays on the same cache-line of the seqlock, it's always hot on cache during the updates. This makes the empty flag update a little bit loosy. Given the lack of synchronization between enqueue and dequeue, this is unavoidable. v2 -> v3: - qdisc_is_empty() has a const argument (Eric) v1 -> v2: - use really an 'empty' flag instead of 'not_empty', as suggested by Eric Signed-off-by: Paolo Abeni Reviewed-by: Eric Dumazet Reviewed-by: Ivan Vecera Signed-off-by: David S. Miller commit 576fd2f7cac3daa36025f0039f9e7cb75b4b4ae0 Author: Soheil Hassas Yeganeh Date: Fri Mar 22 10:59:47 2019 -0400 tcp: add documentation for tcp_ca_state Add documentation to the tcp_ca_state enum, since this enum is exposed in uapi. Signed-off-by: Neal Cardwell Signed-off-by: Yuchung Cheng Signed-off-by: Eric Dumazet Signed-off-by: Soheil Hassas Yeganeh Cc: Sowmini Varadhan Acked-by: Sowmini Varadhan Signed-off-by: David S. Miller commit e6d1407013a91722ffc89e980d715eb9ce7b57f6 Author: Eric Dumazet Date: Fri Mar 22 06:26:29 2019 -0700 tcp: remove conditional branches from tcp_mstamp_refresh() tcp_clock_ns() (aka ktime_get_ns()) is using monotonic clock, so the checks we had in tcp_mstamp_refresh() are no longer relevant. This patch removes cpu stall (when the cache line is not hot) Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit a7a01ab312601ba5966ec80383e6bbef241d883f Author: Florian Fainelli Date: Thu Mar 21 16:23:30 2019 -0700 net: phy: Correct Cygnus/Omega PHY driver prompt The tristate prompt should have been replaced rather than defined a few lines below, rebase mistake. Fixes: 17cc9821766c ("net: phy: Move Omega PHY entry to Cygnus PHY driver") Reported-by: Stephen Rothwell Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller commit 1b72d43237980eab9b6ae6bb8181e51c840377e6 Author: Thomas Gleixner Date: Thu Mar 21 16:39:20 2019 +0100 tick: Remove outgoing CPU from broadcast masks Valentin reported that unplugging a CPU occasionally results in a warning in the tick broadcast code which is triggered when an offline CPU is in the broadcast mask. This happens because the outgoing CPU is not removing itself from the broadcast masks, especially not from the broadcast_force_mask. The removal happens on the control CPU after the outgoing CPU is dead. It's a long standing issue, but the warning is harmless. Rework the hotplug mechanism so that the outgoing CPU removes itself from the broadcast masks after disabling interrupts and removing itself from the online mask. Reported-by: Valentin Schneider Signed-off-by: Thomas Gleixner Tested-by: Valentin Schneider Cc: Frederic Weisbecker Link: https://lkml.kernel.org/r/alpine.DEB.2.21.1903211540180.1784@nanos.tec.linutronix.de commit e0ceeae708cebf22c990c3d703a4ca187dc837f5 Author: Pu Wen Date: Sat Mar 23 23:42:20 2019 +0800 x86/CPU/hygon: Fix phys_proc_id calculation logic for multi-die processors The Hygon family 18h multi-die processor platform supports 1, 2 or 4-Dies per socket. The topology looks like this: System View (with 1-Die 2-Socket): |------------| ------ ----- SOCKET0 | D0 | | D1 | SOCKET1 ------ ----- System View (with 2-Die 2-socket): -------------------- | -------------|------ | | | | ------------ ------------ SOCKET0 | D1 -- D0 | | D3 -- D2 | SOCKET1 ------------ ------------ System View (with 4-Die 2-Socket) : -------------------- | -------------|------ | | | | ------------ ------------ | D1 -- D0 | | D7 -- D6 | | | \/ | | | | \/ | | SOCKET0 | | /\ | | | | /\ | | SOCKET1 | D2 -- D3 | | D4 -- D5 | ------------ ------------ | | | | ------|------------| | -------------------- Currently phys_proc_id = initial_apicid >> bits calculates the physical processor ID from the initial_apicid by shifting *bits*. However, this does not work for 1-Die and 2-Die 2-socket systems. According to document [1] section 2.1.11.1, the bits is the value of CPUID_Fn80000008_ECX[12:15]. The possible values are 4, 5 or 6 which mean: 4 - 1 die 5 - 2 dies 6 - 3/4 dies. Hygon programs the initial ApicId the same way as AMD. The ApicId is read from CPUID_Fn00000001_EBX (see section 2.1.11.1 of referrence [1]) and the definition is as below (see section 2.1.10.2.1.3 of [1]): ------------------------------------------------- Bit | 6 | 5 4 | 3 | 2 1 0 | |-----------|---------|--------|----------------| IDs | Socket ID | Node ID | CCX ID | Core/Thread ID | ------------------------------------------------- So for 3/4-Die configurations, the bits variable is 6, which is the same as the ApicID definition field. For 1-Die and 2-Die configurations, bits is 4 or 5, which will cause the right shifted result to not be exactly the value of socket ID. However, the socket ID should be obtained from ApicId[6]. To fix the problem and match the ApicID field definition, set the shift bits to 6 for all Hygon family 18h multi-die CPUs. Because AMD doesn't have 2-Socket systems with 1-Die/2-Die processors (see reference [2]), this doesn't need to be changed on the AMD side but only for Hygon. References: [1] https://www.amd.com/system/files/TechDocs/54945_PPR_Family_17h_Models_00h-0Fh.pdf [2] https://www.amd.com/en/products/specifications/processors [bp: heavily massage commit message. ] Signed-off-by: Pu Wen Signed-off-by: Borislav Petkov Cc: H. Peter Anvin Cc: Ingo Molnar Cc: Thomas Gleixner Cc: Thomas Lendacky Cc: Yazen Ghannam Cc: x86-ml Link: https://lkml.kernel.org/r/1553355740-19999-1-git-send-email-puwen@hygon.cn commit e1e41b6ce5f9c1a80bf4f2404ec5ab11c6c5a2ad Author: Rasmus Villemoes Date: Mon Mar 18 20:55:56 2019 +0100 timekeeping: Consistently use unsigned int for seqcount snapshot The timekeeping code uses a random mix of "unsigned long" and "unsigned int" for the seqcount snapshots (ratio 14:12). Since the seqlock.h API is entirely based on unsigned int, use that throughout. Signed-off-by: Rasmus Villemoes Signed-off-by: Thomas Gleixner Cc: Frederic Weisbecker Cc: John Stultz Cc: Stephen Boyd Link: https://lkml.kernel.org/r/20190318195557.20773-1-linux@rasmusvillemoes.dk commit 1bd76ff448a91e35e451a96671b5594e3fffc4bd Author: Thor Thayer Date: Wed Mar 13 10:27:22 2019 -0500 EDAC, altera: Fix S10 Double Bit Error Notification Stratix10 Double Bit Error Address was always read from SDRAM Address register instead of each device's Address register. To determine which device had the DBE, cycle through the EDAC devices comparing the DBE value to the db_irq value. Once found, report the DBE Address from the device registers as well as the device name. Finally, notify the system via an SMC call and indicate the panic should result in a system reboot. Change a run-time check to a Stratix10 compile-time check for a clean SMC notification. Fixes: d5fc9125566c ("EDAC, altera: Combine Stratix10 and Arria10 probe functions") Signed-off-by: Thor Thayer Signed-off-by: Borislav Petkov Cc: James Morse Cc: Mauro Carvalho Chehab Cc: linux-edac Link: https://lkml.kernel.org/r/1552490842-25440-1-git-send-email-thor.thayer@linux.intel.com commit fe783516e3016652b74ac92fb8b3fc2b1c0e9d5b Author: Qiuxu Zhuo Date: Thu Mar 21 15:13:39 2019 -0700 EDAC, skx, i10nm: Make skx_common.c a pure library The following Kconfig constellations fail randconfig builds: CONFIG_ACPI_NFIT=y CONFIG_EDAC_DEBUG=y CONFIG_EDAC_SKX=m CONFIG_EDAC_I10NM=y or CONFIG_ACPI_NFIT=y CONFIG_EDAC_DEBUG=y CONFIG_EDAC_SKX=y CONFIG_EDAC_I10NM=m with: ... CC [M] drivers/edac/skx_common.o ... .../skx_common.o:.../skx_common.c:672: undefined reference to `__this_module' That is because if one of the two drivers - skx_edac or i10nm_edac - is built-in and the other one is a module, the shared file skx_common.c gets linked into a module object by kbuild. Therefore, when linking that same file into vmlinux, the '__this_module' symbol used in debugfs isn't defined, leading to the above error. Fix it by moving all debugfs code from skx_common.c to both skx_base.c and i10nm_base.c respectively. Thus, skx_common.c doesn't refer to the '__this_module' symbol anymore. Clarify skx_common.c's purpose at the top of the file for future reference, while at it. [ bp: Make text more readable. ] Fixes: d4dc89d069aa ("EDAC, i10nm: Add a driver for Intel 10nm server processors") Reported-by: Arnd Bergmann Signed-off-by: Qiuxu Zhuo Signed-off-by: Tony Luck Signed-off-by: Borislav Petkov Cc: James Morse Cc: Mauro Carvalho Chehab Cc: linux-edac Link: https://lkml.kernel.org/r/20190321221339.GA32323@agluck-desk commit 7df5e3db8f6354125540dfa50affd2c02b7d2832 Author: Peter Oskolkov Date: Fri Mar 22 16:40:19 2019 -0700 selftests: bpf: tc-bpf flow shaping with EDT Add a small test that shows how to shape a TCP flow in tc-bpf with EDT and ECN. Signed-off-by: Peter Oskolkov Signed-off-by: Alexei Starovoitov commit 315a202987dd2b2e0adebd13c83ceef44836e66f Author: Peter Oskolkov Date: Fri Mar 22 16:40:18 2019 -0700 bpf: make bpf_skb_ecn_set_ce callable from BPF_PROG_TYPE_SCHED_ACT This helper is useful if a bpf tc filter sets skb->tstamp. Signed-off-by: Peter Oskolkov Signed-off-by: Alexei Starovoitov commit 2297c33c19af6a90a03c5144836c2a088e74c7b3 Author: Jerome Brunet Date: Mon Mar 18 11:04:52 2019 +0100 arm64: dts: meson-g12a-sei510: add regulators Add some regulators. Still missing * VDD_EE (0.8V - PWM controlled) * VDD_CPU(PWM controlled) * VDDQ1_5 Signed-off-by: Jerome Brunet Signed-off-by: Neil Armstrong Acked-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit 0b7aed337ff0f4ff82c3d920a9d022a34c246b6f Author: Neil Armstrong Date: Mon Mar 18 11:04:50 2019 +0100 arm64: dts: meson-g12a-x96-max: add uart_AO pinctrl Add pinctrl on the always-enabled debug UART AO. Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit 51d215c14341a1e769828f9f1ff14f95c7ad35e3 Author: Neil Armstrong Date: Mon Mar 18 11:04:49 2019 +0100 arm64: dts: meson-g12a-sei510: add uart_AO pinctrl Add pinctrl on the always-enabled debug UART AO. Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit 638914212ace84264accaa41578cf80a18797d91 Author: Neil Armstrong Date: Mon Mar 18 11:04:48 2019 +0100 arm64: dts: meson-g12a-u200: add uart_AO pinctrl Add pinctrl on the always-enabled debug UART AO. Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit ff4f8b6cab5885ebc2c6b21fd058db8544e2eebb Author: Neil Armstrong Date: Mon Mar 18 10:58:48 2019 +0100 arm64: dts: meson: g12a: Add UART A, B & C nodes and pins This patch adds the 3 UART nodes in the EE power domain with the corresponding pinctrl nodes. Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit 7ab41c4741253f8f33a1af60b9839cfcd62ee455 Author: Jerome Brunet Date: Mon Mar 18 10:58:47 2019 +0100 arm64: dts: meson: g12a: add reset controller Add the reset controller device of g12a SoC family Signed-off-by: Jerome Brunet Reviewed-by: Martin Blumenstingl Signed-off-by: Neil Armstrong Signed-off-by: Kevin Hilman commit e92546c226ec16005994d2798c8ad6470bcda1b1 Author: Jerome Brunet Date: Mon Mar 18 10:58:46 2019 +0100 arm64: dts: meson: g12a: add uart_ao_a pinctrl Add the always on UART pinctrl setting to the g12a soc DT. Signed-off-by: Jerome Brunet Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit 11a7bea17c9e0a36daab934d83e15a760f402147 Author: Jerome Brunet Date: Mon Mar 18 10:58:45 2019 +0100 arm64: dts: meson: g12a: add pinctrl support controllers Add the peripheral and always-on pinctrl controllers to the g12a soc. Signed-off-by: Jerome Brunet Signed-off-by: Neil Armstrong Signed-off-by: Kevin Hilman commit b019f4a4199f865b054262ff78f606ca70f7b981 Author: Neil Armstrong Date: Mon Mar 18 10:58:44 2019 +0100 arm64: dts: meson: g12a: Add AO Clock + Reset Controller support Add nodes and properties for the AO Clocks and Resets. Signed-off-by: Neil Armstrong Signed-off-by: Jerome Brunet Signed-off-by: Kevin Hilman commit 629a002568a0cffda2541c43084643a7892f0ab0 Merge: f6827526279d 75a1a9fa2e20 Author: Alexei Starovoitov Date: Fri Mar 22 13:52:45 2019 -0700 Merge branch 'bpf-tc-tunneling' Willem de Bruijn says: ==================== BPF allows for dynamic tunneling, choosing the tunnel destination and features on-demand. Extend bpf_skb_adjust_room to allow for efficient tunneling at the TC hooks. Most features are required for large packets with GSO, as these will be modified after this patch. Patch 1 is a performance optimization, avoiding an unnecessary unclone for the TCP hot path. Patches 2..6 introduce a regression test. These can be squashed, but the code is arguably more readable when gradually expanding the feature set. Patch 7 is a performance optimization, avoid copying network headers that are going to be overwritten. This also simplifies the bpf program. Patch 8 reenables bpf_skb_adjust_room for UDP packets. Patch 9 configures skb tunneling metadata analogous to tunnel devices. Patches 10..13 expand the regression test to make use of the new features and enable the GSO testcases. Changes v1->v2 - move BPF_F_ADJ_ROOM_MASK out of uapi as it can be expanded - document new flags - in tests replace netcat -q flag with coreutils timeout: the -q flag is not supported in all netcat versions v2->v3 - move BPF_F_ADJ_ROOM_ENCAP_L3_MASK out of uapi as it has no use in userspace ==================== Signed-off-by: Alexei Starovoitov commit 75a1a9fa2e20de6319a19161ce4e2e1817d70e28 Author: Willem de Bruijn Date: Fri Mar 22 14:33:00 2019 -0400 selftests/bpf: convert bpf tunnel test to encap modes Make the tests correctly annotate skbs with tunnel metadata. This makes the gso tests succeed. Enable them. Signed-off-by: Willem de Bruijn Signed-off-by: Alexei Starovoitov commit 94f16813e1b297d31f8fe6217cd9be19e080f998 Author: Willem de Bruijn Date: Fri Mar 22 14:32:59 2019 -0400 selftests/bpf: convert bpf tunnel test to BPF_F_ADJ_ROOM_FIXED_GSO Lower route MTU to ensure packets fit in device MTU after encap, then skip the gso_size changes. Signed-off-by: Willem de Bruijn Signed-off-by: Alexei Starovoitov commit 005edd16562b78f416e2f576a64789c90d96882f Author: Willem de Bruijn Date: Fri Mar 22 14:32:58 2019 -0400 selftests/bpf: convert bpf tunnel test to BPF_ADJ_ROOM_MAC Avoid moving the network layer header when prefixing tunnel headers. This avoids an explicit call to bpf_skb_store_bytes and an implicit move of the network header bytes in bpf_skb_adjust_room. Signed-off-by: Willem de Bruijn Signed-off-by: Alexei Starovoitov commit 6c408decbdc8a12a12a93c4d763cbc2a264f9332 Author: Willem de Bruijn Date: Fri Mar 22 14:32:57 2019 -0400 bpf: Sync bpf.h to tools Sync include/uapi/linux/bpf.h with tools/ Changes v1->v2: - BPF_F_ADJ_ROOM_MASK moved, no longer in this commit v2->v3: - BPF_F_ADJ_ROOM_ENCAP_L3_MASK moved, no longer in this commit Signed-off-by: Willem de Bruijn Signed-off-by: Alexei Starovoitov commit 868d523535c2d00b696753ece606e641a816e91e Author: Willem de Bruijn Date: Fri Mar 22 14:32:56 2019 -0400 bpf: add bpf_skb_adjust_room encap flags When pushing tunnel headers, annotate skbs in the same way as tunnel devices. For GSO packets, the network stack requires certain fields set to segment packets with tunnel headers. gro_gse_segment depends on transport and inner mac header, for instance. Add an option to pass this information. Remove the restriction on len_diff to network header length, which is too short, e.g., for GRE protocols. Changes v1->v2: - document new flags - BPF_F_ADJ_ROOM_MASK moved v2->v3: - BPF_F_ADJ_ROOM_ENCAP_L3_MASK moved Signed-off-by: Willem de Bruijn Signed-off-by: Alexei Starovoitov commit 2278f6cc151a8bef6ba0b3fe3009d14dc3c51c4a Author: Willem de Bruijn Date: Fri Mar 22 14:32:55 2019 -0400 bpf: add bpf_skb_adjust_room flag BPF_F_ADJ_ROOM_FIXED_GSO bpf_skb_adjust_room adjusts gso_size of gso packets to account for the pushed or popped header room. This is not allowed with UDP, where gso_size delineates datagrams. Add an option to avoid these updates and allow this call for datagrams. It can also be used with TCP, when MSS is known to allow headroom, e.g., through MSS clamping or route MTU. Changes v1->v2: - document flag BPF_F_ADJ_ROOM_FIXED_GSO - do not expose BPF_F_ADJ_ROOM_MASK through uapi, as it may change. Link: https://patchwork.ozlabs.org/patch/1052497/ Signed-off-by: Willem de Bruijn Signed-off-by: Alexei Starovoitov commit 14aa31929b724b70fb63a9b0e7877da325b25cfe Author: Willem de Bruijn Date: Fri Mar 22 14:32:54 2019 -0400 bpf: add bpf_skb_adjust_room mode BPF_ADJ_ROOM_MAC bpf_skb_adjust_room net allows inserting room in an skb. Existing mode BPF_ADJ_ROOM_NET inserts room after the network header by pulling the skb, moving the network header forward and zeroing the new space. Add new mode BPF_ADJUST_ROOM_MAC that inserts room after the mac header. This allows inserting tunnel headers in front of the network header without having to recreate the network header in the original space, avoiding two copies. Signed-off-by: Willem de Bruijn Signed-off-by: Alexei Starovoitov commit 8142958954d17a31e0ac9e3a9c91103a1c171179 Author: Willem de Bruijn Date: Fri Mar 22 14:32:53 2019 -0400 selftests/bpf: extend bpf tunnel test with tso Segmentation offload takes a longer path. Verify that the feature works with large packets. The test succeeds if not setting dodgy in bpf_skb_adjust_room, as veth TSO is permissive. If not setting SKB_GSO_DODGY, this enables tunneled TSO offload on supporting NICs. The feature sets SKB_GSO_DODGY because the caller is untrusted. As a result the packets traverse through the gso stack at least up to TCP. And fail the gso_type validation, such as the skb->encapsulation check in gre_gso_segment and the gso_type checks introduced in commit 418e897e0716 ("gso: validate gso_type on ipip style tunnel"). This will be addressed in a follow-on feature patch. In the meantime, disable the new gso tests. Changes v1->v2: - not all netcat versions support flag '-q', use timeout instead Signed-off-by: Willem de Bruijn Signed-off-by: Alexei Starovoitov commit 7255fade7b93e7e84e12f27ae5e8af9cf8b93745 Author: Willem de Bruijn Date: Fri Mar 22 14:32:52 2019 -0400 selftests/bpf: extend bpf tunnel test with gre GRE is a commonly used protocol. Add GRE cases for both IPv4 and IPv6. It also inserts different sized headers, which can expose some unexpected edge cases. Signed-off-by: Willem de Bruijn Signed-off-by: Alexei Starovoitov commit ef81bd054942e2bd8289c91a3528e6fc0ca26c1c Author: Willem de Bruijn Date: Fri Mar 22 14:32:51 2019 -0400 selftests/bpf: expand bpf tunnel test to ipv6 The test only uses ipv4 so far, expand to ipv6. This is mostly a boilerplate near copy of the ipv4 path. Signed-off-by: Willem de Bruijn Signed-off-by: Alexei Starovoitov commit ccd34cd3577dd6e244269bb8ccfab228360aa53d Author: Willem de Bruijn Date: Fri Mar 22 14:32:50 2019 -0400 selftests/bpf: expand bpf tunnel test with decap The bpf tunnel test encapsulates using bpf, then decapsulates using a standard tunnel device to verify correctness. Once encap is verified, also test decap, by replacing the tunnel device on decap with another bpf program. Signed-off-by: Willem de Bruijn Signed-off-by: Alexei Starovoitov commit 98cdabcd0798bd9991821493120b928ed0dfab73 Author: Willem de Bruijn Date: Fri Mar 22 14:32:49 2019 -0400 selftests/bpf: bpf tunnel encap test Validate basic tunnel encapsulation using ipip. Set up two namespaces connected by veth. Connect a client and server. Do this with and without bpf encap. Signed-off-by: Willem de Bruijn Signed-off-by: Alexei Starovoitov commit 908adce6465394ea4a09c144507a40848e1d7db5 Author: Willem de Bruijn Date: Fri Mar 22 14:32:48 2019 -0400 bpf: in bpf_skb_adjust_room avoid copy in tx fast path bpf_skb_adjust_room calls skb_cow on grow. This expensive operation can be avoided in the fast path when the only other clone has released the header. This is the common case for TCP, where one headerless clone is kept on the retransmit queue. It is safe to do so even when touching the gso fields in skb_shinfo. Regular tunnel encap with iptunnel_handle_offloads takes the same optimization. The tcp stack unclones in the unlikely case that it accesses these fields through headerless clones packets on the retransmit queue (see __tcp_retransmit_skb). If any other clones are present, e.g., from packet sockets, skb_cow_head returns the same value as skb_cow(). Signed-off-by: Willem de Bruijn Signed-off-by: Alexei Starovoitov commit c72c4cde8095aa0e4336cb337dac25d6e347240d Author: YueHaibing Date: Fri Mar 22 22:04:00 2019 +0800 selinux: Make selinux_kernfs_init_security static Fix sparse warning: security/selinux/hooks.c:3389:5: warning: symbol 'selinux_kernfs_init_security' was not declared. Should it be static? Signed-off-by: YueHaibing Acked-by: Ondrej Mosnacek Signed-off-by: Paul Moore commit 4b225248daddfe6a48529963a45184a15be83781 Author: Anusha Srivatsa Date: Fri Mar 22 10:58:47 2019 -0700 drm/i915/ehl: Add Support for DMC on EHL EHL uses the same firmware as ICL. Cc: Bob Paauwe Signed-off-by: Anusha Srivatsa Signed-off-by: Rodrigo Vivi Reviewed-by: Lucas De Marchi Reviewed-by: Bob Paauwe Reviewed-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190322175847.25707-6-rodrigo.vivi@intel.com commit 9b7598a99ab4bbc09a4691b06d79fc21210fb22c Author: Bob Paauwe Date: Fri Mar 22 10:58:46 2019 -0700 drm/i915/ehl: Set proper eu slice/subslice parameters for EHL EHL has a different number of subslices. Cc: Lucas De Marchi Signed-off-by: Bob Paauwe Signed-off-by: Rodrigo Vivi Reviewed-by: Lucas De Marchi Reviewed-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190322175847.25707-5-rodrigo.vivi@intel.com commit 759c9ab55b5bf315be79e57f6ea32640d183e5a3 Author: Bob Paauwe Date: Fri Mar 22 10:58:45 2019 -0700 drm/i915/ehl: EHL outputs are different from ICL Configure the correct set of outputs for EHL. EHL has three DDI's plus DSI. Cc: Lucas De Marchi Signed-off-by: Bob Paauwe Signed-off-by: Rodrigo Vivi Reviewed-by: Lucas De Marchi Reviewed-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190322175847.25707-4-rodrigo.vivi@intel.com commit e547f2a2fc1349b97117d6cd7f157220063e083e Author: Lucas De Marchi Date: Fri Mar 22 10:58:44 2019 -0700 drm/i915/ehl: Add dpll mgr Elkhart Lake has a different set of PLLs as compared to Ice Lake, although programming them is very similar. v2: Rebase on top of s/icl_pll_funcs/combo_pll_funcs Signed-off-by: Lucas De Marchi Signed-off-by: Rodrigo Vivi Reviewed-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190322175847.25707-3-rodrigo.vivi@intel.com commit 897f296152c704ef64163c49d94a6e086de1c31a Author: Bob Paauwe Date: Fri Mar 22 10:58:43 2019 -0700 drm/i915/ehl: Add ElkhartLake platform Add ElkhartLake as a unique platform as there are some differences between it and Icelake. Signed-off-by: Bob Paauwe Signed-off-by: Rodrigo Vivi Reviewed-by: Lucas De Marchi Reviewed-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190322175847.25707-2-rodrigo.vivi@intel.com commit 29f3863d33d1e2ad6c87fe64a61538041bd965bd Author: James Ausmus Date: Fri Mar 22 10:58:42 2019 -0700 drm/i915/ehl: Add EHL platform info and PCI IDs Add known EHL PCI IDs. v2 (Rodrigo): Removed x86 early quirk. To be sent in a separated patch cc'ing the appropriated list and maintainers for proper ack. v3: (Rodrigo): - Removed .num_pipes = 3 that is coming since GEN&_FEATURES. - Added ppgtt type and size after rework from Bob and Chris v4: (Rodrigo): - remove ppgtt type added on v3. Jose pointed it is not needed. Cc: Bob Paauwe Cc: Chris Wilson Cc: José Roberto de Souza Signed-off-by: James Ausmus Signed-off-by: Rodrigo Vivi Reviewed-by: Bob Paauwe Reviewed-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190322175847.25707-1-rodrigo.vivi@intel.com commit 76b496b1bd79bcd669cd7411e80e09512dc6707f Author: Eli Britstein Date: Thu Mar 21 15:51:42 2019 -0700 net/mlx5e: Replace TC VLAN pop and push actions with VLAN modify Changing the VLAN header may be implemented by pop the existing header and push a new one. Translate those operations as VLAN modify. Applicable for use cases such as OVS where the controller translates a vlan modify meta (OF) rule to DP pop+push actions rule. Signed-off-by: Eli Britstein Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit bdc837eecf73c391f5a9f97b5b61e6a1f30cf31f Author: Eli Britstein Date: Thu Mar 21 15:51:41 2019 -0700 net/mlx5e: Support VLAN modify action Support VLAN modify action by emulating a rewrite action for the VLAN fields. Currently, the only supported field is the vid. The prio in the action must be set to 0 to indicate no change. Signed-off-by: Eli Britstein Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit 0eb69bb9962973f4852bb35b8151332c98741770 Author: Eli Britstein Date: Thu Mar 21 15:51:40 2019 -0700 net/mlx5e: Add VLAN ID rewrite fields Add VLAN ID rewrite fields as a pre-step to support this rewrite. Signed-off-by: Eli Britstein Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit bea964107fa78ffe484ef8659ecc26f9ae2bcd2f Author: Moshe Shemesh Date: Thu Mar 21 15:51:39 2019 -0700 net: Add IANA_VXLAN_UDP_PORT definition to vxlan header file Added IANA_VXLAN_UDP_PORT (4789) definition to vxlan header file so it can be used by drivers instead of local definition. Updated drivers which locally defined it as 4789 to use it. Signed-off-by: Moshe Shemesh Reviewed-by: Or Gerlitz Cc: John Hurley Cc: Jakub Kicinski Cc: Yunsheng Lin Cc: Peng Li Reviewed-by: Tariq Toukan Acked-by: Jakub Kicinski Signed-off-by: Saeed Mahameed commit e3cfc7e6b7bd59e4ce244deedbad4d1b7a609415 Author: Moshe Shemesh Date: Thu Mar 21 15:51:38 2019 -0700 net/mlx5e: TX, Add geneve tunnel stateless offload support Currently support only default geneve udp port (6081). For the tx side, the HW is assisted by SW parsing, which sets the headers offset to offload tunneled LSO and csum. Note that for udp tunnels, we don't use special rx offloads, as rss on the outer headers is enough, we support checksum complete and GRO takes care of aggregation. Geneve TSO BW and CPU load results (tested using iperf single tcp stream). In this patch we add TSO support over Geneve, so the "before" result doesn't actually get to using the TSO HW offload even when turned on. Tested on ConnectX-5, Intel(R) Xeon(R) CPU E5-2660 v2 @2.20GHz. __________________________________ | Before | After | |________________|_________________| | 12.6 Gbits/sec | 21.7 Gbits/sec | | 100% CPU load | 61.5% CPU load | |________________|_________________| Signed-off-by: Moshe Shemesh Acked-by: Or Gerlitz Signed-off-by: Saeed Mahameed commit cac018b8c7ee8510b00d0d2ffdaef5c38c34129b Author: Moshe Shemesh Date: Thu Mar 21 15:51:37 2019 -0700 net/mlx5e: Take SW parser code to a separate function Refactor mlx5e_ipsec_set_swp() code, split the part which sets the eseg software parser (SWP) offsets and flags, so it can be used in a downstream patch by other mlx5e functionality which needs to set eseg SWP. The new function mlx5e_set_eseg_swp() is useful for setting swp for both outer and inner headers. It also handles the special ipsec case of xfrm mode transfer. Signed-off-by: Moshe Shemesh Signed-off-by: Saeed Mahameed commit 974eff2b5793eeaa2eb433bca7eba9640d890c4a Author: Moshe Shemesh Date: Thu Mar 21 15:51:36 2019 -0700 net: Move the definition of the default Geneve udp port to public header file Move the definition of the default Geneve udp port from the geneve source to the header file, so we can re-use it from drivers. Modify existing drivers to use it. Signed-off-by: Moshe Shemesh Reviewed-by: Or Gerlitz Cc: John Hurley Cc: Jakub Kicinski Reviewed-by: Tariq Toukan Acked-by: Jakub Kicinski Signed-off-by: Saeed Mahameed commit bdde9311499491fb75fd1880e4789cf7e60cd691 Author: Gustavo A. R. Silva Date: Thu Mar 21 15:51:34 2019 -0700 net/mlx5e: Remove redundant assignment Remove redundant assignment to tun_entropy->enabled. Addesses-Coverity-ID: 1477328 ("Unused value") Fixes: 97417f6182f8 ("net/mlx5e: Fix GRE key by controlling port tunnel entropy calculation") Signed-off-by: Gustavo A. R. Silva Reviewed-by: Roi Dayan Reviewed-by: Eli Britstein Acked-by: Leon Romanovsky Acked-by: Saeed Mahameed Signed-off-by: Saeed Mahameed commit ee576ec1c1c66ec1cd0c4735bb12bc08f675f530 Author: Saeed Mahameed Date: Thu Mar 21 15:51:33 2019 -0700 net/mlx5e: Fix compilation warning in en_tc.c Amazingly a mlx5e_tc function is being called from the eswitch layer, which is by itself very terrible! The function was declared locally in eswitch_offloads.c so it could be used there, which caused the following compilation warning, fix that. drivers/.../mlx5/core/en_tc.c:3242:6: [-Werror=missing-prototypes] error: no previous prototype for ‘mlx5e_tc_clean_fdb_peer_flows’ Fixes: 04de7dda7394 ("net/mlx5e: Infrastructure for duplicated offloading of TC flows") Reviewed-by: Roi Dayan Signed-off-by: Saeed Mahameed commit d3669ca9ff33e1dc6414d1e34891d342e4544e71 Author: Saeed Mahameed Date: Thu Mar 21 15:51:32 2019 -0700 net/mlx5e: Fix port buffer function documentation format This patch fixes compiler warnings: In drivers/.../mlx5/core/en/port_buffer.c:190: warning: Function parameter or member 'pfc_en' not described... ... warning: Function parameter or member 'change' not described... Fixes: 0696d60853d5 ("net/mlx5e: Receive buffer configuration") Reviewed-by: Eran Ben Elisha Signed-off-by: Saeed Mahameed commit 092ead48290b43afe5d548797c73b179dbaf6523 Author: Saeed Mahameed Date: Thu Mar 21 15:51:31 2019 -0700 net/mlx5: Fix compilation warning in eq.c mlx5_eq_table_get_rmap is being used only when CONFIG_RFS_ACCEL is enabled, this patch fixes the below warning when CONFIG_RFS_ACCEL is disabled. drivers/.../mlx5/core/eq.c:903:18: [-Werror=missing-prototypes] error: no previous prototype for ‘mlx5_eq_table_get_rmap’ Fixes: f2f3df550139 ("net/mlx5: EQ, Privatize eq_table and friends") Signed-off-by: Saeed Mahameed commit eb5cc431f17bc7a656c9290743d1809ac43c1c47 Author: Parav Pandit Date: Thu Mar 21 15:51:30 2019 -0700 net/mlx5: Simplify mlx5_sriov_is_enabled() by using pci core API It is desired to get rid of num_vfs stored inside mlx5_core_sriov to safely support vports more than vfs. To reduce dependency on mlx5_core_sriov num_vfs, start using pci_num_vf() from pci core. Signed-off-by: Parav Pandit Reviewed-by: Bodong Wang Signed-off-by: Saeed Mahameed commit 2aca178760288936b8b3030ca83fa53082948736 Author: Parav Pandit Date: Thu Mar 21 15:51:29 2019 -0700 net/mlx5: Rename total_vfs to total_vports Macro MLX5_TOTAL_VPORTS() returns total number of vports. Therefore, rename variable total_vfs to total_vports to improve code readability. Signed-off-by: Parav Pandit Reviewed-by: Bodong Wang Signed-off-by: Saeed Mahameed commit 88d73849e9737983c20403fe5425e3605196fab2 Author: Parav Pandit Date: Thu Mar 21 15:51:28 2019 -0700 net/mlx5: Simplify sriov enable/disable flow Simplify sriov enable/disable flow for below two checks. 1. PCI core driver allows sriov configuration only on a PF. This is done in drivers/pci/pci-sysfs.c sriov_attrs_are_visible(). 2. PCI core driver allow sriov enablement if the sriov is currently disabled for for a PF. This is done in drivers/pci/pci-sysfs.c sriov_numvfs_store(). Hence there is no need for mlx5 driver to duplicate such checks. Signed-off-by: Parav Pandit Reviewed-by: Bodong Wang Signed-off-by: Saeed Mahameed commit 35d0a06dad2220d62042fd1a91a216d17744e724 Author: Bjorn Helgaas Date: Mon Feb 4 14:50:14 2019 -0600 PCI: Cleanup register definition width and whitespace Follow the file conventions of: - register offsets not indented - fields within a register indented one space - field masks use same width as register - register field values indented an additional space No functional change intended. Signed-off-by: Bjorn Helgaas commit abf1aae8259e7f24dc88ebba4a5df1f8fd72f7c8 Author: Ville Syrjälä Date: Thu Mar 21 15:24:46 2019 +0200 drm/i915: Clean up EDID downclock mode lookup Rename intel_find_panel_downclock() to intel_panel_edid_downclock_mode() to make it clear it's looking for the downclock mode in the EDID. And while at it polish the implementation a bit as well. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190321132446.22394-6-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson Acked-by: Jani Nikula commit 9f6fbe22be90b73ea98a71ecca3599bac5189734 Author: Ville Syrjälä Date: Thu Mar 21 15:24:45 2019 +0200 drm/i915: Stop hand rolling drm_mode_match() Utilize drm_mode_match() instead of hand rolling it when looking for the DRRS downclock mode. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190321132446.22394-5-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson Acked-by: Jani Nikula commit dee2370ce3d1541cf959f1d96cef08d05eaef693 Author: Ville Syrjälä Date: Thu Mar 21 15:24:44 2019 +0200 drm/i915: Adjust DSI fixed mode handling DSI has its own convoluted way of grabbing the fixed mode from the VBT. Change it to follow the path laid out by LVDS/eDP. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190321132446.22394-4-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson Acked-by: Jani Nikula commit 325710d3d4a3474d3cdad404c84056f7e98353b6 Author: Ville Syrjälä Date: Thu Mar 21 15:24:43 2019 +0200 drm/i915: Refactor VBT fixed mode handling LVDS and eDP have essentially the same code for grabbing the fixed mode from VBT. Pull that code to a common location. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190321132446.22394-3-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson Acked-by: Jani Nikula commit 8f49673ef919e828cf66c23d9c73c1d50e56610a Author: Ville Syrjälä Date: Thu Mar 21 15:24:42 2019 +0200 drm/i915: Pick the first mode from EDID as the fixed mode when there is no preferred mode Some monitors apparently forget to mark any mode as preferred in the EDID. In this particular case we have a very generic looking ID "PNP Model 0 Serial Number 4" / "LVDS 800x600" so a specific quirk doesn't seem particularly wise. Also the quirk we have (EDID_QUIRK_FIRST_DETAILED_PREFERRED) is actually defunct so we'd have to fix it first. When there is no preferred mode we currently fall back to the VBT. That approach fails us here as the VBT mode is 1024x768 whereas the panel resolution is 800x600. So instead of falling back to the VBT when there is no preferred mode let's just pick the first probed mode. Only if the EDID provided no modes we fall back to the VBT. For this machine the VBIOS would appear to select the 800x600 60Hz EST mode rather than the first detailed mode (which is the new fallback will pick). The two modes differ only by having opposite sync polarities, which does not seem to matter to the panel in question. v2: Make sure the probed_modes list is not empty Cc: Adam Jackson Cc: Roberto Viola Tested-by: Roberto Viola Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109780 Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190321132446.22394-2-ville.syrjala@linux.intel.com Reviewed-by: Adam Jackson Acked-by: Jani Nikula commit 0dc927eb9496ca5dfcde476f00c23b2283f8a5e2 Author: Ville Syrjälä Date: Thu Mar 21 15:24:41 2019 +0200 drm/i915: Refactor EDID fixed mode search Both LVDS and eDP have the same code to look up the preferred mode from the connector probed_modes list. Move the code to a common location. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190321132446.22394-1-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson Acked-by: Jani Nikula commit 6086e47b35e1a25df31842a49971c277cd84af8f Author: Ville Syrjälä Date: Thu Mar 21 19:51:28 2019 +0200 drm/i915: Really calculate the cursor ddb based on the highest enabled wm level I added the loop but neglected to actually pass the level to the function. So we were just looping 8 times calculating the exact same thing every time. Fixes: df331de3f8aa ("drm/i915: Allocate enough DDB for the cursor") Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190321175128.32178-1-ville.syrjala@linux.intel.com Reviewed-by: Rodrigo Vivi commit 6e4484ee354872ecdc8dfa3e239c710cb5b7b7c5 Author: Bartosz Golaszewski Date: Wed Mar 13 11:37:17 2019 +0100 gpio: mockup: move the driver out of the IOMEM drivers section The testing driver doesn't really depend on HAS_IOMEM. We may want to build it for testing purposes on architectures not supporting IOMEM, for example: on user-mode linux. Move it out of the "Memory Mapped GPIO drivers" section. Signed-off-by: Bartosz Golaszewski commit 6ada2f2269ce338d9ae1ae739ec58377dccfc2a3 Author: Bartosz Golaszewski Date: Wed Mar 13 11:24:59 2019 +0100 gpio: mockup: drop unneeded dependencies from Kconfig The testing module doesn't need GPIO irqchip nor does it depend on sysfs. Remove unnecessary dependencies from Kconfig. Signed-off-by: Bartosz Golaszewski commit 932002f0028f1ada0f1948219f57b6cf7295ec24 Author: Geert Uytterhoeven Date: Thu Mar 21 10:21:45 2019 +0100 gpio: pca953x: Add support for CAT9554 The ON Semiconductor CAT9554 is a variant of the PCA953x GPIO expander, with 8 GPIOs and interrupt functionality. Signed-off-by: Geert Uytterhoeven Signed-off-by: Bartosz Golaszewski commit 5c9f8cfe3cb67dcbf3e38a2b64c887200e363376 Author: Geert Uytterhoeven Date: Thu Mar 21 10:21:44 2019 +0100 dt-bindings: gpio: pca953x: Document onnn,cat9554 The ON Semiconductor CAT9554 is a variant of the PCA953x GPIO expander, with 8 GPIOs and interrupt functionality. Signed-off-by: Geert Uytterhoeven Signed-off-by: Bartosz Golaszewski commit f1ef73f50b3ef097569b9bccb66a7b09955ce049 Author: Akeem G Abodunrin Date: Tue Feb 26 16:35:19 2019 -0800 ice: Get VF VSI instances directly via PF This patch changes how we get VF VSIs instances. Instead of relying on mailbox virtual channel message to retrieve VSI, it is more reliable getting it directly via VF object in PF data structure. Signed-off-by: Akeem G Abodunrin Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit d84b899a946ea590355ab5f9ce13f56767ec312d Author: Akeem G Abodunrin Date: Tue Feb 26 16:35:18 2019 -0800 ice: Don't let VF know that it is untrusted Don't let the VF know it's not trusted when it tries to add more than permitted additional MAC addresses. Signed-off-by: Akeem G Abodunrin Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 26069b448e2db6d3e03ae9dd1f468447794f62fd Author: Yashaswini Raghuram Prathivadi Bhayankaram Date: Tue Feb 26 16:35:17 2019 -0800 ice: Set LAN_EN for all directional rules The LAN_EN bit for a switch rule determines if the packet can go out on the wire or not. Set the LAN_EN flag in the switch action for all directional rules. Signed-off-by: Yashaswini Raghuram Prathivadi Bhayankaram Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit b58dafbc6f1089942c1e74b8ab9c616fe06dbfac Author: Christopher N Bednarz Date: Tue Feb 26 16:35:16 2019 -0800 ice: Do not set LB_EN for prune switch rules LB_EN for prune switch rules was causing all TX traffic to loopback to the internal switch and dropped. When running bi-directional stress workloads with RDMA the RDPU would hang blocking tx and rx traffic. Signed-off-by: Christopher N Bednarz Reviewed-by: Bruce Allan Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 277b3a4547b8afbbecdfc52fe7217f018de26c21 Author: Yashaswini Raghuram Prathivadi Bhayankaram Date: Tue Feb 26 16:35:15 2019 -0800 ice: Enable LAN_EN for the right recipes In VEB mode, enable LAN_EN bit in the action fields for filter rules corresponding to the right recipes. Signed-off-by: Yashaswini Raghuram Prathivadi Bhayankaram Reviewed-by: Bruce Allan Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 5eda8afd6bcc89d4e4aa5d56b5f54276f63158ae Author: Akeem G Abodunrin Date: Tue Feb 26 16:35:14 2019 -0800 ice: Add support for PF/VF promiscuous mode Implement support for VF promiscuous mode, MAC/VLAN/MAC_VLAN and PF multicast MAC/VLAN/MAC_VLAN promiscuous mode. Signed-off-by: Akeem G Abodunrin Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit e1ca65a3cceacc94dd9cde388016422ca2e15a54 Author: Victor Raj Date: Tue Feb 26 16:35:13 2019 -0800 ice: code cleanup in ice_sched.c This patch does some clean up in the Tx scheduler code: 1. Adjust the stack variable usage 2. Modify the debug prints to display the FW error 3. Add additional debug prints while adding/removing VSIs Signed-off-by: Victor Raj Reviewed-by: Bruce Allan Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit eb86b0949183c5005ed33e57788d05d90bb72a5a Author: Anirudh Venkataramanan Date: Tue Feb 26 16:35:12 2019 -0800 ice: Remove unused vsi_id field Remove unused vsi_id field from struct ice_sched_vsi_info. Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit c8b7abdd7d8e4696d5ffa25cebaa82931e0e39b3 Author: Bruce Allan Date: Tue Feb 26 16:35:11 2019 -0800 ice: fix some function prototype and signature style issues Put the return type on a separate line for function prototypes and signatures that would exceed the 80-character limit if both were on the same line. Signed-off-by: Bruce Allan Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 60dcc39ea338dbc9d33dad8f788320950f85e0f3 Author: Kiran Patil Date: Tue Feb 26 16:35:10 2019 -0800 ice: fix the divide by zero issue Static analysis flagged a potential divide by zero error because vsi->num_rxq can become zero in certain condition and it is used as divisor. Signed-off-by: Kiran Patil Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 5743020d37d7e92c24c0a5d506989bdfacfddde4 Author: Akeem G Abodunrin Date: Tue Feb 26 16:35:09 2019 -0800 ice: Fix issue reconfiguring VF queues When VF requested for queues changes, we need to update LAN Tx queue with correct number of VF queue pairs and re-allocate VF resources based on this new requested number of queues, which is constraint within maximum queue supported per VF. Signed-off-by: Akeem G Abodunrin Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 23d21c3dbbe10eb71017ebeb51fd620aa9ec8c2f Author: Anirudh Venkataramanan Date: Tue Feb 26 16:35:08 2019 -0800 ice: Remove unused function prototype Commit 7c710869d64e ("ice: Add handlers for VF netdevice operations") seems to have inadvertently introduced a function prototype for ice_set_vf_bw that isn't implemented. Remove it. Fixes: 7c710869d64e ("ice: Add handlers for VF netdevice operations") Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 1b5c19c7796c3aa13505a48a1242d32f36c7bc0b Author: Bruce Allan Date: Tue Feb 26 16:35:07 2019 -0800 ice: fix static analysis warnings cppcheck warns "Identical condition '', second condition is always false". Fix them. Signed-off-by: Bruce Allan Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 7eeac889769ae96dbeb2209b816e14b12e0f9f6f Author: Akeem G Abodunrin Date: Fri Feb 8 12:51:01 2019 -0800 ice: Fix issue reclaiming resources back to the pool after reset This patch fixes issue reclaiming VF resources back to the pool after reset - Since we only allocate HW vector for all VFs and track together with resources allocation for PF with ice_search_res, we need to free VFs resources separately, using first VF vector index to traverse the list. Otherwise tracker starts from the last assigned vectors list and causes maximum supported number of HW vectors, 1024 to be exhausted, depending on the number of VFs enabled, which causes a lot of unwanted issues, and failed to reassign vectors for VFs. Signed-off-by: Akeem G Abodunrin Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit cb93a9529de8428f4b0bc76f6e6dced382712bcd Author: Akeem G Abodunrin Date: Fri Feb 8 12:51:00 2019 -0800 ice: Enable MAC anti-spoof by default This patch enables MAC anti-spoof by default, with creation of VF VSIs or when the VF VSIs are being re-initialized. Signed-off-by: Akeem G Abodunrin Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit a5fdd713d256887b5f012608701149fa939e5645 Author: Arnd Bergmann Date: Fri Mar 22 15:19:16 2019 +0100 jfs: fix bogus variable self-initialization A statement was originally added in 2006 to shut up a gcc warning, now but now clang warns about it: fs/jfs/jfs_txnmgr.c:1932:15: error: variable 'pxd' is uninitialized when used within its own initialization [-Werror,-Wuninitialized] pxd_t pxd = pxd; /* truncated extent of xad */ ~~~ ^~~ Modern versions of gcc are fine without the silly assignment, so just drop it. Tested with gcc-4.6 (released 2011), 4.7, 4.8, and 4.9. Fixes: c9e3ad6021e5 ("JFS: Get rid of "may be used uninitialized" warnings") Signed-off-by: Arnd Bergmann Signed-off-by: Dave Kleikamp commit 3b0f31f2b8c9fb348e4530b88f6b64f9621f83d6 Author: Johannes Berg Date: Thu Mar 21 22:51:02 2019 +0100 genetlink: make policy common to family Since maxattr is common, the policy can't really differ sanely, so make it common as well. The only user that did in fact manage to make a non-common policy is taskstats, which has to be really careful about it (since it's still using a common maxattr!). This is no longer supported, but we can fake it using pre_doit. This reduces the size of e.g. nl80211.o (which has lots of commands): text data bss dec hex filename 398745 14323 2240 415308 6564c net/wireless/nl80211.o (before) 397913 14331 2240 414484 65314 net/wireless/nl80211.o (after) -------------------------------- -832 +8 0 -824 Which is obviously just 8 bytes for each command, and an added 8 bytes for the new policy pointer. I'm not sure why the ops list is counted as .text though. Most of the code transformations were done using the following spatch: @ops@ identifier OPS; expression POLICY; @@ struct genl_ops OPS[] = { ..., { - .policy = POLICY, }, ... }; @@ identifier ops.OPS; expression ops.POLICY; identifier fam; expression M; @@ struct genl_family fam = { .ops = OPS, .maxattr = M, + .policy = POLICY, ... }; This also gets rid of devlink_nl_cmd_region_read_dumpit() accessing the cb->data as ops, which we want to change in a later genl patch. Signed-off-by: Johannes Berg Signed-off-by: David S. Miller commit 601ed4d6dc3a779a31af6376488a988abccfac37 Author: Heiner Kallweit Date: Thu Mar 21 21:41:48 2019 +0100 r8169: use netif_start_queue instead of netif_wake_qeueue in rtl8169_start_xmit Replace the call to netif_wake_queue in rtl8169_start_xmit with netif_start_queue as we don't need to actually wake up the queue since we are still in mid transmit so we just need to reset the bit so it doesn't prevent the next transmit. (Description shamelessly copied from a mail sent by Alex.) Suggested-by: Alexander Duyck Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 110a2432c5203d62e5df31180aa0cbd21ea76f82 Author: Heiner Kallweit Date: Thu Mar 21 21:08:35 2019 +0100 net: phy: aquantia: add downshift support Aquantia PHY's of the AQR107 family support the downshift feature. Add support for it as standard PHY tunable so that it can be controlled via ethtool. The AQCS109 supports a proprietary 2-pair 1Gbps mode. If two such PHY's are connected to each other with a 2-pair cable, they may not be able to establish a link if both advertise modes > 1Gbps. v2: - add downshift event detection - warn if downshift occurred - read downshifted rate from vendor register - enable downshift per default on all AQR107 family members Signed-off-by: Heiner Kallweit Reviewed-by: Florian Fainelli Signed-off-by: David S. Miller commit d4223e06b6aed581625f574ad8faa71b6c0fc903 Author: George Hilliard Date: Wed Mar 20 16:42:05 2019 -0600 staging: mt7621-mmc: Check for nonzero number of scatterlist entries The buffer descriptor setup loop is correct only if it is setting up at least one bd struct. Besides, there is an error if dma_map_sg() returns 0, which is possible and must be handled. Additionally, remove the BUG_ON() checking sglen, which is unnecessary because we configure DMA with that constraint during init. Signed-off-by: George Hilliard Signed-off-by: Greg Kroah-Hartman commit f2778bb3cb6c7544578c45688f3d5bcb09e0ac87 Author: George Hilliard Date: Wed Mar 20 16:42:03 2019 -0600 staging: mt7621-mmc: Fix warning when reloading module with debug msgs enabled The kernel complained: [ 510.277151] WARNING: CPU: 0 PID: 395 at fs/proc/generic.c:360 proc_register+0xf0/0x108 [ 510.292891] proc_dir_entry '/proc/msdc_debug' already registered when doing a modprobe/rmmod/modprobe of this module if debug messages are compiled in. Fix this by removing the proc entry when the module is unloaded. Signed-off-by: George Hilliard Signed-off-by: Greg Kroah-Hartman commit 561fb35a9d04ca7d1a5b955bcac50c6c4f49227d Author: Bhanusree Pola Date: Fri Mar 22 10:38:16 2019 +0800 staging: erofs: Use !x or x in place of NULL comparision Test for NULL as !x instead of NULL comparisions. Issue found using coccinelle Semantic patch used to solve the problem is as follows // @@ expression x; statement S; @@ x = (\(kmalloc\|devm_kzalloc\|kmalloc_array\|devm_ioremap\| usb_alloc_urb\|alloc_netdev\|dev_alloc_skb\)(...)); -if(x==NULL) +if(!x) S @@ expression e; @@ -e == NULL +!e // Signed-off-by: Bhanusree Pola [ Gao Xiang: fix x != NULL comparision to x as well. ] Signed-off-by: Gao Xiang Signed-off-by: Greg Kroah-Hartman commit 51385436f181d273392400bf8ba4edc2768e1996 Author: Michael Straube Date: Fri Mar 22 14:17:06 2019 +0100 staging: rtl8188eu: remove unnecessary parentheses Remove unnecessary parentheses in rtl8188eu_xmit.c. Reported by checkpatch. Signed-off-by: Michael Straube Signed-off-by: Greg Kroah-Hartman commit 63ff599a76a6cc0e1835fdeeccd808fcfc51b2e3 Author: Nishka Dasgupta Date: Fri Mar 22 01:43:56 2019 +0530 staging: rtl8723bs: core: Remove return variables in rtw_mlme_ext.c Remove unnecessary local return variables in rtw_mlme_ext.c. Issue found with Coccinelle using ret.cocci. Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit 5947e900d08443506fdceaf4b80f9d160b47665f Author: Nishka Dasgupta Date: Fri Mar 22 01:43:54 2019 +0530 staging: rtl8723bs: core: Change NULL comparisons to Boolean negation Change NULL comparisons to Boolean negations. Issue found with Coccinelle using matchnull.cocci. Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit 283a9e4b5624c40a69b44a7b0963996787c1afc0 Author: Nishka Dasgupta Date: Fri Mar 22 01:25:56 2019 +0530 staging: wilc1000: Remove return variables from wilc_spi.c Remove return variables from wilc_spi.c. Issue found with Coccinelle using ret.cocci. Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit 953137522929445a08e4d492b62be66c4c55e89c Author: Nishka Dasgupta Date: Fri Mar 22 01:25:55 2019 +0530 staging: wilc1000: Remove return variable from host_interface.c Remove return variable from host_interface.c. Issue found with Coccinelle using ret.cocci. Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit b6d00e179fe55b10f6312b53d9711ba4ae2308f1 Author: Vatsala Narang Date: Fri Mar 22 03:10:05 2019 +0530 staging: vt6655: Add spaces around operator Add spaces around '-' operator to get rid of checkpatch warning. Signed-off-by: Vatsala Narang Signed-off-by: Greg Kroah-Hartman commit 8f51bd83e4438fed92a9b4bb062eae7cd5a6c074 Author: Jules Irenge Date: Thu Mar 21 19:54:08 2019 +0000 staging: pi433: remove empty space to fix line over 80 characters warning Remove empty space to solve checkpatch.pl warning: "WARNING: line over 80 characters". Signed-off-by: Jules Irenge Signed-off-by: Greg Kroah-Hartman commit a41d42a9fda3a0aac36edeeb730da85e8cab0b1d Author: Bhanusree Pola Date: Fri Mar 22 18:10:10 2019 +0530 Staging: gdm724x: Remove unnecessary print statements Remove print statements that provide information about error messages when memory allocation is failed. Issue found using coccinelle The following semantic patch is used to solve this: @@ expression x; constant char[] C; identifier f; @@ x = (\(kmalloc\|devm_kzalloc\|kmalloc_array\|devm_ioremap\| usb_alloc_urb\|alloc_netdev\|dev_alloc_skb\)(...)); if(x==NULL) { ... ( -f(C,...); | -f(...,C); ) ... } Signed-off-by: Bhanusree Pola Acked-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman commit 83cdfc17a907905fa790f8afe89196d8ee960682 Author: Arash Fotouhi Date: Thu Mar 21 12:18:12 2019 -0700 Staging: comedi: ni_mio_common.c: Added blank line after declarations Added blank line after declarations. Signed-off-by: Arash Fotouhi Reviewed-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman commit d7dcf26ff0ffd7b56fe2b09ed7f1867589f3cdf1 Author: Thomas Gleixner Date: Fri Mar 1 23:48:21 2019 +0100 softirq: Remove tasklet_hrtimer There are no more users of this interface. Remove it. Signed-off-by: Thomas Gleixner Signed-off-by: Anna-Maria Gleixner Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Thomas Gleixner Acked-by: David S. Miller Cc: netdev@vger.kernel.org Link: https://lkml.kernel.org/r/20190301224821.29843-4-bigeasy@linutronix.de commit 671422b2205b5f2c49948b686306b207a5975dd9 Author: Thomas Gleixner Date: Fri Mar 1 23:48:20 2019 +0100 xfrm: Replace hrtimer tasklet with softirq hrtimer Switch the timer to HRTIMER_MODE_SOFT, which executed the timer callback in softirq context and remove the hrtimer_tasklet. Signed-off-by: Thomas Gleixner Signed-off-by: Anna-Maria Gleixner Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Thomas Gleixner Acked-by: David S. Miller Cc: netdev@vger.kernel.org Cc: Steffen Klassert Cc: Herbert Xu Link: https://lkml.kernel.org/r/20190301224821.29843-3-bigeasy@linutronix.de commit 77dcc6233e0def71e104d728ab5a39c2fca51127 Author: Thomas Gleixner Date: Fri Mar 1 23:48:19 2019 +0100 mac80211_hwsim: Replace hrtimer tasklet with softirq hrtimer Switch the timer to HRTIMER_MODE_REL_SOFT, which executed the timer callback in softirq context and remove the hrtimer_tasklet. Signed-off-by: Thomas Gleixner Signed-off-by: Anna-Maria Gleixner Signed-off-by: Sebastian Andrzej Siewior Signed-off-by: Thomas Gleixner Reviewed-by: Johannes Berg Acked-by: David S. Miller Cc: netdev@vger.kernel.org Cc: linux-wireless@vger.kernel.org Cc: Kalle Valo Link: https://lkml.kernel.org/r/20190301224821.29843-2-bigeasy@linutronix.de commit 11c632e1cfd3dcb49f2d04625d31c818a4c3b426 Author: Thierry Reding Date: Mon Feb 18 17:01:54 2019 +0100 drm/tegra: sor: Implement acquire/release for reset By implementing the acquire/release protocol, the SOR reset can be shared with other drivers that also adhere to this protocol, such as the PMC driver that uses the same reset as part of the powergate and -ungate implementation using generic power domains. Runtime PM makes sure that the operations are executed in the right order, and the reset core has error handling and WARNs in place to make sure the acquire/release protocol is followed. Signed-off-by: Thierry Reding commit ee222c5dfeca39f1d26ef1c0995657f5e8ac32fd Merge: 9e98c678c2d6 22815f1825e4 Author: Thierry Reding Date: Fri Mar 22 14:19:59 2019 +0100 Merge branch 'reset/acquire' of git://git.pengutronix.de/git/pza/linux into drm/tegra/for-next commit 0f0b7e1cc7abf8e1a8b301f2868379d611d05ae2 Author: Juri Lelli Date: Thu Mar 7 13:09:13 2019 +0100 x86/tsc: Add option to disable tsc clocksource watchdog Clocksource watchdog has been found responsible for generating latency spikes (in the 10-20 us range) when woken up to check for TSC stability. Add an option to disable it at boot. Signed-off-by: Juri Lelli Signed-off-by: Thomas Gleixner Cc: bigeasy@linutronix.de Cc: linux-rt-users@vger.kernel.org Cc: peterz@infradead.org Cc: bristot@redhat.com Cc: williams@redhat.com Link: https://lkml.kernel.org/r/20190307120913.13168-1-juri.lelli@redhat.com commit ea593dbba4c8ed841630fa5445202627e1046ba6 Author: Chris Wilson Date: Fri Mar 22 09:23:25 2019 +0000 drm/i915: Allow contexts to share a single timeline across all engines Previously, our view has been always to run the engines independently within a context. (Multiple engines happened before we had contexts and timelines, so they always operated independently and that behaviour persisted into contexts.) However, at the user level the context often represents a single timeline (e.g. GL contexts) and userspace must ensure that the individual engines are serialised to present that ordering to the client (or forgot about this detail entirely and hope no one notices - a fair ploy if the client can only directly control one engine themselves ;) In the next patch, we will want to construct a set of engines that operate as one, that have a single timeline interwoven between them, to present a single virtual engine to the user. (They submit to the virtual engine, then we decide which engine to execute on based.) To that end, we want to be able to create contexts which have a single timeline (fence context) shared between all engines, rather than multiple timelines. v2: Move the specialised timeline ordering to its own function. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190322092325.5883-4-chris@chris-wilson.co.uk commit b91715417244a7e478304425ba671bfafee9c43e Author: Chris Wilson Date: Fri Mar 22 09:23:24 2019 +0000 drm/i915: Extend CONTEXT_CREATE to set parameters upon construction It can be useful to have a single ioctl to create a context with all the initial parameters instead of a series of create + setparam + setparam ioctls. This extension to create context allows any of the parameters to be passed in as a linked list to be applied to the newly constructed context. v2: Make a local copy of user setparam (Tvrtko) v3: Use flags to detect availability of extension interface Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190322092325.5883-3-chris@chris-wilson.co.uk commit e0695db7298ec2181d38bd3bfc5d0ff7a46f96f3 Author: Chris Wilson Date: Fri Mar 22 09:23:23 2019 +0000 drm/i915: Create/destroy VM (ppGTT) for use with contexts In preparation to making the ppGTT binding for a context explicit (to facilitate reusing the same ppGTT between different contexts), allow the user to create and destroy named ppGTT. v2: Replace global barrier for swapping over the ppgtt and tlbs with a local context barrier (Tvrtko) v3: serialise with struct_mutex; it's lazy but required dammit v4: Rewrite igt_ctx_shared_exec to be more different (aimed to be more similarly, turned out different!) v5: Fix up test unwind for aliasing-ppgtt (snb) v6: Tighten language for uapi struct drm_i915_gem_vm_control. v7: Patch the context image for runtime ppgtt switching! Testcase: igt/gem_vm_create Testcase: igt/gem_ctx_param/vm Testcase: igt/gem_ctx_clone/vm Testcase: igt/gem_ctx_shared Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190322092325.5883-2-chris@chris-wilson.co.uk commit 9d1305ef80b95dde0337106ed8b826604e2155ad Author: Chris Wilson Date: Fri Mar 22 09:23:22 2019 +0000 drm/i915: Introduce the i915_user_extension_method An idea for extending uABI inspired by Vulkan's extension chains. Instead of expanding the data struct for each ioctl every time we need to add a new feature, define an extension chain instead. As we add optional interfaces to control the ioctl, we define a new extension struct that can be linked into the ioctl data only when required by the user. The key advantage being able to ignore large control structs for optional interfaces/extensions, while being able to process them in a consistent manner. In comparison to other extensible ioctls, the key difference is the use of a linked chain of extension structs vs an array of tagged pointers. For example, struct drm_amdgpu_cs_chunk { __u32 chunk_id; __u32 length_dw; __u64 chunk_data; }; struct drm_amdgpu_cs_in { __u32 ctx_id; __u32 bo_list_handle; __u32 num_chunks; __u32 _pad; __u64 chunks; }; allows userspace to pass in array of pointers to extension structs, but must therefore keep constructing that array along side the command stream. In dynamic situations like that, a linked list is preferred and does not similar from extra cache line misses as the extension structs themselves must still be loaded separate to the chunks array. v2: Apply the tail call optimisation directly to nip the worry of stack overflow in the bud. v3: Defend against recursion. v4: Fixup local types to match new uabi Opens: - do we include the result as an out-field in each chain? struct i915_user_extension { __u64 next_extension; __u64 name; __s32 result; __u32 mbz; /* reserved for future use */ }; * Undecided, so provision some room for future expansion. Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Cc: Joonas Lahtinen Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190322092325.5883-1-chris@chris-wilson.co.uk commit 7fe5719b4364fe9b673c3763007915877f3922c0 Author: Thierry Reding Date: Mon Feb 18 17:36:43 2019 +0100 soc/tegra: pmc: Implement acquire/release for resets By implementing the acquire/release protocol, the resets can be shared with other drivers that also adhere to this protocol. This will be used for example by the SOR driver to put hardware into a known good state, irrespective of whether or not the power domain can be reset. Signed-off-by: Thierry Reding commit 41c4f5996b9e04ea6dc82f49dd1105acfd08cd61 Merge: 9e98c678c2d6 22815f1825e4 Author: Thierry Reding Date: Fri Mar 22 14:04:39 2019 +0100 Merge branch 'reset/acquire' of git://git.pengutronix.de/git/pza/linux into for-5.2/soc commit 4e5180eb3d4f86fb96dc1786df978733b5bfc021 Author: Ondrej Mosnacek Date: Fri Mar 15 08:47:25 2019 +0100 crypto: Kconfig - fix typos AEGSI -> AEGIS Spotted while reviewind patches from Eric Biggers. Signed-off-by: Ondrej Mosnacek Signed-off-by: Herbert Xu commit f6fff17072232480ef471eae80a22b66b1dd8b7a Author: Eric Biggers Date: Thu Mar 14 21:21:28 2019 -0700 crypto: salsa20-generic - use crypto_xor_cpy() In salsa20_docrypt(), use crypto_xor_cpy() instead of crypto_xor(). This avoids having to memcpy() the src buffer to the dst buffer. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 29d97dec22dde5d2c4ccb23c50a11e94a5911861 Author: Eric Biggers Date: Thu Mar 14 21:20:36 2019 -0700 crypto: chacha-generic - use crypto_xor_cpy() In chacha_docrypt(), use crypto_xor_cpy() instead of crypto_xor(). This avoids having to memcpy() the src buffer to the dst buffer. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit dcf7b48212c0fab7df69e84fab22d6cb7c8c0fb9 Author: Daniel Axtens Date: Fri Mar 15 13:09:01 2019 +1100 crypto: vmx - fix copy-paste error in CTR mode The original assembly imported from OpenSSL has two copy-paste errors in handling CTR mode. When dealing with a 2 or 3 block tail, the code branches to the CBC decryption exit path, rather than to the CTR exit path. This leads to corruption of the IV, which leads to subsequent blocks being corrupted. This can be detected with libkcapi test suite, which is available at https://github.com/smuellerDD/libkcapi Reported-by: Ondrej Mosnáček Fixes: 5c380d623ed3 ("crypto: vmx - Add support for VMS instructions by ASM") Cc: stable@vger.kernel.org Signed-off-by: Daniel Axtens Tested-by: Michael Ellerman Tested-by: Ondrej Mosnacek Signed-off-by: Herbert Xu commit 5db46ac29a6797541943d3c4081821747e342732 Author: Arnd Bergmann Date: Thu Mar 14 10:09:44 2019 +0100 crypto: ccree - reduce kernel stack usage with clang Building with clang for a 32-bit architecture runs over the stack frame limit in the setkey function: drivers/crypto/ccree/cc_cipher.c:318:12: error: stack frame size of 1152 bytes in function 'cc_cipher_setkey' [-Werror,-Wframe-larger-than=] The problem is that there are two large variables: the temporary 'tmp' array and the SHASH_DESC_ON_STACK() declaration. Moving the first into the block in which it is used reduces the total frame size to 768 bytes, which seems more reasonable and is under the warning limit. Fixes: 63ee04c8b491 ("crypto: ccree - add skcipher support") Signed-off-by: Arnd Bergmann Acked-By: Gilad Ben-Yossef Signed-off-by: Herbert Xu commit 6570737c7fa04747d09cbc966972cedd3c0af00b Author: Eric Biggers Date: Tue Mar 12 22:12:52 2019 -0700 crypto: testmgr - test the !may_use_simd() fallback code All crypto API algorithms are supposed to support the case where they are called in a context where SIMD instructions are unusable, e.g. IRQ context on some architectures. However, this isn't tested for by the self-tests, causing bugs to go undetected. Now that all algorithms have been converted to use crypto_simd_usable(), update the self-tests to test the no-SIMD case. First, a bool testvec_config::nosimd is added. When set, the crypto operation is executed with preemption disabled and with crypto_simd_usable() mocked out to return false on the current CPU. A bool test_sg_division::nosimd is also added. For hash algorithms it's honored by the corresponding ->update(). By setting just a subset of these bools, the case where some ->update()s are done in SIMD context and some are done in no-SIMD context is also tested. These bools are then randomly set by generate_random_testvec_config(). For now, all no-SIMD testing is limited to the extra crypto self-tests, because it might be a bit too invasive for the regular self-tests. But this could be changed later. This has already found bugs in the arm64 AES-GCM and ChaCha algorithms. This would have found some past bugs as well. Signed-off-by: Eric Biggers Acked-by: Ard Biesheuvel Signed-off-by: Herbert Xu commit 8b8d91d4ce5a1497755eb925f4390da48f01076b Author: Eric Biggers Date: Tue Mar 12 22:12:51 2019 -0700 crypto: simd - convert to use crypto_simd_usable() Replace all calls to may_use_simd() in the shared SIMD helpers with crypto_simd_usable(), in order to allow testing the no-SIMD code paths. Signed-off-by: Eric Biggers Reviewed-by: Ard Biesheuvel Signed-off-by: Herbert Xu commit e52b7023cdad005756cd91d7c54fa90ef6b43d32 Author: Eric Biggers Date: Tue Mar 12 22:12:50 2019 -0700 crypto: arm64 - convert to use crypto_simd_usable() Replace all calls to may_use_simd() in the arm64 crypto code with crypto_simd_usable(), in order to allow testing the no-SIMD code paths. Signed-off-by: Eric Biggers Reviewed-by: Ard Biesheuvel Signed-off-by: Herbert Xu commit 99680c5e91829453e001ab5f7e6d717e6d2dcb21 Author: Eric Biggers Date: Tue Mar 12 22:12:49 2019 -0700 crypto: arm - convert to use crypto_simd_usable() Replace all calls to may_use_simd() in the arm crypto code with crypto_simd_usable(), in order to allow testing the no-SIMD code paths. Signed-off-by: Eric Biggers Reviewed-by: Ard Biesheuvel Signed-off-by: Herbert Xu commit f2abe0d72b21671ad19db075262411e3d4a828dd Author: Eric Biggers Date: Tue Mar 12 22:12:48 2019 -0700 crypto: x86 - convert to use crypto_simd_usable() Replace all calls to irq_fpu_usable() in the x86 crypto code with crypto_simd_usable(), in order to allow testing the no-SIMD code paths. Signed-off-by: Eric Biggers Reviewed-by: Ard Biesheuvel Signed-off-by: Herbert Xu commit b55e1a39543f5e9aadf1149f8ad4bcff5cace8a4 Author: Eric Biggers Date: Tue Mar 12 22:12:47 2019 -0700 crypto: simd,testmgr - introduce crypto_simd_usable() So that the no-SIMD fallback code can be tested by the crypto self-tests, add a macro crypto_simd_usable() which wraps may_use_simd(), but also returns false if the crypto self-tests have set a per-CPU bool to disable SIMD in crypto code on the current CPU. Signed-off-by: Eric Biggers Reviewed-by: Ard Biesheuvel Signed-off-by: Herbert Xu commit 580e295178402d14bbf598a5702f8e01fc59dbaa Author: Eric Biggers Date: Tue Mar 12 22:12:46 2019 -0700 crypto: arm64/gcm-aes-ce - fix no-NEON fallback code The arm64 gcm-aes-ce algorithm is failing the extra crypto self-tests following my patches to test the !may_use_simd() code paths, which previously were untested. The problem is that in the !may_use_simd() case, an odd number of AES blocks can be processed within each step of the skcipher_walk. However, the skcipher_walk is being done with a "stride" of 2 blocks and is advanced by an even number of blocks after each step. This causes the encryption to produce the wrong ciphertext and authentication tag, and causes the decryption to incorrectly fail. Fix it by only processing an even number of blocks per step. Fixes: c2b24c36e0a3 ("crypto: arm64/aes-gcm-ce - fix scatterwalk API violation") Fixes: 71e52c278c54 ("crypto: arm64/aes-ce-gcm - operate on two input blocks at a time") Cc: # v4.19+ Signed-off-by: Eric Biggers Reviewed-by: Ard Biesheuvel Signed-off-by: Herbert Xu commit 7aceaaef04eaaf6019ca159bc354d800559bba1d Author: Eric Biggers Date: Tue Mar 12 22:12:45 2019 -0700 crypto: chacha-generic - fix use as arm64 no-NEON fallback The arm64 implementations of ChaCha and XChaCha are failing the extra crypto self-tests following my patches to test the !may_use_simd() code paths, which previously were untested. The problem is as follows: When !may_use_simd(), the arm64 NEON implementations fall back to the generic implementation, which uses the skcipher_walk API to iterate through the src/dst scatterlists. Due to how the skcipher_walk API works, walk.stride is set from the skcipher_alg actually being used, which in this case is the arm64 NEON algorithm. Thus walk.stride is 5*CHACHA_BLOCK_SIZE, not CHACHA_BLOCK_SIZE. This unnecessarily large stride shouldn't cause an actual problem. However, the generic implementation computes round_down(nbytes, walk.stride). round_down() assumes the round amount is a power of 2, which 5*CHACHA_BLOCK_SIZE is not, so it gives the wrong result. This causes the following case in skcipher_walk_done() to be hit, causing a WARN() and failing the encryption operation: if (WARN_ON(err)) { /* unexpected case; didn't process all bytes */ err = -EINVAL; goto finish; } Fix it by rounding down to CHACHA_BLOCK_SIZE instead of walk.stride. (Or we could replace round_down() with rounddown(), but that would add a slow division operation every time, which I think we should avoid.) Fixes: 2fe55987b262 ("crypto: arm64/chacha - use combined SIMD/ALU routine for more speed") Cc: # v5.0+ Signed-off-by: Eric Biggers Reviewed-by: Ard Biesheuvel Signed-off-by: Herbert Xu commit 62f95ae805fa9e1e84d47d3219adddd97b2654b7 Author: Rouven Czerwinski Date: Mon Mar 11 11:58:57 2019 +0100 hwrng: omap - Set default quality Newer combinations of the glibc, kernel and openssh can result in long initial startup times on OMAP devices: [ 6.671425] systemd-rc-once[102]: Creating ED25519 key; this may take some time ... [ 142.652491] systemd-rc-once[102]: Creating ED25519 key; done. due to the blocking getrandom(2) system call: [ 142.610335] random: crng init done Set the quality level for the omap hwrng driver allowing the kernel to use the hwrng as an entropy source at boot. Signed-off-by: Rouven Czerwinski Signed-off-by: Herbert Xu commit f808aa3f245e778c27fc923afc040c40b94697d4 Author: Eric Biggers Date: Sun Mar 10 12:00:58 2019 -0700 crypto: testmgr - remove workaround for AEADs that modify aead_request Now that all AEAD algorithms (that I have the hardware to test, at least) have been fixed to not modify the user-provided aead_request, remove the workaround from testmgr that reset aead_request::tfm after each AEAD encryption/decryption. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit e151a8d28c2c99c8a9a9bfbe2bd612e692c33efd Author: Eric Biggers Date: Sun Mar 10 12:00:57 2019 -0700 crypto: x86/morus1280 - convert to use AEAD SIMD helpers Convert the x86 implementations of MORUS-1280 to use the AEAD SIMD helpers, rather than hand-rolling the same functionality. This simplifies the code and also fixes the bug where the user-provided aead_request is modified. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 477309580dcc5791a76302c53e50d0b8693b13bc Author: Eric Biggers Date: Sun Mar 10 12:00:56 2019 -0700 crypto: x86/morus640 - convert to use AEAD SIMD helpers Convert the x86 implementation of MORUS-640 to use the AEAD SIMD helpers, rather than hand-rolling the same functionality. This simplifies the code and also fixes the bug where the user-provided aead_request is modified. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit b6708c2d8fbdeecfaf8380329d4e136f68deef05 Author: Eric Biggers Date: Sun Mar 10 12:00:55 2019 -0700 crypto: x86/aegis256 - convert to use AEAD SIMD helpers Convert the x86 implementation of AEGIS-256 to use the AEAD SIMD helpers, rather than hand-rolling the same functionality. This simplifies the code and also fixes the bug where the user-provided aead_request is modified. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit d628132a5e3d0183ac59a3ebbd3a9dff8b20ac7e Author: Eric Biggers Date: Sun Mar 10 12:00:54 2019 -0700 crypto: x86/aegis128l - convert to use AEAD SIMD helpers Convert the x86 implementation of AEGIS-128L to use the AEAD SIMD helpers, rather than hand-rolling the same functionality. This simplifies the code and also fixes the bug where the user-provided aead_request is modified. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit de272ca72c6152e26b9799d21eb511aac03b6e2d Author: Eric Biggers Date: Sun Mar 10 12:00:53 2019 -0700 crypto: x86/aegis128 - convert to use AEAD SIMD helpers Convert the x86 implementation of AEGIS-128 to use the AEAD SIMD helpers, rather than hand-rolling the same functionality. This simplifies the code and also fixes the bug where the user-provided aead_request is modified. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 149e12252fb38937d3efa4419be1a87884ab1427 Author: Eric Biggers Date: Sun Mar 10 12:00:52 2019 -0700 crypto: x86/aesni - convert to use AEAD SIMD helpers Convert the AES-NI implementations of "gcm(aes)" and "rfc4106(gcm(aes))" to use the AEAD SIMD helpers, rather than hand-rolling the same functionality. This simplifies the code and also fixes the bug where the user-provided aead_request is modified. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 8b56d3488d87555c77494b1fb90dbea84ff0e9fc Author: Eric Biggers Date: Sun Mar 10 12:00:51 2019 -0700 crypto: x86/aesni - convert to use skcipher SIMD bulk registration Convert the AES-NI glue code to use simd_register_skciphers_compat() to create SIMD wrappers for all the internal skcipher algorithms at once, rather than wrapping each one individually. This simplifies the code. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 1661131a0479a2e0f7d16b43ce12a0106c442e37 Author: Eric Biggers Date: Sun Mar 10 12:00:50 2019 -0700 crypto: simd - support wrapping AEAD algorithms Update the crypto_simd module to support wrapping AEAD algorithms. Previously it only supported skciphers. The code for each is similar. I'll be converting the x86 implementations of AES-GCM, AEGIS, and MORUS to use this. Currently they each independently implement the same functionality. This will not only simplify the code, but it will also fix the bug detected by the improved self-tests: the user-provided aead_request is modified. This is because these algorithms currently reuse the original request, whereas the crypto_simd helpers build a new request in the original request's context. Signed-off-by: Eric Biggers Signed-off-by: Herbert Xu commit 16c4dd83a1b2a23004e2728b7c6222592e64e354 Author: Vakul Garg Date: Tue Mar 5 18:03:14 2019 +0000 crypto: caam/jr - optimize job ring enqueue and dequeue operations Instead of reading job ring's occupancy registers for every req/rsp enqueued/dequeued respectively, we read these registers once and store them in memory. After completing a job enqueue/dequeue, we decrement these values. When these values become zero, we refresh the snapshot of job ring's occupancy registers. This eliminates need of expensive device register read operations for every job enqueued and dequeued and hence makes caam_jr_enqueue() and caam_jr_dequeue() faster. The performance of kernel ipsec improved by about 6% on ls1028 (for frame size 408 bytes). Signed-off-by: Vakul Garg Reviewed-by: Horia Geantă Signed-off-by: Herbert Xu commit 691dc382769e350d4bc6f90a8edcacf7f8863d70 Author: Krzysztof Kozlowski Date: Tue Feb 12 18:50:51 2019 +0100 clk: samsung: exynos5410: Add gate clock for ADC Add the gate clock for ADC block on Exynos5410. Signed-off-by: Krzysztof Kozlowski Acked-by: Chanwoo Choi Signed-off-by: Sylwester Nawrocki commit c52c6857de87c991513ee3632d81c0eb4e81b939 Author: Krzysztof Kozlowski Date: Tue Feb 12 18:50:50 2019 +0100 clk: samsung: dt-bindings: Add ADC clock ID to Exynos5410 Add ID for TSADC clock to Exynos5410. Choose the same value of ID as in Exynos5420 to make it simpler/compatible in future (although clock driver code is not shared). Signed-off-by: Krzysztof Kozlowski Acked-by: Chanwoo Choi Signed-off-by: Sylwester Nawrocki commit 9d8e8f045ae45250a98a1c841f417012c771623a Author: Krzysztof Kozlowski Date: Tue Feb 12 18:50:49 2019 +0100 clk: samsung: dt-bindings: Put CLK_UART3 in order Order the CLK_UART3 by ID. No change in functionality. Signed-off-by: Krzysztof Kozlowski Acked-by: Chanwoo Choi Signed-off-by: Sylwester Nawrocki commit fe63f21b20df1adaab90c1839d36ee7c6e4b6ac0 Author: Shahar S Matityahu Date: Wed Jan 16 18:05:19 2019 +0200 iwlwifi: dbg_ini: align to FW api version 1 align to ini debug struct version 1 and enforce version checking. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit a2a120a9cdf13fa96b68f9d16f50d05e5a2c510e Author: Luca Coelho Date: Thu Feb 14 08:59:27 2019 +0200 iwlwifi: remove unnecessary goto out in iwl_parse_nvm_mcc_info() This goto out was unnecessary because the out label was immediately below it. Remove it. Signed-off-by: Luca Coelho commit 78d722b1bdd96b31bbe886a2cb2e69ce7b350347 Author: YueHaibing Date: Tue Jan 29 11:21:44 2019 +0800 iwlwifi: Use struct_size() in kzalloc Use struct_size() in kzalloc instead of the 'regd_to_copy' Signed-off-by: YueHaibing Signed-off-by: Luca Coelho commit 4b49e34e580c87ea84f8f57fd04a1165219eb3fc Author: Shahar S Matityahu Date: Tue Feb 12 10:11:10 2019 +0200 iwlwifi: dbg_ini: separate between ini and legacy dump flows Separate between ini and legacy dump flows to allow adding ini triggers that are not supported in the legacy flow and to increase readabilty. iwl_fw_dbg_ini_collect function is now called with legacy trigger id and _iwl_fw_dbg_ini_collect is called with ini trigger id. Also make the actual dumping function static so that any dump collection will go through iwl_fw_dbg_collect_sync. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit c88580e1a96b339ae18990bf42ba58d84c7d77ef Author: Shahar S Matityahu Date: Tue Feb 12 12:51:02 2019 +0200 iwlwifi: dbg: add DRAM monitor support for AX210 device family Allows to perform monitor dumping on AX210 device family Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit a15d4f3b3cdd2b040e57b20baa9935454426d38b Author: Mordechay Goodstein Date: Thu Feb 7 14:06:59 2019 +0200 iwlwifi: mvm: set max amsdu for TLC offload mac80211 sets max amsdu to min supported ht vs vht but TLC only works with one mode so we can set to the exact mode used (vht/ht) and enable larger amsdu sizes for vht. Signed-off-by: Mordechay Goodstein Signed-off-by: Luca Coelho commit 5bd757a69bec3f32405ebecbef8a966d1967c1d0 Author: Shaul Triebitz Date: Thu Feb 7 12:28:27 2019 +0200 iwlwifi: for AX210 device support radio GF4 Add support for radio gf4 (CDB radio). Signed-off-by: Shaul Triebitz Signed-off-by: Luca Coelho commit f826faaa1f3ab59458d43ced68dda30946844802 Author: Johannes Berg Date: Wed Jan 30 11:09:22 2019 +0100 iwlwifi: pcie: switch to correct RBD/CD layout for 22560 The layout of the RBD (receive buffer descriptor) isn't quite right, the hardware ended up being implemented differently. Switch to the correct RBD layout. While at it, remove the now useless extra defines. Also, switch the CD (completion descriptor) to the right format, which is basically just a code cleanup because the only field we really used (rbid) is still in the same place. We may need fragmentation later if we ever want to use it. Signed-off-by: Johannes Berg Signed-off-by: Luca Coelho commit fd1190b68a27b0ebd7c693f0ca99d7fd46f460a1 Author: Shahar S Matityahu Date: Wed Feb 6 14:51:20 2019 +0200 iwlwifi: mvm: use dump worker during restart instead of sync dump In restart flow, the driver requests HW restart from mac80211 and then mac80211 uses a worker to do the restart flow. In that flow a sync dump is performed. Instead, schedule the dump worker before requesting HW restart from mac80211. This approach simplifies the restart flow. Also, it is neeeded in order to differentiate between the handling of SW and HW errors in a future commit. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit 8672aad310fcf8f1091f9f6e45299b84c51f3f56 Author: Shahar S Matityahu Date: Thu Feb 7 09:07:16 2019 +0200 iwlwifi: dbg: use dump mask for tx command dumping length Only add the size of the tx command to the dump file size if it is set in the dump_mask. Signed-off-by: Shahar S Matityahu Signed-off-by: Luca Coelho commit e4fe5d4b10cd8e34d7af750cd0c63a44172d7b72 Author: Ilan Peer Date: Tue Feb 5 10:59:40 2019 +0200 iwlwifi: mvm: Support new format of SCAN_OFFLOAD_PROFILES_QUERY_RSP Newer FWs use a new format of the SCAN_OFFLOAD_PROFILES_QUERY_RSP, which now supports indicating match on an higher number of channels. Modify the code to support both the old format and the newer one, based on a FW TLV. Signed-off-by: Ilan Peer Signed-off-by: Luca Coelho commit 2785ce008e3b52b5a8f9a5bef68b8306d3e37b86 Author: Shaul Triebitz Date: Wed Jan 30 15:34:54 2019 +0200 iwlwifi: support new NVM response API Support REGULATORY_NVM_GET_INFO_RSP_API_S_VER_4. This API adds the new 6-7GHz channels. Signed-off-by: Shaul Triebitz Signed-off-by: Luca Coelho commit b15ef67c0e6b51be0f37985261ca53f9b477e816 Author: Shaul Triebitz Date: Thu Jan 31 15:38:31 2019 +0200 iwlwifi: add support for 6-7 GHz channels Add UHB (ultra high band) channels and use 16 bit variables to fit the new channels. Signed-off-by: Shaul Triebitz Signed-off-by: Luca Coelho commit 8636ca769cabe8452626fb1fa804e79422a1c254 Author: Shaul Triebitz Date: Sun Feb 3 10:59:08 2019 +0200 iwlwifi: mvm: be more forgiving if num of channels is too big If number of channels in the driver is greater than number of scan channels given by firmware TLV, do not fail scan config, but adjust to firmware's number of channels. This is helpful for supporting in driver new channels before it being supported by firmware scan. Signed-off-by: Shaul Triebitz Signed-off-by: Luca Coelho commit e47df5bd515ca53c910958b04067527a46cfd6f8 Author: Johannes Berg Date: Wed Feb 6 11:57:55 2019 +0100 iwlwifi: mvm: enable HT/VHT IBSS For some reason we never enabled it, but it appears to work fine. Enable it now. Signed-off-by: Johannes Berg Signed-off-by: Luca Coelho commit 918cbf39ac008b8079748a04be69930068c7c7c5 Author: Sara Sharon Date: Tue Jan 22 12:11:12 2019 +0200 iwlwifi: mvm: support multiple BSSID Set the capabilities flags and inform firmware Signed-off-by: Sara Sharon Signed-off-by: Luca Coelho commit 81b4e44e41e651735dd185f78a8fe2f4d53c61d4 Author: Sara Sharon Date: Mon Dec 17 14:27:51 2018 +0200 iwlwifi: mvm: track changes in beacon count during channel switch There are some buggy APs that keeps changing the count while forcing us to block TX. This eventually results in queue hang, assert, and disconnection. Detect such APs and disconnect gracefully in advance. Signed-off-by: Sara Sharon Signed-off-by: Luca Coelho commit f67806140220caa3d4337e6c60989b520e13f9a8 Author: Sara Sharon Date: Mon Dec 17 14:01:31 2018 +0200 iwlwifi: mvm: disconnect in case of bad channel switch parameters In case we receive channel switch announcement with immediate quiet and unknown switching time, we will switch when FW identifies AP left channel. However, if AP remains on channel, we will eventually get TX queue hang. Init a work to disconnect if switch doesn't occur within 1500 milliseconds. Do it also for a too long channel switch. Signed-off-by: Sara Sharon Signed-off-by: Luca Coelho commit 77738865eb629e51e4135e9234016301da04c356 Author: Sara Sharon Date: Mon Dec 31 12:06:11 2018 +0200 iwlwifi: mvm: notify FW on quiet mode in CSA Let FW know if quiet mode is on or not. This is needed in order to disable it in FW when CSA is complete. Signed-off-by: Sara Sharon Signed-off-by: Luca Coelho commit c37763d22d07049cc13a088d8622d25d2a7d48de Author: Sara Sharon Date: Mon Nov 26 12:00:04 2018 +0200 iwlwifi: mvm: track CSA beacons Send to FW modify command for every beacon we receive during channel switch. FW will track the count, and make sure the event is scheduled in time even if AP changed count. Signed-off-by: Sara Sharon Signed-off-by: Luca Coelho commit d47cdb884a9901a137edaa66e9866c98048e909c Author: Johannes Berg Date: Wed Jan 2 10:31:05 2019 +0100 iwlwifi: mvm: report all NO_DATA events to mac80211 Report all NO_DATA events to mac80211 so they get captured in radiotap for usage in sniffer scenarios; map the info type to a reasonable radiotap type for this. Signed-off-by: Johannes Berg Signed-off-by: Luca Coelho commit 792211266379ea6885d97c55b8d73e1bfecb7d54 Author: Sara Sharon Date: Sun Nov 25 13:42:29 2018 +0200 iwlwifi: mvm: implement CSA abort In case we receive abort operation for CSA, clean up our state. Signed-off-by: Sara Sharon Signed-off-by: Luca Coelho commit 9cfcf71ce6ec80e1f233757e24a7b3a9181453a6 Author: Sara Sharon Date: Wed Dec 12 13:43:29 2018 +0200 iwlwifi: mvm: report delayed beacon count to FW Support passing to FW delayed beacon count. This represents the delay the AP can have when moving to the new channel. Signed-off-by: Sara Sharon Signed-off-by: Luca Coelho commit b71f0a0b1e3fea212a6a5042ced8b48a81738ac9 Author: Jean-Jacques Hiblot Date: Thu Sep 20 17:02:53 2018 +0200 tools: PCI: Exit with error code when test fails This makes it easier to use pcitest in automated setups. Signed-off-by: Jean-Jacques Hiblot Signed-off-by: Lorenzo Pieralisi Acked-by: Kishon Vijay Abraham I commit 48f40b96de2c790eac6114e3e879a48fe9f89349 Author: Aditya Pakki Date: Wed Mar 20 11:47:20 2019 -0500 thunderbolt: xdomain: Fix to check return value of kmemdup kmemdup can fail and return a NULL pointer. The patch modifies the signature of tb_xdp_schedule_request and passes the failure error upstream. Signed-off-by: Aditya Pakki Signed-off-by: Mika Westerberg commit 9aabb68568b473bf2f0b179d053b403961e42e4d Author: Aditya Pakki Date: Wed Mar 20 11:34:09 2019 -0500 thunderbolt: Fix to check return value of ida_simple_get In enumerate_services, ida_simple_get on failure can return an error and leaks memory. The patch ensures that the dev_set_name is set on non failure cases, and releases memory during failure. Signed-off-by: Aditya Pakki Signed-off-by: Mika Westerberg commit 2cc12751cf464a722ff57b54d17d30c84553f9c0 Author: Aditya Pakki Date: Wed Mar 20 10:57:54 2019 -0500 thunderbolt: Fix to check for kmemdup failure Memory allocated via kmemdup might fail and return a NULL pointer. This patch adds a check on the return value of kmemdup and passes the error upstream. Signed-off-by: Aditya Pakki Reviewed-by: Mukesh Ojha Signed-off-by: Mika Westerberg commit 53239664e5ae353f60f37a566dbd32415a906ee8 Author: Geert Uytterhoeven Date: Wed Mar 20 20:45:22 2019 +0100 ARM: dts: ape6evm: Add NOR FLASH Describe the 128 MiB CFI NOR FLASH, which contains the boot loader and its environment. Signed-off-by: Geert Uytterhoeven Tested-by: Niklas Söderlund Signed-off-by: Simon Horman commit b9d52d381e142fb3275430ac40ab119565d046f4 Author: Sujaritha Sundaresan Date: Thu Mar 21 13:38:04 2019 -0700 drm/i915/guc: GuC suspend path cleanup Adding a call to intel_uc_suspend in i915_gem_suspend, which is a common point for the suspend/resume and hibernate paths. This fixes an unbalanced call that causes issues with the CTB register/deregister. v2: Making the call unconditional (Daniele) Moving the call to after the GEM_BUG_ON (Chris) Cc: Daniele Ceraolo Spurio Cc: Chris Wilson Cc: Michal Wajdeczko Signed-off-by: Sujaritha Sundaresan Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190321203804.6845-1-sujaritha.sundaresan@intel.com commit e70d3d8040410a46893c0986a5b0fd64c466b7e9 Author: Chris Wilson Date: Thu Mar 21 19:40:31 2019 +0000 drm/i915/selftests: Mark up preemption tests for hang detection Use the igt_live_test framework for detecting whether an unwanted hang occurred during test execution, and report failure if it does. Signed-off-by: Chris Wilson Reviewed-by: Joonas Lahtinen Link: https://patchwork.freedesktop.org/patch/msgid/20190321194031.20240-2-chris@chris-wilson.co.uk commit d067994cc425209032b5713cb3e7fac6d1f38460 Author: Chris Wilson Date: Thu Mar 21 19:40:30 2019 +0000 drm/i915/selftests: Calculate maximum ring size for preemption chain 32 is too many for the likes of kbl, and in order to insert that many requests into the ring requires us to declare the first few hung -- understandably a slow and unexpected process. Instead, measure the size of a singe requests and use that to estimate the upper bound on the chain length we can use for our test, remembering to flush the previous chain between tests for safety. Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: "Yokoyama, Caz" Link: https://patchwork.freedesktop.org/patch/msgid/20190321194031.20240-1-chris@chris-wilson.co.uk commit f6827526279d75f0b1c1605b1bf560024bd7696f Author: Ivan Vecera Date: Fri Mar 15 21:04:14 2019 +0100 selftests: bpf: modify urandom_read and link it non-statically After some experiences I found that urandom_read does not need to be linked statically. When the 'read' syscall call is moved to separate non-inlined function then bpf_get_stackid() is able to find the executable in stack trace and extract its build_id from it. Signed-off-by: Ivan Vecera Signed-off-by: Alexei Starovoitov commit ab99e7a8f7fe190f8669e32d1b8732d18f42e249 Author: Daniel T. Lee Date: Wed Mar 20 13:17:47 2019 +0900 samples: bpf: add xdp_sample_pkts to .gitignore This commit adds xdp_sample_pkts to .gitignore which is currently ommited from the ignore file. Signed-off-by: Daniel T. Lee Signed-off-by: Alexei Starovoitov commit dbde7ec3ce0d54850af7a009140be1312ac776d7 Author: Fabio Estevam Date: Wed Mar 20 17:05:19 2019 -0300 arm64: dts: imx8mq: Move the opp table out of bus node Move opp-table node from soc node to root node. opp-table node does not have any register properties and thus shouldn't be placed inside the bus. This fixes the following build warnings with W=1: arch/arm64/boot/dts/freescale/imx8mq.dtsi:687.28-703.5: Warning (simple_bus_reg): /soc@0/opp-table: missing or empty reg/ranges property Fixes: 64d26f8c1dde ("arm64: dts: imx8mq: Add the opp table and cores opp properties") Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo commit 00f1dac3c2d679023fb62b130c63b1c3306ab9c0 Author: Horia Geantă Date: Wed Mar 20 17:29:00 2019 +0200 arm64: dts: ls1043a: add crypto node alias also for qds crypto node alias is needed by U-boot to identify the node and perform fix-ups, like adding "fsl,sec-era" property or deleting a job ring child node (in case ARM TF-A is running). Signed-off-by: Horia Geantă Signed-off-by: Shawn Guo commit e4282ddbd2a8065e883475f2849dc1687aa57125 Author: Frieder Schrempf Date: Wed Mar 20 14:38:04 2019 +0000 arm64: dts: fsl: Remove unused properties from FSL QSPI nodes After switching to the new FSL QSPI driver the properties 'fsl,qspi-has-second-chip' and 'big-endian' are not used anymore. The driver now uses the 'reg' property to determine the bus and the chipselect. The endianness is selected by the driver depending on which SoC is used. Signed-off-by: Frieder Schrempf Signed-off-by: Shawn Guo commit 26d459398a7ced52ff640bc1cf1cf6fc3f4b5fc8 Author: Frieder Schrempf Date: Wed Mar 20 14:38:02 2019 +0000 ARM: dts: ls1021a: Remove unused properties from QSPI node After switching to the new FSL QSPI driver the properties 'fsl,qspi-has-second-chip' and 'big-endian' are not used anymore. The driver now uses the 'reg' property to determine the bus and the chipselect. The endianness is selected by the driver depending on which SoC is used. Signed-off-by: Frieder Schrempf Signed-off-by: Shawn Guo commit e464fd2ba4d4573445574388b0b5240ae37c1740 Author: Angus Ainslie (Purism) Date: Fri Mar 22 10:09:13 2019 +0800 arm64: dts: imx8mq: enable the multi sensor TMU Add the imx8mq TMU (Thermal management unit) nodes for CPU, GPU, and VPU. Signed-off-by: Angus Ainslie (Purism) Reviewed-by: Lucas Stach Signed-off-by: Shawn Guo commit 2569473816a9ade34c2ba051118337b2d69007df Merge: 48e5d98a0eb1 bafc0ba8261e Author: Alexei Starovoitov Date: Thu Mar 21 18:59:11 2019 -0700 Merge branch 'bpf_tcp_check_syncookie' Lorenz Bauer says: ==================== This series adds the necessary helpers to determine wheter a given (encapsulated) TCP packet belongs to a connection known to the network stack. * bpf_skc_lookup_tcp gives access to request and timewait sockets * bpf_tcp_check_syncookie identifies the final 3WHS ACK when syncookies are enabled The goal is to be able to implement load-balancing approaches like glb-director [1] or Beamer [2] in pure eBPF. Specifically, we'd like to replace the functionality of the glb-redirect kernel module [3] by an XDP program or tc classifier. Changes in v3: * Fix missing check for ip4->ihl * Only cast to unsigned long in BPF_CALLs Changes in v2: * Rename bpf_sk_check_syncookie to bpf_tcp_check_syncookie. * Add bpf_skc_lookup_tcp. Without it bpf_tcp_check_syncookie doesn't make sense. * Check tcp_synq_no_recent_overflow() in bpf_tcp_check_syncookie. * Check th->syn in bpf_tcp_check_syncookie. * Require CONFIG_IPV6 to be a built in. 1: https://github.com/github/glb-director 2: https://www.usenix.org/conference/nsdi18/presentation/olteanu 3: https://github.com/github/glb-director/tree/master/src/glb-redirect ==================== Signed-off-by: Alexei Starovoitov commit bafc0ba8261e36e36b0b1e851749fd3712a2a6f4 Author: Lorenz Bauer Date: Fri Mar 22 09:54:06 2019 +0800 selftests/bpf: add tests for bpf_tcp_check_syncookie and bpf_skc_lookup_tcp Add tests which verify that the new helpers work for both IPv4 and IPv6, by forcing SYN cookies to always on. Use a new network namespace to avoid clobbering the global SYN cookie settings. Signed-off-by: Lorenz Bauer Signed-off-by: Alexei Starovoitov commit 5792d52df1e77110abf0d11b1131992a8c0c8d17 Author: Lorenz Bauer Date: Fri Mar 22 09:54:05 2019 +0800 selftests/bpf: test references to sock_common Make sure that returning a struct sock_common * reference invokes the reference tracking machinery in the verifier. Signed-off-by: Lorenz Bauer Signed-off-by: Alexei Starovoitov commit dbaf2877e9ad0ac77c463d1bf87b2eb7efc46160 Author: Lorenz Bauer Date: Fri Mar 22 09:54:04 2019 +0800 selftests/bpf: allow specifying helper for BPF_SK_LOOKUP Make the BPF_SK_LOOKUP macro take a helper function, to ease writing tests for new helpers. Signed-off-by: Lorenz Bauer Signed-off-by: Alexei Starovoitov commit 253c8dde3cf60879d37b5fa47bde4a62c295c72b Author: Lorenz Bauer Date: Fri Mar 22 09:54:03 2019 +0800 tools: update include/uapi/linux/bpf.h Pull definitions for bpf_skc_lookup_tcp and bpf_sk_check_syncookie. Signed-off-by: Lorenz Bauer Signed-off-by: Alexei Starovoitov commit 399040847084a69f345e0a52fd62f04654e0fce3 Author: Lorenz Bauer Date: Fri Mar 22 09:54:02 2019 +0800 bpf: add helper to check for a valid SYN cookie Using bpf_skc_lookup_tcp it's possible to ascertain whether a packet belongs to a known connection. However, there is one corner case: no sockets are created if SYN cookies are active. This means that the final ACK in the 3WHS is misclassified. Using the helper, we can look up the listening socket via bpf_skc_lookup_tcp and then check whether a packet is a valid SYN cookie ACK. Signed-off-by: Lorenz Bauer Signed-off-by: Alexei Starovoitov commit edbf8c01de5a104a71ed6df2bf6421ceb2836a8e Author: Lorenz Bauer Date: Fri Mar 22 09:54:01 2019 +0800 bpf: add skc_lookup_tcp helper Allow looking up a sock_common. This gives eBPF programs access to timewait and request sockets. Signed-off-by: Lorenz Bauer Signed-off-by: Alexei Starovoitov commit 85a51f8c28b9812642d76db6889f3f39dc3fbab3 Author: Lorenz Bauer Date: Fri Mar 22 09:54:00 2019 +0800 bpf: allow helpers to return PTR_TO_SOCK_COMMON It's currently not possible to access timewait or request sockets from eBPF, since there is no way to return a PTR_TO_SOCK_COMMON from a helper. Introduce RET_PTR_TO_SOCK_COMMON to enable this behaviour. Signed-off-by: Lorenz Bauer Signed-off-by: Alexei Starovoitov commit 0f3adc288df8ba2ac2fea0a8e4890f9fb4cd075d Author: Lorenz Bauer Date: Fri Mar 22 09:53:59 2019 +0800 bpf: track references based on is_acquire_func So far, the verifier only acquires reference tracking state for RET_PTR_TO_SOCKET_OR_NULL. Instead of extending this for every new return type which desires these semantics, acquire reference tracking state iff the called helper is an acquire function. Signed-off-by: Lorenz Bauer Signed-off-by: Alexei Starovoitov commit aed609c40c6f676354bd7cf23a51339e7adc3c4c Author: Jonathan Neuschäfer Date: Tue Mar 19 16:24:18 2019 +0100 ARM: dts: imx50: Add PHY node for usbotg and adjust clocks Even though the ChipIdea USB controller binding[1] doesn't specify the properties that reference a PHY as required, the Linux driver requires[2] such a reference. The clock situation is like on i.MX53: The USB controller is clocked from IMX5_CLK_USBOH3_GATE and the PHY from IMX5_CLK_USB_PHY1_GATE. [1]: Documentation/devicetree/bindings/usb/ci-hdrc-usb2.txt [2]: Search for EINVAL in drivers/usb/chipidea/ci_hdrc_imx.c Signed-off-by: Jonathan Neuschäfer Signed-off-by: Shawn Guo commit 67814a9b1b3bb312b31e7da181d488191b4115b6 Author: Alexander Kurz Date: Fri Mar 15 21:14:23 2019 +0000 ARM: dts: i.MX35: Add i2c and mmc aliases Using aliases, the devices will be enumerated properly. Signed-off-by: Alexander Kurz Signed-off-by: Shawn Guo commit 5da7f749aec3ad637f33934386d0265bc3ee919f Author: Alexander Kurz Date: Fri Mar 15 21:14:22 2019 +0000 ARM: dts: i.MX6SL: Add i2c and mmc aliases Using aliases, the devices will be enumerated properly. Signed-off-by: Alexander Kurz Signed-off-by: Shawn Guo commit ad8c096a84a7335ab90f708edea9892f6d88b7b2 Author: Alexander Kurz Date: Fri Mar 15 21:14:21 2019 +0000 ARM: dts: i.MX50: Add i2c, mmc and spi aliases Using aliases, the devices will be enumerated properly. Signed-off-by: Alexander Kurz Signed-off-by: Shawn Guo commit 1d965c4def07defeb2f3b0eb927e891c45f46748 Merge: 31f1a0e37cac 92149190067d Author: David S. Miller Date: Thu Mar 21 14:32:17 2019 -0700 Merge branch 'Refactor-flower-classifier-to-remove-dependency-on-rtnl-lock' Vlad Buslov says: ==================== Refactor flower classifier to remove dependency on rtnl lock Currently, all netlink protocol handlers for updating rules, actions and qdiscs are protected with single global rtnl lock which removes any possibility for parallelism. This patch set is a third step to remove rtnl lock dependency from TC rules update path. Recently, new rtnl registration flag RTNL_FLAG_DOIT_UNLOCKED was added. TC rule update handlers (RTM_NEWTFILTER, RTM_DELTFILTER, etc.) are already registered with this flag and only take rtnl lock when qdisc or classifier requires it. Classifiers can indicate that their ops callbacks don't require caller to hold rtnl lock by setting the TCF_PROTO_OPS_DOIT_UNLOCKED flag. The goal of this change is to refactor flower classifier to support unlocked execution and register it with unlocked flag. This patch set implements following changes to make flower classifier concurrency-safe: - Implement reference counting for individual filters. Change fl_get to take reference to filter. Implement tp->ops->put callback that was introduced in cls API patch set to release reference to flower filter. - Use tp->lock spinlock to protect internal classifier data structures from concurrent modification. - Handle concurrent tcf proto deletion by returning EAGAIN, which will cause cls API to retry and create new proto instance or return error to the user (depending on message type). - Handle concurrent insertion of filter with same priority and handle by returning EAGAIN, which will cause cls API to lookup filter again and process it accordingly to netlink message flags. - Extend flower mask with reference counting and protect masks list with masks_lock spinlock. - Prevent concurrent mask insertion by inserting temporary value to masks hash table. This is necessary because mask initialization is a sleeping operation and cannot be done while holding tp->lock. Both chain level and classifier level conflicts are resolved by returning -EAGAIN to cls API that results restart of whole operation. This retry mechanism is a result of fine-grained locking approach used in this and previous changes in series and is necessary to allow concurrent updates on same chain instance. Alternative approach would be to lock the whole chain while updating filters on any of child tp's, adding and removing classifier instances from the chain. However, since most CPU-intensive parts of filter update code are specifically in classifier code and its dependencies (extensions and hw offloads), such approach would negate most of the gains introduced by this change and previous changes in the series when updating same chain instance. Tcf hw offloads API is not changed by this patch set and still requires caller to hold rtnl lock. Refactored flower classifier tracks rtnl lock state by means of 'rtnl_held' flag provided by cls API and obtains the lock before calling hw offloads. Following patch set will lift this restriction and refactor cls hw offloads API to support unlocked execution. With these changes flower classifier is safely registered with TCF_PROTO_OPS_DOIT_UNLOCKED flag in last patch. Changes from V2 to V3: - Rebase on latest net-next Changes from V1 to V2: - Extend cover letter with explanation about retry mechanism. - Rebase on current net-next. - Patch 1: - Use rcu_dereference_raw() for tp->root dereference. - Update comment in fl_head_dereference(). - Patch 2: - Remove redundant check in fl_change error handling code. - Add empty line between error check and new handle assignment. - Patch 3: - Refactor loop in fl_get_next_filter() to improve readability. - Patch 4: - Refactor __fl_delete() to improve readability. - Patch 6: - Fix comment in fl_check_assign_mask(). - Patch 9: - Extend commit message. - Fix error code in comment. - Patch 11: - Fix fl_hw_replace_filter() to always release rtnl lock in error handlers. - Patch 12: - Don't take rtnl lock before calling __fl_destroy_filter() in workqueue context. - Extend commit message with explanation why flower still takes rtnl lock before calling hardware offloads API. Github: ==================== Signed-off-by: David S. Miller commit 92149190067dc1ba656ce63a328c4b88b34e3f09 Author: Vlad Buslov Date: Thu Mar 21 15:17:44 2019 +0200 net: sched: flower: set unlocked flag for flower proto ops Set TCF_PROTO_OPS_DOIT_UNLOCKED for flower classifier to indicate that its ops callbacks don't require caller to hold rtnl lock. Don't take rtnl lock in fl_destroy_filter_work() that is executed on workqueue instead of being called by cls API and is not affected by setting TCF_PROTO_OPS_DOIT_UNLOCKED. Rtnl mutex is still manually taken by flower classifier before calling hardware offloads API that has not been updated for unlocked execution. Signed-off-by: Vlad Buslov Reviewed-by: Stefano Brivio Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit c24e43d83b7aedb3effef54627448253e22a0140 Author: Vlad Buslov Date: Thu Mar 21 15:17:43 2019 +0200 net: sched: flower: track rtnl lock state Use 'rtnl_held' flag to track if caller holds rtnl lock. Propagate the flag to internal functions that need to know rtnl lock state. Take rtnl lock before calling tcf APIs that require it (hw offload, bind filter, etc.). Signed-off-by: Vlad Buslov Reviewed-by: Stefano Brivio Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit 3d81e7118d572f37456922929b2b289138b2174f Author: Vlad Buslov Date: Thu Mar 21 15:17:42 2019 +0200 net: sched: flower: protect flower classifier state with spinlock struct tcf_proto was extended with spinlock to be used by classifiers instead of global rtnl lock. Use it to protect shared flower classifier data structures (handle_idr, mask hashtable and list) and fields of individual filters that can be accessed concurrently. This patch set uses tcf_proto->lock as per instance lock that protects all filters on tcf_proto. Signed-off-by: Vlad Buslov Reviewed-by: Stefano Brivio Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit 272ffaadeb3e739baa70aef7e92ad844b62b3304 Author: Vlad Buslov Date: Thu Mar 21 15:17:41 2019 +0200 net: sched: flower: handle concurrent tcf proto deletion Without rtnl lock protection tcf proto can be deleted concurrently. Check tcf proto 'deleting' flag after taking tcf spinlock to verify that no concurrent deletion is in progress. Return EAGAIN error if concurrent deletion detected, which will cause caller to retry and possibly create new instance of tcf proto. Retry mechanism is a result of fine-grained locking approach used in this and previous changes in series and is necessary to allow concurrent updates on same chain instance. Alternative approach would be to lock the whole chain while updating filters on any of child tp's, adding and removing classifier instances from the chain. However, since most CPU-intensive parts of filter update code are specifically in classifier code and its dependencies (extensions and hw offloads), such approach would negate most of the gains introduced by this change and previous changes in the series when updating same chain instance. Signed-off-by: Vlad Buslov Reviewed-by: Stefano Brivio Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit 9a2d93899897efb0702f97e71387f9d0ae94a9d5 Author: Vlad Buslov Date: Thu Mar 21 15:17:40 2019 +0200 net: sched: flower: handle concurrent filter insertion in fl_change Check if user specified a handle and another filter with the same handle was inserted concurrently. Return EAGAIN to retry filter processing (in case it is an overwrite request). Signed-off-by: Vlad Buslov Acked-by: Jiri Pirko Reviewed-by: Stefano Brivio Signed-off-by: David S. Miller commit 259e60f96785ab9043bb6eea5b90b354053f98cc Author: Vlad Buslov Date: Thu Mar 21 15:17:39 2019 +0200 net: sched: flower: protect masks list with spinlock Protect modifications of flower masks list with spinlock to remove dependency on rtnl lock and allow concurrent access. Signed-off-by: Vlad Buslov Acked-by: Jiri Pirko Reviewed-by: Stefano Brivio Signed-off-by: David S. Miller commit 195c234d15c9e93c7ee60b7d32067a9937e611a5 Author: Vlad Buslov Date: Thu Mar 21 15:17:38 2019 +0200 net: sched: flower: handle concurrent mask insertion Without rtnl lock protection masks with same key can be inserted concurrently. Insert temporary mask with reference count zero to masks hashtable. This will cause any concurrent modifications to retry. Wait for rcu grace period to complete after removing temporary mask from masks hashtable to accommodate concurrent readers. Signed-off-by: Vlad Buslov Acked-by: Jiri Pirko Suggested-by: Jiri Pirko Reviewed-by: Stefano Brivio Signed-off-by: David S. Miller commit f48ef4d5b083c9273d754246e2220d98f3aedd7d Author: Vlad Buslov Date: Thu Mar 21 15:17:37 2019 +0200 net: sched: flower: add reference counter to flower mask Extend fl_flow_mask structure with reference counter to allow parallel modification without relying on rtnl lock. Use rcu read lock to safely lookup mask and increment reference counter in order to accommodate concurrent deletes. Signed-off-by: Vlad Buslov Acked-by: Jiri Pirko Reviewed-by: Stefano Brivio Signed-off-by: David S. Miller commit b2552b8c40fa89210070c6e3487b35f10608d6c5 Author: Vlad Buslov Date: Thu Mar 21 15:17:36 2019 +0200 net: sched: flower: track filter deletion with flag In order to prevent double deletion of filter by concurrent tasks when rtnl lock is not used for synchronization, add 'deleted' filter field. Check value of this field when modifying filters and return error if concurrent deletion is detected. Refactor __fl_delete() to accept pointer to 'last' boolean as argument, and return error code as function return value instead. This is necessary to signal concurrent filter delete to caller. Signed-off-by: Vlad Buslov Reviewed-by: Stefano Brivio Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit 061775583e35eeaa3d12ea9641906668159f1b44 Author: Vlad Buslov Date: Thu Mar 21 15:17:35 2019 +0200 net: sched: flower: introduce reference counting for filters Extend flower filters with reference counting in order to remove dependency on rtnl lock in flower ops and allow to modify filters concurrently. Reference to flower filter can be taken/released concurrently as soon as it is marked as 'unlocked' by last patch in this series. Use atomic reference counter type to make concurrent modifications safe. Always take reference to flower filter while working with it: - Modify fl_get() to take reference to filter. - Implement tp->put() callback as fl_put() function to allow cls API to release reference taken by fl_get(). - Modify fl_change() to assume that caller holds reference to fold and take reference to fnew. - Take reference to filter while using it in fl_walk(). Implement helper functions to get/put filter reference counter. Signed-off-by: Vlad Buslov Reviewed-by: Stefano Brivio Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit 620da4860827e1d0ddc7b941d43920c19314de0e Author: Vlad Buslov Date: Thu Mar 21 15:17:34 2019 +0200 net: sched: flower: refactor fl_change As a preparation for using classifier spinlock instead of relying on external rtnl lock, rearrange code in fl_change. The goal is to group the code which changes classifier state in single block in order to allow following commits in this set to protect it from parallel modification with tp->lock. Data structures that require tp->lock protection are mask hashtable and filters list, and classifier handle_idr. fl_hw_replace_filter() is a sleeping function and cannot be called while holding a spinlock. In order to execute all sequence of changes to shared classifier data structures atomically, call fl_hw_replace_filter() before modifying them. Signed-off-by: Vlad Buslov Reviewed-by: Stefano Brivio Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit e474619a2498c57f7f0ed8b4abb29d6c62e2393b Author: Vlad Buslov Date: Thu Mar 21 15:17:33 2019 +0200 net: sched: flower: don't check for rtnl on head dereference Flower classifier only changes root pointer during init and destroy. Cls API implements reference counting for tcf_proto, so there is no danger of concurrent access to tp when it is being destroyed, even without protection provided by rtnl lock. Implement new function fl_head_dereference() to dereference tp->root without checking for rtnl lock. Use it in all flower function that obtain head pointer instead of rtnl_dereference(). Signed-off-by: Vlad Buslov Reviewed-by: Stefano Brivio Acked-by: Jiri Pirko Signed-off-by: David S. Miller commit 31f1a0e37cacfd764df5e45e6d91b9a959a5282f Author: Jakub Kicinski Date: Wed Mar 20 21:01:53 2019 -0700 nfp: remove defines for unused control bits NFP driver ABI contains bits for L2 switching which were never implemented in initially envisioned form. Remove the defines, and open up the possibility of reclaiming the bits for other uses. Signed-off-by: Jakub Kicinski Reviewed-by: Dirk van der Merwe Signed-off-by: David S. Miller commit 143eb9ac9fd90a1b3d1b35504fabe849af732e42 Merge: 83b038db255d f7ad68bf9850 Author: David S. Miller Date: Thu Mar 21 14:01:10 2019 -0700 Merge branch 'rhashtable-cleanups' NeilBrown says: ==================== Two clean-ups for rhashtable. These two patches make small improvements to rhashtable, but are otherwise unrelated. Thanks to Herbert, Miguel, and Paul for the review. ==================== Signed-off-by: David S. Miller commit f7ad68bf98506f48129267438ada1255fc4edfa2 Author: NeilBrown Date: Thu Mar 21 14:42:40 2019 +1100 rhashtable: rename rht_for_each*continue as *from. The pattern set by list.h is that for_each..continue() iterators start at the next entry after the given one, while for_each..from() iterators start at the given entry. The rht_for_each*continue() iterators are documented as though the start at the 'next' entry, but actually start at the given entry, and they are used expecting that behaviour. So fix the documentation and change the names to *from for consistency with list.h Acked-by: Herbert Xu Acked-by: Miguel Ojeda Signed-off-by: NeilBrown Signed-off-by: David S. Miller commit 4feb7c7a4fbb8f63371be31cda79433c7cf3da86 Author: NeilBrown Date: Thu Mar 21 14:42:40 2019 +1100 rhashtable: don't hold lock on first table throughout insertion. rhashtable_try_insert() currently holds a lock on the bucket in the first table, while also locking buckets in subsequent tables. This is unnecessary and looks like a hold-over from some earlier version of the implementation. As insert and remove always lock a bucket in each table in turn, and as insert only inserts in the final table, there cannot be any races that are not covered by simply locking a bucket in each table in turn. When an insert call reaches that last table it can be sure that there is no matchinf entry in any other table as it has searched them all, and insertion never happens anywhere but in the last table. The fact that code tests for the existence of future_tbl while holding a lock on the relevant bucket ensures that two threads inserting the same key will make compatible decisions about which is the "last" table. This simplifies the code and allows the ->rehash field to be discarded. We still need a way to ensure that a dead bucket_table is never re-linked by rhashtable_walk_stop(). This can be achieved by calling call_rcu() inside the locked region, and checking with rcu_head_after_call_rcu() in rhashtable_walk_stop() to see if the bucket table is empty and dead. Acked-by: Herbert Xu Reviewed-by: Paul E. McKenney Signed-off-by: NeilBrown Signed-off-by: David S. Miller commit 83b038db255d83a32c15fd003f9a921204b9215a Merge: 02afc7ad45bd 17cc9821766c Author: David S. Miller Date: Thu Mar 21 13:41:26 2019 -0700 Merge branch 'net-phy-Move-Omega-PHY-entry-to-Cygnus-PHY-driver' Florian Fainelli says: ==================== net: phy: Move Omega PHY entry to Cygnus PHY driver In order to pave the way for adding some specific Omega PHY features that may not be desirable on other products covered by the bcm7xxx PHY driver, split the Omega PHY entry into the Cygnus PHY driver such that the PHY drivers are reflective of product lines/business units maintaining them within Broadcom. No functional changes intended. ==================== Acked-by: Arun Parameswaran Signed-off-by: David S. Miller commit 17cc9821766c39f51dc7b1fa4962840b91600e77 Author: Florian Fainelli Date: Wed Mar 20 12:53:13 2019 -0700 net: phy: Move Omega PHY entry to Cygnus PHY driver Cygnus and Omega are part of the same business unit and product line, it makes sense to group PHY entries by products such that a platform can select only the drivers that it needs. Bring all the functionality that the BCM7XXX_28NM_GPHY() macro hides for us and remove the Omega PHY entry from bcm7xxx.c. As an added bonus, we now have a proper mdio_device_id entry to permit auto-loading. Signed-off-by: Florian Fainelli Reviewed-by: Scott Branden Signed-off-by: David S. Miller commit f878fe5685580a795793c2fcf880824e1c4b0911 Author: Florian Fainelli Date: Wed Mar 20 12:53:12 2019 -0700 net: phy: Prepare for moving Omega out of bcm7xxx The Omega PHY entry was added to bcm7xxx.c out of convenience and this breaks the one driver per product line paradigm that was applied up until now. Since the AFE initialization is shared between Omega and BCM7xxx move the relevant functions to bcm-phy-lib.[ch]. No functional changes introduced. Signed-off-by: Florian Fainelli Reviewed-by: Scott Branden Signed-off-by: David S. Miller commit 02afc7ad45bd6cfc9fd51fdbc132455371b63469 Author: Julian Wiedmann Date: Wed Mar 20 20:02:56 2019 +0100 net: dst: remove gc leftovers Get rid of some obsolete gc-related documentation and macros that were missed in commit 5b7c9a8ff828 ("net: remove dst gc related code"). CC: Wei Wang Signed-off-by: Julian Wiedmann Acked-by: Wei Wang Signed-off-by: David S. Miller commit 88f808f312d3b847c873352210225a43b30b3ece Merge: 10585b43420e 62be757fbe6f Author: David S. Miller Date: Thu Mar 21 13:32:35 2019 -0700 Merge branch 'net-broadcom-Remove-print-of-base-address' Florian Fainelli says: ==================== net: broadcom: Remove print of base address Some broadcom MDIO/switch/Ethernet MAC drivers insist on printing the base register virtual address which has little value. ==================== Signed-off-by: David S. Miller commit 62be757fbe6fb23548d40da2eb0d56e4cbfab990 Author: Florian Fainelli Date: Wed Mar 20 09:45:17 2019 -0700 net: systemport: Remove print of base address Since commit ad67b74d2469 ("printk: hash addresses printed with %p") pointers are being hashed when printed. Displaying the virtual memory at bootup time is not helpful, especially given we use a dev_info() which already displays the platform device's address. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller commit fbb7bc45eac7195a787d8c454c88ba518959b947 Author: Florian Fainelli Date: Wed Mar 20 09:45:16 2019 -0700 net: dsa: bcm_sf2: Remove print of base address Since commit ad67b74d2469 ("printk: hash addresses printed with %p") pointers are being hashed when printed. Displaying the virtual memory at bootup time is not helpful, we use a dev_info() print which already displays the platform device's address. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller commit 647aed232a7cda65c0f8e817f1a23c76a86a0d1e Author: Florian Fainelli Date: Wed Mar 20 09:45:15 2019 -0700 net: phy: mdio-bcm-unimac: Remove print of base address Since commit ad67b74d2469 ("printk: hash addresses printed with %p") pointers are being hashed when printed. Displaying the virtual memory at bootup time is not helpful, especially given we use a dev_info() which already displays the platform device's address. Signed-off-by: Florian Fainelli Signed-off-by: David S. Miller commit 10585b43420e2f62530e874d4e0de0d2340d256e Author: David Ahern Date: Wed Mar 20 09:24:50 2019 -0700 ipv6: Remove fallback argument from ip6_hold_safe net and null_fallback are redundant. Remove null_fallback in favor of !net check. Signed-off-by: David Ahern Acked-by: Wei Wang Signed-off-by: David S. Miller commit 9ab948a91b2c2abc8e82845c0e61f4b1683e3a4f Author: David Ahern Date: Wed Mar 20 09:18:59 2019 -0700 ipv4: Allow amount of dirty memory from fib resizing to be controllable fib_trie implementation calls synchronize_rcu when a certain amount of pages are dirty from freed entries. The number of pages was determined experimentally in 2009 (commit c3059477fce2d). At the current setting, synchronize_rcu is called often -- 51 times in a second in one test with an average of an 8 msec delay adding a fib entry. The total impact is a lot of slow down modifying the fib. This is seen in the output of 'time' - the difference between real time and sys+user. For example, using 720,022 single path routes and 'ip -batch'[1]: $ time ./ip -batch ipv4/routes-1-hops real 0m14.214s user 0m2.513s sys 0m6.783s So roughly 35% of the actual time to install the routes is from the ip command getting scheduled out, most notably due to synchronize_rcu (this is observed using 'perf sched timehist'). This patch makes the amount of dirty memory configurable between 64k where the synchronize_rcu is called often (small, low end systems that are memory sensitive) to 64M where synchronize_rcu is called rarely during a large FIB change (for high end systems with lots of memory). The default is 512kB which corresponds to the current setting of 128 pages with a 4kB page size. As an example, at 16MB the worst interval shows 4 calls to synchronize_rcu in a second blocking for up to 30 msec in a single instance, and a total of almost 100 msec across the 4 calls in the second. The trade off is allowing FIB entries to consume more memory in a given time window but but with much better fib insertion rates (~30% increase in prefixes/sec). With this patch and net.ipv4.fib_sync_mem set to 16MB, the same batch file runs in: $ time ./ip -batch ipv4/routes-1-hops real 0m9.692s user 0m2.491s sys 0m6.769s So the dead time is reduced to about 1/2 second or <5% of the real time. [1] 'ip' modified to not request ACK messages which improves route insertion times by about 20% Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 12132768dc4a79be65af75ac6262117d0adf93f3 Author: Kirill Tkhai Date: Wed Mar 20 12:16:53 2019 +0300 tun: Remove unused first parameter of tun_get_iff() Signed-off-by: Kirill Tkhai Signed-off-by: David S. Miller commit 0c3e0e3bb623c3735b8c9ab8aa8332f944f83a9f Author: Kirill Tkhai Date: Wed Mar 20 12:16:42 2019 +0300 tun: Add ioctl() TUNGETDEVNETNS cmd to allow obtaining real net ns of tun device In commit f2780d6d7475 "tun: Add ioctl() SIOCGSKNS cmd to allow obtaining net ns of tun device" it was missed that tun may change its net ns, while net ns of socket remains the same as it was created initially. SIOCGSKNS returns net ns of socket, so it is not suitable for obtaining net ns of device. We may have two tun devices with the same names in two net ns, and in this case it's not possible to determ, which of them fd refers to (TUNGETIFF will return the same name). This patch adds new ioctl() cmd for obtaining net ns of a device. Reported-by: Harald Albrecht Signed-off-by: Kirill Tkhai Signed-off-by: David S. Miller commit fc2786545395e0ca69f245e5617fee0639ff0d25 Author: Bjorn Helgaas Date: Thu Mar 21 14:39:24 2019 -0500 PCI/MSI: Remove unused mask_msi_irq() and unmask_msi_irq() Change pcie-xilinx-nwl.c to use pci_msi_mask_irq() and pci_msi_unmask_irq() like all other PCI host controller drivers. Remove the now-unused mask_msi_irq() and unmask_msi_irq(). Signed-off-by: Bjorn Helgaas CC: Michal Simek CC: linux-arm-kernel@lists.infradead.org commit 1903ba82823b244e92764a9d899ebaac5ebcd5ec Author: Bjorn Helgaas Date: Mon Nov 12 11:16:10 2018 -0600 PCI/MSI: Remove unused __write_msi_msg() and write_msi_msg() Remove unused __write_msi_msg() and write_msi_msg(). These were added by 83a18912b0e8 ("PCI/MSI: Rename write_msi_msg() to pci_write_msi_msg()"), they served their purpose, and they're no longer needed. Signed-off-by: Bjorn Helgaas CC: Jiang Liu # 83a18912b0e8 author commit 454e531f938fdc4cc783994d6bc1e924c4d89af2 Author: Himadri Pandya Date: Thu Mar 21 23:44:05 2019 +0530 staging: rtl8723bs: include: remove typedef for struct pno_scan_info Remove typedef for struct pno_scan_info as The Linux kernel coding style guidelines discourage the use of typedefs for struct types. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit bc8212ef3d2a391405175c2a73abbe237495f9d6 Author: Himadri Pandya Date: Thu Mar 21 23:44:04 2019 +0530 staging: rtl8723bs: include: remove typedef for struct pno_scan_channel_info Remove typedef for struct pno_scan_channel_info as The Linux kernel coding style guidelines discourage the use of typedefs for struct types. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit cc746197159b18c45e7921de105ef076a19e05f6 Author: Himadri Pandya Date: Thu Mar 21 23:44:03 2019 +0530 staging: rtl8723bs: include: remove typedef for struct pno_ssid_list Remove typedef from struct pno_ssid_list as The Linux kernel coding style guidelines discourage the use of typedefs for struct types. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit 8b4e7034fd30046f8bff84502c345bd6095fe124 Author: Himadri Pandya Date: Thu Mar 21 23:44:02 2019 +0530 staging: rtl8723bs: include: remove typedef for struct pno_ssid Remove typedef for struct pno_ssid as The Linux kernel coding style guidelines discourage the use of typedefs for struct types. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit 319aa7e516da8c90278b364d1d05d8f18d967a94 Author: Himadri Pandya Date: Thu Mar 21 23:44:01 2019 +0530 staging: rtl8723bs: include: remove typedef for struct pno_nlo_info Remove typedef for struct pno_nlo_info as the Linux kernel coding style guidelines discourage the use of typedefs for struct types. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit 8cf0466a2df65cd8baabe9b4c4a92f4ebc7d04db Author: Nishka Dasgupta Date: Fri Mar 22 00:18:46 2019 +0530 staging: rtl8723bs: core: Change NULL comparison to Boolean negation Change NULL comparison to Boolean negation. Issue found with Coccinelle using matchnull.cocci. Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit a752d01c3d87daccd60e484a0b1be48d05f77e55 Author: Payal Kshirsagar Date: Thu Mar 21 21:29:06 2019 +0530 staging: rtl8712: rtl8712_led.c: remove blank line To avoid style issues, remove multiple blank lines. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 32c6abf0d02ec8f025a2543394081f0f1695d6a1 Author: Payal Kshirsagar Date: Thu Mar 21 21:20:54 2019 +0530 staging: rtl8712: rtl8712_led.c: alignment should match open parenthesis Align code to the open parenthesis to fix the alignment issue. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit a936ac3add1af51c24473bfc08e588ba003c85df Author: Payal Kshirsagar Date: Thu Mar 21 21:14:10 2019 +0530 staging: rtl8712: rtl8712_led.c: remove unnecessary parentheses Fix unnecessary parentheses issue. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 447da755b8109d372e67397c56a61af67f77f0e4 Author: Payal Kshirsagar Date: Thu Mar 21 20:21:45 2019 +0530 staging: rtl8712: rtl8712_efuse.h: alignment should match open parenthesis Align code to the open parenthesis to fix the alignment issue. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 4fb5eb2da969f327d68b401b407a6e65581a1bdf Author: Payal Kshirsagar Date: Thu Mar 21 20:16:38 2019 +0530 staging: rtl8712: rtl8712_efuse.h: remove blank line To avoid style issues, remove multiple blank lines. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit f916e23f56a8b061450c52da5c28c5b2d62c11f1 Author: Payal Kshirsagar Date: Thu Mar 21 20:09:08 2019 +0530 staging: rtl8712: alignment should match open parenthesis Align code to the open parenthesis to fix the alignment issue. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 88ad17b6fd027dddb0181ecc9b18ab934b8c0158 Author: Payal Kshirsagar Date: Thu Mar 21 19:56:43 2019 +0530 staging: rtl8712: remove blank line To avoid style issues, remove multiple blank lines. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 53db33a489349128a2a430f8f0e924417c4c31c8 Author: Bhanusree Pola Date: Thu Mar 21 15:05:27 2019 +0530 Staging: media: Use !x in place of NULL comparision Test for NULL as !x instead of NULL comparisions for functions that return NULL on failure. Issue found using coccinelle Semantic patch used to solve the problem is as follows // @@ expression x; statement S; @@ x = (\(kmalloc\|devm_kzalloc\|kmalloc_array\|devm_ioremap\| usb_alloc_urb\|alloc_netdev\|dev_alloc_skb\)(...)); -if(x==NULL) +if(!x) // Signed-off-by: Bhanusree Pola Signed-off-by: Greg Kroah-Hartman commit 85b45eadbe6e605d3dae956404c4eb0aa06fe6d3 Author: Himadri Pandya Date: Thu Mar 21 15:27:17 2019 +0530 staging: netlogic: Remove unnecessary error print Kmalloc normally produces a backtrace when there is not enough memory. So it is unnecessary to print an error message that provides only this information. Hence, remove pr_error() from memory allocation check. Issue found using Coccinelle. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit 4a278a92958dfda6d0954957402338026f55d84a Author: Payal Kshirsagar Date: Thu Mar 21 16:05:36 2019 +0530 staging: vt6655: lines should not end with a parenthesis Adjust code to fix the style issue – lines should not end with a parenthesis. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 1f176773fac02e52ded0626614b1de11c6b1ce82 Author: Payal Kshirsagar Date: Thu Mar 21 15:22:56 2019 +0530 staging: vt6655: correction in spelling Correct misspelled word. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 6c851417336af718587a83b27fbe83480c31fc2f Author: Dan Carpenter Date: Thu Mar 21 09:28:22 2019 +0300 drm/amd/powerplay: Fix double unlock bug in smu_sys_set_pp_table() We already unlocked a few lines earlier so this code unlocks twice on the success path. Fixes: 289921b03fe5e ("drm/amd/powerplay: implement sysfs of pp_table for smu11 (v2)") Reviewed-by: Huang Rui Reviewed-by: Kevin Wang Signed-off-by: Dan Carpenter Signed-off-by: Alex Deucher commit 8513027a73c2f2d9a4d4c82e3e805b2f9219767f Author: Dan Carpenter Date: Thu Mar 21 12:19:57 2019 +0300 drm/amd/powerplay: Off by one in vega20_get_smu_msg_index() The > should be >= so that we don't read one element beyond the end of the vega20_message_map[] array. Fixes: 78031c2c4dcd ("drm/amd/powerplay: implement smu vega20_message_map for vega20") Reviewed-by: Kevin Wang Signed-off-by: Dan Carpenter Signed-off-by: Alex Deucher commit 06b61d4a3ccaba6c502f1ff8646ba3579e5755d3 Author: Dan Carpenter Date: Thu Mar 21 09:27:07 2019 +0300 drm/amd/powerplay: delete some dead code The "size" variable is unsigned. We never pass invalid sizes to this function and we already used it as an array offset earlier so it's too late to check here. Reviewed-by: Huang Rui Signed-off-by: Dan Carpenter Signed-off-by: Alex Deucher commit 4e8738a206d28d681c1c5195e4d085d5ffcb00fc Author: Alex Deucher Date: Wed Mar 20 16:15:22 2019 -0500 drm/amdgpu/display: fix build when DCN KCONFIG is not set Leads to an undefined symbol otherwise. Reviewed-by: Nicholas Kazlauskas Signed-off-by: Alex Deucher commit 86f7bae5cf9724073ccfd9e7452a95efb27c4fbb Author: Christian König Date: Tue Mar 19 13:03:45 2019 +0100 drm/amdgpu: revert "XGMI pstate switch initial support" This reverts commit 9b638f9751308ae3ae8f28e0c6e9decffd97f5f9. Adding this to the mapping is complete nonsense and the whole implementation looks racy. This patch wasn't thoughtfully reviewed and should be reverted for now. Signed-off-by: Christian König Acked-by: Liu, Shaoyun Signed-off-by: Alex Deucher commit 4c1c9871fb993a37157dfe4497fb9518dd108759 Author: Anushka Shukla Date: Thu Mar 21 23:56:17 2019 +0530 staging: rtl8192e: kconfig: use help over --help-- use help over --help-- for new help text Signed-off-by: Anushka Shukla Signed-off-by: Greg Kroah-Hartman commit e9e2d2e34fb11e23fdffe9c43becf46d53e903c8 Author: Vatsala Narang Date: Thu Mar 21 20:44:47 2019 +0530 staging: rtl8188eu: core: Add spaces around operators Add spaces around '+' operator to get rid of checkpatch warning. Signed-off-by: Vatsala Narang Signed-off-by: Greg Kroah-Hartman commit 72369b1b8790259abcf5a3bcbcb2a9d7a6ef4d14 Author: Vatsala Narang Date: Thu Mar 21 20:42:45 2019 +0530 staging: rtl8188eu: core: Remove unnecessary parentheses Remove unnecessary parentheses after 'address-of' operator Issue found with checkpatch.pl Signed-off-by: Vatsala Narang Signed-off-by: Greg Kroah-Hartman commit 0049363c9253d27f66e177da3c9a62fff6dcad06 Author: Sanjana Sanikommu Date: Thu Mar 21 13:24:04 2019 +0530 staging: rtl8188eu: core: rtw_mlme: Remove return variables. The last two lines in the function could be compressed into one. Avoid usage of local variable. Issue found with Coccinelle using ret.cocci. Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit c896c89066aeccdad4661f132d8eaeafdf075bdf Author: Payal Kshirsagar Date: Thu Mar 21 17:10:04 2019 +0530 staging: emxx_udc: lines should not end with parenthesis Adjust code to meet the style of “lines should not end with parenthesis”. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit c3546695830e7d919f8aadba2c64807c40dad02b Author: Christian König Date: Mon Mar 18 20:19:36 2019 +0100 drm/amdgpu: use the new VM backend for PTEs And remove the existing code when it is unused. Signed-off-by: Christian König Reviewed-by: Chunming Zhou Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher commit e6899d55904f06f2b5140931816434d114ce3c0a Author: Christian König Date: Mon Mar 18 14:26:24 2019 +0100 drm/amdgpu: use the new VM backend for PDEs And remove the existing code when it is unused. Signed-off-by: Christian König Reviewed-by: Chunming Zhou Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher commit 6dd09027a22ac78f6ab1881aa7e2e21ad61c02b8 Author: Christian König Date: Mon Mar 18 13:16:03 2019 +0100 drm/amdgpu: new VM update backends Separate out all functions for SDMA and CPU based page table updates into separate backends. This way we can keep most of the complexity of those from the core VM code. Signed-off-by: Christian König Reviewed-by: Chunming Zhou Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher commit 802a4a484a76d00af6220e402eb66a1063287d30 Author: Christian König Date: Mon Mar 18 15:28:25 2019 +0100 drm/amdgpu: reserve less memory for PDE updates Allocating 16KB was way to much, just use 2KB as a start for now. Signed-off-by: Christian König Acked-by: Chunming Zhou Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher commit d1e29462a06ac3d11645b7d939b00bcf51b10cc3 Author: Christian König Date: Mon Mar 18 12:27:35 2019 +0100 drm/amdgpu: move and rename amdgpu_pte_update_params Move the update parameter into the VM header and rename them. Signed-off-by: Christian König Reviewed-by: Chunming Zhou Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher commit 072b7a0bd2f6be51381001b65134715f36518d78 Author: Christian König Date: Mon Mar 18 12:24:03 2019 +0100 drm/amdgpu: always set and check dma addresses in the VM code Clean that up a bit and allow to always have the DMA addresses around. Signed-off-by: Christian König Acked-by: Chunming Zhou Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher commit 2c2508029f0266c0bb17fcc51beba84073b6703d Author: Christian König Date: Mon Mar 18 15:27:20 2019 +0100 drm/amdgpu: remove some unused VM defines Not needed any more. Signed-off-by: Christian König Reviewed-by: Chunming Zhou Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher commit 52012642a599d5ea090e99d6213ea736237ca7a6 Author: Sanjana Sanikommu Date: Thu Mar 21 22:01:08 2019 +0530 staging: greybus: sdio.c: Remove unncessary paranthesis. Challenge suggested by coccinelle. Remove unnecessary parathesis around the right hand of assignment using the below script. @@ binary operator op = {==,!=,&&,||,>=,<=,&,|}; expression l, r, t; @@ ( l = (r op t) | l = -( r -) ) Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit 754a25442705c4f90e0d05f1a7bd303ffe700ca9 Author: Chris Wilson Date: Thu Mar 21 16:19:08 2019 +0000 drm/i915: Skip object locking around a no-op set-domain ioctl If we are already in the desired write domain of a set-domain ioctl, then there is nothing for us to do and we can quickly return back to userspace, avoiding any lock contention. By recognising that the write_domain is always a subset of the read_domains, and excluding the no-op case of requiring 0 read_domains in the ioctl, we can infer if the current write_domain matches the target read_domains, there is nothing for us to do. Secondary aspect of this is that we undo the arbitrary fetching and potential flushing of all pages for a set-domain(.write=CPU) call on a fresh object -- which was introduced simply because we do the get-pages before taking the struct_mutex. References: 40e62d5d6be8 ("drm/i915: Acquire the backing storage outside of struct_mutex in set-domain") Signed-off-by: Chris Wilson Cc: Joonas Lahtinen Cc: Matthew Auld Reviewed-by: Matthew Auld Link: https://patchwork.freedesktop.org/patch/msgid/20190321161908.8007-2-chris@chris-wilson.co.uk commit a679f58d051025db6fa86226c4d35650b75e990f Author: Chris Wilson Date: Thu Mar 21 16:19:07 2019 +0000 drm/i915: Flush pages on acquisition When we return pages to the system, we ensure that they are marked as being in the CPU domain since any external access is uncontrolled and we must assume the worst. This means that we need to always flush the pages on acquisition if we need to use them on the GPU, and from the beginning have used set-domain. Set-domain is overkill for the purpose as it is a general synchronisation barrier, but our intent is to only flush the pages being swapped in. If we move that flush into the pages acquisition phase, we know then that when we have obj->mm.pages, they are coherent with the GPU and need only maintain that status without resorting to heavy handed use of set-domain. The principle knock-on effect for userspace is through mmap-gtt pagefaulting. Our uAPI has always implied that the GTT mmap was async (especially as when any pagefault occurs is unpredicatable to userspace) and so userspace had to apply explicit domain control itself (set-domain). However, swapping is transparent to the kernel, and so on first fault we need to acquire the pages and make them coherent for access through the GTT. Our use of set-domain here leaks into the uABI that the first pagefault was synchronous. This is unintentional and baring a few igt should be unoticed, nevertheless we bump the uABI version for mmap-gtt to reflect the change in behaviour. Another implication of the change is that gem_create() is presumed to create an object that is coherent with the CPU and is in the CPU write domain, so a set-domain(CPU) following a gem_create() would be a minor operation that merely checked whether we could allocate all pages for the object. On applying this change, a set-domain(CPU) causes a clflush as we acquire the pages. This will have a small impact on mesa as we move the clflush here on !llc from execbuf time to create, but that should have minimal performance impact as the same clflush exists but is now done early and because of the clflush issue, userspace recycles bo and so should resist allocating fresh objects. Internally, the presumption that objects are created in the CPU write-domain and remain so through writes to obj->mm.mapping is more prevalent than I expected; but easy enough to catch and apply a manual flush. For the future, we should push the page flush from the central set_pages() into the callers so that we can more finely control when it is applied, but for now doing it one location is easier to validate, at the cost of sometimes flushing when there is no need. Signed-off-by: Chris Wilson Cc: Matthew Auld Cc: Daniele Ceraolo Spurio Cc: Antonio Argenziano Cc: Joonas Lahtinen Reviewed-by: Matthew Auld Link: https://patchwork.freedesktop.org/patch/msgid/20190321161908.8007-1-chris@chris-wilson.co.uk commit 28b18b39c5a7df75ff657bd9e09f3b8091651e61 Merge: a88c26f671b0 c7a1ce397ada Author: David S. Miller Date: Thu Mar 21 10:16:54 2019 -0700 Merge branch 'ipv6-Change-addrconf_f6i_alloc-to-use-ip6_route_info_create' David Ahern says: ==================== ipv6: Change addrconf_f6i_alloc to use ip6_route_info_create addrconf_f6i_alloc is the last caller of fib6_info_alloc besides ip6_route_info_create. There really is no good reason for it do its own fib6_info initialization, so convert it to call ip6_route_info_create. ==================== Signed-off-by: David S. Miller commit c7a1ce397adacaf5d4bb2eab0a738b5f80dc3e43 Author: David Ahern Date: Thu Mar 21 05:21:35 2019 -0700 ipv6: Change addrconf_f6i_alloc to use ip6_route_info_create Change addrconf_f6i_alloc to generate a fib6_config and call ip6_route_info_create. addrconf_f6i_alloc is the last caller to fib6_info_alloc besides ip6_route_info_create, and there is no reason for it to do its own initialization on a fib6_info. Host routes need to be created even if the device is down, so add a new flag, fc_ignore_dev_down, to fib6_config and update fib6_nh_init to not error out if device is not up. Notes on the conversion: - ip_fib_metrics_init is the same as fib6_config has fc_mx set to NULL and fc_mx_len set to 0 - dst_nocount is handled by the RTF_ADDRCONF flag - dst_host is handled by fc_dst_len = 128 nh_gw does not get set after the conversion to ip6_route_info_create but it should not be set in addrconf_f6i_alloc since this is a host route not a gateway route. Everything else is a straight forward map between fib6_info and fib6_config. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit 67f69513470382b1872b12f0db4446a5ab74389a Author: David Ahern Date: Thu Mar 21 05:21:34 2019 -0700 ipv6: Move setting default metric for routes ip6_route_info_create is a low level function for ensuring fc_metric is set. Move the check and default setting to the 2 locations that do not already set fc_metric before calling ip6_route_info_create. This is required for the next patch which moves addrconf allocations to ip6_route_info_create and want the metric for host routes to be 0. Signed-off-by: David Ahern Signed-off-by: David S. Miller commit a88c26f671b0860cc93c654d45f472e43831fb33 Author: Vakul Garg Date: Thu Mar 21 11:59:57 2019 +0000 net/tls: Replace kfree_skb() with consume_skb() To free the skb in normal course of processing, consume_skb() should be used. Only for failure paths, skb_free() is intended to be used. https://www.kernel.org/doc/htmldocs/networking/API-consume-skb.html Signed-off-by: Vakul Garg Signed-off-by: David S. Miller commit 08e046c8966a872a4fb047aa940b5c991ee5635d Author: Hoang Le Date: Thu Mar 21 17:25:18 2019 +0700 tipc: fix a null pointer deref In commit c55c8edafa91 ("tipc: smooth change between replicast and broadcast") we introduced new method to eliminate the risk of message reordering that happen in between different nodes. Unfortunately, we forgot checking at receiving side to ignore intra node. We fix this by checking and returning if arrived message from intra node. syzbot report: ================================================================== kasan: CONFIG_KASAN_INLINE enabled kasan: GPF could be caused by NULL-ptr deref or user memory access general protection fault: 0000 [#1] PREEMPT SMP KASAN CPU: 0 PID: 7820 Comm: syz-executor418 Not tainted 5.0.0+ #61 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 RIP: 0010:tipc_mcast_filter_msg+0x21b/0x13d0 net/tipc/bcast.c:782 Code: 45 c0 0f 84 39 06 00 00 48 89 5d 98 e8 ce ab a5 fa 49 8d bc 24 c8 00 00 00 48 b9 00 00 00 00 00 fc ff df 48 89 f8 48 c1 e8 03 <80> 3c 08 00 0f 85 9a 0e 00 00 49 8b 9c 24 c8 00 00 00 48 be 00 00 RSP: 0018:ffff8880959defc8 EFLAGS: 00010202 RAX: 0000000000000019 RBX: ffff888081258a48 RCX: dffffc0000000000 RDX: 0000000000000000 RSI: ffffffff86cab862 RDI: 00000000000000c8 RBP: ffff8880959df030 R08: ffff8880813d0200 R09: ffffed1015d05bc8 R10: ffffed1015d05bc7 R11: ffff8880ae82de3b R12: 0000000000000000 R13: 000000000000002c R14: 0000000000000000 R15: ffff888081258a48 FS: 000000000106a880(0000) GS:ffff8880ae800000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000020001cc0 CR3: 0000000094a20000 CR4: 00000000001406f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: tipc_sk_filter_rcv+0x182d/0x34f0 net/tipc/socket.c:2168 tipc_sk_enqueue net/tipc/socket.c:2254 [inline] tipc_sk_rcv+0xc45/0x25a0 net/tipc/socket.c:2305 tipc_sk_mcast_rcv+0x724/0x1020 net/tipc/socket.c:1209 tipc_mcast_xmit+0x7fe/0x1200 net/tipc/bcast.c:410 tipc_sendmcast+0xb36/0xfc0 net/tipc/socket.c:820 __tipc_sendmsg+0x10df/0x18d0 net/tipc/socket.c:1358 tipc_sendmsg+0x53/0x80 net/tipc/socket.c:1291 sock_sendmsg_nosec net/socket.c:651 [inline] sock_sendmsg+0xdd/0x130 net/socket.c:661 ___sys_sendmsg+0x806/0x930 net/socket.c:2260 __sys_sendmsg+0x105/0x1d0 net/socket.c:2298 __do_sys_sendmsg net/socket.c:2307 [inline] __se_sys_sendmsg net/socket.c:2305 [inline] __x64_sys_sendmsg+0x78/0xb0 net/socket.c:2305 do_syscall_64+0x103/0x610 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x4401c9 Code: 18 89 d0 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 fb 13 fc ff c3 66 2e 0f 1f 84 00 00 00 00 RSP: 002b:00007ffd887fa9d8 EFLAGS: 00000246 ORIG_RAX: 000000000000002e RAX: ffffffffffffffda RBX: 00000000004002c8 RCX: 00000000004401c9 RDX: 0000000000000000 RSI: 0000000020002140 RDI: 0000000000000003 RBP: 00000000006ca018 R08: 0000000000000000 R09: 00000000004002c8 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000401a50 R13: 0000000000401ae0 R14: 0000000000000000 R15: 0000000000000000 Modules linked in: ---[ end trace ba79875754e1708f ]--- Reported-by: syzbot+be4bdf2cc3e85e952c50@syzkaller.appspotmail.com Fixes: c55c8eda ("tipc: smooth change between replicast and broadcast") Acked-by: Jon Maloy Signed-off-by: Hoang Le Signed-off-by: David S. Miller commit 77d5ad4048fba5bd6e16f78498d4b41e5534b8f5 Author: Hoang Le Date: Thu Mar 21 17:25:17 2019 +0700 tipc: fix use-after-free in tipc_sk_filter_rcv skb free-ed in: 1/ condition 1: tipc_sk_filter_rcv -> tipc_sk_proto_rcv 2/ condition 2: tipc_sk_filter_rcv -> tipc_group_filter_msg This leads to a "use-after-free" access in the next condition. We fix this by intializing the variable at declaration, then it is safe to check this variable to continue processing if condition matches. syzbot report: ================================================================== BUG: KASAN: use-after-free in tipc_sk_filter_rcv+0x2166/0x34f0 net/tipc/socket.c:2167 Read of size 4 at addr ffff88808ea58534 by task kworker/u4:0/7 CPU: 0 PID: 7 Comm: kworker/u4:0 Not tainted 5.0.0+ #61 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Workqueue: tipc_send tipc_conn_send_work Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x172/0x1f0 lib/dump_stack.c:113 print_address_description.cold+0x7c/0x20d mm/kasan/report.c:187 kasan_report.cold+0x1b/0x40 mm/kasan/report.c:317 __asan_report_load4_noabort+0x14/0x20 mm/kasan/generic_report.c:131 tipc_sk_filter_rcv+0x2166/0x34f0 net/tipc/socket.c:2167 tipc_sk_enqueue net/tipc/socket.c:2254 [inline] tipc_sk_rcv+0xc45/0x25a0 net/tipc/socket.c:2305 tipc_topsrv_kern_evt+0x3b7/0x580 net/tipc/topsrv.c:610 tipc_conn_send_to_sock+0x43e/0x5f0 net/tipc/topsrv.c:283 tipc_conn_send_work+0x65/0x80 net/tipc/topsrv.c:303 process_one_work+0x98e/0x1790 kernel/workqueue.c:2269 worker_thread+0x98/0xe40 kernel/workqueue.c:2415 kthread+0x357/0x430 kernel/kthread.c:253 ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:352 Reported-by: syzbot+e863893591cc7a622e40@syzkaller.appspotmail.com Fixes: c55c8eda ("tipc: smooth change between replicast and broadcast") Acked-by: Jon Maloy Signed-off-by: Hoang Le Signed-off-by: David S. Miller commit 706707341bef5b076e7c271a2dab7e6cd6af7902 Author: Alexander Sverdlin Date: Tue Mar 19 16:57:13 2019 +0000 mtd: spi-nor: Fix comment of spi_nor_find_best_erase_type() Erase types are sorted *smallest* type first, refer to spi_nor_sort_erase_mask(). Signed-off-by: Alexander Sverdlin Reviewed-by: Tudor Ambarus Signed-off-by: Miquel Raynal commit 3ddc8adbbc76832e96b8500ff50f4b20b9060128 Author: Geert Uytterhoeven Date: Tue Mar 12 11:45:49 2019 +0100 mtd: spi-nor: Print all JEDEC ID bytes on error If identification of an SPI NOR FLASH fails, the JEDEC ID is printed, which is stored in the first 3 bytes of the ID read from the FLASH. However, the extended JEDEC ID, which is stored in the remaining bytes, also matters, as it is used for identification of some FLASH types. Print all (currently 6) ID bytes read to ease failure analysis and debugging. Suggested-by: Tudor Ambarus Signed-off-by: Geert Uytterhoeven Reviewed-by: Tudor Ambarus Signed-off-by: Miquel Raynal commit 4daffb664a69532efdfee54f3eac5ce54e8c37dd Author: Chris Wilson Date: Thu Mar 21 14:07:11 2019 +0000 drm/i915: Stop storing the context name as the timeline name The timeline->name is only used for convenience in pretty printing the i915_request.fence->ops->get_timeline_name() and it is just as convenient to pull it from the gem_context directly. The few instances of its use inside GEM_TRACE() has proven more of a nuisance than helpful, so not worth saving imo. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190321140711.11190-4-chris@chris-wilson.co.uk commit 3e05531243d032bbff157999c99a30a969966927 Author: Chris Wilson Date: Thu Mar 21 14:07:10 2019 +0000 drm/i915: Stop storing ctx->user_handle The user_handle need only be known by userspace for it to lookup the context via the idr; internally we have no use for it. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190321140711.11190-3-chris@chris-wilson.co.uk commit 7dc40713618c884bf07c030d1ab1f47a9dc1f310 Author: Chris Wilson Date: Thu Mar 21 14:07:09 2019 +0000 drm/i915: Introduce a mutex for file_priv->context_idr Define a mutex for the exclusive use of interacting with the per-file context-idr, that was previously guarded by struct_mutex. This allows us to reduce the coverage of struct_mutex, with a view to removing the last bits coordinating GEM context later. (In the short term, we avoid taking struct_mutex while using the extended constructor functions, preventing some nasty recursion.) v2: s/context_lock/context_idr_lock/ Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190321140711.11190-2-chris@chris-wilson.co.uk commit 3aa9945a528e7616b5c8fe5d7aa7d4aaf52b0af2 Author: Chris Wilson Date: Thu Mar 21 14:07:08 2019 +0000 drm/i915: Separate GEM context construction and registration to userspace In later patches, it became apparent that userspace can see a partially constructed GEM context and begin using it before it was ready, to much hilarity. Close this window of opportunity by lifting the registration of the context with userspace (the insertion of the context into the filp's idr) to the very end of the CONTEXT_CREATE ioctl. Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190321140711.11190-1-chris@chris-wilson.co.uk commit d74fd06f44108832c7d879419fe8de976519e522 Author: Paul Cercueil Date: Tue Mar 19 15:53:57 2019 +0100 mtd: rawnand: ingenic: Rename jz4780_bch_init to jz4780_bch_reset The jz4780_bch_init name was confusing, as it suggested that its content should be executed once at init time, whereas what the function really does is reset the hardware for a new ECC operation. Signed-off-by: Paul Cercueil Signed-off-by: Miquel Raynal commit a919619e9a2530c5eaa011edc2a154d770daa2ad Author: Paul Cercueil Date: Tue Mar 19 15:53:56 2019 +0100 mtd: rawnand: ingenic: Rename jz4780_nand driver to ingenic_nand The jz4780_nand driver will be modified to handle all the Ingenic JZ47xx SoCs that the upstream Linux kernel supports (JZ4740, JZ4725B, JZ4770, JZ4780), so it makes sense to rename it. Signed-off-by: Paul Cercueil Signed-off-by: Miquel Raynal commit 65bba52d3250aadcc55ff189154befd23e4dba79 Author: Paul Cercueil Date: Tue Mar 19 15:53:55 2019 +0100 mtd: rawnand: ingenic: Use SPDX license notifiers Use SPDX license notifiers instead of GPLv2 license text in the headers. Signed-off-by: Paul Cercueil Reviewed-by: Boris Brezillon Signed-off-by: Miquel Raynal commit 1838a7b31fcb634df771e1ae1beb9723de47f6bd Author: Paul Cercueil Date: Tue Mar 19 15:53:54 2019 +0100 mtd: rawnand: Move drivers for Ingenic SoCs to subfolder Before adding support for more SoCs and seeing the number of files for these drivers grow, we move them to their own subfolder to keep it tidy. Signed-off-by: Paul Cercueil Signed-off-by: Miquel Raynal commit badb37f1601de0642330125928104e2d19dcc8da Author: Paul Cercueil Date: Tue Mar 19 15:53:53 2019 +0100 dt-bindings: mtd: ingenic: Use standard ecc-engine property The 'ingenic,bch-controller' property is now deprecated and the 'ecc-engine' property should be used instead. Signed-off-by: Paul Cercueil Reviewed-by: Rob Herring Signed-off-by: Miquel Raynal commit 057c319a0fe697b2fc9c55015fec601123f7ac4b Author: Paul Cercueil Date: Tue Mar 19 15:53:52 2019 +0100 dt-bindings: mtd: ingenic: Change 'BCH' to 'ECC' in documentation The JZ4740 ECC hardware is not BCH but Reed-Solomon, so it makes more sense to use the more generic ECC term. Signed-off-by: Paul Cercueil Reviewed-by: Rob Herring Signed-off-by: Miquel Raynal commit a07c63d3e95de359f71e991dfdf53b47cb23c15d Author: Paul Cercueil Date: Tue Mar 19 15:53:51 2019 +0100 dt-bindings: mtd: ingenic: Add compatible strings for JZ4740 and JZ4725B Add compatible strings to probe the jz4780-nand and jz4780-bch drivers from devicetree on the JZ4725B and JZ4740 SoCs from Ingenic. Signed-off-by: Paul Cercueil Reviewed-by: Rob Herring Signed-off-by: Miquel Raynal commit 6d50e9b6dcd0013c2ab690fcd1f3efce9daf9ce9 Author: Martin Blumenstingl Date: Mon Mar 18 21:47:22 2019 +0100 mtd: rawnand: meson: fix a potential memory leak in meson_nfc_read_buf meson_nfc_dma_buffer_setup() is called with the "info" buffer which is allocated a few lines before using kzalloc(). If meson_nfc_dma_buffer_setup() fails we need to free the allocated "info" buffer instead of only freeing it upon success. Fixes: 8fae856c53500a ("mtd: rawnand: meson: add support for Amlogic NAND flash controller") Signed-off-by: Martin Blumenstingl Acked-by: Liang Yang Reviewed-by: Kevin Hilman Signed-off-by: Miquel Raynal commit 91e9dd7720848fc0bd1c0a96d4dd0b169d8e542a Author: Martin Blumenstingl Date: Mon Mar 18 21:47:21 2019 +0100 mtd: rawnand: meson: add missing ENOMEM check in meson_nfc_read_buf() kzalloc() can return NULL if memory could not be allocated. Check the return value of the kzalloc() call in meson_nfc_read_buf() to make it consistent with other memory allocations within the meson_nand driver. Fixes: 8fae856c53500a ("mtd: rawnand: meson: add support for Amlogic NAND flash controller") Signed-off-by: Martin Blumenstingl Acked-by: Liang Yang Reviewed-by: Kevin Hilman Signed-off-by: Miquel Raynal commit b849f8b59c682c2f3c55e14224d6d4d5360fc605 Author: Tudor Ambarus Date: Wed Feb 13 09:00:17 2019 +0000 mtd: rawnand: atmel: switch to SPDX license identifiers Adopt the SPDX license identifiers to ease license compliance management. Signed-off-by: Tudor Ambarus Signed-off-by: Miquel Raynal commit ccf20ccccea39446fe15fe503d050c6a8fae1eff Author: Tudor Ambarus Date: Wed Feb 13 09:00:05 2019 +0000 mtd: rawnand: atmel: add sam9x60 nand controller support The sam9x60 board defines the CCFG_EBICSA register under SFR, and not as a MATRIX register, as previous boards do. NAND Flash I/Os are connected to D16–D23, thus SFR_CCFG_EBICSA.NFD0_ON_D16 is set to 1. Signed-off-by: Tudor Ambarus Signed-off-by: Miquel Raynal commit b1e8e0aa15a08a40af496b3377efa90e1750ab3d Author: Tudor Ambarus Date: Wed Feb 13 09:00:01 2019 +0000 dt-bindings: mtd: atmel-nand: add sam9x60 compatible Add compatibility string for the sam9x60 nand controller. Signed-off-by: Tudor Ambarus Reviewed-by: Rob Herring Signed-off-by: Miquel Raynal commit e2c19c506c87638559d436a068d11173c3991ffd Author: Tudor Ambarus Date: Wed Feb 13 08:59:58 2019 +0000 mtd: rawnand: atmel: add generic name for EBICSA regmap The sam9x60 board defines the CCFG_EBICSA register under SFR, and not as a MATRIX register, as previous boards do. Add a more generic name for the EBICSA regmap, as a prerequisite for sam9x60 nand controller support. Signed-off-by: Tudor Ambarus Signed-off-by: Miquel Raynal commit 3e0863dd4c1f5b2c3b0ecd4320d3802ad975525d Author: Tudor Ambarus Date: Wed Feb 13 08:59:55 2019 +0000 memory: atmel-ebi: add sam9x60 EBI support The sam9x60 board defines the CCFG_EBICSA register under SFR, and not as a MATRIX register, as previous boards do. Signed-off-by: Tudor Ambarus Acked-by: Alexandre Belloni Signed-off-by: Miquel Raynal commit 996acbfb1fe370cfaa3c7469e93fc54c634fba08 Author: Tudor Ambarus Date: Wed Feb 13 08:59:52 2019 +0000 dt-bindings: memory: atmel-ebi: add sam9x60 compatible Add compatibility string for the sam9x60 EBI. Signed-off-by: Tudor Ambarus Acked-by: Alexandre Belloni Reviewed-by: Rob Herring Signed-off-by: Miquel Raynal commit ad7bdbc84730a898fba6eb5e839f20dab2098afd Author: Tudor Ambarus Date: Wed Feb 13 08:59:48 2019 +0000 memory: atmel-ebi: add generic name for ebi regmap The sam9x60 board defines the CCFG_EBICSA register under SFR, and not as a MATRIX register, as previous boards do. Add a more generic name for the EBI regmap as a prerequisite for sam9x60 ebi support. Signed-off-by: Tudor Ambarus Acked-by: Alexandre Belloni Signed-off-by: Miquel Raynal commit b309df2422c052330a2411c827eb697ee0114ac6 Author: Tudor Ambarus Date: Wed Feb 13 08:59:44 2019 +0000 ARM: at91: add sam9x60 SFR definitions Keep generic names, as there are no conflicts with previous SFR definitions. While touching bits, update AT91_OHCIICR_USB_SUSPEND to use GENMASK, replace unused AT91_OHCIICR_SUSPEND_A/B/C with a more generic macro, align values on tab-width. Signed-off-by: Tudor Ambarus Acked-by: Alexandre Belloni Signed-off-by: Miquel Raynal commit 64f1da10ca5e8a92bf397c43f852db1683d2e172 Author: Gustavo A. R. Silva Date: Fri Feb 8 11:49:30 2019 -0600 mtd: rawnand: Mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warning: drivers/mtd/nand/raw/diskonchip.c: In function ‘doc_probe’: ./include/linux/printk.h:303:2: warning: this statement may fall through [-Wimplicit-fallthrough=] printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/mtd/nand/raw/diskonchip.c:1479:4: note: in expansion of macro ‘pr_err’ pr_err("DiskOnChip Millennium Plus 32MB is not supported, ignoring.\n"); ^~~~~~ drivers/mtd/nand/raw/diskonchip.c:1480:3: note: here default: ^~~~~~~ drivers/mtd/nand/raw/nandsim.c: In function ‘ns_init_module’: drivers/mtd/nand/raw/nandsim.c:2254:22: warning: this statement may fall through [-Wimplicit-fallthrough=] chip->bbt_options |= NAND_BBT_NO_OOB; drivers/mtd/nand/raw/nandsim.c:2255:2: note: here case 1: ^~~~ drivers/mtd/nand/raw/nuc900_nand.c: In function ‘nuc900_nand_command_lp’: ./arch/x86/include/asm/io.h:91:22: warning: this statement may fall through [-Wimplicit-fallthrough=] #define __raw_writel __writel drivers/mtd/nand/raw/nuc900_nand.c:52:2: note: in expansion of macro ‘__raw_writel’ __raw_writel((val), (dev)->reg + REG_SMCMD) ^~~~~~~~~~~~ drivers/mtd/nand/raw/nuc900_nand.c:196:3: note: in expansion of macro ‘write_cmd_reg’ write_cmd_reg(nand, NAND_CMD_READSTART); ^~~~~~~~~~~~~ drivers/mtd/nand/raw/nuc900_nand.c:197:2: note: here default: ^~~~~~~ drivers/mtd/nand/raw/omap_elm.c: In function ‘elm_context_restore’: drivers/mtd/nand/raw/omap_elm.c:512:4: warning: this statement may fall through [-Wimplicit-fallthrough=] elm_write_reg(info, ELM_SYNDROME_FRAGMENT_4 + offset, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ regs->elm_syndrome_fragment_4[i]); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/mtd/nand/raw/omap_elm.c:514:3: note: here case BCH8_ECC: ^~~~ drivers/mtd/nand/raw/omap_elm.c:517:4: warning: this statement may fall through [-Wimplicit-fallthrough=] elm_write_reg(info, ELM_SYNDROME_FRAGMENT_2 + offset, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ regs->elm_syndrome_fragment_2[i]); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/mtd/nand/raw/omap_elm.c:519:3: note: here case BCH4_ECC: ^~~~ drivers/mtd/nand/raw/omap_elm.c: In function ‘elm_context_save’: drivers/mtd/nand/raw/omap_elm.c:466:37: warning: this statement may fall through [-Wimplicit-fallthrough=] regs->elm_syndrome_fragment_4[i] = elm_read_reg(info, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~ ELM_SYNDROME_FRAGMENT_4 + offset); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/mtd/nand/raw/omap_elm.c:468:3: note: here case BCH8_ECC: ^~~~ drivers/mtd/nand/raw/omap_elm.c:471:37: warning: this statement may fall through [-Wimplicit-fallthrough=] regs->elm_syndrome_fragment_2[i] = elm_read_reg(info, ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~ ELM_SYNDROME_FRAGMENT_2 + offset); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/mtd/nand/raw/omap_elm.c:473:3: note: here case BCH4_ECC: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enabling -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Miquel Raynal commit f67ed1461eff527f1b84867708ae17d92e4d76d0 Author: Fabio Estevam Date: Thu Feb 7 08:50:54 2019 -0200 mtd: rawnand: gpmi: Introduce GPMI_IS_MXS() macro Introduce a GPMI_IS_MXS() macro to take into account the cases when mx23 or mx28 are used, which helps readability. Signed-off-by: Fabio Estevam Signed-off-by: Miquel Raynal commit 981d1aa0697ce1393e00933f154d181e965703d0 Author: Boris Brezillon Date: Thu Jan 24 15:56:43 2019 +0100 mtd: spinand: Use the spi-mem dirmap API Make use of the spi-mem direct mapping API to let advanced controllers optimize read/write operations when they support direct mapping. Signed-off-by: Boris Brezillon Cc: Stefan Roese Signed-off-by: Miquel Raynal Tested-by: Stefan Roese commit 922bfb7c27f76104fa2d19400a592d3e6e0f5fd8 Author: Dinh Nguyen Date: Tue Feb 5 16:36:15 2019 -0600 arm64: dts: stratix10: enable MMC highspeed support Add 'cap-mmc-highspeed' property to enable high-speed support for MMC cards. Signed-off-by: Dinh Nguyen commit 17808d445b6f32201ebf2f5f4860d8b6fd6c1dab Author: Dinh Nguyen Date: Tue Feb 5 16:32:47 2019 -0600 ARM: dts: socfpga: enable MMC highspeed support Add 'cap-mmc-highspeed' property to enable high-speed support for MMC cards. Signed-off-by: Dinh Nguyen commit ca1438dcb34c7fcad63b6ce14ea63a870b92a69b Author: Arnd Bergmann Date: Thu Mar 21 13:42:25 2019 +0100 spi: export tracepoint symbols to modules The newly added tracepoints in the spi-mxs driver cause a link error when the driver is a loadable module: ERROR: "__tracepoint_spi_transfer_stop" [drivers/spi/spi-mxs.ko] undefined! ERROR: "__tracepoint_spi_transfer_start" [drivers/spi/spi-mxs.ko] undefined! I'm not quite sure where to put the export statements, but directly after the inclusion of the header seems as good as any other place. Fixes: f3fdea3af405 ("spi: mxs: add tracing to custom .transfer_one_message callback") Signed-off-by: Arnd Bergmann Signed-off-by: Mark Brown commit 69c8a9bcb03222ad3b949064ac05de463c7c9aa3 Author: Clark Wang Date: Thu Mar 21 09:57:12 2019 +0000 spi: lpspi: fix dataloss when SS is inactivated between every words If we don't use CONT to keep SS activated or use DMA mode without cs-gpio, SS will be inactivated between every words. The word here means the data sent once which length can be set as 1/2/4 bytes. In the isr function, we read the FSR_RXCOUNT just behind the fsl_lpspi_read_rx_fifo. This causes the value of FSR_RXCOUNT cannot reflect whether there is still data not sent timely. So do this judgement by FSR_TXCOUNT. Signed-off-by: Clark Wang Signed-off-by: Mark Brown commit e69b394703e032e56a140172440ec4f9890b536d Author: Axel Lin Date: Mon Mar 4 16:57:52 2019 +0800 regulator: tps65086: Fix tps65086_ldoa1_ranges for selector 0xB selector 0xB (1011) should be 2.6V rather than 2.7V, fit ix. Table 5-4. LDOA1 Output Voltage Options VID Bits VOUT VID Bits VOUT VID Bits VOUT VID Bits VOUT 0000 1.35 0100 1.8 1000 2.3 1100 2.85 0001 1.5 0101 1.9 1001 2.4 1101 3.0 0010 1.6 0110 2.0 1010 2.5 1110 3.3 0011 1.7 0111 2.1 1011 2.6 1111 Not Used Fixes: d2a2e729a666 ("regulator: tps65086: Add regulator driver for the TPS65086 PMIC") Signed-off-by: Axel Lin Acked-by: Andrew F. Davis Signed-off-by: Mark Brown commit 7287275b4301e230be9e4569431c7dacb67ebc13 Author: Arnd Bergmann Date: Mon Mar 4 20:38:29 2019 +0100 regulator: add regulator_get_linear_step() stub helper The regulator header has empty inline functions for most interfaces, but not regulator_get_linear_step(), which has just grown a user that does not depend on regulators otherwise: drivers/clk/tegra/clk-tegra124-dfll-fcpu.c: In function 'get_alignment_from_regulator': drivers/clk/tegra/clk-tegra124-dfll-fcpu.c:555:19: error: implicit declaration of function 'regulator_get_linear_step'; did you mean 'regulator_get_drvdata'? [-Werror=implicit-function-declaration] align->step_uv = regulator_get_linear_step(reg); ^~~~~~~~~~~~~~~~~~~~~~~~~ regulator_get_drvdata cc1: all warnings being treated as errors scripts/Makefile.build:278: recipe for target 'drivers/clk/tegra/clk-tegra124-dfll-fcpu.o' failed Add the missing stub along the others. Fixes: b3cf8d069505 ("clk: tegra: dfll: CVB calculation alignment with the regulator") Signed-off-by: Arnd Bergmann Signed-off-by: Mark Brown commit 689b9e025f0cbf2f537566f8334ab6fd937336ae Author: Axel Lin Date: Mon Mar 4 12:41:33 2019 +0800 regulator: tps65217: Simplify linear range for selector 25-52 The original code separates the selector 25-52 into 2 ranges on purpose because DCDC1/DCDC3 only support up to 1.8V/1.5V in the old code. Both DCDC1 and DCDC3 support up to 3.3V since commit b4c2e158a1e1 ("regulator: tps65217: Allow DCDC1 and DCDC3 up to 3.3V"), so merge 25-30 and 31-52 ranges to one range. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 4e105e3b4bc6a1825aefc56f11951e1496a5bb3c Author: Axel Lin Date: Thu Mar 21 20:00:38 2019 +0800 regulator: tps65132: Constify tps65132_regulator_ops and tps_regs_desc The tps65132_regulator_ops and tps_regs_desc never need to be modified, make them const so compiler can put them to .rodata. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 2e62e03333bb41277c920844e72bf26a29724b14 Author: Axel Lin Date: Thu Mar 21 20:00:37 2019 +0800 regulator: tps65132: Remove unneeded fields from struct tps65132_regulator These fields are not really need, remove them. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 008fe4e5382293e2da96a4dc75b95782a5f95be8 Author: Kuninori Morimoto Date: Wed Mar 20 13:57:02 2019 +0900 ASoC: simple-card-utils: test memory allocation li->conf will be 0 if it was not DPCM case. Then, 1) we shouldn't call devm_kcalloc() with size 0, 2) we need NULL pointer check if li->conf was not 0. This patch fixed above issues. Special thanks to Pierre-Louis Bossart Reported-by: Pierre-Louis Bossart Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown commit 16123412a6283bcf956f1a377f2e799a79c2b439 Author: Piotr Stankiewicz Date: Wed Mar 20 17:37:32 2019 +0000 ASoC: lochnagar: Add driver to support Lochnagar 2 sound card Lochnagar is an evaluation and development board for Cirrus Logic Smart CODEC and Amp devices. It allows the connection of most Cirrus Logic devices on mini-cards, as well as allowing connection of various application processor systems to provide a full evaluation platform. Lochnagar 2 provides a set of line inputs/outputs, and a USB audio device. This driver adds support for these analog line connections and the Lochnagar side of the USB audio link. Signed-off-by: Piotr Stankiewicz Signed-off-by: Charles Keepax Signed-off-by: Mark Brown commit d9b27d50340c4c90637ebf24106c9064992e2f2a Author: Charles Keepax Date: Wed Mar 20 17:37:31 2019 +0000 ASoC: lochnagar: Add device tree binding document Lochnagar is an evaluation and development board for Cirrus Logic Smart CODEC and Amp devices. It allows the connection of most Cirrus Logic devices on mini-cards, as well as allowing connection of various application processor systems to provide a full evaluation platform. This driver supports the board controller chip on the Lochnagar board. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown commit c95e3a4b96293403a427b5185e60fad28af51fdd Author: Annaliese McDermond Date: Wed Mar 20 19:38:44 2019 -0700 ASoC: tlv320aic32x4: Properly Set Processing Blocks Different processing blocks are required for different sampling rates and power parameters. Set the processing blocks based on this information. Signed-off-by: Annaliese McDermond Signed-off-by: Mark Brown commit b87d37d0231fc731a04b599b7c05427ceffdf9f6 Author: Codrin Ciubotariu Date: Tue Mar 5 11:26:45 2019 +0000 ASoC: mchp-i2s-mcc: add driver for I2SC Multi-Channel Controller The Inter-IC Sound Controller (I2SMCC) provides a 5-wire, bidirectional, synchronous, digital audio link to external audio devices: I2SMCC_DIN, I2SMCC_DOUT, I2SMCC_WS, I2SMCC_CK, and I2SMCC_MCK pins. The I2SMCC complies with the Inter-IC Sound (I2S) bus specification and supports a Time Division Multiplexed (TDM) interface with external multi-channel audio codecs. The I2SMCC consists of a receiver, a transmitter and a common clock generator that can be enabled separately to provide Master, Slave or Controller modes with receiver and/or transmitter active. DMA Controller channels, separate for the receiver and for the transmitter, allow a continuous high bit rate data transfer without processor intervention to the following: - Audio CODECs in Master, Slave, or Controller mode - Stereo DAC or ADC through a dedicated I2S serial interface - Multi-channel or multiple stereo DACs or ADCs, using the TDM format This IP is embedded in Microchip's new sam9x60 SoC. Signed-off-by: Codrin Ciubotariu Signed-off-by: Mark Brown commit 4c798984c0dcd7649a6ff8a3d64361ba896efe61 Author: Codrin Ciubotariu Date: Tue Mar 5 11:26:42 2019 +0000 ASoC: mchp-i2s-mcc: dt-bindings: add DT bindings for I2S Multi-Channel Controller This patch adds DT bindings for the new Microchip I2S Multi-Channel controller embedded inside sam9x60 SoCs. Signed-off-by: Codrin Ciubotariu Signed-off-by: Mark Brown commit ad11e59f52d6fc75037ac3cb66dc711b83c1bbf8 Author: Kuninori Morimoto Date: Wed Mar 20 13:56:50 2019 +0900 ASoC: simple-card-utils: rename asoc_simple_card_xxx() to asoc_simple_() Current simple-card-utils is using asoc_simple_card_xxx() for each function naming, but it is very verbose. Thus it is easy to be over 80 char. This patch renames it to asoc_simple_xxx(). Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown commit 8f7f298a333761a528e103cda3b42f3a416ad1ee Author: Kuninori Morimoto Date: Wed Mar 20 13:56:36 2019 +0900 ASoC: simple-card-utils: separate asoc_simple_card_parse_dai() The difference between simple-card / audio-graph are just using OF graph style, or not. In other words, other things should be same. This means, simple-card/audio-graph common functions should be implemented at simple-card-utils, and its own functions should be implemented at each files. Current simple-card / audio-graph are using asoc_simple_card_parse_dai() which is different implementation. But, these are implemanted at simple-card-utils. It should be implemanted at each files. This patch separate these into each files. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown commit 65a5056b21202eff7f54243e587183f4bb6ed352 Author: Kuninori Morimoto Date: Wed Mar 20 13:56:26 2019 +0900 ASoC: simple-card-utils: share asoc_simple_card_init_priv() The difference between simple-card / audio-graph are just using OF graph style, or not. In other words, other things should be same. This means, simple-card/audio-graph common functions should be implemented at simple-card-utils, and its own functions should be implemented at each files. Current simple-card / audio-graph are initializing each priv, but it is same operation. This patch adds new asoc_simple_card_init_priv() and initialize priv by same operation. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown commit 629f75440a68220a78aef9d8569831824890c47d Author: Kuninori Morimoto Date: Wed Mar 20 13:56:06 2019 +0900 ASoC: simple-card-utils: share asoc_simple_be_hw_params_fixup() The difference between simple-card / audio-graph are just using OF graph style, or not. In other words, other things should be same. This means, simple-card/audio-graph common functions should be implemented at simple-card-utils, and its own functions should be implemented at each files. Current simple-card / audio-graph have almost same functions. This patch shares asoc_simple_be_hw_params_fixup() between in these 2 drivers. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown commit ad934ca8010843482d61fda46786449a9bc99e10 Author: Kuninori Morimoto Date: Wed Mar 20 13:55:52 2019 +0900 ASoC: simple-card-utils: share asoc_simple_dai_init() The difference between simple-card / audio-graph are just using OF graph style, or not. In other words, other things should be same. This means, simple-card/audio-graph common functions should be implemented at simple-card-utils, and its own functions should be implemented at each files. Current simple-card / audio-graph have almost same functions. This patch shares asoc_simple_dai_init() between in these 2 drivers. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown commit f48dcbb6d47d870cf3a03f453c923dd262158c66 Author: Kuninori Morimoto Date: Wed Mar 20 13:55:39 2019 +0900 ASoC: simple-card-utils: share asoc_simple_hw_param() The difference between simple-card / audio-graph are just using OF graph style, or not. In other words, other things should be same. This means, simple-card/audio-graph common functions should be implemented at simple-card-utils, and its own functions should be implemented at each files. Current simple-card / audio-graph have almost same functions. This patch shares asoc_simple_hw_param() between in these 2 drivers. One note is that only simple-card supports simple_set_clk_rate() at hw_param from commit e9be4ffd4f40fcb ("ASoC: simple-card: set cpu dai clk in hw_params"). By this patch, audio-graph has same feature. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown commit 686911b46fb5a08df142fe22b6c06dc6fbd3ba65 Author: Kuninori Morimoto Date: Wed Mar 20 13:55:27 2019 +0900 ASoC: simple-card-utils: share asoc_simple_shutdown() The difference between simple-card / audio-graph are just using OF graph style, or not. In other words, other things should be same. This means, simple-card/audio-graph common functions should be implemented at simple-card-utils, and its own functions should be implemented at each files. Current simple-card / audio-graph have almost same functions. This patch shares asoc_simple_shutdown() between in these 2 drivers. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown commit f38df5bf0c9cb905fa9d5abc86c3a00128cdbba5 Author: Kuninori Morimoto Date: Wed Mar 20 13:55:14 2019 +0900 ASoC: simple-card-utils: share asoc_simple_startup() The difference between simple-card / audio-graph are just using OF graph style, or not. In other words, other things should be same. This means, simple-card/audio-graph common functions should be implemented at simple-card-utils, and its own functions should be implemented at each files. Current simple-card / audio-graph have almost same functions. This patch shares asoc_simple_startup() between in these 2 drivers. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown commit e59289cda8dec0153fa396864c8ba8092ec3b80d Author: Kuninori Morimoto Date: Wed Mar 20 13:54:59 2019 +0900 ASoC: simple_card_utils: share common priv for simple-card/audio-graph Historically, simple-card/simple-scu-card/audio-graph/audio-graph-scu are similar but different generic sound card. simple-scu-card which was for DPCM was merged into simple-card, and audio-graph-scu which was for DPCM was merged into audio-graph. simple-card is for non OF graph sound card, and audio-graph is for OF graph sound card. And, small detail difference (= function parameter, naming, etc) between simple-card/audio-graph has been unified. So today, the difference between simple-card/audio-graph are just using OF graph style, or not. In other words, there should no difference other than OF graph sytle. simple-card/audio-graph are using own priv today , but we can merge it. This patch merge it at simple_card_utils. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown commit 0580dde59438686d60762b6da9229ebec693b94f Author: Kuninori Morimoto Date: Wed Mar 20 13:54:42 2019 +0900 ASoC: simple-card-utils: add asoc_simple_debug_info() Current simple-card-utils has dev_dbg(), but people want to add #define DEBUG at simple-card/audio-graph, not simple-card-utils. And, people want to get all information. This patch adds new asoc_simple_debug_info() to indicates information. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown commit 883149027a989dc121ad277785a4b4a901b7fd31 Author: Adam Thomson Date: Tue Mar 19 17:49:32 2019 +0000 ASoC: AMD: Update DA7219 DAI clock name to align with codec updates As the DAI clocks for DA7219 have now been split into BCLK and WCLK, the clock lookup name needs to be udpated here to select BCLK to achieve the same functionality as before with regards to DAI clock gating. Signed-off-by: Adam Thomson Signed-off-by: Mark Brown commit d90ba6c8b53e541913a181638c353cf7a0856256 Author: Adam Thomson Date: Tue Mar 19 17:49:31 2019 +0000 ASoC: da7219: Expose BCLK and WCLK control through CCF For the purposes of platforms which use the codec as DAI clock master for the CPU and other codec devices, there is the need to not only expose the clock gating of BCLK and WCLK but also the ability to set those rates without going through the ASoC APIs. To make this possible, the previous CCF implementation in the driver has been extended to separate BCLK and WCLK out. WCLK is the parent clock to BCLK, and is also the clock gate for both. BCLK in HW is a factor/multiplier of WCLK so derives from whatever SR is chosen for WCLK, hence the need to make it a child of WCLK for the purposes of CCF. Enabling/disabling either BCLK or WCLK will result in clocks being ungated/gated accordingly. To simplify matters, these clocks can only be configured if the codec is set as master, otherwise CCF control is disallowed. Signed-off-by: Adam Thomson Signed-off-by: Mark Brown commit 41d176d3ec147f499614adc773080f244d47e3cd Author: Adam Thomson Date: Tue Mar 19 17:49:30 2019 +0000 ASoC: da7219: Update DAI clock binding info to cover WCLK/BCLK With the need to expose WCLK and BCLK as separate clocks, the 'clock-cells' and 'clock-output-names' descriptions need to be updated as now the codec is providing 2 clocks. The example is also updated accordingly. Signed-off-by: Adam Thomson Signed-off-by: Mark Brown commit 5ba846b1ee0792f5a596b9b0b86d6e8cdebfab06 Author: Andy Shevchenko Date: Mon Mar 18 18:39:30 2019 +0300 dmaengine: idma64: Use actual device for DMA transfers Intel IOMMU, when enabled, tries to find the domain of the device, assuming it's a PCI one, during DMA operations, such as mapping or unmapping. Since we are splitting the actual PCI device to couple of children via MFD framework (see drivers/mfd/intel-lpss.c for details), the DMA device appears to be a platform one, and thus not an actual one that performs DMA. In a such situation IOMMU can't find or allocate a proper domain for its operations. As a result, all DMA operations are failed. In order to fix this, supply parent of the platform device to the DMA engine framework and fix filter functions accordingly. We may rely on the fact that parent is a real PCI device, because no other configuration is present in the wild. Signed-off-by: Andy Shevchenko Acked-by: Mark Brown Acked-by: Greg Kroah-Hartman [for tty parts] Signed-off-by: Vinod Koul commit 401f147b16d90ae378ec8218679e6fdba96e13cf Author: Dan Carpenter Date: Thu Mar 21 12:24:51 2019 +0300 drm/i915/selftests: fix NULL vs IS_ERR() check in mock_context_barrier() The mock_context() function returns NULL on error, it doesn't return error pointers. Fixes: 85fddf0b0027 ("drm/i915: Introduce a context barrier callback") Signed-off-by: Dan Carpenter Reviewed-by: Mika Kuoppala Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190321092451.GK2202@kadam commit 1f2367a39f17bd553a75e179a747f9b257bc9478 Author: james qian wang (Arm Technology China) Date: Tue Jan 22 09:23:40 2019 +0000 drm/komeda: Add d71_enum_resources and d71_cleanup D71 consists of a number of Register Blocks, every Block controls a specific HW function, every block has a common block_header to represent its type and pipeline information. GCU (Global Control Unit) is the first Block which describe the global information of D71 HW, Like number of block contained and the number of pipeline supported. So the d71_enum_resources parsed GCU and create pipeline according the GCU configuration, and then iterate and detect the blocks that indicated by the GCU and block_header. And this change also added two struct d71_dev/d71_pipeline to extend komeda_dev/komeda_pipeline to add some d71 only members. v2: - Return the specific errno not -1. - Use DRM_DEBUG as default debug msg printer. Signed-off-by: James Qian Wang (Arm Technology China) Signed-off-by: Liviu Dudau commit a2b2012eab25aad00a7dd587d1754115491e59eb Author: Douglas Anderson Date: Wed Mar 20 13:13:59 2019 -0700 ARM: dts: rockchip: Fix gic/efuse sort ordering for rk3288 It can be seen that 0xffb40000 < 0xffc01000, thus efuse comes first. Signed-off-by: Douglas Anderson Signed-off-by: Heiko Stuebner commit e8449baa5c0136eb04b789bf31b19f2e77f788d0 Author: Peng Fan Date: Wed Mar 13 09:24:42 2019 +0000 arm64: dts: imx8qxp: add lsio_mu2 node Add lsio_mu2 node which could be used communicate with SCU. Signed-off-by: Peng Fan Reviewed-by: Dong Aisheng Signed-off-by: Shawn Guo commit 14c7c02d2145f8e903f029587b5674f3c05d2111 Author: Peng Fan Date: Wed Mar 13 09:24:19 2019 +0000 arm64: dts: imx8qxp: fix mbox-cells Currently lsio_mu1 is used by Linux Kernel with mbox-cells as 2, but actually mu0-4 could be used to communicate with SCU. So fix the mbox-cells. Signed-off-by: Peng Fan Reviewed-by: Dong Aisheng Fixes: 3d91ba65fecd ("arm64: dts: imx: add imx8qxp support") Signed-off-by: Shawn Guo commit ab7529f2441791cdfe6c8e3202f35f3e811985a6 Author: Chris Wilson Date: Wed Mar 20 15:40:21 2019 +0000 drm/i915: Use __is_constexpr() gcc-4.8 and older dislike the use of __builtin_constant_p() within a constant expression context, and so we must use the magical __is_constexpr() instead. For example, with gcc-4.8.5: ../drivers/gpu/drm/i915/i915_reg.h:167:27: error: first argument to ‘__builtin_choose_expr’ not a constant ../include/linux/build_bug.h:16:45: error: bit-field ‘’ width not an integer constant Reported-by: Randy Dunlap Reported-by: Uma Shankar Fixes: baa09e7d2f42 ("drm/i915: use REG_FIELD_PREP() to define register bitfield values") Signed-off-by: Chris Wilson Cc: Jani Nikula Cc: Imre Deak Cc: Randy Dunlap Acked-by: Randy Dunlap # build-tested Reviewed-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190320154021.5244-1-chris@chris-wilson.co.uk commit 07de90945caf5e46a5276ea2edbad4b26e99a6cb Author: Chen-Yu Tsai Date: Wed Feb 13 15:04:57 2019 +0800 arm64: dts: allwinner: a64: Rename hpvcc-supply to cpvdd-supply The A64 datasheet lists the supply rail for the headphone amp's charge pump as "CPVDD". cpvdd-supply is the name of the property for this power rail specified in the device tree bindings. "HPVCC" was the name used in the A33 datasheet for the same function. Rename the supply so it matches the datasheet and bindings. Fixes: c56689e6f2fb ("arm64: dts: allwinner: a64: bananapi-m64: Enable audio codec") Fixes: 6de8e717848f ("arm64: dts: allwinner: a64: enable sound on Pinebook") Fixes: 498c21f233ed ("arm64: dts: allwinner: a64: enable sound on Pine64 and SoPine") Signed-off-by: Chen-Yu Tsai Acked-by: Maxime Ripard Signed-off-by: Chen-Yu Tsai commit 49c726d55c1ba3812eb293a71db09888669be2f5 Author: Maxime Ripard Date: Tue Mar 19 15:37:59 2019 +0100 clk: sunxi: Add Kconfig options We used to have a clock framework that isn't really used these days, except for a few clocks and/or SoCs. Most of the time, the new framework and drivers (sunxi-ng) will provide everything needed for the customer devices to operate properly. Since we're not needing it that much, it might make sense to disable those drivers, for example when we want to reduce the kernel size. Let's add options in Kconfig that can be disabled if needed, but are still on by default to keep the same features in the standard case. Acked-by: Stephen Boyd Signed-off-by: Maxime Ripard commit d333bad1f6f3e0df224db181c991fb8d65bbc2be Author: Geert Uytterhoeven Date: Wed Mar 20 11:33:51 2019 +0100 dt-bindings: at24: add Renesas R1EX24016 Document the compatible value for the Renesas R1EX24128ASAS0A two-wire serial interface EEPROM, so it can be used in DTS files without causing checkpatch warnings. This is a 2 KiB EEPROM. The first 1 KiB can always be written, the second 1 KiB cannot be written if the write-protect line is asserted. Signed-off-by: Geert Uytterhoeven Signed-off-by: Bartosz Golaszewski commit ceda59ec444e64e07819d55faafd3d534e436b18 Author: Bartosz Golaszewski Date: Thu Mar 21 09:57:05 2019 +0100 MAINTAINERS: change my e-mail address for at24 I now do this as part of my work for BayLibre. Change the address to my professional one. Signed-off-by: Bartosz Golaszewski commit 152d58234ef41c586e7b268ceea691dc80130a59 Author: Chen-Yu Tsai Date: Mon Mar 18 15:33:54 2019 +0800 ARM: dts: sunxi: h3/h5: Add device node for SID The device tree binding already lists compatible strings for these two SoCs. Add a device node for them. Acked-by: Maxime Ripard Signed-off-by: Chen-Yu Tsai commit f7a6f5f3bb7bd1dca1950c4910e450e9a45c9caa Author: Fabio Estevam Date: Tue Mar 12 10:19:23 2019 -0300 ARM: dts: vf610-zii: Remove 'max-brightness' property The 'max-brightness' property is not a valid one as per Documentation/devicetree/bindings/leds/leds-gpio.txt, so remove it. Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo commit ff01e6971ecd9ba6a9c0538c46d713f38a751f11 Author: Maarten Lankhorst Date: Tue Mar 19 13:17:02 2019 +0100 drm/fourcc: Fix conflicting Y41x definitions There has unfortunately been a conflict with the following 3 commits: commit e9961ab95af81b8d29054361cd5f0c575102cf87 Author: Ayan Kumar Halder Date: Fri Nov 9 17:21:12 2018 +0000 drm: Added a new format DRM_FORMAT_XVYU2101010 commit 7ba0fee247ee7a36b3bfbed68f6988d980aa3aa3 Author: Brian Starkey Date: Fri Oct 5 10:27:00 2018 +0100 drm/fourcc: Add AFBC yuv fourccs for Mali and commit 50bf5d7d595fd0705ef3785f80e679b6da501e5b Author: Swati Sharma Date: Mon Mar 4 17:26:33 2019 +0530 drm: Add Y2xx and Y4xx (xx:10/12/16) format definitions and fourcc Unfortunately gcc didn't warn about the redefinitions, because the double defines were the set to same value, and gcc apparently no longer warns about that. Fix this by using new XYVU for i915, without alpha, and making the Y41x definitions match msdn, with alpha. Fortunately we caught it early, and the conflict hasn't even landed in drm-next yet. Signed-off-by: Maarten Lankhorst Cc: Brian Starkey Cc: Swati Sharma Cc: Ayan Kumar Halder Cc: malidp@foss.arm.com Cc: Daniel Vetter Cc: Maxime Ripard Cc: Sean Paul Cc: Dave Airlie Cc: Liviu Dudau Link: https://patchwork.freedesktop.org/patch/msgid/20190319121702.6814-1-maarten.lankhorst@linux.intel.com Acked-by: Jani Nikula #irc Acked-by: Sean Paul Reviewed-by: Ayan Kumar halder commit 9354c29ed52762e9645d6dc2631045228ed10fbd Author: Dalit Ben Zoor Date: Thu Mar 21 09:54:49 2019 +0200 habanalabs: allow user to modify TPC clock relaxation value This patch allows the user to modify the TPC PLL clock relaxation value on-the-fly in order to reduce power consumption. To enable this, the patch removes the protection from the specific register that controls this behavior. Signed-off-by: Dalit Ben Zoor Signed-off-by: Oded Gabbay commit e2ff9f15e8ac8861929573e4fa80bfe92e1b1805 Author: Vatsala Narang Date: Thu Mar 21 05:36:13 2019 +0530 staging: erofs: Replace NULL comparisons Replace all NULL comparisons in the file to get rid of checkpatch warnings Signed-off-by: Vatsala Narang Signed-off-by: Greg Kroah-Hartman commit 0d808cdfe0fc0a0753b38ea7f66993072090a3c6 Author: Branden Bonaby Date: Wed Mar 20 14:37:04 2019 -0400 staging: gdm724x: Rename dftEpsId to dft_eps_id Rename member element dftEpsId to dft_eps_id to avoid camelcase. checkpatch warning: Avoid CamelCase. Signed-off-by: Branden Bonaby Signed-off-by: Greg Kroah-Hartman commit e4432160d9b3ff5d23dc6af6fac3ed5cbd1a14f2 Author: Madhumitha Prabakaran Date: Wed Mar 20 18:02:02 2019 -0500 Staging: rtl8723bs: Change return type and type of local variable rtw_startbss_cmd can return the result of calling rtw_enqueue_cmd, which can return the result of calling _rtw_enqueue_cmd, but they all have different return types (u8, u32, and sint, respectively). As all of these functions return error codes, change all the return types to int, in preparation for converting these functions to use standard kernel error codes. Also, remove extern from the function declaration to maintain Linux kernel coding style. Issue suggested by Coccinelle. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 19c74ea57715c09c63eb7ddeadab84503f9fed9f Author: Ivan Safonov Date: Wed Mar 20 17:31:44 2019 +0300 staging: r8188eu: refactor recvframe_defrag() Local variables pfhdr and prframe always have a same value, so one of them is unnecessary. Signed-off-by: Ivan Safonov Reviewed-by: Hans de Goede Signed-off-by: Greg Kroah-Hartman commit 737e061563b0580f3c74d4c08cbc7f5ab64a77b1 Author: Branden Bonaby Date: Wed Mar 20 13:22:07 2019 -0400 staging: wlan-ng: Correct typo in comment message Add space between two words for better readability in the comments. Signed-off-by: Branden Bonaby Signed-off-by: Greg Kroah-Hartman commit 82c6f68090b7d56f98c9f9e59f4b3be3b0d014a8 Author: Branden Bonaby Date: Wed Mar 20 13:22:06 2019 -0400 staging: wlan-ng: malformed SPDX-License-Identifier Correct malformed SPDX-License-Identifier so that it matches Linux kernel comment coding style. Signed-off-by: Branden Bonaby Signed-off-by: Greg Kroah-Hartman commit 42784bd7a2c818b9a924b28017c43293100a82f6 Author: George Hilliard Date: Wed Mar 20 11:19:15 2019 -0600 staging: mt7621-spi: Remove references to nonexistent mt7621_spi_ops This struct does not exist, and when it is looked up in the compatibility tree, it returns null. Remove these nonfunctional lines. Signed-off-by: George Hilliard Signed-off-by: Greg Kroah-Hartman commit 9e4f62f42caa82db0d2cc1c08b08329e9d73d75d Author: Sanjana Sanikommu Date: Wed Mar 20 21:07:18 2019 +0530 staging: rtl8188eu: core: rtw_recv.c: Modify return type suggested by Coccinelle. The last two lines in the function could be compressed into one. Avoid usage of local variable. Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit 2fd37c9d4335c0b5a4c6ce382de81ccdc5a2db9e Author: Sanjana Sanikommu Date: Wed Mar 20 18:48:18 2019 +0530 staging: rtl8192u: r8192U_dm: Remove unnecessary comments. Remove comments which are not necessary. Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit b17b6823419aa698aff5650b6cabc6ab03d76729 Author: Ivan Safonov Date: Wed Mar 20 15:45:19 2019 +0300 staging: netlogic: replace skb_put/pull pair with skb_reserve The sequence skb_put(skb); skb_pull(skb); leads to the same result as skb_reserve(skb); but second is a little shorter and clearer. Signed-off-by: Ivan Safonov Signed-off-by: Greg Kroah-Hartman commit 40a3483b194ea793e3909b0256f536b430b14532 Author: Sanjana Sanikommu Date: Wed Mar 20 16:46:18 2019 +0530 staging: rtl8192u: ieee80211: ieee80211_rx.c: Remove unnecessary braces. Remove braces around single statement block. Issue found by checkpatch.pl WARNING: braces {} are not necessary for a single statement block Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit 8677858da6b9d1afc49b5ba8bfefea92e9416cd2 Author: Anson Huang Date: Tue Mar 12 02:24:08 2019 +0000 dt-bindings: memory-controllers: freescale: add MMDC binding doc Freescale MMDC (Multi Mode DDR Controller) driver is supported since i.MX6Q, but not yet documented, this patch adds binding doc for MMDC module driver. Signed-off-by: Anson Huang Reviewed-by: Rob Herring Signed-off-by: Shawn Guo commit 3a1a67b1ca7b5402e72de48fd63a88ddd4ef2cf8 Author: Anson Huang Date: Tue Mar 12 02:24:20 2019 +0000 ARM: dts: imx6qdl: Improve mmdc1 node Add MMDC1 compatible string which is missing, and also set it to be disabled by default, as most of the platforms ONLY use single channel MMDC0, if dual MMDC channels are used, it can be enabled in board dts file. Signed-off-by: Anson Huang Signed-off-by: Shawn Guo commit 476f6e53a0d0e41697ef611fd28b4a8f6b6711e5 Author: Anson Huang Date: Tue Mar 12 02:24:16 2019 +0000 ARM: dts: imx: make MMDC node name generic Node name should be generic, so use "memory-controller" instead of "mmdc" for MMDC node name, also remove "mmdc" label for platforms with single MMDC node. Signed-off-by: Anson Huang Reviewed-by: Fabio Estevam Signed-off-by: Shawn Guo commit 10ee87d19a5d48cead4ccbe0a2a64956f766ec5c Author: Anson Huang Date: Tue Mar 12 02:24:12 2019 +0000 ARM: dts: imx7ulp: add mmdc support i.MX7ULP has a MMDC module to control DDR, it reuses i.MX6Q's MMDC module, add support for it. Signed-off-by: Anson Huang Reviewed-by: Fabio Estevam Signed-off-by: Shawn Guo commit 083d022913f2f8c3bc1183a13874ad777b9f5bdd Author: Huang Rui Date: Tue Mar 19 21:25:12 2019 +0800 drm/amdgpu: add one rlc version into gfxoff blacklist RLC #53815 ucode has the noise issue on 4k playback while gfxoff enabled. Signed-off-by: Huang Rui Acked-by: Alex Deucher Tested-by: Tom St Denis Signed-off-by: Alex Deucher commit 005440066f929ba0dca8f4e0aebfbf8daac592cc Author: Huang Rui Date: Wed Mar 13 20:21:00 2019 +0800 drm/amdgpu: enable gfxoff again on raven series (v2) This patch enables gfxoff and stutter mode again, since we take more testing on raven series. For raven2 and picasso, we can enable it directly. And for raven, we need check the RLC/SMC ucode version cannot be less than #531/0x1e45. v2: add smc version checking for raven. Signed-off-by: Huang Rui Reviewed-by: Alex Deucher (v1) Tested-by: Likun Gao (v2) Signed-off-by: Alex Deucher commit 0a958328b069c0cfb9db0da77a3bcbb30b0f5bc2 Author: Colin Ian King Date: Wed Mar 20 17:29:09 2019 +0000 drm/amd/powerplay: fix spelling mistake "unknow" -> "unknown" There is a spelling mistake in pr_warn message; fix it. Signed-off-by: Colin Ian King Signed-off-by: Alex Deucher commit 5ea8b4725f42c22c37b370eebb5d33b4236f5301 Author: Nathan Chancellor Date: Tue Mar 19 17:58:42 2019 -0700 drm/amd/powerplay: Zero initialize num_of_levels in vega20_set_single_dpm_table When building with -Wsometimes-uninitialized, Clang warns: drivers/gpu/drm/amd/amdgpu/../powerplay/vega20_ppt.c:456:2: warning: variable 'num_of_levels' is used uninitialized whenever '?:' condition is false [-Wsometimes-uninitialized] smu_read_smc_arg(smu, &num_of_levels); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../powerplay/inc/amdgpu_smu.h:608:3: note: expanded from macro 'smu_read_smc_arg' ((smu)->funcs->read_smc_arg? (smu)->funcs->read_smc_arg((smu), (arg)) : 0) ^~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../powerplay/vega20_ppt.c:457:7: note: uninitialized use occurs here if (!num_of_levels) { ^~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../powerplay/vega20_ppt.c:456:2: note: remove the '?:' if its condition is always true smu_read_smc_arg(smu, &num_of_levels); ^ drivers/gpu/drm/amd/amdgpu/../powerplay/inc/amdgpu_smu.h:608:3: note: expanded from macro 'smu_read_smc_arg' ((smu)->funcs->read_smc_arg? (smu)->funcs->read_smc_arg((smu), (arg)) : 0) ^ drivers/gpu/drm/amd/amdgpu/../powerplay/vega20_ppt.c:446:27: note: initialize the variable 'num_of_levels' to silence this warning uint32_t i, num_of_levels, clk; ^ = 0 1 warning generated. The if statement it mentions as potentially problematic is currently always true because the read_smc_arg callback is assigned at the bottom of this file but Clang can't tell that. If the callback were ever to disappear, num_of_levels would never be initialized. Just zero initialize it to ensure that the intent behind this code remains the same. Link: https://github.com/ClangBuiltLinux/linux/issues/425 Signed-off-by: Nathan Chancellor Signed-off-by: Alex Deucher commit 5bbfcebb6d1bf322b5902e3c4b6b42a1f679fec3 Author: YueHaibing Date: Wed Mar 20 12:59:39 2019 +0000 drm/ttm: remove set but not used variable 'rdev' Fixes gcc '-Wunused-but-set-variable' warning: drivers/gpu/drm/radeon/radeon_ttm.c: In function 'radeon_move_vram_ram': drivers/gpu/drm/radeon/radeon_ttm.c:254:24: warning: variable 'rdev' set but not used [-Wunused-but-set-variable] drivers/gpu/drm/radeon/radeon_ttm.c: In function 'radeon_move_ram_vram': drivers/gpu/drm/radeon/radeon_ttm.c:301:24: warning: variable 'rdev' set but not used [-Wunused-but-set-variable] It's not used since a987fcaa805f ("ttm: Make parts of a struct ttm_bo_device global.") Signed-off-by: YueHaibing Signed-off-by: Alex Deucher commit 54087768dbd6bd28ba951654a22f6db21dd50e8b Author: Nicholas Kazlauskas Date: Thu Mar 14 12:53:12 2019 -0400 drm/amd/display: Only put primary planes into the mode_info->planes list We want DRM planes to be initialized in the following order: - primary planes - overlay planes - cursor planes to support existing userspace expectations for plane z-ordering. This means that we also need to register CRTCs after all planes have been initialized since overlay planes can be placed on any CRTC. So the only reason why we have the mode_info->planes list is to remember the primary planes for use later when we need to register the CRTC. Overlay planes have no purpose being in this list. DRM will cleanup any planes that we've registered for us, so the only planes that need to be explicitly cleaned up are the ones that have failed to register. By dropping the explicit free on every plane in the mode_info->planes list this patch also fixes a double-free in the case where we fail to initialize only some of the planes. Cc: Leo Li Cc: Harry Wentland Signed-off-by: Nicholas Kazlauskas Reviewed-by: Harry Wentland Signed-off-by: Alex Deucher commit f258fee6c3c076a406be3388d4099f1b1a45b39c Author: David Francis Date: Tue Mar 5 10:04:15 2019 -0500 drm/amd/display: Add debugfs dpcd interface [Why] We need arbitrary read/write over DP AUX DPCD for debugging [How] Three debugfs entries Set the target address by writing to "aux_dpcd_address" (The first four bytes written are used) Set the transaction size in bytes by writing to "aux_dpcd_size" (The first four bytes written are used) Start a transaction by reading/writing "aux_dpcd_data" Do note: there is no concerrency protection at all Accessing these entries in quick succession can lead to strange behaviour Signed-off-by: David Francis Reviewed-by: Harry Wentland Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit c7ba3653e9773256b2b08508a2ed2ca28ea7566b Author: Leo (Hanghong) Ma Date: Thu Mar 7 16:18:12 2019 -0500 drm/amd/display: Generic SDP message access in amdgpu [Why] We need to add DP SDP message test debugfs to make sdp message test more convenient and efficient. [How] Add sdp_message debugfs entry in amdgpu. Signed-off-by: Leo (Hanghong) Ma Reviewed-by: Sun peng Li Acked-by: Bhawanpreet Lakha Acked-by: Nicholas Kazlauskas Signed-off-by: Alex Deucher commit d5f90f3a0ab3d8a458c3152e6b56a5845d3f7b3f Author: Leo (Hanghong) Ma Date: Thu Mar 7 15:31:11 2019 -0500 drm/amd/display: Expose generic SDP message access interface [Why] We need to add DP SDP message test debugfs to make sdp message test more convenient and efficient. [How] Add a DM accessible SDP interface for custom data. Signed-off-by: Leo (Hanghong) Ma Reviewed-by: Harry Wentland Reviewed-by: Roman Li Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 6ffaa6fcd06add240abe681f9b6da7fef742b85d Author: Dmytro Laktyushkin Date: Fri Mar 8 20:16:45 2019 -0500 drm/amd/display: fix odm pipe management There are issues removing surfaces/streams when odm is active. This is a step to fix that Signed-off-by: Dmytro Laktyushkin Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 661a8cd9516b182c80fff1b2fdfb1b1e42e212d1 Author: Dmytro Laktyushkin Date: Fri Mar 8 17:09:46 2019 -0500 drm/amd/display: add missing opp programming for odm A number of places opp programming was missing for odm second pipe. This change fixes the oversight. Signed-off-by: Dmytro Laktyushkin Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit f25f06b67ba237b76092a6fc522b1a94e84bfa85 Author: Dmytro Laktyushkin Date: Fri Mar 8 16:44:53 2019 -0500 drm/amd/display: fix odm combine pipe reset We fail to reset the second odm combine pipe. This change fixes odm pointer management. Signed-off-by: Dmytro Laktyushkin Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit bc2193992b00488f5734613ac95b78ef2d2803ab Author: Dmytro Laktyushkin Date: Thu Mar 7 13:26:13 2019 -0500 drm/amd/display: fix releasing planes when exiting odm Releasing planes should not release the 2nd odm pipe right away, this change leaves us with 2 pipes with null planes and same stream when planes are released during odm. Signed-off-by: Dmytro Laktyushkin Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 1e49f3e56d4d8f1cf2defc05a6b57408226faa8a Author: Aric Cyr Date: Fri Mar 8 17:37:17 2019 -0500 drm/amd/display: 3.2.23 Signed-off-by: Aric Cyr Reviewed-by: Aric Cyr Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit e03868ec0cdc508e270e9f1c2d8c97ee4163dd47 Author: Reza Amini Date: Thu Mar 7 17:36:29 2019 -0500 drm/amd/display: Fix VTEM InfoPacket programming Refactor setting bit fields. Correcting the offset of MD0. Initializing the InfoPacket header fields. Defining the field offsets and masks. Signed-off-by: Reza Amini Reviewed-by: Anthony Koo Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 66acd4418d7de131ef3831e52a8af3d2480e5b15 Author: Samson Tam Date: Mon Mar 4 16:21:06 2019 -0500 drm/amd/display: Link train only when link is DP and backend is enabled [Why] In certain cases we do link training when we don't have a backend. [How] In dc_link_set_preferred_link_settings(), store preferred link settings first and then verify that the link is DP and the link stream's backend is enabled. If either is false, then we will not do any link retraining. Signed-off-by: Samson Tam Reviewed-by: Aric Cyr Acked-by: Anthony Koo Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit c23f95ae70640e3c9072c551e8a6434b56b0937f Author: Wenjing Liu Date: Tue Mar 5 19:28:10 2019 -0500 drm/amd/display: add global master update lock interfaces Add these interfacese for future use setup_global_lock() lock_global() pipe_control_lock_global() Signed-off-by: Wenjing Liu Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 3a9aeadbdfa8f4081e9e88cdaba0033b822ee373 Author: Eric Bernstein Date: Fri Feb 22 11:11:07 2019 -0500 drm/amd/display: Use dc_is_hdmi_signal() instead of ENUM Signed-off-by: Eric Bernstein Reviewed-by: Nevenko Stupar Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 3c7dd2cbc8e135fded5844060c815fec262dffd2 Author: Harmanprit Tatla Date: Fri Mar 1 11:47:35 2019 -0500 drm/amd/display: cache additional dpcd caps for HDR capability check [Why] Currently we are missing a few checks to see if HDR10 is allowed. In particular we never check for the extended colorimetry bit (whether its present or set to 1). Further we don't read in the dpcd block in DC that would provide these bits. [How] - Added in DC code to read in the block containing the extended colorimetry bit. Signed-off-by: Harmanprit Tatla Reviewed-by: Anthony Koo Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit b05e2c5e81f9a0be4a145e0926b1dfe62f6347d4 Author: David Francis Date: Mon Mar 4 10:31:31 2019 -0500 drm/amd/display: Update ABM crtc state on non-modeset [Why] Somewhere in the atomic check reshuffle ABM got lost. ABM is a crtc property (copied from a connector property). It can change without a modeset, just like underscan. [How] In the skip_modeset branch of atomic check crtc updates, copy over the abm property. Signed-off-by: David Francis Reviewed-by: Nicholas Kazlauskas Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 3d5cc272319d6b7bf2e7d8aa9b1c3b0fe3e85b3f Author: Hugo Hu Date: Wed Feb 27 15:18:08 2019 +0800 drm/amd/display: Programming correct VRR_EN bit in VTEM structure [Why] In HDMI plugfest, MTK report our EMP with VRR_EN bit = 0. VRR_EN bit is EMP-MD0-bit 0. Currently driver set 1 to bit 3. [How] Programming correct VRR_EN bit in EMP-MD0-bit0. Signed-off-by: Hugo Hu Reviewed-by: Reza Amini Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 8db89b2e39ffe363f27fdd335e35b59c90979ea5 Author: Aric Cyr Date: Sat Mar 2 22:35:45 2019 -0500 drm/amd/display: 3.2.22 Signed-off-by: Aric Cyr Reviewed-by: Aric Cyr Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit f38e720af8c56affce99453e2b573ad8b2ceca93 Author: Jun Lei Date: Fri Mar 1 11:21:17 2019 -0500 drm/amd/display: extend EDID support to 1kb [why] There exist displays with EDIDs > 512 bytes, existing code will cause us to ignore all extension blocks. Signed-off-by: Jun Lei Reviewed-by: Wenjing Liu Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit fe6119fb0361521ba4df8887c1791df9c08296f1 Author: Wesley Chalmers Date: Fri Mar 1 14:28:19 2019 -0500 drm/amd/display: Fix DP audio regression Audio was unmuted for HDMI only, need to do so for DP as well. Signed-off-by: Wesley Chalmers Reviewed-by: Chris Park Reviewed-by: Eric Bernstein Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 9070d18f89a8c7c839bc2dd3b1c6fbc8864c1be5 Author: Aric Cyr Date: Fri Mar 1 10:24:37 2019 -0500 drm/amd/display: Add a hysteresis to BTR frame multiplier [Why] Flickering is observed on some displays when the number of inserted BTR frames changes frequently. [How] Add in a margin of drift to prevent the inserted number of frames from jumping around too frequently. Signed-off-by: Aric Cyr Reviewed-by: Nicholas Kazlauskas Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 7fe538a4d64135d8f8e4aca8d0aedf266958025c Author: Charlene Liu Date: Fri Mar 1 11:12:50 2019 -0500 drm/amd/display: fix DP 422 VID_M half the rate issue. [Description] when programming VID_TIMING, we were using the original VESA timing for DP_VIDM/N. for YCbCr420 or compressed YCbCr422, using half rate as YCbCr444. Signed-off-by: Charlene Liu Reviewed-by: Nikola Cornij Acked-by: Leo Li Signed-off-by: Alex Deucher commit ae5041f3a03134a4cd5fc1c41e082c0e5d290392 Author: Eric Bernstein Date: Fri Aug 17 17:57:44 2018 -0400 drm/amd/display: Fix setting DP_VID_N_MUL [Why] Need to set VID_N_MUL for 4:2:0 cases [How] Move setting to enc1_stream_encoder_dp_unblank and ensure it is also set for non-4:2:0 cases. Signed-off-by: Eric Bernstein Signed-off-by: Alex Deucher commit 901f4f97be669a316f32116d9ff842f1b29cdff6 Author: Yongqiang Sun Date: Thu Feb 28 15:14:39 2019 -0500 drm/amd/display: Move dm_read_reg_func to dc_helper. Move out of header to dc_helper.c, in preparation for future implementations. Signed-off-by: Yongqiang Sun Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 7ddaef96cd30c340839926e8ad4f755a1864e338 Author: Nicholas Kazlauskas Date: Thu Feb 28 13:38:13 2019 -0500 drm/amd/display: Use drm helper for resetting plane state [Why] To help prevent plane state not being set to the correct default value if any new properties are added in the future. [How] Use the drm helper - which seems to be the common solution among other DRM drivers. Signed-off-by: Nicholas Kazlauskas Reviewed-by: Sun peng Li Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 335d5d7bbd3c4fe71ae765ad106d21b39ba85fd1 Author: Yongqiang Sun Date: Tue Feb 26 10:52:22 2019 -0500 drm/amd/display: change generic_reg_wait to void. we were only checking the return value in one place, thus changing generic_reg_wait from int to void and reading the register instead of getting it from generic_reg_wait, when we need the return value. Signed-off-by: Yongqiang Sun Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit eec3d5efd16d13984a88396b685ae17462fb6d87 Author: Nicholas Kazlauskas Date: Thu Feb 28 12:57:59 2019 -0500 drm/amd/display: Reset alpha state for planes to the correct values [Why] The plane_reset callback is subclassed but hasn't been updated since the drm helper got updated to include resetting alpha related state (state->alpha and state->pixel_blend_mode). The overlay planes exposed by amdgpu_dm were therefore being rendered as invisible by default ever since supported was exposed for alpha blending properties on overlays. This caused regressions in igt@kms_plane_multiple@atomic-tiling-none and igt@kms_plane@plane-position-covered-pipe tests. [How] Reset the plane state values to their correct values as defined in the drm helper. This fixes the IGT test regression. Signed-off-by: Nicholas Kazlauskas Reviewed-by: Harry Wentland Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 1d31408a4c29087687292c5fb5190cf00802c509 Author: Christian König Date: Wed Mar 6 16:10:45 2019 +0100 drm/amdgpu: use more entries for the first paging queue To aid recoverable page faults. Signed-off-by: Christian König Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher commit 4f8bc72fbf10f2dc8bca74d5da08b3a981b2e5cd Author: Christian König Date: Wed Dec 5 14:24:21 2018 +0100 drm/amdgpu: free up the first paging queue v2 We need the first paging queue to handle page faults. v2: handle any number of SDMA instances gracefully Signed-off-by: Christian König Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher commit f11a13ecafa4c7b8bce44f5fc2a4b852b4b00277 Author: Christian König Date: Mon Nov 5 15:24:27 2018 +0100 drm/amdgpu: re-enable retry faults Now that we have re-reoute faults to the other IH ring we can enable retries again. Signed-off-by: Christian König Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher commit f81e8d532a4f383f8efe72173d5f757d3320fc79 Author: Wentao Lou Date: Wed Mar 13 18:01:42 2019 +0800 drm/amdkfd/sriov:Put the pre and post reset in exclusive mode v2 add amdgpu_amdkfd_pre_reset and amdgpu_amdkfd_post_reset inside amdgpu_device_reset_sriov. Signed-off-by: Wentao Lou Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 1791e54f0121ad9733c5b8f42cd7d1604e4f07a5 Author: Nicholas Kazlauskas Date: Wed Mar 13 12:35:20 2019 -0400 drm/amd/display: Respect DRM framebuffer info for video surfaces [Why] Incorrect hardcoded assumptions are made regarding luma and chroma alignment. The actual values set for the DRM framebuffer should be used when programming the address. [How] Respect the given pitch for both luma and chroma planes - it's not like we can force the alignment to anything else at this point anyway. Use the FB offset for the chroma planes directly. DRM already provides this to us so there's no need to calculate it manually. While we don't actually use the chroma surface size parameters on Raven, these should have technically been fb->width / 2 and fb->height / 2 since the chroma plane is half size of the luma plane for NV12. Leave a TODO indicating that those should be set based on the actual surface format instead since this is only correct for YUV420 formats. Signed-off-by: Nicholas Kazlauskas Reviewed-by: Harry Wentland Signed-off-by: Alex Deucher commit 98ae7f98d44b61479599ec49257ccb8abd92d092 Author: Felix Kuehling Date: Wed Mar 13 08:30:48 2019 -0400 drm/amdgpu: Wait for newly allocated PTs to be idle When page table are updated by the CPU, synchronize with the allocation and initialization of newly allocated page tables. Signed-off-by: Felix Kuehling Reviewed-by: Christian König Signed-off-by: Alex Deucher commit 194f87ddffe26bbbd124c549a9bf12a96a7f2919 Author: Philip Yang Date: Mon Mar 4 10:37:55 2019 -0500 drm/amdgpu: more descriptive message if HMM not enabled If using old kernel config file, CONFIG_ZONE_DEVICE is not selected, so CONFIG_HMM and CONFIG_HMM_MIRROR is not enabled, the current driver error message "Failed to register MMU notifier" is not clear. Inform user with more descriptive message on how to fix the missing kernel config option. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109808 Signed-off-by: Philip Yang Reviewed-by: Michel Dänzer Signed-off-by: Alex Deucher commit 46fc15487d02451448c11b83c4d086d87a6ad588 Author: Kimberly Brown Date: Tue Mar 19 00:04:01 2019 -0400 Drivers: hv: vmbus: Expose monitor data only when monitor pages are used There are two methods for signaling the host: the monitor page mechanism and hypercalls. The monitor page mechanism is used by performance critical channels (storage, networking, etc.) because it provides improved throughput. However, latency is increased. Monitor pages are allocated to these channels. Monitor pages are not allocated to channels that do not use the monitor page mechanism. Therefore, these channels do not have a valid monitor id or valid monitor page data. In these cases, some of the "_show" functions return incorrect data. They return an invalid monitor id and data that is beyond the bounds of the hv_monitor_page array fields. The "channel->offermsg.monitor_allocated" value can be used to determine whether monitor pages have been allocated to a channel. Add "is_visible()" callback functions for the device-level and channel-level attribute groups. These functions will hide the monitor sysfs files when the monitor mechanism is not used. Remove ".default_attributes" from "vmbus_chan_attrs" and create a channel-level attribute group. These changes allow the new "is_visible()" callback function to be applied to the channel-level attributes. Call "sysfs_create_group()" in "vmbus_add_channel_kobj()" to create the channel's sysfs files. Add a new function, “vmbus_remove_channel_attr_group()”, and call it in "free_channel()" to remove the channel's sysfs files when the channel is closed. Signed-off-by: Kimberly Brown Reviewed-by: Greg Kroah-Hartman Reviewed-by: Michael Kelley Signed-off-by: Sasha Levin commit 48e5d98a0eb1e4cec308ed63444a505a7e7dd9e3 Author: Adrian Ratiu Date: Wed Mar 20 12:10:54 2019 +0200 selftests/bpf: Add arm target register definitions eBPF "restricted C" code can be compiled with LLVM/clang using target triplets like armv7l-unknown-linux-gnueabihf and loaded/run with small cross-compiled gobpf/elf [1] programs without requiring a full BCC port which is also undesirable on small embedded systems due to its size footprint. The only missing pieces are these helper macros which otherwise have to be redefined by each eBPF arm program. [1] https://github.com/iovisor/gobpf/tree/master/elf Signed-off-by: Adrian Ratiu Signed-off-by: Alexei Starovoitov commit e19dfdc83b60f196e0653d683499f7bc5548128f Author: Ondrej Mosnacek Date: Fri Feb 22 15:57:18 2019 +0100 kernfs: initialize security of newly created nodes Use the new security_kernfs_init_security() hook to allow LSMs to possibly assign a non-default security context to a newly created kernfs node based on the attributes of the new node and also its parent node. This fixes an issue with cgroupfs under SELinux, where newly created cgroup subdirectories/files would not inherit its parent's context if it had been set explicitly to a non-default value (other than the genfs context specified by the policy). This can be reproduced as follows (on Fedora/RHEL): # mkdir /sys/fs/cgroup/unified/test # # Need permissive to change the label under Fedora policy: # setenforce 0 # chcon -t container_file_t /sys/fs/cgroup/unified/test # ls -lZ /sys/fs/cgroup/unified total 0 -r--r--r--. 1 root root system_u:object_r:cgroup_t:s0 0 Jan 29 03:06 cgroup.controllers -rw-r--r--. 1 root root system_u:object_r:cgroup_t:s0 0 Jan 29 03:06 cgroup.max.depth -rw-r--r--. 1 root root system_u:object_r:cgroup_t:s0 0 Jan 29 03:06 cgroup.max.descendants -rw-r--r--. 1 root root system_u:object_r:cgroup_t:s0 0 Jan 29 03:06 cgroup.procs -r--r--r--. 1 root root system_u:object_r:cgroup_t:s0 0 Jan 29 03:06 cgroup.stat -rw-r--r--. 1 root root system_u:object_r:cgroup_t:s0 0 Jan 29 03:06 cgroup.subtree_control -rw-r--r--. 1 root root system_u:object_r:cgroup_t:s0 0 Jan 29 03:06 cgroup.threads drwxr-xr-x. 2 root root system_u:object_r:cgroup_t:s0 0 Jan 29 03:06 init.scope drwxr-xr-x. 26 root root system_u:object_r:cgroup_t:s0 0 Jan 29 03:21 system.slice drwxr-xr-x. 3 root root system_u:object_r:container_file_t:s0 0 Jan 29 03:15 test drwxr-xr-x. 3 root root system_u:object_r:cgroup_t:s0 0 Jan 29 03:06 user.slice # mkdir /sys/fs/cgroup/unified/test/subdir Actual result: # ls -ldZ /sys/fs/cgroup/unified/test/subdir drwxr-xr-x. 2 root root system_u:object_r:cgroup_t:s0 0 Jan 29 03:15 /sys/fs/cgroup/unified/test/subdir Expected result: # ls -ldZ /sys/fs/cgroup/unified/test/subdir drwxr-xr-x. 2 root root unconfined_u:object_r:container_file_t:s0 0 Jan 29 03:15 /sys/fs/cgroup/unified/test/subdir Link: https://github.com/SELinuxProject/selinux-kernel/issues/39 Signed-off-by: Ondrej Mosnacek Acked-by: Casey Schaufler Signed-off-by: Paul Moore commit ec882da5cda911e799b8a5ede94d099fdc0c656b Author: Ondrej Mosnacek Date: Fri Feb 22 15:57:17 2019 +0100 selinux: implement the kernfs_init_security hook The hook applies the same logic as selinux_determine_inode_label(), with the exception of the super_block handling, which will be enforced on the actual inodes later by other hooks. Signed-off-by: Ondrej Mosnacek [PM: minor merge fixes] Signed-off-by: Paul Moore commit b230d5aba2d1a7b0636408889a75bf9eae6b8bc7 Author: Ondrej Mosnacek Date: Fri Feb 22 15:57:16 2019 +0100 LSM: add new hook for kernfs node initialization This patch introduces a new security hook that is intended for initializing the security data for newly created kernfs nodes, which provide a way of storing a non-default security context, but need to operate independently from mounts (and therefore may not have an associated inode at the moment of creation). The main motivation is to allow kernfs nodes to inherit the context of the parent under SELinux, similar to the behavior of security_inode_init_security(). Other LSMs may implement their own logic for handling the creation of new nodes. This patch also adds helper functions to for getting/setting security xattrs of a kernfs node so that LSMs hooks are able to do their job. Other important attributes should be accessible direcly in the kernfs_node fields (in case there is need for more, then new helpers should be added to kernfs.h along with the patch that needs them). Signed-off-by: Ondrej Mosnacek Acked-by: Casey Schaufler [PM: more manual merge fixes] Signed-off-by: Paul Moore commit 0ac6075a32fc05bc7fa025965914e8dcd448a668 Author: Ondrej Mosnacek Date: Fri Feb 22 15:57:15 2019 +0100 kernfs: use simple_xattrs for security attributes Replace the special handling of security xattrs with simple_xattrs, as is already done for the trusted xattrs. This simplifies the code and allows LSMs to use more than just a single xattr to do their business. Signed-off-by: Ondrej Mosnacek Acked-by: Casey Schaufler [PM: manual merge fixes] Signed-off-by: Paul Moore commit b754026bd98e644f9337224ffd4201e02dfe1c43 Author: Ondrej Mosnacek Date: Fri Feb 22 15:57:14 2019 +0100 selinux: try security xattr after genfs for kernfs filesystems Since kernfs supports the security xattr handlers, we can simply use these to determine the inode's context, dropping the need to update it from kernfs explicitly using a security_inode_notifysecctx() call. We achieve this by setting a new sbsec flag SE_SBGENFS_XATTR to all mounts that are known to use kernfs under the hood and then fetching the xattrs after determining the fallback genfs sid in inode_doinit_with_dentry() when this flag is set. This will allow implementing full security xattr support in kernfs and removing the ...notifysecctx() call in a subsequent patch. Signed-off-by: Ondrej Mosnacek Acked-by: Stephen Smalley Acked-by: Casey Schaufler [PM: more manual merge fixups] Signed-off-by: Paul Moore commit d0c9c153b4bd6963c8fcccbc0caa12e8fa8d971d Author: Ondrej Mosnacek Date: Fri Feb 22 15:57:13 2019 +0100 kernfs: do not alloc iattrs in kernfs_xattr_get This is a read-only operation, so we can simply return -ENODATA if kn->iattr is NULL. Signed-off-by: Ondrej Mosnacek Acked-by: Casey Schaufler [PM: minor merge fixes] Signed-off-by: Paul Moore commit 05895219627c416e3ba78de84b83c6937387786b Author: Ondrej Mosnacek Date: Fri Feb 22 15:57:12 2019 +0100 kernfs: clean up struct kernfs_iattrs Right now, kernfs_iattrs embeds the whole struct iattr, even though it doesn't really use half of its fields... This both leads to wasting space and makes the code look awkward. Let's just list the few fields we need directly in struct kernfs_iattrs. Signed-off-by: Ondrej Mosnacek Acked-by: Casey Schaufler [PM: merged a number of chunks manually due to fuzz] Signed-off-by: Paul Moore commit 16add411645cff83360086e102daa67b25f1e39a Author: Dmitry V. Levin Date: Mon Mar 18 02:30:18 2019 +0300 syscall_get_arch: add "struct task_struct *" argument This argument is required to extend the generic ptrace API with PTRACE_GET_SYSCALL_INFO request: syscall_get_arch() is going to be called from ptrace_request() along with syscall_get_nr(), syscall_get_arguments(), syscall_get_error(), and syscall_get_return_value() functions with a tracee as their argument. The primary intent is that the triple (audit_arch, syscall_nr, arg1..arg6) should describe what system call is being called and what its arguments are. Reverts: 5e937a9ae913 ("syscall_get_arch: remove useless function arguments") Reverts: 1002d94d3076 ("syscall.h: fix doc text for syscall_get_arch()") Reviewed-by: Andy Lutomirski # for x86 Reviewed-by: Palmer Dabbelt Acked-by: Paul Moore Acked-by: Paul Burton # MIPS parts Acked-by: Michael Ellerman (powerpc) Acked-by: Kees Cook # seccomp parts Acked-by: Mark Salter # for the c6x bit Cc: Elvira Khabirova Cc: Eugene Syromyatnikov Cc: Oleg Nesterov Cc: x86@kernel.org Cc: linux-alpha@vger.kernel.org Cc: linux-snps-arc@lists.infradead.org Cc: linux-arm-kernel@lists.infradead.org Cc: linux-c6x-dev@linux-c6x.org Cc: uclinux-h8-devel@lists.sourceforge.jp Cc: linux-hexagon@vger.kernel.org Cc: linux-ia64@vger.kernel.org Cc: linux-m68k@lists.linux-m68k.org Cc: linux-mips@vger.kernel.org Cc: nios2-dev@lists.rocketboards.org Cc: openrisc@lists.librecores.org Cc: linux-parisc@vger.kernel.org Cc: linuxppc-dev@lists.ozlabs.org Cc: linux-riscv@lists.infradead.org Cc: linux-s390@vger.kernel.org Cc: linux-sh@vger.kernel.org Cc: sparclinux@vger.kernel.org Cc: linux-um@lists.infradead.org Cc: linux-xtensa@linux-xtensa.org Cc: linux-arch@vger.kernel.org Cc: linux-audit@redhat.com Signed-off-by: Dmitry V. Levin Signed-off-by: Paul Moore commit b15fe94acece954feda32706e3ca7cc024999aee Author: Dmitry V. Levin Date: Mon Mar 18 02:30:11 2019 +0300 unicore32: define syscall_get_arch() syscall_get_arch() is required to be implemented on all architectures in addition to already implemented syscall_get_nr(), syscall_get_arguments(), syscall_get_error(), and syscall_get_return_value() functions in order to extend the generic ptrace API with PTRACE_GET_SYSCALL_INFO request. Acked-by: Paul Moore Cc: Elvira Khabirova Cc: Eugene Syromyatnikov Cc: Guan Xuetao Cc: Oleg Nesterov Cc: Andy Lutomirski Cc: linux-audit@redhat.com Signed-off-by: Dmitry V. Levin Signed-off-by: Paul Moore commit 03f7e6adfbd02d026817d2b0b21c8420fe58e0b3 Author: Dmitry V. Levin Date: Mon Mar 18 02:30:06 2019 +0300 Move EM_UNICORE to uapi/linux/elf-em.h This should never have been defined in the arch tree to begin with, and now uapi/linux/audit.h header is going to use EM_UNICORE in order to define AUDIT_ARCH_UNICORE which is needed to implement syscall_get_arch() which in turn is required to extend the generic ptrace API with PTRACE_GET_SYSCALL_INFO request. Acked-by: Paul Moore Cc: Guan Xuetao Cc: Elvira Khabirova Cc: Eugene Syromyatnikov Cc: Oleg Nesterov Cc: Andy Lutomirski Cc: linux-audit@redhat.com Signed-off-by: Dmitry V. Levin Signed-off-by: Paul Moore commit 1660aac45e5b49a5ace29fb5b73254617533fcbd Author: Dmitry V. Levin Date: Mon Mar 18 02:30:02 2019 +0300 nios2: define syscall_get_arch() syscall_get_arch() is required to be implemented on all architectures in addition to already implemented syscall_get_nr(), syscall_get_arguments(), syscall_get_error(), and syscall_get_return_value() functions in order to extend the generic ptrace API with PTRACE_GET_SYSCALL_INFO request. Acked-by: Paul Moore Acked-by: Ley Foon Tan Cc: Elvira Khabirova Cc: Eugene Syromyatnikov Cc: Ley Foon Tan Cc: Oleg Nesterov Cc: Andy Lutomirski Cc: nios2-dev@lists.rocketboards.org Cc: linux-audit@redhat.com Signed-off-by: Dmitry V. Levin Signed-off-by: Paul Moore commit fa562447e154334523daa44c0b60625d71a345f5 Author: Dmitry V. Levin Date: Mon Mar 18 02:29:57 2019 +0300 nds32: define syscall_get_arch() syscall_get_arch() is required to be implemented on all architectures in addition to already implemented syscall_get_nr(), syscall_get_arguments(), syscall_get_error(), and syscall_get_return_value() functions in order to extend the generic ptrace API with PTRACE_GET_SYSCALL_INFO request. Acked-by: Paul Moore Acked-by: Vincent Chen Acked-by: Greentime Hu Cc: Elvira Khabirova Cc: Eugene Syromyatnikov Cc: Oleg Nesterov Cc: Andy Lutomirski Cc: linux-audit@redhat.com Signed-off-by: Dmitry V. Levin Signed-off-by: Paul Moore commit 530ff23a8e46814a1be4a516c707d3b0fb292186 Author: Dmitry V. Levin Date: Mon Mar 18 02:29:48 2019 +0300 Move EM_NDS32 to uapi/linux/elf-em.h This should never have been defined in the arch tree to begin with, and now uapi/linux/audit.h header is going to use EM_NDS32 in order to define AUDIT_ARCH_NDS32 which is needed to implement syscall_get_arch() which in turn is required to extend the generic ptrace API with PTRACE_GET_SYSCALL_INFO request. Acked-by: Paul Moore Acked-by: Vincent Chen Acked-by: Greentime Hu Cc: Elvira Khabirova Cc: Eugene Syromyatnikov Cc: Oleg Nesterov Cc: Andy Lutomirski Cc: linux-audit@redhat.com Signed-off-by: Dmitry V. Levin Signed-off-by: Paul Moore commit 92f922f35078245e2acbafcf74fb1947dbbac398 Author: Dmitry V. Levin Date: Mon Mar 18 02:29:38 2019 +0300 m68k: define syscall_get_arch() syscall_get_arch() is required to be implemented on all architectures in addition to already implemented syscall_get_nr(), syscall_get_arguments(), syscall_get_error(), and syscall_get_return_value() functions in order to extend the generic ptrace API with PTRACE_GET_SYSCALL_INFO request. Reviewed-by: Geert Uytterhoeven Acked-by: Paul Moore Cc: Elvira Khabirova Cc: Eugene Syromyatnikov Cc: Oleg Nesterov Cc: Andy Lutomirski Cc: linux-m68k@lists.linux-m68k.org Cc: linux-audit@redhat.com Signed-off-by: Dmitry V. Levin Signed-off-by: Paul Moore commit d093153431dc6e5982ec77aabe31fa38d2041ac0 Author: Dmitry V. Levin Date: Mon Mar 18 02:29:32 2019 +0300 hexagon: define syscall_get_arch() syscall_get_arch() is required to be implemented on all architectures in addition to already implemented syscall_get_nr(), syscall_get_arguments(), syscall_get_error(), and syscall_get_return_value() functions in order to extend the generic ptrace API with PTRACE_GET_SYSCALL_INFO request. Acked-by: Paul Moore Cc: Elvira Khabirova Cc: Eugene Syromyatnikov Cc: Richard Kuo Cc: Oleg Nesterov Cc: Andy Lutomirski Cc: linux-hexagon@vger.kernel.org Cc: linux-audit@redhat.com Signed-off-by: Dmitry V. Levin Signed-off-by: Paul Moore commit f4780e2db06df05c7349718baf1cd26767aa90f8 Author: Dmitry V. Levin Date: Mon Mar 18 02:29:08 2019 +0300 Move EM_HEXAGON to uapi/linux/elf-em.h This should never have been defined in the arch tree to begin with, and now uapi/linux/audit.h header is going to use EM_HEXAGON in order to define AUDIT_ARCH_HEXAGON which is needed to implement syscall_get_arch() which in turn is required to extend the generic ptrace API with PTRACE_GET_SYSCALL_INFO request. Acked-by: Paul Moore Cc: Elvira Khabirova Cc: Eugene Syromyatnikov Cc: Oleg Nesterov Cc: Andy Lutomirski Cc: Richard Kuo Cc: linux-hexagon@vger.kernel.org Cc: linux-audit@redhat.com Signed-off-by: Dmitry V. Levin Signed-off-by: Paul Moore commit 122a43b107420fec4c69d1bf99706cbb0da40ad9 Author: Dmitry V. Levin Date: Mon Mar 18 02:29:01 2019 +0300 h8300: define syscall_get_arch() syscall_get_arch() is required to be implemented on all architectures in addition to already implemented syscall_get_nr(), syscall_get_arguments(), syscall_get_error(), and syscall_get_return_value() functions in order to extend the generic ptrace API with PTRACE_GET_SYSCALL_INFO request. Acked-by: Paul Moore Cc: Elvira Khabirova Cc: Eugene Syromyatnikov Cc: Yoshinori Sato Cc: Oleg Nesterov Cc: Andy Lutomirski Cc: uclinux-h8-devel@lists.sourceforge.jp Cc: linux-audit@redhat.com Signed-off-by: Dmitry V. Levin Signed-off-by: Paul Moore commit a43e66478ef7a2f8a7b2823b97cdae6605d34a02 Author: Dmitry V. Levin Date: Mon Mar 18 02:28:53 2019 +0300 c6x: define syscall_get_arch() syscall_get_arch() is required to be implemented on all architectures in addition to already implemented syscall_get_nr(), syscall_get_arguments(), syscall_get_error(), and syscall_get_return_value() functions in order to extend the generic ptrace API with PTRACE_GET_SYSCALL_INFO request. Acked-by: Mark Salter Acked-by: Paul Moore Cc: Elvira Khabirova Cc: Eugene Syromyatnikov Cc: Aurelien Jacquiot Cc: Oleg Nesterov Cc: Andy Lutomirski Cc: linux-c6x-dev@linux-c6x.org Cc: linux-audit@redhat.com Signed-off-by: Dmitry V. Levin Signed-off-by: Paul Moore commit 67f2a8a29311841ba6ab9b0e2d1b8f1e9978cd84 Author: Dmitry V. Levin Date: Mon Mar 18 02:28:47 2019 +0300 arc: define syscall_get_arch() syscall_get_arch() is required to be implemented on all architectures in addition to already implemented syscall_get_nr(), syscall_get_arguments(), syscall_get_error(), and syscall_get_return_value() functions in order to extend the generic ptrace API with PTRACE_GET_SYSCALL_INFO request. Acked-by: Vineet Gupta Acked-by: Paul Moore Cc: Elvira Khabirova Cc: Eugene Syromyatnikov Cc: Alexey Brodkin Cc: Oleg Nesterov Cc: Andy Lutomirski Cc: linux-snps-arc@lists.infradead.org Cc: linux-audit@redhat.com Signed-off-by: Dmitry V. Levin Signed-off-by: Paul Moore commit 162f33dd45a7ed606ae07c1e3f22db4ac43a584c Author: Dmitry V. Levin Date: Mon Mar 18 02:28:39 2019 +0300 Move EM_ARCOMPACT and EM_ARCV2 to uapi/linux/elf-em.h These should never have been defined in the arch tree to begin with, and now uapi/linux/audit.h header is going to use EM_ARCOMPACT and EM_ARCV2 in order to define AUDIT_ARCH_ARCOMPACT and AUDIT_ARCH_ARCV2 which are needed to implement syscall_get_arch() which in turn is required to extend the generic ptrace API with PTRACE_GET_SYSCALL_INFO request. Acked-by: Vineet Gupta Acked-by: Paul Moore Cc: Elvira Khabirova Cc: Eugene Syromyatnikov Cc: Alexey Brodkin Cc: Oleg Nesterov Cc: Andy Lutomirski Cc: linux-snps-arc@lists.infradead.org Cc: linux-audit@redhat.com Signed-off-by: Dmitry V. Levin Signed-off-by: Paul Moore commit 2efa48fec0c344a6ca1bba66b15d63d38cf20199 Author: YueHaibing Date: Wed Mar 20 21:59:22 2019 +0800 audit: Make audit_log_cap and audit_copy_inode static Fix sparse warning: kernel/auditsc.c:1150:6: warning: symbol 'audit_log_cap' was not declared. Should it be static? kernel/auditsc.c:1908:6: warning: symbol 'audit_copy_inode' was not declared. Should it be static? Signed-off-by: YueHaibing Acked-by: Richard Guy Briggs Signed-off-by: Paul Moore commit 73e65b88feb919f95bdb77c4ed35f69588cf27ee Author: Richard Guy Briggs Date: Tue Mar 19 15:23:29 2019 -0400 audit: connect LOGIN record to its syscall record Currently the AUDIT_LOGIN event is a standalone record that isn't connected to any other records that may be part of its syscall event. To avoid the confusion of generating two events, connect the records by using its syscall context. Please see the github issue https://github.com/linux-audit/audit-kernel/issues/110 Signed-off-by: Richard Guy Briggs Signed-off-by: Paul Moore commit f55d0b40eccfcfb50f93cc7d03c95e25ab19917e Author: tangwenji Date: Wed Mar 20 22:14:44 2019 +0800 scsi: target: iscsi: Free conn_ops when zalloc_cpumask_var failed It should not free cpumask but free conn->conn_ops when zalloc_cpumask_var failed. Signed-off-by: tangwenji Reviewed-by: Mike Christie Signed-off-by: Martin K. Petersen commit 1ea9b4633cda461f09b4476ff612d32d78e81c92 Author: tangwenji Date: Wed Mar 13 22:56:38 2019 +0800 scsi: target: iscsi: Fix np_ip_proto and np_sock_type in iscsit_setup_np In the switch, np_ip_proto and np_sock_type set different values according to np_network_transport, and then uniformly assign values, so the previous values are overwritten. Signed-off-by: tangwenji Reviewed-by: Mike Christie Signed-off-by: Martin K. Petersen commit ee26724af6c71a9db786c5809395b4853edd4d54 Author: Colin Ian King Date: Wed Mar 20 16:37:09 2019 +0000 scsi: target: fix unsigned comparision with less than zero Currently an error return is being assigned to an unsigned size_t varianle and then checked if the result is less than zero which will always be false. Fix this by making ret ssize_t rather than a size_t. Fixes: 0322913cab79 ("scsi: target: Add device product id and revision configfs attributes") Signed-off-by: Colin Ian King Reviewed-by: Mike Christie Signed-off-by: Martin K. Petersen commit 1943edacef8966e24fc66d8cbe6347fe8b10ff80 Author: Nathan Chancellor Date: Wed Mar 20 11:03:40 2019 -0700 scsi: ufs-mediatek: Avoid using ret uninitialized in ufs_mtk_setup_clocks When building with -Wsometimes-uninitialized, Clang warns: drivers/scsi/ufs/ufs-mediatek.c:112:7: warning: variable 'ret' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] if (on) ^~ drivers/scsi/ufs/ufs-mediatek.c:120:9: note: uninitialized use occurs here return ret; ^~~ drivers/scsi/ufs/ufs-mediatek.c:112:3: note: remove the 'if' if its condition is always true if (on) ^~~~~~~ drivers/scsi/ufs/ufs-mediatek.c:108:7: warning: variable 'ret' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] if (!on) ^~~ drivers/scsi/ufs/ufs-mediatek.c:120:9: note: uninitialized use occurs here return ret; ^~~ drivers/scsi/ufs/ufs-mediatek.c:108:3: note: remove the 'if' if its condition is always true if (!on) ^~~~~~~~ drivers/scsi/ufs/ufs-mediatek.c:96:9: note: initialize the variable 'ret' to silence this warning int ret; ^ = 0 2 warnings generated. Remove the default case and initialize ret to -EINVAL to properly fix this warning. Fixes: ddd90623ce26 ("scsi: ufs-mediatek: Add UFS support for Mediatek SoC chips") Link: https://github.com/ClangBuiltLinux/linux/issues/426 Signed-off-by: Nathan Chancellor Reviewed-by: Nick Desaulniers Reviewed-by: Stanley Chu Signed-off-by: Martin K. Petersen commit cbb24e26735f6142ba994b4d44fc2dcd54c3fe1f Author: YueHaibing Date: Wed Mar 20 22:24:58 2019 +0800 scsi: ufs-mediatek: Make some symbols static Fix sparse warnings: drivers/scsi/ufs/ufs-mediatek.c:19:6: warning: symbol 'ufs_mtk_cfg_unipro_cg' was not declared. Should it be static? drivers/scsi/ufs/ufs-mediatek.c:55:5: warning: symbol 'ufs_mtk_bind_mphy' was not declared. Should it be static? drivers/scsi/ufs/ufs-mediatek.c:342:27: warning: symbol 'ufs_mtk_of_match' was not declared. Should it be static? Signed-off-by: YueHaibing Reviewed-by: Mukesh Ojha Reviewed-by: Stanley Chu Signed-off-by: Martin K. Petersen commit 92f3b327185a81f5daf87508661d77c26b817526 Author: James Smart Date: Wed Mar 20 10:44:22 2019 -0700 scsi: lpfc: Fixup eq_clr_intr references Declaring interrupt clear routines as inline is bogus as they are used as an indirect pointer. Remove the inline references. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit c88725dd14da7356216db7d5fe4713a66d8b1a34 Author: James Bottomley Date: Wed Mar 20 20:02:04 2019 -0400 scsi: lpfc: Fix build error You can't declare a function inline in a header if it doesn't have a body available to the compiler. So realistically you either don't declare it inline or you make it a static inline in the header. I think the latter applies in this case, so this should be the fix Signed-off-by: James Bottomley Acked-by: James Smart Signed-off-by: Martin K. Petersen commit 0b03a5ca8b14321366eec4a903922d2b46d585ff Author: Stephen Suryaputra Date: Wed Mar 20 10:29:27 2019 -0400 ipv6: Add icmp_echo_ignore_anycast for ICMPv6 In addition to icmp_echo_ignore_multicast, there is a need to also prevent responding to pings to anycast addresses for security. Signed-off-by: Stephen Suryaputra Signed-off-by: David S. Miller commit f1b5618e013af28b3c78daf424436a79674423c0 Author: David Howells Date: Thu Nov 1 23:36:32 2018 +0000 vfs: Add a sample program for the new mount API Add a sample program to demonstrate fsopen/fsmount/move_mount to mount something. To make it compile on all arches, irrespective of whether or not syscall numbers are assigned, define the syscall number to -1 if it isn't to cause the kernel to return -ENOSYS. Signed-off-by: David Howells Signed-off-by: Al Viro commit cf3cba4a429be43e5527a3f78859b1bfd9ebc5fb Author: David Howells Date: Thu Nov 1 23:36:23 2018 +0000 vfs: syscall: Add fspick() to select a superblock for reconfiguration Provide an fspick() system call that can be used to pick an existing mountpoint into an fs_context which can thereafter be used to reconfigure a superblock (equivalent of the superblock side of -o remount). This looks like: int fd = fspick(AT_FDCWD, "/mnt", FSPICK_CLOEXEC | FSPICK_NO_AUTOMOUNT); fsconfig(fd, FSCONFIG_SET_FLAG, "intr", NULL, 0); fsconfig(fd, FSCONFIG_SET_FLAG, "noac", NULL, 0); fsconfig(fd, FSCONFIG_CMD_RECONFIGURE, NULL, NULL, 0); At the point of fspick being called, the file descriptor referring to the filesystem context is in exactly the same state as the one that was created by fsopen() after fsmount() has been successfully called. Signed-off-by: David Howells cc: linux-api@vger.kernel.org Signed-off-by: Al Viro commit 93766fbd2696c2c4453dd8e1070977e9cd4e6b6d Author: David Howells Date: Thu Nov 1 23:36:14 2018 +0000 vfs: syscall: Add fsmount() to create a mount for a superblock Provide a system call by which a filesystem opened with fsopen() and configured by a series of fsconfig() calls can have a detached mount object created for it. This mount object can then be attached to the VFS mount hierarchy using move_mount() by passing the returned file descriptor as the from directory fd. The system call looks like: int mfd = fsmount(int fsfd, unsigned int flags, unsigned int attr_flags); where fsfd is the file descriptor returned by fsopen(). flags can be 0 or FSMOUNT_CLOEXEC. attr_flags is a bitwise-OR of the following flags: MOUNT_ATTR_RDONLY Mount read-only MOUNT_ATTR_NOSUID Ignore suid and sgid bits MOUNT_ATTR_NODEV Disallow access to device special files MOUNT_ATTR_NOEXEC Disallow program execution MOUNT_ATTR__ATIME Setting on how atime should be updated MOUNT_ATTR_RELATIME - Update atime relative to mtime/ctime MOUNT_ATTR_NOATIME - Do not update access times MOUNT_ATTR_STRICTATIME - Always perform atime updates MOUNT_ATTR_NODIRATIME Do not update directory access times In the event that fsmount() fails, it may be possible to get an error message by calling read() on fsfd. If no message is available, ENODATA will be reported. Signed-off-by: David Howells cc: linux-api@vger.kernel.org Signed-off-by: Al Viro commit ecdab150fddb42fe6a739335257949220033b782 Author: David Howells Date: Thu Nov 1 23:36:09 2018 +0000 vfs: syscall: Add fsconfig() for configuring and managing a context Add a syscall for configuring a filesystem creation context and triggering actions upon it, to be used in conjunction with fsopen, fspick and fsmount. long fsconfig(int fs_fd, unsigned int cmd, const char *key, const void *value, int aux); Where fs_fd indicates the context, cmd indicates the action to take, key indicates the parameter name for parameter-setting actions and, if needed, value points to a buffer containing the value and aux can give more information for the value. The following command IDs are proposed: (*) FSCONFIG_SET_FLAG: No value is specified. The parameter must be boolean in nature. The key may be prefixed with "no" to invert the setting. value must be NULL and aux must be 0. (*) FSCONFIG_SET_STRING: A string value is specified. The parameter can be expecting boolean, integer, string or take a path. A conversion to an appropriate type will be attempted (which may include looking up as a path). value points to a NUL-terminated string and aux must be 0. (*) FSCONFIG_SET_BINARY: A binary blob is specified. value points to the blob and aux indicates its size. The parameter must be expecting a blob. (*) FSCONFIG_SET_PATH: A non-empty path is specified. The parameter must be expecting a path object. value points to a NUL-terminated string that is the path and aux is a file descriptor at which to start a relative lookup or AT_FDCWD. (*) FSCONFIG_SET_PATH_EMPTY: As fsconfig_set_path, but with AT_EMPTY_PATH implied. (*) FSCONFIG_SET_FD: An open file descriptor is specified. value must be NULL and aux indicates the file descriptor. (*) FSCONFIG_CMD_CREATE: Trigger superblock creation. (*) FSCONFIG_CMD_RECONFIGURE: Trigger superblock reconfiguration. For the "set" command IDs, the idea is that the file_system_type will point to a list of parameters and the types of value that those parameters expect to take. The core code can then do the parse and argument conversion and then give the LSM and FS a cooked option or array of options to use. Source specification is also done the same way same way, using special keys "source", "source1", "source2", etc.. [!] Note that, for the moment, the key and value are just glued back together and handed to the filesystem. Every filesystem that uses options uses match_token() and co. to do this, and this will need to be changed - but not all at once. Example usage: fd = fsopen("ext4", FSOPEN_CLOEXEC); fsconfig(fd, fsconfig_set_path, "source", "/dev/sda1", AT_FDCWD); fsconfig(fd, fsconfig_set_path_empty, "journal_path", "", journal_fd); fsconfig(fd, fsconfig_set_fd, "journal_fd", "", journal_fd); fsconfig(fd, fsconfig_set_flag, "user_xattr", NULL, 0); fsconfig(fd, fsconfig_set_flag, "noacl", NULL, 0); fsconfig(fd, fsconfig_set_string, "sb", "1", 0); fsconfig(fd, fsconfig_set_string, "errors", "continue", 0); fsconfig(fd, fsconfig_set_string, "data", "journal", 0); fsconfig(fd, fsconfig_set_string, "context", "unconfined_u:...", 0); fsconfig(fd, fsconfig_cmd_create, NULL, NULL, 0); mfd = fsmount(fd, FSMOUNT_CLOEXEC, MS_NOEXEC); or: fd = fsopen("ext4", FSOPEN_CLOEXEC); fsconfig(fd, fsconfig_set_string, "source", "/dev/sda1", 0); fsconfig(fd, fsconfig_cmd_create, NULL, NULL, 0); mfd = fsmount(fd, FSMOUNT_CLOEXEC, MS_NOEXEC); or: fd = fsopen("afs", FSOPEN_CLOEXEC); fsconfig(fd, fsconfig_set_string, "source", "#grand.central.org:root.cell", 0); fsconfig(fd, fsconfig_cmd_create, NULL, NULL, 0); mfd = fsmount(fd, FSMOUNT_CLOEXEC, MS_NOEXEC); or: fd = fsopen("jffs2", FSOPEN_CLOEXEC); fsconfig(fd, fsconfig_set_string, "source", "mtd0", 0); fsconfig(fd, fsconfig_cmd_create, NULL, NULL, 0); mfd = fsmount(fd, FSMOUNT_CLOEXEC, MS_NOEXEC); Signed-off-by: David Howells cc: linux-api@vger.kernel.org Signed-off-by: Al Viro commit 007ec26cdc9fefacbed85b592afc69413194499c Author: David Howells Date: Thu Nov 1 23:34:29 2018 +0000 vfs: Implement logging through fs_context Implement the ability for filesystems to log error, warning and informational messages through the fs_context. These can be extracted by userspace by reading from an fd created by fsopen(). Error messages are prefixed with "e ", warnings with "w " and informational messages with "i ". Inside the kernel, formatted messages are malloc'd but unformatted messages are not copied if they're either in the core .rodata section or in the .rodata section of the filesystem module pinned by fs_context::fs_type. The messages are only good till the fs_type is released. Note that the logging object is shared between duplicated fs_context structures. This is so that such as NFS which do a mount within a mount can get at least some of the errors from the inner mount. Five logging functions are provided for this: (1) void logfc(struct fs_context *fc, const char *fmt, ...); This logs a message into the context. If the buffer is full, the earliest message is discarded. (2) void errorf(fc, fmt, ...); This wraps logfc() to log an error. (3) void invalf(fc, fmt, ...); This wraps errorf() and returns -EINVAL for convenience. (4) void warnf(fc, fmt, ...); This wraps logfc() to log a warning. (5) void infof(fc, fmt, ...); This wraps logfc() to log an informational message. Signed-off-by: David Howells Signed-off-by: Al Viro commit 24dcb3d90a1f67fe08c68a004af37df059d74005 Author: David Howells Date: Thu Nov 1 23:33:31 2018 +0000 vfs: syscall: Add fsopen() to prepare for superblock creation Provide an fsopen() system call that starts the process of preparing to create a superblock that will then be mountable, using an fd as a context handle. fsopen() is given the name of the filesystem that will be used: int mfd = fsopen(const char *fsname, unsigned int flags); where flags can be 0 or FSOPEN_CLOEXEC. For example: sfd = fsopen("ext4", FSOPEN_CLOEXEC); fsconfig(sfd, FSCONFIG_SET_PATH, "source", "/dev/sda1", AT_FDCWD); fsconfig(sfd, FSCONFIG_SET_FLAG, "noatime", NULL, 0); fsconfig(sfd, FSCONFIG_SET_FLAG, "acl", NULL, 0); fsconfig(sfd, FSCONFIG_SET_FLAG, "user_xattr", NULL, 0); fsconfig(sfd, FSCONFIG_SET_STRING, "sb", "1", 0); fsconfig(sfd, FSCONFIG_CMD_CREATE, NULL, NULL, 0); fsinfo(sfd, NULL, ...); // query new superblock attributes mfd = fsmount(sfd, FSMOUNT_CLOEXEC, MS_RELATIME); move_mount(mfd, "", sfd, AT_FDCWD, "/mnt", MOVE_MOUNT_F_EMPTY_PATH); sfd = fsopen("afs", -1); fsconfig(fd, FSCONFIG_SET_STRING, "source", "#grand.central.org:root.cell", 0); fsconfig(fd, FSCONFIG_CMD_CREATE, NULL, NULL, 0); mfd = fsmount(sfd, 0, MS_NODEV); move_mount(mfd, "", sfd, AT_FDCWD, "/mnt", MOVE_MOUNT_F_EMPTY_PATH); If an error is reported at any step, an error message may be available to be read() back (ENODATA will be reported if there isn't an error available) in the form: "e :" "e SELinux:Mount on mountpoint not permitted" Once fsmount() has been called, further fsconfig() calls will incur EBUSY, even if the fsmount() fails. read() is still possible to retrieve error information. The fsopen() syscall creates a mount context and hangs it of the fd that it returns. Netlink is not used because it is optional and would make the core VFS dependent on the networking layer and also potentially add network namespace issues. Note that, for the moment, the caller must have SYS_CAP_ADMIN to use fsopen(). Signed-off-by: David Howells cc: linux-api@vger.kernel.org Signed-off-by: Al Viro commit dadd2299ab61fc2b55b95b7b3a8f674cdd3b69c9 Author: David Howells Date: Mon Nov 5 17:40:31 2018 +0000 Make anon_inodes unconditional Make the anon_inodes facility unconditional so that it can be used by core VFS code. Signed-off-by: David Howells Signed-off-by: Al Viro commit 44dfd84a6d54a675e35ab618d9fab47b36cb78cd Author: David Howells Date: Mon Nov 5 17:40:31 2018 +0000 teach move_mount(2) to work with OPEN_TREE_CLONE Allow a detached tree created by open_tree(..., OPEN_TREE_CLONE) to be attached by move_mount(2). If by the time of final fput() of OPEN_TREE_CLONE-opened file its tree is not detached anymore, it won't be dissolved. move_mount(2) is adjusted to handle detached source. That gives us equivalents of mount --bind and mount --rbind. Thanks also to Alan Jenkins for providing a whole bunch of ways to break things using this interface. Signed-off-by: Al Viro Signed-off-by: David Howells Signed-off-by: Al Viro commit 2db154b3ea8e14b04fee23e3fdfd5e9d17fbc6ae Author: David Howells Date: Mon Nov 5 17:40:30 2018 +0000 vfs: syscall: Add move_mount(2) to move mounts around Add a move_mount() system call that will move a mount from one place to another and, in the next commit, allow to attach an unattached mount tree. The new system call looks like the following: int move_mount(int from_dfd, const char *from_path, int to_dfd, const char *to_path, unsigned int flags); Signed-off-by: David Howells cc: linux-api@vger.kernel.org Signed-off-by: Al Viro commit a07b20004793d8926f78d63eb5980559f7813404 Author: Al Viro Date: Mon Nov 5 17:40:30 2018 +0000 vfs: syscall: Add open_tree(2) to reference or clone a mount open_tree(dfd, pathname, flags) Returns an O_PATH-opened file descriptor or an error. dfd and pathname specify the location to open, in usual fashion (see e.g. fstatat(2)). flags should be an OR of some of the following: * AT_PATH_EMPTY, AT_NO_AUTOMOUNT, AT_SYMLINK_NOFOLLOW - same meanings as usual * OPEN_TREE_CLOEXEC - make the resulting descriptor close-on-exec * OPEN_TREE_CLONE or OPEN_TREE_CLONE | AT_RECURSIVE - instead of opening the location in question, create a detached mount tree matching the subtree rooted at location specified by dfd/pathname. With AT_RECURSIVE the entire subtree is cloned, without it - only the part within in the mount containing the location in question. In other words, the same as mount --rbind or mount --bind would've taken. The detached tree will be dissolved on the final close of obtained file. Creation of such detached trees requires the same capabilities as doing mount --bind. Signed-off-by: Al Viro Signed-off-by: David Howells cc: linux-api@vger.kernel.org Signed-off-by: Al Viro commit 6ebc9692a7add632eb4d8ec3dcd1530bc4bbff08 Author: Daniele Ceraolo Spurio Date: Tue Mar 19 11:35:41 2019 -0700 drm/i915: make raw access function work on uncore This allows us to ditch i915 in some more places. v2: use local var in check_vgpu (Paulo) Signed-off-by: Daniele Ceraolo Spurio Cc: Paulo Zanoni Reviewed-by: Paulo Zanoni Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190319183543.13679-9-daniele.ceraolospurio@intel.com commit 25286aaca9cee11daa0cede2bcd62d48e440d9f3 Author: Daniele Ceraolo Spurio Date: Tue Mar 19 11:35:40 2019 -0700 drm/i915: move regs pointer inside the uncore structure This will allow futher simplifications in the uncore handling. v2: move register access setup under uncore (Chris) Signed-off-by: Daniele Ceraolo Spurio Cc: Paulo Zanoni Cc: Chris Wilson Reviewed-by: Paulo Zanoni Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190319183543.13679-8-daniele.ceraolospurio@intel.com commit 272c7e52302e910abd49b3fbc871d9609c72b63d Author: Daniele Ceraolo Spurio Date: Tue Mar 19 11:35:39 2019 -0700 drm/i915: reduce the dev_priv->uncore dance in uncore.c Use a local variable where it makes sense. Signed-off-by: Daniele Ceraolo Spurio Cc: Paulo Zanoni Reviewed-by: Paulo Zanoni Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190319183543.13679-7-daniele.ceraolospurio@intel.com commit cb7ee69015aaba5e1091af94e73bc72483c08e37 Author: Daniele Ceraolo Spurio Date: Tue Mar 19 11:35:38 2019 -0700 drm/i915: make find_fw_domain work on intel_uncore Remove unneeded usage of dev_priv from 1 extra function. Signed-off-by: Daniele Ceraolo Spurio Cc: Paulo Zanoni Reviewed-by: Paulo Zanoni Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190319183543.13679-6-daniele.ceraolospurio@intel.com commit f7de50278e5ccaa2741c0871a41db63d70058a4e Author: Daniele Ceraolo Spurio Date: Tue Mar 19 11:35:37 2019 -0700 drm/i915: make more uncore function work on intel_uncore Move the init, fini, prune, suspend, resume function to work on intel_uncore instead of dev_priv. Signed-off-by: Daniele Ceraolo Spurio Cc: Paulo Zanoni Reviewed-by: Paulo Zanoni Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190319183543.13679-5-daniele.ceraolospurio@intel.com commit 3ceea6a1b4d2426b49a9ebcc099cc147dc68e20b Author: Daniele Ceraolo Spurio Date: Tue Mar 19 11:35:36 2019 -0700 drm/i915: use intel_uncore for all forcewake get/put Now that the internal code all works on intel_uncore, flip the external-facing interface. v2: fix GVT. Signed-off-by: Daniele Ceraolo Spurio Cc: Paulo Zanoni Reviewed-by: Paulo Zanoni Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190319183543.13679-4-daniele.ceraolospurio@intel.com commit f568eeee535597dfcf7b84169b135ada8696ba59 Author: Daniele Ceraolo Spurio Date: Tue Mar 19 11:35:35 2019 -0700 drm/i915: use intel_uncore in fw get/put internal paths Get/put functions used outside of uncore.c are updated in the next patch for a nicer split. v2: use dev_priv where we still have it (Paulo) Signed-off-by: Daniele Ceraolo Spurio Cc: Paulo Zanoni Reviewed-by: Paulo Zanoni Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190319183543.13679-3-daniele.ceraolospurio@intel.com commit 159367bb9e7439b8c1c4c066596a1663b901647b Author: Daniele Ceraolo Spurio Date: Wed Mar 20 12:27:32 2019 +0000 drm/i915: always use masks on FW regs Upper bits are reserved on gen6, so no issue if we write them. Note that we're already doing this in the non-MT case of IVB, which uses the same register. Signed-off-by: Daniele Ceraolo Spurio Cc: Paulo Zanoni Cc: Chris Wilson Reviewed-by: Paulo Zanoni Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190320122732.14512-1-chris@chris-wilson.co.uk commit 296bd5aea223d1d04f4e113ceec74d1fb3e422c5 Author: Gustavo A. R. Silva Date: Wed Mar 20 13:27:15 2019 -0500 PCI: Mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warnings: drivers/pci/proc.c: In function ‘proc_bus_pci_ioctl’: drivers/pci/proc.c:216:6: warning: this statement may fall through [-Wimplicit-fallthrough=] if (arch_can_pci_mmap_wc()) { ^ drivers/pci/proc.c:225:2: note: here default: ^~~~~~~ drivers/pci/xen-pcifront.c: In function ‘pcifront_backend_changed’: drivers/pci/xen-pcifront.c:1105:6: warning: this statement may fall through [-Wimplicit-fallthrough=] if (xdev->state == XenbusStateClosed) ^ drivers/pci/xen-pcifront.c:1108:2: note: here case XenbusStateClosing: ^~~~ Notice that, in this particular case, the /* fall through */ comment is placed at the very bottom of the case statement, which is what GCC is expecting to find. Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Bjorn Helgaas commit a534ea30e70fc51c4cef31c0683955dd8a568a11 Author: YueHaibing Date: Wed Mar 20 21:48:06 2019 +0800 net: isdn: Make isdn_ppp_mp_discard and isdn_ppp_mp_reassembly static Fix sparse warnings: drivers/isdn/i4l/isdn_ppp.c:1891:16: warning: symbol 'isdn_ppp_mp_discard' was not declared. Should it be static? drivers/isdn/i4l/isdn_ppp.c:1903:6: warning: symbol 'isdn_ppp_mp_reassembly' was not declared. Should it be static? Signed-off-by: YueHaibing Signed-off-by: David S. Miller commit 7264aebb81d15aa6bbed650c816bba90f026bc35 Author: Manasi Navare Date: Tue Mar 19 15:18:47 2019 -0700 drm/i915/icl: Fix the TRANS_DDI_FUNC_CTL2 bitfield macro This patch fixes the PORT_SYNC_MODE_MASTER_SELECT macro to correctly do the left shifting to set the port sync master select correctly. I have tested this fix on ICL. Fixes: 49edbd49786e ("drm/i915/icl: Define TRANS_DDI_FUNC_CTL DSI registers") Cc: Madhav Chauhan Cc: Jani Nikula Cc: # v5.0+ Signed-off-by: Manasi Navare Reviewed-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190319221847.21311-1-manasi.d.navare@intel.com commit 9b23e1a3e8fde76e8cc0e366ab1ed4ffb4440feb Author: Sylwester Nawrocki Date: Wed Mar 20 10:59:50 2019 +0100 ARM: dts: exynos: Fix audio (microphone) routing on Odroid XU3 The name of CODEC input widget to which microphone is connected through the "Headphone" jack is "IN12" not "IN1". This fixes microphone support on Odroid XU3. Cc: # v4.14+ Signed-off-by: Sylwester Nawrocki Signed-off-by: Krzysztof Kozlowski commit 77fc46976e0bfcd78d30fb4c9f0169752b4339c9 Author: Kamil Konieczny Date: Fri Feb 22 13:21:42 2019 +0100 arm64: dts: exynos: Add SlimSSS to Exynos5433 Add DT node for SlimSSS (aka Slim SecuritySubSystem) in Exynos5433 SoC. Signed-off-by: Kamil Konieczny Signed-off-by: Krzysztof Kozlowski commit 45eedc0e36088454c35a68beab2a784038e8b321 Author: Andrzej Hajda Date: Wed Mar 20 14:07:02 2019 +0100 arm64: dts: exynos: add DSD/GSD clocks to DECONs and GSCALERs of Exynos5433 To support local paths both DECON and GSCALER should enable respective Smart Deck clocks DSD and GSD on Exynos5433. Signed-off-by: Andrzej Hajda Signed-off-by: Krzysztof Kozlowski commit 7698ffaf4198640ab5a9fea88eb804947ccd9f5b Author: Andrzej Hajda Date: Wed Mar 20 14:07:01 2019 +0100 arm64: dts: exynos: configure GSCALER related clocks on TM2 GSCALER should be feed with clock at certain rates. Configure it on Exynos5433 based TM2 board. Signed-off-by: Andrzej Hajda Signed-off-by: Krzysztof Kozlowski commit 881d7afdff165159a7138e56523889eac27d84c8 Author: YueHaibing Date: Wed Mar 20 21:37:13 2019 +0800 net: hns3: Make hclge_destroy_cmd_queue static Fix sparse warning: drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c:414:6: warning: symbol 'hclge_destroy_cmd_queue' was not declared. Should it be static? Signed-off-by: YueHaibing Signed-off-by: David S. Miller commit 75d317c40964c50e476df3f86de6fed135048cd2 Merge: 0b963ef20c56 a350eccee583 Author: David S. Miller Date: Wed Mar 20 11:18:55 2019 -0700 Merge branch 'net-refactor-ndo_select_queue' Paolo Abeni says: ==================== net: refactor ndo_select_queue() Currently, on most devices implementing ndo_select_queue(), we get 2 indirect calls per xmit packet, at least in some scenarios. We can avoid one of such indirect calls refactoring the ndo_select_queue() usage so that we don't need anymore the 'fallback' argument. The first patch renames a helper used later as a public API, the second one changes the af packet implementation so that it uses the common infrastructure to select the xmit queue, and the second patch drops the now unneeded argument from ndo_select_queue(). Alternatively we could use the INDIRECT_CALL_WRAPPER infrastructure to avoid the fallback indirect call in the common case, but this solution allows also for some code cleanup. v1 -> v2: - renamed select queue helpers, as per Eric's and David's suggestions ==================== Signed-off-by: David S. Miller commit a350eccee5830d9a1f29e393a88dc05a15326d44 Author: Paolo Abeni Date: Wed Mar 20 11:02:06 2019 +0100 net: remove 'fallback' argument from dev->ndo_select_queue() After the previous patch, all the callers of ndo_select_queue() provide as a 'fallback' argument netdev_pick_tx. The only exceptions are nested calls to ndo_select_queue(), which pass down the 'fallback' available in the current scope - still netdev_pick_tx. We can drop such argument and replace fallback() invocation with netdev_pick_tx(). This avoids an indirect call per xmit packet in some scenarios (TCP syn, UDP unconnected, XDP generic, pktgen) with device drivers implementing such ndo. It also clean the code a bit. Tested with ixgbe and CONFIG_FCOE=m With pktgen using queue xmit: threads vanilla patched (kpps) (kpps) 1 2334 2428 2 4166 4278 4 7895 8100 v1 -> v2: - rebased after helper's name change Signed-off-by: Paolo Abeni Signed-off-by: David S. Miller commit b71b5837f8711dbc4bc0424cb5c75e5921be055c Author: Paolo Abeni Date: Wed Mar 20 11:02:05 2019 +0100 packet: rework packet_pick_tx_queue() to use common code selection Currently packet_pick_tx_queue() is the only caller of ndo_select_queue() using a fallback argument other than netdev_pick_tx. Leveraging rx queue, we can obtain a similar queue selection behavior using core helpers. After this change, ndo_select_queue() is always invoked with netdev_pick_tx() as fallback. We can change ndo_select_queue() signature in a followup patch, dropping an indirect call per transmitted packet in some scenarios (e.g. TCP syn and XDP generic xmit) This changes slightly how af packet queue selection happens when PACKET_QDISC_BYPASS is set. It's now more similar to plan dev_queue_xmit() tacking in account both XPS and TC mapping. v1 -> v2: - rebased after helper name change RFC -> v1: - initialize sender_cpu to the expected value Signed-off-by: Paolo Abeni Signed-off-by: David S. Miller commit 4bd97d51a5e602ea1fbdab8c2d653513dea17115 Author: Paolo Abeni Date: Wed Mar 20 11:02:04 2019 +0100 net: dev: rename queue selection helpers. With the following patches, we are going to use __netdev_pick_tx() in many modules. Rename it to netdev_pick_tx(), to make it clear is a public API. Also rename the existing netdev_pick_tx() to netdev_core_pick_tx(), to avoid name clashes. Suggested-by: Eric Dumazet Suggested-by: David Miller Signed-off-by: Paolo Abeni Signed-off-by: David S. Miller commit 0b963ef20c5624c4cc6c4ef408b301a24b26b96b Merge: 254c0a2bfedb 1a3ca25062cf Author: David S. Miller Date: Wed Mar 20 11:12:50 2019 -0700 Merge branch 'qed-next' Sudarsana Reddy Kalluru says: ==================== qed* enhancements. The patch series adds couple of enhancements for qed/qede drivers. Please consider applying it to 'net-next' tree. ==================== Signed-off-by: David S. Miller commit 1a3ca25062cfff6cf6f60dbaa01edb01f9637f08 Author: Sudarsana Reddy Kalluru Date: Wed Mar 20 00:26:26 2019 -0700 qed: Define new MF bit for no_vlan config The patch introduces a new Multi-Function bit for cases where firmware shouldn't perform the insertion of vlan-0 tag. The new bit is defined to abstract the implementation from the actual MF mode. Signed-off-by: Sudarsana Reddy Kalluru Signed-off-by: Ariel Elior Signed-off-by: Michal Kalderon Signed-off-by: David S. Miller commit a88381dece86a9c1043ddc0a4b07d5fa3689d298 Author: Sudarsana Reddy Kalluru Date: Wed Mar 20 00:26:25 2019 -0700 qede: Populate mbi version in ethtool driver query data. The patch adds support to display MBI image version in 'ethtool -i' output. Signed-off-by: Sudarsana Reddy Kalluru Signed-off-by: Ariel Elior Signed-off-by: Michal Kalderon Signed-off-by: David S. Miller commit 254c0a2bfedb9e1baf38bd82ca86494d4bc1e0cb Author: Hangbin Liu Date: Wed Mar 20 10:23:33 2019 +0800 macvlan: pass get_ts_info and SIOC[SG]HWTSTAMP ioctl to real device Similiar to commit a6111d3c93d0 ("vlan: Pass SIOC[SG]HWTSTAMP ioctls to real device") and commit 37dd9255b2f6 ("vlan: Pass ethtool get_ts_info queries to real device."), add MACVlan HW ptp support. Signed-off-by: Hangbin Liu Signed-off-by: David S. Miller commit 1bfe45f4ae81dc961b4bcb2ce6860c4ee1af621a Author: Mao Wenan Date: Wed Mar 20 10:06:57 2019 +0800 net: bridge: use eth_broadcast_addr() to assign broadcast address This patch is to use eth_broadcast_addr() to assign broadcast address insetad of memset(). Signed-off-by: Mao Wenan Signed-off-by: David S. Miller commit f295b3ae9f5927e084bd5decdff82390e3471801 Author: Vakul Garg Date: Wed Mar 20 02:03:36 2019 +0000 net/tls: Add support of AES128-CCM based ciphers Added support for AES128-CCM based record encryption. AES128-CCM is similar to AES128-GCM. Both of them have same salt/iv/mac size. The notable difference between the two is that while invoking AES128-CCM operation, the salt||nonce (which is passed as IV) has to be prefixed with a hardcoded value '2'. Further, CCM implementation in kernel requires IV passed in crypto_aead_request() to be full '16' bytes. Therefore, the record structure 'struct tls_rec' has been modified to reserve '16' bytes for IV. This works for both GCM and CCM based cipher. Signed-off-by: Vakul Garg Signed-off-by: David S. Miller commit 6a23c0a6af98c927f387353a219c1f5664bb3d5b Merge: 5c5f626bcace 1e614b5086ee Author: David S. Miller Date: Wed Mar 20 10:58:17 2019 -0700 Merge branch 'net-phy-aquantia-add-interface-mode-handling' Heiner Kallweit says: ==================== net: phy: aquantia: add interface mode handling These two patches add interface mode handling for the AQR107/AQCS109. ==================== Signed-off-by: David S. Miller commit 1e614b5086ee8b2287238f74a9fa6d7935084a3c Author: Nikita Yushchenko Date: Tue Mar 19 23:05:50 2019 +0100 net: phy: aquantia: check for changed interface mode in read_status Depending on the auto-negotiated speed the PHY may change the interface mode. Check for new mode and set phydev->interface accordingly. Signed-off-by: Nikita Yushchenko Signed-off-by: Andrew Lunn [hkallweit1@gmail.com: picked from bigger patch and reworked] Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 570c8a7d53032b1773ecfc6d317402450ada6de4 Author: Andrew Lunn Date: Tue Mar 19 23:04:38 2019 +0100 net: phy: aquantia: check for supported interface modes in config_init Let config_init check for unsupported interface modes on AQR107/AQCS109. Signed-off-by: Andrew Lunn [hkallweit1@gmail.com: adjusted for AQR107/AQCS109 specifics] Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 6e514e371757a62996881e94dd2a488b3e16d518 Author: Andy Shevchenko Date: Mon Mar 4 11:29:08 2019 +0200 drm/i915: Switch to bitmap_zalloc() Switch to bitmap_zalloc() to show clearly what we are allocating. Besides that it returns pointer of bitmap type instead of opaque void *. Signed-off-by: Andy Shevchenko Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190304092908.57382-2-andriy.shevchenko@linux.intel.com commit 5c5f626bcacee0a345b8fd0af81be45eedb9bda9 Author: Heiner Kallweit Date: Tue Mar 19 19:56:51 2019 +0100 net: phy: improve handling link_change_notify callback Currently the Phy driver's link_change_notify callback is called whenever the state machine is run (every second if polling), no matter whether the state changed or not. This isn't needed and may confuse users considering the name of the callback. Actually it contradicts its kernel-doc description. Therefore let's change the behavior and call this callback only in case of an actual state change. This requires changes to the at803x and rockchip drivers. at803x can be simplified so that it reacts on a state change to PHY_NOLINK only. The rockchip driver can also be much simplified. We simply re-init the AFE/DSP registers whenever we change to PHY_RUNNING and speed is 100Mbps. This causes very small overhead because we do this even if the speed was 100Mbps already. But this is negligible and I think justified by the much simpler code. Changes are compile-tested only. A little bit problematic seems to be to find somebody with the hardware to test the changes to the two PHY drivers. See also [0]. David may be able to test the Rockchip driver. [0] https://marc.info/?t=153782508800006&r=1&w=2 Signed-off-by: Heiner Kallweit Signed-off-by: David S. Miller commit 34965a52dcf91ffecd7f1a450e5abb104f742d9c Author: Andy Shevchenko Date: Mon Mar 4 11:29:07 2019 +0200 drm/selftests/mm: Switch to bitmap_zalloc() Switch to bitmap_zalloc() to show clearly what we are allocating. Besides that it returns pointer of bitmap type instead of opaque void *. Signed-off-by: Andy Shevchenko Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190304092908.57382-1-andriy.shevchenko@linux.intel.com commit 000c6af41775910007463d9a18f9e79fc0f9c8f4 Author: Andy Shevchenko Date: Tue Mar 19 17:48:43 2019 +0200 spi: pxa2xx: Debug print DMA burst size It's useful during debug to see what DMA burst size is. Signed-off-by: Andy Shevchenko Tested-by: Jarkko Nikula Reviewed-by: Jarkko Nikula Signed-off-by: Mark Brown commit 37821a82e6789eaaa81dd32a67edc3511ebfd5aa Author: Andy Shevchenko Date: Tue Mar 19 17:48:42 2019 +0200 spi: pxa2xx: Introduce DMA burst size support Some masters may have different DMA burst size than hard coded default. In such case respect the value given by DMA burst size provided via platform data. Signed-off-by: Andy Shevchenko Tested-by: Jarkko Nikula Reviewed-by: Jarkko Nikula Signed-off-by: Mark Brown commit 560ee7e9100916e30e126a53d127ca54745b2a8e Author: Phil Edworthy Date: Tue Mar 19 15:52:07 2019 +0000 spi: dw: Add support for an optional interface clock The Synopsys SSI Controller has an interface clock, but most SoCs hide this away. However, on some SoCs you need to explicitly enable the interface clock in order to access the registers. Therefore, add support for an optional interface clock. Signed-off-by: Phil Edworthy Signed-off-by: Gareth Williams Signed-off-by: Mark Brown commit 2f324ac7cf8c50aa079cf30445b99a1b98ea2728 Author: Gareth Williams Date: Tue Mar 19 15:52:06 2019 +0000 dt-bindings: snps,dw-apb-ssi: Add optional clock bindings documentation Add documentation to the Synopsys SPI dt-bindings to support an optional interface clock that may be used for register access. Signed-off-by: Phil Edworthy Signed-off-by: Gareth Williams Signed-off-by: Mark Brown commit 57a9f6e7eefa697349ff4823f178fd56abe27345 Author: Phil Edworthy Date: Tue Mar 19 15:52:05 2019 +0000 dt-bindings: snps,dw-apb-ssi: Add mandatory clock bindings documentation The Synopsys SSI driver uses a mandatory clock that is not documented, so detail it in the device tree bindings. Also correct the spelling of "pins" in the "Optional Properties" section for the driver. Signed-off-by: Phil Edworthy Signed-off-by: Gareth Williams Signed-off-by: Mark Brown commit f457cb707836e79a88b64ab22230edc2aa8ce0af Author: Wolfram Sang Date: Tue Mar 19 17:36:37 2019 +0100 spi: mxic: simplify getting .driver_data We should get 'driver_data' from 'struct device' directly. Going via platform_device is an unneeded step back and forth. Signed-off-by: Wolfram Sang Signed-off-by: Mark Brown commit 43a8d240eee4f523c7120f47a4c9469f5abfb308 Author: kbuild test robot Date: Sat Mar 16 15:33:41 2019 +0800 spi: spi-mem: stm32-qspi: stm32_qspi_pm_ops can be static Fixes: 2e541b64ee52 ("spi: spi-mem: stm32-qspi: add suspend/resume support") Signed-off-by: kbuild test robot Signed-off-by: Mark Brown commit 563943864f3f08ae959a13e9c59821db9a9f1e88 Author: Gustavo A. R. Silva Date: Wed Mar 20 11:56:43 2019 -0500 regulator: axp20x: Mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warnings: drivers/regulator/axp20x-regulator.c: In function ‘axp20x_set_dcdc_freq’: drivers/regulator/axp20x-regulator.c:1023:7: warning: this statement may fall through [-Wimplicit-fallthrough=] reg = AXP803_DCDC_FREQ_CTRL; drivers/regulator/axp20x-regulator.c:1025:2: note: here case AXP806_ID: ^~~~ drivers/regulator/axp20x-regulator.c: In function ‘axp20x_set_dcdc_workmode’: drivers/regulator/axp20x-regulator.c:1115:7: warning: this statement may fall through [-Wimplicit-fallthrough=] reg = AXP806_DCDC_MODE_CTRL2; drivers/regulator/axp20x-regulator.c:1121:2: note: here case AXP221_ID: ^~~~ Notice that in this particular case, I moved the whole comment "Fall through to the check below.", which contains the "Fall through" comment, at the bottom of the case, which is what GCC is expecting to find. Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Mark Brown commit 94e290b0e9a6c360a5660c480c1ba996d892c650 Author: Wolfram Sang Date: Tue Mar 5 18:54:34 2019 +0100 i2c: rcar: wait for data empty before starting DMA When sending with DMA, the driver transfers the first byte with PIO (as documented). However, it started DMA right after the first byte was written. This worked, but was not according to the datasheet which suggests to wait until data register was empty again. Implement this. Signed-off-by: Wolfram Sang Reviewed-by: Simon Horman Signed-off-by: Wolfram Sang commit 03f85e380f9237da436ab050a4ff0f8b541c8ee7 Author: Wolfram Sang Date: Tue Mar 5 18:54:33 2019 +0100 i2c: rcar: let DMA enable routine return success status We will need to know if enabling DMA was successful in a later patch. Signed-off-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Reviewed-by: Simon Horman Signed-off-by: Wolfram Sang commit ed5a81046bf7a1b665eb5bf178c4139503f4637e Author: Wolfram Sang Date: Tue Mar 5 18:54:32 2019 +0100 i2c: rcar: sanity check for minimal DMA length Use a macro for the hardcoded value and apply a build check. If it is not met, the driver logic will not work anymore. Signed-off-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Reviewed-by: Simon Horman Signed-off-by: Wolfram Sang commit d151cf89a47666622425ff093ee97e15587acd9a Author: Olivier Moysan Date: Mon Mar 4 15:52:45 2019 +0100 ASoC: stm32: dfsdm: add mmap support Enable direct access (mmap) support. Signed-off-by: Olivier Moysan Signed-off-by: Mark Brown commit 80c94557e94f25df5df00fd94e2a58bf31230fce Author: Marek Vasut Date: Sat Mar 16 21:25:51 2019 +0100 regulator: gpio: Reword the binding document Reword the binding document to make it clear how the propeties work and which properties affect which other properties. Signed-off-by: Marek Vasut Cc: Harald Geyer Cc: Kuninori Morimoto Cc: Linus Walleij Cc: Mark Brown Cc: Rob Herring Cc: linux-renesas-soc@vger.kernel.org To: devicetree@vger.kernel.org Signed-off-by: Mark Brown commit c22938562fd891cf1fa95690a6eb6cc9d9a1fbbd Author: Axel Lin Date: Wed Mar 20 20:10:57 2019 +0800 regulator: rn5t618: Constify regulator_desc The regulator_desc never need to be modified, so define them as const as a hint to the compiler that they can go into .rodata. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 6185de50e441c3e6809a00d4f525ad2c344031f5 Author: Axel Lin Date: Wed Mar 20 19:40:23 2019 +0800 regulator: max8925: Convert to regulator core's simplified DT parsing code Use regulator core's simplified DT parsing code to simply the driver implementation. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 0b8515eddbd82f4aa3ad966aa4e6e708af461cc4 Merge: 8d3a3048c313 ad71b256ba4e Author: David S. Miller Date: Wed Mar 20 10:14:10 2019 -0700 Merge branch '100GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== 100GbE Intel Wired LAN Driver Updates 2019-03-19 This series contains updates to ice driver only. Michal adds support for the pruning enable flag to avoid seeing broadcast packets on different VLANs. Akeem fixes an issue with VF queues being disabled and the VF netdev network carrier being lost after reset. Fixed an issue issue when doing PFR and CORER resets, where all VF VSIs need to be reset and rebuilt with the main VSIs before replaying all VSIs. Resolved an issue to properly initialize VFs in the guest OS via PCI passthrough. Bruce adds a local variable to avoid unnecessary de-references throughout ice_probe(). Brett cleans up the code a bit by removing the need for a local variable and re-designs the loop to simply return when get a successful result. Cleans up the code to replace loop calls with a predefined macro to make the code more consistent. Updated the driver to ensure ITR granularity is always 2 usecs. Refactors the calculation of VSIs per PF into a general function that can calculate per PF allocations for not just VSIs but across multiple resource types. Improve the driver performance of the driver when using the default settings by determining the ring size and the number of descriptors for transmit and receive based on a calculation with the PAGE_SIZE, ICE_MAX_NUM_DESC, and ICE_REQ_DESC_MULTIPLE. Chinh fixes an issue, where a reserved bit was possibly being set when it should never be set. ==================== Signed-off-by: David S. Miller commit 7a67eb1d3abefe16b491b0e9801f98a98f15a3bf Author: YueHaibing Date: Tue Mar 19 23:23:19 2019 +0800 regulator: of: Make regulator_of_get_init_node static Fix sparse warning: drivers/regulator/of_regulator.c:374:20: warning: symbol 'regulator_of_get_init_node' was not declared. Should it be static? Signed-off-by: YueHaibing Signed-off-by: Mark Brown commit cc6a8d69ba624f0ad7a09ed095b7bd4b86476489 Author: Lucas Tanure Date: Tue Mar 19 09:41:33 2019 +0000 regmap: debugfs: Jump to the next readable register Improve the speed of the loop jumping to the next available register Signed-off-by: Lucas Tanure Reviewed-by: Charles Keepax Tested-by: Charles Keepax Signed-off-by: Mark Brown commit cd537873729cf939996a6984df080e6a0dfac0fb Author: Charles Keepax Date: Tue Mar 19 17:43:09 2019 +0000 ASoC: wm_adsp: Correct some minor issues The wm_adsp_ops structures should be static and correct two printf specifiers. Fixes: 170b1e123f38 ("ASoC: wm_adsp: Add support for new Halo core DSPs") Fixes: 4e08d50d1fb6 ("ASoC: wm_adsp: Factor out DSP specific operations") Reported-by: kbuild test robot Signed-off-by: Charles Keepax Signed-off-by: Mark Brown commit 8d3a3048c31332b24bcc8a6cf806827eb9d8c688 Merge: 9bd5423fc75e bb0e5837db3a Author: David S. Miller Date: Wed Mar 20 10:12:03 2019 -0700 Merge branch '1GbE' of git://git.kernel.org/pub/scm/linux/kernel/git/jkirsher/next-queue Jeff Kirsher says: ==================== 1GbE Intel Wired LAN Driver Updates 2019-03-19 This series contains updates to e100, e1000, e1000e, igb, igc and ixgbe. Serhey Popovych fixes the return value for several of our older drivers for netdev_update_features() to notify of changes applied. Kai-Heng Feng fixes the WoL setting for system suspend, which should not set to runtime suspend settings for igb. Then fixes a power management issue with e1000e for CNP+ devices. Colin Ian King fixes whitespace issue (indentation), which helps with readability. Sasha provides the remaining changes for igc, including the enabling of multi-queues to receive. Added support for displaying and configuring network flow classification (NFC) via ethtool. Added additional statistics and basic counters for igc. Fixed a typo, so it aligns with our other drivers. ==================== Signed-off-by: David S. Miller commit f29eec793d4d16a1019abac1ac0702d07adae78e Author: Sylwester Nawrocki Date: Tue Mar 19 13:11:02 2019 +0100 ASoC: samsung: i2s: Don't use register read to determine slave/master mode We can simplify the code by caching the CPU DAI master/slave information rather than reading previously set register bit. Signed-off-by: Sylwester Nawrocki Signed-off-by: Mark Brown commit bf31cbfbe25001036e1e096b1c260bf871766ea5 Author: Annaliese McDermond Date: Mon Mar 18 20:37:44 2019 -0700 ASoC: tlv320aic32x4: Break out clock setting into separate function Break the clock setting logic out from the main hw_params. It's rather large and unweildy and makes for a large function. This also better enables some of the following changes to the clock tree access in the driver. Signed-off-by: Annaliese McDermond Signed-off-by: Mark Brown commit 0f91d24f2c78e24303594395db58a0e983606a8c Author: Paul Cercueil Date: Tue Mar 19 15:00:14 2019 +0100 ASoC: jz4740: Depend on MIPS instead of MACH_JZ4740 Depending on MACH_JZ4740 prevent us from creating a generic kernel that works on more than one MIPS board. Instead, we just depend on MIPS being set. Signed-off-by: Paul Cercueil Signed-off-by: Mark Brown commit 0d7350316a2a773254cd261daa8d3f2c4dd38610 Author: Nicolas Le Bayon Date: Wed Mar 6 15:12:32 2019 +0000 i2c: i2c-stm32f7: improve loopback in timing algorithm This avoids useless loops inside the I2C timing algorithm. Actually, we support only one possible solution per prescaler value. So after finding a solution with a prescaler, the algorithm can switch directly to the next prescaler value. Signed-off-by: Nicolas Le Bayon Signed-off-by: Bich Hemon Reviewed-by: Pierre-Yves MORDRET Signed-off-by: Wolfram Sang commit c62ebb3d5f0d0e9dafe990c9ce680ca9b46fd4c1 Author: Phil Edworthy Date: Thu Feb 28 13:52:10 2019 +0000 i2c: designware: Add support for an interface clock The Synopsys I2C Controller has an interface clock, but most SoCs hide this away. However, on some SoCs you need to explicitly enable the interface clock in order to access the registers. Therefore, add support for an optional interface clock. Signed-off-by: Phil Edworthy Signed-off-by: Gareth Williams Acked-by: Wolfram Sang Acked-by: Jarkko Nikula Tested-by: Jarkko Nikula Signed-off-by: Wolfram Sang commit bdfdf4b2ba644347d63a61da941f30aea1bd35fc Author: Phil Edworthy Date: Thu Feb 28 13:52:09 2019 +0000 dt: snps,designware-i2c: Add clock bindings documentation The driver requires an undocumented clock property, so detail it. Add documentation for a separate, optional, interface clock. Signed-off-by: Phil Edworthy Signed-off-by: Gareth Williams Acked-by: Wolfram Sang Reviewed-by: Rob Herring Reviewed-by: Jarkko Nikula Signed-off-by: Wolfram Sang commit 8cac9fd9bc7967cd114c543bdf70a5d0aa759498 Author: Ville Syrjälä Date: Tue Mar 12 22:58:44 2019 +0200 drm/i915: Inline skl_update_pipe_wm() into its only caller skl_update_pipe_wm() is quite pointless now. Just inline it into skl_compute_wm(). v2: s/skl_build_pipe_wm/skl_update_pipe_wm/ in the commit message (Matt) Cc: Neel Desai Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190312205844.6339-10-ville.syrjala@linux.intel.com Reviewed-by: Matt Roper commit 96cb7cde1a3009663918b69ab5f8000c67f0a7b8 Author: Ville Syrjälä Date: Tue Mar 12 22:58:43 2019 +0200 drm/i915: Don't pass pipe_wm around so much {skl,icl}_build_plane_wm() don't need to be passed the pipe_wm, so don't. And skl_build_pipe_wm() can easily dig it out itself. Cc: Neel Desai Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190312205844.6339-9-ville.syrjala@linux.intel.com Reviewed-by: Matt Roper commit 5e6037c88ad5f052e317a56cff54df40b7e82e5f Author: Ville Syrjälä Date: Tue Mar 12 22:58:42 2019 +0200 drm/i915: Move some variables to tighter scope Clean up skl_allocate_pipe_ddb() a bit by moving the 'wm' variable to tighter scope. We'll also consitify it where appropriate. Also initialize plane_alloc/uv_plane_alloc when decrlaring them rather than later. v2: Update commit message (Matt) Cc: Neel Desai Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190312205844.6339-8-ville.syrjala@linux.intel.com Reviewed-by: Matt Roper commit a301cb0fca2d4c5a615d5dac1a3d80baa99518ac Author: Ville Syrjälä Date: Tue Mar 12 22:58:41 2019 +0200 drm/i915: Keep plane watermarks enabled more aggressively Currently we disable all the watermarks above the selected max level for every plane. That would mean that the cursor's watermarks may also get modified when another plane causes the selected max watermark level to change. That is not so great as we would like to keep the cursor as indepenedent as possible to avoid having to throttle it in resposne to other plane activity. To avoid that let's keep the watermarks enabled even for levels above the max selected watermark level, iff the plane has enough ddb for that particular level. This way the cursor's enabled watermarks only depend on the cursor itself. This is safe because the hardware will never choose to use a watermark level unless all enabled planes have also enabled that level. Cc: Neel Desai Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190312205844.6339-7-ville.syrjala@linux.intel.com Reviewed-by: Matt Roper commit 10a7e07b68b9ecf9251f78043fb7b342bf9b04e8 Author: Ville Syrjälä Date: Tue Mar 12 22:58:40 2019 +0200 drm/i915: Make sure cursor has enough ddb for the selected wm level We use a fixed ddb allocation for the cursor. Now the calculation actually makes sure we have enough ddb space, but let's double check anyway. Cc: Neel Desai Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190312205844.6339-6-ville.syrjala@linux.intel.com Reviewed-by: Matt Roper commit df331de3f8aac1a8080510d883fa40555809cddf Author: Ville Syrjälä Date: Tue Mar 19 18:03:11 2019 +0200 drm/i915: Allocate enough DDB for the cursor Currently we just assume that 32 or 8 blocks of ddb is sufficient for the cursor. The 32 might be, but the 8 is certainly not. The minimum we need is at least what level 0 watermarks need, but that is a bit restrictive, so instead let's calculate what level 7 would need for a 256x256 cursor. We'll use that to determine the fixed ddb allocation for the cursor. This way the cursor will never be responsible for missing out on deeper power saving states. v2: Loop to make sure this works even if some wm levels are totally disabled (latency==0) Cc: Neel Desai Signed-off-by: Ville Syrjälä Reviewed-by: Matt Roper #v1 Link: https://patchwork.freedesktop.org/patch/msgid/20190319160311.23529-1-ville.syrjala@linux.intel.com commit c92558aa41722f95160d96b8e1ac8dd36731a836 Author: Ville Syrjälä Date: Tue Mar 12 22:58:38 2019 +0200 drm/i915: Extract skl_compute_wm_params() Extract the meat of skl_compute_plane_wm_params() into a lower level helper that doesn't depend on the plane state. We'll reuse this for the cursor ddb allocation calculations. Cc: Neel Desai Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190312205844.6339-4-ville.syrjala@linux.intel.com Reviewed-by: Matt Roper commit 67155a6996841b5167c441bff2724ca86fdd0a2b Author: Ville Syrjälä Date: Tue Mar 12 22:58:37 2019 +0200 drm/i915: Don't pass plane state to skl_compute_plane_wm() skl_compute_plane_wm() doesn't actually need the plane state. While it would make logically sense to pass it, we shall need to reuse skl_compute_plane_wm() to compute the minimum ddb allocation for the cursor before the cursor may be enabled. Thus we can't rely on the plane state. The alternative would be to duplicate a lot of the wm calculations for the cursor ddb allocation case, which doens't appeal to me. Cc: Neel Desai Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190312205844.6339-3-ville.syrjala@linux.intel.com Reviewed-by: Matt Roper commit 3cf963cfe3a9fc83bc235b1892858164b1b83306 Author: Ville Syrjälä Date: Tue Mar 12 22:58:36 2019 +0200 drm/i915: Accept alloc_size == blocks If the minimum required ddb space for all the planes equals the total ddb space available we are allowed to use the relevant watermark level. Cc: Neel Desai Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190312205844.6339-2-ville.syrjala@linux.intel.com Reviewed-by: Matt Roper commit 4677faf65fd142d97d492133b8483d020f2ddecc Author: Ville Syrjälä Date: Mon Mar 18 18:56:32 2019 +0200 drm/i915: Use HPLLVCO_MOBILE for all PNVs To allow unsetting .is_mobile for the desktop variant of PNV fix up the cdclk code to select the mobile HPLLVCO register for both PNV variants. Cc: Tvrtko Ursulin Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190318165633.28924-5-ville.syrjala@linux.intel.com Reviewed-by: Tvrtko Ursulin commit f3e304852242f5a5da6ab47798f4aca044786885 Author: Ville Syrjälä Date: Mon Mar 18 18:56:31 2019 +0200 drm/i915: Introduce i915_has_asle() We want to allow the desktop PNV to not have .is_mobile set. To that end let's add a small helper to determine if the platform has the ASLE interrupt (or equivalent). Supposdely both PNV variants have it. Cc: Tvrtko Ursulin Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190318165633.28924-4-ville.syrjala@linux.intel.com Reviewed-by: Tvrtko Ursulin commit 9e7d569924d9b9b17734789496ac78d4f7eaab7c Author: Ville Syrjälä Date: Mon Mar 18 18:56:30 2019 +0200 drm/i915: Introduce i9xx_has_pps() Add a small helper to determine if we have the panel power sequencer or not. We'll make PNV an exceptional case so that we can unset .is_mobile for the desktop variant. Cc: Tvrtko Ursulin Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190318165633.28924-3-ville.syrjala@linux.intel.com Reviewed-by: Tvrtko Ursulin commit b7c8093fac15b253cab8c1060d0d5543a8739ed0 Author: Ville Syrjälä Date: Tue Mar 19 16:23:29 2019 +0200 drm/i915: Introduce i9xx_has_pfit() Make the code self-documenting by introducing i9xx_has_pfit(). Also make PNV an exceptional case so that we can unset .is_mobile for the desktop variant. v2: s/gen4/gen>=4/ (Tvrtko) Cc: Tvrtko Ursulin Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190319142329.22881-1-ville.syrjala@linux.intel.com Reviewed-by: Tvrtko Ursulin commit 5c227869839b15a066c4808d3a88d36b79b35cd8 Author: Ville Syrjälä Date: Mon Mar 18 18:56:28 2019 +0200 drm/i915: Reorder gen3/4 swizzle detection logic g33/i964g/g45 are the exceptional cases when it comes to the swizzle detection. Let's reorder the code to handle them first and let everything else be handled by the else branch. This allows us to unset .is_mobile for the desktop PNV variant (which supposedly must follow the "mobile" path here). Cc: Tvrtko Ursulin Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190318165633.28924-1-ville.syrjala@linux.intel.com Reviewed-by: Tvrtko Ursulin commit 768b525edb4a7ddd6f3f05dada9582b8281c734a Author: Adam Ford Date: Thu Mar 7 19:01:48 2019 -0600 ARM: dts: imx6qdl: Enable fsl,sec-v4.0-pwrkey The imx6q Technical reference manual shows the interrupt is available to wake from sleep using the power button. The driver has been available for quite some time, and other variants of the i.MX6 have it enabled, so this implements it much like the others. Signed-off-by: Adam Ford Reviewed-by: Fabio Estevam Signed-off-by: Shawn Guo commit 5252414f7c15c2857d34c093d19ddb3171ac73d0 Author: Lucas Stach Date: Wed Mar 6 14:12:48 2019 +0100 ARM: dts: imx6: RDU2: manage backlight from panel Now that the backlight driver is upstream, we can properly manage the backlight from the panel. Signed-off-by: Lucas Stach Signed-off-by: Shawn Guo commit 574e852f99c36ea867f621b748771d4d8b3c3f98 Author: Lucas Stach Date: Wed Mar 6 14:12:47 2019 +0100 ARM: dts: imx6: RDU2: add switch watchdog device This adds the i2c device node for the ethernet switch watchdog. Signed-off-by: Lucas Stach Signed-off-by: Shawn Guo commit 8f3e2d2c93494333a1e889a68eaed241329be4f8 Author: Kohji Okuno Date: Wed Mar 6 13:30:42 2019 +0900 ARM: imx6: cpuidle: omit the unnecessary unmask of GINT In imx6_set_lpm, we only need to unmask GINT when not WAIT_CLOCKED, so add a check condition. Signed-off-by: Peng Fan Signed-off-by: Kohji Okuno Signed-off-by: Shawn Guo commit a691a1ebb59e7f2a159df8d3c693e2235c5de9dd Author: Dalit Ben Zoor Date: Wed Mar 20 16:13:23 2019 +0200 habanalabs: set new golden value to tpc clock relaxation On init or context switch, set TPC clock relaxation counter register to a golden value. Signed-off-by: Dalit Ben Zoor Signed-off-by: Oded Gabbay commit 2821fd0c2be0c4e513b1622d86df9170ef62a6d4 Author: Andy Shevchenko Date: Mon Mar 4 12:00:09 2019 +0200 lib/test_printf: Switch to bitmap_zalloc() Switch to bitmap_zalloc() to show clearly what we are allocating. Besides that it returns pointer of bitmap type instead of opaque void *. Link: http://lkml.kernel.org/r/20190304100009.65147-1-andriy.shevchenko@linux.intel.com To: linux-kernel@vger.kernel.org To: Andrew Morton To: linux@rasmusvillemoes.dk Signed-off-by: Andy Shevchenko Signed-off-by: Petr Mladek commit ee4c12f4390743013029cfe4f895d1becc35880b Author: Manivannan Sadhasivam Date: Sat Mar 9 08:02:09 2019 +0530 arm64: dts: freescale: Enable PCI-E controller for Oxalis board Enable PCI-E controller for Oxalis board based on NXP/Freescale LS1012a SoC available as the Mini PCI-E connector on the bottom side. Signed-off-by: Manivannan Sadhasivam Signed-off-by: Shawn Guo commit b9eb314ae888a7162bed8cfdd01fe415e0def139 Author: Alison Wang Date: Wed Mar 6 16:20:05 2019 +0800 arm64: dts: ls1028a: Add pmu dt nodes This patch adds pmu dt nodes for LS1028A. Signed-off-by: Alison Wang Signed-off-by: Shawn Guo commit 9ff06679e109a216fc4a0cf5b4069a5305df141c Author: Uwe Kleine-König Date: Tue Mar 12 10:25:47 2019 +0100 pwm: sysfs: fix typo "its" -> "it's" Signed-off-by: Uwe Kleine-König Signed-off-by: Thierry Reding commit efc80fb3746609aa6beed8bc33751f29ee18fed7 Author: Vignesh Raghavendra Date: Tue Mar 12 14:46:29 2019 +0530 pwm: tiehrpwm: Enable compilation for ARCH_K3 K3 devices have the same EHRPWM IP as OMAP SoCs. Enable the driver to be built for K3 devices. Also, drop reference to AM33xx in help text, as IP is found on multiple TI SoCs. Signed-off-by: Vignesh Raghavendra Signed-off-by: Thierry Reding commit fd79d93985e08f29535c07337772a7da3159bda5 Author: Daniele Ceraolo Spurio Date: Wed Mar 20 08:00:52 2019 +0000 drm/i915/selftests: add test to verify get/put fw domains Exercise acquiring and releasing forcewake around register reads. In order to read a register behind a GT powerwell, we need to instruct that powerwell to wake up using a forcewake. When we no longer require the GT powerwell, we tell the GT to release our forcewake. Inside the forcewake, the register read should work but outside it should just return garbage, 0 being the most common garbage. Thus we can detect when we are inside and outside of the forcewake with just a simple register read, and so can verify that the GT powerwell is released when we say so. v2: Picking the right forcewaked register to return 0 outside of forcewake is an art. Signed-off-by: Daniele Ceraolo Spurio Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190320080052.27273-1-chris@chris-wilson.co.uk commit b54d1ed07ad896e89b356421785ef34486f62834 Author: Vignesh Raghavendra Date: Tue Mar 12 14:46:28 2019 +0530 dt-bindings: pwm: tiehrpwm: Add TI AM654 SoC specific compatible Add a new compatible string "ti,am654-ehrpwm" to support EHRPWM IP on TI AM654 SoC. Signed-off-by: Vignesh Raghavendra Signed-off-by: Thierry Reding commit b00ef53053191d3025c15e8041699f8c9d132daf Author: Christoph Vogtländer Date: Tue Mar 12 14:38:46 2019 +0530 pwm: tiehrpwm: Update shadow register for disabling PWMs It must be made sure that immediate mode is not already set, when modifying shadow register value in ehrpwm_pwm_disable(). Otherwise modifications to the action-qualifier continuous S/W force register(AQSFRC) will be done in the active register. This may happen when both channels are being disabled. In this case, only the first channel state will be recorded as disabled in the shadow register. Later, when enabling the first channel again, the second channel would be enabled as well. Setting RLDCSF to zero, first, ensures that the shadow register is updated as desired. Fixes: 38dabd91ff0b ("pwm: tiehrpwm: Fix disabling of output of PWMs") Signed-off-by: Christoph Vogtländer [vigneshr@ti.com: Improve commit message] Signed-off-by: Vignesh Raghavendra Signed-off-by: Thierry Reding commit 44481955eab7029b58c956d64485fece6f12a53f Author: Nathan Chancellor Date: Thu Mar 7 15:36:28 2019 -0700 pwm: img: Turn final 'else if' into 'else' in img_pwm_config When building with -Wsometimes-uninitialized, Clang warns: drivers/pwm/pwm-img.c:126:13: error: variable 'timebase' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized] The final else if functions as an else; make that explicit so that Clang understands that timebase cannot be used uninitialized. Link: https://github.com/ClangBuiltLinux/linux/issues/400 Signed-off-by: Nathan Chancellor Reviewed-by: Nick Desaulniers Signed-off-by: Thierry Reding commit 347ab9480313737c0f1aaa08e8f2e1a791235535 Author: Phong Hoang Date: Tue Mar 19 19:40:08 2019 +0900 pwm: Fix deadlock warning when removing PWM device This patch fixes deadlock warning if removing PWM device when CONFIG_PROVE_LOCKING is enabled. This issue can be reproceduced by the following steps on the R-Car H3 Salvator-X board if the backlight is disabled: # cd /sys/class/pwm/pwmchip0 # echo 0 > export # ls device export npwm power pwm0 subsystem uevent unexport # cd device/driver # ls bind e6e31000.pwm uevent unbind # echo e6e31000.pwm > unbind [ 87.659974] ====================================================== [ 87.666149] WARNING: possible circular locking dependency detected [ 87.672327] 5.0.0 #7 Not tainted [ 87.675549] ------------------------------------------------------ [ 87.681723] bash/2986 is trying to acquire lock: [ 87.686337] 000000005ea0e178 (kn->count#58){++++}, at: kernfs_remove_by_name_ns+0x50/0xa0 [ 87.694528] [ 87.694528] but task is already holding lock: [ 87.700353] 000000006313b17c (pwm_lock){+.+.}, at: pwmchip_remove+0x28/0x13c [ 87.707405] [ 87.707405] which lock already depends on the new lock. [ 87.707405] [ 87.715574] [ 87.715574] the existing dependency chain (in reverse order) is: [ 87.723048] [ 87.723048] -> #1 (pwm_lock){+.+.}: [ 87.728017] __mutex_lock+0x70/0x7e4 [ 87.732108] mutex_lock_nested+0x1c/0x24 [ 87.736547] pwm_request_from_chip.part.6+0x34/0x74 [ 87.741940] pwm_request_from_chip+0x20/0x40 [ 87.746725] export_store+0x6c/0x1f4 [ 87.750820] dev_attr_store+0x18/0x28 [ 87.754998] sysfs_kf_write+0x54/0x64 [ 87.759175] kernfs_fop_write+0xe4/0x1e8 [ 87.763615] __vfs_write+0x40/0x184 [ 87.767619] vfs_write+0xa8/0x19c [ 87.771448] ksys_write+0x58/0xbc [ 87.775278] __arm64_sys_write+0x18/0x20 [ 87.779721] el0_svc_common+0xd0/0x124 [ 87.783986] el0_svc_compat_handler+0x1c/0x24 [ 87.788858] el0_svc_compat+0x8/0x18 [ 87.792947] [ 87.792947] -> #0 (kn->count#58){++++}: [ 87.798260] lock_acquire+0xc4/0x22c [ 87.802353] __kernfs_remove+0x258/0x2c4 [ 87.806790] kernfs_remove_by_name_ns+0x50/0xa0 [ 87.811836] remove_files.isra.1+0x38/0x78 [ 87.816447] sysfs_remove_group+0x48/0x98 [ 87.820971] sysfs_remove_groups+0x34/0x4c [ 87.825583] device_remove_attrs+0x6c/0x7c [ 87.830197] device_del+0x11c/0x33c [ 87.834201] device_unregister+0x14/0x2c [ 87.838638] pwmchip_sysfs_unexport+0x40/0x4c [ 87.843509] pwmchip_remove+0xf4/0x13c [ 87.847773] rcar_pwm_remove+0x28/0x34 [ 87.852039] platform_drv_remove+0x24/0x64 [ 87.856651] device_release_driver_internal+0x18c/0x21c [ 87.862391] device_release_driver+0x14/0x1c [ 87.867175] unbind_store+0xe0/0x124 [ 87.871265] drv_attr_store+0x20/0x30 [ 87.875442] sysfs_kf_write+0x54/0x64 [ 87.879618] kernfs_fop_write+0xe4/0x1e8 [ 87.884055] __vfs_write+0x40/0x184 [ 87.888057] vfs_write+0xa8/0x19c [ 87.891887] ksys_write+0x58/0xbc [ 87.895716] __arm64_sys_write+0x18/0x20 [ 87.900154] el0_svc_common+0xd0/0x124 [ 87.904417] el0_svc_compat_handler+0x1c/0x24 [ 87.909289] el0_svc_compat+0x8/0x18 [ 87.913378] [ 87.913378] other info that might help us debug this: [ 87.913378] [ 87.921374] Possible unsafe locking scenario: [ 87.921374] [ 87.927286] CPU0 CPU1 [ 87.931808] ---- ---- [ 87.936331] lock(pwm_lock); [ 87.939293] lock(kn->count#58); [ 87.945120] lock(pwm_lock); [ 87.950599] lock(kn->count#58); [ 87.953908] [ 87.953908] *** DEADLOCK *** [ 87.953908] [ 87.959821] 4 locks held by bash/2986: [ 87.963563] #0: 00000000ace7bc30 (sb_writers#6){.+.+}, at: vfs_write+0x188/0x19c [ 87.971044] #1: 00000000287991b2 (&of->mutex){+.+.}, at: kernfs_fop_write+0xb4/0x1e8 [ 87.978872] #2: 00000000f739d016 (&dev->mutex){....}, at: device_release_driver_internal+0x40/0x21c [ 87.988001] #3: 000000006313b17c (pwm_lock){+.+.}, at: pwmchip_remove+0x28/0x13c [ 87.995481] [ 87.995481] stack backtrace: [ 87.999836] CPU: 0 PID: 2986 Comm: bash Not tainted 5.0.0 #7 [ 88.005489] Hardware name: Renesas Salvator-X board based on r8a7795 ES1.x (DT) [ 88.012791] Call trace: [ 88.015235] dump_backtrace+0x0/0x190 [ 88.018891] show_stack+0x14/0x1c [ 88.022204] dump_stack+0xb0/0xec [ 88.025514] print_circular_bug.isra.32+0x1d0/0x2e0 [ 88.030385] __lock_acquire+0x1318/0x1864 [ 88.034388] lock_acquire+0xc4/0x22c [ 88.037958] __kernfs_remove+0x258/0x2c4 [ 88.041874] kernfs_remove_by_name_ns+0x50/0xa0 [ 88.046398] remove_files.isra.1+0x38/0x78 [ 88.050487] sysfs_remove_group+0x48/0x98 [ 88.054490] sysfs_remove_groups+0x34/0x4c [ 88.058580] device_remove_attrs+0x6c/0x7c [ 88.062671] device_del+0x11c/0x33c [ 88.066154] device_unregister+0x14/0x2c [ 88.070070] pwmchip_sysfs_unexport+0x40/0x4c [ 88.074421] pwmchip_remove+0xf4/0x13c [ 88.078163] rcar_pwm_remove+0x28/0x34 [ 88.081906] platform_drv_remove+0x24/0x64 [ 88.085996] device_release_driver_internal+0x18c/0x21c [ 88.091215] device_release_driver+0x14/0x1c [ 88.095478] unbind_store+0xe0/0x124 [ 88.099048] drv_attr_store+0x20/0x30 [ 88.102704] sysfs_kf_write+0x54/0x64 [ 88.106359] kernfs_fop_write+0xe4/0x1e8 [ 88.110275] __vfs_write+0x40/0x184 [ 88.113757] vfs_write+0xa8/0x19c [ 88.117065] ksys_write+0x58/0xbc [ 88.120374] __arm64_sys_write+0x18/0x20 [ 88.124291] el0_svc_common+0xd0/0x124 [ 88.128034] el0_svc_compat_handler+0x1c/0x24 [ 88.132384] el0_svc_compat+0x8/0x18 The sysfs unexport in pwmchip_remove() is completely asymmetric to what we do in pwmchip_add_with_polarity() and commit 0733424c9ba9 ("pwm: Unexport children before chip removal") is a strong indication that this was wrong to begin with. We should just move pwmchip_sysfs_unexport() where it belongs, which is right after pwmchip_sysfs_unexport_children(). In that case, we do not need separate functions anymore either. We also really want to remove sysfs irrespective of whether or not the chip will be removed as a result of pwmchip_remove(). We can only assume that the driver will be gone after that, so we shouldn't leave any dangling sysfs files around. This warning disappears if we move pwmchip_sysfs_unexport() to the top of pwmchip_remove(), pwmchip_sysfs_unexport_children(). That way it is also outside of the pwm_lock section, which indeed doesn't seem to be needed. Moving the pwmchip_sysfs_export() call outside of that section also seems fine and it'd be perfectly symmetric with pwmchip_remove() again. So, this patch fixes them. Signed-off-by: Phong Hoang [shimoda: revise the commit log and code] Fixes: 76abbdde2d95 ("pwm: Add sysfs interface") Fixes: 0733424c9ba9 ("pwm: Unexport children before chip removal") Signed-off-by: Yoshihiro Shimoda Tested-by: Hoan Nguyen An Reviewed-by: Geert Uytterhoeven Reviewed-by: Simon Horman Reviewed-by: Uwe Kleine-König Signed-off-by: Thierry Reding commit a89bfc5d9a0732d84b4de311e27133daa0586316 Author: Noralf Trønnes Date: Fri Feb 22 13:43:29 2019 +0100 tinydrm/mipi-dbi: Use dma-safe buffers for all SPI transfers Buffers passed to spi_sync() must be dma-safe even for tiny buffers since some SPI controllers use DMA for all transfers. Example splat with CONFIG_DMA_API_DEBUG enabled: [ 23.750467] DMA-API: dw_dmac_pci 0000:00:15.0: device driver maps memory from stack [probable addr=000000001e49185d] [ 23.750529] WARNING: CPU: 1 PID: 1296 at kernel/dma/debug.c:1161 check_for_stack+0xb7/0x190 [ 23.750533] Modules linked in: mmc_block(+) spi_pxa2xx_platform(+) pwm_lpss_pci pwm_lpss spi_pxa2xx_pci sdhci_pci cqhci intel_mrfld_pwrbtn extcon_intel_mrfld sdhci intel_mrfld_adc led_class mmc_core ili9341 mipi_dbi tinydrm backlight ti_ads7950 industrialio_triggered_buffer kfifo_buf intel_soc_pmic_mrfld hci_uart btbcm [ 23.750599] CPU: 1 PID: 1296 Comm: modprobe Not tainted 5.0.0-rc7+ #236 [ 23.750605] Hardware name: Intel Corporation Merrifield/BODEGA BAY, BIOS 542 2015.01.21:18.19.48 [ 23.750620] RIP: 0010:check_for_stack+0xb7/0x190 [ 23.750630] Code: 8b 6d 50 4d 85 ed 75 04 4c 8b 6d 10 48 89 ef e8 2f 8b 44 00 48 89 c6 4a 8d 0c 23 4c 89 ea 48 c7 c7 88 d0 82 b4 e8 40 7c f9 ff <0f> 0b 8b 05 79 00 4b 01 85 c0 74 07 5b 5d 41 5c 41 5d c3 8b 05 54 [ 23.750637] RSP: 0000:ffff97bbc0292fa0 EFLAGS: 00010286 [ 23.750646] RAX: 0000000000000000 RBX: ffff97bbc0290000 RCX: 0000000000000006 [ 23.750652] RDX: 0000000000000007 RSI: 0000000000000002 RDI: ffff94b33e115450 [ 23.750658] RBP: ffff94b33c8578b0 R08: 0000000000000002 R09: 00000000000201c0 [ 23.750664] R10: 00000006ecb0ccc6 R11: 0000000000034f38 R12: 000000000000316c [ 23.750670] R13: ffff94b33c84b250 R14: ffff94b33dedd5a0 R15: 0000000000000001 [ 23.750679] FS: 0000000000000000(0000) GS:ffff94b33e100000(0063) knlGS:00000000f7faf690 [ 23.750686] CS: 0010 DS: 002b ES: 002b CR0: 0000000080050033 [ 23.750691] CR2: 00000000f7f54faf CR3: 000000000722c000 CR4: 00000000001006e0 [ 23.750696] Call Trace: [ 23.750713] debug_dma_map_sg+0x100/0x340 [ 23.750727] ? dma_direct_map_sg+0x3b/0xb0 [ 23.750739] spi_map_buf+0x25a/0x300 [ 23.750751] __spi_pump_messages+0x2a4/0x680 [ 23.750762] __spi_sync+0x1dd/0x1f0 [ 23.750773] spi_sync+0x26/0x40 [ 23.750790] mipi_dbi_typec3_command_read+0x14d/0x240 [mipi_dbi] [ 23.750802] ? spi_finalize_current_transfer+0x10/0x10 [ 23.750821] mipi_dbi_typec3_command+0x1bc/0x1d0 [mipi_dbi] Reported-by: Andy Shevchenko Signed-off-by: Noralf Trønnes Tested-by: Andy Shevchenko Acked-by: Andy Shevchenko Link: https://patchwork.freedesktop.org/patch/msgid/20190222124329.23046-1-noralf@tronnes.org commit b60a5b8dcf49af9f2c60ae82e0383ee8e62a9a52 Author: Mauro Carvalho Chehab Date: Wed Mar 20 06:39:44 2019 -0400 media: Kconfig files: use the right help coding style Checkpatch wants to use 'help' instead of '---help---': WARNING: prefer 'help' over '---help---' for new help texts Let's change it globally at the media subsystem, as otherwise people would keep using the old way. Signed-off-by: Mauro Carvalho Chehab commit 8a3946cad244e8453e26f3ded5fe40bf2627bb30 Author: Sakari Ailus Date: Tue Mar 19 04:07:32 2019 -0400 media: v4l2-fwnode: Add a deprecation note in the old ACPI parsing example This is not how ACPI tables are written. Add a deprecation note and refer to the proper documentation. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit a5c7caa15a9da7ed6c9d658fffb0b37baf72ac23 Author: Sakari Ailus Date: Mon Mar 18 11:44:32 2019 -0400 media: ipu3-cio2: Set CSI-2 receiver sub-device entity function Set the entity function for the four CSI-2 receiver sub-devices the driver creates. This avoids a kernel warning from each as well. Signed-off-by: Sakari Ailus Reviewed-by: Bingbu Cao Signed-off-by: Mauro Carvalho Chehab commit e4dfdd5804cce1255f99c5dd033526a18135a616 Author: Kangjie Lu Date: Thu Mar 14 01:55:31 2019 -0500 thunderbolt: Fix a missing check of kmemdup kmemdup may fail and return NULL. The fix adds a check and returns NULL in case it fails to avoid NULL pointer dereferecen. Signed-off-by: Kangjie Lu Signed-off-by: Mika Westerberg commit 106204b56f60abf1bead7dceb88f2be3e34433da Author: Kangjie Lu Date: Tue Mar 12 03:33:28 2019 -0500 thunderbolt: property: Fix a NULL pointer dereference In case kzalloc fails, the fix releases resources and returns -ENOMEM to avoid the NULL pointer dereference. Signed-off-by: Kangjie Lu Signed-off-by: Mika Westerberg commit 0d0d87fbf4c583c3c5ed86318c7338cc3f655d85 Author: Sakari Ailus Date: Mon Mar 18 11:21:13 2019 -0400 media: v4l: i2c: Regroup lens drivers under their own section The lens drivers had ended up under the video decoder section; add a new one just for them, between the camera sensors and flash drivers. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit f1ef70ffbfe7acf4141f6365c6504d374aada34a Author: Sakari Ailus Date: Sat Dec 2 15:36:01 2017 -0500 media: ti-vpe: Parse local endpoint for properties, not the remote one ti-vpe driver parsed the remote endpoints for properties but ignored the local ones. Fix this by parsing the local endpoint properties instead. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit c1ee825686a4bab4fc3ef6b6edac535a32e0bc29 Author: Sakari Ailus Date: Sat Dec 2 15:29:46 2017 -0500 media: pxa-camera: Match with device node, not the port node V4L2 fwnode matching right now still works based on device nodes, not port nodes. Fix this. Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit fff35d45e16fae125c6000cb87e254cb634ac7fb Author: Sakari Ailus Date: Sat Mar 2 10:23:12 2019 -0500 media: v4l2-fwnode: The first default data lane is 0 on C-PHY C-PHY has no clock lanes. Therefore the first data lane is 0 by default. Fixes: edc6d56c2e7e ("media: v4l: fwnode: Support parsing of CSI-2 C-PHY endpoints") Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit 9d3863736a267068a0ae67c6695af8770ef330b7 Author: Sakari Ailus Date: Fri Mar 1 08:48:38 2019 -0500 media: v4l2-fwnode: Defaults may not override endpoint configuration in firmware The lack of defaults provided by the caller to v4l2_fwnode_endpoint_parse() signals the use of the default lane mapping. The default lane mapping must not be used however if the firmmare contains the lane mapping. Disable the default lane mapping in that case, and improve the debug messages telling of the use of the defaults. This was missed previously since the default mapping will only unsed in this case if the bus type is set, and no driver did both while still needing the lane mapping configuration. Fixes: b4357d21d674 ("media: v4l: fwnode: Support default CSI-2 lane mapping for drivers") Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit 12f6153d4555450bdb93d115bdbf28bbd92ea426 Author: Akinobu Mita Date: Mon Mar 11 11:36:03 2019 -0400 media: ov7670: don't access registers when the device is powered off Since commit 3d6a8fe25605 ("media: ov7670: hook s_power onto v4l2 core"), the device is actually powered off while the video stream is stopped. So now set_format and s_frame_interval could be called while the device is powered off, but these callbacks try to change the register settings at this time. The frame format and framerate will be restored right after power-up, so we can just postpone applying these changes at these callbacks if the device is not powered up. Fixes: 3d6a8fe25605 ("media: ov7670: hook s_power onto v4l2 core") Cc: Jonathan Corbet Signed-off-by: Akinobu Mita Reviewed-by: Lubomir Rintel Tested-by: Lubomir Rintel Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit 32ab688b280301f7cee9e547564cb74e33e06322 Author: Akinobu Mita Date: Mon Mar 11 11:36:02 2019 -0400 media: ov7670: restore default settings after power-up Since commit 3d6a8fe25605 ("media: ov7670: hook s_power onto v4l2 core"), the device is actually powered off while the video stream is stopped. The frame format and framerate are restored right after power-up, but restoring the default register settings is forgotten. Fixes: 3d6a8fe25605 ("media: ov7670: hook s_power onto v4l2 core") Cc: Jonathan Corbet Signed-off-by: Akinobu Mita Reviewed-by: Lubomir Rintel Tested-by: Lubomir Rintel Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit c3c2eca87dcded3626bc8f3a1b8bfa4b9f078fb1 Author: Arnd Bergmann Date: Tue Mar 5 08:26:29 2019 -0500 media: staging/intel-ipu3: reduce kernel stack usage The imgu_css_queue structure is too large to be put on the kernel stack, as we can see in 32-bit builds: drivers/staging/media/ipu3/ipu3-css.c: In function 'imgu_css_fmt_try': drivers/staging/media/ipu3/ipu3-css.c:1863:1: error: the frame size of 1172 bytes is larger than 1024 bytes [-Werror=frame-larger-than=] By dynamically allocating this array, the stack usage goes down to an acceptable 140 bytes for the same x86-32 configuration. Fixes: f5f2e4273518 ("media: staging/intel-ipu3: Add css pipeline programming") Signed-off-by: Arnd Bergmann Reviewed-by: Cao, Bingbu Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit 948dff7cfa1d7653e7828e7b905863bd24ca5c02 Author: Arnd Bergmann Date: Mon Mar 4 15:29:10 2019 -0500 media: staging/intel-ipu3: mark PM function as __maybe_unused The imgu_rpm_dummy_cb() looks like an API misuse that is explained in the comment above it. Aside from that, it also causes a warning when power management support is disabled: drivers/staging/media/ipu3/ipu3.c:794:12: error: 'imgu_rpm_dummy_cb' defined but not used [-Werror=unused-function] The warning is at least easy to fix by marking the function as __maybe_unused. Fixes: 7fc7af649ca7 ("media: staging/intel-ipu3: Add imgu top level pci device driver") Signed-off-by: Arnd Bergmann Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit 6d5f26f2e045f2377b524516194657c00efbbce8 Author: Arnd Bergmann Date: Mon Mar 4 15:28:42 2019 -0500 media: staging/intel-ipu3-v4l: reduce kernel stack usage The v4l2_pix_format_mplane structure is too large to be put on the kernel stack, as we can see in 32-bit builds: drivers/staging/media/ipu3/ipu3-v4l2.c: In function 'imgu_fmt': drivers/staging/media/ipu3/ipu3-v4l2.c:753:1: error: the frame size of 1028 bytes is larger than 1024 bytes [-Werror=frame-larger-than=] By dynamically allocating this array, the stack usage goes down to an acceptable 272 bytes for the same x86-32 configuration. Fixes: a0ca1627b450 ("media: staging/intel-ipu3: Add v4l2 driver based on media framework") Signed-off-by: Arnd Bergmann Signed-off-by: Sakari Ailus Signed-off-by: Mauro Carvalho Chehab commit 22815f1825e4c50314e7084ca375f7368704fdd4 Author: Thierry Reding Date: Thu Feb 21 16:25:55 2019 +0100 reset: Add acquire/release support for arrays Add implementations that apply acquire and release operations to all reset controls part of a reset control array. Signed-off-by: Thierry Reding Reviewed-by: Philipp Zabel Signed-off-by: Philipp Zabel commit f31d5c24fb2ea6fcfa4d300886eb87b662fbc0da Author: Thierry Reding Date: Thu Feb 21 16:25:54 2019 +0100 reset: Add acquired flag to of_reset_control_array_get() In order to be able to request an array of reset controls in acquired or released mode, add the acquired flag to of_reset_control_array_get() and pass the flag to subsequent calls of __of_reset_control_get(). Signed-off-by: Thierry Reding Acked-by: Felipe Balbi Signed-off-by: Philipp Zabel commit c84b0326d5e4fe08d493f6fff245da2ad473f4ae Author: Philipp Zabel Date: Thu Feb 21 16:25:53 2019 +0100 reset: add acquired/released state for exclusive reset controls There are cases where a driver needs explicit control over a reset line that is exclusively conneted to its device, but this control has to be temporarily handed over to the power domain controller to handle reset requirements during power transitions. Allow multiple exclusive reset controls to be requested in 'released' state for the same physical reset line, only one of which can be acquired at the same time. Signed-off-by: Philipp Zabel Signed-off-by: Thierry Reding commit 76eb24fc233b8c94b2156ead5811e08d2046ad58 Author: Hans Verkuil Date: Wed Mar 13 10:47:13 2019 -0400 media: vicodec: reset last_src/dst_buf based on the IS_OUTPUT When start_streaming was called both last_src_buf and last_dst_buf pointers were set to NULL, but this depends on whether the capture or output queue starts streaming. When decoding with resolution changes in between the capture queue has to restart streaming whenever a resolution change occurs. And that would reset last_src_buf as well, which causes a problem if the decoder was stopped by the application. Since last_src_buf is now NULL, the LAST flag is never set for the last capture buffer. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit f221b84ee13c5a6af837f497a2a89732472ad27c Author: Hans Verkuil Date: Wed Mar 13 10:46:42 2019 -0400 media: vicodec: remove WARN_ON(1) from get_q_data() Some functions like enum_fmt use the buffer type as was passed from userspace, which might cause the switch to fall into the default case. Just drop the WARN_ON(1) to avoid kernel log pollution. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit ac22353f803befce570b53f08b5d10d5ca668967 Author: Michael Straube Date: Wed Mar 20 09:50:29 2019 +0100 staging: rtl8188eu: remove unused WFD defines All defined WFD* in wifi.h are unused in the driver code, so remove them. Signed-off-by: Michael Straube Signed-off-by: Greg Kroah-Hartman commit a7265633683c71e96fee5e5f21909c8e63932d1b Author: Wentao Cai Date: Wed Mar 20 00:09:01 2019 -0700 Staging: unisys: Correct malformed SPDX-License-Identifier Correct SPDX-License-Identifier comment characters to silence checkpatch.pl warning: WARNING: Missing or malformed SPDX-License-Identifier tag in line 1 Signed-off-by: Wentao Cai Signed-off-by: Greg Kroah-Hartman commit 8bfb175461353c0d0da992e00cc35a40a65a58ea Author: YueHaibing Date: Wed Mar 20 01:54:29 2019 +0000 drm/vboxvideo: Remove unused including Remove including that don't need it. Signed-off-by: YueHaibing Reviewed-by: Hans de Goede Signed-off-by: Hans de Goede Link: https://patchwork.freedesktop.org/patch/msgid/20190320015429.86347-1-yuehaibing@huawei.com commit d315d4faf82092df6fe82f456fd26dc8b247b627 Author: Chris Wilson Date: Tue Mar 19 21:42:33 2019 +0000 drm/i915/selftests: Provide stub reset functions If a test fails, we quite often mark the device as wedged. Provide the stub functions so that we can wedge the mock device, and avoid exploding on test failures. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109981 Signed-off-by: Chris Wilson Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190319214233.25498-3-chris@chris-wilson.co.uk commit 20d467e1e9bdd091af56b856300545fa578e30cb Author: Marek Vasut Date: Mon Mar 4 13:11:39 2019 +0100 of: Add vendor prefix for Menlo Systems GmbH Add vendor prefix for Menlo Systems GmbH, http://www.menlosystems.com/ . Signed-off-by: Marek Vasut Cc: Fabio Estevam Cc: NXP Linux Team Cc: Rob Herring Cc: Shawn Guo Cc: devicetree@vger.kernel.org Reviewed-by: Rob Herring Signed-off-by: Shawn Guo commit 2bf6b5b0e374fccda724ca208e8d5433b869246a Author: Maxime Jourdan Date: Mon Mar 11 11:51:44 2019 +0100 drm/meson: exclusively use the canvas provider module Now that the DMC register range is no longer in the bindings, remove any mention towards it and exclusively use the meson-canvas module. Signed-off-by: Maxime Jourdan Acked-by: Neil Armstrong Signed-off-by: Neil Armstrong Link: https://patchwork.freedesktop.org/patch/msgid/20190311105144.7276-3-mjourdan@baylibre.com commit dc5b961410242a322a7191be77ba9e50026e3825 Author: Maxime Jourdan Date: Mon Mar 11 11:51:43 2019 +0100 dt-bindings: display: amlogic, meson-vpu: exclusively use amlogic, canvas When the DRM driver for the meson platform was created, the bindings required that the DMC register region was provided. Through those DMC registers, the display driver could configure an IP called "canvas", a video lookup table used by the display IP. It was later discovered that "canvas" is actually an IP shared by other components than display: video decoder, 2D engine.. and that it wasn't possible to keep the canvas code in DRM. Over the past few months, incremental efforts have been deployed to create a standalone meson-canvas driver [1], and the DRM driver was patched to optionally use it if present [2]. This is the final step of those efforts where we simply remove any control over DMC that the meson DRM driver has. Please note that this breaks compatibility with older DTs that only provide the DMC register range but not the amlogic,canvas node. [1] https://patchwork.kernel.org/cover/10573771/ [2] https://patchwork.freedesktop.org/series/52076/ Signed-off-by: Maxime Jourdan Reviewed-by: Neil Armstrong Signed-off-by: Neil Armstrong Link: https://patchwork.freedesktop.org/patch/msgid/20190311105144.7276-2-mjourdan@baylibre.com commit d058ad0e3856578a9821330edc583cc4349b179d Author: Pierre-Jean Texier Date: Sat Mar 2 23:32:29 2019 +0100 ARM: dts: imx7s-warp: PMIC swbst boot-on/always-on PMIC swbst regulator is used for the MikroBUS socket (pin +5V). We have to set the regulator to "boot-on" and "always-on" to output a voltage of 5V on this socket. Signed-off-by: Pierre-Jean Texier Reviewed-by: Fabio Estevam Signed-off-by: Shawn Guo commit 1284ec985572232ace4817476baeb2d82b60be7a Author: Joonas Lahtinen Date: Wed Mar 20 10:03:48 2019 +0200 drm/i915: Update DRIVER_DATE to 20190320 Signed-off-by: Joonas Lahtinen commit d058fb60d56b89548028acd6f70b8396e633ffc1 Author: Anson Huang Date: Thu Feb 28 08:56:05 2019 +0000 dt-bindings: clock: imx7ulp: remove SNVS clock Since i.MX7ULP B0 chip, SNVS module is moved into M4 domain, so remove it from Linux clock table. Signed-off-by: Anson Huang Signed-off-by: Shawn Guo commit 03fc565c2a7ac11b03105f438aeddfd75511ea24 Author: Anson Huang Date: Thu Feb 28 08:56:00 2019 +0000 clk: imx7ulp: remove snvs clock Since i.MX7ULP B0 chip, the SNVS module is moved into M4 domain and its clock is also moved into PCC0 which is contorlled by M4, Linux kernel should NOT add it into clock tree. Signed-off-by: Anson Huang Signed-off-by: Shawn Guo commit 0b5173368b4c2713044ec677a3b8cae413cc8e19 Author: Daniel Baluta Date: Tue Mar 19 17:48:38 2019 +0000 bindings: fsl-imx-sdma: Document fsl,imx8mq-sdma compatbile string Add imx8mq sdma support. Signed-off-by: Daniel Baluta Reviewed-by: Rob Herring Reviewed-by: Fabio Estevam Signed-off-by: Shawn Guo commit c6578d98766a9ddad159a373c3a0c0f65c529430 Author: Daniel Baluta Date: Tue Mar 19 17:48:41 2019 +0000 arm64: dts: imx8mq-evk: Enable audio codec wm8524 The main Audio DAC used on the EVK board is wm8524 The EVK provides the MCLK to wm8524. Digital interface is SAI2 which includes three signals: SYNC_CLK, BCLK and DACDAT. This patch sets: * SAI2 pinctrl configuration * clock hierarchy * wm8524 codec Then uses simple-card machine driver to connect them into a sound card. Signed-off-by: Daniel Baluta Reviewed-by: Fabio Estevam Signed-off-by: Shawn Guo commit 8c61538dc9458c1c876d09953d24dba69cd5704f Author: Daniel Baluta Date: Tue Mar 19 17:48:40 2019 +0000 arm64: dts: imx8mq: Add SAI2 node SAI2 is part of AIPS-3 memory region. Signed-off-by: Daniel Baluta Reviewed-by: Fabio Estevam Signed-off-by: Shawn Guo commit 1474d48bd63976d274e3dc4582bd9e19937b54af Author: Daniel Baluta Date: Tue Mar 19 17:48:37 2019 +0000 arm64: dts: imx8mq: Add SDMA nodes SDMA1 is part of AIPS-3 region and SDMA2 is part of AIPS-1 region. Signed-off-by: Anson Huang Signed-off-by: Daniel Baluta Reviewed-by: Fabio Estevam Signed-off-by: Shawn Guo commit 49634aa7d9e65c8973745544ceb0b854e24c08e2 Author: Ian Abbott Date: Tue Mar 19 16:54:44 2019 +0000 staging: comedi: ni_mio_common: use insn->n in ni_m_series_eeprom_insn_read() The `insn_read` handler for the EEPROM subdevice on M-series boards (`ni_m_series_eeprom_insn_read()`) currently ignores `insn->n` (the number of samples to read) and assumes a single sample is to be read into `data[0]`. Fortunately, the Comedi core ensures that `data[]` has a length of at least 16 so there is no problem with array bounds. The usual Comedi convention for `insn_read` handlers is to read the same channel `insn->n` times into successive elements of `data[]` so let's do that. (Each channel corresponds to a single EEPROM address.) In this case, the data value comes from a local copy of the EEPROM contents. Also, follow the usual Comedi convention and return `insn->n` from the handler to indicate success (although any non-negative value will do). Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman commit 018768ccc7dc582519b84df593dd8ff1fbd02b55 Author: Ian Abbott Date: Tue Mar 19 16:54:43 2019 +0000 staging: comedi: ni_mio_common: use insn->n in ni_eeprom_insn_read() The `insn_read` handler for the EEPROM subdevice on E-series boards (`ni_eeprom_insn_read()`) currently ignores `insn->n` (the number of samples to read) and assumes a single sample is to be read into `data[0]`. Fortunately, the Comedi core ensures that `data[]` has a length of at least 16 so there is no problem with array bounds. The usual Comedi convention for `insn_read` handlers is to read the same channel `insn->n` times into successive elements of `data[]` so let's do that. (Each channel number corresponds to a single EEPROM address.) Since we do not expect the EEPROM data at a particular address to change between readings, let's just read it once and copy the value `insn->n` times. Also, follow the usual Comedi convention and return `insn->n` from the handler to indicate success (although any non-negative value will do). Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman commit 776d25ff5b494be280caba9d297477270462e580 Author: Ian Abbott Date: Tue Mar 19 16:54:42 2019 +0000 staging: comedi: ni_mio_common: use insn->n in ni_calib_insn_read() The `insn_read` handler for the calibration subdevice (`ni_calib_insn_read()`) currently ignores `insn->n` (the number of samples to read) and assumes a single sample is to be read into `data[0]`. Fortunately, the Comedi core ensures that `data[]` has a length of at least 16, so there is no problem with array bounds. The usual Comedi convention for `insn_read` handlers is to read the same channel `insn->n` times into successive elements of `data[]`, so let's do that. Also, follow the usual Comedi convention and return `insn->n` from the handler to indicate success (although any non-negative value will do). Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman commit fe57d1e113fcaf6af600c4d10168513c05230160 Author: Ian Abbott Date: Tue Mar 19 16:54:41 2019 +0000 staging: comedi: ni_mio_common: Use insn->n in ni_calib_insn_write() The `insn_write` handler for the calibration subdevice (`ni_calib_insn_write()`) currently ignores `insn->n` (the number of samples to write) and assumes a single sample is to be written, but `insn->n` could be 0, meaning no samples should be written, in which case `data[0]` is invalid. Change `ni_calib_insn_write()` to only write to the calibration device if `insn->n > 0`. There isn't much point writing all the values when `insn->n > 1`, so just write the last one (`data[insn->n - 1]`). Also follow the usual Comedi convention and return `insn->n` from the handler to indicate success (although any non-negative return value will do as far as the Comedi core is concerned). Signed-off-by: Ian Abbott Signed-off-by: Greg Kroah-Hartman commit b8585eb51e74034a7c1dd534a667400b8fd58787 Author: George Hilliard Date: Mon Mar 18 20:20:12 2019 -0600 staging: mt7621-mmc: Only unmap_sg if mapped A failure while processing the start command could cause dma_unmap_sg() to be called without first calling dma_map_sg(). Since calling dma_unmap_sg() is only needed when data != NULL, move the unmap call into the corresponding if {} block. Signed-off-by: George Hilliard Signed-off-by: Greg Kroah-Hartman commit b22f49923ac873beb77f1e1082022985054fb702 Author: George Hilliard Date: Mon Mar 18 20:20:11 2019 -0600 staging: mt7621-mmc: Fix BRUST -> BURST typo Obvious typo. It is specified as BURST in the datasheet. Signed-off-by: George Hilliard Signed-off-by: Greg Kroah-Hartman commit 983b2fd7235b1c0c0ed36accb7069ef45703308a Author: George Hilliard Date: Mon Mar 18 20:20:10 2019 -0600 staging: mt7621-mmc: Immediately notify mmc layer of card change detection There is no need to delay notifying the mmc layer. Schedule the delayed work to run immediately. Signed-off-by: George Hilliard Signed-off-by: Greg Kroah-Hartman commit 6d0e4698c89aaf4c420817c66348a006e260b101 Author: George Hilliard Date: Mon Mar 18 20:20:09 2019 -0600 staging: mt7621-mmc: Remove redundant host->mmc->f_max write This is set once during initialization and never changed. Don't bother setting it again in the interrupt handler. Signed-off-by: George Hilliard Signed-off-by: Greg Kroah-Hartman commit 472033f59139299cab738add0fb3665751d04203 Author: George Hilliard Date: Mon Mar 18 20:20:06 2019 -0600 staging: mt7621-mmc: Bill the caller for I/O time When waiting on completions, use the _io variant so the caller is charged as using I/O. This should have no effect on the module's functionality, only improve CPU accounting. Signed-off-by: George Hilliard Signed-off-by: Greg Kroah-Hartman commit 64eb131e22bd16f5875e742bdecf653cb4d6c95b Author: George Hilliard Date: Mon Mar 18 20:20:05 2019 -0600 staging: mt7621-mmc: Use pinctrl subsystem to select SDXC pin mode The driver previously grabbed the SD pins for itself, ignoring the pin controller. Remove this, and allow the pinctrl subsystem to set up the pins using the device tree mappings. This allows this driver to work on related devices that have a different pin controller mapping, such as the MT7688. The hardcoded bit index was incorrect on that device. The driver now needs a pin controller reference in its device tree node: sdhci: /* ... */ { compatible = "ralink,mt7620-sdhci"; pinctrl-names = "default"; pinctrl-0 = <&sdhci_pins>; // ... }; This change could break SD controller functionality on existing devices whose device trees do not specify a pin controller and state for the SD node. Signed-off-by: George Hilliard Signed-off-by: Greg Kroah-Hartman commit c62a4073b243a1327160e1a095cb5448890c0e7f Author: George Hilliard Date: Mon Mar 18 20:20:03 2019 -0600 staging: mt7621-mmc: Remove obsolete comments and variables These comments don't contain useful code or alternate implementation ideas. Remove them. Signed-off-by: George Hilliard Signed-off-by: Greg Kroah-Hartman commit ea9420cea39015e554f4ecab9ece7bf5b5bfc760 Author: George Hilliard Date: Mon Mar 18 20:20:02 2019 -0600 staging: mt7621-mmc: fix unused variable compiler warning The compiler complains: drivers/staging/mt7621-mmc/dbg.c: In function ‘msdc_debug_proc_write’: drivers/staging/mt7621-mmc/dbg.c:237:12: warning: unused variable ‘size’ [-Wunused-variable] int mode, size; ^~~~ drivers/staging/mt7621-mmc/dbg.c:237:6: warning: unused variable ‘mode’ [-Wunused-variable] int mode, size; ^~~~ Remove these declarations. Signed-off-by: George Hilliard Signed-off-by: Greg Kroah-Hartman commit 730b3cf282a30278b72e9f2aa4a60a1b2f643804 Author: Nishka Dasgupta Date: Wed Mar 20 00:52:31 2019 +0530 staging: fsl-dpaa2: ethsw: Remove return variable Remove return variable and return return value directly. Issue found by Coccinelle using ret.cocci. Signed-off-by: Nishka Dasgupta Acked-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman commit fa008fdf002df049c2e9eeaa09ec96debaf0caea Author: Wentao Cai Date: Tue Mar 19 21:44:59 2019 -0700 Staging: unisys: visorhba: Replace '--help--' with 'help' in Kconfig Replace '--help--' in Kconfig and indent the subsequent text to silence checkpatch.pl warning: WARNING: prefer 'help' over '---help---' for new help texts Signed-off-by: Wentao Cai Signed-off-by: Greg Kroah-Hartman commit 93ea10f5453cca57055375db2c0d982a05d408e1 Author: Wentao Cai Date: Tue Mar 19 21:45:00 2019 -0700 Staging: unisys: visorinput: Replace '--help--' with 'help' in Kconfig Replace '--help--' in Kconfig and indent the subsequent text to silence checkpatch.pl warning: WARNING: prefer 'help' over '---help---' for new help texts Signed-off-by: Wentao Cai Signed-off-by: Greg Kroah-Hartman commit 875af97f6674843d9f88ddc02bf902b8aa11477f Author: Wentao Cai Date: Tue Mar 19 21:45:01 2019 -0700 Staging: unisys: visornic: Replace '--help--' with 'help' in Kconfig Replace '--help--' in Kconfig and indent the subsequent text to silence checkpatch.pl warning: WARNING: prefer 'help' over '---help---' for new help texts Signed-off-by: Wentao Cai Signed-off-by: Greg Kroah-Hartman commit 40197d076c84891def0edac534f1c186d5594c5f Author: Vatsala Narang Date: Wed Mar 20 01:51:57 2019 +0530 staging: sm750fb: Eliminate camel case Edit CamelCase function name Issue found by checkpatch.pl Signed-off-by: Vatsala Narang Signed-off-by: Greg Kroah-Hartman commit e655d23dbac83d8d5511055f0943764253fb878e Author: Sanjana Sanikommu Date: Tue Mar 19 23:16:28 2019 +0530 staging: rtl8192u: ieee80211: ieee80211_tx.c: Adjust space around else. Fix the spacce around else. Issue found by checkpatch.pl ERROR: spaces required before that open brace '{' ERROR: spaces required before that close brace '}' Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit c0fb0459cb0c19427fc8a9a947a46af92d4ab04e Author: Sanjana Sanikommu Date: Tue Mar 19 22:35:26 2019 +0530 staging: rtl8192u: ieee80211: ieee80211_rx.c: Fix NULL comparisions. Replace NULL comparisons in the file. Issue found by checkpatch.pl Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit 993798a511621d574b772f9072a98551fd1df522 Author: Sanjana Sanikommu Date: Tue Mar 19 20:56:48 2019 +0530 staging: rtl8192u: r8192U_dm: Remove unnecessary blank lines. Remove unnecessary blank lines. Issue found by checkpatch.pl Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit b6ed32ab49f54616d893b5f7d6112a2b0f79ee7d Author: Sanjana Sanikommu Date: Tue Mar 19 20:55:17 2019 +0530 staging: rtl8192u: r8192U_dm: Fix space issue around operators. Add spaces around the operators. Issue found by checkpatch.pl CHECK: spaces preferred around that '+' CHECK: spaces preferred around that '*' Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit f981a79eff0bfb686852a23b6362668ce5d285a9 Author: Sanjana Sanikommu Date: Tue Mar 19 20:53:55 2019 +0530 staging: rtl8192u: r8192U_dm: Fix alignment issue. Ajdust alignment to match open paranthesis. Issue found by checkpatch.pl CHECK: Alignment should match open paranthesis. Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit df08e38510f84b59ad1def582e913c26d5a3cddc Author: Nishka Dasgupta Date: Wed Mar 20 00:59:11 2019 +0530 staging: gasket: Remove return variable Remove return variable and return the return value directly. Issue suggested by ret.cocci. Signed-off-by: Nishka Dasgupta Acked-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman commit 180a41bfbfe04af93a1e2945bf723d161820cf4f Author: Nishka Dasgupta Date: Wed Mar 20 01:33:08 2019 +0530 staging: greybus: Remove parentheses around variable Remove parentheses around variable. Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit 447a3621b3835b6478226f62bb9c61ac57488958 Author: Julian Merida Date: Mon Mar 18 20:58:41 2019 -0300 staging: erofs: fix parenthesis alignment Fix all checkpatch issues: "CHECK: Alignment should match open parenthesis" Signed-off-by: Julian Merida Reviewed-by: Gao Xiang Signed-off-by: Greg Kroah-Hartman commit ad71b256ba4e6e469d60e3f7b9973fd195b04bee Author: Brett Creeley Date: Fri Feb 8 12:50:59 2019 -0800 ice: Determine descriptor count and ring size based on PAGE_SIZE Currently we set the default number of Tx and Rx descriptors to 128 by default. For Rx this amounts to a full page (assuming 4K pages) because each Rx descriptor is 32 Bytes, but for Tx it only amounts to a half page because each Tx descriptor is 16 Bytes (assuming 4K pages). Instead of assuming 4K pages, determine the ring size and the number of descriptors for Tx and Rx based on a calculation using the PAGE_SIZE, ICE_MAX_NUM_DESC, and ICE_REQ_DESC_MULTIPLE. This change is being made to improve the performance of the driver when using the default settings. Signed-off-by: Brett Creeley Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 544f63d307b103d0b1e2bc25f1830d48df177031 Author: Akeem G Abodunrin Date: Fri Feb 8 12:50:58 2019 -0800 ice: Reset all VFs with VFLR during SR-IOV init flow During SR-IOV initialization, we allocate and setup VFs with reset, and since we were going to inform Firmware about our intention to do VFLR by disabling LAN TX Queue, then we really have to complete VF reset flow with VFLR using appropriate registers - Otherwise, reset status bit for VF in the Guest OS might returns DEADBEEF. This resolves issue to properly initialize VFs in the Guest OS via PCI passthrough. Signed-off-by: Akeem G Abodunrin Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 7a1f7111754020e6c1c8d83d79850444d9001cf3 Author: Brett Creeley Date: Fri Feb 8 12:50:57 2019 -0800 ice: Get resources per function ice_get_guar_num_vsi currently calculates the number of VSIs per PF. Rework this into a general function ice_get_num_per_func, that can calculate per PF allocations for not just VSIs but across multiple resource types. Signed-off-by: Brett Creeley Reviewed-by: Bruce Allan Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 1c44e3bce12f3ae8bf2f3f7fb808d4e2e9ef98ca Author: Akeem G Abodunrin Date: Fri Feb 8 12:50:56 2019 -0800 ice: Implement flow to reset VFs with PFR and other resets All VF VSIs need to be reset and rebuild with the main VSIs before replaying all VSIs, so that all existing switch filters, scheduler tree and other configuration could be replayed at once. This fixes issues when doing PFR and CORER reset. Signed-off-by: Akeem G Abodunrin Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 70457520bab82bd758307837964ef7bbd5dd9dc8 Author: Brett Creeley Date: Fri Feb 8 12:50:55 2019 -0800 ice: configure GLINT_ITR to always have an ITR gran of 2 Instead of hoping that our ITR granularity will be 2 usec program the GLINT_CTL register to make sure the ITR granularity is always 2 usecs. Now that we know what the ITR granularity will be get rid of the check in ice_probe() to verify our previous assumption. Signed-off-by: Brett Creeley Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 729ae330a0f2e270db2ca70c06a83d0aa2776288 Author: Anusha Srivatsa Date: Mon Mar 18 13:01:33 2019 -0700 drm/i915/cml: Introduce Comet Lake PCH Comet Lake PCH is based off of Cannon Point(CNP). Add PCI ID for Comet Lake PCH. v2: Code cleanup (DK) v3: Comment cleanup (Jani) Cc: Jani Nikula Cc: Dhinakaran Pandiyan Cc: Rodrigo Vivi Signed-off-by: Anusha Srivatsa Reviewed-by: Rodrigo Vivi Link: https://patchwork.freedesktop.org/patch/msgid/20190318200133.9666-2-anusha.srivatsa@intel.com commit a7b4deeb02b978bc59808cb13c93ba84f01023a4 Author: Anusha Srivatsa Date: Mon Mar 18 13:01:32 2019 -0700 drm/i915/cml: Add CML PCI IDS Comet Lake is a Intel Processor containing Gen9 Intel HD Graphics. This patch adds the initial set of PCI IDs. Comet Lake comes off of Coffee Lake - adding the IDs to Coffee Lake ID list. More support and features will be in the patches that follow. v2: Split IDs according to GT. (Rodrigo) v3: Update IDs. Cc: Rodrigo Vivi Cc: Lucas De Marchi Signed-off-by: Anusha Srivatsa Reviewed-by: Rodrigo Vivi Link: https://patchwork.freedesktop.org/patch/msgid/20190318200133.9666-1-anusha.srivatsa@intel.com commit 80ed404abb480563aaefef28accc69801a95f964 Author: Brett Creeley Date: Fri Feb 8 12:50:54 2019 -0800 ice: use ice_for_each_vsi macro when possible Replace all instances of: for (i = 0; i < pf->num_alloc_vsi; i++) with the following macro: ice_for_each_vsi(pf, i) This will allow the code to be consistent since there are currently cases of using both. Signed-off-by: Brett Creeley Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit d8df260af70f8b8a9f23466f569c820a90e91696 Author: Chinh T Cao Date: Fri Feb 8 12:50:52 2019 -0800 ice : Ensure only valid bits are set in ice_aq_set_phy_cfg In the ice_aq_set_phy_cfg AQ command, the 16.4 bit is reserved. This patch will make sure that this bit will never be set to 1. Signed-off-by: Chinh T Cao Reviewed-by: Bruce Allan Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 16c3301b55668fe8b163cad5c6b4d064bfa7c6fc Author: Brett Creeley Date: Fri Feb 8 12:50:51 2019 -0800 ice: remove redundant variable and if condition In ice_pf_rxq_wait we are using an unnecessary local variable and also we are checking if the timeout time was reached after the loop. Get rid of the local variable and return 0 right when we get a successful result. This makes it so we can return -ETIMEDOUT if we ever exit the loop because we know the timeout time has been hit. Signed-off-by: Brett Creeley Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 77ed84f49aeed11d72a3559e35d624706e364940 Author: Bruce Allan Date: Fri Feb 8 12:50:50 2019 -0800 ice: avoid multiple unnecessary de-references in probe Add a local variable struct device *dev to avoid unnecessary de-references throughout ice_probe(). Signed-off-by: Bruce Allan Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 42b2cc83afb4d1afcf7794148dd4e8e45ba32943 Author: Akeem G Abodunrin Date: Fri Feb 8 12:50:49 2019 -0800 ice: Fix issue with VF reset and multiple VFs support on PFs This patch fixes issues with VF queues being disabled, and VF netdev network carrier being lost after reset. Basically, we need to check if VF is enabled, and queue configured in reset_all_vfs flow, and disable/enable those queues appropriately whenever the function is called after Global/CORER/PFR reset/rebuild/replay. Signed-off-by: Akeem G Abodunrin Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 77a7a84d6221669166cd00b5cf958b58e5344578 Author: Michal Swiatkowski Date: Fri Feb 8 12:50:48 2019 -0800 ice: Fix broadcast traffic in port VLAN mode Set egress (Rx) pruning enable flag for VF VSI in VSI ctxt to enable prune action. To avoid seeing broadcast packet in different VLAN, pruning enable flag in VSI ctxt should be set. Write new functions (fill VSI ctx) to not repeat send ctxt code. Signed-off-by: Michal Swiatkowski Signed-off-by: Anirudh Venkataramanan Tested-by: Andrew Bowers Signed-off-by: Jeff Kirsher commit 371a415153be953520003ffe4a4eca3fecc0e8c2 Author: Enrico Weigelt, metux IT consult Date: Mon Mar 11 16:54:27 2019 +0100 arch: mips: Kconfig: pedantic formatting Formatting of Kconfig files doesn't look so pretty, so let the Great White Handkerchief come around and clean it up. Signed-off-by: Enrico Weigelt, metux IT consult Signed-off-by: Paul Burton Cc: linux-kernel@vger.kernel.org Cc: hauke@hauke-m.de Cc: zajec5@gmail.com Cc: f.fainelli@gmail.com Cc: bcm-kernel-feedback-list@broadcom.com Cc: linux-mips@vger.kernel.org commit 716850ab104db154549b01e63d5c71076434b064 Author: Hassan Naveed Date: Tue Mar 12 22:48:12 2019 +0000 MIPS: eBPF: Initial eBPF support for MIPS32 architecture. Currently MIPS32 supports a JIT for classic BPF only, not extended BPF. This patch adds JIT support for extended BPF on MIPS32, so code is actually JIT'ed instead of being only interpreted. Instructions with 64-bit operands are not supported at this point. We can delete classic BPF because the kernel will translate classic BPF programs into extended BPF and JIT them, eliminating the need for classic BPF. Signed-off-by: Hassan Naveed Signed-off-by: Paul Burton Cc: kafai@fb.com Cc: songliubraving@fb.com Cc: yhs@fb.com Cc: netdev@vger.kernel.org Cc: bpf@vger.kernel.org Cc: linux-mips@vger.kernel.org Cc: Ralf Baechle Cc: James Hogan Cc: Alexei Starovoitov Cc: Daniel Borkmann Cc: open list:MIPS Cc: open list commit 6c2c8a18886897226ee43e77c0149a8e1874274a Author: Hassan Naveed Date: Tue Mar 12 22:48:06 2019 +0000 MIPS: eBPF: Provide eBPF support for MIPS64R6 Currently eBPF support is available on MIPS64R2 only. Use MIPS64R6 variants of instructions like multiply, divide, movn, movz so eBPF can run on the newer ISA. Also, we only need to check ISA revision before JIT'ing code, because we know the CPU is running a 64-bit kernel because eBPF JIT is only included in kernels with CONFIG_64BIT=y due to Kconfig dependencies. Signed-off-by: Hassan Naveed Signed-off-by: Paul Burton Cc: kafai@fb.com Cc: songliubraving@fb.com Cc: yhs@fb.com Cc: netdev@vger.kernel.org Cc: bpf@vger.kernel.org Cc: linux-mips@vger.kernel.org Cc: Ralf Baechle Cc: James Hogan Cc: Alexei Starovoitov Cc: Daniel Borkmann Cc: open list:MIPS Cc: open list commit 0d1d17b9ff8e7d69b2169337b263822355404a86 Author: Hassan Naveed Date: Tue Mar 12 22:47:56 2019 +0000 MIPS: uasm: Add div, mul and sel instructions for mipsr6 Add the following instructions for use by eBPF on mipsr6: insn_ddivu_r6, insn_divu_r6, insn_dmodu, insn_dmulu, insn_modu, insn_mulu, insn_seleqz, insn_selnez Signed-off-by: Hassan Naveed Reviewed-by: Paul Burton Signed-off-by: Paul Burton Cc: kafai@fb.com Cc: songliubraving@fb.com Cc: yhs@fb.com Cc: netdev@vger.kernel.org Cc: bpf@vger.kernel.org Cc: linux-mips@vger.kernel.org Cc: Ralf Baechle Cc: James Hogan Cc: Alexei Starovoitov Cc: Daniel Borkmann Cc: open list:MIPS Cc: open list commit b8f3b15a7ba0a91de86547de8bbd5a633db03ab1 Author: Valentin Schneider Date: Fri Mar 15 16:31:33 2019 +0000 MIPS: entry: Remove unneeded need_resched() loop Since the enabling and disabling of IRQs within preempt_schedule_irq() is contained in a need_resched() loop, we don't need the outer arch code loop. Note that commit a18815abcdfd ("Use preempt_schedule_irq.") initially removed the existing loop, but missed the final branch to restore_all. Commit cdaed73afb61 ("Fix preemption bug.") missed that and reintroduced the loop. Signed-off-by: Valentin Schneider Cc: Ralf Baechle Cc: Paul Burton Cc: James Hogan Cc: linux-mips@vger.kernel.org Signed-off-by: Paul Burton Cc: linux-kernel@vger.kernel.org commit bb0e5837db3a194213dd40f05d272320e47dada0 Author: Sasha Neftin Date: Fri Mar 15 17:12:07 2019 +0200 igc: Remove unneeded hw_dbg prints Remove unneeded hw_dbg prints from igc_ethtool.c file. Clean up code. Signed-off-by: Sasha Neftin Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher commit ecad77fd29e4437e0488c5776fee1cc41a33aebb Author: Sasha Neftin Date: Tue Mar 12 00:34:35 2019 +0200 igc: Fix the typo in igc_base.h header definition Add the underline for the _IGC_BASE_H_. Signed-off-by: Sasha Neftin Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher commit 65cd3a725e908fe5a93d507411c3ea83157d10c4 Author: Sasha Neftin Date: Wed Feb 20 14:39:31 2019 +0200 igc: Add support for the ntuple feature Copy the ntuple feature into list of user selectable features. Enable the ntuple feature. Signed-off-by: Sasha Neftin Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher commit 36b9fea60961d7426b6d4b0faaf609e5d820482d Author: Sasha Neftin Date: Mon Feb 18 10:37:31 2019 +0200 igc: Add support for statistics Add support for statistics and show basic counters. Signed-off-by: Sasha Neftin Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher commit 9bd5423fc75e8a1fc1f84c75c779bdc8aa4a36c2 Merge: 03f1eccc7a69 75dd98c4a848 Author: David S. Miller Date: Tue Mar 19 14:59:32 2019 -0700 Merge branch 'enc28j60-messaging-clean-up-and-ACPI-improvements' Andy Shevchenko says: ==================== enc28j60: messaging clean up and ACPI improvements Most of the patches in the series dedicated to update messaging to use modern APIs, such as netdev, with a benefit to distinguish devices, if more than one installed on the system. Besides that, patch 1 targeting ACPI enabled systems when MAC address provided there via properties. And few clean ups are included, such as: - switching to module_spi_driver() - converting to use ether_addr_copy() API - converting to use SPDX Since v2: - cover letter is added ==================== Signed-off-by: David S. Miller commit 75dd98c4a848cf88fb88bcdb05b580add2bfd2b2 Author: Andy Shevchenko Date: Tue Mar 19 20:49:30 2019 +0200 enc28j60: Convert to use SPDX identifier Reduce size of duplicated comments by switching to use SPDX identifier. No functional change. Signed-off-by: Andy Shevchenko Signed-off-by: David S. Miller commit 5c22dc8debcc4979db5717b0d3188962e473b73d Author: Andy Shevchenko Date: Tue Mar 19 20:49:29 2019 +0200 enc28j60: Fix indentation splats Fix few indentation splats. No functional change intended. Signed-off-by: Andy Shevchenko Signed-off-by: David S. Miller commit f3cb67b0f3473056d026fb7880a6442c83887a14 Author: Andy Shevchenko Date: Tue Mar 19 20:49:28 2019 +0200 enc28j60: Amend comments by fixing typos, adding periods, etc Amend comments in the code: - adding periods to the multi-line comments - fixing typos - capitalize first word in the sentences - etc Signed-off-by: Andy Shevchenko Signed-off-by: David S. Miller commit ba2c37947c429d1018c4b73759749fa26993ac45 Author: Andy Shevchenko Date: Tue Mar 19 20:49:27 2019 +0200 enc28j60: Remove linux/init.h There is no need to include linux/init.h when at the same time we include linux/module.h. Remove redundant inclusion. Signed-off-by: Andy Shevchenko Signed-off-by: David S. Miller commit c93a0f2a7fc4b94142ed2bc6fb000de8e09eb232 Author: Andy Shevchenko Date: Tue Mar 19 20:49:26 2019 +0200 enc28j60: Convert printk() to netdev_printk() The debug prints of network operations will look better if network device name is printed. The benefit of that is a possibility to distinguish the actual hardware when more than one is installed on the system. Convert appropriate printk(KERN_DEBUG) to netdev_print(KERN_DEBUG, ndev). Signed-off-by: Andy Shevchenko Signed-off-by: David S. Miller commit 6eae14104fc8ce6ac68840a3a76955b1e2198b39 Author: Andy Shevchenko Date: Tue Mar 19 20:49:25 2019 +0200 enc28j60: Convert HW related printk() to dev_printk() The debug prints of hardware status and operations will look better if SPI device name is printed. The benefit of that is a possibility to distinguish the actual hardware when more than one is installed on the system. Convert appropriate printk(KERN_DEBUG) to dev_print(KERN_DEBUG, &spi->dev). Signed-off-by: Andy Shevchenko Signed-off-by: David S. Miller commit e303b6afef214a275d99e124510628a87c8158dd Author: Andy Shevchenko Date: Tue Mar 19 20:49:24 2019 +0200 enc28j60: Switch to dev_ from pr_ Instead of using open coded printk(KERN_) switch the driver to use dev_ macros. Note, the device name will be printed in full, which is beneficial when more than one card installed on the system. Signed-off-by: Andy Shevchenko Signed-off-by: David S. Miller commit b4f7a6f964fbef348e0e656e4b7d8488b217450f Author: Andy Shevchenko Date: Tue Mar 19 20:49:23 2019 +0200 enc28j60: Use ether_addr_copy() in enc28j60_set_mac_address() Use ether_addr_copy() instead of memcpy() to copy the mac address. Signed-off-by: Andy Shevchenko Signed-off-by: David S. Miller commit 41e48c3d8070eba700f570c600c33c95486c17c3 Author: Andy Shevchenko Date: Tue Mar 19 20:49:22 2019 +0200 enc28j60: Switch to use module_spi_driver() macro Eliminate some boilerplate code by using module_spi_driver() instead of ->init() / ->exit(), moving the salient bits from ->init() into ->probe(). Signed-off-by: Andy Shevchenko Signed-off-by: David S. Miller commit 571fb070a147b4a25e9678c7ab492d13e8584097 Author: Andy Shevchenko Date: Tue Mar 19 20:49:21 2019 +0200 enc28j60: Drop driver name duplication from messages When dev_() macros are used against SPI device, the driver's name is printed as well. No need to duplicate this explicitly. Signed-off-by: Andy Shevchenko Signed-off-by: David S. Miller commit 35b60f37363b1a179d100ee0aa6f490de7939d37 Author: Andy Shevchenko Date: Tue Mar 19 20:49:20 2019 +0200 enc28j60: Replace dev_*(&netdev->dev, ...) with netdev_*() Replace open coded netdev_() macros. Signed-off-by: Andy Shevchenko Signed-off-by: David S. Miller commit f23304cbd568bf7ea72e33ff522de07c580f903e Author: Andy Shevchenko Date: Tue Mar 19 20:49:19 2019 +0200 enc28j60: Remove duplicate messaging The ->probe() and ->remove() stages can be easily debugged with initcall_debug or function tracer. There is no need to repeat the same explicitly in the driver. Signed-off-by: Andy Shevchenko Signed-off-by: David S. Miller commit 9b525171d881e6c502401ce9056e667302db2f88 Author: Andy Shevchenko Date: Tue Mar 19 20:49:18 2019 +0200 enc28j60: Use device_get_mac_address() Replace the DT-specific of_get_mac_address() function with device_get_mac_address, which works on both DT and ACPI platforms. This change makes it easier to add ACPI support. Signed-off-by: Andy Shevchenko Signed-off-by: David S. Miller commit 7512ddef63075605ecc25fee86940a1452fcbe49 Author: YueHaibing Date: Sat Feb 16 18:01:30 2019 +0800 scsi: mvumi: Stop using plain integer as NULL pointer Fix following sparse warning: drivers/scsi/mvumi.c:1797:48: warning: Using plain integer as NULL pointer drivers/scsi/mvumi.c:2143:50: warning: Using plain integer as NULL pointer drivers/scsi/mvumi.c:755:58: warning: Using plain integer as NULL pointer Signed-off-by: YueHaibing Signed-off-by: Martin K. Petersen commit 3f0b2d74210053ce1e773c0376cd9509ea95b780 Author: YueHaibing Date: Sat Feb 16 07:39:06 2019 +0000 scsi: qedi: Remove set but not used variable 'cls_sess' Fixes gcc '-Wunused-but-set-variable' warning: drivers/scsi/qedi/qedi_fw.c: In function 'qedi_tmf_resp_work': drivers/scsi/qedi/qedi_fw.c:158:28: warning: variable 'cls_sess' set but not used [-Wunused-but-set-variable] drivers/scsi/qedi/qedi_fw.c: In function 'qedi_tmf_work': drivers/scsi/qedi/qedi_fw.c:1370:28: warning: variable 'cls_sess' set but not used [-Wunused-but-set-variable] It's never used since introduction. Signed-off-by: YueHaibing Signed-off-by: Martin K. Petersen commit 6245c8483ae0110d2eb7e7cd2922dba1a5fce720 Author: Sasha Neftin Date: Thu Feb 14 13:31:37 2019 +0200 igc: Extend the ethtool supporting Add show and configure network flow classification (NFC) methods to the ethtool. Show the specifies Rx ntuple filters. Configures receive network flow classification option or rules. Signed-off-by: Sasha Neftin Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher commit 2121c2712f8249e4d2555a4c989e4666aba34031 Author: Sasha Neftin Date: Wed Feb 6 09:48:37 2019 +0200 igc: Add multiple receive queues control supporting Enable the multi queues to receive. Program the direction of packets to specified queues according to the mode selected in the MRQC register. Multiple receive queues defined by filters and RSS for 4 queues. Enable/disable RSS hashing and also to enable multiple receive queues. This patch will allow further ethtool support development. Signed-off-by: Sasha Neftin Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher commit 459d69c407f9ba122f12216555c3012284dc9fd7 Author: Kai-Heng Feng Date: Sun Feb 3 01:40:16 2019 +0800 e1000e: Disable runtime PM on CNP+ There are some new e1000e devices can only be woken up from D3 one time, by plugging Ethernet cable. Subsequent cable plugging does set PME bit correctly, but it still doesn't get woken up. Since e1000e connects to the root complex directly, we rely on ACPI to wake it up. In this case, the GPE from _PRW only works once and stops working after that. Though it appears to be a platform bug, e1000e maintainers confirmed that I219 does not support D3. So disable runtime PM on CNP+ chips. We may need to disable earlier generations if this bug also hit older platforms. Bugzilla: https://bugzilla.kernel.org/attachment.cgi?id=280819 Signed-off-by: Kai-Heng Feng Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher commit 92684bfc9b163175f43624d8d781f9ef74ff0fee Author: Matteo Croce Date: Fri Jan 4 22:38:54 2019 +0100 scsi: be2iscsi: lpfc: fix typo Fix spelling mistake: "lenght" -> "length" Signed-off-by: Matteo Croce Signed-off-by: Martin K. Petersen commit 5aa151922e90c95c1fef0bb4f78a8a38b8a8c0aa Author: Colin Ian King Date: Wed Jan 16 18:53:16 2019 +0000 igb: fix various indentation issues There are some lines that have indentation issues, fix these Signed-off-by: Colin Ian King Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher commit 62439b4800419520bbb278beec2b6f06afa8b5ec Author: Milan P. Gandhi Date: Tue Mar 12 18:23:15 2019 +0530 scsi: qla2xxx: Fix a small typo in qla_bsg.c Fixed a typo for 'iiDMA' cmd in qla_bsg.c. Signed-off-by: Milan P. Gandhi Signed-off-by: Martin K. Petersen commit f65c33890b95ce24f12f88c30625d678443020bb Author: Milan P. Gandhi Date: Tue Mar 12 18:21:11 2019 +0530 scsi: qla2xxx: Fix comment alignment in qla_bsg.c Fixed a minor formatting issue with comment section in qla_bsg.c Signed-off-by: Milan P. Gandhi Signed-off-by: Martin K. Petersen commit 03f1eccc7a69c965351e6bee41c62afa2844752f Author: Stephen Suryaputra Date: Tue Mar 19 12:37:12 2019 -0400 ipv6: Add icmp_echo_ignore_multicast support for ICMPv6 IPv4 has icmp_echo_ignore_broadcast to prevent responding to broadcast pings. IPv6 needs a similar mechanism. v1->v2: - Remove NET_IPV6_ICMP_ECHO_IGNORE_MULTICAST. Signed-off-by: Stephen Suryaputra Signed-off-by: David S. Miller commit f9cb75970e7b61e7f0c14dacf709f830b6bf21e8 Author: Wolfram Sang Date: Tue Mar 19 17:36:34 2019 +0100 net: macb: simplify getting .driver_data We should get 'driver_data' from 'struct device' directly. Going via platform_device is an unneeded step back and forth. Signed-off-by: Wolfram Sang Signed-off-by: David S. Miller commit 5b6e13216be29ced7350d9c354a1af8fe0ad9a3e Author: Kai-Heng Feng Date: Tue Dec 11 15:59:38 2018 +0800 igb: Exclude device from suspend direct complete optimization igb sets different WoL settings in system suspend callback and runtime suspend callback. The suspend direct complete optimization leaves igb in runtime suspended state with wrong WoL setting during system suspend. To fix this, we need to disable suspend direct complete optimization to let igb always use suspend callback to set correct WoL during system suspend. Signed-off-by: Kai-Heng Feng Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher commit 094b0246a2ca2fe74cab89b7516aa736e5dc4679 Author: YueHaibing Date: Wed Feb 20 12:56:14 2019 +0000 scsi: mptfusion: remove set, but not used, variables Fixes gcc '-Wunused-but-set-variable' warning: drivers/message/fusion/mptspi.c: In function 'mptspi_writeIOCPage4': drivers/message/fusion/mptspi.c:262:9: warning: variable 'frameOffset' set but not used [-Wunused-but-set-variable] drivers/message/fusion/mptspi.c:261:9: warning: variable 'req_idx' set but not used [-Wunused-but-set-variable] They're never used and can be removed. Signed-off-by: YueHaibing Signed-off-by: Martin K. Petersen commit b0ddfe2bb2bd80b1090d5bf42bb65243b76d3b97 Author: Serhey Popovych Date: Thu Mar 29 17:51:36 2018 +0300 intel: correct return from set features callback According to comments in we should return either >0 or -errno from ->ndo_set_features() if changing dev->features by itself. Return 1 in such places to notify netdev_update_features() about applied changes in dev->features. Signed-off-by: Serhey Popovych Tested-by: Aaron Brown Signed-off-by: Jeff Kirsher commit b47b8618fc8a21281893015b639978e12c992a4a Author: Gustavo A. R. Silva Date: Mon Feb 11 16:45:30 2019 -0600 scsi: mptfusion: mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warning: drivers/message/fusion/mptbase.c: In function mptbase_reply : drivers/message/fusion/mptbase.c:643:6: warning: this statement may fall through [-Wimplicit-fallthrough=] if (event != MPI_EVENT_EVENT_CHANGE) ^ drivers/message/fusion/mptbase.c:646:2: note: here case MPI_FUNCTION_CONFIG: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 Notice that, in this particular case, the code comment is modified in accordance with what GCC is expecting to find. This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Martin K. Petersen commit 244830a0dcca133f452cdf8926b93ace912f83f4 Author: Colin Ian King Date: Thu Feb 7 12:44:07 2019 +0000 scsi: mptfusion: fix indentation issues There are several statements and code blocks there are incorrectly indented. Fix these. Signed-off-by: Colin Ian King Signed-off-by: Martin K. Petersen commit 64c40525849f4eb8e6c10b5bbba3c2a2e942bfa6 Author: YueHaibing Date: Tue Mar 19 23:39:06 2019 +0800 net: pasemi: Make pasemi_mac_init_module static Fix sparse warning: drivers/net/ethernet/pasemi/pasemi_mac.c:1842:5: warning: symbol 'pasemi_mac_init_module' was not declared. Should it be static? Signed-off-by: YueHaibing Signed-off-by: David S. Miller commit f2c43a624744a5fa24f6048965ba08137dc191f8 Author: Colin Ian King Date: Sat Feb 2 10:30:35 2019 +0000 scsi: mvsas: clean up a few indentation issues There are a few statements that are not indented correctly, so fix these. Also add empty line between variable declaration and first statements in functions. Also remove whitespace between * and mvi_dev to clean up a cppcheck warning. Signed-off-by: Colin Ian King Signed-off-by: Martin K. Petersen commit 9403cf2302588022d06f1878b072d3f6933021f0 Author: Guillaume Nault Date: Tue Mar 19 16:05:44 2019 +0100 tcp: free request sock directly upon TFO or syncookies error Since the request socket is created locally, it'd make more sense to use reqsk_free() instead of reqsk_put() in TFO and syncookies' error path. However, tcp_get_cookie_sock() may set ->rsk_refcnt before freeing the socket; tcp_conn_request() may also have non-null ->rsk_refcnt because of tcp_try_fastopen(). In both cases 'req' hasn't been exposed to the outside world and is safe to free immediately, but that'd trigger the WARN_ON_ONCE in reqsk_free(). Define __reqsk_free() for these situations where we know nobody's referencing the socket, even though ->rsk_refcnt might be non-null. Now we can consolidate the error path of tcp_get_cookie_sock() and tcp_conn_request(). Signed-off-by: Guillaume Nault Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 56dc6d6355744b1c890dd09a6627e0c492f83bb9 Author: YueHaibing Date: Tue Mar 19 22:59:46 2019 +0800 datagram: Make __skb_datagram_iter static Fix sparse warning: net/core/datagram.c:411:5: warning: symbol '__skb_datagram_iter' was not declared. Should it be static? Signed-off-by: YueHaibing Reviewed-by: Sagi Grimberg Signed-off-by: David S. Miller commit d2e993edbcaca293a62dcd8a357f2348c591811a Author: Colin Ian King Date: Wed Jan 23 13:10:04 2019 +0000 scsi: qlogicfas408: clean up a couple of indentation issues An if statement is indented correctly and an outb statement has a redundant empty comment and incorrect indentation. Fix these. Signed-off-by: Colin Ian King Signed-off-by: Martin K. Petersen commit 538abaf38e75857cbc0eda3b28994808878e3017 Author: YueHaibing Date: Tue Mar 19 22:46:41 2019 +0800 net: hns3: Make hclgevf_update_link_mode static Fix sparse warning: drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_main.c:407:6: warning: symbol 'hclgevf_update_link_mode' was not declared. Should it be static? Signed-off-by: YueHaibing Signed-off-by: David S. Miller commit d78e9a145a234163f51602a8b8b64f7d06062e56 Author: Colin Ian King Date: Wed Jan 23 12:53:19 2019 +0000 scsi: dpt_i2o: clean up indentation issues, remove spaces There are several lines where the indentation has an extra space, fix this by removing the spaces. Signed-off-by: Colin Ian King Signed-off-by: Martin K. Petersen commit a0cfa79f8470031a06f99172ae7163ceb12cb524 Author: YueHaibing Date: Tue Mar 19 22:42:37 2019 +0800 ibmveth: Make array ibmveth_stats static Fix sparse warning: drivers/net/ethernet/ibm/ibmveth.c:96:21: warning: symbol 'ibmveth_stats' was not declared. Should it be static? Signed-off-by: YueHaibing Signed-off-by: David S. Miller commit 93a77c11ae79e83988d4b7f2f3dd8252231e4cd2 Author: Eric Dumazet Date: Tue Mar 19 07:01:08 2019 -0700 tcp: add tcp_inet6_sk() helper TCP ipv6 fast path dereferences a pointer to get to the inet6 part of a tcp socket, but given the fixed memory placement, we can do better and avoid a possible cache line miss. This also reduces register pressure, since we let the compiler know about this memory placement. Signed-off-by: Eric Dumazet Signed-off-by: David S. Miller commit 22c0738b645246a90c423395372f25faf09b0625 Author: Colin Ian King Date: Tue Jan 22 15:10:30 2019 +0000 scsi: atp870u: clean up code style and indentation issues Clean up { brace to fix cppcheck warning. Remove some trailing spaces at end of a statement. Also clean up an indentation issue. Signed-off-by: Colin Ian King Signed-off-by: Martin K. Petersen commit 5ab99cf7d5e96e3b727c30e7a8524c976bd3723d Author: Krzysztof Kozlowski Date: Thu Mar 14 21:02:17 2019 +0100 ARM: dts: exynos: Always enable necessary APIO_1V8 and ABB_1V8 regulators on Arndale Octa The PVDD_APIO_1V8 (LDO2) and PVDD_ABB_1V8 (LDO8) regulators were turned off by Linux kernel as unused. However they supply critical parts of SoC so they should be always on: 1. PVDD_APIO_1V8 supplies SYS pins (gpx[0-3], PSHOLD), HDMI level shift, RTC, VDD1_12 (DRAM internal 1.8 V logic), pull-up for PMIC interrupt lines, TTL/UARTR level shift, reset pins and SW-TACT1 button. It also supplies unused blocks like VDDQ_SRAM (for SROM controller) and VDDQ_GPIO (gpm7, gpy7). The LDO2 cannot be turned off (S2MPS11 keeps it on anyway) so marking it "always-on" only reflects its real status. 2. PVDD_ABB_1V8 supplies Adaptive Body Bias Generator for ARM cores, memory and Mali (G3D). Signed-off-by: Krzysztof Kozlowski commit 9a435fb2291d583ae012d4e853bd9987b367bba1 Author: Krzysztof Kozlowski Date: Sat Mar 9 16:00:39 2019 +0100 ARM: dts: exynos: Extend the eMMC node on Arndale Octa Describe properly the MMC0 node (with attached embedded MMC memory) on Arndale Octa by: 1. Adding the regulator for host interface (although it still has to be "always-on" so the board with Linaro U-Boot will boot properly); 2. Using "non-removable" instead of "broken-cd" property, because eMMC is embedded into the board; 3. Adding support for HS200 v1.8 to indicate such support in host controller although this has no practical effect (embedded memory does not support it). Signed-off-by: Krzysztof Kozlowski commit f8d6ae0d27ec1e81e4be454e63bc96086bbf8e6b Author: Murilo Fossa Vicentini Date: Tue Mar 19 10:28:51 2019 -0300 ibmvnic: Report actual backing device speed and duplex values The ibmvnic driver currently reports a fixed value for both speed and duplex settings regardless of the actual backing device that is being used. By adding support to the QUERY_PHYS_PARMS command defined by the PAPR+ we can query the current physical port state and report the proper values for these feilds. Reported-by: Abdul Haleem Signed-off-by: Murilo Fossa Vicentini Reviewed-by: Mauro S. M. Rodrigues Signed-off-by: David S. Miller commit 3a6a6d0a8b660c9a075c981e40405cc67b145972 Author: Krzysztof Kozlowski Date: Sat Mar 9 16:00:38 2019 +0100 ARM: dts: exynos: Add support for UHS-I SD cards on Arndale Octa The Exynos5420's Mobile Storage Host supports SD cards in UHS-I standard (SD specification v3.0), with 1.8 V signaling in SD UHS DDR50. Adjust the regulator and add necessary capability properties. Change the SDR and DDR timings to match values in Insignal v3.4 Android kernel. Tested with SD UHS-I card in SD UHS DDR50 mode. Signed-off-by: Krzysztof Kozlowski commit 30082e7b3513ff6e8a6d5e97d72af7074bb767ee Author: Krzysztof Kozlowski Date: Sat Mar 9 16:00:37 2019 +0100 ARM: dts: exynos: Adjust ldo23 and ldo27 to lower levels on Arndale Octa Although on the schematics of Insignal Arndale Octa board the PVDD_MIFS_1V1 (ldo23) and PVDD_G3DS_1V0 (ldo27) are marked as 1.2 V, the vendor v3.4 Android kernel sets them lower. Also name suggests that they should work on 1.1 V and 1.0 V respectively, not 1.2 V. Signed-off-by: Krzysztof Kozlowski commit ddd90623ce26ea8f54892d8dc074ca136345c73a Author: Stanley Chu Date: Sat Mar 16 13:04:47 2019 +0800 scsi: ufs-mediatek: Add UFS support for Mediatek SoC chips This patch adds UFS support for MediaTek SoC chips. Signed-off-by: Stanley Chu Reviewed-by: Avri Altman Signed-off-by: Martin K. Petersen commit 1dfb86628dba6735baf5fe4d5b0486508ae63075 Author: Stanley Chu Date: Sat Mar 16 13:04:46 2019 +0800 scsi: phy: mediatek: Add UFS M-PHY driver Add UFS M-PHY driver on MediaTek chipsets. Signed-off-by: Stanley Chu Reviewed-by: Chunfeng Yun Signed-off-by: Martin K. Petersen commit e95424f009af2b2ba6f10b30c33977f2beb9a5ae Author: Stanley Chu Date: Sat Mar 16 13:04:45 2019 +0800 scsi: dt-bindings: ufs: Add document for ufs-mediatek Add UFS and UFS PHY node document for Mediatek SoC chips. Signed-off-by: Stanley Chu Reviewed-by: Rob Herring Signed-off-by: Martin K. Petersen commit 55a1fa9538bf88935cadf34df997c1189735648e Author: Stanley Chu Date: Sat Mar 16 13:04:44 2019 +0800 scsi: dt-bindings: phy: Add document for phy-mtk-ufs Add UFS M-PHY node document for MediaTek SoC chips. Signed-off-by: Stanley Chu Reviewed-by: Rob Herring Signed-off-by: Martin K. Petersen commit 0b1d96d515ef99ea244a372134538147144f490a Author: Stanley Chu Date: Sat Mar 16 13:04:43 2019 +0800 scsi: ufs-hisi: Re-factor ufshcd_get_pwr_dev_param ufshcd_get_pwr_dev_param function and ufs_dev_params struct have been relocated to ufs core. Switch ufs-hisi to the common interface. Signed-off-by: Stanley Chu Reviewed-by: Avri Altman Acked-by: Bean Huo Signed-off-by: Martin K. Petersen commit e4c0ee3f91d9916c13aaff0a87b5939c7f625caf Author: Stanley Chu Date: Sat Mar 16 13:04:42 2019 +0800 scsi: ufs-qcom: Re-factor ufshcd_get_pwr_dev_param ufshcd_get_pwr_dev_param function and ufs_dev_params struct have been relocated to ufs core. Switch ufs-qcom to the common interface. Signed-off-by: Stanley Chu Reviewed-by: Avri Altman Acked-by: Bean Huo Signed-off-by: Martin K. Petersen commit 58b60a9cb2521edfa2e1eb2abde56cab83fdebd3 Author: Stanley Chu Date: Sat Mar 16 13:04:41 2019 +0800 scsi: ufs: Introduce ufshcd_get_pwr_dev_param ufshcd_get_pwr_dev_param defines an interface for power mode management currently used by both ufs-qcom and ufs-hisi. Move the interface to ufs core so every driver can take advantage of it. Signed-off-by: Stanley Chu Reviewed-by: Avri Altman Acked-by: Bean Huo Signed-off-by: Martin K. Petersen commit c55c8edafa91139419ed011f7d036274ce96be0b Author: Hoang Le Date: Tue Mar 19 18:49:50 2019 +0700 tipc: smooth change between replicast and broadcast Currently, a multicast stream may start out using replicast, because there are few destinations, and then it should ideally switch to L2/broadcast IGMP/multicast when the number of destinations grows beyond a certain limit. The opposite should happen when the number decreases below the limit. To eliminate the risk of message reordering caused by method change, a sending socket must stick to a previously selected method until it enters an idle period of 5 seconds. Means there is a 5 seconds pause in the traffic from the sender socket. If the sender never makes such a pause, the method will never change, and transmission may become very inefficient as the cluster grows. With this commit, we allow such a switch between replicast and broadcast without any need for a traffic pause. Solution is to send a dummy message with only the header, also with the SYN bit set, via broadcast or replicast. For the data message, the SYN bit is set and sending via replicast or broadcast (inverse method with dummy). Then, at receiving side any messages follow first SYN bit message (data or dummy message), they will be held in deferred queue until another pair (dummy or data message) arrived in other link. v2: reverse christmas tree declaration Acked-by: Jon Maloy Signed-off-by: Hoang Le Signed-off-by: David S. Miller commit ff2ebbfba6186adf3964eb816f8f255c6e664dc4 Author: Hoang Le Date: Tue Mar 19 18:49:49 2019 +0700 tipc: introduce new capability flag for cluster As a preparation for introducing a smooth switching between replicast and broadcast method for multicast message, We have to introduce a new capability flag TIPC_MCAST_RBCTL to handle this new feature. During a cluster upgrade a node can come back with this new capabilities which also must be reflected in the cluster capabilities field. The new feature is only applicable if all node in the cluster supports this new capability. Acked-by: Jon Maloy Signed-off-by: Hoang Le Signed-off-by: David S. Miller commit 02ec6cafd78c2052283516afc74c309745d20271 Author: Hoang Le Date: Tue Mar 19 18:49:48 2019 +0700 tipc: support broadcast/replicast configurable for bc-link Currently, a multicast stream uses either broadcast or replicast as transmission method, based on the ratio between number of actual destinations nodes and cluster size. However, when an L2 interface (e.g., VXLAN) provides pseudo broadcast support, this becomes very inefficient, as it blindly replicates multicast packets to all cluster/subnet nodes, irrespective of whether they host actual target sockets or not. The TIPC multicast algorithm is able to distinguish real destination nodes from other nodes, and hence provides a smarter and more efficient method for transferring multicast messages than pseudo broadcast can do. Because of this, we now make it possible for users to force the broadcast link to permanently switch to using replicast, irrespective of which capabilities the bearer provides, or pretend to provide. Conversely, we also make it possible to force the broadcast link to always use true broadcast. While maybe less useful in deployed systems, this may at least be useful for testing the broadcast algorithm in small clusters. We retain the current AUTOSELECT ability, i.e., to let the broadcast link automatically select which algorithm to use, and to switch back and forth between broadcast and replicast as the ratio between destination node number and cluster size changes. This remains the default method. Furthermore, we make it possible to configure the threshold ratio for such switches. The default ratio is now set to 10%, down from 25% in the earlier implementation. Acked-by: Jon Maloy Signed-off-by: Hoang Le Signed-off-by: David S. Miller commit 34dc82257488ccbdfb6ecdd087b3c8b371e03ee3 Author: Sylwester Nawrocki Date: Wed Mar 6 11:40:56 2019 +0100 ARM: dts: exynos: Fix audio routing on Odroid XU3 Add missing audio routing entry for the capture stream, this change is required to fix audio recording on Odroid XU3/XU3-Lite. Fixes: 885b005d232c ("ARM: dts: exynos: Add support for secondary DAI to Odroid XU3") Cc: stable@vger.kernel.org Signed-off-by: Sylwester Nawrocki Signed-off-by: Krzysztof Kozlowski commit 6fe59b7eec391ad2e340f7727781cede099ab4c9 Author: Colin Ian King Date: Fri Mar 8 05:30:17 2019 -0500 media: em28xx-input: make const array addr_list static Don't populate the array addr_list on the stack but instead make it static. Makes the object code smaller by 20 bytes Before: text data bss dec hex filename^M 16929 3626 384 20939 51cb ../usb/em28xx/em28xx-input.o After: text data bss dec hex filename^M 16829 3706 384 20919 51b7 ../usb/em28xx/em28xx-input.o (gcc version 8.3.0, aarch64) Signed-off-by: Colin Ian King Signed-off-by: Sean Young Signed-off-by: Mauro Carvalho Chehab commit c51f3b7f25dedca3f988defeee9d07f04e4f5401 Author: Jose Alberto Reguero Date: Thu Mar 7 18:12:18 2019 -0500 media: dvb: Add support for the Avermedia TD310 This patch add support for Avermedia TD310 usb stick. Signed-off-by: Jose Alberto Reguero Signed-off-by: Sean Young Signed-off-by: Mauro Carvalho Chehab commit 1cb11bfaa1e0a5933fb56bdaa60beb18721a2e2d Author: Andreas Kemnade Date: Thu Mar 7 18:11:58 2019 -0500 media: dvb: init i2c already in it930x_frontend_attach i2c bus is already needed when the frontend is probed, so init it already in it930x_frontend_attach. That prevents errors like: si2168: probe of 6-0067 failed with error -5 Signed-off-by: Andreas Kemnade Signed-off-by: Jose Alberto Reguero Signed-off-by: Sean Young Signed-off-by: Mauro Carvalho Chehab commit 0ab34a08812a3334350dbaf69a018ee0ab3d2ddd Author: Kangjie Lu Date: Thu Dec 20 23:54:03 2018 -0500 media: si2165: fix a missing check of return value si2165_readreg8() may fail. Looking into si2165_readreg8(), we will find that "val_tmp" will be an uninitialized value when regmap_read() fails. "val_tmp" is then assigned to "val". So if si2165_readreg8() fails, "val" will be a random value. Further use will lead to undefined behaviors. The fix checks if si2165_readreg8() fails, and if so, returns its error code upstream. Signed-off-by: Kangjie Lu Reviewed-by: Matthias Schwarzott Tested-by: Matthias Schwarzott Signed-off-by: Sean Young Signed-off-by: Mauro Carvalho Chehab commit 56cd26b618855c9af48c8301aa6754ced8dd0beb Author: YueHaibing Date: Tue Mar 5 00:40:26 2019 -0500 media: serial_ir: Fix use-after-free in serial_ir_init_module Syzkaller report this: BUG: KASAN: use-after-free in sysfs_remove_file_ns+0x5f/0x70 fs/sysfs/file.c:468 Read of size 8 at addr ffff8881dc7ae030 by task syz-executor.0/6249 CPU: 1 PID: 6249 Comm: syz-executor.0 Not tainted 5.0.0-rc8+ #3 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0xfa/0x1ce lib/dump_stack.c:113 print_address_description+0x65/0x270 mm/kasan/report.c:187 kasan_report+0x149/0x18d mm/kasan/report.c:317 ? 0xffffffffc1728000 sysfs_remove_file_ns+0x5f/0x70 fs/sysfs/file.c:468 sysfs_remove_file include/linux/sysfs.h:519 [inline] driver_remove_file+0x40/0x50 drivers/base/driver.c:122 remove_bind_files drivers/base/bus.c:585 [inline] bus_remove_driver+0x186/0x220 drivers/base/bus.c:725 driver_unregister+0x6c/0xa0 drivers/base/driver.c:197 serial_ir_init_module+0x169/0x1000 [serial_ir] do_one_initcall+0xfa/0x5ca init/main.c:887 do_init_module+0x204/0x5f6 kernel/module.c:3460 load_module+0x66b2/0x8570 kernel/module.c:3808 __do_sys_finit_module+0x238/0x2a0 kernel/module.c:3902 do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x462e99 Code: f7 d8 64 89 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f9450132c58 EFLAGS: 00000246 ORIG_RAX: 0000000000000139 RAX: ffffffffffffffda RBX: 000000000073bf00 RCX: 0000000000462e99 RDX: 0000000000000000 RSI: 0000000020000100 RDI: 0000000000000003 RBP: 00007f9450132c70 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00007f94501336bc R13: 00000000004bcefa R14: 00000000006f6fb0 R15: 0000000000000004 Allocated by task 6249: set_track mm/kasan/common.c:85 [inline] __kasan_kmalloc.constprop.3+0xa0/0xd0 mm/kasan/common.c:495 kmalloc include/linux/slab.h:545 [inline] kzalloc include/linux/slab.h:740 [inline] bus_add_driver+0xc0/0x610 drivers/base/bus.c:651 driver_register+0x1bb/0x3f0 drivers/base/driver.c:170 serial_ir_init_module+0xe8/0x1000 [serial_ir] do_one_initcall+0xfa/0x5ca init/main.c:887 do_init_module+0x204/0x5f6 kernel/module.c:3460 load_module+0x66b2/0x8570 kernel/module.c:3808 __do_sys_finit_module+0x238/0x2a0 kernel/module.c:3902 do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe Freed by task 6249: set_track mm/kasan/common.c:85 [inline] __kasan_slab_free+0x130/0x180 mm/kasan/common.c:457 slab_free_hook mm/slub.c:1430 [inline] slab_free_freelist_hook mm/slub.c:1457 [inline] slab_free mm/slub.c:3005 [inline] kfree+0xe1/0x270 mm/slub.c:3957 kobject_cleanup lib/kobject.c:662 [inline] kobject_release lib/kobject.c:691 [inline] kref_put include/linux/kref.h:67 [inline] kobject_put+0x146/0x240 lib/kobject.c:708 bus_remove_driver+0x10e/0x220 drivers/base/bus.c:732 driver_unregister+0x6c/0xa0 drivers/base/driver.c:197 serial_ir_init_module+0x14c/0x1000 [serial_ir] do_one_initcall+0xfa/0x5ca init/main.c:887 do_init_module+0x204/0x5f6 kernel/module.c:3460 load_module+0x66b2/0x8570 kernel/module.c:3808 __do_sys_finit_module+0x238/0x2a0 kernel/module.c:3902 do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe The buggy address belongs to the object at ffff8881dc7ae000 which belongs to the cache kmalloc-256 of size 256 The buggy address is located 48 bytes inside of 256-byte region [ffff8881dc7ae000, ffff8881dc7ae100) The buggy address belongs to the page: page:ffffea000771eb80 count:1 mapcount:0 mapping:ffff8881f6c02e00 index:0x0 flags: 0x2fffc0000000200(slab) raw: 02fffc0000000200 ffffea0007d14800 0000000400000002 ffff8881f6c02e00 raw: 0000000000000000 00000000800c000c 00000001ffffffff 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff8881dc7adf00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff8881dc7adf80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >ffff8881dc7ae000: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ^ ffff8881dc7ae080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff8881dc7ae100: fc fc fc fc fc fc fc fc 00 00 00 00 00 00 00 00 There are already cleanup handlings in serial_ir_init error path, no need to call serial_ir_exit do it again in serial_ir_init_module, otherwise will trigger a use-after-free issue. Fixes: fa5dc29c1fcc ("[media] lirc_serial: move out of staging and rename to serial_ir") Reported-by: Hulk Robot Signed-off-by: YueHaibing Signed-off-by: Sean Young Signed-off-by: Mauro Carvalho Chehab commit 3c73b8a40d49f798d189f20b0f9ad4bff7766a0e Author: YueHaibing Date: Wed Feb 20 20:32:55 2019 -0500 media: rc: remove unused including Remove including that don't need it. Signed-off-by: YueHaibing Signed-off-by: Sean Young Signed-off-by: Mauro Carvalho Chehab commit a3d7f22ef34ec4206b50ee121384d5c8bebd5591 Author: Nicholas Mc Guire Date: Sat Jan 19 22:52:23 2019 -0500 media: cx23885: check allocation return Checking of kmalloc() seems to have been committed - as cx23885_dvb_register() is checking for != 0 return, returning -ENOMEM should be fine here. While at it address the coccicheck suggestion to move to kmemdup rather than using kmalloc+memcpy. Fixes: 46b21bbaa8a8 ("[media] Add support for DViCO FusionHDTV DVB-T Dual Express2") Signed-off-by: Nicholas Mc Guire Signed-off-by: Sean Young Signed-off-by: Mauro Carvalho Chehab commit 981fbe3da20a6f35f17977453bce7dfc1664d74f Author: James Hutchinson Date: Sun Jan 13 16:13:47 2019 -0500 media: m88ds3103: serialize reset messages in m88ds3103_set_frontend Ref: https://bugzilla.kernel.org/show_bug.cgi?id=199323 Users are experiencing problems with the DVBSky S960/S960C USB devices since the following commit: 9d659ae: ("locking/mutex: Add lock handoff to avoid starvation") The device malfunctions after running for an indeterminable period of time, and the problem can only be cleared by rebooting the machine. It is possible to encourage the problem to surface by blocking the signal to the LNB. Further debugging revealed the cause of the problem. In the following capture: - thread #1325 is running m88ds3103_set_frontend - thread #42 is running ts2020_stat_work a> [1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 07 80 [1325] usb 1-1: dvb_usb_v2_generic_io: <<< 08 [42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 68 3f [42] usb 1-1: dvb_usb_v2_generic_io: <<< 08 ff [42] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11 [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 [42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 60 3d [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 ff b> [1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 07 00 [1325] usb 1-1: dvb_usb_v2_generic_io: <<< 07 [42] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11 [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 [42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 60 21 [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 ff [42] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11 [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 [42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 60 66 [42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 ff [1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11 [1325] usb 1-1: dvb_usb_v2_generic_io: <<< 07 [1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 60 02 10 0b [1325] usb 1-1: dvb_usb_v2_generic_io: <<< 07 Two i2c messages are sent to perform a reset in m88ds3103_set_frontend: a. 0x07, 0x80 b. 0x07, 0x00 However, as shown in the capture, the regmap mutex is being handed over to another thread (ts2020_stat_work) in between these two messages. >From here, the device responds to every i2c message with an 07 message, and will only return to normal operation following a power cycle. Use regmap_multi_reg_write to group the two reset messages, ensuring both are processed before the regmap mutex is unlocked. Signed-off-by: James Hutchinson Reviewed-by: Antti Palosaari Signed-off-by: Sean Young Signed-off-by: Mauro Carvalho Chehab commit fdfa59cd63b184e1e96d51ff170fcac739bc6f6f Author: Stefan Brüns Date: Sat Jan 19 20:30:04 2019 -0500 media: dvbsky: Avoid leaking dvb frontend Commit 14f4eaeddabc ("media: dvbsky: fix driver unregister logic") fixed a use-after-free by removing the reference to the frontend after deleting the backing i2c device. This has the unfortunate side effect the frontend device is never freed in the dvb core leaving a dangling device, leading to errors when the dvb core tries to register the frontend after e.g. a replug as reported here: https://www.spinics.net/lists/linux-media/msg138181.html media: dvbsky: issues with DVBSky T680CI === [ 561.119145] sp2 8-0040: CIMaX SP2 successfully attached [ 561.119161] usb 2-3: DVB: registering adapter 0 frontend 0 (Silicon Labs Si2168)... [ 561.119174] sysfs: cannot create duplicate filename '/class/dvb/ dvb0.frontend0' === The use after free happened as dvb_usbv2_disconnect calls in this order: - dvb_usb_device::props->exit(...) - dvb_usbv2_adapter_frontend_exit(...) + if (fe) dvb_unregister_frontend(fe) + dvb_usb_device::props->frontend_detach(...) Moving the release of the i2c device from exit() to frontend_detach() avoids the dangling pointer access and allows the core to unregister the frontend. This was originally reported for a DVBSky T680CI, but it also affects the MyGica T230C. As all supported devices structure the registration/ unregistration identically, apply the change for all device types. Signed-off-by: Stefan Brüns Signed-off-by: Sean Young Signed-off-by: Mauro Carvalho Chehab commit ef4bb63dc1f7213c08e13f6943c69cd27f69e4a3 Author: Dan Carpenter Date: Wed Mar 6 02:27:43 2019 -0500 media: wl128x: Fix an error code in fm_download_firmware() We forgot to set "ret" on this error path. Fixes: e8454ff7b9a4 ("[media] drivers:media:radio: wl128x: FM Driver Common sources") Signed-off-by: Dan Carpenter Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit c1a65ebd05a9a6b9ae753fbc9f6ed2a8f0f4f09f Author: Mao Wenan Date: Mon Mar 11 10:37:39 2019 -0400 media: staging: davinci: drop pointless static qualifier in vpfe_resizer_init() There is no need to have the 'T *v' variable static since new value always be assigned before use it. Signed-off-by: Mao Wenan Reviewed-by: Dan Carpenter Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 5aeaccca30023c00d982dfa7bfd25b384523460a Author: Philip Yang Date: Mon Mar 4 14:41:03 2019 -0500 drm/amdgpu: support userptr cross VMAs case with HMM userptr may cross two VMAs if the forked child process (not call exec after fork) malloc buffer, then free it, and then malloc larger size buf, kerenl will create new VMA adjacent to old VMA which was cloned from parent process, some pages of userptr are in the first VMA, the rest pages are in the second VMA. HMM expects range only have one VMA, loop over all VMAs in the address range, create multiple ranges to handle this case. See is_mergeable_anon_vma in mm/mmap.c for details. Signed-off-by: Philip Yang Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher commit 3f7f41d706658f08240742787542cfff7673ea71 Author: claudiojpaz Date: Sat Mar 9 12:50:00 2019 -0500 media: staging: media: zoran: Fixes a checkpatch.pl error in videocodec.c ERROR: do not initialise statics to NULL Signed-off-by: claudiojpaz Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 386a68e78620c793ed1ba9bc5789b90c18be262a Author: Philip Yang Date: Mon Mar 4 14:10:12 2019 -0500 drm/amdkfd: support concurrent userptr update for HMM Userptr restore may have concurrent userptr invalidation after hmm_vma_fault adds the range to the hmm->ranges list, needs call hmm_vma_range_done to remove the range from hmm->ranges list first, then reschedule the restore worker. Otherwise hmm_vma_fault will add same range to the list, this will cause loop in the list because range->next point to range itself. Add function untrack_invalid_user_pages to reduce code duplication. Signed-off-by: Philip Yang Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher commit 1bd4e4ca7bb8f681ff4e2b05c97ce975ccd781d6 Author: Christian König Date: Wed Nov 7 13:55:01 2018 +0100 drm/amdgpu: stop evicting busy PDs/PTs Otherwise we won't be able to cleanly handle page faults. Signed-off-by: Christian König Reviewed-by: Chunming Zhou Signed-off-by: Alex Deucher commit 56753e73fb2ed232278eb69445cb72c6f54391c2 Author: Christian König Date: Thu Jan 10 16:48:23 2019 +0100 drm/amdgpu: wait for VM to become idle during flush Make sure that not only the entities are flush, but that we also wait for the HW to finish all processing. Signed-off-by: Christian König Reviewed-by: Chunming Zhou Signed-off-by: Alex Deucher commit 3119e7f43be172779019f282aed115b2ec0864fa Author: Christian König Date: Thu Jan 10 16:40:42 2019 +0100 drm/amdgpu: remove non-sense NULL ptr check It's a bug having a dead pointer in the IDR, silently returning is the worst we can do. Signed-off-by: Christian König Reviewed-by: Chunming Zhou Signed-off-by: Alex Deucher commit 04ed8459f3348f95c119569338e39294a8e02349 Author: Christian König Date: Wed Nov 7 13:55:01 2018 +0100 drm/amdgpu: remove chash Remove the chash implementation for now since it isn't used any more. Signed-off-by: Christian König Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher commit c1a8abd99da5a035f54cd7633b060033650ff3e0 Author: Christian König Date: Wed Nov 7 13:55:01 2018 +0100 drm/amdgpu: use ring/hash for fault handling on GMC9 v3 Further testing showed that the idea with the chash doesn't work as expected. Especially we can't predict when we can remove the entries from the hash again. So replace the chash with a ring buffer/hash mix where entries in the container age automatically based on their timestamp. v2: use ring buffer / hash mix v3: check the timeout to make sure all entries age Signed-off-by: Christian König Reviewed-by: Felix Kuehling (v2) Signed-off-by: Alex Deucher commit 8c65fe5fc81c37c98269389759bb1d90c4658953 Author: Christian König Date: Tue Mar 5 15:13:52 2019 +0100 drm/amdgpu: limit the number of IVs processed at once Only process a maximum of 32 IVs before writing back the RPTR. This improves hw handling when we get close to an overflow in the ring buffer. Signed-off-by: Christian König Reviewed-by: Michel Dänzer Signed-off-by: Alex Deucher commit b51cd19e48b72dd31831d8f00fbcf34444e69f68 Author: Christian König Date: Mon Mar 4 19:59:36 2019 +0100 drm/amdgpu: enable IH ring 1&2 for Vega20 as well That doesn't seem to have any negative effects. Signed-off-by: Christian König Acked-by: Chunming Zhou Signed-off-by: Alex Deucher commit 1ae64cec8ab7201487c1abcaee582b5333a6263b Author: Christian König Date: Wed Feb 27 15:05:20 2019 +0100 drm/amdgpu: enable IH doorbell for ring 1&2 on Vega The doorbells should already be reserved, just enable them. Signed-off-by: Christian König Acked-by: Chunming Zhou Signed-off-by: Alex Deucher commit 0133690e0d080a12d65fb8845cf42d381e6175ab Author: Christian König Date: Wed Feb 27 14:54:23 2019 +0100 drm/amdgpu: change Vega IH ring 1 config Disable overflow and enable full drain. This makes fault handling on ring 1 much more reliable since we don't generate back pressure any more. Signed-off-by: Christian König Acked-by: Chunming Zhou Signed-off-by: Alex Deucher commit 46846ba265583199ad84bcf6ec06443b098510ac Author: Nicholas Kazlauskas Date: Mon Mar 11 14:16:29 2019 -0400 drm/amdgpu: Only clear dumb buffers if ring is enabled The buffers should be cleared when possible but we also don't want buffer creation to fail in the rare case where the ring isn't ready during the call. This could happen during some suspend/resume sequences. Cc: Christian König Signed-off-by: Nicholas Kazlauskas Reviewed-by: Christian König Signed-off-by: Alex Deucher commit 95b1346872f80c0645e0a60b30a4e9dd37e66d0f Author: Nicholas Kazlauskas Date: Fri Mar 8 10:38:16 2019 -0500 drm/amdgpu: Clear VRAM for DRM dumb_create buffers The dumb_create API isn't intended for high performance rendering and it's more useful for userspace (ie. IGT) to have them precleared. The bonus here is that we also won't needlessly leak whatever was previously in VRAM, but it also probably wasn't sensitive if it was going through this API. Signed-off-by: Nicholas Kazlauskas Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 289d513b17e7484f21853f39a2df59ac6ed7994d Author: kbuild test robot Date: Wed Mar 6 13:26:11 2019 +0800 drm/amdgpu: fix semicolon.cocci warnings drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c:405:2-3: Unneeded semicolon drivers/gpu/drm/amd/amdgpu/amdgpu_ras.c:435:2-3: Unneeded semicolon Remove unneeded semicolon. Generated by: scripts/coccinelle/misc/semicolon.cocci CC: xinhui pan Signed-off-by: kbuild test robot Signed-off-by: Alex Deucher commit 108c6a6309c96a27010ff300c96ebba341cae44a Author: xinhui pan Date: Mon Mar 11 15:23:00 2019 +0800 drm/amdgpu: add new ras workflow control flags add ras post init function. Do some initialization after all IP have finished their late init. Add new member flags which will control the ras work flow. For now, vbios enable ras for us on boot. That might change in the future. So there should be a flag from vbios to tell us if ras is enabled or not on boot. Looks like there is no such info now. Other bits of the flags are reserved to control other parts of ras. Signed-off-by: xinhui pan Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit 5d0f903fe215e7f0fc790106827207f5185ea9b5 Author: xinhui pan Date: Tue Mar 12 17:15:57 2019 +0800 drm/amdgpu: let ras initialization a little noticeable add drm info output if ras initialized successfully. add ras atomfirmware sanity check. Signed-off-by: xinhui pan Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit 163def43e9a10ff834859e3b0bf04bcc71b90888 Author: xinhui pan Date: Mon Mar 11 19:34:23 2019 +0800 drm/amdgpu: Fix lockdep warning more gracely lockdep need a static key. Previously we set ignore bit to avoid the warning. Now call sysfs_attr_init to initialize the static key. Signed-off-by: xinhui pan Reviewed-and-Tested-by: Andrey Grodzovsky Signed-off-by: Alex Deucher commit b076296b0fb39f142bdc183d4bab91e7204c53bb Author: xinhui pan Date: Mon Mar 11 18:10:57 2019 +0800 drm/amdgpu: Fix ras debugfs data parse Unzero char is accepted by sscanf, so when data is structure but unexpectedly return error invalid; Signed-off-by: xinhui pan Reviewed-by: Feifei Xu Signed-off-by: Alex Deucher commit 5caf466a6e42beee88a707105975a1d2324b659c Author: xinhui pan Date: Mon Mar 11 14:12:40 2019 +0800 drm/amdgpu: add new member hw_supported Currently, it is not clear how ras is supported. Both software and hardware can set the supported. That is confusing. Fix it by adding new member hw_supported. Signed-off-by: xinhui pan Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit 2b9505e3539e9869214485d4df997f9ed23ec3fe Author: xinhui pan Date: Mon Mar 11 14:28:06 2019 +0800 drm/amdgpu: Fix warning when lockdep is enabled Set ignore bit to satisfy locpdep. Signed-off-by: xinhui pan Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit 54eb4ed6072bd7c11a0cc1f9433967fceabaa560 Author: xinhui pan Date: Mon Mar 11 12:17:14 2019 +0800 drm/amdgpu: Fix NULL pointer when ta is missing Ta is optional, so check if ta firmware is loaded or not. Signed-off-by: xinhui pan Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit 2f3940e992431f3fb58a57c5679e95ccb7c0cc9f Author: Evan Quan Date: Thu Mar 7 14:46:38 2019 +0800 drm/amdgpu: fix ras parameter descriptions The descriptions of modinfo wrongly show two parameters for each feature(see below). This patch can fix this incorrect outputs. parm: amdgpu_ras_enable:Enable RAS features on the GPU (0 = disable, 1 = enable, -1 = auto (default)) parm: ras_enable:int parm: amdgpu_ras_mask:Mask of RAS features to enable (default 0xffffffff), only valid when ras_enable == 1 parm: ras_mask:uint Signed-off-by: Evan Quan Reviewed-by: Alex Deucher Reviewed-by: xinhui pan Signed-off-by: Alex Deucher commit 1febb00ecb1af5093ff8442991965694af001467 Author: xinhui pan Date: Thu Mar 7 14:01:11 2019 +0800 drm/amdgpu: export both supported and enabled ras features Signed-off-by: xinhui pan Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit b404ae82558e45b1d841e07a1a0bded73fa451da Author: xinhui pan Date: Thu Mar 7 11:49:26 2019 +0800 drm/amdgpu: lookup vbios table to check ecc capability Signed-off-by: xinhui pan Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit f49ea9f8153638a435602cbc5a392d802d85816b Author: Hawking Zhang Date: Thu Mar 7 11:00:20 2019 +0800 drm/amdgpu: query sram ecc/ecc availability from atombios query sram ecc capability via amdgpu_atomfirmware_ecc_default_enabled query ecc availability via amdgpu_atomfirmware_sram_ecc_supported Signed-off-by: Hawking Zhang Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 8b6da23f511f8d85eb5330700b45b3f5c779ffdc Author: Hawking Zhang Date: Thu Mar 7 10:52:43 2019 +0800 drm/amdgpu: add atomfirmware helper function to query sram ecc caps sram ecc capability could be get from firmware_capability field in firmwareinfo table Signed-off-by: Hawking Zhang Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 511c4348cf7bb4d224e944e6d84a5bf8edacbfef Author: Hawking Zhang Date: Thu Mar 7 10:14:13 2019 +0800 drm/amdgpu: add atomfirmware helper function to query ecc status ecc default status (enabled or disabled) could be get from umc_config field in umc_info table Signed-off-by: Hawking Zhang Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit ed606ca3d30d2e73d566e087214274399ca016d3 Author: Hawking Zhang Date: Thu Mar 7 10:10:16 2019 +0800 drm/amdgpu: update atomfirmware header with ecc related members add new umc_info structures and new firmware_capability defines Signed-off-by: Hawking Zhang Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit acbbee015b017e8a07cff1b0f58b41c953fd9a56 Author: xinhui pan Date: Thu Mar 7 10:46:54 2019 +0800 drm/amdgpu: handle ras resume Suspend will put irq, so resume need get irq back. And in the same time, skip other ras initialization. Signed-off-by: xinhui pan Reviewed-by: Hawking Zhang Signed-off-by: Alex Deucher commit 9b54d2017687df9fa827faf9e4022973b87fc0ff Author: Eric Huang Date: Fri Jan 11 14:38:51 2019 -0500 drm/amdkfd: add RAS ECC event support (v3) RAS ECC event will combine with GPU reset event, due to ECC interrupts are caused by uncorrectable error that triggers GPU reset. v2: Fix misleading-indentation warning v3: fix build with CONFIG_HSA_AMD disabled Signed-off-by: Eric Huang Reviewed-by: Felix Kuehling Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 0dee45a25a63f7ded9f0f0bec41fe40e397aa438 Author: Eric Huang Date: Fri Jan 11 14:52:22 2019 -0500 drm/amdkfd: add RAS capabilities in topology for Vega20 (v2) It is to collaborate with HSA_CAPABILITY in libhsakmt. v2: squash in NULL pointer check Signed-off-by: Eric Huang Reviewed-by: Felix Kuehling Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 96ebb30732757b12aeb4289c8da1c24d83c379e9 Author: xinhui pan Date: Fri Mar 1 16:32:11 2019 +0800 drm/amdgpu: add human readable debugfs control support (v2) Currently, the debugfs control node can't parse bash-like commands. Now add such support for any tester that uses scripts. v2: squash in fixes for input validation Signed-off-by: xinhui pan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 138352e5752aa3e694951d70c8fe8730219f4edf Author: xinhui pan Date: Fri Mar 1 13:29:13 2019 +0800 drm/amdgpu: skip gpu reset when ras error occured gpu reset is not stable on vega20 A1. Signed-off-by: xinhui pan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 5cb771143ed9552c672b6e1d6a3005a435b54e44 Author: xinhui pan Date: Mon Dec 17 15:09:07 2018 +0800 drm/amdgpu: add ioctl query for enabled ras features (v2) Add a query for userspace to check which RAS features are enabled. v2: squash in warning fix Signed-off-by: xinhui pan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit ae363a212b145a0d4e0507e26e6c1b937181ec34 Author: xinhui pan Date: Mon Dec 17 14:31:12 2018 +0800 drm/amdgpu: Add a new flag to AMDGPU_CTX_OP_QUERY_STATE2 Add AMDGPU_CTX_QUERY2_FLAGS_RAS_CE/UE which indicate if any error happened between previous query and this query. Signed-off-by: xinhui pan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 791c47694f01663a69b5c61baf88be400e7881ad Author: xinhui pan Date: Wed Jan 23 19:03:25 2019 +0800 drm/amdgpu: enable ras on gmc9 Signed-off-by: xinhui pan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 760a1d55344d823287850466db893ed77e948803 Author: Feifei Xu Date: Fri Dec 7 17:52:20 2018 +0800 drm/amdgpu: enable ras on gfx9 (v2) Register ecc interrupts and ecc interrupt handler on gfx9. Add ras support on gfx9 v2: squash in warning fix Signed-off-by: Feifei Xu Signed-off-by: xinhui pan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 8cf12507d3bd40f2edc0539e855518b432eaf028 Author: xinhui pan Date: Wed Nov 28 21:14:56 2018 +0800 drm/amdgpu: enable ras on sdma4 register IH, enable ras features on sdma. create sysfs debugfs file for sdma. Signed-off-by: xinhui pan Signed-off-by: Feifei Xu Signed-off-by: Eric Huang Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 2be4c4a9d47844b83082458ae369efc7ca60b997 Author: xinhui pan Date: Mon Jan 21 20:33:48 2019 +0800 drm/amdgpu: reserve bad pages during recovery Mark vram pages with errors as bad and prevent the driver from using them. Signed-off-by: xinhui pan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 36ea1bd2d084e43d4aea890ff2f41054776a9416 Author: xinhui pan Date: Thu Jan 31 16:55:07 2019 +0800 drm/amdgpu: add debugfs ctrl node allow userspace enable/disable ras Signed-off-by: xinhui pan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit c030f2e4166c3f5597c7e7a70bcd9ab383695de4 Author: xinhui pan Date: Wed Oct 31 14:38:28 2018 +0800 drm/amdgpu: add amdgpu_ras.c to support ras (v2) add obj management. add feature control. add debugfs infrastructure. add sysfs infrastructure. add IH infrastructure. add recovery infrastructure. It is a framework. Other IPs need call amdgpu_ras_xxx function instead of psp_ras_xxx functions. v2: squash in warning fixes Signed-off-by: xinhui pan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit ea11421391e718a173f8dae96517e76531043a5c Author: xinhui pan Date: Wed Jan 23 11:35:31 2019 +0800 drm/amdgpu: add psp cmd submit timeout Signed-off-by: xinhui pan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 3ea8fb8c803ceb4afb642cc64e151317bd006b0b Author: xinhui pan Date: Wed Nov 14 18:06:33 2018 +0800 drm/amdgpu: add psp v11 ras callback Add trigger_error and cure_posion. Acked-by: Hawking Zhang Signed-off-by: xinhui pan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 5e5d3154575c42a4adaf4bcdec2b657f9e1e7644 Author: xinhui pan Date: Wed Nov 21 11:17:49 2018 +0800 drm/amdgpu: add psp ras subsystem infrastructure (v2) Add ras fw loading, init, terminate. Add ras cmd submit helper. Add ras feature enable/disable common function. v2: squash in unused variable warning fix Signed-off-by: xinhui pan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 7da674535da997c1d271a9cda522989f46909858 Author: xinhui pan Date: Tue Oct 30 13:44:46 2018 +0800 drm/amdgpu: add psp ras callback func and macro Define the driver side interface for ras ta. Acked-by: Hawking Zhang Signed-off-by: xinhui pan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 58b22e0b0ead2a4b5f3ec3d1375256d8601f7216 Author: xinhui pan Date: Tue Oct 30 13:44:46 2018 +0800 drm/amdgpu: add ta_ras_if.h Signed-off-by: xinhui pan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 1218252ff2bc7c7c4bcd182581995d688aa92b4f Author: xinhui pan Date: Thu Oct 25 14:35:13 2018 +0800 drm/amdgpu: add module parameters for ras Allow RAS feature enable/disable via boot parameter. Signed-off-by: xinhui pan Reviewed-by: Hawking Zhang Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 9b9ca62ddeec541bc7633410dacccefd96f0cc68 Author: xinhui pan Date: Tue Nov 20 10:22:36 2018 +0800 drm/amdgpu: export ta fw info Output the ta fw, aka xgmi/ras, via debugfs. Signed-off-by: xinhui pan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit c6eec902198c338a965ac3103c2bd13f432dfe26 Author: xinhui pan Date: Tue Nov 20 10:32:00 2018 +0800 drm/amdgpu: add ta ras fw info (v2) Add ras fw part, xgmi and ras fw are combined together in ta binary. Reading the data from the info is not implemented yet. v2: squash in "drm/amdgpu: fix NULL pointer when ta is missing" Signed-off-by: xinhui pan Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 1fb4f15548240df4f4bd9a855ee09942d6accc74 Author: Kevin Wang Date: Mon Mar 11 11:00:48 2019 +0800 drm/amd/powerplay: move the smc_if_version to asic file each asic may be has different smc if version, so move its to asic file to implement. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Signed-off-by: Alex Deucher commit 96e1b2c2f2639a83baaa61fed6ceccd76b99fa8b Author: Kevin Wang Date: Wed Mar 6 19:45:16 2019 +0800 drm/amd/powerplay: simplify sw-smu message map macro simplify macro of MSG_MAP for sw-smu Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Signed-off-by: Alex Deucher commit 83afe835eba5f43193efe0c97e8c7cad2415fee5 Author: Oak Zeng Date: Thu Mar 7 17:00:20 2019 -0600 drm/amdgpu: Cosmetic change for calling func amdgpu_gmc_vram_location Use function parameter mc as the second parameter of amdgpu_gmc_vram_location, so codes look more consistent. Signed-off-by: Oak Zeng Reviewed-by: Christian Konig Signed-off-by: Alex Deucher commit e0634e8d6b90b4be1287dde7e0688c70d4fef0a5 Author: Nicholas Kazlauskas Date: Mon Mar 11 09:38:35 2019 -0400 drm/amd/display: Fix plane address updates for video surface formats [Why] For new DC planes the correct plane address fields are filled based on whether the plane had a graphics or video format. However, when we perform stream and plane updates using DC we only ever fill in the graphics format fields. This causing corruption and hangs when using video surface formats like NV12 for planes. [How] Use the same logic everywhere we update dc_plane_address - always fill in the correct fields based on the surface format type. There are 3 places this is done: - Atomic check, during DC plane creation - Atomic commit, during plane prepare_fb - Atomic commit tail, during amdgpu_dm_commit_planes We use the fill_plane_tiling_attributes in all 3 locations and it already needs the address to update DCC attributes, so the surface address update logic can be moved into this helper. Signed-off-by: Nicholas Kazlauskas Reviewed-by: Leo Li Signed-off-by: Alex Deucher commit 533aed278afeaa68bb5d0600856ab02268cfa3b8 Author: Andrey Grodzovsky Date: Wed Mar 6 16:16:28 2019 -0500 drm/amdgpu: Move IB pool init and fini v2 Problem: Using SDMA for TLB invalidation in certain ASICs exposed a problem of IB pool not being ready while SDMA already up on Init and already shutt down while SDMA still running on Fini. This caused IB allocation failure. Temproary fix was commited into a bringup branch but this is the generic fix. Fix: Init IB pool rigth after GMC is ready but before SDMA is ready. Do th opposite for Fini. v2: Remove restriction on SDMA early init and move amdgpu_ib_pool_fini Reviewed-by: Christian König Signed-off-by: Andrey Grodzovsky Signed-off-by: Alex Deucher commit c6ade4ee7375c0bb47ba25be53918eaa842ae263 Author: David Francis Date: Thu Feb 21 15:04:05 2019 -0500 drm/amd/display: On DCN1, Wait for vupdate on cursor updates [Why] Cursor updates must acquire the pipe control lock to prevent vupdate from triggering in the middle of cursor programming. On DCN1 the pipe control lock prevents pageflips from occurring. This means that a cursor update right before vupdate can delay a pending pageflip [How] If the time until the next vupdate is less than a conservative estimate of the cursor programming time, wait until the vupdate has passed before locking. Signed-off-by: David Francis Reviewed-by: Harry Wentland Acked-by: Leo Li Acked-by: Nicholas Kazlauskas Signed-off-by: Alex Deucher commit 0dcdcc898234f87c996adb5de1496e3ec7da315b Author: Wenjing Liu Date: Sat Feb 23 16:07:45 2019 -0500 drm/amd/display: add i2c over aux failure handling [why] We will not retry when EDID read failure using i2c over aux [how] treat i2c over aux failure the same as defer Signed-off-by: Wenjing Liu Reviewed-by: David Francis Acked-by: Leo Li Signed-off-by: Alex Deucher commit 33d7598d7022eac064b48e42dd4ae3e1dc9b52cd Author: Jun Lei Date: Fri Feb 22 16:50:00 2019 -0500 drm/amd/display: fix up reference clock abstractions [why] "reference clock" is a very overloaded variable in DC and causes confusion as there are multiple sources of reference clock, which may be different values incorrect input values to DML will cause DCHUB to be programmed improperly and lead to hard to debug underflow issues [how] instead of using ref clock everywhere, specify WHICH ref clock: - xtalin - dccg refclk - dchub refclk these are all distinct values which may not be equal Signed-off-by: Jun Lei Reviewed-by: Yongqiang Sun Acked-by: David Francis Acked-by: Leo Li Signed-off-by: Alex Deucher commit d74004b694ea88fca0fd7929e7c6e30f9552460e Author: Nicholas Kazlauskas Date: Thu Feb 21 14:57:48 2019 -0500 drm/amd/display: Expose support for alpha blending on overlays [Why] The DRM overlay planes DM exposes support RGBA formats but are currently forced as fully opaque over whatever they overlay. [How] Expose DRM blending mode and alpha properties to userspace. The overlays exposed support per-pixel pre-multiplied alpha along with global plane opacity. Signed-off-by: Nicholas Kazlauskas Reviewed-by: Harry Wentland Acked-by: Leo Li Signed-off-by: Alex Deucher commit 42195a226bebe037f405576188240da9a1a5ff2c Author: Charlene Liu Date: Fri Feb 22 13:55:46 2019 -0500 drm/amd/display: add HW i2c arbitration with dmcu Signed-off-by: Charlene Liu Reviewed-by: Wenjing Liu Acked-by: Leo Li Signed-off-by: Alex Deucher commit 4966c3d9b8b45b40a9a444bcc699248fe31f101e Author: Jun Lei Date: Tue Feb 19 10:33:21 2019 -0500 drm/amd/display: implement bounding box update based on uclk breakdown [why] Actual breakdown of DPM level varies by SKU (for the same family) DC needs some ability to ammend pre-silicon numbers Signed-off-by: Jun Lei Reviewed-by: Tony Cheng Acked-by: Leo Li Signed-off-by: Alex Deucher commit 1c676a678fa7fe12135f69f744ad4e5919668771 Author: Aric Cyr Date: Fri Feb 22 17:02:14 2019 -0500 drm/amd/display: 3.2.21 Signed-off-by: Aric Cyr Reviewed-by: Aric Cyr Acked-by: Leo Li Signed-off-by: Alex Deucher commit 6aac37daeb6228cabbd62ed5a39a6eae835682c8 Author: Josip Pavic Date: Fri Feb 22 16:55:08 2019 -0500 drm/amd/display: reduce abm min reduction, deviation gain and contrast factor [Why] Increased power savings are desired for ABM 2.2. [How] Reduce the minimum reduction level, the deviation gain and the contrast factor to allow for more aggressive operation of the algorithm. Signed-off-by: Josip Pavic Reviewed-by: Anthony Koo Acked-by: Leo Li Signed-off-by: Alex Deucher commit 02553f57dcddc07a6770d391a54c7eabad59f391 Author: Eric Bernstein Date: Fri Feb 15 09:27:22 2019 -0500 drm/amd/display: Rename is_hdmi to is_hdmi_tmds type HDMI has TMDS and FRL signal types. Be specific about what is used. Signed-off-by: Eric Bernstein Reviewed-by: Nevenko Stupar Reviewed-by: Tony Cheng Acked-by: Leo Li Signed-off-by: Alex Deucher commit e6bddf6c67f9a3abf6f1ef75e52bc1cd228dfe4d Author: Wenjing Liu Date: Wed Feb 20 14:00:55 2019 -0500 drm/amd/display: add pipe lock during stream update [why] Stream update will adjust both info packets and stream params, need to make sure all things are applied togather. [how] add pipe lock during stream update Signed-off-by: Wenjing Liu Reviewed-by: Jun Lei Acked-by: Leo Li Signed-off-by: Alex Deucher commit 3af91bb15093dd2bf53114b74b333458a03de1c8 Author: Ken Chalmers Date: Fri Feb 15 09:31:52 2019 -0600 drm/amd/display: Increase DP blank timeout from 30 ms to 50 ms [Why] At 24 Hz, a frame is 41.7 ms, so a 30 ms wait can (and does often) timeout. [How] Bump timeout from 30 ms to 50 ms. Signed-off-by: Ken Chalmers Reviewed-by: Tony Cheng Acked-by: Leo Li Signed-off-by: Alex Deucher commit 30eb85ff422f1cf97ca35f37aef7a1cd77744cce Author: Yongqiang Sun Date: Fri Feb 15 17:05:43 2019 -0500 drm/amd/display: Combine field toggle macro and sequence write macro. [Why] field toggle write is actual field sequence write with the same field name. [How] Use REG_UPDATE_SEQ_2 for both sequence write and toggle. Rename REG_UPDATE_1by1_3 to REG_UPDATE_SEQ_3. Signed-off-by: Yongqiang Sun Reviewed-by: Tony Cheng Acked-by: Leo Li Signed-off-by: Alex Deucher commit 5d87a3fdceecd207a41213c0a94a7218c0ea6ce3 Author: SivapiriyanKumarasamy Date: Mon Sep 10 18:59:42 2018 -0400 drm/amd/display: Add PSR SMU Interrupt support [WHY] We have new bios capabilities enabling s0i2 entry on SMU interrupt. We want this interrupt to be fired on PSR transitions such that we enter s0i2 when entering PSR active. [HOW] Add code to send the SMU interrupt with the appropriate staticscreen flag when entering and exting PSR. Protect this code with a config flag since it currently impacts BL PWM. Signed-off-by: SivapiriyanKumarasamy Reviewed-by: Anthony Koo Acked-by: Leo Li Acked-by: Tony Cheng Signed-off-by: Alex Deucher commit 148cccf267531ca5165ae3a637e48948e6c26697 Author: Yongqiang Sun Date: Wed Feb 13 10:35:43 2019 -0500 drm/amd/display: Refactor reg_set and reg_update. [Why] Current reg update and reg set use same functions and only delta is update reads reg value and call update function. [How] Refactor reg update and reg set functions. 1.Implement different functions for reg update and reg set. 2.Wrap same process to a help function, both reg update and reg set will call it. Signed-off-by: Yongqiang Sun Reviewed-by: Tony Cheng Acked-by: Leo Li Signed-off-by: Alex Deucher commit 929c3aaa26ef69abdb5e5ec7af5eacd6f6687836 Author: Eric Bernstein Date: Wed Feb 13 17:56:38 2019 -0500 drm/amd/display: Free DCN version of stream encoder Cross a TODO item off the list. Cleanup SIGNAL_TYPE_HDMI_FRL, it's not currently supported. Signed-off-by: Eric Bernstein Reviewed-by: Dmytro Laktyushkin Acked-by: Leo Li Signed-off-by: Alex Deucher commit fbaf207f58cf06c0245a7a766e2e32559b1ed9a8 Author: Dmytro Laktyushkin Date: Mon Feb 11 17:18:41 2019 -0500 drm/amd/display: clean up dml_init_instance Get rid of DV style dml init in favour of the cleaner DC style. Signed-off-by: Dmytro Laktyushkin Reviewed-by: Charlene Liu Acked-by: Leo Li Signed-off-by: Alex Deucher commit 0c5ccf14f50431d0196b96025c878ae9f45676a9 Author: Evan Quan Date: Thu Mar 7 10:20:12 2019 +0800 drm/amd/powerplay: apply Vega20 BACO workaround Applied vdci flush workaround for Vega20 BACO. Signed-off-by: Evan Quan Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 9b638f9751308ae3ae8f28e0c6e9decffd97f5f9 Author: shaoyunl Date: Thu Feb 21 16:30:25 2019 -0500 drm/amdgpu: XGMI pstate switch initial support Driver vote low to high pstate switch whenever there is an outstanding XGMI mapping request. Driver vote high to low pstate when all the outstanding XGMI mapping is terminated. Signed-off-by: shaoyunl Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit a690aa0f459eba3e768257a655c82b24d14dcc88 Author: shaoyunl Date: Fri Feb 22 16:20:38 2019 -0500 drm/amdgpu: Enable XGMI mapping for peer device Adjust vram base offset for XGMI mapping when update the PT entry so the address will fall into correct XGMI aperture for peer device Signed-off-by: shaoyunl Reviewed-by: Christian König Signed-off-by: Alex Deucher commit b1fa8c89556e8d704e9a2e014151c47c64f02e06 Author: Andrey Grodzovsky Date: Tue Mar 5 10:39:08 2019 -0500 drm/amdgpu: Add sysfs entries for xgmi hive v2. For each device a file xgmi_device_id is created. On the first device a subdirectory named xgmi_hive_info is created, It contains a file named hive_id and symlinks named node 1-4 linking to each device in the hive. v2: Return error codes instead of '-1' and few misspellings. Signed-off-by: Andrey Grodzovsky Reviewed-by: Christian König Signed-off-by: Alex Deucher commit b5dcec9c90fdb3287cd465ee8d3fb00d33e1133d Author: Nicholas Kazlauskas Date: Tue Mar 5 12:24:08 2019 -0500 drm/amd/display: Don't ASSERT when total_planes == AMDGPU_MAX_PLANES [Why] Can happen on ASICs with 6 planes, but this isn't a bug since we haven't written outside the array. [How] Use <= instead of <. Cc: Leo Li Signed-off-by: Nicholas Kazlauskas Reported-by: Michel Dänzer Reviewed-by: Michel Dänzer Tested-by: Michel Dänzer Signed-off-by: Alex Deucher commit c33f53341790a130e68aafc70cc93916b061a709 Author: Nicholas Kazlauskas Date: Tue Mar 5 09:14:17 2019 -0500 drm/amd/display: Drop atomic_obj_lock for private obj [Why] New DRM versions manage locking for private objects for us, so this is no longer needed. This also prevents a WARN_ON from occurring when the private object is duplicated during the forced atomic commit that occurs from the HPD handler. The HPD handler calls drm_modeset_lock_all before the forced commit and if the private object is duplicated then the DEBUG_LOCKS_WARN_ON(ww_ctx->done_acquire) warning will be triggered since we're trying to lock something when everything should have already been locked. [How] Drop the lock and let DRM manage this. Cc: Harry Wentland Signed-off-by: Nicholas Kazlauskas Reviewed-by: Leo Li Signed-off-by: Alex Deucher commit 054d282d179eba78012a26dbd4e4f1b231c596f1 Author: Tom St Denis Date: Mon Mar 4 10:58:44 2019 -0500 drm/amd/amdgpu: Add ENGINE_CNTL register to vcn10 headers Signed-off-by: Tom St Denis Acked-by: Christian König Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 8ce1f7e7307bd99cc80703b22e7df6746d5f4ae8 Author: Christian König Date: Mon Feb 4 15:00:34 2019 +0100 drm/amdgpu: allow huge invalid mappings on GMC8 Only GMC9 supports true huge pages, but we can still free invalid mappings on GMC8. Signed-off-by: Christian König Reviewed-by: Felix Kuehling Acked-by: Huang Rui Signed-off-by: Alex Deucher commit adc7bfe50bd946b51a8a93ac15085cd218a2a9af Author: Christian König Date: Fri Feb 1 17:11:29 2019 +0100 drm/amdgpu: drop the huge page flag Not needed any more since we now free PDs/PTs on demand. Signed-off-by: Christian König Reviewed-by: Felix Kuehling Acked-by: Huang Rui Signed-off-by: Alex Deucher commit e35fb064d8d4de8ecea38dae48f04d0253e3d9be Author: Christian König Date: Fri Feb 1 14:02:10 2019 +0100 drm/amdgpu: free PDs/PTs on demand When something is unmapped we now free the affected PDs/PTs again. Signed-off-by: Christian König Reviewed-by: Felix Kuehling Acked-by: Huang Rui Signed-off-by: Alex Deucher commit 0ce15d6f7d3fb1162fd7de2829dbdf6d63a6a02a Author: Christian König Date: Wed Jan 30 16:07:29 2019 +0100 drm/amdgpu: allocate VM PDs/PTs on demand Let's start to allocate VM PDs/PTs on demand instead of pre-allocating them during mapping. Signed-off-by: Christian König Reviewed-by: Felix Kuehling Acked-by: Huang Rui Signed-off-by: Alex Deucher commit 780637cbdf8fd614cc85a01c6c810d9d28902a59 Author: Christian König Date: Thu Aug 16 10:49:41 2018 +0200 drm/amdgpu: let amdgpu_vm_clear_bo figure out ats status v2 Instead of providing it from outside figure out the ats status in the function itself from the data structures. v2: simplify finding the right level v3: partially revert changes from v2, more cleanup and split code into more functions. Signed-off-by: Christian König Reviewed-by: Felix Kuehling Acked-by: Huang Rui Signed-off-by: Alex Deucher commit 83cd83972260de1197a80724038c8a14ee7a38f0 Author: Christian König Date: Thu Aug 16 13:23:48 2018 +0200 drm/amdgpu: rework shadow handling during PD clear v3 This way we only deal with the real BO in here. v2: use a do { ... } while loop instead v3: fix NULL pointer in v2 Signed-off-by: Christian König Reviewed-by: Felix Kuehling Acked-by: Huang Rui Signed-off-by: Alex Deucher commit db65e887fea55ba3e5ce77f7b129a0cde0e1f050 Author: Likun Gao Date: Mon Mar 4 10:46:27 2019 +0800 drm/amd/powerplay: fix pcie sysfs interface when set wrong value The operation of mutex_unlock smu->mutex should be done when forced level is larger than NUM_LINK_LEVELS in the function of force_clk_levels. Reported-by: Julia Lawall Signed-off-by: Likun Gao Reviewed-by: Huang Rui Signed-off-by: Alex Deucher commit 24bf582e27a8ac5ffab6c2f1b9541ebaeb250a3d Author: kbuild test robot Date: Sat Mar 2 07:50:36 2019 +0100 drm/amd/powerplay: fix memdup.cocci warnings Simplify the code a bit by using kmemdup instead of kzalloc and memcpy. Generated by: scripts/coccinelle/api/memdup.cocci CC: Likun Gao Reviewed-by: Likun Gao Acked-by: Huang Rui Signed-off-by: kbuild test robot Signed-off-by: Julia Lawall Signed-off-by: Alex Deucher commit 49dc762cffd8305a861ca649e82dc5533b3e3344 Author: Arnd Bergmann Date: Tue Mar 5 08:29:48 2019 -0500 media: staging: davinci_vpfe: disallow building with COMPILE_TEST The driver should really call dm365_isif_setup_pinmux() through a callback, but uses a hack to include a davinci specific machine header file when compile testing instead. This works almost everywhere, but not on the ARM omap1 platform, which has another header named mach/mux.h. This causes a build failure: drivers/staging/media/davinci_vpfe/dm365_isif.c:2028:2: error: implicit declaration of function 'davinci_cfg_reg' [-Werror,-Wimplicit-function-declaration] davinci_cfg_reg(DM365_VIN_CAM_WEN); ^ drivers/staging/media/davinci_vpfe/dm365_isif.c:2028:2: error: this function declaration is not a prototype [-Werror,-Wstrict-prototypes] drivers/staging/media/davinci_vpfe/dm365_isif.c:2028:18: error: use of undeclared identifier 'DM365_VIN_CAM_WEN' davinci_cfg_reg(DM365_VIN_CAM_WEN); ^ drivers/staging/media/davinci_vpfe/dm365_isif.c:2029:18: error: use of undeclared identifier 'DM365_VIN_CAM_VD' davinci_cfg_reg(DM365_VIN_CAM_VD); ^ drivers/staging/media/davinci_vpfe/dm365_isif.c:2030:18: error: use of undeclared identifier 'DM365_VIN_CAM_HD' davinci_cfg_reg(DM365_VIN_CAM_HD); ^ drivers/staging/media/davinci_vpfe/dm365_isif.c:2031:18: error: use of undeclared identifier 'DM365_VIN_YIN4_7_EN' davinci_cfg_reg(DM365_VIN_YIN4_7_EN); ^ drivers/staging/media/davinci_vpfe/dm365_isif.c:2032:18: error: use of undeclared identifier 'DM365_VIN_YIN0_3_EN' davinci_cfg_reg(DM365_VIN_YIN0_3_EN); ^ 7 errors generated. Exclude omap1 from compile-testing, under the assumption that all others still work. Fixes: 4907c73deefe ("media: staging: davinci_vpfe: allow building with COMPILE_TEST") Signed-off-by: Arnd Bergmann Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 6685d515157c7d00461f0d0e77fe172d03817c87 Author: Arnd Bergmann Date: Tue Mar 5 08:23:13 2019 -0500 media: i2c: adv748x: select V4L2_FWNODE Building adv748x fails now unless V4L2_FWNODE is selected: drivers/media/i2c/adv748x/adv748x-core.o: In function `adv748x_probe': adv748x-core.c:(.text+0x1b2c): undefined reference to `v4l2_fwnode_endpoint_parse' Fixes: 6a18865da8e3 ("media: i2c: adv748x: store number of CSI-2 lanes described in device tree") Signed-off-by: Arnd Bergmann Reviewed-by: Laurent Pinchart Reviewed-by: Niklas Söderlund Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 629266bf7229cd6a550075f5961f95607b823b59 Author: Wen Yang Date: Tue Mar 5 19:33:54 2019 +0800 ARM: exynos: Fix a leaked reference by adding missing of_node_put The call to of_get_next_child returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with warnings like: arch/arm/mach-exynos/firmware.c:201:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 193, but without a corresponding object release within this function. Cc: stable@vger.kernel.org Signed-off-by: Wen Yang Signed-off-by: Krzysztof Kozlowski commit 55dde50946988db8d05f84d2ec7750140542730f Author: Steve Longerbeam Date: Fri Mar 1 18:27:17 2019 -0500 media: imx: vdic: Fix wrong CSI group ID The i.MX7 capture support forgot to change the group ID for the CSI to the IPU CSI in VDIC sub-device, it was left at the i.MX7 CSI group ID. Fixes: 67673ed55084 ("media: staging/imx: rearrange group id to take in account IPU") Signed-off-by: Steve Longerbeam Reviewed-by: Philipp Zabel Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 0576385acb89fdb361dbdbd62e7cfd0bc35bc6ba Author: YueHaibing Date: Wed Feb 27 00:57:23 2019 -0500 media: rockchip-vpu: Remove duplicated include from rockchip_vpu_drv.c Remove duplicated include. Signed-off-by: YueHaibing Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit e7dd89cef16021ad0dd5a590d3d2090bf65e3ec2 Author: Hans Petter Selasky Date: Fri Jan 25 08:01:46 2019 -0500 media: strscpy() returns a negative value on failure unlike strlcpy(). strscpy() returns a negative value on failure unlike strlcpy(), so fix the WARN_ON accordingly. Signed-off-by: Hans Petter Selasky Signed-off-by: Hans Verkuil [hverkuil-cisco@xs4all.nl: added commit message] Signed-off-by: Mauro Carvalho Chehab commit 6f3f3e11999b192e39404c49b584b7aca4cb1ecd Author: Helen Fornazier Date: Wed Mar 6 17:42:43 2019 -0500 media: vimc: stream: init/terminate the first entity The s_stream callback was not being called for the first entity in the stream pipeline array. Instead of verifying the type of the node (video or subdevice) and calling s_stream from the second entity in the pipeline, do this process for all the entities in the pipeline for consistency. The previous code was not a problem because the first entity is a video device and not a subdevice, but this patch prepares vimc to allow setting some configuration in the entity before calling s_stream. Signed-off-by: Helen Koike Tested-by: André Almeida Signed-off-by: Hans Verkuil [hverkuil-cisco@xs4all.nl: fix line-too-long warning] Signed-off-by: Mauro Carvalho Chehab commit 23c856787a80efd475c0d82c6e49a65c73561816 Author: Krzysztof Kozlowski Date: Sat Feb 23 21:29:32 2019 +0100 ARM: dts: exynos: Enable ADC on Arndale Octa Arndale Octa (Exynos5420) has two ADC pins (AIN0 and AIN1) exposed on CON6 header pins. Add ADC node to DTS file to enable it. Signed-off-by: Krzysztof Kozlowski commit b7ed69d67ff0788d8463e599dd5dd1b45c701a7e Author: Stuart Menefy Date: Tue Feb 19 13:03:37 2019 +0000 ARM: dts: exynos: Fix interrupt for shared EINTs on Exynos5260 Fix the interrupt information for the GPIO lines with a shared EINT interrupt. Fixes: 16d7ff2642e7 ("ARM: dts: add dts files for exynos5260 SoC") Cc: stable@vger.kernel.org Signed-off-by: Stuart Menefy Signed-off-by: Krzysztof Kozlowski commit 17750f5218764a06172a294b23275a950e2adce9 Author: Neil Armstrong Date: Thu Mar 7 15:14:54 2019 +0100 dt-bindings: clk: g12a-clkc: add PCIE PLL clock ID Add a clock ID for the reference clock feeding the USB3+PCIe Combo PHY. Signed-off-by: Neil Armstrong Acked-by: Jerome Brunet Link: https://lkml.kernel.org/r/20190307141455.23879-3-narmstrong@baylibre.com commit dc6276f57617344c9e78332c682ea1e982527e09 Author: Neil Armstrong Date: Mon Mar 4 11:53:58 2019 +0100 clk: g12a-aoclk: re-export CLKID_AO_SAR_ADC_SEL clock id When submitted v2 of the G12A AO-CLK IDs, the SAR_ADC_SEL ID was moved to the internal non-exported bindings, but this clock is necessary and mandatory for the SAR ADC bindings. Export it back to the public bindings. Fixes: be3d960b0aeb ("dt-bindings: clk: add G12A AO Clock and Reset Bindings") Signed-off-by: Neil Armstrong Acked-by: Jerome Brunet Link: https://lkml.kernel.org/r/20190304105358.4987-1-narmstrong@baylibre.com commit 4d8e3e951a856777720272ce27f2c738a3eeef8c Author: Marek Szyprowski Date: Mon Feb 18 15:34:12 2019 +0100 ARM: exynos: Fix undefined instruction during Exynos5422 resume During early system resume on Exynos5422 with performance counters enabled the following kernel oops happens: Internal error: Oops - undefined instruction: 0 [#1] PREEMPT SMP ARM Modules linked in: CPU: 0 PID: 1433 Comm: bash Tainted: G W 5.0.0-rc5-next-20190208-00023-gd5fb5a8a13e6-dirty #5480 Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) ... Flags: nZCv IRQs off FIQs off Mode SVC_32 ISA ARM Segment none Control: 10c5387d Table: 4451006a DAC: 00000051 Process bash (pid: 1433, stack limit = 0xb7e0e22f) ... (reset_ctrl_regs) from [] (dbg_cpu_pm_notify+0x1c/0x24) (dbg_cpu_pm_notify) from [] (notifier_call_chain+0x44/0x84) (notifier_call_chain) from [] (__atomic_notifier_call_chain+0x7c/0x128) (__atomic_notifier_call_chain) from [] (cpu_pm_notify+0x30/0x54) (cpu_pm_notify) from [] (syscore_resume+0x98/0x3f4) (syscore_resume) from [] (suspend_devices_and_enter+0x97c/0xe74) (suspend_devices_and_enter) from [] (pm_suspend+0x770/0xc04) (pm_suspend) from [] (state_store+0x6c/0xcc) (state_store) from [] (kobj_attr_store+0x14/0x20) (kobj_attr_store) from [] (sysfs_kf_write+0x4c/0x50) (sysfs_kf_write) from [] (kernfs_fop_write+0xfc/0x1e0) (kernfs_fop_write) from [] (__vfs_write+0x2c/0x160) (__vfs_write) from [] (vfs_write+0xa4/0x16c) (vfs_write) from [] (ksys_write+0x40/0x8c) (ksys_write) from [] (ret_fast_syscall+0x0/0x28) Undefined instruction is triggered during CP14 reset, because bits: #16 (Secure privileged invasive debug disabled) and #17 (Secure privileged noninvasive debug disable) are set in DSCR. Those bits depend on SPNIDEN and SPIDEN lines, which are provided by Secure JTAG hardware block. That block in turn is powered from cluster 0 (big/Eagle), but the Exynos5422 boots on cluster 1 (LITTLE/KFC). To fix this issue it is enough to turn on the power on the cluster 0 for a while. This lets the Secure JTAG block to propagate the needed signals to LITTLE/KFC cores and change their DSCR. Signed-off-by: Marek Szyprowski Signed-off-by: Krzysztof Kozlowski commit 58b5c8acba12fdf375dd30074c07730e67b97c3f Author: Neil Armstrong Date: Mon Mar 4 14:11:28 2019 +0100 clk: meson-g12a: add cpu clock bindings Add Amlogic G12A Family CPU clocks bindings, only export CPU_CLK since it should be the only ID used. Signed-off-by: Neil Armstrong Reviewed-by: Martin Blumenstingl Reviewed-by: Rob Herring Acked-by: Jerome Brunet Link: https://lkml.kernel.org/r/20190304131129.7762-2-narmstrong@baylibre.com commit 3a1f2f38fb82b7a3bc7351d7e38df5a1e9c901d2 Author: Joonyoung Shim Date: Mon Feb 18 15:34:11 2019 +0100 ARM: exynos: Add CPU state management for Exynos542x under secure firmware Add required CPU state management done via secure monitor call for Exynos542x running unsed Secure Firmware. Signed-off-by: Joonyoung Shim [mszyprow: rewrote code to use defines and sysram base address instead of the magic numbers, added second smc call in pm_resume, rephrased subject and commit message] Signed-off-by: Marek Szyprowski Signed-off-by: Krzysztof Kozlowski commit 47efaf6ba6971e669f198e8e60fe6e674b5020ac Author: Marek Szyprowski Date: Mon Feb 18 15:34:10 2019 +0100 ARM: exynos: Add Exynos SMC values for secure memory write Add defines for the (secure)-memory write for Exynos Secure Monitor Call. The values comes from the vendor kernel. Signed-off-by: Marek Szyprowski Signed-off-by: Krzysztof Kozlowski commit d38ca8f0f1a44c0ffe1cc746edf16b245e188ea5 Author: Colin Ian King Date: Sat Mar 2 22:16:58 2019 +0000 drm/amdgpu: fix missing assignment of error return code to variable ret An earlier commit replaced ttm_bo_wait with amdgpu_bo_sync_wait and removed the error return assignment to variable ret. Fix this by adding the assignment back. Also break line to clean up checkpatch overly long line warning. Detected by CoverityScan, CID#1477327 ("Logically dead code") Fixes: c60cd590cb7d ("drm/amdgpu: Replace ttm_bo_wait with amdgpu_bo_sync_wait") Signed-off-by: Colin Ian King Signed-off-by: Alex Deucher commit b849aaa41c914a0fd88003f88cb04420a873c624 Author: Christian König Date: Mon Mar 4 19:34:34 2019 +0100 drm/amdgpu: also reroute VMC and UMD to IH ring 1 on Vega 20 Same patch we alredy did for Vega10. Just re-route page faults to a separate ring to avoid drowning in interrupts. Signed-off-by: Christian König Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 516bc3d8dd7965f1a8a3ea453857f14d95971e62 Author: Christian König Date: Fri Nov 2 15:00:16 2018 +0100 drm/amdgpu: reroute VMC and UMD to IH ring 1 Page faults can easily overwhelm the interrupt handler. So to make sure that we never lose valuable interrupts on the primary ring we re-route page faults to IH ring 1. Signed-off-by: Christian König Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 59979bf8be1784ebfc44215031c6c88ca22ae65d Author: Murton Liu Date: Fri Feb 15 15:05:43 2019 -0500 drm/amd/display: Fix Divide by 0 in memory calculations Check if we get any values equal to 0, and set to 1 if so. Signed-off-by: Murton Liu Reviewed-by: Aric Cyr Acked-by: Bhawanpreet Lakha Acked-by: Sivapiriyan Kumarasamy Signed-off-by: Alex Deucher commit a427a886a8c7558a1d590d5f1530d59d54a7c9d2 Author: Tao Zhou Date: Fri Mar 1 14:01:04 2019 +0800 drm/amdgpu: add thick tile mode settings for Oland of gfx6 Adding thick tile mode for Oland to prevent UMD from getting mode value 0 Signed-off-by: Tao Zhou Tested-by: Hui.Deng Reviewed-by: Hawking Zhang Signed-off-by: Alex Deucher commit a7dc289b98fab0f1b057a3f8a01a5a251e02716b Author: Gustavo A. R. Silva Date: Fri Mar 1 14:58:32 2019 -0600 drm/amdgpu/gfx_v8_0: Mark expected switch fall-through In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. This patch fixes the following warning: drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c: In function ‘gfx_v8_0_tiling_mode_table_init’: ./include/linux/device.h:1487:2: warning: this statement may fall through [-Wimplicit-fallthrough=] _dev_warn(dev, dev_fmt(fmt), ##__VA_ARGS__) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c:3236:3: note: in expansion of macro ‘dev_warn’ dev_warn(adev->dev, ^~~~~~~~ drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c:3240:2: note: here case CHIP_CARRIZO: ^~~~ Warning level 3 was used: -Wimplicit-fallthrough=3 This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Alex Deucher commit 71ec90943876620f50f8d0ebaf305877667a069e Author: Jakub Wilk Date: Thu Feb 28 17:48:34 2019 +0100 drm/ttm: Fix spelling of "KiB" The symbol for binary prefix kibi is "Ki", with uppercase K. (In contrast, the symbol for decimal kilo is lowercase "k".) Signed-off-by: Jakub Wilk Signed-off-by: Alex Deucher commit 2a7821400f0f3c56fd6667c1a128afb0d70eac81 Author: Yang Wei Date: Thu Feb 28 22:48:04 2019 +0800 drm/amd/powerplay: fix semicolon code style issue Delete superfluous semicolons. Signed-off-by: Yang Wei Signed-off-by: Alex Deucher commit dff234d275be271d3dadfcd2e8b2d37c26e24fd0 Author: Huang Rui Date: Wed Feb 27 18:51:01 2019 +0800 drm/amd/powerplay: fix raven issue for sw smu Raven series doesn't support sw smu so far, so we have to add checking to confirm it return false while the asic is raven. Signed-off-by: Huang Rui Reviewed-by: Likun Gao Signed-off-by: Alex Deucher commit df8368be1382b442384507a5147c89978cd60702 Author: Nicholas Kazlauskas Date: Wed Feb 27 12:56:36 2019 -0500 drm/amdgpu: Bump amdgpu version for per-flip plane tiling updates To help xf86-video-amdgpu and mesa know DC supports updating the tiling attributes for a framebuffer per-flip. Cc: Michel Dänzer Signed-off-by: Nicholas Kazlauskas Acked-by: Alex Deucher Reviewed-by: Marek Olšák Signed-off-by: Alex Deucher commit a08ac5a62c0f8b29d110004d05b1554a8b8fd5f5 Author: Charlene Liu Date: Tue Feb 19 12:14:19 2019 -0500 drm/amd/display: Add pp_smu null pointer check res_pool->pp_smu may be NULL. Check before use Signed-off-by: Charlene Liu Reviewed-by: Krunoslav Kovac Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 69226e9c7d4e721c683bac7fef4c613a71a3508d Author: Aric Cyr Date: Fri Feb 15 15:14:37 2019 -0500 drm/amd/display: 3.2.20 Signed-off-by: Aric Cyr Reviewed-by: Aric Cyr Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 07d6a199219562834757ac72c28f3836b4e85694 Author: Anthony Koo Date: Fri Feb 15 14:19:30 2019 -0500 drm/amd/display: Fix soft hang issue when some DPCD data invalid [Why] AUX transaction returns success, but data has invalid lane count and rate which when passed to VBIOS command table causes it to soft hang [How] Do some sanity checking and fail if the DPCD caps are invalid. Signed-off-by: Anthony Koo Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 09e5665adafa4b00e04acbaa96c73532942f09b3 Author: Nicholas Kazlauskas Date: Mon Jan 28 11:02:08 2019 -0500 drm/amd/display: Update plane tiling attributes for stream updates [Why] Tiling and DCC attributes can change when swapping framebuffers but these will only ever get updated on full commits where state->allow_modeset is true. But for the page-flip IOCTL state->allow_modeset = false so these aren't updated and DCC changes aren't being programmed. [How] Split out updating the tiling and DCC attributes into its own function that's called when creating the plane for the first time but also called when switching framebuffers before commit stream updates. These functions also don't modify the plane state directly since the plane state being used as reference is often the current one being used by the hardware. DC needs to be able to compare plane_state to the stream update structures to determine if the hardware programming should happen. If it's modified in place then nothing will be programmed and we can run into concurrency issues. Signed-off-by: Nicholas Kazlauskas Reviewed-by: Harry Wentland Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit f91813992c343272813e707343b50f8d06383659 Author: David Francis Date: Mon Feb 11 14:15:19 2019 -0500 drm/amd/display: Re-add custom degamma support [Why] The dc_gamma_type CUSTOM_GAMMA is used to represent degamma mappings passed in by drm. This type of gamma must be interpolated into a transfer function by apply_1d_lut. The line in mod_color_calculate_degamma_params that handled this case was erroneously removed. [How] For CUSTOM_GAMMA degamma, calculate the lut as before. Signed-off-by: David Francis Reviewed-by: Krunoslav Kovac Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 87d44f62d51fddce9dd7c0a7badc3e6723b30e9d Author: Charlene Liu Date: Wed Feb 13 19:48:31 2019 -0500 Revert "drm/amd/display: dcn add check surface in_use" This reverts commit 6bff1cc7780cca2fd2a775aa7b18b789e2a1b608. [Description] Revert since this will be checked at CP side. Signed-off-by: Charlene Liu Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 162f807858d15bde60cf373a3ad46e03200ad9d8 Author: Martin Leung Date: Wed Feb 13 17:06:31 2019 -0500 drm/amd/display: half bandwidth for YCbCr420 during validation [Why] used to be unable to run 4:2:0 if using a dongle because 4k60 bandwidth exceeded dongle caps [How] half pixel clock during comparison to dongle cap. *Could get stuck on black screen on monitor that don't support 420 but will be selecting 420 as preferred mode* Signed-off-by: Martin Leung Reviewed-by: Wenjing Liu Acked-by: Aidan Wood Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 46570f090469c8c453622523ae5ccede256148f5 Author: Anthony Koo Date: Fri Feb 8 20:50:51 2019 -0500 drm/amd/display: Keep clocks high before seamless boot done [Why] UEFI boot usually uses a boot profile that uses higher clocks and watermark settings. UEFI boot surface is less optimal, for example it uses linear surface [How] Before we finish our seamless boot sequence, keep the clock and watermark settings from boot. Update to optimal settings only after first flip away from UEFI frame buffer. Signed-off-by: Anthony Koo Reviewed-by: Aric Cyr Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit f5031000603fc528034abe208230dbc6a733a95b Author: David Francis Date: Wed Feb 13 13:20:11 2019 -0500 drm/amd/display: Refactor pageflips plane commit [Why] commit_planes is indented quite far [How] Move the pageflip code from an if statement to after a continue Signed-off-by: David Francis Reviewed-by: Nicholas Kazlauskas Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 34bafd27e3429fe0d7422ef4a6f7deaf70151583 Author: David Francis Date: Wed Feb 6 14:01:29 2019 -0500 drm/amd/display: Allow pflips from a framebuffer to itself [Why] IGT expects that pageflips can be triggered with the same framebuffer before and after the commit [How] Expand the definition of pageflip to include any change with an old framebuffer and a new framebuffer, even if they're the same Signed-off-by: David Francis Reviewed-by: Nicholas Kazlauskas Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 0d579c7e25f514bc6e6db0a5e03d827718c1e4ac Author: Nicholas Kazlauskas Date: Fri Jan 18 13:57:14 2019 -0500 drm/amd/display: Create overlay planes [Why] Raven has support for combining pipes for DRM_PLANE_TYPE_OVERLAY use but no overlays are exposed to userspace. [How] Expose overlay planes based on DC plane caps. If all the pipes are in use then the atomic commits can fail, but this is expected behavior for userspace. Only support RGB on overlays for now. Signed-off-by: Nicholas Kazlauskas Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit b2fddb136d2fefc30ccf2c317db68c743a8a66ee Author: Nicholas Kazlauskas Date: Fri Jan 18 13:42:34 2019 -0500 drm/amd/display: Drop underlay plane support [Why] Primary and underlay planes were previously exposed to DRM by using max_planes and max_slave_planes. The value for max_planes was always pipe_count + has_underlay. If there was an underlay pipe, then max_slave_planes = 1. Raven has pipe_count = 4, max_planes = 4, and max_slave_planes = 1. So during plane initialziation it was actually "creating" 1 overlay plane and 3 primary planes... or it would be, had its plane_type array not been dm_plane_type_default, which will only create DRM_PLANE_TYPE_PRIMARY planes. We can expose primary planes as supporting more than one CRTC at a time to more closely resemble plane behavior on DCN but userspace doesn't really expect planes to be used in this manner and will either ignore the planes or crash. Planes with index greater than max_streams are marked as supporting all CRTCs. No ASIC currently has primary plane count greater than the stream count but we shouldn't expose more than necessary. [How] Drop support for underlay planes. They aren't well tested and don't fully work right at the moment. Only create one primary plane per CRTC so we're not creating overlays. Initialize plane types directly instead of referencing a misleading array of plane types. Signed-off-by: Nicholas Kazlauskas Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit e5c419709097e77e7f14a751591ea05f04cf5570 Author: Nicholas Kazlauskas Date: Tue Feb 5 12:50:01 2019 -0500 drm/amd/display: Add plane capabilities to dc_caps [Why] The current dc_caps doesn't provide the information needed to determine the count and type of each plane to be exposed to userspace. There are three types of DRM planes that are exposed to userspace: 1. Primary planes (can be used for modesetting) 2. Overlay planes (can be blended below or above a primary plane) 3. Cursor planes (blended topmost) We need to know the number and type of each in amdgpu_dm to expose to userspace. Hardware supports blending planes below, above or both ways depending on the ASIC. Alpha support is also ASIC dependent. Some hardware has dedicated pipes for overlays and other hardware combines the pipes. All of this should be exposed in a way that DM can query and use. [How] Introduce the dc_plane_cap structure that describes the capabilities for the hw planes. It describes: - the type of the plane - whether the plane can blend with planes below it - whether the plane can blend with planes above it - whether the plane supports per pixel alpha blending - supported formats on the plane (partial list for now) Pre DCN ASICs don't have their full capabilities described for now. They can be updated as needed in the future. Signed-off-by: Nicholas Kazlauskas Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit b9952f93cd2cf5fca82b06a8179c0f5f7b769e83 Author: Nicholas Kazlauskas Date: Fri Feb 8 13:21:05 2019 -0500 drm/amd/display: Set stream->mode_changed when connectors change [Why] The kms_plane@plane-position-covered-pipe-*-planes subtests can produce a sequence of atomic commits such that neither active_changed nor mode_changed but connectors_changed. When this happens we remove the old stream from the context and add a new stream but the new stream doesn't have mode_changed=true set. This incorrect programming sequence causes CRC mismatches to occur in the test. The stream->mode_changed value should be set whenever a new stream is created. [How] A new stream is created whenever drm_atomic_crtc_needs_modeset is true. We previously covered the active_changed and mode_changed conditions for the CRTC but connectors_changed is also checked within drm_atomic_crtc_needs_modeset. So just use drm_atomic_crtc_needs_modeset directly to determine the mode_changed flag. Signed-off-by: Nicholas Kazlauskas Reviewed-by: Sun peng Li Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 8ae5b1d78d4acbe9755570f26703962877f9108a Author: Thomas Lim Date: Wed Jan 16 15:56:56 2019 -0500 drm/amd/display: Respect aux return values [Why] The new aux implementation was not up to spec. This caused us to fail DP compliance as well as introduced serious delays during system resume. [How] Make dce_aux_transfer_raw return the operation result Make dce_aux_transfer_with_retries delay with udelay instead of msleep, and only on invalid reply. Also fail on the second invalid reply, third timeout, or first of any other error Convert return values to drm error codes in amdgpu_dm As the two aux transfer functions are now noticeably different, change the names to better reflect their functionality and document. There was one last call to dc_link_aux_transfer that should have retries, fix that Signed-off-by: David Francis Signed-off-by: Thomas Lim Reviewed-by: David Francis Acked-by: Bhawanpreet Lakha Acked-by: Eric Yang Signed-off-by: Alex Deucher commit 7cef6a120ec4d04c204b2caac226af473b67e410 Author: Tyler DiBattista Date: Mon Feb 11 11:22:49 2019 -0500 drm/amd/display: Add function to create 4d19 fixed point [Why] Implemented for future use Signed-off-by: Tyler DiBattista Reviewed-by: Eric Bernstein Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit e85c2d63a1c480c3e961a301c8c7691dc0bb841b Author: Jun Lei Date: Tue Feb 12 12:09:24 2019 -0500 drm/amd/display: add full update commit hint struct In some cases we might need to do a full update. Add a commit_hints struct for future use Signed-off-by: Jun Lei Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 9cc032b239399a43290bb203b399d0ab3ec81e27 Author: Martin Tsai Date: Mon Feb 11 15:26:21 2019 +0800 drm/amd/display: Poll pending DOWN_REP before enabling the link [Why] With special monitor combination on MST, the UP_REQ could come after clear payload table. It makes the pending DOWN_REP fail to be handled after link training and the new DOWN_REQ will be queued until time out . [How] To move the current polling pending DOWN_REP procedure to after clear payload table to make sure the pending DOWN_REP can be done before enabling the link. Signed-off-by: Martin Tsai Reviewed-by: Tony Cheng Acked-by: Bhawanpreet Lakha Signed-off-by: Alex Deucher commit 55c374e9eb72be0de5d4fe2ef4d7803cd4ea6329 Author: Kent Russell Date: Thu Feb 28 07:05:02 2019 -0500 drm/amdgpu: Add sysfs files for returning VRAM/GTT info v2 Add 6 files that return (in bytes): The total amount of VRAM/visible VRAM/GTT and the current total used VRAM/visible VRAM/GTT v2: Split used and total into separate files Reviewed-by: Christian König Signed-off-by: Kent Russell Signed-off-by: Alex Deucher commit 07740adcbcd326060e142f6af674a036a5106c6f Author: Likun Gao Date: Fri Feb 1 13:22:33 2019 +0800 drm/amd/powerplay: add od condition for power limit Add condition to judge whether overdrive is enabled and correct power limit value for overdrive used by power limit interface. Signed-off-by: Likun Gao Reviewed-by: Kevin Wang Reviewed-by: Alex Deucher Reviewed-by: Huang Rui Signed-off-by: Alex Deucher commit 3b94fb101f4071da2b555632d8d68a353a9dde79 Author: Likun Gao Date: Thu Jan 31 14:11:04 2019 +0800 drm/amd/powerplay: add limit of pp_feature for smu (v3) Move pp_feature from the struct of amd_powerplay to amdgpu_device. Add pp_feature limit for overdrive interface. v2: put pp_feature into struct amdgpu_pm. v3: merge feature_mask with pp_feature. Signed-off-by: Likun Gao Reviewed-by: Kevin Wang Suggested-by: Alex Deucher Suggested-by: Huang Rui Reviewed-by: Alex Deucher Reviewed-by: Huang Rui Signed-off-by: Alex Deucher commit a8394cfa42335f0d634be5715bcca51caa178f6a Author: Huang Rui Date: Mon Feb 25 14:46:03 2019 +0800 drm/amd/powerplay: use REG32_PCIE wrapper instead for sw smu This patch uses REG32_PCIE wrapper instead of writting pci_index2 and reading pci_data2. This sequence should be protected by pcie_idx_lock. Signed-off-by: Huang Rui Reviewed-by: Hawking Zhang Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 04cfc0c80d8a9a727929b589954757823c22e445 Author: Huang Rui Date: Mon Feb 25 19:43:00 2019 +0800 drm/amd/powerplay: fix the issue of checking on message mapping The vega20_message_map[index] scope should be in PPSMC_Message_Count not in SMU_MSG_MAX_COUNT. Signed-off-by: Huang Rui Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit d4631cba9ebe6743df123e7c99372dfb2f840d1f Author: Huang Rui Date: Wed Feb 20 19:58:11 2019 +0800 drm/amd/powerplay: move setting allowed mask and feature enabling together This patch moves setting allowed mask and feature enabling together to refine the programming sequence. Signed-off-by: Huang Rui Reviewed-by: Hawking Zhang Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 2dd1209e5760686efbf17fc6564fa58e8bb59ad1 Author: Huang Rui Date: Tue Feb 12 15:39:44 2019 +0800 drm/amd/powerplay: fix byte alignment issue of smu11 pptable The smu_11_0_powerplay_table, smu_11_0_power_saving_clock_table, and smu_11_0_overdrive_table need byte alignment. So we must add packed attribute in the definitions. Signed-off-by: Huang Rui Acked-by: Alex Deucher Reviewed-by: Kenneth Feng Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 4322e4c251c977592ab0b03b13f09aac1eed1df9 Author: Huang Rui Date: Thu Jan 31 21:09:00 2019 +0800 drm/amd/powerplay: fix smc messsage index report We actually want to know the index of PPSMC_MSG. Signed-off-by: Huang Rui Reviewed-by: Hawking Zhang Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 1aae3164351e352d13328a71f45703fb0b00820c Author: Likun Gao Date: Thu Feb 21 11:09:31 2019 +0800 drm/amd/powerplay: support sysfs to set/get pcie Add sys interface to set and get pcie info for smu. Signed-off-by: Likun Gao Reviewed-by: Gui Chengming Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 24e141e1a6f27925a9439169ff0b83bbc2329d63 Author: Likun Gao Date: Thu Feb 21 16:50:23 2019 +0800 drm/amd/powerplay: add override pcie parameters PCIE parameters should be override to fix the conflict between the ASIC capabilities and the system capabilities. Signed-off-by: Likun Gao Reviewed-by: Gui Chengming Reviewed-by: Huang Rui Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 4b77faaf8c3be77a3f435333d62905989f0a3a40 Author: Likun Gao Date: Wed Feb 20 13:42:55 2019 +0800 drm/amd/powerplay: support sysfs to set socclk, fclk, dcefclk Add sys interface to set socclk, fclk and dcefclk for smu. Add feature_mask parameter for smu_upload_dpm_level as socclk, fclk and dcefclk have dependency, without feature_mask to point out specific clk will make it fail to set some clk. Fix the function of smu_unforce_dpm_levels. Signed-off-by: Likun Gao Reviewed-by: Gui Chengming Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 0967610142275c3aa1b73d923505cb8e73916af5 Author: Likun Gao Date: Tue Feb 19 18:18:46 2019 +0800 drm/amd/powerplay: support sysfs to get socclk, fclk, dcefclk Add sys interface to get socclk, fclk and dcefclk for smu. Signed-off-by: Likun Gao Reviewed-by: Gui Chengming Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit f067499b4862c053a8971461d0d937e173690ddf Author: Likun Gao Date: Fri Feb 15 15:47:26 2019 +0800 drm/amd/powerplay: add condition for smc table hw init Smc table hw init should be skipped for suspend/resume when dpm running. Unified feature enable and disable function into smu_system_features_control. Signed-off-by: Likun Gao Reviewed-by: Kenneth Feng Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 4733cc7244c2f18292dbb78ba88dfee35b73ff67 Author: Likun Gao Date: Thu Feb 14 18:35:14 2019 +0800 drm/amd/powerplay: add suspend and resume function for smu Functional the function of smu suspend and resume. Modified the function of smu_smc_table_hw_init to make it useful for smu resume. Signed-off-by: Likun Gao Reviewed-by: Kenneth Feng Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 9ebbc1bb02c0ed03db9113d5b63011041e5870b3 Author: Chengming Gui Date: Thu Feb 14 15:28:23 2019 +0800 drm/amd/powerplay: add is_dpm_running for SMU11 add is_dpm_running function to support smu s3 case. Signed-off-by: Chengming Gui Reviewed-by: Huang Rui Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit bee71d26d2233961dc6c8d18fce0ecf38905cd45 Author: Chengming Gui Date: Wed Jan 30 11:38:55 2019 +0800 drm/amd/powerplay: add smu_late_init for SMU11. add smu_late_init to complete smu init sequence for SMU11. Signed-off-by: Chengming Gui Reviewed-by: Likun Gao Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit cbbf388fa26bff77e2a1be56dadee1eb41aa110d Author: Likun Gao Date: Mon Jan 28 12:19:57 2019 +0800 drm/amd/powerplay: set dpm table of vclk/dclk/eclk for smu11 (v2) Set default dpm table fo vclk, dclk and eclk. Open clk adjust rules for vclk, dclk. v2: Open clk adjust rules for eclk. Signed-off-by: Likun Gao Reviewed-by: Huang Rui Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 83e21f5754b0dd1f60541cb28672ff6e7b8261a3 Author: Likun Gao Date: Mon Jan 28 12:04:46 2019 +0800 drm/amd/powerplay: get eclk/vclk/dclk for smu11 Get eclk, vclk and dclk info from vbios when hw init for smu11. Signed-off-by: Likun Gao Reviewed-by: Huang Rui Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 96026ce0199c4c0c3d19dd0673dcbaf55e2897d3 Author: Likun Gao Date: Fri Jan 25 17:45:24 2019 +0800 drm/amd/powerplay: set fan target interface for hwmon Add fan1_target set interface to set fan speed for hwmon. Signed-off-by: Likun Gao Reviewed-by: Kevin Wang Reviewed-by: Huang Rui Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit da5f18e8e8cbafe722c679803cd69d03aea22db4 Author: Chengming Gui Date: Fri Jan 25 18:57:34 2019 +0800 drm/amd/powerplay: implement fan1_enable hwmon interface for SMU11 (v2) set the fan1_enable hwmon interface to call smu_get_fan_control_mode and smu_set_fan_control_mode. v2: fix print value. Signed-off-by: Chengming Gui Reviewed-by: Huang Rui Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit a76ff5af98bea45bd7303d83c593957dad0213ee Author: Chengming Gui Date: Fri Jan 25 16:21:27 2019 +0800 drm/amd/powerplay: implement pwm1_enable hwmon interface for SMU11 (v2) 1, set get_pwm1_enable and set_pwm1_enable functions to call smu_get_fan_control_mode and smu_set_fan_control_mode for SMU11 2, implement set_fan_control_mode function v2: add return value in set_fan_control_mode function Signed-off-by: Chengming Gui Reviewed-by: Huang Rui Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 008a9524cf6860dcd16780f50f738f3754c8b68a Author: Chengming Gui Date: Thu Jan 24 18:39:04 2019 +0800 drm/amd/powerplay: implement pwm1 hwmon interface for SMU11 (v2) added main functions: get_fan_speed_percent set_fan_speed_percent. added dependent functions: smc_fan_control set_fan_static_mode get_fan_speed_percent v2: fix coding style issue Signed-off-by: Chengming Gui Reviewed-by: Huang Rui Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 46814f51527b7bb0aae2d8582ac7a9da2941f1d2 Author: Chengming Gui Date: Thu Jan 24 17:50:57 2019 +0800 drm/amd/powerplay: add STABLE_PSTATE_SCLK and STABLE_PSTATE_MCLK when read sensor for SMU11 add AMDGPU_PP_SENSOR_STABLE_PSTATE_SCLK and AMDGPU_PP_SENSOR_STABLE_PSTATE_MCLK to support read sensor for SMU11. Signed-off-by: Chengming Gui Reviewed-by: Kevin Wang Reviewed-by: Huang Rui Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 014c4440161b96ad237b1795f9dfdff24c419342 Author: Chengming Gui Date: Tue Jan 22 17:56:16 2019 +0800 drm/amd/powerplay: implement power1_cap and power1_cap_max interface for SMU11 (v2) add get_power_limit and set_power_limit functions to support hwmon for SMU11. v2: fix the code style issue. Signed-off-by: Chengming Gui Reviewed-by: Huang Rui Reviewed-by: Kevin Wang Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 3ac4ffdd13fe74d1164ca61cdc6c7e8d8bfd6a70 Author: Likun Gao Date: Fri Jan 25 17:45:24 2019 +0800 drm/amd/powerplay: add fan input interface for hwmon Add fan1_input and fan1_target interface to get fan speed info for hwmon. Signed-off-by: Likun Gao Reviewed-by: Kevin Wang Reviewed-by: Huang Rui Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 637c1c6644a907a89965fd04d7308fb2e61b6d0c Author: Likun Gao Date: Fri Jan 25 18:29:31 2019 +0800 drm/amd/powerplay: add fan rpm limit interface for hwmon Add fan1_min and fan2_max function for hwmon. Signed-off-by: Likun Gao Reviewed-by: Kevin Wang Reviewed-by: Huang Rui Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 4a2700c563889f2c33b993438eacf2d03749b074 Author: Kevin Wang Date: Mon Jan 28 15:14:47 2019 +0800 drm/amd/powerplay: debugfs don't check powerplay when SW SMU is enabled. when sw smu is enabled, the powerplay interface isn't implemented. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit a317cf0362729df2776419536eea73fd55f62e03 Author: Kevin Wang Date: Fri Jan 25 17:33:40 2019 +0800 drm/amd/powerplay: enable amdgpu dpm for smu enable amdgpu dpm global flag Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit c5bee44baa3c60c3d283c3348ef1b5bf1e8e2427 Author: Likun Gao Date: Mon Jan 28 19:12:10 2019 +0800 drm/amd/powerplay: add function to get sclk and mclk Add function to get sclk and mclk for smu11. Signed-off-by: Likun Gao Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit bc0fcffd36baa1cbbf2a6e951e4f1acad3aa8c90 Author: Likun Gao Date: Thu Jan 24 19:53:40 2019 +0800 drm/amd/powerplay: Unify smu handle task function (v2) Unify power stade adjust function into smu_handle_task by the judgment of task_id. Move functions which have no relationship with smu version into the file of amdgpu_smu. Modified the function of smu_display_config_changed into two part. Unify some similiar function. v2: Correct the operation of upload dpm level when force dpm limit value. Signed-off-by: Likun Gao Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 72e91f37a81768c81aa7ac78169f5a3259c621ac Author: Kevin Wang Date: Fri Jan 25 15:10:13 2019 +0800 drm/amd/powerplay: implement dpm enable functions of uvd & vce for smu add function of dpm enable uvd & vce for extern module use. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 41a84248ee39392251c24c9e7c76646695837440 Author: Kevin Wang Date: Fri Jan 25 16:22:20 2019 +0800 drm/amd/powerplay: implement sensor of uvd & vce power state for smu11 add functions of uvd & vce for hwmon. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit d57a87ad3dba0b1dd9477c83cac1ffaa58b44a1d Author: Kevin Wang Date: Thu Jan 24 19:58:11 2019 +0800 drm/amd/powerplay: implement uvd & vce dpm enable functions add dpm enable functions for vce,uvd. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 239873fc596a13a7db7811811fd236dd076254b9 Author: Kevin Wang Date: Thu Jan 24 19:14:22 2019 +0800 drm/amd/powerplay: hwmon don't check powerplay when sw smu is enabled when sw-smu is enabled, the driver won't init powerplay structure. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Reviewed-by: Likun Gao Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit f14a323db5b0f6cca18b7908337c84b16b2f4e92 Author: Kevin Wang Date: Thu Jan 24 15:27:02 2019 +0800 drm/amd/powerplay: implement update enabled feature state to smc for smu11 change: 1.when enable smu feature, the feature id will store sw-bitmap and smu controller. 2.add feature mutex lock to protect feature bitmap changed when update feature enabled state. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 1507418667f8b0893c90fa8bd4ff965cd4bc14ea Author: Likun Gao Date: Wed Jan 23 13:37:39 2019 +0800 drm/amd/powerplay: dpm clk can be set only when performance level is manual Add condition to make dpm clk can not be set when perfomance level isn't equal to manual. Add mutex lock to smu when set dpm clk. Signed-off-by: Likun Gao Reviewed-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit c16df976a2fe2ea145bf20343efb3e74f073e9e7 Author: Likun Gao Date: Wed Jan 23 11:10:59 2019 +0800 drm/amd/powerplay: adjust power state when set od_clk Expose the function of adjust_power_state_dynamic to make it common to other functions. Add the operate of adjust powet state when set od percentage or overdrive commit dpm table. Signed-off-by: Likun Gao Reviewed-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit e388cc474d361469126882f454cbd8881ab3b259 Author: Likun Gao Date: Mon Jan 21 14:58:38 2019 +0800 drm/amd/powerplay: add sys interface to set pp_od_clk_voltage for smu Add sys interface to set pp_od_clk_voltage for smu. Signed-off-by: Likun Gao Reviewed-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit e9c5b46e3c50f58403aeca6d6419b9235d2518b2 Author: Likun Gao Date: Fri Jan 18 16:15:14 2019 +0800 drm/amd/powerplay: add sys interface for set sclk_od/mclk_od for smu Add sys interface for set pp_sclk_od and pp_mclk_od for smu. Signed-off-by: Likun Gao Reviewed-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 31535a40802dc96d6ad3aabd957a7283c6996685 Author: Likun Gao Date: Fri Jan 18 15:00:15 2019 +0800 drm/amd/powerplay: add function to update overdrive settings Add function of smu_update_specified_od8_value to modify specified overdrive value. Add fucntion of smu_update_od8_settings to update overdrive table. Signed-off-by: Likun Gao Reviewed-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit dfbd118742549cac24184e4e5e359b0731274cb8 Author: Likun Gao Date: Fri Jan 18 12:53:27 2019 +0800 drm/amd/powerplay: add sys interface for pcie for smu Add sys interface for set/get PCIE info for SMU. The related operate will do nothing as vega20 do not support it now. Signed-off-by: Likun Gao Reviewed-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 9a431038e30a45c470c5f949824a76538809662d Author: Chengming Gui Date: Fri Jan 18 11:27:25 2019 +0800 drm/amd/powerplay: implement power_dpm_force_performance_level for SMU11 add get_performance_level and force_performance_level to implement the sys interface for SMU11. Signed-off-by: Chengming Gui Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit f277ff0feacc09c11b26654df9d2b8f1b339cbd8 Author: Chengming Gui Date: Fri Jan 18 10:15:22 2019 +0800 drm/amd/powerplay: add vega20_unforce_dpm_levels for SMU11. add vega20_unforce_dpm_levels to support sys interface for SMU11. Signed-off-by: Chengming Gui Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 78ff4a33ca67d0c50dd57b507169c5988e8c9fcb Author: Chengming Gui Date: Fri Jan 18 10:09:46 2019 +0800 drm/amd/powerplay: add vega20_find/force_higest/lowest_dpm for SMU11 (v2) add vega20_find_highest_dpm_level, vega20_find_lowest_dpm_level, vega20_force_highest_dpm and vega20_force_lowest_dpm functions to support sys interface for SMU11. v2: fix highest/lowest implementation changes error. Signed-off-by: Chengming Gui Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 4dd35181ee4482ed3de0205ca7568ee0d838f34a Author: Chengming Gui Date: Fri Jan 18 10:01:10 2019 +0800 drm/amd/powerplay: add vega20_notify_smc_display_config functions for SMU11 add vega20_notify_smc_display_config functions to support sys interface for SMU11. Signed-off-by: Chengming Gui Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 3fa36a7df967bd9f665fc61984b1708ed45dffe8 Author: Chengming Gui Date: Fri Jan 18 09:47:23 2019 +0800 drm/amd/powerplay: add apply_clock_adjust_rules for SMU11. add apply_clock_adjust_rules to support sys interface for SMU11. Signed-off-by: Chengming Gui Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 4ebbe6192e7cd09eed63c87d9845d4e8227a27cb Author: Chengming Gui Date: Thu Jan 17 18:45:16 2019 +0800 drm/amd/powerplay: add display_config_changed for SMU11. add display_config_changed to support sys interface for SMU11. Signed-off-by: Chengming Gui Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit e0aa879479368b9dd09f75adc7a442cc777ce5b7 Author: Chengming Gui Date: Thu Jan 17 18:40:15 2019 +0800 drm/amd/powerplay: add set_uclk_to_highest_level for SMU11 add set_uclk_to_highest_level to support sys interface for SMU11. Signed-off-by: Chengming Gui Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 7598b596720369a28d51cc5f8083b741aef9b4b7 Author: Chengming Gui Date: Thu Jan 17 18:10:52 2019 +0800 drm/amd/powerplay: add get_profiling_clk_mask functions for SMU11 add get_profiling_clk_masking_clk_mask to support sys interface for SMU11. Signed-off-by: Chengming Gui Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 49d27e91cf4fd817d8e554c20a496721719519d2 Author: Chengming Gui Date: Thu Jan 17 17:57:18 2019 +0800 drm/amd/powerplay: add enable_umd_pstate functions for SMU11 add enable_umd_pstate to support sys interface for SMU11. Signed-off-by: Chengming Gui Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit b3c139d537c018d545cfaad38b9f14fd0576147a Author: Chengming Gui Date: Thu Jan 17 17:35:58 2019 +0800 drm/amd/powerplay: add mclk_latency_table struct and smu_clocks struct for SMU11 add mclk_latency_table struct and smu_clocks structi to support sys interface for SMU11. Signed-off-by: Chengming Gui Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 379a445480f65d6fe91abb14041526ae3e4ba5fa Author: Chengming Gui Date: Thu Jan 17 16:58:57 2019 +0800 drm/amd/powerplay: add display_config to handle display config for SMU11. add display_config to support sys interface for SMU11. Signed-off-by: Chengming Gui Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 16177fd053841dbfa8bfc3b698dcee7a0abe20cb Author: Chengming Gui Date: Mon Jan 14 14:37:31 2019 +0800 drm/amd/powerplay: implement pp_power_profile_mode sys inerface for SMU11 Add set/get power profile mode functions. Added dependency interfaces: 1) vega20_set_activity_monitor_coeff 2) vega20_get_activity_monitor_coeff 3) conv_power_profile_to_pplib_workload Signed-off-by: Chengming Gui Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit c9ff9d8ee3c6832f8a203fffbc710ab4b177ceda Author: Chengming Gui Date: Thu Jan 17 13:45:06 2019 +0800 drm/amd/powerplay: add watermarks related data structs and function for SMU11. add write watermark table function and watermark flags to support sys interface for SMU11. Signed-off-by: Chengming Gui Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 8554e67d6e22b0bc3ba213b87a0b6e1ae0fd838c Author: Chengming Gui Date: Fri Jan 4 17:42:09 2019 +0800 drm/amd/powerplay: implement power_dpm_state sys interface for SMU11 Add functions to get/set dpm state for SMU11. Signed-off-by: Chengming Gui Acked-by: Alex Deucher Acked-by: Kevin Wang Reviewd-by: Evan Quan Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit ad88f0517b239a08b148fbd300de103e8f7a78ef Author: Huang Rui Date: Wed Jan 23 19:09:08 2019 +0800 drm/amd/powerplay: don't check hwmgr while using the sw smu While using the sw smu path, driver won't init hwmgr structure. Signed-off-by: Huang Rui Reviewed-by: Kevin Wang Reviewed-by: Likun Gao Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 6316f51c4758a421f7e1fcaa8e3717ea1901d550 Author: Huang Rui Date: Tue Jan 22 16:26:39 2019 +0800 drm/amd/powerplay: remove unnecessary checking in smu_hw_fini This patch removes unnecessary NULL pointer checking in smu_hw_fini, because kfree is able to handle NULL pointer case. Suggested-by: Hawking Zhang Signed-off-by: Huang Rui Reviewed-by: Hawking Zhang Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit c4d74f5372da05875b62f4089da5e77367c0c778 Author: Likun Gao Date: Mon Jan 14 17:22:09 2019 +0800 drm/amd/powerplay: get overdrive clock and voltage information Add sys interface to get overdrive clock and voltage information for smu11. Signed-off-by: Likun Gao Reviewed-by: Kevin Wang Reviewed-by: Evan Quan Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 6d7c830271ad5c54a3ee04fef0420ec89d6e37fd Author: Likun Gao Date: Fri Jan 11 18:47:14 2019 +0800 drm/amd/powerplay: print overdrive percentage information for smu11 Add function to get sclk or mclk overdrive percentage information for smu11. Signed-off-by: Likun Gao Reviewed-by: Kevin Wang Reviewed-by: Evan Quan Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 95add9591adab7002e203d5c1c57796e752b15e5 Author: Likun Gao Date: Fri Jan 11 17:42:47 2019 +0800 drm/amd/powerplay: add golden dpm table to backup default DPM table (v2) Backup default DPM table into golden dpm table. v2: fix dpm_context and golden_dpm_context kfree two times issue. Signed-off-by: Likun Gao Reviewed-by: Kevin Wang Reviewed-by: Evan Quan Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 2c80abe3816bf573858261c84bcc12c06ac93a5e Author: Likun Gao Date: Wed Jan 9 19:11:58 2019 +0800 drm/amd/powerplay: add function to set default overdrive settings Add function of vega20_set_default_od8_setttings for vega20 with smu11 arch to setup default overdrive value. Signed-off-by: Likun Gao Reviewed-by: Kevin Wang Reviewed-by: Evan Quan Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit b55ca3bdaf0bbfd14ad6619a991fbd324ae1ad4b Author: Likun Gao Date: Tue Jan 8 14:18:02 2019 +0800 drm/amd/powerplay: add function to store overdrive information for smu11 Add vega20_setup_od8_information function to store overdrive information from powerplay_table to smu_table which will used when setting od8. Signed-off-by: Likun Gao Reviewed-by: Kevin Wang Reviewed-by: Evan Quan Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 2e069391188c1883c30f3a9441ba1b279da68c94 Author: Huang Rui Date: Thu Jan 17 15:25:37 2019 +0800 drm/amd/powerplay: implement interface to set watermarks for clock ranges This patch implements inteferface to set watermarks table for clock ranges on smu 11. It fills watermark table before it is written to SMC. Signed-off-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 367eeed473857c549a1b355a89494471efb95029 Author: Huang Rui Date: Wed Jan 16 18:55:33 2019 +0800 drm/amd/powerplay: add interface to notify smu enable pme restore register This patch adds interface to notify smu enable pme restore register for display and in smu v11 didn't have this implementation. Signed-off-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 5e2d38814e9fb39c529030523fe9c6b175c0c19f Author: Huang Rui Date: Wed Jan 16 14:43:29 2019 +0800 drm/amd/powerplay: add interface to get current clocks for display This patch fills the amd_pp_clock_info data for display, it will get the current info in that structure. Signed-off-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 8021816c85be41c6486d2ab668ee4df8c30edd05 Author: Huang Rui Date: Wed Jan 16 14:30:11 2019 +0800 drm/amd/powerplay: add interface to get current shallow sleep clocks This patch adds interface to get current shallow sleep clocks for display and in smu v11 didn't have this implementation. Signed-off-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 64461900001fc32aa6e07f4712167aac815ea23d Author: Huang Rui Date: Wed Jan 16 14:22:16 2019 +0800 drm/amd/powerplay: add interface to get performance level This patch adds interface to get performance level for display and in smu v11 didn't have this implementation. Signed-off-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 98a64c15e0bea87938f68f78920d3b5d08ca39c2 Author: Huang Rui Date: Wed Jan 16 14:10:59 2019 +0800 drm/amd/powerplay: add interface to get dal power level This patch adds interface to get dal power level for display and in smu v11 didn't have this implementation. Signed-off-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 04885368cbc85736d61b79c7624aeed238fde93b Author: Huang Rui Date: Mon Jan 14 15:24:59 2019 +0800 drm/amd/powerplay: add interface to request display clock voltage This patch adds interface to request display clock voltage, display will use it to request current display clock voltage. Signed-off-by: Huang Rui Reviewed-by: Alex Deucher Reviewed-by: Evan Quan Signed-off-by: Alex Deucher commit 1e33d4d439491a3d179e0f574cfb9d1ab6a92dca Author: Huang Rui Date: Mon Jan 14 14:08:18 2019 +0800 drm/amd/powerplay: add interface to get clock by type with voltage for display This patch adds inteface to get clock by type with voltage, display will use it to get current clocks with voltage. Signed-off-by: Huang Rui Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit e5e4e22391c2a7e792964aeb3278eecfd2a7638b Author: Huang Rui Date: Mon Jan 14 11:55:45 2019 +0800 drm/amd/powerplay: add interface to get clock by type with latency for display (v2) This patch adds get clock by type with latency, display will use it to get current clocks with latency. v2: fix the missed mutex lock before return. Signed-off-by: Huang Rui Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit 6ec826846e440494247ce81ef97037927bba191f Author: Huang Rui Date: Fri Jan 11 17:33:41 2019 +0800 drm/amd/powerplay: add interface to get max high clocks for display This patch adds interface to get max high clocks for display and in smu v11 didn't have this implementation. Signed-off-by: Huang Rui Reviewed-by: Evan Quan Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit b3ea88fef321de3374648911e1aea65bdd53da3f Author: Huang Rui Date: Fri Jan 11 17:12:04 2019 +0800 drm/amd/powerplay: add get_clock_by_type interface for display This patch adds get_clock_by_type interface for display, in smu v11 didn't have the implementation. Signed-off-by: Huang Rui Reviewed-by: Evan Quan Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 94ed6d0cfdb867be9bf05f03d682980bce5d0036 Author: Huang Rui Date: Fri Jan 11 16:23:36 2019 +0800 drm/amd/powerplay: add smu display configuration change function This patch adds display configuration change function that creates the new path with sw smu driver instead of powerplay. Signed-off-by: Huang Rui Reviewed-by: Evan Quan Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 44dd54ee40920f25071721207bc116c016a3028b Author: Huang Rui Date: Fri Jan 11 16:12:03 2019 +0800 drm/amd/powerplay: add two interfaces to set_active_display_count and store_cc6_data This patch adds two interfaces to set_active_display_count and store_cc6_data, they won't be used for smu11, and just be the placeholders for future asic on display to smu interface. Signed-off-by: Huang Rui Reviewed-by: Evan Quan Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit e73cf10811729411d67c89f22884a1de41a94b08 Author: Huang Rui Date: Fri Jan 11 15:51:16 2019 +0800 drm/amd/powerplay: add the function to set deep sleep dcefclk This patch adds the function to set deep sleep dcefclk. It will be used on display part. Signed-off-by: Huang Rui Reviewed-by: Evan Quan Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 0b53f9add0d8dbd3c8d44f78c0d847fcc1251883 Author: Kevin Wang Date: Thu Jan 17 13:46:08 2019 +0800 drm/amd/powerplay: implement sysfs of pp_force_state for sw-smu the SMU v11 doesn’t support pp_force_state so far, so we didn’t implement it. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit ea2d0bf8c7f07ca6d0de11628a5d3af6c247e51c Author: Kevin Wang Date: Thu Jan 17 13:29:06 2019 +0800 drm/amd/powerplay: implement sysfs of pp_cur_state function add function of smu_get_currente_state for sw-smu. v2: fix code typo error if (ret); Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 0989532330e1e7d25693c14b3d57288aa4915f81 Author: Kevin Wang Date: Thu Jan 17 13:15:48 2019 +0800 drm/amd/powerplay: implement sysfs of get num states function add function smu_get_power_num_state function for sw-smu. it's only for sysfs interface, the power state feature is not ready for sw-smu. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 143c75d6514dd65ba49d3846a5a02c45a4b7f15b Author: Kevin Wang Date: Wed Jan 16 09:55:03 2019 +0800 drm/amd/powerplay: implement sensor of get feature mask add sensor interface of feature mask for debugfs. this interface is not ip related function, so need move high level file to implement (amdgpu_smu) Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Reviewed-by: Evan Quan Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 77d1eef4e87c115136771b56ada0d3000daaeba1 Author: Kevin Wang Date: Wed Jan 16 13:31:12 2019 +0800 drm/amd/powerplay: implement sensor of get_gfx_vdd for smu11 add sensor interface of gfx vdd for hwmon Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Reviewed-by: Evan Quan Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 2c272452affed210f0abb60d6f908f1d7b453eed Author: Kevin Wang Date: Wed Jan 16 13:27:52 2019 +0800 drm/amd/powerplay: implement sensor of get_gpu_power for smu11 add sensor interface of get gpu power for debugfs and hwmon. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Reviewed-by: Evan Quan Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 2f613c7068e5ff6ec8b2ed32826b466ed676c0a1 Author: Kevin Wang Date: Tue Jan 15 12:37:35 2019 +0800 drm/amd/powerplay: implement sensor of thermal_get_temperature for smu11 add sensor interface of thermal temperature for debugfs and hwmon. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Reviewed-by: Evan Quan Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit c9b6604351777f6ed4f2e47d2a1be66216149554 Author: Kevin Wang Date: Tue Jan 15 12:25:59 2019 +0800 drm/amd/powerplay: implement sensor of SCLK and MCLK for smu11 add sensor interface of SCLK and MCKL for sys interface and hwmon. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Reviewed-by: Evan Quan Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 7292fd7d2bec15a5ce7a0afe84e4cd2d77f42f39 Author: Likun Gao Date: Mon Jan 7 15:59:56 2019 +0800 drm/amd/powerplay: force clock levels for smu11 Add function to set sclk or mclk level for smu11. Signed-off-by: Likun Gao Reviewed-by: Evan Quan Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 0a49887de95c1173eeadebb15eed82397ae03e26 Author: Likun Gao Date: Mon Jan 7 14:56:07 2019 +0800 drm/amd/powerplay: upload dpm level for smu11 Add function to support gfx_clk and mem_clk upload min and max dpm level for smu11. Signed-off-by: Likun Gao Reviewed-by: Evan Quan Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 289921b03fe5e288cf924a52018f075e1b94f446 Author: Kevin Wang Date: Fri Jan 11 15:07:52 2019 +0800 drm/amd/powerplay: implement sysfs of pp_table for smu11 (v2) add pp_table sysfs interface for new sw-smu. get: return pptable raw data set: write pptable raw data to pptable, then reset smu (hw_fini -> hw_init) v2: fix mutex lock issue Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 4a5a2de66686e317ddcb090e3b1ee45b4219003a Author: Kevin Wang Date: Fri Jan 11 14:51:24 2019 +0800 drm/amd/powerplay: implement sysfs of amdgpu_get_busy_percent for smu11 add interface amdgpu_get_busy_percent for smu11 v2: convert data pointer type to uint32_t *. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit dc8e3a0c8efbaab9b4bc7b924463a56ea33d818c Author: Kevin Wang Date: Thu Jan 10 12:33:23 2019 +0800 drm/amd/powerplay: implement is_support_sw_smu function for new smu add this helper to check new sw-smu support. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit dbe6a97024a6eeadf7912383e05118ff98883d2d Author: Kevin Wang Date: Mon Jan 7 15:34:09 2019 +0800 drm/amd/powerplay: implement smu update table function sometime, the driver need changed table data between driver and smu. this function can help update table data Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 74ba3553b2bb26adb36dd7d0b13b85bca64f3ef2 Author: Likun Gao Date: Fri Jan 4 16:00:48 2019 +0800 drm/amd/powerplay: add function to start thermal control Add function to start thermal control for smu11 when smu hw_init. Signed-off-by: Likun Gao Acked-by: Alex Deucher Reviewed-by: Huang Rui Signed-off-by: Alex Deucher commit e921ec97fe696f89be5959fdc96dd722026ba5d0 Author: Likun Gao Date: Fri Jan 4 15:40:53 2019 +0800 drm/amd/powerplay: add function to set fan table to control thermal Add function of smu_v11_0_set_thermal_fan_table to set fan table for smu11. Signed-off-by: Likun Gao Acked-by: Alex Deucher Reviewed-by: Huang Rui Signed-off-by: Alex Deucher commit f81920dbdec7c721bb3b5193f0b8a06307a5e034 Author: Likun Gao Date: Fri Jan 4 14:36:35 2019 +0800 drm/amd/powerplay: add function to enable thermal alert Add function to enable thermal alerts on thermal control for smu11. Signed-off-by: Likun Gao Acked-by: Alex Deucher Reviewed-by: Huang Rui Signed-off-by: Alex Deucher commit 83e1ede637b3db6fca6f920a164e34eb8c552f8a Author: Likun Gao Date: Fri Jan 4 14:13:09 2019 +0800 drm/amd/powerplay: add function to set thermal range Add the function to set the correct min and max thermal value for smu11 Signed-off-by: Likun Gao Acked-by: Alex Deucher Reviewed-by: Huang Rui Signed-off-by: Alex Deucher commit 3941b2dbed9b1e2adfc93e479ecc0d28ed9026ba Author: Likun Gao Date: Fri Jan 4 16:23:23 2019 +0800 drm/amd/powerplay: add function to get thermal range Add the function to get the min and max thermal value for vega20 with smu11 architecture. Signed-off-by: Likun Gao Acked-by: Alex Deucher Reviewed-by: Huang Rui Signed-off-by: Alex Deucher commit 7457cf02540571e17ce464e5cb1865cfb020de31 Author: Huang Rui Date: Tue Dec 25 16:34:39 2018 +0800 drm/amd/powerplay: add get_max_sustainable_clock function This patch adds get_max_sustainable_clock function for smu11. Signed-off-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 86ac88030725d34a2746b46185ee6b15bf42cdfe Author: Likun Gao Date: Tue Jan 15 10:56:55 2019 +0800 drm/amd/powerplay: print clock levels for smu11 (v2) Add function to print current levels for smu11. v2: expose get_current_clk_freq for smu v11. (Kevin) Signed-off-by: Likun Gao Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit bed3b3a1e19a08c9028db50cb1ebe2e0106c3811 Author: Kevin Wang Date: Tue Jan 15 10:54:45 2019 +0800 drm/amd/powerplay: implement get_current_clk_freq for smu11 This patch implements get_current_clk_freq for smu11 future use. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit e66adb1eea90703f4e1d8ea509f7ec3fe0b4be6d Author: Likun Gao Date: Tue Dec 25 14:44:25 2018 +0800 drm/amd/powerplay: add function to get power limit for smu11 (v2) Add smu_v11_0_get_power_limit function to get power limit vaule. v2: update "set" to "get", it only implements "get" behavior. (Alex) Signed-off-by: Likun Gao Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 133438fa4e60d017b2c45b9fca64bcc4fc64007f Author: Likun Gao Date: Mon Dec 24 19:49:38 2018 +0800 drm/amd/powerplay: add function to populate umd state clk. Add vega20_populate_umd_state_clk function to set pstate_sclk and pstate_mclk. Signed-off-by: Likun Gao Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit d6a4aa825a65ee7ec0293666fd1572e4621ad13d Author: Likun Gao Date: Thu Dec 20 20:31:55 2018 +0800 drm/amd/powerplay: set defalut dpm table for smu Add smu_set_default_dpm_table function to set dpm table for smu11. Modified the sequence to populate smc pptable, as it should be done after related dpm feature is enabled. Signed-off-by: Likun Gao Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit e1c6f86a915f7c3f6bba7a72713f9e61221dafe4 Author: Kevin Wang Date: Wed Dec 26 16:14:55 2018 +0800 drm/amd/powerplay: implement smu_notify_display_change function for smu11 add smu_notify_display_change function to send msg to smc to notify display is changed. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 2f25158d7db8a435a65f22ca194fc461cb26db82 Author: Kevin Wang Date: Wed Dec 26 16:13:09 2018 +0800 drm/amd/powerplay: implement feature get&set functions add smu feature operation function helper to deal with smu feature bitmap. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 6b816d7316397b5898609e8da31c33790ef34ea0 Author: Kevin Wang Date: Wed Dec 26 17:36:25 2018 +0800 drm/amd/powerplay: implement smu feature functions each ip will support different smu feature, the driver use bitmap to management this feature. bitmap: -allowed: sw driver to enable & disable some feature when driver init. -suppored: the feature is supproed. -enabled: the feature is enabled. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit f6a6b9526cf0f4247ecc10d8634db8325640fa6e Author: Kevin Wang Date: Mon Dec 24 18:17:15 2018 +0800 drm/amd/powerplay: implement smu_run_afll_btc function Add smu_run_afll_btc function to send msg to smc to start run afll btc. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 56c53ad6fe6c59469eda11caedc408b6e827864a Author: Kevin Wang Date: Mon Dec 24 15:02:50 2018 +0800 drm/amd/powerplay: implement smu_init_display for smu11 Add smu_init_display function to send msg to smc to init display. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit d76c9e2412667e54740a52c7c582b02351ad633c Author: Likun Gao Date: Wed Dec 26 11:07:57 2018 +0800 drm/amd/powerplay: Change the allocate method of dpm context for smu11. Change the allocate method of dpm context as dpm_table is different bewteen vega20 and smu11. Signed-off-by: Likun Gao Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 00bfaec829c3d2cc89d4f36236d85c6f139aedaf Author: Likun Gao Date: Thu Dec 20 20:09:00 2018 +0800 drm/amd/powerplay: expose the function of smu read argument Expose the function of smu_read_smc_arg to get argument value from SMU11. Signed-off-by: Likun Gao Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit c58952737623ed39848a7a997ae0d7c6580a42bc Author: Huang Rui Date: Thu Dec 20 23:06:08 2018 +0800 drm/amd/powerplay: add append_powerplay_table function It needs to add append_powerplay_table function to program the smc_dpm_table for PPTable_t. Signed-off-by: Huang Rui Acked-by: Alex Deucher Reviewed-by: Kevin Wang Signed-off-by: Alex Deucher commit 0914f1c63510c7c55de2e727a7e0b6c80ee9ab4f Author: Kevin Wang Date: Wed Dec 19 16:27:55 2018 +0800 drm/amd/powerplay: replace SMU_MSG_XXX with PPSMC_MSG_XXX message index for smu11 (v2) This patch is to setup a common SMU_MSGs for smu11. We can support common MSG definitions for each asics under smu11. v2: move smu_v11_0_ppsmc.h to xxx_ppt.c level, because it depends on specific asic. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 5c45103f48d77287b0a641d40c96d284abac8d23 Author: Kevin Wang Date: Wed Dec 19 16:23:23 2018 +0800 drm/amd/powerplay: use virtual msg index to replace asic-related msg index Using virtual msg index is able to support all ASIC specific message values on one smu upper layer. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 78031c2c4dcdee689610dbf64dd77e0e3cc11051 Author: Kevin Wang Date: Wed Dec 19 15:46:24 2018 +0800 drm/amd/powerplay: implement smu vega20_message_map for vega20 This patch implements smu vega20_message_map to map the PPSMC messages from smu11 to specific asic. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 64136ea6e7d678a1b705b2b5519c5476715c8498 Author: Kevin Wang Date: Wed Dec 19 15:12:10 2018 +0800 drm/amd/powerplay: add enum smu_msg_type to header each asic with different message index, add this header to help top level smu code to send message. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit e88e4f836c6138bd16b070128a9bcc56824a8037 Author: Likun Gao Date: Wed Dec 12 19:42:53 2018 +0800 drm/amd/powerplay: add function to set tool table location for smu11 (v2) Add smu_v11_0_set_tool_table_location function for smu11. v2: fix the missed TABLE_PMSTATUSLOG bo creation which caused AGM hung. (Ray) Signed-off-by: Likun Gao Reviewed-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 44619596ebd4e1d97224c118fbfc77dcd63ec21b Author: Likun Gao Date: Wed Dec 12 19:31:31 2018 +0800 drm/amd/powerplay: add function to set min dcef deep sleep for smu11 (v2) Add smu_v11_0_set_min_dcef_deep_sleep function for smu11. v2: fix coding error about set_min_dcef_deep_sleep (Kevin) Signed-off-by: Kevin Wang Signed-off-by: Likun Gao Reviewed-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 863651b6faddec3984ba20ad9f3f921271d0a3ab Author: Likun Gao Date: Thu Dec 13 19:22:30 2018 +0800 drm/amd/powerplay: add function to write pptable for smu11 (v2) Add smu_v11_0_write_pptable and smu_v11_0_copy_table_to_smc function for smu11. v2: fix the build warning. (Ray) Signed-off-by: Likun Gao Reviewed-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 29eed6fafdbda836f82b0c5c992cc8a39e884c00 Author: Likun Gao Date: Thu Dec 13 10:31:14 2018 +0800 drm/amd/powerplay: add function to populate smc pptable for smu11 Add smu_v11_0_populate_smc_pptable function for smu11. Signed-off-by: Likun Gao Reviewed-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit afba8282292940378632c61e1686f230fa5be655 Author: Likun Gao Date: Mon Dec 17 20:59:42 2018 +0800 drm/amd/powerplay: update hw fini function to relase some memory Release memory of table_context->driver_pptable and table_context->ppt_information when smu hw fini. Signed-off-by: Likun Gao Reviewed-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit c6eef2d01d05beff75e6139909bf1f2dc88bd72a Author: Likun Gao Date: Fri Dec 14 16:18:21 2018 +0800 drm/amd/powerplay: add function to check pptable for smu11 Add smu_v11_0_check_pptable function for smu11. Signed-off-by: Likun Gao Reviewed-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 3e333c6ca1f5e82aa0024dca4015ca1aa69b222b Author: Likun Gao Date: Tue Dec 18 22:56:48 2018 +0800 drm/amd/powerplay: add function to parse pptable for smu11 Add smu_v11_0_parse_pptable function for smu11. Signed-off-by: Likun Gao Reviewed-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 74e07f9d3b77034cd1546617afce1d014a68d1ca Author: Huang Rui Date: Tue Dec 18 20:23:17 2018 +0800 drm/amd/powerplay: add vega20 pptable function file This patch adds the vega20_ppt.c to support ATOM_Vega20_POWERPLAYTABLE format for vega20 on smu11. It will be used to implement to asic specific pptable helpers. Signed-off-by: Huang Rui Reviewed-by: Likun Gao Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit d72e91c5b7b409d532ec68ab3921b30f73f559d2 Author: Kevin Wang Date: Tue Dec 18 14:06:09 2018 +0800 drm/amd/powerplay: implement notify_memory_pool_location function for smu11 This patch implements the notify_memory_pool_location function to send memory address to smc for dram logging. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 0b51d9937845fb6e0639be2cbd31557c4a36e073 Author: Kevin Wang Date: Mon Dec 17 16:47:49 2018 +0800 drm/amd/powerplay: implement smu_alloc[free]_memory pool function This patch implements smu_alloc[free]_memory pool function to reserve the memory pool bo. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 08115f87c38de82f82991a990e36806fa6f3057d Author: Huang Rui Date: Mon Dec 17 14:56:40 2018 +0800 drm/amd/powerplay: implement get_clk_info_from_vbios function for smu11 (v2) This patch implements the get_clk_info_from_vbios function for smu11. We can do execute_vbios_cmd_table to fetch the clk value from vbios. v2: use the proper cpu_to_le[32|16]() and le[32|16]_to_cpu() macros to handle endianness. (Alex) Signed-off-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 846f1a035b554b5ba63c6dc1e720d8c580c390fa Author: Huang Rui Date: Mon Dec 17 10:25:30 2018 +0800 drm/amd/powerplay: implement get_vbios_bootup_values function for smu11 (v2) This patch implements get_vbios_bootup_values function for smu11 to fetach firmwareinfo member from atombios. v2: use switch statement based on the content revision (Alex) Signed-off-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit e98499b44413a42065a4c8f748fbbb4783ba5633 Author: Huang Rui Date: Sat Dec 15 15:36:58 2018 +0800 drm/amd/powerplay: add data structure of bootup values This patch adds data structures for bootup values. Signed-off-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit daddacf9f1fedb4c87c827811c3588a2b9233182 Author: Huang Rui Date: Sat Dec 15 14:30:07 2018 +0800 drm/amd/powerplay: update pptable header for smu11 This patch updates pptable header for smu v11. Signed-off-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit ce6f7fa8a756ea46743fc53c5235840c8aba5fb2 Author: Kevin Wang Date: Tue Dec 18 10:58:17 2018 +0800 drm/amd/powerplay: remove header of smu_v11_0_pptable different ASICs have different pptables, so the header will move to asic source code to implement. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit f96357a991b965e9dc6882718c670c49945a89a8 Author: Kevin Wang Date: Fri Dec 14 18:34:20 2018 +0800 drm/amd/powerplay: implement smu_init(fini)_fb_allocations function This patch implements smu_init_fb_allocations/smu_fini_fb_allocations function for smu to reserve the BOs for smc tables. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 8bf16963df8c27787f12d7df88d4c88fe6d9aff1 Author: Kevin Wang Date: Sat Dec 15 10:50:03 2018 +0800 drm/amd/powerplay: implement smu_init[fini]_power function for smu11 This patch implements smu_init[fini]_power function for smu v11. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 142dec6266b24df2e56f87347471032922e40bc2 Author: Kevin Wang Date: Mon Dec 17 19:48:59 2018 +0800 drm/amd/powerplay: implement smu dpm context functions for smu11 This patch implements smu dpm context functions for smu v11. Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 813ce279448e7d5af183571b99d8ca7f605188b8 Author: Kevin Wang Date: Fri Dec 14 17:43:57 2018 +0800 drm/amd/powerplay: implement smu_init[fini]_smc_tables for smu11 Each SMU IP may have a different number of SMU tables, so these tables are allocated using dynamic memory Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 244f3449285f4463270882154d88b9df0ac620a5 Author: Huang Rui Date: Fri Dec 14 17:47:20 2018 +0800 drm/amd/powerplay: implement read_pptable_from_vbios function for smu11 This patch implements the function of read_pptable_from_vbios for smu11. Signed-off-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit ae2e20136417f58d37a37c747cb6e12a2650bbd5 Author: Huang Rui Date: Fri Dec 14 17:09:08 2018 +0800 drm/amdgpu: move get_index_into_master_table macro into atomfirmware header This patchs move get_index_into_master_table macro into atomfirmware header for future use on smu. Signed-off-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit e15da5a4b08a94ef63630c85197dabd1c8a88b36 Author: Huang Rui Date: Wed Dec 12 21:06:59 2018 +0800 drm/amd/powerplay: add get atom data table helper This patch adds get atom data table helper for smu future use. Signed-off-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 2cf543ed4f3b70f9f1eeadf4a7cbf656d39ad30e Author: Huang Rui Date: Wed Dec 12 20:47:24 2018 +0800 drm/amd/powerplay: add smu table context structure This patch adds smu table context. Signed-off-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 0ae6afbffe0e7aa2880e19864ef92ce255d2c189 Author: Huang Rui Date: Wed Dec 12 20:37:22 2018 +0800 drm/amdgpu: update new members in atomfirmware This patch updates new members for fields to meet new atomfirmware header. Signed-off-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit eaf02a4d92e7941224e0f34aa721b065dc1856d9 Author: Huang Rui Date: Mon Jan 21 14:06:52 2019 +0800 drm/amdgpu: update atomfirmware header for smu11 This patch updates atomfirmware header on smu11 for future use. Signed-off-by: Huang Rui Reviewed-by: Kevin Wang Reviewed-by: Alex Deucher Signed-off-by: Alex Deucher commit ae35cd6a480f9c2ac356f792c9a9321a5863776a Author: Huang Rui Date: Wed Dec 12 19:55:30 2018 +0800 drm/amd/powerplay: add pptable header for smu11 This patch adds the pptable header for smu11. Signed-off-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 765c50cb242650631d1c84e5202e0b302ea7f6bd Author: Kevin Wang Date: Wed Dec 12 11:21:16 2018 +0800 drm/amd/powerplay: implement check_fw_version function for smu11 Add function of check firmware version for smu11 Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 7b0031b6ea2b31f945eb32ae9f3191d8e8b15e1b Author: Kevin Wang Date: Mon Dec 10 13:31:56 2018 +0800 drm/amd/powerplay: implement check_fw_status function for smu11 Add function of check firmware status funtions for smu11 Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit b0b4b413a9be3d497f706217c37da150201c43ff Author: Kevin Wang Date: Tue Dec 11 17:16:10 2018 +0800 drm/amd/powerplay: implement smu send message functions for smu11 (v3) Add function of smu send message for smu11 v2: fix the missing ) in define of smu_send_smc_msg_with_param v3: Use adev usec timeout for smu as well, the origin time 10 us is not enough. (Ray) Signed-off-by: Huang Rui Signed-off-by: Likun Gao Signed-off-by: Kevin Wang Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 6667889b45cfd18d6978be99dff804288be4cc31 Author: Huang Rui Date: Tue Dec 11 15:42:12 2018 +0800 drm/amd/powerplay: add new ppsmc header for smu11 (v2) This header will be used for smc message handling. v2: add a license to the top of the header file (Alex) Signed-off-by: Huang Rui Reviewed-by: Kevin Wang Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 59abab5ad2955fd7e7a0247e5ffb9c3f4f4526b0 Author: Likun Gao Date: Thu Dec 6 13:44:29 2018 +0800 drm/amd/powerplay: init microcode for smu11 Add function of init mircrocode for smu11. Signed-off-by: Likun Gao Reviewed-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 2da5410bf4c974546f90c1262684f009c6f4a9da Author: Huang Rui Date: Thu Nov 29 18:46:54 2018 +0800 drm/amdgpu: enable new smu ip block for vega20 Switch to new smu ip block since vega20. Signed-off-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit fad3ecf2359b564fa6e3ef7e87f44dd17947ab82 Author: Huang Rui Date: Wed Dec 5 12:01:09 2018 +0800 drm/amd/powerplay: add resume sequence placeholder for smu ip block This patch adds resume sequence placeholder for smu ip block. Signed-off-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 38f8a2e6141d27b81da9c5d4594edcd20bb939e2 Author: Huang Rui Date: Thu Jan 10 23:58:08 2019 +0800 drm/amd/powerplay: add interfaces for smu resume SMU resume needs three more interfaces such as write_watermarks_table, set_last_dcef_min_deep_sleep_clk, and system_features_control. Signed-off-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit c56de9e8287dab5c3e393fa30597c20cbf43533a Author: Huang Rui Date: Wed Dec 5 11:45:34 2018 +0800 drm/amd/powerplay: add interface to notify memory pool location (v2) This patch adds interface to notify memory pool location for smu. It's to use msg SetSystemVirtualDramAddr and DramLogSetDramAddr can notify pool location. v2: add detailed info to describe this function Signed-off-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit e65d45f2c73df8b7596d67c09bc3528a8968a99d Author: Huang Rui Date: Wed Dec 5 11:41:33 2018 +0800 drm/amd/powerplay: add interface to allocate memory pool (v2) This patch adds interface to allocate memory pool for smu. This memory pool will be used for SMC use and msg SetSystemVirtualDramAddr and DramLogSetDramAddr can notify it changed. v2: add detailed info to describe this function Signed-off-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 206bc589ed497497d87699b406e195b7c7b51900 Author: Huang Rui Date: Tue Dec 4 22:04:24 2018 +0800 drm/amd/powerplay: add interface to set tool table location (v2) This patch adds interface to set tool table location for smu. Set PMSTATUSLOG table bo address with SetToolsDramAddr MSG for tools. v2: add detailed info to describe this function Signed-off-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit a7ebb6d2fde4d478f48036aaa92859eff36271ea Author: Huang Rui Date: Tue Dec 4 22:00:22 2018 +0800 drm/amd/powerplay: add interface to set min dcef deep sleep (v2) This patch adds interface to set min dcef deep sleep for smu. It's to set min deep sleep dce fclk with bootup value from vbios via SetMinDeepSleepDcefclk MSG. v2: add detailed info to describe this function Signed-off-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 31b5ae495d68fba85bf64fae6f173372d56131da Author: Huang Rui Date: Tue Dec 4 21:57:05 2018 +0800 drm/amd/powerplay: add interface to write pptable (v2) This patch adds interface to write pptable for smu. It's to copy pptable bo in the vram to smc with SMU MSGs such as SetDriverDramAddr and TransferTableDram2Smu. v2: add detailed info to describe this function Signed-off-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit a751b095898294764a364e436d9ddb14ad727482 Author: Huang Rui Date: Tue Dec 4 21:51:23 2018 +0800 drm/amd/powerplay: add interface to check fw version (v2) This patch adds interface to check fw version for smu. It's to send msg GetDriverIfVersion to check if the return value is equal with DRIVER_IF_VERSION of smc header. v2: add detailed info to describe this function Signed-off-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 86187fec9151881dd2b8ef116d32acfa771dc1c1 Author: Huang Rui Date: Tue Dec 4 21:42:41 2018 +0800 drm/amd/powerplay: add interface to populate smc pptable (v2) This patch adds interface to populate smc pptable for smu. It's to set initialized values (get from vbios) to dpm tables context such as gfxclk, memclk, dcefclk, and etc. And enable the DPM feature for each type of clks. v2: add detailed info to describe this function Signed-off-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 9e4848a4edd60d1f9f3bb556d6575d642690c79d Author: Huang Rui Date: Tue Dec 4 21:34:43 2018 +0800 drm/amd/powerplay: add interface to parse pptable (v2) This patch adds interface to parse pptable for smu. It's to parse pptable format and fill PPTable_t smc_pptable to smu_table_context structure. And read the smc_dpm_table from vbios, then fill it into smc_pptable. v2: add detailed info to describe this function Signed-off-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 9c9a1747c2921015dd62d680c153af2c24a547b0 Author: Huang Rui Date: Tue Dec 4 18:54:50 2018 +0800 drm/amd/powerplay: add interface to init fb allocations (v2) This patch adds interface to init fb allocations for smu. It's to allocate vram bos to store smc table contents. v2: add detailed info to describe this function Signed-off-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 46126e6dad1cf3292bbae29c5fe321ca96d110fc Author: Huang Rui Date: Tue Dec 4 18:41:58 2018 +0800 drm/amd/powerplay: add interface to check pptable (v2) This patch adds interface to check pptable function for smu. It's to check if the format_revision in vbios is up to pptable header version, and the structure size is not 0. v2: add detailed info to describe this function Signed-off-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit a6b35900dca9607cdd687a9886d3a4e6af0e4420 Author: Huang Rui Date: Tue Dec 4 18:24:58 2018 +0800 drm/amd/powerplay: add interface to get vbios bootup values (v2) This patch adds interface to get vbios bootup values for smu. It's to get boot_values from vbios to set revision, gfxclk, and etc. v2: add detailed info to describe this function. Signed-off-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 17e6081bc19275f62b259f72457822310a1734c4 Author: Huang Rui Date: Tue Dec 4 18:13:19 2018 +0800 drm/amd/powerplay: add interface to init power (v2) This patch adds interface to init power function for smu. It's to create smu_power_context structure, and allocate smu_dpm_context and context size to fill the smu_power_context data. v2: add detailed info to describe this function Signed-off-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit cabd44c064c84064292508a58c97f4e9ad9a6409 Author: Huang Rui Date: Tue Dec 4 17:42:08 2018 +0800 drm/amd/powerplay: add interface to init smc tables (v2) This patch adds interface to init smc tables for smu. It is to create smu_table structure, and init smc tables such as TABLE_PPTABLE, TABLE_WATERMARKS, TABLE_SMU_METRICS, and etc. v2: add detailed info to describe this function Signed-off-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit b56240005f0cc1663ec290819497f85bd4367c62 Author: Huang Rui Date: Tue Dec 4 17:27:10 2018 +0800 drm/amd/powerplay: add placeholder of smu_initialize_pptable This patch adds placeholder of smu_initialize_pptable for smu. Signed-off-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 05cadcd339dd06809684235daad5676a3687d108 Author: Huang Rui Date: Tue Dec 4 17:14:41 2018 +0800 drm/amd/powerplay: add interface to read pptable from vbios This patch adds interface to read pptable from vbios for smu. Signed-off-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit e11c4fd578716882768e3008b1fd0a4ac6827a07 Author: Huang Rui Date: Sun Dec 2 18:25:00 2018 +0800 drm/amd/powerplay: add fw load checking interface This patch adds fw load checking interface for smu. Signed-off-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 3d2f5200a70282b8db5164ca1fe2028a0285e816 Author: Huang Rui Date: Sun Dec 2 18:12:10 2018 +0800 drm/amd/powerplay: add firmware loading interface This patch adds firmware loading interface for smu. Signed-off-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 0784552664ce1b2590796ba9187efce98edf4ca6 Author: Huang Rui Date: Thu Nov 29 14:01:47 2018 +0800 drm/amd/powerplay: add smu11 sub block for SMU IP This patch add smu11 sub ip block skeleton as placeholder Signed-off-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 137d63abbf6a0859e79b662e81d21170ecb75e59 Author: Huang Rui Date: Thu Nov 29 13:56:06 2018 +0800 drm/amd/powerplay: add new smu ip block This patch add amdgpu_smu ip block skeleton as placeholder. We plan use new smu ip block from Vega20. Signed-off-by: Huang Rui Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 6c55033a705a7f7fdacf952b579a424aad7507ef Author: YueHaibing Date: Tue Feb 26 05:48:28 2019 +0000 drm/amdgpu: remove set but not used variable 'vbi_time_out' Fixes gcc '-Wunused-but-set-variable' warning: drivers/gpu/drm/amd/amdgpu/si_dpm.c: In function 'si_program_response_times': drivers/gpu/drm/amd/amdgpu/si_dpm.c:4101:29: warning: variable 'backbias_response_time' set but not used [-Wunused-but-set-variable] It's never used since introduction in 841686df9f7d ("drm/amdgpu: add SI DPM support (v4)"), so can be removed Signed-off-by: YueHaibing Signed-off-by: Alex Deucher commit 1e608013490a271bd0b3a6b025ee079ca098d647 Author: YueHaibing Date: Wed Feb 20 03:31:50 2019 +0000 drm/amdgpu: remove set but not used variables 'vm, bo' Fixes gcc '-Wunused-but-set-variable' warning: drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c: In function 'update_gpuvm_pte': drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c:840:20: warning: variable 'bo' set but not used [-Wunused-but-set-variable] drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c:838:20: warning: variable 'vm' set but not used [-Wunused-but-set-variable] They're never used since introduction in a46a2cd103a8 ("drm/amdgpu: Add GPUVM memory management functions for KFD") Signed-off-by: YueHaibing Signed-off-by: Alex Deucher commit de6ee704d100c969e4a2ea7edbeebbde63d61e5f Author: YueHaibing Date: Mon Feb 18 13:59:35 2019 +0000 drm/ttm: remove set but not used variable 'bdev' Fixes gcc '-Wunused-but-set-variable' warning: drivers/gpu/drm/ttm/ttm_execbuf_util.c: In function 'ttm_eu_fence_buffer_objects': drivers/gpu/drm/ttm/ttm_execbuf_util.c:191:24: warning: variable 'bdev' set but not used [-Wunused-but-set-variable] It's not used any more and can be removed. Signed-off-by: YueHaibing Signed-off-by: Alex Deucher commit 0cd57eec1be3be30350c49d5ca2acf2363a71f95 Author: Yong Zhao Date: Mon Feb 25 17:50:43 2019 -0500 drm/amdgpu: Set VM_L2_CNTL.PDE_FAULT_CLASSIFICATION to 0 This is recommended by HW designers. Previously when it was set to 1, the PDE walk error in VM fault will be treated as PERMISSION_OR_INVALID_PAGE_FAULT rather than usually expected OTHER_FAULT. As a result, the retry control in VM_CONTEXT*_CNTL will change accordingly. The above behavior is kind of abnormal. Furthermore, the PDE_FAULT_CLASSIFICATION == 1 feature was targeted for very old ASICs and it never made it way to production. Therefore, we should set it to 0. Signed-off-by: Yong Zhao Acked-by: Christian König Acked-by: Alex Deucher Signed-off-by: Alex Deucher commit 6490bd764c9c63df1a65ae8de290c8fc36f53a21 Author: Yong Zhao Date: Mon Feb 25 12:56:53 2019 -0500 drm/amdgpu: Eliminate the set_pde_pte function pointer in amdgpu_gmc_funcs All the gmc_*_set_pde_pte functions are the same across different ASICs, so we can eliminate the set_pde_pte function pointer and instead use a generic function. Signed-off-by: Yong Zhao Reviewed-by: Christian König Signed-off-by: Alex Deucher commit 3c8899124a40b9cd11769c54fb57b67e5d43403d Author: Felix Kuehling Date: Fri Feb 22 14:44:41 2019 -0500 drm/ttm: Account for kernel allocations in kernel zone only Don't account for them in other zones such as dma32. The kernel page allocator has its own heuristics to avoid exhausting special zones for regular kernel allocations. Signed-off-by: Felix Kuehling Acked-by: Thomas Hellstrom Reviewed-by: Christian König Signed-off-by: Alex Deucher commit bf141a88b329d12c9aaea4f7e7a8fdbd2dfe987d Author: Thomas Zimmermann Date: Thu Feb 7 09:59:31 2019 +0100 drm: Use the same mmap-range offset and size for GEM and TTM GEM defines DRM_FILE_PAGE_OFFSET_{START,SIZE} constants for the mmap-able range of addresses. TTM can use them as well. Signed-off-by: Thomas Zimmermann Reviewed-by: Christian König Acked-by: Hans de Goede Signed-off-by: Alex Deucher commit bed2dd84212eb0151ae3bfc39cdaa25a951749c1 Author: Thomas Zimmermann Date: Thu Feb 7 09:59:30 2019 +0100 drm/ttm: Quick-test mmap offset in ttm_bo_mmap() A BO's address has to be at least the minimum offset. Sharing this test in ttm_bo_mmap() removes code from drivers. A full buffer-address validation is still done within drm_vma_offset_lockup_locked(). Signed-off-by: Thomas Zimmermann Reviewed-by: Christian König Acked-by: Hans de Goede Signed-off-by: Alex Deucher commit 7d1500f9fbfc78e6a34be3f8f4b5ba13e8227199 Author: Thomas Zimmermann Date: Thu Feb 7 09:59:29 2019 +0100 drm/ttm: Remove file_page_offset parameter from ttm_bo_device_init() The parameter file_page_offset is a constant shared by all drivers. Just replace it with the constant itself. Signed-off-by: Thomas Zimmermann Reviewed-by: Christian König Acked-by: Hans de Goede Signed-off-by: Alex Deucher commit aa8e2435b3d4878a0db8917805e86f61001fe174 Author: Thomas Zimmermann Date: Thu Feb 7 09:59:28 2019 +0100 drm/ttm: Define a single DRM_FILE_PAGE_OFFSET constant Most TTM drivers define the constant DRM_FILE_PAGE_OFFSET of the same value. The only exception is vboxvideo, which is being converted to the new offset by this patch. Unifying the constants in a single place simplifies the driver code. Signed-off-by: Thomas Zimmermann Reviewed-by: Christian König Acked-by: Hans de Goede Signed-off-by: Alex Deucher commit fd16ac8e4c95d853913f6a080a0bc19d64a943f8 Author: Thomas Zimmermann Date: Thu Feb 7 09:59:27 2019 +0100 staging/vboxvideo: Use same BO mmap offset as other drivers The vboxvideo driver mmaps BOs at 0x10000000 or higher. Changing the offset to 0x100000000 aligns the driver with all other DRM drivers. Signed-off-by: Thomas Zimmermann Reviewed-by: Hans de Goede Reviewed-by: Christian König Signed-off-by: Alex Deucher commit 6b8f7e3dee7883084932bbdfce471a2960c6db5d Author: Philip Yang Date: Thu Feb 21 12:39:21 2019 -0500 drm/amdgpu: fix HMM config dependency issue Only select HMM_MIRROR will get kernel config dependency warnings if CONFIG_HMM is missing in the config. Add depends on HMM will solve the issue. Add conditional compilation to fix compilation errors if HMM_MIRROR is not enabled as HMM config is not enabled. Remove unused function amdgpu_ttm_tt_mark_user_pages. Signed-off-by: Philip Yang Reviewed-by: Felix Kuehling Signed-off-by: Alex Deucher commit 915d3eecfa23693bac9e54cdacf84fb4efdcc5c4 Author: Philip Yang Date: Thu Dec 13 15:35:28 2018 -0500 drm/amdgpu: replace get_user_pages with HMM mirror helpers Use HMM helper function hmm_vma_fault() to get physical pages backing userptr and start CPU page table update track of those pages. Then use hmm_vma_range_done() to check if those pages are updated before amdgpu_cs_submit for gfx or before user queues are resumed for kfd. If userptr pages are updated, for gfx, amdgpu_cs_ioctl will restart from scratch, for kfd, restore worker is rescheduled to retry. HMM simplify the CPU page table concurrent update check, so remove guptasklock, mmu_invalidations, last_set_pages fields from amdgpu_ttm_tt struct. HMM does not pin the page (increase page ref count), so remove related operations like release_pages(), put_page(), mark_page_dirty(). Signed-off-by: Philip Yang Reviewed-by: Felix Kuehling Reviewed-by: Christian König Signed-off-by: Alex Deucher commit 8dd69e69f42397c9b17764a951c44480b340858e Author: Philip Yang Date: Wed Dec 5 14:03:43 2018 -0500 drm/amdkfd: avoid HMM change cause circular lock There is circular lock between gfx and kfd path with HMM change: lock(dqm) -> bo::reserve -> amdgpu_mn_lock To avoid this, move init/unint_mqd() out of lock(dqm), to remove nested locking between mmap_sem and bo::reserve. The locking order is: bo::reserve -> amdgpu_mn_lock(p->mn) Signed-off-by: Philip Yang Reviewed-by: Felix Kuehling Acked-by: Christian König Signed-off-by: Alex Deucher commit 57731a07795ae80790c6ae7d8e7001cdbd6d14c0 Author: Philip Yang Date: Mon Jul 23 17:45:46 2018 -0400 drm/amdgpu: use HMM callback to replace mmu notifier Replace our MMU notifier with hmm_mirror_ops.sync_cpu_device_pagetables callback. Enable CONFIG_HMM and CONFIG_HMM_MIRROR as a dependency in DRM_AMDGPU_USERPTR Kconfig. It supports both KFD userptr and gfx userptr paths. Signed-off-by: Philip Yang Reviewed-by: Felix Kuehling Reviewed-by: Christian König Signed-off-by: Alex Deucher commit e74673120b6b9497f1e044b3cf75d2fb5ed61fc3 Author: Marek Szyprowski Date: Mon Feb 18 15:34:09 2019 +0100 ARM: exynos: Move Exynos542x CPU state reset to pm_prepare() Reset the CPU state entry in sysram in pm_prepare() callback. That entry doesn't need to be reset for every suspended CPU, so make it symmetic with the code, which restores it in pm_resume() callback. Tested on Samsung Chromebook2 Pit (Exynos5420) and Pi (Exynos5800) boards. Signed-off-by: Marek Szyprowski Signed-off-by: Krzysztof Kozlowski commit 43e3b726f5e1b34e4d6bdacc72fdde84cfffaf13 Author: Helen Fornazier Date: Wed Mar 6 17:42:42 2019 -0500 media: vimc: stream: add docs to struct vimc_stream Add missing documentation for struct vimc_stream Signed-off-by: Helen Koike Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit b72e449521247a463572c8398a7517d231207f00 Author: Helen Fornazier Date: Wed Mar 6 17:42:41 2019 -0500 media: vimc: stream: cleanup frame field from struct vimc_stream There is no need to have the frame field in the vimc_stream struct. Signed-off-by: Helen Koike Tested-by: André Almeida Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 06dd94cccdd142423fa5ce9f5c3ea0274ca84709 Author: José Roberto de Souza Date: Thu Mar 14 16:01:13 2019 -0700 drm/i915: Fix PSR2 selective update corruption after PSR1 setup There is probably a issue in DMC firmwares(icl_dmc_ver1_07.bin and kbl_dmc_ver1_04.bin at least) that causes PSR2 SU to fail after exiting DC6 if EDP_PSR_TP1_TP3_SEL is kept in PSR_CTL, so for now lets workaround the issue by cleaning PSR_CTL before enable PSR2. v2: - Updated commit description and comment to state that it may be a DMC firmware issue (Rodrigo) - No need to RMW, let's write 0 to PSR_CTL(Dhinakaran) Cc: Dhinakaran Pandiyan Cc: Rodrigo Vivi Signed-off-by: José Roberto de Souza Reviewed-by: Rodrigo Vivi Reviewed-by: Dhinakaran Pandiyan Link: https://patchwork.freedesktop.org/patch/msgid/20190314230113.6571-1-jose.souza@intel.com commit 79d3fa9ea722850363da662ca70684dc5c0e1299 Author: Dongli Zhang Date: Tue Mar 12 09:00:31 2019 +0800 scsi: smartpqi: Use HCTX_TYPE_DEFAULT for blk_mq_tag_set->map Use HCTX_TYPE_DEFAULT instead of 0 to avoid hardcoding. Signed-off-by: Dongli Zhang Signed-off-by: Martin K. Petersen commit 485b0eca89269a6525b01bbc02249a58903977d3 Author: Dongli Zhang Date: Tue Mar 12 09:00:30 2019 +0800 scsi: qla2xxx: Use HCTX_TYPE_DEFAULT for blk_mq_tag_set->map Use HCTX_TYPE_DEFAULT instead of 0 to avoid hardcoding. Signed-off-by: Dongli Zhang Signed-off-by: Martin K. Petersen commit 6343e3efdc98b84fda3ebb526c379b7ea34a9ad2 Author: Dongli Zhang Date: Tue Mar 12 09:00:29 2019 +0800 scsi: virtio_scsi: Use HCTX_TYPE_DEFAULT for blk_mq_tag_set->map Use HCTX_TYPE_DEFAULT instead of 0 to avoid hardcoding. Signed-off-by: Dongli Zhang Signed-off-by: Martin K. Petersen commit 99bbf484c6df831290ef27435fd39f45beb4462e Author: Dongli Zhang Date: Tue Mar 12 09:00:28 2019 +0800 scsi: core: Use HCTX_TYPE_DEFAULT for blk_mq_tag_set->map Use HCTX_TYPE_DEFAULT instead of 0 to avoid hardcoding. Signed-off-by: Dongli Zhang Signed-off-by: Martin K. Petersen commit 5efbc65faeda3577d58c820557a0a57d2994b01b Author: Helen Fornazier Date: Wed Mar 6 17:42:39 2019 -0500 media: vimc: cap: fix step width/height in enum framesize The type V4L2_FRMSIZE_TYPE_CONTINUOUS expects a step of 1. This fixes v4l2-compliance test error: fail: v4l2-test-formats.cpp(184): invalid step_width/height for continuous framesize test VIDIOC_ENUM_FMT/FRAMESIZES/FRAMEINTERVALS: FAIL Signed-off-by: Helen Koike Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 2978a505aaa981b279ef359f74ba93d25098e0a0 Author: Helen Fornazier Date: Wed Mar 6 17:42:38 2019 -0500 media: vimc: stream: fix thread state before sleep The state TASK_UNINTERRUPTIBLE should be set just before schedule_timeout() call, so it knows the sleep mode it should enter. There is no point in setting TASK_UNINTERRUPTIBLE at the initialization of the thread as schedule_timeout() will set the state back to TASK_RUNNING. This fixes a warning in __might_sleep() call, as it's expecting the task to be in TASK_RUNNING state just before changing the state to a sleeping state. Reported-by: Hans Verkuil Signed-off-by: Helen Koike Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 63a06181d7ce169d09843645c50fea1901bc9f0a Author: Kangjie Lu Date: Fri Mar 15 02:11:56 2019 -0500 scsi: ufs: fix a missing check of devm_reset_control_get devm_reset_control_get could fail, so the fix checks its return value and passes the error code upstream in case it fails. Signed-off-by: Kangjie Lu Acked-by: Avri Altman Signed-off-by: Martin K. Petersen commit 9e2a07e128ae844a14e32d964443cff0688da2aa Author: Colin Ian King Date: Sun Mar 17 18:15:32 2019 +0000 scsi: pm8001: clean up various indentation issues There are several lines of code where the indentation is at an incorrect level; fix these. Signed-off-by: Colin Ian King Acked-by: Jack Wang Signed-off-by: Martin K. Petersen commit 8cee3e169edb48be92323759c19374f0db7981fc Author: Finn Thain Date: Fri Mar 8 08:49:02 2019 +1100 scsi: NCR5380: Remove set but unused variable Cc: Michael Schmitz Signed-off-by: Finn Thain Signed-off-by: Martin K. Petersen commit df135e32d72cc4d4af54ff748d6a2af78e38d331 Author: Finn Thain Date: Fri Mar 8 08:49:02 2019 +1100 scsi: NCR5380: Avoid compiler warning when -Wimplicit-fallthrough is enabled Adjust comments accordingly. Cc: Gustavo A. R. Silva Cc: Michael Schmitz Signed-off-by: Finn Thain Signed-off-by: Martin K. Petersen commit 2e96fe92d73497f83f2d2c0f468556ab86d86e8e Author: Bart Van Assche Date: Mon Mar 18 20:06:42 2019 -0700 scsi: core: Remove OSD include files All code from which the OSD include files were included has been removed. Hence also remove the include files themselves. See also commit 19fcae3d4f2d ("scsi: remove the SCSI OSD library"). Cc: Christoph Hellwig Cc: Jens Axboe Signed-off-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit 85ab1aa1fac17bcd79d6d08f835957b46870d0d0 Author: Helen Fornazier Date: Wed Mar 6 17:42:37 2019 -0500 media: vimc: deb: fix default sink bayer format The format of the sink pad should be a bayer mbus format. This fixes a kernel NULL pointer dereference error that was caused when the stream starts because the configured format was not found in the pixelmap table. Reported-by: Hans Verkuil Signed-off-by: Helen Koike Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit f14f6aa0b4423632ab76f3eed3a28159049451ef Author: Souptick Joarder Date: Mon Feb 4 10:01:43 2019 -0500 media: videobuf2: Return error after allocation failure There is no point to continuing assignment after memory allocation failed, rather throw error immediately. Signed-off-by: Souptick Joarder Signed-off-by: Hans Verkuil [hverkuil-cisco@xs4all.nl: rebase and remove empty line before the if] Signed-off-by: Mauro Carvalho Chehab commit e6f8bd59c28f758feea403a70d6c3ef28c50959f Author: Hans Verkuil Date: Tue Feb 26 07:54:22 2019 -0500 media: gspca: do not resubmit URBs when streaming has stopped When streaming is stopped all URBs are killed, but in fill_frame and in bulk_irq this results in an attempt to resubmit the killed URB. That is not what you want and causes spurious kernel messages. So check if streaming has stopped before resubmitting. Also check against gspca_dev->streaming rather than vb2_start_streaming_called() since vb2_start_streaming_called() will return true when in stop_streaming, but gspca_dev->streaming is set to false when stop_streaming is called. Fixes: 6992effe5344 ("gspca: Kill all URBs before releasing any of them") Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit c0327e67ecd86e88f5bc5fd54bfdf9b422a1c93f Author: Christoph Hellwig Date: Fri Mar 15 09:44:19 2019 +0100 scsi: core: remove the scsi_ioctl_reset export This function is only used inside the SCSI midlayer. Signed-off-by: Christoph Hellwig Reviewed-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit f712e5358d430fe9a7d7d4848f7dbff84b47de3a Author: Shuah Khan Date: Mon Feb 25 10:32:27 2019 -0500 media: au0828: minor fix to a misleading comment in _close() Fix a misleading comment in _close() and a spelling error. Reviewed-by: Niklas Söderlund Signed-off-by: Shuah Khan Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 3eb87773dee63309967b1d4d8b9896f4e4fdd640 Author: Shuah Khan Date: Fri Feb 22 19:17:09 2019 -0500 media: replace WARN_ON in __media_pipeline_start() __media_pipeline_start() does WARN_ON() when active pipe doesn't match the input arg entity's pipe. Replace WARN_ON with a conditional and error message that includes names of both entities. Signed-off-by: Shuah Khan Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit e855165f3dae6f71da859a5f00b85d5368641d61 Author: Arnd Bergmann Date: Fri Feb 22 09:50:03 2019 -0500 media: vicodec: avoid clang frame size warning Clang-9 makes some different inlining decisions compared to gcc, which leads to a warning about a possible stack overflow problem when building with CONFIG_KASAN, including when setting asan-stack=0, which avoids most other frame overflow warnings: drivers/media/platform/vicodec/codec-fwht.c:673:12: error: stack frame size of 2224 bytes in function 'encode_plane' Manually adding noinline_for_stack annotations in those functions called by encode_plane() or decode_plane() that require a significant amount of kernel stack makes this impossible to happen with any compiler. Signed-off-by: Arnd Bergmann Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 7afb0df554292dca7568446f619965fb8153085d Author: Dan Carpenter Date: Fri Feb 22 01:37:02 2019 -0500 media: cx18: update *pos correctly in cx18_read_pos() We should be updating *pos. The current code is a no-op. Fixes: 1c1e45d17b66 ("V4L/DVB (7786): cx18: new driver for the Conexant CX23418 MPEG encoder chip") Signed-off-by: Dan Carpenter Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit f8e579f3ca0973daef263f513da5edff520a6c0d Author: Dan Carpenter Date: Fri Feb 22 01:36:41 2019 -0500 media: ivtv: update *pos correctly in ivtv_read_pos() We had intended to update *pos, but the current code is a no-op. Fixes: 1a0adaf37c30 ("V4L/DVB (5345): ivtv driver for Conexant cx23416/cx23415 MPEG encoder/decoder") Signed-off-by: Dan Carpenter Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit ed713a4a1367aca5c0f2f329579465db00c17995 Author: Arnd Bergmann Date: Tue Feb 19 12:01:58 2019 -0500 media: go7007: avoid clang frame overflow warning with KASAN clang-8 warns about one function here when KASAN is enabled, even without the 'asan-stack' option: drivers/media/usb/go7007/go7007-fw.c:1551:5: warning: stack frame size of 2656 bytes in function I have reported this issue in the llvm bugzilla, but to make it work with the clang-8 release, a small annotation is still needed. Link: https://bugs.llvm.org/show_bug.cgi?id=38809 Signed-off-by: Arnd Bergmann Signed-off-by: Hans Verkuil [hverkuil-cisco@xs4all.nl: fix checkpatch warning] Signed-off-by: Mauro Carvalho Chehab commit 03aa4f191a36f33fce015387f84efa0eee94408e Author: Arnd Bergmann Date: Tue Feb 19 12:01:56 2019 -0500 media: saa7146: avoid high stack usage with clang Two saa7146/hexium files contain a construct that causes a warning when built with clang: drivers/media/pci/saa7146/hexium_orion.c:210:12: error: stack frame size of 2272 bytes in function 'hexium_probe' [-Werror,-Wframe-larger-than=] static int hexium_probe(struct saa7146_dev *dev) ^ drivers/media/pci/saa7146/hexium_gemini.c:257:12: error: stack frame size of 2304 bytes in function 'hexium_attach' [-Werror,-Wframe-larger-than=] static int hexium_attach(struct saa7146_dev *dev, struct saa7146_pci_extension_data *info) ^ This one happens regardless of KASAN, and the problem is that a constructor to initialize a dynamically allocated structure leads to a copy of that structure on the stack, whereas gcc initializes it in place. Link: https://bugs.llvm.org/show_bug.cgi?id=40776 Signed-off-by: Arnd Bergmann Reviewed-by: Nick Desaulniers Signed-off-by: Hans Verkuil [hverkuil-cisco@xs4all.nl: fix checkpatch warnings] Signed-off-by: Mauro Carvalho Chehab commit 93ab8c8fc81e78b700b2b375ebc4847f0c1f8aed Author: Hannes Reinecke Date: Tue Feb 26 16:00:39 2019 +0100 scsi: core: reshuffle no_scsi2_lun_in_cdb for better alignment no_scsi2_lun_in_cdb declares a new bitfield, but we should rather move it to the existing bitfield for better alignment. Signed-off-by: Hannes Reinecke Reviewed-by: Christoph Hellwig Signed-off-by: Martin K. Petersen commit d30c4ffc06113d280fd7b5294ab384658a70c1f1 Author: Ken Sloat Date: Mon Feb 4 09:18:13 2019 -0500 media: atmel-isc: Add support for BT656 with CRC decoding The ISC driver currently supports ITU-R 601 encoding which utilizes the external hsync and vsync signals. ITU-R 656 format removes the need for these pins by embedding the sync pulses within the data packet. To support this feature, enable necessary register bits when this feature is enabled via device tree. Signed-off-by: Ken Sloat Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit dea255334c97c61b112dc29b77cd1d0ed4b79fca Author: Jernej Skrabec Date: Mon Jan 28 15:55:01 2019 -0500 media: cedrus: Add support for H6 H6 has improved VPU. It supports 10-bit HEVC decoding and AFBC output format for HEVC. Signed-off-by: Jernej Skrabec Acked-by: Maxime Ripard Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 70a4f5cda82f7197c350099b66fd23506620810e Author: Jernej Skrabec Date: Mon Jan 28 15:55:00 2019 -0500 media: cedrus: Add a quirk for not setting DMA offset H6 VPU doesn't work if DMA offset is set. Add a quirk for it. Signed-off-by: Jernej Skrabec Acked-by: Maxime Ripard Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit dfecb7b2564dcb5fa0c36a615b0d5960eff413ac Author: Jernej Skrabec Date: Mon Jan 28 15:54:59 2019 -0500 media: dt-bindings: media: cedrus: Add H6 compatible This adds a compatible for H6. H6 VPU supports 10-bit HEVC decoding and additional AFBC output format for HEVC. Signed-off-by: Jernej Skrabec Acked-by: Maxime Ripard Reviewed-by: Rob Herring Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit c6e4e2c403b22c7733738a5008c4eeba9ad8478d Author: Hans Verkuil Date: Thu Feb 28 07:35:46 2019 -0500 media: vb2: drop VB2_BUF_STATE_REQUEUEING The last user of this state has been converted, so we can now drop this. Requeueing causes the queue to become unordered, which causes problems with requests and (in the future) fences. Since it is no longer needed, just get rid of this. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 0cd25448a198677d4ccd25ec4aeb946d514b1d5b Author: Hans Verkuil Date: Thu Feb 28 07:35:45 2019 -0500 media: cobalt: replace VB2_BUF_STATE_REQUEUEING by _ERROR The cobalt driver is the only driver that uses VB2_BUF_STATE_REQUEUEING. Replace it by VB2_BUF_STATE_ERROR so we can drop support for the REQUEUEING state. The requeueing state was used in the cobalt driver to optimize buffer handling while waiting for a valid signal: by requeueing buffers internally there was no need for userspace to handle and requeue buffers with the ERROR flag set. However, requeueing also makes the buffer handling unordered, which is generally a bad idea. Requeueing also does not work with requests and any future fence support. Since it is really a minor optimization in the cobalt driver it is best to just return the buffer in an ERROR state. With this change support for requeueing can now be removed in vb2. Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit b3ce6f6ff3c260ee53b0f2236e5fd950d46957da Author: Hugues Fruchet Date: Thu Feb 28 12:10:53 2019 -0500 media: stm32-dcmi: fix DMA corruption when stopping streaming Avoid call of dmaengine_terminate_all() between dmaengine_prep_slave_single() and dmaengine_submit() by locking the whole DMA submission sequence. Signed-off-by: Hugues Fruchet Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit ab41b99e7e55c85f29ff7b54718ccbbe051905e7 Author: Hugues Fruchet Date: Thu Feb 28 12:09:17 2019 -0500 media: stm32-dcmi: fix check of pm_runtime_get_sync return value Start streaming was sometimes failing because of pm_runtime_get_sync() non-0 return value. In fact return value was not an error but a positive value (1), indicating that PM was already enabled. Fix this by going to error path only with negative return value. Signed-off-by: Hugues Fruchet Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 2c2a8dc32cebb71e42cfc2ed1bd433cbec792207 Author: Shaobo He Date: Thu Feb 28 17:54:06 2019 -0500 media: platform/sh_veu.c: remove redundant NULL pointer checks Function `sh_veu_find_fmt` returns an address that is an addition of a base pointer `sh_veu_fmt` and an offset. The base pointer refers to a global variable of which address cannot be NULL. Therefore, this commit removes the NULL pointer checks on the return values of function `sh_veu_find_fmt`. Signed-off-by: Shaobo He Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit dea37a97265588da604c6ba80160a287b72c7bfd Author: YueHaibing Date: Wed Mar 6 07:45:08 2019 -0500 media: cpia2: Fix use-after-free in cpia2_exit Syzkaller report this: BUG: KASAN: use-after-free in sysfs_remove_file_ns+0x5f/0x70 fs/sysfs/file.c:468 Read of size 8 at addr ffff8881f59a6b70 by task syz-executor.0/8363 CPU: 0 PID: 8363 Comm: syz-executor.0 Not tainted 5.0.0-rc8+ #3 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014 Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0xfa/0x1ce lib/dump_stack.c:113 print_address_description+0x65/0x270 mm/kasan/report.c:187 kasan_report+0x149/0x18d mm/kasan/report.c:317 sysfs_remove_file_ns+0x5f/0x70 fs/sysfs/file.c:468 sysfs_remove_file include/linux/sysfs.h:519 [inline] driver_remove_file+0x40/0x50 drivers/base/driver.c:122 usb_remove_newid_files drivers/usb/core/driver.c:212 [inline] usb_deregister+0x12a/0x3b0 drivers/usb/core/driver.c:1005 cpia2_exit+0xa/0x16 [cpia2] __do_sys_delete_module kernel/module.c:1018 [inline] __se_sys_delete_module kernel/module.c:961 [inline] __x64_sys_delete_module+0x3dc/0x5e0 kernel/module.c:961 do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe RIP: 0033:0x462e99 Code: f7 d8 64 89 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f86f3754c58 EFLAGS: 00000246 ORIG_RAX: 00000000000000b0 RAX: ffffffffffffffda RBX: 000000000073bf00 RCX: 0000000000462e99 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000020000300 RBP: 0000000000000002 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 00007f86f37556bc R13: 00000000004bcca9 R14: 00000000006f6b48 R15: 00000000ffffffff Allocated by task 8363: set_track mm/kasan/common.c:85 [inline] __kasan_kmalloc.constprop.3+0xa0/0xd0 mm/kasan/common.c:495 kmalloc include/linux/slab.h:545 [inline] kzalloc include/linux/slab.h:740 [inline] bus_add_driver+0xc0/0x610 drivers/base/bus.c:651 driver_register+0x1bb/0x3f0 drivers/base/driver.c:170 usb_register_driver+0x267/0x520 drivers/usb/core/driver.c:965 0xffffffffc1b4817c do_one_initcall+0xfa/0x5ca init/main.c:887 do_init_module+0x204/0x5f6 kernel/module.c:3460 load_module+0x66b2/0x8570 kernel/module.c:3808 __do_sys_finit_module+0x238/0x2a0 kernel/module.c:3902 do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe Freed by task 8363: set_track mm/kasan/common.c:85 [inline] __kasan_slab_free+0x130/0x180 mm/kasan/common.c:457 slab_free_hook mm/slub.c:1430 [inline] slab_free_freelist_hook mm/slub.c:1457 [inline] slab_free mm/slub.c:3005 [inline] kfree+0xe1/0x270 mm/slub.c:3957 kobject_cleanup lib/kobject.c:662 [inline] kobject_release lib/kobject.c:691 [inline] kref_put include/linux/kref.h:67 [inline] kobject_put+0x146/0x240 lib/kobject.c:708 bus_remove_driver+0x10e/0x220 drivers/base/bus.c:732 driver_unregister+0x6c/0xa0 drivers/base/driver.c:197 usb_register_driver+0x341/0x520 drivers/usb/core/driver.c:980 0xffffffffc1b4817c do_one_initcall+0xfa/0x5ca init/main.c:887 do_init_module+0x204/0x5f6 kernel/module.c:3460 load_module+0x66b2/0x8570 kernel/module.c:3808 __do_sys_finit_module+0x238/0x2a0 kernel/module.c:3902 do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290 entry_SYSCALL_64_after_hwframe+0x49/0xbe The buggy address belongs to the object at ffff8881f59a6b40 which belongs to the cache kmalloc-256 of size 256 The buggy address is located 48 bytes inside of 256-byte region [ffff8881f59a6b40, ffff8881f59a6c40) The buggy address belongs to the page: page:ffffea0007d66980 count:1 mapcount:0 mapping:ffff8881f6c02e00 index:0x0 flags: 0x2fffc0000000200(slab) raw: 02fffc0000000200 dead000000000100 dead000000000200 ffff8881f6c02e00 raw: 0000000000000000 00000000800c000c 00000001ffffffff 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff8881f59a6a00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff8881f59a6a80: 00 00 00 00 00 00 00 00 00 00 fc fc fc fc fc fc >ffff8881f59a6b00: fc fc fc fc fc fc fc fc fb fb fb fb fb fb fb fb ^ ffff8881f59a6b80: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff8881f59a6c00: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc cpia2_init does not check return value of cpia2_init, if it failed in usb_register_driver, there is already cleanup using driver_unregister. No need call cpia2_usb_cleanup on module exit. Reported-by: Hulk Robot Signed-off-by: YueHaibing Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 8194fe94ab08f56ea55653df924647d23873d18c Author: Bart Van Assche Date: Tue Mar 19 10:45:09 2019 -0700 kernel/workqueue: Document wq_worker_last_func() argument This patch avoids that the following warning is reported when building with W=1: kernel/workqueue.c:938: warning: Function parameter or member 'task' not described in 'wq_worker_last_func' Signed-off-by: Bart Van Assche Signed-off-by: Tejun Heo commit 3235d3946429f64b19addfd89fc926a36eaec06a Author: Alexandre Courbot Date: Wed Mar 6 01:15:02 2019 -0500 media: mtk-vcodec: fix access to vb2_v4l2_buffer struct Commit 0650a91499e0 ("media: mtk-vcodec: Correct return type for mem2mem buffer helpers") fixed the return types for mem2mem buffer helper functions, but omitted two occurrences that are accessed in the mtk_v4l2_debug() macro. These only trigger compiler errors when DEBUG is defined. Fixes: 0650a91499e0 ("media: mtk-vcodec: Correct return type for mem2mem buffer helpers") Signed-off-by: Alexandre Courbot Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit f29a317b9c33be536ab516a89a921719f907137e Author: Biju Das Date: Fri Mar 1 10:45:36 2019 -0500 media: rcar-vin: Enable support for r8a774a1 Add the SoC specific information for RZ/G2M(r8a774a1) SoC. The VIN module of RZ/G2M is similar to R-Car M3-W. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Acked-by: Niklas Söderlund Reviewed-by: Simon Horman Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit b8f92200d16e68e51c55f8ea7c2e251c423aac76 Author: Biju Das Date: Fri Mar 1 10:45:35 2019 -0500 media: dt-bindings: media: rcar_vin: Add r8a774a1 support Document RZ/G2M (R8A774A1) SoC bindings. The RZ/G2M SoC is similar to R-Car M3-W (R8A7796). Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Acked-by: Niklas Söderlund Reviewed-by: Simon Horman Reviewed-by: Rob Herring Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit d4b87d459a4cfc8009ec4ee92893d84cef277f61 Author: Biju Das Date: Fri Mar 1 10:45:34 2019 -0500 media: rcar-csi2: Enable support for r8a774a1 Add the MIPI CSI-2 driver support for RZ/G2M(r8a774a1) SoC. The CSI-2 module of RZ/G2M is similar to R-Car M3-W. Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Acked-by: Niklas Söderlund Reviewed-by: Simon Horman Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 29f6c4227e450cd9d20615c08478bd4d3e04a711 Author: Biju Das Date: Fri Mar 1 10:45:33 2019 -0500 media: dt-bindings: media: rcar-csi2: Add r8a774a1 support Document RZ/G2M (R8A774A1) SoC bindings. The RZ/G2M SoC is similar to R-Car M3-W (R8A7796). Signed-off-by: Biju Das Reviewed-by: Fabrizio Castro Acked-by: Niklas Söderlund Reviewed-by: Simon Horman Reviewed-by: Rob Herring Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 2dba3de6e77fdf66ba33bd28c7698d0304a35a25 Author: Geert Uytterhoeven Date: Fri Mar 1 04:38:31 2019 -0500 media: rcar_drif: Remove devm_ioremap_resource() error printing devm_ioremap_resource() already prints an error message on failure, so there is no need to repeat that. Signed-off-by: Geert Uytterhoeven Reviewed-by: Niklas Söderlund Reviewed-by: Simon Horman Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 5eaa30aedd7fc4e6a9f077b7ae5b42c9965d5b98 Author: Rui Miguel Silva Date: Fri Feb 22 05:17:10 2019 -0500 media: imx7-media-csi: don't store a floating pointer if imx7_csi_try_fmt() fails, cc variable won't be initialized and csi->cc[sdformat->pad] would be pointing to a random location. Reported-by: Dan Carpenter Signed-off-by: Rui Miguel Silva Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 1fc79c4bb19ba5068fc42d3a66655c3b175f9934 Author: Dan Carpenter Date: Fri Feb 22 01:32:26 2019 -0500 media: staging/imx7: Fix an error code in mipi_csis_clk_get() We accidentally return IS_ERR(), which is 1, instead of the PTR_ERR() which is the negative error code. Fixes: 7807063b862b ("media: staging/imx7: add MIPI CSI-2 receiver subdev for i.MX7") Signed-off-by: Dan Carpenter Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit dee747f88167124884a918855c1f438e2f7f39e2 Author: Steve Longerbeam Date: Wed Feb 20 18:53:32 2019 -0500 media: imx: Don't register IPU subdevs/links if CSI port missing The second IPU internal sub-devices were being registered and links to them created even when the second IPU is not present. This is wrong for i.MX6 S/DL and i.MX53 which have only a single IPU. Fixes: e130291212df5 ("[media] media: Add i.MX media core driver") Signed-off-by: Steve Longerbeam Reviewed-by: Philipp Zabel Cc: stable@vger.kernel.org Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 085b26da62211cb77622008082adff56aefa771d Author: Steve Longerbeam Date: Wed Feb 20 18:53:31 2019 -0500 media: imx: Rename functions that add IPU-internal subdevs For the functions that add and remove the internal IPU subdevice descriptors, rename them to make clear they are the subdevs internal to the IPU. Also rename the platform data structure for the internal IPU subdevices. No functional changes. Signed-off-by: Steve Longerbeam Acked-by: Philipp Zabel Cc: stable@vger.kernel.org Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 107927fa597c99eaeee4f51865ca0956ec71b6a2 Author: Steve Longerbeam Date: Wed Feb 20 18:53:30 2019 -0500 media: imx: Clear fwnode link struct for each endpoint iteration In imx_media_create_csi_of_links(), the 'struct v4l2_fwnode_link' must be cleared for each endpoint iteration, otherwise if the remote port has no "reg" property, link.remote_port will not be reset to zero. This was discovered on the i.MX53 SMD board, since the OV5642 connects directly to ipu1_csi0 and has a single source port with no "reg" property. Fixes: 621b08eabcddb ("media: staging/imx: remove static media link arrays") Signed-off-by: Steve Longerbeam Cc: stable@vger.kernel.org Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 904371f90b2c0c749a5ab75478c129a4682ac3d8 Author: Steve Longerbeam Date: Wed Feb 20 18:53:29 2019 -0500 media: imx: csi: Allow unknown nearest upstream entities On i.MX6, the nearest upstream entity to the CSI can only be the CSI video muxes or the Synopsys DW MIPI CSI-2 receiver. However the i.MX53 has no CSI video muxes or a MIPI CSI-2 receiver. So allow for the nearest upstream entity to the CSI to be something other than those. Fixes: bf3cfaa712e5c ("media: staging/imx: get CSI bus type from nearest upstream entity") Signed-off-by: Steve Longerbeam Cc: stable@vger.kernel.org Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 3bb7b493198353142c0acb4ed95cddd17a2c5d16 Author: Hans Verkuil Date: Wed Feb 20 03:59:00 2019 -0500 media: imx7: fix smatch error Fixes this smatch error: drivers/staging/media/imx/imx7-mipi-csis.c:716 mipi_csis_set_fmt() error: we previously assumed 'fmt' could be null (see line 709) fmt is never NULL, so remove the 'fmt &&' condition. Signed-off-by: Hans Verkuil Reviewed-by: Rui Miguel Silva Signed-off-by: Mauro Carvalho Chehab commit ce3c2433b074eb9d569a0f63a15d6fd5dbc87f02 Author: Steve Longerbeam Date: Tue Feb 19 20:09:38 2019 -0500 media: imx: vdic: Restore default case to prepare_vdi_in_buffers() Restore a default case to prepare_vdi_in_buffers() to fix the following smatch errors: drivers/staging/media/imx/imx-media-vdic.c:236 prepare_vdi_in_buffers() error: uninitialized symbol 'prev_phys'. drivers/staging/media/imx/imx-media-vdic.c:237 prepare_vdi_in_buffers() error: uninitialized symbol 'curr_phys'. drivers/staging/media/imx/imx-media-vdic.c:238 prepare_vdi_in_buffers() error: uninitialized symbol 'next_phys'. Fixes: 6e537b58de772 ("media: imx: vdic: rely on VDIC for correct field order") Reported-by: Hans Verkuil Signed-off-by: Steve Longerbeam Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit d950fd992ef89f39ff8908f389ed6cbd2fdc0513 Author: Niklas Söderlund Date: Wed Feb 13 17:07:54 2019 -0500 media: rcar-vin: Fix lockdep warning at stream on Changes to v4l2-fwnode in commit [1] triggered a lockdep warning in rcar-vin. The first attempt to solve this warning in the rcar-vin driver was incomplete and only pushed the warning to happen at stream on time instead of at probe time. This change reverts the incomplete fix and properly fixes the warning by removing the need to hold the rcar-vin specific group lock when calling v4l2_async_notifier_parse_fwnode_endpoints_by_port(). And instead takes it in the callback where it's really needed. [1] commit eae2aed1eab9bf08 ("media: v4l2-fwnode: Switch to v4l2_async_notifier_add_subdev") Fixes: 6458afc8c49148f0 ("media: rcar-vin: remove unneeded locking in async callbacks") Signed-off-by: Niklas Söderlund Reviewed-by: Kieran Bingham Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab commit 2b177f2849d23061508bb13594cc1bff1ccb46c9 Author: Hans Verkuil Date: Tue Mar 5 03:36:20 2019 -0500 media: vimc: use new release op Use the new v4l2_subdev_internal_ops release op to free the subdev memory only when the last user closed the file handle. Move v4l2_device_unregister_subdev() to the end of the vimc_ent_sd_unregister() function since now the unregister_subdev() call may free the vimc_ent_device struct which is used after the unregister_subdev() call. So this now has to be done last. Signed-off-by: Hans Verkuil Reviewed-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab commit 3650a23eda89f99b964fbd63a20320fafaa73e33 Author: Hans Verkuil Date: Thu Feb 21 08:47:28 2019 -0500 media: vimc: free vimc_cap_device when the last user disappears Don't free vimc_cap_device immediately, instead do this in the video_device release function which is called when the last user closes the video device. Only then is it safe to free the memory. Signed-off-by: Hans Verkuil Reviewed-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab commit f74267b51cb36321f777807b2e04ca02167ecc08 Author: Hans Verkuil Date: Fri Mar 8 08:02:26 2019 -0500 media: vimc: zero the media_device on probe The media_device is part of a static global vimc_device struct. The media framework expects this to be zeroed before it is used, however, since this is a global this is not the case if vimc is unbound and then bound again. So call memset to ensure any left-over values are cleared. Signed-off-by: Hans Verkuil Reviewed-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab commit 218bf10e39ed5fb22a48dee40bfd2bbcb91693ba Author: Hans Verkuil Date: Fri Mar 1 06:11:27 2019 -0500 media: v4l2-subdev: handle module refcounting here The module ownership refcounting was done in media_entity_get/put, but that was very confusing and it did not work either in case an application had a v4l-subdevX device open and the module was unbound. When the v4l-subdevX device was closed the media_entity_put was never called and the module refcount was left one too high, making it impossible to unload it. Since v4l2-subdev.c was the only place where media_entity_get/put was called, just move the functionality to v4l2-subdev.c and drop those confusing entity functions. Store the module in subdev_fh so module_put no longer depends on the media_entity struct. Signed-off-by: Hans Verkuil Reviewed-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab commit 0e43734d4c46e156785bb1d2acc5b3c10b7d5dd5 Author: Hans Verkuil Date: Thu Feb 21 08:37:42 2019 -0500 media: v4l2-subdev: add release() internal op If the subdevice created a device node, then the v4l2_subdev cannot be freed until the last user of the device node closes it. This means that we need a release() callback in v4l2_subdev_internal_ops that is called from the video_device release function so the subdevice driver can postpone freeing memory until the that callback is called. If no video device node was created then the release callback can be called immediately when the subdev is unregistered. Signed-off-by: Hans Verkuil Reviewed-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab commit ea6c7e34f3b28e165988aa7391310752969842e8 Author: Hans Verkuil Date: Thu Feb 21 08:35:15 2019 -0500 media: vim2m: replace devm_kzalloc by kzalloc It is not possible to use devm_kzalloc since that memory is freed immediately when the device instance is unbound. Various objects like the video device may still be in use since someone has the device node open, and when that is closed it expects the memory to be around. So use kzalloc and release it at the appropriate time. Signed-off-by: Hans Verkuil Reviewed-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab commit 57ac534828798affcf13b6f9122dfac7bf135dd0 Author: Hans Verkuil Date: Thu Feb 21 08:23:50 2019 -0500 media: vivid: use vzalloc for dev->bitmap_out When vivid is unloaded it used vfree to free dev->bitmap_out, but it was actually allocated using kmalloc. Use vzalloc instead, conform what vivid-vid-cap.c does. Signed-off-by: Hans Verkuil Reviewed-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab commit 13deaec42578fb4da844b0c81d13a88b59fdae65 Author: Hans Verkuil Date: Thu Feb 21 08:22:41 2019 -0500 media: media-devnode: fill in media chardev kobject to ease debugging The media chardev kobject has no name, which made it hard to debug when kobject debugging is turned on. Signed-off-by: Hans Verkuil Reviewed-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab commit 7dfccff14f57c65f6ae4c49aea8eb5f7bf39a840 Author: Hans Verkuil Date: Thu Feb 21 08:21:14 2019 -0500 media: cec: fill in cec chardev kobject to ease debugging The cec chardev kobject has no name, which made it hard to debug when kobject debugging is turned on. Signed-off-by: Hans Verkuil Reviewed-by: Laurent Pinchart Signed-off-by: Mauro Carvalho Chehab commit d095986d6904b95cf4d6344822ddb6e5a9003aaf Author: James Smart Date: Tue Mar 12 16:30:33 2019 -0700 scsi: lpfc: Update lpfc version to 12.2.0.1 Update lpfc version to 12.2.0.0 Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit 95df18c253e762c6970ea55835bcc912e1f339b2 Author: James Smart Date: Tue Mar 12 16:30:32 2019 -0700 scsi: lpfc: Update Copyright in driver version Revise driver copyright message to show 2019. Update couple of files modified by 12.2.0.1 patch set. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit 2c013a3a6b75904b446e1626f30d12c66d6a7bb4 Author: James Smart Date: Tue Mar 12 16:30:31 2019 -0700 scsi: lpfc: Enhance 6072 log string Update the 6072 log message string to print the whole 32 bits of the extended status. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit c835c0854c843f7412f519d9b810cefa14889ee6 Author: James Smart Date: Tue Mar 12 16:30:30 2019 -0700 scsi: lpfc: Fix duplicate log message numbers Driver had duplicated log message numbers making debug difficult. Make all messages unique. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit c1a21ebc0fa63dcdebd47b410170ea20eda41e1f Author: James Smart Date: Tue Mar 12 16:30:29 2019 -0700 scsi: lpfc: Specify node affinity for queue memory allocation Change the SLI4 queue creation code to use NUMA node based memory allocation based on the cpu the queues will be related to. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit 9afbee3d62a40532441d0de36ef3eaa38661a7bf Author: James Smart Date: Tue Mar 12 16:30:28 2019 -0700 scsi: lpfc: Reduce memory footprint for lpfc_queue Currently the driver maintains a sideband structure which has a pointer for each queue element. However, at 8 bytes per pointer, and up to 4k elements per queue, and 100s of queues, this can take up a lot of memory. Convert the driver to using an access routine that calculates the element address based on its index rather than using the pointer table. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit 9a66d990c7429d61c1cdc6feb22e559da587a0db Author: James Smart Date: Tue Mar 12 16:30:27 2019 -0700 scsi: lpfc: Add loopback testing to trunking mode When in trunking mode, the adapter can be placed into diagnostic mode and each link in the trunk tested via loopback. Add support to the driver to perform per-link loopback testing when in trunking mode. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit f3339800f98c30bcca1b70e4201f38b41d4926b1 Author: James Smart Date: Tue Mar 12 16:30:26 2019 -0700 scsi: lpfc: Fix link speed reporting for 4-link trunk Driver is using uint16_t and is encountering an overflow of the 16bits when calculating link speed. Fix by using a u32 type. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit 19193ff34e8d72676f3022d46893ac769f457a11 Author: James Smart Date: Tue Mar 12 16:30:25 2019 -0700 scsi: lpfc: Fix handling of trunk links state reporting If all the trunk links drop and a single link resumes, the link_state is not properly reported. When trunked, the driver receives two async cqes. One acqe reports the trunk link states, which the driver records. The other cqe reports the overall state of the trunk. In the failing case, the trunk link state acqe preceeds the overall trunk link state acqe. The trunk link state acqe, as it's an "up" transition, calls a code path which ensures a down transition before moving to the up state. The down transition had a side effect of clearing the just-saved trunk link states. Fix by not clearing the trunk link states if we've already transitioned to a down state. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit e4771ec3c8a03af43dea01538fdd50d8a3e9b3eb Author: James Smart Date: Tue Mar 12 16:30:24 2019 -0700 scsi: lpfc: Fix protocol support on G6 and G7 adapters Invalid test is allowing Loop to be a supported topology on G6 and G7 adapters. The chips do not support loop as their link speeds prohibit loop per standard. Correct the conditional so that loop is not reported. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit b3b4f3e1d575fe142fd437158425c2359b695ff1 Author: James Smart Date: Tue Mar 12 16:30:23 2019 -0700 scsi: lpfc: Correct boot bios information to FDMI registration The driver is currently reporting the firmware revision not the actual boot bios version in FDMI data. Modify the driver to obtain the boot bios version from the adapter and use that data in the FMDI data sent to the switch. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit f4f87861d9d8029536b8edecc8c28dc3e0c21fc8 Author: James Smart Date: Tue Mar 12 16:30:22 2019 -0700 scsi: lpfc: Fix HDMI2 registration string for symbolic name The switch is rejecting FDMI2 registration for symbolic name. There is a "\n" in the name string, which the switch dislikes thus rejects the registration. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit 32a80c093b524a0682f1c6166c910387b116ffce Author: James Smart Date: Tue Mar 12 16:30:21 2019 -0700 scsi: lpfc: Fix fc4type information for FDMI The driver is reporting support for NVME even when not configured for NVME operation. Fix (and make more readable) when NVME protocol support is indicated. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit d67f935b79a76ac9d86dde1a27bdd413feb5d987 Author: James Smart Date: Tue Mar 12 16:30:20 2019 -0700 scsi: lpfc: Fix FDMI manufacturer attribute value The FDMI manufacturer value being reported on Linux is inconsistent with other OS's. Set the value to "Emulex Corporation" for consistency. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit c66a91974634bfdf9d8e8736219d3b27621fa704 Author: James Smart Date: Tue Mar 12 16:30:19 2019 -0700 scsi: lpfc: Fix io lost on host resets If the driver undergoes repeated host resets it starts losing exchange structures and eventually returns SCSI_MLQUEUE_HOST_BUSY and does not recover. The offline path is not reclaiming the outstanding ios on the fcp pring txcmplq before calling lpfc_destroy_multixripool, which causes the txmcplq to be reinit and the resources lost. Flush the fcp rings before destroying the multixripools. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit e8869f5b0a7273fcf20ef99066fd8129e58ba5b7 Author: James Smart Date: Tue Mar 12 16:30:18 2019 -0700 scsi: lpfc: Fix mailbox hang on adapter init The adapter initialization sequence enables interrupts, initializes the adapter link_state to LINK_DOWN, then issues commands to initialize the adapter. The interrupt handler on the adapter validates the link_state (has to be at least LINK_DOWN) and if invalid, will discard the interrupting event. In most cases, there is not a command completion, thus an interrupt until the initialization commands have been sent which is post the setting of state to LINK_DOWN. However, in cases of firmware reset, the reset will modify the link_state to an invalid value (indicating a reset of the adapter) and there occasionally are cases where the adapter will generate an asynchronous event which shares the eq/cq used for mailbox commands. In the failure case, an interrupt is generated immediately after enabling them due to the async event. As link_state is invalid, the eq is list and the CQ not serviced. At this point link_state is initialized and the mailbox command sent. As the CQ has not been serviced, it is not armed, so no interrupt event is generated when the mailbox command completes. Modify the initialization sequence so that interrupts are enabled after link_state is properly initialized, which avoids the race condition with the async event. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit bbd3d7380bc67c27b31548e0a33fc5efc4e0fc3d Author: James Smart Date: Tue Mar 12 16:30:17 2019 -0700 scsi: lpfc: Fix driver crash in target reset handler It's possible for the scsi error handler to fire and call the target reset handler simultaneously to the driver logging out and relogging into the system. If hit just right, the re-login may not have fully re-established the remote port and the rdata->pnod structure may be null. Check for NULL in the reset handler and return failure if NULL. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit 2a0fb340fcc816975b8b0f2fef913d11999c39cf Author: James Smart Date: Tue Mar 12 16:30:16 2019 -0700 scsi: lpfc: Correct localport timeout duration error Current code incorrectly specifies a completion wait timeout duration in 5 jiffies, when it should have been 5 seconds. Fix the adjust for units for the completion timeout call. [mkp: manual merge] Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit e2ffe4d5dc3f45a8bb9e96790583530dfae7b8af Author: James Smart Date: Tue Mar 12 16:30:15 2019 -0700 scsi: lpfc: Convert bootstrap mbx polling from msleep to udelay Current code is using msleep when polling for hw ready. Unfortunately the msleep routine isn't very accurate on rescheduling. In fact, on a busy systems which reset the adapter, it became 10s of seconds before it was rescheduled. Fix by busy waiting using udelay. As we're now busy waiting, significantly reduce the wait time so that we can exit the pool loop as soon as possible. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit 4645f7b56a9fc3fb16605a1bfa10d884fcd5226c Author: James Smart Date: Tue Mar 12 16:30:14 2019 -0700 scsi: lpfc: Coordinate adapter error handling with offline handling The driver periodically checks for adapter error in a background thread. If the thread detects an error, the adapter will be reset including the deletion and reallocation of workqueues on the adapter. Simultaneously, there may be a user-space request to offline the adapter which may try to do many of the same steps, in parallel, on a different thread. As memory was deallocated while unexpected, the parallel offline request hit a bad pointer. Add coordination between the two threads. The error recovery thread has precedence. So, when an error is detected, a flag is set on the adapter to indicate the error thread is terminating the adapter. But, before doing that work, it will look for a flag that is set by the offline flow, and if set, will wait for it to complete before then processing the error handling path. Similarly, in the offline thread, it first checks for whether the error thread is resetting the adapter, and if so, will then wait for the error thread to finish. Only after it has finished, will it set its flag and offline the adapter. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit 32a9310076e4f00ac6d8a5a2d39b953d199bef0d Author: James Smart Date: Tue Mar 12 16:30:13 2019 -0700 scsi: lpfc: Stop adapter if pci errors detected In a couple of cases, the driver detected a pci error (via pci device state or via failed register reads) but didn't take any action to disable the device. Additionally, the driver is ignoring the status of pci configuration space reads. Having the driver take the adapter offline whenever the pci error is detected. Pay attention to pci_config_space_read status and return failure if an error is seen. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit 731eedcb317a5a4b5776d3c78ffe5e79c596fa16 Author: James Smart Date: Tue Mar 12 16:30:12 2019 -0700 scsi: lpfc: Fix deadlock due to nested hbalock call If an adapter fails, causing a board reset, the board reset routine lpfc_hba_down_s4() takes the hbalock out then calls lpfc_nvmet_ctxbuf_post() who then tries to take out the same lock. As the context lists are now protected under the buf_list_locks, there is no need for the hbalock to be held by the board reset routine. Fix by no longer taking the hbalock in the board reset routine. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit 22b738ac3309c8712ac6aa8095e27bbc4067e4b3 Author: James Smart Date: Tue Mar 12 16:30:11 2019 -0700 scsi: lpfc: Fix nvmet handling of first burst cmd With negative test injection, the driver is receiving a command with first burst enabled, meaning Sequence initiative is not passed with the command frame. The driver notes the condition and discards the frame. However the driver calls the incorrect buffer free routine, resulting in a NULL pointer reference. For hbq buffer free, convert to using lpfc_rq_buf_free(). Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit 982ab128dcf8b77bc18df74a83ffa70bcd59ccd3 Author: James Smart Date: Tue Mar 12 16:30:10 2019 -0700 scsi: lpfc: Fix lpfc_nvmet_mrq attribute handling when 0 Currently, when lpfc_nvmet_mrq is 0 it could mean 2 different things depending on when its looked at. If at module load time it specifies the default number of hardware queues to allocate, with 0 meaning default to the number of CPUs. But post module load, a value of zero means to disable mrq use. Changed the driver so that enablement of mrq is based on whether nvme target mode is enabled or not. When enabled, mrq is enabled. Thus, the cfg_nvemt_mrq field only specifies the number of mrq queues to enable, with 0 defaulting to the number of cpus. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit 4552e0f6fa07b0494b7645ab484abd05e7beec2a Author: James Smart Date: Tue Mar 12 16:30:09 2019 -0700 scsi: lpfc: Fix nvmet async receive buffer replenishment Under circustances with high load, the driver is running out of async receive buffers which may result in one of the following messages: 0:6401 RQE Error x13, posted 226 err_cnt 0: 925c6050 925c604e 925c5d54 or 0:2885 Port Status Event: port status reg 0x81800000, port smphr reg 0xc000, error 1=0x52004a01, error 2=0x0 The driver is waiting for full io completion before returning receive buffers to the adapter. There is no need for such a relationship. Whenever a new command is received from the wire, the driver will have two contexts - an io context (ctxp) and a receive buffer context. In current code, the receive buffer context stays 1:1 with the io and won't be reposted to the hardware until the io completes. There is no need for such a relationship. Change the driver so that up on successful handing of the command to the transport, where the transport has copied what it needed thus the buffer is returned to the driver, have the driver immediately repost the buffer to the hardware. If the command cannot be successfully handed to the transport as transport resources are temporarily busy, have the driver allocate a new and separate receive buffer and post it to the hardware so that hardware can continue while the command is queued for the transport. When an io is complete, the transport returns the io context to the driver, and the driver may be waiting for more contexts, thus immediately reuse the io context. In this path, there was a buffer posted when the receive buffer was queued waiting for an io context so a replacement is not needed in the new code additions. Thus, exempt this the context reuse case from the buffer reposting. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit def11a58c19353f0aa3c0022b90f120731b10c53 Author: James Smart Date: Tue Mar 12 16:30:08 2019 -0700 scsi: lpfc: Fix location of SCSI ktime counters The debug ktime counters that trace an io were inadvertently not placed in the common section of an io buffer. Thus, they generate an invalid opcode error when accessed. Move the ktime counters into the common area. Fixes: 0794d601d174 ("scsi: lpfc: Implement common IO buffers between NVME and SCSI") Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit c95a3b4b0fb8d351e2329a96f87c4fc96a149505 Author: James Smart Date: Tue Mar 12 16:30:07 2019 -0700 scsi: lpfc: Fix SLI3 commands being issued on SLI4 devices During debug, it was seen that the driver is issuing commands specific to SLI3 on SLI4 devices. Although the adapter correctly rejected the command, this should not be done. Revise the code to stop sending these commands on a SLI4 adapter. Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit 9b1640686470fbbd1c6efb35ada6fe1427ea8d0f Author: James Smart Date: Tue Mar 12 16:30:06 2019 -0700 scsi: lpfc: Fix use-after-free mailbox cmd completion When unloading the driver, mailbox commands may be sent without holding a reference on the ndlp. By the time the mailbox command completes, the ndlp may have reduced its ref counts and been freed. The problem was reported by KASAN. While unregistering due to driver unload, have the completion noop'd by setting the ndlp context NULL'd. Due to the unload, no further action was necessary. Also, while reviewing this path, the generic nulling of the context after handling should be slightly moved. Reported by: Bart Van Assche Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit 50e3f871fb20a9bb644743e2986e8f50f98a25bc Author: James Smart Date: Tue Mar 12 16:30:05 2019 -0700 scsi: lpfc: Resolve irq-unsafe lockdep heirarchy warning in lpfc_io_free A patch in the 12.2.0.0 set caused a new lockdep warning: WARNING: SOFTIRQ-safe -> SOFTIRQ-unsafe lock order detected 5.0.0-rc8-next-20190301-dbg+ #1 Not tainted Possible interrupt unsafe locking scenario: CPU0 CPU1 ---- ---- lock(&(&qp->io_buf_list_put_lock)->rlock); local_irq_disable(); lock(&(&phba->hbalock)->rlock); lock(&(&qp->io_buf_list_put_lock)->rlock); lock(&(&phba->hbalock)->rlock); see: https://www.spinics.net/lists/linux-scsi/msg128389.html In summary, the new patch added taking the io_buf_list_put_lock while under an irq-disabled hbalock. This created a lock heirarchy dependent upon irq being disabled, and there are paths that take the io_buf_list_put_lock without disabling irq. Looking at the lpfc_io_free routine, which is where the new heirarchy was introduced, there is no reason to be taking out the hbalock and raising irq, as the functionality is replaced by the io_buf_list_xxx locks. Resolve by removing the hbalock/irq calls in lpfc_io_free. Fixes: 5e5b511d8bfa ("scsi: lpfc: Partition XRI buffer list across Hardware Queues") Reported-by: Bart Van Assche Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit ff6bf89717b0dc7b8dd0934d1c065f29069831e7 Author: James Smart Date: Tue Mar 12 16:30:04 2019 -0700 scsi: lpfc: Resolve inconsistent check of hdwq in lpfc_scsi_cmd_iocb_cmpl A prior patch which added support for non-uniform allocation of MSIX vectors now causes a smatch complaint: drivers/scsi/lpfc/lpfc_scsi.c:3674 lpfc_scsi_cmd_iocb_cmpl() error: we previously assumed 'phba->sli4_hba.hdwq' could be null (see line 3667) Resolve by removing the unnecessary check for a NULL hdwq table. Fixes 6a828b0f6192: ("scsi: lpfc: Support non-uniform allocation of MSIX vectors to hardware queues") Reported-by: Dan Carpenter Signed-off-by: Dick Kennedy Signed-off-by: James Smart Signed-off-by: Martin K. Petersen commit ccd19d4cafaaf36132c372e77ee9304b707c1e70 Author: Stephen Smalley Date: Tue Mar 19 09:21:06 2019 -0400 scripts/selinux: fix build We need to add the object tree include directory to the include path for building mdp in order to pick up generated/autoconf.h. Otherwise, make O=/path/to/objtree breaks. Fixes: e37c1877ba5b ("scripts/selinux: modernize mdp") Reported-by: Stephen Rothwell Signed-off-by: Stephen Smalley Signed-off-by: Paul Moore commit 06f30459027be7c825b2d86af8ae2001a1a35362 Author: Himanshu Madhani Date: Tue Mar 12 11:08:23 2019 -0700 scsi: qla2xxx: Update driver version to 10.01.00.15-k This version includes support for ISP28XX. Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 3f006ac342c033c795aa0ec2d0dde63975e2144b Author: Michael Hernandez Date: Tue Mar 12 11:08:22 2019 -0700 scsi: qla2xxx: Secure flash update support for ISP28XX This patch adds support for Secure flash update with ISP28xx. Signed-off-by: Michael Hernandez Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 5fa8774c7f38c79f38b672c1a0db0c049da477d6 Author: Joe Carnuccio Date: Tue Mar 12 11:08:21 2019 -0700 scsi: qla2xxx: Add 28xx flash primary/secondary status/image mechanism Includes the following: - correction to 27xx image status struct; - factoring of 27xx image status validating routines to make common; - image status generation compare that works across zero wrap; - bsg interface to report current active images (as loaded by driver). Signed-off-by: Joe Carnuccio Signed-off-by: Mike Hernandez Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit ce0366df542a214be62bb3250e688f7c6d644ad7 Author: Joe Carnuccio Date: Tue Mar 12 11:08:20 2019 -0700 scsi: qla2xxx: Simplification of register address used in qla_tmpl.c Reduce stack space on each fwdt routine by eliminating local variable reg. Signed-off-by: Joe Carnuccio Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 2ff0167151f50f38c103c2e8e08e542cd8727441 Author: Joe Carnuccio Date: Tue Mar 12 11:08:19 2019 -0700 scsi: qla2xxx: Correction and improvement to fwdt processing This patch cleans up and fixes firmware dump template processing. These changes are added to support newer features for ISP27XX/ISP28XX. Signed-off-by: Joe Carnuccio Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 3695310e37b4e571d40593cbe59188b0006a2274 Author: Joe Carnuccio Date: Tue Mar 12 11:08:18 2019 -0700 scsi: qla2xxx: Update flash read/write routine This patch makes following changes to flash access routines: - update return type for read_optrom - use void instead of uint32_t * for buffer parameter in read and write optrom routines - fix flash/nvram addressing Signed-off-by: Joe Carnuccio Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit a28d9e4ef99729d7e4db31d2dfeaf00755be4ab7 Author: Joe Carnuccio Date: Tue Mar 12 11:08:17 2019 -0700 scsi: qla2xxx: Add support for multiple fwdump templates/segments This patch adds multipe firmware dump template and segments support for ISP27XX/28XX. Signed-off-by: Joe Carnuccio Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit f8f97b0c5b7f7c801d80ac78165edf25fff1f5e0 Author: Joe Carnuccio Date: Tue Mar 12 11:08:16 2019 -0700 scsi: qla2xxx: Cleanups for NVRAM/Flash read/write path This patch does following: - Clean up NVRAM code. - Optimizes reading of primary/secondary flash image validation. - Remove 0xff mask and make correct width in FLT structure. - Use endian macros to assign static fields in fwdump header. - Correct fdwt checksum calculation. - Simplify ql_dump_buffer() interface usage. - Add endianizers to 27xx firmware image validator. - fixes compiler warnings for big endian architecture. Signed-off-by: Joe Carnuccio Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 72a92df2109bf62094c25436ded2be0283d9aa24 Author: Joe Carnuccio Date: Tue Mar 12 11:08:15 2019 -0700 scsi: qla2xxx: Correctly report max/min supported speeds This patch fixes reported speed for min_link and max_supported speed. Also rename sysfs nodes link_speed and max_supported to be consistent with {min|max}_suuported_speed. Signed-off-by: Joe Carnuccio Signed-off-by: Mike Hernandez Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 2a3192a3f3bc4fe1b077c55fffb6d8afe3213d57 Author: Joe Carnuccio Date: Tue Mar 12 11:08:14 2019 -0700 scsi: qla2xxx: Add Serdes support for ISP28XX This patch adds sysfs node for serdes_version and also cleans up port_speed display. Signed-off-by: Joe Carnuccio Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit ecc89f25e225fabfffc709dbc43c928bc276cade Author: Joe Carnuccio Date: Tue Mar 12 11:08:13 2019 -0700 scsi: qla2xxx: Add Device ID for ISP28XX This patch adds PCI device ID ISP28XX for Gen7 support. Also signature determination for primary/secondary flash image for ISP27XX/28XX is aded as part of Gen7 support. Signed-off-by: Joe Carnuccio Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 24ef8f7eb5d03480e09ce28f0bb905398a0d57c8 Author: Joe Carnuccio Date: Tue Mar 12 11:08:12 2019 -0700 scsi: qla2xxx: Fix routine qla27xx_dump_{mpi|ram}() This patch fixes qla27xx_dump_{mpi|ram} api for ISP27XX. Signed-off-by: Joe Carnuccio Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit 2ff6ae85d5eea54640f10db869302759d5376948 Author: Joe Carnuccio Date: Tue Mar 12 11:08:11 2019 -0700 scsi: qla2xxx: Remove FW default template This patch removes FW default template as there will never be case where the default template would be invoked. Signed-off-by: Joe Carnuccio Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit df617ffbbc5ecb64334548546d4b0cc4ff0527c0 Author: Joe Carnuccio Date: Tue Mar 12 11:08:10 2019 -0700 scsi: qla2xxx: Add fw_attr and port_no SysFS node This patch adds new sysfs node to display firmware attributes and port number. Signed-off-by: Joe Carnuccio Signed-off-by: Himanshu Madhani Signed-off-by: Martin K. Petersen commit d2daff2c09887c18ce839daf1c428cededc8cae0 Author: Ville Syrjälä Date: Mon Mar 18 22:26:53 2019 +0200 drm/i915: Pass dev_priv to intel_is_dual_link_lvds() Make things look a bit nicer by passing dev_priv to intel_is_dual_link_lvds(). Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190318202653.15217-3-ville.syrjala@linux.intel.com Reviewed-by: Rodrigo Vivi commit 17be49428a4f834d64235b861580b24786effe0e Author: Ville Syrjälä Date: Mon Mar 18 22:26:52 2019 +0200 drm/i915: Polish intel_get_lvds_encoder() Pass dev_priv to intel_get_lvds_encoder() and polish the implementation a bit. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190318202653.15217-2-ville.syrjala@linux.intel.com Reviewed-by: Rodrigo Vivi commit 27b680f917e755f1da6f4b22363af96e65969c4e Author: Ville Syrjälä Date: Mon Mar 18 22:26:51 2019 +0200 drm/i915: Add some missing curly braces Sprinkle some curly braces in accordance with the coding style. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190318202653.15217-1-ville.syrjala@linux.intel.com Reviewed-by: Rodrigo Vivi commit bb31b352510be206d2797b2225e6ae37ff567c8e Author: Hans de Goede Date: Mon Mar 11 11:48:18 2019 +0100 usb: typec: fusb302: Add __printf attribute to fusb302_log function Add __printf attribute to fusb302_log function, so that we get compiler warnings when specifying wrong vararg parameters. Reviewed-by: Guenter Roeck Signed-off-by: Hans de Goede Acked-by: Heikki Krogerus Signed-off-by: Greg Kroah-Hartman commit 207338ec5a278a307fa9b650667806fd5a4db5d4 Author: Hans de Goede Date: Mon Mar 11 11:48:17 2019 +0100 usb: typec: fusb302: Improve suspend/resume handling Remove the code which avoids doing i2c-transfers while our parent i2c-adapter may be suspended by busy-waiting for our resume handler to be called. Instead move the interrupt handling from a threaded interrupt handler to a work-queue and install a non-threaded interrupt handler which normally queues the new interrupt handling work directly. When our suspend handler gets called we set a flag which makes the new non-threaded interrupt handler skip queueing the work before our parent i2c-adapter is ready, instead the new non-threaded handler will record an interrupt has happened during suspend and then our resume handler will queue the work (at which point our parent will be ready). Note normally i2c drivers solve the problem of not being able to access the i2c bus until the i2c-controller is resumed by simply disabling their irq from the suspend handler and re-enabling it on resume. That is not possible with the fusb302 since the irq is a wakeup source (it must be a wakeup source so that we can do PD negotiation when a charger gets plugged in while suspended). Besides avoiding the ugly busy-wait, this also fixes the following errors which were logged by the busy-wait code when woken from suspend by plugging in a Type-C device: fusb302: i2c: pm suspend, retry 1 / 10 fusb302: i2c: pm suspend, retry 2 / 10 etc. This commit also changes the devm_request_irq to a regular request_irq + free_irq, so that the work can be properly stopped. While at it also properly disable the wake setting on the irq and also properly stop the delayed work for bcl handling. Reviewed-by: Guenter Roeck Signed-off-by: Hans de Goede Acked-by: Heikki Krogerus Signed-off-by: Greg Kroah-Hartman commit 7511c9a9d3c8f2b415e83599e879a359b4e71f08 Author: Hans de Goede Date: Mon Mar 11 11:48:16 2019 +0100 usb: typec: fusb302: 2 small misc. fixes Fix a copy and paste error in an error message and a spelling error in a comment. Reviewed-by: Guenter Roeck Signed-off-by: Hans de Goede Acked-by: Heikki Krogerus Signed-off-by: Greg Kroah-Hartman commit 702ad49fb8d2d5c8f3ddd22e4119d9e507e5c1a2 Author: Hans de Goede Date: Mon Mar 11 11:48:15 2019 +0100 usb: typec: fusb302: Fix fusb302_handle_togdone_src Ra handling The FUSB302 will stop toggling with a FUSB_REG_STATUS1A_TOGSS_SRC? status, as soon as it sees either Ra or Rd on a CC pin. Before this commit fusb302_handle_togdone_src would assume that the toggle- engine always stopped at the CC pin indicating the polarity, IOW it assumed that it stopped at the pin connected to Rd. It did check the CC-status of that pin, but it did not expect to get a CC-status of Ra and therefore treated this as CC-open. This lead to the following 2 problems: 1) If a powered cable/adapter gets plugged in with Ra on CC1 and Rd on CC2 then 4 of 5 times when plugged in toggling will stop with a togdone_result of FUSB_REG_STATUS1A_TOGSS_SRC1. 3/5th of the time the toggle-engine is testing for being connected as a sink and after that it tests 1/5th of the time for connected as a src through CC1 before finally testing the last 1/5th of the time for being a src connected through CC2. This was a problem because we would only check the CC pin status for the pin on which the toggling stopped which in this polarity 4 out of 5 times would be the Ra pin. The code before this commit would treat Ra as CC-open and then restart toggling. Once toggling is restarted we are guaranteed to end with FUSB_REG_STATUS1A_TOGSS_SRC1 as CC1 is tested first, leading to a CC-status of Ra again and an infinite restart toggling loop. So 4 out of 5 times when plugged in in this polarity a powered adapter will not work. 2) Even if we happen to have the right polarity or 1/5th of the time in the polarity with problem 1), we would report the non Rd pin as CC-open rather then as Ra, resulting in the tcpm.c code not enabling Vconn which is a problem for some adapters. This commit fixes this by getting the CC-status of *both* pins and then determining the polarity based on that, rather then on where the toggling stopped. Signed-off-by: Hans de Goede Acked-by: Heikki Krogerus Reviewed-by: Guenter Roeck Signed-off-by: Greg Kroah-Hartman commit 32a155b1a83d6659e2272e8e1eec199667b1897e Author: Hans de Goede Date: Mon Mar 11 11:48:14 2019 +0100 usb: typec: fusb302: Check vconn is off when we start toggling The datasheet says the vconn MUST be off when we start toggling. The tcpm.c state-machine is responsible to make sure vconn is off, but lets add a WARN to catch any cases where vconn is not off for some reason. Signed-off-by: Hans de Goede Acked-by: Heikki Krogerus Reviewed-by: Guenter Roeck Signed-off-by: Greg Kroah-Hartman commit 4995bb15ad27366492a6a87bfb95bea0db1818c9 Author: Hans de Goede Date: Mon Mar 11 11:48:13 2019 +0100 usb: typec: fusb302: Fold fusb302_set_cc_pull into tcpm_set_cc After the recent cleanups, tcpm_set_cc is the only caller of fusb302_set_cc_pull, fold fusb302_set_cc_pull directly into tcpm_set_cc for a nice cleanup. Reviewed-by: Guenter Roeck Signed-off-by: Hans de Goede Acked-by: Heikki Krogerus Signed-off-by: Greg Kroah-Hartman commit daf81d0137a9ce7325c1831ed682efa91922b198 Author: Hans de Goede Date: Mon Mar 11 11:48:12 2019 +0100 usb: typec: fusb302: Refactor / simplify tcpm_set_cc() After commit ea3b4d5523bc ("usb: typec: fusb302: Resolve fixed power role contract setup"), tcpm_set_cc always calls fusb302_set_toggling. Before this refactor tcpm_set_cc does the following: 1) fusb302_set_toggling(TOGGLING_MODE_OFF), this sets both FUSB_REG_MASK_BC_LVL and FUSB_REG_MASK_COMP_CHNG. 2) fusb302_set_cc_pull(...). 3) "reset cc status". 4) if pull-up fusb302_set_src_current(...). 5) if pull-up or pull-down enable bc-lvl resp comp-chng irq. 6) fusb302_set_toggling(new-toggling-mode), which again sets both FUSB_REG_MASK_BC_LVL and FUSB_REG_MASK_COMP_CHNG disabling the just enabled irq. fusb302_set_toggling is skipped when the new toggling mode is TOGGLING_MODE_OFF because this is already done in 1, note in this case 5) is a no-op. When we are toggling the bits set by fusb302_set_cc_pull will be ignored until we turn toggling off, so we can safely move the fusb302_set_cc_pull call to before setting TOGGLING_MODE_OFF. Either we are not toggling yet, or the src-current has already been set, so we can also safely set the src-current earlier, allowing us to do the fusb302_set_toggling(TOGGLING_MODE_OFF) call at the same time as we set the other toggling modes. Also setting the src-current is a no-op when not enabling pull-ups, so we can drop the if. And since the second fusb302_set_toggling undoes the effects of step 5, we can skip step 5, the bc-lvl resp comp-chng irq wil be enabled by fusb302_handle_togdone_snk resp. fusb302_handle_togdone_src when toggling is done. Together this allows us to simplify things to: 1) fusb302_set_cc_pull(...) 2) "reset cc status" 3) fusb302_set_src_current(...) 4) fusb302_set_toggling(new-toggling-mode) This commit does this, leading to a nice cleanup. Reviewed-by: Guenter Roeck Signed-off-by: Hans de Goede Acked-by: Heikki Krogerus Signed-off-by: Greg Kroah-Hartman commit 31df7fadf50f7c8030644d427fc8868e9bb52109 Author: Hans de Goede Date: Mon Mar 11 11:48:11 2019 +0100 usb: typec: fusb302: Make fusb302_set_cc_polarity also set pull ups / downs The 2 callers of fusb302_set_cc_polarity both call fusb302_set_cc_pull directly before calling fusb302_set_cc_polarity, this is not ideal for 2 reasons: 1) fusb302_set_cc_pull uses the cached polarity when applying the pull-ups, which maybe changed immediately afterwards, to fix this set_cc_polarity already does the pull-up setting. 2) Both touch the SWITCHES0 register in a r-w-modify cycle, this leads to read reg, write reg, read reg, write reg. If we fold the setting of the pull-downs into fusb302_set_cc_polarity then not only can we avoid doing the reads / writes twice, at this point we set all bits, so we can skip the read, turning 4 (slowish) i2c-transfers into 1. Doing this also avoids the need to cache the pull_up state in struct fusb302_chip. Reviewed-by: Guenter Roeck Signed-off-by: Hans de Goede Acked-by: Heikki Krogerus Signed-off-by: Greg Kroah-Hartman commit bfb2ab8e7138fc484952a948275eb443e8b9a360 Author: Hans de Goede Date: Fri Feb 22 20:22:39 2019 +0100 usb: typec: pi3usb30532: Keep orientation when setting mux to safe mode Keep the orientation value when setting the mux to safe mode, this fixes the orientation getting reset when switching alt-modes. Signed-off-by: Hans de Goede Acked-by: Heikki Krogerus Reviewed-by: Guenter Roeck Signed-off-by: Greg Kroah-Hartman commit 09fed4d64d3f1c3f9296d3f67eb19c8bf4b1c0c1 Author: Hans de Goede Date: Mon Feb 25 13:56:37 2019 +0100 usb: typec: altmodes/displayport: Fall back to multi-func pins If our port-partner supports both DP-only operation (pin-assignment C) and multi-func operation (pin-assignment D) and we only support pin-assignment D and the port-partner prefers DP-only mode, then before this commit we would and up masking out pin-assignment D from the available pin-assignments and fail to pick a pin-assignment. Instead only mask out the multi-func pin-assignments if we support dp-only pin-assignments, so that we correctly fall-back to a multi-func pin-assignment in this case (by picking pin-assignment D). Signed-off-by: Hans de Goede Acked-by: Heikki Krogerus Signed-off-by: Greg Kroah-Hartman commit fc2f113e5c0ee9a297c62700d8b71809f5785b33 Author: Suwan Kim Date: Wed Mar 6 00:11:10 2019 +0900 usbip: Remove unnecessary null check "vdev" points to vhci_hcd->vdev[] array and vhci_hcd->vdev[] array is not a pointer array but a structure array and it is already used in vhci_urb_enqueue() and then passed to vhci_tx_urb() as an argument. vhci_tx_urb() is not called except vhci_urb_enqueue(). So, "vdev" can not be null pointer. This null check statement is meaningless. Signed-off-by: Suwan Kim Acked-by: Shuah Khan Signed-off-by: Greg Kroah-Hartman commit 8e6b85945155da5af95dc0fa58ae38b86428deea Author: Greg Kroah-Hartman Date: Fri Mar 1 18:22:38 2019 +0100 USB: usb.h: tweak struct urb to remove wasted space By moving one field around in 'struct urb' we reduce the size of the structure by 8 bytes. Before the patch on x86_64 the overall size of the structure as reported by pahole was: /* size: 192, cachelines: 3, members: 30 */ /* sum members: 184, holes: 2, sum holes: 8 */ After the patch we now have: /* size: 184, cachelines: 3, members: 30 */ /* last cacheline: 56 bytes */ Signed-off-by: Greg Kroah-Hartman commit 32654dad06e24e2909c64b4fc3d61689f5522975 Author: Aisheng Dong Date: Wed Feb 20 14:38:36 2019 +0000 firmware: imx: scu-pd: decouple the SS information from domain names As resource power domain service is provided by SCU firmware, no SS information required. So we can remove the SS indicator from the domain names, then the domains defined can be better shared among different SCU based platforms. Cc: Ulf Hansson Cc: Shawn Guo Cc: Sascha Hauer Cc: "Rafael J. Wysocki" Cc: Kevin Hilman Cc: linux-pm@vger.kernel.org Signed-off-by: Dong Aisheng Signed-off-by: Shawn Guo commit ad8cc071c557b075b923bf27aee8a7dae7338f5e Author: Aisheng Dong Date: Wed Feb 20 14:38:32 2019 +0000 firmware: imx: scu-pd: add specifying the base of domain name index support As the domain resource id in the same type may not be continuous, so it's hard to describe all such power domains with current struct imx_sc_pd_range. Adding the optional base for domain name index to address this issue. Then we can add the discrete domains easily later. Cc: Ulf Hansson Cc: Shawn Guo Cc: Sascha Hauer Cc: "Rafael J. Wysocki" Cc: Kevin Hilman Cc: linux-pm@vger.kernel.org Signed-off-by: Dong Aisheng Signed-off-by: Shawn Guo commit 9d616d62faefd573f6eaf687f6c83a872708afcf Author: Aisheng Dong Date: Wed Feb 20 14:38:27 2019 +0000 firmware: imx: scu-pd: use bool to set postfix Using bool instead 0/1 to indicate whether adding a postfix for domain names which can improve the code readability and less confusing. Cc: Ulf Hansson Cc: Shawn Guo Cc: Sascha Hauer Cc: "Rafael J. Wysocki" Cc: Kevin Hilman Cc: linux-pm@vger.kernel.org Signed-off-by: Dong Aisheng Signed-off-by: Shawn Guo commit e54c2b0aefa6c7c6048667ae2ea729d5df94fb85 Author: Bhagyashri Dighole Date: Tue Mar 19 16:30:37 2019 +0530 staging: fbtft: ternary statement to if statement. Convert a ternary statement into a if statement which is detected while resolving "WARNING: line over 80 characters". Use BIT() macro instead manually left shifting. Signed-off-by: Bhagyashri Dighole Signed-off-by: Greg Kroah-Hartman commit 7945e2782604f330560e38035158e233e2863d71 Author: Emanuel Bennici Date: Mon Mar 18 19:58:43 2019 +0100 staging: mt7621-pci-phy: Add Spaces to Macro Definition Improve Code readability by adding Tabs and Spaces after #define Signed-off-by: Emanuel Bennici Signed-off-by: Greg Kroah-Hartman commit fe77a268cbaf6065d8ec69f7dc4b85fb5b7b4877 Author: Sanjana Sanikommu Date: Tue Mar 19 18:04:18 2019 +0530 Staging: rtl8192u: r8180_93cx6.c: Fix space around '<<'. Fix the check as per Linux kernel style for use of spaces. Issue found by checkpatch.pl CHECK:spaces preffered around that '<<' Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit 59dbadcdabfaf86e5d8122a8d8afafa234ac5072 Author: Madhumitha Prabakaran Date: Mon Mar 18 18:12:36 2019 -0500 Staging: rtl8723bs: Add missing NULL check for kmalloc Include missing NULL check for kmalloc in function rtw_init_evt_priv. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 4cdf1d0e1aeba7f7acd365900e8b18e0e3c66f1a Author: Madhumitha Prabakaran Date: Mon Mar 18 18:12:35 2019 -0500 Staging: rtl8723bs: Replace NULL comparison with ! Replace NULL comparison with ! in function rtw_init_cmd_priv, to maintain Linux kernel coding style. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit cfd587d6b1f79e19e71ca1b8c36f5e66e939f399 Author: Madhumitha Prabakaran Date: Mon Mar 18 18:12:34 2019 -0500 Staging: rtl8723bs: Change values to standard error codes in functions Change values for standard error codes in functions rtw_init_cmd_priv and rtw_init_evt_priv, as _SUCCESS should be 0 and _FAIL should be -ENOMEM. Also, change the values in corresponding call sites of the functions. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 91734498219640b29344659a825beaab6ee7ca1f Author: Madhumitha Prabakaran Date: Mon Mar 18 18:12:33 2019 -0500 Staging: rtl8723bs: Remove unnecessary local variable in function Remove unnecessary local variable 'res' in function and replace the value directly in the return of the function. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 403fa6deca578f2eabc59d54dd58d1802fe04c9a Author: Sergey Senozhatsky Date: Mon Mar 18 20:22:21 2019 +0900 staging: rtl8723bs: do not use __constant_cpu_to_le16 cpu_to_le16() is capable enough to detect __builtin_constant_p() and to use an appropriate compile time ___constant_swahbXX() function. So we can use cpu_to_le16() instead of __constant_cpu_to_le16(). Signed-off-by: Sergey Senozhatsky Signed-off-by: Greg Kroah-Hartman commit 7d6009f2821270831ffc6c29b3bf58891e3583d7 Author: Colin Ian King Date: Mon Mar 18 10:57:49 2019 +0000 staging: ks7010: remove redundant auth_type check The range check on auth_type is redundant as there is a prior check on the auth_type values and the only way the block is entered is if auth_type is one of TYPE_PMK1, TYPE_GMK1 and TYPE_GMK2. Hence the auth_type check can be removed. Detected by static analysis with cppcheck. Signed-off-by: Colin Ian King Acked-by: Jeremy Sowden Signed-off-by: Greg Kroah-Hartman commit 7f2c439642688998c58ba99addabf819e6df57d0 Author: Michael Straube Date: Mon Mar 18 11:23:59 2019 +0100 staging: rtl8188eu: remove unused defines from wifi.h All defined P2P* in wifi.h are unused in the driver code, so remove them. Signed-off-by: Michael Straube Signed-off-by: Greg Kroah-Hartman commit 249acb5f47df27109d74a0d904a5da56c8bac28f Merge: 9384d0e6facc 9e98c678c2d6 Author: Mark Brown Date: Tue Mar 19 13:12:32 2019 +0000 Merge tag 'v5.1-rc1' into spi-5.2 Linux 5.1-rc1 commit c9e48084c88cf901ad0d99a889f2628a5622d90b Merge: 04d1446bce27 9e98c678c2d6 Author: Mark Brown Date: Tue Mar 19 13:12:18 2019 +0000 Merge tag 'v5.1-rc1' into regulator-5.2 Linux 5.1-rc1 commit a1c67d65df0b5a3858741a144cd43f8e62c5c175 Author: Lucas Tanure Date: Tue Mar 19 09:41:32 2019 +0000 regmap: debugfs: Replace code by already existing function Signed-off-by: Lucas Tanure Signed-off-by: Mark Brown commit 9384d0e6facc9f5b325a2d401e9ed6bb49507a2a Author: Andy Shevchenko Date: Mon Mar 18 16:42:37 2019 +0200 spi: pxa2xx-pci: Drop unused header inclusion There is nothing in the driver which requires OF specific header to be included. Remove it for good. Signed-off-by: Andy Shevchenko Reviewed-by: Jarkko Nikula Signed-off-by: Mark Brown commit 70b464918e5331e488058870fcc6821d54c4e541 Author: Steve Twiss Date: Mon Mar 18 16:17:57 2019 +0000 regulator: core: fix error path for regulator_set_voltage_unlocked During several error paths in the function regulator_set_voltage_unlocked() the value of 'ret' can take on negative error values. However, in calls that go through the 'goto out' statement, this return value is lost and return 0 is used instead, indicating a 'pass'. There are several cases where this function should legitimately return a fail instead of a pass: one such case includes constraints check during voltage selection in the call to regulator_check_voltage(), which can have -EINVAL for the case when an unsupported voltage is incorrectly requested. In that case, -22 is expected as the return value, not 0. Fixes: 9243a195be7a ("regulator: core: Change voltage setting path") Cc: stable Signed-off-by: Steve Twiss Reviewed-by: Dmitry Osipenko Signed-off-by: Mark Brown commit 8bc144f90b6c813b2888f34842eba6a06a588429 Author: Stuart Henderson Date: Tue Mar 19 11:52:15 2019 +0000 ASoC: wm_adsp: Add WDT expiry IRQ handling support for Halo core Signed-off-by: Stuart Henderson Signed-off-by: Charles Keepax Signed-off-by: Mark Brown commit 2ae581380e4da6b1b9eff37cb087e3788ec82c67 Author: Richard Fitzgerald Date: Tue Mar 19 11:52:14 2019 +0000 ASoC: wm_adsp: Add HALO MPU fault logging A Halo Core DSP has a memory protection unit that can trap and signal memory access faults. This patch adds a function that dumps the fault information. The interrupt reaches the host via the parent codec interrupt controller so this fault function is exported to be called by the codec driver. Signed-off-by: Richard Fitzgerald Signed-off-by: Charles Keepax Signed-off-by: Mark Brown commit 170b1e123f385e7d60e992bc7fb1cc2897520769 Author: Wen Shi Date: Tue Mar 19 11:52:13 2019 +0000 ASoC: wm_adsp: Add support for new Halo core DSPs The Halo core is a new generation of audio DSP architecture from Cirrus Logic. A new iteration of the WMFW file format (v3) is also added, for this new architecture. Currently this format is not supported on the old ADSP2 architecture however support may be added for it in the future. Signed-off-by: Wen Shi Signed-off-by: Piotr Stankiewicz Signed-off-by: Richard Fitzgerald Signed-off-by: Charles Keepax Signed-off-by: Mark Brown commit 580b064de64c7c6a31db0da6f2ead4e4f3227b56 Author: Anson Huang Date: Wed Feb 27 01:28:32 2019 +0000 arm64: dts: imx8mq: add clock for GPIO node i.MX8MQ has clock gate for each GPIO bank, add clock info to GPIO node for clock management. Signed-off-by: Anson Huang Reviewed-by: Fabio Estevam Signed-off-by: Shawn Guo commit c6839641532f95aca2246f7c116565b86b8ce878 Author: Pi-Hsun Shih Date: Wed Mar 6 17:09:03 2019 +0800 ASoC: mediatek: Reduce repititive code on mtk_regmap_update_bits. Change the signature of mtk_regmap_update_bits to also take a shift, and warn when reg >= 0 but shift < 0. This reduce the code repetition on the calling side, and prevent future UBSAN warning when some of the xxx_shift and xxx_reg are both set to -1. Signed-off-by: Pi-Hsun Shih Signed-off-by: Mark Brown commit ed1666f6867059e1ed4e2e565a1c87c5580f1b38 Author: Pi-Hsun Shih Date: Wed Mar 6 17:09:02 2019 +0800 ASoC: mediatek: Fix UBSAN warning. In sound/soc/mediatek/common/mtk-afe-fe-dai.c, when xxx_reg is -1, it's a no-op to call mtk_regmap_update_bits, but since both xxx_reg and xxx_shift are set to -1, the (1 << xxx_shift) in the argument would trigger a UBSAN warning. Fix the warning by setting those xxx_shift to 0 instead. Note that since the code explicitly checks .mono_shift >= 0 and .fs_shift >= 0 before using them in '<<' operator, those two members are not set to 0. Signed-off-by: Pi-Hsun Shih Signed-off-by: Mark Brown commit 4e08d50d1fb6144df4b0b5c75a17edd344bf3d1b Author: Charles Keepax Date: Tue Mar 19 11:52:12 2019 +0000 ASoC: wm_adsp: Factor out DSP specific operations In preparation for the addition of more types of DSP core refactor the handling of DSP specific operations such as starting the memory or enabling the core into a set of callbacks. This should make it easier to add new core types and allow for more code reuse between them. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown commit a5dcb24d70ffbb4ea47b8eefad1158d033b9dec9 Author: Charles Keepax Date: Tue Mar 19 11:52:11 2019 +0000 ASoC: wm_adsp: Factor out parsing of firmware ID header There is no need to duplicate this code for both ADSP1 and 2 as the handling is exactly the same. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown commit 4049ce86fc9b0512d4f624bb8b63c8f513fb66d1 Author: Charles Keepax Date: Tue Mar 19 11:52:10 2019 +0000 ASoC: wm_adsp: Refactor firmware status reading In preparation for further additions refactor the reading of the firmware status. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown commit b9070df451668e0c317d420d8331568b4d7ba6df Author: Richard Fitzgerald Date: Tue Mar 19 11:52:09 2019 +0000 ASoC: wm_adsp: Move wm_adsp2_set_dspclk to CODEC drivers The original wm_adsp2_early_event took an additional frequency argument for clocking control so could not be used directly as a DAPM callback. But this setup could equally be done by the codec driver function wrapping wm_adsp2_early event. In preparation for adding support for new core types wm_adsp2_set_dspclk has been exported, and the freq argument removed so that it can be used directly as a DAPM callback. Signed-off-by: Richard Fitzgerald Signed-off-by: Charles Keepax Signed-off-by: Mark Brown commit 2b0ee49f129cf3e9885f8d83439024e8116b865c Author: Charles Keepax Date: Tue Mar 19 11:52:08 2019 +0000 ASoC: wm_adsp: Don't export wm_adsp2_lock This function is not presently called from outside the adsp code and nor should it be, as such stop exporting it. Signed-off-by: Charles Keepax Signed-off-by: Mark Brown commit c77526851ded02137742df1ebae725fc16ee5e50 Merge: b3718b8f7e9b a2bcbc1b9ac2 Author: Mark Brown Date: Tue Mar 19 12:37:11 2019 +0000 Merge branch 'asoc-5.1' into asoc-5.2 for wmadsp commit a8d5fc0be537d49562f3d4b63390584e304ec8dc Author: Marek Vasut Date: Sun Mar 3 20:00:59 2019 +0100 ARM: dts: alt: Add DA9063 PMIC node Add DA9063 PMIC node to the I2C bus. Signed-off-by: Marek Vasut Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman commit 72cd625c85e2681bad718b5218bf672d7fa5af80 Author: Marek Vasut Date: Mon Mar 4 20:59:58 2019 +0100 ARM: dts: r8a7792: blanche: Add IIC3 and DA9063 PMIC node Add IIC3 node to R8A7792 SoC device tree and a DA9063 PMIC node to V2H Blanche board device tree. Signed-off-by: Marek Vasut Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman commit b3718b8f7e9b4afdfd281d35233b078585aef2e9 Author: Bard liao Date: Tue Mar 5 23:57:53 2019 +0800 ASoC: topology: free link string in error Some strings are allocated by kstrdup, but not freed when error happened. Signed-off-by: Bard liao Acked-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 809b169abbfe2b916f70c957b08dfaaaad0d7c02 Author: kbuild test robot Date: Tue Mar 19 09:46:33 2019 +0800 spi: lpspi: fsl_lpspi_runtime_resume() can be static Fixes: 944c01a889d9 ("spi: lpspi: enable runtime pm for lpspi") Signed-off-by: kbuild test robot Signed-off-by: Mark Brown commit 04d1446bce279ee6e4c39b3bf705bef3abba008e Author: Axel Lin Date: Tue Mar 19 11:36:08 2019 +0800 regulator: axp20x: Use rdev_get_id at appropriate places Use rdev_get_id() to simplify the code a bit. Signed-off-by: Axel Lin Acked-by: Chen-Yu Tsai Signed-off-by: Mark Brown commit 969697de7fa6eee12fbe216f9603708932a78c0d Author: Axel Lin Date: Tue Mar 19 11:36:07 2019 +0800 regulator: axp20x: Remove unneeded NULL test against rdev rdev won't be NULL in .enable callback. Signed-off-by: Axel Lin Acked-by: Chen-Yu Tsai Signed-off-by: Mark Brown commit e66264273f5e2a6a12c558d78f829d1ea2383c5e Author: Axel Lin Date: Tue Mar 19 15:39:27 2019 +0800 regulator: 88pm8607: Convert to regulator core's simplified DT parsing code Use regulator core's simplified DT parsing code to simply the driver implementation. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 7b6f68a4df4df3a58e854d24da991640bd4d9590 Author: Bard liao Date: Tue Mar 5 23:57:52 2019 +0800 ASoC: topology: free stream_name of dai_drv The stream_name is allocated by kstrdup. We have to free it when the dai is removed or return from error. Signed-off-by: Bard liao Acked-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit 036bc85c1d06ef0a0924aed3fbbef8dccb86b9a1 Author: Fabrizio Castro Date: Wed Jan 16 18:37:53 2019 +0000 arm64: dts: renesas: r8a774c0: Add clkp2 clock to CAN nodes According to the latest information, clkp2 is available on RZ/G2. Modify CAN0 and CAN1 nodes accordingly. Signed-off-by: Fabrizio Castro Reviewed-by: Chris Paterson Signed-off-by: Simon Horman commit 80bc6dbb8fdb6c6dc650756470fb3457c575ac51 Author: Fabrizio Castro Date: Fri Mar 1 11:04:16 2019 +0000 arm64: dts: renesas: r8a774c0: Add CANFD support The CANFD implementation on the RZ/G2E (a.k.a. r8a774c0) is identical to the one found on the r8a77990. Signed-off-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman commit eccc40002972c4248652befa4513c76cdb350a5c Author: Fabrizio Castro Date: Thu Jan 17 14:54:15 2019 +0000 arm64: dts: renesas: r8a774a1: Add clkp2 clock to CAN nodes According to the latest information, clkp2 is available on RZ/G2. Modify CAN0 and CAN1 nodes accordingly. Signed-off-by: Fabrizio Castro Reviewed-by: Chris Paterson Signed-off-by: Simon Horman commit 4631dc3b7c7f49623706a8419393ff590a34c1a3 Author: Ville Syrjälä Date: Thu Feb 7 19:32:30 2019 +0200 drm/i915: Remove the fragile array index -> link rate mapping Rather than try to maintain some magic relationship between the link rates and the index into the wrpll params array let's just store the link rate in the array itself. Much less fragile. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190207173230.22368-13-ville.syrjala@linux.intel.com Reviewed-by: Lucas De Marchi commit ad40f8b314ad02de6ebb7d2a4c8dc72bb2402067 Author: Ville Syrjälä Date: Thu Feb 7 19:32:29 2019 +0200 drm/i915: Nuke icl_calc_dp_combo_pll_link() We already have the code to calculate the WRPLL output clock from the register values, but for some reason we're only using it for HDMI and not DP. Throw out the inflexible DP DPLL table lookup and just call the HDMI code which decodes the actual register values. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190207173230.22368-12-ville.syrjala@linux.intel.com Reviewed-by: Lucas De Marchi commit 2ee7fd1efe6255732e2086641d574abe36d773dd Author: Ville Syrjälä Date: Thu Feb 7 19:32:28 2019 +0200 drm/i915: Fix readout for cnl DPLL kdiv==3 The readout code thinks that kdiv of 3 is 4. Fix it. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190207173230.22368-11-ville.syrjala@linux.intel.com Reviewed-by: Lucas De Marchi commit 0e568a16af403263f8e421f1f10b91f9f15b52c3 Author: Srinivas Pandruvada Date: Mon Mar 18 12:14:28 2019 -0700 HID: intel-ish-hid: Add interface function for PCI device pointer Instead of directly accessing PCI device poitner via struct ishtp_cl, create interface function for same. This is required for DMA transfer. Signed-off-by: Srinivas Pandruvada Signed-off-by: Jiri Kosina commit 29b06d12ba796a4c3e7bdfd8a26230eefb261261 Author: Srinivas Pandruvada Date: Mon Mar 18 12:14:27 2019 -0700 HID: intel-ish-hid: Use the new interface functions in HID ish client Only include intel-ish-client-if.h, which has all interfaces required to implment ISHTP client. There is no longer any direct field access from core ISHTP only include files. Signed-off-by: Srinivas Pandruvada Signed-off-by: Jiri Kosina commit 5f7224cf418511b9d3c40d35b098d15f9e4e7404 Author: Srinivas Pandruvada Date: Mon Mar 18 12:14:26 2019 -0700 HID: intel-ish-hid: Move functions related to bus and device Move function idefinitions related to bus and device to common header file. Also create new function to get fw client id and move ish_hw_reset() from inline to exported function. Signed-off-by: Srinivas Pandruvada Signed-off-by: Jiri Kosina commit 51cbc7079ecae545be93c137edeb7453d28b9ec9 Author: Srinivas Pandruvada Date: Mon Mar 18 12:14:25 2019 -0700 HID: intel-ish-hid: Add interface functions for struct ishtp_cl Instead of directly accessing members of struct ishtp_cl, create interface functions to access them. Signed-off-by: Srinivas Pandruvada Signed-off-by: Jiri Kosina commit 8991eb309e1faa04ce1ca950d89dd36e3c8584cd Author: Srinivas Pandruvada Date: Mon Mar 18 12:14:24 2019 -0700 HID: intel-ish-hid: Move the common functions from client.h Move the interface functions in client.h to common include. These are already abstracted well to use as is. Also move any associated structures used by these functions. Signed-off-by: Srinivas Pandruvada Signed-off-by: Jiri Kosina commit 9a0bc1a63780baedcefb8c84ab436d3d8fde37e5 Author: Srinivas Pandruvada Date: Mon Mar 18 12:14:23 2019 -0700 HID: intel-ish-hid: Store ishtp_cl_device instance in device Store ishtp_cl_device pointer in device struct private data. In this way we can get ishtp_cl_device * from device struct pointer. Signed-off-by: Srinivas Pandruvada Signed-off-by: Jiri Kosina commit e00a864f976ab2646929ae82aa65ccd05a4f7539 Author: Srinivas Pandruvada Date: Mon Mar 18 12:14:22 2019 -0700 HID: intel-ish-hid: Move driver registry functions Move the driver registry with the ishtp bus to the common interface file, which clients can include. Also rename __ishtp_cl_driver_register() to ishtp_cl_driver_register() and removed define for ishtp_cl_driver_register. Signed-off-by: Srinivas Pandruvada Signed-off-by: Jiri Kosina commit c2012ec06204b1c92c7ed683ac36d53472a37be4 Author: Srinivas Pandruvada Date: Mon Mar 18 12:14:21 2019 -0700 HID: intel-ish-hid: Simplify ishtp_cl_link() All callers will only use ISHTP_HOST_CLIENT_ID_ANY, so get rid of option to pass this additional id. Signed-off-by: Srinivas Pandruvada Signed-off-by: Jiri Kosina commit 7ab2184246bd0b32e427ff60bfa07a2435011ce2 Author: Srinivas Pandruvada Date: Mon Mar 18 12:14:20 2019 -0700 HID: intel-ish-hid: Hide members of struct ishtp_cl_device ISH clients don't need to access any field of struct ishtp_cl_device. To avoid this create an interface functions instead where it is required. In the case of ishtp_cl_allocate(), modify the parameters so that the clients don't have to dereference. Clients can also use tracing, here a new interface is added to get the common trace function pointer, instead of direct call. The new interface functions defined in one external header file, named intel-ish-client-if.h. This is the only header files all ISHTP clients must include. Signed-off-by: Srinivas Pandruvada Signed-off-by: Jiri Kosina commit 6b3f75f75fdd225f8c5927b938c29bd24c21fc1b Author: Hong Liu Date: Mon Mar 18 12:14:19 2019 -0700 HID: intel-ish-hid: Add match callback to ishtp bus type Currently we depend on the guid check in ishtp_cl_driver.probe to match the device and driver. However Linux device core first calls the match() callback to decide the matching of driver and device, and then does some preparation before calling the driver probe function. If we return error in the driver probe, it needs to tear down all the preparation work and retry with next driver. Adding the match callback can avoid the unnecessary entry into unmatched driver probe function for ishtp clients reported by FW. Signed-off-by: Hong Liu Signed-off-by: Jiri Kosina commit dc41e918d1597718857ab1d7a599c0f63eba8139 Author: Ville Syrjälä Date: Thu Feb 7 19:32:27 2019 +0200 drm/i915: Remove redundant on stack dpll_hw_state from icl_get_dpll() Just store the stuff directly into crtc_state->dpll_hw_state rather than to a temp and copying the whole thing over. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190207173230.22368-10-ville.syrjala@linux.intel.com Reviewed-by: Lucas De Marchi commit 3d1ed35182a0fe8dbd72b3184052e074a12defd1 Author: Ville Syrjälä Date: Thu Feb 7 19:32:26 2019 +0200 drm/i915: Pass crtc_state down to icl dpll funcs Simplify the calling convention of the dpll funcs by plumbing the crtc state deeper. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190207173230.22368-9-ville.syrjala@linux.intel.com Reviewed-by: Lucas De Marchi commit 2cf9cd820a2945372c21ace4647c03af95be1404 Author: Ville Syrjälä Date: Thu Feb 7 19:32:25 2019 +0200 drm/i915: Remove redundant on stack dpll_hw_state from cnl_get_dpll() Just store the stuff directly into crtc_state->dpll_hw_state rather than to a temp and copying the whole thing over. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190207173230.22368-8-ville.syrjala@linux.intel.com Reviewed-by: Lucas De Marchi commit e7251d71d4d4cf7ace722be5761c5a90091c57e5 Author: Ville Syrjälä Date: Thu Feb 7 19:32:24 2019 +0200 drm/i915: Pass crtc_state down to cnl dpll funcs Simplify the calling convention of the dpll funcs by plumbing the crtc state deeper. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190207173230.22368-7-ville.syrjala@linux.intel.com Reviewed-by: Lucas De Marchi commit 67de42e8d5229d8aea82016394d0730ede9b5390 Author: Ville Syrjälä Date: Thu Feb 7 19:32:23 2019 +0200 drm/i915: Remove redundant on stack dpll_hw_state from bxt_get_dpll() Just store the stuff directly into crtc_state->dpll_hw_state rather than to a temp and copying the whole thing over. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190207173230.22368-6-ville.syrjala@linux.intel.com Reviewed-by: Lucas De Marchi commit e40396d015bb4575d2faf2ec46f828cc4159e9e1 Author: Ville Syrjälä Date: Thu Feb 7 19:32:22 2019 +0200 drm/i915: Pass crtc_state down to bxt dpll funcs Simplify the calling convention of the dpll funcs by plumbing the crtc state deeper. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190207173230.22368-5-ville.syrjala@linux.intel.com Reviewed-by: Lucas De Marchi commit 15dc88a87765f4e081fb8ff2b2e21fa234951ee6 Author: Ville Syrjälä Date: Thu Feb 7 19:32:21 2019 +0200 drm/i915: Remove redundant on stack dpll_hw_state from skl_get_dpll() Just store the stuff directly into crtc_state->dpll_hw_state rather than to a temp and copying the whole thing over. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190207173230.22368-4-ville.syrjala@linux.intel.com Reviewed-by: Lucas De Marchi commit 98b6072c2a3ad6214d652917c60022693dd34243 Author: Ville Syrjälä Date: Thu Feb 7 19:32:20 2019 +0200 drm/i915: Pass crtc_state down to skl dpll funcs Simplify the calling convention of the skl dpll funcs by plumbing the crtc state deeper. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190207173230.22368-3-ville.syrjala@linux.intel.com Reviewed-by: Lucas De Marchi commit cc089e8abeac4e025438834acc72b8939743ec90 Author: Ville Syrjälä Date: Thu Feb 7 19:32:19 2019 +0200 drm/i915: Don't pass crtc to intel_get_shared_dpll() and .get_dpll() Passing both crtc and its state is redundant. Pass just the state. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190207173230.22368-2-ville.syrjala@linux.intel.com Reviewed-by: Lucas De Marchi commit da3739070c9904e9f0c2f78e68049742140c581b Author: Ville Syrjälä Date: Thu Feb 7 19:32:18 2019 +0200 drm/i915: Don't pass crtc to intel_find_shared_dpll() Passing both crtc and its state is redundant. Pass just the state. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190207173230.22368-1-ville.syrjala@linux.intel.com Reviewed-by: Lucas De Marchi commit b542570e560554efc2fd3d7db68fe39b34212c37 Author: Jernej Skrabec Date: Mon Jan 28 21:55:04 2019 +0100 arm64: dts: allwinner: h6: Add Video Engine node This adds the Video engine node for H6. It can use whole DRAM range so there is no need for reserved memory node. Signed-off-by: Jernej Skrabec Reviewed-by: Paul Kocialkowski Signed-off-by: Maxime Ripard commit 8217a7a2c76259ff1f2623b60c3bcede052cdb49 Author: Andrey Smirnov Date: Tue Feb 19 18:14:29 2019 -0800 soc: imx: gpcv2: Make use of regmap_read_poll_timeout() Replace explicit polling loop with a call to regmap_read_poll_timeout() to avoid code repetition. Also fix misspelled "failed" while at it. Signed-off-by: Andrey Smirnov Cc: Lucas Stach Cc: Chris Healy Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Reviewed-by: Lucas Stach Signed-off-by: Shawn Guo commit 0f8e231712453794b8c276b566a5698e61ce34a5 Author: Anson Huang Date: Wed Feb 27 00:53:09 2019 +0000 dt-bindings: firmware: imx-scu: add new resources to scu resource table Add new resources as below according to latest system controller firmware for new features: IMX_SC_R_PERF IMX_SC_R_OCRAM IMX_SC_R_DMA_5_CH0 IMX_SC_R_DMA_5_CH1 IMX_SC_R_DMA_5_CH2 IMX_SC_R_DMA_5_CH3 IMX_SC_R_ATTESTATION Signed-off-by: Anson Huang Reviewed-by: Rob Herring Reviewed-by: Dong Aisheng Signed-off-by: Shawn Guo commit 9613163a288e7f96f01a1bb0a82c7760f7f976c2 Author: Anson Huang Date: Wed Feb 27 00:53:04 2019 +0000 dt-bindings: firmware: imx-scu: remove unused resources from scu resource table Removes below resources which were defined during pre-silicon phase and the real silicons do NOT have them, they have never been used, latest system controller firmware also removed them: IMX_SC_R_DC_0_CAPTURE0 IMX_SC_R_DC_0_CAPTURE1 IMX_SC_R_DC_0_INTEGRAL0 IMX_SC_R_DC_0_INTEGRAL1 IMX_SC_R_DC_0_FRAC1 IMX_SC_R_DC_1_CAPTURE0 IMX_SC_R_DC_1_CAPTURE1 IMX_SC_R_DC_1_INTEGRAL0 IMX_SC_R_DC_1_INTEGRAL1 IMX_SC_R_DC_1_FRAC1 IMX_SC_R_GPU_3_PID0 IMX_SC_R_M4_0_SIM IMX_SC_R_M4_0_WDOG IMX_SC_R_M4_1_SIM IMX_SC_R_M4_1_WDOG Signed-off-by: Anson Huang Reviewed-by: Dong Aisheng Signed-off-by: Shawn Guo commit 54f6deafd27db3d14ddd75771dbdc5297a24863e Author: Yinbo Zhu Date: Tue Feb 26 08:40:22 2019 +0000 ARM: dts: ls1021a-qds: enable esdhc controller This patch is to enable esdhc controller in ls1021aqds Signed-off-by: Yinbo Zhu Signed-off-by: Shawn Guo commit 7d1446688d2d0c9235d0cd0890db1bb8c173568d Author: Tim Harvey Date: Fri Mar 1 08:32:53 2019 -0800 ARM: dts: imx: Add TDA19971 HDMI Receiver to GW54xx The GW54xx has a front-panel microHDMI connector routed to a TDA19971 which is connected the the IPU CSI when using IMX6Q. Signed-off-by: Tim Harvey Signed-off-by: Shawn Guo commit 3117e851cef1b4e1b4454d3d223a43ccbf3eee20 Author: Tim Harvey Date: Fri Mar 1 08:28:03 2019 -0800 ARM: dts: imx: Add TDA19971 HDMI Receiver to GW551x The GW551x has a front-panel microHDMI connector routed to a TDA19971 which is connected the the IPU CSI. Signed-off-by: Tim Harvey Signed-off-by: Shawn Guo commit 96d861c2fd40529ab122626ac27f00722760d800 Author: Fabio Estevam Date: Wed Feb 13 16:24:39 2019 -0200 ARM: dts: vf610-zii-ssmb-spu3: Disable watchdog On vf610-zii-ssmb-spu3 board there is a supervisory microcontroller that provides the watchdog functionality, so disable the on-chip Vybrid's watchdog. Signed-off-by: Fabio Estevam Signed-off-by: Shawn Guo commit 8da0af5d6d39fa8d9f2e230045d93f2677ce089e Author: Fabio Estevam Date: Wed Feb 13 16:24:38 2019 -0200 ARM: dts: vf610-zii: Disable SNVS RTC None of these vf610-zii boards have a battery or super-capacitor holding up power to the SNVS RTC embedded in the Vybrid SoC, so it is preferable to disable the snvsrtc node. Signed-off-by: Fabio Estevam Reviewed-by: Andrew Lunn Signed-off-by: Shawn Guo commit 99f698e268786da84dd49bd36176c6d27fa04894 Author: Marco Felsch Date: Mon Feb 4 16:29:55 2019 +0100 ARM: dts: pfla02: prepare storage devices to add paritions Partitions in the NOR and EEPROM are application specific. Prepare the SoM device tree so platform device tree's can add partitions. Signed-off-by: Marco Felsch Acked-by: Uwe Kleine-König Signed-off-by: Shawn Guo commit 64d26f8c1ddee30b61e18c11a0733b3091ad2562 Author: Abel Vesa Date: Thu Feb 28 21:42:46 2019 +0000 arm64: dts: imx8mq: Add the opp table and cores opp properties Add the 0.8GHz and 1GHz opps. According to the datasheet: https://www.nxp.com/docs/en/data-sheet/IMX8MDQLQIEC.pdf section 3.1.3 Operating ranges. The 0.8GHz opp runs in nominal mode with the regulator set to 0.9V. The 1GHz runs in overdrive mode with the regulator set to 1V. Signed-off-by: Abel Vesa Signed-off-by: Shawn Guo commit 9b87ebb149afae0855572a0562df18ab45858c18 Author: Abel Vesa Date: Thu Feb 28 21:42:45 2019 +0000 arm64: dts: imx8mq: Add the buck vdd_arm regulator According to the schematics, this is a MP2147 switch converter which is controlled by GPIO1_IO13. When set the gpio is set to high the regulator output is set to 0.9V. When the gpio is set to low the regulator output is set to 1V. Signed-off-by: Abel Vesa Signed-off-by: Shawn Guo commit b810641a34702a747cb47e2cc1ecaa20f374868e Author: Abel Vesa Date: Thu Feb 28 21:42:44 2019 +0000 arm64: dts: imx8mq: Add the clocks and the latencies for the A53 cores The clocks and their latencies will be used by cpufreq-dt. Signed-off-by: Abel Vesa Signed-off-by: Shawn Guo commit f54f7be5c5acd8be3bf2d5b2caab06870b2ee65d Author: Alison Wang Date: Fri Mar 1 15:46:32 2019 +0800 arm64: dts: ls1028a: Add Audio DT nodes This patch adds Audio DT nodes for LS1028ARDB and LS1028AQDS boards. Signed-off-by: Alison Wang Signed-off-by: Shawn Guo commit 9e113b2e87758a6a0150e0878d2d86b14a0a5328 Author: Carlo Caione Date: Tue Feb 26 09:04:48 2019 +0000 arm64: dts: imx8mq: Add on-chip OTP controller node Add the node for the OTP controller. Signed-off-by: Carlo Caione Reviewed-by: Abel Vesa Signed-off-by: Shawn Guo commit 7be494dd81c1b744694814edba022f45cec9b4db Author: Anson Huang Date: Tue Feb 26 05:17:31 2019 +0000 arm64: dts: imx8qxp: add cpu opp table Add i.MX8QXP CPU opp table to support cpufreq. Signed-off-by: Anson Huang Acked-by: Viresh Kumar Signed-off-by: Shawn Guo commit 4c5896dc4c671cc46035c40b2d80bf4f4ed1598e Author: Chris Wilson Date: Mon Mar 18 21:23:47 2019 +0000 drm/i915: Hold a reference to the active HW context For virtual engines, we need to keep the HW context alive while it remains in use. For regular HW contexts, they are created and kept alive until the end of the GEM context. For simplicity, generalise the requirements and keep an active reference to each HW context. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190318212347.30146-2-chris@chris-wilson.co.uk commit 206c2f812fee530f7eda8ad0e97126aec3cd7c43 Author: Chris Wilson Date: Mon Mar 18 21:23:46 2019 +0000 drm/i915: Lock the gem_context->active_list while dropping the link On unpinning the intel_context, we remove it from the active list inside the GEM context. This list is supposed to be guarded by the GEM context mutex, so remember to take it! Fixes: 7e3d9a59410d ("drm/i915: Track active engines within a context") Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190318212347.30146-1-chris@chris-wilson.co.uk commit 73e97d43666a0a67a2cbeed7b3ce38abdc7cf873 Author: Jani Nikula Date: Mon Mar 18 18:04:09 2019 +0200 drm/i915/psr: remove drmP.h include that crept in We've been free of deprecated drmP.h includes for a while, but one crept in. Fend it off. Cc: José Roberto de Souza Reviewed-by: José Roberto de Souza Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190318160409.27648-1-jani.nikula@intel.com commit 126d0a94c945280c665a4ed240dce64252cf3c6b Author: Jani Nikula Date: Mon Mar 18 18:00:19 2019 +0200 drm/i915: stick to kernel fixed size types We no longer allow mixed C99 and kernel types, and the preference is to use kernel types exclusively. Fix the C99 types that have crept in since the mass conversion. No functional changes. Cc: Juha-Pekka Heikkila Cc: Kevin Strasser Cc: Ramalingam C Cc: Swati Sharma Cc: Ville Syrjälä Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190318160019.9309-1-jani.nikula@intel.com commit 310974faccda080a5e0388d79cf6190d6aa0f1fa Author: Peter Xu Date: Mon Mar 18 14:56:06 2019 +0800 virtio_net: remove hcpu from virtnet_clean_affinity The variable is never used. CC: Michael S. Tsirkin CC: Jason Wang CC: virtualization@lists.linux-foundation.org CC: netdev@vger.kernel.org CC: linux-kernel@vger.kernel.org Signed-off-by: Peter Xu Signed-off-by: David S. Miller commit 95e0b46fcebd7dbf6850dee96046e4c4ddc7f69c Author: Li RongQing Date: Thu Mar 7 09:16:24 2019 +0800 audit: fix a memleak caused by auditing load module module.name will be allocated unconditionally when auditing load module, and audit_log_start() can fail with other reasons, or audit_log_exit maybe not called, caused module.name is not freed so free module.name in audit_free_context and __audit_syscall_exit unreferenced object 0xffff88af90837d20 (size 8): comm "modprobe", pid 1036, jiffies 4294704867 (age 3069.138s) hex dump (first 8 bytes): 69 78 67 62 65 00 ff ff ixgbe... backtrace: [<0000000008da28fe>] __audit_log_kern_module+0x33/0x80 [<00000000c1491e61>] load_module+0x64f/0x3850 [<000000007fc9ae3f>] __do_sys_init_module+0x218/0x250 [<0000000000d4a478>] do_syscall_64+0x117/0x400 [<000000004924ded8>] entry_SYSCALL_64_after_hwframe+0x49/0xbe [<000000007dc331dd>] 0xffffffffffffffff Fixes: ca86cad7380e3 ("audit: log module name on init_module") Signed-off-by: Zhang Yu Signed-off-by: Li RongQing [PM: manual merge fixup in __audit_syscall_exit()] Signed-off-by: Paul Moore commit ff1bf4c0714e7936330bb316090a75eaa35061e7 Author: Paulo Alcantara Date: Sun Feb 24 21:55:28 2019 -0300 selinux: use kernel linux/socket.h for genheaders and mdp When compiling genheaders and mdp from a newer host kernel, the following error happens: In file included from scripts/selinux/genheaders/genheaders.c:18: ./security/selinux/include/classmap.h:238:2: error: #error New address family defined, please update secclass_map. #error New address family defined, please update secclass_map. ^~~~~ make[3]: *** [scripts/Makefile.host:107: scripts/selinux/genheaders/genheaders] Error 1 make[2]: *** [scripts/Makefile.build:599: scripts/selinux/genheaders] Error 2 make[1]: *** [scripts/Makefile.build:599: scripts/selinux] Error 2 make[1]: *** Waiting for unfinished jobs.... Instead of relying on the host definition, include linux/socket.h in classmap.h to have PF_MAX. Signed-off-by: Paulo Alcantara Acked-by: Stephen Smalley [PM: manually merge in mdp.c, subject line tweaks] Signed-off-by: Paul Moore commit e37c1877ba5b17d4251e1688449f8d43fc090802 Author: Stephen Smalley Date: Thu Feb 21 16:31:47 2019 -0500 scripts/selinux: modernize mdp Derived in part from a patch by Dominick Grift. The MDP example no longer works on modern systems. Fix it. While we are at it, add MLS support and enable it. NB This still does not work on systems using dbus-daemon instead of dbus-broker because dbus-daemon does not yet gracefully handle unknown classes/permissions. This appears to be a deficiency in libselinux's selinux_set_mapping() interface and underlying implementation, which was never fully updated to deal with unknown classes/permissions unlike the kernel. The same problem also occurs with XSELinux. Programs that instead use selinux_check_access() like dbus-broker should not have this problem. Changes to mdp: Add support for devtmpfs, required by modern Linux distributions. Add MLS support, with sample sensitivities, categories, and constraints. Generate fs_use and genfscon rules based on kernel configuration. Update list of filesystem types for fs_use and genfscon rules. Use object_r for object contexts. Changes to install_policy.sh: Bail immediately on any errors. Provide more helpful error messages when unable to find userspace tools. Refuse to run if SELinux is already enabled. Unconditionally move aside /etc/selinux/config and create a new one. Build policy with -U allow so that userspace object managers do not break. Build policy with MLS enabled by default. Create seusers, failsafe_context, and default_contexts for use by pam_selinux / libselinux. Create x_contexts for the SELinux X extension. Create virtual_domain_context and virtual_image_context for libvirtd. Set to permissive mode rather than enforcing to permit initial autorelabel. Update the list of filesystem types to be relabeled. Write -F to /.autorelabel to cause a forced autorelabel on reboot. Drop broken attempt to relabel the /dev mountpoint directory. Signed-off-by: Stephen Smalley Acked-by: Dominick Grift Signed-off-by: Paul Moore commit 4bcb298e6053956321a4eb65d6418d8c46560561 Author: Suganath Prabu Date: Fri Feb 15 02:40:30 2019 -0500 scsi: mpt3sas: Update mpt3sas driver version to 28.100.00.00 Updated driver version to 28.100.00.00, which is equivalent to OOB Phase 9. Signed-off-by: Suganath Prabu Signed-off-by: Martin K. Petersen commit 288addd63b2478e8bd6d0bb7786a2eeb53bb2986 Author: Suganath Prabu Date: Fri Feb 15 02:40:29 2019 -0500 scsi: mpt3sas: Improve the threshold value and introduce module param * Reduce the threshold value to 1/4 of the queue depth. * With this FW can find enough entries to post the Reply Descriptors in the reply descriptor post queue. * With module param, user can play with threshold value, the same irqpoll_weight is used as the budget in processing of reply descriptor post queues in _base_process_reply_queue. Signed-off-by: Suganath Prabu Signed-off-by: Martin K. Petersen commit 51e3b2ad6de2b135d0fc7170f1b133f4e7a7639d Author: Suganath Prabu Date: Fri Feb 15 02:40:28 2019 -0500 scsi: mpt3sas: Load balance to improve performance and avoid soft lockups Driver uses "reply descriptor post queues" in round robin fashion so that IO's are distributed to all the available reply descriptor post queues equally. With this each reply descriptor post queue load is balanced. This is enabled only if CPUs count to MSI-X vector count ratio is X:1 (where X > 1) This improves performance and also fixes soft lockups. Signed-off-by: Suganath Prabu Signed-off-by: Martin K. Petersen commit 320e77acb32774b6addfe38d562956fad70c5f0d Author: Suganath Prabu Date: Fri Feb 15 02:40:27 2019 -0500 scsi: mpt3sas: Irq poll to avoid CPU hard lockups Issue Description: We have seen cpu lock up issue from fields if system has greater (more than 96) logical cpu count. SAS3.0 controller (Invader series) supports at max 96 msix vector and SAS3.5 product (Ventura) supports at max 128 msix vectors. This may be a generic issue (if PCI device supports completion on multiple reply queues). Let me explain it w.r.t to mpt3sas supported h/w just to simplify the problem and possible changes to handle such issues. IT HBA (mpt3sas) supports multiple reply queues in completion path. Driver creates MSI-x vectors for controller as "min of (FW supported Reply queue, Logical CPUs)". If submitter is not interrupted via completion on same CPU, there is a loop in the IO path. This behavior can cause hard/soft CPU lockups, IO timeout, system sluggish etc. Example - one CPU (e.g. CPU A) is busy submitting the IOs and another CPU (e.g. CPU B) is busy with processing the corresponding IO's reply descriptors from reply descriptor queue upon receiving the interrupts from HBA. If the CPU A is continuously pumping the IOs then always CPU B (which is executing the ISR) will see the valid reply descriptors in the reply descriptor queue and it will be continuously processing those reply descriptor in a loop without quitting the ISR handler. Mpt3sas driver will exit ISR handler if it finds unused reply descriptor in the reply descriptor queue. Since CPU A will be continuously sending the IOs, CPU B may always see a valid reply descriptor (posted by HBA Firmware after processing the IO) in the reply descriptor queue. In worst case, driver will not quit from this loop in the ISR handler. Eventually, CPU lockup will be detected by watchdog. Above mentioned behavior is not common if "rq_affinity" set to 2 or affinity_hint is honored by irqbalance as "exact". If rq_affinity is set to 2, submitter will be always interrupted via completion on same CPU. If irqbalance is using "exact" policy, interrupt will be delivered to submitter CPU. If CPU counts to MSI-X vectors (reply descriptor Queues) count ratio is not 1:1, we still have exposure of issue explained above and for that we don't have any solution. Exposure of soft/hard lockup if CPU count is more than MSI-x supported by device. If CPUs count to MSI-x vectors count ratio is not 1:1, (Other way, if CPU counts to MSI-x vector count ratio is something like X:1, where X > 1) then 'exact' irqbalance policy OR rq_affinity = 2 won't help to avoid CPU hard/soft lockups. There won't be any one to one mapping between CPU to MSI-x vector instead one MSI-x interrupt (or reply descriptor queue) is shared with group/set of CPUs and there is a possibility of having a loop in the IO path within that CPU group and may observe lockups. For example: Consider a system having two NUMA nodes and each node having four logical CPUs and also consider that number of MSI-x vectors enabled on the HBA is two, then CPUs count to MSI-x vector count ratio as 4:1. e.g. MSIx vector 0 is affinity to CPU 0, CPU 1, CPU 2 & CPU 3 of NUMA node 0 and MSI-x vector 1 is affinity to CPU 4, CPU 5, CPU 6 & CPU 7 of NUMA node 1. numactl --hardware available: 2 nodes (0-1) node 0 cpus: 0 1 2 3 --> MSI-x 0 node 0 size: 65536 MB node 0 free: 63176 MB node 1 cpus: 4 5 6 7 -->MSI-x 1 node 1 size: 65536 MB node 1 free: 63176 MB Assume that user started an application which uses all the CPUs of NUMA node 0 for issuing the IOs. Only one CPU from affinity list (it can be any cpu since this behavior depends upon irqbalance) CPU0 will receive the interrupts from MSIx vector 0 for all the IOs. Eventually, CPU 0 IO submission percentage will be decreasing and ISR processing percentage will be increasing as it is more busy with processing the interrupts. Gradually IO submission percentage on CPU 0 will be zero and it's ISR processing percentage will be 100 percentage as IO loop has already formed within the NUMA node 0, i.e. CPU 1, CPU 2 & CPU 3 will be continuously busy with submitting the heavy IOs and only CPU 0 is busy in the ISR path as it always find the valid reply descriptor in the reply descriptor queue. Eventually, we will observe the hard lockup here. Chances of occurring of hard/soft lockups are directly proportional to value of X. If value of X is high, then chances of observing CPU lockups is high. Solution: Use IRQ poll interface defined in " irq_poll.c". mpt3sas driver will execute ISR routine in Softirq context and it will always quit the loop based on budget provided in IRQ poll interface. In these scenarios (i.e. where CPUs count to MSI-X vectors count ratio is X:1 (where X > 1)), IRQ poll interface will avoid CPU hard lockups due to voluntary exit from the reply queue processing based on budget. Note - Only one MSI-x vector is busy doing processing. Irqstat output: IRQs / 1 second(s) IRQ# TOTAL NODE0 NODE1 NODE2 NODE3 NAME 44 122871 122871 0 0 0 IR-PCI-MSI-edge mpt3sas0-msix0 45 0 0 0 0 0 IR-PCI-MSI-edge mpt3sas0-msix1 We use this approach only if cpu count is more than FW supported MSI-x vector Signed-off-by: Suganath Prabu Signed-off-by: Martin K. Petersen commit 233af108e57b38eb8fb68e8bce72dc5c57d70f1a Author: Suganath Prabu Date: Fri Feb 15 02:40:25 2019 -0500 scsi: mpt3sas: simplify interrupt handler Separate out processing of reply descriptor post queue from _base_interrupt to _base_process_reply_queue. Signed-off-by: Suganath Prabu Signed-off-by: Martin K. Petersen commit 2c063507c4f300c55edd9e69aaeee60ed88de1d4 Author: Suganath Prabu Date: Fri Feb 15 02:40:24 2019 -0500 scsi: mpt3sas: Fix typo in request_desript_type Fixed typo in request_desript_type. request_desript_type --> request_descript_type. Signed-off-by: Suganath Prabu Signed-off-by: Martin K. Petersen commit 0322913cab79e47282fa98910559cbf6f3660b52 Author: Alan Adamson Date: Fri Mar 1 14:44:20 2019 -0800 scsi: target: Add device product id and revision configfs attributes The product_id and revision attributes will allow for the modification of the T10 Model and Revision strings returned in inquiry responses. Its value can be viewed and modified via the ConfigFS path at: target/core/$backstore/$name/wwn/product_id target/core/$backstore/$name/wwn/revision [mkp: dropped parentheses as requested by Bart] Signed-off-by: Alan Adamson Reviewed-by: Bart Van Assche Signed-off-by: Martin K. Petersen commit 65baf0ef046b0297a1214932d48a6b71d3d79b4c Author: Chris Wilson Date: Mon Mar 18 09:51:46 2019 +0000 drm/i915: Hold a ref to the ring while retiring As the final request on a ring may hold the reference to this ring (via retiring the last pinned context), we may find ourselves chasing a dangling pointer on completion of the list. A quick solution is to hold a reference to the ring itself as we retire along it so that we only free it after we stop dereferencing it. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190318095204.9913-4-chris@chris-wilson.co.uk commit 54939ea0bd85e128bdd5bca579508dd4701c5ce9 Author: Chris Wilson Date: Mon Mar 18 09:51:51 2019 +0000 drm/i915: Switch to use HWS indices rather than addresses If we use the STORE_DATA_INDEX function we can use a fixed offset and avoid having to lookup up the engine HWS address. A step closer to being able to emit the final breadcrumb during request_add rather than later in the submission interrupt handler. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190318095204.9913-9-chris@chris-wilson.co.uk commit 171f1887995b4f430962147ad42ec35631cf2525 Author: Don Brace Date: Thu Mar 14 16:58:16 2019 -0500 scsi: smartpqi: bump driver version Reviewed-by: Gerry Morong Reviewed-by: David Carroll Reviewed-by: Scott Benesh Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Signed-off-by: Don Brace Signed-off-by: Martin K. Petersen commit 2cc37b1575c6f51cc1bb3ed761de5476917cb6ff Author: Don Brace Date: Thu Mar 14 16:58:09 2019 -0500 scsi: smartpqi: add spdx Reviewed-by: David Carroll Reviewed-by: Scott Benesh Reviewed-by: Scott Teel Reviewed-by: Kevin Barnett Signed-off-by: Don Brace Signed-off-by: Martin K. Petersen commit 2f4c4b92dbd8b8890f78cc8748850449a3592bc5 Author: Don Brace Date: Thu Mar 14 16:58:02 2019 -0500 scsi: smartpqi: update copyright Reviewed-by: Gerry Morong Reviewed-by: Scott Benesh Reviewed-by: Scott Teel Reviewed-by: David Carroll Reviewed-by: Kevin Barnett Signed-off-by: Don Brace Signed-off-by: Martin K. Petersen commit 0595a0b4aeed134e3ff3be80cd7b7bce57f056ac Author: Ajish Koshy Date: Thu Mar 14 16:57:55 2019 -0500 scsi: smartpqi: add H3C controller IDs Reviewed-by: Scott Teel Reviewed-by: Scott Benesh Reviewed-by: David Carroll Reviewed-by: Kevin Barnett Signed-off-by: Ajish Koshy Signed-off-by: Don Brace Signed-off-by: Martin K. Petersen commit 429fab70591e19fed7d490b6889470d71ea46236 Author: Kevin Barnett Date: Thu Mar 14 16:57:49 2019 -0500 scsi: smartpqi: increase LUN reset timeout Reviewed-by: Scott Benesh Reviewed-by: David Carroll Reviewed-by: Kevin Barnett Signed-off-by: Kevin Barnett Signed-off-by: Don Brace Signed-off-by: Martin K. Petersen commit c59c32cdb2abedb39d6ab8ac3be2efebf026aa41 Author: Don Brace Date: Tue Mar 12 13:11:52 2019 -0500 scsi: hpsa: bump driver version Reviewed-by: Gerry Morong Reviewed-by: Scott Teel Signed-off-by: Don Brace Signed-off-by: Martin K. Petersen commit 1edb69344c882bdf54cd7a448faf6d1fdf3e80bb Author: Don Brace Date: Tue Mar 12 13:11:45 2019 -0500 scsi: hpsa: remove timeout from TURs There are times when a TUR can take longer than the DEFAULT_TIMEOUT value. The timeout code is not correct as the function exits with an automatic as the completion variable...To be fixed later. Remove the TUR timeout. Reviewed-by: Scott Benesh Reviewed-by: Scott Teel Signed-off-by: Don Brace Signed-off-by: Martin K. Petersen commit a45bcc4e11b1ebc9a2301c457f7746a1309e8a94 Author: Don Brace Date: Tue Mar 12 13:11:39 2019 -0500 scsi: hpsa: correct device id issues Correct a 'rare' race condition where a disk is failed after a device list has been obtained from the controller and before attempting to get the device id. Reviewed-by: Scott Teel Signed-off-by: Don Brace Signed-off-by: Martin K. Petersen commit 49ea45cb1d97fd65090b00c887dcf7650ced8c1b Author: Don Brace Date: Tue Mar 12 13:11:33 2019 -0500 scsi: hpsa: check for lv removal Multipath failures are normally detected at the frequency of the event thread. Detect LUN failures earlier by checking request completion status. Reviewed-by: Bader Ali-saleh Reviewed-by: Scott Benesh Reviewed-by: Scott Teel Reviewed-by: Prasad Munirathnam Reviewed-by: Kevin Barnett Signed-off-by: Don Brace Signed-off-by: Martin K. Petersen commit 758904ad61aeec5131ba4df9bbfffdc2dc4053a0 Author: Sanjana Sanikommu Date: Mon Mar 18 23:26:31 2019 +0530 Staging: rtl8188eu: rtw_ieee80211: Fix indent for 'if' statement. Adjust indentation for the condition statement. Issue found by checkpatch.pl WARNING: suspect code indent for condition statements(8,24) Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit 7f396393b941e5594d927933175301d0db13f5a6 Author: Stuart Menefy Date: Tue Feb 19 13:03:36 2019 +0000 ARM: dts: exynos: Add interrupts for dedicated EINTs on Exynos5260 Add the missing interrupt information for the GPIO lines with dedicated EINT interrupts. Signed-off-by: Stuart Menefy Signed-off-by: Krzysztof Kozlowski commit c5432b1d44a787ae8e8d8097e05f7ed9cf563535 Author: Stuart Menefy Date: Tue Feb 19 13:03:35 2019 +0000 ARM: dts: exynos: Add high speed I2C ports for Exynos5260 Most of the work to support the high speed I2C ports on the Exynos5260 was added in commit 218e1496135e ("i2c: exynos5: add support for HSI2C on Exynos5260 SoC") and the pinctrl nodes have always been available. All that is missing to get them working is the addition of the DT bindings. Signed-off-by: Stuart Menefy Signed-off-by: Krzysztof Kozlowski commit 17c130a170f2b6a06b0ad88b6f564f5fe5a2cb79 Author: Stuart Menefy Date: Tue Feb 19 13:03:34 2019 +0000 ARM: dts: exynos: Use bustop PLL as the source for MMC clocks on Exynos5260 By default the MMC clock will be derived from mediatop PLL, which usually runs at 666MHz. However as most SD and MMC clocks are multiples or fractions of 100MHz, it makes more sense to use the bustop PLL which runs at 800MHz. This matches the behaviour of the Samsung vendor supplied 3.4 kernel. Signed-off-by: Stuart Menefy Signed-off-by: Krzysztof Kozlowski commit eb1d0a50f74ce05a06ea150d8b677718f7390920 Author: Krzysztof Kozlowski Date: Mon Feb 18 20:48:41 2019 +0100 ARM: dts: exynos: Order nodes alphabetically in Arndale Octa Having nodes and overrides-by-label ordered alphabetically reduces the possibility of conflicts from simultaneous edits. No functional change. Signed-off-by: Krzysztof Kozlowski commit 29a0a2a848ecf5af699f27a46efb39adaa33449f Author: Krzysztof Kozlowski Date: Mon Feb 18 20:48:40 2019 +0100 ARM: dts: exynos: Add CPU cooling on Arndale Octa Arndale Octa board comes without fan so proper CPU cooling is necessary to avoid critical shutdowns when CPUs are busy. Although thermal zones were present but CPU cooling was missing in DTS. Adjust the trip points and add respective cooling nodes for each CPU thermal zone. The CPU throttling will start at 60 degrees of C, intensify at 80 degrees of C and slow down CPUs as much as possible at 110 degrees of C. With this configuration, when running four CPU intensive tasks, the temperatures did not exceed 90 degrees of Celsius mostly oscillating around 88 degrees in hottest thermal zone. Test was however done with only four CPUs online (big cluster, Cortex A15) because of errors when booting secondary CPUs. Signed-off-by: Krzysztof Kozlowski commit 3619452589d0ea295351c6557061b37341a0cbc3 Author: Krzysztof Kozlowski Date: Mon Feb 18 18:32:57 2019 +0100 ARM: dts: exynos: Add unused PMIC regulators on Arndale Octa board Define the LDO14, LDO17, LDO22, LDO25, LDO30, LDO34, LDO36 and LDO37 unused regulators to describe the hardware. Signed-off-by: Krzysztof Kozlowski commit f35020b94a45f09b4dd97b4f1d721059f5a20867 Author: Krzysztof Kozlowski Date: Mon Feb 18 18:32:56 2019 +0100 ARM: dts: exynos: Use stdout path property on Arndale Octa board Replacing bootargs with stdout-path property in chosen node allows using early console by adding just 'earlycon' parameter to kernel command line. Suggested-by: Marek Szyprowski Signed-off-by: Krzysztof Kozlowski commit 15b8831f87874c21e431ffa3801781690973c384 Author: Krzysztof Kozlowski Date: Tue Feb 12 18:46:38 2019 +0100 ARM: dts: exynos: Document regulator used by ADC on Odroid U3 Add ADC node to Odroid U3 with its regulator, purely for documentation purposes. The ADC stays disabled because it is not used (all inputs grounded). Signed-off-by: Krzysztof Kozlowski commit d7fa8ed4337235511be39699a5295777cc326257 Author: Krzysztof Kozlowski Date: Tue Feb 12 18:45:50 2019 +0100 ARM: dts: exynos: Use ADC for Exynos4x12 on Exynos4412 Exynos4412 should use "samsung,exynos4212-adc" compatible to report proper number of (four) channels. Signed-off-by: Krzysztof Kozlowski commit 71c873080200912a053e1d897c5106e6b65f5309 Author: Sakari Ailus Date: Tue Feb 26 12:42:58 2019 +0200 ACPI: Document how to refer to LEDs from remote nodes Document referring to LEDs from remote device nodes, such as from camera sensors. Signed-off-by: Sakari Ailus Acked-by: Rafael J. Wysocki Signed-off-by: Jacek Anaszewski commit 88b7e9ffe59473afffecef71a937a7b12ccefb69 Author: Sakari Ailus Date: Mon Feb 25 14:23:41 2019 +0200 leds: as3645a: Switch to fwnode property API Switch the as3645a from OF to the fwnode property API. Also add ACPI support. Signed-off-by: Sakari Ailus Signed-off-by: Jacek Anaszewski commit 9834857754fffde7008123503fe8f1d66f526eb5 Author: Federico Vaga Date: Sun Feb 24 21:05:27 2019 +0100 doc:it_IT: translations for documents in process/ Translated documents: - stable-kernel-rules.rst - deprecated.rst - kernel-enforcement-statement.rst - license-rules.rst Added document to have valid links - netdev-FAQ.rst Modifications to main documentation - add label in deprecated.rst Signed-off-by: Federico Vaga Signed-off-by: Jonathan Corbet commit 2f1ff5899076ec8ff87e4088fb9a4f55825c66a5 Author: Jakub Wilk Date: Mon Mar 4 21:31:52 2019 +0100 Documentation: seccomp: unify list indentation Use tabs to indent SECCOMP_RET_USER_NOTIF definition, for consistency with other items in this list. Signed-off-by: Jakub Wilk Acked-by: Kees Cook Signed-off-by: Jonathan Corbet commit 6491126e1ba774622e7c69de95bdfa7127ef83f7 Author: Jakub Wilk Date: Mon Mar 4 21:31:51 2019 +0100 Documentation: seccomp: fix reST markup Signed-off-by: Jakub Wilk Acked-by: Kees Cook Signed-off-by: Jonathan Corbet commit d85be9b1f0ad41572852d5c0a362ebbedc5328ca Author: Sanjana Sanikommu Date: Mon Mar 18 19:59:44 2019 +0530 Staging: rtl8188eu: core: rtw_mlme.c: Replace NULL comparision. Replace NULL comparison with '!' in the file rtw_mlme.c Issue found by checkpatch.pl semantic patch results for rtw_mlme.c CHECK:Comparision to NULL could be written "!candidate" Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit c127e22f4cc1b093c9ee882ddc887b9cb08982d7 Author: Sanjana Sanikommu Date: Mon Mar 18 21:48:40 2019 +0530 Staging: gasket: gasket_sysfs.c: Fix string split issue. Concatenate a multi-line string constant into a single line.Issue found by checkpatch.pl. WARNING:quoted string split across line. Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit ffe5a0a16fcd712c99c0acf216e5d80755ff16df Author: Branden Bonaby Date: Mon Mar 18 13:25:06 2019 -0400 staging: wlan-ng: line over 80 character limit Align function to prevent it from going over the 80 character a line limit for readability. WARNING: line over 80 characters Signed-off-by: Branden Bonaby Signed-off-by: Greg Kroah-Hartman commit c9da300ab61cbf5f2aeb4558f5894cda33ffeb50 Author: Jules Irenge Date: Mon Mar 18 13:21:10 2019 +0000 staging: speakup: fix printk KERN_LEVEL facility level warning Replace printk with pr_info to solve checkpatch.pl warning: " WARNING: printk() should include KERN_ facility level" Signed-off-by: Jules Irenge Signed-off-by: Greg Kroah-Hartman commit 7af91810209f1a3ddd56f2f898c2cd94399b1d93 Author: Sanjana Sanikommu Date: Mon Mar 18 18:26:45 2019 +0530 Staging: rtl8188eu: core: rtw_pwrctrl.c: Fix a comparision warning. Move the constant to the right side of comparision. Issue found by checkpatch.pl semantic patch results for rtw_ap.c WARNING:Comparision should place the constant on the right side of the test. Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit f680cf503abcd74695e0803ab1a189cfa075b65c Author: Bhanusree Pola Date: Mon Mar 18 12:35:53 2019 +0530 Staging: rtl8192e: Remove parentheses around the right hand side of assignments Avoid useless parentheses to the right hand side of an assignment. Issue found using coccinelle. The semantic patch that fixes the problem is as follows // @r1 disable paren@ expression value,e; @@ ( - value = (e) + value = e ) @r2 depends on r1@ expression value,e; constant c; @@ ( - value = (e == c) + value = (e == c) | - value = (e <= c) + value = (e <= c) | - value = (e >= c) + value = (e >= c) | - value = (e != c) + value = (e != c) ) // Signed-off-by: Bhanusree Pola Signed-off-by: Greg Kroah-Hartman commit 30cc0b6c1220d61347177560afc3c8c706c73741 Author: Juergen Gross Date: Fri Mar 8 12:43:10 2019 +0100 doc: add boot protocol 2.13 description to Documentation/x86/boot.txt Documentation/x86/boot.txt is missing protocol 2.13 description. Reported-by: Ross Philipson Signed-off-by: Juergen Gross Reviewed-by: Konrad Rzeszutek Wilk Reviewed-by: H. Peter Anvin Reviewed-by: Matt Fleming Reviewed-by: Daniel Kiper Signed-off-by: Jonathan Corbet commit 20bd1249489bcc74f275fc2f1d27cd2ceda4ee38 Author: Federico Vaga Date: Thu Mar 14 21:45:16 2019 +0100 doc: add translation disclaimer Add the translation disclaimer in English as reference for other languages. Translations must include this disclaimer in their language so that readers are properly informed. This very same patch updates the Italian translation accordingly. Signed-off-by: Federico Vaga Acked-by: Alex Shi Signed-off-by: Jonathan Corbet commit dcea1c73a656599783a610df910c11231997f224 Author: Alex Shi Date: Wed Mar 13 21:50:01 2019 +0800 docs/zh_CN: fix rst format errors in howto.rst Tame howto.rst file to avoid "ERROR: Unexpected indentation." etc compiler errors. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Li Yang Cc: TripleX Chung Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit a31ffdb3fc06006205c991a1199b175bfa358e79 Author: Alex Shi Date: Wed Mar 13 21:50:00 2019 +0800 docs/zh_CN: fix rst format issue in submitting-patch Tame 'make htmldocs' to avoid indent and code section error complains. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Li Yang Cc: TripleX Chung Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit 9b628c6ab437fd5217d50bb021128bc54f661f03 Author: Alex Shi Date: Wed Mar 13 21:49:59 2019 +0800 mailmap: update my obsolete email address I am not working for Intel or Linaro, so udpate the email address. Signed-off-by: Alex Shi Cc: Andrew Morton Cc: Li Yang Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit 6dca09cb15cc93d6f747f6761bd5c505f024df74 Author: Alex Shi Date: Wed Mar 13 21:49:58 2019 +0800 docs/zh_CN: remove zh-kernel.org in MAINTAINERS This web site is on sale, and Li Yang said it won't be in service again. Signed-off-by: Alex Shi Cc: Greg Kroah-Hartman Cc: Li Yang Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit ce8ee3a8c07f6218124aa0336bae9c669b203bd7 Author: Alex Shi Date: Wed Mar 13 21:49:57 2019 +0800 docs/zh_CN: fix indent issue in submitting-drivers Tame 'make htmldocs' w/o indent complains. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Li Yang Cc: TripleX Chung Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit 115dbd5ca563e5c1ffb79413e9fbb0babf0832f8 Author: Alex Shi Date: Wed Mar 13 21:49:56 2019 +0800 docs/zh_CN: fix indent issue in stable-api-nonsense file Tame the 'make htmldocs' to avoid 'ERROR: Unexpected indentation' etc errors. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Li Yang Cc: TripleX Chung Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit f448a54e0e47e9578d8547c8f91ccfb7fb26be45 Author: Alex Shi Date: Wed Mar 13 21:49:55 2019 +0800 docs/zh_CN: update TripleX chung's email address Update the obslete email address to active one in Chineses docs. Signed-off-by: Alex Shi Cc: TripleX Chung Cc: Li Yang Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit 0e4f08b85206c826475d291211ce4b4ba40541ed Author: Alex Shi Date: Wed Mar 13 21:49:54 2019 +0800 mailmap: update email address for Triplex triplex@zh-kernel.org and zhongyu@18mail.cn is absolete email address for TripleX Chung Signed-off-by: Alex Shi Cc: Andrew Morton Cc: TripleX Chung Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit 89870c214360a1e42df83fa3fce71b5b661aa07c Author: Alex Shi Date: Wed Mar 13 21:49:53 2019 +0800 docs/zh_CN: update Zhang Wei's email address to replace the obsolete email address with new one. Signed-off-by: Alex Shi Cc: Zhang Wei Cc: Li Yang Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit 845a326f95f14544e5b3c4b4c8549b3871c8c354 Author: Alex Shi Date: Wed Mar 13 21:49:52 2019 +0800 mailmap: update Li Yang's email address Update the obsolete email address leoli@freescale.com and leo@zh-kernel.org with leoyang.li@nxp.com. Signed-off-by: Alex Shi Cc: Andrew Morton Cc: Li Yang Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit 707a680e5c904e87ad98a28fdfefb1467b86b1bc Author: Alex Shi Date: Wed Mar 13 21:49:51 2019 +0800 docs/zh_CN: update Li Yang's email address Change leoli@freescale.com and leo@zh-kernel.org to active address: leoyang.li@nxp.com Signed-off-by: Alex Shi Cc: Li Yang Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit fce8cc57b37e6bb9820ea02a008c602e497f81b3 Author: Alex Shi Date: Wed Mar 13 21:49:50 2019 +0800 docs/zh_CN: format stable-api-nonsense to make it follow rst format and readble in html etc doc making. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: TripleX Chung Cc: Li Zefan Cc: Shawn Guo Cc: Fengguang Wu Cc: Coly Li Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit 2f3dea95661c24e352e3265a85c0c22d9bda92c7 Author: Alex Shi Date: Wed Mar 13 21:49:49 2019 +0800 docs/zh_CN: rename stable_api_nonsense.txt as stable-api-nonsense.rst make it available in html etc doc making Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: TripleX Chung Cc: Li Zefan Cc: Shawn Guo Cc: Fengguang Wu Cc: Coly Li Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit 4cc4e49a416459c08da456ef7802fb090d2404ae Author: Alex Shi Date: Wed Mar 13 21:49:48 2019 +0800 docs/zh_CN: format the magic-number doc as rst to Make it readble in html etc doc making. And fix the wrong translation for 'number' in form. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Jia Wei Wei Cc: Li Zefan Cc: Shawn Guo Cc: Fengguang Wu Cc: Coly Li Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit 95dcdb6e125f237417df4618676871dbb02b380e Author: Alex Shi Date: Wed Mar 13 21:49:47 2019 +0800 docs/zh_CN: rename magic-numbers as rst doc to Make it available in html etc doc making Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Jia Wei Wei Cc: Li Zefan Cc: Shawn Guo Cc: Fengguang Wu Cc: Coly Li Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit eb6adf7da473fe0db11571652e6da7012b94bdfd Author: Alex Shi Date: Wed Mar 13 21:49:46 2019 +0800 docs/zh_CN: format submitting drivers as rst to Make it readble for html etc docs making. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Li Yang Cc: Li Zefan Cc: Shawn Guo Cc: Fengguang Wu Cc: Coly Li Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit 701a4ebd627c17c3c3857e83ba9a5c8e93b5f98d Author: Alex Shi Date: Wed Mar 13 21:49:45 2019 +0800 docs/zh_CN: rename SubmittingDrivers Rename the file to make it available in html etc docs making. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Li Yang Cc: Li Zefan Cc: Shawn Guo Cc: Fengguang Wu Cc: Coly Li Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit 7712cfd6597ab952a700dee6cca5a3c3a319b2d0 Author: Alex Shi Date: Wed Mar 13 21:49:44 2019 +0800 docs/zh_CN: volatile doc format changes make it readble as rst format for html etc doc making. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Bryan Wu Cc: Li Zefan Cc: Shawn Guo Cc: Fengguang Wu Cc: Coly Li Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit bc31de5664c13481e4725c8ca9ad4655a06d65ed Author: Alex Shi Date: Wed Mar 13 21:49:43 2019 +0800 docs/zh_CN: rename volatile-consider-harmful doc Make it available for html etc docs making. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Bryan Wu Cc: Li Zefan Cc: Shawn Guo Cc: Fengguang Wu Cc: Coly Li Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit 8bfb5561e1dd2303d871153a22905af0d395e9a4 Author: Alex Shi Date: Wed Mar 13 21:49:42 2019 +0800 docs/zh_CN: do rst format for email-clients.rst Make it readble as rst format. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Li Zefan Cc: Shawn Guo Cc: Fengguang Wu Cc: Coly Li Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit 9d47f5148c6580020c32d415f68b29575d193119 Author: Alex Shi Date: Wed Mar 13 21:49:41 2019 +0800 docs/zh_CN: rename email-clients.txt as email-clients.rst Make it available for html etc docs. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Li Zefan Cc: Shawn Guo Cc: Fengguang Wu Cc: Coly Li Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit d6bf62e30d4d60e41093e8067e2107ffeb7145dd Author: Alex Shi Date: Wed Mar 13 21:49:40 2019 +0800 docs/zh_CN: rst format change for stable-kernel-rules to Make it readble with rst format. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: TripleX Chung Cc: Li Zefan Cc: Shawn Guo Cc: Fengguang Wu Cc: Coly Li Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit d7fb7ad29dbaf96da6adbefcf3a63984a9b2a3a4 Author: Alex Shi Date: Wed Mar 13 21:49:39 2019 +0800 docs/zh_CN: rename stable_kernel_rules doc This patch renamed stable_kernel_rules.txt to stable-kernel-rules.rst Make it available in htmldocs making. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: TripleX Chung Cc: Li Zefan Cc: Shawn Guo Cc: Fengguang Wu Cc: Coly Li Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit 6bd77522580df45de15342c6424f442877b031be Author: Alex Shi Date: Wed Mar 13 21:49:38 2019 +0800 docs/zh_CN: format the submitting-patches doc to rst And remove Enghlish explainations in the docs, which it isn't necessary in Chinese doc. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: TripleX Chung Cc: Li Zefan Cc: Shawn Guo Cc: Fengguang Wu Cc: Coly Li Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit 001ef4e0fc96fb7a0c99036e98e8f25f51df84b3 Author: Alex Shi Date: Wed Mar 13 21:49:37 2019 +0800 docs/zh_CN: rename SubmittingPatches for html links renamed: Documentation/translations/zh_CN/process/SubmittingPatches -> Documentation/translations/zh_CN/process/submitting-patches.rst For htmldoc links. And will change the doc format to rst. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: TripleX Chung Cc: Li Zefan Cc: Shawn Guo Cc: Fengguang Wu Cc: Coly Li Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit 6014f056ac551322f4e83007ad2de53247a9823a Author: Alex Shi Date: Wed Mar 13 21:49:36 2019 +0800 docs/zh_CN: howto format changes also with few contents changes Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Li Yang Cc: Li Zefan Cc: Shawn Guo Cc: Fengguang Wu Cc: Coly Li Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit 32946a03984d466c80345167bd53fe1e3195ce8f Author: Alex Shi Date: Wed Mar 13 21:49:35 2019 +0800 docs/zh_CN: rename HOWTO into process directory Make it available in htmldocs Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Li Yang Cc: Li Zefan Cc: Shawn Guo Cc: Fengguang Wu Cc: Coly Li Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit 653f10690164d2ab7d3b328a54d53140a8f3d035 Author: Alex Shi Date: Wed Mar 13 21:49:34 2019 +0800 docs/zh_CN: add index file into process dir Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Li Zefan Cc: Shawn Guo Cc: Fengguang Wu Cc: Coly Li Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit 744da9033b3a59be21f135a10b8150e9a0352198 Author: Alex Shi Date: Wed Mar 13 21:49:33 2019 +0800 docs/zh_CN: change Chinese index to know process dir And add some description translation in index file. Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Li Zefan Cc: Shawn Guo Cc: Fengguang Wu Cc: Coly Li Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit aa3b3690504d8dde55539b406a3fbbdc3fe228d2 Author: Alex Shi Date: Wed Mar 13 21:49:32 2019 +0800 docs/zh_CN: move process related docs into process dir Much process documents spread here isn't neat. It's good to put them together in their directory: process So create 'process' directory and move docs: email-clients stable_kernel_rules stable_api_nosense submittingpatches submittingdrivers HOWTO volatile-considered-harmful there. Signed-off-by: Alex Shi Cc: Li Zefan Cc: Shawn Guo Cc: Fengguang Wu Cc: Harry Wei Cc: Jonathan Corbet Cc: Coly Li Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit 01196f96bf2ce78538249a8c987ecee65b40df5d Author: Alex Shi Date: Wed Mar 13 21:49:31 2019 +0800 docs/zh_CN: add disclaimer file This a disclaimer file which will be included in Chinese files as header. To reduce the same common contents copy. Part of contents quoted from Federico Vaga's file: Documentation/translations/it_IT/disclaimer-ita.rst. Thanks a lot! Signed-off-by: Alex Shi Cc: Harry Wei Cc: Jonathan Corbet Cc: Li Zefan Cc: Shawn Guo Cc: Fengguang Wu Cc: Coly Li Cc: Federico Vaga Signed-off-by: Weiwei Jia Signed-off-by: Jonathan Corbet commit f1887143f5984f23d2360f2efed6ef481bb41117 Author: Peter Zijlstra Date: Mon Feb 11 18:09:43 2019 +0100 Documentation/atomic_t: Clarify signed vs unsigned Clarify the whole signed vs unsigned issue for atomic_t. There has been enough confusion on this topic to warrant a few explicit words I feel. Signed-off-by: Peter Zijlstra (Intel) Acked-by: Will Deacon Acked-by: Boqun Feng Signed-off-by: Paul E. McKenney commit db467147f131b8ab799066b9779addb8603d3baf Author: SeongJae Park Date: Fri Jan 25 06:55:48 2019 +0900 locking/memory-barriers/kokr: Update Korean translation to replace smp_cond_acquire() with smp_cond_load_acquire() Transalte this commit to Korean: 2f359c7ea554 ("locking/memory-barriers: Replace smp_cond_acquire() with smp_cond_load_acquire()") Signed-off-by: SeongJae Park Reviewed-by: Yunjae Lee Signed-off-by: Paul E. McKenney commit 487ecc460732cab178897e81a7f5ef6183eff143 Author: SeongJae Park Date: Fri Jan 25 06:55:47 2019 +0900 sched/Documentation/kokr: Update Korean translation to update wake_up() & co. memory-barrier guarantees Translate this commit to Korean: 7696f9910a9a ("sched/Documentation: Update wake_up() & co. memory-barrier guarantees") Signed-off-by: SeongJae Park Reviewed-by: Yunjae Lee Signed-off-by: Paul E. McKenney commit 034fb712a620c84efa78e2889845d5dea95f688f Author: Andrea Parri Date: Thu Jan 31 08:08:40 2019 -0800 tools/memory-model: Avoid duplicating herdtools versions Currently, herdtools version information appears no fewer than three times in the LKMM source, which is difficult to maintain. This commit therefore places the required version in one place, namely the tools/memory-model/README file. Signed-off-by: Andrea Parri Signed-off-by: Paul E. McKenney Acked-by: Alan Stern commit 9393998e9ee094f99d18783cc85c489e20f0e0e7 Author: Luc Maranget Date: Thu Dec 27 16:27:12 2018 +0100 tools/memory-model: Dynamically check SRCU lock-to-unlock matching This commit checks that the return value of srcu_read_lock() is passed to the matching srcu_read_unlock(), where "matching" is determined by nesting. This check operates as follows: 1. srcu_read_lock() creates an integer token, which is stored into the generated events. 2. srcu_read_unlock() records its second (token) argument into the generated event. 3. A new herd primitive 'different-values' filters out pairs of events with identical values from the relation passed as its argument. 4. The bell file applies the above primitive to the (srcu) read-side-critical-section relation 'srcu-rscs' and flags non-empty results. BEWARE: Works only with herd version 7.51+6 and onwards. Signed-off-by: Luc Maranget Signed-off-by: Paul E. McKenney [ paulmck: Apply Andrea Parri's off-list feedback. ] Acked-by: Alan Stern commit 648e717586f2a832687fe44e2e0afb7a6fdea232 Author: Alan Stern Date: Tue Dec 11 11:38:53 2018 -0500 tools/memory-model: Update Documentation/explanation.txt to include SRCU support The recent commit adding support for SRCU to the Linux Kernel Memory Model ended up changing the names and meanings of several relations. This patch updates the explanation.txt documentation file to reflect those changes. It also revises the statement of the RCU Guarantee to a more accurate form, and it adds a short paragraph mentioning the new support for SRCU. Signed-off-by: Alan Stern Cc: Akira Yokosawa Cc: Andrea Parri Cc: Boqun Feng Cc: Daniel Lustig Cc: David Howells Cc: Jade Alglave Cc: Luc Maranget Cc: Nicholas Piggin Cc: "Paul E. McKenney" Cc: Peter Zijlstra Cc: Will Deacon Signed-off-by: Paul E. McKenney Acked-by: Andrea Parri commit ad9fd20b6dadb0cb14551477fcebe0fdf2e697dd Author: Paul E. McKenney Date: Mon Nov 26 14:26:43 2018 -0800 tools/memory-model: Update README for addition of SRCU This commit updates the section on LKMM limitations to no longer say that SRCU is not modeled, but instead describe how LKMM's modeling of SRCU departs from the Linux-kernel implementation. TL;DR: There is no known valid use case that cares about the Linux kernel's ability to have partially overlapping SRCU read-side critical sections. Signed-off-by: Paul E. McKenney Acked-by: Andrea Parri commit a3f600d92da564ad35f237c8aeab268ca49377cc Author: Alan Stern Date: Thu Nov 15 11:20:37 2018 -0500 tools/memory-model: Add SRCU support Add support for SRCU. Herd creates srcu events and linux-kernel.def associates them with three possible annotations (srcu-lock, srcu-unlock, and sync-srcu) corresponding to the API routines srcu_read_lock(), srcu_read_unlock(), and synchronize_srcu(). The linux-kernel.bell file now declares the annotations and determines matching lock/unlock pairs delimiting SRCU read-side critical sections, and it also checks for synchronize_srcu() calls inside an RCU critical section (which would generate a "sleeping in atomic context" error in real kernel code). The linux-kernel.cat file now adds SRCU-induced ordering, analogous to the existing RCU-induced ordering, to the gp and rcu-fence relations. Curiously enough, these small changes to the model's .cat code are all that is needed to describe SRCU. Portions of this patch (linux-kernel.def and the first hunk in linux-kernel.bell) were written by Luc Maranget. Signed-off-by: Alan Stern CC: Luc Maranget Signed-off-by: Paul E. McKenney Tested-by: Andrea Parri commit 284749b0aebbf3ab26ff92198545aea36165f6bf Author: Alan Stern Date: Thu Nov 15 11:19:58 2018 -0500 tools/memory-model: Refactor some RCU relations In preparation for adding support for SRCU, refactor the definitions of rcu-fence, rcu-rscsi, rcu-link, and rb by moving the po and po? terms from the first two to the second two. An rcu-gp relation is added; it is equivalent to gp with the po and po? terms removed. This is necessary because for SRCU, we will have to use the loc relation to check that the terms at the start and end of each disjunct in the definition of rcu-fence refer to the same srcu_struct location. If these terms are hidden behind po and po?, there's no way to carry out this check. Signed-off-by: Alan Stern Signed-off-by: Paul E. McKenney Tested-by: Andrea Parri commit 0172d9e322035bf7bb66a7dfdd795c38d71dbba9 Author: Alan Stern Date: Thu Nov 15 11:19:44 2018 -0500 tools/memory-model: Rename some RCU relations In preparation for adding support for SRCU, rename "crit" to "rcu-rscs", rename "rscs" to "rcu-rscsi", and remove the restriction to only the outermost level of nesting. The name change is needed for disambiguating RCU read-side critical sections from SRCU read-side critical sections. Adding the "i" at the end of "rcu-rscsi" emphasizes that the relation is inverted; it links rcu_read_unlock() events to their corresponding preceding rcu_read_lock() events. The restriction to outermost nesting levels was never essential; it was included mostly to show that it could be done. Rather than add equivalent unnecessary code for SRCU lock nesting, it seemed better to remove the existing code. Signed-off-by: Alan Stern Signed-off-by: Paul E. McKenney Tested-by: Andrea Parri commit fdda0a6adc33536ad468f07db27325423703c5bc Author: Julia Lawall Date: Sat Feb 23 14:20:40 2019 +0100 meson-gx-socinfo: add missing of_node_put after of_device_is_available Add an of_node_put when a tested device node is not available. The semantic patch that fixes this problem is as follows (http://coccinelle.lip6.fr): // @@ identifier f; local idexpression e; expression x; @@ e = f(...); ... when != of_node_put(e) when != x = e when != e = x when any if (<+...of_device_is_available(e)...+>) { ... when != of_node_put(e) ( return e; | + of_node_put(e); return ...; ) } // Fixes: a9daaba2965e8 ("soc: Add Amlogic SoC Information driver") Signed-off-by: Julia Lawall Signed-off-by: Kevin Hilman commit 65f80df58eb770b2b687c35142c113d1ad6fa415 Author: Neil Armstrong Date: Thu Mar 7 15:01:46 2019 +0100 soc: amlogic: gx-socinfo: Add new SoC IDs and Packages IDs This adds the: - G12A SoC ID and S905X2, S905D2 package IDs, found booting the X96 Max and U200 Reference Board - G12B SoC ID and S922X package ID, found booting the Odroid-N2 - S805X, S805Y package IDs found in the vendor U-Boot source Signed-off-by: Neil Armstrong Signed-off-by: Kevin Hilman commit dce47aed20c7de3ee2011b7a63e67f08e9dcfb5e Author: Neil Armstrong Date: Thu Mar 7 15:01:45 2019 +0100 soc: amlogic: gx-socinfo: Add mask for each SoC packages When updated IDs on f842c41adc04 ("amlogic: meson-gx-socinfo: Update soc ids") we introduced packages ids using the full 8bit value, but in the function socinfo_to_package_id() the id was filtered with the 0xf0 mask. While the 0xf0 mask is valid for most board, it filters out the lower 4 bits which encodes some characteristics of the chip. This patch moves the mask into the meson_gx_package_id table to be applied on each package name independently and add the correct mask for some specific entries. An example is the S905, in the vendor code the S905 is package_id different from 0x20, and S905M is exactly 0x20. Another example are the The Wetek Hub & Play2 boards using a S905-H variant, which is the S905 SoC with some licence bits enabled. These licence bits are encoded in the lower 4bits, so to detect the -H variant, we must detect the id == 0x3 with the 0xf mask. Fixes: f842c41adc04 ("amlogic: meson-gx-socinfo: Update soc ids") Signed-off-by: Neil Armstrong Signed-off-by: Kevin Hilman commit e5e4df2dccec7b59ce98604c02e807021a4c7850 Author: Neil Armstrong Date: Fri Mar 15 14:49:09 2019 +0100 arm64: dts: meson-gxm-nexbox-a1: Enable USB Enable USB on the Nexbox A1 STB Signed-off-by: Neil Armstrong Signed-off-by: Kevin Hilman commit 965c827ac37e71f76d3ac55c75ac08909f2a4eed Author: Jerome Brunet Date: Fri Mar 15 14:42:44 2019 +0100 arm64: dts: meson: g12a: add efuse Add the g12a SoC efuse device Signed-off-by: Jerome Brunet Signed-off-by: Kevin Hilman commit bd39515284120fc806fd0bea86fecd39908e18dc Author: Jerome Brunet Date: Fri Mar 15 14:42:43 2019 +0100 arm64: dts: meson: g12a: add secure monitor Add the interface to the secure monitor on g12a Signed-off-by: Jerome Brunet Signed-off-by: Kevin Hilman commit 7e09092aee006b21d830b99f8498b5640b8711f6 Author: Chuanhong Guo Date: Tue Mar 12 16:33:26 2019 +0800 arm64: dts: meson-gxl-s905d-phicomm-n1: add status LED There is a white LED on the front panel behind the logo and the manufacturer uses that LED to indicate network and USB drive status. Signed-off-by: Chuanhong Guo Reviewed-by: Neil Armstrong Signed-off-by: Kevin Hilman commit 0fa724c51e31cc814af9e44c019fb4d570422b02 Author: Neil Armstrong Date: Thu Mar 7 15:01:47 2019 +0100 arm64: dts: meson-g12a: Add AO Secure node This adds the Always-On ao-secure system control registers node, which is used by the meson-gx-socinfo driver to detect the SoC IDs. Signed-off-by: Neil Armstrong Signed-off-by: Kevin Hilman commit b7be144932a8376fbb886115ce908a1a1818940b Author: Neil Armstrong Date: Tue Feb 12 15:02:59 2019 +0100 arm64: dts: Add SEI Robotics SEI510 Board The SEI Robotics SEI510 Board is based on the Amlogic G12A S905X2 and has the following features : - Amlogic G12A S905X2 SoC - 10/100 Ethernet - USB2 + USB3 ports - Micro SDCard Port - Audio + CVBS AV Jack port - HDMI 2.1 + CEC Port - ADC Touch Button - Far-Field Microphone Array + Mono HP - IR Sensor - IR Emmiter LED Array - RGB Led Signed-off-by: Neil Armstrong [khilman: sorted Makefile entry alphabetcially] Signed-off-by: Kevin Hilman commit 6917de8a6c4d05737dded7053a66be3c7e6779c2 Author: Neil Armstrong Date: Tue Feb 12 15:02:58 2019 +0100 vendor-prefixes: Add prefix for Shenzhen SEI Robotics Co., Ltd Add vendor prefix for the Shenzhen SEI Robotics Co., Ltd, a chinese ODM specialized in Android TV HDMI Stick, OTT Box, Hybrid STB, Smart Home Gateway & more. Signed-off-by: Neil Armstrong Signed-off-by: Kevin Hilman commit f1975b982a2917f4fadd6af96fd1671e5dc57095 Author: Martin Blumenstingl Date: Sat Feb 9 01:26:41 2019 +0100 ARM: dts: meson8b: add the internal clock measurer The Amlogic Meson8b SoC has an internal clock measurer IP which allows measuring frequencies of various clock paths. Enable it on meson8b.dtsi so we can use it. Signed-off-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit b6eac0d06b82712db8ffba36804e7e1225ce5919 Author: Martin Blumenstingl Date: Sat Feb 9 01:26:40 2019 +0100 ARM: dts: meson8: add the internal clock measurer The Amlogic Meson8 SoC has an internal clock measurer IP which allows measuring frequencies of various clock paths. Enable it on meson8.dtsi so we can use it. Signed-off-by: Martin Blumenstingl Signed-off-by: Kevin Hilman commit 6a82559f745bc26d2e4974c1d26014ef7fa14794 Author: Geert Uytterhoeven Date: Fri Mar 1 12:07:15 2019 +0100 clk: renesas: rcar-gen3: Pass name/offset to cpg_sd_clk_register() Explicitly pass the clock's name and register offset to cpg_sd_clk_register(), so the latter doesn't have to extract them from the cpg_core_clk object. This keeps all cpg_core_clk parsing and unmarshalling contained in a single function (rcar_gen3_cpg_clk_register()). Signed-off-by: Geert Uytterhoeven Reviewed-by: Niklas Söderlund Reviewed-by: Simon Horman commit d92ee9cf8ec8d7fe1d7dbc4b3ee459419b1e5533 Author: Marek Vasut Date: Sat Feb 23 23:39:55 2019 +0100 pinctrl: sh-pfc: rcar-gen3: Retain TDSELCTRL register across suspend/resume The TDSELCTRL register is responsible for configuring the SDHI/MMC clock return path delay and may be adjusted by the bootloader. Retain the value across suspend/resume to prevent hardware instability after resume. Signed-off-by: Marek Vasut Signed-off-by: Geert Uytterhoeven commit 2cee6cb290ab30f2f3a69866d24ca6cb64b1d7e8 Author: Fabrizio Castro Date: Wed Feb 20 16:10:18 2019 +0000 pinctrl: sh-pfc: r8a77990: Move CANFD pin groups and functions CANFD is found also on the R8A774C0, therefore move CANFD pin groups and functions to "common". Signed-off-by: Fabrizio Castro Reviewed-by: Chris Paterson Signed-off-by: Geert Uytterhoeven commit dcd24e098d8df8b4f85686c6be7673d4506c1888 Author: Fabrizio Castro Date: Wed Feb 20 16:09:45 2019 +0000 pinctrl: sh-pfc: r8a7796: Move CANFD pin groups and functions CANFD is found also on the R8A774A1, therefore move CANFD pin groups and functions to "common". Signed-off-by: Fabrizio Castro Reviewed-by: Chris Paterson Reviewed-by: Simon Horman Signed-off-by: Geert Uytterhoeven commit 542802613b9f731302d161ffcffad95e73733a9b Author: Ulrich Hecht Date: Wed Feb 20 15:50:38 2019 +0100 pinctrl: sh-pfc: r8a7779: Add HSCIF0/1 pins Adds HSCIF0 and HSCIF1 pins, groups and functions for R8A7779. Signed-off-by: Ulrich Hecht Reviewed-by: Simon Horman Signed-off-by: Geert Uytterhoeven commit 3df892fdbfe6919270a65a25c7982e2701c44f2b Author: Geert Uytterhoeven Date: Mon Feb 18 10:42:43 2019 +0100 pinctrl: sh-pfc: r8a77990: Rename IOCTRLx registers The R-Car Gen3 HardWare Manual Errata for Rev. 1.00 (Jul 2, 2018) renamed the various miscellaneous I/O control registers (IOCTRLx) on R-Car E3, to reflect better their actual purposes, and matching other SoCs. Update the code to match this. Signed-off-by: Geert Uytterhoeven Reviewed-by: Ulrich Hecht commit a8d728a0c59cd508b3cdcef8950409089156bf70 Author: Geert Uytterhoeven Date: Mon Feb 18 10:42:21 2019 +0100 pinctrl: sh-pfc: r8a77980: Rename IOCTRLx registers The R-Car Gen3 HardWare Manual Errata for Rev. 1.00 (Jul 2, 2018) renamed the various miscellaneous I/O control registers (IOCTRLx) on R-Car V3H, to reflect better their actual purposes, and matching other SoCs. Update the code to match this. Signed-off-by: Geert Uytterhoeven Reviewed-by: Ulrich Hecht commit 1c5c1101755c5ed9f1e74763dbf39c01c3dc7cf8 Author: Geert Uytterhoeven Date: Mon Feb 18 10:35:39 2019 +0100 pinctrl: sh-pfc: r8a77970: Rename IOCTRLx registers The R-Car Gen3 HardWare Manual Errata for Rev. 1.00 (Jul 2, 2018) renamed the various miscellaneous I/O control registers (IOCTRLx) on R-Car V3M, to reflect better their actual purposes, and matching other SoCs. Update the code to match this. Signed-off-by: Geert Uytterhoeven Reviewed-by: Ulrich Hecht commit 7c1200456cb0859fba27927feb8322929a4fad83 Author: Ville Syrjälä Date: Fri Mar 15 21:54:45 2019 +0200 drm/i915: Turn off the CUS when turning off a HDR plane We're currently leaving the CUS enabled if we disable the master plane directly after scanning out NV12. Could perhaps cause the selected slave plane to misbehave if we try to use it for scanning out something non-NV12? Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190315195445.26527-2-ville.syrjala@linux.intel.com Reviewed-by: Maarten Lankhorst Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=110032 commit 5a0404408d3266fa3116979297b3bb47fdb9dc0b Author: Ville Syrjälä Date: Fri Mar 15 21:54:44 2019 +0200 drm/i915: Fix legacy gamma mode for ICL We must remember to actually enable the post CSC gamma if we expect the legacy LUT to work. Seems to fix NV12 crc tests on the SDR planes. Curiously we apparently managed to get 100% match for the HDR planes even without chopping off the low bits. Cc: Uma Shankar Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190315195445.26527-1-ville.syrjala@linux.intel.com Reviewed-by: Maarten Lankhorst commit 12e32f554d8ddd121f17aaaa9cda25d0be612af9 Author: Laurent Pinchart Date: Thu Feb 21 03:40:12 2019 +0200 drm: rcar-du: Add writeback support for R-Car Gen3 Implement writeback support for R-Car Gen3 by exposing writeback connectors. Behind the scene the calls are forwarded to the VSP backend. Using writeback connectors will allow implemented writeback support for R-Car Gen2 with a consistent API if desired. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham commit d46a4e93ea4d2d6e6aba878487797794265bc984 Author: Laurent Pinchart Date: Thu Feb 21 03:20:42 2019 +0200 drm: rcar-du: vsp: Extract framebuffer (un)mapping to separate functions The rcar_du_vsp_plane_prepare_fb() and rcar_du_vsp_plane_cleanup_fb() functions implement the DRM plane .prepare_fb() and .cleanup_fb() operations. They map and unmap the framebuffer to/from the VSP internally, which will be useful to implement writeback support. Split the mapping and unmapping out to separate functions. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham commit d8a4ef2542cddfd843896662a624494a01ee59a7 Author: Laurent Pinchart Date: Thu Feb 21 03:18:05 2019 +0200 drm: rcar-du: Store V4L2 fourcc in rcar_du_format_info structure The mapping between DRM and V4L2 fourcc's is stored in two separate tables in rcar_du_vsp.c. In order to make it reusable to implement writeback support, move it to the rcar_du_format_info structure. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham commit 12a85f994d848947084e0c4add79117bf8bfa46b Author: Laurent Pinchart Date: Thu Feb 21 03:15:27 2019 +0200 drm: rcar-du: Fix rcar_du_crtc structure documentation The rcar_du_crtc structure index field contains the CRTC hardware index, not the hardware and software index. Update the documentation accordingly. Fixes: 5361cc7f8e91 ("drm: rcar-du: Split CRTC handling to support hardware indexing") Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham commit 9d2230dc1351d54953a94e4ba9b746f8a0408a12 Author: Laurent Pinchart Date: Thu Feb 21 03:01:38 2019 +0200 drm: writeback: Add job prepare and cleanup operations As writeback jobs contain a framebuffer, drivers may need to prepare and cleanup them the same way they can prepare and cleanup framebuffers for planes. Add two new optional connector helper operations, .prepare_writeback_job() and .cleanup_writeback_job() to support this. The job prepare operation is called from drm_atomic_helper_prepare_planes() to avoid a new atomic commit helper that would need to be called by all drivers not using drm_atomic_helper_commit(). The job cleanup operation is called from the existing drm_writeback_cleanup_job() function, invoked both when destroying the job as part of a aborted commit, or when the job completes. The drm_writeback_job structure is extended with a priv field to let drivers store per-job data, such as mappings related to the writeback framebuffer. For internal plumbing reasons the drm_writeback_job structure needs to store a back-pointer to the drm_writeback_connector. To avoid pushing too much writeback-specific knowledge to drm_atomic_uapi.c, create a drm_writeback_set_fb() function, move the writeback job setup code there, and set the connector backpointer. The prepare_signaling() function doesn't need to allocate writeback jobs and can ignore connectors without a job, as it is called after the writeback jobs are allocated to store framebuffers, and a writeback fence with a framebuffer is an invalid configuration that gets rejected by the commit check. Signed-off-by: Laurent Pinchart Reviewed-by: Liviu Dudau commit e482ae9b5fdc01a343f22f52930e85a6cfdf85eb Author: Laurent Pinchart Date: Thu Feb 21 02:51:37 2019 +0200 drm: writeback: Fix leak of writeback job Writeback jobs are allocated when the WRITEBACK_FB_ID is set, and deleted when the jobs complete. This results in both a memory leak of the job and a leak of the framebuffer if the atomic commit returns before the job is queued for processing, for instance if the atomic check fails or if the commit runs in test-only mode. Fix this by implementing the drm_writeback_cleanup_job() function and calling it from __drm_atomic_helper_connector_destroy_state(). As writeback jobs are removed from the state when they're queued for processing, any job left in the state when the state gets destroyed needs to be cleaned up. The existing declaration of the drm_writeback_cleanup_job() function without an implementation hints that this problem was considered, but never addressed. Signed-off-by: Laurent Pinchart Reviewed-by: Brian Starkey Acked-by: Liviu Dudau commit 97eb9eaeb95ba8eb3c7a77a7ec7786d47a1bcaee Author: Laurent Pinchart Date: Thu Feb 21 12:17:32 2019 +0200 drm: writeback: Cleanup job ownership handling when queuing job The drm_writeback_queue_job() function takes ownership of the passed job and requires the caller to manually set the connector state writeback_job pointer to NULL. To simplify drivers and avoid errors (such as the missing NULL set in the vc4 driver), pass the connector state pointer to the function instead of the job pointer, and set the writeback_job pointer to NULL internally. Signed-off-by: Laurent Pinchart Reviewed-by: Brian Starkey Acked-by: Eric Anholt Acked-by: Liviu Dudau Reviewed-by: Kieran Bingham commit a63722aeb76c65f39c98c66a1e730a2f3da123ab Author: Laurent Pinchart Date: Thu Feb 21 03:46:42 2019 +0200 media: vsp1: drm: Implement writeback support Extend the vsp1_du_atomic_flush() API with writeback support by adding format, pitch and memory addresses of the writeback framebuffer. Writeback completion is reported through the existing frame completion callback with a new VSP1_DU_STATUS_WRITEBACK status flag. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham Reviewed-by: Mauro Carvalho Chehab commit 09e513e390eab1f2db4d4242ef209cbe0c39c444 Author: Laurent Pinchart Date: Thu Feb 21 03:38:06 2019 +0200 media: vsp1: drm: Extend frame completion API to the DU driver The VSP1 driver will need to pass extra flags to the DU through the frame completion API. Replace the completed bool flag by a bitmask to support this. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham Reviewed-by: Mauro Carvalho Chehab commit e2ef2a1290842b5a56a13f865310a231c78b5d9a Author: Laurent Pinchart Date: Thu Feb 21 03:24:52 2019 +0200 media: vsp1: drm: Split RPF format setting to separate function The code that initializes the RPF format-related fields for display pipelines will also be useful for the WPF to implement writeback support. Split it from vsp1_du_atomic_update() to a new vsp1_du_pipeline_set_rwpf_format() function. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham Reviewed-by: Mauro Carvalho Chehab commit 9ec5742b6930fb6b4e95b1f249804bf4cb683f9c Author: Laurent Pinchart Date: Wed Feb 20 18:01:57 2019 +0200 media: vsp1: wpf: Add writeback support Add support for the writeback feature of the WPF, to enable capturing frames at the WPF output for display pipelines. To enable writeback the vsp1_rwpf structure mem field must be set to the address of the writeback buffer and the writeback field set to true before the WPF .configure_stream() and .configure_partition() are called. The WPF will enable writeback in the display list for a single frame, and writeback will then be automatically disabled. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham Reviewed-by: Mauro Carvalho Chehab commit 5c7de45a43a8ac00e61f5551b3d639c95c038e4b Author: Laurent Pinchart Date: Mon Mar 11 20:16:33 2019 +0200 media: vsp1: dl: Allow chained display lists for display pipelines Refactor the display list header setup to allow chained display lists with display pipelines. Chain the display lists as for mem-to-mem pipelines, but enable the frame end interrupt for every list as display pipelines have a single list per frame. This feature will be used to disable writeback exactly one frame after enabling it by chaining a writeback disable display list. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham Reviewed-by: Mauro Carvalho Chehab commit b36c6049ed4b6ef73fd2ca3802335af921886f91 Author: Laurent Pinchart Date: Mon Mar 11 20:13:43 2019 +0200 media: vsp1: Add vsp1_dl_list argument to .configure_stream() operation The WPF needs access to the current display list to configure writeback. Add a display list pointer to the VSP1 entity .configure_stream() operation. Only display pipelines can make use of the display list there as mem-to-mem pipelines don't have access to a display list at stream configuration time. This is not an issue as writeback is only used for display pipelines. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham Reviewed-by: Mauro Carvalho Chehab commit 65cddb1976607400915ff1ac1b59a52b61cff0a0 Author: Laurent Pinchart Date: Sat Feb 16 03:34:59 2019 +0200 media: vsp1: Replace the display list internal flag with a flags field To prepare for addition of more flags to the display list, replace the 'internal' flag field by a bitmask 'flags' field. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham Reviewed-by: Mauro Carvalho Chehab commit ae444200042ac6816539bfa5242ff821c3abff8e Author: Laurent Pinchart Date: Sat Feb 16 03:27:43 2019 +0200 media: vsp1: Fix addresses of display-related registers for VSP-DL The VSP-DL instances have two LIFs, and thus two copies of the VI6_DISP_IRQ_ENB, VI6_DISP_IRQ_STA and VI6_WPF_WRBCK_CTRL registers. Fix the corresponding macros accordingly. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham Reviewed-by: Mauro Carvalho Chehab commit 08af8538d4cecdb22ff56c48c522875c8a9f5541 Author: Laurent Pinchart Date: Sat Feb 16 03:24:05 2019 +0200 media: vsp1: Replace leftover occurrence of fragment with body Display list fragments have been renamed to bodies. Replace one last occurrence of the word fragment in the documentation. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham Reviewed-by: Mauro Carvalho Chehab commit 79b15b4b82013d73e8702d65470419ecbfc7a7b5 Author: Laurent Pinchart Date: Thu Sep 20 17:54:56 2018 +0100 media: vsp1: wpf: Fix partition configuration for display pipelines When configuring partitions for memory-to-memory pipelines, the WPF accesses data of the current partition through pipe->partition. Writeback support will require full configuration of the WPF while not providing a valid pipe->partition. Rework the configuration code to fall back to the full image width in that case, as is already done for the part of the configuration currently relevant for display pipelines. Signed-off-by: Laurent Pinchart Reviewed-by: Kieran Bingham Reviewed-by: Mauro Carvalho Chehab commit 437c24dd19b88898557c51c23c84122f236c9371 Author: Kieran Bingham Date: Wed Oct 5 11:41:00 2016 +0100 Revert "[media] v4l: vsp1: Supply frames to the DU continuously" This reverts commit 3299ba5c0b21 ("[media] v4l: vsp1: Supply frames to the DU continuously") The DU output mode does not rely on frames being supplied on the WPF as its pipeline is supplied from DRM. For the upcoming WPF writeback functionality, we will choose to enable writeback mode if there is an output buffer, or disable it (leaving the existing display pipeline unharmed) otherwise. Signed-off-by: Kieran Bingham Signed-off-by: Laurent Pinchart Reviewed-by: Mauro Carvalho Chehab commit 8cbd0c70da3df69aec3604be204e5471a0e2240e Merge: baa09e7d2f42 a94bed60cb73 Author: Joonas Lahtinen Date: Mon Mar 18 17:12:06 2019 +0200 Merge tag 'topic/hdr-formats-2019-03-13' of git://anongit.freedesktop.org/drm/drm-misc into drm-intel-next-queued Add support for floating point half-width formats. Signed-off-by: Joonas Lahtinen From: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/00b96cd5-91c7-5677-9620-b138c7a92303@linux.intel.com commit a48f127519d916b9576c213a9ca6b79e7f926d2d Author: Mark Brown Date: Mon Feb 18 20:29:14 2019 +0100 regulator: core: Fix application of "drop lockdep annotation in drms_uA_update()" [The original commit was sent against -next but needed to be sent as a bugfix, however -next had some additional changes which needed to be reverted. Now everything is all in one branch applying the rest of the changes to fix up the merge issue -- broonie] commit e5e21f70bfd3 ("regulator: core: Take lock before applying system load") took the regulator lock before calling drms_uA_update() in order to silence a lockdep warning during regulator_register(). However, we are not supposed to need locks at this point as the regulator is in the process of being registered, so there should be no possibility of concurrent access. Instead, remove the unnecessary locking and simply drop the lockdep annotation, since it is no longer valid. Fixes: e5e21f70bfd3 ("regulator: core: Take lock before applying system load") Signed-off-by: Niklas Cassel Signed-off-by: Mark Brown commit 78c484a55d915e36891be5bae92e516fdac8609d Author: Harini Katakam Date: Sat Mar 9 16:46:58 2019 +0530 arm64: zynqmp: dt: Add TI PHY quirk Add TI PHY strap ctrl quirk for all the HW where applicable. Signed-off-by: Harini Katakam Signed-off-by: Michal Simek commit 3863293a96c3e2481192b435fe0d85feed1ea47c Merge: 4346a745df41 1c5b6a27e432 Author: Mark Brown Date: Mon Mar 18 14:57:27 2019 +0000 Merge branch 'for-5.1' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into asoc-5.2 commit 69b921acae8a5b7feef03921d9b42c3634f3b9d1 Author: Rasmus Villemoes Date: Wed Mar 6 10:32:05 2019 +0000 spi: spi-fsl-spi: support use of the SPISEL_BOOT signal on MPC8309 The MPC8309 has a dedicated signal, SPISEL_BOOT, usually used as chip select for the flash device from which the bootloader is loaded. It is not an ordinary gpio, but is simply controlled via the SPI_CS register in the system configuration. To allow accessing such a spi slave, we need to teach fsl_spi_cs_control() how to control the SPISEL_BOOT signal. To distinguish the gpio-controlled slaves, continue to have those use chip_select values of 0..ngpios-1, and use chip_select == ngpios for the boot flash. I'm not too happy with all the ifdeffery, but it seems to be necessary for guarding the sysdev/fsl_soc.h and use of get_immrbase() (spi-fsl-lib.c already contains similar ifdeffery). Googling suggests that the MPC8306 is similar, with the SPI_CS register at the same offset. Signed-off-by: Rasmus Villemoes Signed-off-by: Mark Brown commit 4346a745df4107d7ac61846f60087992e9d6e1b8 Author: Kuninori Morimoto Date: Mon Mar 18 13:50:31 2019 +0900 ASoC: audio-graph: add graph_parse_mclk_fs() It is parsing mclk_fs at many places, but it should be same operation. This patch adds graph_parse_mclk_fs() and parse it. This patch also renames similar function graph_get_conversion() to graph_parse_convert(). Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown commit d2bf008ad11abc52d6e084bc109be2ee34a74a14 Author: Kuninori Morimoto Date: Mon Mar 18 13:50:25 2019 +0900 ASoC: audio-graph: rename graph_get_conversion() to graph_parse_convert() use same naming rule, and this patch add missing of_node_put() on it Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown commit d708d35ef084535ba1a06d0c0f858e18a5edef5a Author: Kuninori Morimoto Date: Mon Mar 18 13:50:17 2019 +0900 ASoC: simple-card: add simple_parse_mclk_fs() It is parsing mclk_fs at many places, but it should be same operation. This patch adds simple_parse_mclk_fs() and parse it. Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown commit cdc444721b0eea6817d1003add2f99414dc8028d Author: Kuninori Morimoto Date: Mon Mar 18 13:50:08 2019 +0900 ASoC: simple-card: rename simple_get_conversion() to simple_parse_convert() use same naming rule Signed-off-by: Kuninori Morimoto Signed-off-by: Mark Brown commit baa09e7d2f423a630a63efd22a280a0c19aaf64a Author: Jani Nikula Date: Fri Mar 15 15:56:20 2019 +0200 drm/i915: use REG_FIELD_PREP() to define register bitfield values Slightly verbose, but does away with hand rolled shifts. Ties the field values with the mask defining the field. Unfortunately we have to make a local copy of FIELD_PREP() to evaluate to a integer constant expression. But with this, we can ensure the mask is non-zero, power of 2, fits u32, and the value fits the mask (when the value is a constant expression). Convert power sequencer registers as an example. v4: - rebase v3: - rename the macro to REG_FIELD_PREP to avoid underscore prefix and to be in line with kernel macros (Chris) - rename power of 2 check macro (Chris) v2: - add build-time checks with BUILD_BUG_ON_ZERO() - rename to just _FIELD() due to regmap.h REG_FIELD() clash Cc: Chris Wilson Cc: Joonas Lahtinen Cc: Michal Wajdeczko Cc: Mika Kuoppala Cc: Ville Syrjälä Reviewed-by: Chris Wilson Acked-by: Rodrigo Vivi Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/a844edda2afa6b54d9b12a6251da02c43ea8a942.1552657998.git.jani.nikula@intel.com commit 78b36b106a84f211079dc906199ef8f3bb09c9af Author: Jani Nikula Date: Fri Mar 15 15:56:19 2019 +0200 drm/i915: deprecate _SHIFT in favor of _MASK passed to accessors bitfield.h defines FIELD_GET() and FIELD_PREP() macros to access bitfields using the mask alone, with no need for separate shift. Indeed, the shift is redundant. We define REG_FIELD_GET() and REG_FIELD_PREP() wrappers for the above, in part to force u32 and for consistency with REG_BIT() and REG_GENMASK(), but also as we'll need to redefine REG_FIELD_PREP() in follow-up work to make it produce integer constant expressions. For the most part, REG_FIELD_GET() is shorter than masking followed by shift, and arguably has more clarity. REG_FIELD_PREP() can get more verbose than simply shifting in place, but it does provide masking to ensure we don't overflow the mask, something we usually don't bother with currently. Convert power sequencer registers as an example. v3: - temp variable removal (Chris) - rebase v2: - Add the REG_FIELD_GET() and REG_FIELD_PREP() wrappers to use them consistently from the start. Cc: Chris Wilson Cc: Joonas Lahtinen Cc: Michal Wajdeczko Cc: Mika Kuoppala Reviewed-by: Chris Wilson Acked-by: Rodrigo Vivi Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/ab68f52e55e3961bde9458c0d85a12d98ef471df.1552657998.git.jani.nikula@intel.com commit 09b434d4f6d22e14500569e7e3f951e0eec4d496 Author: Jani Nikula Date: Fri Mar 15 15:56:18 2019 +0200 drm/i915: introduce REG_BIT() and REG_GENMASK() to define register contents Introduce REG_BIT(n) to define register bits and REG_GENMASK(h, l) to define register bitfield masks. We define the above as wrappers to BIT() and GENMASK() respectively to force u32 type to go with our register size, and to add compile time checks on the bit numbers. The intention is that these are easier to get right and review against the spec than hand rolled masks. Convert power sequencer registers as an example. v4: - rebase v3: - rename macros to REG_BIT() and REG_GENMASK() to avoid underscore prefix and to be in line with kernel macros (Chris) - add compile time checks (Mika) v2: - rename macros to just _BIT() and _MASK() to reduce verbosity Cc: Chris Wilson Cc: Joonas Lahtinen Cc: Michal Wajdeczko Cc: Mika Kuoppala Cc: Ville Syrjälä Reviewed-by: Chris Wilson Acked-by: Rodrigo Vivi Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/787307c0ba9bc23471e5ff1e454b8af35771fa37.1552657998.git.jani.nikula@intel.com commit cc4f8e91c4ed04a9a972c6e10c158d4b71be3f2f Author: Takashi Sakamoto Date: Sun Mar 17 20:25:06 2019 +0900 ALSA: firewire-lib: use 8 byte header for IR context to get isochronous cycle In kernel API of Linux FireWire subsystem, handlers of isochronous receive (IR) context can get context headers as an argument of callback. When 4 byte header is used, the context header includes isochronous packet header for each packet. When 8 byte header is used, it includes isochronous cycle as well. ALSA IEC 61883-1/6 engine uses 4 byte header, and computes isochronous cycle from the cycle of interrupt. The usage of 8 byte header can obsolete the computation. Furthermore, this change works well for a case that a series of packet in one interrupt includes skipped isochronous cycle, This commit uses 8 byte header to handle isochronous cycle. Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai commit 35033d8cb71b4dd4fa8d8d28a534af1ee921b9a0 Author: Takashi Sakamoto Date: Sun Mar 17 16:50:24 2019 +0900 ALSA: firewire-motu: add support MOTU 8pre FireWire This commit adds support for MOTU 8pre FireWire, which was shipped 2007 and nowadays already discontinued. Userspace applications can transmit and receive PCM frames and MIDI messages for this model via ALSA PCM interface and RawMidi/Sequencer interfaces. Like the other models of MOTU FireWire series, this model has many quirks in its CIP. At first, data channels for two pairs of optical interfaces. At lower sampling transmission frequency, i.e. 44.1 and 48.0 kHz, one pair is available for ADAT data, thus 8 data chunks are transferred by CIP. At middle sampling transmission frequency, i.e. 88.2 and 96.0 kHz, two pairs are available to keep 8 chunks for ADAT data, thus CIP still includes 8 data chunks. Apart from data chunks for optical interface, CIP includes fixed number of data chunks. In tx stream, two chunks for status message, eight chunks for samples from analog 1-8 input, two chunks for mix-return. In rx stream, two chunks for control message, two chunks for main 1-2 output, two chunks for phone 1-2 output, two chunks for dummy 1-2. CIP header in tx stream includes quirks for its dbs and dbc fields. The value of dbs field is fixed to 0x13, against its actual size. The value of dbc field is firstly updated to 0x07 from zero, then it's incremented continuously according to actual number of data h blocks. Finally, the model has own bits to disable frame fetch. This commit uses several options to absorb the above quirks. $ python2 crpp < /sys/bus/firewire/devices/fw1/config_rom ROM header and bus information block ----------------------------------------------------------------- 400 0410b57d bus_info_length 4, crc_length 16, crc 46461 404 31333934 bus_name "1394" 408 20001000 irmc 0, cmc 0, isc 1, bmc 0, cyc_clk_acc 0, max_rec 1 (4) 40c 0001f200 company_id 0001f2 | 410 00083dfb device_id 0000083dfb | EUI-64 0001f20000083dfb root directory ----------------------------------------------------------------- 414 0004c65c directory_length 4, crc 50780 418 030001f2 vendor 41c 0c0083c0 node capabilities per IEEE 1394 420 8d000006 --> eui-64 leaf at 438 424 d1000001 --> unit directory at 428 unit directory at 428 ----------------------------------------------------------------- 428 0003991c directory_length 3, crc 39196 42c 120001f2 specifier id 430 1300000f version 434 17103800 model eui-64 leaf at 438 ----------------------------------------------------------------- 438 00022681 leaf_length 2, crc 9857 43c 0001f200 company_id 0001f2 | 440 00083dfb device_id 0000083dfb | EUI-64 0001f20000083dfb Signed-off-by: Takashi Sakamoto Signed-off-by: Takashi Iwai commit b3f5c0f3333b44107d5e6924e428a2dfe8d47c82 Merge: 9e98c678c2d6 b4748e7ab731 Author: Takashi Iwai Date: Mon Mar 18 14:49:27 2019 +0100 Merge branch 'for-linus' into for-next Back-merge the current devel branch for further development. Signed-off-by: Takashi Iwai commit e19595fcabb5d09071b9ddb302be98715b77b1b9 Author: Hyungwoo Yang Date: Mon Mar 4 12:48:54 2019 -0800 HID: intel-ish: enable raw interface to HID devices on ISH Raw interface is often used to update firmwares in HID devices. We are enabling the interface to support in-field firmware update for the HID devices attached to ISH. Signed-off-by: Hyungwoo Yang Acked-by: Srinivas Pandruvada Signed-off-by: Jiri Kosina commit 6cffeb83c763235718102e9eca65e6452ac12ca7 Author: Chris Wilson Date: Mon Mar 18 09:51:49 2019 +0000 drm/i915: Stop needlessly acquiring wakeref for debugfs/drop_caches_set We only need to acquire a wakeref for ourselves for a few operations, as most either already acquire their own wakeref or imply a wakeref. In particular, it is i915_gem_set_wedged() that needed us to present it with a wakeref, which is incongruous with its "use anywhere" ability. Suggested-by: "Yokoyama, Caz" Signed-off-by: Chris Wilson Cc: "Yokoyama, Caz" Cc: Mika Kuoppala Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190318095204.9913-7-chris@chris-wilson.co.uk commit 794a11cb67201ad1bb61af510bb8460280feb3f3 Author: Chris Wilson Date: Thu Mar 14 07:58:29 2019 +0000 drm/i915: Sanity check mmap length against object size We assumed that vm_mmap() would reject an attempt to mmap past the end of the filp (our object), but we were wrong. Applications that tried to use the mmap beyond the end of the object would be greeted by a SIGBUS. After this patch, those applications will be told about the error on creating the mmap, rather than at a random moment on later access. Reported-by: Antonio Argenziano Testcase: igt/gem_mmap/bad-size Signed-off-by: Chris Wilson Cc: Antonio Argenziano Cc: Joonas Lahtinen Cc: Tvrtko Ursulin Cc: stable@vger.kernel.org Reviewed-by: Tvrtko Ursulin Reviewed-by: Joonas Lahtinen Link: https://patchwork.freedesktop.org/patch/msgid/20190314075829.16838-1-chris@chris-wilson.co.uk commit 3d0313786470acb414b7d5fdd2202f061acffb02 Author: Rajan Vaja Date: Mon Mar 4 15:18:08 2019 -0800 drivers: Defer probe if firmware is not ready Driver needs ZynqMP firmware interface to call EEMI APIs. In case firmware is not ready, dependent drivers should wait until the firmware is ready. Signed-off-by: Rajan Vaja Signed-off-by: Jolly Shah Signed-off-by: Michal Simek commit b9472f7d8224460499dd7128ec944735ed5345a0 Author: Jann Horn Date: Mon Feb 18 22:43:09 2019 +0100 firmware: xilinx: fix debugfs write handler - Userspace wants to write a string with `len` bytes, not counting the terminating NULL, so we should allocate `len+1` bytes. It looks like the current code relied on having a nullbyte directly behind `kern_buff`, which happens to work reliably as long as `len` isn't one of the kmalloc size classes. - strncpy_from_user() is completely wrong here; userspace is giving us a (not necessarily null-terminated) buffer and its length. strncpy_from_user() is for cases in which we don't know the length. - Don't let broken userspace allocate arbitrarily big kmalloc allocations. Just use memdup_user_nul(), which is designed precisely for things like this. Signed-off-by: Jann Horn Acked-by: Jolly Shah Signed-off-by: Michal Simek commit 437541e74c68c179837b13c59308f1a5c931db33 Author: Rajan Vaja Date: Wed Feb 27 12:51:10 2019 -0800 dt-bindings: xilinx: Separate clock binding from firmware doc Clock description is part of firmware doc. Move clock description in separate doc. Signed-off-by: Rajan Vaja Signed-off-by: Jolly Shah Signed-off-by: Michal Simek commit 31a2d5113e53a308a2b7a124f97db984d223c06f Author: Jolly Shah Date: Wed Feb 27 12:51:09 2019 -0800 include: dt-binding: clock: Rename zynqmp header file Rename file name of ZynqMP clk dt-bindings to align with file name of reset and power dt-bindings. Signed-off-by: Rajan Vaja Signed-off-by: Jolly Shah Signed-off-by: Michal Simek commit 84d8df745b622ada89ef427541ad03e928269f09 Author: Jan Kundrát Date: Thu Mar 7 15:38:35 2019 +0100 spi: orion: Support spi_xfer->word_delay_usecs Signed-off-by: Jan Kundrát Signed-off-by: Mark Brown commit 2ed6692e8ce924346c3aab5585b07005adb30625 Author: Jan Kundrát Date: Thu Mar 7 15:29:42 2019 +0100 spi: spidev: Enable control of inter-word delays Commit b7bb367afa4b added support for inserting delays in between individual words within a single SPI transaction. This makes it accessible from userspace. WARNING: This delay is silently ignored unless the SPI controller implements extra support for it. This is similar to how the in-kernel users handle the other existing property, spi_transfer->word_delay. Signed-off-by: Jan Kundrát Signed-off-by: Mark Brown commit 4e3891a55f671a4e641d2ef4e5ec0e27e56b20d9 Author: Clark Wang Date: Wed Mar 6 06:30:49 2019 +0000 spi: lpspi: Code cleanup Delete the extra space. Signed-off-by: Clark Wang Signed-off-by: Mark Brown commit 578465ea2b4b56368ddc3dcefb1f6d607382ef86 Author: Clark Wang Date: Wed Mar 6 06:30:47 2019 +0000 spi: lpspi: Add the missing NULL check The spi_transfer *t will be used in one transfer whatever. If t is NULL, there has no need to try sending data, so add an error return here. Signed-off-by: Clark Wang Acked-by: Fugang Duan Signed-off-by: Mark Brown commit 09c04466ce7ea494993c0635ba5edb6d2222a806 Author: Clark Wang Date: Wed Mar 6 06:30:45 2019 +0000 spi: lpspi: add dma mode support Add dma mode support for LPSPI. Any frame longer than half txfifosize will be sent by dma mode. For now, there are some limits: 1. The maximum transfer speed in master mode depends on the slave device, at least 40MHz(tested by spi-nor on 8qm-lpddr4-arm2 base board); 2. The maximum transfer speed in slave mode is 15MHz(imx7ulp), 22MHz(8qm/qxp). In order to reach the maximum speed which is mentioned in datasheet, the load of connect wires between master and slave should be less than 15pF. Signed-off-by: Clark Wang Acked-by: Fugang Duan Signed-off-by: Mark Brown commit c7a402599504384efe0e5232a4c78cb8eb7cb3d0 Author: Clark Wang Date: Wed Mar 6 06:30:43 2019 +0000 spi: lpspi: use the core way to implement cs-gpio function Use the default implementation of transfer_one_msg/chipselect/setup functions in spi core to implement cs-gpio control. Use fsl_lpspi_prepare_message to init the cs_gpio pin. Signed-off-by: Clark Wang Acked-by: Fugang Duan Signed-off-by: Mark Brown commit 77736a98b859e2c64aebbd0f90b2ce4b17682396 Author: Clark Wang Date: Wed Mar 6 06:30:41 2019 +0000 spi: lpspi: add the error info of transfer speed setting Add a error info when set a speed which greater than half of per-clk of spi module. The minimum SCK period is 2 cycles(CCR[SCKDIV]). So the maximum transfer speed is half of spi per-clk. Signed-off-by: Clark Wang Signed-off-by: Mark Brown commit 944c01a889d97dc08e1b71f4ed868f4023fd6034 Author: Han Xu Date: Wed Mar 6 06:30:39 2019 +0000 spi: lpspi: enable runtime pm for lpspi Enable the runtime power management for lpspi module. Do some adaptation work from kernel 4.9 to 4.14. Signed-off-by: Clark Wang Signed-off-by: Han Xu Reviewed-by: Frank Li Signed-off-by: Mark Brown commit addb32866d99068307f8eddb282ebb325d18446f Author: Clark Wang Date: Wed Mar 6 06:30:36 2019 +0000 doc: lpspi: Document DT bindings for LPSPI clocks Add introductions of clocks and clock-names strings. Signed-off-by: Clark Wang Signed-off-by: Mark Brown commit f5e5afdb0e56e81123e02b6a64dd32adc19a90d4 Author: Clark Wang Date: Wed Mar 6 06:30:34 2019 +0000 spi: lpspi: Add i.MX8 boards support for lpspi Add both ipg and per clock for lpspi to support i.MX8QM/QXP boards. Signed-off-by: Clark Wang Signed-off-by: Mark Brown commit f37d8e67f39e6d3eaf4cc5471e8a3d21209843c6 Author: Aditya Pakki Date: Wed Mar 13 11:55:41 2019 -0500 spi : spi-topcliff-pch: Fix to handle empty DMA buffers pch_alloc_dma_buf allocated tx, rx DMA buffers which can fail. Further, these buffers are used without a check. The patch checks for these failures and sends the error upstream. Signed-off-by: Aditya Pakki Signed-off-by: Mark Brown commit 5b1f537e49830321a23d1c72f9f6e925ce3a672e Author: Axel Lin Date: Mon Mar 4 21:16:03 2019 +0800 regulator: da9063: Convert to use regulator_set/get_current_limit_regmap Use regulator_set/get_current_limit_regmap helpers to save some code. Signed-off-by: Axel Lin Acked-by: Steve Twiss Signed-off-by: Mark Brown commit 958e9b8265c7efca1ba8b61115f23bea319df212 Author: Axel Lin Date: Mon Mar 4 21:16:02 2019 +0800 regulator: da9062: Convert to use regulator_set/get_current_limit_regmap Use regulator_set/get_current_limit_regmap helpers to save some code. Signed-off-by: Axel Lin Acked-by: Steve Twiss Signed-off-by: Mark Brown commit d0ccbe11773d39baed0cdec606ad6a008c2b19c7 Author: Axel Lin Date: Fri Mar 1 14:24:32 2019 +0800 regulator: lp87565: Convert to use regulator_set/get_current_limit_regmap Use regulator_set/get_current_limit_regmap helpers to save some code. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit d1a6cbdf1e597917cb642c655512d91b71a35d22 Author: Axel Lin Date: Fri Mar 1 14:16:40 2019 +0800 regulator: lp87565: Fix missing register for LP87565_BUCK_0 LP87565_BUCK_0 is missed, fix it. Fixes: f0168a9bf ("regulator: lp87565: Add support for lp87565 PMIC regulators") Signed-off-by: Axel Lin Reviewed-by: Keerthy Signed-off-by: Mark Brown commit dc3b2881fad4a1e1fe7afb70e094293fa463183a Author: Axel Lin Date: Wed Mar 6 09:43:32 2019 +0800 regulator: mt6397: Use unsigned int for volt_tables Make it consistent as .volt_table should be const unsigned int *. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 1fc26296a26088442fefc489de94d8592e013375 Author: Axel Lin Date: Wed Mar 6 09:43:31 2019 +0800 regulator: mt6380: Use unsigned int for volt_tables Make it consistent as .volt_table should be const unsigned int *. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit dad110a0c5c1a26782af571d49c439d6fd245901 Author: Axel Lin Date: Wed Mar 6 09:43:30 2019 +0800 regulator: mt6323: Use unsigned int for volt_tables Make it consistent as .volt_table should be const unsigned int *. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 5fe0ed24379698feb3852950ae7579aa85993c24 Author: Axel Lin Date: Wed Mar 6 09:42:01 2019 +0800 regulator: max77650: Use unsigned int for max77651_sbb1_regulator_volt_table Make it consistent as .volt_table should be const unsigned int *. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit f668a1db0b30c62c2256cdcb2411c2630eb0e2f6 Author: Axel Lin Date: Wed Mar 6 09:01:02 2019 +0800 regulator: as3711: Remove struct as3711_regulator_info and as3711_regulator This driver does not really need struct as3711_regulator_info and struct as3711_regulator, remove them. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit f4192c2cc923ecd79da6cc1619794164fbafcbc4 Author: Axel Lin Date: Sat Mar 16 22:35:58 2019 +0800 regulator: cpcap: Convert to use of_device_get_match_data Use of_device_get_match_data to simplify the code a bit. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 2106e9bbffb9d91b2bc1a33c09efadc8cb3906d2 Author: Axel Lin Date: Sat Mar 16 22:35:57 2019 +0800 regulator: cpcap: Remove unneeded init_data setting This driver is using regulator core's simplified DT parsing code, so regulator will call regulator_of_get_init_data() to get init_data. No need to set config.init_data. In additional, current code does not properly set the init_data setting, so just remove it. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit a0cb2d4357e483b7bca3c06f790d8f5d4cc20d84 Author: Hans de Goede Date: Tue Mar 5 12:39:00 2019 +0100 ASoC: Intel: bytcr_rt5651: Add BYT_RT5651_JD_NOT_INV quirk Add BYT_RT5651_JD_NOT_INV quirk for devices with an inverted (active-high instead of the normal active-low) jack-detect switch. And add a quirk for the Complet Electro Serv MY8307 tablet which has an inverted jack-detect switch (and a mono-speaker). Signed-off-by: Hans de Goede Signed-off-by: Mark Brown commit 8a68a509ae6b5d7d18c6bfc88553ca7761029ada Author: Hans de Goede Date: Tue Mar 5 12:38:59 2019 +0100 ASoC: rt5651: Add support for active-high jack detect Some boards use a jack-receptacle with a switch which reports the jack-inserted status as active-high, rather then the standard active-low reporting most jacks use. This commit adds support for it. This is activated by a boolean "realtek,jack-detect-not-inverted" device-property. The not-inverted in the device-property name, rather then active-high, was chosen to keep the device-property naming consistent with the rt5640 codec driver. Signed-off-by: Hans de Goede Signed-off-by: Mark Brown commit f68c2a682d444296403d1aa6e73b3de0681fdcea Author: Olivier Moysan Date: Wed Mar 6 17:48:08 2019 +0100 ASoC: stm32: spdifrx: add power management Add suspend and resume sleep callbacks to STM32 SPDIFRX driver, to support system low power modes. Signed-off-by: Olivier Moysan Signed-off-by: Mark Brown commit 4d92ac7bd9f8af387d387173b380f58ad6f98b51 Author: Axel Lin Date: Sat Mar 16 11:52:57 2019 +0800 regulator: as3722: Remove *rdevs[] from struct as3722_regulators Current code is using devm_regulator_register() so it is not necessary to save as3722_regs->rdevs[id] for clean up. The *rdevs[] is not used now, remove it. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 9cff03710d403f8872d1225d36a4b69432ae007d Author: Axel Lin Date: Sat Mar 16 09:50:30 2019 +0800 regulator: da9052: Include linux/of.h to fix build warning for of_match_ptr Remove #ifdef CONFIG_OF guard so linux/of.h will be included when !CONFIG_OF. This fixes build warnings when !CONFIG_OF. Reported-by: kbuild test robot Signed-off-by: Axel Lin Acked-by: Steve Twiss Signed-off-by: Mark Brown commit bbfaa7d36c1eb465f120f2a3dfe25c1fe022195d Author: KaiChieh Chuang Date: Thu Mar 7 07:51:09 2019 +0800 ASoC: dpcm: prevent snd_soc_dpcm use after free The dpcm get from fe_clients/be_clients may be free before use Add a spin lock at snd_soc_card level, to protect the dpcm instance. The lock may be used in atomic context, so use spin lock. possible race condition between void dpcm_be_disconnect( ... list_del(&dpcm->list_be); list_del(&dpcm->list_fe); kfree(dpcm); ... and for_each_dpcm_fe() for_each_dpcm_be*() race condition example Thread 1: snd_soc_dapm_mixer_update_power() -> soc_dpcm_runtime_update() -> dpcm_be_disconnect() -> kfree(dpcm); Thread 2: dpcm_fe_dai_trigger() -> dpcm_be_dai_trigger() -> snd_soc_dpcm_can_be_free_stop() -> if (dpcm->fe == fe) Excpetion Scenario: two FE link to same BE FE1 -> BE FE2 -> Thread 1: switch of mixer between FE2 -> BE Thread 2: pcm_stop FE1 Exception: Unable to handle kernel paging request at virtual address dead0000000000e0 pc=<> [] dpcm_be_dai_trigger+0x29c/0x47c sound/soc/soc-pcm.c:3226 if (dpcm->fe == fe) lr=<> [] dpcm_fe_dai_do_trigger+0x94/0x26c Backtrace: [] notify_die+0x68/0xb8 [] die+0x118/0x2a8 [] __do_kernel_fault+0x13c/0x14c [] do_translation_fault+0x64/0xa0 [] do_mem_abort+0x4c/0xd0 [] el1_da+0x24/0x40 [] dpcm_be_dai_trigger+0x29c/0x47c [] dpcm_fe_dai_do_trigger+0x94/0x26c [] dpcm_fe_dai_trigger+0x3c/0x44 [] snd_pcm_do_stop+0x50/0x5c [] snd_pcm_action+0xb4/0x13c [] snd_pcm_drop+0xa0/0x128 [] snd_pcm_common_ioctl+0x9d8/0x30f0 [] snd_pcm_ioctl_compat+0x29c/0x2f14 [] compat_SyS_ioctl+0x128/0x244 [] el0_svc_naked+0x34/0x38 [] 0xffffffffffffffff Signed-off-by: KaiChieh Chuang Signed-off-by: Mark Brown commit 2944d29d7c89573f9aa47083d105ff0243d5a125 Author: Mylène Josserand Date: Mon Mar 18 11:39:38 2019 +0100 ASoC: simple-amplifier: Make gpio property optional Some amplifier may not have a GPIO to control the power, but instead simply rely on the regulator to power up and down the amplifier. In order to support those setups, let's make the GPIO optional. Signed-off-by: Mylène Josserand Signed-off-by: Maxime Ripard Signed-off-by: Mark Brown commit c4bce31c4982ddb866b6b6d0f7ca1cf039a3aded Author: Kuninori Morimoto Date: Mon Mar 18 14:11:34 2019 +0900 ASoC: rsnd: explain extended Audio DMAC peri peri address If SoC has extended Audio DMAC peri peri address, DT needs to select it. Otherwise, it can select normal Audio DMAC peri peri address. Extended Audio DMAC peri peri address can use BUSIF4-7, normal address can't. Reported-by: Jiada Wang Signed-off-by: Kuninori Morimoto Reviewed-by: Geert Uytterhoeven Reviewed-by: Simon Horman Signed-off-by: Mark Brown commit 14c747506ae65005ab024f2247e68b8e045f210a Author: Kuninori Morimoto Date: Mon Mar 18 14:11:27 2019 +0900 ASoC: rsnd: add missing reg/reg-name at Document reg is missing "Audio DMAC peri peri" part, and reg-name itself is missing at Document. This patch add these. Reported-by: Geert Uytterhoeven Signed-off-by: Kuninori Morimoto Reviewed-by: Simon Horman Signed-off-by: Mark Brown commit 127470597b6b9466872d9794a80804ec95fff8ea Merge: 3789debfc379 9e98c678c2d6 Author: Mark Brown Date: Mon Mar 18 11:15:09 2019 +0000 Merge tag 'v5.1-rc1' into asoc-5.2 Linux 5.1-rc1 commit 9672e2cb0fbdcb11d64ac43bcb4ee86a76b4221f Author: Mathias Krause Date: Sun Dec 30 13:40:04 2018 +0100 vmlinux.lds.h: drop unused __vermagic The reference to '__vermagic' is a relict from v2.5 times. And even there it had a very short life time, from v2.5.59 (commit 1d411b80ee18 ("Module Sanity Check") in the historic tree) to v2.5.69 (commit 67ac5b866bda ("[PATCH] complete modinfo section")). Neither current kernels nor modules contain a '__vermagic' section any more, so get rid of it. Signed-off-by: Mathias Krause Cc: Rusty Russell Cc: Jessica Yu Signed-off-by: Jessica Yu commit 5aba6c47401d14247a44c3ae94d1bdab5653f692 Author: Andy Shevchenko Date: Mon Mar 4 11:07:37 2019 +0200 iommu/vt-d: Switch to bitmap_zalloc() Switch to bitmap_zalloc() to show clearly what we are allocating. Besides that it returns pointer of bitmap type instead of opaque void *. Signed-off-by: Andy Shevchenko Signed-off-by: Joerg Roedel commit d6cb77228e3ae070061195a6fff6ba7c3c0b8e47 Author: Aditya Pakki Date: Tue Mar 12 10:05:52 2019 -0500 pinctrl: baytrail: Fix potential NULL pointer dereference saved-context in byt_gpio_probe is allocated via devm_kcalloc and is used without checking for NULL in later functions. This patch avoids such a scenario. Signed-off-by: Aditya Pakki Signed-off-by: Andy Shevchenko commit 5880955fc7a5d61da80adfa3337e77f2cae6c68d Author: Andreas Kemnade Date: Tue Feb 5 07:38:13 2019 +0100 dt-bindings: panel: td028ttec1: add backlight property This adds an additional backlight property as described in panel-common.txt Signed-off-by: Andreas Kemnade Reviewed-by: Laurent Pinchart Reviewed-by: Rob Herring Signed-off-by: Tomi Valkeinen commit b477a009b4266a3bdb851477e3f77bf27c2efcc3 Author: Andreas Kemnade Date: Tue Feb 5 07:38:12 2019 +0100 drm/omap: panel-tpo-td028ttec1: add backlight support This panel has a backlight, so fetch it from devicetree using the corresponding property as documented in panel-common.txt. It is implemented the same way as in panel-dpi.c This ensures the backlight is also disabled when the display is turned off like when doing xset dpms force off. Signed-off-by: Andreas Kemnade Reviewed-by: Laurent Pinchart Signed-off-by: Tomi Valkeinen commit fe4ed1b457943113ee1138c939fbdeede4af6cf3 Author: Tony Lindgren Date: Thu Feb 7 07:45:16 2019 -0800 drm/omap: dsi: Fix PM for display blank with paired dss_pll calls Currently dsi_display_init_dsi() calls dss_pll_enable() but it is not paired with dss_pll_disable() in dsi_display_uninit_dsi(). This leaves the DSS clocks enabled when the display is blanked wasting about extra 5mW of power while idle. The clock that is left on by not calling dss_pll_disable() is DSS_CLKCTRL bit 10 OPTFCLKEN_SYS_CLK that is the source clock for DSI PLL. We can fix this issue by by making the current dsi_pll_uninit() into dsi_pll_disable(). This way we can just call dss_pll_disable() from dsi_display_uninit_dsi() and the code becomes a bit easier to follow. However, we need to also consider that DSI PLL can be muxed for DVI too as pointed out by Tomi Valkeinen . In the DVI case, we want to unconditionally disable the clocks. To get around this issue, we separate out the DSI lane handling from dsi_pll_enable() and dsi_pll_disable() as suggested by Tomi in an earlier experimental patch. So we must only toggle the DSI regulator based on the vdds_dsi_enabled flag from dsi_display_init_dsi() and dsi_display_uninit_dsi(). We need to make these two changes together to avoid breaking things for DVI when fixing the DSI clock handling. And this all causes a slight renumbering of the error path for dsi_display_init_dsi(). Suggested-by: Tomi Valkeinen Signed-off-by: Tony Lindgren Signed-off-by: Tomi Valkeinen commit a0970e87b5d357c8a1ec9c18e128a8d7921c29f9 Author: Laurent Pinchart Date: Sat Jan 12 02:42:39 2019 +0200 drm: Turn bus flags macros into an enum This allows nicer kerneldoc with an easy way to reference the enum and the values. Signed-off-by: Laurent Pinchart Acked-by: Daniel Vetter Reviewed-by: Sam Ravnborg Signed-off-by: Tomi Valkeinen commit 8bf4b1621178ef05bde5b9a14a117ff951dd1260 Author: Laurent Pinchart Date: Fri Dec 7 23:09:30 2018 +0200 drm/omap: Remove panel-dpi driver Panels are now supported through the drm_panel infrastructure, remove the omapdrm-specific driver. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit be3143d8b27f6eec3b3786730822994a944ede52 Author: Laurent Pinchart Date: Sun Sep 23 15:12:20 2018 +0300 drm/omap: Remove TFP410 and DVI connector drivers Those components are supported by the drm_bridge infrastructure, remove the omapdrm-specific driver. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 4e17763c321f085e40e1fabef9677628d0fb84fe Author: Laurent Pinchart Date: Sun Sep 23 15:05:10 2018 +0300 drm/omap: Whitelist DT nodes to fixup with omapdss, prefix The omapdss driver patches DT at runtime to prepend an "omapdss," prefix to the compatible string of all encoders, panels and connectors. This mechanism ensures they get bound to the omapdss-specific drivers instead of generic drivers. Now that we have drm_bridge support in omapdrm, we need to selectively disable this mechanism. Add a whitelist of compatible strings to patch, and fill it with all the devices we support. They will be removed one by one once corresponding drm_bridge drivers become available and get successfully tested with omapdrm. The omapdss components load check code is updated accordingly to ignore devices managed by external bridge drivers. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 30b71761957c541cd9dfd6cd10e3feb21a8ddca1 Author: Laurent Pinchart Date: Fri Dec 7 23:08:35 2018 +0200 drm/omap: Add support for drm_panel Hook up drm_panel support in the omapdrm driver. The change is relatively simply as the way has been paved by drm_bridge support already. In addition to looking up, attaching to and detaching from the panel, we only need to add panel support in the connector .get_modes() handler, take connector bus flags (set by the panel) into account, and enable/disable the panel in the encoder enable/disable operations handlers. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 79107f274b2fc6bce13f687de33c8d0b70994558 Author: Laurent Pinchart Date: Sun Sep 23 12:58:15 2018 +0300 drm/omap: Add support for drm_bridge Hook up drm_bridge support in the omapdrm driver. Despite the recent extensive preparation work, this is a rather intrusive change, as the management of outputs needs to be adapted through the driver to handle both omap_dss_device and drm_bridge. Connector creation is skipped when using a drm_bridge, as the bridge creates the connector internally. This creates issues with systems that split connector operations (such as modes retrieval and hot-plug detection) across different bridges. These systems can't be supported using drm_bridge for now (their support through the omap_dss_device infrastructure is not affected), this will be fixed in subsequent changes. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 163f7a3578eca8f9bc550e0161b7d9b79e24e056 Author: Laurent Pinchart Date: Fri Dec 7 22:13:44 2018 +0200 drm/panel: simple: Add OSD070T1718-19TS panel support Add support for the OSD070T1718-19TS 7" 800x480 panel from One Stop Displays to the panel-simple driver. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Reviewed-by: Tomi Valkeinen Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 1b1b5330a0078608ad31b508c347c87736568cf5 Author: Laurent Pinchart Date: Fri Jan 11 04:08:19 2019 +0200 dt-bindings: display: Add OSD Displays OSD070T1718-19TS panel binding The OSD Displays OSD070T1718-19TS is a 7" WVGA (800x480) 24bit RGB panel and is compatible with the simple-panel bindings. Signed-off-by: Laurent Pinchart Reviewed-by: Tomi Valkeinen Tested-by: Sebastian Reichel Reviewed-by: Rob Herring Signed-off-by: Tomi Valkeinen commit b7b33786b7c309f3965f2531e36e24e7f19639a4 Author: Laurent Pinchart Date: Fri Jan 11 03:54:36 2019 +0200 dt-bindings: Add vendor prefix for OSD Displays OSD Displays is a panel manufacturer. It has been acquired by New Vision Displays in 2015 but continues to operate under its own brand name. Signed-off-by: Laurent Pinchart Reviewed-by: Tomi Valkeinen Reviewed-by: Rob Herring Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 897dae5657e6953f5ae12664d590833deb9c460f Author: Laurent Pinchart Date: Thu Sep 27 11:29:48 2018 +0300 drm/bridge: ti-tfp410: Report input bus config through bridge timings The TFP410 supports configurable pixel clock sampling edge and data de-skew adjustments. The configuration can be set through I2C or dedicated chip pins. Report the configuration through the drm_bridge timings. As the ti-tftp410 driver doesn't support configuring the chip through I2C, we simply use the default configuration in that case. When the chip is configured through dedicated pins, we parse the configuration from DT. Signed-off-by: Laurent Pinchart Reviewed-by: Tomi Valkeinen Reviewed-by: Jyri Sarha Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 38c02db7e66e3582d2712f8a066c0e85583b3bb1 Author: Laurent Pinchart Date: Mon Oct 1 18:07:48 2018 +0300 drm/bridge: ti-tfp410: Add support for the powerdown GPIO The TFP410 has a powerdown pin that can be connected to a GPIO to control power saving. The DT bindings define a corresponding property, but the driver doesn't implement support for it. Fix that. Signed-off-by: Laurent Pinchart Reviewed-by: Tomi Valkeinen Reviewed-by: Jyri Sarha Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 60b903c3e621ccb61fc9432fc32d64c6e3604955 Author: Laurent Pinchart Date: Tue Sep 25 16:59:28 2018 +0300 drm/bridge: ti-tfp410: Set connector type based on DT connector node The TI TFP410 is a DVI encoder, not a full HDMI encoder. Its output can be routed to a DVI-D connector, even if in many cases embedded systems will use an HDMI connector to carry the DVI signals. Instead of hardcoding the connector type to HDMI, retrieve the connector type from its DT node. Signed-off-by: Laurent Pinchart Reviewed-by: Tomi Valkeinen Reviewed-by: Jyri Sarha Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 2645d8d0980caa1cb9378b2a51d117374c478e76 Author: Laurent Pinchart Date: Thu Sep 27 11:25:49 2018 +0300 dt-bindings: display: tfp410: Add bus parameters properties The TFP410 supports configuration of several input bus parameters through either the I2C port or chip pins. In the latter case, we need to specify those parameters in DT. Two new properties are added, ti,deskew to specify the data de-skew configuration (as set through the DK[3:1] pins), and pclk-sample to specify the pixel clock sampling edge (as set through the EDGE pin). Signed-off-by: Laurent Pinchart Reviewed-by: Tomi Valkeinen Reviewed-by: Rob Herring Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit d23286ff3d79e1b78b4a4b030a62c3ddc120c607 Author: Stefan Agner Date: Tue Sep 4 22:21:08 2018 -0700 drm/bridge: use bus flags in bridge timings The DRM bus flags convey additional information on pixel data on the bus. All current available bus flags might be of interest for a bridge. Remove the sampling_edge field and use bus_flags. In the case at hand a dumb VGA bridge needs a specific data enable polarity (DRM_BUS_FLAG_DE_LOW). Signed-off-by: Stefan Agner Signed-off-by: Laurent Pinchart Reviewed-by: Tomi Valkeinen Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 88bc4178568b8e0331143cc0616640ab72f0cba1 Author: Laurent Pinchart Date: Sat Sep 22 15:02:42 2018 +0300 drm: Use new DRM_BUS_FLAG_*_(DRIVE|SAMPLE)_(POS|NEG)EDGE flags The DRM_BUS_FLAG_PIXDATA_(POS|NEG)EDGE and DRM_BUS_FLAG_SYNC_(POS|NEG)EDGE flags are deprecated in favour of the new DRM_BUS_FLAG_PIXDATA_(DRIVE|SAMPLE)_(POS|NEG)EDGE and new DRM_BUS_FLAG_SYNC_(DRIVE|SAMPLE)_(POS|NEG)EDGE flags. Replace them through the code. This effectively changes the value of the .sampling_edge bridge timings field in the dumb-vga-dac driver. This is safe to do as no driver consumes these values yet. Signed-off-by: Laurent Pinchart Acked-by: Linus Walleij Reviewed-by: Stefan Agner Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit a792fa0e21876c9cbae7cc170083016299153051 Author: Laurent Pinchart Date: Sat Sep 22 14:43:56 2018 +0300 drm: Clarify definition of the DRM_BUS_FLAG_(PIXDATA|SYNC)_* macros The DRM_BUS_FLAG_PIXDATA_POSEDGE and DRM_BUS_FLAG_PIXDATA_NEGEDGE macros and their DRM_BUS_FLAG_SYNC_* counterparts define on which pixel clock edge data and sync signals are driven. They are however used in some drivers to define on which pixel clock edge data and sync signals are sampled, which should usually (but not always) be the opposite edge of the driving edge. This creates confusion. Create four new macros for both PIXDATA and SYNC that explicitly state the driving and sampling edge in their name to remove the confusion. The driving macros are defined as the opposite of the sampling macros to made code simpler based on the assumption that the driving and sampling edges are opposite. Signed-off-by: Laurent Pinchart Acked-by: Linus Walleij Reviewed-by: Stefan Agner Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 0dbfc396672025d3ef8bacc934b80a5463e75c6d Author: Laurent Pinchart Date: Mon Dec 10 14:00:38 2018 +0200 drm/omap: Merge omap_dss_device type and output_type fields The omap_dss_device type and output_type fields differ mostly for historical reasons. The output_type field is required for all devices but the display at the end of the pipeline, and must be set to OMAP_DISPLAY_TYPE_NONE for the latter. The type field is required for all devices but the internal encoder, for which it is ignored. The only reason why the output_type field must be set to OMAP_DISPLAY_TYPE_NONE for the display at the end of the pipeline is to identify omap_dss_device instances corresponding to displays. This is not documented and confusing. Clean the code by adding a new display field to the omap_dss_device structure to identify displays, and merge the type and output_type fields. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit a4e26525cacb5154a0e00415aa3f889ee5d295db Author: Laurent Pinchart Date: Sun Sep 23 14:13:15 2018 +0300 drm/omap: Refactor initialization sequence The omapdrm driver initialization procedure starts by connecting all available pipelines, gathering related information (such as output and display DSS devices, and DT aliases), sorting them by alias, and finally creates all the DRM/KMS objects. When using DRM bridges instead of DSS devices, we will need to attach to the bridges before getting the aliases. As attaching to bridges requires an encoder object, we have to reorganize the initialization sequence to create encoders before getting aliases and sorting the pipelines. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit ce69aac84fe322ab5e1f91224dc15d1957ded75c Author: Laurent Pinchart Date: Fri Sep 21 23:32:58 2018 +0300 drm/omap: Simplify OF lookup of DSS devices Now that the direction of OF graph walk has been reversed, there's no need to lookup devices by port as we have no sink device connected through multiple sink ports. Simplify OF lookup of the DSS devices to look them up by node only. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit e5906f765c68b3fa0e9806116a73c786c09642e2 Author: Laurent Pinchart Date: Fri Sep 21 22:12:46 2018 +0300 drm/omap: Store pixel clock instead of full mode in DPI and SDI encoders The DPI and SDI encoders store the full videomode upon mode set, to only use the value of the pixel clock when enabling the encoder. This wastes memory. Store the pixel clock value only. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit b08644a235a4f2d3ba5b86ba02ea404e5edad695 Author: Laurent Pinchart Date: Fri Sep 21 18:11:15 2018 +0300 drm/omap: venc: Use drm_display_mode natively Replace internal usage of struct videomode with struct drm_display_mode in order to avoid converting needlessly between the data structures. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 41322aa691950431ccef115e85b2d6bba654bd70 Author: Laurent Pinchart Date: Fri Sep 21 17:00:29 2018 +0300 drm/omap: Pass drm_display_mode to .check_timings() and .set_timings() The omap_dss_device .check_timings() and .set_timings() operations operate on struct videomode, while the DRM API operates on struct drm_display_mode. This forces conversion from to videomode in the callers. While that's not a problem per se, it creates a difference with the drm_bridge API. Replace the videomode parameter to the .check_timings() and .set_timings() operations with a drm_display_mode. This pushed the conversion to videomode down to the DSS devices in some cases. If needed they will be converted to operate on drm_display_mode natively. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit d68164fe29642270ffba64ed64b0178ef7d916bf Author: Laurent Pinchart Date: Fri Sep 21 16:13:00 2018 +0300 drm/omap: Factor out common mode validation code The encoder .atomic_check() and connector .mode_valid() operations both walk through the dss devices in the pipeline to validate the mode. Factor out the common code in a new omap_drm_connector_mode_fixup() function. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit d60dfaba4225d72e54ec887c5e307dd9fc0aa1db Author: Laurent Pinchart Date: Thu Sep 20 01:47:17 2018 +0300 drm/omap: venc: Simplify mode setting by caching configuration The mode setting handler of the VENC stores the video mode internally, to then convert it to a configuration when programming the hardware. The stored mode is otherwise unused. Cache the configuration directly instead. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 116c7721077cf82b942adaef146e97663247d972 Author: Laurent Pinchart Date: Thu Sep 20 00:17:42 2018 +0300 drm/omap: Move DISPC timing checks to CRTC .mode_valid() operation The DISPC timings checks relate to the CRTC, but they're performed in the encoder and connector .atomic_check() and .mode_valid() operations. Move them to the CRTC .mode_valid() operation. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit df6682b43533e4c59c3d14b56de838c035a8bb9a Author: Laurent Pinchart Date: Thu Sep 13 03:48:02 2018 +0300 drm/omap: Remove src field from omap_dss_device structure The field is only used to check whether the device is connected, and we can do so by checking the dss field instead. Remove the src field. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 27a7e3e18419869cdcc414a404f3fe66f1b4e644 Author: Laurent Pinchart Date: Thu Sep 13 03:45:06 2018 +0300 drm/omap: Notify all devices in the pipeline of output disconnection For HDMI pipelines, when the output gets disconnected the device handling CEC needs to be notified. Instead of guessing which device that would be (and sometimes getting it wrong), notify all devices in the pipeline. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 7bce5ae124acfee086582b29215888ce28fe7397 Author: Laurent Pinchart Date: Thu Sep 13 03:43:47 2018 +0300 drm/omap: panel-dsi-cm: Store source pointer internally The source pointer will be removed to the omap_dss_device structure. Store it internally in the DSI panel driver data. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 6b97cc9560474f8dd1d4ef14caa1d33249dd8176 Author: Laurent Pinchart Date: Thu Sep 13 03:10:25 2018 +0300 drm/omap: Don't store display pointer in omap_connector structure Display pipelines based on drm_bridge are handled from the bridge closest to the CRTC. To move to that model we thus need to transition away from walking pipelines in the other direction, and from accessing the device at the end of the pipeline when possible. Remove most accesses to the display device from the omap_connector implementation, and don't store it in the omap_connector structure. - For debug messages we can simply use the connector name instead. - For type checks we can use the drm_connector type. - For operation lookup we can start at the other end of the pipeline and locate the last matching device. The display device is still passed to the connector init function in order to find its type, which requires access to the end of the pipeline. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit de9225a9bda1b07e11e02a0228a55c5df9fdc9dd Author: Laurent Pinchart Date: Thu Sep 13 02:34:29 2018 +0300 drm/omap: Move display alias ID to omap_drm_pipeline The DT bindings for the OMAP DSS allow assigning numerical IDs to display outputs through display entries in the alias node. The driver uses this information to sort pipelines according to the order specified in DT, making it possible for a system to give a priority order to outputs. Retrieval of the alias ID is done when initializing display dss devices. That code will be removed when moving to drm_bridge and drm_panel. Move retrieval of the alias ID to display pipeline connection time and store it in the pipeline structure instead to keep the feature. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 79d11e96e397e1d70b23ac2174d0aba5d8e73b9e Author: Laurent Pinchart Date: Thu Sep 13 02:23:26 2018 +0300 drm/omap: Don't pass display pointer to encoder init function The display isn't used by the encoder implementation, don't pass it to the initialization function and store it internally needlessly. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 40e5f937d50fce297db3ee5c75e30bf4e1518f3b Author: Laurent Pinchart Date: Thu Sep 13 00:39:01 2018 +0300 drm/omap: venc: List both PAL and NTSC modes The TV encoder supports both PAL and NTSC modes, but when queried for the list of modes it supports, only the currently selected mode is reported. Fix it and report the two modes unconditionally. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 46b3847d7f680d51a29384a5ee9e1d54e6739f5d Author: Laurent Pinchart Date: Thu Sep 13 00:37:35 2018 +0300 drm/omap: Add a dss device operation flag for .get_modes() Instead of manually iterating over the dss devices in the pipeline to find the first one that implements the .get_modes() operation, add a new operation flag for .get_modes() and use the omap_connector_find_device() helper function to locate the right dss device. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit a872d5e92a6728b6155a5cfbaab3db88bf2e2b7c Author: Laurent Pinchart Date: Thu Sep 13 00:35:54 2018 +0300 drm/omap: Merge display .get_modes() and .get_size() operations Now that the .get_modes() operations takes a drm_connector and fills it with modes, it becomes easy to fill display information in the same operation without requiring a separate .get_size() opearation. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 870e19d59f8a2e13750861d8f8f49e93188634ec Author: Laurent Pinchart Date: Thu Sep 13 00:17:01 2018 +0300 drm/omap: Expose DRM modes instead of timings in display devices omap_dss_device operations expose fixed video timings through a .get_timings() operation that return a single timing for the device. To prepare for the move to drm_bridge, modify the API to instead add DRM modes directly to the connector. As this puts more burden on display devices, we also create a helper function for panels to add a single DRM mode from the panel video timings. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit d17eb4537a7eb16da9eafbfd5717e12b45b77251 Author: Laurent Pinchart Date: Wed Sep 12 19:41:31 2018 +0300 drm/omap: Factor out common init/cleanup code for output devices All the internal encoders share common init and cleanup code. Factor it out to separate functions. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 56c9818d5c89b2655c6b4c65b99829faf5b4f544 Author: Laurent Pinchart Date: Wed Sep 12 19:05:18 2018 +0300 drm/omap: Remove omap_dss_device dst field The field is only used in a safety check during device connection/disconnection, where the src field can be easily used instead. Remove it and use src. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 19b4200d8f4b90b5a41592f9021b52153ac2b6b5 Author: Laurent Pinchart Date: Fri Aug 24 19:38:07 2018 +0300 drm/omap: Reverse direction of the DSS device enable/disable operations The omapdrm and omapdss drivers are architectured based on display pipelines made of multiple components handled from sink (display) to source (DSS output). This is incompatible with the DRM bridge and panel APIs that handle components from source to sink. Reconcile the omapdrm and omapdss drivers with the DRM bridge and panel model by reversing the direction of the DSS device .enable() and .disable() operations. This completes the move to the DRM bridge model, with the notable exception of the DSI pipelines that will require more work. We also adapt the omapdss shutdown handler dss_shutdown() to shut down all active pipelines starting from the pipeline output device instead of the display device. As a consequence the for_each_dss_display() macro isn't used and can be removed, and the omapdss_device_get_next() function underlying the macro can be simplified to search for output devices only. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit 3f3623dd0f881dd5615097fdc9eeeb1ec732e59a Author: Laurent Pinchart Date: Sat Sep 8 11:45:14 2018 +0300 drm/omap: Remove enable checks from display .enable() and .remove() The displays (connectors, panels and encoders) bail out from their .enable() and .disable() handlers if the dss device is already enabled or disabled. Those safety checks are not needed when the functions are called through the omapdss_device_ops, as the .enable() and .disable() handlers are called from the DRM atomic helpers that already guarantee that no double enabling or disabling can occur. However, the handlers are also called directly from the .remove() handler. While this shouldn't be needed either as the modules can't be removed as long as the device is in use, it's still a good practice to disable the device explicitly. There is currently a safety check in .remove() in some drivers but not all of them. Remove the safety checks from the .enable() and .disable() handlers, and add missing ones in the .remove() handler. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit b49a2139ba67da43915a483a2a7e8490ba6c2b57 Author: Laurent Pinchart Date: Tue Sep 4 23:53:34 2018 +0300 drm/omap: Remove connection checks from display .enable() and .remove() The displays (connectors, panels and encoders) return an error from their .enable() handler when the dss device is not connected. They also disconnect the dss device explicitly from their .remove() handler if it is still connected. Those safety checks are not needed: - The .enable() handler is called from code paths that access the dss devices chain from the display device, which is set to NULL when the device isn't connected. - The .remove() handler can only be called when unloading the module as the driver has the suppress_bind_attrs attribute set, and a reference to the module is taken when constructing the dss devices chain, so the module can only be unloaded when the dss device is disconnected. Remove the safety checks. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit f8a8eabb273b6810d0eb7546896e5da7974189a5 Author: Laurent Pinchart Date: Tue Sep 4 23:53:34 2018 +0300 drm/omap: Remove connection checks from internal encoders .enable() The internal encoders return an error from their .enable() handler when their are not connected to a dss manager. As the flag used is set and cleared in the connect and disconnect handlers, this effectively checks whether the omap_dss_device is connected. The .enable() handler is called from code paths that access the dss devices chain from the display device, which is set to NULL when the device isn't connected, making it impossible to access the device in that case. The safety check is thus not needed, remove it. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit b80bfc66b0eeaf887f49c9cdb92ebba5ec0a94aa Author: Laurent Pinchart Date: Tue Sep 4 17:22:27 2018 +0300 drm/omap: Move common display enable/disable code to encoder All .enable() and .disable() handlers for panels and connectors share common code that validates and updates the device's state. Move it to common locations in the omap_encoder_enable() and omap_encoder_disable() handlers. The enabled check in the .disable() handler is left untouched, it will be addressed separately. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Signed-off-by: Tomi Valkeinen commit d2c53162f55798f7a6353ea021793b3a8e411914 Author: Laurent Pinchart Date: Tue Sep 4 17:08:33 2018 +0300 drm/omap: Use atomic suspend/resume helpers Instead of rolling out custom suspend/resume implementations based on state information stored in the driver's data structures, use the atomic suspend/resume helpers that rely on a DRM atomic state object. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Reviewed-by: Tomi Valkeinen Signed-off-by: Tomi Valkeinen commit d79bd6b445a2f38726a4e4c406a0f9a25d85e340 Author: Laurent Pinchart Date: Thu Sep 20 01:19:32 2018 +0300 drm/omap: venc: Remove wss_data field from venc_device structure The venc_device structure wss_data field is set to 0 and never otherwise modified, remove it. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Reviewed-by: Tomi Valkeinen Signed-off-by: Tomi Valkeinen commit 374805b0bd84c44990dd75f66a5da3f025b2fcfc Author: Laurent Pinchart Date: Thu Sep 13 03:28:09 2018 +0300 drm/omap: Remove unused kobj field from struct omap_dss_device The kobj field from struct omap_dss_device is not used. Remove it. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Reviewed-by: Tomi Valkeinen Signed-off-by: Tomi Valkeinen commit 5d79ef3fcd410ff089ee9ee9f5769ba11ef87c51 Author: Laurent Pinchart Date: Thu Sep 13 00:08:22 2018 +0300 drm/omap: Remove declaration of nonexisting function The omap_connector_attached_encoder() doesn't exist anymore, remove its declaration from omap_connector.h. Signed-off-by: Laurent Pinchart Reviewed-by: Sebastian Reichel Tested-by: Sebastian Reichel Reviewed-by: Tomi Valkeinen Signed-off-by: Tomi Valkeinen commit 8518f05a7110c9f4d70835385fd2474ff479113a Author: Laurent Pinchart Date: Tue Jun 5 03:36:13 2018 +0300 drm/atomic: Constify mode argument to mode_valid_path() The mode_valid_path() function validates the mode it receives without ever modifying it. Constify the mode pointer argument to make that explicit. Signed-off-by: Laurent Pinchart Reviewed-by: Ville Syrjälä Signed-off-by: Tomi Valkeinen commit 3961d355dfb512b1b004e32a382c25a90367e6fd Author: Geert Uytterhoeven Date: Thu Feb 28 11:51:19 2019 +0100 dt-bindings: power: r8a77965: Remove non-existent A3IR power domain The R-Car Gen3 HardWare Manual Errata for Rev. 0.80 (Feb 28, 2018) removed the A3IR power domain on R-Car M3-N, as this SoC does not have an Image Processing Unit (IMP-X5). As of commit d8c6557bc93be73e ("arm64: dts: renesas: r8a77965: Remove non-existent IPMMU-IR"), this definition is no longer used from DT, and thus can be removed. Fixes: a527709b78b3c997 ("soc: renesas: rcar-sysc: Add R-Car M3-N support") Signed-off-by: Geert Uytterhoeven Reviewed-by: Fabrizio Castro Signed-off-by: Simon Horman commit 295768f6207e412e145487c87993481774c55411 Author: Biju Das Date: Wed Jan 16 18:37:44 2019 +0000 dt-bindings: Add vendor prefix for Silicon Linux. Add Silicon Linux to the list of devicetree vendor prefixes. Website: http://www.si-linux.co.jp Signed-off-by: Biju Das Signed-off-by: Fabrizio Castro Reviewed-by: Chris Paterson Reviewed-by: Andreas Färber Reviewed-by: Rob Herring Signed-off-by: Simon Horman commit 15160f6de0bba712fcea078c5ac7571fe33fcd5d Author: Takeshi Kihara Date: Thu Feb 28 12:00:48 2019 +0100 soc: renesas: Identify R-Car M3-W ES1.3 The Product Register of R-Car M3-W ES1.3 incorrectly identifies the SoC revision as ES2.1. Add a workaround to fix this. Signed-off-by: Takeshi Kihara Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman commit 474706117c2baa68bf053f16cd35618d30bf4c06 Author: Simon Horman Date: Wed Mar 13 11:58:16 2019 +0100 arm64: dts: renesas: ebisu: Add PMIC DDR0 Backup Power config On Ebisu the DDR0 power rail needs to be kept powered when backup mode is enabled. Reflect this in the "rohm,ddr-backup-power" property for the BD9571MWV PMIC node. The accessory power switch (SW23) is a toggle switch, hence specify "rohm,rstbmode-level". Based on advice from Geert Uytterhoeven. Signed-off-by: Simon Horman Reviewed-by: Geert Uytterhoeven Tested-by: Geert Uytterhoeven commit 1f4c123a98098cce0c172264de7da4fab1ff71b9 Author: Takeshi Kihara Date: Wed Mar 13 11:58:15 2019 +0100 arm64: dts: renesas: r8a77990-ebisu: Add BD9571 PMIC This patch adds the regulator definition required for operation of S2RAM. Signed-off-by: Takeshi Kihara Signed-off-by: Yoshihiro Kaneko Signed-off-by: Simon Horman Reviewed-by: Geert Uytterhoeven Tested-by: Geert Uytterhoeven commit af965ba3248edde50c2a57b9c719b419e2feca94 Author: Niklas Söderlund Date: Wed Mar 6 13:39:26 2019 +0100 arm64: dts: renesas: r8a77990: Remove invalid compatible value for CSI40 The compatible value renesas,rcar-gen3-csi2 was used while prototyping the R-Car CSI-2 driver but was removed before the driver was merged. Remove the only occurrence of the compatible value which manage to make it upstream. Fixes: ec70407ae7d7 ("arm64: dts: renesas: r8a77990: Add VIN and CSI-2 device nodes") Signed-off-by: Niklas Söderlund Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman commit 82ec009297bc573e6aace629181d13ed6ce3772f Author: Niklas Söderlund Date: Sun Mar 10 14:06:11 2019 +0100 arm64: dts: renesas: r8a774c0: Remove invalid compatible value for CSI40 The compatible value renesas,rcar-gen3-csi2 was used while prototyping the R-Car CSI-2 driver but was removed before the driver was merged. Fixes: e961ab42e034d469 ("arm64: dts: renesas: r8a774c0: Add VIN and CSI-2 device nodes") Signed-off-by: Niklas Söderlund Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman commit 4162aa9db3d44691c6ca67eacfe0099723684506 Author: Marek Vasut Date: Sat Mar 9 03:06:42 2019 +0100 arm64: dts: renesas: r8a77995: draak: Enable CAN0, CAN1 Enable both CAN0 and CAN1 controllers on R8A77995 Draak board, since they are available on connectors CN43, CN44 respectively. Signed-off-by: Marek Vasut Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman commit 79223ca1f57776d2770da9561c26cc2f2dd42205 Author: Fabrizio Castro Date: Wed Mar 6 11:29:45 2019 +0000 arm64: dts: renesas: r8a774c0-cat874: Add RWDT support Enable RWDT and use 60 seconds as default timeout. Signed-off-by: Fabrizio Castro Reviewed-by: Chris Paterson Signed-off-by: Simon Horman commit a8f6110e64422d5c28046e6be7e8adcee929a418 Author: Takeshi Kihara Date: Sun Feb 17 00:58:54 2019 +0100 arm64: dts: renesas: ebisu: Enable VIN5 Both VIN4 and VIN5 are connected to CSI40 and can be configured at runtime to use the single video source connected to CSI40. Enable VIN5 to allow it to be used in this fashion. Signed-off-by: Takeshi Kihara [Niklas: rewrite commit message] Signed-off-by: Niklas Söderlund Reviewed-by: Kieran Bingham Signed-off-by: Simon Horman commit dc0b439471323521a20314934080f51e8589fd19 Author: Fabrizio Castro Date: Fri Mar 1 11:03:32 2019 +0000 arm64: dts: renesas: r8a774c0-cat874: Add LEDs support This patch adds LEDs support to the CAT874 board specific device tree. Signed-off-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman commit 07e72397f722d3a522991dcba82ce2ddb8c3c6e1 Author: Biju Das Date: Thu Feb 21 09:40:48 2019 +0000 arm64: dts: renesas: r8a774c0-cat874: add RTC support This patch adds Epson RX-8571 real time clock support. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman commit e64f2c4b3aba6832758afe030ea4a703148546d7 Author: Fabrizio Castro Date: Fri Mar 1 11:02:37 2019 +0000 arm64: dts: renesas: cat875: Add CAN support Add CAN support to the CAT875 sub board. Signed-off-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman commit 12ce412b2cc6aea88c9c93e6303372f72014efc6 Author: Fabrizio Castro Date: Fri Feb 15 12:26:29 2019 +0000 arm64: dts: renesas: r8a774c0: Fix cpu nodes style We usually leave a space between "=" and the value of device tree properties, but unfortunately that was overlooked for the "clocks" property of cpu@0 and cpu@1. This patch fixes the spacing with the "clocks" property of cpu@0 and cpu@1. Signed-off-by: Fabrizio Castro Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman commit 191f7dcd1f5ea1f39abc94cece6156c9fa045974 Author: Jiada Wang Date: Mon Feb 25 13:39:41 2019 +0100 arm64: dts: renesas: r8a77965: add SSIU support for sound rsnd driver supports SSIU now, let's use it. Then, BUSIF DMA settings on rcar_sound,ssi (= rxu, txu) are no longer needed. Applies commit 8d14bfa074db ("arm64: dts: renesas: r8a7796: add SSIU support for sound") and commit 10bd03fa896e ("arm64: dts: renesas: r8a7796: remove BUSIF0 settings from rcar_sound,ssi") for r8a77965. Signed-off-by: Jiada Wang Signed-off-by: Timo Wischer Acked-by: Kuninori Morimoto Signed-off-by: Simon Horman commit 9130c15829846fae56ea729f42d1894b8413f89b Author: Takeshi Kihara Date: Sun Feb 17 00:58:53 2019 +0100 arm64: dts: renesas: ebisu: Fix adv7482 hexadecimal register address The register address used for the reg property of the adv7482 node in other Renesas device trees are decimal not hex, change this for Ebisu to align it with the others. Signed-off-by: Takeshi Kihara [Niklas: rewrite commit message] Signed-off-by: Niklas Söderlund Acked-by: Kieran Bingham Signed-off-by: Simon Horman commit 9a0ff5c727b60a3afefc71407612e515f7a51ef3 Author: Laurent Pinchart Date: Wed Jan 23 00:54:05 2019 +0200 arm64: dts: renesas: r8a77995: draak: Enable LVDS1 encoder The LVDS1 encoder must supply a pixel clock to the DU for the DPAD output when the LVDS0 encoder is used. Enable it despite its output not being connected. Signed-off-by: Laurent Pinchart Signed-off-by: Simon Horman commit 71ac75dffdae2f885e46d0a79d9bd1374f5f29a7 Author: Laurent Pinchart Date: Wed Jan 23 00:54:04 2019 +0200 arm64: dts: renesas: r8a77990: ebisu: Enable LVDS1 encoder The LVDS1 encoder must supply a pixel clock to the DU for the DPAD output when the LVDS0 encoder is used. Enable it despite its output not being connected. Signed-off-by: Laurent Pinchart Signed-off-by: Simon Horman commit 96c25882252704dc3167367f70977569f4116fcd Author: Jiada Wang Date: Fri Feb 22 10:34:59 2019 +0100 arm64: dts: renesas: r8a7796: remove unneeded sound #address/size-cells commit 78bc93b3ffb2 ("arm64: dts: renesas: r8a7796: Add address properties to rcar_sound port nodes") added missing #address-cells and #size-cells for sound ports. But, these are based on platform, not on SoC. This patch cleanups it. Signed-off-by: Jiada Wang Signed-off-by: Timo Wischer Acked-by: Kuninori Morimoto Signed-off-by: Simon Horman commit b068ed6efe6244d3cdf6965ffa9668eeea434dcb Author: Geert Uytterhoeven Date: Tue Feb 12 16:21:29 2019 +0100 arm64: dts: renesas: r8a77990: Fix SPDX license identifier style According to Documentation/process/license-rules.rst, SPDX license identifiers in DTS files should use C++ style comments. Fixes: f37a7767f6c4ec66 ("arm64: dts: renesas: Add Renesas R8A77990 SoC support") Fixes: 77049191b24b4586 ("arm64: dts: renesas: Add Renesas Ebisu board support") Signed-off-by: Geert Uytterhoeven Signed-off-by: Simon Horman commit 6fffb98645e67b5203e58d5acdfc460eeda51a06 Author: Geert Uytterhoeven Date: Tue Feb 12 15:20:00 2019 +0100 arm64: dts: renesas: r8a77990: ebisu: Add GPIO expander Describe the ON Semiconductor PCA9654 I/O expander on the first I2C bus, which provides 8 extra GPIOs. Signed-off-by: Geert Uytterhoeven Reviewed-by: Niklas Söderlund Signed-off-by: Simon Horman commit 940d1a288a598ee18afa25ee74f4ca124bddd364 Author: Biju Das Date: Thu Feb 21 09:40:47 2019 +0000 arm64: defconfig: enable RX-8581 config option Enable support for RX-8571/RX-8581 RTC by turning on CONFIG_RTC_DRV_RX8581 as module. Signed-off-by: Biju Das Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman commit 115bbc30c6d2d7c8eddf87f88c1b7033522d47d2 Author: Wen Yang Date: Fri Mar 1 16:56:49 2019 +0800 ARM: shmobile: fix a leaked reference by adding missing of_node_put The call to of_get_next_child returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: ./arch/arm/mach-shmobile/pm-rcar-gen2.c:77:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 66, but without a corresponding object release within this function. ./arch/arm/mach-shmobile/pm-rcar-gen2.c:85:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 66, but without a corresponding object release within this function. ./arch/arm/mach-shmobile/pm-rcar-gen2.c:90:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 66, but without a corresponding object release within this function. Signed-off-by: Wen Yang Reviewed-by: Florian Fainelli Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman commit d5aa84087eadd6f2619628bc9f3d028eeabded0f Author: Marek Vasut Date: Sun Mar 3 20:41:40 2019 +0100 ARM: shmobile: porter: enable R-Car Gen2 regulator quirk Porter needs the regulator quirk, just like the other boards. But unlike the other boards, the Porter uses DA9063L, which is at 0x5a. Otherwise, DA9063L and DA9210 IRQ line is still connected to CPU IRQ2 . Signed-off-by: Marek Vasut Acked-by: Wolfram Sang Reviewed-by: Geert Uytterhoeven Signed-off-by: Simon Horman commit 2e35bb6cd421fa2c488a82432a14ac2c894846fd Author: Andrey Smirnov Date: Sun Mar 10 23:27:37 2019 -0700 gpio: vf610: Don't use explicit &pdev->dev in vf610_gpio_probe() The code already defines "dev" variable to help with that, so make sure all of the code uses it. Signed-off-by: Andrey Smirnov Cc: Linus Walleij Cc: Bartosz Golaszewski Cc: Chris Healy Cc: Andrew Lunn Cc: Heiner Kallweit Cc: Fabio Estevam Cc: linux-gpio@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-imx@nxp.com Signed-off-by: Bartosz Golaszewski commit a74b4b11541a1c262713452a723833ffe7c123c3 Author: Andrey Smirnov Date: Sun Mar 10 23:27:36 2019 -0700 gpio: vf610: Use devres to remove gpiochip Now that the driver's custom remove hook contains only a single action, replace it by converting the code to use devm_gpiochip_add_data() to simplify things. Signed-off-by: Andrey Smirnov Cc: Linus Walleij Cc: Bartosz Golaszewski Cc: Chris Healy Cc: Andrew Lunn Cc: Heiner Kallweit Cc: Fabio Estevam Cc: linux-gpio@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-imx@nxp.com Signed-off-by: Bartosz Golaszewski commit fc57949cfd1f1060a6154e45ebeeb80ac85bd499 Author: Andrey Smirnov Date: Sun Mar 10 23:27:35 2019 -0700 gpio: vf610: Use devres to disable clk_gpio Clk_gpio should be disabled in all error paths in the code that follws, including the case when either gpiochip_add_data() or gpiochip_irqchip_add() fail. To simplify things fix this by using devm_add_action() to disable corresponding clock in case of any erros as well as driver/device removal. Signed-off-by: Andrey Smirnov Cc: Linus Walleij Cc: Bartosz Golaszewski Cc: Chris Healy Cc: Andrew Lunn Cc: Heiner Kallweit Cc: Fabio Estevam Cc: linux-gpio@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-imx@nxp.com Signed-off-by: Bartosz Golaszewski commit db9ed63ca510ecb3df0b4fec170830a96017b7d1 Author: Andrey Smirnov Date: Sun Mar 10 23:27:34 2019 -0700 gpio: vf610: Use devres to disable clk_port Clk_port should be disabled in all error paths in the code that follws, including the case when either gpiochip_add_data() or gpiochip_irqchip_add() fail. To simplify things fix this by using devm_add_action_or_reset() to disable corresponding clock in case of any erros as well as driver/device removal. Signed-off-by: Andrey Smirnov Cc: Linus Walleij Cc: Bartosz Golaszewski Cc: Chris Healy Cc: Andrew Lunn Cc: Heiner Kallweit Cc: Fabio Estevam Cc: linux-gpio@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-imx@nxp.com Signed-off-by: Bartosz Golaszewski commit 4a8909d0228133ec02ffac76590c055e593e8185 Author: Andrey Smirnov Date: Sun Mar 10 23:27:33 2019 -0700 gpio: vf610: Simplify vf610_gpio_get() Both branches of the if statement do exactly the same thing, just at different offsets. Simplify the code a bit by moving shared action code outside of the if statement. No functional change intended. Signed-off-by: Andrey Smirnov Cc: Linus Walleij Cc: Bartosz Golaszewski Cc: Chris Healy Cc: Andrew Lunn Cc: Heiner Kallweit Cc: Fabio Estevam Cc: linux-gpio@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-imx@nxp.com Signed-off-by: Bartosz Golaszewski commit a262555bc68561dc861cb24d3bd432fd6ce4f868 Author: Andrey Smirnov Date: Sun Mar 10 23:27:32 2019 -0700 gpio: vf610: Simplify vf610_gpio_set() The only difference between two codepaths is register offset used. Simplify the code a bit by replacing explicit calls with a single call with a variable offset. No functional change intended. Signed-off-by: Andrey Smirnov Cc: Linus Walleij Cc: Bartosz Golaszewski Cc: Chris Healy Cc: Andrew Lunn Cc: Heiner Kallweit Cc: Fabio Estevam Cc: linux-gpio@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-imx@nxp.com Signed-off-by: Bartosz Golaszewski commit 338aa10750ba24d04beeaf5dc5efc032e5cf343f Author: Andrey Smirnov Date: Sun Mar 10 23:27:31 2019 -0700 gpio: vf610: Do not share irq_chip Fix the warning produced by gpiochip_set_irq_hooks() by allocating a dedicated IRQ chip per GPIO chip/port. Signed-off-by: Andrey Smirnov Cc: Linus Walleij Cc: Bartosz Golaszewski Cc: Chris Healy Cc: Andrew Lunn Cc: Heiner Kallweit Cc: Fabio Estevam Cc: linux-gpio@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-imx@nxp.com Signed-off-by: Bartosz Golaszewski commit fb903392131a324a243c7731389277db1cd9f8df Author: Jonas Karlman Date: Sun Mar 10 12:00:45 2019 +0000 clk: rockchip: fix wrong clock definitions for rk3328 This patch fixes definition of several clock gate and select register that is wrong for rk3328 referring to the TRM and vendor kernel. Also use correct number of softrst registers. Fix clock definition for: - clk_crypto - aclk_h265 - pclk_h265 - aclk_h264 - hclk_h264 - aclk_axisram - aclk_gmac - aclk_usb3otg Fixes: fe3511ad8a1c ("clk: rockchip: add clock controller for rk3328") Cc: stable@vger.kernel.org Signed-off-by: Jonas Karlman Tested-by: Peter Geis Signed-off-by: Heiko Stuebner commit 1a4e6203f0c870aab89eb6727759374fddb071aa Author: Robin Murphy Date: Fri Mar 15 01:05:30 2019 +0000 arm64: dts: rockchip: Add nanopi4 ethernet phy The nanopi4 boards have the INTB pin of the RTL8211E phy wired up, so we can make use of that and avoid having to poll for line status changes. Apparently RTL8211E only requires 30ms of post-reset delay, so we may as well save a little bit of time there as well. Signed-off-by: Robin Murphy Signed-off-by: Heiko Stuebner commit 980b52162871bcf08b7d6457ce3100012096451a Author: Robin Murphy Date: Fri Mar 15 01:05:53 2019 +0000 arm64: dts: rockchip: Add PWM fan for NanoPC-T4 NanoPC-T4 has a dedicated circuit for driving a 12V fan from PWM1, so let's add that along with some rough empirically-derived thermal settings for the benefit of anyone determined enough to hook one up. The vendor does not currently offer a suitable fan, but this seems as good a place as any to note that pre-terminated 3-pin JST GH connectors are readily available online, and if you even have to ask, then splicing one of those really will be orders of magnitude cheaper and simpler than getting set up to crimp the teeny-tiny things by hand. Signed-off-by: Robin Murphy Signed-off-by: Heiko Stuebner commit 5e3f8027897c59e5c59918d544f1344527e43406 Author: Alexis Ballier Date: Fri Mar 15 15:58:21 2019 +0100 arm64: dts: rockchip: Add the fusb typec manager to rk3399-orangepi Also rename its regulator to match the schematic names. Signed-off-by: Alexis Ballier Signed-off-by: Heiko Stuebner commit ba12fdd5108573b07894b1749a1859bee4f1b792 Author: Alexis Ballier Date: Fri Mar 15 15:58:19 2019 +0100 arm64: dts: rockchip: Specify vid supply for the rk3399-orangepi compass (AK09911) Despite this not being mentioned in the binding documentation, this generates a log at boot about it being missing. Signed-off-by: Alexis Ballier Signed-off-by: Heiko Stuebner commit f5639599de4c6343e8092300bd875b8dc0d76ffd Author: Alexis Ballier Date: Fri Mar 15 15:58:17 2019 +0100 arm64: dts: rockchip: Fix clock names and add missing supplies for bluetooth on rk3399-orangepi Clock name was wrong, vbat & vddio supplies were missing. Signed-off-by: Alexis Ballier Signed-off-by: Heiko Stuebner commit 16d79ec6e3e6a00007accfed9bd5caee7acf0e48 Author: Jagan Teki Date: Mon Mar 11 20:33:31 2019 +0530 arm64: dts: rockchip: Add 12V DCIN regulator to rk3399-ficus 12V DCIN regulator is root source supply for the rest of regulators in Rock960 power diagram. Add support for it and attach same to supply vcc5v0_sys. Signed-off-by: Jagan Teki Signed-off-by: Akash Gajjar Signed-off-by: Heiko Stuebner commit 4d7f36d36f738fe8bcb06dfbab6b24e2e1ceff58 Author: Jagan Teki Date: Mon Mar 11 20:33:30 2019 +0530 arm64: dts: rockchip: Rename vcc_sys into vcc5v0_sys on rk3399-rock960 It is always better practice to follow regulator naming conventions as per the schematics for future references. So, rename vcc_sys into vcc5v0_sys as per rk3399 power diagram of rock960 schematics. Signed-off-by: Jagan Teki Signed-off-by: Akash Gajjar Signed-off-by: Heiko Stuebner commit 092470b537f19788d957aed12d835a179b606014 Author: Jagan Teki Date: Fri Mar 8 23:42:02 2019 +0530 arm64: dts: rockchip: Add Nanopi NEO4 initial support FriendlyElec NanoPi NEO4 is known to be a revision 4 based NanoPi4 series of boards. Most of know peripherals are shared between Nanopi M4 vs NEO4, except - 1GB DDR3 - USB Host ports - Missing DSI port - USB 2.0 Host with USB2PHY0 (no USB2PH1) Add support for it, by reusing existing rk3399-nanopi4.dtsi Signed-off-by: Jagan Teki Signed-off-by: Akash Gajjar Reviewed-by: Rob Herring Signed-off-by: Heiko Stuebner commit a0dbc5c97f67db4d7ea66ee93a5e8a696a73823c Author: Katsuhiro Suzuki Date: Thu Feb 21 00:12:26 2019 +0900 arm64: dts: rockchip: enable hdmi audio out for rk3399-rockpro64 The rockpro64 has hdmi support. So this patch enables hdmi audio feature that is defined in rk3399 devicetree. Signed-off-by: Katsuhiro Suzuki Signed-off-by: Heiko Stuebner commit 08b64bd2c681ab8bd67fbf1d34d092d1bb72ede4 Author: Alexis Ballier Date: Fri Feb 22 19:44:19 2019 +0100 arm64: dts: rockchip: Add support for the Orange Pi RK3399 board. This adds basic support for the Orange Pi RK3399 board. What works: - SD card / emmc. - Debug UART - Ethernet - USB: Type C, internal USB3 for SATA, 4 USB 2.0 ports - Sensors: All of them but the Hall sensor. - Buttons - Wifi, Bluetooth - HDMI out Signed-off-by: Alexis Ballier Reviewed-by: Rob Herring Signed-off-by: Heiko Stuebner commit e38b144b82529d2e12ce815fab3d0bd6984a8d5f Author: Ezequiel Garcia Date: Mon Feb 18 06:58:57 2019 -0300 arm64: dts: rockchip: enable mali on rock960 boards Enable the mali gpu node. Signed-off-by: Ezequiel Garcia Signed-off-by: Heiko Stuebner commit 0f9e535a0884d341f6d72fe8f63e9bb34fd269d7 Author: Ezequiel Garcia Date: Mon Feb 18 07:05:55 2019 -0300 arm64: dts: rockchip: enable mali on Rock Pi 4 Enable the mali gpu node. Signed-off-by: Ezequiel Garcia Signed-off-by: Heiko Stuebner commit f77e7a9aafe1e422b0646cfdac40d03f594eca5b Author: Leonidas P. Papadakos Date: Fri Mar 1 20:07:21 2019 +0200 arm64: dts: rockchip: add rk3328-roc-cc cpu-supply entries for all cpu nodes In line with the rock64 dts, specify the cpu-supply for the other cpus as well Signed-off-by: Leonidas P. Papadakos Signed-off-by: Heiko Stuebner commit 3f0effd7490b23118f1b278f529ca45de27f4eb7 Author: Leonidas P. Papadakos Date: Sun Mar 3 01:18:33 2019 +0200 arm64: dts: rockchip: give some life to the rk3328-roc-cc leds Assign the LEDs to heartbeat and sdcard io, as in other RK boards. https://github.com/armbian/build/commit/f1affad5c7be62d6e93832af3556c7609edd0858 Suggested-by: Juan Cano Signed-off-by: Leonidas P. Papadakos Signed-off-by: Heiko Stuebner commit 3e892ed20c08874be29767c854d8d13664ef1807 Author: Katsuhiro Suzuki Date: Mon Feb 18 02:34:06 2019 +0900 arm64: dts: rockchip: add #sound-dai-cells to HDMI of rk3328 This patch adds #sound-dai-cells to use HDMI node as audio codec from device tree of rk3328 boards. Signed-off-by: Katsuhiro Suzuki Signed-off-by: Heiko Stuebner commit e31882e05ae58f733e0805338bbe317f5f95bb9f Author: Jonas Karlman Date: Sat Mar 2 17:03:14 2019 +0000 arm64: dts: rockchip: add ir-receiver node on rk3328-rock64 Add ir-receiver node to enable on-board IR on Rock64. Signed-off-by: Jonas Karlman Signed-off-by: Heiko Stuebner commit 092430ea9d144bf34db2d1c8d27ad6d6f3d9505d Author: Jonas Karlman Date: Sat Mar 2 17:00:25 2019 +0000 arm64: dts: rockchip: add leds node on rk3328-rock64 Add led nodes on Rock64. Use heartbeat trigger for the red standby led and use mmc0 trigger for the white power led. Signed-off-by: Jonas Karlman Signed-off-by: Heiko Stuebner commit ad3c8cc359a25826173b05f30f3d828cc5759d94 Author: Jonas Karlman Date: Sat Mar 2 16:56:57 2019 +0000 arm64: dts: rockchip: fix regulator name on rk3328-rock64 Update regulator-name to match node and schematics. Signed-off-by: Jonas Karlman Signed-off-by: Heiko Stuebner commit 443f27e589819e3174336e613b8994ac9c7f9341 Author: Jonas Karlman Date: Sat Mar 2 16:37:09 2019 +0000 arm64: dts: rockchip: enable HDMI CEC on rk3328 This patch enables HDMI CEC on RK3328 devices. (Unusual) source for the cec clock is taken from the vendor kernel. Signed-off-by: Jonas Karlman Signed-off-by: Heiko Stuebner commit 97df3aa76b4a384e29668f374a8b1034a31aa215 Author: Marc Zyngier Date: Sat Mar 2 13:10:30 2019 +0000 arm64: dts: rockchip: Add capacity-dmips-mhz attributes to rk3399 The RK3399 has the interesting property to be a so called "big-little" system, where not all the CPUs are equal (the A53s are much weaker than the A72s). So far, we're not telling the OS that there is such a difference in processing capacity, and Linux assumes that they are equal. Too bad. Let's tell the OS about this by using the capacity-dmips-mhz property. The values used here are those used on the Juno platform, which is quite similar. This leads to the scheduler knowing that it can pack more tasks on the A72s, and leads to a better interactive experience. Tested-by: Robin Murphy Signed-off-by: Marc Zyngier Signed-off-by: Heiko Stuebner commit a008eae6956ac774a220f96de1af6a731e89ceac Author: David Summers Date: Sat Mar 9 15:39:22 2019 +0000 ARM: dts: rockchip: Enable WiFi on rk3288-tinker This patch adds wifi support to the ASUS Tinker Board (S) machines. This is provided by an wifi card (RTL8723BS) wired into the sdio interface. It requires certain pins pulled, to enable the WiFi. The schematics for these board do not show the WiFi connection, so the connections have been taken from: https://github.com/TinkerBoard/debian_kernel/blob/develop/arch/arm/boot/dts/rk3288-miniarm.dts In particular the pulling of two pins. Co-developed-by: Stefan Wahren Signed-off-by: David Summers Signed-off-by: Stefan Wahren Tested-by: Tony McKahan Signed-off-by: Heiko Stuebner commit 494da92d56e45c88966fab4db2bed1a2f300c5f8 Author: Jonas Karlman Date: Sun Feb 24 21:52:00 2019 +0000 ARM: dts: rockchip: add grf reference in rk3288 tsadc node The following message can be seen during boot: rockchip-thermal ff280000.tsadc: Missing rockchip,grf property Fix this by adding rockchip,grf property to tsadc node. The warning itself is not relevant on rk3288 right now, as the tsadc doesn't need to set GRF-values at this point and only newer variants do. Signed-off-by: Jonas Karlman Signed-off-by: Heiko Stuebner commit 61346668325f17444f855b42df673f16d2baa7db Author: Jonas Karlman Date: Sun Feb 24 20:10:06 2019 +0000 ARM: dts: rockchip: Enable HDMI CEC on rk3288-tinker-s This patch enables HDMI CEC on Tinker Board S Signed-off-by: Jonas Karlman Signed-off-by: Heiko Stuebner commit de72618cb94f0487bb74eca35749d1f500f8de73 Author: Johan Jonker Date: Sun Mar 10 16:19:28 2019 +0100 ARM: dts: rockchip: remove disable-wp from rv1108-elgin-r1 emmc node The mmc.txt didn't explicitly say disable-wp is for SD card slot only, but that is what it was designed for in the first place. Remove all disable-wp from emmc or sdio controllers. Signed-off-by: Johan Jonker Reviewed-by: Shawn Lin Signed-off-by: Heiko Stuebner commit 2b062a0a00ab31192bb12c0d8c1c71458b12bbed Author: Wen Yang Date: Tue Mar 5 19:34:01 2019 +0800 ARM: sunxi: fix a leaked reference by adding missing of_node_put The call to of_get_next_child returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: ./arch/arm/mach-sunxi/platsmp.c:55:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 46, but without a corresponding object release within this function. ./arch/arm/mach-sunxi/platsmp.c:138:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 129, but without a corresponding object release within this function. Signed-off-by: Wen Yang Reviewed-by: Florian Fainelli Cc: Maxime Ripard Cc: Chen-Yu Tsai Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org Signed-off-by: Maxime Ripard commit 995c770b6588c84fbe41cd00bc9911c995df2b59 Author: Wen Yang Date: Tue Mar 5 19:32:57 2019 +0800 ARM: sunxi: fix a leaked reference by adding missing of_node_put The call to of_get_next_child returns a node pointer with refcount incremented thus it must be explicitly decremented after the last usage. Detected by coccinelle with the following warnings: ./arch/arm/mach-sunxi/mc_smp.c:110:1-7: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 97, but without a corresponding object release within this functio ./arch/arm/mach-sunxi/platsmp.c:138:2-8: ERROR: missing of_node_put; acquired a node pointer with refcount incremented on line 129, but without a corresponding object release within this function Signed-off-by: Wen Yang Cc: Maxime Ripard Cc: Chen-Yu Tsai Cc: Russell King Cc: linux-arm-kernel@lists.infradead.org Cc: linux-kernel@vger.kernel.org (open list) Signed-off-by: Maxime Ripard commit a7f7047ffcee52fa5b8551a3be70fd5267be89a3 Author: Maxime Ripard Date: Thu Mar 14 21:16:25 2019 +0100 arm64: dts: allwinner: a64: Add cross links for the mixers Unlike what the binding for multiple pipeline documents, the A64 doesn't have the cross links between the TCON and the mixers. Let's add them. Acked-by: Chen-Yu Tsai Signed-off-by: Maxime Ripard commit 00f7980a3bd53d12abc34f68146a8eed0e894248 Author: Jagan Teki Date: Wed Mar 6 22:31:10 2019 +0530 arm64: allwinner: a64: Add Oceanic 5205 5inMFD initial support Oceanic 5205 5inMFD is a 5 inch Multi function display baseboard designed to mount SoPine SOM. Key features: - Allwinner A64 Cortex-A53 - Mali-400MP2 GPU - AXP803 PMIC - 2GB DDR3 RAM - SD Slot - SPI-NOR flash - EMAC, RTL8211E - MCP2515 CAN - 4-lane, MIPI-DSI panel - Goodix 911 CTP - USB Host - 12V DC power supply Signed-off-by: Jagan Teki Signed-off-by: Maxime Ripard commit 876d8a25bdd5a2f5bd18a86e05eaca13d6964c50 Author: Jagan Teki Date: Wed Mar 6 22:31:09 2019 +0530 dt-bindings: Add vendor prefix for oceanic Add oceanic vendor prefix. Oceanic Systems (UK) Ltd design and manufacture world-class marine systems for control and monitoring vessels. Signed-off-by: Jagan Teki Signed-off-by: Maxime Ripard commit ea738c324c7d80ef6267f91dc980ada902cf74f6 Author: Jagan Teki Date: Fri Mar 1 22:40:51 2019 +0530 arm64: dts: allwinner: a64-amarula-relic: Add STLM75 sensor Amarula A64 Relic has STLM75 sensor for digital temperature and thermal watchdog. Add support for it. Signed-off-by: Jagan Teki Signed-off-by: Maxime Ripard commit 24bd5d2cb93bc282e3c15e4d10fcd3210192f954 Author: Harald Geyer Date: Sat Feb 9 10:40:18 2019 +0000 arm64: dts: allwinner: a64: teres-i: enable backlight Enable pwm and add a pretty standard backlight node. The regulator is always on, but we include it anyway, because it is required by the binding document. Signed-off-by: Harald Geyer Signed-off-by: Maxime Ripard commit 89232872319f6a93c91162f07c10dfd630b305b1 Author: Jagan Teki Date: Tue Feb 26 12:58:12 2019 +0530 arm64: defconfig: Enable SPI_SUN6I Enable SUN6I SPI controller for Allwinner ARM64 SoC's. This would helpful to setup spi flash, for another booting source. mark it as static since it require during boot. Signed-off-by: Jagan Teki Signed-off-by: Maxime Ripard commit 6630aad719bc0a46dcc4a6732ab783c4c9b80f88 Author: Icenowy Zheng Date: Thu Mar 14 19:21:08 2019 +0800 clk: sunxi-ng: f1c100s: fix USB PHY gate bit offset The bit offset of the USB PHY clock gate on F1C100s should be 1, not 8. Fix this problem. Fixes: 0380126eb9af ("clk: sunxi-ng: add support for suniv F1C100s SoC") Signed-off-by: Icenowy Zheng Signed-off-by: Maxime Ripard commit ab65e04dc101d55f1509059725cf9d331141f6e8 Author: Jernej Skrabec Date: Thu Feb 28 21:03:27 2019 +0100 clk: sunxi-ng: Allow DE clock to set parent rate DE2/DE3 mixers have to run at specific frequency in order to work optimally. This wasn't actually possible for some SoCs because "de" clock wasn't allowed to adjust parent rate. Add CLK_SET_RATE_PARENT flag to all "de" clocks which didn't have it yet. Signed-off-by: Jernej Skrabec Signed-off-by: Maxime Ripard commit 28ff811f58b1841be63692601dee771a09afc7d6 Author: Paul Kocialkowski Date: Fri Mar 15 13:38:28 2019 +0100 ARM: dts: sun8i-h3: Add support for the RerVision H3-DVK board This is an H3-based board that sticks close to the reference design. Supported features: * UART * DRAM * MMC * eMMC * Ethernet * USB host * USB peripheral * HDMI Signed-off-by: Paul Kocialkowski Signed-off-by: Maxime Ripard commit 043ad6b1c112b176b996508988d137493da2f105 Author: Emanuel Bennici Date: Sun Mar 17 19:31:13 2019 +0100 staging: rtl8723bs: Remove Dead Code in core/rtw_mlme.c The Functions `void rtw_surveydone_event_callback`, `void rtw_indicate_connect`, `void rtw_stadel_event_callback` and `void _rtw_join_timeout_handler` are using the Macro CONFIG_INTEL_WIDI which doesn't exists anymore. Signed-off-by: Emanuel Bennici Signed-off-by: Greg Kroah-Hartman commit 1b818345d1c1a4d324f3c22cae8f09ad1a0284bb Author: Emanuel Bennici Date: Sun Mar 17 19:31:12 2019 +0100 staging: rtl8723bs: Remove Dead Functions in os_dep/ioctl_linux.c The Functions `static int rtw_widi_set()` and `static int rtw_widi_set_probe_request()` part of dead code due to CONFIG_INTEL_WIDI. The fix removes the deadcode. Signed-off-by: Emanuel Bennici Signed-off-by: Greg Kroah-Hartman commit ba61d2dc45b054a8e80b004b384cc5328d4c48a6 Author: Emanuel Bennici Date: Sun Mar 17 19:31:11 2019 +0100 staging: rtl8723bs: Remove Dead Code in os_dep/ioctl_linux.c Remove Dead Code in `static int rtw_wps_start`, `struct iw_handler rtw_private_handler[]` and `struct iw_priv_args rtw_private_args[]` since they use the Macro CONFIG_INTEL_WIDI witch doesn't exists any more. Signed-off-by: Emanuel Bennici Signed-off-by: Greg Kroah-Hartman commit 320d197d13367b70b7ffb7baf17f785c25f93883 Author: Emanuel Bennici Date: Sun Mar 17 19:31:10 2019 +0100 staging: rtl8723bs: Remove Dead Code in os_dep/os_intfs.c The Functions `u8 rtw_init_drv_sw` and `u8 rtw_free_drv_sw` uses the Macro CONFIG_INTEL_WIDI witch doesn't exists anymore. This Patch removes those redundant Code Lines. Signed-off-by: Emanuel Bennici Signed-off-by: Greg Kroah-Hartman commit bd10cd97e213d8d7b693b42c9e11af2781fb95f2 Author: Emanuel Bennici Date: Sun Mar 17 19:31:09 2019 +0100 staging: rtl8723bs: Remove Dead Code in os_dep/os_intfs.c `uint loadparam` uses the Macro CONFIG_INTEL_WIDI witch doesn't exists anymore. Signed-off-by: Emanuel Bennici Signed-off-by: Greg Kroah-Hartman commit 3fc9413bcdc76a16365f54087b28f1875fd31286 Author: Emanuel Bennici Date: Sun Mar 17 19:31:08 2019 +0100 staging: rtl8723bs: Remove unreachable Code in core/rtw_cmd.c The `case INTEl_WIDI_WK_CID`-Statement in Function `u8 rtw_drvextra_cmd_hdl` wouldn't be used because of CONFIG_INTEL_WIDI. Signed-off-by: Emanuel Bennici Signed-off-by: Greg Kroah-Hartman commit 391d9469abd8c5be31b76b73abe6cc77846f2831 Author: Emanuel Bennici Date: Sun Mar 17 19:31:07 2019 +0100 staging: rtl8723bs: Remove old unreachable Code The commented code in core/rtw_mlme_ext.c obsolete because the macro CONFIG_INTEL_WIDI no longer exists. Signed-off-by: Emanuel Bennici Signed-off-by: Greg Kroah-Hartman commit 8ecd30a6685eddcba97d4afa7e3f181ca18304f0 Author: Emanuel Bennici Date: Sun Mar 17 19:31:06 2019 +0100 staging: rtl8723bs: Remove Dead Code in collect_bss_info Function In `u8 collect_bss_info` is a ifdef-Preprocessor who checks CONFIG_INTEL_WIDI, since this Macro doesn't exists anymore this Patch removes the Dead Code in core/rtw_mlme_ext.c Signed-off-by: Emanuel Bennici Signed-off-by: Greg Kroah-Hartman commit 93bb0b1b18a386058d2c48aac3aef2da24c3893d Author: Emanuel Bennici Date: Sun Mar 17 19:31:05 2019 +0100 staging: rtl8723bs: Remove Dead Include in include/drv_types.h `rtw_intel_widi.h` is never included due to CONFIG_INTEL_WIDI. This Patch removes the dead code. Signed-off-by: Emanuel Bennici Signed-off-by: Greg Kroah-Hartman commit 0531d4c9542599f00c12cb553713874213df6416 Author: Emanuel Bennici Date: Sun Mar 17 19:31:04 2019 +0100 staging: rtl8723bs: Remove Dead Code in `struct mlme_priv` Some Lines in the struct mlme_priv are Dead due to CONFIG_INTEL_WIDI. This Fix removes the dead code. Signed-off-by: Emanuel Bennici Signed-off-by: Greg Kroah-Hartman commit ed98730d9f25290b157839ccc0f925b53afa7b6a Author: Ignacio Losiggio Date: Sun Mar 17 22:15:36 2019 -0300 staging: gdm724x: Do not break expressions When the entire expression can be shown in the same line breaking it makes it more difficult to read. Signed-off-by: Ignacio Losiggio Signed-off-by: Greg Kroah-Hartman commit a02da43c814b532943c777353ba73cdcab547ade Author: Sanjana Sanikommu Date: Sun Mar 17 20:59:38 2019 +0530 staging: rtl8188eu: core: rtw_recv.c: Fix a tab indent issue Fix a tab indent issue which removed warnings after compilation using checkpatch.pl. [WARNING]:No extra space at the beginning of a line. Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit 5c4f2259181f77076018c6848f0fa610dd25e34b Author: Sanjana Sanikommu Date: Sun Mar 17 21:05:02 2019 +0530 staging: rtl8188eu: core: rtw_recv.c: fix a paranthesis issue around pframe -> list in rtw_recv.c Remove unnecessary parathesis issue around '->' . Issue found by checkpatch.pl semantic patch results for rtw_recv.c CHECK: Remove unnecessary paranthesis around pframe -> list Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit 0842eabb6fd5be612203dd7b55a56cf6c9c2b38a Author: Sanjana Sanikommu Date: Sun Mar 17 21:09:29 2019 +0530 staging: rtl8188eu: core: rtw_recv.c: fix a space issue Fix a space issue around the below operators mentioned in CHECK. Issue found by checkpatch.pl semantic patch results for rtw_recv.c.. CHECK: spaces preferred around '%' (ctx:VxV) CHECK: spaces preferred around '&' (ctx:VxV) CHECK: spaces preferred around '+' (ctx:VxV) CHECK: spaces preferred around '<<' (ctx:VxV) Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit f21cf4601404285b3e72263836ba01cdade8a62d Author: Sanjana Sanikommu Date: Sun Mar 17 23:43:28 2019 +0530 staging: gasket: gasket_interuppt.c: Fix string split issue. Remove string " across the line. Issue found by checkpatch.pl semantic patch results for rtw_ap.c Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit ce2439ec8356b21994391ecb3ce45d089a495dc3 Author: Payal Kshirsagar Date: Mon Mar 18 00:06:55 2019 +0530 staging: greybus: remove extern prototypes Functions are implicitly declared with "extern". The compiler doesn't need it. extern removed from drivers/staging/greybus/audio_codec.h file. Signed-off-by: Payal Kshirsagar Signed-off-by: Greg Kroah-Hartman commit 83053c3eabd7f1cb8bd2220e394d33b742704181 Author: Jules Irenge Date: Sun Mar 17 12:31:10 2019 +0000 staging: speakup: fix line over 80 characters. Fix coding style issues which solves checkpatch.pl warning: "WARNING: line over 80 characters". Signed-off-by: Jules Irenge Signed-off-by: Greg Kroah-Hartman commit 42f56fef6720eed85abed38b7ca4bd80674b68c7 Author: Sanjana Sanikommu Date: Sun Mar 17 17:59:15 2019 +0530 staging: rtl8188eu: core: rtw_ap.c: Fix multiple blank lines Remove multiple blank lines. Issue found by checkpatch.pl semantic patch results for rtw_ap.c CHECK: Please dont use multiple blank lines. Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit c580d1f98e220e73e55fe4ce1c6e686f76102550 Author: Bhanusree Pola Date: Sun Mar 17 16:31:34 2019 +0530 staging: mt7621-mmc: Modify the return type of the function msdc_do_command Modify the return type of the function msdc_do_command to static int as the member error of the structure struct mmc_command is of type int. Signed-off-by: Bhanusree Pola Signed-off-by: Greg Kroah-Hartman commit 982c34e0c2a5801459af2bd5aa5b63825793b0e3 Author: Bhanusree Pola Date: Sun Mar 17 16:31:33 2019 +0530 staging: mt7621-mmc: Fix ret.cooci warnings Return the value directly instead of storing it in local variable err. Remove the unused local variable err. The semantic patch that fixes the first part of the problem is as follows // @@ local idexpression ret; expression e; @@ -ret = +return e; -return ret; // Signed-off-by: Bhanusree Pola Signed-off-by: Greg Kroah-Hartman commit b1c30bd6b74a620b853703771a1aa59641522cef Author: Madhumitha Prabakaran Date: Sun Mar 17 16:33:55 2019 -0500 staging: rtl8723bs: Change type of variables and return type Change type of local variables 'res' and return type of functions 'rtw_init_cmd_pri' and 'rtw_init_evt_priv', as function's return types are defined for standard error codes _SUCCESS and _FAIL. Also, change return type of functions declarations corresponding to change made in function definitions. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit cfc7ef740342e6c9ea61dc832eda963012f27f7f Author: Madhumitha Prabakaran Date: Sun Mar 17 16:33:54 2019 -0500 staging: rtl8723bs: Remove wrapper functions and change function names Drop wrappers rtw_init_cmd_priv and rtw_init_evt_priv and remove their function declarations, as their only purpose is to call other functions. Change function names from _rtw_init_cmd_priv to rtw_init_cmd_priv, and _rtw_init_evt_priv to rtw_init_evt_priv in function definitions and function declarations. Also, remove externs in function declarations rtw_init_cmd_priv and rtw_init_evt_priv, to maintain Linux kernel coding style. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit fdd1b243edd776ea5726b58325d0276443097be5 Author: Guilherme Tadashi Maeoka Date: Sat Mar 9 15:30:46 2019 -0300 staging: rtl8723bs: os_dep: Fix space in pointer definition Pointer definition "foo * bar" should be "foo *bar". Signed-off-by: Guilherme Tadashi Maeoka Signed-off-by: Greg Kroah-Hartman commit cbc570a769e063703274d40147db836fddd3aae1 Author: Guilherme Tadashi Maeoka Date: Sat Mar 9 15:30:43 2019 -0300 staging: rtl8723bs: os_dep: Fix assignment in if condition Fix an assignment in if condition. Signed-off-by: Guilherme Tadashi Maeoka Signed-off-by: Greg Kroah-Hartman commit 93f6bc735fd9d87bca4ef51f81f1608a6d1b9bb5 Author: Sanjana Sanikommu Date: Sun Mar 17 16:17:51 2019 +0530 staging: vt6655: rxtx.c: Remove unnecessary space after a cast Issue found by checkpatch.pl semantic patch results for rxtx.c. Remove unnecessary space after the cast. CHECK: No necessary space is required after a cast. Signed-off-by: Sanjana Sanikommu Signed-off-by: Greg Kroah-Hartman commit dedf215bd1c7e095e98528af57dc6aedee13db3b Author: Colin Ian King Date: Sat Mar 16 22:26:57 2019 +0000 staging: rtl8723bs: remove unused code There are two final hunks of code that are only built if SDIO_DYNAMIC_ALLOC_MEM is defined however this is never defined and if it was the code would lead to dereferencing an uninitialized pointer oldmem. It appears that a previous commit 1babeb0c3e59 ("Staging: rtl8723bs: Remove dead code") removed some of the dead code but not all of it. Clean this up by removing the final hunks. Signed-off-by: Colin Ian King Signed-off-by: Greg Kroah-Hartman commit d5469036124d0e3a644f6e00b64f0033d9429bfe Author: Sidong Yang Date: Tue Mar 12 14:11:50 2019 +0000 staging: rtl8192u: Add required spaces before open parenthesis Fix error reported by checkpatch.pl Signed-off-by: Sidong Yang Signed-off-by: Greg Kroah-Hartman commit 1c666e2191dbaf97b107bdfbaee629529e04044d Author: Alejandro Ismael Silva Date: Tue Mar 12 09:35:27 2019 -0300 staging: vc04_services: Use tabs instead of spaces This patch fixes the checkpatch.pl error: WARNING: please, no spaces at the start of a line in the interface/vchi directory. Signed-off-by: Alejandro Ismael Silva Signed-off-by: Greg Kroah-Hartman commit 50505e578f5395a4405008997814ae7f41ff5300 Author: Valdis Klētnieks Date: Tue Mar 12 08:09:20 2019 -0400 staging: rtl8712 - fix up non-kerneldoc comments Building with W=1 reports (among other things) CC [M] drivers/staging/rtl8712/rtl871x_ioctl_linux.o drivers/staging/rtl8712/rtl871x_ioctl_linux.c:1106: warning: Cannot understand * on line 1106 - I thought it was a doc line CC [M] drivers/staging/rtl8712/os_intfs.o drivers/staging/rtl8712/os_intfs.c:366: warning: Cannot understand * on line 366 - I thought it was a doc line drivers/staging/rtl8712/os_intfs.c:434: warning: Cannot understand * on line 434 - I thought it was a doc line Fix up the non-kerneldoc comments Signed-off-by: Valdis Kletnieks Signed-off-by: Greg Kroah-Hartman commit 8af36478f9516d51fcfedf9b9ed8905a1c00d278 Author: Julio Bianco Date: Sat Mar 9 14:08:53 2019 -0300 staging: erofs: add a new line after variable declaration Add a new line after variable declaration Signed-off-by: Julio Bianco Signed-off-by: Greg Kroah-Hartman commit fbcd84743a8e83fe6a2b61e4ed964e2a40f21688 Author: Laura Lazzati Date: Sat Mar 9 15:18:27 2019 -0300 staging: octeon-usb octeon-hcd: Fix several typos. I found that the comments had several typos such as "aenable", "internaly" and some others. I fixed them all. Signed-off-by: Laura Lazzati Signed-off-by: Greg Kroah-Hartman commit 27a0eb8fb69afc7ba72be2b8d500f74df25a847c Author: Jeremy Sowden Date: Fri Mar 8 08:49:51 2019 +0000 staging: fbtft: fixed format-string errors. Added __printf attribute to declaration of fbtft_dbg_hex and fixed mismatches between format-specifiers and arguments in several function calls. Signed-off-by: Jeremy Sowden Signed-off-by: Greg Kroah-Hartman commit df9ce52c8a305d5e5e2e5c179b7b2a7b7211ed60 Author: Hugo Lange Date: Sun Mar 3 20:24:39 2019 +0000 staging: rtl8188eu: remove unnecessary braces from if/else Removed unnecessary braces for single blocks. Signed-off-by: Hugo Lange Signed-off-by: Greg Kroah-Hartman commit 74a6565f378c1b71f2572bf1f3c03ad35a7c75ca Author: Jann Horn Date: Fri Mar 1 21:11:24 2019 +0100 staging: rtl8723bs: use kernel_read() instead of open-coded version Replace the manual call to f_op->read() under KERNEL_DS with kernel_read(). This also reduces the number of users of the legacy alias get_ds() for KERNEL_DS. Signed-off-by: Jann Horn Signed-off-by: Greg Kroah-Hartman commit 3b3a1a0b782444c7f62c8581b81c8a0b43ae7159 Author: Himadri Pandya Date: Sun Mar 17 11:45:01 2019 +0530 staging: rtl8723bs: hal: Modify comparison to constant in rtl8723bs_xmit.c Modify comparison to true in file rtl8723bs_xmit in order to follow kernel coding style of constant should appear on the right side. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit ca739e21ba90d7f2107f9d2ee11b27155aa671e3 Author: Himadri Pandya Date: Sun Mar 17 11:45:00 2019 +0530 staging: rtl8723bs: hal: Modify comparison to constant in hal_btcoex.c Modify comparison to 0 in file hal_btcoex.c in order to follow kernel coding style of constant should appear on right side. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit 54b3de55f4c220c328d1fd6a8ba3e468108de012 Author: Himadri Pandya Date: Sun Mar 17 11:44:59 2019 +0530 staging: rtl8723bs: hal: Remove comparison to NULL in hal_btcoex.c - Remove comparison to NULL in file hal_btcoex.c. Suggested by Coccinelle. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit 0a6f6e9351dbf44a217a8b21800808779e87b469 Author: Himadri Pandya Date: Sun Mar 17 11:44:58 2019 +0530 staging: rtl8723bs: hal: Remove comparison to NULL in hal_com.c Remove comparison to NULL in file hal_com.c. Suggested by Coccinelle. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit 8f884e76cae65af65c6bec759a17cb0527c54a15 Author: Himadri Pandya Date: Sun Mar 17 11:44:57 2019 +0530 staging: rtl8723bs: hal: Remove comparison to NULL in hal_com_phycfg.c Remove comparison to NULL in file hal_com_phycfg.c. Suggested by Coccinelle. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit 7cd6f4b0f5938ecb6759d3098a1450daba6c44bd Author: Himadri Pandya Date: Sun Mar 17 11:44:56 2019 +0530 staging: rtl8723bs: hal: Remove comparison to NULL in rtl8723b_cmd.c Remove comparison to NULL in file rtl8723b_cmd.c. Suggested by Coccinelle. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit da80ede2e79e469d96ba5cec4377a1d37cf7aba8 Author: Himadri Pandya Date: Sun Mar 17 11:44:55 2019 +0530 staging: rtl8723bs: hal:Remove comparison to NULL in rtl8723bs_xmit.c Remove comparison to NULL in file rtl8723bs_xmit.c. Suggested by Coccinelle. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit 3f181eb23ea60657d7213b82b15e1c374b7e7adc Author: Himadri Pandya Date: Sun Mar 17 11:44:54 2019 +0530 staging: rtl8723bs: hal: Remove comparison to NULL in rtl8723b_dm.c Remove comparison to NULL in file rtl8723b_dm.c. Suggested by Coccinelle. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit 019acabec865d11400d097bfcf20d01ac0b0642c Author: Himadri Pandya Date: Sun Mar 17 11:44:53 2019 +0530 staging: rtl8723bs: hal: Remove comparison to NULL in rtl8723b_hal_init.c Remove comparison to NULL in file rtl8723b_hal_init.c. Suggested by Coccinelle. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit 7f91d8866f93c88765684565fc580a79abe66537 Author: Himadri Pandya Date: Sun Mar 17 11:44:52 2019 +0530 staging: rtl8723bs: hal: Remove comparison to NULL in rtl8723bs_recv.c Remove comparison to NULL in file rtl8723bs_recv.c. Suggested by Coccinelle. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit 8b1cf0b7205a70a83a524c95ad0da2159f144905 Author: Himadri Pandya Date: Sun Mar 17 11:44:51 2019 +0530 staging: rtl8723bs: hal: Remove comparison to NULL in rtl8723b_rxdesc.c Remove comparison to null in file rtl8723b_rxdesc.c. Suggested by Coccinelle. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit 3732d7016725e45415b99261c81856b944206529 Author: Madhumitha Prabakaran Date: Wed Mar 13 10:32:05 2019 -0500 staging: sm750fb: Remove an unnecessary local variable in a function Remove an unnecessary local variable in sm750_format_pll_reg function and replace its initialization directly in return type. Issue suggested by Coccinelle using ret.cocci. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 9963412762862b9eebb996ff8a2a79740d846616 Author: Wentao Cai Date: Thu Mar 14 11:25:14 2019 -0700 staging: mt7621-mmc: delele extra blank lines Delete extra blank lines to mute checkpatch.pl check: CHECK: Please don't use multiple blank lines Signed-off-by: Wentao Cai Reviewed-by: Matthias Brugger Signed-off-by: Greg Kroah-Hartman commit d5f4a5684d1b512e7e823d45cd311d81af92a09f Author: Bhagyashri Dighole Date: Thu Mar 14 17:48:03 2019 +0530 staging: rtlwifi: Replace 0 with false. Replace 0 with false, Bool intializations should use true or false. Detected by Coccinelle semantic patch boolinit.cocci. Signed-off-by: Bhagyashri Dighole Acked-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman commit 3df3162f1d52c143f48fb213d8d2c7fcce5b41d5 Author: Bhagyashri Dighole Date: Thu Mar 14 00:37:17 2019 +0530 staging: pi433: Remove unused variable. Remove unused variable which is used to store return value, Detected by Coccinelle semantic patch returnvar.cocci Signed-off-by: Bhagyashri Dighole Signed-off-by: Greg Kroah-Hartman commit 14e9bb7e9ea7dcbc3f28ef830c5ffc568445b0b7 Author: Jules Irenge Date: Wed Mar 13 14:53:20 2019 +0000 staging: rtl8192e: remove boilerplate license text Remove boilerplate license text. Signed-off-by: Jules Irenge Signed-off-by: Greg Kroah-Hartman commit 5af3304506aeb5fed63843c4114a6c4d8205ca56 Author: Jules Irenge Date: Wed Mar 13 14:53:19 2019 +0000 staging: rtl8192e: add SPDX GPL-2.0 license identifier Add the SPDX GPL-2.0 license identifier to fix checkpatch.pl warning Issue found by checkpatch.pl warning: "WARNING: Missing or malformed SPDX-License-Identifier tag in line 1" Signed-off-by: Jules Irenge Signed-off-by: Greg Kroah-Hartman commit 3f8e5931fe60501ecb1c8d311a3f3945a7882e33 Author: Bhagyashri Dighole Date: Wed Mar 13 13:45:09 2019 +0530 staging: fbtft: line over 80 characters Fix the checkpatch.pl warning WARNING: line over 80 characters Signed-off-by: Bhagyashri Dighole Signed-off-by: Greg Kroah-Hartman commit 84c45d5f3bf15a6c5f5b53a972b41fc9e9ff17d6 Author: Wentao Cai Date: Wed Mar 13 01:14:53 2019 -0700 staging: gasket: Replace macro __ATTR with __ATTR_NULL Replace macro __ATTR with __ATTR_NULL since the former one is unnecessary for gasket_sysfs_attr array terminator. Also silence the checkpatch.pl warning: WARNING:Symbolic permissions 'S_IRUGO' are not preferred. Consider using octal permissions '0444'. Signed-off-by: Wentao Cai Signed-off-by: Greg Kroah-Hartman commit ef2719d35ac485e36f6b52451d5ec306d09b283c Author: NeilBrown Date: Tue Mar 12 10:09:37 2019 +1100 staging: mt7621-dts: update ethernet settings. The ethernet in mt7621 is now supported by drivers/net/ethernet/mediatek/ which provides support for the integrated switch through DSA. This requires some devicetree changes, and particularly allows a board dts to identify which switch ports are present. The second CPU interface - gmac1 - doesn't work yet, so the device tree information may not be correct. The phy (which is present on the gnubee-pc2) can negotiate and report connection speed etc, but no traffic flows. The gnubee-pc1 has two network ports which are 'black' and 'blue'. There are connected to switch ports 0 and 4 respectively. Signed-off-by: NeilBrown Signed-off-by: Greg Kroah-Hartman commit 7b53a16a1a7a795285a3728f3b35b113b8b47148 Author: NeilBrown Date: Tue Mar 12 10:09:37 2019 +1100 staging: remove mt7621-eth driver/net/ethernet/mediatek/ now supports this hardware, so we don't need a separate driver. Signed-off-by: NeilBrown Signed-off-by: Greg Kroah-Hartman commit 6d49a15ead2b3399f8933f1396e4f50c9060f200 Author: Branden Bonaby Date: Tue Mar 12 14:06:15 2019 -0400 staging: mt7621-pci: IF statement expression comparing to NULL Remove comparison to NULL in the if statement expression to match the Linux Kernel coding style. CHECK: Comparison to NULL could be written "res" Signed-off-by: Branden Bonaby Signed-off-by: Greg Kroah-Hartman commit a77a40cf8b42b31bcecdf02bfa71eca416719be0 Author: Bhagyashri Dighole Date: Tue Mar 12 12:46:55 2019 +0530 staging: rtl8712: line over 80 characters. Fix coding style issues, which solves checkpatch.pl warning: "WARNING: line over 80 characters". Signed-off-by: Bhagyashri Dighole Signed-off-by: Greg Kroah-Hartman commit 715a7148d774fac233e38d67d5c70c8bd2758d5f Author: Branden Bonaby Date: Mon Mar 11 22:48:06 2019 -0400 staging: octeon: Lines should not end with a '(' Start function arguments immediately after opening bracket. CHECK: Lines should not end with a '('. Signed-off-by: Branden Bonaby Signed-off-by: Greg Kroah-Hartman commit 5b628549e9547d5b55c556dd23e9c189b365f43c Author: Wentao Cai Date: Tue Mar 12 01:10:39 2019 -0700 staging: most: Replace '--help--' in Kconfig file Replace '--help--' with 'help' to silence checkpatch.pl warning: WARNING: prefer 'help' over '---help---' for new help texts Signed-off-by: Wentao Cai Signed-off-by: Greg Kroah-Hartman commit 796618673fcd8053bfbb74fd6b8dd6fe95001ca6 Author: Wentao Cai Date: Tue Mar 12 02:35:11 2019 -0700 staging: netlogic: Remove unnecessary 'out of memory' message Remove unnecessary 'out of memory' message to silence checkpatch.pl warning: WARNING: Possible unnecessary 'out of memory' message Signed-off-by: Wentao Cai Signed-off-by: Greg Kroah-Hartman commit e8ca82a1348b07d64613d6af1303edf5097b476a Author: Bhanusree Pola Date: Mon Mar 11 21:11:41 2019 +0530 staging: rtl8192u: Adjust 'if' to follow Kernel coding Style -Adjust spaces around if and the condition expression to maintain Linux Kernel Coding style. -Remove unnecessary braces around if-else as only single statement is executed. Signed-off-by: Bhanusree Pola Signed-off-by: Greg Kroah-Hartman commit a279fc9d051bfd62ca0676caf75408b1208c70f5 Author: Bhanusree Pola Date: Mon Mar 11 21:11:40 2019 +0530 staging: rtl8192u: Remove casts on the return values of list_entry Remove casts return values of on all occurances of list_entry. Casts on the return values of list_entry are useless. list_entry is a macro and already casts its return value to the type mentioned in its second argument. Signed-off-by: Bhanusree Pola Signed-off-by: Greg Kroah-Hartman commit 3eb9aa00daaefc86ec8c734125d5c9b0dae76228 Author: Bhanusree Pola Date: Mon Mar 11 21:11:39 2019 +0530 staging: rtl8192u: Remove typedef for struct _RX_REORDER_ENTRY -Avoid typedefs for structure types to maintain kernel coding style. -Remove typedefs RX_REORDER_ENTRY and *PRX_REORDER_ENTRY of struct _RX_REORDER_ENTRY . -Change Structure name _RX_REORDER_ENTRY to rx_reorder_entry to maintain Linux kernel Coding Style. -Replace occurences of RX_REORDER_ENTRY to struct rx_reorder_entry. -Replace occurences of PRX_REORDER_ENTRY to struct rx_reorder_entry *. Signed-off-by: Bhanusree Pola Signed-off-by: Greg Kroah-Hartman commit 00b0f841b7403b762a2b9a02e79b126703c075ea Author: Bhanusree Pola Date: Mon Mar 11 21:11:38 2019 +0530 staging: rtl8192u: Remove typedef for struct _RT_LINK_DETECT_T -Avoid typedefs for structure types to maintain kernel coding style. -Remove typedefs RT_LINK_DETECT_T and *PRT_LINK_DETECT_T of struct _RT_LINK_DETECT_T. -Change Structure name _RT_LINK_DETECT_T to rt_link_detect to maintain Linux kernel Coding Style. -Replace occurence of RT_LINK_DETECT_T to struct rt_link_detect. Signed-off-by: Bhanusree Pola Signed-off-by: Greg Kroah-Hartman commit 82ec1977b3938d10f90142b272bd0f6886e38e15 Author: Bhanusree Pola Date: Mon Mar 11 21:11:37 2019 +0530 staging: rtl8192u: Remove typedef for struct _RT_POWER_SAVE_CONTROL -Avoid typedefs for structure types to maintain kernel coding style. -Remove typedefs RT_POWER_SAVE_CONTROL and *PRT_POWER_SAVE_CONTROL of struct _RT_POWER_SAVE_CONTROL. -Change Structure name _RT_POWER_SAVE_CONTROL to rt_power_save_control to maintain Linux kernel Coding Style. -Replace occurence of _RT_POWER_SAVE_CONTROL to struct rt_power_save_control. Signed-off-by: Bhanusree Pola Signed-off-by: Greg Kroah-Hartman commit d83908ed0fc6bf8abe682f2cfa36721851c02d25 Author: Bhanusree Pola Date: Mon Mar 11 21:11:36 2019 +0530 staging: rtl8192u: Remove typedef for struct _IbssParms -Avoid typedefs for structure types to maintain kernel coding style. -Remove typedefs IbssParms and *PIbssParms of struct _IbssParms. -Change Structure name _IbssParms to ibss_parms to maintain Linux kernel Coding Style. -Replace occurence of IbssParms to struct ibss_parms. Signed-off-by: Bhanusree Pola Signed-off-by: Greg Kroah-Hartman commit bc6b124b6863fc9c1f22d11c5e4e258986ccc76e Author: Bhanusree Pola Date: Mon Mar 11 21:11:35 2019 +0530 staging: rtl8192u: Remove typedef for struct _bandwidth_autoswitch -Avoid typedefs for structure types to maintain kernel coding style. -Remove typedefs bandwidth_autoswitch and *pbandwidth_autoswitch of struct _bandwidth_autoswitch. -Change Structure name _bandwidth_autoswitch to bandwidth_autoswitch to maintain Linux kernel Coding Style. -Replace occurence of bandwidth_autoswitch to struct bandwidth_autoswitch. Signed-off-by: Bhanusree Pola Signed-off-by: Greg Kroah-Hartman commit 72a2af220175110e61a53055a8fb32c4f027988b Author: Himadri Pandya Date: Sat Mar 9 20:45:06 2019 +0530 staging: wilc1000: remove unnecessary local variables Remove unnecessary local variable "ret" and its assignments from functions wilc_set_tx_power and wilc_get_tx_power. Suggested by Coccinelle. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit 1d78178410f4e8ca840a27294de5e5eb8bbedb02 Author: Himadri Pandya Date: Sat Mar 9 23:21:36 2019 +0530 staging: media: zoran: remove unnecessary parentheses Remove unnecessary parentheses from right hand side of assignments. Suggested by Coccinelle. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit 81c2317cb9666c542527c56481ad0532a2d68e1c Author: Himadri Pandya Date: Sat Mar 9 23:46:08 2019 +0530 staging: rtlwifi: phydm: remove unnecessary parentheses Remove unnecessary parentheses around the right hand side of assignment operator. Issue found using Coccinelle. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit 6de5cd74fb8f9bb940caa7d082ab03e38443a6fb Author: Debleena Sen Date: Sat Mar 9 10:53:37 2019 -0800 staging: vboxvideo: Do not return -ENOSYS New instances of ENOSYS are errors. ENOSYS should be used for nonexistent syscalls only. Use ENODEV instead as there should not be any other driver for a virtual device that might share buffers with vboxvideo. In vbox_prime.c, replace all occurrences of -ENOSYS with -ENODEV to fix checkpatch.pl warning: WARNING: ENOSYS means 'invalid syscall nr' and nothing else Signed-off-by: Debleena Sen Signed-off-by: Greg Kroah-Hartman commit de5e4aea8881390314cdb2f8e1c2ae40834c1c26 Author: Nishka Dasgupta Date: Mon Mar 11 00:08:36 2019 +0530 staging: sm750fb: Edit CamelCase in local variables Edit CamelCase in local variables across 4 files: - sm750fb/ddk750_chip.c - sm750fb/ddk750_chip.h - sm750fb/ddk750_dvi.c - sm750fb/ddk750_sii164.c to comply with the coding style. Also edit associated comments accordingly. Issue found with Checkpatch. Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit 256ab3efbe952997ad0b6cb949e2851c7b58de5b Author: Branden Bonaby Date: Mon Mar 11 09:31:57 2019 -0400 staging: vt6655: line over 80 characters Move function arguments that go over the 80 characters a line limit to a new line. "WARNING: line over 80 characters". Signed-off-by: Branden Bonaby Signed-off-by: Greg Kroah-Hartman commit b66003f02d9a1447df19fb161219268680501ed0 Author: Wentao Cai Date: Fri Mar 8 23:31:25 2019 -0800 staging: most: dim2: reg.h: Correct SPDX-License-Identifier Correct SPDX-License-Identifier comment characters to silence checkpatch.pl warning: WARNING: Missing or malformed SPDX-License-Identifier tag in line 1 Signed-off-by: Wentao Cai Signed-off-by: Greg Kroah-Hartman commit 3037be14a2194e5ac4c7ab94f4a7973317f3e818 Author: Wentao Cai Date: Fri Mar 8 23:31:24 2019 -0800 staging: most: dim2: sysfs.h: Correct SPDX-License-Identifier Correct SPDX-License-Identifier comment characters to silence checkpatch.pl warning: WARNING: Missing or malformed SPDX-License-Identifier tag in line 1 Signed-off-by: Wentao Cai Signed-off-by: Greg Kroah-Hartman commit da2773be2cf2a8b42354f9fdca2118eb8baae366 Author: Wentao Cai Date: Fri Mar 8 23:31:23 2019 -0800 staging: most: dim2: hal.h: Correct SPDX-License-Identifier Correct SPDX-License-Identifier comment characters to silence checkpatch.pl warning: WARNING: Missing or malformed SPDX-License-Identifier tag in line 1 Signed-off-by: Wentao Cai Signed-off-by: Greg Kroah-Hartman commit 9e510b68f04490d7fc600b42fda06658eca6acfd Author: Wentao Cai Date: Fri Mar 8 23:31:21 2019 -0800 staging: most: dim2: errors.h: Correct SPDX-License-Identifier Correct SPDX-License-Identifier comment characters to silence checkpatch.pl warning: WARNING: Missing or malformed SPDX-License-Identifier tag in line 1 Signed-off-by: Wentao Cai Signed-off-by: Greg Kroah-Hartman commit b92f5d83fa1d6d9eacf2f43630cd5f9c30bd3c24 Author: Himadri Pandya Date: Sat Mar 9 15:01:58 2019 +0530 staging: octeon-usb: remove unnecessary variable frame_number Remove unnecessary local variable "frame_number" and its assignments from function cvmx_usb_get_frame_numbe. Suggested by Coccinelle. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit dfa5fbb9dbced2808e12207942426868c67c046a Author: Bhagyashri Dighole Date: Fri Mar 8 21:01:28 2019 +0530 staging: fbtft: convert a macro to a function. Convert a macro to an inline function to improve type safety and make the code simpler. Signed-off-by: Bhagyashri Dighole Signed-off-by: Greg Kroah-Hartman commit d8b2f7cfe4d40e771376bfa4e399f26fa9ef49e4 Author: Madhumitha Prabakaran Date: Thu Mar 7 15:11:29 2019 -0600 staging: vt6655: Remove unused function prototype and definition Remove the MACbIsRegBitsOn function, as it is never called in kernel tree. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit e91dea57f36cedb09bc168d91c71d22f7adbbad1 Author: Wentao Cai Date: Thu Mar 7 18:01:13 2019 -0800 staging: most: usb: Change '--help--' to 'help' in Kconfig Change '--help--' in Kconfig file to silence checkpatch.pl warning: WARNING: prefer 'help' over '---help---' for new help texts Signed-off-by: Wentao Cai Signed-off-by: Greg Kroah-Hartman commit 4068f661f6044a5321caea9190847fab5700494d Author: Jules Irenge Date: Fri Mar 8 01:35:00 2019 +0000 staging: zoran: remove license boilerplate text Remove license boilerplate text. Signed-off-by: Jules Irenge Signed-off-by: Greg Kroah-Hartman commit 682bb4e630842157a7b8045134e1b93e47948219 Author: Jules Irenge Date: Fri Mar 8 01:34:59 2019 +0000 staging: zoran: add SPDX GPL-2.0+ license identifier Add the SPDX GPL-2.0 license identifier to fix checkpatch.pl warning. Issue found by checkpatch.pl warning: "WARNING: Missing or malformed SPDX-License-Identifier tag in line 1" Signed-off-by: Jules Irenge Signed-off-by: Greg Kroah-Hartman commit d5aa59ad16659b5a174576b9202b0c0d899acd4c Author: Yifeng Li Date: Mon Mar 4 00:55:31 2019 +0800 staging: sm750fb: trivial comment indention fix. In function sm750_hw_copyarea() of sm750_accel.c, there are some comments in ASCII graphs, describing 4 possible scenarios of overlapping areas when copying an area. However, the graphs have broken indention. The entire SiliconMotion series video controllers, including SM501, SM712 and SM750 have similar 2D engines, yet, I have not seen a single version of it with ASCII graphs properly formatted... Fix the the misleading ASCII graphs. It would eliminate the confusions and improve code readability. Signed-off-by: Yifeng Li Signed-off-by: Greg Kroah-Hartman commit 173e3e69b297deaa95a1c96f24dfc74de98adc15 Author: Robert Eshleman Date: Wed Mar 6 07:31:41 2019 -0800 staging: rtl8188eu: cleanup spacing style This patch fixes a few spacing warnings from checkpatch.pl, as well as an incorrect spacing between a function type and the function name. Signed-off-by: Robert Eshleman Signed-off-by: Greg Kroah-Hartman commit 975520608bd6ef8ce868aa547f5e7b3f5a5c2ec0 Author: Daniela Mormocea Date: Thu Mar 7 13:42:33 2019 +0200 staging: media: davinci_vpfe: Fix alignment issues Fix all the alignment issues in the file to get rid of checkpatch warnings Signed-off-by: Daniela Mormocea Signed-off-by: Greg Kroah-Hartman commit a4c5fbfa60e4713ba7be10460b30cb2c94faaa81 Author: Daniela Mormocea Date: Thu Mar 7 13:42:09 2019 +0200 staging: media: davinci_vpfe: Fix multiple line dereference Fix multiple line dereference to improve readability and avoid checkpatch warning Signed-off-by: Daniela Mormocea Signed-off-by: Greg Kroah-Hartman commit 5921a1383ac2be6b98b2bc8dcfef20cc4ca1e89f Author: Daniela Mormocea Date: Thu Mar 7 13:41:45 2019 +0200 staging: media: davinci_vpfe: Fix comparison to NULL Replace comparison to NULL with '!' operator Signed-off-by: Daniela Mormocea Signed-off-by: Greg Kroah-Hartman commit f270392c7e3f44cd96702e24172937959364df76 Author: Madhumitha Prabakaran Date: Thu Mar 7 14:00:08 2019 -0600 staging: vt6655: Remove an unused function prototype Remove an unused function prototype as there is no such function in the kernel tree. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 84580771dd9c1d343f950f0b15934a0fb0d29d26 Author: Daniela Mormocea Date: Thu Mar 7 21:23:40 2019 +0200 staging: vt6655: Fix malformed SPDX-License-Identifier tag Replace "//" comment with "/**/" comment Signed-off-by: Daniela Mormocea Signed-off-by: Greg Kroah-Hartman commit ff7fa1f6b9b2d2e0af50ab7021d8a18bd963351b Author: Daniela Mormocea Date: Thu Mar 7 21:04:26 2019 +0200 staging: rtl8712: Replace NULL comparisons Replace all NULL comparisons in the file to get rid of checkpatch warnings Signed-off-by: Daniela Mormocea Signed-off-by: Greg Kroah-Hartman commit b2c4f4660b698ad690df35f50091854072b8f514 Author: Daniela Mormocea Date: Wed Mar 6 14:06:40 2019 +0200 staging: vc04_services: bcm2835-camera: Fix logical continuations warnings Break up lines after boolean operator Signed-off-by: Daniela Mormocea Signed-off-by: Greg Kroah-Hartman commit d33fe112c9a26553f23275950f6d3521d40ad3df Author: Daniela Mormocea Date: Thu Mar 7 12:25:48 2019 +0200 staging: speakup: Add spaces around operators Add spaces around math operators to get rid of checkpatch warning Signed-off-by: Daniela Mormocea Signed-off-by: Greg Kroah-Hartman commit a57250582a00318090ff83d05405215fa4e7388a Author: Madhumitha Prabakaran Date: Wed Mar 6 16:48:09 2019 -0600 staging: fwserial: Convert macro into an inline function Convert macro into an inline function to make codebase better Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 50d280f3e31c2f7825fc1664062e75deccf6f616 Author: Daniela Mormocea Date: Wed Mar 6 14:32:05 2019 +0200 staging: speakup: Spaces around operator Add spaces around bitwise AND operator Signed-off-by: Daniela Mormocea Acked-by: Julia Lawall Signed-off-by: Greg Kroah-Hartman commit 730551f754a7f58a97408a889e9c19aa6d2767a6 Author: Bhagyashri Dighole Date: Wed Mar 6 16:42:22 2019 +0530 staging: fbtft: Remove unused #defines. Remove unused #defines, which is detected while resolving `CHECK: Avoid CamelCase` issue. Signed-off-by: Bhagyashri Dighole Signed-off-by: Greg Kroah-Hartman commit 219347ebf057b21738334954d5840e93970f6690 Author: Madhumitha Prabakaran Date: Tue Mar 5 16:48:28 2019 -0600 staging: vt6655: Align function declaration Fix function return type and function arguments to improve readbility. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 5822706008190e4a593654835137961e18bf6148 Author: Madhumitha Prabakaran Date: Tue Mar 5 16:48:27 2019 -0600 staging: vt6655: Fix the warning line over 80 characters Fix the checkpatch.pl warning WARNING: line over 80 characters Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit f6fe7f2809d3690e099eb8ffd1e216d67ecdc183 Author: Madhumitha Prabakaran Date: Tue Mar 5 16:48:26 2019 -0600 staging: vt6655: mac.h: Fix comment style for SPDX-License Identifier Modify comment style for header type file based on license identifier syntax. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit d67a81ff854625be7f8e4cf61f05a8dc86344bbb Author: Madhumitha Prabakaran Date: Tue Mar 5 16:48:25 2019 -0600 staging: vt6655: Remove unnecessary blank line Fix the check issue provided by checkpatch.pl CHECK: Blank lines aren't necessary before a close brace '}' Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit f105e04e7b3eeb16d8901e074d6203e98e46a682 Author: Madhumitha Prabakaran Date: Tue Mar 5 16:48:24 2019 -0600 staging: vt6655: key.h: Fix comment style for SPDX-License Identifier Modify comment style for SPDX-License Identifier based on license identifier syntax. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 5a56a0f9ea045f6507141a612abcdbf866f34f8e Author: Madhumitha Prabakaran Date: Tue Mar 5 16:48:23 2019 -0600 staging: vt6655: dpc.h: Fix comment style of SPDX License Identifier Modify comment style of SPDX License Identifier for header file type, as per the license identifier syntax. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 572dbab6e3539af351270b736403309d49d77d73 Author: Madhumitha Prabakaran Date: Tue Mar 5 10:31:58 2019 -0600 staging: vt6655: Fix space around binary operator Fix the check as per Linux kernel style for use of spaces CHECK: spaces preferred around that '-' Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 084a8e546005110cd7c365b9b32dbffd7742241e Author: Madhumitha Prabakaran Date: Tue Mar 5 10:31:57 2019 -0600 staging: vt6655: Fix spelling mistake Fix the check for spelling mistake CHECK: 'Regsiter' may be misspelled - perhaps 'Register' Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 2b90bf28ac38b697a3f48a6664a02b374aa18f99 Author: Bhagyashri Dighole Date: Wed Mar 6 14:25:41 2019 +0530 staging: speakup: Comparison to NULL. Fix coding style issues, detected by checkpatch.pl "CHECK: Comparison to NULL could be written !tty->ops->write" Signed-off-by: Bhagyashri Dighole Signed-off-by: Greg Kroah-Hartman commit fbdc55155c7fc754a183e656d4c32722d45751c6 Author: Daniela Mormocea Date: Tue Mar 5 18:23:16 2019 +0200 staging: vc04_services: bcm2835-camera: Fix multiple line dereference Fix multiple line dereference to avoid checkpatch warnings Signed-off-by: Daniela Mormocea Signed-off-by: Greg Kroah-Hartman commit 57a633dc68a6266617bfbb157a46b9f00fce374e Author: Daniela Mormocea Date: Tue Mar 5 17:50:55 2019 +0200 staging: vc04-services: bcm2835-audio: Fix alignment issues Fix all the alignment with open parenthesis issues detected by checkpatch Signed-off-by: Daniela Mormocea Signed-off-by: Greg Kroah-Hartman commit ba118202b95b376a9982fa377975ab1cb710ceb9 Author: Daniela Mormocea Date: Tue Mar 5 17:24:49 2019 +0200 staging: vboxvideo: Fix open parenthesis at the end of line Fix open parenthesis at the end of line to improve readability Signed-off-by: Daniela Mormocea Signed-off-by: Greg Kroah-Hartman commit b6a3a880cfa602a2b4d26224269008c2cbaf32f5 Author: Daniela Mormocea Date: Tue Mar 5 14:55:55 2019 +0200 staging: ralink-gdma: Avoid unnecessary line continuations Get rid of unnecessary line continuations in boolean expressions, warning detected by checkpatch Signed-off-by: Daniela Mormocea Signed-off-by: Greg Kroah-Hartman commit 2c78d9f6ab8a17a55ffdfd0975ea2177a862c38e Author: Daniela Mormocea Date: Tue Mar 5 14:53:20 2019 +0200 staging: ralink-gdma: Replace from uint32_t to u32 Replace all uintr32_t with u32 to avoid getting checkpatch warning Signed-off-by: Daniela Mormocea Signed-off-by: Greg Kroah-Hartman commit 3e00865cf87ce61d541da1201a21f4f00da9bc4f Author: Daniela Mormocea Date: Tue Mar 5 14:50:06 2019 +0200 staging: ralink-gdma: Avoid unnecessary line continuations in string Fix split string in multiple lines Signed-off-by: Daniela Mormocea Signed-off-by: Greg Kroah-Hartman commit 7782c3c93dc952c4f53796d402ebcb7e59156b6d Author: Daniela Mormocea Date: Tue Mar 5 12:57:39 2019 +0200 staging: iio: Line over 80 characters Fix line over 80 characters, warning by checkpatch Signed-off-by: Daniela Mormocea Signed-off-by: Greg Kroah-Hartman commit 4ca7f0a2ae5b9391c079048813bb6e3e44f5e7d7 Author: Wentao Cai Date: Mon Mar 4 19:25:35 2019 -0800 staging: r8712u: Replace '--help--' with 'help' This patch replace '--help--' in Kconfig to silence checkpatch.pl warning: WARNING: prefer 'help' over '---help---' for new help texts Signed-off-by: Wentao Cai Signed-off-by: Greg Kroah-Hartman commit 5e8e08c81f1fc579fb23d0d06ea71f0a2c5cd945 Author: Daniela Mormocea Date: Tue Mar 5 00:23:08 2019 +0200 staging: fbtft: Fix line over 80 characters Fix line with over 80 characters to get rid of the warning given by checkpatch Signed-off-by: Daniela Mormocea Signed-off-by: Greg Kroah-Hartman commit 8e99e99baf38c6f71cacc316be74289dea4b8fc8 Author: Madhumitha Prabakaran Date: Mon Mar 4 13:45:56 2019 -0600 staging: vt6655: desc.h: Fix comment style of SPDX-License Identifier Fix comment style of SPDX License Identifier for header file based on License Identifier syntax. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit c12425567d7b4f03f598cd7b83239d5c4f3ed390 Author: Madhumitha Prabakaran Date: Mon Mar 4 13:45:55 2019 -0600 staging: vt6655: channel.h: Fix comment style of SPDX License Identifier Fix the comment style of SPDX License Identifier for header file based on License Identifier syntax. Signed-off-by: Madhumitha Prabakaran Signed-off-by: Greg Kroah-Hartman commit 35defd6dd1626ead22fb6cf5332ca3fbcf3bfe87 Author: Nishka Dasgupta Date: Mon Mar 4 23:13:15 2019 +0530 staging: greybus: Change NULL comparison to Boolean Negation Change NULL comparison to boolean negation. Issue found by Checkpatch. Signed-off-by: Nishka Dasgupta Signed-off-by: Greg Kroah-Hartman commit 1d4c11dd7849410bda35ba0b54fd32764ed5a78e Author: Daniela Mormocea Date: Mon Mar 4 19:33:25 2019 +0200 staging: emxx_udc: Fix open parenthesis at the end of the line warning detected by checkpatch.pl Signed-off-by: Daniela Mormocea Signed-off-by: Greg Kroah-Hartman commit b9c96308fda258089574b9a4f493635f884b2634 Author: Daniela Mormocea Date: Mon Mar 4 19:12:02 2019 +0200 staging: emxx_udc: Fix equal sign alignment Warning detected by checkpatch Signed-off-by: Daniela Mormocea Signed-off-by: Greg Kroah-Hartman commit 6fc84d16664c84d392f710487f0e5837a6e32ff8 Author: Debleena Sen Date: Mon Mar 4 06:55:36 2019 -0800 staging: wilc1000: Fix line over 80 characters Break the line after '+' to remove the checkpatch.pl warning. Remove trailing whitespace after '+' if any: WARNING: line over 80 characters Signed-off-by: Debleena Sen Signed-off-by: Greg Kroah-Hartman commit 7e5173822c9cd4132bf9abf14addb05d7ecf2ff8 Author: Himadri Pandya Date: Sun Mar 3 16:09:15 2019 +0530 staging: rtl8712: rename bSuspended to suspended - Rename structure field bSuspended to suspended to avoid camelcase. Suggested by checkpatch. - Change type to bool as the variable is used as a boolean. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit 5b8d98f1711edda96cf632e9bc204889dba5d307 Author: Himadri Pandya Date: Sun Mar 3 16:09:14 2019 +0530 staging: rtl8712: rename bSurpriseRemoved to surprise_removed - Rename structure field bSurprisedRemoved to surprised_removed to avoid camelcase. Suggested by checkpatch. - Change type to bool as the variable is used as a boolean. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit 0ec6fc6f453a5b139b0bfde2e737f59158eed6c3 Author: Himadri Pandya Date: Sun Mar 3 16:09:13 2019 +0530 staging: rtl8712: rename bDriverStopped to driver_stopped - Rename structure field bDriverStopped to driver_stopped to avoid camelcase. Suggested by checkpatch. - Change type to bool as the variable is being used as boolean. Signed-off-by: Himadri Pandya Signed-off-by: Greg Kroah-Hartman commit cdf7545aef65c47c17afdd3bed90410b3fd33bfd Author: Alexandre Belloni Date: Wed Mar 13 23:02:48 2019 +0100 rtc: convert core to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Also fix the block comment alignment. Signed-off-by: Alexandre Belloni commit 33fee143ac6e3fed184cdd1791fb4b51f06a25c1 Author: Alexandre Belloni Date: Tue Mar 12 23:39:03 2019 +0100 rtc: ab-b5ze-s3: remove unnecessary check The core already checks that the alarm is set in the future. IT is not necessary to do it again in the driver. Signed-off-by: Alexandre Belloni commit 818806498569c037acd7c336e47ed36d4b13a941 Author: Alexandre Belloni Date: Tue Mar 12 23:33:02 2019 +0100 rtc: ab-b5ze-s3: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Signed-off-by: Alexandre Belloni commit 8a941124458f20816dc864af4ff7c68d823670f6 Author: Alexandre Belloni Date: Tue Mar 12 23:30:44 2019 +0100 rtc: ab-b5ze-s3: switch to rtc_time64_to_tm/rtc_tm_to_time64 Call the 64bit versions of rtc_time_to_tm as the range is enforced by the core. Signed-off-by: Alexandre Belloni commit 5d049837dd765389159993a79fad4c853cba3433 Author: Alexandre Belloni Date: Tue Mar 12 23:15:24 2019 +0100 rtc: ab-b5ze-s3: remove unnecessary gotos Rework error handling to remove unnecessary gotos. Signed-off-by: Alexandre Belloni commit ac246738224088a08225f10d439c4b1918a1aa84 Author: Alexandre Belloni Date: Tue Mar 12 23:48:13 2019 +0100 rtc: ab-b5ze-s3: remove mutex The rtc_ops are already called with the RTC mutex locked so there is no need to have a separate lock, unless it is used in the irq handler. Signed-off-by: Alexandre Belloni commit 28e7861cfcf05f1381beb513cb3460cdeea82d9d Author: Alexandre Belloni Date: Thu Mar 7 12:04:08 2019 +0100 rtc: zynqmp: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Signed-off-by: Alexandre Belloni commit 60b7f4cbdcbc8da663f2f1593b882d0a74f71577 Author: Alexandre Belloni Date: Wed Mar 6 10:51:34 2019 +0100 rtc: abx80x: remove useless .remove .remove is empty, remove it. Signed-off-by: Alexandre Belloni commit 559e883e0f776855072d70001a4c68a0d07a68f4 Author: Alexandre Belloni Date: Wed Mar 6 10:51:33 2019 +0100 rtc: abx80x: use rtc_add_group Use rtc_add_group to add the sysfs group in a race free manner. This has the side effect of moving the files to their proper location. Signed-off-by: Alexandre Belloni commit 2fcdf5fd7c1b66f283b16639682f0b5dd3474b0b Author: Alexandre Belloni Date: Wed Mar 6 10:51:32 2019 +0100 rtc: abx80x: convert to SPDX identifier Use SPDX-License-Identifier instead of a verbose license text. Signed-off-by: Alexandre Belloni commit 0878a42086e0a6228f804655bb544147a531bb57 Author: Oded Gabbay Date: Sun Mar 17 09:12:29 2019 +0200 habanalabs: never fail hard reset of device Hard-reset of our device should never fail, due to dangers of permanent damage to the H/W. This patch removes the last place in the reset path where the driver might exit before doing the actual reset. Signed-off-by: Oded Gabbay commit 535d8d27c0e2f6c35f5f92fc0999f780f0e4b2e9 Author: Daniele Ceraolo Spurio Date: Sat Mar 16 10:00:45 2019 +0000 drm/i915: do not pass dev_priv to low-level forcewake functions The only usage we have for it is for the regs pointer. Save a pointer to the set and ack registers instead of the register offsets to remove this requirement v2: Keep passing uncore down to the lowest levels to avoid repeated pointer chasing in the innermost loops: add/remove: 0/0 grow/shrink: 3/15 up/down: 33/-155 (-122) Function old new delta fw_domain_init 320 351 +31 hdmi_port_clock_valid 319 320 +1 g4x_pre_enable_dp 364 365 +1 ring_request_alloc 1852 1851 -1 intel_engine_lookup_user 50 49 -1 gen11_irq_handler 738 737 -1 __intel_uncore_forcewake_get 115 112 -3 intel_uncore_fw_release_timer 198 194 -4 i915_forcewake_domains 154 150 -4 fw_domain_fini 172 168 -4 __intel_uncore_forcewake_put 163 159 -4 ___force_wake_auto 138 134 -4 fw_domains_put 98 92 -6 __err_print_to_sgl 4058 4052 -6 intel_uncore_forcewake_reset 459 444 -15 fw_domains_get 563 548 -15 fw_domain_wait_ack_with_fallback 490 450 -40 fw_domains_get_with_fallback 875 828 -47 Cc: Paulo Zanoni Signed-off-by: Daniele Ceraolo Spurio Reviewed-by: Paulo Zanoni Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190313231319.711-2-daniele.ceraolospurio@intel.com Link: https://patchwork.freedesktop.org/patch/msgid/20190316100045.20240-1-chris@chris-wilson.co.uk commit 9073e5b26743b8b675cc44a9c0c8f8c3d584e1c0 Author: Chris Wilson Date: Fri Mar 15 16:39:33 2019 +0000 drm/i915: Fix off-by-one in reporting hanging process ffs() is 1-indexed, but we want to use it as an index into an array, so use __ffs() instead. Fixes: eb8d0f5af4ec ("drm/i915: Remove GPU reset dependence on struct_mutex") Signed-off-by: Chris Wilson Cc: Mika Kuoppala Reviewed-by: Rodrigo Vivi Link: https://patchwork.freedesktop.org/patch/msgid/20190315163933.19352-1-chris@chris-wilson.co.uk commit f19d90eed648d48b764abc3799f4cb9de4a4079f Author: Ville Syrjälä Date: Mon Feb 18 21:31:37 2019 +0200 drm/i915: Split ilk vs. icl csc matrix handling Split the csc matrix handling to ilk+ and icl+ functions. This keeps the logic clear on what is loaded into which CSC unit on the hardware. We also fix the icl+ code to load the full->limited range conversion matrix into the output CSC rather than the pipe CSC which was used on earlier platforms. And we also turn on the pipe CSC only when the ctm is present. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190218193137.22914-8-ville.syrjala@linux.intel.com Reviewed-by: Uma Shankar commit b281264f8b8125cc888d01a3ddf2947a0a50e9bc Author: Ville Syrjälä Date: Mon Feb 18 21:31:36 2019 +0200 drm/i915: Clean the csc limited range/identity programming Just provide precomputed CSC matrices for the identity and limited range cases. This removes the remaining nuts and bolts stuff from ilk_load_csc_matrix(), allowing one to actually see the high level logic. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190218193137.22914-7-ville.syrjala@linux.intel.com Reviewed-by: Uma Shankar commit c9e235aa0f9d97b0ec2c117583d3c30161884ab5 Author: Ville Syrjälä Date: Mon Feb 18 21:31:35 2019 +0200 drm/i915: Extract ilk_csc_convert_ctm() Start splitting low level nuts and bolts stuff from ilk_load_csc_matrix(). The goal is to leave only the clear high level logic in place. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190218193137.22914-6-ville.syrjala@linux.intel.com Reviewed-by: Uma Shankar commit d2c19b06d6ea16c715a18a60037992331ba4083d Author: Ville Syrjälä Date: Mon Feb 18 21:31:34 2019 +0200 drm/i915: Clean up ilk/icl pipe/output CSC programming We have far too much messy duplicated code in the pipe/output CSC programming. Simply provide two functions (ilk_update_pipe_csc() and icl_update_output_csc()) to program the relevant CSC registers. The desired offsets and coefficients are passed in as parameters. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190218193137.22914-5-ville.syrjala@linux.intel.com Reviewed-by: Uma Shankar commit 386ba08fb5952ea0b14503a47f6fbe10a316981e Author: Ville Syrjälä Date: Mon Feb 18 21:31:33 2019 +0200 drm/i915: Extract ilk_csc_limited_range() Extract a helper which determines if we need to use the pipe CSC for limited range RGB output. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190218193137.22914-4-ville.syrjala@linux.intel.com Reviewed-by: Uma Shankar commit 9fdfb8e7308b0a82c1cc0bbd120450faf8bd837d Author: Ville Syrjälä Date: Mon Feb 18 21:31:32 2019 +0200 drm/i915: Precompute/readout/check CHV CGM mode Let's precompute the CGM mode for CHV. And naturally we also read it out and check it. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190218193137.22914-3-ville.syrjala@linux.intel.com Reviewed-by: Uma Shankar commit a1f1e61bfb0a21e70249bbc47bb96423ca69e52f Author: Ville Syrjälä Date: Mon Feb 18 21:31:31 2019 +0200 drm/i915: Readout and check csc_mode Add the missing readout and PIPE_CONF_CHECK() for csc_mode. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190218193137.22914-2-ville.syrjala@linux.intel.com Reviewed-by: Uma Shankar commit 2e541b64ee5269278fde5c87953a9963a8219ed4 Author: Ludovic Barre Date: Fri Mar 8 14:12:21 2019 +0100 spi: spi-mem: stm32-qspi: add suspend/resume support This patch adds suspend and resume support for spi-stm32-qspi drivers. Signed-off-by: Ludovic Barre Signed-off-by: Mark Brown commit 3949ba3b3724e0304b0989ca4c1d785a1fb93ba0 Merge: 6d85028134d3 5356c2c70e38 Author: Mark Brown Date: Fri Mar 15 17:06:34 2019 +0000 Merge branch 'spi-5.1' into spi-5.2 for stm32 commit 5356c2c70e385198e1a753ee364323f2fc01f759 Author: Ludovic Barre Date: Fri Mar 8 14:12:20 2019 +0100 spi: spi-mem: stm32-qspi: avoid memory corruption at low frequency This patch solves a memory corruption seen at 8 MHz. To avoid such issue, timeout counter is disabled. Signed-off-by: Ludovic Barre Signed-off-by: Mark Brown commit 26843bb128590edd7eba1ad7ce22e4b9f1066ce3 Author: Geert Uytterhoeven Date: Tue Mar 12 19:45:13 2019 +0100 spi: rspi: Fix sequencer reset during initialization While the sequencer is reset after each SPI message since commit 880c6d114fd79a69 ("spi: rspi: Add support for Quad and Dual SPI Transfers on QSPI"), it was never reset for the first message, thus relying on reset state or bootloader settings. Fix this by initializing it explicitly during configuration. Fixes: 0b2182ddac4b8837 ("spi: add support for Renesas RSPI") Signed-off-by: Geert Uytterhoeven Signed-off-by: Mark Brown commit 42bdaaece121b3bb50fd4d1203d6d0170279f9fa Author: Geert Uytterhoeven Date: Tue Mar 12 19:43:31 2019 +0100 spi: rspi: Fix register initialization while runtime-suspended The Renesas RSPI/QSPI driver performs SPI controller register initialization in its spi_operations.setup() callback, without calling pm_runtime_get_sync() first, which may cause spurious failures. So far this went unnoticed, as this SPI controller is typically used with a single SPI NOR FLASH containing the boot loader: 1. If the device's module clock is still enabled (left enabled by the bootloader, and not yet disabled by the clk_disable_unused() late initcall), register initialization succeeds, 2. If the device's module clock is disabled, register writes don't seem to cause lock-ups or crashes. Data received in the first SPI message may be corrupted, though. Subsequent SPI messages seem to be OK. E.g. on r8a7791/koelsch, one bit is lost while receiving the 6th byte of the JEDEC ID for the s25fl512s FLASH, corrupting that byte and all later bytes. But until commit a2126b0a010905e5 ("mtd: spi-nor: refine Spansion S25FL512S ID"), the 6th byte was not considered for FLASH identification. Fix this by moving all initialization from the .setup() to the .prepare_message() callback. The latter is always called after the device has been runtime-resumed by the SPI core. This also makes the driver follow the rule that .setup() must not change global driver state or register values, as that might break a transfer in progress. Fixes: 490c97747d5dc77d ("spi: rspi: Add runtime PM support, using spi core auto_runtime_pm") Signed-off-by: Geert Uytterhoeven Signed-off-by: Mark Brown commit db7ecb493cab3f27da72c6460991e1de9969f9b8 Author: Axel Lin Date: Tue Mar 12 23:47:59 2019 +0800 regulator: da9055: Convert to regulator core's simplified DT parsing code Use regulator core's simplified DT parsing code to simply the driver implementation. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 67ddc68a78b1b762a8799a8cd9c075c7edcd546a Author: Axel Lin Date: Tue Mar 12 23:47:58 2019 +0800 regulator: da9052: Convert to regulator core's simplified DT parsing code Use regulator core's simplified DT parsing code to simply the driver implementation. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 6cabb8b7fc1428eb573f426a17a853d81227d095 Author: Axel Lin Date: Thu Mar 14 19:55:19 2019 +0800 regulator: 88pm800: Get rid of struct pm800_regulators The struct pm800_regulators only has 2 members: *chip and *map. The pm800_data->chip is not used. The pm800_data->map is not necessary. Thus remove the struct pm800_regulators. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 3789debfc379ac84b90e2db32d7a6b66d28a2c7c Author: Bard liao Date: Wed Mar 13 21:49:43 2019 +0800 ASoC: topology: create tlv before soc_tplg_init_kcontrol Component driver may want to use tlv data. Create tlv before soc_tplg_init_kcontrol so component driver can use the tlv data in the control_load ops. Signed-off-by: Bard liao Acked-by: Pierre-Louis Bossart Signed-off-by: Mark Brown commit daeaaef5ef3b0abff202861e006d47d43d63bc5f Author: Lucas De Marchi Date: Fri Mar 8 19:57:27 2019 -0800 drm/i915/icl: remove intel_dpll_is_combophy() This is only used in intel_display() and shouldn't be needed there. We don't want to keep converting from pll id to pll type so just remove the function. Signed-off-by: Lucas De Marchi Reviewed-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190309035727.25389-6-lucas.demarchi@intel.com commit 2f3ee43cb9f3d3c35e9b5e572fbc72d38cc390f0 Author: Lucas De Marchi Date: Fri Mar 8 19:57:26 2019 -0800 drm/i915/icl: split combo and tbt pll funcs Like was done for MG and combo, now finish the per-type split of the vfunc by moving TBT out of the combo functions. Now we can completely remove icl_pll_id_to_enable_reg() since each PLL type passes all the information via arguments. Signed-off-by: Lucas De Marchi Reviewed-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190309035727.25389-5-lucas.demarchi@intel.com commit 9be8644a14c623849c821accbbcb9484a010af58 Author: Lucas De Marchi Date: Fri Mar 8 19:57:25 2019 -0800 drm/i915/icl: split combo and mg pll disable Like was done in the enable case, split the implementation of the disable for MG and Combo PLLs. Signed-off-by: Lucas De Marchi Reviewed-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190309035727.25389-4-lucas.demarchi@intel.com commit 036f8d567b6c64dc1063c2f768b67073f694d251 Author: Lucas De Marchi Date: Fri Mar 8 19:57:24 2019 -0800 drm/i915/icl: split pll enable in three steps Create separate functions to 1) enable power, 2) write pll config, and 3) enable pll. Doing this it makes it easier to share the functions for the different PLL types by passing the right arguments. Signed-off-by: Lucas De Marchi Reviewed-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190309035727.25389-3-lucas.demarchi@intel.com commit d2ab5ebf46b4b2c71e94cc08e098b0686cb9db18 Author: Lucas De Marchi Date: Fri Mar 8 19:57:23 2019 -0800 drm/i915/icl: split combo and mg pll enable Let's start using the vfuncs to differentiate MG and Combo PLLs. The end goal is to decouple the type of the PLL from the IDs since the latter are likely to change from one platform to another. This also makes the code easier to read by not having lots of if/else chains on leaf functions. Signed-off-by: Lucas De Marchi Reviewed-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190309035727.25389-2-lucas.demarchi@intel.com commit a2775bbc1d58ce630517dfe86090c166f27d719f Author: Mathieu Malaterre Date: Tue Mar 12 21:21:26 2019 +0100 kernel/workqueue: Use __printf markup to silence compiler in function 'alloc_workqueue' Silence warnings (triggered at W=1) by adding relevant __printf attributes. kernel/workqueue.c:4249:2: warning: function 'alloc_workqueue' might be a candidate for 'gnu_printf' format attribute [-Wsuggest-attribute=format] Signed-off-by: Mathieu Malaterre Signed-off-by: Tejun Heo commit 41a1bde3671582bd0fc9e57f1f1c355a24db6bc4 Author: Chris Wilson Date: Wed Mar 13 16:28:35 2019 +0000 drm/i915: Always kick the execlists tasklet after reset With direct submission being disabled while the reset in progress, we have a small window where we may forgo the submission of a new request and not notice its addition during execlists_reset_finish. To close this window, always schedule the submission tasklet on coming out of reset to catch any residual work. <6> [333.144082] i915: Running intel_hangcheck_live_selftests/igt_reset_engines <3> [333.296927] i915_reset_engine(rcs0:idle): failed to idle after reset <6> [333.296932] i915 0000:00:02.0: [drm] rcs0 <6> [333.296934] i915 0000:00:02.0: [drm] Hangcheck 0:a9ddf7a5 [4157 ms] <6> [333.296936] i915 0000:00:02.0: [drm] Reset count: 36048 (global 754) <6> [333.296938] i915 0000:00:02.0: [drm] Requests: <6> [333.296997] i915 0000:00:02.0: [drm] RING_START: 0x00000000 <6> [333.296999] i915 0000:00:02.0: [drm] RING_HEAD: 0x00000000 <6> [333.297001] i915 0000:00:02.0: [drm] RING_TAIL: 0x00000000 <6> [333.297003] i915 0000:00:02.0: [drm] RING_CTL: 0x00000000 <6> [333.297005] i915 0000:00:02.0: [drm] RING_MODE: 0x00000200 [idle] <6> [333.297007] i915 0000:00:02.0: [drm] RING_IMR: fffffeff <6> [333.297010] i915 0000:00:02.0: [drm] ACTHD: 0x00000000_00000000 <6> [333.297012] i915 0000:00:02.0: [drm] BBADDR: 0x00000000_00000000 <6> [333.297015] i915 0000:00:02.0: [drm] DMA_FADDR: 0x00000000_00000000 <6> [333.297017] i915 0000:00:02.0: [drm] IPEIR: 0x00000000 <6> [333.297019] i915 0000:00:02.0: [drm] IPEHR: 0x00000000 <6> [333.297021] i915 0000:00:02.0: [drm] Execlist status: 0x00000001 00000000 <6> [333.297023] i915 0000:00:02.0: [drm] Execlist CSB read 5, write 5 [mmio:7], tasklet queued? no (enabled) <6> [333.297025] i915 0000:00:02.0: [drm] ELSP[0] idle <6> [333.297027] i915 0000:00:02.0: [drm] ELSP[1] idle <6> [333.297028] i915 0000:00:02.0: [drm] HW active? 0x0 <6> [333.297044] i915 0000:00:02.0: [drm] Queue priority hint: -8186 <6> [333.297067] i915 0000:00:02.0: [drm] Q 2afac:5f2+ prio=-8186 @ 50ms: (null) <6> [333.297068] i915 0000:00:02.0: [drm] HWSP: <6> [333.297071] i915 0000:00:02.0: [drm] [0000] 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 <6> [333.297073] i915 0000:00:02.0: [drm] * <6> [333.297075] i915 0000:00:02.0: [drm] [0040] 00000001 00000000 00000018 00000002 00000001 00000000 00000018 00000000 <6> [333.297077] i915 0000:00:02.0: [drm] [0060] 00000001 00000000 00008002 00000002 00000000 00000000 00000000 00000005 <6> [333.297079] i915 0000:00:02.0: [drm] [0080] 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 <6> [333.297081] i915 0000:00:02.0: [drm] * <6> [333.297083] i915 0000:00:02.0: [drm] [00c0] 00000000 00000000 00000000 00000000 a9ddf7a5 00000000 00000000 00000000 <6> [333.297085] i915 0000:00:02.0: [drm] [00e0] 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 <6> [333.297087] i915 0000:00:02.0: [drm] * <6> [333.297089] i915 0000:00:02.0: [drm] Idle? no <6> [333.297090] i915_reset_engine(rcs0:idle): 3000 resets <3> [333.297092] i915/intel_hangcheck_live_selftests: igt_reset_engines failed with error -5 <3> [333.455460] i915 0000:00:02.0: Failed to idle engines, declaring wedged! ... <0> [333.491294] i915_sel-4916 1.... 333262143us : i915_reset_engine: rcs0 flags=4 <0> [333.491328] i915_sel-4916 1.... 333262143us : execlists_reset_prepare: rcs0: depth<-0 <0> [333.491362] i915_sel-4916 1.... 333262143us : intel_engine_stop_cs: rcs0 <0> [333.491396] i915_sel-4916 1d..1 333262144us : process_csb: rcs0 cs-irq head=5, tail=5 <0> [333.491424] i915_sel-4916 1.... 333262145us : intel_gpu_reset: engine_mask=1 <0> [333.491454] kworker/-214 5.... 333262184us : i915_gem_switch_to_kernel_context: awake?=yes <0> [333.491487] kworker/-214 5.... 333262192us : i915_request_add: rcs0 fence 2afac:1522 <0> [333.491520] kworker/-214 5.... 333262193us : i915_request_add: marking (null) as active <0> [333.491553] i915_sel-4916 1.... 333262199us : intel_engine_cancel_stop_cs: rcs0 <0> [333.491587] i915_sel-4916 1.... 333262199us : execlists_reset_finish: rcs0: depth->0 Signed-off-by: Chris Wilson Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190313162835.30228-1-chris@chris-wilson.co.uk commit 29054230f3e11ea818eccfa7bb4e4b3e89544164 Author: Ryan Pavlik Date: Mon Dec 3 10:46:44 2018 -0600 drm: add non-desktop quirks to Sensics and OSVR headsets. Add two EDID vendor/product pairs used across a variety of Sensics products, as well as the OSVR HDK and HDK 2. Signed-off-by: Ryan Pavlik Signed-off-by: Daniel Stone Reviewed-by: Daniel Stone Reviewed-by: Philipp Zabel Link: https://patchwork.freedesktop.org/patch/msgid/20181203164644.13974-1-ryan.pavlik@collabora.com Cc: # v4.15+ commit 2ebd000abc3f0bfb91ff7c918d1c2a9ebabda86b Author: Chris Wilson Date: Thu Mar 14 22:38:39 2019 +0000 drm/i915/gtt: Refactor common ppgtt initialisation The basic setup of the i915_hw_ppgtt is the same between gen6 and gen8, so refactor that into a common routine. Signed-off-by: Chris Wilson Cc: Bob Paauwe Cc: Matthew Auld Cc: Joonas Lahtinen Reviewed-by: Rodrigo Vivi Link: https://patchwork.freedesktop.org/patch/msgid/20190314223839.28258-5-chris@chris-wilson.co.uk commit a9fe9ca44c918b44f8fb85d4571d3386f390be4f Author: Chris Wilson Date: Thu Mar 14 22:38:38 2019 +0000 drm/i915/gtt: Rename i915_vm_is_48b to i915_vm_is_4lvl Large ppGTT are differentiated by the requirement to go to four levels to address more than 32b. Given the introduction of more 4 level ppGTT with different sizes of addressable bits, rename i915_vm_is_48b() to better reflect the commonality of using 4 levels. Based on a patch by Bob Paauwe. Signed-off-by: Chris Wilson Cc: Bob Paauwe Cc: Matthew Auld Cc: Joonas Lahtinen Reviewed-by: Rodrigo Vivi Link: https://patchwork.freedesktop.org/patch/msgid/20190314223839.28258-4-chris@chris-wilson.co.uk commit 51d623b675b6624a2b2409fd0c45d1d26c180827 Author: Chris Wilson Date: Thu Mar 14 22:38:37 2019 +0000 drm/i915: Drop address size from ppgtt_type With the introduction of the separate addressable bits into the device info, we can remove the conflation of the ppgtt size from the ppgtt type. Based on a patch by Bob Paauwe. Signed-off-by: Chris Wilson Cc: Bob Paauwe Cc: Matthew Auld Cc: Joonas Lahtinen Reviewed-by: Rodrigo Vivi Link: https://patchwork.freedesktop.org/patch/msgid/20190314223839.28258-3-chris@chris-wilson.co.uk commit cbecbccaa120fd976c2777ea80035675d6e39ec0 Author: Chris Wilson Date: Thu Mar 14 22:38:36 2019 +0000 drm/i915: Record platform specific ppGTT size in intel_device_info As the maximum addressable bits is determined by platform, record that information in our static chipset tables. This has the advantage of being clearly recorded in our capability dumps for dmesg, debugfs and error states. Based on a patch by Bob Paauwe. Signed-off-by: Chris Wilson Cc: Bob Paauwe Cc: Matthew Auld Cc: Joonas Lahtinen Reviewed-by: Rodrigo Vivi Link: https://patchwork.freedesktop.org/patch/msgid/20190314223839.28258-2-chris@chris-wilson.co.uk commit ca6ac684de5d8091cca4b4eb78c54610101a0033 Author: Chris Wilson Date: Thu Mar 14 22:38:35 2019 +0000 drm/i915: Mark up vGPU support for full-ppgtt For compatibility reasons, we only care if the vGPU host provides support for full-ppgtt. This is independent of the addressable memory size, so remove the conflation of 48b from the capability name. Based on a patch by Bob Paauwe. Signed-off-by: Chris Wilson Cc: Bob Paauwe Cc: Zhenyu Wang Cc: Zhi Wang Reviewed-by: Rodrigo Vivi Reviewed-by: Zhenyu Wang Link: https://patchwork.freedesktop.org/patch/msgid/20190314223839.28258-1-chris@chris-wilson.co.uk commit 527261ddf1ac7f074e9531473192978e33b8fa85 Author: Maxime Ripard Date: Thu Mar 14 21:16:23 2019 +0100 drm/sun4i: mixer: Simplify the get_id logic Using the new helpers introduced since we wrote that code, we can simplify the code to retrieve the mixer ID significantly. The new code will also allow us to deal nicely with endpoints that don't have a reg property, as expected in the case where there's a single endpoint for a given port. Signed-off-by: Maxime Ripard Reviewed-by: Chen-Yu Tsai Link: https://patchwork.freedesktop.org/patch/msgid/3da40505e18a981c5ad626127e14ff594a826ef5.1552594551.git-series.maxime.ripard@bootlin.com commit eb40baefb64063b585740ecf0b1be6c859166ad4 Author: Maxime Ripard Date: Thu Mar 14 21:16:22 2019 +0100 drm/sun4i: backend: Simplify the get_id logic Using the new helpers introduced since we wrote that code, we can simplify the code to retrieve the backend ID significantly. The new code will also allow us to deal nicely with endpoints that don't have a reg property, as expected in the case where there's a single endpoint for a given port. Signed-off-by: Maxime Ripard Reviewed-by: Chen-Yu Tsai Link: https://patchwork.freedesktop.org/patch/msgid/1a9bf911b0a40475da8025859032514131d5397b.1552594551.git-series.maxime.ripard@bootlin.com commit 29b43ae2a61d4836948cbefdcfb08ab02463e821 Author: Rodrigo Vivi Date: Wed Mar 13 14:43:07 2019 -0700 drm/i915: Also use new comparative stuff for more ICP+ stuff I just noticed that initial PCH comparative patch left some >= PCH_ICP cases behind. Let's also cover these cases and leave only the pin map behind now. No functional change. Hence no fixes tag. Cc: Lucas De Marchi Signed-off-by: Rodrigo Vivi Reviewed-by: Lucas De Marchi Link: https://patchwork.freedesktop.org/patch/msgid/20190313214307.26573-1-rodrigo.vivi@intel.com commit 40609d4820b21ff0bb0a58e196601a6747fd55b7 Author: Eric Anholt Date: Thu Mar 14 09:34:51 2019 -0700 drm/v3d: Use the new shmem helpers to reduce driver boilerplate. The new shmem helpers from Noralf and Rob abstract out a bunch of our BO creation and mapping code. v2: Use the new sgt getter, and flag pages as dirty before freeing. v3: Remove the mismatched put_pages. Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190314163451.13431-1-eric@anholt.net Reviewed-by: Rob Herring (v2) commit 2194a63a818db71065ebe09c8104f5f021ca4e7b Author: Noralf Trønnes Date: Tue Mar 12 19:43:44 2019 -0500 drm: Add library for shmem backed GEM objects This adds a library for shmem backed GEM objects. v8: - export drm_gem_shmem_create_with_handle - call mapping_set_gfp_mask to set default zone to GFP_HIGHUSER - Add helper drm_gem_shmem_get_pages_sgt() v7: - Use write-combine for mmap instead. This is the more common case. (robher) v6: - Fix uninitialized variable issue in an error path (anholt). - Add a drm_gem_shmem_vm_open() to the fops to get proper refcounting of the pages (anholt). v5: - Drop drm_gem_shmem_prime_mmap() (Daniel Vetter) - drm_gem_shmem_mmap(): Subtract drm_vma_node_start() to get the real vma->vm_pgoff - drm_gem_shmem_fault(): Use vmf->pgoff now that vma->vm_pgoff is correct v4: - Drop cache modes (Thomas Hellstrom) - Add a GEM attached vtable v3: - Grammar (Sam Ravnborg) - s/drm_gem_shmem_put_pages_unlocked/drm_gem_shmem_put_pages_locked/ (Sam Ravnborg) - Add debug output in error path (Sam Ravnborg) Signed-off-by: Noralf Trønnes Signed-off-by: Eric Anholt Signed-off-by: Rob Herring Signed-off-by: Eric Anholt Reviewed-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190313004344.24169-1-robh@kernel.org commit 2de3a078497b4fd7f77964602445521f7a534cfb Author: Manasi Navare Date: Tue Mar 12 19:17:22 2019 -0700 drm/dp: Set the connector's TILE property even for DP SST connectors Current driver sets the tile property only for DP MST connectors. However there are some tiled displays where each SST connector carries a single tile. So we need to attach this property object for every connector and set it for every connector (DP SST and MST). Plus since the tile information is obtained as a result of EDID parsing, the best place to update tile property is where we update edid property. Also now we dont need to explicitly set this now for MST connectors. This has been tested with xrandr --props and modetest and verified that TILE property is exposed correctly. Cc: Dave Airlie Cc: Jani Nikula Cc: Daniel Vetter Cc: Ville Syrjälä Signed-off-by: Manasi Navare Reviewed-by: Alex Deucher Link: https://patchwork.freedesktop.org/patch/msgid/20190313021722.10068-1-manasi.d.navare@intel.com commit e8074f75f4449b9f9315f3a81d5d72425fba0a8c Author: Andrey Grodzovsky Date: Tue Mar 12 12:57:02 2019 -0400 drm/v3d: Fix calling drm_sched_resubmit_jobs for same sched. Also stop calling drm_sched_increase_karma multiple times. v2: Fix whitespace in the code we're moving (by anholt) Signed-off-by: Andrey Grodzovsky Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/1552409822-17230-1-git-send-email-andrey.grodzovsky@amd.com Acked-by: Christian König Reviewed-by: Eric Anholt Fixes: 222b5f044159 ("drm/sched: Refactor ring mirror list handling.") commit a83e47e421ec5c4c5d6cae099cd54e3ce5b2bd06 Author: Eric Anholt Date: Fri Mar 8 08:17:15 2019 -0800 drm/v3d: Remove some dead members of struct v3d_bo. vmas was from the previous model of page table management (one per fd), and vaddr was left over from vc4. Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190308161716.2466-4-eric@anholt.net Acked-by: Rob Herring commit c2b3e61a8df2da681ea291ca65c27a13685959bc Author: Eric Anholt Date: Fri Mar 8 08:17:14 2019 -0800 drm/v3d: Use drm_gem_lock_reservations()/drm_gem_unlock_reservations() Now that we have core helpers, this gets rid of a lot of boilerplate. Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190308161716.2466-3-eric@anholt.net Acked-by: Rob Herring commit 7edc3e3b975b5b3b1de313f43670738acbcc8e1d Author: Eric Anholt Date: Fri Mar 8 08:17:13 2019 -0800 drm: Add helpers for locking an array of BO reservations. Now that we have the reservation object in the GEM object, it's easy to provide a helper for this common case. Noticed while reviewing panfrost and lima drivers. This particular version came out of v3d, which in turn was a copy from vc4. v2: Fix kerneldoc warnings. Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190308161716.2466-2-eric@anholt.net Acked-by: Rob Herring (v1) commit 6d85028134d3f4f946924e2f9f0aaff47d9de840 Author: Arnd Bergmann Date: Wed Mar 13 22:00:34 2019 +0100 spi: fix SPI_BPW_RANGE_MASK() regression Geert points out that I confused the min/max arguments that are reversed between SPI_BPW_RANGE_MASK() and GENMASK(). This time I have verified the result of the macro after fixing the arguments. Cc: Geert Uytterhoeven Fixes: eefffb42f665 ("spi: work around clang bug in SPI_BPW_RANGE_MASK()") Signed-off-by: Arnd Bergmann Reviewed-by: Geert Uytterhoeven Signed-off-by: Mark Brown commit 67d4119c07a7f17043711a88dade69f08c3d6e03 Author: Chris Wilson Date: Thu Mar 14 08:44:32 2019 +0000 drm/i915: Refactor to common helpers for prepare/finish between reset & wedge Since both GPU reset and declaring the device wedged suspend ongoing driver activity around a hard reset, we can reuse the same code to reduce the likelihood of forgetting details surrounding reset from either path. Signed-off-by: Chris Wilson Cc: Mika Kuoppala Cc: Daniele Ceraolo Spurio Cc: Michal Wajdeczko Cc: Sujaritha Sundaresan Reviewed-by: Michal Wajdeczko Link: https://patchwork.freedesktop.org/patch/msgid/20190314084432.3740-1-chris@chris-wilson.co.uk commit d2eeaf2bc04941444bfd52285b6183d6c84c262c Author: Chris Wilson Date: Wed Mar 13 20:59:44 2019 +0000 drm/i915/selftests: Disable preemption while setting up fence-timers The impossible happens and a future fence expired while we were still initialising. The probable cause is that the test was preempted and we lost our scheduler cpu slice. Disable preemption during this test to rule out preemption as a source of timer disruption. References: https://bugs.freedesktop.org/show_bug.cgi?id=110039 Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190313205944.5768-1-chris@chris-wilson.co.uk commit 628ac441e8547340ea47f701c3b87ec60831e8f2 Author: Sujaritha Sundaresan Date: Thu Mar 7 10:44:44 2019 -0800 drm/i915/guc: Preparing for GuC reset along with engine reset Adding the call to prepare for guc reset along with engine reset. intel_uc_reset_prepare() calls to disable guc communication and to sanitize. Cc: Daniele Ceraolo Spurio Cc: Michal Wajdeczko Signed-off-by: Sujaritha Sundaresan Reviewed-by: Daniele Ceraolo Spurio Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190307184445.25895-1-sujaritha.sundaresan@intel.com commit 8a9a5608a31b23a8da4be67285176dd4cacfa574 Author: José Roberto de Souza Date: Tue Mar 12 12:57:43 2019 -0700 drm/i915/icl+: Always use TPS2 or TPS3 when exiting PSR1 When any other value than EDP_PSR_TP4_TIME_0US is set, TPS1 and TPS4 will be used to do the link training when exiting PSR1. Happily the eDP panels tested so far was able to sync with source even without HBR3/TPS4 support but let use the right training pattern. TPS4 support was added to PSR1 registers because HBR3/PSR specification was not closed when ICL was freezed so if HBR3 was supported by PSR, ICL would already be ready but it was not added to specification so lets always disable TPS4. v3: Missed ";" SPANK SPANK SPANK!!! BSpec: 17524 Cc: Rodrigo Vivi Cc: Dhinakaran Pandiyan Reviewed-by: Rodrigo Vivi Signed-off-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190312195743.8829-3-jose.souza@intel.com commit 1e0c05c09037c593f0c06054a28c1021e13e8dfa Author: José Roberto de Souza Date: Tue Mar 12 12:57:42 2019 -0700 drm/i915/psr: Move logic to get TPS registers values to another function This will make hsw_activate_psr1() more easy to read and will make future modification to TPS registers more easy to review and read. v4: Rename new function to intel_psr1_get_tp_time() (Dhinakaran and Rodrigo) Cc: Dhinakaran Pandiyan Cc: Rodrigo Vivi Reviewed-by: Rodrigo Vivi Signed-off-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190312195743.8829-2-jose.souza@intel.com commit 88a0d9606aff09d2b1c5dbe95a9df9dac44e79b6 Author: José Roberto de Souza Date: Tue Mar 12 12:57:41 2019 -0700 drm/i915/vbt: Parse and use the new field with PSR2 TP2/3 wakeup time A new field with the training pattern(TP) wakeup time for PSR2 was added to VBT, so lets use it when available otherwise it will fallback to PSR1 wakeup time. v2: replacing enum to numerical usec time (Jani) BSpec: 20131 Cc: Jani Nikula Cc: Dhinakaran Pandiyan Cc: Rodrigo Vivi Reviewed-by: Rodrigo Vivi Signed-off-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190312195743.8829-1-jose.souza@intel.com commit c6c30b917d40047cfd19f7a28a8eea7b6ddd6634 Author: Rodrigo Vivi Date: Fri Mar 8 13:43:00 2019 -0800 drm/i915: Start using comparative INTEL_PCH_TYPE In order to make it easier to bring up new platforms without having to take care about all corner cases that was previously taken care for previous platforms we already use comparative INTEL_GEN statements. Let's start doing the same with PCH. The only caveats are: - less-than comparisons need to be avoided or done with attention and check > PCH_NONE as well. - It is not necessarily a chronological order, but a matter of south display compatibility/inheritance. v2: Rebased on top of Jani's clean-up which removed the need for less-than comparison Cc: Jani Nikula Cc: Ville Syrjälä Cc: Lucas De Marchi Signed-off-by: Rodrigo Vivi Reviewed-by: Lucas De Marchi Link: https://patchwork.freedesktop.org/patch/msgid/20190308214300.25057-3-rodrigo.vivi@intel.com commit fba84ad28e3b95d3cc17c4bfe16acb6bb4f4aa71 Author: Rodrigo Vivi Date: Fri Mar 8 13:42:59 2019 -0800 drm/i915: Move PCH_NOP to -1 So we can later use PCH >= comparisons. The ultimate goal is to make it easier for us to introduce a new platform with south display engine on PCH just by reusing the previous one. Suggested-by: Lucas De Marchi Cc: Lucas De Marchi Signed-off-by: Rodrigo Vivi Reviewed-by: Lucas De Marchi Link: https://patchwork.freedesktop.org/patch/msgid/20190308214300.25057-2-rodrigo.vivi@intel.com commit 2dd24a9c2c8d767a976da37d59680f09b9d111ab Author: Rodrigo Vivi Date: Fri Mar 8 13:42:58 2019 -0800 drm/i915/gen11+: First assume next platforms will inherit stuff This exactly same approach was already used from gen9 to gen10 and from gen10 to gen11. Let's also use it for gen11+. Let's first assume that we inherit a similar platform and than we apply the differences on top. Different from the previous attempts this will be done this time with coccinelle. We obviously need to exclude some case that is really exclusive for gen11 like PCH, Firmware, and few others. Luckly this was easy to filter by selecting the files we are touching with coccinelle as exposed below: spatch -sp_file gen11\+.cocci --in-place i915_perf.c \ intel_bios.c intel_cdclk.c intel_ddi.c \ intel_device_info.c intel_display.c intel_dpll_mgr.c \ intel_dsi_vbt.c intel_hdmi.c intel_mocs.c intel_color.c @noticelake@ expression e; @@ -!IS_ICELAKE(e) +INTEL_GEN(e) < 11 @notgen11@ expression e; @@ -!IS_GEN(e, 11) +INTEL_GEN(e) < 11 @icelake@ expression e; @@ -IS_ICELAKE(e) +INTEL_GEN(e) >= 11 @gen11@ expression e; @@ -IS_GEN(e, 11) +INTEL_GEN(e) >= 11 No functional change. v2: Remove intel_lrc.c per Tvrtko request since those were w/a for ICL hw issuea and media related configuration. Cc: Tvrtko Ursulin Cc: Lucas De Marchi Signed-off-by: Rodrigo Vivi Reviewed-by: Lucas De Marchi Link: https://patchwork.freedesktop.org/patch/msgid/20190308214300.25057-1-rodrigo.vivi@intel.com commit d33d9f3dd96ba290bad3929f82990a0a7467ae90 Author: Dennis Zhou Date: Tue Feb 26 10:46:48 2019 -0800 percpu: use chunk scan_hint to skip some scanning Just like blocks, chunks now maintain a scan_hint. This can be used to skip some scanning by promoting the scan_hint to be the contig_hint. The chunk's scan_hint is primarily updated on the backside and relies on full scanning when a block becomes free or the free region spans across blocks. Signed-off-by: Dennis Zhou Reviewed-by: Peng Fan commit 92c14cab43267411bc9160f23d55a7548d814483 Author: Dennis Zhou Date: Tue Feb 26 10:00:08 2019 -0800 percpu: convert chunk hints to be based on pcpu_block_md As mentioned in the last patch, a chunk's hints are no different than a block just responsible for more bits. This converts chunk level hints to use a pcpu_block_md to maintain them. This lets us reuse the same hint helper functions as a block. The left_free and right_free are unused by the chunk's pcpu_block_md. Signed-off-by: Dennis Zhou Reviewed-by: Peng Fan commit 047924c96898266e9a37412434abd1db72600384 Author: Dennis Zhou Date: Tue Feb 26 09:56:16 2019 -0800 percpu: make pcpu_block_md generic In reality, a chunk is just a block covering a larger number of bits. The hints themselves are one in the same. Rather than maintaining the hints separately, first introduce nr_bits to genericize pcpu_block_update() to correctly maintain block->right_free. The next patch will convert chunk hints to be managed as a pcpu_block_md. Signed-off-by: Dennis Zhou Reviewed-by: Peng Fan commit da3afdd5bb5428fd38b4b64f2d5e897c3bb78354 Author: Dennis Zhou Date: Mon Feb 25 14:10:15 2019 -0800 percpu: use block scan_hint to only scan forward Blocks now remember the latest scan_hint. This can be used on the allocation path as when a contig_hint is broken, we can promote the scan_hint to the contig_hint and scan forward from there. This works because pcpu_block_refresh_hint() is only called on the allocation path while block free regions are updated manually in pcpu_block_update_hint_free(). Signed-off-by: Dennis Zhou commit b89462a9c5f4a3ac5160e7b3599bb09c94b94880 Author: Dennis Zhou Date: Fri Feb 22 09:03:16 2019 -0800 percpu: remember largest area skipped during allocation Percpu allocations attempt to do first fit by scanning forward from the first_free of a block. However, fragmentation from allocation requests can cause holes not seen by block hint update functions. To address this, create a local version of bitmap_find_next_zero_area_off() that remembers the largest area skipped over. The caveat is that it only sees regions skipped over due to not fitting, not regions skipped due to alignment. Prior to updating the scan_hint, a scan backwards is done to try and recover free bits skipped due to alignment. While this can cause scanning to miss earlier possible free areas, smaller allocations will eventually fill those holes due to first fit. Signed-off-by: Dennis Zhou commit 382b88e961c7a4196e01cef3249297583d02d608 Author: Dennis Zhou Date: Mon Feb 25 13:41:45 2019 -0800 percpu: add block level scan_hint Fragmentation can cause both blocks and chunks to have an early first_firee bit available, but only able to satisfy allocations much later on. This patch introduces a scan_hint to help mitigate some unnecessary scanning. The scan_hint remembers the largest area prior to the contig_hint. If the contig_hint == scan_hint, then scan_hint_start > contig_hint_start. This is necessary for scan_hint discovery when refreshing a block. Signed-off-by: Dennis Zhou Reviewed-by: Peng Fan commit b239f7daf5530f562000bf55f02cc8028703f507 Author: Dennis Zhou Date: Wed Feb 13 11:10:30 2019 -0800 percpu: set PCPU_BITMAP_BLOCK_SIZE to PAGE_SIZE Previously, block size was flexible based on the constraint that the GCD(PCPU_BITMAP_BLOCK_SIZE, PAGE_SIZE) > 1. However, this carried the overhead that keeping a floating number of populated free pages required scanning over the free regions of a chunk. Setting the block size to be fixed at PAGE_SIZE lets us know when an empty page becomes used as we will break a full contig_hint of a block. This means we no longer have to scan the whole chunk upon breaking a contig_hint which empty page management piggybacked off. A later patch takes advantage of this to optimize the allocation path by only scanning forward using the scan_hint introduced later too. Signed-off-by: Dennis Zhou Reviewed-by: Peng Fan commit 8744d859427c6198dce490619809754336954297 Author: Dennis Zhou Date: Mon Feb 25 09:03:50 2019 -0800 percpu: relegate chunks unusable when failing small allocations In certain cases, requestors of percpu memory may want specific alignments. However, it is possible to end up in situations where the contig_hint matches, but the alignment does not. This causes excess scanning of chunks that will fail. To prevent this, if a small allocation fails (< 32B), the chunk is moved to the empty list. Once an allocation is freed from that chunk, it is placed back into rotation. Signed-off-by: Dennis Zhou Reviewed-by: Peng Fan commit 3e54097beb228ddcd73bb2fd18bafaa1062e9fe4 Author: Dennis Zhou Date: Mon Feb 25 13:43:38 2019 -0800 percpu: manage chunks based on contig_bits instead of free_bytes When a chunk becomes fragmented, it can end up having a large number of small allocation areas free. The free_bytes sorting of chunks leads to unnecessary checking of chunks that cannot satisfy the allocation. Switch to contig_bits sorting to prevent scanning chunks that may not be able to service the allocation request. Signed-off-by: Dennis Zhou Reviewed-by: Peng Fan commit d9f3a01eebe80180babd8541406490020f184d17 Author: Dennis Zhou Date: Thu Feb 21 15:44:35 2019 -0800 percpu: introduce helper to determine if two regions overlap While block hints were always accurate, it's possible when spanning across blocks that we miss updating the chunk's contig_hint. Rather than rely on correctness of the boundaries of hints, do a full overlap comparison. A future patch introduces the scan_hint which makes the contig_hint slightly fuzzy as they can at times be smaller than the actual hint. Signed-off-by: Dennis Zhou commit 8c43004af01635cc9fbb11031d070e5e0d327ef2 Author: Dennis Zhou Date: Thu Feb 21 15:54:11 2019 -0800 percpu: do not search past bitmap when allocating an area pcpu_find_block_fit() guarantees that a fit is found within PCPU_BITMAP_BLOCK_BITS. Iteration is used to determine the first fit as it compares against the block's contig_hint. This can lead to incorrectly scanning past the end of the bitmap. The behavior was okay given the check after for bit_off >= end and the correctness of the hints from pcpu_find_block_fit(). This patch fixes this by bounding the end offset by the number of bits in a chunk. Signed-off-by: Dennis Zhou Reviewed-by: Peng Fan commit 8e5a2b9893f36457582596fdade10f6feb2797ee Author: Dennis Zhou Date: Thu Feb 21 15:50:19 2019 -0800 percpu: update free path with correct new free region When updating the chunk's contig_hint on the free path of a hint that does not touch the page boundaries, it was incorrectly using the starting offset of the free region and the block's contig_hint. This could lead to incorrect assumptions about fit given a size and better alignment of the start. Fix this by using (end - start) as this is only called when updating a hint within a block. Signed-off-by: Dennis Zhou Reviewed-by: Peng Fan commit f435fe83d56b8b804c4204246bccba7749f605f9 Merge: a0689e347e46 a94bed60cb73 Author: Sean Paul Date: Wed Mar 13 14:07:32 2019 -0400 Merge tag 'topic/hdr-formats-2019-03-13' of git://anongit.freedesktop.org/drm/drm-misc into drm-misc-next Add support for floating point half-width formats. Signed-off-by: Sean Paul From: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/00b96cd5-91c7-5677-9620-b138c7a92303@linux.intel.com commit 2131bc0ced6088648e47f126566c3da58b07e4ef Author: Thomas Preston Date: Wed Mar 6 20:06:18 2019 +0000 drm/i915/bios: assume eDP is present on port A when there is no VBT We rely on VBT DDI port info for eDP detection on GEN9 platforms and above. This breaks GEN9 platforms which don't have VBT because port A eDP now defaults to false. Fix this by defaulting to true when VBT is missing. Fixes: a98d9c1d7e9b ("drm/i915/ddi: Rely on VBT DDI port info for eDP detection") Signed-off-by: Thomas Preston Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190306200618.17405-1-thomas.preston@codethink.co.uk commit a0689e347e46571b1215655ac918d129cf54455c Author: Kieran Bingham Date: Tue Mar 12 00:33:07 2019 +0000 gpu: drm: atomic_helper: Fix spelling errors Trivial fixes identified while working on the DRM code. s/artifically/artificially/ s/achive/achieve/ v2: - Actually spell achieve correctly! Signed-off-by: Kieran Bingham Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190312003307.14116-1-kieran.bingham+renesas@ideasonboard.com commit 8fcb830a00f0980ffe38d223cdd9a4d2d24da476 Author: Volker Haspel Date: Tue Mar 12 11:12:03 2019 +0100 spi: spi-fsl-qspi: use devm_spi_register_controller The driver does not clearly unregister the spi controller. Therefore calling an unbind and bind again will end up in a Kernel crash. The function devm_spi_register_controller will automatically be unregister the SPI device. Signed-off-by: Volker Haspel Signed-off-by: John Ogness Signed-off-by: Mark Brown commit c842749ea1d32513f9e603c074d60d7aa07cb2ef Author: Trent Piepho Date: Mon Mar 4 20:18:49 2019 +0000 spi: imx: stop buffer overflow in RX FIFO flush Commit 71abd29057cb ("spi: imx: Add support for SPI Slave mode") added an RX FIFO flush before start of a transfer. In slave mode, the master may have sent more data than expected and this data will still be in the RX FIFO at the start of the next transfer, and so needs to be flushed. However, the code to do the flush was accidentally saving this data into the previous transfer's RX buffer, clobbering the contents of whatever followed that buffer. Change it to empty the FIFO and throw away the data. Every one of the RX functions for the different eCSPI versions and modes reads the RX FIFO data using the same readl() call, so just use that, rather than using the spi_imx->rx function pointer and making sure all the different rx functions have a working "throw away" mode. There is another issue, which affects master mode when switching from DMA to PIO. There can be extra data in the RX FIFO which triggers this flush code, causing memory corruption in the same manner. I don't know why this data is unexpectedly in the FIFO. It's likely there is a different bug or erratum responsible for that. But regardless of that, I think this is proper fix the for bug at hand here. Fixes: 71abd29057cb ("spi: imx: Add support for SPI Slave mode") Cc: Jiada Wang Cc: Fabio Estevam Cc: Stefan Agner Cc: Shawn Guo Signed-off-by: Trent Piepho Signed-off-by: Mark Brown commit dfeb7a93bf3b26e6779e0b38b25877c0540652e6 Author: Axel Lin Date: Wed Mar 13 00:33:57 2019 +0800 regulator: wm8350: Convert to use regulator_set/get_current_limit_regmap Use regulator_set/get_current_limit_regmap helpers to save some code. Signed-off-by: Axel Lin Acked-by: Charles Keepax Signed-off-by: Mark Brown commit d48acfd0377f901f348b6c48bdcc03723f19d9e7 Author: Axel Lin Date: Wed Mar 13 00:33:56 2019 +0800 regulator: wm831x-isink: Convert to use regulator_set/get_current_limit_regmap Use regulator_set/get_current_limit_regmap helpers to save some code. Signed-off-by: Axel Lin Acked-by: Charles Keepax Signed-off-by: Mark Brown commit 5816df2f75f52f74b6fe48b1b20579acd4dfe8fb Author: Axel Lin Date: Wed Mar 13 00:33:55 2019 +0800 regulator: wm8350: Select maximum current in specific range .set_current_limit callback should select the current closest to max_uA. Signed-off-by: Axel Lin Acked-by: Charles Keepax Signed-off-by: Mark Brown commit 45aa908d9b720f9fe44100fe099d6fd5ab9f12ab Author: Axel Lin Date: Wed Mar 13 00:33:54 2019 +0800 regulator: wm831x-isink: Select maximum current in specific range .set_current_limit callback should select the current closest to max_uA. Signed-off-by: Axel Lin Acked-by: Charles Keepax Signed-off-by: Mark Brown commit 8be64b6d87bd47d81753b60ddafe70102ebfd76b Author: Steve Twiss Date: Tue Feb 26 15:54:01 2019 +0000 regulator: wm831x ldo: Fix notifier mutex lock warning The mutex for the regulator_dev must be controlled by the caller of the regulator_notifier_call_chain(), as described in the comment for that function. Failure to mutex lock and unlock surrounding the notifier call results in a kernel WARN_ON_ONCE() which will dump a backtrace for the regulator_notifier_call_chain() when that function call is first made. The mutex can be controlled using the regulator_lock/unlock() API. Fixes: d1c6b4fe668b ("regulator: Add WM831x LDO support") Suggested-by: Adam Thomson Signed-off-by: Steve Twiss Acked-by: Charles Keepax Signed-off-by: Mark Brown commit f7a621728a6a23bfd2c6ac4d3e42e1303aefde0f Author: Steve Twiss Date: Tue Feb 26 15:51:28 2019 +0000 regulator: wm831x isink: Fix notifier mutex lock warning The mutex for the regulator_dev must be controlled by the caller of the regulator_notifier_call_chain(), as described in the comment for that function. Failure to mutex lock and unlock surrounding the notifier call results in a kernel WARN_ON_ONCE() which will dump a backtrace for the regulator_notifier_call_chain() when that function call is first made. The mutex can be controlled using the regulator_lock/unlock() API. Fixes: d4d6b722e780 ("regulator: Add WM831x ISINK support") Suggested-by: Adam Thomson Signed-off-by: Steve Twiss Acked-by: Charles Keepax Signed-off-by: Mark Brown commit ae15c519a6b97fff087cf69502bdf8fc8892f4be Author: Axel Lin Date: Tue Mar 12 23:52:41 2019 +0800 regulator: max14577: Get rid of match_init_data/match_of_node functions This driver has been converted to use regulator core's simplified DT parsing code. So the match_init_data/match_of_node functions are not necessary now, remove them. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 0077aaaeeb69b5dcfe15a398e38d71bf28c9505d Author: Arnd Bergmann Date: Thu Mar 7 11:26:02 2019 +0100 regulator: da903x: don't build with clang The da903x driver produces an annoying false-positive warning when built with clang: drivers/regulator/da903x.c:395:2: error: division by zero is undefined [-Werror,-Wdivision-by-zero] DA9030_LDO(13, 2100, 2100, 0, INVAL, 0, 0, RCTL11, 3), /* fixed @2.1V */ ^ ~ drivers/regulator/da903x.c:359:2: note: expanded from macro 'DA9030_LDO' DA903x_LDO(DA9030, _id, min, max, step, vreg, shift, nbits, ereg, ebit) ^ ~~~~ drivers/regulator/da903x.c:320:39: note: expanded from macro 'DA903x_LDO' .n_voltages = (step) ? ((max - min) / step + 1) : 1, \ ^ ~~~~ drivers/regulator/da903x.c:415:2: error: division by zero is undefined [-Werror,-Wdivision-by-zero] DA9034_LDO(5, 3100, 3100, 0, INVAL, 0, 0, OVER3, 7), /* fixed @3.1V */ ^ ~ drivers/regulator/da903x.c:356:2: note: expanded from macro 'DA9034_LDO' DA903x_LDO(DA9034, _id, min, max, step, vreg, shift, nbits, ereg, ebit) ^ ~~~~ drivers/regulator/da903x.c:320:39: note: expanded from macro 'DA903x_LDO' .n_voltages = (step) ? ((max - min) / step + 1) : 1, \ ^ ~~~~ I already reported this as a bug in clang, but it may take a while to fix it. As I have not been able to come up with any reasonable workaround, I would just disable compilation here. Link: https://bugs.llvm.org/show_bug.cgi?id=38789 Signed-off-by: Arnd Bergmann Reviewed-by: Nick Desaulniers Signed-off-by: Mark Brown commit f58213637206e190453e3bd91f98f535566290a3 Author: Steve Twiss Date: Tue Feb 26 15:42:50 2019 +0000 regulator: pv88060: Fix notifier mutex lock warning The mutex for the regulator_dev must be controlled by the caller of the regulator_notifier_call_chain(), as described in the comment for that function. Failure to mutex lock and unlock surrounding the notifier call results in a kernel WARN_ON_ONCE() which will dump a backtrace for the regulator_notifier_call_chain() when that function call is first made. The mutex can be controlled using the regulator_lock/unlock() API. Fixes: f307a7e9b7af ("regulator: pv88060: new regulator driver") Suggested-by: Adam Thomson Signed-off-by: Steve Twiss Signed-off-by: Mark Brown commit 769fc8d4182c1d1875db7859852afeb436714c5c Author: Steve Twiss Date: Tue Feb 26 15:38:56 2019 +0000 regulator: ltc3676: Fix notifier mutex lock warning The mutex for the regulator_dev must be controlled by the caller of the regulator_notifier_call_chain(), as described in the comment for that function. Failure to mutex lock and unlock surrounding the notifier call results in a kernel WARN_ON_ONCE() which will dump a backtrace for the regulator_notifier_call_chain() when that function call is first made. The mutex can be controlled using the regulator_lock/unlock() API. Fixes: 37b918a034fe ("regulator: Add LTC3676 support") Suggested-by: Adam Thomson Signed-off-by: Steve Twiss Signed-off-by: Mark Brown commit f132da2534ec6599c78c4adcef15340cff2e9dd9 Author: Steve Twiss Date: Tue Feb 26 15:35:35 2019 +0000 regulator: ltc3589: Fix notifier mutex lock warning The mutex for the regulator_dev must be controlled by the caller of the regulator_notifier_call_chain(), as described in the comment for that function. Failure to mutex lock and unlock surrounding the notifier call results in a kernel WARN_ON_ONCE() which will dump a backtrace for the regulator_notifier_call_chain() when that function call is first made. The mutex can be controlled using the regulator_lock/unlock() API. Fixes: 3eb2c7ecb7ea ("regulator: Add LTC3589 support") Suggested-by: Adam Thomson Signed-off-by: Steve Twiss Signed-off-by: Mark Brown commit 89b2758c192c35068b07766a6830433bfbdc1f44 Author: Steve Twiss Date: Tue Feb 26 15:32:18 2019 +0000 regulator: lp8755: Fix notifier mutex lock warning The mutex for the regulator_dev must be controlled by the caller of the regulator_notifier_call_chain(), as described in the comment for that function. Failure to mutex lock and unlock surrounding the notifier call results in a kernel WARN_ON_ONCE() which will dump a backtrace for the regulator_notifier_call_chain() when that function call is first made. The mutex can be controlled using the regulator_lock/unlock() API. Fixes: b59320cc5a5e ("regulator: lp8755: new driver for LP8755") Suggested-by: Adam Thomson Signed-off-by: Steve Twiss Signed-off-by: Mark Brown commit 65378de3359d30ebce44762d8b8027f372b5b1c4 Author: Steve Twiss Date: Tue Feb 26 15:27:57 2019 +0000 regulator: da9211: Fix notifier mutex lock warning The mutex for the regulator_dev must be controlled by the caller of the regulator_notifier_call_chain(), as described in the comment for that function. Failure to mutex lock and unlock surrounding the notifier call results in a kernel WARN_ON_ONCE() which will dump a backtrace for the regulator_notifier_call_chain() when that function call is first made. The mutex can be controlled using the regulator_lock/unlock() API. Fixes: 1028a37daa14 ("regulator: da9211: new regulator driver") Suggested-by: Adam Thomson Signed-off-by: Steve Twiss Signed-off-by: Mark Brown commit 29d40b4a5776ec4727c9f0e00a884423dd5e3366 Author: Steve Twiss Date: Tue Feb 26 15:23:02 2019 +0000 regulator: da9063: Fix notifier mutex lock warning The mutex for the regulator_dev must be controlled by the caller of the regulator_notifier_call_chain(), as described in the comment for that function. Failure to mutex lock and unlock surrounding the notifier call results in a kernel WARN_ON_ONCE() which will dump a backtrace for the regulator_notifier_call_chain() when that function call is first made. The mutex can be controlled using the regulator_lock/unlock() API. Fixes: 69ca3e58d178 ("regulator: da9063: Add Dialog DA9063 voltage regulators support.") Suggested-by: Adam Thomson Signed-off-by: Steve Twiss Signed-off-by: Mark Brown commit 119c4f5085c45b60cb23c5595e45d06135b89518 Author: Steve Twiss Date: Tue Feb 26 15:48:46 2019 +0000 regulator: wm831x: Fix notifier mutex lock warning The mutex for the regulator_dev must be controlled by the caller of the regulator_notifier_call_chain(), as described in the comment for that function. Failure to mutex lock and unlock surrounding the notifier call results in a kernel WARN_ON_ONCE() which will dump a backtrace for the regulator_notifier_call_chain() when that function call is first made. The mutex can be controlled using the regulator_lock/unlock() API. Fixes: e4ee831f949a ("regulator: Add WM831x DC-DC buck convertor support") Suggested-by: Adam Thomson Signed-off-by: Steve Twiss Acked-by: Charles Keepax Signed-off-by: Mark Brown commit 275513b7695a61b75b2546406ecd0f8e3d9fc8be Author: Steve Twiss Date: Tue Feb 26 15:46:55 2019 +0000 regulator: pv88090: Fix notifier mutex lock warning The mutex for the regulator_dev must be controlled by the caller of the regulator_notifier_call_chain(), as described in the comment for that function. Failure to mutex lock and unlock surrounding the notifier call results in a kernel WARN_ON_ONCE() which will dump a backtrace for the regulator_notifier_call_chain() when that function call is first made. The mutex can be controlled using the regulator_lock/unlock() API. Fixes: c90456e36d9c ("regulator: pv88090: new regulator driver") Suggested-by: Adam Thomson Signed-off-by: Steve Twiss Signed-off-by: Mark Brown commit 1867af94cfdf37fc70fe67b3d522e78352800196 Author: Steve Twiss Date: Tue Feb 26 15:44:54 2019 +0000 regulator: pv88080: Fix notifier mutex lock warning The mutex for the regulator_dev must be controlled by the caller of the regulator_notifier_call_chain(), as described in the comment for that function. Failure to mutex lock and unlock surrounding the notifier call results in a kernel WARN_ON_ONCE() which will dump a backtrace for the regulator_notifier_call_chain() when that function call is first made. The mutex can be controlled using the regulator_lock/unlock() API. Fixes: 99cf3af5e2d5 ("regulator: pv88080: new regulator driver") Suggested-by: Adam Thomson Signed-off-by: Steve Twiss Signed-off-by: Mark Brown commit 978995def0f6030aa6b3b494682f673aca13881b Author: Steve Twiss Date: Tue Feb 26 15:19:34 2019 +0000 regulator: da9062: Fix notifier mutex lock warning The mutex for the regulator_dev must be controlled by the caller of the regulator_notifier_call_chain(), as described in the comment for that function. Failure to mutex lock and unlock surrounding the notifier call results in a kernel WARN_ON_ONCE() which will dump a backtrace for the regulator_notifier_call_chain() when that function call is first made. The mutex can be controlled using the regulator_lock/unlock() API. Fixes: 4068e5182ada ("regulator: da9062: DA9062 regulator driver") Suggested-by: Adam Thomson Signed-off-by: Steve Twiss Signed-off-by: Mark Brown commit 5e6afb3832bedf420dd8e4c5b32ed85117c5087d Author: Steve Twiss Date: Tue Feb 26 14:59:59 2019 +0000 regulator: da9055: Fix notifier mutex lock warning The mutex for the regulator_dev must be controlled by the caller of the regulator_notifier_call_chain(), as described in the comment for that function. Failure to mutex lock and unlock surrounding the notifier call results in a kernel WARN_ON_ONCE() which will dump a backtrace for the regulator_notifier_call_chain() when that function call is first made. The mutex can be controlled using the regulator_lock/unlock() API. Fixes: f6130be652d0 ("regulator: DA9055 regulator driver") Suggested-by: Adam Thomson Signed-off-by: Steve Twiss Signed-off-by: Mark Brown commit 705e2a905a0407c3fffb248b43c8d7d1de6b4e51 Author: Axel Lin Date: Fri Mar 8 14:15:29 2019 +0800 regulator: gpio: Constify regulator_ops gpio_regulator_voltage_ops and gpio_regulator_current_ops should never change, make them const. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 7cdc2ee7bf10705f737c22dcd4b002b87849badb Author: Axel Lin Date: Fri Mar 8 14:15:28 2019 +0800 regulator: gpio: Convert to devm_regulator_register Use devm_regulator_register to simplify the code. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 20b83421e8eea43e28cb7aeea3e3f865f86aa69d Author: John Hsu Date: Wed Mar 13 16:52:01 2019 +0800 ASoC: nau8810: automatic selecting BCLK in I2S master mode The driver will select correct BCLK automatically according to BCLK and FS information in I2S master mode. Signed-off-by: John Hsu Signed-off-by: Mark Brown commit 709a9b8a1f4ff6c34c0a6e6fefb31cfb23b19bf5 Author: John Hsu Date: Wed Mar 13 15:04:16 2019 +0800 ASoC: nau8810: fix the typo of function name Correct the typo at the function name. Signed-off-by: John Hsu Signed-off-by: Mark Brown commit b517229ca2f7836125be58997808f2803f9ebc86 Author: John Hsu Date: Wed Mar 13 14:47:18 2019 +0800 ASoC: nau8810: use 64-bit arithmetic instead of 32-bit Add suffix ULL to constant 256 in order to give the compiler complete information about the proper arithmetic to use. Signed-off-by: John Hsu Signed-off-by: Mark Brown commit a94bed60cb73962f344ead14b2ee7613280432c6 Author: Kevin Strasser Date: Tue Mar 12 17:38:32 2019 -0700 drm/i915/icl: Implement half float formats 64 bpp half float formats are supported on hdr planes only and are subject to the following restrictions: * 90/270 rotation not supported * Yf Tiling not supported * Frame Buffer Compression not supported * Color Keying not supported v2: - Drop handling pixel normalize register - Don't use icl_is_hdr_plane too early v3: - Use refactored icl_is_hdr_plane (Ville) - Use u32 instead of uint32_t (Ville) v6: - Rebase and fix merge conflicts - Reorganize switch statements to keep RGB grouped separately from YUV Cc: Uma Shankar Cc: Shashank Sharma Cc: David Airlie Cc: Daniel Vetter Cc: dri-devel@lists.freedesktop.org Signed-off-by: Kevin Strasser Reviewed-by: Ville Syrjälä Reviewed-by: Maarten Lankhorst Reviewed-by: Adam Jackson Acked-by: Jani Nikula Signed-off-by: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/1552437513-22648-4-git-send-email-kevin.strasser@intel.com commit 42fd20edf68cd5d8ee13d653f6d44e36dcb60802 Author: Kevin Strasser Date: Tue Mar 12 17:38:31 2019 -0700 drm/i915: Refactor icl_is_hdr_plane Change the api in order to enable callers that can't supply a valid intel_plane pointer, as would be the case prior to calling drm_universal_plane_init. v4: - Rename variables and move a declaration (Ville) v6: - Rebase and fix merge conflict Cc: Uma Shankar Cc: Shashank Sharma Cc: David Airlie Cc: Daniel Vetter Cc: dri-devel@lists.freedesktop.org Signed-off-by: Kevin Strasser Reviewed-by: Ville Syrjälä Reviewed-by: Maarten Lankhorst Reviewed-by: Adam Jackson Acked-by: Jani Nikula Signed-off-by: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/1552437513-22648-3-git-send-email-kevin.strasser@intel.com commit 88ab9c76d191ad8645b483f31e2b394b0f3e280e Author: Kevin Strasser Date: Tue Mar 12 17:38:30 2019 -0700 drm/fourcc: Add 64 bpp half float formats Add 64 bpp 16:16:16:16 half float pixel formats. Each 16 bit component is formatted in IEEE-754 half-precision float (binary16) 1:5:10 MSb-sign:exponent:fraction form. This patch attempts to address the feedback provided when 2 of these formats were previosly proposed: https://patchwork.kernel.org/patch/10072545/ v2: - Fixed cpp (Ville) - Added detail pixel formatting (Ville) - Ordered formats in header (Ville) v5: - .depth should be 0 for new formats (Maarten) Cc: Tina Zhang Cc: Uma Shankar Cc: Shashank Sharma Cc: David Airlie Cc: Daniel Vetter Cc: dri-devel@lists.freedesktop.org Signed-off-by: Kevin Strasser Reviewed-by: Ville Syrjälä Reviewed-by: Maarten Lankhorst Reviewed-by: Adam Jackson Signed-off-by: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/1552437513-22648-2-git-send-email-kevin.strasser@intel.com commit 25570b5e333f40219e359fe57a32d475e555f2a3 Author: Ayan Kumar Halder Date: Tue May 15 13:35:57 2018 +0100 drm/arm/malidp: Added support for AFBC modifiers for all layers except DE_SMART The list of modifiers to be supported for each plane has been dynamically generated from 'malidp_format_modifiers[]' and 'malidp_hw_regmap->features'. Changes from v1:- 1. Replaced DRM_ERROR() with DRM_DEBUG_KMS() in malidp_format_mod_supported() to report unsupported modifiers. Changes from v2:- 1. Removed malidp_format_mod_supported() from the current patch. This has been added in "PATCH 7/12" 2. Dynamically generate the list of modifiers (to be supported for each plane) from 'malidp_format_modifiers' and features. Changes since v3 (series): - Added the ack - Rebased on the latest drm-misc-next Signed-off-by: Ayan Kumar halder Reviewed-by: Liviu Dudau Acked-by: Alyssa Rosenzweig Link: https://patchwork.freedesktop.org/patch/291767/?series=57895&rev=1 commit 0f6c18deca3564fa5e736d280e8cb81975b99e8e Author: Ayan Kumar Halder Date: Mon Nov 19 14:41:03 2018 +0000 drm/arm/malidp:- Disregard the pitch alignment constraint for AFBC framebuffer. Considering the fact that some of the AFBC specific pixel formats are expressed in bits per pixel (ie bpp which is not byte aligned), the pitch (ie width * bpp) is not guaranteed to be aligned to burst size (ie 8 or 16 bytes). For example, DRM_FORMAT_VUY101010 is 30 bits per pixel. For a framebuffer of width 32 pixels, the pitch will be 120 bytes which is not aligned to burst size (ie 16 bytes) for DP650. Changes since v3 (series): - Added the ack - Rebased on the latest drm-misc-next Signed-off-by: Ayan Kumar halder Acked-by: Liviu Dudau Acked-by: Alyssa Rosenzweig Link: https://patchwork.freedesktop.org/patch/291764/?series=57895&rev=1 commit 7834c5770284db6b53943c451a0d2efe69cabd7c Author: Ayan Kumar Halder Date: Mon Nov 19 14:14:06 2018 +0000 drm/arm/malidp:- Use the newly introduced malidp_format_get_bpp() instead of relying on cpp for calculating framebuffer size Formats like DRM_FORMAT_VUY101010, DRM_FORMAT_YUV420_8BIT and DRM_FORMAT_YUV420_10BIT are expressed in bits per pixel as they have a non integer value of cpp (thus denoted as '0' in drm_format_info[]). Therefore, the calculation of AFBC framebuffer size needs to use malidp_format_get_bpp(). Changes since v3 (series): - Added the ack - Rebased on the latest drm-misc-next Signed-off-by: Ayan Kumar halder Reviewed-by: Liviu Dudau Acked-by: Alyssa Rosenzweig Link: https://patchwork.freedesktop.org/patch/291766/?series=57895&rev=1 commit da77365870b4b20335645ec1332d1de4202e14b3 Author: Ayan Kumar Halder Date: Fri Jul 6 14:06:31 2018 +0100 drm/arm/malidp:- Writeback framebuffer does not support any modifiers In malidp, the writeback pipeline does not support writing crtc output to a framebuffer with modifiers ie the memory writeback content is devoid of any compression or tiling, etc. So we have added a commit check in memory writeback encoder helper function to validate if the framebuffer has any modifier and if so, return EINVAL. Changes since v3 (series): - Added the ack - Rebased on the latest drm-misc-next Signed-off-by: Ayan Kumar halder Acked-by: Liviu Dudau Acked-by: Alyssa Rosenzweig Link: https://patchwork.freedesktop.org/patch/291765/?series=57895&rev=1 commit b8207562abdda11fab394c9f91db31c03a969cbb Author: Ayan Kumar Halder Date: Mon Sep 17 16:07:41 2018 +0100 drm/arm/malidp: Specified the rotation memory requirements for AFBC YUV formats The newly supported AFBC YUV formats have the following rotation memory constraints (in DP550/DP650). 1. DRM_FORMAT_VUY888/DRM_FORMAT_VUY101010 :- It can rotate upto 8 horizontal lines in the AFBC output buffer. 2. DRM_FORMAT_YUV420_8BIT :- It can rotate upto 16 horizontal lines in the AFBC output buffer. Also some of the pixel formats are specified in bits per pixel (rather than bytes per pixel), so the calculation needs to take note of this. Besides there are some difference between DP550 and DP650 and these are as follows:- 1. DRM_FORMAT_X0L2 (in uncompressed format) does not support rotation in DP550. For DP650, it can rotate upto 16 horizontal lines in the AFBC output buffer, whereas in DP550 (with AFBC), it can rotate upto 8 horizontal lines. 2. DRM_FORMAT_YUV420_10BIT :- It can rotate upto 8 horizontal lines in dp550 and 16 horizontal lines in DP650. Changes since v3 (series): - Added the ack - Rebased on the latest drm-misc-next Signed-off-by: Ayan Kumar halder Reviewed-by: Liviu Dudau Acked-by: Alyssa Rosenzweig Link: https://patchwork.freedesktop.org/patch/291763/?series=57895&rev=1 commit 5e290226b11b19ab2300f25644359990e7c1b1d1 Author: Ayan Kumar Halder Date: Tue Jul 17 12:11:09 2018 +0100 drm/arm/malidp:- Define a common list of AFBC format modifiers supported for DP500, DP550 and DP650 We need to define a common list of format modifiers supported by each of the Mali display processors. The following are the constraints with AFBC:- 1. AFBC is not supported for the formats defined in malidp_hw_format_is_linear_only() 2. Some of the formats are supported only with AFBC modifiers. Thus we have introduced a new function 'malidp_hw_format_is_afbc_only()' which verifies the same. 3. AFBC_FORMAT_MOD_YTR needs to be provided for any RGB format. 4. Formats <= 16bpp cannot support AFBC_FORMAT_MOD_SPLIT. 5. CBR should not be set for non-subsampled formats. 6. SMART layer does not support framebuffer with AFBC modifiers. Return -EINVAL for such a scenario. 7. AFBC_FORMAT_MOD_YTR is not supported for any YUV formats. 8. Formats which are subsampled cannot support AFBC_FORMAT_MOD_SPLIT. However in DP550, YUV_420_10BIT is supported with AFBC_FORMAT_MOD_SPLIT. This feature has been identified with MALIDP_DEVICE_AFBC_YUV_420_10_SUPPORT_SPLIT. 9. In DP550 and DP650, for YUYV, the hardware supports different format-ids to be used with and without AFBC modifier. We have used the feature 'MALIDP_DEVICE_AFBC_YUYV_USE_422_P2' to identify this characteristic. 10. DP500 does not support split mode (ie AFBC_FORMAT_MOD_SPLIT). We have used the feature 'MALIDP_DEVICE_AFBC_SUPPORT_SPLIT' to identify the DPs which support SPLIT mode. 11. DP550 supports YUV420 with split mode. We have defined the feature 'AFBC_SUPPORT_SPLIT_WITH_YUV_420_10' to identify this characteristic. Changes since v1:- - Merged https://patchwork.freedesktop.org/patch/265215/ into this patch - As Liviu pointed out in the last patch, we can pull the checks outside of the 'while (*modifiers != DRM_FORMAT_MOD_INVALID)' loop - Rebased Changes since v3 (series): - Added the ack - Rebased on the latest drm-misc-next Signed-off-by: Ayan Kumar halder Reviewed-by: Liviu Dudau Acked-by: Alyssa Rosenzweig Link: https://patchwork.freedesktop.org/patch/291762/?series=57895&rev=1 commit ed893860ee535f95b619e8cc493e0a5553362d80 Author: Ayan Kumar Halder Date: Wed Sep 12 11:22:04 2018 +0100 drm/arm/malidp:- Added support for new YUV formats for DP500, DP550 and DP650 We have added support for some AFBC only pixel formats like :- DRM_FORMAT_YUV420_8BIT (single plane YUV 420 8 bit format) DRM_FORMAT_VUY888 (single plane YUV 444 8 bit format) DRM_FORMAT_VUY101010 (single plane YUV 444 10 bit format) DRM_FORMAT_YUV420_10BIT (single plane YUV 420 10 bit format) Generally, these formats are supported by our hardware using the same hw-ids as the equivalent multi plane pixel formats. Also we have added support for XYUV 444 8 and 10 bit formats Changes since v3 (series): - Added the ack - Rebased on the latest drm-misc-next Signed-off-by: Ayan Kumar Halder Reviewed-by: Liviu Dudau Acked-by: Alyssa Rosenzweig Link: https://patchwork.freedesktop.org/patch/291761/?series=57895&rev=1 commit 54b4260ac404813d97a499eec370204f6de8f43b Author: Ayan Kumar Halder Date: Wed May 16 19:23:08 2018 +0100 drm/arm/malidp: Set the AFBC register bits if the framebuffer has AFBC modifier Added the AFBC decoder registers for DP500 , DP550 and DP650. These registers control the processing of AFBC buffers. It controls various features like AFBC decoder enable, lossless transformation and block split as well as setting of the left, right, top and bottom cropping of AFBC buffers (in number of pixels). All the layers (except DE_SMART) support framebuffers with AFBC modifiers. One needs to set the pixel values of the top, left, bottom and right cropping for the AFBC framebuffer. Cropping an AFBC framebuffer is controlled by the AFBC crop registers. In that case, the layer input size registers should be configured with framebuffer's dimensions and not with drm_plane_state source width/height values (which is used for non AFBC framebuffer to denote cropping). Changes from v1: - Removed the "if (fb->modifier)" check from malidp_de_plane_update() and added it in malidp_de_set_plane_afbc(). This will consolidate all the AFBC specific register configurations in a single function ie malidp_de_set_plane_afbc(). Changes from v2: - For AFBC framebuffer, layer input size register should be set to framebuffer's width and height. Changes from v3: - Rebased on top of latest drm-misc-next - Some cleanups/sanity changes based on Liviu's comments Changes from v3 (series): - Added the ack - Rebased on the latest drm-misc-next Signed-off-by: Ayan Kumar Halder Reviewed-by: Liviu Dudau Acked-by: Alyssa Rosenzweig Link: https://patchwork.freedesktop.org/patch/291760/?series=57895&rev=1 commit e9961ab95af81b8d29054361cd5f0c575102cf87 Author: Ayan Kumar Halder Date: Fri Nov 9 17:21:12 2018 +0000 drm: Added a new format DRM_FORMAT_XVYU2101010 This new format is supported by DP550 and DP650 Changes since v3 (series): - Added the ack - Rebased on the latest drm-misc-next Signed-off-by: Ayan Kumar halder Reviewed-by: Liviu Dudau Acked-by: Alyssa Rosenzweig Link: https://patchwork.freedesktop.org/patch/291758/?series=57895&rev=1 commit 7ba0fee247ee7a36b3bfbed68f6988d980aa3aa3 Author: Brian Starkey Date: Fri Oct 5 10:27:00 2018 +0100 drm/fourcc: Add AFBC yuv fourccs for Mali As we look to enable AFBC using DRM format modifiers, we run into problems which we've historically handled via vendor-private details (i.e. gralloc, on Android). AFBC (as an encoding) is fully flexible, and for example YUV data can be encoded into 1, 2 or 3 encoded "planes", much like the linear equivalents. Component order is also meaningful, as AFBC doesn't necessarily care about what each "channel" of the data it encodes contains. Therefore ABGR8888 and RGBA8888 can be encoded in AFBC with different representations. Similarly, 'X' components may be encoded into AFBC streams in cases where a decoder expects to decode a 4th component. In addition, AFBC is a licensable IP, meaning that to support the ecosystem we need to ensure that _all_ AFBC users are able to describe the encodings that they need. This is much better achieved by preserving meaning in the fourcc codes when they are combined with an AFBC modifier. In essence, we want to use the modifier to describe the parameters of the AFBC encode/decode, and use the fourcc code to describe the data being encoded/decoded. To do anything different would be to introduce redundancy - we would need to duplicate in the modifier information which is _already_ conveyed clearly and non-ambigiously by a fourcc code. I hope that for RGB this is non-controversial. (BGRA8888 + MODIFIER_AFBC) is a different format from (RGBA8888 + MODIFIER_AFBC). Possibly more controversial is that (XBGR8888 + MODIFIER_AFBC) is different from (BGR888 + MODIFIER_AFBC). I understand that in some schemes it is not the case - but in AFBC it is so. Where we run into problems is where there are not already fourcc codes which represent the data which the AFBC encoder/decoder is processing. To that end, we want to introduce new fourcc codes to describe the data being encoded/decoded, in the places where none of the existing fourcc codes are applicable. Where we don't support an equivalent non-compressed layout, or where no "obvious" linear layout exists, we are proposing adding fourcc codes which have no associated linear layout - because any layout we proposed would be completely arbitrary. Some formats are following the naming conventions from [2]. The summary of the new formats is: DRM_FORMAT_VUY888 - Packed 8-bit YUV 444. Y followed by U then V. DRM_FORMAT_VUY101010 - Packed 10-bit YUV 444. Y followed by U then V. No defined linear encoding. DRM_FORMAT_Y210 - Packed 10-bit YUV 422. Y followed by U (then Y) then V. 10-bit samples in 16-bit words. DRM_FORMAT_Y410 - Packed 10-bit YUV 444, with 2-bit alpha. DRM_FORMAT_P210 - Semi-planar 10-bit YUV 422. Y plane, followed by interleaved U-then-V plane. 10-bit samples in 16-bit words. DRM_FORMAT_YUV420_8BIT - Packed 8-bit YUV 420. Y followed by U then V. No defined linear encoding DRM_FORMAT_YUV420_10BIT - Packed 10-bit YUV 420. Y followed by U then V. No defined linear encoding Please also note that in the absence of AFBC, we would still need to add Y410, Y210 and P210. Full rationale follows: YUV 444 8-bit, 1-plane ---------------------- The currently defined AYUV format encodes a 4th alpha component, which makes it unsuitable for representing a 3-component YUV 444 AFBC stream. The proposed[1] XYUV format which is supported by Mali-DP in linear layout is also unsuitable, because the component order is the opposite of the AFBC version, and it encodes a 4th 'X' component. DRM_FORMAT_VUY888 is the "obvious" format for a 3-component, packed, YUV 444 8-bit format, with the component order which our HW expects to encode/decode. It conforms to the same naming convention as the existing packed YUV 444 format. The naming here is meant to be consistent with DRM_FORMAT_AYUV and DRM_FORMAT_XYUV[1] YUV 444 10-bit, 1-plane ----------------------- There is no currently-defined YUV 444 10-bit format in drm_fourcc.h, irrespective of number of planes. The proposed[1] XVYU2101010 format which is supported by Mali-DP in linear layout uses the wrong component order, and also encodes a 4th 'X' component, which doesn't match the AFBC version of YUV 444 10-bit which we support. DRM_FORMAT_Y410 is the same layout as XVYU2101010, but with 2 bits of alpha. This format is supported with linear layout by Mali GPUs. The naming follows[2]. There is no "obvious" linear encoding for a 3-component 10:10:10 packed format, and so DRM_FORMAT_VUY101010 defines a component order, but not a bit encoding. Again, the naming is meant to be consistent with DRM_FORMAT_AYUV. YUV 422 8-bit, 1-plane ---------------------- The existing DRM_FORMAT_YUYV (and the other component orders) are single-planar YUV 422 8-bit formats. Following the convention of the component orders of the RGB formats, YUYV has the correct component order for our AFBC encoding (Y followed by U followed by V). We can use YUYV for AFBC YUV 422 8-bit. YUV 422 10-bit, 1-plane ----------------------- There is no currently-defined YUV 422 10-bit format in drm_fourcc.h DRM_FORMAT_Y210 is analogous to YUYV, but with 10-bits per sample packed into the upper 10-bits of 16-bit samples. This format is supported in both linear and AFBC by Mali GPUs. YUV 422 10-bit, 2-plane ----------------------- The recently defined DRM_FORMAT_P010 format is a 10-bit semi-planar YUV 420 format, which has the correct component ordering for an AFBC 2-plane YUV 420 buffer. The linear layout contains meaningless padding bits, which will not be encoded in an AFBC stream. YUV 420 8-bit, 1-plane ---------------------- There is no currently defined single-planar YUV 420, 8-bit format in drm_fourcc.h. There's differing opinions on whether using the existing fourcc-implied n_planes where possible is a good idea or not when using modifiers. For me, it's much more "obvious" to use NV12 for 2-plane AFBC and YUV420 for 3-plane AFBC. This keeps the aforementioned separation between the AFBC codec settings (in the modifier) and the pixel data format (in the fourcc). With different vendors using AFBC, this helps to ensure that there is no confusion in interoperation. It also ensures that the AFBC modifiers describe AFBC itself (which is a licensable component), and not implementation details which are not defined by AFBC. The proposed[1] X0L0 format which Mali-DP supports with Linear layout is unsuitable, as it contains a 4th 'X' component, and our AFBC decoder expects only 3 components. To that end, we propose a new YUV 420 8-bit format. There is no "obvious" linear encoding for a 3-component 8:8:8, 420, packed format, and so DRM_FORMAT_YUV420_8BIT defines a component order, but not a bit encoding. I'm happy to hear different naming suggestions. YUV 420 8-bit, 2-, 3-plane -------------------------- These already exist, we can use NV12 and YUV420. YUV 420 10-bit, 1-plane ----------------------- As above, no current definition exists, and X0L2 encodes a 4th 'X' channel. Analogous to DRM_FORMAT_YUV420_8BIT, we define DRM_FORMAT_YUV420_10BIT. [1] https://lists.freedesktop.org/archives/dri-devel/2018-July/184598.html [2] https://docs.microsoft.com/en-us/windows/desktop/medfound/10-bit-and-16-bit-yuv-video-formats Changes since RFC v1: - Fix confusing subsampling vs bit-depth X:X:X notation in descriptions (danvet) - Rename DRM_FORMAT_AVYU1101010 to DRM_FORMAT_Y410 (Lisa Wu) - Add drm_format_info structures for the new formats, using the new 'bpp' field for those with non-integer bytes-per-pixel - Rebase, including Juha-Pekka Heikkila's format definitions Changes since RFC v2: - Rebase on top of latest changes in drm-misc-next - Change the description of DRM_FORMAT_P210 in __drm_format_info and drm_fourcc.h so as to make it consistent with other DRM_FORMAT_PXXX formats. Changes since v3: - Added the ack - Rebased on the latest drm-misc-next Signed-off-by: Brian Starkey Signed-off-by: Ayan Kumar Halder Reviewed-by: Liviu Dudau Acked-by: Alyssa Rosenzweig Link: https://patchwork.freedesktop.org/patch/291759/?series=57895&rev=1 commit 9a751b999d17a037d5562318d3a21dd5e5bd55eb Author: José Roberto de Souza Date: Fri Mar 8 13:56:46 2019 -0800 drm/i915: Add new ICL PCI ID A new PCI ID for ICL was added to BSpec, lets keep it in tight sync as ICL is not protected by the alpha support flag anymore. v2: Keeping BSpec order(Rodrigo) BSepc: 21141 Reviewed-by: Rodrigo Vivi Signed-off-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190308215646.30436-1-jose.souza@intel.com commit 22acf9fc18e6ee2769854366a57bf43e2b1ff704 Author: Chris Wilson Date: Tue Mar 12 11:11:46 2019 +0000 drm/i915/selftests: Improve error detection of reset failure Use a timedwait to promptly detect if the recovery after reset fails and provide a meaningful debug dump. Signed-off-by: Chris Wilson Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190312111146.10662-2-chris@chris-wilson.co.uk commit 4b378c0672cc0b2eb3aadc149bd92e13aa615140 Author: Chris Wilson Date: Tue Mar 12 11:11:45 2019 +0000 drm/i915: Consolidate reset-request debug message Move the pair of messages to the common callsite where it makes sense to include a bit more information about which request is being reset. Signed-off-by: Chris Wilson Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190312111146.10662-1-chris@chris-wilson.co.uk commit fa225400758dfc7ccddebf4d990f991a435f7921 Author: Luca Ceresoli Date: Thu Mar 7 22:44:56 2019 +0100 ASoC: axi-i2s: make both "rx" and "tx" optional Both the capture and playback channels are optional in the axi_i2s IP block. Document how to tell the driver which channels are instantiated. Signed-off-by: Luca Ceresoli Signed-off-by: Mark Brown commit 7bf7d0554890c53478ec04d3d4bfced0c881f6c8 Author: Luca Ceresoli Date: Thu Mar 7 22:44:55 2019 +0100 ASoC: axi-i2s: let both capture and playback be optional Both the capture and playback channels are optional in the axi_i2s IP block. Reflect this in the driver by enabling only the channel(s) that have a DMA. Signed-off-by: Luca Ceresoli Signed-off-by: Mark Brown commit 0a9c8998e75b69b3c347751a65ddd5bf7e72b2dd Author: Trent Piepho Date: Mon Mar 4 23:02:36 2019 +0000 spi: imx: add module parameter to control DMA use Add the boolean module parameter "use_dma" to control the use of DMA by the driver. There are about two dozen other drivers with a "use_dma" parameter of some sort. DMA may allow faster and more efficient transfers than using PIO, but it also adds overhead for small transfers. High speed receive operations may be less likely to have issues with FIFO overflow when using DMA than when using PIO. The eCSPI appears to insert a 4 bit pause after each word in DMA mode, not done in PIO mode, which can make DMA transfers 50% slower than PIO. In some cases DMA may be a net win while in others PIO might be. It depends on the application. So allow DMA to be enabled or disabled at the driver level. The default will be to have it enabled when possible. Signed-off-by: Trent Piepho Signed-off-by: Mark Brown commit f586c9daaf9b7cfbe4eed9185933694d2551c31d Author: Hans de Goede Date: Mon Mar 11 17:35:22 2019 +0100 MAINTAINERS: Add an entry for the vboxvideo driver Add a MAINTAINERS entry for the vboxvideo driver, now that it has been moved out of staging. Acked-by: Daniel Vetter Signed-off-by: Hans de Goede Link: https://patchwork.freedesktop.org/patch/msgid/20190311163522.22045-1-hdegoede@redhat.com commit eefffb42f6659c9510105f3e4ebf2a8499d56936 Author: Arnd Bergmann Date: Thu Mar 7 16:54:21 2019 +0100 spi: work around clang bug in SPI_BPW_RANGE_MASK() Clang-8 evaluates both sides of a ?: expression to check for valid arithmetic even in the side that is never taken. This results in a build warning: drivers/spi/spi-sh-msiof.c:1052:24: error: shift count >= width of type [-Werror,-Wshift-count-overflow] .bits_per_word_mask = SPI_BPW_RANGE_MASK(8, 32), ^~~~~~~~~~~~~~~~~~~~~~~~~ Change the implementation to use the GENMASK() macro that does what we want here but does not have a problem with the shift count overflow. Link: https://bugs.llvm.org/show_bug.cgi?id=38789 Signed-off-by: Arnd Bergmann Signed-off-by: Mark Brown commit 5442dcaa0d90fc376bdfc179a018931a8f43dea4 Author: Chris Lesiak Date: Thu Mar 7 20:39:00 2019 +0000 spi: Fix zero length xfer bug This fixes a bug for messages containing both zero length and unidirectional xfers. The function spi_map_msg will allocate dummy tx and/or rx buffers for use with unidirectional transfers when the hardware can only do a bidirectional transfer. That dummy buffer will be used in place of a NULL buffer even when the xfer length is 0. Then in the function __spi_map_msg, if he hardware can dma, the zero length xfer will have spi_map_buf called on the dummy buffer. Eventually, __sg_alloc_table is called and returns -EINVAL because nents == 0. This fix prevents the error by not using the dummy buffer when the xfer length is zero. Signed-off-by: Chris Lesiak Signed-off-by: Mark Brown commit 178d08ea81b1538ea0b2c432a3ddda53b7fec296 Author: Axel Lin Date: Wed Feb 27 13:54:21 2019 +0800 regulator: wm8400: Fix trivial typo Use WM8400_DC2_ENA_MASK for DCDC2 enable_mask. The define is the same as WM8400_DC1_ENA_MASK, just a cleanup. Signed-off-by: Axel Lin Acked-by: Charles Keepax Signed-off-by: Mark Brown commit e08abeca39673e1045ca1e5a90bd7fef69d0fe8f Author: Axel Lin Date: Wed Feb 27 09:30:53 2019 +0800 regulator: wm8400: Get rid of wm8400_block_read/wm8400_set_bits functions The only user of wm8400_block_read/wm8400_set_bits functions is the wm8400 regulator driver. At the context of all the callers, we can use regmap_bulk_read/regmap_update_bits directly. Thus remove wm8400_block_read/wm8400_set_bits functions. Signed-off-by: Axel Lin Acked-by: Charles Keepax Signed-off-by: Mark Brown commit 5b60ee576a02cb6b2371dec085ef2623a7df77b9 Author: Axel Lin Date: Thu Mar 7 21:53:56 2019 +0800 regulator: ab3100: Remove ab3100_regulators_remove function Current code is using devm_regulator_register() so it is not necessary to save reg->rdev for clean up. Remove *rdev from struct ab3100_regulator, then ab3100_regulators_remove() can be removed as well. Signed-off-by: Axel Lin Reviewed-by: Linus Walleij Signed-off-by: Mark Brown commit 74b060d6845f09a5b2db6df653a3c0e90d4fa560 Author: Axel Lin Date: Sun Mar 10 23:06:09 2019 +0800 regulator: palmas: Remove *rdev[PALMAS_NUM_REGS] from struct palmas_pmic This driver is using devm_regulator_register() so it is not necessary to save *rdev for clean up. Actually the pmic->rdev[id] is not used now. Signed-off-by: Axel Lin Signed-off-by: Mark Brown commit 7d7b25d05ef1c5a1a9320190e1eeb55534847558 Author: Arnd Bergmann Date: Mon Mar 4 21:30:50 2019 +0100 ASoC: ti: fix davinci_mcasp_probe dependencies The SND_SOC_DAVINCI_MCASP driver can use either edma or sdma as a back-end, and it takes the presence of the respective dma engine drivers in the configuration as an indication to which ones should be built. However, this is flawed in multiple ways: - With CONFIG_TI_EDMA=m and CONFIG_SND_SOC_DAVINCI_MCASP=y, is enabled as =m, and we get a link error: sound/soc/ti/davinci-mcasp.o: In function `davinci_mcasp_probe': davinci-mcasp.c:(.text+0x930): undefined reference to `edma_pcm_platform_register' - When CONFIG_SND_SOC_DAVINCI_MCASP=m has already been selected by another driver, the same link error appears even if CONFIG_TI_EDMA is disabled There are possibly other issues here, but it seems that the only reasonable solution is to always build both SND_SOC_TI_EDMA_PCM and SND_SOC_TI_SDMA_PCM as a dependency here. Both are fairly small and do not have any other compile-time dependencies, so the cost is very small, and makes the configuration stage much more consistent. Fixes: f2055e145f29 ("ASoC: ti: Merge davinci and omap directories") Signed-off-by: Arnd Bergmann Acked-by: Peter Ujfalusi Signed-off-by: Mark Brown commit c9fbc1c02ec881c8bb037f87efb706d22589fdab Author: Arnd Bergmann Date: Thu Mar 7 11:10:49 2019 +0100 ASoC: ams-delta: remove duplicate 'const' clang points out that SOC_ENUM_SINGLE_EXT_DECL() contains a 'const' modifier already, so adding another one does not make it more const: sound/soc/ti/ams-delta.c:203:14: error: duplicate 'const' declaration specifier [-Werror,-Wduplicate-decl-specifier] static const SOC_ENUM_SINGLE_EXT_DECL(ams_delta_audio_enum, ^ include/sound/soc.h:351:2: note: expanded from macro 'SOC_ENUM_SINGLE_EXT_DECL' const struct soc_enum name = SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(xtexts), xtexts) Signed-off-by: Arnd Bergmann Reviewed-by: Peter Ujfalusi Reviewed-by: Nathan Chancellor Signed-off-by: Mark Brown commit 642aafea8889b712fe8e57aaa706d6c05d295059 Author: Arnd Bergmann Date: Thu Mar 7 16:16:08 2019 +0100 ASoC: ti: remove compat dma probing After running into a link error: sound/soc/ti/edma-pcm.o:(.rodata+0x18): undefined reference to `edma_filter_fn' I checked all users of this, and they have new-style 'dma_slave_map' tables, so none of them should still need it. Removing the associated lines simplifies the code and avoids the build-time dependency on the respective dmaengine drivers. Acked-by: Peter Ujfalusi Signed-off-by: Arnd Bergmann Signed-off-by: Mark Brown commit fef050c88ce1cbec1ab9a0d981b5331a5ba40f15 Author: Olivier Moysan Date: Mon Mar 11 16:26:30 2019 +0100 ASoC: stm32: i2s: use default dai name Use default DAI name based on dev_name function. Signed-off-by: Olivier Moysan Signed-off-by: Mark Brown commit c2dc8b2c114c22d7a04cf26a7c7d04faaa757143 Author: Olivier Moysan Date: Mon Mar 11 16:26:29 2019 +0100 ASoC: stm32: i2s: improve channel capabilities handling Use alsa snd_pcm_hw_constraint_single service to manage channels restriction. This provides better status on driver limitations, to the application. Signed-off-by: Olivier Moysan Signed-off-by: Mark Brown commit 52e7306ca2db565edc1503a74477f3547bc9e408 Author: Olivier Moysan Date: Mon Mar 11 16:26:28 2019 +0100 ASoC: stm32: i2s: change trigger traces Update traces to log capture/playback stream start/stop. Signed-off-by: Olivier Moysan Signed-off-by: Mark Brown commit 686174a0989b1c33698b26523a1e4ccdcc84cf22 Author: Arnd Bergmann Date: Mon Mar 4 21:30:52 2019 +0100 ASoC: qcom: add i2c dependency for SND_SOC_SDM845 We must not select SND_SOC_MAX98927 unless CONFIG_I2C is also enabled: WARNING: unmet direct dependencies detected for SND_SOC_MAX98927 Depends on [n]: SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && I2C [=n] Selected by [y]: - SND_SOC_SDM845 [=y] && SOUND [=y] && !UML && SND [=y] && SND_SOC [=y] && QCOM_APR [=y] && MFD_CROS_EC [=y] Signed-off-by: Arnd Bergmann Acked-by: Cheng-Yi Chiang Signed-off-by: Mark Brown commit 8ca5104715cfd14254ea5aecc390ae583b707607 Author: Arnd Bergmann Date: Thu Mar 7 11:11:30 2019 +0100 ASoC: davinci-mcasp: Fix clang warning without CONFIG_PM Building with clang shows a variable that is only used by the suspend/resume functions but defined outside of their #ifdef block: sound/soc/ti/davinci-mcasp.c:48:12: error: variable 'context_regs' is not needed and will not be emitted We commonly fix these by marking the PM functions as __maybe_unused, but here that would grow the davinci_mcasp structure, so instead add another #ifdef here. Fixes: 1cc0c054f380 ("ASoC: davinci-mcasp: Convert the context save/restore to use array") Signed-off-by: Arnd Bergmann Acked-by: Peter Ujfalusi Reviewed-by: Nathan Chancellor Signed-off-by: Mark Brown commit 825b22e5961a47ba7387d3ee6729956d6bb3b495 Author: Jiada Wang Date: Thu Mar 7 11:34:53 2019 +0900 ASoC: rsnd: src: fix compiler warnings compiler complains about following declarations sound/soc/sh/rcar/src.c:174:1: warning: 'static' is not at beginning of declaration [-Wold-style-declaration] const static u32 bsdsr_table_pattern1[] = { ^~~~~ sound/soc/sh/rcar/src.c:183:1: warning: 'static' is not at beginning of declaration [-Wold-style-declaration] const static u32 bsdsr_table_pattern2[] = { ^~~~~ sound/soc/sh/rcar/src.c:192:1: warning: 'static' is not at beginning of declaration [-Wold-style-declaration] const static u32 bsisr_table[] = { ^~~~~ sound/soc/sh/rcar/src.c:201:1: warning: 'static' is not at beginning of declaration [-Wold-style-declaration] const static u32 chan288888[] = { ^~~~~ sound/soc/sh/rcar/src.c:210:1: warning: 'static' is not at beginning of declaration [-Wold-style-declaration] const static u32 chan244888[] = { ^~~~~ sound/soc/sh/rcar/src.c:219:1: warning: 'static' is not at beginning of declaration [-Wold-style-declaration] const static u32 chan222222[] = { ^~~~~ This patch moves the 'static' keyword to the front of the declaration to fix the compiler warnings Fixes: linux-next commit 7674bec4fc09 ("ASoC: rsnd: update BSDSR/BSDISR handling") Signed-off-by: Jiada Wang Acked-by: Kuninori Morimoto Signed-off-by: Mark Brown commit 131abc56e1bacef23cb7b340519d36e2f5adb2a9 Author: Hans de Goede Date: Mon Mar 4 17:47:24 2019 +0100 drm/vboxvideo: Move the vboxvideo driver out of staging The vboxvideo driver has been converted to the atomic modesetting API and all FIXME and TODO items have been fixed, so it is time to move it out of staging. Acked-by: Greg Kroah-Hartman Acked-by: Daniel Vetter Signed-off-by: Hans de Goede Link: https://patchwork.freedesktop.org/patch/msgid/20190304164724.10210-4-hdegoede@redhat.com commit e5361b4b2b654ae7f0779de331ccd68e4970e401 Author: Hans de Goede Date: Mon Mar 4 17:47:23 2019 +0100 staging/vboxvideo: Refactor vbox_update_mode_hints Refactor vbox_update_mode_hints to no longer use the obsolete drm_modeset_lock_all() and switch it over to drm_connector_list_iter instead of directly accessing the list using list_for_each_entry. Acked-by: Greg Kroah-Hartman Acked-by: Daniel Vetter Signed-off-by: Hans de Goede Link: https://patchwork.freedesktop.org/patch/msgid/20190304164724.10210-3-hdegoede@redhat.com commit dcf7000bef40fdffc8369faa373a1468e98d8c5c Author: Hans de Goede Date: Mon Mar 4 17:47:22 2019 +0100 staging/vboxvideo: Drop initial_mode_queried workaround Drop the initial_mode_queried workaround for kms clients which do not support hotplug, all kms clients should be able to deal with hotplug. Suggested-by: Daniel Vetter Acked-by: Greg Kroah-Hartman Acked-by: Daniel Vetter Signed-off-by: Hans de Goede Link: https://patchwork.freedesktop.org/patch/msgid/20190304164724.10210-2-hdegoede@redhat.com commit 893ded36e06de1f9826b6303b5733fbc4990a97a Author: Daniel Vetter Date: Thu Feb 21 16:59:51 2019 +0100 staging/vboxvideo: Another FIXME item Found while grepping around. Signed-off-by: Daniel Vetter Cc: Hans de Goede Cc: Greg Kroah-Hartman Cc: Sam Ravnborg Cc: Daniel Vetter Cc: Liviu Dudau Reviewed-by: Greg Kroah-Hartman Signed-off-by: Hans de Goede Link: https://patchwork.freedesktop.org/patch/msgid/20190221155951.19855-1-daniel.vetter@ffwll.ch commit a34ced4541cc453de520a0db47757f4b99983bf6 Author: Arnd Bergmann Date: Thu Mar 7 16:53:14 2019 +0100 drm/stm: fix CONFIG_FB dependency The DRM_STM driver can be built independently of the framebuffer layer, but it causes a Kconfig warning: WARNING: unmet direct dependencies detected for FB_PROVIDE_GET_FB_UNMAPPED_AREA Depends on [n]: HAS_IOMEM [=y] && FB [=n] Selected by [y]: - DRM_STM [=y] && HAS_IOMEM [=y] && DRM [=y] && (ARCH_STM32 [=n] || ARCH_MULTIPLATFORM [=y]) Selecting FB_PROVIDE_GET_FB_UNMAPPED_AREA actually has no effect if CONFIG_FB is disabled, so we can make it a conditional 'select' instead. Signed-off-by: Arnd Bergmann Signed-off-by: Benjamin Gaignard Link: https://patchwork.freedesktop.org/patch/msgid/20190307155323.2949975-1-arnd@arndb.de commit 3461cbfd34063a1cb17b0cd5b6112c3b2ca43f52 Merge: bd2dba19d310 296e9b19eff6 Author: Joonas Lahtinen Date: Mon Mar 11 13:11:01 2019 +0200 Merge tag 'topic/hdr-formats-2019-03-07' of git://anongit.freedesktop.org/drm/drm-misc into drm-intel-next-queued Add support for Y21x and Y41x to drm core and i915, and P01x support to i915. Signed-off-by: Joonas Lahtinen From: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/f2485309-d645-bed4-95f4-e66ff312aa05@linux.intel.com commit bd2dba19d3109f617527c48f4891dd3d8f6a3aa6 Merge: 26eeea150683 4b057e73f28f Author: Joonas Lahtinen Date: Mon Mar 11 13:09:20 2019 +0200 Merge drm/drm-next into drm-intel-next-queued To facilitate merging topic/hdr-formats from Maarten. Signed-off-by: Joonas Lahtinen commit 26eeea1506838c77524fa90c8e6f1cc246762a4a Author: Aditya Swarup Date: Wed Mar 6 18:14:12 2019 -0800 drm/i915/icl: Fix CRC mismatch error for DP link layer compliance Setting the pixel rounding bit to 1 in PIPE_CHICKEN register allows to passthrough FB pixels unmodified across pipe. This fixes the failures for DP link layer compliance tests 4.4.1.1, 4.4.1.2 & 4.4.1.3. (Lineage #1605353570) v2: This is also needed to fix failing IGT test case kms_cursor_crc on ICL.(Mika Kahola) Make macros consistent with i915_reg.h comments.(Jani Nikula) Cc: Clint Taylor Cc: Mika Kahola Cc: Jani Nikula Signed-off-by: Aditya Swarup Reviewed-by: Mika Kahola Signed-off-by: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/20190307021412.18626-1-aditya.swarup@intel.com References: https://bugs.freedesktop.org/show_bug.cgi?id=103232 commit f4ecb8ae70de86710e85138ce49af5c689951953 Author: Joonas Lahtinen Date: Mon Mar 11 10:17:04 2019 +0200 drm/i915: Update DRIVER_DATE to 20190311 Signed-off-by: Joonas Lahtinen commit 9c1c8416fc3759d52e6e173d4059149d5d2c6c00 Author: Yan Zhao Date: Sun Mar 10 21:40:45 2019 -0400 drm/i915/gvt: remove the unused sreg code cleanup. sreg is not used now. remove it for code cleanness. v3: remove unnecessary array_size in vreg's memory allocation (min he) v2: do not allocate memory for sreg. (min he) Reviewed-by: He, Min Signed-off-by: Yan Zhao Signed-off-by: Zhenyu Wang commit 85fddf0b002719b23ec545ea67b6983bfd8c92d5 Author: Chris Wilson Date: Sat Mar 9 16:02:50 2019 +0000 drm/i915: Introduce a context barrier callback In the next patch, we will want to update live state within a context. As this state may be in use by the GPU and we haven't been explicitly tracking its activity, we instead attach it to a request we send down the context setup with its new state and on retiring that request cleanup the old state as we then know that it is no longer live. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190309160250.29324-1-chris@chris-wilson.co.uk commit eea9b97b4504607a0805c71b20d2c3e93c8711a7 Author: Eric Anholt Date: Fri Mar 8 09:43:36 2019 -0800 drm/v3d: Add support for V3D v4.2. No compatible string for it yet, just the version-dependent changes. They've now tied the hub and the core interrupt lines into a single interrupt line coming out of the block. It also turns out I made a mistake in modeling the V3D v3.3 and v4.1 bridge as a part of V3D itself -- the bridge is going away in favor of an external reset controller in a larger HW module. v2: Use consistent checks for whether we're on 4.2, and fix a leak in an error path. v3: Use more general means of determining if the current 4.2 changes are in place, as apparently other platforms may switch back (noted by Dave). Update the binding doc. v4: Improve error handling for IRQ init. Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190308174336.7866-2-eric@anholt.net Reviewed-by: Dave Emett commit fc22771547e7e8a63679f0218e943d72b107de65 Author: Eric Anholt Date: Fri Mar 8 09:43:35 2019 -0800 drm/v3d: Handle errors from IRQ setup. Noted in review by Dave Emett for V3D 4.2 support. Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190308174336.7866-1-eric@anholt.net Reviewed-by: Dave Emett commit 831ebf18d63f10fe056542d5b70ec474df45d479 Author: Chris Wilson Date: Fri Mar 8 13:45:12 2019 +0000 drm/i915: Suppress the "Failed to idle" warning for gem_eio It is debatable whether having an error message on suspend for forcibly cancelling outstanding work is worthwhile. We want to know if it occurs in the wild (as we will then have to reconsider the approach!), but equally is not fatal across suspend, as upon resume we automatically clear the wedged status. However, CI does trigger this scenario with gem_eio/suspend; as there we are intentionally wedging the device upon suspend. The dilemma is how not to trigger a failure report for the dmesg spam, for which the quickest response is to suppress the warning in the kernel. I'd rather mark it as accepted in gem_eio, but for now detecting when gem_eio is playing games and cancelling the warning for that case seems a barely acceptable hack. Testcase: igt/gem_eio/suspend Reference: 5861b013e2c7 ("drm/i915: Do a synchronous switch-to-kernel-context on idling") Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190308134512.19115-1-chris@chris-wilson.co.uk commit 8f6e87d6d561f10cfa48a687345512419839b6d8 Author: José Roberto de Souza Date: Thu Mar 7 16:00:50 2019 -0800 drm/i915: Enable PSR2 by default The support for PSR2 was polished, IGT tests for PSR2 was added and it was tested performing regular user workloads like browsing, editing documents and compiling Linux, so it is time to enable it by default and enjoy even more power-savings. Cc: Rodrigo Vivi Reviewed-by: Dhinakaran Pandiyan Reviewed-by: Rodrigo Vivi Signed-off-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190308000050.6226-9-jose.souza@intel.com commit 88e05aff355e340864df4bd005fa5095a6452090 Author: José Roberto de Souza Date: Thu Mar 7 16:00:49 2019 -0800 drm/i915: Force PSR1 exit when getting pipe CRC If PSR1 is active when pipe CRC is enabled the CRC calculations will be inhibit by the transition to low power states that PSR1 brings. So lets force a PSR1 exit and as soon as pipe CRC is enabled it will block PSR1 activation and avoid CRC timeouts when running IGT tests. There is a little window between the call to force exit PSR and the write to pipe CRC registers that needs to happen within the minimum of 6 idles frames otherwise PSR1 will be active again causing the CRC timeouts but anyways this will at least reduce the occurrence of CRC timeouts. This can possibily fix issues present right now but I did not found any open, I mostly got this issue from previous CI runs of this series, bellow some exambles: * igt@kms_color@pipe-b-ctm-0-75: - shard-apl: PASS -> FAIL +9 * igt@kms_cursor_legacy@flip-vs-cursor-busy-crc-legacy: - shard-apl: PASS -> DMESG-FAIL +17 * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-indfb-pgflip-blt: - shard-kbl: PASS -> DMESG-FAIL +12 * igt@kms_pipe_crc_basic@read-crc-pipe-c: - shard-kbl: PASS -> FAIL +7 v6: s/PSR/PSR1 (Dhinakaran) Cc: Ville Syrjälä Reviewed-by: Dhinakaran Pandiyan Signed-off-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190308000050.6226-8-jose.souza@intel.com commit 9f952664e38cb5261f38089527cab6ea53651f02 Author: José Roberto de Souza Date: Thu Mar 7 16:00:48 2019 -0800 drm/i915: Drop redundant checks to update PSR state All of this checks are redudant and can be removed as the if bellow already takes care when there is no changes in the state. Reviewed-by: Rodrigo Vivi Reviewed-by: Dhinakaran Pandiyan Signed-off-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190308000050.6226-7-jose.souza@intel.com commit 618cf883becd756d519488db6b21ab7a60ce7f7c Author: José Roberto de Souza Date: Thu Mar 7 16:00:47 2019 -0800 drm/i915: Disable PSR2 while getting pipe CRC When PSR2 is active aka after the number of frames programmed in PSR2_CTL 'Frames Before SU Entry' hardware stops to generate CRC interrupts causing IGT tests to fail due timeout. This same behavior don't happen with PSR1, as soon as pipe CRC is enabled it blocks PSR1 activation so CRC calculation continues to happens normaly. This patch also set mode_changed as true when PSR is available to force atomic check functions to compute new PSR state, otherwise PSR2 would not be disabled. v4: Only setting mode_changed if has_psr is set(Dhinakaran) v3: Reusing intel_crtc_crc_prepare() and crc_enabled, only setting mode_changed if it can do PSR. v2: Changed commit description to describe that PSR2 inhibit CRC calculations. Cc: Ville Syrjälä Reviewed-by: Dhinakaran Pandiyan Reviewed-by: Rodrigo Vivi Signed-off-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190308000050.6226-6-jose.souza@intel.com commit a8ebf6075b5d9077a61692097943df0b2131ffc5 Author: José Roberto de Souza Date: Thu Mar 7 16:00:46 2019 -0800 drm/i915/crc: Make IPS workaround generic Other features like PSR2 also needs to be disabled while getting CRC so lets rename ips_force_disable to crc_enabled, drop all this checks for pipe A and HSW and BDW and make it generic and hsw_compute_ips_config() will take care of all the checks removed from here. v2: Renaming and parameter changes to the functions that prepares the commit (Ville) Cc: Ville Syrjälä Reviewed-by: Dhinakaran Pandiyan Reviewed-by: Rodrigo Vivi Signed-off-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190308000050.6226-5-jose.souza@intel.com commit 458e097751946f039732b5e0408eb80382befb4d Author: José Roberto de Souza Date: Thu Mar 7 16:00:45 2019 -0800 drm/i915/psr: Drop test for EDP in CRTC when forcing commit If has_psr is set it means that CRTC has a EDP panel attached so the EDP check is redundant and can be dropped. Cc: Ville Syrjälä Reviewed-by: Dhinakaran Pandiyan Reviewed-by: Rodrigo Vivi Signed-off-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190308000050.6226-4-jose.souza@intel.com commit d168da8cfc7c49895fabc5570bfb2656013eb12c Author: José Roberto de Souza Date: Thu Mar 7 16:00:44 2019 -0800 drm/i915: Compute and commit color features in fastsets In any commit, intel_modeset_pipe_config() will initialilly clear and then recalculate most of the pipe states but it leave intel specific color features states in reset state. If after intel_pipe_config_compare() is detected that a fastset is possible it will mark update_pipe as true and unsed mode_changed, causing the color features state to be kept in reset state and then latter being committed to hardware disabling the color features. This issue can be reproduced by any code patch that duplicates the actual(with color features already enabled) state and only mark mode_changed as true. Reviewed-by: Ville Syrjälä Cc: Ville Syrjälä Cc: Maarten Lankhorst Signed-off-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190308000050.6226-3-jose.souza@intel.com commit 54da1d43c609bd250984290f9d08965ecaae53a0 Author: José Roberto de Souza Date: Thu Mar 7 16:00:43 2019 -0800 drm/i915/psr: Only lookup for enabled CRTCs when forcing a fastset Forcing a specific CRTC to the eDP connector was causing the intel_psr_fastset_force() to mark mode_chaged in the wrong and disabled CRTC causing no update in the PSR state. Looks like our internal state track do not clear output_types and has_psr in the disabled CRTCs, not sure if this is the expected behavior or not but in the mean time this fix the issue. Cc: Maarten Lankhorst Cc: Dhinakaran Pandiyan Reviewed-by: Dhinakaran Pandiyan Signed-off-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190308000050.6226-2-jose.souza@intel.com commit eec6d8121770e6a56ede41ef5a238e2099b304c0 Author: José Roberto de Souza Date: Thu Mar 7 16:00:42 2019 -0800 drm/i915/psr: Remove PSR2 FIXME Now we are checking sink capabilities when probing PSR DPCD register and then dynamically checking in if new state is compatible with PSR in, so this FIXME can be dropped. Reviewed-by: Dhinakaran Pandiyan Cc: Dhinakaran Pandiyan Signed-off-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190308000050.6226-1-jose.souza@intel.com commit 935f3d88434b564985bb5f7457852f8d7a21752a Author: Eric Anholt Date: Wed Feb 20 15:36:58 2019 -0800 drm/v3d: Make sure the GPU is on when measuring clocks. You'll get garbage measurements if the registers always read back 0xdeadbeef Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190220233658.986-3-eric@anholt.net Reviewed-by: Dave Emett commit a7dde1b7a5c9adf13d422240d02b812952660a35 Author: Eric Anholt Date: Wed Feb 20 15:36:57 2019 -0800 drm/v3d: Don't try to set OVRTMUOUT on V3D 4.x. The old field is gone and the register now has a different field, QRMAXCNT for how many TMU requests get serviced before thread switch. We were accidentally reducing it from its default of 0x3 (4 requests) to 0x0 (1). v2: Skip setting the reg at all on 4.x, instead of trying to update only the old field. Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190220233658.986-2-eric@anholt.net Reviewed-by: Dave Emett commit d26f9c7f888d362f3ecd3ef029456b64b30a9164 Merge: 877b372996bf 296e9b19eff6 Author: Sean Paul Date: Fri Mar 8 09:29:40 2019 -0500 Merge tag 'topic/hdr-formats-2019-03-07' of git://anongit.freedesktop.org/drm/drm-misc into drm-misc-next Add support for Y21x and Y41x to drm core and i915, and P01x support to i915. Signed-off-by: Sean Paul From: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/f2485309-d645-bed4-95f4-e66ff312aa05@linux.intel.com commit 0881954965e3d9af1e715519404cea66a794207e Author: Chris Wilson Date: Fri Mar 8 13:25:22 2019 +0000 drm/i915: Introduce intel_context.pin_mutex for pin management Introduce a mutex to start locking the HW contexts independently of struct_mutex, with a view to reducing the coarse struct_mutex. The intel_context.pin_mutex is used to guard the transition to and from being pinned on the gpu, and so is required before starting to build any request. The intel_context will then remain pinned until the request completes, but the mutex can be released immediately unpin completion of pinning the context. A slight variant of the above is used by per-context sseu that wants to inspect the pinned status of the context, and requires that it remains stable (either !pinned or pinned) across its operation. By using the pin_mutex to serialise operations while pin_count==0, we can take that pin_mutex for stabilise the boolean pin status. v2: for Tvrtko! * Improved commit message. * Dropped _gpu suffix from gen8_modify_rpcs_gpu. v3: Repair the locking for sseu selftests Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190308132522.21573-7-chris@chris-wilson.co.uk commit 9dbfea98d70ba83c3a824b470447b8d452ae2540 Author: Chris Wilson Date: Fri Mar 8 13:25:21 2019 +0000 drm/i915: Track the pinned kernel contexts on each engine Each engine acquires a pin on the kernel contexts (normal and preempt) so that the logical state is always available on demand. Keep track of each engines pin by storing the returned pointer on the engine for quick access. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190308132522.21573-6-chris@chris-wilson.co.uk commit 95f697eb024d7def7f9050cd5eba9502034dd94d Author: Chris Wilson Date: Fri Mar 8 13:25:20 2019 +0000 drm/i915: Make context pinning part of intel_context_ops Push the intel_context pin callback down from intel_engine_cs onto the context itself by virtue of having a central caller for intel_context_pin() being able to lookup the intel_context itself. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190308132522.21573-5-chris@chris-wilson.co.uk commit c4d52feb2c46ddcdde4058cf03f8b9eb996bb09b Author: Chris Wilson Date: Fri Mar 8 13:25:19 2019 +0000 drm/i915: Move over to intel_context_lookup() In preparation for an ever growing number of engines and so ever increasing static array of HW contexts within the GEM context, move the array over to an rbtree, allocated upon first use. Unfortunately, this imposes an rbtree lookup at a few frequent callsites, but we should be able to mitigate those by moving over to using the HW context as our primary type and so only incur the lookup on the boundary with the user GEM context and engines. v2: Check for no HW context in guc_stage_desc_init Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190308132522.21573-4-chris@chris-wilson.co.uk commit 4dc84b77b07731b7f5de2ce14b5f0526a86f013d Author: Chris Wilson Date: Fri Mar 8 13:25:18 2019 +0000 drm/i915: Store the intel_context_ops in the intel_engine_cs If we place a pointer to the engine specific intel_context_ops in the engine itself, we can assign the ops pointer on initialising the context, and then rely on it being set. This simplifies the code in later patches. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190308132522.21573-3-chris@chris-wilson.co.uk commit 39e2f501c1b431bd9291308e1ef02b9a02fffbee Author: Chris Wilson Date: Fri Mar 8 13:25:17 2019 +0000 drm/i915: Split struct intel_context definition to its own header This complex struct pulling in half the driver deserves its own isolation in preparation for intel_context becoming an outright complicated class of its own. In order to split this beast into its own header also requests splitting several of its dependent types and their dependencies into their own headers as well. v2: Add standalone compilation tests Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190308132522.21573-2-chris@chris-wilson.co.uk commit 7e3d9a59410d8ea1b4240952485731252ac15f34 Author: Chris Wilson Date: Fri Mar 8 13:25:16 2019 +0000 drm/i915: Track active engines within a context For use in the next patch, if we track which engines have been used by the HW, we can reduce the work required to flush our state off the HW to those engines. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190308132522.21573-1-chris@chris-wilson.co.uk commit ab3517c1eb01cfd97df8c83435fe43329e0cfae3 Author: Jani Nikula Date: Tue Mar 5 15:52:15 2019 +0200 drm/i915/dp: use single point of truth for PPS divisor register Set pp_div field of struct pps_registers to INVALID_MMIO_REG when the register isn't there, and use i915_mmio_reg_valid() instead of repeating the condition all over the place. Use INVALID_MMIO_REG explicitly for documentation purposes, even if the value is unchanged from 0. Cc: Rodrigo Vivi Cc: Ville Syrjälä Reviewed-by: Lucas De Marchi Reviewed-by: Rodrigo Vivi Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190305135215.29862-2-jani.nikula@intel.com commit 1b61c4a3eea2bead6725b6907616684497ff8765 Author: Jani Nikula Date: Tue Mar 5 15:52:14 2019 +0200 drm/i915/dp: deconflate PPS unlock from divisor register PPS locking is a thing on pre-DDI, up to and including CPT and PPT. The PPS divisor register exists up to gen 9 BC, replaced by a field in the control register starting from gen 9 LP, i.e. BXT, GLK, and CNP on. Commit b0a08bec9631 ("drm/i915/bxt: eDP Panel Power sequencing") stopped using the divisor register, but inadvertently conflated the PPS unlock in the change. No longer doing the unlocking was the right thing to do, however we should've stopped already at LPT (or DDI platforms). Deconflate the two. Arguably this could be moved away from here altogether, but this is the minimally intrusive change for now. Cc: Rodrigo Vivi Cc: Ville Syrjälä Reviewed-by: Rodrigo Vivi Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190305135215.29862-1-jani.nikula@intel.com commit 7d6ce55887a44c15c6df29e883d0ea567c8ac55c Author: Chris Wilson Date: Fri Mar 8 09:36:57 2019 +0000 drm/i915: Remove has-kernel-context We can no longer assume execution ordering, and in particular we cannot assume which context will execute last. One side-effect of this is that we cannot determine if the kernel-context is resident on the GPU, so remove the routines that claimed to do so. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190308093657.8640-4-chris@chris-wilson.co.uk commit c6eeb4797eb94ad14bb34adfccbc6addad2cfd48 Author: Chris Wilson Date: Fri Mar 8 09:36:56 2019 +0000 drm/i915: Reduce presumption of request ordering for barriers Currently we assume that we know the order in which requests run and so can determine if we need to reissue a switch-to-kernel-context prior to idling. That assumption does not hold for the future, so instead of tracking which barriers have been used, simply determine if we have ever switched away from the kernel context by using the engine and before idling ensure that all engines that have been used since the last idle are synchronously switched back to the kernel context for safety (and else of shrinking memory while idle). v2: Use intel_engine_mask_t and ALL_ENGINES Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190308093657.8640-3-chris@chris-wilson.co.uk commit 604c37d76689d6a0e5492f5ff71886ab83817208 Author: Chris Wilson Date: Fri Mar 8 09:36:55 2019 +0000 drm/i915: Refactor common code to load initial power context We load a context (the kernel context) on both module load and resume in order to initialise some logical state onto the GPU. We can use the same routine for both operations, which will become more useful as we refactor rc6/rps enabling. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190308093657.8640-2-chris@chris-wilson.co.uk commit 5861b013e2c7328b10ff691e655ae678245fd6fd Author: Chris Wilson Date: Fri Mar 8 09:36:54 2019 +0000 drm/i915: Do a synchronous switch-to-kernel-context on idling When the system idles, we switch to the kernel context as a defensive measure (no users are harmed if the kernel context is lost). Currently, we issue a switch to kernel context and then come back later to see if the kernel context is still current and the system is idle. However, if we are no longer privy to the runqueue ordering, then we have to relax our assumptions about the logical state of the GPU and the only way to ensure that the kernel context is currently loaded is by issuing a request to run after all others, and wait for it to complete all while preventing anyone else from issuing their own requests. v2: Pull wedging into switch_to_kernel_context_sync() but only after waiting (though only for the same short delay) for the active context to finish. Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190308093657.8640-1-chris@chris-wilson.co.uk commit 3123ada8eb5dd8889d25d63b5a0943f08b2d4390 Author: Chris Wilson Date: Wed Mar 6 14:25:01 2019 +0000 drm/i915/selftests: Check preemption support on each engine Check that we have setup on preemption for the engine before testing, instead warn if it is not enabled on supported HW. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190306142517.22558-28-chris@chris-wilson.co.uk commit 209d73530d7effed2acf7e5b88ea5cf8c73a800b Author: Imre Deak Date: Thu Mar 7 12:32:35 2019 +0200 drm/i915/icl: Prevent incorrect DBuf enabling Pretend that we have only 1 DBuf slice and that 1 slice is always enabled, until we have a proper way for on-demand toggling of the second slice. Currently we'll try to incorrectly enable DBuf even when all pipes are disabled and we are already runtime suspended (as the computed number of DBuf slices will be 1 in that case). This also means we'll leave the second slice enabled redundantly (except when suspended), but that's an acceptable tradeoff until we have a proper solution. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108756 Cc: Ville Syrjälä Signed-off-by: Imre Deak Reviewed-by: Rodrigo Vivi Link: https://patchwork.freedesktop.org/patch/msgid/20190307103235.23538-1-imre.deak@intel.com commit 2835f4f36b6a9e8e8a719e4741c39d436f9c2e43 Author: Chris Wilson Date: Thu Mar 7 21:19:47 2019 +0000 drm/i915/selftests: Improve switch-to-kernel-context checking We can reduce the switch-to-kernel-context selftest to operate as a loop and so trivially test another state transition (that of idle->busy). Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190307211947.6954-1-chris@chris-wilson.co.uk commit b185a35216c003f53149974981389f093523b137 Author: Ville Syrjälä Date: Wed Mar 6 22:35:51 2019 +0200 drm/i915: Read out memory type We'll need to know the memory type in the system for some bandwidth limitations and whatnot. Let's read that out on gen9+. v2: Rebase v3: Fix the copy paste fail in the BXT bit definitions (Jani) Reviewed-by: Jani Nikula Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190306203551.24592-13-ville.syrjala@linux.intel.com commit 6d9c1e92038507d03f6a25332719ad4b0ad00279 Author: Ville Syrjälä Date: Wed Mar 6 22:35:50 2019 +0200 drm/i915: Extract DIMM info on cnl+ We'll need information about the memory configuration on cnl+ too. Extend the code to parse the slightly changed register layout. v2: Document what cnl_get_dimm_size() returns (Jani) Reviewed-by: Jani Nikula Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190306203551.24592-12-ville.syrjala@linux.intel.com commit 30a533e5774b726621fffdb910d5ae5830f509cc Author: Ville Syrjälä Date: Wed Mar 6 22:35:49 2019 +0200 drm/i915: Clean up intel_get_dram_info() a bit Remove the pointless zero initialization of bunch of things (the thing is kzalloc()ed). Also throw out the mostly useless on-stack string. I think it'll be clear enough from the logs that 0 means unknown. Reviewed-by: Jani Nikula Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190306203551.24592-11-ville.syrjala@linux.intel.com commit 1d55967dc1cfb50906422f8068e8332ba3821bc7 Author: Ville Syrjälä Date: Wed Mar 6 22:35:48 2019 +0200 drm/i914: s/l_info/dimm_l/ etc. Rename the dimm info structs for clarity. Reviewed-by: Jani Nikula Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190306203551.24592-10-ville.syrjala@linux.intel.com commit d75434bc341eca20c4d094bc30946028b53d1281 Author: Ville Syrjälä Date: Wed Mar 6 22:35:47 2019 +0200 drm/i915: Generalize intel_is_dram_symmetric() Decouple intel_is_dram_symmetric() from the raw register values by comparing just the dram_channel_info structs. Reviewed-by: Jani Nikula Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190306203551.24592-9-ville.syrjala@linux.intel.com commit 198b8dd91b7978c01a5cc719ce5bd75b3b9732f4 Author: Ville Syrjälä Date: Wed Mar 6 22:35:46 2019 +0200 drm/i915: Use dram_dimm_info more Reduce the code duplication a bit by sharing the same code for parsing both DIMMs on a channel. v2: s/%d/%u/ all over (Jani) Reviewed-by: Jani Nikula Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190306203551.24592-8-ville.syrjala@linux.intel.com commit 331ecded7e6cb005a22fea99d3d02402cf19a7b1 Author: Ville Syrjälä Date: Wed Mar 6 22:35:45 2019 +0200 drm/i915: Extract DIMM info on GLK too The BXT code for parsing DIMM info works for GLK too. Let's dig it out even if we might not need it immediately. Reviewed-by: Jani Nikula Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190306203551.24592-7-ville.syrjala@linux.intel.com commit 8860343cc9a7f31fa6d0fb904770924593f6c311 Author: Ville Syrjälä Date: Wed Mar 6 22:35:44 2019 +0200 drm/i915: Fix DRAM size reporting for BXT The BXT DUNIT register tells us the size of each DRAM device in Gb. We want to report the size of the whole DIMM in GB, so that it matches how we report it for non-LP platforms. v2: Deobfuscate the math (Chris) s/GB/GBIT/ in the register bit definitions (Jani) Reviewed-by: Jani Nikula Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190306203551.24592-6-ville.syrjala@linux.intel.com commit a62819a301d8d68d6d305adc20fbea6fbcb67a14 Author: Ville Syrjälä Date: Wed Mar 6 22:35:43 2019 +0200 drm/i915: Extract BXT DIMM helpers Polish the bxt DIMM parsing by extracting a few small helpers. v2: Use struct dram_dimm_info v3: Document what bxt_get_dimm_size() returns (Jani) Reviewed-by: Jani Nikula Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190306203551.24592-5-ville.syrjala@linux.intel.com commit 54561b238b1994d7ffe586b9d85ddf3c39a5a37c Author: Ville Syrjälä Date: Wed Mar 6 22:35:42 2019 +0200 drm/i915: Polish skl_is_16gb_dimm() Pass the dimm struct to skl_is_16gb_dimm() rather than passing each value separately. And let's replace the hardcoded set of values with some simple arithmetic. Also fix the byte vs. bit inconsistency in the debug message, and polish the wording otherwise as well. v2: Deobfuscate the math (Chris) Reviewed-by: Jani Nikula Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190306203551.24592-4-ville.syrjala@linux.intel.com commit ea411e6b85df938eaa3ec4e3e34e885ff496a3ce Author: Ville Syrjälä Date: Wed Mar 6 22:35:41 2019 +0200 drm/i915: Extract functions to derive SKL+ DIMM info Make the code less repetitive by extracting a few small helpers. v2: Squash in the switch removal for skl_get_dimm_ranks() (it got misplaced in a rebase accident) Document what skl_get_dimm_size() returns (Jani) Reviewed-by: Jani Nikula Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190306203551.24592-3-ville.syrjala@linux.intel.com commit 80373fb6be9643d065c57c1030038fe927cfb478 Author: Ville Syrjälä Date: Wed Mar 6 22:35:40 2019 +0200 drm/i915: Store DIMM rank information as a number Life will be easier later if we have the ranks stored as a bare number. v2: s/%d/%u/ all over (Jani) Reviewed-by: Jani Nikula Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190306203551.24592-2-ville.syrjala@linux.intel.com commit 2909bf0562693b39edda06359ea265fac877f937 Author: José Roberto de Souza Date: Tue Mar 5 14:11:53 2019 -0800 drm/i915/icl: Remove alpha support protection Now with the watermarks fixes merged, Icelake is stable enough to have the alpha support protection flag removed. We have a few ICL machines in our CI and it is mostly green with failures in tests that will not impact future linux installations. Also there is no warnings, errors, flickering or any visual defects while doing ordinary tasks like browsing and editing documents in a dual monitor setup. As a reminder i915.alpha_support was created to protect future linux installation's iso images that might contain a kernel from the enabling time of the new platform. Without this protection most of linux installation was recommending nomodeset option during installation that was getting stick there after installation. Specifically, alpha support says nothing about the development state of the hardware, and everything about the state of the driver in a kernel release. This is semantically no different from the old preliminary_hw_support flag, but the old one was all too often interpreted as (preliminary hw) support instead of the intended (preliminary) hw support, and it was misleading for everyone. Hence the rename. Reference: https://intel-gfx-ci.01.org/tree/drm-tip/fi-icl-y.html Reference: https://intel-gfx-ci.01.org/tree/drm-tip/shard-iclb.html Cc: James Ausmus Cc: Jani Saarinen Cc: Paulo Zanoni Cc: Rodrigo Vivi Cc: Jani Nikula Cc: Ville Syrjälä Signed-off-by: José Roberto de Souza Reviewed-by: Rodrigo Vivi Link: https://patchwork.freedesktop.org/patch/msgid/20190305221153.359-1-jose.souza@intel.com commit 50b022af5d6b2b23b6743dbfaf274055d1d9646f Author: Chris Wilson Date: Thu Mar 7 10:45:30 2019 +0000 drm/i915: Force GPU idle on suspend To facilitate the next patch to allow preemptible kernels not to incur the wrath of hangcheck, we need to ensure that we can still suspend and shutdown. That is we will not be able to rely on hangcheck to terminate a blocking kernel and instead must manually do so ourselves. The advantage is that we can apply more pressure! As we now perform a GPU reset to clean up any residual kernels, we leave the GPU in an unknown state and in particular can not talk to the GuC before we reinitialise it following resume. For example, we no longer need to tell the GuC to suspend itself, as it is already reset. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190307104530.21745-2-chris@chris-wilson.co.uk commit 3d606249165870f28679eec1a3805ce291b0a273 Author: Chris Wilson Date: Thu Mar 7 10:45:29 2019 +0000 drm/i915: Make I915_GEM_IDLE_TIMEOUT into a macro Currently we use HZ/5 for detecting a dead gpu on startup, and we will wish to reuse this value for detecting a dead gpu on suspend, so convert it into a macro for later convenience. Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190307104530.21745-1-chris@chris-wilson.co.uk commit 877b372996bfd4f195d363d22de89571c9faab38 Author: Qiang Yu Date: Mon Feb 25 22:07:16 2019 +0800 drm: export drm_timeout_abs_to_jiffies For other driver like lima usage. Cc: Rob Herring Signed-off-by: Qiang Yu Signed-off-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/20190225140717.20586-2-yuq825@gmail.com commit d9973871dae1805678ac905318a5d4cecceb6524 Author: Oded Gabbay Date: Thu Mar 7 18:03:23 2019 +0200 habanalabs: keep track of the device's dma mask This patch refactors the code that is responsible to set the DMA mask for the device. Upon each change of the dma mask, the driver will save the new value that was set. This is needed in order to make sure we don't try to increase the mask a second time, in case we failed in the first time. This is especially relevant for Power machines, as that may cause a change in configuration of the TVT which will break the device. Goya will first try to set the device's dma mask to 39 bits, so that the memory that is allocated on the host machine for communication with the device's cpu will be in a bus address which is lower then 39 bits. Later, Goya will try to increase that mask to 48 bits, but only if setting the mask to 39 bits was successful. Signed-off-by: Oded Gabbay commit e2771deb5dece1acde9a406538e4f7ef9262d5cd Author: Maxime Ripard Date: Tue Feb 26 15:25:49 2019 +0100 drm/sun4i: rgb: Change the pixel clock validation check The current code, since commit bb43d40d7c83 ("drm/sun4i: rgb: Validate the clock rate"), perform some validation on the pixel clock to filter out the EDID modes provided by monitors (through bridges) that we wouldn't be able to reach. For the usual modes, we're able to generate a perfect clock rate, so a strict check was enough. However, this had the side effect of preventing displays that would work otherwise to operate properly, since we would pretty much never be able to generate an exact rate for those displays, even though we would fall within that panel tolerance. This was also shown to happen for unusual modes exposed through EDIDs, for example on eDP panels. We can work around this by simplifying a bit the problem: no panels we've encountered so far actually needed that check. All of them are tied to a particular board when it is produced, and made to work with the Allwinner BSP. That pretty much guarantees that we never have a pixel clock out of reach. On the other hand, the EDIDs modes that needed to be validated have always been exposed through bridges. Let's just use that metric to instead of validating all modes, only validate modes when we have a bridge attached. It should be good enough for now, while we still have room for improvements or refinements using the display_timings structure for example for panels. We also add a tolerance for EDID-based modes instead of doing a strict check. This tolerance is of 0.5% which is the one advertised in the VESA DVT and CVT specs. If that needed to be extended in the future, we can add a custom module parameter to relax it a bit. Fixes: bb43d40d7c83 ("drm/sun4i: rgb: Validate the clock rate") Signed-off-by: Maxime Ripard Tested-by: Vasily Khoruzhick # tested on pinebook Reviewed-by: Paul Kocialkowski Link: https://patchwork.freedesktop.org/patch/msgid/ec2dc2a7b3d4bd44f7a2a6e1c1813f92449a7310.1551191081.git-series.maxime.ripard@bootlin.com commit 9f7dfd0cb50f93662b182c05e59987ba9db9505e Author: Maxime Ripard Date: Tue Feb 26 15:25:48 2019 +0100 drm/sun4i: Move rate variables to long long Our clock rate variables are getting pretty close to the LONG_MAX / ULONG_MAX limit, especially since we will start doing arithmetic on it. Move those types to unsigned long long to be sure we don't overflow their type. Signed-off-by: Maxime Ripard Tested-by: Vasily Khoruzhick # tested on pinebook Reviewed-by: Paul Kocialkowski Link: https://patchwork.freedesktop.org/patch/msgid/022c3b850413edd6afbca20062f100971de2f5af.1551191081.git-series.maxime.ripard@bootlin.com commit 19d0ffe0ed79e2e801d0a07f3096f22436f76e4a Author: Maxime Ripard Date: Tue Feb 26 15:25:47 2019 +0100 drm/sun4i: rgb: Store the bridge pointer We'll need the bridge pointer, if any, in the mode_valid callback in addition to the init function. Store the pointer to the bridge in the rgb private structure. Signed-off-by: Maxime Ripard Tested-by: Vasily Khoruzhick # tested on pinebook Reviewed-by: Paul Kocialkowski Link: https://patchwork.freedesktop.org/patch/msgid/2f16d70fb09613b3a030fd6a016343047d519d43.1551191081.git-series.maxime.ripard@bootlin.com commit 1ce6f91c5fdd7d8cdf04ebf9ef6713e265bed2a6 Author: Maxime Ripard Date: Tue Feb 26 15:25:46 2019 +0100 drm/sun4i: Move the panel pointer from the TCON to the encoders The TCON driver used to need the panel pointer in order to configure the tcon according to the various parameters of the panel. However, this has evolved over time (especially to support bridges), and therefore the panel pointer isn't needed anymore by the TCON driver. Move that pointer to the LVDS and RGB encoders drivers. Signed-off-by: Maxime Ripard Tested-by: Vasily Khoruzhick # tested on pinebook Reviewed-by: Paul Kocialkowski Link: https://patchwork.freedesktop.org/patch/msgid/13288b6b8f27b614a6c9aef348923c34b2803ad4.1551191081.git-series.maxime.ripard@bootlin.com commit f741b28fb299263d2d03a0fb701bfe648927cd47 Author: Maxime Ripard Date: Wed Mar 6 15:02:45 2019 +0100 drm/vc4: Use 16bpp by default for the fbdev buffer The preferred bpp for the fbdev emulation buffer has been 32 so far, which means that by default we will allocate an 8MB buffer with a 1920x1080 resolution. Worse this memory will be allocated from the CMA pool, and will never be freed even if we don't use the fbdev emulation. Therefore, reducing it is a big deal, and switching to 16bpp by default will gain us around 4MB at 1920x1080, while keeping decent color depth. And users still have the option to switch to 32bpp using the kernel command line. Signed-off-by: Maxime Ripard Reviewed-by: Eric Anholt Reviewed-by: Paul Kocialkowski Link: https://patchwork.freedesktop.org/patch/msgid/20190306140245.21973-1-maxime.ripard@bootlin.com commit 043f44aba9a871da521fe6ebecd5c63e406256ff Author: Stephen Boyd Date: Wed Mar 6 14:13:41 2019 -0800 clk: highbank: Convert to CLK_IS_CRITICAL This code is hand-rolling the CLK_IS_CRITICAL flag to keep a clk on once it's registered. Just mark it as CLK_IS_CRITICAL instead so that the framework can handle keeping the clk prepared and enabled for all eternity. Cc: Rob Herring Signed-off-by: Stephen Boyd commit 5999bbe7a6ea3c62029532ec84dc06003a1fa258 Author: Thomas Gleixner Date: Tue Feb 19 00:02:31 2019 +0100 Documentation: Add MDS vulnerability documentation Add the initial MDS vulnerability documentation. Signed-off-by: Thomas Gleixner Reviewed-by: Jon Masters commit 65fd4cb65b2dad97feb8330b6690445910b56d6a Author: Thomas Gleixner Date: Tue Feb 19 11:10:49 2019 +0100 Documentation: Move L1TF to separate directory Move L!TF to a separate directory so the MDS stuff can be added at the side. Otherwise the all hardware vulnerabilites have their own top level entry. Should have done that right away. Signed-off-by: Thomas Gleixner Reviewed-by: Greg Kroah-Hartman Reviewed-by: Jon Masters commit 22dd8365088b6403630b82423cf906491859b65e Author: Thomas Gleixner Date: Wed Feb 20 09:40:40 2019 +0100 x86/speculation/mds: Add mitigation mode VMWERV In virtualized environments it can happen that the host has the microcode update which utilizes the VERW instruction to clear CPU buffers, but the hypervisor is not yet updated to expose the X86_FEATURE_MD_CLEAR CPUID bit to guests. Introduce an internal mitigation mode VMWERV which enables the invocation of the CPU buffer clearing even if X86_FEATURE_MD_CLEAR is not set. If the system has no updated microcode this results in a pointless execution of the VERW instruction wasting a few CPU cycles. If the microcode is updated, but not exposed to a guest then the CPU buffers will be cleared. That said: Virtual Machines Will Eventually Receive Vaccine Signed-off-by: Thomas Gleixner Reviewed-by: Borislav Petkov Reviewed-by: Jon Masters Tested-by: Jon Masters commit 8a4b06d391b0a42a373808979b5028f5c84d9c6a Author: Thomas Gleixner Date: Mon Feb 18 22:51:43 2019 +0100 x86/speculation/mds: Add sysfs reporting for MDS Add the sysfs reporting file for MDS. It exposes the vulnerability and mitigation state similar to the existing files for the other speculative hardware vulnerabilities. Signed-off-by: Thomas Gleixner Reviewed-by: Greg Kroah-Hartman Reviewed-by: Borislav Petkov Reviewed-by: Jon Masters Tested-by: Jon Masters commit bc1241700acd82ec69fde98c5763ce51086269f8 Author: Thomas Gleixner Date: Mon Feb 18 22:04:08 2019 +0100 x86/speculation/mds: Add mitigation control for MDS Now that the mitigations are in place, add a command line parameter to control the mitigation, a mitigation selector function and a SMT update mechanism. This is the minimal straight forward initial implementation which just provides an always on/off mode. The command line parameter is: mds=[full|off] This is consistent with the existing mitigations for other speculative hardware vulnerabilities. The idle invocation is dynamically updated according to the SMT state of the system similar to the dynamic update of the STIBP mitigation. The idle mitigation is limited to CPUs which are only affected by MSBDS and not any other variant, because the other variants cannot be mitigated on SMT enabled systems. Signed-off-by: Thomas Gleixner Reviewed-by: Borislav Petkov Reviewed-by: Jon Masters Tested-by: Jon Masters commit 07f07f55a29cb705e221eda7894dd67ab81ef343 Author: Thomas Gleixner Date: Mon Feb 18 23:04:01 2019 +0100 x86/speculation/mds: Conditionally clear CPU buffers on idle entry Add a static key which controls the invocation of the CPU buffer clear mechanism on idle entry. This is independent of other MDS mitigations because the idle entry invocation to mitigate the potential leakage due to store buffer repartitioning is only necessary on SMT systems. Add the actual invocations to the different halt/mwait variants which covers all usage sites. mwaitx is not patched as it's not available on Intel CPUs. The buffer clear is only invoked before entering the C-State to prevent that stale data from the idling CPU is spilled to the Hyper-Thread sibling after the Store buffer got repartitioned and all entries are available to the non idle sibling. When coming out of idle the store buffer is partitioned again so each sibling has half of it available. Now CPU which returned from idle could be speculatively exposed to contents of the sibling, but the buffers are flushed either on exit to user space or on VMENTER. When later on conditional buffer clearing is implemented on top of this, then there is no action required either because before returning to user space the context switch will set the condition flag which causes a flush on the return to user path. Note, that the buffer clearing on idle is only sensible on CPUs which are solely affected by MSBDS and not any other variant of MDS because the other MDS variants cannot be mitigated when SMT is enabled, so the buffer clearing on idle would be a window dressing exercise. This intentionally does not handle the case in the acpi/processor_idle driver which uses the legacy IO port interface for C-State transitions for two reasons: - The acpi/processor_idle driver was replaced by the intel_idle driver almost a decade ago. Anything Nehalem upwards supports it and defaults to that new driver. - The legacy IO port interface is likely to be used on older and therefore unaffected CPUs or on systems which do not receive microcode updates anymore, so there is no point in adding that. Signed-off-by: Thomas Gleixner Reviewed-by: Borislav Petkov Reviewed-by: Greg Kroah-Hartman Reviewed-by: Frederic Weisbecker Reviewed-by: Jon Masters Tested-by: Jon Masters commit 650b68a0622f933444a6d66936abb3103029413b Author: Thomas Gleixner Date: Wed Feb 27 12:48:14 2019 +0100 x86/kvm/vmx: Add MDS protection when L1D Flush is not active CPUs which are affected by L1TF and MDS mitigate MDS with the L1D Flush on VMENTER when updated microcode is installed. If a CPU is not affected by L1TF or if the L1D Flush is not in use, then MDS mitigation needs to be invoked explicitly. For these cases, follow the host mitigation state and invoke the MDS mitigation before VMENTER. Signed-off-by: Thomas Gleixner Reviewed-by: Greg Kroah-Hartman Reviewed-by: Frederic Weisbecker Reviewed-by: Borislav Petkov Reviewed-by: Jon Masters Tested-by: Jon Masters commit 04dcbdb8057827b043b3c71aa397c4c63e67d086 Author: Thomas Gleixner Date: Mon Feb 18 23:42:51 2019 +0100 x86/speculation/mds: Clear CPU buffers on exit to user Add a static key which controls the invocation of the CPU buffer clear mechanism on exit to user space and add the call into prepare_exit_to_usermode() and do_nmi() right before actually returning. Add documentation which kernel to user space transition this covers and explain why some corner cases are not mitigated. Signed-off-by: Thomas Gleixner Reviewed-by: Greg Kroah-Hartman Reviewed-by: Borislav Petkov Reviewed-by: Frederic Weisbecker Reviewed-by: Jon Masters Tested-by: Jon Masters commit 6a9e529272517755904b7afa639f6db59ddb793e Author: Thomas Gleixner Date: Mon Feb 18 23:13:06 2019 +0100 x86/speculation/mds: Add mds_clear_cpu_buffers() The Microarchitectural Data Sampling (MDS) vulernabilities are mitigated by clearing the affected CPU buffers. The mechanism for clearing the buffers uses the unused and obsolete VERW instruction in combination with a microcode update which triggers a CPU buffer clear when VERW is executed. Provide a inline function with the assembly magic. The argument of the VERW instruction must be a memory operand as documented: "MD_CLEAR enumerates that the memory-operand variant of VERW (for example, VERW m16) has been extended to also overwrite buffers affected by MDS. This buffer overwriting functionality is not guaranteed for the register operand variant of VERW." Documentation also recommends to use a writable data segment selector: "The buffer overwriting occurs regardless of the result of the VERW permission check, as well as when the selector is null or causes a descriptor load segment violation. However, for lowest latency we recommend using a selector that indicates a valid writable data segment." Add x86 specific documentation about MDS and the internal workings of the mitigation. Signed-off-by: Thomas Gleixner Reviewed-by: Borislav Petkov Reviewed-by: Greg Kroah-Hartman Reviewed-by: Frederic Weisbecker Reviewed-by: Jon Masters Tested-by: Jon Masters commit 6c4dbbd14730c43f4ed808a9c42ca41625925c22 Author: Andi Kleen Date: Fri Jan 18 16:50:23 2019 -0800 x86/kvm: Expose X86_FEATURE_MD_CLEAR to guests X86_FEATURE_MD_CLEAR is a new CPUID bit which is set when microcode provides the mechanism to invoke a flush of various exploitable CPU buffers by invoking the VERW instruction. Hand it through to guests so they can adjust their mitigations. This also requires corresponding qemu changes, which are available separately. [ tglx: Massaged changelog ] Signed-off-by: Andi Kleen Signed-off-by: Thomas Gleixner Reviewed-by: Borislav Petkov Reviewed-by: Greg Kroah-Hartman Reviewed-by: Frederic Weisbecker Reviewed-by: Jon Masters Tested-by: Jon Masters commit e261f209c3666e842fd645a1e31f001c3a26def9 Author: Thomas Gleixner Date: Fri Mar 1 20:21:08 2019 +0100 x86/speculation/mds: Add BUG_MSBDS_ONLY This bug bit is set on CPUs which are only affected by Microarchitectural Store Buffer Data Sampling (MSBDS) and not by any other MDS variant. This is important because the Store Buffers are partitioned between Hyper-Threads so cross thread forwarding is not possible. But if a thread enters or exits a sleep state the store buffer is repartitioned which can expose data from one thread to the other. This transition can be mitigated. That means that for CPUs which are only affected by MSBDS SMT can be enabled, if the CPU is not affected by other SMT sensitive vulnerabilities, e.g. L1TF. The XEON PHI variants fall into that category. Also the Silvermont/Airmont ATOMs, but for them it's not really relevant as they do not support SMT, but mark them for completeness sake. Signed-off-by: Thomas Gleixner Reviewed-by: Frederic Weisbecker Reviewed-by: Jon Masters Tested-by: Jon Masters commit ed5194c2732c8084af9fd159c146ea92bf137128 Author: Andi Kleen Date: Fri Jan 18 16:50:16 2019 -0800 x86/speculation/mds: Add basic bug infrastructure for MDS Microarchitectural Data Sampling (MDS), is a class of side channel attacks on internal buffers in Intel CPUs. The variants are: - Microarchitectural Store Buffer Data Sampling (MSBDS) (CVE-2018-12126) - Microarchitectural Fill Buffer Data Sampling (MFBDS) (CVE-2018-12130) - Microarchitectural Load Port Data Sampling (MLPDS) (CVE-2018-12127) MSBDS leaks Store Buffer Entries which can be speculatively forwarded to a dependent load (store-to-load forwarding) as an optimization. The forward can also happen to a faulting or assisting load operation for a different memory address, which can be exploited under certain conditions. Store buffers are partitioned between Hyper-Threads so cross thread forwarding is not possible. But if a thread enters or exits a sleep state the store buffer is repartitioned which can expose data from one thread to the other. MFBDS leaks Fill Buffer Entries. Fill buffers are used internally to manage L1 miss situations and to hold data which is returned or sent in response to a memory or I/O operation. Fill buffers can forward data to a load operation and also write data to the cache. When the fill buffer is deallocated it can retain the stale data of the preceding operations which can then be forwarded to a faulting or assisting load operation, which can be exploited under certain conditions. Fill buffers are shared between Hyper-Threads so cross thread leakage is possible. MLDPS leaks Load Port Data. Load ports are used to perform load operations from memory or I/O. The received data is then forwarded to the register file or a subsequent operation. In some implementations the Load Port can contain stale data from a previous operation which can be forwarded to faulting or assisting loads under certain conditions, which again can be exploited eventually. Load ports are shared between Hyper-Threads so cross thread leakage is possible. All variants have the same mitigation for single CPU thread case (SMT off), so the kernel can treat them as one MDS issue. Add the basic infrastructure to detect if the current CPU is affected by MDS. [ tglx: Rewrote changelog ] Signed-off-by: Andi Kleen Signed-off-by: Thomas Gleixner Reviewed-by: Borislav Petkov Reviewed-by: Greg Kroah-Hartman Reviewed-by: Frederic Weisbecker Reviewed-by: Jon Masters Tested-by: Jon Masters commit 36ad35131adacc29b328b9c8b6277a8bf0d6fd5d Author: Thomas Gleixner Date: Wed Feb 27 10:10:23 2019 +0100 x86/speculation: Consolidate CPU whitelists The CPU vulnerability whitelists have some overlap and there are more whitelists coming along. Use the driver_data field in the x86_cpu_id struct to denote the whitelisted vulnerabilities and combine all whitelists into one. Suggested-by: Linus Torvalds Signed-off-by: Thomas Gleixner Reviewed-by: Frederic Weisbecker Reviewed-by: Greg Kroah-Hartman Reviewed-by: Borislav Petkov Reviewed-by: Jon Masters Tested-by: Jon Masters commit d8eabc37310a92df40d07c5a8afc53cebf996716 Author: Thomas Gleixner Date: Thu Feb 21 12:36:50 2019 +0100 x86/msr-index: Cleanup bit defines Greg pointed out that speculation related bit defines are using (1 << N) format instead of BIT(N). Aside of that (1 << N) is wrong as it should use 1UL at least. Clean it up. [ Josh Poimboeuf: Fix tools build ] Reported-by: Greg Kroah-Hartman Signed-off-by: Thomas Gleixner Reviewed-by: Greg Kroah-Hartman Reviewed-by: Borislav Petkov Reviewed-by: Frederic Weisbecker Reviewed-by: Jon Masters Tested-by: Jon Masters commit 37fbbd49054b624400a65cf1a39f152a7f3f4749 Author: Ville Syrjälä Date: Tue Mar 5 21:29:05 2019 +0200 drm/i915: Populate pipe_offsets[] & co. accurately At some point people have started to assume that pipe_offsets[] & co. are only populated for pipes and whatnot that actually exist. That is in fact not currently true, but we can easily make it so. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190305192905.7140-1-ville.syrjala@linux.intel.com Reviewed-by: Chris Wilson commit 171d156257eeb2ae4171adae3807700da724451d Author: Ville Syrjälä Date: Tue Mar 5 21:24:00 2019 +0200 drm/i915: Simplify i830 DVO 2x clock handling Let's just always enable the DVO 2x clock on i830. This way we don't have to track if DVO is being used or not. The spec does suggest we should disable the clock when it isn't needed, but this does appear to work just fine. This removes another crtc->config usage. v2: Split the DPLL enable sequence change to a separate patch Reviewed-by: Chris Wilson #v1 Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190305192400.23121-2-ville.syrjala@linux.intel.com commit 7ca60367dd5256e277c1d7fda8b15dcb33afc65b Author: Ville Syrjälä Date: Tue Mar 5 21:23:59 2019 +0200 drm/i915: Do not temporarily disable the DPLL on i830 The current code clears the DPLL register entirely when re-enabling VGA mode temporarily during the DPLL enable sequence. On i830 we want to keep the DPLLs on all the time, so let's not do this temporary disabling. The current code does work, so this doesn't seem super important. But I prefer that we make the behaviour 100% consistent. v2: Split this change the DVO 2x clocking patch Reviewed-by: Chris Wilson #v1 Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190305192400.23121-1-ville.syrjala@linux.intel.com commit cd7d3a1bb42e0756b17ccfafbd956ca7ed757846 Merge: 6b5c029df5e4 4b057e73f28f Author: Sean Paul Date: Wed Mar 6 09:22:18 2019 -0500 Merge drm/drm-next into drm-misc-next Picking up v5.0 + missed misc-fixes from last release Signed-off-by: Sean Paul commit 6b5c029df5e40704a6642e026e709dd0dec44622 Author: Paul Kocialkowski Date: Wed Feb 20 16:51:24 2019 +0100 drm/vc4: Add a debugfs entry to disable/enable the load tracker In order to test whether the load tracker is working as expected, we need the ability to compare the commit result with the underrun indication. With the load tracker always enabled, commits that are expected to trigger an underrun are always rejected, so userspace cannot get the actual underrun indication from the hardware. Add a debugfs entry to disable/enable the load tracker, so that a DRM commit expected to trigger an underrun can go through with the load tracker disabled. The underrun indication is then available to userspace and can be checked against the commit result with the load tracker enabled. Signed-off-by: Paul Kocialkowski Reviewed-by: Eric Anholt Signed-off-by: Maxime Ripard Link: https://patchwork.freedesktop.org/patch/msgid/20190220155124.25022-4-paul.kocialkowski@bootlin.com commit 4686da83154d87be6e754ddc68e4ac89b0027ea9 Author: Boris Brezillon Date: Wed Feb 20 16:51:23 2019 +0100 drm/vc4: Add a load tracker to prevent HVS underflow errors The HVS block is supposed to fill the pixelvalve FIFOs fast enough to meet the requested framerate. The problem is, the HVS and memory bus bandwidths are limited, and if we don't take these limitations into account we might end up with HVS underflow errors. This patch is trying to model the per-plane HVS and memory bus bandwidth consumption and take a decision at atomic_check() time whether the estimated load will fit in the HVS and membus budget. Note that we take an extra margin on the memory bus consumption to let the system run smoothly when other blocks are doing heavy use of the memory bus. Same goes for the HVS limit, except the margin is smaller in this case, since the HVS is not used by external components. Signed-off-by: Boris Brezillon Signed-off-by: Paul Kocialkowski Reviewed-by: Eric Anholt Signed-off-by: Maxime Ripard Link: https://patchwork.freedesktop.org/patch/msgid/20190220155124.25022-3-paul.kocialkowski@bootlin.com commit 531a1b622da9adbf9f084d2ac4bf6a9f6a9acf28 Author: Boris Brezillon Date: Wed Feb 20 16:51:22 2019 +0100 drm/vc4: Report HVS underrun errors Add a debugfs entry and helper for reporting HVS underrun errors as well as helpers for masking and unmasking the underrun interrupts. Add an IRQ handler and initial IRQ configuration. Rework related register definitions to take the channel number. Signed-off-by: Boris Brezillon Signed-off-by: Paul Kocialkowski Reviewed-by: Eric Anholt Signed-off-by: Maxime Ripard Link: https://patchwork.freedesktop.org/patch/msgid/20190220155124.25022-2-paul.kocialkowski@bootlin.com commit a90e1948efb648f567444f87f3c19b2a0787affd Author: Tvrtko Ursulin Date: Tue Mar 5 11:04:08 2019 +0000 drm/i915: Relax mmap VMA check Legacy behaviour was to allow non-page-aligned mmap requests, as does the linux mmap(2) implementation by virtue of automatically rounding up for the caller. To avoid breaking legacy userspace relax the newly introduced fix. Signed-off-by: Tvrtko Ursulin Fixes: 5c4604e757ba ("drm/i915: Prevent a race during I915_GEM_MMAP ioctl with WC set") Reported-by: Guenter Roeck Cc: Adam Zabrocki Cc: Joonas Lahtinen Cc: # v4.0+ Cc: Akash Goel Cc: Chris Wilson Cc: Jani Nikula Cc: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org Reviewed-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190305110409.28633-1-tvrtko.ursulin@linux.intel.com commit b218a80b171598c33a066991bacbd9efe026081f Author: Michał Winiarski Date: Tue Mar 5 15:47:17 2019 +0100 drm/i915/selftests: Upgrade printing test/subtest name to pr_info We're using pr_debug for things that we don't really want to see in the CI log, but we may find useful during test development. Let's upgrade the test name printer - we do want to see those in CI log. Signed-off-by: Michał Winiarski Cc: Chris Wilson Reviewed-by: Tvrtko Ursulin Reviewed-by: Chris Wilson Signed-off-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190305144717.10000-1-michal.winiarski@intel.com commit 161996a8003faa22baaac9f379ef580af551d26f Author: Chris Wilson Date: Wed Mar 6 08:24:47 2019 +0000 drm/i915/selftests: Fix MI_STORE_DWORD_IMM alignment MI_STORE_DWORD_IMM wants to write into a dword-aligned (4B) address, we mistakenly cleared bit2 and not bits 0 and 1. Signed-off-by: Chris Wilson Cc: Matthew Auld Cc: Mika Kuoppala Reviewed-by: Matthew Auld Link: https://patchwork.freedesktop.org/patch/msgid/20190306082447.21563-1-chris@chris-wilson.co.uk commit b146e5efe660e03eee2b2c4a2e02410d9a8824ec Author: Chris Wilson Date: Wed Mar 6 08:47:04 2019 +0000 drm/i915: Pass around the intel_context Instead of passing the gem_context and engine to find the instance of the intel_context to use, pass around the intel_context instead. This is useful for the next few patches, where the intel_context is no longer a direct lookup. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190306084704.15755-1-chris@chris-wilson.co.uk commit 103b76eeff2e86cad489a54e6003d0173df76bde Author: Chris Wilson Date: Tue Mar 5 21:38:30 2019 +0000 drm/i915: Use i915_global_register() Rather than manually add every new global into each hook, use i915_global_register() function and keep a list of registered globals to invoke instead. However, I haven't found a way for random drivers to add an .init table to avoid having to manually add ourselves to i915_globals_init() each time. Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190305213830.18094-1-chris@chris-wilson.co.uk Reviewed-by: Tvrtko Ursulin commit f8b18cf4c33452ee17936c63a0dea5278c4ac050 Author: Alex Deucher Date: Sun Feb 10 21:50:53 2019 -0500 drm/amdgpu: use BACO on vega12 if platform supports it Use BACO for reset of the platform supports it. Reviewed-by: Hawking Zhang Signed-off-by: Alex Deucher commit 518f6a54624a905692290914ac1686a5bf5c9ef8 Author: Alex Deucher Date: Fri Feb 15 17:34:48 2019 -0500 drm/amdgpu/powerplay: split out common smu9 BACO code Several of the BACO functions are common across smu9-based asics. Split the common code out. Reviewed-by: Hawking Zhang Signed-off-by: Alex Deucher commit 750cced1c08b5258202f29ed954513be8f38df1b Author: Alex Deucher Date: Sun Feb 10 21:46:59 2019 -0500 drm/amdgpu/powerplay: add BACO support for vega12 This implements BACO (Bus Active, Chip Off) support for vega12. Reviewed-by: Hawking Zhang Signed-off-by: Alex Deucher commit 337cec9e6001042c99e4d29122693fada75c7454 Author: Mark McGarrity Date: Fri Feb 8 13:21:06 2019 -0500 drm/amd/display: 3.2.19 Signed-off-by: Mark McGarrity Reviewed-by: Tony Cheng Acked-by: Leo Li Signed-off-by: Alex Deucher commit 6649f19a364606b6475b61338422eed9845a0d61 Author: Jun Lei Date: Thu Feb 7 18:54:35 2019 -0500 drm/amd/display: Add ability to override bounding box in DC construct Add a dc_bounding_box_overrides struct to define bb overrides. It is loaded in during DC init. Signed-off-by: Jun Lei Reviewed-by: Tony Cheng Acked-by: Leo Li Signed-off-by: Alex Deucher commit 74aa7bd4c6f77431d1313bd9deb7647768ca0ef8 Author: David Francis Date: Fri Mar 1 18:22:07 2019 -0500 drm/amd/display: Make stream commits call into DC only once [Why] dc_commit_updates_for_stream is called twice per stream: once with the flip data and once will all other data. This causes problems when these DC calls have different numbers of planes For example, a commit with a pageflip on plane A and a non-pageflip change on plane B will first call into DC with just plane A, causing plane B to be disabled. Then it will call into DC with both planes, re-enabling plane B [How] Merge flip and full into a single bundle Apart from the single DC call, the logic should not be changed by this patch Signed-off-by: David Francis Reviewed-by: Nicholas Kazlauskas Acked-by: Leo Li Signed-off-by: Alex Deucher commit 8628d02f60d4a568d02fc12a26273a55f7718ec0 Author: Josip Pavic Date: Tue Feb 5 19:27:38 2019 -0500 drm/amd/display: optionally optimize edp link rate based on timing [Why] eDP v1.4 allows panels to report link rates other than RBR/HBR/HBR2, that may be more optimal for the panel's timing. Power can be saved by using a link rate closer to the required bandwidth of the panel's timing. [How] Scan the table of reported link rates from the panel, and select the minimum link rate that satisfies the bandwidth requirements of the panel's timing. Include a flag to make the feature optional. Signed-off-by: Josip Pavic Reviewed-by: Harry Wentland Acked-by: Anthony Koo Acked-by: Leo Li Signed-off-by: Alex Deucher commit 33e0a44583281a9951117e62260532e5e0ba166d Author: Jun Lei Date: Wed Feb 6 17:24:19 2019 -0500 drm/amd/display: Add p_state_change_support flag to dc_clocks Will be used to signify if P-state change is supported. Signed-off-by: Jun Lei Reviewed-by: Eric Yang Acked-by: Leo Li Signed-off-by: Alex Deucher commit 420cd472082697d50a5aab5146c818eb42c7e7e3 Author: David Francis Date: Fri Mar 1 18:15:26 2019 -0500 drm/amd/display: Clean up wait on vblank event [Why] The wait_for_vblank boolean in commit_tail was passed by reference into each stream commit, and if that commit was an asynchronous flip, it would disable vblank waits on all subsequent flips. This made the behaviour depend on crtc order in a non-intuitive way, although since the asynchronous pageflip flag is only used by the legacy IOCTLs at the moment it is never an issue [How] Find wait_for_vblank before doing any stream commits Signed-off-by: David Francis Reviewed-by: Nicholas Kazlauskas Acked-by: Leo Li Signed-off-by: Alex Deucher commit 128c075ad4fc4139f47bcd38a5115573394a0e34 Author: Wesley Chalmers Date: Wed Feb 6 13:19:08 2019 -0500 drm/amd/display: Set flip pending for pipe split [WHY] When doing split pipe, if one pipe is pending on flip, the entire plane's status should be flip pending, otherwise corruption can occur when OS writes to a surface prematurely. [HOW] Clear the flip pending bit before checking pipes, then OR the flip pending bits from all pipes together to create the flip pending status of the entire plane. Signed-off-by: Wesley Chalmers Reviewed-by: Jun Lei Acked-by: Eryk Brol Acked-by: Leo Li Signed-off-by: Alex Deucher commit dcf1a988678e2e39ce2b4115b8ce14d208c8c481 Author: Anthony Koo Date: Wed Feb 6 11:45:42 2019 -0500 drm/amd/display: Fix exception from AUX acquire failure [Why] AUX arbitration occurs between SW and FW components. When AUX acquire fails, it causes engine->ddc to be NULL, which leads to an exception when we try to release the AUX engine. [How] When AUX engine acquire fails, it should return from the function without trying to continue the operation. The upper level will determine if it wants to retry. i.e. dce_aux_transfer_with_retries will be used and retry. Signed-off-by: Anthony Koo Reviewed-by: Aric Cyr Acked-by: Leo Li Signed-off-by: Alex Deucher commit 4bc46da4a3aeeb4d55e83dd276cf72756e908286 Author: Nicholas Kazlauskas Date: Wed Feb 6 10:18:17 2019 -0500 drm/amd/display: Reset planes that were disabled in init_pipes [Why] Seamless boot tries to reuse planes that were enabled for the first commit applied. In the case where Raven is booting with two monitors connected and the first commit contains two streams the screen corruption would occur because the second stream was trying to re-use a tg and plane that weren't previously enabled. The state on the first commit looks something like the following: TG0: enabled=1 TG1: enabled=0 TG2: enabled=0 TG3: enabled=0 New state: pipe=0, stream=0, plane=0, new_tg=0 New state: pipe=1, stream=1, plane=1, new_tg=1 New state: pipe=2, stream=NULL, plane=NULL, new_tg=NULL New state: pipe=3, stream=NULL, plane=NULL, new_tg=NULL Only one plane/tg is setup before we enter accelerated mode so we really want to disabling everything but that first plane. [How] Check if the stream is not NULL and if the tg is enabled before deciding whether to skip the plane disable. Also ensure we're also disabling on the current state's pipe_ctx so we don't overwrite the fields in the new pending state. Signed-off-by: Nicholas Kazlauskas Reviewed-by: Anthony Koo Acked-by: Harry Wentland Acked-by: Leo Li Signed-off-by: Alex Deucher commit 4a797d24fe0dc75063e8cfc312d20abff8a0ea99 Author: Dmytro Laktyushkin Date: Fri Feb 1 07:31:47 2019 -0500 drm/amd/display: Allow for plane-less resource reservation This change changes dc add plane logic to allow plane-less resource reservation (pipe split). If a free pipe_ctx (no plane_state attached) is the head pipe, and is found with a bottom pipe attached, assign the plane to add on the bottom pipe. In addition, prepend dcn10 to dcn10-specific reset_back_end_for_pipe and reset_hw_ctx_wrap Signed-off-by: Dmytro Laktyushkin Reviewed-by: Charlene Liu Acked-by: Leo Li Signed-off-by: Alex Deucher commit 2750160bccab4d7a4017197a3f0d75ee8cc4c6af Author: Charlene Liu Date: Mon Feb 4 14:36:13 2019 -0500 drm/amd/display: dcn add check surface in_use Driver need to poll the SURFACE_INUSE register to determine when to start the new task and write data to the checked surface. Implement the wait functions, and add the necessary hubbub registers. Signed-off-by: Charlene Liu Reviewed-by: Dmytro Laktyushkin Acked-by: Leo Li Signed-off-by: Alex Deucher commit 46f81fc4af81b6523cf2a538b0d2e531ee1477b1 Author: Eryk Brol Date: Tue Jan 29 19:15:05 2019 -0500 drm/amd/display: Add DCN_VM aperture registers [Why] For later use by the DC VM implementation Signed-off-by: Eryk Brol Reviewed-by: Jun Lei Acked-by: Leo Li Signed-off-by: Alex Deucher commit 522f82f35fd0057cae326ad21a5f93a221b08b25 Author: Anthony Koo Date: Wed Jan 30 16:14:38 2019 -0500 drm/amd/display: make seamless boot work generically [Why] Seamless boot code not working on all ASICs because of some underflow issues caused by some uninitialized HW state. [How] Keep some logical and power gating init code in hw_init. Move some per pipe init code to enable accelerated mode Signed-off-by: Anthony Koo Reviewed-by: Aric Cyr Acked-by: Leo Li Signed-off-by: Alex Deucher commit a4360180bf0e5441739c915d95582cc3a89de283 Author: Fatemeh Darbehani Date: Thu Dec 20 16:54:07 2018 -0500 drm/amd/display: Remove redundant 'else' statement in dcn1_update_clocks [Why] DM has impelemented new pp_smu interface. 'Else' is not longer needed. Signed-off-by: Fatemeh Darbehani Reviewed-by: Eric Yang Acked-by: Leo Li Acked-by: Yongqiang Sun Signed-off-by: Alex Deucher commit e1998c8cfd59c223afabc20191c0570622583d06 Author: Eric Bernstein Date: Tue Jan 29 16:20:26 2019 -0500 drm/amd/display: Move enum gamut_remap_select to hw_shared.h This enum definition is shared, so move it to a shared location. Signed-off-by: Eric Bernstein Reviewed-by: Tony Cheng Acked-by: Leo Li Signed-off-by: Alex Deucher commit 68ea03a779c7b0018e2a8d47f74a6ea1a954bc18 Author: mmcgarri Date: Fri Feb 1 11:05:06 2019 -0500 drm/amd/display: 3.2.18 Signed-off-by: mmcgarri Reviewed-by: Tony Cheng Acked-by: Leo Li Signed-off-by: Alex Deucher commit 0f1a6ad724cd5270c7c7d1bba98ac1222a0943b6 Author: Jun Lei Date: Tue Jan 15 10:46:46 2019 -0500 drm/amd/display: PPLIB Hookup [Why] Make dml and integration with pplib clearer. [How] Change the way the dml formula is initialized to make its values more clear. Restructure DC interface with pplib into rv_funcs. Cap clocks received from pplib. Signed-off-by: Jun Lei Signed-off-by: Eryk Brol Reviewed-by: Dmytro Laktyushkin Acked-by: Leo Li Signed-off-by: Alex Deucher commit c7b0f71237af7e4ceb7bf723cf96b87178c00e54 Author: Charlene Liu Date: Thu Jan 31 20:39:16 2019 -0500 drm/amd/display: Add disable triple buffering DC debug option Added a "disable_tri_buf" DC debug option. When set to 1 feature will be off. Signed-off-by: Charlene Liu Reviewed-by: Dmytro Laktyushkin Acked-by: Leo Li Signed-off-by: Alex Deucher commit 7b19bba58f773b397b6c5a76681c8dc40467d9ff Author: Mario Kleiner Date: Sat Feb 9 07:52:55 2019 +0100 drm/amd/display: Use vrr friendly pageflip throttling in DC. In VRR mode, keep track of the vblank count of the last completed pageflip in amdgpu_crtc->last_flip_vblank, as recorded in the pageflip completion handler after each completed flip. Use that count to prevent mmio programming a new pageflip within the same vblank in which the last pageflip completed, iow. to throttle pageflips to at most one flip per video frame, while at the same time allowing to request a flip not only before start of vblank, but also anywhere within vblank. The old logic did the same, and made sense for regular fixed refresh rate flipping, but in vrr mode it prevents requesting a flip anywhere inside the possibly huge vblank, thereby reducing framerate in vrr mode instead of improving it, by delaying a slightly delayed flip requests up to a maximum vblank duration + 1 scanout duration. This would limit VRR usefulness to only help applications with a very high GPU demand, which can submit the flip request before start of vblank, but then have to wait long for fences to complete. With this method a flip can be both requested and - after fences have completed - executed, ie. it doesn't matter if the request (amdgpu_dm_do_flip()) gets delayed until deep into the extended vblank due to cpu execution delays. This also allows clients which want to regulate framerate within the vrr range a much more fine-grained control of flip timing, a feature that might be useful for video playback, and is very useful for neuroscience/vision research applications. In regular non-VRR mode, retain the old flip submission behavior. This to keep flip scheduling for fullscreen X11/GLX OpenGL clients intact, if they use the GLX_OML_sync_control extensions glXSwapBufferMscOML(, ..., target_msc,...) function with a specific target_msc target vblank count. glXSwapBuffersMscOML() or DRI3/Present PresentPixmap() will not flip at the proper target_msc for a non-zero target_msc if VRR mode is active with this patch. They'd often flip one frame too early. However, this limitation should not matter much in VRR mode, as scheduling based on vblank counts is pretty futile/unusable under variable refresh duration anyway, so no real extra harm is done. According to some testing already done with this patch by Nicholas on top of my tests, IGT tests didn't report any problems. If fixes stuttering and flickering when flipping at rates below the minimum vrr refresh rate. Fixes: bb47de736661 ("drm/amdgpu: Set FreeSync state using drm VRR properties") Signed-off-by: Mario Kleiner Cc: Cc: Harry Wentland Cc: Alex Deucher Cc: Michel Dänzer Tested-by: Bruno Filipe Reviewed-by: Nicholas Kazlauskas Signed-off-by: Nicholas Kazlauskas Signed-off-by: Alex Deucher Signed-off-by: Dave Airlie commit d846325ad0e5cd06f441299cdbec6ab8ba3a3c45 Author: Michał Winiarski Date: Tue Mar 5 13:48:26 2019 +0100 drm/i915/icl: Default to Thread Group preemption for compute workloads We assumed that the default preemption granularity is fine for ICL. Unfortunately, it turns out that some drivers don't support mid-thread preemption for compute workloads. If a workload that doesn't support mid-thread preemption gets mid-thread preempted, we're going to observe a GPU hang. While I'm here, let's also update the "workaround" naming. Signed-off-by: Michał Winiarski Cc: Anuj Phogat Cc: Joonas Lahtinen Cc: Matt Roper Cc: Rafael Antognolli Tested-by: Anuj Phogat Reviewed-by: Rodrigo Vivi Acked-by: Rafael Antognolli Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190305124827.23446-1-michal.winiarski@intel.com commit dbfbe717ccbb5b42815ef4bc35a66e2191b2e98d Author: David Francis Date: Thu Feb 21 15:20:01 2019 -0500 drm/dsc: Split DSC PPS and SDP header initialisations The DP 1.4 spec defines the SDP header and SDP contents for a Picture Parameter Set (PPS) that must be sent in advance of DSC transmission to define the encoding characteristics. This was done in one struct, drm_dsc_pps_infoframe, which conatined the SDP header and PPS. Because the PPS is a property of DSC over any connector, not just DP, and because drm drivers may have their own SDP structs they wish to use, make the functions that initialise SDP and PPS headers take the components they operate on, not drm_dsc_pps_infoframe, Signed-off-by: David Francis Reviewed-by: Manasi Navare Signed-off-by: Harry Wentland Link: https://patchwork.freedesktop.org/patch/msgid/20190221202001.28430-4-David.Francis@amd.com commit 06d7cecdb61115de3b573682a6615b05ae993932 Author: David Francis Date: Thu Feb 21 15:20:00 2019 -0500 drm/dsc: Add native 420 and 422 support to compute_rc_params Native 420 and 422 transfer modes are new in DSC1.2 In these modes, each two pixels of a slice are treated as one pixel, so the slice width is half as large (round down) for the purposes of calucating the groups per line and chunk size in bytes In native 422 mode, each pixel has four components, so the mux component of a group is larger by one additional mux word and one additional component Now that there is native 422 support, the configuration option previously called enable422 is renamed to simple_422 to avoid confusion Acked-by: Jani Nikula Reviewed-by: Manasi Navare Reviewed-by: Harry Wentland Signed-off-by: David Francis Signed-off-by: Harry Wentland Link: https://patchwork.freedesktop.org/patch/msgid/20190221202001.28430-3-David.Francis@amd.com commit dc43332b7af6f7aecd6b8867caeab272d5934d60 Author: David Francis Date: Thu Feb 21 15:19:59 2019 -0500 drm/i915: Move dsc rate params compute into drm The function intel_compute_rc_parameters is part of the dsc spec and is not driver-specific. Other drm drivers might like to use it. The function is not changed; just moved and renamed. Reviewed-by: Harry Wentland Signed-off-by: David Francis Signed-off-by: Harry Wentland Link: https://patchwork.freedesktop.org/patch/msgid/20190221202001.28430-2-David.Francis@amd.com commit cf4331dd3975f89fe4d20c6113620c9139b1c147 Author: Chris Wilson Date: Tue Mar 5 18:03:32 2019 +0000 drm/i915: Move find_active_request() to the engine To find the active request, we need only search along the individual engine for the right request. This does not require touching any global GEM state, so move it into the engine compartment. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190305180332.30900-3-chris@chris-wilson.co.uk commit fb251a72d630950fb1a6f4cccff99bffe5aece8b Author: Chris Wilson Date: Tue Mar 5 18:03:31 2019 +0000 drm/i915/gtt: Mark ALL_ENGINES as dirty on ppGTT modification Small simplification to set all bits in the dirty mask rather than lookup the exact mask of populated engines. The bits for the engines that do not exist are unused and so can safely set and then ignored. Signed-off-by: Chris Wilson Cc: Matthew Auld Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190305180332.30900-2-chris@chris-wilson.co.uk commit 8a68d464366efb5b294fa11ccf23b51306cc2695 Author: Chris Wilson Date: Tue Mar 5 18:03:30 2019 +0000 drm/i915: Store the BIT(engine->id) as the engine's mask In the next patch, we are introducing a broad virtual engine to encompass multiple physical engines, losing the 1:1 nature of BIT(engine->id). To reflect the broader set of engines implied by the virtual instance, lets store the full bitmask. v2: Use intel_engine_mask_t (s/ring_mask/engine_mask/) v3: Tvrtko voted for moah churn so teach everyone to not mention ring and use $class$instance throughout. v4: Comment upon the disparity in bspec for using VCS1,VCS2 in gen8 and VCS[0-4] in later gen. We opt to keep the code consistent and use 0-index naming throughout. Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190305180332.30900-1-chris@chris-wilson.co.uk commit c8b502422bfe04422261cb2861977a5cd31cc1da Author: Chris Wilson Date: Tue Mar 5 16:26:43 2019 +0000 drm/i915: Remove last traces of exec-id (GEM_BUSY) As we allow per-context engine allows the legacy concept of I915_EXEC_RING no longer applies universally. We are still exposing the unrelated exec-id in GEM_BUSY, so transition this ioctl (once more slightly changing its ABI, but no one cares) over to only reporting the uabi-class (not instance as we can not foreseeably fit those into the small bitmask). The only user of the extended ring information from GEM_BUSY is ddx/sna, which tries to use the non-rcs business information to guide which engine to use for subsequent operations on foreign bo. All that matters for it is the decision between rcs and !rcs, so it is unaffected by the change in higher bits. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190305162643.20243-1-chris@chris-wilson.co.uk commit 62acc7e892ef5800dbfd15af4abfc4b2b707dc1b Author: Chris Wilson Date: Tue Mar 5 15:09:14 2019 +0000 drm/i915: Stop capturing semaphore registers for gen6/7 GPU hangs We no longer use the semaphore sync registers on gen6/7, so including them in the GPU error state is mere noise. References: 6faf5916e6be ("drm/i915: Remove HW semaphores for gen7 inter-engine synchronisation") Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190305150914.11340-2-chris@chris-wilson.co.uk commit f14c0d9fd871b29772614f16e259af2f34290e2a Author: Chris Wilson Date: Tue Mar 5 15:09:13 2019 +0000 drm/i915: Just check the vebox IIR regardless As we don't unmask and enable the vebox interrupts if the engine is not being used, we will never generate the vebox interrupts as part of the IIR and so can unconditionally check IIR without fear of chasing into the vebox. Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190305150914.11340-1-chris@chris-wilson.co.uk commit a2ac437bc0feb15e9bd4c0bfb24e9fd9b133416d Author: Chris Wilson Date: Tue Mar 5 13:54:27 2019 +0000 drm/i915/gtt: Store scratch page size alongside not in the common struct As the scratch page is the only one to be allocated with variable size, rather than keep an unused slot in all i915_page_table structs, store it alongside the vm->scratch_page. Signed-off-by: Chris Wilson Cc: Matthew Auld Cc: Mika Kuoppala Reviewed-by: Matthew Auld Link: https://patchwork.freedesktop.org/patch/msgid/20190305135430.4948-1-chris@chris-wilson.co.uk commit 296e9b19eff6157e1e4f130fa436e105c45725e9 Author: Swati Sharma Date: Mon Mar 4 17:26:35 2019 +0530 drm/i915/icl: Enabling Y2xx and Y4xx (xx:10/12/16) formats for universal planes Signed-off-by: Swati Sharma Signed-off-by: Vidya Srinivas Reviewed-by: Juha-Pekka Heikkila Reviewed-by: Maarten Lankhorst Signed-off-by: Maarten Lankhorst Acked-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/1551700595-21481-7-git-send-email-swati2.sharma@intel.com commit 696fa001524a27fd05ef96fd85d7599a813a9926 Author: Swati Sharma Date: Mon Mar 4 17:26:34 2019 +0530 drm/i915/icl: Add Y2xx and Y4xx (xx:10/12/16) plane control definitions Added needed plane control flag definitions for Y2xx and Y4xx (10, 12 and 16 bits) Signed-off-by: Swati Sharma Signed-off-by: Vidya Srinivas Reviewed-by: Juha-Pekka Heikkila Reviewed-by: Maarten Lankhorst Signed-off-by: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/1551700595-21481-6-git-send-email-swati2.sharma@intel.com Acked-by: Jani Nikula commit 50bf5d7d595fd0705ef3785f80e679b6da501e5b Author: Swati Sharma Date: Mon Mar 4 17:26:33 2019 +0530 drm: Add Y2xx and Y4xx (xx:10/12/16) format definitions and fourcc The following pixel formats are packed format that follows 4:2:2 chroma sampling. For memory represenation each component is allocated 16 bits each. Thus each pixel occupies 32bit. Y210: For each component, valid data occupies MSB 10 bits. LSB 6 bits are filled with zeroes. Y212: For each component, valid data occupies MSB 12 bits. LSB 4 bits are filled with zeroes. Y216: For each component valid data occupies 16 bits, doesn't require any padding bits. First 16 bits stores the Y value and the next 16 bits stores one of the chroma samples alternatively. The first luma sample will be accompanied by first U sample and second luma sample is accompanied by the first V sample. The following pixel formats are packed format that follows 4:4:4 chroma sampling. Channels are arranged in the order UYVA in increasing memory order. Y410: Each color component occupies 10 bits and X component takes 2 bits, thus each pixel occupies 32 bits. Y412: Each color component is 16 bits where valid data occupies MSB 12 bits. LSB 4 bits are filled with zeroes. Thus, each pixel occupies 64 bits. Y416: Each color component occupies 16 bits for valid data, doesn't require any padding bits. Thus, each pixel occupies 64 bits. v3: fixed missing tab for XYUV8888 (JP) Signed-off-by: Swati Sharma Signed-off-by: Vidya Srinivas Reviewed-by: Juha-Pekka Heikkila Signed-off-by: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/1551700595-21481-5-git-send-email-swati2.sharma@intel.com commit 095b1d0706b9eb8791523d0d366e554bd954da0b Author: Juha-Pekka Heikkila Date: Mon Mar 4 17:26:32 2019 +0530 drm/i915: Enable P010, P012, P016 formats for primary and sprite planes Enabling of P010, P012 and P016 formats. These formats will extend NV12 for larger bit depths. Signed-off-by: Juha-Pekka Heikkila Signed-off-by: Swati Sharma Reviewed-by: Maarten Lankhorst Signed-off-by: Maarten Lankhorst Acked-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/1551700595-21481-4-git-send-email-swati2.sharma@intel.com commit df7d4156fe76f3bb3fb49f104298ab5dbee2f52d Author: Juha-Pekka Heikkila Date: Mon Mar 4 17:26:31 2019 +0530 drm/i915: Preparations for enabling P010, P012, P016 formats Preparations for enabling P010, P012 and P016 formats. These formats will extend NV12 for larger bit depths. Signed-off-by: Juha-Pekka Heikkila Signed-off-by: Swati Sharma Reviewed-by: Maarten Lankhorst Signed-off-by: Maarten Lankhorst Acked-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/1551700595-21481-3-git-send-email-swati2.sharma@intel.com commit e13122115525c219a1f8f5eee0d5f68b3b8ebf38 Author: Juha-Pekka Heikkila Date: Mon Mar 4 17:26:30 2019 +0530 drm/i915: Add P010, P012, P016 plane control definitions Add needed plane control flag definitions for P010, P012 and P016 formats. Signed-off-by: Juha-Pekka Heikkila Signed-off-by: Swati Sharma Reviewed-by: Maarten Lankhorst Signed-off-by: Maarten Lankhorst Acked-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/1551700595-21481-2-git-send-email-swati2.sharma@intel.com commit 4f1836453e42edcc7bb3c53c6c38534697ca77b0 Author: Chris Wilson Date: Mon Mar 4 23:06:46 2019 +0000 drm/i915/gtt: Use optimised memset32/64 for clearing PTE Replace the open-coded memset loops with the memset32/64 routines that reduce to a single instruction or two: add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-83 (-83) Function old new delta gen6_ppgtt_clear_range 371 344 -27 gen8_ppgtt_clear_pd 575 519 -56 Signed-off-by: Chris Wilson Cc: Matthew Auld Cc: Mika Kuoppala Reviewed-by: Matthew Auld Link: https://patchwork.freedesktop.org/patch/msgid/20190304230646.23714-1-chris@chris-wilson.co.uk commit f139da1390577eb349e762f2f5794a1ff33497f7 Author: Lucas De Marchi Date: Fri Mar 1 17:14:04 2019 -0800 drm/i915: Fix bit name in PP_STATUS register According to the spec PP_SEQUENCE_STATE_ON_S1_1 is the correct name, so just rename it. Signed-off-by: Lucas De Marchi Reviewed-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190302011405.6405-1-lucas.demarchi@intel.com commit bc7e35252eaca53ae605b1332bc5178881b662ab Author: Lucas De Marchi Date: Fri Feb 22 15:02:54 2019 -0800 drm/i915: allow platforms without eDP transcoder Define a HAS_TRANSCODER_EDP() macro that checks if we have defined an offset for this transcoder. This allows platforms to be defined without eDP transcoder. Cc: Mika Kahola Cc: Imre Deak Cc: Rodrigo Vivi Signed-off-by: Lucas De Marchi Reviewed-by: Mika Kahola Link: https://patchwork.freedesktop.org/patch/msgid/20190222230254.20351-2-lucas.demarchi@intel.com commit 062de72bc0c73f4b9fa8532e5a98bf609ebd08da Author: Lucas De Marchi Date: Fri Feb 22 15:02:53 2019 -0800 drm/i915: refactor transcoders reporting on error state Instead of keeping track of the number of transcoders, loop through all the interesting ones and check if there is a correspondent offset. Cc: Rodrigo Vivi Signed-off-by: Lucas De Marchi Reviewed-by: Mika Kahola Link: https://patchwork.freedesktop.org/patch/msgid/20190222230254.20351-1-lucas.demarchi@intel.com commit b8fe992a0817290989099113a0111de2b548905b Author: José Roberto de Souza Date: Fri Mar 1 16:33:49 2019 -0800 drm/i915: Forcing a modeset when resetting HDMI link With fastboot enabled in gen9+ it broke the HDMI reset as just setting mode_changed to true causes a fastset and here we want a full modeset that will disable and then enable the encoder of this HDMI link actually, so setting connectors_changed instead that will cause modeset as desired. Cc: Ville Syrjälä Signed-off-by: José Roberto de Souza Reviewed-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190302003349.19189-3-jose.souza@intel.com commit 3e5ebcddd1031aa6bb91beca46ceaff80b24e4f6 Author: José Roberto de Souza Date: Fri Mar 1 16:33:48 2019 -0800 drm/i915: Don't manually add connectors and planes state drm_atomic_commit() call chain already takes care of adding connectors and planes, so lets no add then manually if not changing their states. drm_atomic_commit() drm_atomic_check_only() config->funcs->atomic_check()/intel_atomic_check() drm_atomic_helper_check() drm_atomic_helper_check_modeset() for_each_oldnew_crtc_in_state() drm_atomic_add_affected_connectors() drm_atomic_add_affected_planes() Reviewed-by: Ville Syrjälä Cc: Ville Syrjälä Cc: Lyude Paul Signed-off-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190302003349.19189-2-jose.souza@intel.com commit a551cd66bc0a15ba00433743094c2453e1ee7aa9 Author: José Roberto de Souza Date: Fri Mar 1 16:33:47 2019 -0800 drm/i915: Fix atomic state leak when resetting HDMI link Atomic state needs to be put even if the commit was successful. Fixes: dba14b27dd3c ("drm/i915: Reinitialize sink scrambling/TMDS clock ratio on HPD") Reviewed-by: Ville Syrjälä Cc: Ville Syrjälä Cc: Lyude Paul Signed-off-by: José Roberto de Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190302003349.19189-1-jose.souza@intel.com commit 3e1d87ddcf6298fd32ba4857173edd9e559897cf Author: Ville Syrjälä Date: Mon Mar 4 15:12:17 2019 +0200 drm/i915: Fix the state checker for ICL Y planes The plane used to scan out NV12 luma on ICL is logically off but actually on. Fix the state checker to account for this. Cc: Imre Deak Cc: Maarten Lankhorst Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109457 Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190304131217.4338-1-ville.syrjala@linux.intel.com Reviewed-by: Imre Deak Reviewed-by: Maarten Lankhorst commit 993298af26b16f5cd45bd91977ee73b6cfb53292 Author: Rodrigo Vivi Date: Fri Mar 1 09:27:03 2019 -0800 drm/i915: Yet another if/else sort of newer to older platforms. No functional change. Just a reorg to match the preferred behavior. When rebasing internal branch on top of latest sort I noticed few more cases that needs to get reordered. Let's do in a bundle this time and hoping there's no other missing places. v2: Check for HSW/BDW ULT before generic IS_HASWELL or IS_BROADWELL or it doesn't work as pointed by Ville. But also ULT came afterwards anyway. v3: Accepting suggestions from Lucas: Sort CNL/CFL, KBL/SKL, and use <= 8 removing chv and bdw. Cc: Ville Syrjälä Cc: Chris Wilson Cc: Lucas De Marchi Signed-off-by: Rodrigo Vivi Reviewed-by: Lucas De Marchi Link: https://patchwork.freedesktop.org/patch/msgid/20190301172703.12139-1-rodrigo.vivi@intel.com commit e781a7a3235e9ff68095d2cd4d9c1e039a0516d7 Author: Chris Wilson Date: Mon Mar 4 11:41:13 2019 +0000 drm/i915: Acquire breadcrumb ref before cancelling We may race the interrupt signaling with retirement, in which case the order in which we acquire the reference inside the interrupt is vital to provide the correct barrier against the request being freed in retirement, i.e. we need to acquire our reference before marking the breadcrumb as cancelled (as soon as the breadcrumb is cancelled retirement may drop its reference to the request without serialisation with the interrupt handler). <3>[ 683.372226] BUG i915_request (Tainted: G U ): Object already free <3>[ 683.372269] ----------------------------------------------------------------------------- <4>[ 683.372323] Disabling lock debugging due to kernel taint <3>[ 683.372393] INFO: Allocated in i915_request_alloc+0x169/0x810 [i915] age=0 cpu=2 pid=1420 <3>[ 683.372412] kmem_cache_alloc+0x21c/0x280 <3>[ 683.372478] i915_request_alloc+0x169/0x810 [i915] <3>[ 683.372540] i915_gem_do_execbuffer+0x84e/0x1ae0 [i915] <3>[ 683.372603] i915_gem_execbuffer2_ioctl+0x11b/0x420 [i915] <3>[ 683.372617] drm_ioctl_kernel+0x83/0xf0 <3>[ 683.372626] drm_ioctl+0x2f3/0x3b0 <3>[ 683.372636] do_vfs_ioctl+0xa0/0x6e0 <3>[ 683.372645] ksys_ioctl+0x35/0x60 <3>[ 683.372654] __x64_sys_ioctl+0x11/0x20 <3>[ 683.372664] do_syscall_64+0x55/0x190 <3>[ 683.372675] entry_SYSCALL_64_after_hwframe+0x49/0xbe <3>[ 683.372740] INFO: Freed in i915_request_retire_upto+0xfb/0x2e0 [i915] age=0 cpu=0 pid=1419 <3>[ 683.372807] i915_request_retire_upto+0xfb/0x2e0 [i915] <3>[ 683.372870] i915_request_add+0x3bd/0x9d0 [i915] <3>[ 683.372931] i915_gem_do_execbuffer+0x141c/0x1ae0 [i915] <3>[ 683.372991] i915_gem_execbuffer2_ioctl+0x11b/0x420 [i915] <3>[ 683.373001] drm_ioctl_kernel+0x83/0xf0 <3>[ 683.373008] drm_ioctl+0x2f3/0x3b0 <3>[ 683.373015] do_vfs_ioctl+0xa0/0x6e0 <3>[ 683.373023] ksys_ioctl+0x35/0x60 <3>[ 683.373030] __x64_sys_ioctl+0x11/0x20 <3>[ 683.373037] do_syscall_64+0x55/0x190 <3>[ 683.373045] entry_SYSCALL_64_after_hwframe+0x49/0xbe <3>[ 683.373054] INFO: Slab 0x0000000079bcdd71 objects=30 used=2 fp=0x000000006d77b8af flags=0x8000000000010201 <3>[ 683.373069] INFO: Object 0x000000006d77b8af @offset=24000 fp=0x000000007b061eab <3>[ 683.373083] Redzone 00000000ee47ef28: bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb ................ <3>[ 683.373097] Redzone 000000000cb91471: bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb ................ <3>[ 683.373111] Redzone 00000000cf2b86ee: bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb ................ <3>[ 683.373125] Redzone 00000000f1f5a2cd: bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb ................ <3>[ 683.373139] Object 000000006d77b8af: 00 00 00 00 5a 5a 5a 5a 00 3c 49 c0 ff ff ff ff ....ZZZZ.[ 683.373153] Object 000000006f9b6204: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a ZZZZZZZZZZZZZZZZ <3>[ 683.373167] Object 0000000091410ffb: e0 dd 6b fa 87 9f ff ff e0 dd 6b fa 87 9f ff ff ..k.......k..... <3>[ 683.373181] Object 000000004cdf799d: 20 de 6b fa 87 9f ff ff 3d 00 00 00 00 00 00 00 .k.....=....... <3>[ 683.373195] Object 00000000545afebc: aa b3 00 00 00 00 00 00 0f 00 00 00 00 00 00 00 ................ <3>[ 683.373209] Object 00000000e4a394a8: 25 bd bd 1b 9f 00 00 00 00 00 00 00 5a 5a 5a 5a %...........ZZZZ <3>[ 683.373223] Object 0000000029a7878a: 00 00 00 00 ad 4e ad de ff ff ff ff 5a 5a 5a 5a .....N......ZZZZ <3>[ 683.373237] Object 00000000d37797b3: ff ff ff ff ff ff ff ff e8 6e 57 c0 ff ff ff ff .........nW..... <3>[ 683.373251] Object 00000000d50414f6: 00 b3 c8 8e ff ff ff ff 80 b0 c8 8e ff ff ff ff ................ <3>[ 683.373265] Object 00000000c28e8847: 41 01 4b c0 ff ff ff ff 00 00 88 8e 88 9f ff ff A.K............. <3>[ 683.373279] Object 00000000c74212ab: 38 c1 6d 8a 88 9f ff ff 58 21 74 8a 88 9f ff ff 8.m.....X!t..... <3>[ 683.373293] Object 000000000d8012cf: c0 c1 6d 8a 88 9f ff ff 58 79 dd d9 87 9f ff ff ..m.....Xy...... <3>[ 683.373306] Object 00000000c9900b91: 98 d0 4e 8a 88 9f ff ff 58 3c e8 9b 88 9f ff ff ..N.....X<...... <3>[ 683.373320] Object 0000000044bb8c3d: 58 3c e8 9b 88 9f ff ff 64 f5 04 00 00 00 00 00 X<......d....... <3>[ 683.373334] Object 00000000180c4cca: 00 00 00 00 ad 4e ad de ff ff ff ff 5a 5a 5a 5a .....N......ZZZZ <3>[ 683.373348] Object 00000000c9044498: ff ff ff ff ff ff ff ff e0 6e 57 c0 ff ff ff ff .........nW..... <3>[ 683.373362] Object 0000000072d0dfb3: 00 00 00 00 00 00 00 00 c0 b1 c8 8e ff ff ff ff ................ <3>[ 683.373376] Object 0000000081f198b9: 55 01 4b c0 ff ff ff ff d8 de 6b fa 87 9f ff ff U.K.......k..... <3>[ 683.373390] Object 000000006a375a13: d8 de 6b fa 87 9f ff ff cc 05 39 c0 ff ff ff ff ..k.......9..... <3>[ 683.373404] Object 00000000b8392dd1: ff ff ff ff 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a ....ZZZZZZZZZZZZ <3>[ 683.373418] Object 00000000e5c1bbcb: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a ZZZZZZZZZZZZZZZZ <3>[ 683.373432] Object 00000000199feccd: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a ZZZZZZZZZZZZZZZZ <3>[ 683.373446] Object 0000000020f5e08b: 20 df 6b fa 87 9f ff ff 20 df 6b fa 87 9f ff ff .k..... .k..... <3>[ 683.373460] Object 0000000090591b0f: 30 df 6b fa 87 9f ff ff 30 df 6b fa 87 9f ff ff 0.k.....0.k..... <3>[ 683.373473] Object 00000000232f7cd0: 40 df 6b fa 87 9f ff ff 40 df 6b fa 87 9f ff ff @.k.....@.k..... <3>[ 683.373487] Object 0000000060458027: 50 df 6b fa 87 9f ff ff 50 df 6b fa 87 9f ff ff P.k.....P.k..... <3>[ 683.373501] Object 00000000e3c82ce2: 06 00 00 00 00 00 00 00 5a 5a 5a 5a 5a 5a 5a 5a ........ZZZZZZZZ <3>[ 683.373515] Object 00000000ec804eb8: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a ZZZZZZZZZZZZZZZZ <3>[ 683.373529] Object 00000000ce7ccc08: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a ZZZZZZZZZZZZZZZZ <3>[ 683.373543] Object 000000002dbc575c: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a ZZZZZZZZZZZZZZZZ <3>[ 683.373557] Object 00000000b86d3417: 5a 5a 5a 5a 5a 5a 5a 5a 00 de 6b fa 87 9f ff ff ZZZZZZZZ..k..... <3>[ 683.373571] Object 00000000d1e82276: b8 61 dd d9 87 9f ff ff a0 06 00 00 d0 06 00 00 .a.............. <3>[ 683.373585] Object 00000000cc53f969: e8 06 00 00 20 07 00 00 28 07 00 00 00 00 00 00 .... ...(....... <3>[ 683.373599] Object 00000000ea2426d2: 40 0c 8c 7b 88 9f ff ff 00 00 00 00 00 00 00 00 @..{............ <3>[ 683.373613] Object 00000000b860c1c3: 68 0d 8c 7b 88 9f ff ff 68 25 8c 7b 88 9f ff ff h..{....h%.{.... <3>[ 683.373627] Object 0000000016455ea0: 96 d5 05 00 01 00 00 00 00 5a 5a 5a 5a 5a 5a 5a .........ZZZZZZZ <3>[ 683.373640] Object 00000000e66ede82: 00 e0 6b fa 87 9f ff ff 00 e0 6b fa 87 9f ff ff ..k.......k..... <3>[ 683.373654] Object 0000000080964939: 10 e0 6b fa 87 9f ff ff 10 e0 6b fa 87 9f ff ff ..k.......k..... <3>[ 683.373668] Object 00000000e7ffc5dd: 00 00 00 00 00 00 00 00 00 01 00 00 00 00 ad de ................ <3>[ 683.373682] Object 000000000ce9d6ca: 00 02 00 00 00 00 ad de 5a 5a 5a 5a 5a 5a 5a 5a ........ZZZZZZZZ <3>[ 683.373696] Object 00000000386659d0: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a ZZZZZZZZZZZZZZZZ <3>[ 683.373710] Redzone 0000000075d2069d: bb bb bb bb bb bb bb bb ........ <3>[ 683.373723] Padding 0000000054e14c6b: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a ZZZZZZZZZZZZZZZZ <3>[ 683.373737] Padding 00000000425e5b34: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a ZZZZZZZZZZZZZZZZ <3>[ 683.373751] Padding 00000000ad3d4db9: 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a 5a ZZZZZZZZZZZZZZZZ <4>[ 683.373767] CPU: 1 PID: 151 Comm: kworker/1:2 Tainted: G BU 5.0.0-rc8-g39139489403b-drmtip_236+ #1 <4>[ 683.373769] Hardware name: Intel Corporation Ice Lake Client Platform/IceLake Y LPDDR4x T4 RVP TLC, BIOS ICLSFWR1.R00.3087.A00.1902250334 02/25/2019 <4>[ 683.373773] Workqueue: events delayed_fput <4>[ 683.373775] Call Trace: <4>[ 683.373777] <4>[ 683.373781] dump_stack+0x67/0x9b <4>[ 683.373783] free_debug_processing+0x344/0x370 <4>[ 683.373832] ? intel_engine_breadcrumbs_irq+0x2e4/0x380 [i915] <4>[ 683.373836] __slab_free+0x337/0x4f0 <4>[ 683.373840] ? _raw_spin_unlock_irqrestore+0x39/0x60 <4>[ 683.373844] ? debug_check_no_obj_freed+0x132/0x210 <4>[ 683.373889] ? intel_engine_breadcrumbs_irq+0x2e4/0x380 [i915] <4>[ 683.373892] ? kmem_cache_free+0x275/0x2e0 <4>[ 683.373894] kmem_cache_free+0x275/0x2e0 <4>[ 683.373939] intel_engine_breadcrumbs_irq+0x2e4/0x380 [i915] <4>[ 683.373984] gen8_cs_irq_handler+0x4e/0xa0 [i915] <4>[ 683.374026] gen11_irq_handler+0x24b/0x330 [i915] <4>[ 683.374032] __handle_irq_event_percpu+0x41/0x2d0 <4>[ 683.374034] ? handle_irq_event+0x27/0x50 <4>[ 683.374038] handle_irq_event_percpu+0x2b/0x70 <4>[ 683.374040] handle_irq_event+0x2f/0x50 <4>[ 683.374044] handle_edge_irq+0xe7/0x190 <4>[ 683.374048] handle_irq+0x67/0x160 <4>[ 683.374051] do_IRQ+0x5e/0x130 <4>[ 683.374054] common_interrupt+0xf/0xf Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109827 Fixes: 52c0fdb25c7c ("drm/i915: Replace global breadcrumbs with per-context interrupt tracking") Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190304114113.371-1-chris@chris-wilson.co.uk commit 8ff62645eab9e0883c0e90fd558b5e8a50872d64 Author: Colin Ian King Date: Sun Feb 17 22:55:54 2019 +0000 drm: fix spelling mistake "intead" -> "instead" There is a spelling mistake in a DRM_NOTE message. Fix this. Signed-off-by: Colin Ian King Signed-off-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190217225554.17742-1-colin.king@canonical.com commit 9d5645ad1b979c99326e13ac51e1826ffe60aaec Author: Noralf Trønnes Date: Mon Feb 25 15:42:32 2019 +0100 drm/tinydrm: Use drm_dev_enter/exit() This protects device resources from use after device removal. There are 3 ways for driver-device unbinding to happen: - The driver module is unloaded causing the driver to be unregistered. This can't happen as long as there are open file handles because a reference is taken on the module. - The device is removed (Device Tree overlay unloading). This can happen at any time. - The driver sysfs unbind file can be used to unbind the driver from the device. This can happen any time. v2: Since drm_atomic_helper_shutdown() has to be called after drm_dev_unplug() we don't want do block ->disable after unplug. Signed-off-by: Noralf Trønnes Acked-by: Gerd Hoffmann Link: https://patchwork.freedesktop.org/patch/msgid/20190225144232.20761-8-noralf@tronnes.org commit 2afd9fcba6b168ab4fa5c38680f98147a745d31c Author: Noralf Trønnes Date: Mon Feb 25 15:42:31 2019 +0100 drm/tinydrm: Remove tinydrm_device No more users left so it can go alongside its helpers. Update the tinydrm docs description and remove todo entry. Signed-off-by: Noralf Trønnes Reviewed-by: Sam Ravnborg Acked-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190225144232.20761-7-noralf@tronnes.org commit 3eba3922819fe221ebaf397d0bde2d654f9e7a02 Author: Noralf Trønnes Date: Mon Feb 25 15:42:30 2019 +0100 drm/tinydrm: Drop using tinydrm_device Use devm_drm_dev_init() and drop using tinydrm_device. v2: devm_drm_dev_register() was dropped so add driver release callbacks. Signed-off-by: Noralf Trønnes Acked-by: Gerd Hoffmann Link: https://patchwork.freedesktop.org/patch/msgid/20190225144232.20761-6-noralf@tronnes.org commit ec33f1d690569d66556273f1a2de3ab8acb75a94 Author: Noralf Trønnes Date: Mon Feb 25 15:42:29 2019 +0100 drm/tinydrm/repaper: Drop using tinydrm_device Use devm_drm_dev_init() and drop using tinydrm_device. v2: devm_drm_dev_register() was dropped so add a driver release callback. Signed-off-by: Noralf Trønnes Reviewed-by: Sam Ravnborg Link: https://patchwork.freedesktop.org/patch/msgid/20190225144232.20761-5-noralf@tronnes.org commit de99f0600a79eca4b9de0fc6aadbf9079cc8f096 Author: Noralf Trønnes Date: Mon Feb 25 15:42:28 2019 +0100 drm/drv: DOC: Add driver example code Add driver example that shows how devm_drm_dev_init() can be used. v2: Expand docs (Sam, Daniel) Signed-off-by: Noralf Trønnes Acked-by: Daniel Vetter Acked-by: Gerd Hoffmann Link: https://patchwork.freedesktop.org/patch/msgid/20190225144232.20761-4-noralf@tronnes.org commit 9b1f1b6b784302950f7eed73011df85501509e1d Author: Noralf Trønnes Date: Mon Feb 25 15:42:27 2019 +0100 drm: Add devm_drm_dev_init() This adds a resource managed (devres) version of drm_dev_init(). v2: Remove devm_drm_dev_register() since we can't touch hw in devm release functions and drivers want to disable hw on driver module unload (Daniel Vetter, Greg KH) Cc: Daniel Vetter Cc: Greg KH Signed-off-by: Noralf Trønnes Acked-by: Gerd Hoffmann Link: https://patchwork.freedesktop.org/patch/msgid/20190225144232.20761-3-noralf@tronnes.org commit 56be6503aab2bc3a30beae408071b9be5e1bae51 Author: Noralf Trønnes Date: Mon Feb 25 15:42:26 2019 +0100 drm/drv: Hold ref on parent device during drm_device lifetime This makes it safe to access drm_device->dev after the parent device has been removed/unplugged. Signed-off-by: Noralf Trønnes Reviewed-by: Gerd Hoffmann Link: https://patchwork.freedesktop.org/patch/msgid/20190225144232.20761-2-noralf@tronnes.org commit 6d3a41ab0c37320068e28e1f9b45e4304bb30db0 Author: Andy Shevchenko Date: Sun Mar 3 23:21:56 2019 -0800 Input: edt-ft5x06 - convert to use SPDX identifier Reduce size of duplicated comments by switching to use SPDX identifier. No functional change. While here, correct MODULE_LICENSE() string to be aligned with license text. Signed-off-by: Andy Shevchenko Signed-off-by: Dmitry Torokhov commit fc226eb23e62731712b30114479f4a791fee4c00 Author: Andy Shevchenko Date: Sun Mar 3 23:21:28 2019 -0800 Input: edt-ft5x06 - enable ACPI enumeration ACPI allows to enumerate specific devices by using compatible strings. Enable that enumeration for EDT touchscreen devices. Signed-off-by: Andy Shevchenko Signed-off-by: Dmitry Torokhov commit 9d17210fa2182e7473dfb054f3c64b7ece8438b7 Author: Lucas De Marchi Date: Mon Feb 25 16:49:00 2019 -0800 drm/i915: extract AUX mask assignment to separate function No change in behavior, this only allows to more easily follow the flow of gen8_de_irq_handler without the mask assignments for each platform. This also re-organizes the branches a little bit, so the one-off case for CNL_WITH_PORT_F is separate from the generic gen >= 11. v2: rename de_port_iir_aux_mask -> gen8_de_port_aux_mask (Ville) Signed-off-by: Lucas De Marchi Reviewed-by: Ville Syrjälä Reviewed-by: Jose Souza Link: https://patchwork.freedesktop.org/patch/msgid/20190226004900.26047-1-lucas.demarchi@intel.com commit 510a75a5d2b8540001c5c49ccad310df94623db8 Author: Lucas De Marchi Date: Fri Feb 22 15:23:22 2019 -0800 drm/i915/icl: move MG pll hw_state readout Let the MG plls have their own hooks since it shares very little with other PLL types. It's also better so the platform info contains the info if the PLL is for MG PHY rather than relying on the PLL ids. Signed-off-by: Lucas De Marchi Reviewed-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190222232324.16405-1-lucas.demarchi@intel.com commit 4aa909707bdbb040dbd12fa90b24961be0c0c17c Author: Tvrtko Ursulin Date: Fri Mar 1 14:03:49 2019 +0000 drm/i915: Re-arrange execbuf so context is known before engine Needed for a following patch. Signed-off-by: Tvrtko Ursulin Reviewed-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190301140404.26690-23-chris@chris-wilson.co.uk Signed-off-by: Chris Wilson commit d90c06d57027203f73021bb7ddb30b800d65c636 Author: Chris Wilson Date: Fri Mar 1 14:03:47 2019 +0000 drm/i915: Fix I915_EXEC_RING_MASK This was supposed to be a mask of all known rings, but it is being used by execbuffer to filter out invalid rings, and so is instead mapping high unused values onto valid rings. Instead of a mask of all known rings, we need it to be the mask of all possible rings. Fixes: 549f7365820a ("drm/i915: Enable SandyBridge blitter ring") Fixes: de1add360522 ("drm/i915: Decouple execbuf uAPI from internal implementation") Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Cc: # v4.6+ Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190301140404.26690-21-chris@chris-wilson.co.uk commit f9e9e9de58c7b7bb8344128d6de2c79b87a7fabf Author: Chris Wilson Date: Fri Mar 1 17:09:01 2019 +0000 drm/i915: Prioritise non-busywait semaphore workloads We don't want to busywait on the GPU if we have other work to do. If we give non-busywaiting workloads higher (initial) priority than workloads that require a busywait, we will prioritise work that is ready to run immediately. We then also have to be careful that we don't give earlier semaphores an accidental boost because later work doesn't wait on other rings, hence we keep a history of semaphore usage of the dependency chain. v2: Stop rolling the bits into a chain and just use a flag in case this request or any of our dependencies use a semaphore. The rolling around was contagious as Tvrtko was heard to fall off his chair. Testcase: igt/gem_exec_schedule/semaphore Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190301170901.8340-4-chris@chris-wilson.co.uk commit e88619646971168e3baedc850c21243d303e31ca Author: Chris Wilson Date: Fri Mar 1 17:09:00 2019 +0000 drm/i915: Use HW semaphores for inter-engine synchronisation on gen8+ Having introduced per-context seqno, we now have a means to identity progress across the system without feel of rollback as befell the global_seqno. That is we can program a MI_SEMAPHORE_WAIT operation in advance of submission safe in the knowledge that our target seqno and address is stable. However, since we are telling the GPU to busy-spin on the target address until it matches the signaling seqno, we only want to do so when we are sure that busy-spin will be completed quickly. To achieve this we only submit the request to HW once the signaler is itself executing (modulo preemption causing us to wait longer), and we only do so for default and above priority requests (so that idle priority tasks never themselves hog the GPU waiting for others). As might be reasonably expected, HW semaphores excel in inter-engine synchronisation microbenchmarks (where the 3x reduced latency / increased throughput more than offset the power cost of spinning on a second ring) and have significant improvement (can be up to ~10%, most see no change) for single clients that utilize multiple engines (typically media players and transcoders), without regressing multiple clients that can saturate the system or changing the power envelope dramatically. v3: Drop the older NEQ branch, now we pin the signaler's HWSP anyway. v4: Tell the world and include it as part of scheduler caps. Testcase: igt/gem_exec_whisper Testcase: igt/benchmarks/gem_wsim Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190301170901.8340-3-chris@chris-wilson.co.uk commit ebece7539242a9204e5748fb6a6b5031d220b164 Author: Chris Wilson Date: Fri Mar 1 17:08:59 2019 +0000 drm/i915: Keep timeline HWSP allocated until idle across the system In preparation for enabling HW semaphores, we need to keep in flight timeline HWSP alive until its use across entire system has completed, as any other timeline active on the GPU may still refer back to the already retired timeline. We both have to delay recycling available cachelines and unpinning old HWSP until the next idle point. An easy option would be to simply keep all used HWSP until the system as a whole was idle, i.e. we could release them all at once on parking. However, on a busy system, we may never see a global idle point, essentially meaning the resource will be leaked until we are forced to do a GC pass. We already employ a fine-grained idle detection mechanism for vma, which we can reuse here so that each cacheline can be freed immediately after the last request using it is retired. v3: Keep track of the activity of each cacheline. v4: cacheline_free() on canceling the seqno tracking v5: Finally with a testcase to exercise wraparound v6: Pack cacheline into empty bits of page-aligned vaddr v7: Use i915_utils to hide the pointer casting around bit manipulation Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190301170901.8340-2-chris@chris-wilson.co.uk commit 1e3f697e47f61293351c72c35e3045b1774851c2 Author: Chris Wilson Date: Fri Mar 1 17:08:58 2019 +0000 drm/i915/execlists: Suppress redundant preemption On unwinding the active request we give it a small (limited to internal priority levels) boost to prevent it from being gazumped a second time. However, this means that it can be promoted to above the request that triggered the preemption request, causing a preempt-to-idle cycle for no change. We can avoid this if we take the boost into account when checking if the preemption request is valid. v2: After preemption the active request will be after the preemptee if they end up with equal priority. v3: Tvrtko pointed out that this, the existing logic, makes I915_PRIORITY_WAIT non-preemptible. Document this interesting quirk! v4: Prove Tvrtko was right about WAIT being non-preemptible and test it. v5: Except not all priorities were made equal, and the WAIT not preempting is only if we start off as !NEWCLIENT. v6: More commentary after coming to an understanding about what I had forgotten to say. Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190301170901.8340-1-chris@chris-wilson.co.uk commit 34ae8455f4d30ddc7c26d914d0f246de37488a99 Author: Chris Wilson Date: Fri Mar 1 16:01:08 2019 +0000 drm/i915/selftests: Check that whitelisted registers are accessible There is no point in whitelisting a register that the user then cannot write to, so check the register exists before merging such patches. v2: Mark SLICE_COMMON_ECO_CHICKEN1 [731c] as write-only v3: Use different variables for different meanings! Signed-off-by: Chris Wilson Cc: Dale B Stimson Cc: Michał Winiarski Reviewed-by: Michał Winiarski Link: https://patchwork.freedesktop.org/patch/msgid/20190301140404.26690-6-chris@chris-wilson.co.uk Link: https://patchwork.freedesktop.org/patch/msgid/20190301160108.19039-1-chris@chris-wilson.co.uk commit c384afe35200f090b10ff5b4e8c7e6ea6a54eb19 Author: Ville Syrjälä Date: Thu Feb 28 19:36:39 2019 +0200 drm/i915: Finalize Wa_1408961008:icl The icl wm1+ underrun w/a has been added to the spec. It changed slightly from the previous incarnation by requiring that we mirror the lines watermark and the ignore lines bit from WM0 into WM1. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190228173639.18422-1-ville.syrjala@linux.intel.com Reviewed-by: Matt Roper Tested-by: Clint Taylor commit 3ef7114982b844f0f31c5b92919fa0f45b662079 Author: Chris Wilson Date: Fri Mar 1 11:05:44 2019 +0000 drm/i915: Introduce i915_timeline.mutex A simple mutex used for guarding the flow of requests in and out of the timeline. In the short-term, it will be used only to guard the addition of requests into the timeline, taken on alloc and released on commit so that only one caller can construct a request into the timeline (important as the seqno and ring pointers must be serialised). This will be used by observers to ensure that the seqno/hwsp is stable. Later, when we have reduced retiring to only operate on a single timeline at a time, we can then use the mutex as the sole guard required for retiring. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190301110547.14758-2-chris@chris-wilson.co.uk commit a7db690c062866a3f3a0efb43875c1bb45051f7a Author: Jernej Skrabec Date: Thu Feb 28 21:03:29 2019 +0100 drm/sun4i: Improve VI scaling for DE2/DE3 VI planes support coarse scaling which helps to overcome VI scaler limitations. While exact working of coarse scaling isn't known, it seems that it just skips programmed amount of rows and columns. This is especially useful for downscaling very big planes (4K down to 1080p). Horizontal coarse scaling is currently used to fit one line to VI scaler buffer. Vertical coarse scaling is used to assure that VI scaler is actually capable of processing framebuffer in one frame time. Signed-off-by: Jernej Skrabec Signed-off-by: Maxime Ripard Link: https://patchwork.freedesktop.org/patch/msgid/20190228200329.11128-4-jernej.skrabec@siol.net commit 2586de70c15c99fabaa7d1791ecbc00799a7b041 Author: Jernej Skrabec Date: Thu Feb 28 21:03:28 2019 +0100 drm/sun4i: Add VI scaler line size quirk for DE2/DE3 While all RGB scalers have maximum line size of 2048, some YUV scalers have maximum line size of 2048 and some have line size of 4096. Since there is no rule for that, add a quirk. Signed-off-by: Jernej Skrabec Signed-off-by: Maxime Ripard Link: https://patchwork.freedesktop.org/patch/msgid/20190228200329.11128-3-jernej.skrabec@siol.net commit c825dc2397852e8aa29356bbe96edf46c5d3b5cf Author: David Santamaría Rogado Date: Sat Feb 23 22:19:28 2019 +0100 drm: panel-orientation-quirks: Add quirk for Lenovo Ideapad D330 Lenovo Ideapad D330 Pentium CPU version has 1920x1200 LCD. Console output gets rotated at boot as Miix 310. Signed-off-by: David Santamaría Rogado Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190223211928.9899-1-howl.nsp@gmail.com commit b5773a3616d10bdef60662b8780ded912ee5d7b6 Author: Chris Wilson Date: Thu Feb 28 22:06:39 2019 +0000 drm/i915/execlists: Suppress mere WAIT preemption WAIT is occasionally suppressed by virtue of preempted requests being promoted to NEWCLIENT if they have not all ready received that boost. Make this consistent for all WAIT boosts that they are not allowed to preempt executing contexts and are merely granted the right to be at the front of the queue for the next execution slot. This is in keeping with the desire that the WAIT boost be a minor tweak that does not give excessive promotion to its user and open ourselves to trivial abuse. The problem with the inconsistent WAIT preemption becomes more apparent as the preemption is propagated across the engines, where one engine may preempt and the other not, and we be relying on the exact execution order being consistent across engines (e.g. using HW semaphores to coordinate parallel execution). v2: Also protect GuC submission from false preemption loops. v3: Build bug safeguards and better debug messages for st. v4: Do the priority bumping in unsubmit (i.e. on preemption/reset unwind), applying it earlier during submit causes out-of-order execution combined with execute fences. v5: Call sw_fence_fini for our dummy request (Matthew) Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Cc: Matthew Auld Link: https://patchwork.freedesktop.org/patch/msgid/20190228220639.3173-1-chris@chris-wilson.co.uk commit b49996cb304ae85b63526791b76f5aec3dae8e9c Author: Maarten Lankhorst Date: Thu Feb 28 13:25:43 2019 +0100 drm/doc: Fix copy paste error in drm_crtc_funcs.destroy() The function is about cleaning up CRTC resources, not plane resources, fix this in docbook. Signed-off-by: Maarten Lankhorst Reviewed-by: Daniel Vetter commit bd5d6781a0f1b9be8c26da78c0e3110e7481b45b Author: Chris Wilson Date: Tue Feb 26 10:24:04 2019 +0000 drm/i915: Use __ffs() in for_each_priolist for more compact code Gcc has a slight preference if we use __ffs() to subtract one from the index once rather than each use: __execlists_submission_tasklet 2867 2847 -20 Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190226102404.29153-11-chris@chris-wilson.co.uk commit d9948a10b90201d1aa91e5a96daa09f40f7bb282 Author: Chris Wilson Date: Thu Feb 28 10:20:35 2019 +0000 drm/i915: Remove second level open-coded rcu work We currently use a worker queued from an rcu callback to determine when a how grace period has elapsed while we remained idle. We use this idle delay to infer that we will be idle for a while and this is a suitable point at which we can trim our global memory caches. Since we wrote that, this mechanism now exists as rcu_work, and having converted the idle shrinkers over to using that, we can remove our own variant. v2: Say goodbye to gt.epoch as well. v3: Remove the misplaced and redundant comment before parking globals Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190228102035.5857-3-chris@chris-wilson.co.uk commit 13f1bfd3b3329b19950f95964580a84795ce7be9 Author: Chris Wilson Date: Thu Feb 28 10:20:34 2019 +0000 drm/i915: Make object/vma allocation caches global As our allocations are not device specific, we can move our slab caches to a global scope. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190228102035.5857-2-chris@chris-wilson.co.uk commit 32eb6bcfdda9dad240cf6a22fda2b3418b1a1b8e Author: Chris Wilson Date: Thu Feb 28 10:20:33 2019 +0000 drm/i915: Make request allocation caches global As kmem_caches share the same properties (size, allocation/free behaviour) for all potential devices, we can use global caches. While this potential has worse fragmentation behaviour (one can argue that different devices would have different activity lifetimes, but you can also argue that activity is temporal across the system) it is the default behaviour of the system at large to amalgamate matching caches. The benefit for us is much reduced pointer dancing along the frequent allocation paths. v2: Defer shrinking until after a global grace period for futureproofing multiple consumers of the slab caches, similar to the current strategy for avoiding shrinking too early. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190228102035.5857-1-chris@chris-wilson.co.uk commit bd2be1418659abd7b1cdecc7d23d86314b0e3496 Author: Chris Wilson Date: Wed Feb 27 21:41:59 2019 +0000 drm/i915: Report engines are idle if already parked If we have parked, then we must have passed an idleness test and still be idle. We chose not to use this shortcut in the past so that we could use the idleness test at any time and inspect HW. However, some HW like Sandybridge, doesn't like being woken up frivolously, so avoid doing so. References: 0b702dca2658 ("drm/i915: Avoid waking the engines just to check if they are idle") Signed-off-by: Chris Wilson Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190227214159.7946-1-chris@chris-wilson.co.uk commit 44f8b8022d4cde821819397e9f9f57eb30c51f93 Author: Chris Wilson Date: Wed Feb 27 20:46:53 2019 +0000 Revert "drm/i915: Avoid waking the engines just to check if they are idle" This reverts commit 0b702dca26580e3bbfbbaf22dfc29280b6263414. CI reports that this is not as reliable as it first appears, with failures starting to sporadically occur in selftests. Fixes: 0b702dca2658 ("drm/i915: Avoid waking the engines just to check if they are idle") Signed-off-by: Chris Wilson Cc: Mika Kuoppala Cc: Jani Nikula Cc: Joonas Lahtinen Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190227204654.14907-1-chris@chris-wilson.co.uk commit 2d5eaad007d971b8cd8cd8122f594b04e292b567 Author: Chris Wilson Date: Tue Feb 26 10:24:00 2019 +0000 drm/i915: Compute the global scheduler caps Do a pass over all the engines upon starting to determine the global scheduler capability flags (those that are agreed upon by all). Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190226102404.29153-7-chris@chris-wilson.co.uk commit 13b99014c64acaee8edd0274e02864fc720c117b Author: Daniel Vetter Date: Thu Feb 21 16:58:57 2019 +0100 drm/bochs: Drop best_encoder This is the default for atomic drivers. Signed-off-by: Daniel Vetter Link: http://patchwork.freedesktop.org/patch/msgid/20190221155857.19773-2-daniel.vetter@ffwll.ch Cc: Gerd Hoffmann Cc: virtualization@lists.linux-foundation.org Signed-off-by: Gerd Hoffmann commit 98f41dc3b3eeabfc80d5d5eb1c1a6294ff59b4ec Author: Gerd Hoffmann Date: Wed Feb 27 15:44:41 2019 +0100 drm/virtio: implement prime export Just run drm_prime_pages_to_sg() on the ttm pages list to get an sg_table for export. The pages list is created at object initialization time, so there should be no need to handle an unpopulated page list. Add a sanity check nevertheless. Signed-off-by: Gerd Hoffmann Acked-by: Noralf Trønnes Link: http://patchwork.freedesktop.org/patch/msgid/20190227144441.6755-4-kraxel@redhat.com commit 873f51d43439d554f7299e88edfb208924bef6eb Author: Gerd Hoffmann Date: Wed Feb 27 15:44:40 2019 +0100 drm/virtio: remove prime pin/unpin callbacks. virtio-gpu objects never move around, so effectively they are pinned all the time. Therefore we don't need the (optional) pin/unpin callbacks. Remove them. Signed-off-by: Gerd Hoffmann Reviewed-by: Noralf Trønnes Link: http://patchwork.freedesktop.org/patch/msgid/20190227144441.6755-3-kraxel@redhat.com commit c837da88c3359fc2c5a8cccde7a78d44e6e61290 Author: Gerd Hoffmann Date: Wed Feb 27 15:44:39 2019 +0100 drm/virtio: implement prime mmap Sync gem vm_node.start with ttm vm_node.start, then we can just call drm_gem_prime_mmap(). Signed-off-by: Gerd Hoffmann Acked-by: Noralf Trønnes Link: http://patchwork.freedesktop.org/patch/msgid/20190227144441.6755-2-kraxel@redhat.com commit 372c9329e5aa896683999301d9cb10ef14da92af Author: Lucas Stach Date: Thu Jan 11 17:48:29 2018 +0100 dma-buf: clarify locking documentation for reservation_object_get_excl The documentation was misleading, as for a lot of use-cases holding the RCU read side lock is sufficient. Signed-off-by: Lucas Stach Reviewed-by: Christian König Link: https://patchwork.freedesktop.org/patch/msgid/20180111165302.25556-2-l.stach@pengutronix.de commit 547c7138bcfb869c4cda6548f358eaa64102cccf Author: Lucas Stach Date: Tue Jun 13 10:26:46 2017 +0200 dma-buf: add some lockdep asserts to the reservation object implementation This adds lockdep asserts to the reservation functions which state in their documentation that obj->lock must be held. Allows builds with PROVE_LOCKING enabled to check that the locking requirements are met. Signed-off-by: Lucas Stach Reviewed-by: Christian König Link: https://patchwork.freedesktop.org/patch/msgid/20180111165302.25556-1-l.stach@pengutronix.de commit 60b801999c48b6c1dd04e653a38e2e613664264e Author: Chris Wilson Date: Fri Aug 4 09:23:28 2017 +0100 drm: Wake up next in drm_read() chain if we are forced to putback the event After an event is sent, we try to copy it into the user buffer of the first waiter in drm_read() and if the user buffer doesn't have enough room we put it back onto the list. However, we didn't wake up any subsequent waiter, so that event may sit on the list until either a new vblank event is sent or a new waiter appears. Rare, but in the worst case may lead to a stuck process. Testcase: igt/drm_read/short-buffer-wakeup Signed-off-by: Chris Wilson Cc: Daniel Vetter Reviewed-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20170804082328.17173-1-chris@chris-wilson.co.uk commit 0b702dca26580e3bbfbbaf22dfc29280b6263414 Author: Chris Wilson Date: Wed Feb 27 11:45:50 2019 +0000 drm/i915: Avoid waking the engines just to check if they are idle Exploit that reads of the ring registers return 0 from the engine when it is idle and we do not apply forcewake to know that if the engine is idle then both reads will be identical (and so we interpret the ring as idle). The ulterior motive is to try and reduce the number of spurious wakeups to avoid untimely death, such as: <3> [85.046836] [drm:fw_domains_get [i915]] *ERROR* render: timed out waiting for forcewake ack request. <4> [85.051916] ------------[ cut here ]------------ <4> [85.051917] GT thread status wait timed out <4> [85.051963] WARNING: CPU: 2 PID: 2195 at drivers/gpu/drm/i915/intel_uncore.c:303 __gen6_gt_wait_for_thread_c0+0x6e/0xa0 [i915] <4> [85.051964] Modules linked in: snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic i915 x86_pkg_temp_thermal coretemp mei_hdcp crct10dif_pclmul crc32_pclmul snd_hda_intel ghash_clmulni_intel snd_hda_codec broadcom bcm_phy_lib i2c_i801 snd_hwdep snd_hda_core tg3 snd_pcm ptp pps_core mei_me mei prime_numbers lpc_ich <4> [85.051980] CPU: 2 PID: 2195 Comm: drm_read Tainted: G U 5.0.0-rc8-CI-CI_DRM_5662+ #1 <4> [85.051981] Hardware name: Dell Inc. XPS 8300 /0Y2MRG, BIOS A06 10/17/2011 <4> [85.052012] RIP: 0010:__gen6_gt_wait_for_thread_c0+0x6e/0xa0 [i915] <4> [85.052015] Code: 8b 92 5c 80 13 00 83 e2 07 75 d5 5b 5d c3 80 3d 5b 6a 1a 00 00 75 f4 48 c7 c7 38 21 31 a0 c6 05 4b 6a 1a 00 01 e8 e2 84 ea e0 <0f> 0b eb dd 80 3d 3a 6a 1a 00 00 75 98 48 c7 c6 08 21 31 a0 48 c7 <4> [85.052016] RSP: 0018:ffffc9000043bd00 EFLAGS: 00010086 <4> [85.052019] RAX: 0000000000000000 RBX: ffff888217c50000 RCX: 0000000000000000 <4> [85.052020] RDX: 0000000000000007 RSI: ffffffff820cb141 RDI: 00000000ffffffff <4> [85.052022] RBP: 00000013cd30f2fb R08: 0000000000000000 R09: 0000000000000001 <4> [85.052024] R10: ffffc9000043bce0 R11: 0000000000000000 R12: ffff888217c50ee0 <4> [85.052025] R13: 0000000000000001 R14: 00000000ffffffff R15: ffff888218076530 <4> [85.052028] FS: 00007fc79d049980(0000) GS:ffff888227a80000(0000) knlGS:0000000000000000 <4> [85.052029] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 <4> [85.052031] CR2: 00007f782e2940f8 CR3: 000000022458e006 CR4: 00000000000606e0 <4> [85.052033] Call Trace: <4> [85.052064] gen6_read32+0x14e/0x250 [i915] <4> [85.052096] intel_engine_is_idle+0x7d/0x180 [i915] <4> [85.052126] intel_engines_are_idle+0x29/0x50 [i915] <4> [85.052153] i915_drop_caches_set+0x21c/0x290 [i915] <4> [85.052160] simple_attr_write+0xb0/0xd0 <4> [85.052165] full_proxy_write+0x51/0x80 <4> [85.052170] __vfs_write+0x31/0x190 <4> [85.052176] ? rcu_read_lock_sched_held+0x6f/0x80 <4> [85.052178] ? rcu_sync_lockdep_assert+0x29/0x50 <4> [85.052181] ? __sb_start_write+0x152/0x1f0 <4> [85.052183] ? __sb_start_write+0x163/0x1f0 <4> [85.052187] vfs_write+0xbd/0x1b0 <4> [85.052191] ksys_write+0x50/0xc0 <4> [85.052196] do_syscall_64+0x55/0x190 <4> [85.052200] entry_SYSCALL_64_after_hwframe+0x49/0xbe <4> [85.052202] RIP: 0033:0x7fc79c9d3281 <4> [85.052204] Code: c3 0f 1f 84 00 00 00 00 00 48 8b 05 59 8d 20 00 c3 0f 1f 84 00 00 00 00 00 8b 05 8a d1 20 00 85 c0 75 16 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 57 f3 c3 0f 1f 44 00 00 41 54 55 49 89 d4 53 <4> [85.052206] RSP: 002b:00007fffa4a0a7f8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 <4> [85.052208] RAX: ffffffffffffffda RBX: 0000000000000001 RCX: 00007fc79c9d3281 <4> [85.052210] RDX: 0000000000000005 RSI: 00007fffa4a0a880 RDI: 0000000000000008 <4> [85.052212] RBP: 00007fffa4a0a820 R08: 0000000000000000 R09: 0000000000000000 <4> [85.052213] R10: 0000000000000000 R11: 0000000000000246 R12: 00007fc79c9bc718 <4> [85.052215] R13: 0000000000000003 R14: 00007fc79c9c1628 R15: 00007fc79c9bdd80 <4> [85.052223] irq event stamp: 71630 <4> [85.052226] hardirqs last enabled at (71629): [] _raw_spin_unlock_irqrestore+0x4c/0x60 <4> [85.052228] hardirqs last disabled at (71630): [] _raw_spin_lock_irqsave+0xd/0x50 <4> [85.052231] softirqs last enabled at (70444): [] __do_softirq+0x33a/0x4b9 <4> [85.052234] softirqs last disabled at (70433): [] irq_exit+0xd1/0xe0 <4> [85.052264] WARNING: CPU: 2 PID: 2195 at drivers/gpu/drm/i915/intel_uncore.c:303 __gen6_gt_wait_for_thread_c0+0x6e/0xa0 [i915] Signed-off-by: Chris Wilson Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190227114958.32438-1-chris@chris-wilson.co.uk commit babfb1b55ca3a75b695348ca83bcca3590b45fef Author: Chris Wilson Date: Tue Feb 26 10:23:54 2019 +0000 drm/i915: Skip scanning for signalers if we are already inflight When a request has its priority changed, we traverse the graph of all of its signalers to raise their priorities to match (priority inheritance). If the request has already started executing its payload, we know that all of its signalers must have signaled and we do not need to process our list of signalers. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190226102404.29153-1-chris@chris-wilson.co.uk commit 69e89032b2a5e35e5bf0ff6372776f4bd830c2a3 Author: Ville Syrjälä Date: Mon Feb 25 19:41:06 2019 +0200 drm/i915: Include infoframes in the crtc state dump Dump out the infoframes in the normal crtc state dump. TODO: Try to better integrate the infoframe dumps with drm state dumps Signed-off-by: Ville Syrjälä Reviewed-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190225174106.2163-10-ville.syrjala@linux.intel.com commit 6454cb9feb8353e0fa4503e06c89e946b28b1551 Author: Ville Syrjälä Date: Mon Feb 25 19:41:05 2019 +0200 drm/i915: Check infoframe state in intel_pipe_config_compare() Check the infoframes and infoframe enable state when comparing two crtc states. We'll use the infoframe logging functions from video/hdmi.c to show the infoframes as part of the state dump. TODO: Try to better integrate the infoframe dumps with drm state dumps v2: drm_printk() is no more Signed-off-by: Ville Syrjälä Reviewed-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190225174106.2163-9-ville.syrjala@linux.intel.com commit 0d567f1eaea7d3afdb8931a2b0e99ab588f26b7a Author: Ville Syrjälä Date: Mon Feb 25 19:41:04 2019 +0200 drm/i915/sdvo: Read out HDMI infoframes Read the HDMI infoframes from the hbuf and unpack them into the crtc state. Well, actually just AVI infoframe for now but let's write the infoframe readout code in a more generic fashion in case we expand this later. Note that Daniel was sceptical about the benefit if this and also concerned about the potential for crappy sdvo encoders not implementing the hbuf read commands. My (admittedly limited) experience is that such encoders don't implement even the get/set hdmi encoding commands and thus would always be treated as dvi only. Hence I believe this is safe, and also IMO preferable having quirks to deal with missing readout support. The readout support is neatly isolated in the sdvo code whereas the quirk would leak to other parts of the driver (state checker, fastboot, etc.) thus complicating the lives of other people. Signed-off-by: Ville Syrjälä Acked-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190225174106.2163-8-ville.syrjala@linux.intel.com commit 769be632d42b7b82998c59370ffb5ddfcc76762e Author: Ville Syrjälä Date: Mon Feb 25 19:41:03 2019 +0200 drm/i915/sdvo: Precompute HDMI infoframes As with regular HDMI encoders, let's precompute the infoframes (actually just AVI infoframe for the time being) with SDVO HDMI encoders. v2: Drop the WARN_ON() from drm_hdmi_avi_infoframe_from_display_mode() return since that could genuinely fail due to user asking for incompatible aspect ratio v3: .compute_config() now returns int Signed-off-by: Ville Syrjälä Acked-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190225174106.2163-7-ville.syrjala@linux.intel.com commit f2a10d61ca7864088a3cb47bc57a8149ded55e08 Author: Ville Syrjälä Date: Mon Feb 25 19:41:02 2019 +0200 drm/i915: Read out HDMI infoframes Add code to read the infoframes from the video DIP and unpack them into the crtc state. v2: Make the read funcs return void (Daniel) Drop the duplicate infoframe enabled checks (Daniel) Add a FIXME for lspcon infoframe readout Signed-off-by: Ville Syrjälä Reviewed-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190225174106.2163-6-ville.syrjala@linux.intel.com commit fbf08556ed4344282e7e809bbaeebed804f1ab4e Author: Ville Syrjälä Date: Mon Feb 25 19:41:01 2019 +0200 drm/i915: Precompute HDMI infoframes Store the infoframes in the crtc state and precompute them in .compute_config(). While precomputing we'll also fill out the inforames.enable bitmask appropriately. v2: Drop the null packet stuff (Daniel) Add a FIXME for lspcon v3: .compute_config() now returns int Signed-off-by: Ville Syrjälä Reviewed-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190225174106.2163-5-ville.syrjala@linux.intel.com commit e5e70d4a37f65cce3959eb97d2cd74d8af623a40 Author: Ville Syrjälä Date: Mon Feb 25 19:41:00 2019 +0200 drm/i915: Store mask of enabled infoframes in the crtc state Store the mask of enabled infoframes in the crtc state. We'll start with just the readout for HDMI encoder, and we'll expand this to compute the bitmask in .compute_config() later. SDVO will also follow later. Signed-off-by: Ville Syrjälä Reviewed-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190225174106.2163-4-ville.syrjala@linux.intel.com commit 509efa2b54976dc23159b0578585db00c8e6362e Author: Ville Syrjälä Date: Mon Feb 25 19:40:59 2019 +0200 drm/i915: Return the mask of enabled infoframes from ->inforame_enabled() We want to start tracking which infoframes are enabled, so let's replace the boolean flag with a bitmask. We'll abstract the bitmask so that it's not platform dependent. That will allow us to examine the bitmask later in platform independent code. v2: Don't map VIDEO_DIP_ENABLE to the null packet (Daniel) Put a FIXME in the lspcon function Signed-off-by: Ville Syrjälä Reviewed-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190225174106.2163-3-ville.syrjala@linux.intel.com commit 5cb3c1a123fc337016ad95e1021dc4ccfefb494e Author: Ville Syrjälä Date: Mon Feb 25 19:40:58 2019 +0200 drm/i915: Add the missing HDMI gamut metadata packet stuff We have definitions and low level code for everything except the gamut metadata HDMI packet. Add the missing bits. Signed-off-by: Ville Syrjälä Reviewed-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190225174106.2163-2-ville.syrjala@linux.intel.com commit 979a1bb6ba5a7baefb5125d624d553f66a7a8dae Author: Konstantin Sudakov Date: Wed Feb 20 09:21:56 2019 +0100 drm/panel: Add Ronbo RB070D30 panel The Ronbo RB070D30 panel is a MIPI-DSI panel based on a Fitipower EK79007 controller and a 1024x600 panel. Reviewed-by: Paul Kocialkowski Reviewed-by: Sam Ravnborg Signed-off-by: Konstantin Sudakov Signed-off-by: Maxime Ripard Link: https://patchwork.freedesktop.org/patch/msgid/3cc43c6051e89a52434053a38a36621acab7236e.1550650810.git-series.maxime.ripard@bootlin.com commit 1860cc4a624c61337bda015978fe6cb86599f117 Author: Maxime Ripard Date: Wed Feb 20 09:21:55 2019 +0100 dt-bindings: panel: Add YAML schemas for the Ronbo RB070D30 panel The Ronbo RB070D30 panel is a 1024x600 MIPI-DSI panel. Reviewed-by: Paul Kocialkowski Signed-off-by: Maxime Ripard Link: https://patchwork.freedesktop.org/patch/msgid/c05b961302ec4a2af32ea6c215ec0749b1a9cff7.1550650810.git-series.maxime.ripard@bootlin.com commit 7e6a3a618a54cde0ca054c8aa4ed9ad0affbc544 Author: Konstantin Sudakov Date: Wed Feb 20 09:21:54 2019 +0100 dt-bindings: Add vendor prefix for Ronbo Electronics Ronbo Electronics manufactures display panels. Reviewed-by: Paul Kocialkowski Signed-off-by: Konstantin Sudakov Signed-off-by: Maxime Ripard Link: https://patchwork.freedesktop.org/patch/msgid/a7ab8bd59ad673f88e2c39cf6cb21bd959cf4db4.1550650810.git-series.maxime.ripard@bootlin.com commit 5a80e4a2cd7073a74c8435e361cc9120c2a954b7 Author: Abdiel Janulgue Date: Mon Feb 11 19:32:51 2019 +0200 drm/i915/query: Split out query item checks This simplifies adding new query item objects. v2: Use query_hdr (Tvrtko, Chris). int instead of u32 in return (Tvrtko) v3: More naming fixes (Tvrtko) Signed-off-by: Abdiel Janulgue Cc: Joonas Lahtinen Reviewed-by: Tvrtko Ursulin Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190211173251.7131-1-abdiel.janulgue@linux.intel.com commit 368375107ba4d03917ba7954217c39461350a8a3 Author: Chris Wilson Date: Tue Feb 26 09:49:22 2019 +0000 drm/i915/selftests: Exercise resetting during non-user payloads In selftests/live_hangcheck, we have a lot of tests for resetting simple spinners, but nothing quite prepared us for how the GPU reacted to triggering a reset outside of the safe spinner. These two subtests fill the ring with plain old empty, non-spinning requests, and then triggers a reset. Without a user-payload to blame, these requests will exercise the 'non-started' paths and mostly be replayed verbatim. Signed-off-by: Chris Wilson Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190226094922.31617-4-chris@chris-wilson.co.uk commit b300fde8965fdd628341c4b602481ebde8ac9cb7 Author: Chris Wilson Date: Tue Feb 26 09:49:21 2019 +0000 drm/i915: Remove i915_request.global_seqno Having weaned the interrupt handling off using a single global execution queue, we no longer need to emit a global_seqno. Note that we still have a few assumptions about execution order along engine timelines, but this removes the most obvious artefact! Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190226094922.31617-3-chris@chris-wilson.co.uk commit 8892f47742ea25fe31eb27c73ab6b6f5f4616c1c Author: Chris Wilson Date: Tue Feb 26 09:49:20 2019 +0000 drm/i915: Remove access to global seqno in the HWSP Stop accessing the HWSP to read the global seqno, and stop tracking the mirror in the engine's execution timeline -- it is unused. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190226094922.31617-2-chris@chris-wilson.co.uk commit 89531e7d8ee8602b2723431a581250d5d0ec2913 Author: Chris Wilson Date: Tue Feb 26 09:49:19 2019 +0000 drm/i915: Replace global_seqno with a hangcheck heartbeat seqno To determine whether an engine has 'stuck', we simply check whether or not is still on the same seqno for several seconds. To keep this simple mechanism intact over the loss of a global seqno, we can simply add a new global heartbeat seqno instead. As we cannot know the sequence in which requests will then be completed, we use a primitive random number generator instead (with a cycle long enough to not matter over an interval of a few thousand requests between hangcheck samples). The alternative to using a dedicated seqno on every request is to issue a heartbeat request and query its progress through the system. Sadly this requires us to reduce struct_mutex so that we can issue requests without requiring that bkl. v2: And without the extra CS_STALL for the hangcheck seqno -- we don't need strict serialisation with what comes later, we just need to be sure we don't write the hangcheck seqno before our batch is flushed. Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190226094922.31617-1-chris@chris-wilson.co.uk commit 37fc7845df7b6ab9b2885b42e8de8ebcf33bee7a Author: José Roberto de Souza Date: Fri Feb 22 12:24:37 2019 -0800 drm/i915: Call MG_DP_MODE() macro with the right parameters order The commit that this patch fixes changed the order of the parameters of MG_DP_MODE() but din't update the callers, breaking type-c on ICL. Fixes: 58106b7d816e ("drm/i915: Make MG PHY macros semantically consistent") Cc: Clint Taylor Cc: Imre Deak Cc: Jani Nikula Cc: Aditya Swarup Cc: Manasi navare Cc: Jani Nikula Signed-off-by: José Roberto de Souza Reviewed-by: Lucas De Marchi Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190222202437.6575-1-jose.souza@intel.com commit 66542c3b9d2fe179f7392f01aaf49a5b432426a7 Author: Omer Shpigelman Date: Sun Feb 24 09:17:55 2019 +0200 habanalabs: add MMU shadow mapping This patch adds shadow mapping to the MMU module. The shadow mapping allows traversing the page table in host memory rather reading each PTE from the device memory. It brings better performance and avoids reading from invalid device address upon PCI errors. Only at the end of map/unmap flow, writings to the device are performed in order to sync the H/W page tables with the shadow ones. Signed-off-by: Omer Shpigelman Signed-off-by: Oded Gabbay commit d75bcf3e5d60d4e586f3fb20f2cc9041667497a7 Author: Tomer Tayar Date: Tue Mar 12 13:53:17 2019 +0200 habanalabs: Allow accessing DRAM virtual addresses via debugfs The addr/data32 debugfs nodes currently permit the access to only physical addresses of a device. This patch extends it and allows accessing also device's DRAM virtual addresses. Signed-off-by: Tomer Tayar Signed-off-by: Oded Gabbay commit c811f7bc771f1cc3b1d932d5439757802806a789 Author: Tomer Tayar Date: Thu Mar 7 14:26:02 2019 +0200 habanalabs: Add a printout with the name of a busy engine Print the name of a busy engine when checking if a device is idle. The change is done mainly to help a user to pinpoint problems in his topology's recipe. Signed-off-by: Tomer Tayar Signed-off-by: Oded Gabbay commit e1266004872c837db4ed8a72f066820ebb5d5353 Author: Oded Gabbay Date: Thu Mar 7 14:20:05 2019 +0200 uapi/habanalabs: add some comments in habanalabs.h This patch adds two comments in uapi/habanalabs.h: - From which queue id the internal queues begin - Invalid values that can be returned in the seq field from the CS IOCTL Signed-off-by: Oded Gabbay commit 393e5b55e2228fdb8382cca78b2b1dcae2b17590 Author: Tomer Tayar Date: Wed Mar 6 14:30:26 2019 +0200 habanalabs: Remove unneeded function pointers Remove pointers to ASIC-specific functions and instead call the functions explicitly as they are not accessed from outside the ASIC-specific files. Signed-off-by: Tomer Tayar Signed-off-by: Oded Gabbay commit b6f897d75d651f86a3988a602e767696f9e08de6 Author: Tomer Tayar Date: Tue Mar 5 16:48:42 2019 +0200 habanalabs: Move PCI code into common file Move duplicated PCI-related code from ASIC-specific files into the common pci.c file. Signed-off-by: Tomer Tayar Signed-off-by: Oded Gabbay commit 680cb3991c9ed72cefffc49e222a8c8d34ff5e3e Author: Oded Gabbay Date: Tue Mar 5 13:53:22 2019 +0200 habanalabs: ratelimit warnings at start of IOCTLs At the start of some IOCTLs we check if the device is disabled or in reset. If it is, we return -EBUSY and print a message to kernel log. Because these IOCTLs can be called at very high frequency, use ratelimit to avoid spamming the kernel log. Also use the same type of message - dev_warn - in all the relevant IOCTLs. Signed-off-by: Oded Gabbay commit e0a29952c52787f8e4a4fc3046f3e47916ffa239 Author: Oded Gabbay Date: Thu Feb 28 10:19:41 2019 +0200 habanalabs: remove unused defines This patch removes some old defines which are not in use anymore. Signed-off-by: Oded Gabbay commit c535bfdd0f86aeed165d4f5aba187570f42d785f Author: Oded Gabbay Date: Mon Mar 4 15:51:30 2019 +0200 habanalabs: use EQ MSI/X ID per chip The Event Queue MSI/X ID is different per ASIC. This patch renames the current define to have the GOYA_ prefix to mark it only for Goya. It also moves it from the common armcp_if.h file to the ASIC specific goya_fw_if.h file. Signed-off-by: Oded Gabbay commit 3110c60fdc7a5a7626b7cd401c4918751d7c19db Author: Tomer Tayar Date: Mon Mar 4 10:22:09 2019 +0200 habanalabs: Move device CPU code into common file This patch moves the code that is responsible of the communication vs. the F/W to a dedicated file. This will allow us to share the code between different ASICs. Signed-off-by: Tomer Tayar Signed-off-by: Oded Gabbay commit 5eb420446a595ee111828641bff1f3a125fc5c0d Author: Dotan Barak Date: Wed Feb 27 09:55:57 2019 +0200 habanalabs: remove implicit include from header files This will prevent unneeded include of header files, which may increase compilation time. Signed-off-by: Dotan Barak Signed-off-by: Oded Gabbay commit b24ca4587e2b940b22de4490209b8d785bf487a5 Author: Oded Gabbay Date: Sun Feb 24 15:50:53 2019 +0200 habanalabs: rename goya_non_fatal_events array to all events The goya_non_fatal_events array actually contains all the possible events the driver can receive from the F/W. Therefore, use a proper name for the array. The patch also adds missing event Ids to the goya_async_event_id enum. Signed-off-by: Oded Gabbay commit 0ca3b1b7b9652875861eaa24ae2c514771c2750e Author: Igor Grinberg Date: Sun Feb 24 11:20:02 2019 +0200 habanalabs: add new device CPU boot status This patch adds a definition of a new status in the device CPU boot stages and add the handling of the new status. Signed-off-by: Igor Grinberg Signed-off-by: Oded Gabbay commit d0aa694b923960351ab79df021de7bbd7728d5cc Author: Chris Wilson Date: Sat Feb 23 00:01:02 2019 +0000 drm/i915/pmu: Always sample an active ringbuffer As we no longer have a precise indication of requests queued to an engine, make no presumptions and just sample the ring registers to see if the engine is busy. v2: Report busy while the ring is idling on a semaphore/event. v3: Give the struct a name! v4: Always 0 outside the powerwell; trusting the powerwell is accurate enough for our sampling pmu. v5: Protect against gen7 mmio madness and try to improve grammar Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190223000102.14290-1-chris@chris-wilson.co.uk commit 0a3317d43dfae7613b79d27f5fdca7c03feeecee Author: Rodrigo Vivi Date: Thu Feb 21 13:17:16 2019 -0800 drm/i915: Remove unused HAS_PCH_CNP_LP Other than LPT, no other PCH needed to differentiate between LP and HP. So let's remove this before we spread this mistake to future platforms. Cc: Anusha Srivatsa Cc: Lucas De Marchi Signed-off-by: Rodrigo Vivi Reviewed-by: Lucas De Marchi Link: https://patchwork.freedesktop.org/patch/msgid/20190221211716.9433-1-rodrigo.vivi@intel.com commit e0f83eb5a499415c00697679122b06d097dd5b33 Author: Rodrigo Vivi Date: Thu Feb 21 13:44:30 2019 -0800 drm/i915: Sort newer to older platforms. No functional change. Just a reorg to match the preferred behavior. v2: missing else (Ville) Cc: Ville Syrjälä Cc: Lucas De Marchi Signed-off-by: Rodrigo Vivi Reviewed-by: Ville Syrjälä Reviewed-by: Lucas De Marchi Link: https://patchwork.freedesktop.org/patch/msgid/20190221214430.27095-1-rodrigo.vivi@intel.com commit 9e01d94456beee426cbc4ed71d8e0e01df038b2d Author: Rodrigo Vivi Date: Thu Feb 21 15:14:52 2019 -0800 drm/i915: Sort ctx workarounds init from newer to older platforms. No functional change. Just a reorg to match the preferred behavior. Cc: Tvrtko Ursulin Cc: Ville Syrjälä Cc: Lucas De Marchi Signed-off-by: Rodrigo Vivi Reviewed-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190221231452.21672-1-rodrigo.vivi@intel.com commit 07c100b187332101220baf7446b4f09296d7c59b Author: Chris Wilson Date: Thu Feb 21 16:38:33 2019 +0000 drm/i915/guc: Flush the residual log capture irq on disabling As we disable the log capture events, flush any residual interrupt before we flush and disable the worker. v2: Mika pointed out that it wasn't the worker re-queueing itself, but a rogue irq. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109716 Signed-off-by: Chris Wilson Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190221163833.21393-1-chris@chris-wilson.co.uk commit 772b5408e3aac93835320dc198ded8e68a00df5d Author: Chengguang Xu Date: Thu Feb 21 10:08:19 2019 +0800 drm/i915: remove redundant likely/unlikely annotation unlikely has already included in IS_ERR(), so just remove redundant likely/unlikely annotation. Signed-off-by: Chengguang Xu Reviewed-by: Chris Wilson Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190221020819.21832-1-cgxu519@gmx.com commit 43a8f684b6d1e16c6ecf918332f9b35686bf7edd Author: Chris Wilson Date: Thu Feb 21 10:29:19 2019 +0000 drm/i915: Reorder struct_mutex-vs-reset_lock in i915_gem_fault() Annoyingly, struct_mutex was not entirely eliminated from the reset pathway; for reasons of its own, intel_display_resume() requires struct_mutex to prepare the planes it already captured. To avoid the immediate problem of a deadlock between the struct_mutex and the reset srcu, we have to acquire the reset_lock before struct_mutex in i915_gem_fault(). Now any wait underneath struct_mutex will result us in having to forcibly reset all inflight rendering, less than ideal, but better than a deadlock (and will do for the short term). Signed-off-by: Chris Wilson Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190221102924.13442-1-chris@chris-wilson.co.uk commit 2a3902bd5c14a4946739c9da14071f5aa6e85549 Author: Uma Shankar Date: Thu Feb 21 00:35:19 2019 +0530 drm/i915/icl: Drop redundant gamma mode mask gamma mode mask was not considering the 30th and 31st bits. Due to this state readout was masking these bits, causing a mismatch and false warning, even though the registers were updated correctly. Dropped the gamma mode mask as it is redundant and ideally entire register content should be matching. This resolves the state mismatch warnings. Signed-off-by: Uma Shankar Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/1550689519-6977-1-git-send-email-uma.shankar@intel.com Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109624 commit fb8cd60c8418aebe91f773cfa32409119b96cdde Author: YueHaibing Date: Mon Feb 18 08:54:59 2019 +0000 drm/qxl: remove set but not used variable 'bo_old' Fixes gcc '-Wunused-but-set-variable' warning: drivers/gpu/drm/qxl/qxl_display.c: In function 'qxl_primary_atomic_update': drivers/gpu/drm/qxl/qxl_display.c:538:17: warning: variable 'bo_old' set but not used [-Wunused-but-set-variable] It's not used any more after 4979904c62b9 ("drm/qxl: use shadow bo directly") Signed-off-by: YueHaibing Link: http://patchwork.freedesktop.org/patch/msgid/20190218085459.196470-1-yuehaibing@huawei.com Signed-off-by: Gerd Hoffmann commit 6ab20a05f4c7ed45632e24d5397d6284e192567d Author: Noralf Trønnes Date: Sun Feb 10 14:10:39 2019 +0100 drm/fb-helper: generic: Don't take module ref for fbcon It's now safe to let fbcon unbind automatically on fbdev unregister. The crash problem was fixed in commit 2122b40580dd ("fbdev: fbcon: Fix unregister crash when more than one framebuffer") Signed-off-by: Noralf Trønnes Reviewed-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190210131039.52664-13-noralf@tronnes.org commit eb73e1d5ddd85251c7788e490611371cee9e1c71 Author: Andy Shevchenko Date: Tue Feb 19 21:13:31 2019 +0300 drm/tinydrm: Trivia typo fix Fix adddress -> address typo. Signed-off-by: Andy Shevchenko Signed-off-by: Noralf Trønnes Link: https://patchwork.freedesktop.org/patch/msgid/20190219181331.28326-1-andriy.shevchenko@linux.intel.com commit 4f83479891430556dbe287d465ea611f2f49e82e Author: Noralf Trønnes Date: Sun Feb 10 14:10:34 2019 +0100 drm/tinydrm/mipi-dbi: Add drm_to_mipi_dbi() Add a function to derive mipi_dbi from drm_device now that tinydrm_device is going away. Signed-off-by: Noralf Trønnes Reviewed-by: Sam Ravnborg Link: https://patchwork.freedesktop.org/patch/msgid/20190210131039.52664-8-noralf@tronnes.org commit d0a516347688eb031902852aaa7f5e72ee1db3c8 Author: Noralf Trønnes Date: Sun Feb 10 14:10:33 2019 +0100 drm/tinydrm: Remove tinydrm_shutdown() It's just a wrapper around drm_atomic_helper_shutdown() now. Also store drm_device in the drvdata field, since that's what's used. Signed-off-by: Noralf Trønnes Reviewed-by: Sam Ravnborg Link: https://patchwork.freedesktop.org/patch/msgid/20190210131039.52664-7-noralf@tronnes.org commit 96f2a9aef5987340d367ab7497ae972a55e6f71c Author: Noralf Trønnes Date: Sun Feb 10 14:10:32 2019 +0100 drm/tinydrm: tinydrm_display_pipe_init() don't use tinydrm_device Rework function signature so tinydrm_device can be avoided. Move definition to tinydrm-helpers.h so tinydrm.h can be deleted in a later patch. Signed-off-by: Noralf Trønnes Reviewed-by: Sam Ravnborg Link: https://patchwork.freedesktop.org/patch/msgid/20190210131039.52664-6-noralf@tronnes.org commit 06db4b8b26284133333bd01504a029139ccf872c Author: Noralf Trønnes Date: Sun Feb 10 14:10:31 2019 +0100 drm/modes: Add DRM_SIMPLE_MODE() This adds a helper macro to specify modes that only contain info about resolution. v2: Actually set the width and height (Ilia Mirkin) Cc: Ilia Mirkin Signed-off-by: Noralf Trønnes Reviewed-by: Sam Ravnborg Link: https://patchwork.freedesktop.org/patch/msgid/20190210131039.52664-5-noralf@tronnes.org commit ba3bf37e150a99b51b13f5cebf89715685d21212 Author: Noralf Trønnes Date: Fri Feb 8 15:01:03 2019 +0100 drm/drv: drm_dev_unplug(): Move out drm_dev_put() call This makes it possible to use drm_dev_unplug() with the upcoming devm_drm_dev_init() which will do drm_dev_put() in its release callback. Cc: Alex Deucher Cc: Christian König Cc: David (ChunMing) Zhou Cc: Dave Airlie Cc: Sean Paul Cc: Oleksandr Andrushchenko Cc: Daniel Vetter Signed-off-by: Noralf Trønnes Acked-by: Oleksandr Andrushchenko Reviewed-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190208140103.28919-3-noralf@tronnes.org commit 1ee57d4d75fbc74bb2ae601c8f334219165ef276 Author: Noralf Trønnes Date: Fri Feb 8 15:01:02 2019 +0100 drm: Fix drm_release() and device unplug If userspace has open fd(s) when drm_dev_unplug() is run, it will result in drm_dev_unregister() being called twice. First in drm_dev_unplug() and then later in drm_release() through the call to drm_put_dev(). Since userspace already holds a ref on drm_device through the drm_minor, it's not necessary to add extra ref counting based on no open file handles. Instead just drm_dev_put() unconditionally in drm_dev_unplug(). We now have this: - Userpace holds a ref on drm_device as long as there's open fd(s) - The driver holds a ref on drm_device as long as it's bound to the struct device When both sides are done with drm_device, it is released. Signed-off-by: Noralf Trønnes Reviewed-by: Oleksandr Andrushchenko Reviewed-by: Daniel Vetter Reviewed-by: Sean Paul Link: https://patchwork.freedesktop.org/patch/msgid/20190208140103.28919-2-noralf@tronnes.org commit c5568ed2bfdf0262cd48b5085a227c04a5556a01 Author: Chris Wilson Date: Thu Feb 21 08:48:33 2019 +0000 drm/i915/hdcp: Silence compiler critics drivers/gpu/drm/i915/intel_hdcp.c:92 intel_hdcp2_capable() warn: inconsistent indenting drivers/gpu/drm/i915/intel_hdcp.c:786:5: error: no previous prototype for ‘intel_hdcp_check_link’ Signed-off-by: Chris Wilson Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190221084833.19489-1-chris@chris-wilson.co.uk commit 1813ae17fdf03c69313a9742b9be41dd7aa6ebb3 Author: Sujaritha Sundaresan Date: Tue Feb 19 17:39:27 2019 -0800 drm/i915/guc: Calling guc_disable_communication in all suspend paths This aim of this patch is to call guc_disable_communication in all suspend paths. The reason to introduce this is to resolve a bug that occurred due to suspend late not being called in the hibernate devices path. Cc: Daniele Ceraolo Spurio Cc: Michal Wajdeczko Signed-off-by: Sujaritha Sundaresan Reviewed-by: Daniele Ceraolo Spurio Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190220013927.9488-3-sujaritha.sundaresan@intel.com commit e0ad3c64fa1fbbddb2eab9ee0de3e057b7da942b Author: Sujaritha Sundaresan Date: Tue Feb 19 17:39:26 2019 -0800 drm/i915/guc: Splitting CT channel open/close functions The aim of this patch is to allow enabling and disabling of CTB without requiring the mutex lock. v2: Phasing out ctch_is_enabled function and replacing it with ctch->enabled (Daniele) Cc: Daniele Ceraolo Spurio Cc: Michal Wajdeczko Signed-off-by: Sujaritha Sundaresan Reviewed-by: Daniele Ceraolo Spurio Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190220013927.9488-2-sujaritha.sundaresan@intel.com commit 9ce25e72cc7794d2428ff0d5730731496a02fbb7 Author: Chris Wilson Date: Wed Feb 20 22:55:56 2019 +0000 drm/i915: Prevent user context creation while wedged Introduce a new ABI method for detecting a wedged driver by reporting -EIO from DRM_IOCTL_I915_GEM_CONTEXT_CREATE. This came up in considering how to handle context recovery from userspace. There we wish to create a new context after the original is banned (the clients opts into the no recovery after reset strategy) in order to rebuild the mesa context from scratch. In doing so, if the device was wedged and not the context banned, we would fall into a loop of permanently trying to recreate the context and never making forward progress. This patch would inform the client that we are no longer able to create a context, and the client would have no choice but to abort (or at least inform its callers about the lost device for anv). References: https://lists.freedesktop.org/archives/mesa-dev/2019-February/215469.html Signed-off-by: Chris Wilson Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190220225556.28715-1-chris@chris-wilson.co.uk commit 207a815d8603946d1196296c102b3b6884b07c28 Author: Ville Syrjälä Date: Thu Feb 14 21:22:19 2019 +0200 drm/i915: Extend skl+ crc sources with more planes On skl the crc registers were extended to provide plane crcs for up to 7 planes. Add the new crc sources. The current code uses the ivb+ register definitions for skl+ which does happen to work as the plane1, plane2, and dmux/pf bits happen the match what ivb+ had. So no bug in the current code. v2: Drop the unused set_wa parameter (DK) Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190214192219.3858-4-ville.syrjala@linux.intel.com Reviewed-by: Rodrigo Vivi commit 53039750bf0a859f3d10183b4e26bcafb155cb4a Author: Ville Syrjälä Date: Thu Feb 14 21:22:18 2019 +0200 drm/i915: Remove the broken DP CRC support for g4x DP CRCs don't really work on g4x. If you want any CRCs on DP you must select the CRC source before the port is enabled, otherwise the CRC source select bits simply ignore any writes to them. And once the port is enabled we mustn't change the CRC source select until the port is disabled. That almost works, but not quite :( Eventually the CRC source select bits get permanently stuck one way or the other, and after that a reboot (or possibly a display reset) is needed to get working CRCs on that pipe (not matter which CRC source we try to use). Additionally the DFT scrambler reset bits we're trying to use don't seem to exist on g4x. There are some potentially relevant looking bits in the pipe registers, but when I tried it I got stable looking CRCs without setting any bits for this. If there is a way to make DP CRCs work reliably on g4x, I wasn't able to find it. So let's just remove the broken code we have. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190214192219.3858-3-ville.syrjala@linux.intel.com Reviewed-by: Rodrigo Vivi Reviewed-by: Dhinakaran Pandiyan commit b49aacc8b9eaab0f582f93f02b7f23a969832839 Author: Ville Syrjälä Date: Thu Feb 14 21:22:17 2019 +0200 drm/i915: Use named initializers for the crc source name array We assume that the index of the string in the crc source names array matches the enum value for the crc source. Let's use named initializers to make sure that is indeed the case even if someone rearranges either the enum or the array. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190214192219.3858-2-ville.syrjala@linux.intel.com Reviewed-by: Rodrigo Vivi commit 87c2b659d1c810e9501c75def98fbe797176d50d Author: Ville Syrjälä Date: Thu Feb 14 21:22:16 2019 +0200 drm/i915: Remove the "pf" crc source The "pipe" and "pf" crc sources are in fact the same thing. Remove the "pf" one. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190214192219.3858-1-ville.syrjala@linux.intel.com Reviewed-by: Rodrigo Vivi commit 2a8862d2f3da4f2576c34f66647127b3bb77c316 Author: Chris Wilson Date: Tue Feb 19 12:22:03 2019 +0000 drm/i915: Reduce the RPS shock Limit deboosting and boosting to keep ourselves at the extremes when in the respective power modes (i.e. slowly decrease frequencies while in the HIGH_POWER zone and slowly increase frequencies while in the LOW_POWER zone). On idle, we will hit the timeout and drop to the next level quickly, and conversely if busy we expect to hit a waitboost and rapidly switch into max power. This should improve the UX experience by keeping the GPU clocks higher than they ostensibly should be (based on simple busyness) by switching into the INTERACTIVE mode (due to waiting for pageflips) and increasing clocks via waitboosting. This will incur some additional power, our saving grace should be rc6 and powergating to keep the extra current draw in check. Food for future thought would be deadline scheduling? If we know certain contexts (high priority compositors) absolutely must hit the next vblank then we can raise the frequencies ahead of time. Part of this is covered by per-context frequencies, where userspace is given control over the frequency range they want the GPU to execute at (for largely the same problem as this, where the workload is very latency sensitive but at the EI level appears mostly idle). Indeed, the per-context series does extend the modeset boosting to include a frequency range tweak which seems applicable to solving this jittery UX behaviour. Reported-by: Lyude Paul Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109408 References: 0d55babc8392 ("drm/i915: Drop stray clearing of rps->last_adj") References: 60548c554be2 ("drm/i915: Interactive RPS mode") Signed-off-by: Chris Wilson Cc: Lyude Paul Cc: Eero Tamminen Cc: Joonas Lahtinen Cc: Michel Thierry Quoting Lyude Paul: > Before reverting 0d55babc8392754352f1058866dd4182ae587d11: [4.20] > > 35 measurements [of gnome-shell animations] > Average: 33.65657142857143 FPS > FPS observed: 20.8 - 46.87 FPS > Percentage under 60 FPS: 100.0% > Percentage under 55 FPS: 100.0% > Percentage under 50 FPS: 100.0% > Percentage under 45 FPS: 97.14285714285714% > Percentage under 40 FPS: 97.14285714285714% > Percentage under 35 FPS: 45.714285714285715% > Percentage under 30 FPS: 11.428571428571429% > Percentage under 25 FPS: 2.857142857142857% > > After reverting: [4.19 behaviour] > > 30 measurements > Average: 49.833666666666666 FPS > FPS observed: 33.85 - 60.0 FPS > Percentage under 60 FPS: 86.66666666666667% > Percentage under 55 FPS: 70.0% > Percentage under 50 FPS: 53.333333333333336% > Percentage under 45 FPS: 20.0% > Percentage under 40 FPS: 6.666666666666667% > Percentage under 35 FPS: 6.666666666666667% > Percentage under 30 FPS: 0% > Percentage under 25 FPS: 0% > > Patched: > 42 measurements > Average: 46.05428571428571 FPS > FPS observed: 1.82 - 59.98 FPS > Percentage under 60 FPS: 88.09523809523809% > Percentage under 55 FPS: 61.904761904761905% > Percentage under 50 FPS: 45.23809523809524% > Percentage under 45 FPS: 35.714285714285715% > Percentage under 40 FPS: 33.33333333333333% > Percentage under 35 FPS: 19.047619047619047% > Percentage under 30 FPS: 7.142857142857142% > Percentage under 25 FPS: 4.761904761904762% Tested-by: Lyude Paul Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190219122215.8941-13-chris@chris-wilson.co.uk commit 7412826c078b951e1b107ebee57d314e8724e714 Author: Ramalingam C Date: Sat Feb 16 23:07:03 2019 +0530 drm/i915: Fix KBL HDCP2.2 encrypt status signalling HDCP transmitter is supposed to indicate the HDCP encryption status of the link through enc_en signals in a window of time called "window of opportunity" defined by HDCP HDMI spec. But on KBL this timing of signalling has an issue. To fix the issue this WA of resetting the signalling is required. v2: WA is moved into the toggle_signalling [Daniel] v3: Commit msg is rewritten with more information v4: Reviewed-by Daniel. Signed-off-by: Ramalingam C Reviewed-by: Daniel Vetter Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/1550338640-17470-17-git-send-email-ramalingam.c@intel.com commit cf9cb35ff731a784bdbb9ce621faa34346066a39 Author: Ramalingam C Date: Sat Feb 16 23:07:02 2019 +0530 drm/i915: CP_IRQ handling for DP HDCP2.2 msgs Implements the Waitqueue is created to wait for CP_IRQ Signaling the CP_IRQ arrival through atomic variable. For applicable DP HDCP2.2 msgs read wait for CP_IRQ. As per HDCP2.2 spec "HDCP Transmitters must process CP_IRQ interrupts when they are received from HDCP Receivers" Without CP_IRQ processing, DP HDCP2.2 H_Prime msg was getting corrupted while reading it based on corresponding status bit. This creates the random failures in reading the DP HDCP2.2 msgs. v2: CP_IRQ arrival is tracked based on the atomic val inc [daniel] Recording the reviewed-by Daniel from IRC. Signed-off-by: Ramalingam C Reviewed-by: Daniel Vetter Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/1550338640-17470-16-git-send-email-ramalingam.c@intel.com commit 2d4254e50649d2bd13f73e1513708f746a513bc1 Author: Ramalingam C Date: Sat Feb 16 23:07:01 2019 +0530 drm/i915: Implement the HDCP2.2 support for HDMI Implements the HDMI adaptation specific HDCP2.2 operations. Basically these are DDC read and write for authenticating through HDCP2.2 messages. v2: Rebased. v3: No more special handling of Gmbus burst read for AKE_SEND_CERT. Style fixed with few naming. [Uma] %s/PARING/PAIRING v4: msg_sz is initialized at definition. Lookup table is defined for HDMI HDCP2.2 msgs [Daniel]. v5: Rebased. v6: Make a function as inline [Uma] %s/uintxx_t/uxx v7: Errors due to sinks are reported as DEBUG logs. Adjust to the new mei interface. v8: ARRAY_SIZE for the # of array members [Jon & Daniel]. hdcp adaptation is added as a const in the hdcp_shim [Daniel] Signed-off-by: Ramalingam C Reviewed-by: Uma Shankar Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/1550338640-17470-15-git-send-email-ramalingam.c@intel.com commit 238d3a9ea64f93062ab0ab07e5581d9a924c5aef Author: Ramalingam C Date: Sat Feb 16 23:07:00 2019 +0530 drm/i915: Implement the HDCP2.2 support for DP Implements the DP adaptation specific HDCP2.2 functions. These functions perform the DPCD read and write for communicating the HDCP2.2 auth message back and forth. v2: wait for cp_irq is merged with this patch. Rebased. v3: wait_queue is used for wait for cp_irq [Chris Wilson] v4: Style fixed. %s/PARING/PAIRING Few style fixes [Uma] v5: Lookup table for DP HDCP2.2 msg details [Daniel]. Extra lines are removed. v6: Rebased. v7: Fixed some regression introduced at v5. [Ankit] Macro HDCP_2_2_RX_CAPS_VERSION_VAL is reused [Uma] Converted a function to inline [Uma] %s/uintxx_t/uxx v8: Error due to the sinks are reported as DEBUG logs. Adjust to the new mei interface. v9: ARRAY_SIZE for no of array members [Jon & Daniel] return of the wait_for_cp_irq is made as void [Daniel] Wait for HDCP2.2 msg is done based on polling the reg bit than CP_IRQ based. [Daniel] hdcp adaptation is added as a const in the hdcp_shim [Daniel] v10: config_stream_type is redefined [Daniel] DP Errata specific defines are moved into intel_dp.c. Signed-off-by: Ramalingam C Signed-off-by: Ankit K Nautiyal Reviewed-by: Uma Shankar Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/1550338640-17470-14-git-send-email-ramalingam.c@intel.com commit 956af8964bb50fcd08a564f001b6f56cfe52f94b Author: Ramalingam C Date: Sat Feb 16 23:06:59 2019 +0530 drm: removing the DP Errata msg and its msg id Since DP ERRATA message is not defined at spec, those structure definition is removed from drm_hdcp.h Signed-off-by: Ramalingam C Suggested-by: Daniel Vetter Reviewed-by: Daniel Vetter Reviewed-by: Uma Shankar Acked-by: Dave Airlie Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/1550338640-17470-13-git-send-email-ramalingam.c@intel.com commit dfe4cbc26e40840f4b67392654759c5cf110c39c Author: Ramalingam C Date: Sat Feb 16 23:06:58 2019 +0530 drm/i915: Handle HDCP2.2 downstream topology change When repeater notifies a downstream topology change, this patch reauthenticate the repeater alone without disabling the hdcp encryption. If that fails then complete reauthentication is executed. v2: Rebased. v3: Typo in commit msg is fixed [Uma] v4: Rebased as part of patch reordering. Minor style fixes. v5: Rebased. v6: Rebased. v7: Errors due to sinks are reported as DEBUG logs. Signed-off-by: Ramalingam C Reviewed-by: Uma Shankar Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/1550338640-17470-12-git-send-email-ramalingam.c@intel.com commit 22ce2d948abffb2782d62df6074bf42151a8d372 Author: Ramalingam C Date: Sat Feb 16 23:06:57 2019 +0530 drm/i915: Implement HDCP2.2 link integrity check Implements the link integrity check once in 500mSec. Once encryption is enabled, an ongoing Link Integrity Check is performed by the HDCP Receiver to check that cipher synchronization is maintained between the HDCP Transmitter and the HDCP Receiver. On the detection of synchronization lost, the HDCP Receiver must assert the corresponding bits of the RxStatus register. The Transmitter polls the RxStatus register and it may initiate re-authentication. v2: Rebased. v3: enum check_link_response is used check the link status [Uma] v4: Rebased as part of patch reordering. v5: Required members of intel_hdcp is defined [Sean Paul] v6: hdcp2_check_link is cancelled at required places. v7: Rebased for the component i/f changes. Errors due to the sinks are reported as DEBUG logs. v8: hdcp_check_work is used for both hdcp1 and hdcp2 check_link [Daniel] hdcp2.2 encryption status check is put under WARN_ON [Daniel] drm_hdcp.h changes are moved into separate patch [Daniel] v9: enum check_link_status is defined at intel_drv.h [Daniel] Signed-off-by: Ramalingam C Reviewed-by: Uma Shankar Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/1550338640-17470-11-git-send-email-ramalingam.c@intel.com commit aeb0d80a21dbf13ce8cd3e62b86d62dfa1f81bef Author: Ramalingam C Date: Sat Feb 16 23:06:56 2019 +0530 drm: HDCP2.2 link check period Time period for HDCP2.2 link check. Signed-off-by: Ramalingam C Reviewed-by: Daniel Vetter Reviewed-by: Uma Shankar Acked-by: Dave Airlie Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/1550338640-17470-10-git-send-email-ramalingam.c@intel.com commit d849178e2c9e238d9ffb02cff823f9d1e3d18b82 Author: Ramalingam C Date: Sat Feb 16 23:06:55 2019 +0530 drm/i915: Implement HDCP2.2 repeater authentication Implements the HDCP2.2 repeaters authentication steps such as verifying the downstream topology and sending stream management information. v2: Rebased. v3: -EINVAL is returned for topology error and rollover scenario. Endianness conversion func from drm_hdcp.h is used [Uma] v4: Rebased as part of patches reordering. Defined the mei service functions [Daniel] v5: Redefined the mei service functions as per comp redesign. v6: %s/uintxx_t/uxx Check for comp_master is removed. v7: Adjust to the new mei interface. style issue fixed. v8: drm_hdcp.h change is moved into separate patch [Daniel] v9: %s/__swab16/cpu_to_be16. [Tomas] Reviewed-by Uma. Signed-off-by: Ramalingam C Reviewed-by: Daniel Vetter Reviewed-by: Uma Shankar Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/1550338640-17470-9-git-send-email-ramalingam.c@intel.com commit bd90d7c7835398fed879e3a9122f870d7a342ce6 Author: Ramalingam C Date: Sat Feb 16 23:06:54 2019 +0530 drm/i915: Implement HDCP2.2 receiver authentication Implements HDCP2.2 authentication for hdcp2.2 receivers, with following steps: Authentication and Key exchange (AKE). Locality Check (LC). Session Key Exchange(SKE). DP Errata for stream type configuration for receivers. At AKE, the HDCP Receiver’s public key certificate is verified by the HDCP Transmitter. A Master Key k m is exchanged. At LC, the HDCP Transmitter enforces locality on the content by requiring that the Round Trip Time (RTT) between a pair of messages is not more than 20 ms. At SKE, The HDCP Transmitter exchanges Session Key ks with the HDCP Receiver. In DP HDCP2.2 encryption and decryption logics use the stream type as one of the parameter. So Before enabling the Encryption DP HDCP2.2 receiver needs to be communicated with stream type. This is added to spec as ERRATA. This generic implementation is complete only with the hdcp2 specific functions defined at hdcp_shim. v2: Rebased. v3: %s/PARING/PAIRING Coding style fixing [Uma] v4: Rebased as part of patch reordering. Defined the functions for mei services. [Daniel] v5: Redefined the mei service functions as per comp redesign. Required intel_hdcp members are defined [Sean Paul] v6: Typo of cipher is Fixed [Uma] %s/uintxx_t/uxx Check for comp_master is removed. v7: Adjust to the new interface. Avoid using bool structure members. [Tomas] v8: Rebased. v9: bool is used in struct intel_hdcp [Daniel] config_stream_type is redesigned [Daniel] Reviewed-by Uma. Signed-off-by: Ramalingam C Reviewed-by: Daniel Vetter Reviewed-by: Uma Shankar Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/1550338640-17470-8-git-send-email-ramalingam.c@intel.com commit 49a630b00bacb609d78ae137cbe9e8de1cd5c692 Author: Ramalingam C Date: Sat Feb 16 23:06:53 2019 +0530 drm/i915: Enable and Disable of HDCP2.2 Considering that HDCP2.2 is more secure than HDCP1.4, When a setup supports HDCP2.2 and HDCP1.4, HDCP2.2 will be enabled. When HDCP2.2 enabling fails and HDCP1.4 is supported, HDCP1.4 is enabled. This change implements a sequence of enabling and disabling of HDCP2.2 authentication and HDCP2.2 port encryption. v2: Included few optimization suggestions [Chris Wilson] Commit message is updated as per the rebased version. intel_wait_for_register is used instead of wait_for. [Chris Wilson] v3: Extra comment added and Style issue fixed [Uma] v4: Rebased as part of patch reordering. HDCP2 encryption status is tracked. HW state check is moved into WARN_ON [Daniel] v5: Redefined the mei service functions as per comp redesign. Merged patches related to hdcp2.2 enabling and disabling [Sean Paul]. Required shim functionality is defined [Sean Paul] v6: Return values are handles [Uma] Realigned the code. Check for comp_master is removed. v7: HDCP2.2 is attempted only if mei interface is up. Adjust to the new interface Avoid bool usage in struct [Tomas] v8: mei_binded status check is removed. %s/hdcp2_in_use/hdcp2_encrypted v9: bool is used in struct intel_hdcp. [Daniel] v10: panel is replaced with sink [Uma] Mei interface decided the hdcp2_capability. WARN_ON if hdcp_enable is called when hdcp state is ENABLED. Reviewed-by Uma. Signed-off-by: Ramalingam C Reviewed-by: Daniel Vetter Reviewed-by: Uma Shankar Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/1550338640-17470-7-git-send-email-ramalingam.c@intel.com commit 09d56393c1d8d55fc8589a15cb7f4a5f1d40a0f2 Author: Ramalingam C Date: Sat Feb 16 23:06:52 2019 +0530 drm/i915: hdcp1.4 CP_IRQ handling and SW encryption tracking "hdcp_encrypted" flag is defined to denote the HDCP1.4 encryption status. This SW tracking is used to determine the need for real hdcp1.4 disable and hdcp_check_link upon CP_IRQ. On CP_IRQ we filter the CP_IRQ related to the states like Link failure and reauthentication req etc and handle them in hdcp_check_link. CP_IRQ corresponding to the authentication msg availability are ignored. WARN_ON is added for the abrupt stop of HDCP encryption of a port. v2: bool is used in struct for the cleaner coding. [Daniel] check_link work_fn is scheduled for cp_irq handling [Daniel] v3: rebased. Signed-off-by: Ramalingam C Reviewed-by: Daniel Vetter Reviewed-by: Uma Shankar Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/1550338640-17470-6-git-send-email-ramalingam.c@intel.com commit 9055aac76589c73fce8edc6abba9d214a4e983f2 Author: Ramalingam C Date: Sat Feb 16 23:06:51 2019 +0530 drm/i915: MEI interface implementation Defining the mei-i915 interface functions and initialization of the interface. v2: Adjust to the new interface changes. [Tomas] Added further debug logs for the failures at MEI i/f. port in hdcp_port data is equipped to handle -ve values. v3: mei comp is matched for global i915 comp master. [Daniel] In hdcp_shim hdcp_protocol() is replaced with const variable. [Daniel] mei wrappers are adjusted as per the i/f change [Daniel] v4: port initialization is done only at hdcp2_init only [Danvet] v5: I915 registers a subcomponent to be matched with mei_hdcp [Daniel] v6: HDCP_disable for all connectors incase of comp_unbind. Tear down HDCP comp interface at i915_unload [Daniel] v7: Component init and fini are moved out of connector ops [Daniel] hdcp_disable is not called from unbind. [Daniel] v8: subcomponent name is dropped as it is already merged. Signed-off-by: Ramalingam C Reviewed-by: Daniel Vetter [v11] Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/1550338640-17470-5-git-send-email-ramalingam.c@intel.com commit 04707f97163637e21a8f3db103252bd7e26b214c Author: Ramalingam C Date: Sat Feb 16 23:06:50 2019 +0530 drm/i915: Initialize HDCP2.2 Add the HDCP2.2 initialization to the existing HDCP1.4 stack. v2: mei interface handle is protected with mutex. [Chris Wilson] v3: Notifiers are used for the mei interface state. v4: Poll for mei client device state Error msg for out of mem [Uma] Inline req for init function removed [Uma] v5: Rebase as Part of reordering. Component is used for the I915 and MEI_HDCP interface [Daniel] v6: HDCP2.2 uses the I915 component master to communicate with mei_hdcp - [Daniel] Required HDCP2.2 variables defined [Sean Paul] v7: intel_hdcp2.2_init returns void [Uma] Realigning the codes. v8: Avoid using bool structure members. MEI interface related changes are moved into separate patch. Commit msg is updated accordingly. intel_hdcp_exit is defined and used from i915_unload v9: Movement of the hdcp_check_link is moved to new patch [Daniel] intel_hdcp2_exit is removed as mei_comp will be unbind in i915_unload. v10: bool is used in struct to make coding simpler. [Daniel] hdmi hdcp init is placed correctly after encoder attachment. v11: hdcp2_capability check is moved into hdcp.c [Tomas] Signed-off-by: Ramalingam C Reviewed-by: Daniel Vetter Reviewed-by: Uma Shankar Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/1550338640-17470-4-git-send-email-ramalingam.c@intel.com commit 4c719c256a0f881afbb4c9d82191727fbfdfcbe0 Author: Ramalingam C Date: Sat Feb 16 23:06:48 2019 +0530 drm/i915: Gathering the HDCP1.4 routines together All HDCP1.4 routines are gathered together, followed by the generic functions those can be extended for HDCP2.2 too. Signed-off-by: Ramalingam C Acked-by: Daniel Vetter Reviewed-by: Uma Shankar Reviewed-by: Tomas Winkler Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/1550338640-17470-2-git-send-email-ramalingam.c@intel.com commit 1fdafbd023793e754aa6ca73c877a375e83b8239 Author: Christian König Date: Wed Feb 20 13:46:24 2019 +0100 drm/amdgpu: fix dma mask check in gmc_v6_0.c This got messed up by "drm: change func to better detect wether swiotlb is needed". Signed-off-by: Christian König Reviewed-by: Alex Deucher Reviewed-by: Michael D Labriola Link: https://patchwork.freedesktop.org/patch/287070/ commit c1d1746f6d4b37518fe3dc4aba99db1f7a155bdb Author: Chris Wilson Date: Tue Feb 19 12:21:54 2019 +0000 drm/i915: Avoid reset lock in writing fence registers The idea of taking the reset lock around writing the fence register was to serialise the mmio write we also perform during the reset where those registers get clobbered. However, the lock is overkill as write tearing between reset and fence_update() is harmless; the final value of the fence register is the same. A race between revoke_fences() and fence_update() is also harmless at this point as on the fault path where this is necessary, we acquire the reset lock to coordinate ourselves in the upper layer. The danger of acquiring the reset lock again in fence_update() is that we may recurse from the shrinker along the i915_gem_fault() path. <4> [125.739646] ============================================ <4> [125.739652] WARNING: possible recursive locking detected <4> [125.739659] 5.0.0-rc6-ga6e4cbf00557-drmtip_223+ #1 Tainted: G U <4> [125.739666] -------------------------------------------- <4> [125.739672] gem_mmap_gtt/1017 is trying to acquire lock: <4> [125.739679] 00000000a730190a (&dev_priv->gpu_error.reset_backoff_srcu){+.+.}, at: i915_reset_trylock+0x0/0x310 [i915] <4> [125.739848] but task is already holding lock: <4> [125.739854] 00000000a730190a (&dev_priv->gpu_error.reset_backoff_srcu){+.+.}, at: i915_reset_trylock+0x192/0x310 [i915] <4> [125.739918] other info that might help us debug this: <4> [125.739925] Possible unsafe locking scenario: <4> [125.739930] CPU0 <4> [125.739934] ---- <4> [125.739937] lock(&dev_priv->gpu_error.reset_backoff_srcu); <4> [125.739944] lock(&dev_priv->gpu_error.reset_backoff_srcu); <4> [125.739950] *** DEADLOCK *** <4> [125.739958] May be due to missing lock nesting notation <4> [125.739966] 5 locks held by gem_mmap_gtt/1017: <4> [125.739972] #0: 00000000471f682c (&mm->mmap_sem){++++}, at: __do_page_fault+0x133/0x500 <4> [125.739987] #1: 0000000026542685 (&dev->struct_mutex){+.+.}, at: i915_gem_fault+0x1f6/0x860 [i915] <4> [125.740061] #2: 00000000a730190a (&dev_priv->gpu_error.reset_backoff_srcu){+.+.}, at: i915_reset_trylock+0x192/0x310 [i915] <4> [125.740126] #3: 00000000c828eb4f (fs_reclaim){+.+.}, at: fs_reclaim_acquire.part.25+0x0/0x30 <4> [125.740140] #4: 000000002d360d65 (shrinker_rwsem){++++}, at: shrink_slab+0x1cb/0x2c0 <4> [125.740151] stack backtrace: <4> [125.740159] CPU: 1 PID: 1017 Comm: gem_mmap_gtt Tainted: G U 5.0.0-rc6-ga6e4cbf00557-drmtip_223+ #1 <4> [125.740170] Hardware name: Dell Inc. OptiPlex 745 /0GW726, BIOS 2.3.1 05/21/2007 <4> [125.740180] Call Trace: <4> [125.740189] dump_stack+0x67/0x9b <4> [125.740199] __lock_acquire+0xc75/0x1b00 <4> [125.740209] ? arch_tlb_finish_mmu+0x2a/0xa0 <4> [125.740216] ? tlb_finish_mmu+0x1a/0x30 <4> [125.740222] ? zap_page_range_single+0xe2/0x130 <4> [125.740230] ? lock_acquire+0xa6/0x1c0 <4> [125.740237] lock_acquire+0xa6/0x1c0 <4> [125.740296] ? i915_clear_error_registers+0x280/0x280 [i915] <4> [125.740357] i915_reset_trylock+0x44/0x310 [i915] <4> [125.740417] ? i915_clear_error_registers+0x280/0x280 [i915] <4> [125.740426] ? lockdep_hardirqs_on+0xe0/0x1b0 <4> [125.740434] ? _raw_spin_unlock_irqrestore+0x39/0x60 <4> [125.740499] fence_update+0x218/0x470 [i915] <4> [125.740571] i915_vma_unbind+0xa6/0x550 [i915] <4> [125.740640] i915_gem_object_unbind+0xfa/0x190 [i915] <4> [125.740711] i915_gem_shrink+0x2dc/0x590 [i915] <4> [125.740722] ? ___preempt_schedule+0x16/0x18 <4> [125.740792] ? i915_gem_shrinker_scan+0xc9/0x130 [i915] <4> [125.740861] i915_gem_shrinker_scan+0xc9/0x130 [i915] <4> [125.740870] do_shrink_slab+0x143/0x3f0 <4> [125.740878] shrink_slab+0x228/0x2c0 <4> [125.740886] shrink_node+0x167/0x450 <4> [125.740894] do_try_to_free_pages+0xc4/0x340 <4> [125.740902] try_to_free_pages+0xdc/0x2e0 <4> [125.740911] __alloc_pages_nodemask+0x662/0x1110 <4> [125.740921] ? reacquire_held_locks+0xb5/0x1b0 <4> [125.740928] ? reacquire_held_locks+0xb5/0x1b0 <4> [125.740986] ? i915_reset_trylock+0x192/0x310 [i915] <4> [125.741045] ? i915_memcpy_init_early+0x30/0x30 [i915] <4> [125.741054] pte_alloc_one+0x12/0x70 <4> [125.741060] __pte_alloc+0x11/0xf0 <4> [125.741067] apply_to_page_range+0x37e/0x440 <4> [125.741127] remap_io_mapping+0x6c/0x100 [i915] <4> [125.741196] i915_gem_fault+0x5a9/0x860 [i915] <4> [125.741204] ? ptlock_alloc+0x15/0x30 <4> [125.741212] __do_fault+0x2c/0xb0 <4> [125.741218] __handle_mm_fault+0x8ee/0xfa0 <4> [125.741227] handle_mm_fault+0x196/0x3a0 <4> [125.741235] __do_page_fault+0x246/0x500 <4> [125.741243] ? page_fault+0x8/0x30 <4> [125.741250] page_fault+0x1e/0x30 <4> [125.741256] RIP: 0033:0x55d0cc456e12 <4> [125.741264] Code: b0 df ff ff 89 c2 8b 85 70 df ff ff 01 c2 8b 85 70 df ff ff 48 98 48 8d 0c 85 00 00 00 00 48 8b 85 e0 df ff ff 48 01 c8 f7 d2 <89> 10 83 85 70 df ff ff 01 81 bd 70 df ff ff ff 03 00 00 7e be 48 <4> [125.741280] RSP: 002b:00007ffc1bab7ab0 EFLAGS: 00010206 <4> [125.741287] RAX: 00007fc787cb6000 RBX: 0000000000000000 RCX: 0000000000000000 <4> [125.741295] RDX: 00000000ffffffff RSI: 0000000000005401 RDI: 0000000000000002 <4> [125.741303] RBP: 00007ffc1bab9b70 R08: 00007ffc1bab7920 R09: 000000000000001b <4> [125.741310] R10: 7165722074736554 R11: 0000000000000246 R12: 000055d0cc454a80 <4> [125.741318] R13: 00007ffc1bab9f60 R14: 0000000000000000 R15: 0000000000000000 Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109665 Signed-off-by: Chris Wilson Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190219122215.8941-4-chris@chris-wilson.co.uk commit c41166f9a145f1c4ce2961b338f9b57495ace4b5 Author: Chris Wilson Date: Wed Feb 20 14:56:37 2019 +0000 drm/i915: Beware temporary wedging when determining -EIO At a few points in our uABI, we check to see if the driver is wedged and report -EIO back to the user in that case. However, as we perform the check and reset asynchronously (where once before they were both serialised by the struct_mutex), we may instead see the temporary wedging used to cancel inflight rendering to avoid a deadlock during reset (caused by either us timing out in our reset handler, i915_wedge_on_timeout or with malice aforethought in intel_reset_prepare for a stuck modeset). If we suspect this is the case, that is we see a wedged driver *and* reset in progress, then wait until the reset is resolved before reporting upon the wedged status. v2: might_sleep() (Mika) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109580 Signed-off-by: Chris Wilson Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190220145637.23503-1-chris@chris-wilson.co.uk commit 913b2cb727b7a47ccf8842d54c89f1b873c6deed Author: Michael D Labriola Date: Tue Feb 19 18:08:12 2019 -0500 drm: change func to better detect wether swiotlb is needed This commit fixes DRM failures on Xen PV systems that were introduced in v4.17 by the following commits: 82626363 drm: add func to get max iomem address v2 fd5fd480 drm/amdgpu: only enable swiotlb alloc when need v2 1bc3d3cc drm/radeon: only enable swiotlb path when need v2 The introduction of ->need_swiotlb to the ttm_dma_populate() conditionals in the radeon and amdgpu device drivers causes Gnome to immediately crash on Xen PV systems, returning the user to the login screen. The following kernel errors get logged: [ 28.554259] radeon_dp_aux_transfer_native: 200 callbacks suppressed [ 31.219821] radeon 0000:01:00.0: swiotlb buffer is full (sz: 2097152 bytes) [ 31.220030] [drm:radeon_gem_object_create [radeon]] *ERROR* Failed to allocate GEM object (16384000, 2, 4096, -14) [ 31.226109] radeon 0000:01:00.0: swiotlb buffer is full (sz: 2097152 bytes) [ 31.226300] [drm:radeon_gem_object_create [radeon]] *ERROR* Failed to allocate GEM object (16384000, 2, 4096, -14) [ 31.300734] gnome-shell[1935]: segfault at 88 ip 00007f39151cd904 sp 00007ffc97611ad8 error 4 in libmutter-cogl.so[7f3915178000+aa000] [ 31.300745] Code: 5f c3 0f 1f 40 00 48 8b 47 78 48 8b 40 40 ff e0 66 0f 1f 44 00 00 48 8b 47 78 48 8b 40 48 ff e0 66 0f 1f 44 00 00 48 8b 47 78 <48> 8b 80 88 00 00 00 ff e0 0f 1f 00 48 8b 47 78 48 8b 40 68 ff e0 [ 38.193302] radeon_dp_aux_transfer_native: 116 callbacks suppressed [ 40.009317] radeon 0000:01:00.0: swiotlb buffer is full (sz: 2097152 bytes) [ 40.009488] [drm:radeon_gem_object_create [radeon]] *ERROR* Failed to allocate GEM object (16384000, 2, 4096, -14) [ 40.015114] radeon 0000:01:00.0: swiotlb buffer is full (sz: 2097152 bytes) [ 40.015297] [drm:radeon_gem_object_create [radeon]] *ERROR* Failed to allocate GEM object (16384000, 2, 4096, -14) [ 40.028302] gnome-shell[2431]: segfault at 2dadf40 ip 0000000002dadf40 sp 00007ffcd24ea5f8 error 15 [ 40.028306] Code: 20 6e 31 00 00 00 00 00 00 00 00 37 e3 3d 2d 7f 00 00 80 f4 e6 3d 2d 7f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 <00> 00 00 00 00 00 00 00 c1 00 00 00 00 00 00 00 80 e1 d2 03 00 00 This commit renames drm_get_max_iomem() to drm_need_swiotlb(), adds a xen_pv_domain() check to it, and moves the bit shifting comparison that always follows its usage into the function (simplifying the drm driver code). Signed-off-by: Michael D Labriola Reviewed-by: Christian König Signed-off-by: Christian König Link: https://patchwork.freedesktop.org/patch/286987/ commit 47ed55a9bb9e284d46d6f2489e32a53b59152809 Author: Joonas Lahtinen Date: Wed Feb 20 12:05:46 2019 +0200 drm/i915: Update DRIVER_DATE to 20190220 Signed-off-by: Joonas Lahtinen commit b08e776c223c5faa2f2768d5e597cf6549445593 Merge: d0781a89c06f 35c0272502cc Author: Joonas Lahtinen Date: Wed Feb 20 11:27:15 2019 +0200 Merge tag 'topic/mei-hdcp-2019-02-19' of git://anongit.freedesktop.org/drm/drm-intel into drm-intel-next-queued Prep patches + headers for the mei-hdcp/i915 component interfaces Also contains the prep work in the component helpers plus adjustements for the snd-hda/i915 component interface. Plus one small static inline in the drm_hdcp.h header that both i915 and mei_hdcp will need. Signed-off-by: Joonas Lahtinen From: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190219071619.GA11016@phenom.ffwll.local commit ed47c5cb8ee638b1c60fbb65c82c8784bf68539d Author: Zhao Yakui Date: Wed Feb 20 12:07:45 2019 +0800 drm/i915/gvt: Refine the combined intel_vgpu_oos_page struct to save memory The intel_vgpu_oos_page uses the combined structure, which embeds the tracked page. As it is allocated by kmalloc, the size(4140) is aligned to 8192. The 8192 oos_pages will waste about 32M memory. So the tracked page is split from the intel_vgpu_oos_page. And this will help to assure that the access of tracked page is cache aligned. Another minor change is that it doesn't need to be cleared to zero as it is writen firstly when one page is added to oos_page list. Signed-off-by: Zhao Yakui Reviewed-by: Zhenyu Wang Signed-off-by: Zhenyu Wang commit f74a6d9a2c427b6656bc93eacfa6d329ba54d611 Author: Zhao Yakui Date: Wed Feb 20 12:07:44 2019 +0800 drm/i915/gvt: Refine the snapshort range of I915 MCHBAR to optimize gvt-g boot time Currently it will take the snapshot of the MCHBAR registers for gvt-g initialization so that it can be used for guest vgpu. And it will cover from 0x140000 to 0x17ffff. In fact based on the HW spec most of them are meanlingless and some time is wasted to read these register. Only the range of 0x144000 to 0x147fff contains the valid definition. So the range of capturing I915 MCHBAR register is refined, which helps to optimize the gvt-g boot time. V1->V2: Move the register definition into reg.h Signed-off-by: Zhao Yakui Acked-by: Zhenyu Wang Signed-off-by: Zhenyu Wang commit d0781a89c06f46d0f75e4e142061b8accb67cbe5 Merge: 7f4127c4839b a5f2fafece14 Author: Joonas Lahtinen Date: Wed Feb 20 11:04:08 2019 +0200 Merge drm/drm-next into drm-intel-next-queued Doing a backmerge to be able to merge topic/mei-hdcp-2019-02-19 PR. Signed-off-by: Joonas Lahtinen commit 2f146b78d5a9cc032e1376ba3c35e8aed11f615b Author: Uma Shankar Date: Tue Feb 19 22:43:01 2019 +0530 drm/i915: Attach colorspace property and enable modeset This patch attaches the colorspace connector property to the hdmi connector. Based on colorspace change, modeset will be triggered to switch to new colorspace. Based on colorspace property value create an infoframe with appropriate colorspace. This can be used to send an infoframe packet with proper colorspace value set which will help to enable wider color gamut like BT2020 on sink. This patch attaches and enables HDMI colorspace, DP will be taken care separately. v2: Merged the changes of creating infoframe as well to this patch as per Maarten's suggestion. v3: Addressed review comments from Shashank. Separated HDMI and DP colorspaces as suggested by Ville and Maarten. v4: Addressed Chris and Ville's review comments, and created a common colorspace property for DP and HDMI, filtered the list based on the colorspaces supported by the respective protocol standard. Handle the default case properly. v5: Merged the DP handling along with platform colorspace handling as per Shashank's comments. v6: Reverted to old design of exposing all colorspaces to userspace as per Ville's review comment v7: Fixed a checkpatch complaint, Addressed Maarten' review comment, updated the RB from Maarten and Jani's ack. v8: Moved colorspace AVI Infoframe programming to drm core and removed from driver as per Ville's suggestion. v9: Added a check to only allow RGB colorpsaces to be set in infoframe though the colorspace property. Since there is no output csc property to control planar formats and it will be added later. Changes for RGB->YUV conversion inside driver without userspace knowledge is still supported. This is as per Ville's suggestion. v10: Fixed an error in if check. v11: Dropped the check for planar vs RGB and allow all the colorspaces. Onus will be on userspace to pick whatever pipe output it is able to drive. v12: Added Ville's RB. Signed-off-by: Uma Shankar Acked-by: Jani Nikula Reviewed-by: Maarten Lankhorst Reviewed-by: Ville Syrjälä Signed-off-by: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/1550596381-993-4-git-send-email-uma.shankar@intel.com commit 0d68b8876e013dd222c0af1e5adc41a1e33b7b18 Author: Uma Shankar Date: Tue Feb 19 22:43:00 2019 +0530 drm: Add colorspace info to AVI Infoframe This adds colorspace information to HDMI AVI infoframe. A helper function is added to program the same. v2: Moved this to drm core instead of i915 driver. v3: Exported the helper function. v4: Added separate HDMI specific macro as per CTA spec. This is separate from user exposed enum values. This is as per Ville's suggestion. v5: Appended BT709 and SMPTE 170M with YCC information as per Ville's review comment to be clear and not to be confused with RGB. v6: Added bit wise macro for various fields of colorimetry for easier understanding and review as per Ville's comments. Moved the same out of header file to avoid any namespace issues. v7: Undef some macros to avoid any namespace collision as suggested by Ville. Added Ville's RB. Signed-off-by: Uma Shankar Reviewed-by: Ville Syrjälä Signed-off-by: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/1550596381-993-3-git-send-email-uma.shankar@intel.com commit d2c6a405846c24439f85c7a8da21545f12874638 Author: Uma Shankar Date: Tue Feb 19 22:42:59 2019 +0530 drm: Add HDMI colorspace property Create a new connector property to program colorspace to sink devices. Modern sink devices support more than 1 type of colorspace like 601, 709, BT2020 etc. This helps to switch based on content type which is to be displayed. The decision lies with compositors as to in which scenarios, a particular colorspace will be picked. This will be helpful mostly to switch to higher gamut colorspaces like BT2020 when the media content is encoded as BT2020. Thereby giving a good visual experience to users. The expectation from userspace is that it should parse the EDID and get supported colorspaces. Use this property and switch to the one supported. Sink supported colorspaces should be retrieved by userspace from EDID and driver will not explicitly expose them. Basically the expectation from userspace is: - Set up CRTC DEGAMMA/CTM/GAMMA to convert to some sink colorspace - Set this new property to let the sink know what it converted the CRTC output to. v2: Addressed Maarten and Ville's review comments. Enhanced the colorspace enum to incorporate both HDMI and DP supported colorspaces. Also, added a default option for colorspace. v3: Removed Adobe references from enum definitions as per Ville, Hans Verkuil and Jonas Karlman suggestions. Changed Default to an unset state where driver will assign the colorspace is not chosen by user, suggested by Ville and Maarten. Addressed other misc review comments from Maarten. Split the changes to have separate colorspace property for DP and HDMI. v4: Addressed Chris and Ville's review comments, and created a common colorspace property for DP and HDMI, filtered the list based on the colorspaces supported by the respective protocol standard. v5: Made the property creation helper accept enum list based on platform capabilties as suggested by Shashank. Consolidated HDMI and DP property creation in the common helper. v6: Addressed Shashank's review comments. v7: Added defines instead of enum in uapi as per Brian Starkey's suggestion in order to go with string matching at userspace. Updated the commit message to add more details as well kernel docs. v8: Addressed Maarten's review comments. v9: Removed macro defines from uapi as per Brian Starkey and Daniel Stone's comments and moved to drm include file. Moved back to older design with exposing all HDMI colorspaces to userspace since infoframe capability is there even on legacy platforms, as per Ville's review comments. v10: Fixed sparse warnings, updated the RB from Maarten and Jani's ack. v11: Addressed Ville's review comments. Updated the Macro naming and added DCI-P3 colorspace as well, defined in CTA 861.G spec. v12: Appended BT709 and SMPTE 170M with YCC information as per Ville's review comment to be clear and not to be confused with RGB. v13: Reorder the colorspace macros. v14: Removed DP as of now, will be added later once full support is enabled, as per Ville's suggestion. Added Ville's RB. Signed-off-by: Uma Shankar Acked-by: Jani Nikula Reviewed-by: Shashank Sharma Reviewed-by: Maarten Lankhorst Reviewed-by: Ville Syrjälä Signed-off-by: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/1550596381-993-2-git-send-email-uma.shankar@intel.com commit 7f4127c4839b1801087e08b1797e830a766391c1 Author: Chris Wilson Date: Tue Feb 19 12:21:52 2019 +0000 drm/i915: Use time based guilty context banning Currently, we accumulate each time a context hangs the GPU, offset against the number of requests it submits, and if that score exceeds a certain threshold, we ban that context from submitting any more requests (cancelling any work in flight). In contrast, we use a simple timer on the file, that if we see more than a 9 hangs faster than 60s apart in total across all of its contexts, we will ban the client from creating any more contexts. This leads to a confusing situation where the file may be banned before the context, so lets use a simple timer scheme for each. If the context submits 3 hanging requests within a 120s period, declare it forbidden to ever send more requests. This has the advantage of not being easy to repair by simply sending empty requests, but has the disadvantage that if the context is idle then it is forgiven. However, if the context is idle, it is not disrupting the system, but a hog can evade the request counting and cause much more severe disruption to the system. Updating ban_score from request retirement is dubious as the retirement is purposely not in sync with request submission (i.e. we try and batch retirement to reduce overhead and avoid latency on submission), which leads to surprising situations where we can forgive a hang immediately due to a backlog of requests from before the hang being retired afterwards. Signed-off-by: Chris Wilson Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190219122215.8941-2-chris@chris-wilson.co.uk commit 8f54b3c6c921275d10e33746553c40294ffa0d58 Author: Chris Wilson Date: Tue Feb 19 12:21:57 2019 +0000 drm/i915: Trim delays for wedging CI still reports the occasional multi-second delay for resets, in particular along the wedge+recovery paths. As the likely, and unbounded, delay here is from sync_rcu, use the expedited variant instead. Testcase: igt/gem_eio/unwedge-stress Signed-off-by: Chris Wilson Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190219122215.8941-7-chris@chris-wilson.co.uk commit 370d757da92f051e954e7743152e8e6c90046354 Author: Chris Wilson Date: Tue Feb 19 12:21:51 2019 +0000 drm/i915: Move verify_wm_state() to heap The stack usage exceeded 1024 bytes prompting warnings on conservative setups, so move the temporary allocation for HW readback onto the heap. Signed-off-by: Chris Wilson Cc: Ville Syrjälä Reviewed-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190219122215.8941-1-chris@chris-wilson.co.uk commit 86ab67dfcfc5a2e2ee9c6bce08909add48477952 Author: Daniel Vetter Date: Tue Feb 12 17:46:15 2019 +0100 drm/doc: document recommended component helper usage Now that component has docs it's worth spending a few words and hyperlinks on recommended best practices in drm. v2: Add another item that component shouldn't be preferred over drm_bridge/panel and similar subsystems already providing specialized support for specific components (Laurent). Also convert to bullet list. Cc: Laurent Pinchart Cc: Russell King - ARM Linux admin Reviewed-by: Maxime Ripard Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190212164615.13370-1-daniel.vetter@ffwll.ch commit 58db702266c16b8df29115ec919d56c820545d8c Author: Gustavo A. R. Silva Date: Fri Feb 15 11:05:46 2019 -0600 drm/drm_vm: Mark expected switch fall-throughs In preparation to enabling -Wimplicit-fallthrough, mark switch cases where we are expecting to fall through. Warning level 3 was used: -Wimplicit-fallthrough=3 Notice that, in this particular case, the code comment is modified in accordance with what GCC is expecting to find. This patch is part of the ongoing efforts to enable -Wimplicit-fallthrough. Signed-off-by: Gustavo A. R. Silva Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190215170546.GA30950@embeddedor commit e179d8e074e05a913a0915ae3c4b82f1434d9f4e Merge: ae6ba10d5090 8857c7d065e9 Author: Maxime Ripard Date: Tue Feb 19 11:17:37 2019 +0100 Merge tag 'topic/component-typed-2019-02-11' of git://anongit.freedesktop.org/drm/drm-intel into drm-misc-next typed componented support + i915/snd-hda changes This is needed by the new MEI-HDCP support in i915, so will need to go in through drm and drivers-misc trees at least. Signed-off-by: Maxime Ripard # gpg: Signature made Mon 11 Feb 2019 06:06:26 PM CET # gpg: using RSA key 6F89C6EA32EEF18E5723E3DF4C0F727BF098AA71 # gpg: Can't check signature: No public key From: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/CAKMK7uHU37VLbe4RBZ3GOow+=pupYAHotkVrpqJeiUcpSfjX8Q@mail.gmail.com commit ae6ba10d5090fc7e9095eaef3dcf06ba016725a6 Merge: e6049cf122d1 c06de56121e3 Author: Maxime Ripard Date: Tue Feb 19 11:17:05 2019 +0100 Merge drm/drm-next into drm-misc-next Backmerge drm-next to bring in -rc7 Signed-off-by: Maxime Ripard commit e6049cf122d1568d8000c7f5bd52c99de07ecc65 Author: YueHaibing Date: Fri Feb 15 03:35:07 2019 +0000 drm: Remove set but not used variable 'gem' Fixes gcc '-Wunused-but-set-variable' warning: drivers/gpu/drm/vc4/vc4_txp.c: In function 'vc4_txp_connector_atomic_check': drivers/gpu/drm/vc4/vc4_txp.c:252:29: warning: variable 'gem' set but not used [-Wunused-but-set-variable] struct drm_gem_cma_object *gem; ^ Signed-off-by: YueHaibing Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190215033507.103232-1-yuehaibing@huawei.com Signed-off-by: Maxime Ripard commit 1220935be2bb62b3aef6740f29e954bbad9b1845 Author: Rob Herring Date: Wed Dec 5 13:50:23 2018 -0600 drm: imx: Use of_node_name_eq for node name comparisons Convert string compares of DT node names to use of_node_name_eq helper instead. This removes direct access to the node name pointer. For instances using of_node_cmp, this has the side effect of now using case sensitive comparisons. This should not matter for any FDT based system which this is. Cc: Philipp Zabel Cc: David Airlie Cc: dri-devel@lists.freedesktop.org Signed-off-by: Rob Herring Acked-by: Philipp Zabel Link: https://patchwork.freedesktop.org/patch/msgid/20181205195050.4759-7-robh@kernel.org Signed-off-by: Maxime Ripard commit bd7de1e8d96c1469c0de292c3e03803c956fc58e Author: Rob Herring Date: Sat Feb 2 09:41:58 2019 -0600 drm: vc4: Switch to use drm_gem_object reservation_object Now that the base struct drm_gem_object has a reservation_object, use it and remove the private BO one. Cc: David Airlie Cc: Daniel Vetter Cc: dri-devel@lists.freedesktop.org Reviewed-by: Eric Anholt Acked-by: Daniel Vetter Signed-off-by: Rob Herring Link: https://patchwork.freedesktop.org/patch/msgid/20190202154158.10443-6-robh@kernel.org Signed-off-by: Maxime Ripard commit 8d668309769dbb20942bdfa04b0e66ea8c84e720 Author: Rob Herring Date: Sat Feb 2 09:41:57 2019 -0600 drm: v3d: Switch to use drm_gem_object reservation_object Now that the base struct drm_gem_object has a reservation_object, use it and remove the private BO one. Cc: Eric Anholt Cc: Daniel Vetter Cc: David Airlie Cc: dri-devel@lists.freedesktop.org Signed-off-by: Rob Herring Acked-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/20190202154158.10443-5-robh@kernel.org Signed-off-by: Maxime Ripard commit dd55cf6929e61922961b8515e73dc4d8443089d2 Author: Rob Herring Date: Sat Feb 2 09:41:56 2019 -0600 drm: msm: Switch to use drm_gem_object reservation_object Now that the base struct drm_gem_object has a reservation_object, use it and remove the private BO one. We can't use the drm_gem_reservation_object_wait() helper for MSM because (in theory) msm_gem_cpu_prep() will also do some cache maintenance on the GEM object. Cc: David Airlie Cc: linux-arm-msm@vger.kernel.org Cc: dri-devel@lists.freedesktop.org Cc: freedreno@lists.freedesktop.org Signed-off-by: Rob Herring Acked-by: Daniel Vetter Acked-by: Rob Clark Link: https://patchwork.freedesktop.org/patch/msgid/20190202154158.10443-4-robh@kernel.org Signed-off-by: Maxime Ripard commit fa238ea1668e25e0614ae0f37a04cbceb993a0a4 Author: Rob Herring Date: Sat Feb 2 09:41:55 2019 -0600 drm: etnaviv: Switch to use drm_gem_object reservation_object Now that the base struct drm_gem_object has a reservation_object, use it and remove the private BO one. Cc: Lucas Stach Cc: Russell King Cc: Christian Gmeiner Cc: David Airlie Cc: Daniel Vetter Cc: etnaviv@lists.freedesktop.org Signed-off-by: Rob Herring Acked-by: Daniel Vetter Reviewed-by: Christian Gmeiner Link: https://patchwork.freedesktop.org/patch/msgid/20190202154158.10443-3-robh@kernel.org Signed-off-by: Maxime Ripard commit 1ba627148ef5d9dee879585687c4b0ee644f7ab5 Author: Rob Herring Date: Sat Feb 2 09:41:54 2019 -0600 drm: Add reservation_object to drm_gem_object Many users of drm_gem_object embed a struct reservation_object into their subclassed struct, so let's add one to struct drm_gem_object. This will allow removing the reservation object from the subclasses and removing the ->gem_prime_res_obj callback. With the addition, add a drm_gem_reservation_object_wait() helper function for drivers to use in wait ioctls. Cc: Maarten Lankhorst Cc: Maxime Ripard Cc: Sean Paul Cc: David Airlie Cc: Daniel Vetter Signed-off-by: Rob Herring Acked-by: Daniel Vetter Reviewed-by: Eric Anholt Reviewed-by: Christian Gmeiner Link: https://patchwork.freedesktop.org/patch/msgid/20190202154158.10443-2-robh@kernel.org Signed-off-by: Maxime Ripard commit 1c1a7aa3663c69799efd22962e95d13bea71c293 Author: Konstantin Sudakov Date: Mon Feb 11 15:41:28 2019 +0100 drm/sun4i: dsi: Add burst support The current driver doesn't support the DSI burst operation mode. Let's add the needed quirks to make it work. Signed-off-by: Konstantin Sudakov Signed-off-by: Maxime Ripard Reviewed-by: Paul Kocialkowski Link: https://patchwork.freedesktop.org/patch/msgid/1dcabf2b38d3f0d3387b1cf02575e3d14e3ecd4e.1549896081.git-series.maxime.ripard@bootlin.com commit 62e7511a4f4dcf07f753893d3424decd9466c98b Author: Maxime Ripard Date: Mon Feb 11 15:41:27 2019 +0100 drm/sun4i: dsi: Rework a bit the hblk calculation It turns out that the hblk calculation actually follows a similar pattern than the other packets. Rework a bit the calculation and add a comment. Signed-off-by: Maxime Ripard Reviewed-by: Paul Kocialkowski Link: https://patchwork.freedesktop.org/patch/msgid/d79a21b09847579ce907212a59737af21a729dd0.1549896081.git-series.maxime.ripard@bootlin.com commit 2cfdc24d2f8d9b14704567c065beb2a118a578fa Author: Maxime Ripard Date: Mon Feb 11 15:41:25 2019 +0100 drm/sun4i: dsi: Fix front vs back porch calculation Since I always confuse the back and front porches, a few miscalculation slipped through. Fix them. Signed-off-by: Maxime Ripard Reviewed-by: Paul Kocialkowski Link: https://patchwork.freedesktop.org/patch/msgid/90c2375b8a853cae0dcc135cedb47edbc26168d8.1549896081.git-series.maxime.ripard@bootlin.com commit efa31801203ac2f5c6a82a28cb991c7163ee0f1d Author: Maxime Ripard Date: Mon Feb 11 15:41:24 2019 +0100 drm/sun4i: dsi: Enforce boundaries on the start delay The Allwinner BSP makes sure that we don't end up with a null start delay or with a delay larger than vtotal. The former condition is likely to happen now with the reworked start delay, so make sure we enforce the same boundaries. Signed-off-by: Maxime Ripard Reviewed-by: Paul Kocialkowski Link: https://patchwork.freedesktop.org/patch/msgid/c9889cf5f7a3d101ef380905900b45a182596f56.1549896081.git-series.maxime.ripard@bootlin.com commit da676c6aa6413d59ab0a80c97bbc273025e640b2 Author: Maxime Ripard Date: Mon Feb 11 15:41:23 2019 +0100 drm/sun4i: dsi: Change the start delay calculation The current calculation for the video start delay in the current DSI driver is that it is the total vertical size, minus the front porch and sync length, plus 1. This equals to the active vertical size plus the back porch plus 1. That 1 is coming in the Allwinner BSP from an variable that is set to 1. However, if we look at the Allwinner BSP more closely, and especially in the "legacy" code for the display (in drivers/video/sunxi/legacy/), we can see that this variable is actually computed from the porches and the sync minus 10, clamped between 8 and 100. This fixes the start delay symptom we've seen on some panels (vblank timeouts with vertical white stripes at the bottom of the panel). Reviewed-by: Paul Kocialkowski Signed-off-by: Maxime Ripard Link: https://patchwork.freedesktop.org/patch/msgid/6e5f72e68f47ca0223877464bf12f0c3f3978de8.1549896081.git-series.maxime.ripard@bootlin.com commit 85fb352666732a9e5caf6027b9c253b3d7881d8f Author: Maxime Ripard Date: Mon Feb 11 15:41:22 2019 +0100 drm/sun4i: dsi: Restrict DSI tcon clock divider The current code allows the TCON clock divider to have a range between 4 and 127 when feeding the DSI controller. The only display supported so far had a display clock rate that ended up using a divider of 4, but testing with other displays show that only 4 seems to be functional. This also aligns with what Allwinner is doing in their BSP, so let's just hardcode that we want a divider of 4 when using the DSI output. Reviewed-by: Paul Kocialkowski Signed-off-by: Maxime Ripard Link: https://patchwork.freedesktop.org/patch/msgid/074e88ae472f5e0492e26939c74b44fb4125ffbd.1549896081.git-series.maxime.ripard@bootlin.com commit fd347df16d4ed2eef565344b8f16a1134bddf185 Author: Eric Anholt Date: Thu Feb 7 12:09:58 2019 -0800 drm/v3d: Update top-level kerneldoc for the addition of TFU. Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190207201001.5730-1-eric@anholt.net Reviewed-by: Thomas Spurden Signed-off-by: Maxime Ripard commit cc3f60cfd4f2752f1bad7eaa3839855c15347abc Author: Eric Anholt Date: Thu Feb 7 15:26:13 2019 -0800 drm/v3d: Fix BO stats accounting for dma-buf-imported buffers. We always decrement at GEM free, so make sure we increment at GEM creation for dma-bufs. Signed-off-by: Eric Anholt Link: https://patchwork.freedesktop.org/patch/msgid/20190207232613.24981-1-eric@anholt.net Reviewed-by: Daniel Vetter Signed-off-by: Maxime Ripard commit be03564bd7b60b119aac60443b3602bac38d6405 Author: Chris Wilson Date: Mon Feb 18 09:46:28 2019 +0000 drm/i915: Include reminders about leaving no holes in uAPI enums We don't want to pre-reserve any holes in our uAPI for that is a sign of nefarious and hidden activity. Add a reminder about our uAPI expectations to encourage good practice when adding new defines/enums. Signed-off-by: Chris Wilson Cc: Joonas Lahtinen Cc: Jani Nikula Reviewed-by: Joonas Lahtinen Link: https://patchwork.freedesktop.org/patch/msgid/20190218094628.13522-1-chris@chris-wilson.co.uk commit 156b16f9b995cba65473889a244aa13da4ad66d1 Author: Chris Wilson Date: Mon Feb 18 15:31:06 2019 +0000 drm/i915: Restore interrupt enabling after a reset At least on i965g and i965gm, performing a device reset clobbers the IER resulting in loss of interrupts thereafter. So, run the irq_postinstall hook to restore them. v2: Ville pointed out that he already attempted to solve this problem by reinstalling the interrupts in intel_reset_finish() (part of the display handling around reset). However, reinstalling the irq clobbers the i915->irq_mask which we need for handling MI_USER_INTERRUPTS, and does so too late to handle any interrupts generated from resuming the rings. The simple solution to both is to pull the interrupt reenabling from afterwards to around the device reset. Signed-off-by: Chris Wilson Cc: Ville Syrjälä Reviewed-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190218153106.16768-1-chris@chris-wilson.co.uk commit e4106dae0f354d7d57afed285fdf8cf7bcb8369e Author: Chris Wilson Date: Mon Feb 18 14:50:50 2019 +0000 drm/i915/selftests: Make unbannable contexts for reset handling igt_ctx_sseu was caught using bannable contexts, and in the course of resetting rapidly to run its test, was banned. Don't let ourselves ban the test! Signed-off-by: Chris Wilson Cc: Mika Kuoppala Cc: Tvrtko Ursulin Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190218145051.18981-1-chris@chris-wilson.co.uk commit ba4fda620a5f7db521aa9e0262cf49854c1b1d9c Author: Chris Wilson Date: Mon Feb 18 10:58:21 2019 +0000 drm/i915: Optionally disable automatic recovery after a GPU reset Some clients, such as mesa, may only emit minimal incremental batches that rely on the logical context state from previous batches. They know that recovery is impossible after a hang as their required GPU state is lost, and that each in flight and subsequent batch will hang (resetting the context image back to default perpetuating the problem). To avoid getting into the state in the first place, we can allow clients to opt out of automatic recovery and elect to ban any guilty context following a hang. This prevents the continual stream of hangs and allows the client to recreate their context and rebuild the state from scratch. v2: Prefer calling it recoverable rather than unrecoverable. References: https://lists.freedesktop.org/archives/mesa-dev/2019-February/215431.html Signed-off-by: Chris Wilson Cc: Kenneth Graunke Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Acked-by: Kenneth Graunke # for mesa Link: https://patchwork.freedesktop.org/patch/msgid/20190218105821.17293-1-chris@chris-wilson.co.uk commit 2c7f9a4df9def07867087a520bc32169e2eec9f8 Author: Colin Xu Date: Thu Feb 14 12:56:33 2019 +0800 drm/i915/gvt: Use consist max display pipe numbers as i915 definition GVT implements a homogeneous vGPU as host GPU so max vGPU display pipes can't exceed HW. The inconsistency definition has potential risks which could cause array indexing overflow. Remove the unnecessary define of INTEL_GVT_MAX_PIPE and align with i915. Reviewed-by: Zhenyu Wang Signed-off-by: Colin Xu Signed-off-by: Zhenyu Wang commit 83e3a21530d60e1c16afe6de5b8bc56e4f672b75 Author: Chris Wilson Date: Sun Feb 17 20:25:18 2019 +0000 drm/i915/selftests: Move local mock_ggtt allocations to the heap This struct appears quite large and pushes our stack frame over 1024 bytes -- too high for conservative setups. So move the mock_ggtt struct to the heap. Signed-off-by: Chris Wilson Cc: Matthew Auld Reviewed-by: Matthew Auld Link: https://patchwork.freedesktop.org/patch/msgid/20190217202518.24730-1-chris@chris-wilson.co.uk commit 2a4a2754039594c60b58b02b6781428a85f6d745 Author: Chris Wilson Date: Fri Feb 15 19:50:10 2019 +0000 drm/i915/selftests: Always free spinner on __sseu_prepare error Prepare a nice little onion unwind to ensure that we always free the spinner if we __sseu_prepare fails. Fixes: c06ee6ff2cbc ("drm/i915/selftests: Context SSEU reconfiguration tests") Reported-by: Radhakrishna Sripada Signed-off-by: Chris Wilson Cc: Radhakrishna Sripada Cc: Tvrtko Ursulin Cc: Joonas Lahtinen Link: https://patchwork.freedesktop.org/patch/msgid/20190215195010.16637-1-chris@chris-wilson.co.uk Reviewed-by: Radhakrishna Sripada commit d9b308b1f8a1acc0c3279f443d4fe0f9f663252e Author: Chris Wilson Date: Fri Feb 15 12:30:19 2019 +0000 drm/i915/fbdev: Actually configure untiled displays If we skipped all the connectors that were not part of a tile, we would leave conn_seq=0 and conn_configured=0, convincing ourselves that we had stagnated in our configuration attempts. Avoid this situation by starting conn_seq=ALL_CONNECTORS, and repeating until we find no more connectors to configure. Fixes: 754a76591b12 ("drm/i915/fbdev: Stop repeating tile configuration on stagnation") Reported-by: Maarten Lankhorst Signed-off-by: Chris Wilson Cc: Maarten Lankhorst Reviewed-by: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/20190215123019.32283-1-chris@chris-wilson.co.uk Cc: # v3.19+ commit c48b86f90edd9e6550e001959d9ce7a7fe1477d6 Author: Ville Syrjälä Date: Wed Feb 6 22:49:10 2019 +0200 drm/i915: Wrap plane update/disable hook calls Wrap the .update_plane()/.update_slave()/.disable_plane() vfunc calls into helpers which also take care to emit the appropriate tracepoint. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190206204910.13965-4-ville.syrjala@linux.intel.com Reviewed-by: Rodrigo Vivi commit d64e6078a18418fcbb2b700a360febd5b0547ce4 Author: Ville Syrjälä Date: Wed Feb 6 22:49:09 2019 +0200 drm/i915: Add overlooked plane disable tracepoint into intel_crtc_disable_planes() intel_crtc_disable_planes() disables the planes so it should trigger the appropriate tracepoint. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190206204910.13965-3-ville.syrjala@linux.intel.com Reviewed-by: Rodrigo Vivi commit 0b2599a43ca9ba63e4e213c2ae90d382d0b2340f Author: Ville Syrjälä Date: Wed Feb 6 22:49:08 2019 +0200 drm/i915: Add pipe enable/disable tracepoints Add tracepoints for pipe enable/disable. We'll include the frame/scanline counters for all pipes in these tracepoints to help in diagnosing underruns and whatnot when enabling/disabling pipes in parallel with plane updates/flips on another pipe. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190206204910.13965-2-ville.syrjala@linux.intel.com Reviewed-by: Rodrigo Vivi commit 5cee6c458771ce7f52fcf9fad38c0604def7b8ca Author: Ville Syrjälä Date: Wed Feb 6 22:49:07 2019 +0200 drm/i915: Add pipe crc tracepoint Add a tracepoint for pipe crc. Makes life much simpler when staring at traces when hunting for fifo underruns and other issues which cause corrupted frames. We'll add the tracepoint before filtering out any potentially bogus crcs during modeset (should actually verify if that filtering is even correct anymore...) v2: s/crcs[5]/*crcs/ in the function argument because something in the macros wants to do sizeof(crcs) and gcc likes to warn us it's not an actual array so the size may not be as expected. The silly bugger even does that for 'crcs[]' causing us to lose any helpful syntactic hint that we are in fact dealing with an array (kbuild test robot) Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190206204910.13965-1-ville.syrjala@linux.intel.com Reviewed-by: Rodrigo Vivi commit 9095c86374db8a6b75e0e3398e7c1a9859d6b868 Author: Chris Wilson Date: Fri Feb 15 10:27:32 2019 +0000 drm/i915/selftests: Drop unnecessary struct_mutex around i915_reset() Since we no longer need to hold struct_mutex to perform a global device reset, don't do so for igt_reset_wedge(). Signed-off-by: Chris Wilson Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190215102732.15520-2-chris@chris-wilson.co.uk commit d9e61b66a5d305bbf052a70a853b3be680d911ba Author: Chris Wilson Date: Wed Feb 13 18:27:37 2019 +0000 drm/i915: Defer application of request banning to submission As we currently do not check on submission whether the context is banned in a timely manner it is possible for some requests to escape cancellation after their parent context is banned. By moving the ban into the request submission under the engine->timeline.lock, we serialise it with the reset and setting of the context ban. References: eb8d0f5af4ec ("drm/i915: Remove GPU reset dependence on struct_mutex") Signed-off-by: Chris Wilson Cc: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190213182737.12695-1-chris@chris-wilson.co.uk Reviewed-by: Mika Kuoppala commit c836eb79c033c2be13aa8b41729b28d2ab1f72ab Author: Chris Wilson Date: Wed Feb 13 22:48:05 2019 +0000 drm/i915/selftests: Always use an active engine while resetting Currently, we only try to reset a live engine for checking the whitelist retention across a per-engine reset. For safety, it appears we need to prime the system with a hanging spinner before performing a full-device reset. (Figuring out the root cause behind the instability with handling a reset during a no-op request is a challenge for another test, the whitelist test has its own purpose.) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109626 Signed-off-by: Chris Wilson Link: https://patchwork.freedesktop.org/patch/msgid/20190213224805.32021-1-chris@chris-wilson.co.uk Reviewed-by: Mika Kuoppala commit 9a3b19a16dc28ab717cf1663d09ffee0715b735a Author: Chris Wilson Date: Wed Feb 13 23:20:47 2019 +0000 drm/i915: Only try to park engines after a failed reset Currently we try to stop the engine by programming the ring registers to be disabled before we perform the reset. Sometimes, we see the context image also have invalid ring registers, which one presumes may be actually caused by us doing so. Lets risk not doing programming the ring to zero on the first attempt to avoid preserving that corruption into the context image, leaving the w/a in place for subsequent reset attempts. Signed-off-by: Chris Wilson Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190213232047.8486-1-chris@chris-wilson.co.uk commit d31c85fc864269ab8e6fb6ed36c87f2fc33a9430 Author: Chris Wilson Date: Wed Feb 13 15:21:09 2019 +0000 snd/hda, drm/i915: Track the display_power_status using a cookie drm/i915 is tracking all wakeref owners with a cookie in order to identify leaks. To that end, each rpm acquisition ops->get_power is assigned a cookie which should be passed to ops->put_power to signify its release (and removal from the list of wakeref owners). As snd/hda is already using a bool to track current status of display_power extending that to an unsigned long to hold the boolean cookie is a trivial extension, and will quell all doubt that snd/hda is the cause of the device runtime pm leaks. v2: Keep using the power abstraction for local wakeref tracking. v3: BUILD_BUG_ON impedance mismatch Signed-off-by: Chris Wilson Cc: Takashi Iwai Cc: Jani Nikula Acked-by: Takashi Iwai Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190213152109.16997-1-chris@chris-wilson.co.uk commit 290248c27c93ad70262b8112595b95ad9d867929 Author: Ville Syrjälä Date: Wed Feb 13 18:54:24 2019 +0200 drm/i915: Implement new w/a for underruns with wm1+ disabled The new workaround from the hw team involves leaving WM1 still disabled but programming the blocks value identically to WM0, and we also need to set the "ignore lines watermark" bit for WM1. v2: Fix commit message wording a bit Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190213165424.22904-3-ville.syrjala@linux.intel.com Reviewed-by: Clint Taylor commit 2ed8e1f560e517baca4763204edbf76255c8e54e Author: Ville Syrjälä Date: Wed Feb 13 18:54:23 2019 +0200 drm/i915: Include "ignore lines" in skl+ wm state We'll need to poke at the "ignore lines" bit in the skl+ watermark registers for a w/a. Include that bit in the wm state. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190213165424.22904-2-ville.syrjala@linux.intel.com Reviewed-by: Clint Taylor commit bfe0cd28518d3bd2a3d278dad5a6ed1c55a65f32 Author: Ville Syrjälä Date: Wed Feb 13 18:54:22 2019 +0200 Revert "drm/i915: W/A for underruns with WM1+ disabled on icl" This reverts commit bf002c100740f4ae01d0d86b44f65a712ee14031. The hw team has come up with a better workaround. So let's get rid of this one. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190213165424.22904-1-ville.syrjala@linux.intel.com Reviewed-by: Clint Taylor commit 58106b7d816e1ddd7828df4f48a3ffc3df12d615 Author: Aditya Swarup Date: Mon Jan 28 14:00:12 2019 -0800 drm/i915: Make MG PHY macros semantically consistent Organize MG PHY macro definitions semantically based on dword, lane and port (in this order). Cc: Clint Taylor Cc: Imre Deak Cc: Jani Nikula Signed-off-by: Aditya Swarup Reviewed-by: Manasi navare Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190128220012.13122-3-aditya.swarup@intel.com commit 9194e42a1837b2cbf80418d6fd98f00bf3852f5f Author: Aditya Swarup Date: Mon Jan 28 14:00:11 2019 -0800 drm/i915: Make combo PHY DDI macro definitions consistent for ICL and CNL Organize combo PHY DDI macro definitions semantically based on dword, lane and port (in this order). Cc: Clint Taylor Cc: Imre Deak Cc: Jani Nikula Signed-off-by: Aditya Swarup Reviewed-by: Manasi Navare Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190128220012.13122-2-aditya.swarup@intel.com commit 5e0b6697651b3e6f0dd31d1e320a1a29b787f1b7 Author: Ville Syrjälä Date: Thu Nov 29 19:55:04 2018 +0200 drm/i915: Assert that VED and ISP are power gated As there are no upstream drivers for VED or ISP let's just assert that they are power gated. Otherwise they would prevent s0ix entry. For ISP this is only relevant when it is not exposed as a PCI device and instead is a subordinate of the gunit. When exposed as a PCI device it will be handled by the atomisp2_pm driver. On my VLV FFRD8 board the firmware power gates both of these by default. Let's assume that is always the case and just WARN if we ever encounter something different. Cc: Hans de Goede Cc: Alan Cox Cc: Andy Shevchenko Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20181129175504.3630-2-ville.syrjala@linux.intel.com Reviewed-by: Imre Deak commit c11b813f53c98e35ed257621065d6905589f78b1 Author: Ville Syrjälä Date: Thu Nov 29 19:55:03 2018 +0200 drm/i915: s/PUNIT_REG_DSPFREQ/PUNIT_REG_DSPSSPM/ Rename the punit display power register to match the spec. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20181129175504.3630-1-ville.syrjala@linux.intel.com Reviewed-by: Imre Deak commit 62eb3c24b37cb5d1c9dbf65f619a02b24643b229 Author: Chris Wilson Date: Wed Feb 13 09:25:04 2019 +0000 drm/i915: Apply rps waitboosting for dma_fence_wait_timeout() As time goes by, usage of generic ioctls such as drm_syncobj and sync_file are on the increase bypassing i915-specific ioctls like GEM_WAIT. Currently, we only apply waitboosting to our driver ioctls as we track the file/client and account the waitboosting to them. However, since commit 7b92c1bd0540 ("drm/i915: Avoid keeping waitboost active for signaling threads"), we no longer have been applying the client ratelimiting on waitboosts and so that information has only been used for debug tracking. Push the application of waitboosting down to the common i915_request_wait, and apply it to all foreign fence waits as well. Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Cc: Eero Tamminen Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190213092504.25709-1-chris@chris-wilson.co.uk commit e6ed078d6ddd413751566a55e569106348725fdb Author: Uma Shankar Date: Mon Feb 11 19:20:25 2019 +0530 drm/i915/icl: Add degamma and gamma lut size to gen11 caps Add the degamma and gamma lut sizes to gen11 capability structure. Note: Currently this doesn't account for the extended range gamma entries and this will be addressed with new segmented gamma ABI in a future patch. v2: Reorder the patch as per Maarten's suggestion. v3: Rebase v4: Updated commit message with a note as per Matt's suggestion. v5: No Change. Signed-off-by: Uma Shankar Reviewed-by: Matt Roper Reviewed-by: Maarten Lankhorst Signed-off-by: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/1549893025-21837-6-git-send-email-uma.shankar@intel.com commit a91de580541c37dcd6a82091fdd2d36cca7cda77 Author: Uma Shankar Date: Mon Feb 11 19:20:24 2019 +0530 drm/i915/icl: Enable pipe output csc GEN11+ onwards an output csc hardware block has been added. This is after the pipe gamma block and is in addition to the legacy pipe CSC block. Primary use case for this block is to convert RGB to YUV in case sink supports YUV. This patch adds supports for the same. v2: This is added after splitting the existing ICL pipe CSC handling. As per Matt's suggestion, made this to co-exist with existing pipe CSC, wherein both can be enabled if a certain usecase arises. v3: Fixed an issue with co-existence of output csc and normal pipe csc, spotted by Matt. Put the csc mode flag enabling to color_check to align with atomic. v4: Fixed macro alignment and checkpatch complaints wrt line over 100 characters limit. Signed-off-by: Uma Shankar Reviewed-by: Maarten Lankhorst Signed-off-by: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/1549893025-21837-5-git-send-email-uma.shankar@intel.com commit 255fcfbc3c1893cd9b8fbca56674be400275fb72 Author: Uma Shankar Date: Mon Feb 11 19:20:23 2019 +0530 drm/i915/icl: Enable ICL Pipe CSC block Enable ICL pipe csc hardware. CSC block is enabled in CSC_MODE register instead of PLANE_COLOR_CTL. ToDO: Extend the ABI to accept 32 bit coefficient values instead of 16bit for future platforms. v2: Addressed Maarten's review comments. v3: Addressed Matt's review comments. Removed rmw patterns as suggested by Matt. v4: Addressed Matt's review comments. v5: Addressed Ville's review comments. v6: Separated pipe output csc programming from regular csc. v7: Rebase Signed-off-by: Uma Shankar Reviewed-by: Matt Roper Reviewed-by: Maarten Lankhorst Signed-off-by: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/1549893025-21837-4-git-send-email-uma.shankar@intel.com commit 13717cef4c1d627db9ed9288f38893977e4f7eac Author: Uma Shankar Date: Mon Feb 11 19:20:22 2019 +0530 drm/i915/icl: Add icl pipe degamma and gamma support Add support for icl pipe degamma and gamma. v2: Removed a POSTING_READ and corrected the Bit Definition as per Maarten's comments. v3: Addressed Matt's review comments. Removed rmw patterns as suggested by Matt. v4: Fixed Matt's review comments. v5: Corrected macro alignment as per Jani Nikula's comments. Addressed Ville and Matt's review comments. v6: Merged ICL degamma handling with GLK and dropped ICL degamma function as per Ville and Matt's comments. v7: updated gamma_mode state with pre csc gammma and post gamma enabling in intel_color_check to align with atomic. v8: Addressed Maarten's review comments. Signed-off-by: Uma Shankar Reviewed-by: Maarten Lankhorst Signed-off-by: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/1549893025-21837-3-git-send-email-uma.shankar@intel.com commit 8957129cb3b0144aceb46b8002cb5d1c45326b01 Author: Uma Shankar Date: Mon Feb 11 19:20:21 2019 +0530 drm/i915/glk: Fix degamma lut programming Fixed the glk degamma lut programming which currently was hard coding a linear lut all the time, making degamma block of glk basically a pass through. Currently degamma lut for glk is assigned as 0 in platform configuration. Updated the same to 33 as per the hardware capability. IGT tests for degamma were getting skipped due to this, spotted by Swati. ToDo: The current gamma/degamm lut ABI has just 16bit for each color component. This is not enough for GLK+, since input precision is increased to 3.16 which will need 19bit entries. v2: Added Matt's RB. v3: Changed uint32_t to u32. v4: Fixed Maarten's review comment Credits-to: Swati Sharma Signed-off-by: Uma Shankar Reviewed-by: Matt Roper Reviewed-by: Maarten Lankhorst Signed-off-by: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/1549893025-21837-2-git-send-email-uma.shankar@intel.com commit b3b0391af2afa783841fb70eaa715b8a79a17d99 Author: Chris Wilson Date: Tue Feb 12 13:08:31 2019 +0000 drm/i915: Detect potential i915_reset_trylock() lockups Use lockdep to warn before we wait indefinitely in case we may be waiting indefinitely. Suggested-by: Mika Kuoppala References: 2caffbf11762 ("drm/i915: Revoke mmaps and prevent access to fence registers across reset") Signed-off-by: Chris Wilson Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190212130831.14425-2-chris@chris-wilson.co.uk commit aeaaa55c7368ea0e7c195baa35dea37b806efb11 Author: Chris Wilson Date: Tue Feb 12 13:08:30 2019 +0000 drm/i915: Recursive i915_reset_trylock() verboten We cannot nest i915_reset_trylock() as the inner may wait for the I915_RESET_BACKOFF which in turn is waiting upon sync_srcu who is waiting for our outermost lock. As we take the reset srcu around the fence update, we have to defer taking it in i915_gem_fault() until after we acquire the pin on the fence to avoid nesting. This is a little ugly, but still works. If a reset occurs between i915_vma_pin_fence() and the second reset lock, the reset will restore the fence register back to the pinned value before the reset lock allows us to proceed (our mmap won't be revoked as we haven't yet marked it as being a userfault as that requires us to hold the reset lock), so the pagefault is still serialised with the revocation in reset. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109605 Fixes: 2caffbf11762 ("drm/i915: Revoke mmaps and prevent access to fence registers across reset") Signed-off-by: Chris Wilson Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190212130831.14425-1-chris@chris-wilson.co.uk commit ab98e94435abc493c8fedf5e07b0b3f045424d32 Author: Ville Syrjälä Date: Fri Feb 8 22:05:27 2019 +0200 drm/i915: Dump skl+ watermark changes Currently we're only dumping out the ddb allocation changes, let's do the same for the watermarks. This should help with debugging underruns and whatnot. First I tried one line per plane per wm level, but that resulted in an obnoxious amount of lines printed. So as a compromise I settled on a four line format, each line containing a single watermark related value (enable,lines,blocks,min_ddb_alloc) for all 8 levels (+trans wm). It still produces quite a lot of output but I can't really see a way around that because we simply have a lot of data to dump. Let's also pimp the ddb debug to print the size of the allocations too, not just their bounds. Makes it a bit easier to compare against the watermarks. Signed-off-by: Ville Syrjälä Link: https://patchwork.freedesktop.org/patch/msgid/20190208200527.12844-1-ville.syrjala@linux.intel.com Reviewed-by: Clint Taylor commit ed7dc6777400937b4686e9ec1db1533ea4546864 Author: Chris Wilson Date: Mon Feb 11 20:46:47 2019 +0000 drm/i915: Reacquire priolist cache after dropping the engine lock If we drop the engine lock, we may run execlists_dequeue which may free the priolist. Therefore if we ever drop the execution lock on the engine, we have to discard our cache and refetch the priolist to ensure we do not use a stale pointer. [ 506.418935] [IGT] gem_exec_whisper: starting subtest contexts-priority [ 593.240825] general protection fault: 0000 [#1] SMP [ 593.240863] CPU: 1 PID: 494 Comm: gem_exec_whispe Tainted: G U 5.0.0-rc6+ #100 [ 593.240879] Hardware name: /NUC6CAYB, BIOS AYAPLCEL.86A.0029.2016.1124.1625 11/24/2016 [ 593.240965] RIP: 0010:__i915_schedule+0x1fe/0x320 [i915] [ 593.240981] Code: 48 8b 0c 24 48 89 c3 49 8b 45 28 49 8b 75 20 4c 89 3c 24 48 89 46 08 48 89 30 48 8b 43 08 48 89 4b 08 49 89 5d 20 49 89 45 28 <48> 89 08 45 39 a7 b8 03 00 00 7d 44 45 89 a7 b8 03 00 00 49 8b 85 [ 593.240999] RSP: 0018:ffffc90000057a60 EFLAGS: 00010046 [ 593.241013] RAX: 6b6b6b6b6b6b6b6b RBX: ffff8882582d7870 RCX: ffff88826baba6f0 [ 593.241026] RDX: 0000000000000000 RSI: ffff8882582d6e70 RDI: ffff888273482194 [ 593.241049] RBP: ffffc90000057a68 R08: ffff8882582d7680 R09: ffff8882582d7840 [ 593.241068] R10: 0000000000000000 R11: ffffea00095ebe08 R12: 0000000000000728 [ 593.241105] R13: ffff88826baba6d0 R14: ffffc90000057a40 R15: ffff888273482158 [ 593.241120] FS: 00007f4613fb3900(0000) GS:ffff888277a80000(0000) knlGS:0000000000000000 [ 593.241133] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 593.241146] CR2: 00007f57d3c66a84 CR3: 000000026e2b6000 CR4: 00000000001406e0 [ 593.241158] Call Trace: [ 593.241233] i915_schedule+0x1f/0x30 [i915] [ 593.241326] i915_request_add+0x1a9/0x290 [i915] [ 593.241393] i915_gem_do_execbuffer+0x45f/0x1150 [i915] [ 593.241411] ? init_object+0x49/0x80 [ 593.241425] ? ___slab_alloc.constprop.91+0x4b8/0x4e0 [ 593.241491] ? i915_gem_execbuffer2_ioctl+0x99/0x380 [i915] [ 593.241563] ? i915_gem_execbuffer_ioctl+0x270/0x270 [i915] [ 593.241629] i915_gem_execbuffer2_ioctl+0x1bb/0x380 [i915] [ 593.241705] ? i915_gem_execbuffer_ioctl+0x270/0x270 [i915] [ 593.241724] drm_ioctl_kernel+0x81/0xd0 [ 593.241738] drm_ioctl+0x1a7/0x310 [ 593.241803] ? i915_gem_execbuffer_ioctl+0x270/0x270 [i915] [ 593.241819] ? __update_load_avg_se+0x1c9/0x240 [ 593.241834] ? pick_next_entity+0x7e/0x120 [ 593.241851] do_vfs_ioctl+0x88/0x5d0 [ 593.241880] ksys_ioctl+0x35/0x70 [ 593.241894] __x64_sys_ioctl+0x11/0x20 [ 593.241907] do_syscall_64+0x44/0xf0 [ 593.241924] entry_SYSCALL_64_after_hwframe+0x44/0xa9 [ 593.241940] RIP: 0033:0x7f4615ffe757 [ 593.241952] Code: 00 00 90 48 8b 05 39 a7 0c 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 09 a7 0c 00 f7 d8 64 89 01 48 [ 593.241970] RSP: 002b:00007ffc1030ddf8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 [ 593.241984] RAX: ffffffffffffffda RBX: 00007ffc10324420 RCX: 00007f4615ffe757 [ 593.241997] RDX: 00007ffc1030e220 RSI: 0000000040406469 RDI: 0000000000000003 [ 593.242010] RBP: 00007ffc1030e220 R08: 00007f46160c9208 R09: 00007f46160c9240 [ 593.242022] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000040406469 [ 593.242038] R13: 0000000000000003 R14: 0000000000000000 R15: 0000000000000000 [ 593.242058] Modules linked in: i915 intel_gtt drm_kms_helper prime_numbers v2: Track the local engine cache and explicitly clear it when switching engine locks. Fixes: a02eb975be78 ("drm/i915/execlists: Cache the priolist when rescheduling") Testcase: igt/gem_exec_whisper/contexts-priority # rare! Signed-off-by: Chris Wilson Cc: Joonas Lahtinen Cc: Tvrtko Ursulin Cc: Michał Winiarski Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190211204647.26723-1-chris@chris-wilson.co.uk commit ed06fddc2203aefb4edbcd179a4e3237e19e6197 Author: Chris Wilson Date: Mon Feb 11 13:10:04 2019 +0000 drm/i915: Include the current timeline seqno for debugging execlists While this is mainly only useful for ELSP[0], it is definitely useful to know the current timeline seqno wrt to the queued set of requests for that port, as this carries additional information above and beyond the near-defunct global_seqno and global HWSP. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190211131004.11634-1-chris@chris-wilson.co.uk commit 7c95c10ee993b5da7120f4f705cb2b6c9b8688ad Author: Chris Wilson Date: Mon Feb 11 13:50:40 2019 +0000 drm/i915: Use synchronize_srcu_expedited() for resets We impose upon ourselves a strict timeout for resets (to ensure forward progress by use of a failsafe). Prefer to use the expedited synchronisation function in this case to reduce the likelihood of a spurious delay being treated as a deadlock. Signed-off-by: Chris Wilson Cc: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190211135040.1234-2-chris@chris-wilson.co.uk Reviewed-by: Mika Kuoppala commit 785fbda5ba66087bf82905c249ccec1fa53bd266 Author: Chris Wilson Date: Mon Feb 11 13:50:39 2019 +0000 drm/i915: Pull sync_scru for device reset outside of wedge_mutex We need to flush our srcu protecting resources about to be clobbered by the reset, inside of our timer failsafe but outside of the error->wedge_mutex, so that the failsafe can run in case the synchronize_srcu() takes too long (hits a shrinker deadlock?). Fixes: 72eb16df010a ("drm/i915: Serialise resets with wedging") References: https://bugs.freedesktop.org/show_bug.cgi?id=109605 Signed-off-by: Chris Wilson Cc: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190211135040.1234-1-chris@chris-wilson.co.uk Reviewed-by: Mika Kuoppala commit a0f52c3d357af218a9c1f7cd906ab70426176a1a Author: Jani Nikula Date: Fri Feb 8 20:42:53 2019 +0200 drm/i915/opregion: rvda is relative from opregion base in opregion 2.1+ Starting from opregion version 2.1 (roughly corresponding to ICL+) the RVDA field is relative from the beginning of opregion, not absolute address. Fix the error path while at it. v2: Make relative vs. absolute conditional on the opregion version, bumped for the purpose. Turned out there are machines relying on absolute RVDA in the wild. v3: Fix the version checks Fixes: 04ebaadb9f2d ("drm/i915/opregion: handle VBT sizes bigger than 6 KB") Cc: Ville Syrjälä Cc: Imre Deak Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190208184254.24123-2-jani.nikula@intel.com commit 98fdaaca9537b997062f1abc0aa87c61b50ce40a Author: Jani Nikula Date: Fri Feb 8 20:42:52 2019 +0200 drm/i915/opregion: fix version check The u32 version field encodes major, minor, revision and reserved. We've basically been checking for any non-zero version. Add opregion version logging while at it. v2: Fix the fix of the version check Fixes: 04ebaadb9f2d ("drm/i915/opregion: handle VBT sizes bigger than 6 KB") Cc: Ville Syrjälä Cc: Imre Deak Reviewed-by: Ville Syrjälä Signed-off-by: Jani Nikula Link: https://patchwork.freedesktop.org/patch/msgid/20190208184254.24123-1-jani.nikula@intel.com commit 312c4ba1bb71d666f924f84afd5bdc775b71278f Author: Chris Wilson Date: Fri Feb 8 13:47:04 2019 +0000 drm/i915: Protect i915_active iterators from the shrinker If we allocate while iterating the rbtree of active nodes, we may hit the shrinker and so retire the i915_active, reaping the rbtree. Modifying the rbtree as we iterate is not good behaviour, so acquire the i915_active first to keep the tree intact whenever we allocate. Fixes: a42375af0a30 ("drm/i915: Release the active tracker tree upon idling") Signed-off-by: Chris Wilson Cc: Tvrtko Ursulin Cc: Joonas Lahtinen Link: https://patchwork.freedesktop.org/patch/msgid/20190208134704.23039-1-chris@chris-wilson.co.uk Reviewed-by: Tvrtko Ursulin commit c10c78ade57afe36fe290f79e466fcd5304e2f20 Author: Chris Wilson Date: Fri Feb 8 23:51:08 2019 +0000 drm/i915/execlists: Refactor out can_merge_rq() In the next patch, we add another user that wants to check whether requests can be merge into a single HW execution, and in the future we want to add more conditions under which requests from the same context cannot be merge. In preparation, extract out can_merge_rq(). v2: Reorder tests to decide if we can continue filling ELSP and bonus comments. Signed-off-by: Chris Wilson Reviewed-by: Tvrtko Ursulin Link: https://patchwork.freedesktop.org/patch/msgid/20190208235108.23127-1-chris@chris-wilson.co.uk commit 21182b3c4cbbf57f11fd10ab8832f15767d906b2 Author: Chris Wilson Date: Fri Feb 8 15:37:08 2019 +0000 drm/i915: Don't claim an unstarted request was guilty If we haven't even begun executing the payload of the stalled request, then we should not claim that its userspace context was guilty of submitting a hanging batch. v2: Check for context corruption before trying to restart. v3: Preserve semaphores on skipping requests (need to keep the timelines intact). Signed-off-by: Chris Wilson Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190208153708.20023-7-chris@chris-wilson.co.uk commit 72eb16df010a436644c6515892ab8e2c428afe7f Author: Chris Wilson Date: Fri Feb 8 15:37:07 2019 +0000 drm/i915: Serialise resets with wedging Prevent concurrent set-wedge with ongoing resets (and vice versa) by taking the same wedge_mutex around both operations. Signed-off-by: Chris Wilson Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190208153708.20023-6-chris@chris-wilson.co.uk commit 15cbf007e4da18b23eac41168263b178efd9cf36 Author: Chris Wilson Date: Fri Feb 8 15:37:06 2019 +0000 drm/i915: Wait for old resets before applying debugfs/i915_wedged Since we use the debugfs to recover the device after modifying the i915.reset parameter, we need to be sure that we apply the reset and not piggy-back onto a concurrent one in order for the parameter to take effect. Signed-off-by: Chris Wilson Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190208153708.20023-5-chris@chris-wilson.co.uk commit 13e87536de1afb5208982166e1c0afa90eda78d9 Author: Chris Wilson Date: Fri Feb 8 15:37:05 2019 +0000 drm/i915: Uninterruptibly drain the timelines on unwedging On wedging, we mark all executing requests as complete and all pending requests completed as soon as they are ready. Before unwedging though we wish to flush those pending requests prior to restoring default execution, and so we must wait. Do so uninterruptibly as we do not provide the EINTR gracefully back to userspace in this case but persists in keeping the permanently wedged state without restarting the syscall. Signed-off-by: Chris Wilson Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190208153708.20023-4-chris@chris-wilson.co.uk commit 0eb6a3f7ef99e7de19efb1293be0571b1d4e83cd Author: Chris Wilson Date: Fri Feb 8 15:37:04 2019 +0000 drm/i915: Force the GPU reset upon wedging When declaring the GPU wedged, we do need to hit the GPU with the reset hammer so that its state matches our presumed state during cleanup. If the reset fails, it fails, and we may be unhappy but wedged. However, if we are testing our wedge/unwedged handling, the desync carries over into the next test and promptly explodes. References: https://bugs.freedesktop.org/show_bug.cgi?id=106702 Signed-off-by: Chris Wilson Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190208153708.20023-3-chris@chris-wilson.co.uk commit 2caffbf1176256cc4f8d4e5c3c524fc689cb9876 Author: Chris Wilson Date: Fri Feb 8 15:37:03 2019 +0000 drm/i915: Revoke mmaps and prevent access to fence registers across reset Previously, we were able to rely on the recursive properties of struct_mutex to allow us to serialise revoking mmaps and reacquiring the FENCE registers with them being clobbered over a global device reset. I then proceeded to throw out the baby with the bath water in order to pursue a struct_mutex-less reset. Perusing LWN for alternative strategies, the dilemma on how to serialise access to a global resource on one side was answered by https://lwn.net/Articles/202847/ -- Sleepable RCU: 1 int readside(void) { 2 int idx; 3 rcu_read_lock(); 4 if (nomoresrcu) { 5 rcu_read_unlock(); 6 return -EINVAL; 7 } 8 idx = srcu_read_lock(&ss); 9 rcu_read_unlock(); 10 /* SRCU read-side critical section. */ 11 srcu_read_unlock(&ss, idx); 12 return 0; 13 } 14 15 void cleanup(void) 16 { 17 nomoresrcu = 1; 18 synchronize_rcu(); 19 synchronize_srcu(&ss); 20 cleanup_srcu_struct(&ss); 21 } No more worrying about stop_machine, just an uber-complex mutex, optimised for reads, with the overhead pushed to the rare reset path. However, we do run the risk of a deadlock as we allocate underneath the SRCU read lock, and the allocation may require a GPU reset, causing a dependency cycle via the in-flight requests. We resolve that by declaring the driver wedged and cancelling all in-flight rendering. v2: Use expedited rcu barriers to match our earlier timing characteristics. v3: Try to annotate locking contexts for sparse v4: Reduce selftest lock duration to avoid a reset deadlock with fences v5: s/srcu/reset_backoff_srcu/ v6: Remove more stale comments Testcase: igt/gem_mmap_gtt/hang Fixes: eb8d0f5af4ec ("drm/i915: Remove GPU reset dependence on struct_mutex") Signed-off-by: Chris Wilson Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190208153708.20023-2-chris@chris-wilson.co.uk commit 7ae1940014ef77e6389ca95a5a75273c9c4ea31f Author: Chris Wilson Date: Fri Feb 8 15:37:02 2019 +0000 drm/i915: Defer removing fence register tracking to rpm wakeup Currently, we may simultaneously release the fence register from both fence_update() and i915_gem_restore_fences(). This is dangerous, so defer the bookkeeping entirely to i915_gem_restore_fences() when the device is asleep. Reported-by: Mika Kuoppala Signed-off-by: Chris Wilson Cc: Mika Kuoppala Reviewed-by: Mika Kuoppala Link: https://patchwork.freedesktop.org/patch/msgid/20190208153708.20023-1-chris@chris-wilson.co.uk commit 73a116be688041149bbdd1f0ba25da5c4c78a306 Author: Ville Syrjälä Date: Thu Feb 7 22:21:46 2019 +0200 drm/i915: Update DSPCNTR gamma/csc bits during crtc_enable() On g4x+ we depend on the primary plane DSPCNTR gamma/csc enable bits for the pipe bottom color. To guarantee that those are correct already when enabling the crtc let's do an explicit ->disable_plane() call before enabling the pipe. On skl+ this will be handled by the explicit PIPE_BOTTOM_COLOR register which is already part of the normal color commit we do durign crtc enable. Signed-off-by: Ville Syrjälä Reviewed-by: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/20190207202146.26423-8-ville.syrjala@linux.intel.com commit 02c52f1ed20aba171f2098b8dc03747a60456603 Author: Ville Syrjälä Date: Thu Feb 7 22:21:45 2019 +0200 drm/i915: Disable pipe gamma when C8 pixel format is used Planes scanning out C8 will want to use the legacy lut as their palette. That means the LUT content are unlikely to be useful for gamma correction on other planes. Thus we should disable pipe gamma for all the other planes. And we should reject any non legacy LUT configurations when C8 planes are present. Fixes the appearance of the hw cursor when running X -depth 8. Note that CHV with it's independent CGM degamma/gamma LUTs could probably use the CGM for gamma correction even when the legacy LUT is used for C8. But that would require a new uapi for configuring the legacy LUT and CGM LUTs at the same time. Totally not worth it. v2: Fix typo (Uma) Rebase Signed-off-by: Ville Syrjälä Reviewed-by: Uma Shankar Reviewed-by: Matt Roper Link: https://patchwork.freedesktop.org/patch/msgid/20190207202146.26423-7-ville.syrjala@linux.intel.com commit 0593d2cd38134b9db4227897ec81eb18ab90b54a Author: Ville Syrjälä Date: Thu Feb 7 22:21:44 2019 +0200 drm/i915: Turn off pipe CSC when it's not needed As with pipe gamma we can avoid the potential precision loss from the pipe csc unit when there is no need to use it. And again we need the same logic for updating the planes. v2: Rebase Signed-off-by: Ville Syrjälä Reviewed-by: Uma Shankar Reviewed-by: Matt Roper Link: https://patchwork.freedesktop.org/patch/msgid/20190207202146.26423-6-ville.syrjala@linux.intel.com commit 0fc3f8e7540f59e0e059b20d5a138e5f81bcf352 Author: Ville Syrjälä Date: Thu Feb 7 22:21:43 2019 +0200 drm/i915: Turn off pipe gamma when it's not needed The pipe internal precision is higher than what we currently program to the degamma/gamma LUTs. We can get a higher quality image by bypassing the LUTs when they're not needed. Let's do that. Each plane has its own control bit for this, so we have to update all active planes. The way we've done this we don't actually have to run through the whole .check_plane() thing. And we actually do the .color_check() after .check_plane() so we couldn't even do that without shuffling the code around. Additionally on pre-skl we have to update the primary plane regardless of whether it's active or not on account of the primary plane gamma enable bit also affecting the pipe bottom color. v2: Drop the '.' from patch title (Uma) Fix 'primayr' typo (Uma,Matt) Rebase Signed-off-by: Ville Syrjälä Reviewed-by: Uma Shankar Reviewed-by: Matt Roper Link: https://patchwork.freedesktop.org/patch/msgid/20190207202146.26423-5-ville.syrjala@linux.intel.com commit 8271b2ef71aaabac452dc03a6cbe8960cbea4247 Author: Ville Syrjälä Date: Thu Feb 7 22:21:42 2019 +0200 drm/i915: Track pipe csc enable in crtc state Just like we did for pipe gamma, let's also track the pipe csc state. The hardware only exists on ILK+, and currently we always enable it on hsw+ and never on any other platforms. Just like with pipe gamma, the primary plane control register is used for the readout on pre-SKL, and the pipe bottom color register on SKL+. v2: Rebase v3: Allow fastboot with csc_enable changes (Maarten) Deal with HAS_GMCH Signed-off-by: Ville Syrjälä Reviewed-by: Matt Roper Reviewed-by: Uma Shankar Link: https://patchwork.freedesktop.org/patch/msgid/20190207202146.26423-4-ville.syrjala@linux.intel.com commit 5f29ab23046a4bb08a850e41bdb579b2cb59421d Author: Ville Syrjälä Date: Thu Feb 7 22:39:13 2019 +0200 drm/i915: Track pipe gamma enable/disable in crtc state Track whether pipe gamma is enabled or disabled. For now we stick to the current behaviour of always enabling gamma. But we do get working state readout for this now. On SKL+ we use the pipe bottom color as our hardware state. On pre-SKL we read the state back from the primary plane control register. That only really correct for g4x+, as older platforms never gamma correct pipe bottom color. But doing the readout the same way on all platforms is fine, and there is no other way to do it really. v2: Initialize val at declaration (Uma) Drop the bogus skl scaler comment change (Uma) Rebase v3: Allow fastboot with gamma_enable changes (Maarten) v4: Drop the PIPE_BOTTOM_COLOR write from intel_update_pipe_config() again. It snuck back in during the rebase Signed-off-by: Ville Syrjälä Reviewed-by: Matt Roper Reviewed-by: Uma Shankar Link: https://patchwork.freedesktop.org/patch/msgid/20190207203913.5529-1-ville.syrjala@linux.intel.com commit 9d5441de28e2b1e5087ce63c4fe9e0b1c5b3fcaa Author: Ville Syrjälä Date: Thu Feb 7 22:21:40 2019 +0200 drm/i915: Populate gamma_mode for all platforms On pre-HSW gamma mode is configured via PIPECONF. The bits are the same except shifted up, so we can reuse just store them in crtc_state->gamma_mode in the HSW+ way, allowing us to share some code later. v2: Allow fastboot with gamma_mode changes (Maarten) Add space around the '<<' in the reg macro Deal with HAS_GMCH Signed-off-by: Ville Syrjälä Reviewed-by: Maarten Lankhorst Link: https://patchwork.freedesktop.org/patch/msgid/20190207202146.26423-2-ville.syrjala@linux.intel.com commit 23ec9f52e522fab993c39ab4b74b275dee6c7cda Author: José Roberto de Souza Date: Wed Feb 6 13:18:45 2019 -0800 drm/i915/psr: Execute the default PSR code path when setting i915_edp_psr_debug Changing the i915_edp_psr_debug was enabling, disabling or switching PSR version by directly calling intel_psr_disable_locked() and intel_psr_enable_locked(), what is not the default PSR path that will be executed by real users. So lets force a fastset in the PSR CRTC to trigger a pipe update and stress the default code path. Recently a bug was found when switching from PSR2 to PSR1 while enable_psr kernel parameter was set to the default parameter, this changes fix it and also fixes the bug linked bellow were DRRS was left enabled together with PSR when enabling PSR from debugfs. v2: Handling missing case: disabled to PSR1 v3: Not duplicating the whole atomic state(Maarten) v4: Adding back the missing call to intel_psr_irq_control(Dhinakaran) Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108341 Cc: Maarten Lankhorst Cc: Dhinakaran Pandiyan Cc: Rodrigo Vivi Signed-off-by: José Roberto de Souza Reviewed-by: Dhinakaran Pandiyan Link: https://patchwork.freedesktop.org/patch/msgid/20190206211845.5322-1-jose.souza@intel.com commit 634852d1f468ccc8cc2e790757c6c1c0f95eb955 Author: Ramalingam C Date: Mon Feb 4 21:14:40 2019 +0530 drm/i915: HDCP state handling in ddi_update_pipe The downgrade of the fullmodeset into fastset intel_encoder->update_pipe, in possible scenario, skips the En/Dis-able DDI. Hence breaks the HDCP state change handling. We also don't have any hdcp tests in CI, because the shard runs don't have hdcp capable outputs :-/ So this change fixs it by handling the HDCP state change request at intel_encoder->update_pipe too along with enable and disable of the DDI. Fixes: d19f958db23c ("drm/i915: Enable fastset for non-boot modesets.") v2: Added commit id that broke the HDCP [Daniel] Signed-off-by: Ramalingam C cc: Maarten Lankhorst cc: Hans de Goede cc: Daniel Vetter Signed-off-by: Daniel Vetter Link: https://patchwork.freedesktop.org/patch/msgid/1549295080-18353-1-git-send-email-ramalingam.c@intel.com commit 73d4f945f6eacc8f4fadd61020faea3c6dc602dc Author: Stephen Boyd Date: Fri Feb 1 15:39:50 2019 -0800 clk: Document and simplify clk_core_get_rate_nolock() This function uses a few gotos and doesn't explain why parents and numbers of parents are being checked before returning different values for the clk's rate. Document and simplify this function somewhat to make this better. Signed-off-by: Stephen Boyd commit 7374faa92edce7af6d69d0a2968198e9b919a281 Author: Stephen Boyd Date: Tue Dec 11 10:58:54 2018 -0800 clk: Remove 'flags' member of struct clk_fixed_rate This member is never used nor documented in the kerneldoc. Remove it. Signed-off-by: Stephen Boyd commit 7150e182c80ab289b8ce0eeaae62098bf3921124 Author: Stephen Boyd Date: Fri Dec 14 09:18:41 2018 -0800 clk: nxp: Drop 'flags' on fixed_rate clk macro The flags argument here is always 0, and we want to get rid of the flags member of the clk_fixed_rate struct. So remove this here and just pass 0 when it's used. Signed-off-by: Stephen Boyd commit 777c1a40a34f183640b33ff142c5ab3ef1748974 Author: Stephen Boyd Date: Tue Dec 11 13:24:50 2018 -0800 clk: Document __clk_mux_determine_rate() It had some documentation, but not kerneldoc style so it wasn't getting picked up. Add some docs so scripts can pick this function out. Signed-off-by: Stephen Boyd commit 31f6e8700fa25b3b9534da9a1d787661b8adad87 Author: Stephen Boyd Date: Tue Dec 11 10:58:33 2018 -0800 clk: Document CLK_MUX_READ_ONLY mux flag This flag isn't documented. Document it. Signed-off-by: Stephen Boyd commit 9fe9b7ab4d050eaf646728752b320043c59dc214 Author: Stephen Boyd Date: Tue Dec 11 10:49:40 2018 -0800 clk: Document deprecated things We don't want driver authors to use the struct clk based registration and provider APIs. Instead, they should use the clk_hw based APIs. Add some notes in the kerneldoc to this effect. Signed-off-by: Stephen Boyd commit 38581ddc48b761936fc65948d0a0f6fe0db1aa31 Author: Stephen Boyd Date: Tue Dec 11 10:07:06 2018 -0800 clk: Collapse gpio clk kerneldoc We have two kernel-docs for gpio clks, but there is only one gpio clk structure. Collapse the two so we have proper kerneldoc for this basic clk type. Signed-off-by: Stephen Boyd commit 2e3bc6125154c691e987e2554f2c99ec10f83b73 Author: Andy Shevchenko Date: Thu Jan 10 15:41:53 2019 +0200 fs/jfs: Switch to use new generic UUID API There are new types and helpers that are supposed to be used in new code. As a preparation to get rid of legacy types and API functions do the conversion here. Signed-off-by: Andy Shevchenko Signed-off-by: Dave Kleikamp commit 7ca5e8f089c2cbe79ee220b5acb4bc6cf4422818 Author: Chengguang Xu Date: Sat Nov 24 17:40:44 2018 +0800 jfs: compare old and new mode before setting update_mode flag If new mode is the same as old mode we don't have to reset inode mode in the rest of the code, so compare old and new mode before setting update_mode flag. Signed-off-by: Chengguang Xu Signed-off-by: Dave Kleikamp commit 3a9a12fbed5fea3f062f98d012d4284fc5fdc5bb Author: Dave Kleikamp Date: Thu Jan 10 09:56:09 2019 -0600 jfs: remove incorrect comment in jfs_superblock There is a comment in struct jfs_superblock that incorrectly labels a 128-byte boundary. It has never been correct. Shenghui Wang proposed moving it to the correct spot, before s_xlogpxd, but at this point, I believe it is best just to remove it. Signed-off-by: Dave Kleikamp Reported-by: Shenghui Wang commit a83722f45c5baa350693795b0dc3f04ab5201a6b Author: Colin Ian King Date: Fri Oct 26 19:09:09 2018 +0100 jfs: fix spelling mistake, EACCESS -> EACCES Trivial fix to a spelling mistake of the error access name EACCESS, rename to EACCES Signed-off-by: Colin Ian King Signed-off-by: Dave Kleikamp